From xen-devel-bounces@lists.xenproject.org Mon Feb 02 07:53:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 07:53:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218394.1527139 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmok1-0000Xd-Du; Mon, 02 Feb 2026 07:53:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218394.1527139; Mon, 02 Feb 2026 07:53:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmok1-0000XW-As; Mon, 02 Feb 2026 07:53:01 +0000
Received: by outflank-mailman (input) for mailman id 1218394;
 Mon, 02 Feb 2026 07:53: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmok0-0000XQ-Bp
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 07:53:00 +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 2c5e922b-000c-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 08:52:56 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-480142406b3so29386085e9.1
 for <xen-devel@lists.xenproject.org>; Sun, 01 Feb 2026 23:52:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4806ce4c3c6sm371250125e9.10.2026.02.01.23.52.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 01 Feb 2026 23:52:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c5e922b-000c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770018770; x=1770623570; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hAxPsnW5OcHpfpZvmPZGyTz8YXP5vUl8BglHhtRMf9w=;
        b=Xa8uyWC41Cpqzyk6HWgD07U05EiXMJRCiL7BQxZN+zOQB4JyMeuq77VgqnZEnep+U0
         9ec4Ec/NX/az6lF45Y1okyWu+1KXT2Z+L9m/d3jGL86u9ep9bL6BRftE+jE/2jzY+wR7
         /3qU6Fiyh3usFkNfJFeOB7FWXuvQOLgylQ7+RP8uHcJYSVdTKkl299OJfhvlt+GGF0q9
         dZygJjmigslEcYhYGRdAKzLzbDuWpnCRgVg+6hoKXysCqZceTpp6wmSIqddVDfMrGMs+
         bHXP8+94hQj8lLDgrus6m1YR7UFX8GulEGyHHKRiy2pCMVv7Gl9wKNIkMBzx1bSpBdsd
         Mc/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770018770; x=1770623570;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hAxPsnW5OcHpfpZvmPZGyTz8YXP5vUl8BglHhtRMf9w=;
        b=uk1yBrc+v5GFI9uMgpKJB8BV+r3UTZpjc4QAf8ZWyM0/dpY21oovE/Ix8v4xu4E6Bi
         qrGu3JZuPMUS/UNr62kL7Zmb20AcLQJgzjfU5Gd5hckQ1Gr4c7BL6muDf7X1aloFexCM
         DD5bi2yoCS4k5zQ+rZhZybTKHUscT/3SBRNHzob5WDB9K5X9QF2K3Qa5uFIkvo4fTV2t
         TAAGn4cVnKvOxKy//5xthqWxMi9L0k2o7vix22MsEA2u3VwL7gTvSbntMlwyWRIOiVB4
         jyE+od+PahgPJWVCYP+vwfyWhOmB+gasvv/ek9WSTj3AP472659BUCTbLsJCJRE8CVBv
         ATpg==
X-Forwarded-Encrypted: i=1; AJvYcCVyJuYzqm4Nv6oat9ELEJPVIHvV/CmFCKYRMok1e9xjjPJ0i54RW0Gy0zmxLCzDRTVvbZUD6J+irxU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyYIfq7gK/3TjgqaZyoPIB+YkjVVBpU9z8fvwA+YsnfJnJI+Jfd
	3E46ziSeGQKM7bXa2bjOn4+5Oi+IJCw+pcyywx0sRzmRdf0IaDJGd93FAtmMuDdwsw==
X-Gm-Gg: AZuq6aJ3Yu5lcXgWKv+DnLULNosnvKADX6lLEK32nuFIs3SjUNbvYC9YZRTHSW7ZCVF
	DdlIRRY3lxKiYVKsUfpQ/eMBJSh0DWzHhwDv7GsFbRbGdwIeDiP+lFLDZhFPfGXoKYHfT76QwFq
	dOqcBOAIx5rjuiXf+ACYAPgcBTvmXwwSeJ+OnHcUk/ER8ri0enb4RRU9r8z/kZW2LqRVHCkswbW
	ErG1psulBvhn48kj0b2wta+t3KS7N6QQmkuyMQjimA+D/rLqzCh6f+C9dV/kgdV/z4jmypRN/gA
	zGVt70WAAdgZ2tzppQ2m5Ffjc6+0AXHXOQz7Vx0wyaR+H5Lrz6/MZo6XXh12zeziHwR3SJ+BnNt
	2ytZ+aBi7nBTbt0ouY8Tuf/OrQ06N53IXr6ZvD+p10FjF5EdOVuKgDkOVLrykn1UYegYFfsKvyx
	c7c3/mX0XEf6tBFwnsFBCxAtctf9We1TZXEiP0/4Rt8o4dKlUZCenhWthU4efEmNdBU6DB4P6O1
	0w=
X-Received: by 2002:a05:600c:680a:b0:479:2a09:9262 with SMTP id 5b1f17b1804b1-482db45171cmr133125175e9.9.1770018770346;
        Sun, 01 Feb 2026 23:52:50 -0800 (PST)
Message-ID: <e9b6d1d1-0e72-4e27-9da2-18e2cb14c572@suse.com>
Date: Mon, 2 Feb 2026 08:52:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [XEN PATCH] xen: add paddings after bitmap section in LLVM
 coverage profile
To: Wentao Zhang <zhangwt1997@gmail.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org, samaan.dehghan@gmail.com
References: <aa144043d4e0592fbbeaf0a3d5e9cad6e9226d8a.1763989809.git.samaan.dehghan@gmail.com>
 <71775ef5c267b3888ddf3e4a55bdb5914cf1f890.1766228666.git.zhangwt1997@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: <71775ef5c267b3888ddf3e4a55bdb5914cf1f890.1766228666.git.zhangwt1997@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Since you ping-ed the patch, I'll give some comments, albeit I wouldn't feel
qualified to eventually ack the change.

On 20.12.2025 12:22, Wentao Zhang wrote:
> The layout of LLVM coverage profile is like
> 
>   header
>   data section
>   (padding #1)
>   counter section
>   (padding #2)
>   bitmap section
>   (padding #3)
>   name section
>   (padding #4)
> 
> Padding areas #1 and #2 are always zeroed on 64-bit platforms,

How does zeroing (or not) matter when size is what is of interest?

> but that
> is not the case for padding area #3 and #4. See LLVM docs [1] and
> compiler-rt's own version of "get_size()" [2].
> 
> The implementation in 08c787f "xen: Enable MC/DC coverage for Clang"
> partly considers padding #4 in get_size() but not in dump(). It worked
> because in the header .padding_bytes_after_bitmap_bytes is also
> initialized to zero so a reader may still know how to parse the profile.
> But we should probably not base ourselves on such assumption. Instead
> let's be as close as possible to hosted environment generated profiles,
> i.e. those generated by compiler-rt.
> 
> In this patch, get_size() implementation is mathematically the same but
> changed to reflect the layout somewhat better. For dump(), padding #4 is
> added both in the header and in the payload.

#4 is after the name section as per the description at the top, yet code
you add in dump() is to set / use the .padding_bytes_after_bitmap_bytes
field. That's #3 as per above, though.

> --- a/xen/common/coverage/llvm.c
> +++ b/xen/common/coverage/llvm.c
> @@ -141,11 +141,11 @@ static void cf_check reset_counters(void)
>  
>  static uint32_t cf_check get_size(void)
>  {
> -    uint32_t size = ROUNDUP(sizeof(struct llvm_profile_header) + END_DATA - START_DATA +
> -                   END_COUNTERS - START_COUNTERS + END_NAMES - START_NAMES, 8);
> -    if ( IS_ENABLED(CONFIG_CONDITION_COVERAGE) )
> -        size += ROUNDUP(END_BITMAP - START_BITMAP, 8);
> -    return size;
> +    return sizeof(struct llvm_profile_header) +
> +           END_DATA - START_DATA +
> +           END_COUNTERS - START_COUNTERS +
> +           ROUNDUP(END_BITMAP - START_BITMAP, 8) +
> +           ROUNDUP(END_NAMES - START_NAMES, 8);
>  }

Where are these 8-s and ...

> @@ -167,6 +167,7 @@ static int cf_check dump(
>  #if defined(CONFIG_CONDITION_COVERAGE) && LLVM_PROFILE_VERSION >= 9
>          .num_bitmap_bytes = END_BITMAP - START_BITMAP,
>          .bitmap_delta = START_BITMAP - START_DATA,
> +        .padding_bytes_after_bitmap_bytes = (-(END_BITMAP - START_BITMAP)) & 7,

... this 7 coming from? All I can find in your [1] reference is "Sections might
be padded to meet specific alignment requirements. For simplicity, header fields
and data sections solely for padding purposes are omitted in the data layout
graph above and the rest of this document." No other hit when searching for "pad"
or "align" in that doc.

Unrelated to your change but relevant for understanding: I also can't seem to be
able to figure out where the various __{start,stop}___llvm_prf_*[] symbols are
coming from. It doesn't look to be our linker script: The LLVM_COV_{RW,RO}_DATA
macros both don't define any symbols. If they did, I would have asked whether
the alignment needs couldn't be accounted for there.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 08:51:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 08:51:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218412.1527150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmpeT-0008Cq-M7; Mon, 02 Feb 2026 08:51:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218412.1527150; Mon, 02 Feb 2026 08:51: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 1vmpeT-0008Cj-Id; Mon, 02 Feb 2026 08:51:21 +0000
Received: by outflank-mailman (input) for mailman id 1218412;
 Mon, 02 Feb 2026 08: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmpeS-0008Cd-KP
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 08:51:20 +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 56ce3898-0014-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 09:51:18 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-480142406b3so29931235e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 00:51:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48066c428basm470225285e9.12.2026.02.02.00.51.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 00:51:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56ce3898-0014-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770022278; x=1770627078; 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=PHPbwkIzIjK5g+a9DAApILvFKze2LTooZeuDTI34oEM=;
        b=D4VcfxUnz3zV0b72I4fYaQjvNAdGReHlznsEg8Q0VOzO4GXVGa62QVQ/IFrIhtCcWt
         X56j+tIJjSUNyjUIor0eZ+bfYimDlMboitLJlRxiD7utcrh63A9SlkUuuOZeUxrw4xwI
         7D0yV2hP8Y8SFrq4reg1fyR73pZnMdR63qUZiB7csvszLo1IG8kKq9cm1RVS2spEymko
         G7nh7GkRdF8CU9F0A3904TFL6h7PeEsaY5zqOpz1sKw2cYdDP9PSbisjUQer7xiOu7MN
         szB40wnwlWkYNz62wvxKRGoVEO573VxcOZaHPLdhqdNGQSRG8UGIR9mIwY70jWzzPntA
         UiaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770022278; x=1770627078;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PHPbwkIzIjK5g+a9DAApILvFKze2LTooZeuDTI34oEM=;
        b=KBAg5bAghD/bCqXXHYuk/h9TRTaQdKzbLBWqFoYn8kskDoeoJbj3WpRMoRKuUORIcm
         tA+R3fMd7AmWSnoksSokmERz4A8CajPtIb5ae7vpROGeWxvIMQOLs+HiwHqHTC4bG4e3
         j8zGX9bMDcy2A/G/DW4e+W481P28EgryuGp6B2AmlF43eC/agQufZYS/wSHTIgZHC37h
         o1s5xwntmRU7LxTAo8y5iDzT2k080izP9K69cRtVYlcs9zxxQt5aw/oZ6CIBUyk608Ce
         ltOzDBSW1jXDPitQZHbQVvLQ3Qpm8jbZbFsWoHRDV0VIhZlMyHB7z1rSUor6VE5J/7GA
         8Hug==
X-Gm-Message-State: AOJu0YxZqxCGuswOvCPcQFMZVyFdl5V88xpG8Lgd606hg5PcHndohGCU
	uPHs0SLCo/A9FDgjJZnNIPaV6OEQDIZKi3A0qsPqdFSBM87VAi/SPdmN2WE7hrRPD1YF91orFU/
	qHbo=
X-Gm-Gg: AZuq6aIjtwiJbCSYDxu95T+mci1ArfgNlFsZBy0RaFdyY8OpUd4O49cX+mEe617ZSwr
	GO4EVlB4+N4hwDARJAiPHRlQz+TJDm+nFevUwOOtZlf9gNvr82oQ160FDm9D7M+iFlfRgl6m0K9
	sE5lDwyIUWosSivG2EkSWtHT/CXY+0VkthpIBk079G2SYypU3Ps8GADvMRcPbe8WKeQdC3PB7Yu
	UXS3gf3qD/CckZFt0WezFJFEyA8fQnC1mfrQ2hb/olHoeZ3r0o+2j55Mzs0TTznnR5DeD2IOKAe
	ySj40sTGO6g9T6HPCeD7TEcCRVJS+oRxwb57fC4oCy9vyItB4JckEaqob19TCy2o+purZvS6XlI
	PoOrnDtbTWUKSb7F/TZ4l+pUhcVhRYLDorUslPfd5vmy7eKRDFagC73LwsuCHF+x9ydjF05fTVG
	81IkpLi9QIuuKgZBY4UjdKuPXXmzBryl+Co1G4Y5FfdFeIiLoNZIfawpP6UWYtIh1NzzhJJDnO9
	SI=
X-Received: by 2002:a05:600c:8b2f:b0:480:1d0b:2d15 with SMTP id 5b1f17b1804b1-482db486e65mr135417905e9.27.1770022277628;
        Mon, 02 Feb 2026 00:51:17 -0800 (PST)
Message-ID: <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com>
Date: Mon, 2 Feb 2026 09:51:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@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: <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.01.2026 14:10, Jan Beulich wrote:
> @@ -160,10 +161,13 @@ int pci_mmcfg_arch_enable(unsigned int i
>      return 0;
>  }
>  
> -void pci_mmcfg_arch_disable(unsigned int idx)
> +int pci_mmcfg_arch_disable(unsigned int idx)
>  {
>      const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
>  
> +    if ( !pci_mmcfg_virt[idx].virt )
> +        return 1;

Afaict this is what causes CI (adl-*) to say no here:

(XEN) [    4.132689] PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) [    4.132697] ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
(XEN) [    4.132700] CPU:    12
(XEN) [    4.132702] RIP:    e008:[<ffff82d0405779bd>] pci_mmcfg_read+0x19e/0x1c7
(XEN) [    4.132708] RFLAGS: 0000000000010286   CONTEXT: hypervisor (d0v0)
(XEN) [    4.132711] rax: 0000000000300000   rbx: ffff808000300100   rcx: 0000000000000000
(XEN) [    4.132714] rdx: ffff808000300100   rsi: 0000000000000000   rdi: ffff8304959ffcec
(XEN) [    4.132716] rbp: ffff8304959ffd18   rsp: ffff8304959ffce8   r8:  0000000000000004
(XEN) [    4.132718] r9:  ffff8304959ffd2c   r10: 0000000000000000   r11: 0000000000000000
(XEN) [    4.132720] r12: 0000000000000100   r13: 0000000000000004   r14: ffff8304959ffd2c
(XEN) [    4.132723] r15: ffff808000000000   cr0: 0000000080050033   cr4: 0000000000b526e0
(XEN) [    4.132725] cr3: 0000000492a30000   cr2: ffff808000300100
(XEN) [    4.132727] fsb: 0000000000000000   gsb: ffff8881b9a00000   gss: 0000000000000000
(XEN) [    4.132729] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
(XEN) [    4.132733] Xen code around <ffff82d0405779bd> (pci_mmcfg_read+0x19e/0x1c7):
(XEN) [    4.132734]  48 39 d3 72 ea 4c 01 e3 <8b> 03 89 c3 4d 85 f6 74 0d 41 89 1e b8 00 00 00
(XEN) [    4.132744] Xen stack trace from rsp=ffff8304959ffce8:
(XEN) [    4.132745]    0000000300000286 ffff830495bd8010 0000000000000003 ffff830495bd8010
(XEN) [    4.132749]    ffff8304959ffdd0 ffff82d0405fa7ef ffff8304959ffd30 ffff82d040576877
(XEN) [    4.132753]    000000000000000c ffff8304959ffd58 ffff82d04039b81d ffff8304959ffe28
(XEN) [    4.132756]    0000000000000003 ffff830495bd8010 ffff8304959ffd80 ffff82d0405fa90b
(XEN) [    4.132760]    ffff8304959ffdc8 ffff830495bd8010 ffff830498019650 ffff8304959ffdb8
(XEN) [    4.132764]    ffff82d0403983e0 ffff830498019650 ffff8304959ffe28 ffff82d0405fa7ef
(XEN) [    4.132767]    0000000000000018 ffffc9004002b900 ffff8304959ffdf8 ffff82d04039feba
(XEN) [    4.132771]    ffff82d0405fa7ef ffff8304959ffe28 0000000000000000 ffffc9004002b900
(XEN) [    4.132774]    0000000000000000 ffff8304959bb000 ffff8304959ffe78 ffff82d0405ff666
(XEN) [    4.132778]    ffff82d0405713b8 00000000ffffffff 00a0fb0081f456e0 ffff8304959b3010
(XEN) [    4.132782]    00000000c0000000 00000001ff000000 ffff8304959fff08 0000000000000040
(XEN) [    4.132785]    000000ec00000001 ffff8304959fff08 ffff8304959a4000 0000000000000021
(XEN) [    4.132789]    0000000000000000 ffffc9004002b900 ffff8304959ffef8 ffff82d0405711b2
(XEN) [    4.132792]    0000000000000000 ffff888100456938 ffff8881001470b8 0000000000000018
(XEN) [    4.132795]    0000000000000000 ffff8304959ffef8 ffff82d0406213f9 ffff8304959a4000
(XEN) [    4.132799]    0000000000000000 ffff8304959a4000 0000000000000000 0000000000000000
(XEN) [    4.132802]    ffff8304959fffff 0000000000000000 00007cfb6a6000d7 ffff82d0402012d3
(XEN) [    4.132806]    0000000000000000 00000000ffffffff ffff8881001470b8 ffff888100b88900
(XEN) [    4.132809]    ffffc9004002b900 ffff8881001470b8 0000000000000283 ffff888100456938
(XEN) [    4.132813]    ffff888100065410 0000000000000000 0000000000000021 ffffffff81f7842a
(XEN) [    4.132816] Xen call trace:
(XEN) [    4.132819]    [<ffff82d0405779bd>] R pci_mmcfg_read+0x19e/0x1c7
(XEN) [    4.132822]    [<ffff82d040576877>] F pci_conf_read32+0x55/0x5e
(XEN) [    4.132826]    [<ffff82d04039b81d>] F pci_check_extcfg+0xb1/0x13b
(XEN) [    4.132831]    [<ffff82d0405fa90b>] F physdev_check_pci_extcfg+0x11c/0x121
(XEN) [    4.132833]    [<ffff82d0403983e0>] F drivers/passthrough/pci.c#iterate_all+0xa2/0xe2
(XEN) [    4.132836]    [<ffff82d04039feba>] F pci_segment_iterate+0x4e/0x74
(XEN) [    4.132839]    [<ffff82d0405ff666>] F do_physdev_op+0x362a/0x4161
(XEN) [    4.132842]    [<ffff82d0405711b2>] F pv_hypercall+0x6be/0x838
(XEN) [    4.132845]    [<ffff82d0402012d3>] F lstar_enter+0x143/0x148
(XEN) [    4.132847] 
(XEN) [    4.132848] Pagetable walk from ffff808000300100:
(XEN) [    4.132851]  L4[0x101] = 0000000000000000 ffffffffffffffff

There is an important comment in pci_mmcfg_arch_disable():

    /*
     * Don't use destroy_xen_mappings() here, or make sure that at least
     * the necessary L4 entries get populated (so that they get properly
     * propagated to guest domains' page tables).
     */

Hence it is wrong to bypass

    mcfg_ioremap(cfg, idx, 0);

. v4 coming.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 09:14:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 09:14:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218421.1527160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmq0d-0002fe-Bf; Mon, 02 Feb 2026 09:14:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218421.1527160; Mon, 02 Feb 2026 09: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 1vmq0d-0002fX-8s; Mon, 02 Feb 2026 09:14:15 +0000
Received: by outflank-mailman (input) for mailman id 1218421;
 Mon, 02 Feb 2026 09: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmq0b-0002fR-UR
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 09:14:14 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 89591488-0017-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 10:14:12 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS6PR03MB989137.namprd03.prod.outlook.com (2603:10b6:8:368::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 09:14:09 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 09:14: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: 89591488-0017-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oAIA6HTUODEkNh3e2mGZgUYPHvxFxIs4G7Q5gYCnvleBURYT3t99FgRuCzUjx5Jaheh4e03k16H07nThX35ztjazTiuORySP7jD99KYS2nvPbEUM99l6F3IW9vcnOsGTv3XOGQmjNhpxG3K+l3Ir8Bv0ji2gcGbNMgB0pSBlFhtgWrjfq+tY54S5a9aqRtq+i1mXpdVPcQlkDBh+0yxpBEK9GzzcAb0ttxasdnll+qkAFen4AfPGNd8ChFGV/97GihHBk+XnpHFbfRTzmMgQ0VbOgY/z6e7fEgZdME5YpWM2EoTLgqG75XLZL8be0hC/tUd4jFCNaP8D+SRmq2Llqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KscddeO4ygpsCh4lDfZx/RSlXshv9qIhQplY2B/zqv8=;
 b=Dyqqv3xCHacTli/a3JUyZLJBEEs0x8Nw77x3e14o6BWBcmeEb4aU0mYImQASD7acSHDMvK5qBlKtRuNxFdPKW/dYw1KqAqU4oZVbZP8apU/yeaaHmCpbB0L48RtyH3P+dxIPy0W4DCkhTZm7wf4CpbMLH2f0mXrKrv2tAoBunbpwh1hVrzUv7XTHZrb7bRHpN29XSKD0Vdh+ZyZ0WV/gn8l8BuLG4pkUZNe/onfSxik9NAoTiIHEubsvegxWFPDOaRaGMLY+OoIgIBrlAD6Lv7G/U3aBgLZcOZ1DKQL8R3C8DBfN6IEXK3KvJ6KaZxZR7BoydQpHTVPyx+aEnZ4Gkw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KscddeO4ygpsCh4lDfZx/RSlXshv9qIhQplY2B/zqv8=;
 b=FCZK1lJZzMHgxGwiNfA0TJcRleAK6UB+oWtwRfsk7eJk8jtKiJBSE+DXS5tW3iFiDrPVkZdlcZH5iDs9JByuGhTM5fg1oxG7IR+fq6OA2BVz7QQctAEBo10XID87nNFLNOcqCo3Xm+dAfiDpWMizQWFXtTwVyHK5CKhT0m4bYT0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 10:14:00 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
Message-ID: <aYBq2EoeP_TGv_sK@Mac.lan>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
 <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com>
X-ClientProxiedBy: MA3P292CA0054.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::15) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS6PR03MB989137:EE_
X-MS-Office365-Filtering-Correlation-Id: 520de708-1bf1-4048-0885-08de623b6894
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YnV6ay9qVVppSWRRbXhMOXZNTk1WT1lhajhEVEUzY3E2d1dralp6TUd6Yisx?=
 =?utf-8?B?azhKUUlCWEZoUnZQZFNwSnhNOG9MQTFMazExeWlrVytoTi9YUUxJdGVMaTZW?=
 =?utf-8?B?NXJZSGx1cEUvNVdwWGpzWkRTWmthTUROUjdYMXRlUkxCZmU3dlJVdUpBeU96?=
 =?utf-8?B?Snp5NDJOY0YySnA2WGdYclBRNXd4QmVuT2JKMDFmdkJ0OVNJdlhqOStMYTlt?=
 =?utf-8?B?blRYZUFEYXd3ZWZBcHJJazAzTzdBelVrSFBVNGE5ZHB6SnM1VThhV0lhaXZz?=
 =?utf-8?B?R0JTRDc4ZnJ4SEU3MHpiUldEVGQwWWpHY2tLcnVrZHZiVnVxeVlnc2J5V3BL?=
 =?utf-8?B?bUl2Sk5kRHIya2RoTVU2ZFFndnBzWHNSRU9NcmVrL29kQms5dHh2REpSZERI?=
 =?utf-8?B?ZUhkVXdCeDRLSk5haEw1NmFydzNDK0ZYRHdmdlhhMkdTY0UwYU9tNWVuQmNH?=
 =?utf-8?B?bDJHVXpiU1ZISWFzN05BYTFzT1JTbDVpSG1XUEN3SHpnT3VDZ1dVNnZVOXNS?=
 =?utf-8?B?bmRVWFI4T3lDQzloSkFZR1BFY3ZXeHowM3RQWFJLMExvRzNtbzY3OGRuTzBo?=
 =?utf-8?B?d1U2ODNoSzQvY1JDUjcrL1FQSkdvWTFXV0VWcTNqSHVjMERVanJlenNWUXRw?=
 =?utf-8?B?RWcxUDdBekxLT0VRNytaWUViRFNxZ2VYdGdVRFErN3c5MkJyRWdjbXBidVZx?=
 =?utf-8?B?QmdYSjAyMzVJTEdmMVJwdlRUUEZCOFQyWnhwdkJtZFoxNjdBYVdYYlRsZTh5?=
 =?utf-8?B?aE1EVDU4V3RaQ1hzRUVpSzA3aHE2NkF2RHdheDFTVS9NaFMyQTh4c0RIRVNI?=
 =?utf-8?B?ZTFMd3d1NEt6Z012TGxBRjlWKzljYjY0WEVBWFBaOUVqa0h5U2pxcG5zZVYy?=
 =?utf-8?B?czVOZm9nQXNTY1JDRHVXdDVpMXBEYktkZG12czJyT2c1cHQrbGhZNHlJWjJS?=
 =?utf-8?B?ek9ibURVbTZKREJ0d3ZCYWpqKzN6cGttK1hBRThaK1Z3SHl3R1lxYWhKVm9N?=
 =?utf-8?B?Wm9ueHpHbURleXkrN3QvWXU3b0dHQS9PYjRXUVpxNndRend1MVpnOFV2UlU4?=
 =?utf-8?B?SE1IVnUyMVlKRTNjMHZPb2hNZVJ3M1RpYU1jUEpDa092azRXU0F2VGkrWlMz?=
 =?utf-8?B?WUJGQWM1SUx6QzluNHhBK0ZtYkZaU0RIRkpNZUgwUUw5cWZ4dE9mbWc0ejky?=
 =?utf-8?B?RTFydk42Mm1JZkptQnl5ZjF2SWlyQXNPN2FqMFhMK1FSMU5lblBFcWNuckhO?=
 =?utf-8?B?eUhoZTVSaEtlblYyNXpFVFpSc0NjZEF2OGJEbno2Q1Q1cmdjZUxsQkhVejQy?=
 =?utf-8?B?ZmZCSGc3aEtXRG5ndkdYM3drUVRKZ0dHM1Y5SGhpZkxYaFJSamVNWWxrczZS?=
 =?utf-8?B?b2dFSll5alVONnVtTWxSbUhheFlXQVZuT2RHektNWE02aGhNWFNtUEJkVEw3?=
 =?utf-8?B?cXRUN0hxZDVSVXZZS0hWUFZtdGRrcnN1VWU0b2xNSk5qSGlrR3U5b0FxNmlC?=
 =?utf-8?B?b0psUkpzYkFvUk92cXBWSW93eDk1YitPR0pmNEphb1hLOG1jc1RYSjVRNEF6?=
 =?utf-8?B?Y2F4VXB1MEhKV3I5WmJkYXNsTkZNa0oyQWJXZlFjdU43cWNNdVlZcFAzUmd5?=
 =?utf-8?B?Q3BHOGFUV0VUMm9PdnEzMkZsZXgrQmhUTDArN3pOSmFYTGM4MTJSbjI3eXZ3?=
 =?utf-8?B?ck94dzRoVGxSd0xIUzlLZ0hwb1FwUFZsWVpabTdJU2tSQklIMHVja1FSRUNw?=
 =?utf-8?B?ZkFvRGNuSVVtSElVZ1poSWsyUzhDSGFmQTk0N1Q3QzROMlRlSiszM3lYMEEx?=
 =?utf-8?B?a0svZmxNSmp4d3U0MFhsU245Z1FjRmxKUkpaMmhzcTJ4eUZrdW8rRkJFbGxO?=
 =?utf-8?B?OC8vT3hjSlVwQUpnNGFlWG9malFoc1oralJmKzcydVJjam9WSW80R0l3YmRa?=
 =?utf-8?B?ZDBhNXgzZFFvY05qWXRRTG1VaTlUb1F3bkJiNXdxeGRja1JwWmRHRXNuTjRQ?=
 =?utf-8?B?dUtiZWZaVlNVUnFja041ZEJXdE5GTlY1M0FqRWpzdU1hYVAzYVdBYjVBZ3hD?=
 =?utf-8?B?bzlwSzJ2MTFoM1FQOVJ6UzRVbUF2MjFvS3VGbHhEcHpNMFlmZVdIaWFxSzJX?=
 =?utf-8?Q?gl5o=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a1ZtYkk2TlZuZFhSdGVpaWUxZk5TZUw4MnV2UTBwZWRsUU1FMDY2b1BYMWFN?=
 =?utf-8?B?WUxlUWtVcVc3YlFSeHJOeFdhUFFMRUo0THVTWU9JWUpjd2lHVVVwMTdYT0Vk?=
 =?utf-8?B?Z2N4OUR5YnRhUHJibHJmdmdGMEdDOWpsRzhSWkoyOVpERmE0OFpwSHBJRmhu?=
 =?utf-8?B?OElPRi9kWU0vZ2xrY29IUjFsVWFETUtNWldIaG0xRXJvQTgxTmpJays4QTRR?=
 =?utf-8?B?L3NUNVM2MjA4Si9FeW5hNGIvdzJDQ2toL1l5ZHlRUXFYYnFhQnJpWkdnQVZs?=
 =?utf-8?B?TGM2RWFNMmJzK0JtcTJjNEhneDdPQ1hhQWN0WVU0TWNWN1QrcU5lMnBEdWhS?=
 =?utf-8?B?dzNRUXhlMFM4Z1FRN3V2N0hJVGMwZlNhbjhDOFRlM0lRNDFqaDdUeTI2WWtl?=
 =?utf-8?B?WVlrTlN1djVWWm5jZHJ6Yk1wbHc0cmxFOFFnTkZpR2tUYjM1M25XLzVqMmdv?=
 =?utf-8?B?aFNoOXM3TEhJOStlbzU1eWc1ZVhGQ0E0T054dm5IZTRvNUxPNFYwaENYZ2dV?=
 =?utf-8?B?cTlTenBDc0dVdWd5OXhtZEx2KytCMXVucHBiU0ZOYVQ4eisxcFRMWVp0c1NB?=
 =?utf-8?B?ek1KWTJOcVpocldQWEtPdUVLamd5emdYb0pjWE9YQ24vRFN0ZGxJYmhGaTQz?=
 =?utf-8?B?N2lEVmtRY1VSUFRSZk1mK3hpZkhqQUFKczFLTTRGVXdWV1E0S1B2RnVQb1dU?=
 =?utf-8?B?VFMxQWRia1R6SHNlaXRXVkxDcWFXQXEyL0lzeHFja2VhcWV3OC9aTGZxcHZx?=
 =?utf-8?B?SHhCaG5semxUMTVGcVJEUHdJWEtwMTlFM2lnNTU5VnpOOUs5bGRYV2N4K3Rp?=
 =?utf-8?B?bGlIQnJUa3pKMGt0dVJ2VzhjYlRBWlRpY2dMOEF3eEZDWGdJUC93Wmp2Q3o1?=
 =?utf-8?B?cDBGR1V3RkNydWZ1ek96ZnpKT0JwNUNCSzAzT3VMVXVwQXJwaUVSQjFkSXhU?=
 =?utf-8?B?SWdSU1l3bVRKZEd4NkFwMncyT09kdXZQZ2hBUVpwdXgrS0JLTmY2VXJZV0t3?=
 =?utf-8?B?dk9zUVdsNVBBOUJGVDlyL29vVnovY0poRFRIbmRaN3hhRkUxVWhVNG1lUnpl?=
 =?utf-8?B?VzZkNWkxTGVCOXBWc1FoZXNZdHBvVkpTcHJzeDQxQ1VWTm9Jc0twM2V3N0lk?=
 =?utf-8?B?QjV1QzgyYzFCSUlxY2pGclhsYmo0Mm9qam5kOCt0T0RONkJud1dTaWxBWkM3?=
 =?utf-8?B?UExNZUxyZFNQT29hakxhTEVPZHJyK3VFWkV6ZDBTNi9CL0MwczVubWx0ZVZW?=
 =?utf-8?B?TmkxMEpTVkw0elVPd0FDWldJRTA1djFNcW1ocXF2OUtqOTRoVjJmaU1qMHhF?=
 =?utf-8?B?L0pZamVNR0wydEw3RC8xWkE2R054eVc0eXdRVW1mQkhhamlOVnRBQVJjTXFi?=
 =?utf-8?B?SlVqNWRWQjRFaUo2NlQwelVOYlhNSjVyYjlBR0hBNVhDbXZZNE1UUzkwK05q?=
 =?utf-8?B?LzNxa2QxMkdGMnY2SGF3RzN0OFliS3FmdDhvaXVjSHZ0Q09uRFpMWHl0OTAx?=
 =?utf-8?B?dGttWS9qOGlmc0ZyajRXYWY2WWxyMzhFSVpSNWZwM042QTZ3c1lRTTFsb3BJ?=
 =?utf-8?B?ZmF4R1BSdTB5OURiOHllc0tCRXpUOGo5SlJGR2lkYTNvWlozRndCME1IcjVT?=
 =?utf-8?B?OWR0Zkk4ZjI2ckh5U29FSEVkdjlSdkRvN0FvMWdhWm9PN1VSV1dkVHozaDhY?=
 =?utf-8?B?Sk1HcWZNWkJZbnRKdEJKUFh2aXQzYWIxMFErWmp0RHNLUW5KSHpYNVNDWU9N?=
 =?utf-8?B?YndsUDlyVGRjTE1mM3NjMXZGRThORTZSRllwSXJ5NVhHZDMrU0FOZzRGbkhB?=
 =?utf-8?B?cXVObzVwaEg1ZU9odTM0UVdVcm1aQ29Fd2prMGVyN0xpVU5ZelZ3cHdiWEZa?=
 =?utf-8?B?NncwbnBGNExDRDJRSGp6VU95RjRSdndUSlBEZXVPdERwNWVlakNnQUpZRklx?=
 =?utf-8?B?TkhkK0NQSVpJZ0lTMjVCYTl4R2N4cjl2akc4TXJuak1Ha1FtVS9uRkUwM0Yr?=
 =?utf-8?B?NHhqcklZRDYrdEhEaGgwR1MyRmh4aXZVNW5WamlZcTZzbG54SGFybWtQYW1R?=
 =?utf-8?B?eGhyTXpnUHpWcGVWNHBrTGN4d1lKQ0toUnA4R29sRkdzcC9sM09LZjJiUCtZ?=
 =?utf-8?B?dWZoUTBNVUFvZ2hhVDBPVlQvSjVaR2tweitlWEJ3akJJTGRrWkdNVzlVeXU4?=
 =?utf-8?B?eUlua2t2VHBxc2FXTnRHVXppQmRWRVJTK2FaNFF4RU1CeDRkK2FEVkVnYVpE?=
 =?utf-8?B?TlJSNFpVTVcyRHQ1cUJqNmJ3S1NXZnA3aXg2bkIzQVJyNnkzOHBXRS9FNU1w?=
 =?utf-8?B?NVhDUkVCOHBiUnlFOGFzbEYwUk03SmFlVEVPaFV5UGdPeWloc2t5UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 520de708-1bf1-4048-0885-08de623b6894
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 09:14:03.1740
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nkvfBuG10qk6oNyWTKr5ioXUtgA1T8pUxs4yu4L3arVTbAtNKJGB+HbAPIsM/lHa1TEvdWMYL93VYJU86Ud09g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS6PR03MB989137

On Mon, Feb 02, 2026 at 09:51:18AM +0100, Jan Beulich wrote:
> On 29.01.2026 14:10, Jan Beulich wrote:
> > @@ -160,10 +161,13 @@ int pci_mmcfg_arch_enable(unsigned int i
> >      return 0;
> >  }
> >  
> > -void pci_mmcfg_arch_disable(unsigned int idx)
> > +int pci_mmcfg_arch_disable(unsigned int idx)
> >  {
> >      const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
> >  
> > +    if ( !pci_mmcfg_virt[idx].virt )
> > +        return 1;
> 
> Afaict this is what causes CI (adl-*) to say no here:
> 
> (XEN) [    4.132689] PCI: Using MCFG for segment 0000 bus 00-ff
> (XEN) [    4.132697] ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
> (XEN) [    4.132700] CPU:    12
> (XEN) [    4.132702] RIP:    e008:[<ffff82d0405779bd>] pci_mmcfg_read+0x19e/0x1c7
> (XEN) [    4.132708] RFLAGS: 0000000000010286   CONTEXT: hypervisor (d0v0)
> (XEN) [    4.132711] rax: 0000000000300000   rbx: ffff808000300100   rcx: 0000000000000000
> (XEN) [    4.132714] rdx: ffff808000300100   rsi: 0000000000000000   rdi: ffff8304959ffcec
> (XEN) [    4.132716] rbp: ffff8304959ffd18   rsp: ffff8304959ffce8   r8:  0000000000000004
> (XEN) [    4.132718] r9:  ffff8304959ffd2c   r10: 0000000000000000   r11: 0000000000000000
> (XEN) [    4.132720] r12: 0000000000000100   r13: 0000000000000004   r14: ffff8304959ffd2c
> (XEN) [    4.132723] r15: ffff808000000000   cr0: 0000000080050033   cr4: 0000000000b526e0
> (XEN) [    4.132725] cr3: 0000000492a30000   cr2: ffff808000300100
> (XEN) [    4.132727] fsb: 0000000000000000   gsb: ffff8881b9a00000   gss: 0000000000000000
> (XEN) [    4.132729] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
> (XEN) [    4.132733] Xen code around <ffff82d0405779bd> (pci_mmcfg_read+0x19e/0x1c7):
> (XEN) [    4.132734]  48 39 d3 72 ea 4c 01 e3 <8b> 03 89 c3 4d 85 f6 74 0d 41 89 1e b8 00 00 00
> (XEN) [    4.132744] Xen stack trace from rsp=ffff8304959ffce8:
> (XEN) [    4.132745]    0000000300000286 ffff830495bd8010 0000000000000003 ffff830495bd8010
> (XEN) [    4.132749]    ffff8304959ffdd0 ffff82d0405fa7ef ffff8304959ffd30 ffff82d040576877
> (XEN) [    4.132753]    000000000000000c ffff8304959ffd58 ffff82d04039b81d ffff8304959ffe28
> (XEN) [    4.132756]    0000000000000003 ffff830495bd8010 ffff8304959ffd80 ffff82d0405fa90b
> (XEN) [    4.132760]    ffff8304959ffdc8 ffff830495bd8010 ffff830498019650 ffff8304959ffdb8
> (XEN) [    4.132764]    ffff82d0403983e0 ffff830498019650 ffff8304959ffe28 ffff82d0405fa7ef
> (XEN) [    4.132767]    0000000000000018 ffffc9004002b900 ffff8304959ffdf8 ffff82d04039feba
> (XEN) [    4.132771]    ffff82d0405fa7ef ffff8304959ffe28 0000000000000000 ffffc9004002b900
> (XEN) [    4.132774]    0000000000000000 ffff8304959bb000 ffff8304959ffe78 ffff82d0405ff666
> (XEN) [    4.132778]    ffff82d0405713b8 00000000ffffffff 00a0fb0081f456e0 ffff8304959b3010
> (XEN) [    4.132782]    00000000c0000000 00000001ff000000 ffff8304959fff08 0000000000000040
> (XEN) [    4.132785]    000000ec00000001 ffff8304959fff08 ffff8304959a4000 0000000000000021
> (XEN) [    4.132789]    0000000000000000 ffffc9004002b900 ffff8304959ffef8 ffff82d0405711b2
> (XEN) [    4.132792]    0000000000000000 ffff888100456938 ffff8881001470b8 0000000000000018
> (XEN) [    4.132795]    0000000000000000 ffff8304959ffef8 ffff82d0406213f9 ffff8304959a4000
> (XEN) [    4.132799]    0000000000000000 ffff8304959a4000 0000000000000000 0000000000000000
> (XEN) [    4.132802]    ffff8304959fffff 0000000000000000 00007cfb6a6000d7 ffff82d0402012d3
> (XEN) [    4.132806]    0000000000000000 00000000ffffffff ffff8881001470b8 ffff888100b88900
> (XEN) [    4.132809]    ffffc9004002b900 ffff8881001470b8 0000000000000283 ffff888100456938
> (XEN) [    4.132813]    ffff888100065410 0000000000000000 0000000000000021 ffffffff81f7842a
> (XEN) [    4.132816] Xen call trace:
> (XEN) [    4.132819]    [<ffff82d0405779bd>] R pci_mmcfg_read+0x19e/0x1c7
> (XEN) [    4.132822]    [<ffff82d040576877>] F pci_conf_read32+0x55/0x5e
> (XEN) [    4.132826]    [<ffff82d04039b81d>] F pci_check_extcfg+0xb1/0x13b
> (XEN) [    4.132831]    [<ffff82d0405fa90b>] F physdev_check_pci_extcfg+0x11c/0x121
> (XEN) [    4.132833]    [<ffff82d0403983e0>] F drivers/passthrough/pci.c#iterate_all+0xa2/0xe2
> (XEN) [    4.132836]    [<ffff82d04039feba>] F pci_segment_iterate+0x4e/0x74
> (XEN) [    4.132839]    [<ffff82d0405ff666>] F do_physdev_op+0x362a/0x4161
> (XEN) [    4.132842]    [<ffff82d0405711b2>] F pv_hypercall+0x6be/0x838
> (XEN) [    4.132845]    [<ffff82d0402012d3>] F lstar_enter+0x143/0x148
> (XEN) [    4.132847] 
> (XEN) [    4.132848] Pagetable walk from ffff808000300100:
> (XEN) [    4.132851]  L4[0x101] = 0000000000000000 ffffffffffffffff
> 
> There is an important comment in pci_mmcfg_arch_disable():
> 
>     /*
>      * Don't use destroy_xen_mappings() here, or make sure that at least
>      * the necessary L4 entries get populated (so that they get properly
>      * propagated to guest domains' page tables).
>      */
> 
> Hence it is wrong to bypass
> 
>     mcfg_ioremap(cfg, idx, 0);

Hm, I see.  The L4 slot must be unconditionally populated before we
clone the idle page-table, otherwise the mappings won't propagate.

What about unconditionally populating the L4 slot in
subarch_init_memory()?  That seems less fragile than doing it in
pci_mmcfg_arch_disable().

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 09:15:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 09:15:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218429.1527170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmq1N-0003B3-Om; Mon, 02 Feb 2026 09:15:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218429.1527170; Mon, 02 Feb 2026 09:15: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 1vmq1N-0003Aw-L1; Mon, 02 Feb 2026 09:15:01 +0000
Received: by outflank-mailman (input) for mailman id 1218429;
 Mon, 02 Feb 2026 09:14: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmq1L-00032w-Sn
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 09:14:59 +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 a4f93735-0017-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 10:14:57 +0100 (CET)
Received: by mail-wm1-x344.google.com with SMTP id
 5b1f17b1804b1-48068127f00so35491865e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 01:14:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48066beeaf9sm468091395e9.6.2026.02.02.01.14.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 01:14:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a4f93735-0017-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770023697; x=1770628497; 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=cByf7Yt1CtIIDM1Ff10eXp+WJKmaWj/GQ+GyIsIKMYw=;
        b=NiTmg5IuZzDMJhdkEYI2blHv9IvBVshkrIiM4cEpCqJ85EiGWOaCIUMWflTpNezDxP
         BiF4kI5g64xdF4qK3pJI8K8g30TwASiDqKGoQfqktjUirAtoLxPuv4PwPnS6e7JhxykC
         ocE4Dbz9vZv5WK5YTrd+7DvtgxmLKKiNicwnMpdtLHygRjm9ucHSazcfy+f9QzfoiATF
         csPQZtVKOBs5eqr9krmY0EmzaIcU1YYaeZkFkmlmxS2kPKTTeSO6zptqzPM14GmmrmNK
         9w2m3cUYlLzsUvwATFBK7GJqDPUnSM786BfU1tQ4Bkt1rh7wmH/Fn4U4ZT1gb6B+Xaqq
         LUIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770023697; x=1770628497;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cByf7Yt1CtIIDM1Ff10eXp+WJKmaWj/GQ+GyIsIKMYw=;
        b=AD/WpiFrSFL4c6Ok8w/kLo1xKViS6TkftqvQOmYP7+T4CaRmoBKINGopYFL2m0qLR0
         W7KeEe7qMwEZekVS8CPNBYrWLk4G4WVRPssYKqvQuSTMRxYrPw0syfBZeunaAiRF+lCI
         Qr59TcHkNpza7C9DG9QveeIpW1tTrF2zZabrkaroshnQqBNUmlsEyx/BgGcHnr/mB4K5
         6uOXS4AENo4txwdUG7KSxcQDWO91S8XqYZzPrGvhwkqm6x3ZfEEMR5tYjqXc3dkMPgmx
         RYvS2ORhFUehLdoZxvdm+gL5ffWAvUJ0h/lyFeFW2VDXlXwtGkZEJOeNxOQYi9lW/MmA
         01TQ==
X-Gm-Message-State: AOJu0YwrK0Ll6pqiJZFEWbm+11T9tyTeuStx6yrTcZQfExIWs6ZrHriw
	6nncZv1ehm7bBqwtnaWOcFSVY32wleWtTOBOpXxDKmivPz1Uv9AvshMqVD4hCRaj2wTDSl40/hF
	KGrXpwg==
X-Gm-Gg: AZuq6aI6muYUy8afJbJHtPkG8jVtfx2Owacms3WaW17qN2VF1a5xgw/AotTQ8mMIfa4
	63gnmYLh1r3eok6qCSVk5A/ynmy9RX9sr1hGa1jCOPWwUZ0D28GPSISqA0tOWmhvfkTzzkUI+zH
	ZHOm/1pKv8PTemmpDAxfTWmBp6OtlugsjgmDamWMffxMLFXtJzBAXiJyj+m98zs+PKqRpkHsevK
	XZI2SXd6NcvgGqloc6q+ugOXVKFXenghFtKVJxfvXE3F9Q9aDFQzJ6NiPJo6lHaoO0tWjvDmTH6
	JKKB20YFYj6QRPyoO6t1rd0O8OYLjtpszkAzYHUPe/mQTAMjILmxUgIUG22IoZ4WBl0JmufqpwB
	7wVodgNk9bixzZLeHGJ4GWeJktGhn6s9M4iki/s8Uc4DXHru7MJrtiacXbDBgPdLw0YsAlVhF2k
	pExAFZB8zN5JjaJNffAasYizUOPcfA7RzXZK37TTVrNewRVpsFFSZTXd1z5IX9ofdHrpE/xRK0u
	hw=
X-Received: by 2002:a05:600c:8b05:b0:47d:18b0:bb9a with SMTP id 5b1f17b1804b1-482db4a5133mr142222615e9.33.1770023697188;
        Mon, 02 Feb 2026 01:14:57 -0800 (PST)
Message-ID: <0873c6e6-eac9-4d9a-bde0-347050b1547e@suse.com>
Date: Mon, 2 Feb 2026 10:14:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/6] PCI: determine whether a device has extended
 config space
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>, Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <99d45a27-ce67-4f10-9883-dba96f055285@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: <99d45a27-ce67-4f10-9883-dba96f055285@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.01.2026 14:08, Jan Beulich wrote:
> @@ -1042,6 +1053,79 @@ enum pdev_type pdev_type(u16 seg, u8 bus
>      return pos ? DEV_TYPE_PCIe_ENDPOINT : DEV_TYPE_PCI;
>  }
>  
> +void pci_check_extcfg(struct pci_dev *pdev)
> +{
> +    unsigned int pos;
> +
> +    pdev->ext_cfg = false;
> +
> +    switch ( pdev->type )
> +    {
> +    case DEV_TYPE_PCIe_ENDPOINT:
> +    case DEV_TYPE_PCIe_BRIDGE:
> +    case DEV_TYPE_PCI_HOST_BRIDGE:
> +    case DEV_TYPE_PCIe2PCI_BRIDGE:
> +    case DEV_TYPE_PCI2PCIe_BRIDGE:
> +        break;
> +
> +    case DEV_TYPE_LEGACY_PCI_BRIDGE:
> +    case DEV_TYPE_PCI:
> +        pos = pci_find_cap_offset(pdev->sbdf, PCI_CAP_ID_PCIX);
> +        if ( !pos ||
> +             !(pci_conf_read32(pdev->sbdf, pos + PCI_X_STATUS) &
> +               (PCI_X_STATUS_266MHZ | PCI_X_STATUS_533MHZ)) )

To not violate Misra rule 7.2 I'll fold in the change below. I guess I'll
further follow up with a patch adjusting other problematic #define-s in
that header, too.

Jan

--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -382,7 +382,7 @@
 #define  PCI_X_STATUS_MAX_CUM	0x1c000000	/* Designed Max Cumulative Read Size */
 #define  PCI_X_STATUS_SPL_ERR	0x20000000	/* Rcvd Split Completion Error Msg */
 #define  PCI_X_STATUS_266MHZ	0x40000000	/* 266 MHz capable */
-#define  PCI_X_STATUS_533MHZ	0x80000000	/* 533 MHz capable */
+#define  PCI_X_STATUS_533MHZ	0x80000000U	/* 533 MHz capable */
 
 /* PCI Express capability registers */
 



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 09:21:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 09:21:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218439.1527180 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmq7d-0004so-Cy; Mon, 02 Feb 2026 09:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218439.1527180; Mon, 02 Feb 2026 09:21:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmq7d-0004sh-9q; Mon, 02 Feb 2026 09:21:29 +0000
Received: by outflank-mailman (input) for mailman id 1218439;
 Mon, 02 Feb 2026 09:21: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmq7c-0004sb-KL
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 09:21:28 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8cb1992a-0018-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 10:21:27 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH7PR03MB7833.namprd03.prod.outlook.com (2603:10b6:610:249::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 09:21:23 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 09:21:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8cb1992a-0018-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g4aAjPuWqmX5H3tmul9S+UUCij59WEX7jTi/FAfPQSoyjlUVFBRws3ONkwMydqZSj1TJyd0WmFxoAha+hmiYHThePmPWp9OPJzk9Tv9yQdQkonzJEZSPyGFppJPY0nCIUe28TCuXAUHFxsYaftIkcZEhNrE0oFVZDQep3AxT/IgT9sC0IqmWKzovZAz0a4C19TN55y9jyU+Ko69SViZMBOaDToLulMZtvc5NyyRwOwLU39Y/YOh3l3DgIuSUl800N0ic6tW/X1iLBV0H9pyI6PD6nJHBoQBSszdv8785tu/VkQ6hDf9aBQY/dCUYDhFOqFA89AUj6TYVgbdngzozVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=znUDnci0R8WKNobrONWueMov6XMO8k+67w/JNfIRzUw=;
 b=ln6lQORKyLLlC8ON1KMv6LAmVa587JakbBp0O1IekVcda5ZwtHhdYl9MZLH4e8CN52sRWC4mXi72/qo6EN5U9CwtOpdx8aY2qFcFaqO1MwbHVUtD636h7giU60otT7iztJxbcZOTP3gzUoG+yQj1ztaLgezMvoDjFQvRXbjgNMk9Hr0y+IFK2A9pJmUBvSoNQ8E/xRKSUuBj4O6WPZ0M6KnPjCtlbceHtOHt9JVr9e1wOp1/ZqNoJPQ9p4UqLj7UFyOuVRghLZVjRTEB3204DDlQWxkctcVZvbNz3EdfIJkskDQTNjEY/SVjAmjHm3mnQ25L4LSzufKp37jCCJDtQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=znUDnci0R8WKNobrONWueMov6XMO8k+67w/JNfIRzUw=;
 b=aXEetn1iL9xevw2N4r5uBxWosaaTRUUU0J3wqAJlsJq8RuvW9tp7RaF5qL3IzV2fsEmzHz+kfa4vC7gcFR8neSYF+4JEh+VGzc7xmSUzJU8KSHXr3Zq3V2Zw5+VIwRgSSfgT5YOL34LTXhaCz+HZZUWC1IPwg3wFym6b/DIt/Zs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 10:21:19 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 2/6] PCI: determine whether a device has extended
 config space
Message-ID: <aYBsj4BEvtsUncHY@Mac.lan>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <99d45a27-ce67-4f10-9883-dba96f055285@suse.com>
 <0873c6e6-eac9-4d9a-bde0-347050b1547e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <0873c6e6-eac9-4d9a-bde0-347050b1547e@suse.com>
X-ClientProxiedBy: MR1P264CA0087.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::25) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH7PR03MB7833:EE_
X-MS-Office365-Filtering-Correlation-Id: 160f3659-0ee9-4d57-8f15-08de623c6f0f
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?SCtMS0l0SWFkM2g3ZXcwZ0w2UDlJaG9GYm1reDVQblVPTllzdENDL3d6Z1Rp?=
 =?utf-8?B?bEN0RDh6ZXBQbm5wU0ZrRTV5bFFBVEhVRHlUdi9QOVN1VEdHcHJxSWR0c05B?=
 =?utf-8?B?RFVVOHh1RSttbC96azV5SER6Z3drTkRkYmsvemFLQ0loTWFZajd4L2xhOVg2?=
 =?utf-8?B?MmVzNUs1bzlMcnFaaFVnbmE3cElaWkZrV2VsOVpRUlYza0ljVmZ2QzhUWEl4?=
 =?utf-8?B?cENuN0s0MDcrQ3BXTnd3UkZsM3JXS25PNjdEVkN2T3QvWm9kOVZZVU1Mb0dC?=
 =?utf-8?B?d2tjczkySEVZRDNyZVhjZTRqUlFTek5rOWhFWk9YYW8rMDhkTW9WUmwrSmZn?=
 =?utf-8?B?Y0I0Qm1WNTN4Ulh6SUFBMThxSEw0Vno3blk1MkVQQTRVSUJVSUpqMFdjQjJE?=
 =?utf-8?B?Q1o1RHRwa2RCb3RtWHFXaHlkQk9CR2JPdC84bTI4UTFmRG1EaS80WktxR2RB?=
 =?utf-8?B?Q2JWSlR1WjI4YkZrd1NON3JyTUE4VlUwODh6OFQrMlNjdTdhRmQ2SFYwUGlH?=
 =?utf-8?B?dE5EKzVvT0ZzS09PWVFtYUhhQkQzZ1hVV0EwUjd0ZHhQN3RBZVFaMHE0V1da?=
 =?utf-8?B?bGVxYUczcE1kbFIvK1k3NTI3YXlkbEd5U1dBQWcvT2EyZVRVaEU3ckNmTHNV?=
 =?utf-8?B?dmpvWm4zVzZGMWVGcXhJYWg1eXQ1OWlBOW5ZU1E0TjlYeGtjaGRzK05XckVC?=
 =?utf-8?B?cWhLeDdyTEc2NGxNUnFPMGFaQjZ2aDhmby9xOFZIM3N0bk4vQ00vMWcxUExo?=
 =?utf-8?B?VTk1MkI2TDJrVzl2NzYvVm9OUzlmdXM1Z1BERUQrT0tUNUp2WGh1dmRsZXNy?=
 =?utf-8?B?NGJoeWx4TjZHamYyT2w0T1BHYW9YYnBiZEtpK0dFZzVXV2xBMEg3MVZMK2g0?=
 =?utf-8?B?SjB1cGl1L0xnaWovNmtoMi9qazZDMHRpcFh4K1J4Z0ZNU293NlVmODNReW40?=
 =?utf-8?B?RWNIZ2I4eWkydVlWRk9iZ2hYZ1BSNkdxaGUzd1pXZHNwK0Z4K0ZIUFlQMHVY?=
 =?utf-8?B?TGtEdG5RQU5xTTNjS1lQZTJCUDF1Q2VvWTdWcXo4RC9Vb3NvZXEzZ0UrVzd4?=
 =?utf-8?B?a3FoeDNqWkJ6RktSRGtaVVhOR2NNb2JGZ0d2L1V5UGNvOTM0NUZXMzlBcVk3?=
 =?utf-8?B?YWRJdEFiczNjU25kY0pFTngxeHAzRFh5dnQybXdBMHEvR09acEY4SUVjdGw2?=
 =?utf-8?B?aGtZWjk5eUNQb0tRa1FZR0wwVXVrQ21PcUtUOEZCQmdTZi9RY1VqM09WYk55?=
 =?utf-8?B?K1lFYXovRGw0STNjRk1hN2gvU0NSUk45MW9CbkhYeXRrSWVabllrZWZqRk5r?=
 =?utf-8?B?UlZlN1dkQjVkRVprRnBWR1V2NXlKZ1gybzVRbG8rQ2d2d0pFRkY0ejNmcGoz?=
 =?utf-8?B?RG00M3dRbWphSzZKbFpGZHo5dEJtRjFtUEZySFlua1pMRER3S2Q4eDNyRUJZ?=
 =?utf-8?B?UHoyZXF1U0JXT2o0TThPeDVZVVMyankvdXVFZy9lWlB3d1EyRGtrbmZHZlVK?=
 =?utf-8?B?aGM5VFpLWFJSbmZrN3NEbHVQQW1ROEU4bDdpeVdOVXNrWkRZZ3IzejdJVUl4?=
 =?utf-8?B?bzl3cTM1Qm5naWNvYUZ4dFVLVDc2WGtWOTBHZmw4TWI4cDlZOGNWc3gxYnM4?=
 =?utf-8?B?dWErbW1Ub1IzTzlhOHdPbkJVYitRQ2FJMU5uSVVxaE1BcFFVcmdQcm9URTha?=
 =?utf-8?B?WGRVTGdPZlE0dkxTV3lFai9iSytQR0JadTNEK2s1YXR0ZlZxNkFCMk52akNM?=
 =?utf-8?B?Y1hTdjUxaHR1TmZ1c1hBdjZORGFKaU1MWmRGeCtlaDV2aktQV0llMGNCTVBJ?=
 =?utf-8?B?bk5xbURsVk16ZWV6SEJSUWgrQURyN1BCMk90Q05iSW1VWlh1NDAveDZFK2J2?=
 =?utf-8?B?L0JMby90Y3liMllVNHQ3NEVhYjc1QzhGVVdKMlFpSFl4RE9yOUFLREVIcnpP?=
 =?utf-8?B?STFMR0xUMXRHNkwyTVBkR2U1eTFJMHc3TmtOeUdrcFJodmR1RStubndhNzIw?=
 =?utf-8?B?YUVTL2JlbXZnWnhGZUovZHhncENyMHp5QXJob21mZ3B0aXc4TTRXOEcwQXVs?=
 =?utf-8?B?dWtOc0EyTmZFVmlPaEJQU0lKU0g2OWdLRHlLMnlxWFI2VlpCb3l2NUVrdDI0?=
 =?utf-8?Q?szYo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Qkt3ZzhqSnJscVdTRDhwc1k5VVR6TUd3N1VGekRHSFRlenJkcGlpeTVpM1Rl?=
 =?utf-8?B?TzY0d0dWWm4zZXpkOHprbWQ1RFhaY0dxQTJyOE15a1E3djBqajE0TGJua2dQ?=
 =?utf-8?B?dVpzRlVUOWtxRVBTVERIY3ZsWll4VFBxYndXOGpDZFptcmo1TWs3NU9tVFdn?=
 =?utf-8?B?c1pWMEVXTVZoUDh0dXhxcDNMMCs0bVlGc3VuL2J4ZldaaXNnaFVzeEFVaUlY?=
 =?utf-8?B?bE9QTDVybWpCMjdaNm4vVUUrYjFNcEVubDJ5MDlBRjN1SC9KKzlWV1RCQmkx?=
 =?utf-8?B?SG5uMm1UYlkrT0M0VjFmdFNTcHA3YXJlMXcyM214WlFaamxzNkh6NktVWGhz?=
 =?utf-8?B?T00vQ1RYVytFVVdSa3B1Ui92WXJ3TGFxTXd6WnZLWmJzR0dSZHlzckNpb29O?=
 =?utf-8?B?eG1tOVY3UmVZd0VvUVRLNEdIa1NmVzdxS2RMWVA3MXZpelFIa3NXNDc0bkNH?=
 =?utf-8?B?USs0dmUvTmtmVDhIcWFLUS9naXlXWmFET3JvL1RGQlNkcjRwRnlvVUg3RXdi?=
 =?utf-8?B?QUpTTjBTS2w4SDFWb1M1TCsxWXdjK1hvQ2ptRjE0STVnU2RLVzNZdGpSakpx?=
 =?utf-8?B?WWtKdThOWXE5OUZwSVhLdThCcG1WbG04a1g1aURUMUZCZjlGL1hndXBwbmZC?=
 =?utf-8?B?NVB1U1VBR2FubXJBKzVLeE5TZm5ZVEZqZkhFRWNJb1ErRGduTXM1Y1FRS2lh?=
 =?utf-8?B?aTgzc0w5SitTeFN0ZUlweWgvcFR6dDdHNThXUGUwMGlzWEhWb1oxc1p3WXJD?=
 =?utf-8?B?cXR6RTFPQTIxL0ZVblR5RFgxMzNxNkVKRWdsNVdpZnlKdWM1a21lWVJvTWJl?=
 =?utf-8?B?M3ZuUGtjS1JVZ2o4Smd6WnBORXg1S3Q1dDZPNkVXb1hPUFNvbkN3bldMZnhu?=
 =?utf-8?B?THNRMW5NUlNMUzFscUJaUG5IN1RBQVhiV0FrQlRuS05DRDMrMWJXZWlEV1FU?=
 =?utf-8?B?Y3RaSjMxc3BzZjJyK20rS1pQV2YxV1JLYUhFS0FUTTBNN0FXSWdXOXVJWUE2?=
 =?utf-8?B?bHVtb3k2dDZ4RmUrelJidEllaUlITUlQQU5EeVlJN1lLNVp2VFU2bmZPNW5n?=
 =?utf-8?B?dUEzSGxyZzgxU3pQZFR2OUdpak52SkhxUHFoemdQNzI3RzhuaEs0Vzk2MnNv?=
 =?utf-8?B?bHEwUm5CVkgzTFI1dWxBNFAwTTQ4NkdtVThFRnd2MWtiWlZjMVdMT3ZaQTVh?=
 =?utf-8?B?cXY1R1Q3UlJkRFQycm16NjluNVB4WUFvSmM0YTJFaTFYcG9obDRxRWxWNmdy?=
 =?utf-8?B?WGVmZWhvVkd5WFRpVUh6bTMyY0Fwd0xwVC9reVhjWHNkbFJiNFROSXZRQVVa?=
 =?utf-8?B?NXQ4SlBPdlk3OTN3YjQ4bGpzS0RIZHB4SHpTOGFDdFdiVFRYdmhVRzBnQllK?=
 =?utf-8?B?OVJOQmlLb3hMT29iYXZlaHdRbHFqWjFZdEtVNzBNSkJXRVM4U004N0ttN0pX?=
 =?utf-8?B?L0ZUdU5NeHVoY2RjYndhUDVKVERBM2QzcTNMWFhYZVk4RHJRVlZOMkYvMnY1?=
 =?utf-8?B?emEraXA1eWhEbTVBNXFYVS9INlkvUHlBZCtNenBoaW9WN0ZCMFBnUWxNUzNU?=
 =?utf-8?B?YlYyNk52RERwcWFiTG1GNHVVcXpBZW9Bemh4S2VCMktoaEsveWMrYTNEVDdk?=
 =?utf-8?B?N2xIK3ZTWFRYSEpXQ1hkNkF6eW5lOE9TWU45bGM3TGdyclRRVHYrK0p4TUZl?=
 =?utf-8?B?dDZuQmViNFBWbXhJSSt0enhYZmdSaHdDZEE5NmlNbXR5dWRBR1F6RFJyUU5L?=
 =?utf-8?B?NWtGMWtaYUZmUWQxWVlZdXdQMzV1cWpMMmZ3bDAzV2ZZUmRRb2JFcGlOSEgv?=
 =?utf-8?B?WmlxNUkrOFJLNWppbU8rRno2RjJBVnJuQzdMUER6WTgzUG5rZ0pDbC85bFho?=
 =?utf-8?B?S0ZjeEVVYXVxbW1YZGlaZFZ5dm5WM3AyTDA2ZFhpMVQwNHZlYzZ6L1JjdXRN?=
 =?utf-8?B?YjlVbkxBbmtmYkEvMGtaZ3BiSTM2ajBXbmNYZTRSVjRELzFFR2VFM0FlMkhM?=
 =?utf-8?B?alM5Q3l6YjZCRmU4ay9rb0VFNVZFZXdKcnBKOURXZnNVVks3U3ZJWEhLUTVK?=
 =?utf-8?B?K1E4eThLQUFlYmh6QzFWcm42dnc4MHk4K1ZtMmVaOWZla0FvdjJQNVZmMHhM?=
 =?utf-8?B?b3hNSnNHb2Fab3FyNlRlZmp4dHVwTjQxcmxyMFU1RzBkdC9nRU9XbWZjVG1k?=
 =?utf-8?B?ajc4NmRjWUhJNGZYbWo0c05EUVh6REtxOFpxOEZocjhRYVJqR1lpOTNuanl2?=
 =?utf-8?B?SHF0NDlpSklmRW1VdFRIK1MyMGdMMi9mbUtBMUNNS29xcmJ6RGNIanFOejls?=
 =?utf-8?B?SE51U0QzZW96YTR0UkpOTk4zblY4ZzdPM3JOV05xcUFtUDVTK2RmQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 160f3659-0ee9-4d57-8f15-08de623c6f0f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 09:21:23.6196
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 57xtDimVlg4Ww0WLbCw6mABOZyZGAFxlAzDZ6GIC4sA5yuSIzZi4djpdsEHtbS5X91dqIcnWxVl+CxYYLo7lig==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7833

On Mon, Feb 02, 2026 at 10:14:57AM +0100, Jan Beulich wrote:
> On 29.01.2026 14:08, Jan Beulich wrote:
> > @@ -1042,6 +1053,79 @@ enum pdev_type pdev_type(u16 seg, u8 bus
> >      return pos ? DEV_TYPE_PCIe_ENDPOINT : DEV_TYPE_PCI;
> >  }
> >  
> > +void pci_check_extcfg(struct pci_dev *pdev)
> > +{
> > +    unsigned int pos;
> > +
> > +    pdev->ext_cfg = false;
> > +
> > +    switch ( pdev->type )
> > +    {
> > +    case DEV_TYPE_PCIe_ENDPOINT:
> > +    case DEV_TYPE_PCIe_BRIDGE:
> > +    case DEV_TYPE_PCI_HOST_BRIDGE:
> > +    case DEV_TYPE_PCIe2PCI_BRIDGE:
> > +    case DEV_TYPE_PCI2PCIe_BRIDGE:
> > +        break;
> > +
> > +    case DEV_TYPE_LEGACY_PCI_BRIDGE:
> > +    case DEV_TYPE_PCI:
> > +        pos = pci_find_cap_offset(pdev->sbdf, PCI_CAP_ID_PCIX);
> > +        if ( !pos ||
> > +             !(pci_conf_read32(pdev->sbdf, pos + PCI_X_STATUS) &
> > +               (PCI_X_STATUS_266MHZ | PCI_X_STATUS_533MHZ)) )
> 
> To not violate Misra rule 7.2 I'll fold in the change below. I guess I'll
> further follow up with a patch adjusting other problematic #define-s in
> that header, too.

I'm fine if you want to do a pre-patch fixing all the problematic
defines in the header and put it ahead of the series.  Maybe it makes
more sense to fix them all in a single commit than fixing one here and
the rest separately?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 09:30:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 09:30:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218449.1527191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqGN-0006dI-BG; Mon, 02 Feb 2026 09:30:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218449.1527191; Mon, 02 Feb 2026 09: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 1vmqGN-0006dB-76; Mon, 02 Feb 2026 09:30:31 +0000
Received: by outflank-mailman (input) for mailman id 1218449;
 Mon, 02 Feb 2026 09: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmqGM-0006d5-Mr
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 09:30:30 +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 cff76c17-0019-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 10:30:29 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47ee3a63300so46483685e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 01:30:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4806cddffc0sm437701485e9.5.2026.02.02.01.30.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 01:30:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cff76c17-0019-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770024628; x=1770629428; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=T28K2QmfD4zyIgF8sXByuh95R5TkyNmgYqzdeBXOrwE=;
        b=gTlynRSt7wqG7P2362x/v1ONhAdcNbM3PeaPWr8jfn3g4n/nQHhDm5+uUC2fsOUBAG
         2r0VEtWAzKmrB6IS8H9m7T9IF+rBC5MR7niyHptN6s6wtcq0Otej6EQ90Be0pdx9dLQR
         CokMoqNkeBgxvy/04oauJsHiVlw+NzymyN8ueMfHe6tDScB10Vj4zzaNSN5fkNQmNDX7
         4c/1pdJeU8vZjyQpOYBPxSnrMICKwuZQx5XDuczTUYiTJfPBh+IOdGEtiiATgFGP+VGf
         Dv+1D7yZMDgYUGGsNhwmrrtCQsCnqmdeeZ1+iIdGGKzC6+PlAxqyEITHj9UmdDpIFduJ
         r1aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770024628; x=1770629428;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=T28K2QmfD4zyIgF8sXByuh95R5TkyNmgYqzdeBXOrwE=;
        b=eZLEY9sJDQlI4cfsvltLgspU8mglFyeQ0im0HTv4c+JmCLderMuCfGMNtmogCjJ5Fd
         V3waQPttZY1gYXvp+ij+L1Si2Jr5NFKBv6IxoaDiW1Fz+dA98qjsLBGKoaVWYJ60X8xa
         H1KthsILo2L3ZZGr57yQli3OlKKQqpF+5mB9mavekY9BKsJ5PVq9vV5xL5j/8Y3F0o3Y
         57Hsg5Gfocpq03+Mc51MYrECYiCALEufEtNXTVUWIfbT2yXgpCIeVqK2MVa8NGm529c0
         dMKHqnjx9YRAWC2KJUHVvb0KlQGbpJvUUCTdrzGgvEGhVlqG3Rs8ug2RlkCER9LypEbD
         1kSA==
X-Gm-Message-State: AOJu0YzLENpAbA9OxxwJJVXNMfycdApTNXkflSdwyAbFaT91yHlHyO7f
	CTU6frYEULyfB3ouZ4er7zbQjRQsWTOAg8AL2td+ltl2cgb0x8d8wl7PJgWWc/G/Jw==
X-Gm-Gg: AZuq6aIDqFYonzluodyyziwJOwqKlTMixbVABCDKfaTQ9OGv2kErZ7bDtgUs21mjyYD
	RyINA8L67fwbcSFlswWaHhB6fzOD1+lonzO29qHAKuwAoamM0HFn9RYomu/sc15B3TPiGrhfowp
	6EE4ozTwoc2kPZH/K1pnNFLS1JABPJOgRKZi56GJYwJG14ZXBwAxHh0pZwsY+PitEFArNym3CDh
	AyJRNNOg+tROZ80yPsdLgoYfQeptQ+8ByXfukWAaQgfI1GuHkfdk4Z/HmIaaYE2eemxuQddaXld
	TZ1zw4TtHqyWsxbXDquTWmlmqSi73pXrjWd3PiPbFCxMsRNd3BDXdp7dbe/XDuiCf0D2x3gfn5c
	GL2JuFP+JKK6u/E/CQc45hvvDwytqdTkAUgVk1nYlLrweYquy6PrKj15EwojBbyzOeT6QAFde9x
	YR20ZNTH4fkltkTAY4bo12pIQWvd5FsdTjmer0f6Ksjdf1Ys9gDEZhg2g/671+v6a6nbmEkQOWK
	oM=
X-Received: by 2002:a05:600c:6814:b0:480:699c:abe9 with SMTP id 5b1f17b1804b1-482db4b21c6mr112875325e9.37.1770024628377;
        Mon, 02 Feb 2026 01:30:28 -0800 (PST)
Message-ID: <1bcdd2dd-9b2b-4eb2-a569-e28b03c1e1fb@suse.com>
Date: Mon, 2 Feb 2026 10:30:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
 <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com> <aYBq2EoeP_TGv_sK@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: <aYBq2EoeP_TGv_sK@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.02.2026 10:14, Roger Pau Monné wrote:
> On Mon, Feb 02, 2026 at 09:51:18AM +0100, Jan Beulich wrote:
>> On 29.01.2026 14:10, Jan Beulich wrote:
>>> @@ -160,10 +161,13 @@ int pci_mmcfg_arch_enable(unsigned int i
>>>      return 0;
>>>  }
>>>  
>>> -void pci_mmcfg_arch_disable(unsigned int idx)
>>> +int pci_mmcfg_arch_disable(unsigned int idx)
>>>  {
>>>      const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
>>>  
>>> +    if ( !pci_mmcfg_virt[idx].virt )
>>> +        return 1;
>>
>> Afaict this is what causes CI (adl-*) to say no here:
>>
>> (XEN) [    4.132689] PCI: Using MCFG for segment 0000 bus 00-ff
>> (XEN) [    4.132697] ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
>> (XEN) [    4.132700] CPU:    12
>> (XEN) [    4.132702] RIP:    e008:[<ffff82d0405779bd>] pci_mmcfg_read+0x19e/0x1c7
>> (XEN) [    4.132708] RFLAGS: 0000000000010286   CONTEXT: hypervisor (d0v0)
>> (XEN) [    4.132711] rax: 0000000000300000   rbx: ffff808000300100   rcx: 0000000000000000
>> (XEN) [    4.132714] rdx: ffff808000300100   rsi: 0000000000000000   rdi: ffff8304959ffcec
>> (XEN) [    4.132716] rbp: ffff8304959ffd18   rsp: ffff8304959ffce8   r8:  0000000000000004
>> (XEN) [    4.132718] r9:  ffff8304959ffd2c   r10: 0000000000000000   r11: 0000000000000000
>> (XEN) [    4.132720] r12: 0000000000000100   r13: 0000000000000004   r14: ffff8304959ffd2c
>> (XEN) [    4.132723] r15: ffff808000000000   cr0: 0000000080050033   cr4: 0000000000b526e0
>> (XEN) [    4.132725] cr3: 0000000492a30000   cr2: ffff808000300100
>> (XEN) [    4.132727] fsb: 0000000000000000   gsb: ffff8881b9a00000   gss: 0000000000000000
>> (XEN) [    4.132729] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
>> (XEN) [    4.132733] Xen code around <ffff82d0405779bd> (pci_mmcfg_read+0x19e/0x1c7):
>> (XEN) [    4.132734]  48 39 d3 72 ea 4c 01 e3 <8b> 03 89 c3 4d 85 f6 74 0d 41 89 1e b8 00 00 00
>> (XEN) [    4.132744] Xen stack trace from rsp=ffff8304959ffce8:
>> (XEN) [    4.132745]    0000000300000286 ffff830495bd8010 0000000000000003 ffff830495bd8010
>> (XEN) [    4.132749]    ffff8304959ffdd0 ffff82d0405fa7ef ffff8304959ffd30 ffff82d040576877
>> (XEN) [    4.132753]    000000000000000c ffff8304959ffd58 ffff82d04039b81d ffff8304959ffe28
>> (XEN) [    4.132756]    0000000000000003 ffff830495bd8010 ffff8304959ffd80 ffff82d0405fa90b
>> (XEN) [    4.132760]    ffff8304959ffdc8 ffff830495bd8010 ffff830498019650 ffff8304959ffdb8
>> (XEN) [    4.132764]    ffff82d0403983e0 ffff830498019650 ffff8304959ffe28 ffff82d0405fa7ef
>> (XEN) [    4.132767]    0000000000000018 ffffc9004002b900 ffff8304959ffdf8 ffff82d04039feba
>> (XEN) [    4.132771]    ffff82d0405fa7ef ffff8304959ffe28 0000000000000000 ffffc9004002b900
>> (XEN) [    4.132774]    0000000000000000 ffff8304959bb000 ffff8304959ffe78 ffff82d0405ff666
>> (XEN) [    4.132778]    ffff82d0405713b8 00000000ffffffff 00a0fb0081f456e0 ffff8304959b3010
>> (XEN) [    4.132782]    00000000c0000000 00000001ff000000 ffff8304959fff08 0000000000000040
>> (XEN) [    4.132785]    000000ec00000001 ffff8304959fff08 ffff8304959a4000 0000000000000021
>> (XEN) [    4.132789]    0000000000000000 ffffc9004002b900 ffff8304959ffef8 ffff82d0405711b2
>> (XEN) [    4.132792]    0000000000000000 ffff888100456938 ffff8881001470b8 0000000000000018
>> (XEN) [    4.132795]    0000000000000000 ffff8304959ffef8 ffff82d0406213f9 ffff8304959a4000
>> (XEN) [    4.132799]    0000000000000000 ffff8304959a4000 0000000000000000 0000000000000000
>> (XEN) [    4.132802]    ffff8304959fffff 0000000000000000 00007cfb6a6000d7 ffff82d0402012d3
>> (XEN) [    4.132806]    0000000000000000 00000000ffffffff ffff8881001470b8 ffff888100b88900
>> (XEN) [    4.132809]    ffffc9004002b900 ffff8881001470b8 0000000000000283 ffff888100456938
>> (XEN) [    4.132813]    ffff888100065410 0000000000000000 0000000000000021 ffffffff81f7842a
>> (XEN) [    4.132816] Xen call trace:
>> (XEN) [    4.132819]    [<ffff82d0405779bd>] R pci_mmcfg_read+0x19e/0x1c7
>> (XEN) [    4.132822]    [<ffff82d040576877>] F pci_conf_read32+0x55/0x5e
>> (XEN) [    4.132826]    [<ffff82d04039b81d>] F pci_check_extcfg+0xb1/0x13b
>> (XEN) [    4.132831]    [<ffff82d0405fa90b>] F physdev_check_pci_extcfg+0x11c/0x121
>> (XEN) [    4.132833]    [<ffff82d0403983e0>] F drivers/passthrough/pci.c#iterate_all+0xa2/0xe2
>> (XEN) [    4.132836]    [<ffff82d04039feba>] F pci_segment_iterate+0x4e/0x74
>> (XEN) [    4.132839]    [<ffff82d0405ff666>] F do_physdev_op+0x362a/0x4161
>> (XEN) [    4.132842]    [<ffff82d0405711b2>] F pv_hypercall+0x6be/0x838
>> (XEN) [    4.132845]    [<ffff82d0402012d3>] F lstar_enter+0x143/0x148
>> (XEN) [    4.132847] 
>> (XEN) [    4.132848] Pagetable walk from ffff808000300100:
>> (XEN) [    4.132851]  L4[0x101] = 0000000000000000 ffffffffffffffff
>>
>> There is an important comment in pci_mmcfg_arch_disable():
>>
>>     /*
>>      * Don't use destroy_xen_mappings() here, or make sure that at least
>>      * the necessary L4 entries get populated (so that they get properly
>>      * propagated to guest domains' page tables).
>>      */
>>
>> Hence it is wrong to bypass
>>
>>     mcfg_ioremap(cfg, idx, 0);
> 
> Hm, I see.  The L4 slot must be unconditionally populated before we
> clone the idle page-table, otherwise the mappings won't propagate.
> 
> What about unconditionally populating the L4 slot in
> subarch_init_memory()?  That seems less fragile than doing it in
> pci_mmcfg_arch_disable().

Less fragile - perhaps. Yet I don't see why we should populate the field if
we wouldn't ever need it. Of course with violating layering some, we could
know in subarch_init_memory(), as pci_setup() runs earlier.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 09:57:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 09:57:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218461.1527204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqgT-0001Z4-RW; Mon, 02 Feb 2026 09:57:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218461.1527204; Mon, 02 Feb 2026 09:57:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqgT-0001YC-Od; Mon, 02 Feb 2026 09:57:29 +0000
Received: by outflank-mailman (input) for mailman id 1218461;
 Mon, 02 Feb 2026 09: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=IGL7=AG=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1vmqbB-0001Il-Vv
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 09:52:01 +0000
Received: from jpms-ob01.noc.sony.co.jp (jpms-ob01.noc.sony.co.jp
 [2001:cf8:ace:41::4]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d121b1ab-001c-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 10:51:59 +0100 (CET)
Received: from unknown (HELO jpmta-ob1.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::6])
 by jpms-ob01.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Feb 2026 18:51:38 +0900
Received: from unknown (HELO [127.0.1.1])
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob1.noc.sony.co.jp with ESMTP; 02 Feb 2026 18:51:38 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d121b1ab-001c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770025920; x=1801561920;
  h=from:date:subject:mime-version:content-transfer-encoding:
   message-id:references:in-reply-to:to:cc;
  bh=4/LXZGnNgY5t+nsrdXbfktyTBcde00tw0WwNVU5EQeQ=;
  b=nI6A7Ytwa1+zLh8IWECSnhLfuTcw4lqBn+HE9NyTzMST2ejWcv/0885i
   bTphFfjN08hVCUeoZAOE0EzeJREtl4uhiNSonsGqcqWEDvSz3lSXyl9il
   kCroDYD+AJfjEwynf9Os7NyNE4mOmUWHbpB8KhpFljpEoQbSqMerrIh04
   AaQqpxAFGmxeBvSlpT0xL/QFwy8O0wGOZm9RTvk3W33wtQp+XJTOobQCv
   ez1PLsvIjuQ9BBALQdp0icSXXp7Vu6xil43egXNmHWYY/7WgCtdDnY9fZ
   l9V+C4CXNxlWqVzJ8EDWE4beYS17MnLNWhTjezCZmv9yyV7GDK60pIxfR
   g==;
X-IronPort-AV: E=Sophos;i="6.21,268,1763391600"; 
   d="scan'208";a="607384935"
From: Shashank Balaji <shashank.mahadasyam@sony.com>
Date: Mon, 02 Feb 2026 18:51:02 +0900
Subject: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
In-Reply-To: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Suresh Siddha <suresh.b.siddha@intel.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, 
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
 Ajay Kaher <ajay.kaher@broadcom.com>, 
 Alexey Makhalov <alexey.makhalov@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>, 
 Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org, 
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
 jailhouse-dev@googlegroups.com, kvm@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>, 
 Shashank Balaji <shashank.mahadasyam@sony.com>, 
 Daniel Palmer <daniel.palmer@sony.com>, Tim Bird <tim.bird@sony.com>, 
 stable@vger.kernel.org
X-Mailer: b4 0.14.3
X-Developer-Signature: v=1; a=openpgp-sha256; l=1476;
 i=shashank.mahadasyam@sony.com; h=from:subject:message-id;
 bh=paULGXp6rwtbR4pGaBXqE9RYtLD7iRkEUs2lKCF5e4o=;
 b=owGbwMvMwCU2bX1+URVTXyjjabUkhsyG4hUGCzw4VzFOfPGnVC7+kcNGzhiLW3NYOT9WyZ0Rv
 y9psSK2o5SFQYyLQVZMkaVUqfrX3hVBS3rOvFaEmcPKBDKEgYtTACaytoXhv9Nrfese5QfJMkqT
 Qxp2Whn+q/TjDzf7xqHB/8O9W3/eVob/iW1Xy2aecbmXM6u73+ju1V8pak2+7/wsF/ZYNW4wOtz
 NCwA=
X-Developer-Key: i=shashank.mahadasyam@sony.com; a=openpgp;
 fpr=75227BFABDA852A48CCCEB2196AF6F727A028E55

In lapic_resume, ensure x2apic is actually disabled when the kernel expects it
to be disabled, i.e. when x2apic_mode = 0.

x2apic_mode is set to 0 and x2apic is disabled on boot if the kernel doesn't
support irq remapping or for other reasons. On resume from s2ram
(/sys/power/mem_sleep = deep), firmware can re-enable x2apic, but the kernel
continues using the xapic interface because it didn't check to see if someone
enabled x2apic behind its back, which causes hangs. This situation happens on
defconfig + bare metal + s2ram, on which this fix has been tested.

Fixes: 6e1cb38a2aef ("x64, x2apic/intr-remap: add x2apic support, including enabling interrupt-remapping")
Cc: stable@vger.kernel.org
Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
---
 arch/x86/kernel/apic/apic.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index d93f87f29d03..cc64d61f82cf 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -2456,6 +2456,12 @@ static void lapic_resume(void *data)
 	if (x2apic_mode) {
 		__x2apic_enable();
 	} else {
+		/*
+		 * x2apic may have been re-enabled by the
+		 * firmware on resuming from s2ram
+		 */
+		__x2apic_disable();
+
 		/*
 		 * Make sure the APICBASE points to the right address
 		 *

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 09:57:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 09:57:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218465.1527216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqgU-0001iM-CZ; Mon, 02 Feb 2026 09:57:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218465.1527216; Mon, 02 Feb 2026 09:57: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 1vmqgU-0001hX-8T; Mon, 02 Feb 2026 09:57:30 +0000
Received: by outflank-mailman (input) for mailman id 1218465;
 Mon, 02 Feb 2026 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=IGL7=AG=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1vmqbH-0001Jw-EQ
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 09:52:07 +0000
Received: from jpms-ob01.noc.sony.co.jp (jpms-ob01.noc.sony.co.jp
 [2001:cf8:ace:41::4]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d14876f9-001c-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 10:52:02 +0100 (CET)
Received: from unknown (HELO jpmta-ob1.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::6])
 by jpms-ob01.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Feb 2026 18:51:38 +0900
Received: from unknown (HELO [127.0.1.1])
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob1.noc.sony.co.jp with ESMTP; 02 Feb 2026 18:51:38 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d14876f9-001c-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770025922; x=1801561922;
  h=from:date:subject:mime-version:content-transfer-encoding:
   message-id:references:in-reply-to:to:cc;
  bh=GI9OPx+uxZW/9+u+5es0pePWKf46Zy6n4IWktANHhfk=;
  b=e0byH80zs8rrbQ+SG/yAl5pVranguTJiTv2KWDsjEGqSkO0OssSgf3fK
   xLzgSY2byQDmZEO4/gMmtjRIcIrv2X6uzjUHJw77nRIxKz6zZi3K55kuO
   38sboMnzWKGwEVC0Zp2KqjPEJLlHec1DN8AtGEPooANNGGJtI6coTmKye
   5hIKBQTElzNhrXwgQOfvEpHM1OIIwfjdq1yl7+F60z6UYNgiQVOQnwjXj
   TvdVB5woj9IHUULn1vhdFdW7zWl1CVTL6qjcg2C/PMXGBcbnYXMGpbUti
   HU5HUQYXh7YyUpPOeZeRJyOI/VdGYcQrYiwlb3Do/Hh/Ox5hYn8ib/1Vc
   w==;
X-IronPort-AV: E=Sophos;i="6.21,268,1763391600"; 
   d="scan'208";a="607384937"
From: Shashank Balaji <shashank.mahadasyam@sony.com>
Date: Mon, 02 Feb 2026 18:51:03 +0900
Subject: [PATCH 2/3] x86/defconfig: add CONFIG_IRQ_REMAP
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260202-x2apic-fix-v1-2-71c8f488a88b@sony.com>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
In-Reply-To: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Suresh Siddha <suresh.b.siddha@intel.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, 
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
 Ajay Kaher <ajay.kaher@broadcom.com>, 
 Alexey Makhalov <alexey.makhalov@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>, 
 Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org, 
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
 jailhouse-dev@googlegroups.com, kvm@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>, 
 Shashank Balaji <shashank.mahadasyam@sony.com>, 
 Daniel Palmer <daniel.palmer@sony.com>, Tim Bird <tim.bird@sony.com>
X-Mailer: b4 0.14.3
X-Developer-Signature: v=1; a=openpgp-sha256; l=897;
 i=shashank.mahadasyam@sony.com; h=from:subject:message-id;
 bh=WGBqeRf3m3q38dcFfIzoZC7KITAdIHJXG+fCWgOOD40=;
 b=owGbwMvMwCU2bX1+URVTXyjjabUkhsyG4hWJ5ZPesy10dLqdVPT13NLfdzYoem+Z+6FTrppr+
 3YRUxvJjlIWBjEuBlkxRZZSpepfe1cELek581oRZg4rE8gQBi5OAZiI71yG/3G5dneW7G7keJnx
 4Wd+z+9zOUtZjcKVjm+qm6rqVBCX9Jnhf+n3kx2OkYsNn+1Qe6/XFrn9pXSWzssdU98b3/BZ2S2
 XyAQA
X-Developer-Key: i=shashank.mahadasyam@sony.com; a=openpgp;
 fpr=75227BFABDA852A48CCCEB2196AF6F727A028E55

Interrupt remapping is an architectural dependency of x2apic, which is already
enabled in the defconfig. Enable CONFIG_IRQ_REMAP so that a defconfig kernel on
bare metal actually uses x2apic.

Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
---
 arch/x86/configs/x86_64_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index 7d7310cdf8b0..269f7d808be4 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -230,6 +230,7 @@ CONFIG_EEEPC_LAPTOP=y
 CONFIG_AMD_IOMMU=y
 CONFIG_INTEL_IOMMU=y
 # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_IRQ_REMAP=y
 CONFIG_EXT4_FS=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 09:57:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 09:57:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218459.1527199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqgT-0001W5-Ld; Mon, 02 Feb 2026 09:57:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218459.1527199; Mon, 02 Feb 2026 09:57:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqgT-0001Vy-IT; Mon, 02 Feb 2026 09:57:29 +0000
Received: by outflank-mailman (input) for mailman id 1218459;
 Mon, 02 Feb 2026 09:51: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=IGL7=AG=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1vmqb9-0001Il-KV
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 09:51:59 +0000
Received: from jpms-ob01.noc.sony.co.jp (jpms-ob01.noc.sony.co.jp
 [2001:cf8:ace:41::4]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c633f1e7-001c-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 10:51:45 +0100 (CET)
Received: from unknown (HELO jpmta-ob1.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::6])
 by jpms-ob01.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Feb 2026 18:51:37 +0900
Received: from unknown (HELO [127.0.1.1])
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob1.noc.sony.co.jp with ESMTP; 02 Feb 2026 18:51:37 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c633f1e7-001c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770025905; x=1801561905;
  h=from:subject:date:message-id:mime-version:
   content-transfer-encoding:to:cc;
  bh=9aqqCS44lWCHB49Zm7J55r5rkQXnOnuoUWB3fHL0bvM=;
  b=tWqmpYNVkTwCd5q2PW+AHOynhhM3yHAvejO1MOH2xhnJeXjIgapPj/7Y
   9ieaJfZh5khD/WXCmcDH0+fMwj2ZyI/xcWreyYrlSyuczdFx3gk2ueIZB
   zz3SYdKMnbQ/yQ9RpkPlJnuZ1Nohwl7plv3IUHAKEe51xLhX0qpzPzKza
   TpsWiQFvj0KARrOr9GYduaunh4gh8TsJM2MIeIlM4c5blYDeyGxfvbF59
   O9pQkskUoXCc+AcYT3QqRCREKIwLXbLx9Xwht9TOavQA71bWvMKkxnluZ
   rOXoq/PJwF30dDVuXrb6hpkCnj51uKlSCHrvvKc+47I2AAnia9rjxX1Ss
   Q==;
X-IronPort-AV: E=Sophos;i="6.21,268,1763391600"; 
   d="scan'208";a="607384933"
From: Shashank Balaji <shashank.mahadasyam@sony.com>
Subject: [PATCH 0/3] x86/x2apic: Fix hang-up of defconfig kernel on resume
 from s2ram
Date: Mon, 02 Feb 2026 18:51:01 +0900
Message-Id: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
X-B4-Tracking: v=1; b=H4sIAIZzgGkC/x2MQQqAIBAAvyJ7TlDBsL4SHXTbai8mCiGIf086z
 sBMg0KZqcAqGmR6ufATB+hJAN4+XiT5GAxGmVkZpWU1PjHKk6t0Fh3qYDEsCkaQMg39z7a99w8
 R+TM4XAAAAA==
X-Change-ID: 20260201-x2apic-fix-85c8c1b5cb90
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Suresh Siddha <suresh.b.siddha@intel.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, 
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
 Ajay Kaher <ajay.kaher@broadcom.com>, 
 Alexey Makhalov <alexey.makhalov@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>, 
 Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org, 
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
 jailhouse-dev@googlegroups.com, kvm@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>, 
 Shashank Balaji <shashank.mahadasyam@sony.com>, 
 Daniel Palmer <daniel.palmer@sony.com>, Tim Bird <tim.bird@sony.com>, 
 stable@vger.kernel.org
X-Mailer: b4 0.14.3
X-Developer-Signature: v=1; a=openpgp-sha256; l=2357;
 i=shashank.mahadasyam@sony.com; h=from:subject:message-id;
 bh=rciqWe9MknIhKucUK+4wbzClj9FvwHeXsn6kPpt+wM8=;
 b=owGbwMvMwCU2bX1+URVTXyjjabUkhsyG4hXbtvp/s2L/pXvGSPVq9wtGQUU/0+sZWw9OOKhfs
 jfkl8CHjlIWBjEuBlkxRZZSpepfe1cELek581oRZg4rE8gQBi5OAZhIlhTD/8DScGFBO6NF8ydO
 ftFcVXsmfwpX6p0FupNYLebce84rq8zI0Cddbi5zcoJG8MkZzSbn5D/+eMqwb04Pw8ycnOdp7hW
 XuQA=
X-Developer-Key: i=shashank.mahadasyam@sony.com; a=openpgp;
 fpr=75227BFABDA852A48CCCEB2196AF6F727A028E55

On resume from s2ram, a defconfig kernel gets into a state where the x2apic
hardware state and the kernel's perceived state are different.

On boot, x2apic is enabled by the firmware, and then the kernel does the
following (relevant lines from dmesg):

	[    0.000381] x2apic: enabled by BIOS, switching to x2apic ops
	[    0.009939] APIC: Switched APIC routing to: cluster x2apic
	[    0.095151] x2apic: IRQ remapping doesn't support X2APIC mode
	[    0.095154] x2apic disabled
	[    0.095551] APIC: Switched APIC routing to: physical flat

defconfig has CONFIG_IRQ_REMAP=n, which leads to x2apic being disabled,
because on bare metal, x2apic has an architectural dependence on interrupt
remapping.

While resuming from s2ram, x2apic is enabled again by the firmware, but
the kernel continues using the physical flat apic routing. This causes a
hang-up and no console output.

Patch 1 fixes this in lapic_resume by disabling x2apic when the kernel expects
it to be disabled.
Patch 2 enables CONFIG_IRQ_REMAP in defconfig so that defconfig kernels at
least don't disable x2apic because of a lack of IRQ_REMAP support.
Patch 3 is a non-functional change renaming x2apic_available to
x2apic_without_ir_available in struct x86_hyper_init, to better convey
the semantic.

Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
---
Shashank Balaji (3):
      x86/x2apic: disable x2apic on resume if the kernel expects so
      x86/defconfig: add CONFIG_IRQ_REMAP
      x86/virt: rename x2apic_available to x2apic_without_ir_available

 arch/x86/configs/x86_64_defconfig |  1 +
 arch/x86/include/asm/x86_init.h   |  4 ++--
 arch/x86/kernel/apic/apic.c       | 10 ++++++++--
 arch/x86/kernel/cpu/acrn.c        |  2 +-
 arch/x86/kernel/cpu/bhyve.c       |  2 +-
 arch/x86/kernel/cpu/mshyperv.c    |  2 +-
 arch/x86/kernel/cpu/vmware.c      |  2 +-
 arch/x86/kernel/jailhouse.c       |  2 +-
 arch/x86/kernel/kvm.c             |  2 +-
 arch/x86/kernel/x86_init.c        | 12 ++++++------
 arch/x86/xen/enlighten_hvm.c      |  4 ++--
 11 files changed, 25 insertions(+), 18 deletions(-)
---
base-commit: 18f7fcd5e69a04df57b563360b88be72471d6b62
change-id: 20260201-x2apic-fix-85c8c1b5cb90

Best regards,
-- 
Shashank Balaji <shashank.mahadasyam@sony.com>



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 09:57:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 09:57:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218463.1527212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqgU-0001eN-6u; Mon, 02 Feb 2026 09:57:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218463.1527212; Mon, 02 Feb 2026 09:57: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 1vmqgU-0001cy-08; Mon, 02 Feb 2026 09:57:30 +0000
Received: by outflank-mailman (input) for mailman id 1218463;
 Mon, 02 Feb 2026 09:52: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=IGL7=AG=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1vmqbE-0001Il-Va
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 09:52:04 +0000
Received: from jpms-ob01.noc.sony.co.jp (jpms-ob01.noc.sony.co.jp
 [2001:cf8:ace:41::4]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2cc2a73-001c-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 10:52:02 +0100 (CET)
Received: from unknown (HELO jpmta-ob1.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::6])
 by jpms-ob01.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Feb 2026 18:51:38 +0900
Received: from unknown (HELO [127.0.1.1])
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob1.noc.sony.co.jp with ESMTP; 02 Feb 2026 18:51:38 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2cc2a73-001c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770025922; x=1801561922;
  h=from:date:subject:mime-version:content-transfer-encoding:
   message-id:references:in-reply-to:to:cc;
  bh=UGbV0HlypAsqDyqCwF4KKZshjhbYqkotn40a85H3Q7U=;
  b=Fsk8atP8nOli3A/kdU1FTFujNMxydunfy/0QabsYe7jNJhGm6H88rUTl
   inKAlL/r973SUJg9eT/QLvQ6XUQ5Z1zzVR3WfUx82Bh/+OVteJj5i9c0c
   i9g8QYmd1M2Fj6GWZ0zQGLNBVz7vA8wVOPX0KiVqO3vhAXRtayG1s6aam
   JyXxACjk15x5b0CeL9dCyap3V5e5y9+P4V5uVk2lZ9ONogp1rfsnTlbDL
   nFVA8cTmEmXDW5zHMNTWZ8HLFoZDQMYuHpAsQWRS6QQZHtlDkpL+jif+G
   i+LoAuD8joUkr/+y1Qm+QfGxsdGCUdd3H8PsWEFMyX0QDGANlaggsztfq
   w==;
X-IronPort-AV: E=Sophos;i="6.21,268,1763391600"; 
   d="scan'208";a="607384938"
From: Shashank Balaji <shashank.mahadasyam@sony.com>
Date: Mon, 02 Feb 2026 18:51:04 +0900
Subject: [PATCH 3/3] x86/virt: rename x2apic_available to
 x2apic_without_ir_available
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20260202-x2apic-fix-v1-3-71c8f488a88b@sony.com>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
In-Reply-To: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, 
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, 
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, 
 Suresh Siddha <suresh.b.siddha@intel.com>, 
 "K. Y. Srinivasan" <kys@microsoft.com>, 
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, 
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>, 
 Ajay Kaher <ajay.kaher@broadcom.com>, 
 Alexey Makhalov <alexey.makhalov@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>, 
 Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>, 
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org, 
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev, 
 jailhouse-dev@googlegroups.com, kvm@vger.kernel.org, 
 xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>, 
 Shashank Balaji <shashank.mahadasyam@sony.com>, 
 Daniel Palmer <daniel.palmer@sony.com>, Tim Bird <tim.bird@sony.com>
X-Mailer: b4 0.14.3
X-Developer-Signature: v=1; a=openpgp-sha256; l=8661;
 i=shashank.mahadasyam@sony.com; h=from:subject:message-id;
 bh=40ywH2ksTo16iKGC5c7aKcdzHSb3M0fEznHdLx5ChZY=;
 b=owGbwMvMwCU2bX1+URVTXyjjabUkhsyG4pV73BSkW2t+bFj8lP/axHMSXQ/nLg+dcOZBrWq1l
 IycyNnlHaUsDGJcDLJiiiylStW/9q4IWtJz5rUizBxWJpAhDFycAjAR/UqGn4xiaRxyy02Nn4be
 9Xesdnx9Matg+r2d2y7WH5tzzWHmuTSG/4lN6178i2r5JLaG8/tKKYYCxeYn2uGibz7WxSq6yev
 mMAAA
X-Developer-Key: i=shashank.mahadasyam@sony.com; a=openpgp;
 fpr=75227BFABDA852A48CCCEB2196AF6F727A028E55

No functional change.

x86_init.hyper.x2apic_available is used only in try_to_enable_x2apic to check if
x2apic needs to be disabled if interrupt remapping support isn't present. But
the name x2apic_available doesn't reflect that usage.

This is what x2apic_available is set to for various hypervisors:

	acrn		boot_cpu_has(X86_FEATURE_X2APIC)
	mshyperv	boot_cpu_has(X86_FEATURE_X2APIC)
	xen		boot_cpu_has(X86_FEATURE_X2APIC) or false
	vmware		vmware_legacy_x2apic_available
	kvm		kvm_cpuid_base() != 0
	jailhouse	x2apic_enabled()
	bhyve		true
	default		false

Bare metal and vmware correctly check if x2apic is available without interrupt
remapping. The rest of them check if x2apic is enabled/supported, and kvm just
checks if the kernel is running on kvm. The other hypervisors may have to have
their checks audited.

Also fix the backwards pr_info message printed on disabling x2apic because of
lack of irq remapping support.

Compile tested with all the hypervisor guest support enabled.

Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
---
 arch/x86/include/asm/x86_init.h |  4 ++--
 arch/x86/kernel/apic/apic.c     |  4 ++--
 arch/x86/kernel/cpu/acrn.c      |  2 +-
 arch/x86/kernel/cpu/bhyve.c     |  2 +-
 arch/x86/kernel/cpu/mshyperv.c  |  2 +-
 arch/x86/kernel/cpu/vmware.c    |  2 +-
 arch/x86/kernel/jailhouse.c     |  2 +-
 arch/x86/kernel/kvm.c           |  2 +-
 arch/x86/kernel/x86_init.c      | 12 ++++++------
 arch/x86/xen/enlighten_hvm.c    |  4 ++--
 10 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
index 6c8a6ead84f6..b270d9eed755 100644
--- a/arch/x86/include/asm/x86_init.h
+++ b/arch/x86/include/asm/x86_init.h
@@ -116,7 +116,7 @@ struct x86_init_pci {
  * struct x86_hyper_init - x86 hypervisor init functions
  * @init_platform:		platform setup
  * @guest_late_init:		guest late init
- * @x2apic_available:		X2APIC detection
+ * @x2apic_without_ir_available: is x2apic available without irq remap?
  * @msi_ext_dest_id:		MSI supports 15-bit APIC IDs
  * @init_mem_mapping:		setup early mappings during init_mem_mapping()
  * @init_after_bootmem:		guest init after boot allocator is finished
@@ -124,7 +124,7 @@ struct x86_init_pci {
 struct x86_hyper_init {
 	void (*init_platform)(void);
 	void (*guest_late_init)(void);
-	bool (*x2apic_available)(void);
+	bool (*x2apic_without_ir_available)(void);
 	bool (*msi_ext_dest_id)(void);
 	void (*init_mem_mapping)(void);
 	void (*init_after_bootmem)(void);
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index cc64d61f82cf..8820b631f8a2 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -1836,8 +1836,8 @@ static __init void try_to_enable_x2apic(int remap_mode)
 		 * Using X2APIC without IR is not architecturally supported
 		 * on bare metal but may be supported in guests.
 		 */
-		if (!x86_init.hyper.x2apic_available()) {
-			pr_info("x2apic: IRQ remapping doesn't support X2APIC mode\n");
+		if (!x86_init.hyper.x2apic_without_ir_available()) {
+			pr_info("x2apic: Not supported without IRQ remapping\n");
 			x2apic_disable();
 			return;
 		}
diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
index 2c5b51aad91a..9204b98d4786 100644
--- a/arch/x86/kernel/cpu/acrn.c
+++ b/arch/x86/kernel/cpu/acrn.c
@@ -77,5 +77,5 @@ const __initconst struct hypervisor_x86 x86_hyper_acrn = {
 	.detect                 = acrn_detect,
 	.type			= X86_HYPER_ACRN,
 	.init.init_platform     = acrn_init_platform,
-	.init.x2apic_available  = acrn_x2apic_available,
+	.init.x2apic_without_ir_available = acrn_x2apic_available,
 };
diff --git a/arch/x86/kernel/cpu/bhyve.c b/arch/x86/kernel/cpu/bhyve.c
index f1a8ca3dd1ed..91a90a7459ce 100644
--- a/arch/x86/kernel/cpu/bhyve.c
+++ b/arch/x86/kernel/cpu/bhyve.c
@@ -61,6 +61,6 @@ const struct hypervisor_x86 x86_hyper_bhyve __refconst = {
 	.name			= "Bhyve",
 	.detect			= bhyve_detect,
 	.init.init_platform	= x86_init_noop,
-	.init.x2apic_available	= bhyve_x2apic_available,
+	.init.x2apic_without_ir_available = bhyve_x2apic_available,
 	.init.msi_ext_dest_id	= bhyve_ext_dest_id,
 };
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 579fb2c64cfd..61458855094a 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -760,7 +760,7 @@ const __initconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
 	.name			= "Microsoft Hyper-V",
 	.detect			= ms_hyperv_platform,
 	.type			= X86_HYPER_MS_HYPERV,
-	.init.x2apic_available	= ms_hyperv_x2apic_available,
+	.init.x2apic_without_ir_available = ms_hyperv_x2apic_available,
 	.init.msi_ext_dest_id	= ms_hyperv_msi_ext_dest_id,
 	.init.init_platform	= ms_hyperv_init_platform,
 	.init.guest_late_init	= ms_hyperv_late_init,
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index cb3f900c46fc..46d325818797 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -585,7 +585,7 @@ const __initconst struct hypervisor_x86 x86_hyper_vmware = {
 	.detect				= vmware_platform,
 	.type				= X86_HYPER_VMWARE,
 	.init.init_platform		= vmware_platform_setup,
-	.init.x2apic_available		= vmware_legacy_x2apic_available,
+	.init.x2apic_without_ir_available = vmware_legacy_x2apic_available,
 #ifdef CONFIG_AMD_MEM_ENCRYPT
 	.runtime.sev_es_hcall_prepare	= vmware_sev_es_hcall_prepare,
 	.runtime.sev_es_hcall_finish	= vmware_sev_es_hcall_finish,
diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
index 9e9a591a5fec..84a0bbe15989 100644
--- a/arch/x86/kernel/jailhouse.c
+++ b/arch/x86/kernel/jailhouse.c
@@ -291,6 +291,6 @@ const struct hypervisor_x86 x86_hyper_jailhouse __refconst = {
 	.name			= "Jailhouse",
 	.detect			= jailhouse_detect,
 	.init.init_platform	= jailhouse_init_platform,
-	.init.x2apic_available	= jailhouse_x2apic_available,
+	.init.x2apic_without_ir_available = jailhouse_x2apic_available,
 	.ignore_nopv		= true,
 };
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 37dc8465e0f5..709eba87d58e 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -1042,7 +1042,7 @@ const __initconst struct hypervisor_x86 x86_hyper_kvm = {
 	.detect				= kvm_detect,
 	.type				= X86_HYPER_KVM,
 	.init.guest_late_init		= kvm_guest_init,
-	.init.x2apic_available		= kvm_para_available,
+	.init.x2apic_without_ir_available = kvm_para_available,
 	.init.msi_ext_dest_id		= kvm_msi_ext_dest_id,
 	.init.init_platform		= kvm_init_platform,
 #if defined(CONFIG_AMD_MEM_ENCRYPT)
diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
index ebefb77c37bb..9ddf8c901ac6 100644
--- a/arch/x86/kernel/x86_init.c
+++ b/arch/x86/kernel/x86_init.c
@@ -112,12 +112,12 @@ struct x86_init_ops x86_init __initdata = {
 	},
 
 	.hyper = {
-		.init_platform		= x86_init_noop,
-		.guest_late_init	= x86_init_noop,
-		.x2apic_available	= bool_x86_init_noop,
-		.msi_ext_dest_id	= bool_x86_init_noop,
-		.init_mem_mapping	= x86_init_noop,
-		.init_after_bootmem	= x86_init_noop,
+		.init_platform			= x86_init_noop,
+		.guest_late_init		= x86_init_noop,
+		.x2apic_without_ir_available	= bool_x86_init_noop,
+		.msi_ext_dest_id		= bool_x86_init_noop,
+		.init_mem_mapping		= x86_init_noop,
+		.init_after_bootmem		= x86_init_noop,
 	},
 
 	.acpi = {
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..42f3d21f313d 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -311,7 +311,7 @@ static uint32_t __init xen_platform_hvm(void)
 		 * detect PVH and panic there.
 		 */
 		h->init_platform = x86_init_noop;
-		h->x2apic_available = bool_x86_init_noop;
+		h->x2apic_without_ir_available = bool_x86_init_noop;
 		h->init_mem_mapping = x86_init_noop;
 		h->init_after_bootmem = x86_init_noop;
 		h->guest_late_init = xen_hvm_guest_late_init;
@@ -325,7 +325,7 @@ struct hypervisor_x86 x86_hyper_xen_hvm __initdata = {
 	.detect                 = xen_platform_hvm,
 	.type			= X86_HYPER_XEN_HVM,
 	.init.init_platform     = xen_hvm_guest_init,
-	.init.x2apic_available  = xen_x2apic_available,
+	.init.x2apic_without_ir_available = xen_x2apic_available,
 	.init.init_mem_mapping	= xen_hvm_init_mem_mapping,
 	.init.guest_late_init	= xen_hvm_guest_late_init,
 	.init.msi_ext_dest_id   = msi_ext_dest_id,

-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 10:13:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 10:13:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218496.1527240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqwH-00066m-QU; Mon, 02 Feb 2026 10:13:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218496.1527240; Mon, 02 Feb 2026 10:13: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 1vmqwH-00066f-NW; Mon, 02 Feb 2026 10:13:49 +0000
Received: by outflank-mailman (input) for mailman id 1218496;
 Mon, 02 Feb 2026 10:13: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmqwG-00065n-Az
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 10:13:48 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d95f3053-001f-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 11:13:42 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by LV9PR03MB8365.namprd03.prod.outlook.com (2603:10b6:408:368::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.12; Mon, 2 Feb
 2026 10:13:39 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 10:13:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d95f3053-001f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kbexHpWNzUw0SJS89k57XvEz5ZA8fcJgMrFAQ9C62W7EYPqvBJ/J6ED1Zgdr741JcbvkvIQxysRNJ+NPfii2s7L4XNGf7v7R75doXB+xlZz4abuj6yq6qRvvsMs2b5YZy4FjY7nbPLwdSg+OGC5JICN4smF18ALiX09V4Q/NYSpUvo4yPFeYppyXji0aCREc+/+T5asW8wStvNPj3W7DNzmqAwv5WZZR0KmgWYjG6wh8W8yNh0BnWjPbxHlmDtvT35XRJZcvW/p7FCq8dMGhzrJfEWG1eLWldr3oW5NkFZYCnCU9bCh4jDx9CzJqNH6yA3WiXazJHSuRT3bJgs9HDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nt5TLNNS0NhK2LvGZv5MqbgM6uN28wkBGBeR3kvXkJ4=;
 b=Fv3QZ6O6q+SdGp68HiNdql/ms+C5T+3Dj5kjoozUiccrQfyLMhwK4MFsbPX/ny5opbONQSPc5+cSK4bCuWs1xW4OBiiEgja16ZAo6Hgjeh/D9pmJnf+y+UTEnHJeY/cBi/heFIF3eWe5/RxpRj62zAct00z0wc+qVU+WwneTbiBf5eKibNV5sPQXBjrb2zmWIF4Ht4XL9AKCRNYuCxbLxJGmdpE8L7WvnAblWoaTZyA0tShxV0NxRycGYaU5eFTCjDjv1JZuF+UiZQsA8lD/WmceHlmXxGjYKR4CUxNcZ6oV0xQTo2Qh8RDPTn91gJAYLbpcVZP5q1/I2U4No/wGCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Nt5TLNNS0NhK2LvGZv5MqbgM6uN28wkBGBeR3kvXkJ4=;
 b=MFoLPNSGDqgDdcPVGqb463qpIwz8wkf/CvO2GhzPSUtIMhTgnruiqNwTmUsvN2cWdcMewh7hQlVnVKpJdSzKVLX1zTkBt+vw37++iwkKMaWp17+3t4RgOXRF3rzOq7zsm2SyNT3TDWT0J1vEuyTVqiVPbq6aFgfZ3aiyMe3d/1g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 11:13:35 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
Message-ID: <aYB4z8CSA590Ytpo@Mac.lan>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
 <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com>
 <aYBq2EoeP_TGv_sK@Mac.lan>
 <1bcdd2dd-9b2b-4eb2-a569-e28b03c1e1fb@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1bcdd2dd-9b2b-4eb2-a569-e28b03c1e1fb@suse.com>
X-ClientProxiedBy: MR1P264CA0192.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|LV9PR03MB8365:EE_
X-MS-Office365-Filtering-Correlation-Id: f37f9241-3dc7-431e-bc76-08de6243bbef
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OUMvdnpadE9zREI4YTBDY2Z6YlVOdENuWHZNUnBQTVFaSTN3cEVBSm5HSjlo?=
 =?utf-8?B?ZXdVd2YvUVdKUVlQQnMxeUloaUdNT3ZQRTNGdjZ2Nlo5Yk1mK04yRVBSeHRU?=
 =?utf-8?B?UWc2Q3dEUmhCZVpQMzA5aHZwREJCQWMrZkk5YmRUKysyTngzUW1WQWg0MWJ4?=
 =?utf-8?B?M0d1bWZkejdPVmdodm5DTW9tR2lDcStUbGdZY1RaZXBIeGxtYWY5UkRIOXR6?=
 =?utf-8?B?MnZuVURsNkVLVEJtekRTMW1kRTZodGpMVWp3bmFXYjVEd1czczVUMDlBZkgx?=
 =?utf-8?B?MmlLTnVSSkY3cUlFcklJWkFkSWxEKy8zeVdmMkszNFJyOHhLL0l4MGNodHdC?=
 =?utf-8?B?VGIzL0QwdDVRbnJFUEZlZVNOZHQxZytUc3ZPQi9CZkVXNmlSS1dpVFpTOURH?=
 =?utf-8?B?enhSMlF3anlCZTZjWjRWYXNGL0JmOFE4S1BGYXVybUtBUnB4V1hIaEtrdytL?=
 =?utf-8?B?Rk9kVFJnZWdva3BaNDJWN0VSVDRaOXJ6ZlQvQzZuejNYcXlUVWk1eU9zR0tT?=
 =?utf-8?B?UWhReFR6RFQvOWdQeXhvOEE5U2ZhZWM2ZHpwZjR2R2xCMGg2YTZNNUkyYWMw?=
 =?utf-8?B?TXhMTmZ3VUp2QU9tQVZTaktkVnJQaENjKzNWWFdCd1FUYUlIWC96TEFpNlJO?=
 =?utf-8?B?SzdqMmVzblhBSGpoc05QbTFodm9KRTBkVjNsRnlpZ2JhY25LZ3o4SmJ1NkxM?=
 =?utf-8?B?Y2JKUnM1Zlh2aTBCcHMyZ1NScDRFZE82TFdsQTNGL05WcFJwNHJkc3RuQjI0?=
 =?utf-8?B?OGNLVTRkNzB5czRlazhNUnB4OGRncFVoYSswdVF1b0Y1dU8xdGhDcG9rSWU5?=
 =?utf-8?B?VDgyMXEvQXJjZmNHYWhxbDJnS2c1YjRYblpnQjBqbWJQdld0NE54OE1aV083?=
 =?utf-8?B?b0JqQ2FWVFpqL2xJc0h0eTBmSGRMVGk1Znk1em1ZR3p0U3I0QnhRZm9Editk?=
 =?utf-8?B?L1BlYTcwRjNtMnBlTFpkeENNaXdmZW44ZWk1eWNKcjhyc2cyZVJXYTRUVE8z?=
 =?utf-8?B?dGp3RXpQeUZUZnJuZGszYnpLcy92T0tOVlo2U2IvSkdGQXFyWGdUTERENFhK?=
 =?utf-8?B?SjhXTENmVThPbklqTTQwSGxGQjI2RUh0Yy9MV0FRMEZHNGg5ejBCYkNtQzk5?=
 =?utf-8?B?WkNmYjdBekY5bkppemU2R1ZTUWwwcCtsc05nQW9LWk02enRFRkdUVlA1Zmdn?=
 =?utf-8?B?VkI4djNHL1Z0YnVoQWw4NHNUdlJYajViZWFlM2JqbG5pOFFQQnhpbHh0cVcy?=
 =?utf-8?B?ZWlIYWlVTXVuek9ZM1oxa2Q2WVR1dFgxVWRPNXVIQlMxdmlNalB4VDFJcW1T?=
 =?utf-8?B?d2xuWXZYYWdGcWQ2dStaVHNYTmt3aWlsb0pYd1ZoSDg2TXB4aEc2T2hSczhl?=
 =?utf-8?B?Yk9IcVZxUDhqNjM4anc1VVF1Q0drTFptWW1mNUJzUVdIdE90SGJQdldBSWo1?=
 =?utf-8?B?V2RBY2dUckJ6eFNvUE1vOExTdzZSbkZ5d3RCbUFqeW5VTnhZK2pDWEJ4VThU?=
 =?utf-8?B?aDF3eWdHbUN6bDhwRlljRVo2bXJhckRmZGNwbDh2cmQ5QmhBRDhlUXBzR3RJ?=
 =?utf-8?B?Tm9KVUF4UGVvWkFXQjdZdGxOMG93bTEzOU1rYVV4Ny9tcER6NE1yMFdkUDBN?=
 =?utf-8?B?TktXWVYvMW9ZMWhxcHRVWjluNk40b3U2UkFRdkNCQzB4UkpvNyt0YXpMelBp?=
 =?utf-8?B?WmljQ1JiYUlYcG1qL3FMRTk5TzVvZ3pyYlBodFBmcHQ4M0U5UmppenIwVFZO?=
 =?utf-8?B?czZOQVpSMi9ZU0xtcklMZHZDTm9uL1VPdHRrWlJrQlE1UEZWb0FkKzlNcGVr?=
 =?utf-8?B?MXNnUW1iZlM1WFlQbkN0THV6WGZ2Q1BLZmFTN1R4YnNkWjA5c3FmZEErQzVO?=
 =?utf-8?B?ZURDUWNUeS9YV2JRcjNwem4vQVhWTGZkSXpKai9rajRmMXJNZm0yVG56NGxK?=
 =?utf-8?B?Rk9CMGU0UmxtRi9jdXJ6aWNFWWwwY1V1RGlUaHhXUU4rYmhlVVNmTzc3TUsy?=
 =?utf-8?B?U05zVmdNV1JGM3VHUTl6SlI1dFNDWE5TUjdRTUMrU2M5RVBOQkJUTmR5bXMz?=
 =?utf-8?B?Z3dqeTNITDJ2aitCcXBjSERPWkI2bnFya1NCbnlVWWlKYnYzT20yZTBaQTJG?=
 =?utf-8?Q?naVQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TllWbmJWUDdYdFlsMkhDZ2V3VjVDMWZUUHVMc0FSekw4SkVwUXlsRTlRZlVT?=
 =?utf-8?B?OWJaeEF6Z0FGL1dYRjBiN3NMQituY0pZVnhsTkpDUXdqME9OZXhMU0h5eURr?=
 =?utf-8?B?TXFEVmVVaTFScHcxZkkzTzl3S3VGU2tYZ2ZwdkkvV3pBL3RvNlBIdHhhblN4?=
 =?utf-8?B?OFh6d1d6cjVVTzNEWGpDWmJVeDkyQVk5ZTlSbUh3OEp6TGVSNURHdW9udXZS?=
 =?utf-8?B?R1FicENFaTdqcGRyRzMxNGx6dmhVWUdhampjYlNDWExKYmQxSFVONGMreWh1?=
 =?utf-8?B?NENVRFBYOGdhNnA4QVQwVndlZm9CUGdkdkcvb1N1aGdsd0o1ZUg1enA2dVJP?=
 =?utf-8?B?RlE5SFQweTMyRFoxMUJMNG1lQld1WmhCTnIwNkQ4L1UvWExrNmQxYnNRM0c4?=
 =?utf-8?B?RGdvKytJNE90K1hQUHY5clV6RzFJTTRsTFZla2hzZEczSG5iRDN1b0taWENE?=
 =?utf-8?B?RWFpak1LemVWNkFsYkI2K2J6MlpHNWNJejVZM0pDeHJiNFNnTEpnUHhlNnpV?=
 =?utf-8?B?eFpYditPQS9wRG1DcW9Tb1AzR0FrTXFaaW0vTk9iTEgwUnpyeWNvRXlMTC82?=
 =?utf-8?B?U2I5VzM0Q2ROenZCVkN4UzZuWGNVTEdiMDEycEFaWFZXN1lSQ3NwYXE2Qkgr?=
 =?utf-8?B?eWR4eVZZWEgyT1g0eWpzT0EwTlFnNC9HR0FDZ28vOUdrMERlU0VNbXJPdHRV?=
 =?utf-8?B?cG9vQktGMm50eGxKWUUyQ2dVc0VzQWVwSHpteU4zaVZFRVBoSm8vUWdYWlVk?=
 =?utf-8?B?UFUvem5qWnQ1Wm5aeVZ6LzMwRHR0em5NRnhDd29nVGFWS1hPbGFRZWZjNTdn?=
 =?utf-8?B?ejhLV210WFYyNVBWTU5PVCtOZjNvS3Ftalo5L0NsWmNKeWRkZEQ3VTNKVklC?=
 =?utf-8?B?YlRWNm9ldURHeHgrY1hKMFp0SEo5Zk1JclFndEszY3V0cll0a1Z3TFZtVjRJ?=
 =?utf-8?B?SDZhN0MyYnovaDR6bk1wcTZ1T3ptNVJSOEZDdmhSRFlrNEQ4VEw1ZHQ3TCtH?=
 =?utf-8?B?SWQ1Q08vQXp2RFZyOXgxVGI0NUNza0daUlBXQUVUci9TR2hnSVRmWFdtd3c3?=
 =?utf-8?B?b3JnQWdGNEV3R2NJei8rSkZpU0NMMnplUDZ4NUd4U1Q0MUlWd2hrSWVra1Zw?=
 =?utf-8?B?OW1GeDl6b1V5MUVKUGRLSU9oT3g1Z2JSdkZuTjRaNGczSUdiT2lGS2x0bExN?=
 =?utf-8?B?bnJKSHpkR1hZUExjaXZVMkljWGVQbEFSOC9ML1lva1ZFZjBha3N0d0syc2s4?=
 =?utf-8?B?UEt2a01ycGd1U29vUnN6MTRJdGkwZng4S3p2Z1R2dUhldTFBZHdXbmZUZ1Rq?=
 =?utf-8?B?WFNFcFEvNEJ2SHE1Vjhhd1RudE1jNWprMWZtZGZtTlNwdlFtcFVhQ1JpR2xW?=
 =?utf-8?B?cnRyb09GUHdCbFpwak4yeTFnS1hKVk5xb0FOS2RIMU1QeWtzQ1hlMlA3WDR2?=
 =?utf-8?B?S1dXdldZcjIvczN2dHc4WGhpSGZsL1ZNMmF6NlQ1T3E1dkpXbmo3MVBiSDhZ?=
 =?utf-8?B?UlljaitjKzdtZ0diYmpGZXJSb1ZuWDQzQVlCK25JOXRZMXcxOENiTVUrZkxn?=
 =?utf-8?B?cklBNTN0UCtDa2YveXJFUXpsK3pSYUk1Y29uNlVYbFFoaHBBcUNBUGlkMTlw?=
 =?utf-8?B?R3FuRHFSbVZmU0F5VE9zUEJtQlVEQnY5TmJQbVZpQWdSN3FsR0w3c2ZaT3A0?=
 =?utf-8?B?MlRoaEFNd0liaW1uZmJTYVh4TjF3TXZjbHk4YWQyVXJoSlJTMmRZYUZUaUJp?=
 =?utf-8?B?YnJUaHB5NTRPdmVEU3FRZ09aYzlCbWtxV0pQQUF3VmU1QTZQUUo0am1iaVdn?=
 =?utf-8?B?THJMY1BCWUdPblZuS2hOdlppMXNFSGU2Y01WNXdHcWU3TGRNWUJUNGtxZHRN?=
 =?utf-8?B?NmVzNjJSTk83LzQ2UnJsVm1KbmRCVTdTSFBoQ0JLTjliaVdkNnpDT1VxekFB?=
 =?utf-8?B?VjVOZ3BqWE9mbVdSbThzb3k1MjhycC9vZk1SN1lUejlBd2UveVJyWFZncFhn?=
 =?utf-8?B?YzR3UTd4djNxNXZFcEJIWlpCazkzLzZpbU5pTXBtRzY3VnNzUXlnSjdwQXRw?=
 =?utf-8?B?Zm5DaUJ3M3hmNUx1TnFqd3A4NjZjL29LSGlaWHJ3T3IrN3pIVEZWclhtZTdi?=
 =?utf-8?B?Mzc5TjBZaXJxMlhjSE9qSTV1ays3VW9Zc205Wk14QS91dTlTQm9CYnk5UTA3?=
 =?utf-8?B?bTVpbGVvOVQrMXEvVHpLZmZmbG05MTR1Sm1HL3JyR2twVFY5NjlISW9hYTdC?=
 =?utf-8?B?TnN5blR3d09aQWRab2c0OFUwSWhzM3NhckdrVVhlNnd2czE5MHhFT3pXY2RX?=
 =?utf-8?B?Tld3aUFNU25XdGJIUWYxaWlHU0krUTRUU1JucU91emFhZVJVUkM1UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f37f9241-3dc7-431e-bc76-08de6243bbef
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 10:13:39.1284
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ikPk/jNYSoHqpPL40kaXs2ok1YHh9S9f5sD3Sfy65XNpg8J1JqQ599NueVFuBxa6zrxqMlABxNnC2pQha+IWPw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR03MB8365

On Mon, Feb 02, 2026 at 10:30:29AM +0100, Jan Beulich wrote:
> On 02.02.2026 10:14, Roger Pau Monné wrote:
> > On Mon, Feb 02, 2026 at 09:51:18AM +0100, Jan Beulich wrote:
> >> On 29.01.2026 14:10, Jan Beulich wrote:
> >>> @@ -160,10 +161,13 @@ int pci_mmcfg_arch_enable(unsigned int i
> >>>      return 0;
> >>>  }
> >>>  
> >>> -void pci_mmcfg_arch_disable(unsigned int idx)
> >>> +int pci_mmcfg_arch_disable(unsigned int idx)
> >>>  {
> >>>      const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
> >>>  
> >>> +    if ( !pci_mmcfg_virt[idx].virt )
> >>> +        return 1;
> >>
> >> Afaict this is what causes CI (adl-*) to say no here:
> >>
> >> (XEN) [    4.132689] PCI: Using MCFG for segment 0000 bus 00-ff
> >> (XEN) [    4.132697] ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
> >> (XEN) [    4.132700] CPU:    12
> >> (XEN) [    4.132702] RIP:    e008:[<ffff82d0405779bd>] pci_mmcfg_read+0x19e/0x1c7
> >> (XEN) [    4.132708] RFLAGS: 0000000000010286   CONTEXT: hypervisor (d0v0)
> >> (XEN) [    4.132711] rax: 0000000000300000   rbx: ffff808000300100   rcx: 0000000000000000
> >> (XEN) [    4.132714] rdx: ffff808000300100   rsi: 0000000000000000   rdi: ffff8304959ffcec
> >> (XEN) [    4.132716] rbp: ffff8304959ffd18   rsp: ffff8304959ffce8   r8:  0000000000000004
> >> (XEN) [    4.132718] r9:  ffff8304959ffd2c   r10: 0000000000000000   r11: 0000000000000000
> >> (XEN) [    4.132720] r12: 0000000000000100   r13: 0000000000000004   r14: ffff8304959ffd2c
> >> (XEN) [    4.132723] r15: ffff808000000000   cr0: 0000000080050033   cr4: 0000000000b526e0
> >> (XEN) [    4.132725] cr3: 0000000492a30000   cr2: ffff808000300100
> >> (XEN) [    4.132727] fsb: 0000000000000000   gsb: ffff8881b9a00000   gss: 0000000000000000
> >> (XEN) [    4.132729] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
> >> (XEN) [    4.132733] Xen code around <ffff82d0405779bd> (pci_mmcfg_read+0x19e/0x1c7):
> >> (XEN) [    4.132734]  48 39 d3 72 ea 4c 01 e3 <8b> 03 89 c3 4d 85 f6 74 0d 41 89 1e b8 00 00 00
> >> (XEN) [    4.132744] Xen stack trace from rsp=ffff8304959ffce8:
> >> (XEN) [    4.132745]    0000000300000286 ffff830495bd8010 0000000000000003 ffff830495bd8010
> >> (XEN) [    4.132749]    ffff8304959ffdd0 ffff82d0405fa7ef ffff8304959ffd30 ffff82d040576877
> >> (XEN) [    4.132753]    000000000000000c ffff8304959ffd58 ffff82d04039b81d ffff8304959ffe28
> >> (XEN) [    4.132756]    0000000000000003 ffff830495bd8010 ffff8304959ffd80 ffff82d0405fa90b
> >> (XEN) [    4.132760]    ffff8304959ffdc8 ffff830495bd8010 ffff830498019650 ffff8304959ffdb8
> >> (XEN) [    4.132764]    ffff82d0403983e0 ffff830498019650 ffff8304959ffe28 ffff82d0405fa7ef
> >> (XEN) [    4.132767]    0000000000000018 ffffc9004002b900 ffff8304959ffdf8 ffff82d04039feba
> >> (XEN) [    4.132771]    ffff82d0405fa7ef ffff8304959ffe28 0000000000000000 ffffc9004002b900
> >> (XEN) [    4.132774]    0000000000000000 ffff8304959bb000 ffff8304959ffe78 ffff82d0405ff666
> >> (XEN) [    4.132778]    ffff82d0405713b8 00000000ffffffff 00a0fb0081f456e0 ffff8304959b3010
> >> (XEN) [    4.132782]    00000000c0000000 00000001ff000000 ffff8304959fff08 0000000000000040
> >> (XEN) [    4.132785]    000000ec00000001 ffff8304959fff08 ffff8304959a4000 0000000000000021
> >> (XEN) [    4.132789]    0000000000000000 ffffc9004002b900 ffff8304959ffef8 ffff82d0405711b2
> >> (XEN) [    4.132792]    0000000000000000 ffff888100456938 ffff8881001470b8 0000000000000018
> >> (XEN) [    4.132795]    0000000000000000 ffff8304959ffef8 ffff82d0406213f9 ffff8304959a4000
> >> (XEN) [    4.132799]    0000000000000000 ffff8304959a4000 0000000000000000 0000000000000000
> >> (XEN) [    4.132802]    ffff8304959fffff 0000000000000000 00007cfb6a6000d7 ffff82d0402012d3
> >> (XEN) [    4.132806]    0000000000000000 00000000ffffffff ffff8881001470b8 ffff888100b88900
> >> (XEN) [    4.132809]    ffffc9004002b900 ffff8881001470b8 0000000000000283 ffff888100456938
> >> (XEN) [    4.132813]    ffff888100065410 0000000000000000 0000000000000021 ffffffff81f7842a
> >> (XEN) [    4.132816] Xen call trace:
> >> (XEN) [    4.132819]    [<ffff82d0405779bd>] R pci_mmcfg_read+0x19e/0x1c7
> >> (XEN) [    4.132822]    [<ffff82d040576877>] F pci_conf_read32+0x55/0x5e
> >> (XEN) [    4.132826]    [<ffff82d04039b81d>] F pci_check_extcfg+0xb1/0x13b
> >> (XEN) [    4.132831]    [<ffff82d0405fa90b>] F physdev_check_pci_extcfg+0x11c/0x121
> >> (XEN) [    4.132833]    [<ffff82d0403983e0>] F drivers/passthrough/pci.c#iterate_all+0xa2/0xe2
> >> (XEN) [    4.132836]    [<ffff82d04039feba>] F pci_segment_iterate+0x4e/0x74
> >> (XEN) [    4.132839]    [<ffff82d0405ff666>] F do_physdev_op+0x362a/0x4161
> >> (XEN) [    4.132842]    [<ffff82d0405711b2>] F pv_hypercall+0x6be/0x838
> >> (XEN) [    4.132845]    [<ffff82d0402012d3>] F lstar_enter+0x143/0x148
> >> (XEN) [    4.132847] 
> >> (XEN) [    4.132848] Pagetable walk from ffff808000300100:
> >> (XEN) [    4.132851]  L4[0x101] = 0000000000000000 ffffffffffffffff
> >>
> >> There is an important comment in pci_mmcfg_arch_disable():
> >>
> >>     /*
> >>      * Don't use destroy_xen_mappings() here, or make sure that at least
> >>      * the necessary L4 entries get populated (so that they get properly
> >>      * propagated to guest domains' page tables).
> >>      */
> >>
> >> Hence it is wrong to bypass
> >>
> >>     mcfg_ioremap(cfg, idx, 0);
> > 
> > Hm, I see.  The L4 slot must be unconditionally populated before we
> > clone the idle page-table, otherwise the mappings won't propagate.
> > 
> > What about unconditionally populating the L4 slot in
> > subarch_init_memory()?  That seems less fragile than doing it in
> > pci_mmcfg_arch_disable().
> 
> Less fragile - perhaps. Yet I don't see why we should populate the field if
> we wouldn't ever need it. Of course with violating layering some, we could
> know in subarch_init_memory(), as pci_setup() runs earlier.

How can Xen be sure at setup time that the slot will never be used?
The MMCFG could be empty initially when parsed by Xen, but MMCFG
regions might appear as a result of AML method execution (_CBA and
_CRS methods in hotplug host bridges).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 10:17:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 10:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218504.1527250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmqzD-0006d4-6a; Mon, 02 Feb 2026 10:16:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218504.1527250; Mon, 02 Feb 2026 10:16: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 1vmqzD-0006cx-3g; Mon, 02 Feb 2026 10:16:51 +0000
Received: by outflank-mailman (input) for mailman id 1218504;
 Mon, 02 Feb 2026 10:16: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=lssc=AG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vmqzB-0006cb-Ug
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 10:16:49 +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 48a805b4-0020-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 11:16:48 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47ee3a63300so47028295e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 02:16:48 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e131ce70sm44501951f8f.27.2026.02.02.02.16.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 02:16:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48a805b4-0020-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770027408; x=1770632208; 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=+RJt+XfnsFHr5kOyDQqA5I1eEtHsFULlWrg8mNPeRUg=;
        b=bX/t+lK/5JzZDnWXqS/eX9ikGUEjtZRgRz5Or+gCc+bQsE+wGMUFphYM6RHJdaBf5B
         sCERnOjQ/MP0JCdJb45iXXH4A0xb7T2vX0Equ74kPMX2S2uPFRrbFtV2IZHdMOydMfmG
         al82OOTSzC09MHYTHM241pxISuilM2L1p06229keKcjsCnm4vIKgfnbIyq1TBOSSIuI5
         KWL0XtoLHQlpI5aQ/ez4YtA34XK8xvoTFIDEdKSpoTEb4mPDKPNwR5YFM4+XfZgtfIlS
         dMCVBz5SzVvmi0whKotdtNJtsbrx7VktHIffNwqKE8VgAMT3MGupdhO5jA/TU7Tms9ux
         0b0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770027408; x=1770632208;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=+RJt+XfnsFHr5kOyDQqA5I1eEtHsFULlWrg8mNPeRUg=;
        b=tSMkwjwsKlmRAYpIaV5xIjCQeKxbTpQUdgjH4vfO9L4nnQ1ngbFmncA9/2mM5I0aak
         va+ssXIg2+NBcd+Mu9PAdYL0xctBFKvfQOl+D2FQ2hSnrAlr3rHRP3RBHra+wx8OSvQm
         51W5+SPvtbG0kp4/FmXkB116swI6DSDmQU2fCiNbp+oadS/HrwnU+bxl/J34qUE9/zo3
         N3Ymj5j+dnczfoVIKneUvBesr1Nvkuoaffms9I0a0mWvzegTHjsU2yWLoIMklkPeHjci
         mXvlJB07Tj75JoOEbqko+rxYt5lkwH0mokZVzv2PD6M2sT2ojC4f8DSQjGX1DNMKVPSM
         NT8w==
X-Forwarded-Encrypted: i=1; AJvYcCX8nT6mevb3JCgwohyJ2/cYte9/+pObETApjEwOiKHju3NGee/yvRHPO0g2ed43dbgXggq1q+6zqPo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzM0GTnR+VlyoIAeX+TuXDXM5gvuhU4qJ3QrKuMJ3AN9F/YjtVX
	VQnJgy9l8I4TqWSvnjMyokQgxxlgY487mW04V13UNajAIKmws4JVdzzB
X-Gm-Gg: AZuq6aKJWTeJ9in3jU7sAxw0iDl8jUPmFDfqNZ5Lkp4CaFDDvp08/b0obVj1+t/3Bjd
	ZaEFaOdEK1vVGAunuDovxsh8w7wkIfSB0bsQEV5c56bddPoNgTPfspy/OJHeZ9RP8JDDwk6v/O7
	7q7unM7j/AtDdNBEWEy7D6nv2scdnot5koU32dflskkA1lCSlPOn52tLLWDvshYLRO0vnf06MHy
	TCJUnTseQxoPDap1NUQBirho91jKBD+Ihks9q8IEcvAJ3GHc4Hcxp+6XruiMNC0zz7gV4K7g4zL
	xRwK+a7oGB9TdWU/UwU3ayzjbaaoaXJ768pcZXbUx0alzZNf6o+TG6MGKr43cOI7TI2jWc5wpig
	4FmyLZwAwq3/FhZQlKMi5qOflRvuh5x7ZrP2asj72SioH3WDiQkpjdiYJPDeWMRE8w2/2YI2RN7
	cJa0FiIpDdPVuuqbbcCFw1o7oZtBjNVmlV9+ATT0WsVBryLA+wgRbX5rVgVPdkLrs=
X-Received: by 2002:a05:6000:4205:b0:433:1d30:44c with SMTP id ffacd0b85a97d-435f3aac3cdmr13582472f8f.43.1770027407681;
        Mon, 02 Feb 2026 02:16:47 -0800 (PST)
Message-ID: <f2523125-2adb-410d-ae84-c9468ad9a151@gmail.com>
Date: Mon, 2 Feb 2026 11:16:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 04/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <7b5b7cceb8a131b198d33a83f49ed112ff310389.1769099885.git.oleksii.kurochko@gmail.com>
 <b0f9073f-1c27-4162-a0b4-3007ff365bf2@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <b0f9073f-1c27-4162-a0b4-3007ff365bf2@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 1/29/26 5:44 PM, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> Based on Linux kernel v6.16.0.
>>
>> Add lockless tracking of pending vCPU interrupts using atomic bitops.
>> Two bitmaps are introduced:
>>   - irqs_pending — interrupts currently pending for the vCPU
>>   - irqs_pending_mask — bits that have changed in irqs_pending
>>
>> The design follows a multi-producer, single-consumer model, where the
>> consumer is the vCPU itself. Producers may set bits in
>> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
>> performed only by the consumer via xchg_acquire(). The consumer must not
>> write to irqs_pending and must not act on bits that are not set in the
>> mask. Otherwise, extra synchronization should be provided.
>>
>> On RISC-V interrupts are not injected via guest registers, so pending
>> interrupts must be recorded in irqs_pending (using the new
>> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
>> HVIP before returning control to the guest. The consumer side is
>> implemented in a follow-up patch.
>>
>> A barrier between updating irqs_pending and setting the corresponding
>> mask bit in vcpu_set_interrupt() / vcpu_unset_interrupt() guarantees
>> that if the consumer observes a mask bit set, the corresponding pending
>> bit is also visible. This prevents missed interrupts during the flush.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> The use of barriers here matches the (Linux) specification, so
> Acked-by: Jan Beulich <jbeulich@suse.com>
>
> However, ...
>
>> @@ -130,3 +131,43 @@ void arch_vcpu_destroy(struct vcpu *v)
>>   {
>>       vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info));
>>   }
>> +
>> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
>> +{
>> +    /*
>> +     * We only allow VS-mode software, timer, and external
>> +     * interrupts when irq is one of the local interrupts
>> +     * defined by RISC-V privilege specification.
>> +     */
>> +    if ( irq != IRQ_VS_SOFT &&
>> +         irq != IRQ_VS_TIMER &&
>> +         irq != IRQ_VS_EXT )
>> +        return -EINVAL;
>> +
>> +    set_bit(irq, v->arch.irqs_pending);
>> +    smp_mb__before_atomic();
>> +    set_bit(irq, v->arch.irqs_pending_mask);
> ... isn't it too heavy a barrier here? You only need ordering of writes,
> without any regard to reads, don't you?

It is true, we could have FENCE W, W here. I'll update in the next patch
version.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 10:27:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 10:27:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218512.1527260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmr9S-00009q-4G; Mon, 02 Feb 2026 10:27:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218512.1527260; Mon, 02 Feb 2026 10: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 1vmr9S-00009j-1F; Mon, 02 Feb 2026 10:27:26 +0000
Received: by outflank-mailman (input) for mailman id 1218512;
 Mon, 02 Feb 2026 10: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=yWnE=AG=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vmr9Q-00008L-Qf
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 10:27:24 +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 c24a703e-0021-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 11:27:22 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-658ad86082dso7478058a12.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 02:27:22 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8de3d734aesm688456966b.7.2026.02.02.02.27.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 02:27:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c24a703e-0021-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770028041; x=1770632841; 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=l+3o+MHKL82BTRKdVCIUQ3bcYUyRbNh1DNTmf0Cc978=;
        b=AjYOxELJ0BYHCIjUOWtI23FocD3XRk5WRP9kuecsueHin/93LOacQP7Z9H1h1+2kH2
         nLFRaEzqDFZNuGM0/naz56FLm9ZGZCyNx+lzwCKrjEUtpLiJQAt0q5+QNQAOZ4CuLGkG
         GuMgybjaFIm3FA+amXpAKABN8lIlp6GDZ5sdy+hsKRTGbB2Frqi9qZPuyGr3EiErs+cT
         m/vb5ERzOAm4CK6fPRfIK7kuor5wxfFgehn7/d9rX5EDCiLHo8yRAYCOrqTBRp70ae3W
         Uy4Gvu7xd0ARA7WPi/IhJdwLH7Z6afNXzA72wN9CiXpnN36zfOWmdbG7K0cJzYEtatt/
         OVLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770028041; x=1770632841;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=l+3o+MHKL82BTRKdVCIUQ3bcYUyRbNh1DNTmf0Cc978=;
        b=adRslhmwXCFrP4m7XHCiJpT9LCTTwb2qEWc0mhjxaeTeGapnp9egCXjCVIHIPM14Xb
         e8QJfhijSBoHIzlKTwkBiF+8A0/zNAfUgAHZ6XnXFcSGTEs6xpyfi3cOxCo43Ire+PFL
         irlGA0JoNLzEqUE+08Qdub60qNWW+TG6kp6Bqr0aorQWPOgWCZc3tdMiSA+w5FlRSTlS
         cJ9Q422MoxnpvNRwyL61lvtTZbQryodks3cjgFi/rIZTGNYdQNoHMO5V4Qd+w2fcGW99
         TTYP16rh6qfXFZf29Ak9s4MnEkROPdeCbbD6DAW3A55gwLhDoM2fOuwwJd+pnWKDOlQc
         jANA==
X-Forwarded-Encrypted: i=1; AJvYcCVSgvZp0tPJt7oMLBIxckwY7/vgwpW3JsYi8tXevTDUL4bN281j8dq3Uc3nptHvNjwZ/meifMlJBJA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuhTIpvXAum6Mg0hxRy79SFoeyM4kjJOjeiPzSQmOYSGiyH6cC
	3j3km51+7mYBnoRcYBWk8RfmZtl6MbsZh42baGR/hWd8mbskZDM9SJFqq8DSTch2Hu0=
X-Gm-Gg: AZuq6aLshF5i7FmmRSNNlIQd1BWCjWyHUSD6YSfcTHpUekonlWC78O4Uj3FhX2xZRHY
	XhmdaeKW70RYO2X346oNXoU0NeXrvURqL4NIn+gPny8NzztpLjcmw4NtTBllf/nLdvJD89sJevQ
	4jFZoADYUp/+iuG4DvFqUxlee084IVnPLpebt01IRERWVn9Hct4xwa2nqM0cs1cYdop+S6GqXW0
	5jV/SDa8ZIgBv6kgkmRD/fYrE2Zjjl6CkVCzblm/gO4S/+7Gd4JXacFnOAuczmg/oc/Vdj1DfFz
	T7ZMHhMgg9jkq+Y1GUdOsBJhE8zV/34IZkyQPFmzAreqF0/vTuo1/EY8OR6r8/Dj/6Dj3D0SeEz
	OojEYmG/J/f6AwwQzO6K3UiURNIju/fobUhCYnUEjFWVa2tGMpCfCo6nGDjvsIXmXFPWOwCfLxv
	PgOhoECmyGeOEAGneWhBw+GLH35NBQCsICT+KfdGf1FnOD3BmFxmH/C37BGwVqyY//moGsTAphF
	ba9W9o746HZQG4Y/+Nrv5YEgCMg/Reg1A7rxg==
X-Received: by 2002:a17:906:d54e:b0:b87:6af7:c186 with SMTP id a640c23a62f3a-b8dff8674d3mr755283566b.54.1770028041362;
        Mon, 02 Feb 2026 02:27:21 -0800 (PST)
Message-ID: <0afb8dc5-6ab9-4f61-af3a-8424835386e4@suse.com>
Date: Mon, 2 Feb 2026 11:27:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/6] x86: Cleanups around slow_down_io()
To: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-block@vger.kernel.org
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
References: <20260119182632.596369-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: <20260119182632.596369-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------EFFtuyAw2mxdAKPsAqPioBPH"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------EFFtuyAw2mxdAKPsAqPioBPH
Content-Type: multipart/mixed; boundary="------------DPiBTuW4WhK0KFF1cKCxJjmg";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-block@vger.kernel.org
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
Message-ID: <0afb8dc5-6ab9-4f61-af3a-8424835386e4@suse.com>
Subject: Re: [PATCH v4 0/6] x86: Cleanups around slow_down_io()
References: <20260119182632.596369-1-jgross@suse.com>
In-Reply-To: <20260119182632.596369-1-jgross@suse.com>

--------------DPiBTuW4WhK0KFF1cKCxJjmg
Content-Type: multipart/mixed; boundary="------------liiRpZ2LGHl5C0gioM2bJdPR"

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

UGluZz8NCg0KT24gMTkuMDEuMjYgMTk6MjYsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IFdo
aWxlIGxvb2tpbmcgYXQgcGFyYXZpcnQgY2xlYW51cHMgSSBzdHVtYmxlZCBvdmVyIHNsb3df
ZG93bl9pbygpIGFuZA0KPiB0aGUgcmVsYXRlZCBSRUFMTFlfU0xPV19JTyBkZWZpbmUuDQo+
IA0KPiBEbyBzZXZlcmFsIGNsZWFudXBzLCByZXN1bHRpbmcgaW4gYSBkZWxldGlvbiBvZiBS
RUFMTFlfU0xPV19JTyBhbmQgdGhlDQo+IGlvX2RlbGF5KCkgcGFyYXZpcnQgZnVuY3Rpb24g
aG9vay4NCj4gDQo+IFBhdGNoIDQgaXMgcmVtb3ZpbmcgdGhlIGNvbmZpZyBvcHRpb25zIGZv
ciBzZWxlY3RpbmcgdGhlIGRlZmF1bHQgZGVsYXkNCj4gbWVjaGFuaXNtIGFuZCBzZXRzIHRo
ZSBkZWZhdWx0IHRvICJubyBkZWxheSIuIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gb2YNCj4g
cmVtb3ZpbmcgdGhlIGlvX2RlbGF5KCkgZnVuY3Rpb25hbGl0eSBjb21wbGV0ZWx5LCBhcyBz
dWdnZXN0ZWQgYnkgSW5nbw0KPiBNb2xuYXIuDQo+IA0KPiBQYXRjaCA1IGlzIGFkZGluZyBh
biBhZGRpdGlvbmFsIGNvbmZpZyBvcHRpb24gYWxsb3dpbmcgdG8gYXZvaWQNCj4gYnVpbGRp
bmcgaW9fZGVsYXkuYyAoZGVmYXVsdCBpcyBzdGlsbCB0byBidWlsZCBpdCkuDQo+IA0KPiBD
aGFuZ2VzIGluIFYyOg0KPiAtIHBhdGNoZXMgMiBhbmQgMyBvZiBWMSBoYXZlIGJlZW4gYXBw
bGllZA0KPiAtIG5ldyBwYXRjaGVzIDQgYW5kIDUNCj4gDQo+IENoYW5nZXMgaW4gVjM6DQo+
IC0gcmViYXNlIHRvIHRpcC9tYXN0ZXIga2VybmVsIGJyYW5jaA0KPiANCj4gQ2hhbmdlcyBp
biBWNDoNCj4gLSBhZGQgcGF0Y2ggMSBhcyBwcmVyZXEgcGF0Y2ggdG8gdGhlIHNlcmllcw0K
PiANCj4gSnVlcmdlbiBHcm9zcyAoNik6DQo+ICAgIHg4Ni9pcnFmbGFnczogRml4IGJ1aWxk
IGZhaWx1cmUNCj4gICAgeDg2L3BhcmF2aXJ0OiBSZXBsYWNlIGlvX2RlbGF5KCkgaG9vayB3
aXRoIGEgYm9vbA0KPiAgICBibG9jay9mbG9wcHk6IERvbid0IHVzZSBSRUFMTFlfU0xPV19J
TyBmb3IgZGVsYXlzDQo+ICAgIHg4Ni9pbzogUmVtb3ZlIFJFQUxMWV9TTE9XX0lPIGhhbmRs
aW5nDQo+ICAgIHg4Ni9pb19kZWxheTogU3dpdGNoIGlvX2RlbGF5KCkgZGVmYXVsdCBtZWNo
YW5pc20gdG8gIm5vbmUiDQo+ICAgIHg4Ni9pb19kZWxheTogQWRkIGNvbmZpZyBvcHRpb24g
Zm9yIGNvbnRyb2xsaW5nIGJ1aWxkIG9mIGlvX2RlbGF5Lg0KPiANCj4gICBhcmNoL3g4Ni9L
Y29uZmlnICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrDQo+ICAgYXJjaC94ODYvS2Nv
bmZpZy5kZWJ1ZyAgICAgICAgICAgICAgICB8IDMwIC0tLS0tLS0tLS0NCj4gICBhcmNoL3g4
Ni9pbmNsdWRlL2FzbS9mbG9wcHkuaCAgICAgICAgIHwgMzEgKysrKysrKystLQ0KPiAgIGFy
Y2gveDg2L2luY2x1ZGUvYXNtL2lvLmggICAgICAgICAgICAgfCAxOSArKysrLS0tDQo+ICAg
YXJjaC94ODYvaW5jbHVkZS9hc20vaXJxZmxhZ3MuaCAgICAgICB8ICA2ICstDQo+ICAgYXJj
aC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQtYmFzZS5oICB8ICA2ICsrDQo+ICAgYXJjaC94
ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaCAgICAgICB8IDExIC0tLS0NCj4gICBhcmNoL3g4
Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIHwgIDIgLQ0KPiAgIGFyY2gveDg2L2tl
cm5lbC9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgMyArLQ0KPiAgIGFyY2gveDg2L2tlcm5l
bC9jcHUvdm13YXJlLmMgICAgICAgICAgfCAgMiArLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9p
b19kZWxheS5jICAgICAgICAgICAgfCA4MSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
Cj4gICBhcmNoL3g4Ni9rZXJuZWwva3ZtLmMgICAgICAgICAgICAgICAgIHwgIDggKy0tDQo+
ICAgYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMgICAgICAgICAgICB8ICAzICstDQo+ICAg
YXJjaC94ODYva2VybmVsL3NldHVwLmMgICAgICAgICAgICAgICB8ICA0ICstDQo+ICAgYXJj
aC94ODYveGVuL2VubGlnaHRlbl9wdi5jICAgICAgICAgICB8ICA2ICstDQo+ICAgZHJpdmVy
cy9ibG9jay9mbG9wcHkuYyAgICAgICAgICAgICAgICB8ICAyIC0NCj4gICAxNiBmaWxlcyBj
aGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxNTkgZGVsZXRpb25zKC0pDQo+IA0KDQo=
--------------liiRpZ2LGHl5C0gioM2bJdPR
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-----

--------------liiRpZ2LGHl5C0gioM2bJdPR--

--------------DPiBTuW4WhK0KFF1cKCxJjmg--

--------------EFFtuyAw2mxdAKPsAqPioBPH
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/Ey8FAmmAfAgFAwAAAAAACgkQsN6d1ii/Ey/2
zAf+IkVIvbIONVNOIsFijpcb0ksuCVfDZvIq2cPAb9rfEt4SV/Fv87G1BkwNCtKbrpMKsTjK2E8V
YxPglU6me8lcaWM/t2j74OrYLM0B0yfhTzS6I5AbtpGIMsQxiITsr//ZP64nl5N5/YvNKpLhvAkG
rqdkNYFQh4GB5FgSl079/ebN9POZERI4nOBDWTiJ69297xhtHXPambNil4kLLpNyi+I0vETf6+05
0pPWs7hQsNqqHWfyCdehYqc+H8ZZkY2Jg0uanT5Qv1kWieoCWahhlRcpKyz9tMoIofilTuPuAkGu
XnCl3azsTfUBNhgwDBPjw50R1tSidPTjMLavCd43jA==
=T21t
-----END PGP SIGNATURE-----

--------------EFFtuyAw2mxdAKPsAqPioBPH--


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 10:50:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 10:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218522.1527270 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmrVk-0004mX-0s; Mon, 02 Feb 2026 10:50:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218522.1527270; Mon, 02 Feb 2026 10:50: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 1vmrVj-0004mQ-TX; Mon, 02 Feb 2026 10:50:27 +0000
Received: by outflank-mailman (input) for mailman id 1218522;
 Mon, 02 Feb 2026 10:50: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=lssc=AG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vmrVj-0004mK-HE
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 10:50:27 +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 fae46601-0024-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 11:50:25 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso44114925e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 02:50:25 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e131ce93sm42225697f8f.24.2026.02.02.02.50.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 02:50:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fae46601-0024-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770029425; x=1770634225; 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=XB7C+bBBKninZ5RutK3rjkSLfIYqe3jHctKo7KTIFd8=;
        b=BD5JUtqcB5fi7JGWtDMg6QfH/hEPA1nIScK0wfg8O1lMOCeaLHTy1/bRGxwlh8Vvig
         XD8XPzjVqh9Y5OaIsWAH+1mZaBSdJCQJnY99hhNZ9D+orpCLxLOz/llsibSiuSAiilNp
         j3PvjyHnwYU2xnA2fmqd8OPQX8jUm4Y6II09f8oey4n1MNEIas26AHPX4CRhEwwMxGH/
         32yUUPiHOpf1Ef3dPtm9hm6/u6I6EfyRxoFVfIMm6q/e+PPfYXjU59t9zTVi+bPIxIpd
         bPy5sfKWV7ZFkyrEItcHSg7K+pghzzT1B66BnKeVr0T3xfK+tLYJIb7wLXb0CxrZ+HG4
         Brwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770029425; x=1770634225;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=XB7C+bBBKninZ5RutK3rjkSLfIYqe3jHctKo7KTIFd8=;
        b=otIoZ3nzU7pGBY4C6eQy95u8mFC2eNRhBhMza6ILLiHpX6QMcqNfDnBg/schwnvjvB
         0t7il40vCUMC0+dMFjg7pwLVkn78HnLfvJWwW1+JIg3D3qBEJl71eBLWjEBgiXoxJL7W
         hGv79vErMoeocskFQ+AjZIZTObEMtwDA01aHmY2XtzXLBYhvJkf2oA0TLIk9vvp33deD
         nzKqsE3ZPYPqjS7x/gUdrzhqoDJkPM/IFfcjA6pU3IrF3pmHouMzSqkDutEQpJhMLBlu
         EIKjps3Wiy2CLPHTWbGGyW1cSihF0/XEeiM2Ez82moQvobDCYa9Zqh0jLlmrHQMFf6ot
         eohg==
X-Forwarded-Encrypted: i=1; AJvYcCUbOENKyoseA8IgVswI0XMDhR8cjrIRAZt/sp4HgyoY4apqThYqZJRoG9cxI1Am0BsZHq6iIxQaqc0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOdBLME10hQMkrK2pSHQXC5+YwN49y+A1PTO77/ZlHnNQ4EUnU
	jQ0KeyRT7U6YlokhfM3WwYU17DLSdQ5B0smH45mmZjy07OKyk9uRikvNOXhzyw==
X-Gm-Gg: AZuq6aL/3jDpo/LRjA5vK9YvRbbKBEhslpBby6E7d3wDDp/oRAihdxnWZmMVLuO96LK
	aVY1qXjdP8u/G1b+YsCha+LD6Akpb8vsFPlWR1Sirm3PwgjQI1igt2bcZbXOAaVlxZzYe6ueULD
	4BTQNJLqgkoW7mrcdZhoCRQJ8LdNJE3dWrOW1TVbkKbdsKAqVG/68ppcFs07FvXADPlltCzD402
	AsKvLckMzwj775SGqlMOI7zSafSyhD+DqQtFPJ9AP1YRdW/kgJLAbobOWfxBU7DdHj2mbOGrKcE
	kI+0YfXwzreL9rdy4ciMz8St8eqqrOVF78zfNYjhYh7gHmib0Y/LpTTnDnScWGbNIzIUYHFI1zs
	9T/GhtBnCchZ/zEd5Z1X1BfIKr6s+glxr9QmfqRtVqhzokt8cRq37H2oOCnZUpHz6azo3/aH2XD
	tpyjY2/7RbA4mBTveXQPsoP9X+docLM+qZuhTPZlgX0X9eZlWU9q8rUyGkNxthEDY=
X-Received: by 2002:a05:600c:4ec7:b0:47d:264e:b35a with SMTP id 5b1f17b1804b1-482db46b3eemr136869525e9.13.1770029424665;
        Mon, 02 Feb 2026 02:50:24 -0800 (PST)
Message-ID: <5fd2bbce-7d27-4f54-8eed-5bee0d2a6dd2@gmail.com>
Date: Mon, 2 Feb 2026 11:50:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 2
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <58a7723ec48d84b91fd4730fe3ae653f55a0fd99.1769099885.git.oleksii.kurochko@gmail.com>
 <1bd0726d-20d8-4506-bb8e-849fd8b091a7@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1bd0726d-20d8-4506-bb8e-849fd8b091a7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 1/29/26 6:01 PM, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> This patch is based on Linux kernel 6.16.0.
>>
>> Add the consumer side (vcpu_flush_interrupts()) of the lockless pending
>> interrupt tracking introduced in part 1 (for producers). According, to the
>> design only one consumer is possible, and it is vCPU itself.
>> vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due
>> to the lack of functionality) before the hypervisor returns control to the
>> guest.
>>
>> Producers may set bits in irqs_pending_mask without a lock. Clearing bits in
>> irqs_pending_mask is performed only by the consumer via xchg() (with aquire &
>> release semantics). The consumer must not write to irqs_pending and must not
>> act on bits that are not set in the mask. Otherwise, extra synchronization
>> should be provided.
>> The worst thing which could happen with such approach is that a new pending
>> bit will be set to irqs_pending bitmap during update of hvip variable in
>> vcpu_flush_interrupt() but it isn't problem as the new pending bit won't
>> be lost and just be proceded during the next flush.
>>
>> It is possible a guest could have pending bit not result in the hardware
>> register without to be marked pending in irq_pending bitmap as:
>>    According to the RISC-V ISA specification:
>>      Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>>      interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>>      is an alias (writable) of the same bit in hvip.
>>    Additionally:
>>      When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>>      zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>>      hie.VSSIE.
>> This means the guest may modify vsip.SSIP, which implicitly updates
>> hip.VSSIP and the bit being writable with 1 would also trigger an interrupt
>> as according to the RISC-V spec:
>>    These conditions for an interrupt trap to occur must be evaluated in a
>>    bounded   amount of time from when an interrupt becomes, or ceases to be,
>>    pending in sip,  and must also be evaluated immediately following the
>>    execution of an SRET  instruction or an explicit write to a CSR on which
>>    these interrupt trap conditions expressly depend (including sip, sie and
>>    sstatus).
>> What means that IRQ_VS_SOFT must be synchronized separately, what is done
>> in vcpu_sync_interrupts().
> And this function is going to be used from where? Exit from guest into the
> hypervisor? Whereas vcpu_flush_interrupt() is to be called ahead of re-
> entering the guest?

Both of them are called before returning control to a guest (missed to mention
that in the commit message) in do_trap() at the end:

static void check_for_pcpu_work(void)
{
     ...

     vcpu_flush_interrupts(current);

     vcpu_sync_interrupts(current);
}

void do_trap(struct cpu_user_regs *cpu_regs)
{
     ...
     if ( cpu_regs->hstatus & HSTATUS_SPV )
         check_for_pcpu_work();
}

>
> I ask because vcpu_sync_interrupts() very much looks like a producer to me,
> yet the patch here supposedly is the consumer side.

Yes, vcpu_sync_interrupts() should be in producer side, I'll move it to the prev.
patch.

>
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -171,3 +171,68 @@ int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
>>   
>>       return 0;
>>   }
>> +
>> +static void vcpu_update_hvip(struct vcpu *v)
> Pointer-to-const?
>
>> +{
>> +    csr_write(CSR_HVIP, v->arch.hvip);
>> +}
>> +
>> +void vcpu_flush_interrupts(struct vcpu *v)
>> +{
>> +    register_t *hvip = &v->arch.hvip;
>> +
>> +    unsigned long mask, val;
> These are used ...
>
>> +    if ( ACCESS_ONCE(v->arch.irqs_pending_mask[0]) )
>> +    {
>> +        mask = xchg(&v->arch.irqs_pending_mask[0], 0UL);
>> +        val = ACCESS_ONCE(v->arch.irqs_pending[0]) & mask;
>> +
>> +        *hvip &= ~mask;
>> +        *hvip |= val;
> ... solely in this more narrow scope.

I'll declare them inside the if().

>
>> +    }
>> +
>> +    /*
>> +     * Flush AIA high interrupts.
>> +     *
>> +     * It is necessary to do only for CONFIG_RISCV_32 which isn't supported
>> +     * now.
>> +     */
>> +#ifdef CONFIG_RISCV_32
>> +#   error "Update hviph"
>> +#endif
>> +
>> +    vcpu_update_hvip(v);
> Why would bits for which the mask bit wasn't set be written here?

This function inside uses only v->arch.hvip which is updated above according to
the mask.


>
>> +void vcpu_sync_interrupts(struct vcpu *v)
>> +{
>> +    unsigned long hvip;
>> +
>> +    /* Read current HVIP and VSIE CSRs */
>> +    v->arch.vsie = csr_read(CSR_VSIE);
>> +
>> +    /* Sync-up HVIP.VSSIP bit changes does by Guest */
> Nit: s/does/done/ ?
>
>> +    hvip = csr_read(CSR_HVIP);
>> +    if ( (v->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL) )
>> +    {
>> +        if ( !test_and_set_bit(IRQ_VS_SOFT,
>> +                               &v->arch.irqs_pending_mask) )
> Why two separate, nested if()s?

Do you mean that it could be:
   if ( !test_and_set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending_mask) && (hvip & BIT(IRQ_VS_SOFT, UL))
?

>
>> +        {
>> +            if ( hvip & BIT(IRQ_VS_SOFT, UL) )
>> +                set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
>> +            else
>> +                clear_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
>> +        }
> In the previous patch you set forth strict ordering rules, with a barrier in
> the middle. All of this is violated here.

It still respects the rule that the producer (|vcpu_sync_interrupts()| which
should be in the producer path) never clears the mask and only writes to
|irqs_pending| if it is the one that flipped the corresponding mask bit from 0
to 1.

Considering that the consumer cannot be called concurrently in this case
(since|vcpu_flush_interrupts()| and|vcpu_sync_interrupts()| are only invoked
sequentially in|check_for_pcpu_work()|, as mentioned above), nothing can
clear a bit in the mask in between. Therefore, I think it is acceptable to
slightly bend (and it should be explained in the comment above the
function or in the commit message) the rule that the|irqs_pending| bit must
be written first, followed by updating the corresponding bit in
|irqs_pending_mask() specifically for |vcpu_sync_interrupts().

>
>> +    }
>> +
>> +    /*
>> +     * Sync-up AIA high interrupts.
>> +     *
>> +     * It is necessary to do only for CONFIG_RISCV_32 which isn't supported
>> +     * now.
>> +     */
>> +#ifdef CONFIG_RISCV_32
>> +#   error "Update vsieh"
>> +#endif
> Here you mean the register or the struct vcpu field? It may be helpful to
> disambiguate; assuming it's the latter, simply spell out v->arch.vsieh?
> (Same then for the similar code in vcpu_flush_interrupts().)

Agree, it would be better.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 11:36:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 11:36:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218539.1527316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmsDh-0002Cw-LV; Mon, 02 Feb 2026 11:35:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218539.1527316; Mon, 02 Feb 2026 11: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 1vmsDh-0002Cp-IS; Mon, 02 Feb 2026 11:35:53 +0000
Received: by outflank-mailman (input) for mailman id 1218539;
 Mon, 02 Feb 2026 11:35: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=X6EL=AG=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vmsDg-0002Cd-4M
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 11:35:52 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51fb205c-002b-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 12:35:49 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV4PR03MB8187.namprd03.prod.outlook.com (2603:10b6:408:2e3::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.14; Mon, 2 Feb
 2026 11:35:46 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 11:35: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: 51fb205c-002b-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OuOaAeXrTUJ2pNrH8yr4dc7Z1wpw+X+48pI6cIvjDjcC+7uR9Vm9uaTICBJYuRQsjEBo3r/BIHt4Rr8SMgrYdf+ZD1LifMJ7dQHe2wVLaXxWW5dQ681CC8GjRc60TalLwBfw/5agO7DO1NHP0e16rVJSWsPImzoqa8Ekz56PHhQGGx1ixFuTIhvZsuRFaQR3UXhDh1KjeUs8RsnmvbeYiL6jBeF09SiPe4VAT/2356MbxnE5FRIoHO2qusZxCCdlS7GwvweAd+2gLCdjmzKsz5gd8QWAZehpgJPHygqaMQWSCq1UgW/wPvc+X127FnzLEiiMdIQ6JQ7RrJ8phapS8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nUvLbunyLG9gT+4kw7weJPgmRuoXSR7T9R26hlt22KI=;
 b=AwyFTwTrSEuoC1W9wGwhqs3+rbHyXoBCx22dK+D+MZ7Og2Sy6HN4iOfdZ6p38EjhMKqjNs1GvB/69JEI7s+lmit3bjDf5eSTgRhu35wgKmaaiySD8/Q7lN04odU86Y/43AGJME+WsGS4vVZ6n73vV4g02TiRclI8+Rhawvksmucy8th3kzzGjEc6EEKEHi2wl1bpRRmdvLpECxYlhE8GOV6tF4kKBdN4Uuo9CX8Z2vl7D+njRaNI1jXyA2dhwpeU6XWvQ+M6KlCSErn+0J8yXY1vl6Pz4uxL7rdoO95+dNh2QJXhGOVvNZhrsDagFlDtgfaaIZM0PdszGpo+4drR/g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nUvLbunyLG9gT+4kw7weJPgmRuoXSR7T9R26hlt22KI=;
 b=xDI3qzwrjmcz0TrxTsqmkZ+dd2GdE6kPeudhEDRhoLoZgw5JMIVu5OOKBUAkBl4CTfEH9/vxKEbpjFFi9UoEceK1gBHwpwVbmSp2YhhaiRQW9PZnmpuuXcMi6PguFSn7YCR7mlcHKXrlQtShVOq19LCsckSImhMO/9IRzmVzX0E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a7d93306-42e5-4617-91df-23f7dd35aa1c@citrix.com>
Date: Mon, 2 Feb 2026 11:35:38 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Ingo Molnar <mingo@elte.hu>,
 linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, jailhouse-dev@googlegroups.com,
 kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
 Rahul Bukte <rahul.bukte@sony.com>, Daniel Palmer <daniel.palmer@sony.com>,
 Tim Bird <tim.bird@sony.com>
Subject: Re: [PATCH 2/3] x86/defconfig: add CONFIG_IRQ_REMAP
To: Shashank Balaji <shashank.mahadasyam@sony.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Suresh Siddha <suresh.b.siddha@intel.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Jan Kiszka
 <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-2-71c8f488a88b@sony.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260202-x2apic-fix-v1-2-71c8f488a88b@sony.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0284.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:38f::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV4PR03MB8187:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f063a44-8b77-4480-aa43-08de624f34cc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|7416014|366016|376014|921020;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Tmt2VkQxR1R0Y3pNZEpSVWxjdU1xdXpMdnNtQ3ZsK1FSeldWYmpzRDhZdzhr?=
 =?utf-8?B?dzdRNkNQZVhzbGRXRFU5OERwaVpta29qdEJuMFJHSTVBazBLRzVVQ2dFTHpK?=
 =?utf-8?B?anBhellGU2k0bHY3ZWdhNk04VkhKbE5nN3JvbE8vVmY3WTZpbkV0Yzd6VjZo?=
 =?utf-8?B?YzN1cUFOeWRvWU5qNlFGVUZjVDVXaGpzNDhSemczRmRGN2pCeHRNU2R0UWts?=
 =?utf-8?B?OU1VN0QwaldJeHViSk03N1hRWlhzcllPSVVUNXlSMHVKT0pQcEh6Tm5VdXBL?=
 =?utf-8?B?TnovQzZPckVrTmdlTHhsbzZYaHhDL2FhcndYQlhtTEwwcThMaUFvTHg2V2FQ?=
 =?utf-8?B?eEpqWlA0aFdubU84NnBYT0VvRWMzd0lmYTdwQzJaZERNMjdpL1lVeFJxNGtR?=
 =?utf-8?B?K2o5THVWUDJ5OWpYOTVTRzRhSHorcXBrSFZmLzBwZlJWL2ZKSnFhRFZtMitm?=
 =?utf-8?B?S0ZBQmxqZ2R1STJzQUZMQ2toRTlmcndSSUZJc2FJYVBkcXNZVlRLcXkyQmpo?=
 =?utf-8?B?LzRvMzQ4N2ZUOU5Mb3haaWRnSEdmUWxrQW1LYVFUeU4wZ1B2QUE5UnduVGV3?=
 =?utf-8?B?RFFKTnE5OUdWaSt6UzVvSlhnOGVsTE1NODhsb0JNY093L0plSGdZU2xaTkY4?=
 =?utf-8?B?QkxSbmN5c3VxTUNXcnpUTE5PWHFpQllPdDBMUXpvQmNBVDQ1OUcxOWxpd0hz?=
 =?utf-8?B?bzlUZEVINU1KVHpsVGM4THZvb2hSNkcrOURJZDNMeG9FcHQ0WXVCdy81OU1N?=
 =?utf-8?B?QUJGeTNoMXp5VXBiOVFXakpuWThES2hyVXVPZGJtUUMyVmJOMi9TZmhUbWFy?=
 =?utf-8?B?SlRMRFA2R0xwQUc4c3lENlNDcXRkeXRqQTNWN0dHckpOeVAyci9YOUxTalBT?=
 =?utf-8?B?dFVWQUZKbkh3a3RhR084REcwQWNmV05OU2lDNElJNzU2N0VyQkx1aTgwZ0NN?=
 =?utf-8?B?b2VhTGMyWUJucnY2Z0tpaDZxengwT0MyVmZQT1ZJdlhqYlhFRFMzczFxS1RL?=
 =?utf-8?B?N1lFVDdyMDBJNXFMWlUydUR1NXlLYURrNXF4S1NScllVbFFiZ25vTnJzV1cz?=
 =?utf-8?B?SS96SENpNVJyaFZXM1FGOHd0Tzk2QmlTY25JYng2eHVpcTl0MG5FK0Izalhz?=
 =?utf-8?B?azhFKzhZZmhtSm9ubHpkR1I1K1VNTXo4QjMzTXIzUnpsWkNBRkZiTkE4T0dw?=
 =?utf-8?B?b0drczFieXp6VVdNQUFEU1M4enB5T1U2cS9DK0hnZWRXVGNML3YwK2Q4RVh5?=
 =?utf-8?B?bFZ2aHJrdVVGcmxVNkR3MTlkMnpwTk9yN2Jnbm5pRnRXT0M0dmRDSWF2RWtv?=
 =?utf-8?B?dWl1U1Y3MWF0a2h4bzNwWXpHYVQvaE1iR0tzV2ZNN2JheHIwUDNDZ2RGUzRQ?=
 =?utf-8?B?a0xMaEcvb05RS0R6YUlTdDV6QkpJY3YvYzBzWmpZU0NPZW5uUGZkWitUZURj?=
 =?utf-8?B?QVU1dExHeFh5Z2I3YVFCUkJqWHMyNmpDKzZFbS9LMGdXbHVwcjJxTXpReVVT?=
 =?utf-8?B?cDJBY3VNRnMxVE55YmFOMU9xeXd3bm5oeU9RQ1grQm9ZQjRqTUMvOVZjQm1V?=
 =?utf-8?B?RUN1Y2NlSVNBTFZEUlVaZjFCbnJ2L1l2YzZDeGtYZHg4RTh6d2llYWROUXg3?=
 =?utf-8?B?L0owaTV5V0tlZ1Z4YjhySHIxZTh2Y1N5QnBRWnNmT1RXemNXK0EyTDVtSXRC?=
 =?utf-8?B?b0NpWWl4N0Z0Z1k1QkZ5blk3VzFkTC94UUUwZFM4ZkVsbUM3WDBUN1kreTNn?=
 =?utf-8?B?SHRoWjBBMEg2SzJHU2VNR0dOeFpGZTNHTGJ4NEx4T05wU3VrRWhLS1o3a1hY?=
 =?utf-8?B?WlR4Zm8xb2U1UWkxQkJlRWZSRGoxUlZuUHZMaWM5NitKUHJjTm0weThqOSti?=
 =?utf-8?B?Tm1Nbzhya29hNWNVWW1KRDB6QXJ6YTZCMGQ3dksrTzRaQlB5WnhqWW1lMkZS?=
 =?utf-8?B?d1JZd1lhWUJwOVJqcFNybTlGSHVaZC9peXBPZHVLSXh4bElrc0RQa05YUW1j?=
 =?utf-8?B?dENTNmlJTU8wOTZRd3gzYXd5ckJMNDlnOWhpR1JuU1FPK0JQOUtpSVRQN2py?=
 =?utf-8?B?WjFtMTM5WXRFUmhtdGJUamlac3Q2Q2lXaTk4NGJQWDhtQU1ZRjhPTmJOMFZi?=
 =?utf-8?B?anY2ZEpiYzFmanBJeE01VWxzTUtqVEVxQ2FlcWF3NlE1aVBDSitPcjg0L2lP?=
 =?utf-8?B?anc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(7416014)(366016)(376014)(921020);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bXNmZFFiS0lVSHowM3JyZXBhNStONmoxbGkwbEZNWXkzMEo3aGk4VElyUWk5?=
 =?utf-8?B?ZnZlNGdDNCtaR0ozaHRpUEMvNDhIb3MwdHNLdmZZSFNXSFFpZ3JhdmtvZjZr?=
 =?utf-8?B?em9XaERPWmJ4VFlnREFWYTZ4YVlKVkZObExSWklaU0F1S240US9KU1V1ZjZu?=
 =?utf-8?B?T0Z5eXdaSmxOei9jc3VyR2N3NnpuaXluZmZUZG1zcVJkMndhNEhDYnVFQnI2?=
 =?utf-8?B?bWZrU0YzMlR0ekFRSExCRGJPWGpCdDE2N1JTUGRkNkk0ZHpKUW1pRmVaN3ov?=
 =?utf-8?B?VUZFRDM2d01QYlNqaEY4N3lBOEt0dzNRVG9KcWZSc0FCSFJ6VmlHZXM1VXJN?=
 =?utf-8?B?TmNBMDVMZ1VsMXgyRkFCMWUzN0Naaks3U3lQZm93YXpwVDdqVXZ4TnVwQkli?=
 =?utf-8?B?M1Q2UElBQXp0SDZJM0M5TjJMd25Pamp5RTNNK3h2dE5udkN3aTMrUmRVRHdj?=
 =?utf-8?B?dFQxbW9RVVNtQnZSdkVaN1lMRkg2S3FSR1NJVU92endNVGNZbWd0QXU2b1FT?=
 =?utf-8?B?cTBTSnBOdC9qUlBUelJCckNuQ3MxU1ZJdlhtRWoxTG9TTW54SzlCRG14bzFj?=
 =?utf-8?B?dERuNUxqT3RSMVlNV041cnljYVA4Vlo1VUxDb3dyUGlvZW5YbkxMRVB0eHIx?=
 =?utf-8?B?N3dLNVFKZ2NLelhlbXdtM2pYUVFWNjl3aGV1RGMxVzU2WkhNZnZEa3Y4NXhS?=
 =?utf-8?B?dmFrQ3BvUUNMMmxjMU4xdGR6amV6aFpZcitZSmFXUEhVVE9valVrSE53d2Jx?=
 =?utf-8?B?ZXc1V1NNRWdMTVd1amplUm9GK0ZtVjh4b1hBVUU2djBZVG95N0NrQW5Jbi9J?=
 =?utf-8?B?NUdJRmxWMmFDamxQUnNVM1pVNlZZYkhRSXR1Y1NWNWZqbUt5eXBpS1lpNDd6?=
 =?utf-8?B?Y1pRSzlVY09KK2dHMmNHcnZ6enp2eU1JWUt5Z2l5Z0xvcmwzUzFIRW9CZ2o3?=
 =?utf-8?B?SWRabVhjVGtwaEZiUE1mQTdhY0dONktVVVJIYVBvL3p0bThoaGtBZVpoQUcw?=
 =?utf-8?B?UlRreUFrTW1DMGdpQ0xJRlcwU3JzUWJvaDltZ1F3ci9Jakh1WUR4SllYVTZh?=
 =?utf-8?B?eUxtSzZtRkkxUEgzS0UxeDlzcHBoNnA2Ti9lWFEyVFk2bDVka2QrdkVubXFD?=
 =?utf-8?B?RmozQW5Vam96NGhMUGhmTDFxNUJpQXVQL1FzckE3NlZrcERNRWF3OW51NDhR?=
 =?utf-8?B?MDdHVjh1U1BOemI2UWIxVmppc2R2cCtlbWpybXdzdURNRDEwZzRBUGJpdGw2?=
 =?utf-8?B?WWxJYzhsQm9KRXJwOTNGbE1QT0wzaFNZZTdhOUlNSHRpUWViY3dIWXkya3U1?=
 =?utf-8?B?ZldWWWM5L2lRRkRUeUxUaFpDUVExQ2pRSjdGcUtlQ2VHMGlDT29zTTk3eDky?=
 =?utf-8?B?SWt1eFYvSzhLUFYzbmFhMDBsQmRNbVJpVm5EU3paRFYwSlVPWTRTL1hwcnl1?=
 =?utf-8?B?YjIrdEE1WnNGMTFaVVRDVDRLS3dzSXdCWXFsOXoxUklVWTFOVHRZbkxCdkVk?=
 =?utf-8?B?UC9GK1hFZlJtZjdnR24rYkFBR2pKVmV1U3Y0b2pCTE95Qi9OT0UwTzZmT3NN?=
 =?utf-8?B?eG1xN2pjMXMxWCszeG9lakR5blUrbXh3b1dvYWZ6TzFXRmdpNU5hRjcvSXI1?=
 =?utf-8?B?Q212eG1DK0paNXBING5JRzRIOHUrOFltVTVpMXBYUmVjdDQxbnNpRnduTXdP?=
 =?utf-8?B?Nnk3ZTdKenZKTmJ2N2FtYW1XcTdyd0wwM1VOVFZOd1VQd3lqNWE4eE5nY0Jh?=
 =?utf-8?B?aW5weXF6ZytCYkRnYnkzUkVlZGdjN2JEOVQ4RVUxZWZpR202WVFleVp1S1Jl?=
 =?utf-8?B?ampSRHErMTQ1dEpMUjV0NFpreWUwMUVPN0hjZXlLYjRWYUlqRDNQMys0VHdX?=
 =?utf-8?B?L05NN2p3eDdsU29kYkw4L1Y5aVliYUlRSWgzdVMyWlVmRDF0aURoT2xuZlpY?=
 =?utf-8?B?NmUxZmUxRVJkZHQ0akM4M0V3VmlHa29WeHJ2Qi9yenlBejQzajNueVR3U1lq?=
 =?utf-8?B?TGRPY2VpSlA2RFg5RmlIeGJIOGlmSHJZSVFTMVVOY0ZZUWhleXJ6dzNKME80?=
 =?utf-8?B?SzdzYnVKanRvaDRORXQ4SnhqQUp5OHVreFNZVjR1MGRLQXJVWCsvbERkbExa?=
 =?utf-8?B?c3lDK0RRb0FWSlFTdzJlVXE1bVlSRURJVG5TNjZ1UE9iWXdZZ3hITEkwZGtH?=
 =?utf-8?B?NVdTaitmMUxTcjMzMWFoMnZMZkNTUVh2RzFMN0M1U25jNGZqazNNMDlVTTQv?=
 =?utf-8?B?bUl2K1o3WEtORmhZcVE5VVdBTGZ0S0FGNWNqOEYxVm56TUVaRHgzOVVWYWdn?=
 =?utf-8?B?WUV3ckxpK29GdkQwWjJWTkxjOXZGejFTQU15aVd1ZktvamJuN0h2MlRydUN4?=
 =?utf-8?Q?ANIS3X9GTyQseGHI7MIBqJshyiXnVeUlsnlEeZX0TF6p3?=
X-MS-Exchange-AntiSpam-MessageData-1: pXzgfuuPwNYKqIewdzoSfAI+ecahOTH00bE=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f063a44-8b77-4480-aa43-08de624f34cc
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 11:35:46.1746
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: n0YI8SfjTRnOHcz1ag/OuEb5QwzlKAOu4/25uqMDb1qYLwJ7YiNEM1DquxgnXtmFqhde2soC4uABCPR65NCPRkDlPpcC71CrUWBSkjCmyhg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV4PR03MB8187

On 02/02/2026 9:51 am, Shashank Balaji wrote:
> Interrupt remapping is an architectural dependency of x2apic, which is already
> enabled in the defconfig.

There is no such dependency.  VMs for example commonly have x2APIC and
no IOMMU, and even native system with fewer than 254 CPUs does not need
interrupt remapping for IO-APIC interrupts to function correctly.

For native systems with 255 or more CPUs you do want Interrupt Remapping
so enabling it in defconfig is a good move, but the justification needs
correcting.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 11:54:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 11:54:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218546.1527326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmsW3-0005AJ-4K; Mon, 02 Feb 2026 11:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218546.1527326; Mon, 02 Feb 2026 11:54:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmsW3-0005AC-1E; Mon, 02 Feb 2026 11:54:51 +0000
Received: by outflank-mailman (input) for mailman id 1218546;
 Mon, 02 Feb 2026 11:54: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=r8uj=AG=siemens.com=jan.kiszka@srs-se1.protection.inumbo.net>)
 id 1vmsW1-0005A6-5O
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 11:54: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 f8460913-002d-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 12:54:46 +0100 (CET)
Received: from AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:588::19)
 by AM7PR10MB3892.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:14c::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 11:54:42 +0000
Received: from AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM
 ([fe80::be9f:e8ca:ee9:83e1]) by AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM
 ([fe80::be9f:e8ca:ee9:83e1%6]) with mapi id 15.20.9564.014; Mon, 2 Feb 2026
 11:54: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: f8460913-002d-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DozXTZV0kx5ROzKeem5FK2V/FOHC6/dH0lotIlOYCHL3ZQIDfFtSxZi1xx5ycNzZC/Tb1CJflSSSq2/nFiOwT4/y/in89K44mK8o5a+3TGJU47YnrwQAyO95DbGcnJM3qpMKfzq+22MSzZd90DPiEJR6C3HWocQ+xoshaPBm+Gt5S0ppH0Yj0B/a/qZe7UVR1FMpPgkVOL/IJLjJHBHCTVPYoNcdLbpBIrYaxzWb1dR9aLU6DKaxhMJ2VOl7G5r7DKElpZVX+vOHSXLj12Sg6vK0ZQ7Z+7aHdxveu8afO1ExPN83LFhCstmXSppLUG3Y2zqseq+1brhFdSOZmGRktQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YzfWWF6jM28jFZOkgFILKwIP1XwR7LJcAB/6B93JfUg=;
 b=SVJT5Io95w6cCExyw8q2qYOteGFMQTdE3OenwQ3wJXGId6LkLsxmh4cPS+iHsbykeII9Lpckztcw7ssUtScKcM8ai2zRw8xGRSuWyuA3E6qNmBoX/cs26yBg2u4Pew6mgk2vW/ZvCPopxoPfuo/fh1UwYIlKMKK73ghkTf+RdATmv7NZm4PrRZVvBmtDDdNyc5X4nvw78XnVsEh9K9maoaUTnJ+EqBG+XXMj/jCs+BDz9uA50U9fpmrfJCE2hlKbtcfGsx705VCghRd8Mdr4kPPrhV7EluDZDfkkzlLpoQeJ+yATnzFgmLsZY3GR1OqQ2s+e+baGjMXIDhZhvatkdQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com;
 dkim=pass header.d=siemens.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=YzfWWF6jM28jFZOkgFILKwIP1XwR7LJcAB/6B93JfUg=;
 b=bRBopqjf8Qg7MR8ntdZfcoeXIZamYuC3k66Mfx19KhlksKdiMgmCyVNHrGUuxCv6rC0Bcftuh71gsUSh3gXhhi1Ncpbg0bAo5/i8xrjgsHDU9casr/6daQHqjWgkLtGJpPqzemDKhuWyUBUfedkFTsRyDEZZdq/V2EmsjX0ARBnQ4HI/SxgfPB4ycGRjBMVk6brV+3/u2JLZaUyrPPBTng94zyRZL94rsXetUuRhdlYZw+eKjfBQXK/bjvEaDJUT5QoXby1bYm6B1hU8+TDI3r681p3yMr9FQX1IMBLHxj7Koqom4ZOQ6D0dAqWyUkmKwz/pqMGzvJ2DZWaWcvHk6Q==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=siemens.com;
Message-ID: <f875676e-c878-4d3e-9eae-1f74f24cdedd@siemens.com>
Date: Mon, 2 Feb 2026 12:54:30 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/defconfig: add CONFIG_IRQ_REMAP
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Shashank Balaji <shashank.mahadasyam@sony.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Suresh Siddha <suresh.b.siddha@intel.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
 Daniel Palmer <daniel.palmer@sony.com>, Tim Bird <tim.bird@sony.com>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-2-71c8f488a88b@sony.com>
 <a7d93306-42e5-4617-91df-23f7dd35aa1c@citrix.com>
From: Jan Kiszka <jan.kiszka@siemens.com>
Content-Language: en-US
Autocrypt: addr=jan.kiszka@siemens.com; keydata=
 xsFNBGZY+hkBEACkdtFD81AUVtTVX+UEiUFs7ZQPQsdFpzVmr6R3D059f+lzr4Mlg6KKAcNZ
 uNUqthIkgLGWzKugodvkcCK8Wbyw+1vxcl4Lw56WezLsOTfu7oi7Z0vp1XkrLcM0tofTbClW
 xMA964mgUlBT2m/J/ybZd945D0wU57k/smGzDAxkpJgHBrYE/iJWcu46jkGZaLjK4xcMoBWB
 I6hW9Njxx3Ek0fpLO3876bszc8KjcHOulKreK+ezyJ01Hvbx85s68XWN6N2ulLGtk7E/sXlb
 79hylHy5QuU9mZdsRjjRGJb0H9Buzfuz0XrcwOTMJq7e7fbN0QakjivAXsmXim+s5dlKlZjr
 L3ILWte4ah7cGgqc06nFb5jOhnGnZwnKJlpuod3pc/BFaFGtVHvyoRgxJ9tmDZnjzMfu8YrA
 +MVv6muwbHnEAeh/f8e9O+oeouqTBzgcaWTq81IyS56/UD6U5GHet9Pz1MB15nnzVcyZXIoC
 roIhgCUkcl+5m2Z9G56bkiUcFq0IcACzjcRPWvwA09ZbRHXAK/ao/+vPAIMnU6OTx3ejsbHn
 oh6VpHD3tucIt+xA4/l3LlkZMt5FZjFdkZUuAVU6kBAwElNBCYcrrLYZBRkSGPGDGYZmXAW/
 VkNUVTJkRg6MGIeqZmpeoaV2xaIGHBSTDX8+b0c0hT/Bgzjv8QARAQABzSNKYW4gS2lzemth
 IDxqYW4ua2lzemthQHNpZW1lbnMuY29tPsLBlAQTAQoAPhYhBABMZH11cs99cr20+2mdhQqf
 QXvYBQJmWPvXAhsDBQkFo5qABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEGmdhQqfQXvY
 zPAP/jGiVJ2VgPcRWt2P8FbByfrJJAPCsos+SZpncRi7tl9yTEpS+t57h7myEKPdB3L+kxzg
 K3dt1UhYp4FeIHA3jpJYaFvD7kNZJZ1cU55QXrJI3xu/xfB6VhCs+VAUlt7XhOsOmTQqCpH7
 pRcZ5juxZCOxXG2fTQTQo0gfF5+PQwQYUp0NdTbVox5PTx5RK3KfPqmAJsBKdwEaIkuY9FbM
 9lGg8XBNzD2R/13cCd4hRrZDtyegrtocpBAruVqOZhsMb/h7Wd0TGoJ/zJr3w3WnDM08c+RA
 5LHMbiA29MXq1KxlnsYDfWB8ts3HIJ3ROBvagA20mbOm26ddeFjLdGcBTrzbHbzCReEtN++s
 gZneKsYiueFDTxXjUOJgp8JDdVPM+++axSMo2js8TwVefTfCYt0oWMEqlQqSqgQwIuzpRO6I
 ik7HAFq8fssy2cY8Imofbj77uKz0BNZC/1nGG1OI9cU2jHrqsn1i95KaS6fPu4EN6XP/Gi/O
 0DxND+HEyzVqhUJkvXUhTsOzgzWAvW9BlkKRiVizKM6PLsVm/XmeapGs4ir/U8OzKI+SM3R8
 VMW8eovWgXNUQ9F2vS1dHO8eRn2UqDKBZSo+qCRWLRtsqNzmU4N0zuGqZSaDCvkMwF6kIRkD
 ZkDjjYQtoftPGchLBTUzeUa2gfOr1T4xSQUHhPL8zsFNBGZY+hkBEADb5quW4M0eaWPIjqY6
 aC/vHCmpELmS/HMa5zlA0dWlxCPEjkchN8W4PB+NMOXFEJuKLLFs6+s5/KlNok/kGKg4fITf
 Vcd+BQd/YRks3qFifckU+kxoXpTc2bksTtLuiPkcyFmjBph/BGms35mvOA0OaEO6fQbauiHa
 QnYrgUQM+YD4uFoQOLnWTPmBjccoPuiJDafzLxwj4r+JH4fA/4zzDa5OFbfVq3ieYGqiBrtj
 tBFv5epVvGK1zoQ+Rc+h5+dCWPwC2i3cXTUVf0woepF8mUXFcNhY+Eh8vvh1lxfD35z2CJeY
 txMcA44Lp06kArpWDjGJddd+OTmUkFWeYtAdaCpj/GItuJcQZkaaTeiHqPPrbvXM361rtvaw
 XFUzUlvoW1Sb7/SeE/BtWoxkeZOgsqouXPTjlFLapvLu5g9MPNimjkYqukASq/+e8MMKP+EE
 v3BAFVFGvNE3UlNRh+ppBqBUZiqkzg4q2hfeTjnivgChzXlvfTx9M6BJmuDnYAho4BA6vRh4
 Dr7LYTLIwGjguIuuQcP2ENN+l32nidy154zCEp5/Rv4K8SYdVegrQ7rWiULgDz9VQWo2zAjo
 TgFKg3AE3ujDy4V2VndtkMRYpwwuilCDQ+Bpb5ixfbFyZ4oVGs6F3jhtWN5Uu43FhHSCqUv8
 FCzl44AyGulVYU7hTQARAQABwsF8BBgBCgAmFiEEAExkfXVyz31yvbT7aZ2FCp9Be9gFAmZY
 +hkCGwwFCQWjmoAACgkQaZ2FCp9Be9hN3g/8CdNqlOfBZGCFNZ8Kf4tpRpeN3TGmekGRpohU
 bBMvHYiWW8SvmCgEuBokS+Lx3pyPJQCYZDXLCq47gsLdnhVcQ2ZKNCrr9yhrj6kHxe1Sqv1S
 MhxD8dBqW6CFe/mbiK9wEMDIqys7L0Xy/lgCFxZswlBW3eU2Zacdo0fDzLiJm9I0C9iPZzkJ
 gITjoqsiIi/5c3eCY2s2OENL9VPXiH1GPQfHZ23ouiMf+ojVZ7kycLjz+nFr5A14w/B7uHjz
 uL6tnA+AtGCredDne66LSK3HD0vC7569sZ/j8kGKjlUtC+zm0j03iPI6gi8YeCn9b4F8sLpB
 lBdlqo9BB+uqoM6F8zMfIfDsqjB0r/q7WeJaI8NKfFwNOGPuo93N+WUyBi2yYCXMOgBUifm0
 T6Hbf3SHQpbA56wcKPWJqAC2iFaxNDowcJij9LtEqOlToCMtDBekDwchRvqrWN1mDXLg+av8
 qH4kDzsqKX8zzTzfAWFxrkXA/kFpR3JsMzNmvextkN2kOLCCHkym0zz5Y3vxaYtbXG2wTrqJ
 8WpkWIE8STUhQa9AkezgucXN7r6uSrzW8IQXxBInZwFIyBgM0f/fzyNqzThFT15QMrYUqhhW
 ZffO4PeNJOUYfXdH13A6rbU0y6xE7Okuoa01EqNi9yqyLA8gPgg/DhOpGtK8KokCsdYsTbk=
In-Reply-To: <a7d93306-42e5-4617-91df-23f7dd35aa1c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: CH0PR03CA0446.namprd03.prod.outlook.com
 (2603:10b6:610:10e::35) To AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:20b:588::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS4PR10MB6181:EE_|AM7PR10MB3892:EE_
X-MS-Office365-Filtering-Correlation-Id: 7865567d-8830-4aa8-9878-08de6251da16
X-MS-Exchange-AtpMessageProperties: SA
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7416014|921020;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZnorV2s1cDZWazdsdDg4d1gzclRKMSs2K2p0MXoxamdXelFUY2E5TlozT0tN?=
 =?utf-8?B?NVZPYTZ1eTJUYnpMN21yVFBSVVBuR2VwUitSWks0SWhUczRhdWwrcHo3ZSs3?=
 =?utf-8?B?TnZhbVduSUhtQyt3TVptcng3Ymx1eUY4NjEraEdPMzhRbi9HQ01WQUZ5b2l2?=
 =?utf-8?B?MzhwUVRQWlZ4V3Vtd09DTmRramJDRTlUWHgrYzJjd0h2RWJwc3R3NTJQb29m?=
 =?utf-8?B?SjQxeTQzN25aaFRUUGJYNjM4RDIwcGhSWlY5clVsdG9MREgwTVJiMzNWajNv?=
 =?utf-8?B?UHB3TGVTY3FBaWJMZXRIL1dhcy85eGFOMlYwc0lud2kwZTBGY1d0NGhmQVph?=
 =?utf-8?B?R0JFUHRFdVlnQU1CQW5WbE9pR1lYT1hST0RjWmdlYm01MWo1RHRmYlNaR3JQ?=
 =?utf-8?B?VVg0RzZueFM0dEJJQkpWcm01OWhudjZqMk5zU0VtaERYMmZpRVZRN1FBOWor?=
 =?utf-8?B?TlVqWHIrZ0d6UXRwQ3BELytLek1ZRGRTSXNuN2dQSjZmOU1iOXh0RXE3ODlt?=
 =?utf-8?B?VUlxb3VHRUZMZXU3QXJTQnFnM24yYXk1M0crT0F2cHdYcUdEOEFVdldhd2dQ?=
 =?utf-8?B?aEw5WU43OFhEUnViNDFNUmdhTGt2UXlPOS93NGRTMHBxKzBFK1VYU3htSlpj?=
 =?utf-8?B?azBHVFBYZGpUSFNCTGZscC8vem82R0J0VzY4ZWVHbnRxRXR4SWV2dDRMYllY?=
 =?utf-8?B?aHp2M1N0WjdqS2RxOXpiRkVucjAycWsvZmQ4dDA3U2orMGFNbmdySDVnOFlN?=
 =?utf-8?B?U2lYb3M2ZVQzSGxWV3NFOUdzOFJVWHI3MDJFS3RweVZxYXJoeDBVcmtGWEtt?=
 =?utf-8?B?b1Y0VWdJQkVhTnFMQlFndEVwWUFqRWdOalZLVmwzSCs4bDdSNkFMOWdKVGkz?=
 =?utf-8?B?SURCWjJqOEZUWWZ1YU4rZ20xNXEzVUJ3K0FaeW1DR2duOCtjRnRHcC9pc1FQ?=
 =?utf-8?B?b3cxeEQ2RXlsRnFvNTdRaEhIRUI4ZDVvRFBNbFpEdk1lZUNQNmZjWUlmZjFy?=
 =?utf-8?B?Q2xuVnQvcnBUV1VKOXNNdHZ5UDhmRDlpYkZmOFlpQXdkL3VWLzB1bE94bytw?=
 =?utf-8?B?dGJEbERFV05LMjNsbFRlOXQ4dGVyVjV3dlpPNDZBMWpvbXJ0S29sQ2dIamtx?=
 =?utf-8?B?bHVHb01XYzAxUVRSK2FvTHpCd05iRTJJTXM1OWVtZGcxQTBGemxxc0hmdTQ1?=
 =?utf-8?B?ZWFKSHQxcDA3bXZWczRuZGM4aEwxUzdMQTkzY0l1RHdCSEpJZXJQWW1xTk02?=
 =?utf-8?B?NEZXT0RkTHQ2alZzM1VQUGJ0bDVIT1NuY0VNd2d4bTlCZlREOE1aVlZBUGlk?=
 =?utf-8?B?d0M1UmRmQnRjOHZ4VCtzMEFBNVNhUVQ1ZVJQVGRvbUpDS0tWQSswa2YxTHlN?=
 =?utf-8?B?MGNNaUJhVzRmN1N0Uno2U2xhNWJoUi9MWWYvd3BXSWpJRGEyYm5zUDc5eGll?=
 =?utf-8?B?cElqdjVXK2gySk1QWnEvV2xrL0lDMENSQTNybHhzUCtnZ3drKzIySDQ3bGhu?=
 =?utf-8?B?a2lLRG91MkRkQmN4Rld2blFxMnBiN0hJbVVZWlJvL0lPQlRJYXplUTViMGhG?=
 =?utf-8?B?L2d6U2ZrbkN5ZVNJYU5NcEV4VFoxdVdHeTJqQmNoVVY3MnpkWDRGSkF6T2ww?=
 =?utf-8?B?MmZxUTkrMXRVbGxJYXg2bFBEWGtCUmpOT1BpYlpWNjNOK2d6WFFTRnQxdTYz?=
 =?utf-8?B?aEZ3TVh4OFA3TjFBaUFjMG9QRzNTV2U4S2pSN1FqTEx4NEFxSmVaR2VjRTN4?=
 =?utf-8?B?ZDlldnA4LzZkZlVyU1MxK3JXTVpJeGxVMWxzUWJJd1VSYTVDRm5kSVFrd3B0?=
 =?utf-8?B?L2NxUGoyTkVxZ2I0a1k1NDAxbzNTVzNwbDkwUGg2SFJNT1lCUnVsdW9tWGhY?=
 =?utf-8?B?dUxyaUdYOWpYeENKaWk2Y2RIQjJkV0VjZ3dwcVlUSm4vZ1FWcm96TERzNTZr?=
 =?utf-8?B?ZW1STkdVNG40MnFTaFhZbmRRczdqczBmYy9qU2RwYnFITVhTYkNGYmcvaURj?=
 =?utf-8?B?T05iSEZHUElIZlFtVGpiWmkwT09kRnNKdFJTdFQ5ZEFSSy92UGdaMk80bzZV?=
 =?utf-8?B?V0NweGJzQTFTRTBQbGlBd015Zk13aFJQazJXeDAvTEVJQzhvSFFjM1NhR0tK?=
 =?utf-8?B?SStOU2hFUE1MdndOdncralpZQnpNYWs5YkpXS2ZJREZrVURUSFc1OU1Oa3JT?=
 =?utf-8?B?NlE9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(921020);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WlV3T0tEVU41b29tb1JVRkQva2hWWmdGd0s1cDVXcUFqZ1FwVkVPdDE0aHN0?=
 =?utf-8?B?dEJtMnMrMXo5QWdVUExTV2cvL3pKaHZIUkN6Q0dOaFBsc0RVZEpqWktYMHIv?=
 =?utf-8?B?N3M5ZUloWTNZUDMySHFRQ1RZWmx2M00rTVg5dElJcVU3cVZQanRDd3YwNkgy?=
 =?utf-8?B?aVVSa0F4ZEx1VzFjL2hMN2xzcERia3VSbnplYTJaUEpzTzlBN1UzNXZYRHZM?=
 =?utf-8?B?eDdMaWE3bjYxS2JBZnJva0lqOFBkVTlVZDNmeDNQTVVjUy9rL3ZYRkhGK0pn?=
 =?utf-8?B?QTZOZTRUMXc4eHUrUlI2N2s0M2Q3bnVlemVnVXhXNHRFc0Q0SVdlZ1gwakNB?=
 =?utf-8?B?RWFPRFNEZjBWckFzR2ZWa3JxWGt3eDZ5SHlNWndhR0hkT2dTakNjTDRsNjFv?=
 =?utf-8?B?SmlYWHVkT1RQTHJPUHByb2hMNGQ5aEhVVmEva2xGNFpwTUlhdllGNmNuVTB4?=
 =?utf-8?B?bk9qYnpEdEdGMDNpSmtsdUM4UVdqc0pGRVFYRjNSOFdSbW84bk84SHFHanRj?=
 =?utf-8?B?MmpObVAwSkhBNkZkVU1vZnZLRWxlWkpNZFA2WGt6QjlPNFBRVkZxMTdZK2h3?=
 =?utf-8?B?TUFRS2o3WGtuSWY2S0prRWh3TVpnNXFTNlBiYlZ0VmFvOGR6VGwwenhkR0pX?=
 =?utf-8?B?dUxpaGk0YWl6dXljTDE5M05TdVJJaE5vMVpYQXg2NGJwRVpkV3dpYzFxUWJQ?=
 =?utf-8?B?aWkwdXA4L2IxeHRQYVBnRkxFemtYeUNwMVlsaW1NRVJNbmk4WlF3SGNWQkIw?=
 =?utf-8?B?YnNzYUMzTHFIbU0yR1pqdEwzL0tkcjlaTFlQU2RzZXN2Z1RyMDdCbmpHaGZJ?=
 =?utf-8?B?dytGWmxMSnVmcU1CRlArbzJJczZTd1N1UHhUd0RpQUE4Wk9nckVVM0dOcjQ0?=
 =?utf-8?B?S09xK0wwNndRSU9JcDhWYnRTY2NFcWx2ejVVUWlYN2xabXZMdnpvQmlZTCtP?=
 =?utf-8?B?Y1l2TjNnaVI4OXdMVmYyUElkMUVIVThpMmZuQUE0STVUNGsrVVlDbkRacDBx?=
 =?utf-8?B?dnczUmQ4aTZINXpEK3JWYS9QSTJZeXhtN3p2K2xZQkhrOGN4NlA5UXYzUDkv?=
 =?utf-8?B?VncxdVZYcFBWRkhmbk55c0l6VUxoaFI2Y2ZjckFZRHVuZDJqdUdmcVEyZ1FP?=
 =?utf-8?B?Z3NEbTUzeVBEc216OWNpdXd2bGw2WEMrVFA5MXRZQXBQTU1VUDJScEhDTXdx?=
 =?utf-8?B?eGNKbUxYMW5XRzQ5aFdKQkdJYzVhRHE1WllaVE83Q1A2S2VpQllzZ1BiWGF4?=
 =?utf-8?B?a1ZkYU5XTGxzcHhNQm84RTlaemxYVkg0eVk3cnNwV2M4TkZva0I4blpoOEFE?=
 =?utf-8?B?blZjeis4cjM2bXhpVXNQbFVEaG1udlBqWEpoaEZ5SUgralFTeUl4cklnUk84?=
 =?utf-8?B?eWUyZWUveFVQMTgyYmRSd1NRYmoxU1NxMFQ2ekJPSUZTNEFPc1dkMnlBSGNF?=
 =?utf-8?B?ZGRYbzhIVDdpUG1jby9PSEVGZ2JOMEFiU21OR1pSZHV1RU1seTR4Vk9VMnM1?=
 =?utf-8?B?UklQdnREMTc2cHZpM3N2V2RQaTZNa3N5Ry9pUmFlZk44UjIwUkxSZW03VWNU?=
 =?utf-8?B?WGhrWVZ0ZGxaa2YwMS9RbmNvb0JzYzlReWFRRmNNaUI1VUQwSkd0Si9QRGYy?=
 =?utf-8?B?ejZZdVVaS2pVYmRmWE5hTndXM2cxM3BKZnFQMFlVMUNwZktxOXRJOXFVRzBt?=
 =?utf-8?B?dnU1RXQ0ak9aMVJKaHJhY2RMS1hIR2VhVTdnYzAxOExCU256Nnh6aXlHRWY0?=
 =?utf-8?B?UVZvTE9NTHBCY1NuMW5EQVI4a1VPbUNRZWVtaHhUczF1UzdZcHFpMUFUMm1u?=
 =?utf-8?B?Q1dLSi84MW5ncU9IdzZMd3l5MWI4aDBYUFpZZXRzZHJSa0wrTndOTmdPNjhK?=
 =?utf-8?B?U29pbEM5V0FkNGxvUTdTR3ZuODI4bEV0MEFDVzd6S1o3TGNZYkRaTVlLLysw?=
 =?utf-8?B?ckdtMDV5YkRGSXNwM3QrSkxwNnJzT2J4dVliQTd1TXNtOW5OREF0MUxPR0pq?=
 =?utf-8?B?UlIrbWkxY0QzRFUyakR4aDBpSFIrdVNHNlF4MFVvUFJQVC9UNnB2TWRCckla?=
 =?utf-8?B?WnMwcE5QdnorQ2pkcTF1WTZTNjZmQjErVlRvVzZndTVPUldDMkwzVlY5S1pR?=
 =?utf-8?B?VGl0YWRPa2dsU0Q4OFF3MUQ1TkdnVFFiTFVTWEtZdnN0NXl3emtOS0xyVjhv?=
 =?utf-8?B?SVdjSXFQaXJZZWZlQVFvTGNIejRVWEtVbFpvU1l2Y2FEdXYyYWVrbjhpMGxP?=
 =?utf-8?B?d2I5bXlVZlU1NEtWcCs3c2xhb3NzWGIramtzN05Jankvc2pRZjF5ZjNLQk5R?=
 =?utf-8?B?NHRjWEJLNE1kdXdLT3Zla2VESUQ4MGJZZzhyUldwUGYzbTZCVDdYQT09?=
X-OriginatorOrg: siemens.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7865567d-8830-4aa8-9878-08de6251da16
X-MS-Exchange-CrossTenant-AuthSource: AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 11:54:42.6504
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 6j5fwVUYO/xWkMypQHU9bq+RJP+IDHK2huxg45zU2Co5F+2w6bNYQ1VFO64rww615hdViVwxdTKfmmojUiH7QQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR10MB3892

On 02.02.26 12:35, Andrew Cooper wrote:
> On 02/02/2026 9:51 am, Shashank Balaji wrote:
>> Interrupt remapping is an architectural dependency of x2apic, which is already
>> enabled in the defconfig.
> 
> There is no such dependency.  VMs for example commonly have x2APIC and
> no IOMMU, and even native system with fewer than 254 CPUs does not need
> interrupt remapping for IO-APIC interrupts to function correctly.
> 

It is theoretically possible with less than 254 CPUs, and that is why
virtualization uses it, but the Intel SDM clearly states:

"Routing of device interrupts to local APIC units operating in x2APIC
mode requires use of the interrupt-remapping architecture specified in
the Intel® Virtualization Technology for Directed I/O (Revision 1.3
and/or later versions)."

IIRC, ignoring this would move us into undefined behaviour space that
may work on some system and did not on others.

Jan

-- 
Siemens AG, Foundational Technologies
Linux Expert Center


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 12:12:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 12:12:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218564.1527371 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmsnP-0008Rt-0W; Mon, 02 Feb 2026 12:12:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218564.1527371; Mon, 02 Feb 2026 12:12:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmsnO-0008Rm-Tg; Mon, 02 Feb 2026 12:12:46 +0000
Received: by outflank-mailman (input) for mailman id 1218564;
 Mon, 02 Feb 2026 12:12: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=X6EL=AG=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vmsnN-0008Rg-Nz
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 12:12:45 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 79c3ff05-0030-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 13:12:44 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS2PR03MB8418.namprd03.prod.outlook.com (2603:10b6:8:32c::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 12:12:40 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 12:12: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: 79c3ff05-0030-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lhal1vAdbceplBcbXx0qpremQ7zc4O0nnCfxv5Y9yRx1ByLy79RFNkKEot+UY7o21BF+4nyHDzAzMq1yN0eyhndHo8CnUvv7FQClBT5mKa/WPku1M8Ihn0EfS6V1peKxTiaTyeK7aeUQz6NRLCPOWEkdEAmljZLSqIRICY9aoilCr92rS+ylo0fW7k0A8rXWlECn5TWaVMvzeDa6NKJ/JLJPiW+/tyvfINe7yQOrOAybcCVyC3dKPsOWhLakpYvvIVyc6q6DNgz4UzXszDKXCinHGclH9kNXXJInoCpV1E6jIaFbIktL+xEfhNBXkEbgZ/UwEF5Op8hSavUWs6/X2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SbwzAqZcMEW0niUhQdOdFX+lHEGbMtAeLvsMnYNdaJM=;
 b=da+p/5veqKXhrQiolK+DTYlnx27v7vI4RaIuGUUVICqdE/UkzgN1kqXj3MEx9Rl+JE6J5pTy+vyxRv3e+IwgVlCAI6KMVHBkU3bNn7TDJaUaLlDuqzoTm6wyyM4cLN8f7fbXLCn6eABOPlMYBY/v4SoqmtKde9aFTaSuUSGuqguCUJ8dobq0B8iPIEusODQKBxw8apSFNwCwau5rNz/Xg3JT0awMbYik5usyxcW61A438WKpzbgS8WdhxQ0QVO/P/EwcGXKXN8U2DGIAFUrY5csUtE7Bkj5T0GChWHWeCKLSPFlBPYBE5P6xJ277nlkuR0YR+7VP4rEGhlGoDQoVQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SbwzAqZcMEW0niUhQdOdFX+lHEGbMtAeLvsMnYNdaJM=;
 b=jrVNgBCG5n4yS+NO8ZTsslYQD21/e1XO7dzWFRwy/BNs8B3BvPB7d4UzxWnv4/FD0CUcdOsM6u4UuKyI3OUsvOk6+YHwbh8wqqpwoIjsyu6zov5v5ky50zUbI0QExO5PbAwEhCxfz+RiAECLuZc76QMe0NTwLGYbQ7RIB1Xgkno=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7469ab46-94c9-48c8-b6e7-b500550768a9@citrix.com>
Date: Mon, 2 Feb 2026 12:12:32 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Ingo Molnar <mingo@elte.hu>,
 linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org,
 virtualization@lists.linux.dev, jailhouse-dev@googlegroups.com,
 kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
 Rahul Bukte <rahul.bukte@sony.com>, Daniel Palmer <daniel.palmer@sony.com>,
 Tim Bird <tim.bird@sony.com>
Subject: Re: [PATCH 2/3] x86/defconfig: add CONFIG_IRQ_REMAP
To: Jan Kiszka <jan.kiszka@siemens.com>,
 Shashank Balaji <shashank.mahadasyam@sony.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Suresh Siddha <suresh.b.siddha@intel.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-2-71c8f488a88b@sony.com>
 <a7d93306-42e5-4617-91df-23f7dd35aa1c@citrix.com>
 <f875676e-c878-4d3e-9eae-1f74f24cdedd@siemens.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f875676e-c878-4d3e-9eae-1f74f24cdedd@siemens.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0292.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:38f::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS2PR03MB8418:EE_
X-MS-Office365-Filtering-Correlation-Id: 03d7229a-38da-4c35-8ac0-08de62545c54
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|7416014|376014|10070799003|1800799024|921020;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NDJxOTM2d2hvUjFYT0J4R1g1d3ppbFJsZkNMQ2xuZEY5T25kYnlaZFphNUkz?=
 =?utf-8?B?YmVjTE1JbWJ0N1hhT1QvOUpSTTVUUElvYkNkeHV3UWdOMVM2U25LKytIclhJ?=
 =?utf-8?B?L3pIVGVTK3Fyd1NySkVtbHlnOFd4YnNuVlVCRTB0akxYUCtXVG5laWYxbENZ?=
 =?utf-8?B?M1pzcjkyUU9ES0dEZlkyempMem53Qit6T0E5NEN0NXBxdW5kOHI2cUIxdVY5?=
 =?utf-8?B?MFpGeXN2S0hzUXJ0MFQzRGVVNFYwdzk3QTNwTkFLeTZ5YWlqYmc1MmVmTFpJ?=
 =?utf-8?B?L29IdFFGOS9GTnhEU2g1aDY2VVo2Vll3MmwwL1hvZUp1dCtucHBkWVg3aVdJ?=
 =?utf-8?B?S0RKWTRLd0EyWjdhL1hsNVk2dzFiMWRQekhBZGVvT2I5Sy95a2l5TXNHWFBT?=
 =?utf-8?B?U2JlMksxTXVhZjNYeXlBTW5XYXFaWGpBZGsxZ29iZ3o2MEh3Y0ZvOG56dTZx?=
 =?utf-8?B?WG1XaDVUL1BPQ0xxWGppcE1hMWRVUzJMN3dFdElpT0FKWkRDYVJDRHBBalF5?=
 =?utf-8?B?Y3kzSXE5RjUzbXluZE1hY1FsVDZxR0JjL0xXbFZnbWF2b3VEd0VRSitkb0hj?=
 =?utf-8?B?UFByN1g5MTFZcTZZeFk0UFRrdWltRnNWSktxWTFic081aXJwUytrWEZOaW1Q?=
 =?utf-8?B?U2NadWg4dnIreVFBRTFGRGFyNHh1ajJsdHdneUxPL1VqcCtiZHh0UnFaLzZX?=
 =?utf-8?B?QkN6YXNsSHJqQmhUWVBCMWlJSVZNck1rbEZMbFBvOW5HOWIraHVOWHNlNWxV?=
 =?utf-8?B?SmN1YjU3NXhSc2kyME1QRisrV3UvYWU3Q2pNb3d1ZHp6MWljcmZ6R0lMQXJm?=
 =?utf-8?B?WlNONHBPMzc2R0o1YjR6U25VMzlkbW5qbnFNWWt4NXZVUFRUTnZBSVdrZWE5?=
 =?utf-8?B?OE5sSVVGK3JZM090ZEtDdHN0Z0p1aW1jSzc3eWh0VHFZYTlVNFdSTkxmdElX?=
 =?utf-8?B?QTZLVDNzcEZ5MWVsV3VkYmJsR1ZmaWk0ZkJmNGxhV052c3ZrZDUrbDI1eDV2?=
 =?utf-8?B?c3cvVm83d2YyTUR5MjRobWY1TGYyRUowYVZ2a0YvRHFuenZQaStRMlFOTVpR?=
 =?utf-8?B?MHIyRXJ5dm13N1lEVUIyZS9sUkFoSlN4ZXZUcXprVlJocjhLM2Nob0QzajRy?=
 =?utf-8?B?QmVRdklEZUFyeGtITWNib1MrSVlKWlVFSmhzZlRWTTFGNU1tKzUxTkJYMnF4?=
 =?utf-8?B?a2Z4YjJxRjk3NnlUU1BuSnRhRDVTUHl2Z1k5REV6S3pEMFQ2Mm9aVmlJc1Np?=
 =?utf-8?B?V28zOC95WDRHTWFWd0VJRGdtSlVJcll1V1UrMVM0TEx4ZlRQTklKQ29zUFov?=
 =?utf-8?B?ajhUY2hiL1NQWHFnc2tIQ3dmbUx0NG5jMDhGc2ZielFmck5YeURtY1NTSHRi?=
 =?utf-8?B?WS9VY2daaFloQk9rT0xqUUhpV3JCMEp4SG1LdS9DVis2WnhRL2kvdVJpcUZv?=
 =?utf-8?B?S0JLbmYweWFrM21zM21LRldobzg0NklaVE92aUluVlZtNEhvZGljY0c1MUhP?=
 =?utf-8?B?dFJrTlVIdTZRVmR3Z29IWTUyTFRBQlJjU2RZUDk2SElFSTNEbUVHVkJvYXdo?=
 =?utf-8?B?Qmg2dkdOOCtjcHR3K1dpMS9tTTJYWExQSXR1Z1JVa2xORHU4b0RNcjFWNU1y?=
 =?utf-8?B?Q29tUEk0dUhUUVN3YnlNbkVpOWo5QWMxNm96N3VPanphZGkzbndJeTkrOHNU?=
 =?utf-8?B?SUw3NjVSSWFKeENtSXVxc0xFaFQwSnM3TG9Yc0dMUE9sd1JNVGZmZTc3NUIy?=
 =?utf-8?B?T0Exc0NTMWdGdHBmYmk2UFFMQUhMeVROckZrN3VxOHpXV0FDRXJic1lZRTBz?=
 =?utf-8?B?bGI4M3B6U1N2V29HZHE5UzRiN2RUVEJwdHhhdnU0Z3ZYaDNDNE41Mk8yK0ZS?=
 =?utf-8?B?T0VNYlBaTVlFOGtFN3Bremc4Y2pvalZzaEZGZlFUNDJqdjFCU0FqMTllZ1hQ?=
 =?utf-8?B?bFllTVUyVndjMjQxWWRUeGtSUzlCTTVCZ0ZmZEhkNWNQNjVsak8vak9KbVg5?=
 =?utf-8?B?enJ3eU42UmtNUGxTWmdoK3h4aVplaWgwV1hSV01oR1d1TzBXWDFONVhLendm?=
 =?utf-8?B?OW9iR3VDUEhrNWpiWld0NG9BYjBZT1Y5Ly9FeUpPQ2tySW0rUVdybTNZZE9h?=
 =?utf-8?B?OGFsWFJwc3l0eTFQTlBQeTR5TUhTVlpPd3cxdU9xMVcrZVBaZWgyd0cralhp?=
 =?utf-8?B?YWc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(10070799003)(1800799024)(921020);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SFdyNnByQ0tPejVWQ0RUWjhNQUJXQ01BbXVlTzdvRDFqUWhXZjRwRGhIT213?=
 =?utf-8?B?ZHYza1o4WC9OYkZqYThpZE41aWlqWThsem9pUGZpaVQwZXBMNUlDODlJeUdF?=
 =?utf-8?B?aUQvb1FrbXNSWlR5NnIrV01ud0t4cUxvN2tNREdsWEt0MjB0Q2o2cjNOQXRK?=
 =?utf-8?B?MDZDSXNubUtBSE0rUVFGTDlZS29HV0ROR1pWQmRDU2lBalh6bDM0MUZud2E0?=
 =?utf-8?B?OHpDOTQrZk5xWWg4cWw2NWp3cGt6dkJQYmtVeGlKalU0ZVVHUnRyNk9rYkJW?=
 =?utf-8?B?MEtjdXZEeW5kaVVVRDVzaStWQW1oMTZxdCtnR3VnMTZjYXRDdDFTMlVnR0th?=
 =?utf-8?B?YldEc3J0bFRCNms0Q0Y5M2pJLzFLbE1xWFBRZWFQNms2eEwvdXJzSHN4a1pM?=
 =?utf-8?B?M3doSG5Rd0hsQlRVUk1SaVY4ZTRWZmtqTDhRTXZXaDVDRWovaTdQa1lQcmI3?=
 =?utf-8?B?L2lzOFlGNkZMcWU5ZENSYUtGNVEyZklJVnhLS1QxSTVEMGhRNlprMnR5UkxQ?=
 =?utf-8?B?VTEwQ25ZcWNFa0UwRDJBMGNFR01EOVFzTnNrTTZpSlFMSkx4WXZIUVFBeHEy?=
 =?utf-8?B?ejA3TERQUm1PM1JhcW50L2U4YUppRkZRWW55cnc1Z3VqYlA4Rk11L1dEZlNL?=
 =?utf-8?B?eXpOR05Fcm16TUZ4Y2RtRGxLVERIcmh5MjhWeE1JS0JTMERvMFZCeWlrMFIr?=
 =?utf-8?B?VThhMnFaOUdrT0Evbk9PRXI5VEJ1ZmpQYVZSa3V3R3pGR1hRMmhiNW50blhL?=
 =?utf-8?B?VGNTa29uNTMvNElZSGVEbnFQcnNEMEg2YTY3azhkdndXSGFUVHlZSVNRa0F2?=
 =?utf-8?B?K0U5TnJPbTJwNVZEZW1iam5Mb1A1d21RYnVBc2VRcHhIcmhTTUZEZDhiZVhk?=
 =?utf-8?B?aHJXdmVPYXBHcTY4K2gwMjBLWVFESzZmc3JlVXludnZEZ2ZkUTRuVWJLaEJx?=
 =?utf-8?B?L0JMUUJWVDgxWnZLTWREWWo1bkZEajkzYzFSSWRGWm1oSDV6SmkrbklPWGZQ?=
 =?utf-8?B?THRncW8zS3NVc2Y3THNYUG1oakVCQTJlZ1pPVHFXbVJYWkFleWhVT3JRdGNz?=
 =?utf-8?B?bi93aytuK1Z4RVFnK2N6dWUzN0dmTEVPMGVmY2NZaTJTbFByMk1YZXVQNVBZ?=
 =?utf-8?B?U2VwZUk3SEs3TUtYNGlmOEQyNUxiTXdtVTNCNkZ1UDdiaTAwWlZtWE9HUW5i?=
 =?utf-8?B?azM3U044MWVIdmpMR2wzUGx5THU4R1B4M1ZJNWFvSlJ5VlljUFh4Q3pMMUFT?=
 =?utf-8?B?SmNnMllIa29vcExiRWp3U21maHFHRk4rSnMzQzlCZ0xkTTlIK09JZ240amF4?=
 =?utf-8?B?WmZxUm44SUZNRzdOY3dHdnhZd1ZsUmtDU2xlOTZCUkU4NnhYUXJOWGh1eUxK?=
 =?utf-8?B?M0UxSHNEMW9vOHJXekQ5VHEwbUtnWUtwUFdqcEZRNi9FRGFNNm5FTGFwZVcv?=
 =?utf-8?B?Q0preUtleTlXcGRxT1RiN0RjaFpOOUdHT1ZaV0ltejg3c0FQRWhZRHNGbTEx?=
 =?utf-8?B?NnF4VFdyeUNBWEsxVjM3NFViMGZXdjRMSDF1V2RjcFlQS2RUL0ZYbWRUejVM?=
 =?utf-8?B?cERYcDlOSGxOL0RhZlQ1bnVIQm1sNmV2WWJvVEROUzNCZlM3OFM0K0VKeHRj?=
 =?utf-8?B?Nk9QZ1pxZnhRd3hmSjRXeUY3RkE4WkZRdlkrcVNQalVPWnNuV1dMTlF5a0Fv?=
 =?utf-8?B?Qk9SNjBoVHlBQ0NXNG13dXQ4WGFDc0JHVjhiODZqVUcxZTVrTW8yTEtRUTZW?=
 =?utf-8?B?WmtLZnEvWVAwQWhVckdLSzRyeXQxRGw1ZUtCeTBxKzNFSWNUSWt3NDA0TktL?=
 =?utf-8?B?VkhGT3FDcWdzbkk1eW5oRE9ZSUJ3NTJ0ejRMQ0xZRUR2OElFZ0VyRkhuYmY3?=
 =?utf-8?B?T0s2Q01wTFFrSHZtb2ROaWNXbWx0UkJ6aS9na0ZWUnVpK1R3TGo1R3UrUERa?=
 =?utf-8?B?dzZNMkdpV0dJTTR1Q0RQUmFmWXc0a0lMOEduZnhGLzZ6clA3TjFFT0VKUmFm?=
 =?utf-8?B?MWVGbnl2ZzhnU1BKdFdZWmhocmxJaDY1eU1MYlVWNStObDR3T1BMdXBqSEZj?=
 =?utf-8?B?cXVKTXFidEpGVDBPWkpnQWdiL2M4Z3F4ck5PaS92THY5UkdBbm9zNWw0SzY1?=
 =?utf-8?B?c1VMeUxvTHZYMkhleGVvcWUzU1BDamNJK0UyaVZsK2Z6cGo2dkF5dk9xem1s?=
 =?utf-8?B?Qk1qeEF0WkNLTnQ2T1pieUFWN1JHNW1nUElhSmd6WDRKWCs3WnZYVjZhL1ZZ?=
 =?utf-8?B?T1VjMEcram95WkRUb1I4WmUrMnlxNGtoUU05VGFhcmpaQnhrQUJPeGl2TTcz?=
 =?utf-8?B?SkFjV1RKUHIySmc1c2R4MGlzUEp5dS83ZnFrTDZrU3hSZnAzSkxCOGg5eUow?=
 =?utf-8?Q?ZdEdPsrHOx41+oNpoTWC73FxtlgeMVPyvgFWDVdFuBzhu?=
X-MS-Exchange-AntiSpam-MessageData-1: K7flI5RRMmq3hoZEiJ3gHzYqaGTHOLbWkMg=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 03d7229a-38da-4c35-8ac0-08de62545c54
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 12:12:40.0748
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: G1lBWzRAqOTedI1K8Sw6wcGRNo92umWswHkdsCNfnlmz6H8cILtEnNTxGD0KuT/l6FgIc6gQYciuINnzCNE72y1jT3p3eUC7LKPCwBmQ6zk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR03MB8418

On 02/02/2026 11:54 am, Jan Kiszka wrote:
> On 02.02.26 12:35, Andrew Cooper wrote:
>> On 02/02/2026 9:51 am, Shashank Balaji wrote:
>>> Interrupt remapping is an architectural dependency of x2apic, which is already
>>> enabled in the defconfig.
>> There is no such dependency.  VMs for example commonly have x2APIC and
>> no IOMMU, and even native system with fewer than 254 CPUs does not need
>> interrupt remapping for IO-APIC interrupts to function correctly.
>>
> It is theoretically possible with less than 254 CPUs, and that is why
> virtualization uses it, but the Intel SDM clearly states:
>
> "Routing of device interrupts to local APIC units operating in x2APIC
> mode requires use of the interrupt-remapping architecture specified in
> the Intel® Virtualization Technology for Directed I/O (Revision 1.3
> and/or later versions)."

This statement is misleading and has been argued over before.  It's
missing the key word "all".

What IR gets you in this case is the ability to target CPU 255 and higher.

The OS-side access mechanism (xAPIC MMIO vs x2APIC MSRs) has no baring
on how external interrupts are handled in the fabric.

There are plenty of good reasons to have Interrupt Remapping enabled
when available, but it is not a hard requirement architecturally.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 12:58:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 12:58:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218573.1527396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmtVR-0005dJ-Iv; Mon, 02 Feb 2026 12:58:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218573.1527396; Mon, 02 Feb 2026 12:58:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmtVR-0005cX-F3; Mon, 02 Feb 2026 12:58:17 +0000
Received: by outflank-mailman (input) for mailman id 1218573;
 Mon, 02 Feb 2026 12:58: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=lssc=AG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vmtVQ-0005NS-2J
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 12:58:16 +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 d5026416-0036-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 13:58:12 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4805ef35864so37478475e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 04:58:12 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482dbd0f043sm107954345e9.7.2026.02.02.04.58.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 02 Feb 2026 04:58:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5026416-0036-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770037092; x=1770641892; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rqUOsiASfyAaQ53ugdDDDMH77tCws+wp7hpoj2RKf+w=;
        b=i9GcaZt88NsQP0HC3cGNsIJFPhOFGfnRkySAAfndjEF83GoFW75P93CQWq9RuchUk+
         WXyK+b9SAkTz+ih7Y0t72t3ohT/Lzqo9ZW2cLlaG61uQ24kPDusq9PFENyfb0iv1Huvk
         FMKPZdzlNy2sKQ5+xLxAEPRr4zLyZlgaQ6QIOt6bRElYL4r2pnN0iYybvAH5JlOV9eBi
         eTm0RKxVWskFR0CYI7Fpv4j3kS05Sbl09rPwh1e/5+TmLTw/WVMeZdgQMLlIRu7cYSrf
         kFSliw8g5o9xm0zPC9qpC12Y0W9R6BmNOMUidfxIZTwQrW30hSPwW1rUgBWkgW7p5Mt4
         dt7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770037092; x=1770641892;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rqUOsiASfyAaQ53ugdDDDMH77tCws+wp7hpoj2RKf+w=;
        b=jBq+gwbwbfzjazRm4Ul4JY2G29Z5KadxV2rLkMimVlulWLBlrhHxw/7CL8ttvDdMx4
         E6Efs6QD3QQgQzKTVhu0VBVTAJCp93ANUGEIvJCRvplDiiqbwUa2XlrbLX3sT/8XSJk7
         txCPJg4zw6yH0EEtP169iwBSAw0cS2SpNpVbbiUlqULuQXbrB8usibuZ6uyiNKqQpfEj
         MzilOVC0xz5k+7xkzaaVwm3JPhrxWkzFDWxfccsyPQHCz+a9SXxLImKa+w9+nmUbxcXB
         e4nD/DSfMpUcqZapX/m4s33bqNCnIWPFe6eSBGbE3FyJr3Js6Pe2CrWag4suINzAuNP7
         zvmg==
X-Gm-Message-State: AOJu0YzIhPBtgsH7J2CHDtKYqfdLJPW3+4GN09OSw9ttuYI/QEEdXidB
	TExpsMVECdrbWfpu227QFqpr98kNRPQKDoYO2hKKOHMCNFGlhoBjgLNIsAlUPg==
X-Gm-Gg: AZuq6aJ88zJkadul7Dn2ybwSJkmW8ouAVPHaNO+lYb6LcXOj73TYJHsMw3NCbwG8+C7
	4Oa0DwJBv61mXpCmOYGg2hSF8KRGmuQJiSICzcMzfUOQatELljR3SU/E+HHP2K6PKWnXaNXnXst
	MHp8K1hdk1sW3hVBhtvHJYDSr7ujuHeErbIwIvFc8SQctXKR+BmAe61BmYhR8+jU5qOFABmAss+
	KX/7n4CSM5DO9OjSssiWHVgahzOZbLP6cmBtiWqN6eDe7yj+vd79LQhXzJDyHfRFlan05/jFgAz
	B7KLFFTVphluuv7GfOmtEwPr6T6fn6F6dLl2vqFz4CeF2X4BP4xRLz6Y5pRnzj+QV8dhBn9/UT/
	p7eV13ARFitD7K+Zo9qyJVkzHExGA1aeRYRV2rxTO9Ldxy2oksO2uXx+/iTlZA/uaupexkG9w1G
	SdBxXroPYid8BeKlOwbbIo0UH1xXbXfSqUpEHLa1TdTA8OTTSQ1r12ig==
X-Received: by 2002:a05:600c:8a17:20b0:480:25ae:9993 with SMTP id 5b1f17b1804b1-482db47ce2emr108464705e9.20.1770037092037;
        Mon, 02 Feb 2026 04:58:12 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 2/3] xen/riscv: add support for local guest TLB flush using HFENCE.VVMA
Date: Mon,  2 Feb 2026 13:57:58 +0100
Message-ID: <89f50ab2c1a1c79abea4db3a53393f974bb9a473.1770036584.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770036584.git.oleksii.kurochko@gmail.com>
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce flush_tlb_guest_local() to perform a local TLB flush of the guest's
address space for the current hart. This leverages the RISC-V HFENCE.VVMA
instruction, which is used to invalidate translations in the VS-stage of
address translation.

As for RISC-V binutils >= 2.39 is choosen, we can use hfence.vvma mnemonics
instead of defining hfence.vvma using .insn.

Although it would be possible to use sbi_remote_hfence_vvma() for this purpose,
it is unnecessary in this context since the flush is required only on the
local hart. Using the SBI call would introduce additional overhead without
benefit, resulting in unnecessary performance loss.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/flushtlb.h  |  7 +++++++
 xen/arch/riscv/include/asm/insn-defs.h | 10 ++++++++++
 2 files changed, 17 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/insn-defs.h

diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index 4f64f9757058..b0112d416dbe 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -5,6 +5,7 @@
 #include <xen/bug.h>
 #include <xen/cpumask.h>
 
+#include <asm/insn-defs.h>
 #include <asm/sbi.h>
 
 struct page_info;
@@ -14,6 +15,12 @@ static inline void local_hfence_gvma_all(void)
     asm volatile ( "hfence.gvma zero, zero" ::: "memory" );
 }
 
+/* Flush VS-stage TLB for current hart. */
+static inline void flush_tlb_guest_local(void)
+{
+    HFENCE_VVMA(0, 0);
+}
+
 /* Flush TLB of local processor for address va. */
 static inline void flush_tlb_one_local(vaddr_t va)
 {
diff --git a/xen/arch/riscv/include/asm/insn-defs.h b/xen/arch/riscv/include/asm/insn-defs.h
new file mode 100644
index 000000000000..4d50b5e23c11
--- /dev/null
+++ b/xen/arch/riscv/include/asm/insn-defs.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM_RISCV_INSN_DEFS_H
+#define ASM_RISCV_INSN_DEFS_H
+
+#define HFENCE_VVMA(vaddr, asid) \
+    asm volatile ("hfence.vvma %0, %1" \
+                  :: "r"(vaddr), "r"(asid) : "memory")
+
+#endif /* ASM_RISCV_INSN_DEFS_H */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 12:58:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 12:58:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218574.1527411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmtVW-000665-W8; Mon, 02 Feb 2026 12:58:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218574.1527411; Mon, 02 Feb 2026 12: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 1vmtVW-00065y-TS; Mon, 02 Feb 2026 12:58:22 +0000
Received: by outflank-mailman (input) for mailman id 1218574;
 Mon, 02 Feb 2026 12:58: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=lssc=AG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vmtVW-00064e-AI
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 12:58: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 d4897cc4-0036-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 13:58:12 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-480706554beso48047475e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 04:58:12 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482dbd0f043sm107954345e9.7.2026.02.02.04.58.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 02 Feb 2026 04:58:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4897cc4-0036-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770037091; x=1770641891; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SCI6k1gY6hOQ2mQg++ELmk05/We6ArMoGY0m7U5btes=;
        b=eVEIF2XKupOCYe1HF/FW+Ml5yT7nZQg28EDXtYJ4ZXqVIMuQwmrKBjiCiV2NCGjJK/
         Jj4cdqRb8694nY2IQV5KTIHuDG7ehBfaAX3Qc8dcRi12y/zVII107HMvqOikkAj4EMp6
         ejntekFx3AaTFLeRu1bBno+/xQAxPa7qs3Uav1uOcchlPAP+ybcxc9nX0pR95wUYPx0u
         oqmkeAusWfZxT/cOpePNSgfSgW+WrockMQTYct5qn+BmPPuLE/jS6UOASpi77O0JN8EK
         23kwe95sC/gBOfpy0yR96PbJtSgG0TqqqjTf2i2ixiU0U+LrmXPGnC0NWKcoXMwiXHN2
         hsFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770037091; x=1770641891;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=SCI6k1gY6hOQ2mQg++ELmk05/We6ArMoGY0m7U5btes=;
        b=ADw+COdCO+Z0iOLzRib+j3/UKMclRB30cCUy0+29xfD/8fhnzg9BZgi6W5DNbbD70e
         aXf7I1izP3fpuZP3G67kziWvSjhIp0Rs46YFrHSVH7tbQ52TAdw9CJmLTDhUGw2QQpx3
         23Y2cVO8g+igN+5EupTFGlreFFWQoXwAGefaQkBkoW30ec4AWxVi370nrGn3FLTQdo1J
         nUIRPqoN8+0W3AF1MfcmM1hif7E2VT84VBLt7UjS4jHkq3JxMi28+IY5Kbm51zRXIr6q
         EiUHA3Pmxzkt7PyklN+qsRcYXwpuQPMbKDNTbrgKL6yjvQArBvi6CwiKu1ooh+d815iY
         RC2g==
X-Gm-Message-State: AOJu0YwszNlIvAUwQhspEnZDpbj+fKxw8jTB20WUCewGozKyymUAjSQ5
	CFaTmMKVKHrN02wxNvXm4ZKOsxnpDTgT7EWUVzKjz/gmwruxtdcO4bHdUqHPKA==
X-Gm-Gg: AZuq6aLzBIm8thjnNuwAT3iXBKddFeGgrEiiG7ALolS23QfxOwK8BlxUWWwv8w9utSz
	yB1RA8KT/Tb910mZtIh/VwAPYITplH2quM8zOyaQRg9gLgMCHfd9mSSirBZXYLJ7clNZDnfF7h7
	edlLq1Av5NHDAuLc2QDeHLVGDGhVcejZC9yo8rckIYqarUHFb2j8sDXwD/cLTLYtWzBl/leJHl4
	9R2C3f/GXFIsrovcoOW/1VbDZix8/IzA3F4VfV6m6Ahxd0cudsJSAPwiDeGd3Plbwl0HKp5ZqdU
	1mTXz+o90D1v79nfN/sQZpay2sCefhOvlT9WdvGelF60ElWMCzFsA2cd3fzCa3T6f1EQw2jDo1G
	Rw9EYZgma3OV3RIIu2iSQ5fin4Y1RyKOCbpHvn3eY2sy+j/MOO1NotmIArqRrWqFZRAeNHli328
	9GlnslKymE9AkJaU3DIz7l8r/AGm5b9vWCfqd9RJuy/jJDObwvp8wu7g==
X-Received: by 2002:a05:600c:1d1b:b0:46e:59bd:f7d3 with SMTP id 5b1f17b1804b1-482db4939d8mr145289775e9.20.1770037091020;
        Mon, 02 Feb 2026 04:58:11 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 1/3] xen/riscv: introduce struct arch_vcpu
Date: Mon,  2 Feb 2026 13:57:57 +0100
Message-ID: <98214488c67fac866ba519c368aef697da2d2bb6.1770036584.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770036584.git.oleksii.kurochko@gmail.com>
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introdce struct arch_vcpu to hold RISC-V vCPU-specific state.

The structure contains:
  - Guest-visible CSR state, used to save and restore vCPU execution
    state across context switches. hstatus isn't added here as it is
    already part of cpu_user_regs struct.
  - Callee-saved registers used to preserve Xen’s own execution context
    when switching between vCPU stacks.

It is going to be used in the following way (pseudocode):
  context_switch(prev_vcpu, next_vcpu):
    ...

    /* Switch from previous stack to the next stack. */
    __context_switch(prev_vcpu, next_vcpu);

    ...
    schedule_tail(prev_vcpu):
       Save and restore vCPU's CSRs.

The Xen-saved context allows __context_switch() to switch execution
from the previous vCPU’s stack to the next vCPU’s stack and later resume
execution on the original stack when switching back.

During vCPU creation, the Xen-saved context is going to be initialized
with:
  - SP pointing to the newly allocated vCPU stack
  - RA pointing to a helper that performs final vCPU setup before
    transferring control to the guest
After the first execution of __context_switch(), RA naturally points to
the instruction following the call site, and the remaining callee-saved
registers contain the Xen register state at the time of the switch.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - Drop gp from struct {...} xen_saved_context as it ought to be stable accross
   Xen so there is no need to be saved/restored and, also, it shouldn't be
   preserved across calls according to RISC-V ABI.
 - Update the comment above struct {...} xen_saved_context to make it more
   clear.
 - Drop CSRs and VCSRS comments in arch_vcpu as it is clear what kind of CSR
   it is based on the name.
 - Drop __cacheline_aligned for struct arch_vcpu as proper measurements can't
   be made now so it is hard to prove that the attribute really boost
   performance.
---
Changes in v2:
 - Drop hstatus from struct arch_vcpu as it is stored in struct cpu_user_regs
   which will be stored on top of vCPU's stack.
 - Drop the comment above ra in xen_saved_context struct as it is potentially
   misleading.
---
 xen/arch/riscv/include/asm/domain.h | 49 +++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 316e7c6c8448..cca39effc1ba 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -24,6 +24,55 @@ struct arch_vcpu_io {
 
 struct arch_vcpu {
     struct vcpu_vmid vmid;
+
+    /*
+     * Callee saved registers for Xen's state used to switch from
+     * prev's stack to the next's stack during context switch.
+     */
+    struct
+    {
+        register_t s0;
+        register_t s1;
+        register_t s2;
+        register_t s3;
+        register_t s4;
+        register_t s5;
+        register_t s6;
+        register_t s7;
+        register_t s8;
+        register_t s9;
+        register_t s10;
+        register_t s11;
+        register_t sp;
+        register_t ra;
+    } xen_saved_context;
+
+    register_t hedeleg;
+    register_t hideleg;
+    register_t hvip;
+    register_t hip;
+    register_t hie;
+    register_t hgeie;
+    register_t henvcfg;
+    register_t hcounteren;
+    register_t htimedelta;
+    register_t htval;
+    register_t htinst;
+    register_t hstateen0;
+#ifdef CONFIG_RISCV_32
+    register_t henvcfgh;
+    register_t htimedeltah;
+#endif
+
+    register_t vsstatus;
+    register_t vsip;
+    register_t vsie;
+    register_t vstvec;
+    register_t vsscratch;
+    register_t vscause;
+    register_t vstval;
+    register_t vsatp;
+    register_t vsepc;
 };
 
 struct paging_domain {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 12:58:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 12:58:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218572.1527392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmtVR-0005b2-BL; Mon, 02 Feb 2026 12:58:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218572.1527392; Mon, 02 Feb 2026 12:58:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmtVR-0005av-8H; Mon, 02 Feb 2026 12:58:17 +0000
Received: by outflank-mailman (input) for mailman id 1218572;
 Mon, 02 Feb 2026 12:58: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=lssc=AG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vmtVP-0005NS-R4
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 12:58:15 +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 d5b82926-0036-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 13:58:14 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4806b43beb6so32497125e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 04:58:14 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482dbd0f043sm107954345e9.7.2026.02.02.04.58.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 02 Feb 2026 04:58:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d5b82926-0036-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770037093; x=1770641893; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6PCN+JMwSkisOaNF3qhnnL2HUsH6g8JJShv2LCENQeM=;
        b=YVlBgNaCVXNtD76XpGKsE6lEJ7z4OUjIrUDUIivzutuW6f/DHJUJ3hMnPf31qB4gpN
         gkHuB3ykpe+Ycc9gUaj+zg4BF8K2bKzntsGVHMoHxw+5OOGRBZol2VHaEz/1oF1m7alz
         bCqq2jP4WWVsJzj6h5QYLKI5bJx6dcYm5JluXQDubz0qQ055NMf799lH7vAf2S9r2k/S
         aSwfmTIn4calC5AUXyMsIuidw5O250md8x5iocUJM659y1x3R3DuQ2l3ip4K1VlqG0sv
         fPfyHuUoYsQYnqUOgz3n+z/mJVvzi3sJeuaN8cyiRIpuSk97VsdyKy6R+jdDjy3cYq2o
         Krog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770037093; x=1770641893;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=6PCN+JMwSkisOaNF3qhnnL2HUsH6g8JJShv2LCENQeM=;
        b=uQjBEb9dDuK4mhaZVpn0FTTryVivD6KtzOjEKQG9mcXWsL2TSlhohG3C8B+SQbfp4s
         ZIIn10p9k5dAnYT3ngfmzVtaJ7f8lQHtvVLB8NrPhIr5TR2p2PWw6Yj0cJ1QAMJRmeNk
         F6HLsJ3BkuoaDXZssImmhqYaWmpUSOkHAMMakgtt6R8FJQj7zAUvoAiBaERvF+cEzMMi
         ENALCY+zz/blRIrErXXj9tgsELJXliZqQ6Rw/LepCU8MctRydyubJtwwl7AD11wN5Hdd
         ByrvPEdkP0uxAmWXSsJEL5Jv6iuMlq6A9eSqK3vgzY+OiW2mcV7OFupbMlrKg3jpoBjl
         v7wQ==
X-Gm-Message-State: AOJu0Yw3/NQ47YT4wxmtvfBqZtNtSK+e4d+n7fpmxbRHuBW7AgdiNa6r
	Lr7dxOylN7fn5q4vQmK2MB2lbo2P0cyZjQmwMdFOH8YrVb0w+4MdJK9/aN5oIA==
X-Gm-Gg: AZuq6aKWE58m0fWF77oANglcQFAC/nVzdigvlE0bW745XT/23JM4OhaJ2E2eFNoOfYk
	IGCPHtj3HvRc9A5HXr+NrQKvwYrxJZv1/CGqE2pbIou1GUYNRvG0kHs251RY1pRL7LNt4phGTY1
	IZzFlRNCqpc7TDTxUKsw35ureDDEo6B8L8z70lpmZLxVzKpPtYafqBVNGq2+Kqqeuf6mchPp/TV
	baHnCiCGinpGBSZLJ4SKGnhEeKB5wD/81gHYyj70poNGmfs/ZK96FtEc3gr4JupEz7YdKYH797R
	vHp0roKE+Q+htv9USolQXlzG2NvKjGTFZWWq67ZAh0z60uZ2ePZ+hqmxK/gdclXw9Fucbc4zD5t
	wcZQo/ovbOrCBCCpW8gbCxqTtRsc2xWUpIBl9Otdv4zYccHW0eQpY0yqt1Ua6E3C9yjqKscgop4
	Wdb8C+sIyT7aqn9ZQaetp52/KYNx+XSSRfiY3KXXipyQTQbGV+dSOk3wXe3A==
X-Received: by 2002:a05:600c:1549:b0:475:dde5:d91b with SMTP id 5b1f17b1804b1-482db493944mr154293685e9.17.1770037093221;
        Mon, 02 Feb 2026 04:58:13 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 3/3] xen/riscv: implement p2m_ctx_switch_{to,from}_state()
Date: Mon,  2 Feb 2026 13:57:59 +0100
Message-ID: <2e4cd29f19945e90733ac85e023d53cecbe1d14d.1770036584.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770036584.git.oleksii.kurochko@gmail.com>
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce functions required to perform a p2m context switch during
a vCPU context switch.

As 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 in p2m_ctx_swith_from(),
then construct new hgatp and  write the new vsatp value in
p2m_ctx_switch_to().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/include/asm/p2m.h |  4 ++
 xen/arch/riscv/p2m.c             | 81 ++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index f63b5dec99b1..1d8c97326565 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -255,6 +255,10 @@ static inline bool p2m_is_locked(const struct p2m_domain *p2m)
 struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
                                         p2m_type_t *t);
 
+
+void p2m_ctx_switch_from(struct vcpu *p);
+void p2m_ctx_switch_to(struct vcpu *n);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 0abeb374c110..af68497c4200 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1434,3 +1434,84 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
 
     return get_page(page, p2m->domain) ? page : NULL;
 }
+
+void p2m_ctx_switch_from(struct vcpu *p)
+{
+    /*
+     * 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.
+     */
+    p->arch.vsatp = csr_read(CSR_VSATP);
+    csr_write(CSR_VSATP, 0);
+
+    /*
+     * No need for VS-stage TLB flush here:
+     *  Changing satp.MODE from Bare to other modes and vice versa also
+     *  takes effect immediately, without the need to execute an
+     *  SFENCE.VMA instruction.
+     * Note that VSATP is just VS-mode’s version of SATP, so the mentioned
+     * above should be true for VSATP.
+     */
+
+    /*
+     * Nothing to do with HGATP as it is constructed each time when
+     * p2m_ctx_switch_to() is called.
+     */
+}
+
+void p2m_ctx_switch_to(struct vcpu *n)
+{
+    struct vcpu_vmid *p_vmid = &n->arch.vmid;
+    uint16_t old_vmid, new_vmid;
+    bool need_flush;
+
+    if ( is_idle_vcpu(n) )
+        return;
+
+    old_vmid = p_vmid->vmid;
+    need_flush = vmid_handle_vmenter(p_vmid);
+    new_vmid = p_vmid->vmid;
+
+#ifdef P2M_DEBUG
+    printk(XENLOG_INFO, "%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
+           n, old_vmid, new_vmid, need_flush);
+#endif
+
+    csr_write(CSR_HGATP, construct_hgatp(p2m_get_hostp2m(current->domain),
+              new_vmid));
+
+    if ( unlikely(need_flush) )
+        local_hfence_gvma_all();
+
+    /*
+     * According to the RISC-V specification, speculation can happen
+     * during an update of hgatp and vsatp:
+     *   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 just flush TLBs for VS-Stage and G-stage after both of regs are
+     * touched.
+     */
+    flush_tlb_guest_local();
+
+    /*
+     * The vsatp register is a VSXLEN-bit read/write register that is
+     * VS-mode’s version of supervisor register satp, so the following is
+     * true for VSATP registers:
+     *  Changing satp.MODE from Bare to other modes and vice versa also takes
+     *  effect immediately, without the need to execute an SFENCE.VMA
+     *  instruction. Likewise, changes to satp.ASID take effect immediately.
+     * Considering the mentioned above and that VS-stage TLB flush has been
+     * already done there is no need to flush VS-stage TLB after an update
+     * of VSATP from Bare mode to what is written in `n->arch.vsatp`.
+     */
+    csr_write(CSR_VSATP, n->arch.vsatp);
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 12:58:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 12:58:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218571.1527382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmtVQ-0005Nn-5B; Mon, 02 Feb 2026 12:58:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218571.1527382; Mon, 02 Feb 2026 12: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 1vmtVQ-0005Ng-1q; Mon, 02 Feb 2026 12:58:16 +0000
Received: by outflank-mailman (input) for mailman id 1218571;
 Mon, 02 Feb 2026 12: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=lssc=AG=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vmtVO-0005NS-L9
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 12:58:14 +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 d3eab34f-0036-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 13:58:11 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48069a48629so45946015e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 04:58:11 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482dbd0f043sm107954345e9.7.2026.02.02.04.58.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 02 Feb 2026 04:58:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3eab34f-0036-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770037090; x=1770641890; 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=oRi0W9WCTHZh0EUHjEztjHxY/SjKN0eElI1BDWfPzFU=;
        b=npuzwMEHLNWEx94U2z5KjeyE+xABKWCkgxihk94YCUQnGl7C7P5RZA4MVcFpnL2bWX
         ggMVuVWKyo4wNcOuluF4lkTFvj2RXNLiNPl1sV0J787RC8E0WmQ5BmWwj2NQB+jAdQct
         SU16tRlo0osf43/AfS3am+LKsMpYvfTABRLSSF8UHFfwWj8XQ6s38KRe57GUbevE4nPQ
         lm8ylP4y2Z1wSVYCKfK5ge2UN7OAq6vpvQ8EbxZE972IjAgTorMFXSypYgHmZwjMuQCg
         48kS1/8YOZ42QqYUeBRhbw4XNadkvHTZZ4M/gb6K3geGFJyFlHEr8OoVU6rg7VR2zcMK
         1qpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770037090; x=1770641890;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oRi0W9WCTHZh0EUHjEztjHxY/SjKN0eElI1BDWfPzFU=;
        b=oQvBtorlBqrkZRB6vsirp+3D4ebuOUAKmSZ8BQuVXsqhdkLDDOWbgh5yZcx9lqB2OZ
         84R0UoRz5wdiNn28JVTFj27McGRvuh63tHpqxs8xxB649RMcQfSStyiq6Sk4b+KW5Ors
         wzB4ZLaFEh8H5VN5OabdI1uaSjfOIAHP0iBIGNIMwJiNd4yBjtvblM5ZCTyYwNw5R13B
         mIB+Q/e80zsi4cmsoTZd1oxaEYBXqGz/cPvcZonWgMtDcnmzIKIt5TRnUZMUMTEsckOZ
         NmCdOWcaVGVwMLieIlmLhRV+g6UZkY000SDqZQqKdnB+HFk0Uuihp/3z6q2mhplVouNn
         dRNA==
X-Gm-Message-State: AOJu0YzfrEHe1XoRWcfjcCHExf3zMsZprM6PD9KH+cD4qeThqJTP9Kba
	Gw1Ett4ynYquZTjzTBOIWkpRbQVz9YnMT1qaWRhlj4TaJF/7e1wbqaCUCexalg==
X-Gm-Gg: AZuq6aIVlexvpAUlrycINQU7BCfdtR/MvhMEuZFj01mSRnDX8jlwHFbmA/rrO0Z/WMe
	J9QA57rJDYySaUGftgMsMI4yJVBiqGBtj0lBMRzGZ0QOkzSopghMhG2kB/6l8fPm5R17oZa6Yzs
	nhUiXVKDeHivIZ6GtAuz40k1cxZqJM5RNe41YuJE7TkxhRveUZ+Z3mMyWTt4DfHNZktFNNeSPms
	0gZHJbFAlURrk4C73hulirbEB/VdnO8ILdxWdiCY2GiaV1+KxakVryXI0bZnSPJOGW4a8gAZDPM
	pOP3Fn+Jqa8llC28fIQhIUhFeqzCYmIbR1EyHtk4eF1OtSZp3c48zv/FOXiVLYKIkVW+3dViGSF
	FM09gxJ/utl09o2sWVojCfz27z5sFgCnFcwY44eRg+86llsGk3xYoZhypc+qM3clu1lPIRUXOgG
	HgMz8BNi9jCMTTCl3uDm/g+asAONPJD6vgitSMlweBO5dJuG5MHGU7e0S1SrZV3IwT
X-Received: by 2002:a05:600c:c0cd:b0:47d:6856:9bd9 with SMTP id 5b1f17b1804b1-482db623c40mr95336455e9.23.1770037090066;
        Mon, 02 Feb 2026 04:58:10 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 0/3] RISC-V: p2m context switch
Date: Mon,  2 Feb 2026 13:57:56 +0100
Message-ID: <cover.1770036584.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce functions required to perform a p2m context switch during a vCPU
context switch.

This patch series originally depended on a single patch (Patch 1) from [1].
To avoid introducing a dependency on the larger patch series [1],
that patch was cherry-picked into the current series, since it is the
only true dependency.

Patch 2 is fully independent.

Patch 3 depends on Patch 1.

[1] https://lore.kernel.org/xen-devel/cover.1769099883.git.oleksii.kurochko@gmail.com/T/#t

Oleksii Kurochko (3):
  xen/riscv: introduce struct arch_vcpu
  xen/riscv: add support for local guest TLB flush using HFENCE.VVMA
  xen/riscv: implement p2m_ctx_switch_{to,from}_state()

 xen/arch/riscv/include/asm/domain.h    | 49 ++++++++++++++++
 xen/arch/riscv/include/asm/flushtlb.h  |  7 +++
 xen/arch/riscv/include/asm/insn-defs.h | 10 ++++
 xen/arch/riscv/include/asm/p2m.h       |  4 ++
 xen/arch/riscv/p2m.c                   | 81 ++++++++++++++++++++++++++
 5 files changed, 151 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/insn-defs.h

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 13:51:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 13:51:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218607.1527421 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmuKa-0006DM-94; Mon, 02 Feb 2026 13:51:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218607.1527421; Mon, 02 Feb 2026 13:51: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 1vmuKa-0006DF-63; Mon, 02 Feb 2026 13:51:08 +0000
Received: by outflank-mailman (input) for mailman id 1218607;
 Mon, 02 Feb 2026 13:51: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=r8uj=AG=siemens.com=jan.kiszka@srs-se1.protection.inumbo.net>)
 id 1vmuKZ-0006D9-Ee
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 13:51:07 +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 36962222-003e-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 14:51:03 +0100 (CET)
Received: from AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:588::19)
 by VI0PR10MB9380.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:800:2b2::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Mon, 2 Feb
 2026 13:50:59 +0000
Received: from AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM
 ([fe80::be9f:e8ca:ee9:83e1]) by AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM
 ([fe80::be9f:e8ca:ee9:83e1%6]) with mapi id 15.20.9564.014; Mon, 2 Feb 2026
 13: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: 36962222-003e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SvzxotOPprVwaSq7b27OICqbZZdMPWARxPeuhmYrLJWXZiMhEQ5+Wy+wVUCTqIbqOiWxNG4wAhOhCpZ4urTPjGLz0WkKRhxbqQU7xtvJxLRnoosEQw2foMIVHcKyLAlIWWjpsLgxFmCBPALROey3q8olRdelzKVjeIodt14rLv2IsY8qBOS019oL5/EwaN3RyfG2FUg8pSFDbYcut4sNQnVYG0l6DEDayUVXG4OKkXmIPKYkpjCoAuw3yxNfry3PuZjburgPZvOcc02wrJvRECnZMzIBANs7RZkPS5AFA27TfTLMhBjEfBxOixIWrZgR+him6CWUcoZzDgrBjVP4mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fXATRkmSBS3hlr4oI8moLbEhZpRsYQ9uBsOirJST0lQ=;
 b=cTUqL4RbzNADMRVzSgcTcHuzG+myYU597xSfY4aI/Si9Fs3VTb6dIRAG0OATWnAj+zh6glcg2lAB0IT6xTGAiKbSKLzdlNOtRsVCTw0j6/qqbU/By0K4x0Ufw4qmUDukix9KSTvv4qtOUxxaSs0Oi70nOXvB3R37/Wqc7CQkvhGC4OzaBLqDgvqT5J//Qkpl3f2vE4pjaXbnaCrd2h9yg49Nn23uAP6aY3VGfeWH3wI9zFEEnf5z//f6StAwMtt+zGFXdJhZh/j8rRygc1hJn05VIV0rm+3uJy53ENmSzwbp/ZZGXOqZfQRHRPoc3AYQ2Y21XbOnSe3XqrvwDRG56A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com;
 dkim=pass header.d=siemens.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fXATRkmSBS3hlr4oI8moLbEhZpRsYQ9uBsOirJST0lQ=;
 b=mDG0IrqO6HmdZHzhnihMpT7hdntY7g8hfp81YomdL9B0P2+aWaauhQ8qfMTUxU5Z2DQTRBocMF46/iVgvmvCyK9DeekECuqj4dPiAZnHyXnmyTREwUkqum1+hWGZV7uORN9AmnbOEXiSrH83GXx1ivGNIAbQ/eBr6vuWH2PQ8Wc6wH+ERax90QYnPPBbBA2fhs3uHQ3tr7k4N85Tpo66dbcuPn74yAfuxZ1UkcJ1RplHVUfEUw/rGNk/j5TEZHOuKjj/KVIosnm2dPTxhMZrnM+Nm/FTBQziXkd+/Wpt+IEDtBfGYqZQFLSYGMTPRBBM2d8Whai4weDIlgW1nepjAg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=siemens.com;
Message-ID: <c6d18df5-d0b9-4716-b31a-8c12b0ea3739@siemens.com>
Date: Mon, 2 Feb 2026 14:50:44 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] x86/defconfig: add CONFIG_IRQ_REMAP
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Shashank Balaji <shashank.mahadasyam@sony.com>,
 Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Suresh Siddha <suresh.b.siddha@intel.com>,
 "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Juergen Gross <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
 xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
 Daniel Palmer <daniel.palmer@sony.com>, Tim Bird <tim.bird@sony.com>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-2-71c8f488a88b@sony.com>
 <a7d93306-42e5-4617-91df-23f7dd35aa1c@citrix.com>
 <f875676e-c878-4d3e-9eae-1f74f24cdedd@siemens.com>
 <7469ab46-94c9-48c8-b6e7-b500550768a9@citrix.com>
From: Jan Kiszka <jan.kiszka@siemens.com>
Content-Language: en-US
Autocrypt: addr=jan.kiszka@siemens.com; keydata=
 xsFNBGZY+hkBEACkdtFD81AUVtTVX+UEiUFs7ZQPQsdFpzVmr6R3D059f+lzr4Mlg6KKAcNZ
 uNUqthIkgLGWzKugodvkcCK8Wbyw+1vxcl4Lw56WezLsOTfu7oi7Z0vp1XkrLcM0tofTbClW
 xMA964mgUlBT2m/J/ybZd945D0wU57k/smGzDAxkpJgHBrYE/iJWcu46jkGZaLjK4xcMoBWB
 I6hW9Njxx3Ek0fpLO3876bszc8KjcHOulKreK+ezyJ01Hvbx85s68XWN6N2ulLGtk7E/sXlb
 79hylHy5QuU9mZdsRjjRGJb0H9Buzfuz0XrcwOTMJq7e7fbN0QakjivAXsmXim+s5dlKlZjr
 L3ILWte4ah7cGgqc06nFb5jOhnGnZwnKJlpuod3pc/BFaFGtVHvyoRgxJ9tmDZnjzMfu8YrA
 +MVv6muwbHnEAeh/f8e9O+oeouqTBzgcaWTq81IyS56/UD6U5GHet9Pz1MB15nnzVcyZXIoC
 roIhgCUkcl+5m2Z9G56bkiUcFq0IcACzjcRPWvwA09ZbRHXAK/ao/+vPAIMnU6OTx3ejsbHn
 oh6VpHD3tucIt+xA4/l3LlkZMt5FZjFdkZUuAVU6kBAwElNBCYcrrLYZBRkSGPGDGYZmXAW/
 VkNUVTJkRg6MGIeqZmpeoaV2xaIGHBSTDX8+b0c0hT/Bgzjv8QARAQABzSNKYW4gS2lzemth
 IDxqYW4ua2lzemthQHNpZW1lbnMuY29tPsLBlAQTAQoAPhYhBABMZH11cs99cr20+2mdhQqf
 QXvYBQJmWPvXAhsDBQkFo5qABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEGmdhQqfQXvY
 zPAP/jGiVJ2VgPcRWt2P8FbByfrJJAPCsos+SZpncRi7tl9yTEpS+t57h7myEKPdB3L+kxzg
 K3dt1UhYp4FeIHA3jpJYaFvD7kNZJZ1cU55QXrJI3xu/xfB6VhCs+VAUlt7XhOsOmTQqCpH7
 pRcZ5juxZCOxXG2fTQTQo0gfF5+PQwQYUp0NdTbVox5PTx5RK3KfPqmAJsBKdwEaIkuY9FbM
 9lGg8XBNzD2R/13cCd4hRrZDtyegrtocpBAruVqOZhsMb/h7Wd0TGoJ/zJr3w3WnDM08c+RA
 5LHMbiA29MXq1KxlnsYDfWB8ts3HIJ3ROBvagA20mbOm26ddeFjLdGcBTrzbHbzCReEtN++s
 gZneKsYiueFDTxXjUOJgp8JDdVPM+++axSMo2js8TwVefTfCYt0oWMEqlQqSqgQwIuzpRO6I
 ik7HAFq8fssy2cY8Imofbj77uKz0BNZC/1nGG1OI9cU2jHrqsn1i95KaS6fPu4EN6XP/Gi/O
 0DxND+HEyzVqhUJkvXUhTsOzgzWAvW9BlkKRiVizKM6PLsVm/XmeapGs4ir/U8OzKI+SM3R8
 VMW8eovWgXNUQ9F2vS1dHO8eRn2UqDKBZSo+qCRWLRtsqNzmU4N0zuGqZSaDCvkMwF6kIRkD
 ZkDjjYQtoftPGchLBTUzeUa2gfOr1T4xSQUHhPL8zsFNBGZY+hkBEADb5quW4M0eaWPIjqY6
 aC/vHCmpELmS/HMa5zlA0dWlxCPEjkchN8W4PB+NMOXFEJuKLLFs6+s5/KlNok/kGKg4fITf
 Vcd+BQd/YRks3qFifckU+kxoXpTc2bksTtLuiPkcyFmjBph/BGms35mvOA0OaEO6fQbauiHa
 QnYrgUQM+YD4uFoQOLnWTPmBjccoPuiJDafzLxwj4r+JH4fA/4zzDa5OFbfVq3ieYGqiBrtj
 tBFv5epVvGK1zoQ+Rc+h5+dCWPwC2i3cXTUVf0woepF8mUXFcNhY+Eh8vvh1lxfD35z2CJeY
 txMcA44Lp06kArpWDjGJddd+OTmUkFWeYtAdaCpj/GItuJcQZkaaTeiHqPPrbvXM361rtvaw
 XFUzUlvoW1Sb7/SeE/BtWoxkeZOgsqouXPTjlFLapvLu5g9MPNimjkYqukASq/+e8MMKP+EE
 v3BAFVFGvNE3UlNRh+ppBqBUZiqkzg4q2hfeTjnivgChzXlvfTx9M6BJmuDnYAho4BA6vRh4
 Dr7LYTLIwGjguIuuQcP2ENN+l32nidy154zCEp5/Rv4K8SYdVegrQ7rWiULgDz9VQWo2zAjo
 TgFKg3AE3ujDy4V2VndtkMRYpwwuilCDQ+Bpb5ixfbFyZ4oVGs6F3jhtWN5Uu43FhHSCqUv8
 FCzl44AyGulVYU7hTQARAQABwsF8BBgBCgAmFiEEAExkfXVyz31yvbT7aZ2FCp9Be9gFAmZY
 +hkCGwwFCQWjmoAACgkQaZ2FCp9Be9hN3g/8CdNqlOfBZGCFNZ8Kf4tpRpeN3TGmekGRpohU
 bBMvHYiWW8SvmCgEuBokS+Lx3pyPJQCYZDXLCq47gsLdnhVcQ2ZKNCrr9yhrj6kHxe1Sqv1S
 MhxD8dBqW6CFe/mbiK9wEMDIqys7L0Xy/lgCFxZswlBW3eU2Zacdo0fDzLiJm9I0C9iPZzkJ
 gITjoqsiIi/5c3eCY2s2OENL9VPXiH1GPQfHZ23ouiMf+ojVZ7kycLjz+nFr5A14w/B7uHjz
 uL6tnA+AtGCredDne66LSK3HD0vC7569sZ/j8kGKjlUtC+zm0j03iPI6gi8YeCn9b4F8sLpB
 lBdlqo9BB+uqoM6F8zMfIfDsqjB0r/q7WeJaI8NKfFwNOGPuo93N+WUyBi2yYCXMOgBUifm0
 T6Hbf3SHQpbA56wcKPWJqAC2iFaxNDowcJij9LtEqOlToCMtDBekDwchRvqrWN1mDXLg+av8
 qH4kDzsqKX8zzTzfAWFxrkXA/kFpR3JsMzNmvextkN2kOLCCHkym0zz5Y3vxaYtbXG2wTrqJ
 8WpkWIE8STUhQa9AkezgucXN7r6uSrzW8IQXxBInZwFIyBgM0f/fzyNqzThFT15QMrYUqhhW
 ZffO4PeNJOUYfXdH13A6rbU0y6xE7Okuoa01EqNi9yqyLA8gPgg/DhOpGtK8KokCsdYsTbk=
In-Reply-To: <7469ab46-94c9-48c8-b6e7-b500550768a9@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: CH0PR03CA0206.namprd03.prod.outlook.com
 (2603:10b6:610:e4::31) To AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM
 (2603:10a6:20b:588::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS4PR10MB6181:EE_|VI0PR10MB9380:EE_
X-MS-Office365-Filtering-Correlation-Id: 65549c61-fc37-4108-c9ef-08de62621886
X-MS-Exchange-AtpMessageProperties: SA
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|7416014|376014|921020;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bDU1V1hHdWw5MlV4dGhLUGZlM2p6OFJ0ZG11M0V5alhGUVc4QUlzaUp4S1pO?=
 =?utf-8?B?eTRxVDVGUE52a3g3b09RTlVYdXZ6bGRnMjhxL2ZidmZVRjVNMGtadWhBdlVL?=
 =?utf-8?B?bDYrMmc4MHd3SWQrelRobWdPdjQwTlg2RmMxN2dHT1lUdEJadzN1cllFYU5T?=
 =?utf-8?B?bjJsRUI2akR2NDl6WlhoSHd0eHZDZ2h5UzhyQjA0cWRQaE5TMXVoZDAvTCth?=
 =?utf-8?B?Q3MrZjlmZjhmdzh4SmgzQzJucWJQWlkyMnkzSTZQZXE3WVRONnR2TllVUExZ?=
 =?utf-8?B?RG9tS3hKcUJSNHRrSnJyK3JGTmRsMjUvRlI2RStXZzF4dm9NU05aQU5POVlo?=
 =?utf-8?B?T1BnRVJOaDVRaGNDLy9sZ1lBdmJUR3g4Vnc5WkpTelh1T3h4S0V6bEZpT0Q1?=
 =?utf-8?B?c00wNytSOFptcXZFN3c2ZDJhR0VBaWtTQ01HZGNKb1oyTy93QXVycW9zZWFw?=
 =?utf-8?B?eFpaRTM1SW83Rkc4QXhmRk9IWDJBYUFXamlBYzhZK0J2M1FwWlRsQXFZUEpo?=
 =?utf-8?B?VWwxY3FVSEdabkFYaGR1ZEdnQnUwY2syT1hGZlpHK1dxKzA5MjhxOVJzclQ5?=
 =?utf-8?B?TE1mOS9ZWUNvMlp5Nk1NVjdWZmZySFp4MkxkSzFhbVBLNm1hSXJtOGdOR2dl?=
 =?utf-8?B?cDEyRkJpdkREZUxTSXdGWTRJSEI3RDhHa0dmY3J6TmdwVkRYTkE0SXZTRzE4?=
 =?utf-8?B?bUFtTG5wejNTZ000WTlvdytDbjVWZkRIN0VsMjVHQXdOWndJRmlqMkt6U2xP?=
 =?utf-8?B?c2RMNlBva2gwbFN0REpXOEdKME51ak0xWXJnTGEydFFkenVxNzFna0ZPam50?=
 =?utf-8?B?Y3M2dXFOR3ZjdGZQelBxazd1NjVhUW9YNzhzc01TL3p0Z1FIaFZBemU2ZlZW?=
 =?utf-8?B?d2NOUUZZQmhaZnU5WlF4QVFQVFZhbysyZVV2cUJhVEdZOWRmcjliek9IZFNL?=
 =?utf-8?B?S2dPK3RKQTZ2eTZ2cHFSL1gxdmYrcGNHQmRNNmVjZlJmMkJIYktQT1ZyeDNk?=
 =?utf-8?B?N2xISmlZUG1NM1lpcUxRVXpYdVlnU0I0QVF5VE5LQ0tuVDBwWFMvcWpKd2oz?=
 =?utf-8?B?ZUN5NFdBVGRmNmNqOENERy8zTWZnc1pjSjd1SlR6ck5BQkxNQnhEeWVOWFU1?=
 =?utf-8?B?MWw2MTVMYzMwQWU0dGl6S25CTitJRy9nOUhqZVZndER3S3cwRTA5WUhMQU9I?=
 =?utf-8?B?K2pWQS9WZklMYXg5Q2E0VEVCSGRuNUNqR3BoaUc4dDhqOTV4UWFqRTZFUno2?=
 =?utf-8?B?a3V6aDFLbmhVYTF2TitZaStpVVg0VGxCdlV5b1l2Y3VyeG44cG1zajN6WE1a?=
 =?utf-8?B?ZmZ0SmhPWnozS1ljbVRMQnVnV0M1WDF4Q1hKMEswZ3RRQXhrTFlDQ1Y1anpU?=
 =?utf-8?B?bDdHLyt1dWJsTlRJUHArTk1wdm5VUkhhbWlXOUR2a2lhVUpIYTU1eU5LN1FJ?=
 =?utf-8?B?RnFvbk85b0NtMDl6MldibjZGNmRlTWd2Y0wxVlhOTldQOE1SWkhIOU1ZYXBN?=
 =?utf-8?B?YWM1OGpXbE9KOEZXUTE0eEM4anA5dFRPK1U1VUlCWjVwbDZEL1g0Y2RrSE0w?=
 =?utf-8?B?VWVpQS9DU2Q4bWxmb2E3SlJ3aHdzTEtmOXdkWUdNZXZJVVFSTHZTSEFTNkQr?=
 =?utf-8?B?TzIrMjJaUnJLalFFYVRFdUxlZys5Zmh2WWlFQnlGZE80SENnMXpMU0tjUjR5?=
 =?utf-8?B?Nm9hVElnN2liZWNpeXMrSXViek9taTRzUUo3QzVNQ21LN0JiZVBHdWVtQVRl?=
 =?utf-8?B?M01ROU9rT08wVmZwZUJTd3E2aG5qclQ1QXhlVXpZUzdxUVdVeFNreFhFTWJL?=
 =?utf-8?B?aDJIU2xIMFNRVGtqZ2pnSGxBNHl2a2VMRDc2ZnZmbm1sSTFrTjkwdDB0cVlN?=
 =?utf-8?B?VWJFR3BsLzJqcWpmQ0lGTG4rNkpTV2JIdjZMSXZlemdiR3N4ZGZ4S29hZkN0?=
 =?utf-8?B?Y3hRcEw0VHZuVkw4VGVzaW90cCtZOXBwc2ZnTStWejVmZW1NMDZoSW9xaGJP?=
 =?utf-8?B?alZQNFRWbU80WVJsQmt2WUlhRDdoWm1FM2tMRjB0c2dxUllMUkpqaGZtMjl2?=
 =?utf-8?B?T0Q3cjNrOHZVYTZpWHJtdkNiYVd2TE9RQVAyc3hiTGtJOFVCWTRVUjlKVFZz?=
 =?utf-8?B?ek9Vc1ZKOFZnT1NzMGpIVHVGYStMalZVVDcwdnE3eFlkNmdDbmNseE94WUw3?=
 =?utf-8?B?enc9PQ==?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(921020);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bks5N3ZQdVhMWnFlRXpMaEJNbnVKSU1lclFFdk8vd0wrTDdzRThZWEVyOHFx?=
 =?utf-8?B?UE92OXhyZTNPeXBZZWRvSmhMVm5IQmthODEwRlJGOWhUaE9STTRwcXRldEFI?=
 =?utf-8?B?SkZIQ0x4cFlEYmY1Q2g5T05uMzZhR28yT2R1d2ErR0IrL2ZHQ3AyeE82eWZN?=
 =?utf-8?B?ajRkQ1hkaUJ5L1RmNWoySVZDWW5aR3hzU2w5RGdYM2krNEdwMmhXa1VyRmo5?=
 =?utf-8?B?bHUySEdsL2ExVHRHRjBkajIxWnVXYUo0SUxIOXFCY3NlcVg5SWZhbEFEZWt0?=
 =?utf-8?B?d0JENXZlTzZVa3pHMERqWWJndGhjdmJWMGlJSENGT2NjWEhxQVA2UWliK3dE?=
 =?utf-8?B?MS9zbXZpb3J2a2FzclRSWlRjM3o0aG5wMThYWFdqWnBpem1zTUd4Y2UyRlJL?=
 =?utf-8?B?VHZFdUxJUDM0VzE2SW9OU2RnZTV5dGI1UVBrUnlSaGQzTTRFcU9IeG1UTWV2?=
 =?utf-8?B?clltUGFyQ0lzSTMyQnhOdU1rVEVuaVpPMGkrbEYvelp3ak5UUlMveFROdDFN?=
 =?utf-8?B?QnNPZjhyUVpEelo3K1lZRlh6RHI3R0hTeUtaOEc4cStFTVp5UEVDcDlUaFFv?=
 =?utf-8?B?bE13aTdVaU5iRFFzWDduWjFNWnQ3WVI1c2tpRWNydUVSZDFKT2QvUHJlL2NX?=
 =?utf-8?B?MVBRK3hxSm5pWGdQVWFxbSsrVmxTYXhBb3pLNk1oUG9OR1ExaEJhMmZkK2lY?=
 =?utf-8?B?bjJvaDJGUSsyalNRbHlkUE5NMWZ4akQrd3k1UzI1Z1pVNEZNQWFtSkQ1bmNT?=
 =?utf-8?B?TXUvYmU3WDY3bk5oL2dxSDdBZnZVUWdCek1wci8wZkxwR1FXR1RoL2dWejY2?=
 =?utf-8?B?V3F1WWJ2YW14Q3ZFOFJlUTZSQk9paVZSMk1xaG5Jbll0NWxHNG15bHZUN2hB?=
 =?utf-8?B?ZXg1LzBXR1VuUmJ5VGJuQjBOYVFicHRRcEVBNy9ZdlNXNUJKa1pDcnVNYmRw?=
 =?utf-8?B?ODhyeCt5MmZLRlFUVFVhOXdRMFdvMnh2SkxqWGxZbTh0dTRqTkdVUFVXbXlp?=
 =?utf-8?B?bTJrMnA0YmY1enR1bnViMXJHS0RWSE5qT3JGS2RSai9zamNoNFJOcEpYaHVv?=
 =?utf-8?B?VDR2bndISTdZRXJTZHIxYnJVUElwZ1lkYkMyNC9MUGc0SFFtVUQzYzA5WVhG?=
 =?utf-8?B?MTJJMTM1OXAwM3l4dWJEN1gwS01yWVc5eWpuNVduUTBBNnRaWkZ3QytlMlhB?=
 =?utf-8?B?MFIvOUwydjZaTWZON1dITWh2NHkzMyt4ZHNZODVSZkovdzlUVHc3dTVJd2Fq?=
 =?utf-8?B?SThwcmFNcG85ZHFJUzdIb2JDR0IySlBOVFltbnduaFQ4NU5QK2ZjdFlUTDRF?=
 =?utf-8?B?MlRKb0NBaWp6NEdPQ3huZ3BqYllDd3lhRFpnTTloc2VwWWVOSkxURi9iZmVp?=
 =?utf-8?B?RWlKTUIwTFRBcGltRGR0blFWdjYwZVBmN3Mrd3ZwaWF4QVh1YWtwcGR0bTZD?=
 =?utf-8?B?Rm5GTGx1c0hNQ1BBYThQNE9JYk5rV1BHRGF6RVFUa0Q5b3Vhd3pGS1VRc205?=
 =?utf-8?B?LzdpaEZjWVU2MHl2UTAzN0NNbERyTDFSemxqMXBmTG9oYmdRTTN0WUQvb3U0?=
 =?utf-8?B?c1pnc0pHbkVsT2R3d3RjT3RGZjlkbHl2ajFNMk1Gb1ZNT244QkJqUG94V1F1?=
 =?utf-8?B?ZzRUaDNMdDZjU3lCWTJ0djhvSGxwcUlOZGpjcVF2aWYzdHc5b1JHTEtBTHdi?=
 =?utf-8?B?bFNqb04xUTdmMFdwMllhcDRSVU9yUFRlL1J1L3JHRVNRYWRKTVM1VWpaaDBE?=
 =?utf-8?B?SDErMHZLTGZ6NnJ5LzQ3eVV4aks5THRsZjZpWTM4djUxSEdUYnpOTlFmaHJt?=
 =?utf-8?B?U0RFSmFPcE1ib0cvTGhhNFY5UjNVM1BLbjVncUlqT1JIK0ZzU1ljV1NsdUd6?=
 =?utf-8?B?aVhqOWZIOUI0cGpoenB4RWQ1MUNaQWhSY09kOWFrZUViTFZ1a3EwV01xVjc1?=
 =?utf-8?B?UUZ1TWpQK1lHeDdadzVTMG5LRXZreEhCZkE4NS9ub2E1K1BzVkh6U21rbGV5?=
 =?utf-8?B?dFRTWWYyR3VYVDZXOXVZN3ZrMDVINHR5WHJxT0pmUXVQT05UQWZ2bDRUcHh0?=
 =?utf-8?B?MUo2djBPTDlOWUtJWTlSWGlGKzU3U1VSRmRpa09KM01WaVZ0NUxwblpDYThs?=
 =?utf-8?B?ajlYbjEwdGJRdGo5bU5NSlNjRTZ4dFdKRk90YnpWeVlEd3dHWUNQR21JQWoz?=
 =?utf-8?B?MlVLMTlCL3BhdjNvUlFuazBvWE00dzNVRW5IQ1FYbnBLSi84T2RXS255Mkd5?=
 =?utf-8?B?UCtjWjBIZkdQY3QyOUJsVmZhTGtyOEI0VXBIRzloU0IrclhWOHNrU2hneSs2?=
 =?utf-8?B?cWQvQis3bHB5T2JpM215WnBtYUZpTytuYVpVYUphOWZRaXg4YjlWZz09?=
X-OriginatorOrg: siemens.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 65549c61-fc37-4108-c9ef-08de62621886
X-MS-Exchange-CrossTenant-AuthSource: AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 13:50:59.3310
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Z1T6xcS+yFPWwMhyV7E89b40MzeUNoePMqGD3p3/tkoRyhlgM4UirFDK23/RvtEPJtLOuVIPgoocK+hP+sz8xA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR10MB9380

On 02.02.26 13:12, Andrew Cooper wrote:
> On 02/02/2026 11:54 am, Jan Kiszka wrote:
>> On 02.02.26 12:35, Andrew Cooper wrote:
>>> On 02/02/2026 9:51 am, Shashank Balaji wrote:
>>>> Interrupt remapping is an architectural dependency of x2apic, which is already
>>>> enabled in the defconfig.
>>> There is no such dependency.  VMs for example commonly have x2APIC and
>>> no IOMMU, and even native system with fewer than 254 CPUs does not need
>>> interrupt remapping for IO-APIC interrupts to function correctly.
>>>
>> It is theoretically possible with less than 254 CPUs, and that is why
>> virtualization uses it, but the Intel SDM clearly states:
>>
>> "Routing of device interrupts to local APIC units operating in x2APIC
>> mode requires use of the interrupt-remapping architecture specified in
>> the Intel® Virtualization Technology for Directed I/O (Revision 1.3
>> and/or later versions)."
> 
> This statement is misleading and has been argued over before.  It's
> missing the key word "all".
> 
> What IR gets you in this case is the ability to target CPU 255 and higher.
> 
> The OS-side access mechanism (xAPIC MMIO vs x2APIC MSRs) has no baring
> on how external interrupts are handled in the fabric.
> 
> There are plenty of good reasons to have Interrupt Remapping enabled
> when available, but it is not a hard requirement architecturally.
> 

If that is true, then this patch is the wrong one to blame because it
only reacts on existing kernel logic and repeats the arguments that are
in the code and even provided to kernel users. If you have hard proof
that the existing code is wrong (some confirmation from Intel folks
would be "nice" I guess), then propose a patch to change that logic.

Jan

-- 
Siemens AG, Foundational Technologies
Linux Expert Center


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 13:57:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 13:57:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218617.1527444 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmuQp-0006yJ-0I; Mon, 02 Feb 2026 13:57:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218617.1527444; Mon, 02 Feb 2026 13: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 1vmuQo-0006yC-Tb; Mon, 02 Feb 2026 13:57:34 +0000
Received: by outflank-mailman (input) for mailman id 1218617;
 Mon, 02 Feb 2026 13:57: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmuQo-0006y6-7H
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 13:57:34 +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 1ad763a2-003f-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 14:57:26 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4359a16a400so3829997f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 05:57:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e13235f5sm42457470f8f.29.2026.02.02.05.57.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 05:57:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ad763a2-003f-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770040645; x=1770645445; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AE1xWfkKiZX99dXiKH7FfQkl60/YS8V6h2+dOFnsg6s=;
        b=YPqTpEZ7bsRq+nN/jKeeXS3ZPl5Uwo+WHtAOhL/kt4WbulQONYywft188P538ktgj/
         mDQfXl8y6GY3VbcmYStLdrd3UbRg7Otv1zPED3PDebuzxJ77rTKCUGtngjv25Zz1CX5i
         vB05dLu7qWQFhDEZWfBueo6HgcWGuuom7E/x2geLgQEWXN1x+u224QdsENgcjoatrp15
         aID4uxo79zLqLEE06LZCOJv687Tn5lW+jkWxmgklLSaq7c5SEbTT24vhiVFJiYSe7MOL
         aGTFFr1kMOFanTOrpeKYTkvn+79iiT/geUa28iM+G1h3ueRo3Of/zeMrG0GsZqBvqSUk
         DJQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770040645; x=1770645445;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AE1xWfkKiZX99dXiKH7FfQkl60/YS8V6h2+dOFnsg6s=;
        b=ax1HdhZWdJHgajUBnh+rgvAr+GhPzYvFhMvy2Yydy3wvQRJhGLSflT3h6Li0bZ5FEI
         ISeqKkOlUx5DhtPzo2wroOZ+FDaMO9UNa23TQ5Zj2Np/iffuYhCurG7HVSk4qUietj/Y
         g+zsXVDQYoM+jC+Df/La/EX7myYF98u1/ceyK7kEucunPMOWw9Hn4OftvwqYbJ/tUcw5
         qWUHlx7CmCH+LGxTFipgVSeUjejmdHIpHoJHLHLVR9yMd4BYON+0wQoS9dtoUm903u7o
         hGnMDv52eLd5o/EWTsqMcREiDvDNB8XSyiW3noYD8o5pXDuAIJCad7SSIxdJM22avPtx
         BWfg==
X-Forwarded-Encrypted: i=1; AJvYcCXuXx8MdxHM22jEq6HXovHd2iKYUYgumfWMdXzenobPRwZOjI+VksT/XB2pKTjThJeOQaLtgEX2sf0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz0wbWSAc5OXlGwzMHdrF8IBaND784E8auaxe76yjHKRbi+zBqv
	3VV908W+KEJBvae09VOO1HDxH6wbYE5nDi05FhUKcY+H1q/5KaOHZzdJ+XZwU4567A==
X-Gm-Gg: AZuq6aIBTaF7TNs+gyj9ux8YpA5MxOvyydSgUrMTMwuLFoQzFkN1BLn7eOFSWd2GEvf
	KO1KfRUNzSqZ+uCPU07WaPEKHcZHwjTMrxp9vhL53RRYlXmSbbvK6gH/N2X77IWjs+fbibsO8Ca
	tidUF8sgrOH1bRAuZiFAIvNuvfJ6hwQytiHR5B4EwvKmnvFwdcU6FfvXwppYa7SIx0DmBmMEjho
	2gcCAhZjP0hkhlbJPBKE6PY1krMJAeVCTIS4RI6o/3nE+PYSV88cX8xthaQhhQAn6eXdkve+ixV
	EUCc3zD3argbRGsUztp7Rr/RZDo9jJo39RFv0D66KlyPHDN/VefowCZqHxyULw1JMICoc8GkMyN
	nSFPXRvMhLZ87OiiZD/tvlucvpkQpntAaqrk1BAAO3ED2eoTxgbJHr+F1DTuoi3Og1vTu0gJfVw
	JIGpCzTOKbBGqcsTYTa+bQStYNS7uPvhpaDy8xwfHF5E1DmA09kYna+Bz7J4DHYR2Fs5cHLrWgn
	3fgmHQE5EZkLg==
X-Received: by 2002:a5d:584d:0:b0:435:a2f8:1533 with SMTP id ffacd0b85a97d-435f3abc7ccmr17742596f8f.52.1770040645238;
        Mon, 02 Feb 2026 05:57:25 -0800 (PST)
Message-ID: <57dca154-5ef9-4c03-bd88-fe5e20d7cc2a@suse.com>
Date: Mon, 2 Feb 2026 14:57:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 0/3] RISC-V: p2m context switch
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <cover.1770036584.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.02.2026 13:57, Oleksii Kurochko wrote:
> Introduce functions required to perform a p2m context switch during a vCPU
> context switch.
> 
> This patch series originally depended on a single patch (Patch 1) from [1].
> To avoid introducing a dependency on the larger patch series [1],
> that patch was cherry-picked into the current series, since it is the
> only true dependency.

But its versioning is now broken. A v2 of that was already posted, and now
we have a (newer) v1, with a revision log claiming it's v3.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 14:09:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 14:09:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218626.1527455 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmubt-0000PB-4O; Mon, 02 Feb 2026 14:09:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218626.1527455; Mon, 02 Feb 2026 14: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 1vmubt-0000P4-07; Mon, 02 Feb 2026 14:09:01 +0000
Received: by outflank-mailman (input) for mailman id 1218626;
 Mon, 02 Feb 2026 14: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmubr-0000Oy-Rm
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 14:08:59 +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 b74d5b68-0040-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 15:08:58 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4806cc07ce7so45693615e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 06:08:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4806ce5ec6bsm427320845e9.15.2026.02.02.06.08.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 06:08:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b74d5b68-0040-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770041337; x=1770646137; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zIzpfAWCZzwXm/2pev8nwmeXwYp9xljjpfFbYKNDb1s=;
        b=IzEYOtE1HU4hK9aJhHgTAP8YnCcBG3S0rQofh4/FezXIC1GoDkr1OQtncCkMCkkGYN
         oTM/otJX9AYvTPhemC2YG1yAWgaWQBbDLq3O1INAxm4TlbipBi1bSg8B68gZTiyyOHmW
         ggl5ZW3Po3qw4mEARO9kpjKPxrghmEICPG5fBpJLmoqozXk3YRtI0L9n4ZS5Hq6N6NZB
         0go3HyI21jSrc1ONRviauSlWJ4gibUBt9Ybaqjr8qGnZdP7MfW/9C6Sp2uUFzn+bVg6l
         8cFc8iQ9va8nW9RWfX55KXBwEoz9bB3xZhl26/kqDBNZYLvPdYs0dtb7bMpSl29F+ECm
         rp/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770041337; x=1770646137;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zIzpfAWCZzwXm/2pev8nwmeXwYp9xljjpfFbYKNDb1s=;
        b=G4hoX/LV2k8ANnzqNgh1WYGc97BmznwxwcjeTQisfuVKL/gtIXfVLWwKibU8iSVwh9
         Zz0/UyDUQaKC1lq+ld0V2nzXrBuT6IUq8nxcyRoVzOPKp7Mb8h+mgB61+K12gqA0+Xbs
         9myV76aNf2wpOF1ATl2leFf0CcTpCJtrsVE9BOUCk9lJl45O3DEzJ8z66/3B2bqdE71a
         gy1C0DZs3PcTvpjG8ndVpRcFSP/+9qzqjFzfwS8a7ORO62/gO89bj0YeMD8xQ81WtndJ
         H1FFA6ZZ8SJdWpaeeR/2drCYHxQGCVwPjEgK4NLBjvE7swWu3jq+uIPTG7db889qLpcK
         YoiQ==
X-Forwarded-Encrypted: i=1; AJvYcCUcR+UGhlpuaTJXBNgp3PCOGTXI7wP1pJmjsvZU6sH92RQV3obGsmc5YHfW+GcG7ecHd8B69nBEwc4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyopvdRou2JzS+outdpDDzeL5KbXqMlMv9fmQWEJhLdCTfGJJwj
	RsButyJzcAIhj/uCo2kzlvQcoFUCef+OFK3rvj3taaY3HJGUPtEhuvjoGj3zhIWTRw==
X-Gm-Gg: AZuq6aIe76c1EGQfc+eVUKDNQK2x9g53/gHhmS0526t+aIVbTjyBJ6AAk7XEfzONopZ
	+Ke3frGWm2PuFeA4rfyIXs+9NjdrHtpIEmvStxwdTknbh0unas59YZ24H7WMd8/0dJDPeVdcAsK
	VYDPbrVKhRW+Ml0BrzhdeerucfG4RtWCprgY0nAJ+XdWl5xXgENlKLn7uMjw8oDWlwjn98S5F+O
	+K6s/5Ap9GxfFAGDGTMoRN6dSakSPuy9fuLGIpssM67AWCioYnTmJFESCTVelLqfdgkXsl15mlj
	w51HJhaekKs0CSPpGCABqmGp51dNz6DjVoI2z926NliCguHvzcfYyjHVmz28NY75cQZ6iu/j7Xk
	J50NnhN4pFrhrK/C9SKVZRr262n9LcZaPq16Ei6Q67m/T+NcR2oJCFYMdlCV9XaUq74xyVXcmmb
	lXvpSMrcysIy77EIJCpp2z/ktzhuVlUqHZ3UqHIHfzKu4X26vLHeF3Ev4JYXH4ss85XCT54jlo8
	UU=
X-Received: by 2002:a05:600c:c04b:10b0:482:eec4:74c with SMTP id 5b1f17b1804b1-482eec4094fmr74784075e9.22.1770041337371;
        Mon, 02 Feb 2026 06:08:57 -0800 (PST)
Message-ID: <f0773662-808c-44d2-b4c7-8858fb8d365c@suse.com>
Date: Mon, 2 Feb 2026 15:08:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: introduce struct arch_vcpu
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <98214488c67fac866ba519c368aef697da2d2bb6.1770036584.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: <98214488c67fac866ba519c368aef697da2d2bb6.1770036584.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.02.2026 13:57, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/domain.h
> +++ b/xen/arch/riscv/include/asm/domain.h
> @@ -24,6 +24,55 @@ struct arch_vcpu_io {
>  
>  struct arch_vcpu {
>      struct vcpu_vmid vmid;

Nit: This being already here contradicts the title saying "introduce".

> +
> +    /*
> +     * Callee saved registers for Xen's state used to switch from
> +     * prev's stack to the next's stack during context switch.
> +     */
> +    struct
> +    {
> +        register_t s0;
> +        register_t s1;
> +        register_t s2;
> +        register_t s3;
> +        register_t s4;
> +        register_t s5;
> +        register_t s6;
> +        register_t s7;
> +        register_t s8;
> +        register_t s9;
> +        register_t s10;
> +        register_t s11;
> +        register_t sp;
> +        register_t ra;
> +    } xen_saved_context;
> +
> +    register_t hedeleg;
> +    register_t hideleg;
> +    register_t hvip;
> +    register_t hip;
> +    register_t hie;
> +    register_t hgeie;
> +    register_t henvcfg;
> +    register_t hcounteren;
> +    register_t htimedelta;
> +    register_t htval;
> +    register_t htinst;
> +    register_t hstateen0;
> +#ifdef CONFIG_RISCV_32
> +    register_t henvcfgh;
> +    register_t htimedeltah;
> +#endif

When you add these right away, any reason other high-half registers aren't added
as well? HVIP (above) and VSIE / VSIP at the very least have such counterparts,
iirc.

> +    register_t vsstatus;
> +    register_t vsip;
> +    register_t vsie;
> +    register_t vstvec;
> +    register_t vsscratch;
> +    register_t vscause;
> +    register_t vstval;
> +    register_t vsatp;
> +    register_t vsepc;
>  };

What I'm generally concerned of: With the registers all being put here in one go,
without any of them actually being used in this patch, it'll likely be harder to
track that they're saved / restored / initialized correctly (once uses appear).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 14:23:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 14:23:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218633.1527464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmupO-00035p-86; Mon, 02 Feb 2026 14:22:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218633.1527464; Mon, 02 Feb 2026 14: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 1vmupO-00035i-5F; Mon, 02 Feb 2026 14:22:58 +0000
Received: by outflank-mailman (input) for mailman id 1218633;
 Mon, 02 Feb 2026 14:22: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmupM-00035c-Q2
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 14:22:56 +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 a8d2f27f-0042-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 15:22:52 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-4359a16a400so3853986f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 06:22:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e10e474csm43294582f8f.2.2026.02.02.06.22.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 06:22:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8d2f27f-0042-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770042172; x=1770646972; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2guHdJFxNY0c1h5JXqoBhWLu2lbOHjLFLXYa/YJFo5o=;
        b=MDEKDsoMNwz/tRBE/xZfO1IPGJBoRZBh3L7QERK8KwXDIIufSlm12Q2u9mLYvkfA/W
         Eh0M8Zs+Et7wtIYEVxibEejSlnEZqBXmBE4CdMoW6atKbjGJfOKKs5MtAqROvrKVuSsN
         TwWd5n75Z6F7/3KuhBJHaacurB+9QiFatrU8cXuklopjBzjRU/DCO/+6tt4irQyx9sOT
         hZC4IgISmpI6g29yK8fYlrKrHwivVIS/3ds1HV81dngrX2cf91oCVoAtZQovziKNQgab
         xUQ4eV/+UF2a4TXoYc6W3KVmP9E2rdI2BHCKXaFJJF1JHkVSrVpvKv53QMDsN3kX2vkF
         c4dA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770042172; x=1770646972;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2guHdJFxNY0c1h5JXqoBhWLu2lbOHjLFLXYa/YJFo5o=;
        b=bsKLeR/gn+jvV2NnmCkb9kJjkmqBVWLleQGiUW7hfxJXqibz3gICRLOzD3Yd4Bm8wj
         +yxHa+D1u1bkFBuF4G91PpTqLcrFDguS5TFh0gSpxaTktVz1uq82i3RxyT0wzm40w4XP
         97BPZrUmPSvAo0XObvITFWmCVy8SGUnP9nMo4lrkw2/CjEJE8xbsq2eYj9oJaJoAlZGp
         e1MwV2UPb8j1Omj2z6idonXUbJ5M5PFf5GKzRBeRJK81DinDQaZTo9dQnBwI2cD8bhbp
         I7kT5zGGrjz/71vejCIllXQgTpWLjAe0lDK4mh777fl/v9MIcNrno07cZE9HAvXg5QuG
         OHiw==
X-Forwarded-Encrypted: i=1; AJvYcCW7hjaUN5V1EhdIrjxg/AVDsgSVKpclzDKuexU2dkTqvxWNaneHPlqjSFSYd3rhx7+Hb7pqUXJxu/c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDH8yiVgHNbBbXhOUhMfFK2G9FO0ze9o+eB7VRjykwb32T6OMH
	IUZ+xhEB8vlJYHh059Mg/+yP9u66Vdzi7x8bmJIC1CMu/1l+eYoBM0+c5CN58nwk8g==
X-Gm-Gg: AZuq6aJ1mdf7NuVovzfu9B05qqp7hVRQFi6GiPRxOrSYa2Xb1RcbMveQkCoeR7dR+mV
	+Hl7J81E+bsChuyObslCa/ijtxO7mBIMOmCwlnj8BjfJWGDBUuBJgi+Emnm5KUmpPVD2MUNxQsl
	hY8btEO5G93iHwrH3wcRSOoapIVH2zPxFEfYsokvQ5RxDpsuhXl7PiV64XS8oYyh6A9daticzg3
	nUieSspG4EZgSaOtSIulHvz9GAK1B4nXrXixgd87HYbBUgtPf7uFHcLQgiNxUCGUdWicHqhxp/8
	zdagS+jPaOFF5K7LRsoh56gdrVAjJGlsJmywwEI4Lg84cLymaKTwcgV08//cvvvhIRZbIUyYvci
	pNC4wZIHPEBNONkJeCQl+SlLa+JfTXxIgg2hdtRj0YGf1tSN7Hk6MB50kLViBLrvz9dmmVMkmSQ
	yvuJbjRKw+T3dYK44um7aqgilMprGxrd2tA9EcHRm5P6lLnA32XJn2mO1EG2r131Rde4nsLAbv4
	WQ=
X-Received: by 2002:a05:6000:40c9:b0:430:fd84:315a with SMTP id ffacd0b85a97d-435f3ab26ecmr16829766f8f.39.1770042171963;
        Mon, 02 Feb 2026 06:22:51 -0800 (PST)
Message-ID: <6d58fd59-000f-48b8-85de-07065c82c275@suse.com>
Date: Mon, 2 Feb 2026 15:22:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 2
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <58a7723ec48d84b91fd4730fe3ae653f55a0fd99.1769099885.git.oleksii.kurochko@gmail.com>
 <1bd0726d-20d8-4506-bb8e-849fd8b091a7@suse.com>
 <5fd2bbce-7d27-4f54-8eed-5bee0d2a6dd2@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: <5fd2bbce-7d27-4f54-8eed-5bee0d2a6dd2@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.02.2026 11:50, Oleksii Kurochko wrote:
> On 1/29/26 6:01 PM, Jan Beulich wrote:
>> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>>> This patch is based on Linux kernel 6.16.0.
>>> +void vcpu_sync_interrupts(struct vcpu *v)
>>> +{
>>> +    unsigned long hvip;
>>> +
>>> +    /* Read current HVIP and VSIE CSRs */
>>> +    v->arch.vsie = csr_read(CSR_VSIE);
>>> +
>>> +    /* Sync-up HVIP.VSSIP bit changes does by Guest */
>> Nit: s/does/done/ ?
>>
>>> +    hvip = csr_read(CSR_HVIP);
>>> +    if ( (v->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL) )
>>> +    {
>>> +        if ( !test_and_set_bit(IRQ_VS_SOFT,
>>> +                               &v->arch.irqs_pending_mask) )
>> Why two separate, nested if()s?
> 
> Do you mean that it could be:
>    if ( !test_and_set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending_mask) && (hvip & BIT(IRQ_VS_SOFT, UL))
> ?

That's combining with the if() ...

>>> +        {
>>> +            if ( hvip & BIT(IRQ_VS_SOFT, UL) )

... down here, which - ...

>>> +                set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
>>> +            else

... having an "else" - can't be folded like this, I think. I meant the two
if()s immediately ahead of my remark.

>>> +                clear_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
>>> +        }
>> In the previous patch you set forth strict ordering rules, with a barrier in
>> the middle. All of this is violated here.
> 
> It still respects the rule that the producer (|vcpu_sync_interrupts()| which
> should be in the producer path) never clears the mask and only writes to
> |irqs_pending| if it is the one that flipped the corresponding mask bit from 0
> to 1.
> 
> Considering that the consumer cannot be called concurrently in this case
> (since|vcpu_flush_interrupts()| and|vcpu_sync_interrupts()| are only invoked
> sequentially in|check_for_pcpu_work()|, as mentioned above), nothing can
> clear a bit in the mask in between. Therefore, I think it is acceptable to
> slightly bend (and it should be explained in the comment above the
> function or in the commit message) the rule that the|irqs_pending| bit must
> be written first, followed by updating the corresponding bit in
> |irqs_pending_mask() specifically for |vcpu_sync_interrupts().

With suitable commenting - yes.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 14:40:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 14:40:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218641.1527474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmv6Y-0005wc-KA; Mon, 02 Feb 2026 14:40:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218641.1527474; Mon, 02 Feb 2026 14: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 1vmv6Y-0005wV-HD; Mon, 02 Feb 2026 14:40:42 +0000
Received: by outflank-mailman (input) for mailman id 1218641;
 Mon, 02 Feb 2026 14: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmv6X-0005wP-KM
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 14:40:41 +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 24e427d0-0045-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 15:40:39 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-43246af170aso2853196f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 06:40:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e132303fsm44845102f8f.36.2026.02.02.06.40.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 06:40:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24e427d0-0045-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770043239; x=1770648039; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rjC1EX9KJVnb1S6fp61ezW5tAb3mjW3MwuVKqZW2MR4=;
        b=Wt/12f7xJAmUnu02KWjMIhFwmG+D8ZbFJvoXpLFbXFBggL5jsqPgL2zRC5MnZ9LGIi
         0nvyoifdHkI9b3AmWwSVVhsPouoG3wLELLalQmXPnmAO7FbJe6mJPjsCNcJpHASXvlaR
         Xz9+ZIwu78BMBrzfE5PCKlDfcfVMn0Vn7v+T4ZQkTTV6TVVKt6cwPkGUou4bxsPAPgxR
         Hwc2/3A2BPVyjzXQ0yFK9JqoeUZuCchTfuC6rG5NhqSBPPTUpZVafjpuCdFMm5ZFCTql
         r1VAr+nWb4PCvcvx50+CqCvS+2YaTVFWn5yG5Kq41bRPqDig8ct6zr22Slg/jBNojVhf
         aDAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770043239; x=1770648039;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rjC1EX9KJVnb1S6fp61ezW5tAb3mjW3MwuVKqZW2MR4=;
        b=EjgMqWt+EdrLPcOiSLVNsSzoI0eTYTIb9f5kyI2sXAdQt4WdK1RRzmNxXYMBta9wnZ
         1YcAdjBQ6XXK0Kw4vliiRB0NjfaYfNH/alWbl/GBC75Ug/9fzX7ozg5qJvw4DtqutjqR
         8r44mTPp2XDGFj+CMOAKAyjYoDsCauDQ4xrPR+Bq892hEe8MiGogKnnaBn6/2eCX6u2+
         KGA3GT4Cqs7srPJ+JTT3q6gXkjueZb74htOlLTmp6HPcFJxKZ9LUsX4Cy2cGN1lfoxwP
         77kltlcjdX7UnT0XeP5eDP2lOzidP23p66au93Kn2jeoZS83RoO06ZN4QvfJcL8HImqb
         kkqw==
X-Gm-Message-State: AOJu0YzSQ0WmX8jgfs9FamFArcNZpDmDngKn676K/XB5453rI3ITKL0O
	q/lbjuRpiv6HYuTsc0NTBNp26cPIraWlCbGXplrbgC2honNNIXio4DcBWuNkNSpiVw==
X-Gm-Gg: AZuq6aLHxoW8/l7YODN5+/gqtQcrYhIf8lzukcYHHFwkmNJLK1Timrp5lDnYX2G07JM
	13+AQdXQFvjGSmOdNZJlIdBZVAY0yNMN0EbtateRPiek0J7btUQAXikBffZYVdMDw9mzB+WaHp0
	aGAmD9KSV/1FJWTJ8ngsmP/B+IJvrlH0v7ypbK/b3E8UnKoMRcNFqJnxwJ3NxwJSxpt3TLWfQSD
	aphonPXYZTAC/s1dx4zfNJN3wujasGirF/ANBKByKzdCUpaE9G3uC14NZ6D/kKinRz/m3wUCvpN
	eR97+l36XgKY/m3I7yqFmdFBS+Q2MPMmVrTfL1zbp2xFSMBVQSkwhWhyKc0UJCC5cqcs4OBO0DL
	dnmSNxbnoh/Vm7wrxHtO1RVuhbX8Sam+DTMHo7kk/7VIq3vuREUW0xjv8wVlZFPa+wU6gBWqH/h
	IM2i9r+ibHQy3ZHKyQ+MYV6LjfeNxgcy2aMqoa0A7ikFA9Jg773AFI0NPVSG6WTM7IxT75DvzNO
	z8=
X-Received: by 2002:a05:6000:2906:b0:435:db93:7311 with SMTP id ffacd0b85a97d-435ea0f4231mr23442604f8f.18.1770043239100;
        Mon, 02 Feb 2026 06:40:39 -0800 (PST)
Message-ID: <da490e92-c8b1-40b3-83ca-ad77dc2defe8@suse.com>
Date: Mon, 2 Feb 2026 15:40:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
 <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com> <aYBq2EoeP_TGv_sK@Mac.lan>
 <1bcdd2dd-9b2b-4eb2-a569-e28b03c1e1fb@suse.com> <aYB4z8CSA590Ytpo@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: <aYB4z8CSA590Ytpo@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.02.2026 11:13, Roger Pau Monné wrote:
> On Mon, Feb 02, 2026 at 10:30:29AM +0100, Jan Beulich wrote:
>> On 02.02.2026 10:14, Roger Pau Monné wrote:
>>> On Mon, Feb 02, 2026 at 09:51:18AM +0100, Jan Beulich wrote:
>>>> On 29.01.2026 14:10, Jan Beulich wrote:
>>>>> @@ -160,10 +161,13 @@ int pci_mmcfg_arch_enable(unsigned int i
>>>>>      return 0;
>>>>>  }
>>>>>  
>>>>> -void pci_mmcfg_arch_disable(unsigned int idx)
>>>>> +int pci_mmcfg_arch_disable(unsigned int idx)
>>>>>  {
>>>>>      const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
>>>>>  
>>>>> +    if ( !pci_mmcfg_virt[idx].virt )
>>>>> +        return 1;
>>>>
>>>> Afaict this is what causes CI (adl-*) to say no here:
>>>>
>>>> (XEN) [    4.132689] PCI: Using MCFG for segment 0000 bus 00-ff
>>>> (XEN) [    4.132697] ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
>>>> (XEN) [    4.132700] CPU:    12
>>>> (XEN) [    4.132702] RIP:    e008:[<ffff82d0405779bd>] pci_mmcfg_read+0x19e/0x1c7
>>>> (XEN) [    4.132708] RFLAGS: 0000000000010286   CONTEXT: hypervisor (d0v0)
>>>> (XEN) [    4.132711] rax: 0000000000300000   rbx: ffff808000300100   rcx: 0000000000000000
>>>> (XEN) [    4.132714] rdx: ffff808000300100   rsi: 0000000000000000   rdi: ffff8304959ffcec
>>>> (XEN) [    4.132716] rbp: ffff8304959ffd18   rsp: ffff8304959ffce8   r8:  0000000000000004
>>>> (XEN) [    4.132718] r9:  ffff8304959ffd2c   r10: 0000000000000000   r11: 0000000000000000
>>>> (XEN) [    4.132720] r12: 0000000000000100   r13: 0000000000000004   r14: ffff8304959ffd2c
>>>> (XEN) [    4.132723] r15: ffff808000000000   cr0: 0000000080050033   cr4: 0000000000b526e0
>>>> (XEN) [    4.132725] cr3: 0000000492a30000   cr2: ffff808000300100
>>>> (XEN) [    4.132727] fsb: 0000000000000000   gsb: ffff8881b9a00000   gss: 0000000000000000
>>>> (XEN) [    4.132729] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
>>>> (XEN) [    4.132733] Xen code around <ffff82d0405779bd> (pci_mmcfg_read+0x19e/0x1c7):
>>>> (XEN) [    4.132734]  48 39 d3 72 ea 4c 01 e3 <8b> 03 89 c3 4d 85 f6 74 0d 41 89 1e b8 00 00 00
>>>> (XEN) [    4.132744] Xen stack trace from rsp=ffff8304959ffce8:
>>>> (XEN) [    4.132745]    0000000300000286 ffff830495bd8010 0000000000000003 ffff830495bd8010
>>>> (XEN) [    4.132749]    ffff8304959ffdd0 ffff82d0405fa7ef ffff8304959ffd30 ffff82d040576877
>>>> (XEN) [    4.132753]    000000000000000c ffff8304959ffd58 ffff82d04039b81d ffff8304959ffe28
>>>> (XEN) [    4.132756]    0000000000000003 ffff830495bd8010 ffff8304959ffd80 ffff82d0405fa90b
>>>> (XEN) [    4.132760]    ffff8304959ffdc8 ffff830495bd8010 ffff830498019650 ffff8304959ffdb8
>>>> (XEN) [    4.132764]    ffff82d0403983e0 ffff830498019650 ffff8304959ffe28 ffff82d0405fa7ef
>>>> (XEN) [    4.132767]    0000000000000018 ffffc9004002b900 ffff8304959ffdf8 ffff82d04039feba
>>>> (XEN) [    4.132771]    ffff82d0405fa7ef ffff8304959ffe28 0000000000000000 ffffc9004002b900
>>>> (XEN) [    4.132774]    0000000000000000 ffff8304959bb000 ffff8304959ffe78 ffff82d0405ff666
>>>> (XEN) [    4.132778]    ffff82d0405713b8 00000000ffffffff 00a0fb0081f456e0 ffff8304959b3010
>>>> (XEN) [    4.132782]    00000000c0000000 00000001ff000000 ffff8304959fff08 0000000000000040
>>>> (XEN) [    4.132785]    000000ec00000001 ffff8304959fff08 ffff8304959a4000 0000000000000021
>>>> (XEN) [    4.132789]    0000000000000000 ffffc9004002b900 ffff8304959ffef8 ffff82d0405711b2
>>>> (XEN) [    4.132792]    0000000000000000 ffff888100456938 ffff8881001470b8 0000000000000018
>>>> (XEN) [    4.132795]    0000000000000000 ffff8304959ffef8 ffff82d0406213f9 ffff8304959a4000
>>>> (XEN) [    4.132799]    0000000000000000 ffff8304959a4000 0000000000000000 0000000000000000
>>>> (XEN) [    4.132802]    ffff8304959fffff 0000000000000000 00007cfb6a6000d7 ffff82d0402012d3
>>>> (XEN) [    4.132806]    0000000000000000 00000000ffffffff ffff8881001470b8 ffff888100b88900
>>>> (XEN) [    4.132809]    ffffc9004002b900 ffff8881001470b8 0000000000000283 ffff888100456938
>>>> (XEN) [    4.132813]    ffff888100065410 0000000000000000 0000000000000021 ffffffff81f7842a
>>>> (XEN) [    4.132816] Xen call trace:
>>>> (XEN) [    4.132819]    [<ffff82d0405779bd>] R pci_mmcfg_read+0x19e/0x1c7
>>>> (XEN) [    4.132822]    [<ffff82d040576877>] F pci_conf_read32+0x55/0x5e
>>>> (XEN) [    4.132826]    [<ffff82d04039b81d>] F pci_check_extcfg+0xb1/0x13b
>>>> (XEN) [    4.132831]    [<ffff82d0405fa90b>] F physdev_check_pci_extcfg+0x11c/0x121
>>>> (XEN) [    4.132833]    [<ffff82d0403983e0>] F drivers/passthrough/pci.c#iterate_all+0xa2/0xe2
>>>> (XEN) [    4.132836]    [<ffff82d04039feba>] F pci_segment_iterate+0x4e/0x74
>>>> (XEN) [    4.132839]    [<ffff82d0405ff666>] F do_physdev_op+0x362a/0x4161
>>>> (XEN) [    4.132842]    [<ffff82d0405711b2>] F pv_hypercall+0x6be/0x838
>>>> (XEN) [    4.132845]    [<ffff82d0402012d3>] F lstar_enter+0x143/0x148
>>>> (XEN) [    4.132847] 
>>>> (XEN) [    4.132848] Pagetable walk from ffff808000300100:
>>>> (XEN) [    4.132851]  L4[0x101] = 0000000000000000 ffffffffffffffff
>>>>
>>>> There is an important comment in pci_mmcfg_arch_disable():
>>>>
>>>>     /*
>>>>      * Don't use destroy_xen_mappings() here, or make sure that at least
>>>>      * the necessary L4 entries get populated (so that they get properly
>>>>      * propagated to guest domains' page tables).
>>>>      */
>>>>
>>>> Hence it is wrong to bypass
>>>>
>>>>     mcfg_ioremap(cfg, idx, 0);
>>>
>>> Hm, I see.  The L4 slot must be unconditionally populated before we
>>> clone the idle page-table, otherwise the mappings won't propagate.
>>>
>>> What about unconditionally populating the L4 slot in
>>> subarch_init_memory()?  That seems less fragile than doing it in
>>> pci_mmcfg_arch_disable().
>>
>> Less fragile - perhaps. Yet I don't see why we should populate the field if
>> we wouldn't ever need it. Of course with violating layering some, we could
>> know in subarch_init_memory(), as pci_setup() runs earlier.
> 
> How can Xen be sure at setup time that the slot will never be used?
> The MMCFG could be empty initially when parsed by Xen, but MMCFG
> regions might appear as a result of AML method execution (_CBA and
> _CRS methods in hotplug host bridges).

Their usability may change, but how many of them there are (going to be) we
need to know at boot time. See how pci_mmcfg_config_num, pci_mmcfg_config[],
and pci_mmcfg_virt[] are initialized (all by __init functions). If regions
could truly appear "out of the blue", we'd have a bigger problem.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 14:43:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 14:43:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218649.1527484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmv8u-0006VW-2O; Mon, 02 Feb 2026 14:43:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218649.1527484; Mon, 02 Feb 2026 14: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 1vmv8t-0006VP-Vq; Mon, 02 Feb 2026 14:43:07 +0000
Received: by outflank-mailman (input) for mailman id 1218649;
 Mon, 02 Feb 2026 14:43: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmv8s-0006VJ-WD
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 14:43: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 7bcc2db1-0045-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 15:43:05 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-480142406b3so33520685e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 06:43:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482f748a9b8sm126634195e9.8.2026.02.02.06.43.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 06:43:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7bcc2db1-0045-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770043385; x=1770648185; 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=1ZujxPggRInMxlIdEnZPiAkfac72H5gL48apRNHkCVI=;
        b=abwf2LaXgD8WmIyeh7OgCPTrc0y7QQoH1v69lzq1PUxPLhl9f3uR1es2arrPKQ78B2
         dcwXFSSQxPaTvAwEVu+ugpC0sqvTNJaxzvzSnPducxL8lF2TOnZFJRBv+sdYqtFZc0Cx
         LMPtrg290yWuge90lv8vxuWxY/ClFAOR3ZrqDGOrC7FFn2/8emvUXvBoieBPKNLbRBTo
         crWqtleD86nbhLhUg+Jrqcfi6b7rL52icnRf8pMEx2L3H29WLC/kg8Mo/fe9naJZS3hK
         Fru/ao9u+73TC9ctXHdQHq5JudtCiNM4j9Ker2u/lKfs0Sqg4TpkhZayI/34WwYnonSL
         DCIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770043385; x=1770648185;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=1ZujxPggRInMxlIdEnZPiAkfac72H5gL48apRNHkCVI=;
        b=orQQ2Wufz7N4Sa3Olv5Big6PDJmzmfEyZ/wDdURLrRY3HbD7OYduDu4XEQB7MBt6JL
         Fg3ND6w1aDwil8i8Spm8JxfKybYH3UFqniRrHv3MNt+p5NJ4HH0lU5IlTANqRT/01B+o
         oXHzf+jZIbar/GNl1q5jld72M38zoJHP4YQ0GLM5OAwTdPernkjdzuxdxK+OrPbxRFzh
         s+dCZwYgQTPATY1IAibvg/vg49b2JoU3Gz0733f+YIBs0u1bMR17VtotxVkIHuiRR4ql
         G2xzTPjlu5ELFn9hHSx/khPKXF+Wyp6oxE7I6q/yLJug9vgzBRUNKcrIZJrf0SFzRVgN
         ECtA==
X-Gm-Message-State: AOJu0Yx3JGxdjzZJUe4aTbq7TrlEEpz7JwDgX9T0Q0+0qyTc84+A+yhh
	w6u1QK+pOno9GPRDjdRN2veZiNxf0LazZLlY+BvUFFfee1mnKETOWM0a2er5PrEDFFnxlB6jj5l
	d7x8=
X-Gm-Gg: AZuq6aJejlrzb7YvOkdP4e3/EmLuxtZiaEdwT6v6npEqgq5N/x35jk+PtHqjsFWCOtF
	9tTjrfYzrkonu/mIXhOBcedLsvysmO0CSxFYmVXK8zM+x0Q8UoEh+oAIFLH5ZoILyJorjk0lr3T
	8CLWCdRAxVlTHM3dC8Z1Da0DlqSlxxKAKOv4390p1jh7WO7a6GnA1CJAp36Mc3xtn95zkUbAOrn
	I/6gSjNb4BvOw+XaMmULB/wq8k68Cs5Sh1kHYzts5YgtxKIMYfQ0eYq5zAAH+80ho4hSoSnXDZh
	/heOD3oRy1QWi6HMZOfAJNMU8EoPrYPUR7eRtmIM0xpyOctBVvCwlKhrUDP66PMJxWkwb15APo+
	vRFfu7/fEUZHDV5RpgrwKBr+l1lUJsPrYdcZspiHUehHNoNuTtpCyt3ue58vFIIzfMtjiU79sS1
	SNwirIkptgH6d3lia8zncjYDkApDj8stD1MabRXvlLHT8cgieNXx/4Lu+wlbCNzRElLcy5BMww9
	Zo=
X-Received: by 2002:a05:600c:a30c:b0:480:4a8f:2d5c with SMTP id 5b1f17b1804b1-482db62305emr106744815e9.29.1770043385084;
        Mon, 02 Feb 2026 06:43:05 -0800 (PST)
Message-ID: <f9b84a18-c968-4dfc-8e5b-6c97e7d3a04e@suse.com>
Date: Mon, 2 Feb 2026 15:43:05 +0100
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] PCI/regs: minimal adjustments for Misra rule 7.2
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

As was recently noticed with PCI_X_STATUS_533MHZ, leaving presently unused
#define-s in non-Misra-compliant shape (7.2 is "A `u' or `U' suffix shall
be applied to all integer constants that are represented in an unsigned
type") is putting new code actually using any of the constants at risk of
then causing Misra scan failures in CI. Adjust those few constants which
strictly require a suffix.

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

--- a/xen/include/xen/pci_regs.h
+++ b/xen/include/xen/pci_regs.h
@@ -272,7 +272,7 @@
 #define PCI_AGP_VERSION		2	/* BCD version number */
 #define PCI_AGP_RFU		3	/* Rest of capability flags */
 #define PCI_AGP_STATUS		4	/* Status register */
-#define  PCI_AGP_STATUS_RQ_MASK	0xff000000	/* Maximum number of requests - 1 */
+#define  PCI_AGP_STATUS_RQ_MASK	0xff000000U /* Maximum number of requests - 1 */
 #define  PCI_AGP_STATUS_SBA	0x0200	/* Sideband addressing supported */
 #define  PCI_AGP_STATUS_64BIT	0x0020	/* 64-bit addressing supported */
 #define  PCI_AGP_STATUS_FW	0x0010	/* FW transfers supported */
@@ -280,7 +280,7 @@
 #define  PCI_AGP_STATUS_RATE2	0x0002	/* 2x transfer rate supported */
 #define  PCI_AGP_STATUS_RATE1	0x0001	/* 1x transfer rate supported */
 #define PCI_AGP_COMMAND		8	/* Control register */
-#define  PCI_AGP_COMMAND_RQ_MASK 0xff000000  /* Master: Maximum number of requests */
+#define  PCI_AGP_COMMAND_RQ_MASK 0xff000000U /* Master: Maximum number of requests */
 #define  PCI_AGP_COMMAND_SBA	0x0200	/* Sideband addressing enabled */
 #define  PCI_AGP_COMMAND_AGP	0x0100	/* Allow processing of AGP transactions */
 #define  PCI_AGP_COMMAND_64BIT	0x0020 	/* Allow processing of 64-bit addresses */
@@ -582,7 +582,7 @@
 #define  HT_MSI_FLAGS_FIXED	0x2		/* Fixed mapping only */
 #define  HT_MSI_FIXED_ADDR	0x00000000FEE00000ULL	/* Fixed addr */
 #define  HT_MSI_ADDR_LO		0x04		/* Offset to low addr bits */
-#define  HT_MSI_ADDR_LO_MASK	0xFFF00000	/* Low address bit mask */
+#define  HT_MSI_ADDR_LO_MASK	0xFFF00000U	/* Low address bit mask */
 #define  HT_MSI_ADDR_HI		0x08		/* Offset to high addr bits */
 #define HT_CAPTYPE_DIRECT_ROUTE	0xB0	/* Direct routing configuration */
 #define HT_CAPTYPE_VCSET	0xB8	/* Virtual Channel configuration */


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 14:45:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 14:45:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218659.1527494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmvBM-00073R-Eo; Mon, 02 Feb 2026 14:45:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218659.1527494; Mon, 02 Feb 2026 14:45: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 1vmvBM-00073K-Bx; Mon, 02 Feb 2026 14:45:40 +0000
Received: by outflank-mailman (input) for mailman id 1218659;
 Mon, 02 Feb 2026 14:45: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmvBL-00073E-Hj
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 14:45:39 +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 d634295d-0045-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 15:45:37 +0100 (CET)
Received: by mail-wm1-x341.google.com with SMTP id
 5b1f17b1804b1-481188b7760so29782395e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 06:45:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4806cdd79c7sm420044665e9.2.2026.02.02.06.45.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 06:45:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d634295d-0045-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770043537; x=1770648337; 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=2nGr+7R2b2rHqV5T/fNM944XxuEAEmcna2uqJ574g+A=;
        b=EKGgy4B6D+lctw8RKWgKfZRy3NFzKd85MObMXbfhC3bWp7DHR9Mvqj8mHlMMcb7yvn
         1zXNtD0fNVL60taLRXqygQSdMupdgEfCU18F7WxkBNl6cayLf5io47dNytWHoSZFxUpo
         6A5D/AoA6vGN7imQSUvQSCZJzdQ6xHM4PKDVbKGUkxuMrSenn5FF7whbKpQXYNViJznq
         gD+2CWa2n6PKdyGRX216jbtxBSrvBB+cmMowvJK//s2YGTVHsoYRKhX1Xxq6JmJRVJ3G
         zJdpY4yFpK8The62RH4lgl1CTWfY3iU2E4l+Ur3luWpIKztU1/fjTsEHWDp2YUxLurJF
         dPDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770043537; x=1770648337;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=2nGr+7R2b2rHqV5T/fNM944XxuEAEmcna2uqJ574g+A=;
        b=Ey10rmelqKuqZ9dad4uqdvTSSL56Y9lyqekbDxM/0iFmUOomxH2iiBSW02d6HmZOxJ
         Qfg0bwoBkq9gGWlAMX1WiWs4ufFabymydhQGHFiCflW9Y5lucFsAKJOkYmWDBKv2Qki5
         RY6uxYpeJlXDvH3R2IXfFCVo7qcocomC8fhMgCPOqIabJs8pWx4Uu8mkOCb++0IeGlA1
         uS5sj6y/drjmOGhor6bPbovzk3SYLhw7TAgrbZ4TDiicl4WgO5Vm4xrGZAMg60h1LlG/
         H83+0QTD55aB3qq/ZtL+LEPt2DgtS4Fn9Ln8C4lgaX0zHw0+bo0NiZS/O1N3hcgoFeKP
         pKpA==
X-Gm-Message-State: AOJu0Ywim+vakrWe11sVZ+qlLc8IUGF8rQdb1IS3exsQZBjgwux4MqXL
	NDueXqFX87c+ZflxCkB2+rAMufnSdzNfrHgUOnwulVO/g4r+/DVtMnjWkLSWMX20/uXALUEmsBE
	gWVnLZA==
X-Gm-Gg: AZuq6aJedB6dL4tmWkL8lfzJbZjssa/SghmUIiVujNEw1nIAl1I7AmuKBMKFhGTqoiW
	jfiDqH1I8wusasdWzZnNrNm+rvu+sO7KYFR57nA51uOxR28cGdlZYVMSGUfPFxpa80Jhd5YRJkv
	bzJWaqMMYhT50tSuxxhWZehCtuZssGOaRfdbvvuwN/fbq9z/bwUCFftBDq0FN5tzPorMj8mSlc/
	UZlorafAwb+CqwXbOFZkVc87U2UIOZ4TIwNrGIhAx/XFOu9pYln4Mjh4YJS+y5/ee+qGBxbMF84
	pUbjOi/AiUpMA4S6Cv3w15Wdn9iZLvafUvC6HSTVqs78H8NWRaiDMOW+3khabcYqvLVoHHPJRwo
	zh4oofUY+jFzaJh1N3oilz9VNxlrxQGicTXBuy5NnBt0RJXIO6+l0pHz4LtHCMHNfzjAuro1UTJ
	wMAr7StTpupPKB8Ck4NfLbMkYx56D2gT7j8v4TktrwjDfWjiZrfYH82hlhg2vDAvx9YQeSSl6yT
	8I=
X-Received: by 2002:a05:600c:1da8:b0:480:3a71:92b2 with SMTP id 5b1f17b1804b1-482db498227mr143291735e9.26.1770043536551;
        Mon, 02 Feb 2026 06:45:36 -0800 (PST)
Message-ID: <b61b7054-b27f-47fc-b268-f1dae3f1980d@suse.com>
Date: Mon, 2 Feb 2026 15:45:37 +0100
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>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] non-x86/symbols: check table sizes don't change between
 linking passes 2 and 3
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Extend commit 1df11ccceb1a ("symbols: check table sizes don't change
between linking passes 2 and 3") to other ports as well.

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

--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -99,6 +99,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
+	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
--- a/xen/arch/ppc/Makefile
+++ b/xen/arch/ppc/Makefile
@@ -26,6 +26,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
+	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -40,6 +40,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
 		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
 		> $(dot-target).2.S
 	$(MAKE) $(build)=$(@D) $(dot-target).2.o
+	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
 	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
 	    $(dot-target).2.o -o $@
 	$(NM) -pa --format=sysv $@ \


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 14:56:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 14:56:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218674.1527515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmvLs-0000Tq-Fr; Mon, 02 Feb 2026 14:56:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218674.1527515; Mon, 02 Feb 2026 14: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 1vmvLs-0000Tj-DI; Mon, 02 Feb 2026 14:56:32 +0000
Received: by outflank-mailman (input) for mailman id 1218674;
 Mon, 02 Feb 2026 14: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmvLq-0000Td-Mo
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 14:56:30 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 593b85ac-0047-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 15:56:27 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS1PR03MB7800.namprd03.prod.outlook.com (2603:10b6:8:21e::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 14:56:22 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 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: 593b85ac-0047-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cV3oaWzdFx92uZ+OzmiVbZdTYQPl/Ps67fnXGh9/utzPV6t6/M1DbRx7eOb2tmUg+AahEo0CXIr5AabLDSYGw1PjT0eSh1aQK0dUxpAvYISgjfKhTHgdJMaPjFdon7ICKfnLciP0bVgTIGAmgWYp/zMgSIFfrlwPdpmzj+3BoVHhKCcx4BAQ525nadOgkL6EjJjzUtRdnR8sbwvl3+FVHCOyakcomhxPsaOV+kihA9hz/9mILf711BompE8KXZmV38elmSEqpv+1I2K+Smpc+R3eE496Pwp03B0nTIFS6inaEdVB6Vd9VWmpj8uhMskJewrQor2TMsznBo1d+N0mfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Nz6C5tG4To8W5aMpVWMeIxuUDN6TfPfKJnLwWtdg1Cg=;
 b=tvE82B+2Fy3vE6ncEx//4uLcaK40WelSJ447VJzflGvensRkRHiincpuZMhZ4K3B4OePrISFaiZLzmUuzwkwWIw2SIuXXiRo/PksfJHqxFUpEtcVf8uhsbEuYCYXGuB0s8cfEOQycWSF9in3P2axj78FCRdw95xPkRUeiItQ+eVHg6mNNT9RlQN1ZUdYvnDTZU3gSYUIoMoWZsafQEwrOZbWWHK6EUuvkgwwnYclG5DZog+IDj4bfcyzx2cMkGZASc5AJtDSC4KzDWMrXlxGyhnM0Ib9q92C6TSRGf3AZnRXNbrt2/Uh6gE+TlTkdsTOGjpiH9pjaXlswWuDVbSGoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Nz6C5tG4To8W5aMpVWMeIxuUDN6TfPfKJnLwWtdg1Cg=;
 b=rLmb3OjOyn8xx5XdXI2/VDuLXk6FfhVh7fzsqQw6PE8A/F01cZ/bRh0ecOBEcMXgQ/BQv2YH7Qad7Ufjii1ScjSNTrHMTfwqy9GoSW6O/FOo9Fc7bq/sIRyw2lNpwDeisQ/uvortFq3yHBARByqaXndJ286j5/1ocoL74ilIv/o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 15:56:19 +0100
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] PCI/regs: minimal adjustments for Misra rule 7.2
Message-ID: <aYC7E0947_Np1bL6@Mac.lan>
References: <f9b84a18-c968-4dfc-8e5b-6c97e7d3a04e@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f9b84a18-c968-4dfc-8e5b-6c97e7d3a04e@suse.com>
X-ClientProxiedBy: MR1P264CA0202.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS1PR03MB7800:EE_
X-MS-Office365-Filtering-Correlation-Id: 427a8227-e873-4ce1-b679-08de626b3ad7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RWIvblVzdzJpZTRtdHh4K3krRFgvdDZYa01wNk95ZHNoTm14V2lwN1pUckl0?=
 =?utf-8?B?d0NKbW1raVp2em1HdGF5MzVJekdnNnFHWmJvdGhXZWhRc1N6cWFLbnhtaVVj?=
 =?utf-8?B?ZHhnL1lEQlhud3hGMUx2Y2RUK3Z4VHE2V1lQSXFPWHhvMEJORm5iZVVXSDM3?=
 =?utf-8?B?NU1DWnlTTGp1VzVsMGZMZmMxTkh0SXBiakM3ZHVrSkZldktvd0oxR3B3SnBD?=
 =?utf-8?B?VWkvbTU3NHpSS3d1cUptNGtKMDltMDRLQzJrcGorZ0M4cXNqeDExMFNyMExZ?=
 =?utf-8?B?d2NQbWFBUlJLR3Nka3kzeFBxUzRMMEJ5bGxxUzhOcUpLaW9MUVZMTEFIa1BS?=
 =?utf-8?B?WTVwVFRNMjcxRTUrRkp0QWRzQ0ZLS2d5aWY5Mlk3L3ZGNiszSlV4UDhEbnlL?=
 =?utf-8?B?ZGZYRXQrTE8zaEtCUUlKRC9aZkhFRlgxdlNNU25YL3NxYk1pMFlyT0hwZHA1?=
 =?utf-8?B?WnhHbk5RaHBmWVB0N3pFN2dTcFVMbi9zMWZzUlkyeVA4dkdTVkdSeDd2V3ZE?=
 =?utf-8?B?VUJ4dUxzWkh0WE1GWnJza2MwbElnMmtDYzdTbkVJRFlWbjlDY1NoalR4Zlcr?=
 =?utf-8?B?eTFPMitqbjMxWHlxVWJYdEU5Q0xIdnUycmpzcDRwZU10eDJ1U3FIbnUySlJs?=
 =?utf-8?B?aXYrMHRaWmlJMXExdHpwK3pLdGV5QzlVa29RVENnaFpnL3BncmowUVgyTlBz?=
 =?utf-8?B?TE5rRnR2QW1pY1h4YlRXcTI2b25CWjZLcEhhT0NMWU00QTNtOUFadlB2ZkNv?=
 =?utf-8?B?VzUwRkVrWjVlK1poWHBTMlgvWjFpZTlPYkNINTZ2MjN2TU5BeUJkRzFaRDha?=
 =?utf-8?B?b3h0T1d5dXg4KzlaV0l3VjVKSkp5Zk9TNFdtNUxZSzM5a2JuT2ZYR0xuZm4x?=
 =?utf-8?B?aHVNS2lVNkJrdUg5dlFORDB5Q2ttWjlHLy9Qd1V2S20rREFCN21BZ2YrVWhK?=
 =?utf-8?B?VWtuUXFEbjFHYVlJMGdZTkJKZS9EZVdLZ2ZneXNWWHFidEFCSkZyWU1yNXFV?=
 =?utf-8?B?WGJjNGRhQ3ptTmVMYXBzd25ZOTFPdHlCNHRGYWw4aXlVWEVscnBsQ1V3aXdR?=
 =?utf-8?B?dVl4blQzclAvRVEzeEVZY0pQYmxuRUlKSHZSV1FvMFF2VzlEdStQcVNsd2pn?=
 =?utf-8?B?L2FaQmNrdEhhdythU01qeWw0ZlhjY05LU0pvUUVZbkhNazh1cy9WdkJzbDQw?=
 =?utf-8?B?bmtNL2R0Q3RjcDZvRmpHcU01M2RyYllpM1NDUmo4Q3R6L284RXJGTlVXWXFP?=
 =?utf-8?B?cm5pcDB0Q0RuZWdxRlhlRCt6cmYwY1dvRjNqekRFbXhDRE1tSm5lT0Jlc0Ri?=
 =?utf-8?B?VGx3SEdhZ0RwMmN2Q2I1VzRnbWxSbDZzUytJclRCbng1eGo0MVR6dVlwWlY4?=
 =?utf-8?B?VWVpa21nZ0d3d1FXd0tqY1FOWjBZNjZXTlRCWnRZUHlSUWRzWUgrVC9pQTBW?=
 =?utf-8?B?SFBIWWZkWmkrK3lLeWo4bk1pbk1MQUNWdHBqaUhHRHRkR0NoL1FyeXlWNUEx?=
 =?utf-8?B?aEFhOE5wc1k1RDV0NndtN1Ztbzh1VkVXVkg3VDlnTVR2cWpuVWl1Q1FWVUNh?=
 =?utf-8?B?RlpwVkRZQVFMYnpQUWFSMHZua2xuQ0FmckRaM3Z6VzR4NnJxSHFnWWovYUVN?=
 =?utf-8?B?ZmZrVGJ4M2cwYXBwUHlFNTdTd3NoaU5WcVA1NDFvbnZlY0lUVTVrS2h5UmVG?=
 =?utf-8?B?UHllZlhhc0pWT2VTSnViSkZQZVVtbFdLMFJRTFRPeWtPN1R3OVZ6OENBN295?=
 =?utf-8?B?SmtrcEczMVMwRmVkU0oyZUU5ekJkcVBxVzUvUEQ5MjU4cEg2Wjh5U3VqeGQy?=
 =?utf-8?B?UXlXbW9BUGVRTXZzbHRTemNpUkE1K0JmdGx3NS94SzRGbWJNTjgzd01yR0pM?=
 =?utf-8?B?bVlQTmRPNDRsS0QzVjh1M1Vqa2ZLVW9XaGhOcnV6alhBVXBPRkRneVR0VUoz?=
 =?utf-8?B?Tkk3TERrREluRDZBTWI4UDVzVlBYSjFIVU8vdjR5Q0RnUXEwaDJBVFdianpY?=
 =?utf-8?B?V2NUUXZTakQ3Z2YwYTNwNzFLZHZYY3lSeDVWZElFWGtjRTJJOThTaUlhejRY?=
 =?utf-8?B?Y3hsUDJWQkFCY0UxU1U3aU5MdXNLYmV3NlhsWUMySHhBRUpiRUR4S0J2bGtt?=
 =?utf-8?Q?R9As=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?emdJL2NUdjFieVJuamFXbVRNY1pWdW9Rczg1R1RVTy96anpEVUNCR2ZQRXFN?=
 =?utf-8?B?T1JzZlM1blJzYUpiamIxeTkwVGlOc0pEbWRTVGdHemFweFlHdHRGcFdKVS9M?=
 =?utf-8?B?UDJZcW5MQ0lYcnRMMm5FMDl5anlwNzZXVGN6WHQ2WUdjRWFaUXVodUNobzVu?=
 =?utf-8?B?QncwT3pyRmI4cUlFTE1PRWJwSzJZb1VaQU9kQXVaek9NTnhySjc3UWMvcTJp?=
 =?utf-8?B?VHBJZzhtWThzaG5VcTRzMXh3NGJ5UTZKK1hsaTRSSUNFejdnOUhpTUl1QzJv?=
 =?utf-8?B?RGd0VTR1NVN0MklTT2RuUFBCVy9uSi9QdWhzOERhaHM2dEF3VjJJdkVHTGVP?=
 =?utf-8?B?Y2pIYUJKUHJLWldaSThqUHcyVytBalNNUVQwTHJzMGhST2FObXJWTE5ZdTBI?=
 =?utf-8?B?ZHIrTnFxLzJQN2Y5UENpMjU0dHRObXZkcVJ1T3lta3hsL3ZxemtpWmc2QXh5?=
 =?utf-8?B?OHhEKzRMK085WG1tWGJHeElBbG90T0NhRXBsZXc0bEVpUE9ZNUZCVjREV1JI?=
 =?utf-8?B?UXAya084NHpnZFR2TDZQWmhPOGRZY3owZzFNdUI3TDhDdHNpa0JyUlRwdmtV?=
 =?utf-8?B?TCtqeEVJU1g5UUQ3Q3puM3dzcUN1ZmNIS0JnM0Z3YWd2bTVIZTZ5MzlhekxJ?=
 =?utf-8?B?L3hJWGhEd1VwSjMrUDVZZXAxTTUxZHZLblRaN1VqRWVuWncvTmZPL01jZnlt?=
 =?utf-8?B?OHFab3J4Z2VnNS9FQ2ZleXhIWDg2akpXSlduRUEyRWdTL3RLaDh6RlZyRkV6?=
 =?utf-8?B?RVFKVzNUUDhGZEVkYitHaFVpUGlIbkRLY2MzVHdjSFNPY2g0V0I1WXlheGVR?=
 =?utf-8?B?WEsrd1B0bUF0R0VWK3ZEdWVjWTlZU1NFS2tCTUcyOVd6K0hDQ0N3NFVKQVdw?=
 =?utf-8?B?Vks2aGNTUzB0RnJSYkRBWkhLOGxLS2FveDV5anhWVzlrY2YxMVFRblhRZUMw?=
 =?utf-8?B?d3VwNVRCV010YitoMXVySldQbzU1NmZwcmVySlYyVjVOSjBQaVE0NWJBV1VY?=
 =?utf-8?B?dFRmUDkzOWpvcC9udzFEM2tDelRNdTVUZnVoaGlPajg5am91ZG9GOUwxTzJJ?=
 =?utf-8?B?Nldzc1pMUlNONjFUZFdyYTBHT0JQd2JhTUZYdG1uTVUvcStwb2d2cCt1UGgz?=
 =?utf-8?B?WUJqNHdIczA0aXJlLy9ublJWT21lZHlFRjYvMWszZ2pjSFByTk5oRXFFQXhz?=
 =?utf-8?B?eFAyNHJsL24rNHV2b21yTDBLQkJtT3FTcDhGV0wrNjI5QUhQOTd4WklmSWNT?=
 =?utf-8?B?VTZpdWR3ajhwOWI1bTIyV2xoUzFDWWFtNmNuT1ZrVTFBNTNZdHpTZTQraERz?=
 =?utf-8?B?N2tXSFdRWHAzYXB2VmtsZXkwOHJwMm41aWx4cVM2NTN4ak9IWFNlbGNKWXVt?=
 =?utf-8?B?amlWMmMwNDJ3WVRWVUFEanVFMi9OQnBPODhIcmE2ZWhSeW5YZXRzL0U4Q3c4?=
 =?utf-8?B?V1QzOHNuV0lDSnRXbTdqMDVXWFMrV24vS3NzNGVualRhN3ZmTkpIdG5xbC9H?=
 =?utf-8?B?Y3lZUldOdDFPOEx5bjFST0M1cHZXTU84dlJJcVpnTDgvTkx5U2xyS2t6ZW5u?=
 =?utf-8?B?Y1ZtZkE1WkdIV3l4bzN6UUNpTGdZVmRQeFc2QkF2ZjJGRGNHYkw1RXlTNFB5?=
 =?utf-8?B?Tm9MM2JCc3pEOFBFNHVVNGVoY2g2TjdyZHdQT1RaNDlqYm1PVzJLakROWXUv?=
 =?utf-8?B?YVRhSlp0L0FCUlhaTDJtNUVtcVE3c3B0UTRFZnFYbmdSUFpkaEdYQVF1Vk1y?=
 =?utf-8?B?OU9ZdWtla1B2cHZML1Vudzd1SGpZbEQxZUM3Y0lYY3VkWnpreCtlL0VyTjVC?=
 =?utf-8?B?c2hmZEwwOUNEVDJTbzBhdk5LYUYxT3pBMXQzRVdITU5QRnhLV3FMdHdWTDlz?=
 =?utf-8?B?SlpTNU1aaVJ4N203QVZFdnR1akN4Um5IQ0k3RE5DWXpEbkgya2V5WjFaRW1V?=
 =?utf-8?B?enVJNk5rZC9NMHFycGgzd09QOGJEYW96ZjUwK0I1MlNMTHMveXhpdXMrWXA3?=
 =?utf-8?B?UEltOHE0bE94QlgwTTgvMEFiekw0QzAxZVFzaWNFb09kNDRTME14cmllWkdz?=
 =?utf-8?B?WCtVcWU1MGFJa3BlaGNmU1ZEWnp5VzdvVmxBT1Q2K2t3dWxYRVFLTHArcm13?=
 =?utf-8?B?SDAvbTRaME41NTJ2OHlZS1hRYkZvN052NUlYeXcxb3pZZC9Va1dRcXZuc2Z6?=
 =?utf-8?B?anZ4NDBvTUZKbUhzZUxyRmlGTGpzMVU3dHRtWTBZV2F3M3hBVHRlUVdQK29C?=
 =?utf-8?B?UU9zWktDM09JQ0U5RWNrREpXU24zZ1kyVzNIb0g1RXBNRDFmS3NRdkNDTnYx?=
 =?utf-8?B?eEgweEpZUUhtMDd6WWVMQnVFUWxzVUhXdjZpajVRWHp3REdkamtCZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 427a8227-e873-4ce1-b679-08de626b3ad7
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 14:56:22.4162
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: r2JLNZec2KzgOsBH8D1d44NrDL+D7PA/0VIhgTzb7LMt3H3px3igTCVE6CzWtn93OgPDoPsM4x3x8AsLSt04Mw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7800

On Mon, Feb 02, 2026 at 03:43:05PM +0100, Jan Beulich wrote:
> As was recently noticed with PCI_X_STATUS_533MHZ, leaving presently unused
> #define-s in non-Misra-compliant shape (7.2 is "A `u' or `U' suffix shall
> be applied to all integer constants that are represented in an unsigned
> type") is putting new code actually using any of the constants at risk of
> then causing Misra scan failures in CI. Adjust those few constants which
> strictly require a suffix.
> 
> 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 Feb 02 15:03:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 15:03:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218682.1527526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmvSO-0002Bx-5D; Mon, 02 Feb 2026 15:03:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218682.1527526; Mon, 02 Feb 2026 15:03:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmvSO-0002Bq-2L; Mon, 02 Feb 2026 15:03:16 +0000
Received: by outflank-mailman (input) for mailman id 1218682;
 Mon, 02 Feb 2026 15:03: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=Gzza=AG=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1vmvSM-0002Bh-J6
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 15:03:14 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 478f50c8-0048-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 16:03:08 +0100 (CET)
Received: from fmviesa008.fm.intel.com ([10.60.135.148])
 by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Feb 2026 07:03:06 -0800
Received: from lkp-server01.sh.intel.com (HELO 765f4a05e27f) ([10.239.97.150])
 by fmviesa008.fm.intel.com with ESMTP; 02 Feb 2026 07:03:00 -0800
Received: from kbuild by 765f4a05e27f with local (Exim 4.98.2)
 (envelope-from <lkp@intel.com>) id 1vmvS4-00000000ffw-49bj;
 Mon, 02 Feb 2026 15:02: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: 478f50c8-0048-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770044588; x=1801580588;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=f4jiSWaAUMy80OsaVE6o84JI4KEEK5M17ot8dH2cPts=;
  b=amKUcJQGy4d7dAO4Cv+CRx7Bb39fi4/YwXfTLqhIpC43OWDztsqd8r6B
   gfVShaBOXIVMdvnvLE9pENMQknkr4XjGyXAETZyyL7U0prLjF4qABj0yV
   YE0rOyudXRv80TLpmnAlQZR1jYr0zkvU3TdwgS21JEkWuoRCf5luqk/Fq
   jB90Lr3iHxjFuZrrNwJp2ggK1oukeR/O19p8Iy6Kb2T6OIkmm5yxGr1WL
   Tk88iL2gDAlL4oYfmAxhB5xCSCwexP/UGIE1cUH8Y2LhM713isaJy80+s
   jwqN0LxI0+jFNkFcnUklOVWt7X8LLhYvPyssuH1lMQSpiWKS97qhC5nkw
   A==;
X-CSE-ConnectionGUID: Je93ZHC0Tz+CO4NY0upsJg==
X-CSE-MsgGUID: dCccp1sDQWmH697FmaTPpA==
X-IronPort-AV: E=McAfee;i="6800,10657,11690"; a="71099594"
X-IronPort-AV: E=Sophos;i="6.21,269,1763452800"; 
   d="scan'208";a="71099594"
X-CSE-ConnectionGUID: 1Sm55USrTViCYi6oLwwXlg==
X-CSE-MsgGUID: ZhozEz8UQCq9wlrljDbqsQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,269,1763452800"; 
   d="scan'208";a="209698373"
Date: Mon, 2 Feb 2026 23:02:50 +0800
From: kernel test robot <lkp@intel.com>
To: Shashank Balaji <shashank.mahadasyam@sony.com>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
	Shashank Balaji <shashank.mahadasyam@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Message-ID: <202602022242.iSdFHMDI-lkp@intel.com>
References: <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>

Hi Shashank,

kernel test robot noticed the following build errors:

[auto build test ERROR on 18f7fcd5e69a04df57b563360b88be72471d6b62]

url:    https://github.com/intel-lab-lkp/linux/commits/Shashank-Balaji/x86-x2apic-disable-x2apic-on-resume-if-the-kernel-expects-so/20260202-181147
base:   18f7fcd5e69a04df57b563360b88be72471d6b62
patch link:    https://lore.kernel.org/r/20260202-x2apic-fix-v1-1-71c8f488a88b%40sony.com
patch subject: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel expects so
config: x86_64-buildonly-randconfig-001-20260202 (https://download.01.org/0day-ci/archive/20260202/202602022242.iSdFHMDI-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260202/202602022242.iSdFHMDI-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602022242.iSdFHMDI-lkp@intel.com/

All errors (new ones prefixed by >>):

   arch/x86/kernel/apic/apic.c: In function 'lapic_resume':
>> arch/x86/kernel/apic/apic.c:2463:17: error: implicit declaration of function '__x2apic_disable'; did you mean '__x2apic_enable'? [-Wimplicit-function-declaration]
    2463 |                 __x2apic_disable();
         |                 ^~~~~~~~~~~~~~~~
         |                 __x2apic_enable


vim +2463 arch/x86/kernel/apic/apic.c

  2435	
  2436	static void lapic_resume(void *data)
  2437	{
  2438		unsigned int l, h;
  2439		unsigned long flags;
  2440		int maxlvt;
  2441	
  2442		if (!apic_pm_state.active)
  2443			return;
  2444	
  2445		local_irq_save(flags);
  2446	
  2447		/*
  2448		 * IO-APIC and PIC have their own resume routines.
  2449		 * We just mask them here to make sure the interrupt
  2450		 * subsystem is completely quiet while we enable x2apic
  2451		 * and interrupt-remapping.
  2452		 */
  2453		mask_ioapic_entries();
  2454		legacy_pic->mask_all();
  2455	
  2456		if (x2apic_mode) {
  2457			__x2apic_enable();
  2458		} else {
  2459			/*
  2460			 * x2apic may have been re-enabled by the
  2461			 * firmware on resuming from s2ram
  2462			 */
> 2463			__x2apic_disable();
  2464	
  2465			/*
  2466			 * Make sure the APICBASE points to the right address
  2467			 *
  2468			 * FIXME! This will be wrong if we ever support suspend on
  2469			 * SMP! We'll need to do this as part of the CPU restore!
  2470			 */
  2471			if (boot_cpu_data.x86 >= 6) {
  2472				rdmsr(MSR_IA32_APICBASE, l, h);
  2473				l &= ~MSR_IA32_APICBASE_BASE;
  2474				l |= MSR_IA32_APICBASE_ENABLE | mp_lapic_addr;
  2475				wrmsr(MSR_IA32_APICBASE, l, h);
  2476			}
  2477		}
  2478	
  2479		maxlvt = lapic_get_maxlvt();
  2480		apic_write(APIC_LVTERR, ERROR_APIC_VECTOR | APIC_LVT_MASKED);
  2481		apic_write(APIC_ID, apic_pm_state.apic_id);
  2482		apic_write(APIC_DFR, apic_pm_state.apic_dfr);
  2483		apic_write(APIC_LDR, apic_pm_state.apic_ldr);
  2484		apic_write(APIC_TASKPRI, apic_pm_state.apic_taskpri);
  2485		apic_write(APIC_SPIV, apic_pm_state.apic_spiv);
  2486		apic_write(APIC_LVT0, apic_pm_state.apic_lvt0);
  2487		apic_write(APIC_LVT1, apic_pm_state.apic_lvt1);
  2488	#ifdef CONFIG_X86_THERMAL_VECTOR
  2489		if (maxlvt >= 5)
  2490			apic_write(APIC_LVTTHMR, apic_pm_state.apic_thmr);
  2491	#endif
  2492	#ifdef CONFIG_X86_MCE_INTEL
  2493		if (maxlvt >= 6)
  2494			apic_write(APIC_LVTCMCI, apic_pm_state.apic_cmci);
  2495	#endif
  2496		if (maxlvt >= 4)
  2497			apic_write(APIC_LVTPC, apic_pm_state.apic_lvtpc);
  2498		apic_write(APIC_LVTT, apic_pm_state.apic_lvtt);
  2499		apic_write(APIC_TDCR, apic_pm_state.apic_tdcr);
  2500		apic_write(APIC_TMICT, apic_pm_state.apic_tmict);
  2501		apic_write(APIC_ESR, 0);
  2502		apic_read(APIC_ESR);
  2503		apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr);
  2504		apic_write(APIC_ESR, 0);
  2505		apic_read(APIC_ESR);
  2506	
  2507		irq_remapping_reenable(x2apic_mode);
  2508	
  2509		local_irq_restore(flags);
  2510	}
  2511	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 15:19:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 15:19:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218696.1527537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmvhU-00049y-Jb; Mon, 02 Feb 2026 15:18:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218696.1527537; Mon, 02 Feb 2026 15:18: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 1vmvhU-00049r-Em; Mon, 02 Feb 2026 15:18:52 +0000
Received: by outflank-mailman (input) for mailman id 1218696;
 Mon, 02 Feb 2026 15: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmvhT-00049l-JW
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 15:18:51 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 782d5865-004a-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 16:18:48 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN9PR03MB6108.namprd03.prod.outlook.com (2603:10b6:408:11d::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 15:18:45 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 15:18:44 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 782d5865-004a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jvhTlS3rjv85Mr30U7Jc4+MrKVZ6Ay/H5AHaQAuumj59esKStmwfTI/ZO0Hd3xa1A3EZow/Y5AWcy7HU/cJlQo1oJL5XIWLMHav5r7t5N1axcc6jBCYUk5gBEGSibVeTB4/5BCeCgN0qsxOg/lHDxJVKqpXrbbR9fqY1IykkRUMdD+s/5LYF+SGbiOpqW6F/aGZkSQaKk4eE65W/dA+CkhUpJpv2NXPoM8x4se1JvBQxd745yaJoKUwBlaPh5mOLm1FGe7rsRdglf68gYViPFbCDzBUfA07kmT6l/YwvnMDpFYkGPld0qdcLemEEYjfvfR8vAOFt1+JuKNPPH77IXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TTCf1s19dQa2QQm1tQwLDxuwlEm+dg3ONfdc9jx7KwE=;
 b=f77cMJ48w4KJrCfHs9G67tQFxrJ+VJI/OHmFm3+VX7KD+k3fZU34qWXO+vgxozbqAt2QU2jGEndHYZppFA+yf3jri5Grr5fVoidWaDUG4OgQSs227Cb+9q+AUR4LuZRjIlL5EQ957XWP2XEvq9VDYVy064qPd4AMSKcqQnt20VPPXN667uHBomTvb3X+1IFTp0obyJKUQNo0KoGce5jdKeE2FIAlDmwjH2f3UWaRC2iPh+pCqVgys3BqhTteXQCrRlVJfF5BB3NkFMBc1YYczt+D0FOF2LaEn2ptHyhQNXNGSx8fYsCLJ/Np1AAmzWFF6g94j8eccGhktDcFvnX5hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=TTCf1s19dQa2QQm1tQwLDxuwlEm+dg3ONfdc9jx7KwE=;
 b=QPGsl4dgO7d3/zqBSgQ1kGqafTmNE2SJBP0usLkzpoOaJELuRkX46rt3oHO2NZdSWabYfiZQ4ack031UWQJ3meYlse565rHfIsVTj9C6roiGpLoK0E1n7XFnN40GiiNSZRCp9NBVQCrGDZr4lb+2KUrmLMOr6IgV8GgDsx1zhuI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 16:18:40 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
Message-ID: <aYDAUCVdk_2qGa-r@Mac.lan>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
 <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com>
 <aYBq2EoeP_TGv_sK@Mac.lan>
 <1bcdd2dd-9b2b-4eb2-a569-e28b03c1e1fb@suse.com>
 <aYB4z8CSA590Ytpo@Mac.lan>
 <da490e92-c8b1-40b3-83ca-ad77dc2defe8@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <da490e92-c8b1-40b3-83ca-ad77dc2defe8@suse.com>
X-ClientProxiedBy: MR1P264CA0068.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::33) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BN9PR03MB6108:EE_
X-MS-Office365-Filtering-Correlation-Id: 16368669-75b2-4e13-fbc0-08de626e5afd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RWowQzZ0Vzl2emE2V3haR1BjVEtwZkszemUwRTBDblJZYmVsY0sxcko2ZlNY?=
 =?utf-8?B?RW1jYjdXSkhHRGpvZlBVLyt5dmFUNU80OUVUeDgxM0xUYW9FSHViVXJ5WkNk?=
 =?utf-8?B?d3JvMlI4OGhiNDI4QXIvYmphTHNwZzlJTHRzbzhUcmVvdlRzNkdLRW10SDd5?=
 =?utf-8?B?RElaei9jaG5EWmxwQ0d5U3RnTFR2ckVyazUrNnNZT1BNZ3VFK0tuVFR3Zjlq?=
 =?utf-8?B?b3RmSGUrRXJCUWpWamQxUGZHbGVpOTE2SHdnUDgwY2drK0tPamlUUnp1WWZS?=
 =?utf-8?B?Q3VwbWNwOFM0SmlQMi94cUgyVnBuS1ViZDVtcC9XK2Y0M1l2dzJUR3lIRGFN?=
 =?utf-8?B?WnljM0FSMWNnWGpHSkxwaGc4TzJEdUxzTFBLU3hNdzdta1p4MkhFa0t3NDln?=
 =?utf-8?B?UFlUQ1oxbzZyTzJUZ0ZNNlZSbENKUXdCZGgySlhTN3FhaWxzWVhOblJtMUlZ?=
 =?utf-8?B?aXJMYlRsUnFhc0h1Y1M2Y0NWZlVSRlI2dUEvR2dheHVEMTFnVGtSeG1FWlg0?=
 =?utf-8?B?RnlqMlVUUTFIYTc0dmxXb3ZSMDArWTRoaCtYbG5hTkhBTGNLdmQ4cUVaVG1v?=
 =?utf-8?B?TkVkSXFmQm9OMFdWcXFocmZhMHdVTU15bFRHSTdtVU14SktHbmtmNndsVmJV?=
 =?utf-8?B?Qk9Nc2dYUFF1ekVMSmFwcmlpc09oc04xd25CcXZBdmNOdnU0bi9VNVQ1c1Mx?=
 =?utf-8?B?WUEwektVdHZLRWtDVW1NNUJGd2xUSmp2MFZmZXFobHVwUVFOais1WHd6QlBV?=
 =?utf-8?B?S09UTldMNFJOR0FtZW5hYnNncC9jQ3BsT2p0QkZaUFJJaW13VWxhVlBpeTc2?=
 =?utf-8?B?Q25KRXlaTnNJRHV5NHc0ZTVXK2dMZXpUYk1kbFdHajM2SU9kOUhjeittKzFj?=
 =?utf-8?B?RWlpQnpGRWdGR3drV3Jzd3pkSkdpQkF1a0tNNVQrQ1RVb0t1UjYzcTZSeGhz?=
 =?utf-8?B?N1ByRVdzNFpTMHJaVmt4aHBhSzE5anp3akdvWllSRHlmLysyL1BoK0k3Y2tu?=
 =?utf-8?B?WW5Id0NqekhKNnpRZm00SThjNzR2Ykx5MHJBME9ORTl2QXI3ZXUzSkRQclVR?=
 =?utf-8?B?Q3g0dGg5b2ViZnlqWDl6Q3dHS1JWbnJ6ZkhGWFJqazhVM3VueFRKMlU4ZFNs?=
 =?utf-8?B?eVdOdk94aDJLS1dmbFczNlNLbmxmQ296R2N1aEMzb0djRzRkTFBxaklucUxB?=
 =?utf-8?B?bFFINW5PbjFXM3UvcUovVkxJVWR1ZnNDSTRpaFBMSkFQNlRxRVRBQ1BiUXo5?=
 =?utf-8?B?aGdrZ0tISVhvOGZLUmRCTERNdG5tb3VYaU5ZT05oTWtNUWZQaFBkR0p5YVNN?=
 =?utf-8?B?SFFZU3hPM05nMFRidUtPdmxJRmRJUEFyK0tjUWNyS1pGNmhhUGlPMGc2MEtI?=
 =?utf-8?B?U0t5WnQ0ajVtVml2a0RsemI2ZFhzaWVjbjlodXVrVS9aSWZOVkV0YkM3VjVx?=
 =?utf-8?B?akVOZDF1aVExcEpleHY5VEYwYWExbGk5MHJRNnRLZ0V3eEVVWGtYNEszdGlt?=
 =?utf-8?B?M3JVNEZHRSttQ3ZBajA3V3NsRW1LT0tOeWVkY1hNRmMrRFhGVFZPa1hCYTMy?=
 =?utf-8?B?Y3JPRmNZSUJnU092WGYwSk5qcy8reEZ0VzkweEtsSGN6dEk2Y0JxeHRFeHIz?=
 =?utf-8?B?ZzdaTUlxNWJGYkl4R25VcytLTDNBU3VhNmZmZTdCQWFPeFhUdE56VTVHK09F?=
 =?utf-8?B?NUhOSWUxTkFhQmhFbXhkRWdBajV2TW0zdngvUHJHWmQ4bmdLQytMcnN5OHVD?=
 =?utf-8?B?MWNoUkVJUHhPZ2tMVEtyQ3VZa0h0dzVkM0k5Q0x0T0dSbTNvV0lCalZHenNZ?=
 =?utf-8?B?M1FqQkVpU0N4dUVsUjhsNjVPNlZUQUFKa2drRFRJeitUd0NISUxGQVUybm5D?=
 =?utf-8?B?SWhTaXB1WEs4bGN4T1djZ21KN0lZRVJJVzIrWEhleExkaXFmSXVMSjBLQ3pU?=
 =?utf-8?B?bUxBMXJoNjhGbFdKUmp5WVJXU3hERGJHRmpCZUpJbVdSMlM3aUQ2cytZRmpn?=
 =?utf-8?B?K2JZRHRvalJsZndWeWJCalB0WENNVVpQNHVNRFRPNGFnZVlMdkg1Tzlqc1FC?=
 =?utf-8?B?bGd5cTcyK0pVV0l3V1p0WGVibTRHcjBJdzJzL0NPdXdwUXBlYStLZGl5NG9w?=
 =?utf-8?Q?c62A=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NHJrRE9heHpyMlVxeDRTcS9WdWM5WkJLZlFYRVMzT2owZ1B2K2NBLzlaMHNY?=
 =?utf-8?B?TlNVbXJ0V0tOTXdINjRVVTh4OWN5dlpINXNsK2ZTRUFSSldVaHlCOEVRYWt6?=
 =?utf-8?B?c0JxYVdUaC9ibXZmSUdlUnIrQTJQZG9vMWZqN1kyam00RkZnWnlqYllyeXZY?=
 =?utf-8?B?SXpxa1ZtK3NuelZocUxFVnJEQ3dNc2FYcnpOR0dPZEFuY01ydk9DZG1NcGRO?=
 =?utf-8?B?WVgvQk1tb0NURmNRbW1NYXVlNTJpcjRXUHU1bGtaaERORXprdjN4RHpRS1gw?=
 =?utf-8?B?b1U2TmNOMmlqWkdzVGVIWU0zakpYL0pmUWNodlVySkhiK25ZY1FIcURTajJ4?=
 =?utf-8?B?Ylg5YStGcVV5MHBGTTI4VlhSN2JVTDIrZXFSTUM3TVhPN3pnZVNmamdJMFly?=
 =?utf-8?B?eVEvM3N1NDA2Q1FTN0k0Njg1dXRjY3pWL1hiY3BNdXBoc2VIWEFYVXJ2YVNj?=
 =?utf-8?B?L3g1U2xQK3ZVRjkxdDBxdXp0aWJNMlE1eE1WTDdGc0FmWmNwRGo4cHdMdWl2?=
 =?utf-8?B?dU9xZmdaWEI0cy96NWdUMXM0RzNVR1JWcEVrUjh3OGl6eGtvb0FWOUNXc25S?=
 =?utf-8?B?aUd6WFI1SW1KZjM3a2VmMi9xbzd1eno2eXRZZTNKZUd3RUZndnhJKzlZY3Bk?=
 =?utf-8?B?ZXluMExseUJYUkVDTUFjbUxqY0tJMVhRMWVibXpOV0ljTWI4Q2NWVStHL3Bm?=
 =?utf-8?B?VVpOTXdSKzlnUzMwU1dKQ2NqK3FWQXhjU3JUaCs5WUJUQ0I1YlhFTk9EajNn?=
 =?utf-8?B?VjE1SjJFbE9HUzZvWFJmeGtSWURKaC8xUlE0ditpcWVScHFXck1US2dyTEdH?=
 =?utf-8?B?VkowVWFtQVdxY3NkWUUxYytPdFdZdDE2bUtCaEF4Y3k1TisrSzJoV2s3UXlM?=
 =?utf-8?B?Rms4R1BQNmJmOExHcmxMMHR5WmJKaVFrc2MyVnMwMk9hWVExUjhXTlMyMGtZ?=
 =?utf-8?B?elhxWWZ0aTZ1OEpzTDZnQXhZbUs1aVNWcm5KSzQ5cDR6Nnp4MjlvbnNYMExE?=
 =?utf-8?B?NDRaQ0pzam5WK0RsR1JBdDlRZzY4bVFLSXNwMzRkNW9LYXlHRzJjc2l1OE5S?=
 =?utf-8?B?VjNpb0tINUE0Rk1wYWZGaFVCbXhhSGpTN1VwWTFRVVBPdVJaay90Q1lSNWdO?=
 =?utf-8?B?dUtKZkVKb1VveEFaNHdJcE1pVGl2UU90ZXJXZVhvb1B0Um1TN3NzMTZ2cDcv?=
 =?utf-8?B?WVlzb3k1UlRKMDhRT3BxK2dMLzRybVh4dlptVXRBYnlKZUxCaDZYbkZHa0g2?=
 =?utf-8?B?OVZiMWNEV0xjSEZocWVJU0RDbnFXV2pPVUxpU3p5NTQzL0Y1YVV2WmV4OGdk?=
 =?utf-8?B?WU5UTUdxY3h6Q3dQdTN6bzAyUnVFbWNqa0M1U01wNllmanJuZDh2VEorWGNW?=
 =?utf-8?B?SUhhbE1CUlppWGtRMy9FR0E5dU9Nb0hpbE83VnJFZThmamZIVEs1Y2Y2d0lT?=
 =?utf-8?B?cHJOTmtPMXFZTmFIVCtTaFhhalRYa3BqbktKWWNBMEpPSlhIdzRWbkduQ2R1?=
 =?utf-8?B?a21rQ3lqUS8vRVBRY2N3Y1dzQmtHZU9kVC9lSTBpRGRoNzlXTExSbVlnWkU4?=
 =?utf-8?B?VFo3YWlyVUNicXptT2pvMzJMMmhZRVJYVE85bkt2TGRMSTE3eno0RlI0V2Jt?=
 =?utf-8?B?UjQvM3lPRHBGdEtpeU51RXdPbVJIOW9wMmUrSFA3WHFGaDFYbnJHYmZkb3Jh?=
 =?utf-8?B?cHJyRnUxQXQxdnMxRVBjMStrMjNPMmg1SExDQ0dPRFc0cktCZERsdk9zVW5l?=
 =?utf-8?B?MXkyOElzTWFMelFRMlN1ejl4VFBJMXF6UkVDV0xvaXVVbEgxUVFaZG01alJ0?=
 =?utf-8?B?UGI4K3ovYS9SR0xqdkFXUTVvYklGeDJEQzNSZld4eG01OXFTVk1lMWhKajZw?=
 =?utf-8?B?YzBqUVM0R2g0dUNMZFdrUDBEMnlHLzRybnZuNGgwWmI2bDN2aENLcXoxM2hY?=
 =?utf-8?B?VFRTdit5Wlh5cmlwZys0Wm1TUmo0ZnBybHZWZURWWFoydGdJdEFadjl1Y2sr?=
 =?utf-8?B?dUZueDY2U3hpYTF3RGZXTkNlQlovSHRlUnphZVZRejByckhUTE14WW95OURn?=
 =?utf-8?B?T3J4VzZlNWg2QTlPeTYxSmp0cmNCOVBCZjlrNlpwMXRseFRGcU43YWRON3lH?=
 =?utf-8?B?aC9PVWVoZGpWYnRpNnU2Qk1tUU9yb0VkWXU1dWhZMGF0ZkhqK3c3aHBTM2lN?=
 =?utf-8?B?aDFmakM2WXAzRE1HM3hzVmpuWU5BZ3dETDJ4VVNRVEo2OFJ4T3AzZnZReTRV?=
 =?utf-8?B?VGpvZisrUnE3T3NtazI3aGlzVmpnTEdJUWc0Q0R2dWJPVjJRZkphY1F3Znp0?=
 =?utf-8?B?djl0TWFiQnltT0loZ0pKeFpGckczUlpoUnZvT2lDUmNvQ29TQ1lJQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 16368669-75b2-4e13-fbc0-08de626e5afd
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 15:18:44.7912
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DJeWcw3LtHzpFmuOrEVhIATZavAeZiOg3+E31JvWCUS2wP6sKBY4JZMKaeVTyyPtODYIui3neSu9Vz5Nna7fcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6108

On Mon, Feb 02, 2026 at 03:40:39PM +0100, Jan Beulich wrote:
> On 02.02.2026 11:13, Roger Pau Monné wrote:
> > On Mon, Feb 02, 2026 at 10:30:29AM +0100, Jan Beulich wrote:
> >> On 02.02.2026 10:14, Roger Pau Monné wrote:
> >>> On Mon, Feb 02, 2026 at 09:51:18AM +0100, Jan Beulich wrote:
> >>>> On 29.01.2026 14:10, Jan Beulich wrote:
> >>>>> @@ -160,10 +161,13 @@ int pci_mmcfg_arch_enable(unsigned int i
> >>>>>      return 0;
> >>>>>  }
> >>>>>  
> >>>>> -void pci_mmcfg_arch_disable(unsigned int idx)
> >>>>> +int pci_mmcfg_arch_disable(unsigned int idx)
> >>>>>  {
> >>>>>      const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
> >>>>>  
> >>>>> +    if ( !pci_mmcfg_virt[idx].virt )
> >>>>> +        return 1;
> >>>>
> >>>> Afaict this is what causes CI (adl-*) to say no here:
> >>>>
> >>>> (XEN) [    4.132689] PCI: Using MCFG for segment 0000 bus 00-ff
> >>>> (XEN) [    4.132697] ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
> >>>> (XEN) [    4.132700] CPU:    12
> >>>> (XEN) [    4.132702] RIP:    e008:[<ffff82d0405779bd>] pci_mmcfg_read+0x19e/0x1c7
> >>>> (XEN) [    4.132708] RFLAGS: 0000000000010286   CONTEXT: hypervisor (d0v0)
> >>>> (XEN) [    4.132711] rax: 0000000000300000   rbx: ffff808000300100   rcx: 0000000000000000
> >>>> (XEN) [    4.132714] rdx: ffff808000300100   rsi: 0000000000000000   rdi: ffff8304959ffcec
> >>>> (XEN) [    4.132716] rbp: ffff8304959ffd18   rsp: ffff8304959ffce8   r8:  0000000000000004
> >>>> (XEN) [    4.132718] r9:  ffff8304959ffd2c   r10: 0000000000000000   r11: 0000000000000000
> >>>> (XEN) [    4.132720] r12: 0000000000000100   r13: 0000000000000004   r14: ffff8304959ffd2c
> >>>> (XEN) [    4.132723] r15: ffff808000000000   cr0: 0000000080050033   cr4: 0000000000b526e0
> >>>> (XEN) [    4.132725] cr3: 0000000492a30000   cr2: ffff808000300100
> >>>> (XEN) [    4.132727] fsb: 0000000000000000   gsb: ffff8881b9a00000   gss: 0000000000000000
> >>>> (XEN) [    4.132729] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
> >>>> (XEN) [    4.132733] Xen code around <ffff82d0405779bd> (pci_mmcfg_read+0x19e/0x1c7):
> >>>> (XEN) [    4.132734]  48 39 d3 72 ea 4c 01 e3 <8b> 03 89 c3 4d 85 f6 74 0d 41 89 1e b8 00 00 00
> >>>> (XEN) [    4.132744] Xen stack trace from rsp=ffff8304959ffce8:
> >>>> (XEN) [    4.132745]    0000000300000286 ffff830495bd8010 0000000000000003 ffff830495bd8010
> >>>> (XEN) [    4.132749]    ffff8304959ffdd0 ffff82d0405fa7ef ffff8304959ffd30 ffff82d040576877
> >>>> (XEN) [    4.132753]    000000000000000c ffff8304959ffd58 ffff82d04039b81d ffff8304959ffe28
> >>>> (XEN) [    4.132756]    0000000000000003 ffff830495bd8010 ffff8304959ffd80 ffff82d0405fa90b
> >>>> (XEN) [    4.132760]    ffff8304959ffdc8 ffff830495bd8010 ffff830498019650 ffff8304959ffdb8
> >>>> (XEN) [    4.132764]    ffff82d0403983e0 ffff830498019650 ffff8304959ffe28 ffff82d0405fa7ef
> >>>> (XEN) [    4.132767]    0000000000000018 ffffc9004002b900 ffff8304959ffdf8 ffff82d04039feba
> >>>> (XEN) [    4.132771]    ffff82d0405fa7ef ffff8304959ffe28 0000000000000000 ffffc9004002b900
> >>>> (XEN) [    4.132774]    0000000000000000 ffff8304959bb000 ffff8304959ffe78 ffff82d0405ff666
> >>>> (XEN) [    4.132778]    ffff82d0405713b8 00000000ffffffff 00a0fb0081f456e0 ffff8304959b3010
> >>>> (XEN) [    4.132782]    00000000c0000000 00000001ff000000 ffff8304959fff08 0000000000000040
> >>>> (XEN) [    4.132785]    000000ec00000001 ffff8304959fff08 ffff8304959a4000 0000000000000021
> >>>> (XEN) [    4.132789]    0000000000000000 ffffc9004002b900 ffff8304959ffef8 ffff82d0405711b2
> >>>> (XEN) [    4.132792]    0000000000000000 ffff888100456938 ffff8881001470b8 0000000000000018
> >>>> (XEN) [    4.132795]    0000000000000000 ffff8304959ffef8 ffff82d0406213f9 ffff8304959a4000
> >>>> (XEN) [    4.132799]    0000000000000000 ffff8304959a4000 0000000000000000 0000000000000000
> >>>> (XEN) [    4.132802]    ffff8304959fffff 0000000000000000 00007cfb6a6000d7 ffff82d0402012d3
> >>>> (XEN) [    4.132806]    0000000000000000 00000000ffffffff ffff8881001470b8 ffff888100b88900
> >>>> (XEN) [    4.132809]    ffffc9004002b900 ffff8881001470b8 0000000000000283 ffff888100456938
> >>>> (XEN) [    4.132813]    ffff888100065410 0000000000000000 0000000000000021 ffffffff81f7842a
> >>>> (XEN) [    4.132816] Xen call trace:
> >>>> (XEN) [    4.132819]    [<ffff82d0405779bd>] R pci_mmcfg_read+0x19e/0x1c7
> >>>> (XEN) [    4.132822]    [<ffff82d040576877>] F pci_conf_read32+0x55/0x5e
> >>>> (XEN) [    4.132826]    [<ffff82d04039b81d>] F pci_check_extcfg+0xb1/0x13b
> >>>> (XEN) [    4.132831]    [<ffff82d0405fa90b>] F physdev_check_pci_extcfg+0x11c/0x121
> >>>> (XEN) [    4.132833]    [<ffff82d0403983e0>] F drivers/passthrough/pci.c#iterate_all+0xa2/0xe2
> >>>> (XEN) [    4.132836]    [<ffff82d04039feba>] F pci_segment_iterate+0x4e/0x74
> >>>> (XEN) [    4.132839]    [<ffff82d0405ff666>] F do_physdev_op+0x362a/0x4161
> >>>> (XEN) [    4.132842]    [<ffff82d0405711b2>] F pv_hypercall+0x6be/0x838
> >>>> (XEN) [    4.132845]    [<ffff82d0402012d3>] F lstar_enter+0x143/0x148
> >>>> (XEN) [    4.132847] 
> >>>> (XEN) [    4.132848] Pagetable walk from ffff808000300100:
> >>>> (XEN) [    4.132851]  L4[0x101] = 0000000000000000 ffffffffffffffff
> >>>>
> >>>> There is an important comment in pci_mmcfg_arch_disable():
> >>>>
> >>>>     /*
> >>>>      * Don't use destroy_xen_mappings() here, or make sure that at least
> >>>>      * the necessary L4 entries get populated (so that they get properly
> >>>>      * propagated to guest domains' page tables).
> >>>>      */
> >>>>
> >>>> Hence it is wrong to bypass
> >>>>
> >>>>     mcfg_ioremap(cfg, idx, 0);
> >>>
> >>> Hm, I see.  The L4 slot must be unconditionally populated before we
> >>> clone the idle page-table, otherwise the mappings won't propagate.
> >>>
> >>> What about unconditionally populating the L4 slot in
> >>> subarch_init_memory()?  That seems less fragile than doing it in
> >>> pci_mmcfg_arch_disable().
> >>
> >> Less fragile - perhaps. Yet I don't see why we should populate the field if
> >> we wouldn't ever need it. Of course with violating layering some, we could
> >> know in subarch_init_memory(), as pci_setup() runs earlier.
> > 
> > How can Xen be sure at setup time that the slot will never be used?
> > The MMCFG could be empty initially when parsed by Xen, but MMCFG
> > regions might appear as a result of AML method execution (_CBA and
> > _CRS methods in hotplug host bridges).
> 
> Their usability may change, but how many of them there are (going to be) we
> need to know at boot time. See how pci_mmcfg_config_num, pci_mmcfg_config[],
> and pci_mmcfg_virt[] are initialized (all by __init functions). If regions
> could truly appear "out of the blue", we'd have a bigger problem.

My copy of the PCI Firmware Spec v3.3 contains:

"4.1.2. MCFG Table Description

The MCFG table is an ACPI table that is used to communicate the base
addresses corresponding to the non-hot removable PCI Segment Groups
range within a PCI Segment Group available to the operating system at
boot.

[...]

4.1.3. The _CBA Method

Some systems may support hot plug of host bridges that introduce
either a range of buses within an existing PCI Segment Group or
introduce a new PCI Segment Group. For example, each I/O chip in a
multi-chip PCI Express root complex implementation could start a new
PCI Segment Group."

Together with this:

"The MCFG table format allows for more than one memory mapped base
address entry provided each entry (memory mapped configuration space
base address allocation structure) corresponds to a unique PCI Segment
Group consisting of 256 PCI buses. Multiple entries corresponding to a
single PCI Segment Group is not allowed."

Given that each segment group can only appear once in the MCFG, and
that the _CBA method can introduce new segment groups, it would seem
to me the spec does allow for new segments appearing exclusively as
the return of _CBA method?  It does read as if hot-removable segment
groups must not appear in the MCFG table.  I'm not finding any clear
statement in the spec that says that ECAM areas must previously appear
in the MCFG table.

I'm not sure how common that is, but it doesn't seem impossible given
my reading of the spec.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 15:29:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 15:29:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218703.1527546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmvrx-0005pk-Fe; Mon, 02 Feb 2026 15:29:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218703.1527546; Mon, 02 Feb 2026 15:29: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 1vmvrx-0005pd-C5; Mon, 02 Feb 2026 15:29:41 +0000
Received: by outflank-mailman (input) for mailman id 1218703;
 Mon, 02 Feb 2026 15:29: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmvrv-0005pU-TO
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 15:29:39 +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 f7192ee0-004b-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 16:29:29 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4801d7c72a5so36454675e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 07:29:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482da8eb486sm116694315e9.2.2026.02.02.07.29.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 07:29:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7192ee0-004b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770046169; x=1770650969; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rKNCIdpPq/tuIdCIDyIiLj7kZ34g6C5eqDuZl6x1E4Q=;
        b=BC6et0N6YJZM5myo8qfQtn+oGdy5MZc+683uO/poAlxhyznEnrPaE0EVCwuuOwWTs4
         jxu7imRahhdFrNwxVUNybG5WBzs6+DazCPFq4JIlE/u/n0L1ro65KuewpMihmIMum/Um
         BcORaCpxQp/IZmEOmCAf6xpd7e9LapIvKz+FOaZPT3qNkm9V+xm8EbrIZ3v9WX4QYZkK
         PMLxOu2wzG/YTAz9vdXYqJOIn6+r+y7YD79xV8Ywhwrb0OIQZhY9B7bnHTQ7eVdbhjoq
         7HMMBJ7oifGYN0Kom2+0c0xsfjY+SQINaHyAXthdAdNeX3RmHkwwOcUIpfZdKmGkS5cn
         UXiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770046169; x=1770650969;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rKNCIdpPq/tuIdCIDyIiLj7kZ34g6C5eqDuZl6x1E4Q=;
        b=AyN66Cuc6003Te+7rX3ma2vUM7L6KteetmtShLGECDCCYH6xaI92bLgnxR9NpBRJoM
         npCngQIygY16i/KGRiDTkc9qZGYWmd5ZT+qcIJFo0N3FfDxF7VQDILHZ0d9OUaLZ3Vfl
         GubKW1actORoEo4S4s+hrWTmL+ZHjDdZz1yQg9Dzhus4BIhmUeVtKzo4PvqTZJ60XmHa
         JsFXeDR3bb977ngqwVM6ZFsbBIM+EslYGfxyNaHolgIAW1IUTAD/epsRvzDFXyG5Yu68
         RZeDCdW9CDuuLjS/m4rxWSmi7WigbakXVLZ4BeotJtvvALg1FLEC/QkNuYc5yEhDU/ph
         PL/Q==
X-Forwarded-Encrypted: i=1; AJvYcCWJqrpmFvkSuFrYPSpOXG+GSwO1RP1nwEJWN/uiwxttAnv1mgNgM6aqM4GDrpheYQUU6dDPnNJTzIA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw+fiepD7Ix2hzQGnXgysmSt6Ro1WVzA10bRqgBPICN3HIbqtFC
	xOCaVs+8q2xJTCEsFaKuHi5oHf4N8rygcfsLjj2R4ULPxzG2nBtawmehQnO7BIX2UA==
X-Gm-Gg: AZuq6aIu/pOPlgmpMGFtr3JmeQJHvTBLm+S6qVOvI8u0OLhniQx0SI6vvGAolxgD0K4
	emKYDlEr1Egu/YHpxgdkzcvKB/DRejfCsxg0TpEBI0GOjFgiwCzzii5+DUR46WOabPhllwiaifS
	1q9Qq+Xa0XE7xWLAmw9sziguwCGCoKsDg0d0QP4TBS22KyY3ni2cFAqD7Hw7Nz++CdQxLhtfx7m
	9GFP6+kWr1scblLpSbEtnaa3qaMjGBRKFOT6xLSokvo9zD0XOc5gHToI+4MYI6qwgls7Q7CRdf0
	lyioevwrhjkt+NfRGsXm+qpW+RWi7CpYBOrpMkTOuZ4Yc5LKeUVhIquKXTerbUEGeNzBe0SXQMB
	mDeTbxMrYtJL6goUUBaZuQwiqaS47ou3EGK8eRVcnFBywCpMl/CE9YnrwNAYmqzaXaJq0ycQ2fv
	NgigNYfQdOhqg+5UD8L9EoG1t2meoy+KI94cM+tetJTLarmYd9K7WnDM/RD/AGpuz+p4S/+9x0n
	Dx0Lj+eUT2YNA==
X-Received: by 2002:a05:600c:608e:b0:45c:4470:271c with SMTP id 5b1f17b1804b1-482db4d8210mr135858435e9.18.1770046168779;
        Mon, 02 Feb 2026 07:29:28 -0800 (PST)
Message-ID: <d473449c-a71e-416b-bfe2-2befafe051a0@suse.com>
Date: Mon, 2 Feb 2026 16:29:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/4] xen/mm: remove aliasing of PGC_need_scrub over
 PGC_allocated
To: Roger Pau Monne <roger.pau@citrix.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>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>, xen-devel@lists.xenproject.org
References: <20260130145726.85907-1-roger.pau@citrix.com>
 <20260130145726.85907-2-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260130145726.85907-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.01.2026 15:57, Roger Pau Monne wrote:
> Future changes will care about the state of the PGC_need_scrub flag even
> when pages have the PGC_allocated set, and hence it's no longer possible to
> alias both values.  Also introduce PGC_need_scrub to the set of preserved
> flags, so it's not dropped by assign_pages().
> 
> No functional change intended, albeit the page counter on x86 looses a bit.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> 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 Feb 02 15:45:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 15:45:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218714.1527556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmw6p-00004r-Kk; Mon, 02 Feb 2026 15:45:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218714.1527556; Mon, 02 Feb 2026 15: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 1vmw6p-0008WQ-I1; Mon, 02 Feb 2026 15:45:03 +0000
Received: by outflank-mailman (input) for mailman id 1218714;
 Mon, 02 Feb 2026 15:45: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=Zt3l=AG=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vmw6n-0008WK-Q7
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 15:45:02 +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 213bd6e0-004e-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 16:44:59 +0100 (CET)
Received: from AS8PR04CA0207.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::32)
 by DBBPR08MB10724.eurprd08.prod.outlook.com (2603:10a6:10:53d::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.8; Mon, 2 Feb
 2026 15:44:53 +0000
Received: from AM2PEPF0001C710.eurprd05.prod.outlook.com
 (2603:10a6:20b:2f3:cafe::36) by AS8PR04CA0207.outlook.office365.com
 (2603:10a6:20b:2f3::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Mon,
 2 Feb 2026 15:44:49 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C710.mail.protection.outlook.com (10.167.16.180) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 2 Feb 2026 15:44:49 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS2PR08MB9149.eurprd08.prod.outlook.com (2603:10a6:20b:57b::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 15:43:45 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 15:43: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: 213bd6e0-004e-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=bf/ROddWq9/4vwV3qy/jn0M42MjJYnZmZYJuescRanRn2leht2f/chWSwol3Lj3ITvUbUYKSGUEYNp4kZd3/+cDs2guku92lD/BE6Mu6f5nD1FQ0rvmr+he0m87Brtr0kBmyltR9Fj/dlwosz1ZQc/I/O+37dhyrX/Akm6d4XyKUGyl6i9+Ld0Outs2q/e2WFgxQycdzuKSIqJFD1ghgGShhijtJLKrbG8JJJjt8GNdy9bzmEx8Pc1gUCw0OzAEt4CqNCQF+s1VIm9XmUoJQELK1dCiD+2O1jwLzYLQHn0qrIc019wK9sy7T0BzKcV6W09/s4o+Cpn3XMJfCoix28A==
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=FpvcIkpvyGXzfz13UfvRzLS17Z0/02OvORajSRDjXn8=;
 b=xKFaBbrMfE2mRK2rtR3H/2AU99xLc9u9EZRS44D4TKUjhsnebScBnVwUKFqUEZvTLesXrE2UbJTTXQY5cJJmYMC/a4py5bxO6AHYL72npUAd/kLzaN0sgibD+HG0+uhwYfZPaxXOzZVWxURLy7Yu+RhNGyFuVUq9a76gt3KCi+xPOKTkaQ40IdVcJbb/dg/hgYH3sQzD/yHascOmFvopdyGu91rM5VUdgzyVu8Ygwx7fgGrRibAhSjTF98edhTV2AZ7MvrbD91+S1pLnCtA8F06onl7wuZY4qtvpHib/YdF/zzpwutPDFOB3Ic8eclcvR43CiDY4e9zjPfO+uy9WwA==
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=FpvcIkpvyGXzfz13UfvRzLS17Z0/02OvORajSRDjXn8=;
 b=DukJHWRRz9iAfT2dv4PuD5uVVHPhaWkuK/LAAbZqhuZr+DS0DT3VDoV0Zu6THhgRG9sN/gQ9pYI+OFbl8b4LkUvQSv6p0NrSMpwZBC9tMWBFIXIxe75pOLJRwjhZkFczrBxQn9copwHzj70zgmAPhql0q54USby6PGBvVXD/jhw=
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=AzBa3tyhDY9JJzKINGzs3aqKzCHjdqOoNE47oDdx2+VT3yaFrvSyxMUJaVWlUtbw6XyMUeIulx7CGUyR456HrHJaoD0EHoBqJYjtHMIEiCWR5x/mclY65UhlxPsCS3mOhag1RaRLbmTwy56ucu+ajBYwhK16vRm78hhvP8PLcMYr0t3v62g1M4cp2M00DA2XD/iXwlPwhopSYRCMzII2WQoo+gNncYLRSJWmbVJTQp4DxUI00xS6fvHr0Wn0bqN/Lv7eVxORoOK1BgrGXWC1eiSmtPyhSJWBqkv2rs6j+Gz43vUhLc/H/TIk5hdfcpR7Aj8vQpKZ9v+VQudn2Rczxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FpvcIkpvyGXzfz13UfvRzLS17Z0/02OvORajSRDjXn8=;
 b=bpeb/9ccHSE7NjNKy9MYSLC9sANmCZcRu4VN99JdYq3oii9g8vZtZL2l8kWMxzPRV8PhGl+txi6f/gr0JCHRncMV4UV/ewDOp362bdam5tJZB7o19tEF+vM19x6MzUrgS2HTpfSUJyaO7L5npGe042BpwSqiPogEOLylkX4nszcHwwU6P7AZmqqIciGzUITQm7AZGiwRYlw9+jO2ad3psRMNJzUhjhYGNaXkaDJyuhRaOUBTJ1YKZZ2Mrc7YcbXxkSEjsD8zeCWRJbRZ2hOqU9gOiPkjm9zoVusssy18rLCpO7TBryYXWgXzpHPZC1jy+nWBJqcJdAlikNKkQqrCbQ==
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=FpvcIkpvyGXzfz13UfvRzLS17Z0/02OvORajSRDjXn8=;
 b=DukJHWRRz9iAfT2dv4PuD5uVVHPhaWkuK/LAAbZqhuZr+DS0DT3VDoV0Zu6THhgRG9sN/gQ9pYI+OFbl8b4LkUvQSv6p0NrSMpwZBC9tMWBFIXIxe75pOLJRwjhZkFczrBxQn9copwHzj70zgmAPhql0q54USby6PGBvVXD/jhw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Julien
 Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Michal Orzel
	<michal.orzel@amd.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] non-x86/symbols: check table sizes don't change between
 linking passes 2 and 3
Thread-Topic: [PATCH] non-x86/symbols: check table sizes don't change between
 linking passes 2 and 3
Thread-Index: AQHclFKZFLmIJ4wDWEaNoDc/7xfy07VvjLsA
Date: Mon, 2 Feb 2026 15:43:44 +0000
Message-ID: <06A76039-1EE2-4D48-A418-9C6192A57968@arm.com>
References: <b61b7054-b27f-47fc-b268-f1dae3f1980d@suse.com>
In-Reply-To: <b61b7054-b27f-47fc-b268-f1dae3f1980d@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS2PR08MB9149:EE_|AM2PEPF0001C710:EE_|DBBPR08MB10724:EE_
X-MS-Office365-Filtering-Correlation-Id: 5bb3cc29-c944-4e1e-36a7-08de6271ffc5
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?Arq6zwcv00+F1sBszq2EBYP5OhAlvmfCHp3Kq+b5WTcDYZc2zs61+Ey1IQu2?=
 =?us-ascii?Q?Ke9ztLZffjXkSrdITGRqFVsgyFRGFPZjz59n6fSbBkXQY5hYMsNl6kXnlufZ?=
 =?us-ascii?Q?PIQw3yR/VVpTyHtYbr2UqJWKjpf2K6MYorW0IZU4ihJC8xqqr0oRrL2cIAmV?=
 =?us-ascii?Q?Dx3pX7hc5sABwvjIPOCqPgg5mZhkiYTBwfJ54dY9W2oj80LQ7Stgvqv9TC9d?=
 =?us-ascii?Q?pfwaNgipx9Jqi0YDbls4Ypq++LwolmBN96n/XR6JOTW10ZRaaO4O6DaV3dh8?=
 =?us-ascii?Q?0b72kpTxp4BwY4bY4rZLgyewBmGh/jbujrhBgJ5j2f7thwIGPUSeI6xDJUqs?=
 =?us-ascii?Q?peob2T04zUs2FMfQEs4RWQG03hZWauLbazT2q4bmhp8JwKpfHCiCYY4OFCo1?=
 =?us-ascii?Q?CYnsM8zJFNxyfnTn3OUVR0oqPN2HoQ3gscmL1ENZgGjREEaE/Auy4w87RWRC?=
 =?us-ascii?Q?PdTaxH+aOOrid9tCmIM+BDY5RRLiw3TTSR55nPsvZsV+4M+XS6Uc5DMj6pm1?=
 =?us-ascii?Q?w4POZX/rqI1YmDGQMA5qPCwi8SFf6ACtPS5xf4+341NrnAYSKvSc8elBQOYE?=
 =?us-ascii?Q?ulRGce2ebPwLw5iPUCKViKe0eCLrGJYCCgHjaWX1Mn+qkkyjHKxKgUHe3Ps/?=
 =?us-ascii?Q?CKospR6ty01HSrBF8kaiB5IYZ0H+dUGeqVyzK8xHMABJDjbrQ3jndx3JPYGz?=
 =?us-ascii?Q?UDkvMsazsGZI68vNSKUYSRdr2Cm9597E04wW1LMZQiNWbfj85brYwHFO/ig4?=
 =?us-ascii?Q?M4BrBQDF2fHuZ0IgNhxaVqaXCHf0PbS9ksabxlNeN3JRgJJFfs1MZyABJ16B?=
 =?us-ascii?Q?+4KHvDs4MUTySEspty/EUfozGBl7KKPPCbmpgH7x4cZPv8KGHA6tNQ6kOjSJ?=
 =?us-ascii?Q?Kz3H2YZDNYSNMJfufue6eXHeaCV/idpDBNQJT8/kbY3ZT2EF2nJN3S2LjW7A?=
 =?us-ascii?Q?AiJ3DZTKb5PNyswkOqQJzQdE1JsoqJ0qfT6wrkDrIbT4s4IJ93+S0N8p5nSR?=
 =?us-ascii?Q?1ayAys/Ht/yOKYO2ETPb4lq0yf2DPnvTIT2nhjj7Coz3UPP7BM5xnOz48v2D?=
 =?us-ascii?Q?JD+SaHNau/XBvB6yWOFHvkJQvZBJ9LsvlGTBONijWRMTYSgrj3qFeHOqZNe0?=
 =?us-ascii?Q?ngkX/eg5igH8aDyHtmz40xsK5AO3Hg7Px2W0E1edkZcortlKPAfjCinQvTV4?=
 =?us-ascii?Q?HPdD44rvnPgK2GtoNptz4tVJcbRa/AnL2ZBhJHARKoqwzHQx+NA+EJcqkUIM?=
 =?us-ascii?Q?CnBEor353+0xEWL5QTFFKnXKVLyiAFHfbs+hIAJM/GEC/z0ufgeCb+IRNIE7?=
 =?us-ascii?Q?joZpznjc7EOgo0dXF3oMfXW9Ge6k80+tM/4ug7Nm5xsz0VdF5f/SxtfudWHa?=
 =?us-ascii?Q?eoR+LfKsJBejjVRb73mdMT5wiA9se5vTX51EopA6K0UzmaUSFREEkQqOzNKl?=
 =?us-ascii?Q?c2HKg5hjZ3YtpHK/ePVT+2lboD135tRvBFJs2L/1Ni3fZRticKo15kKOmWyP?=
 =?us-ascii?Q?qm3wkh2/cEfM9lM11t7uTM4OH6ABJu1gPa6reN4XNVx6eMEn6mawa13v8+lZ?=
 =?us-ascii?Q?2tnmMKcc1mGU1z5s0MEpRGH7d86ZvPniYbyqTfsEHd6IY4f9wr9IukkOH3Pe?=
 =?us-ascii?Q?zpgx2xFHAGgxgB7EdZ3gTNE=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <10B0045AAB6171489208B99594E145BD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9149
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a6a2c270-87ae-4c2a-5fee-08de6271d932
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|14060799003|35042699022|7416014|1800799024|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Hk1/yc1DQA5ngbI2eUt5LD1TMqGy0wJJyctOSMNelKeiwTsfVDluMfPGRJMJ?=
 =?us-ascii?Q?6SoBMeS6YGo+TZApuLTxsuzzU/gRvvM3wYXR9MxPmosNEy+glr5wphjnqeFP?=
 =?us-ascii?Q?N2Ut9JR1zs+72efs/unbwbJ6ySBfx7F8tOix6t5yU/7C0xtB7fIl8U/zZTsN?=
 =?us-ascii?Q?bHnrECjeGqoYChnf/0fYYfPT194nBCvlL6K57Ro/crEruAxojnAOlMhWUCLZ?=
 =?us-ascii?Q?Z33621xeAkYWDoXY1VR0iQXR+SLeWEw7CDJpnypKvdpWZN5g6/jKC5YMgF+v?=
 =?us-ascii?Q?SrMAG3Ab6e/vvfka3eq3kHgWbkioIvWGNsV2eZ3j27iHhUweKtnHA7eDh+ec?=
 =?us-ascii?Q?vBX4AuNJhaQUUrK6Cf1oAGHn1p8soEJambxsNHmcPJazf88Z4KcYgPtdC89e?=
 =?us-ascii?Q?h2I2luWGN/xpNeFeyXWElc+/QyP/JUhZHIyrCXT2mUXwoPsFkVIesfiiCasB?=
 =?us-ascii?Q?ml39PBygRVsyGrYXArXSdTKqQV2IH6PR3NnZRHaL2onOGsPhEDnOmg/vq/Mg?=
 =?us-ascii?Q?HMzKxKYmoDNmcGUI1HYfFcq9ARaa8beZoyQPCWAJBenJNUOJcwvh0mRZAqMT?=
 =?us-ascii?Q?lrMFtivDeJp30DxhtVeGm4eIaKmMDqYwwErty6JqTa/dyagO0Iq6j6JCRS9t?=
 =?us-ascii?Q?MPIMUMG/Y7M0+1T1cF1mJBy4AWze/y4/q4zA0U2p6bFwWjTfuEnAZM8yT2pA?=
 =?us-ascii?Q?EPb5la63rWm5erN/RjkAalk06mAVsNvZj7Jd9Y+qNU86UG16GSWeIW4J3mXu?=
 =?us-ascii?Q?SjWKpKLvQTcISlnjnyogTie7ej5c2xeJg9aU9e++kmiAcXg+K6lcsLJ1rluV?=
 =?us-ascii?Q?WYrt181dRpq0o+2p/XgmYIT5i32+cteoFiPLPX4brnUP965QHkDTgi1QxWPz?=
 =?us-ascii?Q?LtRvGMEQ1NgETin/b+B6xczu0qtt0edmn0VhF/awZeRFor9lerawqOuOF+kL?=
 =?us-ascii?Q?p6yF+/jmo9u89aE2gWot7xkfNMXORwTwLJMOSf2yzUcwNBQcWWwik2klIj2L?=
 =?us-ascii?Q?hFg23qFPfZ+3LPHmyUmjlr4tHkb3Xzv8Q7v401mF2hR0KnnDTI7XxpI/SvQ0?=
 =?us-ascii?Q?fqwWF5/JmhNTgcO5pMg/qPADQGp43mof7KtQVS1NYrcR8/0kt4ymPdJ7Lm+M?=
 =?us-ascii?Q?xYgpnDQJSIilmXlVvGbFSeAVZPR0f8USNHsZ07uLCxN+N7E/jfd1tgFUTwh0?=
 =?us-ascii?Q?4N9znj0TOOdV9hiuu6xGTE2JS9qvLTmPePsDY4+/wK/rBnN6tQxYZXWZUWtA?=
 =?us-ascii?Q?4Ko6jLeJUp+q+kV6Afttbtm1UAahYkb3MqPbnZHhE1iUbiHo9VLJzHjVQtE9?=
 =?us-ascii?Q?/LOPHSQboUUwBfy/bfK+8TTlZsw17YPpR3A2W+UuXxxS+bsTeB6WADaLe8bx?=
 =?us-ascii?Q?DN3r7Q0t97R3JmWml/U+1ve7tkPcJY/zqJnRwzsctzKsDsDHatmPjW71GQ/6?=
 =?us-ascii?Q?6ics4bf+vtofHqxKiRbaArOM9zYZ85KTcurGX5pQTlok/IEbC3BIkchdKfae?=
 =?us-ascii?Q?aOWfNu803nkmhO+yQNCDcKvy+is7UNBrasmyqN5khLqRvPpdVMPEZcppJRC7?=
 =?us-ascii?Q?X37APPhEJtbwO5+O9ojCH+LfV3A3ze1PsFvUabJS6PBJ+8N5qp4x/EuBi1tw?=
 =?us-ascii?Q?fqjuNC+skZhEvSV35EvIqcNfGk1kI46J+kYOQ4SbNBJ0OGDx4HhA7fiRWKnO?=
 =?us-ascii?Q?Y3nOPA=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)(376014)(14060799003)(35042699022)(7416014)(1800799024)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ES+ieoLD5uUoVz6BKe774jv+TQNngUc/F3XNxshb/bGwCsXU6vRdjKbcUTu6ejA9pFoCEnc1Bca6UTCqgiJBWnBv74HWNfJeWneoyS8EvOL+N15O6zcBDqmrajNFaYE2dIQW9unjdQRooeSVD+9jiIKUu6Zzpq8aq6LHzH9ZKtM83o69lCcGCWTQS+CltVX6tfkuEKJsaYKu4AUoQZTGNdS6WkVJ9wgwS5i76nA4ZdrYatOVemBzVn8VoFxgsyuOz4wTlBmDd0TLf1DVyKY4haW4MXGnVUPnFmiNY97tN0wf0Lgi5P7mSZXfoAaj2vEKOkEJfu6Du7b9C9RtOSDTVv1SqJgNNLY6tVigx86LUaAXp2BX0BUYJeQi38Z6xFptFU79U0fOlPWPT1XSgLFJ3Qw8ZDWCPH9nia0J5SWzcYoDaY2QR6oAB6Vv1aS32fzo
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 15:44:49.4276
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5bb3cc29-c944-4e1e-36a7-08de6271ffc5
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:
	AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10724

Hi Jan,

I checked that xen on arm is still compiling properly with that so

> On 2 Feb 2026, at 15:45, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> Extend commit 1df11ccceb1a ("symbols: check table sizes don't change
> between linking passes 2 and 3") to other ports as well.
>=20
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

For Arm:
Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

>=20
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -99,6 +99,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
> | $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> > $(dot-target).2.S
> $(MAKE) $(build)=3D$(@D) $(dot-target).2.o
> + $(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
> $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>    $(dot-target).2.o -o $@
> $(NM) -pa --format=3Dsysv $@ \
> --- a/xen/arch/ppc/Makefile
> +++ b/xen/arch/ppc/Makefile
> @@ -26,6 +26,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
> | $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> > $(dot-target).2.S
> $(MAKE) $(build)=3D$(@D) $(dot-target).2.o
> + $(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
> $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>    $(dot-target).2.o -o $@
> $(NM) -pa --format=3Dsysv $@ \
> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -40,6 +40,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
> | $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
> > $(dot-target).2.S
> $(MAKE) $(build)=3D$(@D) $(dot-target).2.o
> + $(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
> $(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>    $(dot-target).2.o -o $@
> $(NM) -pa --format=3Dsysv $@ \



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 15:50:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 15:50:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218723.1527566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwCK-0001oJ-Bc; Mon, 02 Feb 2026 15:50:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218723.1527566; Mon, 02 Feb 2026 15:50:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwCK-0001oC-7A; Mon, 02 Feb 2026 15:50:44 +0000
Received: by outflank-mailman (input) for mailman id 1218723;
 Mon, 02 Feb 2026 15: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmwCI-0001o6-V7
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 15:50:42 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ecd9ff95-004e-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 16:50:41 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH2PR03MB5253.namprd03.prod.outlook.com (2603:10b6:610:97::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Mon, 2 Feb
 2026 15:50:38 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 15:50: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: ecd9ff95-004e-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C6mgCZu5bGPBqIa9ALF4mmiLPODJ2/bSTHliSIYEcG+0qyPd2A9BYR4h0T3cWxEH1XDiys04azBbWEF5uAOxiSiAtXcuzSr6rKI7sXFf10mGACJ5mcLjbC5O92hEx5ivj4OvfC9k20breSzA5YnsJeQmPkU8rtLzC1oHFs+uXbAkHm7FsA7/f00USwmQm55fr3Yctgxv1QwY+MDx7gd5EhrPFuUWREyjaVDptpkzExlVnAV6j0Df32fNipH2z0qcTARkWef76z/FauaR5PXmqkGLd8wJloaP0PNuPghsNLd58Fn0T2hWuNrUU9naFgwhtl673AICAfMKPx19W7qUqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+RRRC0MOrEnYrxIii09KIC60Ite75AJyfTqgG+qhec=;
 b=RaGQSUuWFdo3cJnb57ydR5bqGXZ4ZsZr/9ZsHktIkYWw2kk0j0NT1nna1YOs+wfJlLz6vskJWiaxMgNVk3GlYs3WHIl90QM48koJMbU0ntVH5hT6ROQjnkfDnGOBiAhrqt9z//DZnVMUQCsvaxbzLeHfZG0GFeUXDIEkcf7c4dLXdtXWMfYBepl1DH5EsAzKrhv9C5rATxwj7gB/RNksaVhmY2OS9haAKW+atBINe7sYeqqh5BIJfoZOjEcFo+a4tRtZWKrNvdOETcwBaGe/DbPt9TaDE5K4fh6IIwiTRwmW1PjJS0e9oe9QOX05HAAVQsL/1Ll69XmPLgHwXF8b8g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v+RRRC0MOrEnYrxIii09KIC60Ite75AJyfTqgG+qhec=;
 b=tYcJma2werApM5lh33g15QEzOeuSH8yzKsC19secqJX6+7pU8mlhqqqIug60kjq+sEJgkq7/ebndyd2Fxxm5f3ZAfUqiwRn8b7lf/35RM7K3AGciNTygGy/XF4XwBwHDHm3k0aInmcYXO24MuBxQAHI/p95TiZYopHvTBnKk3OM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 16:50:34 +0100
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] CPU: abstract read-mostly-ness for per-CPU cpumask_var_t
 variables
Message-ID: <aYDHyutbi9EQcOe4@Mac.lan>
References: <fe35f075-ff44-4942-bcd1-dcd917179867@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <fe35f075-ff44-4942-bcd1-dcd917179867@suse.com>
X-ClientProxiedBy: MR1P264CA0007.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH2PR03MB5253:EE_
X-MS-Office365-Filtering-Correlation-Id: 0533687a-d0cc-4f6e-55d5-08de6272cf51
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?Zys4NWROdkpRYUVES1ZYN01abk8vbXRtSDAwQ05uK2djV3pYZldFUXIzaXJG?=
 =?utf-8?B?NTc1WmV1NFBMQUNpallrQVU0MVBYV3U1SXY0c3lHVjczSHV2VDFiNXpIMHJN?=
 =?utf-8?B?OG5kOXdaZkVjbnVtRk5Sek5GTXduc0RNZmhXeHkxT2NWMlo0VEZoTVRVaThv?=
 =?utf-8?B?UmI5N3lqOUJUM0xwTkFyQnc3L3FTY3Fkc1IwU00wK1FGSGlnRDV0dlRORmVa?=
 =?utf-8?B?VWZHbzJhSGlIc2pMTmV0RmhHTnljUWpncStGVmlqd2NPYkNUd09nTFZHZVE4?=
 =?utf-8?B?a3BJdWVtOElUL0F5SHJYR1dpZEd5TkFDb0g2SDlNMWxWSXBqSVdEeDdPdHB4?=
 =?utf-8?B?SXZuUzJpSmV1NUl0OUlMaTFXUmo4ZjUwQmJHc2VBOUp4SWVkSUU3WkZmQUs0?=
 =?utf-8?B?UXNJZ2JjeFFmZHNrNXdOODM3azZYODZiZ0NNMWlzNTgyOW5NM3VvOEcvTzdD?=
 =?utf-8?B?b1p4VGVFZmVoVEtwYnljTTRWT0d6aEJ2dnlVL2N0K0xDbVVzU2UrS1RKcDho?=
 =?utf-8?B?bzNTak03OCs1eHNuRHpHT1VrbG1uUHRaNlVZUDB3OWVHOWRua2NtTktHV1JQ?=
 =?utf-8?B?aUVhdGwrenNXN1E2T0c5VGpnYXVJaitmMGJvNUw1WUU0SThPVGcxaWRkUk8z?=
 =?utf-8?B?b2s0QytCTWx5aFljM3VzT0pyclk5cm03QmhXUmRTRnJWSGFwVCtSOG9rTGlz?=
 =?utf-8?B?bTdZMy9OYnlJNHk1S0lURzI3ZTFUazBOWHRUalAyNGZzNWFWdWFoMlZUdHlK?=
 =?utf-8?B?Yk5xaGV6anVOQ0hnQWw3eFBGRFp4T0RKMFNLYzBNNk4ydU1YdmVZUmV2TW1u?=
 =?utf-8?B?a0FEajMzYlZJaGp5S1ZOL3J4eDVKeHpCS0QrMnF6ZXkvazZWTVdJTFo5S0xC?=
 =?utf-8?B?TitMQktQTXFQamkrL21kTUI0S3RmbWhhdlhNTXhkMjBuQUQ0Y3FaZ0wvQzU3?=
 =?utf-8?B?SHBJd3I1akc1Z1hYYU00bDMrMisrZGtvajFFYVdMN3Y2ZzU1WEhLZm9laGQr?=
 =?utf-8?B?YmFLSEN6Nm91eWM4K1JtamRURmhqRTZuc3FIK2tMNUVTZ1ZJVEcwTGdYRU0r?=
 =?utf-8?B?U2o5bXhjU1NvVnp6a21aeUhmbHhiNDV6M0szNWpFL1FDRGdMUHliU2JuVjF6?=
 =?utf-8?B?QWxxcGo5NTNISWJ2RkdUM0pSS1IreUFEL2ljL3VBT09JeU1VcHNQbzJiTEZD?=
 =?utf-8?B?a2FTZ2lydjhNRzM3UG01Mm5FbzB6ZW1uMiszSWc1L0pYblZiU1FVcTk3UmZh?=
 =?utf-8?B?UkNTL1lYcnVIUzNIUnE3OVV2ajdNdkhsbG9OTC9jcEZFbGpibkpHYXhxWFAv?=
 =?utf-8?B?S1V2N3BmYnpjV2V4NXlEbXZQUC85UCtzZ2tSc09YVlp0aDJQbVdmMUNHR1ow?=
 =?utf-8?B?YkpvQmxJVXNPTDM0cnYyVlNxczNsNkZaOUJZZXUwaHpGVlg2UHlHTW1ROTdn?=
 =?utf-8?B?SVloZWt5NUkwTFBHRkYxMG5lNTBpSkhUWmZNUEtyZzZnZXQrTk5iTmJ6QzR6?=
 =?utf-8?B?a01oalVKbzB0OHhFL090VGxEUVRsR0lvZE1jYnc4Z25CR01DZ3lyM29LMXhr?=
 =?utf-8?B?NXpEOGw0NFNqOVF0Z2sxWHFaSjJyY20wck1MbEo2eldnRVJyRWYrR1dPSmh3?=
 =?utf-8?B?U00wSi9Pd1QwcXJzN0RlaEFQNzF5bkxrZmI1UVZONThUc0JEV3RWdjA5S28z?=
 =?utf-8?B?S3Z4Q3FoZEtFSlRKVUlSRnV4Tmg2M1gyeUlYZnc1NmxvTEVvSzdaV0Q4QkFE?=
 =?utf-8?B?NndRV09leW5sRDVsaXpmSnAwU2VCUHA5eVZDUWN0M096Y3hiNWEzQndRL3Jm?=
 =?utf-8?B?QjMxSE85d3QyRGlhL2llbjV6TURPZ3hBcEQvU3JabUREMHZvVjYxMDZmb3Zy?=
 =?utf-8?B?cHNXNHRQTHdPeDMzQWtBVFlzR2w0Z0dWNHRVRkdBNXBEazhNcUFiWDFwV2I5?=
 =?utf-8?B?aEpCZThKVUVwM1g4QU50VUlSMDFPU2hWYUJ6dS9ndk5MRzZNa05Ia2xIOEdO?=
 =?utf-8?B?RVpGaHRrOVJpYzJxeFRGTnZzS0dHcXhWdy9vTmQ0UHFJNmdFMExCM1NjVUJB?=
 =?utf-8?B?Q1E5UFZzMTZzZTFyQzZRTVFveWhPb3VtZUh5dDcwMkZHSWUycldUZTdiN01s?=
 =?utf-8?Q?G2Xw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VVpaVnFTVHJ5ZXl6dzRMcnp0YWpodFcrS1VWb09GaVJOVGFENkRhVnd4RjU2?=
 =?utf-8?B?Tmo3UlNnekFVYXl2a1VxTGhBczdMMjBEZTVBSmFJRWZWbHVKbnJlYW1uUDdX?=
 =?utf-8?B?cGZKVTZScE1NQzNmQlJQbVlkTHVTVzQ2WGxUY0x1UHNuVjE4ZVg3ZkNIdVZS?=
 =?utf-8?B?YVg4OHRyQjNiVFExRTYzTGxENHBPMW9SZTBvYzUyanhKbXpHWlgwQjdqYjBh?=
 =?utf-8?B?REROdFhpSFJEKzdhYzQvaFFCS3JLRlFwS2grS3lKK01MODRlakxwd1pIR1Y4?=
 =?utf-8?B?TUUxSUVkZldCcWk0M2hrVnVhMjl1NDlaVmRPc0ZmSEFMc3N6MGJLSHJvUXBK?=
 =?utf-8?B?SkdTY0pGa1pydHBTclJtdkk0ZVF1L1ppSWlySWY5Z2lDaHo0eTZScjZDZEhi?=
 =?utf-8?B?NHJIcFR5S090WHZuOXFGUkZWdC84SzdDdDFObTVzRHBsYmFOYlFsVHU5UkVX?=
 =?utf-8?B?R01iTG5xSTY5cUdTUHJTa21xUzdGVDBQM3lMRFlncG1Bd3NrRzFFRUFkUUZW?=
 =?utf-8?B?ckdLTjN4YmhXWDd4eDhPYW91RTYrc1owQnhIVDRsRkw0QTBWaGpJY0NSNWZU?=
 =?utf-8?B?bUhEejBRa0xkazdxTkRYdFhmNGl3RzF4QzMxTTV6b2JKYlV3UFNjQlJZT3I4?=
 =?utf-8?B?OGw0K3diVmRIOC9mNTAwWC9semlydVdGVXg4U3VWU2Y3VlRqRU8yazhtYXZD?=
 =?utf-8?B?RUVXTlJJMG0zWXJxYnY4Qnl0UU1yR3F6YmxiQ2JGeVVxVndPYThvdnhXMk5Y?=
 =?utf-8?B?dXY5SUVERXArZ3BZUy9OUEt1cU9Kb3dNYnNjUjVQUXd4clpFMnkwWVVXdm5t?=
 =?utf-8?B?bnVGVWttYkdsbWtlc25adStpZXNmQU1KTHJ1U2FNUVBTd1E2V1VPTWZ2aDZE?=
 =?utf-8?B?ckw1cFozcUJxTGhxdWN0cWF5OTUrYVBWOThOZmFwSmFXeEVVajNFTlJzckxR?=
 =?utf-8?B?VVE2TUJGOGQxMGVUMXZKK0p5MTM1OUtyY09aR252dHBZaVQwYmphbEh4T28w?=
 =?utf-8?B?SVVNRFhpaktVZUpWYlJ6aWdKWXBqMkZWZDJoL3NXUlUyWVdhclFlOUY3Mk9V?=
 =?utf-8?B?cmVQRHFQWFlhRGZWSldvcXJ6eERpK2pVMTFLem9TSDB1Tkl2OE9ydi9uWVlI?=
 =?utf-8?B?aGJONkFtUzAxdmZhanNNbXFlUE5YVFhuYlY4MzUyc0Z3cDdOMXJTVnlZY2FB?=
 =?utf-8?B?MzhNZlZNTWZ4bitwY21ROUE3NEZpNVI3NkVvVSsvQ2xYZ3daRzJaNHlEN0xq?=
 =?utf-8?B?a29helRJSHFNZlB0T2JRVkNKcm5ycXNPbU9rWTBCdFdvSjdqYnllSmJRVmZl?=
 =?utf-8?B?WlUza2ljUlI3bk9hamY0VVFsb0Jsd053aW8yMHFMQmVrQi80YXV0RkFCb211?=
 =?utf-8?B?azZJOVpYUHdUVkN1c2liaGFlUVA4UnJiQ0Ezc0RSTGxUM2Q0UjhPNGoxaFBF?=
 =?utf-8?B?VzFrNWJjWWRIQ3BVMVdBbnE2ODRaYzNMQURFM3BXNU1pdFc5cVNNSFVkUUxS?=
 =?utf-8?B?aG5MUHUxN1BPa3pMa3dIZGJ4MkNMR3ozTnVTUEFSYXNYRDlpdkVtQ0xKTGJ5?=
 =?utf-8?B?SEE1VFlKY05GWEgzdGk2dWpJdEdDendDbHhZenBKclVVa1JyVnZvNHpjc0lH?=
 =?utf-8?B?V2JtclZpT2MwcU9HbmlRb1Avc3F1M0dacFBmOVkvUXZpbEkvK2tHRlJYSXAx?=
 =?utf-8?B?U1pSWVZHNVBPR1RFK0J4TmYzVHFHdVRMS0NHdzUzUUhpNSt1ZmpVSWw0d0Rp?=
 =?utf-8?B?bitNZHJTQXBKb1F6VVQwemx5amtURUhzQVQ2b0NWS0Z1UzkvS3c0WFRqT2RE?=
 =?utf-8?B?dUtlWVBIeGZHWU92TTBGSFZ3R1hnVTZHOEphZk9qTjV6REdNZGpoU1NhUFEx?=
 =?utf-8?B?ZWhnYWwzQ0FBOHVWd3ptcEk3TVR5MnA5bEdCd0g4UEhLSHhPTGxwZ0ZHdmtu?=
 =?utf-8?B?Tlc1V01RQmJ3MkVFb1VEMEJKNjY0ei9vTDF2Q0oybDIzVkV1ZXFVQWJPeWQv?=
 =?utf-8?B?YTluSzZIWC9TMTBNZWxDY2ZHeEMraDlaOUY3MlNnNzBDdEZPT1RjdUlxRVhY?=
 =?utf-8?B?ditNT09yQUkvRU40UVNYV3VpOFprWnAzNGU1YWQxUkEreXBwTHQvQ2JaeFJq?=
 =?utf-8?B?U0FFVy9lV3BOa3ZaU215aVB3Tk00Nk9tRW9xQ3pETVVHR21zQS9MWEdHWS84?=
 =?utf-8?B?VnFud0IyMXpxZXR6TS9kVjUzbm4vNHZ5V2Z3eURUdjgwNnBHSFBZdDV4ZGc3?=
 =?utf-8?B?VzgwTjdITzhSczRZN1RWc3hVaVd3Yi9lYW5SNm1QeUFRR09CZlpkbU5XcExp?=
 =?utf-8?B?RFYxT2pxVngwTkZhTGFNalpNWTkwdTVWeDJOK2xsemJ3OHozWUUyUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0533687a-d0cc-4f6e-55d5-08de6272cf51
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 15:50:37.9869
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kN2BeTL3dC+mnSVEY9YEsUAzv4vsnTYPFOVOHL58GmZDSyJLn0ehdcZI2Af4C8mPuDyaadCQpes0D1PmHpCR+A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5253

On Wed, Nov 12, 2025 at 04:53:27PM +0100, Jan Beulich wrote:
> cpumask_var_t can resolve to a pointer or to an array. While the pointer
> typically is allocated once for a CPU and then only read (i.e. wants to be
> marked read-mostly), the same isn't necessarily true for the array case.
> There things depend on how the variable is actually used. cpu_core_mask
> and cpu_sibling_mask (which all architectures have inherited from x86,
> which in turn is possibly wrong) are altered only as CPUs are brought up
> or down, so may remain uniformly read-mostly. Other (x86-only) instances
> want to change, to avoid disturbing adjacent read-mostly data.
> 
> While doing the x86 adjustment, also do one in the opposite direction,
> i.e. where there was no read-mostly annotation when it is applicable in
> the "pointer" case.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> Really in the pointer case it would be nice if the allocations could then
> also come from "read-mostly" space.

Hm, I guess for some of them yes, it would make sense to come from
__read_mostly space, but would require passing an extra parameter to
the DEFINE_ helper? Or introduce another variant.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 15:54:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 15:54:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218732.1527575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwGD-0002MS-Ot; Mon, 02 Feb 2026 15:54:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218732.1527575; Mon, 02 Feb 2026 15:54: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 1vmwGD-0002ML-M6; Mon, 02 Feb 2026 15:54:45 +0000
Received: by outflank-mailman (input) for mailman id 1218732;
 Mon, 02 Feb 2026 15: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmwGC-0002MF-Vn
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 15:54:44 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d19ea7f-004f-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 16:54:43 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by LV8PR03MB8140.namprd03.prod.outlook.com (2603:10b6:408:297::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 15:54:38 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 15:54: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: 7d19ea7f-004f-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nCV4cyEQe/jq0e0jyAMvGOwNbs9OFJnsoK+YErtmxR5yJQ7y5Y9DN5/2IhXZRviI5oNNwzpfQQJ0zpMw69IYxiWR3fhH+6wL+HzDzPp9CCtvPdFUiY9alEP9mROfclJhi8+mP1eo1mphDLbNmCJM6R+0azNcWyP+3K0KSPpmL/4g6oRJrdVsfCTdjqjVu1iQqMTmPzEY90KUt5ICojetr7B/11vplSYrKZuThfm9zboJEfWFL2/Iobz9Y/4MPDUEIXbPab9mjPhCy7q9TwsP0Sd9awti3xrO7bJlGJ49OCc9d9AyYAK3pUk0aW2B1XkuN2ZpJ0M9njlOM4Qrd3VNQA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pxKF+nXhb81kRca0jah7A9axpTFmCqfPSnAmvOVeh6g=;
 b=Wj0zAwMUPLgf/4iUspRm6i5vw9zytbCl+6O74Tf4r1yU7Upa7+uUMM+gEebgMm3dtnX9c6hOzS5+jqwmPwm2T7/J/nGN4nq/323z4HuyNEgftflbOt4TKysj+loh6Sh4BKtayJVeflbTI5F71x5Db3NnaE+sCw8JwsOTyrMSIWTia7MngJSWWCI4xSe3fjaE+K7bYfJysPwm6rH44DSUcCxRPdbMJ+Ow9WWik7RGVbu4VDOi7GhGKe3VZKZQYH3iylMJpgQHEMG/yMm7QAbAv3ZInm0ya2JKzwjp1XYf9yMMcBUbMJhufJlEcmhSC/nnRCpQT5YjJMOHLsUalssITg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pxKF+nXhb81kRca0jah7A9axpTFmCqfPSnAmvOVeh6g=;
 b=gtzR1a6yBaZiGhXVexRjLIAriESIHFQ02o4FzsdjyqgqYt9XIkXt0ZjaYzflAuLh/kJEcE/54uolY4GRC/v+XosCMLmfh1iRXKhRBk1PBc3G0EOooa/tKxISzeSN2KunwgulFmqTAbuNy+uUP3b28mhDIJaKjNLx4gO+1oOE2l4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 16:54:34 +0100
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/MSI: adjust permitted vector range
Message-ID: <aYDIusUCsFZaSaQH@Mac.lan>
References: <52227196-dbc9-4f6d-9c64-a5da5037b1ec@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <52227196-dbc9-4f6d-9c64-a5da5037b1ec@suse.com>
X-ClientProxiedBy: MA3P292CA0057.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|LV8PR03MB8140:EE_
X-MS-Office365-Filtering-Correlation-Id: 59b67e79-094b-4ad2-c567-08de62735e90
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?amkzYm1WUWRiMnhVemdFVUZMcFd4MHNpZjNaY0tKNmVvdmZ4VU4vaUJKV2Z1?=
 =?utf-8?B?M3R1OU5xY2tQeUduT21GaFdEZzRWaW50MEErbmdGWTV4UUxzbjdlVXRHdTlM?=
 =?utf-8?B?WlNlblhhRUpqMVZSZnhoeEJUNGZ3U3V6MkExUFh6QlhxcGhJVitBUFB0R0gv?=
 =?utf-8?B?R01TNUdHVnVDUjlIbmJteTJhZXR1UzdSOHlydWFoZk5OaFBkeDdOTjN1L293?=
 =?utf-8?B?SHdTbkZIYUtzMUhDd1VLU3l4bmx1bXU4SmRnejUrb05kSXpCZTB6dDUxVkJj?=
 =?utf-8?B?bDEwUmJtY21NVWtxM3NzYk4rbTVRQkZkWXJBVm9Ca25kK0Iybk5ReEo3T2VT?=
 =?utf-8?B?MG9PRjE1NFhyN1dRVDJXbEI2T3ROSlp5Ryt2ZDFjR0p6bG51ODBXU3VYMitQ?=
 =?utf-8?B?WldRSkM2Znk0MFZOc3lyQ2NpVG1ITzlyb1NXZENjVTdKanN2VzNqOHdOZ2RD?=
 =?utf-8?B?dkhIUkxVTFdDL3ZXR3RPMnpPOXRsaWRGUWtzSEd6bGFPNTZ4SFdhZWVLVXJ5?=
 =?utf-8?B?QlNOVkFQa1JwNDFTaUNYTlZMVWNsNW45R29pMU10NHVzSVhOVVNYUFQycTNP?=
 =?utf-8?B?eEp4VVB0ZGpKZCsrWDNOZWJEeXNVQzNpV0V3L3lhSW5NMlVQS25QcjNPSEpY?=
 =?utf-8?B?K05SNzhTZTVKYXRlZStta0QwcnZFaXp3QThqUURFV0ltMDBSOFp0b1N1V3I2?=
 =?utf-8?B?YU1ncUhlMGNXTXh5bmpmMEg2YWJvbGNCUmo2eVpnbURCWHFabEJxTFIrK3FJ?=
 =?utf-8?B?TlBxeWJMMFNJUFYvS0xhUmYzSFo4MmJGb2lMaHNBQ1dvNDJ2K3h3b2VqTEZW?=
 =?utf-8?B?Mk9nbGEzOGRFQmpnMXI3dkNwbEtCdjNscFc2aTNuZkY3bDdvNkU2ZUgwK1BD?=
 =?utf-8?B?d3Z4V0ZyWkhSNUhzbE5PbldKK2IrNG1XcFdNVG9EVDFRMVV5SjZHYS9Bd0NE?=
 =?utf-8?B?ckFWc3krcnRTWkIxU1ZkR0k2dHVPUGF2aGFubnUrTmIzVWdhWHoxWEk1Qy9j?=
 =?utf-8?B?akw4NUF4QTZ6RjRvSnErL0FuNEF4ZGZTbk9jTjZaVFRZNjNXdWErcURpTE5z?=
 =?utf-8?B?d0F6d3pMcEhPVEZkK2NvQk8vWm1zeWRsU01IT0QxY1I3MTBRNHh1SFhFZWt0?=
 =?utf-8?B?a2dtcEEvNHlQNzZEdERKc2RJQ2JndkxJUEhIbWhtbDhNMmZZR1BoS2Z3TEpU?=
 =?utf-8?B?L3orWm96M3I5TW1Xek5VZ3hKM0k0aHpzMWwwUUlOc1djWi8wWXBMRENlUjlQ?=
 =?utf-8?B?QXcrOGEvMnVDRU5XQk1JdXdzYlY1YlNhUUpjVDVFZ1VHbUpBUXZ2Y2hyQkNz?=
 =?utf-8?B?ZlpjWHdlVUpIb29jT0xFUWh3R2NuZ3picHRNTDlORnZ4cnViaG8wTllLbkZS?=
 =?utf-8?B?SnRFem5BbGk3ZG0zc1RCVUlDNytZOTIxS0NEeUNKaVJwVXVaWmNtQ2FVUXZh?=
 =?utf-8?B?ai8zM29Od1R4blNUTTVEMWdRZitZK2dKaTNuWmZjVk5kRGFwVVFtQ2NwZGNX?=
 =?utf-8?B?cGluc0NjSHFCb3E3cGliUTgyS0lXbXdJdzJ0WHd0dzZ3OGpBT3BVNXJVZDJt?=
 =?utf-8?B?REtpcEZBclNlNDdBVDQzWEY0eVB5cFE3ZFNnSXFSdUNQUXRXVkJVV0ZhQW00?=
 =?utf-8?B?WWY0NUN6enRJcENLbHVkSnYrZTE2dGdWWDNKY2YvQ1hHRVhjdE9yU083c01K?=
 =?utf-8?B?eGFIRStteFVCcW90Z3BHUFFDamdlR3N2RGQ0b1R6Z242MkZDQXlUWm1EYlpS?=
 =?utf-8?B?bjhkL3MrSDNaN3JJcStzZ0dCRTA4L0gvTFdRaWt4Q2Rac0dZMzFaWE03QWQ4?=
 =?utf-8?B?ZGRlTDVVQjN1Ukh3RmQ4SmQxRHBWdHJYc0RnR0JUM2N1eU1keWFkbDVab2tO?=
 =?utf-8?B?TkxWSk9BZ0lnc253T3NlY1BCSWt2UTdrL0tHbVUxRFlobFpHdmRBd2RaNmJR?=
 =?utf-8?B?QjFEQXNaaUlnT0tQZmJaKzZCdG9URjljVWdvQnZWYWJ4Q2w3YkxOTnM3Q0pZ?=
 =?utf-8?B?RVhSMEcyWlhvaTFDZFU2N2dqNEZ4SmJ1TmhQM1lmWmwxN0xndFlUSExOWDFj?=
 =?utf-8?B?MkpOVU5HSWNuSk5CL0ZFQURNYlNCVWJaeFI0RktYMEdHcm55OVF2SEhsNUdW?=
 =?utf-8?Q?v7Q4=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aTBqZFk4MlRxWkFzQ29JTU1lbGkyYW5vRTVOSzRSTG1BbDFPTWdqbVlUM0Fz?=
 =?utf-8?B?RXJLN09TQkNCMlJydGlGTTIzV1E4b0xWUC9sdjRkeHpSci9RMGZ5SW5zUDJ5?=
 =?utf-8?B?UUVJSGM2OTN6YmJxMGRnM2ZScGlaZmZ4by8yRGczZ0R3V2dmdVlZOXNtMTg0?=
 =?utf-8?B?Qm5JL1hoZE9zcjk2UDY5c0RUNGhRUnZxd0ZGR09SWlFzaUZTRHVFSE83eXBD?=
 =?utf-8?B?ZjB6RWlnaGhVbW40ZWxiTlpyRHpVZzJvV21Mbko1ckJaU0F6M05QZ3hyamRs?=
 =?utf-8?B?Zk5MUmxDUEFEUW8zb25YRzNycEF3d2x5ZzBONlFpUVEvNWxyUFVGNU1HSlNq?=
 =?utf-8?B?VlRFYUFtT0c4ZVVneUZXK0NpSmhOMzZpcTdWUXNMRHZzVkhqalJLLzVkdVd6?=
 =?utf-8?B?eVh6eHNKQ0RiS0RuYkhsa3V1UlBFYk9obE4xdXAyNlk4REFyNmpVTmdjTXJP?=
 =?utf-8?B?SnlVWml0WDNSM05rdkEvMHJDUjNnWithenhaTjNzazFteGdUaURZL3JBNXlG?=
 =?utf-8?B?RWt2RkxUQVN5NHhHSjJqRWlRbTVvL2IyeEJLcTMzV1c4Ujh1ZFBlNExEQVVM?=
 =?utf-8?B?RGtOUncyTUhzVFQvNFZxT3ovNVdjVkg3eFlLRjVCODFtaVdhQzgxa0NZTjho?=
 =?utf-8?B?YktGSE10N3krUE45aFVDZ1l2eUliemI0ODlkYlFwUDVmYUJrWTZ2TTFlOGgz?=
 =?utf-8?B?WVFGSER4a2xDUkhlaEphdXo3L1lPVm95ZmsvUXNZZ3MwQmpWdjhWelBQbkpo?=
 =?utf-8?B?NnpaNHAzbGduTi9XendzK2tpZnJieGlDREtTVmNST0xuRXJGaTR3UURXSUpl?=
 =?utf-8?B?eDRuMGljQU1OYm4xVnpoWVVXa00yRTgwS3EycmxaYStTTlNNbkRuRFAzaUxN?=
 =?utf-8?B?dDJKRGRlODFmZXZrb0NuM2lVY0JFajhZWm1QTTRGR3d6SjdGamxrUTNvMS9q?=
 =?utf-8?B?OHZyeUt6SjY2T0FyZlFWVTc1dUZWRUJxUXZDdlB6amVQejVPc3c1Q3IzTWVG?=
 =?utf-8?B?b1QzYm1Ua0FxSSsycy8xaFN1TzAvdjR0SHBNdmQ3V3l5clNrK0FBenJmMFVi?=
 =?utf-8?B?R3lURFdUMWZGQ0NHZGNqRk96eU1NVElkQjR5NmRPNmRvK2YvOHBrK05ueFh3?=
 =?utf-8?B?cTVKbjhYOHVZM1I2ekNEWTArOXpodzRhWXE2dHhXOHlsT0tERWw0bncyWElW?=
 =?utf-8?B?ckJxc003dGJiUHRaSFFEamV4SzNIeklhSTcwTWgwdnArS1RORlhXNFZuc1Ns?=
 =?utf-8?B?MjlaYk0yeDdBaFBPUXVOb1E3NzZnRm5jZ2FiclZpOE0rdkZ3cHlCK1oyanFS?=
 =?utf-8?B?RHVLelIrQldoYmNpbWwxeGNGZGNEYVJQaWViby9xV2hzdnYyU0hPcUJXRlMx?=
 =?utf-8?B?VDJEQzJZM0dBWk80OWtCcDcwcFBld2JkQ3kwbzdLMXpkc2g3Zi92d0VXZmhn?=
 =?utf-8?B?UWpRbmdjMm9lRkF4OEtYVVZ1V3ZyL1lLYVdFYlZRRk5TZWJmTURJdUN0ZGZY?=
 =?utf-8?B?WVQ5WkZUMUlxcmdZSFljSHhJL09ZK010Z05Pdk91RE5SRlFBUlVrb0E0OVJx?=
 =?utf-8?B?V0c2Q29OS3dkQVNGc2x4elQyelpBUDExYWh5QkhYeTRNVkMzUnpySHZmb1dz?=
 =?utf-8?B?d2l6NU1RWDI1WUp2cVYzV2tmdVdiQXJCWURKSEtpQ1hWd01Bd2ZDS3M2SFRF?=
 =?utf-8?B?ZlhFTkQwWGRYSVZPRGRLSTN3cDVsMEM1d0xxQzZqOGVlUlRBM1RiSDdZRnky?=
 =?utf-8?B?N280dmN6cDBKT2FhdFlMRGJMQWtDODgvdnMxRVMxeDlVN0xkNnV2UmJSVnJB?=
 =?utf-8?B?UXhDcXI1bHRhcXZENkdxSE1nQkYvTVlhTzFnV25HWnRhbmtvekI4K202bElm?=
 =?utf-8?B?T3R6T280RXRnMGlIY0ZWWkZmWkRnTGtHeFRxY3RReVREaVFRKzNMUW5aNUxR?=
 =?utf-8?B?QlNGcVVRYitEVHZwVjRBSzJ0YlRaTGlBVU54NHR6WmQydWp1MThNeUloYzEz?=
 =?utf-8?B?UytqZGR4dFpGYnpDbHFua1dueWRLQjZQZDgwSUt6R0NHYkNIbHp4ZEVocTF4?=
 =?utf-8?B?d0lIM1RBZldmOHI0Rjc3aDE0elZhc3lneDZkamxLSWg5ZU5HQ3J2ZGpHUm9k?=
 =?utf-8?B?OUlBTnpTZmNTU00xTEQ2WHk3dmoyNDFYaCttc0syZVU5c3ZKM3puZXNmMGw0?=
 =?utf-8?B?OHJJdC9MTCtLaXc1NDFWZlJpWnY4V1dyOVF6YVhhMFZCaytqaGlRQmxSemZV?=
 =?utf-8?B?RFVpaTRsbWRLUkhUN2U4ZFFDN3MzcGhPbFdsNU91VVNrdncwTzdVNHc0WEJY?=
 =?utf-8?B?QUxIREZUblFDS3Y5YjVzM2wzV3JmbzVuVjAxMC9mb29PVFZUVFNxdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 59b67e79-094b-4ad2-c567-08de62735e90
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 15:54:38.1897
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OGb9/jWD1p5MKKnfEXSD0i40A93ZczPJDwpUY9MBQAF/R3VrMWlM9Uy2rPI7P0VXbjfXbH05hgV9XSw1rscmfw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB8140

On Wed, Nov 12, 2025 at 04:45:05PM +0100, Jan Beulich wrote:
> It's really FIRST_IRQ_VECTOR vector which is meant here, i.e. effectively
> there is a form of open-coding in use right now.
> 
> No change in practice, due to the present aliasing.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> While doing the HPET work I had to fiddle with this, even if in the end
> no vector below FIRST_DYNAMIC_VECTOR is being used there (for now at
> least).
> 
> --- a/xen/arch/x86/msi.c
> +++ b/xen/arch/x86/msi.c
> @@ -158,7 +158,7 @@ void msi_compose_msg(unsigned vector, co
>  {
>      memset(msg, 0, sizeof(*msg));
>  
> -    if ( vector < FIRST_DYNAMIC_VECTOR )
> +    if ( vector < FIRST_IRQ_VECTOR )

Should vector also be rejected if it's > LAST_IRQ_VECTOR?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 15:59:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 15:59:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218739.1527585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwKU-00035N-8M; Mon, 02 Feb 2026 15:59:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218739.1527585; Mon, 02 Feb 2026 15: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 1vmwKU-00035G-5d; Mon, 02 Feb 2026 15:59:10 +0000
Received: by outflank-mailman (input) for mailman id 1218739;
 Mon, 02 Feb 2026 15:59: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmwKS-00035A-Sv
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 15:59:08 +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 1abefc31-0050-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 16:59:07 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47d6a1f08bbso21806845e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 07:59:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482da91a227sm121641405e9.2.2026.02.02.07.59.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 07:59:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1abefc31-0050-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770047947; x=1770652747; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YKIilOtjFoTlX1gJVgT0Lqe3kijL1qEl5p++PzOoug8=;
        b=W9AlmkGBzcII+QXuSNcOoTeTUOrmdymYoJoMhwitONYX/edF+SRq73zoF2AIDybtAb
         kC4Iug0U0hqSiAT8aG1iE+WLSDtduw6+cM7tIWiDbVG87SMCXcCaYgxz28mnEvQQdLnT
         aEE3E1moS3jG5S5Uxq5izymuMqRTCDlF/fqnxkhrPywHd8oQyLYeoZdcVWRbDesYMNvs
         jwUxnAzKigTG21FEAGtz36a0eD+/JuSWQsXtWxhT1qQxr1V3yHamPUq9kqxPSMJ6Wjvd
         h4I4CpxVo0mNAIiF9jnZeh1ktND9ndGOnnkWjgWleV1dXMRJ3alUW2MkyIaw39cWduPN
         9miA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770047947; x=1770652747;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YKIilOtjFoTlX1gJVgT0Lqe3kijL1qEl5p++PzOoug8=;
        b=bJkuXGo+M9XxkKPGZVk62Vnx8lbTPtOrKPcLFS6wuCPeamCuaUWd1WKUfZx+KEITHr
         CAUI6BDNJQOWwmobeL6ayg1s9ZZwb/31IH1gzEVbyTL0BZCkqKG6Ya6JZo/7Sly7EkbZ
         ZilJTvD1AoFdkuNKO8hUjbhuA722a5XGdBWv0m4k3wViLZ82dVy7QOQz3+3tUOYOfxbf
         lkqWHRQfjlQZUfuD4BN9Gm6saJnb2g6Xt8DxJYnGzQMNlPYvuEphgmSt4XWsKJvLDCAK
         qVGh8Onqf03YHSBin7tSBC8dGgO95cxuUCNkqnisyNfi+paoAfJaCOXIkyfOHQQH9pz5
         UThg==
X-Gm-Message-State: AOJu0YzeL04hcj6NQX5wLlZDZZXYj9jrMgVcsk+AvO1aRY/EHk/4u+hj
	n4p/dbmDL9jLWC23LrVf05ILG9UwxYeZMq+zK9chY7GRE03oYPRPcSz9fHptViqFxA==
X-Gm-Gg: AZuq6aIBmfG26LPd7fJ9MGZcTTtWAyTIVnQeJkzi5VR63YYZiqCKICE6YNx1u78VF7N
	4B39zaRs5qjMg0nvC9Bl/dsgq/88VhDfsogXGzXzZuL5J8ocYxbm6qlZvf3o31zU/pyao0qE5u/
	NbxuKoOAacuuYhTwLw5MKhra1tIBMJgZBjpatQWazFwlesq4QOd2XQyHPuiKpfN7PERQWNEN5i7
	JdLwlz6pA6TM+9b5Pt3PqsZxaOQX/hAZli8vVTqnBaI/4neadAXRZOIAHdGc4jQyPZ+vI9fKJUC
	hamkOcMqAK76lx93UjrhdralVQTUsetc+Pi0Cl3KTmnHtTdVqanNKJ9cCsAdoEXSqyhbQHoCSb/
	Inr2FI/3D53JWodtfb+K8MWXxAOuKvsKed2wPW45GwLeJRkV/Sjp6qvD6oBD3jYc+GkzF1DwX7F
	UyraRxyw20b8Sqakw7Myj2/38exxcqihrnDCZtivMl4VVtLFNXhWQUh6YKY5h6KB+ysDw2FVHfp
	rk=
X-Received: by 2002:a05:600c:c162:b0:480:1b65:b741 with SMTP id 5b1f17b1804b1-482db4ac5bamr150292805e9.15.1770047946600;
        Mon, 02 Feb 2026 07:59:06 -0800 (PST)
Message-ID: <7eed3c7e-b3e8-4a0c-bd6d-c4ba22bb1c10@suse.com>
Date: Mon, 2 Feb 2026 16:59:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] CPU: abstract read-mostly-ness for per-CPU cpumask_var_t
 variables
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>
References: <fe35f075-ff44-4942-bcd1-dcd917179867@suse.com>
 <aYDHyutbi9EQcOe4@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: <aYDHyutbi9EQcOe4@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.02.2026 16:50, Roger Pau Monné wrote:
> On Wed, Nov 12, 2025 at 04:53:27PM +0100, Jan Beulich wrote:
>> cpumask_var_t can resolve to a pointer or to an array. While the pointer
>> typically is allocated once for a CPU and then only read (i.e. wants to be
>> marked read-mostly), the same isn't necessarily true for the array case.
>> There things depend on how the variable is actually used. cpu_core_mask
>> and cpu_sibling_mask (which all architectures have inherited from x86,
>> which in turn is possibly wrong) are altered only as CPUs are brought up
>> or down, so may remain uniformly read-mostly. Other (x86-only) instances
>> want to change, to avoid disturbing adjacent read-mostly data.
>>
>> While doing the x86 adjustment, also do one in the opposite direction,
>> i.e. where there was no read-mostly annotation when it is applicable in
>> the "pointer" case.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> ---
>> Really in the pointer case it would be nice if the allocations could then
>> also come from "read-mostly" space.
> 
> Hm, I guess for some of them yes, it would make sense to come from
> __read_mostly space, but would require passing an extra parameter to
> the DEFINE_ helper? Or introduce another variant.

Whether this could be sorted purely at the macro wrapper layer I'm not
sure. It's the actual allocation (which alloc_cpumask_var() et al do)
which would need to be more sophisticated than a simple _x[mz]alloc().

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:00:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:00:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218746.1527596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwLd-0004zL-Le; Mon, 02 Feb 2026 16:00:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218746.1527596; Mon, 02 Feb 2026 16:00: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 1vmwLd-0004zE-HN; Mon, 02 Feb 2026 16:00:21 +0000
Received: by outflank-mailman (input) for mailman id 1218746;
 Mon, 02 Feb 2026 16:00: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=X6EL=AG=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vmwLb-0004z0-Pd
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:00:19 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43ef652e-0050-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 17:00:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SN7PR03MB7057.namprd03.prod.outlook.com (2603:10b6:806:35a::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:00:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:00:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43ef652e-0050-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RpMY29qlob8gGUeeUGoVcDV25EbCsHXeucC4SXPXfWgpgOinqdIFIraWa/5D8R7qwaN3U/iuCfmFGnbWIo2oZqw4OFkiagak5X9TmWuki10+crTM8BHuTRpFQjC8S+SO9Riw/3iCfNxaxGrkiJN8UeHLRgG3TDS4TlNgBAMn8ckFSPqhn8B/5d+02HUL3zWZ62OiyWRb+xJ9cawGODgSOvld01NLu+qnOoivVZQIb5lIFPlrnVgmRi2XWsuVAbVp3cIn4i1vgm/myNviddSmzUSnMyMT4Nw81XhvJMWSYwEpEQaHalpnKg2IUCMu/yU6RfypMLWUqWGwZdqEkTTSqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EoQZyhnwV7D+SCqtmU76R4MA/AgoW1y5UP6xiiVvY3Q=;
 b=D/MS1acdFLgDRHecDF1OmFtYfHOvMAK2Vjtwb6LbkTNiknGpR19E/iKxtozxiM8f6rsVXyyvEHJIKMNVJJHxy0m+jmocJZTe9SA0DGcBpAgin7uEuuiONEfmaxj7E7zQY10F/vZUiNILeeIpWV0RZzZcITjlCZPWu38oLaStlpqcaZUZOQTpR9s1/adVM6kQe5O5Snrjz12BxHFeRD0rJWj4O4JGAR2i4tFzdE2ZONFu5SZfajtv02Od1dRUoKqMTu00gjqnAaIjHXQ8aB0a/ZBipynVVgOhIR/WWgT5o9rg/Aup35wIapxkIJM7Peyamm0gSmMCGqy4EPAYfYOMiA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EoQZyhnwV7D+SCqtmU76R4MA/AgoW1y5UP6xiiVvY3Q=;
 b=B6SBngS1WkUA3ou96EUwrUZqNRMvXwc0gMB1Nr0e7AGhCvVLPYbgBO3SNDwzQD4z66+OcCe2GGR+y1d+vzIDourqchcIYLjpD8dEwwCBWiv2CRPbOdRsG1ICorSV+W2Txt0QrR223jsN/XUTbMDLu6UG396olFNQesdcY9+nUzw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d8eb4220-da82-43b3-b0e0-9d006f68877c@citrix.com>
Date: Mon, 2 Feb 2026 15:47:40 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH v2 1/2] x86/cpu-policy: move CPU policy library code
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <4bd68e41-e665-4992-9d3c-0086bb5195ef@suse.com>
 <7c06bd5e-fad2-42cb-947f-6749f647b068@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7c06bd5e-fad2-42cb-947f-6749f647b068@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0640.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:296::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SN7PR03MB7057:EE_
X-MS-Office365-Filtering-Correlation-Id: 22403a62-7709-4367-b605-08de62742447
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?RWI5VHlyMEZZckZRTTg3SnV0dDROZUc4Zndta3k3MWJSelgwazVERDc5ZUFC?=
 =?utf-8?B?eGZRUkJhYWh0L2dBZTRBRktjZmdZeTZBU0lqR1ZJanZhK2xhOVZhWjFTMU9O?=
 =?utf-8?B?R3Rzam01QnFuUzE3UkVNZlowb2Z3S0JBK3VyRXhicUkvVHg2QjlkMFBYczA1?=
 =?utf-8?B?YjJaY0dSWE4wWXk4SmdOV3o3dUxLTGFtV3gzZm9YYVh2aWEweS8ybnk3dVlH?=
 =?utf-8?B?STJaQXgzcFRjY3JaZzEwdEl0VVlwZHdhRFViQmw1VE8xdW1iVzcxaWJlSFl2?=
 =?utf-8?B?Y0hUS1QrVkFpVmlxT1NkaWhxTG5rcjBWR0VCb2QrQzhlWkRkcmlxWmpvdFUx?=
 =?utf-8?B?WTJ5RHBQNnU2WXo3TUFja2xaOVlQYmxkZ2hiNzFSalBrSlY5RXMva1NlaEpE?=
 =?utf-8?B?clB3cjVGdmJURVRVQTJ1NCtXMm1May92eWZkVFZqSEc2RHd3MEtZS3crWktq?=
 =?utf-8?B?RU9yckpaUTIvaHNOM1N0U2h5Nmt5THR4czZaVFc1UFBYS2lvSVo0S25pMkZW?=
 =?utf-8?B?d0pFYkRBUGo5RGNCSldScUZxdGVQQmFBZkpvSWYzZVR1ZXNKSnNnUTUzWFc1?=
 =?utf-8?B?eW5ZckhJLzN4ekhPMjRGdnJ4d08zK1pRbDMrZE5XNTlWcVhNemYvcEpMck1p?=
 =?utf-8?B?S3lOdnJ1eWhzVVVDVk5UVTJWYjBVaDdZN1hlRHg0UTBIb3pGdk1oS204SGla?=
 =?utf-8?B?ckRFb2VUbUZ1TXAzb1h3ZUszVlhMRGxUaXRiUUR5THE5dnBaQUV0ME4wM29P?=
 =?utf-8?B?MUtwaTlzM2FsRWFiQ2k4dUdzWFJLNVVkTDkvKzVrRTV0QTZvM1ZKR2ZEZlJp?=
 =?utf-8?B?QjhNMFFMN0R5cWRVZW0yRTF4WkF1dGtzcVMwTlpRUk9kNUxvTkNmTXo2ODd2?=
 =?utf-8?B?MitUZVNZNnhiTXI0NEgzenppS1A1N0l6TVBlN2M5TFF2WWpqTnZjTUpSdUht?=
 =?utf-8?B?YlV1aGpJWnJHcWJqOVlBOWRSa2NnUTkwaUxFdlVEMXZIMnR3cVpZNC9oZ1BV?=
 =?utf-8?B?TVVSQW5sWFB3L1RKd1Vpb2pHeHhlWGdLa2QvVFovUDAxOW1wUDZiUVg4WWIz?=
 =?utf-8?B?R3hSREdiVUxhUGNUUi9zenVYQXprZFo0SHl4YWcyN2pMVVhaMTB5VkJwQTIw?=
 =?utf-8?B?aVFHbGlseVlmSnFLOElUdFZqOXJZK2UyQmdHU3NjVFNBMGsrZEJBcGF2Zitk?=
 =?utf-8?B?eWVKZDBRa2dkQzRKNWdNeEdBQkNOMFd4M3orejVKQnZmUXBmNUZlNWpHeWlT?=
 =?utf-8?B?RHJvYlpyZTZERnJ5dHU0WXYyU24wd2RyWFJYMUV5d3BsalRvMkYzUFhUWU1V?=
 =?utf-8?B?OUlENGtJeTFiZ1FnVThxWHNlK1htZEFRbjIvSDNKdy9FNHIzbHB2ZXUrSkpi?=
 =?utf-8?B?SzBaTHRXMThidmVMRjZreE5sNXg5dE9sdGM1T3JJNVNtTkd2VlE3Z014T09Q?=
 =?utf-8?B?bzZjNVhUUyt2U1NHMi9yZnpBbVBmVjhpL2QvY2NWelhkN0N4RVhCbmZ3UWYz?=
 =?utf-8?B?VXAvSVhYZXo0ZEFQaXdwZ0V1VFFDOXZialBCZUhvOTJwOGpuMXRZVTVJWW4v?=
 =?utf-8?B?NDFCUXBtS2lzbDhvMS9xM0kydkd3SVM0UXdPLzN0aGhLbWRRQTZXaHhsSTVr?=
 =?utf-8?B?bkNrN3hEVW1BaDNCUGpZelVDNjllUUtIQ0lSMjBBZ0VmRmxkaElqU2Q5RTFr?=
 =?utf-8?B?ZEFMZHNIbkVNNjdPem95bWpkS21yVkt0M2ltaWZJS3NERmt2WEFpNXUwK08y?=
 =?utf-8?B?NHB5aWgvZ3ViL0tZZEV1NDg2RU1EbjdwUnAwR2l0TUV5TFhmWnQvOGtvdEwv?=
 =?utf-8?B?NVBMMGh6N3JGWU8rb29WRmlUais5aXlyWmVXdk9yTlJ1cTVRalo1UllZWU9P?=
 =?utf-8?B?bllOeXVadjMybThBbUZCZVNXem1MQWJrVWtwNjMxMHdySlc3ajE1VGNjNDRY?=
 =?utf-8?B?aVZQQitxSmxtRFJka2E4aUNrSmIwN2ZlY0E0VVpzWEV5dkJ0ZjNZWUtnY2hN?=
 =?utf-8?B?SElOUUdRbC95dTYwRktGeHBWNXdyenM5R2F6ZjFnM1BNQnViRm4zb2haMXd0?=
 =?utf-8?B?d2d5QzBscTFneWZUVG5RaGlkT2xEU2UrQmd4TDBPMVZXSis2ekc1cTRMYitX?=
 =?utf-8?Q?NtTw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Zk1GbkVyTGFZYTdxekx5U2U1T3hKNlFGT3BKZHowbUJVY2pHanpXQVc2aTk1?=
 =?utf-8?B?dWF3Z1BVaDJIY0ZwT20yUFJPVm94VXF2YXhkZGtiUFRuSDN5MXN5dUY0OGVs?=
 =?utf-8?B?eWVoUTBlam82YUwrOC9kOHJtY3RTTDg4WnR6b1BIcG9IZWVPb2FmOGljMzkx?=
 =?utf-8?B?TjlMeVZpdTA5S0FZUHJQcE5yMFVuelZ3S1JVVHlKS0l1M2xmckp2aXB2NzhB?=
 =?utf-8?B?bk9xR2pOcWYzUnhYbWZudVRpZGQ4TW9FWTRFdjk2YWRsUnlWVHkwTUZCSFd5?=
 =?utf-8?B?UGlXRGFudGF5NXJnV0dIKzlhLytreXVkU1gxTlF6enl6bDdFRzBndk1TamxQ?=
 =?utf-8?B?THFackREU3I2U3g2dkdiZkxYMWVoT2p1akVDYUtrcDhVSDFwVEw2VHlkVXM5?=
 =?utf-8?B?STZTa2EzaDVTcmFBRGlCTksxdXRqYkIzSHpRcXRJYXFxZDFrUllTZTlDV0Y3?=
 =?utf-8?B?a0Yxb2x5MUFhczdQMnd4TThuOXdMRjBUNHF6bFMrUkczQ2xXaUl0MFFsbFBr?=
 =?utf-8?B?dmh5VmRDdWUveFBEeC9SZXphSnRDcUtxaGZsN281S2NtQVNLeUtyVHhMVndQ?=
 =?utf-8?B?MDN5VjIyWDJkWWVRTHB0cVdsNGRtNGJXOTdwSnZlZFZnRStoOFhGc3pLYnpL?=
 =?utf-8?B?dU5EdjVVT0JjQnVUcjVhTGhCVGZSYUlUeENIdUFxdWVXSEE2M0M4RmRpck1i?=
 =?utf-8?B?VTNUbWM5eXNGRWdzOGwzamEvUldsZXFlV25tTW5sMG13Vy9aRkQrejBGZjVR?=
 =?utf-8?B?b2JYOVdRK1lwbFNqNDdOeTVPb253MnorMWl4SFUrNURMMEFXWHN3UUxoUXJj?=
 =?utf-8?B?ckVUUXRwdmtWOVlkZ0VLNzdhQlNiRFF5Qm5JcDY3NEpFNDFGTzN1elZzbE0y?=
 =?utf-8?B?dG0rSVNTN3did2w0QktzOFhLSWhNY2JYeS83c3ZFUlJtZnkvSHZGUWg1NXJN?=
 =?utf-8?B?WFZkM3pjZE1yQ2ovWmZoWUM2ZDdSMElFYlBxbnc3aENpREJOTFd5bm5hRFly?=
 =?utf-8?B?OXpENms1SlN5TGp6bDEyeS85OW5Jalk2YmZnTVdEdEJCQ2d2Uk9tTjRZSERs?=
 =?utf-8?B?djhJUDIzUHlvTVhiTHNJOWxVcHMwYnJuWVdrWGpHTFBndjVpNlVhT1pVcytN?=
 =?utf-8?B?R0xzMmhFUUpXTTQ0ZFFQSHROOWdYUHpzL0Z3bi9OOXNYNEVJT1hlZEdaK2JF?=
 =?utf-8?B?bE5Cb29KbVJxYTU0R3RUb1lqTTh1MkR2UVpQNGY3MFg1VmJHRmlZL09PK1lq?=
 =?utf-8?B?ajc4L2NvWGdWS2ZjQTg4WXZNbmY1NkViRFMxQUQwYUxHT3Z6cmlTNnFnOHJr?=
 =?utf-8?B?b2ZlenZqeGRiZ0NnaEF0eHlhTHhiWGxSYnR4eFNUTkNtdVExNkYzREFRSysr?=
 =?utf-8?B?dUN0bVJtdUpZblNLUnV5V3hFbzZ4UlhjV0N1NlZQTnpSR3JpUUUwcytGNWZj?=
 =?utf-8?B?S0QyL1hIZVZmY3UwNkc1WURHdzd1cnhhNU1aaXg4c1FpT0JadTBLZDBEdFBo?=
 =?utf-8?B?dEFwNmxSeHUyVG9wdUQ0SmozS2MrcjI2OW9tRWd3NnhsOGMwSUlhSFRrcjJn?=
 =?utf-8?B?UVB4dDkyRGMxa0Vpb2ZYdU9QbENPVGY2eGx4c0E4UXd1ZXpvUUJ3SW0xQkNF?=
 =?utf-8?B?RGtYandHZytmM1JHaTluZWtDUGkwZ3U1bWRPeFBFdCtHV3B1ZFdVY1JsM0Nw?=
 =?utf-8?B?ZERXNytJU1NYYWtWOEFFU2x2Zmw2MXpuaUl1VGhqeFlCcE1QWGpqT01Ydndw?=
 =?utf-8?B?OUptcS9WMEJIQTk3dmhkdHkwSEsrL0YzNEl4dzVHNWR5UkRPSUh0S0h5eGpP?=
 =?utf-8?B?cEhHYytJSi90czU0aytJQ0QyNSt5cWYvSFpMM1FaZFBQczhnWUVkMWdvb01o?=
 =?utf-8?B?RDhyUG16MTRZVjduTGlQcmg5SWt3MTNxMy9VSGg0U0pDbXRRU250NHBKaHR2?=
 =?utf-8?B?dUNvYlc2TXpMVVZaTnMvVFdrd0RJOUYvR3FReXQySld5OUw2eVFSY2szZFhJ?=
 =?utf-8?B?REdzTlAxYm4xUVREMzdzZFJJSUQ5bnZUMkF5Ym5Rb2ViWVJGaVl3NmxYcmlx?=
 =?utf-8?B?dTRQUDEyaGp6QW5DYlRZNGQxZ05aTXAxQXpxMlhSbjJqOUFYTlo0NHBoN2Rl?=
 =?utf-8?B?L0dyeElJeEtiUXlJOU1yN0NUZmpQTnQvenh4VWZ1UjlOLzREWE5XcXdkU2VB?=
 =?utf-8?B?M2tLa0VaREtpSjhMaXFndzJxWGRWandCOWxHTjJ2REw5aTZMMDdJTk02ek9N?=
 =?utf-8?B?ZjZ4V0JHc3hjSDdsMnVHbEpHOWtzM1FqaGE3aEhKVEMxdUZBbWZPZjN0bnlZ?=
 =?utf-8?B?N2x2SFZBUzI5bzVMYzFDMHo2VTBCVnREbWw0UVFMeVJJaGRoMitoMlVwWnly?=
 =?utf-8?Q?r7qPVDA+VzDRdYtA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 22403a62-7709-4367-b605-08de62742447
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 16:00:09.8575
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rddtwnCvmJGpqjL4y2SMuSb95R79gHrDeWmiU/sesVYYuiybmerb2J7LEaHxTMXmqf/nUNhhXsGy6Hv8g2AwIyuXKrHLsHAPCvOCVMxeEFI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7057

On 07/01/2026 2:17 pm, Jan Beulich wrote:
> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
> index 0203138a819a..be6c76d2934b 100644
> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -4,6 +4,7 @@
>  export XEN_IMG_OFFSET := 0x200000
>  
>  ARCH_LIBS-y += arch/x86/lib/lib.a
> +ALL_LIBS-y += arch/x86/lib/cpu-policy/lib.a

This wants to extend ARCH_LIBS-y surely?  Is this a rebasing oversight?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:01:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:01:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218756.1527606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwMw-0005cm-0E; Mon, 02 Feb 2026 16:01:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218756.1527606; Mon, 02 Feb 2026 16:01: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 1vmwMv-0005cf-T9; Mon, 02 Feb 2026 16:01:41 +0000
Received: by outflank-mailman (input) for mailman id 1218756;
 Mon, 02 Feb 2026 16:01: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=X6EL=AG=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vmwMu-0005cR-5D
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:01:40 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 73c323da-0050-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 17:01:37 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS1PR03MB7893.namprd03.prod.outlook.com (2603:10b6:8:222::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:01:33 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:01: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: 73c323da-0050-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=I1QeWMHqmb9f7ZXDF3pKpAPAl9VAx7f95CxqSS8BX5ZzxgHlE82AseeJ2CXQd6VhDkOza/dPvl5PN6NxzCAQGYix8SLzLeMRpffQod04XfOW6prsDeqntM6HI7taNi/uHbh83NFzdDaX00Cuj0FvZaAZ3a/3hu+w7Mkyg3eS1oBNjZMpFSsG6SR4dPp1C3XtpkkleOxvkj2XW1KgTwXxGXCcl7RAjjn2AWyNvRfJNQnE9LDl1UOHoqfV+WTYaRltMipbeQXl6hOKQLOKzdBwKYEYi8OetO/JuZ/Qe1jSWsWgTUD6FdM0M8EVAniRvxH5EVW9aTJILPAQlb0eXm/3rg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V2k37cCrIbqPXYXBHg0rdHuV9sj7hWiF23lOhuP6Lu8=;
 b=BOqcNSI0BxnVgMZ67T7Wc0R6SUhcnez6xo0HHYW/rVGpkuBzprP+5s26rNXp7aANkeSRvHPAx5A3qlDb9XVv1N9VN0Etff7/XQdLnRYRDwrWUVDwzR+m4XJ/57wh3x/ZwT0KhUyE6M2qbaZ7FzmGAhqYYzRZLNiIWFzfGFDhqqKdbZd9dfhYYfXq6CZZA1XbVGoaVdW+rbEdxd/sCHx3iRGpbY9+Ft8y6x4atMToiGpwof2fQPNIyyFWKg0+kXDANIoqTenznfgkpRm0dw2Q2EXS1c9ODVqXt6R2ywPQqiIxhdoaBWX+E0K3Qz6xuKPRzTz3SijgssnTcARQVMk5Bg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V2k37cCrIbqPXYXBHg0rdHuV9sj7hWiF23lOhuP6Lu8=;
 b=ZcWpv9gRHumXjgKnk9ETWLA91+L8+ez1Idnl4S5VAkUp/od+sESlKMQ9IH6Mz5Y13+tUgt4RoUsrd7bXUstwPKWHSy3GF/AgWTWPOuTL5h80vUQtr4M/lEhRIvJ+tFxXuAWDcsJsveL8jmTmlxlDwM9srF06HLj/wNKCAoTWp38=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5b5a4362-bd2d-46bb-8584-46f7d1bf03ff@citrix.com>
Date: Mon, 2 Feb 2026 15:48:19 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH v2 2/2] x86/cpu-policy: split out copy-in/-out functions
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <4bd68e41-e665-4992-9d3c-0086bb5195ef@suse.com>
 <d5045a94-a38b-4c56-b4c7-61503589747d@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <d5045a94-a38b-4c56-b4c7-61503589747d@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0645.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:296::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS1PR03MB7893:EE_
X-MS-Office365-Filtering-Correlation-Id: cbeef74f-e946-4867-a8f0-08de6274556f
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?RFVGTVBlVG50ZUFCSTNUSndZZXhpVVNMWWg3Q0pvekROWWQzdE11MTI2V2wy?=
 =?utf-8?B?SXF5TndPRmZrek5XR3BxVGd5MlJEaVBINUVZckNXRTVTcDhLUDNHY2NOWWJ0?=
 =?utf-8?B?Z3J2Yys0d1JveURhQWMwVGFQWDV5T2pzWHg4bDdJQTN2dnR2N2gvNnQxL1ZK?=
 =?utf-8?B?Y3gyWnZyTDFOdkQyaU50a2FtNzk3dWdtSmduVjVXV3ljZFNmYlJ3c1Z5SGFs?=
 =?utf-8?B?cnVySjQzbkM4Rk1td3ovY3JkK0UxT0Jyc1BaaUxlMDdjRjd1cjRTbnZONUVL?=
 =?utf-8?B?dTJLU09EandBQzJoMzRRMkNGTzBEamY3cEFxSWRySTY3Mm5QR2dmWUJDaE5r?=
 =?utf-8?B?aDU1TTI2Y3MyOHQrMmd0QngxN3ZOamMzaWluSTBwZ3pIbG9Za1NqeENDY3VM?=
 =?utf-8?B?RkQxcmhqWFQwRWhnQ2t6YUhrMzQvblJqaHFoTTlma09ac29lYlA1QzFLQ2dN?=
 =?utf-8?B?K0ZkME1rYTNyKy9HUkZuVHZrZTFScFFCcGpZZmtZamhNUmVodnUvcW42MHhy?=
 =?utf-8?B?U3MzUHNWWjJ0TTFyQVY1dTkwWTFyeGsxMGh5UkIvVlk0YUtIUFVhbXREWnFV?=
 =?utf-8?B?NEQ3MnFGSncvZTU0Z0k3MjF6dGl0TGEzVTRTSFpOTVpPM2dCamJ3NElLbkFD?=
 =?utf-8?B?d05ESUxJUzAwVkhiN2diN25VZURueWtCUUlEcC8yQk1jKzVqUEp2dEpyM3Zv?=
 =?utf-8?B?dTVwWE43QVBBOHIrOG9UeEhXYnZ4Z1ZzM1kvaXNsUzdjWGpOd1pPNUNvZEVs?=
 =?utf-8?B?SjcxS3V0OHJxejlZRFRQSnluaSsrcTdQK25zaHZEYy8xU1JpZFhJRk82RG5C?=
 =?utf-8?B?S0QrdElhOE01UjBVQkpPdmphMjVWbDUwell1ZTlpSmtGR2RXUGw4Uk85eVZE?=
 =?utf-8?B?YkRIOWtUbEljbkZoMWxaR1AxR3VOYTdoY0todkRtQ09XV3B1Wi9EOEN2QlI3?=
 =?utf-8?B?OEp3Z2lFcjlqbzRXNmhuS0Z5VUtSUTFmRWFIR0NrUnRhblpQWlNzblZUc1dy?=
 =?utf-8?B?eG9IVHg0UmQ2LzlKdjlnRTVYRDZsMnlRbjhmdkgrbHJFOFI2TmdXbzRLdldK?=
 =?utf-8?B?S1JDTVlGbDB4VTVlcGp5anNvU3NTd1g3eUozcEVWK3hrVzNlRWo2bXhGazhi?=
 =?utf-8?B?SlRRdnpSc0MxYXcwMUh1WnBEcEZpUDVJU3FRRDhMUEhxVFNXMGtOdVN3K05I?=
 =?utf-8?B?QTFnQ2VxNjJLMFNEdlJLRXV3ejgvaHFjWG95aEZKTjR0emxDNEhKbHpNeEla?=
 =?utf-8?B?L09rOW5tZUdKWnI3YWdtVXBVLzEzY2UyYzU1VW9XbExZNmwvdDQySG1PYXFE?=
 =?utf-8?B?cW5aZ0k4WHBIRHp3b21RclA4SjJsRmFCbGZsUTBZdU0rc3VmK05aOG94YkNt?=
 =?utf-8?B?VTBaNlQ1UGRWWGxUWnA0TysvTTZoWXhZeXBzOGJRSnZGTGZua0FHRlMrSEVX?=
 =?utf-8?B?L2hHUWRXcE5jaWRvUTNOTEFIb0c2dnNEa25kNTFQKzBNT0RsZHgrMXFIZmZZ?=
 =?utf-8?B?OUtwdjJ2aGJhMUV4bkZjYys3ODZPcnc3c051WVhDVk5TOXlKT3U3Z2VjNEN0?=
 =?utf-8?B?em43c1JBL2Fqb1E5OW14dWVuNGVKTnYzUnFZaVd6UTI1dHVwbGMwU2taL3N1?=
 =?utf-8?B?cFAvZHZNYWJROWRSWXVQQStnRWVzb2FMNVd1M0hPc2Q5OU5udnJKb1BMQlNa?=
 =?utf-8?B?b0tCUmVKVnlzdE4wazJ0OEE4c0JJNnZLLzVWV2ZmdmMzdW9tRnFibDJGaTZ1?=
 =?utf-8?B?UitXcjFxaXN1MnlHZmhVS2JMa2NjdG5MZnlSam1FeGZVZHZwUjEzcFdxMzZI?=
 =?utf-8?B?bmNnWTZwUEtyM3FiRDM4Rno1VW56bjhUcUE4WjhIQmUvQUNvdEViV3ZBejNB?=
 =?utf-8?B?ZFVwZ1dqL1IxY3VUVHBwYncyODdkbFhQdWNJRllJSkQrc3dkR29MZld5eUdD?=
 =?utf-8?B?VVUyNTJoT284UzIxdlNKMEtTQm43UjdEek0yOHVSOWpkeWV4T0JpdE5ZWjM2?=
 =?utf-8?B?cTI3OS8wZVFZVGFDeFJaTkg5TFVWRnFoalB0VU1FT3IxWHdyV1JRR2E4YW1j?=
 =?utf-8?B?YldyOS9Ta2txQy9IR2FGWm9ua3JjZEdaRzBjSzNYWDczUnVoUXhVKzk5Vjht?=
 =?utf-8?Q?n0oQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aENKNGoyNlZuL0ZsWS82TkhOZXN1TFNYQVJPVm9ZWHEyZ0hhWE1yRHlKQTZ6?=
 =?utf-8?B?WSszenhmTHNOWm15NFdMRzliVkxXSG9xVlJYdTZuaGY1Z2tEeUJhd3BJNGI4?=
 =?utf-8?B?WGtOeFZKb2VPdDd5SG9zWGN2ZEREbnQ3MmM0QUNha3RYSDFuRkZabzdTeks3?=
 =?utf-8?B?M21iUnFveFowZ3lwMTFlUGk2RG0yY1BLaDliemxzN0JvVENZS3BGVk1yaEtr?=
 =?utf-8?B?blladGZLV2VaQWJHVFovdjFIOGg1L3drNXRFWTVOa1NhTGVwSW1iSERlOHBT?=
 =?utf-8?B?OWZvckxkeGtIaG9rSGYxcGdkOTlXT2tzbU84d09kZDZKU3BLK01za3hsSEF5?=
 =?utf-8?B?aVp5blM5cnNWYlNQcVlha2gzcDcxMnZaV1FRT243bzlqSEtkQWpVMGE0Nis2?=
 =?utf-8?B?TUlPK3R2N05abXhXSFppbndOd1RYc21ocS94SVMrZCs4MHM3SWtvYVovNm9O?=
 =?utf-8?B?WGVtTDZiakNxeHBzeHpIMm1sUHJ5R3JlaUthd1NndTViaXFYL0Vqdm9oSGVH?=
 =?utf-8?B?T3dIck5tS0R2Njl0MnNaNmpqV2VydHZMdFhpZGVCem1UYko3K0ZaR08vRFlv?=
 =?utf-8?B?ejJNblRnM28xaWpzd3VtY1FVRjd2K1EvSExzanZScThmVXl2Z2xhN2RBVk1u?=
 =?utf-8?B?T3h5Tmk3OXNKTTBpZXdJSFZDRmhpb0Y2WU9FSGU1MkZtNGU5VkZUT01QdG9C?=
 =?utf-8?B?c1dBOWRNTjNpcFcvYkZGWVdqV0tVUzZURmtjblVmOVBMYm5ITzBaTC8wcjIr?=
 =?utf-8?B?WlhUMFZ5SU0rVnIyVW5hUEEzOVQrNCtQRlpncFlFNXFMcmtjS1pzbGlHcm13?=
 =?utf-8?B?TUJwMzJ0NXBnTUhUZDh6OG1DM1RvVG1UZDErMmJtcHpzUHc1WmFIVlh4eThD?=
 =?utf-8?B?dUx4RUNlY0k0eVRScnpoR1VvRVBXWmtGT2grRm5LcGZrYzl4SDYrT1lRUk9E?=
 =?utf-8?B?RWVyV2htUC9PQk9qbVpJSUxkbno5dkQwdTVuLzZaQlNjSS9WK2Y1RnZwRTdN?=
 =?utf-8?B?S0V6eVRIVVE3RmczenJ3ckNQVmc1MVpBYlBBa0ZLRTErWVprNkJ0RWZIc3Rt?=
 =?utf-8?B?bFFteHJ4d1c3SzJlalB1V09XZnNDcnppL2x3V1pqdjI3SWFJWVVtd1hyRkxi?=
 =?utf-8?B?Q01hK3RBRzUxY2oyTWtPcGltMFVwZ3RCaHlrVG1vUWcxRmxqS1dlbEdBbzlj?=
 =?utf-8?B?Z0dDcmNsNlVaeFRnenNNN0lQdkVRYTlyMUozMXZISDVpR0pnVHpyVWphVUp4?=
 =?utf-8?B?UG5DS3g0NDU4K0d0ZWhhTWhwRlAyditXOXR5ZEFRdVJvRkRsd0l1MjlDRUVN?=
 =?utf-8?B?Nkpwd2pjVzNjajM3SXJsR3RIWHM4bjBtRU9CaXIzU05LSlFpNEJvb1RNc2Fk?=
 =?utf-8?B?bS8vazdWdHJkcmVyWEJBUXl6bUNyU0xUaGd3ZlJtQ0k5Qk1qRTBtbVczU1Z4?=
 =?utf-8?B?UzhaRENuR1J1NXdLVDhkUVZMSVV1VGdndU1nYllKRUtQdWsvck15MHlUNC9O?=
 =?utf-8?B?ZVRCYVJvT0kxaFZ4dlRydlMxNzRsSkRFTHJ0V2VJY0ZFakNBSkNHSE5TeUp2?=
 =?utf-8?B?WFlvVmZoMDRGbWZZK2NMREhtcytLTjBMdStoU2xDckRBL1M4azJhSzQwME0z?=
 =?utf-8?B?VTVOckExbXBUL25rV1hzTXVQQUk0Z1BFeEpJbXFUQTFHditTWUkzc1hseU9z?=
 =?utf-8?B?a3lwU01RTjhWemhrRnZjUENxUWIxc0FCNWhGZ0Fka0tWUTU2RzhYSkRmV0tF?=
 =?utf-8?B?YUpXSDZWaDJ1M0VyUkdFNlBVeTYzS1RvWWROcm0xa3h4MTUxQUlPR0M2U051?=
 =?utf-8?B?QUlGbzhxdFVVM3hzL3I1Y1EyVnNjcWY1TXdwUlNEUk8rMmZZOEJNMXE0YVNw?=
 =?utf-8?B?SnUwbnZkWEhicmVyMmwzZjhMUWoxUW8rdXQ3NFBmampDQURqTyt5TGovMW4r?=
 =?utf-8?B?OHNHKzB1QVQyL0hLa2M1aXFnRnVLdnZhRWRxUjA1U09pL2dlZ1NRZTVEb2pJ?=
 =?utf-8?B?WVBYZ0JTajRaWFJhM1BCemRObjd6WEc5TUpuRCt6dTQrMi9rV1N0WnlNS2Zo?=
 =?utf-8?B?WDRXamRiaVhVUS90T2tVOGJBUHVZRm4wT3BKMWxrMDAvYS8zbjFudGdtUkM1?=
 =?utf-8?B?TWlrQ0U4bEpWR2VvbHF2RWp1bnErcFZnZCtpbDVRbm5JblV0TjJxZ3JHUTRM?=
 =?utf-8?B?dHovbFNwNGVVdDlnd0lBY1JDTkVkYnF1SEl0RTk4bWR2QWt0bEpNd0hNWkZJ?=
 =?utf-8?B?cWhRN0tJWjJ1Uzl4YWltak9UV1BPRFhTQ0tBOWREdVY3RnZEZWFPRmphSUti?=
 =?utf-8?B?NUJsRm1vblZrM3hYNCtLNm5kVzZUS1F1QXdKUmZvT0JBeC9PYUl6OWNGOWtw?=
 =?utf-8?Q?V2t8LK0jPGxS1tnw=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cbeef74f-e946-4867-a8f0-08de6274556f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 16:01:32.4486
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: spYyAfEnVtdKz3jcj5xLyYFSLQtYJB/IlU0AlGk+F3StN06i+Hdwr5c9GaLZF/cvzOW4Yl4L69YwKWWhrQdmyl+rb0emmxMxzmClMZF2YOk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7893

On 07/01/2026 2:17 pm, Jan Beulich wrote:
> This is to aid with MGMT_HYPERCALL work, leaving the functions potentially
> unreferenced (which Misra dislikes). By moving them to separate archive
> members, the linker simply will not pick them up when not needed.
>
> As the CPUID and MSR ones are always used together, put the "from" and
> "to" variants of each together in one file respectively.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:01:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:01:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218757.1527616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwMx-0005qH-7p; Mon, 02 Feb 2026 16:01:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218757.1527616; Mon, 02 Feb 2026 16:01:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwMx-0005q7-4h; Mon, 02 Feb 2026 16:01:43 +0000
Received: by outflank-mailman (input) for mailman id 1218757;
 Mon, 02 Feb 2026 16:01: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=X6EL=AG=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vmwMv-0005cR-LG
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:01:41 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 75c8791d-0050-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 17:01:40 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS1PR03MB7893.namprd03.prod.outlook.com (2603:10b6:8:222::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:01:35 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:01: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: 75c8791d-0050-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=EWHbFxOySekXKRHWNhqxF4gQdSltzWdDIH4RXcz+D9Id+gcGNrdfqZcO+4/c6cGx0FKGwXUHBj2NuaDX1HluhXFezaSc4JLYmaCuLCUYehEr8qZvQx1pnB/R+6thDoPr96fMuz0CeduhleU6Xtbly0HSt5whZByNMr1c8ih3dfeptRx32TjQG6NPqHUsvleicX9GAfL7UIFYgq+cWt7eJkAaiYjn6VBXXqcJK/dse1pgUbsU2mo3Pag2R0yy3jw0f8klFbKtUIdFGxghkvWhL44Mo6WSaDBZNzNkdBAODUOf7WH6yrzSG3XJA1MGWwZwPksbE01wQvsJJN341hTc+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=968dbr1XUuSyPSRG6x/faQDLjnkW3VzCzRi361l1uek=;
 b=Fv20PyMl+5IpVghS1tUfVtqtK7aB8bMD94mg+I9Uj21cM5ZuBnTvGnHlSn/JGBynzAZOT2Zkf06pW21CqzFT/eM1iRkLlvD4NdEyP1ggPhvT5EDiatNYJB0VRNzMwFTPfPTXMqDFQWm0lvnM/NfqnwzbG1rxGkJJbFMuSXKxyMG3lZgqEOufw5vDQleTwLTdA6riwNsLDOypU3AVlgBykFPukIQ92u8JutGzp30m1e19abL/D4OuO2Gg8La/RHJr1fmTHh8rGhAchQu782/n7wkay+ehcMGPca8ZpheYUfMk14zh4JEUhW2f0i/CDnb6itm000YWYaa7CzcVOaRUmg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=968dbr1XUuSyPSRG6x/faQDLjnkW3VzCzRi361l1uek=;
 b=cz+SY3JX/A6FGx4qKGs8xw3k7LNOcUaz2xFw1j2nfMDjFH56WwgI/OCy5IVYU5f+nuzqb67hmX1CDsPbEBDVhTeQXiLhbrisSdg0WONZrh3tcFoHq2B/qkUewESp0ouzda6axERsd6zXDibb1XhBMDESQgjbT5HWRZijX0OP3TQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5f42ae1e-7f3f-4e95-a6c3-5a7f39623971@citrix.com>
Date: Mon, 2 Feb 2026 15:56:41 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86: calculate number of synthetic feature and bug
 enumerators
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <70fe3986-ad89-4b42-b158-7e7b2b24ec1e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <70fe3986-ad89-4b42-b158-7e7b2b24ec1e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0645.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:296::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS1PR03MB7893:EE_
X-MS-Office365-Filtering-Correlation-Id: 40e950f9-72d0-4f4c-c327-08de62745770
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?dmRDQWVSZDBmbmRTeXY5WTFzYmhNWGg5cHBKU200SW1nR25VNU81eVhPTEIy?=
 =?utf-8?B?UmU0MndrUzV0eElDK0dLa0Ftb1RYQUQ0TjJvUkNqMEhiRTk5RTgvT3J5amNM?=
 =?utf-8?B?NDE2QzAvbDJCVG9HSUtMV21WZlZzWTNRdThVNTRaanpsMGdUVjNVaVhtYk9S?=
 =?utf-8?B?ZjhUVFl2LzF3ejZVb01CMjJncGNGTTNST3BjTlYybmZ1UE1BZmZhVEd1eEVi?=
 =?utf-8?B?MXcyUzF2Qzh6alc2cmx3UFcrQkJvMjE1ZEd3ODVvTUV0dzg4SG1vd2tHYTg5?=
 =?utf-8?B?WnAwNU9kWjYyQURsenpIN2cvWHh3ei9mbTZvTHB4VTFjdlZMazNYR0JqZUZ1?=
 =?utf-8?B?aEQ1R05obEFiN1R6em1MMDAreEtPTzhOa1k3a2gzbVdFL3RuWmFwcSsxaFpp?=
 =?utf-8?B?dzZNT2t2SW9kczJVSW9BZ3MrN1lFU0ZkNVVIdjZ4akpmMncwVExpM1hBMkhV?=
 =?utf-8?B?ZU1DMTRUaWJOakFYb3lzRWc4WkpiODVYRHNqVHVPeDNLYzhyWG5hQlNHMUVT?=
 =?utf-8?B?WTB6czdxNzhmU1J6dElWbHRYZjVmazRZMWVIcFVFMFhXemliT1dVY1VRckFS?=
 =?utf-8?B?ME5SblBvVXlOVkl0Zjd6eDlyOVpLMzVBU0RpY1ZnbVc3a3kxTU55NFd3aC9w?=
 =?utf-8?B?L2IyVUdWSURUMzgwTnpBSFpWUVNOUUE3dnFDY1lDSmlMNFQydHorMnpUaHZv?=
 =?utf-8?B?c3RBYzZVa3NsSVQ2NFNuQ3g3bDlpeWJ6RC9qcVNsU0FMTGlrdElpYStDTTFN?=
 =?utf-8?B?dlh4MFhkNGsyZ2pPWklZUHdEZTlJa1h6dEMyNnJJSCtHWXJ0MEtSNjRtbk0r?=
 =?utf-8?B?UFlUTndiTjdWUG1FYWMrSXdEN1VRbXRrUW9aY25vcVN4alN6VlRLQjRzeDV4?=
 =?utf-8?B?S09ta2l3aTlha3V6eEdBMEcrZGw3dVdyMmhtT0Jaa1Q0MVM3ZnFESDBrUVFi?=
 =?utf-8?B?bkhabE9ZWk5VaEx1Wm5ibUc3TUdVeUczMHM3ZlI1Mk10MER5YmRWSUtLWnB0?=
 =?utf-8?B?OWxVWTdiTVIzbEduWDBXeSsxeUIxUWtIVy9IN0lyek5ab0V5Q0F5b25Ud3Fo?=
 =?utf-8?B?YXh6SUJXcVZiTDN4S1FvMkZDNUxlTFdzQjBRcDZwTkVXbmZKRElhTjN4YUVw?=
 =?utf-8?B?YUJxaXVsVGVjWmJiaFZVakZVR3k4YjMxWnBsVUs1Unk4Snloc1NMU3dVWWli?=
 =?utf-8?B?czNsdEFadUw2bXRPSG51ZnhFU09zUDBBNS9VSDM2MVNLREpIeHpwY3Bxbnpa?=
 =?utf-8?B?eGpLdXFBZ0xCVzZvTlBiVytVdjZ1Rzk5T0NuaEdxYjBwSnZHcHdtcDlLbDhz?=
 =?utf-8?B?SnFZRDl4anhFYlRML1BhUnI0T3N6TVRoamFFbG9tNGcrVmtoNW5SVGFMU1R4?=
 =?utf-8?B?REErUkpvTVpEb0llYWlUNVZ2ak4wcGFJRmZpcHdPRFhiUXJBcWhOLzJFRWNr?=
 =?utf-8?B?QWZZdmV4c3kwYU9MNWpCREVKcXJnOUVBUWc1eGo0SVNyUWNaRjVxSGkyLzE1?=
 =?utf-8?B?VWpTQVhJUnRwWktKeGtKUXE1NDhjM1ROQnJ4WjNlUC9NdTBHeHFRM1VIQVNI?=
 =?utf-8?B?TE1VTXRDRnVGSzdienJhQjlvdFZhRm1BNlA1cERwWHJVSVd2bUJsS25WUk50?=
 =?utf-8?B?TFQrc3d4ZW5uNElJQy92S3VSWFNWSWxIdXEydEpQMnRqZ0tRVVVRVEZ6cnNa?=
 =?utf-8?B?WVVaOCtxd0VlODg5YUxIYVM4elVIUlpJUmc1YnRuaHJJVTBQTWhLcytmdmov?=
 =?utf-8?B?dDZuQitkcjB3dDZVNGQ3Vmd1Ly9uM2hSUmZjaUdCdFZLYjY3ZXQ3MnRCMEJX?=
 =?utf-8?B?SklGc2hUYlFsZUlZM1k5dEwyQ2tiVW5yN0lmVXRNRlB3eksvOXQ1ODVVMWE4?=
 =?utf-8?B?aWhkRnFOcVZNc0hRMU9IeFN2ZVY0M21UNHdiUys2RURCbVJvTFdRbXBvMTgw?=
 =?utf-8?B?VHlSSkVuU1hFc21FZXFjTjZpd3FiSDFzUXUxSEFKaG5zYUtWSFd2aGhkdy82?=
 =?utf-8?B?ZlNXU1hMQTZxNXdWWUlLc2VWY3lmT1pVdVlySjJTdmpIRnFBMjRsOXdjait4?=
 =?utf-8?B?dlk0U3Btek05d1RuN1dESTNyZUpZK25Rem5vaXUzenM0blhDdHFETkVOT3hS?=
 =?utf-8?Q?nIjI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y3FEYlZ3ZUdmSVp4bGJOQUROcHhVaHhEOVdQVUxqTG9HWTI0aS82QW9ZWG1p?=
 =?utf-8?B?eCtCdDVJbWhJV1AvYkQ3Z3huNFQ1RUZQSHMzMDFSVFd3VWVVVU0zSEpKaHR3?=
 =?utf-8?B?dUQ3cC84bnZBa2w5U3BVZUsyRkxuRnVFZTBsRjNaWC9uQklNcGFSaUNIdGln?=
 =?utf-8?B?c3V3aWw5cE91WEZ6WFNtZks4MG8zQ0QrVFpPL0NWUTh2VnpVUVdnK01pM3Rq?=
 =?utf-8?B?RkkrMWtvMnltdEFQNmREUlJzUVNBeUE3NjhWb2x6N1ovcnEwaDVhMjNob1U5?=
 =?utf-8?B?VC94NkVOZXBRZjEzWEZMSjc3K2FlR1pKQnhjOWd0K2lNMVlLd3BmbEMvWWor?=
 =?utf-8?B?aVdyc2VTaUVKbHkxYmpQbFhQc2dudmhTL05Oc3lmYnVMMDkybGJBb2I1ZXFn?=
 =?utf-8?B?dVFoY2FyL3lLZ0RBeXkwSmlQSDllc3B1c01BbW1IbTFrU3NlTDROdmVwTk1y?=
 =?utf-8?B?L0cvNkR3TGpsK3dMekFtTTNVRG9pVExYdDdtdmVOUkNXeXU4czRGeEhoY3px?=
 =?utf-8?B?RVRIQkdyUzgvL0lTNUdIUk5QT1VRQXZ4MngxREpacWE4a3NKOTZnckFNdU9a?=
 =?utf-8?B?RGx0NlNNNTlocC9KSG1tVTlZNlJIODZjREg5QVFpWXR4T3VIYTA5M1dTTzFL?=
 =?utf-8?B?dzZmU1hWeE8zd3N6YzhBd0tnMU5lT3ZROERHTit4NEJOUDh4ZDF4eWpWOVJH?=
 =?utf-8?B?c0tOU25OZnJaZEtRdVM3cm5zOExhc0plUFp2bFluRXlnaFhVSVBldTk3NGZz?=
 =?utf-8?B?OHB2RTdxYXRBQk5hYks3MUVvQ1NnM2RHcFpLWEM5K0JPU2p1UkY2UGNKRjU1?=
 =?utf-8?B?bFE4ZjBNektnQWNQd2FzdzVjN01QUGw5ZDI4RHRROHk0QkhCdytRcTExUDcz?=
 =?utf-8?B?MkhjYXNhOE9TdnFwNFJDWGovRERvbmZ0aFZsb3k2MjkwMlU5UUFpTHRPdFdL?=
 =?utf-8?B?dUJ2WlNPbFVITWNhTEUxbDlNU0Z6eFdmalVCV3F5TERrY1VubHg1MlRTTnpq?=
 =?utf-8?B?cTV3ampUZjVIc0g3T2NJY3JWbEJmWGxDeFV1SWIrTk9sZnM0TVhFb1U4aG9Z?=
 =?utf-8?B?NjJCZUpqZjNSYk5NSDM4V2ZENDdSWjVsVjlodTU3VWZSOTBFVWs3VTZaWXlH?=
 =?utf-8?B?czBDdlVxeFlIdnlOcHF4VjB4dnp5VC82ZkkyRVdLMDE0Rk5UN1lNV25QbGFU?=
 =?utf-8?B?QnptZklZTThqUGdyR3BURDhNYVNuZVBkMmtiZXN2NlU0V3lxQjlLdldyU1B3?=
 =?utf-8?B?eTY0bU9vVXJvSEcwNEJ6T3NjT3R2cmFtdzRjbW5KNWEvN25USlU1RitnRkJ4?=
 =?utf-8?B?OWQwRUU1bGxLVTB5aVJrcFVmTHZGSDk3SU1VeC9iN25TWGZla1pSSDA4Vm1y?=
 =?utf-8?B?YktTUlhjaWZrR3QxWEc5enlQdTVBbFZMaSt5SW5xWDdmOHk4RmJaZWJFRFQz?=
 =?utf-8?B?dzhCYWJTc1d5VlJaNENiTWV4aWQxaWVLNHJxRHpOUEVSaWJSeWl1K25HREc3?=
 =?utf-8?B?MVg2WXFndlczWVNGQWpNNnJWM2FkcmxrVmpCVHFKVkt6TUluQkhoMk5nYWR1?=
 =?utf-8?B?MEJneFphbVZvWTZXZWVpME9vamJOaHJrSmRGVXlkZHRPVTBoTWM2VFU3NGRq?=
 =?utf-8?B?bmgvSlgyU3NmZTRhK3ppNGVhdXdpVFc0eTVJck5WTVllTnFOb3JOZmZ5eTdo?=
 =?utf-8?B?eXVrdXFKY3c1aHh0azNHRnRWbXIxb0VLSjArQThNdXVEdHlxYkxtemZ5dENF?=
 =?utf-8?B?M2FXcUpLZGozdXVVZld0K25YNm5jY3JYdUtPdkRZak5jbGdDM1g0b2tSMlR5?=
 =?utf-8?B?cVNUSHdCbXhURFRNdllMRnhBUkU1TnBvcS96M2syZmZuRWQ1WnpMREplZnc1?=
 =?utf-8?B?RFFRcnFreU9MTjAwYlhVc3hqOEx3aDJ2NUZwTEZYYzFUYVVINFpjZ3hndURm?=
 =?utf-8?B?TzdleG5qNHA3d1FMcCtpcHdtVHFWcjFqdCtBa1J1aXpTMm8yM2lXYnRjeUNr?=
 =?utf-8?B?QVBvd1lvTEMxbW92YTJlbzlGZHdNMDNkKzFsZGltUWxKSEJUUTIzRlcwVzZj?=
 =?utf-8?B?d2IraVo3aXp4clQ3aWlRdGF2aWk0VDdodEE3ZXBoQ3dBWkh1bGlqUkhTcUJx?=
 =?utf-8?B?QzJLUmNwNnhaQXI0UXg2T1ZqQ3RNTjF2K1dTbU1nV0lQSjN6dWY2S2gxc2hN?=
 =?utf-8?B?b0dUQ2J4bVZGYkdKWTFnQkQrTnppMXoyYWMwMXFsd2gxdkVLbHE2ckh0dXA2?=
 =?utf-8?B?YWh1U3RmRGJpTjhNOUlOQUJnM0g1bnZjSGdVUDdvYTFINWJaVW94b3FaS1VJ?=
 =?utf-8?B?NCsxL2h5TG1RbkJVLzZyQlc0bkxoeUwveWRCb1hwQVg3KytZb3p5SEhTdmZ4?=
 =?utf-8?Q?wuIJXICMUj3q6d8M=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 40e950f9-72d0-4f4c-c327-08de62745770
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 16:01:35.7543
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: j0NiMROtWPQ75kHvlHIpxLVv7NcZi4DIJKFPH02xMsF9RcJ6nuDp+ap6A+MgI6Dv2bQ2oU9H0wtnfruAdf2F/O1bzlqraIBi4OSZ2DcO4zY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7893

On 19/01/2026 3:30 pm, Jan Beulich wrote:
> Rather than spelling out their amounts (requiring updates when multiples
> of 32 are crossed), introduce a sentinel each and calculate the two
> numbers from those.
>
> No difference in generated code, albeit debug info size grows quite a bit.

Presumably because of the substantial increase in preprocessed output?

>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> This is an alternative to "x86: guard synthetic feature and bug
> enumerators", bulding upon the expectation that when adding to the end of
> either list people will notice the sentinel and not forget to update it.

The extra preprocessing overhead is not ideal, but it's certainly
preferable to the first version.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:05:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:05:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218774.1527626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwQH-0006k0-Pv; Mon, 02 Feb 2026 16:05:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218774.1527626; Mon, 02 Feb 2026 16:05: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 1vmwQH-0006jt-N5; Mon, 02 Feb 2026 16:05:09 +0000
Received: by outflank-mailman (input) for mailman id 1218774;
 Mon, 02 Feb 2026 16:05: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmwQG-0006jn-TN
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:05:08 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f0ddb611-0050-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:05:07 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN8PR03MB5044.namprd03.prod.outlook.com (2603:10b6:408:7e::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:05:04 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:05: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: f0ddb611-0050-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gRONBckEuKxAw6Um/81IiAFTycD54OaCcpZ5gNu0jb55nGwiQ3JCX4d8SWhpHTl9pu5zdKd4Kj1CfT60U69g9fD1MAqMwRm9lAxrHfXicugl7awHHwhd47jrB0+0xQR6+GU1GVhRrThUuEc80rN5cW4FA4SYyyLzitxSyQ7cPVRmyJjjEt264GYEZ5IdXyqPJAiz+H8/yZTz7e0aqhzi6BWVLCaPYr3ZIBNoOy1JmO6G7wZi72jYLocnOgdyJRbubLvcG6y7In5Bfzlh0eaRXwI5sRMC+vtFd9kprsALyYSPBGI/qIXiqZ7eQqjCxW70fazH885kAhOGrt11UP5NmA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zxvFgaVgjyZInLOJCwFp5LsJs2bkiHyxCvOroDEz6iU=;
 b=yW/uwX8vfKXD6npFJSpFZN60V3BpzBAXwh5yaxMOH7cvthYuYzYjBTmNkgqcTszRtCPlCR3fhDRlFatkFiZ8/ABlB0CuOTvBSH5xugtyt7KhiDmFYs5n/qiu8SbA78zGTAxdjDL8qBP0O0c50NKRZEmdgR8agrPJsCkNwJ+bq5TUWZM//K0MU/UwlkTDjdeqV6Ty3JCQDa0KGKlTNeH/TSlhSf5cZyQh/xvP/qQb6lzh8LVJtxRkcqvsSAtD4R/rbcZhHw7FwJWKBOsNW7aUL+UMnBdDDL3pmKjdOf3zMqUTkZYSKLA2aoAAUOjNME6o1mCq9e0d4WVOSQWLQMW0nA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zxvFgaVgjyZInLOJCwFp5LsJs2bkiHyxCvOroDEz6iU=;
 b=erGxz3orVOXQhf0fdrqSEgbTjLELYq9A2pcnCn9PsFqaaekRDLN45T1qs6THCNxG2Ky6IdjbNt37cZQKCk3tGynD+KQcpNIUqxFB7GPE6/khu3qHzmXnWoutZl6evy+9/57edZIVNng6Ay82scEL9zhjMtWeV4gaBIRPMUnE5+s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 17:05:00 +0100
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] CPU: abstract read-mostly-ness for per-CPU cpumask_var_t
 variables
Message-ID: <aYDLLOunpgoM9KzP@Mac.lan>
References: <fe35f075-ff44-4942-bcd1-dcd917179867@suse.com>
 <aYDHyutbi9EQcOe4@Mac.lan>
 <7eed3c7e-b3e8-4a0c-bd6d-c4ba22bb1c10@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7eed3c7e-b3e8-4a0c-bd6d-c4ba22bb1c10@suse.com>
X-ClientProxiedBy: MR1P264CA0118.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::25) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BN8PR03MB5044:EE_
X-MS-Office365-Filtering-Correlation-Id: 5ba6175e-b263-4474-6377-08de6274d3ab
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?L3EvM2NRelVQQVZySm1OdkJiSmFPcFZpOE1QcFNjQ0h4RUFsZ25FZWR1WHlR?=
 =?utf-8?B?Zk9pV0w5Mk5xdXRFVE1FWVB2OHJUVkVpWmdCa0pONkxyMUkyK1dvVXNCWU05?=
 =?utf-8?B?UW9ZUkJEQUxQby91ZnBEdnFNUGRpOXFTRmppaGFNUmxQdFI5czkycDg0Q0kr?=
 =?utf-8?B?RHJ0MEdpc0xPM3lmRXFEUFp5Z0dqRHlBd1l0SUZKVG9oK1dveWNvN0RYZzll?=
 =?utf-8?B?NlliSDBNazgyelpJbkZYd0RldHJoQk1ja2JYM29hL0xsRXZDc3Y4T0xqTHhs?=
 =?utf-8?B?UEt4OHd4aW0zcGxucDVwZlRFTFBKSnV5b2Q3V1o4VmJHeTZlQmxDVVhKcUp0?=
 =?utf-8?B?NEw0QWxvWkJoV3AyZVZSSGxsRytzUmdnd3hrWWE5YkdsUkQ5QlJDbkVpMWJQ?=
 =?utf-8?B?Mzd1a21DT0Rtbm9Rblk0REowUCtVc2w2R2poYlBiSWJwZDhTcjJvcVlIV00r?=
 =?utf-8?B?MEdtbUs0Z25LdkllT3ZoVStCcDVJUUdtZzJndHByclVreVhUZlY1SDVBVzRs?=
 =?utf-8?B?dDJ1NVV3Z2VpYXFEZkFBWDVmTEdXanRiVVprKy9vN2RVek83VUxqN25ET3Nx?=
 =?utf-8?B?U0N0cGNnWFA4alZrV28zREUvOTVLWTdIQWpUK0R2K1NXc3cwV1gxbGlBRG9i?=
 =?utf-8?B?US9MWjBydEtUcStmek4wbms2TmRkRytRakJSd055NTlsY3ZPdkIvcDhkeUhT?=
 =?utf-8?B?UW9VSEl0N3gwK1czOHNTNGJOc29EQk9WbDhYTlBhbEg2Q1p0V1BEUGpITjI4?=
 =?utf-8?B?SWRITDBxNjRSWE1na0JJZzliTUJSckJxd1NyUm9sbnN6emxPYUhLWDVNS0VG?=
 =?utf-8?B?bjNWYjIrK1lIMDllSUhLKzBUdVhhaFIwWFIrcU5BeEJtM0krRnQxeERkODVB?=
 =?utf-8?B?eUdNaktmaGVlYUkxUXp4SFFzbmQzcGZWQ29vb0l5Y2pKUTc4elJaOVpmKzJW?=
 =?utf-8?B?MkczY2J3Nm85ZDhxT1hKNEZGamd5Zkh5b0RURXhMTUMrOGVLcnBYdUYzK1RY?=
 =?utf-8?B?eDBwN0lDeGZONS9MRncrcG5ZTkE4cXo2ZEZnalZyZHFUS0hwbnAwdWZNekhk?=
 =?utf-8?B?akpkWDc1a1o5Q1ZYb2JqVEY5TGV0ZkJaYlNnZjgzd3NDWGszeWRucjNrbHQ3?=
 =?utf-8?B?cXl6MS9iajFsT0lzQkM2VlpOQnczMTd3M3Ftc09wTjZRY1lyOTBOMTByQjRD?=
 =?utf-8?B?OUJ5U2dvdTczOXpwK0kyS1ZWM0xXaTdqZkplcHVOaWZYQUloYlY3WWFQUFJI?=
 =?utf-8?B?UVZIdnB0SWlKU0NPN2dHc1VxWTlvRFVoMmN3dDl4TnBMZFBhYnFqRW5IRXZK?=
 =?utf-8?B?eGNiTEtxcU42U0lhMjBhRGVzcmhMOWhlNnRreCtBTWY2ZGpUcHpaMmMvYXVs?=
 =?utf-8?B?M0JYUk14aWUvd0pPWmpVNFJkeUd3eC9BMWxJTkttZnNqVUFnTjRNMUJLdHhT?=
 =?utf-8?B?blMzMWRlc3NTYnh0ZWVkb0FjZlE0bGdOKzJTMHN2MEpDVjliZitlMkNMeDg3?=
 =?utf-8?B?NTlzVlVNc1A3dTBtMHlKRFFyeXpXM0JMazVXU3ZvRGNFSEVXRDlPL2hjODl6?=
 =?utf-8?B?cXFUa3Q4LytRL0RIVGhPN2wxMTd5TUZ5a0tzTG5jT0xBdXJmY1FCSXNjYmo0?=
 =?utf-8?B?WUthMGV6azJTYVVkY29IWUdBZElJQ3l2WTIyTFVjTS9ydGJ1UEQ0bHJtUUk4?=
 =?utf-8?B?T1lCOUVJM0M5Kzc5TUt4ckt3Y0xSZXRLRTBvRzNNcE9uaFNtOGh2T1lXb2dZ?=
 =?utf-8?B?ejV3TXhjN3ErRGNDa3VYOTBIMTRrUWRPUGUyREdhcUg4TGkyVzZrVE5SMS92?=
 =?utf-8?B?RmxNc1pnSXMvcy9QNElqanExdjRKNDJMbWlYY2tDRFlBM1R6aG9PU09IVjFX?=
 =?utf-8?B?MkxLRjFOUDYvSHY0eU54OFYyUy9aU1VXeXNUV3pWdGY2c0g4RHUzRDlxYmFS?=
 =?utf-8?B?TVRTTzVFQm8vRlV6TWVSUGxRWG1JSmNJYkh5WURMSStHR2NxbU9DdEZyZHdO?=
 =?utf-8?B?YndJWnhsSklraE54cDU1eks4cVJubjRrbkE2aVdqWTE5c0ZSMFVyb2sydVhD?=
 =?utf-8?B?S0NGOUhPTFUzdjVMQVIrRk9GanYxREh0UGxITHlxMW9zQnJhWE44RkdNS1FW?=
 =?utf-8?Q?vRnc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WUdlZmpnTTM4VEVWbHpVczRoKzN2RzZnYjFaUVpuclorZnF4Z3ZNQUlrLy82?=
 =?utf-8?B?Si8rNUdkRG9kK0pKU2dPTzhoczB2S1lVbkErN1NIVW1hSFY5ZFZqeVNPSGdZ?=
 =?utf-8?B?UXhPakhSRWU4S2hRTGUxU1ZONHhpaWNHT0x6d294MktNaUdBSTQ5VmF2MCtl?=
 =?utf-8?B?R3hRcEtBZTNrSTN6U2I5THJLNWN5WkxobUVOdm5JRjllcDNtR0g0OEt5bHhw?=
 =?utf-8?B?QzVUME0yUVJCaFNTSmlEWXVRVGRFaDI5WEJNc2owQjBpZTMxTHZ1N042T2Jh?=
 =?utf-8?B?ajV4V2ZZS0JzN0QycTQ0L1NDYTVFZlE5UFFQb2xlSWkzNk4yWDkzVmRTUWRR?=
 =?utf-8?B?VUNaMWpSc0s4eTJNMlVNdGlOdkt0aHB3eU8rUlltYVplQjcwWmlYV3IzTTRS?=
 =?utf-8?B?RUFROVNlZHhxUjVRUGtyK0U2cEZtUFY4NmZPUTZwUVF1VEZmem0wY21Ba1Bo?=
 =?utf-8?B?eTEyVVBVVWpyZ29uZVZSSmpZTTZJSXZJcGF0bmg0YXFDUWpJakd1VWpXU3Fx?=
 =?utf-8?B?UFJZZWcrMk13REk1RFZybVl4UVdzc29vMkNQWmpOaVRndHc0dUVLRmxDa2JY?=
 =?utf-8?B?UWFtckpRdkl0b0lTZlZMS3BmSnorSGJmNldVVlBYWG85SEhXdnZ4TnlmUE5U?=
 =?utf-8?B?emVuYTZUdC9ORWZqU0dYK25nRWowMm9TNkljZ0l4UnEvZWhtZC92ejBoSkNC?=
 =?utf-8?B?SlJQRHpVVmtMWjluaWFpWmI4Nis5Sm1yUHg2MmxYckE2aWQ0UnBKWDhjMkhy?=
 =?utf-8?B?RERDUmQ4eWxBT2owMHVhSUpwTHBxWmhDeVJHallsL2VVMmZWOGVuVVVDazhW?=
 =?utf-8?B?SGljQUduTWRYZk84ZzZ2dnJsVEFITFh6bSthZ2VIQ0VXczBLQ1FxejRFVjFu?=
 =?utf-8?B?UG1LME9oMU9raXVGcHVGQndlc2hDZ0o2cGNaSjdZRG1NNU5tZTB0S1Nzc2Qv?=
 =?utf-8?B?VFdhSFl2eVVaTE9HaTU2UkpMbFdXSVh1TlNRUDZNT3pYTGUxdWpSZ29nQ1hu?=
 =?utf-8?B?elNHMmM5dVBwZWpsRzViUDg3SGI0TGxPS0FzU0hVZmVNMjRQVmJabjJMVUJB?=
 =?utf-8?B?R1pFUWoxYXJsNjk5RVIwSlNTUEhQSzZva2xxc2UvM3B5amxBbHZTZVRpeXBz?=
 =?utf-8?B?SlhzVlRaNG5uRHdaRmwwQXJFQnZ0QWpMWTAvRFlqaFM4Mk9vN2lvNlFwWHky?=
 =?utf-8?B?WlphZk9BT2ZFbTIzUEZIdzl0bDVYai83c2Q1MGNBb0xjUlVNYWZqR1JiR2hw?=
 =?utf-8?B?cytybFRiVGZzZG1tTHN3Zkw5RkxVTEFCUDBsM2RYZHFCcnU0Ym5VR2k1QW90?=
 =?utf-8?B?aVM3cEtLclhrZ1NpMHVuUWg4NldHVTFBbXljc1VYU2djVGpjQmplU3VVai9R?=
 =?utf-8?B?YzA5L0F5ZVNyeUxvMXJndDY1UG13VTlwZ0ZVNWFmZE9laFdnV1k4cG5PL1VI?=
 =?utf-8?B?d0s0TWwyanB4Rlk3RkFHUlQ3N09FRUE5Y2VsSkRFbmhEc1lFKzVrQjRmeW1N?=
 =?utf-8?B?WVoxbjQ2OXJwTFRFeWVYUDNjRTNCQ1J6alI3L2Erc0docndrYm84WlhtRmhj?=
 =?utf-8?B?d0FWd3dwVENZSDlPbGVCNjcyWmVDeHE0aXhFcVFvMFcvaHFSdVdwWEJKY3VK?=
 =?utf-8?B?bHdkUWRzMWJvNElPOVhqRjREd3czaHpaNEhHd0YzOTZjQUFyeWsrWUlvR01Y?=
 =?utf-8?B?MUlnZzJHeExoNUE3MHVsaWhQVHM5bkM3RUY3WVQ5M3Y0aEVOK1d2THFCb0Zw?=
 =?utf-8?B?dFJHbitjdXhudmFyM25meFRnNmdmbm5aSU5ldi9mQmhYTmNYS2JaVkNrQ1Ar?=
 =?utf-8?B?SHdFZnFDbHRnb01nVEkvVVBQL0R4dm5iVFB0QWpnQ1U1MVhFeGc4em9PL3hn?=
 =?utf-8?B?N1UwMDNxdzhPQmZldVNyUklFWG9XTklkYUtjZTN6Ykh5UzlQMTY2TVNqK2NC?=
 =?utf-8?B?aGRDOHM0dmdzQ0Vjc1pBc05RUm5iZ2dpV1NsYSt3enJ0THFJclR5a2JzZEVE?=
 =?utf-8?B?M1RiWlFjUlBTZ2N3WE9Idi9Zc1VpYlBmUHArUEpRcDlOLytWcFJNR2tVcUhh?=
 =?utf-8?B?TzBJekE1RjFoLzVEM1BaUlZpV1dzQ2E3OTVCbUdoenp1RS9JNkZmQS90ck9S?=
 =?utf-8?B?OHlscHI2U1dLSkVEZjZVamIrODZyMEU4blVGY3EyOXJJRGpvaURNVzZxd2Rh?=
 =?utf-8?B?d0N3aHU0SUFhc2lFQ1JvSmtocWZFQjQ5c21HVW1Nb1hPZXRqbVpzRHFVYlB3?=
 =?utf-8?B?Z0kvMFE4bWU5UGZYV2JrcGpjTGVKNG8wbzdCWXJUb3ZGMWRTbTRVd055d25B?=
 =?utf-8?B?Tm84MnRlR3Z5dHlKUFNzdUkzbkRxMEdhNDd0OXd1cllkL2U5OVROZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5ba6175e-b263-4474-6377-08de6274d3ab
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 16:05:04.2673
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 039XF4aUlCglsAtiYizXwgRERGJhVqlpUUuhfZEA/wTnKn0gGXbeZMYy6KRBxz7p6a35NS+kduNKgmT/9ZPFMQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5044

On Mon, Feb 02, 2026 at 04:59:07PM +0100, Jan Beulich wrote:
> On 02.02.2026 16:50, Roger Pau Monné wrote:
> > On Wed, Nov 12, 2025 at 04:53:27PM +0100, Jan Beulich wrote:
> >> cpumask_var_t can resolve to a pointer or to an array. While the pointer
> >> typically is allocated once for a CPU and then only read (i.e. wants to be
> >> marked read-mostly), the same isn't necessarily true for the array case.
> >> There things depend on how the variable is actually used. cpu_core_mask
> >> and cpu_sibling_mask (which all architectures have inherited from x86,
> >> which in turn is possibly wrong) are altered only as CPUs are brought up
> >> or down, so may remain uniformly read-mostly. Other (x86-only) instances
> >> want to change, to avoid disturbing adjacent read-mostly data.
> >>
> >> While doing the x86 adjustment, also do one in the opposite direction,
> >> i.e. where there was no read-mostly annotation when it is applicable in
> >> the "pointer" case.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.
> 
> >> ---
> >> Really in the pointer case it would be nice if the allocations could then
> >> also come from "read-mostly" space.
> > 
> > Hm, I guess for some of them yes, it would make sense to come from
> > __read_mostly space, but would require passing an extra parameter to
> > the DEFINE_ helper? Or introduce another variant.
> 
> Whether this could be sorted purely at the macro wrapper layer I'm not
> sure. It's the actual allocation (which alloc_cpumask_var() et al do)
> which would need to be more sophisticated than a simple _x[mz]alloc().

For the array case it could be sorted out in the macro wrapper - for
the pointer case it would need to be sorted at allocation, which makes
this quite weird to deal with.  Anyway, this is better than nothing I
guess.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:12:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:12:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218782.1527635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwXb-00006P-Fe; Mon, 02 Feb 2026 16:12:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218782.1527635; Mon, 02 Feb 2026 16:12: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 1vmwXb-00006I-Cp; Mon, 02 Feb 2026 16:12:43 +0000
Received: by outflank-mailman (input) for mailman id 1218782;
 Mon, 02 Feb 2026 16:12: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmwXa-00006A-DS
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:12: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 ff2f9a87-0051-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 17:12:40 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-480706554beso50375625e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 08:12:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4806cdebf86sm379995865e9.8.2026.02.02.08.12.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 08:12:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff2f9a87-0051-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770048759; x=1770653559; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/Pd+7lDo3eVZCdnGTkinNTQCz7LqpDSPn8kZe3Ij/Qc=;
        b=NSHiYlfFto9K/NCxZAfV+mc6M6yflFlqrKXO7s0LiPvA64l3KeZG5G7hkk0goeeN2v
         fto7Dz7vj8vspEFV8SV8NKMpX1vltt5dhh2v4Dcdf1WB0ARGFDgL7zCPyPTauP2h9ELo
         06lmoepQTQPh+z6JdvDrZXnoZ9lRrYiY+WB5ygRZ42J8fm87+ARg2qI9wrUmM4t34zP5
         +uIlnMP2/P6tM4RJKW/n8F5ppO3VcNEmnY9DfqtcMmig24YAujUgqGhDGBdC6vQ82030
         4N+nqV4M+TuVRi02uo3aVyWZxhUqsloHunJcAUxcY4bPgbWgH2eVgsUZLYxGvs2KAjqw
         YbQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770048759; x=1770653559;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/Pd+7lDo3eVZCdnGTkinNTQCz7LqpDSPn8kZe3Ij/Qc=;
        b=fFzwloIt0lH1ijIJuIj0CTxUYSnVQK1ftDrbH5J5LyVux4OClGgXLukXciqgmkS2gx
         9thQs9nELYUkQTDrftM3oRD9n581QGv5Qsrfpt/lMMWsHUtAbCNK6XfhVbmzXTFdTWCO
         YEZji6xR4yNs43kB3JTgMSdB1npyo6NrA7JXTpuiVMYrJ6JOQdjhvFHOOijYqAfbcay4
         rRBaiBb+Oi213xCZtgJtT01jEWnlpMp9mD+zOUdMLUrJA6BjVpcNPtYYeQAp1s8qYA1A
         Emjx29Gz0/JwoWEStqWigMjYpIgR8CD+x0hIaDnULXOsmfjbpJRHmRvpM6quvLPY9ff+
         FsUw==
X-Gm-Message-State: AOJu0Yy+QCkhOab/vaQBmkSvLJ71KL0sJYXaEeDWFGBqLQc5p6u35CYG
	TFv5pRAeoD3+C9G1sX8hg3/+jTVNww5IYPQjMwDFbU84/Gji8ML5gHlJpCRIg7I3Bw==
X-Gm-Gg: AZuq6aLEpyuE4PEeJ90gtUUJeQ5wfiE1k7VUfJog3EZbgwjhu3015m2BTQ8fdmwhFMZ
	6zCJnTyogF0EP2RKVtixK/XH6/V+/1nq5galU1xxvMUx9D7EoRFo1tb4fi+oWpNa/ow19O1cv3W
	xKv7XTahUz5f8OKIne/NpVTumM2GeTFyb/aqSmFPuhVG9oVUwJchVYeD5EKuKA4Gqn3BjbVjrCY
	dx+32oIiH2K3w7WnS3myHfi1Z9w7iuS7pz2qjvb5Rr0Q+KZlzF6pcbznvbXXqUK2HQuKTBDBPqT
	dEXC6iaCYjvgGCf4waHoaRcAzFgNjad/SSeGr4/eXZ9B1ZNCoekzouB8Oqm2MVldYUjFrfrftRH
	Pu2YRYP8/4KMYk7tnFmOWdjMCjFOBAq8VGnbWkyYiFGDeVzUMIs5X7MEkdrelSyRcW8c3SV4JN6
	xbbvZ1RzTX7+Yr4gX/Hba/pAbYvMn2LuUy0+9u/x4CIG5cbP166Dvf5BwtKaZ2/mYJzX6GNjBUO
	2M7yYOuXRpF+g==
X-Received: by 2002:a05:600c:3552:b0:47e:e970:cf28 with SMTP id 5b1f17b1804b1-482db4a3834mr145369605e9.30.1770048759337;
        Mon, 02 Feb 2026 08:12:39 -0800 (PST)
Message-ID: <858301e5-2ca0-494d-9032-bf5802771e8a@suse.com>
Date: Mon, 2 Feb 2026 17:12:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/MSI: adjust permitted vector range
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: <52227196-dbc9-4f6d-9c64-a5da5037b1ec@suse.com>
 <aYDIusUCsFZaSaQH@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: <aYDIusUCsFZaSaQH@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.02.2026 16:54, Roger Pau Monné wrote:
> On Wed, Nov 12, 2025 at 04:45:05PM +0100, Jan Beulich wrote:
>> It's really FIRST_IRQ_VECTOR vector which is meant here, i.e. effectively
>> there is a form of open-coding in use right now.
>>
>> No change in practice, due to the present aliasing.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> While doing the HPET work I had to fiddle with this, even if in the end
>> no vector below FIRST_DYNAMIC_VECTOR is being used there (for now at
>> least).
>>
>> --- a/xen/arch/x86/msi.c
>> +++ b/xen/arch/x86/msi.c
>> @@ -158,7 +158,7 @@ void msi_compose_msg(unsigned vector, co
>>  {
>>      memset(msg, 0, sizeof(*msg));
>>  
>> -    if ( vector < FIRST_DYNAMIC_VECTOR )
>> +    if ( vector < FIRST_IRQ_VECTOR )
> 
> Should vector also be rejected if it's > LAST_IRQ_VECTOR?

That's a good question for which I don't have a good answer. I can't exclude
that composing an MSI message (for purposes other than using in an MSI
capability) might make sense with a vector above LAST_IRQ_VECTOR. Originally
(as hinted at in the post-commit-message remark) this change was part of the
HPET work, where it was an actual functional change as in an early version I
needed to move FIRST_IRQ_VECTOR down (i.e. decouple it from
FIRST_DYNAMIC_VECTOR). There the "composed" message was used to fill
HPET_T<n>_ROUTE. Something similar might be wanted elsewhere, and it's not
quite clear to me whether in such a situation LAST_IRQ_VECTOR would then
also need moving (likely it would).

Right here I'm really only after the semantic, but non-functional change. If
we can settle on also enforcing an upper bound, I think that would then want
to be another change on top.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218791.1527656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZX-0000ti-4p; Mon, 02 Feb 2026 16:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218791.1527656; Mon, 02 Feb 2026 16:14:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZX-0000tb-1m; Mon, 02 Feb 2026 16:14:43 +0000
Received: by outflank-mailman (input) for mailman id 1218791;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZV-0000fY-0W
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:41 +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 46b41446-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:39 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:37 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 46b41446-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uqJ+2fVAfmgl/Yee3BRylpSLhYoDZmb7++aMxscyIL1fPvF3XYWW4dFtdKXjufGjbsU+derlhfHHQ+MUN+wGAhEU2vqKWeL6ESVNUOpXVbyUbRbbz8j1i4FOvQihBmHe6OSEoBoJQMRFdnsgeF3q8TmphH6XoWZQWkq8zVMgl4Je9hNNoKw/yQ1Yb/NW+B8ym5mo7HwO29/QNFDZVH1Ao902f3Hgj04DVlZAH0+tj0oA81tZr/DlqCAbMRJWbV9E5bx6WIDmrXsGEyt/bp0hvop6k7aQGiBGFHTsahxKW/jFU6E7URw8qgn3nlNXHMOPU7YN2kQ2nqexfHdPPVI2nA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o0wKswGnoqukjZ6Pa85VgI1m2PSff7ggRLxjCuUhdmA=;
 b=VGEaOUC+Eyr/6RdIkDlNuD+HKSO0Pzzco4l3haLWCDldN4qeZBxT0ysqTREAkl8IlAekrkrP01+KPps3mrna5r/k+U+PbOXIHyQCT3+Gwn+c5Jvpp+rozNjvAXyVrrWZdL3GRvT2ohBs8GpwW46PuuMeWfXmZ0mUGZ/Tij1WC08K0q2g7eWRXQKP35Wyl1X4cXZ1iHlPMRDFtEMxAuAtRY4o/1lHA5VWFTapdx1vQGM9xS3ZXqQ4zdvJk4kUEpwjB+X9mEHsjzwRoskRvPZ/xFxqLznTCbJX3EqDEl2DjPbZy+u8N1VeNHUpvw7p0VFEN8q8QtOPmh1ZPPSxB9dh2w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o0wKswGnoqukjZ6Pa85VgI1m2PSff7ggRLxjCuUhdmA=;
 b=T+S5k4C2mrKL50I9sLcqIoHRgtwfJ0rDPCIyri5skbbrmVwKB2ZqWOBLerLZQCur1zQ1ZUcIHNoi1n1jbNiecVnotDtTwFPhAvv8NRYNGrX+9U9vaHGnrdpketl+ezONoJWtSsgkMtEaczq0ax8VGBFjhhArpY4SDFZcvqjfIoX6bgVXdJiZ3bSXNHXXzUbU01HqCnWpGasvrN+S8pcxRV2RQkQdkKzVzI81a/0bwW12vN26wqTWRQHGHNAJHKSEsRCE7umHMTiXFyc8sDoRW53iGdirM55eQryVMv2FQhtfqzVvj12sqzglt6igacc6cUHd83twNYF9qNdXkNMq7g==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 01/19] arm/gicv4 add management structure definitions
Thread-Topic: [RFC PATCH 01/19] arm/gicv4 add management structure definitions
Thread-Index: AQHclF8HJLYhUOMDJ0SUd+oWyr6vSg==
Date: Mon, 2 Feb 2026 16:14:37 +0000
Message-ID:
 <21505d8f47bdabbf0f8e534eed937c5bf0a4ce02.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 249ffcf0-f16b-4229-b65e-08de6276299f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?EsBiZTrnM0tf6t5U0/3O+gY2tkAQ6D03mZz2J46Zi05b0EXGGQysz8nTYs?=
 =?iso-8859-1?Q?SuhFvjdix9gpBGeqcGkBbHPNVE24wAnUZCuVkwEjWddGwv01SePHZyUpeG?=
 =?iso-8859-1?Q?lkkRZC8xfGU3r3Dl//4Wf2XtxB2c5ZrqNrJ1GBM9pz945oxbrPp1kasD37?=
 =?iso-8859-1?Q?OYhDpCQjGWEr777guwO99KJenArHcV5lvF2OcRYQFzIYOzXWLUCOWyaMvS?=
 =?iso-8859-1?Q?YQc5GnKxrQEXs4e7zudyI/1zmO6i3oZPqtAsVp0AXFwXIOi9Z3LrrEk5hu?=
 =?iso-8859-1?Q?V1lmWCo4QwCa4cxUhaFPgk97L37tPqjz09iIKHRdGSWG7Ey/n2CHWxl2TK?=
 =?iso-8859-1?Q?9jDGJeE9tK+cDR2+XFbxOIySk+57EaR1/pKfur4FUmlwsoHQw3lH7D7CNq?=
 =?iso-8859-1?Q?aLhT81VcefxHCZUQOSTgvOIcLPgpLFBBhIp3PEjco81ZtjzPy9byzauoD8?=
 =?iso-8859-1?Q?NYL+JJG5rNNbKkTsI+kEfwKuCn5onzVlxLjykxWFBw9Y1+o5x2dCTMGsci?=
 =?iso-8859-1?Q?e8rlUfAHioGC98PSPneyxiRuD4RENIM4RKNehh7Ir71/oBYncE4uamgQdU?=
 =?iso-8859-1?Q?j3FmLPV4YeU1qPVgY9BsQMdBwianXzOdgIbKpd1zWOBnwcvU8JX3F3OcGy?=
 =?iso-8859-1?Q?g0827FJmVZ0/EfOnW0JYacXpzhm/UaJtLHRXGXlT7vx9JwOAjkF3hA/P+i?=
 =?iso-8859-1?Q?Oj94ZAWyVlCv3xzFlgStceVHhirEBVvJAXf4Jpu4SPgMvVTQehWvYMQWIx?=
 =?iso-8859-1?Q?r5LKlnv3VFgzlVcuStXu8TJgkhfZSdi7SUEuyJbPRX0FlgFE6xmyAmPITL?=
 =?iso-8859-1?Q?PsTtGVR/8xfuKGnXXkMvbRq/XNihk6BPZR7dtpRx1033g0d8tB1wy2NEno?=
 =?iso-8859-1?Q?VHyDWTAItJ24XT6DOz0W4uAlXZ88u/riQhTzPZM7wbZ+qJHR/LdCeQtIq6?=
 =?iso-8859-1?Q?s+BQhkIySp8jXk+WsSUslprw4aDIS/EsDYBdR9SfcApwA0lQwmKM97tL1y?=
 =?iso-8859-1?Q?Bdhmgb8n0SyQA+E0CVjqr6VBwJshJ9WXlq116rpMEoq8k4S3n+pSyuJn5z?=
 =?iso-8859-1?Q?jjNwuvJyVAUb/k9uP4v7kWzSS+iIxx6xOvgkrxroYIWnTARYD8YOgrjTw4?=
 =?iso-8859-1?Q?2pRFiekMhIUgHyFjn6zg4iBchngb68eOC/ag9qgCkW8F+QGyKek7FPeRXC?=
 =?iso-8859-1?Q?+YFvs5p0B2h6aFlyVagv+EhRNF779zQl2lEjp16rO7TbReZtZ5Usv0h0Uz?=
 =?iso-8859-1?Q?lHTX3Ge/5bekCqLsRcY/FmZeh8x/w6hfKjiE1T4DLfaoKfu1ovDEcVSCfa?=
 =?iso-8859-1?Q?FHDN2lvAtyltXhkv0nCut9d8nRua9RgA2t2zbFJeELYW456lvpXwaea5I+?=
 =?iso-8859-1?Q?inpKB38QVtW8St7aIDDUKyVCzCMM67iUlSBrXgWdxqdVsNoTe+6xY+S1l5?=
 =?iso-8859-1?Q?d8A44JiXOEz3kk3vyS2SwLyDqFfjrIZaRyPfx/xzcwxFYFzIr0i7ZyBFnx?=
 =?iso-8859-1?Q?oLYC4FXWiZbVWTHmuSz7lC/7vFlWaYuBdoOBFhqYN6TJfYGQhhx+fhcWrP?=
 =?iso-8859-1?Q?g24EdPIGmUpj+gm5494tZ2YzReinFiWBwutBmHNHN1qOp7b+qrCLutoGqK?=
 =?iso-8859-1?Q?+wqLSzhgpVOoYoisrPMcACeuAiadEHea2ET67fJVKFw6IVVMefDf/BSNND?=
 =?iso-8859-1?Q?djYCXyK3BCbRg2Um+Tc=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?NCxihKok1G8mwAphd6wsO1uy+GIclQa0JTPxqgwwu/VdqBIDH3bMe7zpSN?=
 =?iso-8859-1?Q?Lf1NVMOWQ+DhHTrNnnrHyBMfP/NBXu+hea2070p+UVxohBvXSplUVfCanm?=
 =?iso-8859-1?Q?QT/2F3vo1fGQj+b55kNMJimxIDp2r6jswYI5npIvZXLA4je0ynWuCMgDME?=
 =?iso-8859-1?Q?tPby5wZgz7CjdbIoju0RVsa1gg65JhND5eG/+pHKfYtad28D0fz8oEwyE9?=
 =?iso-8859-1?Q?KmTyijkhz7kEIQshwTFmUWG+ZUiFTfwB3C3Eu5gblyoMEbQqeDV3JNxI6Z?=
 =?iso-8859-1?Q?/BNHQHvHRaKEcHJ1M+bKHd7uWOxc4c/xZPG1tTpTfwND0ILi8QW9nM8Y/T?=
 =?iso-8859-1?Q?Bfhdw5X2wFjv/9Gtfkk5CKOHxtFBB3HsOaSLVwjC3YYeax5DcTnaG9xEa0?=
 =?iso-8859-1?Q?Gfz7pxFfo1PZQ6HqPJrLE20GkQI6bl8TxxZcGC207v8SPdWNltO/1k6Jfh?=
 =?iso-8859-1?Q?KDDCoPSOQOyNpq7k2WXli5CCVuQUYOjkOqpZVXoyCQ9wRm3bbOdOrOQPFE?=
 =?iso-8859-1?Q?nH1hkRWpltSkzbagoR8Q2BBej2658AWhnPIsimHCjTW4UTcNIiawhVbOhi?=
 =?iso-8859-1?Q?g4zhsYG07D5lRdSrdMo2Oqk/v44+Z6DtihjsfKci/3H42sMJ/u6yHqwrzR?=
 =?iso-8859-1?Q?Z2CjEvC45e5nQXXahgp6+kdZxDf4jXEtZXzri+I8Iv9LJqM+Z07BYABS8k?=
 =?iso-8859-1?Q?SnZYJzJdLOXWas1E94uw/n/94Mozx0ehST8fPghckMRu2ov2RGAbvw69dq?=
 =?iso-8859-1?Q?ZY0OCPUMv4I2G0YF2WN4o5khHviIbj+AiJr/Dh3wM43cYNyREMhkIqU/Y4?=
 =?iso-8859-1?Q?B3UnHJocqG6sIHUG/2PkF6n30jCsKAyE1AOk3EkF2kQkr4ucwaoBWhKV8o?=
 =?iso-8859-1?Q?S4G0Ku3r1twv6+F7xxH4s+PgtG9MnNgfjchBCiiACbFcMNaUcluiQVIW7M?=
 =?iso-8859-1?Q?8rcmbuunct9Hcvowcc8Bqi/GtajsInLObCWbqY2prxfmgSBFtFsNa2MJTu?=
 =?iso-8859-1?Q?0NOgB7jTPBWeq5Uvn7RO09YZgviXmtjsvKfs9zdUK/PuXYBHyff3S1IuLm?=
 =?iso-8859-1?Q?6q45y1LbcKz8wADCeVkqzb+bWTC5t/BqTv//UsNMLHyFSMKLHYNk+QXb1h?=
 =?iso-8859-1?Q?AyxREN79cFHIWc6t9ltAxXDBkyRiDSNBdMhu4p6IKYGtD+g4LbrcMTJ0YP?=
 =?iso-8859-1?Q?OZngWPtuGu7A25w4YE9kvie2CmB7sOUa9UPk4U3TWPP4L9u7sCVyEgcjr/?=
 =?iso-8859-1?Q?Dssx99lmT2mI7zZp+QcXqoIYMjtGdSckr9vZI5bq2dY97JpYdbB0CsmEFJ?=
 =?iso-8859-1?Q?I0vewNeLGpytdlfRdVJptFLroWM18ZTz1aE56spq8tUfsJMWvLtGyOtWpc?=
 =?iso-8859-1?Q?MjTpcAuQaffMxqowpz5IlAU/rO9zR5A2ooLnGhGOgXeMyZZv3owzbgssAC?=
 =?iso-8859-1?Q?xvoITZfVEZCioNyOcBmT6D4rQxXx+Eg78iTWak8k5cTMmkGurrfs4c023d?=
 =?iso-8859-1?Q?pva5o4nHgJD8CndN/SS2601GA+/arClVczwi73SzvqRbPs97jpVPFxShGp?=
 =?iso-8859-1?Q?udh8peTTKfgu2xD5cdQO+MbmZfkaEhTaPaMzSUQSfF+u9FmXY5duO5Eh9e?=
 =?iso-8859-1?Q?+RS0dc+L/YldvE4m+9pCQhdcKJzUUewGCPOvGaRzvuaND4roocHQyVZqJx?=
 =?iso-8859-1?Q?SRkOLGTHU/sMXvvbjdGLEbruG46lYZ5iX1cFdpazucFV7FjomD4y360xhR?=
 =?iso-8859-1?Q?tWmYUf0CBC5AaU8fRjdIfr1S2lZkDwPHrnuhARhjbJJRalXSN04YhlFhUm?=
 =?iso-8859-1?Q?0KpO1HRax2ln99ln5cR3ukDAqC/auP0=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: 249ffcf0-f16b-4229-b65e-08de6276299f
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:37.6705
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 4WJ796o4q+edkC7vFavEJZLCogcC0dUBVPGdT9xFUNkffWnXwCaxs5osQ75YI125+yZ14sdrYXVUO/BCtgg+8w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Add GICv4 specific structures to be used in later patches.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/include/asm/vgic.h | 43 +++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 6f9ab1c98c..a874a02d70 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -127,6 +127,42 @@ struct vgic_irq_rank {
     uint8_t vcpu[32];
 };
=20
+#ifdef CONFIG_GICV4
+struct its_vm {
+    struct its_vpe **vpes;
+    /* Number of VPE. */
+    unsigned int nr_vpes;
+    uint32_t *db_lpi_bases;
+    unsigned int nr_db_lpis;
+    /* Property table per VM. */
+    void *vproptable;
+};
+
+struct its_vpe {
+    rwlock_t lock;
+    uint32_t vpe_id;
+    /* Pending table per VCPU. */
+    void *vpendtable;
+    uint32_t vpe_db_lpi;
+    struct its_vm *its_vm;
+    unsigned int col_idx;
+    bool resident;
+    /* Pending VLPIs on schedule out? */
+    bool            pending_last;
+    struct {
+        /* Implementation Defined Area Invalid */
+        bool idai;
+        /* VPE proxy mapping */
+        int vpe_proxy_event;
+    };
+    /*
+     * Ensure mutual exclusion between affinity setting of the vPE
+     * and vLPI operations using vpe->col_idx.
+     */
+    spinlock_t vpe_lock;
+};
+#endif
+
 struct vgic_dist {
     /* Version of the vGIC */
     enum gic_version version;
@@ -193,6 +229,10 @@ struct vgic_dist {
      */
     bool rdists_enabled;                /* Is any redistributor enabled? *=
/
     bool has_its;
+#ifdef CONFIG_GICV4
+    struct its_vm *its_vm;
+#endif
+    bool nassgireq;
 #endif
 };
=20
@@ -227,6 +267,9 @@ struct vgic_cpu {
 #define VGIC_V3_RDIST_LAST      (1 << 0)        /* last vCPU of the rdist =
*/
 #define VGIC_V3_LPIS_ENABLED    (1 << 1)
     uint8_t flags;
+#ifdef CONFIG_GICV4
+    struct its_vpe *its_vpe;
+#endif
 };
=20
 struct sgi_target {
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218790.1527647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZV-0000fv-S1; Mon, 02 Feb 2026 16:14:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218790.1527647; Mon, 02 Feb 2026 16:14:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZV-0000fo-Na; Mon, 02 Feb 2026 16:14:41 +0000
Received: by outflank-mailman (input) for mailman id 1218790;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZU-0000fY-Bu
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:40 +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 462c6c3a-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:39 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:37 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 462c6c3a-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=shO16K8qlpmAKUou+wywI6jUlhO3bRn6dl8Y4RfEaLr4kmZfGlYv2DqjP/wQbF3iGDAjnWb9+Ryd+4bY7DN7l30C3wWUHZ/uPFBgGvpTcPN2kRiEMEU6TFYEwYDf8tWZR1sfSV1rbJ0miYz2TvQRl+O6ZwklMFwCS+eqt/RhQn5+diW057rfJodfbzuJP77KSG35ZwXaPfMsgJtZ690AI3AgLztvu53L9FyS2Z3iVSZDuabhVl2hJocGL8ij+nqbBBkXwGE1t0J3NBLePA0gkv7f2cyfg0VEqQddluxNyZJKJPa5wwODrObhgVPpP3kic5yi0+LCkYwjw75HuihtOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Niz4ofKZc3THtjBwNmEvLV2JEHyF+HICBdHchBMQchc=;
 b=iUfeeQqtIesbLhFaos7FUNHn6WxP1kecpk7X1F8zUWZyq0C+4QRgVIcui+r/onz05BQOKDFFte4rQQp77s3zRUadmQSTPHqc6UAMCQ3ZYabibvjasSgNweXXbAJ6ftGCG5pPE7fn+5bOp5DATbZqnmbbU7BBjInC4epZgQwsnWQlx6iVPjcsZWxy9+JS/2sOlRJhOEHhpwr7HXP4i9FPng0OSRSgFi/LWssfwQNLztEZpOdskenWHOJLM/0pj+4nnfYdJVtOhno+TWpR3Mda9nHEcSUt1u2cjBrgakw70ywsYhxiwtB5marVDnxEjJeKhawKlb6c6go3yo6dIWHcoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Niz4ofKZc3THtjBwNmEvLV2JEHyF+HICBdHchBMQchc=;
 b=t3Uiau6mDhOC6qWIl+AEBAXChAHpl+hGrmQJRjZlXDO/HjaBNiNhmTE3JalO+Evf7LrbEQK4xgNRxU5MURjEnIHG5hjxzNRQ0t96VBAqXUKBzsmp3znQbMtBVRS7qi8hOQ4OpAfMAkpPwsdyomUVggEJxscFn+JLkBALehbGwgSjA/1ehV4w7lpwqixQG8HmQ4WPiJwViEa4NQlI9jyU1MJ0P5FkHpRv6AAZCEUBAZ1uuCD7Jzi4fkzDbBYudBqWqlXxkKadv/vdNQKlsmVfhAlQnJngEhYvEe+tZgaRcjvdRk4yJL/ALihwrrZRgRd9QOG3D8tqXusgQFTGstmgVA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: [RFC PATCH 00/19] GICv4 Support for Xen
Thread-Topic: [RFC PATCH 00/19] GICv4 Support for Xen
Thread-Index: AQHclF8GgI2Kr/X/QEO5wnP/6sbdXQ==
Date: Mon, 2 Feb 2026 16:14:37 +0000
Message-ID: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 35cadff6-f494-4ad0-e9ee-08de6276295a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?VGNwbE1tVGtsVW9RVXdYWSs0MU1HNTdjUlpocy9ac3JpTGZ1NzJ2ZmFYZGhq?=
 =?utf-8?B?WEcrZVlVWU92cGhOTjQ0SW5SMnpmR29rY1B2VCttOHJQNHZXU2JQL09NdEpp?=
 =?utf-8?B?QnZzWGQ4QkxRN040bHdubVh6RERqejI2ZDcyQzNBNDhhanU0Y05GclFFTDho?=
 =?utf-8?B?SHdUWWNROEhkWjFtUjg3eWtYbHcxeWJ4Z2dYNjJpQ1JqU2FLbWFSOEtINUhI?=
 =?utf-8?B?cExwMUN6cG9qeHpuVjJXdms5VnVSOVBjcWhLMkRHTG9yeXpUME9ITHJGVHUw?=
 =?utf-8?B?SjluZWpHajZ2S2U5MDFBZDYveVZUelMzVG9NMVh3S2tVakhOSm80eG9uUEVE?=
 =?utf-8?B?b3R2ZEp3N3ZzNi95RDBZNW93b251SXl0VkdqRk9GeFc4emdYcjY2UEVnMEZD?=
 =?utf-8?B?MVJKY05KS0x4MDJINnoxSFZQUU43REJEczhhcmN2N2VsTEFFY2F0dmt5SmFi?=
 =?utf-8?B?SG94NTF5d1JOaGVNTVVzVldyUXJValZhd1lobG1uM0FPNmdxMzJIdVdHVEhu?=
 =?utf-8?B?WXJrdUVUT3ZQS2xYOGdoZXd1VG9iWDNwaVRMbDloZDNpdVp4ajlleVRXaXlp?=
 =?utf-8?B?dSthSElpZURjN0crWmRFQUVWemRSVXA3Y2xkYVU5cFcxckhFdVVWL005NWJE?=
 =?utf-8?B?SmwvZHdnSkI3N21VKy9DWW9FNmNqNlZvZ0ZNTVBPMFRpV0VWWkV3RElPR2xU?=
 =?utf-8?B?OENOdmZ3aEQxdFdoZnNKNEdYRHREZXQzbll6MUdUcVQzRU5zcjNSZk1lWkpv?=
 =?utf-8?B?bEF3SEpzTk9QNWIwMXJaNDRkQU1NUHo5d2R3aStXSnUzSVZ4ZDd4Z0JEbi9N?=
 =?utf-8?B?NHg3S01OcmpJOUVkM3BDZjBOWi90YUEwaFp4a0NlUzJIYXFsL3NKYm83a3l6?=
 =?utf-8?B?VHVKekhBQXFSL2RaaHd5UTdOSWtCS083V0ZRWTF6bWhuWUJHSE42SERKSmc4?=
 =?utf-8?B?Uy84Vi9BSHZ6QnlsVXIxdEpDUzk0MnMwSGZXaWRQRGk5aUpDYXJXQm5GM3N5?=
 =?utf-8?B?N0VheDdUUTl6ZjZFL09hNWV5bEhCVm8zYkNrbUp0VmJ0NU5BWkFwcmtneW13?=
 =?utf-8?B?M29PK2tPMEowS3E1ZjB2SHAwbXhNSnQwaXhUM243ZkVndXhJSjB3a0pzSC8w?=
 =?utf-8?B?aDhJYzUwcXNWZWp2VVJZMjR0aVJJZWhlUjRGNVVrVlFSUkRUanBvaURUODdG?=
 =?utf-8?B?ZkxKc0N0RmlFdUdIai83UFZ3UUZGbjlKcUR1Y055RTdxQnZtOGxGSi9hNCsw?=
 =?utf-8?B?TlhnamhVUnh1MDRwM2poaEJLendRUURBZk9mdHpkOWZ1bUtuUjlUT1A3eFJ0?=
 =?utf-8?B?dWlyWUU3SlNtakhUODd6YnpZMlZLaXd4Tlg2dHh1M0V0U1lpUXpmejFGaEw5?=
 =?utf-8?B?WlBkcHVNT1VtQlV3a00wTWZNWkUxdzgzVlhYM29RMFUxWThrb3hXbFNVNFY0?=
 =?utf-8?B?SzVLTzR6UXhoY0d6OUN0eTJWN1VTZEtDNEVCOUZxREFTYWhXNXFLRXZvbjBY?=
 =?utf-8?B?RGoxdlZUUDhMT1QyblNzSnNqdlh0eTRiMndzdXBPZS9LemNJOGhvbmxqMk5q?=
 =?utf-8?B?eUxTNUUxeEFFcVA1MWFpQ1cwSkVmZEhFNyttc0VQanoxRGxhTkFtamsxYlBY?=
 =?utf-8?B?azByRjZIVDRCaDJGWjdOSDdURDduNG5McGFXeGo2REhFSWc2L3BGRGxqWC83?=
 =?utf-8?B?Z1lGTVlpMy9DTWNCS1YyL3ZwTFYyKzhBMzM0YyszZVZRMWF5ZzBMb3k1RUM4?=
 =?utf-8?B?TWhla25KUHcrUWxuVjlUZHpGeUs3WFRHalRoUDgxSEZzV1prODFKSHpiS0Iw?=
 =?utf-8?B?ZzVrZFVWUjFHcTY2WDUrNVNGL1V6WjdlY05qYU1IQ1dhblJvbGo0SDhMUDd0?=
 =?utf-8?B?aGwyTk1MOUdGVTRsVTZZQ1ltU1pJOE40bjRFUm84WDlKenZrQUZzNlh1MG50?=
 =?utf-8?B?MVlmR3RQSUxxb2VwSTlWMzR5WjdKTnd3QWJTNVJadHlHWi9jNkJxcDVQb3k5?=
 =?utf-8?B?Ui8yb0Q0enNPMzg3TnVNWUpCY1U3UEwwOU1FS3U4aVVKZ3NlRDh6U2dPTG8r?=
 =?utf-8?B?WGV4alJBRlhUVmV5Z25hdXJLM2FtRUErd1V2Qmx5TFFrM1BHUnNUWW9rOHE2?=
 =?utf-8?B?U01SWTNZSW0zSHBvTm9WUmJ3d3lKWDd6RFE3SlBvR3I4cWJ0b2dRNnY2REF6?=
 =?utf-8?Q?WU+le/URg4FQIY+Jem6bD8I=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)(7416014)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?dldjYkx5MHhHNmI1OU5RUW0vbDRrTkdMRnJqWEUxL1FxVU16YlViaHE1Y0dl?=
 =?utf-8?B?U1d6QUpSMEJkbTJYeGxKeWc2R0lManUwQmNDSW1lQ2phNkRJYjRGU0dXRGF5?=
 =?utf-8?B?Sjl2bzM0WW5SRmtzR3k0RlNZSFpCbTduS3FYQ2tIaXBxUXR3ancwZzVCVEZ6?=
 =?utf-8?B?MGZmVDY5czM5RkovTVNZRFNuUlI4cUdKUzRnWEdlWmRVRmR0SGtGTzBhZDFj?=
 =?utf-8?B?RWo4b2ZGVU40THNYQ2tFYTZmblQ3V3NsQms0SHM1aUJHb2YvZTNpUndDaVls?=
 =?utf-8?B?VXc1VVNxakFuYkM5OElxcXNjZGNLUmszQTJEWlM2QmVSMHo4UU13MnFLb001?=
 =?utf-8?B?MHRwR29FaWM0VjVwUlgrVWloRjVZdWZibDJjVzRoMmRyNjN5VjlJMzNZYStL?=
 =?utf-8?B?N3JsOW5QOG9lSlVoeUxqaWhNT3hrUk1OZ0xPQlNKOWJRSHlxck4xUVdZbTBl?=
 =?utf-8?B?ajZRWFp2bGZoMDhIRDVjeGplZzEybFoyakx0WlVzUDBqRFF3OGZDVzFHNHpQ?=
 =?utf-8?B?M3YxY3FUdXgydXlhSTFRUms0V0l0T29LcFNhcEVzMUh5QXRKY1RMK0tlVkk3?=
 =?utf-8?B?SmQ1WXFKRzdQWDJMbmNoVFRoVTIrS21EZ1YwbWttWHZCeitrOWorZ0JxVTMv?=
 =?utf-8?B?SE5mai92SnRDcnV3WVJwYW52UHZ2U0pCdXQxTlZvQ3VBRFRVOS9rbEZ2bnJr?=
 =?utf-8?B?bzhvZnVLT3c4ejNBZ2ZNcG1OTThybkpkY1FKVW9XZnpqME9rVy9yRVpQYzZ5?=
 =?utf-8?B?N2dnenJQV1c5dWdrVU5QUG9NU2hKa25UOUtWS3dESnlIQ0Z6TXNacU5jVWdN?=
 =?utf-8?B?SDJVRDBhRnlIVnpqUzlxaVBzODhHeWxtV2hHaWJlZzhNVUpJQTZkZnBnaW53?=
 =?utf-8?B?a0oySGlXN2VBQzh4WEFySUs5RE1icDAybUFmMDBDSldzTlo4czlCRHlwdjMv?=
 =?utf-8?B?Nm9WNHpIdHo4L0Q4dGViTGdlQjc5MkRYUlFDaUNlTnNOUTdqaGlRTzUwYXRW?=
 =?utf-8?B?Y3pDc0hhS2o3KzFXTHlCc2djWE5lMm1CNWViWmhwY1Y4VVE1b2JPOFJ0VkVW?=
 =?utf-8?B?RGIrSUZWWVU4TmRTZTF6Z2RPOGRHZ0E2VTB1VG9VMWhzYkI1bTdvUERGampF?=
 =?utf-8?B?WkJXOG95dW1sSTUrZWtwQ0d6UytQVElwN20zMnZ3dGJsN2QwMWwrSVdjRlJR?=
 =?utf-8?B?Q1MvWWl6YjJVSVBGNDRNSHByRHd4RTFyV01BZGhuMHM4VVp0MFJ1OVRDU3hL?=
 =?utf-8?B?ZWxJQTY3bmVzUmk4dEZLY1VDWjAvWXJadUthZUJVWjQzTkZnVjd3WVl2bXFP?=
 =?utf-8?B?Ykl3SXZuNEx2M01DWE1kVWVHOXdobTFza2FTOTVNdGdPZi9nMVMrU0NQRVZ1?=
 =?utf-8?B?Rk5ZYmZuQVFZajVNYnVUelliUkVqazZZeE5mT2svU05VdXByMnVIczJlM1Yy?=
 =?utf-8?B?UVZYdzhBM2ZWdUYraEZCenZYVUhHdUlWMjkxckF5VmtrdEYzVkQzRlRoRm5q?=
 =?utf-8?B?SWFyYmxVV09TcmVTRDJ6VC9OdzEza1BrcFlJZVU2WWxkemNhaUdOZmFFZ2N1?=
 =?utf-8?B?aFoxSkVuZ3ZkalpHRjRBKzFRbkpkZmU1NW9sek55Rm9Dem9hdEVQQ1Q5bmI0?=
 =?utf-8?B?Qnc3WUNnTFR3Y2tQYnpCRm1xdGxDbFExYUxKM0duUHJFMHBlR1RpUktEWFRZ?=
 =?utf-8?B?dmZ3Y21EWEZOeW5LS2pUWWl1aFhJZ253d0Q1WHB5dFFSZVpnbHRKdE1HbHNy?=
 =?utf-8?B?Q0tjTVhNSlQrdlhXZ2xpSFk1WVQ1MFFPRFkvVTNKVFVFa1pLRTI1a0ttNHox?=
 =?utf-8?B?UTIvZGxzK1hxSVVhc1ZQSlpsQmNYV3lzQjJtcEdodWZ3blBqTk1oV09uY1o0?=
 =?utf-8?B?Y2E2RnVxRVcwTnVhUGlUZnp6bHpUN2VDcmVtdnpVNzQ0MTN5eXpjUGVBTWlw?=
 =?utf-8?B?NXBFd0tHYVA3clF1WGNyamc3OGdkbTN4QjBFaTFNaGl5dnVZZDVTUDJYYlRM?=
 =?utf-8?B?MUhJRHdQOEpaTU1wc2pBa0ZyWStVVnZaand4dm4zb1RVU1Rqb0lPUlpvcFJ1?=
 =?utf-8?B?T3NZanJubko4TXV3WTB5Wjl5RlFYcS9BQkx4d1JqTHZMaHhtdmRMWG5GcDdP?=
 =?utf-8?B?U0dnWHc2N2VYSHQ4WE5ScVh2a2xjMkFHQXBqcDZldVQ5NzhDYmtFNDNMZUt4?=
 =?utf-8?B?TFRqVjBtYXBQc2dpbzV0R21iamRjOEk4bmhnb28rMG5IRDRJTVZTbGczQVJS?=
 =?utf-8?B?dmJGMFhxR0NIU2FTZkFpOVA5ZFBZUW9jMWJZK29zMmpXUHFLK1Z5bWR0ZXF3?=
 =?utf-8?B?L3dTZElCeGJOOUZqV256RmhqRTJDT1JyNVcvSENXQnliTkcwZUNOY3k3Zm5I?=
 =?utf-8?Q?WNUC5mtLJoLyJK1w=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D8E2BB8D71F7E64D983925F81303E7C2@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: 35cadff6-f494-4ad0-e9ee-08de6276295a
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:37.1904
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: XCe+qXYUn2Ldd9DlN8QgxbANrvAEGjjYeFtwYagtL77BcP9LZdS6CwV1IZ7/zSGzl6AUxFv6L80OSeW3yH8ZKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

VGhpcyBzZXJpZXMgaW50cm9kdWNlcyBHSUN2NCBkaXJlY3QgTFBJIGluamVjdGlvbiBmb3IgWGVu
Lg0KDQpEaXJlY3QgTFBJIGluamVjdGlvbiByZWxpZXMgb24gdGhlIEdJQyB0cmFja2luZyB0aGUg
bWFwcGluZyBiZXR3ZWVuIHBoeXNpY2FsIGFuZA0KdmlydHVhbCBDUFVzLiBFYWNoIFZDUFUgcmVx
dWlyZXMgYSBWUEUgdGhhdCBpcyBjcmVhdGVkIGFuZCByZWdpc3RlcmVkIHdpdGggdGhlDQpHSUMg
dmlhIHRoZSBgVk1BUFBgIElUUyBjb21tYW5kLiBUaGUgR0lDIGlzIHRoZW4gaW5mb3JtZWQgb2Yg
dGhlIGN1cnJlbnQNClZQRS10by1QQ1BVIHBsYWNlbWVudCBieSBwcm9ncmFtbWluZyBgVlBFTkRC
QVNFUmAgYW5kIGBWUFJPUEJBU0VSYCBpbiB0aGUNCmFwcHJvcHJpYXRlIHJlZGlzdHJpYnV0b3Iu
IExQSXMgYXJlIGFzc29jaWF0ZWQgd2l0aCBWUEVzIHRocm91Z2ggdGhlIGBWTUFQVElgDQpJVFMg
Y29tbWFuZCwgYWZ0ZXIgd2hpY2ggdGhlIEdJQyBoYW5kbGVzIGRlbGl2ZXJ5IHdpdGhvdXQgdHJh
cHBpbmcgaW50byB0aGUNCmh5cGVydmlzb3IgZm9yIGVhY2ggaW50ZXJydXB0Lg0KDQpXaGVuIGEg
VlBFIGlzIG5vdCBzY2hlZHVsZWQgYnV0IGhhcyBwZW5kaW5nIGludGVycnVwdHMsIHRoZSBHSUMg
cmFpc2VzIGEgcGVyLVZQRQ0KZG9vcmJlbGwgTFBJLiBEb29yYmVsbHMgYXJlIG93bmVkIGJ5IHRo
ZSBoeXBlcnZpc29yIGFuZCBwcm9tcHQgcmVzY2hlZHVsaW5nIHNvDQp0aGUgVlBFIGNhbiBkcmFp
biBpdHMgcGVuZGluZyBMUElzLg0KDQpCZWNhdXNlIEdJQ3Y0IGxhY2tzIGEgbmF0aXZlIGRvb3Ji
ZWxsIGludmFsaWRhdGlvbiBtZWNoYW5pc20sIHRoaXMgc2VyaWVzDQppbmNsdWRlcyBhIGhlbHBl
ciB0aGF0IGludmFsaWRhdGVzIGRvb3JiZWxsIExQSXMgdmlhIHN5bnRoZXRpYyDigJxwcm94eeKA
nSBkZXZpY2VzLA0KZm9sbG93aW5nIHRoZSBhcHByb2FjaCB1c2VkIHVudGlsIEdJQ3Y0LjEuDQoN
CkFsbCBvZiB0aGlzIHdvcmsgaXMgbW9zdGx5IGJhc2VkIG9uIHRoZSB3b3JrIG9mIFBlbm55IFpo
ZW5nDQo8cGVubnkuemhlbmdAYXJtLmNvbT4gYW5kIEx1Y2EgRmFuY2VsbHUgPGx1Y2EuZmFuY2Vs
bHVAYXJtLmNvbT4uIEFuZCBhbHNvIGZyb20NCkxpbnV4IHBhdGNoZXMgYnkgTWFyayBaeW5naWVy
Lg0KDQpTb21lIHBhdGNoZXMgYXJlIHN0aWxsIGEgbGl0dGxlIHJvdWdoIGFuZCBuZWVkIHNvbWUg
c3R5bGluZyBmaXhlcyBhbmQgbW9yZQ0KdGVzdGluZywgYXMgYWxsIG9mIHRoZW0gbmVlZGVkIHRv
IGJlIGNhcnZlZCBsaW5lIGJ5IGxpbmUgZnJvbSBhIGdpYW50IH40MDAwIGxpbmUNCnBhdGNoLiBU
aGlzIFJGQyBpcyBkaXJlY3RlZCBtb3N0bHkgdG8gZ2V0IGEgZ2VuZXJhbCBpZGVhIGlmIHRoZSBw
cm9wb3NlZA0KYXBwcm9hY2ggaXMgc3VpdGFibGUgYW5kIE9LIHdpdGggZXZlcnlvbmUuIEFuZCB0
aGVyZSBpcyBzdGlsbCBhbiBvcGVuIHF1ZXN0aW9uDQpvZiBob3cgdG8gaGFuZGxlIFNpZ25lZC1v
ZmYtYnkgbGluZXMgZm9yIFBlbm55IGFuZCBMdWNhLCBzaW5jZSB0aGV5IGhhdmUgbm90DQppbmRp
Y2F0ZWQgdGhlaXIgcHJlZmVyZW5jZSB5ZXQuDQoNCk15a3l0YSBQb3R1cmFpICgxOSk6DQogIGFy
bS9naWN2NCBhZGQgbWFuYWdlbWVudCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMNCiAgYXJtL2dpY3Y0
LWl0czogQWRkIEdJQ3Y0IElUUyBjb21tYW5kIGRlZmluaXRpb25zDQogIGFybS9pdHM6IEV4cG9y
dCBzdHJ1Y3QgaXRzX2RldmljZQ0KICBhcm0vaXRzOiBBZGQgdmxwaSBjb25maWd1cmF0aW9uDQog
IGFybS9pcnE6IEFkZCBodyBmbGFnIHRvIHBlbmRpbmdfaXJxDQogIGFybS9naWN2NC1pdHM6IEFk
ZCBWTFBJIG1hcC91bm1hcCBvcGVyYXRpb25zDQogIHhlbi9kb21haW46IEFsbG9jIGVub3VnaCBw
YWdlcyBmb3IgVkNQVSBzdHJ1Y3QNCiAgYXJtL2dpYzogS2VlcCB0cmFjayBvZiBHSUMgZmVhdHVy
ZXMNCiAgYXJtL2l0czogSW1wbGVtZW50IExQSSBpbnZhbGlkYXRpb24NCiAgYXJtL2l0czogS2Vl
cCB0cmFjayBvZiBCQVNFUiByZWdzDQogIGFybS9pdHM6IEFkZCBJVFMgVk0gYW5kIFZQRSBhbGxv
Y2F0aW9uL3RlYXJkb3duDQogIGFybS9naWM6IEFkZCBWUEVOREJBU0VSL1ZQUk9QQkFTRVIgYWNj
ZXNzb3JzDQogIGFybS9naWM6IFZQRSBzY2hlZHVsaW5nDQogIGFybS9pdHM6IFZQRSBhZmZpbml0
eSBjaGFuZ2VzDQogIGFybTogQWRkIGdpY3Y0IHRvIGRvbWFpbiBjcmVhdGlvbg0KICBhcm0vZ2lj
OiBGaXggTFIgZ3JvdXAgaGFuZGxpbmcgZm9yIEdJQ3Y0DQogIGFybS9naWN2NDogSGFuZGxlIGRv
b3JiZWxscw0KICBhcm0vZ2ljOiBBZGQgVlBFIHByb3h5IHN1cHBvcnQNCiAgYXJtL2dpY3Y0OiBB
ZGQgR0lDdjQgdG8gdGhlIGJ1aWxkIHN5c3RlbQ0KDQogeGVuL2FyY2gvYXJtL0tjb25maWcgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsNCiB4ZW4vYXJjaC9hcm0vTWFrZWZpbGUgICAgICAgICAg
ICAgICAgICB8ICAgIDEgKw0KIHhlbi9hcmNoL2FybS9kb20wbGVzcy1idWlsZC5jICAgICAgICAg
IHwgICAgMSArDQogeGVuL2FyY2gvYXJtL2RvbWFpbi5jICAgICAgICAgICAgICAgICAgfCAgIDE2
ICsNCiB4ZW4vYXJjaC9hcm0vZ2ljLXYyLmMgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0NCiB4
ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jICAgICAgICAgICAgICB8ICAzMzkgKysrKystLQ0KIHhl
bi9hcmNoL2FybS9naWMtdjMtbHBpLmMgICAgICAgICAgICAgIHwgIDE2OSArKystDQogeGVuL2Fy
Y2gvYXJtL2dpYy12My5jICAgICAgICAgICAgICAgICAgfCAgMjE1ICsrKystDQogeGVuL2FyY2gv
YXJtL2dpYy12NC1pdHMuYyAgICAgICAgICAgICAgfCAxMTM2ICsrKysrKysrKysrKysrKysrKysr
KysrKw0KIHhlbi9hcmNoL2FybS9naWMtdmdpYy5jICAgICAgICAgICAgICAgIHwgICAgNiArDQog
eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpYy5oICAgICAgICAgfCAgICA0ICstDQogeGVuL2Fy
Y2gvYXJtL2luY2x1ZGUvYXNtL2dpY192M19kZWZzLmggfCAgIDIyICsNCiB4ZW4vYXJjaC9hcm0v
aW5jbHVkZS9hc20vZ2ljX3YzX2l0cy5oICB8ICAxMzkgKystDQogeGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL2dpY192NF9pdHMuaCAgfCAgMTE0ICsrKw0KIHhlbi9hcmNoL2FybS9pbmNsdWRlL2Fz
bS92Z2ljLmggICAgICAgIHwgICA3OSArLQ0KIHhlbi9hcmNoL2FybS92Z2ljLXYzLWl0cy5jICAg
ICAgICAgICAgIHwgICA2MCArLQ0KIHhlbi9hcmNoL2FybS92Z2ljLmMgICAgICAgICAgICAgICAg
ICAgIHwgICAzNyArLQ0KIHhlbi9jb21tb24vZG9tYWluLmMgICAgICAgICAgICAgICAgICAgIHwg
ICAxNCArLQ0KIHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oICAgICAgICAgIHwgICAgMiAr
DQogMTkgZmlsZXMgY2hhbmdlZCwgMjE3NCBpbnNlcnRpb25zKCspLCAxODggZGVsZXRpb25zKC0p
DQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9naWMtdjQtaXRzLmMNCiBjcmVhdGUg
bW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2dpY192NF9pdHMuaA0KDQotLSAN
CjIuNTEuMg0K


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218792.1527660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZX-0000xR-FT; Mon, 02 Feb 2026 16:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218792.1527660; Mon, 02 Feb 2026 16:14:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZX-0000wu-AQ; Mon, 02 Feb 2026 16:14:43 +0000
Received: by outflank-mailman (input) for mailman id 1218792;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZW-0000fY-0u
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:42 +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 46ef0e11-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:40 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:38 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16: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: 46ef0e11-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Rsl9kgeKFDFD3tXSNImarwRVVbI+vszCGrZ4lDAluahBocbcPcej7xvSkVCmGijUMr7xhcERkSAx1KXlwEBjnYJtHn6NEEtxO4Il1WRKaEZ/OlZGd/Sctv6n653k90HtS6T8USJSXZBxxq3PHr5S3S8qTlKM/uG/wnXx5JnI5RkLIL/9FLYVpwsSYsrqtY+rt1Ngk2T4Ggd0rDYSMScWRlPt5cl4rPYJxsDK93t+5+pG8mojUly0sCm8nHYhYroMWML76b+2SNkm+yEyTU0b7M0i99SdQn1zRzim4+Uoa/j6RJLYFyX+2iTH4WFZXD6SPh4MshvbraXlfvR+XsgZFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cyn14mIWWGcKZv+b3gYE9UBwudPA49aWy+Wq/fLyg6o=;
 b=saQrYG8qoY4fb0/E7+47XZA9ELNx6ZOKlYeBVEWmOWre0tsgipXgWvgwr8mHR+yl2LHsnz3o/gI8EMCPB/cJpDSHE9wjKzXfh8EWcRAuQmYdLFX7xvwpO066fjASpiZ8u2FW6TXNAht4BZeep2O+vFYG2Zjo2ygMNRMY1cPM1XzKQe6aKcGn5LKiu2b7yO6R92VdrdbUMiMRBl3ypHRNxVscqjq7y4NMoNUYHHa6fSRp4jElK4IJrjFVmFeg9eoRKORsAuRzfwibbkUvmnTxhtLCU0cIux7cGFaFoxXHO/o/lJKS4E9BcVhqJ/5DdC7OheWitjmmjo+OMkzrWIybqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cyn14mIWWGcKZv+b3gYE9UBwudPA49aWy+Wq/fLyg6o=;
 b=gr9qkSPxrCUROYNj1tgw9PAObXITHw0dpZuVzJR6WfEGaR8TRvX3BJM7DWa/MkerOOaKGm+dkbih2bZFzsflg6z+lglcp2wjIKkQNZendZQ7d7NNDwinq+m5GNCgS5wy3dPRF7irYYiY1EGX9gwjCPI50Oq0U9o1RWqFkpt4/QYrzt+8mu01A7+tG5plkG3IPI2iCBvWBDjnv9QO3yT7jl769PVqyW2le8WPaKmWaE4TlGHUpl/+kMbTAfUSyn+MhTs9iaELZ3QND4oiiU7JrxjcxcuR/TC22ONiO9lYkRrDi4F0tnCEg8gU3srRUz89oiKodzYmcjeo+IFjONzpXg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 02/19] arm/gicv4-its: Add GICv4 ITS command definitions
Thread-Topic: [RFC PATCH 02/19] arm/gicv4-its: Add GICv4 ITS command
 definitions
Thread-Index: AQHclF8HDQo3o0DTckGQ45OEXd7MRg==
Date: Mon, 2 Feb 2026 16:14:37 +0000
Message-ID:
 <3eb1cea5fb870e01b86e964caef5ceb9b2a8ed75.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 1f013205-25b5-443c-2089-08de627629d6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?IIeaBhsaEtF3MEAaRjMlb1KubpcMM/qJmQFphiO+/yFru+/SumvY714aNg?=
 =?iso-8859-1?Q?eHhox9kQP5nsf7ufXeLPHTAtDNRrBTPD1WzHNiXag/W8ZqysE7UvhPAKwd?=
 =?iso-8859-1?Q?4dTuILXb7vp+UHApyaqJO7RennuhwCao65EKvJSE7eEBggsLYCKrnUbxe4?=
 =?iso-8859-1?Q?1Xo6/lt1rNDy/7fU+CMCTl1o8uuSneXg+qF/VN9JeDu8Rb8Qn59jf8fLPv?=
 =?iso-8859-1?Q?y40Ail6PEg+dIYuiUPlY/QAp/olCHU36fSLif4Cx9I8xbZN4UyXkD3QjGY?=
 =?iso-8859-1?Q?9AyZM8aPnDiACB+3I+FpdBsxwvo6MxoLrpbjhC/pXTJe/eNNbnOyN9+VAm?=
 =?iso-8859-1?Q?NGBlJ31opcWD8Fs1YYEmTI6xzJvp9IOUgdmlL6AW7t8rs9PNRgwYGCIvUB?=
 =?iso-8859-1?Q?PEYccPsPaNotQHjgfHnFJRjCUamGN7EfbI3YKobNq0MUvX58A5pC08zGAW?=
 =?iso-8859-1?Q?EbP25q+WS/hq+8Prr/zfUU6fwVkVfvcMnjXCY1E458I0RdWQx8USBZUFbE?=
 =?iso-8859-1?Q?dGmoq3L7h6/T5eW6rezGC2/4LU/AHMjvhlxl6t+8aX5kjgnBzSEHErh/XF?=
 =?iso-8859-1?Q?i7dnvypBdkJjmj2ax7sTexTLwkgkwNYdbeIWXhvuVgEtnuBM7Nrf9/yzzP?=
 =?iso-8859-1?Q?W1GUNw7lFLFhhY5wuQiceSIlX59nRJrG+Tjf3WiSmso7w+Itl+AL34sWE8?=
 =?iso-8859-1?Q?O57Dpx66TmQxmYjvctatCxJjvW6KMZMIUm+alo2z2Bq+Gsubyn3hIBQeT1?=
 =?iso-8859-1?Q?v1X/2242d7L48GtzHWfy1pHHX82h098u/6dJ4bt5qh3LnhfGkfau56kh/t?=
 =?iso-8859-1?Q?/V+SEwm+cMJB4x6H45I2UvdTo9tbAdpiO1/64toQJ8/LOFVf6hVSbZ0WL5?=
 =?iso-8859-1?Q?nQMHil651WHzTtVuD2cUVSsnHk3uVszFnu4nZ93tIs4C4lZjE/RafWuQRQ?=
 =?iso-8859-1?Q?MNr2Knztb+M3WdYSNIgFKhdgPWuwi8a8Bf57mi+tqjRrR+5q5zZITK1tFy?=
 =?iso-8859-1?Q?eF7SkLZpP4Ts6d0Jk6QZnJSmW5uc/ue7+VFiRUcRswoqNAHtpvwm/I2434?=
 =?iso-8859-1?Q?6Vdy1oC47m3YT73iVR94UjGhOJOz2yMmQD+vb3UwAl7dQy5BWjGrgjp7RT?=
 =?iso-8859-1?Q?d+kgIS7mW1LPYYPVNGBwqCJFi++oKsc002cC4HxdQ3f6mXJ/u5d/GjIkTQ?=
 =?iso-8859-1?Q?G+tgIlNruppzUHTZWyPZjccIgTECbeia65MTHiyRKVvhgHURk1TejnmBW2?=
 =?iso-8859-1?Q?RKl7vDNyulZsCDRhX6t4I+ybtGZOrRU1tPumN1rgMPvtBZiGshIuHlXp3D?=
 =?iso-8859-1?Q?+8r/oFPrJQfE07wb8AIGFawQpmfAdnu/OiGGEpTimm59xa06oUsjwlwUun?=
 =?iso-8859-1?Q?iR+HsxJl7lLudg/nGRUOUDmNw6Mkcl27X5MDUe33cEg8Bq0Ah6uTuZAXeB?=
 =?iso-8859-1?Q?Oyoqc102eC7RdcTLM1OLN5nQh4JNsxSru/ToWwfH77RB6ubOZ/Wwi0Iz97?=
 =?iso-8859-1?Q?C3frIgq/OwaTYVUnvvxe/AKKSo7xDvFFD+UcIb6EpLWBVbu1ZWvCounBXq?=
 =?iso-8859-1?Q?46RtM7/9oZRwTvcbVjpXhTBHX98N31Gd7kp/FY2t34nvu1JPCub37MOiOc?=
 =?iso-8859-1?Q?X3vzine0MUcUj3I2aTuXvSBhUiJpuCd4Y6IhdZG/+ZDDL0F17EDOCMtcMT?=
 =?iso-8859-1?Q?gKFQYnYFt1QFgdmW/FU=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?gHpde/Ii6kF52824t8gDEylF7dgA8rSA3gvoEGZMBB9Hv81wCBvWv0hspj?=
 =?iso-8859-1?Q?oQsCxWCRVEA6MqP2/UpLxspjT8H+e+DEA4MtpLV33AN95fMIRhhwBHZUL9?=
 =?iso-8859-1?Q?k5SpQ3tSz+PtAg4mw63/USbsMztQ1VGHhwWx6iUmUfkD4G4SSTKofHS00c?=
 =?iso-8859-1?Q?WsCanFSO4E7IeI0G5l7RlBk+aSEOtES/jIE8VRxnK4KrdK1fB9AlNoXaue?=
 =?iso-8859-1?Q?Cm4NtbpLp6zLSggzRy82X6093ky3lxG3tBiObNnofW0RCvs3HQIqTgj4Fe?=
 =?iso-8859-1?Q?8vVr8HnWYQLzB92eJuAP7+c3Vq9rM2O7WT/1TVg4C1xe1Zaab+J9WZXYSg?=
 =?iso-8859-1?Q?+AHH0RKXFyz7a4j649bs3Feke8ip5KsuSn8f3nofZ3jLFyAwIXT0KU3hTj?=
 =?iso-8859-1?Q?UPirDMuxidjvSgiarDXyMf1Ed1JIsiQt3/QJqRHTQqcEEaX/hkXuu7s2nC?=
 =?iso-8859-1?Q?GxH+VMQD4gy07OUuUpf28PZ/sxcdgslkQoanVYW2CjG2c6LYWEkGQQlNJY?=
 =?iso-8859-1?Q?IiwAf4PWCC59NFXHGsBiwey2GtLLVEUO0QeZdg9SLVi3OwDLWjbdNWwS7b?=
 =?iso-8859-1?Q?TcEv2YEnmIXPz9tpLSPOY+41fayOZUkVYEJNPzJV/rInI2yl6X9klLOLBi?=
 =?iso-8859-1?Q?w23kI2wbKOJCGkv9Va3oid3mo3N9Kp7vg/+ccFPWy4pzF5FiIOlsPnAl8V?=
 =?iso-8859-1?Q?O935yo5uXr9RsS9WTH6URMhHoIKN94aYJtz/nkRS4l65BV1dxJQasHkTy9?=
 =?iso-8859-1?Q?2w0PFCSRemCPerDaeYbtBBxkQkQjuXHGA3Mw7AiQ351vKWgwJLTt3EkVAn?=
 =?iso-8859-1?Q?VVrokAYEDvaEKEuUMixKijMuFdsLIeqBGza1903Ah8Rg8rEbDNikiWKpI+?=
 =?iso-8859-1?Q?c0mmrMoE4865erLyN0lQZUv4JUlDWje2Rz5ljXGf8+hHXg2Mpl4ISECxds?=
 =?iso-8859-1?Q?dbu3B0zy9Xl+VCJsh28CzpuI0CtGs0I8UHKnLnRn/hpEuEcCU6Ov7Fxwf1?=
 =?iso-8859-1?Q?Kxrs+AFlQzqaVUkoV/8C9iSIBrVY0/lSW4Puvg3tsTQzSneYYbLpYJzJU0?=
 =?iso-8859-1?Q?pFkCEXIl3zgNSc0cxbzxOqhsjzrsKjfjnXlZgF+M3zvQmCrfge6lcRRrSf?=
 =?iso-8859-1?Q?DLvbrK19uqD3KPwA/HNCsmZEaZS07OoXN0L/nG/Np+LuWDYo/Wj1XWRoOw?=
 =?iso-8859-1?Q?iroMVGHzKw28Y7xNDOAbR5YrUcWBefo+wbDltP8GIQJTMDEXk8pYnJGMdU?=
 =?iso-8859-1?Q?Jn9ZvYUkyY8SCgsyXLUDIDCEWofNDZXQgdrADuxiCse7BtidnIIPN/NPOQ?=
 =?iso-8859-1?Q?Jk8QjkrvLiS+DTdZ659oGcvLBVd5+zPjPxnDltES8PXW154uc0JKWlhn01?=
 =?iso-8859-1?Q?Vh2LpbIB/xP8f3q9Jozgts+tVGbIylzKg8JmVwLYaLw593yUBRziPNvk1q?=
 =?iso-8859-1?Q?MoijovIKfd0+xiInEKYmlk4uC/paSfUsTstkVeFcDxQvV0fIQ2DrfVueXD?=
 =?iso-8859-1?Q?dGeKriRyf0LhUaSKRJJ+qwvOfpy9EHYyoeEn00nHPKKUCo8JvBMIWxu6Lk?=
 =?iso-8859-1?Q?xPnNMCLksFNalC9HmACmoPYACmYR+qBrXACPPAe6rLymb4hzTmD4YtD0xv?=
 =?iso-8859-1?Q?BFukielRb/CidZ9EXL/tzS3RtcDM+uS3mu50Y6Qgr3cpaBiq77f26tQvDE?=
 =?iso-8859-1?Q?vFFGryvvEPD09RFfX54kSvb354DUPIoEnQICFFQVfH+LtYUEGYuildeKpd?=
 =?iso-8859-1?Q?3CFM6rJ5fSTNbOuTKJVtTDxY47HFGQNMzfuV0mraUTVs2xmBu9Jn+1OFAn?=
 =?iso-8859-1?Q?6c7Bk9Hp9lzFa8onUhnKnMMzXPE0f7g=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: 1f013205-25b5-443c-2089-08de627629d6
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:38.0305
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: l94HeemlUKN74wbZ7zRgOv2P63enIJQWWs5PnFsaAVV7iwJPGQQHNtu/MrA8tfIQEvNLxj3064HGoWng/IaWKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Add definitions for GICv4 specific ITS commands.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/include/asm/gic_v4_its.h | 41 +++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 xen/arch/arm/include/asm/gic_v4_its.h

diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include/a=
sm/gic_v4_its.h
new file mode 100644
index 0000000000..f48eae60ad
--- /dev/null
+++ b/xen/arch/arm/include/asm/gic_v4_its.h
@@ -0,0 +1,41 @@
+/*
+ * ARM GICv4 ITS support
+ *
+ * Penny Zheng <penny.zheng@arm.com>
+ * Copyright (c) 2023 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __ASM_ARM_GICV4_ITS_H__
+#define __ASM_ARM_GICV4_ITS_H__
+
+#define GITS_CMD_VMOVI                   0x21
+#define GITS_CMD_VMOVP                   0x22
+#define GITS_CMD_VSGI                    0x23
+#define GITS_CMD_VSYNC                   0x25
+#define GITS_CMD_VMAPP                   0x29
+#define GITS_CMD_VMAPTI                  0x2a
+#define GITS_CMD_VINVALL                 0x2d
+#define GITS_CMD_INVDB                   0x2e
+
+#endif
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218793.1527676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZY-0001Mg-Q1; Mon, 02 Feb 2026 16:14:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218793.1527676; Mon, 02 Feb 2026 16: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 1vmwZY-0001LO-LQ; Mon, 02 Feb 2026 16:14:44 +0000
Received: by outflank-mailman (input) for mailman id 1218793;
 Mon, 02 Feb 2026 16: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZX-0000fY-0v
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14: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 47287423-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:40 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:38 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16: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: 47287423-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O2irMBLf38WWpd/dgjudEA19VynaRhlINTjNU5Evo9bOMNNgN6n6ZiZYXeyZHgX2OJOGc1sjB2lhL/Tz5xx20vWgNGmSjhQxbN6vAyGdEMogspkHBLa1Efkd6oKvRAh9ooZPy1Gjd7bHGSfAauvePf3cabUFtMt5Nu9kT3kzacdUyqUdfRlJO1OPkf+5htdpwVvZ5E9ArC5QZqXwH7MZGxtNG0rjiYVCW5wM8A6IHwhs33KJv6uxVXv5l50H2bDqJtQOK9yFSN3hQZUYVs4HnBaif3bUgl6ZNYEh0jHJYJnsXYEQxvBEWbQvDsOYBmB0xCpGXRINKABtd6Icyey2ZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iUKC8PxXATJx7SpqIhLHzMIKs4Vp6o1Q57Ysq2ayrD4=;
 b=QWrZ0E3W7NFk5TD3xtQweDgR+YPYaEc44SiYChevCkYEofNCW8Ls3VPpSiPyPieIBujKMnvDY7n9/FI/xLsy2wMfaGSnoPGBKPVtOUQKGLQtM7bkDtIEaWmG7qTqDHJNT6Ea2K74R65vBFNfxI3L4LDRReJUsn9JKGW4/rT5wtDo/KhR/3RfV1Ldqc4Ee121o+s+iRuPpW+bL1J7oxzN3aifj0DOUYIU3QKhnUFKes989hjH4BBSR25y+39WV04zXWCvpgfPZEEvrkcnvELYBsMIeeKSVT6QFiQjSxNLFz2vSkihyTlOVStJMnSjBYY2Z8Y6IbB4JvwMeihQTn5PFw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iUKC8PxXATJx7SpqIhLHzMIKs4Vp6o1Q57Ysq2ayrD4=;
 b=OybhA8M8XwL8cqibmAw1d+dE2G+U/bjrXcU0UwOx18aNopQIMpaY4GE+A6KdAHhQ7oiuQrzhkZzkeq+W1f8xNkbyO5UHoHKsL8t6hwLAg8SGjJqV33xtdD6HO/EDp4igkNp58GenqStfRP3xfw79DICEiwPBQh5VFktvEy28K/Jpum3oMAlATlWChPpP/ptUX75VPFUOQ4jAZGqCd1RU4/DnXFihWQxJnuSvLWevece4nRRmRfuM5OzBDT7wLrvc/1EfjoAAcM6b00uU7MOo41g+VrSWLU7/+wAiHvxhtlyEU8ebK/JSaIBmXxp5q29giieEhoB6aZsE5mRyA0vOGg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 03/19] arm/its: Export struct its_device
Thread-Topic: [RFC PATCH 03/19] arm/its: Export struct its_device
Thread-Index: AQHclF8HcsGkFxai5E6CQapzQPG17A==
Date: Mon, 2 Feb 2026 16:14:38 +0000
Message-ID:
 <cecdd9e18733c63f36f29c1043b249cf431d8a01.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 0d63e815-d2ec-4e10-9f97-08de62762a19
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?j3x1Euh471pR+ixsPWpURI3ZddfnIAd0QK7LliKvwnBIqtZuN+jaa/4AjY?=
 =?iso-8859-1?Q?H3FssNo96zOnuvhey5RrnDALFm+X2OCiMiHMsZLSaalaFekqKYjVdeisaP?=
 =?iso-8859-1?Q?NSjz2aBBfv/f7od4v2xe4xIscIErza80fNeecZ4MbZ/PG/gwCf80PmwRUS?=
 =?iso-8859-1?Q?kovVhlJ2tZeAOML2MUTQjld7/hwWmK7aRZ+bCD+x+zxW/pDv47aTSySnBa?=
 =?iso-8859-1?Q?vfZsHCtko5xNXW72pK5zp4udWjvx6GoDHZo3CzcKZtGFT24b0p/L/YOIJw?=
 =?iso-8859-1?Q?8Cinetcv2pQa1Bb0sf4Ix6P3pRzw8eaUTPiPK5/w/uXJztqnXCrDFirAgW?=
 =?iso-8859-1?Q?kVOBdIYuqIOUsnSUfUuYCKFne93oelscg9lBSAiBYd3ZHlZYIJzHgqQ6O5?=
 =?iso-8859-1?Q?T1pvPktc2WGBNfrU9xMos7jL0cs4iyxRdi/N9uxEQc/vBT//KSFtBqV2/R?=
 =?iso-8859-1?Q?uH4BGRdNPavR9S59Abb0m0OpgqgXfC+8ac70vN3OhPmoXSDXO4iZinGoLI?=
 =?iso-8859-1?Q?2ZjdHHELwEbx33S9YkSug9jM+BzQEhbd5oFAuEHq+aI5Bll/qBPiETVplh?=
 =?iso-8859-1?Q?ETCDUGy0GYHpVgNVn3lzkSLT2daPxnj18qpgyki4/fhBlqEJ06286YsVU+?=
 =?iso-8859-1?Q?Oeg9CNxpuF/ebUma5WNQw4lz6NZerP4iy2xzq4gTUQX8PKHm8hMSboeJ2L?=
 =?iso-8859-1?Q?8PDDm4HgKzyUJos44esw7+cuWdp6RBsUsW+TAzqkAx3GWUbwCmx1PQu3Dx?=
 =?iso-8859-1?Q?keCVww6J01/PbNDR6PCXldKUFNzVp/scLPW1M4yUFM4qZ2GYHvNPr+oP8x?=
 =?iso-8859-1?Q?trTsSedPmPMemJ6X1lpB68cNu+qIIDERtBu+FOfSFPfpEFsUnmkE4+4PH0?=
 =?iso-8859-1?Q?xhRd5v4ZjMh9bESnVQyqcjkxL6g91r1Zn5rGurG9lpidCsaLfhCJVd8XkR?=
 =?iso-8859-1?Q?rn/2IxihkQmaB64Brygf6RaAlrECi3+JUz8l7OksAGmNcBwM8lPbbCUznW?=
 =?iso-8859-1?Q?vC3FAt8vqZDhjb5Q+f525FPTBG6OFbLITCnJGcSlw7N5tUTli61dMtxRuJ?=
 =?iso-8859-1?Q?vmF5a6AKT9tKrbKRRnqT1m1c+Qi6DClIyAbFosOzDYvKU/F4WzUgEoIbPt?=
 =?iso-8859-1?Q?Q9Hj/NxziVqsA3G+Rs1J7uzCk48emoBrAZmRXDZmwWEN4aIXiyK3FDOt5Q?=
 =?iso-8859-1?Q?mbkda8o2Jq60GcKu+G/f8TWSqTmzaJYUymDcmLEItBN5WVg4ERAzde/O5L?=
 =?iso-8859-1?Q?LOQnPIwY9Dgpl7DNKK5qWxpkdaNa6QwPcLH/p4RDgMKwCvuINjpVbj6uST?=
 =?iso-8859-1?Q?yaDRE2bdYSf+pIFXUuHZMcKiJ8hTMEbA9W8SkDDhICImxXPBLV3mjLTzoj?=
 =?iso-8859-1?Q?AdKcJdWjsN1+TqD2Kba6FQAqRrGEYJKJKvwG3T6w602q+krmZf/UfxNZiK?=
 =?iso-8859-1?Q?TV5A8GjaP9AHVwDTe313F8RL4/J05zvvEwH7COAu4vLA4TZ0rHha5FR1ag?=
 =?iso-8859-1?Q?yt2MahdJT2kZIiVaUdyYbT1OTTddwwRAB/sSEuxUL5jLZxruQ8JpZYKah0?=
 =?iso-8859-1?Q?/r7uPPYpdgDtzUPNTnwguAaRyVFEILeTpEI1y5Q1Dx1TxgKXJzZu8oNP8q?=
 =?iso-8859-1?Q?ZR9rr+J5Ta+NCrRoemqG5T4VZFZ0oxJrIpMBN/wyq7WaoomnpBE9YJDV8s?=
 =?iso-8859-1?Q?/TaLvBSWhMNyg8wFs24=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?aKdz+449kl414CdQuR/4h2NE5DZL7Ae87FadQs8eq/bwYLj0wECKhkCjm1?=
 =?iso-8859-1?Q?mDSZFYI01Vf4oQen4y3rP7BVVCEyfRjE9nZKfcNyKH8t3Dz8rwZF7f2vNm?=
 =?iso-8859-1?Q?OX33tRJZSo6yDjOKTenI/6HOmIZHMl/Cm47g8W+Dh94wZugJFO5GZ3ygsO?=
 =?iso-8859-1?Q?lEbA+dm++u2621zNhA3inTUibGnyLlRRdyMXuwzsbxDcHvBCAjmRIJIiOq?=
 =?iso-8859-1?Q?FUmIW34PtYj2vLmLjCgfy2rB5ChuYYxfuEqQZuS2XUtgFUhQn0fY8jgA+s?=
 =?iso-8859-1?Q?1w+kxfzfTp6pDN0sg+10SpkyJNFoZOj2UDn1QtDk4Po3IpmGpmJ/0pQzEW?=
 =?iso-8859-1?Q?z9EYI+oRg3cb2yFynRQvyFnqmzd+kvL/1xE+C/Fs050LcCkPufd5SKM+/a?=
 =?iso-8859-1?Q?Z5kRXgk7xPEDY8vB7gKR4ELbKbOs/3smD5DlxwI7jEvj7F3VadYfG/FI8R?=
 =?iso-8859-1?Q?/FNjJ8mn7Lxp1ybXRsNStXuiL+xZWLIqCWBwSDQsMeKccrWKPIJs3krWLq?=
 =?iso-8859-1?Q?QCyo3OBSugRRT538rOlvxWEnXm7X/xFqPJoL7RnO2maatQEakAFljK4r0M?=
 =?iso-8859-1?Q?LGiKAezmRiwbOmR3d0ZIyG5/7URclYMP6QGUxgDQ4+/jUdPZEQRg5XsLcV?=
 =?iso-8859-1?Q?+oYKNZ+Kud75ISi+9HisR8yBf3vS5+znoCYJsrWC/sk3FbtivIXalPglij?=
 =?iso-8859-1?Q?3pBzCqOjluyT+pOC3X+A5bfvhmNhP+WuoepH/uhmCJ93YW36wrIysDnzC4?=
 =?iso-8859-1?Q?6YVSVaRyFdGHxuMns4oR5fCso5VB/03XqXlGWY3zjZaz+7GxUYNjzkc4fL?=
 =?iso-8859-1?Q?swxDQ85qAFJklzcGnS/RB7JqnH+33EthDdxcvhWkPSBR/OPcXvSPtY2uX5?=
 =?iso-8859-1?Q?ZbisBXyc7eK38rN15DQa4Ni5p7o7LThWH/o7NBcK3O6N7CKXWDF0fBPerK?=
 =?iso-8859-1?Q?VgPPuYQ/wQIV3W3Ol5BvuadkSezFGIK8uhOaJZpnSXekRlBP6XnGdGEOhq?=
 =?iso-8859-1?Q?IIF9Ce2RCt0mDOFYRvCW89RqIwc+oYdJiyBdtI2cnddxhuQAKT28qW4ybx?=
 =?iso-8859-1?Q?ornbslOEpDRDjvFTCSJTAve2aA2mwYQo8ZmS/NiXP8FKuQ/1aiLB2alppq?=
 =?iso-8859-1?Q?cEpj8rmf27gbIexeF58nC7oLQiMpladDIOqbN/wt2BthLkqIUs9DSHBaTh?=
 =?iso-8859-1?Q?1hoenqfTtwHTmX9tE6hXubvg0/UMBUAi6w7y6vemedoZQtO8oUWIB0JZFX?=
 =?iso-8859-1?Q?GztRUvXAI8Qt64rX5DT/3sWnLcIGL2b7hiIhGXQ8PCgWHh2VI3x5E7QpVi?=
 =?iso-8859-1?Q?oAb2lR9oUIlpmm3CD2BHou7KhMN1MRkkdXbxkuQjLDG+kOt1KCDYL/uKxq?=
 =?iso-8859-1?Q?d6vqa5L/FNmlopAwtNZrhoo1v8WxU01nZcEqm24J/WfeV/47ctkA5hap+1?=
 =?iso-8859-1?Q?M6tKtEKQrFWKlk0x1gEQ1B7iUO8KeKGozOsRXblCdroGNTX9mBkkkU+xow?=
 =?iso-8859-1?Q?0mamiQma5+lIFsYvYRZfaC8sQwxjoUs9yoEe0CGI8Jsyz8pf+LMHuFlqJo?=
 =?iso-8859-1?Q?zkKCWuUsgFmNcOXt6stBl6SCEVR0ZcGV8AUE/K1NYUsG5ebhiDznUH8WaU?=
 =?iso-8859-1?Q?K8PgEuapefhbiLhJQV/Ua2YVVWPNiReMPdtVQzd9I2q1CVPNaIX3iwUoVw?=
 =?iso-8859-1?Q?pQez2pz01lBZfl+aOVY+/IVOruk8WTUjm4QA694aq6i27Usxh1SYDxLVTV?=
 =?iso-8859-1?Q?5i0Rb4ZdhaptLxXUaiJzi8M7xgoAANxbKO1fcnPjpE3i+Yn5wkFHxojj2J?=
 =?iso-8859-1?Q?UAsQJjXS5UbobSjO5gTFa+QCkPi3+eQ=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: 0d63e815-d2ec-4e10-9f97-08de62762a19
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:38.5061
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 5F71G833OERRta/JCzqHTQNxuHXsP0F/tDRlw9VysD6uy7dySJnn3C9SLXFMkEXw+UhAdLFLYtaGwsUtgjC7LA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Make struct its_device and its commands sending methods publicly
available so they can be used by GICv4 implementation.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-its.c             | 30 +++++----------------------
 xen/arch/arm/include/asm/gic_v3_its.h | 29 ++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 25 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 34833166ad..25c07eb861 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -30,26 +30,6 @@
  */
 LIST_HEAD(host_its_list);
=20
-/*
- * Describes a device which is using the ITS and is used by a guest.
- * Since device IDs are per ITS (in contrast to vLPIs, which are per
- * guest), we have to differentiate between different virtual ITSes.
- * We use the doorbell address here, since this is a nice architectural
- * property of MSIs in general and we can easily get to the base address
- * of the ITS and look that up.
- */
-struct its_device {
-    struct rb_node rbnode;
-    struct host_its *hw_its;
-    void *itt_addr;
-    unsigned int itt_order;
-    paddr_t guest_doorbell;             /* Identifies the virtual ITS */
-    uint32_t host_devid;
-    uint32_t guest_devid;
-    uint32_t eventids;                  /* Number of event IDs (MSIs) */
-    uint32_t *host_lpi_blocks;          /* Which LPIs are used on the host=
 */
-    struct pending_irq *pend_irqs;      /* One struct per event */
-};
=20
 /*
  * It is unlikely that a platform implements ITSes with different quirks,
@@ -155,7 +135,7 @@ bool gicv3_its_host_has_its(void)
 }
=20
 #define BUFPTR_MASK                     GENMASK(19, 5)
-static int its_send_command(struct host_its *hw_its, const void *its_cmd)
+int its_send_command(struct host_its *hw_its, const void *its_cmd)
 {
     /*
      * The command queue should actually never become full, if it does any=
way
@@ -258,7 +238,7 @@ static uint64_t encode_rdbase(struct host_its *hw_its, =
unsigned int cpu,
     return reg;
 }
=20
-static int its_send_cmd_sync(struct host_its *its, unsigned int cpu)
+int its_send_cmd_sync(struct host_its *its, unsigned int cpu)
 {
     uint64_t cmd[4];
=20
@@ -270,7 +250,7 @@ static int its_send_cmd_sync(struct host_its *its, unsi=
gned int cpu)
     return its_send_command(its, cmd);
 }
=20
-static int its_send_cmd_mapti(struct host_its *its,
+int its_send_cmd_mapti(struct host_its *its,
                               uint32_t deviceid, uint32_t eventid,
                               uint32_t pintid, uint16_t icid)
 {
@@ -322,7 +302,7 @@ static int its_send_cmd_mapd(struct host_its *its, uint=
32_t deviceid,
     return its_send_command(its, cmd);
 }
=20
-static int its_send_cmd_inv(struct host_its *its,
+int its_send_cmd_inv(struct host_its *its,
                             uint32_t deviceid, uint32_t eventid)
 {
     uint64_t cmd[4];
@@ -897,7 +877,7 @@ out:
 }
=20
 /* Must be called with the its_device_lock held. */
-static struct its_device *get_its_device(struct domain *d, paddr_t vdoorbe=
ll,
+struct its_device *get_its_device(struct domain *d, paddr_t vdoorbell,
                                          uint32_t vdevid)
 {
     struct rb_node *node =3D d->arch.vgic.its_devices.rb_node;
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index fc5a84892c..aa54e9a364 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -116,6 +116,27 @@
 /* We allocate LPIs on the hosts in chunks of 32 to reduce handling overhe=
ad. */
 #define LPI_BLOCK                       32U
=20
+/*
+ * Describes a device which is using the ITS and is used by a guest.
+ * Since device IDs are per ITS (in contrast to vLPIs, which are per
+ * guest), we have to differentiate between different virtual ITSes.
+ * We use the doorbell address here, since this is a nice architectural
+ * property of MSIs in general and we can easily get to the base address
+ * of the ITS and look that up.
+ */
+struct its_device {
+    struct rb_node rbnode;
+    struct host_its *hw_its;
+    unsigned int itt_order;
+    void *itt_addr;
+    paddr_t guest_doorbell;             /* Identifies the virtual ITS */
+    uint32_t host_devid;
+    uint32_t guest_devid;
+    uint32_t eventids;                  /* Number of event IDs (MSIs) */
+    uint32_t *host_lpi_blocks;          /* Which LPIs are used on the host=
 */
+    struct pending_irq *pend_irqs;      /* One struct per event */
+};
+
 /* data structure for each hardware ITS */
 struct host_its {
     struct list_head entry;
@@ -138,6 +159,10 @@ int gicv3_its_setup_collection(unsigned int cpu);
=20
 extern struct list_head host_its_list;
=20
+int its_send_cmd_inv(struct host_its *its, uint32_t deviceid, uint32_t eve=
ntid);
+int its_send_cmd_clear(struct host_its *its, uint32_t deviceid, uint32_t e=
ventid);
+int its_send_cmd_mapti(struct host_its *its, uint32_t deviceid,
+                       uint32_t eventid, uint32_t pintid, uint16_t icid);
 #ifdef CONFIG_ACPI
 unsigned long gicv3_its_make_hwdom_madt(const struct domain *d,
                                         void *base_ptr);
@@ -198,6 +223,10 @@ struct pending_irq *gicv3_assign_guest_event(struct do=
main *d,
                                              uint32_t virt_lpi);
 void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
                                  uint32_t virt_lpi);
+int its_send_command(struct host_its *hw_its, const void *its_cmd);
+
+struct its_device *get_its_device(struct domain *d, paddr_t vdoorbell,
+                                  uint32_t vdevid);
=20
 /* ITS quirks handling. */
 uint64_t gicv3_its_get_cacheability(void);
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218794.1527682 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZZ-0001Qa-78; Mon, 02 Feb 2026 16:14:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218794.1527682; Mon, 02 Feb 2026 16:14: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 1vmwZY-0001Pv-VO; Mon, 02 Feb 2026 16:14:44 +0000
Received: by outflank-mailman (input) for mailman id 1218794;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZY-0000fY-1Q
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:44 +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 4771892a-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:41 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:39 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16: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: 4771892a-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FkfBReS2bO5x3YjBb8sJouEd1H704fJBtv5NyxTt2Ww060GltEgRw55PHzKcF8N9UQbonQGcuWmEkw5XpWizgEnTvU3ofdLNEdIADWnQtteat9Rjx2NO9xm/ZPdCIz77FDZauJCzJtfMvYb3hSAHSMMu1csAdiZh56wQW0nT3w4u57rpSBLipOKKu47RYbQGbPifSycKVHQkHfi03bWJCXZRoaAQo4bVbbHlnX1Juvyh++cEPAuJhKC9b2etqVhLVRRmnE/mu+DpukF4O1tLdOfBGJsiiNHphx56BRhnMUmWEwADph/1PubS+sXcqpvF7seufbSGxqzcOZnzUbwRvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pUeEU3bbSuS4RygDqfWI+sk2Oq51A0Lc+fee+eE/fIY=;
 b=PkTG8pYtHmP6qCNyre2QrVBU/6IpjFc3Hy6xGBdRqqfH/OhNKxTAQ9bK3xUeGQmuliDvXH1Lf9OHfT4LUY4ImJkmOvqbbeVlIQ5iQ++vzihuC/JMo7sFvJRWyUwHOc1Jv4WOiRg8EdmVsec3OLN4/lDODgGUZXgAYhlLJM9DgTXTweK9mEyuboCWx0qFI2Ur7X9+YHApuhF2Jwi8I/UYM5TyUTua8juc7OxRG+JVYZ4wN0hxLCXgQGJNE4SEDz4RQ4pnmf3Y+T50somjdP7CPpsZQnao6gesWmG417wPR8bFWGvDDuBp8mkqt0jlY9GXBnsjjMuM2Yj3qkq0kInV1w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pUeEU3bbSuS4RygDqfWI+sk2Oq51A0Lc+fee+eE/fIY=;
 b=uKpIUWCnr/IfnfmQEzCBCtGFlQhGa2xZeyxI1tqC4pytFkQ3kJW6AlT9qNWC7m48ZyNkFsB3qFB2Y9LbdmTk7AD5R7aGkGam3IpPrVm+gO8q9lO1pIm5MEE+ZK9BzAV0jHIjPTHFD0Zjuakz6uNPMcVSr/GCidJU0a585116uxOkLc+jgw4RYDCTZCdHd0TeE/bRkyll6W5nI8Vl5tKDZXsBFb4NJYnqVZrDcrfG2lXWBJSM2ffHVk8VVsH/+IbQWzYaHnrPcOnhEkSYeVEZIHn71rYFneB0cgrXwGpfIsOTSffmHjuIh1Udekg/LValc3FRUwEil0kcf0clt0X1sA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 04/19] arm/its: Add vlpi configuration
Thread-Topic: [RFC PATCH 04/19] arm/its: Add vlpi configuration
Thread-Index: AQHclF8He0hTGFqEmEaW888dgnQDnw==
Date: Mon, 2 Feb 2026 16:14:38 +0000
Message-ID:
 <76de7174202e96fb907bb2ce1a874063ed9f393e.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 48df5614-b3bf-4b5f-7b3e-08de62762a5a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?DmRWj+mJyXm1gk+vyXNtGCVIwj+6Y963FfLUaxxuKVe1alH2DZ3qhNqbO4?=
 =?iso-8859-1?Q?BbVyV2mZuGuFdiDELshJ7LfGzZJJETKv70yD4UjAp//PREe07rVZ4A1skI?=
 =?iso-8859-1?Q?RJ0yfvOo/JF4LNaCRgYuD4uXYYochWn0YTzrUc6YSxx3EMFrxKtonGHUj9?=
 =?iso-8859-1?Q?5nonVfwViNV174CMjCBTMhKxM9k0bGtMk27f1V1x6wSVbmAemHAiatzG8w?=
 =?iso-8859-1?Q?O3jzX58Fj3qDRMSyRhdKYEoYHk458nQp5WrK71rVShJ764pZ5kdfSYEEO5?=
 =?iso-8859-1?Q?tdPGJVuni48IyBNaxTsLiMPLL7GLgUn5BxSn2iAq0ncbpkhVJUjxXw/gZw?=
 =?iso-8859-1?Q?fy2rSerxzjIZpsJyn2IimkYLHqfuA38LDacGB/xvVqywgQn1oHHQF1zwiM?=
 =?iso-8859-1?Q?FbV1kMXNidIPt724PJWik91UPECzrFGXp74SCSDsGBJBPlF8wGIH8dkvJb?=
 =?iso-8859-1?Q?J4rlHuLJT9RdS+d/68bX4ZiB7hAksnZ6i9gG3uELJUJGWvvKaWe/+Q7cG8?=
 =?iso-8859-1?Q?y/nkPLos77FlnEg9JzRlMink6ElDEWzrT3g3/um1Ec6Aph4v8HV/SPEdvR?=
 =?iso-8859-1?Q?NbC6zIS8HqdMhQKFHRgCIeKbBQ+5WMwrarqv3VMC67wBBdBYWWZPd0FEFf?=
 =?iso-8859-1?Q?uD70eXbGowUbYKTnzlIq73SdMSbp4Os1z9W4zOokJ/PFqkl33GzaGPUOkn?=
 =?iso-8859-1?Q?YJwumvKTv/xpKEM7sXWbFH6JAQoxjHC391oq+1E6kt2v/QMV8VrOQjLt44?=
 =?iso-8859-1?Q?H8moUZk4aD0u726DmFghf+oXQBt3ZUELi7s0QOhZ+0cu5KqV+JimKt7Z21?=
 =?iso-8859-1?Q?nBa+/K411b1R2TklJXR/+M6/aRFYSii4vf64mFDGglq8GsNOO54OmebWeX?=
 =?iso-8859-1?Q?1SHHt5SaMMfLAYgb9Jk+Sy0TBKuthPBeZWM32tYgvxGNYhZzBM7gJw1KjE?=
 =?iso-8859-1?Q?sVhyl2fw7j7Keyy927ICQCb6A6kSgGwaekaUxkGRMvatie6B+eiaNfWoD+?=
 =?iso-8859-1?Q?Oc0sKSTz1c2Evc9k2NppV8/mgS4XsiGTuu769koUTZ4Poscy4eGVo9GCxz?=
 =?iso-8859-1?Q?hzqS+Ood82lDdrWwfuC1lvLY0EL6+NAVrelKssSeHFxi79r7IMMNtMEE+0?=
 =?iso-8859-1?Q?TEvXvO6ctwhyw83iM8Mp/bKr/B9y5zR79cLIyUMnbF0L1V7c9FAm+OfTk1?=
 =?iso-8859-1?Q?6CdtcaEiQlXSRXHIk8vGDQnhr1eyQrN3Jhyr1/LyPhyk4/JIn5K23EpFnB?=
 =?iso-8859-1?Q?pEr2c2gkYWS062beHA8Iby16YyCpHauZ3v8XtCbwQSkYSjdAfu0On0ja+M?=
 =?iso-8859-1?Q?wv4h1QJ+YwQgxHYed+pavN0UBAcgBERBj56o+zbBAQhW7mN5CCp8rAvSaG?=
 =?iso-8859-1?Q?QLjUgcB2tc/g0k0jdxTNWBYWxGixFgY/kp/xBgazYXBpTxkFSNpVxaYOOf?=
 =?iso-8859-1?Q?HdQaK0TA8J4KQEZozWC8paxDsJlg4xiQI0vXOty0kN8ZFDP07I1w/wF6EU?=
 =?iso-8859-1?Q?8H5NLj6dENL+DP75r13sjzT6qUQedyVgTyw4/V3oMEe0hIBusMQwOebBwI?=
 =?iso-8859-1?Q?ijm+XC9To44aboGRyPbiDcpYO75kG+FQSJI5yVREU9o6SjZ34NYF05UQT8?=
 =?iso-8859-1?Q?M+i2JchcPTItvj961AwR9lOde9kd1wjt/gxViruFc3FsiDLouFNn6kwLAy?=
 =?iso-8859-1?Q?XgUk46qNZ0Umey90iYg=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?YZTF/XhXQUb/jIbEBpLZ4Zbcri5Cm99NKWj0Keole+CCu6o5MymyzhskUu?=
 =?iso-8859-1?Q?o3q9Pc4PZL5fCmWX7acFL5Wqyg1AoAEHkgUACBQETehbcM61UWngDBildG?=
 =?iso-8859-1?Q?7yEW+Dow83PC/qOomvevPVYA6oYmPGIuHX9PJ6+CmvTuZHpcDt+Zypxij2?=
 =?iso-8859-1?Q?7fQy4By7LLi0EfsR+UXQY5KC74mLNXRAi5tudYXJEjAHLVG1tlrCzCf2y5?=
 =?iso-8859-1?Q?simhqJN17xvtcLUWs77uPWzB/jLsEkW6qd5T+7WeefjyzfW3KIZij9eOOd?=
 =?iso-8859-1?Q?4uLSCjn1wRdHVbP6os3ENyQGDhX2Bk2cUWVMk2GQvdGZ5iNSBYqV5uizb0?=
 =?iso-8859-1?Q?8oNYskOpuTIxGUJq0JN7Y9dHSMV1+tdegZ4hxB9bFNvvjn7kJvidYJdhjz?=
 =?iso-8859-1?Q?MiUlg9jFX4FN4n4zwi6gZHxT8RmaG1uY0hRx2IwBoMxxJOqY0G+Y8Fcy/+?=
 =?iso-8859-1?Q?ycgUyp3gdp0Z0cwZO4dJUbMpBc2wbFFSG1s4lFoDzamtUmU9/OWgxF4gtS?=
 =?iso-8859-1?Q?RdaaPjLqsO7L4CjG9afTOvsy4jUVfnU/Lko3O2C1hSufGx3f4Ed6yyX9Vq?=
 =?iso-8859-1?Q?3oHRmJ+87bleE0gWA+93BI31BRY4udhRv2DXxurVGUwoP5yoW532F8Xp24?=
 =?iso-8859-1?Q?dpXGYJ5AXPFTmXm/bnlm4AGKMRkW2qtz2/SR7ce9MCphixk/itnQ6bfSJT?=
 =?iso-8859-1?Q?mUQakbnM3wPSkP9ilQRFmKpnAFFT2PzKXM97YqGBwYseqaGp+PzsFJp6i3?=
 =?iso-8859-1?Q?AbzS7hnhxk2FQQQTDtsj++gd+ofbxMWRGOjMZJYsfXpRyC46qal5yv8S0H?=
 =?iso-8859-1?Q?pj4ibeOq18ee27ZVn5qbRVQ/5m2/H2Rf4nqKJ/MowTRQInmVtfenXQ6kaQ?=
 =?iso-8859-1?Q?I61/ME22vaGaW6/zc6h0TCEDZ5+kESd9KtNjMtSGAuvCZaNAcn7h/fqQjN?=
 =?iso-8859-1?Q?gJvASLSuNoUmwgMzu0XxZSEKmrT5mDiZOpNgI+mENdrmgmuoBFpku5D2pq?=
 =?iso-8859-1?Q?k0+6g/6N02bDdUjPypAmZgblOj8pF9tJH1O3AWsJhEsp0ORu5IEjipbDH3?=
 =?iso-8859-1?Q?kP2lR40zpnsxZALwtbI6TVpOekaoukrgoLIupptQGQuonlgT8l+Haosagz?=
 =?iso-8859-1?Q?ri8mBcRphhaa8n9MZY4gHfNkvf6zGmBR4Lb6jxRyl8ZOQPYUz8vcjKvmS4?=
 =?iso-8859-1?Q?GcsQgNRl2X0PKiCvsyXNJZx6d1DySljbQ/HCK2gKykmtN8gFKvpt+X6SHJ?=
 =?iso-8859-1?Q?1F24VsNtXwIFdGA/Ptli0uQLB8wLuS5nHNhPK2u4ff79eDfc28B/uEBv13?=
 =?iso-8859-1?Q?YX4uDbneGl85sGvHeArDPsN6/0h2dcjSHVOTEYiyk8UAdk2562IcIKwW60?=
 =?iso-8859-1?Q?c2Cg118rIxH+REORSdf0X0/WlqSaXXQB9oESEAsq1yJc3Nh94deVv6z51E?=
 =?iso-8859-1?Q?53K5YtxS+l7wiBSD2KvXduM5PsMWJ8Il8ZvWVAhVErC4oxtM6YWNMAwIs9?=
 =?iso-8859-1?Q?bXn4AlCW1riMAKhjYoEgzlljGVZ9+LYWzaurLopawzdquiCKAPsndEY8lH?=
 =?iso-8859-1?Q?qZjBC3pxWxHRMgm/IxqcHMTFbfWgF8aZRwFCpQf4g2f56zFoNl+HqX0a7j?=
 =?iso-8859-1?Q?v9CUcks7oWzOtWTq+M83mrYRzq/gmSMsY7C79sPDI0yrPSuvcnfgWa+4hu?=
 =?iso-8859-1?Q?MnlusjzNyByTwZrIauO3GFLxZGVagc0AMnz/90i00AXwNXw2CPcwNdFKW3?=
 =?iso-8859-1?Q?psKzuapU7BBsUCwRolkyl62nts78HJ5v30QVTa7ooBbZmzWAo+p5/XWovt?=
 =?iso-8859-1?Q?JABl6dhR7pInCYJ/8h7OtcxAYr3PbeA=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: 48df5614-b3bf-4b5f-7b3e-08de62762a5a
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:38.9082
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: eYrJ1o6b5X3GGapGp+aJsYzpIjgVgsjSsGfOVltrGr83RUIvHw8FjvMfjXkJRVaea4wInPk+omAQGzwNRlypCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Add a helper to write LPI configuration entries. Expose lpi_data
structure in the header to be used in said helper.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-lpi.c             | 39 +++++++++++----------------
 xen/arch/arm/include/asm/gic_v3_its.h | 27 +++++++++++++++++++
 2 files changed, 43 insertions(+), 23 deletions(-)

diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index de5052e5cf..c029d5d7a4 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -46,29 +46,7 @@ union host_lpi {
 #define LPI_PROPTABLE_NEEDS_FLUSHING    (1U << 0)
=20
 /* Global state */
-static struct {
-    /* The global LPI property table, shared by all redistributors. */
-    uint8_t *lpi_property;
-    /*
-     * A two-level table to lookup LPIs firing on the host and look up the
-     * VCPU and virtual LPI number to inject into.
-     */
-    union host_lpi **host_lpis;
-    /*
-     * Number of physical LPIs the host supports. This is a property of
-     * the GIC hardware. We depart from the habit of naming these things
-     * "physical" in Xen, as the GICv3/4 spec uses the term "physical LPI"
-     * in a different context to differentiate them from "virtual LPIs".
-     */
-    unsigned long int max_host_lpi_ids;
-    /*
-     * Protects allocation and deallocation of host LPIs and next_free_lpi=
,
-     * but not the actual data stored in the host_lpi entry.
-     */
-    spinlock_t host_lpis_lock;
-    uint32_t next_free_lpi;
-    unsigned int flags;
-} lpi_data;
+struct __lpi_data lpi_data;
=20
 struct lpi_redist_data {
     paddr_t             redist_addr;
@@ -492,6 +470,21 @@ static int find_unused_host_lpi(uint32_t start, uint32=
_t *index)
     return -1;
 }
=20
+void lpi_write_config(uint8_t *prop_table, uint32_t lpi, uint8_t clr,
+                      uint8_t set)
+{
+    u8 *cfg;
+
+    cfg =3D prop_table + lpi - LPI_OFFSET;
+    *cfg &=3D ~clr;
+    *cfg |=3D set | LPI_PROP_RES1;
+
+    /* Make the above write visible to the redistributors. */
+    if ( lpi_data.flags & LPI_PROPTABLE_NEEDS_FLUSHING ) {
+        clean_and_invalidate_dcache_va_range(cfg, sizeof(*cfg));
+    }
+}
+
 /*
  * Allocate a block of 32 LPIs on the given host ITS for device "devid",
  * starting with "eventid". Put them into the respective ITT by issuing a
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index aa54e9a364..9f0ea9ccb1 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -157,6 +157,31 @@ int gicv3_its_setup_collection(unsigned int cpu);
=20
 #ifdef CONFIG_HAS_ITS
=20
+struct __lpi_data {
+    /* The global LPI property table, shared by all redistributors. */
+    uint8_t *lpi_property;
+    /*
+     * A two-level table to lookup LPIs firing on the host and look up the
+     * VCPU and virtual LPI number to inject into.
+     */
+    union host_lpi **host_lpis;
+    /*
+     * Number of physical LPIs the host supports. This is a property of
+     * the GIC hardware. We depart from the habit of naming these things
+     * "physical" in Xen, as the GICv3/4 spec uses the term "physical LPI"
+     * in a different context to differentiate them from "virtual LPIs".
+     */
+    unsigned long int max_host_lpi_ids;
+    /*
+     * Protects allocation and deallocation of host LPIs and next_free_lpi=
,
+     * but not the actual data stored in the host_lpi entry.
+     */
+    spinlock_t host_lpis_lock;
+    uint32_t next_free_lpi;
+    unsigned int flags;
+};
+extern struct __lpi_data lpi_data;
+
 extern struct list_head host_its_list;
=20
 int its_send_cmd_inv(struct host_its *its, uint32_t deviceid, uint32_t eve=
ntid);
@@ -223,6 +248,8 @@ struct pending_irq *gicv3_assign_guest_event(struct dom=
ain *d,
                                              uint32_t virt_lpi);
 void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
                                  uint32_t virt_lpi);
+void lpi_write_config(uint8_t *prop_table, uint32_t lpi, uint8_t clr,
+                      uint8_t set);
 int its_send_command(struct host_its *hw_its, const void *its_cmd);
=20
 struct its_device *get_its_device(struct domain *d, paddr_t vdoorbell,
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218795.1527696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZb-0001tB-HN; Mon, 02 Feb 2026 16:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218795.1527696; Mon, 02 Feb 2026 16:14: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 1vmwZb-0001ss-Dh; Mon, 02 Feb 2026 16:14:47 +0000
Received: by outflank-mailman (input) for mailman id 1218795;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZZ-0000fY-1G
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:45 +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 47b44db1-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:41 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:39 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47b44db1-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Erbisb+Of+SlMSdxM72a2OwcpAzZU303H66E5pwuV2nddPckGsF0KjnEETALJUai2jcGQB5pWf8znDlgtM7enkOFqePYJgj9I+MS1EhaKaqjYo9BOmDlAMPf5bX4zJ5gyUplFXbRRqybv8uPu8Du8c7DTFocHC6RTTqFdRCGru+6fwIllsRVjWSoIP9V6FBSFcxBVh/rCXBqUIwaMS1uJROsR4ZUZtArqacuGaY4fwBU7FA+PoJQqk6F5FJSQiMQzBNBUsD/WDjZtyRuJqAd/aI7v+rHfNkVXbsiRJRFufX/7G8lG7IJ9hUH6RBZET/eF9te0/2XBe0tYPh5q/6sSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W1pz7vCFYxpX9MTz+b8Eqe1m9onDCDzvD7qLN1X6f4M=;
 b=q3lr3ApVth3VcNLXK8GyHLUCcNwlkpgQPgYm9GEl85vcB9FHjlCpaeX8CGnVPX9FbHLdXtZGPq2wNG3h591UJQ1ODIVTSIs6dRPMXovF0Q6Xim2Cjo/49Lc1G6qBHHO8U3trAOgm905wLC5+JHJabotIEmS84EQA5xuJXqdm08mHtZsDKaqo5OG2GaXXTdO3HP8FIwfVCVOfJ7ChpM5/+I47tR5DBXpw83kpcRhF6l88vkDdep3abMTrmr8y2KtoV58JO8X8WQio7eLcFL6A0u3XPzdmCQ9bjWR04b4U2Mwm807ABh+dsnaUQ6eZCj2DglnR5lpY0PFYj0Z830dnSg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W1pz7vCFYxpX9MTz+b8Eqe1m9onDCDzvD7qLN1X6f4M=;
 b=sOAxwG8iNc/ha0SnPilfqyrl3KkDbLt56L0Fa045YBPZCiC9Ef60Z13oWbJFX3VemN4SIbqz18BzDspH6zpBZa47rFjBnUJPhluFLQ7vYUdtFQ8PPHTK1TIBz+KMg1xpXFbA2amoyc0riGvlMTBKa6+7Uonipn3J9bpZZZufEjQkcn0OGfAw8kc/UdehVpCvrrTctaA43zOcJ5kRCgd1pfecK+1E7838Vlx4uTAjT7tl1enfW5LNdu7ex9/GCGbOH6duU/ZOi4QJc5EU8EWOEQYrrRmx5qAWRVsMg7GgMe4vdOLGD1BCgwkHjTURiX7Dd8CdNiTILCpan4nlbRL7UQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 05/19] arm/irq: Add hw flag to pending_irq
Thread-Topic: [RFC PATCH 05/19] arm/irq: Add hw flag to pending_irq
Thread-Index: AQHclF8IAwxlbrsSsEO8DhPwxpUVpw==
Date: Mon, 2 Feb 2026 16:14:39 +0000
Message-ID:
 <5d63b3b4c9c7b43e7cd8afdecbcf0b2c77f51d13.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 895c550e-c48f-45b5-6e73-08de62762a8a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?+YFxjRX6cW5YnTOVwX9rfJF4ANjYhwdBIzBs4E2XeLMno0PhuF56bHd3kB?=
 =?iso-8859-1?Q?vfJpZPH5JjKsRmKpg78AVZBaHao+hIpiYUJW2U2ihHWPslzImDQV7+Bhzs?=
 =?iso-8859-1?Q?NVa4g2OVWUXVuyYj+3h6fU4Mtysd83c6haNh5O+UdXJqput4PA5MfgdBHs?=
 =?iso-8859-1?Q?xErl+T5AGIdrtdxuWgfVq3PP6Cjcp5/lIQ3oELv2VnFmLIdpWV7VLLkTxl?=
 =?iso-8859-1?Q?eU5sURUDyZzqxdsTBnheYi/F3ZMGNortcKy2L7+cw/x5lI5cPGpULhbVCV?=
 =?iso-8859-1?Q?OuffD9XRiNh8OnDbUsoHJD6D14ydPgK26Nh7cAhJM96qK06TUl0sOQgLcl?=
 =?iso-8859-1?Q?ywbxh2S4mG/whoRNKur+9qjel7tue+SpCede5IN2y+xDGWdn7Vp6d4n7JJ?=
 =?iso-8859-1?Q?OIAcLKIPno6i/J030GTWu7OP7DeoS/zkMgHOSkeAcoCKZxNxxHwWPNOa+Y?=
 =?iso-8859-1?Q?WfNDkuND80WYPP2P0urVxmnF0hdk8W71P84jHbXRdJGtnUiSEpI+pzVJ8N?=
 =?iso-8859-1?Q?P9jVC1Mnd2TNO6kNn20vk8FlnJr0aBTulwBqExR0CsxJA/xu4srpGWxkmz?=
 =?iso-8859-1?Q?dnOsoJiH8buuhHOBJo/SBopGOdAWbUrBbdCyCNgflwcSxmDvccJb0F3ea4?=
 =?iso-8859-1?Q?p7iqvXmZAqe7QVf+t0Y+eGx1QCgxWcSTNC5ArDkLQbDlV2XP0FgLZTafgq?=
 =?iso-8859-1?Q?CHQ1Mvft/pQdMKQ4xZkHJY/XdBeyRWTNGGRkQYVJaZXwESmIfh86Yu+yN5?=
 =?iso-8859-1?Q?u5RprkDhmgH1ZMJqoQNcZWpkzI67YCa6Wf5OQtIINUD/qS1vxvV4qHYN5r?=
 =?iso-8859-1?Q?kNjplVusG6TTlh8gSMvZzhQZHZfAwr0pF+c6K6P0MFFMht54eDGNvLIkYJ?=
 =?iso-8859-1?Q?PWIjy2HAERftvM8cWsG6Dz98jXCXh/YNRxuHeZ/82nahH1wadkrM5B2PPk?=
 =?iso-8859-1?Q?W6zyQleod8BEBbA2MOoOVYdTDq24+NLpUjCzz4GioyufAIK0cGXLWRS53R?=
 =?iso-8859-1?Q?203lvH4QltfOBfIiDPJXww+Ob9q3FujBmfT+9MyBsU33o+bU/YlAdp7R8C?=
 =?iso-8859-1?Q?+WNNEup/s64Xh1Yg4Q8Nca8s0EPu/7cfd7wlC9AVaVMhblAh6nNmQiNJPk?=
 =?iso-8859-1?Q?Dd29cH0d+0XRqNz4AG/F6Nnchh62+GGYDFt3P5gavCWeSgfI7o+4D6wSlJ?=
 =?iso-8859-1?Q?tQkz4DQbd8ojLIM8pEsWyWgY/PtQtz9avRwkdQ0PVP3zC5pcbOFzlOZLcA?=
 =?iso-8859-1?Q?RboC8SgqYHan3+loyU6z34mvfCPa7Ep9+/FLyn3OpBi4GgMyL3Rth9u47B?=
 =?iso-8859-1?Q?Hn6LvZjos0AMa5o+fqRxmNH00UR7CqC5sHPFmHm9FPCNjEoomW7bFd0O+p?=
 =?iso-8859-1?Q?2xevZaWi8kutGqBa1SMtgh+Au8gQSY5eJwk5XWyy/xkZPrkLDH48O11A3A?=
 =?iso-8859-1?Q?yPq9ISz+WKba1yxaulGXIzyv6ZDe8Ikc5TFKK4/ULCTjwouW8EVUHA+0in?=
 =?iso-8859-1?Q?Lk8pdovxMTISdaFqinktupSuAWjTzx6mTICjFeoVEF9xKyIirVt4x867j5?=
 =?iso-8859-1?Q?RKrIQKZCuTo/EsjEubpGVlQwHSGCiHK1xx0Di0WTNYb6bjGwcqViK+rsDg?=
 =?iso-8859-1?Q?AvyE02bPzTYteDj4c0p/cTKPYhImoXfdcYri+0ipSABlw5m6G1eZITeLyp?=
 =?iso-8859-1?Q?uD9TwrJQoyi7LQHO934=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?fpQsk3Q9v17BnWAuFXt/nokrqeT/dhkWGo0TE167OSuzQQ6yZjcKZprXd2?=
 =?iso-8859-1?Q?A+MV8hz66gCrMDJnBB5deE5ZiLfWjspY13wW8p2RjkPBnkoSbZIymuuIDi?=
 =?iso-8859-1?Q?wkPJT0mB6dLIxyWu2vx49hFPEgDdk/rcem3k1R0GItsRaVC6jarFMfaNNr?=
 =?iso-8859-1?Q?XXA3Bb34bsBn0Y5yY9K0sLRSSsc9kQUvoTmebrBm+4yowF8xbVqHvqc1ju?=
 =?iso-8859-1?Q?CyaAu/YEufVVU67W080u41Xo2uiAnyCX9fqgugCplMN/5RVX172DzhxzWu?=
 =?iso-8859-1?Q?p+zodqXzakLJVp3R/FrxcFOHync9Q5jKrezdf1FJjAxsOwlZCb5vNS80jB?=
 =?iso-8859-1?Q?NeGlmkEK9rhz/H3rJPYvk266DRmLIzsunz7FTg4L1yJw518rYaPAMNEvBj?=
 =?iso-8859-1?Q?AQeMK7VIJnht9L/wZweB0bSZpEzZyGTk1YxnmA1xycyc7eB+DuBn+yjhUp?=
 =?iso-8859-1?Q?s56JM7BLkjrVAie6w9CuV0EUzkPOzZXvrVpGM8B5JqUrzvVVnidn7MOqpk?=
 =?iso-8859-1?Q?tUx1kGribyWie5CGj3RwdQv2cR8paWIkwAhm2QkOPF/M1KU75xRkUbHY6v?=
 =?iso-8859-1?Q?oENf9bEfEtpPE+XdsrQD7qQskyaM040aJMCwJnfCjFU+9osxyZqmTspCNO?=
 =?iso-8859-1?Q?qdAG+vnsIaMagLNJg+1NROXDf2GirDivscGz/e3Ey9zZJ6bIa14WkCCUY+?=
 =?iso-8859-1?Q?qoxMulnyKbmIVj1m6vWPwdxQC9MHbXWtsdp9h3VUt8f31HH0bvtKI0b21B?=
 =?iso-8859-1?Q?B1jzUWqd3VId6AVexUhQsK2fDsmFI9f8gOFs6yPUfdjS8SYkQAVQt4tmus?=
 =?iso-8859-1?Q?KgQYRDzKDeJfoCs7ae7KkCFHArJqvmn/h4PVzDBWvHG0lYTzLNQLZFAKal?=
 =?iso-8859-1?Q?DNx29upCuhjbAHrNbkW78R1xvwh2UeZhQBfzQKZuy0DJHrFA4B39q0UmRg?=
 =?iso-8859-1?Q?bZMXX9orf8d8yz7CMmpIogjMF2mtpf5XqUf3+6GyKNMB7oR11J+rpkYTv3?=
 =?iso-8859-1?Q?uGhhOs/8+x8+e1rCG4h3mBs1WyUC9hmdifOObLFb/u0J6hizKmdFINxbiY?=
 =?iso-8859-1?Q?mn3zKxh6dluSpwrTj6N3zYS0jX+KmZ9RsOM/eHpYmKwZQcy52IidCy0pPn?=
 =?iso-8859-1?Q?4y6Qvcf9uKT1h7uta62szB5RAN4GnbpjXRgphPtQQv9hOzBJ3PCjPZNyPY?=
 =?iso-8859-1?Q?8hdn7KfKPeXcLTreH5MHyvW0zln0UPK4VHuzV980X56UDlvhHtHXM6wpXN?=
 =?iso-8859-1?Q?jW1VsST4nVJN2mSX/6linX/mYAXgxXopZg5aJg8VP40HYPFEJWn7eIda2h?=
 =?iso-8859-1?Q?PW8L7Kn+mE8O5ji/5W6NtM0lDz2F92lJ5eny3cGZM3oxnYp1LUznunSf59?=
 =?iso-8859-1?Q?Zlu5/lCMC3EP7G6H5658Kl3hY2F3SFYPP9seheBynIrXvF5t0+mHfixrL4?=
 =?iso-8859-1?Q?gUQVbo9FDwNAqFt6XeJARz6mgNQgM5HLAdKBCsGvN6JFwbIfQUSB2Wq4AF?=
 =?iso-8859-1?Q?uYfPJyqumHY3x5DvDmy3KDhnh4Fm3i2nBSz99HpfnjA4Fvj+VesjpuJZ42?=
 =?iso-8859-1?Q?1z0Q51DEQUaY3YPo9MvsoyicTnV03/+Xnmfcfyl6EIyBp41HlHS8g/uTsv?=
 =?iso-8859-1?Q?iUnXRLuR/RcaTw9vwhC2BzGaMxb/nx6j+AbSOhpLhgMnvtTTNqW+wXinc+?=
 =?iso-8859-1?Q?LfW1gXFXVJkd1HxhOP6ZpljXq9fFHtk0uivJRFVNlcZTbjxUEXxPue/bzF?=
 =?iso-8859-1?Q?JdyF+y72yJQGeFimMi7rYGHSErlZYNljCWVENIGoEZYv13WVfYLVa1ZUxo?=
 =?iso-8859-1?Q?/QMnYrQwohpUeG9zz+tyAsMWbjFGkJU=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: 895c550e-c48f-45b5-6e73-08de62762a8a
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:39.2434
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: JXwwlmfxxG7ZsUUcxaQHvqiFUQpNvhKMdIy/f2xQ4FSCLGChlRqbjpvhj/NfN2X7cMLBcuwh2/Jm9P2H3X2iSg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Add a new flag to vgic_init_pending_irq() so that we can record
whether a virtual interrupt is tied to a hardware one. The ITS code sets
the flag when mapping an LPI on GICv4 systems and the cleanup path skips
removing such IRQs from the virtual queues to avoid interfering with
hardware-backed injections.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/include/asm/vgic.h | 15 ++++++++++++++-
 xen/arch/arm/vgic-v3-its.c      |  4 ++--
 xen/arch/arm/vgic.c             | 10 ++++++----
 3 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index a874a02d70..77323b2584 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -94,11 +94,23 @@ struct pending_irq
      * TODO: when implementing irq migration, taking only the current
      * vgic lock is not going to be enough. */
     struct list_head lr_queue;
+    bool hw;                    /* Tied to HW IRQ */
 };
=20
 #define NR_INTERRUPT_PER_RANK   32
 #define INTERRUPT_RANK_MASK (NR_INTERRUPT_PER_RANK - 1)
=20
+#ifdef CONFIG_GICV4
+static inline bool pirq_is_tied_to_hw(struct pending_irq *pirq)
+{
+    ASSERT(pirq);
+    return pirq->hw;
+}
+
+#else
+#define pirq_is_tied_to_hw(pirq) ((void)pirq, false)
+#endif
+
 /* Represents state corresponding to a block of 32 interrupts */
 struct vgic_irq_rank {
     spinlock_t lock; /* Covers access to all other members of this struct =
*/
@@ -360,7 +372,8 @@ static inline paddr_t vgic_dist_base(const struct vgic_=
dist *vgic)
 extern struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int virq=
);
 extern void vgic_remove_irq_from_queues(struct vcpu *v, struct pending_irq=
 *p);
 extern void gic_remove_from_lr_pending(struct vcpu *v, struct pending_irq =
*p);
-extern void vgic_init_pending_irq(struct pending_irq *p, unsigned int virq=
);
+extern void vgic_init_pending_irq(struct pending_irq *p, unsigned int virq=
,
+                                  bool hw);
 extern struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq=
);
 extern struct pending_irq *spi_to_pending(struct domain *d, unsigned int i=
rq);
 extern struct vgic_irq_rank *vgic_rank_offset(struct vcpu *v,
diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
index bc738614bb..576e7fd4b0 100644
--- a/xen/arch/arm/vgic-v3-its.c
+++ b/xen/arch/arm/vgic-v3-its.c
@@ -610,7 +610,7 @@ static int its_discard_event(struct virt_its *its,
=20
     /* Cleanup the pending_irq and disconnect it from the LPI. */
     vgic_remove_irq_from_queues(vcpu, p);
-    vgic_init_pending_irq(p, INVALID_LPI);
+    vgic_init_pending_irq(p, INVALID_LPI, false);
=20
     spin_unlock_irqrestore(&vcpu->arch.vgic.lock, flags);
=20
@@ -749,7 +749,7 @@ static int its_handle_mapti(struct virt_its *its, uint6=
4_t *cmdptr)
     if ( !pirq )
         goto out_remove_mapping;
=20
-    vgic_init_pending_irq(pirq, intid);
+    vgic_init_pending_irq(pirq, intid, gic_is_gicv4());
=20
     /*
      * Now read the guest's property table to initialize our cached state.
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 6647071ad4..0da8c1a425 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -112,7 +112,7 @@ struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, uns=
igned int irq)
     return vgic_get_rank(v, rank);
 }
=20
-void vgic_init_pending_irq(struct pending_irq *p, unsigned int virq)
+void vgic_init_pending_irq(struct pending_irq *p, unsigned int virq, bool =
hw)
 {
     /* The lpi_vcpu_id field must be big enough to hold a VCPU ID. */
     BUILD_BUG_ON(BIT(sizeof(p->lpi_vcpu_id) * 8, UL) < MAX_VIRT_CPUS);
@@ -122,6 +122,8 @@ void vgic_init_pending_irq(struct pending_irq *p, unsig=
ned int virq)
     INIT_LIST_HEAD(&p->lr_queue);
     p->irq =3D virq;
     p->lpi_vcpu_id =3D INVALID_VCPU_ID;
+    /* Whether virtual irq is tied to a HW one. */
+    p->hw =3D hw;
 }
=20
 static void vgic_rank_init(struct vgic_irq_rank *rank, uint8_t index,
@@ -202,7 +204,7 @@ static int init_vgic_espi(struct domain *d)
     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_idx_to_intid(idx));
+                              espi_idx_to_intid(idx), false);
=20
     for ( i =3D 0; i < DOMAIN_NR_EXT_RANKS(d); i++ )
         vgic_rank_init(&d->arch.vgic.ext_shared_irqs[i],
@@ -304,7 +306,7 @@ int domain_vgic_init(struct domain *d, unsigned int nr_=
spis)
         return -ENOMEM;
=20
     for (i=3D0; i<d->arch.vgic.nr_spis; i++)
-        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i], i + 32);
+        vgic_init_pending_irq(&d->arch.vgic.pending_irqs[i], i + 32, false=
);
=20
     /* SPIs are routed to VCPU0 by default */
     for ( i =3D 0; i < DOMAIN_NR_RANKS(d); i++ )
@@ -381,7 +383,7 @@ int vcpu_vgic_init(struct vcpu *v)
=20
     memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs=
));
     for (i =3D 0; i < 32; i++)
-        vgic_init_pending_irq(&v->arch.vgic.pending_irqs[i], i);
+        vgic_init_pending_irq(&v->arch.vgic.pending_irqs[i], i, false);
=20
     INIT_LIST_HEAD(&v->arch.vgic.inflight_irqs);
     INIT_LIST_HEAD(&v->arch.vgic.lr_pending);
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218796.1527700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZb-0001xJ-Sx; Mon, 02 Feb 2026 16:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218796.1527700; Mon, 02 Feb 2026 16:14: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 1vmwZb-0001w4-Ni; Mon, 02 Feb 2026 16:14:47 +0000
Received: by outflank-mailman (input) for mailman id 1218796;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZa-0000fY-1G
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:46 +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 4810d5eb-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:42 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:39 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14:39 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4810d5eb-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uo2hE3MQhU8Y/+6mnxplSpwliCr6Yv+j7bBXbsy3c51B/PAG9AS4vPBufm5CznAAtHXbrLLHJeagO2K52Ci/IetI1R/RFLwWzOGiKsq2NiMoFD7BRBcGJbpESiXEZm0hBEsUrxGd6cvZqsuKm2IURnHkKH7uQmVMCDPpAa4XSTMKFG5MtvQyqIUTeZvYmJIhrLAVEOzkvfNyy4wIlvQ/nHh5nqlsUlzhMONjxzLUYEt/EaNxxRdMzfz/MQmguGjeax+JjhTa49o1+OJogCan29fv6CiFt1I7kJwpcl7TCDzdKHzicSTkp/X22K0fgSAO9iotCZYLEhNbhpX8MbSRDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GTPHXMX3fipHD7hAp9lN3f/0Zh89SWFqMLQN0ky9Opw=;
 b=so9teKL6xQBct73mBjzgbH839UQbaJ0SuLlTkDbkj6OLUq25272p2Bx7U31aOvv2R/to5WuDj7p+CNXu9tA5on3OaqhxazsZyeNURjlmD+Eh1KT8zrZyw4pRj0xQt/qtisB1aWAOTxsEZs8eVjciUh/AjPm30SOl3y0NbFgWJ6BmlZRnovgoile/n0RGLKERW0KFlY8vl6s0PME2BZdtmudtC6CaOqVpDN2Lsj06E31XnEFeXhu0vHKD/BLjVIfYaeLoI+qq6NCDxbWSaaGcJK5a7kJum/qSRw2B98v7+g+MaTZlOdtRe5aD1irR84uIXSBamHNbly3q9lkxqrRDDw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GTPHXMX3fipHD7hAp9lN3f/0Zh89SWFqMLQN0ky9Opw=;
 b=shmU30LNwwAJU7LjepflUy+GXLcaP7yfnhmDuKhwZPavbORnUYYa4/+J7ZnvvIwwrwwiW7l80OcQlLXXoXCFXEDZFz1LQX79uUOK1MFTn6wm8hSMGjychXMVNxKptVIpUvgNdSN4XTplng6q6GF9hY7/BeAPGymrWe4b/RmuNzmAoA187lNw0YtcdfuGu16RD7s8utm8aYljMUAOuemrJ4SN6bgomzQ4bQ3EZRZqh5KuSheq92cRZDuT7yzGr6o6VTYrDNIpm8h4Gd5l0hl11f03xgWYvwyTbIDULAvf/oaYiDvt3ayblAj6Un8qaSWmFZ2mHfXIvZMFUVL5Me4+1w==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 06/19] arm/gicv4-its: Add VLPI map/unmap operations
Thread-Topic: [RFC PATCH 06/19] arm/gicv4-its: Add VLPI map/unmap operations
Thread-Index: AQHclF8I6+NnH8ugx0O4CpyExrWGFQ==
Date: Mon, 2 Feb 2026 16:14:39 +0000
Message-ID:
 <a821c49c7ba01f777546b0f7ab161d969a653b8b.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: dda4a3ec-6969-4f7d-f260-08de62762ac3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?EC1wxpwNhlBNHT5dY52Gb/hwIq6bkGSY+Yh/4qg+pkO42i3AiWdoatBLg2?=
 =?iso-8859-1?Q?oPhM1FFJ5Kng65/rip9weKrcx7ePVaF2ApNJ5rgd4exlu8K8Ik6vi51HgN?=
 =?iso-8859-1?Q?ABtwSigH2GVowsI9Bx9gWD9WMLMwUueuz/u6flRQLgvGyTdZl3AqjgFeEa?=
 =?iso-8859-1?Q?NWv8hNl/c0zmx3CcW6lcKaH0cqfUn975oPoKdZkhhpqaUj4+QYZnGC+1Kv?=
 =?iso-8859-1?Q?p82TZ0Z3UejKTXVBLzaK6pwYu/NpMJz3Mgy/WvF42RMuMByB+D24ZilIJj?=
 =?iso-8859-1?Q?WOPAA3IIULp6iySdaL7LQhWojLXdsViZsSNeFdxni2XXJVupj1Tz5y0/NX?=
 =?iso-8859-1?Q?lg8+vznlLJe7Bd0pistUu3X5ct/SB15uXoPwTIEDzTZ1RPUvf3wzBO5jg2?=
 =?iso-8859-1?Q?61fOTa+NQHQPBuL1Gd58JICiVRUwoDa3Q/kYEwIEPdMqd8StV4CNmuzQhj?=
 =?iso-8859-1?Q?DKk9yUPQWIE4qKRwuAOjgxmKl42jFK46Ger86MmSRiNpCinlgUtasgg05G?=
 =?iso-8859-1?Q?X+34PhMD+J9iE0CJOk2qBsPg/LZ2gMTnP30xudptWpUWdKN0PsWKrtaDqN?=
 =?iso-8859-1?Q?HBd9Oi4I4TEUZ8RGmWNDTA0CjaKP2Lnu8ebAkmOlA3ckd6OPt+3gL+aZxQ?=
 =?iso-8859-1?Q?9HAjDU7+K+EbaJuZVhbZOgZ07Z6ERJ4cLH3E3KdegEJmwqQMdQptoHbvTI?=
 =?iso-8859-1?Q?Hhkd/WfYLcBn8hWz7Dskp80FfMtqKS1erzulofw/coWww8qb46ampeY+Cz?=
 =?iso-8859-1?Q?JRKxf/c4AwpsmYM469cqEkM2vqoFGQt0X38VML1ONWybT5g2SaXnYh8L+g?=
 =?iso-8859-1?Q?bf8lH6O+cXmOrm9pq/AW8alsc9aZoZvyQy3iLV5l0RIILtkDCYv6Eptkam?=
 =?iso-8859-1?Q?xzAYeRGV6bZ3qGf1VLfgRqx0kFijwyk9Bf1KhF60j3vQIJqkKpChp2eE/e?=
 =?iso-8859-1?Q?4uCXw/ReleypwUPA6AwgFGVgMgb6vqGTTyL614faQVUtmcE+IYmoq8PjC5?=
 =?iso-8859-1?Q?27Wr2MzF703PePt/aAxdwtqvETzjnb5Xn0FukkFXtna0A6GXl20S/YyX5w?=
 =?iso-8859-1?Q?NSPDtwxxkJjBLR+ZtJUK4Ol7AP9W8CDB13YhGN1Tu7flQFpw9SoNgAwzdC?=
 =?iso-8859-1?Q?G69mqS29yIwHOeervHyKGHbaEOoJn/DkLH5P9wYgDjum8iUWkhw50CQlcY?=
 =?iso-8859-1?Q?nLgKKm7ZWwclOw6fjCA25GLT8TA+2z1nGmeqygGTJjZjyh8Ptjf4x817NB?=
 =?iso-8859-1?Q?++U1iET/JEQXn2ZyBX0BTil1iRywspfFvRnaVP3tuc20fQZQm7JnANzXGm?=
 =?iso-8859-1?Q?0QAnisMWRSIUx04dsL1G7/TIppMXk6rNTvd2Kcfnef+Y9AXkHiKkMDhQkE?=
 =?iso-8859-1?Q?Qczr6ESs32pea1rb2j18fkdSzDhgQh8cf64YiaBtE/xwGE8JH9rhcwv1B6?=
 =?iso-8859-1?Q?vUdIFjy2KwRRqcyqGSpA2nK+F7vSLJ9N0iFHEMSyvIS9WWxUANEfTeoHAm?=
 =?iso-8859-1?Q?51utlxQllrM4IZk2v6PfMJY0lprQIdwkhXPYPRkk4gix9D7M0QlmJrW1DS?=
 =?iso-8859-1?Q?hRByEu7ZlYsGgXZzO+99zBQ21lJ2uYLRAjy5IAmCofUBUMH/Nc2ZDuckpk?=
 =?iso-8859-1?Q?MtraQtoNh0kd3dlVPU633QXFvXjEKxW24aGvg8xzR0QQ47lLIIEZp4TJGN?=
 =?iso-8859-1?Q?xl0jh2/tDkcOS5sE/O0=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?K6hWoTP76894LqB/xRhftcMZEhUIzIae0bqsj3VAOyVdN8yzxOlb76iTPQ?=
 =?iso-8859-1?Q?LzbsM3NgqC84qeaNJNNQaJYo/vXXHjNq9wCznfbDdYbfJBOoY48KTvuNeF?=
 =?iso-8859-1?Q?jHc5Xr7Nb53l1OHlBLH//U+3QtVlNUIy5Cj2Y3UuJ8MPSBkYgvgVT5evo5?=
 =?iso-8859-1?Q?q3fdiaeYVxtyzXVHpjAZtVWRKyJKBL2Ks6lQf2q+1lx1rn5dBQiba7eoJt?=
 =?iso-8859-1?Q?BVP/7jHjGRP13TTyNsMOrms3Opwz2R8wgsTCflLuOt2TGYE0KphrRkFGTq?=
 =?iso-8859-1?Q?caNzE7IgSGuJrmTH0CQstmszNJl0lQ+z1S7iGzk2iEGIv/sjyqFT4G0/tM?=
 =?iso-8859-1?Q?2Yb2SyQAsLWvwmNQaUXXW6SRkYwFW2Ui2U9kSGDx8GFwUueD/ODgYaM3Yx?=
 =?iso-8859-1?Q?t8DNTZgGrqGgxtwCveyf1IUh69MV1gh5hu9HGygTupP3Q+QzuM5tKkvs1Z?=
 =?iso-8859-1?Q?4ynlj9DAlryYQBlZ/a3HF43/tlykTMpgK3Me5mBPNl63/t2FUYnJGZK9zg?=
 =?iso-8859-1?Q?UjHO/jkQL/zAqrHCQKxm8dHVqzvD+6WGGmcZX+kqS8JCtSMRHBOLlNA4UU?=
 =?iso-8859-1?Q?hjY+aMdZPDtGiZdzrWY83K9tDEG2MnaNW4ZNn1JhCU9Zf/gEemELf8jU5f?=
 =?iso-8859-1?Q?bxtrzxPKAqHnMk/ogZJt9gI2EKU+mRexqqjGLtuoublctmCP2a4CS5yHkm?=
 =?iso-8859-1?Q?R6jqGS9LmvTW3dA0cUV8Jp7UMu5gaX5H4FL5tg/mYtZLLAMdB6YzbCKbV1?=
 =?iso-8859-1?Q?Rpvrf77BFnHAyD/m7huZuDTS+fn6aX1xJzpzt0OFZ7HELu/HAJK4zL2u9b?=
 =?iso-8859-1?Q?Hnq3NGPsu9NamsDfJbC04wqntUkV1CykzFFA6yLIxM9YRPny9V2Lo2c0mu?=
 =?iso-8859-1?Q?tIM4WWwBVwHpK0siCEDx6zZFrtWRkkFgT93RWfnPfGk0aCZlhOvRd7D52P?=
 =?iso-8859-1?Q?4d4HquAEzKMI9xg1wEIs8ARobHzter0Ms2/doH0eE7erCQOAoM7go475lS?=
 =?iso-8859-1?Q?RSx1h3hwv7zKzk3OGB0SPhxctkme2ZYCmjI201eJrni59Nz35TU5aHqDEQ?=
 =?iso-8859-1?Q?KhUYPkJ3ofcoKfqoDjbAbXuxpb0AGQe28P0Izjd52YLVPdmnfBObSxWGbH?=
 =?iso-8859-1?Q?yd5H8cCMDncuxHMd8FN7rtykv3DzgJgtJrRA3eljGT0rnj0BT3NxBa+IV0?=
 =?iso-8859-1?Q?zZnetBWygt6V3NUiE3arsshOkLBU13ePY14H/G7ykWfOMQz84iGfJaK+FI?=
 =?iso-8859-1?Q?/UtAZSQA5Jm5hBmEq42hkqP8k4vGU4a8TpLhVur5Xvn0VZ7/SvGGAAP/Lo?=
 =?iso-8859-1?Q?D/SUTjloezvXf48pj7e1Lz0gT5WFImVvJNdO1Y9/NNw1sAGQB+eYBpv74H?=
 =?iso-8859-1?Q?PjnEQ8rxpVdVerN0rwXGeS+KVUpX96YC6nuSkUZk9uZZcFFt/imxsiuZzc?=
 =?iso-8859-1?Q?kTXwEiNesD7VNn+UYgpYtJeAzVFOnJU5sm20EtKXTKXkg0kSGyfxcBZceW?=
 =?iso-8859-1?Q?miQo2zxVOGaCdtT9tla2p6UClWB7KOADwEVOjWsUZsvHXZQ6ja7bWLXoHM?=
 =?iso-8859-1?Q?FuNHveJFsv5XyajN9BtoSS7AL79n6i60Sqg6AXiBV5fS3INqlry/6PL2sr?=
 =?iso-8859-1?Q?AIiAvbfEnV2UAfPhZVvPRh5IEsGgWc/bQFqVjfpzxsITC9K6Tx72y3DU3g?=
 =?iso-8859-1?Q?VMt1r1UyOzmbxoGkDOCeqlnBHP/N+RxXqiG16OkK1EioLDofZpgMmZh6Vy?=
 =?iso-8859-1?Q?oN/7Epz0LczmHZUCAf7x/YOIpLe6vzmSSvKs92pNYe4H03Ak2BcN01Ocls?=
 =?iso-8859-1?Q?MmPOuNUaTgkGI6lTgdQxuLd30kSl8a0=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: dda4a3ec-6969-4f7d-f260-08de62762ac3
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:39.6030
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: aazgJq0TTbF/EnamPFW34rY0hS57enu2SGrW5/cIwQlkSvKD0Mbxh3WTPoOWa8whBRP2Cd6An3rY+L6iZOQRKw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

For VLPI to be injected into a guest, it needs to be mapped or moved to
a corresponding VPE first. Add a struct to handle the info about the
VLPI mapping and a flag indicating whether the IRQ is tied to a HW one.

Implement mapping/unmapping of VLPIs to VPEs, also handle moving. Tie
them to emulated MAPTI/MOVI/DISCARD commands.

Add GIC_IRQ_GUEST_FORWARDED IRQ status flag to keep track of which LPIs
are mapped to virtual ones.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-its.c             |  14 ++
 xen/arch/arm/gic-v4-its.c             | 292 ++++++++++++++++++++++++++
 xen/arch/arm/include/asm/gic_v3_its.h |  20 ++
 xen/arch/arm/include/asm/gic_v4_its.h |  20 ++
 xen/arch/arm/include/asm/vgic.h       |   5 +
 xen/arch/arm/vgic-v3-its.c            |  42 +++-
 6 files changed, 387 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/arm/gic-v4-its.c

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 25c07eb861..25889445f5 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -315,6 +315,20 @@ int its_send_cmd_inv(struct host_its *its,
     return its_send_command(its, cmd);
 }
=20
+int its_send_cmd_discard(struct host_its *its, struct its_device *dev,
+                         uint32_t eventid)
+{
+    uint64_t cmd[4];
+    uint32_t deviceid =3D dev->host_devid;
+
+    cmd[0] =3D GITS_CMD_DISCARD | ((uint64_t)deviceid << 32);
+    cmd[1] =3D (uint64_t)eventid;
+    cmd[2] =3D 0x00;
+    cmd[3] =3D 0x00;
+
+    return its_send_command(its, cmd);
+}
+
 /* Set up the (1:1) collection mapping for the given host CPU. */
 int gicv3_its_setup_collection(unsigned int cpu)
 {
diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
new file mode 100644
index 0000000000..9bbd0d96b7
--- /dev/null
+++ b/xen/arch/arm/gic-v4-its.c
@@ -0,0 +1,292 @@
+/*
+ * xen/arch/arm/gic-v4-its.c
+ *
+ * ARM Generic Interrupt Controller support v4 version
+ * based on xen/arch/arm/gic-v3-its.c and kernel GICv4 driver
+ *
+ * Copyright (C) 2023 - ARM Ltd
+ * Penny Zheng <penny.zheng@arm.com>, ARM Ltd ported to Xen
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <xen/errno.h>
+#include <xen/sched.h>
+#include <xen/spinlock.h>
+#include <asm/gic_v3_defs.h>
+#include <asm/gic_v3_its.h>
+#include <asm/gic_v4_its.h>
+#include <asm/vgic.h>
+
+
+static int its_send_cmd_vsync(struct host_its *its, uint16_t vpeid)
+{
+    uint64_t cmd[4];
+
+    cmd[0] =3D GITS_CMD_VSYNC;
+    cmd[1] =3D (uint64_t)vpeid << 32;
+    cmd[2] =3D 0x00;
+    cmd[3] =3D 0x00;
+
+    return its_send_command(its, cmd);
+}
+
+static int its_send_cmd_vmapti(struct host_its *its, struct its_device *de=
v,
+                               uint32_t eventid)
+{
+    uint64_t cmd[4];
+    uint32_t deviceid =3D dev->host_devid;
+    struct its_vlpi_map *map =3D &dev->event_map.vlpi_maps[eventid];
+    uint16_t vpeid =3D map->vm->vpes[map->vpe_idx]->vpe_id;
+    uint32_t vintid =3D map->vintid;
+    uint32_t db_pintid;
+
+    if ( map->db_enabled )
+        db_pintid =3D map->vm->vpes[map->vpe_idx]->vpe_db_lpi;
+    else
+        db_pintid =3D INVALID_LPI;
+
+    cmd[0] =3D GITS_CMD_VMAPTI | ((uint64_t)deviceid << 32);
+    cmd[1] =3D eventid | ((uint64_t)vpeid << 32);
+    cmd[2] =3D vintid | ((uint64_t)db_pintid << 32);
+    cmd[3] =3D 0x00;
+
+    return its_send_command(its, cmd);
+}
+
+static bool pirq_is_forwarded_to_vcpu(struct pending_irq *pirq)
+{
+    ASSERT(pirq);
+    return test_bit(GIC_IRQ_GUEST_FORWARDED, &pirq->status);
+}
+
+bool event_is_forwarded_to_vcpu(struct its_device *dev, uint32_t eventid)
+{
+    struct pending_irq *pirq;
+
+    /* No vlpi maps at all ? */
+    if ( !dev->event_map.vlpi_maps)
+        return false;
+
+    pirq =3D dev->event_map.vlpi_maps[eventid].pirq;
+    return pirq_is_forwarded_to_vcpu(pirq);
+}
+
+static int its_send_cmd_vmovi(struct host_its *its, struct its_vlpi_map *m=
ap)
+{
+    uint64_t cmd[4];
+    struct its_device *dev =3D map->dev;
+    uint32_t eventid =3D map->eventid;
+    uint32_t deviceid =3D dev->host_devid;
+    uint16_t vpeid =3D map->vm->vpes[map->vpe_idx]->vpe_id;
+    uint32_t db_pintid;
+
+    if ( map->db_enabled )
+        db_pintid =3D map->vm->vpes[map->vpe_idx]->vpe_db_lpi;
+    else
+        db_pintid =3D INVALID_IRQ;
+
+    cmd[0] =3D GITS_CMD_VMOVI | ((uint64_t)deviceid << 32);
+    cmd[1] =3D eventid | ((uint64_t)vpeid << 32);
+    cmd[2] =3D (map->db_enabled ? 1UL : 0UL) | ((uint64_t)db_pintid << 32)=
;
+    cmd[3] =3D 0x00;
+
+    return its_send_command(its, cmd);
+}
+
+static int gicv4_its_vlpi_map(struct its_vlpi_map *map)
+{
+    struct its_device *dev;
+    struct host_its *its;
+    uint32_t eventid;
+    int ret;
+
+    if ( !map )
+        return -EINVAL;
+    dev =3D map->dev;
+    its =3D map->dev->hw_its;
+    eventid =3D map->eventid;
+
+    spin_lock(&dev->event_map.vlpi_lock);
+
+    if ( !dev->event_map.vm )
+    {
+        struct its_vlpi_map *maps;
+
+        maps =3D xzalloc_array(struct its_vlpi_map, dev->event_map.nr_lpis=
);
+        if ( !maps )
+        {
+            ret =3D -ENOMEM;
+            goto err;
+        }
+
+        dev->event_map.vm =3D map->vm;
+        dev->event_map.vlpi_maps =3D maps;
+    }
+    else if ( dev->event_map.vm !=3D map->vm )
+    {
+        ret =3D -EINVAL;
+        goto err;
+    }
+
+    /* Get our private copy of the mapping information */
+    dev->event_map.vlpi_maps[eventid] =3D *map;
+
+    if ( pirq_is_forwarded_to_vcpu(map->pirq) )
+    {
+        struct its_vlpi_map *old =3D &dev->event_map.vlpi_maps[eventid];
+        uint32_t old_vpeid =3D old->vm->vpes[old->vpe_idx]->vpe_id;
+
+        /* Already mapped, move it around */
+        ret =3D its_send_cmd_vmovi(dev->hw_its, map);
+        if ( ret )
+            goto err;
+
+        /*
+         * ARM spec says that If, after using VMOVI to move an interrupt f=
rom
+         * vPE A to vPE B, software moves the same interrupt again, a VSYN=
C
+         * command must be issued to vPE A between the moves to ensure cor=
rect
+         * behavior.
+         * So each time we issue VMOVI, we VSYNC the old VPE for good meas=
ure.
+         */
+        ret =3D its_send_cmd_vsync(dev->hw_its, old_vpeid);
+    }
+    else
+    {
+        /* Drop the original physical mapping firstly */
+        ret =3D its_send_cmd_discard(its, dev, eventid);
+        if ( ret )
+            goto err;
+
+        /* Then install the virtual one */
+        ret =3D its_send_cmd_vmapti(its, dev, eventid);
+        if ( ret )
+            goto err;
+
+        /* Increment the number of VLPIs */
+        dev->event_map.nr_vlpis++;
+    }
+
+    goto out;
+
+ err:
+    xfree(dev->event_map.vlpi_maps);
+ out:
+    spin_unlock(&dev->event_map.vlpi_lock);
+    return ret;
+}
+int gicv4_its_vlpi_unmap(struct pending_irq *pirq)
+{
+    struct its_vlpi_map *map =3D pirq->vlpi_map;
+    struct its_device *dev =3D map->dev;
+    int ret;
+    uint32_t host_lpi;
+
+    spin_lock(&dev->event_map.vlpi_lock);
+
+    if ( !dev->event_map.vm || !pirq_is_tied_to_hw(pirq) )
+    {
+        ret =3D -EINVAL;
+        goto out;
+    }
+
+    /* Drop the virtual mapping */
+    ret =3D its_send_cmd_discard(dev->hw_its, dev, map->eventid);
+    if ( ret )
+        goto out;
+
+    /* Restore the physical one */
+    clear_bit(GIC_IRQ_GUEST_FORWARDED, &pirq->status);
+    host_lpi =3D dev->host_lpi_blocks[map->eventid / LPI_BLOCK] +
+               (map->eventid % LPI_BLOCK);
+    /* Map every host LPI to host CPU 0 */
+    ret =3D its_send_cmd_mapti(dev->hw_its, dev->host_devid, map->eventid,
+                             host_lpi, 0);
+    if ( ret )
+        goto out;
+
+    lpi_write_config(lpi_data.lpi_property, host_lpi, 0xff, LPI_PROP_ENABL=
ED);
+
+    ret =3D its_inv_lpi(dev->hw_its, dev, map->eventid, 0);
+    if ( ret )
+        goto out;
+
+    xfree(map);
+    /*
+     * Drop the refcount and make the device available again if
+     * this was the last VLPI.
+     */
+    if ( !--dev->event_map.nr_vlpis )
+    {
+        dev->event_map.vm =3D NULL;
+        xfree(dev->event_map.vlpi_maps);
+    }
+
+out:
+    spin_unlock(&dev->event_map.vlpi_lock);
+    return ret;
+}
+
+int gicv4_assign_guest_event(struct domain *d, paddr_t vdoorbell_address,
+                             uint32_t vdevid, uint32_t eventid,
+                             struct pending_irq *pirq)
+
+{
+    int ret =3D ENODEV;
+    struct its_vm *vm =3D d->arch.vgic.its_vm;
+    struct its_vlpi_map *map;
+    struct its_device *dev;
+
+    spin_lock(&d->arch.vgic.its_devices_lock);
+    dev =3D get_its_device(d, vdoorbell_address, vdevid);
+    if ( dev && eventid < dev->eventids )
+    {
+        /* Prepare the vlpi mapping info */
+        map =3D xzalloc(struct its_vlpi_map);
+        if ( !map )
+            goto out;
+        map->vm =3D vm;
+        map->vintid =3D pirq->irq;
+        map->db_enabled =3D true;
+        map->vpe_idx =3D pirq->lpi_vcpu_id;
+        map->properties =3D pirq->lpi_priority |
+                          (test_bit(GIC_IRQ_GUEST_ENABLED, &pirq->status) =
?
+                          LPI_PROP_ENABLED : 0);
+        map->pirq =3D pirq;
+        map->dev =3D dev;
+        map->eventid =3D eventid;
+
+        ret =3D gicv4_its_vlpi_map(map);
+        if ( ret )
+        {
+            xfree(map);
+            goto out;
+        }
+
+        pirq->vlpi_map =3D map;
+    }
+
+ out:
+    spin_unlock(&d->arch.vgic.its_devices_lock);
+    return ret;
+}
+
+int gicv4_its_vlpi_move(struct pending_irq *pirq, struct vcpu *vcpu)
+{
+    struct its_vlpi_map *map =3D pirq->vlpi_map;
+    struct its_device *dev =3D map->dev;
+
+    if ( !dev->event_map.vm || !map )
+        return -EINVAL;
+
+    map->vpe_idx =3D vcpu->vcpu_id;
+    return gicv4_its_vlpi_map(map);
+}
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index 9f0ea9ccb1..75c91c0426 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -116,6 +116,9 @@
 /* We allocate LPIs on the hosts in chunks of 32 to reduce handling overhe=
ad. */
 #define LPI_BLOCK                       32U
=20
+#ifdef CONFIG_GICV4
+#include <asm/gic_v4_its.h>
+#endif
 /*
  * Describes a device which is using the ITS and is used by a guest.
  * Since device IDs are per ITS (in contrast to vLPIs, which are per
@@ -135,6 +138,9 @@ struct its_device {
     uint32_t eventids;                  /* Number of event IDs (MSIs) */
     uint32_t *host_lpi_blocks;          /* Which LPIs are used on the host=
 */
     struct pending_irq *pend_irqs;      /* One struct per event */
+#ifdef CONFIG_GICV4
+    struct event_vlpi_map event_map;
+#endif
 };
=20
 /* data structure for each hardware ITS */
@@ -184,6 +190,8 @@ extern struct __lpi_data lpi_data;
=20
 extern struct list_head host_its_list;
=20
+int its_send_cmd_discard(struct host_its *its, struct its_device *dev,
+                         uint32_t eventid);
 int its_send_cmd_inv(struct host_its *its, uint32_t deviceid, uint32_t eve=
ntid);
 int its_send_cmd_clear(struct host_its *its, uint32_t deviceid, uint32_t e=
ventid);
 int its_send_cmd_mapti(struct host_its *its, uint32_t deviceid,
@@ -254,6 +262,18 @@ int its_send_command(struct host_its *hw_its, const vo=
id *its_cmd);
=20
 struct its_device *get_its_device(struct domain *d, paddr_t vdoorbell,
                                   uint32_t vdevid);
+/* GICv4 functions */
+int gicv4_assign_guest_event(struct domain *d, paddr_t vdoorbell_address,
+                             uint32_t vdevid, uint32_t eventid,
+                             struct pending_irq *pirq);
+int gicv4_its_vlpi_move(struct pending_irq *pirq, struct vcpu *vcpu);
+#ifndef CONFIG_GICV4
+#define event_is_forwarded_to_vcpu(dev, eventid) ((void)dev, (void)eventid=
, false)
+#else
+bool event_is_forwarded_to_vcpu(struct its_device *dev, uint32_t eventid);
+void its_vpe_mask_db(struct its_vpe *vpe);
+#endif
+int gicv4_its_vlpi_unmap(struct pending_irq *pirq);
=20
 /* ITS quirks handling. */
 uint64_t gicv3_its_get_cacheability(void);
diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include/a=
sm/gic_v4_its.h
index f48eae60ad..722247ec60 100644
--- a/xen/arch/arm/include/asm/gic_v4_its.h
+++ b/xen/arch/arm/include/asm/gic_v4_its.h
@@ -29,6 +29,26 @@
 #define GITS_CMD_VINVALL                 0x2d
 #define GITS_CMD_INVDB                   0x2e
=20
+/* Describes the mapping of a VLPI */
+struct its_vlpi_map {
+    struct its_vm       *vm;
+    unsigned int        vpe_idx;    /* Index of the VPE */
+    uint32_t            vintid;     /* Virtual LPI number */
+    bool                db_enabled; /* Is the VPE doorbell to be generated=
? */
+    uint8_t             properties;
+    struct pending_irq  *pirq;
+    struct its_device   *dev;
+    uint32_t            eventid;
+};
+
+struct event_vlpi_map {
+    unsigned int            nr_lpis;
+    spinlock_t              vlpi_lock;
+    struct its_vm           *vm;
+    struct its_vlpi_map     *vlpi_maps;
+    unsigned int            nr_vlpis;
+};
+
 #endif
=20
 /*
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 77323b2584..360f8a968e 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -70,6 +70,7 @@ struct pending_irq
      * LPI with the same number in an LR must be from an older LPI, which
      * has been unmapped before.
      *
+     * GIC_IRQ_GUEST_FORWARDED: the IRQ is forwarded to a VCPU(GICv4 only)
      */
 #define GIC_IRQ_GUEST_QUEUED   0
 #define GIC_IRQ_GUEST_ACTIVE   1
@@ -77,6 +78,7 @@ struct pending_irq
 #define GIC_IRQ_GUEST_ENABLED  3
 #define GIC_IRQ_GUEST_MIGRATING   4
 #define GIC_IRQ_GUEST_PRISTINE_LPI  5
+#define GIC_IRQ_GUEST_FORWARDED     6
     unsigned long status;
     struct irq_desc *desc; /* only set if the irq corresponds to a physica=
l irq */
     unsigned int irq;
@@ -95,6 +97,9 @@ struct pending_irq
      * vgic lock is not going to be enough. */
     struct list_head lr_queue;
     bool hw;                    /* Tied to HW IRQ */
+#ifdef CONFIG_GICV4
+    struct its_vlpi_map *vlpi_map;
+#endif
 };
=20
 #define NR_INTERRUPT_PER_RANK   32
diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
index 576e7fd4b0..94f7dd7d90 100644
--- a/xen/arch/arm/vgic-v3-its.c
+++ b/xen/arch/arm/vgic-v3-its.c
@@ -589,6 +589,14 @@ static int its_discard_event(struct virt_its *its,
     if ( vlpi =3D=3D INVALID_LPI )
         return -ENOENT;
=20
+    p =3D gicv3_its_get_event_pending_irq(its->d, its->doorbell_address,
+                                        vdevid, vevid);
+    if ( unlikely(!p) )
+        return -EINVAL;
+
+    if ( pirq_is_tied_to_hw(p) )
+        if ( gicv4_its_vlpi_unmap(p) )
+            return -EINVAL;
     /*
      * TODO: This relies on the VCPU being correct in the ITS tables.
      * This can be fixed by either using a per-IRQ lock or by using
@@ -751,6 +759,27 @@ static int its_handle_mapti(struct virt_its *its, uint=
64_t *cmdptr)
=20
     vgic_init_pending_irq(pirq, intid, gic_is_gicv4());
=20
+    pirq->lpi_vcpu_id =3D vcpu->vcpu_id;
+
+    if ( pirq_is_tied_to_hw(pirq) )
+        /*
+         * If on GICv4, we could let the VLPI being directly injected
+         * to the guest. To achieve that, the VLPI must be mapped using
+         * the VMAPTI command.
+         */
+        if ( gicv4_assign_guest_event(its->d, its->doorbell_address, devid=
,
+                                      eventid, pirq) )
+            goto out_remove_mapping;
+
+    if ( pirq_is_tied_to_hw(pirq) )
+        set_bit(GIC_IRQ_GUEST_FORWARDED, &pirq->status);
+    else
+        /*
+         * Mark this LPI as new, so any older (now unmapped) LPI in any LR
+         * can be easily recognised as such.
+         */
+        set_bit(GIC_IRQ_GUEST_PRISTINE_LPI, &pirq->status);
+
     /*
      * Now read the guest's property table to initialize our cached state.
      * We don't need the VGIC VCPU lock here, because the pending_irq isn'=
t
@@ -761,12 +790,6 @@ static int its_handle_mapti(struct virt_its *its, uint=
64_t *cmdptr)
         goto out_remove_host_entry;
=20
     pirq->lpi_vcpu_id =3D vcpu->vcpu_id;
-    /*
-     * Mark this LPI as new, so any older (now unmapped) LPI in any LR
-     * can be easily recognised as such.
-     */
-    set_bit(GIC_IRQ_GUEST_PRISTINE_LPI, &pirq->status);
-
     /*
      * Now insert the pending_irq into the domain's LPI tree, so that
      * it becomes live.
@@ -824,6 +847,13 @@ static int its_handle_movi(struct virt_its *its, uint6=
4_t *cmdptr)
     if ( unlikely(!p) )
         goto out_unlock;
=20
+    if ( pirq_is_tied_to_hw(p) )
+    {
+        ret =3D gicv4_its_vlpi_move(p, nvcpu);
+        if ( ret )
+            goto out_unlock;
+    }
+
     /*
      * TODO: This relies on the VCPU being correct in the ITS tables.
      * This can be fixed by either using a per-IRQ lock or by using
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218797.1527708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZc-000262-N4; Mon, 02 Feb 2026 16:14:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218797.1527708; Mon, 02 Feb 2026 16: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 1vmwZc-00025J-BF; Mon, 02 Feb 2026 16:14:48 +0000
Received: by outflank-mailman (input) for mailman id 1218797;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZb-0000fY-1a
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14: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 4889f7fa-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:42 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:40 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4889f7fa-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Q450fKKkg4LSlSJSytyfbtUyZNCuCpzAS3FDSOJQjwX3vtU5qUJasUbho55zCwDeJkqB10zPe6JqDRj9q5dY9E33nJ1J/dhkcQLXP6HeuHXY2pM+hyUPHJY/cuO4w1Q35svkAiCSBLHCjjp2RubGPUyflEzw7C03vr4enF5Cro8vnI4dxEFzLP/bqIFEo+d7ztH7cm2jt7rhVrHY9SPJgSomcn/vLMVnjj6cLWF+7n26XnsUvzyW1Enh0M33ap7GQXy6s8owhYghV8WtoQcya9TRvzTrkk0FC/Om9VhiVu0vgLr4w01AU2g/oIt4pol0uAuVx+mxCL/d2cIc6kMo+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=WrajxwpLkTzUo5qZ0TpducYW59HMKLxEeoenAEYJQaI=;
 b=JKK6VO/tulvUEQ0y6VVjTWSV1Z21Gci4+ZiPI/CDr4YSWQgxBFiRZa/CzLMoU6ZrzXJZgy4hxswI70tFb1PFo5O+wHSnjbdU2Cw5jwTZbuH5n4d2Aroa6Vu8Gzc2Sw3y2EJUejnEjihsDIUBuVP/Q3MwHxb18V1l6Y7E7vpvZCmStTUNin6IiTMl8XZAJGwmGsAuMOuBWq4Do3JlK6QCT5F5TBDFIAht1k8RIROUJ1Z0kDxFZoxGNyO0kGtjygCGwhJhTthtZ32UGqb4ds2JvawuQbozuj6gdImBT8j8IgY9wnswiFbdqEluEdl4EDY8wkunQNd+qj1TA60VMo1lSQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WrajxwpLkTzUo5qZ0TpducYW59HMKLxEeoenAEYJQaI=;
 b=S7bpXBSla6IQIpe+8Mr9nx3S4H5jdhqK/NsrnPjhc3CYCZo9CRb6CgObiFn3gYQpgZCgAw91i9RUOQYjR/pDUtroN2lRVoJ44ThsU/R80+aIYRoxJwi0msRGjDEySDF27rNv6fMCgksOz59PgIza9ZQ8gXFSPk8oSutL9oXBgaDYmXt+CedVz59Db6E+hvHQhp2ITUpm0OikdVgEIx58zbxM6f06fvkpzfdeMwzPlsqggQECmCf4dXQThKBsJDiiv+TaIQmOr8SDDqwfEXrvkxYxZd6pBNYUtv76bC1yRvSZsZPjBbgTyIs8zDtKcNGtUWaf/ygRDT4EJIfHmjC7Pg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, Mykyta Poturai
	<Mykyta_Poturai@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, Anthony
 PERARD <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan
 Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
Subject: [RFC PATCH 07/19] xen/domain: Alloc enough pages for VCPU struct
Thread-Topic: [RFC PATCH 07/19] xen/domain: Alloc enough pages for VCPU struct
Thread-Index: AQHclF8IVNXzRYHYv0KDWbwmI64RGA==
Date: Mon, 2 Feb 2026 16:14:39 +0000
Message-ID:
 <a34c89037c29728943d0a15168e7c87e2ed50630.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: e2363123-0f4c-4f69-26b3-08de62762b05
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?HhRGTW30olY7AahcpalqXteC807MuCBY+FdTcAG6E2O9PQ2gtPZms0DIWZ?=
 =?iso-8859-1?Q?w1+PgfJJuKgliQLrR6wo5N8er479xZIXVGjeVbBQCaZxqG21caI2elHtq6?=
 =?iso-8859-1?Q?QT8cWtUo1gWgugFCfdfvMXmeZOYkOabcyjGzPoc08TumhhGZqTHbW7eMkc?=
 =?iso-8859-1?Q?JEFR2k2gqqgXIfGh3aiPaJ4oQxxDlVUtMGreJrAqqNUrEhC+YnEUUBy9KL?=
 =?iso-8859-1?Q?fNik5glgsh39uMcONECvlQQuzvU4at0YNFRx1AIwTFLuXMM63MWbLB75ih?=
 =?iso-8859-1?Q?zfWQM4IKkg1UeuBIDC9Jmw1yrqHGAezzkfzQnj5VJEcjiAu9LlvMdZYXVD?=
 =?iso-8859-1?Q?oCDvtHsOZYUygsK60MdXQ/FuyruttYhToYgB/f/qEQpdmatREFTZxRQcBX?=
 =?iso-8859-1?Q?YHT89uC+vl4S/zxQQcZC1tynztxq6QslzAtzczdgHRJEjc4xFQRiSuZR1d?=
 =?iso-8859-1?Q?MLbMNV4mxanqc8GJmblXd/g5gYbV3ffwayqbSVJLgRev0/PVVYtfb0UfL+?=
 =?iso-8859-1?Q?dKLx0kRRbLxMxU48+tbGQayRp7yoHxerc6MctbnToX2yw6bT4H47AQfpT/?=
 =?iso-8859-1?Q?Fedrz1jEKGhFRPBhj86Q40udDjXnWjcv9bhzft2tz+Zpi4i1WHSHpOSmlb?=
 =?iso-8859-1?Q?P7JQ4unc+YUgSJaLLSK7ox5KnsqGiel4Ysl91prvUsqKLcrjXNFXXMQN5F?=
 =?iso-8859-1?Q?iX7VgY45PFXK4OAlqHvqu9KkkR7X8FS4fXcIurbcsyS4FItuVIOGekdIBg?=
 =?iso-8859-1?Q?MZi0WFyHxsPhHkfbUB6g1Y0INpYst0r6f7Mh05qx/5I8q7IpcJ3hyHX/IK?=
 =?iso-8859-1?Q?znbqeCkSw8aq2lbfuiSvZkWYMrL2yOd4JiozLUMTmqkCL5NZyyXN7VLaIb?=
 =?iso-8859-1?Q?qGm5+PwdwJXty5s+O1Z9xytYsERszyMeM7Uns3S/KPZvdUJhiE5DDFC7Vx?=
 =?iso-8859-1?Q?I8tNvKRylVpWfHsPu+6r6zrhe4CUOuXNMRWRHafg6wdXKTccuxds/4bctL?=
 =?iso-8859-1?Q?0fo55bobKBl+qBOhiXZYYAKaEWfMHP9QoxkBnoVrOLF21AfrWDRCUpPwQq?=
 =?iso-8859-1?Q?Yz9sY+0kCmOob99vaXMWyGSRH9QGvt6DCnxTRSSPFYMTw26s7+M5BMp6No?=
 =?iso-8859-1?Q?QWqKuMKYTAp2jn2QOwlSnPXlwwkQr5h84arSQJSCOPex+j27o43hJ/YXfQ?=
 =?iso-8859-1?Q?6hZuzgl0WgJx3NP4WIcQTdOy24xIQWtopO87MSi18wURsK1b9lQ68fSIUX?=
 =?iso-8859-1?Q?w1pqglfLa8KwnBkV3EXVavjiG2G39bHrUqbnSOKWs87s8vXI+mt2f81+5V?=
 =?iso-8859-1?Q?Ol6Md+mN1Z+j+CFigdEXDbi9CWpKZP1JUAS9rS9s3OTVM1963FnAy/Qn86?=
 =?iso-8859-1?Q?9kKfYcId/+n7X7NjRMXG4KvCpwb+FqQlUM1sTKt3YfEYKNDO6J3SKjo98d?=
 =?iso-8859-1?Q?kKx5J5n/1jDe2AkkwFvN9p6JkNh0UJa1xh+bqJNe6haDTjIGwJ9x5qG0Gu?=
 =?iso-8859-1?Q?xWZqlBCEM5obWqeu0CN8vBVSMTb1lEaPjj2Ho6nENqjclPP92Z2YROxl0R?=
 =?iso-8859-1?Q?8YDaOinNjGNf2jdTUJcjB+xRhLao8I18pa4igmVVElzMLaG+DwThirmyi/?=
 =?iso-8859-1?Q?k/cH/EJGRUyJ9FOC2gJnX31dWMd04MA5Mmbdn4x98bYxQns+jQR80DY/Xh?=
 =?iso-8859-1?Q?SOhRSD23ZOkqkk8HxCI=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?tDp2khFUQNCp/cmexPs8VxIiN1S/bGFDG60Yp96AyDyGMZCTggMkl+9+1u?=
 =?iso-8859-1?Q?kiMpJPEvBsHgOYd+GYSgwxGHC8TgR9SwWu1LeTfek8nhCl5NzYMFXTDK6U?=
 =?iso-8859-1?Q?1zJ52nqOsJ5H4CBaLoRtIApGFPl5vXj7vVS+xhPotgt6fZyp7ORCeWSfIL?=
 =?iso-8859-1?Q?ekSnXS1xiM24ktf4awBzFIqApVXdpLf4B68GzwNWqb1/X/E7AmiXF+dwa/?=
 =?iso-8859-1?Q?7+LB4lnDkhxAPv13Ge9cFYHeZUikG+GgOuAVRIm/ZQ2GglybCf4zdDl2hp?=
 =?iso-8859-1?Q?Tg5lkJ7pQ9FESXbLR1HD9dx68rq/HlE+YMrUOZCC7ttKOroB8pWO58DCHh?=
 =?iso-8859-1?Q?YX9qi7AkMHqoX2E2VxqQQbKweZTjOze7DAHRlnqRtDaMTtt9SABQnqjKpv?=
 =?iso-8859-1?Q?auD9teJgc8w/GEVyuIhCgkTR4g0Pf+qcu/T5PvGHIFUEMU9sHchzZaPnOY?=
 =?iso-8859-1?Q?9VcfEzU9GSRahgBj5E1d8lHJOqrwXJLnDOZEytJrmBN7AxUTFOh2kWu58o?=
 =?iso-8859-1?Q?QhP8UeJRl+UQletthfklA0fO9Zc+kYt4zsNILYbCwMuChIm2dT7O3B4ePp?=
 =?iso-8859-1?Q?3ucaOYGdWeh6EQC7Ody4mnPpJBs6LDjBnutVWmr0Fv/HRYKMKXnc09suiZ?=
 =?iso-8859-1?Q?fEB7uuZeK7VD4LD+G7ESm0o6euTQQT/jeHbMkmg+1BajkU15+d5iIyIwSV?=
 =?iso-8859-1?Q?6OGNTgsQNieynhx2VWjIrDf+YP5Hlr4F7KEQ/nunEnhC3uHf2PT0gYHVTg?=
 =?iso-8859-1?Q?nYE25BUv4udFVF1TGHdXt455R6HInHoFepO7SbZTa6leih0TBaqyixq66R?=
 =?iso-8859-1?Q?NQNa8gw8raMJi0qLz47p5llNdpJf0vN98PpbnHszsgOkOUTzt52VG9Cx4A?=
 =?iso-8859-1?Q?jmV1CJ9zyJ7XDVmq6Koz18QfC8HpNVenTNSCKT9Sg1bl5J/0FOhx0/0ap+?=
 =?iso-8859-1?Q?l7hP0Bmk/muaAYXUEXyxaZliQMceH6JP/xrcxev5ZR7Y1QoF7lX0mDcP4x?=
 =?iso-8859-1?Q?i3rnRjp3UXusqyEWr/SSa964yRS7eKeyzQRVHh9IZ1r7vt5YmqUOfzZRoE?=
 =?iso-8859-1?Q?bE12/VS8qjGCswaaGqWLKSDZTifU0Qfn4uEbmDmGDkhpqLa32RCvr6p6XR?=
 =?iso-8859-1?Q?vpS9K3G5hSLimxuvc2xnsD4lVntCSmCZBlzjCcadVyxuZENRRx7rzxZU5M?=
 =?iso-8859-1?Q?YJ61MosZBrXa117pmd3kwzGXsRYkmm3Meo3+UqTwzc1KD2KkHAoXwSw8qB?=
 =?iso-8859-1?Q?j7ivutQZ0lwMUCKdriPxIkLynw5DAUMvBj77s4NHy3yjrZbgSvDaX0QoyX?=
 =?iso-8859-1?Q?OHb2phUbU5No1ZVAiz/x2hmWuGaX/4bOhSWY9KDMHLXeZnkV1Hs1RMvcg3?=
 =?iso-8859-1?Q?SapCWBa0zt3D6tFFEtJeMvTwwKyGasNx+ov2GLA4Vz+hYMgqPWB61sJM67?=
 =?iso-8859-1?Q?EXLKYm/yM6s3b10JMYMsEAf4U6TXmOrLY8WP0AhZKGQLSYuoMwMFQWb+OV?=
 =?iso-8859-1?Q?aHLc3jjXAplo3mBOt+NGi2YaSCDb7UrH9usBphvQzi0aRgCqnhiRc3dyXo?=
 =?iso-8859-1?Q?WKxMDaf9/qfS6efJ9FiHW20zaZbRafoHAlv7cZPemAF4AUeGMDh2G8k1e/?=
 =?iso-8859-1?Q?T8KHBGroEyTaq3KVaowoVVcFheDR4JMLSOmJnxt+g2wWGScBIy65MZgRQp?=
 =?iso-8859-1?Q?1zZfN5NeYKjn0O1vIgqH63aU5ID+KKgngA+c4b0gbgLyO1FHRgjvsaiGZA?=
 =?iso-8859-1?Q?ZipFiDXM4SV0sL6rdU2WQ0ZTTmHuyU1PhuaKSQIYQFeACL6MAocUMgakYj?=
 =?iso-8859-1?Q?vptP5a0/iw0pP7IExVJYJiG2m5WtfU0=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: e2363123-0f4c-4f69-26b3-08de62762b05
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:39.9917
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Wu0KAP3jH3N2OAa7PO/65z0iRG8jeTglU4fY1NIRD0BleoMcBljWSRwN0t879yB0ZPrD6o4x3v6/VbqHdfaHMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

With introduction of GICv4 the size of struct vcpu can again be more
than one page. Modify struct vcpu allocation to request enough pages
again.

Don't reintroduce the MAX_PAGES_PER_VCPU check.
As per commit b77d774d8274183c2252f5fbc9fa3b3b7022ba06
> It turns out that beyond efficiency, maybe, there is no real technical
> reason this struct has to fit in one page

Since there is no technical reason to limit struct vcpu size to one page,
there also seems to be little reason the fiddle with 1 or 2 page limits.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/common/domain.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 376351b528..c791fb5033 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -342,18 +342,24 @@ static struct vcpu *alloc_vcpu_struct(const struct do=
main *d)
 # define arch_vcpu_struct_memflags(d) ((void)(d), 0)
 #endif
     struct vcpu *v;
+    unsigned int order =3D get_order_from_bytes(sizeof(*v));
=20
-    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
-    v =3D alloc_xenheap_pages(0, arch_vcpu_struct_memflags(d));
+    v =3D alloc_xenheap_pages(order, arch_vcpu_struct_memflags(d));
     if ( v )
-        clear_page(v);
+    {
+        unsigned int i;
+
+        for ( i =3D 0; i < DIV_ROUND_UP(sizeof(*v), PAGE_SIZE); i++ )
+            clear_page((void *)v + i * PAGE_SIZE);
+    }
=20
     return v;
 }
=20
 static void free_vcpu_struct(struct vcpu *v)
 {
-    free_xenheap_page(v);
+    unsigned int order =3D get_order_from_bytes(sizeof(*v));
+    free_xenheap_pages(v, order);
 }
=20
 static void vmtrace_free_buffer(struct vcpu *v)
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218798.1527723 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZe-0002Wr-Cw; Mon, 02 Feb 2026 16:14:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218798.1527723; Mon, 02 Feb 2026 16:14: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 1vmwZe-0002VS-0w; Mon, 02 Feb 2026 16:14:50 +0000
Received: by outflank-mailman (input) for mailman id 1218798;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZc-0000fY-1t
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:48 +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 48bf508a-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:43 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:40 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 48bf508a-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ajqNt+LRKJEy4M1fbWTVJg6DbDonUK5eo3bBQLVvFYqCsBPh8KjC/kYV/nVlIMTDhFylWNmxwlW905P+TTh0xfucNDBGnQaUXmT2+q0cY/TQBUFOyUCZqJ18qgAedypA5VPDJS7lWUkigf1U2VaYRHiNQXOb60Et4EehQ/AfTl7ZJ4jqfBu/7Q897KKDazH/9gSdAnvAurCv+YWRkEziXljhPNEgBYF0T81cY79U59kDHgLWxFHHvHk0/5NsxdsIzZB/7Er0SMceKglEVzqUIclXIJwNhJegEAyQ4j/htoXxl5MjCHoN7M32q5eoGZM2/lWv1Jco7T9J+QaQNadvLg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XldT1n09TO58+jhUJFrzUJPDw25FVJdFd1IJhQ1NS/o=;
 b=Mhyb8d1OM2NnXIPrQcebHV0QkOv1k4nx5JQslnvlKqg7OLWM8WTosCZ5DFWpc2jRGi8/WdibT+yNS456rg3p1WdKDM2+DWNkq4a9oKowk9KhmjC/Mohlz1YrVxgP9qjFa5iFCNhjWSqXcd6ACvMITVB+JBarU1C8T7zJzdVNegNDeWvj/6xubi3PGVD9LQ0MPRH/CAmDzNxd5VsRMij3y2EOrvJ1KWjFXOzQtlG8OIiQpHtJCBzF0qLXM3Rb93KxXH1lwe8zoPTXvTWwGhgOWs7gpEdzH6jS9CIKGO5L0azddNSxy5YK2EXJZeqsKGjpDHzCDLyxDwrvPVSfZQ4Ttg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XldT1n09TO58+jhUJFrzUJPDw25FVJdFd1IJhQ1NS/o=;
 b=AHiAP5YFAqbXL02DM71ubpfi1kHAdTSMIR6W8EqjKqNCb1BST+ftO8FqLvhFCtLIR7yZ4J8HBDvxK5XWMVbQB25n6CdZqcoFbT5W175y3Cu9aulmF8WsuMciSNGhLW6As7YRGqq/QzkaSYYZxFKJoX20yW5qTAeBNrZJDSqXe9laIw2Ofw1ioau4nWaJn/rL2eEVp2LCbbsApVmKcQTZjWpPCpHAezYx3IeC2MUQdm+yckuW91gDgMdNWDweMwH02hs1M4X1ksARqqua0lopol+u0Hv7Rrhv0VlCn0vYH2UCX2jKY1wtapRBFOToBkHlXqSGhv7qA4EBDr6C/8TbSg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 08/19] arm/gic: Keep track of GIC features
Thread-Topic: [RFC PATCH 08/19] arm/gic: Keep track of GIC features
Thread-Index: AQHclF8I5NEvxt05pU2Wk0lvwQAkCQ==
Date: Mon, 2 Feb 2026 16:14:40 +0000
Message-ID:
 <2687fa1a798f002b3126cdc851812be86c4cd8f1.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: b9df5fb6-de93-4024-f2ad-08de62762b43
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?q4P/NetXVUwjQrbtmFVEWLEfBowtkmEGEuUh5AnPlK9sqeNOFAPLbIddME?=
 =?iso-8859-1?Q?BKvVzgqJnFsZ1S0MhtHmaE6LljN/Pq3keZUS03x23uMuwd965MeRIebzMH?=
 =?iso-8859-1?Q?G6GD1/bg3EOszF6/8rT9e1B18gB8f6J1sqaYJAkqJzR7z/ucX/YlUeqhHR?=
 =?iso-8859-1?Q?RWOMHGijz3ze2pDzzGTcf+p/C5PrT/X5BATW4ETrpyFEyK3ROgIY9djJXw?=
 =?iso-8859-1?Q?P92ovwYhVs7SSkfKp6y0jHThLJf3xlSosGzMz6L60OX/gk3AUhp5CfpdPD?=
 =?iso-8859-1?Q?QGpLoyhudJ05MCrnYdIS9swHObe/mqIVYh0kFV87ag9N4tm8451CBJc4cm?=
 =?iso-8859-1?Q?i5WNjYMusJ0xCYmOn3IiRUpeWq32Ff9wSv2URkox1EoEOzCmOFq76jGT8c?=
 =?iso-8859-1?Q?KFv4LvjEBSdn8lj4owfqv3/L6pQk8NymNdFLBtfIKkN/iEXeI5v/MpXuOP?=
 =?iso-8859-1?Q?DFxlyCNyJAAGFmu+fO9fgDdMQnNrlnymxRxBKJcKlLjBCgmQS2RjpbpWbp?=
 =?iso-8859-1?Q?fPw5p+soQ60Dy+pvAZ9bI73TqpygjrmoSz5ATY5h8GFx3EC1UrBU1dcEC/?=
 =?iso-8859-1?Q?YUJuz/if9mT4ST4cw+i217QoE0SsP5EzLU7Hqm+occsAKnBDTeKOhY9aYX?=
 =?iso-8859-1?Q?1gUPFVXu/rm/qRUaRvD9HHxD6cpPB1IJYjs25ue/u49zp3q97Oi9//KJP+?=
 =?iso-8859-1?Q?2HUbanTWOCbs8V3JPyuM/Ux4VezgR35aOSFoi9nXj8fVdubv8w0jVKbPqv?=
 =?iso-8859-1?Q?g4jtjnQ+HbhLuEk1ismStpXijiBQ9jrcRmR0BVp1lXnmRxt92EXKJ3lZIH?=
 =?iso-8859-1?Q?e+JQuODuehnhUAKu8ElvaGO8p44EI39mHw50eUBbglyj23THZO8RIihgld?=
 =?iso-8859-1?Q?ReYXAmZa7oIWZm1U8+qsEpSjxvL6Wl1u5ai1uVZ/iBjbPzu8n7MWiC/8Y3?=
 =?iso-8859-1?Q?FKOU+TsAnD4E89xYieby4jzRU9EJOTyJJMAldOF8qqrPhnwp9XAYp70NmI?=
 =?iso-8859-1?Q?F1PLK8Yv+neJkZAJ04NYIMp5CltNQS8ClmatFuq62bmqir7HEKRSKDUmzT?=
 =?iso-8859-1?Q?Isx20Wl7S6JXp8SrlGPN9z2pNwYpb9+AY3Y/3sSntF5SwUWFPNHgQNkBnB?=
 =?iso-8859-1?Q?+J02ldCDr7nBimg/BlsxtT8CUJzSArUS7HRaqYiUKhwsYaYZ/o2zX04oPW?=
 =?iso-8859-1?Q?/05qPr9CNjKs9HPyiGiPt5Yg31IVuWtDnKvvzc/n24DlN/ZWCGpVIGiWOA?=
 =?iso-8859-1?Q?ZBxRjMK7An7S96L1kyYE0J3uXeTcgs/ONDOdzaCFUCHWkY5PS/0mDJYzD8?=
 =?iso-8859-1?Q?4ugOEYqDjXDcjiIPXTtAhbxXGG5qmmDPE2FVjbksY+I5FANZwmi/AIDXZy?=
 =?iso-8859-1?Q?rDMjVbcX2acSp5YVwlxXIkqKquZfiICSD3QdALYU5qAwRT/c+fyLtWkPlR?=
 =?iso-8859-1?Q?ozsXyQSQ/jVBUc23NO4qRRrY/fg6Tv5UmY3k+Z+vMJbQGSzXF/ntpZMIXW?=
 =?iso-8859-1?Q?L9pDmo2Gyt3FvlrlmMeNOOfhHvfjcPfCICzUN1XK2LTAYjonOz7GsSTMrN?=
 =?iso-8859-1?Q?4ArTH0owAZQhKMm4phiFTjPeRRvbqDfsp8EXmlnPXSt0yN7OPDi5PZHDwk?=
 =?iso-8859-1?Q?UYVqfaCZbrjs+dNdaOiQAx7cv1839z5RrCiotXVdJH1rGmb8Ovmx27m0Gj?=
 =?iso-8859-1?Q?hCbgtxqAIYoQPCYQTBE=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ExlSQa8cMwoeHWNcNfSB5ObzOcMO+wqvAhgrUmDkj6WxkCuywaKjWSlJHe?=
 =?iso-8859-1?Q?iI3bxlYqdjDiqk3lMtwbL+rWOKVk4aGdonEOf5A4scxEfNdPcOahPxsrSD?=
 =?iso-8859-1?Q?oJmLQCTCHwdw0WisASCwShGXGP+vsbumAnFFCQKiPH312nNL/unvdOs8wp?=
 =?iso-8859-1?Q?vcy33kVHwUVxyyCUHukeQk84yZ5gnojiGY7SsF2zQ2LwTkJEsAwhxj1eUO?=
 =?iso-8859-1?Q?EUolznrjlSgquj1NXXmHBsNHYB+OlGwnTxVddgt66mJasObVDr15Jaq5ZO?=
 =?iso-8859-1?Q?imlmXtwCzDHCpnKxXBhHYoV53zvoeLOhDM10x5tmqImgsTIRD0EV+UdDAq?=
 =?iso-8859-1?Q?oQDFEZCcTsdNZ7G9F8u5zlE6CAl0ITOWSefBR3DhxkDlT3JVRj24BnuUSN?=
 =?iso-8859-1?Q?OVy0d4dh7j5+MFGMXpQ9csP51pKiz1G9OmFgRagEyZF8Z4P05155Nqzrrj?=
 =?iso-8859-1?Q?eqXtuj4xJ8lQMGd+bBYIkRGUdTih0GD8MAAOsQI9z/Yf3O3duyXAhROD4k?=
 =?iso-8859-1?Q?janlo59cScwMA0Rk/JC39WyOK/9DAaslDlcipQy6PScPKQrQim9b3oKBM5?=
 =?iso-8859-1?Q?ypqaE7hJK0JiDS8yHdMqx6lN32dKh6JMYQvEt5n8jQUQWx43wdPp8PJsrg?=
 =?iso-8859-1?Q?52NDRjMWvPi+4cQ5u26LtNURZmZExbGNgwNsKrbZwp87/tqCKnI5yPmsiT?=
 =?iso-8859-1?Q?7Xjd+g6JawQiB3RXqJ5Dl/KQvlh3nWXoN92vCaFGH6HvX4sYIMfO0UPwOO?=
 =?iso-8859-1?Q?c7F7k9CvoeQsllChDLAU+TCf5pPH4Anenig6mdtz59tpC1bjntm+Kmdph/?=
 =?iso-8859-1?Q?ynmnB6bGDsNGfjcYxKEhOg7u5S5Ypk39QEKTvjXvEuyiT8XPeLVylZwAlr?=
 =?iso-8859-1?Q?GyjOh3l+N8+K14onGVCzOgV04ngD7N0+rD4kBWNMo82p3AU4cgc2x5yJ1K?=
 =?iso-8859-1?Q?GSLNjoCfDsJCE5zaPCP7ac0Qbobkd92EHsrnwiRqu+u/2ElmcvaiKgAm+r?=
 =?iso-8859-1?Q?H9bAT3GfmIPQ5OAnuNUM8V82bevaxdEkOPspzU24d5inJ+e/a+a6aDB8xt?=
 =?iso-8859-1?Q?w2XfkXrUgx9m5cDntIRN5frIl5Qzsm0xm4Z7p+Goy9vbG9aqf61mRrq91j?=
 =?iso-8859-1?Q?p1YPUfwVlI1WEfjpIVnunvZbXa9oc0QvSVcp384okPRqAjgzL0QMJ4Rv1M?=
 =?iso-8859-1?Q?rwlxfuk0hiNJBC4fhR6nAOl36AIvHxiRZgNP8UJ3pHKma3AUxRTM/+FNNw?=
 =?iso-8859-1?Q?pf46E2fTHpJklUXIYMuGB1lnOza9WzINJg0gd1XTdo8II9RNF0EidEIg1d?=
 =?iso-8859-1?Q?ZoL8r8EqRCkQNd40nBqadmYZ1SBnD0AnXIKKmgrZG+M6BpFsNthZv5ZwoG?=
 =?iso-8859-1?Q?dgzNnFavLeSTcrBDENn24ZD6fTXy494M/Bji/urLW++WPOKYAw6ionkSxn?=
 =?iso-8859-1?Q?naHTyy2kAKt9WmR3cgCyp3Q2EX/ARtBWdzoSQqp3RTosClMkWWjPKFMSze?=
 =?iso-8859-1?Q?3irGy0m6nlqfX9DhQ9x3GH89oFYGKuZ/Mu/nSZd5ERpQh52XkuIza7F2HF?=
 =?iso-8859-1?Q?3CZCp3WfylI82SrLJHgjvaOhsjN2StwNV9aSOrLoTRJVsGAHw2XhyJSHRu?=
 =?iso-8859-1?Q?3C9t1fhV/1l6lVtILr5jdpOPsZWGIS944mhNIjPC8QqGtV93Q1y+8gozJM?=
 =?iso-8859-1?Q?lSNf05HgZpjya4xqTzNncEoeoSg++IM4zqnYm4BweRsJ9qDiB0pp0mQ4xz?=
 =?iso-8859-1?Q?zdjREax2eeCxz8IObbJ7dlSfVM/2sDE+Gb9mXq098hU4OfqCcPmHEDlsGa?=
 =?iso-8859-1?Q?dI+/SSHf+/sC9hGOtspDlm1Hzpx4Rz4=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: b9df5fb6-de93-4024-f2ad-08de62762b43
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:40.4282
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: tzbzrhqxzY+EPLmK2jCadG0fRhBwUf+pSu8KsLb/yd4Lga8gjoFcUYvHz8H+l+7pMFsPUY/YopJbogvztkZN1A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Different versions of GICv4 may support different features. Record them
and provide functions to check for their availability.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3.c                  | 175 ++++++++++++++++++++-----
 xen/arch/arm/include/asm/gic.h         |   2 +
 xen/arch/arm/include/asm/gic_v3_defs.h |   9 ++
 xen/arch/arm/include/asm/vgic.h        |   9 ++
 4 files changed, 162 insertions(+), 33 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 9b8b87078b..14852d18c2 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -100,6 +100,38 @@ static struct {
=20
 static struct gic_info gicv3_info;
=20
+#ifdef CONFIG_GICV4
+/* Global state */
+static struct {
+    bool has_vlpis;
+    bool has_direct_lpi;
+    bool has_vpend_valid_dirty;
+    bool has_rvpeid;
+} gicv4 =3D { .has_vlpis =3D true, .has_direct_lpi =3D true,
+            .has_vpend_valid_dirty =3D true, .has_rvpeid =3D true, };
+
+
+bool gic_support_directLPI(void)
+{
+    return gicv4.has_direct_lpi;
+}
+
+bool gic_support_vptValidDirty(void)
+{
+    return gicv4.has_vpend_valid_dirty;
+}
+
+bool gic_has_v4_1_extension(void)
+{
+    return gicv4.has_rvpeid;
+}
+
+bool gic_is_gicv4(void)
+{
+    return gicv4.has_vlpis;
+}
+#endif
+
 /* per-cpu re-distributor base */
 static DEFINE_PER_CPU(void __iomem*, rbase);
=20
@@ -914,7 +946,8 @@ static bool gicv3_enable_lpis(void)
     return true;
 }
=20
-static int __init gicv3_populate_rdist(void)
+static int __init gic_iterate_rdists(int (*fn)(struct rdist_region *,
+                                               void __iomem *))
 {
     int i;
     uint32_t aff;
@@ -958,40 +991,16 @@ static int __init gicv3_populate_rdist(void)
=20
             if ( (typer >> 32) =3D=3D aff )
             {
+                int ret;
+
                 this_cpu(rbase) =3D ptr;
=20
-                if ( typer & GICR_TYPER_PLPIS )
-                {
-                    paddr_t rdist_addr;
-                    unsigned int procnum;
-                    int ret;
-
-                    /*
-                     * The ITS refers to redistributors either by their ph=
ysical
-                     * address or by their ID. Which one to use is an ITS
-                     * choice. So determine those two values here (which w=
e
-                     * can do only here in GICv3 code) and tell the
-                     * ITS code about it, so it can use them later to be a=
ble
-                     * to address those redistributors accordingly.
-                     */
-                    rdist_addr =3D gicv3.rdist_regions[i].base;
-                    rdist_addr +=3D ptr - gicv3.rdist_regions[i].map_base;
-                    procnum =3D (typer & GICR_TYPER_PROC_NUM_MASK);
-                    procnum >>=3D GICR_TYPER_PROC_NUM_SHIFT;
-
-                    gicv3_set_redist_address(rdist_addr, procnum);
-
-                    ret =3D gicv3_lpi_init_rdist(ptr);
-                    if ( ret && ret !=3D -ENODEV )
-                    {
-                        printk("GICv3: CPU%d: Cannot initialize LPIs: %u\n=
",
-                               smp_processor_id(), ret);
-                        break;
-                    }
-                }
-
-                printk("GICv3: CPU%d: Found redistributor in region %d @%p=
\n",
-                        smp_processor_id(), i, ptr);
+                ret =3D fn(gicv3.rdist_regions + i, ptr);
+                if ( ret )
+                    return ret;
+
+                printk("GICv3: CPU%d: Found redistributor @%p\n",
+                       smp_processor_id(), ptr);
                 return 0;
             }
=20
@@ -1010,11 +1019,107 @@ static int __init gicv3_populate_rdist(void)
         } while ( !(typer & GICR_TYPER_LAST) );
     }
=20
+    return -ENODEV;
+}
+
+static int __init __gicv3_populate_rdist(struct rdist_region *region,
+                                         void __iomem *ptr)
+{
+    uint64_t typer;
+
+    typer =3D readq_relaxed(ptr + GICR_TYPER);
+    if ( typer & GICR_TYPER_PLPIS )
+    {
+        paddr_t rdist_addr;
+        unsigned int procnum;
+        int ret;
+
+        /*
+         * The ITS refers to redistributors either by their physical
+         * address or by their ID. Which one to use is an ITS
+         * choice. So determine those two values here (which we
+         * can do only here in GICv3 code) and tell the
+         * ITS code about it, so it can use them later to be able
+         * to address those redistributors accordingly.
+         */
+        rdist_addr =3D region->base;
+        rdist_addr +=3D ptr - region->map_base;
+        procnum =3D (typer & GICR_TYPER_PROC_NUM_MASK);
+        procnum >>=3D GICR_TYPER_PROC_NUM_SHIFT;
+
+        gicv3_set_redist_address(rdist_addr, procnum);
+
+        ret =3D gicv3_lpi_init_rdist(ptr);
+        if ( ret && ret !=3D -ENODEV )
+        {
+            printk("GICv3: CPU%d: Cannot initialize LPIs: %d\n",
+                   smp_processor_id(), ret);
+            printk("%s %d\n", __func__, __LINE__);
+            return ret;
+        }
+    }
+
+    return 0;
+}
+
+static int __init gicv3_populate_rdist(void)
+{
+    int ret =3D gic_iterate_rdists(__gicv3_populate_rdist);
+    if ( ret =3D=3D 0)
+        return 0;
+
     dprintk(XENLOG_ERR, "GICv3: CPU%d: mpidr 0x%"PRIregister" has no re-di=
stributor!\n",
             smp_processor_id(), cpu_logical_map(smp_processor_id()));
+    return -ENODEV;
+}
+
+#ifdef CONFIG_GICV4
+static int __init __gicv4_update_vlpi_properties(struct rdist_region *regi=
on,
+                                                 void __iomem *ptr)
+{
+    uint64_t typer;
+
+    typer =3D readq_relaxed(ptr + GICR_TYPER);
+    gicv4.has_vlpis &=3D !!(typer & GICR_TYPER_VLPIS);
+    gicv4.has_rvpeid &=3D !!(typer & GICR_TYPER_RVPEID);
+    /* RVPEID implies some form of DirectLPI. */
+    gicv4.has_direct_lpi &=3D (!!(typer & GICR_TYPER_DirectLPIS) ||
+                             !!(typer & GICR_TYPER_RVPEID));
+    gicv4.has_vpend_valid_dirty &=3D !!(typer & GICR_TYPER_DIRTY);
+
+    /* Detect non-sensical configurations */
+    if ( gicv4.has_rvpeid && !gicv4.has_vlpis )
+    {
+        gicv4.has_direct_lpi =3D false;
+        gicv4.has_vlpis =3D false;
+        gicv4.has_rvpeid =3D false;
+    }
+
+    printk("GICv4: CPU%d: %sVLPI support, %sdirect LPI support, %sValid+Di=
rty support, %sRVPEID support\n",
+           smp_processor_id(), !!(typer & GICR_TYPER_VLPIS) ? "" : "no ",
+           (!!(typer & GICR_TYPER_DirectLPIS) ||
+            !!(typer & GICR_TYPER_RVPEID)) ? "" : "no ",
+           !!(typer & GICR_TYPER_DIRTY) ? "" : "no ",
+           !!(typer & GICR_TYPER_RVPEID) ? "" : "no ");
+
+    return 0;
+}
+
+static int __init gicv4_update_vlpi_properties(void)
+{
+    int ret =3D gic_iterate_rdists(__gicv4_update_vlpi_properties);
+
+    if ( ret =3D=3D 0 )
+        return 0;
=20
     return -ENODEV;
 }
+#else
+static int __init gicv4_update_vlpi_properties(void)
+{
+    return 0;
+}
+#endif
=20
 static int gicv3_cpu_init(void)
 {
@@ -1024,6 +1129,10 @@ static int gicv3_cpu_init(void)
     if ( gicv3_populate_rdist() )
         return -ENODEV;
=20
+    ret =3D gicv4_update_vlpi_properties();
+    if ( ret )
+        return ret;
+
     if ( gicv3_enable_redist() )
         return -ENODEV;
=20
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index 8e713aa477..afb1cc3751 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -235,6 +235,8 @@ enum gic_version {
     GIC_INVALID =3D 0,    /* the default until explicitly set up */
     GIC_V2,
     GIC_V3,
+    GIC_V4,
+    GIC_V4_1,
 };
=20
 DECLARE_PER_CPU(uint64_t, lr_mask);
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index c373b94d19..3a7d18ef59 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -93,6 +93,12 @@
=20
 #define GICD_TYPE_LPIS               (1U << 17)
=20
+#define GICD_TYPER2                  0x000c
+
+#define GICD_TYPER2_VIL              (1U << 7)
+#define GICD_TYPER2_VID              GENMASK(4, 0)
+#define GICD_TYPER2_nASSGIcap        (1U << 8)
+
 #define GICD_CTLR_RWP                (1UL << 31)
 #define GICD_CTLR_ARE_NS             (1U << 4)
 #define GICD_CTLR_ENABLE_G1A         (1U << 1)
@@ -149,7 +155,10 @@
=20
 #define GICR_TYPER_PLPIS             (1U << 0)
 #define GICR_TYPER_VLPIS             (1U << 1)
+#define GICR_TYPER_DIRTY             (1U << 2)
+#define GICR_TYPER_DirectLPIS        (1U << 3)
 #define GICR_TYPER_LAST              (1U << 4)
+#define GICR_TYPER_RVPEID            (1U << 7)
 #define GICR_TYPER_PROC_NUM_SHIFT    8
 #define GICR_TYPER_PROC_NUM_MASK     (0xffff << GICR_TYPER_PROC_NUM_SHIFT)
=20
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 360f8a968e..f12d736808 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -405,6 +405,15 @@ extern bool vgic_migrate_irq(struct vcpu *old, struct =
vcpu *new, unsigned int ir
 extern void vgic_check_inflight_irqs_pending(struct vcpu *v,
                                              unsigned int rank, uint32_t r=
);
=20
+/* GICV4 functions */
+#ifdef CONFIG_GICV4
+bool gic_support_vptValidDirty(void);
+bool gic_is_gicv4(void);
+#else
+#define gic_support_vptValidDirty() (false)
+#define gic_is_gicv4() (false)
+#endif
+
 #endif /* !CONFIG_NEW_VGIC */
=20
 /*** Common VGIC functions used by Xen arch code ****/
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:14:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:14:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218799.1527728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwZe-0002dQ-SM; Mon, 02 Feb 2026 16:14:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218799.1527728; Mon, 02 Feb 2026 16:14: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 1vmwZe-0002aF-HS; Mon, 02 Feb 2026 16:14:50 +0000
Received: by outflank-mailman (input) for mailman id 1218799;
 Mon, 02 Feb 2026 16:14: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZd-0000fY-1t
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:49 +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 49125299-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:43 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:41 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 49125299-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O7AFB2EXmZwlfkDnOEU48M0PgyHZMLikUNlBjTgX+8XxbQDGoQsw+OCPAiUGPPH97G5QhGRmCPo6v7+eEvXGREiZUbEvqYlLNfiHSIOumByvAw1gCRRirMSGofFriE1+dQSfFMBDNUxjTuyFIV67HXzy5ho03v+8Nc3Z3iJxX/MleDODTFsUWbrGIGZxcEvkL/viOmWvEiKGbCwpVGy2uvxBquIIIqHs5MhjuFAQXqC6Ocusqh278ey/Q1R4hkjOMwCCrMylYZO/zO2CHZiyLkXbpGzMrHC2CpEAr6HbZKUi0/g4lUeC5WkjOzfCYQ7KCpj1df7YVhYkDfoZ+HT+UA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Fg8OEojnUM8CObLxhY04E59bfbesTSuUDg9HarbRfsg=;
 b=oJX7evKguxWVRLj7e5JzUErHxJnnehgmFB6jI/jt6nGowYFf6RDPeDpKolVm1u7Dp1yyKIUGer2LSE6ZlvnXKT1kygzQUcj0vUbB3aTYWhrS6J63qJf9bUm1MiGvrsgh3tEjCC8jL2lYoHzYDdddXkgjNNiUkGlbRVFS3dlZU/Blez972U+WSfqu1s5lH+2Yt8ve2BD4EeVr43gEgqRSHHjwlx/VAHwW/Qg2WrBCO9ViqOZj0DYnbWHKAH4CBenafIzhp7TEVvF6e+wZB9fIpA/9zej6WwynH0AUqTghUin6f6aB2g9UMMVEWFTwYE9Ta61KDbDoEPKuXbxNJK2KwA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Fg8OEojnUM8CObLxhY04E59bfbesTSuUDg9HarbRfsg=;
 b=tRSXn26CEPpQTd7C1dNo91Bp1JzMwpXv3Udml7z/DNBgYzD9gMmG2zM8fdmW74P8mua+0LE3yLCYee0tUqY0YDsB5WPlCWJ/GvotOBrFS61Qr6pnmKGjwUxhGMsvJJyheNxqazT5uYjYpUTSuN8WmsrogTjPULxOlK0B0r+8YmePAPoTuMxMLciBLKWEw3dJDRPdiiYIJnzKr0+W1PAYYr7YwfLSw6YcHRuJE5wfrpmB0VlE7BenjQ/HnSO3g7bIe/SWW/VSHkYTf+Qy9Pbe72VTrX8Xup2Yy5zIoNF4F+l03B7VJn3p2tnOrIaKIjsT2mPXOVQb6lG2GqWfjkx9jQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 09/19] arm/its: Implement LPI invalidation
Thread-Topic: [RFC PATCH 09/19] arm/its: Implement LPI invalidation
Thread-Index: AQHclF8IgoXxoZafSki7XLKILtwKow==
Date: Mon, 2 Feb 2026 16:14:40 +0000
Message-ID:
 <60272047f4da8cb962f1bde7074992fc2053ecf3.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 5b51ea9f-7cae-4c1f-99b6-08de62762ba4
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?B9jfEjvv0u7AbFU+XA9CoA2qBOBTbqVKvCMfU9HRK/l6Zi+NpUzKKMjsWl?=
 =?iso-8859-1?Q?OwlZiXmZLKxTixwDIepYEtBy/FE5p4yzHLf9Gev7PitiI7WpwsiCJpNiAF?=
 =?iso-8859-1?Q?07fo+wr6hbhQBAXkcC+DSTT5nrurRjwZJqPzMmInbS0dSF9kDQOEeUEDFS?=
 =?iso-8859-1?Q?n19zePRZvRBHc24pt50kk4v5YC9KeMGaNsxIfbNh7PmQE+ATorDxWanHP4?=
 =?iso-8859-1?Q?/5+wrRICDfWv5YZQr2JYtPU7e4iEQ+NSdeALK566JAeASgwWyw2KjKj4PD?=
 =?iso-8859-1?Q?d4qu+BE7RA58hU4wy0lvwJvA4fo/e7+vCXNra2GgtoNgq6ioWY9FEQkHCA?=
 =?iso-8859-1?Q?G9NDj2wxyj01GmoyfBgGAt4fZGOPirbWzHlv9Q8IIFMXgKMfZGCny1VnUQ?=
 =?iso-8859-1?Q?NUFnb4FhYjUCrJL6aI+E8MlGOqYTgOdytwNTBiSKRYNlS3NLoU11d7tsvU?=
 =?iso-8859-1?Q?szxfqBpd1YpjEQo/6F90XN4ukPjH+Gme70HtipSxr0R71cuOP2HqtwuVpw?=
 =?iso-8859-1?Q?R1i0IIJZqHHYxgC0LVSQEWjmymUn5kGsYo38P1rbuvh6Jhn0GJhHxnqz1w?=
 =?iso-8859-1?Q?4fF8VmF/40WtB3ECn6XQy5hzbxmhUBSjcG5KA2u0NoOFyMa9lekP09t8IO?=
 =?iso-8859-1?Q?WC5fAg0VrKUyR9SP4XV8lZdgs/dUMK4B3VLPbPYaHoAnFA7dTw2oDeKxqz?=
 =?iso-8859-1?Q?F3MLyQxIpodrNA1MM7VCXb0Sj+XcwZjRT/iJZsf0x/bSyJ6GTdtVVRNlAb?=
 =?iso-8859-1?Q?Ii5gdaMfOdlIy9qpXv5YH0NzL9YbiZlOqQ7Cc5UZEnOKtCMGY1Ku2C8map?=
 =?iso-8859-1?Q?f2s1hmTnvw4UO1c6d5NqtLSLF78Gplgq06UU3h2ZFWtP0Dq06O7zRqzs3a?=
 =?iso-8859-1?Q?O/WmGvXgwLqSdjOrcxjnhkrWcwegwxlfW3kanR3pL4InrmaB59eC3dv1Sf?=
 =?iso-8859-1?Q?Wd0EVIYDnXAiSr6TyflgrjH/XVhmckvDt1NXdXKsC5ceLLAiFhkRTq5uXq?=
 =?iso-8859-1?Q?B3+Vxvezuuna+cFRlTECiNASnF4ShfCZdGl192SSbm6ovGdGBZvSsjfWGL?=
 =?iso-8859-1?Q?+jA6J1MfjvY0qC16Dg44I2m+7FXDsHOO4O1n/O8xt04Vxaf7LWsDS+Y6RK?=
 =?iso-8859-1?Q?OdTBK2lB8wt4z/YFwqsFZDzBnneFmwOXXYbQaossplpeZ23S5HMopKxbGg?=
 =?iso-8859-1?Q?X7pOScaCMFtjfBKYM3xojVDzKhtl7bqFaQc3tvmuSFibnmHdgj6YoGP3vB?=
 =?iso-8859-1?Q?cGh7L47Uq5r2VzjaiasTypKxjBNQEwR+qwHaRhwQhZ4Px2QJCGk2gRPYrf?=
 =?iso-8859-1?Q?+yZJbqqLeWbZ27eGZS2APWi5jh7Ro57lUX6D0qf37KrIhYx7RVXY/U0ktW?=
 =?iso-8859-1?Q?z8YG4nUlERJL8+EXMZZQrY0vo8ou08kCKjMeFkHdmkVfHBiepd0PHsIGe0?=
 =?iso-8859-1?Q?Sqki/iJGkHxQYu+vNWzRBvDRf2/gxKAMHYBde99WUKBqxw6Sk6Fh5n/0TD?=
 =?iso-8859-1?Q?E6L27wXdpdrh2PGyqbdEemJiV5HtxhGOGtSgpl8rXg4BwEwmzJ83bGFHwr?=
 =?iso-8859-1?Q?su8/KZsuwM+7PkEAVWSiKJMYvZ5ZE/ApAei4j71GXXm9Fbv/5IUH50U37s?=
 =?iso-8859-1?Q?LiH5mPFozir+1yauP9BZCQmbjXE0obo3FVRWa7p6lBvJgBXH96e/G+WGHJ?=
 =?iso-8859-1?Q?pXJd2GZdspGLBYWaT1E=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ndHFpPPUwIU/5tx3K958UkzEGfpSVHMx5ukHvb9FbDW5Q6r+pt2th7RJjw?=
 =?iso-8859-1?Q?gLTlRcDWfYorXtCdC2zSMhcHfLr0rkuIu7VV5cSjpDc8I091k5z6I7RWCl?=
 =?iso-8859-1?Q?u3Ywau+KVCehGT1odBC0gQHQS+g62q3mPs1VojE/mIl3+ba1ODmk6msshb?=
 =?iso-8859-1?Q?gmRxG/LiBYx1QkEPXh1HW0xRMyKUKZdD/a4Oq3CCv45uyz3HY270aDXwgu?=
 =?iso-8859-1?Q?a8QabV4P3cK0qtmy6PVMuGhbLyiPduPkgqPwMTLN0uGySjowTMxxtKdLrg?=
 =?iso-8859-1?Q?aFTE40ixT8f/+ZP0cbX7V4F5rwgF98IPQ+9FxZlq1QcpYBykPfmD2zpZ17?=
 =?iso-8859-1?Q?9RNZ+n6kL6iaLBoF09wAmIU/EdCJJ2OJ0wJdUJzOxksGak06+M2Eklgo5k?=
 =?iso-8859-1?Q?pyquCG8wiUMaeaqoTWOiCUyH1d5n/pv8VH6WeG2PASXUcw/z7dcNoINkjG?=
 =?iso-8859-1?Q?aEhDPyrhhMUI2RwJQk0luLArjgwuNXVKr0b5qZgKiNZ07g2h0sr1Qngqh5?=
 =?iso-8859-1?Q?S6JcYGM2JwpmqXqVb3wSGU7OdSdj6lKwd/BS10h3OdcCjT0g+PQ4FeSVz/?=
 =?iso-8859-1?Q?he5nuYRvPIBYh3EHwXFy//UK2iMfWajNg86MJt4SJkCLpDNMotQ8m1dELY?=
 =?iso-8859-1?Q?bFv1Oae37+c7PAjaGPHn2kYh9ErNLgqrmkWrHyct9ubZ/sj7hpmC7NHkDc?=
 =?iso-8859-1?Q?gnyie3Z8tz6v/SePxcwG5HvW4dD0JD0yItNFP0UFbqV00ChELFonXb5VtY?=
 =?iso-8859-1?Q?8sFFbzOgLkUUCqvCPl1oDltGXhVxEEBBTX4Gb8NsPuRbdsLOqKvsxNhUdK?=
 =?iso-8859-1?Q?SF4Yaq1v/H5zxJB/7x2gH7EGBOA+UePS0w2LsJgMhEfr4LLtzsQje8gQi6?=
 =?iso-8859-1?Q?zVW1pAWZ6ClblvmPZVNiqU2+C+b3KL3mfNEN1aYzD5Iz1trQRAeA6TITji?=
 =?iso-8859-1?Q?emKzEbDBBqT2aqXtCiB5/1ejLf48S3APcOZXvLhh4pc15p+fooRaad9NKm?=
 =?iso-8859-1?Q?02Qy4vCCFFb4awnDXKwhUBdRjhI/9vUSjXufNO2qKFbe1ByVAtW37pxb1z?=
 =?iso-8859-1?Q?AYcjSG3ziZQ7zrb/wqnwIitiDGmcqWX1OCKBCbbdx9aH+5WFqhpA+bZRDR?=
 =?iso-8859-1?Q?StN3LkanFnN9HeMgK5lnCukQ+t/+cC/rYnaDnCVbkqFEHG8KJXA8YO8opV?=
 =?iso-8859-1?Q?aAip3hj5iU8TELmvmxv7jvVd3fcpHu8z1QCcA8EcjW5JvXRsMCsADaq7IB?=
 =?iso-8859-1?Q?cgbJ+HGHCD0X6LCBQllYZWs8Xo2zenwlgNe3aY4lNkC8tQXaW5UZBoHWm0?=
 =?iso-8859-1?Q?h+p28samKifyrFxiFLqDfjvyMBtIyxlIyL0Mql5Q+dvD+71AZ4vd1filq7?=
 =?iso-8859-1?Q?iiprhttIY0W/bXQbC0YqeLTjDdMGAzOFworLW1TmPCLxdm6rBayiaT3XNs?=
 =?iso-8859-1?Q?4JpnZ0Y4bqRpJrzxi4opgDeRbAC/zqYISaxmoGQdIpHRuq/WrSxctrUYJu?=
 =?iso-8859-1?Q?9uIogiETEvILXzT8u2NJWKf3nLf2xuUMRtDBJl1KEHq/rVSIGuLGiDu4bI?=
 =?iso-8859-1?Q?QgFLAMwgr6RKcA/3lEynJ5Z2zUZcgj6mr6SyT+fFiGEe0aPQ3ynLmtbzlF?=
 =?iso-8859-1?Q?08TUmkQyHNb7tGZ6Jd2i+HPCt2a1SA59l6p4METgggei6wdSNPXzYQPfg5?=
 =?iso-8859-1?Q?XDfBFExLmeqimS26hlniEo5ipx8AGDI6ic8fy+eJbPgm1EwuJw0CMmReWV?=
 =?iso-8859-1?Q?rznTmKKNsN2oyHMRwJFE9qsOCPrAgea14oc0/9ZNedJi2XY2oLKQEtYP7u?=
 =?iso-8859-1?Q?Stkb+Hgp+siKsurMnE+nEVg+pvgdq5M=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: 5b51ea9f-7cae-4c1f-99b6-08de62762ba4
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:40.7526
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: uoPhKKZ4BWUM6fIiB/9xPnzM3sjD78IfmmIV7gf2qB/qCDZD7TRkllHOHkzWOyT4d4jryFMsq/ducCxZznQD3w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Add helpers for LPI invalidation.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-its.c             | 21 ++++++++++++++++++++-
 xen/arch/arm/gic-v4-its.c             | 22 ++++++++++++++++++++++
 xen/arch/arm/include/asm/gic_v3_its.h |  5 +++++
 3 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 25889445f5..c628959f42 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -201,7 +201,7 @@ int its_send_command(struct host_its *hw_its, const voi=
d *its_cmd)
 }
=20
 /* Wait for an ITS to finish processing all commands. */
-static int gicv3_its_wait_commands(struct host_its *hw_its)
+int gicv3_its_wait_commands(struct host_its *hw_its)
 {
     /*
      * As there could be quite a number of commands in a queue, we will
@@ -672,6 +672,25 @@ static int compare_its_guest_devices(struct its_device=
 *dev,
     return 0;
 }
=20
+int its_inv_lpi(struct host_its *its, struct its_device *dev,
+                uint32_t eventid, unsigned int cpu)
+{
+    int ret;
+
+    if ( event_is_forwarded_to_vcpu(dev, eventid) )
+        return its_send_cmd_vinv(its, dev, eventid);
+
+    ret =3D its_send_cmd_inv(its, dev->host_devid, eventid);
+    if ( ret )
+        return ret;
+
+    ret =3D its_send_cmd_sync(its, cpu);
+    if ( ret )
+        return ret;
+
+    return gicv3_its_wait_commands(its);
+}
+
 /*
  * On the host ITS @its, map @nr_events consecutive LPIs.
  * The mapping connects a device @devid and event @eventid pair to LPI @lp=
i,
diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
index 9bbd0d96b7..358d0bffb9 100644
--- a/xen/arch/arm/gic-v4-its.c
+++ b/xen/arch/arm/gic-v4-its.c
@@ -290,3 +290,25 @@ int gicv4_its_vlpi_move(struct pending_irq *pirq, stru=
ct vcpu *vcpu)
     map->vpe_idx =3D vcpu->vcpu_id;
     return gicv4_its_vlpi_map(map);
 }
+
+/*
+ * There is no real VINV command.
+ * We do a normal INV, with a VSYNC instead of a SYNC.
+ */
+int its_send_cmd_vinv(struct host_its *its, struct its_device *dev,
+                      uint32_t eventid)
+{
+    int ret;
+    struct its_vlpi_map *map =3D &dev->event_map.vlpi_maps[eventid];
+    uint16_t vpeid =3D map->vm->vpes[map->vpe_idx]->vpe_id;
+
+    ret =3D its_send_cmd_inv(its, dev->host_devid, eventid);
+    if ( ret )
+        return ret;
+
+    ret =3D its_send_cmd_vsync(its, vpeid);
+    if ( ret )
+        return ret;
+
+    return gicv3_its_wait_commands(its);
+}
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index 75c91c0426..973ca6acdd 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -194,6 +194,9 @@ int its_send_cmd_discard(struct host_its *its, struct i=
ts_device *dev,
                          uint32_t eventid);
 int its_send_cmd_inv(struct host_its *its, uint32_t deviceid, uint32_t eve=
ntid);
 int its_send_cmd_clear(struct host_its *its, uint32_t deviceid, uint32_t e=
ventid);
+int gicv3_its_wait_commands(struct host_its *hw_its);
+int its_inv_lpi(struct host_its *its, struct its_device *dev,
+                uint32_t eventid, unsigned int cpu);
 int its_send_cmd_mapti(struct host_its *its, uint32_t deviceid,
                        uint32_t eventid, uint32_t pintid, uint16_t icid);
 #ifdef CONFIG_ACPI
@@ -267,6 +270,8 @@ int gicv4_assign_guest_event(struct domain *d, paddr_t =
vdoorbell_address,
                              uint32_t vdevid, uint32_t eventid,
                              struct pending_irq *pirq);
 int gicv4_its_vlpi_move(struct pending_irq *pirq, struct vcpu *vcpu);
+int its_send_cmd_vinv(struct host_its *its, struct its_device *dev,
+                      uint32_t eventid);
 #ifndef CONFIG_GICV4
 #define event_is_forwarded_to_vcpu(dev, eventid) ((void)dev, (void)eventid=
, false)
 #else
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:17:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218867.1527747 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcB-00066G-M7; Mon, 02 Feb 2026 16:17:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218867.1527747; Mon, 02 Feb 2026 16:17:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcB-000669-He; Mon, 02 Feb 2026 16:17:27 +0000
Received: by outflank-mailman (input) for mailman id 1218867;
 Mon, 02 Feb 2026 16:17: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZn-0000fY-4N
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:59 +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 4c673a93-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:49 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI0PR03MB10299.eurprd03.prod.outlook.com
 (2603:10a6:800:202::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:14:46 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4c673a93-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=C55WifUFioBhzi7YiXT1GEsrsKjJ0uztQmXkuIELdYrKbT+qJ4Uc/sx4F7SHoMmepTHqvA3fuAPcxstxhyqrYKINQHEV7iDohWRuUptNX+dOdgBLjG2zY3mpz4KPZgp7YlrrsSDA8gDWmLYKwzT/vZwervwAp+4NxF8cM9GjDcN++eV1CJaBn+HEGYClM2nmlW14IJaoFojzRhSNSN39RkPdlECP+VQcuNVArMCTZabXCB+XY3WoOiYoaS56kfcFwf6sjTiBXx/v5XfgX97n846G9+EKaxyhxBKlxVy8SjGS0zJw2mqdFojweOG5dqKRUvTY+KooFjV/KjgOgHAkVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WXMYScmwV7lBGFpfQGDBr3UTcEynpVgBBIb7Xeh2ylc=;
 b=jz6rPNJuxV3RYh2U0DEGQKnd8pKLo7U05rlMdRzdPnuOtAAF0LTWCz7xMXF2l4yf5kCL6PK96PJ0la2RnX+/s2+B7LoTZNDN30V3WAUbHZDAQo+gwEO73WIqltZFzqYz4i2zTO0kV81ukogJetCxm7VfrTdbNw2aWw38zbgjUAQ7o9yQOPpcwstjSG+fG8gTq1c/24E7Unb1YKkxI2e+WU8k4oQZMScDV3FJGf3Rvlk5812vHIKo01rUImjbscWOp/yTYSRY6yAOAuzpBy4aCbHA19i+e1fi1D3s3AL5JVeK3z0ERTbJv1rsah2WHQYlN+ilnxWqwdsZfddd1kt3EA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WXMYScmwV7lBGFpfQGDBr3UTcEynpVgBBIb7Xeh2ylc=;
 b=n+ZXKlv+W2HmMsn1Hivw60wxQ4hixPmWJJxplMVd9icKZu8fZP8WufEd+7UUH2lDNVQW3aqNHtHlhtjm+Rubk4xgd5lb4eRQHMiNIMU0D0bsa7eGm6Wa0j+FNxHzO1q3nrNE44cRXXG0SGxg6Z8JTqBd1yTbl+q+/J6dzxqqvxyPKISbDvGRm6lOy22h/OsMnrVRyeGnlFKHhDKa8MAZ4KQHMsKW2GgL5T45lAaZXWF6+l5UsAjNrlPdT9XtUqgwiz7kbr4+hgeQGzccsLCYOah/FiQYDuzfX3G5m3GKWJxp0lViVuRMTI0/I8ULgJ2KZlWa5lkA3w1koKZ0low5lw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 17/19] arm/gicv4: Handle doorbells
Thread-Topic: [RFC PATCH 17/19] arm/gicv4: Handle doorbells
Thread-Index: AQHclF8LXR7D59Si0UektoGS0vWAtA==
Date: Mon, 2 Feb 2026 16:14:44 +0000
Message-ID:
 <f5a6642772da0736e28511ec92f71146ce443294.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|VI0PR03MB10299:EE_
x-ms-office365-filtering-correlation-id: 689dedab-d6a9-43c8-b3c0-08de62762e9a
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|13003099007|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?Q0HwBAu6soaanqE9SFUhT/r7XG5lj2R70nHR+v+i0BhKPxmKfYisGZHBmV?=
 =?iso-8859-1?Q?Em7+1Z90fEe1TV9EO8BlWal29C3fo1uKOG9O3o2MsiXbdEodsGJ6bS5+Bx?=
 =?iso-8859-1?Q?+lPPBNUZLaD1Ea4ZWM96XWD1q9rCgr088dqNpE2+OdffmfsDQWdiWJaadg?=
 =?iso-8859-1?Q?TMzF61pS9zdtltuvjbULpe/n0TNqLoVebKlCLERtoRd90e9EvDdBTRpRiW?=
 =?iso-8859-1?Q?p2dCGjaVnpvIZNKhQduS5nwb2E7IcHSE0Og1snn+D2cQKv5mI+6j/Hs/PS?=
 =?iso-8859-1?Q?GbiY7Ndh46VmrxPiYGXUxbBjyBoyNEtIMAqCf0ofEml+otvtzrPgOEN6SC?=
 =?iso-8859-1?Q?WKpC06jNTJSNtqa0A10L3xRsFTW84KENNekvtt+7aOLIwAaX7OPjRhhC3W?=
 =?iso-8859-1?Q?VxxSDx7EXaHvlq/BKqnn2VMWMFnWkFZQ1yLhCqpW6ttQIZYjRXviqYi2Q4?=
 =?iso-8859-1?Q?0YeVmshR0crzWDWzZOkDqlMEWDpUefp1D4GLYRCi+j5n6fieQHfeS/rbhi?=
 =?iso-8859-1?Q?wxbY4EUcryyNLO+cHtag46svcZh+gpU5b0E/nVEtFoURqQFKe1U4AI88Ko?=
 =?iso-8859-1?Q?Iuv56KBlcQFLutD6nR0CZjD++lWOmzeEBRHXvk6d9nTzaCO2WtSWbZNMRr?=
 =?iso-8859-1?Q?mTCj2LL6EFK9GSWRlcJFcwnqvSarh/kYKAlUqJFxk5vXu50G29K6XW90oD?=
 =?iso-8859-1?Q?18M3pMy5TR+pFJo7w3i7mFfcfSavYadKfcWrf1uZ7UPf8ha1KtgrkRZ3mN?=
 =?iso-8859-1?Q?jc8wDJmoK9mV3bWMG7Is5foxxAvwxXDx6ZK0N79HHVaLJsRFOF269dgG8A?=
 =?iso-8859-1?Q?ka9KHQx9V2dpR+rsUct7m4yTp/c9cLzb9/+m/7O5kk8h+HYx4LL9mroqw7?=
 =?iso-8859-1?Q?WX2S4fHOogTVKIp3gGavHSKvVXCFvODziQEWQAY+UkQDqOBKll6bqzwxqa?=
 =?iso-8859-1?Q?odhmvLSg/Cb4I9zYhOPNns2qj1iJl2ybHDCryVohVK7M6n/i6VZ9esKh59?=
 =?iso-8859-1?Q?dasitGD4a0Xm9NqBzQOlgYKwt2XVr6HswC9bvU5WEB9rxj6sLf7qZ7FHCc?=
 =?iso-8859-1?Q?CDb0aiKlq5AttswrAO4zx20Sc2my+YC56JKOUEynY1Cl8+lwlRMPraU7JN?=
 =?iso-8859-1?Q?w1+wzi0MGjR2sA0EIhvXhtRGRUG89M/g+HdoJsGrKCK+5BYGjUEiwlKszP?=
 =?iso-8859-1?Q?eqAGDpRsjqsFI9B5wqoQggzG7KdqXTON5yhF3mRdYZtuCvlVnXhCwjaQIT?=
 =?iso-8859-1?Q?oaBk2EO5raMPOfK85FhPDnDIS0Rw5ViREbM9qGGEKqVoNR1tIpzFdx26j1?=
 =?iso-8859-1?Q?crMpOqI2x2BfcdPbc7PmOwP4ppvhdKPXIAsfpnqu7HBw/OPx7YjiK4ypmy?=
 =?iso-8859-1?Q?6O3fYZBrE3eX88bExKe1A1vOpj39mYA1F9PaEHTpiq9M0nVv3bZc3CuglM?=
 =?iso-8859-1?Q?C2yuTvjd2L6hBHtryLQHpZAZXeF3LflqxRkh2m96Decwh8Zn04UKwuwGqp?=
 =?iso-8859-1?Q?OWy5ywQBEuS6LE8FTSAj3gZ4CtjSSduj3K+sw+vVLHkB1nxU8xyCavdZXu?=
 =?iso-8859-1?Q?Zj5kwCc3lCyJlcBKpQ75tUdl6CGSDpZZY3rlxiYm0e5JbKjPTwFmgcnzi5?=
 =?iso-8859-1?Q?kuujgZw5QLt4Odm6HVzdNFRsO1En8/9KzYwTzhlRFIduZjNwBDT1sAxAkG?=
 =?iso-8859-1?Q?SBf10z161hHwJLNM9jY=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)(13003099007)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?VBD6mLpSdM3NLqa65BSmwoc00Zaafaw75r+oTTgl7NpIzzJzAKByR7Kwff?=
 =?iso-8859-1?Q?RCEYxVYxZqzJtmnkysW/eVKuiCdXERViCBanCqnBND3qVekSSgz5FdxN+5?=
 =?iso-8859-1?Q?I/IK1dkKVd6dlJNrcFge+qUoi21kMpWoIOJ4UY2IC60DQ+j7OYNQriNhXX?=
 =?iso-8859-1?Q?4IY6nxHotM6NaQ7A6sTK4GesItSs2aZvP4wnIPCY0RjKSf7Nxd+6CnUpEP?=
 =?iso-8859-1?Q?xwFilG4PYMsprWxNxbc42imbqtcNSLvpo+GwCta6xYM0CjoPlbI19WbC3d?=
 =?iso-8859-1?Q?YhLipSnagfAOthf1WbPflxDSDfsPnws1tn7x5MpWDgqFMaHvkjX+gtxHhz?=
 =?iso-8859-1?Q?6BlLnj9Dmbr1wmPDs2SdkygAfEXez0kf1IKDF9ADBglm3xG1qBLcDP3qWj?=
 =?iso-8859-1?Q?idFZFZaV4CctMEi8nIXdooekW8mCgL90BHMGz/fRIZ3fgfazmIrZqlDqT3?=
 =?iso-8859-1?Q?exmG2YwnBpoK1DOQ1+exgmGXU2r7F470MBfR//7ZboDNV1SQ+mUDQm9pVF?=
 =?iso-8859-1?Q?2hCRyrCk87/b4iz1jLo1kCjgObQU6Z+vTCdyQewT6mxGBvTpZh/qz83D4O?=
 =?iso-8859-1?Q?zMoUdxYCkjo9XdnV3Qs1RxKOCnksZb1bA5isyavCeJlBZ7yXcPH7A5vQ0A?=
 =?iso-8859-1?Q?ziJNsxKCEby+82EHmIbLPZ58gZnMZDkpO7HhBkMvnNEe3ZKBSLnWvJB1mq?=
 =?iso-8859-1?Q?L1fcEaatFjdnOo1jzVv/O8JAkO7HPnMnjvrEVNbS0H/vJXf+A4yYE+5Ok7?=
 =?iso-8859-1?Q?14FASPmSEBQJIwy002u416zlgxlZe3kovPbZXwzXGgJ8HtEhI4yLBDIDZZ?=
 =?iso-8859-1?Q?/HwHNF7FHjUt40LmyFOjSGJzviCQV82kobYQv+CtL3J6swzp9oea+O4d7H?=
 =?iso-8859-1?Q?ah34WMgpA2pDSqPQjtCRESzw5gUiBg0M4PfKHeHme/gcClVpWpxgqUNlEa?=
 =?iso-8859-1?Q?nzhJNUEcT1yiuZ8CqSqTUlqYfxZF9BzNTTeVknLuDDPU57h32Z3SSd+WdK?=
 =?iso-8859-1?Q?FnLQBrzGewia0M8Qtga8HXtxhvG26GcEdM+7WG9DfgtvJ41+CgqLr9/4VU?=
 =?iso-8859-1?Q?u1LLy8T0mJ2b1cZOmarWdoNyYt4r+1E+/Gk5j7irNapRllVju5ufaMEONb?=
 =?iso-8859-1?Q?H49KHMvasWKbWTzgT8g28CqG8vaoLRKUUjWor7bFD+6scu2TQ7yPAxZinx?=
 =?iso-8859-1?Q?GsPQXRP3z3DHpZAVolS0shrnW2pBcmI9mjsNtIujJVIHOLaq8yj9Me2l+Y?=
 =?iso-8859-1?Q?e2PqwbHpcxeHzeyPe/5jls0NWHjC9mbK29Ylqb7RMFWTy3lgDvnqGn4yiX?=
 =?iso-8859-1?Q?BF6Rsd65tnPom14UjSPleVUCtKyD4hxCV1dKImP//XqtZJ94AzhpW/OBDw?=
 =?iso-8859-1?Q?jqZ8kFFo9cOB0khJ6vyu10cAm25oLGes9QZG3N67PbkSAnN+OOjCNXvOWb?=
 =?iso-8859-1?Q?SrWQFlYLdlBU9nnJyPn8sv+FCZolnx6fq5eaeBkdhGbe+OokNCbrPE5TGI?=
 =?iso-8859-1?Q?o1U8Q9RfrT8FEyoh7ZKE+uTeHjBd5Jr4+g56Yyut4SwBXPDNiq2vJSpDA3?=
 =?iso-8859-1?Q?WQHCc9lKgMPYRhSsZ2xrWyZKIUfxuKmhYKRte+29J9awbdZhs5BWqMvg83?=
 =?iso-8859-1?Q?cdK8GliK+xlYEv9rV+lndVYsV6fDvWstnWrrl+17vVmu7t6O5CB6F9bVGy?=
 =?iso-8859-1?Q?vmUk1bTiA58Zga+St99oCZBtyUMXJ2h+jln9M2XbM0X13xjuhq8upkgc9H?=
 =?iso-8859-1?Q?TwnwVFHc+5Q0Vzhh3Lxay/wee9vd+TmQpxcAHkvgc+tK+ta64stHsOPri0?=
 =?iso-8859-1?Q?wGrpvyvvXHtW07M/5VUg0Tl90wCqeho=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: 689dedab-d6a9-43c8-b3c0-08de62762e9a
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:44.3048
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: lb0TkOsaab7wIH+NuoEm5FC5ABMA44F0rWi0Sd6V41LsFYQb5vnirB6C3ZsjtEgf9RS6jcqApZhphSqrjhGaAQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10299

When GIC wants to inject a virtual interrupt to a VCPU that is not
currently scheduled, it sends a kick for a hypervisor to schedule it. To
receive such kicks, we need to set up a doorbell interrupt for each VPE.

Add changes necessary to allocate, mask/unmask and handle doorbell
interrupts for each VPE. When a doorbell interrupt is received, set the
pending_last flag for the corresponding VPE and kick it, so that the
hypervisor schedules the VCPU to handle pending VLPIs.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-its.c             |  13 ++-
 xen/arch/arm/gic-v3-lpi.c             |  69 ++++++++++----
 xen/arch/arm/gic-v4-its.c             | 127 ++++++++++++++++++++++++++
 xen/arch/arm/include/asm/gic_v3_its.h |   6 +-
 xen/arch/arm/vgic-v3-its.c            |  14 ++-
 5 files changed, 203 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index be840fbc8f..fa5c1eb6d1 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -1016,8 +1016,11 @@ int gicv3_its_map_guest_device(struct domain *d,
=20
     dev->guest_doorbell =3D guest_doorbell;
     dev->guest_devid =3D guest_devid;
-    dev->host_devid =3D host_devid;
-    dev->eventids =3D nr_events;
+
+    #ifdef CONFIG_GICV4
+       spin_lock_init(&dev->event_map.vlpi_lock);
+       dev->event_map.nr_lpis =3D nr_events;
+    #endif
=20
     rb_link_node(&dev->rbnode, parent, new);
     rb_insert_color(&dev->rbnode, &d->arch.vgic.its_devices);
@@ -1142,7 +1145,8 @@ int gicv3_remove_guest_event(struct domain *d, paddr_=
t vdoorbell_address,
     if ( host_lpi =3D=3D INVALID_LPI )
         return -EINVAL;
=20
-    gicv3_lpi_update_host_entry(host_lpi, d->domain_id, INVALID_LPI);
+    gicv3_lpi_update_host_entry(host_lpi, d->domain_id, INVALID_LPI,
+                                false, INVALID_VCPU_ID);
=20
     return 0;
 }
@@ -1169,7 +1173,8 @@ struct pending_irq *gicv3_assign_guest_event(struct d=
omain *d,
     if ( !pirq )
         return NULL;
=20
-    gicv3_lpi_update_host_entry(host_lpi, d->domain_id, virt_lpi);
+    gicv3_lpi_update_host_entry(host_lpi, d->domain_id, virt_lpi,
+                                false, INVALID_VCPU_ID);
=20
     return pirq;
 }
diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index 3c2649b695..37f1aa1064 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -39,7 +39,7 @@ union host_lpi {
     struct {
         uint32_t virt_lpi;
         uint16_t dom_id;
-        uint16_t pad;
+        uint16_t db_vcpu_id;
     };
 };
=20
@@ -161,24 +161,48 @@ void gicv3_do_LPI(unsigned int lpi)
      * ignore them, as they have no further state and no-one can expect
      * to see them if they have not been mapped.
      */
-    if ( hlpi.virt_lpi =3D=3D INVALID_LPI )
+    if ( hlpi.virt_lpi =3D=3D INVALID_LPI && hlpi.db_vcpu_id =3D=3D INVALI=
D_VCPU_ID )
         goto out;
=20
     d =3D rcu_lock_domain_by_id(hlpi.dom_id);
     if ( !d )
         goto out;
=20
-    /*
-     * TODO: Investigate what to do here for potential interrupt storms.
-     * As we keep all host LPIs enabled, for disabling LPIs we would need
-     * to queue a ITS host command, which we avoid so far during a guest's
-     * runtime. Also re-enabling would trigger a host command upon the
-     * guest sending a command, which could be an attack vector for
-     * hogging the host command queue.
-     * See the thread around here for some background:
-     * https://lists.xen.org/archives/html/xen-devel/2016-12/msg00003.html
-     */
-    vgic_vcpu_inject_lpi(d, hlpi.virt_lpi);
+    /* It is a doorbell interrupt. */
+    if ( hlpi.db_vcpu_id !=3D INVALID_VCPU_ID )
+    {
+#ifdef CONFIG_GICV4
+        struct vcpu *v =3D d->vcpu[hlpi.db_vcpu_id];
+
+        /* We got the message, no need to fire again */
+        its_vpe_mask_db(v->arch.vgic.its_vpe);
+
+        /*
+         * Update the pending_last flag that indicates that VLPIs are pend=
ing.
+         * And the corresponding vcpu is also kicked into action.
+         */
+        v->arch.vgic.its_vpe->pending_last =3D true;
+
+        vcpu_kick(v);
+#else
+        printk(XENLOG_WARNING
+               "Doorbell LPI is only suooprted on GICV4\n");
+#endif
+    }
+    else
+    {
+        /*
+         * TODO: Investigate what to do here for potential interrupt storm=
s.
+         * As we keep all host LPIs enabled, for disabling LPIs we would n=
eed
+         * to queue a ITS host command, which we avoid so far during a gue=
st's
+         * runtime. Also re-enabling would trigger a host command upon the
+         * guest sending a command, which could be an attack vector for
+         * hogging the host command queue.
+         * See the thread around here for some background:
+         * https://lists.xen.org/archives/html/xen-devel/2016-12/msg00003.=
html
+         */
+        vgic_vcpu_inject_lpi(d, hlpi.virt_lpi);
+    }
=20
     rcu_unlock_domain(d);
=20
@@ -187,7 +211,8 @@ out:
 }
=20
 void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
-                                 uint32_t virt_lpi)
+                                 uint32_t virt_lpi, bool is_db,
+                                 uint16_t db_vcpu_id)
 {
     union host_lpi *hlpip, hlpi;
=20
@@ -197,8 +222,16 @@ void gicv3_lpi_update_host_entry(uint32_t host_lpi, in=
t domain_id,
=20
     hlpip =3D &lpi_data.host_lpis[host_lpi / HOST_LPIS_PER_PAGE][host_lpi =
% HOST_LPIS_PER_PAGE];
=20
-    hlpi.virt_lpi =3D virt_lpi;
-    hlpi.dom_id =3D domain_id;
+    if ( !is_db )
+    {
+        hlpi.virt_lpi =3D virt_lpi;
+        hlpi.dom_id =3D domain_id;
+    }
+    else
+    {
+        hlpi.dom_id =3D domain_id;
+        hlpi.db_vcpu_id =3D db_vcpu_id;
+    }
=20
     write_u64_atomic(&hlpip->data, hlpi.data);
 }
@@ -595,6 +628,7 @@ int gicv3_allocate_host_lpi_block(struct domain *d, uin=
t32_t *first_lpi)
          */
         hlpi.virt_lpi =3D INVALID_LPI;
         hlpi.dom_id =3D d->domain_id;
+        hlpi.db_vcpu_id =3D INVALID_VCPU_ID;
         write_u64_atomic(&lpi_data.host_lpis[chunk][lpi_idx + i].data,
                          hlpi.data);
=20
@@ -602,7 +636,8 @@ int gicv3_allocate_host_lpi_block(struct domain *d, uin=
t32_t *first_lpi)
          * Enable this host LPI, so we don't have to do this during the
          * guest's runtime.
          */
-        lpi_data.lpi_property[lpi + i] |=3D LPI_PROP_ENABLED;
+        lpi_write_config(lpi_data.lpi_property, lpi + i + LPI_OFFSET, 0xff=
,
+                         LPI_PROP_ENABLED);
     }
=20
     lpi_data.next_free_lpi =3D lpi + LPI_BLOCK;
diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
index 175fda7acb..0462976b93 100644
--- a/xen/arch/arm/gic-v4-its.c
+++ b/xen/arch/arm/gic-v4-its.c
@@ -157,6 +157,9 @@ static int its_send_cmd_vmapp(struct host_its *its, str=
uct its_vpe *vpe,
     cmd[3] =3D (vpt_addr & GENMASK(51, 16)) |
              ((HOST_LPIS_NRBITS - 1) & GENMASK(4, 0));
=20
+    /* Default doorbell interrupt */
+    cmd[1] |=3D (uint64_t)vpe->vpe_db_lpi;
+
  out:
     ret =3D its_send_command(its, cmd);
=20
@@ -296,6 +299,37 @@ static int its_send_cmd_vmovp(struct its_vpe *vpe)
     return 0;
 }
=20
+
+static void its_vpe_send_inv_db(struct its_vpe *vpe)
+{
+    // struct its_device *dev =3D vpe_proxy.dev;
+    // unsigned long flags;
+
+    // spin_lock_irqsave(&vpe_proxy.lock, flags);
+    // gicv4_vpe_db_proxy_map_locked(vpe);
+    // its_send_cmd_inv(dev->hw_its, dev->host_devid, vpe->vpe_proxy_event=
);
+    // spin_unlock_irqrestore(&vpe_proxy.lock, flags);
+}
+
+static void its_vpe_inv_db(struct its_vpe *vpe)
+{
+    its_vpe_send_inv_db(vpe);
+}
+
+void its_vpe_mask_db(struct its_vpe *vpe)
+{
+    /* Only clear enable bit. */
+    lpi_write_config(lpi_data.lpi_property, vpe->vpe_db_lpi, LPI_PROP_ENAB=
LED, 0);
+    its_vpe_inv_db(vpe);
+}
+
+static void its_vpe_unmask_db(struct its_vpe *vpe)
+{
+    /* Only set enable bit. */
+    lpi_write_config(lpi_data.lpi_property, vpe->vpe_db_lpi, 0, LPI_PROP_E=
NABLED);
+    its_vpe_inv_db(vpe);
+}
+
 static void __init its_vpe_teardown(struct its_vpe *vpe)
 {
     unsigned int order;
@@ -309,6 +343,8 @@ static void __init its_vpe_teardown(struct its_vpe *vpe=
)
 int vgic_v4_its_vm_init(struct domain *d)
 {
     unsigned int nr_vcpus =3D d->max_vcpus;
+    unsigned int nr_db_lpis, nr_chunks, i =3D 0;
+    uint32_t *db_lpi_bases;
     int ret =3D -ENOMEM;
=20
     if ( !gicv3_its_host_has_its() )
@@ -326,9 +362,31 @@ int vgic_v4_its_vm_init(struct domain *d)
     d->arch.vgic.its_vm->vproptable =3D lpi_allocate_proptable();
     if ( !d->arch.vgic.its_vm->vproptable )
         goto fail_vprop;
+    /* Allocate a doorbell interrupt for each VPE. */
+    nr_db_lpis =3D d->arch.vgic.its_vm->nr_vpes;
+    nr_chunks =3D DIV_ROUND_UP(nr_db_lpis, LPI_BLOCK);
+    db_lpi_bases =3D xzalloc_array(uint32_t, nr_chunks);
+    if ( !db_lpi_bases )
+        goto fail_db_bases;
+
+    do {
+        /* Allocate doorbell interrupts in chunks of LPI_BLOCK (=3D32). */
+        ret =3D gicv3_allocate_host_lpi_block(d, &db_lpi_bases[i]);
+        if ( ret )
+            goto fail_db;
+    } while ( ++i < nr_chunks );
+
+    d->arch.vgic.its_vm->db_lpi_bases =3D db_lpi_bases;
+    d->arch.vgic.its_vm->nr_db_lpis =3D nr_db_lpis;
=20
     return 0;
=20
+fail_db:
+    while ( --i >=3D 0 )
+        gicv3_free_host_lpi_block(d->arch.vgic.its_vm->db_lpi_bases[i]);
+    xfree(db_lpi_bases);
+fail_db_bases:
+    lpi_free_proptable(d->arch.vgic.its_vm->vproptable);
 fail_vprop:
     xfree(d->arch.vgic.its_vm->vpes);
  fail_vpes:
@@ -340,8 +398,13 @@ fail_vprop:
 void vgic_v4_free_its_vm(struct domain *d)
 {
     struct its_vm *its_vm =3D d->arch.vgic.its_vm;
+    int nr_chunks =3D DIV_ROUND_UP(its_vm->nr_db_lpis, LPI_BLOCK);
     if ( its_vm->vpes )
         xfree(its_vm->vpes);
+    while ( --nr_chunks >=3D 0 )
+        gicv3_free_host_lpi_block(its_vm->db_lpi_bases[nr_chunks]);
+    if ( its_vm->db_lpi_bases )
+        xfree(its_vm->db_lpi_bases);
     if ( its_vm->vproptable )
         lpi_free_proptable(its_vm);
 }
@@ -357,14 +420,29 @@ int vgic_v4_its_vpe_init(struct vcpu *vcpu)
         return -ENOMEM;
=20
     its_vm->vpes[vcpuid] =3D vcpu->arch.vgic.its_vpe;
+    vcpu->arch.vgic.its_vpe =3D vcpu->arch.vgic.its_vpe;
+    vcpu->arch.vgic.its_vpe->vpe_db_lpi =3D its_vm->db_lpi_bases[vcpuid/32=
] + (vcpuid % 32);
+    /*
+     * Sometimes vlpi gets firstly mapped before associated vpe
+     * becoming resident, so in case missing the interrupt, we intend to
+     * enable doorbell at the initialization stage
+     */
+
     vcpu->arch.vgic.its_vpe->its_vm =3D its_vm;
=20
+    gicv3_lpi_update_host_entry(vcpu->arch.vgic.its_vpe->vpe_db_lpi,
+                                vcpu->domain->domain_id, INVALID_LPI, true=
,
+                                vcpu->vcpu_id);
+
+
     ret =3D its_vpe_init(vcpu->arch.vgic.its_vpe);
     if ( ret )
     {
         its_vpe_teardown(vcpu->arch.vgic.its_vpe);
         return ret;
     }
+    its_vpe_unmask_db(vcpu->arch.vgic.its_vpe);
+
     return 0;
 }
=20
@@ -800,6 +878,7 @@ void vgic_v4_load(struct vcpu *vcpu)
      * corresponding to our current CPU expects us here
      */
     WARN_ON(gicv4_vpe_set_affinity(vcpu));
+    its_vpe_mask_db(vpe);
     its_make_vpe_resident(vpe, vcpu->processor);
     vpe->resident =3D true;
 }
@@ -812,5 +891,53 @@ void vgic_v4_put(struct vcpu *vcpu, bool need_db)
         return;
=20
     its_make_vpe_non_resident(vpe, vcpu->processor);
+    if ( need_db )
+        /* Enable the doorbell, as the guest is going to block */
+        its_vpe_unmask_db(vpe);
     vpe->resident =3D false;
 }
+
+static int its_vlpi_set_doorbell(struct its_vlpi_map *map, bool enable)
+{
+    if (map->db_enabled =3D=3D enable)
+        return 0;
+
+    map->db_enabled =3D enable;
+
+    /*
+     * Ideally, we'd issue a VMAPTI to set the doorbell to its LPI
+     * value or to 1023, depending on the enable bit. But that
+     * would be issuing a mapping for an /existing/ DevID+EventID
+     * pair, which is UNPREDICTABLE. Instead, let's issue a VMOVI
+     * to the /same/ vPE, using this opportunity to adjust the doorbell.
+     */
+    return its_send_cmd_vmovi(map->dev->hw_its, map);
+}
+
+int its_vlpi_prop_update(struct pending_irq *pirq, uint8_t property,
+                         bool needs_inv)
+{
+    struct its_vlpi_map *map;
+    unsigned int cpu;
+    int ret;
+
+    if ( !pirq->vlpi_map )
+        return -EINVAL;
+
+    map =3D pirq->vlpi_map;
+
+    /* Cache the updated property and update the vproptable. */
+    map->properties =3D property;
+    lpi_write_config(map->vm->vproptable, pirq->irq, 0xff, property);
+
+    if ( needs_inv )
+    {
+        cpu =3D map->vm->vpes[map->vpe_idx]->col_idx;
+        ret =3D its_inv_lpi(map->dev->hw_its, map->dev, map->eventid, cpu)=
;
+        if ( ret )
+            return ret;
+    }
+
+    return its_vlpi_set_doorbell(map, property & LPI_PROP_ENABLED);
+}
+
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index f03a8fad47..dababe97cd 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -295,7 +295,9 @@ struct pending_irq *gicv3_assign_guest_event(struct dom=
ain *d,
                                              uint32_t vdevid, uint32_t eve=
ntid,
                                              uint32_t virt_lpi);
 void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
-                                 uint32_t virt_lpi);
+                                 uint32_t virt_lpi, bool is_db,
+                                 uint16_t db_vcpu_id);
+
 struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type);
 bool its_alloc_table_entry(struct its_baser *baser, uint32_t id);
 struct page_info *lpi_allocate_pendtable(void);
@@ -322,6 +324,8 @@ bool event_is_forwarded_to_vcpu(struct its_device *dev,=
 uint32_t eventid);
 void its_vpe_mask_db(struct its_vpe *vpe);
 #endif
 int gicv4_its_vlpi_unmap(struct pending_irq *pirq);
+int its_vlpi_prop_update(struct pending_irq *pirq, uint8_t property,
+                         bool needs_inv);
=20
 /* ITS quirks handling. */
 uint64_t gicv3_its_get_cacheability(void);
diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
index 94f7dd7d90..0a740ad68f 100644
--- a/xen/arch/arm/vgic-v3-its.c
+++ b/xen/arch/arm/vgic-v3-its.c
@@ -387,7 +387,7 @@ out_unlock:
  * property table and update the virtual IRQ's state in the given pending_=
irq.
  * Must be called with the respective VGIC VCPU lock held.
  */
-static int update_lpi_property(struct domain *d, struct pending_irq *p)
+int update_lpi_property(struct domain *d, struct pending_irq *p, bool need=
s_inv)
 {
     paddr_t addr;
     uint8_t property;
@@ -417,6 +417,9 @@ static int update_lpi_property(struct domain *d, struct=
 pending_irq *p)
     else
         clear_bit(GIC_IRQ_GUEST_ENABLED, &p->status);
=20
+    if ( pirq_is_tied_to_hw(p) )
+        return its_vlpi_prop_update(p, property, needs_inv);
+
     return 0;
 }
=20
@@ -430,6 +433,9 @@ static int update_lpi_property(struct domain *d, struct=
 pending_irq *p)
  */
 static void update_lpi_vgic_status(struct vcpu *v, struct pending_irq *p)
 {
+    if ( pirq_is_tied_to_hw(p) )
+        return;
+
     ASSERT(spin_is_locked(&v->arch.vgic.lock));
=20
     if ( test_bit(GIC_IRQ_GUEST_ENABLED, &p->status) )
@@ -479,7 +485,7 @@ static int its_handle_inv(struct virt_its *its, uint64_=
t *cmdptr)
     spin_lock_irqsave(&vcpu->arch.vgic.lock, flags);
=20
     /* Read the property table and update our cached status. */
-    if ( update_lpi_property(d, p) )
+    if ( update_lpi_property(d, p, true) )
         goto out_unlock;
=20
     /* Check whether the LPI needs to go on a VCPU. */
@@ -552,7 +558,7 @@ static int its_handle_invall(struct virt_its *its, uint=
64_t *cmdptr)
=20
             vlpi =3D pirqs[i]->irq;
             /* If that fails for a single LPI, carry on to handle the rest=
. */
-            err =3D update_lpi_property(its->d, pirqs[i]);
+            err =3D update_lpi_property(its->d, pirqs[i], false);
             if ( !err )
                 update_lpi_vgic_status(vcpu, pirqs[i]);
             else
@@ -785,7 +791,7 @@ static int its_handle_mapti(struct virt_its *its, uint6=
4_t *cmdptr)
      * We don't need the VGIC VCPU lock here, because the pending_irq isn'=
t
      * in the radix tree yet.
      */
-    ret =3D update_lpi_property(its->d, pirq);
+    ret =3D update_lpi_property(its->d, pirq, true);
     if ( ret )
         goto out_remove_host_entry;
=20
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:17:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:17:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218876.1527756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcQ-0006Yu-SP; Mon, 02 Feb 2026 16:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218876.1527756; Mon, 02 Feb 2026 16:17:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcQ-0006Yh-PO; Mon, 02 Feb 2026 16:17:42 +0000
Received: by outflank-mailman (input) for mailman id 1218876;
 Mon, 02 Feb 2026 16: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZq-0000fY-4k
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:15:02 +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 4d6ab7ab-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:51 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI0PR03MB10299.eurprd03.prod.outlook.com
 (2603:10a6:800:202::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:14:46 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4d6ab7ab-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cfOM6nORlUtSpw9+jJngSLCbJVV5FgN0cPOHGtUBVOvKJuBPZ69bCqg9oMuQcxclY/3/N8HRJH9Jomqq05VvFuCAaXDLHqAJfBQQFKvdAftDtHjJjyiUHHoMr5f/TW7nZDHdxuC4srhH1dY27qMc1R2P7HeZrypsT+qlZuR43l3hIsujByVH8NgBZuUlCmOLbWR39k/0SJNsXxbq05r0yvA34+fIzNSNmK7AHT78L4UirDALJEsgCtBnmAMuRbPxm/MS0AEoQWM83elly4Wbbl2BlNNabXlmmWDYLAZQW2IBYFNqAnA9OZj4ggwNJGYnAlQWUD9+tHTTrXWn4FK6LA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wmW7c/IQR/ClnIewJrc3yEUYhOdCsTt/Er9ZgkRu7zA=;
 b=GwG5nqJYOuTibCltifDbYWt8fkoJEB/aI079pKBdbG0F16ND2ttDV30StQE5tndd28JTXRNoqKDAtp6B9Zk5Vr+8RTsySuGDuxTamoudtxAojsKokUXm6ieOEGd5w9sWbox/8PUTNe2Cx2F+j6/V/qdY9NeQRZwFk3RMqJt7tJlx/G5Zlb3dYaxJx/1Fh6DcJ5Xb3m0xXH7qXh8AG69/cI72SvLNnnQqIO/KcMtkNgg5LOL6Wb3VYopFO2GZ8AujaGkSjIDNS3clg+Hm2ehpN6/lmDU2HPEsxPpiJVjm0nDWBY/Gl9cwSdKrqe5BeRSuIoNLVGnu3ZtwxeibvVclbg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wmW7c/IQR/ClnIewJrc3yEUYhOdCsTt/Er9ZgkRu7zA=;
 b=RgZSjoFXZ7JRXpnub3E/3dkR9Hnlq6mlMH9u4Udv+yjBMBYIO95o6snJ9su1lRDb8w+l+6VOm2LwkdVSUZ0Kc4Uz6R2aQ1kJf6vV/4idZwIzL7jv44+Qvlwydk3z73ZQ+Gapqt6oQagOzrQWnAH+PGdoyERI+RFc1n7jbyjnyEI/jeGusKTQ+7QjrA2Yfq7htQscjky+TuP9WaaaGqwb0JYsQGEuNNfAKS7JZxbuVjVqc1MBiRGlJeM+n7sW3Ev8f0EODy+k3XSBL6KRxQ0MDP+g3Gt1pt+XvK0Sn/2T9hVZUD5G4BY1vXaBlXMEo0Cakg/QRf1ey7eV1l7PC2tMlw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 19/19] arm/gicv4: Add GICv4 to the build system
Thread-Topic: [RFC PATCH 19/19] arm/gicv4: Add GICv4 to the build system
Thread-Index: AQHclF8L/bmHW0RbCEqNgcRSAK0edw==
Date: Mon, 2 Feb 2026 16:14:44 +0000
Message-ID:
 <df0e40200cffa20bbce9bf7af4496677cd64a636.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|VI0PR03MB10299:EE_
x-ms-office365-filtering-correlation-id: f3c0f6fc-a72e-4245-3b34-08de62762f0e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?rPiRYNveQKF3ESasEqe/3sezOFkDDikQ8NYaFW9NB9V7glQkpvFCKbYDYn?=
 =?iso-8859-1?Q?RUrPiZfbzPsEUq3rkHn+7eLAZWnykc1eLlcQ3QU+mD0FH11/UtLoC6Hsj/?=
 =?iso-8859-1?Q?ymC1CpxWiPYJf2aO/2q6G79fIMRyOscuRTal07PwK2cWAmBcAWeYTDVrXw?=
 =?iso-8859-1?Q?FLlr+n82/VIf9sohrg3P+SDgbFV+64MWh2oec0cnnm9qp1RbXvOIMLbn8P?=
 =?iso-8859-1?Q?z5dzuCrGtxZgWW7e+aP3w26wWiXn/xZ+zvjfCWnRiLPE0NylH/kg2yypbh?=
 =?iso-8859-1?Q?KqkIu4Yqrn71j2DApf5EjLMMt6Dmon1B3m4PzpYlBpoMmeMlta2MRGP+GL?=
 =?iso-8859-1?Q?DeiC6NyzF1njc281+ovhmkUCD/IXAr38S/KCf/5Vb8XJ65ErqZBBmo60Gu?=
 =?iso-8859-1?Q?om8oVrlmZ1spoDlaFUpBy43fxOHanO4hsk+kCPlAkb7ajO0YUtk347ad03?=
 =?iso-8859-1?Q?F2lZomhBGmN+DmNp7gU71D6beQ8SrDHe35cOrVrkqT2PPIoW858HartblL?=
 =?iso-8859-1?Q?V3D8/prlcNP/57Lg2ITZSNmVTClyX2RmHtIwKm172O0Pc0FVpe2yNsEx9A?=
 =?iso-8859-1?Q?ZKcpRQOfEC+lZrrL3iBXbbuPvHo85DLAWVh1d1GeaapLmVrpcMIjMKO5tZ?=
 =?iso-8859-1?Q?yFnNlj5nbXQLpbGBYGiqYgzTXegr2G40a2cGidAz4YUzG1W+CBpQt8Gfwp?=
 =?iso-8859-1?Q?Akdx2ImJcqxs69dpzyPkCgfmAqCtcjSDTEMwwwzbD1Z5K01V7jGimifin6?=
 =?iso-8859-1?Q?2UHOaeiYXyh0LFN/oac2Q1cPd/cbRHPTSNdCt+FbVd7DgGd9hrQon5MOUw?=
 =?iso-8859-1?Q?Wzlwhp6BP5X7rItjGzznCOz3MIBdjPaNCJ+HdaNw9WCEoJow1jTExPiQq3?=
 =?iso-8859-1?Q?TqSh+et+rh1jg2hQwNdxdBehr+hx3o/Tb+6qXWADtW8SMIf6NYigxxpg+J?=
 =?iso-8859-1?Q?M04hTJdNDqkMQWndRNikallNfjdG+62iLjuM66IBPxyKnueEOIjMaRTSUe?=
 =?iso-8859-1?Q?71X3aQfiAGJ5jYhPR4HAenkLGaz1JFSl8r0QEIWu9ixx/H+MEz6GYzxxtJ?=
 =?iso-8859-1?Q?v008lfB3Q1aS16mALtZ3bpsll02EtF/ZghcB6iBal4Nki22ugYEp0f/72P?=
 =?iso-8859-1?Q?vIj+9CqfEhs9MeHqsOIZLkWZsqCUA0LcAG+pkqWRAiSw6RUFdE4UVrtfk9?=
 =?iso-8859-1?Q?RRVEXr4vD2rJO9gnqDMwxpTzALky6Ok6PGt4CsrGEEHkuYpd8BSiTbMY3F?=
 =?iso-8859-1?Q?MBUh8Q41vP4FNwle3TBOll0vAVA38Z+dsKPKk3Toima5kiVrMx0lgRhcEf?=
 =?iso-8859-1?Q?JHMugmLVyDQ2W4iiqDTquZTowqZRvo6cjxlWt6tprxkkIIHQ6v11eJYXHo?=
 =?iso-8859-1?Q?wzaURfNClrJeW0rL0bOAOVPP3K4LE1qrxrvEKw/jJu5o/ycBetapzf5DiL?=
 =?iso-8859-1?Q?YwT2fbHEQczBKEojT9vfMNMXVWhip6abCtccNaJ4H75Wt5Pa3ssRkks3oA?=
 =?iso-8859-1?Q?xjpBxbare0P30qUnkc3HMd70ZG4uUblgBkMzgiq0s04uagLu3bJDzdReXW?=
 =?iso-8859-1?Q?NWbmQ+03eBR+f5bVzAsTFypsFa/hsvGRW5BWMIUPQ5UnLXJnsopPTGw/we?=
 =?iso-8859-1?Q?wRSImBsbEVKJwHc/q/aCIMBpYGF4Y3ND/TNpwnLviq9uHkRheAzARIkyD+?=
 =?iso-8859-1?Q?ePcawAb/+nghZMaKde4=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)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?tAkYogTjQfFR0L8mwsSwWQwPo3ebftneyeraqoGD/Zh5rXT4PX2Q/hTd1o?=
 =?iso-8859-1?Q?PzUDyVClMXbxSH+8jyTogCivOrCRQ8qdIY7py/Rimdr1ET10h6QRrztITW?=
 =?iso-8859-1?Q?4G835li6VrITVE5gIsouhy73EfLU8DdS81Uunb7mixPIeBaO1oN8JiZ7pY?=
 =?iso-8859-1?Q?G2g9xU09kylXUGLy3l8pnATUTidldAWtvkQIefII+4owfL74M29Cl3LcJs?=
 =?iso-8859-1?Q?Uh4KQKHuE6/c1IUC+atVg7ymJ04Zp9bU6Hlr+ROLyK7MLUEQIMQG5asjTM?=
 =?iso-8859-1?Q?Fyji77WapCP7lHa2KWsHc18qXj9R9t6UHXtILRF+bp/yHCowMw4jePw+YP?=
 =?iso-8859-1?Q?un/qOkmRSv3RnBCHYiZag8vo171aB1D+1GtZsPxf+Hd2p1j/zqq+6v/OaR?=
 =?iso-8859-1?Q?wib8+ciqLYqaBKSS8hPwPCvki6CNODNdi2dS1WlayIL1KJJa+ZwFwXIlHU?=
 =?iso-8859-1?Q?zCWoCQA/FJPgsI4JdkuV75TWL1dbI1AFa8U7dkzawWyA5KqEpFxcpaRg87?=
 =?iso-8859-1?Q?+JsZfm7xPRIpgueUinWlvWLgF+6lKtLSw08vxIj6x0wwOiQY77vugsw4BW?=
 =?iso-8859-1?Q?L3VXmYb3idcZsnWDhSlTZ4Yk0+4yC4pxbQh7wq/FC9VXfNX0rCGSMDa7/D?=
 =?iso-8859-1?Q?sqZXTzGHfAHioFCyHrxoY/QuyEw1WgD9mnk8ps69r1nZzVzf3Ayraf6YpZ?=
 =?iso-8859-1?Q?1q7pB5owtDTO2aTBzjqHNIU6X7k/jqvMK3X08AovFRdK2Y6RmY1kWyX8pc?=
 =?iso-8859-1?Q?/iWLqj+O1XMxxMC/rCOcVgmlIf45pjitAFca6C0zoO8YjoeR2G5HncHhOZ?=
 =?iso-8859-1?Q?9OQO48cLTHxByjSS8hWMLpIOKPxmczgPM25KltD+JCpUISEaMd/6KZ1eUA?=
 =?iso-8859-1?Q?AdtfvqBZW+JQwV82F6LVsmILPwfR80kP2I8X6m9uJjKwbte7P2zx+h85M2?=
 =?iso-8859-1?Q?Hp/SRG5YH8ATWtf8yWzLlE6oDi9miyFJQ0tbdj+K4p032yhxllMWATafHG?=
 =?iso-8859-1?Q?UCqs4cdZeMVnB8PqheYiwfHvsmJy8v0mMXbFi8muIPoUuUcHiGeobC54V8?=
 =?iso-8859-1?Q?0QH9PGRz/WHoRF8bMhKKc7pfkzto//UuU3nf3NtXyXck4vdlmr7KLNwt+S?=
 =?iso-8859-1?Q?L+99LjlWexKBwqoPDZG58F/gOdGSdkYqnNe6ub1g+jvtC4VvL8TtG3t1hV?=
 =?iso-8859-1?Q?z0o+3zZ0hC0UCvkoubHUc/ImepEYh53MwsaETLvwPYgiRXTAG3gPTOcAFD?=
 =?iso-8859-1?Q?CSCj16c/D+nyXtlwTGkNVaR0NKtiJ//JItXvmP+m3eQMtc1NnwNPVSvVdr?=
 =?iso-8859-1?Q?tkxDhxwmzbJBMzcyMftMwj8Ubbww4rlfgP/KQOIkmbl46wfNzqEE9hA2AG?=
 =?iso-8859-1?Q?2+OHjbN1UJHFhURF2GFe0yflVY5OTZSTz4vmZiwLcjZqlg9QK2tj9eQFcH?=
 =?iso-8859-1?Q?KtmnZzwkjuv9F96mv5HdLl899w4DPSb15V4pFlT02c3SzaR7WxuOcHWl0U?=
 =?iso-8859-1?Q?lQa+giVH/6B6MvdjO0N8fpV3ACGayXDRF5NA4LQoo0Z+MUGPK1+1NVXY96?=
 =?iso-8859-1?Q?b1Q3ZoMuS3K0xcTWGOi0tA2dPi5vkFX24HgGiOEiz1LCUFLOmnxmkPZkVt?=
 =?iso-8859-1?Q?qBfHiscS0nHkyrhi8y80CZOLvnh3uWYKZpz7VghXSenNdvYzs7//DCXkux?=
 =?iso-8859-1?Q?+mS1a5P/x6BAMq1hygS2GKbItlIqKO79C+UzfsAL3E+qGfCTOEQl1Sg4Lr?=
 =?iso-8859-1?Q?/WtMdbRdRf69mm/P7Hp6u+YFzWXSN+YcMYIHysAs3tl1PYSkAEWaYbcYkK?=
 =?iso-8859-1?Q?mQQ7ETzJ+EBsn/W7p0JhAuPK9XU4R5o=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: f3c0f6fc-a72e-4245-3b34-08de62762f0e
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:44.8887
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: f+ZRkKvND7SiYOrGPOA4baYHeQjxk7XhpEsnLv7aE0UOaW9gLWy+6mqpHhhu/q/uxweyuNYPT8HjvI2FEoNtgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10299

Add a config option to enable GICv4 support and include the
corresponding source file in the build system.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/Kconfig  | 6 ++++++
 xen/arch/arm/Makefile | 1 +
 2 files changed, 7 insertions(+)

diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 442d353b43..c18eca9f9a 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -255,6 +255,12 @@ config ARM64_BTI
 	  Branch Target Identification support.
 	  This feature is not supported in Xen.
=20
+config GICV4
+	bool "GICv4 driver"
+	depends on GICV3 && HAS_ITS
+	help
+	  Driver for ARM Generic Interrupt Controller v4 extension.
+
 source "arch/arm/tee/Kconfig"
=20
 config PARTIAL_EMULATION
diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 95bc7ad25e..8569df571b 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -27,6 +27,7 @@ obj-y +=3D gic.o
 obj-$(CONFIG_GICV2) +=3D gic-v2.o
 obj-$(CONFIG_GICV3) +=3D gic-v3.o
 obj-$(CONFIG_HAS_ITS) +=3D gic-v3-its.o
+obj-$(CONFIG_GICV4) +=3D gic-v4-its.o
 obj-$(CONFIG_HAS_ITS) +=3D gic-v3-lpi.o
 obj-y +=3D guestcopy.o
 obj-y +=3D guest_atomics.o
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:17:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:17:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218877.1527761 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcR-0006cG-6I; Mon, 02 Feb 2026 16:17:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218877.1527761; Mon, 02 Feb 2026 16: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 1vmwcR-0006bo-1A; Mon, 02 Feb 2026 16:17:43 +0000
Received: by outflank-mailman (input) for mailman id 1218877;
 Mon, 02 Feb 2026 16: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZi-0000fY-2q
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:54 +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 4b61fbbc-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:47 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI0PR03MB10299.eurprd03.prod.outlook.com
 (2603:10a6:800:202::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:14: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%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4b61fbbc-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G6nuLztQ/wdM36eWAmOnG1il8adpcVEBSaTxxCyQPXRPvvw3S/Rma870p33t8xzNZ74XazSDMObLjDatNjuSKkWCCGDcntzYLpPN2Lf1Hqa0NQEo/p7pRKvGB0kMp4qdv3SStlNkkzN8lfABg4BWN43AXeWy2toarZSw5aEy+sXbwKCWaUhMKK1m3rfnD7x2/UmBw+4KSk0A6fsFdL2o1sWSPvGlrvRfSr30kas0Gf5tBxaJ2jWTDUflSEG5kcC4f31n3+mFONtGjzelGnQz/vqoIqEqbDK+Wtl84zBRVQhv8E9OWnZxSuzfItQ84vq5EMlAi3RggyUL4Sp5uLn2IQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WRSDgXVxXnkwAo7J3b+c0zIiiSWvTsWTE54wMalFVxM=;
 b=hRmt9VygD8ZUhkssAqlvZWTT3Gb3HQGSXL1xZYeB4eVQqoZHrP9OOGsW8GsIZLb9XC/TOIXwtxRxq+4JNse06TDVPsdqqjRhwTxUIEEC6jEgEI3PCm6GkzviFcNXHbnzCE/Ha7lg5XTqUF2bM90AGnEvuZBW4/AT792IRHhd0gerBfG8IPVX0HoU8w0QtFHSvIKgr6abxEwDMjQTzq09ArJ2yRUoIYJiGwVMriAUi5Vptdh15nIQ5WW7p6GQMuxB3e6BmEBK+OBS0X5xfHGOQu+TzsQlg6kz95aAx3y0YTjCIChERsUzpXqeyQYTBW0s5eMx8KJ9t1GPak3cVACaBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WRSDgXVxXnkwAo7J3b+c0zIiiSWvTsWTE54wMalFVxM=;
 b=Dw6bAghNE+oFGhCYbxVLDwQMODjzMU+o9er5AGY5zKbsWFvhrvAaxmvoQzOlePla9UrVWbLUR+oBM7yZJ3+0BZpjUVdVUH1P/J71leS2mqzfRAO164iPEUZlQjoA2PHryWXR4ClZNkjOAHaTQiJRrWMjHzQS+RypuPqMIEOxeYl7Ybu3IZxBtoLjN1dxB9PKMquXkQ/nnltB0DghLPhIyXNhlzGySTw0l5c0IQXpAPmrIHzVkDwu3rdAEowra6BAtXAt3F88jr01QPTMdd9MoRiiial6b5NwRzikA6kcQ3HMjA+Py1XvzEc/RCXDwP+Z0FmQAEmYjAUvFZjobJPRVg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 14/19] arm/its: VPE affinity changes
Thread-Topic: [RFC PATCH 14/19] arm/its: VPE affinity changes
Thread-Index: AQHclF8KLzy5RNi6mUqjbCAyuDg4TA==
Date: Mon, 2 Feb 2026 16:14:43 +0000
Message-ID:
 <7cddaf16eb840dbd1480d7a1d6ddb0cbf0357113.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|VI0PR03MB10299:EE_
x-ms-office365-filtering-correlation-id: 54576a18-9c90-4227-e258-08de62762d49
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?4jFWzzG0XDEZ+DEq5yoI+gLIV7U6cFLuvvdFrQUL9U4rxzpgJhyfvaTAtH?=
 =?iso-8859-1?Q?a+v5ZdCmGPG9Qp1jpfGXsYDTjiFoZN0bCaXE8N7nVqqvapQmwanE4fi6Yl?=
 =?iso-8859-1?Q?Gh1dtgqloS16YyHk2u7UtLkU+fvMQATjJgDvS3LFg73VIV9dNbq+gsCP29?=
 =?iso-8859-1?Q?kqrqW6JxAupGkYX6c0ILEbwHN/f4lI3vr+tWPu9IvGm0Czn9ehkJ5ErdrU?=
 =?iso-8859-1?Q?w1390xnbDNHBGjeX2dQbmBFx1T55tpgY1EYOzw9sfw5YqVKufbiW7k4L7G?=
 =?iso-8859-1?Q?ypdONFT/dag0p2osrqebcelMj77OOCAnT60/0DWFU1TQ9BgYujvKd5FU4l?=
 =?iso-8859-1?Q?kgisyKCqu0NrX0HJm8Nye97Kqq2I677/dagX5yM9LtY4N9yHkwAFZuxKz2?=
 =?iso-8859-1?Q?pRpVr9bOUgbkV+MEeMR875LI/dlZIRvWWgif1LAnL5rPB/TURdAOr0qgxE?=
 =?iso-8859-1?Q?C1p3znSHhIWwphrWzHzdSZXD8wmYSlNdeUYrdSHbMG2GybyGmp39sFfMrn?=
 =?iso-8859-1?Q?3U5AngpB3WGOtZ4VrN3HtVUPRhWhyCv7bUPcHtmdKXEi7Ihiyiyel9c0Rm?=
 =?iso-8859-1?Q?XGrRACSxRGIm2s4XdBIKncw65+r+JFz9hpICTjULTB7N5H0W0tKv45XeRi?=
 =?iso-8859-1?Q?2TwO2yTRLXti3xV/GdWT3COV9R7koxbkt8iGpDZqmrQMQjcI7qN3Rz9TB3?=
 =?iso-8859-1?Q?sVp9ioAu8CKSN7Q2Sb4hjNkyw/ClOrCpgZcW//4yBgYijY1m4a9VISTNxI?=
 =?iso-8859-1?Q?IHE9wl/7EEeuL7stGN5kD/QVW2j3RtZq7OvSwToEsj4KPrbxnfQjqUEeeg?=
 =?iso-8859-1?Q?k3ILBWo4Dg6sQ6tySRDJwTgCztPlRbiZKVXNI48BczpHGVh/4TIHPRN19x?=
 =?iso-8859-1?Q?cCIRS8vlTAkGkiB2USvmQcX9TKqX+BusSWXrOnShojfvfPtu0dZzLN4AnR?=
 =?iso-8859-1?Q?l+vSNSbTsVFAkIyBF51Ez4Rs0KIy2FF7VcT4VVEffkeZKgiP/YrUw48jF0?=
 =?iso-8859-1?Q?LcmQGpNkZM01blSH0z+7WAh2OJbnKTc4/KtRnLwW0tSqhTE92G30Whq4QU?=
 =?iso-8859-1?Q?NbGJZye5ArrFOMytHMV9l/KXZKMzkq0u0E07stK7A1BoSd9nSFpGEEQ/ei?=
 =?iso-8859-1?Q?qd2S/bx0JrDE/Prpp0po7b8TG+bw/OSBgmYjirEPrF1ulrM/iWR6+7w5e0?=
 =?iso-8859-1?Q?0OemqG8cU3j/PRgBhs87w3K3j3lD+IZLIigJNDyGdmawruxgspcjbD/rzt?=
 =?iso-8859-1?Q?PM04I+RY/JGCj7b8+wZy5i27PPtcx0WGlKeHI6PhQIznkRFls3EbnyeUA4?=
 =?iso-8859-1?Q?+wlx70JVMJyNPGawknJj9fOH4EUDrS2KCjaDDSoTozbG6HOdN/XRD25jES?=
 =?iso-8859-1?Q?O6cC/CfuV5vMYVFszYMSCj7S6UJzMlerlY7wTLZwPmsRhDD9XFTghKlK5M?=
 =?iso-8859-1?Q?7ZuN4QaqzypYit+AiU2u8f3jJoC8iJKf5sei1J3MJbm6ndRlhaX2URgCuI?=
 =?iso-8859-1?Q?LgibsW+9iuHDvIp0LLaDdJM+6W4BTxQ8SlrRq7dAM9NxboBLIXMM/yx0nI?=
 =?iso-8859-1?Q?ugji5M05LojtoU/YZq1ZVBhHqCVHYr2JmVOYuS6aOLhsGP06sr71sbZQ6Z?=
 =?iso-8859-1?Q?aaLcFc8JYRT/k5nKM86tNPyUXHoSLxxpRS6phaijE1LL+sKQsqzD8jcqjH?=
 =?iso-8859-1?Q?8dGb5rzv3dbDFXg5BNQ=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)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?DRWdAeMp/ZkQscPQ7aTMo3M4jqu95vhwagDWLgKa1oO2jZ9gzZrEV4b10+?=
 =?iso-8859-1?Q?KTBUL+J6a/e7Pqsul2EZ/O3o+bUkSTiuJQkYedJOSxzGvJ9O6pilcOSgI1?=
 =?iso-8859-1?Q?mSKyX+sryegL332BIpcrjS5HE5Sts9nK1+wq31Do2YK1XrUSAtk+M3HYg9?=
 =?iso-8859-1?Q?Mrpnh/gviiCmtG7QIdtwNj6eKG4QjrAdNW45x87TcjL2l0WtWu5+dAf1fu?=
 =?iso-8859-1?Q?eI3VR0vG+2CfI43tLqbfiEXgQtfrY81LWBAAPAFH14f9v4Sjw/ae30jD2N?=
 =?iso-8859-1?Q?wZi2dwQVHjh9WjKHRI7ApHmKsluu6eXSCArP+irjVKRtcPDy13M4r9wifG?=
 =?iso-8859-1?Q?FVJnqDvTpoc7IWqnRE6vb7AHy+YkMwFRt1v8ids69smAbwGh6ktH1bBBsX?=
 =?iso-8859-1?Q?vG0O5lhr1kg3G3MiNcHW4u2jpw8kg07rdz55jWza6ssi16GitC/If8NdXq?=
 =?iso-8859-1?Q?6f3DIK6H9H/oqv8XXIcQjyvYucMX7klAa0C0CgB8LQPtHkJAwyepfuI028?=
 =?iso-8859-1?Q?KHzsInpqvtynFhiz+PmRJiPCPhNHCh30s0blp7O46h+Ujb6YLe5mW3VIAI?=
 =?iso-8859-1?Q?S8ngKN1gbvpdiuDglyG7jDJlJtCBKGVq1bIbsh4PiF2qyflCbPrLYlQyOY?=
 =?iso-8859-1?Q?jQjiwciwVDc7F7abNkLzgF9BK2rdJxm7UkYMAb5g1OU3rxKV/qscQQPqmm?=
 =?iso-8859-1?Q?ZwkthovFFkeqNyBBYzI+W2RRv9IT++jTW9EiGTcmY+liSTWYSqlKSVa3db?=
 =?iso-8859-1?Q?P1IZ5S/bqrGGv+UGjcvwC9Ulac1sPhrUxg5r7Lzm3WnLkjU1L7HPRbMuc4?=
 =?iso-8859-1?Q?tfriq7isKRj0RIk76XrXCFdYmbszLDNRFV6B/LEDhZmTBtaCome2bdvg3+?=
 =?iso-8859-1?Q?9nGoAFtNgdLiD48suTk7w2/RjJVH5ZsB55cgA1snSi2Hm7bksaPpcYtk6j?=
 =?iso-8859-1?Q?fDD8WIthBtU1QfDqHqhE8oQZcHKdcV5vukMsgYhKnl7bkSPbwImsXzWuB1?=
 =?iso-8859-1?Q?m/blNKmuxyL5Zf2bGXXuQ0hx8TSzAUoxP7v74Os1ZNJtiJeWnajGJ4wCcm?=
 =?iso-8859-1?Q?C1SntpcWTou94TXb0/ablrIaoEO9uJwDFajtzup/yRqvIN1fgLPV319Hz4?=
 =?iso-8859-1?Q?GAf95Jw7iYjyJp7jLNtgNNVP31zNgQi4s+0hYAv0CX0m9T8Bph3OQl+k7+?=
 =?iso-8859-1?Q?rymgg92QGfvo0KSZ6PCGAAXdpK+sAvaZW3qWlbJw1RElx6K+y5xFhYHvCk?=
 =?iso-8859-1?Q?BiiYnNw/IJDaE3I/Vtv1n+EQLKEoRVaMszlWfwuFakG7qehEP62i2aPmDM?=
 =?iso-8859-1?Q?HBGqkr3lfiKLDZLG1VHx3EE0pySP8b+s5iIzNalGF2d5Ik2iW9t/Y3rRH4?=
 =?iso-8859-1?Q?3QC+rS8kjID6697AAv6huxM3Y+fFhHwuixyPIjLpNv8OvpA4oaK/eXMX2e?=
 =?iso-8859-1?Q?Zz8rsHPq37kxLK06XYJy8bGhclKBfnK+BvldLxV/iZkvDfkjGghJSXNMEl?=
 =?iso-8859-1?Q?ZBUTsCnykc/epBuXR0ozg31yD25DfTsk9afX7UvkKv1vnw+olTR4yc4j8P?=
 =?iso-8859-1?Q?/WP1mEkgWAEQ4Ny0SiXar8weImY/NamjHF+JTtSybkwHm5Rv82UzF8zose?=
 =?iso-8859-1?Q?3NMRluuwPDpfDw4xaA86AwlwD+BpGheHz6g0AUgB/fB4kLE/mGGOQPdD/3?=
 =?iso-8859-1?Q?Vi6utzMnuGptoqMXuM4FLDISe3LI4aJiTsJy1hdRs+JdoXddn8RNih+7tu?=
 =?iso-8859-1?Q?0uwxOqPDXOAD/BcLgO7CTSaN6/IPFD/ke7tvwG+QwuJWmGXrZC56X9iWRt?=
 =?iso-8859-1?Q?aaGZStZ13/T4YXE4CZunPp0PAWNXNyA=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: 54576a18-9c90-4227-e258-08de62762d49
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:43.0668
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Ha2n/UlX+/AS/iMDNbdDPWxS8nRRupBq2fRLIvVcz25V9gg0he+XVGb44rG1omzQfGJCJ9poz6i0Re9uBlBnSg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10299

When a VCPU is migrated to another PCPU, its VPE affinity must be
updated. Hook into VPE scheduling to ensure that the VPE to be scheduled
is located on the correct PCPU, if not, move it with VMOVP command.

VMOVP needs to be issued on all ITSes in the system, and in the same
order, unlsess single VMOVP capable ITS is used.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-its.c             |  55 ++++++++++++++
 xen/arch/arm/gic-v4-its.c             | 105 ++++++++++++++++++++++++++
 xen/arch/arm/include/asm/gic_v3_its.h |  12 +++
 3 files changed, 172 insertions(+)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index fb1d2709be..be840fbc8f 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -31,6 +31,8 @@
 LIST_HEAD(host_its_list);
=20
=20
+unsigned long its_list_map;
+
 unsigned int nvpeid =3D 16;
=20
 /*
@@ -612,10 +614,47 @@ static int gicv3_disable_its(struct host_its *hw_its)
     return -ETIMEDOUT;
 }
=20
+static int __init its_compute_its_list_map(struct host_its *hw_its)
+{
+    int its_number;
+    uint32_t ctlr;
+
+    its_number =3D find_first_zero_bit(&its_list_map, GICv4_ITS_LIST_MAX);
+    if ( its_number >=3D GICv4_ITS_LIST_MAX )
+    {
+        printk(XENLOG_ERR
+               "ITS@%lx: No ITSList entry available!\n", hw_its->addr);
+        return -EINVAL;
+    }
+
+    ctlr =3D readl_relaxed(hw_its->its_base + GITS_CTLR);
+    ctlr &=3D ~GITS_CTLR_ITS_NUMBER;
+    ctlr |=3D its_number << GITS_CTLR_ITS_NUMBER_SHIFT;
+    writel_relaxed(ctlr, hw_its->its_base + GITS_CTLR);
+    ctlr =3D readl_relaxed(hw_its->its_base + GITS_CTLR);
+    if ( (ctlr & GITS_CTLR_ITS_NUMBER) !=3D
+         (its_number << GITS_CTLR_ITS_NUMBER_SHIFT) )
+    {
+        its_number =3D ctlr & GITS_CTLR_ITS_NUMBER;
+        its_number >>=3D GITS_CTLR_ITS_NUMBER_SHIFT;
+    }
+
+    if ( test_and_set_bit(its_number, &its_list_map) )
+    {
+        printk(XENLOG_ERR
+               "ITS@%lx: Duplicate ITSList entry %d\n",
+               hw_its->addr, its_number);
+        return -EINVAL;
+    }
+
+    return its_number;
+}
+
 static int gicv3_its_init_single_its(struct host_its *hw_its)
 {
     uint64_t reg;
     int i, ret;
+    int its_number;
=20
     hw_its->its_base =3D ioremap_nocache(hw_its->addr, hw_its->size);
     if ( !hw_its->its_base )
@@ -633,6 +672,22 @@ static int gicv3_its_init_single_its(struct host_its *=
hw_its)
     hw_its->itte_size =3D GITS_TYPER_ITT_SIZE(reg);
     if ( reg & GITS_TYPER_PTA )
         hw_its->flags |=3D HOST_ITS_USES_PTA;
+    hw_its->is_v4 =3D reg & GITS_TYPER_VLPIS;
+    if ( hw_its->is_v4 )
+    {
+        if ( !(reg & GITS_TYPER_VMOVP) )
+        {
+            its_number =3D its_compute_its_list_map(hw_its);
+            if ( its_number < 0 )
+                return its_number;
+            dprintk(XENLOG_INFO,
+                    "ITS@%lx: Using ITS number %d\n",
+                    hw_its->addr, its_number);
+        }
+        else
+            dprintk(XENLOG_INFO,
+                    "ITS@%lx: Single VMOVP capable\n", hw_its->addr);
+    }
     spin_lock_init(&hw_its->cmd_lock);
=20
     for ( i =3D 0; i < GITS_BASER_NR_REGS; i++ )
diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
index 6a550a65b2..175fda7acb 100644
--- a/xen/arch/arm/gic-v4-its.c
+++ b/xen/arch/arm/gic-v4-its.c
@@ -36,6 +36,9 @@ static unsigned long *vpeid_mask;
=20
 static spinlock_t vpeid_alloc_lock =3D SPIN_LOCK_UNLOCKED;
=20
+static uint16_t vmovp_seq_num;
+static spinlock_t vmovp_lock =3D SPIN_LOCK_UNLOCKED;
+
 void __init gicv4_its_vpeid_allocator_init(void)
 {
     /* Allocate space for vpeid_mask based on MAX_VPEID */
@@ -242,6 +245,57 @@ static int __init its_vpe_init(struct its_vpe *vpe)
     return rc;
 }
=20
+static int its_send_cmd_vmovp(struct its_vpe *vpe)
+{
+    uint16_t vpeid =3D vpe->vpe_id;
+    int ret;
+    struct host_its *hw_its;
+
+    if ( !its_list_map )
+    {
+        uint64_t cmd[4];
+
+        hw_its =3D list_first_entry(&host_its_list, struct host_its, entry=
);
+        cmd[0] =3D GITS_CMD_VMOVP;
+        cmd[1] =3D (uint64_t)vpeid << 32;
+        cmd[2] =3D encode_rdbase(hw_its, vpe->col_idx, 0x0);
+        cmd[3] =3D 0x00;
+
+        return its_send_command(hw_its, cmd);
+    }
+
+    /*
+     * If using the its_list "feature", we need to make sure that all ITSs
+     * receive all VMOVP commands in the same order. The only way
+     * to guarantee this is to make vmovp a serialization point.
+     */
+    spin_lock(&vmovp_lock);
+
+    vmovp_seq_num++;
+
+    /* Emit VMOVPs */
+    list_for_each_entry(hw_its, &host_its_list, entry)
+    {
+        uint64_t cmd[4];
+
+        cmd[0] =3D GITS_CMD_VMOVP | ((uint64_t)vmovp_seq_num << 32);
+        cmd[1] =3D its_list_map | ((uint64_t)vpeid << 32);
+        cmd[2] =3D encode_rdbase(hw_its, vpe->col_idx, 0x0);
+        cmd[3] =3D 0x00;
+
+        ret =3D its_send_command(hw_its, cmd);
+        if ( ret )
+        {
+            spin_unlock(&vmovp_lock);
+            return ret;
+        }
+    }
+
+    spin_unlock(&vmovp_lock);
+
+    return 0;
+}
+
 static void __init its_vpe_teardown(struct its_vpe *vpe)
 {
     unsigned int order;
@@ -687,6 +741,52 @@ static void its_make_vpe_non_resident(struct its_vpe *=
vpe, unsigned int cpu)
     vpe->pending_last =3D val & GICR_VPENDBASER_PendingLast;
 }
=20
+static int vpe_to_cpuid_lock(struct its_vpe *vpe, unsigned long *flags)
+{
+    spin_lock_irqsave(&vpe->vpe_lock, *flags);
+    return vpe->col_idx;
+}
+
+static void vpe_to_cpuid_unlock(struct its_vpe *vpe, unsigned long *flags)
+{
+    spin_unlock_irqrestore(&vpe->vpe_lock, *flags);
+}
+
+static int gicv4_vpe_set_affinity(struct vcpu *vcpu)
+{
+    struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
+    unsigned int from, to =3D vcpu->processor;
+    unsigned long flags;
+    int ret =3D 0;
+
+    /*
+     * Changing affinity is mega expensive, so let's be as lazy as
+     * we can and only do it if we really have to. Also, if mapped
+     * into the proxy device, we need to move the doorbell interrupt
+     * to its new location.
+     *
+     * Another thing is that changing the affinity of a vPE affects
+     * *other interrupts* such as all the vLPIs that are routed to
+     * this vPE. This means that we must ensure nobody samples
+     * vpe->col_idx during the update, hence the lock below which
+     * must also be taken on any vLPI handling path that evaluates
+     * vpe->col_idx, such as reg-based vLPI invalidation.
+     */
+    from =3D vpe_to_cpuid_lock(vpe, &flags);
+    if ( from =3D=3D to )
+        goto out;
+
+    vpe->col_idx =3D to;
+
+    ret =3D its_send_cmd_vmovp(vpe);
+    if ( ret )
+        goto out;
+
+ out:
+    vpe_to_cpuid_unlock(vpe, &flags);
+    return ret;
+}
+
 void vgic_v4_load(struct vcpu *vcpu)
 {
     struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
@@ -695,6 +795,11 @@ void vgic_v4_load(struct vcpu *vcpu)
     if ( vpe->resident )
         return;
=20
+    /*
+     * Before making the VPE resident, make sure the redistributor
+     * corresponding to our current CPU expects us here
+     */
+    WARN_ON(gicv4_vpe_set_affinity(vcpu));
     its_make_vpe_resident(vpe, vcpu->processor);
     vpe->resident =3D true;
 }
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index 411beb81c8..f03a8fad47 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -43,6 +43,9 @@
 #define GITS_CTLR_QUIESCENT             BIT(31, UL)
 #define GITS_CTLR_ENABLE                BIT(0, UL)
=20
+#define GITS_CTLR_ITS_NUMBER_SHIFT      4
+#define GITS_CTLR_ITS_NUMBER            (0xfUL << GITS_CTLR_ITS_NUMBER_SHI=
FT)
+
 #define GITS_TYPER_PTA                  BIT(19, UL)
 #define GITS_TYPER_DEVIDS_SHIFT         13
 #define GITS_TYPER_DEVIDS_MASK          (0x1fUL << GITS_TYPER_DEVIDS_SHIFT=
)
@@ -60,6 +63,8 @@
                                                  GITS_TYPER_ITT_SIZE_SHIFT=
) + 1)
 #define GITS_TYPER_PHYSICAL             (1U << 0)
=20
+#define GITS_TYPER_VLPIS                (1UL << 1)
+#define GITS_TYPER_VMOVP                (1UL << 37)
 #define GITS_BASER_INDIRECT             BIT(62, UL)
 #define GITS_BASER_INNER_CACHEABILITY_SHIFT        59
 #define GITS_BASER_TYPE_SHIFT           56
@@ -118,6 +123,12 @@
 /* We allocate LPIs on the hosts in chunks of 32 to reduce handling overhe=
ad. */
 #define LPI_BLOCK                       32U
=20
+/*
+ * Maximum number of ITSs when GITS_TYPER.VMOVP =3D=3D 0, using the
+ * ITSList mechanism to perform inter-ITS synchronization.
+ */
+#define GICv4_ITS_LIST_MAX      16
+
 extern unsigned int nvpeid;
 /* The maximum number of VPEID bits supported by VLPI commands */
 #define ITS_MAX_VPEID_BITS      nvpeid
@@ -214,6 +225,7 @@ struct __lpi_data {
 extern struct __lpi_data lpi_data;
=20
 extern struct list_head host_its_list;
+extern unsigned long its_list_map;
=20
 int its_send_cmd_discard(struct host_its *its, struct its_device *dev,
                          uint32_t eventid);
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:17:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218890.1527776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcc-0007J0-I8; Mon, 02 Feb 2026 16:17:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218890.1527776; Mon, 02 Feb 2026 16:17: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 1vmwcc-0007In-FC; Mon, 02 Feb 2026 16:17:54 +0000
Received: by outflank-mailman (input) for mailman id 1218890;
 Mon, 02 Feb 2026 16:17: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZe-0000fY-2A
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:50 +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 49517d05-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:44 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:41 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 49517d05-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WjbFB36uqNnz4+cCSgWre7UswXJt80exl8Cl2XcbPXcLSv9PaWMEZV7464+80fsB5hvMYB3BYT2cLS0X57R1/ITnJ/WN8xSmLAg61booc/6PgzpV0hzQpWKmEgSQ4vOYiDBuNh7bzdnP0I3OHE52OEJ9YiwWNe1GBePZAM4Dp3EavbazUvl71UQqORVI8GSfs5oDa8dACsPlbxYNEzgtpu5C1d9ZeCQgMvuTiSeSqfghG6+o+EyLY8xPNvH1tVGoGRtlsiMHVgU4ENLTAOV8qvYXmCn2ZJipkGmaJxO+X/M8TWR9SBPVyIsVEsN72HF25MdplDN89iXlX+1xLSRlEg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=olsFIyBVeLiR6nsQyL/e906KT3F+OOjXT7MGVYg6uvs=;
 b=h7jsw1wW+mooTomcR6r8Q2tYOuwysounXOj+Y5/gGXmcSL97fzFo+I8yZcfxwUfSSaiq16/cEIre7Fw5vRvmbkyPup+ysXIErXVBxivfnPFKg1osBuC5pdEQQDLanAr6FrT9UG8V14yEdStqPNn8R0f0OTS/5j4uzbNWfp4gXNLryLhyXDIw2lODjZgtJP0pGpZCf1MyxE042pH29/qwqgYQUOD5E0FnjjiCSkXzfIE2Va7Pl3KDMMwbyrWGg8225lPQ7fvCUr2HCHQIoteDbe/VQynsfWR63FRSxfoq0TXfInt76lMg3KSp0Ta98UHNJ+SXQ/a+ykjbCxVay4YidQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=olsFIyBVeLiR6nsQyL/e906KT3F+OOjXT7MGVYg6uvs=;
 b=cEwaliimkHmd6fU1eaWHTycyEH+vAyRtwwhf7it50ph0oCalmMCS903Hr2qIqjdLsrgqpv+dqe+PyFoBbkxD8WFawi8cc113JUsQ1xq2rGFYDMsW8idECIoC5LqqSTflMQX0v1HyDb/It6J6RJYy7JFhA+qyJjTzzCN3PAzUQw55+RWTeEdVIfTDMjasKdkR5jtS/QOSzaz68pt9CnqBcH3f9eEpXevuiifKq1ed3bHqOOLQ73YgQgFeO2SWWJl6MS5Utx+1jDLmDHOEpjJjBaFR5aaVBK4kzK2tI0VrUL/LgNv5uim9UNzHr2/wnJvLIqKyGsaj1uu0FyrBmDT6Wg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 10/19] arm/its: Keep track of BASER regs
Thread-Topic: [RFC PATCH 10/19] arm/its: Keep track of BASER regs
Thread-Index: AQHclF8JFZGLM6XvwkqSrOpYWYBhLQ==
Date: Mon, 2 Feb 2026 16:14:41 +0000
Message-ID:
 <cc8390af73d86c72d5274e6cc3c314fe018a2c8d.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 3dcea2b8-59b8-4cc9-542f-08de62762bd7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?mZFQSYdtNd/5iY3xzaBdD8FF0Ffh6crOg/6fDXq89TgW4rcBDX6ny79bH3?=
 =?iso-8859-1?Q?WYOoktzKWNr/Tu6TrfelHeOYHkSuRp1PEl37+22+eD+yR4uEZTOy7TPz2m?=
 =?iso-8859-1?Q?WToxoGWuyF5Q4IgyMqGsOFD9KpcGxB4PaVooytCVeQcqJPadj4kaBM+hJG?=
 =?iso-8859-1?Q?/zGBqzssjrwndlvy6luxPj4/9oRn6RjwZzTSqmJ4dBonQKwy3WAAORwHXp?=
 =?iso-8859-1?Q?VO3k9oMugjV07W5CMHczLwmQuKanPjDzTuYGQm94EGuOdzZzhXOW8t+as7?=
 =?iso-8859-1?Q?j1OtvR3I5973RwwCVNV0wU5xfZkNRs5SIfIuZoVHTr7vOxZFmFe4q2VzVM?=
 =?iso-8859-1?Q?klNXK5zGkMO7if3p5ngd34MKRYhTn0OQvNmHDBMRjgXUfnszyDFJAffewR?=
 =?iso-8859-1?Q?DSWKfiHWTJ5rH6OdFUtWd2cMpua5Iu+eE9aDmSeC6QAxwvqM6UZbTiIiCL?=
 =?iso-8859-1?Q?ry9gpX4VyJA9hnFgJo1It4LIsVNO7+SyY2sEvTOr7rXdHBzVZDXmhjDzzh?=
 =?iso-8859-1?Q?R3oTfude8nm1nENUHUXiJPREyYJ4x3rMzVa70JdCtZLlKHgPKfpMpycT82?=
 =?iso-8859-1?Q?d9WFtyQNvKyHaYzv65SWJj6bq7aO8jFtKJel2vakC4ATaMZYxkTYwSSEST?=
 =?iso-8859-1?Q?Lkc2Ci2vy3MsMl/CaxtJGFkz8Us/t1YhSP/x2GOzZ83/XoaJ0uYOTOpslu?=
 =?iso-8859-1?Q?z2QwxJRow6DBlUbUzyk0wLVDpecTEsfL64t3aYk9BuOIApxxJ5i6t7ks/x?=
 =?iso-8859-1?Q?9R+6lrcG7Dsvc8S2GsgvVRYC42QwLsogSyRKVFtdhQ/TVnvxIcYPM3Bt4h?=
 =?iso-8859-1?Q?QWUA28wXW6SXeM5z6q8Lo9euDhr4yT8YvYm4F+/7p8ZLe47S4g2LHHg4tU?=
 =?iso-8859-1?Q?yoJR/b2FD/OZBgTE45RjiMUCLJdT/Kinn3IDMWZS6Xa1OoUuZRdH7mx8g5?=
 =?iso-8859-1?Q?A+FbEJeMYHkCyh9LwY1CZgXeKSreFDySYH9OVtUpdATmucnU7OZKJnlibq?=
 =?iso-8859-1?Q?lH/BdqKZZ0MLOnUz6TTaX6s+2jHPm50cVI6lL0JvUYRGpH/8LZshqy7FGn?=
 =?iso-8859-1?Q?xLxjLGpSQzM1n4iC05vubQjg6kjY44S/i/8PnF+1HAap/v98r0TRkO2B0h?=
 =?iso-8859-1?Q?hqGvxcAVI4PaUiHxutXPpxl9EFj0VM4s5AX7rcL4PjsDu7OQRZDuGl44NH?=
 =?iso-8859-1?Q?oZTHqtlbkamLjkybdFL7PrY8/axq+0mz1lLXYCMfKUllF2IDhrFyfgIUVL?=
 =?iso-8859-1?Q?eYOZtR+YmNdHuVKSZ9pqR3w4VXLUOq212h0TzSsGcZgBpRSwUQJZ7llqG/?=
 =?iso-8859-1?Q?fJu1XFN076Xctb/am1azdRMZBCTYEeUk1Ytw5TfJ/qwFlzabzY3+Ap5tgb?=
 =?iso-8859-1?Q?ADDxS2AH1KghKD4dS8MQPMUBt0kHzmP12a0GXSRe94RLtQIEIn+UEsU8At?=
 =?iso-8859-1?Q?8/t6IExEAG4Z2uRP3SM7TVgfj03tara/5iJOyUrwji2yNJNz3/v/2FefAH?=
 =?iso-8859-1?Q?J0q3cR7VdJ1ZoLAt/JVLpPibPIBWalS2WITm6coJq8pA9FQEVRhGNa8QFs?=
 =?iso-8859-1?Q?C/4v/U22+wu9kv48sHlHvsWXuUuTcJezFPNF4S9PntZnP/Ozicx4wMpD9W?=
 =?iso-8859-1?Q?GsLwfDR6002pprdVfY9axbivzf9vRhOTREKxXVdDnNf9EnEVEF5GfUjPqk?=
 =?iso-8859-1?Q?kfiErBLlJ6axzfdDiqE=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?uZTt9gWN6NI9v7TQxxypeIv+GIjyqU4L+llV9X48jJEeLna6GssF9RqUjf?=
 =?iso-8859-1?Q?rYngJCC2bwmoQgtXXc1UxlHd4VdW/hZ7umrnSbR8mFiuVCn7vkTmUEBJ0W?=
 =?iso-8859-1?Q?Z+zVlulOP/6UhuqSM6OOdT6/CWW6sFrvXDP38alM1iJe3SC5BWqLKFqTL5?=
 =?iso-8859-1?Q?AvTj5KPwi3nLA15a9Zd28cyVMiGygFYnH7iyrP+E/EK8wFEeAhHifL5Cni?=
 =?iso-8859-1?Q?NrmQCgq6OqUgxCLUb5lX7vei+jOBDhDoBTY+XTwtk/ssEi4fupo/UpKuJg?=
 =?iso-8859-1?Q?DA8UoSwgxODJbc2cC4K7JU3NRWx/Oi+/yn5zRWTqPg/2I1VdqKdxtXKooG?=
 =?iso-8859-1?Q?N5Yrf5qZHcb17vW12EDjfeiSH54VfJPGZVZy+oZ+CwGHTOosCQ+iusJiaT?=
 =?iso-8859-1?Q?M9JTt5hKOf5sdoTBd7M4fpd9i24wSMoBxui1N1QvOPSKs2qVLgJzkijX19?=
 =?iso-8859-1?Q?x5OSWrhlt04zE18R7P06JDK/Cru+aFr3cvOJ3vjozPrGyWR5lzen1/YrWN?=
 =?iso-8859-1?Q?d/pjyJDA8QJj42HBihpx+6zepe1hDGJXI/36T7NAJhqxlOrN7mg5JD2YVq?=
 =?iso-8859-1?Q?DaWJTTS4KaN9cEfkrI4OIEaxW8Z4dxB3u7p7I3It2mP4TXeGw2Fm5DAwSO?=
 =?iso-8859-1?Q?E7rJQCa0mT/tomr+mXKYkQ+TeiYVQWyyQtCMMUGsg7Pzn8LKOTLxIBEuak?=
 =?iso-8859-1?Q?RZzNV+nPR9hIWSUY1v//yUcQoPKpgo334UC8aTynb1Ng2WToEF8F2p9BHv?=
 =?iso-8859-1?Q?WrbxZQqGTtPAI6wwYLP8QXfh5TPvBtC1TjVKhcRnOk4lexMJ0j/HSQifXF?=
 =?iso-8859-1?Q?RPTY8wSxU2kEn/xUd6L3HZgGjhALltA1dcSpzysRYQljm5spwf10MlclOx?=
 =?iso-8859-1?Q?meruApF5IUMIYXGtwNhQpYQCY3Dnk3sMYLj1ms1BlveVPVGNimM4cNwpzT?=
 =?iso-8859-1?Q?n1La67UEkPYF26ONeP2JhY+1zBgDcXfTjvpbE2Mt7ckL6fSKYI7/o70IVv?=
 =?iso-8859-1?Q?Z934ajROlxSrC6j34PEr39wXSknCoAsVUYaiHbRsjHFhnIjBJfEopSWfQ6?=
 =?iso-8859-1?Q?Yt58KkPAK60Y8q9viB16jZ87RoTJEVem5+80SvkKrtPcQLDFcsPzqXU97G?=
 =?iso-8859-1?Q?WiQXG5pFiZJrKic4wO/Y23Wgjto9bzdyqvH37hXY2RncUt29d9H0b7RMoV?=
 =?iso-8859-1?Q?cgheD52bKwNTS+n8yVRWp7GNNJdb9YaXCawV+0GEufdIaaCG5oCqqMz4NX?=
 =?iso-8859-1?Q?uNb5blWu1pAjQwX0RzU5h1cXQi2zZ31rNWCOAKPsv1bl5zFZ693iJ/oCsA?=
 =?iso-8859-1?Q?7VlxXKSI3u95TKh7oOIUwljFROMmiiJvsyUD/15PyQAtOSnSync3LPz8zN?=
 =?iso-8859-1?Q?UqepOTQ6pUcsa2vSI5f1ykatiOfHaVQoRfGE8+SbLYwETNsu8NY9t2rkLG?=
 =?iso-8859-1?Q?Wt6oLC4ZKzJFio9qf8WDasuYwRnWlBUXFUCxTxGvK4VQH19UhcvOeNMlRU?=
 =?iso-8859-1?Q?TaIFjDu2LxA1LtFDIVMTgigSliq0Y6ZbltqiXDgrnptpN94hMsckEgDyXn?=
 =?iso-8859-1?Q?TiKKdaKCET7FGfU4biMJKUTZ+fGw7MBl8MZGg4UxiBQ5kwXScKLZeEcNuZ?=
 =?iso-8859-1?Q?0CoMWb/fqDhcRIHA8FF6pawtHVjE+wwnCYUTEFVEJ5gssEuJ91K43M7kTj?=
 =?iso-8859-1?Q?A/ExLI1ZvKfA1cuWeh0Z4G4jYLxSV//m73kEgzTJieFQJ8sojgP4bHfxqs?=
 =?iso-8859-1?Q?1v95ABprD07Hd5viAaEBJ9c98HrjPoBrALWz9aXW5LaHRJqkTQWS8njmJk?=
 =?iso-8859-1?Q?l/diRt3x4ZqnkKQQzCSyfrhNnWZXg50=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: 3dcea2b8-59b8-4cc9-542f-08de62762bd7
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:41.1902
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: NdnESA2f/BYACB1dRnAj+VCY3ps1gKaun/AHMrfF8jmc6T3ljNCxb2+CuzKFEA8Y4SJA+LGy1nrJNk8wUpJF3w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Keep all the info about BASER regs in host_its structure to be able to easi=
ly
access it later.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-its.c             | 36 +++++++++++++++++++++------
 xen/arch/arm/include/asm/gic_v3_its.h | 14 +++++++++++
 2 files changed, 43 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index c628959f42..2328595a85 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -430,16 +430,32 @@ static void *its_map_cbaser(struct host_its *its)
 /* The ITS BASE registers work with page sizes of 4K, 16K or 64K. */
 #define BASER_PAGE_BITS(sz) ((sz) * 2 + 12)
=20
+struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type)
+{
+    unsigned int i;
+
+    for ( i =3D 0; i < GITS_BASER_NR_REGS; i++ )
+    {
+        if (GITS_BASER_TYPE(hw_its->tables[i].val) =3D=3D type)
+            return &hw_its->tables[i];
+    }
+
+    return NULL;
+}
+
 static int its_map_baser(void __iomem *basereg, uint64_t regc,
-                         unsigned int nr_items)
+                         unsigned int nr_items, struct its_baser *baser)
 {
     uint64_t attr, reg;
     unsigned int entry_size =3D GITS_BASER_ENTRY_SIZE(regc);
-    unsigned int pagesz =3D 2;    /* try 64K pages first, then go down. */
+    unsigned int page_size[4] =3D {SZ_4K, SZ_16K, SZ_64K, SZ_64K};
+    unsigned int pagesz =3D 0;    /* try 64K pages first, then go down. */
     unsigned int table_size;
     unsigned int order;
     void *buffer;
+    uint32_t type;
=20
+    type =3D GITS_BASER_TYPE(regc);
     attr  =3D gicv3_its_get_shareability() << GITS_BASER_SHAREABILITY_SHIF=
T;
     attr |=3D GIC_BASER_CACHE_SameAsInner << GITS_BASER_OUTER_CACHEABILITY=
_SHIFT;
     attr |=3D gicv3_its_get_cacheability() << GITS_BASER_INNER_CACHEABILIT=
Y_SHIFT;
@@ -479,6 +495,11 @@ retry:
     writeq_relaxed(reg, basereg);
     regc =3D readq_relaxed(basereg);
=20
+    baser->val =3D regc;
+    baser->base =3D buffer;
+    baser->table_size =3D table_size;
+    baser->pagesz =3D page_size[pagesz];
+
     /* The host didn't like our attributes, just use what it returned. */
     if ( (regc & BASER_ATTR_MASK) !=3D attr )
     {
@@ -490,7 +511,7 @@ retry:
         }
         attr =3D regc & BASER_ATTR_MASK;
     }
-    if ( (regc & GITS_BASER_INNER_CACHEABILITY_MASK) <=3D GIC_BASER_CACHE_=
nC )
+    if ( gicv3_its_get_cacheability() <=3D GIC_BASER_CACHE_nC )
         clean_and_invalidate_dcache_va_range(buffer, table_size);
=20
     /* If the host accepted our page size, we are done. */
@@ -568,26 +589,27 @@ static int gicv3_its_init_single_its(struct host_its =
*hw_its)
     {
         void __iomem *basereg =3D hw_its->its_base + GITS_BASER0 + i * 8;
         unsigned int type;
+        struct its_baser *baser =3D hw_its->tables + i;
=20
         reg =3D readq_relaxed(basereg);
-        type =3D (reg & GITS_BASER_TYPE_MASK) >> GITS_BASER_TYPE_SHIFT;
+        type =3D GITS_BASER_TYPE(reg);
         switch ( type )
         {
         case GITS_BASER_TYPE_NONE:
             continue;
         case GITS_BASER_TYPE_DEVICE:
-            ret =3D its_map_baser(basereg, reg, BIT(hw_its->devid_bits, UL=
));
+            ret =3D its_map_baser(basereg, reg, BIT(hw_its->devid_bits, UL=
), baser);
             if ( ret )
                 return ret;
             break;
         case GITS_BASER_TYPE_COLLECTION:
-            ret =3D its_map_baser(basereg, reg, num_possible_cpus());
+            ret =3D its_map_baser(basereg, reg, num_possible_cpus(), baser=
);
             if ( ret )
                 return ret;
             break;
         /* In case this is a GICv4, provide a (dummy) vPE table as well. *=
/
         case GITS_BASER_TYPE_VCPU:
-            ret =3D its_map_baser(basereg, reg, 1);
+            ret =3D its_map_baser(basereg, reg, 32, baser);
             if ( ret )
                 return ret;
             break;
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index 973ca6acdd..bd2696f354 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -64,6 +64,7 @@
 #define GITS_BASER_INNER_CACHEABILITY_SHIFT        59
 #define GITS_BASER_TYPE_SHIFT           56
 #define GITS_BASER_TYPE_MASK            (7ULL << GITS_BASER_TYPE_SHIFT)
+#define GITS_BASER_TYPE(reg)            ((reg & GITS_BASER_TYPE_MASK) >> G=
ITS_BASER_TYPE_SHIFT)
 #define GITS_BASER_OUTER_CACHEABILITY_SHIFT        53
 #define GITS_BASER_TYPE_NONE            0UL
 #define GITS_BASER_TYPE_DEVICE          1UL
@@ -143,6 +144,17 @@ struct its_device {
 #endif
 };
=20
+/*
+ * The ITS_BASER structure - contains memory information, cached
+ * value of BASER register configuration.
+ */
+struct its_baser {
+    void            *base;
+    uint64_t        val;
+    unsigned int    table_size;
+    unsigned int    pagesz;
+};
+
 /* data structure for each hardware ITS */
 struct host_its {
     struct list_head entry;
@@ -156,6 +168,7 @@ struct host_its {
     spinlock_t cmd_lock;
     void *cmd_buf;
     unsigned int flags;
+    struct its_baser tables[GITS_BASER_NR_REGS];
 };
=20
 /* Map a collection for this host CPU to each host ITS. */
@@ -259,6 +272,7 @@ struct pending_irq *gicv3_assign_guest_event(struct dom=
ain *d,
                                              uint32_t virt_lpi);
 void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
                                  uint32_t virt_lpi);
+struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type);
 void lpi_write_config(uint8_t *prop_table, uint32_t lpi, uint8_t clr,
                       uint8_t set);
 int its_send_command(struct host_its *hw_its, const void *its_cmd);
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:17:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218895.1527795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcd-0007Yx-N7; Mon, 02 Feb 2026 16:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218895.1527795; Mon, 02 Feb 2026 16: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 1vmwcd-0007XF-F5; Mon, 02 Feb 2026 16:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1218895;
 Mon, 02 Feb 2026 16:17: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZh-0000fY-2d
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:53 +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 4a754571-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:46 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI0PR03MB10299.eurprd03.prod.outlook.com
 (2603:10a6:800:202::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:14:43 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4a754571-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lBoLQHC3GmYHXpy2o7gFwP6RIqdYg6eftQ6MsOneBvd5di1qospcAb2J/PK5J1pzeffeGPQDlcTt9xPhONLCUod5Fb10HQ0EX4y3w/jUjF7xhC1w1rTSWL2dcxbngcQ8iJTGgELUuma451/f+DvaJ8zSH4xNt7nOQfb6vAd4S0jd6bm+izq5VQWWb9YWa9OI/u+QaO1kYp/SGh0GXi3HZ+xy4Wx/P3AbH2gipXlBMYJD8y9cdqfYwUW/slytC00O5ksFjrLDL/+pLnrQCwF7IVaRBPs8BiJg3EirXFfhZluE6H/TWV1VsvqhMuQLeM2w5XYma/NGyp8sGJKkNdc1EA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rGDkX3OwjMwisG4lxnwiN45k91l7748k1bwBYZp04Ys=;
 b=AuJvJohR+DFk9TkIiqqBgUTaH/vYjvjj3GU63B9F8Rugt2eoCA2oKNtSU0xZDO41lrw83O1pby+qQM17ggZhUHBEU01Uo7zPOkjsnfgEKMrCG/2nGm297P3M9bilqmMpnV33nuK62VdRKJwdODNy2jHrshf/qwfXFE7O/E50o6swWd1kjyQRJllp+fyPqOk6vr5bcpt5HH7dIfgP+NwaiHfviQ483ekPw5JHYJ95NnYE0Q8lT5PPfbe9OhlwP3S4tv5I3rtxQ4FAdmRUhwL3giEQwTorBx9bCu5POpIssMUMS0awD4Z5AWk+Ogk++pHhjqf57XLWIcv0b69gEnRksw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rGDkX3OwjMwisG4lxnwiN45k91l7748k1bwBYZp04Ys=;
 b=IiEvd/d5e+mvNPSYblaNgPl92Sdercb6Jh3BPqhR2fcsCjv85a0ejJWmD/aSYhQmaPd1ownL4ukVbnJ17DD4Xrmrc5CQMZGDlIa7KOzyZIxwVstXhEa7jSb8LOMmI2vjPPkyaSXraDqsqoPK66caOwvZ9RGCONRR40a80MZlH1RqzjrnoiCcecRBalDH24m9iKkupDngODpuCfq1fMG6Q7KDa/USA+t9dRbcNlCyexwNE+ojhU4ki2KyXVT5K5KR/OynwJdTKJ0C2oGWlrNkyMHyLH0zSgXw4IyZiz+FPzcw/Q9ivFSiftaazasztz3He0P6zChHJjCxu1m+lEHljw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 13/19] arm/gic: VPE scheduling
Thread-Topic: [RFC PATCH 13/19] arm/gic: VPE scheduling
Thread-Index: AQHclF8KXPFV5VVY2Umd/wd7Gk/+fQ==
Date: Mon, 2 Feb 2026 16:14:42 +0000
Message-ID:
 <6eee1cbcbfc221b0a6af00f7ec5ccc52f8bd5b75.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|VI0PR03MB10299:EE_
x-ms-office365-filtering-correlation-id: 45f50c92-6743-42d1-e590-08de62762c86
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?7inYCXsZEmCYFQQUv8E3DiITGmX3tgJAmlP6Elt5NiUxwAgTWZaBb5QVp4?=
 =?iso-8859-1?Q?PUwzGNA7Jiz0MHd4sp60GdL1WQcIoJowQU1Rq9d302xayKfEygopAodFe2?=
 =?iso-8859-1?Q?NAvQeyez2JxX+vcA+iriTuFno+w/4rUZeER/CMIiUE7aQelYwq04jwMOo2?=
 =?iso-8859-1?Q?Eo6cVu8wYxWUmqyCBjM49HhxnknAbyUpwsPSou8f94ZgW5f2xumRwrEIu8?=
 =?iso-8859-1?Q?ZjOhhi+crJN7UpakCtKu62elKFnrYKfV422dAjTTSO7gS/zCne+FP0onEk?=
 =?iso-8859-1?Q?m+jxQ7RE4iQAz2Otz1cxpLzjlOHJOpxvpwQNnC7h18a1lP7YWyDY5N3ZnY?=
 =?iso-8859-1?Q?yAXH2fIa47g0Y2se/9BTri2HtWjU81l/kZP6Tp0cW3+SZCAmVKWinas+we?=
 =?iso-8859-1?Q?xM3eoMqABfTk6P3yZjJfSs++rxPp1Uybp/urDRDGXRnpYgROmElstFMkGK?=
 =?iso-8859-1?Q?w00MOiboK/g86H8MiaZV9H1TwkA0DCyTBP4WXli0AdS0TtPUCBWF7Z5+fB?=
 =?iso-8859-1?Q?wEhmFRegENRivi57DZy0VomZL8Szs5AY6/Ht/u/8okyC0wnlNZM8ISuRKL?=
 =?iso-8859-1?Q?/k2uw6mkskesaPqhjml0L12tln6pup3rTLIOuuNMVJc2b1fY9R2phSzI3M?=
 =?iso-8859-1?Q?eXuH9JVV6iTLLNm3Qr32k8IeQiWIHZNjI7E4YdrdSoBhzvBi6EAzdsFV2F?=
 =?iso-8859-1?Q?MexLrNpBS6dtKYAg/iU4KxieWNYzdRw3h/sAON4sYP9vBdmz4l87lUzczV?=
 =?iso-8859-1?Q?TzkKxV87Ew8p3v7Ga+slkvDkpErPsxkruczf4skxHx5l37FmTJZkNfDI49?=
 =?iso-8859-1?Q?4WLkeQWU0UiTtjsWR0HoXW8j/ENtNoI2BvGSTRECGlVxbzRwglBCc3PS/3?=
 =?iso-8859-1?Q?fVgKg4zSoZcBCw5NBsbFDo5K0WVr3d85P3/geiDuWp+pwUXoYLaNXuQEvO?=
 =?iso-8859-1?Q?EgjqnEdy3J055TW0tEz7uUfP1pAyPX1TznMJz9q0lvRrFvoH8xsX6cMhRv?=
 =?iso-8859-1?Q?Z21YIHDoLGDg922G2VI1tIvx11I9SfdT2WRC+HiCstFtNMOu/kYk60R6jY?=
 =?iso-8859-1?Q?tFXrlxp+H0owGeoAKwjfC1iTkTN31fgkzaFVVQCwbf6mgusD9SsQe24QAw?=
 =?iso-8859-1?Q?2OuQd/cJrcHw7mUnWWrVTP7yftXXFJ4QjdkhMe1t39dRaUPuVfdkQP8ZHc?=
 =?iso-8859-1?Q?v7Mp+xb/SjSw8OKrzWi6CigwxkxJ37h45+0LCBG/JADQmobMGgW7l4uqL+?=
 =?iso-8859-1?Q?kC1SGJKzz1XdfMHGWg++6A+XaBCcaV2pjEAbY9wCN0MzNdN3wD2Z67Wl35?=
 =?iso-8859-1?Q?3zCzh7mvpSc7xw0J9AGqk4ijiWgoEGNgbp12qAibPO6hH/9446gw8ML3CI?=
 =?iso-8859-1?Q?F2U/XJb0cCoAJYnKRigUUGKx7bf2I/RaEudyzehGlmvOnahh3fe28ii4lO?=
 =?iso-8859-1?Q?WylFGkuRn09Cxtbi0rhe7+V0PqiXWoJS4y4SjZHSVbAwoyHlqx0LaHOG+e?=
 =?iso-8859-1?Q?Gn6gAkk2qzGu6H8sumzekk85I3Ed1tCGxxx/v/X2TSbW7SLjaFWt3AV1DB?=
 =?iso-8859-1?Q?FbkENutD8gKCugBuLaouVryAktc2ql39ZugKrducGStmSlSrqcRwtAW/hb?=
 =?iso-8859-1?Q?jGO3Hosyt/ZKZWxe4BGIRVIvzhAM4ycCqPWG8lOapa2Vdn1I5rBrrFIU+t?=
 =?iso-8859-1?Q?IhZbQtzZ61XRTKwo+TQ=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)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?fv6E9r5lbv32caG22jW5y9LtU/wHEVHF/uEL9epY7qC12k/NIm69DOL9gO?=
 =?iso-8859-1?Q?5xHz6JLdpZZQ0BDIgFDT2IM1lxVTFJRgJ7+u9XnxgE+kh5xkOAL5IkbhPo?=
 =?iso-8859-1?Q?6z/8uGSlipRQhXFzjh2bldSUCCF+lt9IOb5L843ekO92VKYWsspm4nlzZy?=
 =?iso-8859-1?Q?MgzRVyzC7VgRf24uNheRBs4LQrx6oJ7MyoFP7/cYH3rsCyZFRYNMXBKcNs?=
 =?iso-8859-1?Q?hEVjyIBd0YqWqo75gRqbKVFObURH0+FvcdtnxUJR27PMENd2f/a2fBo5QQ?=
 =?iso-8859-1?Q?d38brDiOiUAr80lEyZtih/CzK7W92Eldb6D2SW7bfg12yUfnhuFKRJ1tMT?=
 =?iso-8859-1?Q?t7h7HH/4JY4+GWcseawiK+TiQRBajK1FD3hlUsQou/OiFTP0qKDJXS5Dg2?=
 =?iso-8859-1?Q?aNHBkhHGd+LsJKTKPeP29n5yMfl6U0jM2y4QHeCV5kTjh5YxFPnyudoiME?=
 =?iso-8859-1?Q?rVhkGt75x3T/Q6CP5yTJFll42UoyCpuf+P+qzPyLeqVP2eeUrOiYVk8z3z?=
 =?iso-8859-1?Q?0o4gfcQIWRlTRSQdBY2Jd6AvDDgoYVgsOo7zCyPK1ETIO2EEvRbWF0WB9J?=
 =?iso-8859-1?Q?HhHVgWzSdf4GbgdDuSPv4Dm52nPuv9VwdMC4gA8Jwz1o0a4PPLVD7vlXxn?=
 =?iso-8859-1?Q?nbdE6KHxtYklgupoG4VDKBaKb4PAhI3k8K+fl8QMwN+vgWQKhyauNTf7Qj?=
 =?iso-8859-1?Q?XRnwmIF0rXrKFAMREFzozzhZF7R4gOt9xVAs369RK8t7ZZrCa6ziR+YEja?=
 =?iso-8859-1?Q?j5Sgys+vfppzog5QfPlFZLjf2STmDmBt4gW854JRtqBosXwKvh1Af9yhgI?=
 =?iso-8859-1?Q?xru4hSctFSqg7XhuD0EtEhhnFmfsq88Lgr4jZEXb9+ogUefZcYoYjem8P6?=
 =?iso-8859-1?Q?vp+96+uqxON2ThLDfYgwYVPz8pfqzR7ceJknAHcqXohI1+39CO6bsBuWvD?=
 =?iso-8859-1?Q?mLZcPR0F7mCi6Qar2sQLLb86n4flJosa981YUny+RVUoO4Z6K5Hk0GcCNj?=
 =?iso-8859-1?Q?9iliFHRohEk6NAxubuDf0O65NftvDOtsGukoA3bZK2r7+q/ooLfsXokE8k?=
 =?iso-8859-1?Q?4teawiNywGdke2/w2Ieu3Nt+YZlcLxP3kTBNyZzXD1z9ycfB6ywtJu4Ukg?=
 =?iso-8859-1?Q?qYt9rkbYSh+8eBdEZqlJmgqm6510T4qNZQnKM6VHKu30unKg24gix6Zwjx?=
 =?iso-8859-1?Q?c21wpb9S7rYNyDTZvBoClAdcvr9B/sGNvHjNCQIdLc4+UPikF2smz7zjey?=
 =?iso-8859-1?Q?wcqggnzIcVpx0jYanLPz6WJSxMC1zCM+1FCn15uY81GvOfA2nQFbB5wZru?=
 =?iso-8859-1?Q?NryegbNikRy1glro4ReTsJuRoxOfilhArzhKI5U9Old9Bf7F7zKx9g6W/1?=
 =?iso-8859-1?Q?5Xhh521k66ZxlrPYvuqKjDJEBE0ZT+T4+NDWIIGaCkOjEcJ+2S+Wg6B47l?=
 =?iso-8859-1?Q?UmtfvX+zGR2v2Npjp+XaLSMHZlgR+AwI/dFpfxbk76zidoF+3L7be9/6D2?=
 =?iso-8859-1?Q?gaDlnlhfM9/G423lA7gFysLSRDFmE+WIjsDfjkuxTuKXNTxMO6fA56w9m7?=
 =?iso-8859-1?Q?9k9wJHnYwULd/EIoG79cfaY+I+XHnXcn5jY1E5OcmGz+DsyscTNcJkzkAH?=
 =?iso-8859-1?Q?zBw6RQPO6YdjfIgIXcFfIN+3+Sjej3nD6IGyPwwnAr9Q6R4NKhc4ej8rBY?=
 =?iso-8859-1?Q?KmNXfFxwKHVMZYAPHLMzRKb6Ad5yYhpw0tBW/KRytFnAv8ehlc1Caj4yRg?=
 =?iso-8859-1?Q?Ytu4+PYntxNHptkWtf5j/DQkst/D9qwLxLGELBCbC6G+KVaynq3t7lUEto?=
 =?iso-8859-1?Q?jCwxbPmW9lT8I2BFEuDG/UXDjSAQoiU=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: 45f50c92-6743-42d1-e590-08de62762c86
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:42.5831
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 3yppVIHYBl4L73U/JPqGlIP7DCVJbEmChT6/T+yHaU2EV7nWjzKbHBP44Sl8X7XJrfqXcxAtYmhz31Rf5GFrKQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10299

GICv4 needs to know which VCPU is currently scheduled to be able to
deliver VLPIs. Implement switching of VPEs on VCPU context switch by
extending the existing save/restore mechanism used for GICv2 and GICv3.

Scheduling a VPE is done by setting up the VPENDBASER and VPROPBASER
registers to the appropriate tables for the currently running VCPU. When
scheduling out, preserve the IDAI and PendingLast bits from VPENDBASER.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v2.c                  |   2 +-
 xen/arch/arm/gic-v3.c                  |   9 +-
 xen/arch/arm/gic-v4-its.c              | 138 +++++++++++++++++++++++++
 xen/arch/arm/gic-vgic.c                |   6 ++
 xen/arch/arm/include/asm/gic.h         |   2 +-
 xen/arch/arm/include/asm/gic_v3_defs.h |   6 ++
 xen/arch/arm/include/asm/gic_v4_its.h  |   9 ++
 xen/arch/arm/include/asm/vgic.h        |   2 +
 8 files changed, 170 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index 0cd41eac12..c16fa5d67e 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -181,7 +181,7 @@ static void gicv2_save_state(struct vcpu *v)
     writel_gich(0, GICH_HCR);
 }
=20
-static void gicv2_restore_state(const struct vcpu *v)
+static void gicv2_restore_state(struct vcpu *v)
 {
     int i;
=20
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index d4af332b0e..07736179db 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -133,7 +133,7 @@ bool gic_is_gicv4(void)
 #endif
=20
 /* per-cpu re-distributor base */
-static DEFINE_PER_CPU(void __iomem*, rbase);
+DEFINE_PER_CPU(void __iomem*, rbase);
=20
 #define GICD                   (gicv3.map_dbase)
 #define GICD_RDIST_BASE        (this_cpu(rbase))
@@ -475,13 +475,15 @@ static void gicv3_save_state(struct vcpu *v)
      * are now visible to the system register interface
      */
     dsb(sy);
+    if ( gic_is_gicv4() )
+        vgic_v4_put(v, false);
     gicv3_save_lrs(v);
     save_aprn_regs(&v->arch.gic);
     v->arch.gic.v3.vmcr =3D READ_SYSREG(ICH_VMCR_EL2);
     v->arch.gic.v3.sre_el1 =3D READ_SYSREG(ICC_SRE_EL1);
 }
=20
-static void gicv3_restore_state(const struct vcpu *v)
+static void gicv3_restore_state(struct vcpu *v)
 {
     register_t val;
=20
@@ -510,6 +512,9 @@ static void gicv3_restore_state(const struct vcpu *v)
     restore_aprn_regs(&v->arch.gic);
     gicv3_restore_lrs(v);
=20
+    if ( gic_is_gicv4() )
+        vgic_v4_load(v);
+
     /*
      * Make sure all stores are visible the GIC
      */
diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
index fac3b44a94..6a550a65b2 100644
--- a/xen/arch/arm/gic-v4-its.c
+++ b/xen/arch/arm/gic-v4-its.c
@@ -18,6 +18,7 @@
  * GNU General Public License for more details.
  */
=20
+#include <xen/delay.h>
 #include <xen/errno.h>
 #include <xen/sched.h>
 #include <xen/spinlock.h>
@@ -44,6 +45,21 @@ void __init gicv4_its_vpeid_allocator_init(void)
         panic("Could not allocate VPEID bitmap space\n");
 }
=20
+static void __iomem *gic_data_rdist_vlpi_base(unsigned int cpu)
+{
+    /*
+     * Each Redistributor defines two 64KB frames in the physical address =
map.
+     * In GICv4, there are two additional 64KB frames.
+     * The frames for each Redistributor must be contiguous and must be
+     * ordered as follows:
+     * 1. RD_base
+     * 2. SGI_base
+     * 3. VLPI_base
+     * 4. Reserved
+     */
+    return GICD_RDIST_BASE_CPU(cpu) + SZ_128K;
+}
+
 static int __init its_alloc_vpeid(struct its_vpe *vpe)
 {
     int id;
@@ -571,3 +587,125 @@ int its_send_cmd_vinv(struct host_its *its, struct it=
s_device *dev,
=20
     return gicv3_its_wait_commands(its);
 }
+
+static uint64_t read_vpend_dirty_clean(void __iomem *vlpi_base,
+                                       unsigned int count)
+{
+    uint64_t val;
+    bool clean;
+
+    do {
+        val =3D gits_read_vpendbaser(vlpi_base + GICR_VPENDBASER);
+        /* Poll GICR_VPENDBASER.Dirty until it reads 0. */
+        clean =3D !(val & GICR_VPENDBASER_Dirty);
+        if ( !clean )
+        {
+            count--;
+            cpu_relax();
+            udelay(1);
+        }
+    } while ( !clean && count );
+
+    if ( !clean )
+    {
+        printk(XENLOG_WARNING "ITS virtual pending table not totally parse=
d\n");
+        val |=3D GICR_VPENDBASER_PendingLast;
+    }
+
+    return val;
+}
+
+/*
+ * When a vPE is made resident, the GIC starts parsing the virtual pending
+ * table to deliver pending interrupts. This takes place asynchronously,
+ * and can at times take a long while.
+ */
+static void its_wait_vpt_parse_complete(void __iomem *vlpi_base)
+{
+    if ( !gic_support_vptValidDirty() )
+        return;
+
+    read_vpend_dirty_clean(vlpi_base, 500);
+}
+
+static uint64_t its_clear_vpend_valid(void __iomem *vlpi_base, uint64_t cl=
r,
+                                      uint64_t set)
+{
+    unsigned int count =3D 1000000;    /* 1s! */
+    uint64_t val;
+
+    /*
+     * Clearing the Valid bit informs the Redistributor that a context
+     * switch is taking place.
+     */
+    val =3D gits_read_vpendbaser(vlpi_base + GICR_VPENDBASER);
+    val &=3D ~GICR_VPENDBASER_Valid;
+    val &=3D ~clr;
+    val |=3D set;
+    gits_write_vpendbaser(val, vlpi_base + GICR_VPENDBASER);
+
+    return read_vpend_dirty_clean(vlpi_base, count);
+}
+
+static void its_make_vpe_resident(struct its_vpe *vpe, unsigned int cpu)
+{
+    void __iomem *vlpi_base =3D gic_data_rdist_vlpi_base(cpu);
+    uint64_t val;
+
+    /* Switch in this VM's virtual property table. */
+    val  =3D virt_to_maddr(vpe->its_vm->vproptable) & GENMASK(51, 12);
+    val |=3D gicv3_its_get_cacheability() << GICR_VPROPBASER_INNER_CACHEAB=
ILITY_SHIFT;
+    val |=3D gicv3_its_get_shareability() << GICR_VPROPBASER_SHAREABILITY_=
SHIFT;
+    val |=3D GIC_BASER_CACHE_SameAsInner << GICR_VPROPBASER_OUTER_CACHEABI=
LITY_SHIFT;
+    val |=3D (HOST_LPIS_NRBITS - 1) & GICR_VPROPBASER_IDBITS_MASK;
+    gits_write_vpropbaser(val, vlpi_base + GICR_VPROPBASER);
+
+    /* Switch in this VCPU's VPT. */
+    val  =3D virt_to_maddr(vpe->vpendtable) & GENMASK(51, 16);
+    val |=3D gicv3_its_get_cacheability() << GICR_VPENDBASER_INNER_CACHEAB=
ILITY_SHIFT;
+    val |=3D gicv3_its_get_shareability() << GICR_VPENDBASER_SHAREABILITY_=
SHIFT;
+    val |=3D GIC_BASER_CACHE_SameAsInner << GICR_VPENDBASER_OUTER_CACHEABI=
LITY_SHIFT;
+    /*
+     * When the GICR_VPENDBASER.Valid bit is written from 0 to 1,
+     * this bit is RES1.
+     */
+    val |=3D GICR_VPENDBASER_PendingLast;
+    val |=3D vpe->idai ? GICR_VPENDBASER_IDAI : 0;
+    val |=3D GICR_VPENDBASER_Valid;
+    gits_write_vpendbaser(val, vlpi_base + GICR_VPENDBASER);
+
+    its_wait_vpt_parse_complete(vlpi_base);
+}
+
+static void its_make_vpe_non_resident(struct its_vpe *vpe, unsigned int cp=
u)
+{
+    void __iomem *vlpi_base =3D gic_data_rdist_vlpi_base(cpu);
+    uint64_t val;
+
+    val =3D its_clear_vpend_valid(vlpi_base, 0, 0);
+    vpe->idai =3D val & GICR_VPENDBASER_IDAI;
+    vpe->pending_last =3D val & GICR_VPENDBASER_PendingLast;
+}
+
+void vgic_v4_load(struct vcpu *vcpu)
+{
+    struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
+
+
+    if ( vpe->resident )
+        return;
+
+    its_make_vpe_resident(vpe, vcpu->processor);
+    vpe->resident =3D true;
+}
+
+void vgic_v4_put(struct vcpu *vcpu, bool need_db)
+{
+    struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
+
+    if ( !vpe->resident )
+        return;
+
+    its_make_vpe_non_resident(vpe, vcpu->processor);
+    vpe->resident =3D false;
+}
diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
index ea48c5375a..44db142dbd 100644
--- a/xen/arch/arm/gic-vgic.c
+++ b/xen/arch/arm/gic-vgic.c
@@ -377,6 +377,12 @@ int vgic_vcpu_pending_irq(struct vcpu *v)
         }
     }
=20
+#ifdef CONFIG_GICV4
+    if ( gic_is_gicv4() )
+        if ( v->arch.vgic.its_vpe->pending_last )
+            rc =3D 1;
+#endif
+
 out:
     spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
     return rc;
diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.=
h
index afb1cc3751..04a20bdca5 100644
--- a/xen/arch/arm/include/asm/gic.h
+++ b/xen/arch/arm/include/asm/gic.h
@@ -362,7 +362,7 @@ struct gic_hw_operations {
     /* Save GIC registers */
     void (*save_state)(struct vcpu *v);
     /* Restore GIC registers */
-    void (*restore_state)(const struct vcpu *v);
+    void (*restore_state)(struct vcpu *v);
     /* Dump GIC LR register information */
     void (*dump_state)(const struct vcpu *v);
=20
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index 3a7d18ef59..0db75309cf 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -257,6 +257,12 @@ struct rdist_region {
     bool single_rdist;
 };
=20
+/* per-cpu re-distributor base */
+DECLARE_PER_CPU(void __iomem*, rbase);
+
+#define GICD_RDIST_BASE             (this_cpu(rbase))
+#define GICD_RDIST_BASE_CPU(cpu)    (per_cpu(rbase, cpu))
+
 #endif /* __ASM_ARM_GIC_V3_DEFS_H__ */
=20
 /*
diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include/a=
sm/gic_v4_its.h
index ba81b25bde..37b6b92f0c 100644
--- a/xen/arch/arm/include/asm/gic_v4_its.h
+++ b/xen/arch/arm/include/asm/gic_v4_its.h
@@ -56,6 +56,15 @@ void gicv4_its_vpeid_allocator_init(void);
 #define GICR_VPROPBASER                              0x0070
 #define GICR_VPENDBASER                              0x0078
=20
+#define GICR_VPROPBASER_OUTER_CACHEABILITY_SHIFT         56
+#define GICR_VPROPBASER_SHAREABILITY_SHIFT               10
+#define GICR_VPROPBASER_SHAREABILITY_MASK                \
+        (3UL << GICR_VPROPBASER_SHAREABILITY_SHIFT)
+#define GICR_VPROPBASER_INNER_CACHEABILITY_SHIFT          7
+#define GICR_VPROPBASER_INNER_CACHEABILITY_MASK           \
+        (7UL << GICR_VPROPBASER_INNER_CACHEABILITY_SHIFT)
+#define GICR_VPROPBASER_IDBITS_MASK                    0x1f
+
 #define GICR_VPENDBASER_Dirty                   (1UL << 60)
 #define GICR_VPENDBASER_PendingLast             (1UL << 61)
 #define GICR_VPENDBASER_IDAI                    (1UL << 62)
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 580310fec4..9ef667decb 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -417,6 +417,8 @@ bool gic_is_gicv4(void);
 int vgic_v4_its_vm_init(struct domain *d);
 void vgic_v4_free_its_vm(struct domain *d);
 int vgic_v4_its_vpe_init(struct vcpu *vcpu);
+void vgic_v4_load(struct vcpu *vcpu);
+void vgic_v4_put(struct vcpu *vcpu, bool need_db);
 #endif /* !CONFIG_NEW_VGIC */
=20
 /*** Common VGIC functions used by Xen arch code ****/
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:17:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:17:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218897.1527804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwce-0007tE-Ki; Mon, 02 Feb 2026 16:17:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218897.1527804; Mon, 02 Feb 2026 16: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 1vmwce-0007rW-BV; Mon, 02 Feb 2026 16:17:56 +0000
Received: by outflank-mailman (input) for mailman id 1218897;
 Mon, 02 Feb 2026 16:17: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZf-0000fY-2J
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:51 +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 499c134f-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:44 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:41 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 499c134f-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U0673Q9MTmiXXfpRNi/WdDz7uMw5aGbiFgS/4twnzt53AYJjsJ23lHkKlVUwk1MDyosnRIpUhCgy/R4lwaV0Ag/FEZedGS+n1OmG4ea52u/YrE/iaQXvQbFRNZNmr+BPwHQW9aK6+sAtYAESbyn4Ea3jv2lFhEf9OUMcIdrEuFn8sVlxJX+QnFKkNY3pA6bm1bXOlkg4fbbB9WpI20uLCcFJ77FkO+gW6+MU7RBp/BYfRoi3yLpD2QwogiW2PuvDEVAwqoyKCWGR176RBarpTbF/wxdTG8en2msnLJtVrJLvri8Bmr344RymM+CUUY+pVDyxczmKQK+inkRMDlPBdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EiKSNne18UWCuoczCD+vbXEKSctptfC3w3ZIUBjkJqc=;
 b=gQEAXDgW4g5uqz200kuP4hvCeJrNnpeOkAKJxpVmgshbi0eEQSBJ+PsSF6VkvKav/CXmpA/BNW5CrID8RsL4ZjwTYUNAWf8YuBS6NGh8LsNdsjPqnYRHJsotUdD/AXRrVOL4NDhq+xVGh2FeRhCswCJMB+8y779cVKXwUSobBfJeOHWY8dL3CXqRxk1SXkh2PM1cvzp6Pt43f4KWECqZxJU+IIUsxaJOQzyKdbZkVFzWHqzKRhCT/vh3LK/yeNyn+jYYqA8VNjjq9TswzVhHpfx92ir1BXuXiUDXTTHNochXlmBPDxhriuovaIFJUK3Gz9YuRKZges1YLjYjyAW4lQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EiKSNne18UWCuoczCD+vbXEKSctptfC3w3ZIUBjkJqc=;
 b=FXYZ+vd7pXkKRBMnnIbD47GfnVa0e2zqAXXlJsynMMR9cCEKL9IFkCKURwD9HH1JUBmTGya4YlELs7tfJAFA9VkpCwgcDrH/W+v2K5SF1mvBmlOn2Tp/3Od0U/nWI9tsw8uxPXbvQPe81+1FmiF8jBxKnbmpdp0sGjsftjRt3RpKccA9nOh1kUQ1tDjaIzXUHpSg5WXyHl1hbg7NKpgFes7K0Y7KRBLEzDxsSdLjZiVSRqvhiA3ok6wV9cUWiObHAjThUQDmjc71hO6gdqpPmhmSo9LB5XbzaR2YCj/92JSOCn3vFbtGxyZ4ZUSUC223XcICBX9ewWItZQrUJiQVtw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 11/19] arm/its: Add ITS VM and VPE allocation/teardown
Thread-Topic: [RFC PATCH 11/19] arm/its: Add ITS VM and VPE
 allocation/teardown
Thread-Index: AQHclF8JuufVuCvm00eonduwsvAd6g==
Date: Mon, 2 Feb 2026 16:14:41 +0000
Message-ID:
 <1e37aecc73c38669c1f3d41a4a829a5a5b54f836.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: 075950dc-5880-4d24-e1ce-08de62762c00
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?apyP8ifJKHpoFZuyuJFQ9rf9KdbTsh0jc2/xV1E+OOcTIAqSWuyk5yXc3f?=
 =?iso-8859-1?Q?BmcjhLfg3y8AuOO1joh82SNXFeu66eLCIVUUYIyoDkfLYAfLVz61sZKuEg?=
 =?iso-8859-1?Q?qDynrGIY7TFlaQrcQkzFNkWnTcNH3nky5MqNYsXHK9X45bywQ+XIKIX2OQ?=
 =?iso-8859-1?Q?QBSbBzeORgF/hz90QJOWWTZDpx/PWb655QSX5kXCXPmeO2Edb2ENpLqFAR?=
 =?iso-8859-1?Q?BZYEB5LmVJeloN1SGnKjUlm5SDhUIJ+ZRq0WvyJoKWowL/ZTI1jWeKYZvP?=
 =?iso-8859-1?Q?/RRPo0dDn/4e6WPpZJwzdF8LnUYfVrJCbZhJc2nO59IECKONZw6VJd9Bue?=
 =?iso-8859-1?Q?gjUhRwWj29KJsKm2HBpxIN2XS1EglQsVOX61MWx+OY4xKP0do8trU87G/w?=
 =?iso-8859-1?Q?rVPpQ6m0kMfdRBE15F6+eMJOpD4sA9hd8rvduezp7S55KXQzARlFN2O2Sv?=
 =?iso-8859-1?Q?UEPcVG9FFU0zUrgCnmdchCfNRUfMSFStj+S2MNyPuosPE+WVHR9QTWTJQM?=
 =?iso-8859-1?Q?RDsEYkqagbN1A+FTIk7/WPVqIQkBDR2est2Pwnal9SaARLP2LNhJpoY7xA?=
 =?iso-8859-1?Q?uRdCiaPcPIauiX4tkkynxrHADyyl3cRkXjFQQhHiwmSquZU0CHhnTchbBL?=
 =?iso-8859-1?Q?ok0sG/LFJZJDWLow+EzT9b2mHq26xkH1jL4RwwGLwenbMgGHqrFkBdPAMs?=
 =?iso-8859-1?Q?IYXtLtw6pG7kerr8kIZta1JCB44ZQBVrmVZrmDZiOUsSQDbF7rdZlDSndS?=
 =?iso-8859-1?Q?3bsO9pkX0XbOkXY0nLwY3d21cyJ3K6uLfv6oYu+OlquSpdAEi89P77/LxE?=
 =?iso-8859-1?Q?XngzrUE8hfEBY4YUygKXGtMvWibrYPv3uP61cDChlOmgh97yY8asdY1m75?=
 =?iso-8859-1?Q?OR4YncyrKa++mhCMODidElE0SbCSvkoSYxRvcJ1MhXJQzN3pTxI6DuXtK4?=
 =?iso-8859-1?Q?QR71mdNzc9Iqg/9/Enn42gc48qmWAaF0asC9+dUhU4D7yKwWoI8hxRtcpN?=
 =?iso-8859-1?Q?G8LUM7jCzqs8JiPMGnTodOyI4JJOgO+cjBwhSasECefmBkQTWlAoPzZ0wb?=
 =?iso-8859-1?Q?3vs6HJg1xk+AcREK1I2UJeXZQ7jEhL+AxY+tV2t4TVMriDh17/w7lZMfmC?=
 =?iso-8859-1?Q?ljrYj1MaWclZBawsxO3wKPBli0CLfaz0jTlc/0WDdg+yaaJdTs6nJqGlHc?=
 =?iso-8859-1?Q?/DTMMCwAFB9YyEJYPvmkrI6ErMcgaCFjqh8wYwWHcIPEY/Y7qQVNxyTZT5?=
 =?iso-8859-1?Q?GdIqObzOOvt5bgLO002e8l7mPpJi7y8QINinsQAYXqo9yOgFh0TbyOgZxk?=
 =?iso-8859-1?Q?64cFziItp8UlfPDs8TXKP20iYsw/1sXMCE5zAGwS2QI2SXcUZjqYioUYNS?=
 =?iso-8859-1?Q?fUrew9Exw9IQcG3TEpT4R/oAIEKZyb6ug6zcAoguXIVeIlGJbu9u9Lhd0+?=
 =?iso-8859-1?Q?9e1f2us231yDjhD9yy3BfNtnzJBfVetQiq99BCbgeMkFpYvjMdnFNycJsZ?=
 =?iso-8859-1?Q?gy2epFSURjOzIy64DAyVxq2FoUOL6DVBBq5QtKJr7waev6MxIlgoKR93ID?=
 =?iso-8859-1?Q?TBFp/CyZpI4QLJDQL0k9nM7Pl+UrBmGR0Aklh+uj54CMiv2imGiFJ/Zcuz?=
 =?iso-8859-1?Q?aiNZVAM4FICaYwkWJ6RoRp3UCgdhqQbcCOfpEvzTTKEHDiRsaWWj8u+9ro?=
 =?iso-8859-1?Q?xRWhwy6Fe/MaUR9bSS8=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?6W+lyePzZevrleYjf5ye+6fFTikxtpVxoMUT8Sy8ozEq9hZE7pmQwRJZ+C?=
 =?iso-8859-1?Q?2/kNA5yPGt9T8u48Mf+v5Vk35DXcdVpbCt8+kBy0urTVO0M2jA4bD14F2v?=
 =?iso-8859-1?Q?p9yaZohR99esFhfqHDS7e6oCQeKW97OofZDAh4ZCOR+GCcyKfgGpAa4zzR?=
 =?iso-8859-1?Q?K16FGcGeKrWWAXQzD0cExREWjAAqFNVQg6t1nCT5bl2AEv6slvu6iBTWKW?=
 =?iso-8859-1?Q?nc/ukt7UiH8/CzMe7KPjxnB4zFYIHUWT2erSNdKIaRbwJ93/ZgnS3/pCqx?=
 =?iso-8859-1?Q?T6zxuaEOcmc+TvjArzta1QB56HTTdO/GpJceRRwmEZGcc9IwB7/0PWZrGu?=
 =?iso-8859-1?Q?QWLfH0s5KMop+8E5prstKaTpvxD4ObsB6YQSLXh6SFeCfY58k0Hu8hULik?=
 =?iso-8859-1?Q?AyG4xQ0nKk4bP2COXHNFGrECtPVAaQvGCS/k4lXNIm7JIDkwzMsXWBIE5Y?=
 =?iso-8859-1?Q?+3mpNMMKuotDA2gpArf0AEABOonc3v1p+Ra4nnPlzsewD1SsCDCXxp/K6E?=
 =?iso-8859-1?Q?GVo2OQXyTnousOV+uuUEqtnU65q4P0Pd8j6GU/7n/5XgoymAzNDqOeKEKP?=
 =?iso-8859-1?Q?4fawjUITsHayqrZaZFvNTn9PyRDFWc/WSI/1Z9oMD04Fxb9Nni+FQREnUT?=
 =?iso-8859-1?Q?1IQ5zrZB+uErWP1Oj/R76Gg7NsbGcNKwC74QDxmkBlAhqmP6eiQyFPn2OF?=
 =?iso-8859-1?Q?KgIAawpsqBz57w1U3niQ3S19p6xo9vyYsSSOkNGgnOvypgvNBJwiEmAXc1?=
 =?iso-8859-1?Q?XKMxI1dE5QYas2rGk8x5C3ahH+j4WhGpjuKQufOEbzp3xztougXyqC90cN?=
 =?iso-8859-1?Q?h4Xoix1ZDiA4gXkhuR9I5AuNpbp01j28jASpf8zkE3PfjML2zezinZIWVn?=
 =?iso-8859-1?Q?M8n5ET8h+kY95E/zs44Tgbay92E2ECOLXfL47ngUDu6NT1+ihcoZ5rcYTH?=
 =?iso-8859-1?Q?PtjcWRVyy/j9/q06awROzX5rNTx2TW9SxLRD4WUqchp1eQsr9Ku+gO9RoM?=
 =?iso-8859-1?Q?+5PLoDDsqtGeVKpvN3t8FxrFqkOMqSSJUuscNlIViUHW1mVra3lIGcG9XH?=
 =?iso-8859-1?Q?hLU52L0BHjFs7ORQLdlB6w86radmP5UDwm8jnxZvw0nq6IjIm+/ns5Hor3?=
 =?iso-8859-1?Q?C4g0Q2LEI+CVUFPEJezr7jp7sfrAQBl3m6FLllzrZ5/yHug3dLHj4G2C0G?=
 =?iso-8859-1?Q?HuGrH5tNRYnqDLNp8ZNdf+6MazXmSQySy7nseGVbNTbXp1xBFj+7yBnCmt?=
 =?iso-8859-1?Q?/zaXdVFL4yX5Q77DrSGePmVyuird9Rbnvx+FvUf7tNxRAXnRrpXFF0B29w?=
 =?iso-8859-1?Q?IUZpWZVTrolwpnrn0P1k2prG8Q/+fl3OWScQGcANKDgKvujuf5PWjutgv8?=
 =?iso-8859-1?Q?upqyTV1GTjBjz0Sp83EkZjLP/UN2pSOB1uNSYQtfQ5xnL69PwXrTduKhAR?=
 =?iso-8859-1?Q?bBhPaXMIAx1TmrFmdA01CY5gVzpofDUxO3vTQ/CNBcX+2UXEbr0qhsjnep?=
 =?iso-8859-1?Q?70/cnrANOvfwidOfyZPdzAzGft9cGCmsiZjk/zxe3QzCv+no0VoWdhbi0b?=
 =?iso-8859-1?Q?ZFj4xEMCiDf4hbhYC/AnsfWRBhi81vNWTp61+Mi2PlqHmEZHHpwU0VOSz3?=
 =?iso-8859-1?Q?qyG1LjbotH504B5L7mcf6/XUdHR6OqV9aa3j6kbJEEr/1jPCX2M3GCo09X?=
 =?iso-8859-1?Q?fuofnaikFIwiO9Cw6CEpB0LEkZMJs8tt5jlYUCUCS2cxrIgqOrcGIgr0yf?=
 =?iso-8859-1?Q?jNWoxwM9nbX1+HbdT0f3HrVyibM7hEzXtFY7mZpEZFpyfwl1++wBRSnTzG?=
 =?iso-8859-1?Q?3KrxL3Xo/V2H5iLo+gum3Lac4W00Rrk=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: 075950dc-5880-4d24-e1ce-08de62762c00
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:41.6618
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: y7u24g0Ke3qQoGWBInZ4xP5waUsn/dG/0q2QQBMhra+iFQtcTiGyIUe2dmQgP49LKy/JPqVPl989KEvE5bwung==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Do necessary allocations for GICv4 VLPI injection.
When creating a domain allocate its_vm and property tables.
For each VCPU allocate a VPe with a unique vpe id and separate pending tabl=
e.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-its.c             | 157 ++++++++++++----
 xen/arch/arm/gic-v3-lpi.c             |  61 +++++-
 xen/arch/arm/gic-v3.c                 |  18 ++
 xen/arch/arm/gic-v4-its.c             | 259 ++++++++++++++++++++++++++
 xen/arch/arm/include/asm/gic_v3_its.h |  17 ++
 xen/arch/arm/include/asm/gic_v4_its.h |   1 +
 xen/arch/arm/include/asm/vgic.h       |   3 +
 xen/arch/arm/vgic.c                   |  25 ++-
 8 files changed, 496 insertions(+), 45 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 2328595a85..fb1d2709be 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -31,6 +31,8 @@
 LIST_HEAD(host_its_list);
=20
=20
+unsigned int nvpeid =3D 16;
+
 /*
  * It is unlikely that a platform implements ITSes with different quirks,
  * so assume they all share the same.
@@ -228,7 +230,7 @@ int gicv3_its_wait_commands(struct host_its *hw_its)
     return -ETIMEDOUT;
 }
=20
-static uint64_t encode_rdbase(struct host_its *hw_its, unsigned int cpu,
+uint64_t encode_rdbase(struct host_its *hw_its, unsigned int cpu,
                               uint64_t reg)
 {
     reg &=3D ~GENMASK(51, 16);
@@ -443,6 +445,54 @@ struct its_baser *its_get_baser(struct host_its *hw_it=
s, uint32_t type)
     return NULL;
 }
=20
+bool its_alloc_table_entry(struct its_baser *baser, uint32_t id)
+{
+    uint64_t reg =3D baser->val;
+    bool indirect =3D reg & GITS_BASER_INDIRECT;
+    unsigned int idx;
+    __le64 *table;
+    unsigned int entry_size =3D GITS_BASER_ENTRY_SIZE(reg);
+
+    /* Don't allow id that exceeds single, flat table limit */
+    if ( !indirect )
+        return (id < (baser->table_size / entry_size));
+
+    /* Compute 1st level table index & check if that exceeds table limit *=
/
+    idx =3D id / (baser->pagesz / entry_size);
+    if ( idx >=3D (baser->pagesz / GITS_LVL1_ENTRY_SIZE) )
+        return false;
+
+    table =3D baser->base;
+
+    /* Allocate memory for 2nd level table */
+    if (!table[idx])
+    {
+        unsigned int page_size =3D baser->pagesz;
+        void *buffer;
+
+        buffer =3D alloc_xenheap_pages(get_order_from_bytes(page_size),
+                                     gicv3_its_get_memflags());
+        if ( !buffer )
+            return -ENOMEM;
+
+        /* Flush Lvl2 table to PoC if hw doesn't support coherency */
+        if ( gicv3_its_get_cacheability() <=3D GIC_BASER_CACHE_nC )
+            clean_and_invalidate_dcache_va_range(buffer, page_size);
+
+        table[idx] =3D cpu_to_le64(virt_to_maddr(buffer) | GITS_VALID_BIT)=
;
+
+        /* Flush Lvl1 entry to PoC if hw doesn't support coherency */
+        if ( gicv3_its_get_cacheability() <=3D GIC_BASER_CACHE_nC )
+            clean_and_invalidate_dcache_va_range(table + idx,
+                                                 GITS_LVL1_ENTRY_SIZE);
+
+        /* Ensure updated table contents are visible to ITS hardware */
+        dsb(sy);
+    }
+
+    return true;
+}
+
 static int its_map_baser(void __iomem *basereg, uint64_t regc,
                          unsigned int nr_items, struct its_baser *baser)
 {
@@ -737,13 +787,75 @@ static int gicv3_its_map_host_events(struct host_its =
*its,
             return ret;
     }
=20
-    /* TODO: Consider using INVALL here. Didn't work on the model, though.=
 */
+    return 0;
+}
+
+static bool its_alloc_device_table(struct host_its *hw_its, uint32_t dev_i=
d)
+{
+    struct its_baser *baser;
+
+    baser =3D its_get_baser(hw_its, GITS_BASER_TYPE_DEVICE);
+    if ( !baser )
+        return false;
+
+    return its_alloc_table_entry(baser, dev_id);
+}
+
+struct its_device *its_create_device(struct host_its *hw_its,
+                                     uint32_t host_devid, uint64_t nr_even=
ts)
+{
+    void *itt_addr =3D NULL;
+    struct its_device *dev =3D NULL;
+    int ret;
+
+    /* Sanitise the provided hardware values against the host ITS. */
+    if ( host_devid >=3D BIT(hw_its->devid_bits, UL) )
+        return NULL;
+
+    dev =3D xzalloc(struct its_device);
+    if ( !dev )
+        return NULL;
+
+    /* An Interrupt Translation Table needs to be 256-byte aligned. */
+    dev->itt_order =3D get_order_from_bytes(nr_events * hw_its->itte_size)=
;
+    itt_addr =3D alloc_xenheap_pages(dev->itt_order, gicv3_its_get_memflag=
s());
+    if ( !itt_addr )
+        goto fail_dev;
+
+    clean_and_invalidate_dcache_va_range(itt_addr,
+                                         nr_events * hw_its->itte_size);
+
=20
-    ret =3D its_send_cmd_sync(its, 0);
+    if ( !its_alloc_device_table(hw_its, host_devid) )
+        goto fail_itt;
+
+    ret =3D its_send_cmd_mapd(hw_its, host_devid, max(fls(nr_events - 1), =
1U),
+                            virt_to_maddr(itt_addr), true);
     if ( ret )
-        return ret;
+        goto fail_itt;
=20
-    return gicv3_its_wait_commands(its);
+    dev->itt_addr =3D itt_addr;
+    dev->hw_its =3D hw_its;
+    dev->host_devid =3D host_devid;
+    dev->eventids =3D nr_events;
+
+    return dev;
+
+fail_itt:
+    free_xenheap_pages(itt_addr, dev->itt_order);
+fail_dev:
+    xfree(dev);
+
+    return NULL;
+}
+
+static void its_free_device(struct its_device *dev)
+{
+    xfree(dev->host_lpi_blocks);
+    xfree(dev->itt_addr);
+    if ( dev->pend_irqs )
+        xfree(dev->pend_irqs);
+    xfree(dev);
 }
=20
 /*
@@ -758,12 +870,10 @@ int gicv3_its_map_guest_device(struct domain *d,
                                paddr_t guest_doorbell, uint32_t guest_devi=
d,
                                uint64_t nr_events, bool valid)
 {
-    void *itt_addr =3D NULL;
     struct host_its *hw_its;
     struct its_device *dev =3D NULL;
     struct rb_node **new =3D &d->arch.vgic.its_devices.rb_node, *parent =
=3D NULL;
     int i, ret =3D -ENOENT;      /* "i" must be signed to check for >=3D 0=
 below. */
-    unsigned int order;
=20
     hw_its =3D gicv3_its_find_by_doorbell(host_doorbell);
     if ( !hw_its )
@@ -823,23 +933,12 @@ int gicv3_its_map_guest_device(struct domain *d,
     if ( !valid )
         goto out_unlock;
=20
-    ret =3D -ENOMEM;
-
-    /* An Interrupt Translation Table needs to be 256-byte aligned. */
-    order =3D get_order_from_bytes(max(nr_events * hw_its->itte_size, 256U=
L));
-    itt_addr =3D alloc_xenheap_pages(order, gicv3_its_get_memflags());
-    if ( !itt_addr )
-        goto out_unlock;
-
-    memset(itt_addr, 0, PAGE_SIZE << order);
-
-    clean_and_invalidate_dcache_va_range(itt_addr,
-                                         nr_events * hw_its->itte_size);
-
-    dev =3D xzalloc(struct its_device);
+    dev =3D its_create_device(hw_its, host_devid, nr_events);
     if ( !dev )
         goto out_unlock;
=20
+    ret =3D -ENOMEM;
+
     /*
      * Allocate the pending_irqs for each virtual LPI. They will be put
      * into the domain's radix tree upon the guest's MAPTI command.
@@ -860,14 +959,6 @@ int gicv3_its_map_guest_device(struct domain *d,
     if ( !dev->host_lpi_blocks )
         goto out_unlock;
=20
-    ret =3D its_send_cmd_mapd(hw_its, host_devid, fls(nr_events - 1),
-                            virt_to_maddr(itt_addr), true);
-    if ( ret )
-        goto out_unlock;
-
-    dev->itt_addr =3D itt_addr;
-    dev->itt_order =3D order;
-    dev->hw_its =3D hw_its;
     dev->guest_doorbell =3D guest_doorbell;
     dev->guest_devid =3D guest_devid;
     dev->host_devid =3D host_devid;
@@ -920,13 +1011,7 @@ out_unlock:
=20
 out:
     if ( dev )
-    {
-        xfree(dev->pend_irqs);
-        xfree(dev->host_lpi_blocks);
-    }
-    if ( itt_addr )
-        free_xenheap_pages(itt_addr, order);
-    xfree(dev);
+        its_free_device(dev);
=20
     return ret;
 }
diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
index c029d5d7a4..3c2649b695 100644
--- a/xen/arch/arm/gic-v3-lpi.c
+++ b/xen/arch/arm/gic-v3-lpi.c
@@ -58,6 +58,7 @@ static DEFINE_PER_CPU(struct lpi_redist_data, lpi_redist)=
;
=20
 #define MAX_NR_HOST_LPIS   (lpi_data.max_host_lpi_ids - LPI_OFFSET)
 #define HOST_LPIS_PER_PAGE      (PAGE_SIZE / sizeof(union host_lpi))
+uint32_t lpi_id_bits;
=20
 static union host_lpi *gic_get_host_lpi(uint32_t plpi)
 {
@@ -202,14 +203,11 @@ void gicv3_lpi_update_host_entry(uint32_t host_lpi, i=
nt domain_id,
     write_u64_atomic(&hlpip->data, hlpi.data);
 }
=20
-static int gicv3_lpi_allocate_pendtable(unsigned int cpu)
+struct page_info *lpi_allocate_pendtable(void)
 {
     void *pendtable;
     unsigned int order;
=20
-    if ( per_cpu(lpi_redist, cpu).pending_table )
-        return -EBUSY;
-
     /*
      * The pending table holds one bit per LPI and even covers bits for
      * interrupt IDs below 8192, so we allocate the full range.
@@ -219,20 +217,34 @@ static int gicv3_lpi_allocate_pendtable(unsigned int =
cpu)
     order =3D get_order_from_bytes(max(lpi_data.max_host_lpi_ids / 8, (uns=
igned long)SZ_64K));
     pendtable =3D alloc_xenheap_pages(order, gicv3_its_get_memflags());
     if ( !pendtable )
-        return -ENOMEM;
+        return NULL;
=20
     memset(pendtable, 0, PAGE_SIZE << order);
     /* Make sure the physical address can be encoded in the register. */
     if ( virt_to_maddr(pendtable) & ~GENMASK(51, 16) )
     {
         free_xenheap_pages(pendtable, order);
-        return -ERANGE;
+        return NULL;
     }
     clean_and_invalidate_dcache_va_range(pendtable,
                                          lpi_data.max_host_lpi_ids / 8);
=20
-    per_cpu(lpi_redist, cpu).pending_table =3D pendtable;
+    return virt_to_page(pendtable);
+}
+
+static int gicv3_lpi_allocate_pendtable(unsigned int cpu)
+{
+    struct page_info *pendtable;
+
+    if ( per_cpu(lpi_redist, cpu).pending_table )
+        return -EBUSY;
+
+    pendtable =3D lpi_allocate_pendtable();
+    if ( !pendtable )
+        return -EINVAL;
=20
+    per_cpu(lpi_redist, cpu).pending_table =3D page_to_virt(pendtable);
+=20
     return 0;
 }
=20
@@ -274,6 +286,38 @@ static int gicv3_lpi_set_pendtable(void __iomem *rdist=
_base)
     return 0;
 }
=20
+void *lpi_allocate_proptable(void)
+{
+    void *table;
+    int order;
+
+    /* The property table holds one byte per LPI. */
+    order =3D get_order_from_bytes(lpi_data.max_host_lpi_ids);
+    table =3D alloc_xenheap_pages(order, gicv3_its_get_memflags());
+    if ( !table )
+        return NULL;
+
+    /* Make sure the physical address can be encoded in the register. */
+    if ( (virt_to_maddr(table) & ~GENMASK(51, 12)) )
+    {
+        free_xenheap_pages(table, order);
+        return NULL;
+    }
+    memset(table, GIC_PRI_IRQ | LPI_PROP_RES1, MAX_NR_HOST_LPIS);
+    clean_and_invalidate_dcache_va_range(table, MAX_NR_HOST_LPIS);
+
+    return table;
+}
+
+void lpi_free_proptable(void *vproptable)
+{
+    int order;
+
+    /* The property table holds one byte per LPI. */
+    order =3D get_order_from_bytes(lpi_data.max_host_lpi_ids);
+    free_xenheap_pages(vproptable, order);
+}
+
 /*
  * Tell a redistributor about the (shared) property table, allocating one
  * if not already done.
@@ -314,7 +358,8 @@ static int gicv3_lpi_set_proptable(void __iomem * rdist=
_base)
     }
=20
     /* Encode the number of bits needed, minus one */
-    reg |=3D fls(lpi_data.max_host_lpi_ids - 1) - 1;
+    lpi_id_bits =3D fls(lpi_data.max_host_lpi_ids - 1);
+    reg |=3D lpi_id_bits - 1;
=20
     reg |=3D virt_to_maddr(lpi_data.lpi_property);
=20
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 14852d18c2..d4af332b0e 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -2083,6 +2083,22 @@ static bool gic_dist_supports_lpis(void)
     return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
 }
=20
+#ifdef CONFIG_GICV4
+static void __init gicv4_init(void)
+{
+        gicv3_info.hw_version =3D GIC_V4;
+
+
+    gicv4_its_vpeid_allocator_init();
+
+}
+#else
+static void __init gicv4_init(void)
+{
+    ASSERT_UNREACHABLE();
+}
+#endif
+
 /* Set up the GIC */
 static int __init gicv3_init(void)
 {
@@ -2157,6 +2173,8 @@ static int __init gicv3_init(void)
=20
     gicv3_hyp_init();
=20
+    if ( gic_is_gicv4() )
+        gicv4_init();
 out:
     spin_unlock(&gicv3.lock);
=20
diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
index 358d0bffb9..fac3b44a94 100644
--- a/xen/arch/arm/gic-v4-its.c
+++ b/xen/arch/arm/gic-v4-its.c
@@ -27,6 +27,83 @@
 #include <asm/vgic.h>
=20
=20
+/*
+ * VPE ID is at most 16 bits.
+ * Using a bitmap here limits us to 65536 concurrent VPEs.
+ */
+static unsigned long *vpeid_mask;
+
+static spinlock_t vpeid_alloc_lock =3D SPIN_LOCK_UNLOCKED;
+
+void __init gicv4_its_vpeid_allocator_init(void)
+{
+    /* Allocate space for vpeid_mask based on MAX_VPEID */
+    vpeid_mask =3D xzalloc_array(unsigned long, BITS_TO_LONGS(MAX_VPEID));
+
+    if ( !vpeid_mask )
+        panic("Could not allocate VPEID bitmap space\n");
+}
+
+static int __init its_alloc_vpeid(struct its_vpe *vpe)
+{
+    int id;
+
+    spin_lock(&vpeid_alloc_lock);
+
+    id =3D find_first_zero_bit(vpeid_mask, MAX_VPEID);
+
+    if ( id =3D=3D MAX_VPEID )
+    {
+        id =3D -EBUSY;
+        printk(XENLOG_ERR "VPEID pool exhausted\n");
+        goto out;
+    }
+
+    set_bit(id, vpeid_mask);
+
+out:
+    spin_unlock(&vpeid_alloc_lock);
+
+    return id;
+}
+
+static void __init its_free_vpeid(uint32_t vpe_id)
+{
+    spin_lock(&vpeid_alloc_lock);
+
+    clear_bit(vpe_id, vpeid_mask);
+
+    spin_unlock(&vpeid_alloc_lock);
+}
+
+static bool __init its_alloc_vpe_entry(uint32_t vpe_id)
+{
+    struct host_its *hw_its;
+
+    /*
+     * Make sure the L2 tables are allocated on *all* v4 ITSs. We
+     * could try and only do it on ITSs corresponding to devices
+     * that have interrupts targeted at this VPE, but the
+     * complexity becomes crazy.
+     */
+    list_for_each_entry(hw_its, &host_its_list, entry)
+    {
+        struct its_baser *baser;
+
+        if ( !hw_its->is_v4 )
+            continue;
+
+        baser =3D its_get_baser(hw_its, GITS_BASER_TYPE_VCPU);
+        if ( !baser )
+            return false;
+
+        if ( !its_alloc_table_entry(baser, vpe_id) )
+            return false;
+    }
+
+    return true;
+}
+
 static int its_send_cmd_vsync(struct host_its *its, uint16_t vpeid)
 {
     uint64_t cmd[4];
@@ -39,6 +116,188 @@ static int its_send_cmd_vsync(struct host_its *its, ui=
nt16_t vpeid)
     return its_send_command(its, cmd);
 }
=20
+static int its_send_cmd_vmapp(struct host_its *its, struct its_vpe *vpe,
+                              bool valid)
+{
+    uint64_t cmd[4];
+    uint16_t vpeid =3D vpe->vpe_id;
+    uint64_t vpt_addr;
+    int ret;
+
+    cmd[0] =3D GITS_CMD_VMAPP;
+    cmd[1] =3D (uint64_t)vpeid << 32;
+    cmd[2] =3D valid ? GITS_VALID_BIT : 0;
+
+    /* Unmap command */
+    if ( !valid )
+        goto out;
+
+    /* Target redistributor */
+    cmd[2] |=3D encode_rdbase(its, vpe->col_idx, 0x0);
+    vpt_addr =3D virt_to_maddr(vpe->vpendtable);
+    cmd[3] =3D (vpt_addr & GENMASK(51, 16)) |
+             ((HOST_LPIS_NRBITS - 1) & GENMASK(4, 0));
+
+ out:
+    ret =3D its_send_command(its, cmd);
+
+    return ret;
+}
+
+static int its_send_cmd_vinvall(struct host_its *its, struct its_vpe *vpe)
+{
+    uint64_t cmd[4];
+    uint16_t vpeid =3D vpe->vpe_id;
+
+    cmd[0] =3D GITS_CMD_VINVALL;
+    cmd[1] =3D (uint64_t)vpeid << 32;
+    cmd[2] =3D 0x00;
+    cmd[3] =3D 0x00;
+
+    return its_send_command(its, cmd);
+}
+
+static int its_map_vpe(struct host_its *its, struct its_vpe *vpe)
+{
+    int ret;
+
+    /*
+     * VMAPP command maps the vPE to the target RDbase, including an
+     * associated virtual LPI Pending table.
+     */
+    ret =3D its_send_cmd_vmapp(its, vpe, true);
+    if ( ret )
+        return ret;
+
+    ret =3D its_send_cmd_vinvall(its, vpe);
+    if ( ret )
+        return ret;
+
+    ret =3D its_send_cmd_vsync(its, vpe->vpe_id);
+    if ( ret )
+        return ret;
+
+    return 0;
+}
+static int __init its_vpe_init(struct its_vpe *vpe)
+{
+    int vpe_id, rc =3D -ENOMEM;
+    struct page_info *vpendtable;
+    struct host_its *hw_its;
+
+    /* Allocate vpe id */
+    vpe_id =3D its_alloc_vpeid(vpe);
+    if ( vpe_id < 0 )
+        return rc;
+
+    /* Allocate VPT */
+    vpendtable =3D lpi_allocate_pendtable();
+
+    if ( !vpendtable )
+        goto fail_vpt;
+
+    if ( !its_alloc_vpe_entry(vpe_id) )
+        goto fail_entry;
+
+    rwlock_init(&vpe->lock);
+    vpe->vpe_id =3D vpe_id;
+    vpe->vpendtable =3D page_to_virt(vpendtable);
+    /*
+     * We eagerly inform all the v4 ITS and map vPE to the first
+     * possible CPU
+     */
+    vpe->col_idx =3D cpumask_first(&cpu_online_map);
+    list_for_each_entry(hw_its, &host_its_list, entry)
+    {
+        if ( !hw_its->is_v4 )
+            continue;
+
+        if ( its_map_vpe(hw_its, vpe) )
+            goto fail_entry;
+    }
+
+    return 0;
+
+ fail_entry:
+    xfree(page_to_virt(vpendtable));
+ fail_vpt:
+    its_free_vpeid(vpe_id);
+
+    return rc;
+}
+
+static void __init its_vpe_teardown(struct its_vpe *vpe)
+{
+    unsigned int order;
+
+    order =3D get_order_from_bytes(max(lpi_data.max_host_lpi_ids / 8, (uns=
igned long)SZ_64K));
+    its_free_vpeid(vpe->vpe_id);
+    free_xenheap_pages(vpe->vpendtable, order);
+    xfree(vpe);
+}
+
+int vgic_v4_its_vm_init(struct domain *d)
+{
+    unsigned int nr_vcpus =3D d->max_vcpus;
+    int ret =3D -ENOMEM;
+
+    if ( !gicv3_its_host_has_its() )
+        return 0;
+
+    d->arch.vgic.its_vm =3D xzalloc(struct its_vm);
+    if ( !d->arch.vgic.its_vm )
+        return ret;
+
+    d->arch.vgic.its_vm->vpes =3D xzalloc_array(struct its_vpe *, nr_vcpus=
);
+    if ( !d->arch.vgic.its_vm->vpes )
+        goto fail_vpes;
+    d->arch.vgic.its_vm->nr_vpes =3D nr_vcpus;
+
+    d->arch.vgic.its_vm->vproptable =3D lpi_allocate_proptable();
+    if ( !d->arch.vgic.its_vm->vproptable )
+        goto fail_vprop;
+
+    return 0;
+
+fail_vprop:
+    xfree(d->arch.vgic.its_vm->vpes);
+ fail_vpes:
+    xfree(d->arch.vgic.its_vm);
+
+    return ret;
+}
+
+void vgic_v4_free_its_vm(struct domain *d)
+{
+    struct its_vm *its_vm =3D d->arch.vgic.its_vm;
+    if ( its_vm->vpes )
+        xfree(its_vm->vpes);
+    if ( its_vm->vproptable )
+        lpi_free_proptable(its_vm);
+}
+
+int vgic_v4_its_vpe_init(struct vcpu *vcpu)
+{
+    int ret;
+    struct its_vm *its_vm =3D vcpu->domain->arch.vgic.its_vm;
+    unsigned int vcpuid =3D vcpu->vcpu_id;
+
+    vcpu->arch.vgic.its_vpe =3D xzalloc(struct its_vpe);
+    if ( !vcpu->arch.vgic.its_vpe )
+        return -ENOMEM;
+
+    its_vm->vpes[vcpuid] =3D vcpu->arch.vgic.its_vpe;
+    vcpu->arch.vgic.its_vpe->its_vm =3D its_vm;
+
+    ret =3D its_vpe_init(vcpu->arch.vgic.its_vpe);
+    if ( ret )
+    {
+        its_vpe_teardown(vcpu->arch.vgic.its_vpe);
+        return ret;
+    }
+    return 0;
+}
+
 static int its_send_cmd_vmapti(struct host_its *its, struct its_device *de=
v,
                                uint32_t eventid)
 {
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index bd2696f354..411beb81c8 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -77,6 +77,7 @@
 #define GITS_BASER_ENTRY_SIZE_SHIFT     48
 #define GITS_BASER_ENTRY_SIZE(reg)                                       \
                         ((((reg) >> GITS_BASER_ENTRY_SIZE_SHIFT) & 0x1f) +=
 1)
+#define GITS_LVL1_ENTRY_SIZE            8UL
 #define GITS_BASER_SHAREABILITY_SHIFT   10
 #define GITS_BASER_PAGE_SIZE_SHIFT      8
 #define GITS_BASER_SIZE_MASK            0xff
@@ -117,9 +118,19 @@
 /* We allocate LPIs on the hosts in chunks of 32 to reduce handling overhe=
ad. */
 #define LPI_BLOCK                       32U
=20
+extern unsigned int nvpeid;
+/* The maximum number of VPEID bits supported by VLPI commands */
+#define ITS_MAX_VPEID_BITS      nvpeid
+#define MAX_VPEID               (1UL << ITS_MAX_VPEID_BITS)
+
 #ifdef CONFIG_GICV4
 #include <asm/gic_v4_its.h>
 #endif
+
+extern uint32_t lpi_id_bits;
+#define HOST_LPIS_NRBITS   lpi_id_bits
+#define MAX_HOST_LPIS      BIT(lpi_id_bits, UL)
+
 /*
  * Describes a device which is using the ITS and is used by a guest.
  * Since device IDs are per ITS (in contrast to vLPIs, which are per
@@ -169,6 +180,7 @@ struct host_its {
     void *cmd_buf;
     unsigned int flags;
     struct its_baser tables[GITS_BASER_NR_REGS];
+    bool is_v4;
 };
=20
 /* Map a collection for this host CPU to each host ITS. */
@@ -273,8 +285,13 @@ struct pending_irq *gicv3_assign_guest_event(struct do=
main *d,
 void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
                                  uint32_t virt_lpi);
 struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type);
+bool its_alloc_table_entry(struct its_baser *baser, uint32_t id);
+struct page_info *lpi_allocate_pendtable(void);
+void *lpi_allocate_proptable(void);
+void lpi_free_proptable(void *vproptable);
 void lpi_write_config(uint8_t *prop_table, uint32_t lpi, uint8_t clr,
                       uint8_t set);
+uint64_t encode_rdbase(struct host_its *hw_its, unsigned int cpu, uint64_t=
 reg);
 int its_send_command(struct host_its *hw_its, const void *its_cmd);
=20
 struct its_device *get_its_device(struct domain *d, paddr_t vdoorbell,
diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include/a=
sm/gic_v4_its.h
index 722247ec60..fb0ef37bbe 100644
--- a/xen/arch/arm/include/asm/gic_v4_its.h
+++ b/xen/arch/arm/include/asm/gic_v4_its.h
@@ -49,6 +49,7 @@ struct event_vlpi_map {
     unsigned int            nr_vlpis;
 };
=20
+void gicv4_its_vpeid_allocator_init(void);
 #endif
=20
 /*
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index f12d736808..580310fec4 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -414,6 +414,9 @@ bool gic_is_gicv4(void);
 #define gic_is_gicv4() (false)
 #endif
=20
+int vgic_v4_its_vm_init(struct domain *d);
+void vgic_v4_free_its_vm(struct domain *d);
+int vgic_v4_its_vpe_init(struct vcpu *vcpu);
 #endif /* !CONFIG_NEW_VGIC */
=20
 /*** Common VGIC functions used by Xen arch code ****/
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 0da8c1a425..6baf870ad5 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -22,6 +22,7 @@
=20
 #include <asm/mmio.h>
 #include <asm/gic.h>
+#include <asm/gic_v3_its.h>
 #include <asm/vgic.h>
=20
=20
@@ -329,6 +330,15 @@ int domain_vgic_init(struct domain *d, unsigned int nr=
_spis)
     for ( i =3D 0; i < NR_GIC_SGI; i++ )
         set_bit(i, d->arch.vgic.allocated_irqs);
=20
+    if ( gic_is_gicv4() )
+    {
+        ret =3D vgic_v4_its_vm_init(d);
+        if ( ret )
+        {
+            printk(XENLOG_ERR "GICv4 its vm allocation failed\n");
+            return ret;
+        }
+    }
     return 0;
 }
=20
@@ -366,11 +376,14 @@ void domain_vgic_free(struct domain *d)
 #endif
     xfree(d->arch.vgic.pending_irqs);
     xfree(d->arch.vgic.allocated_irqs);
+
+    if ( gic_is_gicv4() )
+        vgic_v4_free_its_vm(d);
 }
=20
 int vcpu_vgic_init(struct vcpu *v)
 {
-    int i;
+    int i, ret;
=20
     v->arch.vgic.private_irqs =3D xzalloc(struct vgic_irq_rank);
     if ( v->arch.vgic.private_irqs =3D=3D NULL )
@@ -389,6 +402,16 @@ int vcpu_vgic_init(struct vcpu *v)
     INIT_LIST_HEAD(&v->arch.vgic.lr_pending);
     spin_lock_init(&v->arch.vgic.lock);
=20
+    if ( gic_is_gicv4() && gicv3_its_host_has_its())
+    {
+        ret =3D vgic_v4_its_vpe_init(v);
+        if ( ret )
+        {
+            printk(XENLOG_ERR "GICv4 its vpe allocation failed\n");
+            return ret;
+        }
+    }
+
     return 0;
 }
=20
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:17:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:17:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218893.1527781 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcc-0007L1-RV; Mon, 02 Feb 2026 16:17:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218893.1527781; Mon, 02 Feb 2026 16:17: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 1vmwcc-0007KT-Mh; Mon, 02 Feb 2026 16:17:54 +0000
Received: by outflank-mailman (input) for mailman id 1218893;
 Mon, 02 Feb 2026 16:17: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZk-0000fY-3P
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:56 +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 4c1ce79a-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:49 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI0PR03MB10299.eurprd03.prod.outlook.com
 (2603:10a6:800:202::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:14:45 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4c1ce79a-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PZFwqLP8jnAX3vL533jFRxDiixPUBW2I/QRHrFwYd9qqpzalhNpjeYhXYGWrcGmuJUWz+toKCq/mbF2qkz0n9ITyIrZadbY4OTvmG/tNcEu2DQQFgnux7rmSp9yT4S/BOk9HSk8b/Z8ZCwI0DkNLfmTz4OJ5M2+QeF2CANSqZ0BiFw4MZSTAiaEw/lRShgP5RTHym8sfhznHZ3YvkDrzKTdiwMK1dF+JTiU4GwnmBxlawBPH43JwNJaSOd4R/885eh53byFsLjBtObUN4ZKzNEFI6qBwnMgdQDPFGfwlKW8Iugdg4HMCE2EfSUU22xatwPKRxJsgpNtxCsz2dMFPmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xpG0vAG8e6xad23pmIjhAdmaEHtng9kYL4aNQEOXKOI=;
 b=BZVoNtoyCYEZ2o1QinhknwRcqYO5DVx1RuSnTrz8AU53ZxTalm7xpwa9O9qTwI0GO9Uj4U0cPGTqQeggL8P2MH8wtegFkfwdUtsMgoL3gLprdJbvc92z6sWCFNG8GcmOAjL0ff5WA1cKy6F0MCPA2c8XwulLqsnKHEZ65yYTg6lQyoB7onRbq0IXk5a+QbOwUqZ9vmJnf4D3J/z5KI9/MHrJ9MtmVyKcaYLTpaSFwuwNIDOwLqsnmkIMsaRDmiGesVGMbByfUAmHXaJtkq874CcN6SJtzYaoNrviHzOmcy7CWNsHSHdkYb38sf5h4gP2vkB5HUbDPYC3cfihJqwemA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xpG0vAG8e6xad23pmIjhAdmaEHtng9kYL4aNQEOXKOI=;
 b=AfMhSrlBAQv8JZjMCJwSItayuXsdKweoPAMWc7yT6VlTTeZmxzBX8AApmxB0i5IhyoWRzhbfDTS/P6Gm0YOXtdpcSQX7Ow66tDT5Py+wi19e0M/jdrHKcPAnrySX8+mK4xDxXFmrvI5Axms1qTzmhCNT3A3owwIN0plV+GzrzBxPWBeNxD7rG/UENMR+5mHk03ekRRzE3S/E5uF+psga64VMRxwLf4LVR9LPwgysDxd5UF7BybFIr3rrVu6S14LpH5ju90Cj6cVohBY4GorOlycqhWqZXuNLX+crrxWYkZgyyWlO6F390WHJlpMbxIS3TORtUYK4e9rSFe8ZP3lgcQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 16/19] arm/gic: Fix LR group handling for GICv4
Thread-Topic: [RFC PATCH 16/19] arm/gic: Fix LR group handling for GICv4
Thread-Index: AQHclF8K603U0XXQOEuJhQnegCFT+Q==
Date: Mon, 2 Feb 2026 16:14:43 +0000
Message-ID:
 <13bab832bed00832d7597105a33ab2f215e626ce.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|VI0PR03MB10299:EE_
x-ms-office365-filtering-correlation-id: 38f49fc7-6f95-4cff-ec65-08de62762e6d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?tNoVKT2OXWSdZGERcPGdG89siIzahz+RyAb6Z9nMupZmYJ3FQ1uGUTq1IK?=
 =?iso-8859-1?Q?u6ecb2X8GJqQKas4TcX1Z80oluwMI6anW1K0iX4pCW6cqndictP7/bmdTB?=
 =?iso-8859-1?Q?2wgluiK2D3gptnbTQbqDiV9A8cLuzJ/v5+O5bbV8/tOwKbCNapuGAuHILb?=
 =?iso-8859-1?Q?/1qrnGv5pJ0/vwGRXGHlmQ6oOlRyv5VZCMW5OCztLi/1EWbgmtAMh5c9Gg?=
 =?iso-8859-1?Q?annsXz7zcpZ3lJxC1m2LRmGkcGw6onJIBRGv/KzgXXtnERAK1SU9YLJbGA?=
 =?iso-8859-1?Q?Mg2LWih5239ejAVtquYopzXUQuMSMjAJgFSqGQjH5fkM0nLKAeqORP/pnJ?=
 =?iso-8859-1?Q?TJQecOPJhxcMTwcGhZPY8WpwRa0AX9eFZ9azaqSOjy5YjL5/rkPtYRhcQI?=
 =?iso-8859-1?Q?CvIod9RT/QL/8kkOu3KQ3hCBI+jStzmliHLZ63sTlkh8InvjUQixKhIk+k?=
 =?iso-8859-1?Q?WBGMBmz/gRsvv+/1KwX98aLZlz7B0nXA4L0juD2Uz/SUIwSL+DOQroZCCS?=
 =?iso-8859-1?Q?d7pHviSSn/qpp0GnF5PWWL+eniCWMzMaP+XlJRh3sJYi/NZJddpW36aQ7A?=
 =?iso-8859-1?Q?l54Oi9tfPnYppMLOgbeNfZCnMgxvdkvkj0lZKJS2uHsG0Hvn9B2UVfy8b0?=
 =?iso-8859-1?Q?quThzHpzZNdfunxAI2+uUVvpil7uWbcWI7b37UEHLibiUY/qvvFuZO5uFE?=
 =?iso-8859-1?Q?723Ew3A0SOc6jH5vlo5rF1/aBZaBjxIf4o1qxUn9JDE+0j/jqSTovuRt6L?=
 =?iso-8859-1?Q?kDjRJGDdR1kFcuX1PB6hWWXYK/fBrKiDtJZomYF42n8cPRCwEew6XYPWSR?=
 =?iso-8859-1?Q?SSgLXr15JTzt/HQprF+oX83EyYQUS+m6wGSHgC7NEWVlQ8Ury2MzjVQ9tM?=
 =?iso-8859-1?Q?D9HLryiFZlbHiVxylUUkXKqxD0/mfcvlGFAkoZCSGktP/YIujnOQNEBTrt?=
 =?iso-8859-1?Q?d8JD3B0g7IleTo0txAHwGL6njHO0evZa9zSzvghOx9nBKeZN42cc3X1+I0?=
 =?iso-8859-1?Q?j9Gvso9TczM/u077E1nmauEWd7nDAPCg5zu8GX2EsxiqQj+aM+PBv9cl1+?=
 =?iso-8859-1?Q?D4Vk+w7uLsW6/W8a9JsLthH7VNSzqi+21MQFBtXfo7TaVcRHqml6fsXQpL?=
 =?iso-8859-1?Q?jHUoDmNGI9Eel2q+s3cYAdleO+PpAMn5eq3OZHCZUrZn5YHhLm1C9OsZFD?=
 =?iso-8859-1?Q?vKC2yqLcQtUP1tb8SonEZKT89VnYyRS/VMw9cRbBR2lZ7k6PLpanTfPOpc?=
 =?iso-8859-1?Q?rI+lo+1vwUxSu+/XcYgRdVW/9AWByHdwFWMWMQefob+fmqgZFp47wDAIag?=
 =?iso-8859-1?Q?V3NnG/0B1KNcArA1IARJJ9VVRczhShcqqwtRJf5X3XnM+vWFxG3o+N1SB0?=
 =?iso-8859-1?Q?YK4htT5m4CaandOg2Mv6C9e8pFiivTNiQ5/fBoQcaGMJ/caglIYQ7p+siJ?=
 =?iso-8859-1?Q?N+u92CMPGslx3t5DMnlmK7C2GqjsQYnoRcWpS3McWHSnW0Guyrw9dsQTdy?=
 =?iso-8859-1?Q?jKjuQVkEteCeeuBDW0i+hWcH86MPrzuCI1XntImn7hfPlF48JY1KLjCjSf?=
 =?iso-8859-1?Q?c1w0JYB5vEa4x+CsChGY69umXjPHeYSBE6gBAvFi3ZB6wlb62Nvbl3J1Xu?=
 =?iso-8859-1?Q?GTWcD/+eKDssfDryXKkKKqnjdYt9CnFoWwHXpCgL8BqbAmdZmFBDO8PmGa?=
 =?iso-8859-1?Q?VX7AehcI1RQ1MddsG2E=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)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?UMOEIw0hkmLOTd3dPO2tSa+TMhUEdtTUCnsYqX4m4CItjd+ql5pLFaE47W?=
 =?iso-8859-1?Q?maHTfKeZJ/EJ0UgVGyFdF8Aiclck2z8DyXrxUCRZw+Sf+SraPOudWf6PtG?=
 =?iso-8859-1?Q?1BMzR5fCj9k/FnXOrtJoJCIsjBKWC352Vs9jDCfBTdn2l/vIP4e/KLpz7H?=
 =?iso-8859-1?Q?oBCI3Z7vsDDyApohUA8Xrjs6Z42CepJlxzJIVIRmoliQtabfvx9OkVi+Od?=
 =?iso-8859-1?Q?QhMVQU6XUAE26SVQSX358h39MLJuhw9uJ9vJx+2mbU+VJ+l4D1dE79x5Nu?=
 =?iso-8859-1?Q?U2r2jgOqcMJ65i3mAVireyF3HWeyjNddtzdyQr7/0VZi1aXlCTQPecD3t8?=
 =?iso-8859-1?Q?wIS6WV7V55J2n2CFLrD+eZ4eyr9TVLY8n0kvqPgQhR01RtUfJwT69cYFP9?=
 =?iso-8859-1?Q?QvesR3HySRcQBngddARujvqRU84+fgTyv//GfYZpVz1alEghjWBrhqmQMB?=
 =?iso-8859-1?Q?+shjayZGrTPEpIB9W6ZXAh6LM6gZNId0u4eGf5az9p47L61ZJ14ZTTxb1N?=
 =?iso-8859-1?Q?HdLiLsT2NAlS789/fowVW1ynWUaju+vJ5eErwfFPgpQM+j50mAzxotU2iq?=
 =?iso-8859-1?Q?/3SsC5AnE63gEmdxsw2xQwvq+qUq+Cs+Jc63+AnmfOPpQCXJXsoB+aTxgZ?=
 =?iso-8859-1?Q?LYAJrIPQHYkZKeVRKXoV6ykQONgOsOiMSFyFoJvlb4FxOz7diIr2nSgF1T?=
 =?iso-8859-1?Q?4MmzxDdknM33xWiV/sftEmgmx8XqS695n7b6e//mG2GKCFyeJeT/r8xpxW?=
 =?iso-8859-1?Q?Frugx5H3JBy1VjhpXTmVCqpKOi0HPdnDBW0O+yaUNupPCJs8GfuU0e5G4p?=
 =?iso-8859-1?Q?nAtV7LoFE1zpVSGW27VDTGH/Mym3sMAvWVLg2w5NMxx9ZGsZlPIoGyvcIh?=
 =?iso-8859-1?Q?kB7XfLjdH9IWFJjWS1L2zFm+MjclE9X40EksWzVFP3H7CGRAIRWfyUCXFO?=
 =?iso-8859-1?Q?J6JduhD0Qb00P/7EMEfx4RwyE5L1JEAk3L0oJ3basN+VNjh0sfhcc1+boQ?=
 =?iso-8859-1?Q?IbhqRwTwiy0ixoIzCjGHphKavMuQfZ0J1YNZbZqL1mcmfbLSDYnmISN71p?=
 =?iso-8859-1?Q?5uCOMm69iheMpZmOUW53c7qDevexm4TTC7bXc/H9BIkK+LhNV4mD2nOhpR?=
 =?iso-8859-1?Q?FmG3Qo5eVi87UO9Fbg8qJ0k7xsSeeq/eHO8+L8ymQNsBSBBWNrC/+H5tne?=
 =?iso-8859-1?Q?5NtPYdeNLNZei8jaDJ6gpRxdTE78kmPEyDSGMWo5BMGAv3FI6SbBi2HVrs?=
 =?iso-8859-1?Q?cCHoZbRQyfMQefXylPlTvxe2qqmhujOr7LDzqxzU2FUrbP0pCchvusJsmc?=
 =?iso-8859-1?Q?oFIBqnjshq/IM0N7alMWuzLjbvhtwPB8qWtUAH2hPs7jyJSjSC60qYzxux?=
 =?iso-8859-1?Q?nMudJLunp5QpVmRr5+apwZ6z14wE+EkEOL3enImsFEkzg9uTLo8/bQDKg4?=
 =?iso-8859-1?Q?SzObseb/PzvACvOr+zjmJj6oj8+Jojz5k/nUFcUNxCXykPH8SXAbxiGAdw?=
 =?iso-8859-1?Q?tqs9/YDnlWv2jOy24thUtdelGwm4RadSVKi2OKou6ElPuRnXXXMMBJ6A1K?=
 =?iso-8859-1?Q?7KVLx24TGYKbMvU3KPJxLWFlz2ZUk8da9TElV92ofZRv/l19mn9Sob48mo?=
 =?iso-8859-1?Q?ejKLvJWKXg0WhkrWpqDS4Bys6pOYjTp4A4FtU0h/jdcRSAVchQB0NTHtmR?=
 =?iso-8859-1?Q?F/9uUFjJrzchP0f20zWsV417mydSshLkDSlF7fMW9r94eF3L+QaDOaA1n2?=
 =?iso-8859-1?Q?kShtLb0Y60HSfKXYOX/UBDlJTFpRCSF53i/Dml2vGwmqyBe+R3pOVUWoL9?=
 =?iso-8859-1?Q?SSoYMDO6euhnlw6sQrwF/45ZnxvgefE=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: 38f49fc7-6f95-4cff-ec65-08de62762e6d
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:43.9878
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: A236MjKGG2Pg/MIz8G3Z7Od71MBa6gWYClrUz5yOodliucWrSkFJrLtAAwKrN08z+eFPi2ebWt2TTKeI6zSnAQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10299

Extend the check to mark interrupts as Group1 for all GIC versions >=3D 3

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 07736179db..1cb3169b72 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1366,10 +1366,10 @@ static void gicv3_update_lr(int lr, unsigned int vi=
rq, uint8_t priority,
     val =3D  (((uint64_t)state & 0x3) << ICH_LR_STATE_SHIFT);
=20
     /*
-     * When the guest is GICv3, all guest IRQs are Group 1, as Group0
-     * would result in a FIQ in the guest, which it wouldn't expect
+     * When the guest is GICv3/GICv4/GICv4.1, all guest IRQs are Group 1, =
as
+     * Group0 would result in a FIQ in the guest, which it wouldn't expect
      */
-    if ( current->domain->arch.vgic.version =3D=3D GIC_V3 )
+    if ( current->domain->arch.vgic.version >=3D GIC_V3 )
         val |=3D ICH_LR_GRP1;
=20
     val |=3D (uint64_t)priority << ICH_LR_PRIORITY_SHIFT;
@@ -1455,10 +1455,10 @@ static void gicv3_write_lr(int lr, const struct gic=
_lr *lr_reg)
     }
=20
     /*
-     * When the guest is using vGICv3, all the IRQs are Group 1. Group 0
-     * would result in a FIQ, which will not be expected by the guest OS.
+     * When the guest is using vGICv3/vGICv4/vGICv4.1, all the IRQs are Gr=
oup 1.
+     * Group 0 would result in a FIQ, which will not be expected by the gu=
est OS.
      */
-    if ( vgic_version =3D=3D GIC_V3 )
+    if ( vgic_version >=3D GIC_V3 )
         lrv |=3D ICH_LR_GRP1;
=20
     gicv3_ich_write_lr(lr, lrv);
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:17:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:17:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218894.1527786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwcd-0007TO-9M; Mon, 02 Feb 2026 16:17:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218894.1527786; Mon, 02 Feb 2026 16: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 1vmwcd-0007Qj-1x; Mon, 02 Feb 2026 16:17:55 +0000
Received: by outflank-mailman (input) for mailman id 1218894;
 Mon, 02 Feb 2026 16:17: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZo-0000fY-4N
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:15:00 +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 4ceebecc-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:50 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI0PR03MB10299.eurprd03.prod.outlook.com
 (2603:10a6:800:202::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:14:46 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4ceebecc-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O1buO1wly/sDB9AUbLL01qigQcEAu1BnTNK6j0PmFutscJxL8tLFYmsOqhTP5WaYJdazggK+VqnCskFsdBUkVYkWjPiVgLyDL0A8+WkhIikgd0pGL76N2P1blstvuvkI2jabTtQpdGjIBk8IAYztb3SeiR0u27SLdZzaB8zfkUAx/1dSSvqOocFhdmZy530zhN20UzzWS8jouMd3R6isDYOJVj5nzr72x0ZVOODR8M5W1GnSuC0IfIhlniHpAgLlnYCQPiMzUi4yNBdwJjbE+MVDLXXlglDuh98hv1tz3YLVO9Sr+XVqRLOvI/6vsBXt790Lr0R7Tt9GdgxNkFU+1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=947yUiItWFbYBUq0+f2mt/sPhjNqCQyd8DuWv6qI49k=;
 b=x9cslM0JENIwJ54WAltKMjAddHUQ+pSXP8S1ynno3Kg6x6gMZBis3vHA4pCvD3wL4NiV6/vKCPiKpZct8NdUHVeB5un8N6wi1qF0sFPLAn78HNwKqU9htlUHLctVW2T/lDkkI31mybqOluH0OLF1LMZDxfz7X4GFRsQ2KlXS38cCBTPpdnHR6lcemBzi1T7waJueh4ZIpokpZ5AuB00Olc9Q/l+bnHe7RlrsZnQXyAgrreT4ZyolHfThji6jhOd0yqTW1lWCQcbkQHhWGi8iLyBjmzuJEwYw0NFQsgGG/xMVq59MHD+YEtEv1bw6P5vq5X6oJMIoIvYrhtwcNLwkqw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=947yUiItWFbYBUq0+f2mt/sPhjNqCQyd8DuWv6qI49k=;
 b=NuuBWw7gVgzGABg052kUeizAsjUZ7XMbBfwOFkfe4t9zHhJ2PF25xnaX2wEq8hKhrcq8wIbFyP5K2+UdeV0PFW/Ir0PwfrCjOhtZQRMOV6YoVb2fOYwi4Lmd9QBi927NhIPSFlmR4xA3ojZGGimrBYp+2j93M3go5wXieJANyTD+stjlr3cRTMpIYho3bTceQXedshwYXZ0ErOQ+CK5xb2cIroqMvkstvTjgELs2mUGGLVRdtjbG0Gm+IQH+stjYWuPE/jaXcEizC85gNEKRdl50dyUSp0KJQggq0799uyoBc29kcbljDdcW/1Txn9wMvoyjcnCw94ZOfJGJBiWxxg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 18/19] arm/gic: Add VPE proxy support
Thread-Topic: [RFC PATCH 18/19] arm/gic: Add VPE proxy support
Thread-Index: AQHclF8L8u/ksOolEkegMdNrkhgb0g==
Date: Mon, 2 Feb 2026 16:14:44 +0000
Message-ID:
 <2bbe54851092309a0c23d68e60dfe93e4f77ef3a.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|VI0PR03MB10299:EE_
x-ms-office365-filtering-correlation-id: c99e3eb7-35cf-4e75-69a0-08de62762ed7
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?ndmDNkLHHNDqoq5+RXBalAyr1JIYypPczRUDs00+WbBU3H2Ku7NJDtIyyq?=
 =?iso-8859-1?Q?24RHx6J6uhUVa9830+6nQ16SMV1n25oaW9Hm532IVNmyoryXtauwWOR6S7?=
 =?iso-8859-1?Q?zLd2DklXnSME9NJzz/gNKTEL2YcRzxEg9TbO1HMkK+A0tS75+ETB54YOPh?=
 =?iso-8859-1?Q?W3PUAIwJj6dE+LGPymMpCkt70x2gdvbPguY8F9cOTH77FNGWIHySro3SP6?=
 =?iso-8859-1?Q?L+0xACo1ZJHr213SAieOBVM74+HEp5fUA8Byutt393smALrnU8i9ivxhBe?=
 =?iso-8859-1?Q?UcvlRVdpF5nf5gOnxuGz27omi9HPxY7Ug7ik+8mcmSQx5ossEbUfFNpGxR?=
 =?iso-8859-1?Q?ZZuvQqZqwZvaW+fC3c9YDL6AsHnU7pYuLC8c13GgE/dtcuLNa8h5Hrgank?=
 =?iso-8859-1?Q?EDY97V3zLA6vdEjBB5rB31YdnKrdq7hq99DiccfpVrd1P3LmHuQ12Sj+M9?=
 =?iso-8859-1?Q?weKuaw15h0JLnyQtBq+3w49WolmR3FbxYB2jThSqnp7ZsrnkyL1f2Daw5c?=
 =?iso-8859-1?Q?dBxGeBraeGwyoDLg3ZwkwVSnJWPcXVjaIQm90nfp64FKPPraxNudUP2pMN?=
 =?iso-8859-1?Q?qALij1JzfQVz6kHNSg6o1NvhJsDRvFWmnJ9N+ZKlHPuc0p+3VHOxiE8VUa?=
 =?iso-8859-1?Q?1FY1mT35RQXzjM4gr1q5plI8opPtaigcaE1yhKHHsR3pp/I68sjDtw+oA6?=
 =?iso-8859-1?Q?SSGBxFUbDe9rRCTBmwIvyVIkYNSEEgPDcZxIDapBokF6CwN31YjhoKTldH?=
 =?iso-8859-1?Q?5aYa1aTtpqsv47cTS+VM26NcUJGdXn7A1DKsTtG0V38RDCvkZDRoMQNger?=
 =?iso-8859-1?Q?VtnUyNeoo9g/TPlbSEeqcSkdHVoGjA0V2pNOUQcD73gtIj09TJUY+c+Zlh?=
 =?iso-8859-1?Q?Bt/e5+TR04sT7qO9PcrBI5zRIQfvU5NQ4vzwEvJBEqGuBv+p6g1SvanX98?=
 =?iso-8859-1?Q?RUSKiMD4wbbElEPYdYM9/YPaCBmmJ59mGoH1V74kHgE+RgVBAdOadO0/zd?=
 =?iso-8859-1?Q?OTo2aJo3AAB5gig6zAHJYfUSoHEssmbpL6Yb6lFf8fdPXfS4G5ijrdLhBP?=
 =?iso-8859-1?Q?TFUBbXeY3Ldcq7JpPl4BjCKOsx2X/umLj/0RexrLemvh7NfjksFT7tqDM6?=
 =?iso-8859-1?Q?ThxCeDIV3xJIOyjhY1+ewNJS6Jei9k/RYR+Lb5lvqaApgwHrswZFECEeL6?=
 =?iso-8859-1?Q?TuYKTUVtN52XvBrd97F8MEzhCuplLntMjSJmI2AMuCXrVkoHnSSiPlAjT2?=
 =?iso-8859-1?Q?fx0ogAn25mJnoyPRKjE3iPX5AGieaMaEbUxuNKDPjW3QnL+pCPKY7ac31B?=
 =?iso-8859-1?Q?55IypUR7wIR1zXAgYa0syz457Ac2pXrHoA4LG55ta+NU5FXJlteYr8o38n?=
 =?iso-8859-1?Q?SclEdNTXePEF037UGYNPWWC+L4YsgkRdM6TraKBi7tJgE5psrh2Tdb1w56?=
 =?iso-8859-1?Q?Nof65ba9UTry3rQ/AT+e+X6u3PPpD07g/ssTmIVAWlrk+v7x6dtZ3yJGRu?=
 =?iso-8859-1?Q?F+qipSmh3UWTKmiunDeNa9GjFHWJu9oIVmXUXiq4GVXKD0A7w4hu5u98XG?=
 =?iso-8859-1?Q?Zg+V0xZc3OWssGTHgz/DsRBD9qY8LTbPLpjKR+Qwt+DndpTFuhHW0BE+dh?=
 =?iso-8859-1?Q?aPJAHP/MZnjVCpScbaemNqz68qGL/dp0J0y0+8KmrrAP9IvWzegwRiq87h?=
 =?iso-8859-1?Q?7fMeKSTX6tx9P3B/sPk=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)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?vbCiDV2hHOfXypqTquZVYeImI6kwCGpg7UaTj/OJeNqZZXy8dNQYTf5VrK?=
 =?iso-8859-1?Q?xfqil9LXeplFfoJLUm5HLYMJ+4MN+5k2Tl8dYCgyZeEizX+kHJLMghX9nq?=
 =?iso-8859-1?Q?3zr9B1b0mAxr2vNZ3QznY9k98bLUNYLyEsA7v9Le2LpYpNgUvLRJDWbHg5?=
 =?iso-8859-1?Q?3mYwWOC0OChVE+9avZL6vzZyTISXEPksHfodW4nmE73Vlvc8HyXEQaSN4u?=
 =?iso-8859-1?Q?+1VgKUZ0mbe6fyQiAE9e7q/cvrzMSDQkp9IDdLog/X7sicAgSw3d3TMtnM?=
 =?iso-8859-1?Q?XJ/FGE7Z3ihuXwUgStECcStrvKNoLSoT39otU9WychyrNNpzWQ+A8gT+KI?=
 =?iso-8859-1?Q?ShFERpJjGKfww8J5etznQ5tfMll5YBQTdXsmoGVI0E/KTPdiEAs8LzbBRZ?=
 =?iso-8859-1?Q?sQndmIuERWpX6OkK3sHZtPNxTgBjijdapZsKlEt5Uhh6U3QMaORghgCPi6?=
 =?iso-8859-1?Q?oY+L0MYqwL8wfGO+cg2wcs+rzmcxNY250LFGMxC7GxqwLCcKzTxAW0bQnx?=
 =?iso-8859-1?Q?dIyKgVrh71RDrAolC0UFd6qq5w9AwtbPLVhtsURxejxJpl9oKcZAZu/uYk?=
 =?iso-8859-1?Q?sq6Ya9hjo/Ug9dMuZW8DDsrKDrscITaUJHGMxlzQgGqb9mVskgXvat4Lz4?=
 =?iso-8859-1?Q?B+EmafZR7kB4YlsffyYS1zBaMUBvRwCn/oP3oFOVlPY/E1GXNAxMNAEuxV?=
 =?iso-8859-1?Q?aL4NG2Umh9eVRzMV5/Ndfbn1hLzetMTh6QCvWSaylPrBZszXjuRddJbpTj?=
 =?iso-8859-1?Q?aQ/QbrDAec8KqOGSOFf6APxy+RoJspD28LhJKkd+R9txOnOmoa55bnwXQk?=
 =?iso-8859-1?Q?0TCo6G0zsvWGIuSDxABT3QQKka9xVqaMfy/yEeIEMUZyjtfsJrU34pZl64?=
 =?iso-8859-1?Q?q9SKDD8Ze8CaEWiaqB8c/2zthAXAtD3O3lWyGQKtNNvDw/TISDV1PY6Ytg?=
 =?iso-8859-1?Q?0Z1+FHNwuiD+jZxon03fIYuw5VrAMDGtb6Pc4xIUEaRD2Md0KcgkI0rMTT?=
 =?iso-8859-1?Q?VCX5Ey/53PBGk2sa18bPyM/uWkp5lmmIy2abbjTPI6uLwv+xbOEGt4dqkS?=
 =?iso-8859-1?Q?FW0ElK7UBh0IF+WkRydbHG+rGTrep1wa0OEu3J3jRezDBh2adff3ZcNiWI?=
 =?iso-8859-1?Q?FQyE60jcYTpg7fRY52qipOaY+rDrZAFj2bVgAwSHkWF3ye1myTOo/zwd4G?=
 =?iso-8859-1?Q?/b8uMoExJ6nyPJuFcu7FbdWMdC859CwM2Sxt7w0lpN+aSLBfT7T42zYjKj?=
 =?iso-8859-1?Q?8fqKfb7MnpEC0kEPsPBLXhMw3SmbTLxYfjk0b8zrvX5ZUpPi9Lmt18KQe2?=
 =?iso-8859-1?Q?bhjeu5lLFUfLwIn1g4lGR6KuW+7r8iw8brnhpJpp6jxvUnNcyLvjrCbjSQ?=
 =?iso-8859-1?Q?kW1QBAcUeQjSAz/TyNSyg7szip0iKKG+SXFSaom9gDXrKMb4QqlAK4KSud?=
 =?iso-8859-1?Q?7ql8oOpCBkjrSt9c7JcQcVv5JBnOEBuYqeGlvgW96bltc1H1Rah8h5KezH?=
 =?iso-8859-1?Q?ENeDTn3aS8DMbBciX+53JBiWuOPeGdFWiN2m/tt+5LwNi4mFKvd/gNWFpW?=
 =?iso-8859-1?Q?JZVvx7FjY7xcMj+rwfeNr/MgrHc2Y8g7sJwLWeYhWUfGthv5AQ5kfhEFhV?=
 =?iso-8859-1?Q?7M9SpfkKzJ3Cw/ArirN9chmJK2p7hcpKlC6rGzYL5tCRajg4bGUEKInppm?=
 =?iso-8859-1?Q?CxckmLmuy4joMKPgc3Tx99s0fKlesCuQWjE0HCapcGiKDS2/5XVWYQZhd2?=
 =?iso-8859-1?Q?52evudrv/VbQZ60An4gW9zIpjyZY5AiFFKEA9rGYDByaFaTSDx/E+HP7Ip?=
 =?iso-8859-1?Q?2TCohDW9CJ7G2UBSG1RT6U4VCEeNhhQ=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: c99e3eb7-35cf-4e75-69a0-08de62762ed7
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:44.6107
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: JDe0wUbfyeAzn7BTfW4lAGXf9AM5f4YJuxLQ8nR1E/eiTGu7nxnV6bMZmuum0lCHjuiCCiaDT/t396RSEyHpWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10299

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/gic-v3-its.c              |  13 ++
 xen/arch/arm/gic-v3.c                  |   1 +
 xen/arch/arm/gic-v4-its.c              | 207 ++++++++++++++++++++++++-
 xen/arch/arm/include/asm/gic_v3_defs.h |   7 +
 xen/arch/arm/include/asm/gic_v3_its.h  |   7 +
 xen/arch/arm/include/asm/gic_v4_its.h  |   5 +
 xen/arch/arm/include/asm/vgic.h        |   2 +
 7 files changed, 235 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index fa5c1eb6d1..5979a82526 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -333,6 +333,19 @@ int its_send_cmd_discard(struct host_its *its, struct =
its_device *dev,
     return its_send_command(its, cmd);
 }
=20
+int its_send_cmd_movi(struct host_its *its, uint32_t deviceid, uint32_t ev=
entid,
+                      uint16_t icid)
+{
+    uint64_t cmd[4];
+
+    cmd[0] =3D GITS_CMD_MOVI | ((uint64_t)deviceid << 32);
+    cmd[1] =3D eventid;
+    cmd[2] =3D icid;
+    cmd[3] =3D 0x00;
+
+    return its_send_command(its, cmd);
+}
+
 /* Set up the (1:1) collection mapping for the given host CPU. */
 int gicv3_its_setup_collection(unsigned int cpu)
 {
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 1cb3169b72..fb80038f17 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -2096,6 +2096,7 @@ static void __init gicv4_init(void)
=20
     gicv4_its_vpeid_allocator_init();
=20
+    gicv4_init_vpe_proxy();
 }
 #else
 static void __init gicv4_init(void)
diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
index 0462976b93..83ee0510ac 100644
--- a/xen/arch/arm/gic-v4-its.c
+++ b/xen/arch/arm/gic-v4-its.c
@@ -39,6 +39,13 @@ static spinlock_t vpeid_alloc_lock =3D SPIN_LOCK_UNLOCKE=
D;
 static uint16_t vmovp_seq_num;
 static spinlock_t vmovp_lock =3D SPIN_LOCK_UNLOCKED;
=20
+static struct {
+    spinlock_t lock;
+    struct its_device *dev;
+    struct its_vpe **vpes;
+    int next_victim;
+} vpe_proxy;
+
 void __init gicv4_its_vpeid_allocator_init(void)
 {
     /* Allocate space for vpeid_mask based on MAX_VPEID */
@@ -201,6 +208,124 @@ static int its_map_vpe(struct host_its *its, struct i=
ts_vpe *vpe)
=20
     return 0;
 }
+static int gicv4_vpe_db_proxy_unmap_locked(struct its_vpe *vpe)
+{
+    int ret;
+
+    /* Already unmapped? */
+    if ( vpe->vpe_proxy_event =3D=3D -1 )
+        return 0;
+
+    ret =3D its_send_cmd_discard(vpe_proxy.dev->hw_its, vpe_proxy.dev,
+                               vpe->vpe_proxy_event);
+    if ( ret )
+        return ret;
+    vpe_proxy.vpes[vpe->vpe_proxy_event] =3D NULL;
+
+    /*
+     * We don't track empty slots at all, so let's move the
+     * next_victim pointer to quickly reuse the unmapped slot
+     */
+    if ( vpe_proxy.vpes[vpe_proxy.next_victim] )
+        vpe_proxy.next_victim =3D vpe->vpe_proxy_event;
+
+    vpe->vpe_proxy_event =3D -1;
+
+    return 0;
+}
+
+static void gicv4_vpe_db_proxy_unmap(struct its_vpe *vpe)
+{
+    if ( !gic_support_directLPI() )
+    {
+        unsigned long flags;
+
+        spin_lock_irqsave(&vpe_proxy.lock, flags);
+        gicv4_vpe_db_proxy_unmap_locked(vpe);
+        spin_unlock_irqrestore(&vpe_proxy.lock, flags);
+    }
+}
+
+/*
+ * If a GICv4.0 doesn't implement Direct LPIs (which is extremely
+ * likely), the only way to perform an invalidate is to use a fake
+ * device to issue an INV command, implying that the LPI has first
+ * been mapped to some event on that device. Since this is not exactly
+ * cheap, we try to keep that mapping around as long as possible, and
+ * only issue an UNMAP if we're short on available slots.
+ *
+ * GICv4.1 mandates that we're able to invalidate by writing to a
+ * MMIO register. And most of the time, we don't even have to invalidate
+ * vPE doorbell, as the redistributor can be told whether to generate a
+ * doorbell or not.
+ */
+static int gicv4_vpe_db_proxy_map_locked(struct its_vpe *vpe)
+{
+    int ret;
+
+    /* Already mapped? */
+    if ( vpe->vpe_proxy_event !=3D -1 )
+        return 0;
+
+    /* This slot was already allocated. Kick the other VPE out. */
+    if ( vpe_proxy.vpes[vpe_proxy.next_victim] )
+    {
+        struct its_vpe *old_vpe =3D vpe_proxy.vpes[vpe_proxy.next_victim];
+
+        ret =3D gicv4_vpe_db_proxy_unmap_locked(old_vpe);
+        if ( ret )
+            return ret;
+    }
+
+    /* Map the new VPE instead */
+    vpe_proxy.vpes[vpe_proxy.next_victim] =3D vpe;
+    vpe->vpe_proxy_event =3D vpe_proxy.next_victim;
+    vpe_proxy.next_victim =3D (vpe_proxy.next_victim + 1) %
+                            vpe_proxy.dev->eventids;
+
+    return its_send_cmd_mapti(vpe_proxy.dev->hw_its, vpe_proxy.dev->host_d=
evid,
+                              vpe->vpe_proxy_event, vpe->vpe_db_lpi,
+                              vpe->col_idx);
+}
+
+int __init gicv4_init_vpe_proxy(void)
+{
+    struct host_its *hw_its;
+    uint32_t devid;
+
+    if ( gic_support_directLPI() )
+    {
+        printk("ITS: Using DirectLPI for GICv4 VPE invalidation\n");
+        return 0;
+    }
+
+    /* Any ITS will do, even if not v4 */
+    hw_its =3D list_first_entry(&host_its_list, struct host_its, entry);
+
+    vpe_proxy.vpes =3D xzalloc_array(struct its_vpe *, nr_cpu_ids);
+    if ( !vpe_proxy.vpes )
+    {
+        printk(XENLOG_ERR "ITS: Can't allocate GICv4 VPE proxy device arra=
y\n");
+        return -ENOMEM;
+    }
+
+    /* Use the last possible DevID */
+    devid =3D BIT(hw_its->devid_bits, UL) - 1;
+    vpe_proxy.dev =3D its_create_device(hw_its, devid, nr_cpu_ids);
+    if ( !vpe_proxy.dev )
+    {
+        printk(XENLOG_ERR "ITS: Can't allocate GICv4 VPE proxy device\n");
+        return -ENOMEM;
+    }
+
+    spin_lock_init(&vpe_proxy.lock);
+    vpe_proxy.next_victim =3D 0;
+    printk(XENLOG_INFO
+           "ITS: Allocated DevID %u as GICv4 VPE proxy device\n", devid);
+
+    return 0;
+}
+
 static int __init its_vpe_init(struct its_vpe *vpe)
 {
     int vpe_id, rc =3D -ENOMEM;
@@ -224,6 +349,7 @@ static int __init its_vpe_init(struct its_vpe *vpe)
     rwlock_init(&vpe->lock);
     vpe->vpe_id =3D vpe_id;
     vpe->vpendtable =3D page_to_virt(vpendtable);
+        vpe->vpe_proxy_event =3D -1;
     /*
      * We eagerly inform all the v4 ITS and map vPE to the first
      * possible CPU
@@ -299,16 +425,45 @@ static int its_send_cmd_vmovp(struct its_vpe *vpe)
     return 0;
 }
=20
+/* GICR_SYNCR.Busy =3D=3D 1 until the invalidation completes. */
+static void wait_for_syncr(void __iomem *rdbase)
+{
+    while ( readl_relaxed(rdbase + GICR_SYNCR) & 1 )
+        cpu_relax();
+}
+
+void direct_lpi_inv(struct its_device *dev, uint32_t eventid,
+                    uint32_t db_lpi, unsigned int cpu)
+{
+    void __iomem *rdbase;
+    uint64_t val;
+    /* Register-based LPI invalidation for DB on GICv4.0 */
+    val =3D FIELD_PREP(GICR_INVLPIR_INTID, db_lpi);
+
+    rdbase =3D per_cpu(rbase, cpu);
+    writeq_relaxed(val, rdbase + GICR_INVLPIR);
+    wait_for_syncr(rdbase);
+}
=20
 static void its_vpe_send_inv_db(struct its_vpe *vpe)
 {
-    // struct its_device *dev =3D vpe_proxy.dev;
-    // unsigned long flags;
+    if ( gic_support_directLPI() )
+    {
+        unsigned int cpu =3D vpe->col_idx;
=20
-    // spin_lock_irqsave(&vpe_proxy.lock, flags);
-    // gicv4_vpe_db_proxy_map_locked(vpe);
-    // its_send_cmd_inv(dev->hw_its, dev->host_devid, vpe->vpe_proxy_event=
);
-    // spin_unlock_irqrestore(&vpe_proxy.lock, flags);
+        /* Target the redistributor this VPE is currently known on */
+        direct_lpi_inv(NULL, 0, vpe->vpe_db_lpi, cpu);
+    }
+    else
+    {
+        struct its_device *dev =3D vpe_proxy.dev;
+        unsigned long flags;
+
+        spin_lock_irqsave(&vpe_proxy.lock, flags);
+        gicv4_vpe_db_proxy_map_locked(vpe);
+        its_send_cmd_inv(dev->hw_its, dev->host_devid, vpe->vpe_proxy_even=
t);
+        spin_unlock_irqrestore(&vpe_proxy.lock, flags);
+    }
 }
=20
 static void its_vpe_inv_db(struct its_vpe *vpe)
@@ -335,6 +490,7 @@ static void __init its_vpe_teardown(struct its_vpe *vpe=
)
     unsigned int order;
=20
     order =3D get_order_from_bytes(max(lpi_data.max_host_lpi_ids / 8, (uns=
igned long)SZ_64K));
+    gicv4_vpe_db_proxy_unmap(vpe);
     its_free_vpeid(vpe->vpe_id);
     free_xenheap_pages(vpe->vpendtable, order);
     xfree(vpe);
@@ -830,6 +986,43 @@ static void vpe_to_cpuid_unlock(struct its_vpe *vpe, u=
nsigned long *flags)
     spin_unlock_irqrestore(&vpe->vpe_lock, *flags);
 }
=20
+static void gicv4_vpe_db_proxy_move(struct its_vpe *vpe, unsigned int from=
,
+                                    unsigned int to)
+{
+    unsigned long flags;
+
+    if ( gic_support_directLPI() )
+    {
+        void __iomem *rdbase;
+
+        rdbase =3D per_cpu(rbase, from);
+        /* Clear potential pending state on the old redistributor */
+        writeq_relaxed(vpe->vpe_db_lpi, rdbase + GICR_CLRLPIR);
+        wait_for_syncr(rdbase);
+        return;
+    }
+
+    spin_lock_irqsave(&vpe_proxy.lock, flags);
+
+    gicv4_vpe_db_proxy_map_locked(vpe);
+
+    /* MOVI instructs the appropriate Redistributor to move the pending st=
ate */
+    its_send_cmd_movi(vpe_proxy.dev->hw_its, vpe_proxy.dev->host_devid,
+                      vpe->vpe_proxy_event, to);
+
+    /*
+     * ARM spec says that If, after using MOVI to move an interrupt from
+     * collection A to collection B, software moves the same interrupt aga=
in
+     * from collection B to collection C, a SYNC command must be used befo=
re
+     * the second MOVI for the Redistributor associated with collection A =
to
+     * ensure correct behavior.
+     * So each time we issue VMOVI, we VSYNC the old VPE for good measure.
+     */
+    WARN_ON(its_send_cmd_sync(vpe_proxy.dev->hw_its, from));
+
+    spin_unlock_irqrestore(&vpe_proxy.lock, flags);
+}
+
 static int gicv4_vpe_set_affinity(struct vcpu *vcpu)
 {
     struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
@@ -859,6 +1052,7 @@ static int gicv4_vpe_set_affinity(struct vcpu *vcpu)
     ret =3D its_send_cmd_vmovp(vpe);
     if ( ret )
         goto out;
+    gicv4_vpe_db_proxy_move(vpe, from, to);
=20
  out:
     vpe_to_cpuid_unlock(vpe, &flags);
@@ -940,4 +1134,3 @@ int its_vlpi_prop_update(struct pending_irq *pirq, uin=
t8_t property,
=20
     return its_vlpi_set_doorbell(map, property & LPI_PROP_ENABLED);
 }
-
diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/include/=
asm/gic_v3_defs.h
index 0db75309cf..b4d50516ef 100644
--- a/xen/arch/arm/include/asm/gic_v3_defs.h
+++ b/xen/arch/arm/include/asm/gic_v3_defs.h
@@ -20,6 +20,13 @@
=20
 #include <xen/sizes.h>
=20
+#ifndef FIELD_GET
+#define FIELD_GET(_mask, _reg)			\
+	((typeof(_mask))(((_reg) & (_mask)) >> (ffs64(_mask) - 1)))
+#endif
+
+#define FIELD_PREP(_mask, _val)			\
+	(((typeof(_mask))(_val) << (ffs64(_mask) - 1)) & (_mask))
 /*
  * Additional registers defined in GIC v3.
  * Common GICD registers are defined in gic.h
diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include/a=
sm/gic_v3_its.h
index dababe97cd..0e82625840 100644
--- a/xen/arch/arm/include/asm/gic_v3_its.h
+++ b/xen/arch/arm/include/asm/gic_v3_its.h
@@ -236,6 +236,11 @@ int its_inv_lpi(struct host_its *its, struct its_devic=
e *dev,
                 uint32_t eventid, unsigned int cpu);
 int its_send_cmd_mapti(struct host_its *its, uint32_t deviceid,
                        uint32_t eventid, uint32_t pintid, uint16_t icid);
+struct its_device *its_create_device(struct host_its *hw_its,
+                                     uint32_t host_devid, uint64_t nr_even=
ts);
+int its_send_cmd_movi(struct host_its *its, uint32_t deviceid, uint32_t ev=
entid,
+                      uint16_t icid);
+int its_send_cmd_sync(struct host_its *its, unsigned int cpu);
 #ifdef CONFIG_ACPI
 unsigned long gicv3_its_make_hwdom_madt(const struct domain *d,
                                         void *base_ptr);
@@ -326,6 +331,8 @@ void its_vpe_mask_db(struct its_vpe *vpe);
 int gicv4_its_vlpi_unmap(struct pending_irq *pirq);
 int its_vlpi_prop_update(struct pending_irq *pirq, uint8_t property,
                          bool needs_inv);
+void direct_lpi_inv(struct its_device *dev, uint32_t eventid,
+                    uint32_t db_lpi, unsigned int cpu);
=20
 /* ITS quirks handling. */
 uint64_t gicv3_its_get_cacheability(void);
diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include/a=
sm/gic_v4_its.h
index 37b6b92f0c..1d800fdbaf 100644
--- a/xen/arch/arm/include/asm/gic_v4_its.h
+++ b/xen/arch/arm/include/asm/gic_v4_its.h
@@ -52,6 +52,7 @@ struct event_vlpi_map {
 };
=20
 void gicv4_its_vpeid_allocator_init(void);
+int gicv4_init_vpe_proxy(void);
=20
 #define GICR_VPROPBASER                              0x0070
 #define GICR_VPENDBASER                              0x0078
@@ -97,6 +98,10 @@ static inline void gits_write_vpendbaser(uint64_t val, v=
oid __iomem *addr)
 }
 #define gits_read_vpendbaser(c)     readq_relaxed(c)
=20
+#define GICR_INVLPIR_INTID                GENMASK_ULL(31, 0)
+#define GICR_INVLPIR_VPEID                GICR_INVALLR_VPEID
+#define GICR_INVLPIR_V                    GICR_INVALLR_V
+
 #endif
=20
 /*
diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/vgi=
c.h
index 9ef667decb..558f81818c 100644
--- a/xen/arch/arm/include/asm/vgic.h
+++ b/xen/arch/arm/include/asm/vgic.h
@@ -407,9 +407,11 @@ extern void vgic_check_inflight_irqs_pending(struct vc=
pu *v,
=20
 /* GICV4 functions */
 #ifdef CONFIG_GICV4
+bool gic_support_directLPI(void);
 bool gic_support_vptValidDirty(void);
 bool gic_is_gicv4(void);
 #else
+#define gic_support_directLPI() (false)
 #define gic_support_vptValidDirty() (false)
 #define gic_is_gicv4() (false)
 #endif
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:18:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:18:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218929.1527826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwd8-0001ca-8A; Mon, 02 Feb 2026 16:18:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218929.1527826; Mon, 02 Feb 2026 16:18: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 1vmwd8-0001cP-50; Mon, 02 Feb 2026 16:18:26 +0000
Received: by outflank-mailman (input) for mailman id 1218929;
 Mon, 02 Feb 2026 16:18: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZj-0000fY-38
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:55 +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 4bcbe92b-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:48 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by VI0PR03MB10299.eurprd03.prod.outlook.com
 (2603:10a6:800:202::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 16:14:45 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4bcbe92b-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hYfIWbtMrjg2nYLxoQya/k3TwKtY9LznINQ98O+8qzcfGO7uJ/oE8tPydCjXS8tfcikReYytSyZHAEG7a1NgFL6DIaY0kS7d0vAiVMH8s5DhvYjQF2UZCbCkYRFiR/ek2fwZBBO8dq3yVG3D0htnPP4YFB+HeJe6S7jKZXq+Fn0i+K6GYvS8L/7IDL3MDU2NBRyFc4QqD71/McQ5iD3ixb1Agxae+jlodYmSzCQpYCmlVVw0dGxP3/uWaQzdI2YJKcR/KkTzZEr628kOQ3ANxSjTUPUdneKErY91kIJbjIU7Mjb7IVCoqK6aub0UnIAyhRHEnjKmhrzXB+eXU2As/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=wp+CiOFmbPXN19I1ClyhnDa8y/Of5ZIcvETuWgCaDEY=;
 b=H5E4zZiSC3+vfz3NsPmS6O/KNB1jvFUhe5TF63dLqqEy4fM+DaaUwzlJCf92ubkF1SZXZgBOzTn539VDdnxhY7QWXwaAUgw+qVExe5KIHLDHWEyhWXoWSAQeUHZEthufjC4jE9JA4F6reNcGH1LAPJcv1JcB6Q00cJ3mLIU6rKZM1QXlpORp5bobqsniRhfK4sO2XC26EnYEtnBbTcFXXr2nfGIv9+1NarlSnOW6WaXUPQkwE9uyjX07x3KqMjr502iw2VYACA3sk7eVd3+1ATLIs0f9warRYc8/GThF2KYzSbbyAaZorzSZ3JUcm38+34wPnWFgU9oOOTfLhBM1SA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wp+CiOFmbPXN19I1ClyhnDa8y/Of5ZIcvETuWgCaDEY=;
 b=SPnLvz5kaKhvqzjfEui4UCRpSq/tKzW+uHpqLS08Fw7tBs6wX1B2Igil3fyBfx3FOJ1GAAmatHEReMj4dEA2LY9D6UGhLif+xM/RQuNM0KVU9fVmYLM10EA76mrwyhAG2lriv0XILXDlLMMwlQ4xPui0HMBfPI8r4akwitWoWf3kciE4QbIq2avUFhGkTIwdqvjgCXwU7O4QAqNH0PMyfBzu8PsaE7bH/ydI4XXfeMOhMStbeDdGLk9BkZmvGi/QFBIaKqdiKie6NrCQIXHrUDZn2U2XVo+s1PjsbBhH1EXQRPNGLa08RijWwdoVRCqopeMV6s1esghSpnQK94cZeA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 15/19] arm: Add gicv4 to domain creation
Thread-Topic: [RFC PATCH 15/19] arm: Add gicv4 to domain creation
Thread-Index: AQHclF8Knr0LoFPnik6/4BE0GszmIw==
Date: Mon, 2 Feb 2026 16:14:43 +0000
Message-ID:
 <61859ae57032ad2da9c0eec5fb30dbe4ecc8c0df.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|VI0PR03MB10299:EE_
x-ms-office365-filtering-correlation-id: 1ae26ef1-ac91-4f86-2655-08de62762e45
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?qYP+3cKy+VRgEU9LlSvKZuWwgpqt44IZZ/pSxcu9g+0fcZerPOxA52+6RT?=
 =?iso-8859-1?Q?90bXOEr3b+0GPGODLonIHuUs+s9UnFqXSpSquZYhfcOmO9+Hr57gYRVwUn?=
 =?iso-8859-1?Q?mf9iZBLv+j2nix3XsmM9AyFAXd1XWsWshfoQrdzY2GIw2vMxITR7AeGZnq?=
 =?iso-8859-1?Q?JuM56JAvk21oae5oJHjkMbnsokjU/wDTm8e2u/Kaib4AdK40s7lmgHhhHd?=
 =?iso-8859-1?Q?4HE0xqUDW0z0Bn0VwPP5dixvh1xHTVEm3LCBIhNbkRQGriQQ8g//3Dwhok?=
 =?iso-8859-1?Q?+R/D813NUUxheVHcAER9UfmYDAyHFaxXF6cXsj7i/4+OEsJxpbXLAyPp3r?=
 =?iso-8859-1?Q?hOVWfiYaWEAts0yx/YydI5bKXKqFHu85GydRjQKvbqttzA9/XktawHkboT?=
 =?iso-8859-1?Q?4sEW/0AUakzhtLxyt+BH7Mh0XueYFyYVaDpKQzelUUVUYcL/3rP+QQ2VGE?=
 =?iso-8859-1?Q?A0RpQ4zPvlcsRgXK/RAqWc7izF+c6kWdrQ64spBFzqWabcB+6adk2rif4P?=
 =?iso-8859-1?Q?aYsoF3IJ2rG/7bpQlqr9e2DpjlnKpN+t0amsWpZUtafImVcVoyUyKP7bkv?=
 =?iso-8859-1?Q?aeXKwZlWV73NFj2+0VPJ2f7tNELFOCKuLtMZoV52W51GopIdxTbzZ+W4cH?=
 =?iso-8859-1?Q?g0+Y3YWlpl237h1/TTOyVADt4R0NldEIl6ILWr4n47bXZJZGt36j1+X+82?=
 =?iso-8859-1?Q?DyFZ5odlwtDIhPDpPNrKnunVMZ5wWSmCHcTWTQ41mIGVhnvSKQ0cAVSN8v?=
 =?iso-8859-1?Q?gjX9v/W+0ryIxcOAu5c9DqesRc8PVI2P5Zqm2Yx94YmwEXB7s9cp2TR52B?=
 =?iso-8859-1?Q?WXGBwA5dE40bgpgqs0kC+j031QOzWIXc6Zv+5YxCmtTNLfuK8yns9INm+Z?=
 =?iso-8859-1?Q?H8YSNSDGwMxgh87smR7AkmltLhqdfQ/00fCMxlrhC6z7Kl3gCoDtwTGEKi?=
 =?iso-8859-1?Q?z70L7/NZ2kCt0u47dGQH43acPKf3At6aMvuw0mbE1bwKZEi9NMHn33Ksqe?=
 =?iso-8859-1?Q?W4l2ReY6YVgpZV4FjA9H8rrYKifHwrreLh9ol/2m7SRb2IUrIZNVbINoaV?=
 =?iso-8859-1?Q?728Zji2OQhLO1uEYSQwH834w3JKKkBN9taOfW7ZtHuNKrbNcKT36KIl0vx?=
 =?iso-8859-1?Q?OLGhtUgEb+MexDYqi59uykAenHFAbvwQCsNHNOp8aZ5GRpqYNitukoNz7v?=
 =?iso-8859-1?Q?SJ1gbm/cujNide2MtTVhpwgDmNFpD7Lmo5VvVd5yD6wNuK91DPSXQRzNsH?=
 =?iso-8859-1?Q?FV5hfiqvvAeCj4SjUrRhfuHGBT2yQBgwqYrNeIto5/YRT3IW4TQTPrmc+o?=
 =?iso-8859-1?Q?3TGlFiC7oy1Vw55eSufgFdkfQwYoIG8152/sPba09mk/D+66U2d7GDf5UU?=
 =?iso-8859-1?Q?Rk4ZaJvzgwJFfNn9n3Qw4fO4GxaKJbAQ1B48OqnkRtsBD2tm+FsjKP7arG?=
 =?iso-8859-1?Q?mO+Wbys8HN/xoigopCVNk4dfv0SHOSkqWUBgxLiG0UqbdBeyDIgM74kISE?=
 =?iso-8859-1?Q?cvQF1eEmlRQOIpN86akts8EtaCPJg0tBIQZfPA0P6SAPKPx0cbA6GTRF/x?=
 =?iso-8859-1?Q?+Newa4xioI1Vjj+8rM3MxySnMoPiGQvB6u9hMrmdAbDgbGU1rlqF9ZFAPn?=
 =?iso-8859-1?Q?SSVOmfMQda2MhlRKjOFlPfS4bGLT5ne7z3dLsRf8TBN8Ocog4SgBbYA2fg?=
 =?iso-8859-1?Q?7mr5YxYnUK0lsryeKxU=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)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?PoJeGQ6bZwaUyq0tEO2W6AH0sJvRlUUYd7uqjEgJ+/A05I4ZicMKaW6tlj?=
 =?iso-8859-1?Q?Bgs1Gkj23MusUEL6lOPorKRc9gZEemujBPFVSDHXl1NLXOqwk088CcQrD2?=
 =?iso-8859-1?Q?QNpqnN8ViPl0a7DBKMVKcuj730rOoEASzTsZP5Akh+Up/MhM87cIWsfhb2?=
 =?iso-8859-1?Q?kBi3yaN3NwHuMZcbX7BXXXqnUROlvDvFQpFQ5iLrwskfuhUsYLcv4A+oEV?=
 =?iso-8859-1?Q?cvLsg0JGyIGhXH4KX5vgW/6YZj6MQThcsSLD9XRuy9mhBp10xw3p+gAkq9?=
 =?iso-8859-1?Q?yc1HygZVhR8dWVV2f+D/kTcxZTqxfoshZzTweXut7TNgbKQaj5+ArftEpT?=
 =?iso-8859-1?Q?U/eDzrerZ55eicWdph4jpYd+oILF/KIsD9frktple6thXMhK9w2c/e4SP7?=
 =?iso-8859-1?Q?+I5QWCNXI6JIBtx/udj724Usu5r+bapGizLoFqcwOQRrsltuXWa6d7NdPJ?=
 =?iso-8859-1?Q?5Zm1pQM9/VfqC9t1oF7Jf4eU2VlAdtnkUbqrvoFSDp2VMPZKMWmVvAF1au?=
 =?iso-8859-1?Q?QJmoeCQkbaWP3iwazn2dDJmWsupRgVaYjCTUrMMdJ3iU1ZdjSvGRRmSNvq?=
 =?iso-8859-1?Q?MuNjIZ9jktn3+eCII6n/F/v7J9w/c8SZEytj9srf64vZGSkwGL80CroKtb?=
 =?iso-8859-1?Q?wMMdwRZgzTVHAJ+CB2GchPetzNo6TPkEho5vg5qvrBcqKIEZdTyeY9tNMr?=
 =?iso-8859-1?Q?bOm87xw8/P51nfOdfwmJqIP6i02ourSgOPcnzneODlW1ZQ2ymLDbc8XaaD?=
 =?iso-8859-1?Q?eImYc0L3V14yDfnogVG0SguCh6Y6Du6fTVa/BZkwuNDlBnoAepjMtZxf7A?=
 =?iso-8859-1?Q?w0IOchvdVMoq/KXlbO00A/C0UvxiOJu3klUfszOWYXWe2P+YBVeCBKn2mU?=
 =?iso-8859-1?Q?W7K48v7bRm46IN29jcRe8rqngGAvzBCNPKNJODgPjvpl28st7b7agjAHZZ?=
 =?iso-8859-1?Q?tQ3davKORhpHDNoEho1GjxnQ6lZwZWWEjVsOamscjShxQMAG/9tMEYXfRS?=
 =?iso-8859-1?Q?DdA0MrYax+PB9yLRzmoaKMRQIo9h5amTQtl1KLWnowDjL+7Z6SSgDHS5wl?=
 =?iso-8859-1?Q?BMPBd7UiwT5ZP8pB6kNR5H3sFxWlVurp9pgcdfWDif76/hWDuAIXP1vwO5?=
 =?iso-8859-1?Q?fu95KZcscW5985mat1FXSPrcPb8WkS9RoT/RYRTaHMMWSqhWb3lQ5W0Iys?=
 =?iso-8859-1?Q?Q6+dDMzn5lK3bzwDMyaQaZ5RdVjetqCyaN3viGyM7dqW1hfR8mkRMIdD5b?=
 =?iso-8859-1?Q?DFp8OoyBoWI3sMhX3IM4JH8nFQ40ELwKU4b79NWrkbDWqP7YyVJCn1do3i?=
 =?iso-8859-1?Q?tyTC960vBQQY+tu7xgBHYopvy+93pVGc7lFzJeMOqS3Os9Wgo3Ow5zwK9Z?=
 =?iso-8859-1?Q?OAZ2Wh6uz/zT4nPL0g1bqtAAgSTf464Zvmw685TcSiGg1XRZrLVS3tw2BT?=
 =?iso-8859-1?Q?EmLn5y5WXGp1kl6cM9w5HRQmR76YAxv8kNEvQ8eLsA1tkCLbKq5CeEgms9?=
 =?iso-8859-1?Q?OCl65PZPVb003H3Wpa7b0TUcEWkGzXl4gUsaYzOjgHpV2kKwgndiIeyOn0?=
 =?iso-8859-1?Q?FMuNrJGsETPOyprYGCTTpqgaNtmlhRwbWvsi2W83SS5SdAodk/fLd0d4Yt?=
 =?iso-8859-1?Q?l4vZwvrNjKjqO11UybWBlJKRHBqm1NZbHUFcfUmRKiQNjrva6j1FgAQRht?=
 =?iso-8859-1?Q?Xh+1sMbMIb0xl7SLOoo5KcSSVX3M7xdp+cwcaCSzOaPPap64epxCjMZ3DD?=
 =?iso-8859-1?Q?8er/bxE6f4e447f+Zl3/E7nEWxltQIFVkSAHQTciAsxPEWQdtb4eDQbyUC?=
 =?iso-8859-1?Q?y0KTDkkqaPLWCIKWpwzU3g/v1rHOao4=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: 1ae26ef1-ac91-4f86-2655-08de62762e45
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:43.5062
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Fp74PmtN5Cug13gXiPBl68BEakKfHcso4FZZLPdRqR/uGzI1E2UjMTd60UvqdGXoveRp6HSZeunJ65CV4aUkIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10299

Allow creating domains with GIC_V4 version.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/dom0less-build.c |  1 +
 xen/arch/arm/domain.c         | 16 ++++++++++++++++
 xen/arch/arm/vgic.c           |  2 ++
 xen/include/public/arch-arm.h |  2 ++
 4 files changed, 21 insertions(+)

diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 4181c10538..3c4b074b05 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -157,6 +157,7 @@ int __init make_intc_domU_node(struct kernel_info *kinf=
o)
     {
 #ifdef CONFIG_GICV3
     case GIC_V3:
+    case GIC_V4:
         return make_gicv3_domU_node(kinfo);
 #endif
 #ifdef CONFIG_VGICV2
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 507df807ed..864e5511c9 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -604,6 +604,14 @@ int arch_sanitise_domain_config(struct xen_domctl_crea=
tedomain *config)
             config->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_V3;
             break;
=20
+        case GIC_V4:
+            config->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_V4;
+            break;
+
+        case GIC_V4_1:
+            config->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_V4_1;
+            break;
+
         default:
             ASSERT_UNREACHABLE();
             return -EINVAL;
@@ -679,6 +687,14 @@ int arch_domain_create(struct domain *d,
         d->arch.vgic.version =3D GIC_V3;
         break;
=20
+    case XEN_DOMCTL_CONFIG_GIC_V4:
+        d->arch.vgic.version =3D GIC_V4;
+        break;
+
+    case XEN_DOMCTL_CONFIG_GIC_V4_1:
+        d->arch.vgic.version =3D GIC_V4_1;
+        break;
+
     default:
         BUG();
     }
diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
index 6baf870ad5..e5752faeb7 100644
--- a/xen/arch/arm/vgic.c
+++ b/xen/arch/arm/vgic.c
@@ -153,6 +153,7 @@ int domain_vgic_register(struct domain *d, unsigned int=
 *mmio_count)
     {
 #ifdef CONFIG_GICV3
     case GIC_V3:
+    case GIC_V4:
         if ( vgic_v3_init(d, mmio_count) )
            return -ENODEV;
         break;
@@ -929,6 +930,7 @@ unsigned int vgic_max_vcpus(unsigned int domctl_vgic_ve=
rsion)
=20
 #ifdef CONFIG_GICV3
     case XEN_DOMCTL_CONFIG_GIC_V3:
+    case XEN_DOMCTL_CONFIG_GIC_V4:
         return 4096;
 #endif
=20
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index 96365e5603..12690cf3ac 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -322,6 +322,8 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 #define XEN_DOMCTL_CONFIG_GIC_NATIVE    0
 #define XEN_DOMCTL_CONFIG_GIC_V2        1
 #define XEN_DOMCTL_CONFIG_GIC_V3        2
+#define XEN_DOMCTL_CONFIG_GIC_V4        3
+#define XEN_DOMCTL_CONFIG_GIC_V4_1      4
=20
 #define XEN_DOMCTL_CONFIG_TEE_NONE      0
 #define XEN_DOMCTL_CONFIG_TEE_OPTEE     1
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:19:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:19:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218944.1527836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwdd-0002d4-Gb; Mon, 02 Feb 2026 16:18:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218944.1527836; Mon, 02 Feb 2026 16: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 1vmwdd-0002cx-Dc; Mon, 02 Feb 2026 16:18:57 +0000
Received: by outflank-mailman (input) for mailman id 1218944;
 Mon, 02 Feb 2026 16: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=hK3N=AG=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vmwZg-0000fY-2R
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:14:52 +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 4a3211a8-0052-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:14:45 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AMBPR03MB11643.eurprd03.prod.outlook.com
 (2603:10a6:20b:731::7) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Mon, 2 Feb
 2026 16:14:42 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 16:14: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: 4a3211a8-0052-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fpz7bDgc4WpWayg0CN6YFq+dyCiQcmhU36F7t0G/HB+04OdgZHXfPZ1BjqQ200TCTX6OYYTucD4yzW//VspSvB33k7B/PX3RDkopgJKtwECqL0Ja4k856n9PZTDdb4xUw5xGGQfHNXneD4WC7/yMcdWh96ymmGlX2k3kfMF/J2niTUJwByroidVIdZ1PGcuThYPz02sPGH3AZ4YmcbGEoLOrCwp0oSHwGG2tLJHE2Gxc1HyLYGC9oX6zhosZJRrm9v61Ptf8j8v9ZfXWg+mtiBwEyuiyW0+Tba6icvNqHUv07TBW0p4OMhD64LHq8eSL7al1MGhvy2IaxXumF/HtUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uSB60wtIseXpEOBJ7I2DHvvHn5SQhFmvHE/+vrRCLY4=;
 b=dimiqiAOYns2b3Ua02S2KFdewYepAPlTHMHXFuIHbDTGeJLrEUzqkb3J3qmwrm63PUb/UNXwZZ2tigA1c3CaDyqpgpoYbdS880+UEiWtSJ0sGWwrLfgoiiDUhmAIn0GR5J7oI3TK7w6bQQF1G0+St7sW+j15L6eDCFE9mryT1WEhC9yK4Q7jTv4GbldTO+zc3DK+JZslJSdiG3vNtFakCKeYtr+9nRVmtLw72d3MldY2rglVErNpNiZt3ODQRkbO1Scd7F8S5LDfkEwWMXxGsab2Y9bTjwL5hSDzYTSFM4EF/1CQWpxo3ccQ9ew9+Ye21iVSUkR1IdQp06uyl3gH0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uSB60wtIseXpEOBJ7I2DHvvHn5SQhFmvHE/+vrRCLY4=;
 b=nFyi0S8S1eE2zuzV0NnC18eZOpaEIKmUzX+Njr5bRTjxXc8VK15HJhHnyF9M1GtXrHgMeZjF6/tzAqiS2lZ/Rf1sNSmM1+jI/J8kTntA25tY4Xo4zhNOtG4Oy/FZpTRbe8rUUiQp/tcxyy+iqz4kzhIxv0XqriwfRgFWt10oh7oZP900oHAAyRGLDDGG6m+nzHcos6+JZz9UVDgjc3AhkeBNDYkq6QvYv9mVDJ4cm9zI+FypXTitn2vteNUP6w3frmXhcJkx/gxsGKHnvqt8v3R5WUTUI4lJ2qBmnQoQMxVGO0Fm/BVfH9pxm+0BlI7sYJpLiDq1/qOoZcdhVhtpuA==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
CC: "xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, 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: [RFC PATCH 12/19] arm/gic: Add VPENDBASER/VPROPBASER accessors
Thread-Topic: [RFC PATCH 12/19] arm/gic: Add VPENDBASER/VPROPBASER accessors
Thread-Index: AQHclF8JYkeRiWQD1Em9PXuDXFnTeQ==
Date: Mon, 2 Feb 2026 16:14:42 +0000
Message-ID:
 <b15ec6f42418d7c0669d551e42be1d1b75839df8.1770046465.git.mykyta_poturai@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.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_|AMBPR03MB11643:EE_
x-ms-office365-filtering-correlation-id: bbca65a2-2351-4be3-25fa-08de62762c37
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?GiO84A7sCEuKmQteepO07iqxVNrjKBASy1P5OdS+VxaFy3uCRaFR+VcXDZ?=
 =?iso-8859-1?Q?w7JjEIlXAyTseuJjbdpqCnGdR+MgXCe/hb8ckyN2203cFdLycIgA+b8bkq?=
 =?iso-8859-1?Q?tdr9dj1R9ceo1ZG/bgMuMH3VCPAdj+YDe62UF5uR14l0GgyVKvs9Wd6V7+?=
 =?iso-8859-1?Q?V3xAl+9sEaynp7A2vc+appmiv+ccupx4hjCtau0CYHbGrtuupEUoamk9l4?=
 =?iso-8859-1?Q?b4Zv6Z+iTLDfpQAW9JgPCGCWL//aPYwuoyr/FKZzMDAy0dtQTUGamoMgjt?=
 =?iso-8859-1?Q?SPVXHjZQ0JRjVrN6lNP0nfT7MS9+Ird+VGDHjisvDTyDVM0jp0OM9r8EBE?=
 =?iso-8859-1?Q?G34FubRi+Vv2dDzBPe69OlhKluZGJDha4sOlr6SUHAJ5b0oI84/rGVuSvO?=
 =?iso-8859-1?Q?BtIkLouznljS6P/rF4GD8Kw3u/KARbowSNs0BfXb8jiy5P45zYfgS2Tu97?=
 =?iso-8859-1?Q?abQE7e/Xgtm3YNvw/2Crio2b0d7AFnSIezHX7DI+6GA37uBynWoexdqHZZ?=
 =?iso-8859-1?Q?wdoiAG/nBnM+2HFfemRVgBvwiNEclNs1cgJ8sJcuqVb3iyJkDyAacQkHgY?=
 =?iso-8859-1?Q?N/cQsSHmS/bBnsJehezmUhZkeWz+U64PRzgS2dqizwDbzEMuP3VkOO422f?=
 =?iso-8859-1?Q?TVa3L2GaSnsTPkMHiCV7bvcmvPSAbidXMVikJiy9tBy1uvI4Zh8wHL3A2H?=
 =?iso-8859-1?Q?TqMrilMRG+3xMgTpmd8KtXlRI5pDNhYb9uPPWoFbpYT2UMNuGQeghPzFGo?=
 =?iso-8859-1?Q?gBW+/BTc+0re0nd7hOPXv8Lw2XtCjrp8Q+0gwg1Bhlkt87lshlMYpbEGYo?=
 =?iso-8859-1?Q?HCV0AZNLy/5kViSooLicr58sjoM4rt4345pOuQuEkclC/5qqojvIGkw5tS?=
 =?iso-8859-1?Q?EZU3uSlodDUVsCRpvRBvB8zSL7923fcYu3H84gotYRr+e2u3Yu1kEWpmlR?=
 =?iso-8859-1?Q?Dlfp3MUP8NZ/AHAFkvq47Yuc2+9nlEa1SkrxliSfOU0zTIyKSmkNQv5RnY?=
 =?iso-8859-1?Q?Jhb8FAuJ+yqrqVYokxSK7VDl0XB2pOlzel6DPjmnGaWzwFhX165zvrrPOE?=
 =?iso-8859-1?Q?NC1s/NYiLtw+SvvhNHyHbOB75p8QpymcdIbyl/MNVT731HgopmOGjmeXFv?=
 =?iso-8859-1?Q?gFQQMfKNSzoGMD1Q8WBWmtrgQk9m97CAtvL7uioWSFy/vbt9GHNTA+PbB0?=
 =?iso-8859-1?Q?xpwBXkPZtiLEdhqgB/yzQfhvK2WEmIYofb9jkgMaPRgKDq58xkie2moYIB?=
 =?iso-8859-1?Q?hogxQlSzTpqKqbEU+HdWHT9eDV3zwaEPDgpzY5Taja63wlHjuYxYewESNg?=
 =?iso-8859-1?Q?8pvAeqznvmqSuryraDvb4wyQ/9uaXUfk7s5NsH22fH8h58zdPaOf/ATVPq?=
 =?iso-8859-1?Q?nFmRjquvnY/Yg/QQGSyOn4q5oH5ji+zc4RcB9lwESpyoeqVdV6c/Tta276?=
 =?iso-8859-1?Q?nT5ITRM14AVmAcq43PLMNSe1ZKfC6OnR2+HE4riN+DI1Uux/Y4scGviE8k?=
 =?iso-8859-1?Q?ABsaBjBc+DbRvYHWKrugshz5XUw2ku9zcWjjEarDx2j8hG7BBtu/Nxd856?=
 =?iso-8859-1?Q?FLB3stECS5FASfzlf5Y7Lk2230sHAHRM03ZaniWAvkhIg9CqE8r+G3fNku?=
 =?iso-8859-1?Q?KDsoTXAIX7CIUdMQvP6t/TR7v0OLVN0IogpYkPiJr/eNbsoqiEY6W/gBFI?=
 =?iso-8859-1?Q?SGEQLt5VD8EVSLsC0VM=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?aGYKjMAljCyl/sqS506FdNk3f8xekyglwAol9TrH1lD92Taekfhe8IGuAS?=
 =?iso-8859-1?Q?FAZN/WoBt9/ZzS4CpgLyyG04/zV5ZP4aOI5HPqNmlItpC0ixefaawCtmRy?=
 =?iso-8859-1?Q?I2DRIdorIiOxiHCdsSbRiGn+3cNJay9pJEV3L1dmVDEfsKyr1IWj77PndC?=
 =?iso-8859-1?Q?WtzWAgofq7dFg/bGtneFmgPYZeLkVt2+/cTT7iBReYqaUHtIQJNsb73bMa?=
 =?iso-8859-1?Q?xXZAqu//DIx1T6f3vARYJnKYIKsA9KwCk7LYghfXFVU1fEVXhY4rqeWlnG?=
 =?iso-8859-1?Q?6qwIjcvI3K62XPVdrTceJBos1uWMfimnEbWlcCbA7/Cp9bzNtmch4cdRXE?=
 =?iso-8859-1?Q?EV4Wr9RCd2j6cE36b6N0+kn5GnOz45Vr6VBziLB4EakdSoenYPfV8TlvjH?=
 =?iso-8859-1?Q?/8t0YjIF9ouHJ1coIM0E+SxLxZPSe8Y8MevmpKWANss+7SNbpMl1aX8FlQ?=
 =?iso-8859-1?Q?H2SgOi0UTmiryfclY8KiV/TosBVcGpbXRxUv+pE5MkAhX2de2W1knkEiub?=
 =?iso-8859-1?Q?TssUCUZmnz4cdW3806KvWw91yPX/F7EmDGJXVZce18mWmrVpnjCDzVa1FC?=
 =?iso-8859-1?Q?XwKg15xBw0uS8Gb2XMwFG1PlKhCXiiHD+Hk8t1Av4U6TNec70q1zX0c24p?=
 =?iso-8859-1?Q?uJ0lP6I+L6K08kqZQCuu6tJ0owzerjg9cWGo9ykiEALdo+ynIHoxv84285?=
 =?iso-8859-1?Q?rbnpv85Bhp5AfCLOOsFr1WPwqJHMTytuTkhedNorU8QgEWz5ZvG8FXQC3B?=
 =?iso-8859-1?Q?oi8EdzxJ5O3c8FW26TACXl2hUv5pNCopsl2YlnD9EJg3pnqGdZdebSq96z?=
 =?iso-8859-1?Q?payKap6Q/MPIJLSbjDIz3KWSLdX9T6WKUJ89vvkZC6u0IKmTynyNtpe27t?=
 =?iso-8859-1?Q?J1kPsA/KlfGVEEz+NraZD59i73H1XOBuzEiMyrx8NaKfla7R66S3T6UIix?=
 =?iso-8859-1?Q?0oqw7/O9L9fX4zOAjeK0X+9qKRyoSbygjFvXdjYKXURIFrbW40JFD7hqsc?=
 =?iso-8859-1?Q?F1a0cL3LnuO791bakKvbl3DAqyBWovUQzEKMtiUeoKp1ANmSTtKl8riivg?=
 =?iso-8859-1?Q?bljdeVUdCmiZxCXrX2/nJBqV439KP2FqSM++FdHjtjoZeE5PTXkxzc24H3?=
 =?iso-8859-1?Q?KdYWaGQ2Mqi/YUF+5X7U+8sy+1pKVNIfFJKYNu3VwZcxBdjhXN/KoSUWDg?=
 =?iso-8859-1?Q?fQcEPi1qr2+pegR3YEONO+IRc91fwhjKliB4Guraxd8inQYGxislcY5n8t?=
 =?iso-8859-1?Q?edJfE3S9HKnpkwdpahsSmFzZ9nqdOZ1NClrffI3XQh99foz5iCWQ6GLNKz?=
 =?iso-8859-1?Q?Otcl8GWbxqm9yOVBnkno3A/vV7Q3iEYbuQmx54ji5LZvOYDyCxp87gq5N7?=
 =?iso-8859-1?Q?jbZG8FecLVF1N6+LcgmT8i8AzhKaeRqh98697DGOU11m40ftI3lBcxTy5j?=
 =?iso-8859-1?Q?fm6UbllRibCHJMnyLl9j2p9djkKTAtarv/Yf3Q6C1aSrunIl9NRmPMjkBQ?=
 =?iso-8859-1?Q?ZFNSiZ0Xh9/HMUUeIfRvJ5uqz/AeIPQtNEowPu9qQsKZn+LrD4uxILh/m3?=
 =?iso-8859-1?Q?tQfwHes/+AIbSdE8QpNkzKypjVfUig4n49UI2gWAR6Jrix7Ry+QUKmkPjk?=
 =?iso-8859-1?Q?MtHWkSjq7Q4vKwI4JAIraL7wHMB210JEzacpzoVR3uEeQxZClXIfqWX+wc?=
 =?iso-8859-1?Q?1tU35I/G/HxTmavMmzTfmZbu62n/YdKytbMSHLP5rH6U/tzfgF/CGiKij4?=
 =?iso-8859-1?Q?AwjK2zzAE91Z+FePzEYpQG0pbCY+IwVmrtHYUnaIV/C0dmeEEQ74rk/FXR?=
 =?iso-8859-1?Q?RcM3TE2QBsZAiJXiahlma2X7VoIsyNw=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: bbca65a2-2351-4be3-25fa-08de62762c37
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2026 16:14:42.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: nXocrPXq/w2x2PyglV+fh8ncdKOYZ5IUoWaxcBR09ifZliZ4z5eK4c+Vk7JKqy4Q/DkCSLOvIPQfh5/vNpTBAQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR03MB11643

Implement accessors for GICv4 registers VPENDBASER and VPROPBASER.
VPENDBASER access needs special handling to clear the Valid bit before
writing a new value.

Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
---
 xen/arch/arm/include/asm/gic_v4_its.h | 38 +++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include/a=
sm/gic_v4_its.h
index fb0ef37bbe..ba81b25bde 100644
--- a/xen/arch/arm/include/asm/gic_v4_its.h
+++ b/xen/arch/arm/include/asm/gic_v4_its.h
@@ -17,6 +17,8 @@
  * along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
=20
+#include <asm/arm64/io.h>
+
 #ifndef __ASM_ARM_GICV4_ITS_H__
 #define __ASM_ARM_GICV4_ITS_H__
=20
@@ -50,6 +52,42 @@ struct event_vlpi_map {
 };
=20
 void gicv4_its_vpeid_allocator_init(void);
+
+#define GICR_VPROPBASER                              0x0070
+#define GICR_VPENDBASER                              0x0078
+
+#define GICR_VPENDBASER_Dirty                   (1UL << 60)
+#define GICR_VPENDBASER_PendingLast             (1UL << 61)
+#define GICR_VPENDBASER_IDAI                    (1UL << 62)
+#define GICR_VPENDBASER_Valid                   (1UL << 63)
+
+#define GICR_VPENDBASER_OUTER_CACHEABILITY_SHIFT         56
+#define GICR_VPENDBASER_SHAREABILITY_SHIFT               10
+#define GICR_VPENDBASER_INNER_CACHEABILITY_SHIFT          7
+
+#define gits_read_vpropbaser(c)         readq_relaxed(c)
+#define gits_write_vpropbaser(v, c)     {writeq_relaxed(v, c);}
+
+/*
+ * GICR_VPENDBASER - the Valid bit must be cleared before changing
+ * anything else.
+ */
+static inline void gits_write_vpendbaser(uint64_t val, void __iomem *addr)
+{
+    uint64_t tmp;
+
+    tmp =3D readq_relaxed(addr);
+    while ( tmp & GICR_VPENDBASER_Valid )
+    {
+        tmp &=3D ~GICR_VPENDBASER_Valid;
+        writeq_relaxed(tmp, addr);
+        tmp =3D readq_relaxed(addr);
+    }
+
+    writeq_relaxed(val, addr);
+}
+#define gits_read_vpendbaser(c)     readq_relaxed(c)
+
 #endif
=20
 /*
--=20
2.51.2


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:20:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:20:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218961.1527846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwfQ-0004KV-Ru; Mon, 02 Feb 2026 16:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218961.1527846; Mon, 02 Feb 2026 16:20: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 1vmwfQ-0004KO-OI; Mon, 02 Feb 2026 16:20:48 +0000
Received: by outflank-mailman (input) for mailman id 1218961;
 Mon, 02 Feb 2026 16:20: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmwfO-0004K8-Nn
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:20:46 +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 20793d4f-0053-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:20:45 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso39687785e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 08:20:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482e2e3bf18sm99615685e9.19.2026.02.02.08.20.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 08:20:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20793d4f-0053-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770049245; x=1770654045; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FFDbJjK9AOCC9J39bKSLHR59+MqWiOKp8jEBvlZ0yJY=;
        b=Yztx77CXNu+8LYJqEhYMT2sogT8Ah1qhgElt1IB1TlBfdVoY/d0ux2prELuoc9Fy+F
         U8FRL57K5JNPfSKZnnZ5pEugNuZKjPcecqgrDS/9ZG2vSMVj34MckjZYSgemMmsog6B4
         nLwiHnS/EbEd8X8xyVWEGOubMg+Jcz9WDRa+biYDmJwjszKy69tKQ2IWyAGGMuk/8tEh
         VP5mAqvo+baX3i4rqZ5aEtJoQ0MV29btkFuVDqkR22gf2WNXnGkWUcT+zOPHG4wsL3zK
         WyWNM6Mcd0qDRVbMCcbt2e8kxfqoCuIXdLCXXQkZPMI3PF4/d5A04l5RrwMUefnJKi8T
         cNgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770049245; x=1770654045;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FFDbJjK9AOCC9J39bKSLHR59+MqWiOKp8jEBvlZ0yJY=;
        b=igGJboRy8QolqG9bDn1A5Y4qeCJxQNP0PwKq842JZKGpsUSooUU1GWKmCFt+zTA9oJ
         5C6A1nZkZCZPdMdYHW2VSmXQ42qd7vXuhfRmxr8y4GRsYR9oz31PEljBLe7gjYZcCpAj
         7tZI44/lnzxJcrWuLixnuJmkwWKW65FDt+CBNvbbqkecDJEONgfyX7w4XRR/gOFoA7D/
         5XF4hzLOPJ0kcc5ac1v66IJ9EL0nyGpXWOMHu6i6yJb8E3zaMogJ6MPHfv8cjHoIUZC+
         sAC53jKh0zkIPPtaRAVx43VT228PpI8tb16bzjgoV5i+qWdG9aeWH2r7qe2IgkRjqT21
         2CpQ==
X-Forwarded-Encrypted: i=1; AJvYcCU+HwpmOVoiOXZLPtaLiiZLqQ8ON+O/viPrBr7onzdyktWKjIrFK+NSuVSbLI1tC4B/zb1eJgcJ+QU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzF0xNODxyrIaJAG/Q5RM5w3o3F0KlmV2T7X+6TZvQDdxcSjbyX
	qKkxMoaAeRecgi0Lcql6MAOFlIsaxHeoCGwGhueMIlTzltL0KrTnpoP9BbUeVtQ3/g==
X-Gm-Gg: AZuq6aJRp7rmAtn99QPf4zlfEKil/Mgl0m5UUo+cViAjNHcb9vlAw56rZoZYpz9wXzb
	mBb/6Dpip//dcAM//KkzcdPTcDVZdHfbBKDy2THmcvCVcEvkVYtpTNtsaadT/4gR4R4rKzWNGzw
	9n6/iBQdN4mZyGtZrsOF9Js80XriAYkX6n00Qb6UDrdWMi2KOhwgr/C4YWDqqZk8gsfuUJC/e8P
	+ZGidXNmDZXldZBzDXTaMXeeec8GcxFsgg4ouqtAiJ4WbApQay5Q9jLxwAwfxRZ9hjpELedNqjU
	aio/AfGzhsiORpgW9nAN6XWC1BU+21OOhKA7akpvJUys15jtqY6ulT7rgUGYmyxobPzj3kuhVwR
	xVpCPrMXC6hS8sKeSv4gHuMNN5s++DP/HE88Q+BSdS1XXbnWJCkqyCqdymWR8uoMeO6J9t40woY
	PfsJmTnXauxgonOGThYyXi5PFNIujkdZYZIeqMi2jG3C9G+K5lVym7wM8sqsfxtlMrvgIDt9nah
	BU=
X-Received: by 2002:a05:600c:4e56:b0:477:a9e:859a with SMTP id 5b1f17b1804b1-482db47cf2dmr173772065e9.22.1770049244840;
        Mon, 02 Feb 2026 08:20:44 -0800 (PST)
Message-ID: <27eefb94-ae13-469c-9b1e-f730a27ab22d@suse.com>
Date: Mon, 2 Feb 2026 17:20:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: calculate number of synthetic feature and bug
 enumerators
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <70fe3986-ad89-4b42-b158-7e7b2b24ec1e@suse.com>
 <5f42ae1e-7f3f-4e95-a6c3-5a7f39623971@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: <5f42ae1e-7f3f-4e95-a6c3-5a7f39623971@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.02.2026 16:56, Andrew Cooper wrote:
> On 19/01/2026 3:30 pm, Jan Beulich wrote:
>> Rather than spelling out their amounts (requiring updates when multiples
>> of 32 are crossed), introduce a sentinel each and calculate the two
>> numbers from those.
>>
>> No difference in generated code, albeit debug info size grows quite a bit.
> 
> Presumably because of the substantial increase in preprocessed output?

I wouldn't expect that to matter. My suspicion was that de-duplication might
not work very well there. But I didn't go check, as debug info size really
isn't a primary concern to me.

>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> This is an alternative to "x86: guard synthetic feature and bug
>> enumerators", bulding upon the expectation that when adding to the end of
>> either list people will notice the sentinel and not forget to update it.
> 
> The extra preprocessing overhead is not ideal, but it's certainly
> preferable to the first version.
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:26:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:26:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1218975.1527855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmwkc-0004xW-GF; Mon, 02 Feb 2026 16:26:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1218975.1527855; Mon, 02 Feb 2026 16:26: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 1vmwkc-0004xP-DR; Mon, 02 Feb 2026 16:26:10 +0000
Received: by outflank-mailman (input) for mailman id 1218975;
 Mon, 02 Feb 2026 16:26: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmwkb-0004xJ-4J
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:26:09 +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 dfed4a5c-0053-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 17:26:06 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4801ea9bafdso19835255e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 08:26:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e10e476dsm44209088f8f.4.2026.02.02.08.26.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 08:26:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dfed4a5c-0053-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770049566; x=1770654366; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tc6gOz20lEaU/3fSZjEE3ALZJibk+cRJSW+ufdKy2jw=;
        b=P0mA9mUJEqp1Q9DFyD8rOv/slQ/JyJ+vM+G4c+q0z4YvWg/TYMOf6aTxS3Se/KgVnh
         rZsqVMim5+Kk1ZiyHzuYpwfFozqaVeclOwP7NZaMRvpY7Fvwzf/k5JppfAj+3qRiiXUa
         BqHsMaYFITCB/37oxTX1l2gba/8KZWY1HZBfuW2bQoZjigLZ2lISaPO9DNueAAK6DAVm
         OAjlCkP6RttVSdvExOeaNAWUpPnUevu8dWzDfwQp0AQlZAwkYEl94H64qLlVi7O2FwNS
         gJikd2JH+Ftt5HYepwfT2KN1KPkX92fduAxKuW7XkAaonUQUB3CGhfrpBqkNFB7TAQ+G
         o7aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770049566; x=1770654366;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tc6gOz20lEaU/3fSZjEE3ALZJibk+cRJSW+ufdKy2jw=;
        b=KMuRFRXakZVzN47aNo0yHtmRhrvqZfkVBrD4k2V7Mnjt6dMvnZdyAoS/78h+VIV0xY
         UAeAsVIdG/JbMSyDCWgi895BUNG+4LR9la7oJU0+z9Krm8WS5DMBk3eTtSVc48GPhiQX
         WP1NJoajgjxUWx1Kdxij851Gtb/qMd/J9BaegF6T1Xd3lq79zOpCYFeSs3h6P9smK24I
         I3727jFFtaht5cu1r58r5BLNkuK6TpK5mUk2cd5O3Xv0X2uhpznewz2cnZBntF+maJg2
         2qKlozzQ6GcsWwUQ86Ch0BKV5WIMB/mdOauKgVzIOWPcsbd0zwnJnu+0laorypiEQu50
         hGIg==
X-Forwarded-Encrypted: i=1; AJvYcCXI9QwlOKiZIUHYKr7A6QV4aM4A1FS1K0SFzLAdeq3oH12LE0ph9sc/ddiNR/ymBx+RuL4xuyxNBLw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLy+HSpqerpLKAEHf2gQrsPv3xK/1bSKKTh+/HmzK6orL5rDrt
	MO/roS3SxxpFSNzmXRXfHFwtVouJavq4QHeJELqbrYrtHvlpd/h2w/wfIN5umSQJQg==
X-Gm-Gg: AZuq6aL/Zswaiiq2wjbPwIhAHTHA/nRCfPXYZ+dK8i+Yw+V9eH8JU+vxfZIRXQ4WwN5
	ObpLXpdpSwDdIWDXYYZL4NSNGZx9AC60AFdMurFJcOlfhqaoQ/7we3ZgxgFc/UVoSFRvlsEeyTi
	hRAWi4T1HGSzaoTLFxVHhWbmuaErNHkpt2RZ7ec1uE9+8DTwRK+NcTpRlA0z5M+xY0e2ZnQq3ut
	c/gYf9oFjGMtMmmIY/KUCnk7NfhbRl0kXzOK9nTWxiRSjE2GsQ8lBBFgQf3tm42LggHeoKgtH09
	0TLkGb6HcnknkgwffXbNDSPXBJVGed7UWc4I7QLYL4rXSllonvzzA6kb/W3UI9zLG6W105EPVFd
	S4Qk1UmYn9LJqCbDaEV0eYYH1wm4kvg3jMQ8jC2dFyIfatUwbBnmbseFCHRZdnxYBZ9fAsdeM2+
	S3o6QxyJCoqebEC/Nu6AtW9UShoPKOD8xocp4XHDfRZmz5/yJ8UYFDRG+My/swdUdx4TReByN/W
	n0=
X-Received: by 2002:a05:600c:c4a3:b0:47e:e9c9:23bc with SMTP id 5b1f17b1804b1-482db49d765mr183192495e9.30.1770049565975;
        Mon, 02 Feb 2026 08:26:05 -0800 (PST)
Message-ID: <e5e75e36-a383-4506-8e59-288faeffb614@suse.com>
Date: Mon, 2 Feb 2026 17:26:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/cpu-policy: move CPU policy library code
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <4bd68e41-e665-4992-9d3c-0086bb5195ef@suse.com>
 <7c06bd5e-fad2-42cb-947f-6749f647b068@suse.com>
 <d8eb4220-da82-43b3-b0e0-9d006f68877c@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: <d8eb4220-da82-43b3-b0e0-9d006f68877c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.02.2026 16:47, Andrew Cooper wrote:
> On 07/01/2026 2:17 pm, Jan Beulich wrote:
>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>> index 0203138a819a..be6c76d2934b 100644
>> --- a/xen/arch/x86/arch.mk
>> +++ b/xen/arch/x86/arch.mk
>> @@ -4,6 +4,7 @@
>>  export XEN_IMG_OFFSET := 0x200000
>>  
>>  ARCH_LIBS-y += arch/x86/lib/lib.a
>> +ALL_LIBS-y += arch/x86/lib/cpu-policy/lib.a
> 
> This wants to extend ARCH_LIBS-y surely?  Is this a rebasing oversight?

No, this was deliberate. The functions here are different from those in
arch/x86/lib/lib.a. We don't need to fear collision with "common code"
ones. Hence I preferred to use the more "normal" placement into what's
passed to the linker.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:46:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:46:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219000.1527865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmx3j-0001xh-TY; Mon, 02 Feb 2026 16:45:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219000.1527865; Mon, 02 Feb 2026 16: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 1vmx3j-0001xa-R3; Mon, 02 Feb 2026 16:45:55 +0000
Received: by outflank-mailman (input) for mailman id 1219000;
 Mon, 02 Feb 2026 16:45: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmx3i-0001xB-Nk
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:45:54 +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 a28aa3ed-0056-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 17:45:52 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-42fb6ce71c7so3849260f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 08:45:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e10e4762sm43126989f8f.6.2026.02.02.08.45.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 08:45:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a28aa3ed-0056-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770050751; x=1770655551; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7FMYtYbudKgAG4CvwK6NTykjmaW0CA4U3dbA83dbTuU=;
        b=faJ3ynp95kVQoj5ErTOPq2pgeBBQmLD8VAnNjFZvPou1PKBhuHDzoPI0XidThn0nqJ
         Jf/GR7SVrfoF8OZgrjpkSoqq4/254GHIQ7LTP8O+342KzhxiqhulbhMoJrfbJT4prBU2
         toeSChbhKFRxwSwXS9BMRGnSa/Qdw1qZsJhYsx43erRNgOWDUXvhKmVZ0tEXEOOzOS5e
         wOkLbwaCHh34lqel5u1QMUXbNtCZ0N5wzRoeJhGsoRyTHghBppbRwp6JWtWpJKOcKxnb
         7wqAomJuBKwbbWgEVPxM+pP6clXQKk11Br174g55cfDizsZmADOzP3SEq3GtRZeONWOZ
         uIWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770050751; x=1770655551;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7FMYtYbudKgAG4CvwK6NTykjmaW0CA4U3dbA83dbTuU=;
        b=gPf76Vy8b+iDjjrhLcDUj9Mt2Lu/DZ4UYM6G++GtytQPDtT7UIIXzXrRWsDZsn02ir
         mHsDNXjrL+Ue5W1gRFeJm3E090E68ic9U55TZYwHZAhD7yVLoxmtxYc3M9Ne6L84eIO5
         N/OffqTeJsBwc2ZSyxVnLqNGx4coduplJgePXJADqFaDCn5HnXePAtoPRcpVWy2Duj0P
         V/1/JxLEwwFZ9+vmVlbYL26BEpYuB88PwCSBQkY/ifi2PvghjxnK/+0yO0U70257f/kH
         V1iNGxNqkM+JqkWQ903QLr0MgnyygVzkdkt4SPmdritAA6/HmA+bm4iXIazQgEqeyY9k
         OU6g==
X-Forwarded-Encrypted: i=1; AJvYcCUaFOz8HHLuCMnfGu6CsXDohG9uolU/InKjrk/LpifkP73mlvpKtzNyFF+AhPOKoI2DtuvYy2D+LGY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy6cOV62cL4r62TnSx20LsMMpoyz0mY+0RygieBh1uhhWxhHkSw
	fvV/LATBhVZczf76rQTQ9kwPBkNYetxhIWGP+hB5hzxYadWrLYMNXdrd8+g2CKdK0g==
X-Gm-Gg: AZuq6aJd4M6l+kmyg6ps7JJMuictWPDvkWZ8zaqwiCs8Ylq1R6wZHK+P1XCiUUGfq+R
	Tc2r0wvXE5bJw1DncQBp2r6dxmTJN1bd8WfY71jB21Gy99LBEdz/z0eLta1jeCzEzcKsPLBx3SE
	5gwsj2AFURXlySzVhOIfU7U5NFyRXC1jcuBk+RscHsrYgPSCl+FAf+OoszLqKcOrpuQDOSRBtSo
	Vlmo2/lYN9y36qKj5BCBZIYXh4KI5sMAP5Ht8bZSzT6HxsdHSfEmLI7DMmDZAFnc/stcbF0m7NC
	ZNXVM3+AIzK+HrVgOkyVDAUFB0Llty1cpR9lN++/YWPgBt9L9Ro7D7MfyswjZDL9MOxNhY6XpIA
	5fi99cly1ZX/Ww0CaJkCNVPQdz0EOHIbPu5xs/jARbMHEL68xVxebX/cTdKY95UpEBXvtbLbB3A
	x1wJB1Zdb53XxpCnlbkS/f2KE9UdtRbeqmHysQ56p7ys1BOamHVZRTaNz0qqBicnvvsMU7rXM+i
	m8=
X-Received: by 2002:a05:6000:1446:b0:430:fbe1:382a with SMTP id ffacd0b85a97d-435f3ab8953mr19778111f8f.54.1770050751439;
        Mon, 02 Feb 2026 08:45:51 -0800 (PST)
Message-ID: <8a303ef0-32fb-44f3-bc73-2276e5e08be6@suse.com>
Date: Mon, 2 Feb 2026 17:45:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 07/19] xen/domain: Alloc enough pages for VCPU struct
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: "xakep.amatop@gmail.com" <xakep.amatop@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" <xen-devel@lists.xenproject.org>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
 <a34c89037c29728943d0a15168e7c87e2ed50630.1770046465.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: <a34c89037c29728943d0a15168e7c87e2ed50630.1770046465.git.mykyta_poturai@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.02.2026 17:14, Mykyta Poturai wrote:
> With introduction of GICv4 the size of struct vcpu can again be more
> than one page. Modify struct vcpu allocation to request enough pages
> again.
> 
> Don't reintroduce the MAX_PAGES_PER_VCPU check.
> As per commit b77d774d8274183c2252f5fbc9fa3b3b7022ba06
>> It turns out that beyond efficiency, maybe, there is no real technical
>> reason this struct has to fit in one page
> 
> Since there is no technical reason to limit struct vcpu size to one page,
> there also seems to be little reason the fiddle with 1 or 2 page limits.

Before writing this, did you check the recent discussion around the Arm
side change going back to a single page, and the moving of this code to
common/? Any ...

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -342,18 +342,24 @@ static struct vcpu *alloc_vcpu_struct(const struct domain *d)
>  # define arch_vcpu_struct_memflags(d) ((void)(d), 0)
>  #endif
>      struct vcpu *v;
> +    unsigned int order = get_order_from_bytes(sizeof(*v));
>  
> -    BUILD_BUG_ON(sizeof(*v) > PAGE_SIZE);
> -    v = alloc_xenheap_pages(0, arch_vcpu_struct_memflags(d));
> +    v = alloc_xenheap_pages(order, arch_vcpu_struct_memflags(d));

... non-order-0 allocation is at risk of failing despite there being
ample memory available, if there's heavy fragmentation. I'm sorry, but
without a much better justification this gets a NAK from me.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 16:58:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 16:58:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219011.1527876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmxGB-00052w-0b; Mon, 02 Feb 2026 16:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219011.1527876; Mon, 02 Feb 2026 16:58:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmxGA-00052p-UB; Mon, 02 Feb 2026 16:58:46 +0000
Received: by outflank-mailman (input) for mailman id 1219011;
 Mon, 02 Feb 2026 16:58: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=Bi8a=AG=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vmxGA-00052j-1E
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 16:58:46 +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 6e2c39b1-0058-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 17:58:44 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-482f2599980so18678145e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 08:58:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482e2e3beadsm94298895e9.20.2026.02.02.08.58.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 08:58:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e2c39b1-0058-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770051523; x=1770656323; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NDsMiTsT9NbLmooRjArcnE6DMrktVNXwfD+3xuGQfsY=;
        b=R0hkqOkaJ6Tuj7xUMdM1HerffFcc9Xy7WEwqce+DeCK3RMwFdH60v2Vpr77bZhdMMA
         ZRu4AmCiwSfAYcssg/QALuD/D/CR4b+VofHWXqnua0AGFhaoZvNVbSffySuM2jbcPgGt
         drdtsIMw5zi011mqPP9jt0z8qwC1WU07ZndiELJF5pwSeOge7nUH9HcBp2nIwznCnMTO
         +9KaQbfa1FHCY6olFSZX2Fm+vk7HDt5zEpqxIdxkxew8usA1U32TYTn1DpsrFfyXqzk2
         FMX2BMtMzU70srQmf5aZjHRdrYAa744M9tWIccgRXlkS0AJfMY0I7bgzeCZkzTHvqnzm
         pIkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770051523; x=1770656323;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NDsMiTsT9NbLmooRjArcnE6DMrktVNXwfD+3xuGQfsY=;
        b=CFtOIrZwm3TGspJF5hpboJGbnJOMSeGWM+SGg/H6fiZKAhkYn1imemevlvZQ1bi3pV
         g50DMF50j48uWOPSiytcEHFFYNuI71BG85xfhlfDLmcdTgxM3Pq8b7jA1+pue/mzl7l+
         rGz01qolHYZ7mDy50essgWpBto377jV8KcWo9wcwQMXifdy3dbp1hCn9KI6ZeDOSqLYU
         XIwMdFfkL91BWOexeCEVozzaznIB8637TpOj4En1AvgGL/tNqPEyI9CNxDyULG5B/mF1
         NS3Yw08sMkmsXYG4Piydexo/dJBab2wxVgacrPAUe5caTaqAA8LXt2ZWQgsFqYyO9awv
         I4aQ==
X-Forwarded-Encrypted: i=1; AJvYcCWv++DMSc800VOf/ZSuMu3rnDrzBImrk+l77zvdSM3Xrzn6OsE52g7iPOmwGpuVO0UhNt5aaY16OT8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw+0RzDDWttDsvMN2go9pAuJw6oMwEX19tXo3XQImxriwxepgAi
	sTERli+YfMu0QrI0WrNyht6Vie/WdgjbMm6uIERLz6nGTHSEIzjM6SUZC5dnkRPrSg==
X-Gm-Gg: AZuq6aL/gjHDTbueTLkjV7bofehB7wjqj+dFoBnd9LSWcYYSk6rF8mZk4TE7z1hRBJS
	4vsLyO+zVNcGuU/H6sgKsTtoy+gOE/WqT2fVw0tudK8GC7ePDMGfptFf0uEJBr4nWQrMS1YiENs
	56vSZLoMoyhOAKKBvQmdcOl24RYHdMom96Kfk9+A/tP8X45mwzELt4KZfEmxLpOf/3FGTB3O0WV
	I84LnzRA0l0/e8xYlPt6D1R9KaanOmSrESfwdQPyyjq9O2jGQbut/jzr2i4A1NaEup4fkTLHSV3
	SPusGK2tsStEgIgNr4WVtInjwdpkN0SA9x4YLzh6fpBCvIPiPmUbQS8BsxYlMOh7Vc8qr7J4/op
	E8+M0hOVzucC6OkAAfSpYLxR+oEJI9VI7HCNCagxVrInpPLROYBRkfZbJ/3rNQ1OJmqfM71w1Vc
	bS61sMMn8vGOfIgTNJcR8LrUv59rspFXtI9v8mn/HUOesqXsgXk3OYDlumiObDH4FDKYyRJiTFe
	rI=
X-Received: by 2002:a05:600c:474f:b0:480:3230:6c9b with SMTP id 5b1f17b1804b1-482db4596d4mr154431065e9.7.1770051522566;
        Mon, 02 Feb 2026 08:58:42 -0800 (PST)
Message-ID: <c14143e5-cb7e-4c73-b95b-3321a0be943a@suse.com>
Date: Mon, 2 Feb 2026 17:58:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/4] xen/mm: allow deferred scrub of physmap populate
 allocated pages
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: <20260130145726.85907-1-roger.pau@citrix.com>
 <20260130145726.85907-4-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: <20260130145726.85907-4-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 30.01.2026 15:57, Roger Pau Monne wrote:
> Physmap population has the need to use pages as big as possible to reduce
> p2m shattering.  However that triggers issues when big enough pages are not
> yet scrubbed, and so scrubbing must be done at allocation time.  On some
> scenarios with added contention the watchdog can trigger:
> 
> Watchdog timer detects that CPU55 is stuck!
> ----[ Xen-4.17.5-21  x86_64  debug=n  Not tainted ]----
> CPU:    55
> RIP:    e008:[<ffff82d040204c4a>] clear_page_sse2+0x1a/0x30
> RFLAGS: 0000000000000202   CONTEXT: hypervisor (d0v12)
> [...]
> Xen call trace:
>    [<ffff82d040204c4a>] R clear_page_sse2+0x1a/0x30
>    [<ffff82d04022a121>] S clear_domain_page+0x11/0x20
>    [<ffff82d04022c170>] S common/page_alloc.c#alloc_heap_pages+0x400/0x5a0
>    [<ffff82d04022d4a7>] S alloc_domheap_pages+0x67/0x180
>    [<ffff82d040226f9f>] S common/memory.c#populate_physmap+0x22f/0x3b0
>    [<ffff82d040228ec8>] S do_memory_op+0x728/0x1970
> 
> Introduce a mechanism to preempt page scrubbing in populate_physmap().  It
> relies on stashing the dirty page in the domain struct temporarily to
> preempt to guest context, so the scrubbing can resume when the domain
> re-enters the hypercall.  The added deferral mechanism will only be used for
> domain construction, and is designed to be used with a single threaded
> domain builder.  If the toolstack makes concurrent calls to
> XENMEM_populate_physmap for the same target domain it will trash stashed
> pages, resulting in slow domain physmap population.
> 
> Note a similar issue is present in increase reservation.  However that
> hypercall is likely to only be used once the domain is already running and
> the known implementations use 4K pages. It will be deal with in a separate
> patch using a different approach, that will also take care of the
> allocation in populate_physmap() once the domain is running.
> 
> Fixes: 74d2e11ccfd2 ("mm: Scrub pages in alloc_heap_pages() if needed")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Jan Beulich <jbeulich@suse.com>
with one minor remark:

> @@ -286,6 +365,30 @@ static void populate_physmap(struct memop_args *a)
>                      goto out;
>                  }
>  
> +                if ( memflags & MEMF_no_scrub )
> +                {
> +                    unsigned int dirty_cnt = 0;
> +
> +                    /* Check if there's anything to scrub. */
> +                    for ( j = scrub_start; j < (1U << a->extent_order); j++ )
> +                    {
> +                        if ( !test_and_clear_bit(_PGC_need_scrub,
> +                                                 &page[j].count_info) )
> +                            continue;
> +
> +                        scrub_one_page(&page[j], true);
> +
> +                        if ( (j + 1) != (1U << a->extent_order) &&
> +                             !(++dirty_cnt & 0xff) &&
> +                             hypercall_preempt_check() )
> +                        {
> +                            a->preempted = 1;
> +                            stash_allocation(d, page, a->extent_order, ++j);
> +                            goto out;

As j isn't used anymore afterwards, j + 1 may be more natural to use here,
if only to avoid raised eyebrows.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 17:35:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 17:35:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219020.1527885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmxpS-0003dd-Kr; Mon, 02 Feb 2026 17:35:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219020.1527885; Mon, 02 Feb 2026 17:35: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 1vmxpS-0003dW-Hw; Mon, 02 Feb 2026 17:35:14 +0000
Received: by outflank-mailman (input) for mailman id 1219020;
 Mon, 02 Feb 2026 17:35: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmxpQ-0003dQ-NZ
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 17:35:12 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 83d39c88-005d-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 18:35:08 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY1PR03MB7239.namprd03.prod.outlook.com (2603:10b6:a03:534::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 2 Feb
 2026 17:35:04 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 17:35: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: 83d39c88-005d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V/Iy5QDxEzuhh2nLpx1f0H/O9THpspzYyGIx6pn2aJ0B+uOlIVfDtF0xyVjS+6D/CKfpG7GyHagYMcXDv00fmP/EIR+/ZsMdf7GwBvyC+9P7WaPPGHc3StpK0tcS3PtTOG5jxxBIAZJ/DBhGDWcs6GbDpPyPe+i/ryqISZfMi4Vo3kuA4kCciJV7S36qNjXGnWTyJNjRHbIokHSXt5/yH7QWA+ui7ly2ZL4O8f4IuCXwVnOgMXMF7mzTy6HfzXb1OuhYnH329xpUBriwIEdOo27VziY8j023y7HmnKG4oni0zwMDNqL12FDm0RdF29nMvBxCw5yizp7xAsHqXwzyEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uNvclFP+ywsf4WVRKqo9u/R56b0LpU3bJ+R+u0YqUx0=;
 b=u9Q//kh01PUhbLi63FMgdg38aV4Bs8XEBU1spQXAjd5rS1cwcTV4dwQf5k0Wx5Syo35xw7CHOtKp3Aq75YgLssEiKm4K2CG17xViSenZnN05eZEDzCoCVSnlkDi01GiEUVmLYIYEgiBSDuneKO5MdbMhH+Nmv/a0FsYOVYUffhI9Bad4GK7DitQocTP4lPDa7btQc35vuqu4O2Nlb06Bv6mcIN7vPLG+WmUQ9igWyleKF6uCy+O1KSxVqqHq7+Jto2Ky8x2Ve594p3PGWtNngGA68gLN3EIE68GGtH8X+902l70W76BdEA5OmgXkuksPF71roxXSEyqaZCp7m3F41A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uNvclFP+ywsf4WVRKqo9u/R56b0LpU3bJ+R+u0YqUx0=;
 b=XqjtfEt1AH6OnXBLAM7rGe816889UM0vFRxRY/Csl45slaUBeF+whUXTb/L5Z0Gmd6m2IfHM1qswvAhiCRgXvGXyEcffhPDMttKDN2NhAG8ENHv5BSW03bz9b3i8SyK0TRlPjbtReGhJLEawYj+YuN2wJZoS5Vx6DPYFOavMaLw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 18:35:01 +0100
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>,
	Penny Zheng <Penny.Zheng@amd.com>
Subject: Re: [PATCH] x86/mm: split struct sh_dirty_vram and make results
 private
Message-ID: <aYDgRamZZRNsYPXF@Mac.lan>
References: <3dce4f28-558b-495c-ac45-0f699da82458@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3dce4f28-558b-495c-ac45-0f699da82458@suse.com>
X-ClientProxiedBy: MA3P292CA0053.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY1PR03MB7239:EE_
X-MS-Office365-Filtering-Correlation-Id: 282b419b-1001-4cdc-5fcc-08de62816650
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dnBPMGphTlRnQUdaZXk3NVNLWlMyQjdhc1luWlJxMWVOckR0S3VrUkxQcVJx?=
 =?utf-8?B?WVp3T0tmMFMyUVZhOFVIM1NxeHF5YmplZ255UUppczgxbWh6RWxNSkFQQnVa?=
 =?utf-8?B?U2dwaHBkREwwakdNVDFPR2FGWUVjUlEwSWhuOFFlMTgwSzFRWkVQVlFEY3ox?=
 =?utf-8?B?bGljQ2FuM1hsQkF6NGlFY25YamRIcVRSLzlyNStXOS80cTRiNnJ2TXRYem5L?=
 =?utf-8?B?K2NFZU1MSjNJbDRsZEFLMjZtQjNyQ1gvM3FKRDk1QU9acm5pSi9UTHlDVkE1?=
 =?utf-8?B?V3NsVC9VLzNsRW5xKzdlZkNtZkl1T1kvTlVGSWM4RjVzTDhYMFh6UjFSUWxJ?=
 =?utf-8?B?OHU0S1BkMlFFeE1rK2t2RTNpaWRPbDd1VThNdXZZNnlQdnpsdFAxWXhTVndq?=
 =?utf-8?B?RXpwVC9ONW9oMEZDTVB3VHpDeU5jcCtpdEEwMU9DUzdRK0t2bmpzL3AwVUhq?=
 =?utf-8?B?SnVUcWdMNDl4WXEwbXFkK0wwUWFIRmhQWCtnVXVBYzZIckVMb1psSFVTYlJM?=
 =?utf-8?B?SUFCMTNDQ250UXU2RWFWOUtSRFBZU3ZwcXE3c0ZWUUhiRGlMY2JMNGc4WitY?=
 =?utf-8?B?VkIvYlV3N3hpRGVNYVhSNUxybVVtUXRWV3Y5Q21JT1YxU2RNem5aajY3T1k0?=
 =?utf-8?B?a2VWS3RYL3p6bGNiV1NMNyttYU1mNW11T1RzZkxnTFBNYU1rK2drUEpuMnZz?=
 =?utf-8?B?WEVIa0lHNXhXcy9lMWVhWjZkMEcwcVBvVFE4ZnA5ZDZmd0FyYW8xRi80bkp6?=
 =?utf-8?B?VFh3Wk9CV2c1Z3Fjd2J4OG13VmdqMGMyZ05RQ29GeEZMU0dDUXZ1R2MzOVh2?=
 =?utf-8?B?Smp5aUtuYnVqbm94Q0EvS2QzV1BqMkErbnNXdHZMcW1WTWV4bHNZblVuUnVM?=
 =?utf-8?B?OEYyTU5LaGswME5OMHllYkMvR1JZdGJtSTg2aUhxaEJpcTNXb1g0NkJ5UFg5?=
 =?utf-8?B?aU56WFFIYmhQeXRCdGphVFRBT0d6czBPYXc1UXZxMlBFY0RFQUlmNU53eDFD?=
 =?utf-8?B?aXVBVkY2bmt3aS8ySGZjMUo2c2NZbzI3UStqQVV6NGRtSng4UU9HU0FDSlR5?=
 =?utf-8?B?RXdnZ09DM05JdHZERk9PTXVzRlJyMFlTZU5TQVVTN2Q4MUx6QjJ4YlZKY1d0?=
 =?utf-8?B?b1lDM3NKdnk4RURJVGJkMHpBQ2ttQ2Y3bDdWZFRkaTA0N2lSSTZNWEhYK3dZ?=
 =?utf-8?B?UDJUc0NZT05TK3lrYmdGUnRXMFhqTVJHMHNQZXZQUk5Fb1hrOUJtdEF1QmFJ?=
 =?utf-8?B?eG42OFpHNStHc3A1bWtZSlBWUHJBOXZQOEFZb202dDE2eGQvbS9uTGVIMnFq?=
 =?utf-8?B?WmtJRzhKOEg3aW5GUHp2ZUQyc2lzSzF4ZVFMM1plYWFoOUxidVJaT1Jxejlk?=
 =?utf-8?B?Mlk5bkVkME1mRldlQ29kYmMzZEEyZkZUYm4wbmdpOVpsSWQ2eFJwWUJLM1VR?=
 =?utf-8?B?dnZGc2xRQ0pMOUFXQmd4dnNVZGFpNmhDbThVZktiZmZOd3RoTy9zSk9uWnpC?=
 =?utf-8?B?ZVhGZnNkVkRITDd2a2lWbGludVhIa0dnUlRlRUZUbXFZZWVndzhzZHdFU0NC?=
 =?utf-8?B?Q3RqTUt5bk1LR3hYQmtjciswbFVTaFpBN1U4aGlHUGNKOHdWbTlUZnFCcGY0?=
 =?utf-8?B?SFlPVE05SCsxWFlJWEcrd0pEYmtTQ0Njb0hpN3E5RWtuaGVVNTFaUEFEbUNo?=
 =?utf-8?B?R1dXVlJuK2RQTVVrbmtvWis2Mjl1MHJjcnkrc1Z2d0U5MGpQUG9CdnQ4MnM2?=
 =?utf-8?B?c3cxK1JlQm9zUEZjTzJqSk1CM1EwT0Q4TE9iVHp5TWl4a05LRkNXelRCTjFH?=
 =?utf-8?B?M0dxVTBMZm0wQTY3YUVaNnJnT0w2UDdiVzhpUCtZdUhMUzZrUmxYMTQxdGR5?=
 =?utf-8?B?WEo4aG53UXJRS0o0UjU2VGFFM1drcmZsVXk3RzZqV3pQQitGd20vZGVmc3N5?=
 =?utf-8?B?aDNzQWtzYktQZlZBanVuNnhBWk5ZVVJpNm4yUDJvVGpsRnAxSis1ME1OVnJ0?=
 =?utf-8?B?R1Vqa3pSV05sNy9UbHNlTHM5RTBHM3ZhNFZmUWhwRGVkWnpOYWVVb3lYQ2dH?=
 =?utf-8?B?eE9wczhkb1FSTVlYVW5qY0R2cHRpUW53SmRZM0UzT3Rqb1FDZWF4YlROVStJ?=
 =?utf-8?Q?ipgM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Wk51SndHVGdBZ3kzRUtNZXhmb29QQ2pEQ2VUTFVJYWYySFJpTlBIbDFWQXBs?=
 =?utf-8?B?QUllNjJjVU1SVGpDRFExTVpJbm12Ky9kM1U1dURQUEIyR3ZOaWpXZkM1cVJt?=
 =?utf-8?B?WGRnOExoVGNHNjEwRDFHOGVyTmNIZWduUnVoMzhYTUVGOXlJSnlrUTg2RmFB?=
 =?utf-8?B?Qm9VeCt2YmxTUTlpN0pBeWxkU3lMZVRLV1JmbVhGYnZwbGRtdzNtcHFuL3pX?=
 =?utf-8?B?aHBCVzNLYXF6QTVMMDZ4bGpGR2NKUEdxTEZ0cWFwejNvSjBhVVVPWGNVdnU5?=
 =?utf-8?B?bnh6QnRxckZiUjYzUmFVMGhnQmZTSkJtbjZZeklCVmpWOWd6dXBtUjZ2Ynp6?=
 =?utf-8?B?YzloeUFrd0RGQWlYQisyYWpCZ2VwOUZLTmNtb2RFbENxRm5DaytOL0kzRTZ3?=
 =?utf-8?B?V0g3eGtNOVNwM3UyaGdTZ1lFRTJHUlZCakRxckt1UlBWb3NwNVJpQ0dHMFRV?=
 =?utf-8?B?ME96OVNYdW5CUm5IMGx3dWRXVjE5NGJneEozVmxRMjROSE96QVdFWUQ5Wjdl?=
 =?utf-8?B?bjNFck93RGYyeUR2UU5jbkt5REp0aUhPR0FPM1lYMnR1b3l1UWZ6cGxZYzdV?=
 =?utf-8?B?VUpHeE1YemNTcGRDbjZKVkFJclZ6dm1VeGdQUzVnTE5vQzVYQVBod204Ni9D?=
 =?utf-8?B?K3JsQlRDVFg3YWdheFZGTHJvQW1HemtRV3R4OG5BVDY2Y1VMUHVSYkttaXFP?=
 =?utf-8?B?VGtGOHQwNVQvOWRpZ2NrUERKcmtpL1BCaTN5WGJONlNBS1VSZFovZU9pb1g2?=
 =?utf-8?B?bWNqd2tMVzRkUWVLVTFaa1YxUk1EeFY5NG91ZHVzRkZyK2xDSDlmS0N6RE9T?=
 =?utf-8?B?NFd5bWpuY3hwZW1WN2dKYkl2MTVMcFhvU1Rud3RLOEhtK0RsYVkrZ1JBUDRm?=
 =?utf-8?B?WGNwZDIvWlhRZmQ3dkg2T3N1SVFhVlVUTk9QS3A2NVNWVHQ5TGFqUVdBSTZn?=
 =?utf-8?B?dlEzMEdNNkVqZGQ5MFE1WVc3L016M05wUFhJcXQrdGRKQjF4MDdnZWxqSXVt?=
 =?utf-8?B?cTh0Zm5MNFBJTVlHYXIxd0w2WlRRM3d4bWxtQ3IrNjhDb3FrbC94NjZKYy93?=
 =?utf-8?B?M0lpaFZjWlAzOHMzU0ZzTmhtL2ZXYnA5bHlnR0dZZGVNcHdtcmRKcE56eStJ?=
 =?utf-8?B?cTJrSmpBRXI5TDcwQUNzZVBQUEUyVEwraE14dmhCVVhpSU9NWGFlUDhOUXZp?=
 =?utf-8?B?MHhhd21ncVd3MktCNllEY210NzA0cmgzVTR1SW1MVXYxdHJuQXV5aXpRc3Zz?=
 =?utf-8?B?TU1nS1FaeEI1S3RBMC82aWVxZm51S1ZjS0NXZ0pYdzdpN2FoQ1ZHZk1UTTJh?=
 =?utf-8?B?SldFa3dnUDBzUHhMTVJBeW8zWmtTZWg3NHplNDFveEhHUm9pVTJrOU4rNXdN?=
 =?utf-8?B?a2NQUFJPekJIYmxzalFuMUdMdDhEVW9UWUNsUDI2eGxZSHlqV0NSY09uVmhy?=
 =?utf-8?B?bTVOcmpWRmE2MXRBN0d4OGRlYUJEbWIyRGtqOWg4QzlEcDFIamYvdXVlR3Y3?=
 =?utf-8?B?a0ZlbHRrc3ZqY2lFL0R4ZjIvdlBySDdtOHBXK0IxTFVDT2t0WmFVSmxqOXVn?=
 =?utf-8?B?dkU1WHpHU0dZMC9CSktVU0lZdmNiTk5wcDZ5VHFTeUV2YXBEZE15VGFnK0tW?=
 =?utf-8?B?Y3hsN0pnRUdNRS9lM3NxRDg3eFloK1VzVjdoNDJCODI3YmUrZ2ZtTlBHT1py?=
 =?utf-8?B?MmJOaVlVK3cvSkYwUGNDR1VVSzBkWDcreTBzRGFVbDlUYXZVbGRjM2t0QlFW?=
 =?utf-8?B?dWZFMSttKzJUby9adkVLcDFnTDFLZEcxOXFKQ0xteUtRUSt5bHVxSXIzVVRJ?=
 =?utf-8?B?U05DR0Y0WXRSZEIxZTM4T245SDV6bXA1TFVCZFFQdGJVVzdpQUR4bVhFSkcz?=
 =?utf-8?B?Q2Y1M3RKdEZ3L0lDZUd5VlQzWjVEdkJDSFJLaVExV0V1cFBQdkUzMG9FWit0?=
 =?utf-8?B?R0NJbXBjQzQ3THl0OHpBMDZNSys0cXRrVzlGandLd3V1VU5Ed05oSGZkTUwy?=
 =?utf-8?B?amc1TkUrc1c0S1ZyK1ZMSGpTaGNLMXJtUDIzUldFcEV6VENQaEpCK3ZOb3pE?=
 =?utf-8?B?UjVTYy9odVNNYlIrZmRRS2RXUll2REd2QlJ4STlTMFdKMGVnSlVtZUgrR3lh?=
 =?utf-8?B?UlYxWWVZeUNydjVKSVhXLzdSMU1KM2xZVTFrZzhVQUFOQ3ByRVZQUDJjM1Fp?=
 =?utf-8?B?MGdRTUhSdExtNDd6allHNW5PODArNmJLZkQ4ZnBZUms3WTArZ2RXL004azZF?=
 =?utf-8?B?Mk9uK2dyakpvQTNSYVg0UE9hS0p2Zzk1ZXpTalA3T3p1R25ITXBPQkJrdW1t?=
 =?utf-8?B?UmR0UGZaTTRmRzBDc1N6MDBFTGdJNTg3bGJ2aGVEMWYrbThRRHZKQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 282b419b-1001-4cdc-5fcc-08de62816650
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 17:35:04.2196
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: RnD+v3Oimrbda7ZNY7M8wZVFG/W1eUvKTQxf43NlxKQowDFTQiUsiSFRGuymp7dEAPxFMpPKdZjrplZ5Ul2NrA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7239

On Wed, Nov 12, 2025 at 04:47:31PM +0100, Jan Beulich wrote:
> The types are local to the shadow and HAP subsystems respectively, and
> HAP has no need for the shadow-specific fields (i.e. it can get away with
> smaller allocations). In struct hvm_domain it therefore suffices to have
> a union of two (generally opaque) pointers.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Just some minor suggestions below.

> 
> --- a/xen/arch/x86/include/asm/hvm/domain.h
> +++ b/xen/arch/x86/include/asm/hvm/domain.h
> @@ -95,7 +95,10 @@ struct hvm_domain {
>      struct list_head       pinned_cacheattr_ranges;
>  
>      /* VRAM dirty support.  Protect with the domain paging lock. */
> -    struct sh_dirty_vram *dirty_vram;
> +    union {
> +        struct sh_dirty_vram *sh;
> +        struct hap_dirty_vram *hap;
> +    }                      dirty_vram;

Other in-place declared structures don't use this aligning.  I have to
admit it looks somewhat odd for structs like this one.

>  
>      /* If one of vcpus of this domain is in no_fill_mode or
>       * mtrr/pat between vcpus is not the same, set is_in_uc_mode
> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -133,19 +133,6 @@ struct paging_mode {
>      (DIV_ROUND_UP(PADDR_BITS - PAGE_SHIFT - (PAGE_SHIFT + 3), \
>                    PAGE_SHIFT - ilog2(sizeof(mfn_t))) + 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
> -
>  #if PG_log_dirty
>  
>  /* log dirty initialization */
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -36,6 +36,11 @@
>  /*          HAP VRAM TRACKING SUPPORT           */
>  /************************************************/
>  
> +struct hap_dirty_vram {
> +    unsigned long begin_pfn;
> +    unsigned long end_pfn;
> +};
> +
>  /*
>   * hap_track_dirty_vram()
>   * Create the domain's dv_dirty_vram struct on demand.
> @@ -52,7 +57,7 @@ int hap_track_dirty_vram(struct domain *
>                           XEN_GUEST_HANDLE(void) guest_dirty_bitmap)
>  {
>      long rc = 0;
> -    struct sh_dirty_vram *dirty_vram;
> +    struct hap_dirty_vram *dirty_vram;
>      uint8_t *dirty_bitmap = NULL;
>  
>      if ( nr_frames )
> @@ -66,17 +71,17 @@ int hap_track_dirty_vram(struct domain *
>  
>          paging_lock(d);
>  
> -        dirty_vram = d->arch.hvm.dirty_vram;
> +        dirty_vram = d->arch.hvm.dirty_vram.hap;
>          if ( !dirty_vram )
>          {
>              rc = -ENOMEM;
> -            if ( (dirty_vram = xzalloc(struct sh_dirty_vram)) == NULL )
> +            if ( (dirty_vram = xzalloc(struct hap_dirty_vram)) == NULL )
>              {
>                  paging_unlock(d);
>                  goto out;
>              }
>  
> -            d->arch.hvm.dirty_vram = dirty_vram;
> +            d->arch.hvm.dirty_vram.hap = dirty_vram;
>          }
>  
>          if ( begin_pfn != dirty_vram->begin_pfn ||
> @@ -132,7 +137,7 @@ int hap_track_dirty_vram(struct domain *
>      {
>          paging_lock(d);
>  
> -        dirty_vram = d->arch.hvm.dirty_vram;
> +        dirty_vram = d->arch.hvm.dirty_vram.hap;
>          if ( dirty_vram )
>          {
>              /*
> @@ -142,7 +147,7 @@ int hap_track_dirty_vram(struct domain *
>              begin_pfn = dirty_vram->begin_pfn;
>              nr_frames = dirty_vram->end_pfn - dirty_vram->begin_pfn;
>              xfree(dirty_vram);
> -            d->arch.hvm.dirty_vram = NULL;
> +            d->arch.hvm.dirty_vram.hap = NULL;
>          }
>  
>          paging_unlock(d);
> @@ -630,7 +635,7 @@ void hap_teardown(struct domain *d, bool
>  
>      d->arch.paging.mode &= ~PG_log_dirty;
>  
> -    XFREE(d->arch.hvm.dirty_vram);
> +    XFREE(d->arch.hvm.dirty_vram.hap);
>  
>  out:
>      paging_unlock(d);
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -2886,11 +2886,11 @@ void shadow_teardown(struct domain *d, b
>      d->arch.paging.mode &= ~PG_log_dirty;
>  
>  #ifdef CONFIG_HVM
> -    if ( is_hvm_domain(d) && d->arch.hvm.dirty_vram )
> +    if ( is_hvm_domain(d) && d->arch.hvm.dirty_vram.sh )
>      {
> -        xfree(d->arch.hvm.dirty_vram->sl1ma);
> -        xfree(d->arch.hvm.dirty_vram->dirty_bitmap);
> -        XFREE(d->arch.hvm.dirty_vram);
> +        xfree(d->arch.hvm.dirty_vram.sh->sl1ma);
> +        xfree(d->arch.hvm.dirty_vram.sh->dirty_bitmap);
> +        XFREE(d->arch.hvm.dirty_vram.sh);
>      }
>  #endif
>  
> --- a/xen/arch/x86/mm/shadow/hvm.c
> +++ b/xen/arch/x86/mm/shadow/hvm.c
> @@ -1033,7 +1033,7 @@ int shadow_track_dirty_vram(struct domai
>      p2m_lock(p2m_get_hostp2m(d));
>      paging_lock(d);
>  
> -    dirty_vram = d->arch.hvm.dirty_vram;
> +    dirty_vram = d->arch.hvm.dirty_vram.sh;
>  
>      if ( dirty_vram && (!nr_frames ||
>               ( begin_pfn != dirty_vram->begin_pfn
> @@ -1043,8 +1043,8 @@ int shadow_track_dirty_vram(struct domai
>          gdprintk(XENLOG_INFO, "stopping tracking VRAM %lx - %lx\n", dirty_vram->begin_pfn, dirty_vram->end_pfn);
>          xfree(dirty_vram->sl1ma);
>          xfree(dirty_vram->dirty_bitmap);
> -        xfree(dirty_vram);
> -        dirty_vram = d->arch.hvm.dirty_vram = NULL;
> +        XFREE(dirty_vram);
> +        d->arch.hvm.dirty_vram.sh = NULL;

It would be better if this was done the other way around, first set
the reference to NULL, then free the memory?

        d->arch.hvm.dirty_vram.sh = NULL;
        XFREE(dirty_vram);

>      }
>  
>      if ( !nr_frames )
> @@ -1075,7 +1075,7 @@ int shadow_track_dirty_vram(struct domai
>              goto out;
>          dirty_vram->begin_pfn = begin_pfn;
>          dirty_vram->end_pfn = end_pfn;
> -        d->arch.hvm.dirty_vram = dirty_vram;
> +        d->arch.hvm.dirty_vram.sh = dirty_vram;
>  
>          if ( (dirty_vram->sl1ma = xmalloc_array(paddr_t, nr_frames)) == NULL )
>              goto out_dirty_vram;
> @@ -1202,8 +1202,8 @@ int shadow_track_dirty_vram(struct domai
>   out_sl1ma:
>      xfree(dirty_vram->sl1ma);
>   out_dirty_vram:
> -    xfree(dirty_vram);
> -    dirty_vram = d->arch.hvm.dirty_vram = NULL;
> +    XFREE(dirty_vram);
> +    d->arch.hvm.dirty_vram.sh = NULL;

Similar here, I would change the order.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 17:47:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 17:47:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219031.1527897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmy1Z-0005mP-T9; Mon, 02 Feb 2026 17:47:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219031.1527897; Mon, 02 Feb 2026 17: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 1vmy1Z-0005mI-Nk; Mon, 02 Feb 2026 17:47:45 +0000
Received: by outflank-mailman (input) for mailman id 1219031;
 Mon, 02 Feb 2026 17:47: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=uTrP=AG=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vmy1Y-0005ks-HI
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 17:47:44 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 460adf99-005f-11f1-b161-2bf370ae4941;
 Mon, 02 Feb 2026 18:47:43 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6625.namprd03.prod.outlook.com (2603:10b6:806:1c8::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Mon, 2 Feb
 2026 17:47:38 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Mon, 2 Feb 2026
 17:47: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: 460adf99-005f-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=af2ziTgbBmI6B8VmUkADtgG+B/Qc6v6hH+dDt3MdSzXRQxJryGZcu5HaTvsfiack+sM0ouQQdiGTKLhWFZyiVX6lqkSQvpFxo/usJmvTYojuZa4A002S1ruUdtLrkBbDW/+SCBF+UyEC1rLDI/hiLXRceD6YCESjBmHXZK9u0DemhFLkqlVTycp5/JPqVemDJsHZiX+uXffVSZX9fhtoAOqFZLkW5wCXSOI9Z+m8dajt6nXgXGCBMBLJxkR3QhjGRU8tc+pEKGNh9QjrvUd2tX6kMnk2puNhqabttReSW1sgY3sq7JiaY96GM4wmI4Li8gRqAVpiRHnAxVXiEpIL2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=14wrngn2w6vEI+Giqf6ydZkY3Hc5fSj4Xf8LvepCggo=;
 b=coJ2fEkTNv7EPahqDuKwNYEfv1Z7nNmYR3bSy+p9qJzTy/g1I7WSgZ5ReaooAWH+9CvpsFf9xJoIEmOncmNL5ho7/iAmVb9TZ7S9U4RrfSUTJVnmH40dYAjpSbJzc1llCAgtBRI38+lTjkz/XDIm9M671oA7p+/tZdY3a+emNeNxNqkUQnvb6Sf+/4puXu1jhHlmKPaeOh71lDdW+Yr99XSGwyBWlYnSyGrep44QANviE/YFqDhFljjDPqFXkqXlay/8E1aKmhyllpbLJ4A3OI9GiF3XnYGORydVR8TP1yt5iqF2udGaTqV5KrXio5kJFzBSs07GEIzEwIXO/bLb0Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=14wrngn2w6vEI+Giqf6ydZkY3Hc5fSj4Xf8LvepCggo=;
 b=fEkBMFa/oA4lPAqdJXlnkieOVeNGGaNcFjcbAA38PwhJBE1YMgVAZHClwtXkQ7fJZq7cykBKXhq001CE9mrhx8YbV0er809WhLu0auXOzzEdUvyXG8B/6P5rXKqHeidFLapjms8e2Li6dqA6lbM9bqWSa/Y2VPZ5LcTTog/wc4Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 2 Feb 2026 18:47:34 +0100
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/MSI: adjust permitted vector range
Message-ID: <aYDjNlYqvaWtSXLK@Mac.lan>
References: <52227196-dbc9-4f6d-9c64-a5da5037b1ec@suse.com>
 <aYDIusUCsFZaSaQH@Mac.lan>
 <858301e5-2ca0-494d-9032-bf5802771e8a@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <858301e5-2ca0-494d-9032-bf5802771e8a@suse.com>
X-ClientProxiedBy: MR2P264CA0161.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::24) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6625:EE_
X-MS-Office365-Filtering-Correlation-Id: be47564b-b1fe-4463-1f7b-08de62832786
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?SjRkVDE1UGR3ZExNcXVsVkVjN3ErdGlBWjBoUHlGRDBLQUNQSnY1WXN3WVQ1?=
 =?utf-8?B?SUhXemJnREdUN3A5cCt5YSthMlkvV3lvejIrTXhpSTJkb05qMjlSb1A5ZGUv?=
 =?utf-8?B?Y2RISGFYQjg1MDNrcTNRcmNuZCszSnVjaXJqQnp0VmRPRTYzRHNXTnNTcjNE?=
 =?utf-8?B?SURrRjRaRjRCTkdDVUc0MGZ4OGN4aE16UGV6M0hYMzg1L3R0OWhwQ0Y5b3NS?=
 =?utf-8?B?d1BqdHVKRFM2QVFwMlM5eDM4K2twTng2RjNxWkRJQllFdW5tek9SYU9aUFlm?=
 =?utf-8?B?Tk9iRGpOVzh0SmJZbmNuSEd3WTQvajM3WnR1N3grdWgrbHh1QWJCR2tFMUJu?=
 =?utf-8?B?a29jckJLckVpKy9TRUZFRjZPajhrT3d2R2JmZGhuaEVPdXVuNGFUU0FvcFRw?=
 =?utf-8?B?WWxPbkNwOUVQOGRBa3JzL3hOdnJnR0pHZGI4RlVSWmNENkpXMEhMRVpnVG9E?=
 =?utf-8?B?RExRbllqRGFzSDJBS29CWWFOWHBIK3RFeXM0bFJyOEFGSWdrRitsdVJCUzF4?=
 =?utf-8?B?dDVmNis0N21FM1I1RFZTUndqTzl3U3E5UmpCQTRMODdXU0RxRFBVbmZXeS85?=
 =?utf-8?B?Q1AxVVd2Z3l6TWpLQkpwZTEzTzEyLzRTMmxlYVNJaXZGOUs1OElDbGpMbHFV?=
 =?utf-8?B?NHh5RGgzajNqbzUvRkg5Kys4Ny9PUWgvRzJiN0NmaDNyYVFrWEp4cVU0Vy9I?=
 =?utf-8?B?RnBPWGgrWU5aL0llQ2lyM3NzRWVLWk1rTFRpa0dUaUM1NmNndFNrbEYwemdj?=
 =?utf-8?B?UUNobWlmbEJJVTJKVWJQam9yTXRrN2lhY0ZvNVYxRTRnN3VOR0ZXL3JPVUV0?=
 =?utf-8?B?ZjlVMDRMYTZZdjdid21tQUs0NnY4a24zTWkrc2M2K3dEYkNMQzZNVWFhYlJo?=
 =?utf-8?B?OEVlWjY0NEkxOXhCNDl3WFNOTXY2ZEx4RHg2TzlnQVcwNUlkYk52ZENUSUt1?=
 =?utf-8?B?ZXVDUU9WMWpBQWwxZU1mMWpTQjBpZG1OZ0ZIMDloQnI0bzVDeXVvdytJSVNt?=
 =?utf-8?B?RnlTcnlMSVFuZHhCeTkyVWhhWjBoVTljQUp6UFNRcXo3a09TQnNESG5LSFMv?=
 =?utf-8?B?R2w5eEd4eEprYnRvV2VlUTZxcHJuTUFoNXVPbnJiYXRsNGh6QlhWS3IrK2Yx?=
 =?utf-8?B?MTZrTG16YThlNnh6cUFGaXZHUlBNSnpxMVZSVW9uV2FibHZVMEZzNDFxbmVh?=
 =?utf-8?B?NnNEVHM1UjU4U1J2WjlyeGxkZ0V2YWZXeC9DdUt1R05MZi9IaUQyNWlsSUFq?=
 =?utf-8?B?WDJtQzV6U1BHWVp3UFNIek11M3BDQW13YW1ZUUtJOEFNSi9sRXY4cTdER1FR?=
 =?utf-8?B?UFJnd3RmVUYyaEtCSzNQVEdHVHlWeDVEREQxekFXbHFEYUdLd3c3Z0Z2YWZt?=
 =?utf-8?B?N3BzZ2J3Z0MrWkNjRzMvOEVlRDNrQ2hESFJvODJHdVAxVnZoR2lNMUJ1T2Iy?=
 =?utf-8?B?SHBrdDhrcDdvMXBNZzI2RVVsYzhIUnJtKzdXdFBNM2ZBYWsrbnltMHJBeUlV?=
 =?utf-8?B?SFo5V0NxWDMvUHNXeGIxZnJja1JRSUR3WE4zc29QemtzeEdGVGF0WUZZSWJk?=
 =?utf-8?B?dnRmeHFUNERhMi8vOWxEMmFUWWd1VzBLZmlOcGxHdGZiSXAvRUo2RHFwRE5a?=
 =?utf-8?B?VHk0bmM2YTd6VEcreVJVSnlwdEdmN29XN2RQMHZ0aFVzbE9jTk54MTNmYkJV?=
 =?utf-8?B?bkd6Z1dXVXhoMWxXQklxSmY4ZDFKYTdYMlUwVlBHZVNuSmZWUE5YRjFFa2pJ?=
 =?utf-8?B?UDMxRnd2d0htemlnOEZtUWZ3N25mbkh5MGJDcmNDU1ArVDFwRHExd1IxeEUv?=
 =?utf-8?B?MEZueC9rUzBUY1RWL2s3djcvdlpiQTF5bVBIWjlWWno0ekFEYXZJQStkLzRX?=
 =?utf-8?B?NmY3VmcyaFdmcEpHbnFlenJzZkQyMjNFV0tzMHgydVZDbGxkdEZXcEFRUnhO?=
 =?utf-8?B?TmhzRGU1QmI2STRKR0pjMUtEdWFyb3NtaTE3cXc3QUdhNE9PYjI3ODAzT201?=
 =?utf-8?B?UXpjRjBSK05FOXRGWWZydUEvSHZPdHFYYUdEeE5LaFRYVmhiemxKTXV5VFJZ?=
 =?utf-8?B?TEtjR1U1N05QMWRtc1BtVDBSZjlYK1dlaVRiRnR0S2ovU29yWGd6SHBjLzFs?=
 =?utf-8?Q?2fk8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z2c3UUE0QUlidm5paUlZQzNRaDQvcGVFYTlzME9tK2IwOVRFQnN3T0FMa0U5?=
 =?utf-8?B?RVNWdFBxNERYM3IvNnc3bHA2M3lMSjR0MUxYVUkxYVl0NE5TNFdCTXZhWGpq?=
 =?utf-8?B?WDYwS0NxMHJnQmR5bHZpU203VkZqSkxhQ3R4MDlvU3hWbWZiQnM0cDh6RHVZ?=
 =?utf-8?B?NGVTcDdWZFFLRnVQMVFONVQ0YitBQWhDVnVoMEJ3cFZuQXhGRjBRWm0yWk9q?=
 =?utf-8?B?N2lrdVFtamg1V2laeUoyM3BucG1pUUJ3SThMUW5RRkF5RGM0Rkh6MUc2dXl6?=
 =?utf-8?B?dktDbVcvWksrWkluZjZNWWIyZ0hqb3RVQmU1empoRzhtUEV0em5wd3FYcDlp?=
 =?utf-8?B?azVJNTJUTEd5UldERytuRkxiWlp5bUJ0UHZON0dlWWY1cG5mWlRWUmg5SzFI?=
 =?utf-8?B?a2ZiM0xjaEFWSy94ZC9GK3NBZkkyT0JhZHVkeWxCYXpGVWg2aGJheDJWdDZU?=
 =?utf-8?B?T3dIN0lmRWZvckpDMXl3S2xudEozbW9zQ1NvWSsxbG5TeDhmQWkyakozcTZT?=
 =?utf-8?B?MDBiaFdjMS9SalZyVkVSaWZYdnhEOW5ac003TW5CaXdhcDMyaGRTeXpRckV0?=
 =?utf-8?B?b3NQL3dOdGU1c2d1Zm8wN1UwUS94VGlLOEt4anN1NDNRdUZJMlFXL3JZam1F?=
 =?utf-8?B?OVZwNS9mWUp2OUdBTWpNWTIwY0ZKVHQwVXdOQVRxRkM4d1BLN2lodmUvQi9D?=
 =?utf-8?B?N24xZnJTU1BMZGgyNFNQYTNGRmhsRUFiQ1Nldk1NUmFLTmV5VnRMOC9PK0Zs?=
 =?utf-8?B?UEZTK1hZNlpNYzdjQjhhS212SSttMTRIc280eWFDODI5ZDU5dmZLZytxNFo1?=
 =?utf-8?B?YkorbWNTcHBlRW5pRUIvQzh0N2tMenJCUUdMdmNrSkpObWNBUGlwUXZKSWZr?=
 =?utf-8?B?K1B3UkIxV29vVkNSYmhVemdUUHBnZm1OL0U2S2YrOWREMktHWDgxS1d1S3k0?=
 =?utf-8?B?R0d1enlwYUhpeUJ4aEc5K3ZPT3NMM2pZMTdsUzJHQ0h1K0hReFRqRkJUUjNz?=
 =?utf-8?B?aXFaWFJHTlRaUnNOU1NsUG1XT3pCZEpseUhJOUp0SVRzTnZ1R0JGdXJzWGpP?=
 =?utf-8?B?OWdHRVo3WVpKR2x5YzVwbTZSOSs1QUx5OVlkQ1RZd1BHTzc2Y25FaFBVUTlv?=
 =?utf-8?B?cDBUdW5ySHFla3ZQSjRzZjM5S0RtazNxa01DZmF4RHlLb0N2M0EySXliQnc4?=
 =?utf-8?B?bUkrWmlJZ0gzM2hVK3IxOXN0VFNBQnZkTW5mMWk0bEFCNGRPc3ByWU9sOCt2?=
 =?utf-8?B?SW05OHUvdHZIQkNpWTFLRjN4ekpIeGFwdDB1RVEzbjZ5QUlzd3F0ZitMTk5x?=
 =?utf-8?B?bldTZUtTdEoyUzdKTVAyMVRlenJTV0x5OWtPRllrb2dkVzdHVk1BOFhYRmJC?=
 =?utf-8?B?SkRKTFRHUU9yMEtMekQzencvdm9SVEw1c3JSbUw5WEZTN2RTQ3JPZmpLVTJV?=
 =?utf-8?B?ZUw0V00zcjJHamlnK2d6a0RSLzVEYzRpUkVWNWZ4ZFdibEppVmRaWi8zTnVw?=
 =?utf-8?B?b1pENUwvWm5sNlczNmFEQ2lBb2RXdjVSL3BPVU51VSttclQvc3BUNW1ETzEx?=
 =?utf-8?B?K1FJRWVPdjZYWUkrTFB3RXkvUEljRDlPM1JJYmtZSEx2bXN1ZjBRVzhCWnl2?=
 =?utf-8?B?cEVkQ3ZBRGw1UHRIVmJidmNpU1dIN2x0V3dUWS8wZzNDQnR3cjlCZVhFSHho?=
 =?utf-8?B?NWUwU0t2V0dyVXcxQ2k4bkExVWprU2kweWVIVmJxOXlsalo4ekVHYXgrMFQ5?=
 =?utf-8?B?NWdxSXd1bEVGcHBiWkZzRjBUWm1RS2wyOEMrWU9yUXpuSjBwaGQzNkxRbVVY?=
 =?utf-8?B?SGhIcDRGSG8ycEtWRmNrMllEa0NRQ2hZWkMzbW1YTC9DUjZpbWNFQmtJem9M?=
 =?utf-8?B?aUZPVGRrMVlUaTB5ZkVXVkg1ZS9uNWVyQ2d6ZTJ2cnRYREJDU1cvc2RoSE1I?=
 =?utf-8?B?N1FEem5OTXBvdzRrVVBOcXVVTmdiQ1QxSXROWnZ6NDN6TmRhd2YvTDhDR0lw?=
 =?utf-8?B?a0syVGJIeTJpQUhSMG1Ccy9lZEJsdTc5K2ZLaXUwY3VwUC9qOXB2OExudUc0?=
 =?utf-8?B?Y2NLNm5YR2dmSGJqc09rT0pzZDZkMmpRcUpzTmFJMnRITTd0OEFTOFVhL3lP?=
 =?utf-8?B?TDdLSitXL3Y2eUU5Mjhnd2tBTUxxWTRwYWRQT3NFQ3crcDJXNkRmZHIxYS9i?=
 =?utf-8?B?VG5Pbk00M3A1aktHRmdDRUtZQ0dSRGhtaVpndEp4cWxrMG1RU0xKaVJuS1hY?=
 =?utf-8?B?bitQWHNLcHQ4YTBXczhqL1crWlZ2WWF5ZVEzWUZzRkVCRi9CSER3NiswVE9p?=
 =?utf-8?B?eDY5dU5FMHRLVE96SE4yb0JCVjJGNXBYeXc3SmkzVHpsMVh1b3dvdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: be47564b-b1fe-4463-1f7b-08de62832786
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 17:47:37.8520
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2xbG/JwxQBNhQb3sZcpjWG43plPT0mCLYqShNPdf8el2PoQCUZ7m+6Pwy+q53FPGGWRAP3SOrW921H/LNUABzQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6625

On Mon, Feb 02, 2026 at 05:12:40PM +0100, Jan Beulich wrote:
> On 02.02.2026 16:54, Roger Pau Monné wrote:
> > On Wed, Nov 12, 2025 at 04:45:05PM +0100, Jan Beulich wrote:
> >> It's really FIRST_IRQ_VECTOR vector which is meant here, i.e. effectively
> >> there is a form of open-coding in use right now.
> >>
> >> No change in practice, due to the present aliasing.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> While doing the HPET work I had to fiddle with this, even if in the end
> >> no vector below FIRST_DYNAMIC_VECTOR is being used there (for now at
> >> least).
> >>
> >> --- a/xen/arch/x86/msi.c
> >> +++ b/xen/arch/x86/msi.c
> >> @@ -158,7 +158,7 @@ void msi_compose_msg(unsigned vector, co
> >>  {
> >>      memset(msg, 0, sizeof(*msg));
> >>  
> >> -    if ( vector < FIRST_DYNAMIC_VECTOR )
> >> +    if ( vector < FIRST_IRQ_VECTOR )
> > 
> > Should vector also be rejected if it's > LAST_IRQ_VECTOR?
> 
> That's a good question for which I don't have a good answer. I can't exclude
> that composing an MSI message (for purposes other than using in an MSI
> capability) might make sense with a vector above LAST_IRQ_VECTOR. Originally
> (as hinted at in the post-commit-message remark) this change was part of the
> HPET work, where it was an actual functional change as in an early version I
> needed to move FIRST_IRQ_VECTOR down (i.e. decouple it from
> FIRST_DYNAMIC_VECTOR). There the "composed" message was used to fill
> HPET_T<n>_ROUTE. Something similar might be wanted elsewhere, and it's not
> quite clear to me whether in such a situation LAST_IRQ_VECTOR would then
> also need moving (likely it would).

It's possible that we could add a range between FIRST_IRQ_VECTOR and
FIRST_DYNAMIC_VECTOR that could be used for fixed low priority
vectors.

> Right here I'm really only after the semantic, but non-functional change. If
> we can settle on also enforcing an upper bound, I think that would then want
> to be another change on top.

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 19:25:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 19:25:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219042.1527907 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmzY3-0001lL-N7; Mon, 02 Feb 2026 19:25:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219042.1527907; Mon, 02 Feb 2026 19: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 1vmzY3-0001lE-ID; Mon, 02 Feb 2026 19:25:23 +0000
Received: by outflank-mailman (input) for mailman id 1219042;
 Mon, 02 Feb 2026 19:25: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=or01=AG=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vmzY2-0001l8-K2
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 19:25:22 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e84af554-006c-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 20:25:19 +0100 (CET)
Received: from SJ0PR03CA0139.namprd03.prod.outlook.com (2603:10b6:a03:33c::24)
 by CH1PPF84B7B0C96.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::618) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Mon, 2 Feb
 2026 19:25:12 +0000
Received: from SJ5PEPF00000203.namprd05.prod.outlook.com
 (2603:10b6:a03:33c:cafe::72) by SJ0PR03CA0139.outlook.office365.com
 (2603:10b6:a03:33c::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.11 via Frontend Transport; Mon,
 2 Feb 2026 19:25:14 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF00000203.mail.protection.outlook.com (10.167.244.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 2 Feb 2026 19:25:11 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 2 Feb
 2026 13:25:09 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 2 Feb
 2026 13:25:08 -0600
Received: from [172.29.134.248] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 2 Feb 2026 13:25:08 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e84af554-006c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UvPaJymNv9kZAR7wyLAH8lkNWQ2Dnj/bJQXAfGB4rWeDBVZILVSszxjK3MlkN+eBS07Ecxm7cmNbDj3YeWhbrw8RZepfisvvEAK49/GYWecWk59y/wqJ+V0EBsUdhKHPMqcSsCe7FDTARqsuzx+kfTl4KloJpmLuUmsfG5G3JlpYaJgrqUB+py8kBfhiJPqTrxjn59DQ1Xr5IyOr2bvCerGfsrDwurnDVf3m/4kuD4Bnh0iObsPcdUCTAOauzcoyBakPOQ/H2b+JVoNdvEVig74xZoFPO58vGZ4svSo7p01JnZXle2kTjChWgpzTwk0iMh7r46biVLk6E563xiM00w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eP6TObi5ievRRwMq0Abe8fB/0Bu1EJ+pbuVvoJVO4Dc=;
 b=FMvkVKmlllKk80zPdLnPENjazHTaieGeBoA/zq26mEJH7KXeBb8pzh8qom/0tXuR7srJxWfYZgIFmBzHJQ0xe+LZ1RNrI0LCRhZGAt7hf97pWps1Qn+44vt+gFkrKIA8UPl/eYuphEhDOCg/1Ne6t08ji0M8ca1oqzHDt5MjQw4HPoqTLQxno23pRoNbLBGg+XZx7SoS3wrhBr5IqYuuCwtVuAvA8KyN7i5Re1yAgOifmZzjcXgZiq85+tZ+aHSKzpJKOzxf+66MC2DAxUYbq7PvuVR91S5zOGfE1TO8CyGl38mYIT1QEFS05Qnk5YaIQGhoFjUwWWmFVOswV0ZGZw==
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=eP6TObi5ievRRwMq0Abe8fB/0Bu1EJ+pbuVvoJVO4Dc=;
 b=4GbQbbgisdhRqFmJttki0KX6rGb0Gblxb9NrlwitTocxYO6i9M6LKQ1QwM3BGQhWsJVva4KIVFjA07m1Aeahu2UT0pe0/FpD4KCPui6tnikQizeYZy9BgVRmCdzFPv22ZaXr0RaSGCoL/NyQl0CcgTiBbSQsg4iH1GMCip8Dir0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <6e246a66-e5a0-435b-9be6-60f48b15b524@amd.com>
Date: Mon, 2 Feb 2026 14:25:07 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
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: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
 <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000203:EE_|CH1PPF84B7B0C96:EE_
X-MS-Office365-Filtering-Correlation-Id: f16ef799-0391-479c-2305-08de6290c8ca
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?a3FNbW4ycjBKdFJndUpjajNGL1YzNThmb05BYUZUWDUzbENuV3dSZzhSSEgz?=
 =?utf-8?B?Z0UyQklIUUkrV3R2Y0M3S1dXejN1NVZpM0RnYWpQc016aFZHYnU2R2FJY3pV?=
 =?utf-8?B?VDAwMGVvR2EzT2JhY255M2s4cHV3OUMyUXJrS2tuYUFHNWx6WnhmL0RQczBW?=
 =?utf-8?B?aHAxY05CWk50Wld1cGpiK0FKRVc5cmRPSG4zZ3luWWNObklST3JobTNDOCtH?=
 =?utf-8?B?eXlKanUxTVZFc3p0T1cvOUI1Nm82RXd0L2J0SllQTnZYRVJvU2lhNmM4VUpD?=
 =?utf-8?B?T3RXL2crdFNleVBpQWRmTUY0WXZXc1V2SzJjZ2sxQXdPZEo0NU5xQW8wZmhH?=
 =?utf-8?B?VFQ2cUxIQkMxcGNWbXZpaURzK0pZL3FxOVQ0dElJTEt2cnBFQjZLM1MrTzE0?=
 =?utf-8?B?SEl6MGhKUnE0SE9CM3BwQ0ZobVdHMGxyV1FLdUt2S2s3dzB4eFdkcWY0SlVj?=
 =?utf-8?B?Vzd2WmhNSWVxVURSQm5lUDVnSEdpR1o0UG1qY1pBcTJIbWNwTmp3eS9BamtV?=
 =?utf-8?B?ZGNTbEZjTkIxRW1VRWVGZ1E0empuU29sUG5ZSFZkWWRlYXVUYThVRlpVMnFu?=
 =?utf-8?B?cmRMWXZvTXd5dThJVFpCR2JNamphaWpQVEdkRnZ1S0NkenhiZEFtS1JES25m?=
 =?utf-8?B?YjJSZmhrallaa1VqZ2tJSWtRUXV2UGtxRCtnVzdnbzBTOWRWeTRIbk9CYVd1?=
 =?utf-8?B?UDdxMkZvV3YzSmpPbm1QQWdQSnFYZjV2ck1FRFc1NFJtR3dMRk51dDNsWDZ5?=
 =?utf-8?B?UEpNZE1SSXQ1YXJaTGhvT1V2Rzlzemk5cXgvTDM0VS83VHZNaUVCUjlVZHF5?=
 =?utf-8?B?a3U0ajRqNnN3TGtmTitLTDBKcjdMcWRtNjROd1ZpdytJZFB0Z1dXVmxZdVJM?=
 =?utf-8?B?amRWTXB5UmsyTHNZcDFXbzdWSFlEaE1Mb2JJOVo2Z2pTeitTN3J3UHlNdjh2?=
 =?utf-8?B?T3pXM3c5WkhWcjNTNW9jaVNjV3JMNmV4THRuN2FTU3NvbHZ5ODkxeWdBWHc3?=
 =?utf-8?B?Ykh0SFpWMXhrZThFV1RndWdtQUIwOTJITzR5aDFYK3ZLRGJFcTZEMHdzaEow?=
 =?utf-8?B?cm9QNjZhZ25icHJsOUZTMVJQeUpyU3pMbkZ0VVRKTXdPZmFsR01ENWdsQStj?=
 =?utf-8?B?UnZIMnN0U3ZZWmx2aFNQLzc5ZlRlOTNZenBRc0RtQ0FXZXpKSWI0bWlJNXFm?=
 =?utf-8?B?cm1XQjRVUzcyRjV2L0ZQWTkwQ1dpaFQwWTRISEM1Nk1DM1B0cEZ4N1RmOENG?=
 =?utf-8?B?U3dvam5WWWVBRUp4MEFkdXZ3WkNLRVJJYVFLSDRDM1RGNDhqelZtYmRxczNQ?=
 =?utf-8?B?WHNlWEdQR3liekUySnJ2dzVYZk9QMERzUFVZdUFzSUN6R2F4KzJGeUtlbzRE?=
 =?utf-8?B?L0greW9oOFl2dkx1U0U3M2pTN3I0aG5yd1M1MG5uWlhCRCtkSUc2SmNVOTFl?=
 =?utf-8?B?Ukoxd205dFZnMTk0RmJoRVNieTZOOXRRS1UvQmNUKzg0UVV3UjRBRmpqZ0la?=
 =?utf-8?B?OW9ZVzNzK1U0NVZ4N1ZQcllTM0RqWXEzOThlOVdVbktWcGJlSklBdHEwNXY3?=
 =?utf-8?B?YmN3emNsMHRabnIxSXRrdEpWQUc1clN1WUhoajlzOWd4SHRhNmxDVTZ5d2sw?=
 =?utf-8?B?d2pHbGVZdk5YUlVMa3grcW5DR0s5OERmN0k4U2pUVjQ1NDF3UnllSTVYcm1J?=
 =?utf-8?B?SWlrNmNzZEVUUWJLR1plclVtTGZkMENnNUNVUGRVUkFjM2NPNmRUMDNONm1p?=
 =?utf-8?B?QnBldW9lcTJXbDBhOGVYUEg5MnhyU3NzQlFHWHNMRlE2TUY3VEY5aGNWL1A5?=
 =?utf-8?B?V3hrdlZhdTE2aWRMZjkzRGZ3a1JuU2xmcFhrUGxaclpNY0RTQitZOXpvMjRv?=
 =?utf-8?B?T2QySVBPOGppUFkzUXhhVUVTVEJqc0hBeDBIaFg2MCtuME41VVp5WU9ibFVW?=
 =?utf-8?B?VXBPbWZzM1ZZMHI2bGdCakw1bE9WOHdXK1JWcWNXcVQ2VXJiYlp6NDlvZkhB?=
 =?utf-8?B?V2hLMFRTYkVLTVM2dXY5V2srZnM5Vm5MY2o2RkNWRjJ3L3hFdzEvdWZRc083?=
 =?utf-8?B?UU15emxqdTFEejZkZVVUcnF5aWNWYm93cEhwMGFCejViUUQzNlY0T0YvMWJz?=
 =?utf-8?B?a3BtWDdzZytZejdMK1ZmUmJHSGYydXhuNk80alBOY3Q3RzFKS1RZZENjdndo?=
 =?utf-8?B?Y0dyT3hyMHUxSGp1RzBUNnVyS3BVMFVlem9HbmxDU01IL2MzOTVrMjBSdkdD?=
 =?utf-8?B?MWZSOG12empLeXRuQjBnNktUOEVRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	wYtpvMKYsB77bFzbiGa8denaGWZ4oUgRyKKg1f8mAg7jISksN1+YUhCtBGhKB6wE+MBqoGUF/0c0DzsdmzL8VhPYZg3KVo3tvspVpTsXNxjvorlkFpx2zPmzbf7os9iDmvf7eiQF8WSPxSXjv3b5MM8364MV/ZMSolUCCLW8YlJ2jaxhnB/YjASxnr5eOnsoE1kJgSn23ahROARVOokjAHE4++g6lc5ec0gOFp35pWPGiQTZUAw8K63Czv+CmdgTPMedLWF4gd3+U8VLbonc1t3eyrWN/o279dGZHgR4kvKu1IY2ZWFwF0Q3w7dU5owqqRKWU723Hbku7W6vZRKqvsfUkrmoqKg0r9NvWUvG9UTRwV9FzcitNHLLtc5tmN1saCBOGU7/mmPExl4l+isyqxMdlKsSvwXYw30c9EybSxqIkonVvrg5Tf7DaVIhQxfb
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2026 19:25:11.6002
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f16ef799-0391-479c-2305-08de6290c8ca
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000203.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPF84B7B0C96

On 2/2/26 03:51, Jan Beulich wrote:
> On 29.01.2026 14:10, Jan Beulich wrote:
>> @@ -160,10 +161,13 @@ int pci_mmcfg_arch_enable(unsigned int i
>>      return 0;
>>  }
>>  
>> -void pci_mmcfg_arch_disable(unsigned int idx)
>> +int pci_mmcfg_arch_disable(unsigned int idx)
>>  {
>>      const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
>>  
>> +    if ( !pci_mmcfg_virt[idx].virt )
>> +        return 1;
> 
> Afaict this is what causes CI (adl-*) to say no here:
> 
> (XEN) [    4.132689] PCI: Using MCFG for segment 0000 bus 00-ff
> (XEN) [    4.132697] ----[ Xen-4.22-unstable  x86_64  debug=y ubsan=y  Not tainted ]----
> (XEN) [    4.132700] CPU:    12
> (XEN) [    4.132702] RIP:    e008:[<ffff82d0405779bd>] pci_mmcfg_read+0x19e/0x1c7
> (XEN) [    4.132708] RFLAGS: 0000000000010286   CONTEXT: hypervisor (d0v0)
> (XEN) [    4.132711] rax: 0000000000300000   rbx: ffff808000300100   rcx: 0000000000000000
> (XEN) [    4.132714] rdx: ffff808000300100   rsi: 0000000000000000   rdi: ffff8304959ffcec
> (XEN) [    4.132716] rbp: ffff8304959ffd18   rsp: ffff8304959ffce8   r8:  0000000000000004
> (XEN) [    4.132718] r9:  ffff8304959ffd2c   r10: 0000000000000000   r11: 0000000000000000
> (XEN) [    4.132720] r12: 0000000000000100   r13: 0000000000000004   r14: ffff8304959ffd2c
> (XEN) [    4.132723] r15: ffff808000000000   cr0: 0000000080050033   cr4: 0000000000b526e0
> (XEN) [    4.132725] cr3: 0000000492a30000   cr2: ffff808000300100
> (XEN) [    4.132727] fsb: 0000000000000000   gsb: ffff8881b9a00000   gss: 0000000000000000
> (XEN) [    4.132729] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
> (XEN) [    4.132733] Xen code around <ffff82d0405779bd> (pci_mmcfg_read+0x19e/0x1c7):
> (XEN) [    4.132734]  48 39 d3 72 ea 4c 01 e3 <8b> 03 89 c3 4d 85 f6 74 0d 41 89 1e b8 00 00 00
> (XEN) [    4.132744] Xen stack trace from rsp=ffff8304959ffce8:
> (XEN) [    4.132745]    0000000300000286 ffff830495bd8010 0000000000000003 ffff830495bd8010
> (XEN) [    4.132749]    ffff8304959ffdd0 ffff82d0405fa7ef ffff8304959ffd30 ffff82d040576877
> (XEN) [    4.132753]    000000000000000c ffff8304959ffd58 ffff82d04039b81d ffff8304959ffe28
> (XEN) [    4.132756]    0000000000000003 ffff830495bd8010 ffff8304959ffd80 ffff82d0405fa90b
> (XEN) [    4.132760]    ffff8304959ffdc8 ffff830495bd8010 ffff830498019650 ffff8304959ffdb8
> (XEN) [    4.132764]    ffff82d0403983e0 ffff830498019650 ffff8304959ffe28 ffff82d0405fa7ef
> (XEN) [    4.132767]    0000000000000018 ffffc9004002b900 ffff8304959ffdf8 ffff82d04039feba
> (XEN) [    4.132771]    ffff82d0405fa7ef ffff8304959ffe28 0000000000000000 ffffc9004002b900
> (XEN) [    4.132774]    0000000000000000 ffff8304959bb000 ffff8304959ffe78 ffff82d0405ff666
> (XEN) [    4.132778]    ffff82d0405713b8 00000000ffffffff 00a0fb0081f456e0 ffff8304959b3010
> (XEN) [    4.132782]    00000000c0000000 00000001ff000000 ffff8304959fff08 0000000000000040
> (XEN) [    4.132785]    000000ec00000001 ffff8304959fff08 ffff8304959a4000 0000000000000021
> (XEN) [    4.132789]    0000000000000000 ffffc9004002b900 ffff8304959ffef8 ffff82d0405711b2
> (XEN) [    4.132792]    0000000000000000 ffff888100456938 ffff8881001470b8 0000000000000018
> (XEN) [    4.132795]    0000000000000000 ffff8304959ffef8 ffff82d0406213f9 ffff8304959a4000
> (XEN) [    4.132799]    0000000000000000 ffff8304959a4000 0000000000000000 0000000000000000
> (XEN) [    4.132802]    ffff8304959fffff 0000000000000000 00007cfb6a6000d7 ffff82d0402012d3
> (XEN) [    4.132806]    0000000000000000 00000000ffffffff ffff8881001470b8 ffff888100b88900
> (XEN) [    4.132809]    ffffc9004002b900 ffff8881001470b8 0000000000000283 ffff888100456938
> (XEN) [    4.132813]    ffff888100065410 0000000000000000 0000000000000021 ffffffff81f7842a
> (XEN) [    4.132816] Xen call trace:
> (XEN) [    4.132819]    [<ffff82d0405779bd>] R pci_mmcfg_read+0x19e/0x1c7
> (XEN) [    4.132822]    [<ffff82d040576877>] F pci_conf_read32+0x55/0x5e
> (XEN) [    4.132826]    [<ffff82d04039b81d>] F pci_check_extcfg+0xb1/0x13b
> (XEN) [    4.132831]    [<ffff82d0405fa90b>] F physdev_check_pci_extcfg+0x11c/0x121
> (XEN) [    4.132833]    [<ffff82d0403983e0>] F drivers/passthrough/pci.c#iterate_all+0xa2/0xe2
> (XEN) [    4.132836]    [<ffff82d04039feba>] F pci_segment_iterate+0x4e/0x74
> (XEN) [    4.132839]    [<ffff82d0405ff666>] F do_physdev_op+0x362a/0x4161
> (XEN) [    4.132842]    [<ffff82d0405711b2>] F pv_hypercall+0x6be/0x838
> (XEN) [    4.132845]    [<ffff82d0402012d3>] F lstar_enter+0x143/0x148
> (XEN) [    4.132847] 
> (XEN) [    4.132848] Pagetable walk from ffff808000300100:
> (XEN) [    4.132851]  L4[0x101] = 0000000000000000 ffffffffffffffff

FWIW, I can reproduce this on my test machine.

> There is an important comment in pci_mmcfg_arch_disable():
> 
>     /*
>      * Don't use destroy_xen_mappings() here, or make sure that at least
>      * the necessary L4 entries get populated (so that they get properly
>      * propagated to guest domains' page tables).
>      */
> 
> Hence it is wrong to bypass
> 
>     mcfg_ioremap(cfg, idx, 0);

Indeed, restoring this call resolves it.


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 19:33:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 19:33:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219049.1527916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vmzfm-0003RX-DG; Mon, 02 Feb 2026 19:33:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219049.1527916; Mon, 02 Feb 2026 19: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 1vmzfm-0003RQ-AF; Mon, 02 Feb 2026 19:33:22 +0000
Received: by outflank-mailman (input) for mailman id 1219049;
 Mon, 02 Feb 2026 19:33: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 1vmzfl-0003RK-C7
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 19:33: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 1vmzfl-00H77H-0g;
 Mon, 02 Feb 2026 19:33:20 +0000
Received: from [140.209.201.102] (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 1vmzfk-00EHaV-1o;
 Mon, 02 Feb 2026 19: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:MIME-Version:Message-ID:Date:
	Subject:Cc:To:From; bh=22z1W8ArJdHHeBbTucgXt39+2PIybp7ytLowPDqnvIU=; b=bNz3ON
	9bySzHKbGNlMiA/4KzLiM+GpaJGQ/YmBNXnQC5TTa0klCqO9jViG4tcGXR2doSXOqKtaQU1oPtsvL
	pVu5iF8EMk/iGN8uysRu/KsPlVMvF8E6wwt4sbUzXCxdz2rhWEwNNLscth5AfruKulof8k0MCKXFm
	00sHobB+Lsg=;
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 v1] automation: align XTF qemu parameters across achitectures
Date: Mon,  2 Feb 2026 11:32:31 -0800
Message-ID: <20260202193230.21412-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

It is handy to have 2 CPUs and more RAM for smoke testing a hypervisor
change via XTF.

Align x86 QEMU configuration with Arm for XTF tests: 2 CPU and 2G of RAM.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
 automation/scripts/include/xtf-x86-64     | 3 ++-
 automation/scripts/include/xtf-x86-64-efi | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts/include/xtf-x86-64
index b1b0cc201efa..186f074bd8eb 100644
--- a/automation/scripts/include/xtf-x86-64
+++ b/automation/scripts/include/xtf-x86-64
@@ -23,7 +23,8 @@ function xtf_arch_setup()
         -nographic \
         -monitor none \
         -serial stdio \
-        -m 512 \
+        -m 2048 \
+        -smp 2 \
         -kernel ${XEN_BINARY} \
         -initrd ${XTF_BINARY} \
         -append \"${XEN_CMDLINE}\" \
diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scripts/include/xtf-x86-64-efi
index 8340c745dbf4..15c6463dcdc5 100644
--- a/automation/scripts/include/xtf-x86-64-efi
+++ b/automation/scripts/include/xtf-x86-64-efi
@@ -49,7 +49,8 @@ EOF
         -nographic \
         -monitor none \
         -serial stdio \
-        -m 512 \
+        -m 2048 \
+        -smp 2 \
         -M q35,kernel-irqchip=split \
         -drive if=pflash,format=raw,readonly=on,file=${FW_PREFIX}OVMF_CODE${suff}.fd \
         -drive if=pflash,format=raw,file=${WORKDIR}/OVMF_VARS${suff}.fd \
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 02 22:33:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 22:33:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219075.1527982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vn2Tr-0000aF-7v; Mon, 02 Feb 2026 22:33:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219075.1527982; Mon, 02 Feb 2026 22:33: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 1vn2Tr-0000a8-4O; Mon, 02 Feb 2026 22:33:15 +0000
Received: by outflank-mailman (input) for mailman id 1219075;
 Mon, 02 Feb 2026 22:33: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=Gzza=AG=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1vn2Tp-0000Y6-TP
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 22:33:14 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22b22552-0087-11f1-9ccf-f158ae23cfc8;
 Mon, 02 Feb 2026 23:33:04 +0100 (CET)
Received: from orviesa008.jf.intel.com ([10.64.159.148])
 by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 02 Feb 2026 14:33:02 -0800
Received: from lkp-server01.sh.intel.com (HELO 765f4a05e27f) ([10.239.97.150])
 by orviesa008.jf.intel.com with ESMTP; 02 Feb 2026 14:32:27 -0800
Received: from kbuild by 765f4a05e27f with local (Exim 4.98.2)
 (envelope-from <lkp@intel.com>) id 1vn2T3-00000000g1M-0wih;
 Mon, 02 Feb 2026 22:32: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: 22b22552-0087-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770071585; x=1801607585;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=K94Yr5tqFVaHsCYCKnsxMVUvUOkbufB1DVdDJ7sbhdg=;
  b=Mo7KSeTz/uazX1Pb2AoxFvMLvR960NeRTCHbsSmT3BVyD9BVWaMKAZuf
   oDT+dLnhSTbJiIeLCuyJyRr/3mYEnH8eN3r4gUHXuWVMRPWXQ8jBpozvu
   HzJCzivs0+LTIS5SArxVPk5jgA5JKdh9o+Dc/EDDMGzykadoN5MMd2/N1
   PXdIRSL98zco18tB0bGgzb3K2wE/AJvIlb2p68qTHcPRznwabPcMQh0qs
   kada6Ec0CllL4k03U9HLZVcAszM2OMZSHnWy5zgxgKkXWMuvkkUsYhyfs
   m+jNXua27PKVRsWOg7Yb3UKmM6vcpLaNbbTCmJ3BgTiTfV3MDweulAjs+
   A==;
X-CSE-ConnectionGUID: 03oaMUEmSP2tkInjVAZE7w==
X-CSE-MsgGUID: dDRTsuLATRCbX+zBq02bXA==
X-IronPort-AV: E=McAfee;i="6800,10657,11690"; a="82348628"
X-IronPort-AV: E=Sophos;i="6.21,269,1763452800"; 
   d="scan'208";a="82348628"
X-CSE-ConnectionGUID: f0cfM4HPRO+EXrWtBO5R7A==
X-CSE-MsgGUID: e2M1VSzVScuy0rx2orDXBg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,269,1763452800"; 
   d="scan'208";a="209657809"
Date: Tue, 3 Feb 2026 06:31:40 +0800
From: kernel test robot <lkp@intel.com>
To: Shashank Balaji <shashank.mahadasyam@sony.com>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev, jailhouse-dev@googlegroups.com,
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
	Rahul Bukte <rahul.bukte@sony.com>,
	Shashank Balaji <shashank.mahadasyam@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Message-ID: <202602030600.jFhsJyEC-lkp@intel.com>
References: <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>

Hi Shashank,

kernel test robot noticed the following build errors:

[auto build test ERROR on 18f7fcd5e69a04df57b563360b88be72471d6b62]

url:    https://github.com/intel-lab-lkp/linux/commits/Shashank-Balaji/x86-x2apic-disable-x2apic-on-resume-if-the-kernel-expects-so/20260202-181147
base:   18f7fcd5e69a04df57b563360b88be72471d6b62
patch link:    https://lore.kernel.org/r/20260202-x2apic-fix-v1-1-71c8f488a88b%40sony.com
patch subject: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel expects so
config: i386-randconfig-001-20260202 (https://download.01.org/0day-ci/archive/20260203/202602030600.jFhsJyEC-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260203/202602030600.jFhsJyEC-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602030600.jFhsJyEC-lkp@intel.com/

All errors (new ones prefixed by >>):

>> arch/x86/kernel/apic/apic.c:2463:3: error: call to undeclared function '__x2apic_disable'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    2463 |                 __x2apic_disable();
         |                 ^
   arch/x86/kernel/apic/apic.c:2463:3: note: did you mean '__x2apic_enable'?
   arch/x86/kernel/apic/apic.c:1896:20: note: '__x2apic_enable' declared here
    1896 | static inline void __x2apic_enable(void) { }
         |                    ^
   1 error generated.


vim +/__x2apic_disable +2463 arch/x86/kernel/apic/apic.c

  2435	
  2436	static void lapic_resume(void *data)
  2437	{
  2438		unsigned int l, h;
  2439		unsigned long flags;
  2440		int maxlvt;
  2441	
  2442		if (!apic_pm_state.active)
  2443			return;
  2444	
  2445		local_irq_save(flags);
  2446	
  2447		/*
  2448		 * IO-APIC and PIC have their own resume routines.
  2449		 * We just mask them here to make sure the interrupt
  2450		 * subsystem is completely quiet while we enable x2apic
  2451		 * and interrupt-remapping.
  2452		 */
  2453		mask_ioapic_entries();
  2454		legacy_pic->mask_all();
  2455	
  2456		if (x2apic_mode) {
  2457			__x2apic_enable();
  2458		} else {
  2459			/*
  2460			 * x2apic may have been re-enabled by the
  2461			 * firmware on resuming from s2ram
  2462			 */
> 2463			__x2apic_disable();
  2464	
  2465			/*
  2466			 * Make sure the APICBASE points to the right address
  2467			 *
  2468			 * FIXME! This will be wrong if we ever support suspend on
  2469			 * SMP! We'll need to do this as part of the CPU restore!
  2470			 */
  2471			if (boot_cpu_data.x86 >= 6) {
  2472				rdmsr(MSR_IA32_APICBASE, l, h);
  2473				l &= ~MSR_IA32_APICBASE_BASE;
  2474				l |= MSR_IA32_APICBASE_ENABLE | mp_lapic_addr;
  2475				wrmsr(MSR_IA32_APICBASE, l, h);
  2476			}
  2477		}
  2478	
  2479		maxlvt = lapic_get_maxlvt();
  2480		apic_write(APIC_LVTERR, ERROR_APIC_VECTOR | APIC_LVT_MASKED);
  2481		apic_write(APIC_ID, apic_pm_state.apic_id);
  2482		apic_write(APIC_DFR, apic_pm_state.apic_dfr);
  2483		apic_write(APIC_LDR, apic_pm_state.apic_ldr);
  2484		apic_write(APIC_TASKPRI, apic_pm_state.apic_taskpri);
  2485		apic_write(APIC_SPIV, apic_pm_state.apic_spiv);
  2486		apic_write(APIC_LVT0, apic_pm_state.apic_lvt0);
  2487		apic_write(APIC_LVT1, apic_pm_state.apic_lvt1);
  2488	#ifdef CONFIG_X86_THERMAL_VECTOR
  2489		if (maxlvt >= 5)
  2490			apic_write(APIC_LVTTHMR, apic_pm_state.apic_thmr);
  2491	#endif
  2492	#ifdef CONFIG_X86_MCE_INTEL
  2493		if (maxlvt >= 6)
  2494			apic_write(APIC_LVTCMCI, apic_pm_state.apic_cmci);
  2495	#endif
  2496		if (maxlvt >= 4)
  2497			apic_write(APIC_LVTPC, apic_pm_state.apic_lvtpc);
  2498		apic_write(APIC_LVTT, apic_pm_state.apic_lvtt);
  2499		apic_write(APIC_TDCR, apic_pm_state.apic_tdcr);
  2500		apic_write(APIC_TMICT, apic_pm_state.apic_tmict);
  2501		apic_write(APIC_ESR, 0);
  2502		apic_read(APIC_ESR);
  2503		apic_write(APIC_LVTERR, apic_pm_state.apic_lvterr);
  2504		apic_write(APIC_ESR, 0);
  2505		apic_read(APIC_ESR);
  2506	
  2507		irq_remapping_reenable(x2apic_mode);
  2508	
  2509		local_irq_restore(flags);
  2510	}
  2511	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


From xen-devel-bounces@lists.xenproject.org Mon Feb 02 23:40:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 02 Feb 2026 23:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219092.1528032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vn3Ws-0001LX-5a; Mon, 02 Feb 2026 23:40:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219092.1528032; Mon, 02 Feb 2026 23: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 1vn3Ws-0001LQ-2g; Mon, 02 Feb 2026 23:40:26 +0000
Received: by outflank-mailman (input) for mailman id 1219092;
 Mon, 02 Feb 2026 23:40: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=QtZ7=AG=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vn3Wq-0001LK-QG
 for xen-devel@lists.xenproject.org; Mon, 02 Feb 2026 23:40:24 +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 8919cd28-0090-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 00:40:21 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 5A6C840DC8;
 Mon,  2 Feb 2026 23:40:19 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08CAEC116C6;
 Mon,  2 Feb 2026 23:40: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: 8919cd28-0090-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770075619;
	bh=7o7SfeYG+gMPMtdSkYXK8C7sCYH2mIvH1bLRi5urTCE=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=rQDlwiDSc1Qkae7/U8YIz8I7YsB2Mr+PMrvTcAaHKl+YItGh5xdgzqTiPKR+uXx2o
	 9AhZ2jpcPyGFVMBBG2QmZhn2Ip7cU5hPjwulhzZTJMfuwyZ4pFzx+vEZJ48TnUA/p6
	 Fj3H8c550xx5wohlTLcKt3eUYLCQetaWThRGgX+7GUD1Fgu3Hz2sgfIZQlJJP43YH3
	 BqQvetezLEhbutxWbFTlaHHrbIN3plfkVvWCKatxaiybM3i4U3qTB4DPKVDowx9Wlm
	 /yb/OgGQXf/SIXOxTVHIg7PGEkIEYIZpHOiMUHI4J2G1I2jCwJIdzl3vP9QWHHyDec
	 L/X032BruFYQA==
Date: Mon, 2 Feb 2026 15:40:16 -0800 (PST)
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 v1] automation: align XTF qemu parameters across
 achitectures
In-Reply-To: <20260202193230.21412-2-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2602021540100.2599007@ubuntu-linux-20-04-desktop>
References: <20260202193230.21412-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

On Mon, 1 Feb 2026, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> It is handy to have 2 CPUs and more RAM for smoke testing a hypervisor
> change via XTF.
> 
> Align x86 QEMU configuration with Arm for XTF tests: 2 CPU and 2G of RAM.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Please provide a link to the successful pipeline. With that:

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

> ---
>  automation/scripts/include/xtf-x86-64     | 3 ++-
>  automation/scripts/include/xtf-x86-64-efi | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/automation/scripts/include/xtf-x86-64 b/automation/scripts/include/xtf-x86-64
> index b1b0cc201efa..186f074bd8eb 100644
> --- a/automation/scripts/include/xtf-x86-64
> +++ b/automation/scripts/include/xtf-x86-64
> @@ -23,7 +23,8 @@ function xtf_arch_setup()
>          -nographic \
>          -monitor none \
>          -serial stdio \
> -        -m 512 \
> +        -m 2048 \
> +        -smp 2 \
>          -kernel ${XEN_BINARY} \
>          -initrd ${XTF_BINARY} \
>          -append \"${XEN_CMDLINE}\" \
> diff --git a/automation/scripts/include/xtf-x86-64-efi b/automation/scripts/include/xtf-x86-64-efi
> index 8340c745dbf4..15c6463dcdc5 100644
> --- a/automation/scripts/include/xtf-x86-64-efi
> +++ b/automation/scripts/include/xtf-x86-64-efi
> @@ -49,7 +49,8 @@ EOF
>          -nographic \
>          -monitor none \
>          -serial stdio \
> -        -m 512 \
> +        -m 2048 \
> +        -smp 2 \
>          -M q35,kernel-irqchip=split \
>          -drive if=pflash,format=raw,readonly=on,file=${FW_PREFIX}OVMF_CODE${suff}.fd \
>          -drive if=pflash,format=raw,file=${WORKDIR}/OVMF_VARS${suff}.fd \
> -- 
> 2.52.0
> 


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 00:11:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 00:11:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219100.1528041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vn410-00062y-9g; Tue, 03 Feb 2026 00:11:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219100.1528041; Tue, 03 Feb 2026 00:11:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vn410-00062r-70; Tue, 03 Feb 2026 00:11:34 +0000
Received: by outflank-mailman (input) for mailman id 1219100;
 Tue, 03 Feb 2026 00: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=0aDa=AH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vn40y-00062l-Je
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 00:11:32 +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 e2911345-0094-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 01:11:29 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 63C4B60010;
 Tue,  3 Feb 2026 00:11:27 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 98EB9C116C6;
 Tue,  3 Feb 2026 00:11:25 +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: e2911345-0094-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770077487;
	bh=IWHHgytLEWt062oltx3FQsUSxw3KaDNf5I7nUPrphEs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=MVXC/8QAySIjUMj4+QNoKHfhx9VIfSPMD3LmeIJmqWgKoWn5hKzl/gbhaqcLDGTw/
	 bmVmgc1NrDPyqh3LcIX/1MedUvpl4c0yqM+ll9MsrG32z+ekbE8uLyJwOmpI6IeT3x
	 0/Cjfq0tifb+meegAiqrmHJtQ5uZMV8ZzHtG6jigtKBT0PyDXnoFN6GjVW6YnXe/Xh
	 fHLPS4QzYzFBsYPSSOCtFbvfXY2XC9CLEiDUryanRxjJkdjxM0DM6RhLXT+foESJlc
	 /mnf7MXaxHftXqFaNtHUmN8RNnse07ftkBODLYExeLZvIXyQ1AZuvb1kEHWLIkpxDm
	 mzQIEOC3Aihbg==
Date: Mon, 2 Feb 2026 16:11:24 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    xen-devel@lists.xenproject.org, grygorii_strashko@epam.com, 
    anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org, 
    roger.pau@citrix.com, victorm.lira@amd.com, andrew.cooper3@citrix.com, 
    jbeulich@suse.com, sstabellini@kernel.org
Subject: Re: [PATCH v8 2/2] xen: enable dom0less guests to use console_io
 hypercalls
In-Reply-To: <bcccb80b-a7d5-4600-8dc5-c4dd8f99ab71@amd.com>
Message-ID: <alpine.DEB.2.22.394.2602021551180.2599007@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2601291404410.2238666@ubuntu-linux-20-04-desktop> <20260129220858.2371938-2-stefano.stabellini@amd.com> <bcccb80b-a7d5-4600-8dc5-c4dd8f99ab71@amd.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Thu, 29 Jan 2026, Jason Andryuk wrote:
> On 2026-01-29 17:08, Stefano Stabellini wrote:
> > Enable dom0less guests on ARM to use console_io hypercalls:
> > - set input_allow = true for dom0less domains
> > - update the in-code comment in console.c
> > - prioritize the VUART check to retain the same behavior as today
> > 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > ---
> > Changes in v8:
> > - move in-code comment update to previous patch
> > - add in-code comment about is_focus_domain() check
> > ---
> >   xen/common/device-tree/dom0less-build.c |  2 ++
> >   xen/drivers/char/console.c              | 16 ++++++++++------
> >   2 files changed, 12 insertions(+), 6 deletions(-)
> > 
> > diff --git a/xen/common/device-tree/dom0less-build.c
> > b/xen/common/device-tree/dom0less-build.c
> > index 840d14419d..cb7026fa7e 100644
> > --- a/xen/common/device-tree/dom0less-build.c
> > +++ b/xen/common/device-tree/dom0less-build.c
> > @@ -829,6 +829,8 @@ static int __init construct_domU(struct kernel_info
> > *kinfo,
> >         rangeset_destroy(kinfo->xen_reg_assigned);
> >   +    d->console->input_allowed = true;
> > +
> >       return rc;
> >   }
> >   diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index ed8f1ad8f2..418d194cef 100644
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -613,11 +613,20 @@ static void __serial_rx(char c)
> >       if ( console_rx == 0 )
> >           return handle_keypress(c, false);
> >   +    /* Includes an is_focus_domain() check. */
> >       d = console_get_domain();
> >       if ( !d )
> >           return;
> >   -    if ( is_hardware_domain(d) )
> > +#ifdef CONFIG_SBSA_VUART_CONSOLE
> > +    /* Prioritize vpl011 if enabled for this domain */
> > +    if ( d->arch.vpl011.base_addr )
> > +    {
> > +        /* Deliver input to the emulated UART. */
> > +        rc = vpl011_rx_char_xen(d, c);
> > +    }
> > +    else
> > +#endif
> >       {
> >           unsigned long flags;
> >   @@ -636,11 +645,6 @@ static void __serial_rx(char c)
> >            */
> >           send_global_virq(VIRQ_CONSOLE);
> 
> I think we need an additional patch, or included in one of these two, to
> change VIRQ_CONSOLE to a VIRQ_DOMAIN.  Otherwise only hwdom could bind to the
> virq, I think?  It would be the two changes below:

Thank you Jason. I didn't notice this problem because Linux is able to
silently fallback to polling which works surprisingly well. I didn't
notice the difference.

I confirm that the error you highlighted is real and that with the patch
below the error goes away.

My preference is to submit it as a separate patch, it can still be part
of this series. Especially as the other two patches have already been
reviewed and tested independently a few times. But I am happy either
way.

Jan, what do you think?

 
> diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
> index 67700b050a..dab123f20d 100644
> --- a/xen/common/event_channel.c
> +++ b/xen/common/event_channel.c
> @@ -138,6 +138,7 @@ static enum virq_type get_virq_type(unsigned int virq)
>          return VIRQ_VCPU;
> 
>      case VIRQ_ARGO:
> +    case VIRQ_CONSOLE:
>          return VIRQ_DOMAIN;
> 
>      case VIRQ_ARCH_0 ... VIRQ_ARCH_7:
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 903ad912cc..138eeaa14d 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -611,7 +611,7 @@ static void __serial_rx(char c)
>           * Always notify the hardware domain: prevents receive path from
>           * getting stuck.
>           */
> -        send_global_virq(VIRQ_CONSOLE);
> +        send_guest_domain_virq(d, VIRQ_CONSOLE);
>      }
>  #ifdef CONFIG_SBSA_VUART_CONSOLE
>      else
> 


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 00:25:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 00:25:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219109.1528052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vn4EB-0007na-FN; Tue, 03 Feb 2026 00:25:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219109.1528052; Tue, 03 Feb 2026 00:25: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 1vn4EB-0007nT-B1; Tue, 03 Feb 2026 00:25:11 +0000
Received: by outflank-mailman (input) for mailman id 1219109;
 Tue, 03 Feb 2026 00:25: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=bzM9=AH=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1vn4EA-0007nN-OY
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 00:25:10 +0000
Received: from jpms-ob01.noc.sony.co.jp (jpms-ob01.noc.sony.co.jp
 [2001:cf8:ace:41::4]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c848afe5-0096-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 01:25:06 +0100 (CET)
Received: from unknown (HELO jpmta-ob1.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::6])
 by jpms-ob01.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 03 Feb 2026 09:25:02 +0900
Received: from unknown (HELO JPC00244420)
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob1.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 03 Feb 2026 09:25:02 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c848afe5-0096-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770078307; x=1801614307;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=+mESz147mY99AmYLlTyE/1U+z38Cj71ObLjn1oYbbso=;
  b=lIZk9Nru1lYOyTYyZwlWz0K0m3na9f5DoSvqAWGz6qd+RByXd3XPx3QG
   7xJUg+BwJmNVO3flmDlLgzhVVayK0UeUqU17i3h6cP2ANauBhBe7+vCfy
   ghUhmjiYxIgXqcanDUJ3t3srGMyWbbK4QmQajdTVbSxgmkbKGxPm/JMkO
   Zg4fozLDhe1+FulAXVhQgNLM3/RFd9Lnl4G7Zu6sBWzEz8EeCB3KEEGBf
   b7LaCAn+Rr+t1CG+QBdfvSuSl2ome02HkrxMunrCIQ4WUaUJVJap6gFi9
   m8brJ8PFL6aOp3BIYw1YZnReUZ3Iisits6A1nGLAm8Rz1nxf1RXG0wdcI
   w==;
X-IronPort-AV: E=Sophos;i="6.21,269,1763391600"; 
   d="scan'208";a="607577797"
Date: Tue, 3 Feb 2026 09:24:56 +0900
From: Shashank Balaji <shashank.mahadasyam@sony.com>
To: kernel test robot <lkp@intel.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, llvm@lists.linux.dev,
	oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Message-ID: <aYFAWPRTx7RqZn32@JPC00244420>
References: <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
 <202602030600.jFhsJyEC-lkp@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <202602030600.jFhsJyEC-lkp@intel.com>

On Tue, Feb 03, 2026 at 06:31:40AM +0800, kernel test robot wrote:
> Hi Shashank,
> 
> kernel test robot noticed the following build errors:
> 
> [auto build test ERROR on 18f7fcd5e69a04df57b563360b88be72471d6b62]
> 
> url:    https://github.com/intel-lab-lkp/linux/commits/Shashank-Balaji/x86-x2apic-disable-x2apic-on-resume-if-the-kernel-expects-so/20260202-181147
> base:   18f7fcd5e69a04df57b563360b88be72471d6b62
> patch link:    https://lore.kernel.org/r/20260202-x2apic-fix-v1-1-71c8f488a88b%40sony.com
> patch subject: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel expects so
> config: i386-randconfig-001-20260202 (https://download.01.org/0day-ci/archive/20260203/202602030600.jFhsJyEC-lkp@intel.com/config)
> compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260203/202602030600.jFhsJyEC-lkp@intel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202602030600.jFhsJyEC-lkp@intel.com/
> 
> All errors (new ones prefixed by >>):
> 
> >> arch/x86/kernel/apic/apic.c:2463:3: error: call to undeclared function '__x2apic_disable'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
>     2463 |                 __x2apic_disable();
>          |                 ^
>    arch/x86/kernel/apic/apic.c:2463:3: note: did you mean '__x2apic_enable'?
>    arch/x86/kernel/apic/apic.c:1896:20: note: '__x2apic_enable' declared here
>     1896 | static inline void __x2apic_enable(void) { }
>          |                    ^
>    1 error generated.

This happens when CONFIG_X86_X2APIC is disabled. This patch fixes it,
which I'll include in v2:

diff --git i/arch/x86/kernel/apic/apic.c w/arch/x86/kernel/apic/apic.c
index 8820b631f8a2..06cce23b89c1 100644
--- i/arch/x86/kernel/apic/apic.c
+++ w/arch/x86/kernel/apic/apic.c
@@ -1894,6 +1894,7 @@ void __init check_x2apic(void)

 static inline void try_to_enable_x2apic(int remap_mode) { }
 static inline void __x2apic_enable(void) { }
+static inline void __x2apic_disable(void) {}
 #endif /* !CONFIG_X86_X2APIC */

 void __init enable_IR_x2apic(void)


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 07:24:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 07:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219122.1528062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnAlY-0007bK-Ro; Tue, 03 Feb 2026 07:24:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219122.1528062; Tue, 03 Feb 2026 07: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 1vnAlY-0007bD-NN; Tue, 03 Feb 2026 07:24:04 +0000
Received: by outflank-mailman (input) for mailman id 1219122;
 Tue, 03 Feb 2026 07: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnAlX-0007ao-Dx
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 07:24:03 +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 47ab7cbd-00d1-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 08:23:47 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-4359228b7c6so3671741f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 23:23:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e10edfe7sm48789277f8f.14.2026.02.02.23.23.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 23:23:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47ab7cbd-00d1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770103427; x=1770708227; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ncfhS7h0kV6M2NPapysXCgDFVOGyvkpj2R9B9G37LTc=;
        b=L5m9NoCdzya6oq81eyA7X6nc/1QuC+PE1krKWcRxtjUPgE8cfqfaeaYo4syOpRXDs4
         tm+BHNEGXZR0zTF3oTxz5M9IvsdFWWsFYMoVyX0Lrft9GDprZ04n36j66I9nOfi8kjtv
         L2VeQeQwKFBQ0tV1o4FcE2ny8NCx56QK7Ctmln+xy4cNRoy45WYULWEFXOPk+Ty8p9tB
         XIfXfL2jnLD+3OaEep67Q21kL6bMSq2GnVf6gNaWN82TM9S99jcPng3DqpjcG2zhhdgv
         PHrfYp5E6bSP8WtYyJXY6JPFQa+iTaTi2BtyVtDNSHMx34RmkhwjX0FWSaXgnuk81SlW
         1xpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770103427; x=1770708227;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ncfhS7h0kV6M2NPapysXCgDFVOGyvkpj2R9B9G37LTc=;
        b=wpc0m9FR522IqgGX2k/yw7N5At/Q8eXg9yU/kQ2R/EmCNB3alzVyElTU2prlzFECHz
         qMpkw69uxLprnBO4RujQXJXyBGZKQVMiQNnqc3x6a2iX7//7EZTksiwT13niXQ3sO/hC
         EailIlw1mDBnuFFtUlOQh8zxG787GToEojp6EOlfERi5pNormoI59TbKDhQyXdQMuTUj
         H82AYwkFWirfnwoCO1P3kgrnDdH8GKAx83GVoBwuCvI+vFs5w7SiFEvR/lqBaoDsgS/Y
         jxhZIX6crYOVgVpyslStYse2TgEoEJtpHPCQY6XaDYRQC1tqk6qObIISNw8XuZr8kj3j
         oGog==
X-Forwarded-Encrypted: i=1; AJvYcCUCWJMBSc5Q5jfjNUJxZYosQ5M74X/X/AVIuK3AwebcNxeB8eGwQ4kzG/GNvHhkpeaBc49eTP4b54Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwbKdW2MpCsCvwyS2gdOWTr22bSEYAUMcTjhfV77vywkYQkFNTq
	HajkQF/aZa9Gn5vQWmuCIJLz1S6M8czhSblkbu8cpblxAre0Zgfff8HipWzVFwzBug==
X-Gm-Gg: AZuq6aKlXQcu4mX5cH7LJUgp+xE9U9+rnxy31Gyx5LfH3ocGzMwgoE99Rv/b1os7K5B
	XQNHbUgymJCKouMT/jeiLq3TkUKwm0k+YBG9HcEFmNdewPbw31dhyN43HWFqTulKbCYwhgxo3JS
	+GF1c2iGEcyeCmn2lcnp4oOJkYjkgNanYw3vxQOqabPG+7i959KkCSWXxPS7+qayo1AFvIv+gnX
	1g3pzlS1h+07Gr7nKpWGcQXMbpFUo9VPz73wvEmS5gm9iQeYMeKVexK5U9GX5oWGjPzI0M6nXEB
	iLBM96tWW3gn9iN/p6Y9j4twheAAYf8lC0fL7ehPwOwA6G5A4ZWCZ+GAsAM3n+2QcM/EVzCzSrc
	EoR8AN1zOtPrlqwuSzWYcdTGU8JYj4bzxYEBl4IZtp5ygJ1nT7UOrechH9+/YUmANgLWsjRmAWm
	MnO5wlZf8etPt6saO3WIvvLpsrWa5plxpHFWbDQPrMrYvJMBC9C8smAQk6UXzNjkJmIP79w0mWD
	fc=
X-Received: by 2002:a05:6000:4025:b0:435:9d3f:92d7 with SMTP id ffacd0b85a97d-435f3a7a4b8mr17515958f8f.2.1770103427147;
        Mon, 02 Feb 2026 23:23:47 -0800 (PST)
Message-ID: <27b67abe-78f4-4867-99c6-e8beed29013e@suse.com>
Date: Tue, 3 Feb 2026 08:23:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 2/2] xen: enable dom0less guests to use console_io
 hypercalls
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org, grygorii_strashko@epam.com,
 anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org,
 roger.pau@citrix.com, victorm.lira@amd.com, andrew.cooper3@citrix.com,
 Jason Andryuk <jason.andryuk@amd.com>
References: <alpine.DEB.2.22.394.2601291404410.2238666@ubuntu-linux-20-04-desktop>
 <20260129220858.2371938-2-stefano.stabellini@amd.com>
 <bcccb80b-a7d5-4600-8dc5-c4dd8f99ab71@amd.com>
 <alpine.DEB.2.22.394.2602021551180.2599007@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.2602021551180.2599007@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.02.2026 01:11, Stefano Stabellini wrote:
> On Thu, 29 Jan 2026, Jason Andryuk wrote:
>> On 2026-01-29 17:08, Stefano Stabellini wrote:
>>> --- a/xen/drivers/char/console.c
>>> +++ b/xen/drivers/char/console.c
>>> @@ -613,11 +613,20 @@ static void __serial_rx(char c)
>>>       if ( console_rx == 0 )
>>>           return handle_keypress(c, false);
>>>   +    /* Includes an is_focus_domain() check. */
>>>       d = console_get_domain();
>>>       if ( !d )
>>>           return;
>>>   -    if ( is_hardware_domain(d) )
>>> +#ifdef CONFIG_SBSA_VUART_CONSOLE
>>> +    /* Prioritize vpl011 if enabled for this domain */
>>> +    if ( d->arch.vpl011.base_addr )
>>> +    {
>>> +        /* Deliver input to the emulated UART. */
>>> +        rc = vpl011_rx_char_xen(d, c);
>>> +    }
>>> +    else
>>> +#endif
>>>       {
>>>           unsigned long flags;
>>>   @@ -636,11 +645,6 @@ static void __serial_rx(char c)
>>>            */
>>>           send_global_virq(VIRQ_CONSOLE);
>>
>> I think we need an additional patch, or included in one of these two, to
>> change VIRQ_CONSOLE to a VIRQ_DOMAIN.  Otherwise only hwdom could bind to the
>> virq, I think?  It would be the two changes below:
> 
> Thank you Jason. I didn't notice this problem because Linux is able to
> silently fallback to polling which works surprisingly well. I didn't
> notice the difference.
> 
> I confirm that the error you highlighted is real and that with the patch
> below the error goes away.
> 
> My preference is to submit it as a separate patch, it can still be part
> of this series. Especially as the other two patches have already been
> reviewed and tested independently a few times. But I am happy either
> way.
> 
> Jan, what do you think?

Imo this wants to be a separate change, yes. Likely a prereq one.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 07:42:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 07:42:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219133.1528072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnB2s-00025j-6i; Tue, 03 Feb 2026 07:41:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219133.1528072; Tue, 03 Feb 2026 07:41: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 1vnB2s-00025c-3c; Tue, 03 Feb 2026 07:41:58 +0000
Received: by outflank-mailman (input) for mailman id 1219133;
 Tue, 03 Feb 2026 07:41: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnB2q-00025W-Bc
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 07:41:56 +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 cef27a0f-00d3-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 08:41:53 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso53127745e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 02 Feb 2026 23:41:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e10ee04csm49979262f8f.12.2026.02.02.23.41.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 02 Feb 2026 23:41:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cef27a0f-00d3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770104513; x=1770709313; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TuBcQ34POpcZd2RjjxghArfkXhOfm5WbXGzkj2QKYEg=;
        b=amdDeeai+4xZBJfzlTQXL4LSdQLEuAnjIj5qs9cMnlG/ip20QIODx+gLmWzcvCewEr
         9lKpUo0yvHwcZa2uH2kGHjQupr8OFw7jkZL40f7DuO6/+PcuWZVn9JiJaWRfAxTmy6mP
         yc9laF3B1s/z+H7F3mBJA1ZT81JefE29LlCNuldF19z7XoNs2xQ4bI+7y9poODVSFFzX
         5Xo6qtr+hch8qlw10rYHVr2cCAoaQ4MxjI255YM4FokOfH3dqXTiKP+9u5iOJ4BpS1jh
         t5sKCv3RRGWYha88GSMOydNLVklMOsZmE+x+3EMD6fkoZM+UJuSQqKo/+PLaDliTnCW6
         P7zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770104513; x=1770709313;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TuBcQ34POpcZd2RjjxghArfkXhOfm5WbXGzkj2QKYEg=;
        b=Q/oyYUlVfEgFyN3NPBZPKfjLYClv3aE5zjU7CrVsXEl1YBO3d1Y7iR4x+AK1BQY/ke
         4t+eF/qynnM4wGeia0Oq0MREV6LGxSb+SLPM4nyEDTSvY2jm7+CyukXx+9QgJ7z10cze
         0HE7AJbL8JFiEUpjM4xot65cNnshVIMCKcis0SGogXDRjGd8EWoThCLZo2cKPrTgIeRp
         Ra46II8TL41mgqCOvj/PpKce3cy85KBvNaD4sUyC0jhLWM/UF+z+XoP6b139lwBASK11
         zE/3vHzMQk7iN7c6mmum16PlZOApLxiOpZYWO5BXaP2zxe3XwFqZTJ71lVYMNvLTuVkX
         JEKA==
X-Gm-Message-State: AOJu0YzGVT9En6g5Gm/i15yTK/ZZuDfVLJWlZSH3Gk6AdX4RvEKFXgsK
	kBzfjquVluSCQsSbPMRxSHal5ULwvD43vgPepog0zz36IY63A9R/38p8fOUzrEKHQQ==
X-Gm-Gg: AZuq6aJxE+vyOBRUmvbNsX4yBybc234sVrKxeTcZzeKB/kIZ43086b/xExXItnIYj81
	J0R2tpN8md6AO91j31djIH6Dfrk0jSdLeusNTxp1Gn8LWi6jXRgFUfW7+fM+fkc4vnLObmZKz5s
	m5LeycmR7vtyVO2x7Ew56QSdZ7/Su4aKZeZMunGCsUNHPBczP/LeUWdGSsrfHG5JXMy9xATXpQV
	OyQoxJc3fn40EkymdH7lexAQTYP1J1xXwpaIlADprh3A45S2pR4Pji7ZBI8gT7PCDBXq42JCKfn
	sKC5rUpyLmoXt+j1NX+QT/dJmMp1J1nK4g7a1T0GS12iuyRf7tUELT9ejVczHOKMm0/XUp+018l
	W+M2GwOCIOX2qM/t2ACyyfEldGagWr9MkylJ3vBz6YEz4DqCUFicteNK5ti9fXmwInqn16Yz1x4
	yyGzGndxVBcEk32bfF/POo4NlQucEYYneUg2jfB8XKb091/K+fr6uyinVrtgQfx/+vwv5HgcBkU
	40=
X-Received: by 2002:a05:600c:530f:b0:47e:e20e:bbb2 with SMTP id 5b1f17b1804b1-482db45dc5emr205916275e9.7.1770104513052;
        Mon, 02 Feb 2026 23:41:53 -0800 (PST)
Message-ID: <6bf9c569-9843-41fd-820e-6377255b13e5@suse.com>
Date: Tue, 3 Feb 2026 08:41:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/mm: split struct sh_dirty_vram and make results
 private
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>, Penny Zheng <Penny.Zheng@amd.com>
References: <3dce4f28-558b-495c-ac45-0f699da82458@suse.com>
 <aYDgRamZZRNsYPXF@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: <aYDgRamZZRNsYPXF@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.02.2026 18:35, Roger Pau Monné wrote:
> On Wed, Nov 12, 2025 at 04:47:31PM +0100, Jan Beulich wrote:
>> The types are local to the shadow and HAP subsystems respectively, and
>> HAP has no need for the shadow-specific fields (i.e. it can get away with
>> smaller allocations). In struct hvm_domain it therefore suffices to have
>> a union of two (generally opaque) pointers.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> --- a/xen/arch/x86/include/asm/hvm/domain.h
>> +++ b/xen/arch/x86/include/asm/hvm/domain.h
>> @@ -95,7 +95,10 @@ struct hvm_domain {
>>      struct list_head       pinned_cacheattr_ranges;
>>  
>>      /* VRAM dirty support.  Protect with the domain paging lock. */
>> -    struct sh_dirty_vram *dirty_vram;
>> +    union {
>> +        struct sh_dirty_vram *sh;
>> +        struct hap_dirty_vram *hap;
>> +    }                      dirty_vram;
> 
> Other in-place declared structures don't use this aligning.  I have to
> admit it looks somewhat odd for structs like this one.

As I don't mind much, I've changed it. It's odd either way - either, as you say,
it looks odd, or it's not in line with the other field decls which all align
their names (except for the in-place struct decls).

>> --- a/xen/arch/x86/mm/shadow/hvm.c
>> +++ b/xen/arch/x86/mm/shadow/hvm.c
>> @@ -1033,7 +1033,7 @@ int shadow_track_dirty_vram(struct domai
>>      p2m_lock(p2m_get_hostp2m(d));
>>      paging_lock(d);
>>  
>> -    dirty_vram = d->arch.hvm.dirty_vram;
>> +    dirty_vram = d->arch.hvm.dirty_vram.sh;
>>  
>>      if ( dirty_vram && (!nr_frames ||
>>               ( begin_pfn != dirty_vram->begin_pfn
>> @@ -1043,8 +1043,8 @@ int shadow_track_dirty_vram(struct domai
>>          gdprintk(XENLOG_INFO, "stopping tracking VRAM %lx - %lx\n", dirty_vram->begin_pfn, dirty_vram->end_pfn);
>>          xfree(dirty_vram->sl1ma);
>>          xfree(dirty_vram->dirty_bitmap);
>> -        xfree(dirty_vram);
>> -        dirty_vram = d->arch.hvm.dirty_vram = NULL;
>> +        XFREE(dirty_vram);
>> +        d->arch.hvm.dirty_vram.sh = NULL;
> 
> It would be better if this was done the other way around, first set
> the reference to NULL, then free the memory?
> 
>         d->arch.hvm.dirty_vram.sh = NULL;
>         XFREE(dirty_vram);

Indeed, changed.

>> @@ -1075,7 +1075,7 @@ int shadow_track_dirty_vram(struct domai
>>              goto out;
>>          dirty_vram->begin_pfn = begin_pfn;
>>          dirty_vram->end_pfn = end_pfn;
>> -        d->arch.hvm.dirty_vram = dirty_vram;
>> +        d->arch.hvm.dirty_vram.sh = dirty_vram;
>>  
>>          if ( (dirty_vram->sl1ma = xmalloc_array(paddr_t, nr_frames)) == NULL )
>>              goto out_dirty_vram;
>> @@ -1202,8 +1202,8 @@ int shadow_track_dirty_vram(struct domai
>>   out_sl1ma:
>>      xfree(dirty_vram->sl1ma);
>>   out_dirty_vram:
>> -    xfree(dirty_vram);
>> -    dirty_vram = d->arch.hvm.dirty_vram = NULL;
>> +    XFREE(dirty_vram);
>> +    d->arch.hvm.dirty_vram.sh = NULL;
> 
> Similar here, I would change the order.

Changed as well. I can't tell why I didn't do it this way right away.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 08:52:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 08:52:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219149.1528083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnC90-0003JI-6F; Tue, 03 Feb 2026 08:52:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219149.1528083; Tue, 03 Feb 2026 08: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 1vnC90-0003JB-2a; Tue, 03 Feb 2026 08:52:22 +0000
Received: by outflank-mailman (input) for mailman id 1219149;
 Tue, 03 Feb 2026 08: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=qAHx=AH=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnC8z-0003J5-1U
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 08:52:21 +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 a57cc44f-00dd-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 09:52:19 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso4053795e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 00:52:19 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830512e0edsm51215485e9.7.2026.02.03.00.52.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 00:52:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a57cc44f-00dd-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770108738; x=1770713538; 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=QAGfZkbffxOOgsUsGUNz4+gz5ensEn9F2e4yPKGBSQg=;
        b=DLu2xRmBjNH7VWActuPgN17Gz+hI28lfAdTCEA7f5MZPF+WD984N06Xzv6f19itloy
         w6RrxG28dAVxzR2qNNpphzP5izcOnyrUJX/NxxggzyGTBIm6z9iNV/THlndZQn2drpkh
         lrB4imYfi+lULqUmuhbEiB6aFriSdFZaQAUyPjPmsf8iCPSKZW3u5Kwg+nLui2FGmqjn
         EXyH78AgBFScL+c+aNqJt/aMpQ9XzgwRfsmqiuCbHEqHRHmAabNz1xggDHlgD35Sx8HE
         iGXt8UR/wAKVSPSk+Y7ooxip/j+WOdjdcfVD27Nw7ISX6B2p4xmODpDpDoGY3lzM6tU/
         Ecvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770108738; x=1770713538;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QAGfZkbffxOOgsUsGUNz4+gz5ensEn9F2e4yPKGBSQg=;
        b=qEQP8qB66u2/6sMgb8IjUIhiCscG1hJhtKsp4SsEpWKjVI/cq0fzqHE8lPYKUKIgTy
         3ZfriAIHCP4pxvbTr7au2IZ9IvisjcS7rb3P8otUdwDKjvEJXhl8XSn7N2UiZ1G1yN0J
         ddrtEqbJ00SQrVmfJXNC2xZr0REANv2yJKKTqBtA6tgSSksd+B4A9Bw+3Jkm9szXbWvs
         NaP6MqW2EYyOVaLKflpqPsICetdk9qvr2RXiD3TgqXH9E+8wTjAqgXg/Q+cbXTH/v+nq
         iH1lWAwpeCPZKIsrFscNvVR7mqAkJ/9fhZjeoPLZzkr4snNMjWbiYCj6KR6djCUdAgwE
         PQsQ==
X-Forwarded-Encrypted: i=1; AJvYcCUWVbkHj7wWzj8EBcC0i0evXW5VmG1iOf8sTPvGIrlq1Wb3GODjW+1SFLkkqc+IIRfMZxdS7aF/8fo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxM7uIuTGMCeL2s7ABBSYNoo/VZiRoyJnsbo6lQZV2yHBrC4Fvx
	mtauChkl8S6cP26IneLXgwfGsg5a15FewcuDOBlKybP0EXHIb2chwBX2
X-Gm-Gg: AZuq6aI8vpWSxthYlmcgKSQtcGwF3SyJQfiVVOR2XW1+ox4D7fLxalaI46BSVuREbSn
	Nx9/JVXGBYvukc5uOoDBT8k1kG381BezmyZpNJGQhNQKPwUBqcEdccvhI98+XuikE0MjUAxufk+
	8rIkZnNUmg52EAoGbjzS7dG3ZKfIQ0D4vFNBnCJP5CpIMzjE5z8k1Y3A0rqAIRBRxq233y12zUj
	BsYUIIbIfze3Yw96KitCc7B1vUfCEy7NDTPHxZhbE9b67HBrXDLto6r0WbYJeT5WUZvtUhsPSu8
	QOJbKbaEUDv+a29C11mc7nDXJo1eULvnWJ/HyNlUofq2db9gy1bCAn9fGbY9fhbhCqmP+kwoNw5
	cEcgPMtpvzEQ7E54dga+c7wQD7gsn4BDB3BAsTsZkbJMaaYAaYlRM6DJskYhhNSUVdklDHiwoKH
	GQxOJRU7p7jCOEpsWobZ5rMsstfwA1+l5ifZ3chcpw9V2KMjvzNSqbWopAnhYy/tt+brOKQIaBP
	Q==
X-Received: by 2002:a05:600c:6303:b0:47e:e59c:67c5 with SMTP id 5b1f17b1804b1-4830513aed8mr37686575e9.8.1770108738194;
        Tue, 03 Feb 2026 00:52:18 -0800 (PST)
Message-ID: <404d5f05-99e4-41a6-971f-a2b18c4147b0@gmail.com>
Date: Tue, 3 Feb 2026 09:52:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/3] xen/riscv: introduce struct arch_vcpu
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <98214488c67fac866ba519c368aef697da2d2bb6.1770036584.git.oleksii.kurochko@gmail.com>
 <f0773662-808c-44d2-b4c7-8858fb8d365c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f0773662-808c-44d2-b4c7-8858fb8d365c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/2/26 3:08 PM, Jan Beulich wrote:
> On 02.02.2026 13:57, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/domain.h
>> +++ b/xen/arch/riscv/include/asm/domain.h
>> @@ -24,6 +24,55 @@ struct arch_vcpu_io {
>>   
>>   struct arch_vcpu {
>>       struct vcpu_vmid vmid;
> Nit: This being already here contradicts the title saying "introduce".

I'll update then the commit message.

>
>> +
>> +    /*
>> +     * Callee saved registers for Xen's state used to switch from
>> +     * prev's stack to the next's stack during context switch.
>> +     */
>> +    struct
>> +    {
>> +        register_t s0;
>> +        register_t s1;
>> +        register_t s2;
>> +        register_t s3;
>> +        register_t s4;
>> +        register_t s5;
>> +        register_t s6;
>> +        register_t s7;
>> +        register_t s8;
>> +        register_t s9;
>> +        register_t s10;
>> +        register_t s11;
>> +        register_t sp;
>> +        register_t ra;
>> +    } xen_saved_context;
>> +
>> +    register_t hedeleg;
>> +    register_t hideleg;
>> +    register_t hvip;
>> +    register_t hip;
>> +    register_t hie;
>> +    register_t hgeie;
>> +    register_t henvcfg;
>> +    register_t hcounteren;
>> +    register_t htimedelta;
>> +    register_t htval;
>> +    register_t htinst;
>> +    register_t hstateen0;
>> +#ifdef CONFIG_RISCV_32
>> +    register_t henvcfgh;
>> +    register_t htimedeltah;
>> +#endif
> When you add these right away, any reason other high-half registers aren't added
> as well? HVIP (above) and VSIE / VSIP at the very least have such counterparts,
> iirc.

No specific reason. It was added early in the RISC-V port when I was considering
supporting RV32, but as you know I later decided to focus only on RV64, at least
for now. Therefore, it seems better to drop this `#ifdef` from the `arch_vcpu`
structure and re-introduce when RV32 support will be added.

>
>> +    register_t vsstatus;
>> +    register_t vsip;
>> +    register_t vsie;
>> +    register_t vstvec;
>> +    register_t vsscratch;
>> +    register_t vscause;
>> +    register_t vstval;
>> +    register_t vsatp;
>> +    register_t vsepc;
>>   };
> What I'm generally concerned of: With the registers all being put here in one go,
> without any of them actually being used in this patch, it'll likely be harder to
> track that they're saved / restored / initialized correctly (once uses appear).

Then if it will really better I'll introduce in this patch series only vsatp register
as it is used in the further patches. (or even will just introduce vsatp in Patch 3)

I will keep the patch [1] separately in the patch series with introduction of vtimer
things and drop only an introduction of vsatp there.

[1] https://lore.kernel.org/xen-devel/cover.1769099883.git.oleksii.kurochko@gmail.com/T/#ma33af3ff4b2b033f86aa964902ebcab8705fd114

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 09:06:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 09:06:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219161.1528091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnCM8-00057V-9G; Tue, 03 Feb 2026 09:05:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219161.1528091; Tue, 03 Feb 2026 09: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 1vnCM8-00057O-62; Tue, 03 Feb 2026 09:05:56 +0000
Received: by outflank-mailman (input) for mailman id 1219161;
 Tue, 03 Feb 2026 09:05: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnCM7-00057I-6h
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 09:05:55 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 88365f25-00df-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 10:05:49 +0100 (CET)
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 EB006339;
 Tue,  3 Feb 2026 01:05:41 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.130])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A53863F632;
 Tue,  3 Feb 2026 01:05:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88365f25-00df-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: jens.wiklander@linaro.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>
Subject: [PATCH] MAINTAINERS: Add Jens as arm TEE reviewer
Date: Tue,  3 Feb 2026 10:05:34 +0100
Message-ID: <1f545f1fc56c8e5f898cff688434b6f38fb16ed4.1770109450.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add Jens as arm TEE reviewers so that he is informed of changes in FF-A
or OPTEE changes in Xen and can review them.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 0ceb4bba21cd..ccc25a0e55dc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -547,6 +547,7 @@ F:	stubdom/
 TEE MEDIATORS
 M:	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
 M:	Bertrand Marquis <bertrand.marquis@arm.com>
+R:	Jens Wiklander <jens.wiklander@linaro.org>
 S:	Supported
 F:	xen/arch/arm/include/asm/tee/
 F:	xen/arch/arm/tee/
-- 
2.51.2



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 10:03:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 10:03:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219171.1528102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnDF6-0004LY-28; Tue, 03 Feb 2026 10:02:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219171.1528102; Tue, 03 Feb 2026 10:02:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnDF5-0004LR-VH; Tue, 03 Feb 2026 10:02:43 +0000
Received: by outflank-mailman (input) for mailman id 1219171;
 Tue, 03 Feb 2026 10:02: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=NbdA=AH=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnDF4-0004LL-CU
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 10:02:42 +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 79e1a325-00e7-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 11:02:41 +0100 (CET)
Received: from DB9PR06CA0013.eurprd06.prod.outlook.com (2603:10a6:10:1db::18)
 by DB8PR08MB5449.eurprd08.prod.outlook.com (2603:10a6:10:119::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Tue, 3 Feb
 2026 10:02:34 +0000
Received: from DB1PEPF000509F8.eurprd02.prod.outlook.com
 (2603:10a6:10:1db:cafe::46) by DB9PR06CA0013.outlook.office365.com
 (2603:10a6:10:1db::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Tue,
 3 Feb 2026 10:02:27 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F8.mail.protection.outlook.com (10.167.242.154) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Tue, 3 Feb 2026 10:02:34 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA6PR08MB10623.eurprd08.prod.outlook.com (2603:10a6:102:3d1::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 10:01:32 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 10:01: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: 79e1a325-00e7-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=uo6w3/HZpvnZFZI74c65jCiqLGY+Rp3Qw5N85jANnBzlP2RpQFc94Q0GQ7D1DgYH9S3+PwHSWpjS3lgspkZ9wB9lpsozvp4UdZPxJ5qdozIn0xnEOutA6LIboPS7lbBDGnBMMRpFa8mYDBSv88G8I7sUgAv5th5EeTWgufE2dMvC3ztHsuHnWCzBUHpfKNt1H5BiALCXXmEUEM4iU587on9CI8ynw9V0AcPa1saqlrhx21lH0vTmx8x4/yJwUzmWJsgicZchInTmiVonbVNk1am08lVNCd3i3/qGSsHI3HRElvgWPDjWuBFP7VPfo83eCC0Ip0wOb+P87/zVzbC9zA==
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=A79W+o0/IRzyFjpGKaukQWZL32KI18czLLJ7WebtV/g=;
 b=cbisBeq2QEPWWbsDz/K8dAghu0xfW7LBaTNxid+WoZ/u6LkPukSK38NFNaNzZlDae0/IBXspolE0fjRABPNt3B+hsMvjOC5DxDmh0VNj4eZlBIamOQVLkZx0Dm/lZ63EeHegFFdWs0zak/6f02LYaQIuIcV+j36PxTWkYLsTpFxgq9YMGpngXpKzkrxlqtIogTkgjlTm2fbFGoYq7XjsQdefv3AMrVihL/+pr+iOKkj77kjqchwucWqsYtWq660Ydp6Kw1GtyH31RY959baCtKIWbt1FKhJIECU1S195M/W2jl4lOmi/36t9FZbLeLFacfo0OwcIMZjEx/i+kpGm+g==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=epam.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=A79W+o0/IRzyFjpGKaukQWZL32KI18czLLJ7WebtV/g=;
 b=rAXkNRDUvqRqxsmVbeXvWa6PCvNTPQf0oJnxkGXq/bZso0dwwRWtyJWMhgg/4o3TYN10DWj+ALpq3zY+GGoTQkswoaTnDXnFswab7LNdARE2WWVBHV5aSz2D/rgcAtwpWicYVweDtMAMc8qagaUJkqHbGyjUZctDytAglGIucTo=
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=KGZLhtFvHIlLojvz6sYm3kSILVfeBSpAljQb7op+cKB6gJo4n9lPH3tlfDGLOXzUb/yieU74jarv/pFiilzj7a3iaLVK9eH1Ltpq+5chuwkcorBGVYsHlqY4yiZ/Wl8xOeb2+ImoNSArulI+f7PuPLCIWicvMnAHMSydXG1poW2pTek7MW+Ay9HFgDxoXPq9o5DyQpjwILz1sXwU15mIGaeg8jrWpXMzqwqZaB7baGyy07M+Y1360GJVyfnoUKla6g5HUIqMgKQWWj2R2gW7kO3uaF+HMpWeuzO+H2V1YfDtex++GZGASOi0Z70OZTr9qyh3aPXADxq2rSROnZwtlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A79W+o0/IRzyFjpGKaukQWZL32KI18czLLJ7WebtV/g=;
 b=LzxIxZDL+JvILJWAVnExvTz5BW7899MyBkEXHeJ9hqwa2MKHFl2pRmY7m1eF3GNph8j4baWWtap2o2hg1C7C8C1ssi1E7Eysk5xf3ql2SCMo7kNnmujLZ2zSvu5Z1sA0cPxtmXGGif3rScCJ5c16DPnGNhnXIDJV34Lth+wGipg262qCk4SExv8rdypbaEQCt3jqIYKcpcTb2w0+OetBCUTZ9l4nyCgm9mKKrjmRUxjMmXaxivcIu3xWV4icJ3jBv1uXHGgaQhK0EyG6A6hU8TzoHfOADbzufp3qRChY6FitLCe+0Y7xEk5dEx1QYTXOg6qrCm/AGSp2T0tCmXdWvQ==
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=A79W+o0/IRzyFjpGKaukQWZL32KI18czLLJ7WebtV/g=;
 b=rAXkNRDUvqRqxsmVbeXvWa6PCvNTPQf0oJnxkGXq/bZso0dwwRWtyJWMhgg/4o3TYN10DWj+ALpq3zY+GGoTQkswoaTnDXnFswab7LNdARE2WWVBHV5aSz2D/rgcAtwpWicYVweDtMAMc8qagaUJkqHbGyjUZctDytAglGIucTo=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 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: [RFC PATCH 00/19] GICv4 Support for Xen
Thread-Topic: [RFC PATCH 00/19] GICv4 Support for Xen
Thread-Index: AQHclF8GgI2Kr/X/QEO5wnP/6sbdXbVwv1qA
Date: Tue, 3 Feb 2026 10:01:31 +0000
Message-ID: <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1770046465.git.mykyta_poturai@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA6PR08MB10623:EE_|DB1PEPF000509F8:EE_|DB8PR08MB5449:EE_
X-MS-Office365-Filtering-Correlation-Id: 463cb9bb-8f3f-48c7-8741-08de630b5a8a
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|7416014|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?ZXM2NGFpeDRDYmpXUml5NlhxamhEaG1pbjZIWEQxdXhISlBONTNCUUJxOXNU?=
 =?utf-8?B?MzVlSUtxb3NpZnhzdlUzWHRRVjZLQmNMT002SnJBbFBLb3ZVcmZaOFdLc2dk?=
 =?utf-8?B?bUZ0ZzA0YjAyNkRvN0k1NTlrczFrUy9Sb3RZd3dlMmg3dVpTc0FJbCtWZ2FB?=
 =?utf-8?B?NkhtOWxhdWdMSzd4RVdrcFo3c2tkU2wvRzQyRG54V2oxYWxlTmF0d1AwdDFJ?=
 =?utf-8?B?TXRNMjhoaWZkUy82OURLSFliMWJoVVJyVG1XbXp2Q09lS3FkVUZTdDcrNkV1?=
 =?utf-8?B?YXJqNXdOUTZxdEZRcENwUnZDeHZkQkgwVnRxZFUxeWpORUREY0dkRm14OExS?=
 =?utf-8?B?VWJ3ekpzT3UxU21ranNJSTcxbjVCZ09SOHpsZm9GSk45QlBOQTB3K21hYzV2?=
 =?utf-8?B?dllSalFwSVJVdDlXNHBZTmhLQWtBLytNVGtycGl4ZE13ZktWcTBscXBqZlNz?=
 =?utf-8?B?VUhDK1V5QkhjcDNYT01VajlhSE0vQ3FhMStQKzRBVjYrNlM5MHNHTXVyVHVS?=
 =?utf-8?B?endwZnZXWnRvNmJsVUJuaW1XdDdmVEhtN2hyeGN3MFFPQ09ZSG5kZ3VuQk9B?=
 =?utf-8?B?R0Z6MklIWnhmZlNiNWRvejhlY25JTjNkeTdEYzZ1WjhMVWlEQjA1OVE2bEVn?=
 =?utf-8?B?cU1FNlFtUFBobVdTNnF2ZWxjc2NMOWIxR0Nja1ZTQy9UdHNjb05Ua0FsNkVC?=
 =?utf-8?B?Wkg3UXlVdnE1djcyR2ZNcDZjZEwxVmhmQUpNSWl3RG9lcjM1ejFDV2FidkhT?=
 =?utf-8?B?QTc0Sk1xR0hXVUdPYWlnaElobnhDNlhuNkNEWU0vTXVLMnB5Si9ka3ZrUVYx?=
 =?utf-8?B?RVhkYlZsMEFzcnVzRTEyRDZYVjdqc1c3THU2MWhCZ29VNVhNSkJPYkRDOVV4?=
 =?utf-8?B?cFc0cno0K1E2S0VIRGUvMGtSbk1BKzEyWUlMeFp0SFlqZmVLcGFWRVc2dGRM?=
 =?utf-8?B?QnJXS01KRE5leU9rZmhuQXVUb3ArU1Jxdy9BMys0ZEpRMlMxclRIZEw2Q1Vy?=
 =?utf-8?B?ZVRPdGJkbzhFMHB1bGNOWFZJdGtDQk1xWXBuaWxqNFNuNEswTG8wMGg1aDlU?=
 =?utf-8?B?MGRtZHdjMVY1dktoWitGTEdTVXFId3hrTXpRTWdibkhFd0J1dmpDWXBpU0Vi?=
 =?utf-8?B?WDdPRE83UlhhbHZpY2x1MnEyaUZ4bEMyTytWOTdvdVdicDkzOCtnSHV6K2dv?=
 =?utf-8?B?ZFZWbmIxbVpUWGZITWlmNXBOTmtpNmhkMjREZWpYS2d6QzloY2ErWmpyU0R4?=
 =?utf-8?B?VnV0WlNSY2x5aEczekZWd2VZN2pCeVhjRXd5ak1lM01GTElQRlVNMjZRMUZr?=
 =?utf-8?B?VjZOU1d4enNMWHVyU2tvQ281ZGF1VEpwUk91M3l6Ky9xTUNsK2FSL0hCVHFW?=
 =?utf-8?B?M0xFSUJ5Mmc5dnJsTWo5K3BMUEsvemxxeFFnL0dPanNnbGo0TzJNNzNqMDQz?=
 =?utf-8?B?eDNSNk1QQjZwcjRnUWQzMmdXcUp0ejI0eGs3NTUrU1oyU3RsQy9NaGc4N3NU?=
 =?utf-8?B?YjU2VTloVlVYSTNsTEsyaVpKZndzNWtSckVSQUYwRnoyNUU1ZUdrb3VsUkFv?=
 =?utf-8?B?S2pkT1ZGb1phZDErWTl2Yy9tVWJjbk9KZ0ZOQTFXRi9kSnVlZmp4emlYYXIx?=
 =?utf-8?B?Q1pscStxOVdyamJoVDVWcWNCUm9ENDU0RHQvU0hxeVE3ZklIdjdmWXZhamNy?=
 =?utf-8?B?UE95cU9NOSs4N1dzS1JDZFAxbTg2ZmZBRVF6QjRHbk9JTHVNaFk2NXk0N1hn?=
 =?utf-8?B?ejdhNmhEaDdYMmFGM1Mzdlp4QjEzRE9rK2o2YTA1UGpUcStveDJteGhyRytW?=
 =?utf-8?B?ZTBySFdqa0VncHVEVzhHVVRLVU0zaUhRajZ3OUdsdDd3VlFFUCtuZkZONHlK?=
 =?utf-8?B?My9GbUhnYytwV25HRVBncUx3OFI5aVZFY1hMQUQyTTRXbFBlU0ZGOWg2M1dr?=
 =?utf-8?B?REgyaVQ3bEtvYTBtWVlPSFUzQzdZZ3JQQ3loLzJZc25tQnpxcTI1NEJIc0tT?=
 =?utf-8?B?eXN4ajFCK3VMZDRvQjJhVG5FeXNhUWFqVW01aDB0M1JSMFhncnFGVG9XdVRZ?=
 =?utf-8?B?ZEIwM1FWb0EwWkw1aUxiMFR1UVBuSUxIWHVBVG8vb2tScENMUlE4SzNpZE9F?=
 =?utf-8?B?d05CcERuV3Y2NzU3TlJpMEtiVUNKKzhpdXpqZFZXekN2c3JEQlJEaVRNdGVo?=
 =?utf-8?Q?3j8sHcTi6jzouGue2la053I=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <1A0647CCB2F1AA438AF5D367E40FBBFE@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10623
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F8.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c7facfb2-46cc-4188-1254-08de630b34ff
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|14060799003|7416014|35042699022|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WkI5dlhiQ05TVjFpUVNkZ2dEZnFDRXVFVUtGRVRyTUc5ZVVnWkdCTHZLbFhR?=
 =?utf-8?B?WmJ1dUtsSVJ5ajhhbzZyT3pMMUZnWmxNaG9EWlRmeTMxc1htVEV1dDg1ODZu?=
 =?utf-8?B?Z0Y3eCtTdmgzUFVwT1NmVnNPcWEvR3VIdjRBOWc4NXhNU0tBc0U0UW1YcTRD?=
 =?utf-8?B?U043RFZXU09EM1RoUXdPQnNheVdyZkJJOHVNSEhoVjZaNXpTdXVqQVByMjVi?=
 =?utf-8?B?TmNmblNVR2Q5V1FtU2dvYVVvMzYxNmhpdVl4Q3RyRVZDVmMzUnhEUHFwd24w?=
 =?utf-8?B?SHFiL3ViNGFXWGJTWWEzbFRVaUxzSEh0NnRNVFBmbjVJYWhORFVWUHJaTFBG?=
 =?utf-8?B?cHZ5Q1NYSmxic282MGkxc1o4c3NSODZkUGhjUXpqeCtrVnZSRUIwRnN0NU5K?=
 =?utf-8?B?MkYzM2NITEdaQ1JTSXhpMlBwK0d4UmZyWVJmcVhkRWNoVUJzSXg5VnhxbEtE?=
 =?utf-8?B?a1lTYllhaDQxdWh5dEQ2aGR1bDRxMVUyRWw4dTFvRENGcmFXVlM0dWJNQ3g4?=
 =?utf-8?B?NVBlNUR6VU9PQlhieUkvYXZBQURZTEhJMmVZVjBRUVJBQVVUdEVSdjhDVjJF?=
 =?utf-8?B?ckdDNWI0amdxcEpEbEtSZUNhTUw5eDQxbnNPREZzV1BaeDM3Y21rVUJoWDhZ?=
 =?utf-8?B?K24zdGR4TzhWWmxCLzNxKzVwSUlOQ0ZBK3JiQWc2ZThGbUNqUFByVHpKc2k5?=
 =?utf-8?B?U3AxdmZXV3g1YzI0YlEyczRkZ1NHTTZJRlg1WFFJc1hiZFl5VUdVWE45ZUhG?=
 =?utf-8?B?WDVKSDRUZ1d6TE95RkpCKzIzU3Z1Q3lxQUJ0YWlxcm1OaUhnQjVSWklTQnRk?=
 =?utf-8?B?M2N2blZzbFZRRHlpakhsN01QYzZ1MnRVR1dMcjFiL3IzTnV6dTl6bUJjN2x0?=
 =?utf-8?B?emZua3RtRFMxbFh6N3N6L2cxM1Y4V0daSVpUQUNBL1ZQMlcxdG5QMGMxVjE5?=
 =?utf-8?B?M1VLdVhtMC9TenJLQWFZNzZyc1ZJaTFyWk5EeWo5VWQ3dzVaRkhGS0RSVUs1?=
 =?utf-8?B?VVg0dDkyRDhBYTBpb1duMDRQMEFuWDFNMGlzNC9lRUNaOU1CQkFLN0Q5MFYv?=
 =?utf-8?B?VFBHK3VBUUFHZTNsTVJnb21aNTUrR280VTZ2dGE0VXN0ekVBZ2hiMnhQVHRz?=
 =?utf-8?B?SUZqUzIwTFlYeDFQTUdzbCt3ZWhIbnNsMm5wTDk5U1Fpam9Pd2JCY2Q4c3E1?=
 =?utf-8?B?SlpYTk9KV29selVrY3NMYkNNUUV6SFp1S2NKbTh4YmtoMy9TWFFqZ0VtbVZq?=
 =?utf-8?B?T21DUTdUcnFSek9BdTFxOXlreHFuMm5ucWxFbTg1Q2VKU3RyNDhIckgxV3Bh?=
 =?utf-8?B?ZjlUVCtSYVVWWlhkcVliWmMvUE9UbnRDcVp2aVFBUHlTS2ZuNSsxMkkzdFBq?=
 =?utf-8?B?OTU3UXVWcHU2emFUWkorRDIzdytrRnFQN0k4Qk93OXJmMnNEMnJwcVNlSXBL?=
 =?utf-8?B?VlNKQnhmc3NlVUVHS0wvckV6VWl4VFpoaFRDdzlDYmQwSHQwT1lybTNuNUJX?=
 =?utf-8?B?WjRRWW5hZG9XamQzYzhwWkxqNnlZUTZ4VDJWVDZ3VCtWOXZSZWtkcnFxWGpp?=
 =?utf-8?B?a2hQazk0RTgxUzRucEwxWmU3N2dLb3BqZEhvaEtTelRqTkNtSkZqVzVpY2VC?=
 =?utf-8?B?eG5TVXluMTV0amloSkhqUEV0VU5JbGllRXB3R2dwZzg4K0RpQS9pVEIrYUZ2?=
 =?utf-8?B?RkYyd2NhQzAwTlJVa1ZsTzFVWGJTVUl6a0ttTnU4MWNZYjV6bzhJSkt6YTA1?=
 =?utf-8?B?UUxhQzJGT3pHSTZZWTZNSElXS3hsV203WFg4bFdHdkJ3ZFFvRnBrM2Q2bkND?=
 =?utf-8?B?b3VtK0R5aFdVOWVsbndUbENEeG9ZcjZoWTlHd3dMQlFGdlRPdFRCYzBFSEh4?=
 =?utf-8?B?T1ZVSUhaNXN2ZXRwWkM5SmFyQUpOMVljbG5uY0lWTUFicHdobGxpTzM0ZGll?=
 =?utf-8?B?c0VXWmVBZDQzNEtiWmQ0eU14QlhmVUFZbjFFUUI0MFRJajJ2NkNVMTFUdFhz?=
 =?utf-8?B?TzFEbFZoRHdldm9sdXVqVWhPVkYvcE55MjdHNmk2OElYZzU2aHI3RW5ibzAr?=
 =?utf-8?B?ZmVJWmpuZEZ2SzBkOXI2NHMzZFZPTUdyYVdtREh1OFhGT3pVVDdrNzNRNFVJ?=
 =?utf-8?B?bzZXL0RtbDdDNlAzb2NlMFlRMnlNNkZSQVMzdXphem1hVzZ0aDNxekZja1V3?=
 =?utf-8?B?cENtNVJMMXNyaENKOG9hbkN2QnFHV3ZHdzFhRkdqT0ZiUW9FZkVTOU9ZOHdZ?=
 =?utf-8?B?Y2d6dzQrWHBoRjNtUS8wc3o3MGVBPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(14060799003)(7416014)(35042699022)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rFNCdvivRCtItRpf1kTxS1JE8heJF/IfC+PA7ogfxdaKb0dpYvoAaQMQvsdngtBQKaE5DwJYI5WfwLrq3UzTvwpv3BwnZ56nP6PEzTnhOI1rG9e1iRr7U4wk/UWgk/ceXSAYj0Y11nz1fZzgenfXELZ9U6mSLRH8/qG6VmVvU5ZCzr+W04hz8ccZa/o8d9Ol6xbOlCYJxwLljK5HVnle/VkaosOCZok7djmrcSkyI9o2b2TX2gtCcCW4eaz4kzVsjC6o3uJR2tVuvxW53nMvutQl3mdZ8haBqqvjqWK1AuscMDRgALGIHQg1FMkOIyPSuijHUCB8ADvoCKty8RNs2jzVvCLQg9PdNZHfMS2kuw7OQCfTBxPSXU5xpXO0hy8aJ/JN/V23nrfYmFJMTtqJY6LkpUP1C9bLUt/Xr9MfDNh/rffVZ46x+nJX6UfYaxwR
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 10:02:34.6939
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 463cb9bb-8f3f-48c7-8741-08de630b5a8a
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:
	DB1PEPF000509F8.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5449

SGkgTXlreXRhLA0KDQpXZSBoYXZlIGEgbnVtYmVyIG9mIHNlcmllcyBmcm9tIHlvdSB3aGljaCBo
YXZlIG5vdCBiZWVuIG1lcmdlZCB5ZXQgYW5kDQpyZXZpZXdpbmcgdGhlbSBhbGwgaW4gcGFyYWxs
ZWwgbWlnaHQgYmUgY2hhbGxlbmdpbmcuDQoNCldvdWxkIHlvdSBtaW5kIGdpdmluZyB1cyBhIHN0
YXR1cyBhbmQgbWF5YmUgcHJpb3JpdGllcyBvbiB0aGVtLg0KDQpJIGNvdWxkIGxpc3QgdGhlIGZv
bGxvd2luZyBzZXJpZXM6DQotIEdJQ3Y0DQotIENQVSBIb3RwbHVnIG9uIGFybQ0KLSBQQ0kgZW51
bWVyYXRpb24gb24gYXJtDQotIElQTU1VIGZvciBwY2kgb24gYXJtDQotIGRvbTBsZXNzIGZvciBw
Y2kgcGFzc3Rocm91Z2ggb24gYXJtDQotIFNSLUlPViBmb3IgcHZoDQotIFNNTVUgZm9yIHBjaSBv
biBhcm0NCi0gTVNJIGluamVjdGlvbiBvbiBhcm0NCi0gc3VzcGVuZCB0byByYW0gb24gYXJtDQoN
ClRoZXJlIG1pZ2h0IGJlIG90aGVycyBmZWVsIGZyZWUgdG8gY29tcGxldGUgdGhlIGxpc3QuDQoN
Ck9uIEdJQ3Y0Li4uDQoNCj4gT24gMiBGZWIgMjAyNiwgYXQgMTc6MTQsIE15a3l0YSBQb3R1cmFp
IDxNeWt5dGFfUG90dXJhaUBlcGFtLmNvbT4gd3JvdGU6DQo+IA0KPiBUaGlzIHNlcmllcyBpbnRy
b2R1Y2VzIEdJQ3Y0IGRpcmVjdCBMUEkgaW5qZWN0aW9uIGZvciBYZW4uDQo+IA0KPiBEaXJlY3Qg
TFBJIGluamVjdGlvbiByZWxpZXMgb24gdGhlIEdJQyB0cmFja2luZyB0aGUgbWFwcGluZyBiZXR3
ZWVuIHBoeXNpY2FsIGFuZA0KPiB2aXJ0dWFsIENQVXMuIEVhY2ggVkNQVSByZXF1aXJlcyBhIFZQ
RSB0aGF0IGlzIGNyZWF0ZWQgYW5kIHJlZ2lzdGVyZWQgd2l0aCB0aGUNCj4gR0lDIHZpYSB0aGUg
YFZNQVBQYCBJVFMgY29tbWFuZC4gVGhlIEdJQyBpcyB0aGVuIGluZm9ybWVkIG9mIHRoZSBjdXJy
ZW50DQo+IFZQRS10by1QQ1BVIHBsYWNlbWVudCBieSBwcm9ncmFtbWluZyBgVlBFTkRCQVNFUmAg
YW5kIGBWUFJPUEJBU0VSYCBpbiB0aGUNCj4gYXBwcm9wcmlhdGUgcmVkaXN0cmlidXRvci4gTFBJ
cyBhcmUgYXNzb2NpYXRlZCB3aXRoIFZQRXMgdGhyb3VnaCB0aGUgYFZNQVBUSWANCj4gSVRTIGNv
bW1hbmQsIGFmdGVyIHdoaWNoIHRoZSBHSUMgaGFuZGxlcyBkZWxpdmVyeSB3aXRob3V0IHRyYXBw
aW5nIGludG8gdGhlDQo+IGh5cGVydmlzb3IgZm9yIGVhY2ggaW50ZXJydXB0Lg0KPiANCj4gV2hl
biBhIFZQRSBpcyBub3Qgc2NoZWR1bGVkIGJ1dCBoYXMgcGVuZGluZyBpbnRlcnJ1cHRzLCB0aGUg
R0lDIHJhaXNlcyBhIHBlci1WUEUNCj4gZG9vcmJlbGwgTFBJLiBEb29yYmVsbHMgYXJlIG93bmVk
IGJ5IHRoZSBoeXBlcnZpc29yIGFuZCBwcm9tcHQgcmVzY2hlZHVsaW5nIHNvDQo+IHRoZSBWUEUg
Y2FuIGRyYWluIGl0cyBwZW5kaW5nIExQSXMuDQo+IA0KPiBCZWNhdXNlIEdJQ3Y0IGxhY2tzIGEg
bmF0aXZlIGRvb3JiZWxsIGludmFsaWRhdGlvbiBtZWNoYW5pc20sIHRoaXMgc2VyaWVzDQo+IGlu
Y2x1ZGVzIGEgaGVscGVyIHRoYXQgaW52YWxpZGF0ZXMgZG9vcmJlbGwgTFBJcyB2aWEgc3ludGhl
dGljIOKAnHByb3h54oCdIGRldmljZXMsDQo+IGZvbGxvd2luZyB0aGUgYXBwcm9hY2ggdXNlZCB1
bnRpbCBHSUN2NC4xLg0KPiANCj4gQWxsIG9mIHRoaXMgd29yayBpcyBtb3N0bHkgYmFzZWQgb24g
dGhlIHdvcmsgb2YgUGVubnkgWmhlbmcNCj4gPHBlbm55LnpoZW5nQGFybS5jb20+IGFuZCBMdWNh
IEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+LiBBbmQgYWxzbyBmcm9tDQo+IExpbnV4
IHBhdGNoZXMgYnkgTWFyayBaeW5naWVyLg0KPiANCj4gU29tZSBwYXRjaGVzIGFyZSBzdGlsbCBh
IGxpdHRsZSByb3VnaCBhbmQgbmVlZCBzb21lIHN0eWxpbmcgZml4ZXMgYW5kIG1vcmUNCj4gdGVz
dGluZywgYXMgYWxsIG9mIHRoZW0gbmVlZGVkIHRvIGJlIGNhcnZlZCBsaW5lIGJ5IGxpbmUgZnJv
bSBhIGdpYW50IH40MDAwIGxpbmUNCj4gcGF0Y2guIFRoaXMgUkZDIGlzIGRpcmVjdGVkIG1vc3Rs
eSB0byBnZXQgYSBnZW5lcmFsIGlkZWEgaWYgdGhlIHByb3Bvc2VkDQo+IGFwcHJvYWNoIGlzIHN1
aXRhYmxlIGFuZCBPSyB3aXRoIGV2ZXJ5b25lLiBBbmQgdGhlcmUgaXMgc3RpbGwgYW4gb3BlbiBx
dWVzdGlvbg0KPiBvZiBob3cgdG8gaGFuZGxlIFNpZ25lZC1vZmYtYnkgbGluZXMgZm9yIFBlbm55
IGFuZCBMdWNhLCBzaW5jZSB0aGV5IGhhdmUgbm90DQo+IGluZGljYXRlZCB0aGVpciBwcmVmZXJl
bmNlIHlldC4NCg0KSSB3b3VsZCBsaWtlIHRvIGFzayBob3cgbXVjaCBwZXJmb3JtYW5jZSBiZW5l
Zml0cyB5b3UgY291bGQNCmhhdmUgd2l0aCB0aGlzLg0KQWRkaW5nIEdJQ3Y0IHN1cHBvcnQgaXMg
YWRkaW5nIGEgbG90IG9mIGNvZGUgd2hpY2ggd2lsbCBoYXZlIHRvIGJlIG1haW50YWluZWQNCmFu
ZCB0ZXN0ZWQgYW5kIHRoZXJlIHNob3VsZCBiZSBhIGdvb2QgaW1wcm92ZW1lbnQgdG8ganVzdGlm
eSB0aGlzLg0KDQpEaWQgeW91IGRvIHNvbWUgYmVuY2htYXJrcyA/IHdoYXQgYXJlIHRoZSByZXN1
bHRzID8NCg0KQXQgdGhlIHRpbWUgd2hlcmUgd2Ugc3RhcnRlZCB0byB3b3JrIG9uIHRoYXQgYXQg
QXJtLCB3ZSBlbmRlZCB1cCBpbiB0aGUgY29uY2x1c2lvbg0KdGhhdCB0aGUgY29tcGxleGl0eSBp
biBYZW4gY29tcGFyZWQgdG8gdGhlIGJlbmVmaXQgd2FzIG5vdCBqdXN0aWZ5aW5nIGl0IGhlbmNl
IHdoeQ0KdGhpcyB3b3JrIHdhcyBzdG9wcGVkIGluIGZhdm9yIG9mIG90aGVyIGZlYXR1cmVzIHRo
YXQgd2UgdGhvdWdodCB3b3VsZCBiZSBtb3JlDQpiZW5lZmljaWFsIHRvIFhlbiAobGlrZSBQQ0kg
cGFzc3Rocm91Z2ggb3IgU01NVXYzKS4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 10:15:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 10:15:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219185.1528113 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnDRA-0006Aq-7a; Tue, 03 Feb 2026 10:15:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219185.1528113; Tue, 03 Feb 2026 10:15: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 1vnDRA-0006Aj-3b; Tue, 03 Feb 2026 10:15:12 +0000
Received: by outflank-mailman (input) for mailman id 1219185;
 Tue, 03 Feb 2026 10:15: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=1Q51=AH=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnDR8-0006Ad-7Z
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 10:15:10 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 375f2725-00e9-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 11:15:09 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY1PR03MB7873.namprd03.prod.outlook.com (2603:10b6:a03:5af::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 3 Feb
 2026 10:15:06 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 10:15: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: 375f2725-00e9-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nz5e8mHYXGashbY6AgTdDY0eaTLL+aeZhQq40YkbJN/NkpMOtVL31in+N4s0jaxrPQy+mx3fxJ2gfjIrOwgfbXfE00zGvyEmjOosT6Ubr/WHoXAg3WEWUqEYGr2wDVOOId2Qra1YMbeFIN1PSij9t4MmWKGdVTi9q2NJZu5eZVEx8tyaX87J4xQA8a4hBOF7X/RDkqvjP6FPl378f+l5MbDoWIzykeiPwHjFUuLEhle24cQHAaY7HtUDF2NvA+C4hJyxVDKgCD4gSlXTA/RpKCYQU3kpuu9BZm9E4qgDvAKzXwRzQ7zNtlLwYENYykubaRF8GlU+OsKvgq0iytU6Pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2z21zLrbzck0YRU7xZ1+yXNuRUMs/p6MNAGGLBgZmPw=;
 b=KK2DFT3znGsAfJdt06IMlMekcRTEVnOgwqfzw6XE4xH0ZGK+HwBqM/JjagOqclw62f58XcvGMuuFM9AurLWHLx83VE2CEw6rPfcHguDxJetv4vYg2NgcNoY0rJxPs8RThX45UAwZ8dbO/F4+S+Hb5mQAIN9/7wXRafwCmWW7pEC0czjbrKTfk/jThcoMefFc66e95gcheAKo9msEPDDJTJxcTIP2n7jdOS/h3LQ8q6MBfXti8cVEssELam+Xm9Na+4IX0WZ0tP9R2CAe9sqMCjVSHqLl9y5JnnI+MvyGAk7/BJsJGk7AELxGDml1tH5MheAGYjR5dhhHe+No7i9xaQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2z21zLrbzck0YRU7xZ1+yXNuRUMs/p6MNAGGLBgZmPw=;
 b=X1nTJ5yiNB1AGBtQtRCRMsNeDax03b8sBsgg4u5dpdlXDPc0ZVeWYtwrOrGLCNOHOIowH99beID8VP/TfFzBvH/So7av+k4GZwovJAg+BHNLgKUaLBXu8rPGq3WJhfgVQKBf5kSDRHC5y0IStP69jrRpfEUSpxf7TZPw6dvO6O8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] x86/domain: adjust limitation on shared_info allocation below 4G
Date: Tue,  3 Feb 2026 11:10:17 +0100
Message-ID: <20260203101017.56962-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0023.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::7) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY1PR03MB7873:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e1af679-182d-4883-4ef7-08de630d1a09
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?RUR6bVdXTXliSWtlM3h5MVhIMzlpSmdJY0xHUDZRUCszcnMrb1FtVmpEQ0R3?=
 =?utf-8?B?UEVFcXdzMXg0OERjRVB2bXBDbUF4NnpYWkxZc05xVzJqN3VnYStWS1JaaHlU?=
 =?utf-8?B?YnFhNjVIbFdva2FiSFY2QW1xZGxKckdocGhyZE9YaVdLQVRGWlVXcWhCVDB6?=
 =?utf-8?B?VGVib2J2MGJaRUI3cUg5WXhEb3BZUGNjUHh5aW9nUm5xR2JtSjlMZG84eFEv?=
 =?utf-8?B?MTdacUREcTFKeXg4ZllWd0EvanVCVGpTdjBHNWgwbC9KcUpDU24vV2sva2pN?=
 =?utf-8?B?b1dnbk52dHFlbDlrQi8wcmxsMWorbUIvdXpVNy83WkVKUkhFb0RTVGNWRjZR?=
 =?utf-8?B?bDJtblVidm1WRllYb29VbllwWVo0ZUVPcGg2VlpXT1l4enVySm1mYXNGVnF4?=
 =?utf-8?B?UVUra2VuY2lYdzBtTnhkaTNZZG9vb1BMQ1lnUi92Z1B6cEVkWWFXdVZXWlgr?=
 =?utf-8?B?UGo2VENqVWovcUlVWXBIODcxSFZGMmlZTnpQR0U3Yy9HNVQ4aFRQRm9DRElI?=
 =?utf-8?B?d0RmSzRYWXE3ZjBRRURITDBjREFLN0gyaFYwcGdncktwbllCbml4Mmh3VDhH?=
 =?utf-8?B?NUFCQlFxR3BSaHdxWFNaaXYzOFVGc2thSlFucVpSTndlbS9seHJnZzB4Z2k1?=
 =?utf-8?B?WGpQVTFUYm82MTNtdVlkQys1dnJRQ242eHptVVBtcTkyTWdXT2J1TzloVXZJ?=
 =?utf-8?B?WjhHUXFKejQ4bnR0RnRJSjdiMXJYOGJOTlJMVnpkSWxGMkEvUGsrUTlxYTJX?=
 =?utf-8?B?TGZydFA2TUJ4SXIybEt2UHgvNUljSHFaZ0ltM09Pd0pNdm5vbGNVRzdaQU5u?=
 =?utf-8?B?c1NKRWZTYXo1ZEcwSk91eTk3YUhDTmdZUWtoSHZFYnI2TDR1V3ZzNFZ3Q3Qz?=
 =?utf-8?B?LzhCWjZEV0xRUmkzVHljL0lsYWtMS2x0UTFvR05mMVdGT20rVHZFOEp3b045?=
 =?utf-8?B?Q1F0aFJPODNJWDFObFJpckNiVURqWjZmbC9vQ3hSaVZvZWhPQ3pOMUQ1VWI0?=
 =?utf-8?B?MWxiZ2VTdTBIZmt6bTJUZ3hGUDZTYlVyYjhzUlhqZmpOQkljSlRHeE1hV2Qr?=
 =?utf-8?B?QURjNE9vcmIyY1ppRkdtTVlMNnkxM3JNelZTME1mOXM0R1QvK2ZGaVFSSFcx?=
 =?utf-8?B?U3dkc2NmZDU3WHJvY3hKbk1ZNVdFa1Y0VzFBVHQ4dVpIbUdRWWIycWtUWkZn?=
 =?utf-8?B?U0lkL3NWV1c1TFdmdTFaZE1sYng3aHJVK1pUaU11ZDVkSFBqeGhIVmNhaVV3?=
 =?utf-8?B?bmRyTnFyZE1DdW1tblNxT0xQWG9JclFJMDVKRFduOERwSUJjemwveUI5ZVNP?=
 =?utf-8?B?cXJBOVdORTdHNEJtZm45V2VkRVlOQnhvdStjZHBvY002UVpkbzhRZWM4UzZ5?=
 =?utf-8?B?WmZSYkpERnY1bTNGeUNPdUlxT3lvbXVMRzdEdGIrZ1JUVGZwTnVjQVFxRk1O?=
 =?utf-8?B?UHZCNXhJR0tvNkJOU1BVcjBwWEVRU2dDQTdRTFk0RjVIZ3NyM2FFa3hnUTly?=
 =?utf-8?B?WllYVjlzMURHVlp4bG9oTnowZCtseUpYM203SXo1L3BYK3FLbnZ6bnMyR0VX?=
 =?utf-8?B?Wi9LVFIzdmh4dnVVZVg4Nmllam1qczhVbzBCNnl2aGZZWUhOejFSQzU2Y0Zq?=
 =?utf-8?B?NXVtRG43RThSelIvWHFlU0EzZkZRa3U5YXl4Y0loSkFJYis2bEFVZit2VVJR?=
 =?utf-8?B?MGNLK3JoNWdmZ0U3dktlRms5bDBkTnVBYzlFbWNGUjZSeXR2bkEvQ3MxK0E4?=
 =?utf-8?B?aGRaVWxKbEFadDBGOHI4c3M5QW9ieG16L0pJY1R3d0lxa294djRXNzh6QTVy?=
 =?utf-8?B?aHZ4N1NXSytnK1d3Y3o2aCtrQUM0MnMvUWJKaUkyZzFpenFwbWZuaGltSFhK?=
 =?utf-8?B?WXNqVkcxQzRvellpOWdvYlEvVUJ6RGJibVhKbVgyRGI4djFSSDdrM0cwOHFR?=
 =?utf-8?B?eWJPSS9IVWd1a2NJQ21iYlNXb0Q0L2pqdnllSWtuZDZ0Z2E1bnhFZDdpU2dY?=
 =?utf-8?B?UFdKWFNtTU1jU1Z2V3I1cU5rRGZLRDBsQmxpeU5BNGZrQlN2cVhDV09Hbk1C?=
 =?utf-8?B?VlArU2FJRkR0ZXJJS1RJNDVOSDlKTmxZNUhBdUd3ajF0RGd6L2pEdEczMk1D?=
 =?utf-8?Q?Shfw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L1B3RG5heThZWGdsOWxXcDU1Qm95a1RWd2UrLy9tbXFFZ29SdnQ3ekF2SnJz?=
 =?utf-8?B?M2xFOURYVTlpbSs2eURYK2ptekt0R0l6cmkyQnpBc0c3V3VUWGw0MHk3WlhE?=
 =?utf-8?B?cmFpa1ErMENKOVRIZG8xc2lUSEpwVzd1V25rZ0hyRUR5TmxVOUxVMjdIcnlm?=
 =?utf-8?B?cU9td2FhazFXMmVmcUFlaTRYSXdNUm5KM0o0Z2dpNitXU0ZKWmlxWVpQdHlo?=
 =?utf-8?B?aldtdHFhQ2oxSGJkY0Z6TUVWekJwSTFGTW5QOExST1g5VjErRElxc0F1ck45?=
 =?utf-8?B?MXdxQ3V3Z1dia1V5cWpTeE9RUFVhVlBIWGdHMXJyWFFhNE55QTkvL25PVmov?=
 =?utf-8?B?YUJDaWxDVjBmWURRa3RSYkc1WEJZdzZObTBIQWdOblRuUXB1M1hrTVhNbkxj?=
 =?utf-8?B?S3puazNaWUNFZjkyVTc5Q3JWejA5K1R1UTY2TFJNbE52WjNJeit5SVg0eEp5?=
 =?utf-8?B?TkxMM2lwTE54clpON3FWQXBtc2s5TEpqSVRLNTF5NitmVTFZVXkrK2FiNUlw?=
 =?utf-8?B?My8xKytQYVVIWTVWb0NQS3JBVk1IOEVWNnMwYi93MmxyaFZKanJNRGtNSEw4?=
 =?utf-8?B?NEY2V0F2S1ZYcnJ6UklaWXhYdDJuUE0xZFFyRXlsVXJ4ZXMzcUxUQjJiaTc5?=
 =?utf-8?B?Q2E0UHhmSDkxZmwzT0pJdnA5MVE3OUNmWDlSdE5IeUdjeGNZWldJS2J5cTl3?=
 =?utf-8?B?UUVlNFR5Szd0SWtPS1V4RktLR0xoeEY2andwWTY3Z2pmLytDYzcrUWR4TlU0?=
 =?utf-8?B?QnQ4dFBQS0NkY2owVjhvWFdydW5XZEJpV2tEK3Y5Q0dNQXZralRPeXR6SkdK?=
 =?utf-8?B?K3JQdDZwUjVkWVhJdEc1eEo3d2FFYVE4eVFjczVSWlJBM29XL2J5dnFNWWk5?=
 =?utf-8?B?VTMyRVNvNThpMmhsZEVIaG9XRk53ZkVGVUJRTjhpK1k2SnRSYndyZFFNV2tM?=
 =?utf-8?B?UWRSSE01WENZRDdOdDFFSVhYYnB4ZEZ1aVJQcUE0VlNaUzZKc3F4Ri9ZS042?=
 =?utf-8?B?YnptMEN0RGgzREp1b0ZGY29rekFFNFpaSzhHUGtYZTlVcERjYnlhb09SZXN2?=
 =?utf-8?B?eXdEQ3ZyczE3N1NVWjVsOEw5cWcxaE1HVW9jU2xLQmJ6L2J0dURyR0dqOHgy?=
 =?utf-8?B?cFJOSE1tOWlNWitYYXd6enlMS1BJRE41bFZ6SVduelZ0VWV6ak1KZEEzc004?=
 =?utf-8?B?MUw4ZldVamZJSlovQlk3M1BQak1VQUZKdWx1SjJlQjVlcFpCZ1h1MFRyWXU5?=
 =?utf-8?B?aUZMQTRKMWhxQ2FyT3dVT1BXS05GeTJsSW5xbzVYNnhEU2dKU0VaVWR1cVU2?=
 =?utf-8?B?Z3J3aWIxZU5Gc3ZobFhNRDFtbTlrT0JkY2lsL2ovaDVFS0REckRWVHFnUTkr?=
 =?utf-8?B?clA4TDNTSDZ5azZXYzVDTkRLaGtJMnA4a0Rtb2Z0WlcrVklZTVk0NE8xZi9T?=
 =?utf-8?B?T1o1TUUzamRRYlBNWmpMS2pwVEJNYkxra0MzdjdJbWxySGc1N1FrNnF1b1pi?=
 =?utf-8?B?R0g5RmZhMHFtbWFwTXJYREhKZUs4bTJDT3RSbHAvazBnQStyM0Y0bnphbnF2?=
 =?utf-8?B?S2phL0t1dzdNWVBqbmY3U21jZ2N6SDRTYi92NWxoZkl1c3l4N0FsekRZMmlo?=
 =?utf-8?B?Y1dJWHVveVFsMS9jclBiK2tBR0ZwdDdMRm5wZ3FpeVZwd1dYNGYyMGJvYkJX?=
 =?utf-8?B?WXlJR01qb0o0VUV0WDJ1cW9mYTAwb0QvbXhvMkJpZmR3eEx2SUN4UU5UazB1?=
 =?utf-8?B?ZEhWWnd5Qk84OFg1MDZWUXBzc1BoemhsZFd6eG5rQjYwL3RjR1UrRXhKUHEy?=
 =?utf-8?B?c3orUis3cHBTalptY3VQK3JRekhmN0poSytKalNHcWMwcVc2ZGVkeFFGSlJi?=
 =?utf-8?B?cjd6aWdpQk5ZeTFFYkxxaEVyRWJuUHBxQ0dvYjRhUlNUVjhSWmNIUDkralhY?=
 =?utf-8?B?d3dQR21wb0Y1NjcybWNBU05tZFpFYUlsYkVZVEoxNjlYYVc4RHZHWS83ZlVm?=
 =?utf-8?B?UzVrUk1OeFZNc0t5NjMwUGMwUUh0SWE2MXFUTFpwT0w2YnhWaVRwQTg3dzV4?=
 =?utf-8?B?UWUrcGIxTGhXNVozaGRMRnE1bURqUzYvWUU1Ukc0a0I5Sk5YdjFQSzhRVjRy?=
 =?utf-8?B?anRVRUV5b0NWZFdlRWtyY0F1cjlhOVRObzVjRnBsNkM1YVdUZFA1SnI3SGhm?=
 =?utf-8?B?emRxQUl5eGpCRUhWQnB1SkpLdXlsWEJHZXRwRzdVaUVKL2owYnZJY01tcjla?=
 =?utf-8?B?S1hnVlAvbjRkcEFZd2dCVnJhV2t5eUphNXpIZ1h5azVjMHFHSkZTdTZ4TGtW?=
 =?utf-8?B?Z0pwTHU4RndqcmlmTHBlK2o3bUhoMFBYZHFWalgzK1c2VWVzWjhidz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e1af679-182d-4883-4ef7-08de630d1a09
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 10:15:05.7837
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kH7Jrnfr81ROGvdZXvKGDCTViNnf2ih8Fx9afPx+KWgb/lbYu2YocCk560oCUncNjCbzbYKB3DmUGBhltA/IaQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7873

The limitation of shared_info being allocated below 4G to fit in the
start_info field only applies to 32bit PV guests.  On 64bit PV guests the
start_info field is 64bits wide.  HVM guests don't use start_info at all.

Limit the allocation address restriction to 32bit PV guests only.

Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index edb76366b596..4163568043b1 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -882,10 +882,13 @@ int arch_domain_create(struct domain *d,
         goto fail;
 
     /*
-     * The shared_info machine address must fit in a 32-bit field within a
-     * 32-bit guest's start_info structure. Hence we specify MEMF_bits(32).
+     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
+     * field within the guest's start_info structure. Hence we specify
+     * MEMF_bits(32).
      */
-    if ( (d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32))) == NULL )
+    if ( (d->shared_info =
+          alloc_xenheap_pages(0, is_pv_32bit_domain(d) ? MEMF_bits(32)
+                                                       : 0)) == NULL )
         goto fail;
 
     clear_page(d->shared_info);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 10:20:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 10:20:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219192.1528122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnDW2-0007q0-OC; Tue, 03 Feb 2026 10:20:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219192.1528122; Tue, 03 Feb 2026 10: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 1vnDW2-0007pt-LD; Tue, 03 Feb 2026 10:20:14 +0000
Received: by outflank-mailman (input) for mailman id 1219192;
 Tue, 03 Feb 2026 10: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=1Q51=AH=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnDW1-0007pn-6h
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 10:20:13 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e91797a4-00e9-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 11:20:07 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY1PR03MB7873.namprd03.prod.outlook.com (2603:10b6:a03:5af::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 3 Feb
 2026 10:20:04 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 10: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: e91797a4-00e9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wMTs3eujFQGYEh67J2W4onqAPoHbf2fX+LeneIJdShHirS7jhS4pxOCvi4VrFQxB94c+yZWFkvFhzXV0QlS7lycgJy+SHHEdtxNoNnIJ6WljX4JGLaJz09mrjA3j59QXc/79d2nMQ/WlSbBGVHO/Lq3t20gIZLYbbVhsdWELAZPsmHIGjGtSbeiMRmK5n8cFfFrrC/RkAL5HxKd8dJw6E1t8waj4Ge9e+h2ZbZnwM1q++0XQXwgegdz35kRkEZviWHBQ2C4aW+Dc8yOrTH7PMiAxHNUSsJ+NvJ9mNuyUehWgmGh0D8e4S9bTMMvmTSsJ3gLeRrU3l1SRA9JWEQH3Cg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8t4lTy+HnryL6HZIgCoaTVCisKyPk1JgemeOHDe9gGA=;
 b=S6vsrfgt00QhOTKEAIYGjaNm/fBayKqXaiT3E/3l1/MWtVdXyo6yyqlMKAfxotYstrLhhJf2R4NIDkLJTfU7clAhcNgObsxhZWFYNsvsY0PJUTzyiaRWxXeEkR/JQKcoEc1QFxE8f6hMMgN13d7XeiAj73WwvZNYKtTDb8T6/ChwVJgh9Bi9UjzDkzFlC+d/BaZJJZuw2L9jWdFChsHSNUxKRHvB5sOslfRDR9x93yY3mweQpmmzTGdRN/1AJP9gUTg07cfbo8evmyQZ2Mg8okEjrzvcP83jKjmOrlvfgmsIxKaEwcFy1SvAfkmWQNroE037CsA/2KuLX0WLamC1OQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8t4lTy+HnryL6HZIgCoaTVCisKyPk1JgemeOHDe9gGA=;
 b=RjH+vQq87XWn1P47eBDjX/iXA++rL6AWrH/BgBQM3S1ALVK55vpon1L7wKVvJWz7BRlshzxeDHuDCR8Ksag24T0s6vvo8q8nDofNRme9t3fSOX5RA6WGWGhFEzgSVoaM8/V02MaRMYEeewaIyRRQN81VIaiGJ17i+kN5l0q6c88=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 3 Feb 2026 11:20:00 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/domain: adjust limitation on shared_info allocation
 below 4G
Message-ID: <aYHL0CChPShMUtHw@Mac.lan>
References: <20260203101017.56962-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260203101017.56962-1-roger.pau@citrix.com>
X-ClientProxiedBy: MA2P292CA0018.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::8)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY1PR03MB7873:EE_
X-MS-Office365-Filtering-Correlation-Id: 706a1915-6f7e-4c84-e551-08de630dcbb7
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?ZW03cndOOTNoa1Jtb2hlQk9OTm1sNUxYS0dqamQ1UWVZaXZINUZFKzZOK0ox?=
 =?utf-8?B?ekFEUDk3cFFQaFFrcG5jS1lmUWdZSUlEZmpvQW9RY2tYWXlzQncwYnFFbVRU?=
 =?utf-8?B?SGlGVS9TRER3SEZueHRNZEpua1JCRHQvSWtpbnBRUWJIZXJjbWVUbHR4ME1M?=
 =?utf-8?B?Z3BQdjJxNE9BQm9OMUVBRmVXTTFGN2xzRWE5K01pTWNLKzlsMmZ4R1FmZm1X?=
 =?utf-8?B?YlVkM0VLTVo2Z0kxSnA0L0RSZWEzbUliQ09BLzh5RDk3ZGs3dW9BUEN1d0k5?=
 =?utf-8?B?Qml1ZW1IYS80Y3NwNGorSjFZSUlGK0kra0pqTC9zRkVqaWRnYlI3Qi9iY1ln?=
 =?utf-8?B?eFp6Tk1JaGthK3VLcTZ4RmdDblhiaE1RMUsxZmdERndrZUpReWNiN3BhYU04?=
 =?utf-8?B?d1pFKytYclNFZTFsSU51QVB6ZnQ2eEZGWlZLSkZZMzc5Q1Q2akdOUUw1Y2Vo?=
 =?utf-8?B?bks2R2ljL1I1YmVJS1NVZDQzT0FYS1ZYc3lzMC8rUDVGUnFBbm5yUVBzRjlJ?=
 =?utf-8?B?Q1U2a0RzTndJaGxhMzcxMlhOeFV4WTh2dXRKSGhUczBXblI0azFzdTU5di9l?=
 =?utf-8?B?SE9NWEU0UHlNTzRMamJKa0F3MWFUWXJKRlhPelFaWDlVM1pGMUhBTVl0N0I0?=
 =?utf-8?B?NUdOMkFpcDJ4elpwenovaUtPN2JFUCs1Sk5vd2pFNUtsbEpOV1Y5MzMvTk9G?=
 =?utf-8?B?Y1huNUZtdFFIVFloWnB6NW1RN3A5WlRib2NXWlMvTGpyK0prcW9LWUhjY2o1?=
 =?utf-8?B?QWw4VXhJQkFKRmtiSjJFSmJGZkVFUUQ2UzMwa053di9Pd3lhdmFDZ1dsTHJQ?=
 =?utf-8?B?YTZveE9PbU4yWitGWHQyL2NHU29QSGczREpoSG1JenQ3YXAyQ1U4UzFCOTNz?=
 =?utf-8?B?UDZrTUI2T01qUnRhV2EzOFhnRHprQVM3bytKdFJYMXdyNzgzVzBYbEQ2cTJK?=
 =?utf-8?B?U0tneGg2aWFTMGtnNHVLZExiSm95Y2UwLzFnMmFhN0ZMN3I1cFpHQmRBbFZS?=
 =?utf-8?B?TElvckh1dWlSb0xnRlJjd21uaTBnOEtIU2o1ZUJJZEJFSmVtNHhKK1pNL1BQ?=
 =?utf-8?B?Y2xtLzU3N09UTWxhNGVCL0JKKzRCd1lNTUhuNHFrTk9ER1dtc25IbnQ5SEpN?=
 =?utf-8?B?VkFtUGRaakVvUnRpd3hON2xJRE42Qnl3aFBBbHBUSVdRKzhkRWV0bTl1MVhU?=
 =?utf-8?B?V1J0bFhuSDlVSWZ6QWtvUHM4Wi90TEc1aFdsME1WRHNobWVWK2tBU0FJN1hm?=
 =?utf-8?B?TVpDQVlYQkRnUUtiRGt0amZmdGdFUHp1ZVpHRC9QWFpWY0ZqNk8yNXF3YUVM?=
 =?utf-8?B?NHFQZ3h5VkRGV2d6bWN3L2lCbDRyVGErVUMyZkt5NWRveDRxSW9UbmdUaDhj?=
 =?utf-8?B?RG92a0dLeVEwcXNpMXo3UVV2NmxWUlQxeW9ZSDdXZjQwTzFFOGtRRTJqOFVq?=
 =?utf-8?B?aW9LUDNncVIyMEpSS2xzakFaSS9YN2k4Vkw1ZktnTFBPSWgwQ2YrRUk3NHBv?=
 =?utf-8?B?SUI4OFFTYU9tekh1aEhOQ1gxeDN5TnVyM3Z3Q2hOVnhxYjc3andsY3NQREx0?=
 =?utf-8?B?R3grM0dzTXc5SlVQbjVZdUJGMVdzNUtnZkd4U21BYjNQOHNWS3ZKNzl6WFRU?=
 =?utf-8?B?Vi9VWVVQKzE3NEU5SWVHaC9MU2pYVWJ2NHRaUURpQ1BuOWMvbXB1OHdtcVFk?=
 =?utf-8?B?Y0t6WFllVHBIREgrMndLWkhveEFDRGxPNEdBTDl3VFpaS01PUC9xVXFmR3lC?=
 =?utf-8?B?V0x1M2ZzdkNTMC94Nlc1Q1hjZklzTlQ2WXIxVjRSVGE5U0FTZ3FqMi9URGIy?=
 =?utf-8?B?WmNOaVBWUWN1VHpRMGtzcndjQkdVenVPTmpHZ2ZiK09SQURWVEwzYWJRT1BN?=
 =?utf-8?B?aGhiV3grSkVwTTZEdytDODFBcVdyL3NxYnhPVHBFRkUwUVVCWWtGT2NNYmI5?=
 =?utf-8?B?WG1JQzZZV3diRG1DdkNyeWJSaTFEcjFCUkhPcE44V1lXdUx1UFIvSEY4U0tX?=
 =?utf-8?B?dHp1QUFPRUtYUkw2VHlWMkNNNDI1bmpLSml5UldQY1lYWFB3Y295U3hSTG5I?=
 =?utf-8?B?dWFWOHlMWDZnSXRrS1lXU240dnhxaW1MVUdGbzI3dGFYSUpDQ0g3eUJpajZF?=
 =?utf-8?Q?52VI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OFJLaG1SKzJ0eGE5dk94TTlqSUZ0VmhQMDk4QU4rcEtmWTF2d3JLYnpPZFVF?=
 =?utf-8?B?ZURYMkRDN3F0OC9rYjZINlJZS1JrTG5idjAzbEVyd3VkUm95ekZUbHBwL0My?=
 =?utf-8?B?alkydHZrVVZ4SVJFdHdrcElJOU5iazIzU0czeFZ0RTg4bWx5RXQ0UitZU2lY?=
 =?utf-8?B?QU5jMXlvbitCUVpVdTE1aDNzR0w2K201dUVxRUR3YkhIeXp2djVFZ0pieDE5?=
 =?utf-8?B?bUZ2T2ZxQWZHbEZmVWZtRWllV05NaEJ5KzlkMy9nanREOGdYK09IL0pydkx0?=
 =?utf-8?B?dkttUlQrTzBhd1RleW81SXFsMEYrZEJRNTFMeStsYzBkRERsakxmbjdkUEhT?=
 =?utf-8?B?NjFXQWJDbDZ5dXVvS3Y0RWN5aDBJZHdHeGFBQUFqdGlrZVpvdzA3SUZManJS?=
 =?utf-8?B?YTVBNzM2dnV3d1h5MFNCenBMOWpmRVRUMzdTcmE2TS91QndGeTdFYzg3NVhI?=
 =?utf-8?B?YXpXaG4xTWMwRXJWWkNIMU83ZVRaeXUyK2U1bDNFclplRGF1UmN4bjF1bEdY?=
 =?utf-8?B?MklRTVRJdy83Vk5ZaVQ1K0IvVEhCQUpVTUVRQVltR1BRRFV4bEpKbDF4OU00?=
 =?utf-8?B?UmRyNW1aYXJldzFiMG1TYXNMbkVVQUdmbW5UeC81clpyNmQwRFFNN1NzNGdL?=
 =?utf-8?B?cVo5S1ZWTlRCaXZWMEtVTEFWRjQyUUhEU2oyNGVKSWJIQ2dQZSt0ZFlSOUhC?=
 =?utf-8?B?TFhXU2NVZWtIbXp4dDhWM0h6aGNxbjZRKzMvRzVnZGRtMTh0SjcwVXFxR1M2?=
 =?utf-8?B?L0ZGb1gzN0d5ZVRMYlcwZHQ1T0tBcDdwNEM0bVlNcDdmVjUySGQ1MXdMMHJk?=
 =?utf-8?B?L29Sd2pyRkR4VzlqWWVwUGluM2JydG8ySVlqd01UeVdDMDh6S1dOUXppODUv?=
 =?utf-8?B?QTI4bFdhWUFIaHVaaU1HaHFXSzlPWkYxNUdwYmRxcE5kc09PVjJPcWJFN3NT?=
 =?utf-8?B?YUhMQk8vTHkxOVZGN2JEM1BwSXlrN2wrZFkwTktBd2IxaGRteUt0TlhHcjlt?=
 =?utf-8?B?dVhRajR1dHZMMEpJTi9NcHUzb3VhYkM1c2hHZ3pFTnU0RDlyN1VwWWJJcmd5?=
 =?utf-8?B?Um5YMTBHUEVOWW43Q1JTTWVlZWtpaFc3RTdHdjdLTkdBd0lrUVlLeU5DU2lG?=
 =?utf-8?B?OXRKdTN1eWFscE5KOXN4R3ExQWttRDhqSEFTajArcFZTTGtDRmg0dys5d2ps?=
 =?utf-8?B?Q1dCVzE3dDl3THFmU0hZeGF0Zm02WlZNT3FCUk92Sm8reE5QMlBLOURYRkxv?=
 =?utf-8?B?ZmMxekNQNXRyM2FBM05EOEZjSWNXT1BWWUZBemlycDh2bmFlWjIveFVDV29v?=
 =?utf-8?B?dFlnZitqQ0FHa0pEblhHZTlHR1lPdU9nWWZTS0RSWUZKdHg3OUkwRmpaOTFE?=
 =?utf-8?B?dWVMcW03VUlWOW5pUkg5WHRrbHV5cmlYWnBydHkwM1JieHpqei84UEZnKzRz?=
 =?utf-8?B?QnRsbDZxVWVTR3p2NW1GUnI5ZWY4VWwzT0FlR2JySFJEcHRTaWlNL2tYdVRJ?=
 =?utf-8?B?bG5keUZEbjN0V1E0NlQ1Z0h5aFFmRFd0eE83Rk4xWXd3YllhaU1ZbHN4OUZY?=
 =?utf-8?B?NFpDZWRSRHBXNnNpMDlqZ3pGK2JlYVFpSVlPeDJLUEFUREhtZ1FPQ0tWZjVW?=
 =?utf-8?B?ZDkyUW1mNGxzS0dIMEVVSFZMbCtCazFXNHdYdXBYQVFScDl2S3orWGsvM0x5?=
 =?utf-8?B?QXZETHJ0eXRkRGZmUlJ6UTNSUDBzWmxwL3RzT0xVMlJhcXEvdUJ4WDIxVkFU?=
 =?utf-8?B?SDJJUzhFZkZOR0gzdHNaMHFvRUt1Z3loTEZYNFBiZlRGenlvTXUwOHZENzBj?=
 =?utf-8?B?U1FvS2FFYkhWc0EvcEt2dkpXbGw5L1ZKZ3p6ZXRaYkxHaTVScGxtSVYrN1dW?=
 =?utf-8?B?WTVEbWVIRnUyd3ZCTHJyUDZLMWQ5azg5Q3JBUHl4VXdZc05idldzLzBLdlRX?=
 =?utf-8?B?UXdjR2JZQXJQbE8vQkttYlNWWnJGQThYdG4wZzZVV2hnWHBlSklCUHF3N3VG?=
 =?utf-8?B?YjNBQ2ZpSjJxMkl1ZkxZcXIvWDFiWDNwUk5NU0NFYXRPZkhlNUswdnZXV003?=
 =?utf-8?B?eDNWeENyZVFRcmZ3dDFhZ3c2VzRESjJZbzlpQnJ4US9JaGtRTnBocTVXckFM?=
 =?utf-8?B?Tko1UHJQZ0wxaWtHRURjSlcra0wzZHZZTWlkNjNQNW5MVGM3OG5qYTJicWpE?=
 =?utf-8?B?TkFLZnpMTHMzMmJ5a1B4amFkWVVFaHMwWHNxMjRhZjB4bFNtU0dvdjlHb2Ew?=
 =?utf-8?B?ZjBVMVE5YkU2L3JjVUFVeVJKRnBkUkl2WkpVeXJZQkRJQisrdXhEamljZ3Fo?=
 =?utf-8?B?RmhJQUh1TFRkbmM2dGY1dFVTQXBETmdLV1R4ZjZ3NndMc3FSdlc2QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 706a1915-6f7e-4c84-e551-08de630dcbb7
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 10:20:03.9321
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Jxm8Db4Mysyoj0pob0izOxW+kTHcewVbZ5JeBcJc2Wqr6FBT1HCuSort0mzjIYkY36J6tLU3b3bUuI7zhR1eow==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7873

On Tue, Feb 03, 2026 at 11:10:17AM +0100, Roger Pau Monne wrote:
> The limitation of shared_info being allocated below 4G to fit in the
> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> start_info field is 64bits wide.  HVM guests don't use start_info at all.
> 
> Limit the allocation address restriction to 32bit PV guests only.
> 
> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
>  xen/arch/x86/domain.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index edb76366b596..4163568043b1 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -882,10 +882,13 @@ int arch_domain_create(struct domain *d,
>          goto fail;
>  
>      /*
> -     * The shared_info machine address must fit in a 32-bit field within a
> -     * 32-bit guest's start_info structure. Hence we specify MEMF_bits(32).
> +     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
> +     * field within the guest's start_info structure. Hence we specify
> +     * MEMF_bits(32).
>       */
> -    if ( (d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32))) == NULL )
> +    if ( (d->shared_info =
> +          alloc_xenheap_pages(0, is_pv_32bit_domain(d) ? MEMF_bits(32)
> +                                                       : 0)) == NULL )

Sorry, this is wrong, it's too early to know whether the domain is 32
or 64bit.

Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 10:26:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 10:26:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219201.1528132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnDcD-0008P0-B1; Tue, 03 Feb 2026 10:26:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219201.1528132; Tue, 03 Feb 2026 10:26: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 1vnDcD-0008Ot-8O; Tue, 03 Feb 2026 10:26:37 +0000
Received: by outflank-mailman (input) for mailman id 1219201;
 Tue, 03 Feb 2026 10:26: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=AEwO=AH=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vnDcC-0008On-V0
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 10:26:36 +0000
Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com
 [2001:4860:4864:20::2b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d0825bb5-00ea-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 11:26:35 +0100 (CET)
Received: by mail-oa1-x2b.google.com with SMTP id
 586e51a60fabf-40423dbe98bso2419635fac.2
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 02:26:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d0825bb5-00ea-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770114394; cv=none;
        d=google.com; s=arc-20240605;
        b=OHkbBw/eaFUISXsRTIqXLZsVslErQk9BWLO5EyJM8roNzVFOfxhrtfU2cc9CSKM9lO
         m89mw0Rs9gd2R7bVOIPxkhS6GIQB+tevb1rOLdYRMKG0qjTgKxF6Fy/BKKypbFzkcjRC
         01ra7r7RKZ6QYK++l+8F73Bxe2dnS8hzWQmKsyKKUaczmSMsmVivUvbKHy/DRtjFY/yd
         QsbhUPgbfprmVMDE1Aigh01etpPIcj3RJTn4PHe4CVcvTFPR2IB1shZDL0KKu9KiYtqJ
         ENUeHWK4c6xxa3bGdl0bDA+BZ56kYXCVGZP2kFJ02turkEEbkq96i5yOs/wOy4mmAuKp
         ujxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=UvmiU4BCcA/R/wYvoaFpxqROilRUOxKQKuYjsAgBDyA=;
        fh=zrlTA3UCjJGplocK3DRTA0JFdHZeEfA1ajLk+r/BzTQ=;
        b=KnS8PEA1uYwwib9uVtVITjSjD72cxRWqRmg6W1ALNFm7COpIHmRaD09IOeahk++ZJA
         a5Mk1GsZ7XjyarDgRv3NpSOiw2b85F+S1WFoQzQvb0LGYfhIQZpHVPyctSBtOZN+YuYm
         HDtjsDGCrxra0q+XhQ2zZlsh3cmwhoM2e1AiiXALl/JzM8K7wO803ViLcJwaAyppvTh4
         7ilfDKkfxImy1pDTdPlPkloQdxn34QTQZnOk6HNBW4MY8XOcUohqmIuSQTixgWLCfh4j
         qTZP5ZExub6zfL376iGe4PVKZIuuDYNnRBHQOgOzYoJocJDxjLoNzEp2JyIeCPKrSFEf
         xb/Q==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770114394; x=1770719194; 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=UvmiU4BCcA/R/wYvoaFpxqROilRUOxKQKuYjsAgBDyA=;
        b=N792UbLkFih/BDHULvPmwjBAqLPW9wca5AKO1Z+nMdYBAGT0owguqKbDqpV3HpS4dU
         zdAm387tMV0Ii/i4XBFoOU0VuCqZiFsnoWGI6LN+pkfcRChmweaqZ3vb4RSsUfzJwt7P
         1YIYUpsShia6SW/FkyQEaMqOcBk4+59p1/WS8/nwWNd5Rjhqrl1EmfpGZqCvmAHwvcpU
         I3r3M39vc6ppI0E1hDmXQ+AHAzlwlai4v/uyMmhp+mzqCOrmsY9T/SWrdGV95P0Lqfpq
         g1sdudOwNzMy2hwWawrnElSnEcjLSRL2dzgl5BXfSy4f3UwNypTNmVrhF6qdiDEJFniO
         7B8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770114394; x=1770719194;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=UvmiU4BCcA/R/wYvoaFpxqROilRUOxKQKuYjsAgBDyA=;
        b=rbphaCXjqpg/e2RXSqcH6GD2iQRX1j2TuT/SsLjGZSLTHpeTb7UdI8nmIKmNJfzn3e
         13/goEAkjrDkSUsn2p4Cjdn8IdvIyoO+B5U0eixljiQpxPc7fOHQbF7YD7AeEIVC2xzc
         qOKsVzdWDDawKcmZ88WVKQ8GZAARisq/8aFA7dyxPJyTDjKJ491xhMxPffbvlyjwUf3Q
         aEAoZrRKcfP6r7UDEGrUKoUa9bevqGN5wLOw5jYmG+cZ8Wjtki5dYHEo9Hqi+lfdpPVd
         jFJV84WYjLfUz+0Idsf+7WzL1kIKX3e0Rh2F6qlVVye2f2V0g8IPV7nstDtCF84dykOP
         wnHw==
X-Gm-Message-State: AOJu0Yyq4p4OhLtq11mTUj35rkjIuSMv2F0147FjquEKX0Cj92oQI85s
	xbua2ibdVW7XqVc1MRmVeMiWzfCHm9r5rcezaK7F9ByETG6znI6EqmXbTV8Db8queoA7qGDjFF0
	8VdsgyJFY2kbgEIpnhRR+9z5lQSZRYaCHGw13I0w6eA==
X-Gm-Gg: AZuq6aL+ahMfzDiOYcuuEms+Tyj7X+MJ2F39of7vmyyFcWMwSuQBRe3Wfli6rffPN5G
	eiKfYEbUJi/RTOB4l+GYX0ZGkCfRmvly+KB48moDWFP666Jt2qohPpHsbQh1v9dwn3JSjCBGF1Z
	6IUhvbsmkOr22d9K7I0GeBRphec8YFI+GdItVMp88eC29ViJypVB3emdhdceIQJgyohvxBLYRjX
	rfr9eoJOWLV2LUc8MNG9mXp3oxpmYfOpk3qEaH7k8gSGNNBR4+pMtcYJ2lJWbH1ZY5DArZMejVX
	83GakFrHVBpRMfHZXTQGcBICqQ==
X-Received: by 2002:a05:6870:c206:b0:404:3805:1dde with SMTP id
 586e51a60fabf-409a6ab7cafmr8028972fac.8.1770114393851; Tue, 03 Feb 2026
 02:26:33 -0800 (PST)
MIME-Version: 1.0
References: <1f545f1fc56c8e5f898cff688434b6f38fb16ed4.1770109450.git.bertrand.marquis@arm.com>
In-Reply-To: <1f545f1fc56c8e5f898cff688434b6f38fb16ed4.1770109450.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 3 Feb 2026 11:26:21 +0100
X-Gm-Features: AZwV_QgD8LDsWiTcaHlPURipg8GuZPXU2BkZTFTPF6tnNhP8-kL-8mG4iOzOVCM
Message-ID: <CAHUa44Gaz-e_mh71nUKNvDH+QwaHNj_c_JKRapgkwkjdP-fpZQ@mail.gmail.com>
Subject: Re: [PATCH] MAINTAINERS: Add Jens as arm TEE reviewer
To: Bertrand Marquis <bertrand.marquis@arm.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>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Tue, Feb 3, 2026 at 10:05=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Add Jens as arm TEE reviewers so that he is informed of changes in FF-A
> or OPTEE changes in Xen and can review them.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  MAINTAINERS | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 0ceb4bba21cd..ccc25a0e55dc 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -547,6 +547,7 @@ F:  stubdom/
>  TEE MEDIATORS
>  M:     Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>  M:     Bertrand Marquis <bertrand.marquis@arm.com>
> +R:     Jens Wiklander <jens.wiklander@linaro.org>
>  S:     Supported
>  F:     xen/arch/arm/include/asm/tee/
>  F:     xen/arch/arm/tee/
> --
> 2.51.2
>

Thanks, looks good:
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 10:30:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 10:30:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219211.1528142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnDg8-0001ki-U2; Tue, 03 Feb 2026 10:30:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219211.1528142; Tue, 03 Feb 2026 10:30: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 1vnDg8-0001kb-Q9; Tue, 03 Feb 2026 10:30:40 +0000
Received: by outflank-mailman (input) for mailman id 1219211;
 Tue, 03 Feb 2026 10: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=RKol=AH=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vnDg7-0001kV-RG
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 10:30:40 +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 5f56da5d-00eb-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 11:30:34 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS8PR03MB6744.eurprd03.prod.outlook.com
 (2603:10a6:20b:292::23) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 10:30: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%5]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 10:30: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: 5f56da5d-00eb-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bhA5yvmpZE4zW3UILpC95vLObEct038WHF+F2AAEblfwiFbH++zcmoNr8Zf27u2FMHZn7MNTS54B2OQEXEB87iFo/hrGzA+THwasV+2nGshnIWCYQOWRqfkfI6PDf6I/VbWEBqrd9JYdh+CHUlIAt8eVtCYSSplGjXBGspYzmpu8hLNvgCcolDQwM15ULzSRwY9P4J13jQypBqdtPRCN0LIQkwkN49ITJpW9/PqHrjyZb650Qo9mantTW+xlP5cITSvE7+kRVRIG/J6tXNkkTsAfX9UMH/PVWpRss9HA1EC7YOq6fWsLZN7WZ3TPeu8d/543zTddOnYqqxYdIfsVZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZuJlEAEZUQfOv4NBsTAQ+dFXfQEQL1xDAZQMohHfLcs=;
 b=CP3N/h/D5BC6X9hyQMM1hDPetQwK5aMtl3BM5+Nr7Rhm0wNJRKZ5FRlbxwakiqDU91Xwvu5/Tv4S0HM4lJ56jHsMgqAnxNueoS+4XR5L7W5tfu6LWDa2cM+9Spo/xiJeTmQyvixfnutTWD8roALScLZ3Xa83CteRYp7f8AwyhUbZc+Xb82BG2/XWLgOSDXFO/PQS6rNBA5JWMbalwQB2PD/Oqm4+yQoAV5fsXqzaWfpHRNSqR82eYrML6d1EgYuUT3BFK9elggvmzhdRYZ8F0SdtFCv211MjyV0OxDWObUq2Ygxw1npMHVEBt0cc/4qqcKv7iHhURDzT+c7/BD3p0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZuJlEAEZUQfOv4NBsTAQ+dFXfQEQL1xDAZQMohHfLcs=;
 b=h0QcLDJX+YpHHGXKqizfyJptd+8NYiW9I3TliUrdv1vWrX/D0jVVJrhK9T+c9men0uZeItA4ReqRVuUCGZOSiqMStolHqff8qcrZmd7nCX11vGGoyBJDF7B0lQ7zRfnjWMrKaOeZ7FcZ4Dnvphl5KrTss8venJnHQVo4Am68NuUGGrw8sXcx0Y3e8DUhoSUhQb1iKC+MWoXLtI8vGdmnwWURq2RuHJZfOWeGi+qsgzYoq7Y9u0MPPYwChNVcTm5A8Vp02qFVDxUYcafBtLXJwmTBS7XopALqVLidj2CCRvx+tdQub5nFYmAyKzvtKDAQJ81FGTgtuF5S0GLtNDeHzQ==
From: Mykyta Poturai <Mykyta_Poturai@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>, Anthony PERARD
	<anthony.perard@vates.tech>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>, Connor Davis
	<connojdavis@gmail.com>, Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v5 3/5] arm/sysctl: Implement cpu hotplug ops
Thread-Topic: [PATCH v5 3/5] arm/sysctl: Implement cpu hotplug ops
Thread-Index: AQHchGj873UPBMyph02N0fqNmGIWE7VRbWqAgB96AQA=
Date: Tue, 3 Feb 2026 10:30:31 +0000
Message-ID: <17a56445-0c5b-48ef-9adc-3544d06abe3b@epam.com>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
 <54a015e0e47ea311471bad7f13fbf21e14389ef3.1768293759.git.mykyta_poturai@epam.com>
 <00e17b41-f31e-4121-80c8-d4ea2bb02f34@suse.com>
In-Reply-To: <00e17b41-f31e-4121-80c8-d4ea2bb02f34@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_|AS8PR03MB6744:EE_
x-ms-office365-filtering-correlation-id: e1fdb3e1-09e8-4e7d-0275-08de630f4216
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?cDM4eDVtYUNZWGZib0dBWUp5QkhvRWtFQWlZY3hlbUxUSW1SUllnc2tvUzZj?=
 =?utf-8?B?a2l2ZDJpNDVMTEQvOHpaZlN2aGwyZ3BMWkdjeEh4RmMrMW9Cd3U4eVBTVUNR?=
 =?utf-8?B?S2I3enN0R1ZXQVVIWk14c0FneU1BM0F3aUhSRGRIMUU3T3ZFc2ppamJCVGtY?=
 =?utf-8?B?aEZkN3NmQWxaTW1ZaDJSRllXb05qZGxVMlEydjZBRUMyU1VYMW4xZ1FhQ28v?=
 =?utf-8?B?eFYzWXp5elZZUmVSbkE4d3JNZ1MxcWo1QnRVTlZqUWZjQjloNUF4SU14R04v?=
 =?utf-8?B?Y3o4K0g4TzJ1cDBRRElRSm16QXl1eU05Z1JYRE9DZW12bWlBV0FLRit3c1Fk?=
 =?utf-8?B?U0hEN3ZVNndubEc1Qk04d1haOS81Z2QvWUkweXkxL3RUQ0JrcU9SSUZUUVBh?=
 =?utf-8?B?eVJPTmxJSUNpbmNDbTZRMU01NXc3dWdsZ1p3aDU4OGtEMVlBR0RWR1pEdVk1?=
 =?utf-8?B?QnRPK2twcXdBaHpnZE1CbVhaWFpMeDl3WFIwYjFZYm1QUjRVdXhSWHVPMEZm?=
 =?utf-8?B?dllEM1ExNDJKOWxZOHhVOGVpL1VuWmtKR3lPbFZwcTVSTU96RzZXOURWSTZz?=
 =?utf-8?B?Y3hNMUJHc2J6bll1SC9GdUtBQ2p0WGFLcTV2R1VKRlpaTEZYdmlXcU9IY25O?=
 =?utf-8?B?VnBZNXgwQ2xGakkya3JEZjk1RjdDSHBGT3ZjR1MyQlE0blFBTWNsQWVvUUM2?=
 =?utf-8?B?ZThmbmhEZWdwdElrSlNpdXljcVFXMjFCenVxSS9rTnVLTDhnM0d5QnVSV2g4?=
 =?utf-8?B?dTJTUC8rd1dYZjdxeEswM1ROaDVCZXdvUnRSTDlraEsrenBYN0ZLeWxrcFU4?=
 =?utf-8?B?SmlOeTI2SEdGcEEyUmRJTzRwV0k5OWJ1dnhRem9kdXRSdy9yNmI5b05aQWQz?=
 =?utf-8?B?N3VoL29LQXJrYkhlU1ljcGtrOHhqeHR1TTdJMXZSNG9SendOSW5RT3ZIME1h?=
 =?utf-8?B?eFB5bGhLaEtaWjdRWGdRUzYrTTVHdlR4UEVCNEJlOHlKSmMxeWptaFdhWVcz?=
 =?utf-8?B?SFF0NkJEaHRJMW1nWlZqQXZObkZDaHBGZ0FxU1lNTHI2SEpNa0I4S1hUbHgz?=
 =?utf-8?B?dnNFUklpSFpiNGpUR2p5MGQ3TmRteno4RTlodUkwR3NXT3hGcGVnOUxpOE1z?=
 =?utf-8?B?djl2U09HeUNHTks0VkRMM3BoRm40UTk5ZDFFc2dQUzc3Q05iY2hRSmt6V1I1?=
 =?utf-8?B?U2lKOTd4Q3BZNnZqM0gyNHIvV1ZpRTEvN2liWkpFMFdtWDR3bUYzRitOL3ZY?=
 =?utf-8?B?WUgxYmtVZFZZYUF1VVJjV0xwUEhEUUVMMEVhZFJsY0FCdk5MUEl1RHhuUzV4?=
 =?utf-8?B?YytWU1J2dDJNLzE3ZTRqNktUT2cyakVXVy9TM1FOTDArWVlSb0Jzem8zeUVk?=
 =?utf-8?B?WDh2Z1ZjcFk5SzFKRFFuTkJRMHdiM3NKN2dZM3ZjeXhkbXQyNStMeVVvUy9w?=
 =?utf-8?B?ZnMrN3BHYWlMY2wwenJEN08zRGh5NkZuKzZTUnBQT2dTQ3QyWndQdXA2NUxs?=
 =?utf-8?B?a3NSM002NjJWR3Jqc1o2bStLN0Nrb3E5S0ZmSVA0eTlaRTlCSWZWdVVYQkc2?=
 =?utf-8?B?bC9hZ1pWVDBZNlBOVHJyaGYwQm1KSnJFSFpjbHNMb3B0QkxQbXJtRitJL1Vx?=
 =?utf-8?B?TmFBT2NVUGVQOHFqc2d1Mms0NitQREdNbU55NUtzWVkxRDIvaVladm1RTVlB?=
 =?utf-8?B?Mk5MZWVNWWZRMlV0MTNDRVpjSmNleW95aVFSR3dyM2NPQW5xTzFCYlNDN1ZT?=
 =?utf-8?B?VXJDc0ZxSU5YZ1NESGovVSt1cGo0ekpvUDFTNVFiU29SMG12dDhpTXBWSWtZ?=
 =?utf-8?B?OGE0cW5xT0xNVUovazY1YXRsZGRzQTJCYVRBZlJHZGxPTXVndlN6V29TV0Y2?=
 =?utf-8?B?OGJabjNHWGRuNlJabHhENVFacHVhWW5DUGhnL0NpOVllMHIwT3lyWnFaSzhr?=
 =?utf-8?B?L29mck5BNW9RRFpoU2tCNVZPaFNwNktGUkFYdGlZVGtvY04ybkgxdnZnNUNZ?=
 =?utf-8?B?ZFdYcjVmcmZXMlhvTU5wRTNnU3EzTXJEblVCQjVvQnA3VFNLYkUxWnJJQ0th?=
 =?utf-8?B?TDZMUmpVeStvNEJGNWgvTlRBdElPMk91VTlhZU5ucGYxWFhhSTMrZjdZd0c4?=
 =?utf-8?B?R2ZyVkNQVitjdXVwaFNEZ0dtZVR0KzdwdWhnZ3BCcVhka2FZSlcrQmRUei9w?=
 =?utf-8?Q?VHJp9hcD55ZC0hVA9/jSHbA=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)(7416014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?bnVvMWEyMFdkNFBHRG9EK1lFV3hvbUl3ME9TbTVFTXlldzRrWnVZVHFJOUlW?=
 =?utf-8?B?UTJJNU9EKzNWNGhlNmZQemwzU1k1cks4b2gyR2c1TWpIZzJUL0c2UXl1M0xU?=
 =?utf-8?B?Yk01WUVGcnVnMmlpS0E0OGRybHQwL3NJU3ViZ0F4aG1WM1o5VHh2QUZ6c2xB?=
 =?utf-8?B?bFVIdzhJNzNpa0dPZU9qT0VvRWl3cG03bGNQM0VWajlwQTNuUEJoSFdJZlZI?=
 =?utf-8?B?aFY3TDZDMys4dVBacXU5bGZyd2FncnMvWWt5aGp3aWdvVHduMldXSmNnL2Jy?=
 =?utf-8?B?WldvMCs2OFE0aGtwdlZHL2doQm4zNVNPVERrZlo3aEY5eU5JaWVsaUQ5dE1U?=
 =?utf-8?B?TGgwa1p0c245cVIvdjd3VWNwYjIyY29QWVoxLy8wTlBPc0t1Qk5Zc2xxQ01L?=
 =?utf-8?B?a0tjVk44ZFAvQWZzV2toM0JVK3pGWHNtU0ZFeUdvVldnejNzVExEZkVObEdL?=
 =?utf-8?B?NnBIYS84NXNhV3pmQnZjZTRPR0FMUzZTMjBhWTIzZkhHRnp6cG1MUnpBWHNm?=
 =?utf-8?B?dXlPaHNxbDBMZytHZmJ2Ym9oTXUzMlBsT2RZR1R4QXdRajU3emFJVTBremJB?=
 =?utf-8?B?RnhLVEdrMW00Z2N3U0VIM0ZhK1RoRDJmNHdxYlZnOU4yZDV2V1h0d2ovZlRi?=
 =?utf-8?B?WEh2UC82dXZsd1oyVjNlRXUwOVltYmZ5UklOTFVRTDNOKzdqZHkzZGwvWDdr?=
 =?utf-8?B?LzYvb3V3K1BUK3FDS0NuTjV3MWpZZ1BiQWNZMDRVMGVVOXhXbWlRd1VCeUkr?=
 =?utf-8?B?d2Z3Lytib3hQK3dRemp1NXBHY0IrM3dPUWhLdHBVYldLQ08wd09uRXdMS0lQ?=
 =?utf-8?B?eDMxdUorKzkxZmg1TmhuNGxVd1U3WU5VbFpVemg4aFRFUEFJSXdPcW9qRFdC?=
 =?utf-8?B?Nk82VldBbXBVMzRLRHNlMVlCQmhvcmNTVU9LM1JnTDNzZHZNRys0VklQWHpv?=
 =?utf-8?B?cjliRk53Qlk2VHV2eEN3RGNkY2MzR3Fibmpud2sreVQ3NlFwSS9tOGpkYmcw?=
 =?utf-8?B?STBSUjl5QXkxdUgrR09IWk9iNFlaRlpnYUYvelowd3kyd0RPTlB2dGNIRkUw?=
 =?utf-8?B?ZmQ3WFcrUHZHeWExcE5BRU5rb1ZsWkkvR2JTVWdMYStBY1o3cWs3N0Vqbm11?=
 =?utf-8?B?TVc0cHpoT0V2bFA4RmJ4bm1PQ2kvdzdPZTAxVW91TnFkNnl2eEtSbFAxVjI0?=
 =?utf-8?B?blJHOWczMDBGcVp2UUM1cDNHNkZyb3B5TytBU2tzQkFvSExJYmhVZXUwc0Nn?=
 =?utf-8?B?MlNnOHErVURtSDV6NVFrWU1XWmgzRkxOb092OVFGeUpmNDM0WHdhZGZnYzJz?=
 =?utf-8?B?cWJMQXJXa1NtTUYrOVE1c2RqRytJaGYxa0FRS0Fqb3cxRUdqbXNvSUZMMFBY?=
 =?utf-8?B?ZDJqa0tJeVRrT3RCbEladE9Da3F2QklSUWtiV3h0NVdpSW5rMkh3dnNYbFAw?=
 =?utf-8?B?ZU4wMEFFUnlCWWw5cUR2TzJZQkpqYXhtRnFzYys5NUZ2VVVCK2IrdGF4aFFZ?=
 =?utf-8?B?MlY3UFYreXR3azJHT2R3QjdKc0dBdFZzWTNrQ0NsNVE0WWZtODFrR0RHb1ZS?=
 =?utf-8?B?T3EwWnd2L3NrNzVkelRERTY1cThpSGp3QmlGVEhMUEVXTVdXL2FMTVZnZ0ND?=
 =?utf-8?B?Um5nZFVVOHdUdFV2Zys5N2lPRDU3QmhpTjFGTkQyWGV0Y1ZEK0dqbFFCS0pj?=
 =?utf-8?B?ODVOWXRTSjRQNTdZV3BlbE1ISEVROFhSczY5NmtnZzFFWmh0RmY0VmpXYnF1?=
 =?utf-8?B?TFVPeXhXcXB4YkQzN2hKbytaVXdCQ1NwRXpRNy9VVExIRlBtUkE1aVJOZmNO?=
 =?utf-8?B?cGFFbTRJYjdSVjJsOXRQUjNIS0VWOC9MQzBVRDRYam9rTEYrTEtIV1dXa1Iv?=
 =?utf-8?B?SzJYV0xnQlVUM2hMSlI5NTFkYXRhb3k1S2RYd1BwejVGeHptVHNrT1hwdnl1?=
 =?utf-8?B?WCtvR0xhcGxUUjZYUHFSL1hndFdwY1R4QVNuaUd0d1BFbENRTFVoNHdlT21r?=
 =?utf-8?B?OTY0Tjc2RHVJZEtMY0hKOXNWeFo1VFoxbXJjRWJJejcxNlBGa3JsMWhzUVFB?=
 =?utf-8?B?bGlEcVZCbExTNkdTZ214S0ZVNGtWRXJhRVVQSWVPOXZKSTJqam1YRWpIUWdZ?=
 =?utf-8?B?ZjVMa1RUR0RRU3lINldSK0MybWVPcGduNWZ1OWpYb09EZmZDZmJmNmFNYk9a?=
 =?utf-8?B?dTZBSkY3UXZQcFZ2dHkxYU5Jelc0bDliZ2JrS2s0bjBHTzFQcjRuWTY3L2NU?=
 =?utf-8?B?cElaRUdHcjE0eW42Tklwa2VIMXNDd2FWc1NzTVlmMzNJdXpwWHRzcTcwelBw?=
 =?utf-8?B?SWlCSHZlWWh4c2RGcGFKa1FMejFuTTJRdDk0WjFCNzFSMGRPMmJaSVA2M29P?=
 =?utf-8?Q?3UpWS1K3KEXkWSLQ=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <1D0C08310B0BE344A5BBFAE9EF233A75@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: e1fdb3e1-09e8-4e7d-0275-08de630f4216
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Feb 2026 10:30:31.7004
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: LFyGf+FM4bIrXip6OlYWwDTYsfFGQraGjiA55k+86TwK4AszEDxIYfiz+ahMUqmmhNXIgwrmDD7NeSWzzUOqmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6744

T24gMTQuMDEuMjYgMTE6NDksIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMy4wMS4yMDI2IDA5
OjQ1LCBNeWt5dGEgUG90dXJhaSB3cm90ZToNCj4+IE1vdmUgWEVOX1NZU0NUTF9DUFVfSE9UUExV
R197T05MSU5FLE9GRkxJTkV9IGhhbmRsZXJzIHRvIGNvbW1vbiBjb2RlIHRvDQo+PiBhbGxvdyBm
b3IgZW5hYmxpbmcvZGlzYWJsaW5nIENQVSBjb3JlcyBpbiBydW50aW1lIG9uIEFybTY0Lg0KPj4N
Cj4+IFNNVC1kaXNhYmxlIGVuZm9yY2VtZW50IGNoZWNrIGlzIG1vdmVkIGludG8gYSBzZXBhcmF0
ZQ0KPj4gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZ1bmN0aW9uLg0KPj4NCj4+IEZvciBub3cgdGhp
cyBvcGVyYXRpb25zIG9ubHkgc3VwcG9ydCBBcm02NC4gRm9yIHByb3BlciBBcm0zMiBzdXBwb3J0
LA0KPj4gdGhlcmUgbmVlZHMgdG8gYmUgYSBtZWNoYW5pc20gdG8gZnJlZSBwZXItY3B1IHBhZ2Ug
dGFibGVzLCBhbGxvY2F0ZWQgaW4NCj4+IGluaXRfZG9taGVhcF9tYXBwaW5ncy4gIEFsc28sIGhv
dHBsdWcgaXMgbm90IHN1cHBvcnRlZCBpZiBJVFMsIEZGQSwgb3INCj4+IFRFRSBpcyBlbmFibGVk
LCBhcyB0aGV5IHVzZSBub24tc3RhdGljIElSUSBhY3Rpb25zLg0KPiANCj4gRm9yIGFsbCBvZiB0
aGVzZSAibm90IHN1cHBvcnRlZCIgY2FzZXMsIHdoYXQgaWYgYSB1c2VyIG5ldmVydGhlbGVzcyB0
cmllcz8NCj4gV291bGRuJ3QgdGhlIHJlcXVlc3QgYmV0dGVyIGJlIG91dHJpZ2h0IGRlbmllZCwg
cmF0aGVyIGxlYXZpbmcgdGhlIHN5c3RlbSBpbg0KPiBhIHF1ZXN0aW9uYWJsZSBzdGF0ZT8gSG1t
LCBJIHNlZSB5b3UgLi4uDQo+IA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL0tjb25maWcNCj4+ICsr
KyBiL3hlbi9hcmNoL2FybS9LY29uZmlnDQo+PiBAQCAtNyw2ICs3LDcgQEAgY29uZmlnIEFSTV82
NA0KPj4gICAJZGVmX2Jvb2wgeQ0KPj4gICAJZGVwZW5kcyBvbiAhQVJNXzMyDQo+PiAgIAlzZWxl
Y3QgNjRCSVQNCj4+ICsJc2VsZWN0IENQVV9IT1RQTFVHIGlmICFURUUgJiYgIUZGQSAmJiAhSEFT
X0lUUw0KPiANCj4gLi4uIG1ha2UgdGhlIHNlbGVjdCBjb25kaXRpb25hbC4gQnV0IGRvIFRFRSwg
RkZBLCBhbmQgSEFTX0lUUyBlYWNoIG1lYW4gdGhlDQo+IGZlYXR1cmUgaXMgYWN0dWFsbHkgaW4g
dXNlIHdoZW4gdGhlIGh5cGVydmlzb3IgcnVucz8NCj4gDQpUaGUgd2F5IGludGVycnVwdHMgYXJl
IHJlcXVlc3RlZCBpbiB0aGVzZSBtb2R1bGVzIGNhdXNlcyBYZW4gdG8gY3Jhc2ggDQp3aGVuIHRy
eWluZyB0byBvZmZsaW5lIGEgY3B1LiBJdOKAmXMgYSBmYWlybHkgc2ltcGxlIGZpeCBhbmQgSSBw
bGFuIHRvIA0Kc2VuZCB0aGVtIGV2ZW50dWFsbHkuIEnigJl2ZSBkZWNpZGVkIHRvIG9taXQgdGhl
bSBub3cgYW5kIGRvIHRoZXNlIGZpeGVzIA0Kb25seSBmb3Igc3VwcG9ydGVkIGNvZGUgdG8ga2Vl
cCB0aGUgc2VyaWVzIGZyb20gYmFsbG9vbmluZyB3aXRoIHRvbyBtYW55IA0KcGF0Y2hlcy4NCg0K
Pj4gKyAgICBpbnQgcmV0ID0gY3B1X3VwKGNwdSk7DQo+PiArDQo+PiArICAgIC8qIEhhdmUgb25l
IG1vcmUgZ28gb24gRUJVU1kuICovDQo+PiArICAgIGlmICggcmV0ID09IC1FQlVTWSApDQo+PiAr
ICAgICAgICByZXQgPSBjcHVfdXAoY3B1KTsNCj4+ICsNCj4+ICsgICAgaWYgKCAhcmV0ICYmIGFy
Y2hfc210X2NwdV9kaXNhYmxlKGNwdSkgKQ0KPiANCj4gQXMgeW91IHZhbGlkbHkgbm90ZSBpbiBh
IGNvbW1lbnQgaW4gZG9fc3lzY3RsKCksIFNNVCBpcyBhbiBhcmNoLXNwZWNpZmljIGNvbmNlcHQN
Cj4gYW5kIHBlcmhhcHMgZXZlbiBhbiBhcmNoLXNwZWNpZmljIHRlcm0uIEhlbmNlIHVzaW5nIGl0
IGluIHRoZSBuYW1lIG9mIGFuIGFyY2gNCj4gaG9vayBmZWVscyBpbmFwcHJvcHJpYXRlLiBQbHVz
IC0gdGhlIGhvb2sgY291bGQgYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMuIFdoYXQNCj4gdGhl
IGFyY2ggbmVlZHMgdG8gaW5kaWNhdGUgaXMgd2hldGhlciB0aGUgQ1BVIHRoYXQgd2FzIGJyb3Vn
aHQgdXAgbWF5IGFjdHVhbGx5DQo+IHN0YXkgb25saW5lLiBUaGF0IG1vcmUgZ2VuZXJpYyBwdXJw
b3NlIGlzIHdoYXQgaW1vIHRoZSBuYW1lIHdhbnRzIHRvIGNvdmVyLg0KPiANCg0KV291bGQgYXJj
aF9jcHVfb25saW5lX2FsbG93ZWQoKSBiZSBva2F5LCBvciBtYXliZSB5b3UgaGF2ZSBzb21ldGhp
bmcgDQptb3JlIHNwZWNpZmljIGluIG1pbmQ/DQoNCg0KPj4gKyAgICAgICAgY2FzZSBYRU5fU1lT
Q1RMX0NQVV9IT1RQTFVHX1NNVF9FTkFCTEU6DQo+PiArICAgICAgICBjYXNlIFhFTl9TWVNDVExf
Q1BVX0hPVFBMVUdfU01UX0RJU0FCTEU6DQo+PiArICAgICAgICAgICAgLyogVXNlIGFyY2ggc3Bl
Y2lmaWMgaGFuZGxlcnMgYXMgU01UIGlzIHZlcnkgYXJjaC1kZXBlbmRlbnQgKi8NCj4+ICsgICAg
ICAgICAgICByZXQgPSBhcmNoX2RvX3N5c2N0bChvcCwgdV9zeXNjdGwpOw0KPj4gKyAgICAgICAg
ICAgIGNvcHliYWNrID0gMDsNCj4+ICsgICAgICAgICAgICBnb3RvIG91dDsNCj4gDQo+IEkgd29u
ZGVyIGlmIGl0IHdvdWxkbid0IGJlIG5lYXRlciBmb3IgdGhpcyBhbmQgYWN0dWFsbHkgYWxzbyAu
Li4NCj4gDQo+PiArICAgICAgICBkZWZhdWx0Og0KPj4gKyAgICAgICAgICAgIHJldCA9IC1FT1BO
T1RTVVBQOw0KPj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiANCj4gLi4uIHRoaXMgdG8gZmFsbCB0
aHJvdWdoIHRvIC4uLg0KPiANCj4+ICsgICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgIGlmICgg
IXJldCApDQo+PiArICAgICAgICAgICAgcmV0ID0gcGx1ZyA/IHhzbV9yZXNvdXJjZV9wbHVnX2Nv
cmUoWFNNX0hPT0spDQo+PiArICAgICAgICAgICAgICAgICAgICAgICA6IHhzbV9yZXNvdXJjZV91
bnBsdWdfY29yZShYU01fSE9PSyk7DQo+PiArDQo+PiArICAgICAgICBpZiAoICFyZXQgKQ0KPj4g
KyAgICAgICAgICAgIHJldCA9IGNvbnRpbnVlX2h5cGVyY2FsbF9vbl9jcHUoMCwgZm4sIGhjcHUp
Ow0KPj4gKyAgICAgICAgYnJlYWs7DQo+PiArICAgIH0NCj4+ICsjZW5kaWYNCj4+ICsNCj4+ICAg
ICAgIGRlZmF1bHQ6DQo+PiAgICAgICAgICAgcmV0ID0gYXJjaF9kb19zeXNjdGwob3AsIHVfc3lz
Y3RsKTsNCj4gDQo+IC4uLiBoZXJlLiAoTWluaW1hbGx5IHRoZSBlYXJsaWVyIGRlZmF1bHQgY2Fz
ZSB3YW50cyB1bmlmb3JtbHkgZm9yd2FyZGluZyB0bw0KPiB0aGUgYXJjaCBoYW5kbGVyLCBvciBl
bHNlIGFyY2gtc3BlY2lmaWMgYWRkaXRpb25zIHdvdWxkIGFsd2F5cyByZXF1aXJlDQo+IGFkanVz
dG1lbnQgaGVyZS4pDQo+IA0KPiBKYW4NCg0KV291bGQgaXQgYmUgb2theSB0byBtaXggZ290byBh
bmQgc3dpdGNoIGxpa2UgdGhpcywgb3IgaXMgaXQgdG9vIGNvbnZvbHV0ZWQ/DQoNCiAgICAgICAg
IGNhc2UgWEVOX1NZU0NUTF9DUFVfSE9UUExVR19PRkZMSU5FOg0KICAgICAgICAgICAgIHBsdWcg
PSBmYWxzZTsNCiAgICAgICAgICAgICBmbiA9IGNwdV9kb3duX2hlbHBlcjsNCiAgICAgICAgICAg
ICBoY3B1ID0gX3AoY3B1KTsNCiAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgZGVmYXVs
dDoNCiAgICAgICAgICAgICBnb3RvIG91dGVyX2RlZmF1bHQ7DQogICAgICAgICB9DQoNCiAgICAg
ICAgIGlmICggIXJldCApDQogICAgICAgICAgICAgcmV0ID0gcGx1ZyA/IHhzbV9yZXNvdXJjZV9w
bHVnX2NvcmUoWFNNX0hPT0spDQogICAgICAgICAgICAgICAgICAgICAgICA6IHhzbV9yZXNvdXJj
ZV91bnBsdWdfY29yZShYU01fSE9PSyk7DQoNCiAgICAgICAgIGlmICggIXJldCApDQogICAgICAg
ICAgICAgcmV0ID0gY29udGludWVfaHlwZXJjYWxsX29uX2NwdSgwLCBmbiwgaGNwdSk7DQogICAg
ICAgICBicmVhazsNCiAgICAgfQ0KI2VuZGlmDQoNCiAgICAgZGVmYXVsdDoNCm91dGVyX2RlZmF1
bHQ6DQogICAgICAgICByZXQgPSBhcmNoX2RvX3N5c2N0bChvcCwgdV9zeXNjdGwpOw0KICAgICAg
ICAgY29weWJhY2sgPSAwOw0KICAgICAgICAgYnJlYWs7DQogICAgIH0NCg0KDQoNCi0tIA0KTXlr
eXRh


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 11:00:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 11:00:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219226.1528151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnE8w-0006DI-0v; Tue, 03 Feb 2026 11:00:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219226.1528151; Tue, 03 Feb 2026 11: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 1vnE8v-0006DB-Ud; Tue, 03 Feb 2026 11:00:25 +0000
Received: by outflank-mailman (input) for mailman id 1219226;
 Tue, 03 Feb 2026 11:00: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=mMyt=AH=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vnE8u-0006D5-Cy
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 11:00:24 +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 88e419f4-00ef-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 12:00:22 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-385c6c727fcso51697381fa.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 03:00:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88e419f4-00ef-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770116421; cv=none;
        d=google.com; s=arc-20240605;
        b=N61g7jZNWntS2zCLbWpqb6MskKCBb9KpaCweI/qWNIH8IE312vHWunQtQt5+LWTRyA
         eXFYiOVi5ahaVJsqwU+5W382hwS6vac7zZd76qXul1CnEmN325V1MdsxF0nqdavkTkSC
         Qt7dGswP/hZXWRLa2UHEy5xRcqrfpaPSaYTC5HirlxUXHQLYAXqyMSR3Oe7gFCK+nlZJ
         ReTgL2yTMdrf2NBCKu8zqYn3d6lPpxWP55qh8VBgicx1Z+VE26Dq7oAOBI5QriRE3WTP
         7jTqlBbC0kk1DVwTz9+OYMNEOIN3IpBqPJCjmhEdKTZjgA9BmhFOiXlbZmeKz+LlaaJM
         lhrw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=jIxlsfW7bCP8xx7xyp7U8w8Ij3LEG65Yj25nxXi5zCI=;
        fh=1+BAPob5BoQkkpmA3P9c5RHtJP6+f4C/krYhKM3WBxQ=;
        b=eHIgMa8H58NLOTaJzrvHyk75fkT1B8zpyDroWsB75pBK8XzMBbqKX4lnCzb1IxbOnE
         OYqKc4ieoinYrSfRYUiGYw7q03QgxC39VfR33uCxdCg0fQksvXPOetqdE4wGOEFp16Ee
         H1QH1mIc83JuBzgSXlbymfLCKOIkSrP31q7J7CTitC1RL5quU045Q5sUNOpVnPmkKdhy
         pOmGLt1we6uc1y4NyqOci+n0rBZXbxOlmg4nkRLwBLlKVcdWUjunJ3o8x6Y/uDtu/o7a
         m6h3nMvIpY+aClOFo4gcKy2h4s4qAZkFOE/TZPz8xsmWusbXASeX9mW65flqY+CE66Ll
         tb6g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770116421; x=1770721221; 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=jIxlsfW7bCP8xx7xyp7U8w8Ij3LEG65Yj25nxXi5zCI=;
        b=NsgLqvJhaZIYCPbKBWavXWV32wChO63LhbbvJSrQHvpsEigkhkj/Ufi7lEnKxidP+G
         WjF2sU9GUoXfoSJs3RQGL62EOaebGQGMpoCN4pqQik+ZmIw//ccwVp6rkvFoaCoolWN1
         ouPAOEk701xc2YOtVJYR4EIGA0TTAzGOKbMAn7iwIEIldnR/Kes6tPl2eVQC8LtsBB0O
         UQyokihiXnWRHEB4usyuDqCKCtCDo0Dt1LiNDLPICfhhitipBQUYMlaMEHJ2oOfG6MSC
         kwf8CllPoaJYRerJD23qu1vWex/6BXIljpL/cDREGbftanydgI54PHtCGH3UfdvUNwXT
         Vs0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770116421; x=1770721221;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=jIxlsfW7bCP8xx7xyp7U8w8Ij3LEG65Yj25nxXi5zCI=;
        b=LSAUl4kQPBGfrEoF4qrHQtfnwm0s1putU1dQVe49mm1HbHmsoKNE9W4lxRvccekKwa
         GRZ1qQL8YIxWtZ/XEVgOfRS6CRKAYClDvN+klpoT+UNGrH3tGETzosyWrScT2t56gLZT
         qIS0fdHDDYnB/Nt5YHDk79o4mYUICyJxEE7zTyOKOTm8D2zrdqicUIFNBVUlEfgmU+Aq
         lzmnfg0xo9iiQ14yFoIQVZqZ0KjsPAsWl/5J/IvggEb3KQcVeqUeQ+dX3uNioJwHOVTo
         WEU+QONprnQBuJ89ANyc+r4ebg5zCIfZBhI/pioHOe/gTpzfQw0EoRq4VK0aBApXIpdn
         WV/A==
X-Gm-Message-State: AOJu0YzfrBqkvl1kVYy/feYs/2AVy7QZKBMCqGy+nf1rO8pN6YYSq0oX
	tBFd8KBA2tnpL18eWldT1X4iA8ZWIv1I400qF/O9bW5yGnEuh5AtJz2deZsAZ+FtAyliapN5Xcd
	oefE2zo644ni/S5wvvHMYfcAddMGEXpI=
X-Gm-Gg: AZuq6aKhQwQimA+TkAgtsfuIoen/UB0VpOT8PDzrwOBtaQs+1CJXmaeA0AuubL1VyWm
	Eobw1z2zlgUt9D5kSpiJmHHxp7hnsN1LKXU39sNESsxU1W5ejM8oZEcxDWw1CG0DK3P4rUvAgoQ
	FLVI16nSkvou4vbSUhp6tyKFxOuCyU2JK8W1URcTFE/cGRBDJZ+HZQfrXyrNCcGYNQP3Zw1N0zN
	RZZnMWmcXYlHQahWrBZhY7Th3yNhAg+E3t8LGLWGEBI1Qp7vLu6si1lTbRpkosEITKsDw==
X-Received: by 2002:a2e:a7cf:0:b0:386:7dac:89f0 with SMTP id
 38308e7fff4ca-3867dac8a24mr16567071fa.28.1770116420924; Tue, 03 Feb 2026
 03:00:20 -0800 (PST)
MIME-Version: 1.0
References: <cover.1765472890.git.mykola_kvach@epam.com> <2fade2b96128053fbe3ed59f1d5e3444b32b96c3.1765472890.git.mykola_kvach@epam.com>
 <7c93f37d-3699-454e-abb9-4499b08d0654@gmail.com>
In-Reply-To: <7c93f37d-3699-454e-abb9-4499b08d0654@gmail.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Tue, 3 Feb 2026 13:00:09 +0200
X-Gm-Features: AZwV_QiEin1Bos7mgMm2QFJkMNpsSa5ydoN8i0Vz9qxxBrRQS7WI176WLOsU_Gs
Message-ID: <CAGeoDV-DsyPzeR-ZbOFNRGq68OVh+W_G8cLume8m1y1jKEst2w@mail.gmail.com>
Subject: Re: [PATCH v7 04/12] xen/arm: gic-v3: add ITS suspend/resume support
To: Oleksandr Tyshchenko <olekstysh@gmail.com>
Cc: xen-devel@lists.xenproject.org, Mykola Kvach <mykola_kvach@epam.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	Bertrand Marquis <bertrand.marquis@arm.com>, Michal Orzel <michal.orzel@amd.com>, 
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, 
	Anthony PERARD <anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>, 
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Oleksandr,

Thanks for the review.

On Sat, Jan 31, 2026 at 7:00=E2=80=AFPM Oleksandr Tyshchenko
<olekstysh@gmail.com> wrote:
>
>
>
> On 11.12.25 20:43, Mykola Kvach wrote:
>
> Hello Mykola
>
> > From: Mykola Kvach <mykola_kvach@epam.com>
> >
> > Handle system suspend/resume for GICv3 with an ITS present so LPIs keep
> > working after firmware powers the GIC down. Snapshot the CPU interface,
> > distributor and last-CPU redistributor state, disable the ITS to cache =
its
> > CTLR/CBASER/BASER registers, then restore everything and re-arm the
> > collection on resume.
> >
> > Add list_for_each_entry_continue_reverse() in list.h for the ITS suspen=
d
> > error path that needs to roll back partially saved state.
> >
> > Based on Linux commit: dba0bc7b76dc ("irqchip/gic-v3-its: Add ability t=
o save/restore ITS state")
> > Signed-off-by: Mykola Kvach <mykola_kvach@epam.com>
> > ---
> >   xen/arch/arm/gic-v3-its.c             | 91 ++++++++++++++++++++++++++=
+
> >   xen/arch/arm/gic-v3.c                 | 15 ++++-
> >   xen/arch/arm/include/asm/gic_v3_its.h | 23 +++++++
> >   xen/include/xen/list.h                | 14 +++++
> >   4 files changed, 140 insertions(+), 3 deletions(-)
> >
> > diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> > index 34833166ad..08a3d8d1ef 100644
> > --- a/xen/arch/arm/gic-v3-its.c
> > +++ b/xen/arch/arm/gic-v3-its.c
> > @@ -1209,6 +1209,97 @@ int gicv3_its_init(void)
> >       return 0;
> >   }
> >
> > +#ifdef CONFIG_SYSTEM_SUSPEND
> > +int gicv3_its_suspend(void)
> > +{
> > +    struct host_its *its;
> > +    int ret;
> > +
> > +    list_for_each_entry(its, &host_its_list, entry)
> > +    {
> > +        unsigned int i;
> > +        void __iomem *base =3D its->its_base;
> > +
> > +        its->suspend_ctx.ctlr =3D readl_relaxed(base + GITS_CTLR);
> > +        ret =3D gicv3_disable_its(its);
> > +        if ( ret )
> > +        {
> > +            writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
> > +            goto err;
> > +        }
> > +
> > +        its->suspend_ctx.cbaser =3D readq_relaxed(base + GITS_CBASER);
> > +
> > +        for (i =3D 0; i < GITS_BASER_NR_REGS; i++) {
> > +            uint64_t baser =3D readq_relaxed(base + GITS_BASER0 + i * =
8);
> > +
> > +            if ( !(baser & GITS_VALID_BIT) )
> > +                continue;
> > +
> > +            its->suspend_ctx.baser[i] =3D baser;
> > +        }
> > +    }
> > +
> > +    return 0;
> > +
> > + err:
> > +    list_for_each_entry_continue_reverse(its, &host_its_list, entry)
> > +        writel_relaxed(its->suspend_ctx.ctlr, its->its_base + GITS_CTL=
R);
> > +
> > +    return ret;
> > +}
> > +
> > +void gicv3_its_resume(void)
> > +{
> > +    struct host_its *its;
> > +    int ret;
> > +
> > +    list_for_each_entry(its, &host_its_list, entry)
> > +    {
> > +        void __iomem *base;
> > +        unsigned int i;
> > +
> > +        base =3D its->its_base;
> > +
> > +        /*
> > +         * Make sure that the ITS is disabled. If it fails to quiesce,
> > +         * don't restore it since writing to CBASER or BASER<n>
> > +         * registers is undefined according to the GIC v3 ITS
> > +         * Specification.
> > +         *
> > +         * Firmware resuming with the ITS enabled is terminally broken=
.
> > +         */
> > +        WARN_ON(readl_relaxed(base + GITS_CTLR) & GITS_CTLR_ENABLE);
> > +        ret =3D gicv3_disable_its(its);
> > +        if ( ret )
> > +            continue;
>
> If ITS fails to disable (quiesce), the code skips restoration and ITS
> remains in an unconfigured state. However, immediately after the loop ...
>
>
> > +
> > +        writeq_relaxed(its->suspend_ctx.cbaser, base + GITS_CBASER);
> > +
> > +        /*
> > +         * Writing CBASER resets CREADR to 0, so make CWRITER and
> > +         * cmd_write line up with it.
>
> NIT: The variable "cmd_write" does not exist in the Xen driver. As I
> understand, this comment was ported from the Linux kernel driver as is,
> which maintains a software shadow copy of the write pointer named
> "cmd_write".

Good catch, thanks.
You=E2=80=99re right - cmd_write doesn=E2=80=99t exist in the Xen driver; t=
his comment
was ported from Linux. I=E2=80=99ll drop the cmd_write mention and keep the
comment focused on aligning CWRITER with the reset CREADR.

>
>
> > +         */
> > +        writeq_relaxed(0, base + GITS_CWRITER);
> > +
> > +        /* Restore GITS_BASER from the value cache. */
> > +        for (i =3D 0; i < GITS_BASER_NR_REGS; i++) {
> > +            uint64_t baser =3D its->suspend_ctx.baser[i];
> > +
> > +            if ( !(baser & GITS_VALID_BIT) )
> > +                continue;
> > +
> > +            writeq_relaxed(baser, base + GITS_BASER0 + i * 8);
> > +        }
> > +        writel_relaxed(its->suspend_ctx.ctlr, base + GITS_CTLR);
> > +    }
> > +
> > +    ret =3D gicv3_its_setup_collection(smp_processor_id());
>
>   ... this function iterates over all host ITS instances (including the
> one we skipped) and attempts to send MAPC commands. I am afraid, that
> attempting to write to the command queue of an uninitialized/unrestored
> ITS might have bad consequences.

Good catch, thanks.
Since gicv3_its_setup_collection() iterates over all host ITS instances,
it may send MAPC commands through an ITS that we intentionally skipped or
failed to restore. That=E2=80=99s unsafe. I=E2=80=99ll fix this by invoking=
 collection
setup only for ITS instances successfully restored in this loop.

Best regards,
Mykola



>
> > +    if ( ret )
> > +        panic("GICv3: ITS: resume setup collection failed: %d\n", ret)=
;
> > +}
> > +
> > +#endif /* CONFIG_SYSTEM_SUSPEND */
> >
>
> [snip]
>


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 11:20:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 11:20:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219238.1528161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnESF-0000iR-J7; Tue, 03 Feb 2026 11:20:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219238.1528161; Tue, 03 Feb 2026 11: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 1vnESF-0000iK-G0; Tue, 03 Feb 2026 11:20:23 +0000
Received: by outflank-mailman (input) for mailman id 1219238;
 Tue, 03 Feb 2026 11: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnESE-0000iE-9s
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 11:20:22 +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 530859b6-00f2-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 12:20:20 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso6846675e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 03:20:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830513730esm59814965e9.14.2026.02.03.03.20.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 03:20:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 530859b6-00f2-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770117619; x=1770722419; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wIgETAQY/28mEbGZVq3JZZf4ITKT1IRbgekRfjEdP28=;
        b=PsSjivsAMmQ1rmR0IvhoIVeyBX96+Ne22RXlPcZE8EHvjVHfrm+o7LcRLs2UifKcXL
         AaFrsK5/n5D/LuwnJ1jqypLr8OffdtZaETw1D0D61TrGCUTXLD+/zhEK4+VSJpt7SyFS
         i6yqQYgj57fH+kFM95qEvVzhDcZ4nMSo1GapxD/5O8ZfrKcdd3SvpAOwamLGKktYdp5X
         WqMkoPzPnazoQItdblIvduqtgjkZU2+PX0z4o5vf16l7j/hab8hAPkAoBnu/k+TNUl5f
         PCPeaiXa5jGvHk/T2H1bUxt1FCBS/l6v6NziaKqaJRFxYI5wYyeezRyBoShQ8bJQpIfp
         Q8Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770117619; x=1770722419;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wIgETAQY/28mEbGZVq3JZZf4ITKT1IRbgekRfjEdP28=;
        b=hJqzhZ9Jv1gim8SuPqMWVk6AJ5RjUVF06MYaTyHuNQMSqjVKhMBMSNG5DL0oJAzinT
         LQf5pjIqzHpIMznK6zImG6FcH39rCxwIPiXpKXQVIwmnnFLDoLNaF4Pvq6Db2j9lv0BB
         tvJx4p9zwZSbHA5W0qcq2DQN8IFF3s5eLd63Z3oZA585DtRVDvMHJ7u0o8lDaJJp7zqX
         beqFhawm69A+zrQ9N5QB1Go71mIRjVZJ2RMDyGTZo0jS3c8o0ISpSvz4po0+utp6yf+V
         /2njDCNpOpPci885o+Ki+7X3FotGLSuCnuc+tS7jzUUDR8wonAq3ORbeDv94Ayl5GEH9
         7AAQ==
X-Forwarded-Encrypted: i=1; AJvYcCWGbfjanErTc4m1WfAqwAyIiO21JSorZdzL1+KfmG4obpLsWnDilXOZ8XQ0+uBqjsdlDE3lxyw2E5A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwDqMmE4l94fadRPHnz1S3tjZSrjSJf+h90BbpOW0olbCOiC/Kr
	MKx2vOSCe2bUu3YvIfl7X7il4AAO6ckM4yXE4ERc/t6iDU/SNcv1PiTFdId1AgS8PQ==
X-Gm-Gg: AZuq6aLW1IKsteYNHTtgBy9d15brcszXx7a+zWxXDbKaJ8WClEDYwWRIQ5p+04bfsBZ
	1/a5ylCUg07LbY35gPAyfPxygbgoedhRgzzgA63xPz/zXcz8HpcwCmwNjn91EEEbtrCAxFDNPjR
	nfOIRu71RifQMBIFIy3VzEIm5HALyNHwURSuSNsVuDOvyucyewlBZr5jK9Tfvr147NKub4FETfA
	lmWSnrK97Oebhqe4Cot/uc+qEYhHpEks7T+vx3Fymc4UKtSldxTuTAdo6A85NVvLURdTCcVdqU6
	PpTqAAwPuJcJ1AvMGrKUSZhsRmI3SYH+X/J/JXcQ+tX5NU4ocWuX/vFBQVAB/YOsGQzY1uHqCC7
	Pev2LUQ1+8Pp7yftVQysdjfcDB5/XK1RIrgbCjpYn7GZbcF+ED1+TWeZpAcDZRoiTi3lDCRz63D
	erHKYLKKUvzgk5VNPZRJIRv676SagBLicLW0UgjHsSGMnodnpznAcXPbYWBvPGoMGC1DNuD+QKW
	a0=
X-Received: by 2002:a05:600c:8b58:b0:46e:2815:8568 with SMTP id 5b1f17b1804b1-48305144dcfmr34987255e9.10.1770117619330;
        Tue, 03 Feb 2026 03:20:19 -0800 (PST)
Message-ID: <ab85c39d-9561-45b9-8df9-a2f80e16c4af@suse.com>
Date: Tue, 3 Feb 2026 12:20:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/5] arm/sysctl: Implement cpu hotplug ops
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
 <54a015e0e47ea311471bad7f13fbf21e14389ef3.1768293759.git.mykyta_poturai@epam.com>
 <00e17b41-f31e-4121-80c8-d4ea2bb02f34@suse.com>
 <17a56445-0c5b-48ef-9adc-3544d06abe3b@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: <17a56445-0c5b-48ef-9adc-3544d06abe3b@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 03.02.2026 11:30, Mykyta Poturai wrote:
> On 14.01.26 11:49, Jan Beulich wrote:
>> On 13.01.2026 09:45, Mykyta Poturai wrote:
>>> Move XEN_SYSCTL_CPU_HOTPLUG_{ONLINE,OFFLINE} handlers to common code to
>>> allow for enabling/disabling CPU cores in runtime on Arm64.
>>>
>>> SMT-disable enforcement check is moved into a separate
>>> architecture-specific function.
>>>
>>> For now this operations only support Arm64. For proper Arm32 support,
>>> there needs to be a mechanism to free per-cpu page tables, allocated in
>>> init_domheap_mappings.  Also, hotplug is not supported if ITS, FFA, or
>>> TEE is enabled, as they use non-static IRQ actions.
>>
>> For all of these "not supported" cases, what if a user nevertheless tries?
>> Wouldn't the request better be outright denied, rather leaving the system in
>> a questionable state? Hmm, I see you ...
>>
>>> --- a/xen/arch/arm/Kconfig
>>> +++ b/xen/arch/arm/Kconfig
>>> @@ -7,6 +7,7 @@ config ARM_64
>>>   	def_bool y
>>>   	depends on !ARM_32
>>>   	select 64BIT
>>> +	select CPU_HOTPLUG if !TEE && !FFA && !HAS_ITS
>>
>> ... make the select conditional. But do TEE, FFA, and HAS_ITS each mean the
>> feature is actually in use when the hypervisor runs?
>>
> The way interrupts are requested in these modules causes Xen to crash 
> when trying to offline a cpu. It’s a fairly simple fix and I plan to 
> send them eventually. I’ve decided to omit them now and do these fixes 
> only for supported code to keep the series from ballooning with too many 
> patches.

I disagree with such an approach, but it'll be the Arm maintainers to judge here.

>>> +    int ret = cpu_up(cpu);
>>> +
>>> +    /* Have one more go on EBUSY. */
>>> +    if ( ret == -EBUSY )
>>> +        ret = cpu_up(cpu);
>>> +
>>> +    if ( !ret && arch_smt_cpu_disable(cpu) )
>>
>> As you validly note in a comment in do_sysctl(), SMT is an arch-specific concept
>> and perhaps even an arch-specific term. Hence using it in the name of an arch
>> hook feels inappropriate. Plus - the hook could be used for other purposes. What
>> the arch needs to indicate is whether the CPU that was brought up may actually
>> stay online. That more generic purpose is what imo the name wants to cover.
> 
> Would arch_cpu_online_allowed() be okay, or maybe you have something 
> more specific in mind?

The name is already much better, just that it gives the impression that it perhaps
rather would want using ahead of calling cpu_up().

>>> +        case XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE:
>>> +        case XEN_SYSCTL_CPU_HOTPLUG_SMT_DISABLE:
>>> +            /* Use arch specific handlers as SMT is very arch-dependent */
>>> +            ret = arch_do_sysctl(op, u_sysctl);
>>> +            copyback = 0;
>>> +            goto out;
>>
>> I wonder if it wouldn't be neater for this and actually also ...
>>
>>> +        default:
>>> +            ret = -EOPNOTSUPP;
>>> +            break;
>>
>> ... this to fall through to ...
>>
>>> +        }
>>> +
>>> +        if ( !ret )
>>> +            ret = plug ? xsm_resource_plug_core(XSM_HOOK)
>>> +                       : xsm_resource_unplug_core(XSM_HOOK);
>>> +
>>> +        if ( !ret )
>>> +            ret = continue_hypercall_on_cpu(0, fn, hcpu);
>>> +        break;
>>> +    }
>>> +#endif
>>> +
>>>       default:
>>>           ret = arch_do_sysctl(op, u_sysctl);
>>
>> ... here. (Minimally the earlier default case wants uniformly forwarding to
>> the arch handler, or else arch-specific additions would always require
>> adjustment here.)
> 
> Would it be okay to mix goto and switch like this, or is it too convoluted?

I'm not a fan of using goto, but maybe it would be acceptable here. By ...

>          case XEN_SYSCTL_CPU_HOTPLUG_OFFLINE:
>              plug = false;
>              fn = cpu_down_helper;
>              hcpu = _p(cpu);
>              break;
> 
>          default:
>              goto outer_default;
>          }
> 
>          if ( !ret )
>              ret = plug ? xsm_resource_plug_core(XSM_HOOK)
>                         : xsm_resource_unplug_core(XSM_HOOK);
> 
>          if ( !ret )
>              ret = continue_hypercall_on_cpu(0, fn, hcpu);
>          break;

... wrapping everything past the switch() block in "if ( fn )" you'd already
get what is wanted.

>      }
> #endif
> 
>      default:
> outer_default:

Nit: See ./CODING_STYLE.

Jan

>          ret = arch_do_sysctl(op, u_sysctl);
>          copyback = 0;
>          break;
>      }
> 
> 
> 



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 12:24:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 12:24:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219256.1528171 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnFS3-0000Bx-7C; Tue, 03 Feb 2026 12:24:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219256.1528171; Tue, 03 Feb 2026 12:24: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 1vnFS3-0000Bq-4V; Tue, 03 Feb 2026 12:24:15 +0000
Received: by outflank-mailman (input) for mailman id 1219256;
 Tue, 03 Feb 2026 12:24: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=RKol=AH=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vnFS1-0000Bg-RR
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 12:24:14 +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 3c82667d-00fb-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 13:24:08 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DB3PR0302MB9257.eurprd03.prod.outlook.com
 (2603:10a6:10:43c::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 3 Feb
 2026 12:24:03 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 12:24: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: 3c82667d-00fb-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=A37x+kvd/hBJiuRaVj9PFAYIFtgouiaW9+rqhnQu03EFneGz6Jfsh08VMriVAwcbXTxBs5Z+H0maJ/eCFbLqcN+D2rfqDyQrFlKipa3bLymRYWHapXXLHJMhu/WL1wPptXRb39DcGL7PVol+h3m4vMWN1LrBw4sZuNEG2r6htyZ9YkyUbX2bHTXwRWXDCfe+9CzAtmAjUxQOKCFwF2qQ9SnZYn+NNizbtZNkkqXrArq52US6w1MRmJ/EiPE4XGAH9yaXecccyokqIGSZb/pcX4KN5MQIu7QtnYs/Mo19TJ1JeVXo5zl57AoPJGK8OtLrJKUUD4gJAA1Bt4q5GszaZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=f6+VJW02gqowwt+utBApCUMiE8ImrNq43Z+EttgAPHQ=;
 b=l9wSuqwlJt51TKjBbr6x2yccj6ez637yIjKo4or2JCd10zYUfdg3WMVP8IPLq61v9+DkWRvx3zWy/XqHGU5YVVZ+vu6aIH6s9npf6NrvBV9IHj0Se44FfIvcxoPU/XjLDp7Beb49tRZTidPu/S/rIsulyGQW/ZcMRhkTvWiaj/TGPOha5O7AvTOTQdwlt39EW6Fnna6EqZf/gMfZn7+STE7gFmIwfBAwxnL3yDaB+O4lYtjbEmWjgB2xDMP9Oajo2ZYtARCKuSc6v1YNVeYzmVi2L4DH1iFugz+I3Cg4mYck3XgSpmWE3af8CkbrJo5rfuo+f+lhAJuBbnMUEecEvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f6+VJW02gqowwt+utBApCUMiE8ImrNq43Z+EttgAPHQ=;
 b=UZ7n+CsqmOUFQlqrVCefemjyAmWEMHIeuVfEMG+dDhmle9Xz/uj2q0kfpbbxGoq0tbTqAr8vWMG4PjF+eI1/4JlVIkcqb6FqjqypeDCQAXPt91qyKSpgVsXcFobj5hs7HfDs2uQSsXJbqA2BmOqTii2+TJMpAm8EJLSiwEzZNQxj7ymxY4A3b1hW39gHICGiP8hU54CFq+WGnJpl9XfYixiRCHH8RdXUA/O90AJs6ke9TfOiv9MBWAGb9nfApveUijk4HAyENV1NgrXzl04grXYeW8ata5ZG/3EpmyvFxwJhukm/rdm3D74f5K36JZGxiQLVLTUsl5yl9PyJ+NQ8Kg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 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: [RFC PATCH 00/19] GICv4 Support for Xen
Thread-Topic: [RFC PATCH 00/19] GICv4 Support for Xen
Thread-Index: AQHclF8GgI2Kr/X/QEO5wnP/6sbdXbVwv1qAgAAn3QA=
Date: Tue, 3 Feb 2026 12:24:03 +0000
Message-ID: <88755b1b-a9c9-489a-80e3-e014244b108a@epam.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
 <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
In-Reply-To: <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.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_|DB3PR0302MB9257:EE_
x-ms-office365-filtering-correlation-id: 7be0326f-270a-4262-10eb-08de631f1e34
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|7416014|376014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?Vld4YXNSQWMvOFp4Z3IyNERwNmhhRlB6N0xydzh2VngvTEhtWnlRRlpXaHE0?=
 =?utf-8?B?NXNSWUtXdGwxZ3UvcU9WUEFweVdBUldyWnhHVzg5eFE4NDFuZlFZWDM1R2ZG?=
 =?utf-8?B?UlcyZUxaeTB5SEpNaE1jL2hlMnFSZ2tpR1NUL0JEY1Y5OHZXSEE0d2VqQWFB?=
 =?utf-8?B?dU9rWkZhM3gyT0J0bEZFVWNKVllLZmZvL0VQbm1zdW94WTFkUm1ma3FMRkpu?=
 =?utf-8?B?K3F2M0Z0b2lzWEZjSFZmOEdPeDNEcVd6V01JQ05FS21RUVNyMm45c01UZU55?=
 =?utf-8?B?ZFNLbisyTFVmSCsvV2VHaGR1eC80U3JvcGNVa1pXVDdqazB6RklhVE0rTEI5?=
 =?utf-8?B?UnlwQThwek9mbWw4NGRkTVNwejJKRzBXN29uQ1RhY0ZERDZVRTRJcWN3d2Rq?=
 =?utf-8?B?TE5XOWFmMW9FM2V2L2RLTzk3MXNGRTNZWU1udVhMcjU5R0lRTnNCYU55RTVL?=
 =?utf-8?B?ZGZPS2hyM2NtOURoS2I2Qi81OXNjMG5QaEcxNkFQbWxWTk9TTFZrYk1WMDFt?=
 =?utf-8?B?Y3JJVXVQY09xWkJGU3pDRFJsRXZ2R0pKZ3BKWVlaaG11REt6dDY0RUQ4czVw?=
 =?utf-8?B?VzlUM1IyYWZvaDhHNzBWVUgzR0tQTU01WE9TM2xOVk9NblZ5L1lCWm5CMTRu?=
 =?utf-8?B?VzZ4Ujl5UmxhcnV4S0RWcmVoL1ZtM1R3Z1hOcldGSXFuMzBBQVZ5NjhHTlFw?=
 =?utf-8?B?ZjF1OFdXNElJTVNnUlZsajRTV1JrcGZDUU9PWTlDWFY4Q1hHbmIrRTZhU2x0?=
 =?utf-8?B?OHMzUFJuU2xxd29qRmNPN3FCdjZTRlc0ZWxWVm1ZVll3M2xoL2VrejEzOUsy?=
 =?utf-8?B?Tm5zYmFzamwvVlhTdTRLZUZXRC9Idmk2S3p2MStRNktZVkFPbTA5REM5dXBw?=
 =?utf-8?B?Q2JrWGtaODEreStLMDhGUmcvZVNha1pXRTVhS0Rvd2t3cnNyOFU4VUlXbGlz?=
 =?utf-8?B?NVM1ZE9pdnZnMW9xRzcrak9jOU1Fb0lqSENlYm9PcHNQYTZDcHRhUkhSOHJJ?=
 =?utf-8?B?eEc1NFBpa05IWjNNTFYrdTg3WllCT1RXUno2UXdiVWdJcytHdlVzSldlZmJ1?=
 =?utf-8?B?V3Jva0RKeEE1U2wrdVlrZ2d3ZU9TMjczYy9KYS9BWFpBR0RsT0licHduTWhj?=
 =?utf-8?B?R0hodndXa0lJc0JhcTJrREpNSHJpWWJiZ1IzT3MxVENSV2hWQWgwRGs2Z0Iy?=
 =?utf-8?B?Q0taTkNUUVV4eGdWcjdQRzFvZk1zTjJCdW5lY2orN0VGUDl1NGo2UU4yeEU0?=
 =?utf-8?B?ZTk3NHNrNENTMEVRc0VtenBiaHFvd1ZJYlFBRVlhZHM1QzFMSy9jV3E5QjFr?=
 =?utf-8?B?MjcvZis5ZGdzNlVIVnJmYXdVUzcycG84YWJIYndvUWdHQjA5Wi9RaTdURWYr?=
 =?utf-8?B?UWlDOThteVdMcGdNdTczUno2Y3laWW04OHFDcTU5NllYaUdhNXp4RXo0TS9M?=
 =?utf-8?B?b0NxN25QQUhvNkwvWWYwK2FWTHJCbWNlNzR4UUplQ2FHLzJDZUV1ZWs5dTFz?=
 =?utf-8?B?ZUVPdUZSTE9sYnZXTTkzbmYyUWUySDNNS05Xck1hKzN1VWJNbWVsdDFsY2dW?=
 =?utf-8?B?NnRjdWRmdWRRUTRBNnVEK0JXR043ekhTM3ZlbEJpeFZzbndZQVkvaVE2Smho?=
 =?utf-8?B?cjZ3U1B3d3VrZ1d1VzNOZDdNN2RGNnl1L2dkK1JQU2tBYmpWK1JRenMvYzND?=
 =?utf-8?B?MG4wMHNCZnhpNWlPdDdrbWUxdnRLSUg0Zk9yTldhL2JldEpGaWY0cWpYY2Qx?=
 =?utf-8?B?Um9za0ViWUd4V0QyZUg5SkFJd3dLc2NxbGZmKy96WmtqQ2tGSysvdks4TXpU?=
 =?utf-8?B?bEZjeU1MT0VaZ0g3dFppa1EvbzlWc25UNlk1ZExNR3RvcCtLZE5zd1ZjZ2pE?=
 =?utf-8?B?WExwSlJXbkNVRDB2M3UzZ1N6ZTNDa0NNSEkwemkvMGJ3TkxLZzVBckRmcE5U?=
 =?utf-8?B?ZWVHMExPR0ZNUVRaaFdhc3NwZjhZbDRhS1dhNlpNWCtQRkl6MjB3aklQZkI1?=
 =?utf-8?B?eUZmK2RzV0VUWWJxYTdxeklnNnRTQTh2Y2tMNnUwOWJYcytuWDlMbXdsNHFB?=
 =?utf-8?B?ZnRwZmhHczIyYTAxUm0vT1FxellscnpSZU41SUQ1d1QwUTJkZkJhSjE5MmRu?=
 =?utf-8?B?NkdrekdOQzdPdElyV1h2SEhFWTNEVDZJSFJSajlhcnRyN0ZjRFNtUGMwbzhu?=
 =?utf-8?Q?WD38wvSLU3uJdIWRgVdbTw0=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)(7416014)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?YjFQVEZqS1o4UmFDS0FYYi9qNm1TSWs3U3kwMkRtQklrb21wNTdZdDFoNVNM?=
 =?utf-8?B?OW1tTXhBSkJQL2lJWmxicEJxRjU0ZEM0KzFqeHRuSHp0dzlIS01yMFZ6cHVS?=
 =?utf-8?B?MkRGYTJRc3pENGp6RFEzaWZGZHBhc01Rb3BPSzE2eHdsNGhBaHBoT0lXNGd3?=
 =?utf-8?B?YjQ1TW9aNFV6U0oxSHFCTGUzWC9QWWdUMHlIa09DYnh4Z2dUUXlPeUlRNzR2?=
 =?utf-8?B?V0xySjVlZFFJWUx4Y24vQk1MOXViTFd4RkJ3RW14VHdWeFZ2YlJ0d1F5Z0Iz?=
 =?utf-8?B?L2xNcnBXc3BxVTNZZEFLd3o0eTlncSs0ZG5aci82UytBZEZ4RjNVZUhJYk90?=
 =?utf-8?B?VkR2ZTZKb09xTzRkK2Q2eVJvMFRZUTR4RG45VWt5RXFmRlJSOUNzNmUrVURw?=
 =?utf-8?B?Ri9VRjIrTVVCTjNuVktQTnB6M0hnbXdoYXVOMjMzK2pTVTRGa1BZckZrOE5P?=
 =?utf-8?B?Q2pYMjZ2dnNoY2dRRWxoemxPdnhLSDVFUHRQOGswZlprL29pV1FEVER3MHZC?=
 =?utf-8?B?ZnNnZ2N1QU1hNGxoMEVwbjRXZElGWStHUGR2UEtvRnJCN0R1dXhkOUZObFZv?=
 =?utf-8?B?Yk9VZSt2NnBrL3pocGRSQ25BV2JQcnM1YTF1eElBTlN6N0JKOW8yaVI5UERa?=
 =?utf-8?B?TjNVazB1UWtRcmdOaVpySng2VVAwWmdTWjgyZ1BBcVAyZXFrZ2JhcmRBd0xT?=
 =?utf-8?B?MHVucjRKV2dlbUpJK0gvbXoyRllGeHpYNFVEM0kyZGxPZGxBbmZNY2VnY1dO?=
 =?utf-8?B?eXNLWURVU3BSaURScWs1ZHcxNys1cnlnNmFkVGRrM2w2YTNQNXlqUGdPeUIz?=
 =?utf-8?B?eWVCbTZpTVE0WXdhY3l0b1kwMDB5c2hkOGRrNDExU2xsdU1McmwzNXV5ZmNq?=
 =?utf-8?B?UGxKQkM1MEJkMk5vbWtFVWdrSmdzL3c3SWhkRUtubE1xVkpkZUkwYmtrblJx?=
 =?utf-8?B?bjJib0h3WmlsbVBLYmR3aG11T2NTbEo2NDBDaXNhelRTWnNRbFNUNE5SNll5?=
 =?utf-8?B?VS9qYnlxcmdQS29KSXNtOVBtSHo1eDFEQml1SWIxYjFtbFpzTDFnanFoMFNo?=
 =?utf-8?B?OHlmbGRuRGVlVnJmaUEyL2pCalFvbWQ4QTMyaHQwNy9ORGRodUJLZFRjYmpp?=
 =?utf-8?B?d1BRWTBYb1ZOQ3ZRQ1libGxNTnVuZzVtVitLZXEvSERXQjBDalFsb0xIV0pq?=
 =?utf-8?B?bnd0Zk9FazBxTU0xWkdtck5PTHIzak5pMXU0M2Fmelo1UkxhNCtkVHJob0VV?=
 =?utf-8?B?bkZUeEo5UlpPWU1Pa0lRTWVCSDQra0Zmczcrak5hUEE2enJNL0F6VVJNOFRS?=
 =?utf-8?B?bnU3b2dvZ1pPWllkWDVtc3RWaTFJQVZONk1GbFFXVGZqVTh2THQ3RS9kbTg5?=
 =?utf-8?B?eE44MVVZb051cy9hU3lMRjZOeVEyaG5tLzhHRnVWQXNkM0dEQVZFekM5aXFz?=
 =?utf-8?B?cGpoTFRHMXg3Z0FSQXJwbnFCaHJQSFVuS0pldHU1UkMrVVFXcGtxQkdtZ3E0?=
 =?utf-8?B?TE9LREJudWVBcmdOOWFPb1NkQlU5eDBnY2xBa1lsdHpFbncwdmZqQm9DY3U3?=
 =?utf-8?B?cUFaeEIxZm52cGFFSkdBbkk3VVowTy9OTjk3bllsZG0zWC9Ib29RRU1XYzdy?=
 =?utf-8?B?SHZtdDI0NlNTWjM2WHMvOVFvUWR1N2hlSEp0Wm1weU5hRU9iUWUwZVg3UUxy?=
 =?utf-8?B?djJQUWZPODdOZ1VFaVRFbW1kMFAwcnNPam5hTE0zeldHa1NBc2VqYnp2NGlq?=
 =?utf-8?B?YjJlWjZjVURQRmRDdHRhck1zVVdudVF1UkdQL3VuL0R6SnNOU0U1di9MM25h?=
 =?utf-8?B?M1ptY3FnempYRG12ZXJQdHZ0Q1U3Z2VrYXVKWFNUUkgxVXl4cmpZc2tWVXJV?=
 =?utf-8?B?YWl2SnRxbFJiR3dPTGRzaHBjZGlaVE1yVnQrSVhONDhjQjJFSHR5eE0wZWtj?=
 =?utf-8?B?YzJ2VDJnQ0JoTGt1V2NXcE5CdkVsalpsWWlVa09Uelh3Q2Z5cnlBQkt4NGJN?=
 =?utf-8?B?OWoxTm1aVXgzKy9XbkRSLzI0cThaVHlQRmxFL1ZDZVYzWmFJQkhLQUVQQ3Bp?=
 =?utf-8?B?cHVOVWZWMjdJVTN1N3JGMC9zZmpnblJRZXNzUmk4cmkva04vSk9lZFVITHJD?=
 =?utf-8?B?N1FkMkdReHJ3SjJJcC9aVm01UmQvOE1TRkU0eW84SGhJRzBEUzBtditvZy9U?=
 =?utf-8?B?OGEvZXNVdnVEb09SanFLOXBDdXQ2d0pMcGxxMGtFVW5peURlTS9CZC9VaEJM?=
 =?utf-8?B?MUkyNk4wMEV0Tlg0SjRvQ2p2TzFCUVV0MlVsQ2huaWtKYzZJWmR5MWFPNDNQ?=
 =?utf-8?B?SWM1QnhodkF5QWl4Q2JNN2trSnN3OFdoM3JuWEZwZU1SQk4zMXdvaERYN202?=
 =?utf-8?Q?VeuOOOmxPTvBQo3k=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <CE37FD52232AA14BBDE91C9BB017653A@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: 7be0326f-270a-4262-10eb-08de631f1e34
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Feb 2026 12:24:03.4725
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 12mrXBNWCUymNXz8FVcZZUJ7MaQHUF1rdZfkVdcFch/xOnpjYgBYxb4tvU9hYvBOrzL7O74iy8P+M3vChlRXTw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0302MB9257

T24gMDMuMDIuMjYgMTI6MDEsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+IEhpIE15a3l0YSwN
Cj4gDQo+IFdlIGhhdmUgYSBudW1iZXIgb2Ygc2VyaWVzIGZyb20geW91IHdoaWNoIGhhdmUgbm90
IGJlZW4gbWVyZ2VkIHlldCBhbmQNCj4gcmV2aWV3aW5nIHRoZW0gYWxsIGluIHBhcmFsbGVsIG1p
Z2h0IGJlIGNoYWxsZW5naW5nLg0KPiANCj4gV291bGQgeW91IG1pbmQgZ2l2aW5nIHVzIGEgc3Rh
dHVzIGFuZCBtYXliZSBwcmlvcml0aWVzIG9uIHRoZW0uDQo+IA0KPiBJIGNvdWxkIGxpc3QgdGhl
IGZvbGxvd2luZyBzZXJpZXM6DQo+IC0gR0lDdjQNCj4gLSBDUFUgSG90cGx1ZyBvbiBhcm0NCj4g
LSBQQ0kgZW51bWVyYXRpb24gb24gYXJtDQo+IC0gSVBNTVUgZm9yIHBjaSBvbiBhcm0NCj4gLSBk
b20wbGVzcyBmb3IgcGNpIHBhc3N0aHJvdWdoIG9uIGFybQ0KPiAtIFNSLUlPViBmb3IgcHZoDQo+
IC0gU01NVSBmb3IgcGNpIG9uIGFybQ0KPiAtIE1TSSBpbmplY3Rpb24gb24gYXJtDQo+IC0gc3Vz
cGVuZCB0byByYW0gb24gYXJtDQo+IA0KPiBUaGVyZSBtaWdodCBiZSBvdGhlcnMgZmVlbCBmcmVl
IHRvIGNvbXBsZXRlIHRoZSBsaXN0Lg0KPiANCj4gT24gR0lDdjQuLi4NCj4gDQo+PiBPbiAyIEZl
YiAyMDI2LCBhdCAxNzoxNCwgTXlreXRhIFBvdHVyYWkgPE15a3l0YV9Qb3R1cmFpQGVwYW0uY29t
PiB3cm90ZToNCj4+DQo+PiBUaGlzIHNlcmllcyBpbnRyb2R1Y2VzIEdJQ3Y0IGRpcmVjdCBMUEkg
aW5qZWN0aW9uIGZvciBYZW4uDQo+Pg0KPj4gRGlyZWN0IExQSSBpbmplY3Rpb24gcmVsaWVzIG9u
IHRoZSBHSUMgdHJhY2tpbmcgdGhlIG1hcHBpbmcgYmV0d2VlbiBwaHlzaWNhbCBhbmQNCj4+IHZp
cnR1YWwgQ1BVcy4gRWFjaCBWQ1BVIHJlcXVpcmVzIGEgVlBFIHRoYXQgaXMgY3JlYXRlZCBhbmQg
cmVnaXN0ZXJlZCB3aXRoIHRoZQ0KPj4gR0lDIHZpYSB0aGUgYFZNQVBQYCBJVFMgY29tbWFuZC4g
VGhlIEdJQyBpcyB0aGVuIGluZm9ybWVkIG9mIHRoZSBjdXJyZW50DQo+PiBWUEUtdG8tUENQVSBw
bGFjZW1lbnQgYnkgcHJvZ3JhbW1pbmcgYFZQRU5EQkFTRVJgIGFuZCBgVlBST1BCQVNFUmAgaW4g
dGhlDQo+PiBhcHByb3ByaWF0ZSByZWRpc3RyaWJ1dG9yLiBMUElzIGFyZSBhc3NvY2lhdGVkIHdp
dGggVlBFcyB0aHJvdWdoIHRoZSBgVk1BUFRJYA0KPj4gSVRTIGNvbW1hbmQsIGFmdGVyIHdoaWNo
IHRoZSBHSUMgaGFuZGxlcyBkZWxpdmVyeSB3aXRob3V0IHRyYXBwaW5nIGludG8gdGhlDQo+PiBo
eXBlcnZpc29yIGZvciBlYWNoIGludGVycnVwdC4NCj4+DQo+PiBXaGVuIGEgVlBFIGlzIG5vdCBz
Y2hlZHVsZWQgYnV0IGhhcyBwZW5kaW5nIGludGVycnVwdHMsIHRoZSBHSUMgcmFpc2VzIGEgcGVy
LVZQRQ0KPj4gZG9vcmJlbGwgTFBJLiBEb29yYmVsbHMgYXJlIG93bmVkIGJ5IHRoZSBoeXBlcnZp
c29yIGFuZCBwcm9tcHQgcmVzY2hlZHVsaW5nIHNvDQo+PiB0aGUgVlBFIGNhbiBkcmFpbiBpdHMg
cGVuZGluZyBMUElzLg0KPj4NCj4+IEJlY2F1c2UgR0lDdjQgbGFja3MgYSBuYXRpdmUgZG9vcmJl
bGwgaW52YWxpZGF0aW9uIG1lY2hhbmlzbSwgdGhpcyBzZXJpZXMNCj4+IGluY2x1ZGVzIGEgaGVs
cGVyIHRoYXQgaW52YWxpZGF0ZXMgZG9vcmJlbGwgTFBJcyB2aWEgc3ludGhldGljIOKAnHByb3h5
4oCdIGRldmljZXMsDQo+PiBmb2xsb3dpbmcgdGhlIGFwcHJvYWNoIHVzZWQgdW50aWwgR0lDdjQu
MS4NCj4+DQo+PiBBbGwgb2YgdGhpcyB3b3JrIGlzIG1vc3RseSBiYXNlZCBvbiB0aGUgd29yayBv
ZiBQZW5ueSBaaGVuZw0KPj4gPHBlbm55LnpoZW5nQGFybS5jb20+IGFuZCBMdWNhIEZhbmNlbGx1
IDxsdWNhLmZhbmNlbGx1QGFybS5jb20+LiBBbmQgYWxzbyBmcm9tDQo+PiBMaW51eCBwYXRjaGVz
IGJ5IE1hcmsgWnluZ2llci4NCj4+DQo+PiBTb21lIHBhdGNoZXMgYXJlIHN0aWxsIGEgbGl0dGxl
IHJvdWdoIGFuZCBuZWVkIHNvbWUgc3R5bGluZyBmaXhlcyBhbmQgbW9yZQ0KPj4gdGVzdGluZywg
YXMgYWxsIG9mIHRoZW0gbmVlZGVkIHRvIGJlIGNhcnZlZCBsaW5lIGJ5IGxpbmUgZnJvbSBhIGdp
YW50IH40MDAwIGxpbmUNCj4+IHBhdGNoLiBUaGlzIFJGQyBpcyBkaXJlY3RlZCBtb3N0bHkgdG8g
Z2V0IGEgZ2VuZXJhbCBpZGVhIGlmIHRoZSBwcm9wb3NlZA0KPj4gYXBwcm9hY2ggaXMgc3VpdGFi
bGUgYW5kIE9LIHdpdGggZXZlcnlvbmUuIEFuZCB0aGVyZSBpcyBzdGlsbCBhbiBvcGVuIHF1ZXN0
aW9uDQo+PiBvZiBob3cgdG8gaGFuZGxlIFNpZ25lZC1vZmYtYnkgbGluZXMgZm9yIFBlbm55IGFu
ZCBMdWNhLCBzaW5jZSB0aGV5IGhhdmUgbm90DQo+PiBpbmRpY2F0ZWQgdGhlaXIgcHJlZmVyZW5j
ZSB5ZXQuDQo+IA0KPiBJIHdvdWxkIGxpa2UgdG8gYXNrIGhvdyBtdWNoIHBlcmZvcm1hbmNlIGJl
bmVmaXRzIHlvdSBjb3VsZA0KPiBoYXZlIHdpdGggdGhpcy4NCj4gQWRkaW5nIEdJQ3Y0IHN1cHBv
cnQgaXMgYWRkaW5nIGEgbG90IG9mIGNvZGUgd2hpY2ggd2lsbCBoYXZlIHRvIGJlIG1haW50YWlu
ZWQNCj4gYW5kIHRlc3RlZCBhbmQgdGhlcmUgc2hvdWxkIGJlIGEgZ29vZCBpbXByb3ZlbWVudCB0
byBqdXN0aWZ5IHRoaXMuDQo+IA0KPiBEaWQgeW91IGRvIHNvbWUgYmVuY2htYXJrcyA/IHdoYXQg
YXJlIHRoZSByZXN1bHRzID8NCj4gDQo+IEF0IHRoZSB0aW1lIHdoZXJlIHdlIHN0YXJ0ZWQgdG8g
d29yayBvbiB0aGF0IGF0IEFybSwgd2UgZW5kZWQgdXAgaW4gdGhlIGNvbmNsdXNpb24NCj4gdGhh
dCB0aGUgY29tcGxleGl0eSBpbiBYZW4gY29tcGFyZWQgdG8gdGhlIGJlbmVmaXQgd2FzIG5vdCBq
dXN0aWZ5aW5nIGl0IGhlbmNlIHdoeQ0KPiB0aGlzIHdvcmsgd2FzIHN0b3BwZWQgaW4gZmF2b3Ig
b2Ygb3RoZXIgZmVhdHVyZXMgdGhhdCB3ZSB0aG91Z2h0IHdvdWxkIGJlIG1vcmUNCj4gYmVuZWZp
Y2lhbCB0byBYZW4gKGxpa2UgUENJIHBhc3N0aHJvdWdoIG9yIFNNTVV2MykuDQo+IA0KPiBDaGVl
cnMNCj4gQmVydHJhbmQNCj4gDQoNCkhpIEJlcnRyYW5kDQoNCkN1cnJlbnQgcHJpb3JpdGllcyBh
cmU6DQoNCi0gQ1BVIGhvdHBsdWcNCi0gU3VzcGVuZCB0byBSQU0NCi0gR0lDdjQgKHdlIHdpbGwg
Zm9sbG93IHVwIHdpdGggYmVuY2htYXJrcykNCi0gU1ItSU9WDQoNCg0KTVNJIGluamVjdGlvbiwg
ZG9tMGxlc3MgZm9yIHBjaSBhbmQgUENJIGVudW1lcmF0aW9uIGFyZSBsb3cgcHJpb3JpdHkgZm9y
IG5vdw0KDQpTdXNwZW5kIHRvIFJBTSBpcyBoYW5kbGVkIGJ5IE15a29sYSBLdmFjaA0KDQpTTU1V
IGFuZCBJUE1NVSBzdXBwb3J0IGFyZSBtZXJnZWQgYWxyZWFkeSBBRkFJVQ0KDQotLSANCk15a3l0
YQ==


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 14:01:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 14:01:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219283.1528183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnGyE-0004X2-2o; Tue, 03 Feb 2026 14:01:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219283.1528183; Tue, 03 Feb 2026 14: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 1vnGyD-0004Wv-Ud; Tue, 03 Feb 2026 14:01:33 +0000
Received: by outflank-mailman (input) for mailman id 1219283;
 Tue, 03 Feb 2026 14:01: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnGyC-0004Wp-9W
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 14:01:32 +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 d6d5df6c-0108-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 15:01:30 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806b43beb6so41604395e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 06:01:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482e2e3bf18sm125182925e9.19.2026.02.03.06.01.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 06:01:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6d5df6c-0108-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770127290; x=1770732090; 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=012uemFsGFDcR9WXwhkbQapD4OLf+mRfpXPFB9Btaho=;
        b=eF0SDtXl0LyAX/A6k4wNMdK6l74ebN8tIvEy5bOIJ8ar6QmZaFGjxZOTk4zfgHWkFI
         JRG8Gaj+v24YSfHCBmm3h3mmla+jot+LhQVuvYopUz8r5UPycJrqJSiqPcotouRDyYYq
         h1gEF9RMCRjsMMKgiZetY5PoaEe45wMXnRPUHZs1j79IBsAC5ZAG9cICODfU0NEIAIiN
         2z8NXml4b8zzyRqtXSzFYS1ivUnhpGX2abnlzVoCHfDRdhRfYvduzBxMqvpZof/pQEiZ
         zduAovYYcB5ANoIBv0go0jm9zCM5RW7O/L/w4tyYU1kF7lgZHTU4dBpVLBcfl453Jqb5
         8RuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770127290; x=1770732090;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=012uemFsGFDcR9WXwhkbQapD4OLf+mRfpXPFB9Btaho=;
        b=oYJFXszMoJ2+5ac3TSQ0cZ1d1eyalhb3wcBEu0Dqf8NhTBJ8W7Ak0ycLv0IzWAsvon
         B9naIhh6SIv6ToJLcUDKGeYNsvOKunnpmBORTpPU6mosBdqV/tm+2AZnHQwrLbd9zwCB
         F+uYsok82y1D7qc3H3ro3cmsZjYP2T63Xa9LnsHEOgehe39utrPN3P/FZFarq2D0fRIL
         zXu9cUpvsOg8X61cxO9sAbJg6YGm4jl9CGQT/GkoypKt8k3halZMJ4FUc+PDjLHfNJvK
         R5voXfa0v0LrhQyEIu1LmvUsvsQqIC3thuccbNNXSxV9UVZMBSHtt98G8lEZ6Ziej+It
         gYjg==
X-Gm-Message-State: AOJu0YxQ8imuaKcGN1yKz+tRDtX6Cq14NLcHTXMrxfRW8Op8ej0FXEbh
	Zh0KmDnsPsCiUhCcwNjhCRq1uzmwaJ/vLYie4IKp5IqpQ8BGVQgoJUrzdtn9FJU1H+9z0LTKU6Q
	QTXg=
X-Gm-Gg: AZuq6aLNAM66+LhLPb2eMWgmK4FYRWHfqmRyAdPTOnpKvsFzAKZaE+nqX7z1aMiCeIi
	MYuXIeOGyCPD/B73qAhBiJuXELSfJyH5AV0drVjlW2/JrNIbcMykiYRg+fUYBTQIGnvn8ZDkgO+
	qQh6TyMgmgrp80Wp2GTcWmilHYiRhpXmmGnASlJ9tWEkMLoyZt47CSEiI0dT8H65HcNZQE7hfMn
	lfltj1l9Wc1azRmXzlSnp5v59xyQ+Ax8akje2hy2affRahw0iVwBN0FTaC8eXQ71okqQzBq8gU4
	8OaqRErUJZvLYUyIgt0oYRq+t24yNNIazqOIMCWPRZNEL1H0pj+hjXBN24aPEzeP+r06788XDFZ
	0QoDFJZ7Rc7mKnDpH1Eyv8Afgam/bhSnVKp+g7M642NQZGXGd1AvtS/ECt3Ls7ODV6tpoydns/R
	SuiwVISvnsojrl18XRwayY0c7FcomI/oHZmT4Zv6199v1C5rI5Ak3+TWK+b4+pZfRg8H3y6TJ40
	Ek=
X-Received: by 2002:a05:600c:310f:b0:477:9976:9e1a with SMTP id 5b1f17b1804b1-482db4597eemr223153825e9.6.1770127289606;
        Tue, 03 Feb 2026 06:01:29 -0800 (PST)
Message-ID: <1ecefc98-f1c2-4116-95bf-a86c3b066843@suse.com>
Date: Tue, 3 Feb 2026 15:01:27 +0100
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/P2M: correct type use in p2m_put_gfn()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Everywhere else gfn_t are passed into respective GFN locking macros: Do so
here as well.

Amends: 819cdc5a7301 ("x86/p2m: re-arrange {,__}put_gfn()")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Easy to spot by adding ASSERT(!gfn_eq(g, INVALID_GFN)) to the respective
macros. While imo that should be a correct thing to do (as with
hypothetical split locks a valid GFN would really need passing in, in
order to be able to figure out which lock to use), we can't do so right
now: The lock is acquired ahead of respective checking in a number of
places, e.g. in p2m_get_gfn_type_access().

There's no clear Fixes: tag to use, I think - the problem looks to have
been introduced by the gradual conversion to gfn_t. I probably should not
have added gfn_x() in the referenced commit, to unbreak things already at
that time.

--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -338,9 +338,9 @@ mfn_t p2m_get_gfn_type_access(struct p2m
 
 void p2m_put_gfn(struct p2m_domain *p2m, gfn_t gfn)
 {
-    ASSERT(gfn_locked_by_me(p2m, gfn_x(gfn)));
+    ASSERT(gfn_locked_by_me(p2m, gfn));
 
-    gfn_unlock(p2m, gfn_x(gfn), 0);
+    gfn_unlock(p2m, gfn, 0);
 }
 
 static struct page_info *get_page_from_mfn_and_type(


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 14:49:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 14:49:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219306.1528191 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnHi6-0001pU-Du; Tue, 03 Feb 2026 14:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219306.1528191; Tue, 03 Feb 2026 14:48: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 1vnHi6-0001pN-B0; Tue, 03 Feb 2026 14:48:58 +0000
Received: by outflank-mailman (input) for mailman id 1219306;
 Tue, 03 Feb 2026 14:48: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnHi4-0001pH-Om
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 14:48:56 +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 766c12cd-010f-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 15:48:55 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47ee3a63300so62931115e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 06:48:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e135422csm54707659f8f.40.2026.02.03.06.48.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 06:48:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 766c12cd-010f-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770130134; x=1770734934; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wdCti2raCx1gj0+YLaQgqOFLLWIOWdnaZK8UcNpQmkg=;
        b=CDNrQDlB6ZcqgW0Sj7yApeVcOg8hcxDh3e9TZO7fILLL3UG8/ez8B6GrFI0GOx2jOo
         ZeH75prI7PTKzZ8F3JNcXDJ9O3W8blhr/kf/3ljmj3T4KmA5S0JEQnXlQJaGZX4wbmNh
         AMb+lsSS3pDR+ex+kEQSrbfvZFUn7l56PUogw5f5uXkOjb+5AAyT8AlqTVqmYMEQq/Q2
         tqBAMqu9yv1XMFyUKAHZqotrIvjjguWV7ruCvkTatqEUQ/Rddd4KSajj1mV81yVvthXN
         hHTHDrz3b3GlDAPqU46grdoikN4hvSg5lPFOCoFwpgnzWYUjUQDVeiPrTzcNN/J1eOkR
         6LVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770130134; x=1770734934;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wdCti2raCx1gj0+YLaQgqOFLLWIOWdnaZK8UcNpQmkg=;
        b=gQFEeICHL+DpWXl2WPVulqymQW8o2vnbLI4lTuzr5Cr8xlrEVmr2sLo6jhGz2KSblA
         V3y8KMFqRqrL1hgISbQjtNp66XmpE3iKsqppIpF6ExHe/OWsYHIgMGcTO2cFtSNvp0d5
         1bx20XgEuSoYjf3qW9uZRFoYkatr8y0eOBvaBpewgv+dl7917aTpuwUnURjJd1JSVnM+
         4N3TDtl6jUb9JQWkkHIKU7Ylz1ZVkoJpIww67w/QoGl8LLRAVPvD0mDSGxT4qmID1+VO
         rxcADnMCM5PkIa10A5/d8VUEKkcaq0TA1WEhI7MzkSHnZ+TfQsivNIwSskF9sFqz0IcE
         6pbg==
X-Gm-Message-State: AOJu0YyoHeA4Vq7EtWzMJtHrhYfSxWC0YZOeCFk5gBa6yro5ZqO6UVAl
	mHitRHytY1HI6xgyBJaS+WuMLJ9nwQLw8MI15J3J0gIUzeoLDPXvDeOPl3NDG0z/Lw==
X-Gm-Gg: AZuq6aJoR0dQ56PACt8PQySONHvf/DXCnZuTEubcjt9t/QZKjNz34UCGlp4s4g7Px6p
	IOoKLFUx6pHb8Pr3tF7bnbbDxbOVUBc8F+N5/fxNHdO4G2j32Iqq2Ti6FVj7OUtwAVbEd9HhVdx
	sKo1vmKxNkMKhmKRdEQgaQdYSjWByqBimD78t9g38iOpRJWj/TjwsD/2hBho53c110pyw0uV2Xx
	415MgWOEPK86nm32/iAzTN88GfeAQ0+FL/8j1O4eTAVXPM/RnwBF34Mo4GErmCjkDjICHHkZC3h
	GpTrHdOcVmpmTP3Z5U2NxgwNjSc2P6OsjIKBw8o1O45XQlNBWPfgv7/keLSdQGxSHYpBmSo69MU
	DW+poTdbdVDRyI1Y6aDQKAsYUwu98Z2NpDy0g2En75GOk/NWmS9rVtOVcxHL8jAqLmk1O9cz2xL
	ERbc3aXImzoNAvUQ7vMZeu+MnJ4PYBPJkz4OSB2byHhCE9WinraXgZxPg0XcAsZX2UPRnDNOPlF
	zc=
X-Received: by 2002:a05:6000:2dc7:b0:432:dc23:368 with SMTP id ffacd0b85a97d-435f3aac762mr21792523f8f.49.1770130134329;
        Tue, 03 Feb 2026 06:48:54 -0800 (PST)
Message-ID: <4913d9b3-03ec-443e-b908-a1531dca6699@suse.com>
Date: Tue, 3 Feb 2026 15:48:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
 <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com> <aYBq2EoeP_TGv_sK@Mac.lan>
 <1bcdd2dd-9b2b-4eb2-a569-e28b03c1e1fb@suse.com> <aYB4z8CSA590Ytpo@Mac.lan>
 <da490e92-c8b1-40b3-83ca-ad77dc2defe8@suse.com> <aYDAUCVdk_2qGa-r@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: <aYDAUCVdk_2qGa-r@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.02.2026 16:18, Roger Pau Monné wrote:
> My copy of the PCI Firmware Spec v3.3 contains:
> 
> "4.1.2. MCFG Table Description
> 
> The MCFG table is an ACPI table that is used to communicate the base
> addresses corresponding to the non-hot removable PCI Segment Groups
> range within a PCI Segment Group available to the operating system at
> boot.
> 
> [...]
> 
> 4.1.3. The _CBA Method
> 
> Some systems may support hot plug of host bridges that introduce
> either a range of buses within an existing PCI Segment Group or
> introduce a new PCI Segment Group. For example, each I/O chip in a
> multi-chip PCI Express root complex implementation could start a new
> PCI Segment Group."
> 
> Together with this:
> 
> "The MCFG table format allows for more than one memory mapped base
> address entry provided each entry (memory mapped configuration space
> base address allocation structure) corresponds to a unique PCI Segment
> Group consisting of 256 PCI buses. Multiple entries corresponding to a
> single PCI Segment Group is not allowed."
> 
> Given that each segment group can only appear once in the MCFG, and
> that the _CBA method can introduce new segment groups, it would seem
> to me the spec does allow for new segments appearing exclusively as
> the return of _CBA method?  It does read as if hot-removable segment
> groups must not appear in the MCFG table.  I'm not finding any clear
> statement in the spec that says that ECAM areas must previously appear
> in the MCFG table.
> 
> I'm not sure how common that is, but it doesn't seem impossible given
> my reading of the spec.

Hmm, that'll be a bit of work then, as Dom0 will also need to propagate
the necessary data into Xen.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 15:00:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 15:00:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219321.1528203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnHt1-0004fG-JD; Tue, 03 Feb 2026 15:00:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219321.1528203; Tue, 03 Feb 2026 15:00:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnHt1-0004f9-FP; Tue, 03 Feb 2026 15:00:15 +0000
Received: by outflank-mailman (input) for mailman id 1219321;
 Tue, 03 Feb 2026 15:00: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnHt0-0004f3-Ci
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 15:00:14 +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 0a58f970-0111-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 16:00:13 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-432d2c7a8b9so4905069f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 07:00:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e10e474csm50972590f8f.2.2026.02.03.07.00.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 07:00:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a58f970-0111-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770130812; x=1770735612; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Q6R18DRHSjMVdzjMhz9C9IFfVmUgXEpBSDJyJJvfFVM=;
        b=O0QVQM/N8SBrzg9c+so3nVmArog0ZZ2b2n35GQpmgaSkL5jwAn4+b4f1F/dqR5orSH
         h/RYehn6TJdvxUTBhCw88LhK/bcidn4CrMZIySfSQRWmdyrBil7emMnDcHHFiGQTDhsE
         G8V2WU5HlICw0Dc20L6qrCs01XD5faZos/hIZYX9SNxsy/AG0/w5FVp4y5dOu4UBkrrv
         0RUkqBx6FqtfPi57G16lfVm/9QlfH99J9Yltv/bR3ZH1M5uDDv36y0GFlLlIpqXq6pGF
         y9uF1ycZqc21At0jL304EYONcLGNhWl053f2DyISbMUCsStm2aYjkZ6fb6msQ7pW2FpZ
         q9RQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770130812; x=1770735612;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q6R18DRHSjMVdzjMhz9C9IFfVmUgXEpBSDJyJJvfFVM=;
        b=biXyR3bKHBPNCWUv0Msrb95vdKbj3jYvkd1U1xDd3qLFbq0NuAum48opDbhoUpC1Su
         jsjHL9viRkuTEhtst5O5sOJxE0EdY68pAidxWYO3yOhmcE6bCk4PxpfA/r1igESK59jg
         LWbARAnY4UUGHOFpf5A8w9/h010cpiyQ7GnAAXq1pbT7PLR2qarn5NesQh5Y22MGwcnq
         HBaCRvCc6CuPjWAdiKTMxaVhUZvmepMsB7Q+5CEId8ZrpcSc8/JMWaSEep9s4cX4jDoH
         Yh5UjeS2f3pyjJ2va+kzCyy2SdwS7kGmkKrs2VVozyLnOLZ32rg6iNHMTLhaXs+sZCSg
         xgNQ==
X-Forwarded-Encrypted: i=1; AJvYcCWenZOgfvZNswqWleoj8LcUXF4gsArq5JvxQRmXW4Z/S2Xzyz5kecx4okggYgZI1CbBoX68P7sShg0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZeigQEh+uhWsYEynTi4qwcKl2A9SiXQzZQnU+NCJtmoIQz6DZ
	UX7ZDOVYLWwXYsk5XjzhMMwBmkhLfs0vbs/0LXF//vUoF1fN726EKruSkv8WORA3ow==
X-Gm-Gg: AZuq6aJ3s3Lit6MYdmbmTgPaD8+bMrvgWqvksBPors4sEK2juSHFRl89XzuIxYzewEw
	B35m+2XNziIYMywoE3O75J7fgMS3n29ww1jQo5jVaKS8qnE+TGZfIVz4G4XeQTj50SrJjKjT76R
	t0PCHx1wkhBa7IlXEmK8EFK+llBaI6kDev63DIkFvTk1v6DfmCcIdB5fCEkWiG75evgcUM7JM6G
	5P2q0FdQ7xzpYu0g3EEroa7DC8y3EFC2QScieygZ9BhTX1EVdibW9QsMvVnXsRlx9YKcAq3PWJX
	WCmj3Ggrys5qqoZjZERsBiCHAxsaFEf43OgZB9FdIQh98oDrKtOgWYFPOzetc0uYsb7YfzQLJXe
	nVd7hua+MZ2o2zErkDqpDb7eRXA72ICXqV2MmwsKTL/0IMyVyJWXiQImaQq3s80Dp76ThbFb0jr
	DYQbqLLGu2eettav310SnWnYklbyjrLCPuJDz3EY0wURo1MJcM+KsitzNdXhnqYn0XodgrpXStf
	ek=
X-Received: by 2002:a5d:5e01:0:b0:435:ae97:b31 with SMTP id ffacd0b85a97d-435f3a6a8cemr19971432f8f.2.1770130811997;
        Tue, 03 Feb 2026 07:00:11 -0800 (PST)
Message-ID: <2c2b6189-9404-4378-a101-3a93cbadee43@suse.com>
Date: Tue, 3 Feb 2026 16:00:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 4/4] xen/mm: limit non-scrubbed allocations to a
 specific order
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: <20260130145726.85907-1-roger.pau@citrix.com>
 <20260130145726.85907-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: <20260130145726.85907-5-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 30.01.2026 15:57, Roger Pau Monne wrote:
> @@ -1117,6 +1130,14 @@ static struct page_info *alloc_heap_pages(
>                      scrub_one_page(&pg[i], cold);
>  
>                  dirty_cnt++;
> +
> +                /*
> +                 * Use SYS_STATE_smp_boot explicitly; ahead of that state
> +                 * interrupts are disabled.
> +                 */
> +                if ( system_state == SYS_STATE_smp_boot &&
> +                     !(dirty_cnt & 0xff) )
> +                    process_pending_softirqs();
>              }
>              else
>                  check_one_page(&pg[i]);

Coming back to this, I see two possible issues. One is that on x86 enabling
of IRQs happens a bit earlier than setting of SYS_STATE_smp_boot. Maybe this
isn't really a problem right now, but it could become one if the "wrong"
thing is inserted into that window in __start_xen().

The other is that only x86 actually ever sets that state.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 15:31:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 15:31:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219332.1528213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnIMc-0000SN-S8; Tue, 03 Feb 2026 15:30:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219332.1528213; Tue, 03 Feb 2026 15:30:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnIMc-0000SG-Ni; Tue, 03 Feb 2026 15:30:50 +0000
Received: by outflank-mailman (input) for mailman id 1219332;
 Tue, 03 Feb 2026 15:30: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnIMb-0000SA-LZ
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 15:30: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 4d428a12-0115-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 16:30:42 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4806b43beb6so42312435e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 07:30:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48305129419sm65703295e9.6.2026.02.03.07.30.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 07:30:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4d428a12-0115-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770132642; x=1770737442; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CjL/uXYvrrj2UB/EVk1KJUIPlCl9MwOSChFNACjBjfM=;
        b=AGMthqpBFMREo6UAbAauN73xm/M11JEEOD7Fqir2INqMckObHFStJWsw1E17XUc3B3
         ANBjcCKD60iDwuCflcKNfd35vn9aZ5vptxrQDG8hj4mBy4jJlkoUmoNKDl32X/9WfSq3
         73cDtUW7CuF4YFd77UW3BQBcH7YH48afctNibg3qHk5Nm3btn3+8OJkS7Jnwrd7CkcxQ
         G12GhFAjDujlGu9CF/v6GhMn295LbBtlduV8rRv0k+Y6a+hOpFi8WBOwRu+FrAROtH/M
         iOqRh291gAawTYI+JWfyNs7N7CRpnoNcjIEECC6vHYlzu8fPnCQ+mHA7GJ19X4ApCag6
         KWUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770132642; x=1770737442;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CjL/uXYvrrj2UB/EVk1KJUIPlCl9MwOSChFNACjBjfM=;
        b=H1pkbA+q0+34tuQYs2c1OiO1GzIN+/Fzip4jjxDUjWJ0wRLFL+Pm57QGAkUG6bS3Rn
         2L083AQuRGjUstzLofpMidqbOMGMWDAEKpRLFvCZoOGiuFgxhKRUL15s7EU2HzDyGh02
         CeHe27fB1ClMdwKpBKQ66CyrMCAiy9yykyVnvbe31WpLlj9wvZ0KtN42l2ZQyIYRJ3Fj
         Eb3KrbyE5eKH5+2TPgGWhp55Ew+UO783IUAaeB7hah0NOrvEtzE+4ahqYZEuH4dZOj5W
         MZwFv6qekVBXPNyCeVL42pL0X4VjKi4myDIuDwnF6mu7VHkaPLdWOh+ynQkqpYE6T7Ci
         o8Mg==
X-Forwarded-Encrypted: i=1; AJvYcCXNLcCbmFwg/q7fR1PehIz9d/TZZMhoOVOS8LMKYEwxThwp66HRHnryb3lwVM1qRPVgiCvnY8b3fK8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx7z+c4icHw00mK/+V1vM78neRc1ke5dcgR7fGZS5IWBzp2QqRQ
	CSiFx/8qvkUnsclb9JBCdocaujcGMip7PdsS4j2iow8bdjYO7tqAaSG+UrnouV2xhg==
X-Gm-Gg: AZuq6aKfdyO7h57w75D55n8XtwDdEYHmEjOztJ0lH9mR9R7P9dPsdFBh97SBZgRR8Qh
	yO2MCNPmDLDApZRz8QfZEPOVchk6PxwnWfHX/LG6zfoSmUN0eAiulahSYgr43am9pFvmEqL9R4I
	tExPrXcU33fU2xPypdT5dWFiGS4VqtcVrstTL0oKweXoLLKisbOMITtSU+pPpdFAa7YF3eVKdWS
	6fY/iFEClzESs6zBXJeVtDQAJ4NBpKsqGOvBSBA3V7sCJEl/rh5dcZ91Q43jtjJqcW7kzmYvYv9
	GZXIjHUduHnwpgQo1A/6G5MSQvoA0hHM/ztrjGNo3djAf7lXTewajpdCdmrEXq5UGDkTOE2bgzX
	V8zp9A5HMrphSOfgkYIdA8/3CdcqA4eln0xFX0fXlDnrlAB1+V23juRG5Cj39vsLOnPu5F2qlp9
	zmO3rastYkAxHcxoOYnNDD8hsYxymQHUBty909QXbW9Ab9EUNqMOFzxHQQ6vSr29hu/kOs7Bj92
	0IjzT85EbRkvw==
X-Received: by 2002:a05:600c:1e02:b0:47e:e87f:4bba with SMTP id 5b1f17b1804b1-4830e986031mr76045e9.29.1770132642249;
        Tue, 03 Feb 2026 07:30:42 -0800 (PST)
Message-ID: <0fc9a80a-8621-4ce4-b2f9-c102e975b05b@suse.com>
Date: Tue, 3 Feb 2026 16:30:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/2] xen/console: handle multiple domains using
 console_io hypercalls
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: grygorii_strashko@epam.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2601291404410.2238666@ubuntu-linux-20-04-desktop>
 <20260129220858.2371938-1-stefano.stabellini@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: <20260129220858.2371938-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.01.2026 23:08, Stefano Stabellini wrote:
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -518,11 +518,16 @@ static unsigned int __read_mostly console_rx = 0;
>  struct domain *console_get_domain(void)
>  {
>      struct domain *d;
> +    unsigned int rx;
>  
> -    if ( console_rx == 0 )
> +    nrspin_lock(&console_lock);
> +    rx = console_rx;
> +    nrspin_unlock(&console_lock);

Did you test this in a debug build, and it didn't blow up? The console lock
is an IRQ-safe one, so I'd expect check_lock() to complain that you do not
disable IRQs here. At the same time I don't think you can rely on IRQs being
off upon entry into the function.

Anyway - is locking here really needed? Wouldn't suitable use of ACCESS_ONCE()
(also elsewhere) do? (Such a switchover likely could be a separate, prereq
patch.)

Further, if already you add locking on the read sides, what about ...

> @@ -540,6 +545,12 @@ void console_put_domain(struct domain *d)
>          rcu_unlock_domain(d);
>  }
>  
> +static bool is_focus_domain(const struct domain *d)
> +{
> +    ASSERT(rspin_is_locked(&console_lock));
> +    return d != NULL && d->domain_id == console_rx - 1;
> +}
> +
>  static void console_switch_input(void)
>  {
>      unsigned int next_rx = console_rx;

... this read?

> @@ -555,7 +566,10 @@ static void console_switch_input(void)
>  
>          if ( next_rx++ >= max_console_rx )
>          {
> +            nrspin_lock_irq(&console_lock);

As indicated earlier, you can't know IRQ state in anything down the call
tree from serial_rx().

> @@ -742,17 +765,36 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
>          if ( copy_from_guest(kbuf, buffer, kcount) )
>              return -EFAULT;
>  
> -        if ( is_hardware_domain(cd) )
> +        /*
> +         * Take both cons->lock and console_lock:
> +         * - cons->lock protects cons->buf and cons->idx
> +         * - console_lock protects console_send() and is_focus_domain()
> +         *   checks
> +         *
> +         * The order must be respected. guest_printk() takes the
> +         * console_lock so it is important that cons->lock is taken
> +         * first.
> +         */
> +        spin_lock(&cons->lock);
> +        nrspin_lock_irq(&console_lock);

While guest_printk() does matter here, it taking (down the call tree)
console_lock isn't alone relevant. It being called with cons->lock held
is, .

> @@ -816,22 +857,39 @@ long do_console_io(
>              break;
>  
>          rc = 0;
> +        nrspin_lock_irq(&console_lock);
> +        if ( !is_focus_domain(current->domain) )
> +            count = 0;
>          while ( (serial_rx_cons != serial_rx_prod) && (rc < count) )
>          {
>              idx = SERIAL_RX_MASK(serial_rx_cons);
>              len = serial_rx_prod - serial_rx_cons;
> +            nrspin_unlock_irq(&console_lock);

Can we please have blank lines on both sides of this?

>              if ( (idx + len) > SERIAL_RX_SIZE )
>                  len = SERIAL_RX_SIZE - idx;
>              if ( (rc + len) > count )
>                  len = count - rc;
>              if ( copy_to_guest_offset(buffer, rc, &serial_rx_ring[idx], len) )

Have I perhaps talked you into moving the unlock too early? serial_rx_ring[]
accesses look like they need to be with the lock still held. Or, to avoid
calling copy_to_guest_offset() with the lock held, a local copy would need
making.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 15:47:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 15:47:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219343.1528222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnIcQ-0002Dw-53; Tue, 03 Feb 2026 15:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219343.1528222; Tue, 03 Feb 2026 15: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 1vnIcQ-0002Dp-1A; Tue, 03 Feb 2026 15:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1219343;
 Tue, 03 Feb 2026 15: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnIcO-0002DT-In
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 15:47:08 +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 97ff3b54-0117-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 16:47:07 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4801bc32725so44750895e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 07:47:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482da8eb486sm147965185e9.2.2026.02.03.07.47.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 07:47:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97ff3b54-0117-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770133627; x=1770738427; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vFDsgFqs2ZxoNSTm7F0bX77nilGUz/yCY+KB0l54Guc=;
        b=KEo30Zrn6UkQABqM+2sjTk+vtccn0dI/QMvZvm3kODXwZHGgzcOw4AjNnhPN/5VvSR
         K9hRObdltH4z+TRg6GrC3EYwiurqyAUxYpepd8qBwgDvMIMBDi4Ed73ZWWvYlq14hQlM
         K76uHR8gBa8lOfrkdR/2UxkJmOu6bfn8PD2vryOZ8FLjlD7SpwOkEGI77lZqhklruM5p
         6tLOiJ1TFVUBapMP5O3ta+TVmuq2YMuZS+kuvQUXcFcSczS16Mfe9mgAoggLolqlrZEh
         5ZGSlM2EUpOKPbKkvIc7t8AW94iijpc+RQTLLxKo1AlOkSJS3GBHfi+7P8jv+5Tb+1+E
         uI6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770133627; x=1770738427;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vFDsgFqs2ZxoNSTm7F0bX77nilGUz/yCY+KB0l54Guc=;
        b=Q0xCmekSwnnoCp6zrTA90669Gp3V1LXwyIcI2VAHTcUhCZ2igBeuN6J+trvrX6zby6
         rqsniZw7GrEjSgpn6YhVhrcW5T86p/0eBuSSg5S1rg82V5BAG1rLBkVmv4sQzTIqDQfw
         x1xaL95kyQtPLgW+ZZoQYcW/mbxa/3t3lWilzcEtmC5KmCDwC159gqTNF/bPjVMRNwpW
         BSTTZ4tqlX/4ly4CfLDW3FsxvEI77thMmgPKa5cqEKXLwDma2MP2A8RZra0Zr+JSHux6
         YSwpUCYpRGzlSxVS33+Rb/GdiPUZ/y+LEhfVy2uv5/LQcDEWDFgkdWBeyzWHQY7DY66Q
         oxjg==
X-Forwarded-Encrypted: i=1; AJvYcCWsCfWj8hoT18+z+pAuI6FLd9pMVlVSRiFV+T9m1G31ggXXlb1Ios5E0bJwYBlbkk+/eJtumfiklpw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtVSaSLrIg8s6UNf9LcT44sgFJyTz6W2rLBFaAgkkXbNJC5xlX
	TzvJ6iMXLxuLbVUs8ErwInhXiDL1yTZv8ydwN+AHp+a0mKBHHjrqh+GC0NVxwGCAOQ==
X-Gm-Gg: AZuq6aJChy366igfBTSOh+SQ4afcuo1qojtBLrbWsSQxvRjjnHFRf8uG2NpfbDsX8Bb
	F0qYLDT4HFQjZBwqCvuMSpQd2eCRanBw0GKRlRFdf6OngG6G5apShFeEYpWSB2XGEWwT6155F8f
	Y4SZcTH20WpQXReJNCywEx4fH2qo1898Fr40Q2gZzFaM+4ij9S5nnYffjcH7/tc79vPMHPfXUKb
	Gzi9+9+f+86zUYn9rxPSbMKInfARO81SgwHv3eS5+1IMtuPffslxp9p2Cw5QbehFEAa+7mUp8oc
	th28bkz9eok+P+0GrI7U9xN12ejTGwy+GLDglGyCy93915Ckevb9+rAPX2CCYW/o2/xgnipfyFh
	lzd/S7QkDYQ4rpvLHfaUKFwmDus8AZkROOWIPBRTzM/KOSAc7+boTDdcuwdQB+WkXdsczd86eBO
	G5qzpV/YR/QUXLeloDRfKKRR3qAlM8x/NGByJtV8uXMpix3xI/57FNP82yBZdp06J+XUZeaumZ8
	Mg=
X-Received: by 2002:a05:600c:820a:b0:46e:4586:57e4 with SMTP id 5b1f17b1804b1-4830e987d12mr855805e9.24.1770133626752;
        Tue, 03 Feb 2026 07:47:06 -0800 (PST)
Message-ID: <ee928798-73b6-461b-9c43-b34778a4f89b@suse.com>
Date: Tue, 3 Feb 2026 16:47:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/16] xen/riscv: introduce basic vtimer infrastructure
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <381c200edaff013d999c6314c20e8cc8bdb5b041.1769099885.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: <381c200edaff013d999c6314c20e8cc8bdb5b041.1769099885.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.01.2026 17:47, Oleksii Kurochko wrote:
> +void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
> +{
> +    struct arch_vcpu *avcpu = container_of(t, struct arch_vcpu, vtimer);
> +    struct vcpu *v = container_of(avcpu, struct vcpu, arch);

Why two container_of() when one will do? (Same again further down.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:28:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:28:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219369.1528252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJGI-0008Vq-8c; Tue, 03 Feb 2026 16:28:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219369.1528252; Tue, 03 Feb 2026 16:28:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJGI-0008Vj-4e; Tue, 03 Feb 2026 16:28:22 +0000
Received: by outflank-mailman (input) for mailman id 1219369;
 Tue, 03 Feb 2026 16:28: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=NbdA=AH=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnJGG-0008VY-HH
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:28: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 58683d58-011d-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 17:28:17 +0100 (CET)
Received: from DUZPR01CA0015.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:3c3::18) by AS8PR08MB9429.eurprd08.prod.outlook.com
 (2603:10a6:20b:5ef::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 16:28:10 +0000
Received: from DU6PEPF0000A7DE.eurprd02.prod.outlook.com
 (2603:10a6:10:3c3:cafe::10) by DUZPR01CA0015.outlook.office365.com
 (2603:10a6:10:3c3::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Tue,
 3 Feb 2026 16:28:10 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000A7DE.mail.protection.outlook.com (10.167.8.38) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10 via
 Frontend Transport; Tue, 3 Feb 2026 16:28:10 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AM7PR08MB5381.eurprd08.prod.outlook.com (2603:10a6:20b:105::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 16:27:06 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 16:27: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: 58683d58-011d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=YTZgPIEz75NBIuHqZ56+MFKjsrtmsycwemvk7Js9LK8HQfIuIQTp4Rs5h9sKmerheqaCBb8ZacsJ6jk7CD4h4UBnPB+b6d0ii7ngplqoi9UlV0uYu9RwE+wyQeiA1XiQUh+MigrFBSykwmdmBjetZcTexyGI34BzE83cZd81o9C9vGNL9Is5TX5gRveNRKkBxmkcx/ntc5lVQlsKWggGdENbwSH3UODh+njMYz10YkobqUP1O5q3kHGTseL1GU6l5aaDUIjavwc10XN2QAhcYpTuqRyJGK9tkYM18iLrtlJhMsvf2ThWFN7g7x0qnsTkrF8b5/Eh7ppJDhD517q4ww==
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=ndlUJPM5U2si1CrqH2NSJdSjz7TP+nLjnAauemSgZW4=;
 b=zEHohvpvT8EgHqYEwOVRK8gX4D+yROcanA8EPJh77gdfbBMajOkHBF8G9ogU/IPlKkqCuQgPDFRWsqc+UFZwBQDVd1yojiYB05ipkiPDwnday+/qGudVgMVu3E4ToZLbx4lv0FwWJDbF3X1BwU3cvEsT+3Tfhmm6Y1XaMHbOoIFBrW9JhG9WzggAwhConzpYjv2ZZvxdzDbDgbU/ntj3i/swCo/HrYBpdRqLJ1tMSiT6zN7My4eJPcE8n9lB19QXoo8z3OWVvI7RNsw2UYRiV6wBF+MaKz9IZ0+qrl/tf4HhUr4gpNiLhDCV+j4fhm1swMcARCPpw0rf9yF7F0vt6w==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=epam.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=ndlUJPM5U2si1CrqH2NSJdSjz7TP+nLjnAauemSgZW4=;
 b=qMjFDTUwuGDb2+rGoRmHWP0sydy95LdBkWtWxieQbBH/XH3NTC8itIVsQLbMHVL+vILPH7L7oxM+sIoai5aLv5lrn6iKLelrUHSt/hlmJlhstY3eLE6towr5/kIlaLmL8U1BVtOinSvK/H/Se68Uxme50bX69yWwQza87Zz0W3Y=
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=ejY2T1rYT/WJ7yxxJyxRO8yb3hLZrdivNQy1X9d7Ic1R3IYj8/8fm6mcYxRaVZCSlzy+36JHRGp0f6hnk8GbzJK8f77VtNqYGCUqPM9XnIgykwtFN0214FYOigpOxg4ou3RqQUbIv+TCKNyOwQWRKH8Xm4qbMs66ZPJIx0aNIDQuVK47bhza7u2Q33WBMuSWPgE1nkM/oZr7su+VO6TXxL4Hds/9n24lbsnLhxbCMN2xhZQmcugys89+NDmLC+4vliOV3wi90ucyhuO4fcTpD4mo/fkgE79iTHr92u22UBOguVb6q/9PIVOTkkBzm7X2NTrOSLEozsekGCGT5km9+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=ndlUJPM5U2si1CrqH2NSJdSjz7TP+nLjnAauemSgZW4=;
 b=t0T/625Z5RxWI7O/8FldVL8coM2vqYPRw7y2CdZsnoTrqvg+PW3mhgxucxtz/abtCzxPgB3UttRaACN1r+lfDMTDxAJ3X1nVkC4ErGaChLxQiHi8uulKAYqP/3IyHJ5uY3Pxh1zVggHujS5CnMaSmnzHUGNvE/TSk5UvZTYy9RqHSU+9151UmpRwjMK/ZaDHQQ2I8vEke6RlUgm0xRaqiPmQ55DB7+9J3uKNOl5ZwGGv4vBKVnNdnWSu/fdOqRzG7lrTsL8zl1SesIg0zTMIECU/fDqLYJeEcExZQDynmXlt4HME1Nr98Wzmp/2DzpsLpbU6TapUAaP+S042S/zSfQ==
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=ndlUJPM5U2si1CrqH2NSJdSjz7TP+nLjnAauemSgZW4=;
 b=qMjFDTUwuGDb2+rGoRmHWP0sydy95LdBkWtWxieQbBH/XH3NTC8itIVsQLbMHVL+vILPH7L7oxM+sIoai5aLv5lrn6iKLelrUHSt/hlmJlhstY3eLE6towr5/kIlaLmL8U1BVtOinSvK/H/Se68Uxme50bX69yWwQza87Zz0W3Y=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Mykyta Poturai <Mykyta_Poturai@epam.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"xakep.amatop@gmail.com" <xakep.amatop@gmail.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 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: [RFC PATCH 00/19] GICv4 Support for Xen
Thread-Topic: [RFC PATCH 00/19] GICv4 Support for Xen
Thread-Index: AQHclF8GgI2Kr/X/QEO5wnP/6sbdXbVwv1qAgAAn3QCAAEPbAA==
Date: Tue, 3 Feb 2026 16:27:05 +0000
Message-ID: <656D8BAE-7237-4B19-9508-09ACB0CB59CA@arm.com>
References: <cover.1770046465.git.mykyta_poturai@epam.com>
 <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
 <88755b1b-a9c9-489a-80e3-e014244b108a@epam.com>
In-Reply-To: <88755b1b-a9c9-489a-80e3-e014244b108a@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AM7PR08MB5381:EE_|DU6PEPF0000A7DE:EE_|AS8PR08MB9429:EE_
X-MS-Office365-Filtering-Correlation-Id: f3ac2dfa-707d-4175-54fb-08de6341384d
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?NUpIU2xhTXlkQTRiN3MzU0ZYaFBRSTFsN2Y3dERHTVJVdnZqb0VGWDg5eGdB?=
 =?utf-8?B?c0IxQUVWQ1lOMVdFYUZJekpoZXkzYzMwZ04rcGQ4VGFvdGpOazlzWVNab2Fy?=
 =?utf-8?B?dXQzT25qMjdaWFBpQzVxMjlWcnVodHY1TGh1emtFL0xqbEJZTm5McERhNE9p?=
 =?utf-8?B?UnRObW1aM1lvd2tzUk0xUnlmakRjNG83ckx5bWNsdWg0YVVld3RielZrK3BB?=
 =?utf-8?B?LzZnZXFVMXd5S1N1YVVsR2xZQ0MweVowaWJLWG1tZ3JwaGFrZmdzR0x4Y0NM?=
 =?utf-8?B?Tm5ZditxQjF5L3dmK1prTXpwdUZHSmdsbTUzNDB0S3JXWmF1clBqTFVUVDlk?=
 =?utf-8?B?Q29MV1pjNkdjUFpjMGplL2ozNGhLYlFqcThocUljS21MNUFaWksyME00T2NN?=
 =?utf-8?B?TlFmQjRWaWJIVlFaZWtmMVhsODFMN3ltaTJZbEtJK1psNTlPN3NEVSt2eHRi?=
 =?utf-8?B?SUhBUmpXVmpoTHJZcUZEb1krSkhManFkeVk2YWxtYU5YWHp0Mk40ckxLWWpE?=
 =?utf-8?B?akFkeWJ5NXMzUHRPSlB5ckhkRkZQL2ExbmlYMjlNRzFubmFIMUpGT3hUWHBR?=
 =?utf-8?B?WDFuVTRWaGtYN0svajg0aXFWOERZWENiUnE2TEpGZ1JIN1ZHUVl2WjQzVmlI?=
 =?utf-8?B?V0Z2RmVYaXVKMlBxbitlZ2poeTZ3Zkk1dnFDWUFPd3ZNdlhBNjRUNFVkb1Vk?=
 =?utf-8?B?Z2ZvWHJFaFgxZGNwek5XNU5yRm5udXArQmlGS3Fpa2ZnL0dqRXQrN0UwbVli?=
 =?utf-8?B?QWw5bENxdzUxci9EcVF1eGRKVDJCZXplU0kvSTdlaDJYWVF4WkhPZ3Z4TzRk?=
 =?utf-8?B?RXd6MFAwNm54ZXpJV0V6WVMrVFZISk1NSjlMQ2tEbEhFSU9oQWFNbkY0TTJn?=
 =?utf-8?B?NngwTEgxaEdFZUg0ZVU3Sm1rcGxzb0Iyem5MWVNianhiWXl2U3NHR1RmTERV?=
 =?utf-8?B?ZXVERnllL1hQd3NGZU1LTytzWGh0d3dDUDQwMUdOQ3VOUlFFWmpZUkN0U05Q?=
 =?utf-8?B?cFo0KzFGUmJmRkZLS0RMQXN1dzFsZlpDNFBNQ1Q5MmY4K2xlZTZrbU92b3BR?=
 =?utf-8?B?bjIxQ2hSZmxBL0tqSzZzbC9IbWh4K2Nia3htM3cwUHBxdjhUUDNHa1h3QkIv?=
 =?utf-8?B?Vk03N3hKMk9DZUNHeUJGeHlVRzJBZitOTnJxbG9RSUw4MGpkK0hOMmwyYUZS?=
 =?utf-8?B?d1pjTzhMa0k5MFBiVm1ORnlHZk42SVRhcFRRa0J6SmpNaklaeWRoTUtSdTJ2?=
 =?utf-8?B?Lzg2MmFCZTUzL1ZIYmxTSExoc296cGI3ZUFxLzEzRGNCUDNSczRqOWg0L0Ix?=
 =?utf-8?B?aGhtRFU5anhmem9oenFyS2lNUkNmN0g4UmpVb3p2NlZkSU00eEwwbFhKYWN2?=
 =?utf-8?B?SEs1Tm05UDNTNUljbVA1dHhLQzNmekZydjRoTk5yN1pBamdQbS9rUkZ4ZFZw?=
 =?utf-8?B?OGdHVnM4aDNncjlqRW05allucC9temhNaFp6aVg4WnExempadDN5NHZTaUNw?=
 =?utf-8?B?aWlnVWVIdlJTdEQvS0s5bC9VdXJVcHZhNnA4cW9UQkF3ckNGN1g0L1NZS1V2?=
 =?utf-8?B?QndpWmtnM2FXeVROSytJQ3l4SUZJZWwyM2phajUrZEpLTVJXMENNNFQvaDBO?=
 =?utf-8?B?czJ0QlhtdmYwaXJhVGJQOTZ2R1daYWxyZkpWcFV4NVFJc3dpOXo1c1dwVFMw?=
 =?utf-8?B?VFlwUHRaaU42T0tuNWtES1g0eDBta2E0S1Q0bFFlYkRrTEpXdWJlMzFvNDFp?=
 =?utf-8?B?QTdMaUpSaG9LeGFoeEdrZytMT0daajhEeFVCYWtna0h0R0JyVHk2MW1aY09X?=
 =?utf-8?B?dVVqKzV3eXRnZlUzTlY1cGQya3NhRitLalZ3NXJscFhvVHc5ZGZYSXFJMjdy?=
 =?utf-8?B?dlpKcEdHVFVoVzNUUzNWbGliTFhueGgwTHFkQ2hQblJUMEVja014TTV0ZEV2?=
 =?utf-8?B?SzgxeG5MWURFQnY1cmF6aHY3OS9QdnFhQ3lUOG8vbXljWWlKeE13QkRNVFFx?=
 =?utf-8?B?QU9rRXlHR25wVkk5bWhqL0ZXMWpvWHRvN3pUT2F1RGp1TzdTYVFSeml2bFpS?=
 =?utf-8?B?MGJqZytPZ1JrQjFkZWRreStoWElua0dTNmhZN25wRll1a3dSVVVYWjVIM2px?=
 =?utf-8?B?L01DUys2ejl3ZmVWa2NQUWF3ZFQ3VzI5TFFzalhDRWFXL3JiMUttWGhGU25w?=
 =?utf-8?Q?FRE2EqcT8mslvUc7Yc9Au+s=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <5D4EA70C3C13174EB44501450988A211@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5381
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7DE.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	53e15cd1-cac7-4f0a-0ca8-08de63411184
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|14060799003|7416014|36860700013|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RE9TZ0lXSWtvcTVFUkNCWWtzVTJwNFZwZVJVQmttcWNtaDNBb29oOWZDT1Vj?=
 =?utf-8?B?czBHRXRhenlLekkwWWNiWkEwUDF4MXg5S3lEdG9Xbm10SXRqQ082SVFwdzAv?=
 =?utf-8?B?SkREcEZCbG11Wmx5bVRQS2JGQVZmdGJQMmtQa2czYlRUZjY3THJSeXorKzE5?=
 =?utf-8?B?RUFYSkhjdFBScmozcXdqS2xyZ3NYeURhVll3Skt4UkxoSzhPeUEza3VnVUpO?=
 =?utf-8?B?ME1GS2NBMzE2VE9vVHZLOGFtTkZUY01Jb25vejUxUDlUeEN3NTNtekRmMG95?=
 =?utf-8?B?SGtzTmJhTW90R1k0L0ZnRDdzTWlUL3ZRdG1Pb2Z0djZoU2FhSUlVakJzUXdC?=
 =?utf-8?B?cFE3S2lISGJBUHRrMWpERUVEZmZNQjhjLy9RLzRMR0hTSi80cmhrdG9zc0dC?=
 =?utf-8?B?OGthQjRWcXUyYit5dTV1Y1RESWRHVi9QMzRWNFhPWFpxNUJUSTBORkp5czRC?=
 =?utf-8?B?UE1pQ1RqMUlzaHhmbUt0MWhBaFRid3BTWS9HVUVLRXJSUHpoaWw5NjlzK1pV?=
 =?utf-8?B?NWRmcGxNZUM4WW9CWUs4eC9tdTFzaEprUlNJOEdJQWVaMjUxaFhnR2pOYzJJ?=
 =?utf-8?B?cjFMY3A5TS9XUDFyUkx2TDl4U3lORTZ3bnhCTkRZNFFZOXp1cHowRGlqNlF4?=
 =?utf-8?B?TXpMcXJnV2FqQUl0OGc0dTV5eVRPakVGRDREdENVSzlPNld2OXlEMk9WVXVR?=
 =?utf-8?B?UkRmUW14aUtNcytpU0lVU1RsMUZwdlVJWjRrNk51bEhLVGh0dXdBaWh4ZXhR?=
 =?utf-8?B?ZGlGQ3EyVUowcWh6WFlqVWhGTm5vQ01ieWJ2SG9CaVo1WDM3Vy9ETXJFcGNM?=
 =?utf-8?B?Uktya2Z2SnJubEJxTGZ5Qm5oVXNsL2p1N0NFa0kzci93TmpjbVhkbmM5a1Nw?=
 =?utf-8?B?ZUluT2FheEJLWVdEMWRpeU9aa21iSVFrZ3lJWmdBLy9PN3lhZzBpemVGSjls?=
 =?utf-8?B?bURmL3QvVE14Y0RyWlJUankvVmt6QXdnOUNpMldpb3JTa1R6ajAzZWFtTU5L?=
 =?utf-8?B?ZTMvR05EZFFOdENqNkNhbGVFeHpCTnY3TjNrZCtBZ3N1UStFTTBlanZQZEZm?=
 =?utf-8?B?RFhOWlVXQXptNFhHWC9LdHNFeHlXQ1dPOHJjckc3NXJKK0VTenNweUVpZCt0?=
 =?utf-8?B?OVcveEwxdkFUOGNtRmhiVlBVQTYxbDY5ZWg1dklFRDdibnVMSWZOb0VkZnJt?=
 =?utf-8?B?ZytWVVdYVjUvdlZtbnRFSGdveFdDQWpaeGlVbVVxL1hGRUZhWFpDUVpPMXJC?=
 =?utf-8?B?UG9mNklYWUkyTVVHRDJSQlJvazNueHFVQlg2WGdVSUVBRDIxUWt3RXF2Z2Vr?=
 =?utf-8?B?OXBweDdRNkFQQ0xZV3ZodmVsSHhrWE94RGl2c3hjMFhLb1BLdS9hOUpSVEZ2?=
 =?utf-8?B?STRpeFdEczFtS2J4U0JYU3ovUGF5Q0lLa0hqTnYrZFhxNnlKNzhkNXVSay8y?=
 =?utf-8?B?NGFvNUIvanIzVk83T2U3aUNDTU9JWktGbklnNFJJN3daOUtvRWJOZnlEamhp?=
 =?utf-8?B?Q1BGK0xGcjBkZHE5ZU1CbVNDRm9QTGdQKy9Bb3VxQTlvVXYrY2JNZUZzVUp6?=
 =?utf-8?B?L3laelFmZ1VLNWRXZVBGUGJWY05FQXNhQ1Frd3NMVGJGNHh0MVpPUFYyL0tM?=
 =?utf-8?B?UnFXYVZaTHJPTWg5YUJCcVg3a3lmcFZLNHorT01qV1VmWGRFWW5Sd3R4WWk4?=
 =?utf-8?B?aG52dXJFYWZiTy9tNWtoTXlac1JRMFYwbGx4UE5ZdVNzYTU0K2tpdU1CZWFR?=
 =?utf-8?B?K0Q4OGdrUjZmL29PNTdpcEVZQ0tQd0RlSW8zbjRBS3piTklnV3BGbGpmVnUz?=
 =?utf-8?B?YmVaeVU5Q09FNkYvWW9iVEI2ZWFscEVDSCtFZVlZdEhrTGhHRFdocmwySXZ6?=
 =?utf-8?B?bitvaUFrMlJYR08rUHhFVkJzTHJQZFdkc2h0bm1Ub3N5M01pVVdvUXlDWWtD?=
 =?utf-8?B?Z3p2UkREQ09JYmV6YlR2ancvN25jSlFvc1RGa0VZRUYyUDlKM0gxa1d3czlk?=
 =?utf-8?B?U0FEbzZBcXlIU3Z6bERkeUN6cENFSTY2b0R0K0R2cGxScHRkemE1eExVaUE4?=
 =?utf-8?B?ek5saGs0ZVVXU3g2cko3N1VnQjVGZzJaNUJRdVFnd1lyMVdXbklyODJYenMx?=
 =?utf-8?B?eS9LQUN6RnVXRmxqT29WL3ZTRkpsa0ErSDhWa0ZhVlhZNWd5c3ZicXpPOU1X?=
 =?utf-8?B?WFhNeCs1M0xNN3BtaE1KbVdjNUVsU2xrWEFLSnpNQTdpL1Racm0zZENMSFd0?=
 =?utf-8?B?TnU4UUVIcUJRZWRuNzFxR3hndGdRPT0=?=
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)(14060799003)(7416014)(36860700013)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zEFMZss8iN51Bv6N6ss2RcRU46olrGsHAXXSJmltntsHn31YlF6Vg2j/6A0uWV3niVIAxJPOv1uRalWFL1Bi1+pQUDEKP96G2r9aNX5Ih0VQbBQTkNhbQfPxAPj1LuLQz9vWnedvwzH8rnq65ZpEjgppBx1ngi0HhX3tHUnIXSj8NoXfvMPj82Bo5w+zr6Bln6flwbQprmqGCZ8gp6n2WTpax6zS2LdqDzV4+BJs0ha0rxvaFjaRPD9uaspnmH9RKVdmIJBW7c7jWnOknqs3GLr0hyliC5fcg8ukdHNch28SWyyy6SylqjKJ90Fo9pzGhoaJ+JPjBIRKKEdLipBm4JeJIxwmKHefnH8wSeUjmkMkNbjf5XlloodVxTcZJx3m0Ol0MYr2hBpLLAdnKfrj0rmYPVyfXw6rCRP00LRDdltp5Z5VUJpiphC86pV+1JJW
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 16:28:10.0698
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f3ac2dfa-707d-4175-54fb-08de6341384d
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:
	DU6PEPF0000A7DE.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9429

SGkgTXlreXRhLA0KDQo+IE9uIDMgRmViIDIwMjYsIGF0IDEzOjI0LCBNeWt5dGEgUG90dXJhaSA8
TXlreXRhX1BvdHVyYWlAZXBhbS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDMuMDIuMjYgMTI6MDEs
IEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBIaSBNeWt5dGEsDQo+PiANCj4+IFdlIGhhdmUg
YSBudW1iZXIgb2Ygc2VyaWVzIGZyb20geW91IHdoaWNoIGhhdmUgbm90IGJlZW4gbWVyZ2VkIHll
dCBhbmQNCj4+IHJldmlld2luZyB0aGVtIGFsbCBpbiBwYXJhbGxlbCBtaWdodCBiZSBjaGFsbGVu
Z2luZy4NCj4+IA0KPj4gV291bGQgeW91IG1pbmQgZ2l2aW5nIHVzIGEgc3RhdHVzIGFuZCBtYXli
ZSBwcmlvcml0aWVzIG9uIHRoZW0uDQo+PiANCj4+IEkgY291bGQgbGlzdCB0aGUgZm9sbG93aW5n
IHNlcmllczoNCj4+IC0gR0lDdjQNCj4+IC0gQ1BVIEhvdHBsdWcgb24gYXJtDQo+PiAtIFBDSSBl
bnVtZXJhdGlvbiBvbiBhcm0NCj4+IC0gSVBNTVUgZm9yIHBjaSBvbiBhcm0NCj4+IC0gZG9tMGxl
c3MgZm9yIHBjaSBwYXNzdGhyb3VnaCBvbiBhcm0NCj4+IC0gU1ItSU9WIGZvciBwdmgNCj4+IC0g
U01NVSBmb3IgcGNpIG9uIGFybQ0KPj4gLSBNU0kgaW5qZWN0aW9uIG9uIGFybQ0KPj4gLSBzdXNw
ZW5kIHRvIHJhbSBvbiBhcm0NCj4+IA0KPj4gVGhlcmUgbWlnaHQgYmUgb3RoZXJzIGZlZWwgZnJl
ZSB0byBjb21wbGV0ZSB0aGUgbGlzdC4NCj4+IA0KPj4gT24gR0lDdjQuLi4NCj4+IA0KPj4+IE9u
IDIgRmViIDIwMjYsIGF0IDE3OjE0LCBNeWt5dGEgUG90dXJhaSA8TXlreXRhX1BvdHVyYWlAZXBh
bS5jb20+IHdyb3RlOg0KPj4+IA0KPj4+IFRoaXMgc2VyaWVzIGludHJvZHVjZXMgR0lDdjQgZGly
ZWN0IExQSSBpbmplY3Rpb24gZm9yIFhlbi4NCj4+PiANCj4+PiBEaXJlY3QgTFBJIGluamVjdGlv
biByZWxpZXMgb24gdGhlIEdJQyB0cmFja2luZyB0aGUgbWFwcGluZyBiZXR3ZWVuIHBoeXNpY2Fs
IGFuZA0KPj4+IHZpcnR1YWwgQ1BVcy4gRWFjaCBWQ1BVIHJlcXVpcmVzIGEgVlBFIHRoYXQgaXMg
Y3JlYXRlZCBhbmQgcmVnaXN0ZXJlZCB3aXRoIHRoZQ0KPj4+IEdJQyB2aWEgdGhlIGBWTUFQUGAg
SVRTIGNvbW1hbmQuIFRoZSBHSUMgaXMgdGhlbiBpbmZvcm1lZCBvZiB0aGUgY3VycmVudA0KPj4+
IFZQRS10by1QQ1BVIHBsYWNlbWVudCBieSBwcm9ncmFtbWluZyBgVlBFTkRCQVNFUmAgYW5kIGBW
UFJPUEJBU0VSYCBpbiB0aGUNCj4+PiBhcHByb3ByaWF0ZSByZWRpc3RyaWJ1dG9yLiBMUElzIGFy
ZSBhc3NvY2lhdGVkIHdpdGggVlBFcyB0aHJvdWdoIHRoZSBgVk1BUFRJYA0KPj4+IElUUyBjb21t
YW5kLCBhZnRlciB3aGljaCB0aGUgR0lDIGhhbmRsZXMgZGVsaXZlcnkgd2l0aG91dCB0cmFwcGlu
ZyBpbnRvIHRoZQ0KPj4+IGh5cGVydmlzb3IgZm9yIGVhY2ggaW50ZXJydXB0Lg0KPj4+IA0KPj4+
IFdoZW4gYSBWUEUgaXMgbm90IHNjaGVkdWxlZCBidXQgaGFzIHBlbmRpbmcgaW50ZXJydXB0cywg
dGhlIEdJQyByYWlzZXMgYSBwZXItVlBFDQo+Pj4gZG9vcmJlbGwgTFBJLiBEb29yYmVsbHMgYXJl
IG93bmVkIGJ5IHRoZSBoeXBlcnZpc29yIGFuZCBwcm9tcHQgcmVzY2hlZHVsaW5nIHNvDQo+Pj4g
dGhlIFZQRSBjYW4gZHJhaW4gaXRzIHBlbmRpbmcgTFBJcy4NCj4+PiANCj4+PiBCZWNhdXNlIEdJ
Q3Y0IGxhY2tzIGEgbmF0aXZlIGRvb3JiZWxsIGludmFsaWRhdGlvbiBtZWNoYW5pc20sIHRoaXMg
c2VyaWVzDQo+Pj4gaW5jbHVkZXMgYSBoZWxwZXIgdGhhdCBpbnZhbGlkYXRlcyBkb29yYmVsbCBM
UElzIHZpYSBzeW50aGV0aWMg4oCccHJveHnigJ0gZGV2aWNlcywNCj4+PiBmb2xsb3dpbmcgdGhl
IGFwcHJvYWNoIHVzZWQgdW50aWwgR0lDdjQuMS4NCj4+PiANCj4+PiBBbGwgb2YgdGhpcyB3b3Jr
IGlzIG1vc3RseSBiYXNlZCBvbiB0aGUgd29yayBvZiBQZW5ueSBaaGVuZw0KPj4+IDxwZW5ueS56
aGVuZ0Bhcm0uY29tPiBhbmQgTHVjYSBGYW5jZWxsdSA8bHVjYS5mYW5jZWxsdUBhcm0uY29tPi4g
QW5kIGFsc28gZnJvbQ0KPj4+IExpbnV4IHBhdGNoZXMgYnkgTWFyayBaeW5naWVyLg0KPj4+IA0K
Pj4+IFNvbWUgcGF0Y2hlcyBhcmUgc3RpbGwgYSBsaXR0bGUgcm91Z2ggYW5kIG5lZWQgc29tZSBz
dHlsaW5nIGZpeGVzIGFuZCBtb3JlDQo+Pj4gdGVzdGluZywgYXMgYWxsIG9mIHRoZW0gbmVlZGVk
IHRvIGJlIGNhcnZlZCBsaW5lIGJ5IGxpbmUgZnJvbSBhIGdpYW50IH40MDAwIGxpbmUNCj4+PiBw
YXRjaC4gVGhpcyBSRkMgaXMgZGlyZWN0ZWQgbW9zdGx5IHRvIGdldCBhIGdlbmVyYWwgaWRlYSBp
ZiB0aGUgcHJvcG9zZWQNCj4+PiBhcHByb2FjaCBpcyBzdWl0YWJsZSBhbmQgT0sgd2l0aCBldmVy
eW9uZS4gQW5kIHRoZXJlIGlzIHN0aWxsIGFuIG9wZW4gcXVlc3Rpb24NCj4+PiBvZiBob3cgdG8g
aGFuZGxlIFNpZ25lZC1vZmYtYnkgbGluZXMgZm9yIFBlbm55IGFuZCBMdWNhLCBzaW5jZSB0aGV5
IGhhdmUgbm90DQo+Pj4gaW5kaWNhdGVkIHRoZWlyIHByZWZlcmVuY2UgeWV0Lg0KPj4gDQo+PiBJ
IHdvdWxkIGxpa2UgdG8gYXNrIGhvdyBtdWNoIHBlcmZvcm1hbmNlIGJlbmVmaXRzIHlvdSBjb3Vs
ZA0KPj4gaGF2ZSB3aXRoIHRoaXMuDQo+PiBBZGRpbmcgR0lDdjQgc3VwcG9ydCBpcyBhZGRpbmcg
YSBsb3Qgb2YgY29kZSB3aGljaCB3aWxsIGhhdmUgdG8gYmUgbWFpbnRhaW5lZA0KPj4gYW5kIHRl
c3RlZCBhbmQgdGhlcmUgc2hvdWxkIGJlIGEgZ29vZCBpbXByb3ZlbWVudCB0byBqdXN0aWZ5IHRo
aXMuDQo+PiANCj4+IERpZCB5b3UgZG8gc29tZSBiZW5jaG1hcmtzID8gd2hhdCBhcmUgdGhlIHJl
c3VsdHMgPw0KPj4gDQo+PiBBdCB0aGUgdGltZSB3aGVyZSB3ZSBzdGFydGVkIHRvIHdvcmsgb24g
dGhhdCBhdCBBcm0sIHdlIGVuZGVkIHVwIGluIHRoZSBjb25jbHVzaW9uDQo+PiB0aGF0IHRoZSBj
b21wbGV4aXR5IGluIFhlbiBjb21wYXJlZCB0byB0aGUgYmVuZWZpdCB3YXMgbm90IGp1c3RpZnlp
bmcgaXQgaGVuY2Ugd2h5DQo+PiB0aGlzIHdvcmsgd2FzIHN0b3BwZWQgaW4gZmF2b3Igb2Ygb3Ro
ZXIgZmVhdHVyZXMgdGhhdCB3ZSB0aG91Z2h0IHdvdWxkIGJlIG1vcmUNCj4+IGJlbmVmaWNpYWwg
dG8gWGVuIChsaWtlIFBDSSBwYXNzdGhyb3VnaCBvciBTTU1VdjMpLg0KPj4gDQo+PiBDaGVlcnMN
Cj4+IEJlcnRyYW5kDQo+PiANCj4gDQo+IEhpIEJlcnRyYW5kDQo+IA0KPiBDdXJyZW50IHByaW9y
aXRpZXMgYXJlOg0KPiANCj4gLSBDUFUgaG90cGx1Zw0KPiAtIFN1c3BlbmQgdG8gUkFNDQo+IC0g
R0lDdjQgKHdlIHdpbGwgZm9sbG93IHVwIHdpdGggYmVuY2htYXJrcykNCj4gLSBTUi1JT1YNCj4g
DQoNCk9rIExldCdzIGZvY3VzIG9uIHdoYXQgaXMgYWxyZWFkeSB0aGVyZSBhbmQgYmVpbmcgcmV2
aWV3ZWQgYmVmb3JlIEdJQ3Y0Lg0KDQpJIHdpbGwgZm9sbG93IHVwIGFuZCB5b3VyIENQVSBob3Rw
bHVnIHJldmlldyBhbmQgc3VzcGVuZCB0byBSQU0gaXMgYWxyZWFkeSBhZHZhbmNlZCBzbw0Kd2Ug
c2hvdWxkIGZvY3VzIG9uIGZpbmlzaGluZyB0aG9zZSBmaXJzdC4NCg0KQ2hlZXJzDQpCZXJ0cmFu
ZA0KDQo+IA0KPiBNU0kgaW5qZWN0aW9uLCBkb20wbGVzcyBmb3IgcGNpIGFuZCBQQ0kgZW51bWVy
YXRpb24gYXJlIGxvdyBwcmlvcml0eSBmb3Igbm93DQo+IA0KPiBTdXNwZW5kIHRvIFJBTSBpcyBo
YW5kbGVkIGJ5IE15a29sYSBLdmFjaA0KPiANCj4gU01NVSBhbmQgSVBNTVUgc3VwcG9ydCBhcmUg
bWVyZ2VkIGFscmVhZHkgQUZBSVUNCj4gDQo+IC0tIA0KPiBNeWt5dGENCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:36:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:36:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219384.1528262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJO4-0001hQ-2R; Tue, 03 Feb 2026 16:36:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219384.1528262; Tue, 03 Feb 2026 16:36: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 1vnJO3-0001hJ-VH; Tue, 03 Feb 2026 16:36:23 +0000
Received: by outflank-mailman (input) for mailman id 1219384;
 Tue, 03 Feb 2026 16:36: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=NbdA=AH=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnJO3-0001hD-FN
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:36:23 +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 78f68809-011e-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 17:36:21 +0100 (CET)
Received: from AS9PR06CA0256.eurprd06.prod.outlook.com (2603:10a6:20b:45f::7)
 by GVXPR08MB10812.eurprd08.prod.outlook.com (2603:10a6:150:153::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 16:36:13 +0000
Received: from AMS1EPF00000043.eurprd04.prod.outlook.com
 (2603:10a6:20b:45f:cafe::fd) by AS9PR06CA0256.outlook.office365.com
 (2603:10a6:20b:45f::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Tue,
 3 Feb 2026 16:36:10 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000043.mail.protection.outlook.com (10.167.16.40) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Tue, 3 Feb 2026 16:36:13 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB6473.eurprd08.prod.outlook.com (2603:10a6:10:257::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 16:35:07 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 16:35: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: 78f68809-011e-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=uWFc3MevPKsWXbfbSuQwqx+6ivFXsAeJiwSu3DA89jqGUx4gHWTK+EbKCR9mhWPCYQKVQlugXbUmBBbImOLJFSBQFaH4ypaqEzFRyz2E4T3RDm3jl5hV02IkKjJDPNCJpLMo217uMofLVx0OMullhoIOI/eqxkroGvGRIvy7yOXmK5mUHRTBZde24dmq2w4VRQM70Snc/nMohIJjBCbbthvwCQURzxRyvOfndPKMPBg07fX4bfno6tb0YnlJdg1Li7gQC+m/gcuAYXNJVohFQvr+CRFSVRT0VZjmK65z0GBh9KXRlj0xb3HTtHqRyfMmjQtLiWu6m8+7gm2oIOCtkw==
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=5Dsx8fcTzIpeGLNGtyA/G+vgUB/g184wbUSnT6QPl4c=;
 b=rjeviEIkO3LpFoOhe7n5HIBEUwu2GwvCKDn3jXga9qgmRxYb3Z3g+ymxKj3+KQkgdFwMk9ua+GRjwbtynmOMYCHBRU4sfPEDW3oCU1nalHlrALrY5CNnR1o5zaXkgkxcz4l2dmpCP/44lB7KH0KiFp+F7xCb1tuIK0av6LYEnCuJDohSHLk4FE3umMfw+e3YBaaKAa/JcV5CAfoSN1QjeMksSFwV5i+paf39EZsMmGSdTWGTZjvJlyKdTLH/kNWzHo+qhhCXDuG8m+LCA5/CONQwgMPugwsfoehDaZwD0WN7VbPRTFKiysEi1m+MEo4MNWf9PVE6SIs0mJHlpunMsA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=epam.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=5Dsx8fcTzIpeGLNGtyA/G+vgUB/g184wbUSnT6QPl4c=;
 b=LOB9TP1tsNRyP586FC7oV63RUp8FcTq2vsCVp18+kGWB4pebpbnS7I7VjHUJnakTPhpWMvReMUGf7eZR0/xmE8P5oxjJz9kUZPF5H0CmoHaGbxc2rVF1zrexLh/9x7nQ7DtDWp/qKZTi2mh6Lp4Hunp+l0s/kZpwihNcrI6n+Kg=
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=nO6giaH8NnJDm7bQNx5PN87eQw+2ZtZIBuj9zo9FmeRgKksd6UFGoWDIuk+n2yqJY2IcsDDp5nPB4/OdazDpmhpEBbjFbRe/7771EJrYdaRZYWGRwRSBddyhgqxj3Y4cWycxaDoMHGbj6innM3HTog6WpFt3JhmRaR2g6r4ybumxMD0OfDx0EdIKs8qyjqZkzovvA14L0ys5wxHPYnxG2IJF8z2fRANTM2hs/FhpWKZyJjoyAaFYOukgUM7zMMujFayrBXaBFqxz530LGn1Rx9Uh/47g7o0zDlop8H4+Uf7K7Q7X1Ko9nUubOknfZW5EfZ3nFKqPBxMn4GDYuNX+5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5Dsx8fcTzIpeGLNGtyA/G+vgUB/g184wbUSnT6QPl4c=;
 b=K/3TO6Zj5Hmv3NcqThYhIVpeqKnHOUN8hqJ6pOkkx+u+FsmGyV8vjg51TGxzx/IK8khZYvo90e/IpR/HPwcbfcxgqGy1rbRJ8lkLt/VDFB1bdYw7xPfIINAGLxd5CTkX6CVZ35OEnlCPj1f1e+S8Xuq8ma8Y509lEz1YKJHZBpK19KodmpaR+LRPmfzdupjIshoduWbxnzT5Za8LV6wS7FP4DpYsUFWxXLoLr5hLIQyJwXHeSUcnbOOcoIH9RdHVV1vwH5BcsOFXKOSIT4wzQFfmW/atYukamTJyL0Ywf8D2Ra5XJYU2VpPB5meKnNtM34pn4BrUuuYE8JZozKd7YA==
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=5Dsx8fcTzIpeGLNGtyA/G+vgUB/g184wbUSnT6QPl4c=;
 b=LOB9TP1tsNRyP586FC7oV63RUp8FcTq2vsCVp18+kGWB4pebpbnS7I7VjHUJnakTPhpWMvReMUGf7eZR0/xmE8P5oxjJz9kUZPF5H0CmoHaGbxc2rVF1zrexLh/9x7nQ7DtDWp/qKZTi2mh6Lp4Hunp+l0s/kZpwihNcrI6n+Kg=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Jan Beulich <jbeulich@suse.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v5 0/5] Implement CPU hotplug on Arm
Thread-Topic: [PATCH v5 0/5] Implement CPU hotplug on Arm
Thread-Index: AQHchGj6Bf8iLxj9KkKeGyrpjQwglLVxTT0A
Date: Tue, 3 Feb 2026 16:35:07 +0000
Message-ID: <51B975F5-C0EB-43AE-97FD-CC937DBC593B@arm.com>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
In-Reply-To: <cover.1768293759.git.mykyta_poturai@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB6473:EE_|AMS1EPF00000043:EE_|GVXPR08MB10812:EE_
X-MS-Office365-Filtering-Correlation-Id: 8b0703e7-dc5f-4e69-8584-08de63425826
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|7416014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?Je4taenCkyMoMQ3RDhgsU0xWNPANXmAM5kQL+d0AAgRXMAHjUum/YVjP6T?=
 =?iso-8859-1?Q?GTxvoCqsmrbRTcLSWbx7NGgh1CfL+5mOIynaxnYFYofskMRmOqP2wUonr3?=
 =?iso-8859-1?Q?OLQ2SgPsoVOwuYhL+fRioydZL8p2gKlaI1c9Qs2Kg0F6r0a/J/4YYSJghk?=
 =?iso-8859-1?Q?ElpNTwWcbOxrga6lHYfpDyfLU4hwRsiI8pmcXJ0M+4dZk75tFXvvtkezmK?=
 =?iso-8859-1?Q?YCHVrNBg/lXuqum4wPTpOewHSAyLMCJJG7HuP+D6gEnupV5n1TT9CRAtS3?=
 =?iso-8859-1?Q?sblEW/l278htSyvJEIXa/JTWSt+Ftbbs35W94KJPnFb207kWT+1HnTFDVr?=
 =?iso-8859-1?Q?rGy5wxeFmhLf3AGUVrubnaPC3I0iD635zr3zZnj0+km+IaSnJWPZgFIlcN?=
 =?iso-8859-1?Q?SP/gFNkysXDFEnDSGH30TwJ5qBQ+WKqp8JF24l/YE4UggM5IhUmby4EhAP?=
 =?iso-8859-1?Q?ifhAYi1/Yc63mTtDVT2a75GU7GHJnNtGI7p3KoE2vDbpsvOPN8MXAsmxLO?=
 =?iso-8859-1?Q?tSyRMasIqxnKw+751guJTS1w7mpXGX82y378JQ8353vtdi/eFHLJ/kGUHT?=
 =?iso-8859-1?Q?+/BOTsqGyMrcnW/19Tf+WC+8XHM3ZUEercpmdvIOuyVKbe/PAwnxZhXUzW?=
 =?iso-8859-1?Q?+BpRgEXti54ZTznKld1fxfuszXxzfvpHNGwPyJcKRqYFgi76YnWZ0NP32H?=
 =?iso-8859-1?Q?cTHuCXGKaaww8ILks75iDHJg1xKq7y5CuqxgKmNnDqCqhdaLshWKt76F1b?=
 =?iso-8859-1?Q?u0jlXN1Wrju0JJbMwakAoYguaKUU01piF0/zgQvA9SLvJ1C3dqgaDaoSba?=
 =?iso-8859-1?Q?fc9K+Ml2C9codY6VrHpCATuflCts8cycbt8eEHpmNlNo6kvvbvWA0J/BNv?=
 =?iso-8859-1?Q?0I3Uckm+si0TfD2lh8Tzxnetgc+FdHrOGN+Mnhld3Ps+e0jjRL3nrpmuHN?=
 =?iso-8859-1?Q?UuR/OpQFEg7lwF5MFSk6l10fzpbt4UL1ERd/Mqnuj6oTF1++yox0damSLz?=
 =?iso-8859-1?Q?/Azfj3L8svF3Sit1zDj5tIwHqY/E8/Em1vx8HogDJ9n960aV8XarPVD9zx?=
 =?iso-8859-1?Q?oHB5RLeW9R4Vm4hA3jfj22WbsmLt8ASCOdO6LAysJMMehRNsyhESeHyjVi?=
 =?iso-8859-1?Q?N0phSXZhEhqx1G6KVUkd7Q4CEhPnJ1cxOjWgqaCXHFQTTfpBsB4tXMd/K1?=
 =?iso-8859-1?Q?vaNHEvNvnStSDP6qwK9GxO/FkMqKUL9scHw0KoziB+FuGcV8bz3dPEBzzJ?=
 =?iso-8859-1?Q?Po0eZ2g+wgYW69ZO/S377Su/eZoxF4M580hs3PCplGXxZwypEpIqy8MlEY?=
 =?iso-8859-1?Q?zAFutW0+mam73xNSW2g+FnHGHVYnW7ZVldzHrG30gZd0kQZ/q3l29M7sgq?=
 =?iso-8859-1?Q?OENG8x7QM3ycF4q44gtwrep/wxYJh121YY1x8+MzOIDH6n7zzPWD61L7Yb?=
 =?iso-8859-1?Q?e8aBhVgDXClO6GAlya78yp9F9QO3VTttycwnYFIwrI7NLjOjoPLR160PlU?=
 =?iso-8859-1?Q?k1jPu1J9TURvFGPxsrwQhwXFnZ+Fyg+Hy88Fuy4YjQBKcKht/P7ZzHmwls?=
 =?iso-8859-1?Q?HlUOOhzZNq0lXmYsIqIRBCUoRgaEk0WYTGcL5tTKf+xWBLjXOlkoRAYkjb?=
 =?iso-8859-1?Q?D8KbrVhskjpNeSjqMdQbg35ESaTh2kD6jBXUXuQVtkNA5web5sCr3zDE0k?=
 =?iso-8859-1?Q?PhntZm2PjwbHUNb3aTE=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <B12F74642B8D814DAAA2A7560B1E476B@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6473
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000043.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f7034659-03b5-43f3-6837-08de63423118
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|7416014|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?DiUiBMxQBkUlCGLWTS4rJtag0uIjJowar9TQxpJYiPO9pc0p74izB742HG?=
 =?iso-8859-1?Q?8M+SZwIs8i7FOeQVNLbJEiU/7BI8H+QhAwzQ656w1vf5KEJKGFb1T22MK+?=
 =?iso-8859-1?Q?1J0ectaIvmJ4lq4rg2+KCoUf2acqA23gtW8cqiYFE6/egPVXdEMRPdxjqr?=
 =?iso-8859-1?Q?n0N7BvrFNDAkIXr0YnfRb1xa8ZmmfGd4NjLbZ9INNnc8CwIhW65LIKtN2d?=
 =?iso-8859-1?Q?TLzL2nAz+Jb7zjwF2BB4lO1qOFxqurIVVJZt8M3JicWuETlVgmOqoTvKdl?=
 =?iso-8859-1?Q?jPHrdA4kkWUtCGFSbHu1Eah9cop6BwVCaHxchbIxoxK2DrWEoapGAkh++2?=
 =?iso-8859-1?Q?fHLSNot0FH5BgFbn2M8oXOFZWyWS6G0zuX4NMpJ0T+dslVZzUcVA7kfaIS?=
 =?iso-8859-1?Q?jr5kt/tEZtRSXMVW0xgHex3BfzVgUqRTzH+jN+wDImpuIJiBlgM4Zcz+/Z?=
 =?iso-8859-1?Q?p7zTR494k2IExZwIiT3562UdYn0wJR1gJwXvrPYFxXUOm26B+TeeTWKPUp?=
 =?iso-8859-1?Q?wp/ziC5I9kgBMthK7+eZKP/+JTBMB1Zg01jdzQ87GbgLNNsGJYv4/tDHOz?=
 =?iso-8859-1?Q?w7hysqz1hbmNaXFWgAOXsKdCU6YQ8GUQ4cQOCfWvUnzt8CzLRaxarcH+PF?=
 =?iso-8859-1?Q?vacCTw9hX1cyGo9f5X2id4VzsD30whZLKxgsb6OZY1MxZrb7kAvrQe4nFD?=
 =?iso-8859-1?Q?3+xLtahHgdr9kmFrDKTlxwV98MhgAZLGrsvJCo1nYtkRv+hLj4Byy+JvrN?=
 =?iso-8859-1?Q?tMl6EFmhvtVsLZGK3b5L37JFxx+1p0NiIIUpxQslvWPktiWXMnDhewsU3Y?=
 =?iso-8859-1?Q?BsdHkhUrgcGPYZ0ND+cznxRrVfsFuvptW3FK+qOUDDWjWacyXNVh3shz+b?=
 =?iso-8859-1?Q?udkypT8TDB81GWZpZEIlcV2edF7EBDku3VreQjyToDoN6vYxrwuDuzSHSm?=
 =?iso-8859-1?Q?QO/z9zmK+CSvi0hOoAyjbV0m9iruooMpaunlzcc+NS4XC54idrdYL3dlYU?=
 =?iso-8859-1?Q?kfHLKEm2yzRNJPg/tPjdsD0ZYrJ1yMlSsowJHzssMpP7z0L8gEQHTsPXfT?=
 =?iso-8859-1?Q?hki32mqCknORWi2+nrzfZLiHXyqk1CiEQYornb/Wb9ZP2e0JYHDlc2to5T?=
 =?iso-8859-1?Q?sKBvZ7i94ToiNqnYbhkRBIUDjXQLoXfyOyPu9EecbC0Vi7D56HA/s5RnFr?=
 =?iso-8859-1?Q?FuQoj84CRokyCoWI8U1l63Auf+6ioZc93tIEXK7xBUC/r8Vz83fTDcNXvN?=
 =?iso-8859-1?Q?59uGQFkP4+Y0Oty7EIWHZ41A4IA1jI0Oh3xdRmifY+NzX76E4j+ees1UOD?=
 =?iso-8859-1?Q?AMNw0BGbEkJ7rE1szP0znzlpovmQOu85bVHqu4sHj3emJXhtedLHSyTN/m?=
 =?iso-8859-1?Q?3ME3578g0A0Z3jR0kCLbC5slxh/9N1+ILo1FYItY+hV5tCGqkdW1Gu3Wcl?=
 =?iso-8859-1?Q?WRhX6ZJkY4uiII6XPvf1dU/RNJ0NqVQtFBCRp26cK5Lch2lmjF1udxcjzb?=
 =?iso-8859-1?Q?c8M3fzAchApHTeiltgJi3cfzz05yZZACsV87WFstbJwf5fHj5HmaCe5rJV?=
 =?iso-8859-1?Q?lrrKFYbgSl88+5JucqAgI1HmVxKi3elhpmnVD5uE7XKHCaDF1vrEHYg2iu?=
 =?iso-8859-1?Q?xr+7PBx2AHv6ZeicXUlBkGK1lYc8JOwbbSQANGp88FHteZdPp701xCxt8t?=
 =?iso-8859-1?Q?fvNhcrY7u9kR1yIJj+RKsB3GX5hdTvv8BfJiYmiIGF9GjCyvYv3rptqvem?=
 =?iso-8859-1?Q?eg5Q=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)(35042699022)(7416014)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	UT90I6fjRJc/0nnYOjgXPQ4MsxyuhtEUy2F7aQSye4Bs8ISzXSZQAKxHvDB/Xo2BaZoHSC1fh0G79GPB9HAKG8diflv/63P47Yl1llC14eiZ+Atjq93Snw0wiob/Ccna9G8RMHOhEnBb2Lil7L/mTR9pkqFCkrK1/ptbMcjqgL34qq0V2ZMZJIYBwXM0eBpTAyHRyzUHj51LmWgmBXkd+erb1x+ODu0lz6wpmFRhrDaEYVWs2Jynhr8onsHTiofQ8jnQ4/8tTak0YNM98TV03cSMfOnLv1rRCCQQVE+3ioLtuIsTxNALCVyHCNvaLu+u1N6PjJTJHoxOMYQPW6wy6paNbpv5Hc3NY/HsnKAfONciMvyhPw/7tVDIonRUhe9/ucdaG2Csvlkf+yb5MEDKjN8ghF//uz4Ocmv/+r9q+cZL9V15Jkv1MKvn7ugDoIFT
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 16:36:13.0247
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8b0703e7-dc5f-4e69-8584-08de63425826
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:
	AMS1EPF00000043.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10812

Hi Mykyta,

> On 13 Jan 2026, at 09:45, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
>=20
> This series implements support for CPU hotplug/unplug on Arm. To achieve =
this,
> several things need to be done:
>=20
> 1. XEN_SYSCTL_CPU_HOTPLUG_* calls implemented on Arm64.
> 2. Enabled building of xen-hptool.
> 3. Migration of irqs from dying CPUs implemented.
>=20
> Tested on QEMU.

Do you have a way to validate this on real hardware ?
Doing hotplug/unplug might have side effects (caches, coherency, interrupts=
, etc) that
I would not be completely confident to have validated by only testing this =
in qemu.

Could you explain how you validated this (what kind of tests you did).

I would be interested to know how the system behave in the following cases:
- stopping cpu with guests pinned to specific cores
- stopping a cpu with a guest pinned and only running on that one
- checking with passthrough devices (for irq balancing)

Then a general remark i have is that most of this code (if not all) is alwa=
ys in Xen
even if CONFIG_CPU_HOTPLUG is not activated in xen config which will probab=
ly
generate some dead code. Could we protect some of the code not used when
HOTPLUG is not activated with if (is_enabled(CONFIG_CPU_HOTPLUG)) or
equivalent forms ?

Cheers
Bertrand

>=20
> v4->v5:
> * drop merged patches
> * combine "smp: Move cpu_up/down helpers to common code" with=20
>  "arm/sysctl: Implement cpu hotplug ops"
> * see individual patches
>=20
> v3->v4:
> * add irq migration patches
> * see individual patches
>=20
> v2->v3:
> * add docs
>=20
> v1->v2:
> * see individual patches
>=20
> Mykyta Poturai (5):
>  arm/irq: Keep track of irq affinities
>  arm/irq: Migrate IRQs during CPU up/down operations
>  arm/sysctl: Implement cpu hotplug ops
>  tools: Allow building xen-hptool without CONFIG_MIGRATE
>  docs: Document CPU hotplug
>=20
> SUPPORT.md                       |  1 +
> docs/misc/cpu-hotplug.txt        | 50 +++++++++++++++++++++++++
> tools/libs/guest/Makefile.common |  2 +-
> tools/misc/Makefile              |  2 +-
> xen/arch/arm/Kconfig             |  1 +
> xen/arch/arm/gic-vgic.c          |  2 +
> xen/arch/arm/include/asm/irq.h   |  2 +
> xen/arch/arm/irq.c               | 63 +++++++++++++++++++++++++++++++-
> xen/arch/arm/smp.c               |  9 +++++
> xen/arch/arm/smpboot.c           |  6 +++
> xen/arch/arm/vgic.c              | 14 ++++++-
> xen/arch/ppc/stubs.c             |  4 ++
> xen/arch/riscv/stubs.c           |  5 +++
> xen/arch/x86/Kconfig             |  1 +
> xen/arch/x86/include/asm/smp.h   |  3 --
> xen/arch/x86/smp.c               | 33 ++---------------
> xen/arch/x86/sysctl.c            | 12 ++----
> xen/common/Kconfig               |  3 ++
> xen/common/smp.c                 | 34 +++++++++++++++++
> xen/common/sysctl.c              | 45 +++++++++++++++++++++++
> xen/include/xen/smp.h            |  4 ++
> 21 files changed, 248 insertions(+), 48 deletions(-)
> create mode 100644 docs/misc/cpu-hotplug.txt
>=20
> --=20
> 2.51.2



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:44:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219398.1528271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJVe-0003R7-Oz; Tue, 03 Feb 2026 16:44:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219398.1528271; Tue, 03 Feb 2026 16: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 1vnJVe-0003R0-MM; Tue, 03 Feb 2026 16:44:14 +0000
Received: by outflank-mailman (input) for mailman id 1219398;
 Tue, 03 Feb 2026 16:44: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnJVd-0003Qu-BM
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:44:13 +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 8bdec120-011f-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 17:44:02 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47f5c2283b6so47879035e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 08:44:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48305153842sm79051905e9.10.2026.02.03.08.44.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 08:44:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8bdec120-011f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770137042; x=1770741842; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bml9PQWT3UKNU13sLLg9qwRA7I2J4jarwMbx6mfF4YA=;
        b=HQoVzSCjZotEE8Y4QD7pmtw/WY8Ue1qsZupQSkail/O5gESn47cvlbKspMXqfmYDx+
         dEpHoQkIQquxlyi0igwo7NdLcefNBXLPfFe23FoimbBJEJYukMriQxJCyjGQwl2GlLBl
         cpe50s02EY0d+B8dspopsoWTH+T4EqJj8aZdwQ9dOtlaxuw2hruvSDoyKwcYavAWsqaz
         8zFCBYBC8CKohl43LXjI3GZqAO8KtNunV3HMOojv0RXoEgWXFcxLbRFYTGxNe6D7JXrF
         Tkf/uBI7EJAenLk+eUlPCxIH2sVXYgqdlEfIYkjZNiurFgKHN77tdBVqq2ACYG6hq4kM
         YyWw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770137042; x=1770741842;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bml9PQWT3UKNU13sLLg9qwRA7I2J4jarwMbx6mfF4YA=;
        b=ToYiotB5KSbgxX1R/9XtCq/NMT0NX/R9Ay8RJCmvY/TpHxfNL7Iybfw1BSgRiDo+WQ
         tM4+Hst74Lb8G9DTJC26gv06RvlTlwni92HjdU+0o8xKr1a5I/C0mmScrrMnMlJd991I
         6AeZaKqMSMi7W80Wpo+agdafY6/Cey2kNEXh1RMgMesPsN3m4K/egt72ifzXroypD3SZ
         lXKK3avA1OL5sOQKjOd4YLcimmaXOwTVw985eSyFYASmKBWg/LFui8wS9mZROM3Vt/QD
         V+8QRK7bRVAbTQ+SQc55DdtOYCPde7gf49PjBhSzCrdUuSsMAe1R35Lx/PU01aXTb4PF
         szjg==
X-Forwarded-Encrypted: i=1; AJvYcCXAf74J6Ycw+xJuGuHwlZOgU/X5EuRKgBUeeackNyQnO+DcmkK/ZrPTTNx9VlarGKmrrA7aIBJGmtI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyxRD0Egfrt13ez0hcpTA0xJPe4RBfcVAJsytHNrT5Ui9KH7d/
	ZI4q6JNYAZYaUDHED5NBBTAu23UWhiCB59/PjnsTsDy4HBbvcHRT5KQUwIipiPUh/g==
X-Gm-Gg: AZuq6aJCYW6o7PTpGU2pkOY8FLRapX5foU3O1glORFWWWFuJM0Gzy6TwSzfMOf7qeYV
	xoKIU8P2lHnw39WlXLm8m0NJoASQvzK3B+DLMRe16oNnU/4hkylTyZqWuparLBcf96OOXUgXsNd
	e0xBNLmIwGTe/AecaeAX/4lIKKI2tWGa7QAcQ8bBpjPpQaO137eo/O+Tzgs6Qn5SGcnJykBV20P
	Z/1lqCZIeic6Sp17X8NiSW67h3GVsKx/42hragx43inZhmY70NvF8+/2HVD+DsCcuF6stTzWrkc
	mtphWd3uE2Gv7baB3hwMjU6nzIjNniyseFpS2z87kJrziJDVpfAgSSRSNhpw31HEx7Lrkm3romu
	p8+xfnoArZEkaFqF6OdyFeZ97zIFCqFEVG0uPxJwq7/q7lxNZRfSDi6qFVFGmDf9nxDZ5hRulpg
	hdb+bHlCE5LyBP10cevSs7wfRPPQosfGrHhe6E1n9ZLYRO+vz2/A7sOdmiLh6IPWOmeNS4akrfD
	4sQb+pCOuSWBg==
X-Received: by 2002:a05:600c:3488:b0:477:9986:5e6b with SMTP id 5b1f17b1804b1-4830e971353mr3164855e9.28.1770137042272;
        Tue, 03 Feb 2026 08:44:02 -0800 (PST)
Message-ID: <cce29bc5-ae3c-452b-a373-d76323d5f062@suse.com>
Date: Tue, 3 Feb 2026 17:43:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/16] xen/riscv: add vtimer context switch helpers
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <fb6be3d3f576f7b362af69e57d2dfd1da3554439.1769099885.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: <fb6be3d3f576f7b362af69e57d2dfd1da3554439.1769099885.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.01.2026 17:47, Oleksii Kurochko wrote:
> Introduce vtimer_ctx_switch_from() and vtimer_ctx_switch_to() to handle
> virtual timer state across vCPU context switches.
> 
> At present, vtimer_ctx_switch_from() is a no-op because the RISC-V SSTC
> extension, which provides a virtualization-aware timer, is not yet
> supported. Xen therefore relies the virtual (SBI-based) timer.
> 
> The virtual timer uses Xen's internal timer infrastructure and must be
> associated with the pCPU on which the vCPU is currently running so that
> timer events can be delivered efficiently. As a result, vtimer_ctx_switch_to()
> migrates the timer to the target pCPU when a vCPU is scheduled in.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

However, ...

> --- a/xen/arch/riscv/include/asm/vtimer.h
> +++ b/xen/arch/riscv/include/asm/vtimer.h
> @@ -17,4 +17,7 @@ void vcpu_timer_destroy(struct vcpu *v);
>  
>  void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
>  
> +void vtimer_ctx_switch_from(struct vcpu *p);
> +void vtimer_ctx_switch_to(struct vcpu *n);

... may I ask that you reconsider naming here? Both Arm and x86 have functions
where the prefix / infix is "ctxt", not just "ctx". Being able to find all by
grep-ing for e.g. ctxt_switch_from might be quite nice.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:47:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:47:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219405.1528281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJYx-00049X-6S; Tue, 03 Feb 2026 16:47:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219405.1528281; Tue, 03 Feb 2026 16:47:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJYx-00049Q-3p; Tue, 03 Feb 2026 16:47:39 +0000
Received: by outflank-mailman (input) for mailman id 1219405;
 Tue, 03 Feb 2026 16:47: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnJYv-00049J-NP
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:47:37 +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 0a9fc2aa-0120-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 17:47:35 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-480142406b3so43757985e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 08:47:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830511cc93sm85781995e9.2.2026.02.03.08.47.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 08:47:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a9fc2aa-0120-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770137255; x=1770742055; 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=FsmugQpXeyJIESCQFQ9qrbR5/T8eGHL3QlcINMVsWlk=;
        b=EwRlr4vrC5VfTmWU1CgBF1gaqJRk/kV/AXy4KuU3pPldZPThyTr2xKIa6ufmlqKwXV
         9EhVKl8nD1qHYAUCSBIgD4a64ABwsXcvp2EdJFxNdmeM9/4APJU2EdXwy0C2Q//EHgDL
         WHT1CDtrGzoP85gqBwjayYhAX2/nJCZqZZqluUT5Zl34oScfWa7rW4tDh1NbcZHssJef
         iZRMj8wsLL+00o7B+U014Nkykw+yOn4yfnTk6/sDwvdfDSl/0gZi0i3L0kZ9vxlLhtul
         Lks86GtYI/R0dvVZWyal/qOL2xAUaUmG31xRfytiW4S5EzDBOzBVGWiB/kiMQq1xqcZH
         2MCw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770137255; x=1770742055;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=FsmugQpXeyJIESCQFQ9qrbR5/T8eGHL3QlcINMVsWlk=;
        b=Z5sw73hkMoLBfFr9ZP/j9J2rE7YTA6ohVRs0++tQTeWc3gQLtnTUsJjPYyzY8VY5Py
         DtvTJk6uEourh7sLJuykGjAP7Euid4E2kncj4FZJgMLwoWAQ+b+8dd/LpKTyZafxVyD4
         f/PM+zOj+qXibl6QrypGHG4tDNpsNT5dq60KYuSOrlRqze1KQ1PYUd2mLFsg5ZQO6Wux
         FIVzQAyhX5WbADWIi00Myq3NCWV/PWzDcK33Akp8+pmEapsPeYlu86kxNDkaH24WfYfr
         mNd0e0tWXAhUKAPfAX2DfPSi6/2G5NkLXzkVcYtZyrZPgGig8A7AzWlgZU79jM24EgSN
         pHyA==
X-Gm-Message-State: AOJu0YzT3YGf3izaB6uGHsDY7327QBHFYd7mjQmlKLoYGQx8747NM1lZ
	mYGp65xS75P7QVcK/sdEcfxWxn0l+zQ6KDMd9zE1YkXYnnppyJm9jtCAW8+abxFwOKkpZFAqA5q
	Pxzo=
X-Gm-Gg: AZuq6aLt8wZ/ooZ+nzv6vTVGCtt5bFGujsiBtK2DWy7/nTJpfBhb3XmHfFift1U6mmf
	u2lDwfkQ9PZOMdPyTCFA9QGgodyc85IPjIkU0qMJiJ/xo76CXLKOiWDMJxvdwNXz/YxbXF5Bzek
	Z+xC+UrA7ZvX/ZdymdlHdOMJhdb0R9RK12ikmjJOz3lvCbAIAdIhrZEUcxkHWh6XWErquOYzg35
	U4gM/8+pbMwvq8NsgLM4ElbgMr6WUMVj91tHdHUhQ9CpkSuQVQMfJVAJUK5e/w6B+q1lh0ryYfw
	1K/wvdIWINyVqGDCA4pYJpNupRPopVTosTF108qHO0xDiE8KYS8V4XVGrlIQ2zW9jtxbvhmpXlv
	pKMKt2zfmSFrm6ZBvBT5XDuYfKp1giCCoJI5JXN7euw6/3NwbQb1OYa4rwDHcnAA6YzbFwgUvHx
	m3eQr8UppTBxqwHWuCayyJXY7Po/otfBnbMCgrjNikqo9ZYp8HGuMx7QeU2/vvGuDKmePjQNdBN
	gyRXNMYfIEPyw==
X-Received: by 2002:a05:600c:c163:b0:480:2521:4d92 with SMTP id 5b1f17b1804b1-4830e988f3amr3463135e9.24.1770137254965;
        Tue, 03 Feb 2026 08:47:34 -0800 (PST)
Message-ID: <5149ab32-7d03-4ae5-9af0-e62dd5836329@suse.com>
Date: Tue, 3 Feb 2026 17:47:33 +0100
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 0/3] x86/shadow: tidy VRAM tracking 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 dealing with Roger's comments on "x86/mm: split struct sh_dirty_vram and
make results private" I spotted more aspects which may want changing.

1: unlock P2M slightly earlier in shadow_track_dirty_vram()
2: VRAM last_dirty tagging
3: reduce flush_tlb's scope in shadow_track_dirty_vram()

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:49:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:49:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219416.1528291 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJav-0004ja-JS; Tue, 03 Feb 2026 16:49:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219416.1528291; Tue, 03 Feb 2026 16:49: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 1vnJav-0004jT-Gq; Tue, 03 Feb 2026 16:49:41 +0000
Received: by outflank-mailman (input) for mailman id 1219416;
 Tue, 03 Feb 2026 16:49: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnJau-0004jK-1f
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:49:40 +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 5394b2a4-0120-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 17:49:38 +0100 (CET)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-4801bc32725so45340605e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 08:49:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830512e61dsm73209105e9.8.2026.02.03.08.49.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 08:49:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5394b2a4-0120-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770137377; x=1770742177; 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=hsihNRRAUO9irjyqUmGl+lYbNZkIHXJWPrKLzjEl7yk=;
        b=d27/gVMW0dgCW5fycMRRMONDxt5VtrUc+jYbcyrvU3GpbWgLvNVJQziC/NIdy4Hkmj
         XWnKj4hl+HahwnUIoa/tWA1ALHnf04I4EIVAPReRU0y4lpGRmp3CvJsrqF0o8OLARtk7
         52+S3qeMKmI6fTsk5zkptCQkrq9B1ZFE6rXGvXzSY2QjV035zf5qxJ7VsMScc0NxiNnm
         Ii2yY3XO8ERDQHCfC5EScMx8dTk0GMPBwAQ3uSeoS8mRH3WirXrUIlV3oO0qkI1wKpbH
         /MXnJs4oMJRYmTxXGE2nMSpXNk4DRi+G+khHdON5Vh3pqXtpyiW2Rp7Tn1ewnntCw+YJ
         LZBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770137377; x=1770742177;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hsihNRRAUO9irjyqUmGl+lYbNZkIHXJWPrKLzjEl7yk=;
        b=dZlNSU50ABndHyyalHo1vWQEUWWYY4u5Z7KRlWBAB+AWXxtqYPQoaZxmQt/jD8xuOL
         Beny4Ezg+Iyl4SOhIN/acXDO6pDZUts1/j442PjWALg9TcJCZhXggd35luvsOiGk+/Fl
         mSTxeRfvyJq+rMRtcj3Yztjy96tNtIIyUesab4OkTu/uCQXqQKCi1EcI8AZDCfzbNZoA
         21itmqcVww6n9tVgQDs9oITFaH0qYAh6OGM4BTd5bGJHmx2RlmLjsNwPF7x+OiYFeTaH
         WHj4477H/8PDOPtGk3ggFTXJnV4kvYGk1AnCiyMl/1oyzPf8nBmeY5hjY9pj9UIxhDDf
         17PA==
X-Gm-Message-State: AOJu0YzpOllN2h78BuReqjWnxbfdmTgEukkM9eOvO99Ea+1SFFs2KdnU
	y/ESPQfXCr1qYW5z7LiQE94FiZPHb0CV1pjNBKlMNcftfcw69JDIY+hPKV/1E7VPLh1wP8uhM0E
	D1PYtRg==
X-Gm-Gg: AZuq6aIt1W2BXxlURoNO8yUUvZZM8vIifbYBeCpUngMcckJjYLicj7NM0Wg7gsQiljC
	QJkaYgpyRxQgBxN6+VokPG/ws3f362nR4b3RdI3tz2+sQIwQetMrroPfrB9HYN0H2uGaGpvmtLZ
	k7QaUJCxPxq4wxq4XTbB5FFtat4JPxIyPClLufNc73Kr10nAyC4vhiPBCeRqzNRjjECR+Ib2suy
	qmT3lv285oPX18SO4klGvoRsUls0jCVG13uCYwZvNz4isI7YhRsDoN5mxoff1263TDoQgkEr94c
	7raEKzH2B2JFW/XQ1SemPMu91qZKKyPv4CVAu9CHdy1RuMAdh91LXnRFvjNPM/FLRHvt9xplwaS
	7aQK0ceBfaIfEbr2w5Vp9ukC/GxLeoQeXDF/MJbDfQWiL6p0Lk0mmjozeoaviqGVZHH0AZAl9HK
	Yx0P3OYha2wbjJR5oO7vV0HDhqSPD4X6ctY20nBf/HFsIdtGM1mQD6r47BK19xKxE5F1/Zc0gag
	1HyxThvcLMNTg==
X-Received: by 2002:a05:600c:1f08:b0:480:6941:d38b with SMTP id 5b1f17b1804b1-4830e991a8emr3540515e9.30.1770137377374;
        Tue, 03 Feb 2026 08:49:37 -0800 (PST)
Message-ID: <c6aa40de-11b2-4725-b18c-8a982e43f0f0@suse.com>
Date: Tue, 3 Feb 2026 17:49:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 1/3] x86/shadow: unlock P2M slightly earlier in
 shadow_track_dirty_vram()
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: <5149ab32-7d03-4ae5-9af0-e62dd5836329@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: <5149ab32-7d03-4ae5-9af0-e62dd5836329@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

There's no need to call vfree() with the lock still held.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
In fact for the purposes of the function the P2M lock could really be
obtained merely in read mode, and it could be dropped immediately in both
the main "if()" and its "else if()". If only there wasn't the error
handling after copy_to_guest(): Dropping the paging lock ahead of that
call, we rely solely on the P2M lock to also guard the changing of
d->arch.hvm.dirty_vram.sh and what it points to. Question is why dropping
the paging lock (but continuing to hold the P2M lock) is necessary there
in the first place.

--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -1219,8 +1219,8 @@ int shadow_track_dirty_vram(struct domai
         paging_unlock(d);
         rc = -EFAULT;
     }
-    vfree(dirty_bitmap);
     p2m_unlock(p2m_get_hostp2m(d));
+    vfree(dirty_bitmap);
     return rc;
 }
 



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:50:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:50:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219421.1528301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJbF-0005AG-Pi; Tue, 03 Feb 2026 16:50:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219421.1528301; Tue, 03 Feb 2026 16: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 1vnJbF-00059k-N9; Tue, 03 Feb 2026 16:50:01 +0000
Received: by outflank-mailman (input) for mailman id 1219421;
 Tue, 03 Feb 2026 16:49: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnJbD-0004jK-Oq
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:49:59 +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 5f6c0bc4-0120-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 17:49:57 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-435a517be33so3521246f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 08:49:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4360ef9e804sm11082497f8f.41.2026.02.03.08.49.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 08:49:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f6c0bc4-0120-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770137397; x=1770742197; 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=jSrVgJ47FbXZI7U0CKTH4UTDBJca7s7Dks5/LglLXeg=;
        b=UczrCBv7BqVf1fbPOPppPBJ1enWYryDi8T132BjsyGBVeu/HnK85ZIqCcKKD2aonod
         mjv0/OJBOx8tF/rLlDnYIsJO6XxR+Enp0mZ3TW9J6tOCsxKtegdkTTGFRFgixLVKTSVV
         GNHuQsGdg44iVuv7qckZS6Dk5GJua/hkHPU47JuCYRI6rU+mvjKAczh1WUIw8YyKBGsy
         zOKoQwsdR+hojTkdlOMa8e7A7BPfe9xsO18Qiuy5jwqqmy1grq48tsn5C442FQs5kEkh
         hV/Mp+xDBex9FnaS1/1RkPbx6rDnO7qk15YO7lIDSPSvv9LAtzH0hxEGKWCkzDUc34ZR
         OYwQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770137397; x=1770742197;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jSrVgJ47FbXZI7U0CKTH4UTDBJca7s7Dks5/LglLXeg=;
        b=Nu76lesIZeEbRiDDdFkkDZtPWJMyF8IQ4LDfmEUcer8HtOz2M3Vg7ZA2g6YvOlOkTS
         Mk1Udt+n0IGcXvDgs8CzQvvXp47udqgty/Rg3433kbqR8hoUJm7lcpmQx9xYTDcdIJr6
         829eON7pif51iZDL2YqL+q1+6oQ4wtUTa3510dHY+1+HTDvETbSPiUMoW549LoJHRJNg
         ulcVxJy70cfPMbFQcvL8yCIoWGbyEQk2ZrdyJN5DiK1bwoFvgLj1IlkRwIDVAuu7IDsR
         eNWWYEPvtoHxDHM00TTQOLxrrqdkSESs1JgQyRXcbGKEKIJwRSP7RNa/c23UAFsZo2aH
         4Nzg==
X-Gm-Message-State: AOJu0YzDXDg+FdgrTP0AOv/3X1uUWiXILWxYDEekWoWmvzEEpZhCcLmZ
	HpauZiTNTI8xHeh139qnljLaXq/GxqDs5NVHm8j0sdDjt/NohNvxRraDm+sdVgGQe3y1ukRXo4v
	FcHw=
X-Gm-Gg: AZuq6aL8hWYSN0HtBIvCdCeww/TTm5um0Nw2LIQO6BuPqEC8xl0L/NLnwPS0/t8uamu
	ioldUAN/1AuPKws63FfDGOT+HAbXLFmy5cCeDjc6lN80UUaanfAiR4QGsNsXKfcC4j3gx0zwxS/
	0hu8p3nXHDl7/tLGNctJrv3BY6WClicDnQpF7ZZUJdN0h1dj9OwbC8qesTfurjJBMA3BF2lAzqf
	ghjnCafJ05qnvXUXBHElGj3/uCO1Pw9yBROCPR/kNh8bBiT0s0cGkFkzRI7de8kVYuLhaNhSSs3
	C+s366d1fD5SJTCpc+xZODFVJrtwhqKAdQ8VJMp8tvDqRPjXFX4XfhnUKO/lJ2o97icuzeHyOVD
	MJvVbkTfFN3/TLz2ecChFZYrjNm8jYWRLNlbh9h4ETw5nJhlquiMvLilaWfPCJ2hKnemz+SaIwi
	WTFkepIOA1VzkbNoIg0DGMHoh6pEAjEpdrezDfMmNzX122AEYAbVU2+0p/1pB3BwLYXblalOCbw
	I0=
X-Received: by 2002:a05:6000:290b:b0:436:14fa:a3f3 with SMTP id ffacd0b85a97d-43614faa467mr3339071f8f.21.1770137397143;
        Tue, 03 Feb 2026 08:49:57 -0800 (PST)
Message-ID: <8559db88-5f1d-4ced-980c-e71c4e229c7c@suse.com>
Date: Tue, 3 Feb 2026 17:49:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/3] x86/shadow: VRAM last_dirty tagging
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: <5149ab32-7d03-4ae5-9af0-e62dd5836329@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: <5149ab32-7d03-4ae5-9af0-e62dd5836329@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

->last_dirty holding a valid value (one other than -1) is solely an
indication of the bitmap being entirely clean. (The opposite isn't true,
because of _sh_propagate() setting the field to a valid value without
setting a bit in the bitmap.) As a consequence
- setting the field to a valid value right after having allocated zero-
  filled space is pointless,
- copying the the all empty bitmap to the output array is pointless; with
  the output array also having been allocated zero-filled, not even a
  memset() is needed there,
- after restoring bitmap contents when dealing with copy_to_guest() having
  failed, the field needs setting to a valid value again.

Furthermore invoking NOW() in perhaps many loop iterations of the main
loop is wasteful, too. Record whether any bit was set, and record a new
->last_dirty only once, after the loop. Then use the same NOW() value also
for the subsequent check.

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

--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -1087,18 +1087,18 @@ int shadow_track_dirty_vram(struct domai
         if ( (dirty_vram->dirty_bitmap = xzalloc_array(uint8_t, dirty_size)) == NULL )
             goto out_sl1ma;
 
-        dirty_vram->last_dirty = NOW();
+        dirty_vram->last_dirty = -1;
 
         /* Tell the caller that this time we could not track dirty bits. */
         rc = -ENODATA;
     }
-    else if ( dirty_vram->last_dirty == -1 )
-        /* still completely clean, just copy our empty bitmap */
-        memcpy(dirty_bitmap, dirty_vram->dirty_bitmap, dirty_size);
-    else
+    /* Nothing to do when the bitmap is still completely clean. */
+    else if ( dirty_vram->last_dirty != -1 )
     {
         mfn_t map_mfn = INVALID_MFN;
         void *map_sl1p = NULL;
+        bool any_dirty = false;
+        s_time_t now;
 
         /* Iterate over VRAM to track dirty bits. */
         for ( i = 0; i < nr_frames; i++ )
@@ -1174,16 +1174,20 @@ int shadow_track_dirty_vram(struct domai
             if ( dirty )
             {
                 dirty_vram->dirty_bitmap[i / 8] |= 1 << (i % 8);
-                dirty_vram->last_dirty = NOW();
+                any_dirty = true;
             }
         }
 
+        now = NOW();
+        if ( any_dirty )
+            dirty_vram->last_dirty = now;
+
         if ( map_sl1p )
             unmap_domain_page(map_sl1p);
 
         memcpy(dirty_bitmap, dirty_vram->dirty_bitmap, dirty_size);
         memset(dirty_vram->dirty_bitmap, 0, dirty_size);
-        if ( dirty_vram->last_dirty + SECONDS(2) < NOW() )
+        if ( dirty_vram->last_dirty + SECONDS(2) < now )
         {
             /*
              * Was clean for more than two seconds, try to disable guest
@@ -1216,6 +1220,7 @@ int shadow_track_dirty_vram(struct domai
         paging_lock(d);
         for ( i = 0; i < dirty_size; i++ )
             dirty_vram->dirty_bitmap[i] |= dirty_bitmap[i];
+        dirty_vram->last_dirty = NOW();
         paging_unlock(d);
         rc = -EFAULT;
     }



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:50:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:50:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219426.1528312 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJbp-0006bm-2U; Tue, 03 Feb 2026 16:50:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219426.1528312; Tue, 03 Feb 2026 16:50: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 1vnJbo-0006bf-Vr; Tue, 03 Feb 2026 16:50:36 +0000
Received: by outflank-mailman (input) for mailman id 1219426;
 Tue, 03 Feb 2026 16:50: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnJbo-0006bJ-0k
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:50:36 +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 74e040b3-0120-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 17:50:33 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4801ea9bafdso26650015e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 08:50:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482dbcf9c3fsm144236995e9.4.2026.02.03.08.50.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 08:50:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74e040b3-0120-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770137433; x=1770742233; 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=ArrlHuUWuRHWGJM3SpePVZfqjLgEGNYvg8IJ6jwvR5M=;
        b=du0Unn1Ossf2Pua17GboRT5/mDmLDThoiLIzjqY1tUUYoZygZXndjEohWhL4zEuqfm
         +60m3wwsfA+pj9l6ghVAaHy6ayOOqThIXhDa/u0VjsyDOgpW2IIGXHu2XLLT8JYQicFM
         cNyrIFO86DY8k2ym3mK0VCKyBsrr/bHJlqAaXFo6w5GctJVXWHUo6bfzh7vDOX9cpMBC
         P6MSvUNaN5oOrew8lTgut4j62VS7Ht3NIH3aDtkwzAB7pgPCKpWEG+YgQxJsNNLlOCuA
         gHDb71KTrDBTQzml+DHCa7RhVRmQrB0TrcDgxeSs9LtkDmW6ZIrrGgY1XOticaUTUjO4
         +aug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770137433; x=1770742233;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ArrlHuUWuRHWGJM3SpePVZfqjLgEGNYvg8IJ6jwvR5M=;
        b=XXlEv7JLnGp+QwX7wXPQ1C/mt5ACVyK1Xi/pmHxrtoUSriTyb2Q087pHzMxrCFJ6ni
         U9Aw0J4mNaJqhMR4HD07rfV9I7d9HUetjzg9GeUd5YA0+2JPrkEmfiZBLY/OqiaQ1nQO
         tiu4euFvZoB0gbcnjqa30tFLIi5BjaKqYspdM7Oqpk5rP16Iekg+gjqWe5V+uRl58MfL
         EBjJgRPg+J7TtSFq6SGWFm+hK1cnXJsI8obYgNj66L3lp5TQSUN4XQG4XyY+DJO3BYqB
         lHLOhkTYiekOVxWQz8qga1vczpOwAHccSBnBDVXhhzWNUv9brpCbzK6sgc9DzCBbfH9y
         AM2g==
X-Gm-Message-State: AOJu0Yz7G08wz7HFg9FRLWdVkVmK3dPE7hJ6rmt8u5gShTi5E9l8Ftkj
	/WVckNeIyCsqtGHMid7hTJ+4bs/PEa210RSSO5+MrqMO4dyoE0u71S1z40uAVc+FuV4QVmwVXhu
	zQD0=
X-Gm-Gg: AZuq6aIvoPYwF+UoQ7227hwAOJ3XhQM6mzSsk7GXsqUb8b9JuUne7TgtzNKPRtlfP6z
	ugTgyF93pK0gr4ZFXefdnMaLr342bbeTO1U6tHfpPRd2Ut0+P8GLSPWcEM8j3OusC0LHaqBg7md
	60GVD56Yw7pY5TqTVB1HYEzg2EWyZ2fbT9cGJZcQmYkW9/o4rFyG2PsnGDfT81NYtcvS6FkYgtR
	kcevCJTFzu9R5YWhAKeBi6inwJCMz470I+s6FIzkAlHqB9Dgsth2MzoFTppmFVWgYwpz8eGIL2i
	tcmVU67g9GjjRAu6wKT3xeQbk2p99IR0+l2KI7v4yCVTc18PuoSAI9Gh2lnmLOecJvtAqr/nXa7
	2n1peE51JTJzo2G4BtGyRRA18tEx8PwKQlyDV90b1mZFXFoZKwvQsy5Z6SNeLZmFLohqZf01Z77
	YgoqhvFYOGZsSJPuw+zpjWIf0jCS4MrQ3Ar5T3mjP90Lb5qQ3XFo/lht81yOEX2d7l7iSV9Z/CI
	ss=
X-Received: by 2002:a05:600c:5295:b0:47f:f952:d207 with SMTP id 5b1f17b1804b1-4830e96adddmr3271045e9.19.1770137433181;
        Tue, 03 Feb 2026 08:50:33 -0800 (PST)
Message-ID: <38581c16-e2a0-4f7e-a08a-3517063a27cc@suse.com>
Date: Tue, 3 Feb 2026 17:50:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 3/3] x86/shadow: reduce flush_tlb's scope in
 shadow_track_dirty_vram()
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: <5149ab32-7d03-4ae5-9af0-e62dd5836329@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: <5149ab32-7d03-4ae5-9af0-e62dd5836329@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

It's set only in the main "else", so the declaration as well as the sole
consumer can also move into that more narrow scope. This may in particular
help with possible future locking changes.

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

--- a/xen/arch/x86/mm/shadow/hvm.c
+++ b/xen/arch/x86/mm/shadow/hvm.c
@@ -1022,7 +1022,6 @@ int shadow_track_dirty_vram(struct domai
     int rc = 0;
     unsigned long end_pfn = begin_pfn + nr_frames;
     unsigned int dirty_size = DIV_ROUND_UP(nr_frames, BITS_PER_BYTE);
-    int flush_tlb = 0;
     unsigned long i;
     p2m_type_t t;
     struct sh_dirty_vram *dirty_vram;
@@ -1097,7 +1096,7 @@ int shadow_track_dirty_vram(struct domai
     {
         mfn_t map_mfn = INVALID_MFN;
         void *map_sl1p = NULL;
-        bool any_dirty = false;
+        bool any_dirty = false, flush_tlb = false;
         s_time_t now;
 
         /* Iterate over VRAM to track dirty bits. */
@@ -1158,7 +1157,7 @@ int shadow_track_dirty_vram(struct domai
                              * _PAGE_ACCESSED set by another processor.
                              */
                             l1e_remove_flags(*sl1e, _PAGE_DIRTY);
-                            flush_tlb = 1;
+                            flush_tlb = true;
                         }
                     }
                     break;
@@ -1201,9 +1200,10 @@ int shadow_track_dirty_vram(struct domai
             }
             dirty_vram->last_dirty = -1;
         }
+
+        if ( flush_tlb )
+            guest_flush_tlb_mask(d, d->dirty_cpumask);
     }
-    if ( flush_tlb )
-        guest_flush_tlb_mask(d, d->dirty_cpumask);
     goto out;
 
  out_sl1ma:



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:52:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:52:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219440.1528322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJdh-0007Dh-EB; Tue, 03 Feb 2026 16:52:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219440.1528322; Tue, 03 Feb 2026 16:52: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 1vnJdh-0007DW-Av; Tue, 03 Feb 2026 16:52:33 +0000
Received: by outflank-mailman (input) for mailman id 1219440;
 Tue, 03 Feb 2026 16:52: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=NbdA=AH=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnJdg-0007DJ-0x
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:52:32 +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 b97dfb68-0120-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 17:52:29 +0100 (CET)
Received: from DUZPR01CA0177.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b3::26) by AS8PR08MB7943.eurprd08.prod.outlook.com
 (2603:10a6:20b:53b::21) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 16:52:23 +0000
Received: from DB1PEPF0003922F.eurprd03.prod.outlook.com
 (2603:10a6:10:4b3:cafe::43) by DUZPR01CA0177.outlook.office365.com
 (2603:10a6:10:4b3::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Tue,
 3 Feb 2026 16:52:21 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF0003922F.mail.protection.outlook.com (10.167.8.102) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Tue, 3 Feb 2026 16:52:22 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DBAPR08MB5701.eurprd08.prod.outlook.com (2603:10a6:10:1a6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.13; Tue, 3 Feb
 2026 16:51:20 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 16:51: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: b97dfb68-0120-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=xZaaUP7bJ0/o9Za0ckp1zOfIwBUe0WmGVsuCkbmnQScCeVzoCiJb4wynPlbLd/LDCba4yeiPQkNA3Vl/Lh9m+UYFTHG+TfyvH/KY/TgPRrDpm/Yg9aKA/gkUEfxZKySrfnpThDnik2fAod+mKSzjd9GitKRTzsENJlApt4NN+7Aj82QYmeegqi7UpR6NaUu5hPRHnP9oaci6iLYCXB4Iad3c5H9EACt+VTtEwo/qOPoWhWBn1rHvAKLNkMogqLpXDHsMcEsDThVnNHU0Hmu9+cM2YIBjooUF7FOUCMhcPGMUSjy8kehC+a+Y83V4Q7SqB/8zssIV1zw9Q7khxkPR4g==
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=SQSgEvacbHfKts83KLF59lkFx/eE1Mv6ANV0KpIOsEY=;
 b=WI/rmebtFdU+Cn+cOzB8yATgeo75UTeYVHLUDYsfr4lX/b2ADjuOTAO2duRi2lIbJDEBndZfVC2ssFxzJRXILqsxgiMY3NvIRqMWHrR5GPp6juCMOFQYNMH+znM7cqVHg0VouPC5NbMVlXI7PV6229CXiUJiFRxj7FR/OuOvFrsa9hbZqR727guKZ06IrZY5hWw9m1re4GyU9Zv1NKyAheuHkyw3CWAKr4SKFqqQVfpw3Dbx2Boc3bBMdpRjcOrFUeymAIQIqk8SGdWb9xNU83kr3MRda13uiOJph6n/XbemWDYKESSgXfmZAOiIJUCbNsk1dpgJAo/y4pMPwbDgtg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=epam.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=SQSgEvacbHfKts83KLF59lkFx/eE1Mv6ANV0KpIOsEY=;
 b=f2ZKkTdJwj/FqmuADFgDvBhn5KpGS7h72NbMRVRRZUr5NU1CLvw2oF0s8cbGX/XZQipo96+peJs173YwpBoi5OSl4E06NtsI0q/romt7mOA9MjFTIJi9CEi+kwOd579b4j7bbuWB7VP9tEOYOWNG+/FVUC/PzPcumG/0I97ik8k=
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=EWv6nNRxYlWVNZ1Lc+z8te0hEQVKO45A0REpV5ZNcx+6zxfLEpwePb6O0GB14kOldaAuK8r48wT3p3nWn7gTGvkWfgyx8qkmRMpKJmQUcB7N+5XqUjNN5EOkYkpVc4yFGVeO0FNGZWuRT3I2xS28cPmPB67dbZ/yzoc9bb2qSbW07psA73B5ITNtFeXx6ZzJV/Qzm9k+3N4IpitdKozB3imfHEr2509KMMIXl4VkrllUAzK/Q5oNl4qxVX2NwUU32TKO2OoJCntM8fpa06EULPStFZKEbWOA4p5IOo62ooIuwS/NTiGakz7DDOr82T0EjG8zfWkixTHe7/LoeCuMmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SQSgEvacbHfKts83KLF59lkFx/eE1Mv6ANV0KpIOsEY=;
 b=s79W60m2j09oYbb4yM9Qcw/REE8ooco+A8jo3I3rtL2AC02Wes6AIY9iqEkQla+tGeG0qfRehXe9msO7s+TgmMfUoMebBrKtUV/L1pfIzcxw8bRbMeJfFh7v4Wc70vGu6wSkr67YhYfp4QblHsaOe9+qLXbSxu4QYq5au5pAqENB3je9nZuP041i8dxUhbCq/qs8Wmg5bCKAqTS4beCT5jUOoH+0mmYZl0Mlly98AaRSbss9/VctLVVUj2ouiI/XMZsLnnfa/TUHuTjGRSVeXuiu16RuVgOg1IOonJQe5ZxQQYY6HEpRJ995EsJqqmuHzrjqyVJIYL1BUu8OUchHRQ==
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=SQSgEvacbHfKts83KLF59lkFx/eE1Mv6ANV0KpIOsEY=;
 b=f2ZKkTdJwj/FqmuADFgDvBhn5KpGS7h72NbMRVRRZUr5NU1CLvw2oF0s8cbGX/XZQipo96+peJs173YwpBoi5OSl4E06NtsI0q/romt7mOA9MjFTIJi9CEi+kwOd579b4j7bbuWB7VP9tEOYOWNG+/FVUC/PzPcumG/0I97ik8k=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v5 1/5] arm/irq: Keep track of irq affinities
Thread-Topic: [PATCH v5 1/5] arm/irq: Keep track of irq affinities
Thread-Index: AQHchGj7DB4SczePiEuTZHuufPnk+7VxUcYA
Date: Tue, 3 Feb 2026 16:51:20 +0000
Message-ID: <4ED49C13-2913-49CE-9ED8-A785A0069E25@arm.com>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
 <2991ec1845868940488c912c5dd34798a58bbf87.1768293759.git.mykyta_poturai@epam.com>
In-Reply-To:
 <2991ec1845868940488c912c5dd34798a58bbf87.1768293759.git.mykyta_poturai@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DBAPR08MB5701:EE_|DB1PEPF0003922F:EE_|AS8PR08MB7943:EE_
X-MS-Office365-Filtering-Correlation-Id: 3a12eddd-675c-4e9a-f2ab-08de63449a43
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?24Gs674SeOL2DXAPp+/ywp6zTgt6rFDgPmo28vWxUm6e4YM9iq2dodQo2gnm?=
 =?us-ascii?Q?nD/oNNe4r3VNIhgra+L9OW2wBqmotqOot4UojIPvRjNsDL4KX47/Ef7WtFve?=
 =?us-ascii?Q?eFajszLaD5Dz9wHwA84oyLgUP2VTb7eknJmJqK3A8ZbMvITpU7STfFPqbK1V?=
 =?us-ascii?Q?K/kyp6isxBqmHuPMU+zdzu4VXT/XJnOFqjiOjWY7xrkLaP7uG6IVyWCEmUG/?=
 =?us-ascii?Q?6MQbJWOMZRUPWluvtWgr2G1Av9L2Mz9mvYheim4tT7rlbxSkVMrk+PpYddgb?=
 =?us-ascii?Q?NDxgl8ZNya+dfK7mmIcLS9PNiyaQ4GzhLcxKIHRiXw8rrP7jq2KSEVTON7rm?=
 =?us-ascii?Q?HvJ1OJApC4eAS5xSh/eDNZLCua0pK+LV9hA2GpuyaxQKTFEcXVJ5U++/6iTD?=
 =?us-ascii?Q?DwsZTBl3rEhjlpMV42DM6a1WeYTqQozEVuPts6WLDU357sJjYYsaGvhvPKr3?=
 =?us-ascii?Q?OU5DD8l+VCsgpDzalzvItJOcWDSS8PECJL2LHyYy6C1u2nxPS7i9jCOMm0lb?=
 =?us-ascii?Q?Agv++ziR2SfqP+sN+HFPg6KfHw7c9SVH8BLvYHA607zN/YcOTyZIgU4JSnKT?=
 =?us-ascii?Q?C57sdl8bMfuw0ZRRlaaXdeKTQCzl5kGe9IXZqjwUboPHhpYAj5uV2sK3dulZ?=
 =?us-ascii?Q?u3H+Dvjv7NdqGPTU+pTzkQjlWfcxL9h/HxRlkiDzp75UmyHaIeCqq/Quvt8u?=
 =?us-ascii?Q?zTaoUhk7tT8Ep9b/cM5njAh4GJ0mMqjNG6Cz19v8Dgn+rDS1QSvwSgeMJl5s?=
 =?us-ascii?Q?YMwR1KzJ/SyfitB+JqTse+l1A5ZWMPT/cZAXlEldgIErorWwWF/91ML6En5D?=
 =?us-ascii?Q?6fHF26gieROtddTzL670hP24ukfIu4pVTGbDR1jToff82gfeX3+K1mlGAIEK?=
 =?us-ascii?Q?r6LO1SpW6CvHvkPopMbzCKx6iXh2ZBL4Y/OrmmDV+HOI40aEtT24M6jZ37HM?=
 =?us-ascii?Q?tUSBYAM9UbDbDLcLszLZ1jT3dEqgnHnDi7BNVPaI+pvfjU2r2IDWsm+mwtV/?=
 =?us-ascii?Q?ByW6u7ZM/GGltm5U08D93SzGD7/sh/rpUGNcF0uotwr06DbhtN3ulIHSFPT/?=
 =?us-ascii?Q?IQqqSMGno2g5Mv8ovi1Lh9BArrJBxGeriEkXiBRO7kzabp4jqbt243NHe2eZ?=
 =?us-ascii?Q?TVNwFd1lUFtKVD9uLaiPv7GND82zE9wFVRr+tvZ/6O61YXIRE6TyWcM/EDNV?=
 =?us-ascii?Q?/dtKXdx3gJCN+F6EAvL/f8/M/+UUs0o2h79J6XqYN+AO9GanTRTodHRQ2EYb?=
 =?us-ascii?Q?YANEBZM1MImWTfS+zZKRPfKAF7GlCSR814GCxZ32yozZNiCWOANIOwJQP8xX?=
 =?us-ascii?Q?31xu9sLnhDdlyV3dGgRrQnhgY4kobVD6rENor/AbVqcax/0SW+ggCNkoiPKc?=
 =?us-ascii?Q?N2SVM6YnkWns+KX2+BW4icyWOfJbON/vSFszXE4XwtRXNR0i5+IREjlwGMlP?=
 =?us-ascii?Q?pRccYzxLClY7r9f4p/rZTsEs2d3aaihKyssn2Ur0dCyqijuQ8ohP6XUDr5k/?=
 =?us-ascii?Q?MK61mItSrY6pfa0Su1ijF4fx22imJVikeEOobGrcdfyYVlB/BsoxmQVk1KpG?=
 =?us-ascii?Q?cgfMS7seZIr/KddACLfANgR3BK9AtbM5JNBlx5cygKWt1Ikh6tng+RBn9N56?=
 =?us-ascii?Q?zebeuSMSd7bLSHMohoGXOuQ=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <BBD94D3EC2156641BC0B88D55BD0F358@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5701
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF0003922F.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5e763a84-6fbd-49e2-c285-08de63447524
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?PFB6YseY/2R9/lGakhPEvWp+4VQYIt5YxTtIHd+Bjao7to4iUjMxDBOOEGrL?=
 =?us-ascii?Q?9vSQa9Jq6dRaVxtBrUOCtwjN7Qk4V+vY7e268fywwD+4Bn/5QBfo06BkcwBd?=
 =?us-ascii?Q?HnjDFCEQ0hjkpENl7bUrpCdgDh9EfZ88r/FZP0LQS+sFTTkYF72ahYUcZnwA?=
 =?us-ascii?Q?zuNevCQFXo+kULT61yVSes6fSDRcGCmN15grdoDE1Gt6WmBJiEMJucKfH2xJ?=
 =?us-ascii?Q?wv/4a8CnmuDclB748sG4ryMl62BuRuCqIVNdEqC5HqfbTEkdVZ5+3xp2PI6M?=
 =?us-ascii?Q?wxwXbvvUkxaYzF0TibU4OGkVgVic4KDKg80Y+f8sdgADKGIF8Ysz0BbcSh/G?=
 =?us-ascii?Q?movUnd6gh9RnchxAkb0Fpo/4hzRLj5IN84FELNIAxonQFgNb5EdPDsdBQNDr?=
 =?us-ascii?Q?LuZdm18aP8GSK3lKW/1KZGJZXoMpYXrxbGRALPML9Ke121kPgpaXdp6id7Uj?=
 =?us-ascii?Q?QpuegfNwa0aTiDnq/imuPgvQcLrDirRye6XkEoq0NaTySzIcPumEgnC0X7df?=
 =?us-ascii?Q?Ye3tzbzYlF0/8/Jps2DWv1s92oV663BIYtnUNgVJ9C1ZWBYXU2mtTjYoGPEk?=
 =?us-ascii?Q?ySiXR2Qt/n/yGtyDeZbGtc/g3fA+zDTghLFstQ4ZSDnJIuLLYYjZrkOj56k+?=
 =?us-ascii?Q?w1+86K1HdwttZvGY0G/01oh4KWkmpkUeVmSPn1c/UAAaqg+kB5nJgREc5sP5?=
 =?us-ascii?Q?xXHAibic52imMLvk2tZhhBivVpC4HtgwR9dM5BnEj1B8zTBQb1C0KQZQvEk8?=
 =?us-ascii?Q?u79awIZ3PYfUepcD7dp8K5+6r/LQHb0vP8nSzkl6zZNzPoLY+yC5AxIfgpLK?=
 =?us-ascii?Q?cwmbYMGacBvxoCab+5gZgyEvmBzwy+Hu9MzO3q/hXDeyfP0RA0JgZvKYxbt9?=
 =?us-ascii?Q?v7s6dtNsZfjnnNg/vBxBheoubO4AueOPwQJbyAekHKUrTUiTbhNb6MK6FwKA?=
 =?us-ascii?Q?up26WV8z/XFmWG23jISmSiU0hBzMG4K5NAsW+C6Su2Se9UjCkQjxbviJ3sZ1?=
 =?us-ascii?Q?MySoVx34MXK4qZN0h73tGzSyPhlYUPmZxTIDvch6AfDuQp9oNtUZxYL6xp3d?=
 =?us-ascii?Q?InS877EFat4nC6iEJKrBtSoTdvwdRTpSkh0lDpcEfZshMWqgQbgB9deUOoEC?=
 =?us-ascii?Q?sz89Vr+ztoi3e+jcy6lxUEIRok3olpwEiCOU/Htlqy8n1a6qyigu8NxMhw0W?=
 =?us-ascii?Q?ZB0dBRQ9pvvgcSHVz6aRigKBPYNm5i+8Ysx1Q174O0QVK44OHS1XOAyTKItH?=
 =?us-ascii?Q?yOtM2kIAoR4rSzkwb/bVvmszm88MCPO8vBs7UcbzTayTXqzBLAKG1shUJSL4?=
 =?us-ascii?Q?psTwDhDnwpGvsSH01YdQCRcPeAeedIweVORX0mHVngzeQICISMTWz6Xmovqi?=
 =?us-ascii?Q?kaiuVfFjvo2BJ7fv1qJEzPdGAWOcBA4uu7tWI1oclWriWTBeytbv71auIHXt?=
 =?us-ascii?Q?nTF8RlgnSyM9dBzaXEDsd3eFo9kbPDYf5R//FHvT2+YjneDQ0ykmbhuOCx37?=
 =?us-ascii?Q?IMx2h+V4Dw+uV2S7/rFDN2Up2YcvOSu9yPleFNCyWTbmFDlLxNykJ0R3rmG7?=
 =?us-ascii?Q?oiYZNQJB45PgmL737twmg+5QoizmEI35IUbHdS6vNMvxho5wQgCHE3dJvR7h?=
 =?us-ascii?Q?mXlXOBAHth52HWeoOHl0jUqgNwPxr6TenIU+5ei8rpqrjusGGU4XVXywh+dh?=
 =?us-ascii?Q?svGHjA=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)(35042699022)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	myBumqaQDmyr5P/gC7xJs59bJybqEsIHRNn33uQdTzMqGkJUfIqsDcCi55LM7e3KgTmsL0u7jhucF3uZUz/3zYFtFwrIzmYyNx1bPlX9wSjqJgMckFbYyIAKDuW7gV3fpXXRf7Xx0vmqk4t6k8ntkbDX79Lk1h79vMn97iGkvbtm8X4FVTqa0DoRosO3lj66pr5woYDMAD6+kvH/+WRyf266b3wMlhp+t5+qnSQspaxHzxXdcEEYPg7l/IdhSbN10Aquniyy1g6AgY5rs/PbBf4gSWiDtMFA7hAWEmLbwl6kJrQ9waOXTjZxemhfPs7iXR7pl8rnk3kga12hfu9plg7JRrl4VuqjGzAVzus7nGbieF8S3JAN2wuROlaWI94f+m/4pCXjfzlMQSoTfLJ3Bo+vUxQCND8UceHtUxx1GemQ/aUgtKJdoUQdg5bZ44ly
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 16:52:22.9208
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3a12eddd-675c-4e9a-f2ab-08de63449a43
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:
	DB1PEPF0003922F.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7943

Hi Mykyta,

> On 13 Jan 2026, at 09:45, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
>=20
> Currently on Arm the desc->affinity mask of an irq is never updated,
> which makes it hard to know the actual affinity of an interrupt.
>=20
> Fix this by updating the field in irq_set_affinity.

You are changing the generic irq_set_affinity which now requires
the irq descriptor to be locked.

This is good because it puts arm at an equivalent state than x86
one.

By doing a quick check there might be places where you
forgot to add the lock/unlock:

vgic/vgic.c line 826 (arch_move_irqs)
vgic/vgic-mmio-v2.c line 173 (vgic_mmio_write_target)

both of them take the irq lock but not the desc lock as far as i can see.

Cheers
Bertrand

>=20
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
>=20
> ---
> v4->v5:
> * add locking
>=20
> v3->v4:
> * patch introduced
> ---
> xen/arch/arm/gic-vgic.c |  2 ++
> xen/arch/arm/irq.c      |  9 +++++++--
> xen/arch/arm/vgic.c     | 14 ++++++++++++--
> 3 files changed, 21 insertions(+), 4 deletions(-)
>=20
> diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
> index ea48c5375a..5253caf002 100644
> --- a/xen/arch/arm/gic-vgic.c
> +++ b/xen/arch/arm/gic-vgic.c
> @@ -232,7 +232,9 @@ static void gic_update_one_lr(struct vcpu *v, int i)
>             if ( test_bit(GIC_IRQ_GUEST_MIGRATING, &p->status) )
>             {
>                 struct vcpu *v_target =3D vgic_get_target_vcpu(v, irq);
> +                spin_lock(&p->desc->lock);
>                 irq_set_affinity(p->desc, cpumask_of(v_target->processor)=
);
> +                spin_unlock(&p->desc->lock);
>                 clear_bit(GIC_IRQ_GUEST_MIGRATING, &p->status);
>             }
>         }
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 73e58a5108..7204bc2b68 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -216,10 +216,15 @@ static inline struct domain *irq_get_domain(struct =
irq_desc *desc)
>     return irq_get_guest_info(desc)->d;
> }
>=20
> +/* Must be called with desc->lock held */
> void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
> {
> -    if ( desc !=3D NULL )
> -        desc->handler->set_affinity(desc, mask);
> +    if ( desc =3D=3D NULL )
> +        return;
> +
> +    ASSERT(spin_is_locked(&desc->lock));
> +    cpumask_copy(desc->affinity, mask);
> +    desc->handler->set_affinity(desc, mask);
> }
>=20
> int request_irq(unsigned int irq, unsigned int irqflags,
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 6647071ad4..c59f6873db 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -445,7 +445,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *=
new, unsigned int irq)
>=20
>     if ( list_empty(&p->inflight) )
>     {
> +        spin_lock(&p->desc->lock);
>         irq_set_affinity(p->desc, cpumask_of(new->processor));
> +        spin_unlock(&p->desc->lock);
>         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
>         return true;
>     }
> @@ -453,7 +455,9 @@ bool vgic_migrate_irq(struct vcpu *old, struct vcpu *=
new, unsigned int irq)
>     if ( !list_empty(&p->lr_queue) )
>     {
>         vgic_remove_irq_from_queues(old, p);
> +        spin_lock(&p->desc->lock);
>         irq_set_affinity(p->desc, cpumask_of(new->processor));
> +        spin_unlock(&p->desc->lock);
>         spin_unlock_irqrestore(&old->arch.vgic.lock, flags);
>         vgic_inject_irq(new->domain, new, irq, true);
>         return true;
> @@ -473,6 +477,7 @@ void arch_move_irqs(struct vcpu *v)
>     struct domain *d =3D v->domain;
>     struct pending_irq *p;
>     struct vcpu *v_target;
> +    unsigned long flags;
>     int i;
>=20
>     /*
> @@ -494,7 +499,13 @@ void arch_move_irqs(struct vcpu *v)
>         p =3D irq_to_pending(v_target, virq);
>=20
>         if ( v_target =3D=3D v && !test_bit(GIC_IRQ_GUEST_MIGRATING, &p->=
status) )
> +        {
> +            if ( !p->desc )
> +                continue;
> +            spin_lock_irqsave(&p->desc->lock, flags);
>             irq_set_affinity(p->desc, cpu_mask);
> +            spin_unlock_irqrestore(&p->desc->lock, flags);
> +        }
>     }
> }
>=20
> @@ -574,8 +585,8 @@ void vgic_enable_irqs(struct vcpu *v, uint32_t r, uns=
igned int n)
>         spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);
>         if ( p->desc !=3D NULL )
>         {
> -            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
>             spin_lock_irqsave(&p->desc->lock, flags);
> +            irq_set_affinity(p->desc, cpumask_of(v_target->processor));
>             /*
>              * The irq cannot be a PPI, we only support delivery of SPIs
>              * to guests.
> @@ -944,4 +955,3 @@ void vgic_check_inflight_irqs_pending(struct vcpu *v,=
 unsigned int rank, uint32_
>  * indent-tabs-mode: nil
>  * End:
>  */
> -
> --=20
> 2.51.2



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:55:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:55:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219454.1528332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJgD-0007pv-UQ; Tue, 03 Feb 2026 16:55:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219454.1528332; Tue, 03 Feb 2026 16: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 1vnJgD-0007po-Qw; Tue, 03 Feb 2026 16:55:09 +0000
Received: by outflank-mailman (input) for mailman id 1219454;
 Tue, 03 Feb 2026 16: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=qAHx=AH=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnJgC-0007pW-Ab
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:55:08 +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 17ffa6e5-0121-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 17:55:07 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4801bc32725so45386265e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 08:55:07 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-482dbc75e13sm159215225e9.1.2026.02.03.08.55.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 08:55:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17ffa6e5-0121-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770137707; x=1770742507; 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=XsSi4Q8EqnCN+SZczj4ljcvdhwxdA56p88LOXavBXcs=;
        b=Wx+mAa7xuaDJ6ws9kku8fMWaX246lpq77sNoFkVYH12xxMn3kOv257RsGbFT+MfMe4
         KlDyFPjYeCoGXONXH2aFQB0EFi0W2PZemnCaecwBVDIfbRYLX4FzdGXmuEBpQyljw+Y3
         aFivPnp3tK6aSitR8Vu3ydGchwf6Mo/zNeeHGeQpHUbk0iYvfFbqRazlSrF9vuV7xa3P
         Ae/pDhMGA9yHMXLv1x0ycqpWWeTwV1eDVdY4IGO4mFFNSbEDiTVTaupRCg+a/xTu8Tuk
         3O1zIKKVv1GEc7lI118HvEQkGxLBCGO1I4eBYAyfza8MVVxlANG8eqJ9eqvk9jobY/PM
         z8GA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770137707; x=1770742507;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=XsSi4Q8EqnCN+SZczj4ljcvdhwxdA56p88LOXavBXcs=;
        b=HOR77fvbIR9F68PfuBrqMmqVEyYw7ClN8EECVNC/0xWPLwlP9QrFil2Voj2Q8tvQnc
         hQqOciNdnbEmBewbHmp0kXy+iMnxNkDcdrxoySHJW9wacgWeTaz0LoVSSO4+ga2rBbsR
         9ps4qsfTsEl5gIYEtnXHfwvstIYVfcu4+A918kRLQBH4AunMY/VnuNVj06b6Uk8TFMnV
         z9IjiJ28Kjn6M/nyEQYKKhk8WlRN60iKXe7xAnFtmXkrPBa8Pt5uIQRKLsn/hmFytkPs
         OAxuBcoWg7jiDX5S5eWZKT3CJ+rSA0aDB+Xq+vQ1W7OSGP/roJpQKgvpr9Og3rHey65S
         D/Rg==
X-Forwarded-Encrypted: i=1; AJvYcCUtEFRqtxHuq+0TwmlqnHDwRnD5KU9ZBVvKHmXq98IYF32aWUpbWd5xCRBmCGxAnoRK7m8v0MmLHlw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuZde/KF7hkwT4RlSlMmyWLoYofQvrmS7UzWNX8p2sET01Pkqw
	yB9hnZelNpiEvrCeK/KxqOPvq2OifZva35megihUe+q6ESWWvJhjoUNK
X-Gm-Gg: AZuq6aJ8HNzZJ2cdbAPGOnWBvMPSOGEvUK8aVTFsgA4esNUGJ9DxZvXVoJoUvW49wu6
	yXBZ0p9wp3/imGOLcboCTUAlQ7COkysMJMUBNZUdx7iMf9tlqPcOqwuC9T2mfzb+pnjKvagAOzw
	xVx/BgFbfyaubx70NrvCiIuHO+YoHVyPwUJ24oX6+Oplnv4aWTZgukAaqe4rDsHJpjM+xbNO23W
	znHI9pgdKptMSNLNUisRewM8F1Uqu9M3wl8uDkEo+vpor1zatWv67OJzqXzdixOzNSdgIzJ9bzX
	G0h8JcLPq82XXL9mI3nwqvRKRt5EXs/COFLWTdwM/Goxu/eA7FSpsbvo5Y5KLIpTYXnhZ3HwKug
	hfNtJ7XD66b8rsHN47OpcRlhV5hkLRaxGN5izhUd5JxhrNNnh3dYCgwlMH1cBPmFeKey4t8aBvI
	mbYthmGCClW1vcvX3xQPe+IEdjOSMj+qtMQS3q+l/80bYUenfdVir0O29Q9Jxvqrk=
X-Received: by 2002:a05:600c:1381:b0:475:dcbb:7903 with SMTP id 5b1f17b1804b1-4830e949290mr3390025e9.9.1770137706753;
        Tue, 03 Feb 2026 08:55:06 -0800 (PST)
Message-ID: <63655a5f-1259-43bb-914d-9e1a79638abb@gmail.com>
Date: Tue, 3 Feb 2026 17:55:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/16] xen/riscv: introduce basic vtimer infrastructure
 for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <381c200edaff013d999c6314c20e8cc8bdb5b041.1769099885.git.oleksii.kurochko@gmail.com>
 <ee928798-73b6-461b-9c43-b34778a4f89b@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ee928798-73b6-461b-9c43-b34778a4f89b@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/3/26 4:47 PM, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> +void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
>> +{
>> +    struct arch_vcpu *avcpu = container_of(t, struct arch_vcpu, vtimer);
>> +    struct vcpu *v = container_of(avcpu, struct vcpu, arch);
> Why two container_of() when one will do? (Same again further down.)

I didn't think that container_of(t, struct vcpu, arch.vtimer) would work
(as arch.vtimer is embedded inside struct vcpu. Is my assumption correct that
if it was arch->vtimer then it won't work?)

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 16:56:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 16:56:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219462.1528341 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJhL-0008KY-5L; Tue, 03 Feb 2026 16:56:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219462.1528341; Tue, 03 Feb 2026 16: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 1vnJhL-0008KR-2q; Tue, 03 Feb 2026 16:56:19 +0000
Received: by outflank-mailman (input) for mailman id 1219462;
 Tue, 03 Feb 2026 16: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=qAHx=AH=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnJhK-0008KJ-3K
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 16:56:18 +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 415a91d8-0121-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 17:56:16 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso58860425e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 08:56:16 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830eadcdb5sm1594045e9.7.2026.02.03.08.56.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 08:56:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 415a91d8-0121-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770137776; x=1770742576; 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=KYwl1e7OMjPmUt30RmtQlnGXKWndyXxF9JyZw3T9FoU=;
        b=Y5nrhEhK0mGFZ1mmI03Vmdd3COfTqMaIpfokfDi+sEhrp6AB9JrASUuFpufzQWqGuN
         FoTjYYO4XXmi867azh2LyZ6pAid0mWRqsQgESTYoJqEPG3X/74tyUDjirtadlbhrVjyF
         Ys9fQ6iqv+d/iKepqGW7m9ppeg25+K3dHjnK2ggPAC92IJ7Kpm8sUqnwunWX6lvomLNS
         1jIulwTFUqBwzKaFVfPdbVWc7WurYdclrnOmfL3WB9Oyo+rtN6D2NySt6GLHWb38a6m+
         ILK3A2lK0H8XxPwhh4MONW0Xbl7DKIKeIpYleD60XDqJLj0JJK7fP5o0pAkAPgz+FLIS
         tlYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770137776; x=1770742576;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KYwl1e7OMjPmUt30RmtQlnGXKWndyXxF9JyZw3T9FoU=;
        b=g2aq7lllc11ivXvWgyJ/Joq3JYVK0zmuMVALf6jF89Ne6mbwKhPQtlg/sUffoaK6cy
         NC4ujygzh89uT+Jeu30t6/cbiSWPAKQMw07FDRDwWxR+Ogh6LMhQ/H2RgeaZVNAxDOaC
         Hgb8BmbNSUNVHR6snIbqHQ/aSL1RRtwL5O1YA9S+t/CTTJBdco0SDuAXc0BF5IpAFvJa
         bNyC2hd/G57CpHccvccergdAiuN40kQky3FLtJNrbDpFvdXY4NpJtdfBAxRbzw3K0TF/
         NMmhOfcTxJjiH786UsVuC02BKtNzU8+h4uDjmSsyzLVijL3D8Sk/Q/qDTN+7ErVtkiNM
         T3fA==
X-Forwarded-Encrypted: i=1; AJvYcCViVkxHv7j9gKKaHR3kge+ldK5ncob8PgL24P6Lj4zsWH94Vc3X0PV+KiJ1zDwDBsJr1+PI89TSzGs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+s3udl3sOqcGFspB9wBk0aHNCeArWnqbrksyiy69fcfgrYeYX
	hvbD+5prc3B1cEjiy4QGN4VZGH4QYi0sEMpi1pRUhVwqR4uAWFZ82Kbn
X-Gm-Gg: AZuq6aIBsk0cz2hbDNcuY8THYKfDCcntZE4C6UopQcZmquwYxLrtzI7bqC4s1UG1Vxn
	xlJjiOMc3IgFZOnTJ3QlrpXH59i8MPG+ASh8yzk0Uf5PhubWyKsr9G5y/yku0uGDZWQRubnQCbg
	9srXb4ImmceNbuBOyg8j/vtFENGLMtwlR5O7NjeNlvTe3KUr12MCS9g44Q8qhlfe4kfLztAI9HQ
	wk3o0Q8hA3+92r4V5uxRl3qfw6A3aBrGm9LRbpn9mg+bzu2gJKKveoAlBJ+iYi5NDmlW9URoG9w
	qvSMF915UPhQDNDtnixYOsCcLvqBaUsi2yxaIdakBQ2hqlBPa+u2C9bDZ4cpR5sVOV8J0DvC9Cd
	aLak46cp56Mwo9lMVbcg4L0CBPQu0k8tZY7KZ9JbMefes80GoyqFr+orJj4TWOYTpvHIw8vymTv
	gvH5++9waYK3WrG7PsHIdLObBFHniJJLnd8/hIHvcGS6lozqr9ocIqqs0vQP/uM/g=
X-Received: by 2002:a05:600c:1e02:b0:47e:e87f:4bba with SMTP id 5b1f17b1804b1-4830e986031mr3373165e9.29.1770137776124;
        Tue, 03 Feb 2026 08:56:16 -0800 (PST)
Message-ID: <52a25a0a-ca3a-40b7-abdf-da969ede147b@gmail.com>
Date: Tue, 3 Feb 2026 17:56:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 10/16] xen/riscv: add vtimer context switch helpers
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <fb6be3d3f576f7b362af69e57d2dfd1da3554439.1769099885.git.oleksii.kurochko@gmail.com>
 <cce29bc5-ae3c-452b-a373-d76323d5f062@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <cce29bc5-ae3c-452b-a373-d76323d5f062@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/3/26 5:43 PM, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> Introduce vtimer_ctx_switch_from() and vtimer_ctx_switch_to() to handle
>> virtual timer state across vCPU context switches.
>>
>> At present, vtimer_ctx_switch_from() is a no-op because the RISC-V SSTC
>> extension, which provides a virtualization-aware timer, is not yet
>> supported. Xen therefore relies the virtual (SBI-based) timer.
>>
>> The virtual timer uses Xen's internal timer infrastructure and must be
>> associated with the pCPU on which the vCPU is currently running so that
>> timer events can be delivered efficiently. As a result, vtimer_ctx_switch_to()
>> migrates the timer to the target pCPU when a vCPU is scheduled in.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
> However, ...
>
>> --- a/xen/arch/riscv/include/asm/vtimer.h
>> +++ b/xen/arch/riscv/include/asm/vtimer.h
>> @@ -17,4 +17,7 @@ void vcpu_timer_destroy(struct vcpu *v);
>>   
>>   void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
>>   
>> +void vtimer_ctx_switch_from(struct vcpu *p);
>> +void vtimer_ctx_switch_to(struct vcpu *n);
> ... may I ask that you reconsider naming here? Both Arm and x86 have functions
> where the prefix / infix is "ctxt", not just "ctx". Being able to find all by
> grep-ing for e.g. ctxt_switch_from might be quite nice.

Sure, I will do that, it makes sense.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:02:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:02:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219475.1528353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJnc-0001rY-R4; Tue, 03 Feb 2026 17:02:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219475.1528353; Tue, 03 Feb 2026 17:02: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 1vnJnc-0001rR-NL; Tue, 03 Feb 2026 17:02:48 +0000
Received: by outflank-mailman (input) for mailman id 1219475;
 Tue, 03 Feb 2026 17: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnJnb-0001rL-70
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:02:47 +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 28a5084a-0122-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:02:44 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-432d2c96215so5573590f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 09:02:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-435e135422csm55571856f8f.40.2026.02.03.09.02.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 09:02:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28a5084a-0122-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770138164; x=1770742964; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XbcbPTbamxacRkAgnHsPn1/o/XGwaQUY0Vgs+c4ndB8=;
        b=eZCykOfXcdKA57EKTBoWtW8C6OedzRt8dSuMqH1OisydBgWYBdkOQNZ6wobbK/SFU6
         KyRg8hTpFb0xGkqEZSOAMp5u6cS9zHGzt9Y9I/DTgCBA8FwWOMqsWcBH5WKXjm8RtwnG
         Y2EM9+GqmiyAi2dcXqhI02blIDVCNgcS4Gj+VV75YtiP9hBhwqk2neX7KCbAm2g22+Nm
         kQV9R6Gn+DL5PuATSxQS7o9qf9cZV9JwrpdmhzmQqzmXf5/5P5mmMHPYljo99LLY+PvH
         1hG7Q6ktWu1wvaHLxc+XM+kPVchg8KwNtBFgdM6PFH4DR5H4X89tbfq43BgThrywNZBK
         AcFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770138164; x=1770742964;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XbcbPTbamxacRkAgnHsPn1/o/XGwaQUY0Vgs+c4ndB8=;
        b=XaWfny24Gd0ChZNqf9Uik2mK/DRk1YrLJ6YN972zW/bIw3m8xf9F0lvAISqbRczn0F
         fJ8jO2IvJ2OLZZuE15FwGtK0OZVFux45or1576LFUj34KRhZMmd1c66XW2n2lWBXQJ9E
         vR3M8hfXZKroCXCLLq90aFpInw5vWoX9bWARPHL9jfvmi7VOwYqzOFGmAuod6ggbvLQ0
         tP+FlvOZDr/XPnLc3bDwcYDhBylQwYykZEfvrEP5N1fdtUSbHBfvYKLTGCxK36wzlTwn
         VQDJkl/oYieA01cI8o9Oe+ofLEgJHPmRLZ2b/hVTNVY/SkRHc+t1AcD0EP6SJtBL+90C
         QfkQ==
X-Forwarded-Encrypted: i=1; AJvYcCXjlnalYeq69Sw8BhMapD6Tj/+ZZ7dqMpfS4I08+hCEsHo4+rv8IuGzCDa3l0HUQaU8K5V7vCHN1is=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxL9gkVdlxSZvgWAFF/MAn1xj4r/kViPD6sVym98pOOyqfWt2uG
	wCMOp/+ks1eTqF8pY/G4DPoc8wmeJd3ssi0k/O8+mjuoNJoe24AWHuoT9gtD5Oe05Q==
X-Gm-Gg: AZuq6aLSneWMaiEhA8Wz97yIc2qHJyeQax2vZJQ5XLBtycijggZLcrgelN70WkKYYHn
	kvS8t92BUdPYWq7LF/+lZAvfXDHY3yji0eIQQuq7RuIB4FCEWO7zUqJNJElED9OkKxGORtc9uLL
	diviq4zHa54jZA/U14zU8vnB42x02Uz/WzhyTbyyxz6SaiVGB+PWzTrsV+1O/l1UcVd+1tF42cH
	pMXV7u6nvl1AWA2nnQnG9lLZFb3Isuo6w8B4CkNIcKnC/t2WWTdb6d1OMnKDRl/saA89rVHSOoV
	MHEPcamlbUHJcoKLtdAfVvDD6zbNJr5erYD9Bz0Dhsr9oKF56fkKg7eBKZd06UMmCwoLzY/yYq2
	TnOUZaze0d9d3nv1ZFRqKRrhyt0PV/Opeg72Zuft2UFoUL0AyouLEBImdrm8q5sOmlnFKGBk7H1
	L4+7Bm6WwMFdr7miOs1C58fasxkO+/XV/GAN0dfdjuMPe99/WtR9jKNiPKaCU0uzic7gF9Be6zC
	5s=
X-Received: by 2002:a05:6000:2881:b0:435:db94:1933 with SMTP id ffacd0b85a97d-43617e3402cmr24338f8f.1.1770138164175;
        Tue, 03 Feb 2026 09:02:44 -0800 (PST)
Message-ID: <9f2b3559-0658-4343-abec-1a35e7d6da44@suse.com>
Date: Tue, 3 Feb 2026 18:02:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/16] xen/riscv: introduce sbi_set_timer()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <2fd4da2ad7c4af2241368edba739b24d0e976552.1769099885.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: <2fd4da2ad7c4af2241368edba739b24d0e976552.1769099885.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.01.2026 17:47, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/sbi.c
> +++ b/xen/arch/riscv/sbi.c
> @@ -249,6 +249,38 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
>                                            unsigned long arg4,
>                                            unsigned long arg5);
>  
> +static int cf_check sbi_set_timer_v02(uint64_t stime_value)
> +{
> +    struct sbiret ret;
> +
> +    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
> +#ifdef CONFIG_RISCV_32
> +                    stime_value >> 32,
> +#else
> +                    0,
> +#endif
> +                    0, 0, 0, 0);
> +
> +    return sbi_err_map_xen_errno(ret.error);
> +}
> +
> +static int cf_check sbi_set_timer_v01(uint64_t stime_value)
> +{
> +    struct sbiret ret;
> +
> +    ret = sbi_ecall(SBI_EXT_0_1_SET_TIMER, 0, stime_value,

>From this name I'm judging version 0.1 is meant. How does this fit with ...

> @@ -326,6 +358,14 @@ int __init sbi_init(void)
>              sbi_rfence = sbi_rfence_v02;
>              printk("SBI v0.2 RFENCE extension detected\n");
>          }
> +
> +        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
> +        {
> +            sbi_set_timer = sbi_set_timer_v02;
> +            printk("SBI v0.2 TIME extension detected\n");
> +        }
> +        else
> +            sbi_set_timer = sbi_set_timer_v01;
>      }
>      else
>          panic("Ooops. SBI spec version 0.1 detected. Need to add support");

... the panic() here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:05:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:05:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219485.1528362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnJpm-0002P4-4u; Tue, 03 Feb 2026 17:05:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219485.1528362; Tue, 03 Feb 2026 17:05: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 1vnJpm-0002Ox-26; Tue, 03 Feb 2026 17:05:02 +0000
Received: by outflank-mailman (input) for mailman id 1219485;
 Tue, 03 Feb 2026 17:04: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=J8X4=AH=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnJpj-0002Op-Tv
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:04: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 77f2013a-0122-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 18:04:58 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-480142406b3so43887245e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 09:04:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e25683sm33725f8f.6.2026.02.03.09.04.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 09:04:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77f2013a-0122-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770138297; x=1770743097; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mdBD9bdROZlyxJWX657+l7mQ6lQ2j5qsZw1IPMZECAc=;
        b=gF2VUzai4R9nvvnV+P0+zrHJ68CSF0bqGkybkq9QL2PYKc2VT1yAAmkjjwaq2klr98
         xwdSZyMIR3PZXskCdQBkOWJoLGLN1tPCJ7R8+EX3t8z2p0hZ89sk9bQ7LEVzYxoKYMb0
         nf1gUniO/nWkouXIzvDSV/OpKN4JmZqLN8L9rtpfKJ7n8314FGJr/2gTnVQSURqBSoAt
         6ojSmJhSzRNucVI6IhjPgtIGVAMCF0XIxUEwCe+guzj/kepJoNwcvMsU4kjB5Ea3Yh08
         fz/USGQD4HS5vQSqI9PeZ1lNY+nl9zQMSASJkKVtUxOYt02VKWbob0TLGfb8yTRF/Uj/
         RxTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770138297; x=1770743097;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mdBD9bdROZlyxJWX657+l7mQ6lQ2j5qsZw1IPMZECAc=;
        b=D2G6jfiinzz5hpZaRk+/0Gaxk8ccDhgyzNpNRuHUm/Cl/s0rf5wj7NUTiTobPR3yuY
         lKBg1RJn/XXzSZVOGwS8BlGwsCeD4ftFJoTFzhzmgBOTMSzTR/k+OkASFkS+AXYGcFgl
         upk25AfsPDbxZ/WOXXosLtzQCXaddBsX0pF6TpVJjVMDrfaFeUpqQm0O3PG5hvx9cuBA
         Dl+VuYm+p446YbTJjJMI0UQq+hHlKQRwPmtTaLlIneYBQViyx5AMQHYxP/vvhdZGRhgc
         Ez7kv3ksjDn1bbGs2aHDmfRMGURjQ4zYJQaOkBQRFfCrtE/hoEry2o5AURE1hGgxYcVl
         qiMw==
X-Forwarded-Encrypted: i=1; AJvYcCX3bg8QYkFu0Kv/2+b4xYHtGKsIf1jqJretsbZT/IVnxAs1Nr48e0IlxU6AsRm6H62qzMr/UOYFDug=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2iCLYa8j0AJm1vgLeVT5CSC2U4ZQ3hsQQFgNZ6fawcxEyv3B1
	ySlLE+OLqyvLByLPltXlWf0+B18RZWMnYKSJl0y4RUmdQ6G+beepRZbYZ+x1t758Hg==
X-Gm-Gg: AZuq6aJ75PhU5Lg0hi7fSHwdf19P03SdanNev8szlXHsx9xB5ScqE8NL/p90F9R2hvH
	z+vsmd5VfXVs7K6CbE+tbFM7MPOyazXDAOrPjN2ct0PFAzpFW+NKQqCyy7ZIpOUi+muOvfT+wSi
	4nwnAP4hqV9GdnW2cDlkdXTOPOxnVlaBVq4uyv/qQ+dvNteGmRC8NqP9OK7cCwOeJMLqJGdTgbW
	DXWRsPrRlqZ8MTMPihLuINd6mdeXUVA/mZmOk0gK/U+r2llR672KDcoJ6sLwYtvzlA7M26Iw+cp
	s+LmR3SoLRQggTwdUz9+Ig+yjcv9ynGWcVJK2vzxWUpTqiXAtFuP8YEmU53ytKWbmixnFgfGwnb
	qPJHjAHHY6FQvEPzb9R/OoradBk2w9Yy2u4IosG9I94KBCQSK2nBr928BoqgTzXhYSGIDyBoegD
	8IeYy/0IXQCQX5CQTz0v1tWfUUhwUP1Z/hcZln5OwBx22x8Onn5kvQjp1p8co598vVxqxctSMhq
	DVZ/koaT8p1LQ==
X-Received: by 2002:a05:600c:3555:b0:471:14af:c715 with SMTP id 5b1f17b1804b1-4830e93eaa6mr5313325e9.3.1770138297326;
        Tue, 03 Feb 2026 09:04:57 -0800 (PST)
Message-ID: <abbbdb42-76b0-4317-b19e-30e01639e125@suse.com>
Date: Tue, 3 Feb 2026 18:04:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 07/16] xen/riscv: introduce basic vtimer infrastructure
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <381c200edaff013d999c6314c20e8cc8bdb5b041.1769099885.git.oleksii.kurochko@gmail.com>
 <ee928798-73b6-461b-9c43-b34778a4f89b@suse.com>
 <63655a5f-1259-43bb-914d-9e1a79638abb@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: <63655a5f-1259-43bb-914d-9e1a79638abb@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 03.02.2026 17:55, Oleksii Kurochko wrote:
> On 2/3/26 4:47 PM, Jan Beulich wrote:
>> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>>> +void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
>>> +{
>>> +    struct arch_vcpu *avcpu = container_of(t, struct arch_vcpu, vtimer);
>>> +    struct vcpu *v = container_of(avcpu, struct vcpu, arch);
>> Why two container_of() when one will do? (Same again further down.)
> 
> I didn't think that container_of(t, struct vcpu, arch.vtimer) would work
> (as arch.vtimer is embedded inside struct vcpu. Is my assumption correct that
> if it was arch->vtimer then it won't work?)

Please simply go look at the container_of() definition.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:18:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:18:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219504.1528373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnK2o-0004rn-4j; Tue, 03 Feb 2026 17:18:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219504.1528373; Tue, 03 Feb 2026 17: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 1vnK2o-0004rg-0z; Tue, 03 Feb 2026 17:18:30 +0000
Received: by outflank-mailman (input) for mailman id 1219504;
 Tue, 03 Feb 2026 17:18: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=NbdA=AH=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnK2l-0004ra-Va
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:18:28 +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 5763dd05-0124-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:18:22 +0100 (CET)
Received: from DUZPR01CA0205.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b6::18) by AS1PR08MB7611.eurprd08.prod.outlook.com
 (2603:10a6:20b:476::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 17:18:16 +0000
Received: from DB5PEPF00014B99.eurprd02.prod.outlook.com
 (2603:10a6:10:4b6:cafe::80) by DUZPR01CA0205.outlook.office365.com
 (2603:10a6:10:4b6::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Tue,
 3 Feb 2026 17:18:15 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B99.mail.protection.outlook.com (10.167.8.166) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Tue, 3 Feb 2026 17:18:15 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB5PR08MB10192.eurprd08.prod.outlook.com (2603:10a6:10:4a9::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 3 Feb
 2026 17:17:12 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 17: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: 5763dd05-0124-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=rAtUcQ0X0TbP/mUxeMoZWJ9Mw1xtAo2WViPzPAnaBIWcNP4h5nITRYlvkq5uY5ukaV88UwgVwmfHto/C1kFWeMgXfOOTPolqA7jMr02PNUjqq1QUwtnUuJlN9SY8EpFaeyqP+wg+XKkgwkJWbzv/+NWOn7zOlEm7DUQcnZxUG9zqr8nbKeipiCxapHfciGp1s7Sqg/sKIMHlCczrvT3aOmJMzgw8UZ+3OLnkealip4c5nF02IgaWEsvOa31PMRJsIb6h2Atdp8PsVCwHkfA50TH2JTudw8bK1BBEUpxU61m6c5ecUJOlE27mYUZ4Pml+j1eSnojh7y8GtSbVaXjU1w==
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=uE49mNU7o/f+UFRrp5Xw+T4iHWwq3t2m62iAvt7eISA=;
 b=TdQSBm/fYz5NefpzdBAqSmux/8zlxdQ1shNX9RSIYDw8rMcfuOdFdP181yHw01zQepLHjqFXF1FghYOu+TwIzbrSnuX8vZzt+eESjKDRR8Aw8rS0tUfgCdVhj8jiBbnnjlzOs2ZcSJYtZaaeXOjveQg9kPr3PuGNCzlBTxkvG3ygLc/jvDi/0nwiUcy925s4ouppUlJQfqw2haNaWFLaf7PPI8vjSClDPYh997tdNjhj0QpneK+7OOqiFdM+6keoZIVN2ldY548Gn+96lpgvKrHP4tYSjdc+6YOR0FtKEZLMM5lNWPfp8ahmT3ICmezJfe2G6C5jkd2qvfIUInldGg==
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=uE49mNU7o/f+UFRrp5Xw+T4iHWwq3t2m62iAvt7eISA=;
 b=aM/xCH8VO5PgnFidrAZ2mPIDQdgJ7KMopdvGEHbwDPiYuNHgxPpDMxxV6sTJD4zGjoqpJf5hweXb5w4qPOwl5m8e25Yectks9g3fLNpa+Gwad1zvfhLODq1/MfIT6ZNvZQfJfKa7/6+yaqOpLhdkFQcii9EQgjXn1ft2VuveC3o=
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=IiW8p0/mgzrs9F0AKcAV7wePf1CPqPJ0gmsaI2kvkuJcXAJiecbuFXfdKZL6wyj3lUDujhSglSz1BzC+PY6WLQ/XzWapaWdzRwaPe3PaK8gOBFMjnHJ0S+pK4fu9XDfCDI/H6cQKdUAfVwrMqrX4tTb0YCJJdszcnhmzgUU8Mqp2C9dYr2d6JM6rROxN38lXxFeXsXx8nH28b+v5g4qPRMo1ABjB8KzXw25ONxglGH0RLsiSaGrjz67mhShwlow5+NAuCEzAXcICG91JJMlWIT3BUI0s/pDPY0SRHKAWuZg6hlgIgxQrGhW7hVn19YizeLv7YI0lemTSKCQU2K1PfA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uE49mNU7o/f+UFRrp5Xw+T4iHWwq3t2m62iAvt7eISA=;
 b=NUPvYjcrhsu+OkVv15n2m60Nn4SrLFv5ly3boVh8ROr6oqbMJHUFUsUaTAGmWNOydxHySf30cB/6jd10Kq+Fr9VmUtMgVxBMqzkOpvQXijb5Y8M8CY7mLLQ0I8KFAqGLuijF5yAMJcayToxEwNxmdbj9D+ZJUu3rajiV7j5WgUGN0Vo+EDa/ppN8AMo42IehPHjwpywvvQHsQ4F6MiJe13KnWuCsEQY90Xo0w7QrxAkqJlppRzhE4h3zzTVcIuwoumgkjMkcnWvg2NrUzA7Xtrkpp59d+5xBTo7DOCb+tU47wnqWz03Fb8zkbnZkgC9a3onkZDai+lRINS3WLypWLg==
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=uE49mNU7o/f+UFRrp5Xw+T4iHWwq3t2m62iAvt7eISA=;
 b=aM/xCH8VO5PgnFidrAZ2mPIDQdgJ7KMopdvGEHbwDPiYuNHgxPpDMxxV6sTJD4zGjoqpJf5hweXb5w4qPOwl5m8e25Yectks9g3fLNpa+Gwad1zvfhLODq1/MfIT6ZNvZQfJfKa7/6+yaqOpLhdkFQcii9EQgjXn1ft2VuveC3o=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Juergen Gross
	<jgross@suse.com>
Subject: Re: [PATCH] build: avoid Paths.mk in hypervisor build
Thread-Topic: [PATCH] build: avoid Paths.mk in hypervisor build
Thread-Index: AQHchV6cHH8qTLh8YEa40ejcvCxMQLVxVxSA
Date: Tue, 3 Feb 2026 17:17:12 +0000
Message-ID: <48832F4C-43D3-452A-91AF-27548AF6C7AD@arm.com>
References: <ab8a6f18-522c-4493-b46e-0f51c4350bc2@suse.com>
In-Reply-To: <ab8a6f18-522c-4493-b46e-0f51c4350bc2@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB5PR08MB10192:EE_|DB5PEPF00014B99:EE_|AS1PR08MB7611:EE_
X-MS-Office365-Filtering-Correlation-Id: e9c834e3-efee-4908-6835-08de634837cd
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?CE/U6ZTRAk/vEJ5YaIv0Cp9QHfOl6UZA33QB7HOGZ6wzgiNHwitTjdEeny?=
 =?iso-8859-1?Q?cOr6Ru0HxGeUU25aziCh+eB9QVqh+gLzxDkQxsclfEZgPbknCGlciSqwoM?=
 =?iso-8859-1?Q?hTgvkfJGm5wZUcxvMVyPtGoSZZLdMSy2SzhyAC7n0TYVb9Xf/0cN73sRmh?=
 =?iso-8859-1?Q?KO95/yERhpNwK1Fyp91qsZzLV6igQE9drXUiAb+RKMByjn5oTQ8sW0fSfA?=
 =?iso-8859-1?Q?/5TVd86vEne/Fp4x0FDYBwH62KhhrK3hZ13xlWW2CNLsIgogUo2PmpQ53A?=
 =?iso-8859-1?Q?MfiE1YDoXDXt4KHvEYfvlZpM5A5YkKFLPFAb/nODBYXri8X6PJFOpztgOT?=
 =?iso-8859-1?Q?nBZeGDWifdmc04pmbSizbxyb2IIBOMnFgJbr4iIt9++cuSvHtb2dF5SzY1?=
 =?iso-8859-1?Q?6GnsqxJggFLOJOaMsQuSpFzYsq/zbUsZPXZO8oD8k5w5Pa/iP1YU5tqOot?=
 =?iso-8859-1?Q?0gaV5ob9/J0ZOiqNdIZe7yxKvYk4nCTX+r4vcjdLKcoC/WWYMoZ3nb6tcL?=
 =?iso-8859-1?Q?Robua6yVKenlhz8nVRm+H7nLPxl11g15bXrUwVAB4m7okH4hXMgkQT/N+P?=
 =?iso-8859-1?Q?Bf/amXPMs9432qDvTsG8S8GHzwFYveDKJFIU0uRdYk1m3u0m7h+abInwcM?=
 =?iso-8859-1?Q?l3NvuGzLW71dbcyng17aSqRDpk33shTbdVp6e6zPse9y3VCpcqSyZSushi?=
 =?iso-8859-1?Q?4RzcRKvbjfOEm4B0Ouhh/vvYYyiAJ1d1HdhmenfT+ZyiLsoA5V/V0aZmDW?=
 =?iso-8859-1?Q?bIiEytjE2SPulPwFaX1jH87YtVRe6v+2xD99ttkXmyZXb8GUSjv1ZdwDgy?=
 =?iso-8859-1?Q?N9fnYY0qU4Vd8Jb/zXPbQKQp244jIjVnYXoUOkiZdIoxbnyqCOajVamMbm?=
 =?iso-8859-1?Q?YrWj86q7ejB8rUAPsd18lWfTcn6wIvJldKbtKBn6cmFBEj2owUfDBTVC+2?=
 =?iso-8859-1?Q?NNhXL+Gn+K7HU/v+Z4ooGssfngGc+qjw5usq5N18vffZYkm82rWfcKQFMn?=
 =?iso-8859-1?Q?U2d+9Hrd4cdPSjOvfBLfNd3fh3nLDJG7ODxDs1Kn1HdQBwEJlIrrARzNo8?=
 =?iso-8859-1?Q?2D58GQ4bFya/ThQyU3qAR6qCjJeulQGSkEnocRGQouVXF+YD4Vm/T22OZ1?=
 =?iso-8859-1?Q?cSAPnqsumDMOfrUCqDn3A3kWe8bEC7KnXya7vHNygsrcTpsBYot+PU5bBX?=
 =?iso-8859-1?Q?yI3SM/c+jQuqhHeOOUaugNaFrJfOD7psksgcKnN5zppOGct8gehevHS7K9?=
 =?iso-8859-1?Q?eK5lO+8w95XVNv4FOqsGhA4m8/HBQEg8fUjPpp8XRi8C4DYiqARlBLhHmt?=
 =?iso-8859-1?Q?2e1E+/taFPXfptVqhnGTt4QXcWGHi8dOI1aBW1eDEBAH0e1xnOqFN+0Etk?=
 =?iso-8859-1?Q?UrDHEiSP8feBkrddoAbV3nBcvK1y7WUOb6l4JxillwN2GwCab7a529iNyR?=
 =?iso-8859-1?Q?zgvre+D55oZ+s7PLCZnQy3Q2sfve458JYO0+v9UtkMkdAQ+gyS2qaWGpIv?=
 =?iso-8859-1?Q?8BmgMiR2OMGt0h4dmVij06XCYWCV4WoAH5hFBHYuWY5D0KUZMVApWeyecK?=
 =?iso-8859-1?Q?Aw7luYCzcOApsgrffBPpLiOexetVYjo8eu9O+rML3I7T5UF2yDJBe/+QsF?=
 =?iso-8859-1?Q?5rHhPiTpg+fdXTknf29mkETVAJ+vFrQFI4Z/tj98oTHViH2iwQst09WoSk?=
 =?iso-8859-1?Q?HOrYjAbBrzttvEURT5o=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <E49DB73959D8AB408A2ACA59358A75D3@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB10192
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B99.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1da6910a-9023-4b14-884d-08de634811e1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|35042699022|376014|82310400026|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?vlDfK+vcoNsHnkLDTm9KN6qmHy1qiG5RK63RBUgtDbXvJ1MOt/4IKmz7EJ?=
 =?iso-8859-1?Q?5KgNzwUO9Ck0T8Avi0rxcoC1BNDXc1WYCd6ivg9VcumniA3fEL7DYwZ3Ui?=
 =?iso-8859-1?Q?CjjNs+e8dK+UJE/RC5zsHaS1gfl9aqqJCZpXzC4PxM0ifdHChytcujXpOv?=
 =?iso-8859-1?Q?wv3acwv8UNXapjyI+FrjAVoa5zjYDrwwIOGh2P1bot+zK5qohY1pALcTS/?=
 =?iso-8859-1?Q?FSqqNrL66WM4FZM9uwxv/bxmOqBj4CD+dnUiQ4L85nlNbDxBc+Ox/FEAp7?=
 =?iso-8859-1?Q?HDRnHQR5Fj1yBsh1FnqlwvoUX6Daow3ebrIPWFVWtQ0wMdKYu686IpJD4q?=
 =?iso-8859-1?Q?kHsKr5PrOckPrX1WTW9TlBcetvJWEdLEucEbPxjvOYpw1oedzU3ZMfsul5?=
 =?iso-8859-1?Q?WuLpfPIcAbVOI1RDlXTEpTbZAPNsW4fnAW12jINSRYwVayt7/EysVzKSqi?=
 =?iso-8859-1?Q?dwNP1YQ+keJDkeXoZGNqd9iJZrsL4YR5813XiaJEieC2R1aNbD46Ey45pe?=
 =?iso-8859-1?Q?cFFmBE7qGf0oYJCJ32s3QgB7lU67CmssB9uQd2iv9Yv+5uKi+A8OD3x8vb?=
 =?iso-8859-1?Q?HOqc1TeV8eB8km93PJovAOl15p8KkabMNZYqw8qxoQ+zfa9muv79jJN1hp?=
 =?iso-8859-1?Q?whDSZj5z0rI7whi4GLz6h/Zpf36LBqe+GzjyIvNh0uMFm8Q/SWQTXs5bLi?=
 =?iso-8859-1?Q?aeSi2tBRnSX5ih63ZjNy/3CA4rMJwuLO+G40t8x1ecXwBjX+6V0feuJed7?=
 =?iso-8859-1?Q?CSDucTqaAB1O17PPdhcnoLGBHvn976+NIVXN+6VQwAzLm5wmSfbG7N6mHu?=
 =?iso-8859-1?Q?JzOyz/aiA7cInP5SysgwjATuUvjpTG1dJt0FI3ud3kpBdM2BhS4D68jxlU?=
 =?iso-8859-1?Q?dpRJcA7YXftXVt1ZLGXha7g5cLd38cI4BRgikQIi4GqbI/1DH8zmtEsl1Q?=
 =?iso-8859-1?Q?iGsn2fYHX//takie6JHkTP68wPl35DRxz64+mbfYghcpBd/bcDHTt1vlQ1?=
 =?iso-8859-1?Q?1DbWhqAPmusDbhUFxyA4dSlCNEtGxnqmx04G+FyuXQaWCAtnvxAY7C32p9?=
 =?iso-8859-1?Q?5xVKzFg0hTpGizcjTwUeMzGfBTTbKvE18uRnb8nDbI3Chgj60tF7H/Ihdk?=
 =?iso-8859-1?Q?k1WDEG/PW2ZoFhBqn7uGp/eLnXR7kUHznSr8G4DdxIdkR0VWWNcyvEKX+Y?=
 =?iso-8859-1?Q?rP7CO3argoNT0Tctfwn5Qv8pw2h8Bht7NGVFYih88Tq8Ffw/RtHmfcjYzU?=
 =?iso-8859-1?Q?MyTjr1elbhifJy1OpqMWXR+Kj901QoTnfgJaFrusX/m5qmc6Ess6GRYoVk?=
 =?iso-8859-1?Q?1UfQxV/ze1xS3KhiKnBwxXhGKtBid6BDfzsM479lqXRJJ38uFIhhKSyVR3?=
 =?iso-8859-1?Q?zqDbBabHOl6qBK81drN/ek1FhLeq4TGlwTZzlrQiEZOql6AsLppglULJA+?=
 =?iso-8859-1?Q?9267BmebWFDEFtmaBsjE4gammdYT2aMUzS1C6u7etFww/K+PfPxYs6ejXK?=
 =?iso-8859-1?Q?+VnuObV8SmrXnDuLhsGfHoIA9FD+qEXHd8/lJKalpL/KqnzCZSE7vvddlF?=
 =?iso-8859-1?Q?by6k/ZzEv06s/f2pxpCdPzVtgdnmgqsPhtbxBzB3mx4X6fFk9lPd4FvC9g?=
 =?iso-8859-1?Q?TqGdFTDx80bCvRQfb64dqHU8geogpCVOejCgJ1Fr/mSEvMlShX/29jtZol?=
 =?iso-8859-1?Q?DpyPzvc2uPIBtaZxXSG3Wqy+MtsGN7mZCgm3thaZ3nDgkZhj5wLvxXAAVf?=
 =?iso-8859-1?Q?S/sw=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)(35042699022)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1cdPx/dM6pQS4BVoxAeIR+cBpE8/kElkn41ENlXdxpn6dwd611eQipzM7O37Msza8jIPMJEZeCwWQ38U4ufg7VSCpSwXzf5aBTb0xZqtWVLm0ExKgQF6qzLvmync0knGePvxBS4O6UR/Un66qS05sLedD1/OO2nQLIBLF/9Dc2WLFZmy3MvxFMRGGavFAPz8XXuLxGwDY8T04GehbVMoNsj9gRomI1yYAZgSIfv3YMCizUVIEB1vEHK0Hj3eH6btNWXqntykXAO2U7zdj08s4NShO6izaO9+RFL2qti1fjvWf+bxiwFm7j8dL1eW6KF+Tqp8nf4uSRleTumEsQw8SxmOmnv/b/W69wTAKNG5FrrYoetZPVp0Y2nGd/qQgIKnBHYPa4CWbUB0sujKw71t64u6JrUHuNwvGioMMMZPcQzRi4CGZVh8kME5nHTS6jK7
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 17:18:15.7105
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e9c834e3-efee-4908-6835-08de634837cd
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:
	DB5PEPF00014B99.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR08MB7611

Hi Jan,

> On 14 Jan 2026, at 15:03, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> Its inclusion placed where it is, it affects the hypervisor build as well=
.
> The hypervisor build, in its _install rule, uses $(DEBUG_DIR), first in
>=20
> [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
>=20
> $(D) is an absolute directory (shorthand for $(DESTDIR)). $(DEBUG_DIR) as
> set by Paths.mk is, too. Both point into the build tree. The two simply
> shouldn't be glued together.
>=20
> Note that the earlier
>=20
> [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)
>=20
> continues to be working fine, as BOOT_DIR continues to be controlled by
> config/StdGNU.mk. Its DEBUG_DIR isn't taking effect anymore, when for the
> hypervisor build it should.
>=20
> And of course behavior now differs between building xen/ in a tree where
> tools/ was built before vs in an otherwise clean tree.
>=20

I cannot fully validate this but it seems to make sense so

> Fixes: 82b9cc04a7c7 ("build: add make macro for making file from file.in"=
)
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> This is clumsy, but I can't think of anything better. Suggestions anyone?
>=20
> --- a/Config.mk
> +++ b/Config.mk
> @@ -162,7 +162,9 @@ endef
> PATH_FILES :=3D Paths.mk
> INC_FILES =3D $(foreach f, $(PATH_FILES), $(XEN_ROOT)/config/$(f))
>=20
> +ifndef XEN_FULLVERSION
> -include $(INC_FILES)
> +endif
>=20
> BUILD_MAKE_VARS =3D $(foreach f, $(PATH_FILES), $(shell awk '$$2 =3D=3D "=
:=3D" { print $$1; }' $(XEN_ROOT)/config/$(f).in))
>=20
>=20



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:19:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:19:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219512.1528382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnK3W-0005PC-En; Tue, 03 Feb 2026 17:19:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219512.1528382; Tue, 03 Feb 2026 17:19: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 1vnK3W-0005P5-Bz; Tue, 03 Feb 2026 17:19:14 +0000
Received: by outflank-mailman (input) for mailman id 1219512;
 Tue, 03 Feb 2026 17:19: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=1Q51=AH=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnK3V-0005Or-Qe
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:19:13 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7444a36f-0124-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 18:19:11 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS4PR03MB8374.namprd03.prod.outlook.com (2603:10b6:8:329::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 3 Feb
 2026 17:19:08 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9564.016; Tue, 3 Feb 2026
 17: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: 7444a36f-0124-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kBEib5t9FvKNwC6zWyQcxrvyFzeyHDvNZrierkEkJW7wm2Fl95svsrem5MH7PZ/P27MpUwZxaXxEJGHa3zZkob1x4EITX2oIsfE1ga3BInG90FLskdYBtVoZzU9bVSBHire35gSQ7KLhmk8cmc50BAIiOz1NBAxnf/F7T+E4HjIoT2HQfIeuFdQ8C4nP2awtaiumE3Qjc3leytLrfuXzhTxhmsm3j2dYuMA+9AZ8z4BfcLNtup+EkH5S3vpx3WgjshN7VOgkXkwe8KvGzLtHXcwsTdGIs317x/Yd7MYJ5SAcWxpw1JIYkGQl6PZ5HSot1vvUxcG1BupiPP55GUhCqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5KKguGCm0m/c0z83/a0cONcteUbXEG5AiIiGnVyiGzc=;
 b=MlLXQ+4jxYzdD+6rorU5ySfWf5aMriXQzBi2x2DOLcZAUTT8TY0ruaKZUvUf0Hj9hWsWTTM0G0/8yNP/DmRWSTlvUrRkHb27/FtDSeW19eRq/KA/R7g+RBgPELGIDlOQZLWBR4kqG7o4fwcIj/i+frLGg69dh4cN4SxgDS82iYnWk3Gk+BDiJ3OUIIgJ7Xw1rdYCwlMrHrukX4sUUapSuXMhK+lgMT+K/Apo+G8oA8MgV+wmO/pnVTCxZxDg42A+1DWVBsgrctSlOt4gFW3tDbSK6eHAFf2f2SKALdiSq5pE7UDq5OPHchCVgmfc3qG4pJpdSEmQrgUfPcAwSYLgig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5KKguGCm0m/c0z83/a0cONcteUbXEG5AiIiGnVyiGzc=;
 b=Vv+TRdb7U6e+Pl8v+Kx3ZICx9W7AARaW70n+Y8n0AzQth9gBs/lZDOXAg7GnaOqAvK0EfVzjJg6vwC93YrGA2lSYmlqVHXrdr+mEyxlrFNyiSsdTRKCvNP5tfsRkDIsC32y4wNjCIoF1bxGyR4MP8ZpOuVL3U45abms/bYsYGXA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 3 Feb 2026 18:19:03 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v3 5/6] x86/PCI: avoid re-evaluation of extended config
 space accessibility
Message-ID: <aYIuB96SYzVwGfmj@Mac.lan>
References: <a67e69b8-c1e9-4448-adbd-17a19dfe13de@suse.com>
 <a0b10d39-daae-4fc0-af42-a3794a96f9f5@suse.com>
 <b63b0f9e-93cd-4b55-a7c0-f8eab9df1947@suse.com>
 <aYBq2EoeP_TGv_sK@Mac.lan>
 <1bcdd2dd-9b2b-4eb2-a569-e28b03c1e1fb@suse.com>
 <aYB4z8CSA590Ytpo@Mac.lan>
 <da490e92-c8b1-40b3-83ca-ad77dc2defe8@suse.com>
 <aYDAUCVdk_2qGa-r@Mac.lan>
 <4913d9b3-03ec-443e-b908-a1531dca6699@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4913d9b3-03ec-443e-b908-a1531dca6699@suse.com>
X-ClientProxiedBy: MR2P264CA0168.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::31) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS4PR03MB8374:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c338bdc-e154-4374-daaf-08de63485649
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?U0dGZUZYTUlFcmU0ZzFtYVVmYlZqSzV0Ulo2TTlnRjBTeE4wbjlRZk96VDla?=
 =?utf-8?B?a2FwZzYxLzNIV0d1dkc2U0pjZnRrbW44VVJVZDY5dVE5bTA2R2ZuS0dndnFY?=
 =?utf-8?B?QkkxYUdOVTVKcTFBdlBxOEw2bkVXQnpMdDBIbnFTRm4xUEFxZjFQbDJiaWFY?=
 =?utf-8?B?V3RZRGZtMWM2YzV6UnlMa1pVdnJQWmJiR2J5SlZSL01TeFBCWmF4Y2Nja2Fw?=
 =?utf-8?B?bUFVRWZnS0NVbk5YaWxxUStvbEhlOHVSQ0EwZHBmdXBBSXVLcG83Vko0SDdp?=
 =?utf-8?B?ZmR2ZTVrOXlZcGVtYllQc0Ivc0c2WGxwRzY5NkNLUjYzOEZqQTZ1ZTZra2Jz?=
 =?utf-8?B?TGdpaDNJcWt2Z0VVaGdSZXJ4M2ZJeWd0VjVDcFIvMHQ4eGNGaXk0aGpHamdy?=
 =?utf-8?B?ZlRaM3JMTVJ4M2lTQUowbSt1Z2RzK0hsTFh6N1RzZHJkdDFXZXFNZ2RYYStm?=
 =?utf-8?B?ZGFhRHlUUmVWa2dXQ0JTSlpSc0VtQlp5SkJZRUxUbUhuN2J4UHlZL2NSWEdM?=
 =?utf-8?B?ZlFoT0ZselNUNDV2V2p3SUo1aWhRTVVWK25nWUJaTnpQdnVvdERES3A1eEZn?=
 =?utf-8?B?RHNVL3N6b0oyZjI4SkdXZ2s4Rnppc3ZyMkNJcHBpMDdNUFVGWmh6WW5oUk15?=
 =?utf-8?B?aUY5WjYzZFVKNXdmelkwS3k1RVkzNHh1dDFhbGJGSm45enY5cE1kV0VlRk5D?=
 =?utf-8?B?Q1FRT3k0RXl3N0x1TDdEbzdTRGY5TDVwTlNqalpseklzR3pLVisrYXhLOEVQ?=
 =?utf-8?B?U1RCcmtpR1dYSm5Rd1JsWEdzOE54MU1nY0N1TDBUZ29aMTF4dUZuTGZhVjV3?=
 =?utf-8?B?WVlRYXFHMzVDOGJqQXFWOHgvaEkxRlJBbDd6YnRxeFZqdHlSNGlZQWVPTUo0?=
 =?utf-8?B?Snl6VzlKZzRNR0Z3R3VlZzZxVDdJeGx4WlNtUUZKck5UV0F2RnA5ZWJQc3Fn?=
 =?utf-8?B?eENubzM5eHo2c3BPeWEwTXpVdnZDMFdlRGdwaUxSdTBOWTNqeWFmaHh3K2E4?=
 =?utf-8?B?TklrNnJkemtaVWRDOFNRcmxmdGMyMW9kQTl2YTI1NFNqUVcvYkpzTDlCd28x?=
 =?utf-8?B?c1h5NmE1cDBUREVqZnRWQ0FqTXlmQnU1aTArNFFCNXpUeVFPVW1RZks1SWNK?=
 =?utf-8?B?MTZtb1lIMXVHME1QeHdtY0w3TGVBZUJXLzlxczQraDVXSW9ScHNnVllyNE13?=
 =?utf-8?B?dHpNdlhVMTJBMWZzQnVjTEZkUUJDR3dOdTJ4Nk8xUzRMVGd2Z1owSzVoOFRJ?=
 =?utf-8?B?S21NZ01ybFJqMjZ5Z2hDYVE3MVpOVlBJaVc1M1FFbVBhelBWa3daczNQYmFn?=
 =?utf-8?B?dlhCaGdRQlJ1ZkFoZjFMZ0xpSVo2V01tVDJQeGtGRGkzNjg1VEVXc3RoN2lF?=
 =?utf-8?B?NkxFYURjTEdoVVM2dXhnaVBRZUw1dmwyZTNobnl3bzVuS1EwdmI1a0pEa1JO?=
 =?utf-8?B?ZzRSalI5ajVZb2pBMUIwY1hJZjd6ZWg5M2hyUXQ5STdoSTBzbVd1bkxVcEhQ?=
 =?utf-8?B?MUJsNjFZSXdIbDFhcy9tcXoxWHM3SEd1SHA0OU54SFd2WDFmdDVaUlhCN29N?=
 =?utf-8?B?MzF6eWpYcXJicVA2WTd6SStKbU9NZDdFWGwwWXRXbVQ0cXdiS05uVFVVeUFu?=
 =?utf-8?B?cWZnL3NscWJ1em5QamRNQ2dxaUxXdzVFK1hPUm5wRGdNRW1TM2IrdllSOTlE?=
 =?utf-8?B?cDYzNGRubzFEYkROT1FmUTlWSjMyeFRlV1h5VXJUYWVxUUVHTTN3cEs1WFFO?=
 =?utf-8?B?S0Z1RVcvaTVPakU4RzJiSE1VMHRYSkZFTDNnR2hhZi9aVXQ4VTYzbXN1Y0ZL?=
 =?utf-8?B?MUIxdnZXTlg0VVVUaXg5Qm9lb0xUU0FQMk9OU1VUODRyMjFXVUp3bjU0SHFj?=
 =?utf-8?B?VDJsaURiUGVvc3lxaFovSElCaHEvQ1pwN2lEd2RPaDFhekxoNlViMEU5Q0NC?=
 =?utf-8?B?ZnVvNU1QK3hleXJuOFlqV1pkRDg1eWVoanIzMHhJQk1mbndoZVVTS0Q3cjVs?=
 =?utf-8?B?WWVBOEl0OGk0Mld5WGdJMS85VWt4Mkt1RFpzTTdXYS8yMXB5aTQ0dGdQeXNV?=
 =?utf-8?B?VVBPTmNwZzAweC9UbkR4YlBwRXJoWlRrWTRrZG5yNElWa1BzQWRiVzlsa0Zm?=
 =?utf-8?Q?zSjw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WGFiSDY4YWc1QWFmRFZjVlhadEZOalNFalp4a0VLaXhnY2lYYkNMK3h0czlP?=
 =?utf-8?B?UWpUQ2w4RTEyOUhwTU9wdk9LbXJTNW93eTZCcFlMTEtYbmVvTUpkV3laSUtN?=
 =?utf-8?B?cjlNSXdReGFRamQ1ZC9Fc1RBUlRNd0xkemEwYlA2eUhPVC9nKzN3TnpmejJY?=
 =?utf-8?B?UGlNV2ErV05Vb28wK20wVmdCam1Bb1l3Z09SSzVmVm5xYWVYVytKanM4QWVr?=
 =?utf-8?B?aGRuU3RhS0o4dnJzdUNGaHFhd3VlSUEraFE0UGhBRFNNZGdmdUdUaGNibkh1?=
 =?utf-8?B?SjIrTkN6ODhyZDJXcWI2dW0vTnJMQmEwV0pBZ2MyYW4vNkV0UkhMei9jNE1M?=
 =?utf-8?B?bDMvbGdMS3VnWXcrci93L0R3QjEwdFFCMnpJOEx5b1hWSWlVdUFkWUpzdFdQ?=
 =?utf-8?B?bVJ4YW1rTi83VUlOeEoxSk9yZWtRc1VJTzlZTGdKWlBxdU9YcXg2MmIwUzNv?=
 =?utf-8?B?S0ZXRjV3NUlReTlCWEhkem96Sk8vMjZDUEpJbjZ5YVkxOVJ5T0c1dVJQY2tw?=
 =?utf-8?B?MloxQjdmRklXREpodXRFYjF1M1pSVWRTaEtKQ2QrdDF3Qlo2NXpycjRMZGhV?=
 =?utf-8?B?aGZGWnRHb2t2ZXBPbjU1ak5zWFJTbHd0YjJVUzRNcENTNUtEcW56ZzIwWDIx?=
 =?utf-8?B?ZC9ON0E0SWVjdTJnTTQxRWJ6ZHYxdGE0cHdJWS8xSEt6NTZ2NkdFVy9tNzBP?=
 =?utf-8?B?S0NMQURSb0R2Uy8vMDJ3RnhYUlJxSTFVYlRCKzFCb2x3QjlNckpPSmVMM2Jp?=
 =?utf-8?B?Y2NpTjlzNUpudXlPTW1FYzJTNkRlcWhsRmlWN0lnUURVeElaUEx0WVl4TmZ6?=
 =?utf-8?B?REQ3Ylp5aHFCb0lmbUN1dmIvNVJ2NXY0eUFkU1JIUmkvVE9STEtJaCs4Y2FT?=
 =?utf-8?B?Rmp2a1lUakZkc1U4YTd4WGJEM2dZMGsyRzlSU0w0d0hualVzVThYaEhGZVJh?=
 =?utf-8?B?cWdpdGphRUwrU3RSUnAxQlpEWFlDU2ZRWThpYk5UbTU0VXhvV1hLTmNZU0pl?=
 =?utf-8?B?K3o4VG5vdUVkRWtpZXBrOC80T2pibzJzcGZ0VGxJUnhrYTFlaktEbnd1UVR4?=
 =?utf-8?B?N2tQVGY0ZXlybjBnYkk2U0dkbncxa1NHK1VYcCswc3llYmVZUmhHVnFBeGZ0?=
 =?utf-8?B?RTY3YzZQZk5xTzYzZGlteDJzNVkrZUxLZ3ZmcjdXVE93U1d3cGhyb3V3US85?=
 =?utf-8?B?MXZhamFQUHBJZmdaQm5pMzdCa1pTVG9Wdit5VnFxeUFzZUxXN1c0eU9DU0kv?=
 =?utf-8?B?SkVuNElBUGdSL1lFUFNmMGtKSUpzdzlhSzlXeDJpL1BDcHYyYmpMM3llUlpC?=
 =?utf-8?B?RkFOTDFpZENZWDl6VmdZWXlNVkJ4cnRnVmNNaitKY2Z2dHVsNnpMTkJoanNk?=
 =?utf-8?B?RXo4eG5SSGxqaXpOVUx1cWVUd21jaDF0ZXpMa3NiL25vbWNtdjNSeFZ3YVR0?=
 =?utf-8?B?WXBYY0JzQStxTmpTUTdZRlFvR2xPUUZTdUVlVDFOTVAwSUlITjBRcXlaei9k?=
 =?utf-8?B?UWZPZ3h1aGZKTWNjKzltZFNMdzVKR1NPclpIbFB4MHBTbk41REdZZzg4VWRS?=
 =?utf-8?B?SCttd2JsK3FrZE5LSTJVWE9HY2dRaHZXbFVRSTB6S091WnczTFFxYU1PRkZu?=
 =?utf-8?B?ODBVS0RrU0cxR1lBV0hjTlVCWTBLalVxcXBEQWtyZXZUQ253Ui9ZRktQWVZ2?=
 =?utf-8?B?YXMvZFI2ZW9aNHorODR3SkJQaDIyK09EeDFrdk5qSHQ0aHZOTSsvaG5TVE5L?=
 =?utf-8?B?UENQYlM3c25sdWtneWFZMEtSUUlRNkNnM3QzeDlweUE4MS9acGUrU2puWnUw?=
 =?utf-8?B?TW4zS2p2ZUNuVi9JdnBqNU1CcnMycmpxaVQrOVU4eU1MckR0d2x5cWN4NmxD?=
 =?utf-8?B?WXJKVk1jWXZXQkppVE9wdlUvMVQyUHVKR3dXcDdRT3dsczQwSTloOHF3aURT?=
 =?utf-8?B?bFd4d0kzMXJYcUxJQ0g5b1hBbG9JbmpSTTd0L1dwaWhUSSswUU90MWI4YXJy?=
 =?utf-8?B?OStpQXNkUkJVLy9XdStlc2s2SVN0WENqWnFMZk1SWXV5S1RQd1ZxRTBha0Ri?=
 =?utf-8?B?TFdVWEZBUllNSjVaTEU0Y2huUVdSeWc5eVBZTm5qMUZCQXEzMnE5ZFg4bUZx?=
 =?utf-8?B?VFFsVkMxQnRvOGV2cVZEcWIyUTlWYS9rMFh3R2FtRXp0bVpZQ2ZBVVpCRUJP?=
 =?utf-8?B?dzFXcWovUjNWaDZKSFMzbWVjZ2JFazJsQTNZQkd1VmNVLzJWRnpnTUFEeEF2?=
 =?utf-8?B?ZjJaK3NleDVDcmZxNEJwNm5ZSmpEVDZSYmd5K1puNmd2alBTdlBKQlhiQ28w?=
 =?utf-8?B?aXEyT0kxc1IxK2R6UmNNMkxWNTRPS3JkWVJVWDhsT1NtVDZGV2Q1UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c338bdc-e154-4374-daaf-08de63485649
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 17:19:07.1395
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 94r1H5OFdcJDBN+BhRQSloZvX+TsxY1eUkQUueqi0JrjUQmL9mWsBeBb7C2d1qCHBFQKEmdkZ+XtJS1laybo0A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8374

On Tue, Feb 03, 2026 at 03:48:52PM +0100, Jan Beulich wrote:
> On 02.02.2026 16:18, Roger Pau Monné wrote:
> > My copy of the PCI Firmware Spec v3.3 contains:
> > 
> > "4.1.2. MCFG Table Description
> > 
> > The MCFG table is an ACPI table that is used to communicate the base
> > addresses corresponding to the non-hot removable PCI Segment Groups
> > range within a PCI Segment Group available to the operating system at
> > boot.
> > 
> > [...]
> > 
> > 4.1.3. The _CBA Method
> > 
> > Some systems may support hot plug of host bridges that introduce
> > either a range of buses within an existing PCI Segment Group or
> > introduce a new PCI Segment Group. For example, each I/O chip in a
> > multi-chip PCI Express root complex implementation could start a new
> > PCI Segment Group."
> > 
> > Together with this:
> > 
> > "The MCFG table format allows for more than one memory mapped base
> > address entry provided each entry (memory mapped configuration space
> > base address allocation structure) corresponds to a unique PCI Segment
> > Group consisting of 256 PCI buses. Multiple entries corresponding to a
> > single PCI Segment Group is not allowed."
> > 
> > Given that each segment group can only appear once in the MCFG, and
> > that the _CBA method can introduce new segment groups, it would seem
> > to me the spec does allow for new segments appearing exclusively as
> > the return of _CBA method?  It does read as if hot-removable segment
> > groups must not appear in the MCFG table.  I'm not finding any clear
> > statement in the spec that says that ECAM areas must previously appear
> > in the MCFG table.
> > 
> > I'm not sure how common that is, but it doesn't seem impossible given
> > my reading of the spec.
> 
> Hmm, that'll be a bit of work then, as Dom0 will also need to propagate
> the necessary data into Xen.

TBH this is what the spec says, but I've never encountered such a
system.  In fact I've never tested hotplug of a PCI host bridge.

Not sure this can be simulated with QEMU so that we could at least
test whatever fixes we plan to do in that area?  I guess we could
"fake" a bodge where Xen ignores the MCFG completely and only becomes
aware of the ECAM areas from what the hardware domain reports back.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219537.1528401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMQ-0000eU-6J; Tue, 03 Feb 2026 17:38:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219537.1528401; Tue, 03 Feb 2026 17: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 1vnKMQ-0000eN-3Q; Tue, 03 Feb 2026 17:38:46 +0000
Received: by outflank-mailman (input) for mailman id 1219537;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMO-0000KW-Ml
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:44 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 2fa3276b-0127-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 18:38:44 +0100 (CET)
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 32C8C497;
 Tue,  3 Feb 2026 09:38:37 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 904F73F632;
 Tue,  3 Feb 2026 09:38:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2fa3276b-0127-11f1-b161-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 02/12] xen/arm: ffa: Fix MEM_SHARE NS attribute handling
Date: Tue,  3 Feb 2026 18:37:57 +0100
Message-ID: <9886df295f4c4365668576cc956299ee36f36c8b.1770115301.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The FF-A memory attribute encoding is currently a literal value (0x2f),
which makes reviews and validation harder. In addition, MEM_SHARE
accepts the NS (non-secure) attribute bit even though the normal world
must not set it according to FF-A specification.

Introduce named attribute bit masks and express FFA_NORMAL_MEM_REG_ATTR
in terms of them for clarity.

Reject MEM_SHARE descriptors with the NS bit set, returning
INVALID_PARAMETERS to match FF-A v1.1 rules that prohibit normal world
from setting this bit.

Functional impact: MEM_SHARE now rejects descriptors with NS bit set,
which were previously accepted but violate FF-A specification.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_private.h | 17 ++++++++++++++++-
 xen/arch/arm/tee/ffa_shm.c     |  6 ++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index cd7ecabc7eff..b625f1c72914 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -129,11 +129,26 @@
 #define FFA_HANDLE_HYP_FLAG             BIT(63, ULL)
 #define FFA_HANDLE_INVALID              0xffffffffffffffffULL
 
+/* NS attribute was introduced in v1.1 */
+#define FFA_MEM_ATTR_NS                 BIT(6, U)
+
+#define FFA_MEM_ATTR_TYPE_DEV           (1U << 3)
+#define FFA_MEM_ATTR_TYPE_MEM           (2U << 4)
+
+#define FFA_MEM_ATTR_NC                 (1U << 2)
+#define FFA_MEM_ATTR_WB                 (3U << 2)
+
+#define FFA_MEM_ATTR_NON_SHARE          (0U)
+#define FFA_MEM_ATTR_OUT_SHARE          (2U)
+#define FFA_MEM_ATTR_INN_SHARE          (3U)
+
 /*
  * Memory attributes: Normal memory, Write-Back cacheable, Inner shareable
  * Defined in FF-A-1.1-REL0 Table 10.18 at page 175.
  */
-#define FFA_NORMAL_MEM_REG_ATTR         0x2fU
+#define FFA_NORMAL_MEM_REG_ATTR         (FFA_MEM_ATTR_TYPE_MEM | \
+                                         FFA_MEM_ATTR_WB | \
+                                         FFA_MEM_ATTR_INN_SHARE)
 /*
  * Memory access permissions: Read-write
  * Defined in FF-A-1.1-REL0 Table 10.15 at page 168.
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 8282bacf85d3..90800e44a86a 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -512,6 +512,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( ret )
         goto out_unlock;
 
+    if ( trans.mem_reg_attr & FFA_MEM_ATTR_NS )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock;
+    }
+
     if ( trans.mem_reg_attr != FFA_NORMAL_MEM_REG_ATTR )
     {
         ret = FFA_RET_NOT_SUPPORTED;
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219538.1528412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMR-0000sG-Dz; Tue, 03 Feb 2026 17:38:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219538.1528412; Tue, 03 Feb 2026 17: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 1vnKMR-0000s6-9V; Tue, 03 Feb 2026 17:38:47 +0000
Received: by outflank-mailman (input) for mailman id 1219538;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMP-0000Zt-EA
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:45 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 2edc0ddb-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:43 +0100 (CET)
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 C66EC339;
 Tue,  3 Feb 2026 09:38:35 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 281583F632;
 Tue,  3 Feb 2026 09:38:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2edc0ddb-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 01/12] xen/arm: ffa: Add endpoint lookup helper
Date: Tue,  3 Feb 2026 18:37:56 +0100
Message-ID: <db0a0b4459630ea00a67d5e985cff3bca73d1c64.1770115301.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Direct messaging paths duplicate endpoint validation and RCU domain
lookup logic across multiple call sites, which makes the checks easy to
drift and complicates maintenance.

Introduce ffa_endpoint_domain_lookup() to centralize this logic. The
helper validates the endpoint ID (rejecting ID 0 for the hypervisor),
performs RCU domain lookup, ensures the domain is live and has an
initialized FF-A context with a negotiated version, and returns the
domain locked via RCU.

Switch ffa_msg_send2_vm() to use the helper, replacing its open-coded
validation sequence. This consolidates approximately 20 lines of
duplicated checks into a single call.

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c         | 45 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/tee/ffa_msg.c     | 24 +++---------------
 xen/arch/arm/tee/ffa_private.h |  3 +++
 3 files changed, 51 insertions(+), 21 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index ed18e76080d0..6de2b9f8ac8e 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -433,6 +433,51 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     return true;
 }
 
+/*
+ * Look up a domain by its FF-A endpoint ID and validate it's ready for FF-A.
+ * Returns FFA_RET_OK on success with domain locked via RCU.
+ * Caller must call rcu_unlock_domain() when done.
+ *
+ * Validates:
+ * - endpoint_id is not 0 (the hypervisor)
+ * - domain exists and is live
+ * - domain has FF-A context initialized
+ * - domain has negotiated an FF-A version
+ */
+int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain **d_out,
+                                   struct ffa_ctx **ctx_out)
+{
+    struct domain *d;
+    struct ffa_ctx *ctx;
+    int err;
+
+    if ( endpoint_id == 0 )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    err = rcu_lock_live_remote_domain_by_id(endpoint_id - 1, &d);
+    if ( err )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    if ( !d->arch.tee )
+    {
+        rcu_unlock_domain(d);
+        return FFA_RET_INVALID_PARAMETERS;
+    }
+
+    ctx = d->arch.tee;
+    if ( !ACCESS_ONCE(ctx->guest_vers) )
+    {
+        rcu_unlock_domain(d);
+        return FFA_RET_INVALID_PARAMETERS;
+    }
+
+    *d_out = d;
+    if ( ctx_out )
+        *ctx_out = ctx;
+
+    return FFA_RET_OK;
+}
+
 static int ffa_domain_init(struct domain *d)
 {
     struct ffa_ctx *ctx;
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 4e26596461a9..10856fddcbc4 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -161,30 +161,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     struct ffa_part_msg_rxtx_1_2 *dst_msg;
     void *rx_buf;
     size_t rx_size;
-    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 ( !ACCESS_ONCE(dst_ctx->guest_vers) )
-    {
-        ret = FFA_RET_INVALID_PARAMETERS;
-        goto out_unlock;
-    }
+    ret = ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
+    if ( ret )
+        return ret;
 
     /* This also checks that destination has set a Rx buffer */
     ret = ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 282c105f3bce..cd7ecabc7eff 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -437,6 +437,9 @@ int32_t ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
+int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain **d_out,
+                                   struct ffa_ctx **ctx_out);
+
 bool ffa_rxtx_spmc_init(void);
 void ffa_rxtx_spmc_destroy(void);
 void *ffa_rxtx_spmc_rx_acquire(void);
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219533.1528392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKM9-0000Kj-Vj; Tue, 03 Feb 2026 17:38:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219533.1528392; Tue, 03 Feb 2026 17: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 1vnKM9-0000Kc-SA; Tue, 03 Feb 2026 17:38:29 +0000
Received: by outflank-mailman (input) for mailman id 1219533;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKM8-0000KW-G6
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 25168f8e-0127-11f1-b161-2bf370ae4941;
 Tue, 03 Feb 2026 18:38:26 +0100 (CET)
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 6E49C339;
 Tue,  3 Feb 2026 09:38:19 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A22673F632;
 Tue,  3 Feb 2026 09:38:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25168f8e-0127-11f1-b161-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 00/12] xen/arm: ffa: v1.2 improvements
Date: Tue,  3 Feb 2026 18:37:55 +0100
Message-ID: <cover.1770115301.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series tightens Xen's FF-A mediator after the v1.2 enablement work,
focusing on correctness, validation, and diagnostics while keeping
existing v1.0/v1.1 guests working.

Hardening and validation (Patches 1-3):
  1) centralize endpoint lookup validation for messaging paths
  2) reject NS MEM_SHARE attributes and name normal memory encoding
  3) tighten MEM_SHARE page parsing with overflow/alignment checks

FF-A 1.2 support (Patch 4):
  4) accept 1.2 EMADs in MEM_SHARE and forward IMPDEF while allowing 1.1 layouts

Correctness fixes (Patches 5-9):
  5) avoid spurious SPMC RX releases on PARTINFO failures
  6) align RX/TX map descriptor layout and return NO_MEMORY on map failures
  7) deny RXTX_UNMAP while a VM owns the RX buffer and close the race
  8) validate FFA_FEATURES properties and gate ABIs, with RX_ACQUIRE workaround
  9) gate SEND2 SP support on RX_ACQUIRE

Code quality and diagnostics (Patches 10-12):
  10) reduce log noise and ratelimit expected failures
  11) add MEM_SHARE page diagnostics for malformed ranges and mapping issues
  12) add message parameter diagnostics for SEND2 and direct requests

Backward compatibility: v1.0/v1.1 guests continue to use their ABI unchanged;
v1.2 guests use EMADs and negotiated ABI features.

The implementation passes the FF-A Architecture Compliance Suite.

This serie was validated through gitlab-ci here:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/tree/ffa-v12-improve/v1
Build pipeline for the serie:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/pipelines/2303128986

Bertrand Marquis (12):
  xen/arm: ffa: Add endpoint lookup helper
  xen/arm: ffa: Fix MEM_SHARE NS attribute handling
  xen/arm: ffa: Harden shm page parsing
  xen/arm: ffa: Add FF-A 1.2 endpoint memory access descriptors
  xen/arm: ffa: Fix PARTINFO RX release errors
  xen/arm: ffa: Fix RX/TX map layout and errors
  xen/arm: ffa: Fix RXTX_UNMAP ownership race
  xen/arm: ffa: Fix FFA_FEATURES validation
  xen/arm: ffa: Fix SEND2 SP support gating
  xen/arm: ffa: Reduce logging noise
  xen/arm: ffa: Add MEM_SHARE page diagnostics
  xen/arm: ffa: Add message parameter diagnostics

 xen/arch/arm/tee/ffa.c          | 124 +++++++++++++++--
 xen/arch/arm/tee/ffa_msg.c      |  76 +++++++---
 xen/arch/arm/tee/ffa_notif.c    |  11 +-
 xen/arch/arm/tee/ffa_partinfo.c |  29 ++--
 xen/arch/arm/tee/ffa_private.h  |  33 ++++-
 xen/arch/arm/tee/ffa_rxtx.c     |  84 +++++++++--
 xen/arch/arm/tee/ffa_shm.c      | 240 ++++++++++++++++++++++++--------
 7 files changed, 479 insertions(+), 118 deletions(-)

-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219539.1528423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMT-0001B3-Mn; Tue, 03 Feb 2026 17:38:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219539.1528423; Tue, 03 Feb 2026 17:38: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 1vnKMT-0001Au-Gp; Tue, 03 Feb 2026 17:38:49 +0000
Received: by outflank-mailman (input) for mailman id 1219539;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMR-0000Zt-Ow
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:47 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3082c8e9-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:45 +0100 (CET)
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 A181C1063;
 Tue,  3 Feb 2026 09:38:38 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DE5CF3F632;
 Tue,  3 Feb 2026 09:38:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3082c8e9-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 03/12] xen/arm: ffa: Harden shm page parsing
Date: Tue,  3 Feb 2026 18:37:58 +0100
Message-ID: <97a064c81ee5ea26774c189538f9f1e37dd3eebc.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

get_shm_pages() uses unchecked address arithmetic and does not enforce
alignment, so malformed descriptors can cause overflow or slip through
validation. The reclaim path also repeats handle-to-shm-mem conversion
in multiple places, duplicating error handling.

Harden page parsing and reclaim handling:
- add ffa_safe_addr_add() and use it to detect address overflows
- enforce alignment checks in get_shm_pages() and return FF-A errors
- introduce ffa_secure_reclaim() and use it for MEM_RECLAIM and teardown
- simplify ffa_mem_share() argument handling and allow max page count

Functional impact: invalid or misaligned memory ranges now fail earlier
with proper error codes; behavior for valid descriptors is unchanged.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_private.h | 11 +++++++
 xen/arch/arm/tee/ffa_shm.c     | 57 +++++++++++++++++-----------------
 2 files changed, 40 insertions(+), 28 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index b625f1c72914..58562d8e733c 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -632,4 +632,15 @@ static inline void ffa_uuid_set(struct ffa_uuid *id, uint32_t val0,
     id->val[1] = ((uint64_t)val3 << 32U) | val2;
 }
 
+/*
+ * Common overflow-safe helper to verify that adding a number of pages to an
+ * address will not wrap around.
+ */
+static inline bool ffa_safe_addr_add(uint64_t addr, uint64_t pages)
+{
+    uint64_t off = pages * FFA_PAGE_SIZE;
+
+    return (off / FFA_PAGE_SIZE) == pages && addr <= UINT64_MAX - off;
+}
+
 #endif /*__FFA_PRIVATE_H__*/
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 90800e44a86a..4c0b45cde6ee 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -96,16 +96,14 @@ struct ffa_shm_mem {
     struct page_info *pages[];
 };
 
-static int32_t ffa_mem_share(uint32_t tot_len, uint32_t frag_len,
-                             register_t addr, uint32_t pg_count,
-                             uint64_t *handle)
+static int32_t ffa_mem_share(uint32_t tot_len, uint64_t *handle)
 {
     struct arm_smccc_1_2_regs arg = {
         .a0 = FFA_MEM_SHARE_64,
         .a1 = tot_len,
-        .a2 = frag_len,
-        .a3 = addr,
-        .a4 = pg_count,
+        .a2 = tot_len,
+        .a3 = 0,
+        .a4 = 0,
     };
     struct arm_smccc_1_2_regs resp;
 
@@ -131,12 +129,16 @@ static int32_t ffa_mem_share(uint32_t tot_len, uint32_t frag_len,
     }
 }
 
-static int32_t ffa_mem_reclaim(uint32_t handle_lo, uint32_t handle_hi,
-                               uint32_t flags)
+static int32_t ffa_secure_reclaim(struct ffa_shm_mem *shm, uint32_t flags)
 {
+    register_t handle_hi;
+    register_t handle_lo;
+
     if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
         return FFA_RET_NOT_SUPPORTED;
 
+    uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
+
     return ffa_simple_call(FFA_MEM_RECLAIM, handle_lo, handle_hi, flags, 0);
 }
 
@@ -145,7 +147,7 @@ static int32_t ffa_mem_reclaim(uint32_t handle_lo, uint32_t handle_hi,
  * this function fails then the caller is still expected to call
  * put_shm_pages() as a cleanup.
  */
-static int get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
+static int32_t get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
                          const struct ffa_address_range *range,
                          uint32_t range_count)
 {
@@ -156,17 +158,26 @@ static int get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
     p2m_type_t t;
     uint64_t addr;
     uint64_t page_count;
+    uint64_t gaddr;
 
     for ( n = 0; n < range_count; n++ )
     {
         page_count = ACCESS_ONCE(range[n].page_count);
         addr = ACCESS_ONCE(range[n].address);
+
+        if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
+            return FFA_RET_INVALID_PARAMETERS;
+
         for ( m = 0; m < page_count; m++ )
         {
             if ( pg_idx >= shm->page_count )
                 return FFA_RET_INVALID_PARAMETERS;
 
-            gfn = gaddr_to_gfn(addr + m * FFA_PAGE_SIZE);
+            if ( !ffa_safe_addr_add(addr, m) )
+                return FFA_RET_INVALID_PARAMETERS;
+
+            gaddr = addr + m * FFA_PAGE_SIZE;
+            gfn = gaddr_to_gfn(gaddr);
             shm->pages[pg_idx] = get_page_from_gfn(d, gfn_x(gfn), &t,
 						   P2M_ALLOC);
             if ( !shm->pages[pg_idx] )
@@ -180,7 +191,7 @@ static int get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
 
     /* The ranges must add up */
     if ( pg_idx < shm->page_count )
-            return FFA_RET_INVALID_PARAMETERS;
+        return FFA_RET_INVALID_PARAMETERS;
 
     return FFA_RET_OK;
 }
@@ -198,15 +209,11 @@ static void put_shm_pages(struct ffa_shm_mem *shm)
 
 static bool inc_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
 {
-    bool ret = true;
+    bool ret = false;
 
     spin_lock(&ctx->lock);
 
-    if ( ctx->shm_count >= FFA_MAX_SHM_COUNT )
-    {
-        ret = false;
-    }
-    else
+    if ( ctx->shm_count < FFA_MAX_SHM_COUNT )
     {
         /*
          * If this is the first shm added, increase the domain reference
@@ -217,6 +224,7 @@ static bool inc_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
             get_knownalive_domain(d);
 
         ctx->shm_count++;
+        ret = true;
     }
 
     spin_unlock(&ctx->lock);
@@ -251,7 +259,7 @@ static struct ffa_shm_mem *alloc_ffa_shm_mem(struct domain *d,
     struct ffa_ctx *ctx = d->arch.tee;
     struct ffa_shm_mem *shm;
 
-    if ( page_count >= FFA_MAX_SHM_PAGE_COUNT )
+    if ( page_count > FFA_MAX_SHM_PAGE_COUNT )
         return NULL;
     if ( !inc_ctx_shm_count(d, ctx) )
         return NULL;
@@ -367,7 +375,7 @@ static int share_shm(struct ffa_shm_mem *shm)
         init_range(addr_range, pa);
     }
 
-    ret = ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
+    ret = ffa_mem_share(tot_len, &shm->handle);
 
 out:
     ffa_rxtx_spmc_tx_release();
@@ -637,8 +645,6 @@ int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     struct ffa_shm_mem *shm;
-    register_t handle_hi;
-    register_t handle_lo;
     int32_t ret;
 
     if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
@@ -652,8 +658,7 @@ int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
     if ( !shm )
         return FFA_RET_INVALID_PARAMETERS;
 
-    uint64_to_regpair(&handle_hi, &handle_lo, handle);
-    ret = ffa_mem_reclaim(handle_lo, handle_hi, flags);
+    ret = ffa_secure_reclaim(shm, flags);
 
     if ( ret )
     {
@@ -677,11 +682,7 @@ bool ffa_shm_domain_destroy(struct domain *d)
 
     list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
     {
-        register_t handle_hi;
-        register_t handle_lo;
-
-        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
-        res = ffa_mem_reclaim(handle_lo, handle_hi, 0);
+        res = ffa_secure_reclaim(shm, 0);
         switch ( res ) {
         case FFA_RET_OK:
             printk(XENLOG_G_DEBUG "%pd: ffa: Reclaimed handle %#lx\n",
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219540.1528428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMU-0001H8-3D; Tue, 03 Feb 2026 17:38:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219540.1528428; Tue, 03 Feb 2026 17:38: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 1vnKMT-0001Fc-US; Tue, 03 Feb 2026 17:38:49 +0000
Received: by outflank-mailman (input) for mailman id 1219540;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMT-0000Zt-4y
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:49 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 315067dd-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:47 +0100 (CET)
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 000A0150C;
 Tue,  3 Feb 2026 09:38:39 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5699A3F632;
 Tue,  3 Feb 2026 09:38:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 315067dd-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory access descriptors
Date: Tue,  3 Feb 2026 18:37:59 +0100
Message-ID: <a8d316dbdbd00a7980c6d527038f9046bb895c69.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FF-A 1.2 extends the endpoint memory access descriptor (EMAD) from
16 to 32 bytes, adding implementation-defined (IMPDEF) fields and
reserved space. The MEM_SHARE path currently assumes the 1.1 EMAD
size and rejects the 1.2 layout.

Add FF-A 1.2 EMAD support to MEM_SHARE:
- define ffa_mem_access_1_2 and store IMPDEF payload in ffa_shm_mem
- emit 1.2 EMADs to the SPMC for FF-A 1.2 guests, forwarding IMPDEF
- refactor header parsing into read_mem_transaction() for 1.0/1.1+
- detect EMAD format by mem_access_size to allow 1.1 on 1.2 guests

Functional impact: MEM_SHARE supports FF-A 1.2 EMADs.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_shm.c | 108 +++++++++++++++++++++++++++++--------
 1 file changed, 86 insertions(+), 22 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 4c0b45cde6ee..905a64e3db01 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -30,6 +30,14 @@ struct ffa_mem_access {
     uint64_t reserved;
 };
 
+/* Endpoint memory access descriptor (FF-A 1.2) */
+struct ffa_mem_access_1_2 {
+    struct ffa_mem_access_perm access_perm;
+    uint32_t region_offs;
+    uint8_t impdef[16];
+    uint8_t reserved[8];
+};
+
 /* Lend, donate or share memory transaction descriptor */
 struct ffa_mem_transaction_1_0 {
     uint16_t sender_id;
@@ -73,7 +81,7 @@ struct ffa_mem_transaction_1_1 {
 /*
  * The parts needed from struct ffa_mem_transaction_1_0 or struct
  * ffa_mem_transaction_1_1, used to provide an abstraction of difference in
- * data structures between version 1.0 and 1.1. This is just an internal
+ * data structures between version 1.0 and 1.2. This is just an internal
  * interface and can be changed without changing any ABI.
  */
 struct ffa_mem_transaction_int {
@@ -92,6 +100,8 @@ struct ffa_shm_mem {
     uint16_t sender_id;
     uint16_t ep_id;     /* endpoint, the one lending */
     uint64_t handle;    /* FFA_HANDLE_INVALID if not set yet */
+    /* Endpoint memory access descriptor IMPDEF value (FF-A 1.2). */
+    uint64_t impdef[2];
     unsigned int page_count;
     struct page_info *pages[];
 };
@@ -297,17 +307,21 @@ static void init_range(struct ffa_address_range *addr_range,
  * This function uses the ffa_spmc tx buffer to transmit the memory transaction
  * descriptor.
  */
-static int share_shm(struct ffa_shm_mem *shm)
+static int share_shm(struct ffa_shm_mem *shm, uint32_t ffa_vers)
 {
     const uint32_t max_frag_len = FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE;
     struct ffa_mem_access *mem_access_array;
+    struct ffa_mem_access_1_2 *mem_access_array_1_2;
     struct ffa_mem_transaction_1_1 *descr;
     struct ffa_address_range *addr_range;
     struct ffa_mem_region *region_descr;
-    const unsigned int region_count = 1;
     uint32_t frag_len;
     uint32_t tot_len;
+    uint32_t mem_access_size;
+    uint32_t mem_access_offs;
+    uint32_t region_offs;
     paddr_t last_pa;
+    uint32_t range_count;
     unsigned int n;
     paddr_t pa;
     int32_t ret;
@@ -326,16 +340,35 @@ static int share_shm(struct ffa_shm_mem *shm)
     descr->handle = shm->handle;
     descr->mem_reg_attr = FFA_NORMAL_MEM_REG_ATTR;
     descr->mem_access_count = 1;
-    descr->mem_access_size = sizeof(*mem_access_array);
-    descr->mem_access_offs = MEM_ACCESS_OFFSET(0);
+    if ( ffa_vers >= FFA_VERSION_1_2 )
+        mem_access_size = sizeof(struct ffa_mem_access_1_2);
+    else
+        mem_access_size = sizeof(struct ffa_mem_access);
+    mem_access_offs = sizeof(struct ffa_mem_transaction_1_1);
+    region_offs = mem_access_offs + mem_access_size;
+    descr->mem_access_size = mem_access_size;
+    descr->mem_access_offs = mem_access_offs;
 
-    mem_access_array = buf + descr->mem_access_offs;
-    memset(mem_access_array, 0, sizeof(*mem_access_array));
-    mem_access_array[0].access_perm.endpoint_id = shm->ep_id;
-    mem_access_array[0].access_perm.perm = FFA_MEM_ACC_RW;
-    mem_access_array[0].region_offs = REGION_OFFSET(descr->mem_access_count, 0);
+    if ( ffa_vers >= FFA_VERSION_1_2 )
+    {
+        mem_access_array_1_2 = buf + mem_access_offs;
+        memset(mem_access_array_1_2, 0, sizeof(*mem_access_array_1_2));
+        mem_access_array_1_2[0].access_perm.endpoint_id = shm->ep_id;
+        mem_access_array_1_2[0].access_perm.perm = FFA_MEM_ACC_RW;
+        mem_access_array_1_2[0].region_offs = region_offs;
+        memcpy(mem_access_array_1_2[0].impdef, shm->impdef,
+               sizeof(mem_access_array_1_2[0].impdef));
+    }
+    else
+    {
+        mem_access_array = buf + mem_access_offs;
+        memset(mem_access_array, 0, sizeof(*mem_access_array));
+        mem_access_array[0].access_perm.endpoint_id = shm->ep_id;
+        mem_access_array[0].access_perm.perm = FFA_MEM_ACC_RW;
+        mem_access_array[0].region_offs = region_offs;
+    }
 
-    region_descr = buf + mem_access_array[0].region_offs;
+    region_descr = buf + region_offs;
     memset(region_descr, 0, sizeof(*region_descr));
     region_descr->total_page_count = shm->page_count;
 
@@ -349,8 +382,9 @@ static int share_shm(struct ffa_shm_mem *shm)
         region_descr->address_range_count++;
     }
 
-    tot_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
-                                region_descr->address_range_count);
+    range_count = region_descr->address_range_count;
+    tot_len = region_offs + sizeof(*region_descr) +
+              range_count * sizeof(struct ffa_address_range);
     if ( tot_len > max_frag_len )
     {
         ret = FFA_RET_NOT_SUPPORTED;
@@ -358,7 +392,7 @@ static int share_shm(struct ffa_shm_mem *shm)
     }
 
     addr_range = region_descr->address_range_array;
-    frag_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count, 1);
+    frag_len = region_offs + sizeof(*region_descr) + sizeof(*addr_range);
     last_pa = page_to_maddr(shm->pages[0]);
     init_range(addr_range, last_pa);
     for ( n = 1; n < shm->page_count; last_pa = pa, n++ )
@@ -448,6 +482,12 @@ static int read_mem_transaction(uint32_t ffa_vers, const void *buf, size_t blen,
     if ( size * count + offs > blen )
         return FFA_RET_INVALID_PARAMETERS;
 
+    if ( size < sizeof(struct ffa_mem_access) )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    if ( offs & 0xF )
+        return FFA_RET_INVALID_PARAMETERS;
+
     trans->mem_reg_attr = mem_reg_attr;
     trans->flags = flags;
     trans->mem_access_size = size;
@@ -464,7 +504,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     uint64_t addr = get_user_reg(regs, 3);
     uint32_t page_count = get_user_reg(regs, 4);
     const struct ffa_mem_region *region_descr;
-    const struct ffa_mem_access *mem_access;
+    const struct ffa_mem_access_1_2 *mem_access;
     struct ffa_mem_transaction_int trans;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
@@ -474,9 +514,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     register_t handle_hi = 0;
     register_t handle_lo = 0;
     int ret = FFA_RET_DENIED;
+    uint32_t ffa_vers;
     uint32_t range_count;
     uint32_t region_offs;
     uint16_t dst_id;
+    uint8_t perm;
+    uint64_t impdef[2];
 
     if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
     {
@@ -515,8 +558,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( frag_len > tx_size )
         goto out_unlock;
 
-    ret = read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), tx_buf,
-                               frag_len, &trans);
+    ffa_vers = ACCESS_ONCE(ctx->guest_vers);
+    ret = read_mem_transaction(ffa_vers, tx_buf, frag_len, &trans);
     if ( ret )
         goto out_unlock;
 
@@ -545,13 +588,35 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
     }
 
+    if ( trans.mem_access_size < sizeof(struct ffa_mem_access) )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock;
+    }
+
     /* Check that it fits in the supplied data */
     if ( trans.mem_access_offs + trans.mem_access_size > frag_len )
         goto out_unlock;
 
     mem_access = tx_buf + trans.mem_access_offs;
-
     dst_id = ACCESS_ONCE(mem_access->access_perm.endpoint_id);
+    perm = ACCESS_ONCE(mem_access->access_perm.perm);
+    region_offs = ACCESS_ONCE(mem_access->region_offs);
+
+    /*
+     * FF-A 1.2 introduced an extended mem_access descriptor with impdef
+     * fields, but guests can still use the 1.1 format if they don't need
+     * implementation-defined data. Detect which format is used based on
+     * the mem_access_size field rather than the negotiated FF-A version.
+     */
+    if ( trans.mem_access_size >= sizeof(struct ffa_mem_access_1_2) )
+        memcpy(impdef, mem_access->impdef, sizeof(impdef));
+    else
+    {
+        impdef[0] = 0;
+        impdef[1] = 0;
+    }
+
     if ( !FFA_ID_IS_SECURE(dst_id) )
     {
         /* we do not support sharing with VMs */
@@ -559,13 +624,11 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
     }
 
-    if ( ACCESS_ONCE(mem_access->access_perm.perm) != FFA_MEM_ACC_RW )
+    if ( perm != FFA_MEM_ACC_RW )
     {
         ret = FFA_RET_NOT_SUPPORTED;
         goto out_unlock;
     }
-
-    region_offs = ACCESS_ONCE(mem_access->region_offs);
     if ( sizeof(*region_descr) + region_offs > frag_len )
     {
         ret = FFA_RET_NOT_SUPPORTED;
@@ -590,6 +653,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     }
     shm->sender_id = trans.sender_id;
     shm->ep_id = dst_id;
+    memcpy(shm->impdef, impdef, sizeof(shm->impdef));
 
     /*
      * Check that the Composite memory region descriptor fits.
@@ -605,7 +669,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( ret )
         goto out;
 
-    ret = share_shm(shm);
+    ret = share_shm(shm, ffa_vers);
     if ( ret )
         goto out;
 
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219541.1528442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMV-0001d6-Fr; Tue, 03 Feb 2026 17:38:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219541.1528442; Tue, 03 Feb 2026 17:38:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMV-0001cv-9J; Tue, 03 Feb 2026 17:38:51 +0000
Received: by outflank-mailman (input) for mailman id 1219541;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMU-0000Zt-5Q
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:50 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 321b6341-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:48 +0100 (CET)
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 71FDA497;
 Tue,  3 Feb 2026 09:38:41 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BF6933F632;
 Tue,  3 Feb 2026 09:38:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 321b6341-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 05/12] xen/arm: ffa: Fix PARTINFO RX release errors
Date: Tue,  3 Feb 2026 18:38:00 +0100
Message-ID: <2cb24d49d7c72bf15a101cc3be62b3cccbfce3d5.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

On PARTITION_INFO_GET error paths, Xen unconditionally called
FFA_RX_RELEASE for the SPMC RX buffer. If the SPMC didn't grant RX
ownership (i.e., the call failed early), this issues a spurious release
that returns DENIED and produces warnings.

Modify ffa_rxtx_spmc_rx_release() to return the release status and let
callers choose whether to log it. Only issue FFA_RX_RELEASE after a
successful PARTINFO SMC, while always releasing the local RX lock to
avoid deadlocks.

Update handle_partition_info_get() to only release the SPMC RX buffer
after successful fw_ret checks, and ignore release errors during the
error path.

Functional impact: eliminates spurious FFA_RX_RELEASE calls and
associated DENIED warnings when PARTITION_INFO_GET fails before
obtaining SPMC RX buffer ownership.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_partinfo.c | 14 ++++++++++++--
 xen/arch/arm/tee/ffa_private.h  |  2 +-
 xen/arch/arm/tee/ffa_rxtx.c     | 14 +++++++++-----
 3 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index bf906ed0c88f..6b01c4abe915 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -92,9 +92,11 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
                                    uint32_t dst_size)
 {
     int32_t ret;
+    int32_t release_ret;
     uint32_t src_size, real_sp_count;
     void *src_buf;
     uint32_t count = 0;
+    bool spmc_ok = false;
 
     /* We need to use the RX buffer to receive the list */
     src_buf = ffa_rxtx_spmc_rx_acquire();
@@ -104,6 +106,7 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
     ret = ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
     if ( ret )
         goto out;
+    spmc_ok = true;
 
     /* Validate the src_size we got */
     if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
@@ -157,7 +160,10 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
     *sp_count = count;
 
 out:
-    ffa_rxtx_spmc_rx_release();
+    release_ret = ffa_rxtx_spmc_rx_release(spmc_ok);
+    if ( release_ret )
+        gprintk(XENLOG_WARNING,
+                "ffa: Error releasing SPMC RX buffer: %d\n", release_ret);
     return ret;
 }
 
@@ -507,6 +513,7 @@ bool ffa_partinfo_init(void)
     int32_t e;
     void *spmc_rx;
     struct ffa_uuid nil_uuid = { .val = { 0ULL, 0ULL } };
+    bool spmc_ok = false;
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
          !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
@@ -522,6 +529,7 @@ bool ffa_partinfo_init(void)
         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
         goto out;
     }
+    spmc_ok = true;
 
     if ( count >= FFA_MAX_NUM_SP )
     {
@@ -533,7 +541,9 @@ bool ffa_partinfo_init(void)
     ret = init_subscribers(spmc_rx, count, fpi_size);
 
 out:
-    ffa_rxtx_spmc_rx_release();
+    e = ffa_rxtx_spmc_rx_release(spmc_ok);
+    if ( e )
+        printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n", e);
     return ret;
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 58562d8e733c..461e87f6f9c4 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -458,7 +458,7 @@ int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain **d_out,
 bool ffa_rxtx_spmc_init(void);
 void ffa_rxtx_spmc_destroy(void);
 void *ffa_rxtx_spmc_rx_acquire(void);
-void ffa_rxtx_spmc_rx_release(void);
+int32_t ffa_rxtx_spmc_rx_release(bool notify_fw);
 void *ffa_rxtx_spmc_tx_acquire(void);
 void ffa_rxtx_spmc_tx_release(void);
 
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 7d8bb4f4d031..50758fb57cdf 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -375,18 +375,22 @@ void *ffa_rxtx_spmc_rx_acquire(void)
     return NULL;
 }
 
-void ffa_rxtx_spmc_rx_release(void)
+int32_t ffa_rxtx_spmc_rx_release(bool notify_fw)
 {
     int32_t ret;
 
     ASSERT(spin_is_locked(&ffa_spmc_rx_lock));
 
-    /* Inform the SPMC that we are done with our RX buffer */
-    ret = ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
-    if ( ret != FFA_RET_OK )
-        printk(XENLOG_DEBUG "Error releasing SPMC RX buffer: %d\n", ret);
+    if ( notify_fw )
+    {
+        /* Inform the SPMC that we are done with our RX buffer */
+        ret = ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
+    }
+    else
+        ret = FFA_RET_OK;
 
     spin_unlock(&ffa_spmc_rx_lock);
+    return ret;
 }
 
 void *ffa_rxtx_spmc_tx_acquire(void)
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219542.1528451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMW-0001u3-Kv; Tue, 03 Feb 2026 17:38:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219542.1528451; Tue, 03 Feb 2026 17:38:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMW-0001tF-I5; Tue, 03 Feb 2026 17:38:52 +0000
Received: by outflank-mailman (input) for mailman id 1219542;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMV-0000Zt-9h
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:51 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 32eca68a-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:49 +0100 (CET)
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 D6359339;
 Tue,  3 Feb 2026 09:38:42 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3ADB03F632;
 Tue,  3 Feb 2026 09:38:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32eca68a-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 06/12] xen/arm: ffa: Fix RX/TX map layout and errors
Date: Tue,  3 Feb 2026 18:38:01 +0100
Message-ID: <f6cbfbf8a30f7d9f4b4c86e663f10de578965c05.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FFA_RXTX_MAP builds a descriptor for the SPMC and the composite region
offsets must be 8-byte aligned. Xen currently uses a 12-byte header
size, which produces misaligned RX/TX offsets. Mapping failures also
return INVALID_PARAMETERS even when the failure is due to resource
exhaustion, which misreports the error condition.

Round the descriptor header size up to 8 bytes before placing the RX
region and derive the TX offset from the aligned RX offset. Return
FFA_RET_NO_MEMORY when the TX or RX buffer mapping fails before the
error paths unwind.

Functional impact: RXTX_MAP now returns NO_MEMORY on mapping failures
and the SPMC receives an aligned RX/TX descriptor layout.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_rxtx.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 50758fb57cdf..eff95a7955d7 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -119,11 +119,17 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 
     tx = __map_domain_page_global(tx_pg);
     if ( !tx )
+    {
+        ret = FFA_RET_NO_MEMORY;
         goto err_put_rx_pg;
+    }
 
     rx = __map_domain_page_global(rx_pg);
     if ( !rx )
+    {
+        ret = FFA_RET_NO_MEMORY;
         goto err_unmap_tx;
+    }
 
     /*
      * Transmit the RX/TX buffer information to the SPM if acquire is supported
@@ -136,7 +142,8 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         struct ffa_mem_region *mem_reg;
 
         /* All must fit in our TX buffer */
-        BUILD_BUG_ON(sizeof(*rxtx_desc) + sizeof(*mem_reg) * 2 +
+        BUILD_BUG_ON(ROUNDUP(sizeof(*rxtx_desc), 8) +
+                     sizeof(*mem_reg) * 2 +
                      sizeof(struct ffa_address_range) * 2 >
                      FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
 
@@ -153,8 +160,8 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
          */
         rxtx_desc->sender_id = ffa_get_vm_id(d);
         rxtx_desc->reserved = 0;
-        rxtx_desc->rx_region_offs = sizeof(*rxtx_desc);
-        rxtx_desc->tx_region_offs = sizeof(*rxtx_desc) +
+        rxtx_desc->rx_region_offs = ROUNDUP(sizeof(*rxtx_desc), 8);
+        rxtx_desc->tx_region_offs = rxtx_desc->rx_region_offs +
                                     offsetof(struct ffa_mem_region,
                                              address_range_array[1]);
 
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219545.1528461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMY-0002Eg-Sd; Tue, 03 Feb 2026 17:38:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219545.1528461; Tue, 03 Feb 2026 17:38:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMY-0002EX-PG; Tue, 03 Feb 2026 17:38:54 +0000
Received: by outflank-mailman (input) for mailman id 1219545;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMX-0000Zt-5S
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 33bb85be-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:51 +0100 (CET)
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 30E051063;
 Tue,  3 Feb 2026 09:38:44 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 89D673F632;
 Tue,  3 Feb 2026 09:38:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 33bb85be-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 07/12] xen/arm: ffa: Fix RXTX_UNMAP ownership race
Date: Tue,  3 Feb 2026 18:38:02 +0100
Message-ID: <971bf27b9a2cafa0ed405a638a532b6fbbf51142.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

rxtx_unmap() checks RX ownership without holding the RX/TX locks and
only enforces the ownership rule when FFA_RX_ACQUIRE is supported. This
allows a vCPU to acquire RX between the check and unmap, and it lets
RXTX_UNMAP proceed while RX is owned when buffers are not forwarded to
firmware.

Hold rx_lock/tx_lock across the ownership check and unmap, and deny
RXTX_UNMAP whenever RX is owned, independent of RX_ACQUIRE support. For
teardown, release RX ownership under the same lock window; use
FFA_RX_RELEASE directly because rx_lock is held, and clear the local
flag when the firmware path is unavailable.

Functional impact: RXTX_UNMAP now reliably returns DENIED while RX is
owned, and teardown releases/clears ownership without a race.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_rxtx.c | 36 +++++++++++++++++++++++++++++++++---
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index eff95a7955d7..450ce102cbdc 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -220,7 +220,7 @@ err_unlock_rxtx:
     return ret;
 }
 
-static int32_t rxtx_unmap(struct domain *d)
+static int32_t rxtx_unmap(struct domain *d, bool teardown)
 {
     struct ffa_ctx *ctx = d->arch.tee;
     int32_t ret = FFA_RET_OK;
@@ -234,6 +234,36 @@ static int32_t rxtx_unmap(struct domain *d)
         goto err_unlock_rxtx;
     }
 
+    if ( !ctx->rx_is_free )
+    {
+        if ( teardown )
+        {
+            if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
+            {
+                int32_t rel_ret;
+
+                /* Can't use ffa_rx_release() while holding rx_lock. */
+                rel_ret = ffa_simple_call(FFA_RX_RELEASE, ctx->ffa_id,
+                                          0, 0, 0);
+                if ( rel_ret )
+                    gdprintk(XENLOG_DEBUG,
+                             "ffa: RX release during teardown failed: %d\n",
+                             rel_ret);
+                else
+                    ctx->rx_is_free = true;
+            }
+            else
+                ctx->rx_is_free = true;
+        }
+        else
+        {
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: RXTX_UNMAP denied, RX buffer owned by VM\n");
+            ret = FFA_RET_DENIED;
+            goto err_unlock_rxtx;
+        }
+    }
+
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
         ret = ffa_rxtx_unmap(ffa_get_vm_id(d));
@@ -261,7 +291,7 @@ err_unlock_rxtx:
 
 int32_t ffa_handle_rxtx_unmap(void)
 {
-    return rxtx_unmap(current->domain);
+    return rxtx_unmap(current->domain, false);
 }
 
 int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
@@ -369,7 +399,7 @@ int32_t ffa_rxtx_domain_init(struct domain *d)
 
 void ffa_rxtx_domain_destroy(struct domain *d)
 {
-    rxtx_unmap(d);
+    rxtx_unmap(d, true);
 }
 
 void *ffa_rxtx_spmc_rx_acquire(void)
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:38:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:38:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219549.1528473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKMa-0002U5-5x; Tue, 03 Feb 2026 17:38:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219549.1528473; Tue, 03 Feb 2026 17: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 1vnKMa-0002TW-0H; Tue, 03 Feb 2026 17:38:56 +0000
Received: by outflank-mailman (input) for mailman id 1219549;
 Tue, 03 Feb 2026 17:38: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMY-0000Zt-Pm
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:54 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 347a7422-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:52 +0100 (CET)
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 7201A150C;
 Tue,  3 Feb 2026 09:38:45 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D84193F632;
 Tue,  3 Feb 2026 09:38:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 347a7422-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
Date: Tue,  3 Feb 2026 18:38:03 +0100
Message-ID: <5331b33343441028d10c290b21b82acce295fff0.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FFA_FEATURES currently accepts non-zero input properties (w2-w7) from
guests and advertises several ABIs unconditionally, even when firmware
support is missing or when the ABI is physical-instance-only. This can
mislead guests about what Xen can actually provide and violates FF-A
calling conventions. Some SPMCs (Hafnium v2.14 or earlier) also fail to
report FFA_RX_ACQUIRE despite supporting it.

Update FFA_FEATURES validation to match spec and firmware support:
- reject non-zero w2-w7 input properties with INVALID_PARAMETERS
- reject 64-bit calling conventions from 32-bit guests with NOT_SUPPORTED
- return NOT_SUPPORTED for physical-instance-only ABIs
(FFA_NOTIFICATION_BITMAP_{CREATE,DESTROY}, FFA_RX_ACQUIRE)
- advertise FFA_INTERRUPT as supported
- gate message ABIs on firmware support:
- FFA_MSG_SEND_DIRECT_REQ_{32,64}
- FFA_MSG_SEND_DIRECT_REQ2 (also requires FF-A 1.2 negotiation)
- FFA_MSG_SEND2 (or VM-to-VM enabled)
- report MEM_SHARE_{32,64} only when FFA_MEM_SHARE_64 is supported
- stop advertising FFA_MSG_YIELD (not implemented)

Update firmware probing: drop FFA_MEM_SHARE_32 checks (deprecated) and
add FFA_RX_ACQUIRE to the probed set. If FFA_MSG_SEND2 is reported but
FFA_RX_ACQUIRE is not, assume RX_ACQUIRE support and warn to work
around the Hafnium bug.

Functional impact: guests now see ABI support that reflects firmware
capabilities and Xen implementation status. When SEND2 is present but
RX_ACQUIRE is not reported, Xen assumes RX_ACQUIRE support.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c | 62 +++++++++++++++++++++++++++++++++++++-----
 1 file changed, 55 insertions(+), 7 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 6de2b9f8ac8e..e9e020bb0cb3 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -91,10 +91,10 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_PARTITION_INFO_GET),
     FW_ABI(FFA_NOTIFICATION_INFO_GET_64),
     FW_ABI(FFA_NOTIFICATION_GET),
+    FW_ABI(FFA_RX_ACQUIRE),
     FW_ABI(FFA_RX_RELEASE),
     FW_ABI(FFA_RXTX_MAP_64),
     FW_ABI(FFA_RXTX_UNMAP),
-    FW_ABI(FFA_MEM_SHARE_32),
     FW_ABI(FFA_MEM_SHARE_64),
     FW_ABI(FFA_MEM_RECLAIM),
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
@@ -240,19 +240,39 @@ static void handle_features(struct cpu_user_regs *regs)
     struct ffa_ctx *ctx = d->arch.tee;
     unsigned int n;
 
+    /*
+     * Xen does not accept any non-zero FFA_FEATURES input properties from
+     * VMs. The spec only defines w2 input properties for FFA_MEM_RETRIEVE_REQ
+     * (NS-bit negotiation for SP/SPMC) and FFA_RXTX_MAP (buffer size and
+     * alignment), so w2 must be MBZ for our callers.
+     */
     for ( n = 2; n <= 7; n++ )
     {
         if ( get_user_reg(regs, n) )
         {
-            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+            ffa_set_regs_error(regs, FFA_RET_INVALID_PARAMETERS);
             return;
         }
     }
 
+    if ( !is_64bit_domain(d) && smccc_is_conv_64(a1) )
+    {
+        /* 32bit guests should only use 32bit convention calls */
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        return;
+    }
+
     switch ( a1 )
     {
+    case FFA_NOTIFICATION_BITMAP_CREATE:
+    case FFA_NOTIFICATION_BITMAP_DESTROY:
+    case FFA_RX_ACQUIRE:
+        /* Physical-instance-only ABIs are not exposed to VMs. */
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        break;
     case FFA_ERROR:
     case FFA_VERSION:
+    case FFA_INTERRUPT:
     case FFA_SUCCESS_32:
     case FFA_SUCCESS_64:
     case FFA_FEATURES:
@@ -261,16 +281,25 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_RXTX_UNMAP:
     case FFA_MEM_RECLAIM:
     case FFA_PARTITION_INFO_GET:
+        ffa_set_regs_success(regs, 0, 0);
+        break;
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
-    case FFA_MSG_SEND2:
     case FFA_RUN:
-    case FFA_INTERRUPT:
-    case FFA_MSG_YIELD:
-        ffa_set_regs_success(regs, 0, 0);
+        if ( ffa_fw_supports_fid(a1) )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        break;
+    case FFA_MSG_SEND2:
+        if ( ffa_fw_supports_fid(a1) || IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
         break;
     case FFA_MSG_SEND_DIRECT_REQ2:
-        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 )
+        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 &&
+             ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ2) )
         {
             ffa_set_regs_success(regs, 0, 0);
         }
@@ -281,6 +310,11 @@ static void handle_features(struct cpu_user_regs *regs)
         break;
     case FFA_MEM_SHARE_64:
     case FFA_MEM_SHARE_32:
+        if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
+        {
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+            break;
+        }
         /*
          * We currently don't support dynamically allocated buffers. Report
          * that with 0 in bit[0] of w2.
@@ -688,6 +722,20 @@ static bool ffa_probe_fw(void)
                    ffa_fw_abi_needed[i].name);
     }
 
+    /*
+     * Hafnium v2.14 or earlier does not report FFA_RX_ACQUIRE in
+     * FFA_FEATURES even though it supports it.
+     */
+    if ( !ffa_fw_supports_fid(FFA_RX_ACQUIRE) &&
+         ffa_fw_supports_fid(FFA_MSG_SEND2) )
+    {
+        printk(XENLOG_WARNING
+               "ARM FF-A Firmware reports FFA_MSG_SEND2 without FFA_RX_ACQUIRE\n");
+        printk(XENLOG_WARNING
+               "ffa: assuming RX_ACQUIRE support (workaround)\n");
+        set_bit(FFA_ABI_BITNUM(FFA_RX_ACQUIRE), ffa_fw_abi_supported);
+    }
+
     if ( !ffa_rxtx_spmc_init() )
     {
         printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:47:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:47:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219609.1528483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKUm-00065c-BP; Tue, 03 Feb 2026 17:47:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219609.1528483; Tue, 03 Feb 2026 17:47:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKUm-00065V-5y; Tue, 03 Feb 2026 17:47:24 +0000
Received: by outflank-mailman (input) for mailman id 1219609;
 Tue, 03 Feb 2026 17:47: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMb-0000Zt-QJ
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:57 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 3616fea1-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:54 +0100 (CET)
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 33F89339;
 Tue,  3 Feb 2026 09:38:48 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 76D9F3F632;
 Tue,  3 Feb 2026 09:38:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3616fea1-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 10/12] xen/arm: ffa: Reduce logging noise
Date: Tue,  3 Feb 2026 18:38:05 +0100
Message-ID: <38d71ac53abeeb4598d6ffb6bdab3717b3531334.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Several FF-A paths log warnings for expected or recoverable conditions,
leading to noisy logs during normal operation.

Reduce log noise by:
- demoting unhandled FID warnings to debug
- ratelimiting notification and VM teardown failures
- printing the bit-15 convention warning once per boot
- adjusting log prefixes for hypervisor-only events
- adding debug diagnostics for RX/TX acquire failures, with busy cases
  ratelimited

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c          | 11 ++++++-----
 xen/arch/arm/tee/ffa_notif.c    | 11 ++++++-----
 xen/arch/arm/tee/ffa_partinfo.c | 15 ++++++++-------
 xen/arch/arm/tee/ffa_rxtx.c     | 21 +++++++++++++++++++--
 4 files changed, 39 insertions(+), 19 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index a46c6e5e67f1..d0b9c9f1ab2e 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -461,7 +461,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
         break;
 
     default:
-        gprintk(XENLOG_ERR, "ffa: unhandled fid 0x%x\n", fid);
+        gdprintk(XENLOG_DEBUG, "ffa: unhandled fid 0x%x\n", fid);
         e = FFA_RET_NOT_SUPPORTED;
         break;
     }
@@ -581,7 +581,8 @@ static void ffa_domain_teardown_continue(struct ffa_ctx *ctx, bool first_time)
 
     if ( retry )
     {
-        printk(XENLOG_G_INFO "%pd: ffa: Remaining cleanup, retrying\n", ctx->teardown_d);
+        printk(XENLOG_G_DEBUG "%pd: ffa: Remaining cleanup, retrying\n",
+               ctx->teardown_d);
 
         ctx->teardown_expire = NOW() + FFA_CTX_TEARDOWN_DELAY;
 
@@ -622,7 +623,7 @@ static void ffa_teardown_timer_callback(void *arg)
     if ( ctx )
         ffa_domain_teardown_continue(ctx, false /* !first_time */);
     else
-        printk(XENLOG_G_ERR "%s: teardown list is empty\n", __func__);
+        printk(XENLOG_ERR "%s: teardown list is empty\n", __func__);
 }
 
 /* This function is supposed to undo what ffa_domain_init() has done */
@@ -684,7 +685,7 @@ static bool ffa_probe_fw(void)
 
     if ( !ffa_get_version(&vers) )
     {
-        gprintk(XENLOG_ERR, "Cannot retrieve the FFA version\n");
+        printk(XENLOG_ERR "ffa: Cannot retrieve the FFA version\n");
         goto err_no_fw;
     }
 
@@ -724,7 +725,7 @@ static bool ffa_probe_fw(void)
             set_bit(FFA_ABI_BITNUM(ffa_fw_abi_needed[i].id),
                     ffa_fw_abi_supported);
         else
-            printk(XENLOG_INFO "ARM FF-A Firmware does not support %s\n",
+            printk(XENLOG_WARNING "ARM FF-A Firmware does not support %s\n",
                    ffa_fw_abi_needed[i].name);
     }
 
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 37b05747cd21..186e72641237 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -292,8 +292,9 @@ static void notif_vm_pend_intr(uint16_t vm_id)
             break;
         }
     }
-    if ( !v )
-        printk(XENLOG_ERR "ffa: can't inject NPI, all vCPUs offline\n");
+    if ( !v && printk_ratelimit() )
+        printk(XENLOG_G_DEBUG "%pd: ffa: can't inject NPI, all vCPUs offline\n",
+               d);
 
 out_unlock:
     rcu_unlock_domain(d);
@@ -316,9 +317,9 @@ static void notif_sri_action(void *unused)
         res = ffa_get_ret_code(&resp);
         if ( res )
         {
-            if ( res != FFA_RET_NO_DATA )
-                printk(XENLOG_ERR "ffa: notification info get failed: error %d\n",
-                       res);
+            if ( res != FFA_RET_NO_DATA && printk_ratelimit() )
+                printk(XENLOG_WARNING
+                       "ffa: notification info get failed: error %d\n", res);
             return;
         }
 
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 6b01c4abe915..c9f186b3720c 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -461,9 +461,11 @@ static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
          */
         if ( !FFA_ID_IS_SECURE(fpi->id) )
         {
-            printk(XENLOG_ERR "ffa: Firmware is not using bit 15 convention for IDs !!\n"
-                              "ffa: Secure partition with id 0x%04x cannot be used\n",
-                              fpi->id);
+            printk_once(XENLOG_ERR
+                        "ffa: Firmware is not using bit 15 convention for IDs !!\n");
+            printk(XENLOG_ERR
+                   "ffa: Secure partition with id 0x%04x cannot be used\n",
+                   fpi->id);
         }
         else
         {
@@ -632,11 +634,10 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
         res = ffa_direct_req_send_vm(subscr_vm_destroyed[n], ffa_get_vm_id(d),
                                      FFA_MSG_SEND_VM_DESTROYED);
 
-        if ( res )
-        {
-            printk(XENLOG_ERR "%pd: ffa: Failed to report destruction of vm_id %u to %u: res %d\n",
+        if ( res && printk_ratelimit() )
+            printk(XENLOG_WARNING
+                   "%pd: ffa: Failed to report destruction of vm_id %u to %u: res %d\n",
                    d, ffa_get_vm_id(d), subscr_vm_destroyed[n], res);
-        }
 
         /*
          * For these two error codes the hypervisor is expected to resend
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 450ce102cbdc..3147aba21ddf 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -4,6 +4,7 @@
  */
 
 #include <xen/const.h>
+#include <xen/lib.h>
 #include <xen/domain_page.h>
 #include <xen/mm.h>
 #include <xen/sizes.h>
@@ -82,8 +83,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 
     if ( page_count > FFA_MAX_RXTX_PAGE_COUNT || !page_count )
     {
-        printk(XENLOG_ERR "ffa: RXTX_MAP: error: %u pages requested (limit %u)\n",
-               page_count, FFA_MAX_RXTX_PAGE_COUNT);
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: RXTX_MAP: error: %u pages requested (limit %u)\n",
+                 page_count, FFA_MAX_RXTX_PAGE_COUNT);
         return FFA_RET_INVALID_PARAMETERS;
     }
 
@@ -303,12 +305,15 @@ int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
     if ( !ctx->page_count )
     {
         ret = FFA_RET_DENIED;
+        gdprintk(XENLOG_DEBUG, "ffa: RX acquire denied, no RX/TX mapped\n");
         goto out;
     }
 
     if ( !ctx->rx_is_free )
     {
         ret = FFA_RET_BUSY;
+        if ( printk_ratelimit() )
+            gdprintk(XENLOG_DEBUG, "ffa: RX acquire busy\n");
         goto out;
     }
 
@@ -316,7 +321,10 @@ int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
     {
         ret = ffa_simple_call(FFA_RX_ACQUIRE, ctx->ffa_id, 0, 0, 0);
         if ( ret != FFA_RET_OK )
+        {
+            gdprintk(XENLOG_DEBUG, "ffa: RX acquire failed: %d\n", ret);
             goto out;
+        }
     }
     ctx->rx_is_free = false;
     *buf = ctx->rx;
@@ -355,13 +363,22 @@ int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t *buf_size)
     int32_t ret = FFA_RET_DENIED;
 
     if ( !spin_trylock(&ctx->tx_lock) )
+    {
+        gdprintk(XENLOG_DEBUG, "ffa: TX acquire busy\n");
         return FFA_RET_BUSY;
+    }
 
     if ( !ctx->page_count )
+    {
+        gdprintk(XENLOG_DEBUG, "ffa: TX acquire denied, no RX/TX mapped\n");
         goto err_unlock;
+    }
 
     if ( !ctx->tx )
+    {
+        gdprintk(XENLOG_DEBUG, "ffa: TX acquire denied, TX buffer missing\n");
         goto err_unlock;
+    }
 
     *buf = ctx->tx;
     *buf_size = ctx->page_count * FFA_PAGE_SIZE;
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:47:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219612.1528492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKUn-0006JD-Gp; Tue, 03 Feb 2026 17:47:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219612.1528492; Tue, 03 Feb 2026 17:47:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKUn-0006J6-Cj; Tue, 03 Feb 2026 17:47:25 +0000
Received: by outflank-mailman (input) for mailman id 1219612;
 Tue, 03 Feb 2026 17:47: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMe-0000Zt-R6
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:39:00 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 36fa34b3-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:56 +0100 (CET)
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 84871497;
 Tue,  3 Feb 2026 09:38:49 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E1D003F632;
 Tue,  3 Feb 2026 09:38:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36fa34b3-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 11/12] xen/arm: ffa: Add MEM_SHARE page diagnostics
Date: Tue,  3 Feb 2026 18:38:06 +0100
Message-ID: <94e10f14d499d7e584fb0fbdd28d0288bb5831bd.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MEM_SHARE failures in get_shm_pages() are silent, which makes malformed
ranges and page mapping failures hard to diagnose.

Add debug logging for page validation failures:
- descriptor validation failures (unaligned, range short/overflow)
- per-page mapping failures (unmapped GFN, wrong p2m type)
- address overflow detection in range walks

Ratelimit temporary reclaim failures and log permanent reclaim failures
as errors.

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_shm.c | 73 ++++++++++++++++++++++++++++++++------
 1 file changed, 63 insertions(+), 10 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 905a64e3db01..89161753e922 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -169,6 +169,12 @@ static int32_t get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
     uint64_t addr;
     uint64_t page_count;
     uint64_t gaddr;
+    int32_t ret = FFA_RET_OK;
+    const char *reason = NULL;
+    unsigned int bad_rg = 0;
+    unsigned int bad_pg = 0;
+    unsigned long bad_addr = 0;
+    p2m_type_t bad_t = p2m_invalid;
 
     for ( n = 0; n < range_count; n++ )
     {
@@ -176,34 +182,78 @@ static int32_t get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
         addr = ACCESS_ONCE(range[n].address);
 
         if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
-            return FFA_RET_INVALID_PARAMETERS;
+        {
+            ret = FFA_RET_INVALID_PARAMETERS;
+            reason = "unaligned";
+            bad_rg = n;
+            bad_addr = (unsigned long)addr;
+            goto out;
+        }
 
         for ( m = 0; m < page_count; m++ )
         {
             if ( pg_idx >= shm->page_count )
-                return FFA_RET_INVALID_PARAMETERS;
+            {
+                ret = FFA_RET_INVALID_PARAMETERS;
+                reason = "range overflow";
+                bad_rg = n;
+                bad_pg = m;
+                goto out;
+            }
 
             if ( !ffa_safe_addr_add(addr, m) )
-                return FFA_RET_INVALID_PARAMETERS;
+            {
+                ret = FFA_RET_INVALID_PARAMETERS;
+                reason = "addr overflow";
+                bad_rg = n;
+                bad_pg = m;
+                bad_addr = (unsigned long)addr;
+                goto out;
+            }
 
             gaddr = addr + m * FFA_PAGE_SIZE;
             gfn = gaddr_to_gfn(gaddr);
             shm->pages[pg_idx] = get_page_from_gfn(d, gfn_x(gfn), &t,
 						   P2M_ALLOC);
             if ( !shm->pages[pg_idx] )
-                return FFA_RET_DENIED;
+            {
+                ret = FFA_RET_DENIED;
+                reason = "gfn unmapped";
+                bad_rg = n;
+                bad_pg = m;
+                bad_addr = (unsigned long)gaddr;
+                goto out;
+            }
             /* Only normal RW RAM for now */
             if ( t != p2m_ram_rw )
-                return FFA_RET_DENIED;
+            {
+                ret = FFA_RET_DENIED;
+                reason = "p2m type";
+                bad_rg = n;
+                bad_pg = m;
+                bad_addr = (unsigned long)gaddr;
+                bad_t = t;
+                goto out;
+            }
             pg_idx++;
         }
     }
 
     /* The ranges must add up */
     if ( pg_idx < shm->page_count )
-        return FFA_RET_INVALID_PARAMETERS;
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        reason = "range short";
+        bad_pg = pg_idx;
+        goto out;
+    }
 
-    return FFA_RET_OK;
+out:
+    if ( ret )
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: mem share pages invalid: %s rg %u pg %u addr %#lx p2m %u\n",
+                 reason ? reason : "unknown", bad_rg, bad_pg, bad_addr, bad_t);
+    return ret;
 }
 
 static void put_shm_pages(struct ffa_shm_mem *shm)
@@ -759,8 +809,10 @@ bool ffa_shm_domain_destroy(struct domain *d)
              * A temporary error that may get resolved a bit later, it's
              * worth retrying.
              */
-            printk(XENLOG_G_INFO "%pd: ffa: Failed to reclaim handle %#lx : %d\n",
-                   d, shm->handle, res);
+            if ( printk_ratelimit() )
+                printk(XENLOG_G_WARNING
+                       "%pd: ffa: Failed to reclaim handle %#lx : %d\n",
+                       d, shm->handle, res);
             break; /* We will retry later */
         default:
             /*
@@ -772,7 +824,8 @@ bool ffa_shm_domain_destroy(struct domain *d)
              * FFA_RET_NO_MEMORY might be a temporary error as it it could
              * succeed if retried later, but treat it as permanent for now.
              */
-            printk(XENLOG_G_INFO "%pd: ffa: Permanent failure to reclaim handle %#lx : %d\n",
+            printk(XENLOG_G_ERR
+                   "%pd: ffa: Permanent failure to reclaim handle %#lx : %d\n",
                    d, shm->handle, res);
 
             /*
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:47:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219614.1528497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKUn-0006LY-Ok; Tue, 03 Feb 2026 17:47:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219614.1528497; Tue, 03 Feb 2026 17:47:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKUn-0006KU-Js; Tue, 03 Feb 2026 17:47:25 +0000
Received: by outflank-mailman (input) for mailman id 1219614;
 Tue, 03 Feb 2026 17:47: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMZ-0000Zt-Q7
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:38:55 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 35442268-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:53 +0100 (CET)
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 BD3931063;
 Tue,  3 Feb 2026 09:38:46 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 27CF83F632;
 Tue,  3 Feb 2026 09:38:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35442268-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 09/12] xen/arm: ffa: Fix SEND2 SP support gating
Date: Tue,  3 Feb 2026 18:38:04 +0100
Message-ID: <9466059cffcae65acb96a6c3710778f2e9ebcbbd.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen only maps a VM RX/TX buffer into the SPMC when firmware supports
FFA_RX_ACQUIRE. Without that mapping, the SPMC cannot access the VM TX
buffer to relay FFA_MSG_SEND2 to a secure partition.

Advertise FFA_MSG_SEND2 to guests only when VM-to-VM is enabled or when
the firmware supports both FFA_MSG_SEND2 and FFA_RX_ACQUIRE, and reject
SEND2 to a secure partition otherwise. Add comments to document the
mapping/ownership dependency.

Functional impact: SEND2 to a secure partition is reported as
NOT_SUPPORTED when FFA_RX_ACQUIRE is absent.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c     |  8 +++++++-
 xen/arch/arm/tee/ffa_msg.c | 11 +++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index e9e020bb0cb3..a46c6e5e67f1 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -292,7 +292,13 @@ static void handle_features(struct cpu_user_regs *regs)
             ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
         break;
     case FFA_MSG_SEND2:
-        if ( ffa_fw_supports_fid(a1) || IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        /*
+         * Forwarding SEND2 to an SP requires the SPMC to see the VM TX buffer.
+         * We only map VM RX/TX into the SPMC when RX_ACQUIRE is supported.
+         */
+        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) ||
+             (ffa_fw_supports_fid(FFA_MSG_SEND2) &&
+              ffa_fw_supports_fid(FFA_RX_ACQUIRE)) )
             ffa_set_regs_success(regs, 0, 0);
         else
             ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 10856fddcbc4..928f269f6c3a 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -274,6 +274,17 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
             ret = FFA_RET_NOT_SUPPORTED;
             goto out;
         }
+        /*
+         * The SPMC needs access to the VM TX buffer to relay SEND2.
+         * We only map VM RX/TX into the SPMC when RX_ACQUIRE is supported.
+         */
+        if ( !ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
+        {
+            ret = FFA_RET_NOT_SUPPORTED;
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: msg_send2 to SP requires RX_ACQUIRE\n");
+            goto out;
+        }
 
         ret = ffa_simple_call(FFA_MSG_SEND2,
                               ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, 0);
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 17:47:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 17:47:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219623.1528512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKUs-0006wL-Vf; Tue, 03 Feb 2026 17:47:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219623.1528512; Tue, 03 Feb 2026 17: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 1vnKUs-0006w6-RC; Tue, 03 Feb 2026 17:47:30 +0000
Received: by outflank-mailman (input) for mailman id 1219623;
 Tue, 03 Feb 2026 17:47: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=NbdA=AH=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnKMg-0000Zt-RN
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 17:39:02 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 37c46894-0127-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 18:38:57 +0100 (CET)
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 DB4B6150C;
 Tue,  3 Feb 2026 09:38:50 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.220])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 399083F632;
 Tue,  3 Feb 2026 09:38:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37c46894-0127-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 12/12] xen/arm: ffa: Add message parameter diagnostics
Date: Tue,  3 Feb 2026 18:38:07 +0100
Message-ID: <209e5474e236737dd13e0f7ff8120b05cdb7eabe.1770115302.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.51.2
In-Reply-To: <cover.1770115301.git.bertrand.marquis@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MSG_SEND2 and direct request validation failures are silent, making it
hard to diagnose invalid IDs, oversized messages, or unsupported
destination types.

Add debug logs for parameter validation failures:
- invalid endpoint IDs
- oversized messages
- unsupported destination types
- invalid sender/receiver combinations
- ratelimit MSG_SEND2 busy failures to avoid log flooding

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_msg.c | 45 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 928f269f6c3a..cc273c9a8e80 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -4,6 +4,7 @@
  */
 
 #include <xen/const.h>
+#include <xen/lib.h>
 #include <xen/sizes.h>
 #include <xen/types.h>
 
@@ -100,6 +101,7 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     if ( !ffa_fw_supports_fid(fid) )
     {
         ret = FFA_RET_NOT_SUPPORTED;
+        gdprintk(XENLOG_DEBUG, "ffa: direct req fid %#x not supported\n", fid);
         goto out;
     }
 
@@ -108,6 +110,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
          (src_dst & GENMASK(15,0)) == ffa_get_vm_id(d) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: direct req invalid src/dst %#x\n",
+                 (uint32_t)src_dst);
         goto out;
     }
 
@@ -115,6 +120,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
     {
         ret = FFA_RET_NOT_SUPPORTED;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: direct req to non-secure dst %#x\n",
+                 (uint32_t)(src_dst & GENMASK(15, 0)));
         goto out;
     }
 
@@ -166,7 +174,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     /* This is also checking that dest is not src */
     ret = ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
     if ( ret )
+    {
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 lookup failed: dst %#x ret %d\n",
+                 dst_id, ret);
         return ret;
+    }
 
     /* This also checks that destination has set a Rx buffer */
     ret = ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
@@ -199,6 +212,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     /* receiver rx buffer will be released by the receiver*/
 
 out_unlock:
+    if ( ret )
+    {
+        if ( ret != FFA_RET_BUSY || printk_ratelimit() )
+            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to %#x failed: %d\n",
+                     dst_id, ret);
+    }
     rcu_unlock_domain(dst_d);
     if ( !ret )
         ffa_raise_rx_buffer_full(dst_d);
@@ -226,7 +245,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 
     ret = ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
     if ( ret != FFA_RET_OK )
+    {
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 TX acquire failed: %d\n", ret);
         return ret;
+    }
 
     /* create a copy of the message header */
     memcpy(&src_msg, tx_buf, sizeof(src_msg));
@@ -238,6 +261,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
          dst_id == ffa_get_vm_id(src_d) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 invalid src/dst src %#x dst %#x\n",
+                 src_id, dst_id);
         goto out;
     }
 
@@ -246,6 +272,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
         if (src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1))
         {
             ret = FFA_RET_INVALID_PARAMETERS;
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: msg_send2 invalid msg_offset %u (v1.1)\n",
+                     src_msg.msg_offset);
             goto out;
         }
         /* Set uuid to Nil UUID for v1.1 guests */
@@ -255,6 +284,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     else if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_2) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 invalid msg_offset %u (v1.2)\n",
+                 src_msg.msg_offset);
         goto out;
     }
 
@@ -263,6 +295,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
             src_msg.msg_size > (tx_size - src_msg.msg_offset) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 invalid msg_size %u offset %u tx %zu\n",
+                 src_msg.msg_size, src_msg.msg_offset, tx_size);
         goto out;
     }
 
@@ -272,6 +307,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
         if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
         {
             ret = FFA_RET_NOT_SUPPORTED;
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: msg_send2 to SP not supported\n");
             goto out;
         }
         /*
@@ -288,6 +325,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 
         ret = ffa_simple_call(FFA_MSG_SEND2,
                               ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, 0);
+        if ( ret )
+            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to SP failed: %d\n", ret);
     }
     else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
     {
@@ -295,7 +334,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
         ret = ffa_msg_send2_vm(dst_id, tx_buf, &src_msg);
     }
     else
+    {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 to VM disabled (dst %#x)\n", dst_id);
+    }
 
 out:
     ffa_tx_release(src_ctx);
@@ -311,6 +354,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
     if ( !ffa_fw_supports_fid(fid) )
     {
         ret = FFA_RET_NOT_SUPPORTED;
+        gdprintk(XENLOG_DEBUG, "ffa: run fid %#x not supported\n", fid);
         goto out;
     }
 
@@ -322,6 +366,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
     if ( !FFA_ID_IS_SECURE(dst >> 16) )
     {
         ret = FFA_RET_NOT_SUPPORTED;
+        gdprintk(XENLOG_DEBUG, "ffa: run to non-secure dst %#x\n", dst);
         goto out;
     }
 
-- 
2.50.1 (Apple Git-155)



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 18:10:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 18:10:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219666.1528522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnKqj-0003Lg-VJ; Tue, 03 Feb 2026 18:10:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219666.1528522; Tue, 03 Feb 2026 18:10: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 1vnKqj-0003LY-QC; Tue, 03 Feb 2026 18:10:05 +0000
Received: by outflank-mailman (input) for mailman id 1219666;
 Tue, 03 Feb 2026 18:10:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1vnKqi-00030g-8c
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 18:10:04 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1vnKqi-0014eP-1g
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 18:10:04 +0000
Received: from mail-vk1-f179.google.com ([209.85.221.179])
 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 1vnKqi-00FhnJ-0W
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 18:10:04 +0000
Received: by mail-vk1-f179.google.com with SMTP id
 71dfb90a1353d-560227999d2so2247816e0c.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 10:10:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@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=nfUgb2rr3hKaUs/X3OZNRCZJ1Olxd1VmiOYt/cj9PcY=; b=YUxlg0H
	U2TKt+s7+CT8gMEKV7aUH/766e3n5FQ+UM4UnxCIwETumtSChOIuvEKDAioDqpOv9vo5M0NFC+JAi
	F2dC6m478ebYA8whSF9/GLxV8tErUavrRWKLWphlpk+OQMbJ9AYcLs/JL8qEIkAQgXw5NzYXkXw3+
	tPjg7l5iSI=;
X-Gm-Message-State: AOJu0YzfncWIwqKYURMdRriYUQTZcihEQoxxRGa8b5un1U2Q5daBSbSS
	/G+wEVRTGiTH3iUnzB9uCjcAzQMlj73875p14WDQ0AXFmGOTEd/xNB+sjtc2b+PNscrYEUvBCJ7
	7wp/r8Q78rxQt5kkFnSu5Z7L+DQt7vnM=
X-Received: by 2002:a05:6122:ca9:b0:539:2a2c:6efe with SMTP id
 71dfb90a1353d-566e7fa4f87mr186589e0c.4.1770142203766; Tue, 03 Feb 2026
 10:10:03 -0800 (PST)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Tue, 3 Feb 2026 19:09:52 +0100
X-Gmail-Original-Message-ID: <CAJbE=KypsawebDO6dajT_J=H=gOhn_KsLHDFZu0rLaHGk2umAQ@mail.gmail.com>
X-Gm-Features: AZwV_Qg4oLqnAuzUlf0GsLYDqJ_2TbCHMU3zMqMBZSeO-UH_W_C0ZdD8bvcViyo
Message-ID: <CAJbE=KypsawebDO6dajT_J=H=gOhn_KsLHDFZu0rLaHGk2umAQ@mail.gmail.com>
Subject: [ANNOUNCE] Call for agenda items for February 5 Xen Community Call @
 16:00 UTC
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="00000000000041ee7e0649ef59dc"

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

Hi everyone,

We=E2=80=99re getting ready for February's Xen Project Community Call on Th=
ursday,
5 February 2026 at 16:00 UTC (4 pm UK time).

We=E2=80=99d love for you to join. 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/tRcgCf32woHY2Yu4V3WJAbIU/
   - If any action items have been resolved or are no longer relevant, feel
   free to remove them from the doc. I attempted to clean up the doc, so fe=
el
   free to make any adjustments.



*Call Details:*

   - Date: Thursday, 5 February 2026
   - Time: 16:00 UTC (agenda begins at 16:05 UTC)
   - Find your local timezone here
   <https://www.worldtimebuddy.com/?qm=3D1&lid=3D5368361,2988507,5128581,26=
43743,100,1850147,6&h=3D2988507&date=3D2026-2-5&sln=3D17-18&hf=3Dundefined&=
c=3D1196>
   - Link to Join the Call: https://meet.jit.si/XenProjectCommunityCall


We plan to open the meeting room at 16: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 16: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 Thursday!


Cody Zuschlag
Xen Project - Community Manager

--00000000000041ee7e0649ef59dc
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi everyone,<br><br>We=E2=80=99re getting ready =
for February&#39;s Xen Project Community Call on Thursday, 5 February 2026 =
at 16:00 UTC (4 pm UK time).<br><br>We=E2=80=99d love for you to join. Feel=
 free to participate or just observe. This call is a great opportunity to s=
ee what the community is working on, align our various efforts, and share u=
pdates. Everyone is welcome!<br><br><b>Preparation:</b><br><ul><li style=3D=
"margin-left:15px">Add any proposed agenda items or missing action items: <=
a href=3D"https://cryptpad.fr/pad/#/2/pad/edit/tRcgCf32woHY2Yu4V3WJAbIU/">h=
ttps://cryptpad.fr/pad/#/2/pad/edit/tRcgCf32woHY2Yu4V3WJAbIU/</a></li><li s=
tyle=3D"margin-left:15px">If any action items have been resolved or are no =
longer relevant, feel free to remove them from the doc. I attempted to clea=
n up the doc, so feel free to make any adjustments.</li></ul><br><b>Call De=
tails:<br></b><ul><li style=3D"margin-left:15px">Date: Thursday, 5 February=
 2026</li><li style=3D"margin-left:15px">Time: 16:00 UTC (agenda begins at =
16:05 UTC)</li><li style=3D"margin-left:15px"><a href=3D"https://www.worldt=
imebuddy.com/?qm=3D1&amp;lid=3D5368361,2988507,5128581,2643743,100,1850147,=
6&amp;h=3D2988507&amp;date=3D2026-2-5&amp;sln=3D17-18&amp;hf=3Dundefined&am=
p;c=3D1196" target=3D"_blank">Find your local timezone here</a></li><li sty=
le=3D"margin-left:15px">Link to Join the Call:=C2=A0<a href=3D"https://meet=
.jit.si/XenProjectCommunityCall" target=3D"_blank">https://meet.jit.si/XenP=
rojectCommunityCall</a></li></ul><br></div><div>We plan to open the meeting=
 room at 16:00 UTC, but to allow time for switching between meetings and ha=
ndling any technical issues, we=E2=80=99ll officially start discussing the =
agenda at 16:05 UTC.<br><br>Want to be CC=E2=80=99d on future calls?<br><br=
>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>.<=
br><br>See you Thursday!</div></div><div><br></div><div><div dir=3D"ltr" cl=
ass=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"=
><img src=3D"https://ci3.googleusercontent.com/mail-sig/AIorK4x5nkRDCOFJDJA=
v9aMXdZ0mghItsp3D36JrwBCQtitBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6IaJUrl12"><br><div=
>Cody Zuschlag</div><div>Xen Project - Community Manager</div></div></div><=
/div></div>

--00000000000041ee7e0649ef59dc--


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 21:09:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 21:09:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219710.1528596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnNdw-0000dr-KB; Tue, 03 Feb 2026 21:09:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219710.1528596; Tue, 03 Feb 2026 21:09: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 1vnNdw-0000dk-Fw; Tue, 03 Feb 2026 21:09:04 +0000
Received: by outflank-mailman (input) for mailman id 1219710;
 Tue, 03 Feb 2026 21:09: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=uuvN=AH=intel.com=sohil.mehta@srs-se1.protection.inumbo.net>)
 id 1vnNdv-0000de-9y
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 21:09:03 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8b044540-0144-11f1-9ccf-f158ae23cfc8;
 Tue, 03 Feb 2026 22:08:54 +0100 (CET)
Received: from orviesa006.jf.intel.com ([10.64.159.146])
 by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 03 Feb 2026 13:08:52 -0800
Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91])
 by orviesa006.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 03 Feb 2026 13:08:50 -0800
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.35; Tue, 3 Feb 2026 13:08:49 -0800
Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) 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.35 via Frontend Transport; Tue, 3 Feb 2026 13:08:49 -0800
Received: from CY7PR03CU001.outbound.protection.outlook.com (40.93.198.24) by
 edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35; Tue, 3 Feb 2026 13:08:48 -0800
Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14)
 by SA3PR11MB8024.namprd11.prod.outlook.com (2603:10b6:806:300::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Tue, 3 Feb
 2026 21:08:43 +0000
Received: from DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246]) by DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246%4]) with mapi id 15.20.9587.010; Tue, 3 Feb 2026
 21:08: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: 8b044540-0144-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770152935; x=1801688935;
  h=message-id:date:subject:to:cc:references:from:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=qY1T3W5FyVljOdyzSZZJlCwbWMnAtLdxMvJwaQWvtv8=;
  b=eX9W27d/4IAinXu1+z0yS1hsisZdivGS+k+0xP2NzOFqIIXRfsTY/Ojs
   nFqNYANawhDSG2K937SqETPWXuqcfgcQy01ASrqamx+fqUs77fHXJS22x
   o4o/ozs9sIMYSCgVxT5BnTP5A/crcUTPkqGsknhh9TJNsCHQcEmfQRSdc
   QJEgJNmL3r17Mb643sWq2q4QFsJSdg2EsDDWY83t0mn/1mLFtpWPwZVYm
   4MGS1OqNUBPmODPhE61bOqqeonYNnKTSn6843Q8oB2dx9sfQtFpFpDPI2
   u65G0Xk+6+jTfdvJ6i/vX2Gu2Itijj2+j39ZKtCXorX04hVjPXIkaawfC
   A==;
X-CSE-ConnectionGUID: I+nnhj8GTECajdZL1SyV6Q==
X-CSE-MsgGUID: UE2V2SsGR5+XOPycT3zHxA==
X-IronPort-AV: E=McAfee;i="6800,10657,11691"; a="71233925"
X-IronPort-AV: E=Sophos;i="6.21,271,1763452800"; 
   d="scan'208";a="71233925"
X-CSE-ConnectionGUID: AIu4Bu7bRHmCN8w6PpNQgQ==
X-CSE-MsgGUID: 1zC3yfojTc6HH6P4vGGrGQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,271,1763452800"; 
   d="scan'208";a="209071141"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wBDzqIUeDTf59gn4wD4SI98TY88DBozbvs4GiraMwQaEb4yJok/ZZrVLxYySn+yae3nX7n4lIGuziA38BDi94Ds08fe6hCSUZfnk5It53TJdNumxqRTW/med9jmVprVS1j9NWLT/FQM4xvQ03uGcUP48eKja/DvY1A4DU4V/oEGMoBz3ZA/fSX1Wgq+LIrRmjOlkgIZl1zb/q8PWbQGekySpwxcvfP8RcLy7PYzIAehQGFzk9bwMfmUPlKJSt/83rdcp57CXIkD1Z/uPfUlgku10jOIGgbegNE2jiCaABw/eR6QwIjZNV7+3/TfotLGmjvczwnxjN8qg5pnOhmC+sw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LGlKOzbPKaZ81XQ6QuEHoOFQ+jjciNTqRTj25RwHY50=;
 b=yyKeOqEZNWbc9JAYo9Q3EboS0liQvxZtn9RHS6+a7eto7qCi/Rnbh1eTJtnwtl2V8N1Ob6h60Ae51TJJ5FPQZV109rsgy40Z/KvvhYeFnvvosJH8nUbu6I/g23bh7xG71HIGPlJhoBSfwhw52fM2QSgSh/phOZ0mAzNzg9wkNuRkOgnecqLpXcf09tohx/jeV9ErYiogit/5vAd2/NeYPEf3PY+OLT7qO3dBJRibCP7RA7CyEIP9r8+5mAf7I5xPonF6VBQSephHFXdIAg5RYiEVCqpkMzOnashmlKTYyj7KTyKUpxHVDFn5/rctfKAq3X/BuA9IV40awvj1/Hdmnw==
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: <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>
Date: Tue, 3 Feb 2026 13:08:39 -0800
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Content-Language: en-US
To: Shashank Balaji <shashank.mahadasyam@sony.com>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>, Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>, Haiyang Zhang
	<haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
	<decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
	<ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
CC: Ingo Molnar <mingo@elte.hu>, <linux-kernel@vger.kernel.org>,
	<linux-hyperv@vger.kernel.org>, <virtualization@lists.linux.dev>,
	<jailhouse-dev@googlegroups.com>, <kvm@vger.kernel.org>,
	<xen-devel@lists.xenproject.org>, Rahul Bukte <rahul.bukte@sony.com>, "Daniel
 Palmer" <daniel.palmer@sony.com>, Tim Bird <tim.bird@sony.com>,
	<stable@vger.kernel.org>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
From: Sohil Mehta <sohil.mehta@intel.com>
In-Reply-To: <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR13CA0074.namprd13.prod.outlook.com
 (2603:10b6:a03:2c4::19) To DS0PR11MB7997.namprd11.prod.outlook.com
 (2603:10b6:8:125::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|SA3PR11MB8024:EE_
X-MS-Office365-Filtering-Correlation-Id: e3a565a4-48c6-461e-47dd-08de636869a7
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|7416014|1800799024|376014|366016|921020;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?Tk9HQjdXd280MWMyOHBVbHZ3cCtVRENJWmI0YjY1S3RVRFZNOTRhSy9HVHVT?=
 =?utf-8?B?Y0dYdXhXRWZzUG5KK0FFcmJmdDlCVm1qOUNhMUR6bERvY1FONTMvTDFPaERG?=
 =?utf-8?B?OERjaFlUWVZOMmdUUFF6eVZxSjliV0FqZ3J4NW5LNjdWMURFWUlBL3dGZ0cw?=
 =?utf-8?B?ditLMWRRNjQzZ0o2UjZNdm1KQWFkVC9QeE4wa1M5MXhkeEZ2MEIzNHFNSTVq?=
 =?utf-8?B?US95SmRtOCtIMW9nOVdQTVVrOXlQeVhjeEdVdnZDNkdtUGZCdkthSFZNODBx?=
 =?utf-8?B?b1hKSG1mMUxRR2NzZks5ZDFRV1RDNUJYbTVyR3cyUnhncE51ZDFWR3B0Y2s0?=
 =?utf-8?B?T0xLcGJjZXozTkkzeTlacGFZWEI3S3IydjVsMTF4aWxEcm5iZ21paHZncmVF?=
 =?utf-8?B?TDEwNFF3NUtxMjAwNFROOVZyRWhJLytMSDVUbjJlM0NtdzBWaFduOHBucTRH?=
 =?utf-8?B?MXBvRzkxNkcwa2hDTTBZZHZPeTBRR1E0aU4zUmtXWFlZUzcyQmdpUFN1ZlQ3?=
 =?utf-8?B?VkU2ZHZyN2k2UXk2c0lzcCs4UFJZK0dqa2Fldnd5dzdGUTFOaW9idjdlbjdn?=
 =?utf-8?B?ZVh4Z04zYlMyaEp0aHB3RVc0TkN0Z25lNlRyUUtPQjBQV1pSdk5TcVI4b3ZB?=
 =?utf-8?B?cS9qUHllSEZlS0FuOGNteFhvanllSDYwb0FDbHFMcklFU2l3LzNnS3lnZncw?=
 =?utf-8?B?eiszRytLeU1JZG9OWjV5ZGNDY0p4NHJyaFZwaER4angzOTlzbnVXdlVuRkx4?=
 =?utf-8?B?dENEVWdkRmIxa0ZBa2FEUWtScDdtYVdGU2RMcWF5a2ZraXFWTHBWbXEweUxj?=
 =?utf-8?B?ckhpM0gwR1E1b3J2MFFrU1E2cUwxU0VmNXVueTJVWG50b1YzUEtZOURjU2g0?=
 =?utf-8?B?L3FwWFp6VVBYaHgrNmh0MVV0Q0R1WVpkWHdDL3FiTXFQN0ZKb1NQcDJLd1ly?=
 =?utf-8?B?MFNpU0VXbFVhOFZHc3IvdkV2T1J5VmZPK0R2SFFzQjVFSEpOazQybGVTdFFm?=
 =?utf-8?B?Z3BHa0ZQQStkZis1a3ZWL3BPbGY2KzEzLzZhRVlyalhFTldJenVyd3JNSWd2?=
 =?utf-8?B?a0xPRzVFWjlaeTZ3b0tLNlpnNzU2dml0bkZyS1dvRGtMaGdHanAxYU9hRkNU?=
 =?utf-8?B?dGNMb2I0QUxmRER1Mms4aTdYejZmUGI0aFZRNzdUUXpJRUNtUW5iK3hkUzcr?=
 =?utf-8?B?dGtXMERRY0RiVWRhSUJoK2xnb0I4NTNweEdKblBJTzN6bGx1c2Rwcys1UnJl?=
 =?utf-8?B?QndkUEh0bm1DQlo4azExWUc4TFhGamc3dFhCVjM0UVZKaGcvQi9ObGtlNmpP?=
 =?utf-8?B?T1hQdkdmYS9lRndrZTRsOHNHbkRzTjRBeS9FMUFtUm1BYkhPSlBQSzljWDJz?=
 =?utf-8?B?UEhsc3Bub2lPVGpMWjhCLzlxT0p0SmZqNTZKa0lHa2NTbkV4Y3kzNk9PSnBK?=
 =?utf-8?B?RThIWWhTOGJtQU5WbUhCVk5TWFR4eFE0NGVCRmI1UGJweC9wQks5clVxbHVV?=
 =?utf-8?B?eXJVQjFBWlBXdUM4ZjZXU2hRYUNzNXNJUkJIU2hZS2trS3JtS3RzTUVXcDVD?=
 =?utf-8?B?aVhXTnZqRzNxYzlYeUIwTUdNTzhpY0ltVmJiekNreHlDbml5cmRpVklGM1pF?=
 =?utf-8?B?c2NTdDlISUFrNFRBd3M0R2xCeXVDR3AxSm02a3MyVDdJVU9RRUFzTVVKcXRM?=
 =?utf-8?B?Qk1nUEUrL2xMbVlRcW9EdEY5UTN6aU1tWTFQMFJpM2s2WUFNS01NNDAvZWhF?=
 =?utf-8?B?NXp1dDdsRFp0YUowb3RVaW1uL0xrR1UrR0UwWDhhUHIzWmdSYzkxTmVxUWVk?=
 =?utf-8?B?QkEvYXA4MGZUbCswbmJ1eFlYQVhFblM2bnErVHAwamJZOG5US3BTNVRzOTda?=
 =?utf-8?B?WmNEZWhHUmliUVEzRVI3QTVxV3NZeWF2SHJ4UDBjS1BSdXR1Ni9nc1ZId2hX?=
 =?utf-8?B?WEMvaWVkb1AreU05ckc2cHVDQmgxa1V1aFdxOGNlalZLWjM3VTlvUnRTdUFn?=
 =?utf-8?B?N00wOWh1RDdMWitiQ2pKbDRXblJDMHFwSVJUczFCYWM1WmYzb0lWZUJTTXVl?=
 =?utf-8?B?TEFncnpndVhicDVFMTBrUDBqclZUbU5CZmhYcE5CbldxRGowN2JvMzA0b05T?=
 =?utf-8?B?V2p0NU5rNFJ0bW5MK25mMytvdGlSR3NQdDFPVVVPQ25obU85aFF0YkQ2cFps?=
 =?utf-8?B?R1E9PQ==?=
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)(7416014)(1800799024)(376014)(366016)(921020);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RUNhN2JlS0NtVkRpVXRIeTJlTnpOQmRQcDZuWVczaTJOa2NrUEVEZnIzVlZz?=
 =?utf-8?B?UWtSR3krdXJDb0FGc3hFRlFMNXJxaUl6Sk44d3FUN09iRmRrN0VRRlQ2MVNk?=
 =?utf-8?B?UEtEN1EyRmJsL1BHWDQxZFpyc0ZWQThRdTBBeHJCMHFLRTR0Qk5mdkxyWUI2?=
 =?utf-8?B?eEJtdFdYRUJWUzFhaWcvOGdweC8yMHp6UUszRkNySzFRYW1UMXd0dlFPMm5h?=
 =?utf-8?B?TGtLYURua1hmL0t3NGRJR2ZYQ1hGQUs2MTlobzVueTFLUnY3aXFuR1VFZUdZ?=
 =?utf-8?B?VHYveHk2Z2RTSm1SUS9YSzlTeUhBZHYwa21IZGZpMUt2SjYrYUMvM2hDc1J5?=
 =?utf-8?B?c2wveEtVZ3M5ZzVCZTB3M1A5STVzVkRWWXMrRlVpK2EyL1pHelRic0hsUzhy?=
 =?utf-8?B?NVdPRUozZWZvK2hGUTV6dlREOHgvWWhsU1pQWEQzTGZLR3AvdTNIRjl2UWla?=
 =?utf-8?B?OEtwS3NtV1FZeW9HYTZhMjcrTkdtelFBS2JiZGVGM1NRVE8rMXZmb2swelRV?=
 =?utf-8?B?d1owVW9XcDVNRU94V3V3N0o2djc3aytmUXc1WTZQR0ZXWHVqZnJpdFRFU0RQ?=
 =?utf-8?B?R3A2RU9EQnIrRitKRWxGaW1MdTgySjhRTW5yRStoYk12OVVxVWdhZEtNKzNp?=
 =?utf-8?B?MmZtNEx4QldWSitqMWh1VW84Y1FPOEJUVWJPa1g2TXU4VTNBMTgyOWVrZHpp?=
 =?utf-8?B?UXBWemRVOERmazBjeUlLK0xIeFZySEgwelVObFhqNlNzN0pML1JFaGNzMnla?=
 =?utf-8?B?U1YrTUl6cXl6aE5Ibkt4TUY1VkhEaFBJbGM5OEtnMmFmMzNYRURMU1poS2x5?=
 =?utf-8?B?MTRNUit0VFJ1ZlRQYjBQc3JDcmc4Mk12VnZJY3hpS2twekFnZWpUV0hYS1R4?=
 =?utf-8?B?TCtObEExZ3ZLdm1TcHBIRitUUTExRlk0cDdFNHVOVVhjTTRuaXdoREIwaGRK?=
 =?utf-8?B?T1cvRXI5cDZsTy9CYjdpdGJpd1FUb204NkN3eGl6MXFNd3lJc1ZwNjc2U0Qw?=
 =?utf-8?B?QjFvWW5jUEdWRVhhMEdIUC9BaExiYVRRVE5keWVXYmxMU2Z4Z1pPcElZT2dR?=
 =?utf-8?B?bGN6akg5Wm9aWFpRcGg0b3lKSkVhRDZjUkoxN04xcDE1TWNLM2NqVlgwYm9H?=
 =?utf-8?B?OUw3bXZkZ1NndGNwVXZnZ1p0SzdkTktlbDduZnE3ZjVpanRoRU81NVF5cit1?=
 =?utf-8?B?NlVqM1c1aFdiUFJxVzgxdDlLWEQyY2VGKzk4TmVzeEFNVXRWZlhmZVJXd1k2?=
 =?utf-8?B?ZXBaMjVFNHprQ2p2R1ltckxDSEdlN2JiM3UweEpkL2JSN2pOV3JYY1hab0FQ?=
 =?utf-8?B?N1d0ZCthUzFleFV6TUJLcU9PY1BoSVBrdmFpR3ExWUJUdzRmTHJZRUhjL2M0?=
 =?utf-8?B?SXJKMUdoUVJlYXExSjJrc2N3NjNwSFI0TGRuMitYTVZTUytJNVFLNnl6RFM3?=
 =?utf-8?B?RllIN1JpNEVCb1hPQjk5VjJEWS9rMWJGWDJER2ZQUC95SE84NUJOdnFkY2k2?=
 =?utf-8?B?K3I1WGFPREQ5dy9lL0xOUmp2V2F5TEVOTUVNUnQ0U2hQRWhqSGxmR1RMcmdK?=
 =?utf-8?B?bXlUbU4yVVQ0VCtuQU9ucHFsa3paZFUxQW9UYVNZUklFWjhPRTArb1pWdDU1?=
 =?utf-8?B?WXFNWXBMcGJyRG4xYVFhMmNwVDBaaFBnZG9ITzhSeUNYUVdseWJUY0grQTBB?=
 =?utf-8?B?dnZPVUlnVXFVbnJEK3puRVpuTE9CY3M0d0pDZmlEU3R3NEt2L0J6VlJuQm1x?=
 =?utf-8?B?ZExNMVh4aDFreW1LRVIwM0xhNlZHVk5rUkFveGRMZExhbUM1T1RzT0pnSTR2?=
 =?utf-8?B?eld4WlRjWFFWaWZKTEtYNWhzbUZzUmh0NUJGdlh3TmZGNlRXMGZpSldyNnlE?=
 =?utf-8?B?OHI3ZzdsNzV0US9TWXh2NVBRdWFTYnBOdVo1NFFLMVd6VC9GWFZSMUtiV09P?=
 =?utf-8?B?VlVLTnBxMUVwaGphUk53WmxrbC9UNkxzTDZiZ2Z0V2lzc1N6bnFSZDYydVc0?=
 =?utf-8?B?OEl4YjU1eHhJeE1NcnlEMW1hV00vRVRBUFdwVjVMcU9ieGR6MVNYNWFrc2pT?=
 =?utf-8?B?aHoyRnlxN0RDRmdIRmZBK1o2ZVY5a0hWOWgxc2gvWFExUlVlbG93QmhUTmp1?=
 =?utf-8?B?WFlGL0x0RXNFK29FU3FVblRpbmZScGFHSGRiMHRrUEdTR3hWOU4raVVxVWVm?=
 =?utf-8?B?V1ZnM1BTaTZkRWMzWFRpdWU0TmZGYVpHTXFjVjNUWkk2WDNVSVgwQmtMQUlr?=
 =?utf-8?B?T3ZsZThvUjQrYXRyQk51dGhGdDgrMXhxMDd4c3oycWNpK1BvYUY2K0F0VkYx?=
 =?utf-8?B?WFhyR0VsaDBKL1F3Lzd5WVpGMzdOeFM5dWMvL1VMTjVwYU9KWjRDUT09?=
X-MS-Exchange-CrossTenant-Network-Message-Id: e3a565a4-48c6-461e-47dd-08de636869a7
X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 21:08:43.5315
 (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: l0GBOo+93wnOaNuqkVvRwziwBDEd8ODdMRtPBWPjn5wCQtBYxfC+ltSVaofvGcz4fE/H1Jwd3l0s+a2XbDSXWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR11MB8024
X-OriginatorOrg: intel.com

> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
> index d93f87f29d03..cc64d61f82cf 100644
> --- a/arch/x86/kernel/apic/apic.c
> +++ b/arch/x86/kernel/apic/apic.c
> @@ -2456,6 +2456,12 @@ static void lapic_resume(void *data)
>  	if (x2apic_mode) {
>  		__x2apic_enable();
>  	} else {
> +		/*
> +		 * x2apic may have been re-enabled by the
> +		 * firmware on resuming from s2ram
> +		 */
> +		__x2apic_disable();
> +

We should likely only disable x2apic on platforms that support it and
need the disabling. How about?

...
} else {
	/*
	 *
	 */
	if (x2apic_enabled())
		__x2apic_disable();

I considered if an error message should be printed along with this. But,
I am not sure if it can really be called a firmware issue. It's probably
just that newer CPUs might have started defaulting to x2apic on.

Can you specify what platform you are encountering this?




From xen-devel-bounces@lists.xenproject.org Tue Feb 03 23:02:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 23:02:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219733.1528606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnPPU-0007Nz-8z; Tue, 03 Feb 2026 23:02:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219733.1528606; Tue, 03 Feb 2026 23:02: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 1vnPPU-0007Ns-69; Tue, 03 Feb 2026 23:02:16 +0000
Received: by outflank-mailman (input) for mailman id 1219733;
 Tue, 03 Feb 2026 23: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=0aDa=AH=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vnPPS-0007NO-IM
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 23:02:14 +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 5f9781f4-0154-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 00:02:12 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1B6BF432E0;
 Tue,  3 Feb 2026 23:02:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E255C116D0;
 Tue,  3 Feb 2026 23:02: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: 5f9781f4-0154-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770159731;
	bh=rN1vHEBu5BFuRFQMvN9Xkf1rjI4+tIIdv9j+7zG6JTM=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OXKI8dINgXS4T5/XPa9oQel1PfVxUhGWodHEbSQis2CAQY84xRKbDaTQW0YV+vDeF
	 bJfWpoIZvnlRiJz/+4uapY6idR7PisITjh83C1kWgALYf6FuAzoVZo8omdgEYE7rOo
	 CNdosvrKFdIyBukkfQMM3cIu/K2/SVaIt+jAd3pmmLFH06fAkNsbAvjvdPWUPqZJBK
	 2glrgX1gYgXhf1FYNFi30Hc6T/Sjvk5rKmXNQOj6VBoJENbX4Tb9cacYlkELZ+sJ0U
	 V6dAmGIAZmuCyEa/j+J4KetJ129QLPhXIc1toQrEO6FLHzaauvkm3M+XLBMtQ9kGzr
	 hQ/OJBtwUXFJg==
Date: Tue, 3 Feb 2026 15:02:05 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    grygorii_strashko@epam.com, anthony.perard@vates.tech, 
    michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com, 
    jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com, 
    sstabellini@kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v8 1/2] xen/console: handle multiple domains using
 console_io hypercalls
In-Reply-To: <0fc9a80a-8621-4ce4-b2f9-c102e975b05b@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602031502000.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2601291404410.2238666@ubuntu-linux-20-04-desktop> <20260129220858.2371938-1-stefano.stabellini@amd.com> <0fc9a80a-8621-4ce4-b2f9-c102e975b05b@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, 3 Feb 2026, Jan Beulich wrote:
> On 29.01.2026 23:08, Stefano Stabellini wrote:
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -518,11 +518,16 @@ static unsigned int __read_mostly console_rx = 0;
> >  struct domain *console_get_domain(void)
> >  {
> >      struct domain *d;
> > +    unsigned int rx;
> >  
> > -    if ( console_rx == 0 )
> > +    nrspin_lock(&console_lock);
> > +    rx = console_rx;
> > +    nrspin_unlock(&console_lock);
> 
> Did you test this in a debug build, and it didn't blow up? The console lock
> is an IRQ-safe one, so I'd expect check_lock() to complain that you do not
> disable IRQs here. At the same time I don't think you can rely on IRQs being
> off upon entry into the function.
> 
> Anyway - is locking here really needed? Wouldn't suitable use of ACCESS_ONCE()
> (also elsewhere) do? (Such a switchover likely could be a separate, prereq
> patch.)

I created a prereq patch which introduces ACCESS_ONCE everywhere for
console_rx


> Further, if already you add locking on the read sides, what about ...
> 
> > @@ -540,6 +545,12 @@ void console_put_domain(struct domain *d)
> >          rcu_unlock_domain(d);
> >  }
> >  
> > +static bool is_focus_domain(const struct domain *d)
> > +{
> > +    ASSERT(rspin_is_locked(&console_lock));
> > +    return d != NULL && d->domain_id == console_rx - 1;
> > +}
> > +
> >  static void console_switch_input(void)
> >  {
> >      unsigned int next_rx = console_rx;
> 
> ... this read?
> 
> > @@ -555,7 +566,10 @@ static void console_switch_input(void)
> >  
> >          if ( next_rx++ >= max_console_rx )
> >          {
> > +            nrspin_lock_irq(&console_lock);
> 
> As indicated earlier, you can't know IRQ state in anything down the call
> tree from serial_rx().

I'll switch to the irqsave/restore versions in console_switch_input


> 
> > @@ -742,17 +765,36 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
> >          if ( copy_from_guest(kbuf, buffer, kcount) )
> >              return -EFAULT;
> >  
> > -        if ( is_hardware_domain(cd) )
> > +        /*
> > +         * Take both cons->lock and console_lock:
> > +         * - cons->lock protects cons->buf and cons->idx
> > +         * - console_lock protects console_send() and is_focus_domain()
> > +         *   checks
> > +         *
> > +         * The order must be respected. guest_printk() takes the
> > +         * console_lock so it is important that cons->lock is taken
> > +         * first.
> > +         */
> > +        spin_lock(&cons->lock);
> > +        nrspin_lock_irq(&console_lock);
> 
> While guest_printk() does matter here, it taking (down the call tree)
> console_lock isn't alone relevant. It being called with cons->lock held
> is, .

I updated the in-code comment

> 
> > @@ -816,22 +857,39 @@ long do_console_io(
> >              break;
> >  
> >          rc = 0;
> > +        nrspin_lock_irq(&console_lock);
> > +        if ( !is_focus_domain(current->domain) )
> > +            count = 0;
> >          while ( (serial_rx_cons != serial_rx_prod) && (rc < count) )
> >          {
> >              idx = SERIAL_RX_MASK(serial_rx_cons);
> >              len = serial_rx_prod - serial_rx_cons;
> > +            nrspin_unlock_irq(&console_lock);
> 
> Can we please have blank lines on both sides of this?

sure

> >              if ( (idx + len) > SERIAL_RX_SIZE )
> >                  len = SERIAL_RX_SIZE - idx;
> >              if ( (rc + len) > count )
> >                  len = count - rc;
> >              if ( copy_to_guest_offset(buffer, rc, &serial_rx_ring[idx], len) )
> 
> Have I perhaps talked you into moving the unlock too early? serial_rx_ring[]
> accesses look like they need to be with the lock still held. Or, to avoid
> calling copy_to_guest_offset() with the lock held, a local copy would need
> making.

I introduced a local copy


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 23:08:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 23:08:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219743.1528615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnPUz-00088S-SJ; Tue, 03 Feb 2026 23:07:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219743.1528615; Tue, 03 Feb 2026 23:07: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 1vnPUz-00088L-Pj; Tue, 03 Feb 2026 23:07:57 +0000
Received: by outflank-mailman (input) for mailman id 1219743;
 Tue, 03 Feb 2026 23:07: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=aUNd=AH=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnPUy-00088F-D2
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 23:07:56 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b45834d-0155-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 00:07:54 +0100 (CET)
Received: from DS7PR03CA0201.namprd03.prod.outlook.com (2603:10b6:5:3b6::26)
 by SN7PR12MB7936.namprd12.prod.outlook.com (2603:10b6:806:347::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 3 Feb
 2026 23:07:50 +0000
Received: from DS3PEPF000099DF.namprd04.prod.outlook.com
 (2603:10b6:5:3b6:cafe::9b) by DS7PR03CA0201.outlook.office365.com
 (2603:10b6:5:3b6::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9542.16 via Frontend Transport; Tue,
 3 Feb 2026 23:07:50 +0000
Received: from satlexmb08.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_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Tue, 3 Feb 2026 23:07:49 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 3 Feb
 2026 17:07:42 -0600
Received: from ubuntu-20.04.2-arm64.shared (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17 via Frontend Transport; Tue, 3 Feb 2026 17:07:41 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b45834d-0155-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GlilsBBY5F7gMzzBTPPGAe5I9o83IA1JQLWKfuG70pSvsRkrcBwhD5AGg21o6+Tg6JYqS4CxFdXN2KVP2NArCsl90+M4n19orzAB3dbqUafT+ac92CQLwxU+BjGGxKw8odYdLYPaSpL3AeSr4/85NU43RINVbVWok+JiXOa0cH2z53GdHmqhx3PhJcg4vKPjidtmndCUCxa2k3zi3f0vTfd0LkONJp/OsIYkbjVypZDceIiuuGoz5MQYAHhRYVyGLSeldVHjvZlsEZZR1EtNqD/E8ujcCLHh4dWDb3iNXxz0kLmo1JBCkBV6K1tCalR7bw0YQG+ZFSiJM+PsSnVf5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zPcvXu5VCYMukLaN255k/MTEnsytblLlj+oHAvHnX7g=;
 b=c4l1xGzYLmndPvuEfGOk5BHu7AXiqu1y0xZe5AhgsUEJ9TBYzOBcXwp4PG+GIHlsxmo1zGRwCmJ7oWymKJn5NiO13eXpvDf8hIicXeb8K2X9ou1SUC8VQOYbT/fIYg27gYPwEVU4YKBpY0sqFx4CY866BPu7H4q+fS0PyiyGJ2sB26rtu+L6KjmjXs4bZZuL7ltBIs3VCWhLlufUuKxnjhwzbiYBFkm5YAbS0pIZBTQxoVfUKccFiboajaOmreATA8Vxq7BaHt0Mg3ZdqJLBf9jVcMhTmSJ9Sp18BkOsb7BCWI7LRFVWByE0w3KyVBQ0z+xxoL5pc2k9bk2bbgD4RA==
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=zPcvXu5VCYMukLaN255k/MTEnsytblLlj+oHAvHnX7g=;
 b=pMlWOahj+udQv2oOkREOZWIhyGwUepgIda7J2uPLO7MPLHanY/JV4U37y1GMRzRGHOSchxFVHJoIUj+zn1/H/QSdbZSL0d9pPdaer0PGg99eZAx628eNKoi8Eh/qKB+oPIuOLcIccvb5NA6/avkYYpPBnB4WfTbwIaPpwtP1OEE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Date: Tue, 3 Feb 2026 15:07:40 -0800
From: Stefano Stabellini <stefano.stabellini@amd.com>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.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>, Jason Andryuk
	<jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
	<andrew.cooper3@citrix.com>, <jbeulich@suse.com>, <sstabellini@kernel.org>
Subject: [PATCH v9 0/4] xen: console_io for dom0less guests
Message-ID: <alpine.DEB.2.22.394.2602031502240.3175371@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: DS3PEPF000099DF:EE_|SN7PR12MB7936:EE_
X-MS-Office365-Filtering-Correlation-Id: a6039749-3f85-40e0-9562-08de63790d5f
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?d838xNr+JmklNyboedWiz7PSxIChy0e1iqRvGJRZ5pX8b9RcVAr2RBgie3ss?=
 =?us-ascii?Q?t/pdF3AU8yZJ7v+jo+Mj8T/bTwkB0KgsOiNDqJFZULAUs6rbXYna0Dc8iJMj?=
 =?us-ascii?Q?BQmXn2B20MZoMocY2EZpbWNEwffQyLSaBL84K3FssK6Mji3ilRduTkrPrffF?=
 =?us-ascii?Q?u8H+cqhtOmq7G+p4Dw1DQAWHo1IcFtIYAW+RxnjJQlJD2WRXsqQeH+XANY98?=
 =?us-ascii?Q?Szjjjk4U6P7jixHill8gIMD/TreszsV/O70HUYkc0qMHDqdy9iHTt0Wlozpq?=
 =?us-ascii?Q?kIxxp2i+7tuTz2hb68GiwL13GlbS82OKgpkkI76Vj8AJjgfzo/jgzeH1MJbn?=
 =?us-ascii?Q?5adD/XbqaiI0FugKjlesFWSfBXMB8+W2+kb7mFG07CGKaZT2+0nCOExCBKdt?=
 =?us-ascii?Q?PPM7QHuPKQEsQKp874gIrZkC98B+3uZRJ/u3UhHnH+z0qcO+c2NLzzaYgLPD?=
 =?us-ascii?Q?AYu/Zc5B7RwpKFvIzUo7/PC+jYjbG969MmxjtPdOiAMrhnNZJ8n58DU+oceH?=
 =?us-ascii?Q?dkxUiGxv9K5j75zrjPCaALbhmYLJIJlfgzo5sEKTHHNscGWj7WW7H4/csa+t?=
 =?us-ascii?Q?z9Nq1Q1PJE/sJpX/PORd34JoVgHHfUddGZ/QpRwD3VFipmJADlghUBkPaLk4?=
 =?us-ascii?Q?FeQ/k8ITXikuLKQhXm6peLc34iXLqG5Ry+S5h5cS4hpes4rjPvWnCuF2oTQT?=
 =?us-ascii?Q?WUcUF3XPv3rZe6aaVIWyEPr98rt5+wAjOavBNqPVblcOO539daGUwOFPPKTk?=
 =?us-ascii?Q?i/N56cOEOLclbgLtEcw55SH29XUQ8200YbEfCBIu/RH09MSAQ1xbx1W7k6xC?=
 =?us-ascii?Q?4CVHJexUB4mMEsMOLoRGGxTLAoqVqnxrlDgkyZk+xjYaLOHGr0WR+JuMyTWw?=
 =?us-ascii?Q?7cYGcuH9188thj86ZKhaW5SXIwKQnfrvEsUKIjWo7uWVqrLudjTFtyyOXEJy?=
 =?us-ascii?Q?KZeDwOiXKpCl48ss9pdzs5OBAdwGofpzTGeE6htskJ1vDlpnnYSCbHdesJ9O?=
 =?us-ascii?Q?lcJNEDlqfF50fGIaVsks1+vLBMRcNhdmcJloS35uiNSacUQoQZfhUQ2nfJpY?=
 =?us-ascii?Q?4OFOQwdBl+qFLJfmBU5Del6YRxX0jIKaTGgCoGh1W8HEfFqCLKO3o0qEMYD4?=
 =?us-ascii?Q?oWYCoS0Hs/YfYybKHWtJ8Xfnlp70Rz98wKjVmiI8Vzku2HVdRaIu23pa5XeK?=
 =?us-ascii?Q?hFC17r7G2s8OeNiOkFGAl2zoZEFF9ZD+zTiwTy9W7h3eZemz+Usg9pyASvRH?=
 =?us-ascii?Q?zDvdZMKFwOMNQt3/usqkNkqt5pP4OnDX0Iz6lujLkXc8yjj+YLYylV/lEexf?=
 =?us-ascii?Q?aiRQLu4+WPVGrD046DSno41z+9gCYP9sHWK6xu+Isfz4YkEpAbDpcnrOsu+R?=
 =?us-ascii?Q?tatL+JIDNlbQCZpFqcUlugb867qItr517SsHcMFtA8nBaqVWzTmXz1vrW3DM?=
 =?us-ascii?Q?EsUEgzxNTkre1WKO7TanDa4fIUzZwLASqY3rzKJBD36QpMQxx0XeR4VW0BrY?=
 =?us-ascii?Q?TUUjsp03YGfvehpL2jIwZwpiTew909YML5J1MaVzrYtWH+sdJqx5yLiOahNi?=
 =?us-ascii?Q?afY8uVfpIQU2gZJuFa/x4puwif9YTP3u9JRnGkw5ygbaJ4CukGN71orOsgby?=
 =?us-ascii?Q?vtgRd1sc3DU51xkZhu7agihswfIq21FRYaaBPDEkBjla1OcnrDGNhRV5Ow7B?=
 =?us-ascii?Q?95w6jQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	xMU+8CxGkG6/KKka1qu98DZ1d8Tib7Hqr9Q3VEA1W3lTyA+98qQYp3KIwftGIO3NEa4BVJJi/UBQMUS525UiAjKdBZmlSDdcBR2fWbzy4heugppvAtOJPiLGBp4EtTEALokfgiLA/sM3BVHPtn6/R643VFnEpdCpR1iD/0xhK0PCqNBULGNNbrJE3oReWxFKF7obHT6tpEj/RpIaAiuGdAKpD1nv4PXVURtVfVBp2MaHVBxObz+7ODIzs0piu5NPi4CxJXGQptIRjcpiR970U7cpT/ircNXgyAje45E8GorDf+6xRT5vlN8/MS+FdKvRzLSgT23k9PebC9UIiw9YHz+8wV0DDvFkEvKXnxkD3yIeWFv6vwaooM6/nXoWlmsu3fvEnvOTK8MlK3jp1alb01hnXbfRWT36ssNYwPwBvgmPHnfy8QKLPTYluOR3yHb1
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 23:07:49.9067
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a6039749-3f85-40e0-9562-08de63790d5f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DF.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7936

Hi all,

This short patch series enable the usage of console_io hypercalls for
dom0less guests.

Cheers,

Stefano


From xen-devel-bounces@lists.xenproject.org Tue Feb 03 23:08:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 23:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219745.1528626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnPVF-0008Rg-6S; Tue, 03 Feb 2026 23:08:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219745.1528626; Tue, 03 Feb 2026 23: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 1vnPVF-0008RT-3p; Tue, 03 Feb 2026 23:08:13 +0000
Received: by outflank-mailman (input) for mailman id 1219745;
 Tue, 03 Feb 2026 23:08: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=aUNd=AH=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnPVD-00088F-8f
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 23:08:11 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34cf5839-0155-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 00:08:10 +0100 (CET)
Received: from CH0PR03CA0272.namprd03.prod.outlook.com (2603:10b6:610:e6::7)
 by IA1PR12MB6482.namprd12.prod.outlook.com (2603:10b6:208:3a9::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Tue, 3 Feb
 2026 23:08:01 +0000
Received: from DS3PEPF000099DD.namprd04.prod.outlook.com
 (2603:10b6:610:e6:cafe::f9) by CH0PR03CA0272.outlook.office365.com
 (2603:10b6:610:e6::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Tue,
 3 Feb 2026 23:07:55 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS3PEPF000099DD.mail.protection.outlook.com (10.167.17.199) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Tue, 3 Feb 2026 23:08:00 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 3 Feb
 2026 17:08:00 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 3 Feb 2026 17:07:59 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34cf5839-0155-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bX/dXpJu5OZ0eIu51neos4M3tXM7wYXB/QmnVUJPnjlYiVr0u/YFEZml5CgQZQUOjNhzCBgyUlPasxvWbOCOmncVs9GpOujra5B86lt/RMW0IU9GLBWyGi1HnnqPi6h3W30Sll7Q/vOm+cNsDNz6fuvQwnJpawMEhK1RiPAs4rBVVutFR/oXBKFEfQijjM7/la6gJjzgrbgcGSC+xw33oon1Br+Mx0/FssW5O3kaAxsQauL6b4vsNV2/Spq7w1cBW4xyIGYzyFs/qI2yA5XHrlPieaR6+c2jBEM7d6/4SQ/WIsPbsyJq8vHt7Guv1dyFodYFZfu/VRnFe1m6iT8Jhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RGuhRgy80JmJPp5zr7235mr+Lh7xOYWvGliDQSZ3vn8=;
 b=O/FAjKLYEdnS8L6lQVGRmA2XpwdMzlPIUj6bavIn5j3qosRYb8VFEnBehCkF9bHs5AKebqG1XghgeMviMx4TA8f1jOiRtdEDJ3MoG0DKd+nh8jvMl6b5VHozuwDoaiibTv+8oN0LupJo6+T6gbhSDTV51NC+FcADZNS+jmpz3AuefGS13bUWMoq3iBBqALnTxDitpuD2jdCrEa62xUVkfDNO2nv6AvoUJYBiZLzucEpki7RdAW3+Jyw/uxSAhCObX2Is37djHkc7R6lS2bthxKn4pksY4yViZ9GU915iGVC/OSMBzY5J4iBFB80w2JVFOt5K1mwGgUUYqqKYfqPK3w==
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=RGuhRgy80JmJPp5zr7235mr+Lh7xOYWvGliDQSZ3vn8=;
 b=d1L0QWG3U2X6xLT9me1lhJG9wSNNJ0Ma4UMvqjNpjY1xnbClzgpYlS8Fp9mPXMm9i1m5SYMZXtta8DCg6mmqulMpIX1IxMiQPFLC66d67393RLTUXEGv5GD0QUwD+4e3u/EOkb8baV03K2wa1jRXqnlWkt7xYln7HyaiXkOFKUU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v9 1/4] xen/console: use ACCESS_ONCE for console_rx
Date: Tue, 3 Feb 2026 15:07:54 -0800
Message-ID: <20260203230757.3224547-1-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DD:EE_|IA1PR12MB6482:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d101a7b-5d22-4436-7c14-08de637913d7
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?tm2dD4oAaFvm9/KqxTTkKTI1F95WJyhfaT4ALueHWgMqyF/rzUXTrEYBJRR9?=
 =?us-ascii?Q?ylMBNgoMp9JAlSX+X4WEuSG8eV4s+Q1YuZqoscZmEG8txPePGkr2kP6DqEW4?=
 =?us-ascii?Q?+ISx5g4hJZjS50ZpZDJ2pkHGom1oOyTxrqd0ucIzwYAD6l0zD45U921KzB7m?=
 =?us-ascii?Q?m3jB37xXXFJLuN8hWFJnifjcAAk8ICHPx0qTa7sbIO7k9v+EAER8Dc+KLqCY?=
 =?us-ascii?Q?VIjpmdkOdIF/zb6vOk98jiFtSRWfpr6lsQjKPAOvBRdW8Jy/PdcOQu88B27U?=
 =?us-ascii?Q?NmUT32OlSgza3Xof2ulMs6b8Smna2KoxcN994OLKedvbVqYf4BNkOPBIYn0Y?=
 =?us-ascii?Q?yVpFrwiGeBG1MeSLc4GChhabN8x/7pSoNXgFpYvUzdtyPIIN8M6saO5lvDGP?=
 =?us-ascii?Q?PxfP0/WiBhyWg04EJAKDqziKvGwHvxyREyjicDFvDVhmBbUKOSWWWu5pyQfz?=
 =?us-ascii?Q?r1mjaHX28oOqGPxG7ysxkM5o4ob2roAvJqgGpYnx3FzAHwxPkxVo1jw72coj?=
 =?us-ascii?Q?45UBNMeeLMQ/cedJ3o4N580CcKi6EKvDYPwjqEEHeb5u21X/M+Dr5xMtDK1v?=
 =?us-ascii?Q?VNTyG9gUDktDTdk8vnVGVScjtokKPNMblVoUmidpgi6w+Clfp1Uja5yq58Ej?=
 =?us-ascii?Q?xSvBMO1yjq/eF2ojWxLWmxUc4QmYoQpAjrzxDLOhIRBq+pbWcUuEAl/oWuHI?=
 =?us-ascii?Q?JfpvdYs3lBCnVxjFKBLvTIDj9kcU7X1LYSU5NK15dZFjr7EYcfc6I9I7Q+Z8?=
 =?us-ascii?Q?vvcT3Ux350GLj2xgkM/oYtzud3dHfrc5tcgi9PjA1XsCxD0XzuuasbhONJGH?=
 =?us-ascii?Q?sBQBBbp0wK7quVBwfQtZEBl7VYnObedFSXnDsZW9/0XsDn5qrNWaL8kVCJgo?=
 =?us-ascii?Q?goS4cwJuVMNYYzDffIzyQlNALk6AYh3rzULD3bOoJ7dTyoBP2u2LjvkD3rK2?=
 =?us-ascii?Q?7vJvhZPJzFG4uBZ6vjMROTe1rwvM1av6nHuAIzHglBxMZ2kWoEUG+HoIh9vJ?=
 =?us-ascii?Q?E/uUggLiNuKCv7WJWDUQnjc63wDQ4pDer5atwRVOE749SqfXWExphd9m5XbA?=
 =?us-ascii?Q?6QGOZdiKox6qjRWPReQ0TepgELpZIDhSO9GmtdG2m2URok0VbTjXDYRjrqUW?=
 =?us-ascii?Q?CQ3gROZZqSAqnbmAnYa38YvY9fWgaQlKuurK/xT+PErq5Tyv+ea5ClzWHCMl?=
 =?us-ascii?Q?VJf5de7ipGUnPcWJNZnS4iixyF/Kv1vXzV0kBjvjExQa1YDIbn8y9WA35ySI?=
 =?us-ascii?Q?0IZ68DC+KNTJ+NwjR/1OM6n0Jewc/TnkMBFJ1Ec9EHawndBgY3nHtCfYQXJv?=
 =?us-ascii?Q?y5PV3PVvzHtEhv49ZVdHhBKck6kRD6/WuvEbA2+KidASE7sE3dzjmuTV8Kzl?=
 =?us-ascii?Q?OS2n1wJMRl2OeQhCv5d5caQcl3YCxS8h17s6BVA2xMdjogrSSi9LHD1tRmRH?=
 =?us-ascii?Q?BXEqbIos4XeN7jnaW2+gdHIHWHeK34TX4BwWWxWQ65mZ9e1GlbV8LE+GJ9ls?=
 =?us-ascii?Q?HCtOOyE9moXAqItH8wVgYjy2+WE4/GJKexLEswbmrtRz/+uXtbGCHUyYUX2W?=
 =?us-ascii?Q?KTMbjXRAy5rB+TVRm1mdGTw4bSVMyHOY4v7AMqzKiN9lzuAVW4PXlQBmYNWU?=
 =?us-ascii?Q?f3gydDCbBfyJH2ZPJ63XFNPdyADYAPFP60l2eVlhgm6cEMO9uc3JeJNJpkSg?=
 =?us-ascii?Q?VNDDKg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	aqN/Xc2/LbKDGL4XFN9Jg2SCy4gkMDJ51y6dNucdJdjjHele8yh8LA0Lc5GA1zk/PwVVew/FStN+6s/cYjrxEbnm//hxHArHMGmw7F1YrxIJQTj5MuYe2obmkNHuqMQsjYhdQRijJY+g+D9VR7vHg1B2fuW65x2jpMIqrgcY3NWGsLLY0bmcV6hR83IPPmBZXMDhLHBkxmQ2b+kh+foBDSuqV7qOH7dQqn13sdBGUOEnj+GNSwmBtakrj9TULOMZNKq9GiJmljC5tVmwPbjbrEe7cM5LRBXEvoE13U1zS+RqLdgUp4EUCHoTho99BxF68tuTTgfIefKR9dF4cJaID692sHwaeYjS97rKtSH2f8TRX/g/3DPvFZ+lSHYs/Adn5WbAbHqYLCqazxamsBtUS543BW3PTgYafpWMoDwYh0wR6k/BvQ8S81SaMN9iVR9i
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 23:08:00.7772
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d101a7b-5d22-4436-7c14-08de637913d7
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DD.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6482

There can be concurrent reads and writes to the console_rx variable so
it is prudent to use ACCESS_ONCE.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
 xen/drivers/char/console.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 2bdb4d5fb4..35f541ca8e 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -518,11 +518,12 @@ static unsigned int __read_mostly console_rx = 0;
 struct domain *console_get_domain(void)
 {
     struct domain *d;
+    unsigned int rx = ACCESS_ONCE(console_rx);
 
-    if ( console_rx == 0 )
-            return NULL;
+    if ( rx == 0 )
+        return NULL;
 
-    d = rcu_lock_domain_by_id(console_rx - 1);
+    d = rcu_lock_domain_by_id(rx - 1);
     if ( !d )
         return NULL;
 
@@ -542,7 +543,7 @@ void console_put_domain(struct domain *d)
 
 static void console_switch_input(void)
 {
-    unsigned int next_rx = console_rx;
+    unsigned int next_rx = ACCESS_ONCE(console_rx);
 
     /*
      * Rotate among Xen, dom0 and boot-time created domUs while skipping
@@ -555,7 +556,7 @@ static void console_switch_input(void)
 
         if ( next_rx++ >= max_console_rx )
         {
-            console_rx = 0;
+            ACCESS_ONCE(console_rx) = 0;
             printk("*** Serial input to Xen");
             break;
         }
@@ -575,7 +576,7 @@ static void console_switch_input(void)
 
             rcu_unlock_domain(d);
 
-            console_rx = next_rx;
+            ACCESS_ONCE(console_rx) = next_rx;
             printk("*** Serial input to DOM%u", domid);
             break;
         }
@@ -592,7 +593,7 @@ static void __serial_rx(char c)
     struct domain *d;
     int rc = 0;
 
-    if ( console_rx == 0 )
+    if ( ACCESS_ONCE(console_rx) == 0 )
         return handle_keypress(c, false);
 
     d = console_get_domain();
@@ -1193,7 +1194,7 @@ void __init console_endboot(void)
      * a useful 'how to switch' message.
      */
     if ( opt_conswitch[1] == 'x' )
-        console_rx = max_console_rx;
+        ACCESS_ONCE(console_rx) = max_console_rx;
 
     register_keyhandler('w', conring_dump_keyhandler,
                         "synchronously dump console ring buffer (dmesg)", 0);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 23:08:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 23:08:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219746.1528631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnPVF-0008UJ-Ld; Tue, 03 Feb 2026 23:08:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219746.1528631; Tue, 03 Feb 2026 23: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 1vnPVF-0008Tx-C1; Tue, 03 Feb 2026 23:08:13 +0000
Received: by outflank-mailman (input) for mailman id 1219746;
 Tue, 03 Feb 2026 23: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=aUNd=AH=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnPVE-00088F-8u
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 23:08:12 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34f22c2c-0155-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 00:08:10 +0100 (CET)
Received: from DM6PR01CA0010.prod.exchangelabs.com (2603:10b6:5:296::15) by
 IA1PR12MB8519.namprd12.prod.outlook.com (2603:10b6:208:44c::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 3 Feb
 2026 23:08:05 +0000
Received: from DS3PEPF000099E0.namprd04.prod.outlook.com
 (2603:10b6:5:296:cafe::a3) by DM6PR01CA0010.outlook.office365.com
 (2603:10b6:5:296::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Tue,
 3 Feb 2026 23:08:00 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS3PEPF000099E0.mail.protection.outlook.com (10.167.17.203) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Tue, 3 Feb 2026 23:08:04 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 3 Feb
 2026 17:08:01 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 3 Feb
 2026 15:08:01 -0800
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 3 Feb 2026 17:08:00 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34f22c2c-0155-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rsUUJIA4npmCPF5CpNaHxYJYPWk2FJPyyBY229iRbM2gT/Z2LZIIp8D8aChXY0dPfYGspJhHu0w7FJmKU4SbnoMqBAYN/b9WFRwaTkFKYuE+IVeuJ014/tthwwbCWUlxN3CkPqOG+UQ1T3tplRYFfeziFX8YN9eHhWvUbpsjqsiYpctZAGQ6GyBgbiJ7WNRQhmW6jtYRhuOvuNR+gNMfo2vJottXYU+7xqko6rMOv+K4qTu1oOpZzM+PLgMg5mdnnzZq1FbUvlaMKtUm4tVCDvePivNncrzfTFEnFcNFZY0iwRX0ZMMYFaU3CkvjiX4cqDbxAa3GF9+SOwaYrhP+jA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8WkKPKeqOMJv6FTgk3hjmsdpiM1n+2tag8H0cwjhwBg=;
 b=TiM+5vWzJps2P5HH9dqwqOerZjmR0kn4E8ATAauXwlDdXRELZugijc04lhCTObRPYZDKpzD0n6RY2Qp46RGlYPkDIhAMO+9rtEM6epfepUzviP+z5N8kyJ2tqXZjEMDgLpu8c/oW0uIalSyyUYbXp2ldik303za6Alzzvv/4tAvtD0WYvLNfKwhqX6bMGFuXiqU80aWKmysXAguIvOXKQ+66vy4p32lIZhcbeumkWsRoFCah6+ECE/1SvCN6UwziBLgQ4BD/DbLMbp3PMHJDic1ioeDeRbnW4kACgbeNTMm1yB0w5c/ckYsUxXQPPuGwOlqUvGvHxqNQYYT3o9JXpQ==
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=8WkKPKeqOMJv6FTgk3hjmsdpiM1n+2tag8H0cwjhwBg=;
 b=zT8tpsEA0p6hceBu7rKxZDA+bIGqOubywbiAzZiJ6grunVSmFAM59HHJP+dFdZCjPKwl/SZZMWwpChHKaJyr5UCMn2YQsdoTcMMl+K9KCZO6u620utgn59ySYWzAS4Nj6RtCIn4SPqtOetTwEiZsNG2y4J6q5+hPfuv1Rp/0720=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v9 2/4] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow non-hwdom binding
Date: Tue, 3 Feb 2026 15:07:55 -0800
Message-ID: <20260203230757.3224547-2-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099E0:EE_|IA1PR12MB8519:EE_
X-MS-Office365-Filtering-Correlation-Id: aa0d3dc2-cad7-4fa7-119f-08de6379161b
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?ZlhElm//8GIsUWtUFLdD9I73m4MVd7+uzjMPnZg4PRGacq6Q/L3xATO8RzFP?=
 =?us-ascii?Q?tWEWPXI8PRakzMvOsG9QSWy59w7IJ5FMfujxAyqUDufBv67L/kfbMmIR2gbb?=
 =?us-ascii?Q?pmj3HqXuL7uR3bjjq3WwjeOeV42AS7jZhNl1080OycmHphv9lLgZJ3pK73NL?=
 =?us-ascii?Q?uSwmFCZ9rLclX/vkE0oamE0sOlyy0aGI4Wi9zg66h6xG6egskdjEul79AZht?=
 =?us-ascii?Q?Cxv7UV9guYw13KTlyhnlW/aWNo/qB6LyB9ix2jejdDSmJgrRsgU3iB2jbBV5?=
 =?us-ascii?Q?3ODtfnJInvSfChZs3OFPwDlLGYi4G+oM0gYOTUAVDvr5/17sDtekBKEwjdL9?=
 =?us-ascii?Q?TGQcjU2PCmqsC6hzm9yXpDkwYA0q2OqclcurONXf7euOqSYAIlRMZSqdimou?=
 =?us-ascii?Q?GFEfBg6AB2d90ENFektSKlNsy8Fxik37Y3kceNaTxo7Kr9N0NdnVOTcAXO6c?=
 =?us-ascii?Q?7LfGkS7hDlYc6PhC3WQS5J7I3BngKmbCHvWVHr4qUnld6iJn8tgdXIYtc9p4?=
 =?us-ascii?Q?ia7KWCfxg6EapIaWO2+/sCJarZvCVfgi2LTD/yXhWlnAwM2Frl5HLqf4lcT5?=
 =?us-ascii?Q?BBp5ghjsvl5FDR/1mbQWZvewqlWLU18oK1lh79A0wFFFNQPza8cQVxZBr60Z?=
 =?us-ascii?Q?lAVFr59v3aMVnNaQf4oM3ya3A4fLjJ2knTV9ygWfKe8Bgok45DMhAxeigJdr?=
 =?us-ascii?Q?SeAWz8MwkfqE+EKnIOWmsGKeq5MhmaaIC/XHo2R2o/4X7dLmDIRH4n65nPT9?=
 =?us-ascii?Q?wOZfvQ/RFvmnUExLjhZxbULmP6mgLdKfDq3/qVjdDNmSFZPnizGXwyeAAgF5?=
 =?us-ascii?Q?Ln5npb1iGuFO+JmA+WTBVIE8KRKpm5II4odhu2+GrBag+c26R3nriJMEe5EO?=
 =?us-ascii?Q?xK8BSBS3ekgJFLludTUf3aaVhwOYnMNMJFlIPibezHwW556FIRbbJUFL6oWB?=
 =?us-ascii?Q?2hHLQcZBV0Qh2EKVt5Oju7YxCU0sn2qDZ14NBYpaFgkqZdGYEcVMJ+LdYRqg?=
 =?us-ascii?Q?Fk1QIGjd0wL8dLQNKw/9CrTwAmGPGiXxLk768vMHmKYLvAazE/IX9iu58st0?=
 =?us-ascii?Q?H7fJCwFyvl/FeyfRLwE0BV1XlJrFUBHv31idaDobwG8EfZkYuMuZmYn3groi?=
 =?us-ascii?Q?fPzIFZZ0FEin8DvEvlIQy7F9I83eOLgCoTz8xlXbDv3cc9Unb365GdUhmVTJ?=
 =?us-ascii?Q?gmGApYRD7XmDGLiHk87m8a2koewecg1Eon6B8YYpDCay+CIVpeRgNJ2nGnY3?=
 =?us-ascii?Q?0W42ZxBQ3IS7E7Ju+UZwAK8R/iosToGZ5lX5PUHgFQQkp2lIC9AHYvqslEpt?=
 =?us-ascii?Q?rqfea/JImGYZ2UaXYbrfpbhPmllyh2ZHNo0S4a5t7AuaJEDOqalAStgLeiyM?=
 =?us-ascii?Q?tZr7jBSa00yyAgrQu4oO0B5G0RqpIEwzUxwgr/3RHiKtHQ4T+c8eSxchjXCA?=
 =?us-ascii?Q?he46tyZb4A9bVf4ugQWCjdDmcEvKbH9ldkW1Bq4ZGqSbEpu9FySnimp6xd00?=
 =?us-ascii?Q?zwDkW2UDVY6DI95U8aBlgra5JEk0XMeopr8bhg6Ydfq0oCZFAuiL5qDubyIz?=
 =?us-ascii?Q?2ZpBvNUia7dlkggW6gNvVNl6gdMaDxXkX3xlUNYqGN0ZYGy0xatDngrmF/K1?=
 =?us-ascii?Q?1GkqEO2+djq2Q23via9FodtLaD6hurhMBUeFTXxfam+Bi4y9GI/vaGmaeuSW?=
 =?us-ascii?Q?zr2DMQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	UwdOksNpwNOmXuGoTkDnNTsp3S0HcvnIwaRCehl0xUvmqIrimxT+HKrvibkvnxls2HYpIHbgeGE58VLfX87maheqvY2eZM7OZaUhC6i2dSfODaarbmcsqbVwEKPWCFa7rXM7GbO9IrAActrWD3atHUsooj+oXM8l25JtKKpp+ahKAO0/78831Efuym6URmfW/C9+ixz6rVyB90gnu2Xz8U32Fsl+FtVQW7Pg7IgVWE0H0Kn36RMQDuS/tFETG1H5hh5gD3j/Q/qP+Uks+4p13Dh67FO7eSRBJHYDdZRVTNXn34aW/OS5TD29MB49nPwJHPTrakfB+0DuIKWOeOQxdSVxsBRBu9TmN8AxAG16/FHxS8n2jPfSAZqqnsnk1yqrGndQ981K3oY9dQROY5nl5JMXpU6U2UyYprhkLlilmm8Vo/Pfd4CpsyBE5gVoCY7k
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 23:08:04.5498
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aa0d3dc2-cad7-4fa7-119f-08de6379161b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099E0.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8519

Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
global to VIRQ_DOMAIN to allow other domains to bind to it.

Note that Linux silently falls back to polling when binding fails, which
masks the issue.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
 xen/common/event_channel.c | 1 +
 xen/drivers/char/console.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index a3d18bc464..f9becb4ca5 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -138,6 +138,7 @@ static enum virq_type get_virq_type(unsigned int virq)
         return VIRQ_VCPU;
 
     case VIRQ_ARGO:
+    case VIRQ_CONSOLE:
         return VIRQ_DOMAIN;
 
     case VIRQ_ARCH_0 ... VIRQ_ARCH_7:
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 35f541ca8e..fbc89ca2a4 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -613,7 +613,7 @@ static void __serial_rx(char c)
          * Always notify the hardware domain: prevents receive path from
          * getting stuck.
          */
-        send_global_virq(VIRQ_CONSOLE);
+        send_guest_domain_virq(d, VIRQ_CONSOLE);
     }
 #ifdef CONFIG_SBSA_VUART_CONSOLE
     else
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 23:08:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 23:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219747.1528646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnPVG-0000SF-Nk; Tue, 03 Feb 2026 23:08:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219747.1528646; Tue, 03 Feb 2026 23:08: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 1vnPVG-0000Qo-KI; Tue, 03 Feb 2026 23:08:14 +0000
Received: by outflank-mailman (input) for mailman id 1219747;
 Tue, 03 Feb 2026 23:08: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=aUNd=AH=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnPVF-00088F-8w
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 23:08:13 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 34fe7887-0155-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 00:08:11 +0100 (CET)
Received: from CH3P220CA0002.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1e8::13)
 by CH8PR12MB9765.namprd12.prod.outlook.com (2603:10b6:610:264::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 3 Feb
 2026 23:08:04 +0000
Received: from CH1PEPF0000A348.namprd04.prod.outlook.com
 (2603:10b6:610:1e8:cafe::87) by CH3P220CA0002.outlook.office365.com
 (2603:10b6:610:1e8::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Tue,
 3 Feb 2026 23:08:03 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000A348.mail.protection.outlook.com (10.167.244.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Tue, 3 Feb 2026 23:08:04 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 3 Feb
 2026 17:08:03 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 3 Feb
 2026 17:08:03 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 3 Feb 2026 17:08:02 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34fe7887-0155-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zCzu5gv3hrH7mMw8LprQZ6inysWDAuF+c2MyuO9VrHZvlyiwIFV0v2OVTSowMmIEmvqNyr3lizTEyO7nqidsnKPSXmSV7LzlLr1qPBZhF9UlXbR6ZOztBtWsBKMwy+Fo92pADkvLKW8ehrrL3RzPLKhkXUgq8TWhut6lfjR+5zbwzorJgnZt1qBpZGER+ruhvNKAsj6B4Swv43xi/oPK11xsRWB7npZGHkPNwD5TW1dOIS/7anlMtuXXg13tWgrkWQStYp7VyJI2zhoWQEpbhZ6KHkWutbJsYAHKLsqphCtwnW7TEXj8ElnHoAawtNXcD2NGei6iXL8Xd4JiTfuCvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8qQtk1b20aG/kh9W246LWa03j2XOhWS+O5knVRy/lLE=;
 b=Cv5ZyW1JjwnUqOyUHSk9NVIUMsAR3Q0OWPJX9GJsi+DkFWcMm/PfkwZ4TasDdvOqRjJSBHWWE8RX2S1go3hAqVJ5x7PUnR6VOW5yCDeWuNg1Be9Yu5kw7iUcYrIptm/i5oSrmOwqF0cAV2/ZtpiJMS5XvILgxbyVjDzxS2W0U36khMTX17FXY25+IXuZGu6m9E7uiZ2RE2NkqzMcsuSWecIjnjaJi+lCsdnZQuJQQS9/iQ6r4Tf70C96K7IT3uzL2BjIU5JWc1iuQztiMyc8PV49OKflNuT0frOSV1WCzgMFLSuvUJy9Btg5/pTl7RU9RIRw0YoCQkFWCx3QpV6pCQ==
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=8qQtk1b20aG/kh9W246LWa03j2XOhWS+O5knVRy/lLE=;
 b=sOe4hwCiteYHVPn+NnKg44ApDK9J+xNYiW764f7Md6zXxGADz33xLGGShl9ZScX97WE6IB9/+XlLPH0mqbugtvlmiC7oltUZjjqLpQBqkAtoRpBkvuHJvPhU2BDLVXJ74HR99ITzz9FY0VLy7QhjBpcb9cDacj4Wv1LKpKJ/Uww=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v9 4/4] xen: enable dom0less guests to use console_io hypercalls
Date: Tue, 3 Feb 2026 15:07:57 -0800
Message-ID: <20260203230757.3224547-4-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A348:EE_|CH8PR12MB9765:EE_
X-MS-Office365-Filtering-Correlation-Id: 98e68f0e-7787-4116-8dda-08de637915cd
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?lrcjk2n+688ve0Us9x616T/OtzKyojek7avAHRGqraUbAtt7rmGYw6nWgXS1?=
 =?us-ascii?Q?/IqVXvURzAbMMdwvY51uDKd7MwqRjdjQo+y6cM2PxlcJPRTbp73YyQsQRRce?=
 =?us-ascii?Q?t9IPxw9suSM0dj2KmJWfrfsyvZK8IEtp+ut0dOMU+85aQl5txmtnruiJxRge?=
 =?us-ascii?Q?/c+U41MWk9Y+Z8OUHwm0nnYMVlPgfpeYnxKMhG3pe6/OEEEWSsMJXCR8WKyv?=
 =?us-ascii?Q?lVwnNODoxKNUcQ0vRdy3Ahc+ePyBgYXCUL4JT9rHT5iqb5ZDWHhkVerR2AXc?=
 =?us-ascii?Q?swFOxzDHUZEzvn1SsmWFEufYxLt2tr2iaOgwhzxFz9mByjcJ+5vNZMgOBtEP?=
 =?us-ascii?Q?Cwxz9UTR0c3T3U4IgN0tVRHNUdIyxf1g55xn4RdZ/GgV3drNT7QttQU9WL2/?=
 =?us-ascii?Q?8VhzlgdRNYdmTRiUqSQSgD1/QIaytHjXc2UkCfBNB9qPRpXmRxq6kO3U8+VN?=
 =?us-ascii?Q?KjUVQLEw8L6d+ajnmoEmc9QrE+i/1v+vG/du68O+NAtj9mhVe/CLC0Qx0UNw?=
 =?us-ascii?Q?gLnE5FFYA4MKaNcNSp4whSdT6u1WZmOckn/+9bRnW4PsEL2x6OVpgA+znAuI?=
 =?us-ascii?Q?Wu97LVPUko0ts3qHpPZKhne4WyrjffjaKlLQUSHTiEyC0Raq7I4wZR+DgsI2?=
 =?us-ascii?Q?V0C7DeCQYOgPuQE6kFu2ofVbpc78ABCTV/SwO0efPpNRzd1/60DcOj6Q2LuU?=
 =?us-ascii?Q?qkmH6IwUmAqZ2CX3hP2bLxuoeTG23rOvrT6IvG0D7COV7zJ8NLj5iOgRrGFq?=
 =?us-ascii?Q?xikJK/sjII/6Hfdz6hWyV/Aa0iiWKpp20QQx6s05S6F+lUp4mq6alxAnpwod?=
 =?us-ascii?Q?UWmO/MvjofdGKnTJd4PBA0+3gv8W3cWLL9/0C4afoJkXwdOmVRZRLoFj3Xlo?=
 =?us-ascii?Q?UH75a2cxt9hkMXU2ELJPfa7O+XmiXHHEKG1MAs4oUOOih/n9p0cOggdi912q?=
 =?us-ascii?Q?TIrEx57+RvQPGwiCz+ZNKrYEuewQEfGmPzP4937Id+roFbimn8KCg7PNyY7e?=
 =?us-ascii?Q?oGR0Tmhx1eYfqTqeF12yXqT5NblQrvRCzdL7g9qjA6qKcfVJEj34uJh/D0k0?=
 =?us-ascii?Q?B0xg1cAGgpKcp5M/6eGh17NR0sZx8EhImI7YrS7LcmBfyH2nOwrGsZWEg83Q?=
 =?us-ascii?Q?8mcIkSlKbJtT9Ji71zDzg8sH2KLDc5vUubYA72lIuM8Obn7CHZ/qBlaj1HzQ?=
 =?us-ascii?Q?Ip8mbKMvvF6N5FQXXLN/4jogjpIfp6jlItGUGUvLyFSG+S49MLf9bwHDrm9q?=
 =?us-ascii?Q?Fx//BagnOV8xmyABu/kyyCg3VFeG60mTon3d3lvzVgj6eDY/pyTME2RkuEBQ?=
 =?us-ascii?Q?qyLoRxhebkyUPbcPVX+6Tc7geExDumqO5Mue//mH3NNut5ECmOAjqDk9DnFF?=
 =?us-ascii?Q?mzFYJMj7wBLtE5NbcW17auGqa5r3qcjqvuqqCOzXxuGxKg9M2g00+pPYBZjD?=
 =?us-ascii?Q?BwY7Obk2EJTDfWDQIDlnVkZWoN4aVZGEHuvnQ9ZfbZvjIN/0bUxAmARPIIU5?=
 =?us-ascii?Q?ShQFwDmg98ON3p7KDXbY0YAHxEdEgI6JZpmTTz+p56t3EhOpz/ZBUXBlH2Fs?=
 =?us-ascii?Q?0aMCh5ama+9YoDCOa3DNHhQGjznzLD5/lV/B54OvlUg/aQQw4h3QlMz5UCWa?=
 =?us-ascii?Q?vLEY3R5UZVwisLAP+Wlb8hxDoZbPa6Vk2ocLv5qZrHws+kOGLFqDiqomvtQO?=
 =?us-ascii?Q?v52xvQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	IhdGaBbSzBJzeC2aVMaQBPGeWdJsFjVqocNzqGOi8teFEgK0v8X57o/OEri6VutDVtLW6/mpLptZKBiyDOa2lnWD7GKRrDgfh1bOSgkVRMR2SD+HDJHZZ40mldYDNAxjjm4FLXHkFsG5AjhQFOxiSnhf2GesCDnx1lHcUlB2Z2ToZtFlSIXBKl7UiXZUSxrXNrP+n7e9whYxOAYuqaUH3G+sTvnT1Vz53Q/5WavkzRvvm6vacXThSY8HY8CJZIJJro+gfVh9y0tra7J8HwrrcOTRPJREqowQOq8sKf/M3VvQvkZaapPFBXXbvuCXN8FaaXUMiUayxeXjWgoVox1oNMQ8Jt7QOka8SFPmvVeJDNP+FrkgZp9OZJGaaI7pI3g2KYoOY/5aUZo1HaIAU5xNtdtEzFDuAeDSBKtj+ia/r1YoFqLzZAO1KFoSGa0r4BkF
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 23:08:04.0881
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98e68f0e-7787-4116-8dda-08de637915cd
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A348.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR12MB9765

Enable dom0less guests on ARM to use console_io hypercalls:
- set input_allow = true for dom0less domains
- update the in-code comment in console.c
- prioritize the VUART check to retain the same behavior as today

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
 xen/common/device-tree/dom0less-build.c |  2 ++
 xen/drivers/char/console.c              | 16 ++++++++++------
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 840d14419d..cb7026fa7e 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -829,6 +829,8 @@ static int __init construct_domU(struct kernel_info *kinfo,
 
     rangeset_destroy(kinfo->xen_reg_assigned);
 
+    d->console->input_allowed = true;
+
     return rc;
 }
 
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index b59ebdeddb..7afe9cfd41 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -610,11 +610,20 @@ static void __serial_rx(char c)
     if ( ACCESS_ONCE(console_rx) == 0 )
         return handle_keypress(c, false);
 
+    /* Includes an is_focus_domain() check. */
     d = console_get_domain();
     if ( !d )
         return;
 
-    if ( is_hardware_domain(d) )
+#ifdef CONFIG_SBSA_VUART_CONSOLE
+    /* Prioritize vpl011 if enabled for this domain */
+    if ( d->arch.vpl011.base_addr )
+    {
+        /* Deliver input to the emulated UART. */
+        rc = vpl011_rx_char_xen(d, c);
+    }
+    else
+#endif
     {
         unsigned long flags;
 
@@ -633,11 +642,6 @@ static void __serial_rx(char c)
          */
         send_guest_domain_virq(d, VIRQ_CONSOLE);
     }
-#ifdef CONFIG_SBSA_VUART_CONSOLE
-    else
-        /* Deliver input to the emulated UART. */
-        rc = vpl011_rx_char_xen(d, c);
-#endif
 
     if ( consoled_is_enabled() )
         /* Deliver input to the PV shim console. */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Feb 03 23:08:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 03 Feb 2026 23:08:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219749.1528656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnPVI-0000jn-59; Tue, 03 Feb 2026 23:08:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219749.1528656; Tue, 03 Feb 2026 23: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 1vnPVI-0000jc-10; Tue, 03 Feb 2026 23:08:16 +0000
Received: by outflank-mailman (input) for mailman id 1219749;
 Tue, 03 Feb 2026 23:08: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=aUNd=AH=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnPVG-0008QC-59
 for xen-devel@lists.xenproject.org; Tue, 03 Feb 2026 23:08:14 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3546e282-0155-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 00:08:11 +0100 (CET)
Received: from CH5P223CA0004.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:1f3::24)
 by MN6PR12MB8591.namprd12.prod.outlook.com (2603:10b6:208:471::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.12; Tue, 3 Feb
 2026 23:08:03 +0000
Received: from CH1PEPF0000A345.namprd04.prod.outlook.com
 (2603:10b6:610:1f3:cafe::a4) by CH5P223CA0004.outlook.office365.com
 (2603:10b6:610:1f3::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Tue,
 3 Feb 2026 23:08:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH1PEPF0000A345.mail.protection.outlook.com (10.167.244.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Tue, 3 Feb 2026 23:08:03 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 3 Feb
 2026 17:08:02 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 3 Feb 2026 17:08:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3546e282-0155-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QWFaNA2GQGIvz2nm9OO3SABCG6VidESFW2wUGsWtVA76i0Un81tXxupCXtNPQ5cFVVZXi/yJ0NCNmwLfB2N0fJAQsiedkwZQRNg/K7wh8jHTJC96HiKqcKc6+xftxRlgZfWi6g1dbzjrkRfhZwxKD6jcvmOomopxo0nkeBq45xuVa3y5JELXbiXZTT3+dju4R5+q+qMBF/gRXSlMtj/TsB9NSXHfelSjw85XXOGT/Rnr2O/eiV/BjQCUAVH7ratJCIpuBFfmXl71dcsv2nRuvdvGYZ09s7lz+lEEvKudmVtLzOJLJh6VtiJXJB0jWOV6kwCvPX+NiryMWfVWmAWn2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ldlEhyuj2S9L/CGueqaFFNeQSo5XY7pcNO609Q+D5BQ=;
 b=BrWGJYqISBT4xImDKzm9RU/C0I46yExjBHG19XD9ooQNGv0cz0wb2oOZ3yPmto28L2f7CBqA62SHOVRoY/UIuwsrcLFYKtG5xSx7CpJ9uxAOJ32AyoYJqrn336o/L6eWf5Oqxoa8houO+jFz8bYkIos3q6zewRv9yhtYriqlj78OAqRHQDzP9hTh+xipU3+/FLJ0eW5X9UEDj4LrZF4DG2ujgNLd1BRiTg/0YLKy2EG1fcCoWRXZ8RS0TysgH/bGUNRWvAx8R6ZvIIuAFGBsK4LgMfniZ0mDut7Qh6724aqxT+ZsF5igSooE9cSSrcjl6m2IQxtshjT8BzQLcATuBw==
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=ldlEhyuj2S9L/CGueqaFFNeQSo5XY7pcNO609Q+D5BQ=;
 b=GN9nurzHHhuqarAgljU6RZxQ9zNOl50fvZN/5Jgk8jjld+T7vjEdrDu5YdtNHTGmzz+ApwKbA6ibQC3as9H7jWESvO0oGLGPbaSnLh4OoPTIgbHg7w/6Ws4HOBZvdoONQ3VrtIO6exTMxYjjUY7JLqGG8QUnkz4DFnZyD9SOSmc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v9 3/4] xen/console: handle multiple domains using console_io hypercalls
Date: Tue, 3 Feb 2026 15:07:56 -0800
Message-ID: <20260203230757.3224547-3-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000A345:EE_|MN6PR12MB8591:EE_
X-MS-Office365-Filtering-Correlation-Id: 8fd9c07a-a6ba-47df-c2a1-08de6379155e
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?vqYy73CN+zomQCQHpoknKaKoqkrbydagsDsESB3+SxCScMyS/nVuXasQhEbJ?=
 =?us-ascii?Q?TK5h6oirbBmVsPbNC9UHX1IYlXJWc3FF64uMo/ZFIfyfrLq7dusKAXuPH3gM?=
 =?us-ascii?Q?nmT0FeIZWO9KirZ8/Zpp+TM7KYf3z+4xoZLz8CFusN2AysWt/GstDhxutMBf?=
 =?us-ascii?Q?lRCr1/CIxw7QIWHauWImAvgupcE5RRIrezjQqu6yYcWwY2OjrYWJvV6/UWUu?=
 =?us-ascii?Q?0S3C+9kJ3WezNu3Iqp3EZeCPii2mI4eMT7YUUbssTb7j7b3i4L7giUKrhBh+?=
 =?us-ascii?Q?eJaR/FQ96gFpms+QE/KgT3Bc1K8dkEVDqV+ksOpHLaQzQ7Bl+ZCjGN+BwKwh?=
 =?us-ascii?Q?fWkwikoU1M3QT+vd1c3EOPHuuoY7ZBRHnxXQbj/QepKwaXp8Iivuk62XIkYt?=
 =?us-ascii?Q?+R4NwdPzgTI5c9mtx8Vqb5FQxb0qYDLEeBx8AdrvVzHUNoY5SjP7DxyizZ/2?=
 =?us-ascii?Q?P6wh6H78+YFbcDXU3k/0kNoUChGirEcGTHWEFK+Rhwdyre2vnBsi9Qc37Jqk?=
 =?us-ascii?Q?ldZ40I6kSRgIrFoGI+30rpMEvA4iD1jDULEjL0B/jjpozw5nBRu8YBNvW2Bn?=
 =?us-ascii?Q?G7IcqGb/CeBVSaJ0bhSahb+VIQSYKEPgA5RaKKHKbpb9brnMzjm+SwaHpHJd?=
 =?us-ascii?Q?k+kfRz5dcpn8GJgc7PaT66wwcTQo4E+AFdX/9sXFFlup6pTV+9mADLEzkehw?=
 =?us-ascii?Q?c3PRZ5RJouOY2JFRkphqfwEC+vdEu5pmNrK7nDPJU23/20rHyQAhA1yECtCW?=
 =?us-ascii?Q?VL5agWRJAJpKzUacdaHmhMZfGM3Io6LUgyp4HmhMoeQbAXaKZpf++I9AqXgz?=
 =?us-ascii?Q?2XmNOrdIDxfhUf4BT3C0DHFcZSRCwow8zJduTo2nRRlAVJzGhnmqKuWx1B+l?=
 =?us-ascii?Q?YvhJkWl/xB2JJd1lid51yooq5jhDxi5W+lxwlm17ja11WHMBSVjbPD+SxkcF?=
 =?us-ascii?Q?jPeQvZKMwc3yFZxSgBEhqbIaJ/4aKZZDFFlPQx3YvmDN0RKw9/oC87/5pzOo?=
 =?us-ascii?Q?SPAKH68grj7nwnXdwZf1KJ8Nez68UnjVCRbw0/NWNe6543bPzY7zaKS3zZp7?=
 =?us-ascii?Q?61NLbo5igAqvARHO/vY6UOL8p4gHF/n/M7YRIec2eGxpSUFEBM0l10KZr47d?=
 =?us-ascii?Q?E+3wYc+SEaAv3Jh/M/cCZtMxUga//ceGnGdsNZKP8mUbdcxcM8zcaSUdpSi9?=
 =?us-ascii?Q?YYZsJ/SbZrJ2X7yJZnxZm/rBmWzAr41zmWsQ3KBJJlRdvFvrUnWhw0nauAsx?=
 =?us-ascii?Q?HWAXgyX3TQ+OHyJtgUkaXK3FL7PItuMseEYOMPJ8jKB5pN8AO0uluKB+hrjN?=
 =?us-ascii?Q?VyUpyIkNCZkYJHMToHQHp4GpT15bjUKAhkFO50CW/FdEMhfbj/WztwaFDdaM?=
 =?us-ascii?Q?Gb8jvL8KWylk0esK8iS6WLH+Ji8saDjEr/e5V78xhV+SKjexML4+N0FloO/q?=
 =?us-ascii?Q?d6dgVVitHOvCJYR4tBeOYyIc5qPhwfACY+LRHuoU/LdOD359KEDrJ5JKCSi5?=
 =?us-ascii?Q?0TnwZbcHNAO0B3buGEc8BrwqqC8qV2iNVhnc4nULtgDWKa7VefXO7DnN4oyH?=
 =?us-ascii?Q?WEvjEaPo4kB+IIBLRIxTTnAkXGkD450Wg7u1/Qm9EbZzB8lKjR85bhVFIg0K?=
 =?us-ascii?Q?D51aAqPaYOflpkmK9PCFAplCY3MqtO3RvlmK5TpX3ReSTbq0brkh6MbZ2Azt?=
 =?us-ascii?Q?vxrGIA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	I3eQZeyKB6ADKkcS9qNwCmnAhdX+28JFqdeB6nfC0ceNP5OUyfSsIq+jDETY6XAkwtIp58g6qhHvur7F3EAkk4+ctG2xRjqx6svTeTbjofjVjKL3N/S3GoUV/Xq/Vh4/0Xz+CEThPUmaI9eiMMx8vx5l1VzOKA1IhU2oAetZvNwduLNaX6atIy7iVa4jKOs3SJ8Xr46K3euiRDiWRkk0nQUaA39+qz5bRAQe71QR/nnRxFVuWnHUWfEHeSmbYa/yFoIY6XGfcsCtuH3y8aWZpMMo3zQGj2sej7owWA5ToLxgFDMv+38EWDJxlBlrWVn/cKtlZ1NuUDLNVQHk+UZFZD32IKz2w67Voo/OuKH2HPx/ptNDlHRnQE+ByKI7FoFF2vOhIjFI51UNvm2P00zez2nM7rlNaSooqLrQZ4d9oA/oWlTXMDEzupOo48cEArAS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2026 23:08:03.3310
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8fd9c07a-a6ba-47df-c2a1-08de6379155e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000A345.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8591

Allow multiple dom0less domains to use the console_io hypercalls to
print to the console. Handle them in a similar way to vpl011: only the
domain which has focus can read from the console. All domains can write
to the console but the ones without focus have a prefix. In this case
the prefix is applied by using guest_printk instead of printk or
console_puts which is what the original code was already doing.

When switching focus using Ctrl-AAA, discard any unread data in the
input buffer. Input is read quickly and the user would be aware of it
being slow or stuck as they use Ctrl-AAA to switch focus domain.
In that situation, it is to be expected that the unread input is lost.

The domain writes are buffered when the domain is not in focus. Push out
the buffer after the domain enters focus on the first guest write.

Locking updates:

- Guard every mutation of serial_rx_cons/prod with console_lock and
discard unread input under the lock when switching focus (including when
returning to Xen) so that cross-domain reads can't see stale data

- Require is_focus_domain() callers to hold console_lock, and take that
lock around the entire CONSOLEIO_read loop, re-checking focus after each
chunk so a focus change simply stops further copies without duplicating
or leaking input

- Hold cons->lock while flushing buffered writes in the focus path
so the direct-write fast path does not race buffered guests or HVM
debug output

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v9:
- use irqsave/irqrestore in console_switch_input
- update in-code comment
- blank lines
- local copy of serial_rx_ring
---
 xen/drivers/char/console.c | 78 +++++++++++++++++++++++++++++++++-----
 1 file changed, 68 insertions(+), 10 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index fbc89ca2a4..b59ebdeddb 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -541,6 +541,12 @@ void console_put_domain(struct domain *d)
         rcu_unlock_domain(d);
 }
 
+static bool is_focus_domain(const struct domain *d)
+{
+    ASSERT(rspin_is_locked(&console_lock));
+    return d != NULL && d->domain_id == console_rx - 1;
+}
+
 static void console_switch_input(void)
 {
     unsigned int next_rx = ACCESS_ONCE(console_rx);
@@ -553,10 +559,14 @@ static void console_switch_input(void)
     {
         domid_t domid;
         struct domain *d;
+        unsigned long flags;
 
         if ( next_rx++ >= max_console_rx )
         {
+            nrspin_lock_irqsave(&console_lock, flags);
             ACCESS_ONCE(console_rx) = 0;
+            serial_rx_cons = serial_rx_prod;
+            nrspin_unlock_irqrestore(&console_lock, flags);
             printk("*** Serial input to Xen");
             break;
         }
@@ -576,7 +586,11 @@ static void console_switch_input(void)
 
             rcu_unlock_domain(d);
 
+            nrspin_lock_irqsave(&console_lock, flags);
             ACCESS_ONCE(console_rx) = next_rx;
+            /* Don't let the next dom read the previous dom's unread data. */
+            serial_rx_cons = serial_rx_prod;
+            nrspin_unlock_irqrestore(&console_lock, flags);
             printk("*** Serial input to DOM%u", domid);
             break;
         }
@@ -602,12 +616,16 @@ static void __serial_rx(char c)
 
     if ( is_hardware_domain(d) )
     {
+        unsigned long flags;
+
         /*
-         * Deliver input to the hardware domain buffer, unless it is
+         * Deliver input to the focus domain buffer, unless it is
          * already full.
          */
+        nrspin_lock_irqsave(&console_lock, flags);
         if ( (serial_rx_prod - serial_rx_cons) != SERIAL_RX_SIZE )
             serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c;
+        nrspin_unlock_irqrestore(&console_lock, flags);
 
         /*
          * Always notify the hardware domain: prevents receive path from
@@ -731,6 +749,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
     unsigned int flags = opt_console_to_ring
                          ? CONSOLE_ALL : CONSOLE_DEFAULT;
     struct domain *cd = current->domain;
+    struct domain_console *cons = cd->console;
 
     while ( count > 0 )
     {
@@ -743,17 +762,36 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
         if ( copy_from_guest(kbuf, buffer, kcount) )
             return -EFAULT;
 
-        if ( is_hardware_domain(cd) )
+        /*
+         * Take both cons->lock and console_lock:
+         * - cons->lock protects cons->buf and cons->idx
+         * - console_lock protects console_send() and is_focus_domain()
+         *   checks
+         *
+         * The order must be respected. guest_printk() takes the
+         * console_lock and it is called with cons->lock held. It is
+         * important that cons->lock is taken first.
+         */
+        spin_lock(&cons->lock);
+        nrspin_lock_irq(&console_lock);
+        if ( is_focus_domain(cd) )
         {
+            if ( cons->idx )
+            {
+                console_send(cons->buf, cons->idx, flags);
+                cons->idx = 0;
+            }
+            spin_unlock(&cons->lock);
+
             /* Use direct console output as it could be interactive */
-            nrspin_lock_irq(&console_lock);
             console_send(kbuf, kcount, flags);
             nrspin_unlock_irq(&console_lock);
         }
         else
         {
             char *kin = kbuf, *kout = kbuf, c;
-            struct domain_console *cons = cd->console;
+
+            nrspin_unlock_irq(&console_lock);
 
             /* Strip non-printable characters */
             do
@@ -766,7 +804,6 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
             } while ( --kcount > 0 );
 
             *kout = '\0';
-            spin_lock(&cons->lock);
             kcount = kin - kbuf;
             if ( c != '\n' &&
                  (cons->idx + (kout - kbuf) < (ARRAY_SIZE(cons->buf) - 1)) )
@@ -796,6 +833,7 @@ long do_console_io(
 {
     long rc;
     unsigned int idx, len;
+    char kbuf[SERIAL_RX_SIZE];
 
     rc = xsm_console_io(XSM_OTHER, current->domain, cmd);
     if ( rc )
@@ -817,6 +855,9 @@ long do_console_io(
             break;
 
         rc = 0;
+        nrspin_lock_irq(&console_lock);
+        if ( !is_focus_domain(current->domain) )
+            count = 0;
         while ( (serial_rx_cons != serial_rx_prod) && (rc < count) )
         {
             idx = SERIAL_RX_MASK(serial_rx_cons);
@@ -825,14 +866,31 @@ long do_console_io(
                 len = SERIAL_RX_SIZE - idx;
             if ( (rc + len) > count )
                 len = count - rc;
-            if ( copy_to_guest_offset(buffer, rc, &serial_rx_ring[idx], len) )
-            {
-                rc = -EFAULT;
-                break;
-            }
+            memcpy(kbuf, &serial_rx_ring[idx], len);
+ 
+            nrspin_unlock_irq(&console_lock);
+
+            if ( copy_to_guest_offset(buffer, rc, kbuf, len) )
+               return -EFAULT;
             rc += len;
+
+            /*
+             * First get console_lock again, then check is_focus_domain().
+             * It is possible that we switched focus domain during
+             * copy_to_guest_offset(). In that case, serial_rx_cons and
+             * serial_rx_prod have been reset so it would be wrong to
+             * update serial_rx_cons here. Get out of the loop instead.
+             *
+             * rc is updated regardless to provide the correct return
+             * value to the VM as the data has been copied.
+             */
+            nrspin_lock_irq(&console_lock);
+            if ( !is_focus_domain(current->domain) )
+                break;
+
             serial_rx_cons += len;
         }
+        nrspin_unlock_irq(&console_lock);
         break;
     default:
         rc = -ENOSYS;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 02:56:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 02:56:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219808.1528666 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnT3K-0006Gv-1K; Wed, 04 Feb 2026 02:55:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219808.1528666; Wed, 04 Feb 2026 02:55: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 1vnT3J-0006Gn-RJ; Wed, 04 Feb 2026 02:55:37 +0000
Received: by outflank-mailman (input) for mailman id 1219808;
 Wed, 04 Feb 2026 02:55:36 +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 1vnT3I-0006Gh-KX
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 02:55:36 +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 1vnT3G-002Mva-0U;
 Wed, 04 Feb 2026 02:55:33 +0000
Received: from [140.209.201.102] (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 1vnT3F-00GDbF-1q;
 Wed, 04 Feb 2026 02:55: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=In-Reply-To:Content-Type:MIME-Version:References:Message-ID
	:Subject:Cc:To:Date:From; bh=BjkKDM8fENKGt52Vxx+M3eeohZOF5rdjqIS54yPudmw=; b=
	QD2Aul0HpoOB/5KLr/LTX6zU1mSvJdT93BtDdIzNlUAkWxIL1k8kLihPlTea4F5mI5/old5uC5WgB
	g/sXhKYp3fKL7GKs+JruiCXKqjy/4Rea3eocLRqq7QPXmV3e5gQLpzT8S8e8lZUkqdHDmIKKLuR2U
	uJfncYeNy7Y57E93Q=;
From: dmukhin@xen.org
Date: Tue, 3 Feb 2026 18:55:32 -0800
To: Stefano Stabellini <sstabellini@kernel.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, dmukhin@ford.com
Subject: Re: [PATCH v1] automation: align XTF qemu parameters across
 achitectures
Message-ID: <aYK1JFwsfEpj2W4Q@kraken>
References: <20260202193230.21412-2-dmukhin@ford.com>
 <alpine.DEB.2.22.394.2602021540100.2599007@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2602021540100.2599007@ubuntu-linux-20-04-desktop>

On Mon, Feb 02, 2026 at 03:40:16PM -0800, Stefano Stabellini wrote:
> On Mon, 1 Feb 2026, dmukhin@xen.org wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > It is handy to have 2 CPUs and more RAM for smoke testing a hypervisor
> > change via XTF.
> > 
> > Align x86 QEMU configuration with Arm for XTF tests: 2 CPU and 2G of RAM.
> > 
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> Please provide a link to the successful pipeline. With that:

CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2304311308

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

Thanks!


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 04:01:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 04:01:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1219825.1528676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnU4b-00075E-GN; Wed, 04 Feb 2026 04:01:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1219825.1528676; Wed, 04 Feb 2026 04:01: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 1vnU4b-000757-CF; Wed, 04 Feb 2026 04:01:01 +0000
Received: by outflank-mailman (input) for mailman id 1219825;
 Wed, 04 Feb 2026 04:01: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=juaX=AI=gmail.com=alumulti@srs-se1.protection.inumbo.net>)
 id 1vnU4Z-000751-Qh
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 04:01:00 +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 1b78d884-017e-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 05:00:57 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-65939428896so2143346a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 20:00:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b78d884-017e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770177655; cv=none;
        d=google.com; s=arc-20240605;
        b=J+dQagZSghVKGtnE5vPrzZJG4pkk/Ab0Np/ntz76IHSeTQ32Yc2L6dpmqmAPWWbBny
         Ql12xpbVX1fFn97wIgRJyLaT0PyDZoNjiiKye1fxqsnQF70S763LWHUJhvCzXS1Tnfrl
         GQUktvpwAJpJtKH7CVA+xEpqQfkbCEa1C9PMUxF3+j+u1N29dEMY/yHpIUh930lQpxVM
         EgxtxnN2cixl+stFqWE5zjolMIe4haasyrlZgIj978bAS8DeV85hMO5KbWjA3pj5shs4
         FH+7nWmRsTUX+x3Dzas8EJWmhScnkWAq3gw6H5q5P0TzBvjrMqldP8ZciR6gXNcbgr5T
         QLUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=to:subject:message-id:date:from:mime-version:dkim-signature;
        bh=VWe18zpsOHVAr/iJ0qLTiACj+H5WdI14QteHDAWXGx4=;
        fh=quJY5mN2l4ZorNvEoO9ngNXalhEvTdq/+W8CvHWhECs=;
        b=Jl57dmtScmI8RBBqGOy46NWTwBYLTdoVYpMhVh2S1MVRFE2svXwAotw+Gp0oXm2IJV
         kmO1AurZvrS7DmFhcc1qG4EafkUeALUFD3wcuDF3c3fv/xMCmDXdoE9rXeZHd+STcXVV
         OIgQ2bDMuG0UupEqPNjB34YCMbLlbKmdKSx2/MfJ2c8ArRl0Bw1q7zpnVnNR66zHMJyn
         Moi5IbCo+mhs+XceWUYiJZppx+BnOZ6nyFSdp5GDr7SqtyJdfBtUjNDvW2M7RjaW+pl5
         VS/fBw+xChJsjR0OrzKEtxgcMo1nuvTMOA95OntYKg1XRtwwqF2dYXC1U2RjaHdczGlz
         M4QQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770177655; x=1770782455; darn=lists.xenproject.org;
        h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
         :date:message-id:reply-to;
        bh=VWe18zpsOHVAr/iJ0qLTiACj+H5WdI14QteHDAWXGx4=;
        b=TozS26AqSZ/V0x5jAl2onlVZrCm2wiYSGx0shx/FLa5FxOIExjUKYeAEvSxvnmdEeT
         DtRMckrQ/oche/thfq7AK3sVjTYE2i2vv04UfYIPov1Ca6hySpIBnRDhSeE4C3mvBNct
         Bao6B2pxlJ6wCq3gUUeIRL2A619SGoszeN0XBo3S6lKjgJ9G/OCJ7QFbhCRVeLdPmN7A
         iIO2rMzAevHpMA57j9hhszGIHfqF5OKsrXcbEJ1kaj57PwlniZFOAdnM0mzL8lT5J3WE
         c/8hojzO+er+5kUt2OAwjXzDe7t4gCBd1I4JDJ10LqIC5NHjMqKBVSH+zHXG1vOhZsu0
         gNDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770177655; x=1770782455;
        h=to:subject:message-id:date:from:mime-version:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=VWe18zpsOHVAr/iJ0qLTiACj+H5WdI14QteHDAWXGx4=;
        b=Xndp7Dt94mpgsUavZjslYOpxWsvAs1dGBnDjBniczCIxIU4HlEwnKtTGFOHA4T5azK
         XVu+YLVabC4lhDm8ocpnLNqCJsoH5GIa1B0pD5h0NhR4BmeBg8TqdvF6MwmGAjBTNUcH
         oKAUziNmkPVHvZwU0mwFRYq2kQQvp36UzSzjOf6b1f1b3CTtHI1DWPo7OffSGoWxIdMW
         mZzYN5qhoRSr/wcuiDfUbqwk3tPRSFO8oeIRDhtgkQ70aZDDNKHzYKrTaaNZi4nA2Rub
         5So3nH0Uh2PSgkwaYjUgkDc6gagxst4qmBhU2uzLzUXqyCq2QY2bczrwCD6+eGrDnwAK
         5XXA==
X-Gm-Message-State: AOJu0Yz4FqHMamS05fMDDQKI9dHeP7cZb/Yj6q0g9nrvFVcbTjAhU/Lj
	J8mZJ2RULHBt9oBImS1g4NJl6qcGoJsfJ0M+Gc6DLvOPnsS4SQpmn/s97B6xbZJ/U7eaxlqD/rK
	vQ+B2jxabJ7NQK/dEle4ecx799yjknK0OgQDm
X-Gm-Gg: AZuq6aJ9wPW2vorBbq5SnqWD/VbftQofhzCuN83w2jPwGGrIc1YvTbRWtMp/mDYpXAz
	GPWjPm86y9EZflxAwXmmOrmETC6iK7NbRp+n14U6XTL0I7UBu9d9m6M40K5SExAO7BJbpht1fyP
	Jioc8wbO51kg6GNOi+h8t2HUZ75Z6dLsiRtsyZDht9/Sk93s14rUIxQexe7DFTm7wZmN8MuxnHs
	w8k7+Hk1amojE1KnFMcOwWOoDahdpUgy0Y3NdVuBIXG3LTwrJo8XPdY3x5yjFfff2kDsX3+5A==
X-Received: by 2002:a17:907:2d94:b0:b7f:f862:df26 with SMTP id
 a640c23a62f3a-b8e9f054a77mr117457366b.14.1770177655347; Tue, 03 Feb 2026
 20:00:55 -0800 (PST)
MIME-Version: 1.0
From: Alap A <alumulti@gmail.com>
Date: Wed, 4 Feb 2026 09:30:44 +0530
X-Gm-Features: AZwV_QhihaT8AEYZE7eUZXyEljIfxWUVK9gMryDJ8aUy0r_CvnTJ_H1WbZLHD0g
Message-ID: <CAE16M+jp_9JXJVX4QLqNL_-FDO-HvSdT=eZR6ZhJNrF0OX2sVg@mail.gmail.com>
Subject: [ARM64][Raspberry Pi 5][RP1] Dom0 firmware clocks + RP1 OF node
 missing under Xen, VC4/DRM never probes
To: xen-devel@lists.xenproject.org
Content-Type: multipart/alternative; boundary="000000000000561ecf0649f79aea"

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

Hello Xen Developers,

I am working on Xen bring-up on a Raspberry Pi 5 (BCM2712 + RP1 over PCIe)
and am stuck with Dom0 firmware clocks, RP1, and VC4/DRM not probing
correctly. I am hoping for guidance on the *intended DT/Xen model for RP1
and Raspberry Pi firmware devices under Xen*.
Setup

   -

   Board: Raspberry Pi 5 (BCM2712, RP1 southbridge over PCIe)
   -

   Xen: 4.17.0 (xen-troops build)
   -

   Dom0 kernel:
   -

      Linux 6.19.0-rc5 (mainline)
      -

      Also tested Raspberry Pi downstream 6.6
      -

   Bootloader: U-Boot
   -

   Goal: Dom0 owns display/graphics; DomU gets a virtual display

Problem Summary

Dom0 never gets /dev/dri. The VC4/V3D/HVS DRM stack fails due to missing
clocks/firmware and RP1 not binding.

Key Dom0 dmesg errors:

raspberrypi-clk soc@107c000000:firmware:clocks: probe with driver
raspberrypi-clk failed with error -22
platform 1002000000.v3d: deferred probe pending: platform: supplier
soc@107c000000:firmware:clocks not ready
vc4_hvs 107c580000.hvs: Couldn't get core clock
vc4-drm axi:gpu: failed to bind 107c580000.hvs (ops vc4_hvs_ops): -2
rp1_pci 0002:01:00.0: Missing of_node for device
rp1_pci 0002:01:00.0: probe with driver rp1_pci failed with error -22

As a result:

   -

   raspberrypi-clk never binds
   -

   firmware clock/reset providers don=E2=80=99t come up
   -

   RP1 PCI device has no OF node
   -

   VC4 DRM never probes =E2=86=92 no /dev/dri

Device Tree / Overlay DetailsXen DT Overlay

I am using a Xen DT overlay based on xen-troops that enables HDMI, V3D,
firmware, clocks, reset, vcio, and assigns devices without IOMMU. This
overlay relies heavily on symbol fixups (__fixups__) and target =3D
<0xffffffff> fragments.

Excerpt:

   -

   Enables:
   -

      hdmi0, hdmi1, v3d, vc4, hvs, pixelvalve*
      -

      firmware, firmware_clocks, reset, vcio
      -

      rp1_clocks, bcm_reset, pcie_rescal
      -

   Uses xen,force-assign-without-iommu on most nodes

(Full file: bcm2712-raspberrypi5-xen.dtso)
HDMI / Dom0 Passthrough Overlay

This overlay sets up /chosen multiboot nodes, UART for Xen console, and
forces PCIe assignment.

Key parts:

dom0 {
  compatible =3D "multiboot,kernel\0multiboot,module";
  reg =3D <0x8000000 0x20000000 0x00 0x2000000>;
};

(Full file: hdmi-passthrough-dom0.dtso)
Boot Logs

Full Xen + Dom0 boot logs showing:

   -

   raspberrypi-clk failing with -EINVAL
   -

   rp1_pci missing of_node
   -

   VC4/HVS/V3D deferring and timing out

(Full log: bootlogs3.txt)
Observations

   1.

   Firmware node exists and is enabled in the DT passed to Dom0:

   /soc@107c000000/firmware {
       compatible =3D "raspberrypi,bcm2835-firmware", "simple-mfd";
       clocks { compatible =3D "raspberrypi,firmware-clocks"; status =3D "o=
kay"; };
       reset  { compatible =3D "raspberrypi,firmware-reset";  status =3D "o=
kay"; };
       vcio   { compatible =3D "raspberrypi,vcio";            status =3D "o=
kay"; };
   };

   Despite this, raspberrypi-clk fails probing very early with -22.
   2.

   RP1 enumerates correctly on PCIe:

   0002:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 PCIe 2.0
South Bridge [1de4:0001]

   But Linux reports:

   rp1_pci ... Missing of_node for device

   Which prevents:
   -

      rp1-clk
      -

      GPIO
      -

      reset
      -

      HDMI PHY
      -

      downstream display pipeline
      3.

   I attempted U-Boot DT overlays to attach an OF node at:

   /axi/pcie@1000120000/pci@0,0/dev@0,0

   but overlays frequently fail with:

   FDT_ERR_NOTFOUND

   unless I rely on symbol-based fixups.

Questions

   1.

   *What is the intended DT model for RP1 under Xen on Raspberry Pi 5?*
   -

      Should RP1 be represented as a proper OF node under the PCI endpoint
      in the Xen DT?
      -

      Or is Xen expected to synthesize this mapping internally?
      2.

   *Is raspberrypi,firmware-clocks supported in Dom0 under Xen on Pi 5?*
   -

      The driver probes but returns -EINVAL even when the DT node exists
      and is enabled.
      3.

   *Are there known patches/branches for Xen or DT that enable VC4/DRM on
   Pi 5?*
   -

      Specifically for firmware clocks, RP1, and HVS/V3D dependencies.

Reproduction Summary

Boot flow:

   1.

   U-Boot loads bcm2712-rpi-5-b.dtb
   2.

   Applies bcm2712-raspberrypi5-xen.dtbo
   3.

   Applies hdmi-passthrough-dom0.dtbo
   4.

   Boots Xen
   5.

   Loads Dom0 kernel as multiboot module

Result: Dom0 boots, but RP1 and firmware clocks do not bind, so VC4/DRM
never comes up.
------------------------------

Any guidance on the *correct DT/Xen integration model for BCM2712/RP1*
would be greatly appreciated. If there is a reference DT, patch series, or
recommended branch, I=E2=80=99d be happy to test and report back.

Best regards,
Alap

--000000000000561ecf0649f79aea
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><p>Hello Xen Developers,</p><p>I am working on Xen bring-u=
p on a Raspberry Pi 5 (BCM2712 + RP1 over PCIe) and am stuck with Dom0 firm=
ware clocks, RP1, and VC4/DRM not probing correctly. I am hoping for guidan=
ce on the <strong>intended DT/Xen model for RP1 and Raspberry Pi firmware d=
evices under Xen</strong>.</p><h2>Setup</h2><ul><li><p>Board: Raspberry Pi =
5 (BCM2712, RP1 southbridge over PCIe)</p></li><li><p>Xen: 4.17.0 (xen-troo=
ps build)</p></li><li><p>Dom0 kernel:</p><ul><li><p>Linux 6.19.0-rc5 (mainl=
ine)</p></li><li><p>Also tested Raspberry Pi downstream 6.6</p></li></ul></=
li><li><p>Bootloader: U-Boot</p></li><li><p>Goal: Dom0 owns display/graphic=
s; DomU gets a virtual display</p></li></ul><h2>Problem Summary</h2><p>Dom0=
 never gets <code>/dev/dri</code>. The VC4/V3D/HVS DRM stack fails due to m=
issing clocks/firmware and RP1 not binding.</p><p>Key Dom0 dmesg errors:</p=
><pre><code>raspberrypi-clk soc@107c000000:firmware:clocks: probe with driv=
er raspberrypi-clk failed with error -22
platform 1002000000.v3d: deferred probe pending: platform: supplier soc@107=
c000000:firmware:clocks not ready
vc4_hvs 107c580000.hvs: Couldn&#39;t get core clock
vc4-drm axi:gpu: failed to bind 107c580000.hvs (ops vc4_hvs_ops): -2
rp1_pci 0002:01:00.0: Missing of_node for device
rp1_pci 0002:01:00.0: probe with driver rp1_pci failed with error -22
</code></pre><p>As a result:</p><ul><li><p><code>raspberrypi-clk</code> nev=
er binds</p></li><li><p>firmware clock/reset providers don=E2=80=99t come u=
p</p></li><li><p>RP1 PCI device has no OF node</p></li><li><p>VC4 DRM never=
 probes =E2=86=92 no <code>/dev/dri</code></p></li></ul><h2>Device Tree / O=
verlay Details</h2><h3>Xen DT Overlay</h3><p>I am using a Xen DT overlay ba=
sed on xen-troops that enables HDMI, V3D, firmware, clocks, reset, vcio, an=
d assigns devices without IOMMU. This overlay relies heavily on symbol fixu=
ps (<code>__fixups__</code>) and <code>target =3D &lt;0xffffffff&gt;</code>=
 fragments.</p><p>Excerpt:</p><ul><li><p>Enables:</p><ul><li><p><code>hdmi0=
</code>, <code>hdmi1</code>, <code>v3d</code>, <code>vc4</code>, <code>hvs<=
/code>, <code>pixelvalve*</code></p></li><li><p><code>firmware</code>, <cod=
e>firmware_clocks</code>, <code>reset</code>, <code>vcio</code></p></li><li=
><p><code>rp1_clocks</code>, <code>bcm_reset</code>, <code>pcie_rescal</cod=
e></p></li></ul></li><li><p>Uses <code>xen,force-assign-without-iommu</code=
> on most nodes</p></li></ul><p>(Full file: <code>bcm2712-raspberrypi5-xen.=
dtso</code>)</p><h3>HDMI / Dom0 Passthrough Overlay</h3><p>This overlay set=
s up <code>/chosen</code> multiboot nodes, UART for Xen console, and forces=
 PCIe assignment.</p><p>Key parts:</p><pre><code>dom0 {
  compatible =3D &quot;multiboot,kernel\0multiboot,module&quot;;
  reg =3D &lt;0x8000000 0x20000000 0x00 0x2000000&gt;;
};
</code></pre><p>(Full file: <code>hdmi-passthrough-dom0.dtso</code>)</p><h3=
>Boot Logs</h3><p>Full Xen + Dom0 boot logs showing:</p><ul><li><p><code>ra=
spberrypi-clk</code> failing with <code>-EINVAL</code></p></li><li><p><code=
>rp1_pci</code> missing <code>of_node</code></p></li><li><p>VC4/HVS/V3D def=
erring and timing out</p></li></ul><p>(Full log: <code>bootlogs3.txt</code>=
)</p><h2>Observations</h2><ol><li><p>Firmware node exists and is enabled in=
 the DT passed to Dom0:</p><pre><code>/soc@107c000000/firmware {
    compatible =3D &quot;raspberrypi,bcm2835-firmware&quot;, &quot;simple-m=
fd&quot;;
    clocks { compatible =3D &quot;raspberrypi,firmware-clocks&quot;; status=
 =3D &quot;okay&quot;; };
    reset  { compatible =3D &quot;raspberrypi,firmware-reset&quot;;  status=
 =3D &quot;okay&quot;; };
    vcio   { compatible =3D &quot;raspberrypi,vcio&quot;;            status=
 =3D &quot;okay&quot;; };
};
</code></pre><p>Despite this, <code>raspberrypi-clk</code> fails probing ve=
ry early with <code>-22</code>.</p></li><li><p>RP1 enumerates correctly on =
PCIe:</p><pre><code>0002:01:00.0 Ethernet controller: Raspberry Pi Ltd RP1 =
PCIe 2.0 South Bridge [1de4:0001]
</code></pre><p>But Linux reports:</p><pre><code>rp1_pci ... Missing of_nod=
e for device
</code></pre><p>Which prevents:</p><ul><li><p>rp1-clk</p></li><li><p>GPIO</=
p></li><li><p>reset</p></li><li><p>HDMI PHY</p></li><li><p>downstream displ=
ay pipeline</p></li></ul></li><li><p>I attempted U-Boot DT overlays to atta=
ch an OF node at:</p><pre><code>/axi/pcie@1000120000/pci@0,0/dev@0,0
</code></pre><p>but overlays frequently fail with:</p><pre><code>FDT_ERR_NO=
TFOUND
</code></pre><p>unless I rely on symbol-based fixups.</p></li></ol><h2>Ques=
tions</h2><ol><li><p><strong>What is the intended DT model for RP1 under Xe=
n on Raspberry Pi 5?</strong></p><ul><li><p>Should RP1 be represented as a =
proper OF node under the PCI endpoint in the Xen DT?</p></li><li><p>Or is X=
en expected to synthesize this mapping internally?</p></li></ul></li><li><p=
><strong>Is <code>raspberrypi,firmware-clocks</code> supported in Dom0 unde=
r Xen on Pi 5?</strong></p><ul><li><p>The driver probes but returns <code>-=
EINVAL</code> even when the DT node exists and is enabled.</p></li></ul></l=
i><li><p><strong>Are there known patches/branches for Xen or DT that enable=
 VC4/DRM on Pi 5?</strong></p><ul><li><p>Specifically for firmware clocks, =
RP1, and HVS/V3D dependencies.</p></li></ul></li></ol><h2>Reproduction Summ=
ary</h2><p>Boot flow:</p><ol><li><p>U-Boot loads <code>bcm2712-rpi-5-b.dtb<=
/code></p></li><li><p>Applies <code>bcm2712-raspberrypi5-xen.dtbo</code></p=
></li><li><p>Applies <code>hdmi-passthrough-dom0.dtbo</code></p></li><li><p=
>Boots Xen</p></li><li><p>Loads Dom0 kernel as multiboot module</p></li></o=
l><p>Result: Dom0 boots, but RP1 and firmware clocks do not bind, so VC4/DR=
M never comes up.</p><hr><p>Any guidance on the <strong>correct DT/Xen inte=
gration model for BCM2712/RP1</strong> would be greatly appreciated. If the=
re is a reference DT, patch series, or recommended branch, I=E2=80=99d be h=
appy to test and report back.</p><p>Best regards,<br>Alap</p></div>

--000000000000561ecf0649f79aea--


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 06:50:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 06:50:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220046.1528765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnWig-0003O4-Qf; Wed, 04 Feb 2026 06:50:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220046.1528765; Wed, 04 Feb 2026 06:50: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 1vnWig-0003Nx-Nr; Wed, 04 Feb 2026 06:50:34 +0000
Received: by outflank-mailman (input) for mailman id 1220046;
 Wed, 04 Feb 2026 06: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnWif-0003Nr-Uf
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 06:50:33 +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 cc795085-0195-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 07:50:31 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4806f80cac9so35430485e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 22:50:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48310859101sm19825735e9.8.2026.02.03.22.50.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 22:50:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc795085-0195-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770187831; x=1770792631; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TCeKq1nEU8lvHTb7ifcHIk6Jg/vgURV8VPxvCoBXauk=;
        b=JKFvsPEiR+ZUC8lNdlLqF5Wf3iWrAJBzM5CBfUIPDzbciOIKyyI03RxkvS5be4LLzR
         21DfUXaUzslzi9j6eVwxA24gJUQjRaWslw2SXMBOdQrKuL0R0ComS3Sq0JzGlJv1iaOS
         XEyGZ82+bHY3QhWkwcJ64lAEDq3GtnKUFVzwKLkzE/lrgAWLdLnHGwXHphrlyGEPnHPO
         8+KMxQVDy60epafL2SCM7IMlPDc6gHC12sTLHuN1szRihqvhxSIA8qnPALV/MqNEPGIZ
         dsLIG8ujdaLd13P6gYOnIrZBTGNhna5C0INhSPBG2iOpVftwE09ulb5sH9EIobSyG5Nt
         hktw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770187831; x=1770792631;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TCeKq1nEU8lvHTb7ifcHIk6Jg/vgURV8VPxvCoBXauk=;
        b=TvMNWCrCDH4BDGkLr86TxIaAUkAHoFw8ER+iiRToJMZ6C8W3dRLDXVzMLe6SNo06E9
         LPf7iM8mjqHh2AY8plgX8073lfX/n5RUFsrMDAG9NfvEBvFF8t0EVmf711tCSunRDm5M
         Kd29cfh3J9ylPUKEay4dk4rfSR71XCHLHCzeNjt52DsqxIWj79AznbKMac9JbNZuu0vm
         kLSp8/sWjQ2uW1e+ncJftrPT0b2g7lfvOAx5MEOyUbsFA/sqPBTfBZrmwUMDiV+VEK0f
         iQ3pmnoL/jywM0/ttSQeZBczIxSADrFbS8ywgehBIMVAaLj5QOk/6eplQYII3gOhUZmP
         Canw==
X-Forwarded-Encrypted: i=1; AJvYcCWY7v8kCu/6j2d+iC5cZo0hRLRWdtn88GcPvIuI4D/qPcjE0Er6C9uV0TMy8/prSywUzzX2EIv002k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwMU0NKMnhBNABDmqmBH76ceZx4Q+gw1WlyZy+xHhKpjS9QJvj1
	S2fLhvm48dikcBcZFiulE2LHX0zx4PADCpEt2q4FvZWwyFHAl5cDPkuosO1D1jGv3w==
X-Gm-Gg: AZuq6aKhZE6i2JOfXq4OyKbYsCSCkcTwNp3tQUREPoNL6OmEGzPJa0hjEK1/RcTUfX7
	GOPmAqPKKPRAi/wRcw4M6AYg60vCaSizKLdFsRNIdnz3ItXBqEtPlkAO0DDYGZVOpzJF1ri4u/o
	LfPMnMOUlUjaUZuN827hhx0Xt1IaW9aMTsBUvKKkM8VmFQf8GmbSGAi/20JwZz9M1xaOhUyutM2
	mnzy8niCKfv4VPoIzwCnnIk+H987g+2Bmfzzq9o/Kr6kSCl8O3JU1C0/77MHQAFBhN6y69YYR3y
	KbtUDoLJVTgtldeW0fS0+yjEXKvBCTKHsd+e4rh25mRggCWIeh5PSeI801QiOtkr9fajrnp0AYt
	Zq9xsHR6RqKPFIP/+ATCBP5IZP98c6MwDnAocq57PaLnqvqYWvmRVx7UfJ8Zl/DIY/fUHrkq24h
	1Ap4igsBNUMlcB3Qd08XXuFz1PzTDpeRXjKx+AEDvWHuFFGkvZUZejjZGqcmBSH/2FMDdvnWAg8
	rA=
X-Received: by 2002:a05:600c:1387:b0:477:7b16:5f9f with SMTP id 5b1f17b1804b1-4830e981f8fmr29600305e9.31.1770187831231;
        Tue, 03 Feb 2026 22:50:31 -0800 (PST)
Message-ID: <a8ab7bd7-3e17-43e2-bbe1-3503b6eda7ac@suse.com>
Date: Wed, 4 Feb 2026 07:50:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/16] xen/riscv: introduce sbi_set_timer()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <2fd4da2ad7c4af2241368edba739b24d0e976552.1769099885.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: <2fd4da2ad7c4af2241368edba739b24d0e976552.1769099885.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.01.2026 17:47, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/sbi.h
> +++ b/xen/arch/riscv/include/asm/sbi.h
> @@ -29,6 +29,10 @@
>  
>  #define SBI_EXT_BASE                    0x10
>  #define SBI_EXT_RFENCE                  0x52464E43
> +#define SBI_EXT_TIME                    0x54494D45
> +
> +/* SBI function IDs for TIME extension */
> +#define SBI_EXT_TIME_SET_TIMER          0x0

Nit: Do you really mean to have the time extension IDs above ...

>  /* SBI function IDs for BASE extension */
>  #define SBI_EXT_BASE_GET_SPEC_VERSION   0x0

... the base extension ones?

> @@ -134,6 +138,20 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
>  int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
>                                  size_t size, unsigned long vmid);
>  
> +/*
> + * Programs the clock for next event after stime_value time. This function also
> + * clears the pending timer interrupt bit.
> + * If the supervisor wishes to clear the timer interrupt without scheduling the
> + * next timer event, it can either request a timer interrupt infinitely far
> + * into the future (i.e., (uint64_t)-1), or it can instead mask the timer
> + * interrupt by clearing sie.STIE CSR bit.
> + * The stime_value parameter represents absolute time measured in ticks.
> + *
> + * This SBI call returns 0 upon success or an implementation specific negative
> + * error code.
> + */
> +extern int (*sbi_set_timer)(uint64_t stime_value);

__read_mostly or even __ro_after_init?

> @@ -326,6 +358,14 @@ int __init sbi_init(void)
>              sbi_rfence = sbi_rfence_v02;
>              printk("SBI v0.2 RFENCE extension detected\n");
>          }
> +
> +        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
> +        {
> +            sbi_set_timer = sbi_set_timer_v02;
> +            printk("SBI v0.2 TIME extension detected\n");

Is this really relevant to log especially in release builds? IOW can this at
least be downgraded to dprintk()?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:14:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:14:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220058.1528775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnX63-0006et-J7; Wed, 04 Feb 2026 07:14:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220058.1528775; Wed, 04 Feb 2026 07:14:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnX63-0006em-GY; Wed, 04 Feb 2026 07:14:43 +0000
Received: by outflank-mailman (input) for mailman id 1220058;
 Wed, 04 Feb 2026 07:14: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnX62-0006eg-T9
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:14:42 +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 2c3f8bf9-0199-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 08:14:41 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso5249485e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 23:14:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43618058473sm4525135f8f.22.2026.02.03.23.14.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 23:14:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c3f8bf9-0199-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770189280; x=1770794080; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dL1+4WVFhRC/gocRsASuVZkJUVAVujnW+FddS0cyUbQ=;
        b=Lf+hobJ7gQKt46LKkI/ILjwvB+Vl1RS4GVuYoZO+MhT/qX3EFyfjPMqv5TEZz3diXX
         ra3W0dW4nIJH/Bx1BxV+kW+fcIoVcl5Uf+AooDhakWI7NtucwoFh7yi8rLYvwQGUNQVP
         gnNmnO8O9KpqbKNdrAhihUJtxmhaM0tDCxQbriEZFXVSSpa/xHwP1WWjv9Y5jX9Lt44d
         dfcFhFVB+EaD9ZS//rDwilYbrk/NV5FmZlKBbYwzwuGcImI0IujVPmuf7R3b6X8PHrSq
         Wh0D8QXeRBnYE2/5zFOoDmo7+Mty6nLhPDzvIS21c7qFQIVScEb1S/oz6gk551vov9b2
         n7kw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770189280; x=1770794080;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dL1+4WVFhRC/gocRsASuVZkJUVAVujnW+FddS0cyUbQ=;
        b=As7Ck5SnyIynYk/BuuxJgUkii5+66K/tbTalDrEkRzf22/safL9XvRDM8bcuJy6F8s
         pWExiiaF4MMzxeYlk85hcOxrVDeGfSo93ZeX62KGFABWT2tJyaRsXDLXf4uIg3AsuuuM
         1O+MG8rwPh/gwP4YFtOsOoI5IsHcPVkQaXbt0jA3I1AYCXJmi576b72eNsQ8JPRn+jym
         /ZtUH2SaDiRtwkjJrjOT7GnopseMzExuDmFHrf7CZ5ceJWPDRxdou8DzMCdMUs/xoPKA
         5sNxg0jkpYhRHAoRGx3O0BGr448zLkRddwdvvBj7L1aFMguAzIMXgSlCIZYCH6aOaDTS
         jO9Q==
X-Forwarded-Encrypted: i=1; AJvYcCUEZSVA7UZHfbOhmqmVhLNc33FXC8mpEUCDZfAqHytNgEUCmeDNdQ3Du0uqmKzTO3hoL1rXDeCXVMM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwqjovZ0VDv9gtVtWWUo40oxP+IJ1v7q/wRR5UGzKm0mk/0QJkq
	xBOh+F0gu/B3gm5B8LoWrggljjhQ+oJlubM+vmOujvvesrMx9V0zpoA4vYwKFynhSA==
X-Gm-Gg: AZuq6aJ0lE/r89UB4JYCO/Z1gVL+UYR1sszYcC++lllP+UJZjsJewpYN59AofuJ4cF5
	HJa7CTUZng5W6DYqt4CvyF4IvDIupaLWZg3XYxs7fPo3/NabUn/33nrxB15MgyuEAmPCpofNq0L
	4qr0J/zJBh6ZqE5bvh3S0LB9yViP//HECDmFcbRT7wk85ZwblgTDFdKxC2bvPM3yoayUQmz2IVy
	B1rNi5I4gP48CvC5bXD5Va9+XV1YXXSpBWhmkYYfe8vRCxXALeDNnYfSE0B/NBb1rA/nQXaVn1I
	6oep4ztu3UiV5FMADoy78gHaRrcGPuu0N3MwravVigGtLPRjbDsi14cfU6k9j5kvKewnVG3rRyl
	trEWuGIna14z9jnmtyrxfZ+Uyzs8+wXmTcq+S8YnhK9j9E+LC8IAvh9DjpuzGVM50WAMP//HE5m
	9Fx4SnATQCRO7L91qEitS5Toqvua3URbsK7K+JIzoHpGmX7xjRALs2QVzs3pRBZn3eSp1Jtn6bN
	EM=
X-Received: by 2002:a05:600c:5493:b0:480:1c1c:47d6 with SMTP id 5b1f17b1804b1-4830eb286f1mr24399425e9.6.1770189280467;
        Tue, 03 Feb 2026 23:14:40 -0800 (PST)
Message-ID: <0a437580-a373-4aeb-a153-b3dca0cf2bb7@suse.com>
Date: Wed, 4 Feb 2026 08:14:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/2] xen/console: handle multiple domains using
 console_io hypercalls
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 grygorii_strashko@epam.com, anthony.perard@vates.tech, michal.orzel@amd.com,
 julien@xen.org, roger.pau@citrix.com, jason.andryuk@amd.com,
 victorm.lira@amd.com, andrew.cooper3@citrix.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2601291404410.2238666@ubuntu-linux-20-04-desktop>
 <20260129220858.2371938-1-stefano.stabellini@amd.com>
 <0fc9a80a-8621-4ce4-b2f9-c102e975b05b@suse.com>
 <alpine.DEB.2.22.394.2602031502000.3175371@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.2602031502000.3175371@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.02.2026 00:02, Stefano Stabellini wrote:
> On Tue, 3 Feb 2026, Jan Beulich wrote:
>> On 29.01.2026 23:08, Stefano Stabellini wrote:
>>> @@ -555,7 +566,10 @@ static void console_switch_input(void)
>>>  
>>>          if ( next_rx++ >= max_console_rx )
>>>          {
>>> +            nrspin_lock_irq(&console_lock);
>>
>> As indicated earlier, you can't know IRQ state in anything down the call
>> tree from serial_rx().
> 
> I'll switch to the irqsave/restore versions in console_switch_input

I've seen that you already sent v9, but seeing how getting the locking right
has proven to be difficult, I have two more remarks towards this.

1) Can the locking additions to existing code please be split out into a
   separate patch?

2) As all of this is for dom0less only (for now at least), did you consider
   to make all of these changes dependent upon a new Kconfig option, so to
   avoid impacting other environments in case issues remain when this has
   gone in?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:27:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:27:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220067.1528785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXIY-0000K4-LJ; Wed, 04 Feb 2026 07:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220067.1528785; Wed, 04 Feb 2026 07:27:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXIY-0000Jx-IH; Wed, 04 Feb 2026 07:27:38 +0000
Received: by outflank-mailman (input) for mailman id 1220067;
 Wed, 04 Feb 2026 07:27: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnXIX-0000Jr-PO
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:27:37 +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 f8800ea5-019a-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 08:27:33 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-432d2c96215so6049510f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 23:27:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436180659b8sm3908468f8f.43.2026.02.03.23.27.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 23:27:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f8800ea5-019a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770190053; x=1770794853; 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=dkHK1xR5LyDogbbBR9kB4+iKJzwueKzkK3V+QZTM/+A=;
        b=T3G4XnicaaP+nlx032o2A3g4dwFTdT73TpUh1a1WO8iVGW11LDuZAdF2u3vE3RyeE+
         0mH/iyj2AmjZ8loD4qZJjEcwVyYS3x19HgYgd6/y+qPerf1lTZeVb61NUTr4V21iu2QD
         CpZ8q0wEdtwvKikyUKojH/Sryk/9wzXofeZ5BvmEVhGiDG++hdStaUfZAgTNXZmjNCRh
         JUFW3XfxkKWNY/L6+/WQBl1cKdwcCbyFlHr/DV9rDJA47zMKWSkxnEUVl3zM76B+KXNR
         duBJg7oZJ9bPDL5PcLDH+60WBOBHaNcUX9xc9pMwxnwDsgi0dWX3McnUOid7mzzLMxNj
         PRDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770190053; x=1770794853;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dkHK1xR5LyDogbbBR9kB4+iKJzwueKzkK3V+QZTM/+A=;
        b=ZSdBcucUUvxz+cUuRoXvLPKqOPAQtPupYGNqKP9hE7ZfY/d+4sgXkzGxRs3eiEA1tO
         5zkILSYwZ4sqaKuwV3IWTDGiRD2NuXdv6TvLQ6ooi9tEaaFKwvjsdtoNnCaIjBmQ9drS
         xtxgo3kBlu+Vyo9pirTNGT3KNy+cNquvFXz8zA5NWWaKC5G64CPj8PkEbweVmmKXFpzT
         8vsxFvIPpn5IZUY0NqGBz/Wc53LdJOCqVyZm+qeZtHfLTYoSdQCCqOw3i4E9vt/VnDZ7
         9gFm6jNOvxPQ6YNb3ZsAiN065P0Qy5/6ldaGrBahhPbDCsMkgRiII7P9LtKFPIt65f7C
         S4MA==
X-Forwarded-Encrypted: i=1; AJvYcCXE4zWA8OcxgWGWzr0PaV9Hjjogi5EQSuZ/+RwTaR3jlDtCJf3ghQP0Sn0mZbPbXEdeooq1Rqh8ibY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyw4FNLab7ICTHbBUxSuhIERe5t3ky0kCGBvZaIEjZvrF6LebfK
	aNbsC1vS7OPX0q1SWxCHkRLq2agYIMbwmWHri5edc6Lqe1BUtICc1lZ6rpa/DFiA+zjcNw+Zu+I
	dQMY=
X-Gm-Gg: AZuq6aJ8Gn0KbYNaeSjiujOpk3KTZG4gq2BwQcWsKRsqxUXlQwpsuWLlfjS1sqan/BO
	gxn5tVk22D4Bahg5FV7Tj+RPo4mi0zTWxBhGUWZnqaIMYmk6qZFDb237qTH3N/mY5M97wt1pdi5
	vlBKX77DLHW2+rc8dyGQAlFEgEe0zm3DNvQmsY7Q2TCwviYrhEsYNbnX/1jpB8izamFfZPUMhBR
	roL632psQMRcgPFpJG+FZuMQw0788uSaiLUjLV5FXdaYUONrXdJH4WuLwyd5pD3AuCgfZsEq6+n
	EB66Lf3wO51hiZPyXN7FD30dxPgViconUNgZaBvhOgdd8mjJsl3kqaB+7r7slN8WtV+8S6BqNG3
	7LqYtVGr/QdJ+BXK4OY4GjaDI8ShZrLH+VCGxlSuWiVFYfGbeRihaEwC12ybJWe2Jl3nFQDMFfp
	GNJJ0L9dygWKi8ic1j98/W21JHRHf9bBluemyuxjheyHha9Ju+EL5FK+HLdZ+/dUQOp9e5Wm/mv
	/Y=
X-Received: by 2002:a05:6000:2310:b0:431:32f:314d with SMTP id ffacd0b85a97d-43617e405eemr2736279f8f.25.1770190052664;
        Tue, 03 Feb 2026 23:27:32 -0800 (PST)
Message-ID: <9396b300-2698-4bb1-a856-0a4b3bcc6e6a@suse.com>
Date: Wed, 4 Feb 2026 08:27:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Ping: [XEN][PATCH v4] xen: make VMTRACE support optional
From: Jan Beulich <jbeulich@suse.com>
To: Tamas K Lengyel <tamas@tklengyel.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>,
 Alexandru Isaila <aisaila@bitdefender.com>,
 Petre Pircalabu <ppircalabu@bitdefender.com>,
 Teddy Astie <teddy.astie@vates.tech>, Penny Zheng <Penny.Zheng@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Grygorii Strashko <grygorii_strashko@epam.com>
References: <20251119193120.1011448-1-grygorii_strashko@epam.com>
 <90ac9206-10ce-4c46-83e3-82ac8ef0d152@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: <90ac9206-10ce-4c46-83e3-82ac8ef0d152@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.12.2025 11:57, Jan Beulich wrote:
> On 19.11.2025 20:31, Grygorii Strashko wrote:
>> From: Grygorii Strashko <grygorii_strashko@epam.com>
>>
>> The VMTRACE feature is depends on Platform/Arch HW and code support and now
>> can be used only on x86 HVM with Intel VT-x (INTEL_VMX) enabled.
>> This makes VMTRACE support optional by introducing HVM Kconfig option:
>> - CONFIG_VMTRACE to enable/disable the feature.
>>
>> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
>> ---
>> changes in v4:
>> - format changes
>>
>> changes in v3:
>> - drop vmtrace stubs for HVM=n case from hvm.h (VMTRACE depnds on HVM)
>> - hvm_vmtrace_reset() fix return err code
>> - add comment about using func declaration without definition
>>
>> changes in v2:
>>  - fix comments from Jan Beulich
>>  - move CONFIG_VMTRACE in HVM
>>  - drop HAS_VMTRACE
>>
>> v3:
>>  https://patchwork.kernel.org/project/xen-devel/patch/20251114142207.279834-1-grygorii_strashko@epam.com/
>> v2:
>>  https://patchwork.kernel.org/project/xen-devel/patch/20251112202442.3879997-1-grygorii_strashko@epam.com/ 
>> v1:
>>  https://patchwork.kernel.org/project/xen-devel/patch/20251031212005.1338212-1-grygorii_strashko@epam.com/
>>
>>  xen/arch/x86/domctl.c                   |  4 +++
>>  xen/arch/x86/hvm/Kconfig                | 12 +++++++++
>>  xen/arch/x86/hvm/vmx/vmcs.c             |  2 ++
>>  xen/arch/x86/hvm/vmx/vmx.c              | 11 ++++++++
>>  xen/arch/x86/include/asm/guest-msr.h    |  2 ++
>>  xen/arch/x86/include/asm/hvm/hvm.h      | 36 ++++++++++---------------
>>  xen/arch/x86/include/asm/hvm/vmx/vmcs.h |  2 ++
>>  xen/arch/x86/mm/mem_sharing.c           |  2 ++
>>  xen/arch/x86/vm_event.c                 |  8 +++---
>>  xen/common/domain.c                     | 10 +++++++
>>  xen/common/memory.c                     |  6 +++++
>>  xen/common/vm_event.c                   |  3 ++-
>>  xen/include/xen/domain.h                |  4 +++
>>  xen/include/xen/sched.h                 |  4 +++
>>  14 files changed, 80 insertions(+), 26 deletions(-)
> 
> Tamas - any chance of an ack here?

I guess I will time out on this early next week.

Jan

> Grygorii - chasing missing acks is generally the submitter's responsibility.
> 
> Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:30:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:30:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220078.1528795 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXLN-0001p5-1O; Wed, 04 Feb 2026 07:30:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220078.1528795; Wed, 04 Feb 2026 07:30: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 1vnXLM-0001oy-Ua; Wed, 04 Feb 2026 07:30:32 +0000
Received: by outflank-mailman (input) for mailman id 1220078;
 Wed, 04 Feb 2026 07: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnXLL-0001os-6s
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:30:31 +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 614ad363-019b-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 08:30:29 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48069a48629so66711705e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 23:30:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48310919211sm34663975e9.11.2026.02.03.23.30.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 23:30:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 614ad363-019b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770190228; x=1770795028; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=R+SI8jM9ndPj689djaL180Fqt2pJJuviBfyWzysj/Sk=;
        b=YURA88qpSIV4mFng1sMWcR/WfYKbqs5p0tzhMSpg9wvaym5dsmtLyTB4m7SkS8Ws1q
         ZrCNpkpxTk6SHX+0jfK2+LMA6uyJjfwXo2f493fs0yz9bMd7EI84fjSTINRFLnoM1Kcl
         vf925U19sbpERvw5sA8Vy+JCcdCEaJiXftsd/DECHuBN5kki3JtY7kCNr9QMWPethrep
         GR0SaSH9cQ5tzzbqpZ9G8/kK/dq1fFbp2NFL2TZhkZqTRJPFbRGizWA7mS0A6he29F7l
         wPBUoluSeyCKaMeO/oFB5EMeoy5k88g1raizTi5YiebSnV5TjXEd/4Jyy+yIQFc7aLfJ
         wXCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770190228; x=1770795028;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=R+SI8jM9ndPj689djaL180Fqt2pJJuviBfyWzysj/Sk=;
        b=O7Edmtk8D37X/ISKnfsYlcOAsxQ8cW3gOR/ALNtgYoT65H0MaKwnzO07JQH1HAC0zu
         Flroj+iZCg62a5Cj+X4g9XCgcjvNw/a1HxsWjX7Y9SuA4ZkjPVYxeSG8Jxsnz2OBPwQ/
         xm96aOosZKvGBm2zdAW6t2PFlf7kDfwejZMAzkWzWJach9A/krQ/7hXg/VeO7F5Bd8Se
         NsUZoSjdCvF0plqMqNdvxxupoznKi1hrqyDC/RGpIF1wU6JjE5b9tlsWzlHP4KXbyl82
         dy6SWhKmJIirxLn53J3PM54wxAj7LtdnEicGIWRH0mUmWku5TBt5ZgGj3oZ1mE9lXbJa
         Q6eg==
X-Forwarded-Encrypted: i=1; AJvYcCWHolvj4TBcYce6UE1M7AdoECkftuhgSgzz6WZgZIbvVChOqr64HrSDRbTJ5zzZuNzQtuVXa2YR+d8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxF7n3uaIMfJjV/qBOwAk5029JS93TfTv7P8XAzH1mDbWMU1sVq
	LSV/ms7KvRY17IGrxLtA+hH8Zk/nJX5As/+3DYd1LwN8BbdyKyMqhbfe8Ar8RkEAfg==
X-Gm-Gg: AZuq6aJ6KcQEsPvkRjwRexm1LZ0T4ye6/UUz2LaLGdYcRqka6OwJSDk8WIojbsHM3hz
	Je87CKl7RY3xeQ9WVVxMWnvTKfV3+UJD/iMgHbfXluoaZlSxFT05Xq0kLofW6R8yXEcm1TTCAL6
	0ESGhQ5SyBX86gm+YfZwDAEYL0WTQFFsOHLlrwDbVsRDCz41JTQ1rU90zQ9A+lqf4zUupwsbfcR
	w66cIsDFDzokMSmw3Nj7ntE/ErN1W4wVxMnA04C/sf7rN/Kcmpgu57tCxck29uthM3rYemmjnQj
	dMdTXESzo0iUPJX7dcXY7C7KEVxZZ8PlSJ48zsxabJeIrO7fV1FpMOUMAQH5fb0r8ryY/cWHwl8
	OtIMhD4hUW1apXKZsTO6vmJ9X4IpWpstcAqJaS1BNGUqbZ8h80CcNyjrbAWmp7iX8kLB6NOZMen
	OriwQZBmseURznHcoId32aq7qA281nxr+k7lx3Bdm6ruDs/piodR9bOgHgGuRvSFl3Za6p82IUk
	fI=
X-Received: by 2002:a05:600c:8b38:b0:47e:d943:ec08 with SMTP id 5b1f17b1804b1-4830e98aa59mr22619115e9.28.1770190228511;
        Tue, 03 Feb 2026 23:30:28 -0800 (PST)
Message-ID: <a6f0a079-dcb0-4fae-b8c1-e33c0df8c0c5@suse.com>
Date: Wed, 4 Feb 2026 08:30:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 1/4] xen/console: use ACCESS_ONCE for console_rx
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: grygorii_strashko@epam.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
 <20260203230757.3224547-1-stefano.stabellini@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: <20260203230757.3224547-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.02.2026 00:07, Stefano Stabellini wrote:
> There can be concurrent reads and writes to the console_rx variable so
> it is prudent to use ACCESS_ONCE.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:35:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:35:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220091.1528806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXQS-0002SL-ME; Wed, 04 Feb 2026 07:35:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220091.1528806; Wed, 04 Feb 2026 07:35: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 1vnXQS-0002SE-J5; Wed, 04 Feb 2026 07:35:48 +0000
Received: by outflank-mailman (input) for mailman id 1220091;
 Wed, 04 Feb 2026 07:35: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnXQQ-0002Rz-Id
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:35:46 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d74e244-019c-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 08:35:45 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6193.namprd03.prod.outlook.com (2603:10b6:610:d0::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 07:35:41 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 07:35: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: 1d74e244-019c-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GQDEgY5ZuNXNCxiZ+Aqc0HvfurGChnVK6eqHpOuhGQN+bttlF62XfxSklXFQwSxajQ1SEaFRDRjQ9lrNM43ui2itevK2vgqyKHgigMvrj0uPpgMf3Go9Ab4aHyPJRZjnJmfnR+X7b5IdscWRjOEy5JjboFITUvVqr8Q7UUvXFCGpCBbXIWr3om8I8dRWx2CPvpmBDOXGUSYMT1Jj5DK47DS/Dof3YUmCPibC7lQgBrUefSI/rLtOcA1foty8DmbvpqE7ojM4wOWObbNhws81qAhZu4jRcEDBeQWCMi9xlXDebFiW9qO3OyV9u6t2Hh+4iw2pnlAnCP+qHzqWtQHT8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JCuPzVhmIQA4R9yXsSRCBeP/o1eGAWXwnmLxQpdbBuw=;
 b=kIfNNs95kdiIgpWn9m3K2Ie9FQE3cIcFbYO2EyILnbLFoJddu3Pczth8NHH3GzWbIvoKw5F7RZGsLNbpApGApPQ0jmrPU9XgpBFIxZUmPPYv+aauN4GLwGLF5Cd7PKRWd+HP1HimJK9n8mrgKg9ephIaohqbvxmLEtb6hvYTlotc3/hh9A7E2Rhmrzqg80AfvpJmezzM9Q8UulkEOjI/ff6hUx864gWNEvxqQBpHjwG19S+Hit6bwguMvBeUgTyw6f6USuiD5N/iaBVZutXA++EuAyiu1w/848rsMRlXrnvxfFzlK4GbeGC/Bnw97qTnuEYmWGRD0D8YQQawHAnaOg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JCuPzVhmIQA4R9yXsSRCBeP/o1eGAWXwnmLxQpdbBuw=;
 b=M9K5CKvVhYflrTaILZiT+L+8SoPdRwUPfriruY67YTsQfD53D4jZr1/nWt8IIB+0LMuowaMUvKSrE22LK1p1Ds2cznU+618t5XaXz3wqngfNrA4ihi62VIWXTgkZaySMEdKG5MEpQIhFBiS3pTtomqWa1Ge+cZf2wssBYIv2O0g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 08:35:38 +0100
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/P2M: correct type use in p2m_put_gfn()
Message-ID: <aYL2yt0g8HGdpOTA@Mac.lan>
References: <1ecefc98-f1c2-4116-95bf-a86c3b066843@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1ecefc98-f1c2-4116-95bf-a86c3b066843@suse.com>
X-ClientProxiedBy: MA3P292CA0022.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB6193:EE_
X-MS-Office365-Filtering-Correlation-Id: 30b7bf86-db7d-4e61-4f31-08de63bfffa9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N3laLy9vTVQ5SHliemIwb3ROMzFkY1RqRDhUQ0tNNGdMYytESVU4TlJ6WC9E?=
 =?utf-8?B?ZzlPZldSSlVtTElOV1RsbjQ4SXhtdUVmenp5UW5wY2ZTcG5Jb0lKK3Z4Y05v?=
 =?utf-8?B?K1J4UDlwbmNISnpWSkFKd0Q2bHZYclZVWTZqZGFkdXJPVHppTDlicE5PVTRy?=
 =?utf-8?B?b2k2ZUJEM24xVm9uUkVsbGxnTmtkeGFhN2x5dzJwSGQva1hja29hcnpzU0tj?=
 =?utf-8?B?UGxsMXlHaE9CRktHeCs1bWFBVlFGcHB4TklyalVvTXJpUXdMMXg1bEFxZ21G?=
 =?utf-8?B?YVRkbGxhV01kdThVU3B2aGNWVzl4aU9DVHRTK2ZldGVQRmQzaU5aeUF4aThL?=
 =?utf-8?B?cVRoTjA1bXVUZGJ4VDl0SzdDd0x0dnRKRDdyT01yR1dZZkY1OFN3clhuc1h1?=
 =?utf-8?B?TjJNRURJZkE3MU5QWnF1OFNpZzVEcEdFbXlqSXVvNlRtczY5OTdGemF4djRn?=
 =?utf-8?B?Y3ZnWUJ2V1dmWGh6QmFiSlV2TTZSeHllV0NFY0xOQ29aU3RnL2ZMYndhaWRw?=
 =?utf-8?B?YXVIN08zNDhNVGtBT0JySjRUcllVMkFBWUZTS2h0QytUZVZIcG9EbEZiTW9t?=
 =?utf-8?B?UE5VbWJXTXFaTTczQmNrVGdOZXFIcjhsTlFneXJSRWlTZVMvYTViUTVjeTR4?=
 =?utf-8?B?bE0zU1N1N2pnbjI3NkZsWE9lbW00LzZJd01ZK0s4STJ6TlFBdjVWeUhsYzVC?=
 =?utf-8?B?WVRnNGthMHgva1NLcTFZcm12VEFkUDV0QUhXbERFdVFyL2NadXY3REhUVzhO?=
 =?utf-8?B?NFdGWHBLV0xYaFVuNVp0RTgyNnVhR0lXSWxtUDdsZkpWK29pTU5OYjcyaVIy?=
 =?utf-8?B?akpKRCs2N3liOWthcGJiMHlLRGhjclF0Z0dtVnB2OVNIcUxWbStzbDlCYm83?=
 =?utf-8?B?RFZhOWk4ZmhlR1VuN05oWXN3QlR6Y3FnWVp5Z244NytkUytibkNkMnd0enV4?=
 =?utf-8?B?TmVkakZNblVwenRocmlHcStxL1BzbHprZENWT2JtTXhSQ1N4L2JtYjR3S3Nx?=
 =?utf-8?B?OVBOaVRPR1F1dVE2U291NnJ4K01DMlRWL0R3TWpDclk3eFBQcWlRN0g1TEsx?=
 =?utf-8?B?N09UMFlnY01kL2UwejA0bDRNaXV2cUhqU1o4YTEwa01lREZkNWF6QXMwZzdK?=
 =?utf-8?B?Mkd2a1gveVQrdTkzSThDM0FLMmdZRmQ4UG9TK3UyTnVKM1dzcHVQVytNSUVI?=
 =?utf-8?B?SVMrVkw1a2JWeGV4NUtkR2owQ21sZWl2TW9SUkhLTG01bk1HL0NWTy9RWUZm?=
 =?utf-8?B?L0xHcUxzMzZBWE0yVm9QSngvV1VocXdEUnhDVXRFTGlrMVNGWmJYU1A5bkZW?=
 =?utf-8?B?bDR3R1BlTEZrOE9jUHA1ZCtRb0dnaElRZXowY05HajRhUUwyeWdlZGFUazl5?=
 =?utf-8?B?YmpwMlNaZEQ4c2kyeC9zWDBPS2R3MkZQZjJOVHNjYjRtWEJ4Zzk1ZXl0blpl?=
 =?utf-8?B?MnlmMzdFMHdmNVp0WTNlQ3NseGZ3dUV2b3FadjQ4REZneTlLNVBRWnhJWWZS?=
 =?utf-8?B?VVZpMFBpYzBQbzg4UVFQTEtsNmJ5TDlkNnByYm5yeU5FbENSSWwyN0hNc1Vv?=
 =?utf-8?B?NlJ5THFrNEs4UEhKem9HOXF0ZkhaVE45WDJVUVlzNm84aVFud05JMEhlTmg5?=
 =?utf-8?B?emlhYlU0c0J2a05tOU9mYS9CaE1QRkxYcDNQaGtVNXlnZjFtbldHYlhobUpJ?=
 =?utf-8?B?QVJzNUxha1pESFZVWG8wMmwyRXUxU2lDM1crc2EzVFplL01YcHFDTUdlNnFI?=
 =?utf-8?B?eWlmVDVTd2Y1cStuck5qbnA5LzdaNUpac04wQURNZ2VoUytGNk43dndNd2pN?=
 =?utf-8?B?KzVkUHpTRFQwWmJqclhJUUJoc1hsRi92azVHQTFYU2xoaFlNNzdreDhhUUM1?=
 =?utf-8?B?ZzNVdFIrNzdHa3U0SG9HMzd2cllzVEhBMnBOakg3ZUdDSlh0RHVjb2srRnQ1?=
 =?utf-8?B?RVVFMlJLRjBhWktvc00yMGlJdXVOcDdiUmFYWFFoUEhXaFFlblF0TDR2WDA4?=
 =?utf-8?B?VU1Vb2pZcWpvRHF3bm82K011dVpuYWF1SnhBcENGbnRsNjF2dlV0NW12ZUpS?=
 =?utf-8?B?TzNZREljTlhzRFNnaXlRMDhQZXVaOE9LWmoxa2I5Q0ZnN0N5aEE1ejNaVmZL?=
 =?utf-8?Q?epCU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UFZaYmZlR0h1bUV6K2dvVlBxbWdEYjljRSsrRm9rN1Q5d0dENktyb1dUa3kx?=
 =?utf-8?B?blNwZGNhWC94RTZ5VGVKTVVNOXlhL2l3MW1iL2J1ZEdvRmZTdC92dmdXY0FG?=
 =?utf-8?B?K2dNUkxhbnp2cUN6MHlqSW1LR0Q0ZVdGY1lYRllBZ2g5NlB3eGhMRHB4ck9v?=
 =?utf-8?B?S3dYYXduR1hvWXRhcmRXZWNIK2syNWo3OVY1QnJ1RlRIUHNNOFdIZkpjUW9N?=
 =?utf-8?B?MjNjMTBBNHRDM3YxejN0VTZVNURMb0lqdkJORmM3THdkTWJxeHpzTEZEckVl?=
 =?utf-8?B?WHZ5ZWdzQS9wTjN3ODJXNzFDNkZkSlQ3dEZPckI0Nm9mdnR1YXc0Mm9TTnl0?=
 =?utf-8?B?Y3hzU1RhU2l2N05IeCtoY1VqZWZzUHpFaWkzU29IV2t5d05NUHNZdzl0dmND?=
 =?utf-8?B?V0dFWHBUZ2lRL3R3UVdEOEFpeUR4Ri8rVDFma3hrN1YrWVdwVkVHVjBYeW5C?=
 =?utf-8?B?SUZPZnVHVWFueW9xVk1TbEgyaG5VTkpMQTBSZ21WV3pPeElFb3B5TGMySzhi?=
 =?utf-8?B?bDdPa3g5L2dRRjdyS3RPU2I5YXBDWXcvclcrMmhjSTVXaTltaUxCVnlmdXVy?=
 =?utf-8?B?bHM2SUptYURRQ00yRmx1anZlY2NmMWpMZ1ZBSU94eVEzUmVDYWZ6Z2IxYjZV?=
 =?utf-8?B?RVBEVVBXMThqOFM0WjlHK0RFRm1YeUU5ZDE1Qi80V1hRSzlpMXVlaXR2cDJJ?=
 =?utf-8?B?OGRidnhJU2szVjFaWlk4TzNkVGd6WkQzVnJaS0tHZFRxUlMxQ1FneWhVUXRC?=
 =?utf-8?B?UGZXVEFWa0UvT05zeXYzRGh3enVuM0IyeFB3dWVsTW5yWE5jUFRvSS9kTGh3?=
 =?utf-8?B?ZlNQRENHZm1vdGZ0dG05UngwYXg3YjhTYVdaOWNrNWxNNTZSM0N3RlQ3emhH?=
 =?utf-8?B?a2JabXg0dy9QUW9uL0pPdzBFUUZLMUVUTmtkY2UrcEUyN1B4MjI0b1RXWW5J?=
 =?utf-8?B?R3pkNWxnYWFSQXd6MDMyVmlEenpaOHhVOVlVOEJEaUV2UDRFZjc0NVVCekk1?=
 =?utf-8?B?SXgrclJCQ3ltZFNNUnl0b3IvMVVUR01BbUQ2eDg0LytoczJBZkw0WStvSC9B?=
 =?utf-8?B?dzNIb0ZkZzFuRUNsVGUwYnZzaWZhWXV5bHRuZzRzdmJPMHRnK0RIblBOWFBU?=
 =?utf-8?B?M2ovd3NaSjRCWXBWTzdXdDlKSXNBN2loOFFRQ1dKYVlvd3ZpdEJYTDZ5SVhT?=
 =?utf-8?B?L01STVBQSnFuU2l1TVNCOGpXWk8zck1McTFIdkg4M1hJT0hETEFGOHZHbm1G?=
 =?utf-8?B?c2lneGYxb2pvSFY3VHdQcGFWbW5QRTR6KzVVZVJFYnJ0QVlJWFBaNXZYSi9L?=
 =?utf-8?B?bHBubEErWVp0aXlNZG02dUpCVzlYUGZ2eUZQbStEMm1ZWjN0M210TnhkNEZS?=
 =?utf-8?B?dW5xaDJHV2dDUytkMUR5ME5DQ25sbWx1b1hOQ1VNQTgyRXZqZG5BOHhqeGhQ?=
 =?utf-8?B?NDVNK0J4Y2lmOGY1SzROTktiTzQ1ZDdocm5QdEsrWkNiN0N2Zkd6RkUrNGdv?=
 =?utf-8?B?VzczTFk3UUpZa1RDcUUwcnVuRmtWRk83Z3JJRzdPTkE1SERDaGl2RXlNZ2hK?=
 =?utf-8?B?TFV6QU9tR08yRXpTM05IejFMbjVlSEdSaDJqcktqbXdER2lHZmVYQTkra0dJ?=
 =?utf-8?B?ZXF0WnZqVVFRWENwZGMyWkhjRkNHcXZuTER6T2xXYXNzc3d4RXFRS3pLVlZL?=
 =?utf-8?B?T2puZk95MHJWOEdkYkxLKzRyWVUzZ1drbnRMMWFUWXhuVEFrODRCV2lYdEww?=
 =?utf-8?B?cnZ2SVprNGFMYTdFa3VvN3BJMWpUaDFlQkVjc2l5SnVFdkQ3UEx2eWt3ZDBw?=
 =?utf-8?B?OW93L2tBUVMzQ281T050aUwwaXVWMmxTVVRqQ0xwMjRVOWgrdjQ3WFUzdlRU?=
 =?utf-8?B?Q3VHZmgzclFMdnJXdWMwcjVXQ3B5UkQ0ZVp3QVVWbGgxM1NlRWpBRXI3VG9o?=
 =?utf-8?B?cWl5dTJ0NFdzMk5UYjBEUjg1U2I0RFNWVDh6MmVxbk91Wmx2eDVXVG5LSERv?=
 =?utf-8?B?MXNMT2V2Um9Bak5zRWJuajZubHdkSDJQYnR6TVA1T3pXVGgzRFZ4M01MV0dZ?=
 =?utf-8?B?Qmd6bDViVWhqOFhsS2xYVTlKOGt2dkZsSHdpc1pGZUVoWGRMRTV4V0dpT28y?=
 =?utf-8?B?ZnF6M1BtVUE2MnlJL2dSN1VOZEkyRlNGZXo3Yzh2VUVsLyt0UWxPbEhBK2s3?=
 =?utf-8?B?OUZoTG4veHpzU1MzMG9XMVhwT1pUSGEvcEJ3QWg0Nlo4dVNHV0RNVTdBenFp?=
 =?utf-8?B?bVRzZVFoMmFra3hZaGFMMDZ5MXB1YkFIckVpdjBoY2NYZ0NaQXRsR1JxMWhp?=
 =?utf-8?B?aTU2YmY0Q2RFSitFb3I5dFplemJyV2t6RUQ2SlFhZTI1MmFFazB5UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 30b7bf86-db7d-4e61-4f31-08de63bfffa9
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 07:35:41.5954
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rja+/UG73Pd589f4zAO5K/KK71IgcwUbAJRFD9z7ynbx6JeYG7PMke64Y4IOKWbIe67qjfblla6vUyaYURht3w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6193

On Tue, Feb 03, 2026 at 03:01:27PM +0100, Jan Beulich wrote:
> Everywhere else gfn_t are passed into respective GFN locking macros: Do so
> here as well.
> 
> Amends: 819cdc5a7301 ("x86/p2m: re-arrange {,__}put_gfn()")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> Easy to spot by adding ASSERT(!gfn_eq(g, INVALID_GFN)) to the respective
> macros. While imo that should be a correct thing to do (as with
> hypothetical split locks a valid GFN would really need passing in, in
> order to be able to figure out which lock to use), we can't do so right
> now: The lock is acquired ahead of respective checking in a number of
> places, e.g. in p2m_get_gfn_type_access().

Could we convert those macros into static inlines?  It's dangerous to
use macros like those when the parameters are dropped, as the
parameter is not evaluated at all.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:39:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:39:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220103.1528816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXTj-0003Km-3I; Wed, 04 Feb 2026 07:39:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220103.1528816; Wed, 04 Feb 2026 07: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 1vnXTj-0003Kf-0L; Wed, 04 Feb 2026 07:39:11 +0000
Received: by outflank-mailman (input) for mailman id 1220103;
 Wed, 04 Feb 2026 07:39: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnXTh-0003KZ-5h
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:39:09 +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 95b5af33-019c-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 08:39:06 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806dffc64cso3087275e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 23:39:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4361805fbc5sm3922049f8f.34.2026.02.03.23.39.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 23:39:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 95b5af33-019c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770190746; x=1770795546; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u7n09poC9sEkHAzeFVq6gh+t84b2YKvHiFYaKG6k+ng=;
        b=VfpkgnqeGLen2mqlJhXwZTyJEaQRjqfjUIYsEspyfeLXW8q5aTnyNLs6ZKCzTHjywo
         BDtuTwZC4eqFDGecPCj+eVCRe7tKkdRcQOcCNW1ziiknz0vRUwdEiRBGBIzOfNpy3wHU
         2plp/buhpthFMN/gv0vzzQ81eJmfvNnSpDqfH7WLyeTsMfHKn9WNM08z5aAs/Y7glps4
         a8ukD04E84BCVRo9IPoHVnCmZqQsROQGw0Jo8SQfMgyaFAYd5NzJvTQX5uAFuWlGo79w
         aljgQHPezSD7+Vo7qKybCONPW9vkIVkjTXvyh426KsS2zbBEoxxQxK+Vwlgh0Z+JhetK
         hH1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770190746; x=1770795546;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u7n09poC9sEkHAzeFVq6gh+t84b2YKvHiFYaKG6k+ng=;
        b=jJ8exS6dx6LPA7ISOHDTHFkdEn9lKW0DsoN+Z6Q39ig5iUIKjAbBlzUw2bg1vW/Ab4
         OQGXlavSAnv3e+TqtS5OpoNMB8E5K6edY5zFb0uRQEjsKWw03ejPlFCWaB5uKSflJ/92
         23/S7Qz/FsZkOahz/RyewKAoWMZqndj+VwLmvUh6MCjbk3//X/naHHKpxcm0j4kk0UUA
         SDVbCei97qLHd5q5I4A+EFK+m/fC0tMquZvh0YfjMoYtf9sG6B6jR7Vwb/fgJz6Mw/P6
         bmdEOHi/1yCui/5bBKe6WZbyiJjUqPp2KqZlJPfmrtklWCAHhCJS4ihAz1EH+/cvRAKl
         HguA==
X-Forwarded-Encrypted: i=1; AJvYcCUOV2fgrUAl/TekdFSfAASwcS4Egr57G1/Zd4EUtEUX4xTWCxm4zvfvdb3vMdqrfL/e7yYL4stOZxM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZFNZmdWEI6Xx/E2hmGcY9GFdm68ggv6MM67UxANhWSfpf2s3X
	yel776uPIwCGgMcS0dE3Qx8Fv052wRZXUSx9GNvVs0L43NxptN6bAwOWhQcH/jLbCAszgAVjieC
	4QtA=
X-Gm-Gg: AZuq6aJxxY5/dB0eqnaTbizfkgG6oUJuDIxlsVhP8j9GqaIVwHBnGs9IKagvo7rwMud
	MgDwC0C7WEcapxKXRvrfTfkQJcCU38N/S47ZVFGyuOeUojTm6e1N29qZdbCTfkf5jhOZYT7VOLd
	4oQxhOnygrDzr/QR0dYcdknG3ATj3Xsy2s+jebVPALre97yfVY0DogT4bvWtCAiVb3OvgSSw17v
	wE1+P6g/P/eQWTCYb7jz+WF8Roju0S/y+FdCcw9DzH40GjRa9I+oMzmf6D5R5bdfFTkOqXztC9/
	wUr16mRZdmLV+XIISN38YKwOGUwDd6S2HViWINO0+GuPuqOcx3KOwgBxGJyAk5NQWuFMiyQVQwb
	27Yd5WPOHF70zYERpaY0OdvutekOlyzFOTFzcbf1Qe+yhVsGvgI2GrXLehVG3mboQYKQxv48zoJ
	mPYInLkK7rFpM5gM3Jv5PiJJZMT2iNbLM2ePtb15gD/3eGr+5SrKvM8ajuYLdZ4SSTOHJFBlLuj
	Og6Q7shHBqfnA==
X-Received: by 2002:a05:600c:3b83:b0:480:6852:8d94 with SMTP id 5b1f17b1804b1-4830e97356emr31635535e9.27.1770190745987;
        Tue, 03 Feb 2026 23:39:05 -0800 (PST)
Message-ID: <0a68463b-90e7-456f-9ec4-08d74b3714d2@suse.com>
Date: Wed, 4 Feb 2026 08:39:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9 2/4] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: grygorii_strashko@epam.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2602031502240.3175371@ubuntu-linux-20-04-desktop>
 <20260203230757.3224547-2-stefano.stabellini@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: <20260203230757.3224547-2-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.02.2026 00:07, Stefano Stabellini wrote:
> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
> global to VIRQ_DOMAIN to allow other domains to bind to it.
> 
> Note that Linux silently falls back to polling when binding fails, which
> masks the issue.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
>  xen/common/event_channel.c | 1 +
>  xen/drivers/char/console.c | 2 +-
>  2 files changed, 2 insertions(+), 1 deletion(-)

The public header also needs updating then, to not leave the comment there
stale. I also wonder whether "emergency" there is then still appropriate.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:49:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:49:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220113.1528826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXdm-0005Fk-W6; Wed, 04 Feb 2026 07:49:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220113.1528826; Wed, 04 Feb 2026 07:49:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXdm-0005Fd-T4; Wed, 04 Feb 2026 07:49:34 +0000
Received: by outflank-mailman (input) for mailman id 1220113;
 Wed, 04 Feb 2026 07:49: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnXdm-0005FX-E5
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:49:34 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0a3c99bc-019e-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 08:49:32 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA3PR03MB8256.namprd03.prod.outlook.com (2603:10b6:806:47e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 07:49:29 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 07: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: 0a3c99bc-019e-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dcCmstUOOfDQvPI8E7UswNU7YHS9ml4/PL2/vsCHfCaJyxqSWUQuCOg8laIjx5cmOsudWxkzk7B6tzDcW9IQUvWsoHyrS6n7/1kZ0mLnhxhhd/t5SVbjxf0/cYON652b7f00Uljl4IrTUVTYpxKXlv0iUl55id3tmRRM+erBQNVsFuVkAp3KeRluxxsbmAmWAanDJHrUTcgGCuMomjoNHsk8QK2kioQ9cEbJ65vyoRknzxQAPvzKhBDAMGnDThcw3vsVw0J/8ZIhlI55Ared6IItoU1Dhd0vTmS55BqKjSXCO9xV/9x1qqSva70Yetz3IR3ured49Y1SjhDnPRR4PA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8yDVv4m53JsOaKZEkehEVOtiUXsS+b42I5NofGPbcHk=;
 b=xMwKA43aLNWOx2OAinRtqvv+mLbNHpRjFcIg0F2oCxZg/Q2QScJaw00sxMGHtQxNAmQ1P5O13zL/BxgI4ynuIqasZrtcGHUyxa+pgHXPlZkigC/bvRn5nSgG5cs/Yll8SuMViUdLEVIH1hnIoygJFApTMMHQOabeLlJK2XGBP8yiao73ZZ2SwT0IoEtP/hOXLS5X0nbUxTnUfiidIHh7XR3FB0PzjJ6A9dPB/W78harF/9DVQVlEliQsgti3oAHlDIkN2UnCIfVOgqCn0PLjH12QQaJ5QgHCjLlOiBa68FcSVjmZK6QuFAkx4O5uz2ti2Twodagemips0QBxMO4voQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8yDVv4m53JsOaKZEkehEVOtiUXsS+b42I5NofGPbcHk=;
 b=DgL/jZG/Ry6nqkQIHdQWo1AzxEN3w36eOUELsEBDiHS2BtIJcgeGNylix/7IaXuB0PasfI4JSu/ct5PDeZyFmGn0rWV6NzRgn6rkDTeUMz38z9LnqHSP0dZxr8LB4Vpte6aHS6b8SuiDCSIgDC9MoTduHwITDN7dDdwmvVd3JvA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 08:49:26 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
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, sstabellini@kernel.org, dmukhin@ford.com
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
Message-ID: <aYL6Bt3Cs3HgeMPm@Mac.lan>
References: <20260109140747.195460-2-dmukhin@ford.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260109140747.195460-2-dmukhin@ford.com>
X-ClientProxiedBy: IA1P220CA0020.NAMP220.PROD.OUTLOOK.COM
 (2603:10b6:208:464::13) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA3PR03MB8256:EE_
X-MS-Office365-Filtering-Correlation-Id: b8371a61-04e9-47a7-1b81-08de63c1ecd5
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?NENaL08vTTZpT1ZNLzBxRDJSazZZNE9HU0ZoemVHUTBVUWNHSy9HUHkzaDRO?=
 =?utf-8?B?aDZXdDczR3dYaUlXZ0NqakdrSmptVHFJYWdPeUk3R2FzLzZ6VDVPbHp3dWlu?=
 =?utf-8?B?ajArc3lnTGx5OVlFYzhKMUlLTHdCUmlnZnBtYlJmUnJPK2tTY1QyQnFQM3J1?=
 =?utf-8?B?RkU3SnlYZUhDb2pVVitjRUFYeVpCaSs2cjJCREJTOGQyS05UOCs5b3FCeWMx?=
 =?utf-8?B?NGdTTGJuaVJIQWttT1ZEd1hQOU94SERJblVIUFFBSkQ2ZHZRQnhqcVdldEVT?=
 =?utf-8?B?dzkwcFNPSldHNjRlNjJ2RzVzTis1bHhrNFFrS01JMVRLQ2dudzB4ejlDaWc0?=
 =?utf-8?B?RHZwTVpPdUk3c2Q1a0tmb2JPaXRWMEtJRHVDZmNqRE9YV1BJNHBzOWljSnpP?=
 =?utf-8?B?MHVzMXpyZ1h2ZXdhZEIzWmN4enpyWVJKVXhHakNMczZQcWVmNkplREo0K2x5?=
 =?utf-8?B?aHZ6eDNCUFZDelJUd1NVTUx5T1F1UEdpNGoya0VydnRPYkhlYklabU9vWnJk?=
 =?utf-8?B?WU5rYUJFUzJxdkJXdzJBbXVyaHlXcHMvZ2d5NEVuTWVVeFdxdVVtVlFSSFNY?=
 =?utf-8?B?b2Jid3dqTHBVNGRhdmJYNXhkTjJHRHA0OTBKQ2dYbTFrejJYZlFvMDJsRkVZ?=
 =?utf-8?B?NFlncDg4UGwrbUZPaGZ3ZnNxKzNHQ2ZFeWpydGZ3Z1IyMDUwVzltU0cwdjNa?=
 =?utf-8?B?K2FIRTYxaUpBYVZnNzVYQ3dvUm9LVGdKRUFBZFY1VWQzeUtwQ2hWYTE2WmRu?=
 =?utf-8?B?YlRBUkpoRmlhQmMxVkVNaEc1a3R5cFgza0JvMVRVUXlxaGREQSs2ZktDcTNu?=
 =?utf-8?B?V1hISFNzdndSaFNDSi85Nm1ETnkvWWpscmV6ZHZxTU9TZHhYRWt5dW9sejZ4?=
 =?utf-8?B?UlNRQVZRWDM4RytKSC9xYStpV1VJR0tEV1Q1M2FPWkwyWDdZVEMxWCtUVWJ6?=
 =?utf-8?B?endXdVhDc1orTWdUampZd1dNSFlUZytNcllUTUZRbTBKSytLQjlYNHp3R3I0?=
 =?utf-8?B?VFU4eHBXaE4wWXNGY1ZqSStBZlc4cUdnaGp2ZGdpeWw5OHZiWTMyWWxwY01v?=
 =?utf-8?B?aEhWaHhrWnNPRWVDMjZObEtrN3pQR0F5elVPOGJSN2k1djJia2pTYTNXN3JB?=
 =?utf-8?B?Q3hkS3M1ejFiMVJmY1NZM0xiUnk5djJHbEhUVS9OaHlrdkhHWTlpbm9NM2Yr?=
 =?utf-8?B?eXR1aXd5QkFwNEFTU1dWbVZFTmwzVmdjQnpsZkZ3M2ZVc2wxK0ZoU0dhV08y?=
 =?utf-8?B?eXNKdEFSK0M1ZEJhN1RMRndqMUJ3RXgyZVliT1ZGbnFNdTlPTWNtTS9XOVVJ?=
 =?utf-8?B?QXJ0T3NxY21EQm9GZll1QXpZS3M5R2JMUzgwZFI4dTlzVTU2aVcyYTBxb2Ju?=
 =?utf-8?B?OERZOStzMldmcitCNXk0MWd5WmxEc3VERENEbjZBckorL2FTY29ydmwrZFo5?=
 =?utf-8?B?bFhpZ3NSOGVXMXJZdnJvNi9FL2JCYk9tTVJMdThvb2I3UG5HWUJsWEFuZElO?=
 =?utf-8?B?UDZLWEc1SWpoeVRwakxQYlI2cHRjU1A1YXBsUWNlMjJCd01OdVdFNWt4czh5?=
 =?utf-8?B?ZkdDbDFEQWY4U0szbVpZdUFUYTl4ZUFkbHdENmNrOTU3Tnc0TXpYQ0dMSVpQ?=
 =?utf-8?B?ZTJXcnluTUx1dklucnV1UTM2aUJoUE1yWUZ3dk4xcjZwNVFsMWl1VUtpM2px?=
 =?utf-8?B?RExwWWJpUkJwM1N1RFBPRDJPMTd2VU5VY1BpcFdGNDhScllQcS9nb0FjRWF5?=
 =?utf-8?B?d2NOcExwc0srNGRNSWMrRmhyaGp1aEJ3VTlOL3pUeWcwYUN6aGxqZUlHc2Yw?=
 =?utf-8?B?UUQrT3c2RisxNTduZGZDRXlTR1VOZkppK2c0WGtack12L2krQm1GVCsrOXYx?=
 =?utf-8?B?NGhZM3ZLY3dGYnNsU2owRi92cGJyQ0txZUU0akdJTXV3QWFGSXk3OWIrLzQw?=
 =?utf-8?B?Rk5qQjE0UmFyb2NPbWNGOG5UUWtRM0xWanM0OGx3NDYzRGZub3d4azRMeVpE?=
 =?utf-8?B?dXhEQktRVjJJdXNBMmdtNEdrUmdYcy9RQ1pSUnYyd0QzMEFETDEzeFRQVHpj?=
 =?utf-8?B?Z2tubS9QUm9aK29QbUNUYmdNNUFFUGRmQnorR3V6RytjSE9xMjhSaGdCRWdH?=
 =?utf-8?Q?Lzw4=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?clhjbXJpMXNiR05OcnR2SmpUUEx2VExQckcrVnc5ZjJucDZrNjlTSGwxNWlO?=
 =?utf-8?B?N2l5WE42dnV4ZHNKTjJHRGliTTN0eC9Dd3EzV251dnlyVDNVQW5SR3h6RkJR?=
 =?utf-8?B?MEdOSzlJdXEzbTRWUHlOUE4yUjltQUw1Vm1zMnl0TXNGWXlXekkrNFNIQ2NQ?=
 =?utf-8?B?a2xjc3E5dEFKaThZaWN2TjFUN1h1SFRkVDI3SWJXamZudTh4TFcrUUxkdk5z?=
 =?utf-8?B?N3UwNFIwWDFpMkIxbkg4RzBDYnZyQkQ1aUtaTW5iMTlhc2JNVjJWNUViamRm?=
 =?utf-8?B?NXlaVzl6U3g5elE2OERMZHplQXhkVjBqV0hLdG5DdVFOU0VKMTdnRzlkTStr?=
 =?utf-8?B?SXBEOS9OOFpmcVFEREVjR1pReUFuaGs0QWsxY0VkN0RKS3NvVnRqTGw4NlNt?=
 =?utf-8?B?T1lRTDFNNUJGNmFHKzhQNEVteGg1NFN5R01ESXFmRU5WMmF1eGMzdS9Gb0g4?=
 =?utf-8?B?QU9XbmVuSmtvUWsraHhqZEpaZ0I0YUpUUUxMQkQ2OEcyZWtFT1o4aVVydU5j?=
 =?utf-8?B?TkFnYVNpZ1ZBbUhkdWlaVVVZUllld0QzZnhEYUxteENTUGI0eTI5NTQ3alZq?=
 =?utf-8?B?UGRHclRPTklhODJXdENiMDBKVVgzSi9pSCtaUFdOUUhSVEVQQXBYYWRxUVFE?=
 =?utf-8?B?VkROTkNHLzBlcTE3ZXVRQVJSRVVIdFl1K21QMmQyVXFsZndsTVdBcm01c1VB?=
 =?utf-8?B?YVY4bGc0cVF6cjBwN2krSkdzanlHWElETVVPditjMWJNdVQvMGFqTWc4K0lG?=
 =?utf-8?B?L3A4ZTkrcTdPYnpXUGREclVrU0RhVWl6YS9oUXg3cTh3dzJxeGVzQ2kvQU1S?=
 =?utf-8?B?M0NXV3VVS0RvSG5OTWhPaTlXU2phRjZnamNvNVRxUnlmRUNOSnpBeHlWTlRV?=
 =?utf-8?B?NW5RK3Jvd3lxdWRsdkZMMkpEdW80NFRQSVBvVWgxcDRTMzlFQVNkQVU0S1Fz?=
 =?utf-8?B?c0FoZ0RKeFFvSUE3YlEvTDRRWDZ1T0JqUzIrU3RjQXNZRkFIV0phNHBoZVRF?=
 =?utf-8?B?aUFUQUlSMzJ5Yy9FSEx1SVhCNEtaNEltNit2Sjd5RnJpZFFkSDJBd1ZXcGNv?=
 =?utf-8?B?QjFGekwyT21kd3N4SWRtaWZQVWpJTFYzREdpUlhQQlk2UXRER1p6MnBoaUcy?=
 =?utf-8?B?bDMzWHlmSnRKNEU1djg1ZmxzK2NqdGxqb1JDT0NhSUNVMnR1ZEVUNGtBTzE3?=
 =?utf-8?B?Vmk4Yk43Ym40MXBOOS9SUjdpWjh6d0t4c2tPVzdlOWR4U0g5WHpucXplc0Nl?=
 =?utf-8?B?UzUxREJ3dXQ3c055SW1zMzA2SXU4eXpOUENidUdFdEhNbk95TTVHVUpuVXhK?=
 =?utf-8?B?dlFiOVBiSFdXZS9QeFMycDVTcDNmeWxHRnpYUEplZmtSTjBBWlh6UUZIbmEz?=
 =?utf-8?B?WFhYN0JpVGJhTXJVSWp5U0NxVFVMbnlXMk5iL1E1Q2tnMzFFQWtvTTlEM1dU?=
 =?utf-8?B?MzE2Q1dnczY4cEp6ampmUTg0NmNFRzY0QnVaMTYxdFB0OHR2SWVmMGVzck1V?=
 =?utf-8?B?dG1IaGFEekNEcHRvWXVHS0RIOVZvSDRyZ2h1WTBsTFZNWHVBSjZlNUxvYnZZ?=
 =?utf-8?B?QXhYL0dobW96RkFjYzNkL3kzWklLMEVMMFJoZzNnV0RQVHh4bU1mbzlEblJF?=
 =?utf-8?B?MTFxMlA5Zlh1aWxuTm1xQkFGMjJlNktQS1ZrT0xPZmxwdlo1cTB6WHBwN1Zn?=
 =?utf-8?B?MWpORk1qZnZndFdra3cwR1lpdXF3MWRPNFhobW1IOUgwbTdBWnZnR3FqcHUy?=
 =?utf-8?B?NzJjd1l6bUR5NlI5N0p3bys5VnRnc2hrTFd4MDEwWWZwSCtkN3dnMC85dU43?=
 =?utf-8?B?czNUSXNzd25JZTNhaTF3S0J0THBYNnFwVlBKdUIwbFd3K2M0SDVsbytIOHNn?=
 =?utf-8?B?TVduaFdDa3JpTy9sMnB3eU95SEZjWFZ0WGdFNWIza00xcGpDSi9RQ2ErUi82?=
 =?utf-8?B?ckZWK3lEbytiR3NJZGx1bHNsYWkxbS9ZYXhvWHpQR0ZNRXRIUkhPL24xR0RU?=
 =?utf-8?B?QlJGQWptaER3bzVNaFh2RTBEQzRWeldEWWVQb3k4eDlydXR2NTgzcVpUYy92?=
 =?utf-8?B?TGJZbVlyMFpOSWJ3aTR1Z0pHc0RkajFod2NyR3cycUk5MitCalBJS28wMUFR?=
 =?utf-8?B?cGNBdjhTbEF0RDRJQmhxMTIveTY4V21vVFdGZ3poUzFVaTN6eGdkK0tNbmhr?=
 =?utf-8?B?M3lQUk5sdUN4cHdhNGhXbHRLVmlTVmxwMGJNenV1NzAyTzNlTGVKb2RtQkF3?=
 =?utf-8?B?M2IyZnhEL0ZQQkI4QVhqb0FzY1Z2Yk1JRTFGdWkyMHhUcEU4b1NFRGZXdUMy?=
 =?utf-8?B?UUMxaGdieDJwUS9Vd29jVXp2bXk3dVdzc2dZeVlSSDYyQkl6eDRtUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b8371a61-04e9-47a7-1b81-08de63c1ecd5
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 07:49:28.8401
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: msDv+i441yk2WHDoPIXCysehdENmLDqFHmSkxW91l33kc+5hI8IrigGqeHgpGxaEQ0NmsYrVW92kyA7hH+FIow==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB8256

On Fri, Jan 09, 2026 at 06:07:48AM -0800, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add a new symbol DOMID_ANY to improve the readability of the code.
> 
> Update all relevant domid_alloc() call sites.
> 
> Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v3:
> - new value for DOMID_ANY instead of aliasing DOMID_INVALID
> - Link to v3: https://lore.kernel.org/xen-devel/20250924030630.122229-2-dmukhin@ford.com/
> ---
>  tools/tests/domid/harness.h             |  1 +
>  tools/tests/domid/test-domid.c          | 12 ++++++------
>  xen/common/device-tree/dom0less-build.c |  2 +-
>  xen/common/domctl.c                     |  2 +-
>  xen/common/domid.c                      |  2 +-
>  xen/include/public/xen.h                |  5 +++++
>  6 files changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
> index 17eb22a9a854..65da0d075a2b 100644
> --- a/tools/tests/domid/harness.h
> +++ b/tools/tests/domid/harness.h
> @@ -41,6 +41,7 @@ extern unsigned long find_next_zero_bit(const unsigned long *addr,
>  
>  #define DOMID_FIRST_RESERVED            (100)
>  #define DOMID_INVALID                   (101)
> +#define DOMID_ANY                       (102)
>  
>  #endif /* _TEST_HARNESS_ */
>  
> diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
> index 5915c4699a5c..71cc4e7fd86d 100644
> --- a/tools/tests/domid/test-domid.c
> +++ b/tools/tests/domid/test-domid.c
> @@ -41,20 +41,20 @@ int main(int argc, char **argv)
>          domid_free(expected);
>  
>      /*
> -     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
> +     * Test that that two consecutive calls of domid_alloc(DOMID_ANY)
>       * will never return the same ID.
>       * NB: ID#0 is reserved and shall not be allocated by
> -     * domid_alloc(DOMID_INVALID).
> +     * domid_alloc(DOMID_ANY).
>       */
>      for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
>      {
> -        allocated = domid_alloc(DOMID_INVALID);
> +        allocated = domid_alloc(DOMID_ANY);
>          verify(allocated == expected,
>                 "TEST 3: expected %u allocated %u\n", expected, allocated);
>      }
>      for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
>      {
> -        allocated = domid_alloc(DOMID_INVALID);
> +        allocated = domid_alloc(DOMID_ANY);
>          verify(allocated == DOMID_INVALID,
>                 "TEST 4: expected %u allocated %u\n", DOMID_INVALID, allocated);
>      }
> @@ -64,7 +64,7 @@ int main(int argc, char **argv)
>          domid_free(expected);
>      for ( expected = 1; expected < DOMID_FIRST_RESERVED / 2; expected++ )
>      {
> -        allocated = domid_alloc(DOMID_INVALID);
> +        allocated = domid_alloc(DOMID_ANY);
>          verify(allocated == expected,
>                 "TEST 5: expected %u allocated %u\n", expected, allocated);
>      }
> @@ -72,7 +72,7 @@ int main(int argc, char **argv)
>      /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
>      expected = DOMID_FIRST_RESERVED - 1;
>      domid_free(DOMID_FIRST_RESERVED - 1);
> -    allocated = domid_alloc(DOMID_INVALID);
> +    allocated = domid_alloc(DOMID_ANY);
>      verify(allocated == expected,
>             "TEST 6: expected %u allocated %u\n", expected, allocated);
>  
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 495ef7b16aa0..9130c38681df 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -842,7 +842,7 @@ void __init create_domUs(void)
>          if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
>              panic("No more domain IDs available\n");
>  
> -        domid = domid_alloc(DOMID_INVALID);
> +        domid = domid_alloc(DOMID_ANY);
>          if ( domid == DOMID_INVALID )
>              panic("Error allocating ID for domain %s\n", dt_node_name(node));
>  
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index 29a7726d32d0..e2c8990531ad 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -410,7 +410,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>      case XEN_DOMCTL_createdomain:
>      {
>          /* NB: ID#0 is reserved, find the first suitable ID instead. */
> -        domid_t domid = domid_alloc(op->domain ?: DOMID_INVALID);
> +        domid_t domid = domid_alloc(op->domain ?: DOMID_ANY);

I don't think you need to do it here, but you want to check the
parameter passed to domid_alloc().  It should return an error if:

domid >= DOMID_FIRST_RESERVED && domid != DOMID_ANY

>  
>          if ( domid == DOMID_INVALID )
>          {
> diff --git a/xen/common/domid.c b/xen/common/domid.c
> index 2387ddb08300..76b7f3e7ae6e 100644
> --- a/xen/common/domid.c
> +++ b/xen/common/domid.c
> @@ -19,7 +19,7 @@ static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
>   * @param domid Domain ID hint:
>   * - If an explicit domain ID is provided, verify its availability and use it
>   *   if ID is not used;
> - * - If DOMID_INVALID is provided, search [1..DOMID_FIRST_RESERVED-1] range,
> + * - If DOMID_ANY is provided, search [1..DOMID_FIRST_RESERVED-1] range,
>   *   starting from the last used ID. Implementation guarantees that two
>   *   consecutive calls will never return the same ID. ID#0 is reserved for
>   *   the first boot domain (currently, dom0) and excluded from the allocation
> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
> index 7f15204c3885..b5789c32ae1f 100644
> --- a/xen/include/public/xen.h
> +++ b/xen/include/public/xen.h
> @@ -608,6 +608,11 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
>  /* DOMID_INVALID is used to identify pages with unknown owner. */
>  #define DOMID_INVALID        xen_mk_uint(0x7FF4)
>  
> +#if defined(__XEN__) || defined(__XEN_TOOLS__)
> +/* Domain ID allocator: search [1..DOMID_FIRST_RESERVED-1] range. */
> +#define DOMID_ANY            xen_mk_uint(0x7FF5)
> +#endif

I would attempt to word the comment in a more generic way.  While this
is now only used for the domain ID allocator, it's likely to gain more
uses going forward (Juergen already expressed interest):

"DOMID_ANY is used to signal no specific domid requested.  Handler
should pick a valid domid, or handle it as a broadcast value depending
on the context."

Also, I would remove the tools guards, I think once a DOMID_ constant
is allocated it becomes part of the public ABI, and it cannot be
withdrawn.  See for example DOMID_IDLE: it's only used internally in
the hypervisor AFAICT, yet the define is fully visible in the
headers.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:49:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:49:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220118.1528835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXeA-0005fK-9K; Wed, 04 Feb 2026 07:49:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220118.1528835; Wed, 04 Feb 2026 07:49: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 1vnXeA-0005fD-6Z; Wed, 04 Feb 2026 07:49:58 +0000
Received: by outflank-mailman (input) for mailman id 1220118;
 Wed, 04 Feb 2026 07:49: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnXe9-0005FX-29
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:49:57 +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 18fa069c-019e-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 08:49:56 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso64675315e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 23:49:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483108d79d5sm27492335e9.3.2026.02.03.23.49.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 23:49:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18fa069c-019e-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770191396; x=1770796196; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+AWtJacmOecgXwlWsBjHoz5h+pUXqwGu/zsgTRJwiVo=;
        b=eibsXriPsdf6Of8WjZUV3lnUn1bQ4qPKfiP2Vypw5jgw/HHofjDJ4kZu1BjeoxBwdL
         ty/55Pz7BkgQvi1zt5eF/O66ZPr6iZg9ssjlWO/RdDfR7LlV6r8azsVe614i+GykFO4q
         RnR851uGd2DLk8DZ6vrTjrtzdhrFdQCawkxIaXAPBdLNYQi1oWQl8exRVx7YeWvXHhrk
         VolwAJk8oDpSYs0wB+nyU23rxHIrdBjsoVGlPyrokwFniFB65zw7ayHujUz4YPfPPD+5
         zx2imxhT+z4uo3gpC/LRLYzNF9omYmyQK4V34u5xnISd1LouI2Cm87xeMs1A6QJkEm0G
         N1VQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770191396; x=1770796196;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+AWtJacmOecgXwlWsBjHoz5h+pUXqwGu/zsgTRJwiVo=;
        b=osVySfCGBY87ZVm6vto4oa29gX+h9/7xX0ZNQiG/lJqILPtWAsSgKwWHAZQuoFSiM6
         TAp0QrT9BFhrZIbWwGltHNIXR4mhJfOCOeRhXCyxSjXG3c0nlU2vbWoa9StinAzyj6qf
         YL2yM8iikk+adIBfFCfAHd0y9AxBYk/P2oBMiZp5FX+U13gQbnYO8tpycHM8sG/LIyZ5
         J5373b8/8AbwyTziEQnDqWfHYWQoRMFqapIRZYYxEEgzFNpUMUE3knB+bMYL5Xyfqy5k
         L5Q6876drFYEpYTFR+FInFA4M2ukYCy/wRrzIZt3axR94nKjGNk1KYXBTbZ2ZYmpkr2S
         tLIg==
X-Gm-Message-State: AOJu0YxcySK8rfHOgggzeIquegE4WvhhTyyjJsnGS38NYt2/Betz+mpZ
	sEwDvTurXwzLdSHHJyUq8+lw978lpeo1MLAN2f3TKknNky2V7OKPVH2aseA4hIc2oQ==
X-Gm-Gg: AZuq6aKZF/s3ST/56DaShLGNk7rOcgnau6bcX/TW1UFUXpvpTeLGfZ8wpOmiQSWn6hu
	jpup34y8BIM9yDli3GBDjhaP4x4cZ8Ipulfnv+1Jrb1eNt4YhbrixDicSCcSvFpfcH7I/E3JqOP
	1mwzxpDp9iGxzu7pCce17WqYuWrpbIQz/JNKQk3Ig44bytxSNPUKWJGez35RqrgvEdHQnmJ5o9c
	GLtRNQWR7X1CryFx4tI7t5ZxBt34xV0+/H/kEyaLZcYe+wQIFkQvnVhgXivq/+jTTT28mStYYlW
	kpi2f0Fsb49gi3cLKGnMdEsambWUevOrzqj8idGTewAO2SWklw+kVGEGWLgzVBYPZWWH1kUoawu
	bvF46RUZ/5Hqyqs02beoBDVg6ktfruqaZ+pW3mBfBgaHbsxJ2t/KqvAIB8209us6cp1Uo1VjUqa
	9/pF1kpHStSZoi+v6q2rODTdFxVJAZk3/dpkZFbBgnD8Pc5yRp7peW8SU+Fnbclnc01FTqYsCVt
	Qs=
X-Received: by 2002:a05:600c:6217:b0:47e:e48b:506d with SMTP id 5b1f17b1804b1-4830e93f21dmr30268775e9.16.1770191395544;
        Tue, 03 Feb 2026 23:49:55 -0800 (PST)
Message-ID: <40707659-0365-469d-ac29-2b558d423b24@suse.com>
Date: Wed, 4 Feb 2026 08:49:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/P2M: correct type use in p2m_put_gfn()
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: <1ecefc98-f1c2-4116-95bf-a86c3b066843@suse.com>
 <aYL2yt0g8HGdpOTA@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: <aYL2yt0g8HGdpOTA@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 08:35, Roger Pau Monné wrote:
> On Tue, Feb 03, 2026 at 03:01:27PM +0100, Jan Beulich wrote:
>> Everywhere else gfn_t are passed into respective GFN locking macros: Do so
>> here as well.
>>
>> Amends: 819cdc5a7301 ("x86/p2m: re-arrange {,__}put_gfn()")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> ---
>> Easy to spot by adding ASSERT(!gfn_eq(g, INVALID_GFN)) to the respective
>> macros. While imo that should be a correct thing to do (as with
>> hypothetical split locks a valid GFN would really need passing in, in
>> order to be able to figure out which lock to use), we can't do so right
>> now: The lock is acquired ahead of respective checking in a number of
>> places, e.g. in p2m_get_gfn_type_access().
> 
> Could we convert those macros into static inlines?  It's dangerous to
> use macros like those when the parameters are dropped, as the
> parameter is not evaluated at all.

It is. Seeing how the header is used, converting may be possible. There's
one slight concern I'd have with doing so: It would move us one step
closer to giving the impression that the arguments passed are correct at
all use sites (while as long as they're entirely ignored, that's kind of
a hint that they may need checking). I can't point at it right now, but
I'm pretty sure I had come across at least one place where they're pretty
clearly wrong.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:50:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:50:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220128.1528846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXex-0007DH-IT; Wed, 04 Feb 2026 07:50:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220128.1528846; Wed, 04 Feb 2026 07: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 1vnXex-0007DA-Eq; Wed, 04 Feb 2026 07:50:47 +0000
Received: by outflank-mailman (input) for mailman id 1220128;
 Wed, 04 Feb 2026 07:50: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=GfmY=AI=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vnXew-0007Cx-2O
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:50:46 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 326e33ca-019e-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 08:50:39 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 DS7PR12MB9527.namprd12.prod.outlook.com (2603:10b6:8:251::16) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.12; Wed, 4 Feb 2026 07:50:35 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9564.007; Wed, 4 Feb 2026
 07:50: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: 326e33ca-019e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xffjuuLZDBThTEhPjOirc9bOTQjsEH7/3jxBsdqRClhKpNaQyONbEFHTqxnhtYj6PIsiQyFfeMuwx6+o7D9dcppRv1jPZTibycmQd42zoHJwWs66e6QaZWu93j7OElUTVmoIK4j27hW0Qzn1Vlz1S0XNxH7P2paM96b77mb5EOKnZ65cq5x01obH2i1wfyS4sGYN0wJC4l5gv9WrVeNyYIZ+tVqlh4md8HXfl2lITTCvdO1FZtbAyw/9IQka3HDAfhWGR1hpIvNis+5W+oIPpcJ6lJLYaL4+NhFqfqRcGk1Rlq+3WJjG42Mj8NHfMo6CL+XylSpU7PLNXFrY7K8P9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=z/DaDuW9xn5BQkXZOqtpozaSlTtRhFTkrJ6t6ZCV/b0=;
 b=LbffrGlyoQUcxrL3knmV8cs/BeYwgKkrMJ2i1539rDk30ALt3G494yhKqoOA85e5Uxi+835aowBOGPHLylwYqlvAfJdO3oSXiXWflhCqy28rhfD8MRQrYrdhLxQisj/6cpUr0zMlYuVHcnSwKRaab82OL96jiNaCGm8aNQU0vqqPpVbk7a6eHCeC/K2mLWcBbrLT2GT/Jg3UWRqjpaR6J5LLXNZRVB0JZQk4Uc7thGHW8UCiXFyI3dxjXK0bJVoZwACBxfD3+VFl+RC57rEytabaBdyb4YE10najqI1HX/+5F3PZA/y3BPYhdVq6toXTjNfbVtcvpeCBwMh/ZWDKYw==
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=z/DaDuW9xn5BQkXZOqtpozaSlTtRhFTkrJ6t6ZCV/b0=;
 b=VtWF/KouJYn0bgIux2mP542n5ddroELvPyp9tDMyzxlRc6JqvvKqXWlUqZ6Bzf/mom8eTW71M0O/IbgoACUfRVWPD5s9agBDWa3iayePAOmmRF3Cpvg5DcLfm6ZwTaI0NKwkUFteNLRW2wyLTpOJuKtI+kgOMDt2xSD1/FrxrJE=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Jan
 Beulich <jbeulich@suse.com>, "Garcia Vallejo, Alejandro"
	<Alejandro.GarciaVallejo@amd.com>, "Stabellini, Stefano"
	<stefano.stabellini@amd.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, "Andryuk, Jason"
	<Jason.Andryuk@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: RE: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related domctl
 op with CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related
 domctl op with CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcWtXdwWaFTRetvk29bNPbH/CVXLVylQnw
Date: Wed, 4 Feb 2026 07:50:35 +0000
Message-ID:
 <DM4PR12MB84517CB58BD82B676DD25AE9E198A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-15-Penny.Zheng@amd.com>
In-Reply-To: <20251121105801.1251262-15-Penny.Zheng@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=2026-02-04T07:50: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_|DS7PR12MB9527:EE_
x-ms-office365-filtering-correlation-id: 8343c4b6-3a97-4f5f-3d48-08de63c214c5
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|1800799024|376014|7053199007|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?M+1auZsn8ssxr8EhH0Agj02lSOmcF4m2lo9utggA/TUM2gwuQjzJQ2FI/r?=
 =?iso-8859-1?Q?2/V4pK/LUaHmYBZlBpOdOpA/mb/D+tWOBf0lwWbRr0/05tubtEz9ELAonB?=
 =?iso-8859-1?Q?aRbKRvuXV21vLH5DQYz74cfGKSUn3eAA8EMiQvxk92QCAYublfMSQmcUBk?=
 =?iso-8859-1?Q?JJadz2bbVOc9xY50WsoKcm7hxSeBdwtp72NhbHvNLTdJ58a/us7PLjrsLk?=
 =?iso-8859-1?Q?ynRfCAZFEMP5aqfYr4/T5w90L0kecWC6lSQnrQg4DlehsSckSdMjH++l/0?=
 =?iso-8859-1?Q?p/YKC8F97xGWLTme3wdJeVC/ehxUmrDbeQRF8M2lQSGbFOnaJsPNDfCOe3?=
 =?iso-8859-1?Q?gzNRP+ITG6/paNFEDc+/yWZt8XrH9ZjDg7uO3yHu6R/9/9tE5m9JZFqaEL?=
 =?iso-8859-1?Q?AouuKsEh9nbgBFpOC5BsgEnGl72f0nlJtYxGf1ULhIftKmlqWMgmqTzDus?=
 =?iso-8859-1?Q?OHlVGdT01hkbwTb/fXi4GvTW8y6tMlXOizG9reeck1L+R1AlcI3eDEglXS?=
 =?iso-8859-1?Q?vEsPIJXTPX3uqDXm1XN4cTYUW1QnjR4VU8AkHreSg5A/IPkChRfWjHCHv9?=
 =?iso-8859-1?Q?h8BXT6R5lTYM4tFZoxnJ5v5yUXqYTtbQmuvB90xiWGU0XrFfXDsoD7ICkt?=
 =?iso-8859-1?Q?IJbOk7if3YyGc2r96iaZUQTCq0PD/VQoxCsML2Au6dKpCbRO3zY6yfg+bv?=
 =?iso-8859-1?Q?Bn72E4SZJtgqekWkS8rD3KIqwxHWkU4PzjBqd5iqa5lRZXMFHxJZr4KPud?=
 =?iso-8859-1?Q?81SEGpVUiPMvPm9SWn39a3TcrIsPofs/BYj3QDPmSDfIdRp7lW/ww4/CuQ?=
 =?iso-8859-1?Q?QVYSRzURhWcPsrPzIMm4CUNEV8whMPwN568y8U21rhnzpFPGP/BVODP2+L?=
 =?iso-8859-1?Q?hr7RhjJF4YMLSTSrXCbXFA5GaBHW2dORtLBC9z/0u+P0OW+ShWYa9GV7o5?=
 =?iso-8859-1?Q?OC7aT0/4PwwnzauMNVHdmYZlnqJlAxoyrwc+8Yn5MPKGD+7wP/AlNMhUl/?=
 =?iso-8859-1?Q?/+gY84Fr/pifvkZCfkPjUNKjR8dV0Po5ycGwNHMvV4TnF7VGqv8gvKvRu1?=
 =?iso-8859-1?Q?6jIkZGmkeXBmDkGuKlhH7luiTiMYsvzR3EASV+4p+uaiOdD1erVjeqz/Bo?=
 =?iso-8859-1?Q?hMqtXHsYhJYEt7MU2giiOaNLc9z7qm+a0DaPCmDdiTWUeMJge7ZK3bLFwz?=
 =?iso-8859-1?Q?ZLxDmF7N3nyeyMvYRt2PrF9d1cdmcS4sfnhPbTiSvncZOzAE0LzIEIoAkw?=
 =?iso-8859-1?Q?J82S9Vs7URwLdtSachGqaJ2QTNFD3laknWBX35sULWGt+GFkNfCyTtNH9+?=
 =?iso-8859-1?Q?Thgx5Q8c5PkhDjVf3BRmRuUjim37OXC4vT0CcksES9CmZKnbuKedhnj9uP?=
 =?iso-8859-1?Q?zw21e/9iRtsRz9LWunWIJQbLeYuiarscYNbkGyigvuuTBu0v+tYDVD7dXt?=
 =?iso-8859-1?Q?tTcqSApJpGS1RwaowqkIM3jyXj6iwXocHYdPUSXnfxpcT9vhdhl4e4S+Km?=
 =?iso-8859-1?Q?95XXPfqVUXLftjEegilgorbU7srCHiq9OypYz41HHI3cn03xx/c6RxqgT3?=
 =?iso-8859-1?Q?sDMWxqeAqlp2524QmIRVxJux+N3eY50cvQPn8R9xRf+G4/su8byrbujuBF?=
 =?iso-8859-1?Q?6G6u443UAwrahQq4kI72CPOuuYB99Dp7/VhDpnVrmh5DYrFx6yhbj5/Q+y?=
 =?iso-8859-1?Q?ZhvChhGpxyKsuVpWmkk=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)(7053199007)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?ZZcPGhuxhcg/1ZND0EuLQcjXOAYbvuGhOauVgi5ZFIM0ypHmsxaHZHrfad?=
 =?iso-8859-1?Q?Xudc1zTMNCbtiFELouVSl5IrZ4owErOSZNyQIknZr3rRMqk85KOI/Kn7vZ?=
 =?iso-8859-1?Q?IiEwIMOlFGgZ25f/z72ZiyO/GFi+O2nZK1z5i+2y0UeX52rye0uOgAZtwk?=
 =?iso-8859-1?Q?ekiXGF3Q3iMI71gko8/YJKhW3Q5Oo2Eei9DQ2H4FXeXnl9VyoD08ANsDCT?=
 =?iso-8859-1?Q?EgVkiDSJVm8XknxtEei4wlKD4QUKnEwILqkZ04mirbZfCCpVaBqwDfjPBT?=
 =?iso-8859-1?Q?FmWJRlY9MqNFfb8vst/42AGW36rqx8yAFc/SQXQW0H/zvCK2nGJYCLh6IW?=
 =?iso-8859-1?Q?N9QjxdSgxAyHxz+7lDz4xivgLNk2WMdofLMdRK9v75KbL0iBURDBtPiFTt?=
 =?iso-8859-1?Q?6kLUpCiLx2HIjK8e0O91BmC6ksYFkUYtCHzVGnhSvY7pQOf4KakrITkABR?=
 =?iso-8859-1?Q?IsTT8CemZOlNxfZ6mt4SIcrbxMEh7ltSNshaTQ0OOHZJ3XODlWQx6aP4MY?=
 =?iso-8859-1?Q?JPRvEQyc9gWpQeCNWx2blVg8VX61H5mHEQX6n15iZhYBqDmxQDYlgbnwI1?=
 =?iso-8859-1?Q?nKzLlf4b2WKjUhS7BxfOTRqLnKBqUl4OwZ7ePt6SEzBqBJRpaerZRE6aJm?=
 =?iso-8859-1?Q?Q1cU+5SBfOXlZOzlRWv9sNTR/dH7FWGdvfcfoexOySV4NGHUDLbsLSlVxu?=
 =?iso-8859-1?Q?bH3RnFAd3HsMncoNKNTK55ByIrD/FxBMv7zNpA1Jc+jXGGU1a3sqzH+inb?=
 =?iso-8859-1?Q?HdyFdw3wr2WaL1dk6f0kIyuBgUuMvUSjcHoAYnEXSrsXiIJ6hnumYNJ1UT?=
 =?iso-8859-1?Q?WWfH1L+ycdbAfYiZEqWJUVLwVi5w12SZdHUUBDUzdAg2x1MHJokhB3ot/e?=
 =?iso-8859-1?Q?iygUZ+TMiCQIMhuulrZgqrQ+SGXRmdxdm0A8Nj5fZ4ifeGEO9LbJOXDwE3?=
 =?iso-8859-1?Q?in0S2u+D2idlWCPagagPRxwLVt9sx20D8fxs3xd0mB7eZKMrJjIZeJ94af?=
 =?iso-8859-1?Q?Rb71pM6V200XrzBlGjLxaXQ8rSXOQcWGL3cONZYnosub03nwr4kaUgzJIb?=
 =?iso-8859-1?Q?r7L7YKxtwXwRHiCKdwth0fG0T4EP0fJ9Kgp4Ylbzea1aJeZVOFE8cE2dYc?=
 =?iso-8859-1?Q?QEAqjBrsGsRQJnLsORxUh+7TT7q1Byirq/EtsQJc0s3aZjJKN+8QmewEmN?=
 =?iso-8859-1?Q?otpfp4OviV4jxcHPtoW4+KJijLgIS4RPMCJsZbiBhjZ/Z5oxZ7VC6pSOYl?=
 =?iso-8859-1?Q?yn2HT01jTdo21M0qLR1/wN42yHcWb2V/9o3NmB/qLsD9iDu7LcNgcDmG1H?=
 =?iso-8859-1?Q?u9aXkT5n3y95GSS4rKreGu2rM42ymnRvBzRQ5MzGwxJUS4MY0ds4a6cNj6?=
 =?iso-8859-1?Q?X9wqeC578OtUvEv52jOvHJkv7PQDLinnDpu0IgRN/Hqc36ZlzFgEYB1NJ1?=
 =?iso-8859-1?Q?/I/GlQAtLp9zrR6eCA0p0KYSrjCtd7bXiFpYc+9Rt8h+eCroGmGHGVX2pi?=
 =?iso-8859-1?Q?oxNLBvvG/n+ERtT7dXlmLEkQXOwU9do6RZYQaZlRnvoAhGXDwD6ifspIJa?=
 =?iso-8859-1?Q?rLtA9TCFx/uFQYSCSngUpuiaRNm+fnh8wwAMkJs5WYAtO21vDd4gvaVTd7?=
 =?iso-8859-1?Q?YNdmY0h2oQptbU8ySMKyLei76X0YIkAwPpzM8V8YkBosk/Vx2nEdcN75MB?=
 =?iso-8859-1?Q?pCu/yHxtdTIpDedjEG9V30eWBlvv8hHnYsglJoHMCHnHhIzdW9+ikUJOje?=
 =?iso-8859-1?Q?5jLyiBJn+cRGeQj6SBUvQqkOgQaDRry1QvXUbRGOYLQoY0?=
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: 8343c4b6-3a97-4f5f-3d48-08de63c214c5
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2026 07:50:35.6218
 (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: WD8aoszFwMwmxZgIEmnJ4+fGuDe1vOkzf3proTNQAK0h/CtydLrMEaXrxG1j93w0Ga6LxfffQbnGVwGXpmQ6dA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB9527

[Public]

> -----Original Message-----
> From: Penny, Zheng <penny.zheng@amd.com>
> Sent: Friday, November 21, 2025 6:58 PM
> To: xen-devel@lists.xenproject.org
> Cc: Huang, Ray <Ray.Huang@amd.com>; grygorii_strashko@epam.com; Penny,
> Zheng <penny.zheng@amd.com>; Jan Beulich <jbeulich@suse.com>; Andrew
> Cooper <andrew.cooper3@citrix.com>; Roger Pau Monn=E9 <roger.pau@citrix.c=
om>;
> Andryuk, Jason <Jason.Andryuk@amd.com>; Daniel P. Smith
> <dpsmith@apertussolutions.com>
> Subject: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related domct=
l op
> with CONFIG_MGMT_HYPERCALLS
>
> Function iommu_do_pci_domctl() is the main entry for pci-subset iommu-rel=
ated
> domctl-op, and shall be wrapped with CONFIG_MGMT_HYPERCALLS.
> Tracking its calling chain, the following functions shall all be wrapped =
with
> CONFIG_MGMT_HYPERCALLS:
> - iommu_do_pci_domctl
>   - iommu_get_device_group
>     - xsm_get_device_group
>     - iommu_ops.get_device_group_id
>       - amd_iommu_group_id/intel_iommu_group_id
>   - device_assigned
>   - xsm_assign_device
>   - assign_device
>     - iommu_ops.assign_device
>       - intel_iommu_assign_device/amd_iommu_assign_device
>   - xsm_deassign_device
>   - deassign_device
>     - iommu_ops.reassign_device
>       - reassign_device_ownership/reassign_device
> Otherwise all the functions will become unreachable when
> MGMT_HYPERCALLS=3Dn, and hence violating Misra rule 2.1
>
> Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
> ---
> v1 -> v2:
> - adapt to changes of "unify DOMCTL to MGMT_HYPERCALLS"
> - wrap XEN_DOMCTL_assign_device{test_assign_device,deassign_device,
>  get_device_group}-case transiently
> ---
> v2 -> v3:
> - make PCI_PASSTHROUGH(, then HAS_VPCI_GUEST_SUPPORT) depend on
> MGMT_HYPERCALLS
> - add wrapping for
> iommu_remove_dt_device/iommu_dt_device_is_assigned_locked/
> arm_smmu_detach_dev/arm_smmu_domain_remove_master
> - fold commit
> "xen/xsm: wrap xsm-iommu-related functions with
> CONFIG_MGMT_HYPERCALLS" in
> - fix overly long #ifdef
> - add missing wrapping in xsm/dummy.h
> - address "violating Misra rule 2.1" in commit message
> - remove transient wrapping of
> XEN_DOMCTL_assign_device{test_assign_device,deassign_device,get_device_gr
> oup}-case
> ---
> v3 -> v4:
> - move codes to wrap with a single #ifdef
> - split into PCI related subset and DT subset
> ---
>  xen/drivers/passthrough/amd/pci_amd_iommu.c | 20 ++++----
>  xen/drivers/passthrough/pci.c               | 52 +++++++++++----------
>  xen/drivers/passthrough/vtd/iommu.c         |  6 ++-
>  xen/include/xsm/dummy.h                     |  6 ++-
>  xen/include/xsm/xsm.h                       | 12 +++--
>  xen/xsm/dummy.c                             |  6 ++-
>  xen/xsm/flask/hooks.c                       | 12 +++--
>  7 files changed, 68 insertions(+), 46 deletions(-)
>
> diff --git a/xen/drivers/passthrough/amd/pci_amd_iommu.c
> b/xen/drivers/passthrough/amd/pci_amd_iommu.c
> index 3a14770855..576b36af92 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_MGMT_HYPERCALLS
>  static int cf_check reassign_device(
>      struct domain *source, struct domain *target, u8 devfn,
>      struct pci_dev *pdev)
> @@ -551,6 +552,14 @@ static int cf_check amd_iommu_assign_device(
>      return rc;
>  }
>
> +static int cf_check amd_iommu_group_id(u16 seg, u8 bus, u8 devfn) {
> +    unsigned int bdf =3D PCI_BDF(bus, devfn);
> +
> +    return (bdf < ivrs_bdf_entries) ? get_dma_requestor_id(seg, bdf) :
> +bdf; } #endif /* CONFIG_MGMT_HYPERCALLS */
> +
>  static void cf_check amd_iommu_clear_root_pgtable(struct domain *d)  {
>      struct domain_iommu *hd =3D dom_iommu(d); @@ -698,13 +707,6 @@ stati=
c int
> cf_check amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
>      return 0;
>  }
>
> -static int cf_check amd_iommu_group_id(u16 seg, u8 bus, u8 devfn) -{
> -    unsigned int bdf =3D PCI_BDF(bus, devfn);
> -
> -    return (bdf < ivrs_bdf_entries) ? get_dma_requestor_id(seg, bdf) : b=
df;
> -}
> -
>  #include <asm/io_apic.h>
>
>  static void amd_dump_page_table_level(struct page_info *pg, int level, @=
@ -
> 772,14 +774,16 @@ static const struct iommu_ops __initconst_cf_clobber
> _iommu_ops =3D {
>      .quarantine_init =3D amd_iommu_quarantine_init,
>      .add_device =3D amd_iommu_add_device,
>      .remove_device =3D amd_iommu_remove_device,
> -    .assign_device  =3D amd_iommu_assign_device,
>      .teardown =3D amd_iommu_domain_destroy,
>      .clear_root_pgtable =3D amd_iommu_clear_root_pgtable,
>      .map_page =3D amd_iommu_map_page,
>      .unmap_page =3D amd_iommu_unmap_page,
>      .iotlb_flush =3D amd_iommu_flush_iotlb_pages,
> +#ifdef CONFIG_MGMT_HYPERCALLS
> +    .assign_device  =3D amd_iommu_assign_device,
>      .reassign_device =3D reassign_device,
>      .get_device_group_id =3D amd_iommu_group_id,
> +#endif

FWIS, Alejandro has come up a more clever way to DCE these kinds of op, sta=
ying conditionally as callback. Here, I just took this commit as example to=
 show the methodology:
```
         .assign_device  =3D IS_ENABLED(CONFIG_MGMT_HYPERCALLS)
                                        ? amd_iommu_assign_device
                                        : NULL,
```
The compiler has enough visibility to know that static(amd_iommu_assign_dev=
ice()) is used, and is droppable when MGMT_HYPERCALLS=3Dn. So there is no n=
eed to do ifdef-wrapping around these statics now. Later when jason's "--gc=
-section" patch serie in,  --gc-section will help linker identify them unus=
ed when MGMT_HYPERCALLS=3Dn, then remove them automatically.

If we all agreed to use above methodology to do DCE.
Alejandro also recommended that since we will do this assignments in enough=
 places in this patch serie, we probably want something like MAYBE_OP() som=
ewhere in xen/macros.h:

#define MAYBE_OP(c, fn) (IS_ENABLED(c) ? fn : NULL)

I'd like to listen from your opinions on whether I shall do such update for=
 v5, since it is quite a big update

> diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c index 9774bb3bdb..0026a096=
3b
> 100644
> --- a/xen/xsm/dummy.c
> +++ b/xen/xsm/dummy.c
> @@ -80,11 +80,13 @@ static const struct xsm_ops __initconst_cf_clobber
> dummy_ops =3D {
>      .pci_config_permission         =3D xsm_pci_config_permission,
>      .get_vnumainfo                 =3D xsm_get_vnumainfo,
>
> -#if defined(CONFIG_HAS_PASSTHROUGH) && defined(CONFIG_HAS_PCI)
> +#if defined(CONFIG_HAS_PASSTHROUGH) &&
> defined(CONFIG_MGMT_HYPERCALLS)
> +#ifdef CONFIG_HAS_PCI
>      .get_device_group              =3D xsm_get_device_group,
>      .assign_device                 =3D xsm_assign_device,
>      .deassign_device               =3D xsm_deassign_device,
> -#endif

The same thing we shall do for XSM-changes too:
        .get_device_group              =3D IS_ENABLED(CONFIG_MGMT_HYPERCALL=
S)
                                                ? xsm_get_device_group
                                                : NULL,

Many thanks
Penny Zheng


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:55:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:55:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220139.1528856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXj8-0007oY-25; Wed, 04 Feb 2026 07:55:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220139.1528856; Wed, 04 Feb 2026 07:55:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXj7-0007oR-Uj; Wed, 04 Feb 2026 07:55:05 +0000
Received: by outflank-mailman (input) for mailman id 1220139;
 Wed, 04 Feb 2026 07:55: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnXj6-0007oL-QO
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:55:04 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cfe56119-019e-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 08:55:03 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA3PR03MB8256.namprd03.prod.outlook.com (2603:10b6:806:47e::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 07:55:00 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 07:55:00 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cfe56119-019e-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=evKamYEPRnMS5yELs5QPPiHTYK5h+TSDFR3B/F8xTFSz4K431C8W0mR5eD69qYwt7ABCGMytq879AQdxTvkoSIp2QfuoB/OazTG49ZINukE/9Ct6RwqefCpuv1WU5RNEdLThKo5GgiucieKPLxypJfKdQscLLfkyoVRumvVx4EzBVwfvsx6B4GOMMmkQXppTomn3rFjiWHNVXC3j/RmcQYxgZ2SimjOr/pC8xnGZN1mv5PFLozLqfGbQe/MnpLtAJIwzzcrH+xx9bvdsm/jbLBZg5/XWIWlIYl2920Hf8Bv8BTwSkfjjVhPB+6swpwaNFDpom24HqRB12M5GiGdgfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ks249Zi7djWc+6VzCGwZrAHh5eV8oFlenDYGBSus6qQ=;
 b=NkAF5sJjcMB3HHynDJAy0e+Rob9AbdrtJ2Dmk65jktERey9vgT0Xwtgs1jQqt77iwMTjtFSqBTbvvbWlN2UOE7ugEDYddA2OXnwedpnOccDO4zefhcK0uzTxLBzsa9p8QSrqJEc2YOqD50WG+R2DKqO4/Mj7a7lb4fCdw+CaIqhCgkczEROCUTpjGpqKWLEIAlk0fGgDmI3Ot1xWDUZ+XcCNH1nkgpA8nvgt54ddwIykpYgBJqYSAfHywhZGG0Qolw8zDjH2s9EJidYIpz/DX1kkAZBGbblaKejGjf289ze42rEhHXULL+MRRSDO1oN7kNCF79tDPIkJRpaUBfhtoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ks249Zi7djWc+6VzCGwZrAHh5eV8oFlenDYGBSus6qQ=;
 b=XkVmaL9vuHllJrG0W3j+j8wIugE+klPZvxOYWsQII+4hujAlGs+2kVcudXPXFoxON+zFEZnU8juwEfJ4DFlyKwAtSlZhYxgNWUf+Ne3aqp+EsudwD9dkeRBXbLzc5feI6PVwePNGmt4Q1VIVY/hNQnxFvwjR/hsWjzm2qN0bRN0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 08:54:56 +0100
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/P2M: correct type use in p2m_put_gfn()
Message-ID: <aYL7UPA6X4xoBKjT@Mac.lan>
References: <1ecefc98-f1c2-4116-95bf-a86c3b066843@suse.com>
 <aYL2yt0g8HGdpOTA@Mac.lan>
 <40707659-0365-469d-ac29-2b558d423b24@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <40707659-0365-469d-ac29-2b558d423b24@suse.com>
X-ClientProxiedBy: MA3P292CA0066.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA3PR03MB8256:EE_
X-MS-Office365-Filtering-Correlation-Id: b1103ae2-9f13-4279-bd57-08de63c2b28d
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?a0diQXdqdTRkcUZBbE1SM2lhd044Y2JudlhOdTNiaC93WVMwQ0VaNjltUjZH?=
 =?utf-8?B?TmRnMzdsdFprWUpyTXhKb05hbk4vRTNrZ2gvUkN3U3JJbnJ2WFVpRkEvWHE0?=
 =?utf-8?B?SndUeWZ4aDhYRWpkOXJIaGVhT1RQZEdHazVPWmpod0tnTERFT09QWUNmczV2?=
 =?utf-8?B?RXRsZ216QjVNK1Y4SU55Yk5KNFFEOFhRRFNabFZSY2RzWE5lTWVaVXV1L0F5?=
 =?utf-8?B?V0JlZnk0cDFsaGFFM2p4RlR6ZEQxWHJSbUUyNlJvbTlFVnFHcmhvUjVSd1pk?=
 =?utf-8?B?N3FTdlp6K005ZUVsaG1vWVVxY2dCSFo1SnVTeUNWV21Bdm1QMW92TEswZFMz?=
 =?utf-8?B?OXd4UWZoQWRsbXNvanJHM0NkamFZMitUaVBWQXp5ODMyQ1RLNXZxMmRDNGtO?=
 =?utf-8?B?ajBFNU5BR0pPZmorVkE1M3VJSE1aQTlvaHd3eFVvejBzZFRYSkhoWTFuZC80?=
 =?utf-8?B?eWEvMUdSaTQ5S1N1NTVRV1JldDlCTjdiaElRMGJxZ0tYeXBlNmhlazlBMnNs?=
 =?utf-8?B?cjVRMjM4ZCtFNWgvOVgzRVZJOXV4MFl6L0FuOFNYOXgwWGtJYzhiaVgxR3JM?=
 =?utf-8?B?WGprOUJ3cTJEUXI4N2xUZG5ObkhMTUR2WHlFMngvTDVZSXVCd2lZUnpkRnBl?=
 =?utf-8?B?Tk9kcWN2TlpObjdpZW1RdkltcERLbytzMFllM0NuZkp3emY4c2o4cTJBRnRI?=
 =?utf-8?B?MnRiMExydThqL21QeXlyQm5qVjNOdEM3a29pdGw2VW1UYmNBYnNHeU1ycWxW?=
 =?utf-8?B?d1FmdCs0b0pBSVJkRDR1b21KYjhNUGxrQ3p2SU10U0hocW5Vd3IrcmN6WG4r?=
 =?utf-8?B?cmJ0QWkvdHRLWnBtYnpxUStrcG9sbkdsNjd2RmRaRzFDQVpNcUtlVHFiTHlw?=
 =?utf-8?B?aXV3cEs3RGxOUEcrSmxETElJVXoxYVAybmYweUcrblpsK3JIK0VaN1AweEZj?=
 =?utf-8?B?OVNqOVBndzYwZGtmQTh3Z2JjYm9rZHJZVVRpeWkybDMwSkcvSW9mMVYxVmFZ?=
 =?utf-8?B?Sjk2ZDEvbG9DSzdXOG1FR2QyVDlxYjVXYThEMGxIZ1JLcElWYmt4Z0M5Q1lG?=
 =?utf-8?B?djNOdnkvc1phOWx2UWR2ZENQcGVBTHRoWWFGa3diWmxIMmJmd0UxY0NqdENC?=
 =?utf-8?B?STk2di81OHVWblV6UnpCY1k2NEZtNVpoSFpKRUM5ZjBNTHJxQkc4dGswcXRJ?=
 =?utf-8?B?WFlLK1d2VXZLZXFjRVNTNU5oYnZiSXdwMDFDc0NaR3FLaEg2NHRMa2xxNkpJ?=
 =?utf-8?B?UEhWYUZGVlNWaFhXYXJBdklNbHNTTU9rQlFXc0lYdVpYK1BUaldNdStJTXIw?=
 =?utf-8?B?QjlCenBLd3dZd2Y3M0dkakFQT0M3K0txemxManp2TE9XVWlYUW81Wk42aGx5?=
 =?utf-8?B?eEh1Q0FpSmQvYXpkek1HNG5lMEt0eE9BSGRHZUkrcTlhWWVqa1hWYm5oZWNC?=
 =?utf-8?B?VmtFOWZCRVFKZEdyeG9WSXpQeXh3bUdxYWNXZzNjZmp3RWNZR0x0cEFHZkxI?=
 =?utf-8?B?dWtqZ1hqb0Z6NmJBZzNXNVlMMXQ5QmRpSzkrL3JtNXpmV2NhZFBzODZoR3BT?=
 =?utf-8?B?UkVDbTB6dG9seERtUGlNaytEa1pXeFA1cXRiZEthWm5vUkRnY1JXYVphUEla?=
 =?utf-8?B?bXp6bXIxMnBvQkJQc2dQazJ0VktqU3FPVEtoaTkraG9OSk9PY1ExOWErTEFG?=
 =?utf-8?B?ZVNsSVlveHgxRWkxbDMvTDdBaTFKUXloanFVb0RlTCtUeVk1WGh0T0twalZM?=
 =?utf-8?B?QjFhbi93UXBxRUNOMitqcWxNZzdrYkZEZlljenl3dG82MHAyWi9GRU9FNG1E?=
 =?utf-8?B?Y3FLcnhXVzREcjRBeklaRlYwcCtiUDEweFBYczVETk1QL05PeW9zQjN3UUpl?=
 =?utf-8?B?ajRjYXIwcUtrQjBkVFFnSyt3d3hwUVdKUmFCR0RCd2Q2aFVVWkxyMGMzUU50?=
 =?utf-8?B?WVUvQVFRaEdFdk9nNDV0NndSc1Y5SUtQUTF6eGVrWFVOd1VSMDVPM01MelEv?=
 =?utf-8?B?clMwOUtZNlNtTVRscEozeEozaXNiK1lXZnl3OHVCaU1LSUk1amFDMXBWK2hY?=
 =?utf-8?B?UENXUXpnaHhGamJOWGFjOHoxdllqWlZ4bWJGaXJoVEIrNXY1NFVMVXNuUHJj?=
 =?utf-8?Q?/jYY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NzcwSTQwcENHcVhmWnpWYy9IWW1GSVIzOUFXSEdUYy8yWi84TE5WaHY5aW43?=
 =?utf-8?B?MmZHeFVrbXNRYXh5MDRPTjkyVm5Qai9lWTIxdWxleitJRVBkT3R4WjNqRW0x?=
 =?utf-8?B?dWN1bzJaNTM3L2lmamFkMDlUVEU4Y3pYR3BpMGQzeUxBQkU2UjNGcU82UnFN?=
 =?utf-8?B?TmlhSnVkVzVVdWFZVnliYjk0M1QrdE9LWmRYSHFSUXdZRkVoTFNTV0wrZ245?=
 =?utf-8?B?ZFdXUkhsazJ0SnNKUjZwdXdhNUUvaUtIT3pvZDRoOFlEUUNyb1pXOE9MWVNa?=
 =?utf-8?B?RXoycTZ6T01YVTBGcWJEbXVaMTVPK09CSldYZW11RFhCM0k4QmRwa1BaUGxq?=
 =?utf-8?B?a3RaS2t6cmZTMXJJb1lzSzNiRTE0NjRTcGlzQWNBL1Y4K2YzRTcrOGdlcUtu?=
 =?utf-8?B?MCtWTlltVndDN1BvRitTaEZxWVFQSU9IaUtxNHZhcDRRZm85cWx4UWpwWnhI?=
 =?utf-8?B?UW5lQy9CMHdXbWg5cnJQV1phaExBdktEc216QzgrWVZFRm41QVYvTXphMFpP?=
 =?utf-8?B?YUNlN0tpbGkrMjJyV0pDZTBwSUkwK2lGNjZETFp0WXJlUGoxa3ZMOWVIMU1I?=
 =?utf-8?B?VkN2TXBsZzBTaW5ibXFqeTVRL01qeGFrU2VpKzRXQTNQTGlzZDhTOHV5ZUh6?=
 =?utf-8?B?QjBCVHViTGMwMUdvb29FT3RKT2lLUVBmZHc0SloyaGkwQjFtZkVWdkhZTXFX?=
 =?utf-8?B?R1FkUlNwS0hRck5NcHYxZmxtY0o5ckh3UlFGbysvdUJyL1lCRWp3NGRTMzJ6?=
 =?utf-8?B?U3BIVy9wUGxvTG1XNnlyUE9XM0hEUU54cXN4TXhiUG5GTm9XNDhxbXdoN0Jj?=
 =?utf-8?B?cUp0NHJSVnhJdWMvbitYUGJPVTRZMDRXZ09lYkJqVzV4azFMTGhjb2dXU3lX?=
 =?utf-8?B?cmlpcmFtTlRDU2lGdVE1VlNJSWQ3UWVXREkvUDFaaGlUdCs1TWVleGJmU0ZU?=
 =?utf-8?B?dGluUVJLc2lBMFdHbDJiRHhGcWJjRWhIS3JKL0N3ei9sZ0xJdnBGRUlMNmZi?=
 =?utf-8?B?VTRveXVVYUlDUktNc0FEdnYxb2s4M2lVdnBKSWdGWDlERTNjdU1VU0dnQm9M?=
 =?utf-8?B?a3BWL2tvc0NUNm90TFJLZ3VOSGlJb3RCbmpPUW5HNVorYTNIK09PdmhuT0J0?=
 =?utf-8?B?Rm9MK25CMmRRK2tXbzhIUjhjakhKa2J5My9jOFgvYXhtSVFJd25vYW5YTDYr?=
 =?utf-8?B?RVpKVTFLL3p0bzJ1YXpsOG1MWkxYM0lrOGFOU1poSld2Uk0vYTBPOFdNZndw?=
 =?utf-8?B?dUZIcGRlbmR4SWRQZkQwSGt6aTFtOFQ1bDdIQUNuZENJbHVmYnRlK2ZMREx4?=
 =?utf-8?B?WUJwS3BNcFZYY0xOMCtWS00yZkF6b2g4dmJaNU9hRXFEbjlmWmhOT0dvbTh0?=
 =?utf-8?B?L3JBdXY5Sm1BVW5sVmFQdkdVcnpUUkxnSzlPK3U5RmZNR1diTWtaVGdxdFJi?=
 =?utf-8?B?Q3I3U09UMGtMRmhxRDBjc1VnVVoybDJsY042WVBlNDNQYlUyKytTSGc3VDdy?=
 =?utf-8?B?WTRBa3V2RHJteXhwSGdzUUFoMk42ZXAveTQ4T0RsVGNsNmsxckdKNm42YzZJ?=
 =?utf-8?B?VFdvYjgwdnQwbVFDcWhDL3RldDJ1OStCQmNuU1pHYzh0TGJxaGZ5UFdvem0y?=
 =?utf-8?B?dzJuRENVYXFhUVZyanhHMU1ORUpNVXNRbUplYm9iR2VDTTlkZmROc1gxOU5l?=
 =?utf-8?B?b3NSbEpwL2p1MXpzVmdWL2MwQ2lHeDhaYjFWTnFCdmZqU2ZWVlNLcy9xZVlp?=
 =?utf-8?B?U1Q3Q3RGcjhpbHV0WTJSZjN1YkJMVEJQcUpwVFNkakQ1dnZ2dHU5ZFRQOHdY?=
 =?utf-8?B?anVJb3JRUzJ5d05yOWE0QUNOcjNiOUhKa3FLbFJjMmZkZkxVU3JvMVp6cXQz?=
 =?utf-8?B?WFFLQXpyblU4Y2h1blYwNDQzb2kzbkkwSVRaRDI3OHNZSW5YckpXS1FOUWhD?=
 =?utf-8?B?WjFrZmdKdkUzY2ZRTXRqdHhPcE1lMXFocnpwN0xhRC9VSWlkYlY0T1ErVTdE?=
 =?utf-8?B?eG9vRUhncHllOHJycXhLaHFCMm4ySVhiRUh3R0o1YmdIelRSM3NmbWtyblhQ?=
 =?utf-8?B?MHdCbWFNMXE0T3hSK0VYS0d6RFJoQTZvbko4M1ZjN3VDRE9IWnVsbzdBK05u?=
 =?utf-8?B?M21pcGFJL2VYOGJlVzJwdllsZ0lJd1l1YTArL1oxcVZ6MmZuK0lvdmgzNDFo?=
 =?utf-8?B?SGZMUWRmZEZSbEJqdWV1ZG1HcnQ4Rm9WcnRtbENRYmp2N0pnUUdhcWdWMERi?=
 =?utf-8?B?TFl4YXo2UXJOQW03L3p5bmdiRGJXOXQ1Y2JYZmxBNXlUZjVRVDAvbEFIWXVt?=
 =?utf-8?B?MEt1VHZuTGhaMDJNQnNocjdKZi80djdRNzVDbDlPWWdpQWZZK0ttZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b1103ae2-9f13-4279-bd57-08de63c2b28d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 07:55:00.5576
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OIqpoFc7dqE9+2hvV08PCI82zi9hyJb1HFLvXvr/KykyVPbVUGzpazyKk/ZEIHO8GSSwb70jtxq+b79X4vg3tw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB8256

On Wed, Feb 04, 2026 at 08:49:53AM +0100, Jan Beulich wrote:
> On 04.02.2026 08:35, Roger Pau Monné wrote:
> > On Tue, Feb 03, 2026 at 03:01:27PM +0100, Jan Beulich wrote:
> >> Everywhere else gfn_t are passed into respective GFN locking macros: Do so
> >> here as well.
> >>
> >> Amends: 819cdc5a7301 ("x86/p2m: re-arrange {,__}put_gfn()")
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.
> 
> >> ---
> >> Easy to spot by adding ASSERT(!gfn_eq(g, INVALID_GFN)) to the respective
> >> macros. While imo that should be a correct thing to do (as with
> >> hypothetical split locks a valid GFN would really need passing in, in
> >> order to be able to figure out which lock to use), we can't do so right
> >> now: The lock is acquired ahead of respective checking in a number of
> >> places, e.g. in p2m_get_gfn_type_access().
> > 
> > Could we convert those macros into static inlines?  It's dangerous to
> > use macros like those when the parameters are dropped, as the
> > parameter is not evaluated at all.
> 
> It is. Seeing how the header is used, converting may be possible. There's
> one slight concern I'd have with doing so: It would move us one step
> closer to giving the impression that the arguments passed are correct at
> all use sites (while as long as they're entirely ignored, that's kind of
> a hint that they may need checking). I can't point at it right now, but
> I'm pretty sure I had come across at least one place where they're pretty
> clearly wrong.

Well, having at least the type check is better than not checking
anything at all.  By clearly wrong you mean passing INVALID_GFN, or a
random GFN that had something do to with the context?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 07:56:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 07:56:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220152.1528866 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXkG-0008MY-FA; Wed, 04 Feb 2026 07:56:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220152.1528866; Wed, 04 Feb 2026 07:56:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXkG-0008MR-Cb; Wed, 04 Feb 2026 07:56:16 +0000
Received: by outflank-mailman (input) for mailman id 1220152;
 Wed, 04 Feb 2026 07:56: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnXkG-0008MJ-00
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 07:56:16 +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 f9dd0202-019e-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 08:56:13 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-48068127f00so55409995e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 03 Feb 2026 23:56:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48310919211sm36577745e9.11.2026.02.03.23.56.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 03 Feb 2026 23:56:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9dd0202-019e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770191773; x=1770796573; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Z7cNt5S8Guw1QvJVJP7O71waURfLNPoe7GDaEP/qaok=;
        b=eS/m6iNZXlVJZQV6vTlU7mmKBGTPC5mTNOubmcZYJi9JtvYj5the0oRwSUJt1b3X5Z
         Fem2IVFqSsZ3FDUMbw5GH6LNRBaFKDhbAND25c0sQf5R5J0cnUT4bujCrjYY36akCL13
         UcG4oaFzGSJAf2xK4pxgpvkLfiIsa1Mub+b2f27g9LDZI/9pUvjlb18hARCX+cnCPtv1
         GThF1FrkJd+7XadKMW066rvjblBRBjR2uchOnfBdxE/OT0EIgZkcoPpyvtoYgptEjPTg
         aWskewz/qa4aupbMgliIuhXhsEuxMbkKT4jSs6CckW1af3P24rjpSgEs6StqAI1iQ0yx
         nFHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770191773; x=1770796573;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z7cNt5S8Guw1QvJVJP7O71waURfLNPoe7GDaEP/qaok=;
        b=q0mSmEyqXNrF9Wqc32ig0clA4x4fXMMN3U84U3RwxFYGPj9vaCG9w3Hp7e1sTqL7M0
         Y3dNrpb/2TNL77b2oMWuo2TEJbX2sBUGxFMuWcZ730qHm9Vjm5NJDJkB0mA3ONkiLhO3
         OSEVvaiibiZv9AWFycwrTnYQBLTjelT6nT7fah2wpX4pOimp2U+t86L3f+asDbdDdQDa
         Rs+gCd/s2ABZW+vsOjzNgDnI0FIzJoa7jsCRQo9JJBmsThJoY1uIRYFy2yEI+DJtmk+1
         M7gMehOflWLzYPEvceJ/EfON00gLcfpKjtOiPpLLz6umIOpccwPYBsCV2aNoSn0kkcLS
         Tx5w==
X-Gm-Message-State: AOJu0YwjuFhn27T4+t9OfWURShO5aw6rbVIRv6te9+1uShXU7nazHKnD
	JLV4l8F8GtpgQCs8a+LmtdO7VNqaPRDdsN/WWa2wsrtu5xYu0gjZesdTAJVdydPiSQ==
X-Gm-Gg: AZuq6aIS3FT9pNAzq1Xp8OM9hm3jHGrw4yoy0IBhAm13oPzJR8JcuE+/6YxYIUCxMuO
	N+5syOZdt+2jpHBGb7U+pPcm556AocFrFrsLPi++OslXkKAlktNy0BZanAC0j0j84aXVF412y/+
	TCT9CCouCVN23RgJnkCZIaMITc4i2dO0tRdUNUlKs5jijgnnfWK00QTF8jjMu5NfKWkHOXifBlB
	K9z7tPRKsilMZph7l1nlGUgldO4ykBEOMIBlZiUVbbAWCkOV7kJUkQTyD3iAYzDTLvUdrxpD1CO
	2R5dxmsNzSrpsTMeamz9zOCe1fsX/dJNkJvbpThZ2omNCM28Exo0MkKjwoWrwKEtIaOud7GK9Fg
	BupHOejW+OB9fnRatabY374JEFji/sjUKUN+v2ktYe+Nd2HbiEfSL+0Pi+t3DNO1yS9TPtTe6RQ
	1/glJPURQM+vCRweyV7KAuBx5DpfdE4S/C3DM2Hqyq1o3kaRXKNuHBqCK2KUjDosKTiDRLhmMsh
	/A=
X-Received: by 2002:a05:600c:8715:b0:47e:e2ec:995b with SMTP id 5b1f17b1804b1-4830e93033cmr28479945e9.9.1770191773011;
        Tue, 03 Feb 2026 23:56:13 -0800 (PST)
Message-ID: <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
Date: Wed, 4 Feb 2026 08:56:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, dmukhin@xen.org
Cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com,
 anthony.perard@vates.tech, julien@xen.org, michal.orzel@amd.com,
 sstabellini@kernel.org, dmukhin@ford.com
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@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: <aYL6Bt3Cs3HgeMPm@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 08:49, Roger Pau Monné wrote:
> On Fri, Jan 09, 2026 at 06:07:48AM -0800, dmukhin@xen.org wrote:
>> --- a/xen/include/public/xen.h
>> +++ b/xen/include/public/xen.h
>> @@ -608,6 +608,11 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
>>  /* DOMID_INVALID is used to identify pages with unknown owner. */
>>  #define DOMID_INVALID        xen_mk_uint(0x7FF4)
>>  
>> +#if defined(__XEN__) || defined(__XEN_TOOLS__)
>> +/* Domain ID allocator: search [1..DOMID_FIRST_RESERVED-1] range. */
>> +#define DOMID_ANY            xen_mk_uint(0x7FF5)
>> +#endif
> 
> I would attempt to word the comment in a more generic way.  While this
> is now only used for the domain ID allocator, it's likely to gain more
> uses going forward (Juergen already expressed interest):
> 
> "DOMID_ANY is used to signal no specific domid requested.  Handler
> should pick a valid domid, or handle it as a broadcast value depending
> on the context."

+1

> Also, I would remove the tools guards, I think once a DOMID_ constant
> is allocated it becomes part of the public ABI, and it cannot be
> withdrawn.  See for example DOMID_IDLE: it's only used internally in
> the hypervisor AFAICT, yet the define is fully visible in the
> headers.

It was me to ask for it to be guarded like this. DOMID_IDLE (and perhaps
others) not being guarded (at least for IDLE: by just __XEN__) imo was a
mistake. That mistake may in fact be correctable, if we could prove that
the ID cannot usefully be passed into anywhere.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 08:00:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 08:00:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220168.1528876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXod-0002Us-7q; Wed, 04 Feb 2026 08:00:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220168.1528876; Wed, 04 Feb 2026 08:00:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXod-0002Ul-4k; Wed, 04 Feb 2026 08:00:47 +0000
Received: by outflank-mailman (input) for mailman id 1220168;
 Wed, 04 Feb 2026 08:00: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnXob-0002Uf-OG
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 08:00:45 +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 9acd1c0e-019f-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 09:00:43 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4801d7c72a5so50472245e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 00:00:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830fe567b4sm19199035e9.5.2026.02.04.00.00.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 00:00:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9acd1c0e-019f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770192043; x=1770796843; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hIoODnV6yK+3p8/aQj2ERCJXNed18iavaGUaPTnhxfc=;
        b=BcRQExzRMgHzJKINcJynHBZVWHMEBxJPf4nK5AWOs0hOV0f/Sa/RYQh412Nj7d8vxF
         pf+hDToGMWv3i7oQtcCYiEOALRbV2iaBluvSs25V8WAejF83CDlfF2Ppgm4YJtv+sMn+
         MV2vBxMkvjSVAkgk/7nsGpTRvx9vLeKOY8rx9hXB2t2EcBiRmPtHNsTT2srIE+iMrBOr
         FdiAQTQd52bijFNYEBTf9dcPS3jTsJTn2208+syrT+zo+MDNXHnYTQMy8yf+wpzDXVVj
         bG1quyNbWLU/uefrpdkAryF+sPUDgh5VLUH+oT0G10jFZ5PijQOc2fU2QpowT7E5X2QX
         fBlA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770192043; x=1770796843;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hIoODnV6yK+3p8/aQj2ERCJXNed18iavaGUaPTnhxfc=;
        b=Q3evyH/ij2sPLlhPQ9VKVXjGC9fC69j9J+CdjYrFWzx+c5bgtZJCHO0uMeSd7ys43T
         p8jSlHs1fWE1Wg5zK77K0HAQVFDIF+QJLa+v6uXcNuqLLq8w5RqsihK26riPbKgdWebi
         iATVGC5Yga8NWbuon5/OC8KQoQqculVXYdqvmIpC647FSXkYQWPaRsbh0XSdqeBfwt2O
         SCHZ1R0ldQxJurIWtVBJcykWK3dgd+U6Lv9WxSXNJ7d58j9PxQk5/XkkCmSRXY8Ftgeg
         er6E7q3lPoFK3jx/p2+d+PfMljJTSai3zrgJFDz7Yob49O9mMOR+YuxAiK6NIOOi6ifI
         QUqw==
X-Gm-Message-State: AOJu0YwFfOfizITKNhghYpycs9Ga3jea8yxEtzV8UcD6lVoCmnh/p2DB
	3rJufeRCqc0M51ECTHyZl90ZwvDbfS/fIrkPH+MyaCHbfL+2YZrWbV9WQ/SoYBl7Ug==
X-Gm-Gg: AZuq6aI/tnfZGbkwhrN6CXPM79e8m4yR3RruVRcbXeH+LVnnWYShn8dg13AEYplaVYv
	fx3mSWCSkHZE2iAs+6uDFmlH7DC8Ha+K5yLjlQRfsYKTfFwF7vqbyVMmNs/2veHfzTGq0SCbUCp
	dJcYTcP6TzjTAygveFPrDpTNnvmfjIKBKqcQMqCuAC3eMXa4vlBMNNlK5IhQgSvVlZ1vGZYlzlN
	qUyVwvbLEthTH8hoHzM5X2PBjdpGZhbUz4O199F5HOF2dHHzyDSualX7AMF904uHHFKNCC7jLUU
	k6g8RtLRpRhphI2AS6x70dxSqkEQS7PSI6dWdmHNZTd3FS3XHrx6DkmuZ7A0FpvZrACAdA71Hlb
	qauTq+P0MJ7ex5Nvpqs1zp7tt7uXskUYx0Iqsk6+klikKFzwv6+iLm7buV5Ix7EyMnWWb6Md2D9
	PiQ+FpuGVYX9eLZdiSFy4+tfn3PY4+dWyLc6y/P0Z7h6mLq8ryiGDaYHUczv0PR9T2saU/utfI7
	DY=
X-Received: by 2002:a05:600c:34cb:b0:47e:e779:36d with SMTP id 5b1f17b1804b1-4830e96d019mr24044885e9.23.1770192042734;
        Wed, 04 Feb 2026 00:00:42 -0800 (PST)
Message-ID: <9675c989-3f25-4d8e-b16d-0fb27436ce1d@suse.com>
Date: Wed, 4 Feb 2026 09:00:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/P2M: correct type use in p2m_put_gfn()
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: <1ecefc98-f1c2-4116-95bf-a86c3b066843@suse.com>
 <aYL2yt0g8HGdpOTA@Mac.lan> <40707659-0365-469d-ac29-2b558d423b24@suse.com>
 <aYL7UPA6X4xoBKjT@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: <aYL7UPA6X4xoBKjT@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 08:54, Roger Pau Monné wrote:
> On Wed, Feb 04, 2026 at 08:49:53AM +0100, Jan Beulich wrote:
>> On 04.02.2026 08:35, Roger Pau Monné wrote:
>>> On Tue, Feb 03, 2026 at 03:01:27PM +0100, Jan Beulich wrote:
>>>> ---
>>>> Easy to spot by adding ASSERT(!gfn_eq(g, INVALID_GFN)) to the respective
>>>> macros. While imo that should be a correct thing to do (as with
>>>> hypothetical split locks a valid GFN would really need passing in, in
>>>> order to be able to figure out which lock to use), we can't do so right
>>>> now: The lock is acquired ahead of respective checking in a number of
>>>> places, e.g. in p2m_get_gfn_type_access().
>>>
>>> Could we convert those macros into static inlines?  It's dangerous to
>>> use macros like those when the parameters are dropped, as the
>>> parameter is not evaluated at all.
>>
>> It is. Seeing how the header is used, converting may be possible. There's
>> one slight concern I'd have with doing so: It would move us one step
>> closer to giving the impression that the arguments passed are correct at
>> all use sites (while as long as they're entirely ignored, that's kind of
>> a hint that they may need checking). I can't point at it right now, but
>> I'm pretty sure I had come across at least one place where they're pretty
>> clearly wrong.
> 
> Well, having at least the type check is better than not checking
> anything at all.  By clearly wrong you mean passing INVALID_GFN, or a
> random GFN that had something do to with the context?

What I seem to recall is a bogus order value being passed somewhere.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 08:09:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 08:09:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220179.1528886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnXwa-0003YA-0P; Wed, 04 Feb 2026 08:09:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220179.1528886; Wed, 04 Feb 2026 08:08: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 1vnXwZ-0003Y3-T0; Wed, 04 Feb 2026 08:08:59 +0000
Received: by outflank-mailman (input) for mailman id 1220179;
 Wed, 04 Feb 2026 08:08: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnXwY-0003Xx-LL
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 08:08:58 +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 befd4316-01a0-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 09:08:53 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4806bf39419so3092235e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 00:08:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4831084dd88sm27082455e9.6.2026.02.04.00.08.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 00:08:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: befd4316-01a0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770192533; x=1770797333; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+aJmMLwLhiWWtX5iycDbbfBBWzQlJBoKNaw/NPQdrS0=;
        b=BJflsnzFPb4jKr+ebl4R5HpK7DGUqhBsHYdA7lYXf518u455QhJI/GTfvllThT8FFC
         7Epm1fwBeNphhfSRGtFWaaF7peIkCEtB9B8BTtOK0bjIqi4TPf7+n4Gimw/tWidg0AeK
         BNk5HC44ZXLT3LbOJrOP6JN8HOv38aXnUalYaqqxbR8ndf7HTg4bxzlJ0Elhjv6ICnY3
         O/o+zKdVM1Sbi1AHRmMyUTN/86XuMS8DI5+QWahzgak+EJp/16MsD295AkhLhRARVCHd
         cvhu18Fpq+PPwZvMHN9jc2w+oqo/wYKhOQfyZhoFR98yLkHamXn5DHKhmEbEmwcB7NWA
         JGEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770192533; x=1770797333;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+aJmMLwLhiWWtX5iycDbbfBBWzQlJBoKNaw/NPQdrS0=;
        b=LiU4lRWRRoVpIhvqkWAD8SYsvI//RA7OYE3zerx0BCftRXnqR8aTlLRDQi9LttG5Xw
         DOsnl49HN9haRXUQQRqErSG8IsbBXi3ItQWAGQzWtt0hXLNuU0KRDgVj4WBdig0mjkP9
         vQmptT9nS1qf4tJbJQ5Vdadz1xvS1hbQRi4YZFShshvhVRW+842rrUxMXbzJMkroTbu6
         QzOC/dXQXf5cNkykpvW2utyUQtVqnQEEQY4L2ATDHk4t+PwbeAjZHOmiAY7QHe/+EvKe
         DYbLncVPiQstD1xqQkXxFQNTXAyhIg7bQD+6FrStRBXBATSWicBod9+aOJhIjRBTAGEZ
         iG6A==
X-Forwarded-Encrypted: i=1; AJvYcCV+HLcJeTTxin7rjEoJ2lnQs3Mok0DR+UsjE4I6X0iPUJoadTlWe0C3CnvBOfKSqACHdFeVoAi11KE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvWpmh+uGRAu+bS7aaxOCS3zYC2rdDfwF2JJfuFkZ5ZFolq4CH
	bcOlOtOjbCuLETuB+EYkeb2DwPBB3h4D6oSddbnryao9Vg+dgE4nZ1rqmnc5vwFzsw==
X-Gm-Gg: AZuq6aL9CpDy6/r+0+bCD+TYx5jEINXeF9hZDLr+DYW3fRaC9Q3hhVbnwGlcFX7qx51
	jE8XnkAt0wqWT4vhpiGzkLK0xiGO/I554j6yCCT9yKp6GvT+C7BWHJpDAocTzFwF4fwepmT3K6o
	WWoPBIqsFsUeA24FmEkFuWpyNCR8MB6ikN6d8M/sB//N+BzlYezVxNy7+b7ysjvzI3C6Kdi6Sfr
	DBHLzgVVKyF2H81+1xik3QrLUjzJouofHjjmYF8bB+aNDuSNdZT4UT11vIs/ktzOmjfaJ5KhH0r
	j7H4E10lkAOZS7t8ru8hLgYcPq+mckZ191w6q/s4G4EXnjVt8ue8sg9X39hFWd6r9tKULHKrBSh
	1SFZul8CjHdRoyNaqxAEtc4Jiwk0USnwvbXHFFuApMBnTQxWp1SrMK5/23KcZobJSe6acdzWqJx
	/TQx0YgS0GwwoI4iwRVvN0ZT29n7iFKKdYbv7EL89EyW+c0ipLJswlrzPOhd+hEBa/ipKp55Xyd
	Ao=
X-Received: by 2002:a05:600c:8b83:b0:47e:e2b8:66e6 with SMTP id 5b1f17b1804b1-4830eb61890mr22771225e9.14.1770192533229;
        Wed, 04 Feb 2026 00:08:53 -0800 (PST)
Message-ID: <bdda8006-6361-4e79-b3ef-19409bf98587@suse.com>
Date: Wed, 4 Feb 2026 09:08:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related domctl
 op with CONFIG_MGMT_HYPERCALLS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "grygorii_strashko@epam.com" <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Andryuk, Jason" <Jason.Andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Garcia Vallejo, Alejandro" <Alejandro.GarciaVallejo@amd.com>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-15-Penny.Zheng@amd.com>
 <DM4PR12MB84517CB58BD82B676DD25AE9E198A@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: <DM4PR12MB84517CB58BD82B676DD25AE9E198A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.02.2026 08:50, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Penny, Zheng <penny.zheng@amd.com>
>> Sent: Friday, November 21, 2025 6:58 PM
>>[...]
>> 772,14 +774,16 @@ 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,
>> -    .assign_device  = amd_iommu_assign_device,
>>      .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_MGMT_HYPERCALLS
>> +    .assign_device  = amd_iommu_assign_device,
>>      .reassign_device = reassign_device,
>>      .get_device_group_id = amd_iommu_group_id,
>> +#endif
> 
> FWIS, Alejandro has come up a more clever way to DCE these kinds of op, staying conditionally as callback. Here, I just took this commit as example to show the methodology:
> ```
>          .assign_device  = IS_ENABLED(CONFIG_MGMT_HYPERCALLS)
>                                         ? amd_iommu_assign_device
>                                         : NULL,
> ```
> The compiler has enough visibility to know that static(amd_iommu_assign_device()) is used, and is droppable when MGMT_HYPERCALLS=n. So there is no need to do ifdef-wrapping around these statics now. Later when jason's "--gc-section" patch serie in,  --gc-section will help linker identify them unused when MGMT_HYPERCALLS=n, then remove them automatically.

I fear I don't see why --gc-sections would make a difference when, for static
functions, the compiler already is in the position of removing the functions.

> If we all agreed to use above methodology to do DCE.
> Alejandro also recommended that since we will do this assignments in enough places in this patch serie, we probably want something like MAYBE_OP() somewhere in xen/macros.h:
> 
> #define MAYBE_OP(c, fn) (IS_ENABLED(c) ? fn : NULL)
> 
> I'd like to listen from your opinions on whether I shall do such update for v5, since it is quite a big update

Well, already there I did raise my concern of leaving around function pointer
fields in structures which will only ever be NULL. If respective fields are
removed altogether, there's no risk whatsoever that an accidental use may be
overlooked - the build would simply fail when making such an attempt. Calls
through NULL are privilege escalation XSAs when PV guests can somehow
leverage them, and use of altcall patching would still only downgrade them
to DoS XSAs.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 08:13:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 08:13:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220190.1528895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnY11-00053J-GL; Wed, 04 Feb 2026 08:13:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220190.1528895; Wed, 04 Feb 2026 08: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 1vnY11-00053C-Dl; Wed, 04 Feb 2026 08:13:35 +0000
Received: by outflank-mailman (input) for mailman id 1220190;
 Wed, 04 Feb 2026 08:13: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnY0z-000536-Dz
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 08:13:33 +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 64489c02-01a1-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 09:13:31 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4806f80cac9so35893345e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 00:13:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4831084dd88sm27331995e9.6.2026.02.04.00.13.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 00:13:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64489c02-01a1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770192810; x=1770797610; 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=b3ebmaPAjNzvoE5agTzKt+AxRR5bdLlXUsboEO/6Sfg=;
        b=PatpX11uYIM/YZzKvelml6WJ8U/rpyKZWRYRE1uvDd+LWRDXhIKYE2UECp45iXMuI2
         RlxMxhCDNLzXE3b1HBjeYxOBh8+8reaTngceIggtcGubnco/oD6Dp0Nv2hF4uBImKUz1
         XkqzEcC657Dr6iBNJoLFQ0serLdYdtGicmPD9RL0iuuHOFYmF5IXE1BteGSyssAcPPnG
         1A4dzJCpQmE1gQ5HBiZR6t2xSdiXkIWDosDyOaLlaFVnv6EUxtWexd44nOSL/cp2h4s+
         seSreWgRUf0WCGksRyH1K9u3TR6DhoGfDrolT0hubW1z59ldayqxvLG7nkJMqmRcvxrX
         DOag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770192810; x=1770797610;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=b3ebmaPAjNzvoE5agTzKt+AxRR5bdLlXUsboEO/6Sfg=;
        b=ddgLkSCwfsDkA0snhJmMxqbmqK46SI+roi+La3F51+YFVpDnrdMov70q7kgQr2I7X9
         valWFw841o2WRZA7hLH7Tv/lHQdD4yCHpFXG0ws3EdfN5BmTEWcoBAAFlatRm4eZXpYr
         nPaG4UG2D4Qs0GE7tYdw9kftcdJixMvQNScmpQAjYgybFEzGrgyOaTVqjyhFFhoa5VQC
         JDzURARkYiyEl+DvBSUcU1XEZUZPUFnT6TNADyARxNM+vDOBVVGnowA6SO5Q63bsk2oX
         exPUdCfDLwjN2iV5Pjem+aRwkTy/wyKnJVvU30So8q76wQgv5vuyZ9xw5QaIYSok0vEG
         aOJw==
X-Forwarded-Encrypted: i=1; AJvYcCWFjJjwHmxCUYE0omcQP6/1EZY0pDGOoiprSld+cTkJMOjInqrov0IGVyJmN5hQqTLi7henFmnfcj0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yww0ymtIXUNMLrZ7O7ontq55AhU87qGI9yHTa6nzOVgvIPKyPR6
	XygQXhSVkrbuivuSQ/c+zyAyNGp2TMI4fBhuObUYHjgfYqfgcblSANxcAWKy37nuAw==
X-Gm-Gg: AZuq6aJg5ScIVUkQ1vaxxletCD3xH3TP/vr9K0bBP3FkpImnQnVkihRTLBjPmK6xfgC
	O3wMZnQ1lYopwIWXgqqe0qyAIhSxiOM4LvPQSrftUYM9dGV54iYFhz7dglvAM9cMdfp4meYtv+F
	gFelFh/zPUInjr/D4GNns3e1zyQ8x06kqvGffMHyl/dqiP41WoWtMwHDh7CtKeoSEgkBXNLEFQx
	0aOexbfCEM3Qlz+EVpg7ZvHKnqHyGA6o4fFZDMWVB9xOpJpKRGa2Ct0x15SU2ZSDa71HlNHdCfW
	47Vj3u+z+P0/NMg0kIfIDxSJ+VfNX4h/S1GwFrBJ1wKMHtGsFQEnpBisW7n+a9McBxK61oi+l2f
	qugRIp95k3yHStzxteOrar6zkVj1jBHhquEqqKb6GXR2UTFvVhclFW4KByFb7EQPnVUBOnPKbjQ
	eNfS2d2AktlEubnGRE3WcWbw64vZ5YyZXv8UPm4Y0YC4s0kaej5vm+ocqFVGxWekL5Q3ZMcbVLS
	ak=
X-Received: by 2002:a05:600c:34d5:b0:47a:81b7:9a20 with SMTP id 5b1f17b1804b1-4830e930f67mr25456635e9.9.1770192810550;
        Wed, 04 Feb 2026 00:13:30 -0800 (PST)
Message-ID: <b5fa18dd-d831-4f32-9b29-ac431e54b7b2@suse.com>
Date: Wed, 4 Feb 2026 09:13:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/16] xen/time: move ticks<->ns helpers to common code
From: Jan Beulich <jbeulich@suse.com>
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>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <c7afd490ad9cbeb91b2b46b59cba094c7322edfd.1769099885.git.oleksii.kurochko@gmail.com>
 <2ff79945-f972-49ae-b50a-a7bbff9d4aa9@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: <2ff79945-f972-49ae-b50a-a7bbff9d4aa9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 29.01.2026 09:48, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> ticks_to_ns() and ns_to_ticks() are not architecture-specific, so provide a
>> common implementation that is more resilient to overflow than the historical
>> Arm version. This is not a practical issue for Arm, as the latest ARM ARM
>> that timer frequency should be fixed at 1 GHz and older platforms used much
>> lower rates, which is shy of 32-bit overflow. As the helpers are declared
>> as static inline, they should not affect x86, which does not use them.
>>
>> On Arm, these helpers were historically implemented as out-of-line functions
>> because the counter frequency was originally defined as static and unavailable
>> to headers [1]. Later changes [2] removed this restriction, but the helpers
>> remained unchanged. Now they can be implemented as static inline without any
>> issues.
>>
>> Centralising the helpers avoids duplication and removes subtle differences
>> between architectures while keeping the implementation simple.
>>
>> Drop redundant <asm/time.h> includes where <xen/time.h> already pulls it in.
>>
>> No functional change is intended.
>>
>> [1] ddee56dc2994 arm: driver for the generic timer for ARMv7
>> [2] 096578b4e489 xen: move XEN_SYSCTL_physinfo, XEN_SYSCTL_numainfo and
>>                       XEN_SYSCTL_topologyinfo to common code
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Suggested-by: Jan Beulich <jbeulich@suse.com>
> 
> Nit: Flip the two (chronological order).
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Btw, if this got the necessary Arm ack, I think it could also go in ahead of
all earlier patches in the series?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 08:23:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 08:23:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220201.1528906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnYAO-000791-HB; Wed, 04 Feb 2026 08:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220201.1528906; Wed, 04 Feb 2026 08:23: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 1vnYAO-00078u-EI; Wed, 04 Feb 2026 08:23:16 +0000
Received: by outflank-mailman (input) for mailman id 1220201;
 Wed, 04 Feb 2026 08:23: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=GfmY=AI=amd.com=penny.zheng@srs-se1.protection.inumbo.net>)
 id 1vnYAN-00078l-7f
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 08:23:15 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id be3498e2-01a2-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 09:23:11 +0100 (CET)
Received: from DM4PR12MB8451.namprd12.prod.outlook.com (2603:10b6:8:182::7) by
 MW4PR12MB7384.namprd12.prod.outlook.com (2603:10b6:303:22b::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 08:23:06 +0000
Received: from DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2]) by DM4PR12MB8451.namprd12.prod.outlook.com
 ([fe80::6d8e:2499:8a0a:7eb2%2]) with mapi id 15.20.9564.007; Wed, 4 Feb 2026
 08:23: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: be3498e2-01a2-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OVpgNAj+5REmJPhGROVm2FU/MuurmvkVDeyYnPqVHOptJsfhGVSCn62mOAy2/BNmrMj/abTkCKynT9iB3fDAq8s1Oi9RnI4lsrfAHdlm5HJUNiRX5TlnnxAf/QIJ1li+sgbjXoNX3iS3186o7g5GN7vLSZJ4JFfNqO5pAByVOTAVhX473AEFk6QTaYbHK+8SlZL1SYK6fPtfXAYnTfzrc1tK+TJ3ATNiAdeJpDNr9PFLLTLrm2LqlwCTbKcdmYfYHq6M55e/OP5a2+vgD/qcmHEIQwAwsq3BOHjLbwUv80CugEwy22bpaE2qmsdmDPl7PoNskIym87YBI4rXvJDaaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hBrDKcPbqxsi+b7VbLUJ8fHJFRVNrRw/EiDbnpN6R1U=;
 b=mwN+qawjwnb+nZKhCYzUpJ1+263K8N9M2ubgxWq2BWqYFbkbEQXuOMMfvqhaimSpKt0MNJuPfLBeRxvg4mvJkHTG8CEB9cvFnnu5mXVcGv44+6nXqI8eMeysoBvswVGl9i4aEqS5H3NkMAB3hGfB/6W/Mp9f47hXc+J/WGmnGe7ftYvm1txXRKVjr+psmQR7yzyOk4vEPOvj45UjDTeNPK0aITsoyX1bM86INh2xb9tuitYvOfJly+imY4dC0KCijMKIU2dU3YMZaKyKPO8gsOE2GmKRcdFGja4Su5F356kXYOwg/oyQnYWw12wYDJI6oAYpmbYqr92eUToMEsbFSg==
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=hBrDKcPbqxsi+b7VbLUJ8fHJFRVNrRw/EiDbnpN6R1U=;
 b=cO1LS1vZpkvC0+P5OESG4ZJkRcGNrZaTgtqNeM7QNQs9KQ8GmGBfXZNIZcaHH53kaguo01Vr7j2pco7x8fSyOkZEUSodFLDcYjwUU9cLZw7l6VmBwGIMskvMPtJweHQSRgnEnOPvuzSfv6dqiQ6OcjYauBtchKXFjYEKfs6y9bc=
From: "Penny, Zheng" <penny.zheng@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "Huang, Ray" <Ray.Huang@amd.com>, "grygorii_strashko@epam.com"
	<grygorii_strashko@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, "Andryuk, Jason"
	<Jason.Andryuk@amd.com>, "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "Garcia
 Vallejo, Alejandro" <Alejandro.GarciaVallejo@amd.com>, "Stabellini, Stefano"
	<stefano.stabellini@amd.com>
Subject: RE: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related domctl
 op with CONFIG_MGMT_HYPERCALLS
Thread-Topic: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related
 domctl op with CONFIG_MGMT_HYPERCALLS
Thread-Index: AQHcWtXdwWaFTRetvk29bNPbH/CVXLVylQnwgAAQSACAAABkEA==
Date: Wed, 4 Feb 2026 08:23:05 +0000
Message-ID:
 <DM4PR12MB84517BAB14591F2D46BF082FE198A@DM4PR12MB8451.namprd12.prod.outlook.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-15-Penny.Zheng@amd.com>
 <DM4PR12MB84517CB58BD82B676DD25AE9E198A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <bdda8006-6361-4e79-b3ef-19409bf98587@suse.com>
In-Reply-To: <bdda8006-6361-4e79-b3ef-19409bf98587@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=2026-02-04T08:23:00.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_|MW4PR12MB7384:EE_
x-ms-office365-filtering-correlation-id: 1945254d-b25b-4ada-944c-08de63c69f2c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?TkJDRFNWeWkveHRWUy9oeHNzL2JZYjJmbW9adXYxZnZLeTZVblhoaEJIeDYw?=
 =?utf-8?B?ZG9NNjhUVjJiVUlxZ1Q0amdaWUpLSjJOaHY1a3JwUVJhbjNHcHRSMkR0cWpi?=
 =?utf-8?B?emtTdDE2VTAwVEw0STVZZTBaS05EcmYrUkJLMDNQZFh0K2h3UkVTWXpnaGNF?=
 =?utf-8?B?K2JkKy9GTm5OQk5oa3Bzajd3ay9aY2NRRDZ5YWJzLzdEYU1WaFBtSUs5VE83?=
 =?utf-8?B?eVJ3aWtyVmJRSGFxcURpWnhZdkg1enh3Y2FBR1gzNGpuTmRjOHd2Vmhzc3BJ?=
 =?utf-8?B?MG9nMkxpOUdSc2dvVm5pTXNzaDlIZmw4aTJPWjF3NVRoVElNMU5SMDVzRVVK?=
 =?utf-8?B?MnA5WjJuSytXZFdvRlpkNUFOMmlmY2N3cy8vN3hNdzI5MllCdlpMN1djRmdz?=
 =?utf-8?B?UXdEOWUwaTBhUU50QlZ3ZnJWdFFxaHh2bk1qRDFYaldIQktnNXJHWHU4YjlQ?=
 =?utf-8?B?WWtCZnp3YksrSGIzVFhmTTh1Qkx5WlhLekYrbkpyMXBucm9MUmQrMFdHeW1q?=
 =?utf-8?B?VDZObjdrbFA5UGhHUFJCSmdaTzZQa1ZWLzZRSlk4dnVWN0hoUlZGUTNwQVd5?=
 =?utf-8?B?R2VuMy8zWWpwWHNwSTVhK1BRR0w2ZzRJSk1HVFA0c2xTWS9HU1hVU0JlMUox?=
 =?utf-8?B?SVVUYit1bEJMVVFHd0NGcENONWtnR1daYzd0U2tjc0tYTUk4OVZZM0JDcWNv?=
 =?utf-8?B?T0xTOExlT1djZm5Edi9TT2ZKcEw0RTFUL2xjbmtQTkpXd2FQUHN1SUlKbnhY?=
 =?utf-8?B?cENkTlU1M0t3VnlMamhqVkFGOW1SRTc2eGtHVEdpQnJVUlpmWXBWS1FTdUZQ?=
 =?utf-8?B?MmN6cjhTZFNodzJ0S1dKMUE2OTg4bEc1NkxEUzR5c1FJTnJOeUJJaDNaK240?=
 =?utf-8?B?UXQyUkRSaURsbFVqWnVCeGI0UktuMUIwZXk5N2VPY2lyc0x0eFhDM1ByZHdh?=
 =?utf-8?B?V1ZzVCtvZkJGQkFYTWx3WVJqdGt3QXkzVHg5M01WVk1tZVpDL3VjS1R3MjNh?=
 =?utf-8?B?TWZmald5RGIzdUh1TDhmeEtpV0FLa3E4cy96WFk3ajBIWlh5YnJLTXFveHZZ?=
 =?utf-8?B?RFVFOW9jVEg0MzhTNjRPWGpZNFp5OUZlbi83bGFFYWNHeUJaYnhJWDFlcjg4?=
 =?utf-8?B?WkViRjN3VS9hSVQ3SzR2eFdVNmQ3bTZ5bmhpbGwzRHRrSEJubndSWW9qdFZ0?=
 =?utf-8?B?Ym54MzNaVGJHWUJWbU5Cb2c4MTZlQnNIS1hVa3FLTUVOMTNTU2VHSStneTI2?=
 =?utf-8?B?TjNkQ2cxeWkwNTRiM1h6MEpEWnRXSnpWa0UxVk9nWmxFNHpnWjM1c1dpUThC?=
 =?utf-8?B?UXM5Qm9QU3ZNME5UL0hidHpvNzFtZ1dnWkZ4aDMzTmFiQytITE1iOFFZczZq?=
 =?utf-8?B?OUt1UWdkVklqL1VDNXdYL1praTJ2TDMvZlFNZWFhTi9MZSs5UExIOWE0YU1Y?=
 =?utf-8?B?cjBGREZpbVRMRjlOL25ubTc4ME1SZDgvNVFJQmh3RHF2ZG1GajB3TnZ3d2lj?=
 =?utf-8?B?Rml2eWw1VzF6cklhOWtWeEtSaXVTWTc1elFuUzBMZ3lneDkyd1dyaEh6ZXhn?=
 =?utf-8?B?akhrRi8vQUg4bXNBVVdST3pJVjhOaHEwbVF2QWZKZldaWW15NStsalJKRWNJ?=
 =?utf-8?B?d2poMTNVb2x2U08wMmgrek0yTmNiaVk2eEV2dmpqK2tsWVhGRzNEMG1sQkxD?=
 =?utf-8?B?LzQxWEt3VThzdVk4SlhkRXQxcHhET09saWl6cHlaRWlXdVFiVjNteU95Y0FC?=
 =?utf-8?B?QU40QXNWNEhjSFRmTEpsY0dpeE1WTm4wNmRDWXRNbmFtbHo1QWk3TGFLLytu?=
 =?utf-8?B?d0xOTnFLWFFhQU13R3g2cEFuR0x2T2xtcEcvQzF4WVNqOStKNHZpbi9HOEJI?=
 =?utf-8?B?ZWxMQkF5MWtkRWcvNjlFblB2T0h2UFR2QWVIUXdMSU5JSWdxOHVPcEkyekhB?=
 =?utf-8?B?NkI5RzVsWFZUWUREOEJIRGtFYktmMW03bmVLdi9OSlByZVlUQW5SNXYrdCta?=
 =?utf-8?B?R09IV2haQ3I5K0JZOVp0cUE5ZEVPQW44WE53Z0JneTdZWjF2VThHaGlUU01D?=
 =?utf-8?B?WWVWdDR4RGJiWWt5bnVTa3orRVdZVlZBUnNNTytRM1dvbXo0UzROZG5qZHlG?=
 =?utf-8?B?d1NxR3FJTmJWdUVPVkJSNGRIc3lnMitTZkN1S3ZvOWFKR3YrejVJK3N3cDNz?=
 =?utf-8?Q?gEMzrvXRtVy8pQ8rWY7V/Ws=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)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?KzdoUG5TRC8yMDhxZmFuYkFLSlM3S3NEeVoyK2NaNTR2TDJYWUZOL2IyZG13?=
 =?utf-8?B?MGMrMDRCb2M1RUVrUDFUd3h2ZlVFcGJpanFxVWs0SUNjd3l6Z1hrdGxvT2Rw?=
 =?utf-8?B?QTFpSTRTQ05hNVEzTzNGUWs4NTNyYnhZWnhnZXovcllWUzZQM09KSWJYUUQ0?=
 =?utf-8?B?SXpsWXdIOFVpS21OWEl6dkM1bklTc2g5WnNlMFc2K09JMHdxajYxbi9CQTFC?=
 =?utf-8?B?dEhkSVFERU1oUlRZQU5pN1h5MU8wWlJXTXVic29YdU9RVFNnRVNpYThQS1Rm?=
 =?utf-8?B?SFYwZ0g2RjZtTnhqTE5WaGY2YjA0eUtzN0haQTJyMFJTRkVJRXFOYldWOGtR?=
 =?utf-8?B?VUZyMlR0OVNMaWk4L0E3VXdyZGx2Ky81OWNudjZZOWxxR0NNR1J2MWFCVlFU?=
 =?utf-8?B?UnI1UURuNDZmYlMwQzhyTE4xRldnbFpGQ045QlI0MThhK01xbkVRa2lLNU9v?=
 =?utf-8?B?QTd4ZWNXL0dPbUVGcEIrOXEvWk5FV3VhN2tYNDlHQndUdjJsYW4rRUwvci94?=
 =?utf-8?B?M2dDcTM0TWtWZWZMMjU2YUxBb1pRY0ZraFQvdnpwQ0JDa2Q2UURkZDVac0FB?=
 =?utf-8?B?akYvUzU1bFFLMlNyVEFZcDFPaEJ2SFFXTzBxYkdIeGdBSkVqU00vTkNLbW8z?=
 =?utf-8?B?aFpnRzN5WGRXeVVkSGcrZkdETGhXcUpOSzlrdG15T3hBQ2dUcWV6Z2FEQzJ5?=
 =?utf-8?B?UC8wcERrQ3Ivd0tRZ2pkdExOVHd2UVZkUGVmaityOTFXdERWZTc5dTBYQWZk?=
 =?utf-8?B?cUFzTklKYU80SzVoMU1paVhYSC8wdWk1bmVoSWZOaGp5dHZRaW1PUXpTQnNv?=
 =?utf-8?B?czRGRG9Yc1BRUGJwZWxjS21CYXY3bEV3OTBTQ2xKaVBZZzN2ZW52c0Q3TGlR?=
 =?utf-8?B?MHBnT2pFYVhncGpLSEthWnlGektjZWNsR05rQmx2TWxDVGdCM2JZT2N6MStz?=
 =?utf-8?B?QTNvZ21Eakw4cXRsWDg2T2ZzSCtVbnZ3UWJ0WlFIOHgwNks3SEN0SWZ0Nldi?=
 =?utf-8?B?NlUvbm9SMHR2WlBBOHZ2QmFLTGlwNDVVcXMzbTViNmE4MmNyZ2xMTlNlL1RQ?=
 =?utf-8?B?QTBhL0oxZjBqTlM2MVpaUUJjV3VSWE8vT3l6M1ZPeEJJNlpsWkxUczlTMkJF?=
 =?utf-8?B?VWc0MXRxRWtUU0dEdi9TMlJpRVlYMTNPZE1rN0JXVW5jdlJUbDF3enUvK21w?=
 =?utf-8?B?WCtRMGIyVlFmR2JaeDRabFNMcThrc0VkTXkwblZ4R0grVWhVeEtoMzlEK2ZT?=
 =?utf-8?B?d1RwUXJnUjNvaC9QVnRxWlFrZ2RVbDJLSkxESnVZT1ZwU0VuNXBNSHcwbk5H?=
 =?utf-8?B?NUJ0cGVvQ1g3Ly9WeDZGWkxHN0hvNnVsY3dvb0pYeSs1VTZ4bCtUekhma2hT?=
 =?utf-8?B?TDdYWnAzbmVVdUJxK3JGbGFUb0FRZjIyS2hNa2tuU0F4elR1N3dqUGVSR0pG?=
 =?utf-8?B?dlQyemdFK2RldktveVdGYWNQYTdSbHlsTEJ1QmNqczMzU1Exc2h2d3YzUS9G?=
 =?utf-8?B?bG1EeWo5VC9PMm1kZTlySTFDNlRQUnE1dlJ6WFFxVVVzSmhVVzRwbUw3VTVZ?=
 =?utf-8?B?SXpnR0pPTldKSmxNbllPRkJqVWNaamFKUmNrcmt3UGZTZk5RbS9aREF3OXpj?=
 =?utf-8?B?THFKMUpDc2FCZjJmVW1VTEZ0disxN2ZwbWl2UlVaN2d5Z2ZxYUhBeHR6OXhO?=
 =?utf-8?B?Vk5PVFI2WnBQRUE5RUdXYy9LZENTakE5U3JUMTAxNi8raUVINUFjY1JtUHhW?=
 =?utf-8?B?OG5kZHRsZlBDdUladU5vM3lNM1lPK0k4Vkxsd2x5SXZtMkZmN0llV3dOODB6?=
 =?utf-8?B?THZEbzBKM1RuYlZYVTJTVUVJdk9peDJDWldBV21wZGdramJtRnUvcmxyRUNE?=
 =?utf-8?B?Q1R3c2RHZFFMSXVka2NVbjczUmIwWjc2ZmR3SFVrcjcyNEYwUkxyRFR3UFZv?=
 =?utf-8?B?U1IySUQwTFFtV3JQSWpOV1ZPazF2dGNFSC9jdDlCclVqdWFicHA4NC82bWtB?=
 =?utf-8?B?dkFFMnNQUnJ5eTh3NHVaVEtkaG15czVvWURBK1ZqQVNNUHMvSjNDZ1N5bjBw?=
 =?utf-8?B?ZWdwTGdrOTNoNUVLL1NLelJWTzQ2S0NMVDh0UkpOTDVteEx6NFdJQ1BCYUxi?=
 =?utf-8?B?TUxUK0QwVFJ4YW9wdTk2MWJGT21sV3VLRTdFY3I4SmVDbVNCZVIzcXhNc3pG?=
 =?utf-8?B?Q3I5dkpzcmpJSXAzR3ZjZVJvcFpjbm5QT0hsc1VWeXlwMzQ4OVdlSzJDeFhx?=
 =?utf-8?B?RHZDaUF1QkVDOUpGUkRJTVBnZEliMXlPTFJNYStvYXlGc3FaVmxsT2UyRWZM?=
 =?utf-8?Q?gMTheo5Y6wxatcFLyl?=
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: 1945254d-b25b-4ada-944c-08de63c69f2c
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2026 08:23:05.7983
 (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: RBIhF9k8IjqUI9OngP+3QtE4z/LE5SC9/8wRxNxW221ofEoPYlYrar+ebHxndX2focSk2E8jXKiuAIuasEJhCQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7384

W1B1YmxpY10NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1
bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkgNCwg
MjAyNiA0OjA5IFBNDQo+IFRvOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5nQGFtZC5jb20+DQo+
IENjOiBIdWFuZywgUmF5IDxSYXkuSHVhbmdAYW1kLmNvbT47IGdyeWdvcmlpX3N0cmFzaGtvQGVw
YW0uY29tOyBBbmRyZXcNCj4gQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPjsgUm9n
ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ow0KPiBBbmRyeXVrLCBKYXNvbiA8
SmFzb24uQW5kcnl1a0BhbWQuY29tPjsgRGFuaWVsIFAuIFNtaXRoDQo+IDxkcHNtaXRoQGFwZXJ0
dXNzb2x1dGlvbnMuY29tPjsgeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnOyBHYXJjaWEg
VmFsbGVqbywNCj4gQWxlamFuZHJvIDxBbGVqYW5kcm8uR2FyY2lhVmFsbGVqb0BhbWQuY29tPjsg
U3RhYmVsbGluaSwgU3RlZmFubw0KPiA8c3RlZmFuby5zdGFiZWxsaW5pQGFtZC5jb20+DQo+IFN1
YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMTQvMjRdIHhlbi9kb21jdGw6IHdyYXAgcGNpLXN1YnNldCBp
b21tdS1yZWxhdGVkIGRvbWN0bA0KPiBvcCB3aXRoIENPTkZJR19NR01UX0hZUEVSQ0FMTFMNCj4N
Cj4gT24gMDQuMDIuMjAyNiAwODo1MCwgUGVubnksIFpoZW5nIHdyb3RlOg0KPiA+PiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBQZW5ueSwgWmhlbmcgPHBlbm55LnpoZW5n
QGFtZC5jb20+DQo+ID4+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgMjEsIDIwMjUgNjo1OCBQTSBb
Li4uXQ0KPiA+PiA3NzIsMTQgKzc3NCwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlvbW11X29w
cw0KPiA+Pl9faW5pdGNvbnN0X2NmX2Nsb2JiZXIgIF9pb21tdV9vcHMgPSB7DQo+ID4+ICAgICAg
LnF1YXJhbnRpbmVfaW5pdCA9IGFtZF9pb21tdV9xdWFyYW50aW5lX2luaXQsDQo+ID4+ICAgICAg
LmFkZF9kZXZpY2UgPSBhbWRfaW9tbXVfYWRkX2RldmljZSwNCj4gPj4gICAgICAucmVtb3ZlX2Rl
dmljZSA9IGFtZF9pb21tdV9yZW1vdmVfZGV2aWNlLA0KPiA+PiAtICAgIC5hc3NpZ25fZGV2aWNl
ICA9IGFtZF9pb21tdV9hc3NpZ25fZGV2aWNlLA0KPiA+PiAgICAgIC50ZWFyZG93biA9IGFtZF9p
b21tdV9kb21haW5fZGVzdHJveSwNCj4gPj4gICAgICAuY2xlYXJfcm9vdF9wZ3RhYmxlID0gYW1k
X2lvbW11X2NsZWFyX3Jvb3RfcGd0YWJsZSwNCj4gPj4gICAgICAubWFwX3BhZ2UgPSBhbWRfaW9t
bXVfbWFwX3BhZ2UsDQo+ID4+ICAgICAgLnVubWFwX3BhZ2UgPSBhbWRfaW9tbXVfdW5tYXBfcGFn
ZSwNCj4gPj4gICAgICAuaW90bGJfZmx1c2ggPSBhbWRfaW9tbXVfZmx1c2hfaW90bGJfcGFnZXMs
DQo+ID4+ICsjaWZkZWYgQ09ORklHX01HTVRfSFlQRVJDQUxMUw0KPiA+PiArICAgIC5hc3NpZ25f
ZGV2aWNlICA9IGFtZF9pb21tdV9hc3NpZ25fZGV2aWNlLA0KPiA+PiAgICAgIC5yZWFzc2lnbl9k
ZXZpY2UgPSByZWFzc2lnbl9kZXZpY2UsDQo+ID4+ICAgICAgLmdldF9kZXZpY2VfZ3JvdXBfaWQg
PSBhbWRfaW9tbXVfZ3JvdXBfaWQsDQo+ID4+ICsjZW5kaWYNCj4gPg0KPiA+IEZXSVMsIEFsZWph
bmRybyBoYXMgY29tZSB1cCBhIG1vcmUgY2xldmVyIHdheSB0byBEQ0UgdGhlc2Uga2luZHMgb2Yg
b3AsDQo+IHN0YXlpbmcgY29uZGl0aW9uYWxseSBhcyBjYWxsYmFjay4gSGVyZSwgSSBqdXN0IHRv
b2sgdGhpcyBjb21taXQgYXMgZXhhbXBsZSB0byBzaG93DQo+IHRoZSBtZXRob2RvbG9neToNCj4g
PiBgYGANCj4gPiAgICAgICAgICAuYXNzaWduX2RldmljZSAgPSBJU19FTkFCTEVEKENPTkZJR19N
R01UX0hZUEVSQ0FMTFMpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID8gYW1kX2lvbW11X2Fzc2lnbl9kZXZpY2UNCj4gPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOiBOVUxMLCBgYGAgVGhlIGNvbXBpbGVyIGhhcw0KPiA+IGVub3Vn
aCB2aXNpYmlsaXR5IHRvIGtub3cgdGhhdCBzdGF0aWMoYW1kX2lvbW11X2Fzc2lnbl9kZXZpY2Uo
KSkgaXMgdXNlZCwgYW5kIGlzDQo+IGRyb3BwYWJsZSB3aGVuIE1HTVRfSFlQRVJDQUxMUz1uLiBT
byB0aGVyZSBpcyBubyBuZWVkIHRvIGRvIGlmZGVmLXdyYXBwaW5nDQo+IGFyb3VuZCB0aGVzZSBz
dGF0aWNzIG5vdy4gTGF0ZXIgd2hlbiBqYXNvbidzICItLWdjLXNlY3Rpb24iIHBhdGNoIHNlcmll
IGluLCAgLS1nYy0NCj4gc2VjdGlvbiB3aWxsIGhlbHAgbGlua2VyIGlkZW50aWZ5IHRoZW0gdW51
c2VkIHdoZW4gTUdNVF9IWVBFUkNBTExTPW4sIHRoZW4NCj4gcmVtb3ZlIHRoZW0gYXV0b21hdGlj
YWxseS4NCj4NCj4gSSBmZWFyIEkgZG9uJ3Qgc2VlIHdoeSAtLWdjLXNlY3Rpb25zIHdvdWxkIG1h
a2UgYSBkaWZmZXJlbmNlIHdoZW4sIGZvciBzdGF0aWMNCj4gZnVuY3Rpb25zLCB0aGUgY29tcGls
ZXIgYWxyZWFkeSBpcyBpbiB0aGUgcG9zaXRpb24gb2YgcmVtb3ZpbmcgdGhlIGZ1bmN0aW9ucy4N
Cj4NCg0KSSBtYXkgbWlzdW5kZXJzdGFuZCB0aGUgRENFIHByb2Nlc3MuIFdpdGggdGhpcyBjaGFu
Z2UsIHdlIGRvbid0IG5lZWQgdG8gcHV0ICNpZmRlZiBDT05GSUdfTUdNVF9IWVBFUkNBTExTIGFy
b3VuZCB0aGUgc3RhdGljcyAoZS5nLiBhbWRfaW9tbXVfYXNzaWduX2RldmljZSgpKS4gU28gcHJl
cHJvY2Vzc29yIHdpbGwgbm90IGhlbHAgdXMgcmVtb3ZlIHRoZW0uDQpCdXQgaWYgd2UgZW5hYmxl
IC0tZ2Mtc2VjdGlvbnMgZmxhZywgaXQgd2lsbCBoZWxwIHVzIHJlbW92ZSB0aGVtIGluIGxpbmtl
ciB0aW1lLCBXaXRob3V0IC0tZ2Mtc2VjdGlvbiwgdGhleSB3aWxsIGJlY29tZSB1bnJlYWNoYWJs
ZSBjb2Rlcy4NCg0KPiA+IElmIHdlIGFsbCBhZ3JlZWQgdG8gdXNlIGFib3ZlIG1ldGhvZG9sb2d5
IHRvIGRvIERDRS4NCj4gPiBBbGVqYW5kcm8gYWxzbyByZWNvbW1lbmRlZCB0aGF0IHNpbmNlIHdl
IHdpbGwgZG8gdGhpcyBhc3NpZ25tZW50cyBpbiBlbm91Z2gNCj4gcGxhY2VzIGluIHRoaXMgcGF0
Y2ggc2VyaWUsIHdlIHByb2JhYmx5IHdhbnQgc29tZXRoaW5nIGxpa2UgTUFZQkVfT1AoKQ0KPiBz
b21ld2hlcmUgaW4geGVuL21hY3Jvcy5oOg0KPiA+DQo+ID4gI2RlZmluZSBNQVlCRV9PUChjLCBm
bikgKElTX0VOQUJMRUQoYykgPyBmbiA6IE5VTEwpDQo+ID4NCj4gPiBJJ2QgbGlrZSB0byBsaXN0
ZW4gZnJvbSB5b3VyIG9waW5pb25zIG9uIHdoZXRoZXIgSSBzaGFsbCBkbyBzdWNoDQo+ID4gdXBk
YXRlIGZvciB2NSwgc2luY2UgaXQgaXMgcXVpdGUgYSBiaWcgdXBkYXRlDQo+DQo+IFdlbGwsIGFs
cmVhZHkgdGhlcmUgSSBkaWQgcmFpc2UgbXkgY29uY2VybiBvZiBsZWF2aW5nIGFyb3VuZCBmdW5j
dGlvbiBwb2ludGVyIGZpZWxkcyBpbg0KPiBzdHJ1Y3R1cmVzIHdoaWNoIHdpbGwgb25seSBldmVy
IGJlIE5VTEwuIElmIHJlc3BlY3RpdmUgZmllbGRzIGFyZSByZW1vdmVkIGFsdG9nZXRoZXIsDQo+
IHRoZXJlJ3Mgbm8gcmlzayB3aGF0c29ldmVyIHRoYXQgYW4gYWNjaWRlbnRhbCB1c2UgbWF5IGJl
IG92ZXJsb29rZWQgLSB0aGUgYnVpbGQNCj4gd291bGQgc2ltcGx5IGZhaWwgd2hlbiBtYWtpbmcg
c3VjaCBhbiBhdHRlbXB0LiBDYWxscyB0aHJvdWdoIE5VTEwgYXJlIHByaXZpbGVnZQ0KPiBlc2Nh
bGF0aW9uIFhTQXMgd2hlbiBQViBndWVzdHMgY2FuIHNvbWVob3cgbGV2ZXJhZ2UgdGhlbSwgYW5k
IHVzZSBvZiBhbHRjYWxsDQo+IHBhdGNoaW5nIHdvdWxkIHN0aWxsIG9ubHkgZG93bmdyYWRlIHRo
ZW0gdG8gRG9TIFhTQXMuDQo+DQoNClVuZGVyc3Rvb2QuIENvbmRpdGlvbmFsIE5VTEwgcG9pbnRl
ciBmaWVsZHMgYXJlIGJldHRlciBiZSBlbGltaW5hdGVkIHdheSBkb3duIHRvIHRoZSBzdHJ1Y3R1
cmUgZGVmaW5pdGlvbiBzdGFnZS4NCg0KPiBKYW4NCg==


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 08:36:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 08:36:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220209.1528915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnYN1-0000jb-Iv; Wed, 04 Feb 2026 08:36:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220209.1528915; Wed, 04 Feb 2026 08:36: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 1vnYN1-0000jU-G7; Wed, 04 Feb 2026 08:36:19 +0000
Received: by outflank-mailman (input) for mailman id 1220209;
 Wed, 04 Feb 2026 08:36: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=THT1=AI=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnYN0-0000jL-75
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 08:36: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 8e17cf0f-01a4-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 09:36:09 +0100 (CET)
Received: from AM6P191CA0031.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::44)
 by PAVPR08MB8822.eurprd08.prod.outlook.com (2603:10a6:102:2ff::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Wed, 4 Feb
 2026 08:36:04 +0000
Received: from AMS1EPF00000044.eurprd04.prod.outlook.com
 (2603:10a6:209:8b:cafe::c8) by AM6P191CA0031.outlook.office365.com
 (2603:10a6:209:8b::44) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Wed,
 4 Feb 2026 08:36:02 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000044.mail.protection.outlook.com (10.167.16.41) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Wed, 4 Feb 2026 08:36:02 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAVPR08MB9625.eurprd08.prod.outlook.com (2603:10a6:102:310::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 08:34:59 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 08:34: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: 8e17cf0f-01a4-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=b2RXaxfoFPSzsRz1ZLf1iwQM2POBBfxVn00BM+4xgqNk2idDZ2eQvEs4ql91ZsKh1vrAAho0uqCaudHFGRfL0XzY3CDfRt3LmrA5OMBakLmltgq3nlvJWdOVtiYxH3xPD6Jy5qHx/adtjIMyXl7pkmxi6bMoHdNb5CIRaL9NARTsDvtPuUqL+WtdXVc4ONlYfHrddIPoI/fWbhNfCWA4bAdylbGs1cl/mAiztF2DwQetRCYnrhgnWUq2SzDK+52WfGqD4JulWjJ2hwgoFzfR9owwbPvtugqdLFZBKh2YSazEu7OQ2WPja+o6xapgGqRFBf3KfZgwVBna604Pp+UTYQ==
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=mLp6p/x+WMMVlG386HgFX8zvxq5M5ISiafLmRsagybY=;
 b=BtatWjH07S2MbXsPJWeO2zZrt7xJP525SlN5auQZfn9VECLBjeL64Z09dE57cJQA5ZDJM3moNX7nnUn7NebAY7AapUGzjCBuyY6QM/DfdGT9KwK7CbOqi4N6VgrblLM8PyEYaKs1u+bKpXd8YIeMNZjkBkAXm27dNzieqL4z29V+HpAwHsWiGr2DyWovJyAgQMuuiTPtUfdudTSiVlyfW//f4DqFp2cTaC5hu1nPRJIVad0TMyRekf13iR3W9u1tX/dckf08zjOeC+mg/sW9gNlgJesrdLVgi7RQCzgLtMLbkAmHu5PvBv/ryvktcrJurm/1YvvDfL7YJ+/FmTfMtg==
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=mLp6p/x+WMMVlG386HgFX8zvxq5M5ISiafLmRsagybY=;
 b=mwXqijK6pf9YjZ8z9bJEKhKk0dWuheOSQwK+oU+6Zu6WZ8KZMNUAXemg/NrSQEmIT7sljDZvWuxlll8hDcYMuRaClWkEw9UdJUzk1HwUkgTR91sNLRqzRaTo7Y6aWaW7BJWvEZxpR8vOo/XBZFjGHdTkjxMUhutg8/Aiy9UZnao=
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=LrDzLaF4B/OK1g/eSJ/FCRJLZZWuX1RT/n/8PHNnU5iTVpO9/p4q1FJVAOPwe7zRg0PhujXR+yKHBW9PG11tpkZ7d4yu08wkdEpF/t6aXd9VsCRpVMiW1/S8kHLNrmsPL3wTXdFPIuvffzb9sRSXJ3YNbOyOu6cnPA7Agun0CgazW2ZfsXazD2hTwDGTH3iHQD4JWXD+8iJ3WvsRpGAEjZ4hg0EcIgrkd7akEnfwx5NwltbsBpQQmv8SeZpinJMlk1rDqFxCZuRq2BBHsyYepM6X86wDvB4UbThj46DMW2swfxrKNhBRBp52llFk2Ox2JC6oZuCinbEG8W1uxylYTg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mLp6p/x+WMMVlG386HgFX8zvxq5M5ISiafLmRsagybY=;
 b=h2YYGf1TjU3yP3yIDYNAMP2h2paZJemp7Se9p8PMr9fl+F6IsMhxYDNNTxUCsbMVEP0E0us+/x4XwSOBOpwdpPcPYTUxaSxcu3qMIDENObuQ1Qc7v1GYAWFQsnoC7+gg7MDiaa1cylME27BJaDuQid6vOgIWe8R1EFc2/Foq4nK1b6fppAhX74sbvs76kQs3qYEZmfa+G34iodAHcblH68Z6TWJMwqk3xh3cLfCuc+UbXR0g2wo3feOh3CqH8zQYVNBLD8E4jKkpp0Mlo3542Quv8izu2rOWcQmcBthsjydr7XKsrra136wQKf7rBswHp4k9/y7a6jTfyW/f1/I/6Q==
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=mLp6p/x+WMMVlG386HgFX8zvxq5M5ISiafLmRsagybY=;
 b=mwXqijK6pf9YjZ8z9bJEKhKk0dWuheOSQwK+oU+6Zu6WZ8KZMNUAXemg/NrSQEmIT7sljDZvWuxlll8hDcYMuRaClWkEw9UdJUzk1HwUkgTR91sNLRqzRaTo7Y6aWaW7BJWvEZxpR8vOo/XBZFjGHdTkjxMUhutg8/Aiy9UZnao=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	=?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.com>, Juergen Gross
	<jgross@suse.com>
Subject: Re: [PATCH] build: avoid Paths.mk in hypervisor build
Thread-Topic: [PATCH] build: avoid Paths.mk in hypervisor build
Thread-Index: AQHchV6cHH8qTLh8YEa40ejcvCxMQLVyV4CA
Date: Wed, 4 Feb 2026 08:34:58 +0000
Message-ID: <41BA3E9A-19D7-42E0-A774-DB9CB5371564@arm.com>
References: <ab8a6f18-522c-4493-b46e-0f51c4350bc2@suse.com>
In-Reply-To: <ab8a6f18-522c-4493-b46e-0f51c4350bc2@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAVPR08MB9625:EE_|AMS1EPF00000044:EE_|PAVPR08MB8822:EE_
X-MS-Office365-Filtering-Correlation-Id: cfb0b75c-272b-4adc-7a96-08de63c86e15
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?ikCjy4Xgq21SRWX8yylISDO55sIS/hTwLWR3SPnMNRGc7bHT4WMpZSIrHz?=
 =?iso-8859-1?Q?Ewr/P7xMukvejoGi76Npf2AQr8cShPPYraAy0mMZUCW0O0gr4knfIlcaJh?=
 =?iso-8859-1?Q?a3NPbY7Gdj2w9McjaVENpzJla9Omp5BDSvGSCzFoTSKM4J176AiZelgRZM?=
 =?iso-8859-1?Q?xKciXkHrkewzOFxRtRLiv9ySp4/5+T7Vi+ck+epr9HOaiyST3mlyGBGYo5?=
 =?iso-8859-1?Q?aV7xE5kcdEqwakDxBOV4/Dz1d2PZV+Yzx4DWwy9z7yV+l5QnfrmlkdtkCM?=
 =?iso-8859-1?Q?5vTo5m33TuaF82MLyD2Kf3DKQWMmpTj3p9KiN9CbUUygX3xPVkTC9GTjQK?=
 =?iso-8859-1?Q?/1hZAeDjYRiuhmDUKjV6X+1hQay38X685MhCh740Ya+OaOCVW2e0vpVmSo?=
 =?iso-8859-1?Q?cOZ/TOpP0eCjUDHKf+h4tlMkHsqoM2j3acuCMQ1Vo0vNmbWWSQQ0yJuwVY?=
 =?iso-8859-1?Q?+U/9CY9tnm/2fpplaPpL3crlmYUjw2n8C51OBI/JnZp+4ebI0TvYcQJg6R?=
 =?iso-8859-1?Q?BzxD6TPgSGg/2JcpTRncQ0+UNIP4//gVsBREP+fJJWXLUtjn5nIAxFpU1t?=
 =?iso-8859-1?Q?f0oiYo0YqCirrny3LwAie7f4rub6Ev2qvQJusD7FErVQuIeCjahPS0wVXz?=
 =?iso-8859-1?Q?uO1FUeXev5efnjLgPL4DFhiqCk7Ts+Ep/Ls3pK+ODOr4AFuJsAcdVdBXeS?=
 =?iso-8859-1?Q?77uRWQ29kys0Pvdf4jpFVL+o9qrU1lzTfFGrQsi6ZjX63/oEgTiJhqfsZT?=
 =?iso-8859-1?Q?/wxup7PtQYwgzVHAOjIFOszICgDRaZ9pkkKye4UPFhf+6ppCSpqW3c3mET?=
 =?iso-8859-1?Q?PhKIzxacY3NxWR7bEUNXpdtxre4gwAQhRXLai1SfhlEBp+TyZLnOwXG360?=
 =?iso-8859-1?Q?mCf2sP6Mwtd+JCHoc4+erXdwDLh2XbxA8uLiEjyPM0Gu/BOjzRLMAE2hCL?=
 =?iso-8859-1?Q?cPwGNPWuWmNFyYZY2aEfAK1ltsRMHzEb0uLaCmy4nPpHIgJ3JK717adM1T?=
 =?iso-8859-1?Q?E154+nOZ/NQ6vqoIyXzrNz3uy5MRtItMq4vYVmKgY8JKs3uefG9gamev4G?=
 =?iso-8859-1?Q?qXsFQkdZBsOxiC+ivYaZaKNMpMrDn6kksa8VBSStPCPPJWsrxoDFXhj9qu?=
 =?iso-8859-1?Q?HysY52hqrHPS7irBILIRwhsepyeAKmIqhd9AcOfotWj7tPqWMXjs78UQTw?=
 =?iso-8859-1?Q?TY4Hqo8pyqFN5zEZVRv4mLdxjUu0jK6QkwOLoM8ZYnq6EQARbILrnG9byw?=
 =?iso-8859-1?Q?mGYtp8LrYO0H0Td7aJcHusmZsJXQNPudBAN2QRlMLppqKKBcBgKn6uQkOz?=
 =?iso-8859-1?Q?JxA6ZhQH5TVWuowkfvpIIxzcAijcbkxiVQKNMOUHUh+MLRiAqDjuqSa0+V?=
 =?iso-8859-1?Q?f02+VT+NPE16YSXRmunkFeaABfrkcNX0uHgAfhuRYOZ3NKd6t+5y2fH79l?=
 =?iso-8859-1?Q?shVjW1lAZxvZkvvDh9/c46B7FDkI8SrQEmz/ndya7EZ6uCwxKkPVGuGaTw?=
 =?iso-8859-1?Q?WDKatG6jNz0Jdf5V1FIciEn31HPECyt6abdILBMJXfpm9pp2+dRsumFBqP?=
 =?iso-8859-1?Q?Mhoo1l7/SxCWNfzxq9rAQ2buj4F8aNjVH04cCVcjXHeMNZVOkIxlAuRz14?=
 =?iso-8859-1?Q?oPesWkrZqyqQFKNQBY+rYuiMHyLgJ0fONm/wyFUj+gUMlUUNvtzeFkZ+bz?=
 =?iso-8859-1?Q?5yfyrgBKFLH2PbSK1mU=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <2EDA079EDAF70B47A13436823CC0BAAF@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9625
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000044.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0ad4bce6-ee5a-4010-38c2-08de63c8484e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|14060799003|376014|1800799024|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?tEqofztpjkkExCLkVadgs3DAvy62u7PvXJWsiotVxRYUiM6wnEt62jvGEw?=
 =?iso-8859-1?Q?EYH9bDC9pae/0oKFQhMURJFw2rCZvCItyAsDuKFCPiOugvqlX3h2mOLunW?=
 =?iso-8859-1?Q?LRPdt8vT6h9Q4km5qZ6XK7LGaqT1a1WnroBFek/ikACv6Hm/3pGW7m+W4f?=
 =?iso-8859-1?Q?PjEH2olouU2UI236R8ETZMlEwDo9qvUoBtpQ/j7OI8wDKKiibqTYGeD4yy?=
 =?iso-8859-1?Q?7jrAW5keBVxprifzDnsEVWgpf+5fjYZOM1dkXI3JVyS4kb9Fzo87xkmZgi?=
 =?iso-8859-1?Q?sdMOlR51OjsOsP1gLinyr12Kb0eZkglaBS15hGTD55y/4mcdtpY1uykGYs?=
 =?iso-8859-1?Q?1Owpq5MY2sseeyvL97wRb+z0xXS9ifijYjRyW1cCOjKQaTMSv4aDeMCMTq?=
 =?iso-8859-1?Q?M5LDxBMkJt8QDosHhTr/gyELC1t12/N9nUJ5/niG/Bzodymko328oAFvzi?=
 =?iso-8859-1?Q?VfETPKOw66rqKYzRLvnG1Kk8VkdFmF1Bs/wBCybNCxfz++zFhAI/hOXvl+?=
 =?iso-8859-1?Q?hiGXFU87nF0FzLxBj0SzolzKYvk7PLI7bWL2ycW77tKq3Ra6VSQh60ERA6?=
 =?iso-8859-1?Q?Px+h/jiY9arhwxLSZdAxH+VUod3BKSl+m6RqKvfTpoQySAIqfdh0WN4HTh?=
 =?iso-8859-1?Q?pR0ve+//DwImU4BV51snLQj/qwKo1yiTGE/fWTjdkTeqPCHOlXTwj5V+FU?=
 =?iso-8859-1?Q?7BrfMDZcU2k0qjzCEMhaZ+ruwdNnsV8Ecg7dQtE+tvMHJJeqBeCFDiQVpj?=
 =?iso-8859-1?Q?IUzhaUF/PdSUMMenWW5I235VEpiWddFN3sJRNHsKOLykSrwvYBASlkQCsL?=
 =?iso-8859-1?Q?C6u0OVPS8H3UHgYSyDwrIG4BqJIGCi0732bjqlSHHekSqNDqEg0kGm4Llp?=
 =?iso-8859-1?Q?BgdBTNOUh+R3HCGtI6pg++9bmtT5OC3G3VFPG6GOlp9rvj+in9vpCgXtBG?=
 =?iso-8859-1?Q?O70xBCBnDQc+chEJ6gzT/HYRB/TizMj4dIdGqkFkmiV3rZDtfu9NCzLS0N?=
 =?iso-8859-1?Q?2nlB353uoICML0dH3I2OpjIHtQmGWU5kGbqlx3poelui2XGX9jCUMmHl7L?=
 =?iso-8859-1?Q?8vOb0s/0DXjC7pQ2aWrIw011jqaLW2l4LGN4A8dBgE5rytvc6GzKx7vpFw?=
 =?iso-8859-1?Q?2AaLQP2NXzmCUPyfQjDviamt/gUdYwy5jTtgYUzpDotbzr4NrBqYZQS+h1?=
 =?iso-8859-1?Q?JgMIPHw4uttNpLk9nKi1JIj1tHQockKo9N+l3vfa8TeSCDrZu1PYWU3xX4?=
 =?iso-8859-1?Q?4CAcomN0zR1oSYBHiVSrfAh3Xs6nh9Z2dCi7YcXkS3v+4Gaqa4hI5/Ud0E?=
 =?iso-8859-1?Q?ZiTt+qloP0ixdUXnAWFuAjxcr9c2nhdF0wkRHLpFDFNOaEmwF35DKmtEKr?=
 =?iso-8859-1?Q?K1/5Md+qCFBNO5AJjieIlzr7Fw2H5NBjZVfBP6wJfh12tlcuFXsDk0MP56?=
 =?iso-8859-1?Q?zVyBT5mHohHRQCMTZS/m9fOlL6H0C2CmknGCCs4iyklxvH107hQDgGa1Jy?=
 =?iso-8859-1?Q?DQXyWfNs7qZXdoSZTT50gx3EQVuEiD2GcW8w4sTI2Z+5nBzqVg7N1jG/Ym?=
 =?iso-8859-1?Q?muwXqaICr1VniRJj6+joVH7HcBkMJKeHClDSAJPZrlTVuYBxAoV2II0gTo?=
 =?iso-8859-1?Q?1nVTeBpiGQLUboi5fTUiJpwBzjJmaRC0QaGBl+c0ooVTDf4QHNBYbxXFNF?=
 =?iso-8859-1?Q?JT4JJ0lcZMpoesmxMY528pueGYxscCGYX1TJDdKN9l52hQzVZjRV/pZgCS?=
 =?iso-8859-1?Q?UODQ=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)(82310400026)(36860700013)(14060799003)(376014)(1800799024)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	HNQnYbSZ3BbQeDLCDBDGKdt9pp8AIDP3dRPkP6FJfqQfGQl9r9JGpSIM6tHjAgX1l8Xe5bpjd3D7348u/GwlP35gawGJq+fBaWaPi/Y8dlKX2EyJm01ylCRQU1yFqFZ+JibPEoMtgnm0Py1jLqwjsXpD/rDHauWnkJ2XqIJ4EWHybv52riCVilzqv43yKpzoDIxTH27T5brk4+t7ymEJvJ7ZyBrFeBP7nmjO/ul8uaE5BjJA9w6seRB9fuQUBQfuNmlv2DvnuPqnLH1Bj4O4ravBw/7+5rS/juH91vBQ1NfC2LstpI3uwmDZaUS6iLJ4vUWsP0AyKUxZM53gLNx3W0OikIhpmdb5EzgEjQJBKv8FK4Rqzi4G1pqmtq8DQ2ifp4B6B9UJ9laM17m18Gh6OlzXXZCvvDv4cfKj4ovUmEEYHTy1Ydk0HVtWkwGi88H0
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 08:36:02.3821
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cfb0b75c-272b-4adc-7a96-08de63c86e15
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:
	AMS1EPF00000044.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB8822

Hi Jan,

> On 14 Jan 2026, at 15:03, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> Its inclusion placed where it is, it affects the hypervisor build as well=
.
> The hypervisor build, in its _install rule, uses $(DEBUG_DIR), first in
>=20
> [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
>=20
> $(D) is an absolute directory (shorthand for $(DESTDIR)). $(DEBUG_DIR) as
> set by Paths.mk is, too. Both point into the build tree. The two simply
> shouldn't be glued together.
>=20
> Note that the earlier
>=20
> [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)
>=20
> continues to be working fine, as BOOT_DIR continues to be controlled by
> config/StdGNU.mk. Its DEBUG_DIR isn't taking effect anymore, when for the
> hypervisor build it should.
>=20
> And of course behavior now differs between building xen/ in a tree where
> tools/ was built before vs in an otherwise clean tree.
>=20
> Fixes: 82b9cc04a7c7 ("build: add make macro for making file from file.in"=
)
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

I did a bit more testing and checking and as far as i can tell this works.
As I am confident the cases i did not cover during my testing will be cover=
ed
by CI:

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 08:41:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 08:41:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220220.1528926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnYS7-0002iK-93; Wed, 04 Feb 2026 08:41:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220220.1528926; Wed, 04 Feb 2026 08: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 1vnYS7-0002iD-63; Wed, 04 Feb 2026 08:41:35 +0000
Received: by outflank-mailman (input) for mailman id 1220220;
 Wed, 04 Feb 2026 08:41: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=hC1S=AI=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vnYS6-0002i7-27
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 08:41:34 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b6c1723-01a5-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 09:41:28 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS0PR03MB8296.namprd03.prod.outlook.com (2603:10b6:8:292::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.10; Wed, 4 Feb
 2026 08:41:25 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Wed, 4 Feb 2026
 08:41: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: 4b6c1723-01a5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MF5X7M5qRdz8SYZ7iErUCV0HUhP9cfdIWX1LGbgAfFO6UjPlJf2jrdixMFfkdvPgPUUBJ6ylRRL1x8kLeoVQiIf4p16f4S43nQTRd8PzkRSqYXeiMAc8zDLgOhN8YLeZCd4oT5BILqNxYje2/eE0f7fb6O0DY53BwuPhK6K4XcNVRJ0xdIJqcweMq9jFHxyqnUsI0FbWTUHfpJR2LSwmq3NAMG5H7cE+RkGTvdh/u5xTyULv5VWGqR/y1RW4uyrrft84v1s6MCIPT7EJ2Gq3nKr3091kyDPBhi/IgPciwuFIfKs7hWQQU70Hv4eMutem9dce5BxK+cW3KOTE3lwFyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pGopkz/bIIEaSGdKEG5Vd+N5uBrmxdyBCJrzVRYlQfk=;
 b=gha+Bfirvdy2+yPbBPuPSWN+k8v+s4HDVaUcG8IQ6VCMMUr8T5gnRXzHh7jw3gXm89UQKr4xSlTQ3df3IGKy7sGhGty5Uv/MS4iKG9NjiWntrQjJbUjqXIwGUFfRVIGspJ2ZPpVdDAO8nlIklkQD46xeKUpvN3rPKWvJx3sDAzIfrrH9sFcmXVWcf/sIcb8prhlTNVmcXWZuSB7hcJRvJsuQdedsZC7T+rOK8/+JaHaVJp2VvQUfxpC3ok4vvov5WdBgKMyP+60ORYe4BZwMHtCwlnj0zF2aQSHKCMcH571/wy08JS6gUF0McSbgBANrsc1xmF4qMP/beylZW5Xg1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pGopkz/bIIEaSGdKEG5Vd+N5uBrmxdyBCJrzVRYlQfk=;
 b=mG/mOsH3jt36PedUlRAEvANCTCWkygQPtn9eJyfngFQM8aCC3lANZPhSLv1IUnTEpJYjjmVoNBzTOEyGyRs+BZMx3GmLrylSYuF65R/vpMIJqYyVcOwFt0WM6Cl0AGS6DOkDpzavBnUfZLbmFGDjxei7uxV3flykABm2yvBeGTU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <b7c3ef89-6f5a-4062-8e16-091abcf9acd2@citrix.com>
Date: Wed, 4 Feb 2026 09:41:21 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] x86/domain: adjust limitation on shared_info allocation
 below 4G
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260203101017.56962-1-roger.pau@citrix.com>
 <aYHL0CChPShMUtHw@Mac.lan>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aYHL0CChPShMUtHw@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: AS4P189CA0019.EURP189.PROD.OUTLOOK.COM
 (2603:10a6:20b:5db::10) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS0PR03MB8296:EE_
X-MS-Office365-Filtering-Correlation-Id: ffc1e314-e45b-4876-f85e-08de63c92e99
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aVNCeWlnYklxWDhoUXA3TmNkUmsyTGlDdTgxQ1ZLcVRIL0htYXRvSUMrOUh1?=
 =?utf-8?B?RkpvaVlOT3lzZFdWWHh6b2hRdjV5UUkyRUR1Zk9UQmgzZ1FVYnBLODhtVnNx?=
 =?utf-8?B?QTZkbmZ0czVqdEc4ZFRRTkxNVFNBd2tlNGl6dWFReTIwWWFBS3ZiWmkwS1Ns?=
 =?utf-8?B?aGgrdVRIOWRHcG5lVHRyek1IR2xuSHp1MlM2dEttdnRERU1hRjhtNlRkWHho?=
 =?utf-8?B?bklzQ0I3Y0FuNVE1UWVsMEtCOTVLb0lIMWRqSjNGQ3VvK3ZJeW00aUtnMS92?=
 =?utf-8?B?OERSZkRQNHhsQlkzUkk0Um5CSmM3eThDTStlQW9mY1V1TUc0YXptYnV2aVE4?=
 =?utf-8?B?alhXRTNUV0RIZFk4MWZlL3V0Uys5TUkrVnl4T0Z6b0lLdVpueUtpRW4rUnho?=
 =?utf-8?B?eGxickJMUzZTbDB1aE5LRlIvekJlSlBoaWhzWHlDaHo5UU1OT3MvTU9YT1lY?=
 =?utf-8?B?WUNPek9RQTBBUHNadGVnOVBmZE1ucmFZRWp4SjJNaGgyQ2RYdGtTY2dubjQ2?=
 =?utf-8?B?bHdtQU1UcWdtQTZHM2drQ2ZCZ1d0aUNRQS9KTm5qam51bkZUaGx6VHNFaUZu?=
 =?utf-8?B?RFc0YnZzNVRQTWEraFlpc0lrNTIreU94Y254MmtGNzd6M0x3dTVlUFNmNXpy?=
 =?utf-8?B?aXdpMlpubWg4eHpxWUZyaVFwdkRJVk5RZzdJczYvQ3ZITnpjMkI0ZDBnaWpn?=
 =?utf-8?B?VmF3SVVlZ2h2UFE0dnZGcFVIL2kyRUNkcWdXeEtyMmRSRjRQUjVid29zVS96?=
 =?utf-8?B?N1Q0YlN4N2dZc0NrTERCZDFta1NiazBBWmxnck1ENWlzVVF3Q056N3JvZVd6?=
 =?utf-8?B?R1hkN2RKZVo3bnB1T01mM2FXOFY3dTJwa25tc1UyaDFxdlQvN2w3aEhFdVRK?=
 =?utf-8?B?akQramM2V2xVOHZ4VnVnZm90ZjNnOUVQZU15U0ZkZFJkN2l1d25RZ1VaNnJs?=
 =?utf-8?B?V0ZKVDhOWERFMEJBYUt3alFoWWVQcG9jbkxQZnY0VEIzNy9NckZSQi81WlFH?=
 =?utf-8?B?UnZ1WHI2Z25DdjloejRkbDV5elVvVTZpSjMxbk84VEJxTDNKNUZjUFg3Rm5v?=
 =?utf-8?B?eDJXU2EyNGV5K2ppSGdMdzFQeVl6bUJMR0pxdHI1V2lBY2Z5cGtHNnk4S3F5?=
 =?utf-8?B?Tk5LdFNmRy83N2F4eUE3em9hbEVuRDl1K0orK0lPc282clgxMEh5M1hEMExw?=
 =?utf-8?B?UkFOSW00eTFrUVFzL1Q1SU16eWI3VnV1NzVXakppRjhDMnZCaHV5WDNzNlJN?=
 =?utf-8?B?V1VPZzdMYjJESE1ibkY5TW0xWFZoNUduUWJLMUFkZTlaS3BmWkdsOE5JR3pI?=
 =?utf-8?B?bHdzZUF4VEIzdTBmcVh1UTRFbFpDUmVkTjJkTGtXaENiMW1pd2Q1b1U4TGdr?=
 =?utf-8?B?WkVVTUVMVEU2YU1ONXlLdER6TkZ6VGFiUGhBNU5CZm03bndkcFB0UnJ4UERz?=
 =?utf-8?B?d1liTEFjUmtPK1hvV2Y5SFcrYzVMeWJNSFBXdXRhVElLQ3lad1hsSVJ1SmZl?=
 =?utf-8?B?am1zMjJnNFBjMlcyZktRTm9reWJUa1o2UWphM092a1FKU21sVGowQXZYbWtv?=
 =?utf-8?B?KzN6ZFFiUDAvRjlvWml1TmZ2bGhTREdReWtTYjROb0ZVdUlhWVdUTHROM1Bh?=
 =?utf-8?B?NTRFL3p4SHVmT0dXc2tjakpZT25yQlBueW1rYStMa2w5ZDNDY2FTSURHc0Vm?=
 =?utf-8?B?VE1wU2Uzbk9aM1FVNjl6SlhPSlJubDNWcnp6T2pHRzUweXFIS25HdWUvaTJx?=
 =?utf-8?B?bGR6Wm11cTc0dUVjRndORmdhYVlzMmRGMWI5NkxVazhod3NjaGJDQW9UMUEr?=
 =?utf-8?B?OWRhMmdZdi9SMWJydzJrL2prV09zY3RVOGZ0cEhEU3hVeHJYWWdjL1V6OEli?=
 =?utf-8?B?MFJtOE56N215aWtWdmkyMXhTSktwdlo4TXo2d25GNTV4NU1TYmtKdFkzc2xp?=
 =?utf-8?B?TFUxWUNIK2hIWTFnak9vN3RXK1ZzV0tES3h6cmJIZ1V5WVlFVE4xTTExdngy?=
 =?utf-8?B?STVYUlhxZnJ1RFBUeVp5TWxrS2NzZGg5aWsxNk9UMlVDRmlVa2RBNDNIWjVQ?=
 =?utf-8?B?SmNOeStHSzZ0YURzbExQVmNYeXArQzluZ1h2WUp1VHQ3c2REbk1HV0JZZ1hj?=
 =?utf-8?Q?VTHw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a2dUR09zMjVXWWxzUzZucDBCSWJmcHZkcFhZWkdQeHhkWWQ1Njl3U0hodlVO?=
 =?utf-8?B?WUh3dVZMQlkvRjVKYXpId1l0K04ydlB3OGdEUWszY01PZGhQaFdLR2ZpekNZ?=
 =?utf-8?B?Rk1GWjRuN1Z2Mnk4L0ZWNTY4dWpqVkFkM1NlV2NxK3Nndk1rU2tWSU9WOHhn?=
 =?utf-8?B?Yy8rVzR5Vk5oQ0RqanA0bHE0WGRPUlY4TEJlTFFUeXlhd1VkSms3RVdYZlJj?=
 =?utf-8?B?cndRZCtpYlYxUk8ydlVvUVhDc3p2VkpvcG1saVdWT2tjeTAwU0tlYlRyY2Ew?=
 =?utf-8?B?MGZMTFJvdVcyR25qSWNZWVlTbkd5cjFVQlgvZXdQZFlDNjgzZmw5VUx4TStK?=
 =?utf-8?B?cEZha3VJTGJXdGVMMjRRa2JBbEFJdnpLcUpUTnQzWEp2RnNQRm1MdUd3OURF?=
 =?utf-8?B?R1pobUZ6T0hFaHpJb0tIQXVBbmFRcW54OVNGd0J1Vm95Ykh3cmE2a1doYUJq?=
 =?utf-8?B?OGpWemhyYXExNERlRWxGemVoYkthRjF5eG9iYzhyNHhYT3p2Yk5wV1F4N1dW?=
 =?utf-8?B?SElXNW5CcTlRak5IQVR2VFlUMk9zQUg2aW9uZHo2ak1DMHY5RXE1YkZ0MUdT?=
 =?utf-8?B?VmZQMVAxVi9RazFzNFNlMnNMTVBLZmhsRnM3d3MyOUtRS0pNVDJtQUh0WlYr?=
 =?utf-8?B?ZjhiNVZmc0NjUEpTUkxzOWFoUGZPSHNIYStmNDBKcVhwOFRTeU9ZaUpwZW9Y?=
 =?utf-8?B?YW1xWEIzT1ZYVnJoMXRZTi9Cb3hMZk54Wi8xSnNBZ0xQRGRWbU01alFwZnBO?=
 =?utf-8?B?VVBoamN5T0M4dzFCY0gzR2pCUzhqR2ZpU0kwYitnMW8zS1NIdFNoSG1SVlhx?=
 =?utf-8?B?aDJQNHRLeGVBbjgwSGl1UDhzb29GNWxnV2hnclFiMzYxVUpVN0lMb3pmWjM0?=
 =?utf-8?B?cit3WGpHZFN3eGlTaEtFL0R3VjNXak9PcHFaZzRwUmVNQm1kakZNUU5SSk9U?=
 =?utf-8?B?Z0cyUzIzZElrVGowa09xRDZjSzVtNGhBMFFoMkZuazRCRWtTa1BnWmlvYk5S?=
 =?utf-8?B?ZGl5R1h6RFJQZmlNY1FVT1lwOXNhaS96UzMwalFCcGhvNzlDWGQxV29HUkU0?=
 =?utf-8?B?bkRiMTloUk5PNW41TWxBNUtzejByM1I1cFFReTd3MFNTUzk0UllRSHZHdlpz?=
 =?utf-8?B?ZDVVUE5uY1V3UlppcDdKUmNNTjgvaDVFdFJrcEYrQUZFajE3azZDNXcwMFdh?=
 =?utf-8?B?Z2s5WTZ4RkhkR0pFRGdZaElVZnNVNnduS0lNaHdUOE1zVGtHM3I2QkFHNmwy?=
 =?utf-8?B?LzBrNE5oODJSZldvVWpaalFyZzJDbExCZmppU2d4RytEQ0llUVZ6SXVseTFl?=
 =?utf-8?B?WHgrMG9SOXhJVXBoM1ZaQlI4ZmpaaC94b3hPKytWSFIwK1VYQ3pSY0I2K1Vn?=
 =?utf-8?B?QWk4RzRVS0dHMVlCNFptSUNSTVpUODhlcjhzaitTaElQT281bzlzVFpTYXlK?=
 =?utf-8?B?UElidERLWUVKUkdBc2dyaUxlVnlpa1RnU2NDQ3RQVFhCQnNFOHJHSVlNTS85?=
 =?utf-8?B?VUJMZUVXMzhBbldCNWl6REFET3psNXo0M1RDc0xMMkZncCs5eUlPLzNHa2N4?=
 =?utf-8?B?d1hQNXJQNFJSalk0VUJPR2xSTFo4SWFlUWszOFp1NCtWVU9rdjE5UkZVNVVK?=
 =?utf-8?B?bUhLZDZQUjZiQ29EcU5YYVJzTDZsOWliVUx5WWRqckJBd1NQeEhJY0kyOTEw?=
 =?utf-8?B?T3dFSHRsRHJJakt3VDVwbDNVY1FVVFA2cUhCMHJmQ1kvY2dXVEQ2aWMwcjI2?=
 =?utf-8?B?L1pYUW03SGVlM3dkQy9abTBFY3F2bWVvVFVMVUJhMDlNOWVYQ2ZCV2ZnSEZn?=
 =?utf-8?B?UVkzUzhUcm5SRXlaUkI5VlNPRkZrZ0MrSk9QS0pOc3V3QnBuajhwVndpZ3Zx?=
 =?utf-8?B?czR1WHFJYmFFYkR3T2dGWFQra284eTUwK3d4RE5uZmVZZkFTVmdjdHlyUEdN?=
 =?utf-8?B?SWh4RUJzMUhCTW1WRndSa2lUUVZ6S3gyWllxZDV4MlBwR1J4MThwWURYOVoy?=
 =?utf-8?B?OWpOOUZ2SjBpRnVnS1NvQXNrV3pheHZ3Q3c3WVNxK244OWM1TVV3amNieGl5?=
 =?utf-8?B?Q0tKZzA4ei9oY1NWbE9SYXlGa3JVazQyZmRPK0xvOTk1V3dRSkcxVkxhME9t?=
 =?utf-8?B?Ymp2ODZyZE81Ni90RXFKcTVJdTg3bnJHN2NiWTdzYVZBMVNrZXJJMXpGTU5P?=
 =?utf-8?B?c0cvSm9wSDIwanRLZDJCalB0OUVFa1VpTzMyYWV0bWlFbUhmWDd5aE9wVzRi?=
 =?utf-8?B?blhWZXZmc2tQaGNlam02OTJSVVZGZytjRHJNQVhKMDFPRndmSnBmT1paZWlV?=
 =?utf-8?B?KzJlTTV2MFNMMFBVdzdZOFlXU3duSkxtdGFKMzdKQnExV1NqeTdPQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ffc1e314-e45b-4876-f85e-08de63c92e99
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 08:41:25.5266
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SH6bWmGHLYW9cm9fl8Shyf/ySO6jPDG9NjZFCW69bfz6KQDl0anQkwBptSsrhU948WwR0rdIra5I/Sb0e97owf2iPm49ZspbXJJ8tHaKU7s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB8296

On 03/02/2026 10:20 am, Roger Pau Monné wrote:
> On Tue, Feb 03, 2026 at 11:10:17AM +0100, Roger Pau Monne wrote:
>> The limitation of shared_info being allocated below 4G to fit in the
>> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
>> start_info field is 64bits wide.  HVM guests don't use start_info at all.
>>
>> Limit the allocation address restriction to 32bit PV guests only.
>>
>> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>> ---
>>  xen/arch/x86/domain.c | 9 ++++++---
>>  1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>> index edb76366b596..4163568043b1 100644
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -882,10 +882,13 @@ int arch_domain_create(struct domain *d,
>>          goto fail;
>>  
>>      /*
>> -     * The shared_info machine address must fit in a 32-bit field within a
>> -     * 32-bit guest's start_info structure. Hence we specify MEMF_bits(32).
>> +     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
>> +     * field within the guest's start_info structure. Hence we specify
>> +     * MEMF_bits(32).
>>       */
>> -    if ( (d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32))) == NULL )
>> +    if ( (d->shared_info =
>> +          alloc_xenheap_pages(0, is_pv_32bit_domain(d) ? MEMF_bits(32)
>> +                                                       : 0)) == NULL )
> Sorry, this is wrong, it's too early to know whether the domain is 32
> or 64bit.

It's probably fine to have this become an unrestricted xenhelp
allocation, and for switch_compat() to make a restricted allocation and
copy.

When constructing a PV32 guest in practice, the set_compat hypercall is
only moments after from the domain create, and it doesn't matter if we
discover lowmem exhaustion marginally later

That way we don't have a PV32-ism continuing to impact the all VMs.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 08:53:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 08:53:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220231.1528937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnYdJ-0004ku-8g; Wed, 04 Feb 2026 08:53:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220231.1528937; Wed, 04 Feb 2026 08:53: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 1vnYdJ-0004kn-4a; Wed, 04 Feb 2026 08:53:09 +0000
Received: by outflank-mailman (input) for mailman id 1220231;
 Wed, 04 Feb 2026 08: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnYdH-0004kh-Ha
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 08:53:07 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e91a2dc1-01a6-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 09:53:02 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DSWPR03MB989106.namprd03.prod.outlook.com (2603:10b6:8:35e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 08:52:59 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 08:52: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: e91a2dc1-01a6-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y2n477eoNcdo8yqC1oQxZhhEo0xebWOy0j7LF4VtQX9+mZ1o/udL7muhLtVn6dYtgS4kE30A/8IKQlfOCRreL9ltDv8PklU4YX/pHyV9Z6C785FCIcWviKt4Sq9UXcLPjkcubPlwcdtTPZ1eFINO6vHo5qc9NGt1I6+613Fn6hsDH210twAzXZPX7TZH/s1mYB7IxsJgAgQfHearT6BeJhr8YEQg1UYYf69T/IgKYzbJkYelPH0lRaAiACJK0LkjEsRiNs7agadm65SaOBKs3S5Fwkp4ewQv3AepC7ilrKX/bZKQg7GGHkuOI13brNWTsVaO+4arvkGISpb2O5g2YA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aQUqNzThM+++QWdMuml2lvMt1NkU4HlSkQhvbexpV8U=;
 b=bzAs2dGmcUZyXn0sP+hGwmeoa4sBHw95v6nzpmsP3uGPRb06MMBkgS5plQIrf4usdr6h63qSpxyjswSCl9+YEL82EBFVo8Fk5RvPKfSvO3FH8PCHhouXJ0FXkojIV+ZTw+xxvaZsLWLQADorV11F32O5YW8QIwQ+nlxnKeJlO9iM8y3d854EEvtjld/6Vcc4JLvv486sBvFJwCrO3QvWb4XhW6JTcO38kuN4TOCrWFCvfDlo7IzQqAIowGWJ8t62ikE8XNPDLHpLbEKXcXc+R00UEB0kWCA1teMPZl9He9by+iWxtkye1YWaKAsgTV77nrWVstgolPZFgzZb6T+L6A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aQUqNzThM+++QWdMuml2lvMt1NkU4HlSkQhvbexpV8U=;
 b=zPQJa7nQ1UVVQ/OouCOKgAruHB/Utv4FyM0Y2MQ3PhUFvM+CoXm7zLg4OtNQDHGBWuyUAiOZqL1fWOsGsJZjDHyj21/VUlWABjxAc9lkVI7tigdeq8E6GUwscH6bNct1n8PY/ov3pDMSKCW8ZD8ZzieGR5wuRf0x0ZIUgjyPVvA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 09:52:56 +0100
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/domain: adjust limitation on shared_info allocation
 below 4G
Message-ID: <aYMI6H7eq8SBG0Gv@Mac.lan>
References: <20260203101017.56962-1-roger.pau@citrix.com>
 <aYHL0CChPShMUtHw@Mac.lan>
 <b7c3ef89-6f5a-4062-8e16-091abcf9acd2@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b7c3ef89-6f5a-4062-8e16-091abcf9acd2@citrix.com>
X-ClientProxiedBy: MR1P264CA0219.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DSWPR03MB989106:EE_
X-MS-Office365-Filtering-Correlation-Id: 6a3d0f43-83ca-4978-3b90-08de63cacc2a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?U2lvTHZHWE9GdUhGajF5c25QeGZTMm9GaVBJZjVkc3U2M2tiS09sWWRzM2F4?=
 =?utf-8?B?SVZmSkR4b3JaUVpSUnVwb1lSei9UdmtDNWl0dU1lRDAxYlZPa0p6U0NLVXZ2?=
 =?utf-8?B?bisyTU9sOW5aRTI3ZWJpdUxYa3d6TTlGMnowTXNFSHdyaHo5RjAyMzJQOTJF?=
 =?utf-8?B?OVRHbFZ2MGxSVUYxd3RiTU9taDY3a0E2cms4Z3hGT3Y1d2VROHBhekNnb1dh?=
 =?utf-8?B?NFJDRVVmcThGZEh2c2l3RjVwSlM0ei80ckFvY1hiVE5NMGZmZDVZM0FVVVZM?=
 =?utf-8?B?b1RzUjByOG5wa3ltbU1HOE04cVZONGY0OVBISFRZVnFCeERmRS9WRkQvaGdX?=
 =?utf-8?B?c3Y4V1J0NFgvUWQyS1VLYzU3RWlYOFB3WjJNMEVnaElmZUdGQkQ2dDcwRW41?=
 =?utf-8?B?d2dieDNwcVRoTmphVVpRYkNxK0VYWlJNUGRIVnJlV01KY2ZHeTFyZkhnK3Bi?=
 =?utf-8?B?am1oWHU3ZXlvcFJjUzZ2bnRzRTlkOEYzVU1xSTFhL0s1VUZDQjJra3BRenVU?=
 =?utf-8?B?UzhXZTBXblk3SVg0L1l4eFM2c0FnSUtoMnF0eWwxSlBMRXVOQXBhSGpZU05p?=
 =?utf-8?B?amV6MThodkw5R0FNNVdqYTJLSHBSUXBVU0JPRmIyVU5ZRkE1SU9OTWluMytX?=
 =?utf-8?B?b2NIWmdGYW9jbVlxQzlOcjh3NWQyWUdCbWVVVHorWHFHSXl4REJZWlRleEIy?=
 =?utf-8?B?YUtqYXE4bEJtcnd2STl6cmFwc3pIRTFIZ0FLbnRFVmtIZFpuellmRlhDQkli?=
 =?utf-8?B?K3JyUXVJa0RpUHdIU3lTeW52aGFDNm10dmJBRVNIa1dQSWQ1bG44REdUV1Bk?=
 =?utf-8?B?Q1NNV0ZTU0NIY1lRSUdKdGthVjVPSlNtNm1zK3A5TDI2ZWFqWE9IcjZyczB5?=
 =?utf-8?B?VGVXckxZMUY0VURpZjgwbnpOU1Fia01ib2x2dEdLbGJGMUljVGluK2ZXTHJr?=
 =?utf-8?B?bmQ4LzcvZUxjUStZZWNxd0RYNndiazd2WkNSQkV0WjEvSHE2b2lhOEpjcVZS?=
 =?utf-8?B?TDdiRTY5UEE2cHVmSExPcSt1UkRSM0xyQXh2ZnhLcHcvd2VZRVdrQ0dwMTJL?=
 =?utf-8?B?NGlaM3B3bHJvVzZyc2d4ZTlFUSt3MzJyNGZ0TWhHYVVzbnh3eWsyRWgvUlJR?=
 =?utf-8?B?MHBpRDh5RWpWdVhKQlBpM2hJVXlhMTNOUHAvTzBveCtzbWZpVlk0SVJjeTRx?=
 =?utf-8?B?cElNYnljQ2d5T3pneVRlZ0hueFFqY1l5YVk5UFJaMXpsTFdrbEw4VTZndFc5?=
 =?utf-8?B?ZGVYcm8yaHhKRVhvOWNhaU5UbGtzaDlLOWZFVEg5OUswaFZIVVpmSkdqZVBK?=
 =?utf-8?B?V1BZVUYxKzJuSnUwTU1NWHhaTGRtMFI2dnI5bUwyUlhRTVhvTmVMdkdvWXhi?=
 =?utf-8?B?dWhrdHhXU0thMm85bmR2Qm1KR2V2MkxibDNOdk5vQTE3R3JRMlRUL0RxUWgw?=
 =?utf-8?B?NnR2TjByajh6Q0JCRXFaaWx6cVptWjNrOURITGcrZmcrYmxVQk9iVkxMOHpT?=
 =?utf-8?B?RlMrUkFNcTNGTXdJUzRlazgzd2gzMktMaUlxSExERkF4eU5zRlZMMTZFNWRt?=
 =?utf-8?B?M2tnZlZsVUg4ZXRPKzFMcXJLMkxGRjYvWnVhUXlhY2IrOFB3T2trQnBTWnpD?=
 =?utf-8?B?OVdyeVRHakZUczI0aVZpbWlLaFNMY09QczRrZWZsSG1RNzZlcmxFcHdNUlhR?=
 =?utf-8?B?L3BEanViZlRyUmcySldxMTl4TGRDOEtpT2tJSyt0TkJwMUZ1ZmIxblJCNmNU?=
 =?utf-8?B?a2lWc3lQL1F0Nmt5Z1p0dlB0UXJDdjVrdVRHendDdElXZ3gvRlRvY1A0SGty?=
 =?utf-8?B?Z3lGa1AvT3RqT3UrUUZubmFTN0UvZ29CR2hTTHNMR0ozWGxaWUF2bm5wRjE2?=
 =?utf-8?B?c3hIWDZvSWptQ2dLcEwrUzc5TEhpZVEvM1l6Q01sYU9lTVRtNWpQQVAvYkFr?=
 =?utf-8?B?eGNNRkxBV3NwNzMvRGRvSXJxOWZlOUVpMndiOFh2elRMUDBpRHVMcm82aTRv?=
 =?utf-8?B?RXIxRXBqNXZkeGE5MHMzVC9velhWT25ub1RTQWJGMW9TT05Db21JT3R3Tytu?=
 =?utf-8?B?QzBCbFNlZGM1dUZEeElvWEIvRGRESW1WcWJrSG1qNmF3b0lXczJFODIxcjhH?=
 =?utf-8?Q?sbTs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?K0VTcWlnaEk0QWpzZCtidUkwV3ZwVUNldVRwVDRRSkRoQWE0MjNmNDJEa05T?=
 =?utf-8?B?RHlLTEZaVUM1YjFsVGVRVUVnYXNoVW1zUWhHUHJ1OUd4OWIwYU5YT0VpeXgy?=
 =?utf-8?B?TEw1dlRrbVd0WDgzcEF0YWhzdWE0dFVaZkYrOHZYSHoycDU2eUNuR3Q1RzRi?=
 =?utf-8?B?cmlvc1VGdC9IQVZrOURiOWhuVUMzQ2YyWlFJK29TU1poMDZpa0NEYmUwNmVJ?=
 =?utf-8?B?OVZzdi9Hdm5aQ2p6RUdOS2FqYWtLM3FWekhtTHFCUmc5V29PY3JIdGFLWGQy?=
 =?utf-8?B?ZEVrREdIc0dQUzFuaXZWVUdMWVZoTnBWaEhVQitJZmpsWVh3Y3NnVUxpVExM?=
 =?utf-8?B?dnNYL095R3ZqekxES0UxbE44bW9YOTJIdVhaRG5FUm5xYVRmT2FuUHo5eFBG?=
 =?utf-8?B?MlhsYkE1cEtSTWlhVWdPK1N2ek1EMC9ia21ESVo3Z2haUExmeG5yYldQdGR5?=
 =?utf-8?B?V0VPR3Y4Z3Z0NXVUZE1ic2xRZkNHWXBHMXJyTDE4a0hKSGIzcHpuSmZLdTdr?=
 =?utf-8?B?di9kL1RLalRWNElhVE5ZYjE1eGh2b1NMbGphNjNKRGd0NXpXYUNLT0JMU1NX?=
 =?utf-8?B?YTdVNHFVbi9BajI2SkZhVGt4Wm9OUk1sS3VBcDZRNXV5emVCczlJVEQ0cXlv?=
 =?utf-8?B?aVRLZlRFdUcxeFdVT1c1Nms5angzcUJqSHFXMGdVbjQxNjNSa0dDODhNTW9o?=
 =?utf-8?B?aFlmYndkelJnNGZqem4rRmUvVFhhYS85NnBrMWxrZGVvVXd5amlBVUl4aDVo?=
 =?utf-8?B?b2xmeWd5VkpUS1RjS0JHeFhrSGcweG9OT1UyQ2lmYis5dUtrT1F6Zmt6QTZP?=
 =?utf-8?B?RDF1cS9JekhKVFV4dEduSGJ5eWwzbVg4WGJPRW53cXkrSzBtSXZ0ZkhBWERq?=
 =?utf-8?B?VnVkZHVCUTQwWjVhcUx4UG83b0N4RTVIbitvNmw2OEtJeUlXRGZ0eWxPRnA4?=
 =?utf-8?B?YmVBTVpQMEY5L1UrTGFqTlZ1d0xqZFY4MTV4M0dYTlJOQVpXSlFMU2FaUlBP?=
 =?utf-8?B?VFR1bFE0RE5aaFYzZUhtN21vaTFWTXNnZUUrRlpvU3poKzNxUGNVajI0Z3Z0?=
 =?utf-8?B?SVl1MWV3S0xPMUJodFU5TXZjN0dRV0VjQjJ6ckdCREhqaVVPaGxtZTRHSmhj?=
 =?utf-8?B?bFA5ZXVUa29YOTdsREdiL3RVbmJQN2c1UGRhN1NDTnpRNkM0azQwN09TODVs?=
 =?utf-8?B?YWFOdldmSE5XM0E4RmgwTU9sTEllOUcxdDN5VFVqWm5UaTIzVHcxUjRZVzJm?=
 =?utf-8?B?YWUzK21McjVKN2doRVZ5MXJ3NlFvRVNKSmhIVkl1MlFyKzQ5eXBMN3FFOXdG?=
 =?utf-8?B?eTNqTlg0aXVaQUltOEFkWTloaEpkb1pZY3RUWFUvRzhSdzBQQWtpOUtYZTBr?=
 =?utf-8?B?UVUrZVRTRnlydnljWXZZMmhyRGtJNDBwYy9reFpGVkJ5UkV1V25kZXp3bHhr?=
 =?utf-8?B?My84Rm5SUm9EdkhRL2FjYTBDd3NpcU00UnltajJsTkdNTUE2b1dDUDdJbEpW?=
 =?utf-8?B?TkpRMXJ2MzdyN1BkbnY4ajdzeWVaVGtITlduS215K2I3MmdJSStSajV2WkNx?=
 =?utf-8?B?MzBWMk9nUWNjY2p4K2Z5S2s3OEprQ3pBNDU3TExjbXJXekwxRGVVR01pN3Bh?=
 =?utf-8?B?d0tnTnhRTndtTW9IMVJDajY1bU52V1Uvc2Z5U2M1SGlVaXhiMTViQ1JFVUcz?=
 =?utf-8?B?cVkyMHp4b0JSNVZKTDN4VjJxd1hXcTJIL1dGTDhjOEIyc0ZzbE9lNVdSSlBx?=
 =?utf-8?B?VGhHMDkwazBDMXRaVXAxcVhQRjNxMlpFVGFPQ3NuV3hGWmVvMDJTYVRNazV0?=
 =?utf-8?B?WEd2Ly9LZ1RUWDRNMzFub1dNZzV4Yy9iZkpYa0VJYXcxS1V2NDRBaXZ2MHgx?=
 =?utf-8?B?K0xUV2VibmJQZGl4V3ZTTW9OSitUclRicFU2Z29kbWxNN2pncThseGpBTjBl?=
 =?utf-8?B?WEljMlB0a1VPQWlaVjNmN00wRmw3aXB4Z09Memw4UEdjUk5yZVJWTTY1dmFL?=
 =?utf-8?B?NElQV2IwM2preCthT3UvTnRpRVRpS3IwUTVFMVhTQjF6aTBPSGlTVkZZVy9R?=
 =?utf-8?B?WGVLWjBZUDlrSFpmSjBXN0ZhMEovTElFS0h3ZFFUTWIwUFV5UGFCVzgxUTlC?=
 =?utf-8?B?S1dvYzhZVEdROFNJckJkMnZEVE9oTDJMSW5BKzBCSHBEcFNXQ2JBL0VVV0JS?=
 =?utf-8?B?U3RQdjF1ajI1QkNPdUxGUDJEOExpbXJCeEJSYkZNcEo1N21oSjkxRForUi9z?=
 =?utf-8?B?TWs2Tm9YV0h3bHRyTGh2UnBvTU9JS1RyNTZYMEhSR3Bmd2N5YjJFdE90S25S?=
 =?utf-8?B?bW1nZ1Z0dFVIdXY2b1kvZG9YcmEwd2RqYzV6UXZQc0N4Y1dsYm1Hdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a3d0f43-83ca-4978-3b90-08de63cacc2a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 08:52:59.5436
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aaIcP1riajx7lRIfGKF+ZjXqPa7G0Hh3qllrx0tMkZWqj56YlFgRjc6DPvlB68NcyzAV/t2Pbyel5lbMD5BIbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DSWPR03MB989106

On Wed, Feb 04, 2026 at 09:41:21AM +0100, Andrew Cooper wrote:
> On 03/02/2026 10:20 am, Roger Pau Monné wrote:
> > On Tue, Feb 03, 2026 at 11:10:17AM +0100, Roger Pau Monne wrote:
> >> The limitation of shared_info being allocated below 4G to fit in the
> >> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> >> start_info field is 64bits wide.  HVM guests don't use start_info at all.
> >>
> >> Limit the allocation address restriction to 32bit PV guests only.
> >>
> >> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
> >> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >> ---
> >>  xen/arch/x86/domain.c | 9 ++++++---
> >>  1 file changed, 6 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> >> index edb76366b596..4163568043b1 100644
> >> --- a/xen/arch/x86/domain.c
> >> +++ b/xen/arch/x86/domain.c
> >> @@ -882,10 +882,13 @@ int arch_domain_create(struct domain *d,
> >>          goto fail;
> >>  
> >>      /*
> >> -     * The shared_info machine address must fit in a 32-bit field within a
> >> -     * 32-bit guest's start_info structure. Hence we specify MEMF_bits(32).
> >> +     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
> >> +     * field within the guest's start_info structure. Hence we specify
> >> +     * MEMF_bits(32).
> >>       */
> >> -    if ( (d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32))) == NULL )
> >> +    if ( (d->shared_info =
> >> +          alloc_xenheap_pages(0, is_pv_32bit_domain(d) ? MEMF_bits(32)
> >> +                                                       : 0)) == NULL )
> > Sorry, this is wrong, it's too early to know whether the domain is 32
> > or 64bit.
> 
> It's probably fine to have this become an unrestricted xenhelp
> allocation, and for switch_compat() to make a restricted allocation and
> copy.

Yeah, that's what I'm doing.  It turns out to be a bit more
complicated that I originally anticipated, because you also need to
reset the v->vcpu_info_area.map filed to point to the new page.

> When constructing a PV32 guest in practice, the set_compat hypercall is
> only moments after from the domain create, and it doesn't matter if we
> discover lowmem exhaustion marginally later
> 
> That way we don't have a PV32-ism continuing to impact the all VMs.

Indeed, that's my approach, just took me a bit more than expected
because of the already taken references to the shared_info page by the
time switch_compat() is executed.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:00:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220239.1528956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnYkG-0006wB-8J; Wed, 04 Feb 2026 09:00:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220239.1528956; Wed, 04 Feb 2026 09: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 1vnYkG-0006w4-5J; Wed, 04 Feb 2026 09:00:20 +0000
Received: by outflank-mailman (input) for mailman id 1220239;
 Wed, 04 Feb 2026 09:00: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnYkF-0006iM-AR
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:00:19 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ebf61f06-01a7-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 10:00:18 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5231.namprd03.prod.outlook.com (2603:10b6:208:1e0::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 4 Feb
 2026 09:00:13 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 09:00: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: ebf61f06-01a7-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GKTK4lOs9MmQ/5W7ikWfJnwgR00iM6NLJ+lBfQESkDSJOYl+PMlOQZopw9EI+fE+GXfunhRzKDGtBntcWUDFs2ogD4KVgd4SZYl73Msok9rWXK8jOPeA7f9yTDVJs2YdcCiHXXB0W1yMEfs3Biv7/cgGuk/1LFucQyT0V6IGmeRQBUsZ1tYhaA9Rn/wQKkQhaeHDVUrcd3+eQofsT54lPJPRCYeGahPold64ESeQxwG1z8OLZkIyIZjHctbf11XdG96jh9D8R+ttj1hDR7aRrGqoOcvC/oKxd1aNdJWtngX13jXuVOQncDcud+l4VrFfCONa0O/ANmS61KilJMrG0A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2rTzhXummHWWEJW7e/2JZ48DWUFsQOh8s3YxlG0PS1o=;
 b=wHLJ5IJwFBtUUJz7b+B2HqNY/ZGmIZo7BSgbx0F+mthDqBrBwkbHP1HihISnHoRJA7kMnpP3D+AXnOAo7udvdZ+pP97ydOSvAmrgtU+ZOS9glcunnjVVeYETIhxkoqRgNAGGWO2mCFO9kDomWxBYknhYV30nxvwxM6K6s7j6wgFjJ/hgEsP/TH8pmBwjpcN1Z4hU3B9TNNcQWSUQA2yGMXtKlAZfbQAclNZQsyqjq7Gl+PampUHkr/zTd37sahB5M/VDOEqFQ9dOt2xH2hZoi+vzCwL5veJ32WxUEMsREhUv/xYqA3JBr+ctF9KDRWf6hPsU6KqgzjNHlGkcljBAzw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2rTzhXummHWWEJW7e/2JZ48DWUFsQOh8s3YxlG0PS1o=;
 b=rvY5q7KemI2OA9ug+P5elOajpDqUGM+BRbzF5BgJ1RhFkjW2OJb/65xh5BCrm1G0/WoWr9QCKEzmCfKZJ83mMZEAAZqAyHY7HJ+k8ReCSaTpeKLQ9VTLhXQneP2PGkqqGt5CtRZgz/Bcic2InPn6qbHtiitrPPK0GffNxf+goug=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 10:00:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
	andrew.cooper3@citrix.com, anthony.perard@vates.tech,
	julien@xen.org, michal.orzel@amd.com, sstabellini@kernel.org,
	dmukhin@ford.com
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
Message-ID: <aYMKk9YtrR7NOKyt@Mac.lan>
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan>
 <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
X-ClientProxiedBy: MR1P264CA0041.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::33) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MN2PR03MB5231:EE_
X-MS-Office365-Filtering-Correlation-Id: d8cc4dc8-ff81-43ff-3dcc-08de63cbcb20
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?aUJWOTA5RENNRlhucTVmTXdPVE9NUnkzOXJjVjBLdy9jeFk3OEN2R0RaVTgx?=
 =?utf-8?B?ZDFiMzNwaHdMa2NqU21KYklJZ0dSNW9rZ1lVRGNQQlo1b3ZObUp4NGViZVRy?=
 =?utf-8?B?eXdRcXkzeFdwOWttLzlqa2wzSGRZNUZkSDRZczd6UUpWMjgremo5NFpsRWNw?=
 =?utf-8?B?Skl1akpaUU5ER0tOcThIRmF4RW51STR2dUNoNW8rOFRZU3FDb1g2aWdYOE1X?=
 =?utf-8?B?b3RsRTY2WmVYM1FVM1RVSFgxTTh4S05HU094My9ENW9pSXhTeU9wNUFjTmtq?=
 =?utf-8?B?dlVsZUp6Q3dqNVFSTUFTQVZEYllRK0ZmMmJoR0tyRzAvZ1JuLzFIZTBRNW1U?=
 =?utf-8?B?eis0WFAxMW5BZ3RweXZNYnBhU1ZBRm5UYjNWK3d1OUlRWTNqeHNHTW1IUWxj?=
 =?utf-8?B?MU9nRUFBRzM1YktkVmZ0NUF4RW5BN2JUM25lVzdyV3NEL0dwWkdoeTkxWW9N?=
 =?utf-8?B?OVVDV0NrQU04RXAwaDVrbjVMeE5PbEhPMmlNa1QwZ1JwODRoRzBKQlVYSk9p?=
 =?utf-8?B?MllHZUlHekY3MWhnLzVaUFF1d2lTeW55VWNEWHRtQUJ1SUF5UmFIMVFKeHMy?=
 =?utf-8?B?aHk1Nm9aWFdaTktxb1RqNGd3M2hpMjJjaTU3dHY1SHhSWk9GeVdOUjdaOGVC?=
 =?utf-8?B?ZEhEMGIvbEhqb2Y2L0FWNGd4eG9wZGpMZ2E3NVBueXZ6bDU0KzQ1VHlyeFF6?=
 =?utf-8?B?MTg0VVZMNldGZVhRUEVib2NCZXgwTnhOc1ZPUldtdVZMY2lXWHFTc05MajNk?=
 =?utf-8?B?dFhmVGQ4WjZPQU9RM2dEQUVXNUVaaElSZGRkS2tha0RjcG9Xd1c2VVVFRDU2?=
 =?utf-8?B?MkZwSWZrUVRsNGRXSk93QURlSnpZRlpucExCeXNnd0w4ZEQzS0RwQUlyRU5J?=
 =?utf-8?B?alB1M1IzU2dMNDl3ai9XOGNPK3pyQjB4WG11N0JCOGlsdmV0NFRKWU1vS3gz?=
 =?utf-8?B?Vy9SWXJiSnBRWVJkd2RQSUZnaGgveUpPdy93S2hTNHQvZ284TGxRbHR0ZG1R?=
 =?utf-8?B?QUZvZzJkd25Id0F6UXdlRjRieS9FNzNra0hGSzJMMFpyUEJvMUZBUzlxVi9W?=
 =?utf-8?B?L3d1SWZIekdDUnFld3d6dFVmRmlJTzczV1N3T3lTUDMwNVdtc0I0Sjd2SnR0?=
 =?utf-8?B?aHBENG9LMzVmZXAzNWRNT29aUUhwNDFvSW11enU1YVFHazR5aDVrcjFUb2Fq?=
 =?utf-8?B?aDFIT0t3dkZNcTZnamJTTCtPUmpyVHNrSmpRaE9sZ2J5a0YvNjBrVDd4Nnlt?=
 =?utf-8?B?ZmIvME9oZS9EMG5MKy9nMkRvMTA5bDZjTXVNR1JCWVZKbURhZ2NLQWVQSGdj?=
 =?utf-8?B?SlhoZEVGWVdXZUJNSXNuR1pIdkhTUGxCbEFnQ09kajhGMWg5NVZ5ZEZSWHpo?=
 =?utf-8?B?L2IvbTZDWnE0bFpzUU1rWEt1NytPODBtUk9pcVQ4dTcvbVhsbE5WSG96b2p4?=
 =?utf-8?B?WHlxV2tKb1U5cnpPZnR1eVJPdS9NRGE1OGlaSXJIL2xkRllEQzIrL3BLZlVi?=
 =?utf-8?B?ZWtOeE1oTll6TDBUSzBPL3BYcmlTQ0hJaW5YejJDbXpGaFN3NVJxMlRGK0po?=
 =?utf-8?B?azRhSjlId2djV3Q2aDY1VXBFTmgzRUxyNjZsR0RQeENpUGMrZi9ZL1Y0OTN4?=
 =?utf-8?B?ZVZwSXJSRDB2bjlZTkRRQmNQVk04MGJHS1dKK0RFanpiM1QzK2hVSW1YYitZ?=
 =?utf-8?B?cjZ0RlV0ODFpRHBZRzlLc3ZJdGx2OE5SbXJReExZN1BRT0krR0Q0RmliVy9J?=
 =?utf-8?B?RlphYUpxZWkxTDA2YnVvSmplem1QMSt2NGJxaHp4NjZiVEk5Zm9GWlVBdmN4?=
 =?utf-8?B?RmpROW9lNEtLVWluTzZhcC9QWVBKNE1BMHQwNk1GYzQ0QUtJV1ZKYTdDYzlQ?=
 =?utf-8?B?RFVuQjVncmNQMHpDcWlxU3RqcVJENzg0WkdLR1doZkRlRFBkUVJHbDVPUHFn?=
 =?utf-8?B?Sjd1Y1lRMmNXK08rMnlUN0E3SDhha1gxd1FuNWZzZUV1Qk85UGswSFV5d0Ru?=
 =?utf-8?B?dm96bnErWWlwWE9sbHJWZVBMay9iSEJuWVpEWTZRaXMxNjRuY0M3VFJ5ZFda?=
 =?utf-8?B?TEM3a2RuYWVUMmhMTDhoYmFzUDY4YS9VdlZVb3lTZWhLd0JyY2VZd1BnSDFy?=
 =?utf-8?Q?7vWI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Sk45MjlOY09IOFFLbExuWXYwVWt2cjRaOXpZdzJOZWViRG52ay9HY3h2UCtQ?=
 =?utf-8?B?OU5ySFZETXJWTW9xd3FmTjc4d2ZnU3J1Z1Z5UWtPSVpDR1U4cFZxaHZyWFVu?=
 =?utf-8?B?VjNrc1JuK1R3c3QvQUc1bmgyRDNlQ0N0alFrcC9VbXZJblUwMUNxdTlNaUFs?=
 =?utf-8?B?MjNKdjl1OEJsQzFEYmFCZzNRSDZiSTNLODJrd3BKRE5sM0xzdXRMTmhrVFB2?=
 =?utf-8?B?Q1hPVXNQMWpVY0IyelNlQWNhL3R2YTNuT2syeldNTFh5TW9POGtLL0xFR2Vt?=
 =?utf-8?B?TUErYlJFWHhoZERxaXZVdktUMitjZjZkMm5iRWJwWkhDY0oxUWVPS3gzN1Jr?=
 =?utf-8?B?MXc0bUtqVk84U1gvL04rQVFyVG02dlgxMkdWQ1ZCdTkwa3M5YjNHajVhajRt?=
 =?utf-8?B?Vm9QRDlzK295NS9RYXdZcThNeU9xRERCSG1qRG9FSzBVUnBRRlIyWFE5bS9N?=
 =?utf-8?B?elU0c0FKRy9GS3l5eE5nTjVDbEI3bUEzZHNlWW5JL0JaOWdWcEQ4U0h5UjZK?=
 =?utf-8?B?c0xnUExYTmxPWkRCWjhSSk5WQmRTRmwzRXFhSTJodHI4WHpZQ29SckVyOUd5?=
 =?utf-8?B?amFKMnlhYXhibitTU3hBdlZLT2dEQnd0UFJEcEVTYitwWlozdEMwUDJWVElE?=
 =?utf-8?B?NTBmRnB0VW5pUDIzbERwZGtVVTBSS1l2dENVZi95TEpzdGxieUdDeGxTOUkr?=
 =?utf-8?B?VUt0a3R4djBzMEtSRlNqZTZ1c3gvSEpzZWFnWk95Mmdkb3MraDBGNml1ZU5j?=
 =?utf-8?B?a2dzU1lURm9TeXlzOTgvblpTL0ZRL0s4WThDQ3lxYWYyUHFCbDdybWNUYWRJ?=
 =?utf-8?B?SzBaQjNaUDlDcEkxSE5XaTduRGlwdk0wQUtaY0FvUW9PWklyK1ZaQjRJZDFo?=
 =?utf-8?B?Rk5jdWFBd0tweTdWVkFqLzI3ME41YjBOSzcxby9tb0VZajB2Q29iWllSMnNn?=
 =?utf-8?B?ZWNFUmgrekJrVXRFbzZFMmx2YWs2VGtSSW9zMHpmTnZhS1EzT2FWQnVEUjhY?=
 =?utf-8?B?L2FnOFdBaFBvM1hIYUQvdVc1QitiVVFGdUVndXppRldPU2psdnVoMEwxT1VO?=
 =?utf-8?B?SXFDemVuVHRiL2JIYyt2bE1hMjdDUFFORXpKbHBYelJ0T0c5RXk5cktmUmN5?=
 =?utf-8?B?cmVja0Q1Uko2dGdCT1Awc3dsZmg3VHVLcktWRzZEbTB4RzUwTkp0L1VCbHp3?=
 =?utf-8?B?SE92c3VSY05IVVNtT3lXTHpZN2g3azN0SGVwUTZyMS83VHVFMWlTMlM4RGN6?=
 =?utf-8?B?dFlQOHBnWjQrcm9lQ2dueTZjbG1NMFJ5K2xmMlN0V2VoSldEM1VsTnpucjdN?=
 =?utf-8?B?TWRuMitERmlWYkppQUh4S1B4WklNdW5uaWJOeWNNZnJSZXd6TWtFKzVFWURP?=
 =?utf-8?B?cE5YUDQzNGovMGtGL0YzemRQazBYbVFMcFUwQTRtYkw5bnROcnhRTDV0ZGk4?=
 =?utf-8?B?a09ZSWNra3VYMkRZVUZwMGlleDlXYXN6anlVbEFsN0wzTVVjZEpOdHBLMVZm?=
 =?utf-8?B?WDJueUsvMjR4eklYMVd3SGFLYWQ0WktVemVMbTIvS2dDYTBMNU9ObmdOTlh3?=
 =?utf-8?B?dU9GS21xMEtDWnhuZzVTU0lSb1FTL2ZTSkVoUWxjek1WNnR0SkhOQVgxWDFW?=
 =?utf-8?B?a0lSMmV0bW0zR1A1ZlVTYUNTdmVYWUNFRWI0eEgyOVFEcldDdWdCRWxqLzdl?=
 =?utf-8?B?SlZmaVRFM0xRbXJtZXRZZkppMStmN3pNVldLVkNocVRVK0dYeFhFamMyKzY1?=
 =?utf-8?B?OUpZeDNBL0Y1cnFUM3M5YXJZSUg5cGhBUS9UZGlLNUF1RTU3aFkzbTN0SFdu?=
 =?utf-8?B?Z0NyZDJOZzNneHJpdm56ZWwyVnJZZXoybFRELy9mbDRXSWEvOHJZYk5JOERF?=
 =?utf-8?B?RVU3TGREVkw3ak9PZmlVNGpkRjd2MlUrNi9iSWhxMVNuTzZ4RHNFcytwN0VY?=
 =?utf-8?B?QkY3K1FOaGFXZDI0cHRUQm4wR1JuY09sT0p2MW9RSCttcmZGK0twd2p0NkZY?=
 =?utf-8?B?czhqRmxSbTlVN0wxdDMrQ2U1ZFIwNmVBME5yN3BmM0F4TmNlYlgrUDhhK1do?=
 =?utf-8?B?bDkrRVZuZkxYYnZiaFN1VmZaMW9kdGdEZ3ozUGg3aUxRcGFhRHE1SWZKbVlG?=
 =?utf-8?B?ZHluNWZITkFzbkRKekRYQkVJaVBTcjlKNkREbGpVQ21JVHcrTlc1SmhXUC9u?=
 =?utf-8?B?S0RxakhNNERrTE1uRGw1alBJeXd5bmhkNFhvQVlVbTBiUGwrSDc4OWcrV21K?=
 =?utf-8?B?UStkUnpTbjdzSUdybG43ZmNLMk9kcXByNlh1KzhZUFoyWWhkZEZxOGhDdWRw?=
 =?utf-8?B?K0pDdG85R2h2d3Z0UG5ZRTJRR0w2SDlpK0UxbmFndDE2RTdnWEEvUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d8cc4dc8-ff81-43ff-3dcc-08de63cbcb20
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 09:00:07.2745
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 86wPchZ/jSmY1Kzi3P3h5bO5ifvpwTxblGJWdFtQDqqEY/Xg4QDcaH24i4Q2GX2ZliexztVmyXiC/w3b7TvL8A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5231

On Wed, Feb 04, 2026 at 08:56:10AM +0100, Jan Beulich wrote:
> On 04.02.2026 08:49, Roger Pau Monné wrote:
> > On Fri, Jan 09, 2026 at 06:07:48AM -0800, dmukhin@xen.org wrote:
> >> --- a/xen/include/public/xen.h
> >> +++ b/xen/include/public/xen.h
> >> @@ -608,6 +608,11 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
> >>  /* DOMID_INVALID is used to identify pages with unknown owner. */
> >>  #define DOMID_INVALID        xen_mk_uint(0x7FF4)
> >>  
> >> +#if defined(__XEN__) || defined(__XEN_TOOLS__)
> >> +/* Domain ID allocator: search [1..DOMID_FIRST_RESERVED-1] range. */
> >> +#define DOMID_ANY            xen_mk_uint(0x7FF5)
> >> +#endif
> > 
> > I would attempt to word the comment in a more generic way.  While this
> > is now only used for the domain ID allocator, it's likely to gain more
> > uses going forward (Juergen already expressed interest):
> > 
> > "DOMID_ANY is used to signal no specific domid requested.  Handler
> > should pick a valid domid, or handle it as a broadcast value depending
> > on the context."
> 
> +1
> 
> > Also, I would remove the tools guards, I think once a DOMID_ constant
> > is allocated it becomes part of the public ABI, and it cannot be
> > withdrawn.  See for example DOMID_IDLE: it's only used internally in
> > the hypervisor AFAICT, yet the define is fully visible in the
> > headers.
> 
> It was me to ask for it to be guarded like this. DOMID_IDLE (and perhaps
> others) not being guarded (at least for IDLE: by just __XEN__) imo was a
> mistake. That mistake may in fact be correctable, if we could prove that
> the ID cannot usefully be passed into anywhere.

Even if it's not passed into anything, does it make sense to guard
them?  The reserved domid values are already consumed, ie: cannot be
reused in any way.  It just seem to me like more ifdefery churn for no
specific benefit.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:00:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:00:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220238.1528945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnYkE-0006iZ-UY; Wed, 04 Feb 2026 09:00:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220238.1528945; Wed, 04 Feb 2026 09: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 1vnYkE-0006iS-RZ; Wed, 04 Feb 2026 09:00:18 +0000
Received: by outflank-mailman (input) for mailman id 1220238;
 Wed, 04 Feb 2026 09:00: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=Ke1/=AI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnYkD-0006iM-AD
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:00:17 +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 ec2b4999-01a7-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 10:00:16 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-47ee07570deso55144155e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 01:00:16 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830ec5cc24sm21961265e9.3.2026.02.04.01.00.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 01:00:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec2b4999-01a7-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770195615; x=1770800415; 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=r3eOJqHhjKxDuoHkcfX76ycl2IVwyQ77rcRwoU2Q/dg=;
        b=klSweW+EuawpBfiRIuvqaiQv3TeWKOIQbxszI9l1Mg6BtyCfh7ISllPE1vYPNchaFF
         q+TXFXeJ0wEYBGPgWZXldh7wNRfqblLnOSAqNWNeoPgTt1zEARZEvAGRCV/0Gx5/oVy6
         LR6XcV/e1paqqotxikTwseOrIljjR/z/WkSCs6vZ/fzRf67kI+bsKTrpjuCImw7mIYw2
         TALtAu00iHsG609sspF1U5cogwR9ych4AxqUXPTRo/nYUUo9hdvQB8qoMT5rVySG3j5d
         tScADgiZrCNQRr8a9ozi+Wd1DBMj44Uit/mwQblXDJRifcfBT4phbS5/pj6aMmpBc/wF
         tdrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770195615; x=1770800415;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=r3eOJqHhjKxDuoHkcfX76ycl2IVwyQ77rcRwoU2Q/dg=;
        b=pN34GInjfHpi+3O9XwFrf4cZkbPEPPklvRUCoda+A8wUxCoe5DO3xLBR2qOAA5HTTH
         9lWBkRcaPZYc5yhoUrFRU37aTqFcQPtjF5gdVoPU2jpagLFxCOcpVIFLAHeyRc8KdHFZ
         qgDbvNRtEp0makTSItD828ng36D1iQUlYY3cE0kEWo87Y3Ii8LnCNexYb49Q4WzBk+BR
         Ik/Ta1NyDXxV1XUDJ9osL/yPf3lqzNXxjbdxlIwScjK6itzyZZ50AIdJpyvLZpyPfqD+
         9gBEoe3zQQpUICNxi+v6TimvpmsaOUz1i66O+N7SKlwoSe+ErMglwyJIHwGGJGdnBh5C
         TeXg==
X-Forwarded-Encrypted: i=1; AJvYcCXMfSrG1Lcq176YpyaNRL2X/wZ1FLm1k7Bu22i9wz98N44KaLygd4zblJew/p0nk3DnhoaBYJdp2G8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxle3tM9B/7JkJbcRh2ltg7KXMGRgybhAwRg41zAbxLAJF8qxiW
	f4lAXOlkVjWrUcZ5+t+djENvemAd4ArPU4JIsEiCHiX9f1rN+k0lH5LX
X-Gm-Gg: AZuq6aLSjCP3FJTu5R2JERnio5PE7Odk0U6xZfzja0PZJygPby2wIpJLRqN827ooQY9
	lfo6EXZZrhS4GWHTzWpX+kI9mZCZRqDQB1m1Px2WAPm/x0pQi2KrzcGA8H2IGeL25AGSvsIStsd
	HB/0cYbtu5Tlggkn0UCWUVLHedGqwSzAyU3TisBM+GepEPI7FLqzvNTM0DbczVe4SafHjBEfYRz
	H+Ce55eWaiLfESF1bNG4NJU3dOzmLqyF+/TrbYp6vJ7RpG/1Lh5mQiFtrHtyRRSMSrRAxiXbxMZ
	jkweW/BxaoMzqzz1xnqvMRjprvSvAjGDOAOqVKVbi6RnwCIvdJ2BYxsBWHPhMTYN5uQJRx26rOz
	VORoQquhNJci+g8EbQ1Vq1Ui0dNHkyruDMoABYpvyqjallg+ueSYDXmZl5ctgdUY3aCJXfrIkLj
	Bx62NnprF3Ek2MO9ycAZq2GMifnBj3yXnoB6l6w+LeB95NTmHo37HeLbvJK/HOPT+vWdOJmdKY/
	Q==
X-Received: by 2002:a05:600c:19cd:b0:477:2f7c:314f with SMTP id 5b1f17b1804b1-4830e94c659mr29031495e9.10.1770195614516;
        Wed, 04 Feb 2026 01:00:14 -0800 (PST)
Message-ID: <b75649af-801d-4f74-9e67-aa921a060b9a@gmail.com>
Date: Wed, 4 Feb 2026 10:00:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 06/16] xen/time: move ticks<->ns helpers to common code
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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <c7afd490ad9cbeb91b2b46b59cba094c7322edfd.1769099885.git.oleksii.kurochko@gmail.com>
 <2ff79945-f972-49ae-b50a-a7bbff9d4aa9@suse.com>
 <b5fa18dd-d831-4f32-9b29-ac431e54b7b2@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <b5fa18dd-d831-4f32-9b29-ac431e54b7b2@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/4/26 9:13 AM, Jan Beulich wrote:
> On 29.01.2026 09:48, Jan Beulich wrote:
>> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>>> ticks_to_ns() and ns_to_ticks() are not architecture-specific, so provide a
>>> common implementation that is more resilient to overflow than the historical
>>> Arm version. This is not a practical issue for Arm, as the latest ARM ARM
>>> that timer frequency should be fixed at 1 GHz and older platforms used much
>>> lower rates, which is shy of 32-bit overflow. As the helpers are declared
>>> as static inline, they should not affect x86, which does not use them.
>>>
>>> On Arm, these helpers were historically implemented as out-of-line functions
>>> because the counter frequency was originally defined as static and unavailable
>>> to headers [1]. Later changes [2] removed this restriction, but the helpers
>>> remained unchanged. Now they can be implemented as static inline without any
>>> issues.
>>>
>>> Centralising the helpers avoids duplication and removes subtle differences
>>> between architectures while keeping the implementation simple.
>>>
>>> Drop redundant <asm/time.h> includes where <xen/time.h> already pulls it in.
>>>
>>> No functional change is intended.
>>>
>>> [1] ddee56dc2994 arm: driver for the generic timer for ARMv7
>>> [2] 096578b4e489 xen: move XEN_SYSCTL_physinfo, XEN_SYSCTL_numainfo and
>>>                        XEN_SYSCTL_topologyinfo to common code
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>> Nit: Flip the two (chronological order).
>>
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> Btw, if this got the necessary Arm ack, I think it could also go in ahead of
> all earlier patches in the series?

Yes, it is independent from earlier patches in the series.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:15:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:15:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220258.1528965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnYz7-0000sT-Gh; Wed, 04 Feb 2026 09:15:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220258.1528965; Wed, 04 Feb 2026 09:15: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 1vnYz7-0000sM-EC; Wed, 04 Feb 2026 09:15:41 +0000
Received: by outflank-mailman (input) for mailman id 1220258;
 Wed, 04 Feb 2026 09:15: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnYz5-0000sF-QB
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:15:39 +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 0ef00f96-01aa-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 10:15:33 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-432d256c2e6so5220067f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 01:15:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436180640f2sm4688075f8f.39.2026.02.04.01.15.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 01:15:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ef00f96-01aa-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770196533; x=1770801333; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cdCGhPTiGtrfacaWOBlEp+ZIdv6jnvcgs/nWvePxd/4=;
        b=eb7xVUpNNRqw+VXjQfhFd89qpcqxM172C6fULqeirclTBGcmILscijnuUfd9Avlpw+
         wl4Yc2CmJ0YGzaHMfqU6u2q0S6kTW3NoH76tr25y/j1/+oSKP/lLyPFFuiCDYAQcw1Ze
         WNBPqcAm52Upk6lURMAIebXuOIOFaRu3d0qiCp9Izg+ekhZWHDZyhylmauSOE2jKp1pg
         108Vh8f4eaCLGc+E88cTcJc6dYDf9WD8UNZMUC0+HFzWHu7rC1l7fgf9lr/mndtnGMGP
         3Jg/WAMBQ2TJKNcay6AXfNiaPPaILE6xRdHwZ0Y1d43IAy+cvD4jgcJE/JDsyZEWPtOX
         kcrA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770196533; x=1770801333;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cdCGhPTiGtrfacaWOBlEp+ZIdv6jnvcgs/nWvePxd/4=;
        b=EHvy/HLobNVWLiMpjy/UpyTPRoggXIB8fMWVxxIc5PWFbe8Y/4FB6qajcvIOg+3kMg
         6VMfKlTi0Wnx17UfT/Tp5qZ5VsVFUy6sbwLmgBKJKIp7B41xwE3XHSMMLxYVFtQw99XU
         4nvyewczkd9SvynQemOP42LCduZxFSiYsVrtqboUOFBiDu24wY5KjvhfevdsQH1/zK3s
         YTkMF5kGU0v5UkhOZ4/9aANfbSK7l+KLJQOh5KlikzrFrPssVUW1QfT8PgnSZ/ENGRbQ
         CQ0/9hazw5bw73Uzx9RTCKj/qPmmm4vhHejLB8WS+poYRaIiZne9gwC6cbu4HyE+nbAP
         Cu2g==
X-Forwarded-Encrypted: i=1; AJvYcCUw23dX8JE6JAJN+LA66BJ1SFlUjsPifdGmzj8TziWjtaSMOiv3ZwTMXvwOv5fJd9eBedcjIzCrFL4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbeW0asjS8LGEu8SaK922UUeVKiW6wXl43p2PBqusZ41ggXB2o
	YDvfW17uR/ud0PO3et0KsknlZYDQ1x+soC4+XtU5/f86/XWZIFb85FS3sfS8ZWV5YA==
X-Gm-Gg: AZuq6aJZ30+xVRTVTKdSXalm+4J/4GkSuQTXqhLScvnrZihZVMK+MMl50dypm+bHuXH
	muT5KbBm/RhvQTuBHltc8kFiSjsbNTb8UVtBFulC/2ckLN96SfiNM6wnYvzMVRkNbHtA/njWaxB
	0Fx0wo9JvotaRXu+a+UnTAqY3n1ApVmZuRyl5DMNxG5yO9VJu+v5WQdSY11WwO4qDKgrFvrgJbr
	v9Ccuae6p0C9osJ478VJJtRCNfVR4MViApvgT86HrjOuA1MNaJnmm7GgF/xXUue5HKEhm06jKK2
	cMTsJ+qFi4JbLhzsRka/YYjjyEvxDAavt2jC2G2nE2PePEYqESNq/VXD2By9mZPRkvG0/POZ0ID
	BaX2qXjSfrpUgUtpxkGl1dymNq06yd22Wl/SBcrrsGJHm2ajhSEPdMrGbpbmUswX7Fc4VbcCNDx
	XG1EMPlayymzp9jjKmGuePMaHvAHMqv95g2yP6mR+I1udatIQ1flNFedpFFppYRTfJLj/LgfU+5
	JY=
X-Received: by 2002:a05:6000:220f:b0:435:a363:f29e with SMTP id ffacd0b85a97d-43617e2fbb3mr3112802f8f.11.1770196532691;
        Wed, 04 Feb 2026 01:15:32 -0800 (PST)
Message-ID: <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
Date: Wed, 4 Feb 2026 10:15:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@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: <aYMKk9YtrR7NOKyt@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 10:00, Roger Pau Monné wrote:
> On Wed, Feb 04, 2026 at 08:56:10AM +0100, Jan Beulich wrote:
>> On 04.02.2026 08:49, Roger Pau Monné wrote:
>>> Also, I would remove the tools guards, I think once a DOMID_ constant
>>> is allocated it becomes part of the public ABI, and it cannot be
>>> withdrawn.  See for example DOMID_IDLE: it's only used internally in
>>> the hypervisor AFAICT, yet the define is fully visible in the
>>> headers.
>>
>> It was me to ask for it to be guarded like this. DOMID_IDLE (and perhaps
>> others) not being guarded (at least for IDLE: by just __XEN__) imo was a
>> mistake. That mistake may in fact be correctable, if we could prove that
>> the ID cannot usefully be passed into anywhere.
> 
> Even if it's not passed into anything, does it make sense to guard
> them?  The reserved domid values are already consumed, ie: cannot be
> reused in any way.  It just seem to me like more ifdefery churn for no
> specific benefit.

Well. From an abstract perspective, purely hypothetical at this point, I
could see a potential need to re-number them, e.g. to simplify checking
against groups of these special IDs.

Yes, excess #ifdef-ary is an issue. Excess exposure of things also is,
though. Finding the right balance between both can be interesting.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:17:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:17:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220265.1528975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZ1E-0001gN-SY; Wed, 04 Feb 2026 09:17:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220265.1528975; Wed, 04 Feb 2026 09: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 1vnZ1E-0001gJ-Pk; Wed, 04 Feb 2026 09:17:52 +0000
Received: by outflank-mailman (input) for mailman id 1220265;
 Wed, 04 Feb 2026 09: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=A/hJ=AI=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1vnZ1D-0001g7-B7
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:17:51 +0000
Received: from jpms-ob01.noc.sony.co.jp (jpms-ob01.noc.sony.co.jp
 [2001:cf8:ace:41::4]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5a8bd8ff-01aa-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 10:17:43 +0100 (CET)
Received: from unknown (HELO jpmta-ob1.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::6])
 by jpms-ob01.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 04 Feb 2026 18:17:38 +0900
Received: from unknown (HELO JPC00244420)
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob1.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 04 Feb 2026 18:17:38 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5a8bd8ff-01aa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770196664; x=1801732664;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=gSpoUwnGMiw8Hd9rxHOb3HRj7lon6L0Wu64wAWcD0ZA=;
  b=LIdgx8r9durid36hIW4viiOsrJsUW0MWC8WAXjvW1hDXnwWSwq4WwW2o
   7AtVnv4//lpFDkI4fNectVdGiYkdgv3bEU0BqM3b1Ki4J9N/oA9dqgPsj
   HFtTLPPvSESSY3si4sQmdYMy6exwmZ1AC0zmwQErBR0hiLwxq6z3ynfZp
   hnbYV/WNabxsFWyLoNBOWaBtV5cvjQqi/mzLsuGHnZdFaTx6vVZ2Onrci
   UKpp4TrxKl3R9kd46cV92WmfJGQW43uQwI99bCh2yv4pR1JHz2MhYgXva
   aSLEwRmHYqQj4atNXjqFWfMiIX4iGoU+KHOm4PMUJktHXuMJ2EKXJgTfV
   A==;
X-IronPort-AV: E=Sophos;i="6.21,272,1763391600"; 
   d="scan'208";a="608110368"
Date: Wed, 4 Feb 2026 18:17:29 +0900
From: Shashank Balaji <shashank.mahadasyam@sony.com>
To: Sohil Mehta <sohil.mehta@intel.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>, stable@vger.kernel.org
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Message-ID: <aYMOqXTYMJ_IlEFA@JPC00244420>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
 <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>

Hi Sohil,

On Tue, Feb 03, 2026 at 01:08:39PM -0800, Sohil Mehta wrote:
> > diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
> > index d93f87f29d03..cc64d61f82cf 100644
> > --- a/arch/x86/kernel/apic/apic.c
> > +++ b/arch/x86/kernel/apic/apic.c
> > @@ -2456,6 +2456,12 @@ static void lapic_resume(void *data)
> >  	if (x2apic_mode) {
> >  		__x2apic_enable();
> >  	} else {
> > +		/*
> > +		 * x2apic may have been re-enabled by the
> > +		 * firmware on resuming from s2ram
> > +		 */
> > +		__x2apic_disable();
> > +
> 
> We should likely only disable x2apic on platforms that support it and
> need the disabling. How about?
> 
> ...
> } else {
> 	/*
> 	 *
> 	 */
> 	if (x2apic_enabled())
> 		__x2apic_disable();

__x2apic_disable disables x2apic only if boot_cpu_has(X86_FEATURE_APIC)
and x2apic is already enabled. x2apic_enabled also does the same checks,
the only difference being, it uses rdmsrq_safe instead of just rdmsrq,
which is what __x2apic_disable uses. The safe version is because of
Boris' suggestion [1]. If that's applicable here as well, then rdmsrq in
__x2apic_disable should be changed to rdmsrq_safe.

> I considered if an error message should be printed along with this. But,
> I am not sure if it can really be called a firmware issue. It's probably
> just that newer CPUs might have started defaulting to x2apic on.
> 
> Can you specify what platform you are encountering this?


I'm not sure it's the CPU defaulting to x2apic on. As per Section
12.12.5.1 of the Intel SDM:

	On coming out of reset, the local APIC unit is enabled and is in
	the xAPIC mode: IA32_APIC_BASE[EN]=1 and IA32_APIC_BASE[EXTD]=0.

So, the CPU should be turning on in xapic mode. In fact, when x2apic is
disabled in the firmware, this problem doesn't happen.

Either way, a pr_warn maybe helpful. How about "x2apic re-enabled by the
firmware during resume. Disabling\n"?

[1] https://lore.kernel.org/all/20150116095927.GA18880@pd.tnic/


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:22:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:22:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220275.1528985 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZ5A-0003DF-Ar; Wed, 04 Feb 2026 09:21:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220275.1528985; Wed, 04 Feb 2026 09:21: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 1vnZ5A-0003D8-8L; Wed, 04 Feb 2026 09:21:56 +0000
Received: by outflank-mailman (input) for mailman id 1220275;
 Wed, 04 Feb 2026 09:21: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnZ59-0003D2-7e
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:21:55 +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 f1cf32ea-01aa-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 10:21:53 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48068ed1eccso61001215e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 01:21:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4831084dd88sm31442025e9.6.2026.02.04.01.21.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 01:21:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1cf32ea-01aa-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770196913; x=1770801713; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KZAy3JBFmfHD5+cvcujEFJBeVcKl/dA93tdV5F0xLLY=;
        b=YUBj6ts59m1emaozuPr1UYCoVewROkJ9Oy/Z9jTs2zemVn47I2uD9+eBN3q0vFcXBq
         hzx7/6daVk2duf6Wb6t4UU+yyrGcUeevkiNIKobDbpzBr95eZ1LXIHnv65HHh3X6iKMM
         8sTc9vQsLoDylFBd1Qai74jfaw72wj1Ra2bAcTkZEu1bcLw0KbV0a2yXOLBC4oCxZEEw
         eGypHaTAWHYwmsBS7jQIaZP01W/TwRxO7hZo3knpj52waoGPTXzStIQbTzCIy5xDbwyP
         FFbgpz/K23IMHThiIwRVZyyabsPGbpD3K2k22uCTEc2JyPFvjQXt2QEe1wcpxPVQtLoW
         kJUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770196913; x=1770801713;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KZAy3JBFmfHD5+cvcujEFJBeVcKl/dA93tdV5F0xLLY=;
        b=U5Aw0JDu2BeDfOilOia5E4uBYepRK5FfICMT5T6yxT6YBqetYPGsMBVLVTxY6L3Dhv
         HKp33omidhHfZqp/sZ0I+ZcgQ4VvUCcM2iG2UvITkerkjh2tqqR5+apBrBAKyqQXyN77
         J2FY/+wHcdZpNDcPp25vPCZ3e86XIe8CmPvZ4TsMYBz5T2Bvrsih9A+JngCvmdGQR4ef
         TPgMZKczUARMYyjInpVyxKBNkwkZ/UXUIkJIb0SAAUJNPSAx64z/qX30DNn8+wjxXVjD
         GjSUgDHsC+dLRoCEdGo1mzJBJLBEM9k0KD2N8tWXlWrc0eoAsST6jdQM8cFyAx7/bFxJ
         Usxw==
X-Forwarded-Encrypted: i=1; AJvYcCWqVdcrc9yD1fqugaN0eZXRG8MZV3+CahLrLRXEA4hv0508ZHOEfJHEatBibLz/o2yZntDs0l0HFvs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy0GqM5x6nAICRcEAuBiIN5hXeF42e1j6RiTAtvy+wJ5YvmxB7Q
	wPSupsP0lS8uGAoWZwCFrjW+ZJMHUAliCkhE7W2pioLFbkpXF2AWl5L30Q3CU4Q3zg==
X-Gm-Gg: AZuq6aLH8/mvyVryz8fcCFEWqzHjzNByy426fo4IB5eKqZ+B5salhjV/ZQKB2xoG3c2
	bQv+bBG7omrpDm0uZnD28Gke/95dsPpabVFcB5m4x4e2RlPzqBSFTue8A6zlpxirtXwRIcH1vPQ
	0s0Bmk+sEM84LXPUop5qwhLYw8MOOfLQQcagwiDzyixed1uI9NkBmty5wr8l2uAPE2gYERiiNZt
	u1TJOr2oMsBNdybgHwQOFGBY5MAR1jTYv/XcusiH8ALJrElq+31lip4DC/1kL8L08LBx5CByzw4
	t6Z3ZXu3qasQnm1NGOBveh7bRXnbLX2bfirjS52rbSW4xZ5YarlyDdh+ph5WKhUbt9N9WDRLazh
	DXBdvUSJ/zHQ4OtQik14YHyg4t6TnAG0vtzxSoRM808hyE9PJHvF7ddTSk9tQvKby+x9wqX4TC4
	XYfbryf64HYyZ/KZEWgAk3gcDv7q4n6S9oiDsO0ybkiZChjIbF6mMK0V4vyBMjZ3NrJ5+KhY47G
	/8=
X-Received: by 2002:a05:600c:3b16:b0:480:3b4e:41b8 with SMTP id 5b1f17b1804b1-4830e9934d2mr31832515e9.33.1770196913298;
        Wed, 04 Feb 2026 01:21:53 -0800 (PST)
Message-ID: <2a09d8d7-c826-4b8f-a531-e26c4b352d40@suse.com>
Date: Wed, 4 Feb 2026 10:21:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 14/24] xen/domctl: wrap pci-subset iommu-related domctl
 op with CONFIG_MGMT_HYPERCALLS
To: "Penny, Zheng" <penny.zheng@amd.com>
Cc: "Huang, Ray" <Ray.Huang@amd.com>,
 "grygorii_strashko@epam.com" <grygorii_strashko@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "Andryuk, Jason" <Jason.Andryuk@amd.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 "Garcia Vallejo, Alejandro" <Alejandro.GarciaVallejo@amd.com>,
 "Stabellini, Stefano" <stefano.stabellini@amd.com>
References: <20251121105801.1251262-1-Penny.Zheng@amd.com>
 <20251121105801.1251262-15-Penny.Zheng@amd.com>
 <DM4PR12MB84517CB58BD82B676DD25AE9E198A@DM4PR12MB8451.namprd12.prod.outlook.com>
 <bdda8006-6361-4e79-b3ef-19409bf98587@suse.com>
 <DM4PR12MB84517BAB14591F2D46BF082FE198A@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: <DM4PR12MB84517BAB14591F2D46BF082FE198A@DM4PR12MB8451.namprd12.prod.outlook.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.02.2026 09:23, Penny, Zheng wrote:
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Wednesday, February 4, 2026 4:09 PM
>>
>> On 04.02.2026 08:50, Penny, Zheng wrote:
>>>> -----Original Message-----
>>>> From: Penny, Zheng <penny.zheng@amd.com>
>>>> Sent: Friday, November 21, 2025 6:58 PM [...]
>>>> 772,14 +774,16 @@ 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,
>>>> -    .assign_device  = amd_iommu_assign_device,
>>>>      .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_MGMT_HYPERCALLS
>>>> +    .assign_device  = amd_iommu_assign_device,
>>>>      .reassign_device = reassign_device,
>>>>      .get_device_group_id = amd_iommu_group_id,
>>>> +#endif
>>>
>>> FWIS, Alejandro has come up a more clever way to DCE these kinds of op,
>> staying conditionally as callback. Here, I just took this commit as example to show
>> the methodology:
>>> ```
>>>          .assign_device  = IS_ENABLED(CONFIG_MGMT_HYPERCALLS)
>>>                                         ? amd_iommu_assign_device
>>>                                         : NULL, ``` The compiler has
>>> enough visibility to know that static(amd_iommu_assign_device()) is used, and is
>> droppable when MGMT_HYPERCALLS=n. So there is no need to do ifdef-wrapping
>> around these statics now. Later when jason's "--gc-section" patch serie in,  --gc-
>> section will help linker identify them unused when MGMT_HYPERCALLS=n, then
>> remove them automatically.
>>
>> I fear I don't see why --gc-sections would make a difference when, for static
>> functions, the compiler already is in the position of removing the functions.
> 
> I may misunderstand the DCE process. With this change, we don't need to put #ifdef CONFIG_MGMT_HYPERCALLS around the statics (e.g. amd_iommu_assign_device()). So preprocessor will not help us remove them.

But the compiler's optimization passes can, when they observe that a static
function, while referenced by source code, is referenced only in branches of
conditionals which are compile-time false. Without link-time optimization
that's really about all DCE can do.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:26:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:26:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220290.1528995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZ8z-0003qs-Tu; Wed, 04 Feb 2026 09:25:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220290.1528995; Wed, 04 Feb 2026 09:25:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZ8z-0003ql-Qt; Wed, 04 Feb 2026 09:25:53 +0000
Received: by outflank-mailman (input) for mailman id 1220290;
 Wed, 04 Feb 2026 09:25: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=yHEP=AI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vnZ8y-0003qd-KL
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:25:52 +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 7eb2eaf4-01ab-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 10:25:50 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-6582e8831aeso10068334a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 01:25:50 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6594a2166acsm1094809a12.18.2026.02.04.01.25.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 01:25:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7eb2eaf4-01ab-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770197150; x=1770801950; 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=ctu22ieWP6iQPWf1ngcY8dQ8MxXrIF00NzeTvW/mk+A=;
        b=fsWzomf0uEKISzRM92waa5JGAqO4+abqGqV55EyA5gl/5HOW334uulbiHLhTWEvvtN
         epLryQv3QEJ9e6CMtLmrGOI3HRLjwetULTSdIY4xyVKZZrY8R7jc93lQaGORhaD/ThsP
         LM9ZYaRLVAmBjcMpJfJ6mzCDl7VBj1WRntWI0g+YgQ2Gebe908CKkflF3/i1dDVQxMSf
         BXdKX7h4/RgGck6x2YCTW/xr7f+GymO1JSJwaeEhLm+RR7wmcI643JdYrk0vg8e/91yA
         v/KuAVymx1bhDAJ/DUwJFXi3AJZZvKyZJEejDrEdCJ0SUk2du0DUQwaPmJRZuWFM6dir
         gb9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770197150; x=1770801950;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ctu22ieWP6iQPWf1ngcY8dQ8MxXrIF00NzeTvW/mk+A=;
        b=EiSAa37tQbFtl5vOXlMN28A51IzBFfmhWTTj9377p4ButnFQvaL8ZuDZZ60xJgDQs2
         PjMs0921Rbr281aYRbfylVhYUEt1oS65mHDHdQJ0teOKe38zEJgzB14xkmhSkueI5hlz
         DvYHM8czMEwQwKAdiCt+ZRfkp4cDhs4NvbhFYASuUfFLtLPk3/TTbQvZg8bIvh329w/G
         pOs3bH09B0lwMwHL+c3/H1sv/2KdsHTplfr12C8oUXidoWtiPsWfxzcxWRr7OJq09xeP
         M0F4m5oMU/4rG0mLwSMsVhJyz+7EOvq8WUpHcJK32uY384YefDAgczGwdHDXm29yTDBe
         83tw==
X-Forwarded-Encrypted: i=1; AJvYcCWl20rliKjjTbiZHcovI9VmRQlYXHMfOjfRqRJf3LW6+hF8DC12pqC4Nd4vGA0NPUBiPwfKVyRtWpE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQbgD8NJu8sCE5RldXP1QdRq0sBQoloJRafIX1nj1JXpOnDiHq
	rQ2u90TDwRP0SM55Hu/RY987qN9v4WdNr6blrqf/G5txESaVGuK/yRE5Zlyv2tEnUgYy+Ff4F5l
	rAtIqfRE=
X-Gm-Gg: AZuq6aKTU68nrB23t5XatE7kn9YZMSlkKJaMwaLUzSaaIPRr2A25GKYHNLgaWpNXruN
	zYORFNelBeo2pDj7kzSCFA+9yMpdXLULiGIATj3reLsmgJ58Ob4WqFPxLO5NQiMT/a4DTpvAlFD
	lIZ5dn9uPYiexmKmqoVgjWpQV3lJMwqBtA0nWI4U3rFCab0RN7MKxywGV08OjGPd9O9w+9h16Lb
	PxHmYMTlO72xb1HQMpIpMZIroZP5Fz2cNu5Jwedc8Vkr7K3zVBBMU9uA+7tmh+mL3LwygAykj7p
	PZbmvQ7q5v8h1w0TgVLyDBzQaZ9LGkE04MYe+SlpuxLgvz7eN/reyDfB903wdK2sZMzZXX+llDd
	Rj57MyEAgAnDkYOb0aWx3anN8tsl4fgwOpDJbeLQELLCzx9jmH3/rQF/wAyFGG1CfVtFZtf3PoP
	YevGrBxSaGxv93z9z8egmJmYaz/mgPp/dSxgQxMEhUBs2XfEJoZ+7uHjV01PnFNasi237hKg9UW
	A5LguMk3Pq2mpYDerqUDH2mWkWmjMN6X9RopcxfHjnxn3tT
X-Received: by 2002:a05:6402:146b:b0:658:bab5:5801 with SMTP id 4fb4d7f45d1cf-65949bb6e72mr1690042a12.5.1770197149721;
        Wed, 04 Feb 2026 01:25:49 -0800 (PST)
Message-ID: <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
Date: Wed, 4 Feb 2026 10:25:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@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: <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Lxyp0NA0YUSetyMxTPpU0hiT"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Lxyp0NA0YUSetyMxTPpU0hiT
Content-Type: multipart/mixed; boundary="------------P6IFotX3rFvIXHv1yI0yHKhV";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com
Message-ID: <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
In-Reply-To: <cef81f1b-4348-43a1-a146-dfc57437a97a@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=

--------------P6IFotX3rFvIXHv1yI0yHKhV
Content-Type: multipart/mixed; boundary="------------zAPeMZxZa2f8IoMki0QDQzw8"

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

T24gMDQuMDIuMjYgMTA6MTUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4wMi4yMDI2
IDEwOjAwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4gT24gV2VkLCBGZWIgMDQsIDIw
MjYgYXQgMDg6NTY6MTBBTSArMDEwMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMDQu
MDIuMjAyNiAwODo0OSwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4gQWxzbywgSSB3
b3VsZCByZW1vdmUgdGhlIHRvb2xzIGd1YXJkcywgSSB0aGluayBvbmNlIGEgRE9NSURfIGNv
bnN0YW50DQo+Pj4+IGlzIGFsbG9jYXRlZCBpdCBiZWNvbWVzIHBhcnQgb2YgdGhlIHB1Ymxp
YyBBQkksIGFuZCBpdCBjYW5ub3QgYmUNCj4+Pj4gd2l0aGRyYXduLiAgU2VlIGZvciBleGFt
cGxlIERPTUlEX0lETEU6IGl0J3Mgb25seSB1c2VkIGludGVybmFsbHkgaW4NCj4+Pj4gdGhl
IGh5cGVydmlzb3IgQUZBSUNULCB5ZXQgdGhlIGRlZmluZSBpcyBmdWxseSB2aXNpYmxlIGlu
IHRoZQ0KPj4+PiBoZWFkZXJzLg0KPj4+DQo+Pj4gSXQgd2FzIG1lIHRvIGFzayBmb3IgaXQg
dG8gYmUgZ3VhcmRlZCBsaWtlIHRoaXMuIERPTUlEX0lETEUgKGFuZCBwZXJoYXBzDQo+Pj4g
b3RoZXJzKSBub3QgYmVpbmcgZ3VhcmRlZCAoYXQgbGVhc3QgZm9yIElETEU6IGJ5IGp1c3Qg
X19YRU5fXykgaW1vIHdhcyBhDQo+Pj4gbWlzdGFrZS4gVGhhdCBtaXN0YWtlIG1heSBpbiBm
YWN0IGJlIGNvcnJlY3RhYmxlLCBpZiB3ZSBjb3VsZCBwcm92ZSB0aGF0DQo+Pj4gdGhlIElE
IGNhbm5vdCB1c2VmdWxseSBiZSBwYXNzZWQgaW50byBhbnl3aGVyZS4NCj4+DQo+PiBFdmVu
IGlmIGl0J3Mgbm90IHBhc3NlZCBpbnRvIGFueXRoaW5nLCBkb2VzIGl0IG1ha2Ugc2Vuc2Ug
dG8gZ3VhcmQNCj4+IHRoZW0/ICBUaGUgcmVzZXJ2ZWQgZG9taWQgdmFsdWVzIGFyZSBhbHJl
YWR5IGNvbnN1bWVkLCBpZTogY2Fubm90IGJlDQo+PiByZXVzZWQgaW4gYW55IHdheS4gIEl0
IGp1c3Qgc2VlbSB0byBtZSBsaWtlIG1vcmUgaWZkZWZlcnkgY2h1cm4gZm9yIG5vDQo+PiBz
cGVjaWZpYyBiZW5lZml0Lg0KPiANCj4gV2VsbC4gRnJvbSBhbiBhYnN0cmFjdCBwZXJzcGVj
dGl2ZSwgcHVyZWx5IGh5cG90aGV0aWNhbCBhdCB0aGlzIHBvaW50LCBJDQo+IGNvdWxkIHNl
ZSBhIHBvdGVudGlhbCBuZWVkIHRvIHJlLW51bWJlciB0aGVtLCBlLmcuIHRvIHNpbXBsaWZ5
IGNoZWNraW5nDQo+IGFnYWluc3QgZ3JvdXBzIG9mIHRoZXNlIHNwZWNpYWwgSURzLg0KPiAN
Cj4gWWVzLCBleGNlc3MgI2lmZGVmLWFyeSBpcyBhbiBpc3N1ZS4gRXhjZXNzIGV4cG9zdXJl
IG9mIHRoaW5ncyBhbHNvIGlzLA0KPiB0aG91Z2guIEZpbmRpbmcgdGhlIHJpZ2h0IGJhbGFu
Y2UgYmV0d2VlbiBib3RoIGNhbiBiZSBpbnRlcmVzdGluZy4NCg0KSSBoYXZlIGEgcGF0Y2gg
aW4gd29yayB3aGljaCB3b3VsZCB3YW50IERPTUlEX0FOWSBub3QgYmUgZ3VhcmRlZC4gSSB0
aGluaw0KZXNwZWNpYWxseSBET01JRF9BTlkgY291bGQgYmUgdXNlZnVsIGZvciBvdGhlciBj
YXNlcywgdG9vLg0KDQpMb29rIGUuZy4gYXQgWEVOX0FSR09fRE9NSURfQU5ZLiBFdmVuIGlm
IEkgZG9uJ3QgdGhpbmsgd2UgY2FuIHN3aXRjaCBpdA0KdG8gRE9NSURfQU5ZLCBpdCBzaG93
cyB0aGF0IHRoZSBjb25jZXB0IGFzIHN1Y2ggaXMgbm90IHJlc3RyaWN0ZWQgdG8gWGVuDQpp
bnRlcm5hbCB1c2UgY2FzZXMuDQoNCg0KSnVlcmdlbg0K
--------------zAPeMZxZa2f8IoMki0QDQzw8
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-----

--------------zAPeMZxZa2f8IoMki0QDQzw8--

--------------P6IFotX3rFvIXHv1yI0yHKhV--

--------------Lxyp0NA0YUSetyMxTPpU0hiT
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/Ey8FAmmDEJwFAwAAAAAACgkQsN6d1ii/Ey/w
iQf/Qtr3jDpJVNKOKzhTaJwpFgM4WwH1ua9uetsH6dZL2D9D/dvEBrpGJtFUZds3+OAF5PnRGM6+
LVT4uLK2efzCJy8m0E5T4Zyie0G8Bl7+ZuiYAlVe3VnZSkSJeqw2tziKh1sj9YoL2WYElUYa96vL
+lhnEWkSEiXFOi0izGEFszHB0OA0KISXdKHIuIY2soxnKdcHcLVO5PuBWALB88OXuCGt9AddSFd2
vNm14VI+ARPzY1iMg4vKJdYb3z21T18vijeCe0izrgli7i/LIRqwuJ/KelGKYwaOSTdjGQCtiFF6
LUcRA6+me7PVue8jeOWX28xOjMAn1vUFJerb46V8hA==
=B+JI
-----END PGP SIGNATURE-----

--------------Lxyp0NA0YUSetyMxTPpU0hiT--


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:29:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:29:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220298.1529006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZCP-0004jm-Bi; Wed, 04 Feb 2026 09:29:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220298.1529006; Wed, 04 Feb 2026 09:29: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 1vnZCP-0004jf-8l; Wed, 04 Feb 2026 09:29:25 +0000
Received: by outflank-mailman (input) for mailman id 1220298;
 Wed, 04 Feb 2026 09:29: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=Ke1/=AI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnZCO-0004jY-E8
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:29:24 +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 fc6cc8f6-01ab-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 10:29:21 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-480142406b3so49030105e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 01:29:21 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48310895107sm31234985e9.12.2026.02.04.01.29.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 01:29:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fc6cc8f6-01ab-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770197361; x=1770802161; 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=2VGqIGOmp5L6oImFK/rrOvkiXDVA06P2GGn1E0eqG14=;
        b=Eav+GK8ZjUzuLz7N2PbTghD/N46Bg38v09Z/5F60dAVFuNB3sbzp0cz0btCyxuosy9
         BiDUC2JzqDG2iR+u1k+4kM7fVKFyC/5bfBPIQr/jd8twQQAOzxE687oh6JkjN8nX4C4f
         4yAtcp/cpPVZJuDB6yUEcD2Oh/FUnZnWJ1uGf9ATS9ZAFLdIRFUT6Les+Fxq11rIWg/P
         m5vjCAjz8ri1FlxpTqpsG7kmVxnM5F64vG6zhr+ezNCNgLBCrLW2FZ8EavE2ZEA6twP2
         b3GcVwaY5+uiObV1cp6fMGF++PL3CFz72HeJMe3kXz84A3ZapboelgsEDpOJQgDU+pJd
         hvEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770197361; x=1770802161;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=2VGqIGOmp5L6oImFK/rrOvkiXDVA06P2GGn1E0eqG14=;
        b=JtDT1ELXqgOXKtdu30pupXppnoJc2fzNVVYRgk1/taIzeAkg9ePWqR/5vUCvQvIiGZ
         DUmT39Yj/Z14HDhsLV3INVyHgCbDudWUwrd4z1/636wElge5kKW7ToPlG37n5P1hMUCT
         QG8Iov5Oy9SWydsEX2RY7bBCtCM5972UiZfvCR6O3ME+0jOMp2qWLOwdr6fh2a8PRxli
         zP437i5gAN3AVEE66ZSuJnReoouD/MV0BqfSgVGdcEv3N9xxW3bFw06vJkwNR65q5Xsq
         Pah3z8pae5Hulkro/YsN/AzwZ95aRv3Lmoikid8y6hVndK9y0TVTGWBncaQU0VT5myWk
         GUeA==
X-Forwarded-Encrypted: i=1; AJvYcCXVB4lvml2xcNjm7mgecYxA4vd0TwBfMliH2pLMEDpEFkwrX/lc7neV+R6I8rBk2CYDlQSDMrOLMX4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxVlbjJdKTvwHqv5EqZbJ1+FLVp81lcLFGBUV1Xu2sAwvmFE/c8
	GNQ92xtlrpKxWjjOfkreG2S4q6WHe9cohfJ6O/G6rSB/g0LxPpjjpqCW
X-Gm-Gg: AZuq6aJlw0t3ptvnUldTrFyvJawhseg3xleQXZJUqoIJ6teXbquPZTFI96U1n6GuiOC
	cdJ7Nqg/TqEflPgNZFr/Qhi2sHQj88/TplHakZAbl/Gf/ps/Jl7JV0e+uiuSGfdLaoUjF8tm2Pd
	q+lOsAjpVV0KZApUqlF3MGoHGObY+acXu478BCMR7Bpajah6mZ7LoJ7H4AsFdXTxnyPg4BlAw/k
	GaZId6stQsPLE4KjfMVcPTYHOga7pX5RmcHFCDmOiA+H2HbDgPOmaMk+Q+cFIp0ZxiRadfBYhOD
	DkkABOEmb4CuN9Tk3vo7pXI4oPOYG0Q45I0RgsNJJm7zlgSsYT5moo/14x5/iw6+EAm31oev2FH
	Bacm1GWQ6pJVVMSm6sc0/aXuoGpNIvJD+tJS8CvZgt4F/YpG5aioi+ZzFo8YAcwrv72RCW+ybDJ
	lcMmz5d4pWcNN5CVCvbhPoyn2NJuf+eeG4UCpSXS/RdTNeZUfC7YBlaYE/bJEFotU=
X-Received: by 2002:a05:600c:3555:b0:471:14af:c715 with SMTP id 5b1f17b1804b1-4830e93eaa6mr38843345e9.3.1770197360460;
        Wed, 04 Feb 2026 01:29:20 -0800 (PST)
Message-ID: <061f894b-fbe0-4565-a9e2-502c97b1dada@gmail.com>
Date: Wed, 4 Feb 2026 10:29:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/16] xen/riscv: introduce sbi_set_timer()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <2fd4da2ad7c4af2241368edba739b24d0e976552.1769099885.git.oleksii.kurochko@gmail.com>
 <9f2b3559-0658-4343-abec-1a35e7d6da44@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <9f2b3559-0658-4343-abec-1a35e7d6da44@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/3/26 6:02 PM, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/sbi.c
>> +++ b/xen/arch/riscv/sbi.c
>> @@ -249,6 +249,38 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
>>                                             unsigned long arg4,
>>                                             unsigned long arg5);
>>   
>> +static int cf_check sbi_set_timer_v02(uint64_t stime_value)
>> +{
>> +    struct sbiret ret;
>> +
>> +    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
>> +#ifdef CONFIG_RISCV_32
>> +                    stime_value >> 32,
>> +#else
>> +                    0,
>> +#endif
>> +                    0, 0, 0, 0);
>> +
>> +    return sbi_err_map_xen_errno(ret.error);
>> +}
>> +
>> +static int cf_check sbi_set_timer_v01(uint64_t stime_value)
>> +{
>> +    struct sbiret ret;
>> +
>> +    ret = sbi_ecall(SBI_EXT_0_1_SET_TIMER, 0, stime_value,
>  From this name I'm judging version 0.1 is meant. How does this fit with ...
>
>> @@ -326,6 +358,14 @@ int __init sbi_init(void)
>>               sbi_rfence = sbi_rfence_v02;
>>               printk("SBI v0.2 RFENCE extension detected\n");
>>           }
>> +
>> +        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
>> +        {
>> +            sbi_set_timer = sbi_set_timer_v02;
>> +            printk("SBI v0.2 TIME extension detected\n");
>> +        }
>> +        else
>> +            sbi_set_timer = sbi_set_timer_v01;
>>       }
>>       else
>>           panic("Ooops. SBI spec version 0.1 detected. Need to add support");
> ... the panic() here?

panic() is still here as then we will want to add support for rfence v01 SBI call
too what hasn't been done yet.

Could it be an option to change panic to:
    sbi_set_timer = sbi_set_timer_v01;
    dprintk("SBI v0.1 isn't fully supported\n");
and then add sbi_rfence = sbi_rfence_v01 when i will be first used?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:36:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220308.1529015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZJS-0006Hr-1l; Wed, 04 Feb 2026 09:36:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220308.1529015; Wed, 04 Feb 2026 09:36:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZJR-0006Hk-VV; Wed, 04 Feb 2026 09:36:41 +0000
Received: by outflank-mailman (input) for mailman id 1220308;
 Wed, 04 Feb 2026 09:36: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=Ke1/=AI=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnZJR-0006He-6T
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:36:41 +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 01437435-01ad-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 10:36:39 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-43615d9c507so911854f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 01:36:39 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436180640f2sm4813162f8f.39.2026.02.04.01.36.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 01:36:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01437435-01ad-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770197798; x=1770802598; 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=d8FhrIYvrBOrKBYpV2bfmalL8B4kMQdKJZx2ydgP9aU=;
        b=QZAM78nkocSE8OFlsXHtVQRCzA8xN4kUP162J3BXDBWEweakr3JifgEy15nFM0B3Yl
         w3/EZwdsmcv9VHV0Mtf4R4r5NOPrLXnPDHhq2G+azwD5eHiyygYXvh3pMUoyvq3gmvxD
         PEQPZSKT9D2NHh1d7Kj2uUOoJVLc254cOINidhSD/FrCcqC6f0ln3jFgVrQE+dd22Bkf
         CYN123CVWylnWD+wxTF1VMILXZNHSMb8iVkrkTs1DhetZexec6/OuK7yJOlQKOmtvkIT
         9ivCZUdpaqV6NY40zN9YCNXl47peF+4iPiB28ElUOeTOtp5AhtEItf4v7OVzJal8w4vK
         9nFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770197798; x=1770802598;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=d8FhrIYvrBOrKBYpV2bfmalL8B4kMQdKJZx2ydgP9aU=;
        b=gpCBY+jWS9psXnLDVxqoxMGiLxKvaMo2n7IVHZPVPIRpYFYv2ND+Uzj5tzwZlIvGUn
         y7+PPNdvXcnaaoPJydHIHmnzvQoIFgg5Y+JKTYnHp5Ksi6vHgvoYhyCVrj+3pdvEkoPP
         ssSHbJtW4qeDoHHQUpBuMmDXtS72HVyeMbKgi7nqaaSZxEGB2yozzdltU5083CqVKnYH
         3IfXU46MdQrIzmAmfa0GCfuWEQ1Vm7nY+s5GDBbhLBkOzmUXgqMrwXo6L4GO8Uey1w9U
         SaOdrPMqn9VpgHIzwq5MdFvDbPpyRkpzwQlbR80Qmn4sB7k80DzzLhm7YSjtLw4fc/fk
         aC2A==
X-Forwarded-Encrypted: i=1; AJvYcCU7+BU55iWNUKRBoqMojKRredmQJPzoZaBzBrL5abtCgCEr8FpARRvAL/DNEtFU56KuoVAAa/TCaJI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1jnYtVbTnVKlrCXs94Fg/JpsmT1TMsm/5FsEuktSoqAcHYaRS
	jPdO6fEZD8W6eXO5RaKt8QfQpQSTL+q2F1pgIt1ZF9KEy+f+W8ZliOtu
X-Gm-Gg: AZuq6aIHtHer6bPKQi3VJfg1myhqC9Q3zHJvgSMsHbZ5jeUrfxlrc+x25KTwvHKUkhT
	Lwv89KHaHKndSw0oTSY8wMoVNQsPPQrfMQVBsHL4Nlb/MF2f858+QaWIt7UAVlIWfdjBoYxosiE
	RozxyT01DViLgnPZIBnTa/6745zwYSvd4Zdno3GxwEJFVOS51JPfAtmdmIrwl0D9axs5bivRN4a
	W/syRiG/nSy8I56U88WGq6I+5AKwSTbg/v5K3yyceXVMG0Y9Kn0ZUUwxH8nZxoHERJDN11yxotp
	tCG9X7uXqe1yxdp2qPIo/jfFhbekbOZK8IwESNhZk5/sySY37DYJekduD6iivwjx/h3/afLFD+n
	wTyPLJCM/IHVGNOKPYFD0BFmGTTcusT3MxfV+5j7hhiUXk/FA0cJ3JpApx/slL9O5K6ld3VHV/G
	tFGl9gEJPUo1cGOUFReoKZaLKWEOsEtfXnV0HOVA3d/riOf2Wb7LljofdP5C8bq6s=
X-Received: by 2002:a05:6000:4211:b0:430:8583:d182 with SMTP id ffacd0b85a97d-436180575efmr3336352f8f.29.1770197798153;
        Wed, 04 Feb 2026 01:36:38 -0800 (PST)
Message-ID: <b960f295-6143-4947-bcc5-529ed3cf6f99@gmail.com>
Date: Wed, 4 Feb 2026 10:36:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/16] xen/riscv: introduce sbi_set_timer()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <2fd4da2ad7c4af2241368edba739b24d0e976552.1769099885.git.oleksii.kurochko@gmail.com>
 <a8ab7bd7-3e17-43e2-bbe1-3503b6eda7ac@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a8ab7bd7-3e17-43e2-bbe1-3503b6eda7ac@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/4/26 7:50 AM, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/sbi.h
>> +++ b/xen/arch/riscv/include/asm/sbi.h
>> @@ -29,6 +29,10 @@
>>   
>>   #define SBI_EXT_BASE                    0x10
>>   #define SBI_EXT_RFENCE                  0x52464E43
>> +#define SBI_EXT_TIME                    0x54494D45
>> +
>> +/* SBI function IDs for TIME extension */
>> +#define SBI_EXT_TIME_SET_TIMER          0x0
> Nit: Do you really mean to have the time extension IDs above ...
>
>>   /* SBI function IDs for BASE extension */
>>   #define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
> ... the base extension ones?

I will move it after SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID to be aligned with how
extensions are declared.

>
>> @@ -134,6 +138,20 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
>>   int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
>>                                   size_t size, unsigned long vmid);
>>   
>> +/*
>> + * Programs the clock for next event after stime_value time. This function also
>> + * clears the pending timer interrupt bit.
>> + * If the supervisor wishes to clear the timer interrupt without scheduling the
>> + * next timer event, it can either request a timer interrupt infinitely far
>> + * into the future (i.e., (uint64_t)-1), or it can instead mask the timer
>> + * interrupt by clearing sie.STIE CSR bit.
>> + * The stime_value parameter represents absolute time measured in ticks.
>> + *
>> + * This SBI call returns 0 upon success or an implementation specific negative
>> + * error code.
>> + */
>> +extern int (*sbi_set_timer)(uint64_t stime_value);
> __read_mostly or even __ro_after_init?

I will add __ro_after_init to be in sync with sbi_rfence.

>
>> @@ -326,6 +358,14 @@ int __init sbi_init(void)
>>               sbi_rfence = sbi_rfence_v02;
>>               printk("SBI v0.2 RFENCE extension detected\n");
>>           }
>> +
>> +        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
>> +        {
>> +            sbi_set_timer = sbi_set_timer_v02;
>> +            printk("SBI v0.2 TIME extension detected\n");
> Is this really relevant to log especially in release builds? IOW can this at
> least be downgraded to dprintk()?

Probably not, it could be useful for debugging to understand what kind and version
of extension is used. I am okay with using of dprintk().

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 09:51:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 09:51:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220317.1529026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZXe-00010P-Bh; Wed, 04 Feb 2026 09:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220317.1529026; Wed, 04 Feb 2026 09: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 1vnZXe-00010I-8l; Wed, 04 Feb 2026 09:51:22 +0000
Received: by outflank-mailman (input) for mailman id 1220317;
 Wed, 04 Feb 2026 09:51: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnZXd-0000zt-5A
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 09:51:21 +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 0db45364-01af-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 10:51:18 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-4359249bbacso433153f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 01:51:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e387b9sm5391554f8f.12.2026.02.04.01.51.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 01:51:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0db45364-01af-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770198678; x=1770803478; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=libfc9BhgH96C4+zLwIAP07Ravr2Tm/OGfwGAOkbnUU=;
        b=eatzgbKFdR/1nZVNCLCfjQpoL6JRX09+6WLhJ0zUDtptLKT1cT8y1vm9aSZjfGWg/L
         NA1kr2M4qVDbj5OvxZ3ObGrzsGbzDLrnj3lQOBgsb0iX/IB8kHCvGBnGJsHFvs5mhuXp
         HYYdT2s7pMU0queyrQLwdz8nMsWg4wBEueB1iVSsTz2AFEOTzx5+TTS8QWrm7yPusDOa
         gXJbwneVG6ak/p6Y3GgRDQHxX4AmoPczRUbY8rEx6wc+YLrFfEoSBYbTmRvIGLGfL/oh
         LTl6L59xWRpw83xJQaPOdYbfodYZuekF58pVx3vDfKhtE4+s0cmuWi5HbD6ZxLSEreVP
         nC2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770198678; x=1770803478;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=libfc9BhgH96C4+zLwIAP07Ravr2Tm/OGfwGAOkbnUU=;
        b=nhjD7K41T3u/PYGMcsY6eNOte7XtE22ZYQgesIxKqtcbDRQ3zrWMhRVInQFsZekUTO
         X1RRSg/pb9ynf3/BYapAPZ3h03uRICHQOU7l07s2aV2AFJzd5o6ly019009LinF26Qpk
         U2efPYUVRivOc7XSd7wkBeiDo0AwHUthHYnESvfckEgnY1XNu859o4vDJNQwJv6TZQz1
         1CFsNIotMFJfnfY3rd7ivPTyB+op7Su7x8tASfgTKTSjkhE/aO7yvdvku/Lord7hXqOQ
         VaD8KO0udpnzrPQL/sc/68Xc+Dfzz7830NcGdKDQlZwTpVOBuVpXJpib65Xm10mOyoFq
         ZUJg==
X-Forwarded-Encrypted: i=1; AJvYcCX3nnmXiPuk1yHObyzvykdB/nOP2egyHeS5ULkOS32sdvQW/CcLyqZTC8HXmmNy420Gp95DWUxoFLY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw9731VA3+lge0jJqQUcwVX1NPT34QSa51idnNSGxCQ474goc8Z
	2D3o0j9DVDhKBCxuTN/jBIP3leoai2mO9M4gYPyVbTPsoyJ343NzhdzGOOhNom5FOg==
X-Gm-Gg: AZuq6aJRkmkfZn4dCli6muy5bB4rzApKVwL9e6dSMB1GjK/UDxDtyT+APEXG8/hz0F+
	/XPy93u9sONXqSFb2+wBuL0KaobIgewNORk0Mx3Vd5SvYJTm9/5kVfRwSL95omAyXourF8RIZoN
	EsrNykpYE9aCPwGGE5c9yuPamxVd6eFJ+YMuCEmz05yKcQQQqWdPS8RM22RedfcbRP5NkvSKfvS
	EPNmiVIOXrLdklQvoqHI/jWZbZRUbdSYMCMYg9OLKCW+990felI4OAs0CgAFXPMJV4XRzor8uO9
	pmgjuC0VVjSPl42ADcroeRez+jq9/D52p9TEe02+QT4hfMhch539YyePtlUt0QovtZ86gZmHm1d
	qI2jO4S4xaM6WMy3IRqhRx6Ua6FLhPW+LP9/c+x+RW3HRWK2qPnacRd8S4u+i+CKLcmctQZticv
	Ko64XwG6fDH4q/nRNy88HAE2rA9ruqyDfF8XnJFQNDnLcsYikTwS6NY88t9lDHT1HbsHzH8lTa5
	Ng=
X-Received: by 2002:a05:6000:400e:b0:430:fcbc:dc52 with SMTP id ffacd0b85a97d-43617c974e3mr3357562f8f.30.1770198678177;
        Wed, 04 Feb 2026 01:51:18 -0800 (PST)
Message-ID: <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
Date: Wed, 4 Feb 2026 10:51:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: Juergen Gross <jgross@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@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: <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 10:25, Juergen Gross wrote:
> On 04.02.26 10:15, Jan Beulich wrote:
>> On 04.02.2026 10:00, Roger Pau Monné wrote:
>>> On Wed, Feb 04, 2026 at 08:56:10AM +0100, Jan Beulich wrote:
>>>> On 04.02.2026 08:49, Roger Pau Monné wrote:
>>>>> Also, I would remove the tools guards, I think once a DOMID_ constant
>>>>> is allocated it becomes part of the public ABI, and it cannot be
>>>>> withdrawn.  See for example DOMID_IDLE: it's only used internally in
>>>>> the hypervisor AFAICT, yet the define is fully visible in the
>>>>> headers.
>>>>
>>>> It was me to ask for it to be guarded like this. DOMID_IDLE (and perhaps
>>>> others) not being guarded (at least for IDLE: by just __XEN__) imo was a
>>>> mistake. That mistake may in fact be correctable, if we could prove that
>>>> the ID cannot usefully be passed into anywhere.
>>>
>>> Even if it's not passed into anything, does it make sense to guard
>>> them?  The reserved domid values are already consumed, ie: cannot be
>>> reused in any way.  It just seem to me like more ifdefery churn for no
>>> specific benefit.
>>
>> Well. From an abstract perspective, purely hypothetical at this point, I
>> could see a potential need to re-number them, e.g. to simplify checking
>> against groups of these special IDs.
>>
>> Yes, excess #ifdef-ary is an issue. Excess exposure of things also is,
>> though. Finding the right balance between both can be interesting.
> 
> I have a patch in work which would want DOMID_ANY not be guarded. I think
> especially DOMID_ANY could be useful for other cases, too.

Mind me asking where, outside of the toolstack, you intend to use it? Note
that unlike IDLE and perhaps a few others, ...

> Look e.g. at XEN_ARGO_DOMID_ANY. Even if I don't think we can switch it
> to DOMID_ANY, it shows that the concept as such is not restricted to Xen
> internal use cases.

... I don't mean ANY to be constrained to just the hypervisor. That more
strict guarding came up only because of Roger mentioning IDLE.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:01:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:01:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220329.1529035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZhR-0003A2-7C; Wed, 04 Feb 2026 10:01:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220329.1529035; Wed, 04 Feb 2026 10: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 1vnZhR-00039v-4O; Wed, 04 Feb 2026 10:01:29 +0000
Received: by outflank-mailman (input) for mailman id 1220329;
 Wed, 04 Feb 2026 10:01: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=yHEP=AI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vnZhO-00039p-Tx
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:01:27 +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 76969848-01b0-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 11:01:24 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b8849dc12f6so951883566b.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:01:24 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8e9fef0011sm106407466b.32.2026.02.04.02.01.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:01:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76969848-01b0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770199284; x=1770804084; 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=XJHK94ukL1n2dsYoD8K9jye5m+VlF36ZzcB48HzGLz0=;
        b=EYmfeyYFSzgiNi5X3h95qGvdnrJOAokFkJEpqwbW4vQdpXbOicBq12vDbp+cgIU810
         5oomWEFCJl+CNws1ltw1yYerIl7bvaAGlNE0OdL+cJUxNENJbPzWQWn1vZU4hYnAS1bI
         xnUpElpLHjojaAn62s8RTNx5BMy7/vU6WUjQ8rd9SSGtLwkal3nhctsv0PsTksJJ88pN
         agxwy9Nb3NlzDC2CqpJeycF5gV22WILCxhavHMsfEqfz32oy34MAzNZiZZSRhMr/+eer
         ZoMeqhmEpZoAYCgjrSN1/w60ou8yXDHyjfMQs4LVg2AizVjQReyzEKwb9W4O7LUcbKXd
         ZZfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770199284; x=1770804084;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=XJHK94ukL1n2dsYoD8K9jye5m+VlF36ZzcB48HzGLz0=;
        b=vuIU1oDC71dPEZj3d9sCuEUMMJi4xg+4PfOcXZ0gW+SH7x++bpYoCARRRRDbSIqcHG
         d09fzDN+a/EQS74XcfaFUIapAnIDrZlTtDxGsxBUej4Zfddpf8Guk1b1tvfzEzEHbeeT
         lrgNlSmtC3t4dzrRQoEZjXR585ygM42Pg+qyYrOO8qGcQurT7d3TbaN0x9QAPzjgazxr
         bxGQSG1HuCEFn9SHj8cGC+akZ/IJ3R189QKoSaf3PgQXnVOVXG5CBUqXqrRfVqNqWVm3
         m7SkNffL9WQy6aU7pPqzQZTDUegK2+iRu7EDtwk0VCzBEUq4GGPSV/tTEzROHA6SD711
         YBGQ==
X-Forwarded-Encrypted: i=1; AJvYcCUvYIWoJY+iNNGPz91G8xXjX7pYTdvQwiV2QpCxp6K6zfwWh1DExil85y1lJu9vRELEJczvhlIYvq4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzVqRwuNweGfY2+YPGYMWLsb2ZbSiBpSo+4zad2EYW43NGSTF4H
	nxmyE2cpdtu52Jb/MJ2eh6z62DIIE+tTy/xUFpZd9Qr6tuOEGSf+8WYQBPcGF0yviLU=
X-Gm-Gg: AZuq6aJhNp7B3QM10ghWxkc2AbCthvzRPmv+pO/H0SvRl87+IjRYtVDzxe7aH9MhNnE
	OMWhJkVwdYkZL2Usbk63idW+eFzezL3PwTlIoYAT4/RFdnf2uendDDjEY/DktBltHTd8noghWot
	OzIO0qXrYsDncD4t7twzdb83znbO1KSI/Fvvp4UdGiA4YkOTRXamdGABZahis1pnGRkrDEuOmf/
	3RMSd0eN/8CD9LeZ06DHY5xxDEQAq0GEE0NR3dxCFcuROv8j7Vbnvpv4LmfD6wiypwbRLNQGjwE
	AtfBaFV+tdUT0eJ8JSQai438QmgcHK8kS/Mxm+Jyso3gHrytCnL+0Af46vSNIC/5k+dU9KqLhQC
	YIRoRr4Q01XGWe1+xLKCHvEVEDbhFHCMOw8RaSqpSiEQNEHeEabNuNlb0yPAPlTWqi3VTbsWy2o
	NFTggMXU0XA7ral7QHDoeUW1ZCIUZEEyb9IXJMNknILSXrdnbwFsGbiDryIOvqcF+OYguHogl6v
	f6pfcydyNuZvZv1dPVZ5cBCN9+tBXwwJI5jJw==
X-Received: by 2002:a17:907:960d:b0:b74:984c:a3de with SMTP id a640c23a62f3a-b8e9f08317emr196609166b.28.1770199283549;
        Wed, 04 Feb 2026 02:01:23 -0800 (PST)
Message-ID: <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@suse.com>
Date: Wed, 4 Feb 2026 11:01:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: Jan Beulich <jbeulich@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
 <36537370-1fe3-45e8-9790-852d73f93e07@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: <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------4x0hg2b3OAVh5lPhWK37SVJD"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------4x0hg2b3OAVh5lPhWK37SVJD
Content-Type: multipart/mixed; boundary="------------8piz3JPyrZ9onQbCHtl1TN0F";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@suse.com>
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
 <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
In-Reply-To: <36537370-1fe3-45e8-9790-852d73f93e07@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=

--------------8piz3JPyrZ9onQbCHtl1TN0F
Content-Type: multipart/mixed; boundary="------------4gKgp89DJ2WzZFojYGO4JJ0k"

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

T24gMDQuMDIuMjYgMTA6NTEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4wMi4yMDI2
IDEwOjI1LCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMDQuMDIuMjYgMTA6MTUsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDA0LjAyLjIwMjYgMTA6MDAsIFJvZ2VyIFBhdSBN
b25uw6kgd3JvdGU6DQo+Pj4+IE9uIFdlZCwgRmViIDA0LCAyMDI2IGF0IDA4OjU2OjEwQU0g
KzAxMDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+Pj4gT24gMDQuMDIuMjAyNiAwODo0OSwg
Um9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+Pj4+PiBBbHNvLCBJIHdvdWxkIHJlbW92ZSB0
aGUgdG9vbHMgZ3VhcmRzLCBJIHRoaW5rIG9uY2UgYSBET01JRF8gY29uc3RhbnQNCj4+Pj4+
PiBpcyBhbGxvY2F0ZWQgaXQgYmVjb21lcyBwYXJ0IG9mIHRoZSBwdWJsaWMgQUJJLCBhbmQg
aXQgY2Fubm90IGJlDQo+Pj4+Pj4gd2l0aGRyYXduLiAgU2VlIGZvciBleGFtcGxlIERPTUlE
X0lETEU6IGl0J3Mgb25seSB1c2VkIGludGVybmFsbHkgaW4NCj4+Pj4+PiB0aGUgaHlwZXJ2
aXNvciBBRkFJQ1QsIHlldCB0aGUgZGVmaW5lIGlzIGZ1bGx5IHZpc2libGUgaW4gdGhlDQo+
Pj4+Pj4gaGVhZGVycy4NCj4+Pj4+DQo+Pj4+PiBJdCB3YXMgbWUgdG8gYXNrIGZvciBpdCB0
byBiZSBndWFyZGVkIGxpa2UgdGhpcy4gRE9NSURfSURMRSAoYW5kIHBlcmhhcHMNCj4+Pj4+
IG90aGVycykgbm90IGJlaW5nIGd1YXJkZWQgKGF0IGxlYXN0IGZvciBJRExFOiBieSBqdXN0
IF9fWEVOX18pIGltbyB3YXMgYQ0KPj4+Pj4gbWlzdGFrZS4gVGhhdCBtaXN0YWtlIG1heSBp
biBmYWN0IGJlIGNvcnJlY3RhYmxlLCBpZiB3ZSBjb3VsZCBwcm92ZSB0aGF0DQo+Pj4+PiB0
aGUgSUQgY2Fubm90IHVzZWZ1bGx5IGJlIHBhc3NlZCBpbnRvIGFueXdoZXJlLg0KPj4+Pg0K
Pj4+PiBFdmVuIGlmIGl0J3Mgbm90IHBhc3NlZCBpbnRvIGFueXRoaW5nLCBkb2VzIGl0IG1h
a2Ugc2Vuc2UgdG8gZ3VhcmQNCj4+Pj4gdGhlbT8gIFRoZSByZXNlcnZlZCBkb21pZCB2YWx1
ZXMgYXJlIGFscmVhZHkgY29uc3VtZWQsIGllOiBjYW5ub3QgYmUNCj4+Pj4gcmV1c2VkIGlu
IGFueSB3YXkuICBJdCBqdXN0IHNlZW0gdG8gbWUgbGlrZSBtb3JlIGlmZGVmZXJ5IGNodXJu
IGZvciBubw0KPj4+PiBzcGVjaWZpYyBiZW5lZml0Lg0KPj4+DQo+Pj4gV2VsbC4gRnJvbSBh
biBhYnN0cmFjdCBwZXJzcGVjdGl2ZSwgcHVyZWx5IGh5cG90aGV0aWNhbCBhdCB0aGlzIHBv
aW50LCBJDQo+Pj4gY291bGQgc2VlIGEgcG90ZW50aWFsIG5lZWQgdG8gcmUtbnVtYmVyIHRo
ZW0sIGUuZy4gdG8gc2ltcGxpZnkgY2hlY2tpbmcNCj4+PiBhZ2FpbnN0IGdyb3VwcyBvZiB0
aGVzZSBzcGVjaWFsIElEcy4NCj4+Pg0KPj4+IFllcywgZXhjZXNzICNpZmRlZi1hcnkgaXMg
YW4gaXNzdWUuIEV4Y2VzcyBleHBvc3VyZSBvZiB0aGluZ3MgYWxzbyBpcywNCj4+PiB0aG91
Z2guIEZpbmRpbmcgdGhlIHJpZ2h0IGJhbGFuY2UgYmV0d2VlbiBib3RoIGNhbiBiZSBpbnRl
cmVzdGluZy4NCj4+DQo+PiBJIGhhdmUgYSBwYXRjaCBpbiB3b3JrIHdoaWNoIHdvdWxkIHdh
bnQgRE9NSURfQU5ZIG5vdCBiZSBndWFyZGVkLiBJIHRoaW5rDQo+PiBlc3BlY2lhbGx5IERP
TUlEX0FOWSBjb3VsZCBiZSB1c2VmdWwgZm9yIG90aGVyIGNhc2VzLCB0b28uDQo+IA0KPiBN
aW5kIG1lIGFza2luZyB3aGVyZSwgb3V0c2lkZSBvZiB0aGUgdG9vbHN0YWNrLCB5b3UgaW50
ZW5kIHRvIHVzZSBpdD8NCg0KSSdkIGxpa2UgdG8gYmUgYWJsZSB0byB1c2UgaXQgZm9yIFhl
bnN0b3JlIHBlcm1pc3Npb25zLg0KDQpQcmltYXJ5IHVzZSBjYXNlIHdvdWxkIGJlIHRvIGFs
bG93IHRoZSBzcGVjaWFsIHdhdGNoZXMgZm9yIGRvbWFpbiBjcmVhdGlvbg0KYW5kIHJlbW92
YWwgdG8gYmUgdXNhYmxlIGZvciBhbGwgZ3Vlc3RzLCBidXQgdGhlcmUgbWlnaHQgYmUgdXNl
IGNhc2VzIHdoZXJlDQphIGRvbVUgd2FudHMgdG8gZ2l2ZSBub2RlIHJlYWQgYWNjZXNzIGZv
ciBldmVyeW9uZS4NCg0KDQpKdWVyZ2VuDQo=
--------------4gKgp89DJ2WzZFojYGO4JJ0k
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-----

--------------4gKgp89DJ2WzZFojYGO4JJ0k--

--------------8piz3JPyrZ9onQbCHtl1TN0F--

--------------4x0hg2b3OAVh5lPhWK37SVJD
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/Ey8FAmmDGPIFAwAAAAAACgkQsN6d1ii/Ey8N
fAf/dAip2kUNJCY6limktZZOrWZIPvFcxoVi0kZUq7FzJjzGIm963q3zN5OgQFQprcyah/scnfrB
ore5GtNlplcJc83We4oyC1ghpqrBfjrrhEdRd9QVHOMMMDJnw+IbZ4RyQz3I8Nlj8oCLH9cPhK7h
gkH9WMrn4PxA1fMLSCe8GpM7+MRdExnhGp7zjUiu3ycMIuXML9hnOy2vJPBBx26gW4CpUj9bt5lU
/g3uugTaX5DsdhD7WLLDXGKAbVxK8TtVMMUxaQ/afQHgcpZU/Ha5TASWXMo1ZdX30/zj5kpB6GTK
26l8/pxHFksE/Dba98ZRz7Qfwu+GtVnr930Drx49bw==
=JQmw
-----END PGP SIGNATURE-----

--------------4x0hg2b3OAVh5lPhWK37SVJD--


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:04:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:04:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220338.1529045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZkN-0003jj-KD; Wed, 04 Feb 2026 10:04:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220338.1529045; Wed, 04 Feb 2026 10: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 1vnZkN-0003jc-Hi; Wed, 04 Feb 2026 10:04:31 +0000
Received: by outflank-mailman (input) for mailman id 1220338;
 Wed, 04 Feb 2026 10: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnZkM-0003jS-I5
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:04:30 +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 e4698653-01b0-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 11:04:28 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47ee2715254so36506975e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:04:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48310859101sm29707595e9.8.2026.02.04.02.04.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:04:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4698653-01b0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770199468; x=1770804268; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0vnMgFPiR27N7LC/2Rkn5sZ63vXYoaf1jGzEaxR6C9E=;
        b=Xx8BRLtPDxPTiVaV0mbiqSZ8V2NvoAzvX3T+4YmpjJ9nZ4kbzG991MzRzJoncrpI2C
         Zfw/A1mZXrnv5xD4vjCn4oMwBNYFppfnlyXq2oXmo20HW3Zzl/5U6gxYuxLBStFrWWod
         uvoPc+vbmQrJLEA1hCoSN/0sqrXonc/I6/EtXAgOTP+ICMIyR7l4XyhIcz6orjv6/azr
         cvgCBSBPyuHm38P7E1vwzyTvY1MniH6V1hjMkxgdiOEsk5pTpWXOBNuFVAqaFSDIGC+y
         7jgo3afzudHFnlHo7AfiR07pfCAq6mk54iiN1jTMwRA+vnc18qz7+FXIw7qy2BCBX4g7
         Pixg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770199468; x=1770804268;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0vnMgFPiR27N7LC/2Rkn5sZ63vXYoaf1jGzEaxR6C9E=;
        b=PLfK5jlnh2aHb6XClwNlVR917RMB/wxna6Bf/x7tqUO908Mc8i8gz41CUBopfXJ9Gs
         WpnDjj3fW6wDb+lPbuZa95D4jOeRHRlH6r8z+etnTZdbi0036kKE3ozPehtE53aDBVEu
         hoIjEba7OfElY9kVvyfUgkB+HzVeps67G1zt8vliP2LN7gWzWIvXaqB9n+ZdggpLpyD3
         xMpuIS2UXaWWE3baZqkQDuYjZwgH73Nvt9Fb2PDNfKarwKtzQW57j8sgpDAPLAan7dTL
         GV0YsV3R8QDFRz+PwieFe5zgesbL+119yXWvbdPxBHypwp1kmNOR0EIl1NIRGkORRS/O
         ytfw==
X-Forwarded-Encrypted: i=1; AJvYcCWISvk2Vt0S4A0DblyYqqi/NvFBvPN07f174Ls/QI7L6cPFCfRqsIxbuVzE1Au/jH78B5Z58CSYeZw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZ4lXG24EfLj8tpKTQ6+U9z1emjieffeRBAr0y3LRckt1PvRgS
	yViTr2rpNGwYslHjFDGiPPJPF1+uTUdJB0n+cWfmsv+zCdC76Fgu+D5R/X/q/uMdQw==
X-Gm-Gg: AZuq6aLkYP6DJB+Ti042t6UDrX6l+HGfVKIORiV+drrdIaywORMRzu8uPs6NJOYARz6
	W++nls++thGoGNpEN6Lfkx+3TBIBBvi15y0ML/wXriI30aO9r54Mo9KzZLkvbH8n0985cKXL4Wr
	qtvNWRmgfd5dX0LccUqNlCmz7+IyIotSczGls0d0l/fTUnjcpAiAOEwsCQKsu498PCNAD+R1WUC
	YJ6sfpZolPGHalJQb6Vh+FKiaC0n6hbCjetxlBn6z+Xn65fAABWSLiQkb4pAyq8aII7qStmt0ji
	J20zJw/Ff41cqbvEv7nuQFo8QjjtXKjYNmCUiJIUZFtYX2KuQRSLWBYexlkHCWIFeEyPrTCd52f
	Q3xnb3Y6TGVVlMWWv3He+LV9sFhf8XpDUngT5XEdHy2O2DkENZltdYWt29HTng5Tn9gxUFGjeXi
	KAkN/s8tmxDslK9tHuoMS3iuks6JnBpBWn8wJNhVVqZ23wKw55qAzB2HRWauVTvFou5aG3Pusjn
	5B+HS8rtFaM3g==
X-Received: by 2002:a05:600c:8183:b0:480:3230:6c9b with SMTP id 5b1f17b1804b1-4830e93ea30mr37154805e9.7.1770199467802;
        Wed, 04 Feb 2026 02:04:27 -0800 (PST)
Message-ID: <59fa62df-0fd6-4dba-ada9-ab89570ff624@suse.com>
Date: Wed, 4 Feb 2026 11:04:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: Juergen Gross <jgross@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
 <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
 <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@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: <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 11:01, Juergen Gross wrote:
> On 04.02.26 10:51, Jan Beulich wrote:
>> On 04.02.2026 10:25, Juergen Gross wrote:
>>> On 04.02.26 10:15, Jan Beulich wrote:
>>>> On 04.02.2026 10:00, Roger Pau Monné wrote:
>>>>> On Wed, Feb 04, 2026 at 08:56:10AM +0100, Jan Beulich wrote:
>>>>>> On 04.02.2026 08:49, Roger Pau Monné wrote:
>>>>>>> Also, I would remove the tools guards, I think once a DOMID_ constant
>>>>>>> is allocated it becomes part of the public ABI, and it cannot be
>>>>>>> withdrawn.  See for example DOMID_IDLE: it's only used internally in
>>>>>>> the hypervisor AFAICT, yet the define is fully visible in the
>>>>>>> headers.
>>>>>>
>>>>>> It was me to ask for it to be guarded like this. DOMID_IDLE (and perhaps
>>>>>> others) not being guarded (at least for IDLE: by just __XEN__) imo was a
>>>>>> mistake. That mistake may in fact be correctable, if we could prove that
>>>>>> the ID cannot usefully be passed into anywhere.
>>>>>
>>>>> Even if it's not passed into anything, does it make sense to guard
>>>>> them?  The reserved domid values are already consumed, ie: cannot be
>>>>> reused in any way.  It just seem to me like more ifdefery churn for no
>>>>> specific benefit.
>>>>
>>>> Well. From an abstract perspective, purely hypothetical at this point, I
>>>> could see a potential need to re-number them, e.g. to simplify checking
>>>> against groups of these special IDs.
>>>>
>>>> Yes, excess #ifdef-ary is an issue. Excess exposure of things also is,
>>>> though. Finding the right balance between both can be interesting.
>>>
>>> I have a patch in work which would want DOMID_ANY not be guarded. I think
>>> especially DOMID_ANY could be useful for other cases, too.
>>
>> Mind me asking where, outside of the toolstack, you intend to use it?
> 
> I'd like to be able to use it for Xenstore permissions.
> 
> Primary use case would be to allow the special watches for domain creation
> and removal to be usable for all guests, but there might be use cases where
> a domU wants to give node read access for everyone.

Would that require exposing beyond the toolstack's boundaries?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:11:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:11:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220348.1529056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZr8-0005dm-CH; Wed, 04 Feb 2026 10:11:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220348.1529056; Wed, 04 Feb 2026 10:11:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZr8-0005df-9P; Wed, 04 Feb 2026 10:11:30 +0000
Received: by outflank-mailman (input) for mailman id 1220348;
 Wed, 04 Feb 2026 10:11: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnZr7-0005dZ-1h
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:11:29 +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 de215bec-01b1-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 11:11:27 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-43591b55727so5783682f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:11:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e250bdsm5088737f8f.2.2026.02.04.02.11.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:11:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de215bec-01b1-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770199887; x=1770804687; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D8fdo/jC0fVXmZul/wndVT07+KnjQo1bkiPNOYU8vrM=;
        b=CHG/ar85DTE8wwK+/fZetE99rO/1NCbzABafPXc4RYHE2+VEgVbOLNDi14wW8RBOuJ
         KcDW2ZE2B/KAZNT/IMiQr/aKCfv/P6N3mFyhH+k/+PVheKEAshdiJ8sUGHhH7VmzwL+j
         4yq/qFO6IUxWCZig+I+tTJf6W9hcS6iwswRKn6P+iwXYNdP5X6HUf3ecSOknJnmxycMw
         YURwil6ZfmDqWcXKNs8w28eCxEblz2KJMN9GUEam+Z1R5OTHAxVGsV0jNzATZ/8FD/ns
         z1CRjKRtxyhOupmc1f91zmTNp7/rN0buRSykuBgLXd3nsMBB409n904XXPB04nRRv58c
         gXSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770199887; x=1770804687;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D8fdo/jC0fVXmZul/wndVT07+KnjQo1bkiPNOYU8vrM=;
        b=tGsKkY2DoWMxHVYaBhphHgGSqq//WY0plNNU7KUsuSGnUNKcvboT59f26LlDPMEHDH
         mngkpxoxAWC3kGEyZsdCd6S6GZ7PU/aG/5oIsEn4GyG4PxWVaNuKcuJoHmlG2069ZO25
         V29Fe1ZIaiqfJ+l1o8OK1QbPAUHfuFN82aaSoEmk5m+DRKLSIwOR12EgtDZ1lR1jrwZZ
         rUZxsOoLf7xqVNQ0os6/5jOzpiIc+bfd0ifZTXLd2pQtjq9MvxVtF9ZJ0xMgFnlafhUC
         Groh+NrP5f5+ujRbJBB8/ZIZbNk31FtSw5aUqH9Qc9dLaCyEeuBHpUQGoGhB/lEW33WC
         tRtQ==
X-Forwarded-Encrypted: i=1; AJvYcCUl5ugsBZmGnIFA+Z74PfSkDR1QrDjGd6RQnJw/HVdQTHKKSd+37h4xMPed9gGv+Kp/dzvoTu5UL6w=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzs3qFyJBxGjF2eP15j1JfTLXpbVh7+Pa4lGZDXuiW6QlyXAF/V
	UIZBDevkVCQb264CjIxn1jD4zQDimojkJWmVMqOXGm7SiENSxteBgCYiTOC3eP2peQ==
X-Gm-Gg: AZuq6aLTFKZaoM7GR7PcZk8zYT+0fuNQkrjn19x9/Xft38gN5pidA6GAWMSiZcukxe1
	HT3Zg+7XDFSvPP6nTjnQmejVNMyrNDyeSr75vcGCAmZFL9/BW98jnok1XQgEOwr0Q2gl9xg4jY/
	6tmK4vkiED/3UPsXYMGlXqAafgFOwleccPCknQf9ExPyLKjWnN7PAoDpiRFykRZUgaaNDT6cJHf
	U5rUTeBpvItmbcRfh87xyQKnlDwKE9clbF27FoGFIY/COpuJWRy4ZD0wTFLNZSBBWU4XiHESgJn
	K7FwWXTI5S/S7xnG21pAKuTLtn8b25g6jM9dIZYtt2QAAln9kMuaK2qKJz6iBXBRnWTQBlmBIwi
	xChxuy/XaEKbSMadCTSvQtDGxTX0NGy6IcjsQsURrK1NnyYl4Y97eAK0hnpRjIfbunsfHvzQ8mX
	7srl239h2AEnaTkZvXb98QDzU81Uhd1HK6Fw4Mv2qXgTGu1Pq/aqze3UwbBqYjZp/Q3EZW7t3/a
	7I=
X-Received: by 2002:a05:6000:2210:b0:434:32cc:6c86 with SMTP id ffacd0b85a97d-43617e41bbfmr2990075f8f.14.1770199886739;
        Wed, 04 Feb 2026 02:11:26 -0800 (PST)
Message-ID: <51e6e0d6-4d94-4035-9e32-37dacf612da3@suse.com>
Date: Wed, 4 Feb 2026 11:11:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 12/16] xen/riscv: introduce sbi_set_timer()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <2fd4da2ad7c4af2241368edba739b24d0e976552.1769099885.git.oleksii.kurochko@gmail.com>
 <9f2b3559-0658-4343-abec-1a35e7d6da44@suse.com>
 <061f894b-fbe0-4565-a9e2-502c97b1dada@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: <061f894b-fbe0-4565-a9e2-502c97b1dada@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.02.2026 10:29, Oleksii Kurochko wrote:
> On 2/3/26 6:02 PM, Jan Beulich wrote:
>> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/sbi.c
>>> +++ b/xen/arch/riscv/sbi.c
>>> @@ -249,6 +249,38 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
>>>                                             unsigned long arg4,
>>>                                             unsigned long arg5);
>>>   
>>> +static int cf_check sbi_set_timer_v02(uint64_t stime_value)
>>> +{
>>> +    struct sbiret ret;
>>> +
>>> +    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
>>> +#ifdef CONFIG_RISCV_32
>>> +                    stime_value >> 32,
>>> +#else
>>> +                    0,
>>> +#endif
>>> +                    0, 0, 0, 0);
>>> +
>>> +    return sbi_err_map_xen_errno(ret.error);
>>> +}
>>> +
>>> +static int cf_check sbi_set_timer_v01(uint64_t stime_value)
>>> +{
>>> +    struct sbiret ret;
>>> +
>>> +    ret = sbi_ecall(SBI_EXT_0_1_SET_TIMER, 0, stime_value,
>>  From this name I'm judging version 0.1 is meant. How does this fit with ...
>>
>>> @@ -326,6 +358,14 @@ int __init sbi_init(void)
>>>               sbi_rfence = sbi_rfence_v02;
>>>               printk("SBI v0.2 RFENCE extension detected\n");
>>>           }
>>> +
>>> +        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
>>> +        {
>>> +            sbi_set_timer = sbi_set_timer_v02;
>>> +            printk("SBI v0.2 TIME extension detected\n");
>>> +        }
>>> +        else
>>> +            sbi_set_timer = sbi_set_timer_v01;
>>>       }
>>>       else
>>>           panic("Ooops. SBI spec version 0.1 detected. Need to add support");
>> ... the panic() here?
> 
> panic() is still here as then we will want to add support for rfence v01 SBI call
> too what hasn't been done yet.
> 
> Could it be an option to change panic to:
>     sbi_set_timer = sbi_set_timer_v01;
>     dprintk("SBI v0.1 isn't fully supported\n");
> and then add sbi_rfence = sbi_rfence_v01 when i will be first used?

I don't mind keeping the panic(), but what you add here wants to be structured
such that things won't need moving around once the panic() goes away. I.e. you
want to avoid dealing with v0.1 in both the if() and the else. To accommodate
that, perhaps sbi_set_timer_v01 could simply be the initializer of the new
function pointer variable?

Beyond that, once again you want to clarify things in the commit message.
Adding support for a case which elsewhere you panic() on is, well, confusing
without some explanation.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:12:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:12:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220356.1529066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZru-00066I-LM; Wed, 04 Feb 2026 10:12:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220356.1529066; Wed, 04 Feb 2026 10: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 1vnZru-00066B-I2; Wed, 04 Feb 2026 10:12:18 +0000
Received: by outflank-mailman (input) for mailman id 1220356;
 Wed, 04 Feb 2026 10: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=yHEP=AI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vnZrt-00065z-9C
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:12:17 +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 fa8b50db-01b1-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 11:12:15 +0100 (CET)
Received: by mail-ej1-x636.google.com with SMTP id
 a640c23a62f3a-b885e8c6700so1091808566b.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:12:15 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-6594a216ac5sm1052882a12.22.2026.02.04.02.12.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:12:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fa8b50db-01b1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770199934; x=1770804734; 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=yvu5NaCE0H48m1qvj9lQJ8VXBVs690RL+W5tcEoGOB4=;
        b=cb+x2PqDQgEABbqR640rkWT7EpHyMMJI/UpX/+ZQTRgInxoMWFr+inK7KwZ1BjyDn1
         DnRA7nrt4mh/P8sz9EcHdU8/SFVftPofT8BymaQlDWlHNrGuLolgDpHT1g7sbJj1LyXN
         v1rOEFDs5l0DWtPhXw/jMvK6uh2+Sppc1133gUkuEQEkVmV056UFGImvul+YwRdPMH10
         l2bPSuYjMuzkJqbhsKsiwJSwbkLEt+Cnbc+VhrMqnkw0TLXkz4/ECYA+uIBhtQROyiws
         9mIazw8vvL1mJg0maKavP0ofpFAQhTSS+4eviCreb/nkYrYPQOsoQyYcCmNIAKn4QqTx
         ceGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770199934; x=1770804734;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=yvu5NaCE0H48m1qvj9lQJ8VXBVs690RL+W5tcEoGOB4=;
        b=Y7ZqHyYnV5AwyPbR4FkhZjAgKKklDNl3SB7oI9pznM6r8V+Vj66l3IQmO02/VBaNpI
         JzCxNDzjWna6TeoLz9zy5EmjkIci1FynpEvD2A/2WKxnQ6m0NznEMZBXgMLHtetUfF8l
         7yGrbGeZNnwa6Uik+UVT7kyTP9CYVrF2DbihgZ5kSo8tW3d2LEA8whQedu6WykvFwZ0e
         ZunIP1rdn866DdqCNFiOkfBnR7DAuMlHTkTXi6f6YpJFtnuAhqDALon/6XpunvcOeQVJ
         WCVDeTOHnysG8l2wOAKYllmRsdXKsLRinKAWqsbBsbGz7sZrTw+S8pUwekyiJoTXxwUt
         WTcw==
X-Forwarded-Encrypted: i=1; AJvYcCWpdQN5C0xir6EcvYM3UXSi7QhI5ptEzMmE9dYyAhc94KOBflB88BI4imkN2YEfuS5gbQU6YPl1oSg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwSHeGqJvf8K4Xwbt4phOalDF9u/54eE7eINtUiMSaKpcdnwg6W
	R5R033IuvxJmDE0B4gJO2GJyEhXZmqNw+/2vURV1k3sBu3e+PRFzoVIKBJZzUn2sdfYQBXIXB8S
	sHR3IgTQ=
X-Gm-Gg: AZuq6aJIBqhuC5rZH3Gm2JPZAIQnzSFqJvDP/zwtKRPPNOOkjXBc8BLicFzK7eX/VxY
	o+qlEQlf+r/Z5uxNklCAd1tWpBZ3iipLUYnAer79zBXUzWMkihTlipqbYQhJQAYx9uGy5Zt8zIT
	E8dGpvjwi5Kyyb0st4tPj5hXkB2p989XWK7GWMS9GUKLYuSJsFTK0Kn1+TVc3wizE8TUkUO26NH
	d7IqLke33obTuPHDLl+ueMhcYpY1Xb1UZ/dgKWB9YsqFtaoRqWJRYsHkE4fA0GvLCVq1UMxqHiQ
	r+UGxFkPppP5iWQZEPwOL9L/TYK1vsmoNO2FX4Fvw054DI4Yl7klWcNM+/UrQ2ffVyRbPv1O+1a
	TuOEIpG4eManGaIelNmwhQgHGO10F3PM7Dwxp27yhy4VkmQzrCeQwrWYYhgE6Bpx0QlfLjX0R0W
	OomzEfLPn2BhZd2wiuYJGuSlWCy/xvFcR4D3w0qaIAaodKDbTv184wFzOxhG/z4yCR/Uw20uPHP
	X18SiI3RWJF/P5cErn9XFoXDnKna7s/vzF6FQ==
X-Received: by 2002:a17:907:72d3:b0:b88:21cd:5fcc with SMTP id a640c23a62f3a-b8e9f396981mr163403066b.36.1770199934381;
        Wed, 04 Feb 2026 02:12:14 -0800 (PST)
Message-ID: <056fa0ce-2832-4b0b-925b-a55e4086d88a@suse.com>
Date: Wed, 4 Feb 2026 11:12:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: Jan Beulich <jbeulich@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
 <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
 <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@suse.com>
 <59fa62df-0fd6-4dba-ada9-ab89570ff624@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: <59fa62df-0fd6-4dba-ada9-ab89570ff624@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------IPAk83EaSu1UIXZ8PBathxBl"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------IPAk83EaSu1UIXZ8PBathxBl
Content-Type: multipart/mixed; boundary="------------XwxvsQTKDKo0DpTdgMI0vyQ0";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <056fa0ce-2832-4b0b-925b-a55e4086d88a@suse.com>
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
 <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
 <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@suse.com>
 <59fa62df-0fd6-4dba-ada9-ab89570ff624@suse.com>
In-Reply-To: <59fa62df-0fd6-4dba-ada9-ab89570ff624@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=

--------------XwxvsQTKDKo0DpTdgMI0vyQ0
Content-Type: multipart/mixed; boundary="------------SAOSuQaTgZoN5a8T95ssIyIf"

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

T24gMDQuMDIuMjYgMTE6MDQsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4wMi4yMDI2
IDExOjAxLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMDQuMDIuMjYgMTA6NTEsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDA0LjAyLjIwMjYgMTA6MjUsIEp1ZXJnZW4gR3Jv
c3Mgd3JvdGU6DQo+Pj4+IE9uIDA0LjAyLjI2IDEwOjE1LCBKYW4gQmV1bGljaCB3cm90ZToN
Cj4+Pj4+IE9uIDA0LjAyLjIwMjYgMTA6MDAsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+
Pj4+Pj4gT24gV2VkLCBGZWIgMDQsIDIwMjYgYXQgMDg6NTY6MTBBTSArMDEwMCwgSmFuIEJl
dWxpY2ggd3JvdGU6DQo+Pj4+Pj4+IE9uIDA0LjAyLjIwMjYgMDg6NDksIFJvZ2VyIFBhdSBN
b25uw6kgd3JvdGU6DQo+Pj4+Pj4+PiBBbHNvLCBJIHdvdWxkIHJlbW92ZSB0aGUgdG9vbHMg
Z3VhcmRzLCBJIHRoaW5rIG9uY2UgYSBET01JRF8gY29uc3RhbnQNCj4+Pj4+Pj4+IGlzIGFs
bG9jYXRlZCBpdCBiZWNvbWVzIHBhcnQgb2YgdGhlIHB1YmxpYyBBQkksIGFuZCBpdCBjYW5u
b3QgYmUNCj4+Pj4+Pj4+IHdpdGhkcmF3bi4gIFNlZSBmb3IgZXhhbXBsZSBET01JRF9JRExF
OiBpdCdzIG9ubHkgdXNlZCBpbnRlcm5hbGx5IGluDQo+Pj4+Pj4+PiB0aGUgaHlwZXJ2aXNv
ciBBRkFJQ1QsIHlldCB0aGUgZGVmaW5lIGlzIGZ1bGx5IHZpc2libGUgaW4gdGhlDQo+Pj4+
Pj4+PiBoZWFkZXJzLg0KPj4+Pj4+Pg0KPj4+Pj4+PiBJdCB3YXMgbWUgdG8gYXNrIGZvciBp
dCB0byBiZSBndWFyZGVkIGxpa2UgdGhpcy4gRE9NSURfSURMRSAoYW5kIHBlcmhhcHMNCj4+
Pj4+Pj4gb3RoZXJzKSBub3QgYmVpbmcgZ3VhcmRlZCAoYXQgbGVhc3QgZm9yIElETEU6IGJ5
IGp1c3QgX19YRU5fXykgaW1vIHdhcyBhDQo+Pj4+Pj4+IG1pc3Rha2UuIFRoYXQgbWlzdGFr
ZSBtYXkgaW4gZmFjdCBiZSBjb3JyZWN0YWJsZSwgaWYgd2UgY291bGQgcHJvdmUgdGhhdA0K
Pj4+Pj4+PiB0aGUgSUQgY2Fubm90IHVzZWZ1bGx5IGJlIHBhc3NlZCBpbnRvIGFueXdoZXJl
Lg0KPj4+Pj4+DQo+Pj4+Pj4gRXZlbiBpZiBpdCdzIG5vdCBwYXNzZWQgaW50byBhbnl0aGlu
ZywgZG9lcyBpdCBtYWtlIHNlbnNlIHRvIGd1YXJkDQo+Pj4+Pj4gdGhlbT8gIFRoZSByZXNl
cnZlZCBkb21pZCB2YWx1ZXMgYXJlIGFscmVhZHkgY29uc3VtZWQsIGllOiBjYW5ub3QgYmUN
Cj4+Pj4+PiByZXVzZWQgaW4gYW55IHdheS4gIEl0IGp1c3Qgc2VlbSB0byBtZSBsaWtlIG1v
cmUgaWZkZWZlcnkgY2h1cm4gZm9yIG5vDQo+Pj4+Pj4gc3BlY2lmaWMgYmVuZWZpdC4NCj4+
Pj4+DQo+Pj4+PiBXZWxsLiBGcm9tIGFuIGFic3RyYWN0IHBlcnNwZWN0aXZlLCBwdXJlbHkg
aHlwb3RoZXRpY2FsIGF0IHRoaXMgcG9pbnQsIEkNCj4+Pj4+IGNvdWxkIHNlZSBhIHBvdGVu
dGlhbCBuZWVkIHRvIHJlLW51bWJlciB0aGVtLCBlLmcuIHRvIHNpbXBsaWZ5IGNoZWNraW5n
DQo+Pj4+PiBhZ2FpbnN0IGdyb3VwcyBvZiB0aGVzZSBzcGVjaWFsIElEcy4NCj4+Pj4+DQo+
Pj4+PiBZZXMsIGV4Y2VzcyAjaWZkZWYtYXJ5IGlzIGFuIGlzc3VlLiBFeGNlc3MgZXhwb3N1
cmUgb2YgdGhpbmdzIGFsc28gaXMsDQo+Pj4+PiB0aG91Z2guIEZpbmRpbmcgdGhlIHJpZ2h0
IGJhbGFuY2UgYmV0d2VlbiBib3RoIGNhbiBiZSBpbnRlcmVzdGluZy4NCj4+Pj4NCj4+Pj4g
SSBoYXZlIGEgcGF0Y2ggaW4gd29yayB3aGljaCB3b3VsZCB3YW50IERPTUlEX0FOWSBub3Qg
YmUgZ3VhcmRlZC4gSSB0aGluaw0KPj4+PiBlc3BlY2lhbGx5IERPTUlEX0FOWSBjb3VsZCBi
ZSB1c2VmdWwgZm9yIG90aGVyIGNhc2VzLCB0b28uDQo+Pj4NCj4+PiBNaW5kIG1lIGFza2lu
ZyB3aGVyZSwgb3V0c2lkZSBvZiB0aGUgdG9vbHN0YWNrLCB5b3UgaW50ZW5kIHRvIHVzZSBp
dD8NCj4+DQo+PiBJJ2QgbGlrZSB0byBiZSBhYmxlIHRvIHVzZSBpdCBmb3IgWGVuc3RvcmUg
cGVybWlzc2lvbnMuDQo+Pg0KPj4gUHJpbWFyeSB1c2UgY2FzZSB3b3VsZCBiZSB0byBhbGxv
dyB0aGUgc3BlY2lhbCB3YXRjaGVzIGZvciBkb21haW4gY3JlYXRpb24NCj4+IGFuZCByZW1v
dmFsIHRvIGJlIHVzYWJsZSBmb3IgYWxsIGd1ZXN0cywgYnV0IHRoZXJlIG1pZ2h0IGJlIHVz
ZSBjYXNlcyB3aGVyZQ0KPj4gYSBkb21VIHdhbnRzIHRvIGdpdmUgbm9kZSByZWFkIGFjY2Vz
cyBmb3IgZXZlcnlvbmUuDQo+IA0KPiBXb3VsZCB0aGF0IHJlcXVpcmUgZXhwb3NpbmcgYmV5
b25kIHRoZSB0b29sc3RhY2sncyBib3VuZGFyaWVzPw0KDQpZZXMsIGFzIHRoaXMgd291bGQg
cmVxdWlyZSB0aGUgdXNlciB0byBzcGVjaWZ5IERPTUlEX0FOWSBhcyB0aGUgZG9taWQgaW4N
CnN0cnVjdCB4c19wZXJtaXNzaW9ucy4NCg0KDQpKdWVyZ2VuDQoNCg==
--------------SAOSuQaTgZoN5a8T95ssIyIf
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-----

--------------SAOSuQaTgZoN5a8T95ssIyIf--

--------------XwxvsQTKDKo0DpTdgMI0vyQ0--

--------------IPAk83EaSu1UIXZ8PBathxBl
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/Ey8FAmmDG30FAwAAAAAACgkQsN6d1ii/Ey+K
Twf9HAM/pj9x5KuMOr9mVU+e8r7vHXPxf/uQJhWgT1UHvcrJwiX8ba2fra00elWw7Q8D9gGEw8N/
f+PwI12S64XGFh3NSR0ffx3xCm/RBUtLguBke5SX2AbBAZEHo/xXyinPBU8s5yYQlcXE85yoU4tZ
ltbYTEkRcB8FUZFO87uZWEfzNCXRBbpizt/3Sp4Q/M+oMnfrC3ZbywXImq5PZeKRPdsetnGO29Wp
0hFBH9rz683daa0TY6gdgJrQylI1zh7IO28o9NOAAsx+XecpcFAF0HRZMV9gWJd9dExzEuixUYCJ
eBjbMnlS9oJ5VpdzO9cOo/4azTBqRxQmCXNlHSpkUQ==
=NiQi
-----END PGP SIGNATURE-----

--------------IPAk83EaSu1UIXZ8PBathxBl--


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:15:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:15:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220366.1529076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnZvR-0006h2-4w; Wed, 04 Feb 2026 10:15:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220366.1529076; Wed, 04 Feb 2026 10: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 1vnZvR-0006gv-1h; Wed, 04 Feb 2026 10:15:57 +0000
Received: by outflank-mailman (input) for mailman id 1220366;
 Wed, 04 Feb 2026 10:15: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnZvP-0006gh-Og
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:15:55 +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 7d4fe888-01b2-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 11:15:54 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-481188b7760so4749325e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:15:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830fe69e9fsm20068575e9.6.2026.02.04.02.15.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:15:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d4fe888-01b2-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770200154; x=1770804954; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kyNNEzgjYQ2UoSAkz0Ru35OCzvdXA1FCSXJLwSZs2zI=;
        b=K6EwtT6/sn1/eFoeaPPhDQ2uew+7cjIqyt61rtBiORcqgr9a5f3dtY8X3yu5O0CVG4
         sH/Hix9AltX03ZWqV/984wRmv6yOwP7DA9Gb3NnkpAcDWj1yv0E5XTI3buT23uHQDEXY
         QmaIMNbdm9+oHAu91M07YTJgC2NpDsfqbEDXIexaNl8kBTUJd8BGh3BnnBdJgyENYT2l
         AeBc7nxMiN76d1idv+rcPgY9/b5V3RE4vj0AE8Lh0CVVvQAxko46CM1At1lZAPEw497A
         DMLDsd/E0oTUekHXZeR81sP/ia+nIMcy/D8t3r/JjItq/5zYcLWiYca06jt56bR1HJPw
         QuMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770200154; x=1770804954;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kyNNEzgjYQ2UoSAkz0Ru35OCzvdXA1FCSXJLwSZs2zI=;
        b=PrySGjVtGHDBxTiSUKy/HRH/AMpmkKUpOyBeeCjvcuDXvCBnYLLJYhfVTOP4nIcpYV
         yolYkN8nlPDXf9apXudoFJ2WmfFFsJOL9uN0AcgRQ4A5EUX3nEAoxxAY8UYmHDocTFXz
         uyVYUdbwhAdcfA1KNVk6RmvcsMtiZgcl9tcnW++3ssJeigIcoYmkqNLRYiNZSwLsidPJ
         T95T2IrLsPxSOAd5gB+hirCPSVLacyWGCmIneek33D8ScH63HuiTAlEHNevEm5lGT0W2
         i5qxjF4sPpnVD76CfoyJ289ZRTDRfTJ/CGDrpIA2hx4A8MMIzO0/07M1bZspQiwrMmsR
         zrSA==
X-Forwarded-Encrypted: i=1; AJvYcCWigJxJcYAeDm1G9AEZ/gjJ992Q8LI4oqAOD+AbNZ+PjdYANgYhMEz0E3QZ6wsAdls84a9zMYz7dAc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxRaDRZLc8VJDEcBnPDAVUNNdRv2RwN/MHbTJ6hsVJnclP9mVD8
	9Drm5m9qExI3m9hfpBeG0DH/cI5N8CM0GgX3y1ag5L9XdjEE0YcjLL1r3P7q4+5sDNtcHqU8OSV
	7WGE=
X-Gm-Gg: AZuq6aJxA7HzuQPdn3LdEeQSEJSwn2FcxS7FOJ5AadPysabV8NIhU/Rc8qpJ1+Q99wD
	d7XpdMuGwJj0/N190KQA6UxOlH617/ia7WOsphE7WyVScZ0sw9F/ID/u9UeRBMyDUgi5SFyv20s
	diDLaTfOOXEmSaM2LHq+EvBGeYPJB5xwBphhoL17vWTIGXbacndCIFWFe3rUWrVp4uLytWR6356
	vtqzRAB257iKmgOqZ4XzquaTmCQpBleIPppsufiz12f1UjcyG1EB7z4CQV8Ys4FymNdu4DClke0
	pnSfmePzJ5U/pFB9CR+ygeZtNjw5nLgypSYRUZuka9V2RfRLunT4cf0WhiZ5NSAqp7RPsI0X7u9
	5ZAnkMaV9pEbL47SW0hLVi9hjoOntOb1wbl3rIY84vF1777bICWUrUy0teu+kSA28bpkGw4ucz0
	syXTNISEKqjL4DRhueyC2OK/FwOXwvvKVUq0lfOoEc1Z9B+FL8XBFakzDVz4ZmcYYxcaVZhUUnQ
	K0=
X-Received: by 2002:a05:600c:8b5c:b0:480:1b1a:5526 with SMTP id 5b1f17b1804b1-4830e93c021mr33551635e9.16.1770200153835;
        Wed, 04 Feb 2026 02:15:53 -0800 (PST)
Message-ID: <17480ac0-438b-4af5-b733-f51eedd6e7a4@suse.com>
Date: Wed, 4 Feb 2026 11:15:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: Juergen Gross <jgross@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
 <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
 <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@suse.com>
 <59fa62df-0fd6-4dba-ada9-ab89570ff624@suse.com>
 <056fa0ce-2832-4b0b-925b-a55e4086d88a@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: <056fa0ce-2832-4b0b-925b-a55e4086d88a@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 11:12, Juergen Gross wrote:
> On 04.02.26 11:04, Jan Beulich wrote:
>> On 04.02.2026 11:01, Juergen Gross wrote:
>>> On 04.02.26 10:51, Jan Beulich wrote:
>>>> On 04.02.2026 10:25, Juergen Gross wrote:
>>>>> On 04.02.26 10:15, Jan Beulich wrote:
>>>>>> On 04.02.2026 10:00, Roger Pau Monné wrote:
>>>>>>> On Wed, Feb 04, 2026 at 08:56:10AM +0100, Jan Beulich wrote:
>>>>>>>> On 04.02.2026 08:49, Roger Pau Monné wrote:
>>>>>>>>> Also, I would remove the tools guards, I think once a DOMID_ constant
>>>>>>>>> is allocated it becomes part of the public ABI, and it cannot be
>>>>>>>>> withdrawn.  See for example DOMID_IDLE: it's only used internally in
>>>>>>>>> the hypervisor AFAICT, yet the define is fully visible in the
>>>>>>>>> headers.
>>>>>>>>
>>>>>>>> It was me to ask for it to be guarded like this. DOMID_IDLE (and perhaps
>>>>>>>> others) not being guarded (at least for IDLE: by just __XEN__) imo was a
>>>>>>>> mistake. That mistake may in fact be correctable, if we could prove that
>>>>>>>> the ID cannot usefully be passed into anywhere.
>>>>>>>
>>>>>>> Even if it's not passed into anything, does it make sense to guard
>>>>>>> them?  The reserved domid values are already consumed, ie: cannot be
>>>>>>> reused in any way.  It just seem to me like more ifdefery churn for no
>>>>>>> specific benefit.
>>>>>>
>>>>>> Well. From an abstract perspective, purely hypothetical at this point, I
>>>>>> could see a potential need to re-number them, e.g. to simplify checking
>>>>>> against groups of these special IDs.
>>>>>>
>>>>>> Yes, excess #ifdef-ary is an issue. Excess exposure of things also is,
>>>>>> though. Finding the right balance between both can be interesting.
>>>>>
>>>>> I have a patch in work which would want DOMID_ANY not be guarded. I think
>>>>> especially DOMID_ANY could be useful for other cases, too.
>>>>
>>>> Mind me asking where, outside of the toolstack, you intend to use it?
>>>
>>> I'd like to be able to use it for Xenstore permissions.
>>>
>>> Primary use case would be to allow the special watches for domain creation
>>> and removal to be usable for all guests, but there might be use cases where
>>> a domU wants to give node read access for everyone.
>>
>> Would that require exposing beyond the toolstack's boundaries?
> 
> Yes, as this would require the user to specify DOMID_ANY as the domid in
> struct xs_permissions.

Hmm, I see. I wonder though whether things like this wouldn't want a separate
layer of abstraction, such that users of the library won't need to include
(and hence have available) Xen's public headers.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:26:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:26:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220380.1529085 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vna5j-0000Ji-6M; Wed, 04 Feb 2026 10:26:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220380.1529085; Wed, 04 Feb 2026 10: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 1vna5j-0000Jb-3Z; Wed, 04 Feb 2026 10:26:35 +0000
Received: by outflank-mailman (input) for mailman id 1220380;
 Wed, 04 Feb 2026 10:26: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=yHEP=AI=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vna5h-0000JU-Qq
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:26:33 +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 f9602e84-01b3-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 11:26:32 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b884d5c787bso1165282666b.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:26:32 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8ea001eba8sm108851166b.48.2026.02.04.02.26.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:26:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9602e84-01b3-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770200791; x=1770805591; 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=Lvb/s+ZQ1PoJCb/WFr4HXElwd2DuPk01YtthyuVLgaQ=;
        b=XGz5tubUDcB2rbAmuao0HwNDimxI539orxtid2HOsHMxVfxJvTIogHEwIdmU8Zs01Z
         4qhtGQ6ATU5RjAs3zVJKPk4Br0NpRBjpzxLCOa/2KwVjd5FWBckwceHxpNrRcI6qIrAz
         Jux6Nj/8pSLAmAq+skrdrtBIld+G2RjTzIQLLogOfmNcQUfQdTcaIFUbmMVhMJ+hQoED
         Kas+IzJ+pVYu3A9jGP4rultG9q8NMXFVbn33fafPxoYcars0MMJZv8L0nJsUHsLHf1PC
         doJ+IUBC9CTQ+t26bg8ZtnVZbHTi6FMm1kV5EEv2uA3ALuX9wvazayN1fjXFQVk8GLV9
         45Ug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770200791; x=1770805591;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Lvb/s+ZQ1PoJCb/WFr4HXElwd2DuPk01YtthyuVLgaQ=;
        b=aZYOTxAn4EolQVvXFaLca5umqaDNvUnmyvr0G3r/4HwaO+Vs73qORSAwmsdxUrARR6
         TSkPd28EDm7XnRQPAZoHSYlx+0ku35RSWyFu9yiUFgpG/dCLfPgCNjLGRYYJP9eGJrsp
         xVdvHl8xcfJKGOIVNs/wyIatUHXwytlDjAfNM1AjoXI/QjLnUpl8JKgCM3wq8RZusAi3
         1CllHTG+saae+tzYd3staq1kOBMCBB5KN50wJgLFYV+5v8InABFb4h9A/E/QyFenwSG4
         OFJyCzWat9H46SSW94cIQSIwKT/SgKnw6aoz1H4wCOAPpClY8D9J0q9sudRTyb8M7L3z
         kSJA==
X-Forwarded-Encrypted: i=1; AJvYcCUQn8pkFWm/g1wwW9DQt6E0yPF+eHAWKimx7dM2Slb7OR5502naFIu7QF4K+umkTqxPNlz23H+IFRs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwW+F2470z1S1rD4wi61rpkeYqQRpX5ofmQows8rIgVUuXvQthf
	Ws+xS6fI6VCHNe/B2Pqfy+y6oBN6ETsajNjci3Cnz/ROPKxXXBiIB3bfhWJju2a+zLk=
X-Gm-Gg: AZuq6aL566lHMzWKepx/hrn2e6YOmP1y8qf+GcraFLJMyShLttuInH0inZ59ToILTFe
	3OqoRxMWoQCTENkdrk2sGAGEJxMowz6vAH1pnLI6b59hD4O+BwrFKK6nFlh82/V8H6BVigRRe84
	da7ItoprK84J/GIJgJEN4ed9d2Wv6Bm6twZNbZIxF+DBCOe7gHKoRde8z1tipFi8eiXX9RlW7NS
	6Q4cntxLCC7ladDw6Y5JUeeY1w+b5Cfq4KYwtSUEJ2O9QiG7X8wjrzMqO0DL+4+t7YRkbWM0kJ5
	X6EC57ftYon9xRsn/FVf5JtW8Qu7K1ZGEmv2Sk++k24iT/9m3bPy/kXz+VeZ3Ka8H/QdzP0aiun
	wL5YD+Mf1t+hr0jP/gpE7lIWZkCO+ipVy3Ul/kGOCLykwCLmRPlwc4lrEGekRpO7mo9ACnXlnFd
	AhV/4igkTKcYohG62mprzga8cREddSuDHiCAxyg26nC8ZUUtrkWCFQ0xS1m7JIGDYRa0l3VaDtC
	SXDaWQDh+5LjHO4ZhJhoJisQ7bZCave4URdOw==
X-Received: by 2002:a17:907:5c9:b0:b88:713e:78a5 with SMTP id a640c23a62f3a-b8e9f10d7afmr185782966b.28.1770200791186;
        Wed, 04 Feb 2026 02:26:31 -0800 (PST)
Message-ID: <306ba24c-efe9-4dd6-bb6c-19bb5195c410@suse.com>
Date: Wed, 4 Feb 2026 11:26:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
To: Jan Beulich <jbeulich@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
 <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
 <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@suse.com>
 <59fa62df-0fd6-4dba-ada9-ab89570ff624@suse.com>
 <056fa0ce-2832-4b0b-925b-a55e4086d88a@suse.com>
 <17480ac0-438b-4af5-b733-f51eedd6e7a4@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: <17480ac0-438b-4af5-b733-f51eedd6e7a4@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------OkwD5DPgi4NP0h07v0JMGjgr"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------OkwD5DPgi4NP0h07v0JMGjgr
Content-Type: multipart/mixed; boundary="------------O1weGE6xePw50M8PikxURbZl";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: dmukhin@xen.org, xen-devel@lists.xenproject.org,
 andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, sstabellini@kernel.org, dmukhin@ford.com,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Message-ID: <306ba24c-efe9-4dd6-bb6c-19bb5195c410@suse.com>
Subject: Re: [PATCH v4] xen/domain: introduce DOMID_ANY
References: <20260109140747.195460-2-dmukhin@ford.com>
 <aYL6Bt3Cs3HgeMPm@Mac.lan> <0e3a1af4-d87c-405c-a0a7-598929df3f4b@suse.com>
 <aYMKk9YtrR7NOKyt@Mac.lan> <cef81f1b-4348-43a1-a146-dfc57437a97a@suse.com>
 <e31a8309-a963-4084-913b-39af9222eb2e@suse.com>
 <36537370-1fe3-45e8-9790-852d73f93e07@suse.com>
 <f52c72ee-0579-4ec9-95d1-57c26eb21b6c@suse.com>
 <59fa62df-0fd6-4dba-ada9-ab89570ff624@suse.com>
 <056fa0ce-2832-4b0b-925b-a55e4086d88a@suse.com>
 <17480ac0-438b-4af5-b733-f51eedd6e7a4@suse.com>
In-Reply-To: <17480ac0-438b-4af5-b733-f51eedd6e7a4@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=

--------------O1weGE6xePw50M8PikxURbZl
Content-Type: multipart/mixed; boundary="------------mlOUH2JiaL0P5SZcu4Qnjh5I"

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

T24gMDQuMDIuMjYgMTE6MTUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAwNC4wMi4yMDI2
IDExOjEyLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMDQuMDIuMjYgMTE6MDQsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDA0LjAyLjIwMjYgMTE6MDEsIEp1ZXJnZW4gR3Jv
c3Mgd3JvdGU6DQo+Pj4+IE9uIDA0LjAyLjI2IDEwOjUxLCBKYW4gQmV1bGljaCB3cm90ZToN
Cj4+Pj4+IE9uIDA0LjAyLjIwMjYgMTA6MjUsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+Pj4+
Pj4gT24gMDQuMDIuMjYgMTA6MTUsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+Pj4+PiBPbiAw
NC4wMi4yMDI2IDEwOjAwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOg0KPj4+Pj4+Pj4gT24g
V2VkLCBGZWIgMDQsIDIwMjYgYXQgMDg6NTY6MTBBTSArMDEwMCwgSmFuIEJldWxpY2ggd3Jv
dGU6DQo+Pj4+Pj4+Pj4gT24gMDQuMDIuMjAyNiAwODo0OSwgUm9nZXIgUGF1IE1vbm7DqSB3
cm90ZToNCj4+Pj4+Pj4+Pj4gQWxzbywgSSB3b3VsZCByZW1vdmUgdGhlIHRvb2xzIGd1YXJk
cywgSSB0aGluayBvbmNlIGEgRE9NSURfIGNvbnN0YW50DQo+Pj4+Pj4+Pj4+IGlzIGFsbG9j
YXRlZCBpdCBiZWNvbWVzIHBhcnQgb2YgdGhlIHB1YmxpYyBBQkksIGFuZCBpdCBjYW5ub3Qg
YmUNCj4+Pj4+Pj4+Pj4gd2l0aGRyYXduLiAgU2VlIGZvciBleGFtcGxlIERPTUlEX0lETEU6
IGl0J3Mgb25seSB1c2VkIGludGVybmFsbHkgaW4NCj4+Pj4+Pj4+Pj4gdGhlIGh5cGVydmlz
b3IgQUZBSUNULCB5ZXQgdGhlIGRlZmluZSBpcyBmdWxseSB2aXNpYmxlIGluIHRoZQ0KPj4+
Pj4+Pj4+PiBoZWFkZXJzLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gSXQgd2FzIG1lIHRvIGFz
ayBmb3IgaXQgdG8gYmUgZ3VhcmRlZCBsaWtlIHRoaXMuIERPTUlEX0lETEUgKGFuZCBwZXJo
YXBzDQo+Pj4+Pj4+Pj4gb3RoZXJzKSBub3QgYmVpbmcgZ3VhcmRlZCAoYXQgbGVhc3QgZm9y
IElETEU6IGJ5IGp1c3QgX19YRU5fXykgaW1vIHdhcyBhDQo+Pj4+Pj4+Pj4gbWlzdGFrZS4g
VGhhdCBtaXN0YWtlIG1heSBpbiBmYWN0IGJlIGNvcnJlY3RhYmxlLCBpZiB3ZSBjb3VsZCBw
cm92ZSB0aGF0DQo+Pj4+Pj4+Pj4gdGhlIElEIGNhbm5vdCB1c2VmdWxseSBiZSBwYXNzZWQg
aW50byBhbnl3aGVyZS4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBFdmVuIGlmIGl0J3Mgbm90IHBh
c3NlZCBpbnRvIGFueXRoaW5nLCBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gZ3VhcmQNCj4+Pj4+
Pj4+IHRoZW0/ICBUaGUgcmVzZXJ2ZWQgZG9taWQgdmFsdWVzIGFyZSBhbHJlYWR5IGNvbnN1
bWVkLCBpZTogY2Fubm90IGJlDQo+Pj4+Pj4+PiByZXVzZWQgaW4gYW55IHdheS4gIEl0IGp1
c3Qgc2VlbSB0byBtZSBsaWtlIG1vcmUgaWZkZWZlcnkgY2h1cm4gZm9yIG5vDQo+Pj4+Pj4+
PiBzcGVjaWZpYyBiZW5lZml0Lg0KPj4+Pj4+Pg0KPj4+Pj4+PiBXZWxsLiBGcm9tIGFuIGFi
c3RyYWN0IHBlcnNwZWN0aXZlLCBwdXJlbHkgaHlwb3RoZXRpY2FsIGF0IHRoaXMgcG9pbnQs
IEkNCj4+Pj4+Pj4gY291bGQgc2VlIGEgcG90ZW50aWFsIG5lZWQgdG8gcmUtbnVtYmVyIHRo
ZW0sIGUuZy4gdG8gc2ltcGxpZnkgY2hlY2tpbmcNCj4+Pj4+Pj4gYWdhaW5zdCBncm91cHMg
b2YgdGhlc2Ugc3BlY2lhbCBJRHMuDQo+Pj4+Pj4+DQo+Pj4+Pj4+IFllcywgZXhjZXNzICNp
ZmRlZi1hcnkgaXMgYW4gaXNzdWUuIEV4Y2VzcyBleHBvc3VyZSBvZiB0aGluZ3MgYWxzbyBp
cywNCj4+Pj4+Pj4gdGhvdWdoLiBGaW5kaW5nIHRoZSByaWdodCBiYWxhbmNlIGJldHdlZW4g
Ym90aCBjYW4gYmUgaW50ZXJlc3RpbmcuDQo+Pj4+Pj4NCj4+Pj4+PiBJIGhhdmUgYSBwYXRj
aCBpbiB3b3JrIHdoaWNoIHdvdWxkIHdhbnQgRE9NSURfQU5ZIG5vdCBiZSBndWFyZGVkLiBJ
IHRoaW5rDQo+Pj4+Pj4gZXNwZWNpYWxseSBET01JRF9BTlkgY291bGQgYmUgdXNlZnVsIGZv
ciBvdGhlciBjYXNlcywgdG9vLg0KPj4+Pj4NCj4+Pj4+IE1pbmQgbWUgYXNraW5nIHdoZXJl
LCBvdXRzaWRlIG9mIHRoZSB0b29sc3RhY2ssIHlvdSBpbnRlbmQgdG8gdXNlIGl0Pw0KPj4+
Pg0KPj4+PiBJJ2QgbGlrZSB0byBiZSBhYmxlIHRvIHVzZSBpdCBmb3IgWGVuc3RvcmUgcGVy
bWlzc2lvbnMuDQo+Pj4+DQo+Pj4+IFByaW1hcnkgdXNlIGNhc2Ugd291bGQgYmUgdG8gYWxs
b3cgdGhlIHNwZWNpYWwgd2F0Y2hlcyBmb3IgZG9tYWluIGNyZWF0aW9uDQo+Pj4+IGFuZCBy
ZW1vdmFsIHRvIGJlIHVzYWJsZSBmb3IgYWxsIGd1ZXN0cywgYnV0IHRoZXJlIG1pZ2h0IGJl
IHVzZSBjYXNlcyB3aGVyZQ0KPj4+PiBhIGRvbVUgd2FudHMgdG8gZ2l2ZSBub2RlIHJlYWQg
YWNjZXNzIGZvciBldmVyeW9uZS4NCj4+Pg0KPj4+IFdvdWxkIHRoYXQgcmVxdWlyZSBleHBv
c2luZyBiZXlvbmQgdGhlIHRvb2xzdGFjaydzIGJvdW5kYXJpZXM/DQo+Pg0KPj4gWWVzLCBh
cyB0aGlzIHdvdWxkIHJlcXVpcmUgdGhlIHVzZXIgdG8gc3BlY2lmeSBET01JRF9BTlkgYXMg
dGhlIGRvbWlkIGluDQo+PiBzdHJ1Y3QgeHNfcGVybWlzc2lvbnMuDQo+IA0KPiBIbW0sIEkg
c2VlLiBJIHdvbmRlciB0aG91Z2ggd2hldGhlciB0aGluZ3MgbGlrZSB0aGlzIHdvdWxkbid0
IHdhbnQgYSBzZXBhcmF0ZQ0KPiBsYXllciBvZiBhYnN0cmFjdGlvbiwgc3VjaCB0aGF0IHVz
ZXJzIG9mIHRoZSBsaWJyYXJ5IHdvbid0IG5lZWQgdG8gaW5jbHVkZQ0KPiAoYW5kIGhlbmNl
IGhhdmUgYXZhaWxhYmxlKSBYZW4ncyBwdWJsaWMgaGVhZGVycy4NCg0KQ3VycmVudGx5IG1v
c3QgbGlicmFyeSBoZWFkZXIgZmlsZXMgI2luY2x1ZGUgb25lIG9yIG1vcmUgWGVuIHB1Ymxp
YyBoZWFkZXJzLg0KDQp4ZW5zdG9yZS5oIGUuZy4gYWxyZWFkeSBkZXBlbmRzIG9uIHhlbi9w
dWJsaWMvaW8veHNfd2lyZS5oLg0KDQoNCkp1ZXJnZW4NCg==
--------------mlOUH2JiaL0P5SZcu4Qnjh5I
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-----

--------------mlOUH2JiaL0P5SZcu4Qnjh5I--

--------------O1weGE6xePw50M8PikxURbZl--

--------------OkwD5DPgi4NP0h07v0JMGjgr
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/Ey8FAmmDHtYFAwAAAAAACgkQsN6d1ii/Ey96
5Qf7BPvRh/laZBb+gF/G2vghxwH3W866FBbl5Aof/dzaz6LyrPmUz3oKf4v5H8d8UNHD+NDWV0AR
g0GDHYL105m5byLV2/jZNOZBcsdeaE0jFQsmonroOQEZn/JCRHKsFsC2qo+fLO8Pq7CQlCEVpMl5
5vnejw9u7a/xJElDHi470WedxV/sgzhxAPUVOEv2pnmWyhrzmomevsLp7XsOmp+hJqFNpKW1sPLt
1cFEjkf0AFvQSjxL9vH2J9dF3ABC/baSAtyWCT18/NGPUeovNU/pHvn0e+fXE3WU374ccl0qWbsP
+IRX99tIu3tbj/IhVUwuNHdZ9qmVpbJQnseaZVZdFg==
=AJUD
-----END PGP SIGNATURE-----

--------------OkwD5DPgi4NP0h07v0JMGjgr--


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:39:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:39:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220392.1529100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnaHw-0002di-DO; Wed, 04 Feb 2026 10:39:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220392.1529100; Wed, 04 Feb 2026 10:39:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnaHw-0002db-9O; Wed, 04 Feb 2026 10:39:12 +0000
Received: by outflank-mailman (input) for mailman id 1220392;
 Wed, 04 Feb 2026 10:39: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnaHv-0002dV-QH
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:39:11 +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 bd5aa55c-01b5-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 11:39:10 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-480142406b3so49759485e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:39:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43618058473sm5777876f8f.22.2026.02.04.02.39.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:39:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd5aa55c-01b5-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770201550; x=1770806350; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AJqpjliRtFftIMnFF6amx1fe2LrK+P6Eavl0AwdjdSI=;
        b=BvdZkVcHyyyz01/QfqnfSGMrGXe7B/HqhMsGc9WjH+rHrsxaQpKZ3Ba6g1h8RDj7YM
         5VH4N5+vPCYK1GlEuIQPaf4CL6O5A9w3cc/YWyEfP+eNEFQc3+FW1RtGtjSiONJgcYpu
         3GncEREmROxFcWaB+iyUrALOgM8HTppedGwRna5Bs8KtjlDp2HBZtFZ7ESymHZfeQwQ3
         atQmRdVf8ZVnSqUJWtjsgwvC11P7KL3gni0Gd5kj6vHWRCu/8CM93SvLm+WWJtsBX/EA
         +xXs2OAE08y00eWJYZKZdAn+JwsYBKCyDyyvIRGz22P9ePoFpn2/UlORqQVpi9he5Ri9
         Znrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770201550; x=1770806350;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AJqpjliRtFftIMnFF6amx1fe2LrK+P6Eavl0AwdjdSI=;
        b=Hs2T2oRw6TVHeTbO8ERGxG7ZDYb4PLTXO+jiSEiiyn+qin2Y+HCDow5wk4wAWZXG4f
         VwcyQT/5P+cUcJcr3R8BNjnFovBndChw9inc3fJdJiSI+IPnhtnbfTLy9/MDry7dWgR1
         MpTX5ZYfITHAWRlWmPAQhN8QQwaSRHNPMVkIiAURfs3+L/U1mW1FFa7P43e9J3JRyukR
         k/8GnS83etgGAHIRAXqXB9CbzupDcEScgJiRNqPrBbiLe5d6o1WZA+txlKTgY4/AvziG
         OfdHAUlHclD2smC4pkCm+LJmPT7nKf6/i2duyeq6pHX+LUyAXSCZXvj/QhUcrET8UaBc
         gVZA==
X-Forwarded-Encrypted: i=1; AJvYcCUF0Ub9JE+SWOcSZVjeX9sJixPo69EZJd31D14Jf0B7o4W+fzaHcQ8VLW5j4FraXru8eZmOQumdVVA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzLrh0MvPOTKqI82SuOyjtnYzxQUU6s8PB2uNcu2kQwakQmqUk
	ugOPQFJhsJNMwycxd2ZFzajTZSQt/Gc3EYY23PTFRYlAylz/ewchkcwxZpFswmwE8Q==
X-Gm-Gg: AZuq6aLgrK/8ecctVR7OALmPRC/+ngH1ZEULCnTtSA+usx776KpOAZsv4tv/OxCNPmQ
	/+UAEvMtw1VKjbHtc/qwTtx8o67YVEAXQ05rv/sPYnL+ZP7L5KopWLlm5aPFiEdtALqQDhM5kUa
	KomMvG8q7m8/ki6msHS8Grec3G7ZQTn8nQPLU5hxXtdGnNF9CeIkOK+M84lE9tmTB+jGszOidVw
	95Rexg0reyfqBhD7pqSupMzGh/zEfHePWeBQ6mU7fcJCozCKWh0ZtjlKpDtAPRO0J7CWs3hE+JC
	F69FJdEp/umCDzmTTd1Q8aTmkY2qAV+ujMUGDcVMF2JgIpLzcM7AjA7LEpE3zXJ4/AV+3GVjQBF
	QGsnUdNmXOaLiUiV7MBxML36NFOSOoFz6BaIbpx1WsGFK4wu7IOamkB0p861xIEqeO//2/8+jbE
	1cz/PoZdBQdJLj5/jF9lcmqLphPWj3v92EzVVfbGVKmB/DRdaeNibh+P9f2qHUOWa0EgspQNGfY
	j8=
X-Received: by 2002:a05:600c:8712:b0:480:4be7:4f53 with SMTP id 5b1f17b1804b1-4830e99333amr42246105e9.31.1770201549777;
        Wed, 04 Feb 2026 02:39:09 -0800 (PST)
Message-ID: <bddacebe-e84b-4ba0-959e-be078d613d03@suse.com>
Date: Wed, 4 Feb 2026 11:39:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/16] xen/riscv: implement reprogram_timer() via SBI
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <732635f43fb80daec332f78d4442b56bf5dfda98.1769099885.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: <732635f43fb80daec332f78d4442b56bf5dfda98.1769099885.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.01.2026 17:47, Oleksii Kurochko wrote:
> @@ -40,6 +43,46 @@ static void __init preinit_dt_xen_time(void)
>      cpu_khz = rate / 1000;
>  }
>  
> +int reprogram_timer(s_time_t timeout)
> +{
> +    uint64_t deadline, now;
> +    int rc;
> +
> +    if ( timeout == 0 )
> +    {
> +        /* Disable timers */
> +        csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));

For here and below: Is it guaranteed that the SIE bit is writable? The privileged
spec looks to have provisions for the case that it isn't (together with the
corresponding SIP bit).

As to the comment - why plural here, when ...

> +        return 1;
> +    }
> +
> +    deadline = ns_to_ticks(timeout) + boot_clock_cycles;
> +    now = get_cycles();
> +    if ( deadline <= now )
> +        return 0;
> +
> +    /* Enable timer */
> +    csr_set(CSR_SIE, BIT(IRQ_S_TIMER, UL));

... it's singular here? Also in both cases, isn't it the timer interrupt you
enable, not the timer itself?

> +    /*
> +     * TODO: When the SSTC extension is supported, it would be preferable to
> +     *       use the supervisor timer registers directly here for better
> +     *       performance, since an SBI call and context switch would no longer
> +     *       be required.

I think you mean a mode switch here, not a context one?

Jan

> +     *       This would also reduce reliance on a specific SBI implementation.
> +     *       For example, it is not ideal to panic() if sbi_set_timer() returns
> +     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
> +     *       without SSTC we still need an implementation because only the
> +     *       M-mode timer is available, and it can only be programmed in
> +     *       M-mode.
> +     */
> +    if ( (rc = sbi_set_timer(deadline)) )
> +        panic("%s: timer wasn't set because: %d\n", __func__, rc);
> +
> +    return 1;
> +}
> +
>  void __init preinit_xen_time(void)
>  {
>      if ( acpi_disabled )



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:42:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:42:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220400.1529109 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnaKr-00047Y-Px; Wed, 04 Feb 2026 10:42:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220400.1529109; Wed, 04 Feb 2026 10: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 1vnaKr-00047R-Mn; Wed, 04 Feb 2026 10:42:13 +0000
Received: by outflank-mailman (input) for mailman id 1220400;
 Wed, 04 Feb 2026 10: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnaKq-00047L-Kc
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:42:12 +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 2509eeff-01b6-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 11:42:04 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-43590777e22so4131734f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:42:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4361805fec6sm5369739f8f.32.2026.02.04.02.42.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:42:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2509eeff-01b6-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770201724; x=1770806524; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rorERKJlNFMonmMiKQESjUzE834QhK9G7+qVVq8723Q=;
        b=OFWrFzdYhC2pLxcJiYGZg9eI+4tWsALk4QSIRDKf1RqVFccKmFucF2D+VBdzC/sara
         2fZz01CPfOi7BRr3TaP22VEsZctQ57f4YB60hD1FdjxEETpIyujEbe0Cw0+0oOvmCkGC
         vsjmU4JtgfL8mwL2Z9ulSUf2Nzd+Oheq7Pmndvb9de11YUH8P9Xy+8pNxAe0fak4/HDQ
         9apZ7nH8vfFZ0Q25QF5bMbQpzy3Y5j+LTkz0o327vz2jPXnxERfoLhv47cDZTbwM4acZ
         3w0jlo7V9J4yhrreP5tvcqg1TjuZexXyQKHSMd7DjhZ/4FNmV5eg4itcgsR44byoZ2X5
         KjqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770201724; x=1770806524;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rorERKJlNFMonmMiKQESjUzE834QhK9G7+qVVq8723Q=;
        b=jmT3WjSILOoIx2ST2x8koeAF/A6pBg/NDfYZ77Mz1XXzW174Ps1GfxIuXsirxd/ay7
         bA4SFrTVMf6repDD26NYy6Kxkz5G9rZ2mKVfePzn7th8ApfMJtcH8uhKbjaOzBF0BZBd
         2alSptYZgucbGi9Q22vGdfNEmdghFeYXKFfRBLEO7SlcCaNuu876UUJJFZ4TxAB1VbPH
         63II+dC3R6uaQN+NCjPULX+6wsMy0X1TlUMFHCDfQHCfs4qU1LZpdArP9WVs0STOg39j
         KWujCCzomGwrpSi47PXHF4n27JNIgTQUr7CbtiZSchlolSDlCVeSsQ/dwBhFVCpueD13
         yEHg==
X-Forwarded-Encrypted: i=1; AJvYcCUbFCCn+Yqh3r3gbHEyVxmxcI7vQO7PHWRB+xuYUPZWgvM3w99UdU1qqr1E8kIl0AjC1g2kVVPNHvI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKwhX/u++9Xxji1RNUvedFJkb+hc50puWFRbWsQsHJyAYxBXyr
	43niS2iJ6jdLfy+m0woEKXa/0+Yutxv77fEHudPpa3ocv+aqWldSGKHAPw1aeytIAg==
X-Gm-Gg: AZuq6aI/C3JuIdN+ZbF4dcCfLoHi1yzGJDK9QeIetN84ZzmWMVMThAGId+DQtnkwhE2
	iflYukqNDnmagoF+E0h0D74bSBnf/Jaktshce6Dm2e1dta+6KCKiKhvybWi80o180MozNJapQJD
	Bc7aM38N/6w1D1W9qx8UxO2MeMxncL5pmYpfK5Eu9H45MHfpRp5UxfWNcEyCukWhr09RheRNskc
	r98LE0sfYpjMPe0uZiEUdh3YCFdd5DRxqdXeFbbxWKm1q6sFFJ4HmTMNkKAWhWg3JHcR5lOeqZb
	Z7YhF4HLWFYVyq8C66pobQLXUntWWwlLx7KQisb1OWg98w6YT/j4YpK3uEVAhsmklAB+LD/qKYM
	vUbUXTmXmGk0d0IK8iA/AJqHbCE0UMiqqKYrafpWI3amB4ZSgubQxZCsApDLcxvEOgDOGDuhllV
	HXTD3jYVD9q5oam3IUI+QhyzAJhU2wuv1XHKWZIYtN6wpXm3MQJx5orpSy7CFOwiCOf3XtG+vrU
	8Oa2cpfC9KtQw==
X-Received: by 2002:a5d:5d01:0:b0:435:a673:bca1 with SMTP id ffacd0b85a97d-43618031b7dmr3504464f8f.27.1770201723778;
        Wed, 04 Feb 2026 02:42:03 -0800 (PST)
Message-ID: <bc509f1e-b0a8-4544-a88a-549637fab9ca@suse.com>
Date: Wed, 4 Feb 2026 11:42:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 14/16] xen/riscv: handle hypervisor timer interrupts
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <5028577821754b86f633bedb0c32f5490ab6452c.1769099885.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: <5028577821754b86f633bedb0c32f5490ab6452c.1769099885.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.01.2026 17:47, Oleksii Kurochko wrote:
> Introduce timer_interrupt() to process IRQ_S_TIMER interrupts.
> The handler disables further timer interrupts by clearing
> SIE.STIE and raises TIMER_SOFTIRQ so the generic timer subsystem
> can perform its processing.
> 
> Update do_trap() to dispatch IRQ_S_TIMER to this new handler.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 10:49:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 10:49:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220413.1529120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnaRo-00054Y-L8; Wed, 04 Feb 2026 10:49:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220413.1529120; Wed, 04 Feb 2026 10:49:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnaRo-00054R-Gl; Wed, 04 Feb 2026 10:49:24 +0000
Received: by outflank-mailman (input) for mailman id 1220413;
 Wed, 04 Feb 2026 10:49: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnaRm-00054L-Ne
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 10:49:22 +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 28eb3774-01b7-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 11:49:20 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-42fbc544b09so6161661f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 02:49:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e25d0dsm5599104f8f.7.2026.02.04.02.49.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 02:49:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28eb3774-01b7-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770202160; x=1770806960; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Qz7dYmytK84FneTLu68z4Bm1ji8uFvgf8x5Z7BmWi18=;
        b=GnwuXX1cKjMV+gUjk/YGifHnzCNWptZlgp9fJUnqrJ0rgz2ihAN09Shjp0Y7hH0+jg
         SbI/5xODXyZE7kkMCGP08VB3ExB2Lpvg5Ra9oG2XKNDQZFqewxBu8eDEQH6Szi78stax
         ofrsTJKtCxO+cSmkVYVg/bPAOgj4u7aLuVgibLnIhYBZkYyn5qIxfvhTcd+itjEScQTg
         59m79jLSuoEMYnlGeJ8gHQajk9YPWi8IeyI3QIXK/VusroRzX+y+YN+YT4Mubl5Nhtm1
         w7WeDCuGeviDetdzKb+a07GHppOVlOSFcRwfwIX0i/2cK4bPmnpd+Z/Ht3qeW6cytXtg
         7vfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770202160; x=1770806960;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qz7dYmytK84FneTLu68z4Bm1ji8uFvgf8x5Z7BmWi18=;
        b=wd3nhPzPrq1yCn5LrpFzypN4LUVkAFGAenhvPFAWBgRziUv2YGFRTEizAErLTm6jOb
         C2NaXqkApXTu4avsMd/+nEwWgsZxe/gV0CnoO17LbMjub6814omw+NvFpVqN1XB9LSdA
         SdD5ChbkfM9JIh5X5pBuuSSNnHIo0hvXJUim79lHDT4War0Cj+EsRwnm4sRmsNlDaNCz
         5AFvtl4/0j/6RX9a901eDu5EIeGvr+HBbYkBF5foFwO/Q3r7fi4ozjITVK84JkaQwHHk
         9i94RLso+O4/yELdb+dKiSs2NbMudGU5ef9zEyDbXnqXxPvYfaDpwjC8OD7iPE4HVlYf
         Wytg==
X-Forwarded-Encrypted: i=1; AJvYcCVRRGmVMP+p7D2SmnNFSRVGKPPLsYnZzUWRN8Cqm+6iIGRNJ0RUbXOcIBQnfH5ZOf9PGjM+3s/PDNs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwaLbKPkR88HHghjgohwdOqYVrUa+2JnulPh/F5G6XZcKm1SEzm
	nZw91mqHN8BjQvSw46e6FPSfJnZaUP2EjU126zZ9838inV9Vy6+GPWMtfOd11D1NVQ==
X-Gm-Gg: AZuq6aLSoDY0dpHvrr0lO8OedBCfYkNnl0fAfbijxF91XtwZC/YcnbeVOl/6Pizuk/H
	DJW+mEg4ObFcG+Yixdc7IUhsFMk3VFdT74OpOb5gfkOhFuRuR4GGx3nuCn52Tr7d1J/ISbi7iw7
	9+FLerCLeD+HiCjOztBCqYAUQoIcTaEyqoluvSXNw4QYejfR38SO9XzRkvVHYSKm3kZ1gnjBa0z
	NeflF7IUxNHMq0kEjBv8PD/vaiPcMY/GkbXe5cFS5rFjZomm1I5pBTHhjAzaFIDYaf1787txTzg
	le+/hCSkqjvuYHGoSuSKQ6BYnKWG86ojRXdMRn6LHhvJNXnX3e1F6hfkFaHsQ/VWIoaakjfopWr
	h/iyYBMqkw5jsy1TCrLxMlIeIXAFcBFOdgZRVZLPkipAo4qIZ7MIaLh1b7TxZVt/chPYSoBv2hy
	SDYR72nAL9Y+AXCUEAOWohU78gHDNntreHUvtiCGWsdz/+a923mmic6R0VpWrWwzm8i8pMJgeTb
	jI=
X-Received: by 2002:adf:eb82:0:b0:436:1a2e:2c50 with SMTP id ffacd0b85a97d-4361a2e2f57mr1542766f8f.12.1770202159719;
        Wed, 04 Feb 2026 02:49:19 -0800 (PST)
Message-ID: <316accc5-2e6b-4571-98a7-5776a47a4ad7@suse.com>
Date: Wed, 4 Feb 2026 11:49:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 16/16] xen/riscv: implement sync_vcpu_execstate()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <eb254f5a49d01712f9b3745e420dd37a4a9ba0bc.1769099885.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: <eb254f5a49d01712f9b3745e420dd37a4a9ba0bc.1769099885.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 22.01.2026 17:47, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -259,3 +259,21 @@ void sync_local_execstate(void)
>  {
>      /* Nothing to do -- no lazy switching */
>  }
> +
> +void sync_vcpu_execstate(struct vcpu *v)
> +{
> +    /*
> +     * We don't support lazy switching.
> +     *
> +     * However the context may have been saved from a remote pCPU so we
> +     * need a barrier to ensure it is observed before continuing.
> +     *
> +     * Per vcpu_context_saved(), the context can be observed when
> +     * v->is_running is false (the caller should check it before calling
> +     * this function).
> +     *
> +     * Note this is a full barrier to also prevent update of the context
> +     * to happen before it was observed.
> +     */
> +    smp_mb();
> +}

Where's the counterpart of this barrier (going to be)?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 11:09:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 11:09:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220424.1529128 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnalJ-0008Mc-4g; Wed, 04 Feb 2026 11:09:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220424.1529128; Wed, 04 Feb 2026 11: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 1vnalJ-0008MV-20; Wed, 04 Feb 2026 11:09:33 +0000
Received: by outflank-mailman (input) for mailman id 1220424;
 Wed, 04 Feb 2026 11:09: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnalH-0008MP-Me
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 11:09:31 +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 f9a99649-01b9-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 12:09:29 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806cc07ce7so66776735e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 03:09:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830ec4fe2fsm17266825e9.3.2026.02.04.03.09.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 03:09:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9a99649-01b9-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770203369; x=1770808169; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yl7iypKDSWXx9zpbiDlFIyuzKF5x0vu15IEtwWIvLD4=;
        b=YS1Xit15mI3g+BgJ1RvRrfFHzAYBsMzIsEUxaPtte0b4Lunu7zdoCUz/oGh9gxvNBx
         wYVsl+k90I9F1iVJxJrjYk6mO8W+lRIP0COZRbzDQEnpjO2ppG9Q/uPSTzx8rldpKsM4
         125jmyDSj93HUCH09R9gZCkI4dYBn6oyvxqxOF1u8IhCbMB2IY3vZ7T+m7zb2RqngPS7
         4cFvN7g7rtEqF5V1DvZp5u5O7QLUjs+PO5kK2PhcHRV3JF0LgJ9DuwA8FxGcRppVJeFb
         NmEi52JFzwrrPYS1TyUX14r+mAOo+R7KH3KVsuec2R8g58PfXOp6C/Jb0UAC0SpMTBPT
         74uA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770203369; x=1770808169;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yl7iypKDSWXx9zpbiDlFIyuzKF5x0vu15IEtwWIvLD4=;
        b=kO218hhxMKhvsTpJtd58VAI8Az8ypSVDBFGULc2RB75oBtzzgVA7z26zvm69otXrmP
         kx1IoudemJkoF4Mp7a36B64lqR3WMCmrkhxvYc5rUszPHhd0vDmkRsfhCTfpngU81FbA
         65UpYq8BOysMFa0rBS5/qpOK8ACxom6cZ/2rZzh/JSnARwb1LdTZWZWMdzqtxvn25WJo
         S4MoPcMcb1BHzrLE/x2BjZaTVCFVjxXuPVLynwW0mSFVdkGpqWMnI68TtD39jY0zPDDo
         FEqHzDzqtGwMmLaY+awxROjJSaezu35VWrIr8XL/aJqpP5x0Nr+dQzShJ+xb9ZwgyJyU
         WM0w==
X-Forwarded-Encrypted: i=1; AJvYcCUQr8xLGwSlZjiHurOtXE055zoX7VU6t38cCjnS5FNb/JQS2M3JRrrF5x1f8x4EsPI1hi2WYT2NqPw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyf3BsmfwPZKWemkAdZ8RMenHjtDsxgBwDpwBL88DrjKJPwnZMu
	7ZeAeqhhgx9Os8+jTj986DYHhF6nAlIVN+7FuWrH7GC3ldbdbGDZy9QUKZEnNBslvQ==
X-Gm-Gg: AZuq6aLiPTm/F3ztVmK/dxeVb5SOWszJFX3p6xYsm4h1gLqItl4t9bZXZNNzT21bQDo
	JXzuXKrT/c7I5MowtxPWSVHqHt59Kp5OHQ1z6YpTsuS4gtAzAJYRafj16s2pNi2uGz4GKQVuQcz
	20HEDo5DArvYD73HwaGk0ZSIXjF7x55ukplUpwgOGcOFNyQOZzJipv8h73TYF5tzzJrto2hqy3U
	QL6cdOOOXr2MT8tNJwPRusjXMyh8mWLRJA90XARMbtjYufNhB680Nlr5MkDq8/Q0FwTNoXJf1E3
	jLwdeJ84TeESirZciu1JVch442oDWIif0yiD2+dZYfXDm+gQvSBRYfC2zwtnYSUgLUuCX7gST74
	/oP3pbDFp5d181QLw6rBOBEqB51hWSkYsdk1EoHAlOu6RcH0DJ1KbBAMP+PQaCt7JFIzsqDBi9i
	dSLHqRy3ueU8PTwiVRDsDo1NwOisoAQzs8j6dEKiUZMKTR8aBNUOQXZLiZojY7oawcUCiYm5RUi
	Fo=
X-Received: by 2002:a05:600c:4684:b0:480:6fbc:695f with SMTP id 5b1f17b1804b1-4830e9a5491mr34750495e9.32.1770203368943;
        Wed, 04 Feb 2026 03:09:28 -0800 (PST)
Message-ID: <309e4e0d-c2a3-4f56-ab6f-f648da313bb6@suse.com>
Date: Wed, 4 Feb 2026 12:09:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/riscv: add support for local guest TLB flush
 using HFENCE.VVMA
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <89f50ab2c1a1c79abea4db3a53393f974bb9a473.1770036584.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: <89f50ab2c1a1c79abea4db3a53393f974bb9a473.1770036584.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 02.02.2026 13:57, Oleksii Kurochko wrote:
> @@ -14,6 +15,12 @@ static inline void local_hfence_gvma_all(void)
>      asm volatile ( "hfence.gvma zero, zero" ::: "memory" );
>  }
>  
> +/* Flush VS-stage TLB for current hart. */
> +static inline void flush_tlb_guest_local(void)
> +{
> +    HFENCE_VVMA(0, 0);

For this use, ...

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/insn-defs.h
> @@ -0,0 +1,10 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef ASM_RISCV_INSN_DEFS_H
> +#define ASM_RISCV_INSN_DEFS_H
> +
> +#define HFENCE_VVMA(vaddr, asid) \
> +    asm volatile ("hfence.vvma %0, %1" \
> +                  :: "r"(vaddr), "r"(asid) : "memory")

... don't you want to use "rJ" as the constraints here?

It's further not quite clear to me whether the memory clobber is really
needed. Pretty certainly not for the use in context switch, but perhaps
for other future uses it's better to be there, even if only to be on the
safe side.

Also, style nit: There are a number of blanks missing in this asm().

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 12:26:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 12:26:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220457.1529138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnbxO-0002bi-Mt; Wed, 04 Feb 2026 12:26:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220457.1529138; Wed, 04 Feb 2026 12:26: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 1vnbxO-0002bb-Jr; Wed, 04 Feb 2026 12:26:06 +0000
Received: by outflank-mailman (input) for mailman id 1220457;
 Wed, 04 Feb 2026 12:26: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnbxM-0002bV-TN
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 12:26:04 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab803167-01c4-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 13:26:03 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA0PR03MB5627.namprd03.prod.outlook.com (2603:10b6:806:b2::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 12:26:00 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 12: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: ab803167-01c4-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=REsPZ1ZnV07KYb0/3UAhK9MV41qWDcxR3KrH7tE2n6RXw4bAIta/r1nc3CjLQZo4k/EsQp7mQKVVX0TFM0xiseh0GtPdrKtkqzN4crbuVeWEiZBUVA+7b6Vma+wwdp0ZzpsHdEESM0dMB2O/5VH6wkAaxmJoW+2RMCtD4snrJOcsX4L0C7ogt1h59cGsYiuaFgE15swILHrNQeDOG/skwBjpc4z+366Lo5iHHae23a385CidqeMv6JuxNKW6EjL9hkpFkloqHQTXDjCeXnubn1txYseLvlcxSj9gGmDGONycNiOu9qHURrLmCuNwYvtc+fXi+5dGMGD94DBLSWIzKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NplnYzZ49+HFc7kpIoeOhMDuB2MJKPO8C5g0pi9GxEQ=;
 b=vSAFcHvgaN89iUlIWQ6u70l1a775TFgCGBUSq2bXQdTytbmNaM+uxWiKjl4Cq0S2LH+R0vEFUqCyBM8LaFl/aoayVz8Lchlpvqmjuv59Z0oEPXRMUbFaNTtxi5ysblp3p8zI6yMdmAWUwGOkl+WF6kt1pSdj5+2O1P0+PVDk5vV/5X9n7w1K7Jk0MXhtAFoP8NkPARH0ws5NuS1KC0e1AEclWtI3PEul+0OgfPhF4azrcJ8E00TbYcn6fhlj14/hyljpkgflhqixuQTKy5Ur5aHGebI3KkOW0C2s9Vcox1J5aB5RiMMnOM7UWfqjFcnR+Z11obguo3ck12UNPDa+MA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NplnYzZ49+HFc7kpIoeOhMDuB2MJKPO8C5g0pi9GxEQ=;
 b=q5mWeJgBpDhSATvJaQExvpdiuLzlrUJpcFHHHTp/sw/iKmwvqyJpfBpgOA43etdRGdvXGgpZBafk1taIYM9aPWeRymMP6OJckFAGSVbmAcOTZwATDKYSfF9tgpOeSQrVmWRMKsmmE++G0jvG/k6HcSlM5FAZVBg8yaQKbmIpR60=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] x86/domain: adjust limitation on shared_info allocation below 4G
Date: Wed,  4 Feb 2026 13:25:53 +0100
Message-ID: <20260204122553.75711-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0008.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA0PR03MB5627:EE_
X-MS-Office365-Filtering-Correlation-Id: 2d1363b7-daef-455f-b472-08de63e88df0
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?VThrVGIrQVFncDF0RmovMndHVzA3MWNTclpid3NGOU51bTFTc2ZuT0lob1lK?=
 =?utf-8?B?TDJMV21IYnV5bzZpNlMybVo5STRPQXZlVmt6QU9tTGlrSFRuTDk0TFVZc3p6?=
 =?utf-8?B?dWxvdFQvRGY4MWJGekJhRGw0LzMrVGlKOTlOUVp4VUhReSthWDAyTGlOZHY5?=
 =?utf-8?B?TmlUaWNFTnFhN3dSSlFVMHBOVm9pQnA5S1lneGVINlZrUitjSS9IQ01UV0hX?=
 =?utf-8?B?QThYL01qV1R3R1NWMjdka0JSUEFSemVNUjA5QmsyM3czQmNHY2RFNGF1bms4?=
 =?utf-8?B?YVkxekNsbmNxN3NONlE2ZDJkL2s3SzYrVnNLSTA5RzN0TUVqTnZJc0JTY1I5?=
 =?utf-8?B?MGJZUCtmRmVyOXZwWXZUY2hzdXlVZEVlTkNGcWxWdkZsY3dBRVc2YVJrWGpp?=
 =?utf-8?B?L3NDN3Zrc2ZwVUxaZkNkTStEdVpRa3lQNHZsQzdGTU1mbHRVN3JqYmtmcWJu?=
 =?utf-8?B?UW5qSERSNDVEYVRlZk5wNGZrL05kQ0x4VkM0WjFzNGVxWVkvWFlwUnNxUVRa?=
 =?utf-8?B?U2JIZThNMlNlVkJnOFVqZGJzYmlOcEdFTCt1eDF2RHJvOVRoYWpUbExVajA2?=
 =?utf-8?B?QTgrRVIxeXltVkFWcURQSUF0bjFCMldEMkVydVh0R2VmN1FicGhrUUUzNk1G?=
 =?utf-8?B?Zkh6RzFGQlpPT09hcUFkOWhSMXRKdWVGd1ZFRkVrNm5QbEQ5VFBqMnA0OSs5?=
 =?utf-8?B?eGo2ZWxuL0Y1V3ZoQlNBRXBhamdhVlliWWNidVMzYW9RM0dtRlE3bjNzUmtY?=
 =?utf-8?B?MWJoOWZRRklMS1hKczRrQzVXc0t5eEM1SE5nRm9SN2Z1Q3h4K1BCZEpZeThn?=
 =?utf-8?B?TjYwRE5pbzd6UjFUTVNPQWZQQ2tFeHBsL0ZQZ1IxeW0xNjhBMVY5bUNEM1dK?=
 =?utf-8?B?VHV2MHg5dEFza1RUbFJPUEhWbVNyWExhUEhTTlh5TDlpZXFGOTFheHhiMHlO?=
 =?utf-8?B?RzM2MXpHa1hmSVo4VERUV1ZUc01HNTdxejM0ZE1mdUxHRmxoMjBtMnRlRXFh?=
 =?utf-8?B?TWUyQTNZb1o3cHpuQkFKcW12M3JDd2lkSE9ENmQ0STlXaktBdGthTzR4ZnI5?=
 =?utf-8?B?KzZWVkkvcldUUTQ1N0NsU1AvZnYrN0owOE90VWlHeE11Vk1vWjhpck9UV1dX?=
 =?utf-8?B?RTMxTzNJK0ZGZU5xKzhBRXNjZU5mS3krenhBZDJVeDltdWg5NzE3R1V1ZkdW?=
 =?utf-8?B?ODBOK3Q2enN5eEZTRGJiUlpaTXRITmNBK3FCVlc3ajdETnVjaGVha2lrUTM4?=
 =?utf-8?B?SzhReVFKZm9sR0dUayswc0VvUU9qandHMlNvZXhvaHRYZ2hRODZZSk5uZzhE?=
 =?utf-8?B?ZmFodXB4QTJMY08rQVB4TWh2RUlLajU0UVNKb0Y1YXdMZEpPVmlQT2hMbDhY?=
 =?utf-8?B?bjcvd3ovUVJPUVpWcUdmankzSFNqeVk1MHc1eTJTN0U0OW9peFYzVS9KSXZU?=
 =?utf-8?B?VUQ0dGpWOHRET1ppYTZ0VDJZY2pSRXQzWkdQdzJPWWdqK0hSSlFpRS9zTm5L?=
 =?utf-8?B?SFZFY0x5NlorYlYxMVVTQ3hFdjBNaTJtUHIvUEJRZlRFS3RvRGlzeERueTQw?=
 =?utf-8?B?MFM3RjFNTlgrQnduM2E1WTB0eEtFTzFJMjlEaFZSWEpSa0ZpMW9wVlRLaUNV?=
 =?utf-8?B?TmhXazVqbVdkUFUyV0x3RnZUNHlpNEE2VU1HV0xHa1hJZWhSdjdmNHZyem0z?=
 =?utf-8?B?Ti9yaDdLWm43azFnR2FmcGl4K01rMnBpUngrSW8vVmxrTGhJRy9EMHRkSHhC?=
 =?utf-8?B?OUFvZWlMMk5oMWI5RXNGRWp4ZjY0MFpoeVBzQ3NtWGpzZXlHZ0J4Z0dEbnUx?=
 =?utf-8?B?Z1QxSHhjTDNQR0hBaTM4RzEzaHlOam1IU0F5QTNQV3lSU0ZwUDNIY1AwRXlM?=
 =?utf-8?B?eTZMTnMvNUY3RUdPQVVUSFNPeUR1Rm9GWCtEMjYyOTBEYmVQU2FOYm5aK3di?=
 =?utf-8?B?ODdzNGFhNFJkbXloRFdCMmh4ZktITWhuL2xTVmFSb2dFL1pzL3BmeldUUHE1?=
 =?utf-8?B?bEhMOWxTVXdkMTZWVXplQmZIYmU4RGo3UW40eUJ5eUpCTUR0bWRNakdRMVdZ?=
 =?utf-8?B?RVU4VEZFOXc0eGhqaTZnRzdMRGlBblVBRzFpa3Z3LzZacjlLeGJ3bzZialBk?=
 =?utf-8?Q?UBkE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a2RwWksrdmt6MDBkamNNUnJKdTUwcTZTQzNpZUt1S00xeUhtQWpWVk5ESGZC?=
 =?utf-8?B?Z1c5L3c2T25DZEFWNXpsUlpOOEVzdStWKzRrL1NJekRDZVduSVptZVJuRXBk?=
 =?utf-8?B?RDNRdzUzcGlTbWQ5b1Z1UDAzY0dpNGVsRHBSend4bkFGcHJEWVB3OEYrTDNq?=
 =?utf-8?B?N3lDRUxRZzFQU3Q1TThiMURsREdRbXlseFN5dTg2UG5TcUlLMlZOUHFyODhF?=
 =?utf-8?B?TjlVMGJDWmhrSDQ3aXdCaWpKd2E2MFMrUlhzWlRzWEdhUkNMS1g5QXduRjdJ?=
 =?utf-8?B?NHFYZDBXNU9DNTc3TDdLSFlIdVludTJybUp0SHpVUTZVQTdHVml3QzBBUk94?=
 =?utf-8?B?OTU5dDhQNDlXZDFVeUhWaGkwaWNtWHh6RUZLVXc1UlU1TkZHWTIrY2F2N3BT?=
 =?utf-8?B?VlVxZm5MeUFZVFVUVnNYRFZ3SlF1VmYwdlU4a0hHV1hRNU1MYUE0UkxPQ0R0?=
 =?utf-8?B?RVJuODg4WUZiNGdMajYreVVBY1JDcHk5T05lNDFZMDZjTHRyMlp5ZWZ4WkdV?=
 =?utf-8?B?ajd2MDBPazNKTFJQQWsxakUvclUxVGNTWExhaWhGT25velljeTNuc25MUVQ2?=
 =?utf-8?B?KzByeDNhQ2xQcUNZZXF1WVgzUVBUL3NNM2dYNmV2RW53Ylc2NzErbkdjVlht?=
 =?utf-8?B?SEtMT0VBNmNXMWw1QXVmNnNEQ0tKWTlvMTJhVUdSRFJLdmtBSHptOVJnVUNF?=
 =?utf-8?B?dUxWUXFJR2hzV0k4Q09TL2dZeUR3RkhBQ2gvYVlPdWFKNlY4STBBMTlZMllR?=
 =?utf-8?B?VjFiYWo2anZsSzR2N2NWU1p0eW1RQllZbkxLT2JoRWZ1bWt4ejQ5ZDNRNFBF?=
 =?utf-8?B?ZlgrV2YzNWtQVFJGWFZWS2FrTE1DeW5OZ01wL1NIbzRIdkdxVTZVRkpvL2tZ?=
 =?utf-8?B?YnU2VUFoYjNsS2QvSzAraHhpdXd1TnlkWlgwNHBtZ2hTalJaZS94Vi8rTnA3?=
 =?utf-8?B?dTh0anF2TktmYXB2VFkzdG4xR0dVVTlQbnVvRFlPeEl5ZUJvNExucmxLOHV3?=
 =?utf-8?B?R2t4eGtYQ29pNEZKRHoxUDV5dXFKT0JlSGJOZTZ4R3NpNE5SREJqaVR5aUdK?=
 =?utf-8?B?Z2ZrZ2V2UVRmb2dUZzhCWlRLQmJDWmF4VzdzNVBwTWZUcUk4ZUxpYkUyRTQy?=
 =?utf-8?B?THIzdkxPSXNUNWoxbVRCVEU2TWo1NVJaamRNNDViam9PaDB5eExRMlNqbDdN?=
 =?utf-8?B?bWV6VnIxZDh4NERlMzE2V0lFNGU4TlVobVl0ZEJLMCsrSnFQbUNPbWp4V2Mw?=
 =?utf-8?B?OW12OFZrUTF3V2FhSkw3RnRoRG9jY053a1diUVlUajhvT3ZTb0lqWFJDNnUv?=
 =?utf-8?B?NE5lZUhJTUducEVKK0tkRXJ6WkI1TjRTbVp0K010L054YU45Vy9DSzMycVpO?=
 =?utf-8?B?cXk2RWMrc1BzV1FlZGh6dVVYOUhIdnFWcnBXMXhqZjY2Q1IzelpjTEhrb0E2?=
 =?utf-8?B?QVlGYUJLeHVzK3N5aHU1ZDk1a1VaYkZ1a3FGUkZkNE8xMHhXckk1SlJqVm4r?=
 =?utf-8?B?T0pLdmx1cXpyZGFCOFE4SzRzbFEwZmJjQU9vNnEwYS9iM21lTmFWaHlsQ0dr?=
 =?utf-8?B?M0Z3Q3dHTjdidVg4blZOZVdLLzJMT2JBNXhVSE1RR2pCZFMwelpKb2VuRHc2?=
 =?utf-8?B?WWlOVitiL2pMQnFjOWViZGlEc0tqS3VyOUtuelYvcXVTOHJjOWpwSEVPU2FU?=
 =?utf-8?B?RDhKU0kzaFlZaXQ4cFMrS1BnbGxSbHVvNTg3ay9MaHE4aUNXdlErbG1oUWNT?=
 =?utf-8?B?TGlZZ0lFWGo4dVJLNk5sMkVpRFlVcXpJd0orWDVzd21nVy90bTY0SmVaZER3?=
 =?utf-8?B?NnpjZ0U2Kzd4OUtKZ0t3R3V5Z2taYnk1ZVNrTFVldktPdFVQTXJ4aTJZZXQ4?=
 =?utf-8?B?MWRqOVdtV1E2RmtrN29OYnUrb3BaRFE5QkNIZlRYU1FSbElUdEM0a2N0UTVN?=
 =?utf-8?B?VUdxQUVxWVkrdE9KT3VTZmdrekZidzdhUGNEem1RdVhTZjZXNnp5MUM5UDBN?=
 =?utf-8?B?VFFycWNQZ3ludUd3UnBPOXl4QXpiamoxOERacGZ2TE83WlQ5aVpnR2RBYU9h?=
 =?utf-8?B?WGZkUjI5ZGI1a1k0OURkM2ZVaTZGbkNRSmkxSkxWaTNaTmEwbTNrSnJiQ1hM?=
 =?utf-8?B?Rk1pYndBYjlQSll5VGVsSTFFc1hVSTZUTWFHOEFEbmVJTXFKYnI1bC9IS0V6?=
 =?utf-8?B?cU5weTJsbTVvQ3RPS0VmTDlJZkF4WjJoOXJ6T0N1NjVMaUhRODBqQVpidHlQ?=
 =?utf-8?B?cjU1bFNlaTZjNXNkZm1PaW1LajlUQUh4aHY4SG5IRHVIQzMxb3QrUUVWRnhv?=
 =?utf-8?B?VEdaaWF2WmtEdXZVWjBWeXZUTk5uekJldlpiQTRmeWpocXFPb29HZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d1363b7-daef-455f-b472-08de63e88df0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 12:25:59.9067
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: i58PP+pzbkr5n6HXqzOnUtd3OpoTM+rpvbKNqQg/Yn67vzLgXjzVSXQh4XRprotJrPt81iMc80wOP5cfRAZyRA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5627

The limitation of shared_info being allocated below 4G to fit in the
start_info field only applies to 32bit PV guests.  On 64bit PV guests the
start_info field is 64bits wide.  HVM guests don't use start_info at all.

Drop the restriction in arch_domain_create() and instead free and
re-allocate the page from memory below 4G if needed in switch_compat(),
when the guest is set to run in 32bit PV mode.

Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c    |  7 ++++---
 xen/arch/x86/pv/domain.c | 20 ++++++++++++++++++++
 xen/common/domain.c      |  2 +-
 xen/include/xen/domain.h |  2 ++
 4 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index edb76366b596..3e701f2146c9 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -882,10 +882,11 @@ int arch_domain_create(struct domain *d,
         goto fail;
 
     /*
-     * The shared_info machine address must fit in a 32-bit field within a
-     * 32-bit guest's start_info structure. Hence we specify MEMF_bits(32).
+     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
+     * field within the guest's start_info structure.  We might need to free
+     * and allocate later if the guest turns out to be a 32bit PV one.
      */
-    if ( (d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32))) == NULL )
+    if ( (d->shared_info = alloc_xenheap_page()) == NULL )
         goto fail;
 
     clear_page(d->shared_info);
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 01499582d2d6..8ced3d70a52f 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -247,6 +247,26 @@ int switch_compat(struct domain *d)
     d->arch.has_32bit_shinfo = 1;
     d->arch.pv.is_32bit = true;
 
+    /* Check whether the shared_info page needs to be moved below 4G. */
+    if ( virt_to_maddr(d->shared_info) >> 32 )
+    {
+        shared_info_t *prev = d->shared_info;
+
+        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
+        if ( !d->shared_info )
+        {
+            d->shared_info = prev;
+            rc = -ENOMEM;
+            goto undo_and_fail;
+        }
+        put_page(virt_to_page(prev));
+        clear_page(d->shared_info);
+        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
+        /* Ensure all references to the old shared_info page are dropped. */
+        for_each_vcpu( d, v )
+            vcpu_info_reset(v);
+    }
+
     for_each_vcpu( d, v )
     {
         if ( (rc = setup_compat_arg_xlat(v)) ||
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 376351b528c9..11fed22455b9 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -305,7 +305,7 @@ static void vcpu_check_shutdown(struct vcpu *v)
     spin_unlock(&d->shutdown_lock);
 }
 
-static void vcpu_info_reset(struct vcpu *v)
+void vcpu_info_reset(struct vcpu *v)
 {
     struct domain *d = v->domain;
 
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 273717c31b3f..52cdf012c491 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -83,6 +83,8 @@ void cf_check free_pirq_struct(void *ptr);
 int  arch_vcpu_create(struct vcpu *v);
 void arch_vcpu_destroy(struct vcpu *v);
 
+void vcpu_info_reset(struct vcpu *v);
+
 int map_guest_area(struct vcpu *v, paddr_t gaddr, unsigned int size,
                    struct guest_area *area,
                    void (*populate)(void *dst, struct vcpu *v));
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 12:42:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 12:42:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220468.1529150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vncDe-0005k8-2e; Wed, 04 Feb 2026 12:42:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220468.1529150; Wed, 04 Feb 2026 12:42: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 1vncDd-0005k1-Tv; Wed, 04 Feb 2026 12:42:53 +0000
Received: by outflank-mailman (input) for mailman id 1220468;
 Wed, 04 Feb 2026 12:42: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=ncOi=AI=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vncDc-0005ju-Bd
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 12:42:52 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0322cd78-01c7-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 13:42:49 +0100 (CET)
Received: from BL1PR13CA0354.namprd13.prod.outlook.com (2603:10b6:208:2c6::29)
 by BY5PR12MB4052.namprd12.prod.outlook.com (2603:10b6:a03:209::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Wed, 4 Feb
 2026 12:42:44 +0000
Received: from BL6PEPF00020E63.namprd04.prod.outlook.com
 (2603:10b6:208:2c6:cafe::5e) by BL1PR13CA0354.outlook.office365.com
 (2603:10b6:208:2c6::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.13 via Frontend Transport; Wed,
 4 Feb 2026 12:42:47 +0000
Received: from satlexmb08.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_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Wed, 4 Feb 2026 12:42:43 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 06:42:43 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 04:42:42 -0800
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17
 via Frontend Transport; Wed, 4 Feb 2026 06:42:42 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0322cd78-01c7-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gExFv5VhnboIcUN2YJVIyb7C6H4NkjsT5wCUmKZuB5vwy9Q1nkv0rLkaa1dR5sRewiZIHR1qNfy+jpf/vyn24qdRVdObkXuyG/R1KyL9H37UIReqFuCsIsHjTFtqjGW5Il+aqSewpdzw4UF9RLKOtbCAWApgDgnQAzCcyhtNBa1WHSS5x+ENZ1jCQUiqDXOgurDhJmTB1DCVz0N76YSIxUb0pVnplSF777CO/xgJ9WOOEnbtBiu7chUzWo4aMVzaFY6wAhMDBxpzE0hopVHvc2BcxgGory2SIPoS8de2tZON5yR+2zJmvkStckZXifbuk0hxHt+fa28VZ/oCE3N8eQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VWMO57uU2Fq3Clg6mGQDBBnMxZ+u25eXCEE6rCrPYcY=;
 b=iFRwvL40LOjGq+gvQBSf4w06OzVmSwmc+XPFEeAgG02/Pvq+xTThTvpK9EHCjEC+ALy7DYSOm4xt/x83ayeOmqcHL1EYb0Il5uJ6Glx9wLzuWAZ1/GpVn4n0En/Wk8gSelHri15JcUuwwKE+wfNx2FX57/HsIGwts3VdlKHlSLhnfJcrWVcww/VpIboaGvuFyRcLMbkxJrpluq8+XUF5FVZjBjAWj70WBH4sZ/ddnqKgLkIKS4NkYVRTZeXOg6LzrZCyjtdscoe4S0B186/tOTOqCOhoAFq1BaziXeiEP8whHL2KYCDJiLjWFxjTCKBraNsgnOlf7gkoIC1q2TuPtA==
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=VWMO57uU2Fq3Clg6mGQDBBnMxZ+u25eXCEE6rCrPYcY=;
 b=e2Ylk0ENntYd3zlEtVl9+xK7f3wVPGBn7TQrxv+SN2wYsXgJz7fS/j6K9bPueIQtOGlTd+X1yVzvvahnpC6aQu0c1SLyOCHkDqKnU72ZZubtcNJmG2VMdXWEtIEERY1pWXQvuyL3zfe/VsWJqAsklCCYzCa8ltJJ4VHt+kmXn4w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>
Subject: [PATCH] static-memory: Fix incorrect tot_size calculation
Date: Wed, 4 Feb 2026 13:42:35 +0100
Message-ID: <20260204124235.134773-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00020E63:EE_|BY5PR12MB4052:EE_
X-MS-Office365-Filtering-Correlation-Id: 37be08c1-30ac-4ba0-c3fa-08de63eae46b
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?mq7IpQe6zmR1LCDr238RzRmfgSoGBbg92S83IppWLjNDzqmsM9sLWs30Dqpb?=
 =?us-ascii?Q?UNUPbQllWx6jr8IbUkUydRkIkWEbPdcEo4yYHmN64rdCrYCEefEtm654iXgT?=
 =?us-ascii?Q?Bq1bD1XWGcV28ZtxdqvMfvpNE5hPyn0srMaRFO4SmKtUztYaiBm66W1dfIsk?=
 =?us-ascii?Q?XVbTZfMbVnMUE47UFxZZ0OstCbnKdku2dU4aLAZMiwQ9HI2Pf0S3nkwV3RcF?=
 =?us-ascii?Q?DKua5kG74W9SHJ8wBeySgmMonnVmZnSB8zqwUJFluV5HMC7gIrsaeKag33sw?=
 =?us-ascii?Q?mHCCjNCqN9Ty7LkNd+hw8DZMW2YYFd/7J4WA74bRl0l27IhPdO3htYrXkXEC?=
 =?us-ascii?Q?CEbcu/ipJ6McDh5DV62i/Pm0LAtccud1/OnRbt+txOMFTAVo18d1JWQ9wapX?=
 =?us-ascii?Q?yreTDofG+QfkhEy6hHFx7BUjvjaLO7bZ+GWu9VgI3CjpY2yphoEfSnPWpoZ5?=
 =?us-ascii?Q?k7qXjbQ3YixEzgQzMWI3LtIm0a81Hnh1csbefnYtccX7FOLqXrsCFLZPxRtS?=
 =?us-ascii?Q?faGONsUooHtH3lPNI4aHpF7Wu1vsJHecVLNCfedrJuTD+gcE5rI/B1eJvwdd?=
 =?us-ascii?Q?M7xULAyasxuAhB6jWWLOSy4uD9v8m3JOd/hV1UONqFrznoplmbDi6Qj/h8jP?=
 =?us-ascii?Q?Thj8SX7Qpp7/qrtCfQ555zs3xwnZMiy2Qwxz2W2rPsg4PrCagGFDTbAPS0Gg?=
 =?us-ascii?Q?7EbhMaFXXy3anXcgHKPuzImLj7EUw7f8wjo1XC48p8mjfZpwu2cx1uq5QiWC?=
 =?us-ascii?Q?BERNZgQVHPQSvcrFV3JBUKQ3wkHkdyhWRSB84lYYoe/9I2gO07+9NfzVHiAk?=
 =?us-ascii?Q?xgbI9YWPn7iAdVZBoqPJ4PIJKpAgL0fPpy7o6iSwjFkzzVxNyb8rizLFChWA?=
 =?us-ascii?Q?GtWs+eqRvhlQZh6Gy2k3UWEhhrgGImXHGzyaPwKBvHDloYBBZsX2bIJs5J4l?=
 =?us-ascii?Q?4z8FfzVrkU3iAF2DIwqDm018GlkUe//a5gisNai/zI/M4pFvneFGn/imbjLo?=
 =?us-ascii?Q?Zzz6WMqFkzFiXltahZDuyAizAdU1kqQWPygr3BHo+MhYfmvaMxpwpIK+YDqG?=
 =?us-ascii?Q?+voqDsst/fmAx7USl844LBIm6Yru7iLeXUBMrCFUgkNxzn/r1BSnwMR4gnn0?=
 =?us-ascii?Q?Si/KXUW8Duiog4687efZ8gSLbRgC3Uy+/OAwRm/7ad6tTVloiuxWpg3M4RQI?=
 =?us-ascii?Q?ZWJ4LAKVvSzLXtxYNu5LrEQ0IjpKyq9xmsfyxniodPngj66wz3m52F9N7jbc?=
 =?us-ascii?Q?OxarHnHMcW83EnalrC2dgjBgx+pBJUlz1s4BsnGt6TnekjPQ8yVhGfkfHuj4?=
 =?us-ascii?Q?K5wGLZsJxW/zJiis/bsw9RoDxl7LJR3C7en61ACLAbOcAdLW8z0FY7ZjxTjP?=
 =?us-ascii?Q?iP2kgQWjQ0Cg1OiOngEGnLW0kc92tSqMzSthlSfJHFXYLgdSxXej3ykg+1B5?=
 =?us-ascii?Q?+T/GELKk2hl9KnIvlTaUHMcN2YArFoVIwck3YYnvcDzCu2THz1Dmp2ajvJ8O?=
 =?us-ascii?Q?287tIJaphjSxzuZqXJiumnxLr06nK9Qt0QrATo619TUTp2EHdT7p46IH3gpj?=
 =?us-ascii?Q?lYdBaNq7XBapcxfl2qKYq/pBFwspYCZVCIT6E4NyhV1jqvYriZL6gTUKnuu2?=
 =?us-ascii?Q?VIEXuCh9sIGZEN7DryDJVK/xUOkOouLpNdSz9JyKWbc3FdBGcPV6o8k6qZWy?=
 =?us-ascii?Q?iGzm7g=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	M/Zpw0dMmdue9CEsICKlfCKBpnEyB5jzIiWKUYv0H4DdruouzaoSP6a1JZ+YA1JNCugSHV096yH0ROZdlhEXXix1v7eXlvCSOhAOuSBp7Uaq40dmNrjcaVNuMuMciG+XCNz+74XkAqcygIJW1JVCfIG+n2my7rucBZTySmAEJZOP+90PxSG52p5wefOj7p8jC1SGxLSdAF80pjJwbDvHsOdwGxFR5W98rqtqvMa5hOGEnI3chYu/im8/zwv8aQCmTqqVD6lQbzI7MdpGKpnq03oORsud0EgEEX6quKzREgwyR1sZk287H8+kcwlHGa5Kp1C6SfFBumEx7L7b+ld6IBhcnEbt+LfRxwnL4l2Ycmd7ucx/IUpWhxc4M3rrJiV483rGMPF1FZPboEC3HGLiO8JLArVj35u5E+fVsUcIagW5ADaHxtcALAlAIsa/eu41
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 12:42:43.8577
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 37be08c1-30ac-4ba0-c3fa-08de63eae46b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00020E63.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4052

When a physical memory bank spans multiple guest RAM banks, the variable
psize is modified inside the allocation loop, but the modified value
(instead of the original bank size) is added to tot_size. This causes an
incorrect total size calculation leading to false panic. Move the
tot_size calculation right after acquire_static_memory_bank().

Fixes: 487975df53b5 ("xen/arm: introduce allocate_static_memory")
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/common/device-tree/static-memory.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/common/device-tree/static-memory.c b/xen/common/device-tree/static-memory.c
index 0774d0680604..ffbc12aa24df 100644
--- a/xen/common/device-tree/static-memory.c
+++ b/xen/common/device-tree/static-memory.c
@@ -118,6 +118,8 @@ void __init allocate_static_memory(struct domain *d, struct kernel_info *kinfo,
         if ( mfn_eq(smfn, INVALID_MFN) )
             goto fail;
 
+        tot_size += psize;
+
         printk(XENLOG_INFO "%pd: STATIC BANK[%u] %#"PRIpaddr"-%#"PRIpaddr"\n",
                d, bank, pbase, pbase + psize);
 
@@ -158,8 +160,6 @@ void __init allocate_static_memory(struct domain *d, struct kernel_info *kinfo,
                 mem->bank[gbank].start = rambase[gbank];
             }
         }
-
-        tot_size += psize;
     }
 
     mem->nr_banks = ++gbank;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 12:55:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 12:55:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220478.1529159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vncPL-0007g1-2B; Wed, 04 Feb 2026 12:54:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220478.1529159; Wed, 04 Feb 2026 12: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 1vncPK-0007fu-Ul; Wed, 04 Feb 2026 12:54:58 +0000
Received: by outflank-mailman (input) for mailman id 1220478;
 Wed, 04 Feb 2026 12:54: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=GHlk=AI=tklengyel.com=tamas@srs-se1.protection.inumbo.net>)
 id 1vncPI-0007fo-Tk
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 12:54:56 +0000
Received: from sender4-pp-g123.zoho.com (sender4-pp-g123.zoho.com
 [136.143.188.123]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2de5394-01c8-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 13:54:54 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1770209688392360.68451692466635;
 Wed, 4 Feb 2026 04:54:48 -0800 (PST)
Received: by mail-oi1-f178.google.com with SMTP id
 5614622812f47-45efd53148eso2434338b6e.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 04:54:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2de5394-01c8-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770209691; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Rny4+wg1pUYwu2LpW65W8K2tR4xRbprWsqJmi/rT5y7mfp7OolgrdhBtZAGfjeurUoV9U42XtESbccDsJDRtls8FCWeFLfQTmlpt2R3G0EJxTTdnyE3yIX5Tz1U9zHn8hdyl1KkR0CtwSpFuB282dqNoSMYKaRQbquiqMOJ46zQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1770209691; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=MNUOf9vNNaeBu14G0olPGELpsi7Ci97VD9H/HBy5oro=; 
	b=SXJnrgwTfe2+/K/PWG2CkPeKKqIU7S2Ay9XNMAe3n6xaAJraALNhI6LiJpFeRed+a3j2ZvZH5b/6ZIUv0Tp59yC4IpYM5xOjZ3ADc/DUvMWT+fP955gTU6vFV0A308PR3FBfH1rt0V1EULlocxuZEAGCINW7uxohO3eCq8hluvw=
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=1770209691;
	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:Message-Id:Reply-To;
	bh=MNUOf9vNNaeBu14G0olPGELpsi7Ci97VD9H/HBy5oro=;
	b=cN1PE3EOp0etRF+LkElXAwP5XI2cMi2+IOHGmWofkYkPqjvV2NPtcoM6DajV1NOY
	5oZJ0XrfwZtIUBDPX4DNU/RAFAUzRsymfUK0w3X6ZuWGDqggvON2dOIqSE2xYHJLdIK
	LupmjXRqgFJOIKuU0mW1uxTAPGNv3cgi6gtz71V0=
X-Forwarded-Encrypted: i=1; AJvYcCUfNZZjiHd0bZjK6yeVrXlDOMDKvehiUwitACexRObHBL2tKDbGeINPdB6QUGylNs0vwCMyNmIwX7k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy0uW1kI7OAp5jraZDPamYfDhZDVbMPZHdNGUJC0k4Y4tfU4vL9
	VQ4eG6Za2lmJH58HRGgLPTN2d1rsceCYeFAQcwRCyuLgoxoA9H5oQl6uVWMuKVWY2jmAT1DgcK3
	ufpCGBMSgN4bRZJraHDI0vMqFKC0RsQs=
X-Received: by 2002:a05:6808:bd6:b0:450:275b:d942 with SMTP id
 5614622812f47-462d586fa49mr1369842b6e.10.1770209687045; Wed, 04 Feb 2026
 04:54:47 -0800 (PST)
MIME-Version: 1.0
References: <20251119193120.1011448-1-grygorii_strashko@epam.com> <90ac9206-10ce-4c46-83e3-82ac8ef0d152@suse.com>
In-Reply-To: <90ac9206-10ce-4c46-83e3-82ac8ef0d152@suse.com>
From: Tamas K Lengyel <tamas@tklengyel.com>
Date: Wed, 4 Feb 2026 07:54:12 -0500
X-Gmail-Original-Message-ID: <CABfawhk21yBRwGoj423PpLEe=exGzx9bBsiHMf0LbuZH+94MVQ@mail.gmail.com>
X-Gm-Features: AZwV_QhQudzW0WS1dzgSGtPjV6PsQSXMjUpapeeeWRwe2XEVU0TzgGUK2ERz5QI
Message-ID: <CABfawhk21yBRwGoj423PpLEe=exGzx9bBsiHMf0LbuZH+94MVQ@mail.gmail.com>
Subject: Re: Ping: [XEN][PATCH v4] xen: make VMTRACE support optional
To: Jan Beulich <jbeulich@suse.com>
Cc: Grygorii Strashko <grygorii_strashko@epam.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>, 
	Alexandru Isaila <aisaila@bitdefender.com>, Petre Pircalabu <ppircalabu@bitdefender.com>, 
	Teddy Astie <teddy.astie@vates.tech>, Penny Zheng <Penny.Zheng@amd.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Content-Type: multipart/alternative; boundary="000000000000930e360649ff0f43"

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

On Tue, Dec 2, 2025 at 5:57=E2=80=AFAM Jan Beulich <jbeulich@suse.com> wrot=
e:

> On 19.11.2025 20:31, Grygorii Strashko wrote:
> > From: Grygorii Strashko <grygorii_strashko@epam.com>
> >
> > The VMTRACE feature is depends on Platform/Arch HW and code support and
> now
> > can be used only on x86 HVM with Intel VT-x (INTEL_VMX) enabled.
> > This makes VMTRACE support optional by introducing HVM Kconfig option:
> > - CONFIG_VMTRACE to enable/disable the feature.
> >
> > Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>


Acked-by: Tamas K Lengyel <tamas@tklengyel.com>

--000000000000930e360649ff0f43
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote g=
mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Dec 2, =
2025 at 5:57=E2=80=AFAM Jan Beulich &lt;<a href=3D"mailto:jbeulich@suse.com=
">jbeulich@suse.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204)=
;padding-left:1ex">On 19.11.2025 20:31, Grygorii Strashko wrote:<br>
&gt; From: Grygorii Strashko &lt;<a href=3D"mailto:grygorii_strashko@epam.c=
om" target=3D"_blank">grygorii_strashko@epam.com</a>&gt;<br>
&gt; <br>
&gt; The VMTRACE feature is depends on Platform/Arch HW and code support an=
d now<br>
&gt; can be used only on x86 HVM with Intel VT-x (INTEL_VMX) enabled.<br>
&gt; This makes VMTRACE support optional by introducing HVM Kconfig option:=
<br>
&gt; - CONFIG_VMTRACE to enable/disable the feature.<br>
&gt; <br>
&gt; Signed-off-by: Grygorii Strashko &lt;<a href=3D"mailto:grygorii_strash=
ko@epam.com" target=3D"_blank">grygorii_strashko@epam.com</a>&gt;</blockquo=
te><div><br></div><div>Acked-by: Tamas K Lengyel &lt;<a href=3D"mailto:tama=
s@tklengyel.com">tamas@tklengyel.com</a>&gt;=C2=A0</div></div></div>

--000000000000930e360649ff0f43--


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 12:58:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 12:58:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220485.1529168 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vncTA-00006h-Jn; Wed, 04 Feb 2026 12:58:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220485.1529168; Wed, 04 Feb 2026 12:58: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 1vncTA-00006a-Gx; Wed, 04 Feb 2026 12:58:56 +0000
Received: by outflank-mailman (input) for mailman id 1220485;
 Wed, 04 Feb 2026 12:58: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=AdGc=AI=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vncT9-00006U-OL
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 12:58:55 +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 40031405-01c9-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 13:58:50 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by AS2PR03MB10193.eurprd03.prod.outlook.com
 (2603:10a6:20b:5fd::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 12:58:47 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9587.010; Wed, 4 Feb 2026
 12:58: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: 40031405-01c9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FzGlcKM6qkajc3qbuYJKLLJo1daCc0w4gxYKP7gpu3ViArIL5Gs4dLeXggOmOGkPPOuzX/udVoeMn0l3o7QfBpBm+nIuOrXPERyWmuS990fCNS73IvQy4eckrYwcxbyXO3CchGCi+6QbJFmexmicqDwIORTu6irVAnZB4cdxUdu79o7praNDL/6nuUcWzINkXAcZR0Ki79ui2e7ZLPp3N7VtORHHAc26uyUoZvzUfWUvU60bExvBNRIDDcBbfMo6+/cEgywmZkgAr21VT6cEq6G+d2fuOzUL1z40k27BiY6HEQDysFRPXCKvlrDEXXvjecNOtzXLexL+OTwNF08I3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PSINJfpvZh3l4Rh6jlfvjN1nlUg1hVFCG71RUub+cV4=;
 b=b1SHbNA6x0CTVcHEvFinxcErg7H7P5vdKQerHwxC7A3tJda1AE+p376rPH6zgl7FeGELu2CFNdZuOhtyrm0DocIYCfQZ9/QUxU9xc18Cr70LChW9zOYLfK4f1rvNWj/lCkcvwgKPtV3Yxjycn8gx9q7ljWGN5PAwwdMH2gEdRhJD0ux7rrgiL+j+ut14TZ/W7TdrpyNejGM056Q7MUJGA/n2faJAAKdrSDd0N09OiH0R1PbZzTJZvlleZhVu29b2qgV/dGCMB+X3/FK0o8duVDW8ZtfVEiANrzZUsHqv4cqrWXkCmp7QiLjPsnOX3y4ydWX2fOAhVvwyKPVeBvWfOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PSINJfpvZh3l4Rh6jlfvjN1nlUg1hVFCG71RUub+cV4=;
 b=UhJ31HQb/+Kc8rDXEoP7+BYpiHCe+aFvbV/qcNcpDEa/G/1lyy2RiQN2AceWtYBV32pE9wYv2zwnjrZ4ZHQnChPj03g7DCca2lj8M5s/5/9W7POoHIPgkfiANhRUGpZCsR2FbcqtkWeRWeGVb9ff+D14+g3bWNiP54/CG6c+o0VOWWVNQEOJCqQBgG3xywd7wp1mxOf/t+1U+r3fy3/V0n5lVyCu86Z+7/TtFAA6Wvm4sjQ7EQo6gja/GE9Vdxm5hkK41dHY7OZVs3TYTmz8cVcbKCfQMXJp9anFBMdy0nff57Hv0nDeoGuYggG3VYHR7c+P873bvZHTvYOr8Mv5Rg==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 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>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v5 0/5] Implement CPU hotplug on Arm
Thread-Topic: [PATCH v5 0/5] Implement CPU hotplug on Arm
Thread-Index: AQHchGj6Bf8iLxj9KkKeGyrpjQwglLVxTT0AgAFV7wA=
Date: Wed, 4 Feb 2026 12:58:46 +0000
Message-ID: <e653b557-7423-4bd1-8e84-a72ecad5d40f@epam.com>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
 <51B975F5-C0EB-43AE-97FD-CC937DBC593B@arm.com>
In-Reply-To: <51B975F5-C0EB-43AE-97FD-CC937DBC593B@arm.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_|AS2PR03MB10193:EE_
x-ms-office365-filtering-correlation-id: f7410853-4243-4b9f-6619-08de63ed2282
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?bHN6UVk3RXpPM3dKd1pqVE4rMmE0WXRGTVJrTWhSUHJOL2NHc0JYQWJ4RHNP?=
 =?utf-8?B?TFY5dnlUVERMcXFvM1J5c0lYLzJ4QUlRWjBkNG13R2lRc1JEMDhQQzRWY1Vm?=
 =?utf-8?B?UVByRVFuVHRyaTlGQXZVYjB3M0xVdDhJQ096cUdJUWZsTlpQRE1hLzNwVzJS?=
 =?utf-8?B?ektRTHZ6NnZYZWE0ZFJZR0VTMHFOb2JZQWgxZDA4emVlQk11bDM2cmZHRFhi?=
 =?utf-8?B?RjhHcU1zTTVRSngwUFRuY05UOFVUZlJLc1Z4Qko5RlZLWlFyWGxzZ2xYOU5O?=
 =?utf-8?B?UWRHMjZ6ZTVFQWZOUGdvSHJNRk1JeDIxeklYTXEzWWEvcEd0d2N6ekE2YnZE?=
 =?utf-8?B?TnY2cFhUbHVqdTQzL3V6UU5mdHk4bC81M21mSFZHaHIrU0JPdk41SitmRkRB?=
 =?utf-8?B?MFZhbEw4MFhwWDFnRUgyL2FjU1ljMG5hQzlMVm5SUmgwdGZxNmxnejkrV25s?=
 =?utf-8?B?aXJXbTZLdFA2WmhCSWtha1RlcVZQc2xvKzhkaDNtN1YvOWVYUGExdGFOSE0y?=
 =?utf-8?B?dWVHKzZCS1Z2K2lxczIrcVg5ZWdobHRmMnFwTmZkNHhmazIxd21DOC81TXBR?=
 =?utf-8?B?dW9zRDhndkZHUlVXTnYyV0RndkN0bEtiak0yOGpISU5zSWJReG1VbUZCYXdU?=
 =?utf-8?B?ZmFRSzF3UUkvcU1kVFJzdzF5eGtJbXI1WUc0L0FNVElzSlBScWx4MnRPb0Ri?=
 =?utf-8?B?OW5xc1pTOUVHaEhtYUlVdEFJeXNEMXZNZ0FYbDd6S3Q3L0pxWE5wMSs0ZzQy?=
 =?utf-8?B?R3lLcnU5TUl2YVJXakpIOW5waXlTSE5ybWdtRlpQR3hnMjJsbExhYTdtSmhU?=
 =?utf-8?B?bXdEVVp5ci9CRnRmdWxUK2tCL2pEcXE5bW5MNkw2OHEvL2E4d1A2eExJWjAv?=
 =?utf-8?B?RGM2MXgxelZmczJndEFYaGZ5U1JGRStqMWRsVlA3V2NzSXJxVjZjN1M1aUZU?=
 =?utf-8?B?UWZiSXliTTU3SVJvWVpxU0cxSkZQN0R5NUk3ZnQ2MitWZjdHMEkyNXNpQW81?=
 =?utf-8?B?Q1lxWkdUdFg4aFNjYnA4KzlHZXhUTnN3ZnF3K0FuRk4xbjI5d1ppWHF5dTRi?=
 =?utf-8?B?bklSeVE5SUFRR1RUbzMvUUhBTUlWb0hvWWR5OWd2cVZYN0lSSHIzWGdNTzhE?=
 =?utf-8?B?YTFtNmdDT3ExQktmMzFna0sxVTJZajU1akhJZzJMd25PWmhTWXl6Qzk3OXlY?=
 =?utf-8?B?Zk9jWGpvMjFxTk9MeVgzTHpXblE2R0srNUVXK1BRaVJHMnM0OVBUWHhLTUdL?=
 =?utf-8?B?QjEydG5uMkpKTDUzTmh6N2NlbDQ1b2R6WFhtN0VYSFJqbDloa01vbEhzYVdy?=
 =?utf-8?B?TkpnRWpRS0RlSjlMSGtvMkpnc1dQSm4vSUNUMEs3MnR6ZC85bmZ1eTF0V3FF?=
 =?utf-8?B?V21MTzdUbXpaUVhRb0I4K2l2NUFFWGtKbHFybFNXVisyRjJyME13dWp2SkJI?=
 =?utf-8?B?VnpNb1p3dEJUNFdjM2MzNngvZzZRNXZiT25vMUtQSlM5WmVENGlreTBZWUJa?=
 =?utf-8?B?bzRPa3Bxdy9sMHRQaEIzbVQyOGFhb1czZkhPdTdCZVdueG9VRHVkaVRSNUpV?=
 =?utf-8?B?eFVuWVdpZFlUcmJ0cE9DUC9SVmxwNk9qaWVna25iL0UyVXhXMG5QaGFLMmNS?=
 =?utf-8?B?RG5tMmlMUnlqZEp6ekw3VjlEeEwvT2hSMUw1Nyt1UktGU2luN1pGbm52MW1p?=
 =?utf-8?B?ZjN5azl5RVF5L2FkeHo5U3lpaS9JZys5ZklsWGlNU1VaVHlMWUpXNkxxenZX?=
 =?utf-8?B?S2dScFhuUUxkT3BWbkJjOFdsRTdRbFV2SmJTNnpQc1dONUFxeEZKOFBxOTd1?=
 =?utf-8?B?RTFWbVRlZi9MZ1F2dFMvZG5xczA4cVVoR2FmRWFHdTNMdEtGQmF0ZHBkR3Ns?=
 =?utf-8?B?V2c3R01QV2pJMndQZEhvc3BZTllYZENSU0c4akYrS0xZQlBDYWdzYmc0d1Z4?=
 =?utf-8?B?TFBEM1FFQlNnZWovQ2RZRG9DMFhQVlhlOG5tRnZYejRiZFFtTEd5dFhTeHdw?=
 =?utf-8?B?dTc0amw2TDl0M01lNVVxbm5xbkdVd00yQXFZNnNvbEZyVHdMMGZmUUVNUzYz?=
 =?utf-8?B?ZFZUSktOVk1HS2ZoZ2hsV0szQUNjaWZ6ZVp6RUhzWGxOWkRMVUJRNTNRUnRo?=
 =?utf-8?B?Nm5HTkwrY044TTdEb2VBZ1JYN1YxQnpzSCtJTXZhRHZtOGx2ekxudUhOOTI1?=
 =?utf-8?Q?17DVT84YBr8kidR8xRgqvCI=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)(376014)(7416014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?aGlLZjhaTnFmMDR1SWVCZG83WUgwSmtncGFIM0czdlRlT0dEdDlQSWh0d2Jt?=
 =?utf-8?B?K2NST2FnekZMOUc5a0YreVdOeEVBdURPWm1PZWJERVJGVWNGcURSWEhuZUFr?=
 =?utf-8?B?aUFFRi9LejNzN3VTZWlERkMzcnZ0UVRGaTliZThTMTh6UnUxOWZYbGlhOVNN?=
 =?utf-8?B?SjRVR3NkWjZLYVlsV0ZLdWF4TUpzN28vVVIwMGw4S1A0QStuaWJLQVRLMVl3?=
 =?utf-8?B?dGNqNnA0a3dkSUZxQ0lodmdzbVBmcFJPNHloOXNhRXZrc3o4aUdHaENGRjdq?=
 =?utf-8?B?UjdTL2JveGNaeUxDQzFheWlOeVhtTzR5S3RjR3ZlQkkvSnIxVzdNSkhYZlFB?=
 =?utf-8?B?Nk5FQ1BveXA4UjZrcTY0Ry9wZ0UxeEg3Q1BIazhwYU1vUlplZzA5NXhPbUF3?=
 =?utf-8?B?aG1qOGVoeGU4YzVTWXhIZE9DTVVIV0wvT2lWc2kxMmZoVDRqdzEydGxYWURS?=
 =?utf-8?B?bmxOTUpNMktvVGVmQjRieStFN1lCVkxXTGFZYWtzWmpFdzZYZkhhWkFHOXEx?=
 =?utf-8?B?d2NDWDJpcGhjTDlKZ0VncGJKcmNyOTRBbHdONVRIa0U0SG85aHI0cWg5MTM1?=
 =?utf-8?B?cGduZVRxa0JCT09mY0RzVUxQV1JaWS9DbEZXa3hMWlZ1NXQyMG5BanBpQ1p2?=
 =?utf-8?B?bmJYZmVhTzRxRmplSC9yeVJFZzlPSytzSHZ1SElOL3F4YWM3WS9xSHErLzE4?=
 =?utf-8?B?a3BZRXdlQnJtRm1YdXR4UTBzZk11cVQrKzJIUWtlOFVrUEJPQWN4WjJ4Q1hE?=
 =?utf-8?B?UFZ3TnhaVWNmRDFRbWpNZFM5UTZRK2trMHUrTGN4a1V1UHVzV2NVcDV4Z3Az?=
 =?utf-8?B?ZE9yeVZjM1ZkVG5YN0taWHladWdBU3FONyt2OXVpdnVMMmpKU1RiKy9qWUJV?=
 =?utf-8?B?dVRmMVZod2hEa3dHaCt0NytsUFJ3REJwaVRGQmhaVHJ4dEQxS3c0YXpnN2RQ?=
 =?utf-8?B?YmlNeVg2Y05PaHVoRmgwZ2ZXYklGZUc1Y0lvYVdpeXpoZ2hKdlYreGVxYTZS?=
 =?utf-8?B?eXVHYzFtVnhLTUpPSnZDNlYrejQyUnhBdFF1bjlQQ2pYMkpIMDRuNnQwV3lG?=
 =?utf-8?B?Q256c3publJlSzd3R1J1aFE2Q1ZSekRIQVluNkdDMVdtZTMzc3E5VXlaY01w?=
 =?utf-8?B?Zjd6NVcwS0ZoSW1qUk9mKzc0R0dLRm54TUY3alZNckRGRWp6dldKR3hwRXVn?=
 =?utf-8?B?RjZXV2U4UVo2Q2QxbFNxa094TFVBSUYvQUViNkh6VHZKUzFrYjM4bG1UdThy?=
 =?utf-8?B?cW5LVmlLVVdObzcybjVBU3RNNksxZHk5NjhLLzVNSnBoVUR0SE5OeWFZaVFN?=
 =?utf-8?B?ZzdaQUR5dVF4TTh4VERoUzVDd2dhdWE1YzhMNDI5VllvNVVTMjcrVkNrdUJa?=
 =?utf-8?B?VnFSOXVDTkN6TEhKK2VBbjZkWmFPZkRITEVDeWNaZkV3RUY5L2ZqT1g1SXRo?=
 =?utf-8?B?ZDNhRTFhbkpFR0FQekFlck5uU2wvNzBiYVErU3hwK3g2aFJMS0tLSXhCZmFO?=
 =?utf-8?B?eEFxM2N5WjRic1djd1Z6NnNjMWM0Ly9obDdSejkzbmszbXZNVnJUaFp5UkZt?=
 =?utf-8?B?TEhJWFAzaDNCM3JDUVFXdzF2WFp0dDBZTGh6WDU3OHZ3Y28rb1RUdjJlaXhJ?=
 =?utf-8?B?dU5OeE9NSDlrMnA0M0p4SWJ0VEt6djVEcFVmbFgrOWZicTY0Qjg3ZE9qYW8w?=
 =?utf-8?B?UnJEMGdDb0o4TS8xSWloSTJhTHhYK24zVHg5ZHVlSU1zcTc1bFp0K0pNRmhD?=
 =?utf-8?B?QVlsTHFnOEYwNldDVktBV3lqeTlnU0tzbXl3dldDdTNacXhKNmNtTGFHZUtT?=
 =?utf-8?B?WUNjVGQybVczYzBDZ0hMR0QzUG9xeTNRQVhmRmJjUjRCWndWeVljY0UxTFdT?=
 =?utf-8?B?S0l3WUJpNURJUys1aFBzWS9nU3hqNFFBbU1rcVZTT2VJbFErUlNiRjREeURp?=
 =?utf-8?B?NHRVU1c5bmlTc3JQQXliWEZpaE9vc2VRa2VHRm5rTDRFQm9jNXRHeFdEY0xo?=
 =?utf-8?B?NTdIS2hEaXJtanRPTEtXMno2Y2pYNS8ycjljSG53RkNWWTFNZHFWdlJIaWpV?=
 =?utf-8?B?V1JNa3E3ZHVJQ1ljTmNhaU9QYmpyMmVLbmlVK0FFdzh1eFlGeGUzMVk2cWtZ?=
 =?utf-8?B?ZUF2RDJUQ3FuNUU5R1hRVVdObUI4SDJpRStieHZTK1Nuamk0U1k4ZUlaNzBZ?=
 =?utf-8?B?TGYxckFib2R1ZGtubnAzSHdZOWdvS3hPdC9TVWI2VGwvR0xmQzJCYkhIWnZX?=
 =?utf-8?B?TlV1REJxdDlNTHEwOEtyOGRKbDgzS3NSaFUyeTVyeHRlT3ptVWxiaC9QdUZo?=
 =?utf-8?B?RmdGanZmbDVSb2MrN1Z6UlgxTUk0RHdkTGJkOXBoenRqbkFNSkFScGgwR1Rz?=
 =?utf-8?Q?LCkJq1TKhshZbIl0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <691154034CFCA04789628EC613B062F1@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: f7410853-4243-4b9f-6619-08de63ed2282
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2026 12:58:47.0162
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: cAzElO8IV7HrTDa1Annby0dzuHcD3jB46cFP6SD5/GP4kBFBSSOeMcf5PTh/fxFJZ3Oazc8AQR6V1cXsDs8Rmg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR03MB10193

T24gMDMuMDIuMjYgMTg6MzUsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+IEhpIE15a3l0YSwN
Cj4gDQo+PiBPbiAxMyBKYW4gMjAyNiwgYXQgMDk6NDUsIE15a3l0YSBQb3R1cmFpIDxNeWt5dGFf
UG90dXJhaUBlcGFtLmNvbT4gd3JvdGU6DQo+Pg0KPj4gVGhpcyBzZXJpZXMgaW1wbGVtZW50cyBz
dXBwb3J0IGZvciBDUFUgaG90cGx1Zy91bnBsdWcgb24gQXJtLiBUbyBhY2hpZXZlIHRoaXMsDQo+
PiBzZXZlcmFsIHRoaW5ncyBuZWVkIHRvIGJlIGRvbmU6DQo+Pg0KPj4gMS4gWEVOX1NZU0NUTF9D
UFVfSE9UUExVR18qIGNhbGxzIGltcGxlbWVudGVkIG9uIEFybTY0Lg0KPj4gMi4gRW5hYmxlZCBi
dWlsZGluZyBvZiB4ZW4taHB0b29sLg0KPj4gMy4gTWlncmF0aW9uIG9mIGlycXMgZnJvbSBkeWlu
ZyBDUFVzIGltcGxlbWVudGVkLg0KPj4NCj4+IFRlc3RlZCBvbiBRRU1VLg0KPiANCj4gRG8geW91
IGhhdmUgYSB3YXkgdG8gdmFsaWRhdGUgdGhpcyBvbiByZWFsIGhhcmR3YXJlID8NCj4gRG9pbmcg
aG90cGx1Zy91bnBsdWcgbWlnaHQgaGF2ZSBzaWRlIGVmZmVjdHMgKGNhY2hlcywgY29oZXJlbmN5
LCBpbnRlcnJ1cHRzLCBldGMpIHRoYXQNCj4gSSB3b3VsZCBub3QgYmUgY29tcGxldGVseSBjb25m
aWRlbnQgdG8gaGF2ZSB2YWxpZGF0ZWQgYnkgb25seSB0ZXN0aW5nIHRoaXMgaW4gcWVtdS4NCj4g
DQo+IENvdWxkIHlvdSBleHBsYWluIGhvdyB5b3UgdmFsaWRhdGVkIHRoaXMgKHdoYXQga2luZCBv
ZiB0ZXN0cyB5b3UgZGlkKS4NCj4gDQo+IEkgd291bGQgYmUgaW50ZXJlc3RlZCB0byBrbm93IGhv
dyB0aGUgc3lzdGVtIGJlaGF2ZSBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOg0KPiAtIHN0b3BwaW5n
IGNwdSB3aXRoIGd1ZXN0cyBwaW5uZWQgdG8gc3BlY2lmaWMgY29yZXMNCj4gLSBzdG9wcGluZyBh
IGNwdSB3aXRoIGEgZ3Vlc3QgcGlubmVkIGFuZCBvbmx5IHJ1bm5pbmcgb24gdGhhdCBvbmUNCj4g
LSBjaGVja2luZyB3aXRoIHBhc3N0aHJvdWdoIGRldmljZXMgKGZvciBpcnEgYmFsYW5jaW5nKQ0K
PiANCj4gVGhlbiBhIGdlbmVyYWwgcmVtYXJrIGkgaGF2ZSBpcyB0aGF0IG1vc3Qgb2YgdGhpcyBj
b2RlIChpZiBub3QgYWxsKSBpcyBhbHdheXMgaW4gWGVuDQo+IGV2ZW4gaWYgQ09ORklHX0NQVV9I
T1RQTFVHIGlzIG5vdCBhY3RpdmF0ZWQgaW4geGVuIGNvbmZpZyB3aGljaCB3aWxsIHByb2JhYmx5
DQo+IGdlbmVyYXRlIHNvbWUgZGVhZCBjb2RlLiBDb3VsZCB3ZSBwcm90ZWN0IHNvbWUgb2YgdGhl
IGNvZGUgbm90IHVzZWQgd2hlbg0KPiBIT1RQTFVHIGlzIG5vdCBhY3RpdmF0ZWQgd2l0aCBpZiAo
aXNfZW5hYmxlZChDT05GSUdfQ1BVX0hPVFBMVUcpKSBvcg0KPiBlcXVpdmFsZW50IGZvcm1zID8N
Cj4gDQo+IENoZWVycw0KPiBCZXJ0cmFuZA0KPiANCg0KSGkgQmVydHJhbmQNCg0KSeKAmXZlIHRl
c3RlZCB2YXJpb3VzIHBpbm5pbmcgc2NlbmFyaW9zLCBhbmQgYWxsIG9mIHRoZW0gd29yayBmaW5l
LCBhcyBYZW4gDQpmb3JjaWJseSB1bnBpbnMgZXZlcnl0aGluZyB0aGF0IHdhcyBwaW5uZWQgdG8g
dGhlIG9mZmxpbmVkIENQVS4NCknigJl2ZSBhbHNvIGV4cGxpY2l0bHkgY2hlY2tlZCB0aGF0IGlu
dGVycnVwdHMgYXJlIGdldHRpbmcgbW92ZWQgdG8gYW5kIA0KZnJvbSBjb3JlcyB3aGVuIG5lZWRl
ZC4NCg0KSSB3aWxsIHVwZGF0ZSB0aGUgbmV4dCBjb3ZlciBsZXR0ZXIgdG8gZXhwbGFpbiB0ZXN0
aW5nIGJldHRlciBhbmQgYWxzbyANCnRyeSB0byB0ZXN0IG9uIHNvbWUgaGFyZHdhcmUgdG8gYmUg
c3VyZS4NCg0KQ2FuIHlvdSBwbGVhc2UgZWxhYm9yYXRlIGEgbGl0dGxlIG9uIHdoYXQgZXhhY3Rs
eSB5b3UgbWVhbiBieSDigJxjaGVja2luZyANCndpdGggcGFzc3Rocm91Z2ggZGV2aWNlc+KAnT8g
SSBzdXNwZWN0IEkgYW0gbm90IGZ1bGx5IGdldHRpbmcgdGhlIGlkZWEuDQoNCg0KLS0gDQpNeWt5
dGE=


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 13:04:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 13:04:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220501.1529178 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vncY2-0001gb-4b; Wed, 04 Feb 2026 13:03:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220501.1529178; Wed, 04 Feb 2026 13:03: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 1vncY2-0001gU-1m; Wed, 04 Feb 2026 13:03:58 +0000
Received: by outflank-mailman (input) for mailman id 1220501;
 Wed, 04 Feb 2026 13:03: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=THT1=AI=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vncY0-0001gO-R1
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 13:03:57 +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 f0cf4035-01c9-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 14:03:46 +0100 (CET)
Received: from AM0PR02CA0177.eurprd02.prod.outlook.com (2603:10a6:20b:28e::14)
 by DU5PR08MB10659.eurprd08.prod.outlook.com (2603:10a6:10:51b::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Wed, 4 Feb
 2026 13:03:42 +0000
Received: from AMS0EPF000001A7.eurprd05.prod.outlook.com
 (2603:10a6:20b:28e:cafe::d5) by AM0PR02CA0177.outlook.office365.com
 (2603:10a6:20b:28e::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.13 via Frontend Transport; Wed,
 4 Feb 2026 13:03:39 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A7.mail.protection.outlook.com (10.167.16.234) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Wed, 4 Feb 2026 13:03:42 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB5911.eurprd08.prod.outlook.com (2603:10a6:20b:292::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 13:02:37 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 13:02:36 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0cf4035-01c9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=CT83iqJXR4FC5RhwmRjFfkbawZ2gJzlpDNzylYm3qXvzaZOi6kmKldTp2L8jooljsnQ/3eyNCcAJNRjnMtRCrvyQgqQk2JZBMzuIbBgm3jw9EJnggt6oPprYPENu5c2Nll8TNdfnuY5s2876wRS5v8UAp3AVeTr6NmTQPopG6pYENZIZ4JObnWm5lGp/upOgBSlA/i9rMc4NBGePkejzV7Mbe+qw7NVLBb90oR44A9ZXTUoVHzG0b1nL+arsDc0bKinKvKlgAgTATcjc2qgkovVWr4FGimviVO6GwSCcrW+2KIzV85GyrNkFPDM/uEq+llrEQIJ8+Yl/POVjSfuoTw==
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=1ivlrthExOPETeyvE/sfWrfednquKuze7PRxAG3QgN4=;
 b=Ol9U4lSsmTfGnoKZvSAIFISvwY0KCnsXHRthTwuJXPjQmeAtCz3Aq8C1vaty4vvI8M8d0YT4Y9GgKYE6d3yHETltgC8rehipXJXNGLvtFHnMZLcQS426EuX3rCwyNr798b1hfDskXOS2mJNM9CurJgN4gz4TofOVNT/I8RqtJK9RdO4litJDqU9kRXL6RSlI8N+qD0vyZ5EMnqnUb5+jRg/RqaEeITj3QVPyGdsI68vkf9G7J1BAeZnXXGzpG7ol+E8ewWK2AOe1toV9bbiaMpGpzFEcsgArZCcYgrPXLbSBVgQj2uIx3/xgGknsBfVx6jfpiXh2UE3JTRwbo1/A/w==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=epam.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=1ivlrthExOPETeyvE/sfWrfednquKuze7PRxAG3QgN4=;
 b=iHNObySI32zdH6av+lt1dYd/h1WoWDUp2Ugzx+VlVscCtOEpgycSfkdX4XnkBqbXRdHasg3BDapVCpe+TbMxfZtsrbHH4gQWrSqCjNR3soak2CSKDv5VgKyXBend2gbnAbYJzzZCMVfORiOlimo/oZZEJFBLOH8WuGM5KEsCfxI=
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=dqqmWjKqCjxtFwcBSrrySq/hpYh+f6teZuMliUnjGPkInyg7JRP33GewU5WFDFwxJA49WQDKacUNulCE5mYE8SCe2wXJTSPH/q2PInEWBlwYXVHRBeaYwH4cDt1Bz/MtJDJnAuXu/Tpdjanvz4VoYMHakE/Bg2e43vm7VF6t5vYtbgoFgt27aZuXHZQeSg4b8D7hY7dTFo4lHssqKGRicoPDCt9qlSMURGNUr3vA4zbCZuRCB/rsGwkGIpmhkrOnK1IRGBbiFfF1Mdf9AWzFfraTOV5v4zg86e2LpX0pvVm+rrTrROQ+0VjHw8cgQMFUJenWASX+/9bq1T+mBz8l9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1ivlrthExOPETeyvE/sfWrfednquKuze7PRxAG3QgN4=;
 b=b5yWUibu8d/tyFtkv8cBkdvDLDSAtJN2DaRUkuj8DQUhu9/rO7TZQsdulIKvqW3UNGBNOaTQIzEgG+Wckvank+/85B1o19gQPTKEAuZcv9InN5eyfxIcTDxUnwEBUT2t/LnMW4yZS+KCEdHqZDizsCGE0jdhH/PPh9cgBm1GCq3fUey9vR0NShgTHUl+ebTskS/lOIh4gfG77vKwBNwV2ZgVitE/ZlPa1cePtdrM60SpSviWII8uW1X7M6Tu4BAyvGGtJb4PFeEl4vDKppajTFMmuwQBhcfwxv2kYBG1De9mka2gi1yroSvf/Ee2ixMyyJTDOfd+DqrYl7QycJu6iw==
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=1ivlrthExOPETeyvE/sfWrfednquKuze7PRxAG3QgN4=;
 b=iHNObySI32zdH6av+lt1dYd/h1WoWDUp2Ugzx+VlVscCtOEpgycSfkdX4XnkBqbXRdHasg3BDapVCpe+TbMxfZtsrbHH4gQWrSqCjNR3soak2CSKDv5VgKyXBend2gbnAbYJzzZCMVfORiOlimo/oZZEJFBLOH8WuGM5KEsCfxI=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>, 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>, Timothy Pearson
	<tpearson@raptorengineering.com>, Alistair Francis
	<alistair.francis@wdc.com>, Connor Davis <connojdavis@gmail.com>, Oleksii
 Kurochko <oleksii.kurochko@gmail.com>, "Daniel P. Smith"
	<dpsmith@apertussolutions.com>, Juergen Gross <jgross@suse.com>
Subject: Re: [PATCH v5 0/5] Implement CPU hotplug on Arm
Thread-Topic: [PATCH v5 0/5] Implement CPU hotplug on Arm
Thread-Index: AQHchGj6Bf8iLxj9KkKeGyrpjQwglLVxTT0AgAFV7wCAAAEEAA==
Date: Wed, 4 Feb 2026 13:02:36 +0000
Message-ID: <4790C2C5-B042-47B4-848B-EF27154215F8@arm.com>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
 <51B975F5-C0EB-43AE-97FD-CC937DBC593B@arm.com>
 <e653b557-7423-4bd1-8e84-a72ecad5d40f@epam.com>
In-Reply-To: <e653b557-7423-4bd1-8e84-a72ecad5d40f@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB5911:EE_|AMS0EPF000001A7:EE_|DU5PR08MB10659:EE_
X-MS-Office365-Filtering-Correlation-Id: b420f020-3f67-4add-15a7-08de63edd285
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?ZVBYeGNqQktlTGlZYXN3d1A1T1RKSEZXbGxZakFWQ3ArVGcxNCtHd3IvVTNY?=
 =?utf-8?B?SEV4aFRHbWNKb3AvRmNZa3lieWJTaHZMVFpmZXNFMnlNd2VpQ3RPcGIrY1RH?=
 =?utf-8?B?RmpkTFp0VWozcm93VzFoVnpwZGJpZWFaTE5pcW5hRWRBSEsrbEJsR1RYb1FL?=
 =?utf-8?B?dkFLbzNZbk1RMk13eUwxNk81eTNGcFFoeGpDZDFSRS93UFlKY3ozN0thSGs2?=
 =?utf-8?B?SmNXSXd5TGRIQW03MkZOdlNpMWpQaFN5K1AxRWVDUjVBaEpicmJ2Mk1oRCtD?=
 =?utf-8?B?MHRXSFVEaGs3MG9pZ1ZST0FHUU94YzNEM1VUMXN1eHBVRVYwaytrQm9CelhB?=
 =?utf-8?B?a2FPdTRheEUxbnptSWZQdXh3dTVzRkswaVFXOEY2OXN1djViYU5UMzV1Q1k0?=
 =?utf-8?B?dUM2YkNsQkl0QWhuaWlPdVExQTNGRk9vUGw5QVJRZ3Y0SzlOWlZJZ2lGblVw?=
 =?utf-8?B?eFFjazVIQnA5UGVWeFVTRWl6RmdBZHphNHQ3TktOOElvMDRXRnU2Z2xJOEVt?=
 =?utf-8?B?ZW1LR084dFdtclhXaC91MHorS0VvOXBxdDh6Z252VkxWSC9Tb2hUdGNuK2dX?=
 =?utf-8?B?QW84NU1oNUp3UXlBVkZxZ2NCeUZUd01ORnh4cTVlZXZRcFozV25UcWxvVGlY?=
 =?utf-8?B?TDZTUHVYdnY0QTkzYTNWdzVMUFIzTTUrQjlHcDdUSURFakdlNE9lVjM4WFFR?=
 =?utf-8?B?YVhONDVCTGYrdzU1NVdpRzAxTTd5VTlRQ3V6QzFZcjYvT1pUejBKeTFzdmJm?=
 =?utf-8?B?MGZEeWlDVFFrVlZxN0U5NUpqNitUd3ZRODF1c0kwZWVKb1FuZEF6Qk9xeFAx?=
 =?utf-8?B?dnF3MnZtSGVIVlJxT0g1TytxVHdhQ3hQRjlKNmpqekt5bHY2OExRcndmWlEz?=
 =?utf-8?B?NFU2L1Jsa05ma2VTRnIxWk94dE5NZ3FiajdKdFRmSTluODBLZ1dFRm1SdDR2?=
 =?utf-8?B?STZtVEZFRnB6Ylh6TjF2a05WNXNDZzdiQlA5aTU5VUFGRFRoZm1sSExlM2Fm?=
 =?utf-8?B?MnhkQWkwVDVxa2pNa1BCNkg2cVJ2aEZnMHdKczl5a0s2bzRlWURuQlBaOEd6?=
 =?utf-8?B?WUxPMHlFbDE0Ykd6eXBOSlhzcittazJ2VW9raHBqellnVHVEanpnUE5IYkFE?=
 =?utf-8?B?cUJlR2t3bHpTQkNVM3ZUa3J2SlEwSDZOMVYvNkxOUU9Dc3dEMGdCVXFraWdk?=
 =?utf-8?B?ZzJEaEtKTW9xUVRUa1llY1czUWQ0Y0tzcE1sSUdPSjRqT2V5eWwyNVZKbEtT?=
 =?utf-8?B?MFhiYXpUc3pNOXlsUkNCUFhZTjlWQXg4eStKNWdQc1BkWmk0T3JMYWh2OWVn?=
 =?utf-8?B?K0ZqQUk1WlBQYURZTGZyUUdNaXI5K3ZtSmI1MWl2WVJ1UStoVUpCZFlyMVVG?=
 =?utf-8?B?TmlRRW5rRHhXT21KZTFnQTFGOXFrWUVacmlRMitPNnI4SkNwZkozd2psMEpH?=
 =?utf-8?B?Sm00K0JHVkxHa2RzNU95SVdJblNxTVcwU01VQXVBUmhpV1pSZy9CRFdxWVhN?=
 =?utf-8?B?YjZjV2NGcnVhS3p0bEJzWEk1UG03d1VER25mUFlTR09jM0VYeHRWeElyTDZQ?=
 =?utf-8?B?RVBvOVphWWZwdjNlTHVCUjJjOFJYUmQ4NWxpSXFaSjd5ZTZhQzBJbWFZWE0w?=
 =?utf-8?B?aHlIZGFvRi96Y3pMTk1XbDlMM2VyWStpMGtKR1J4ejQxTC9ydGhUWUllTTFu?=
 =?utf-8?B?cndEYTRldEp4TVQvc2UwdzlyQ2FLZW1VeU5EM3B0dERXVDVDTnVKWlEwb1No?=
 =?utf-8?B?dUUyQkxLakVqM3ZVK3pZTnhtRXJCbmVoczNOMzJqcnIyTklmVXVzSm80dTc2?=
 =?utf-8?B?THJOZWlNTTRuOVlka1FnMHg5cFRzenNBVGdwbFZPdlZFbHQrbHZqTU14dlFy?=
 =?utf-8?B?VGxJbXhqQzlsRTZ2Ym90NHQrZHNWSVMyOWhQMVV3QmpzMk9OVjZBNEd2ZTB2?=
 =?utf-8?B?RVpiTndpcGt3U3VlZ051L0h4S2t6eldObEpLbmtXdU9WSjNSekFicWZBaW9U?=
 =?utf-8?B?VG50NWcyRjhic1hVQlJ1eWFuUHk0RFN6ZzJEdWNTS2NLQ2t1UmNhdFVydENm?=
 =?utf-8?B?eDRXUVhlRklIcnJSVkpqcXVXQjFVamg1U3ljZyt4NW9YUzNLblh0S04xZlA2?=
 =?utf-8?B?YXJOaVpXUXhWTUdjcE9CZVpqNU9UNitUcTZOcW00a09HUUJIcEhSV1RrNzdL?=
 =?utf-8?Q?9Cx/43nffYFWFUa0O1J/e6k=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <899D5E7AA5C2A14BA1465AF5D047D3CC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5911
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A7.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3d8f2d7a-78d8-451b-ddf7-08de63edab40
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|14060799003|1800799024|376014|7416014|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SzNWbGZkQUdTc1BpcStDTmRRQXZDMjlMSmdxeFIyOUlIL20zWFcxM3lSazFw?=
 =?utf-8?B?d0FSc0pMbG44d2dIeDF2ZVpSY0ZaeFp1a3Jyc29QL1o2K0tJd1BuSHRkYjhY?=
 =?utf-8?B?NzF3eHU4T2FrNms1dU9abXQzSUVUcHFRMmNSVFNGY1hZREEyREFxWWJ0THF5?=
 =?utf-8?B?ZFhmeFpIajZaVXlZZUwveG4xVk5qZGJ5eFpHNHI0TFY4Rk8zRVIzalh1Q092?=
 =?utf-8?B?bmZkaVVjK0xPVGRBOFA1b2laN3l0NkdoNlVvSVJZbzByRU43VWRWOGpmeVJB?=
 =?utf-8?B?Y0psM2o3UXZIaEplbXFWNmVuQ0JiUUpZaUl0cko0ZkxCaVBheFJRR3VhZVQy?=
 =?utf-8?B?aHlJNFpHcFNQMC9hY0NFdUJmVmlXZjAyTkMycUJwYkdzb0p2T1BUem1lSXVF?=
 =?utf-8?B?N0krampPSVd1ekQ4ZVZlNnEvdHNKNStqYmFBOGVkcjU3VUJtdnhOeDNoZFhR?=
 =?utf-8?B?MDM0aFBZd0FaL2VBZ1dLcStJV1Qyd0pxMEFnd2F1S2NVeTRBVDJ2djJZQ0VX?=
 =?utf-8?B?SSsvSFZWckZTSmo1TFR0Z2VTSmNxOUloR2JmY3JBdkFpMVVtMkc5WXdZaURT?=
 =?utf-8?B?eStOWWc4VGNibTUxTXg0c29waEtMaTVhVEN1aUtpSkVFakI1Qk10VndHbVlk?=
 =?utf-8?B?M2htaVRFN3A4WjlwK3M1aG1RY1F2REJMQjQ1aXBXUENPMllkeitFZnpjSUVn?=
 =?utf-8?B?MHJ2LzFPMkZ5MEFGaWRZRTk1cXpYaHZWK0tGTE5YWDB5UUFrSE96Q1diamxw?=
 =?utf-8?B?RnRuYlJiUXVlNWE2dW9NZDU5d3NyWmY0NWJEaHNTY0loaFB1Wks2S2NVRUJL?=
 =?utf-8?B?WllvMWFrRkdXY21ZdmtrMHlhSEVLL0kxNDNwMzJ4NGhYdWg5ZnA0TkhQZ0F4?=
 =?utf-8?B?NE85Sk00NlJtRmhnMFpLU2lFRy9YOEFVdjFTTU9kVHNxclgzWVhBVW9GdmVF?=
 =?utf-8?B?ajRhSXptNi95dFdQcys5MElTWnRXcWRZSHN5bHp5U1k2aHJPb3o3cXNJZEw4?=
 =?utf-8?B?U2ZrcHdwSVNqQ2tBWE9IK1VNdVc4dU1NRm9OQmhxWHRWazdzbWw1ekYvMGpM?=
 =?utf-8?B?bjJTY2VMUm1YMHZqQnNrTzlvbE90ZzIwcUEwSWV6VXluRmRnemlvQkxzQ0Fm?=
 =?utf-8?B?RmhWRERTOFhvUHNGNlJBUThVUTNsOGNIUEpsZ2pVbHRKbU1aQzBqYThZcGhB?=
 =?utf-8?B?M1FmejdkNDRJejNvOTYyUklYOXkvcHViZmZQU0lRSUw5NXhmSTdLT0RhNnFi?=
 =?utf-8?B?MXpLYkZjMlJEYWhWVlJDMVdoMDVwTWZIaG1ZbUZuTDFmaHFNM2twYjRYTkVG?=
 =?utf-8?B?VFdscG1QcHlSdENjUUhVWElhVmQxSnRad3FFNFB0KzJOTHFqNkg3cUFVd0E5?=
 =?utf-8?B?aVJ1dUJJWS84TUdodjRuc0Y2aGZxbFdlRFY3UTRhOW5WVWpRMS9WNDU0WHNQ?=
 =?utf-8?B?TW1lUXlkTVF3MmcrU1htNGg0b0loVkhrdzlRcGIweHM4T0tvem5ydG5HSm9t?=
 =?utf-8?B?UWowL0pVMkNiN0o0ZXVTdXVNdDNraldMRGVzcVBkNEVWVzhlZUpwZ1h2dFkz?=
 =?utf-8?B?ZVNPWndNbDlpYlhETGEvWlpVRFczQi9zWklENnpBZm9jU2ZISFdNTXdDRkph?=
 =?utf-8?B?cXNFcE4yZkpabWFqUDhoWGNkeEhvaEI4VDdkNGs0RW9lMnU3Z28xVzdtdmdP?=
 =?utf-8?B?dlRPNWd4VXN1T2o0bEhJbWlSSlFoMHBSSkpYWm5GVnpNT1VIayt5N1htWm5C?=
 =?utf-8?B?MFRHYVdEaVhZZ0prcDdlUngveGxSd3NKWS9pSVdPbEl2di9mYTlxZTNuMHhP?=
 =?utf-8?B?c3lQTE00ZFZkek13VHh5QTZ0QzdiaFZIdWQrZGZDV2RhellsTklidGVzNUMx?=
 =?utf-8?B?MEkyMnhkSTk5M1JHdEU5VjhFcDlpbDNXdzlEU0d3VXVsenRCZ2VTQzh2SlM4?=
 =?utf-8?B?YjhPRExaUmUza0RwcFMvT3dHclk3U2xtamlpZzlnNTZieGg2SllTVmJoRGJm?=
 =?utf-8?B?eWNkVVM3VUpvY3hyb0EyNXJ1RTJVSjNRS0diWU4vR0FHazZtNWd4b1ZmL3o4?=
 =?utf-8?B?amxyWG9MWlBoUE93aUZGV1UwZjNJdjRZNGZseFpLOW9tTXdmRG9ycjYvaFdJ?=
 =?utf-8?B?UzhQN3Z3aldYSTZDRmg4cWROM2ErdGxYZVp6QldLbFM1K2xyczROQm0zT3hU?=
 =?utf-8?B?Rm05SGFXaUw3WTZSdHFtTG5rU3NEQVU3aWtXMU5IMGxiYStRbFhUaFVyWHpm?=
 =?utf-8?B?bXRqdCsrUVVJcExma3BMWmswWC93PT0=?=
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)(14060799003)(1800799024)(376014)(7416014)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	c8ZyIozK+TNh45F86B36AKCrPD4D9l/RSybNIYR0Ez5WuZzwa6LVAGzXUIFb6M4cKGIZXyVOi1jyy+p6FckxfanmgzjAQ+Zz+7voKvrXuxe69giejZ4c8r8UI/cfmYrMbPrajca0ALB79V1ccvXEtK1DFMV9E6eBTZJQk+8NOfkG/8amkQUrQBJw0CbeyMe67UrA+le83miKwVDjuFIJb5BBSYS8VyHcLSc8s0u6zJdIFKIqLaGcQjHaSiOXl0VJpvhf1W8xgDHSOlWr0ranz9CeJOj310XTRpwlaUlcMHgQpiEkH0f2O9tqFswnHMpctsWXe5epLHWqAlysJnqs2TNVl79dqAYd0za7UrU0T7A2xe0gEDTXms7TH0Z5cgKxi0n67RmjT28oLw1qtnEVnn5eFTVuDefg89aFM+6Nz90FrpstUz4Jz6HrcDaCNhPw
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 13:03:42.2436
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b420f020-3f67-4add-15a7-08de63edd285
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS0EPF000001A7.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10659

SGkgTXlreXRhLA0KDQo+IE9uIDQgRmViIDIwMjYsIGF0IDEzOjU4LCBNeWt5dGEgUG90dXJhaSA8
TXlreXRhX1BvdHVyYWlAZXBhbS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDMuMDIuMjYgMTg6MzUs
IEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBIaSBNeWt5dGEsDQo+PiANCj4+PiBPbiAxMyBK
YW4gMjAyNiwgYXQgMDk6NDUsIE15a3l0YSBQb3R1cmFpIDxNeWt5dGFfUG90dXJhaUBlcGFtLmNv
bT4gd3JvdGU6DQo+Pj4gDQo+Pj4gVGhpcyBzZXJpZXMgaW1wbGVtZW50cyBzdXBwb3J0IGZvciBD
UFUgaG90cGx1Zy91bnBsdWcgb24gQXJtLiBUbyBhY2hpZXZlIHRoaXMsDQo+Pj4gc2V2ZXJhbCB0
aGluZ3MgbmVlZCB0byBiZSBkb25lOg0KPj4+IA0KPj4+IDEuIFhFTl9TWVNDVExfQ1BVX0hPVFBM
VUdfKiBjYWxscyBpbXBsZW1lbnRlZCBvbiBBcm02NC4NCj4+PiAyLiBFbmFibGVkIGJ1aWxkaW5n
IG9mIHhlbi1ocHRvb2wuDQo+Pj4gMy4gTWlncmF0aW9uIG9mIGlycXMgZnJvbSBkeWluZyBDUFVz
IGltcGxlbWVudGVkLg0KPj4+IA0KPj4+IFRlc3RlZCBvbiBRRU1VLg0KPj4gDQo+PiBEbyB5b3Ug
aGF2ZSBhIHdheSB0byB2YWxpZGF0ZSB0aGlzIG9uIHJlYWwgaGFyZHdhcmUgPw0KPj4gRG9pbmcg
aG90cGx1Zy91bnBsdWcgbWlnaHQgaGF2ZSBzaWRlIGVmZmVjdHMgKGNhY2hlcywgY29oZXJlbmN5
LCBpbnRlcnJ1cHRzLCBldGMpIHRoYXQNCj4+IEkgd291bGQgbm90IGJlIGNvbXBsZXRlbHkgY29u
ZmlkZW50IHRvIGhhdmUgdmFsaWRhdGVkIGJ5IG9ubHkgdGVzdGluZyB0aGlzIGluIHFlbXUuDQo+
PiANCj4+IENvdWxkIHlvdSBleHBsYWluIGhvdyB5b3UgdmFsaWRhdGVkIHRoaXMgKHdoYXQga2lu
ZCBvZiB0ZXN0cyB5b3UgZGlkKS4NCj4+IA0KPj4gSSB3b3VsZCBiZSBpbnRlcmVzdGVkIHRvIGtu
b3cgaG93IHRoZSBzeXN0ZW0gYmVoYXZlIGluIHRoZSBmb2xsb3dpbmcgY2FzZXM6DQo+PiAtIHN0
b3BwaW5nIGNwdSB3aXRoIGd1ZXN0cyBwaW5uZWQgdG8gc3BlY2lmaWMgY29yZXMNCj4+IC0gc3Rv
cHBpbmcgYSBjcHUgd2l0aCBhIGd1ZXN0IHBpbm5lZCBhbmQgb25seSBydW5uaW5nIG9uIHRoYXQg
b25lDQo+PiAtIGNoZWNraW5nIHdpdGggcGFzc3Rocm91Z2ggZGV2aWNlcyAoZm9yIGlycSBiYWxh
bmNpbmcpDQo+PiANCj4+IFRoZW4gYSBnZW5lcmFsIHJlbWFyayBpIGhhdmUgaXMgdGhhdCBtb3N0
IG9mIHRoaXMgY29kZSAoaWYgbm90IGFsbCkgaXMgYWx3YXlzIGluIFhlbg0KPj4gZXZlbiBpZiBD
T05GSUdfQ1BVX0hPVFBMVUcgaXMgbm90IGFjdGl2YXRlZCBpbiB4ZW4gY29uZmlnIHdoaWNoIHdp
bGwgcHJvYmFibHkNCj4+IGdlbmVyYXRlIHNvbWUgZGVhZCBjb2RlLiBDb3VsZCB3ZSBwcm90ZWN0
IHNvbWUgb2YgdGhlIGNvZGUgbm90IHVzZWQgd2hlbg0KPj4gSE9UUExVRyBpcyBub3QgYWN0aXZh
dGVkIHdpdGggaWYgKGlzX2VuYWJsZWQoQ09ORklHX0NQVV9IT1RQTFVHKSkgb3INCj4+IGVxdWl2
YWxlbnQgZm9ybXMgPw0KPj4gDQo+PiBDaGVlcnMNCj4+IEJlcnRyYW5kDQo+PiANCj4gDQo+IEhp
IEJlcnRyYW5kDQo+IA0KPiBJ4oCZdmUgdGVzdGVkIHZhcmlvdXMgcGlubmluZyBzY2VuYXJpb3Ms
IGFuZCBhbGwgb2YgdGhlbSB3b3JrIGZpbmUsIGFzIFhlbiANCj4gZm9yY2libHkgdW5waW5zIGV2
ZXJ5dGhpbmcgdGhhdCB3YXMgcGlubmVkIHRvIHRoZSBvZmZsaW5lZCBDUFUuDQo+IEnigJl2ZSBh
bHNvIGV4cGxpY2l0bHkgY2hlY2tlZCB0aGF0IGludGVycnVwdHMgYXJlIGdldHRpbmcgbW92ZWQg
dG8gYW5kIA0KPiBmcm9tIGNvcmVzIHdoZW4gbmVlZGVkLg0KPiANCj4gSSB3aWxsIHVwZGF0ZSB0
aGUgbmV4dCBjb3ZlciBsZXR0ZXIgdG8gZXhwbGFpbiB0ZXN0aW5nIGJldHRlciBhbmQgYWxzbyAN
Cj4gdHJ5IHRvIHRlc3Qgb24gc29tZSBoYXJkd2FyZSB0byBiZSBzdXJlLg0KDQpUaGFua3MuDQoN
Cj4gDQo+IENhbiB5b3UgcGxlYXNlIGVsYWJvcmF0ZSBhIGxpdHRsZSBvbiB3aGF0IGV4YWN0bHkg
eW91IG1lYW4gYnkg4oCcY2hlY2tpbmcgDQo+IHdpdGggcGFzc3Rocm91Z2ggZGV2aWNlc+KAnT8g
SSBzdXNwZWN0IEkgYW0gbm90IGZ1bGx5IGdldHRpbmcgdGhlIGlkZWEuDQoNCklmIGEgZ3Vlc3Qg
aGFzIGFuIGhhcmR3YXJlIGRldmljZSBhc3NpZ25lZCB1c2luZyBwYXNzdGhyb3VnaCBhbmQgb25l
IG9mDQppdHMgY29yZSBpcyByZW1vdmVkLCBpcyB0aGUgZ3Vlc3QgYW5kIGhhcmR3YXJlIGRldmlj
ZSBjb250aW51ZSB0byB3b3JrDQp3ZWxsIGFmdGVyID8NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+
IA0KPiANCj4gLS0gDQo+IE15a3l0YQ0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 13:07:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 13:07:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220511.1529188 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vncbO-0002KR-L1; Wed, 04 Feb 2026 13:07:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220511.1529188; Wed, 04 Feb 2026 13:07: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 1vncbO-0002KK-I2; Wed, 04 Feb 2026 13:07:26 +0000
Received: by outflank-mailman (input) for mailman id 1220511;
 Wed, 04 Feb 2026 13:07: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=THT1=AI=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vncbM-0002KE-UE
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 13:07:25 +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 716ddcf1-01ca-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 14:07:22 +0100 (CET)
Received: from AM0PR02CA0119.eurprd02.prod.outlook.com (2603:10a6:20b:28c::16)
 by AS2PR08MB8575.eurprd08.prod.outlook.com (2603:10a6:20b:55e::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Wed, 4 Feb
 2026 13:07:14 +0000
Received: from AM3PEPF0000A795.eurprd04.prod.outlook.com
 (2603:10a6:20b:28c:cafe::7b) by AM0PR02CA0119.outlook.office365.com
 (2603:10a6:20b:28c::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Wed,
 4 Feb 2026 13:07:13 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A795.mail.protection.outlook.com (10.167.16.100) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Wed, 4 Feb 2026 13:07:13 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA6PR08MB10548.eurprd08.prod.outlook.com (2603:10a6:102:3d9::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Wed, 4 Feb
 2026 13:06:09 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 13:06: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>
X-Inumbo-ID: 716ddcf1-01ca-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=vSq2NnEZKi6U56rKxGbRbIA/UNj2qR8nmLTAzi5r84BR6V7gPFaCTDK2hVPLof/93QgENRv/UKeevYs99D9udW9apZdHzIPJTaZRixa6sQ0uj18Pileg6SziowpfsV3m/SI88UE40IH0GzMv6rY94PITAiUn1+GxuxFpfMMteLJ4OwwgNOwl6NMGrJOrl272Akw5aI/cDat61Z9+s1RsXXMWd9oswFgqlTjuht3dLVZL1yyZNbMo5Bj7/z5VgY4Gr8OvnPCH958naDM8aBDbldt+yj5EkE1mQnk2aoDS3/QEWbjIZTn23vhcLvz2MOCIuPkGauVV5w3htmfu9JoP+Q==
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=yx9EDl3EQbdny2/YxZwDgCujrHswwdDqN94M6sskR3U=;
 b=eC6ITpX/BpPPMQp4FQiXteFdlqGv4GM6PVKienxCuV2LZOV44NoDlh5zCaMtaCLRADPojZq87bfxzt01JpkofNJHI4sIynYaYlEapQG28VS3GfyOLP+H9hs+B7pBNXjvtJINEPV4qccw3eSo5SRqnHHlFppe7AlbrzNiJhUF19mHVkXIgtvkGE/fnB9a/qZ8Sxh3ZSFHcaYBKOtiYxsuqEoRit9ChmSkriCos+qB7su4b0kpk9ss2vRYZZKKFKJLEfJzfW0MiV3HWYUsis5n1fFbFY9zPeI+5B5Gql/xEGQrJa6w2mLC1jlQ7Sv4uCiRnTmgzlrkNV/1kICnj7r8Qg==
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=yx9EDl3EQbdny2/YxZwDgCujrHswwdDqN94M6sskR3U=;
 b=mHltmqV7fcTiSFMwsVcpNGKnEnFNgUZDzmsIohw1q8Nf96vHEIcSQ7YSTibERuJnNSzEovwf0pDfZvv/p5ML5v8Fmhqjn9DnXdNqYj1GY31xq/jTBajNw62+oExcOkN85qDMN2k75KR6frmJJmQ2B+/77DMbWG4iKeuMWf6GCrA=
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=A9quGk0msoQWoMnoRca8g3/n/nQYzmT2yDPn7aX5EiIAxOXQqyV4e+XRmjLjRFSJ+bxXmpMaefQeSdeMOHrlLNjHmM62v+oXM8OLs8jMBnlUZZ4PLwv6m2HKk+49HlE1mK6hSZrySFLThMc81rXpzu/1yvKiGLR1TtHxtZLh+AtQcmCcEvG2vDqxRgZ9IDyCpgOuJQ9L7tx5dqBjgD7XiWIXAs41kpUORhnk8FkHTtK7FEPcVM110NnVcEhnNsPns3Sp18DAm4IxJK5I8NOTbpcFiB8NGq8i900cbAesnTeTW4U7tSuqpn1q1lXQpUSU/f1skVuEGYbotdPlr6fq6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yx9EDl3EQbdny2/YxZwDgCujrHswwdDqN94M6sskR3U=;
 b=erBXZvz8QniuuWDUzhFsQPHWzdkFoRM/dudgNz1Mgr+wwSygv783TYysXJ5uHwg5sNam5zOWZPUCGVnZk67rvzdTkDbkWSgwdjhpjd2YzcqgWzLK/XMDlvB9obUQKR15l0QRvTvuwKijJ00ZavHBV5/DdThoPnXZ8s3PyUs9F67GPD4qGB4HMopF+RPjn+vCeQ9aU0hjWN8PXOkttFoJeyYy8EZJvlBHHmWWbdypye2quPkwTBXbkL3oCl+mP8PteDqCWi40jWIGvUIvXtLAOhFUq3MNSVuamENySsz+irB8jeVoc9oN1KmEClBfr++QX7Tta12foz4GuS417xRvzA==
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=yx9EDl3EQbdny2/YxZwDgCujrHswwdDqN94M6sskR3U=;
 b=mHltmqV7fcTiSFMwsVcpNGKnEnFNgUZDzmsIohw1q8Nf96vHEIcSQ7YSTibERuJnNSzEovwf0pDfZvv/p5ML5v8Fmhqjn9DnXdNqYj1GY31xq/jTBajNw62+oExcOkN85qDMN2k75KR6frmJJmQ2B+/77DMbWG4iKeuMWf6GCrA=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Michal Orzel <michal.orzel@amd.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>
Subject: Re: [PATCH] static-memory: Fix incorrect tot_size calculation
Thread-Topic: [PATCH] static-memory: Fix incorrect tot_size calculation
Thread-Index: AQHcldPH7zgIlcaC00G2LjzWWwPQfrVygloA
Date: Wed, 4 Feb 2026 13:06:09 +0000
Message-ID: <2B96CE7E-02EC-4FAD-B34F-4013CAFF73A4@arm.com>
References: <20260204124235.134773-1-michal.orzel@amd.com>
In-Reply-To: <20260204124235.134773-1-michal.orzel@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA6PR08MB10548:EE_|AM3PEPF0000A795:EE_|AS2PR08MB8575:EE_
X-MS-Office365-Filtering-Correlation-Id: 22d97994-5aee-43c8-ad25-08de63ee502b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?E1VvJfJgPjx+SjvTetXY7/0nUGGMVB791dcx47dm36V6qe+rpAMBb3j1r0U6?=
 =?us-ascii?Q?RqDE64ur0x1UsvyiAs6p57FNBjp/r8E2jABgSQaQkxEoIfo0yGeLEKVeLeUe?=
 =?us-ascii?Q?N5F6PARAszdiFi+iUsVDD4ohZ5GP4HkTA583a9vgggnkWYKXAtKfD5GgLxbo?=
 =?us-ascii?Q?Ic3k87vl/ez1d+0iVDn2jST3ob2SM3yyFfOiDz9TifbOkcM0q3cxu0UAjbT5?=
 =?us-ascii?Q?fls6ALZREM7NibM7+JS84oeL+McfhT/LlUuAbIMIDiV+/dTHr026QFU6bh82?=
 =?us-ascii?Q?VSaI8fCvAVMJAayUQwxV7haGw76wEoQontT4BTLwYbAZ9vq6I8ERdSEOYknE?=
 =?us-ascii?Q?DUnnIsHxK9ab9CCTxaHcf3tu3w7P7U2ZBiraRraX7+LbnON83vZvBaMlHdmh?=
 =?us-ascii?Q?Vt9jQTvHskS7AJlS2SBglXg22ST6H4XvuEAvMqMJWc6ov04X+vwmoVaIbEhD?=
 =?us-ascii?Q?wlOlmvXjl4IaUrwTf8MoBIgcrhGTP2izDAx8WeY+wBzFaOL9yaXOG3qjJ+gc?=
 =?us-ascii?Q?K8fezjd3cMk/lzy/b/SUskpq22KYoxtSEn1hly58uPSgegmorxEwSXFwy9Yz?=
 =?us-ascii?Q?x+JwNgKvVxXM0dzixeQcl+0famU9a70URD/vQE5yb+7I/Dj2vookyv06Xdh1?=
 =?us-ascii?Q?1U5LBoUNW7SOPKAQa+QIVxL0bIFk+62bz1FnpZci+AEG2k+bE30c4M4E2MUH?=
 =?us-ascii?Q?CcEoBizh6I7s7izlGv/RXkfwfQHKjzguS36d6xLDBh5cCo/thVGfJ2hkCLHa?=
 =?us-ascii?Q?uuc8b+2RgukVc0GYapZPVuapENO06Hm2Sm59OMOjMnfnJXzIxsufjyHhdUMG?=
 =?us-ascii?Q?8AO2Cc2EO2K9nHGSU/bVZqqDzGGrFiiCYlEBmq+Q9L5mMhANIquxsZLBq+ID?=
 =?us-ascii?Q?hQvvzJAVhpwEWEyBvi+Unq2jL80NbRhc0EC+vcgai/lWxnVHEMH1iuGdJ0CM?=
 =?us-ascii?Q?Mu+tOVWz16Lzu7DItxxOcpTTEh/o9ZsjkhgH75dj2Rhr1BEwTXmakhV+QF3F?=
 =?us-ascii?Q?tu+7haPy8lE/i6sD3zQRCowE0M7jOxccCHfDfsTvkEPkdWo336BMzzAkW+2D?=
 =?us-ascii?Q?vuY66ufrXshi6yyX0+kE/RUeU2FWuB4JcDF4MAW0OaH+eqUTpPto4HfMjnyZ?=
 =?us-ascii?Q?Uq47k/QHaHyekWixXaBnieSTuHsjIHF13vyE186SWuHx+JiqBb/Qan9TBiLG?=
 =?us-ascii?Q?9UEuvclCEyoNC9sQ4nPCViqVO5IEYzjJ7/7G/VvdHn+IndmfSYm5VWCAX9vQ?=
 =?us-ascii?Q?1GqWarMrHB5y5TiT7RLpZgQlfKmhsiLuOLuIbaL7bo2Hg6BvLZmNykCs4V01?=
 =?us-ascii?Q?GFOPBp4+YsRX7JU7LmA5lBEn/z8E0bADkG9WRJXqOadPgd/vVn+lj97XXs2w?=
 =?us-ascii?Q?kx6ZWxqzDtOtzQk1Ebc2Upognzg2IV65VPz307bvyoYqWoDQFYdxERV3HAPS?=
 =?us-ascii?Q?bkFY+yPObWiLTRiXepcs7IwDCyGbp+9VrIYH9tLw4HCMB5FbRcdU2YWQ0CVs?=
 =?us-ascii?Q?hiRqMV/yzWZ9WQYu0yneFHoXv9JN/+i8xEvDyosbcJZ73qEw7C8zta5oYsBi?=
 =?us-ascii?Q?8IN1TFw2BxV21i+mquWIuvJR2Zp9/odjnth4VPb3uAYRDUcurIrOOW9AWLyH?=
 =?us-ascii?Q?wmMMX4URIVllhntCYG05GZY=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <0C1A38763E75EF4E8C2E25AA8B3E82A1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10548
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A795.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b526ff42-c4af-45a7-2e94-08de63ee2a0d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|35042699022|376014|14060799003|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?Q+Wu3Lg2hExRPL+IQi/WoshWFR374U8+HkJm+WRbbHHk+TP5YEAOQDipj7oZ?=
 =?us-ascii?Q?qP38dXW43D5VC6niTrii7mwXi5jTrSJpmpb5yVk5F3uVwzWoewu1f+vFr7AX?=
 =?us-ascii?Q?r2d0DNArJUHJNQyrkxV4RklVWzfkvdsA1jeBaUJu86Bmztek0BXtVZ5zknIz?=
 =?us-ascii?Q?s8Gv6YzWVsGYF4VSeq2gnEGd5TL3LMn+POiU1VuiyN1qAkZiVRuaULalzVyH?=
 =?us-ascii?Q?nL51+H4RJmJBQg7A1u/LAnNVXQBPdIhxkq58Im65jOuwhfZ1p0N2L8MzJAiX?=
 =?us-ascii?Q?44BWXFrnFO1fz2qi7j42BM0FZmRn79oz3XtUN+D9j7OFTHN5NaoISarj+Gni?=
 =?us-ascii?Q?Fprow1/mHbsCXWTgjj+MlI20nhSvxIj7HAhDw0DIZnQt3kENhPQfMVpX5sjV?=
 =?us-ascii?Q?aPdsgJNQXSh+0NN4ZVvEPlhgYM4R36bYGWZHLUxj4Nu0ygOHhyFCniiHRHEv?=
 =?us-ascii?Q?kyylAX2tJZxs4dfZMcHwTV+HiivsMahtAXahg2UaojcOyP5SpLFcI3Bp3IKn?=
 =?us-ascii?Q?A3+Hrd8bWHM7Rv/VO5jR6DBtZtV8Kg4aBOxMtp/CzE52vUNNsgyTIeoVaKQp?=
 =?us-ascii?Q?JHI/Kg3Di3CUnEp812eeRKbigAOEIVTWaglEr3R7bVOtv2eM+r1Iru96D1AC?=
 =?us-ascii?Q?5/V3gk0nIG80PDlc9pFIDh02MTa1bUhN86TWBMILeVUG19VI4/+wRfXMWAOQ?=
 =?us-ascii?Q?qIgvxQ3qEE4LRtHFKuwUPITOnVYmu45CA5qwU7bMGyFbPthQD4NHfm/mkGHH?=
 =?us-ascii?Q?GFQ3HvxBOxtKhRUU4Im4YZjGEEiWCEqbNLL7ixAl7vjfv7MqqF1/agqkqznq?=
 =?us-ascii?Q?2K2xgJWKfQhuyHyWf1hEU0wiyW6btxB+/8UtTmR31XZMv3uL28WYlUqpD48z?=
 =?us-ascii?Q?5/zNNj6HgZd1vEhxrblROKSt+LxGRGyeedlDDHeTYwK8JuGzL7iwG0RxmuTS?=
 =?us-ascii?Q?e/O2FLUNpsTPInWrpqgvyNbPHGqwbjwWydPLtdNOP82eTL1a12Zq/YZmmsyM?=
 =?us-ascii?Q?sDOpbWcwGt5kFOgH3hv40LxzZl/x+hHnCfC+O3uzj/gw5nXSR8VaAbg1NqGP?=
 =?us-ascii?Q?UIZOx4+MJAKTSJg1LPheUcUBDyYEvGQs9qVVFOOIFYtxMfyNVui2X7rr5uoz?=
 =?us-ascii?Q?hk/EDEhYnrr3AIgf5slCyM39QtFcYC43ZmD9sRIekeVrBs10DpJc8vpWyWSu?=
 =?us-ascii?Q?zNO+ZkAREkTPA+XsY9V1ikgamSsc/GIxwgWIq1M7zws4Uj/QNZNwARJyx7Y1?=
 =?us-ascii?Q?WXd29tD+T6CKnE7igfdT/zRJS68q6j3Nykvt8qrcoMl9NHuhrPv0oNgl6vH1?=
 =?us-ascii?Q?m5cyDE8dwzjEhSv/CtUYNvMjPYhjFJIES+jnjP8o8RqpN9o8vR20dIPodQ3o?=
 =?us-ascii?Q?8lZMRFIiBVg21j9Zp+zeb+MdGNPyXl+HPfyFxIscIrlpM00wTM51N3sJ4YXI?=
 =?us-ascii?Q?Znl9/KPHsCh8e9aFyM/M4CB1kDc5q9GnhKyscm9LsFdWqpI07WeJDMAzeKyI?=
 =?us-ascii?Q?Imx5kmUlVPA8sfzweyayHHM+8L8+TLC5Tvq2b0NwY9PCk5OeMIf0djF8a2Ex?=
 =?us-ascii?Q?WlwTB+baNJBI+OXA8YcBq1vflUibP7PHjWpOKjrNXhwWgNFKib/wjbUCrA5I?=
 =?us-ascii?Q?fIXtvM3sTgtFL0JwTESe/klAZGIiUGAD1X8IQhM4jFeuA51aEhz8Ge7IbtHe?=
 =?us-ascii?Q?T6yfew=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)(82310400026)(35042699022)(376014)(14060799003)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	5U5FMGfdAkaLqB0VuMscvakr/+o+Cryhw9LC8ALSLpninK4gkSKj9s1MTGBmUjTOhRpNu7Gb+nBA9sTRql9OlI2DhIW+et/AYe4bf/Li96UWHoS5QvxTaD7Yqq5hB1Pjo1OIZDl9Qjxr9WlSXRoKnH2Hao1AYmpu9LUrtSk/t6zMIWppmAyLHAO3xNzu11yyO5AfmQBjqfe2Ia6OpDTvQPC+Ltl1KEssmc4eVe3FdjZsnHI/r62mUhIgZdxxIPXocv/oUh7T6Sxdhrto/bDP1J5S+jkqep5VzsqMXpxVrxaWLK9MbhyeY3Ztjkuw/EEoMzFpm46bl2fUKQMIThfFLOwcXIYLiApkdyIOYEQ5l3Ra6ismWpbl9MkHkdxyrUYeD//T6FZbyTvZdkNTXa3RVd5KKnHp9Dq7tIyP0jOLBfYWCdsLg24KOlSEnUDnb1wv
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 13:07:13.0736
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 22d97994-5aee-43c8-ad25-08de63ee502b
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:
	AM3PEPF0000A795.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8575

Hi Michal,


> On 4 Feb 2026, at 13:42, Michal Orzel <michal.orzel@amd.com> wrote:
>=20
> When a physical memory bank spans multiple guest RAM banks, the variable
> psize is modified inside the allocation loop, but the modified value
> (instead of the original bank size) is added to tot_size. This causes an
> incorrect total size calculation leading to false panic. Move the
> tot_size calculation right after acquire_static_memory_bank().

Looks good to me.

>=20
> Fixes: 487975df53b5 ("xen/arm: introduce allocate_static_memory")
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> xen/common/device-tree/static-memory.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>=20
> diff --git a/xen/common/device-tree/static-memory.c b/xen/common/device-t=
ree/static-memory.c
> index 0774d0680604..ffbc12aa24df 100644
> --- a/xen/common/device-tree/static-memory.c
> +++ b/xen/common/device-tree/static-memory.c
> @@ -118,6 +118,8 @@ void __init allocate_static_memory(struct domain *d, =
struct kernel_info *kinfo,
>         if ( mfn_eq(smfn, INVALID_MFN) )
>             goto fail;
>=20
> +        tot_size +=3D psize;
> +
>         printk(XENLOG_INFO "%pd: STATIC BANK[%u] %#"PRIpaddr"-%#"PRIpaddr=
"\n",
>                d, bank, pbase, pbase + psize);
>=20
> @@ -158,8 +160,6 @@ void __init allocate_static_memory(struct domain *d, =
struct kernel_info *kinfo,
>                 mem->bank[gbank].start =3D rambase[gbank];
>             }
>         }
> -
> -        tot_size +=3D psize;
>     }
>=20
>     mem->nr_banks =3D ++gbank;
> --=20
> 2.43.0
>=20



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 13:15:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 13:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220524.1529200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vncj8-0004BA-E9; Wed, 04 Feb 2026 13:15:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220524.1529200; Wed, 04 Feb 2026 13:15: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 1vncj8-0004B2-AH; Wed, 04 Feb 2026 13:15:26 +0000
Received: by outflank-mailman (input) for mailman id 1220524;
 Wed, 04 Feb 2026 13:15: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vncj6-0004Aw-PV
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 13:15:24 +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 8faacc9d-01cb-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 14:15:22 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42fed090e5fso508585f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 05:15:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e25d47sm5783460f8f.5.2026.02.04.05.15.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 05:15:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8faacc9d-01cb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770210922; x=1770815722; 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=DW1XMjjkMC7daK+eUf2R6Q2Ilhfa4Aplle90B9m7mug=;
        b=MpLVlZwhbNdU5n0/Xh+9SRinCKc2U5IW289IOo+ceytAiFjm+2V/+l2pM4fr8ypoMS
         9IvKon/gCCWXy0W+rjnJthgrwuT1mOFwb7JehylXz2EOPES9LLQj+2o/MXBVwBhSrwy8
         SgZgHL+78ceUo1K65ASoWFSyb+pi7w43r9Co5hsNr2/92GupqlknGgDlACO+iqBLlFmE
         jx9xsOBeluZbf/UR2TCGjrd4NbbuVdWpQxpw9iYq49coz9X2tTlT8XJZGg2Bc8aJm8pt
         6rZxZ2BdmE0aIiHQYNFrtkMshfE+5LE0QgoB7wv0wynbS9oL+/fupasduZJaC4gepDVz
         BtsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770210922; x=1770815722;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=DW1XMjjkMC7daK+eUf2R6Q2Ilhfa4Aplle90B9m7mug=;
        b=jdVosb+8oaOnSIMNqwm2nFW+1RkkeH3MOba4zvvrUnkc12LR8fkCgoQD1ggF5IjXal
         0p7VnJ2zijgqIIhZ8n/v+fPdzwr+0yMluEf2vtpDWa57UyuBkPy9u2LYrerwe6LCrzao
         OEtwsmIG435E67xCBVxskUznNFBV/t5kEeV+c2MvSn68P6n9pjfqveJGU5pvbUvkT/uE
         UeUoyBuUZ1aBXw+i+zzOF65pozig1A+2kG21ikMnYH7ZSQQZ4qezXJvzT2s7Su3MuBLr
         L7EXaxpY0FNdrdJen60RpRjtqJk3sbhI0vDR27vejpnCDMnVpT73t0NLeoAfU5gNIs+f
         LdUA==
X-Gm-Message-State: AOJu0YyXqClhFzQ9q4g9h2Gv47pFz2WpOpISzIYk7H/en3zrfr6qSraP
	A46J3DJsoxDLK9zgI+9QxLkSKoUxE/wVajHQIgzTeuy1LDG5eqPZOC17TzbApObxsNof0fdGupI
	KJBQ=
X-Gm-Gg: AZuq6aIdGFiCc0L+rVHAT9FBIg3JhD/mLGFU+vXL2zI3aXziIJ8kNkquuqf323Rad9k
	PpECAubn7xC+W7cLD+T7zen0+UaF02ioIHjfZnws5MY3dNQaS5XW1nQFdbgf+Utm85yOeeZeN0J
	LXxg1cAkQ8YrNaNT/QkO/72yRvcwTw9gAzx25fUTNdOve20wyXYTQ2jFvoPk45G9YxQ6peGvpCm
	IF7mCTTtRudVMvwiodcG0lKtC2SmJuWS6SvRdrypc8YIESf8jJCr0tcBXAQ3sVrhnUkYEKFpVBF
	YhqmWh/iz838MjqInquxVBGkSm9jEXPIfWAARQNEJH34xl+gLf2W+G/MMXLdwzerUxt5f/RnShW
	CphP8n2yTPkEGutYI8K4z80o8wh0tkcDe+XSWm3gD6k6Z1wxcbwrhpIF/Mv/yMf8AAVOR81NETD
	59vB7g8aLEsP1MPekhan59/2Utx39ZTurRtUwPlM/tzxgDZEmvnflr4Do3J2afmNhd5fFSjvxkb
	mU=
X-Received: by 2002:a05:6000:438a:b0:435:9bf7:c6b9 with SMTP id ffacd0b85a97d-43617e3c919mr4173033f8f.24.1770210921978;
        Wed, 04 Feb 2026 05:15:21 -0800 (PST)
Message-ID: <e4296634-1498-4df6-95fe-6b17f50248e5@suse.com>
Date: Wed, 4 Feb 2026 14:15:19 +0100
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: relax barrier in sync_vcpu_execstate()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 counterpart in vcpu_context_saved() is smp_wmb(), and here we don't
really need any more than a read barrier: The concern expressed in the
comment is void, as updates to the context are necessarily observed ahead
of ->is_running going false, by virtue of said barrier in
vcpu_context_saved().

Fixes: f6790389613c ("xen/arm: sched: Ensure the vCPU context is seen before vcpu_pause() returns")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
As to the tag, this is one of the cases where I'm on the edge between
Amends: and Fixes:.

Subsequently we may want to move the barrier into the sole common code
caller, seeing that the other barrier also is in common code. Furthermore,
seeing that for all but x86 the function is then entirely empty, we may
want to allow it to be inline to avoid the unnecessary (tail) call.

--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -342,11 +342,8 @@ void sync_vcpu_execstate(struct vcpu *v)
      * Per vcpu_context_saved(), the context can be observed when
      * v->is_running is false (the caller should check it before calling
      * this function).
-     *
-     * Note this is a full barrier to also prevent update of the context
-     * to happen before it was observed.
      */
-    smp_mb();
+    smp_rmb();
 }
 
 #define NEXT_ARG(fmt, args)                                                 \


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 13:17:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 13:17:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220534.1529209 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vncke-0004fx-Mq; Wed, 04 Feb 2026 13:17:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220534.1529209; Wed, 04 Feb 2026 13: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 1vncke-0004fq-KK; Wed, 04 Feb 2026 13:17:00 +0000
Received: by outflank-mailman (input) for mailman id 1220534;
 Wed, 04 Feb 2026 13:17: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=THT1=AI=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnckd-0004fi-VE
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 13:16:59 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id c7eaaade-01cb-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 14:16:57 +0100 (CET)
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 0067F339;
 Wed,  4 Feb 2026 05:16:50 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.132])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 188E33F778;
 Wed,  4 Feb 2026 05:16:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7eaaade-01cb-11f1-9ccf-f158ae23cfc8
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>
Subject: [RFC PATCH] xen: Add macOS hypervisor build support
Date: Wed,  4 Feb 2026 14:16:30 +0100
Message-ID: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen does not currently document how to build the hypervisor on macOS, and
there is no Darwin configuration for a Homebrew-based toolchain. In
addition, the Makefile silent-mode detection can be tripped by -I paths
that contain an "s", which hides build commands unexpectedly.

Add a minimal Darwin configuration, document the Homebrew toolchain and
PATH setup (including prefix differences and an out-of-tree example), and
clarify that the guide is tested on arm64. Tighten silent-mode detection
to only look at the short option word.

Functional impact: The Xen hypervisor can be cross-built on macOS (arm64)
with the documented Homebrew toolchain, and make output is no longer forced
silent by --include-dir paths.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
This patch does not intent to say that building on mac os is supported
but it can be helpful for people developing on mac os (I have been using
that for a while) and is solving a Makefile issue that could be hit by
others in other environments.
The doc file is quick attempt to document that for others, happy to get
comments from others to find out if they think this is useful or not or
if this should not be documented there.
---
 config/Darwin.mk            |  4 +++
 docs/misc/build-on-macos.md | 66 +++++++++++++++++++++++++++++++++++++
 xen/Makefile                |  2 +-
 3 files changed, 71 insertions(+), 1 deletion(-)
 create mode 100644 config/Darwin.mk
 create mode 100644 docs/misc/build-on-macos.md

diff --git a/config/Darwin.mk b/config/Darwin.mk
new file mode 100644
index 000000000000..64a1dfcb42ed
--- /dev/null
+++ b/config/Darwin.mk
@@ -0,0 +1,4 @@
+include $(XEN_ROOT)/config/StdGNU.mk
+
+# We are always cross compiling so fake COMPILE_ARCH
+XEN_COMPILE_ARCH = Darwin
diff --git a/docs/misc/build-on-macos.md b/docs/misc/build-on-macos.md
new file mode 100644
index 000000000000..6b56cd8eccab
--- /dev/null
+++ b/docs/misc/build-on-macos.md
@@ -0,0 +1,66 @@
+# Building Xen Hypervisor on macOS
+
+This guide explains how to cross-compile the Xen hypervisor (xen
+subdirectory only) on macOS. This does **not** build the tools.
+
+## Prerequisites
+
+Install the following packages using Homebrew:
+
+```bash
+# Cross-compilation toolchain for ARM64
+brew install aarch64-elf-gcc
+
+# GNU tools (required for compatibility)
+brew install make gnu-sed
+```
+
+Homebrew installs under `/opt/homebrew` on Apple Silicon and `/usr/local` on
+Intel Macs. Adjust paths below accordingly.
+
+### Verification
+
+Verify your installation:
+
+```bash
+# Check cross compiler
+aarch64-elf-gcc --version
+
+# Check GNU make (adjust prefix if needed)
+/opt/homebrew/opt/make/libexec/gnubin/make --version
+
+# Check GNU sed (adjust prefix if needed)
+/opt/homebrew/opt/gnu-sed/libexec/gnubin/sed --version
+```
+
+## Building the Hypervisor
+
+Set up GNU tools in PATH and build:
+
+```bash
+# Set up GNU tools in PATH (adjust prefix if needed)
+export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/opt/make/libexec/gnubin:$PATH"
+
+# Build Xen hypervisor only (in-tree)
+cd xen/
+make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc
+
+# Optional: out-of-tree build directory
+# make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc O=$PWD/build-mac
+```
+
+## Architecture Support
+
+Currently supported architectures:
+
+- **ARM64** (`arm64`) - Default, uses `aarch64-elf-gcc`
+
+Other targets may work if the corresponding cross toolchain is installed,
+but this guide has only been tested on ARM64.
+
+## Limitations
+
+- **Hypervisor only**: This only builds the Xen hypervisor, not the tools
+- **Cross-compilation only**: Native builds are not supported
+- **macOS-specific**: Instructions optimized for macOS with Homebrew
+- **GNU tools required**: Native BSD tools are not compatible
diff --git a/xen/Makefile b/xen/Makefile
index 13e336ba5484..adeb869f32ad 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -116,7 +116,7 @@ endif
 # If the user is running make -s (silent mode), suppress echoing of
 # commands
 
-ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
+ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)
     quiet := silent_
 endif
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 14:07:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 14:07:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220552.1529219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vndX1-000428-Az; Wed, 04 Feb 2026 14:06:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220552.1529219; Wed, 04 Feb 2026 14:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vndX1-000421-8M; Wed, 04 Feb 2026 14:06:59 +0000
Received: by outflank-mailman (input) for mailman id 1220552;
 Wed, 04 Feb 2026 14:06: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vndX0-00041v-E4
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 14:06:58 +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 c2e5c3d7-01d2-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 15:06:55 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-482f2599980so41315665e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 06:06:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48310919211sm71367365e9.11.2026.02.04.06.06.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 06:06:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2e5c3d7-01d2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770214014; x=1770818814; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kAdJKCuMR2VPVKGrUYXATSAIcaDw8lax06lydPETrdo=;
        b=RQO3DdGhUYe2xUr/C0yKXouqcbkiiECm4z639lnRwawFMTtFzkMV1e2vX7zZ1QWDRk
         JsiQPpmn4jP2th+snpwq2iY7H8rKKRRbneVPMwHIOq/L88seuXK57oiKc+5sGXWT5D27
         5fC+mt8t582U+M7QElIdJLMBfFtglfsi8AhI2gl8tNsUoAELxl7wMMhaXX3kebtUQ7MW
         glSjx24nBe6KQDJGyRFa3ZgCWHO/Ag/QQNwgKzEyeKR9yWSGzxD5pa7G6989U33ap+Fn
         lRFTcOrby8Pe94b430sQomxSBC86T+4riJc/dI6lGlc9ZTIJ8pgHfz1QLtLSOHu5AXjG
         jkkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770214014; x=1770818814;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kAdJKCuMR2VPVKGrUYXATSAIcaDw8lax06lydPETrdo=;
        b=mrN9Y5P5L1F3sDu4t12yCk79queHfQSmeQ5e/WtU5uPmUtFoN3deHH5qnXjeni80QQ
         k2Sjqjp5yg8jZIGxtO2HQpSsDDTWtHfLckfrzdycSQhAh040rXAP9d8lIHRQrmGAEL66
         lNebBAS8QuuYTZwhvmNqidcuQpXqUygtqJ4kHy01ZtDczJnvfwrkc9q7XXntRmR4Idb8
         QifK/pI4Z6JWV5ss4mp7xp/ko8xx3oD3mTGIV0RtAI2X3f/Pqf8VT0VB/sS34iPQ6Htz
         1ROwa2as7MPaG4ECdjV54/tsCWY20Rldpe/BzIMV4glgTbi0BvuNhTWg2o5cWUIej1Fb
         n3Xg==
X-Forwarded-Encrypted: i=1; AJvYcCXtdgYhRzVGV3UmBqhebdzqWQYRPUtdtfDvC85Pz8mEKKERzAyzSymVsA0CJgc4G16TorI3l+FvuFg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwL8fUSAr5R2bdmcoBW9E4TOoH69pVdhO8k9NR1Y965tFSzCBw/
	sih4ftU4pjJlXJceZd3YMGoh5L3UQlxyQPsBThFMI/q2wx+cgHXAbttjJ96f8davUA==
X-Gm-Gg: AZuq6aKWllybqOKWePT3berlAYCgbyILCcf39BL+hj26CR3Mnfd9kLcR70hXusdzAD+
	yEdzvR+F5cnEKrBy6Mwkc8fwBhH4zwzVX0NUOAU4+0th+FrKCD6/3lVgUNQ+9kuM+C6+CC8RC6s
	oaLkf9dcU4h0KZbBGW0MJhNH5gHejD6+ZDfVkRtT65PYIjPsv+fQ/nh7XDeN+lnC25L9MmY0ML4
	VAnoy3vWT1g05SIt1o3OvC7ShzQKX8hulh/Jyk5Vn3F+IiU7A22w6ZSy04SJwxXZJQ3+DsaMZPa
	hKV/0dZ7cxvtavdcgRbgrsn8uJG8LRfrhKpiqyBgMCpLTLtbgRgnnoQUg0HFKGznM4SUx95y3vy
	/pQ7lUV25g6Q+GzU7zWyA4NOL+qFfpf8nQQsZ4gkZRMjM0U6tmyTHLjMuCjDpF5a82W1vT3BQU+
	DPveG7Jpenby69A70jBmWRLRcFj1xYl0Wrm6rKVF64VuVH/8oAqFdBxXsPGeEMaKKppbD79ten7
	kM=
X-Received: by 2002:a05:600c:680a:b0:480:6c75:ddce with SMTP id 5b1f17b1804b1-4830e9a9b17mr43613705e9.33.1770214014364;
        Wed, 04 Feb 2026 06:06:54 -0800 (PST)
Message-ID: <82540f88-ffcd-46a9-9813-ebe42ef0b0ec@suse.com>
Date: Wed, 4 Feb 2026 15:06:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
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: <20260204122553.75711-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: <20260204122553.75711-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 13:25, Roger Pau Monne wrote:
> The limitation of shared_info being allocated below 4G to fit in the
> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> start_info field is 64bits wide.  HVM guests don't use start_info at all.
> 
> Drop the restriction in arch_domain_create() and instead free and
> re-allocate the page from memory below 4G if needed in switch_compat(),
> when the guest is set to run in 32bit PV mode.
> 
> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")

The tag is here because there is the (largely theoretical?) possibility for
a system to have no memory at all left below 4Gb, in which case creation of
a PV64 or non-shadow HVM guest would needlessly fail?

> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -247,6 +247,26 @@ int switch_compat(struct domain *d)
>      d->arch.has_32bit_shinfo = 1;
>      d->arch.pv.is_32bit = true;
>  
> +    /* Check whether the shared_info page needs to be moved below 4G. */
> +    if ( virt_to_maddr(d->shared_info) >> 32 )
> +    {
> +        shared_info_t *prev = d->shared_info;
> +
> +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
> +        if ( !d->shared_info )
> +        {
> +            d->shared_info = prev;
> +            rc = -ENOMEM;
> +            goto undo_and_fail;
> +        }
> +        put_page(virt_to_page(prev));
> +        clear_page(d->shared_info);
> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> +        /* Ensure all references to the old shared_info page are dropped. */

"references to ... page are dropped" reads as if talk was of page references.
vcpu_info_reset() writes out pointers only, though. May I suggest

        /* Ensure all pointers to the old shared_info page are replaced. */

?

> +        for_each_vcpu( d, v )

A common oddity, where my personal take is that only one of two forms are
possible (without ./CODING_STYLE saying anything explicit): Either such a
for_each_... is deemed a (kind-of) keyword (like "for"), then it wants to be

        for_each_vcpu ( d, v )

or it is deemed not to be one, then it wants to be

        for_each_vcpu(d, v)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 14:21:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 14:21:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220566.1529230 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vndkO-0006yG-EZ; Wed, 04 Feb 2026 14:20:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220566.1529230; Wed, 04 Feb 2026 14:20: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 1vndkO-0006y8-Ap; Wed, 04 Feb 2026 14:20:48 +0000
Received: by outflank-mailman (input) for mailman id 1220566;
 Wed, 04 Feb 2026 14:20: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=hC1S=AI=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vndkM-0006y2-Jq
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 14:20:46 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b1a762b4-01d4-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 15:20:45 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA0PR03MB5387.namprd03.prod.outlook.com (2603:10b6:806:b3::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Wed, 4 Feb
 2026 14:20:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Wed, 4 Feb 2026
 14:20: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: b1a762b4-01d4-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Cl/cnW8CNADFT1I9dswLkvVheLb7Ql6JlIyh+tlQJZgtuluQaLZbX+6CB0fA4JgEG0pYByTUQvYZewFep87iwlAOWpweJnRpLxVQQEuAKaCCghYpOBh0NPHb2Jelv+xMGx2Fg5k15hZU6+foPO5C/gixdMtDf42n33O3ZmnokPIQJP8Zum2SY4MFods9SyLEdj/I9OxQ838zfxP79/2Ayql/eGdFKIDOrDxEuqLXWe85/0MXoWlFh/0O630c3d5LA3OS0eXdCOqxv62ic8xGOQCip2qih54920uHZvDCh0nTklHIDNVx5bEGazl8nNap+Xn6Kp6PRuFtR7GkNvnMdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cngoLaHDWa2aLp8T19FF7Nox9rQNOz6kLyqOREK9uHU=;
 b=nUxjpA5XD7fYxQmjEngXoATKL9BHTYmA7v+VrQaMS6pc1rLdJZQRiP9v+fuY+ALHdhG1L+yiPKUdyqB5bUIhaqae6ULrYzhG9gcKlf0bp13AAzDtGbvJuV7/dC9XYUPEB/kTmqWRZO6CzZpb6hTEStkinEvfmIDxpxnpK8/thFZnavqoR4nIAUvIpLV3QSDG7ZUmWgLQHP6yi6eol7maAt0zP6w7XHrLH2FJPjMp3i0V7rDdk/j69T+KDjCZG+VrMbCKItWdfWQ3CMkCbHaDzdvwJ2VgBi/wpYYFGAAz0AlgjlOFp1ZYJMnZvsgHntqmGQJsmbp3m4VLck0Bx3J7gQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cngoLaHDWa2aLp8T19FF7Nox9rQNOz6kLyqOREK9uHU=;
 b=DV0ZgClUpSsSReafdQv9ob92R12vbglxvRoikXkWI/h0s56RaAqQnXtcsmHU6XQbUINt1spZpsHgUjVbC4IM7z6t7M/uLHbmXYHUTKdMLdd/AZqWaAQrrvd5xWJ7ehx+JPeTR8jHz7w72UMb/MBS1z3i/EYZ0b0YcsISzl216Gg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com>
Date: Wed, 4 Feb 2026 15:20:09 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260204122553.75711-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260204122553.75711-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0025.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:313::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA0PR03MB5387:EE_
X-MS-Office365-Filtering-Correlation-Id: a9c7f83c-d0e8-4d39-7813-08de63f893ea
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?c2l4VUEwRzdsS3hMejRxZUNCYlNKdEpSQzAxVXhNRzVoUVdsb0NMZ2RDaVU4?=
 =?utf-8?B?NVRNeWxVRTFKalczSE80MU11U1BRYS9NQlZkL29jdGJWNkFGdkszUWZlZ2w0?=
 =?utf-8?B?QUgySm9Ia2FyUVFwcjJERFRMZXdidXgrbGpKTGpuNnp1dFp2amJuNGRhQ2VL?=
 =?utf-8?B?T1c3V3R1emlBS2ZsdDJDaTJDeGtmS1Y5QmhiV3B3bDc2ZVZwYXlzbG12cUxL?=
 =?utf-8?B?WEh2RFJhcnhkdnlFUXVYWWlsRmIvZ212Y0JBM2d0aWFqWWdKL1RjZy95a2VD?=
 =?utf-8?B?QVhXRjJXN0hxeHJGVnVWVGxIdzRTMVNHV0E1NWFPRGVmZWN3dUZOUXdVTmky?=
 =?utf-8?B?UjdVc1BlYng4THlBdW10RDg0bGJpdkdWMW5EbW5FRzZySkR6amtxck9VL2lo?=
 =?utf-8?B?MXNTVnNLNUhSY3RRcHJJOEJORlUyaHBkU1lQSzd0UWkrVEpZWFlOMC90V0RO?=
 =?utf-8?B?bXFXSGhTMmhyS1FxOHFIZnRoOENhazkwNTkyNkF4QWlzL1oxNURQNUxmc1Na?=
 =?utf-8?B?UnkvRGJhZWNhVkhlSXJoTkNWdjY2ZEQ3UDFiWHp5TzhFY2dsbFZCYjVDdnhj?=
 =?utf-8?B?eFRkbk1xUzdLN2Fna2VUbXhWUWZyOUd4Mjh2YjUvc0dKdXd4SFk4amxyZ05l?=
 =?utf-8?B?TUtmTXdtdU1QL3UxUnRGMXNOTHpZRmt4MW5MVGRGVUI5b1JmSzhiZTBDaEVX?=
 =?utf-8?B?VVdDc2lxSk5QUW1scnlQV2ExMUJ3alZldHpXRVp6Y3g3ZEpCRTJtNng2MUcz?=
 =?utf-8?B?cEcyTVJiZzdxYTc1ZUpLRWFkT0pxTzQ3U3g2bi8zMElrTTdwSVE3NW1TVTZD?=
 =?utf-8?B?U2NpdUUxWGgyTkF2cXkyWjF0Z0kvbzQ4L3hjb2hES3NvVUJkd2NYU3JhZ0xi?=
 =?utf-8?B?eUsyemVYUFZxbC9GeUhzZFNSZHAxbkxXeHJqL1lZa28xWC9KV1Y4QTJlbG9i?=
 =?utf-8?B?eFl4ak5Od3N4SWtNVjljZXJqWkJucjc2UnpIRmh5MmpHOXlCdXdDQWxBemdM?=
 =?utf-8?B?RzB1L3lQc2pHODZRR3VjV1BpQlBwRGMzbUErWDR4VFJHY1NscmcydC9CUEtV?=
 =?utf-8?B?OU85cHBxejEzUTU2akt1ajI2N3JUeWpmdXR6bzdJSWRvVVNyRTRVWFVTdTlQ?=
 =?utf-8?B?OWE5Zzdpc3pwbmpJOW9Lc090TEdDTURQVXBpTjFuV2FESEFWcmRoWkxucU5S?=
 =?utf-8?B?cit1c3ZhYjBXZnVWNmJ1c1BsdWtUUVc3TDBPQWJ1WmM4ZUxBK2lHRkcvT0FI?=
 =?utf-8?B?dEdaTWxyaTRZQnc1cFR0WE5qNmxYQmljc01hY2x2WnNqdnJkVm9ua1ZmdGpq?=
 =?utf-8?B?UXFHL3Bob0tyQVlBR0laUE93VGoxbCt6SnE5T3hwdmlxSDNQbmxhNkJLSm90?=
 =?utf-8?B?eTRvai9PT1pQM2lUa0k1R3hnZ2xzKzZyQ2ZaMG1YdTBqZGZjWmpJUkVsRlor?=
 =?utf-8?B?eHVSYm9hV05Od0U5cXd1cUMvRElSSUovTnQ2SDFlMk5EYjVCSnNuNVgvb1or?=
 =?utf-8?B?VTJ3MFhXNVNsQ1JJeWJ4a09ZR1FWcFMwSUZVLzRTS3V4REQxUU9HdkJ6M01t?=
 =?utf-8?B?L3c2aDdRaDBiL3YzUUJHbWZTTHVGemJYenpOekpJMnh1d3F4TjR1S1Y2cGpx?=
 =?utf-8?B?dmkwalJaYTh1M0xJaHhHd3lZTHJMcFNCNE9tQVZEYWRreDZ0aUU5RUtlcjVR?=
 =?utf-8?B?VlJRU2JjZTBNN2UrN21KdWgxMFZZejJaTk02WkR4QWt1RmQ0UkdLVUpBTzNh?=
 =?utf-8?B?MWNOb2lYN2dlOFl2MWJ5MFRMUUtQaDJEQ2dwYXU4Sit5MnN1ZGtzMlpFOTkz?=
 =?utf-8?B?bnFEeDdYNUd1VEVUeUJwcHRoTUwweFNYV3EzakJKMktoTzhiMHIzSXB4cCtj?=
 =?utf-8?B?ckdMYWo3UlFNby94LzZ4N0hDNVNGK1drZjQ4S3lEOWNYTktCTVVFSyttajhS?=
 =?utf-8?B?K09OYWpyZjZhaExINnRlRnN5dUFuUmFPeDdqM0l4MEt6K05DdkZ3M3YwMXdK?=
 =?utf-8?B?aE5Lenl6bFA3clQ4WEM0M3lwNVBqdGlPUGlYZ1JwOFBtUWVQOUg1WVZqWWVx?=
 =?utf-8?B?OWpFWUdENkJqeTZTaElMaXNBcThUOHEzWWdUSmFTWjk0S2dEbTlVa212Smtl?=
 =?utf-8?Q?p2vA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R2M1eGtvUHo2VHNWSi9zSzFhY0VjZXRTTUpQNkFNclRUUS9qaC9GZU9PRWFY?=
 =?utf-8?B?OTdaR21lSHFtbjhpRFpoelkySUI0WlQ5OTBLVHlSWGNpWlI3KzhWSm5FcjZp?=
 =?utf-8?B?RlhoaFVsUzV4RGl6blQxNHdIWVdjN0pzdk5CdUcva1k2TVlWTGgxeUp4NjlD?=
 =?utf-8?B?NURnK0hveHpUYWpJZWhFWGhyZHUxbW13MTV0SVRIMUdudEk3VVlCdEVwVDd1?=
 =?utf-8?B?RllKK2QxbU9ESklpSlQydGd6RzlKVnlLR0ZpeVJBZER3TllPRWtJYzF1SDJh?=
 =?utf-8?B?OEo2cFdacTAzMkROL0QrQVhrOVNUOFRHd0RHUnBjTW5vYTNzbGRaOWVBcGlv?=
 =?utf-8?B?bXFDSFpObDV3d0sxdko0aTNLYjdUbzBkaDd1T0JBTVdsaTlObDZuSHA3MFA1?=
 =?utf-8?B?RW5uTWdHdk54aDYyVDRYRGdyL2dWVTVQdFNTQnRyQkQ3UStaVHA4N1pOMncx?=
 =?utf-8?B?UGsvM25GMTlSNEpGWDBKU2VGbjB5NVhwMDlPdmI3NHhSMWd1ZWpoZnBNbjJL?=
 =?utf-8?B?cTlMV0xqeHVTUmRIalZUUUhpT3BpK0pNSURLSU5CSG1MMmVvTUJHNThibi90?=
 =?utf-8?B?WXRTMGdiY3g0NStnM1JQMHQwM0FEbGthZ04yY1IrdzVXZHFrcjVzR2FWcGdS?=
 =?utf-8?B?R29xdVA1Yy8ybzZFYkVSZGJBQkNMQkJ0SGZCdzJmY1RraE1vM3FnZU4rT25V?=
 =?utf-8?B?WDQ4ZlJoMTg1WFRjOHMyQ245dmw5Q0RVUTlnQVVzaVR5WktmRmx3MjBweCsv?=
 =?utf-8?B?bVZIVUlpVVdmYWxHY1p6REUyek1TQTJzYkJkOEMvT1J1L24vYUlQQ2V2RnN5?=
 =?utf-8?B?QmlXS0JOUjZIbWlNa0xOcVRCL3hGOG1Hd1NUS3l2QUFsZ1NqZm1nWngyRXpM?=
 =?utf-8?B?MnhpcnpQWEFNMmU2MG1EaGs4cm1kK0srN1R5K2VqcXk0VEdHOHRUc1pXY2NC?=
 =?utf-8?B?SmhiTmwwYVpIQmlpeG94bFhsMGVoYkcrMyswemdjWkk3TDZsZkR0R1dEVkc3?=
 =?utf-8?B?VVl3Ly92cWorWWhaR0NGWmlOaDlZdGZJQm1SYk1oTngrL3d1c0hrbTBYa1lp?=
 =?utf-8?B?U1ozNHlYdXZpY1lPckhmVGlOblB4K2xvOU00SmR0b1QxTDRwcUluc21SdGtF?=
 =?utf-8?B?bTAxSlRvQ21iazFpMHJLWnl4NkRGWGszYmt5RHMvaW1QdHp4Z2hmN2FJZ3BL?=
 =?utf-8?B?Y3FnRDAyQllXNk4zci85Z2oyclpTYkhTZTIzM3d6c21RMEhqaWtvaUMzYjc1?=
 =?utf-8?B?LytoR3kzWlZBYVBybkJoNTlURENQZFZ3OU1IeTRNNkR2a09iblFWZzJqNWxw?=
 =?utf-8?B?bVE3S1NEQnJpZTFWT0lzd0xqWURhV3MvamtXNmNFSjRJZ2tDUW50RGxqMldY?=
 =?utf-8?B?VzRzNmZ4Q0hWVHhzQTArTkpTdWxRL2tOYlFQU2FnMzJseWx3UUl3QUdzdDVh?=
 =?utf-8?B?U0srSjBzMU9saEkxU2sySStqR3FYR0lKZkNtTlkyNGRmUWpUc0J4OUh1NFla?=
 =?utf-8?B?b3o3OTVKVGkwSmRlSUYremY4eUlMc2l3bFB4ZjBDYzFVRzRjNzZSZ1VhRzE3?=
 =?utf-8?B?VkZBV2kvRk9DRWR5UldpaWxkYVhwWVM1UE0rWWwrVGY4UDhUWURlVjdlZ1cv?=
 =?utf-8?B?SFZnazNERGJvOGp1NHZqN2RBbVJEeThhQlFjOGt6eXBxTUtEQzZyOTBNUkFU?=
 =?utf-8?B?eEVRTk1iamlicnN3eXF1Rm1yYUlybm5pQXR6Lyt6NDJzTGRJVDJsSWlnZUpp?=
 =?utf-8?B?dE91UXU1ZWJQeXdGNjc1ZElmeG94VmJLZ2NKd29ObzdLSDU3MUdnLzVxdDRp?=
 =?utf-8?B?bmgvVC9QSmJjbCtvdG9hZlZqM0FpRFJsNytsV1FQTngwbnZUVUZ1RmgrcGxT?=
 =?utf-8?B?NGdwcFNLbVpWcXNZYVpoNFZjT2xpVk9aMy9Zd2tJMWpUS25PdmlLOXhja3Vl?=
 =?utf-8?B?WlRmV2lvOWJsZGZrMFB4ZGtBTVFKZC93enVrMENkbE5yVXRSelhzRXJidUhR?=
 =?utf-8?B?TmpxWlZKeHpYb2NzRzhtWWgyclNzbksrbEE5UzNtZHZaMTRFSjB2QkdXdWRI?=
 =?utf-8?B?aGd0ckd5MjlWQmpvSEZyMXF6RkJQb20rdVBNY2NITWZid0t5czZtUlRKN0tv?=
 =?utf-8?B?ZWdWaFpISUFRNDdqZk8vMjhzZ2JSMnNlb21tTE9tUll4Vy94S3gwdWlKNHRS?=
 =?utf-8?B?TDNtSUhWc05DVnA1V0dWR0tRRTA2ZnRERk9kN2M3T1poSzdta1dOTWFGUDR1?=
 =?utf-8?B?YkJPdmNtK0JmQmFyUFVoNVFlcVRjNDR4VWdMZ01iRDMxcUJ1ekY4QnM5eWpH?=
 =?utf-8?B?M3pyemp6c1A5bCtOUitDcHNhOUtJVXRLVFFhWXJLNTE2ZklScHJVUnY4UnZK?=
 =?utf-8?Q?lZX4d8mqIQ8T1iZU=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9c7f83c-d0e8-4d39-7813-08de63f893ea
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 14:20:41.8671
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +GLF7htbrOqPFlfRmWQ1yeYQHZfWckEocAozmplwX9/zYjQECwH2GofAPKZP4cDKLICUuALyqeFIKVN4lW8s3Xo58rcGO4gWzYkTfXQWEc4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5387

On 04/02/2026 12:25 pm, Roger Pau Monne wrote:
> The limitation of shared_info being allocated below 4G to fit in the
> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> start_info field is 64bits wide.  HVM guests don't use start_info at all.

All shared info?  HVM does use it, but doesn't see the MFN.

>
> Drop the restriction in arch_domain_create() and instead free and
> re-allocate the page from memory below 4G if needed in switch_compat(),
> when the guest is set to run in 32bit PV mode.
>
> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
>  xen/arch/x86/domain.c    |  7 ++++---
>  xen/arch/x86/pv/domain.c | 20 ++++++++++++++++++++
>  xen/common/domain.c      |  2 +-
>  xen/include/xen/domain.h |  2 ++
>  4 files changed, 27 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index edb76366b596..3e701f2146c9 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -882,10 +882,11 @@ int arch_domain_create(struct domain *d,
>          goto fail;
>  
>      /*
> -     * The shared_info machine address must fit in a 32-bit field within a
> -     * 32-bit guest's start_info structure. Hence we specify MEMF_bits(32).
> +     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
> +     * field within the guest's start_info structure.  We might need to free
> +     * and allocate later if the guest turns out to be a 32bit PV one.
>       */
> -    if ( (d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32))) == NULL )
> +    if ( (d->shared_info = alloc_xenheap_page()) == NULL )
>          goto fail;
>  

The comment is now out of place when the source is read naturally.  I'd
suggest dropping the comment entirely, and ...

>      clear_page(d->shared_info);
> diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> index 01499582d2d6..8ced3d70a52f 100644
> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -247,6 +247,26 @@ int switch_compat(struct domain *d)
>      d->arch.has_32bit_shinfo = 1;
>      d->arch.pv.is_32bit = true;
>  
> +    /* Check whether the shared_info page needs to be moved below 4G. */

... extending this one talking about the 32bit field.

> +    if ( virt_to_maddr(d->shared_info) >> 32 )
> +    {
> +        shared_info_t *prev = d->shared_info;
> +
> +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
> +        if ( !d->shared_info )
> +        {
> +            d->shared_info = prev;
> +            rc = -ENOMEM;
> +            goto undo_and_fail;
> +        }
> +        put_page(virt_to_page(prev));
> +        clear_page(d->shared_info);

I think copy_page() would be more appropriate.  That way there are fewer
implicit ordering dependencies.

> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> +        /* Ensure all references to the old shared_info page are dropped. */
> +        for_each_vcpu( d, v )
> +            vcpu_info_reset(v);

switch_compat() can only occur on a domain with no memory.  How can we
have outstanding references?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 14:21:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 14:21:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220575.1529239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vndlC-0007QZ-Ma; Wed, 04 Feb 2026 14:21:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220575.1529239; Wed, 04 Feb 2026 14: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 1vndlC-0007QS-Ir; Wed, 04 Feb 2026 14:21:38 +0000
Received: by outflank-mailman (input) for mailman id 1220575;
 Wed, 04 Feb 2026 14:21: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=THT1=AI=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vndlA-0007QI-I4
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 14:21:36 +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 ccd8bb0f-01d4-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 15:21:30 +0100 (CET)
Received: from AS4PR10CA0019.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5d8::19)
 by AS2PR08MB8805.eurprd08.prod.outlook.com (2603:10a6:20b:5f5::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 14:21:26 +0000
Received: from AM4PEPF00027A61.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d8:cafe::16) by AS4PR10CA0019.outlook.office365.com
 (2603:10a6:20b:5d8::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Wed,
 4 Feb 2026 14:21:27 +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.9587.10
 via Frontend Transport; Wed, 4 Feb 2026 14:21:25 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAVPR08MB9082.eurprd08.prod.outlook.com (2603:10a6:102:32f::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 14:20:22 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 14:20: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: ccd8bb0f-01d4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=T+pX1/FmwF55burFzIY1V5xB/qmEB/hs7+t3EO3qX1gOmnn0k9Mn9Cz1t0ujM5HIvvA/5WFjvaEHVhEKUr2R7Rji7Jqi2MX9hGDWL3T6BJjg8THnzKeoFNMKixvPE6uvQJCQyHNBfWKOMP0gBMAy4vHfka+eRWpK66kA/OdjIT4KQhI0kBBeQ12OzHzDm7L0TTTJLWf70mX4RONcdCnaOs1FD9Dl8iJV1i+roVjJPnS12Hs4+SS81PlZ52GkpBGVf0Fdd06/enn8v3osW4LzGuQfNMABVfgTMVFzhIGcP+MgWNP4n+6/cM4NbgsFVXFsoWXKzBuzdoL8pA0tzOcOIA==
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=a3TgfEc++SekQkuUGacyFfqTZV6P4qcYaQamkIVbr+M=;
 b=R2oNqKrIKdJdg7OWfwjeRH9v6X3uJ9z3V1GFx/xdDEhRGr7ZzJ4Sjuf9n5bLLruzlAXaJLZ5VYlZe3ZyfmwIhocX7Qe/cgjmy++WYA1x40r0OhulSY869m2qZfIOetmcMbkVdyJRV7zRwOfpcOYmHrYmAhdrgbMqWFUqhKcxY8eekd92dsRKQp+i/H8D1LwDigPqDVaFZuvvF9Fu+nQOTFsBLs86H0xPinstSif9gessJLkjVO372IMm4FlCiwQ8/lgZizUM59qTXp9D48u1MkablJZ4U+9FyEWwHpiwWFOjdYSQ51lHQqFFyh8zAn8emNQTjD4jAuJkuPH7CxfhAA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=epam.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=a3TgfEc++SekQkuUGacyFfqTZV6P4qcYaQamkIVbr+M=;
 b=N+y6/SDvlEnqXEQRpl9yl+//xrSPUknw/cLxk95bqpQSxwyvWzIObj/evT8JTpwBPLCXYu79kmFmstCCE5K8sgXzCuxeBFDKjUM62Qt0OlBhY5swKHtpjMKMXJL+GE4oRLrs1+3b+xKRnyRvM66ljFPq7xJ/T/xeTO9UZft9RiQ=
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=GFjRKXqsMkafHKMwUVsbvsomO/vMELicAup2durjUafM13RWjbI08juGALzAE6B7Gkyj5Q5yfnTgDsJbuk2UVD6yCgngg6gL0f2kYS7MjYoKys+JgnyvuaQkCmSPtPBbaXo8j3AuVVcdw30BrBbioweJEf+UgX6P53GhrrSjCr3riFs3mQmHMdL2xlRi/RfzmBAjR35uYEo1I/D0cDOjk5a+z8aQuzxQSbSggtQ9ZkhfSz77I4Aj+n/FLEFCFkal0fJz1PDvfEXVLCb1SvxpZgd0elGM57hoFl0b1Xz2fVkHIH3JCKRVpftYR+nQeTx0K84rUIASGll8giKjH4uTNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a3TgfEc++SekQkuUGacyFfqTZV6P4qcYaQamkIVbr+M=;
 b=Xr2G7yrVj+so+PfG1VBIk1BRhXZh7drKmt6EX80yuXLHj2m7vt5Ub+LHDQOfSaJ+bng7VPXP6z9BgsvACP390SYuOfeRvh3SMqPe50zUyHh3CWTZ8yNkjuGak3nWUKnDpiyFgawNEUEXtVvCs3xlu66Wu0hrXtXR0u65FdP2MhkiNd0unJsRS2GuVE+4ILC/nyiuwGpvlFv72wswImkxw2HALQH9KVWSCqq9L7tKZYhH9iCQ7ofGy4rIoKljuBsFxbMz78J+/uuZsOVjOfC48FXY/6w/HsIz2gEaYfFwALN5uy07MYvs5RnaFrZBAwuarMGk59P2Pp2CEofwrBnDXQ==
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=a3TgfEc++SekQkuUGacyFfqTZV6P4qcYaQamkIVbr+M=;
 b=N+y6/SDvlEnqXEQRpl9yl+//xrSPUknw/cLxk95bqpQSxwyvWzIObj/evT8JTpwBPLCXYu79kmFmstCCE5K8sgXzCuxeBFDKjUM62Qt0OlBhY5swKHtpjMKMXJL+GE4oRLrs1+3b+xKRnyRvM66ljFPq7xJ/T/xeTO9UZft9RiQ=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v5 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Topic: [PATCH v5 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Index: AQHchGj73A4kTs3O/EWyR3N/eFmlXrVyue0A
Date: Wed, 4 Feb 2026 14:20:22 +0000
Message-ID: <6080438F-DB60-4A50-8264-1CD04761B196@arm.com>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
 <63892f56f227fae75d78e2ef2ee63887e74c523a.1768293759.git.mykyta_poturai@epam.com>
In-Reply-To:
 <63892f56f227fae75d78e2ef2ee63887e74c523a.1768293759.git.mykyta_poturai@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAVPR08MB9082:EE_|AM4PEPF00027A61:EE_|AS2PR08MB8805:EE_
X-MS-Office365-Filtering-Correlation-Id: 7d16263e-d0f3-4599-ee80-08de63f8ae0c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?NDctHBbULmDDD6eRP2gotV5LILJnqm2m0VFYsxkwau72HdMLqRxKzUsUevFC?=
 =?us-ascii?Q?IcHX4g+g1gl/qNKfcPJ7Nvv4lyrD7k3mcveZYzH9c9c0IngAvWLVfq1PJYnP?=
 =?us-ascii?Q?N4LVSTX6hkrz0Sws5oR9eaAZkIEz6e8etqTemgNkwTxULdMiBYrpKpOPMwmv?=
 =?us-ascii?Q?EKQUsMceRNd+rZxPe6YZxBNGi9Jv9/+eYWC3URzXir44vqathZ47I0lWvszg?=
 =?us-ascii?Q?5XH0lmSVIi5b0kJ2KwN8vMugrwCNp5dDR4izcSm/ix5ZW5GChhDYv4uVF4PR?=
 =?us-ascii?Q?LbyrDW61DPeJzU2ws8qXh718QNR2dAL1aPe/PQi9D+uGPq8pUbcCHkT2qvx1?=
 =?us-ascii?Q?JSEP43JRVIR/pXkFzO4BsDyea1ycPd82aeV4qADB1MgrUJK1KWpgZpLnf1F6?=
 =?us-ascii?Q?vI7zMsOE0iHTsbIEVfPXpIhxZqb+bu6hKdQCPhBkhdTsjV+LDXPNevo0MMNA?=
 =?us-ascii?Q?tX3EW28k5tTRmVnrVqqfv27A1OnXuzabe54IJMcTw4ks+HzoFflkC14HcoDl?=
 =?us-ascii?Q?p+w2W5cObHwy9l9NItUg+KWR2MEtj22CLSWsIGM56DS1dbg7jNYVyS7s/o7Y?=
 =?us-ascii?Q?V3rx8iIF9XcyTF1JLziqCsVKziJNKm60TrDsNy3GplWJhNC2uDFajRQpNSla?=
 =?us-ascii?Q?2p4k1Cw9JpwCLywVLLVfS6PUpz5zQDokLl6ATRyF5gIIWkn0MTnlkZX/t5gf?=
 =?us-ascii?Q?w7ysgO2Jp+BoOe1mlt/QKrMDxV3hprmQNnO2yvlREX+f2JA/kkVgooyf3OcA?=
 =?us-ascii?Q?FynTP30OlIUmhyDXeBs3L4/rP1OQnqdjGFJ/tFtJI+qcqHHz8Tr8by0FZ9ku?=
 =?us-ascii?Q?zSuLdMWXWaxlptdqcQuiK8jwP3um29HaCztvboDTfaYBUIz1avffaRD+k7h8?=
 =?us-ascii?Q?EeKiIuPSHSlKB0JUQLBiLjdJBC2OlKMn3w1WvZsbKAvYBJ2JZPtm9fQytG/+?=
 =?us-ascii?Q?EJRZdDNUEiPguQ4jWo3cq/k99KD6/Jyke7ag+2jzm7FZhXhjIwIzn7mjlWuA?=
 =?us-ascii?Q?aH4ImRltQdlzqYX6AuWhx/2ft4grH2YI8VHpQNNzjcYv/sy+dAP/Xz7c5fcL?=
 =?us-ascii?Q?GtDXvy+zSi+HwaoLv5eOtlhHhx/CZ0DqCDAzoSXgqt75n3PQi03aJR8zvh+y?=
 =?us-ascii?Q?mDj3sprHZkodlHQUolK5ju65ohMD2Ke6gYwvASIzGBMsVveg/5EkOiDRpql+?=
 =?us-ascii?Q?NOM28ddak5BD6VmH8hgSrGFeK5oXiGCZLDjI+sraJ9HcVOCu6TUOljo5meqh?=
 =?us-ascii?Q?5LsCkzFAc80k4RXI1SMGH/P2A9QZ/DIy6N50N8gVAyrBN76h/oNR5qKAtYy7?=
 =?us-ascii?Q?+KD7JoxRS9OeLQx/VK9xN2QM92Z4XQCi0KS73ReUvaYnJhMVDzdodo2neH8A?=
 =?us-ascii?Q?wXEJtgJIpyjL7885yyltJiF9S1JBsDwqMcw7+H/1jVSoeBBJisjSkwA+2HCJ?=
 =?us-ascii?Q?jEMWysPbvV/+BsP4LOXKfpagk8dNZjQ0H3jxYLFUFktKuAus9kHqfMhbpJuR?=
 =?us-ascii?Q?ruX6lpyTE89NP22bRwdEesKINj0zoWuGH4qrgYZVIibGaemGI1wq4T24AeSW?=
 =?us-ascii?Q?Xlv1Fdoe7H8X0PNL+T8+Xa21o5Bmp9TtwaLiTPUZ1QRL6Clb4PSlln/Chgkp?=
 =?us-ascii?Q?OlgiWQbfx6ZdRXxcbhbrfLo=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <0C38E0A5252EEF45B00E9E2CBE1B1882@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9082
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00027A61.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8c236a60-0a93-4913-f19b-08de63f8889d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|14060799003|82310400026|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?iKc6TZv209q0HZ4Kq2nphS0/WnCnjZjIB8Qxoim6aIRFuCnhW4tbsF6PsZRv?=
 =?us-ascii?Q?PAtKVt/f4zoq2JBA6r4lmMvi081I9IMJZHoUP06GF3+9iVSYHlvjC+NGGybR?=
 =?us-ascii?Q?obodMVUZL6poQZKcYm4m7TeBCg5AHJHPoKngTErZlCVpWLpEZYpX/MEi3SJ9?=
 =?us-ascii?Q?mLbdMl4O57P85tYBxL9pJuufr+36g2U1Rj6avQtpOyvAEQz4dIy7m89m2Xhc?=
 =?us-ascii?Q?ZxC/qBhVxSSU4Vnr1+t7LuXBwgALvRS8FvsIOaYJt0sKuyoqCEqn9G+GIZZL?=
 =?us-ascii?Q?ep6PXlV0T2PM1PPPEnm/5/bWCkPcRxGHUmEw0O9JFqMB/AshzA/t5Rfau4Wl?=
 =?us-ascii?Q?1HxywntekqTB8wbcWhp+UPfZwhdGD7ycG6at9YOlBa+ns9tIkyu1xhXTStOU?=
 =?us-ascii?Q?M+CRNgPkqos9tUcp0JL0MbVBG09bJM9TOianEIAQd4rLzSOhhLN5q6+W88zD?=
 =?us-ascii?Q?BiOhP5ec4//apMM2BgkqzGKURSlHjCknsxtC+evThIM+SxQTptHZ52HSyj3V?=
 =?us-ascii?Q?AOGxBl8lbUYinH6DpUIxR2FvN15lVR1zLWtFhQFsgSIxGzDcCgASngo1gx/f?=
 =?us-ascii?Q?DADOPhDpxmerqYr2vIAUZlpUTH8lsxmc+XoDR7uuBbMrOeMpGIlGfomICum6?=
 =?us-ascii?Q?xGn5k6G2AxFmCoDRNgNRnqCRW7iN5XAyMa3h/SPTZRP2Z+K8F8mlZZ6i3FfA?=
 =?us-ascii?Q?bAsxYOSn1Z3Iysr/ochkIKTCAhOgsYvt7LUpP3zx4SXS7AX7pAxYIJZpMufk?=
 =?us-ascii?Q?CYArYEoutMm4zLMXwN1+/8toqRPirf3dk8ivny7HOKDsn17IgFzcu8y7iXMD?=
 =?us-ascii?Q?1BZF6XwtRWwffz3B7gYRX+Jh0tAGVH7GwoZxz1of7/TlQ5AownddTOPPKyq3?=
 =?us-ascii?Q?o40XbE8ZfK1qbGHIY6a5B7ZNUT8CvTnROaBjOuZ8x8R6YywgtKbTLusfxGCY?=
 =?us-ascii?Q?iES4HCqQJcd7fOKg9SKQ025hQ6OABkqIO3hecmPulOqIEHRXRSl+Yz80h2ZE?=
 =?us-ascii?Q?gQ5tu4FOdIPRt4rZZq1D49SkWuUOokq6+dx2rRmTpEjz8JEDTxX4PlNA7AY6?=
 =?us-ascii?Q?vKZVD76subnA8bu79kpcHbgC0+3Ry7RpnTz0KWjFW8Jim0ynYSDbZ5Z8Q/X4?=
 =?us-ascii?Q?W5d2ijAyBEb7UBr6gnfD2WRv1baJTXKPQgbWXRAYP0ALXvUKVwnWKcCiWVQ8?=
 =?us-ascii?Q?jklAVWLPlSmrCh+qdXHf/x8m8MNsAB+YMgSTUbsmdG1vg/SqsP8gPrq5qVr2?=
 =?us-ascii?Q?i1ZCFbL3vAhCDPw5tCS/9M9GZyQ21haqY/Gu+y3Iud4AOfhss3uevzyol2fB?=
 =?us-ascii?Q?r5guT+VYlnsezwKdiBUQBmyrZ+QnFzBj7/bp0EZhSDYJB8+RgSSB4AnEjXAk?=
 =?us-ascii?Q?4thFJSrw7ds1uRp0sS6Za8dRPP2OTyA04+ECO40VaYC+fGPlt4N+zBsEX0K1?=
 =?us-ascii?Q?Gyo84FanP2yYxni/7crI+W3giyNDhh867yq4mXHdKWTTuOj5Vs+pHlUJSksy?=
 =?us-ascii?Q?z5gir5npJwzVRlyfSeGq+o2RCMh2+TQifod83lYakl8g1VyAxd2vT4ucYCGm?=
 =?us-ascii?Q?u439UfoKuGVPUThuqUbWnKSfZcufDdDtMojV41qJOvZCjpP3YK4lGJ58xbZG?=
 =?us-ascii?Q?AAE6gk0R4fnbIlji+ViOtvSwpRdG7WPyxD5lQjLaY5nsDlsmBoNdKk5QnXaR?=
 =?us-ascii?Q?kRTU8w=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)(1800799024)(376014)(36860700013)(14060799003)(82310400026)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	yG4/w9oALkzs9I5EiHyOGswxiJuVzWZExG3tDT8Q2hWXfFSemez56z2SQmOcWS5b7LF+mbCFj2IjuLkkcUs77AqZzK2f0etJjy5k87RSgDFpg4ON64m6J48i+PmXrLtrPF1LxbpaPZg07/eAbtDxsW8Ny5YG3ZDp5WzZj0G94yfKTXNl0wPkqoe+oSN6IjDIjAEVsSdAGtWIiIk4M69C+Lkg56TtlQpDnNRCU4/e3o6uBebzBXw1kC/ZCvMV3QRA4bruh4+JRD2EaMThZOpb7vPuxkqqPH2j5pcqRcxXTSHXAcpPRG6opXROn2JePwq3nUWCnwUPlU7pFc6WI0MfCuR40+78F9sNKKXPsoKsMP71tSAMidvbuTZq0X+uhM4JKe8Jc/DRcbOBu/tRJaO11S+phavshjnf8bEy9KWrvRZCe1V1RmdjG3hVTPeQ4Yy2
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 14:21:25.5206
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d16263e-d0f3-4599-ee80-08de63f8ae0c
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: AS2PR08MB8805

Hi Mykyta.

> On 13 Jan 2026, at 09:45, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote:
>=20
> Move IRQs from dying CPU to the online ones when a CPU is getting
> offlined. When onlining, rebalance all IRQs in a round-robin fashion.
> Guest-bound IRQs are already handled by scheduler in the process of
> moving vCPUs to active pCPUs, so we only need to handle IRQs used by Xen
> itself.
>=20
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
> v4->v5:
> * handle CPU onlining as well
> * more comments
> * fix crash when ESPI is disabled
> * don't assume CPU 0 is a boot CPU
> * use insigned int for irq number
> * remove assumption that all irqs a bound to CPU 0 by default from the
>  commit message
>=20
> v3->v4:
> * patch introduced
> ---
> xen/arch/arm/include/asm/irq.h |  2 ++
> xen/arch/arm/irq.c             | 54 ++++++++++++++++++++++++++++++++++
> xen/arch/arm/smpboot.c         |  6 ++++
> 3 files changed, 62 insertions(+)
>=20
> diff --git a/xen/arch/arm/include/asm/irq.h b/xen/arch/arm/include/asm/ir=
q.h
> index 09788dbfeb..a0250bac85 100644
> --- a/xen/arch/arm/include/asm/irq.h
> +++ b/xen/arch/arm/include/asm/irq.h
> @@ -126,6 +126,8 @@ bool irq_type_set_by_domain(const struct domain *d);
> void irq_end_none(struct irq_desc *irq);
> #define irq_end_none irq_end_none
>=20
> +void rebalance_irqs(unsigned int from, bool up);
> +
> #endif /* _ASM_HW_IRQ_H */
> /*
>  * Local variables:
> diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c
> index 7204bc2b68..a32dc729f8 100644
> --- a/xen/arch/arm/irq.c
> +++ b/xen/arch/arm/irq.c
> @@ -158,6 +158,58 @@ static int init_local_irq_data(unsigned int cpu)
>     return 0;
> }
>=20
> +static int cpu_next;
> +
> +static void balance_irq(int irq, unsigned int from, bool up)
> +{
> +    struct irq_desc *desc =3D irq_to_desc(irq);
> +    unsigned long flags;
> +
> +    ASSERT(!cpumask_empty(&cpu_online_map));
> +
> +    spin_lock_irqsave(&desc->lock, flags);
> +    if ( likely(!desc->action) )
> +        goto out;
> +
> +    if ( likely(test_bit(_IRQ_GUEST, &desc->status) ||
> +                test_bit(_IRQ_MOVE_PENDING, &desc->status)) )
> +        goto out;
> +
> +    /*
> +     * Setting affinity to a mask of multiple CPUs causes the GIC driver=
s to
> +     * select one CPU from that mask. If the dying CPU was included in t=
he IRQ's
> +     * affinity mask, we cannot determine exactly which CPU the interrup=
t is
> +     * currently routed to, as GIC drivers lack a concrete get_affinity =
API. So
> +     * to be safe we must reroute it to a new, definitely online, CPU. I=
n the
> +     * case of CPU going down, we move only the interrupt that could res=
ide on
> +     * it. Otherwise, we rearrange all interrupts in a round-robin fashi=
on.
> +     */
> +    if ( !up && !cpumask_test_cpu(from, desc->affinity) )
> +        goto out;

I am a bit lost here on what you are trying to do in the case where
a cpu is coming up here, it feels like you are trying to change the
affinity of all interrupts in this case to cycle everything.
Is it really what is expected ?
If affinity was set by a VM on its interrupts, I would not expect
Xen to round-robin everything each time a cpu comes up.

> +
> +    cpu_next =3D cpumask_cycle(cpu_next, &cpu_online_map);
> +    irq_set_affinity(desc, cpumask_of(cpu_next));
> +
> +out:
> +    spin_unlock_irqrestore(&desc->lock, flags);
> +}
> +
> +void rebalance_irqs(unsigned int from, bool up)
> +{
> +    int irq;
> +
> +    if ( cpumask_empty(&cpu_online_map) )
> +        return;
> +
> +    for ( irq =3D NR_LOCAL_IRQS; irq < NR_IRQS; irq++ )
> +        balance_irq(irq, from, up);
> +
> +#ifdef CONFIG_GICV3_ESPI
> +    for ( irq =3D ESPI_BASE_INTID; irq < ESPI_MAX_INTID; irq++ )
> +        balance_irq(irq, from, up);
> +#endif
> +}
> +
> static int cpu_callback(struct notifier_block *nfb, unsigned long action,
>                         void *hcpu)
> {
> @@ -172,6 +224,8 @@ 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_ONLINE:
> +        rebalance_irqs(cpu, true);
>     }
>=20
>     return notifier_from_errno(rc);
> diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
> index 7f3cfa812e..e1b9f94458 100644
> --- a/xen/arch/arm/smpboot.c
> +++ b/xen/arch/arm/smpboot.c
> @@ -425,6 +425,12 @@ void __cpu_disable(void)
>=20
>     smp_mb();
>=20
> +    /*
> +     * Now that the interrupts are cleared and the CPU marked as offline=
,
> +     * move interrupts out of it
> +     */
> +    rebalance_irqs(cpu, false);
> +

I would expect this to only be useful when HOTPLUG is enabled, maybe
we could have a static inline doing nothing when HOTPLUG is not on
and only do something if HOTPLUG is enabled here ?

Cheers
Bertrand

>     /* Return to caller; eventually the IPI mechanism will unwind and the=
=20
>      * scheduler will drop to the idle loop, which will call stop_cpu(). =
*/
> }
> --=20
> 2.51.2



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 14:41:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 14:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220839.1529249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vne3r-0002W1-92; Wed, 04 Feb 2026 14:40:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220839.1529249; Wed, 04 Feb 2026 14: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 1vne3r-0002Vu-63; Wed, 04 Feb 2026 14:40:55 +0000
Received: by outflank-mailman (input) for mailman id 1220839;
 Wed, 04 Feb 2026 14: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vne3q-0002Vo-4u
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 14:40:54 +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 80e6e649-01d7-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 15:40:52 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-4358fb60802so556705f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 06:40:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e3a486sm7217308f8f.16.2026.02.04.06.40.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 06:40:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80e6e649-01d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770216051; x=1770820851; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ig7495zagXTaV3LGRYpbGKDHbCMUmfDmDmN/xBZYsr8=;
        b=baNHan5o90IuMOlkI6w3b0voH1X5ujeJTpeEPCatAcQLvoqgr/WvQtAO/Sojm5F17J
         /9FbxUnntfitSiCmUuoZD+gEqWQ7BqJo10lVes2/vX1j6JUN6HJJkLSgRN9niWSS3H4J
         2ySEL7oGe++ysuaAU0w2N+aci+AFxVkHwYLQrjyAtwUDWONTjg1Wdgem5xsIShPOWbtX
         hSp90+pX24tGS0l4efd7QcdaKPvdaHvoifPV8k/hBcDJhSuHFeUiRqo6efprzKIDtZtj
         aTw33RR6CsKE0satE3dC+RGc3TDPzK5sRsgDqMDn+6BkSkzAQlC1NG6ZozP1Qkc7DJnB
         ucGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770216051; x=1770820851;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ig7495zagXTaV3LGRYpbGKDHbCMUmfDmDmN/xBZYsr8=;
        b=UgPN6IaQ5bWkwz/eQPdN7X76tUHxjzT5fOlNBOkKutAqxKFaUKq4MrSC/pQt9wI+hH
         69vhh7IhKCRP+JlGRY5y4JztS6YP2DIXZO4xOqwLd4F3i0CYWCQXcy9vYqZwWR1wKgzS
         vVS37Mnm7Q4ND2T2TRKKbA8lOmaoD/Q6UE6yZezG3CEqcoOB9Jp5Goorx95X0/9FtWnv
         hC3Nrcgtc+w1JS+LtkYI5saRhTIyQy2UaibJtp9PY7Z8ZQ3J7lIqCCTFEVjWE+sYrG6Z
         gnh0OPfYa3IVJtmx77cZMttwjKC1/VXWEdc3UYTVoYJWpERHq0cwd91jfcmossqPSLDv
         r2lg==
X-Forwarded-Encrypted: i=1; AJvYcCXRpaM4nfAT6P7f4hPrxBpd5ERJzV7WRcL8CTmHBcnWP1/bMnSXmSw/E84fvqFE9Yf4rkI3SXxGHps=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8ZpIWJLtd2jgi5T21SYzX3fZKDvKbdNEHuHpdq9vXii4h7jbG
	1g6ZkLTE6t0Nyp8HyGm9iSqelt9WMLOulCs8f+ZGU0noV+0mPF6eeQD9s7kTTONAug==
X-Gm-Gg: AZuq6aJjJZzI89WA7XGcIIkAp9PD3t+gplTybfLW/1COLqCmwJV61SlTfvHCqcM5L/j
	nYoDBtixENObdoFiU+4PYF1C7l2tTOqTUspwAx8E3D9mspTmAOGwiS4pSX+JFKJC2YsRTdMRCCI
	5xa4rBSTkS92TnSQVxliqhpQeWFLsx1363DjKu78ng/3+QOaK0/NxUNwj3sC6Qz2uCfJCzpVKmW
	sEXYURfF1uek3BlJfLYuBIC2iMrT6fSqetTo1hiLPzBbvNyjsWE2ijqGnDgE7CeHUJEghsePqmI
	wIrBbNIJFMeraNH0t84FH1GusdohEgy9k/fg+oW0cY7vO+tb0aPA89CtrObHRVTvcGQQZOmsarD
	wlOm98SpaHocx9Nb7c+22deNHYJy/7ysIYi7DJ9ggirJdXyvFzhXz3StER9126BttK3QVWmtKG6
	9kfwUl2FVHuCrDpPKaJ0Ahqycrz3eVTLI+4SDP2smwet5elkOjl2J8KXeP1MV7UVq6x1wpBfkZN
	YA=
X-Received: by 2002:a05:6000:2890:b0:435:db93:7311 with SMTP id ffacd0b85a97d-43611439308mr11178227f8f.18.1770216051250;
        Wed, 04 Feb 2026 06:40:51 -0800 (PST)
Message-ID: <c7b3b54d-3550-4abd-a52c-365202133078@suse.com>
Date: Wed, 4 Feb 2026 15:40:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@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: <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 15:20, Andrew Cooper wrote:
> On 04/02/2026 12:25 pm, Roger Pau Monne wrote:
>> The limitation of shared_info being allocated below 4G to fit in the
>> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
>> start_info field is 64bits wide.  HVM guests don't use start_info at all.
> 
> All shared info?  HVM does use it, but doesn't see the MFN.

I think it's really start_info that is meant here, as that's where the
restriction comes from.

>> +    if ( virt_to_maddr(d->shared_info) >> 32 )
>> +    {
>> +        shared_info_t *prev = d->shared_info;
>> +
>> +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
>> +        if ( !d->shared_info )
>> +        {
>> +            d->shared_info = prev;
>> +            rc = -ENOMEM;
>> +            goto undo_and_fail;
>> +        }
>> +        put_page(virt_to_page(prev));
>> +        clear_page(d->shared_info);
> 
> I think copy_page() would be more appropriate.  That way there are fewer
> implicit ordering dependencies.

I'd strongly recommend against copy_page() here. If there was any data in
there that would need copying, it would need to be done field-wise, using
the compat xlat machinery. The layouts are different. It may be prudent to
assert that the original page is still completely zeroed.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 14:52:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 14:52:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220852.1529259 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneF6-0004Qa-7j; Wed, 04 Feb 2026 14:52:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220852.1529259; Wed, 04 Feb 2026 14: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 1vneF6-0004QT-4W; Wed, 04 Feb 2026 14:52:32 +0000
Received: by outflank-mailman (input) for mailman id 1220852;
 Wed, 04 Feb 2026 14: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vneF5-0004QN-DU
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 14:52:31 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 206c4862-01d9-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 15:52:30 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DSWPR03MB989130.namprd03.prod.outlook.com (2603:10b6:8:35e::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 14:52:27 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 14:52: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: 206c4862-01d9-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p9oBZXPUhlXcEFqkBKnn4yohyOd+gxQgLzfmZiLRLMyBSrhCuXNZ/J14gcSdFU/9Zl7LOWRsJvuzHAAc2WW72mmoJ1Kh7b2lQdOjCcJhjS44ygunXzHl+oR39kDAvgQP5vHPfqpuCqCwEqL2mWpGFg3vRqNAza7+VTYATX6J1PLhQAO13veBlciHKC2sy2jmMoU9bJe6Q+ROxL0hqG1H/1wUkPoLxKgxzdjkrr0SC/NRDIHwgOvbI0LQ9/aTiebx9MYNuO6Sgk6WyMSMQMLFn8X41Cov/ByobBJSluv24CYWdsfniTbK2xaxKWxrRMSnQ2eAufKM6Tc3+K9/NP+T3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=97KVZH2FexzGqNE8p0gXduSCXoUapWVK85TSJ7M53CM=;
 b=rSSHLtoqAV25X/32yGzQ8rLMw8L30XYAK/h/iNi/6wu8G/9sKPUqVBVOnRl7UJoZED1UyyyakBCNvjnJ083xCU2Gst0/KUU8vfofAqR1FfqmAq1mWxK8On9mpMaibksUARDMiiO2oJshzC5/W8JsAJhQgLiOaML5/JPpPHsLbgrZzm8jj6GzyZhs6pBdniP0u4L7gqZPc1AmmBeDRK5vWRjj66Pux/P0mfAwdkpvCqjcyZc4AsBLNB6bDBp1YlxvaO17D4lgG6Tg9E+I2Y9grSelFKbnwWQb95OKqMMtYvdtTIQ8amYHIRBIpHoF4Olq8WMd+zW0KDXe4ZEuFEtW8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=97KVZH2FexzGqNE8p0gXduSCXoUapWVK85TSJ7M53CM=;
 b=u37QyM6cAJYKEyTm5jzdwz9JFabY+rMSf9aeALq5vBhHK70yMZeelirhUHF+OP9WAJ30sjgqzpeKzy5qAxIhc7e4kv4/kDGv2ux5Hz8g5o1KRqs1nE4jZQqlGl2aqXvnb6THtEabaI5ulWKL5LwfN68vlK3p7p7aOGl/QPtTBxY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 15:52:23 +0100
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 v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
Message-ID: <aYNdJ6sb4GPaSEyY@Mac.lan>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <82540f88-ffcd-46a9-9813-ebe42ef0b0ec@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <82540f88-ffcd-46a9-9813-ebe42ef0b0ec@suse.com>
X-ClientProxiedBy: MA3P292CA0018.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DSWPR03MB989130:EE_
X-MS-Office365-Filtering-Correlation-Id: aafe95e7-ec3c-400d-b358-08de63fd035a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YmlZNE0zMnFraXFKc2ZKL0lES1JGTjY2NE1RU1ZqY05ZN3l6b0J0LzMzY3hN?=
 =?utf-8?B?MlNialEyT2RRcUNSOGF4bmRLOVh5a1pIK1hJUmRiZmRqWEx6SGR0Z3N1UnEz?=
 =?utf-8?B?SGFLSDhUTFdoUDJUYnJ3cU5neGxqODYxWFNxdnZBNzd6NFhWSllhNnR6MVZV?=
 =?utf-8?B?YXJuWS9iYXZMcmlMd1JYWWtpZlJMeHN1ZmVNaWRmZVlMUzVSbE5qQmxYemY5?=
 =?utf-8?B?TENWY2w5UHIzN2ltZ1BYY0syVTJSVnNDT1BQUGhpYmI1WVpsQm42a09yVDgw?=
 =?utf-8?B?ajBnbS9Wa1pJTno2Qm9Fc1BDbUtDZndkMkc0dDQrdDlyRjN4WWxhNktGY0NK?=
 =?utf-8?B?bS8xOVl3UkRQNHhFY3JBNUtEY2FwSERJZWtyQ0FzeUJRcVBCU0FYM3RKeUVL?=
 =?utf-8?B?Q1FmbXN1OGgzaW90NHhibDRaQmRaSVZHaldtZ1FtekJWSCtyWHJaU1FwSTNW?=
 =?utf-8?B?OXVzazdMYlUxa3dTVG8vQTl2cUpsRzlranVjRTRJSzZKY0Y4YzN0SHJxb3cr?=
 =?utf-8?B?czVLc1NwSGdkSU1lSmRIWlA2MFV2d0VIOEtDU2NrZHVId1R0Q3hwWmRQaHd1?=
 =?utf-8?B?SUFwcGhxU3VRMEFETG5Ka1ZWeEJBSCtXQU9KSDNqS2kvSmxFRWQwbUtkZk41?=
 =?utf-8?B?TTZ4NzJtMWt3NHZBTFZ6bVBRazdQVS9wM1NVbzJmNFlvSzNmZkxUOThRV3ph?=
 =?utf-8?B?RHY1TVJmVHQzNG5BZGJzeHkyQUhXanExcm80UHljYjNqQVJiSVcxaHdjcC9i?=
 =?utf-8?B?Q1BIbXhsbDMrNzd1WVZVMUorUjc3U0pxemI2emRjeFg1dkNWSkpVTGNScXVq?=
 =?utf-8?B?d3lLNlhJTWZ4Wk52dVJPeElhRTZHejJzOFJsblJYazB3VHI0RFhwSGVnODgy?=
 =?utf-8?B?RXg0U0tDWElibkVuTFREME5COFBiRXJWNm10a2JLOEVkT3VOeVF4Ry8wczZG?=
 =?utf-8?B?cytaMWdRUU9XMTV5TUpUMXFWbzNEYlZhTVEvaVczUnI0UzJzcmN2NEd1Wk54?=
 =?utf-8?B?TU5rV1h1YVdTV2wxUzVNUmJkMng3ZG5vY1ByOUFWcHBJVk5DeVlrVXNBK0M5?=
 =?utf-8?B?R09kU0hwTkJYOUVJSHlLTGNkVmFnUUdVRFl0ZmtZSWtpdS9TdXl1dHV6NVlI?=
 =?utf-8?B?RmlhTjBTRWNQQWQ4TEJZVHBPUUo4WHZBNDRNQ0cxVFN2UWN2aXZRYmpSbCth?=
 =?utf-8?B?SFdCZ3p2Q3F1cVQ5ZzY4QjVUVGlKRTZXRzZIMnVmQjNUb2tkQTZrVzNTMmxY?=
 =?utf-8?B?N2JsYUJ0Y2hEcVNJNS84eFRnck9sakppS2hOdjFRVlhkVlY4bXB6cDYrMWJ1?=
 =?utf-8?B?MTQ0NFc2eHpsUnpDN1JGcUdmREUyRzVxQlhvQmJaeVlaMmN2YXZWZFpxQUNk?=
 =?utf-8?B?RDVwTzNIQWllUnk5NFVIR1BkZlIzejVodDBwR1N4YVgvYW9aRTBkWkI1ZS8z?=
 =?utf-8?B?NytqbEdPUk9QOWhEWTJOVDh2L1cxazEybmYrS0VFemtrdnh1dzdDbEM4RDhH?=
 =?utf-8?B?c2xNSHFxTytLaXlLQVJ1cGVMdXZiK1JHdnBPR2VpM1I5YUNuWTFHM21LNDRt?=
 =?utf-8?B?S2ZZRUNtZVh4amh6ZURWelR1SkFBNWk2ekdNa0RRNWJuRUtjUG1pRG1hNWhD?=
 =?utf-8?B?Z3pmalRTNVBkbnk2VjdYMWYyaHgvcTV5WVp1Ym5rK0t0Rjdma2s3QXFzODU5?=
 =?utf-8?B?YTFhNkRReGtaU2NYcjlaUkxOa2pUbzlBZ0V2TWZJT3A1UzJ3Y1RzQXBiQUEv?=
 =?utf-8?B?ejNBdTVXS2kyRVFEVW5NZGZjOW95ejJMMTJFWFV5dGtWdWo0WTFyY2tQV2FI?=
 =?utf-8?B?ZlFlVFVyb3dYSkNSbUdySW5FVXQwd0pvQkQ1Nm1Ncm5yYnQ2Vzl6WFJMSzdn?=
 =?utf-8?B?WXlwanV0Umdtek9uVTFuR0d6ekNJbUtBRjFPczVHZWFCc243OUlhZWdaQUNS?=
 =?utf-8?B?bHNZOTNCVXBnRmp5Y3VLWXAwZzI3M3FnS3Fsbk4wNXY2ekNubFFVZjI5Ukxt?=
 =?utf-8?B?V3JReWg3SGdvcXN5MHVrNk9KcTFFSU0zdU9mM2FYWlFHOWgxUnlZblJ1V3RE?=
 =?utf-8?B?MGxyTGVJSTBXbTdrQi96ME5HYXU3cnY3bjI1cjFVa2U1MmZsSzB6d3k4UXBy?=
 =?utf-8?Q?lVts=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VXl0Q3VncDFpWmQvNEIvSjBWdHlOZExPNmxJSE1jNzdod05NSlA4ck1NbnVU?=
 =?utf-8?B?YmtjNEpDcFJsa05kcldLR1EyYklvektkbWlHSDVaV0t2OHlDWWI4bkkvZE1n?=
 =?utf-8?B?NmFrSmkwb3MzdGJMYk5kL1dYVnNaTDdTa2Y2SVZZUXFJUjB2VTZEd2tWTHor?=
 =?utf-8?B?SUVGVWtnaE91ZnN6ZXl2YnoyNEdqTU92WlBhQlRpU2pJMnpjdm5SU0swUGhj?=
 =?utf-8?B?dzhEQ2ZMT01MM21RbU41K0M1d3lKOFRURytkTTNvYmZPcjlTenlmQTliSEdF?=
 =?utf-8?B?RHRBaG42UDlqZFE0aHFnL3Z3czAzenVSem05SDM4VW1ZWFJSQjZJUGdEUmM2?=
 =?utf-8?B?WW5adlV2N0VSMWl4TmU0c3UxWFp6c0RlWFBiWVByZWhVYVpVVytLcmVsekRi?=
 =?utf-8?B?R3ZwbUpVT2pWT09pVVZ1c05mT2VLK2RObVRxZVMvdHFKTk9MOWd3TnZkVWRq?=
 =?utf-8?B?Zkx2dGg4RlVmME1FT0J2SFl0aVpJQUliYlZPelBaeU5RMW1NQXlVdEMyQTZr?=
 =?utf-8?B?UjQycUo2M0E1UldjRHZsNkZ5OEpwVGFpRmFpK2MyMUx1R3cvNzljc0xNRlg3?=
 =?utf-8?B?R3p1dmliZjBrU0FuYnZuMVpPNmtqdHhlcTVLSEtONmtiU1FRR3VYZ1VONzVm?=
 =?utf-8?B?bEp4Smg4OW44R0RLaStnbE41WGpCT2NsUTVzejRsd3NORzB6UmFJQmo3WURV?=
 =?utf-8?B?ZnFYTU1CVXhjeCtTS0FSVFVmNk84akhMdHFKdFdISlByRkx3VDRxT2pNVWwx?=
 =?utf-8?B?aUpYbGJIN1grbVNwRUEvaThwblQ0c0VDT2dtSS8vaXI5dnhaMS9aSndIemhs?=
 =?utf-8?B?bjlKRm1VWTQ0UVVEZVFBSWlXNkQ4TGdEM0RZc2J6KzVQcVpSUEhlM1daaXl6?=
 =?utf-8?B?dWRoRTRnamlVcFJQc2pwMW5HU2lVZU1WRmhObjNEVzg0QXNmN3R6SU5xbkdZ?=
 =?utf-8?B?M3g1TW5FOWNEeWNtYVlucFkwZ3BWclZCaG9pOW5tZDFiaGhwUUNqcE5vRTZB?=
 =?utf-8?B?TzJOajlvbTZJTnBQUlZNcmZDUFFqUEtjYVNkemFJUCtGRDdQeE1WMkJBcWw2?=
 =?utf-8?B?ellYZ1YxK0J5WGF1bkFiM3Bsd0FmN1hzMHhEZnB3eWxTT2ZvUFdqL0hNNUI5?=
 =?utf-8?B?TEtIMW5oOE00aUJOMGo0M21YSzRHMm5uaUhycUhGdUhxWGdWa056UWFHcXlP?=
 =?utf-8?B?MHo4Rm81Uy9SajdhT1BLR2laQWtLd1I5YW0vQkRMVDUxZ1cvT2RkNDhnV0hn?=
 =?utf-8?B?NWR5MmtxN3kzaks2cndwWGdaNU9va3lIUmIrdEpUdWJhZmFBanJSQzBOUTBN?=
 =?utf-8?B?ckVqSi9PYUp4a2xsSjFCcHZYV0xPd09mRHUrRkNMUzF4MzAxbUpPSmFVZ3hW?=
 =?utf-8?B?eVJPWGJudnJKc1l6TzBCV25IUzkxc1YwdiszejZhbGlWcWxCS0NGR2pIS0ZQ?=
 =?utf-8?B?NGNpc052dnZTRm5WK1JxcFNoYytHZWNLeXUzcm9VU1ZOYTV1a3hsUHZRRXpl?=
 =?utf-8?B?OVNYb1ppem14bG5xWEQyZlpETjEyZHhsVkt6YkJqb0k1ZEZ0bEowZWQvdEhO?=
 =?utf-8?B?Smt0WFgrNFprMGdPUjg0dU5TVGl6TVNrWGVTT2l0aUE5cVpocDFMZWNnZmox?=
 =?utf-8?B?OGcyVjdtNy9JRlEraXlSbGZYNHFzeWczcG5ldWxVVTFTd0l1WW5TNW1PNHRG?=
 =?utf-8?B?TS8yWm5tbDYyN1h2aDlrclBuR1JIaDdJWTVnc3owa0ZpUGxlNzQxMW8xME5x?=
 =?utf-8?B?V01PSU5jeXMxUUcxbGFsUVRCODliNXZ5ZVB4R3AycjhVNlNYWGNIbWI1WHB3?=
 =?utf-8?B?cGdNbGRTN2dmWjJQbTN2Y1VsVFlscHV1TFR5MHpJN1Y5TzlhM0IzQ1dXNk4v?=
 =?utf-8?B?YXU4ZGp2SDh1TmF2R1lYTHBJbmFPc2FtWUN6Rm1qWlNHOUNhZFR5andJeGxs?=
 =?utf-8?B?R28yRHJKaDZDbXBGaXpKNnBGa29EQ1JaaGhISkk4VjJxdUZsaWxQU3JsSGdD?=
 =?utf-8?B?dS8rcVFCWUpBdmV3d2FjN0NKaGF3WDgxR0c0SXo1SVV4bU5SdXNQNVpPU2FO?=
 =?utf-8?B?SEJZVnpqdDNHc09jTWhjVXZGbVJqMjUwRDRrM1dVcG5nQ0V6SkhjbTJad2p5?=
 =?utf-8?B?ZFdwWi8wR3prZGVJcXQ0NHlWVkg1SHQ4U25IRFdRRU9xZUkvSUJ0dmo3UmxF?=
 =?utf-8?B?TUdDZjBRcTFFOXFIQ2NnMmJEbzBaOTJQUi9TNlEvVDZNeml1TS84cEpFeUk4?=
 =?utf-8?B?TVhoZDBSTExQYU1lS3JDcVROcFRWVC84bnY0aXRpWDdlblV5dkQwSG5zMkZB?=
 =?utf-8?B?bVMxbjdvY0d6VFZPK1pNaFFmTFRKbWxKcWIzcGcycXVod1dXbkFRZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aafe95e7-ec3c-400d-b358-08de63fd035a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 14:52:26.8798
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L4GxW71w5KHIg5K4ZF9FeccWtrpwrCosoOpa0YtSfUyJQa23XKfrW50r1Z1vhq1T0qnkbcAlhIgGK7h55+UErA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DSWPR03MB989130

On Wed, Feb 04, 2026 at 03:06:52PM +0100, Jan Beulich wrote:
> On 04.02.2026 13:25, Roger Pau Monne wrote:
> > The limitation of shared_info being allocated below 4G to fit in the
> > start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> > start_info field is 64bits wide.  HVM guests don't use start_info at all.
> > 
> > Drop the restriction in arch_domain_create() and instead free and
> > re-allocate the page from memory below 4G if needed in switch_compat(),
> > when the guest is set to run in 32bit PV mode.
> > 
> > Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
> 
> The tag is here because there is the (largely theoretical?) possibility for
> a system to have no memory at all left below 4Gb, in which case creation of
> a PV64 or non-shadow HVM guest would needlessly fail?

It's kid of an issue we discovered when using strict domain NUMA node
placement.  At that point the toolstack would exhaust all memory on
node 0 and by doing that inadvertently consume all memory below 4G.

> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> with two nits:
> 
> > --- a/xen/arch/x86/pv/domain.c
> > +++ b/xen/arch/x86/pv/domain.c
> > @@ -247,6 +247,26 @@ int switch_compat(struct domain *d)
> >      d->arch.has_32bit_shinfo = 1;
> >      d->arch.pv.is_32bit = true;
> >  
> > +    /* Check whether the shared_info page needs to be moved below 4G. */
> > +    if ( virt_to_maddr(d->shared_info) >> 32 )
> > +    {
> > +        shared_info_t *prev = d->shared_info;
> > +
> > +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
> > +        if ( !d->shared_info )
> > +        {
> > +            d->shared_info = prev;
> > +            rc = -ENOMEM;
> > +            goto undo_and_fail;
> > +        }
> > +        put_page(virt_to_page(prev));
> > +        clear_page(d->shared_info);
> > +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> > +        /* Ensure all references to the old shared_info page are dropped. */
> 
> "references to ... page are dropped" reads as if talk was of page references.
> vcpu_info_reset() writes out pointers only, though. May I suggest
> 
>         /* Ensure all pointers to the old shared_info page are replaced. */

Fine with me.

> ?
> 
> > +        for_each_vcpu( d, v )
> 
> A common oddity, where my personal take is that only one of two forms are
> possible (without ./CODING_STYLE saying anything explicit): Either such a
> for_each_... is deemed a (kind-of) keyword (like "for"), then it wants to be
> 
>         for_each_vcpu ( d, v )

Oh right, I copied it from the instance below and didn't notice the
missing spaces.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:02:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:02:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220860.1529269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneOD-00069U-2X; Wed, 04 Feb 2026 15:01:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220860.1529269; Wed, 04 Feb 2026 15:01: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 1vneOC-00069N-Va; Wed, 04 Feb 2026 15:01:56 +0000
Received: by outflank-mailman (input) for mailman id 1220860;
 Wed, 04 Feb 2026 15:01: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vneOB-00069H-Ra
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:01:55 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 70e78ed3-01da-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 16:01:53 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ2PR03MB7071.namprd03.prod.outlook.com (2603:10b6:a03:4ff::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Wed, 4 Feb
 2026 15:01:50 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 15:01: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: 70e78ed3-01da-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YTpSMOCM59qiflITHG6wjMfCrA9KsyzfHcvpg1Tq7gyftkn19H1KlkBaNfyM0HwMpXuK2Ptn+s3asOAfrUR78M8OiXBlTm83ulQ//PA8dBJGMpuOi8oaTExi+TmuhDSvii8rF1BYE/EXBzysbj9tuuxcBlE3RgQT1WNHifqutx97alfK7tpeF3MULRG+v/2uJUoWF+wanFWrHGpNnms9MuMeBglEG6gvWV3NPkfOvKmBZj89tipMfu2coPcgc7T61zqcwbP9D69nGYrColntlfy3HvlwFp47cV9IowXOO4IvQ5fSAE5GRAI/x3PbQG5r7IWR/S+cY/b+f3MCy8HLKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ynWbV3pO0y2rBU+VdteV8O5wtRf5sMV0Lzl/CZ6GL9I=;
 b=CnmcEjb9PPR8k7jAFXBxwFsS1TN4T0X0bW8f0mqT7m4ReSRlmLfRwOTax3Amt1sv05Drv7iJWbFDcfzXe3eBbdJUrAEj1ds+0ylqrkC1qECJQp+nOsPHsK15G4NSKtelFEbKstMGYD1djDXW51tGvaDWij+KqlGpWfjPGhSwGfXUpukE5VKT+PmLOxjKLBVgu57xFnWJqeCP31DKYUPkI9r6nHWrcjnL7kjQfNPk1UrHuXq8qyGz3fCo2AazBbWePydA8U4gb+syDqHDJnAC3+5jxm33hugTBxp0qCQmp81/hzC+13OfHJcBNvqEK+WEuWG5FUAkiol1n4xPha6ccw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ynWbV3pO0y2rBU+VdteV8O5wtRf5sMV0Lzl/CZ6GL9I=;
 b=PYnBokY1foMC7uImkOoCQD+ePG8TL3v4tIY5q+P9HOZRLkc0DiHQ8Dds0C6r2KLtNqlLjFMM3o3TAQVu32zf4LcNosVrDstVQSQpQWiPgBF2QmewRGWMJZPW6LBPUkXFCAlSC1tUmAWZSuwChDUNnmiYV+TBCERZyxg1mIHmbZY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 16:01:40 +0100
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>,
	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] x86/domain: adjust limitation on shared_info
 allocation below 4G
Message-ID: <aYNfVDgSgKCYd929@Mac.lan>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com>
X-ClientProxiedBy: MA3P292CA0008.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ2PR03MB7071:EE_
X-MS-Office365-Filtering-Correlation-Id: 11bedc02-a5de-4665-147f-08de63fe5296
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?Sk0rWXBnWWQ0b3ZsdGtZSjd3Wkl4UUt2VVZNUGlLRk5UVXIwNGhldGZ1RUpL?=
 =?utf-8?B?a3R6MGo0YVh5eWhHdUFDTmgrZU1Oa0pZbFFmMUNkSG53TjFRbnlhc0VEY3Ju?=
 =?utf-8?B?cHpSaW5jeXIrTHdkMXdDMkppRmxTaWZiNWVOMW0ydGJYWkc2WFFGNW85ZDhW?=
 =?utf-8?B?Uk9nRVNSSlBROFFvMkRkMzJRaHJRVTJxdk03T0ZPYTRTWlc0Rkg4TFdOSVVB?=
 =?utf-8?B?ZU9PNWtJZGZ2N2M0ekdqd1lLeUxOZVF0TThXOTJ3R2FQTzhMZVRsMjZMcjRF?=
 =?utf-8?B?dmJHT0VZQ2hBVWFsMldLcDJjRlhmN0ErbE51QUN2N0oxQXg4SkhPb2NxRGtO?=
 =?utf-8?B?NEFPZ1I0ajV1WTBhYzNoTWdibmpsL2RKb2IzYkRJcklVWlc1NjU4QVNqT1VD?=
 =?utf-8?B?R3pLczlIbStQcW9Yd29QcVlsb3FVOUVEdG9uR3MrZGRDcW5HZTV0UGErMi9r?=
 =?utf-8?B?NFRhZnVvSXc4YjNKUlAzenpXYjBrUHB3L3JtQmY3clJwVzNsL2M1OXluekNi?=
 =?utf-8?B?TEVtczBMUDRrbzJCVE5TREZCa04wd0tKVklFQWtxRW5TWExQclZ3L2hoV3NZ?=
 =?utf-8?B?cHBxY1JrbnRNYS9IOXZMN29YY3ZhU1Bia3VDWlhSQm1oa0tNN1NvemxvRC9S?=
 =?utf-8?B?czlpVVdLOXd0ZDgwZFpzbk5qdjJtMDdSWFljUXYvRy83aFVZaVFrVG9YWmFj?=
 =?utf-8?B?c1VNTTJoSCtkTDdwM1FNSHorT21GVmtqNDYwTHVIcUNqRHgzMFFqRXRwMC82?=
 =?utf-8?B?cVYyNVg0dk9lL0o5MHIzM2pxYWhycVRhRndyQmMvMnVGNENRSERWSkUxcG9n?=
 =?utf-8?B?WUdxV2xGNG1GSmZocEMxcnhHY3o2NjBxWTY3SmxpMGlwNDlzR2pKMEo2YXpI?=
 =?utf-8?B?clFaVm9Dc0pTUkZPanBMZ1lxL1FkR0JsKzREWkxKNGp6bmhjUVFxNVp6RytN?=
 =?utf-8?B?YmI1Z3c3ZU5saWhkTi9JeTg3ZTU2WkdSa3ZzTmx1cjYwaW10WEFYMzM1WkFQ?=
 =?utf-8?B?Rm1oSHJWVGlZZ25kbVoxLzJsWjk3RVNHVlQ1Y0sxZXluN1dSZW1VNThyTzlJ?=
 =?utf-8?B?a0tBK3ZraW5Ic0oyNGtjdURISnJoazdHMjJXYzFta1A5cDIvd0FsNHFFaVBr?=
 =?utf-8?B?OHNHMzhoMGJ0cE5zUk1tM0I0VmoyS1dWT21GUWpYdWptdi9Ba2t3WDQrY0RF?=
 =?utf-8?B?R2RnVU0xRmJDMVBwMGZXbTNOUHVBdjBtWVEvRjZLN3pYYkJnKyswYyt6c0hP?=
 =?utf-8?B?cVFqT1hSWUlIbXpJNXZaNDIvR05aUEQwaW85OVNwSGdsTzdrM3ZocUcyWGxW?=
 =?utf-8?B?WER0TDZkMnVDV1pJUmM3MXdBVVc5eFV3VXcyczVJMGNrUGhReGNrRll5Yzlh?=
 =?utf-8?B?bTErUURCWHVLUHpBclBpbVcwS3ZDRFQ2U0w0QS9rVFNYbGN1dU1WSW9ya1Zk?=
 =?utf-8?B?RGRZT1JJSWVuTkJvL05nMzNxekxVcmRTbnFXWGhvMmhGcWVOYkM1Wmx2SjNN?=
 =?utf-8?B?czR3V2RPUFVEQ3dSQWVkVWhkdEZSR21EVzBLNkh3QzZHVXB4b2J6YmNWL09W?=
 =?utf-8?B?c25jMUJ4K1p0cjd2bTd1cEFpV0lVK2QwQlFTbE5ZYisyTjVTejRwWW45UWw1?=
 =?utf-8?B?R1cyRTEzTld5QkVEQ0ZIRGIydTNqRFdNYzR2elZlWFpIUFpReFN1VTJkOHhP?=
 =?utf-8?B?bE5vVjJubXpncXZsczlZSHNFU042bUZhc0ZnSTgxY1c0Y0tYSG1SZUoxNzEy?=
 =?utf-8?B?dzhBY1liNXdDMlF5ZG9KM2k3SGk1eG01ZExTTXpFenN0c0lUOURlMkwvbGVC?=
 =?utf-8?B?MW9oakpNclM4Z3o3QU03VjBCNFdLdFVLaXl2bjh0eWlWUnZyUFRwTlhHbjc0?=
 =?utf-8?B?TzFGN1Y3c0ZFVWV1Y2wxbWYyOTk5dkxYSElkaXZjTkpPZnN0VkpqZytZYmRo?=
 =?utf-8?B?d0JvT3dPNGFzTkRnT1h6ajhDR0ZnQmJESU1kTTJlRzIrcVloa2tiZDVaM0Zk?=
 =?utf-8?B?SU5Rb09JQk9qTmFtdFNranM4TkRDSnVJbWxnbG9sY1h4UjA0WWQ4dG9iWnBu?=
 =?utf-8?B?Y3R5enVBRDNCd2lXRG9Hd3A1RG9UK1AyZEFEV2N4anlSdEs1YjhIS1R2dUhS?=
 =?utf-8?Q?Pqe8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RWc2V3RyVGc5enQ0Y0pOeUkvRUF6UHB3Z0FJY3ovdzZYejdsVzl3UjhKK3g2?=
 =?utf-8?B?WVBJb0IwaHZQalUvaHJCVVVLcUZZLysyNXoyVzVKZmJHVHlFNHJVSXl0V2xR?=
 =?utf-8?B?S2twa1phK2J3L2NJRXVUcVJ1RnkxWHBlOUtPZklFMldReVg4WlFmandONlh1?=
 =?utf-8?B?WW1OcmFmeWhyd0U1QjdoendqTXVLM0d2TEQyeERrSWhOQmhuaG5xVmJzR0ZG?=
 =?utf-8?B?SmpCWEZ6V3prdUxzMUNaRjNGa1JPSU8wLzROOXB3STVOL25URTdaYlkzWTNi?=
 =?utf-8?B?STBxdUpac3R0SXU4ajF3dk5BTk9kL25sSk5zWXJESE15QjFmWGxIR1dFWHRz?=
 =?utf-8?B?TTZmMXU0eEhMZ2llQWdhYkcwV09rMDN1Z1VqVkloMThWT0hlWTZ5aEVVM0tG?=
 =?utf-8?B?cWx5TEpQczVuVW0rYzBWTTdzbG1UeXQweDAxejQyb1R6UkE5dVVrQjhoR2Qv?=
 =?utf-8?B?VDYzYXowaWZzREVmYnZXZk9BVHowY1dINkRKNWhPck1zdTl0MnZDNnF4ek1Q?=
 =?utf-8?B?ejAwRW0xU1VtNGRGNys4YnpFUENtRHZ6Zjc1UlRMMU82dnA4RVJSc3haRDVP?=
 =?utf-8?B?aVlWT3ZzcC9VMFk4QXNCUUovdmE5M1hROUIvb2ErLzdnbU4rVkVzdC94dE55?=
 =?utf-8?B?NzFXWGdLNEo5R0ZHdDVSUm5walhMbDJzOHFqaTM4Y1RWUWdsMFVFRnJiMXFS?=
 =?utf-8?B?b2crQlMySjQvWE1RSzMzTG5HSGZtamRuMnY1cSs5YlVWcnRyRVpzbXd4VXhW?=
 =?utf-8?B?Y0dGN0NtMXluRmFUeTcxYVBTSFZpSW80K2ZtemJUcHM2Qk55Rzc2YW9Zd29L?=
 =?utf-8?B?NWpZRkVaVmxpSGRZeFFoeFlUMFJ2K0FqNE4wc2djRTdmell1WWgzYldOQ0xx?=
 =?utf-8?B?ZkJ2ajRQaHZGVWlOd0VtYzNnKzBQeitEeTlOck93ZTFkSDA4cTJEVTRZQndt?=
 =?utf-8?B?ZEU5TkVTd1FlV1FNM1hhZGpBTGN4dzVaYzNzdE5JMS9SK1Z0ZCt1VVJqeitR?=
 =?utf-8?B?eDY0RUFFNlpzNENwemJ5SXVjOS80dUtZMjdqeUN3VSs5cW5JblVxK3hyZ3VH?=
 =?utf-8?B?NXRiNE0yQVFEUE1FditxSXA0dDl6T0RPeWxGV0J0RU5xQVVpZUxjU3VRVDFo?=
 =?utf-8?B?L0Nlai9LQ1lCQ0ZpbTZuN2YzajVQMkl0S04vVG1MR1BTdmpQRzZsZEFydnhQ?=
 =?utf-8?B?R0NBd0EvL2JUYWRpTVdyQUNBeVB6NkN6VkkxbzJwdUcwMW9YSTJDbGdMQ0oy?=
 =?utf-8?B?UHNmUUFicys3Q05RcFFiTEFzeEZlaTVqMG9COHoxMXpzSDlwZ3lUSmoyNFMr?=
 =?utf-8?B?eGxJYWVZdGJ0cnpRVUFRNk5rM3RLNHJjd3JrcHo0UzlnR1c2cEl3U05teXE4?=
 =?utf-8?B?bkhqSGJLSlpvU0EvNHBCdHBYYTZLN2NXbk1JU1k0c2RWOXZGbDdYMndwRHpR?=
 =?utf-8?B?eWhqQmI5N08waFpudGxwRHAyRlM1Q010NjNBWW5TKzdpK2lLNlRpb3FlUm9l?=
 =?utf-8?B?TVBUK29RYXBQdzliWXhsSEk0bjhPemxDSy9xUUIrSnJvSzJ6M09VKzlDa1Qy?=
 =?utf-8?B?TnZMN21vTmw1ZC9WY0lSNjJwd0FwakEzdWZsbVUrdkkrbE9wT0duMlcvUjJr?=
 =?utf-8?B?N2hRbU1WUmRmM2M0YnNVMUJSRjRubVdlYkVyaWlHWGE1YzdNNnJLUWJrOHlj?=
 =?utf-8?B?TzF1S0Q4dzVpdXllbUZ1UXo2YWdrS2Z4dS9XUFo4S0tLMmtob2xOVWRpUXFO?=
 =?utf-8?B?OEFUNEVDQzRZNG9HRUhMS2xEamcxWFV2ZFVKTXIxdjBXSGFScHpFbGVjb2dT?=
 =?utf-8?B?VzJDWm1qUU11bGFlR1VTMERZMHlkZy9VVEhFNVlidGN3c0VMNWJsbFVFak1Y?=
 =?utf-8?B?TFZ2WVp1N0xKTDhKUkFwR09kTDF6dGNoSDlJZy9CTE5KQUI1MlNReHJ2VXNy?=
 =?utf-8?B?alNPVTFIUWo5bnN6eFJNSGZlR1BjQllRWTFONUViSkg0ZXpIdzN5QlJRZUJk?=
 =?utf-8?B?WUV0bFk4N0RraFpWaXFuYUxVbk4zaEdac0xMTXAxTHo4YnVYYmpuMmdxUmlj?=
 =?utf-8?B?cUNGMGFUSUMraE1hU1FiVFNYTnExb2p5QTRiRExYWHcvc0x2M2tweG9nZjFL?=
 =?utf-8?B?VkE4dDJ3QVo1bXpLRGYrMDlqVkUwdlZYdDdKUUs0TXQzeEd1WnNsS1VLY1ll?=
 =?utf-8?B?NTNRL01WeEZGSjdjaWE2VHhhVyt4NENyM0NaczlwaHlncEY0MnBBS3V1K2tt?=
 =?utf-8?B?S1FiNG9CTU5Ua0dTYkt3TnlwWjRGWDZ4bHprMnFyQkpIVzFsQ2k3REltOU1W?=
 =?utf-8?B?UHk3cjhrc2xMNWVIcXBaZStoQnRUemVESVZoVkRVWkVpQTkxYVVQQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 11bedc02-a5de-4665-147f-08de63fe5296
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 15:01:49.3556
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0ZFzs5NT/N1jJwTPlvSz9EkQt41TG+4L4in4mX/HxVWtt066EBLVJbaCxCEe+hWgD7oDl1IomDC14A/23JXZqw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7071

On Wed, Feb 04, 2026 at 03:20:09PM +0100, Andrew Cooper wrote:
> On 04/02/2026 12:25 pm, Roger Pau Monne wrote:
> > The limitation of shared_info being allocated below 4G to fit in the
> > start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> > start_info field is 64bits wide.  HVM guests don't use start_info at all.
> 
> All shared info?  HVM does use it, but doesn't see the MFN.

HVM guest use shared_info, but not start_info.  The issue is not with
shared_info itself, but the size of the field used to store
shared_info in start_info.

HVM doesn't use start_info, and hence doesn't care about the position
of shared_info in that regard.

> >
> > Drop the restriction in arch_domain_create() and instead free and
> > re-allocate the page from memory below 4G if needed in switch_compat(),
> > when the guest is set to run in 32bit PV mode.
> >
> > Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> >  xen/arch/x86/domain.c    |  7 ++++---
> >  xen/arch/x86/pv/domain.c | 20 ++++++++++++++++++++
> >  xen/common/domain.c      |  2 +-
> >  xen/include/xen/domain.h |  2 ++
> >  4 files changed, 27 insertions(+), 4 deletions(-)
> >
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index edb76366b596..3e701f2146c9 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -882,10 +882,11 @@ int arch_domain_create(struct domain *d,
> >          goto fail;
> >  
> >      /*
> > -     * The shared_info machine address must fit in a 32-bit field within a
> > -     * 32-bit guest's start_info structure. Hence we specify MEMF_bits(32).
> > +     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
> > +     * field within the guest's start_info structure.  We might need to free
> > +     * and allocate later if the guest turns out to be a 32bit PV one.
> >       */
> > -    if ( (d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32))) == NULL )
> > +    if ( (d->shared_info = alloc_xenheap_page()) == NULL )
> >          goto fail;
> >  
> 
> The comment is now out of place when the source is read naturally.  I'd
> suggest dropping the comment entirely, and ...
> 
> >      clear_page(d->shared_info);
> > diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> > index 01499582d2d6..8ced3d70a52f 100644
> > --- a/xen/arch/x86/pv/domain.c
> > +++ b/xen/arch/x86/pv/domain.c
> > @@ -247,6 +247,26 @@ int switch_compat(struct domain *d)
> >      d->arch.has_32bit_shinfo = 1;
> >      d->arch.pv.is_32bit = true;
> >  
> > +    /* Check whether the shared_info page needs to be moved below 4G. */
> 
> ... extending this one talking about the 32bit field.

Hm, yes, I've considered doing that.  Unless Jan objects I will move
the comment then, seeing as you also think it's best.

> > +    if ( virt_to_maddr(d->shared_info) >> 32 )
> > +    {
> > +        shared_info_t *prev = d->shared_info;
> > +
> > +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
> > +        if ( !d->shared_info )
> > +        {
> > +            d->shared_info = prev;
> > +            rc = -ENOMEM;
> > +            goto undo_and_fail;
> > +        }
> > +        put_page(virt_to_page(prev));
> > +        clear_page(d->shared_info);
> 
> I think copy_page() would be more appropriate.  That way there are fewer
> implicit ordering dependencies.

Hm, I had a copy_page() initially, but I don't think it's appropriate
because (most of?) the fields will need translation.  I don't think
translation is feasible, but I could at least call
update_domain_wallclock_time() which is what hvm_latch_shinfo_size()
does when changing bitness.

> > +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> > +        /* Ensure all references to the old shared_info page are dropped. */
> > +        for_each_vcpu( d, v )
> > +            vcpu_info_reset(v);
> 
> switch_compat() can only occur on a domain with no memory.  How can we
> have outstanding references?

As Jan pointed out, it's not references, but stashed pointers to the
previous shared_info page.  I've used the wrong wording here.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:02:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:02:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220868.1529278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneP9-0006bg-CI; Wed, 04 Feb 2026 15:02:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220868.1529278; Wed, 04 Feb 2026 15:02:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneP9-0006bZ-9k; Wed, 04 Feb 2026 15:02:55 +0000
Received: by outflank-mailman (input) for mailman id 1220868;
 Wed, 04 Feb 2026 15:02: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vneP7-0006S9-Uh
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:02:54 +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 9012c956-01da-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 16:02:45 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b86ed375d37so928472566b.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 07:02:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4361805fbc5sm6474179f8f.34.2026.02.04.07.02.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 07:02:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9012c956-01da-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770217365; x=1770822165; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HshliNVb0B0rrWteOwztMLqOAs77x1xWGdnNlD+NsRE=;
        b=TlKqZicsPY66ri79RjkjTR963flbOZQ60vkDu9sUvYakGSfq2/CL3/mqYmUulk92Gc
         Qimy4OePZFJwzXzhzHP54Bmxp7irZ+1Id5kkWxLYD3Fe+yYVsLYIrfIG8+hpvp78/mzW
         xb9IxKtJm6LavX/fRETvd3+uA9XAUCcjgXOROCJ+kbL03krKou+MzWGwDEjn+0KQIH4i
         PqjwblCYx8aTBnfBmr/Px6oBYjt66wA+yr9RBFxevFkw58yIbXukLp3DihoEGOqVJnIH
         vM3WhhoqJwzANSz2WtgAVcE3pvoM3z+LqTkExfxEawCrexazGXQUT5erO++kurZt27V1
         LF3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770217365; x=1770822165;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HshliNVb0B0rrWteOwztMLqOAs77x1xWGdnNlD+NsRE=;
        b=D6qlLV33RGymZYv5NO4X/2c/uOheWM1jEXw2321hqu9LLFjeT0XxubqCkwNDgbEulE
         5ca/4QlCPC2ylRCVhr/6jK4Mue8eN38v1zbcJLQkS94ITx5b2kNJo2jVRT6kcWGiCWNz
         qfprquFwXrm0w8gg33kV+/bOnOKDshYU7eXDUchOL1WJbAY2Sj4/Mz21LnXk0AcSnTwh
         rrf3TSyiSZY0f75SmL+tqJcazUt5n9sB92s+WD9xMuh97PsagbwDY530v48OcBjysfsZ
         kUWlZs6caQktFLkvx67au58UWbE0m7HUxMjrFQjn8nZdnr0k0wR7XxZiuYio4wZouhmN
         9D3Q==
X-Forwarded-Encrypted: i=1; AJvYcCWi+daoTav9FlMCm4DDEtmOrIEVVXi0fJqXNpzrU+7fTEm9HzjkjETgEqn+DIHUlvemcrk12uh7ksI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPB+0nNi0SOmq8bRaMLIs0+ohkCtCi7UhLZ+i81nSoF8vpLK+f
	ujbBHnVunx2soLsAYvofn+7UHYjRHc/OsQCtTpxnvQm+LEXgkO8vMYWStgNNP+Jh2g==
X-Gm-Gg: AZuq6aJ62X43QrK6Nin5HG34smTE/iS9B3glyIyScsSm9Oibcn4mChbx2aC8OB1rQdy
	2pebQkZNFqFcoAfeJhVtPdmaUuhX4EOxQ2vgAzr2EdNXPdxA25WdXoL8KXko1z80CGbygm8oOkz
	7AvZ3cQ8fT82Jio+wohPM3bNpYTApga5yCppx/ug/x2aci9+Hyf9PWD3+u4Pe29jNe7b4RlHZEu
	GWFcukJOuJHDMATLtm9ffBTDlnAaQre7Am7+esJzBcDO46B0TFheVlxfgnHp+Q2uUjfQeD1nFzU
	mwRfEc1QSJf/kO32ezhsyTxcjhNWo4lsEHqhXs9HoUl63FGf9guts2KHRpCD0q1QA26HxrYy9iB
	h9J7CvPHDpjcnN1X3lVmIAD6u/66suhFhWEC4I+BSnBr5chK8VlepZuDoERfhPsF/2f3XYF1ELp
	m7GjxAbX/tj94MTu2RIFdoc481fY69jq4he6zcDeJsgi7DqycUWMDgrCeDdCzZOAYKHmPtwYnJS
	0A=
X-Received: by 2002:a17:906:fe06:b0:b84:2b70:98ec with SMTP id a640c23a62f3a-b8e9f1ab7fcmr220906366b.42.1770217364975;
        Wed, 04 Feb 2026 07:02:44 -0800 (PST)
Message-ID: <0f0a7479-5f12-4803-9348-2c295a1939a4@suse.com>
Date: Wed, 4 Feb 2026 16:02:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: implement
 p2m_ctx_switch_{to,from}_state()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <2e4cd29f19945e90733ac85e023d53cecbe1d14d.1770036584.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: <2e4cd29f19945e90733ac85e023d53cecbe1d14d.1770036584.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 02.02.2026 13:57, Oleksii Kurochko wrote:
> Introduce functions required to perform a p2m context switch during
> a vCPU context switch.
> 
> As no mechanism is provided to atomically change vsatp and hgatp
> together.

This sentence doesn't parse; imo you simply want to drop "As".

> 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 in p2m_ctx_swith_from(),
> then construct new hgatp and  write the new vsatp value in
> p2m_ctx_switch_to().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  xen/arch/riscv/include/asm/p2m.h |  4 ++
>  xen/arch/riscv/p2m.c             | 81 ++++++++++++++++++++++++++++++++
>  2 files changed, 85 insertions(+)
> 
> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -255,6 +255,10 @@ static inline bool p2m_is_locked(const struct p2m_domain *p2m)
>  struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>                                          p2m_type_t *t);
>  
> +

As before: No double blank lines please.

> +void p2m_ctx_switch_from(struct vcpu *p);
> +void p2m_ctx_switch_to(struct vcpu *n);

Like for the other functions, please consider s/ctx/ctxt/.

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1434,3 +1434,84 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>  
>      return get_page(page, p2m->domain) ? page : NULL;
>  }
> +
> +void p2m_ctx_switch_from(struct vcpu *p)
> +{
> +    /*
> +     * 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.
> +     */
> +    p->arch.vsatp = csr_read(CSR_VSATP);
> +    csr_write(CSR_VSATP, 0);

Why two CSR accesses when one will do? RISC-V specifically has the CSRRW insn.

> +    /*
> +     * No need for VS-stage TLB flush here:
> +     *  Changing satp.MODE from Bare to other modes and vice versa also
> +     *  takes effect immediately, without the need to execute an
> +     *  SFENCE.VMA instruction.
> +     * Note that VSATP is just VS-mode’s version of SATP, so the mentioned
> +     * above should be true for VSATP.
> +     */
> +
> +    /*
> +     * Nothing to do with HGATP as it is constructed each time when
> +     * p2m_ctx_switch_to() is called.
> +     */
> +}
> +
> +void p2m_ctx_switch_to(struct vcpu *n)
> +{
> +    struct vcpu_vmid *p_vmid = &n->arch.vmid;
> +    uint16_t old_vmid, new_vmid;
> +    bool need_flush;
> +
> +    if ( is_idle_vcpu(n) )
> +        return;

Shouldn't the other function have such a check, too?

> +    old_vmid = p_vmid->vmid;
> +    need_flush = vmid_handle_vmenter(p_vmid);

As you're re-using x86'es model, I'm not quite sure why this would be needed.
I don't think we have such in x86; aiui this should be handled while actually
doing the VM entry.

> +    new_vmid = p_vmid->vmid;
> +
> +#ifdef P2M_DEBUG
> +    printk(XENLOG_INFO, "%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
> +           n, old_vmid, new_vmid, need_flush);
> +#endif
> +
> +    csr_write(CSR_HGATP, construct_hgatp(p2m_get_hostp2m(current->domain),
> +              new_vmid));
> +
> +    if ( unlikely(need_flush) )
> +        local_hfence_gvma_all();
> +
> +    /*
> +     * According to the RISC-V specification, speculation can happen
> +     * during an update of hgatp and vsatp:
> +     *   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 just flush TLBs for VS-Stage and G-stage after both of regs are
> +     * touched.
> +     */
> +    flush_tlb_guest_local();

Which "both regs" does the comment talk about? Doesn't the flush want to come
...

> +    /*
> +     * The vsatp register is a VSXLEN-bit read/write register that is
> +     * VS-mode’s version of supervisor register satp, so the following is
> +     * true for VSATP registers:
> +     *  Changing satp.MODE from Bare to other modes and vice versa also takes
> +     *  effect immediately, without the need to execute an SFENCE.VMA
> +     *  instruction. Likewise, changes to satp.ASID take effect immediately.
> +     * Considering the mentioned above and that VS-stage TLB flush has been
> +     * already done there is no need to flush VS-stage TLB after an update
> +     * of VSATP from Bare mode to what is written in `n->arch.vsatp`.
> +     */
> +    csr_write(CSR_VSATP, n->arch.vsatp);

... after this? Then some of the commentary also doesn't look to be necessary.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:05:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:05:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220878.1529288 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneRD-0007GJ-Nl; Wed, 04 Feb 2026 15:05:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220878.1529288; Wed, 04 Feb 2026 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 1vneRD-0007GC-LJ; Wed, 04 Feb 2026 15:05:03 +0000
Received: by outflank-mailman (input) for mailman id 1220878;
 Wed, 04 Feb 2026 15:05: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vneRB-0007G6-PW
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:05:01 +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 dfb854c8-01da-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 16:04:59 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48039fdc8aeso42334545e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 07:04:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830fc1744dsm42301315e9.2.2026.02.04.07.04.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 07:04:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dfb854c8-01da-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770217499; x=1770822299; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DnITYY/mzTHqwD9uGr4WYDZ6ONzyoTjVRZ+55ops4eg=;
        b=NziBa2wNAlrqasdAl7418+R2Rk7aPGqZ3wVvooedJ9l56SjJlXGo07nyOBWwAHbTxq
         LH9Xs/qTaFunne1wexb74AOGVPAOJeKLHGkK5N0xj9CKwj94js7ngJZgi2g9eFkDTFzh
         sZk1UhVH4PR0H35DNBuFjbpux7oJWU96YXCSj72WFk/hydRr/U0rWQ8U4E6U6VwQXFDf
         9rgydKtPNPIiu4DPAmhV74cntVgn8ouFMj6Ex/wA3dQjZ0cKiVKKgRP20lmtIV5owtTL
         horrM8034IaykI4Vs6zNDyVGSFTemHfaoUeaPEDFe5B2LgsvmbXnolr41ueU9vA1np6p
         wBuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770217499; x=1770822299;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DnITYY/mzTHqwD9uGr4WYDZ6ONzyoTjVRZ+55ops4eg=;
        b=rn0d1w4tqt2cMdlgU9l0VB0X1VxDSiKNdJWiC5r/H8BmpMlvoBK1Wl7UBRVBRm2WTF
         S6vDDiwu2NYT9tN13pnMjzlLt2g/P1w0mcy5Ms7sSfHThz9riYQEk0qwSWbLkaudO7er
         QJZ++iRxUH7/J3D3MXmgx9VWSNq+W0j7oSjcPqyvLsLADbVESs+GRyWmMdRFRdHd0m6m
         jMa4KHudDgA9jjMDQzEvgC9nhF0jH3Obqu+2fALQEpkbYnyvK+gYQUji2qQP8KIfe8+z
         k3KN3jIJmQiqoCsQhqIJJPz4A4g671rKGR40J0sDt0FaYaoCNiRSedAgb/38iasUfCL1
         gHUQ==
X-Gm-Message-State: AOJu0YyixIPXZ7cTLPzn0sTP4BgVOPOU83ezcyUKLcI/AmminT9GHYvn
	zGzkvmkxlLZy/nCsggq4JwjaKGh8wE+rQI2oB8SOixL8MrYSnzeP95+FaAzpSz8nIAB6O69MfH3
	b4So=
X-Gm-Gg: AZuq6aJYZMPBoo9n9MDP4chMxFic8oBvtFn21AIuNt1w3/tftTKLmciaiCaT+fTpKY6
	2pDSPLbeQTY/ZxY+7x1AfQEL6usul7GawbHfmGQFuDsZnXRubJb+slmBQvcy4Fu5tt4/+vGL7e9
	F8mpl5koTbqMEFDNnXqlXmMe5BhTslfGxdn6i8h2nUZyPlooiEHLybxlxCC8Yz6cNmEIG1Dd+ls
	IKk736LCaDangXCU5iQFrDswoj5KZ/DP3vD+U6TJnBtUnY5rt42aqfXH1UTYX5W7Jux+efmW3g+
	AGCDkd6BCunV2Qh2X7EvBZUCCroCXLjermpqi/Jz6lJyGWrFyr72OuoIUcnqAVHuPWQ9Y3OvkBx
	FP4TCHWPYFbAcleCLKNXxiKMMQIz4Xe4FfhoH+hC78OH1fNAESInl7jh0BTsPyG9DVfKvB159dm
	Q4jro/cGHSwzEYuxYjcbjghsSsi7xDgPRmlbyJD0ZNfYEGeIX7bQK+x+zKAVb4Voa9i3oUQFhH7
	mU=
X-Received: by 2002:a05:600c:5491:b0:480:46c6:bf4b with SMTP id 5b1f17b1804b1-4830e92a73bmr40055215e9.5.1770217498831;
        Wed, 04 Feb 2026 07:04:58 -0800 (PST)
Message-ID: <87e824c4-0f24-4d3b-a261-7fe19d554f0c@suse.com>
Date: Wed, 4 Feb 2026 16:04:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.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: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com> <aYNfVDgSgKCYd929@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: <aYNfVDgSgKCYd929@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 16:01, Roger Pau Monné wrote:
> On Wed, Feb 04, 2026 at 03:20:09PM +0100, Andrew Cooper wrote:
>> On 04/02/2026 12:25 pm, Roger Pau Monne wrote:
>>> --- a/xen/arch/x86/pv/domain.c
>>> +++ b/xen/arch/x86/pv/domain.c
>>> @@ -247,6 +247,26 @@ int switch_compat(struct domain *d)
>>>      d->arch.has_32bit_shinfo = 1;
>>>      d->arch.pv.is_32bit = true;
>>>  
>>> +    /* Check whether the shared_info page needs to be moved below 4G. */
>>
>> ... extending this one talking about the 32bit field.
> 
> Hm, yes, I've considered doing that.  Unless Jan objects I will move
> the comment then, seeing as you also think it's best.

Definitely no objection from me. My R-b stands with that movement.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:08:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:08:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220887.1529298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneUW-00081r-4x; Wed, 04 Feb 2026 15:08:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220887.1529298; Wed, 04 Feb 2026 15: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 1vneUW-00081k-22; Wed, 04 Feb 2026 15:08:28 +0000
Received: by outflank-mailman (input) for mailman id 1220887;
 Wed, 04 Feb 2026 15: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vneUU-00081e-Hh
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:08:26 +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 59861940-01db-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 16:08:23 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-42fbc305882so4299176f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 07:08:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e37e78sm7539071f8f.10.2026.02.04.07.08.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 07:08:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59861940-01db-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770217703; x=1770822503; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5Swr1gu7g8IwH+hQRLhGbq1xJnMD+8mL67FG1ybo2U4=;
        b=H5NmjbMI6fIb/VQkcnXlc93rwpMjeooRezKvAyYkZMP3xgTsFI2MrmDfLebAL8Pj35
         ef3LFnR3j+GCT4Ge2R3HHWhHxbaGlgLBGxuEXLCgr+GLyBZ0pdIga6JFXJgnpIRjPPy6
         mKwT2fb1kW8/dLCELTh4j5Oi8xL8mTA92fiaKfykEWSQhEAemOu/Bpgpm0KFHRg7/e59
         jqdkhp+SQDJK6eMTfYb5+zC/5Ph5H8uUUQXOznNDwhYRixtuPAvG5UahRPM9roZ34lkY
         Z9o/zcCnX8Km8JGu/6ExP5MOq+Dzo0sO4eJmsyI+agGLzdN9Ox8HEJY/Pdz63K6VZWem
         W5eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770217703; x=1770822503;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5Swr1gu7g8IwH+hQRLhGbq1xJnMD+8mL67FG1ybo2U4=;
        b=L86eZOnEyy3qOwFLUm7s7MYHg/hMv6ftpGciu5IiK8H2TYCijlSSx/mTfNbZjKKIb9
         yVFK1/+ZxF56mT857ry+iHBBW1j55Mq9q2t4z1vxQhgzDr5t6FOYu8Ytzd45LF0vfA+O
         f3Chzp8WHW+z+1ogcOGxOOQE/l/aKZ8RZl8yZ7v60ZnxkNxuGimmwiYnqWcN7GpaneO0
         cknSEMB8hvrsWtiKh1liu63KFrPOpAq46F2pJQtkGdziMu5nn/M5uzwLpYxj5vIFdCn6
         VtMoxmSLUZlh2nl8qvgf6RJDPGwTMR4bQQc8J91mg+H332S2De2FvfMvM4Ni4OHAte48
         2Z1A==
X-Forwarded-Encrypted: i=1; AJvYcCXxniDPhEYBWeTy/jS/4FsjXW3HgXDw6AZ8N6Zu2XIL/ryqxrFaWxjxDwwBU79UmFa3eVMuw9MYa3Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxj/fgyfdG8Q+oXPQkP/FsQj3B+OhKxSwKXkH+h6fJshT4a2cRV
	NTSBmv5Vy4Seaxf72V3iBg/m2airYbab3y40icfUJRHN0QZSieCjfZHM+DRC2Xwe7Q==
X-Gm-Gg: AZuq6aLJdoSRO4/ftVII/V+LKx2ATTB1HCgEANwZF7GNuToLMkwd7EsPlNPy7dJc7fv
	gZtU1EZJ/Pgn1aA4lFOz4gYCZsuc4i7/b1mweV3m+0yb2pia284KnVklMJROHJlc5/SG7cD/CQD
	vw2uXf9IWxtYwYDNlp2KA40vqG/ZziIZz035/NxS+GaFS3N1PPDTe9MROngBaIn1r3KZqb+Gtvj
	2Tr3Ya2SiYlYD/XJAcaAxPMpMy9pSAvjzMaSiu3HBvjxTdpYABalkyAAYd1Cwg6BpxOkGE1XyBm
	RR5DAmzB0H0vkYf3rYqaQCUh3K5GSBRHM/8nd7GLrTH2AVMjS0vEQL4FaGq59o0F9D5AN0tbYxP
	6d9rYZrJvI8/X1nPOtLPtRvjejfzTBEjY+1XXicqAnOQwaCnHEE0hKY4BUv3v4w7cgn+6uGu0qW
	AGFytEnUKLT9i43uyBjzFPJE000p/oRw4ZWq7Fg7iDmQYx9btmwMM2hp0bwHXr69j2tLT7x5w+2
	7c=
X-Received: by 2002:a05:6000:2c08:b0:435:9f1b:8d19 with SMTP id ffacd0b85a97d-43618052916mr4846663f8f.38.1770217703182;
        Wed, 04 Feb 2026 07:08:23 -0800 (PST)
Message-ID: <3f9b4337-3e0a-4693-b97f-46505bc1349a@suse.com>
Date: Wed, 4 Feb 2026 16:08:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
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: <20260204122553.75711-1-roger.pau@citrix.com>
 <82540f88-ffcd-46a9-9813-ebe42ef0b0ec@suse.com> <aYNdJ6sb4GPaSEyY@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: <aYNdJ6sb4GPaSEyY@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 15:52, Roger Pau Monné wrote:
> On Wed, Feb 04, 2026 at 03:06:52PM +0100, Jan Beulich wrote:
>> On 04.02.2026 13:25, Roger Pau Monne wrote:
>>> The limitation of shared_info being allocated below 4G to fit in the
>>> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
>>> start_info field is 64bits wide.  HVM guests don't use start_info at all.
>>>
>>> Drop the restriction in arch_domain_create() and instead free and
>>> re-allocate the page from memory below 4G if needed in switch_compat(),
>>> when the guest is set to run in 32bit PV mode.
>>>
>>> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
>>
>> The tag is here because there is the (largely theoretical?) possibility for
>> a system to have no memory at all left below 4Gb, in which case creation of
>> a PV64 or non-shadow HVM guest would needlessly fail?
> 
> It's kid of an issue we discovered when using strict domain NUMA node
> placement.  At that point the toolstack would exhaust all memory on
> node 0 and by doing that inadvertently consume all memory below 4G.

Right, and hence also my "memory: arrange to conserve on DMA reservation",
where I'm still fighting with myself as to what to do with the comments you
gave there.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:11:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:11:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220898.1529308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneX6-00015x-HT; Wed, 04 Feb 2026 15:11:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220898.1529308; Wed, 04 Feb 2026 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 1vneX6-00015q-El; Wed, 04 Feb 2026 15:11:08 +0000
Received: by outflank-mailman (input) for mailman id 1220898;
 Wed, 04 Feb 2026 15:11: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=hC1S=AI=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vneX5-00015h-Ld
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:11:07 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ba137350-01db-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 16:11:06 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6233.namprd03.prod.outlook.com (2603:10b6:510:d7::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Wed, 4 Feb
 2026 15:10:49 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Wed, 4 Feb 2026
 15: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>
X-Inumbo-ID: ba137350-01db-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tU8Wr3FuhmuXp9zwslHS3tVkGBypYYk46lcfdmfOxCdtQAqEARXjNQTSjJ0RavwGm9XlqLYuzBS9Tg5xGI6Ded3Q2YFVmLuDCbYFr8tPQK6nAh41Onri3+bBzZM0hk8ecwi4FH33bio3E3BPkvbl3UP64mrxc4I9POl1PgLh5uYTd63dKKd1rwV4jynqi7dJy713/FGTdXTn1VUGCKprH16GMIvKKRDBDm7ucPky1DzOKPYsoQPNck1RAADuvRazx/jWHMTiwOFGl0DTkqxrMOmdTyVzZyMkIlFMRU/FBem86mqrw30os8c6onkmm0jK0NjZuSdtqg9p360C3FUBEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aiK9Y4xg807NRiJ+NHSuUeP+ElmW5fHLySjR3BU7rbw=;
 b=fDeRXXp71bi7c6iPUAIAkUz1APP5f4y5LG1Z83+UET+lzhZt0117i5MUczDKTEq9x1UhD2DliI7A9e23kC8gTSrz11SEE7+BpmovRIPCJpNiuKmLo2vfV6XJz/FKGmdZsDSnh8jvv+jmcF2z4/PJVsANS/lfD9B/8t8NELTkGa+y3mqknYK2kTboBKlgDYWl4uZDiyl589681zbSirjldW0iqlhy3STg7vv0NtS3+Y7bqg9tA1ut5UFrZPmE26NuzWW0Fi0iFm9NyKZZPX+OEt9eWlAyKH+9u6hPdY/HCQx/ip/eqGTvrHsCCerL9PGshS2u2qfy2QKr2JuvamP59A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=aiK9Y4xg807NRiJ+NHSuUeP+ElmW5fHLySjR3BU7rbw=;
 b=ri4GrHp92yNKbLVvCelKnqh2qcvbtXUeDFu/Wkk8JDQHZKqh6ameqCa0rnFF73Nzjhy3vA7SUkFQ0WGYiFHLoLCbnC6ztQQqmmoFBcJSb6H9kDLJvryNgWzWvzvx1jWrV5UDRQv2UIONJxBV5c66G7Ogw7K65OOiMah3IAKrMVA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e92cf534-5e8f-4099-87b1-d3640c29453c@citrix.com>
Date: Wed, 4 Feb 2026 16:10:42 +0100
User-Agent: Mozilla Thunderbird
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>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: Jan Beulich <jbeulich@suse.com>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com>
 <c7b3b54d-3550-4abd-a52c-365202133078@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c7b3b54d-3550-4abd-a52c-365202133078@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0196.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a4::21) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6233:EE_
X-MS-Office365-Filtering-Correlation-Id: e73f4e00-5f31-4c0e-66a0-08de63ff94bb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OGdkQzVKRlFZK2dQNTNhOVNvWExSdnM4VHQ2dEZuSTBiTm5TSy9lQUN2QitH?=
 =?utf-8?B?aTJBQlRRYkJra2d5cHdOQjdYRzZuUzg4VTBGNXJtRlBpdzkvWU9lRmUraXo0?=
 =?utf-8?B?Smc3T1UwODBKeEV6eUFzazYvTXNseDA5OUloTVczUUExbFRwZ2lSM3hBbzI1?=
 =?utf-8?B?SThPR1NxMVN5NXZMMURsQmExNVkramw2MTVMejFJYzhUVEdzNWhReFNweXZq?=
 =?utf-8?B?bDNxWmZmVEJnL1dheG4wRTBONlk4ZkVDWldFSFV4a29ISFdTYU8yYWRiU2Nm?=
 =?utf-8?B?aHZvYTRtYzJjSm5qQnJDaDR5cWhUdmFuMkY2V0Jpd0R0SHlaR1p1bmZ0NlF3?=
 =?utf-8?B?ZG9xWVFpWVdRQ2JsZ3M2c0p6TU1Rbkdycm5McHFkdnVUZ0FDZmFORjNua0Vz?=
 =?utf-8?B?dklMaW5mSEhVZFFTMmNiUFc5SHB0Z0dPUjJaVEpsRVZkQzJQTTdrY0ZaSjE2?=
 =?utf-8?B?cFM0L0U4VkQrSmdEbjdvdkZGQVI4UUtVQmsyaUdwU0FRWGhDTUowcDlxYitN?=
 =?utf-8?B?TGx5YmFpcEFlbE1JSVlWdHhPZ3hOOUo0RHI0WDk3M3VSYjlNcGppcU51UnRE?=
 =?utf-8?B?d1RRWTNsVXFxQy9MVUVqdjhyczBwSnRieHhqRFlNeklJUzlIVEdiRUR2NTBh?=
 =?utf-8?B?K3BZcnV1VlpjNnoyN3R6QWhwZ2hyVnhqNjZwZkptdndDYUJPRTVqRXFVN2d0?=
 =?utf-8?B?TkFneXd3SUZobWc4TmtrclRvOW56OGRGZjExVVR0M2RPZFRDT1BoN2dIS04z?=
 =?utf-8?B?UU55eWx4ZUk3cTVydEppUU1YeDFjNjlMSUl1emZld21mWTIyTUQ5YVZwWGc5?=
 =?utf-8?B?R0I0aEkrVmhvOFVtQTBsVmR1VDYxSWhUcmJ5aXZSWmI3eU1VZzByc2FLODJh?=
 =?utf-8?B?eW9Va3I3ZnBCb2tqNFNkSXYxNWk2Tms3c3dIZXVzRmx3elVHR3JUV2tnK2tB?=
 =?utf-8?B?ZzBDK1F3ZXhyWXVyeSt0NHdaMXFRdlRNT0FOZitkU0k1d1R1cGpkZUVpdEJU?=
 =?utf-8?B?Q3RZUUZLQmVoYWJLUDVmRlJPUzB4RHlMOHo2c1pxY1IxbWRMa0d3Rk5vSGRt?=
 =?utf-8?B?Tzhkak92NXV6Z3JJQ0lXbnZhZUlzVDAxL3N6cFJhSE55WktTUk1HaTRTU1Mx?=
 =?utf-8?B?ZDdLRmRtMTVUY29ER3BGWXloTUlnOFoxZWs2S09Xd2VtVlNrTExjUURGbEth?=
 =?utf-8?B?eURzUXlsdG9oU3EvbloybzRpZ2lYdnRKV2ZaNmc2Qkp3cXhpdHNtcEk2QU95?=
 =?utf-8?B?TEhRNzNUWXlsSlYvdFJXTlhFbFVMeVZDWTZKWWphMHNndFZsVWd0REVDejlq?=
 =?utf-8?B?c3V6QXFWN1pmOWp4M2g1aUVyWkRPK3k2MVNVTDk1b1ptTUxocTVIRHU5RVRo?=
 =?utf-8?B?VGsrV0g5UnNhNFZITUhCdkIrd1lJTHdaUHNvekpMaXFrcGhkbUY1RlVJVWJV?=
 =?utf-8?B?NmRpdXl0Y0lhQWllaDhOZlFWMzJkSnhMVFVtYVpMcG82UlF2RzFSRGVWRXl0?=
 =?utf-8?B?dFphQ1FaREhjTk9wY21LSlF6RTAxRjV2YkVySVFTZjBmWG56anUrUEUyL00w?=
 =?utf-8?B?Tm0vZmRsaW0yUEd3SGpBdWF0amIzSkUvN2dBcnVqdHgrQWJqRVA2UzNua3Vq?=
 =?utf-8?B?R2EyYS9FODRteldTTTZkVUQxUUZURk9GK0dZbE1DK2hIQVlueTRxZzJMVHRo?=
 =?utf-8?B?NGF2bXhXRnlxUXVBVnVCRnllSzAvd0JJS1pTS3Nhd0gyOWlOOWd6VGZSY3Rw?=
 =?utf-8?B?clg1MXZraWw1VzBZbVdLSGRwbGp3VFBVNHVjNEdOZDhqMnM4aUxidTZaSTZT?=
 =?utf-8?B?emhzcHlGUk5YMFdiempBYmg4OWVmTWV4TmdLUFpZU1RoaWJVcFQ4bXpYL3FT?=
 =?utf-8?B?MDUvRmVaRDB2V3VaRGRycEJJVVZHMGZvRUZlQldRTCs3aWtlbjRXK3h6SWw3?=
 =?utf-8?B?cGFjNFZ5Uk9rSUdlSGhRaCtGaWVrdzF6L0psbFc1R3l6dnFEd005TGlUdG1G?=
 =?utf-8?B?aTNvTkZoQk9BN00wMTNWcldqNE5FRjFiNk1EdXdacmwwVUp4QW9sWTZOL2dq?=
 =?utf-8?B?dFVHYlRTU25nMXFIcjNjZTVjRzA3L3hWL1N4SVBLckpERk82NWYveEdKRHI2?=
 =?utf-8?Q?QWJo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?d25mRUlqbjNUVEVhbTFIYzk4aVBxYjNQY29JS3pOcmhxaDZDR3pJc1NEdllo?=
 =?utf-8?B?bzVGcGd1a1lDcDdGZFlVd3JRYmJNUExGSGhEVHJTSmFIeVNsckNabVA5MDRG?=
 =?utf-8?B?Sk5YcUFuclBpRzhsaXFpSHBBM1lhNEtONHErWVYrOWovOTE4UEFPaWFReWps?=
 =?utf-8?B?c2ZTZ3NyYmxyZVA0ak1RN0FreGRzcS9na09zcCtlMkI4RVBhVUZBNU05Qm5n?=
 =?utf-8?B?Z1Q0UUp5L0cvTjhocFFvZTZyWFloZGg0eDJIL2pOTENLdkxMQVo0L2FSamxZ?=
 =?utf-8?B?Rm56SjFOYW14b1JUTGw4bjdjeVMvTDJRdWRZRUQvdEdDTEJid3dreitudjZE?=
 =?utf-8?B?ZkRQS1ZEZmp3SGFTbTQ5Z2Z5dW4rNkNKd1VLa08xRTFrbkVwckdBRHl3aVkv?=
 =?utf-8?B?cElPcHVBK2lhbi9sYzVrazN6QTQ2NDBpZEVqTGwwbTBscFpiNnhHSk9RaTNa?=
 =?utf-8?B?ejFFTm5vd2FiMG1DM0QzajNxT3locU90cER6ZDlvT1FhcHF6Ry8zQTVGM000?=
 =?utf-8?B?NFl1eHZRK0NWT2pQalMrOU82UnVTNFVOaDNwaTlhYmwySWswMGpNd1ovam4y?=
 =?utf-8?B?TThOb09SRFJzNVdTajRLUzFKSXkrcEhZY1RiK25yYlZ4UjA0VTFsaWUyczJz?=
 =?utf-8?B?bVl1bVdwaCt1U1NEaFZkd3gzUVdhSmZ4ZVNBQnVod1dqdnEzTzNEcGNwd1Qx?=
 =?utf-8?B?SS9ueXo3WVpZUGNuSGlUbVg0b2pKU3FDQnZCbllUS2tSVThacUFMejdNUFdG?=
 =?utf-8?B?Q3BFd2dCR2RKQXdOR3AwWEFNdExtN3ZoWmpkUFdRcy9HdFdsajZ2M2ZNeFNH?=
 =?utf-8?B?c0NPRFFzTTRiak51OTN3WDBVdUlrODVkSUVTMnlmSkVnRm03R1pIMTMvN3A3?=
 =?utf-8?B?MTZKZWFQdDVHRGRXSXdyR3FSU01lcjJXNlJEL01GT1NsTlIvem1jdlRlaDBR?=
 =?utf-8?B?MHplM25SNnlrU090cTQ3aEdBejlJbURMTjJidFNlaUMrNzY5WjJETXhEYW9r?=
 =?utf-8?B?MUd6Tm1yQjlkN1ZaeExpd0FqWXA0QnFxTWNBRjNRYjc0OGFjM2p4ZHAyenpI?=
 =?utf-8?B?Wjd1ajZxVWgzVXFUL3EzUzFIcFRJV2Z0SCtDNnBqbE93VjNXc2M3N0Z1cm54?=
 =?utf-8?B?aTVXWjJJbXV1UDJDeTBQckpGQ20wOVd2UlpPOEVseGhwMGtGOWdnUXdBWS83?=
 =?utf-8?B?Y0t2YnFjWjVUcGtqdkhuNU12R2tRT2NsbW8wMXFidmY1a2hnN2x0NjgxeWl5?=
 =?utf-8?B?Q2xsb3ZXM3ZTRnQzOVcxeDhRMjJKS2R0N0N3cnBzczRQdU1CUk5rY3ZFU2Ru?=
 =?utf-8?B?NUR6cUZ5bUZmc1dOYjlkOFNsemErNHlZSzB4N0VrTzJyQnBiM0ZyZkJ5Z1RY?=
 =?utf-8?B?aTdFay8wUEt4VFBhZ245M1RPT0lTSDduZDM5T05nUURDY0VCTkJDaTB2dFhL?=
 =?utf-8?B?dzJGYzBCc0h1OXNXUGRyRlZrdVBiZGRhaW1TVDZOTGhyTjVtMys4WTM1VHR0?=
 =?utf-8?B?RXprbDBMVSsyRmdCY2lCRnBOYytnSVFwaXRjMGIydnllTUcxN2ZKelNQVzdv?=
 =?utf-8?B?cW9LOW5YbnBZYWVtTXU1eVF1RzdTUDRSdTNENzFPNWx4bzF2eENObGh2ZWpw?=
 =?utf-8?B?MFFaMkp2OXNBcnJtWDQxaWtzSFRZczdsUlZNNlY4TmVrTjhmZDJWNnRHSkwr?=
 =?utf-8?B?eTZwUDdNSURFSXk0bE9ua3AzblFLYWtMOUs0enZBclpKVDFMNXc4SnRxUEpj?=
 =?utf-8?B?OEpiQjEvbkc3SzFENjAyVGIwOWU4S3JJQW9NUU9KL21kMy9hY2YvWVZTZmhJ?=
 =?utf-8?B?WlRyYkZTWHdhTnhQUlByS0Nqdk14cXNkcTd6WkxudG5hc3R5czZTdFd5Tnc5?=
 =?utf-8?B?MExiZ0RCdnFJZUE3dmJFTEZleUQ1djZuM0h2WGhVa3c4ZWJvWnpEMHJuYk9o?=
 =?utf-8?B?NnJ5c3lZeDRVb1dnaEE2b2ZEMmxOZjhPUHROamFnbDJRdWZhSEE5V090ZFRa?=
 =?utf-8?B?RlFGa3hYZDFra1ZZZC80NWVNSWdsTVVXejdhRUlOT0R6ZjIzOFJ5dWNrYk9O?=
 =?utf-8?B?ZDlqMDRHN2VibWt1d1Jya1VPS21RbmZTQUxQb21pZWs4Yk41L0FXb1BxMmJP?=
 =?utf-8?B?ZjdyTWZIVEhWanhIOTJYTGZhZHBlaUdiZVQ3Q3dNVTVxYnNUQUdVVFBOYnN2?=
 =?utf-8?B?eDB1eEZVa0xMS3FHaHp4UUZ6Z1pkTTlFMjZ4SHU2RUMvYXZVS285bk1ZbGwv?=
 =?utf-8?B?ZUtGa0lZNTQ2V0ZWay9MNlQrcE1PYnZscUFRK1NNdEt4a3ZPUmE4KzB5QXJ5?=
 =?utf-8?B?dHU1VklpaXg3blZVNk5yWkNRelpTamRZcG0rYmVaV242SEpqZU1sYnEzVElv?=
 =?utf-8?Q?4XhSIge4KfzZY9RA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e73f4e00-5f31-4c0e-66a0-08de63ff94bb
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 15:10:49.8040
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: puCMROfOyDhYTVtslOljc/9igjBmqhF/FrYAoPjQ0NQF43P42HKEwk2gWhTCSQigtNesNKYLpeiYxGhsOb4zvLXAaYbfAOho/axoRUzXgCs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6233

On 04/02/2026 2:40 pm, Jan Beulich wrote:
>>> +    if ( virt_to_maddr(d->shared_info) >> 32 )
>>> +    {
>>> +        shared_info_t *prev = d->shared_info;
>>> +
>>> +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
>>> +        if ( !d->shared_info )
>>> +        {
>>> +            d->shared_info = prev;
>>> +            rc = -ENOMEM;
>>> +            goto undo_and_fail;
>>> +        }
>>> +        put_page(virt_to_page(prev));
>>> +        clear_page(d->shared_info);
>> I think copy_page() would be more appropriate.  That way there are fewer
>> implicit ordering dependencies.
> I'd strongly recommend against copy_page() here. If there was any data in
> there that would need copying, it would need to be done field-wise, using
> the compat xlat machinery. The layouts are different. It may be prudent to
> assert that the original page is still completely zeroed.

Oh, yes.  The layouts will be different.  Fine.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:13:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220908.1529318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneZG-0001fL-Vo; Wed, 04 Feb 2026 15:13:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220908.1529318; Wed, 04 Feb 2026 15:13: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 1vneZG-0001fE-TK; Wed, 04 Feb 2026 15:13:22 +0000
Received: by outflank-mailman (input) for mailman id 1220908;
 Wed, 04 Feb 2026 15:13: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=hC1S=AI=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vneZF-0001f7-Fd
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:13:21 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 09afa1a5-01dc-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 16:13:20 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW5PR03MB6877.namprd03.prod.outlook.com (2603:10b6:303:1cf::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 15:13:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Wed, 4 Feb 2026
 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>
X-Inumbo-ID: 09afa1a5-01dc-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CrGJ/YSmFYCsY/W5nkXXHoOI6btYJ8Zy1RUJRh2kAPwuKbWBWl9+D3SqB/3F8MPdSVZ7r+QAFxAFOA25/m59Vq+tvM7g+9ercgnr6Ku27VH67KyHLfOuPTElw2gLrGFi8D8xU6K6DKmUh9hZJ9R/7q5ymRHWiMmQ2H/h5Uuif16FKS7R1/mt3CCCGe57Y+rg8UumUQ7DkVG2tgkeNRWvelUd0Ytwy98tv5BQLjG9Zq7GgTqk7z2UeSOTz0hQjqU2frRyx68j0dxAEu+tiKxxeTyeIsNCAoOpg/1YWeOnI6AIr4c8QOllU6z4zQD/cf+Dhg6zBMVGqDGsdF+waMBW/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=9QtljWU9r4SOm1pPzYouoeVIje9jwT91M/LzaLtsqFE=;
 b=VoqAfmzw6Q7fhjYOHVD2CHHifqmbL7EC0Xjp5re82fYzMWC5GOqlX5Dqw/otO8xsRk8WjcMQR6X8yKmn1m4l+h5Jons353C/RtmzeLbQAZ6k8/DmTVQBuTrXRgLdYXNTiQvRv9bA+CGy9SDZh12IFTqybluZDe4o8zQfaxii14Ma/RTJWrnbAn8KrRJxR8am+nlf/a5BLwTp5aoKOBWToiwwLxZYV8oqGhkS6RrAg3APs8owTS1jbj8RtL5+RZAEaNgnXglVALCGv7GHRiDLn6N2HCYmYPmcuTr9IgTATzFJ4IO0c+3fiRG4r8GRapsYsKx3Yodjkh8f3fV1vTh50w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9QtljWU9r4SOm1pPzYouoeVIje9jwT91M/LzaLtsqFE=;
 b=y2ASlSNsL89vqf7rkjDUUopEl3TYwy7zB4E9NlMFNKXZ7fX58rrTebE3bfSTMSwyNYRSshk6dD3m90E6iiyJn14Sa25ijO5zAZDT3fLXYmPakq2nVZWm+n2GKV4iC97171eIECAOdlc6uHZLKbkm4g1NJg0OVWgaJ49xNyduYMQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <764e6a9f-8def-4f6e-8311-ef91b6c3886e@citrix.com>
Date: Wed, 4 Feb 2026 16:12:22 +0100
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.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] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com> <aYNfVDgSgKCYd929@Mac.lan>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aYNfVDgSgKCYd929@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0193.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a4::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW5PR03MB6877:EE_
X-MS-Office365-Filtering-Correlation-Id: fbd93b0e-0270-4494-248d-08de63ffecc6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c09LcVFwZXlyOXIxOE8yMko4ajFmOHoyOFd4T3lIR2U4R21ScEVqMjZvSEZ2?=
 =?utf-8?B?c1VEeHliMFZ0dFlLQUwrS1NTQUxGck1SV1lwZDQ0V2lOTzErYlJMY0RGZGJT?=
 =?utf-8?B?cTFyNjRCQmFwK1JBZEZWMFJQL2wySFZ3b05BRkxFekhZTW9GckF5Q2wySm13?=
 =?utf-8?B?UURyZ3lSTnA1RjRIQ3kwVnBQQkhlTEZsbTR4ak9nSVdoM2N5RG1Pc1d0Y2ZH?=
 =?utf-8?B?N1hZK2NsMVg1UXNQbTZpRVVmOE1HTWhyZ3VnR0U5dkpTM0JaWmo2NzZpNTJZ?=
 =?utf-8?B?Y1JqQ084S2RFdjIyWlB6dGhkeCtld0lvbVNUcU9iS0d4NUVIaXJKZGpXVld6?=
 =?utf-8?B?T3FZM2RNQ0NjVG1CNDJPdk05a2FnckRUTGxFQVdTSGVTV2hGVmo0bW16SkFS?=
 =?utf-8?B?aVRBajAyMm9oZGlkVTZMMjI5NnNVMHc2RDZjUWIzM2h0MUFBaHpUWGJGTlVU?=
 =?utf-8?B?WDRHQW4rNjJvdUFSVFp3a0tEcm5LcDZ4OWNxYzRrdHpJdU16V3prTmFqcVhZ?=
 =?utf-8?B?NzFyeVpzVEZ6K2FMSFVzVDlESmJQazJhc0g1UHpxSWRpaWlkanVSMzA3eTFz?=
 =?utf-8?B?NmZHM1I2Q1Bxa05vNXkvdjczYVgzaWpQZjJTR2YrbjJpNko1ZmJiM2pIV3I0?=
 =?utf-8?B?a3lFMzYrSjYwNXA2amR3TEMrY25RelRnWFJhUm9IdEdtNlZKTkNKR1RPSmI3?=
 =?utf-8?B?VENGMmQwY0h6Qll4S1VORnFoVEtDeUR2bUlOWVpPZ2ZyQ1hERm9yQlVILzdO?=
 =?utf-8?B?eHYyQUxOZjRZNTlxN2RPQVFQcElWb1pPL1ZOSm5CbHF4RU80cnQ5ODBVS1ZQ?=
 =?utf-8?B?bVlXMlNSYVdWanU3U2JlbzhLQ3NETVVkd0pzeEw4M2s2NkRzaW1PSXRQUlFQ?=
 =?utf-8?B?QTFsQS9DVGNlWnhucmVhZVZJRlFlZWxnc0FSU2JVTTFESm9BSUtNWVFNRjdF?=
 =?utf-8?B?N0hBbU96UW5pOVAyZks2QmorY2oxMSs2YXJuekZsckZ5WEQyU1NFM3p1T3BE?=
 =?utf-8?B?bVlIQzFrZ0U0TTZ1YWxjR3g1a3hiZUR1YlVPTDV0MldOSTZuVkFqeVlndFZp?=
 =?utf-8?B?V2JTZzJYR3N6WFJ1bkN6WVJJMXdoZXBleTR4OXk0K2dtWlFQL3Vrd05ybnNY?=
 =?utf-8?B?NFR4YjNLY012aVdBM05hRFBDdzM1MVlLVjhsUlI1UWxQZ09QVVNFVFdIZTJH?=
 =?utf-8?B?NXhHbzJMdlhSbWJLWVFYRW5JbHRCTEg4TWc0QTRxT3Zad3FWN09JM0I0SFNC?=
 =?utf-8?B?NVkrOER0MFVqZFdqSUxwKzNLSWJBV3NIS1N4VS9MWDhsV1BvUU8xeFMvNTds?=
 =?utf-8?B?WFc4VzM4Y05tMjVzcFppYTRhUTVtd2lBYW9lWFNLRVRGNzduRVlLQTBNdkVa?=
 =?utf-8?B?TmVuaUZORWVFOXJYeUZYSkdoeU9lOWp2bVptMjJIWjhkSE1ScTVQWjRQQmxp?=
 =?utf-8?B?UjVZYVNMakdRckxqOFprczRFMERXY3cxcDlGSmR3bDFMV29YQ0h4ZStRZ0lW?=
 =?utf-8?B?eGZ5ck9tV3hMNlZwU0gzTDg1dGFZUG1seG1rd25YVGc4ZzBVS2MyRU54SVUr?=
 =?utf-8?B?M2ZjZ1R2VGRvUm1VUE1YTmt4TFpOS2k0R3ZoalF2OG9oaXhMY0s0Qkt3TGxL?=
 =?utf-8?B?UjRuQTRlc0Rqd0VDb2FDaW5pNE9Xa2lWTDFCdytnOGovb3RnWnJ0UnFqWmpl?=
 =?utf-8?B?RFhEQ1liWDdVZC81Z3RwbjMxdVdsWEVlWkYzQ0VyNVpROEtVZGYvb3d4YXRk?=
 =?utf-8?B?bHJHVkFDcG13VGRlNW5sZTZuWi9MOEJueHpWK0hBY2hUM0ZUNFVsYVVTRW02?=
 =?utf-8?B?alpBcEtydTNnS1ByNU1GQnNRUmJoWjNoOHJCUnlCS0E0bzR6K081ZDBvUVRG?=
 =?utf-8?B?eFZFYnh5L0ErcEtVNHI2ZjFTODJSSWZPZzFrNHpWSCtSYVVjRzd5ZFZSMnVn?=
 =?utf-8?B?UjROeElHMWlzNE1OQ2ZXRWt0aGRYYzlRMVRTUmlOTk9WYXpuY0Q2ZjVFWnhB?=
 =?utf-8?B?M1U0UjZEaS9PYS96cmkvSVNwSHYvY3VBMHA3TWlubk5sUm1QaDZ3SktoUW9G?=
 =?utf-8?B?ZEpTYzBpTkMzaHNSMDZoZGc4M3Nra3dsclVQZWxUWlZUVnZWbHpyejFOTmVk?=
 =?utf-8?Q?Phno=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TS9wQTBnampWUlE5amhKbmtHNmE1dTFMTWEzK3hXdkk1OW1DeFh2MUw5Tnpv?=
 =?utf-8?B?M2wyYXZvY1ppQUtDRFArU01zZXRadytPc3Y2eE1IMEtLWXVOak9CSVpzWVh6?=
 =?utf-8?B?TDBDUENEU3krbjFac2trSURrNW9uYVZ1U1U1L2lGdC9TZk53a2Rua2ZtbG0y?=
 =?utf-8?B?RW45bUNEVHBhZjAxSEhNdnVsSUlOVlA3TGZPN3VLSjNWOUNSMTN6R0pWK0FQ?=
 =?utf-8?B?N3lPK0FhTHVuRUNSeU1LNGhHZDJYeUNOUkJKOGpYeWVFSlBlM3BGb2E4d2Yy?=
 =?utf-8?B?c1F2OGRvVGo0QUs5SHNNRFZJWjUwR0xZN3pLZVRsNy9PZ01aUCtNMXdlUE1F?=
 =?utf-8?B?bEV4OEdhT0lYRkY3L3p6MUozNkI0ZXNKeWpFOFBPSW80eitnZTI5VGRSZVVL?=
 =?utf-8?B?aG9VNEk4RmFLclNJMlVNK0FBMHFjcmNLMC9pblpYaWtWWkxJNzFhdjVpRWNY?=
 =?utf-8?B?NjBTT2h2ZHo3TjhXSlh2cUlCRUJNYjVSK1ZxcGxJREpQOFFKNkxZK2tTTVQ3?=
 =?utf-8?B?dkVaWFN0ZUFnZUNMTEIrdElEZWtWZG5xZWZRbjlFRWlQdzZNRXhZSUl5VkNT?=
 =?utf-8?B?dWdZK1Zhbzg0K1JqZ0ZrWUMzOEg1MEVYam1LRmFnWkFHYzErdXBKMlIwMWNZ?=
 =?utf-8?B?RXlPYUNDQWUvV0V3NHRxVXFCV2JLdnRDOVFqRSt4VWN3NjBkRmQzaVhrSzI0?=
 =?utf-8?B?OGJQOHoxcmpJTy9QSkM5YitxbXkySDZwSC9TZnpWK2VCNDUzQnRCckJNUE9F?=
 =?utf-8?B?SFdkSjJzSmlyNE81bGJwaE5tdXd2czRLeGFYMG5Nc3Fic2hIVHdrejY2YWRL?=
 =?utf-8?B?UjR5a2lhYnFlaTQ0cVQ3YkJqNkVJQ0dQMzh5SUlTUVp6NGVObjdpWmN5OGlR?=
 =?utf-8?B?VlRJY3h5QkhxNkFBOXVUa0pxVVlQZDF5L1V4OVBld2wvdGt0Rkh1dzVKSGlx?=
 =?utf-8?B?M2RjQmQ5UVlZM1ltQitOOGk1N0h1M3M0Z2ZqZHNRV1RVVzJGdVkxbEsrdXpM?=
 =?utf-8?B?R0dOSW1oNXBnZTI5T0dTUlFhdDVsU0JnNTZJd3R3ZDUvRDhudWpzNkp1T2FE?=
 =?utf-8?B?a2xUMWNxK0ZmMXRibHlEdFo2U2poYUVvNFJrNUlTQVhRcjA3bEpUYUFiQ2Zp?=
 =?utf-8?B?REhkaGM5Nm1pOGJFRXUwMzdUYXJlb3hBT0EvRXE1eFZwVjBqQmQyTTc2QTlQ?=
 =?utf-8?B?cXliRkF1a0hNTThvd2QwR0x6bmdoN3hkU2ZBMjNucTBvNDd4U3RUN3J5RTBq?=
 =?utf-8?B?VU4zcHVaR3pFT3RaT0t6YmRXZ2l1SlI2d2ZjR0NyWGFrRnpMTTc5czExcVNL?=
 =?utf-8?B?cmx0ZlZtYmhXNXQ1b2pwaWUzRFVKdWVFQ2dWblE2ZFF1UHNSN2UxamdacU4w?=
 =?utf-8?B?dGxMcU5UNnNoU1R3OVdTNXc5SEkybElXVU9KSExvQ2NMVTFkWEdKQXM1TG15?=
 =?utf-8?B?TXg3cFdnclhveUd1Vi9yb2lXV2l0ZHhQamtYbXVkV1hVRGhtVkt0R3hhb1BC?=
 =?utf-8?B?c2dTemY3a0c5N0tHVGk3TGVkbVE4UksvZjVzMDBiMHltSlJWSk1DNkNXMXZt?=
 =?utf-8?B?eUs4Q0RVVHdrYlFEelRpTERSTWdZQ2xoQjZFNnIvY2lFc3BiTEtOc0lmTWZL?=
 =?utf-8?B?Q29adDBUeEtkNWU0MTlvRUE1VkFISmFuYVh5dVdRelRlc0tQakNYQXBkMnBX?=
 =?utf-8?B?d01qU3laWURnSjlZcGI4RDkreXR6aTRuQVB4elplcW9SR2NWOERadGhIa2lP?=
 =?utf-8?B?R3o1UStZMnV2RTU1VlYwdGpleTAzUjZKa1hFY09ZUGdSZEUvTlR6ZVkxWGFl?=
 =?utf-8?B?QTlUVG5yczdVemNpTGg5Q3pqS1dkYVlPMWxSTDFjTHVFckkzT2txZGV6dnF6?=
 =?utf-8?B?cnh5VkE0Z3p2dTFRTzNxdURWY2pKVW14TUZNZExkK1hlQTNaSDRyaFk4ZDdm?=
 =?utf-8?B?bTNvMldzWFFhYUIxMVo1QS9RZHZiaXJJSGVLdjB0czd2UkRXbSt3STB5TCtD?=
 =?utf-8?B?b2VwOXErSy9jQ1dYREtpRnhoU2NNSThnWkV6OG01amptT2lYeURYVHk0dWFu?=
 =?utf-8?B?TlU5MkllM3ljWEtlcjBOUXdkTklqMGVqUFhRSVBCK092eFB3cXlXKzAvTFhS?=
 =?utf-8?B?YXNTdVZmVWxmUzdpQVBHZ3czcFdOU0svS3Z1a24wM25rbHkxN1BVM1ZibkpK?=
 =?utf-8?B?and3VDJTOWo2MFBxRVkyTHVQZUw3aC9xSm9qS0gwMnJWVFEwM2RDRVJDQXYy?=
 =?utf-8?B?L3E2U25NQlZwNm85aG5ZbzFZZnJ6REM5UlRDK3VIazkzYk51RTU0OGNPQ29F?=
 =?utf-8?B?ZkRmZ1VnVG5sZ2hHNXlEb3k2WGxoM1E1aERKUlJ3RDgwVWJoUWRYemZOUWY2?=
 =?utf-8?Q?Y2VDBGOToiSmqVZo=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fbd93b0e-0270-4494-248d-08de63ffecc6
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 15:13:17.5051
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: E74r1lOX/wxga9rzcD+QPlUrmegkzWiTL2Mg/5HAi9e07LehDFU5vqbZgZYe35TqN3CdeY8Nh+AtEzSHE46KZO1lJUvgMevrDhC/WUAPcKE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6877

On 04/02/2026 3:01 pm, Roger Pau Monné wrote:
>>> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
>>> +        /* Ensure all references to the old shared_info page are dropped. */
>>> +        for_each_vcpu( d, v )
>>> +            vcpu_info_reset(v);
>> switch_compat() can only occur on a domain with no memory.  How can we
>> have outstanding references?
> As Jan pointed out, it's not references, but stashed pointers to the
> previous shared_info page.  I've used the wrong wording here.

Yes, I saw that thread, but my question still stands.

How can there be any this early in the domain's lifecycle?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:31:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:31:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220921.1529328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vneqd-0004ng-CY; Wed, 04 Feb 2026 15:31:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220921.1529328; Wed, 04 Feb 2026 15:31: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 1vneqd-0004nZ-9U; Wed, 04 Feb 2026 15:31:19 +0000
Received: by outflank-mailman (input) for mailman id 1220921;
 Wed, 04 Feb 2026 15:31: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vneqb-0004nT-Nu
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:31:17 +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 8af3f2af-01de-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 16:31:15 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso11326365e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 07:31:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483109278adsm47879525e9.13.2026.02.04.07.31.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 07:31:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8af3f2af-01de-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770219075; x=1770823875; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RfGcuctkZXLweMde0RuTwoA6cx2rr1R9KDeW8eMECeU=;
        b=J43uIN9+s/iRUG4Rfjz4W5nrR9kAK2MOBc9eMcqWq/0z2Pfba9X4H1loNsm7KVtUoQ
         6Zrr1KKGPT0zXGihke/g/4LXWkkVHWRuuIqi4oadMdyvy2JxS+7JZ7g2YYOeuDAlMdXq
         DeVRyEq2+niJRdOfBycQHEXw85FLAqZZ8lAY9f3Z+nJ6Lig1z4oDpPmFyRFf+TS0YBzX
         +Qg8olLBZoWDrhNWBt1r4u1qNo7ev7sKSXh0h3e3SuZH1zWNveOhwvJH9Yqevg92C2iB
         4JT5oCCOlZ07PFcaYD8j9xLasGbwi+ETndMaXU5Miiiu8WEcGx17X45z6bJPGD8JygNd
         3vVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770219075; x=1770823875;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RfGcuctkZXLweMde0RuTwoA6cx2rr1R9KDeW8eMECeU=;
        b=GH5XgnDbGWRc6hngfwrXLUnQrptSBHvM/HOAKkyVwIaTjWiiQDzui8tODZJo1W+3Zu
         HOT4J0SQM5pc2pM7LcKFvdYStjHO37D/Bu2R4C3th80u9GLo4BIHyniVjiWVhMKf/FvB
         nB25kLjyKZxjJElP7H55N+Bwm8RPTt3GkSBaMlh1W1dfwrArY2oWER+EeGW9n1Zw9gGV
         jfSGe1bLuMeFtA1jV1xyI0jhNY9T70W6E9HsrbFh2+Jlw+u0zm1DG68LJDqrmJEATfFt
         8wIf0k2pC3rDbg4Zm51uPvCQuXUBcSJUJlI6BLc3nEIP6zMbD3c6iTq8oWkLR46Ao/uh
         uN0g==
X-Forwarded-Encrypted: i=1; AJvYcCUJ91eSI9rbQwPIZ74q5n+eXQY+H0epAVNNBDrdkBlZm5w4QaPF9LzAXhPfajkF1Sv86qqPZWL6zfE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyI37y+yk9HObMf3ua5KcbthdoAyq05iFsbfLxSl5G5cwdWFneH
	KGiwa5yRIe1OFOz2VmQkJJ+vWct0rXLPcI+l4AlqU33i4lFKHcg/zeeieBjN48tB/Q==
X-Gm-Gg: AZuq6aJ0ecVgt8eVJw23XiRtJB8uMyXngKJOlWrDN9+2vAgNea2syCe9Mm23FaP7itC
	vtB/GH3NJwb1yJaxoGoUDUah9RcQVaYFI2tAR9+5BbPRqyZGPyEwi/3nZ1ch5YMlGhJvlL450u0
	D5sD1Jg1SRAdxvK2meYIh40OUx5SNMZSeNFNSSRKuG9BlPEiGMSX1lPyC7lFhdRyIlwSbjS5xr/
	/pnxCcRJ+eAKNNOuCWgVVCHi5yB2ZNbAweWIzi6wnFm3QDbf/47WazPUWm7amL4usxQ4J+adiqK
	hp6M+VrfbvHUJz5zQ6n9qukjFY4FGXxiCma1xw3qme7mImLWnQMTeL/ftSF+tl3Bp4DDlgDNJSg
	X5uv670EebOhUHrItBYrkXhHfAOYtW+80oVdUOSrHRn9hQOGN0ZfT+o7/WzUEuMcIaF9EYKp0Dr
	3dG7Y96eRUIXAViNqOZzb2vyhLAeDqm2/mtpP7Ojmw0fCNlWKo/rguCi/XRRACrSnrroPRMldPk
	uc=
X-Received: by 2002:a05:600c:154e:b0:475:d9de:952e with SMTP id 5b1f17b1804b1-4830eb1cc31mr44810495e9.1.1770219074545;
        Wed, 04 Feb 2026 07:31:14 -0800 (PST)
Message-ID: <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
Date: Wed, 4 Feb 2026 16:31:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
To: Bertrand Marquis <bertrand.marquis@arm.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: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.02.2026 14:16, Bertrand Marquis wrote:
> Xen does not currently document how to build the hypervisor on macOS, and
> there is no Darwin configuration for a Homebrew-based toolchain. In
> addition, the Makefile silent-mode detection can be tripped by -I paths
> that contain an "s", which hides build commands unexpectedly.

This wants submitting as a standalone fix, so it can be backported. But see
also below. I don't, however, understand how -I could be useful here - our
build system is self-contained, so any include directives used should be
satisfiable without any -I.

> --- /dev/null
> +++ b/config/Darwin.mk
> @@ -0,0 +1,4 @@
> +include $(XEN_ROOT)/config/StdGNU.mk

Darwin isn't really a GNU environment, is it? The definitions in that file
may be suitable, but perhaps a brief comment is warranted?

> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -116,7 +116,7 @@ endif
>  # If the user is running make -s (silent mode), suppress echoing of
>  # commands
>  
> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
> +ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)

While probably this would do, assuming make isn't going to make drastic
changes to how $(MAKEFLAGS) is set up, how about

-ifneq ($(findstring s,$(filter-out -%,$(MAKEFLAGS))),)

instead?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:32:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:32:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220930.1529339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnern-0005Hi-LF; Wed, 04 Feb 2026 15:32:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220930.1529339; Wed, 04 Feb 2026 15:32: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 1vnern-0005Hb-IG; Wed, 04 Feb 2026 15:32:31 +0000
Received: by outflank-mailman (input) for mailman id 1220930;
 Wed, 04 Feb 2026 15:32: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnerl-0005HS-RY
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:32:29 +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 b6c8e257-01de-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 16:32:28 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-43591b55727so6064654f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 07:32:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e250b2sm7820934f8f.8.2026.02.04.07.32.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 07:32:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6c8e257-01de-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770219148; x=1770823948; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nbI37ToayJGAV0bk/z5GYY1QMRoFHAJpnW6Aka6JAGc=;
        b=bf8jkphEhFnnX/lxqM2vkHOSRoaiBtoB4xrgB1Aq9tKVf6gE8pPjNkKfm27+h1sUnZ
         KSR0q1gGVMUMwY+ZDKasKUCFX71uQue5/dVMOF37UY9vUQQffowX3MSJDBd04F0Q/lJs
         S4cntb/S02O3tZONA9vitv50nS6UKhUXZf8dICMn1z6krj8KIugA+EvvVtCNcdFBmRrF
         v38tRlNNmvBpQ0y/u43pyUD6FFOb8xuz34SYskUE08mSzo+bEgy24gmMRHH0xqFdXePk
         J4disrW7DqFYjWhQpiQ6VYHjZs0DOWfzQdZyOJTDwqx+oscLQo+Re/tDT9O8B1glAOUr
         xAbg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770219148; x=1770823948;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nbI37ToayJGAV0bk/z5GYY1QMRoFHAJpnW6Aka6JAGc=;
        b=mxjacsRHxd4Kiz6QMM2I/3EATwVI9H3qfXaWCzfrQlDY6fKeszyZWTICIGwoPLnErY
         aJnmR8RD2udZ1ZPpaer03pvtQb66bHiCPIzx2h8xwL8B2VcwGtrvdwBXcO4dfFBmoxwD
         qnMjCUp47urN3EPGSQQ4j5o7LjAeeIqXSXFmiyrd7t/uwMIZv9P9orA96E8h11zLUBna
         rbbcVEjVC0ob/yCFdhxmX665/uvEZiLgBG7iH5n16QvF6sRlbkz6yL6TD7gtkTktqtGo
         KZrpxvXJY2uQ7JChWMp3eTdS3WNnDxxYQuSzYP4taPda+9hEV+OKFsM/sRrgWodqC7iG
         3Ecg==
X-Gm-Message-State: AOJu0YxsDm4YMl3uHndGrkLt6TYYlRETHvg6lnKAlnjbnnRoQKhyYQjN
	g5Tp83yQhldNO1wYfQ61G/1ytIJFk/UfgmXtF2zLYkeBm/ekFuJhMLBWE45X5VGRdv1pUTHBog4
	bKG8=
X-Gm-Gg: AZuq6aJ3ipJFmhTQ66wV+kIKmh4EQ/dBtB0D2dd3sUR5326oLisqQsPyynA4fvr+ZTd
	uc5ve8A5bx4ywYLOmqpvoCabBdBOeGSvQ52c4/RZQGt/IV4hyZunlnUGYR/fsNrzXLHpVNTufw0
	rEkj6xAjUkCq1hKziDZ9lizDazcBDYSE0ClHaOcMwP0jGQ9OL5VKvx8OgDSPoUZhFnC91EuUr28
	VTMVx2FleXeaRR4mL3s+92N467Gxis/JPXcP7EV7TC4a6c0b1O/hvYVQ/UiDUt5jZzberxZu8hM
	sKJZKHCjCZA+91H9NEU+l3l8U5NxMVos1oTTTio4RFuRv1lnu9Tn4thLXuwm0C66W5pfAMgjSlT
	RgHjTOgOw+0VJ2cTWXpEY4OHM5IqvGVCdXkkLAMCyLWhtUnsJdo/a4VglcAlANxmiwPVu+blEJa
	dPbEdRtnwUVsO/0fZ652jYkhSjjJL27szIkkr0KNULxTxffyuSYesQLql477P9fFcETH5+Fw19y
	Fs=
X-Received: by 2002:a05:6000:250c:b0:435:e060:8071 with SMTP id ffacd0b85a97d-43617e41ee9mr4499471f8f.16.1770219148127;
        Wed, 04 Feb 2026 07:32:28 -0800 (PST)
Message-ID: <a7ba4cfd-d452-48f4-99c8-a7c283facfd2@suse.com>
Date: Wed, 4 Feb 2026 16:32:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org, Anthony PERARD
 <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com> <aYNfVDgSgKCYd929@Mac.lan>
 <764e6a9f-8def-4f6e-8311-ef91b6c3886e@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: <764e6a9f-8def-4f6e-8311-ef91b6c3886e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 16:12, Andrew Cooper wrote:
> On 04/02/2026 3:01 pm, Roger Pau Monné wrote:
>>>> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
>>>> +        /* Ensure all references to the old shared_info page are dropped. */
>>>> +        for_each_vcpu( d, v )
>>>> +            vcpu_info_reset(v);
>>> switch_compat() can only occur on a domain with no memory.  How can we
>>> have outstanding references?
>> As Jan pointed out, it's not references, but stashed pointers to the
>> previous shared_info page.  I've used the wrong wording here.
> 
> Yes, I saw that thread, but my question still stands.
> 
> How can there be any this early in the domain's lifecycle?

Can't (aren't) vCPU-s added ahead of adding memory?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 15:47:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 15:47:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220946.1529349 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnf5v-0007Ar-QE; Wed, 04 Feb 2026 15:47:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220946.1529349; Wed, 04 Feb 2026 15: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 1vnf5v-0007Ak-M9; Wed, 04 Feb 2026 15:47:07 +0000
Received: by outflank-mailman (input) for mailman id 1220946;
 Wed, 04 Feb 2026 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=THT1=AI=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnf5t-0007Ae-H4
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 15:47:05 +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 b8b652c4-01e0-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 16:46:51 +0100 (CET)
Received: from DU2P250CA0021.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:231::26)
 by AS4PR08MB7926.eurprd08.prod.outlook.com (2603:10a6:20b:575::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 15:46:37 +0000
Received: from DB1PEPF000509E8.eurprd03.prod.outlook.com
 (2603:10a6:10:231:cafe::71) by DU2P250CA0021.outlook.office365.com
 (2603:10a6:10:231::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Wed,
 4 Feb 2026 15:46:36 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509E8.mail.protection.outlook.com (10.167.242.58) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Wed, 4 Feb 2026 15:46:37 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB9924.eurprd08.prod.outlook.com (2603:10a6:10:3d4::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Wed, 4 Feb
 2026 15:45:33 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 15:45: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: b8b652c4-01e0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Sr3mDDa9abJJqnZR/hAC2ID0kuOg/hvw1jaX62rR7TbSkcDgZq6yyKkPZGUFQ/hRlzdxYo1IA6dVQcpZCWga8d8+R88r8b/ccIVIl6yJLrFGPvCYbjwPcYN8MQbM0lyX4A6/wn1LtqKYnjRzKGTKj6ujzmMHuSbIWhmqHRkY0SRN4hJfSoiXwCefkenYAszgdMb5+pe8rtot5V+joWjT+Nnzi2NjrIV95ihJFlD1VfO48EhLtogN/y9AnNNPOChfX6wsMLAoPGbIfSYdCzviaRHdySpbHQvtyhAeyRDlAE5WMMCJw9xLzvssNHXXS/hcXuYoVgxGQl9bYLZx77xzfg==
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=8FFbh+npZy9Vu52M0Se5EutoZFbtw1TYlWHYunbpRME=;
 b=ZWDaT9pAlT3kQnzOPWNb7sphxKwg/QSniAd8bnxOQivFEvoEWyZWuox/Lyxvp0fB11fBXPRZpeOMAvnpcrq8TX5lKaBJE2Z5MDJ+CYueUH+0qE8PzMyxtrDLEmLawjPJBeWPJ+JdH7K1Eq7TrbBi/RMs2NfrUYF5nGrAU1xkmpgLmIcyOoig//HZc3/C+MZ0T7Nc7xuISwX4hnt4mOKcIYhRy3rgq+taqnC2lQFjtXIEWpBH7j09mqVrX1Gs3WsL9EXhhGaWkHV0EDsNVnUP+0gbRPNosLVSBVoaTLtv1e/4BFNpuBmgwMkbPA/HGNHbbewgykF/LPgFW9EigRwjvg==
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=8FFbh+npZy9Vu52M0Se5EutoZFbtw1TYlWHYunbpRME=;
 b=DvxTVfKzjmFRypOVSUDjsod88+D/gzm+LirzYtab0GkbDDw1Flbn/W3//gKSdymzM/TyDlS9iGVKNB0IXR9++SRsDGY6aVsArZPRLNLMuJ4DI6H8uZDXasQ52K2EeQcTsyfc3RLeqIh47T/PZ/mJEtxM9vRgG2R+QkIQhFMkSRY=
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=gOmD38a4vmLdH75a+y79hAaVbdrZBn3VBpyx9Dy1/nVS70Fy1NLMZpzGDPnQdPI59WibtjD1TPh+IoM5XHPdJoWh2oL3zt3a8NKKOenAU+QH+KpBUpCNrQzGNYL8rb7AwZCUfw/bpPCFTiYe6pvc5qfx69ljSWqhq1kRqVn9eFhK3VdLerl2q7lRCldrwv3JbRl+CrKN4sde5wqGFXCqA6eXvWDdHP/drXxFc32Yr8kx0JHquDjwdil0zjYQh52TB2InQprO/rC/QQmf/4DPhqJF7Vhhy4dwZp0f001+xB4WkeY5BHZ34400CwXyXuCKZtCJ1PhOpaiwgcvxYeMHWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8FFbh+npZy9Vu52M0Se5EutoZFbtw1TYlWHYunbpRME=;
 b=elAnTp8pjaq9VWCcwdsoPVytJ9jVocdgnl8sm5DVl9OZxTCmnvpsAS40SrxD6Lo03SBErmzRaJO+1/8P2sP9uX7TMD8JOOMcWHUtva9Q7p80NmeVFldo2PSsaDJAhQCR9FpLBycuJahB14LHmXKULgRUpVv4nXVuOFnQDa+9hcdyX5+nYbfs3An4yd7Ml/IgPHtbxZ+K4ijlWFpB2vAROKenbqGblp9tgVlR2/0DUF/rVqvuDoCpMZ0xKv8Mf38+IKVB8qNNt08K8M983u9jGME1ZVBe7lRMkmscjnQikzVu5wIymXI/VXoQO1RkGEliCxe5e16+FD4qbCQ4FFbUyw==
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=8FFbh+npZy9Vu52M0Se5EutoZFbtw1TYlWHYunbpRME=;
 b=DvxTVfKzjmFRypOVSUDjsod88+D/gzm+LirzYtab0GkbDDw1Flbn/W3//gKSdymzM/TyDlS9iGVKNB0IXR9++SRsDGY6aVsArZPRLNLMuJ4DI6H8uZDXasQ52K2EeQcTsyfc3RLeqIh47T/PZ/mJEtxM9vRgG2R+QkIQhFMkSRY=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Topic: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Index: AQHcldiTYCc32vRyb0mp6O53Aox8PLVyquQAgAAD9QA=
Date: Wed, 4 Feb 2026 15:45:33 +0000
Message-ID: <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
References:
 <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
In-Reply-To: <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB9924:EE_|DB1PEPF000509E8:EE_|AS4PR08MB7926:EE_
X-MS-Office365-Filtering-Correlation-Id: 323ac4c7-0487-4159-6db5-08de640494f4
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?fjoRdUVV5p6Z8F5/TpazNNwAYxdcqANVYLUAvPgqerfq4uC1aXRLXrJPBz?=
 =?iso-8859-1?Q?IzeWF/Eqc1JbQ59jhJ4fKXLm77XfzdAlvN6UCrVFVJknvuMQuViIS6MV4T?=
 =?iso-8859-1?Q?YxA2vA7O9skZtGNbgUzNLWj5rgqLQGPKvUYPpvAPBy7MROurf7T0JqmLLG?=
 =?iso-8859-1?Q?y2LqinT7QgTPnSMHgpJ3IQIpq2SNZ/XC9i7eVio7+2znkcuj5GExY8/Up/?=
 =?iso-8859-1?Q?4lWnZWCvNgt8bMvxU7GlDpIXCnGJC9UGFXGaLvfNblOw99Lk5nasSzGYy1?=
 =?iso-8859-1?Q?ZvigICe0E2KfT8/l8EeyIUviY7iFCxm1DmRaWsScaVHfj0Gwgqj5WnO+/I?=
 =?iso-8859-1?Q?RdLUZ991hR/8AzFAJ8OpaS5FeTG+IeCQxitDeUttWEoQc96x2IMSsv2M0z?=
 =?iso-8859-1?Q?MckWIOVWGix8hNSuYW857ouMzR6QQoaXs2SgqAuLY66pzYEk6nZMa4rcCN?=
 =?iso-8859-1?Q?zXy6CgAkL6HtwRRqeOonV+ladJpEqgrb6Lm71sN1gevisJ58EgXD6e3DFw?=
 =?iso-8859-1?Q?yN8qBGVhQGVoaxToRIBptneYprhMMlh9A2+RsuEFAmv0pEjfpDa2P9K5t/?=
 =?iso-8859-1?Q?YdSubI12tZpxG8gagd9xLJL1TH9j19id+8mZED92otE4YYZY8oTOb34oGL?=
 =?iso-8859-1?Q?NiylfbcRtyxnxs2do/1n56+/ZZLffw82WWRhqVSdbUJNBK7lReaRkWEnOR?=
 =?iso-8859-1?Q?WLrJR0/MDMv6pbHLGeA7b2yfEL/sI+jwRH+Zdy2FiU5WL0Y6i9HMDZDi/Q?=
 =?iso-8859-1?Q?0pgS1zyk0Gtj5OH8HQoi4CXIPgQRTLGS6WSmbGC2jIruc5xuIWNvQAy/hS?=
 =?iso-8859-1?Q?/4V7oGMES4p+RL++BcOzk9CxAeR+o1PBUoXTKMbxW4pXWFlQybhtPeJBad?=
 =?iso-8859-1?Q?ECVc1Mf+m/sWeSThLgfxV2xPyjufpkrMWTezy5v3s3CP7MRBCBqn7s+9Y/?=
 =?iso-8859-1?Q?0XRZnLOiUrMErxNtWre/QYFquEE0Nzm397xOwvZJhlWtS92DtpsX89jrLw?=
 =?iso-8859-1?Q?AGQA4Dm6gZulsy40WdQOPZjgyrHhfOGax2RURGCp4cXyUefTbEuJ11oFWB?=
 =?iso-8859-1?Q?kJbEtSVnfmU2+Vn+14YgiCVIHD56mEt8QNQWJYRl2UqxegE21jKodpkehL?=
 =?iso-8859-1?Q?4EBCoI4AhThyVXBZxEtXzV3x/F0kKRHWLTQUPeLQ3j5/17YF16CXGKRhJ/?=
 =?iso-8859-1?Q?F6U36ONtSBGKPBiYZiHsLbSIp4wbXTnPYF9oPLm9MLb372PcWPUMIZSBha?=
 =?iso-8859-1?Q?ItgT51RHXdbrxobFgDxp7Ehj8Mrfb5h49vp3MaTQmCzzEFNLp4BDLtYk5n?=
 =?iso-8859-1?Q?fNoaseEdwMwR9CrNXzLUZoIAhwFo92O9rTQQRSzfzquCOblw21HxP3ndAI?=
 =?iso-8859-1?Q?dnAEmtTjv49jdpvSKXAWebUwtBr+JUkS3JMBgNfmQJq3aGfTBBiMUoSEuz?=
 =?iso-8859-1?Q?ZC9NR7xoBKnGXu9ucA7tjiJal1OVVGuNMaI4W/VYwQjXXbpq+J4758Q2E5?=
 =?iso-8859-1?Q?WQRexQfYa08m+NWwOTaZO9wXSErDvuoNTksip/rtGrE2LcvY3xe6aMlBum?=
 =?iso-8859-1?Q?sWdRQiQW+MAXU8n20atcII7HUN7Pzd5FVHoOagKStW1lmPU0553PkA7XmM?=
 =?iso-8859-1?Q?IPscNhca76rfeXLBMLOCl+rr+QNVNFcDhmPbuYMaVIaiuiOXwtShvR8e83?=
 =?iso-8859-1?Q?0P1IwJg771jBVnPDP0g=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <DED4601DB8581349A283F5232F35F4FB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9924
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509E8.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ce98c7d4-c188-4024-12b0-08de64046e9c
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|35042699022|14060799003|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?ZKISLFjlgO7L22jKckSC3lu3/lQVTdRQ89Hqx9WJRZ+KS36IlF3gEcdPPR?=
 =?iso-8859-1?Q?Z7dLwWpqn1649EAH1F7DdtcfJhLwgG3Sm0eKH92mYMpP15XH8kWZJKzGcd?=
 =?iso-8859-1?Q?iAH2kGf3fIhDeEa/cljM63ltGlTid50Rm7WsGtIiE3z6FtFstl6Yu5hkhm?=
 =?iso-8859-1?Q?mpxLkcw8a/4ZCoTnsYqZZCIP/SyCewu4co/HtsXVN6gzZXv9mRtrwrESzH?=
 =?iso-8859-1?Q?BZThTNqNOy/qcXowDdvhj2nBoaXsY/NIjFm6lfxdUQHfbzs5tTGQlhx5tT?=
 =?iso-8859-1?Q?GPfH/ZiZTi3vrCBbY09zP9za0V2dU5ACa8TTxW+/EFtDF92kO2YIJR3HL0?=
 =?iso-8859-1?Q?usWM8DNlAR2ysSn2S+1M9fM2GBi8AKrNREfoJgQjaSPz2fOMEIgJprkmEu?=
 =?iso-8859-1?Q?AOcCCbCX/RFpwxpNnnMX6upU+pV3qnA3UFgNA3eh0DaM/ALkvyFPDtZnhY?=
 =?iso-8859-1?Q?pStxH7qSaFJfK3ZXtW88FnVlXsAbHSAwqtfxI9zHYiszOIpzXrcGBExiJD?=
 =?iso-8859-1?Q?AXnkNSDb5Gjhx/fsgPCFogz7h7QZ6tCjeRHIFR73GOiWpupPT0ufSMJ2S7?=
 =?iso-8859-1?Q?fdUq41N9UbtKHMxqw0nPnMuM5W+ne9J7TTRyFIxVQTAQITykd//IKFEfdf?=
 =?iso-8859-1?Q?nPbQd7Vn164WvpYmTglgqLlIrP5U/ocQMF+J38SId47vAQVm2vwYpK2Jxi?=
 =?iso-8859-1?Q?9ULDDd7yW1Q7AJ0p2t/zXg2Exv93Mr8iaKNF5BpQnNllHTjrNxc07UIdqs?=
 =?iso-8859-1?Q?tVNvs1+dH69kVlz5DvuQbPRdPQyrFxgCKnot73rcDh/HF1rV5ljFfg6xVd?=
 =?iso-8859-1?Q?asZE8pwwppZ1pBm9AI+EeC0dT1qQe4IV6yvNkJ/d83BE7lo1QI9E73DzJ5?=
 =?iso-8859-1?Q?YmD15gGlQ70vDvHa60G2+x1OGwplvAfIsBg+2Ia2fhRuq6oCBjRPamS5cV?=
 =?iso-8859-1?Q?r3i55mgMQVJcouY30oRpUiL4mu42ftykx+wcghxJSHk+v/cyCMPJ1HcmzE?=
 =?iso-8859-1?Q?YMl1ZyFtMQjDquwQ6EdWb/0VlOTh5pKm6cQ+STtUyyXkhiOkdfAV8dYn0f?=
 =?iso-8859-1?Q?gsHbvRoVvug0MtM+zJuuSRmj6gDWreBsgMiBqaLZG+5PXRfZz3JCXyNZ8B?=
 =?iso-8859-1?Q?pQ6QYXBMi2qg5UKeVKB3cxfAX72KHhFlq0qitCSTQq0Rg7bc2gsGyDYyz6?=
 =?iso-8859-1?Q?0kv3AQpHVfWSTXaEVd1CsZQQNvPdGeywSloukoYAZUkfcUFr6wKh/MLv+3?=
 =?iso-8859-1?Q?6PMQdopvh+sCkRUgHPtU9ZBWiqcG6qeVlOad3o/401MGIOs9PYGPaY1E5t?=
 =?iso-8859-1?Q?+Fr3KYH7GCofirNxtZiLPXcmJW02/eldp+g2Rr1ukassPTNE/7txRBjg4v?=
 =?iso-8859-1?Q?kGNbAbSYevoRh1ONiAbPf8dcKmVzGpHFchqVdB2Kfyh8ZOB+hhcrgN8rcH?=
 =?iso-8859-1?Q?yPiQjMxYtwJjABPDAb9baMatQ2DA1xf3nTCZrsvlkVtZ2g+yyMBGN8ye/K?=
 =?iso-8859-1?Q?kpiTLD/OoQY73FysQITVvmmmL6jcVZh1/8eqMqURyZ97bJmVZkQw0B2OWv?=
 =?iso-8859-1?Q?rMSHojay8x1Yh2Uqd3zqHG9rSZboPZVPQdjnI2mWV3lK9hQl07GszHWdXp?=
 =?iso-8859-1?Q?+Gre89sbAzWJT49qHsle83IE4o4jVGz4Yp3eBKxQ0TfUSPpuu5UgLFxfsj?=
 =?iso-8859-1?Q?4rQwxq7Ao+GXwFL2Tb2Sqj2AUMrCCQCZQ5/lWgFJnta2kpEbKzQJT1/T4J?=
 =?iso-8859-1?Q?S5fw=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)(376014)(1800799024)(36860700013)(35042699022)(14060799003)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7wMlFuusfmV6EovOieHPWqM1QwTdHp0vZIn4sXp4RpKZ2C3oT6xRDpkNfR4kvucsjHFCSBpZqhZGbPPPDpk8FytrpoUWB0t/RNXj6BflR0ERnrMrVkBnR4PnIdSU9qS/Xxqa8BmIcTQf4kkfFpRQRuAg0Rlk+FNqL7wEaVTdNtoBZRtOZr39WSIr/NfXbcNXhSpkFmXZHrZin/0mAHIxFDew/B/01AUAhjbqsurKLAnLfczOyHbjtuBc68h1vH1e7+4+n/sIFREqmKq8IF9d2V5s2eqoNKxwr9vdckoyDeoGZmBepS5dBTEZGNvFZSTke/+ssBA9xc858eSWD05XWnStQqVW7XwMIabRjWQxuJ0GxBYZB8BQLBJ3MGMr1BWSOXwou8qkRa6fzZSSBn1dIITY89Z8yVqjiqiWJwBB6hFCVxUKsDgV+SPcpmRju22a
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 15:46:37.3810
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 323ac4c7-0487-4159-6db5-08de640494f4
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:
	DB1PEPF000509E8.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7926

Hi Jan,

> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 04.02.2026 14:16, Bertrand Marquis wrote:
>> Xen does not currently document how to build the hypervisor on macOS, an=
d
>> there is no Darwin configuration for a Homebrew-based toolchain. In
>> addition, the Makefile silent-mode detection can be tripped by -I paths
>> that contain an "s", which hides build commands unexpectedly.
>=20
> This wants submitting as a standalone fix, so it can be backported. But s=
ee
> also below. I don't, however, understand how -I could be useful here - ou=
r
> build system is self-contained, so any include directives used should be
> satisfiable without any -I.

This is added automatically inside our Makefile if you build out of tree:

MAKEFLAGS +=3D --include-dir=3D$(abs_srctree)

which ends up being -Ixxx when tested.

I was not thinking as this being a candidate for backport as the only
consequence is that if you have a s in the full path to the xen tree your
build will be silent even if you pass V=3D1 or Q=3D to make but things will
still build.

But i will split that as a standalone patch.

>=20
>> --- /dev/null
>> +++ b/config/Darwin.mk
>> @@ -0,0 +1,4 @@
>> +include $(XEN_ROOT)/config/StdGNU.mk
>=20
> Darwin isn't really a GNU environment, is it? The definitions in that fil=
e
> may be suitable, but perhaps a brief comment is warranted?

Yes this is only valid because we use brew in that case.
I will add a comment.

>=20
>> --- a/xen/Makefile
>> +++ b/xen/Makefile
>> @@ -116,7 +116,7 @@ endif
>> # If the user is running make -s (silent mode), suppress echoing of
>> # commands
>>=20
>> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
>> +ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)
>=20
> While probably this would do, assuming make isn't going to make drastic
> changes to how $(MAKEFLAGS) is set up, how about
>=20
> -ifneq ($(findstring s,$(filter-out -%,$(MAKEFLAGS))),)
>=20
> instead?

Yes this is a solution that should work to, making the assumption that shor=
t
arguments are kept at the beginning like they are now is possibly to strong=
.

I will test and check that and submit submit 2 independent patches.

Cheers
Bertrand

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 16:09:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 16:09:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220964.1529359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnfRB-0002Vt-Hc; Wed, 04 Feb 2026 16:09:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220964.1529359; Wed, 04 Feb 2026 16:09: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 1vnfRB-0002Vm-Ey; Wed, 04 Feb 2026 16:09:05 +0000
Received: by outflank-mailman (input) for mailman id 1220964;
 Wed, 04 Feb 2026 16:09: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnfRA-0002Vg-2e
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 16:09:04 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cecec5e2-01e3-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 17:08:57 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6591.namprd03.prod.outlook.com (2603:10b6:510:a8::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 16:08:53 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 16:08: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: cecec5e2-01e3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pjE9sxM9AAAeAgfY2Gtze2YM1RQzMUtb06BSem8KmAO6W6BuuupbWZG152t6inE43hfFU5DeeaxkfVtoV78j+c6cGJWLUunYONc5LW6/R82n0yhyiw8q76+rw66ZxljZdytEsBcnXV8Gt1gv0d1jTnOveWOTSqh7UNEEog9szImQ8tD6lq2TtU1wiGQVEN/Cf9mHBB+3h98F7YSiLnmYO+xltiVZvSobos89LaQhXn1kuZAdQaH57FxTQN7TFpfn6W4vq63z/3P4WmClkKyCfDb4F3MCqsBy3URgbe4bjUm8ydWxwBfNXTSrTSWhInz70wMcm5FvsyNm0m9Em3AdSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5rlL/QmA9PSmxfC2caP4vmCOdIWVGYrjz0Tbry7EOfc=;
 b=eBDPLt0X/s05DVKtKDsDVTGCMoKU26bEzHDOS8FVpSzunVyZ91CjHdA8XeOiz3ImnQR6d3YKMbxv/W/LZbK6t2iWQU4Rg5aplIHj4GWcM0qVo4Ud73cXVkHAJL4wB8UqLg+86BP7hRmOJ32gwkOo/GyazQobsAXCqSQrMa3oAF1+lMjz801cfB+Zw1bY25kLNtj0iU8fIZxv43ym0J0PIUPmprlpAC8SkgAipuCznWlGFm8fVbgTQ0brjyo7oqUUa+92mYqecoI5aTZxWX5Kq6cprk6+nrXQeTJJJK7t88u/Z+kLNTxCns9NqWIbqVc70uOv5JNo3UsBu6ADoOSEBQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5rlL/QmA9PSmxfC2caP4vmCOdIWVGYrjz0Tbry7EOfc=;
 b=yzty6bfz7Jtb5kKoeUP75RkrxLMPSvk5Ajwyy4DF4l8F/xa2TTCGRzpZMyeKya1Nq/1FmhJoxYb6kb2Vkgtw28mfvitFXhKuVQvsgs/NEq3dWr4NDS6M5fI29X55TMHLAZMKaIMDY3DlXRMO9vY+voA8YLIRUpCQlEgFVHvblAQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 17:08:50 +0100
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 v5 4/4] xen/mm: limit non-scrubbed allocations to a
 specific order
Message-ID: <aYNvEpxAqkJPfGF6@Mac.lan>
References: <20260130145726.85907-1-roger.pau@citrix.com>
 <20260130145726.85907-5-roger.pau@citrix.com>
 <2c2b6189-9404-4378-a101-3a93cbadee43@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <2c2b6189-9404-4378-a101-3a93cbadee43@suse.com>
X-ClientProxiedBy: MA3P292CA0009.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB6591:EE_
X-MS-Office365-Filtering-Correlation-Id: 415b2ef1-9adc-4bb9-7785-08de6407b0fc
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?SWdWc0xxVWI1L29GL2JVRGxZU1EzZjJXZEJmNFkrUWJLQVVvWDNLQjRzSEdy?=
 =?utf-8?B?bXVmcG9UbXdDOTNleGplSDlmYXNLdWNXM3I2WHphME5EakZZTU9MdlBBKzFN?=
 =?utf-8?B?ejJyZkxpQU1DTWFmUUdLUDh1NkZwQ1BRUTZIcmVha2hVVWxTUmZWdDlWNTBR?=
 =?utf-8?B?OERmVzh3bXZHUHZHN3ZXNyttSTNQeDhSbVZIM3FrbXBPVTBWNWR2MlNjaVZq?=
 =?utf-8?B?LzJGTEZLbEM1Ny9DTHlEUGRpUjhVOVF1cUJVWWcwd3h6UzVmVUJRcFloWmNi?=
 =?utf-8?B?TmVtYjFxaWlVTDZsVDZ0Y1Q0QXcrT2xoNWlOOFB5L0tMcWdQMjN2eVpQU0tE?=
 =?utf-8?B?UGJPZFNieTBTT3NpN3JOQkxoa0d3VkZDNDlNdUoxWVNjcHVsY2t1UmV0RTdx?=
 =?utf-8?B?WE9jMEZhOTFTVFY2WW9zT0NCNUZpd1NTTTh1UVduWGcxUkxQWTBFSmlCYmFp?=
 =?utf-8?B?N0hpb0VEOVAvWlk2WG1BcUpUSWRiamp1eFFDSkhReVZlbzhiWFphM21UTGcx?=
 =?utf-8?B?ZUFMYzlKb1VySDIwNmZSY1BjT1ZMUEFEZGh1c2ducFprcnN4MStteHJQcnVa?=
 =?utf-8?B?Z1cyUS9LOHRNU0NhT3VOZGVzR0dTWGRsbUY3T2I0M1pUMml6cHh5WW1yUEt4?=
 =?utf-8?B?czNNV3k2bEpjcjJqbEVoZUltMUl4T1htN1JkMkpnVEhYQkJWbjBlNHZBYVBs?=
 =?utf-8?B?NHNvdGEzK1hDUUpiTkZML2Y3TzJ4aS9TUUZTRklKV053dTArZ2JjYzlQTCtx?=
 =?utf-8?B?dDI2OVZmUm43Y2RvakFnSDlDOWZIaDB1ZW1HY2VZVHR2MFV6eGZ2MmZlMVJH?=
 =?utf-8?B?NmNyQUpSZUc0L0x1dlp0MU45a2o4NlIrQk9qQzhQeGFHdGdDbUFGV2ZVNVhC?=
 =?utf-8?B?cHNNQ1RCUXU3RHJtTU05czRSekhBc3N1ZU11VW9rMmpITGVxa05HQ1grUjg1?=
 =?utf-8?B?bE51d3ppdmJ1aTFMR3Z4eTV6YkxENEhCenVwZUJQVXUwbzZiNitaSndlZXNS?=
 =?utf-8?B?bVdZSjcxT3RRRGYrcEttVFhKTXpNanlUVm9vandMZ2huK1FBMi9qbXpleVdB?=
 =?utf-8?B?RlNGWXhqMGFQWG82VHI3UW9mc3ppMXdiU3FvSGpHamg4RUxpVW14cTZEdy9P?=
 =?utf-8?B?MTY3Y3dYVkpPRzBPQ3QrMHFsUThDSmZjOU81TWF0ckFFbnVDTkwyVDl4REVR?=
 =?utf-8?B?WWJZN1UrZVJ3V3h6UTVDeXNBbUlnYXhkWGgxbGFudVhDbXYwZTdLeXlZZ0ZJ?=
 =?utf-8?B?UFZQNXRkSER0QzlxVDd3dVkvVXZkK056SURVbE1UVEhHYlNPWWhnRjZFbmRZ?=
 =?utf-8?B?MU5oeDlQTmFyN1MvYmkxL0VINU1qam9kRUdvL2tHQXZrQ2RqbnRBSDRZRlUy?=
 =?utf-8?B?c1orV2d4OUhBVGpqdDJZZVlBRmdHVHBJL25MQVhHMFlxZi96VUF1LzE0L1lp?=
 =?utf-8?B?elM3RkN6NGdBM0xHMytBMitSWGFORVRwbmhoa0t1RUtkeVoxNU1pZFZ0RjY3?=
 =?utf-8?B?dHg0aFVnZmxRNG5EbHlPSEdrcVVRT2FoYmczaTJQckRXSndYRDdoUWRtYVVL?=
 =?utf-8?B?NU03V3FBQU9wUXRQanBqVG1BZ0VOdENOMjdoRUVDOHhNQUpSZklIRXpXamp5?=
 =?utf-8?B?VVA0QVJ4aklGVW8wMmhEeTUvd1ZsNkpldzNyd3o4ZTdnWEFzQ0hBd3g4SzEy?=
 =?utf-8?B?ZlBIay9xd01nWlo3Y24vVEdabzYyaDYxM0RpU2ZPa1lXRXh4bjhxZzNPSUpi?=
 =?utf-8?B?ODAzc1dRQXdLUHhCbmJOdGY5VWMrUW1BYU9rMUMvRVFNOXlBeVBvcFlHd0RX?=
 =?utf-8?B?dUdQcUdBM1czS3llaDgyUTNUVUI3UXV3Z3YyNGdHY3pDaUZQZ1N2L0MyVEpB?=
 =?utf-8?B?OHowTEpuUnBLeDB6L2JaaWpCM1hEZnBQQjBkZUhTMzh2K25NN1N6elpTRkNr?=
 =?utf-8?B?K2NVMkNySmpPUTJselZEQVpOWEQ2MTVUQ0NjRGNUbjlEY3lIRURmclVCS05n?=
 =?utf-8?B?QjN0bjNHODNDQzBUMkx1MzB2YlRRcjZHYmdMaDZydlRZdytSZXZ0a1ljM0RG?=
 =?utf-8?B?Qnp6ZHErZ0RuRkJRb2toNzdjS1JvSVJ4MWdyaEg1Y29sdStrdmhaS1o1bnZl?=
 =?utf-8?Q?lXvA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eW1keUNYYkN2RitTYlhaWWxrWDFLL3kreVA4UGsrUW5EZ1cyanZGaVR6Y1I5?=
 =?utf-8?B?R1g5cUdKeTFnajBCcmEwT1IzUDFRbDNNYjEwYXZ0cCtNOHBTOFVsdmV6Tlkw?=
 =?utf-8?B?b0hFd2ZFWUhsWGI5NVFOR3R4K3h2dVVESW9YN1NtRExMYnZjZGt1NVErM1gr?=
 =?utf-8?B?R3VwMzl5aFBWakNCYTRlTXU2bVlYY1BpWEE0ZHVBZkVGWEdYTFVrbHJkb3Nx?=
 =?utf-8?B?Nyt5aC9Yc1JDcW93SkxESU9QQ213TDRDcHpsaTdYcUpNeHhFMjdJcWp2MzhT?=
 =?utf-8?B?d3hGZ1dvQ29idklYQ1h3WE9CTFFka0RWUXN1UElMUXMyYUMyUzVKelhyc2l2?=
 =?utf-8?B?dmFSakRKNGdVZjN1Y2k4VyszRlNSdE4yUlJBNWNuQUkxU3NrcFRuanBEeHFH?=
 =?utf-8?B?Mm1aQ2hWaG5NTWJ4U2grdVlveUFpdnpkSHY3K3BMNEZyN0FDMEhxUFpSbGF3?=
 =?utf-8?B?M2FibjRXQ01nZXRtc3VncnJWNTBkNWg4bkllRjlibDBxQzBZQWNGM1VrZHZn?=
 =?utf-8?B?c1ZsMjNHQ0hiQ3lackdIQWNrTlQzSUJtNVlXOTNPMmZ6bE5udWN4V1lETkZ5?=
 =?utf-8?B?T09qVUFBUk9QTE4wRUFicDIvdmF6R2FJZzRFUGg4b0l0VUNmdm1CK2VuZEJS?=
 =?utf-8?B?N3pjRHdVTDJ4S0xKWjJ0WXJBOGZ0eFNDZVp3L0hFbFBFUXlsTmFYTlpDZzd0?=
 =?utf-8?B?NzdURnN1bVozbUVuRC9oSEdqWkhZY2dVK081UGpweUpmY3VGM2ZyREZnZzFI?=
 =?utf-8?B?R05YYVlpWDFaWjFTcHJ1VXI5N3Fzb3lNcnRRYSsvc1llQ1VtSWo3R013bFF5?=
 =?utf-8?B?VHNwNVNsNVp2cFhQekRFOVR3aVZkYmNQakc4UFV3RXFsTGVvQ2dsdENQVmpw?=
 =?utf-8?B?QXdZU2huc3YvaHV1M2RtTzBYRFd5YzZmV1FzSWV0ZzlGeTV1aEQwMkZEQ1R1?=
 =?utf-8?B?OEYxbFU2YzBzVWZOL1NmcFJ4QnF3VW4zWXQ1VUxxazlzUVB2RzFaemlHczVB?=
 =?utf-8?B?MEY5VUlvanBDNFpuUGpkaldwQyt4UkZkbmxETVcyQmZsQUdtb1k3VENMVS9F?=
 =?utf-8?B?VncwNGRHeEwxbjRTS010allweFZndnBSeEVtVStqN1p0WE1WbVFGSnF6Z01j?=
 =?utf-8?B?azh1SW8xbTk4OFVVeHJGc3FRbWk5TmNGOHBraXZtSmhERjRGczhoZHNZdHJ6?=
 =?utf-8?B?ZXd5ak9nZGs2b2poVjVKWEN4dXNDVStIbGtwNjRnTWN1TXNQL2hPbmwvMW1H?=
 =?utf-8?B?S2RYR3VYcG9UdkxIV0tCeWR2SmNZbFltRmpVUTNMUFd4ZUpkSXVheE45bkN4?=
 =?utf-8?B?d0RLVnZlTjMyaFRVY01hRnYvNVppTU1hZktQQ0ZrMHRKVWpmRFQrZzRramlL?=
 =?utf-8?B?Wk13a3BTNEEzdklKSjRwUUNmMS9BUTl0d0ZpalIrbEl5Y1B6b3h0UTAyZzRD?=
 =?utf-8?B?SlNJb0ZkRTg3Z0FEWFVpSytmb3NpdVEzR0MyRkZlYno0YS8rVmtvbzhtcWtG?=
 =?utf-8?B?NlVCSW4xMy82Wmc4N3o1aUJDSWtTRTViYXJyeWRGdlZtSjBzZHhvbHM3QUJK?=
 =?utf-8?B?aDQwOXRUTUF5YVNia0xxVTFOZDZxSDRONXBLK3JEczFZRjhBd01MVTZMTWhS?=
 =?utf-8?B?QXQwQWVLQkpSRm40ZHJIYXNmd3E3VDNOdzhrRWJtd2hDMXpjQkovbnZYWE13?=
 =?utf-8?B?dmI4WWFaWVhZS2xRNWh1QXNnZThQVTd5Y1RIejdDTW1tcVh2bmZtMjFLSE40?=
 =?utf-8?B?Yis5c1Rob1NGaElqVXFwYXA2L3BpQ3FHNTF6YXorWmlkc1ZFcFk0cWcwQ0JX?=
 =?utf-8?B?U3hRdHlIdjZJRjl3aWR4L1diREJDTzFEM05haHNjWW0rVDgxT3lSZmNSdlNh?=
 =?utf-8?B?VHlma2RFMU9wNUc0c1BIdG11bEl6M243d3IyRitXOUQ2ZWRtaWljZ1dES1FW?=
 =?utf-8?B?QzJqVlF5ZjBaSlZYTmh1cXB5QU5XMnEwSnZJS3FPS1Z5TmFSek5yVG1BTHha?=
 =?utf-8?B?dVcxR1hOdExjMllvZVduU1U4dGRRTkdwS1RLQ3RWOE1Jajl6T0pKRTNIVldC?=
 =?utf-8?B?Z2taNHJmU2VhaitSTktTcmsraXJwK2JFdEIrSURYN3FKTFI4d3FJbHRhYVJ4?=
 =?utf-8?B?dGozUDdyWmtzUWxiRVAySFFGKzFDVUNyQTN1dkNEQXErMjRMdkxjSFd2VlVR?=
 =?utf-8?B?Rng0aW1QMnFybnhMS3JyNmRBRzV4aVpSNlNhbXU3K3JDN3pJVjB4dWtra3Vr?=
 =?utf-8?B?My9sczlwR2RnazJBNWlEb0Z0U3ZsTTRHaWR4anZMb0Y3R1BMMmlKQVpzN1Ny?=
 =?utf-8?B?d3A0c1g2SVArRHhSNHgxdSswM0pPWmhoUm9rT28xSEp1bVlLbUNadz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 415b2ef1-9adc-4bb9-7785-08de6407b0fc
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 16:08:53.2190
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: b2d5nJPjbumR9AW9zhlt9ZmGynP3jbN5eluQe9pdaj/bAmdV+n8e6hZlAFlCdYvDKx1d3tqifM0cL1K0lR0+mA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6591

On Tue, Feb 03, 2026 at 04:00:09PM +0100, Jan Beulich wrote:
> On 30.01.2026 15:57, Roger Pau Monne wrote:
> > @@ -1117,6 +1130,14 @@ static struct page_info *alloc_heap_pages(
> >                      scrub_one_page(&pg[i], cold);
> >  
> >                  dirty_cnt++;
> > +
> > +                /*
> > +                 * Use SYS_STATE_smp_boot explicitly; ahead of that state
> > +                 * interrupts are disabled.
> > +                 */
> > +                if ( system_state == SYS_STATE_smp_boot &&
> > +                     !(dirty_cnt & 0xff) )
> > +                    process_pending_softirqs();
> >              }
> >              else
> >                  check_one_page(&pg[i]);
> 
> Coming back to this, I see two possible issues. One is that on x86 enabling
> of IRQs happens a bit earlier than setting of SYS_STATE_smp_boot. Maybe this
> isn't really a problem right now, but it could become one if the "wrong"
> thing is inserted into that window in __start_xen().

Even if IRQs are enabled a bit earlier, the watchdog is only setup
after SYS_STATE_smp_boot state is set.

> The other is that only x86 actually ever sets that state.

TBH we have never seen the watchdog triggering during initial domain
creation, so the workaround added here was out of caution.  There's a
certain amount of contention required for the watchdog to trigger, and
that scenario doesn't happen during boot, as domain creation is
serialized.

I could maybe gate the softirq processing as:

                if ( system_state < SYS_STATE_active && local_irq_enabled() &&
                     !(dirty_cnt & 0xff) )
                    process_pending_softirqs();

Or completely avoid softirq processing in alloc_heap_pages().

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 16:10:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 16:10:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220970.1529370 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnfSS-0003wI-RM; Wed, 04 Feb 2026 16:10:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220970.1529370; Wed, 04 Feb 2026 16:10:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnfSS-0003wB-No; Wed, 04 Feb 2026 16:10:24 +0000
Received: by outflank-mailman (input) for mailman id 1220970;
 Wed, 04 Feb 2026 16:10: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnfSS-0003vu-3Y
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 16:10:24 +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 01d70802-01e4-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 17:10:22 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4806d23e9f1so78165365e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 08:10:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436180659b8sm7008136f8f.43.2026.02.04.08.10.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 08:10:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01d70802-01e4-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770221421; x=1770826221; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dc7rXZAIKzrI811VASSg2B/nJwVsnLYEzFGg58FlcWE=;
        b=DxvBvqUBaDjRLwn9+jKHTOnnsGZqxMerMEyYQBkCUgS43T2RZ2js8BtEyXLxKItpA9
         YhJmc7IiOm7PzvI+LJ5pXQwQOgrxmHDPVXoo/6XUpdHHwFjMkbDD8h7xyo6owfN0Zk6g
         RmzxYaJlqi4/fghqjF8mXKrqvxFjOFc5MlQf82W2rIQU8wBqWP+CieYAx4pLgWSt+6Bg
         UdLNw2KeOXFibkJoHTs8ONJI61wiMlP8bQNVSnX60NNQrluYNCn5QbOM0N+kBDCPd2uT
         BQn9rwlXauZndPIj4mxVK9411gC7Jmn6noBm8XRwAjyWoPbULGu8oNMQA5AQMm6ziTP3
         trMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770221421; x=1770826221;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dc7rXZAIKzrI811VASSg2B/nJwVsnLYEzFGg58FlcWE=;
        b=JZmsyXHSxDV0d6wXt9w89ri6WGuOmHJrmF/EH5O32slwjgw/U7xj4AV6dmRz5GUGeW
         jtx7FrzrD17tBXkFDf6rg9bxCRxpq5IWTkCFtLBFXcrq8OM4stk6x2dxI0t2H/SAHnRJ
         lFMuxsnI3xytHbJ8ja+mPhtgRRVmPt5vzt36XnUSozSlpSdubn9l1fmMCSwnzao3SFZu
         MZ7kYiUTKTPXqZbRIuHSFrv9hQ05RaCmCmHV1Xb1Hu/SYRMHs8dl/u78VJIioLTSm6PB
         5VTya1RyosXYSh82RNDPiHnu/OMFWQu1+OCICPFdvXOVpP2jeS0mKqEZB99skJXCBbqA
         ONQw==
X-Forwarded-Encrypted: i=1; AJvYcCX59yzgr4syXDWsuNfeL/EI9xUrZ4Jo7HUvHDPVqp+GRpeK8iDzRsWnjlzsC7aw+kHjWDie5yOooY0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZhQcJGGamq38ziXLWDdGS9wew2hZNUFomqF83MH19ITES6ez4
	1BrCA2NSEbQ0uB/W3VDeACqT7048HsfYE8AAEF5Iwnyi2cBom8ewKifb6qBDpxPxiA==
X-Gm-Gg: AZuq6aISueLV+zqcL5AVEVXrElPuqh3GY+GJc+46rNqJoQPzNAWCZ0U9d7525Jo0MWu
	O7KMfeck+Pi1gwQRzxs9YCAlUNAQRI9r7yGOheeAn4r8MDlF4k3LmTp+5R4z4ottN7qAqmj7Zuf
	1pWB/ELuy46VfVxPvbms0sr6Nk55nNwDPJAZwNGOcgyuqeDzfucYIg20UgqKQe2es20biLVKpUA
	O7wA5ccLgui38F8mPCapsSELOoN0kL/dKqSLeA4YM9gc6alc6sc5h8vZ/KprBtl29HdUSyVXgCr
	v85FiquimjwIiXHz0D/7EmPbwVt5LyiX4fEF8+s/dtbl3SdyRbJ+P+AJXoN8iJkpZfB+BlY4+ia
	bb/rYha/RC7lil3/mpRJqgsyMOQCRD3/L+pNcvKsdqFtpqrZl/8dlp1Joad888wfcMrkOF4zs1l
	aWtEhXJMHwDdPFamPNNBzNZoCrS7c5MDSYVs1xxTgqU5K+Pawd47v9rkvuTzX87YMJOb8W0rNUJ
	9g=
X-Received: by 2002:a05:6000:2481:b0:430:f742:fbb8 with SMTP id ffacd0b85a97d-43617e3c8damr4952438f8f.21.1770221421403;
        Wed, 04 Feb 2026 08:10:21 -0800 (PST)
Message-ID: <0e2ceca5-8ab8-4c52-8a8a-b7dbdca50820@suse.com>
Date: Wed, 4 Feb 2026 17:10:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/boot: Handle better alignment for 32 bit code
To: Frediano Ziglio <frediano.ziglio@cloud.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>,
 xen-devel@lists.xenproject.org
References: <20250114115430.104084-1-frediano.ziglio@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: <20250114115430.104084-1-frediano.ziglio@cloud.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.01.2025 12:54, Frediano Ziglio wrote:
> Output file didn't have correct alignment.

Coming back to this (as it's still in my "pending" folder), what does the above
mean? In how far was which alignment not correct for what purpose?

> --- a/xen/arch/x86/boot/Makefile
> +++ b/xen/arch/x86/boot/Makefile
> @@ -40,8 +40,12 @@ LD32 := $(LD) $(subst x86_64,i386,$(LDFLAGS_DIRECT))
>  # are affected by both text_diff and text_gap.  Ensure the sum of gap and diff
>  # is greater than 2^16 so that any 16bit relocations if present in the object
>  # file turns into a build-time error.
> -text_gap := 0x010200
> -text_diff := 0x408020
> +# As gap will affect the output section size it should not be huge to avoid the
> +# creation of huge files.
> +# The sum of gap and diff will affect the possible alignment so should be a
> +# multiple of the possible alignment.
> +text_gap := 0x01c240
> +text_diff := 0x7e3dc0

It remains unclear what "possible alignment" here is. Maybe that's the "up to
2mb" that the description talks about, but when looking at the file later the
description of this change will not be readily available.

> @@ -80,6 +83,7 @@ cmd_combine = \
>                --bin1      $(obj)/built-in-32.base.bin \
>                --bin2      $(obj)/built-in-32.offset.bin \
>                --map       $(obj)/built-in-32.base.map \
> +              --align     $(shell $(OBJDUMP) -h $(obj)/built-in-32.base.o|sed '/text.*2\*\*/ {s/.*2\*\*//;p;}; d') \

I've tried this out manually on $(obj)/built-in-32.o, as $(obj)/built-in-32.base.o
isn't there without applying this patch. I'm observing two matching sections there,
i.e. I wonder whether the regex shouldn't be tightened. Not being fluent with sed
commands, I also wonder whether passing -n to the tool in favor of the d command
might not be better.

> @@ -90,4 +94,4 @@ $(obj)/built-in-32.S: $(obj)/built-in-32.base.bin $(obj)/built-in-32.offset.bin
>                        $(srctree)/tools/combine_two_binaries.py FORCE
>  	$(call if_changed,combine)
>  
> -clean-files := built-in-32.*.bin built-in-32.*.map build32.*.lds
> +clean-files := built-in-32.*.bin built-in-32.*.map built-in-32.*.o build32.*.lds

As before I think this is a separate bugfix anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 16:15:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 16:15:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220982.1529378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnfX2-0004X1-Ao; Wed, 04 Feb 2026 16:15:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220982.1529378; Wed, 04 Feb 2026 16:15: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 1vnfX2-0004Wu-7r; Wed, 04 Feb 2026 16:15:08 +0000
Received: by outflank-mailman (input) for mailman id 1220982;
 Wed, 04 Feb 2026 16:15: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=S5Vl=AI=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnfX0-0004Wo-Nz
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 16:15:06 +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 aac4d355-01e4-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 17:15:05 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-42fbc305914so38283f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 08:15:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e3a3bbsm7325354f8f.15.2026.02.04.08.15.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 08:15:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aac4d355-01e4-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770221705; x=1770826505; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z58d4S9BEuC94xRqazpHNOAF3THVDsFtvqddJg/YMcA=;
        b=a32hG5d1e/sedeiSV8navzD1FrdOvS6g9YDFNlPTHws2kHUlhK91tOBbl0rfmz+C/J
         sa4ZuM0XpMJA9XuOjc3Yuve7gLupBySMajbqHCk9vyGEHYwXtyCLZJlDrrdoQWLiiN0v
         Xb2qNQtuT82cZ3eaSu9Fwu5BryhW1k2E9rGzR3bvrxSFxAleZkauz9eysVYbAWannbnh
         Z8zdC/7MXtPrQqXJ6e9jVGvAGae1faRpm87Uar7ZeXG1IHZy/yvsV38lcvDt2iriN1jd
         xkERutqMIMGklyOcNC+2YOQgENgvghaJfNeAbFf51Q/9/eN+GKmMXH1hzE9gMUW2ixRt
         iFKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770221705; x=1770826505;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z58d4S9BEuC94xRqazpHNOAF3THVDsFtvqddJg/YMcA=;
        b=uzgQN/fYF8Yj7OsKbN2wJsNo+h1BNyyOg36A6q5GJmG8D7vMVUvpa7gDPHyHXv7lUg
         Qyv4zVg7x7pVM1uMlufnvx7j9WKAuWCYGSecdZoPNozdxERIl1EsNsbTPrvtIJ06Fp9n
         /dFRC6t0ej1E61P4cAiKy3GX3VFNsKF4pjiZcGxoUO+BpE9XwPLE+bo53P7drBrshcrZ
         IdzK+U1m4mDRw9Ud7wBhfNUisKqBUmvfxjdwL5JE52ewhT1rhzI69whK3hVzrmoI1CPp
         849tdvunG+uVGY7ZSn/FQ/3Z7wfJWuuTqrunbz3CqE2eWoc6uFXPSDOg3mOD9vkEk6OE
         XeFA==
X-Forwarded-Encrypted: i=1; AJvYcCVzSji9/MuVFUdxyln8+C6jBjcv5+DG+8Pf7Iq+TCvvVx+rNBpguqeNR9UG/3wHLuNU0PMyXuyA2XY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxvIjVtragIXRnE2qQaoe3oXpkfVu1vL+Vixk/+7WiTgjq3MoG8
	jAN/SM1Ih90z3AVmy5t7TTv/hc46+QyWmxPY6bKOHYVG4knbUZA5NQthtxHH9fTh+Q==
X-Gm-Gg: AZuq6aKuNqljLiueFmt7Gp6m/NHFTm23qCurKSutEdI15zQJcFCSsCms0rqmxnzhvNY
	RcXQLnA3iGdxpE2qoYQyxomF7j7SbnLKEgGuGKrZ/9YK3pn2JBF87SyjMzOqnJCzSZCAZu7H5lJ
	XLE5ChlVIphb5GAYqGcT3d1+0DjzRkKDLOfxnfnTiIilfvxbhUVgXwNi4X8P1jqz3WlwTWwGSsa
	WEl4VZ5UfZaJUB++3iu9ZE5dPsLKxNQHO1lDm00OJvbwInnae/TzObs4JUACShviwiP5R92Eb2D
	+sZ2sxBLBqG/HEUahGFy4mlVCEQNUbGvX42vUQ5MfDMdhkJK1YUtZW+CUWpF3fhUs2yZysesw8z
	FG1D4PS0B/KVek/O2OaepTa+zICYbB7Pqj1GM5WZPSR655N5CpGKaYr+BxKoBMHW1UhA4BnCUT7
	CF9q+cvFVX+fcBy3pjKSdgkC1u7RsfvUH65zbbqPOaENBNBOTuYxFayAvYwSUgocvYPmc6ORlMS
	yk=
X-Received: by 2002:a05:6000:26cc:b0:435:f29d:8c41 with SMTP id ffacd0b85a97d-4361805fb9dmr5651182f8f.62.1770221704999;
        Wed, 04 Feb 2026 08:15:04 -0800 (PST)
Message-ID: <eca1e783-b147-4230-a340-41b8cb694c5e@suse.com>
Date: Wed, 4 Feb 2026 17:15:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
To: Bertrand Marquis <Bertrand.Marquis@arm.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: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 04.02.2026 16:45, Bertrand Marquis wrote:
>> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
>> On 04.02.2026 14:16, Bertrand Marquis wrote:
>>> Xen does not currently document how to build the hypervisor on macOS, and
>>> there is no Darwin configuration for a Homebrew-based toolchain. In
>>> addition, the Makefile silent-mode detection can be tripped by -I paths
>>> that contain an "s", which hides build commands unexpectedly.
>>
>> This wants submitting as a standalone fix, so it can be backported. But see
>> also below. I don't, however, understand how -I could be useful here - our
>> build system is self-contained, so any include directives used should be
>> satisfiable without any -I.
> 
> This is added automatically inside our Makefile if you build out of tree:
> 
> MAKEFLAGS += --include-dir=$(abs_srctree)
> 
> which ends up being -Ixxx when tested.

Hmm, but I do have an 's' in my source path, yet I need to explicitly pass
-s for the build to be silent.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 16:22:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 16:22:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1220992.1529390 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnfeN-0006C4-2n; Wed, 04 Feb 2026 16:22:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1220992.1529390; Wed, 04 Feb 2026 16:22: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 1vnfeM-0006Bx-Uj; Wed, 04 Feb 2026 16:22:42 +0000
Received: by outflank-mailman (input) for mailman id 1220992;
 Wed, 04 Feb 2026 16:22: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnfeL-0006Br-98
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 16:22:41 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9254bf8-01e5-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 17:22:39 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB8316.namprd03.prod.outlook.com (2603:10b6:8:261::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 16:22:37 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 16:22: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: b9254bf8-01e5-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l5OL5FtrmSO9WhqXpjsHUYVBVnSKDYQRQ036cZ2pwDepvGnAbBsaUy0gzPj5e7KGlEAd1/D6U/9qZ9TuF61LF8FKZck3UsI0U6NOq96jsnrGYDbMl3gGpkjsSS6ApmXGiOd78GTEaUENmnonMx/vOpWa/ALPBunTvTkrTLzgsHhJa+y/RGiTalSvhjeVta9+iJdjuXq5AoyS93ujjBmXoygk7k8RJkGm7gexJ1unxUhjfw8wY/iHAn15MQIElDkFsZo8zkOeFCyUmW9o4EMWFVmqETQsmBCOvtR3FJeTdeELL36+ZD6fPUAWT4bJzPzEw6K0On1TIC4klyvO0olnBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0fSC02YMDefO3K14W1SRqWL1Q+a33EDCPQPp4S2Nqck=;
 b=EpFu7KMWN6cgpElH+bblYct4FxAj/lNFs/fXZshSS0cN45KE9qWQnYnDRmlbkxrwp9+769D8SAKUsS50EagmGqGCDUWbBsZVBCm2WTWL/qbFh1EqlsVoXwLfgrvH+C/D6IYw8aDobdW+/YwELnai8SMck0DQWa5ti7ZXEIWjJFmNlHP7VIPDw2jGE/Pm5anxigre0OwxTy2n9My+QLlGGXg3hqjj77fwd59LfqW70C8PNQTpVIYliF92aYigUB8MgWzpXuBXzEzfwpDyqiBPmQ3kNKWqoIyKj9ldY1dEy05z388EM1V7upT8R12Pg3uy1bfPtMpB7qophhpXe1f0ew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0fSC02YMDefO3K14W1SRqWL1Q+a33EDCPQPp4S2Nqck=;
 b=0PAb0qpitJ1u+wF0PUPfxEHWMl10pcArgWN5REs4FgDcoap2ZxnJBoFrQKOVP3aFFeYa6pbutSG1Q0v50Ft0D0MStloNHHTL4+6b6fRshI8tDEpx0PPgddpgrnSWbBqWaVdDPoAbva7iLFkyWia0ZLVaOWLRe7Ogs+ZnRh0X5iA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 17:22:33 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Bertrand Marquis <bertrand.marquis@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
Message-ID: <aYNySRMnVyNixlzr@Mac.lan>
References: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
X-ClientProxiedBy: MR1P264CA0078.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::24) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB8316:EE_
X-MS-Office365-Filtering-Correlation-Id: b09493e1-8ce0-45a7-2ec5-08de64099c32
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?WWFhOUxQQ3JBQW0rU1BkNW5UUitRdzArZXM5MlUyT1h2czg0Q0F4djlnT2dj?=
 =?utf-8?B?V1h4bEFVOG8zYmtLcWRvT0NIRWZNU25WSklCN0RMMkdCTkpaSUZ3bW9RVkFv?=
 =?utf-8?B?dkFWTUp6a3ZrWTlTK3J2SnVVMjRSelFWN01yQ24xdXRtRGFYQ28zaldyeGxw?=
 =?utf-8?B?aHBPNENFT1JoOE5nSlJrZG5wK29VcWVWVnlBK2hLT1ZEbW5GVUhkTGo3Tm1N?=
 =?utf-8?B?QURTSlJiTzEyWGhQSGRFV1pxMDFmams5ckMwNFNpZW12SU91VmRaMGNyVThD?=
 =?utf-8?B?SGpxemZQT3huOGJUcXlEU2RBa1JjeGlibXJ5RmRXeVJHMzhwS2NVOThxelQw?=
 =?utf-8?B?ZDN4R2hueXhRb21VRW42K1diNWJyZlFwR3NHQitLS25mNjRoVXROdXZTOEpG?=
 =?utf-8?B?QUdZd3VMYnF6ZUZSUUYvcHpqU1F5QmFWbC94d1JyNHZGMDR5UExrMWZ6dkVm?=
 =?utf-8?B?TmswYTJ6LzVyMXhVREZrNkpIWDRPeFBWUjAweG1jdkFIY2J4aGFaVExQY1F2?=
 =?utf-8?B?dlIrWEUxa3NUNG9uMW9KT2xNVGplRnNOSXhVWkk3Q0JMOE5uTnJIV1Z2NllE?=
 =?utf-8?B?SWNxbnZEa3IxNDJwQ00wTUhuMHFWMTVNRGFWcGZCZDd1Y3JJUG9qaU8vQ3BS?=
 =?utf-8?B?cjI2eVBLWmJTMmpTcGNCcHYzYXpuZDIyU3k1S0xwNFhJOEtwWjVHaU1wVUNZ?=
 =?utf-8?B?d2p3ZmhYM2paWkJWZmI1L2VjMk5IWk1MUyt6MXI4MXdIdHM5OEpUUGtOVkFM?=
 =?utf-8?B?OHZXd25Ickd3MzUzc0IrMWJjWGlXU2pKalNCK09xUjBLUnRpM1ZwL09YWTlv?=
 =?utf-8?B?TDhoZjBpdHhMMmZJa050a3VjR1VkRG4xak14OVIzNEx1WWZpRXVqdlVoYXhH?=
 =?utf-8?B?eGJ2dTJPbGpLVGk3UlYxUlNEaFdpcklXTzYwR0tVZVpTL2ZZMVgrS3hnMlhN?=
 =?utf-8?B?OFVOcmt0MDF3dFZvQ25xeUxiV3QySHpjSkR2Qi92ekVFNWZEVXpLZ2JMWW4x?=
 =?utf-8?B?c3ZtMnVDYTZTTE1WN0lseHF1SDlnbC8rdWc5UjJhWnl3bzR3TGxJckxRVFlD?=
 =?utf-8?B?cFlwa1JvK1Q1Ky8xclBtenlyaXJ4VDhkNWVTK2JKVnAwZGVEL0N1eGxxcG0y?=
 =?utf-8?B?NkhySW1iM25Yck5Zd3NuZlZSR1dyWFBEcTJnRHRsTWtONFhwQTFDbUN1ZmlK?=
 =?utf-8?B?OExZSXY2T01yQXVzZlU4eURZVGROUk9tcnZuUzRUMDRleUNicTZwbVpJZkpI?=
 =?utf-8?B?c3NNaVEySUhhbVNxVmY0dUM3VURUNmp1OEpTTW9LbklMTEFqaGE4UWYzYzh3?=
 =?utf-8?B?RVdPcW9CdjJjWDdqdWxlbmJSTy80OEJ6RHVNSDUwbDJSYUxaQXJQUkJvVm9p?=
 =?utf-8?B?d2x2enhHNmQwTmRqdFFzTmN0aHJBd0Y4QnhHZVdNRm00VU1sTjk4cHNtRDJi?=
 =?utf-8?B?a2pqYnNsVTEyM2NQczNCOGN5SzVIRkxEbFIxSGNWVWNyUzVWYzhjeEdBWFZm?=
 =?utf-8?B?T0pEa2hPZnNFMm9wK0h0SGpCR2w4KzBMWWF6KzZEWTRWc0NmRy96T3VKa29D?=
 =?utf-8?B?OC9GeEZOa2hCTFVhRmwra1VoT0N6bGo2clBBeUM0Z1ZzbzBkLzZYMGxUQ3FR?=
 =?utf-8?B?azZEWXdIdUlpZ0dwWjV4ZzRpSGVoMExvRWRvSGFPeWU1eDBTa0dEcmNYVkVr?=
 =?utf-8?B?TkpMWmRWcFhqQ0JRMHYzakRXbVVjR3VndjJMSFJJYjhXQm1lbkNBbmdLbFFG?=
 =?utf-8?B?YmdqVnB3dlgrSi96emF5dWNhMDVkWlNBbnF6UjZKTEZ2Y2w5L21XWmRJQUU3?=
 =?utf-8?B?cDlnNXJDQmxCRk0vRGRIZnlRWTJyRU1BU2lZQTA1aVRtSWhtUmZ1cmpoWldj?=
 =?utf-8?B?RHdkUjZSM3cyNGUxSWgrQXM0NFFnZ0RjQkJ6SFcybHAzQ1dqVm5reG5nMWNs?=
 =?utf-8?B?aEJVRTNIbDZvZDVFTkN1Vlpwd1pxM2Fwb2hnYldtVktuQnNONE9hNGd2L2hG?=
 =?utf-8?B?Q2lJbDRmRUZqSVB2Qk9RRTkzQ2ZCb05ER3MvQ2huZEdsNGxRMHR2NkZLYmNO?=
 =?utf-8?B?clBud21KVHg2VnBucldnMUc4YXd4RjU3SEQ0cGJiQ1pmSjlwTElXZEYyYm14?=
 =?utf-8?Q?i8X8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZTJxbUtvVUZSQUU3K0s0dU51QlIrRURxZlZsYlkwRVVMaDh6ejJqQndJenFW?=
 =?utf-8?B?blkvaC9aK2JwRW56RGZRcjBWa21VeEZxRHRiN1VpZTh3MHhyTGh3elhPc0JK?=
 =?utf-8?B?UUp5d0hibi92cWduYW84anJKcnlCd3M2N1Q0cnFVdStOdXNOS3UyVS9BWmQ5?=
 =?utf-8?B?V1VZZmx3ZHdOVHVKSG1sK1c4Si9ONmxvRTVBQWs4clUvbm1WVWtJRk8yc2ho?=
 =?utf-8?B?OWh4TU0vUVEyVk54bkhzYTNMd2MzL0gvYW1rWlVkQkZMK0taay9CcWo2WmVi?=
 =?utf-8?B?RytCTUJDSkpNYjVxdmVWTUR0VkQxZkgyU2pRc0phUkNOdFFzNEx1SERINllp?=
 =?utf-8?B?N0YycDU0RXIweGZqV3hrbE5LaDMybGdzN3puc2Z2dmgxZHlBSTdETER0UWRo?=
 =?utf-8?B?dVh5NzNEenFobmh1NUR6cjArQWNTcklMMjBPSm5ROEQwRmZ5Tm0xRStzTXdj?=
 =?utf-8?B?cC9NMm9vVlpNbDQyN3dGSDF1alM4Uy9tR2c5M2dLOWZDck9KWnpteEpDakZV?=
 =?utf-8?B?ZkV6YzhKek14VUN5enU3OXg0ODJiWThZOVdXOC9sS3JLSFpQQ2N0VElabzhQ?=
 =?utf-8?B?S2o0azk3SCtEZmhpRkxyaXF4bUQ4c0x3UUZNNWc2L2x2eGpMN0Z1cS9YTWtE?=
 =?utf-8?B?NW4vKzk0b3lwWnJDd295c3ZxNkpxRFpiWDhNMXZWNmlnc3FLaE9jZi9xc2hv?=
 =?utf-8?B?VWdKRVBDNHFXSjF4Vy9McGF6elp6ZFR5eVBxVUxwcmRMeFJXUG9xbkJBeFNm?=
 =?utf-8?B?UCtrb0VPWmdrYldqM1krcXNzcnoxam9aenJraVZndHduYml4RzdpRldFbTA0?=
 =?utf-8?B?TWxGUTFSakY4UFZ2ZG8ySldtNDN1R296R2dqV1VFWXoxK24yTnI1VjlkOHRS?=
 =?utf-8?B?d3hYZTBrVGRZRUhnNzBoeE1NSzl4Zk43cW5mMG9xcHdVRmhFOVg5VzFVcDRX?=
 =?utf-8?B?UHpoOGVxdGlHSDF1YzFQNnRQdXowZG5GWkk1TnJyUE1wY21UbTdEOXJ0dFRI?=
 =?utf-8?B?dGJEeEUxZUJRaWlYZi9SV0xjMlJteU5Zbzh1anZRYWtWSHFBaWpocnIzUEVG?=
 =?utf-8?B?bXdyQkZqNGJQbHJ0QXVTT0ZvMjNlNUYwWkpvQ2IyWTIybFRGdFJTbzhHcWJW?=
 =?utf-8?B?RUpmRk1ERGtqL1JCNk5Nd1Nxa0MxWU9iL25BQXNoM25yMXZLNld4ZlVKaEE1?=
 =?utf-8?B?OXdFSlg5d2cxL1E1VkpGK1NtWjgyYjVDam1LNXlTa0lCdy8zRXpvMkpXVTdB?=
 =?utf-8?B?M2lWNCtna2Fncng0SnpkdWlyZEZySjJiU1cxQ2FzTnRhSXNQUVhHTmtTRE12?=
 =?utf-8?B?WDB3Ti82bzRTNTNXR1FCdFhKNEN6RWVPc3d3ZE1sZ056RGVDWkt1OGJTMWJm?=
 =?utf-8?B?Nk1XbTBiTFpoa1MyYlJJc1VXMHRjcWtmdUhhOXJGTWxLb1JPT2l5LzZ4cW5z?=
 =?utf-8?B?bWFJU1ZxY3Y1T0FVZDNncmNpVnV5VkJkRC9qN0lkSGZ6RVhBS0NKU0E0UGVz?=
 =?utf-8?B?TVFBZVZTaXBwamZKWC91UlBNeWhVS2Y2QzluejlFYitYVmc3K2p4WHNhVzBQ?=
 =?utf-8?B?ZmRyS3BlOWlya2VHZllIQUwrcUlQTkRPeHhzUytaRjI5ZU1zZ3hnb0V3R1R4?=
 =?utf-8?B?MXcva1M5bVc2WHRsa2p6NlhubXlvVG9GZVRNQ3V5MmlEUmNCSG82VEE5QUF3?=
 =?utf-8?B?R0tXbTRyaFcwUjFKeHdNc2NyZTcrMjlMVEdPVllxZnJIVlMwS1JjU3VFT0tX?=
 =?utf-8?B?eTNBQ1hoaHU3Qi9LeG1CL1JkRExiVGlrVFJuMFFqOFFKVmVJb1p2VmJtOTdx?=
 =?utf-8?B?YW5oTTM2ajFIQWgrTUhhaE1PK2d1TnhTNVJEMTRTOG9RSyt2QlJmZWptKzMv?=
 =?utf-8?B?Tm1lL1lvN3BFa3FOUDg0VWZ1RnVmS3gxQTVFODIvVW51ejNOT1BUZytjajU3?=
 =?utf-8?B?QzdGZzZYRm52N01zTnNZemY4MkZsbjI2ZWhucVUxb1ZOSjQxc1pWNDQzZTlM?=
 =?utf-8?B?emFFdVNsb2xydDJpYjVMRVF4anprR3Ivc05BcEZBanA0TmREWEg0TTg4enZx?=
 =?utf-8?B?ZUwyK2NQalVvU3daT1dQUndjL1NTbkhxOEUvYlZqTGxPNDgraXNXSTVPWVVj?=
 =?utf-8?B?WW5yaGRQZnk5ZE1XR1pWSk04SXZhcnNQS1BSenI4OTRZa3cvUWFqdmRsN1ht?=
 =?utf-8?B?cm5uQjY5OFg1dTJxeDJreCs3bFJRSFdYWkFHTG5Tbm4rNXh2RHVRQzZ2Ris4?=
 =?utf-8?B?d0UvbWY1SmpJb2dmdzU0TmdSWDZsYlNoZ0xvWStBeTRsbkIyVzYzVnFRMXpy?=
 =?utf-8?B?UlMrQVNKT25wUzh0UStiU0JERVVpT21ZcWtCa3kxTTFaNzBUajFkZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b09493e1-8ce0-45a7-2ec5-08de64099c32
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 16:22:37.3344
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: En6A1E+rxUBx5OfAHHZoTi7dmRoe72+5P5iLfji/7XpUeckP350qtP08yptqLN+wcayE6qId5tDlcTkR2mhp6Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8316

On Wed, Feb 04, 2026 at 04:31:12PM +0100, Jan Beulich wrote:
> On 04.02.2026 14:16, Bertrand Marquis wrote:
> > Xen does not currently document how to build the hypervisor on macOS, and
> > there is no Darwin configuration for a Homebrew-based toolchain. In
> > addition, the Makefile silent-mode detection can be tripped by -I paths
> > that contain an "s", which hides build commands unexpectedly.
> 
> This wants submitting as a standalone fix, so it can be backported. But see
> also below. I don't, however, understand how -I could be useful here - our
> build system is self-contained, so any include directives used should be
> satisfiable without any -I.
> 
> > --- /dev/null
> > +++ b/config/Darwin.mk
> > @@ -0,0 +1,4 @@
> > +include $(XEN_ROOT)/config/StdGNU.mk
> 
> Darwin isn't really a GNU environment, is it? The definitions in that file
> may be suitable, but perhaps a brief comment is warranted?

It's similar to FreeBSD in that regard, which is also not a GNU
environment as the compiler and toolchain is LLVM.  However the LLVM
toolchain attempt to be command line and output compatible with the
GNU one AFAIK.

FreeBSD.mk also includes StdGNU.mk.  Maybe we want to rename StdGNU.mk
to generic.mk or common.mk?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 16:24:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 16:24:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221005.1529399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnffx-0006lO-He; Wed, 04 Feb 2026 16:24:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221005.1529399; Wed, 04 Feb 2026 16:24: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 1vnffx-0006lH-E8; Wed, 04 Feb 2026 16:24:21 +0000
Received: by outflank-mailman (input) for mailman id 1221005;
 Wed, 04 Feb 2026 16: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnffw-0006lB-V0
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 16:24:20 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3f7266e-01e5-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 17:24:18 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB8316.namprd03.prod.outlook.com (2603:10b6:8:261::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 16:24:16 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 16: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: f3f7266e-01e5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=naFhBxEqY2sSnw00B799MrYo6eE7MB4U0sgiWEIKBanpe8yQ4acyeYxvNorboaNwyISHj0ZV/KwJvGBafqr4e8IDFHdh62CIBherg7RQT2WXICO/0CyGyPHfuQkEJCPN/Ct3hSdiY1vYrRyYboa611AbwfmiJKqwKRODHcx74Fc4hXPjI6wMwxODGWF/sGc+NrLh84zU6Gh85vcZjwnVX19zBB8b2tMxGGhZ1Nyfkp/pPoTWltUHqBgQfoflsjZ6zyvTm91qdUFU3fBzx6SftPE5rCC9s8YFPvpMhUyZqTxGnN744kpaDkpja8kX38m5EIbMytpemEYqzvWDs6xkHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=59GgZe2oAOQUt8wMz8yF/Xk3k0UljDIQ9RNolX3SuAI=;
 b=bQJK006SaPUzSTngySegq8LbqLEGYS2NrvOdwJ/J+iYUSclR33pi0XxXuJUKBepGpJc/XX7EIeh1OH44Y2zzWY29ABkSQXFnt6TfMIVlGNXftdlxr9ZMo7KqLaOFiGXfrKpHjQqjZXwRDlLWKxoSKMPjVDHcpXEGOQSYZ33l8lJWM8tOhuA6VZtVNC5qyK6LWcYFczVcNVicku2uUlhpdfHLQU/oGc15pd56+vvfaXgNvlhocYPx41MoOK7BqCveRtIqi17CVXsDL9A8AkV0iUxJz/vBKZVxVgUmTBl9qLgLkDDzakwaQ0/fxyKZGv7WBt9qCBVZJhk56/n7R68Qvg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=59GgZe2oAOQUt8wMz8yF/Xk3k0UljDIQ9RNolX3SuAI=;
 b=PWgO0S27ibt87iFPBh8ti5PBVqdX4Mc2PTK1RhIBeYOn9hIxp5pYlHhuq1WauMW1lA/oa4yOjX8sPtO7i6Bd4iW4tkq0amvX7OZ3anHGsCn2SSN6z9sDmOikpR2VhDqRbihYM4/B76eTJJ0wf1lhzW50ou1kUJuutWdpDvrpgoc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 17:24:12 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
Message-ID: <aYNyrKA7bOiZQSZU@Mac.lan>
References: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
X-ClientProxiedBy: MR1P264CA0170.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB8316:EE_
X-MS-Office365-Filtering-Correlation-Id: a1fd1c11-f1c5-4b80-57e7-08de6409d6fc
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?QzBJbkpoOWc2ZTNqc05mRmlBei9sa2xIT0FyaWplOVBkMjh6NXc5Rlhrelpx?=
 =?utf-8?B?QStTL0lna0hmeFpjVjJqRklxYW1hT3JvZ0hZNHVNUFZodzBybDk5cldRT29S?=
 =?utf-8?B?ZWhZbHpnVkRkR25vaWRBRGUvb0JWZ3lDbUlBU0lnc2lYdjRVejhVSkI4VzhO?=
 =?utf-8?B?aTJIYSt3aDRpcnRZR01ZZ3gvY3BNallwT25xdEt5VVJqNUtxWU9ZSXRqMUM2?=
 =?utf-8?B?aVdYMVRJb0FZbUVJaEM4c016L2Z4ZTBQNGx6UjJobjJlaGtKSjlLVWhrS0NC?=
 =?utf-8?B?YWJjWGpqSGFNbzRhdURMN0F0MWtITDZVWWwvMVVRTG1lNUk4T0d4c3FHQUdr?=
 =?utf-8?B?U2lkS1c3aUxNbFVZM3UxUVVRaGpUQlFiamhQSjRDaUszd29DamxESXVWWHJz?=
 =?utf-8?B?L1pTVm1Qcy9qbWRUNnpVSGkwcnc5WitkQ1QxOHpkU2gxUGlTSHZyaExZMC96?=
 =?utf-8?B?dXlPRUJDeXpOaUpZWjdNalRXellPc0ZvSmV1Sk1pOFRXU3hnbXVyS0RYaWU1?=
 =?utf-8?B?WHgvZVVtdkRSTmt6a2liVzVvZUpWREN2Z2JybHZ3c0VFT2hwS211cm5lUXdU?=
 =?utf-8?B?QjhjS3grOE1WT3pUWkxEVTg1ODM2T0w5aTZyV0RML1FtcFZqdVhsenU1aVpK?=
 =?utf-8?B?cTJtSGhIbFk0MFZibjEzcStwMTN3YWsvdHhtMndwWEZrMEN4VEgzOWJUelVY?=
 =?utf-8?B?R0hBN1BEQ0ZRUmdYUFhaTUFYZU52bkRVM3Y0N2lZMWtCU2lCUlBDUmQwNlNS?=
 =?utf-8?B?cHBzQnJKNEZvU0FWcEFkNHkxYWlxYyt1S2thSGZWQ29oWWs3OHBzcGtLNnE4?=
 =?utf-8?B?ZTJRNWdGQk0raTEwQkFNRE0xak9peVEyNjQyS1QweFJpRG9zUmN5Y2R6L0RG?=
 =?utf-8?B?azBuaWhJaG9XMjF1dnpXc21INVo4eU5PVjh4SHFlT2JNRGNBSTB2SWdjVmlu?=
 =?utf-8?B?TWRlOWFRQStqYjByemc3aUdRdWFmWEZVYUo4eXBJaHZlUkZDQWF2UjJ1N0JT?=
 =?utf-8?B?ZGw1eWlCSlJ2M0tsRFFOdWdaK25TMVdIU0MxN3lRUzlqMmh5QWdpdHZJMEhi?=
 =?utf-8?B?UDBzUEZ5VW5hZ2hiRmFSUTN2SHBhbjlFVmlCQkF0dmxvb3F5SlRHbFg1VWdr?=
 =?utf-8?B?ejc4dEZKUmwwYkJFb21rVS9qZWF1a1VqUE1NbEFlM0YxM1p3R0NtSytmZjRZ?=
 =?utf-8?B?NHcwQmlWYkR2UVYrVVZCRVdZaWpuV2VlYTBHRDExL3RMRC9MdEIyb25YWFRk?=
 =?utf-8?B?SjJJNVN1YjcvOFc5SEkzREEvRFdmc1NGM0F0dHhwbXkrQ1grdnFRbjg5T01Z?=
 =?utf-8?B?d1VubElSSWgwNGNRUDZJaFhxMDY2VW9FUTBwK2xjZlUxZUFKbFJpVmhZWHR4?=
 =?utf-8?B?Z1Bpbm9Pc3FRWDdJRG81Q2NoVXFBd3RpZmlweVlXNVZiY2pvMXhyeUFLelIz?=
 =?utf-8?B?Nml2MjVCSnRVbTAvcnhnaC9SZ0VXbER1ZnY3WlV1c1VGZlFXeTBtbE1FZUhE?=
 =?utf-8?B?REo0eTlXYzZrTVRCeEplMFZBT09VY2JBUVhzcDRLcm1QdWlqUnZudFk3ZGcx?=
 =?utf-8?B?aHkzbUtvbU9PREhOS0VqZnhmRGtrSU9XekpRWG1xRmpNUWJ5TFV1bTRtZUwy?=
 =?utf-8?B?SXZZWVBPSDFmRVpab0tRL0pPa203bDlkUzR6M20xT1NROVVxNXQvTTZEczd0?=
 =?utf-8?B?TW1saDdoOUN5RXZVMWRoWTVhQ1hKRDRqWTdlTVhXUCtWV1J5dDd2VXgyN2lZ?=
 =?utf-8?B?bG5kMFRjbnNZRGkzT2E5S09MeGQ4eWljUU1TSXllMW82dzZqTEdKYWNyalNm?=
 =?utf-8?B?bjc1dWN0MThwUmRmYUVMTytiRGIwUU84ZGVWSXBKVy9nVVdQaGhQK3N6c3dD?=
 =?utf-8?B?clp3dGRFSFpqK3RWN3dqN0NuenFldTY3RWRaQVo1TGlXdjhreXgxT25VMU92?=
 =?utf-8?B?NXB6VTBNY1pFWHJjTjN4dVQ2VVBwL2UxUzQ0VnNZbGluSjN3U1V5dWNJdS9V?=
 =?utf-8?B?T2hnT1Z2MlFnVVZXQUMvc01aTnA2ZncyMU4vb3RhK1lmK1MvQ3pOMG1xTjJU?=
 =?utf-8?B?RnVpaElKV1pLYk5QWWpFdS9NMTl3NFVEVTY3VmJNNkxFL1lFTW1CNUhiczJv?=
 =?utf-8?Q?mLB8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Qis4Y0RXcDF4em1ycVFtRmpiZkNNbzdHYnVFcENmRytmTmp6Tkd5TGUya05h?=
 =?utf-8?B?Nm43T3J4ekNhcEpZdFY3dnFZQTlWOERULzVTMVlUdVhleDNxTHM1Si9NRzlJ?=
 =?utf-8?B?KzZBZlIyWDRYVStVeXpieitIcEhsRDJBV1VlQTFObjFOSDN5bTB3dkJpaW8v?=
 =?utf-8?B?S1M1NFE0U3FxYmhGRnV1QjVsb216c0tqMXNCczgxQW9FbVA4UXdTWWhkdTNN?=
 =?utf-8?B?TnU5NmU2blY3Y0lMRE01MW14TTg3bGVlaEtoSFVUUlh2S3VnY3lGUVRYdWkv?=
 =?utf-8?B?T0R2RytEZkZJdFhFaE9hOVJobkprNENEMTZDVXR1T0NYRTNmVjZpNVBnZHgw?=
 =?utf-8?B?NEZPZG1FY1Vwb0l4bmxSZUNlZ3VnOXpDVTNXR1NSVjMzSUIzNmo4ZkNNelJO?=
 =?utf-8?B?VkdvTGU0K3grQTQxcWZNL3JpOS9KQnYrWmlhQXljM1dseUw3UkU5TTVrc0VW?=
 =?utf-8?B?TUFlcmFWem1mUzBRajk3a0V4aHNkVVFPNmgxcXVHTlZodkhVMG5nclA3SXVG?=
 =?utf-8?B?TS9kQTVSeUJqUWJSUDFrTWpKRUxNYlpva2VXM242aWFrdUJ5QXAyQzhLMmlX?=
 =?utf-8?B?UnFWS0p6YXhGM284YmZWUG1qUHNsYVRSK3JZRUx0SGRxS3B0TUVlS1Aza3g0?=
 =?utf-8?B?cGFKaElUdFJCQ1ZJT0ZKTmlHYnEvVjV4MnVqSmkyanpWdlkycTVreWd3UGxV?=
 =?utf-8?B?cmdTbnhBNkROV0g3OWJEVEFVZVp6NStQaHoyT0hLc05Ic0xkYWNSTjNNQ2Rz?=
 =?utf-8?B?Nmx3ejNyTS9TZVIxN3FsZVJjT3Z6NlhtalZDMDhzbW9pYkQvM1FhM1Q5dFpS?=
 =?utf-8?B?QVZCTFlpWTA1TE4vNWdJSk1PVnRMSnFReDhJNkw1ZmphSjZHY2VoR2Z6Y01q?=
 =?utf-8?B?RjUwQjdOSnpNS0tyWlRUMCtWTkFlaHBPY1FnaWQvaDhxeGo3eDJGQUdxMUJz?=
 =?utf-8?B?TDdYcFF5Z3VqVFhhQ0dadWMzOVk0YVJBVE9FaENYcHdaOGFiR1hRbnZ6MGsz?=
 =?utf-8?B?bWlrK1ROYThra1RUVzdoT2dMcHhsNEhvOWgxcXVoSTYxaXN1L2IvOW96bkYw?=
 =?utf-8?B?L2JkeHZIbmRvNWVBVTZ5R3Z0bVBJTjV6VWo2V1daRkRNMUZ5N09nV1E5Y2pF?=
 =?utf-8?B?RHEzaUFmY3g2Vzgwa3VkWmo1UDY4bXhOMU1UeUhyZmE2bEl1ZjEyY1ZGWVRP?=
 =?utf-8?B?dnpCVndrdDhqNENYVGxGU0NVYjV5UkdwYkp0d2RsZGg3OHVRNWhHclRjRWNq?=
 =?utf-8?B?Qmc3cWEvWjBZTmZkZUp3RWpWQU40ZlRXWWZDZzBnQ1ZFSDkrbEx4T3BQUkNt?=
 =?utf-8?B?SDMyOEVzblJuNXdnN1J5VGwwZENzbG9SV21aNDlGb0pnc2htMWFzckZtRERE?=
 =?utf-8?B?aWNrbHR3YzJ2OHRxSDhCL3VqeENJSVdNTFowMHJib01LbGdOV2VtMTdZTHMv?=
 =?utf-8?B?cHg2clhoZDNkOXIwc3J4NGd1NXprYWs4K01oeSsvYmVJVENGZHZCZXJVcXBC?=
 =?utf-8?B?YzdRVXJlVi9oelpRbXV5cGxzSFZPd2FSNG40REhub0VnSWI4WFl3OG43T29q?=
 =?utf-8?B?Wm55OTF4SDY0bVZkYWJXck5xblppWVNaMXVWWFlBTzgxWHhPQTBPb1J1Qmkw?=
 =?utf-8?B?bk9uTVVlUnJoNHB0UkNGaEQzMUczdksxYmp5TzRrRUIrNDJleXhtL0NrNS9q?=
 =?utf-8?B?dU94NTVqK25pMXRsK2NtNE1Ka2dtZnc0K1ppSTZXSUxObEdCM0RSVnlLbmxC?=
 =?utf-8?B?U3lxOTEwOEE1Yml1SHZYYS9DQ1RDRGJSd3VGc2hWVEY2TmIzNFFPTUJwdUxG?=
 =?utf-8?B?TnprRXhFcW9JU1loODU2MjY0eWVoT21CZGZpTkxGeXVSeWJDUmwwa3BaVFZT?=
 =?utf-8?B?VTUzL1NMRnRzUkpNVjUwM3BMMDEySDNjWkR4RktUcGVoTGV1WWZmQjlEQk05?=
 =?utf-8?B?OGkya2VGb1FuR0xJNXd2d2JCUnYvMitTZzZJejJSUkorb3BxeUZGa0E0bHhR?=
 =?utf-8?B?L3ozajBndWIzeWs1SEFsRm9DYVo5T0c1bjlHWE9Kbm0zbnBrRzhRTG9YZUJw?=
 =?utf-8?B?SldheXFHTW1mQnZaMWFqYmpDRW4zdzZQNU0wcmJpeTYzbVdRVy8vOGFJR2dN?=
 =?utf-8?B?T1JYV0x6NzhaazZieWMyeHVpZUtLRjh6MnZ6NDZpVXI4dVdFWVhoRWsxQVdh?=
 =?utf-8?B?dkFkOU01RnZXT2RqaWJLSTlHbVFQdVFJZDFLeXVTL016NVZmelI3T21GNCtw?=
 =?utf-8?B?TS8vdUtpTEJyaEt5dzVIRldaSkFNMVJHR1dEbHQvV1ppWEdFSU5YLzVpeXFn?=
 =?utf-8?B?SjhrVVFzNkhqVkJ1YUZNWWhIK3EwQ3o1L2dlUm93dXBOc1FqOWowdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a1fd1c11-f1c5-4b80-57e7-08de6409d6fc
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 16:24:15.9985
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: eIsPPNJn20QnbMitMuFTgT9yCCdd6th8cxdapiyoIJU629nq+Co/AsCEamyYEbwSG8gpx/MQ3vo3FowHS/W1QQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8316

On Wed, Feb 04, 2026 at 03:45:33PM +0000, Bertrand Marquis wrote:
> Hi Jan,
> 
> > On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
> > 
> > On 04.02.2026 14:16, Bertrand Marquis wrote:
> >> --- /dev/null
> >> +++ b/config/Darwin.mk
> >> @@ -0,0 +1,4 @@
> >> +include $(XEN_ROOT)/config/StdGNU.mk
> > 
> > Darwin isn't really a GNU environment, is it? The definitions in that file
> > may be suitable, but perhaps a brief comment is warranted?
> 
> Yes this is only valid because we use brew in that case.
> I will add a comment.

Oh, so you end up building using the GNU toolchain provided by
homebrew and not the LLVM one?  Sorry, I was assuming that you did use
the native LLVM toolchain when possible.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 16:46:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 16:46:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221022.1529408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vng1H-0001D4-6H; Wed, 04 Feb 2026 16:46:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221022.1529408; Wed, 04 Feb 2026 16: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 1vng1H-0001Cx-3a; Wed, 04 Feb 2026 16:46:23 +0000
Received: by outflank-mailman (input) for mailman id 1221022;
 Wed, 04 Feb 2026 16:46: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vng1F-0001Co-Sm
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 16:46:21 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 056cb3ab-01e9-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 17:46:16 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB5748.namprd03.prod.outlook.com (2603:10b6:303:6d::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.11; Wed, 4 Feb
 2026 16:46:12 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 16:46: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: 056cb3ab-01e9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZQjgGHiPzm5Q+H4Ly2QaI1T+CM1wM7ClPiTLhCWiDUQKYzFaSsYMBABbSysB7/4Fc9g07ur9ws0R1Tb7p6IgWt0Zxl2hBpHJY7ubl0NMePF1zZ/Ag/3qr15vWPzLGeArnxa0g03ttRdMh0m3JMPaFksTGbAc3OizljCTpkTL2jx/HXQYbaUixmrjGCIM1FsncS3Zzh+OL9xQJ0s5DETt3EMN6xe5q3mTXLRKFhJ+oIQoLhjd/ooNZFqf2yqRPT+Aqsg3YrTRysXyvrYtr132VIkSTRc9wdvWbm2yHCyaTIeuVV09qwWPAs/kguKpvZmFQ/TeeCjig10tAG8QkYxufg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=saiNXBLVrcDqpgsnQ0dJQ3O4Zs1V6YrfH/Ozq6SSQdE=;
 b=B13F6NiD072XcioiUdlWAHx5meQKl++MYD4w3296HED5lbuejIQAXECdgyCls85s9u/pwG5fFT/wj9lPJbVF6UyQ8Ms7EOZ4HTIo+WhNMFzVAqw/1ZaxUrvAnUp64K72r0KQUVSk79+JCf3sVNYccoL4S3djvMEFcJSTm0LZq71ImvxD/KApAQfOISVcCwltU4K60K33dNUuCdeQT4a9Ps2yrxxCFtxzIno6dl8OYFA2FVR8uqiIjZiGA1nc4LjwoT5rW/Pn9KdV/R5tbax5FXkQZrcjDgC6U8J85jzDltTXSRCswvKBXJjKV1iMD96+yc4H1se9FiIDAsxeAz85hA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=saiNXBLVrcDqpgsnQ0dJQ3O4Zs1V6YrfH/Ozq6SSQdE=;
 b=EmMZVtsQKr87P5neBqqephc4gP6JwbPhfsrOC0iBznvJeDJ2L9oz7NSEGYf05vz3+Ny3fIizGeQEDW7anGw1CnFwjb/t8nzQSemoglpSEkrtEXzESmSdTzSm1lho6VahcB7k4v+GH4YmE6qAIA74YI9IHxasdeEJQC9eYJIWoC0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 17:46:08 +0100
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 v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
Message-ID: <aYN30KD0jsJ2_H_z@Mac.lan>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <82540f88-ffcd-46a9-9813-ebe42ef0b0ec@suse.com>
 <aYNdJ6sb4GPaSEyY@Mac.lan>
 <3f9b4337-3e0a-4693-b97f-46505bc1349a@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3f9b4337-3e0a-4693-b97f-46505bc1349a@suse.com>
X-ClientProxiedBy: MR1P264CA0078.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::24) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB5748:EE_
X-MS-Office365-Filtering-Correlation-Id: 09bd7987-9273-4502-9bb9-08de640ce7b5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NDRDWFppY2MraHpNZ0tKdFdRL2kyYUNZWkQ2YkdCYktlK0hvVS9Qb0VYejNQ?=
 =?utf-8?B?MGFDTE5saDBWWHA3d0pHUUFPMXl3Qy9icGNQNTlQbUJoUjB0eDJQWU0vTEFN?=
 =?utf-8?B?ajhwb2htdFNwbFlGRmJWR3NqR09rOXQrbnNhMTlnM05ZeERsTGpaWmFrVGRT?=
 =?utf-8?B?NlJTeTYyak1ZQjl1S0NMWnNRZUorbDNsZVpKVFM5WEpIbVdGdWk5T1NKSHhI?=
 =?utf-8?B?RGZUai9zeUUwcHVEallaZGNCYUhSd0FUVVoyeERjMlpHWDlTcll2b3JZdVNp?=
 =?utf-8?B?Nmh4Z0ZxV1hWNEhRbXBlUDNlR2ZYQ3Jka2hEU0tRM3JMd1d0L0JJMFUvWXdE?=
 =?utf-8?B?QjE0TmNGbEs4SEFXQU81R1hVd0JoUkQxSmhYUjErOFR3OC9DRXBhU0diVWRm?=
 =?utf-8?B?bXRXTkZhUlZkQmtUVVJEQ1VFOWd0WkdmWDJMZktGaXFEL01TSmFNYzlKS0R6?=
 =?utf-8?B?UW80U25FWnBrRkV5ZVVSYTJ2dmc4STJtc3gwaEc2bWVsZVV6SUZST0wzZzk4?=
 =?utf-8?B?cDl5aTc2aW5YcmhCbDNONkNsU3lGTnJzK1pqbGpxVE44SisycytGK2pGTndV?=
 =?utf-8?B?SitHUE85bTFNNFQwUjBDazluaDFySFhxWkFVQnErSDVzTzBZUWJHSTB1U3NK?=
 =?utf-8?B?M2JERzU0REluaUhIUlh5Y21LLy9NS2JGR202dGhLWG1KZzYrLzQ0MHNUcStN?=
 =?utf-8?B?OGkxaXBIZmVxYjFSRGFRL1FCeHFVZnNtdGd1bzBGRlRsbFRqRmsxQjBIc2J3?=
 =?utf-8?B?YXBtbXRud0hmemFXUFJEenVZVWFiZ0RQREtUb1MzSWFwSHVUY0JnM1ZqL0dQ?=
 =?utf-8?B?US84OW1OWkVCYXZVV3dUV29JWG9XUC9La0NWTmtWaHBnU1JLYnV5U29PZHRt?=
 =?utf-8?B?Y3llTGxhVHd4NDRSMU9aR0h6czdqOVB3Z3RkUzFNZ0RoUHlHdkVEaVdGSElN?=
 =?utf-8?B?VHZMTmRHL0xTRGtJOFNaOGhrakVrZnJMNlFHcjlmd0lzL1J0d3hMKythcmM3?=
 =?utf-8?B?YlNpaUgzK09QU01DNzlXazRvTWFrdDhiVExJN2xQckliaVZ2MkhKclFxKzNC?=
 =?utf-8?B?M0l3THRkWkM1eURxclZHSHlJSHdKZFY2TnNmaDJBWnBmWEd1UGdxbDdNalJP?=
 =?utf-8?B?L21VaDRkbzltMUdFUGhRd3RzK0ZtOUlJdUVlYzQ3WXVKODk0M2VrRitpemw4?=
 =?utf-8?B?SENPdTROS0w4V1VhMjNJL2F4MmtYTE1Va0RxbkdHZFk1UmNKVFRlNUVUb3Za?=
 =?utf-8?B?Tnd1Y3N4RHpsN05ZRVRxaXljYitBczhxNUVKYUtOUHArdjBYT0ZlQzN6ZnEy?=
 =?utf-8?B?amtWbXB2ZnJncTFBcmw0cjdPZ25yWkJlWFc1Y2luZW5oSUFHUm5ONHFoTGZi?=
 =?utf-8?B?WVNOcCtiVkZFRTZtRS9vaHZSdElWTlJzeDdTRUlIekZFaFhDclBwWHRDMVJE?=
 =?utf-8?B?OHIvZXRIa2NSNnBsMldjcnFwa01pd0xKWGlIUytvUXZnanhPQ1MxaVlLV0s4?=
 =?utf-8?B?cW16eko3cUVWYVZ4RWdWVmlUaHN1cTlmYjhmOVFFL0xFRWowcVNPM2h0QU1P?=
 =?utf-8?B?N0RNQkdxSGh1R0FBUmdTK1ZONm1KcklpT1RnamFsK2srNVFWT1pOemhCL1Nq?=
 =?utf-8?B?MG42QTQ1aGd4SmRlbWVUNlJpWG1yZW83R0w0TjFTV2YrUy9pd2RHMWRpa3NG?=
 =?utf-8?B?cFcyYnB5ajh6aXA0L04wZjVmNS9rNVNVVFBDbitzSTRQK3c1RHlJY1MrVG9n?=
 =?utf-8?B?Z2pQQmVkMlZCWDdldWpvM3pBb3ZmMGdzeWpld0NQSkVldWJxRnUxazhveHJn?=
 =?utf-8?B?aDB4RU5tUlVKcjZNYkRkWlNUODB0L2s1SW0vb0hqSlNmUzdsbVBFZ2lUS25O?=
 =?utf-8?B?OW83UjhjMTBreGNDeHFIZld3SVhaYWZkaHQxMWpXUUdNY3ZUVytKUklxMnBq?=
 =?utf-8?B?MFkyRUVNNzluZzBENFk0YXNtSklsZjhMVXRMNVplenRCVjdIT0t6dGI3d0py?=
 =?utf-8?B?L08wMzVGdi9nZldUVnozR2FGNGlybzFNQ0FyWWtYZXFYWHl1N3E2MTFlMUhV?=
 =?utf-8?B?TDhPTGxQczRUQVVMODRvb241K0s5VnQwMGs1OUZNK1phZTFKSGVOamNXR3hu?=
 =?utf-8?Q?3v5I=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NDc3b3BPRHRTREkrUkIwUTQ3TlJwVGwzNTZyTmIvdGMwZ1U2aE1rYlN5Lzk0?=
 =?utf-8?B?SVNrQ1JFdHBYbTBWQ09xVGVCTGR2Y3pzWVM3dE5peHBqQ2FLNi9OYWkraXpm?=
 =?utf-8?B?eUpLdlBsdlQ5NmJVcTRST01xR2dQcnNSZlpVWXQxeW9tTTY0Sk13RTNTMm5k?=
 =?utf-8?B?TzgvQ2FsajNvcjdkNDZrU0dwaUgvYzRsN2xwTWE1WDFaQ0NLcnlTVXUxQmVQ?=
 =?utf-8?B?cC9hcVF2WnlRL2g1M1hMMDNFT0VLQnVhajVLR3QrWHBRdGdFVnF5aFFsbVU5?=
 =?utf-8?B?RCtlbkhaeEhRaVVLaU9KS2Q5TjZleW8yQ0JpcVJNc1c5YUdxekZobFA2bk9S?=
 =?utf-8?B?ejRPczdBZ0J5REp4c3REV1hpYmE5bXpoS3FDdFBnSzYwSmJlNHZVWWVKLzdG?=
 =?utf-8?B?Mk1COC9EZXg4N2ZsdUR6QmM2SEt6SW0zUnhFZjZkRUJZYTE1V2M5YUMxQWhD?=
 =?utf-8?B?Zk1jU0REU3pnMHc5YWFZbzJVMzNyZ1Bycm1FWDBzQXh4WHBHanZYSk5GK05i?=
 =?utf-8?B?MHhSMkNFY1dxK1B4MlAxMU9QK2hOaXhRdHVTcTQ1VGdidUh1Q3dxSGV2dVB4?=
 =?utf-8?B?ZDJvZk03aUVheHkwSEhVczNucTZ4S2FIQVQ5cE0xbUtJN1k2anFLeVFOdjQy?=
 =?utf-8?B?azJsYi9RUUtXU2ZwMHpVcnI1RHgxRCt6emhsSEZYSXA1V2dXMmgxS2pSc2Zz?=
 =?utf-8?B?WXJub1NNWFRHTzdKa1g4bGpYRXBXTk9Ta1dZMlMzK2FBbmlKS3ZpdzBmTnZH?=
 =?utf-8?B?T0pVRE5ocHo1TmVpVFE5Wml4VGdPVDlSZFJjRjNDUHgxcU9zM0kwRGxKVFVt?=
 =?utf-8?B?SDJ2S08rTE01U1JjaEdPN2pEbUJrajh4M3ZQV2RJRm5SaHU1eHVnMm0vSHRp?=
 =?utf-8?B?OUpMQ1FiU3pvZUZ4WE5mUyt3MWNvZ24rdUorcXFVdnlTbzJKbXJQQW90SHpq?=
 =?utf-8?B?ckplWmN1c0R6U25GUzdydG5qZ1hpeitWdzl2dTF4V0VCT1VMQWdzYmJCVS9o?=
 =?utf-8?B?Mk92ZERWazNicE95Z2J2UDllNWg2SzFwK1dySHhMbTAxT3VGNXkzTzZJUVVh?=
 =?utf-8?B?V2NWRlhQZkZUSXAvaEJVUXM4YWY0R2dhTmd3Y3haRUZObzR1R1lXQ3BnVFNC?=
 =?utf-8?B?RXAyYjZPanVNczFoUTRFVjNkSU9CQk1adTZLWG9raUN0ZjR6Zm5yV3kwNU0v?=
 =?utf-8?B?VlpiTUhWMzhWcWFEUkNub3dTNlFCRXA1eFV4Zng3VCtIckJzd2tzVHgxRllp?=
 =?utf-8?B?RjV2V05RbC9UUWYrbkx5YlpQVHpaTnRIWm5rV0QvaUtrQUlURXRZc0g0WUlE?=
 =?utf-8?B?ZlBOS0pTMlpoREo1ajdVcFVpbjdmbmFrRzZJSGpWY0RoV2pYM1JTeGVrdnRT?=
 =?utf-8?B?Rk9FMFdUU2tZWmVBcjlWTHh5TVE5NWhLQXRWMm1HZ2doWVJ6NzZLYUpLTm1i?=
 =?utf-8?B?WTBXdjh4Q1h3UXBQWHVRZlNxQm9RcG15QWRGSGo3c2dNK2RLZDBnTE1FUVY3?=
 =?utf-8?B?aGx0cU1GdXNISitiODBuVDRFUk1OQXBuTWZCenJFYWRaVHJZZmlpSUYyMk4y?=
 =?utf-8?B?S2J6ZjVDeFRNMXV6TXhXNjBZM2RBd2xHVGlxVWd6eWhOM1d0eGRiTnNGcHAv?=
 =?utf-8?B?Tll5NGYybllrcnZtcUZOanN3dlJqaEpkWFg3TC9VckNBM3h4bUtsYUxXdWZz?=
 =?utf-8?B?d3dnK3Z6ajZqNTQ5KzcyREpWNWZ5cmRoOUVVNE9pUVUzZjVqUWVOTzB4YUVR?=
 =?utf-8?B?cXlNZ3JZZTc2RE4vbGlUZ2pUTTl6eGloVWlsbkphZXV0YTdVZk9XMXBqWFlN?=
 =?utf-8?B?YW5JRnh1eDFvVi9naWp5TEdxbjdzNlNIMHdPd3lVK2dhMm5aZks3dUNYeDdq?=
 =?utf-8?B?bzRaOEk1eUZqODhUcDhPeHVUeWptL0JUcU94R0hkc3BSbEwyaXZ0d1g1NVJi?=
 =?utf-8?B?djNiOVZmL3hDQ04weGRGeHg2MDRYN2I4cHNKREhtYlVxRkQyaVNoMVlYUWE4?=
 =?utf-8?B?OGExSTNOUEdlVHRoRkxjS1hsQzdPbUd2a1ZnMXdGaUNlalJsY3hTNTFxcmZD?=
 =?utf-8?B?K3I3Tksrd1dRWCtJYUt4Wk5heENDRkh5NE5wdjA5Mys4WFFSaThqZitaMkc0?=
 =?utf-8?B?S2FVZXVSdHpBWklzdEE1MWVhNVBQUXNveFNOdHgzTk9jVVFrek1RazgrVFU1?=
 =?utf-8?B?eDdvWllkeERoNW1LZHNGOUxKam1hUGVXcndQbTJVQ1UrRTU0N0crb2N5SHhs?=
 =?utf-8?B?cWRYTlZZaGh4NUxxZkFCM2JMb2JPQ1BKUUJFVTNtN25DcEg5Uk01aFpmQ1Zr?=
 =?utf-8?B?cUdQM3g1cGNRQytHZTQxemtNRDUzQ3VBalJuYTlRR3pDeTMrZGpuQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 09bd7987-9273-4502-9bb9-08de640ce7b5
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 16:46:12.5267
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sDY0zG1v7KqKBRSgMIGb8jQPRLJXrY8u39DictuZrt6fZT1NjujnpItD0vzJQIwCR2UYJ9MISuxkG38qJufk8Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5748

On Wed, Feb 04, 2026 at 04:08:21PM +0100, Jan Beulich wrote:
> On 04.02.2026 15:52, Roger Pau Monné wrote:
> > On Wed, Feb 04, 2026 at 03:06:52PM +0100, Jan Beulich wrote:
> >> On 04.02.2026 13:25, Roger Pau Monne wrote:
> >>> The limitation of shared_info being allocated below 4G to fit in the
> >>> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> >>> start_info field is 64bits wide.  HVM guests don't use start_info at all.
> >>>
> >>> Drop the restriction in arch_domain_create() and instead free and
> >>> re-allocate the page from memory below 4G if needed in switch_compat(),
> >>> when the guest is set to run in 32bit PV mode.
> >>>
> >>> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
> >>
> >> The tag is here because there is the (largely theoretical?) possibility for
> >> a system to have no memory at all left below 4Gb, in which case creation of
> >> a PV64 or non-shadow HVM guest would needlessly fail?
> > 
> > It's kid of an issue we discovered when using strict domain NUMA node
> > placement.  At that point the toolstack would exhaust all memory on
> > node 0 and by doing that inadvertently consume all memory below 4G.
> 
> Right, and hence also my "memory: arrange to conserve on DMA reservation",
> where I'm still fighting with myself as to what to do with the comments you
> gave there.

Better fighting with yourself rather than fighting with me I guess ;).

That change would be controversial with what we currently do on
XenServer, because we don't (yet) special case the memory below 4G to
not account for it in the per node free amount of memory.

What would happen when you append the MEMF_no_dma flag as proposed in
your commit, but the caller is also passing MEMF_exact_node with
target node 0?  AFAICT the allocation would still refuse to use the
low 4G pool.

Also, your commit should also be expanded to avoid staking claims that
would drain the DMA pool, as then populate_physmap() won't be able to
allocate from there?  It would be weird for the toolstack to have
successfully made a claim, and then populate_physmap() returning
-ENOMEM because (part of) the claim has been made against the DMA
pool, which populate_physmap() would explicitly forbidden to allocate
from.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 16:52:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 16:52:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221035.1529418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vng7V-0002nb-RE; Wed, 04 Feb 2026 16:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221035.1529418; Wed, 04 Feb 2026 16: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 1vng7V-0002nU-OL; Wed, 04 Feb 2026 16:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1221035;
 Wed, 04 Feb 2026 16:52: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=THT1=AI=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vng7U-0002nO-Im
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 16:52: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 eb63949b-01e9-11f1-9ccf-f158ae23cfc8;
 Wed, 04 Feb 2026 17:52:41 +0100 (CET)
Received: from DUZPR01CA0153.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4bd::6) by DU4PR08MB11185.eurprd08.prod.outlook.com
 (2603:10a6:10:56e::8) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Wed, 4 Feb
 2026 16:52:38 +0000
Received: from DB1PEPF0003922D.eurprd03.prod.outlook.com
 (2603:10a6:10:4bd:cafe::ef) by DUZPR01CA0153.outlook.office365.com
 (2603:10a6:10:4bd::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.13 via Frontend Transport; Wed,
 4 Feb 2026 16:52:36 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF0003922D.mail.protection.outlook.com (10.167.8.100) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Wed, 4 Feb 2026 16:52:38 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB6713.eurprd08.prod.outlook.com (2603:10a6:10:2aa::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Wed, 4 Feb
 2026 16:51:35 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 16:51: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: eb63949b-01e9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=HQ7iRVgGBCln8wQp9GIvYmf6fmSe/KdeY7hAPhWrARC/O7lfFcSHZL4jxFhWpPhTljqzADPi6016Shi/36QSyUdh+Kjehv5SN+KUVo5QPJaqM5ANut0nuODsKPjO1Cc37W7YG+S63In6uqSsLVhTWcDzdcxJ7gZLZCwQKZ41ERQ74FopSCU4n/Eu5dD47m57dovhez1rCSBSPwxer7qriyiYbyDJoSu5NZGPA2wHiBQXraSZHA2vqgYAQczTw+4K5G50jGU8hMVe6mIUvpSH67YyM331bitfOQ+EoIriAkDxRFjOErWL0XRywwoEA6V1p+U8YjUdtU69LWQkDR8BzQ==
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=XGJxp46NY6v3Ij8co5kw93O+T1JwZMDCw/Gxc0Lq1uA=;
 b=aAGLrTuI11hp/yhI1bxX678j7JWF9EPFAdLijYM6cAt9mQE4AgLSo5XCZs01HUZwjKUS/ZsikFZHrwmUdWPy2VcCg9/u1XnfB6rQHBdp/dQLo+Ie202g2bCc0AStswtJ56nKKHdl4IJc7W2CrTorvu1TdrSVvsnP1etqpNSANi4WocrQj/vB9ofQ3rRmjeo7OCOznuwGUa2z4W2MooGePITuow5XvxR7SUqBaPSY8Kgo2kiITI7UCIV1gK1bOXxCxqA+fDYJ+/EEj3nSU0CpDA7+/2GRoCXcspfmHLKxbrJ6ul/ZW5HG55KjfDF1ME3oaw4qGbJoS2v/WB8PRuJERQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=XGJxp46NY6v3Ij8co5kw93O+T1JwZMDCw/Gxc0Lq1uA=;
 b=RLvb5hw25NeUc9vV6uvs9EfR5Cq/E8xb4/b42zDb7tgGB9lbH5mDjQWrukCopgGVbwN27KXgyy0p0DKrTycaZT2XfZjRxz2Yjz1VDJCj4OGXhza/kjRaDborRTb25GGHFKxO1NIgRmRldMyCC6U5Je0aN4lOVMjEyiFkXRCo7YM=
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=Nn2Haal50BcfeGBS94+IavYgsuT0AMsCD0kHSYO62wpNSAgbxAVUchpPTlxkmSCb+vL7MUjYqi9tdYTNV4TYE9ovj1vV1JxeN3vJ2Y9IquRy0/bzL5vVehwfRssH5O8csO1aQr4c2s1v+ubz/Ty4ctdZtnTuGxd9EtEPUTGAsggrxxMdo5ftP3tHEFneC/2dbxRMR2pINqjHXd57qFCThmAU4CwEmuHHmVp2KMnVGxz05JQqZCYamVgt0ial0lx4axMDNfXC9EmM43WSX8cMzvu2mPzlH6cjo4SW9FYD9Cc0i99OMGj1bFATDeRscI40tOJL6REkSwxvsPwg7270YA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XGJxp46NY6v3Ij8co5kw93O+T1JwZMDCw/Gxc0Lq1uA=;
 b=PwEuOVntbHObE5Qm9n73FQEafS+fLWiiNbkab/s4RnWNGQKIIOtPG20EW6x8J5+3EjQhXcRi/VGOMU3fzYF+CgwEx476gZUpI+/x5o+XNrr3ZQeVzquPJphUHD5htw7ZyWy0YJBwk2vW0ZAafQX2pi2RM02SdZa5qjdgWovaMXxbngnIiSxS8JPfRuVz9oN92H9hr5rNTDp+ThKkayCRO/soXOf/qFDznpsa794CtrO6X95TGYE/UwzXBCFGq3kQZGMvADrpO8bw+0xv+47Ze50/ZcYR8Vs95h4mrbb3+rY/lB3uDGzNgBFjmsO0daLUu94iRwaQAyOZM76TeHw2UA==
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=XGJxp46NY6v3Ij8co5kw93O+T1JwZMDCw/Gxc0Lq1uA=;
 b=RLvb5hw25NeUc9vV6uvs9EfR5Cq/E8xb4/b42zDb7tgGB9lbH5mDjQWrukCopgGVbwN27KXgyy0p0DKrTycaZT2XfZjRxz2Yjz1VDJCj4OGXhza/kjRaDborRTb25GGHFKxO1NIgRmRldMyCC6U5Je0aN4lOVMjEyiFkXRCo7YM=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.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>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Topic: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Index: AQHcldiTYCc32vRyb0mp6O53Aox8PLVyquQAgAAD9QCAAAraAIAAB5kA
Date: Wed, 4 Feb 2026 16:51:35 +0000
Message-ID: <BDB5B69D-3E56-4F24-88C5-A96A3F860596@arm.com>
References:
 <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com> <aYNyrKA7bOiZQSZU@Mac.lan>
In-Reply-To: <aYNyrKA7bOiZQSZU@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB6713:EE_|DB1PEPF0003922D:EE_|DU4PR08MB11185:EE_
X-MS-Office365-Filtering-Correlation-Id: 09ec69a5-a6bb-48a4-ffd1-08de640dcdac
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?UXZUL3dRSStlRG93UHVvaDVwU0YyZGJUWVBzWmlsVlZ0VTBCN2ZuMzBTVVV5?=
 =?utf-8?B?KzdoWDkxaWhGeGpBYkpveThGK0lWck8xZUNlbjlGZFU3bFdOa3ZJWDFFZUZo?=
 =?utf-8?B?cnJFTG5KdkVjcXlNMUJBRFhlUTR2eWM4Wnc4UWtLM0ExOUJMU1J3WHB5dm03?=
 =?utf-8?B?SE81WTF6OGxjZEorcmVnN2MzcmRiY3Q5bXV4T0FRV2xKc0lpOWplQ1RzTWEx?=
 =?utf-8?B?UVFwSUxSYUxxVlNWMy9yTkp5L2pxZWFTdjNBYTRYU2NQOUtMRVQ1S0J4VUM0?=
 =?utf-8?B?TW5FOHhRL2pzTmt6QUlhSVYwSXNVbjZndy9mZ0pwOFJmWkxYWlVGU0F5cEE4?=
 =?utf-8?B?aHY4SHlsREFvK0pZRENmTC9wVmlJSTRnNmlBaEJ3STNpVmIwYkxzMzJzS2hC?=
 =?utf-8?B?T0ZDa2NyRlkxbXRkZXlONWtpUGxYNmhaMVBxK1QvVVZTc3JUOG5GcDgxYUtU?=
 =?utf-8?B?dmkwWndBVW9tTi83S1JEOEU4RHY2R21UTVBMRGJhNklwYmxOS00zclNUWnRL?=
 =?utf-8?B?cGtZSnhuNGJET0VjUWxodkJxUFlBNE02bXRFYSt3QW0wUW5aaElJMHB6b05i?=
 =?utf-8?B?K0pZZVkwRnVUNWFVWHM5QTdRbFQyY3dHNWZ0K2tkT1lKMWZMd21IeER4c3BH?=
 =?utf-8?B?cytUdVYwMnJTNHMxSDhkdjZVVDdNNmR2NlNCRkhlVzZwaGJKVXppd2xyRVRJ?=
 =?utf-8?B?T2VZeEc1VkxnSEhCK0NWY3V3MWhjNjdNZDVEUXVTOWR5eFVmdTQyNFRpbER3?=
 =?utf-8?B?ZDMveGVtR3RyZXdZV3Z2emVzV3NhSE5ESkF6V2xadjF6bVBGOERuZTJ6VTI4?=
 =?utf-8?B?ZnJIQVl5NzFWb2RJWXg3U1NBTlNZTnVNSGlxdkljNkZBeWc0cVZHSHhPVi8y?=
 =?utf-8?B?bnh0TUR3cC9aK282Z3Y4V3dDUFR0WDZna0ErOHdBQzVpUTlFZmhhSFFFMnJu?=
 =?utf-8?B?UkVKMEJyRWpzUWo1UmJJS0FZYzNMRnBJc1dtR3lOMnVoWVFVdk5EVEo4cHE0?=
 =?utf-8?B?b2dIMVRDYjNiaFpzR0hqcVFqUXo4WTZTd2JwVGhLZy9lazg2VDhoVWp5MFFY?=
 =?utf-8?B?S21pNUxMWjRwdE1kZVAvWThmV1hWSUFKV3l1WXRDTS9JbGpJbE42WU1Xb205?=
 =?utf-8?B?dXdNdmRkdC9sMlRyYVU0Qm8xczJxN3VCZWV5SFkvZW1pYS9iQUI0MTRjUFdy?=
 =?utf-8?B?M3A2QXgwa1kwUXhhUWVpTFJZZWZwbjVyZlNVWE1tZjVXV0ZuejJ6RzFvSHR4?=
 =?utf-8?B?OThWSTV1UTJ0SWJ5VnlFRGRqaXIyWFJVRzQ1TFZqTkFFRE9abFFjR2pueDRY?=
 =?utf-8?B?SU1mWktsYlArdzJJZkE4Zkg5SHpHcU9lTWJkNmw3MWFRelJsZnI4TFhyczhU?=
 =?utf-8?B?KzRaZWZQaHp3aGRZOG1VWThHNGdRV3I0RTUvdG41OVF0ckZDb1c2MEJCTHFR?=
 =?utf-8?B?RFlWYmdkUW1pMlM3N1pXRGVGRDZwYmYyZEI0ekhwSFFKS0hLbDBDVEJuQjhD?=
 =?utf-8?B?MkFUSVVWMnFPMmNxYWdtNk9DelJqL3hKUGFWS2RybnpJYXc0OG92aFAyVFd5?=
 =?utf-8?B?RFM4SDIvWXBuaUY2cTE4Nm16eFRibHpBd3psUWp5OU9ISHlOaHlWclUwUVc5?=
 =?utf-8?B?ZkpIYXVLOXNaYXFsdlk1aTlTNmJ0a0NYQkpaKzRxM3FSODY0dy9NVWtOTnpC?=
 =?utf-8?B?ZWkzdEZLanpQQ093VWJSMHJJS0JDZC9FY2paMGFWemdQbE9aMWczSFdjV1FY?=
 =?utf-8?B?UjNwSFNHYWVtLytjc1RSeWlFQkU5MmJHMzdVcUVwYUREMy8yVDRwaDdyaWxw?=
 =?utf-8?B?Y2c0dVlGRXJsSEJubmsxNTRnT21oandYdTFnZUx1U2VIT0hzaFN1ZUF2TFFM?=
 =?utf-8?B?UTBYbDBpWE9haU53YjhiUld4QXdNODR0ZVU1ZVh3OFRNbldFMVRSRkZQQ1Vl?=
 =?utf-8?B?TXMrc2JhcHNtYy9XNncrL2JlSnpXbVc1UjNiV2dVN0lPUjVLWUhLVFJoc3ll?=
 =?utf-8?B?MkVxNVk5MzExYmxtSVNNanhpZGVhK2ZESjlTN1ErcE40MVNhUUNIRnlGM1Vo?=
 =?utf-8?B?bk01YnczZkRkNzRtNHNoWEFHTUFiUWliN2dyZU9oRkMxTThkZzdzT2M0V3RU?=
 =?utf-8?B?TjJRblczZElteCtMSEE3Q1JmblJpK3ROcXBNL21lNnNKVDc0bFU4djZxcE9u?=
 =?utf-8?Q?a5U4ZuFGXAqX4RJchtz4YXg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <AE7267B98790D94DB72EBBEDC8062527@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6713
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF0003922D.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3d02187d-5df6-41b8-9565-08de640da839
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|36860700013|82310400026|376014|1800799024|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K3VPOFFGVjkvVU9yVzFWUDA1ZnhzRGRHbjExcTVxaTdIRzJmQ0pWUC9wd3I1?=
 =?utf-8?B?TE9RUm52d1dFcFRHWXUrbTZnS1ZZZXM0OWJHMkVjQk5DS3VyR0Job2dXenR1?=
 =?utf-8?B?Z0dVd09tRmtwMnptaDZyc0wrQnhkWGdteHVZbjZDN3JDSEJKall3Q2p0NVpC?=
 =?utf-8?B?YTR1SWFRcUxQRk9HVVBDb0hPZTZzYmhTd2tqUzh0UERJaXpPUXVCVlRxOVh5?=
 =?utf-8?B?Y3JpSXYzYW53TGJybTBPdzh4VklFYWNZMXlyTEhYTEJ5c0F0U3dMNlVrdWQ3?=
 =?utf-8?B?UjZPdGRFQ2RPVng1QzlLVzhxWkdqeldiSWUybEJTN2V6bGROMDNOS3NQdTFx?=
 =?utf-8?B?UHZZRnhPUjNEUlhHRGM4cEkzSFBUSitIeGNWWm04ODVHdWdGVmdnWXN2K3Mw?=
 =?utf-8?B?NjlzMGpPSWlGblBVR0xnMFJVZ3ZGUXhSV2Zyd25Ba0luZ1o0WEM0VXhBL3JT?=
 =?utf-8?B?ODIrWngwUHlDRGZSdUd0V2cyT3puZUFFZVI0aUhOVXZiZURadVVyNitpekRD?=
 =?utf-8?B?Z3E3WS9EbVN1aEFlVWpyK1JrV0RyVWM5SnB1TEFTa1hBL3k1Z3B2U1hOYzY5?=
 =?utf-8?B?YXI3TXVLUkgraEk3dzlmYjRsd2xud1Ftc3dKNFFVVHhiVzd4TEFjTzNvSEhq?=
 =?utf-8?B?V25YRkdlVndocXJXSFphUlU5RlVKOTF5WFRTMmM5R1JEQXVXTWhpYUJyT0x6?=
 =?utf-8?B?ZW9GS0c0Yis0Smh2MGI5N3E5U0RRdElZYXk1TVpFUDRieldzWkhhV1BzdVRJ?=
 =?utf-8?B?Ylp4MDF0NkdWME1SWkQvOUtJRHhrMjZtL2FURFo5citsaVJkbUVKcEhIZzVS?=
 =?utf-8?B?YUgwVDg4UmRsdXNXc0Z2YmNvclRWU2ZNYVJXZzVOMU5WZTk1S2lPRW1UcDg0?=
 =?utf-8?B?VExacU9RNzF5djh2cm1IRSsvSUlncmgrSVEwMUtZMjYvNytadDhVcGFhT0Zh?=
 =?utf-8?B?MWNPM1NpVGpWYkRDYWw3OGJRVlpmd3JYSjFUTTE4blRwVFhvM1NEcktxVmdi?=
 =?utf-8?B?SzFMMUJrT0M4Q2tWT01ON3cxUXluREJWd1lFbklwTmVhd0tBNWZMTmd3WnFQ?=
 =?utf-8?B?THEwN2ZoTDZHNzFYb3Nia0dJY016cHRRa0FtaFQ5ODFTWUlvM1A0OUkzUGtV?=
 =?utf-8?B?cWROTDlYbVh1RDM1aU9IRmNnY3M3V25KWWVJd1MyY0g5dC9rVU5tYWFyNmhF?=
 =?utf-8?B?SDNWclhIQ2ZIUlhodXFjWDNBUG4xbS9XRUhiSS80dDdyVVVMUGhoUWFWbFB3?=
 =?utf-8?B?NzVKcngyTVlqQ3R5OUVNNDhCanZpaFM4Wmc3QnlyOThPWkRia1NVbU9aMW1k?=
 =?utf-8?B?VGRSQlg5S25KTnNlWkNCSWdzdEF6TW1XUkN4SGkrTWRhKzRLWGExOVJhazhH?=
 =?utf-8?B?KzUwWnhUVC9jVUJjSFlWUjVOR3kvbFhvN1BhVWpXdURkTVlKZERON3NjUS9G?=
 =?utf-8?B?YmtwSFNlbXNwTVlXcjh2K3lvbGpHUGJQalNoNUY0cmNtWTZZOHd0TVlKNnNQ?=
 =?utf-8?B?L0Z4T1JPS2lGSGZ1dHhIbFRBV2oxREc4TVlNTEFhL0szTUh5T3dmUWxtNXZT?=
 =?utf-8?B?K3Z5ZUhoQWdBSTFLUCttb04wckE5VFZtK1YzSWhoTDVvOTNja01Gd2hxZXJR?=
 =?utf-8?B?YTc2M2tSMGNzbkViQmE3VnFjc0RqRDZUY2R4aUoyNDdYdWF6NnREMFFKYXJM?=
 =?utf-8?B?Mm1pdDRZU3hBcTNpWk5iZkdzMm5oNXF5aG9kSWwyYnI4dlpUUXJ0WXRyN1A1?=
 =?utf-8?B?akJ2b3FHWEZBTnZJaHZzcjRhZlhhUUxBVENidVdMRkRJUkMzK0UwZEdTZE9a?=
 =?utf-8?B?aHJXL2dpamFCT1BhNkJ0WGxVb0g4dzFRTlp1a0xFMXovaUQ0U0dGZE53a2JZ?=
 =?utf-8?B?TDMzbWdDeEdkb29Za21hckdHd1RMSUJTaU5qU3VOU214RG9TTFg1anRHMWNt?=
 =?utf-8?B?YXpxbFNZY0hpRFZvUkEyV2Y5b2ZnN3paS2x3Nkt5SFVRd3NyWktsR00xOUpp?=
 =?utf-8?B?UnZZT3EwZjlqRk1XQkptRWJsYkV0Q2NRTmZHdjA0RFdzU2lJZVhDTWFtdlRB?=
 =?utf-8?B?TC81a1N3bXhFNVZJQXhvV3pTNkNHRHR1RG52SjNBT2lnSkxGSEkxb0RSU0ow?=
 =?utf-8?B?TTdvSHRXazhiV3NvcmRVWGxFMnRabElwS3hqRktaN3hBaVhscVcvdDdOSnFG?=
 =?utf-8?B?UzRBREQ4SFgwR0FMRTlzc1VmdTVNR2V3SGxDbjFIYXc1aXQ4aUpvUStob3pM?=
 =?utf-8?B?OCsxclo2U3l6c2ZZbkh2TERqQWhRPT0=?=
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)(376014)(1800799024)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	NuMcbMWP7jO2flIHdBwHhTJDfGgn6uP5+xu3VmnPZnHaRbaOykDsbGnPbYVI1QD6uN6Sp/EeV+zwfUnQWxpXayKwXtuKtZGMkfht0iBzh766QSd9fEmy7SX6pJEXuHcYL93DrDLoOww6F7z315HpcRSnZ6tehkUHGClE2LjRXDc0ciBS4BCNCZ1Cga2mzeBn64fAPfXtknkAdpOjam2oPOz2CIVZKrMfAexZtg+rtFxczlXUYdMEYX8oo8ComUTHnx907akzAT1JWTzmIHhrOBh5JWq+abxFIqE+vUj3fnvnxtIJjMUNQ14mpnhs/Em9BSdXP+ZgTABDdq+h+587iyqkcRBm9TSkjpNVM/qijdcvpBIv+Mncsq6CRmZmWtnQyy147NDgVICY1+qGdR3/JHEqpu2yn6DdFMEVUGSu7WOGXNvfTIdzyFwX0yxkofJ/
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 16:52:38.0095
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 09ec69a5-a6bb-48a4-ffd1-08de640dcdac
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:
	DB1PEPF0003922D.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR08MB11185

SGkgUm9nZXIsDQoNCj4gT24gNCBGZWIgMjAyNiwgYXQgMTc6MjQsIFJvZ2VyIFBhdSBNb25uw6kg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIFdlZCwgRmViIDA0LCAyMDI2
IGF0IDAzOjQ1OjMzUE0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBIaSBKYW4s
DQo+PiANCj4+PiBPbiA0IEZlYiAyMDI2LCBhdCAxNjozMSwgSmFuIEJldWxpY2ggPGpiZXVsaWNo
QHN1c2UuY29tPiB3cm90ZToNCj4+PiANCj4+PiBPbiAwNC4wMi4yMDI2IDE0OjE2LCBCZXJ0cmFu
ZCBNYXJxdWlzIHdyb3RlOg0KPj4+PiAtLS0gL2Rldi9udWxsDQo+Pj4+ICsrKyBiL2NvbmZpZy9E
YXJ3aW4ubWsNCj4+Pj4gQEAgLTAsMCArMSw0IEBADQo+Pj4+ICtpbmNsdWRlICQoWEVOX1JPT1Qp
L2NvbmZpZy9TdGRHTlUubWsNCj4+PiANCj4+PiBEYXJ3aW4gaXNuJ3QgcmVhbGx5IGEgR05VIGVu
dmlyb25tZW50LCBpcyBpdD8gVGhlIGRlZmluaXRpb25zIGluIHRoYXQgZmlsZQ0KPj4+IG1heSBi
ZSBzdWl0YWJsZSwgYnV0IHBlcmhhcHMgYSBicmllZiBjb21tZW50IGlzIHdhcnJhbnRlZD8NCj4+
IA0KPj4gWWVzIHRoaXMgaXMgb25seSB2YWxpZCBiZWNhdXNlIHdlIHVzZSBicmV3IGluIHRoYXQg
Y2FzZS4NCj4+IEkgd2lsbCBhZGQgYSBjb21tZW50Lg0KPiANCj4gT2gsIHNvIHlvdSBlbmQgdXAg
YnVpbGRpbmcgdXNpbmcgdGhlIEdOVSB0b29sY2hhaW4gcHJvdmlkZWQgYnkNCj4gaG9tZWJyZXcg
YW5kIG5vdCB0aGUgTExWTSBvbmU/ICBTb3JyeSwgSSB3YXMgYXNzdW1pbmcgdGhhdCB5b3UgZGlk
IHVzZQ0KPiB0aGUgbmF0aXZlIExMVk0gdG9vbGNoYWluIHdoZW4gcG9zc2libGUuDQoNCkkgYW0g
dXNpbmcgdGhlIEdOVSB0b29sY2hhaW4gdXNpbmcgYnJldy4NCg0KVGhhdCB3b3VsZCBhbHNvIHdv
cmsgdXNpbmcgTExWTSBpIGd1ZXNzIGJ1dCB0aGUgZGVwZW5kZW5jeSBvbiBvdGhlciBHTlUNCnRv
b2xzIGxpa2UgbWFrZSBhbmQgc2VkIHdvdWxkIHN0aWxsIGJlIHRoZXJlIHNvIHlvdSB3b3VsZCBu
ZWVkIGJyZXcgKG9yIHNvbWV0aGluZw0KZWxzZSBwcm92aWRpbmcgZ251IG1ha2UgYW5kIHNlZCBm
b3Igb3VyIGJ1aWxkIHRvIHdvcmspLg0KDQpJbiBhbnkgY2FzZSB5b3Ugd291bGQgcmVxdWlyZSB0
byBpbmNsdWRlIFN0ZEdOVS5tayBhbnl3YXkuDQoNCkkgYW0gbm90IHN1cmUgaWYgcmVuYW1pbmcg
aXQgaXMgYSBnb29kIGlkZWEgYXMgeW91IG5lZWQgc29tZXRoaW5nIEdOVSBmcmllbmRseQ0KZXZl
biBpZiBpdCBpcyBub3QgYSBHTlUgdGhpbmcgc28gLi4uLg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoN
Cj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 16:55:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 16:55:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221044.1529428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vng9l-0003Nu-9p; Wed, 04 Feb 2026 16:55:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221044.1529428; Wed, 04 Feb 2026 16: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 1vng9l-0003Nn-7F; Wed, 04 Feb 2026 16:55:09 +0000
Received: by outflank-mailman (input) for mailman id 1221044;
 Wed, 04 Feb 2026 16: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vng9k-0003Nh-3v
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 16:55:08 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41aa6456-01ea-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 17:55:07 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BL1PR03MB6007.namprd03.prod.outlook.com (2603:10b6:208:31a::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Wed, 4 Feb
 2026 16:55:03 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 16:55: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: 41aa6456-01ea-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oC3+cq1ZdbSrGfuFEHiNTnuiTJHB6lrKRNEe5YU8lhBj4pSC9lvhLP6zl4PYssZYcEKN1ZvrP4Rt0sdkpBV7tIGZ5MxNCH3S642lc4SoKH0R6uBmwdpo+l9LgWLbqaakNXBZr4WS24XWn0ZXeZlSTucGh/t0DwiaX15iBtlbsN8VOUxftOZNeBQKb+bbuujJDF6gVAYWSNfMI87yqjBZUGFQDRYBsQzhvmdARSv/x/i3CS/FvpFFzsjR7TUfVCNnFoZjALI2nu0TNTIhXdmk8VW1zjq28X8n5qx2AbHbzN/WaXh6np7Bi1UnM511+JqE2/NLZuYf78t3gk6ZGeWd5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NPs1UsyYwqrcOYex/6CBegJGgSPDcAjpSGEErJFK69E=;
 b=YervUzv90KqdiJnIVqBf7tO71yYWTztHKQEqJlzHHiqleyfIgMrzv+75/AEIVmQrFgYsHBjtWqMIDiH+dDTg4XnKbiAuJjK8Y+xHzo9RyXkVya6iEqHagCrH1OPKAP8FrSCEkq9H/aCj4j4N/cHfKnb8cIIZW9/pJNo41NzWAuob5HIBi/VVbZQxSIYPTrgq1z6RX/qAVBoF0/WIBPidX5uFiMc5R13akKsh/4R5DFyJ1D8bJnJ+vczqtpWF6jvCsHIMFj9p54DwKvMe9VMMcXc5xkzk1S1pIrKwBcvJ2rD2c24JyAYPaAksO6ruu2Tt/hsza2F0Bklmlr4drPsEHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NPs1UsyYwqrcOYex/6CBegJGgSPDcAjpSGEErJFK69E=;
 b=Q6j1JxiQ4c+g1A2xugBgUXc7MKB44vhz+d0VeNb2ylCh8UDvrz+daF0MZH9NOkpSPCiRFn/Nl9lLpSnUgmdTWoGtdE0W+S7l0WlI62NpRvF2BRsVIGY3vyI2or+JFRNybaGB/C1znfD/Xo1tyXs7+0QXVJ5qPvkWkGUaKDoy60w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 17:54:58 +0100
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,
	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] x86/domain: adjust limitation on shared_info
 allocation below 4G
Message-ID: <aYN54n8b1gYXYiTq@Mac.lan>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com>
 <aYNfVDgSgKCYd929@Mac.lan>
 <764e6a9f-8def-4f6e-8311-ef91b6c3886e@citrix.com>
 <a7ba4cfd-d452-48f4-99c8-a7c283facfd2@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a7ba4cfd-d452-48f4-99c8-a7c283facfd2@suse.com>
X-ClientProxiedBy: MR1P264CA0145.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:54::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BL1PR03MB6007:EE_
X-MS-Office365-Filtering-Correlation-Id: 6bc452ea-9817-4a6f-e87f-08de640e23a5
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?RjFGWXU4WENaMjJIMXEva2JBekVHelc4cVl5Y01ZNVRvK0dnQjBOYlpyNHV2?=
 =?utf-8?B?UEhaVXJsYXhHVGRIS283aXhPeEdaZ28wdW15VE1Mb1hjTDNqSHhKdEJQVnhq?=
 =?utf-8?B?aVpBcDB4OURPeHZrelhyTTNwVHZ3RjhpWXkrcVdvNWE3R0FPVGNWUndzd1Y3?=
 =?utf-8?B?U0lwVlk3a1VXZzhCd3NKRE1KWlVOQVplMUhEcitQMVN4OTRTOCtacjNUQktD?=
 =?utf-8?B?R3R6ZEcxYm1Sczd4b1BSK0hoaUVpRHFPQk9NeDBrQmVmTCtSdTdRWjI4OVF1?=
 =?utf-8?B?eGo2NG51eGZpN1FGei9xZ1N5OUoySkNxREFFV2JCRmFJckI1ZnlONC83UTN3?=
 =?utf-8?B?c2hSUzVNRjhlNzFZTXFscXhKcnhsQVFETDJHVU5mTEdNdEVkN3RCaUYxdU9X?=
 =?utf-8?B?a3RMOFA2M3FEMVlicGVJR3VncEJjWTEvSWluT3Q0UkEwY2krV0I0MVB1NWJr?=
 =?utf-8?B?dmoxT29rWHhVTGxmUFdnajdvc0JCS1pPS1RsMG5aVzNnOXAzSkRHSGVMcE1Q?=
 =?utf-8?B?Mld1R1lWbi9LZ3hSdjJvYzN3VWVMUHhpU3liZm1LTU56dTcrcjFrSEZKR2Vm?=
 =?utf-8?B?bmE0b05iNExIZ3BSYkdsSFRPZnhBclJkd1crM2wxMU8raGJlQTgyWWt5bEtC?=
 =?utf-8?B?MEdYYjJ3ZmR6cnVzai9DNmFlRENUY2s4L0UzZFE1UTF0QmZZVVpRUE9FWEdy?=
 =?utf-8?B?Zkh3aFlvM1hKRWJpenZVb3ZyRXUzMXRJV2tnYldSOU14NHZiNEI5Zzk2RXox?=
 =?utf-8?B?cGRHK3J1VExUeXJXalNCNzEyN0V0R0JCVUswWkVLZ1dsT29NdzFjVkVhdjB3?=
 =?utf-8?B?ckFUZXZTcEt3U1laWWtTWG5zTkNmaXpkNVR5am0xQTl6OE51aTE3dXBFR01Q?=
 =?utf-8?B?dVdtTmw2UlVvRFhRVnZYSG0rQldGSDMwZzdFS3JTY0dveVRpNEF0blVQU1o1?=
 =?utf-8?B?dENQSGYzSmpndTNHRGZiYlloaTMwSmIrWUNlUlBVWWY5dXkzT0xiaUpuOGNp?=
 =?utf-8?B?di9aeXJHMEM2SURibjhNaThPaGx2TXpnRTdIMkRpU09DSFBWMmQ4SEszU1Va?=
 =?utf-8?B?UGlzOXBWVm56U3VDTjM3K0ZrMkNRSjhZTVVEa0dwUy9WbDZSOVFYeWhtVEpx?=
 =?utf-8?B?SVkreU95SkE2QW5EdTNUM1BjWGI3SVRLb0lkQ3l5YmtadC9BUUozbUJpZEJu?=
 =?utf-8?B?V01rYklHaGw0VWgrQ3QrUGZLQ2RsM3VRdVIwUzJMZ3Vhckt6TXJzREs1MTJw?=
 =?utf-8?B?dzA3Q3VMRFErL29scWlLSjVDaFpGS1k1a090U2d0eGJtRWU0WjdyNC9FSHJL?=
 =?utf-8?B?bUZ2MzN5UjI1dDdCNUdiZW1PL0pZbU0yLy9PYldETm8rMFFXdzF3YkRHalVr?=
 =?utf-8?B?SGhkVUNZbnhiL2V2K1M4R1ZTZkZVVDJuNlJoL0RPRWJOaE5tZTBkaWVud1VC?=
 =?utf-8?B?OG5vbkNyYS9Vek5EQWRLdDV6L3J6dDhFK1Z0SW9ZOHlQNXVWZVdFMUVNcUtx?=
 =?utf-8?B?cVV5S29GWmhiMDlFQ1hBTFlIMExuWXVXL1M1ZHpUeFgyeGgvcDZkT0dWaEUy?=
 =?utf-8?B?Tmx3cjdzMEJ5SlkrOGtRSkswcmJuT1dTb1R1djB0dFlXWWJ1VVEvcDFsSCtm?=
 =?utf-8?B?VU9DM09ya2IwTjZVeEZaZzU3R0JSYmIreXJTUy9wYnNWSjVjSUxCdnI5cW1u?=
 =?utf-8?B?aXBEQi9YNE00Y0NUay81NUZnYzJnOWJ4YktVUWVkWTA1bDgrcnNqQ21Ycyti?=
 =?utf-8?B?SVM5aTloWTFuWmM4MXZiTGYrUWl4S2pjdjNDaDVodTlxL2ZDLytCOUVONUk2?=
 =?utf-8?B?Nk85STMyRVBtRU0wdDM3cHEzNkUrS3NTYnlVaGpTUkcrYUVQdHVlWitKY1lJ?=
 =?utf-8?B?c3ZzQWpwL0dmQzdkOGVBUmJwenpzWlVkQTN5N0hTNXBCTzRCMkZmRExjWkZu?=
 =?utf-8?B?WnFJY2R4bXBRUllnak5LRFlUWlFkTjZ2b1oxT2M1cmhPMjVQUlllc0Qvb0dP?=
 =?utf-8?B?VU43UzNEbEpaME5iUEVaWHVCVG9HcHBCeWozZW5oalFYK25ydmhBVWp4QUEx?=
 =?utf-8?B?dGlIUWp5S2NMc3BNcHZFdUF1alNaSlBxZGEzb1d0WThubWhyRXllNFBaWWw3?=
 =?utf-8?Q?SSUs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V2dZNUhxMDdkaE0yUkVVMG4vTGhIdVZYbk83R3VMS0dWWFZVZEFYWG5QUTVy?=
 =?utf-8?B?TmIwQU8xZ1lYOXc5LzZrUVJjb0lwRXJKc1QxVmdqS2pxdUIrTFI1NmZUQ3FW?=
 =?utf-8?B?UTNNeUFpWGZ5bFpHRkRkS1lyRGxXRFF4S1NCMTNwNExZQnRwOGV0WDI1bEJt?=
 =?utf-8?B?MHFEemRXbTN5a0lhYm9adVVzSUJSTithLzhrQWloTVpYS1l0R3V4UUdxNll1?=
 =?utf-8?B?K0RtN05GSGY1TmpIRElxWTdramYvRkZLMEwvV2dwL2h1b1NOazk3T0VrWEF5?=
 =?utf-8?B?ZFhXR3BHOHBqT3Y4NEtVdmJtMlpWcWNjNVBCSU9MRXRiTkJRN25qZnBkSHh3?=
 =?utf-8?B?UUZ5Qk96aHFFbUNKMkIveVFDSVVSeUMrczQ3aWsvcDdiZ2JQc1pzZlBBOFB5?=
 =?utf-8?B?WTc3cU1CK3J6VGZsZWxTUXpOeDlRVjRBWnhTbjloOERxZmpTMkt4Y3Nzd2Zh?=
 =?utf-8?B?eFpVYlNDRC9FcWd6TGFJdzRKUHBOcUNhUERRQjZRTS9PL3FqcWg1bGl1alFs?=
 =?utf-8?B?Q1NUd3VqdHBhUllheW9WbHRremxXMERqQWUxdkJWaCtLY0JVeEYxemwxVGxY?=
 =?utf-8?B?MWI1VTArZmFvcE96UU1RUTg4TFZWdXJLTndjc0xVVDdWV0pWV2pPb3RaUEIv?=
 =?utf-8?B?Y2IrcFVXUTJFMkZjY0YzL2RGL3BQRDBQSStFMFR5dElBNlR3aU9haHFtV3Nj?=
 =?utf-8?B?OFhrREs1RkEvQkxVYWdFNCs2R2RCeDZZb0JxdytYMlpTNTgycDN2bzRxUC9K?=
 =?utf-8?B?c1VvUDM0RWpZTVJlOTBnMzErTHF2b1BVRWhpZHF1Z1picUgwdmdpeVdKVmlV?=
 =?utf-8?B?WlhVTW9iODU0cXlwWFlFN25VK1BGa1IrNWl6NGF0Z1d4b29wU0ErVC9Ld2ZS?=
 =?utf-8?B?bG9Pc25YNjBocmNXTkVZMi85MFF2V1RUTzFuQ1IwdjNRd0FxUFJCR2thYUda?=
 =?utf-8?B?TlZaME1saTBCZmZWT21MakRRUjZTRVRjRE8yS2FKMXh4NlpkQUlvdC9JS2gv?=
 =?utf-8?B?TDFJeUEyMmFVTjhKWHo1eDEwOFhPSnZuR2RsYWNsYWxRUE1TNVZuRGh2SWNx?=
 =?utf-8?B?OVV6RVVDa2VLeTlsNUUweVhyd1VndU9nZGFxUEZDWEZySW1YUGhNNERGd1RN?=
 =?utf-8?B?c1dJZTJpZ0hFcWl3ZTIxU21MOThMcWxqamdiQUVEaFNVRE1MYTUwa2c4Z3RB?=
 =?utf-8?B?bjhXbVlzSml0RXJvazYvYTBLdnlHbzdlZHBRejJjMktCUDRCc2ZVaHdrdDNU?=
 =?utf-8?B?dlJwcmEwWGRpTnBQUklTYjBTSEtURVAyT2tlVmVucXB2Q3pqMXdtSFZZbytF?=
 =?utf-8?B?a1lsK3dkcjltK0ZqZ1F0aytmYjNiK2x1QUFOa0lXenhhTzk5MUsxRGRFZ21E?=
 =?utf-8?B?U1RBMXd2c2MwdHJaZ1FtU09VNWkwZStrdllYZHFMeUo3ZEFDYXMvRm5kdFli?=
 =?utf-8?B?ZmRuUEczU2pVbkI5MmYxdE1mQ0I1YVRZMEhTYXRmV1gwMi9malBGN0pGelo5?=
 =?utf-8?B?bzVxU3RQV1JCc05raGx5WThWcmpxTUdyYm13NGpLcGFLUkd1R2F0K29xVlB5?=
 =?utf-8?B?K3pHaW5aczcwQm94TWFEVEltUElLMSs2UlRqNWMxSWU0U0toTW9EZmxaaGNS?=
 =?utf-8?B?WmZ5VWlVVGtXQTdlV21PRVlvMHBsRVYxbWQ0WnIvSVoyNmVieW5pRkI3Q0Rs?=
 =?utf-8?B?YmNCcERWU3VKeU1VTmJUVjZhd1hnZjRQS3pXRXBVMzZZY2lLMkV6Mmt5Ly9F?=
 =?utf-8?B?R1pvVlZCTFU5QVkxMWU1STNCT2dId1lZMndmMkpBYUdHYmRrRDFDUXUrRkJp?=
 =?utf-8?B?WDZndkRWSURibFBsZ3E3R210ckxwWVVQcEdBWFNmVnR6TjhESTVoQXJHdmVV?=
 =?utf-8?B?WUVEQktxUkdzdVpQdEZzbFFEZmcrV3NsTTFXMWovcGYwUllQVlhoZ3hqaFFH?=
 =?utf-8?B?T2MvaHZOOE9iNThNUHAvRHhGaC9XZFB0NWtGWXVyc2JNN2xFS0UvOU9FK2Jr?=
 =?utf-8?B?RHN6ZHJFaXN2bklucUZORm5DSlBmTTJjRENvUkwxcjBiWm52NllFNlI5WXM0?=
 =?utf-8?B?eHJHcTV2RFd1cG5wWXAzMkk0Q05HdDhyQTdYKzJUU3grak0rN1FCK3A0RDg0?=
 =?utf-8?B?dDZUK0tjOE0yVHczb3pNbmNwRW5rbnVTTnBxRDlNdk9nVTBneEVMYTFPTWdT?=
 =?utf-8?B?RHRyaThQSm1Sd2JmYUlwb29OYWNZL2xmamw5bnJEdWxuaG95NW9NbEVXVWlX?=
 =?utf-8?B?eGc1TDdUZVZqdTJVT3lET0R6Y2F3RDhTRFU4b3B1VzM0Z29qT2ZZMGFNeXp6?=
 =?utf-8?B?WWw1NlA5cDRXQlQrUUhXbGkva09CM1c4M1JEcXNuYzJRQ3lWa1ZIdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6bc452ea-9817-4a6f-e87f-08de640e23a5
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 16:55:03.3697
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pyMeaOTkpDs30NjEIC7lBZ7jtzu6zsHaK0ajxwI5QguL+jVG3CCna01aq3n2EaWLuR2bKyJhTVQNpR0z0AtjUg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6007

On Wed, Feb 04, 2026 at 04:32:25PM +0100, Jan Beulich wrote:
> On 04.02.2026 16:12, Andrew Cooper wrote:
> > On 04/02/2026 3:01 pm, Roger Pau Monné wrote:
> >>>> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> >>>> +        /* Ensure all references to the old shared_info page are dropped. */
> >>>> +        for_each_vcpu( d, v )
> >>>> +            vcpu_info_reset(v);
> >>> switch_compat() can only occur on a domain with no memory.  How can we
> >>> have outstanding references?
> >> As Jan pointed out, it's not references, but stashed pointers to the
> >> previous shared_info page.  I've used the wrong wording here.
> > 
> > Yes, I saw that thread, but my question still stands.
> > 
> > How can there be any this early in the domain's lifecycle?
> 
> Can't (aren't) vCPU-s added ahead of adding memory?

At least on x86 when using xl/libxl the call to
XEN_DOMCTL_set_address_size happens after the call to
XEN_DOMCTL_max_vcpus, and the later calls vcpu_create() which sets the
pointer into the shared_info page for legacy (< 32) vCPUs.

Even if we could invert those two calls, it's impossible to know what
other toolstacks might do.  I think we need to keep the
vcpu_info_reset() call.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 17:23:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 17:23:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221067.1529440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vngbF-0007Tj-CJ; Wed, 04 Feb 2026 17:23:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221067.1529440; Wed, 04 Feb 2026 17:23: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 1vngbF-0007Tc-89; Wed, 04 Feb 2026 17:23:33 +0000
Received: by outflank-mailman (input) for mailman id 1221067;
 Wed, 04 Feb 2026 17:23: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=hC1S=AI=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vngbD-0007TW-QP
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 17:23:31 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38de4cc0-01ee-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 18:23:30 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB5878.namprd03.prod.outlook.com (2603:10b6:510:34::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 17:23:26 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Wed, 4 Feb 2026
 17:23: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: 38de4cc0-01ee-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PZR2CCPf/OAXhoT7MymVnSiysu4EEBaF4pO2XFSrRWPZxEz420TDmfOZzKUw9CYResHBej3XlwJzZolIGrgZAcjPld7y3VF8y4uidSsZ9hwZ2NpR941J3KxmWVFgGnRk5lgOUyvhNC9oteMbusN0BfG9grK/LvDxd+1SygCgsEGyp2rN2ob/q1XIEao7L6qaRhczautV6RAhY94hpuFPP1YH6naVMrVPQjgbfvV4Y7nFdI56SjqfaBRPM7K3Ay5ESw2WNQCntfidtGnUU0jaun048MUehUXelez8jQ2Pf3MkaukicOJ2iRmSUEDJu7Ux3/Y8MvNnSXHn6j8LuRjzEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2BXqlLev5WPVpXjcTa/gCM6XN2IquK6h45/0g8cQeAE=;
 b=BuLe8hdGvDmpAtfF8/NgJgQdo76FcGrVV24uW/PXbFGzxnWm8OPZPKiCwQagIeE8t8skh5LCjaLfKE0HLH0wvbUossPOn8yW6YzBCIqChIMGnsQPBJpx5EZvPMZASBBoYsyiLTPMq2DpDN2FnyylU1srTBVAEY6eSpl8eHgN0cBjiKBsOeVpJiqbzBhujxycI5fpwhvWDy9HySGEou0UueiAUC2/MJQv7lpcU6kgWZ9CAOqfr4+6URjMOqYLKqGnF9YfNoCmNVmLNU1jfnfMxGRcLzXRPlYRciHcPxBAV1mPq+iBn0X0/7TATm5dgbyp9k+hy4/163CPPgddqJC5nQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2BXqlLev5WPVpXjcTa/gCM6XN2IquK6h45/0g8cQeAE=;
 b=EpmN/UyzqHel2KEwkI1RXeIAp0HtbqlHV6iBQLX/mkhCRuyCm94ySXeB2jMYyx4U+wb7trgu3S9AGKNe47uAFs3CwWddc4OYLmili/0RJVz+aSROzgNcptIjDSR9u5FMVOz5uVXAyuEWuLIbqwI8OgelOkyGyThNVL5PbxpiwhE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <3c3d3309-956e-463d-ba03-2e557e79fbab@citrix.com>
Date: Wed, 4 Feb 2026 17:23:21 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, 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] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jan Beulich <jbeulich@suse.com>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com> <aYNfVDgSgKCYd929@Mac.lan>
 <764e6a9f-8def-4f6e-8311-ef91b6c3886e@citrix.com>
 <a7ba4cfd-d452-48f4-99c8-a7c283facfd2@suse.com> <aYN54n8b1gYXYiTq@Mac.lan>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aYN54n8b1gYXYiTq@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0015.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:ba::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB5878:EE_
X-MS-Office365-Filtering-Correlation-Id: 88207535-59df-41ee-73d4-08de64121b65
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VTBGL1Y3Nno4YjJ1V2M4OHI0NDdid1F3eVk3eEJDY0xRR0ZWWEtOSGJFbEVD?=
 =?utf-8?B?a2lOT2Jtb3NVQ2RqWE93MzgwOU5DK2dCb1psUXBrbmkxcE1iZEpWVkRtNE9P?=
 =?utf-8?B?TGNySTVVcWdxbTRXS0lXcGlnaER3UmR2cTJjYTJ6UkRlVkdBV3VxcjFDNGVv?=
 =?utf-8?B?RE1SZFcxR3ZJNXFLaFJzSzRwWmlMS1J3enZ4SW5rOE01L2toZDFPd1RpQ0Jq?=
 =?utf-8?B?dkdRZ281Qml1ZG8yUFVNdHVTdGtJb3pUR2UrRERmNTJHdklTMEZaM1QwTkY1?=
 =?utf-8?B?V0xkNUVKSkhDOHpYWmFIeFppb2pkNnpUYWFuL0l3N2ZrSmtDYWE3NlR3aUQ2?=
 =?utf-8?B?VnNOVEh2WUVGSTdGTUp5V3g3aHVheGgrN3hnclN6THdzZ0RIY1pUaGg1Nk5w?=
 =?utf-8?B?S1o3N3VwbGxRcXEwSmhUeDdjUmtWYzVkMHp4bStaZXM0ZS96RkZxaXRuL1VH?=
 =?utf-8?B?Ukd0d1lISCt5VWpWSVMvOGVDUTVpbmhUTDltM0tKNm5jUWxPcEYzY3pmeE9Q?=
 =?utf-8?B?ajc4cDBlVW92SFFEUXdCTXBKQ1I4K3R1ajRUZG12K2RqMDBhOHovUVl3bUJI?=
 =?utf-8?B?dFY4NEtiS3FmVzArT0ZyOUNxVEEvT0wzSVN6UU5TbXQxaVpOTE9zL2NraWVG?=
 =?utf-8?B?Y1p0N0xvQWgxb3JXcFE1WXhSV1dTcFBybHRTVnhuN2VHeVBjajFhaDRSdlBu?=
 =?utf-8?B?Q3REUlJ2TXdZcytqdkkxRGVHeEpDSGdSa1AzK0NpcXZGTTAvNHd2VWhKTlpF?=
 =?utf-8?B?SXd6ZFRNY2ZwUE1hbUJBTXJRdnJHb3N4TW1oM0dUY0o4b1lEREZ5ckphNU1L?=
 =?utf-8?B?eDNVNzJaQURwaEs4UDA3Y1E0SzR2bzBqMXI0K21vRkdpbDZVSEUyZDkwUkFv?=
 =?utf-8?B?VW14MUxlRDJyNXl4OFpqZHVzYkNyYkVibFV0NTFHNVpMK2pZNTJBK3lrQWJD?=
 =?utf-8?B?VDVlSnVhRFRFN1dQMUdBcTRNL2tyZTY1eGJBY2d5WG9ZQXJST21lRkR6dVVy?=
 =?utf-8?B?eGZGMUNCRWNpaVFMOERoTng2RVJpSGNYQTd5azhuSm90U0h4RWIvUGRKR1B0?=
 =?utf-8?B?M2VGMXdLN1FlM0FZQXFNTDYvU0RsZEJJd0tOb0RkRW83RnZLUVdFWGJEM1Nn?=
 =?utf-8?B?VXVyQThZSzFqVVZkRWpKUnY5WFpBZlFzSEpReHRibUxFeWRJZi9GeGZURWR1?=
 =?utf-8?B?eFZiNVcxQkdDWDc1c0hjYlp4L2hYbGFMeGNiNVVwSHc4MThSYndIaHAyWUY5?=
 =?utf-8?B?MkJlYm1paEp3REFWL1g1dk9IcjZxM2h5d0VpMjVsR29KbDRWZlphNEs3OWVP?=
 =?utf-8?B?dkp0dThTU1N5c0I2ZlBPMVRGS2ZUMFlwUkhNckxoTkU5cXBZRis5dmtTd29B?=
 =?utf-8?B?TzNJTWFMbGJCcjBod1kyQmdjQlRVaDY2SFVUTEJqK2x0cWNVSHhSdXZDUng5?=
 =?utf-8?B?WnpLd2hORkNDdlNGei9HUytjeWdza1hUL2VHUjBkV0FJTnIyUmFPeWR4K0Fy?=
 =?utf-8?B?TWFBTUNmUXhNanpQcGVZelU1UnJ0R3dYcVhoV25JS1NJdkdTRk1xcTVCckx0?=
 =?utf-8?B?NzRJb091N3FEdWV5K25PTlJndEV4SW9VbGd1bkpmaHhtTFJvSXl6WFhUQldo?=
 =?utf-8?B?VXhXOGxiS3ZJRWczaVkvWkNleFZPaSs4b1RBTmVXSGRDdXlSTmxOT0dKSEEv?=
 =?utf-8?B?QVdrMHE1SEE2cEFxRDJkSlpPZER5OGxWOWl6TDRkWEYyQklFMkg1Qm5lVmdq?=
 =?utf-8?B?cFlYQm5aRWdFaDNiVzVXK0t3M2lEU21GZ1Z3MnNlaGF4U3NSYzdqTTJmRm0y?=
 =?utf-8?B?VGxHMzhYUkxHWXgyOFVkdW90VEkvRjcrUGRkR0d0ZW1WUmdEK2VUZ2RKZ2Ri?=
 =?utf-8?B?L200NVY2VDJUUVNibE9ROVA2R3FpaUNScW9iZFc3c3lxc2IvMGpwZ3V2Zml4?=
 =?utf-8?B?RmJZU3h3OVBOYTVWZTdySUpSS3ZhY0NiaytVR2p6azErUUsvVUlCbjV6V1lm?=
 =?utf-8?B?KzJtbzU2TFYybkhjdTJ0cnRQYVIvWlIxWE9iQUtyTFRZZHRrcU5IcFNuMXV2?=
 =?utf-8?B?NW9LcU9UL2xzUW5vQ0JMR0hjdG5yRFJYN2dhenNRTzNoZThYM2tSaHFGMDNU?=
 =?utf-8?Q?QY8Y=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WjZxWm14ejQ2QlJnVjNnbEJRc1lxRThZWEFLV3hmQmt1Tk5iRTNOemQwQmVU?=
 =?utf-8?B?NnhEUmZqaEtTajUvTXplZzRaTlVpRGgrWFp6ZVY5UUtyWU9SNWZwUE5Qbk9m?=
 =?utf-8?B?K2hxL2ZCTjh4WnFjT2VTSW1reDVBRHhEc0dGd3YyVGxkWVZ1U0hPOTZJd3Uv?=
 =?utf-8?B?NDl6Y3g5WGJ5MzNXaHNLcXl6OEsydFhRTG52dVovbGZNOG1oRkFhUjI0WlRW?=
 =?utf-8?B?YVNnQkViK2ZLNnRlTmp2WkZlRXRsaUozcUpCRHJ6bEdaOG04TEQvRGpRY2xo?=
 =?utf-8?B?eGdtcnI0aUVpNHFLZDY3N2RzSmNrWS9kMnhjQml4aElnenY2TkpUUEg4YnpQ?=
 =?utf-8?B?MXlHTnBNTDZ0djRYejlKTm1jemV5K1BuSFZ6MW12RjdXV3JLeEJhWFdpMExn?=
 =?utf-8?B?TnR3dUZCbXdZN1RiZ0ZsYTNDakRsS0lsRjFjOXdJMlBoTlZveCsvUTRNUlFT?=
 =?utf-8?B?eTExclNvMmV3Z0VBTFhPVE84Nnc4Qmd3TjJ5eG9aU2lkRkg4bWFjenhwL0x2?=
 =?utf-8?B?Y2YxV0RLR2VOaUUxQ2lrVXJyRW5OUVpGVCtXL2RlSVArMEV5V1lOaVBJbHBT?=
 =?utf-8?B?ci9JcHdEU3hHRm9wRDJEWnhZRVRkQjhHY1J4WGpHWENIbnBJUDRJQjBMTzN1?=
 =?utf-8?B?R1pNMWphZDVVaWFHcG1tZmljK3ZJbzMzMElxN1JlbFV4UDNSZWwvTEtTT2Vu?=
 =?utf-8?B?a3ZjQVNycnhJcXI3WHo2cE9Tc2p3QjFnazJOM3hHMmNZOEtCRjFUL3JUODRS?=
 =?utf-8?B?TC96alpqNWgyZFdJa25UWm1OVWhaZ1YyT0FZblZkRTN6SU5VSmdqL0ltdnhl?=
 =?utf-8?B?QUNpSmk1ZWF3bktEZkNBL0ZzY1RwVFd0WVdOYzh0dUFoZDEyNGczOUc0S0kz?=
 =?utf-8?B?THA0WktwMEM1TEd1bkptNkpBYVNLZUY0SDRtdEVjOE9yTjBzc3NCR0hjdXRZ?=
 =?utf-8?B?OFB6TkxlYmZTQ1FGaGlDU2JpVjBOSUo4b3ZuVks5RHl4OVVDR1B0K05Cdy9n?=
 =?utf-8?B?R3dhOTdPY0lqb1RmVGxqNzNwNDlRYURVK0JCY0h6a2ZDcXMzU0dGd2gyeGZP?=
 =?utf-8?B?WHIreG5FdHBZejYzRnJCTTlSL0oxbTFyWGRlZ2YrN2ZCampGakJxTXJLQm5o?=
 =?utf-8?B?QnBiNzlTcVNYa29WYys2K0NWc04yVVRRbzVsUUk2VE4rVUYxVXpzYVphNnlh?=
 =?utf-8?B?UnVWWHlUa1BCcnFtbjA4NXlxZ1ZTclhuRjhaaG9vbEdWYVdDdUVVTTZtZDJH?=
 =?utf-8?B?aW9LdWM4bUk5QU9VejJYaFZRa1JqUStOY1Vremp1YlVLUGkrbzBmcXRMSnJW?=
 =?utf-8?B?MXhLcnZyWTFldk9pWEJyM3oyU0RZcG01VVFYM0pBeDArWFZOQkc2UFUxR3Ft?=
 =?utf-8?B?WkFCZ1FzYUJoZXQxSXBObUdoTm03WmdyNWdJUG9yQjJlWVFNT0ZiMjJZd0VX?=
 =?utf-8?B?Z3VjdlNyS0hhUVpuY2Z2cG5oMFZpd3doMGFxWXNFR21mOXFPbUNiTytWbGw2?=
 =?utf-8?B?Si9oT3JOcnJvSkNqVnNPSXozaTd3ZEMxdjEyWnRMTEgvT2FqUjNwcEttWUtZ?=
 =?utf-8?B?anhlL2lHOXBxRUc3RktWR2J2TEFsTGU0VlJ3ZEk5Rk5sK2JmcFA1Y0dab3lC?=
 =?utf-8?B?MVhRc2FEM2IvTWRLcEcrakZUaGhTQVFCYk1UaEtpbldpZndqNm1LQ0I0Qk9j?=
 =?utf-8?B?YklwbklUeitSa1p6YlJCaDRFc3BFLzVROFYrOVhJRHA0TWdEM0ZISTRGWmZn?=
 =?utf-8?B?aTJYWUQ3N0x4L0pzRnlsMUc0SXI3TnhDSkxLa3hlaStscWkzcGpNR1VaUkN0?=
 =?utf-8?B?OGtMeTdjVWphWG9SY2E1K09sbm1RSkgvQ3lqbW5Edy9YeFd1WmNTQTlxQWJM?=
 =?utf-8?B?cUdEcEdSSHZ4czdCL0FMZk0wZHlpMitScWV3Qi9FMk5vMEltVE1Wcmx2M2xw?=
 =?utf-8?B?cXF3TllVUXZ6NzFPUmVCOVl5dnltSWVjeWdyN3lWUkRLSndWL0p2NGhHUmcx?=
 =?utf-8?B?WGhKSUpweHpzVUsyNm1yVkw3YS9KY25MYnluWmZhSkZCQmMwVEZOSHhUQnVB?=
 =?utf-8?B?WnU3cE12VmVSc2pTb081L1hLU2pRSVp0ZzNPcnZONVcya0l0Y240ODlzWVdk?=
 =?utf-8?B?ajYwZjhsS0c2YzNwNThsMGxPeVphbitsWUVDWjNjZjc2NFYxM3dhSGZ5Vmt6?=
 =?utf-8?B?a2tnR3dCMFYvL2VzRC82UGd5cnk0ZnFSK25LZVJobGpiYXRRRGI0RmFhZ0Y3?=
 =?utf-8?B?dXRzUy9UNmF3M0w0ZG5ZeU5nNzNlQ1ovNXVCUHlLWWR1eWk0MDJCVTI5V1pk?=
 =?utf-8?B?UWV3SmRMSTRiM2h2a0JZaXMxRituZXMwdjd5UWZVTUttUHBmK3p2Q2lwalIy?=
 =?utf-8?Q?GoJBtLBH6xvDo44T/4XX5mrtQ8eUMJASlW+v3M4B0HK9z?=
X-MS-Exchange-AntiSpam-MessageData-1: x5q7qdERypvKHMjaZTFIXaL3n+OJXNF+Ihk=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 88207535-59df-41ee-73d4-08de64121b65
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 17:23:26.5822
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kBug2ZtsEq6/lvop4LgMzMs/lqHhiiSPYNwF5cPtqPg1bK2lhS1kcNsRjXGGdh5IaE2NNmhM6k+MSKFmyZPjc5Z6I/ridPP83I7lxhTl17o=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5878

On 04/02/2026 4:54 pm, Roger Pau Monné wrote:
> On Wed, Feb 04, 2026 at 04:32:25PM +0100, Jan Beulich wrote:
>> On 04.02.2026 16:12, Andrew Cooper wrote:
>>> On 04/02/2026 3:01 pm, Roger Pau Monné wrote:
>>>>>> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
>>>>>> +        /* Ensure all references to the old shared_info page are dropped. */
>>>>>> +        for_each_vcpu( d, v )
>>>>>> +            vcpu_info_reset(v);
>>>>> switch_compat() can only occur on a domain with no memory.  How can we
>>>>> have outstanding references?
>>>> As Jan pointed out, it's not references, but stashed pointers to the
>>>> previous shared_info page.  I've used the wrong wording here.
>>> Yes, I saw that thread, but my question still stands.
>>>
>>> How can there be any this early in the domain's lifecycle?
>> Can't (aren't) vCPU-s added ahead of adding memory?
> At least on x86 when using xl/libxl the call to
> XEN_DOMCTL_set_address_size happens after the call to
> XEN_DOMCTL_max_vcpus, and the later calls vcpu_create() which sets the
> pointer into the shared_info page for legacy (< 32) vCPUs.

Geez, that disaster of an interface still has spike traps we're falling
foul of.

Please extend the comment to note the first 32 vcpu compatibility case.

But, combined with the format change (clear vs copy page), doesn't it
mean there's an existing bug here?

Even without moving the shared_info page, aren't the cached pointers
made wrong by switch_compat() ?

This is one area where we've got no XTF testing at all, and I probably
ought to see about fixing that.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 17:37:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 17:37:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221086.1529449 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vngoo-0000rx-Gg; Wed, 04 Feb 2026 17:37:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221086.1529449; Wed, 04 Feb 2026 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 1vngoo-0000rq-DV; Wed, 04 Feb 2026 17:37:34 +0000
Received: by outflank-mailman (input) for mailman id 1221086;
 Wed, 04 Feb 2026 17: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vngon-0000rk-FP
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 17:37:33 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ec1615a-01f0-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 18:37:32 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA0PR03MB5419.namprd03.prod.outlook.com (2603:10b6:806:be::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Wed, 4 Feb
 2026 17:37:29 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 17:37: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: 2ec1615a-01f0-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vFQEXobhGByPB+R2YTemotv9WtIDI578Z2MmBrImPTLWMMHx1iji7K/Gajc16V9OsKIu9Ct/ecfLeb3jTx9wZd4qhYifrNcDo4tgzD4HJ0nHo3AsXwBeR0Aqr22cspCoJUOcss0eo/oSLgxQaOIUJRBQlqyHtxNsRvD2sAi5kCjiphR3nfRTq16/SRoxIWVHJuN2gi5RQBgthOQ/UCzpq3WIyADWItuTg3g3qzMqSGEZrB9S69O8OIvYmgI8KSUjlhTQq5RIIhIHinhGvAy2tZ86KSvTkJrYNeX3ovrzFIEl8wNh7Ny8/bhe3bee+d65L7wvSrTWU+5A0sbKHVICuA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6U/ryosRTKEgNX4VEJagqM9mQIADPuN7NRZapeOpZNg=;
 b=rwMxbEM+kx2hxVtCn2iSgWEOAjspGm4X0cUP95LkfkFQfecY9cSBsZqzqYvQKncpixZLyyZNBMYFB0zs/FpVPa66WteKtDti0NcFUKk2RkLToq423AhZx/e/egyziAaTeerLHc0JL6cBjI+DedgCnc8qpI/6rphY6J6AMiU/LV7BiYu+WmT290/AIt37HujY7GoRTOW5/A5nwuF3TziGt9VoNecjskgI61jOLpp8nBikENkBtv5v3diDougrym5h/tEkuLH0q7N6OalBzE0CcVecMjUYwFAVhT/zdSZs2SWi+WZkIXcgPXxHDsFfAfB7H0/1Sd/z+ksDqFadR3r1aw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6U/ryosRTKEgNX4VEJagqM9mQIADPuN7NRZapeOpZNg=;
 b=nKwrpHQZphcL3YBXMNjg1pxfHkx+/CF2g2fmU+Am5JRIDVnWQhKA+UmA2Ddb6f/LGsZCxu2HqcjAjo/oBCZsvQtN9nC+alOJSWN0e9y3VlwZpTTZVdQx4u7xWQR/39TYZMUrY37+YyBJ61Lnp4rGOKHs7F8VTVBgoMWq+teF9GY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 18:37:25 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
Message-ID: <aYOD1ez4NeNXdrvu@Mac.lan>
References: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
 <aYNyrKA7bOiZQSZU@Mac.lan>
 <BDB5B69D-3E56-4F24-88C5-A96A3F860596@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BDB5B69D-3E56-4F24-88C5-A96A3F860596@arm.com>
X-ClientProxiedBy: MR1P264CA0168.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA0PR03MB5419:EE_
X-MS-Office365-Filtering-Correlation-Id: 3175bbdf-aedf-47fc-dc61-08de6414116b
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?b2dTZzRHaTVYazJrQnVXOEtaUkM1bUUvb3MweVBwU094VmhNbGJ1QW1XVjdF?=
 =?utf-8?B?d1ZJYkpRREdLQXFVcUlqUyttTWFnUlphM21NME5GcVlHVUFmbnFXWlNuTEky?=
 =?utf-8?B?aysrNE9SUE95Wm1qWDhNeU5uZ3BuYk56T3ovVVdRTW5BOG1qdC9GaTg3VGRz?=
 =?utf-8?B?cG0wb2dGdktvSytqUWdVOVU3RU1OQjJYNjJ6bjJrZ2tWODd3Qy9kMFJlZWFh?=
 =?utf-8?B?aGJHUUY3bnozdHdTVFFCbWhPSThkSjhkZ2JMSkpzYWlUQytTKy9MNEdTdmhh?=
 =?utf-8?B?L1BjRml0VjRieFM0cDlCRm1PKzZrUGFocWpyVXp4MnZvb1VPSXZ1Q3NUeENH?=
 =?utf-8?B?ZUlHTGtMNDJvZ3IvRFhRMDNmQlNLOE5vTVEzNHBJSytQeTJVUHA5RmM3V2Ey?=
 =?utf-8?B?NFY2aWk1akFuNnB0dmpBTDFVdEdMdmZDTDhIdE01RUVZN0ZvTlM1NDNweUha?=
 =?utf-8?B?NC9KTTZjbXUyYjNhYm9xWmhKRkhuN29KUUpXM0ExUVVvM1JIYmRqVHN3bklr?=
 =?utf-8?B?R0txT1lNWDhINHJmZHhrcXV6ekNlMHhIcGpIbHdRdzVTY1VlQ3AvMlBYRklw?=
 =?utf-8?B?dHBZQ1gwTEgvMVhsaFNrazBlMDZtRWhmQWQxRGRBRDFscUFYTElmRWJQZWVo?=
 =?utf-8?B?MHZMb0JQL0VnU0U4Vy9Lb1M1Z04wUFlJRThNMWFwZzQwL2FIUHcvNER6Ykls?=
 =?utf-8?B?eWtBSDVCTFU5VHpyLzhQcjZjM2p6REsybHFHTGFxMFcyL3hZRGpSZER5MHhK?=
 =?utf-8?B?NDdZcDlvaHN4ajdLVG9BMVp3VGJkdTFaVWlKSi91dThobFBkOWFVK2tkZU4x?=
 =?utf-8?B?dFBSRHJoZkNCMS9FSFB1cXhYaVhQNHZaOFBuSU0ra3pHbk5ySHNOalNhZG1E?=
 =?utf-8?B?aGZSZVc2ajJKNG1DWGI3ZXdidnNFRnlFTU5OdnAvSlNQSWViMkJ3Y0FJZ2U2?=
 =?utf-8?B?M3VFVU8yWU5LeElUOGs3YU5VZGU4VVRBM2dpaXdQYi81VU9GVlVrTlhMTU5v?=
 =?utf-8?B?WWlOME5XUjV6aVR3Z3V2UFUzOWN5VUNMMHZwOGZOdC9weVZQbE9iNloxMTF0?=
 =?utf-8?B?aUZCNWdrQmJIV3YvRnFXZURxajdoNHcxK2hMVmVYV1JkT0ZSOTVmMnhmMWxT?=
 =?utf-8?B?NFBTNURkbXJYKzJmOVI4QjdlbUpjRXE5WTRzZnVBOEhjV0g4RmcvWDR3dE5h?=
 =?utf-8?B?d3lkN01SVkd1RDBEekxFN1F4SUhZTzV6TEFZR2ZEbzRnRlQvbENXS1V5THdR?=
 =?utf-8?B?SmxRRTdROCtVTHVxZEZHYmtMVkxiT3BQM1F6REllc2hMeDNxN2VWeGFpWGpT?=
 =?utf-8?B?US96dHVtUzFMSmxGeU55UTdNOTltQ2NZQlNlSXN5c1NrcERXUGx0L1ZRa3Zi?=
 =?utf-8?B?dUR2TUo5OXQ2U3RCZ1VKV2MvTHE3MmdyRFVObFNyNTBjOTV4Rkl5STJzYVFo?=
 =?utf-8?B?a0R0cTByKytlZzdTY2RTTGFPVVFrWCtpUThDdzhlcTczWTBrbVBYQitpMy8x?=
 =?utf-8?B?alROT2gvV1lseERYcVc1SlZhbW9jVHR6bzVqakUvaForWjJUb01BQ0FLazhT?=
 =?utf-8?B?Z2NoUytWQnBpenljMkhiUzNQUEpHQmNDK1pnN2NRY05WNjV4Sm5HU29ubXZv?=
 =?utf-8?B?Rnl5UnpjUW44bDJUT1ZiWjU4NlhrNUZWdWNvMXU0VWV2MThnbitROXpYUTNo?=
 =?utf-8?B?Z01Sa0FqM0M5bm5TOFhsQ0tIUXRjQnMyZHVHSUtOQTRkOW5jWjBGT1ZLQVVq?=
 =?utf-8?B?cHF1cHZsRzRWVnVSTWlOUDRKR0NOMG9qSXFPTHFhODhFWVlYTGhVOG9uR1Bw?=
 =?utf-8?B?Q2czUitpUmt5TkZ2UUZ3aDZjQ2FOd2dPdnZSN0RGcG1neHNOUXBGRHphQklS?=
 =?utf-8?B?czVqWkJRYmRyVWhaNTBTMm1KL0I0OWZrS3JwQXhsQkNnRUJCaWYvSVJ0eW1S?=
 =?utf-8?B?aXVvUHhsSHdtVW0yTGIzQXJDSFBsS1F3WnE5YmYyeVQyRVlBMHc5R0VleW9j?=
 =?utf-8?B?SHZ3YXdRc1Q4THAxRDZGc1p3aTVTZHZmZEJIUlIzU2dlcGJMUzc0aDljUzUr?=
 =?utf-8?B?b1B6STlJSjZjOUVpd1ZudTQ5bTk2TE1JYzl2WFA3aExScnh3MENlak1ENHpX?=
 =?utf-8?Q?BTNU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YjNDMHd0T3J6ZTRpV2FXSG0wSUpFMnRGVUpOem5nM2xGRCtGcDN0VUE3b1Ny?=
 =?utf-8?B?N3pOeE4vblcxY2Z4S0Jkc0FRWmdRd3B6VUNscVozNU15cWI4S2FWR2JFcTV4?=
 =?utf-8?B?NXMzQnNFckhvanVIdzMzMmVvZHMrVlF0Q2FES0V5ZjFMQlpKclFCbjhJM0dx?=
 =?utf-8?B?R0Z3N25tVmo0bnR6TnVKNmNmVEo4V3NVdENUT25CSU1CQ05kQnVtd2ZoNFF0?=
 =?utf-8?B?YXRBM2JxUElEU1ZKcDIwVXMxa1lhSmQrUHZDTDg0NHNKTkIxR2E4YWhaYStG?=
 =?utf-8?B?eWM4RnB3WnpwS0hFcHFVd0dVTU5rcTZDU2RhaEl6bHgrL1oyN2hkbnFtSUpS?=
 =?utf-8?B?VllxZklIZVVZRzFpaldrbU1zZXVJSWVrSXRYVnhEd05TTStqM1Q0cUN4T0tT?=
 =?utf-8?B?RzBFSkxUUWEwdXVUaSszTGw4WTlSSXhDNlZkcTJUUE1DZUdFRDd6dVdkeitz?=
 =?utf-8?B?eHpPdnpzNDhjaUNYcDltWmRMcDBaMlhlYURtaytTaVYyblpPNTBWeWtjb0NG?=
 =?utf-8?B?Z1FZeVFaNWdtbXNaTCtmMk1pem1SK3I0Uld1cXNZNUtucXQzTGpKeXI0c256?=
 =?utf-8?B?UmlSQU9JSE9rVTRVcTN0TktKMlJka2dKNCtwWDFUZ0JpNXVrL2wvK2tvTVBN?=
 =?utf-8?B?cHhFVjhKc09TRUNlTURoUURPd2oweWVPWGN1bzJUVnhmeS9SOWRIV2srTTAx?=
 =?utf-8?B?MEcxdVRoWVpEL05LSysrV2U0dTh5enlINFJIeS9MWERIVU93Zlk3ZTB0QVNS?=
 =?utf-8?B?ZUFVTis4Sm02aS9vTmlOa1FwT0JQb2NuR2xkVFZNR3lINjRyTDI2QjRUeWJ6?=
 =?utf-8?B?d0pleG5PdEM3WWJVQjNIc2Rydi93emJGc0J6UHdoc0JaaWhGSll4R2wxd1c4?=
 =?utf-8?B?UGxqVzgxY0FLcnZFdDZKRHgwUEpFdWJaOEhVdzQyeU1VWUFRS25nVkI1VzM5?=
 =?utf-8?B?d3JGYkE3L041NG1pRnJRdzc5YW1iSThUWlV2RWhEbHNyT3daVlVLQlN5OFVI?=
 =?utf-8?B?S2hWNjh0MHpQdElVTENRN3pwTnovN1pQK1lUaG1LcWZwQW93ZkkvYjRvWVk4?=
 =?utf-8?B?Q1NXNHBHSDluRnp4bDl0NU9mZE1xTitITVNVd1QwMnBoZW4zb3dGNC9udHFU?=
 =?utf-8?B?ZlVFNlpuTEVNeCtLcTE3bDB6aFJxWWFqODdPQnV6d0d4Q0NSdEd2KzdObWVx?=
 =?utf-8?B?UXNHdHhueTVua2xuemxDemJZNFJBOHVQRUY4UmxRMXIwaFBONmlZbzVrOXR4?=
 =?utf-8?B?bTNIYzNyOTZMOTIwSWF1WTVXZzJTWnh1dmNHMnhobkgzaHBBWXdJc2J0SkFD?=
 =?utf-8?B?OTFRcjJkL1FYQVYwZ2hSSXBOeHFsTTFPZ1VtMEdGd1JsMzBKQzRuQlphSmhj?=
 =?utf-8?B?enI2ZkRreXU1WTJ0UlJOOEpkQUluSDlibDZYMjVEZGxrK0NWeEV4WVF5cGkv?=
 =?utf-8?B?RFAranFGeVo0dUJCcnI1MEtxN1lxb0NNVER1NkpkUmlNZHJOdUxjVEVta0lh?=
 =?utf-8?B?a2x6SE5qUll5bG82eXg4R2YyVHNtVVdvakk1V3FLcVZNSmRQUjRLKzZGOHR5?=
 =?utf-8?B?cWsyWTJ1NThUMm4zS3h0by9XcjdxMU1sWHVnWEh4bUoyWDJtaGhpYzZRUS9D?=
 =?utf-8?B?SjB1cHRIWFlTSHdXdWszZUIrWUlZb3YrMm1zc010eFlTRGJuQ1Y4dVJEYWFC?=
 =?utf-8?B?dlV4bUs2Wnkwa1lhbGg0VlM2UDRQNzZPTC9Rb1RRTVkvVmJGTHFaZ3J1UHB1?=
 =?utf-8?B?R0llOXRRR0JHU3FGMjFIWmZrYWpNTGZFYXAyTDh6YlJIZlo1Y3IzVTZXL1hu?=
 =?utf-8?B?YjcrZ1RsY1Y3d2hYb0FvM1FzdVRCYU9oMDFqTUw2NmMrMzBtZ2ZSUmJpT1Jp?=
 =?utf-8?B?TVJRV3BWVHFnZStGL3dZemdUcXJXaisrYjQ5a2kwdVF3Qkl3eU11NGZjYTZT?=
 =?utf-8?B?TnFuRDRSTWVYQk1YcnAyVzgraWlESHdoc2M1UkVaa0tVZ1BjMnRWLytSczlx?=
 =?utf-8?B?RzJzaEJzSGNWVUFnYlZUNjdJNkdqZHJISUF5d2Z1RkRmeVJJeTVQT3BFYTVx?=
 =?utf-8?B?T29wODlTblZocTZrMmdidCt3SVZWdU5xOGxBZWZraHBuR2R5VUlpSWd4NjhQ?=
 =?utf-8?B?ZDYrWC9mVFQvQ3RVWHJ4Yjc1WlRhc3VtVFA5RmtoREJyRm5zOHJvM1piY3Z4?=
 =?utf-8?B?cEMzUWI4c3VjUkFuZVc3TkNrTjE4ZEJ6aXlJWHJXeHdFUGFYTWZmbHVWVXg5?=
 =?utf-8?B?OVcyODF3YkgvV3p4b3ExQ1Y2bDBWL3J1MTZ4Y1ZSV2hrSnR6SVpXN3ltZzUz?=
 =?utf-8?B?T2V6QXlRbjhiSG1yaC9lUFhTY0FOenlrVi9KalQ2WnR4U1h1aVBNQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3175bbdf-aedf-47fc-dc61-08de6414116b
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 17:37:28.9621
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +4pAKOLWehmu956R9yFeGmQcs+8xZgZs2KMS5e81BdNnB5Vi8arfzoveg7UlKByb6wwcI+0NaTlHNOrF9mQK2w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5419

On Wed, Feb 04, 2026 at 04:51:35PM +0000, Bertrand Marquis wrote:
> Hi Roger,
> 
> > On 4 Feb 2026, at 17:24, Roger Pau Monné <roger.pau@citrix.com> wrote:
> > 
> > On Wed, Feb 04, 2026 at 03:45:33PM +0000, Bertrand Marquis wrote:
> >> Hi Jan,
> >> 
> >>> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
> >>> 
> >>> On 04.02.2026 14:16, Bertrand Marquis wrote:
> >>>> --- /dev/null
> >>>> +++ b/config/Darwin.mk
> >>>> @@ -0,0 +1,4 @@
> >>>> +include $(XEN_ROOT)/config/StdGNU.mk
> >>> 
> >>> Darwin isn't really a GNU environment, is it? The definitions in that file
> >>> may be suitable, but perhaps a brief comment is warranted?
> >> 
> >> Yes this is only valid because we use brew in that case.
> >> I will add a comment.
> > 
> > Oh, so you end up building using the GNU toolchain provided by
> > homebrew and not the LLVM one?  Sorry, I was assuming that you did use
> > the native LLVM toolchain when possible.
> 
> I am using the GNU toolchain using brew.
> 
> That would also work using LLVM i guess but the dependency on other GNU
> tools like make and sed would still be there so you would need brew (or something
> else providing gnu make and sed for our build to work).

GNU make is provided by OSX Command Line tools, you shouldn't need to
install it from homebrew.  Same with sed, the one provided by OS X
which is FreeBSD sed should work with the Xen build system (at least
on x86 we attempt to not use GNU extensions to sed).

However, I don't know whether the LLVM toolchain in OS X will be
capable of producing ELF binaries - most likely not, it's likely
limited to the OS X Mach-O format.

> In any case you would require to include StdGNU.mk anyway.
> 
> I am not sure if renaming it is a good idea as you need something GNU friendly
> even if it is not a GNU thing so ....

Hm, yes, it's a POSIX environment plus a GNU compatible toolchain.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 17:47:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 17:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221103.1529458 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vngy1-0002Un-FK; Wed, 04 Feb 2026 17:47:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221103.1529458; Wed, 04 Feb 2026 17:47:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vngy1-0002Ug-Cg; Wed, 04 Feb 2026 17:47:05 +0000
Received: by outflank-mailman (input) for mailman id 1221103;
 Wed, 04 Feb 2026 17:47: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=f40U=AI=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vngy0-0002Ua-8M
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 17:47:04 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 83075222-01f1-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 18:47:03 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5678.namprd03.prod.outlook.com (2603:10b6:a03:2d4::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 17:47:00 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Wed, 4 Feb 2026
 17:46: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: 83075222-01f1-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oF7DOZg0awaoEPXqrkAsVZLHpeYYAAdmqxUZmTq3gSjGX06SMWj7sO9h0IZZaXvJTPIKYVfGJ1iJ15Ydp6Nr8nmiZ1zcyyo9BSvpqlDgIRiK0s7STxWF1Ku3rcfDKD7t3dNzetSgm/7nfWqBu/BqmdacgOsP2oSjB7Af8rwhjFtApHxW2oaEC4zOhAL2T5fbb1+HgHqzRseVdO6x5kFvd5B70SUO4QBGxdItYjv+90wCxE7NDvKmUY6AcyxS7GxbnSkRuj1s+SjfHF9LfNvu69Sxim8yf7ERYZBo3pHd5niOtPrEYtPQu4Jc33/v/s7cmHtxwlQu4+Xs49BBMWmOtA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7zE62sc98JZNuIcLnSEs6JQyYdoRslGOmJbJEFXh/Ys=;
 b=oZe2IW26keKx2GeN6GPtPw5jmIpyIPmjSwxB/81n+WXZsqm6yvzD3aB9j2hA33lxUBQ9OP/uQfF6o7SWPArc8LBNb1sYShsjetfN++nsRnu7x1R5BLfD3HZDXS299KYSGBXzf/jOIbZxf8FAl4bO04VLleFJd0L4F6XxAjVNVOTpIfOabJal42aEvA4Y6+AfagkHa/2YWmwTDw+ZT2NdIsaNkmEgfOrByLCkQUgIyRTaPV2mBzJHBCQvlt1QetDW4xC7/TGHmSW1IAAv0pSzS9uiBakfbMlZurreAK6hMd6rH7Ijw6hfRRTd2xKitPHOqF8SJOPREEVGDVAd84SCOA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7zE62sc98JZNuIcLnSEs6JQyYdoRslGOmJbJEFXh/Ys=;
 b=JKHyu3G/0J6os6akyfIuJilU0Pv1ZASHRTJ84YaMsH16idHUiqegWfMrxIWK2KMw58XOxnPZpqzxi/fOD4HRVzUCKWBrNXL3R73gieeL2NtArKsTrRjXcGHNw/UBK/1BT9u/70jjlTG+15vsLD4b3hnoAvzJo7S7JIqCtsZukL0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 4 Feb 2026 18:46:56 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org,
	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] x86/domain: adjust limitation on shared_info
 allocation below 4G
Message-ID: <aYOGEOxyeSYlIwNo@Mac.lan>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <cc8f0f84-fd5e-401c-ad71-ab5a10f21fa8@citrix.com>
 <aYNfVDgSgKCYd929@Mac.lan>
 <764e6a9f-8def-4f6e-8311-ef91b6c3886e@citrix.com>
 <a7ba4cfd-d452-48f4-99c8-a7c283facfd2@suse.com>
 <aYN54n8b1gYXYiTq@Mac.lan>
 <3c3d3309-956e-463d-ba03-2e557e79fbab@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3c3d3309-956e-463d-ba03-2e557e79fbab@citrix.com>
X-ClientProxiedBy: MA3P292CA0002.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB5678:EE_
X-MS-Office365-Filtering-Correlation-Id: 14300ba7-4a7b-4661-296c-08de6415659a
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?blBIRG9uTEUyS3lRb3JUcDFlRVpTYVJ1MmRGdExBVVdmM1E3U2I2bGRQS1FS?=
 =?utf-8?B?SXZyMXhrWHpxOHh3RmxIeFRwTnVqaExUd253cUNRZlROSzV0M1JIQmhZWTAv?=
 =?utf-8?B?Y2pmRXdGbDduN0ZINmhrME1nc0taSVRCckZnRU5abzA5b1ppVEJIMlFuNmhT?=
 =?utf-8?B?WUZZcjRVcGVDSkl2QXZTUU4vQWw2bkUra2g1bFIrWlBZMmIxUWJWaUIwbUt2?=
 =?utf-8?B?TWJTaW9mdytnSnpiSVRsRDlYbk9CSUY4MjFUNlNZM21reHFvS1dPRTBTcEZQ?=
 =?utf-8?B?a1hpTnBlKzBTUDV1NzZwdUpVTXpNY2M1aDlKVkltOGZJeXVnMkhIYmxOeCtj?=
 =?utf-8?B?ZFROdUxsQ28xNVB0c0NOWTJlRHNHMDZYbnVreXl6c0lqUVdjOSt1bEErdjI4?=
 =?utf-8?B?dEtweGRBTUZvYmJNUnFHV1Z4aVBQNGRZdER0VmcyaEhCOWw5ZHBBNE1OQzVU?=
 =?utf-8?B?RDlWbG11em5qa0ozMW9QTzMzMHBYVS9ZMitmejhQaCtvTG5GRjc0cXRleHoz?=
 =?utf-8?B?YU40SGU2bU9VazRZSlR6RmxxZFBDQ3pNOTBidlhHc01hVWVnR01wZ1h5Vm5y?=
 =?utf-8?B?Sk9kVXJjMnJMaHVNMGJ0dmdNUWdyV0ZhK2xZcExsMjd4SzZOY0NWQVFkRmVN?=
 =?utf-8?B?d2FjaE1PdHB4d0hiNDg3TDJmZ1RuRWhnMDA5ei9WcFNpNVRYeTBCTHErMGtu?=
 =?utf-8?B?U21rTVZPc1h3Z0oxak9ndlAvc1ZEc284SWFjdzJoS09rWlhTeEl0ZDdDaXgr?=
 =?utf-8?B?UVZQZFNuLzJnUlV4MFByTlU2NFdUNU9HMGpvblF0QVJoLzVQalAvTjQ4TitG?=
 =?utf-8?B?eWZKNlNpQkwvZGxJb2JqNHZCOS9ScUFuTy9WUUkvMU5kRWNhWjFCSGtRYVVh?=
 =?utf-8?B?TFlWR1lyb1R3OC9ZcC9NamoxTUlWbU93THl5NWcyRHhNQkRVb3JJOW5ZR0hz?=
 =?utf-8?B?WFBaT2tVcXFJQ1BxRTJJRjd4bS9ZSXg0czBzazkzQ0VDNFJJZjcxS29lbjJo?=
 =?utf-8?B?emx3czJ4Yi9yWHI4SUJuTHZoM1RRZ0l1eERRNWEwb0paY3FjaDBpcXdHd2xw?=
 =?utf-8?B?Vkl0N1pITmZmRjF5QzlsUjRUNUdkOG1uL1NmZHk0dm1RV0R5ZkQvTTJJd21W?=
 =?utf-8?B?dUloZXBnNjVEWXBlbG5nSFovcWFaYVM4Umw4N0tvMStmK0VoU1g5aDVOM0dn?=
 =?utf-8?B?SWYwU1FucVAyNlJMV1o5Q2lzTUxuLzR2bDZ0eCsxQ09RQ25BazgvUXE0aWYv?=
 =?utf-8?B?VHRjM1RLdDMxZmtWd0FJUE8wcWZsUUpURzN6NmhUcTR1M3cvby9VOFZ0Vytn?=
 =?utf-8?B?RzBPVFhLMG9iekdkNFJwT0xadlh0UTJ5TWlpMmZUZ2p4OWxkVXM3cEpEQUdr?=
 =?utf-8?B?TU81dFRabzRNbUVlTUYyRWV1WWpsSDZoYWVVTmJCdnl2M0wzQ0hMZ3RoR1hR?=
 =?utf-8?B?SE5QUmlNeTI4MC94MlRNbEVWMENzajArMGQvaUhrV1ZHdjRGQWZwTncrWVdO?=
 =?utf-8?B?VWJIS1ZQT3pZdVE0Zy8vUitzTnh6VzdqKytiWlNPcUNnVlZWVVFjbkEwbDdn?=
 =?utf-8?B?NXdBcHJGK1pvTkxRcjhqWGZ0VGZpR3VpL1FIQW1WdUVZK0JzTzNhbUVSL3FI?=
 =?utf-8?B?bFdrWFkzNlhpN1ViejAyT0R5RjBQMTBNZ2VMNWZrNkZpOVZvMTBuU3dHbHpt?=
 =?utf-8?B?RnNhTm5TM1dDUitZZGZqOXRnM1NpWGNHdEZuL3pvdy9TU1I2SzJoNFlkcUZm?=
 =?utf-8?B?R3VvSHpuYW4vWE5QS1pTd0RiWC96Zy9EOHl2S0IzaGw3Vmt1bDZvSGhxa0No?=
 =?utf-8?B?Z3lvZFppY0t5enhNQjhteE1iaHd4dUd1Zm1NTGlIV3pnRmhHbjNlTE0wQXBa?=
 =?utf-8?B?UTlyc3JHUGRtQzZWY3Q2b2VyMlphTTJvUHZoRXBqQ2VMd0svSmVKSnJEcFFw?=
 =?utf-8?B?bWhpM1I0M0FFSE5XNEwyNEsraXBPN1llOENmMTZmQmQxN3JDazdzUndrbVU1?=
 =?utf-8?B?V1N2TS94L0RodGhEcG1FZk1aM0IvaG9QK2ZKMGxPSmM1QlQ3bTFlU1JiUFJI?=
 =?utf-8?B?WW1kZ1c1ZVQ5QytOdFBxU3E0TGsxSUo4ODROdXFzajN4VG93YXlZVUUrak1I?=
 =?utf-8?Q?2NRA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MzAxK3ZjZlJsVXNDdUl0Y3JUbVhnTFJ1NGtUT2E0UnZmbkx5VEpDUUxKR0oy?=
 =?utf-8?B?Z1BwUWJ1NFpJL2ZyQ3gvQkYrR2tjK0JKMXRqaGNJOWUyVThuUzMrdHVoamFY?=
 =?utf-8?B?cURncnJkcG5GdmREa0c3OXFkVFdIWjJ1NEJIaXNDNlppMTF4alZZdlRscDc2?=
 =?utf-8?B?cVJzYU15VUN5dmc3Z2pMNVFVU3BncC9YNWpudk5XSllodlMxWlREaHJZb09F?=
 =?utf-8?B?NWw4ZENHTmNPSXN1cTh0SUNVN012a1VuUmc4QXUyNW43ek1DTmJyenIyeG1j?=
 =?utf-8?B?OWdLNU1wUnVTLzBxUmZqRVV0NG9wRWRIYk1DalhsR3BtM1dQMWlDNXRzaUVo?=
 =?utf-8?B?Tm9aaTFVZ0NGNHovNGd4OHgrajBvVkVIYVpvTzk2WTJxQ25YdCtycWhWSyti?=
 =?utf-8?B?ZHR3MUt5Yld1TGd3SzBlYUt0Q05La0R0ZGIwU1kycDBRUXpzdlpFNDQ5RXRD?=
 =?utf-8?B?WlZqakk1ZXkwZDM0QVBYSFNjb2RTV1FQNVN0Zm00ZkRlVDdsaUJoQU1UeEZL?=
 =?utf-8?B?a1ViN0dqTXErNTNHL0pkNHVZM0FsN0JLUDMvaTZaT1JnbFAvWWpra2tUOTRv?=
 =?utf-8?B?L3pwUmVQdGZ1NkJKNmZuOXdpWnB4WE1NZGFqcUprSDg4UXZVRFhYNWxBQ3pw?=
 =?utf-8?B?M2tmQlArVlJORlYzQWNROHIvMTRsdFRVaDRyYjRoaUs1VGV2K1I4UWRpMEYz?=
 =?utf-8?B?NHhiS3VwRWVUb0RpWWhGTHpnTmhFT1lJbGtseVlzK0czSjl1OElid3ZuSXlG?=
 =?utf-8?B?QldjTHVkcVJqVGx3aVNvVU4velNLKzV4alFzb2o4MEdMQThGclM0UDQ5SDFU?=
 =?utf-8?B?c1U4TzBSME1qY0d1S0QvamhOYytRcy82L0pROU5TQm5VcVhDUFFHWWU3QlVu?=
 =?utf-8?B?SFVYczlGU0hMMXgyQnpnYXhUWkNuSXdKNkVZUUZJVG85eUIwTzI0S0FiTFpY?=
 =?utf-8?B?SERXV3QxRnhCVWF0L1hJcjF0RnhZQ3pvU3ArNFA0cm9md2dUbkJHODl3RHBD?=
 =?utf-8?B?STNSWWhITVE4b09QL2lmVW5NWU1mbFo0cVZlZzNpYTAzL1h0ZDRxR1BPYXR0?=
 =?utf-8?B?YjZMTUQ3YTdsa3puOXlSWEVTaFE4dWJZdnd2SjltREhYTjM3YXJhUmtHY2FG?=
 =?utf-8?B?cHloRitSMTRwNWF5UHd1NVZ3ajZjVjY0L1UzenNhbFBVYVlCb2lpOUhnd1pQ?=
 =?utf-8?B?eU5WZnNTb0ZvRkE5WHVXRlNTWG9JTGNMT3JpQnE5TVRiR01adWVOcGJpMG42?=
 =?utf-8?B?QnI5YkUrbVQ3M1Uvb0JSQmRVTzYyaUJxN3JsekhzTDQ2K01TSEswMkY2N01Z?=
 =?utf-8?B?aUZ6TkN2L2E4bnVDbU1oWnFxZnZnTmhkR2doSENFck1VM2YrM05Fc01XOXc2?=
 =?utf-8?B?Q2NnZElDVDUzTHV1YzdGRmN1OE9YcFVaYzJvTVhpWFZuclNpMGVQQ2FvNmJp?=
 =?utf-8?B?ZXY3RG9zbjQrNmlGV1BhTzJQdEQrTXBkMWlpN1lXWUsyYVBmNFlVSnFTdEE2?=
 =?utf-8?B?N3I3dHluWnZFcjFPdmZaQ1FNMzhsUE9MQ3BaUFBoS1VvNmJZYlh3RktzUXRp?=
 =?utf-8?B?cnMwK0tqaTIzVk1OOWlNZDVxaldCUXM3UE5KQVNGVkE0OGdUNjk3L1JjZG9l?=
 =?utf-8?B?WUpsZStYYzlLZnZ1WUdHdDBFZnpZYjg5aFdTS3ByQzkybnRRK1h4cUF4VDlj?=
 =?utf-8?B?QWd4TG5zSXFpN1NOY3VTVXdFN2haMjZPRUdMVUh5N0w4WTlRVVlqRGR2dS9B?=
 =?utf-8?B?TDZwejRRWU5LbEh0WjRyUWxaaGpJWVc1amVKRmpWNmRmbnRxcFV4S3BoaDJ2?=
 =?utf-8?B?S0JpOStIV1ZqZW5ZM0F5UnRMZE5tM21KQXAzN1dMdzIrVWlUTnliS3d0OHdo?=
 =?utf-8?B?cXVDc21GcFNXaWR6Y1hBTGVmYk1QK2dLb2lqRUVHYitmbnFvOGJadzl5SGdB?=
 =?utf-8?B?N2dRcjQwY0lSS3haWWR4THVyL0hvTTJmemhmWnlvT09LNDhLRCtzczVvc0lD?=
 =?utf-8?B?T25KU0dEdTlnZzRjMXhjWDJGSVczTi9sU3ZucC9rZTQ0OUErUDJXTFNHNThN?=
 =?utf-8?B?dlM2VStEdFU5ZDlXYndXdG1tT1I3Y00xNWVodkl4WVdmT0dBWEFERGg3U3VC?=
 =?utf-8?B?emtnazlYSjZKZ3YwQXdGVDlJdWgwTmVjYUxGdk5UbDR4L0VKQ25WeE5QRVFl?=
 =?utf-8?B?Q0FKOVlWQjV0TVEyMlhsNSt2UGdZWlBMQnBQMmpRbzRjTXN3eVl1YnhpV3o5?=
 =?utf-8?B?VTYwTmNHT1h4aVRlbnZLRlNQeXVxUEczalN1NlFUUzBVNUJZdHZBV0hpTk9a?=
 =?utf-8?B?K2gxNlRhMlorWTJ3d0NIT3JvZHVKaXZyak1mMDhyL1VxZjBDNWI5UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 14300ba7-4a7b-4661-296c-08de6415659a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 17:46:59.6904
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5hcRxxLJj9JQCH7q8gFAehTGk5f4KJurPh23bIUCIz99LHvuPDuY6oW1BnTb8zA127KR3rURsj1ccWUxisdMYQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5678

On Wed, Feb 04, 2026 at 05:23:21PM +0000, Andrew Cooper wrote:
> On 04/02/2026 4:54 pm, Roger Pau Monné wrote:
> > On Wed, Feb 04, 2026 at 04:32:25PM +0100, Jan Beulich wrote:
> >> On 04.02.2026 16:12, Andrew Cooper wrote:
> >>> On 04/02/2026 3:01 pm, Roger Pau Monné wrote:
> >>>>>> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> >>>>>> +        /* Ensure all references to the old shared_info page are dropped. */
> >>>>>> +        for_each_vcpu( d, v )
> >>>>>> +            vcpu_info_reset(v);
> >>>>> switch_compat() can only occur on a domain with no memory.  How can we
> >>>>> have outstanding references?
> >>>> As Jan pointed out, it's not references, but stashed pointers to the
> >>>> previous shared_info page.  I've used the wrong wording here.
> >>> Yes, I saw that thread, but my question still stands.
> >>>
> >>> How can there be any this early in the domain's lifecycle?
> >> Can't (aren't) vCPU-s added ahead of adding memory?
> > At least on x86 when using xl/libxl the call to
> > XEN_DOMCTL_set_address_size happens after the call to
> > XEN_DOMCTL_max_vcpus, and the later calls vcpu_create() which sets the
> > pointer into the shared_info page for legacy (< 32) vCPUs.
> 
> Geez, that disaster of an interface still has spike traps we're falling
> foul of.
> 
> Please extend the comment to note the first 32 vcpu compatibility case.
> 
> But, combined with the format change (clear vs copy page), doesn't it
> mean there's an existing bug here?
> 
> Even without moving the shared_info page, aren't the cached pointers
> made wrong by switch_compat() ?

No, they are not wrong because the vcpu_info array is at the start of
shared_info, and it has the same size (64bytes) on both 32 and 64bits.
Hence the offsets into the different vcpu_info array elements are the
same regardless of bitness.

> This is one area where we've got no XTF testing at all, and I probably
> ought to see about fixing that.

Yeah, it's not great.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 18:50:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 18:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221140.1529468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnhx7-0002Wc-Sx; Wed, 04 Feb 2026 18:50:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221140.1529468; Wed, 04 Feb 2026 18:50: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 1vnhx7-0002WV-Q4; Wed, 04 Feb 2026 18:50:13 +0000
Received: by outflank-mailman (input) for mailman id 1221140;
 Wed, 04 Feb 2026 18:50: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 1vnhx6-0002WP-Ai
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 18:50: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 1vnhx6-002hOQ-0g;
 Wed, 04 Feb 2026 18:50:11 +0000
Received: from [2a02:8012:3a1:0:9835:c5b7:50d0:e87]
 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 1vnhx5-00HAwQ-1p;
 Wed, 04 Feb 2026 18:50: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=xen.org;
	s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:
	References:Cc:To:Subject:MIME-Version:Date:Message-ID;
	bh=Om5hu8pJnwuikPmpUAJ7cH++Vp8OmWEdLEekTPPVWPE=; b=n3o53PCTJI7hcCydC2bbiap057
	x5Mj1o1uuL1DQSAjorAUufn8SRtJV7ezOaA7LzMJYB+d74P0ZTQ8wnKgxT3PjCJdwRRqIg/+VpfIO
	LfyEuNgzTdqwo+Tz9thqPjw6Pw6sx5OVNqjq/s1Ayp4BG2jzgfi/BZVeGWOL/LtFJK8U=;
Message-ID: <6b7bc15c-e3de-44a1-bbce-92397ee438fc@xen.org>
Date: Wed, 4 Feb 2026 18:50:08 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: relax barrier in sync_vcpu_execstate()
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: <e4296634-1498-4df6-95fe-6b17f50248e5@suse.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <e4296634-1498-4df6-95fe-6b17f50248e5@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 04/02/2026 13:15, Jan Beulich wrote:
> The counterpart in vcpu_context_saved() is smp_wmb(), and here we don't
> really need any more than a read barrier: The concern expressed in the
> comment is void, as updates to the context are necessarily observed ahead
> of ->is_running going false, by virtue of said barrier in
> vcpu_context_saved().
> 
> Fixes: f6790389613c ("xen/arm: sched: Ensure the vCPU context is seen before vcpu_pause() returns")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <julien@xen.org>

> ---
> As to the tag, this is one of the cases where I'm on the edge between
> Amends: and Fixes:.

Good question. I would not consider the patch as backport and it is 
border line a bug fix (the barrier is just too strong) so Amends may be 
better. I will leave it up to you when you commit.

> 
> Subsequently we may want to move the barrier into the sole common code
> caller, seeing that the other barrier also is in common code. Furthermore,
> seeing that for all but x86 the function is then entirely empty, we may
> want to allow it to be inline to avoid the unnecessary (tail) call.

+1 for both proposal.

> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -342,11 +342,8 @@ void sync_vcpu_execstate(struct vcpu *v)
>        * Per vcpu_context_saved(), the context can be observed when
>        * v->is_running is false (the caller should check it before calling
>        * this function).
> -     *
> -     * Note this is a full barrier to also prevent update of the context
> -     * to happen before it was observed.
>        */
> -    smp_mb();
> +    smp_rmb();
>   }
>   
>   #define NEXT_ARG(fmt, args)                                                 \

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 18:53:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 18:53:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221152.1529479 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vni0a-00034M-C1; Wed, 04 Feb 2026 18:53:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221152.1529479; Wed, 04 Feb 2026 18: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 1vni0a-00034F-8A; Wed, 04 Feb 2026 18:53:48 +0000
Received: by outflank-mailman (input) for mailman id 1221152;
 Wed, 04 Feb 2026 18: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=dqRX=AI=intel.com=sohil.mehta@srs-se1.protection.inumbo.net>)
 id 1vni0Y-00033O-78
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 18:53:46 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2c6bd9f-01fa-11f1-b161-2bf370ae4941;
 Wed, 04 Feb 2026 19:53:43 +0100 (CET)
Received: from orviesa005.jf.intel.com ([10.64.159.145])
 by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 04 Feb 2026 10:53:38 -0800
Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24])
 by orviesa005.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 04 Feb 2026 10:53:38 -0800
Received: from ORSMSX903.amr.corp.intel.com (10.22.229.25) 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.35; Wed, 4 Feb 2026 10:53:37 -0800
Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) by
 ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35 via Frontend Transport; Wed, 4 Feb 2026 10:53:37 -0800
Received: from BL0PR03CU003.outbound.protection.outlook.com (52.101.53.59) by
 edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35; Wed, 4 Feb 2026 10:53:36 -0800
Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14)
 by DS0PR11MB8163.namprd11.prod.outlook.com (2603:10b6:8:165::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Wed, 4 Feb
 2026 18:53:33 +0000
Received: from DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246]) by DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246%4]) with mapi id 15.20.9587.010; Wed, 4 Feb 2026
 18:53: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: d2c6bd9f-01fa-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770231223; x=1801767223;
  h=message-id:date:subject:to:cc:references:from:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=ri5lCNcx+QbKrB9Viv2DVTpf37a7I3bLgxZQ1M3OW5M=;
  b=Rm9YIfu2mqSjlgRZwZIR6UyICgT3TqXGyfL+UGi273QXzbHNx3QR59Lh
   80fHU0rzdW45d1bhls8/xfys/rqfMs7pTprkyrdHRB18eRbAz1cA/0CSO
   ei4RwV6MOP9sUxs15ifRUgbPSpSqUASoqEFGprToz3FWW5nYOcRh59Qcy
   We0s6R7i6pfseh85eYy+wZps9N0rygx867BjM9cDGFOhNYeZai+wh2WcV
   L+/CaZuk6ZI7dViAQzy2tUDQmMFbWVghUKqJHOVGfjBZbXQnsG4YVkecE
   NqWXcOt8ku8+WugOWe3oTcSQ7HmLCVT5R3I406vLnBgvxvtj0zRBmsfLJ
   A==;
X-CSE-ConnectionGUID: DFHSk9cCRhO8yV6NfmbEJQ==
X-CSE-MsgGUID: 6WTlGEFbQbmik11MA5+8fQ==
X-IronPort-AV: E=McAfee;i="6800,10657,11691"; a="71461424"
X-IronPort-AV: E=Sophos;i="6.21,273,1763452800"; 
   d="scan'208";a="71461424"
X-CSE-ConnectionGUID: JY0FS9C3R66jS8MFFwyjhQ==
X-CSE-MsgGUID: rrAF6u6yQbK4MDng1OY+Kg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,273,1763452800"; 
   d="scan'208";a="215233174"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Vt1sSc7/t3m7S1KCqH6GP9snxE1BQ2MW4y87F4LW9nRIw5yXHdQtX2XDOCDrTJbUS2mQAyswDSF4piLhklw0tOjuV7jV6eCb/vpoCKoH7cYRh6TlkvJvzbWYjaM6OzhqLVxobDVq7J0bRhvr5rqYqQBaibic/mT7mylK/YDoQvzxw07fzADGnD1rWhGVdEkTMZs/9v9Zo4UywG4a1HWcRErnkLROG5jIDpfaKEcUg0HDP/oI9ySh0SyJw0EY4/uWPEl6bGFmTsTgadi74hnev3YYZK/sPLtaj06yjBRJy7BEhgX255HXWogbNeQg6xHhedQwocmvckEkapGlVO87PQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mcui8+/ic6ABQ/53XHhz/iPU8EcGH00PR/gBFVOIZWs=;
 b=mUddonVdMCPkRW9XQVL934zjgOm0eNjsJhebPO5gXnjKb7KYWYfLtQ0+4U4Y5ck+Oow6RlptMAtNopdTvI7XkRVVthB+lIHWSNIpa2Eyf+p2A6YPjjMw7FZ+tGSG+37aCHoZii8U6FGxT9Z7yqnSUDGozPqFZKgREb2QaOaRlgLqoupdWWVSqSEuhG7TNVCQkhrLzTtzwgVZVsTAklv3SAx71CE5XGzt7n8AxUc9wb5H4+7GjV9EtsTae58fLlr6TdEU8xsj9Dv850GfWeKGsFya9p0meU/BPo2NwKreNVJXNhLoByLZbpgEiIUgT5c9N3h5VcG3601tUcUnv0Dj0w==
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: <722b53a7-7560-4a1b-ab26-73eeed3dffa5@intel.com>
Date: Wed, 4 Feb 2026 10:53:28 -0800
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Content-Language: en-US
To: Shashank Balaji <shashank.mahadasyam@sony.com>
CC: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
	<x86@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>, Suresh Siddha
	<suresh.b.siddha@intel.com>, "K. Y. Srinivasan" <kys@microsoft.com>, "Haiyang
 Zhang" <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
	<decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
	<ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Ingo Molnar <mingo@elte.hu>,
	<linux-kernel@vger.kernel.org>, <linux-hyperv@vger.kernel.org>,
	<virtualization@lists.linux.dev>, <jailhouse-dev@googlegroups.com>,
	<kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>, Rahul Bukte
	<rahul.bukte@sony.com>, Daniel Palmer <daniel.palmer@sony.com>, Tim Bird
	<tim.bird@sony.com>, <stable@vger.kernel.org>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
 <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>
 <aYMOqXTYMJ_IlEFA@JPC00244420>
From: Sohil Mehta <sohil.mehta@intel.com>
In-Reply-To: <aYMOqXTYMJ_IlEFA@JPC00244420>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR03CA0064.namprd03.prod.outlook.com
 (2603:10b6:a03:331::9) To DS0PR11MB7997.namprd11.prod.outlook.com
 (2603:10b6:8:125::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|DS0PR11MB8163:EE_
X-MS-Office365-Filtering-Correlation-Id: 8057de85-c57d-46e6-3aab-08de641eb22b
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|366016|7416014|376014;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?UHJJcld6MkRoZnpwMWsrRitmYi9pQ1VLRVVRaGJrVHhWNzY1dkdkSDNpTmVH?=
 =?utf-8?B?Z1ZPdzRFOVNobHdkWFd3ZHg1YjRneHdGSWlmMzhwVkh2dUJPMWxJM0NvVlhQ?=
 =?utf-8?B?UGozOWFyQnhuMmk3dmMvQXpBVXhPNVJQbVRtdnpKcGZVY1VHQnpEYlByckJU?=
 =?utf-8?B?c3ZFYVVIZFhjcXlJb05iSk8zcEZJWE1tQ0hFWkgrWjJuSndKeVp1Q3dGTCs3?=
 =?utf-8?B?Y2l4ZmdWZWIrOTE4NnJrYWc0R1VrWWlqR25NbjRnR2xCT0RYeThLdVVxemo4?=
 =?utf-8?B?M2o2R2RNNXlwK2Q0ajdVQnIxak9yanZVWitUeFl0RWhUZFdXaWNzamlkenVH?=
 =?utf-8?B?MHptcEJDYnlneXFTaExiTFg0ZXZKMGlEckhGQlJXN3BRUDVmN0VGUFBuVUkw?=
 =?utf-8?B?QUxDSWZ6bHpDd2grR0NiOUtMcGxWNmY3NWFqb2ZlYW5ZVDdvUWRpLzIzMnl5?=
 =?utf-8?B?YTZFWDR2cXNsUklRNnA2SytSYnVCbGphMDhjUHhCREllM3RwZUZHMDk5MnFp?=
 =?utf-8?B?MHZCa0ZSRTFrd2xTTDd6dzFqSW5iMk95YUdYb3pkTG5wdjVud0JwSXUyMTBP?=
 =?utf-8?B?N1BKTHI0dVVmcjY5ejI3QjZocDdmUk41amcwV1N5YTEweVkzOFVENWhzTzJu?=
 =?utf-8?B?aGJpdEJwb3MrS1pJYWxYM2I1WDI1YmVyTXhWeW0rd1ZGUHU2N21zUnUyL0I3?=
 =?utf-8?B?SG9SZHhBQUdUb0ViRUM0aEZUOUdYNUJhaFV4OXRVeGxXaWVpd1BYdU1vOWsw?=
 =?utf-8?B?cDZHck9nQmNWajU4bnFHRTgvTFYrY2xOVmY4NkNBK0s3a1NRbWw1OGRUMjNi?=
 =?utf-8?B?VC9hdkl3VHdvTlp5MURYSnJUSTYzU3hDNFE5SEpFTjJ3NUR0U2RBTjErakxM?=
 =?utf-8?B?a0R0eDlBVENXT3JDVW9RZ0x4M0JmZm1tSVFZb1owQ3c3QkhmRzFLNHBNb01t?=
 =?utf-8?B?U1kydDN2cEVrMVp1WUJuSXlyZ3N0TmxmYzM4KzFZUDFjV1duMElmZUx2NVlY?=
 =?utf-8?B?Q2FxTW9pY0RMZ3pMZ1RPMU8vY2RpV3ZTY1VVUzVTRzR0QUd3YzRFOGF4Y3Y3?=
 =?utf-8?B?dXg5NUFVczVmMmJvSlVocTVvakJSZkxMRkFockNrRHRveW5QSHo4Zkd5WHdY?=
 =?utf-8?B?RzBoblNNUk50a1NaQjNPck9DeXJEK20ydFZKdmo4RFhmUFRkaVZwS2JZMEVw?=
 =?utf-8?B?ckk3MThub2l2N1BYZmNxdW9oZ0t4ekQ1WGJZSmlyMkpRNUFXQTV3RWowQ0VV?=
 =?utf-8?B?akpDcktKRmdwbGIveW4vQWtJSDMyaU1NZW44TTdVUFpLYjJpaCtydndrcGdq?=
 =?utf-8?B?YitVajM0NXZJR1UzbVUyVDAvOHhKaVFyWHllczNoZkRvbkYrc3htamxXU0sx?=
 =?utf-8?B?eDVVUGtTNEcvbWVtY29hY2R0MkxJYXhINDM2cG1ETXZObXloZVVTY0xPK1Fv?=
 =?utf-8?B?WUI1WkswUUxUZXJmelo4RU1sVFlaMWhVbWVuMnl2ckU5dGtPU2xOV0xHazhJ?=
 =?utf-8?B?SGxORTZPdERZL1dmRGUrL0RUOERrRG5HeGF2bllQWkdEOE1hSU5vd2pBdkJy?=
 =?utf-8?B?UVJSN21PTzVpaWVGTkZ5S2Fva2FkTURmL2hXSjNTZFNWdW8xS1hlb0FLQ3NK?=
 =?utf-8?B?Z080YW9YcGRBWFNqaGpxekk2eTB2SGgxR3ZBZWlLZkNKK2xEYXFjSzdhMGpI?=
 =?utf-8?B?c0xQc2U3TWxxMC9ITmJPelU5bUVFVG1zNWhTcnNOOXFqS1A0R3pYQTVOMkZK?=
 =?utf-8?B?dXlCTUV1YVlaeDZsdWlzTHkrUlBOVFBKZHZmbVRjS0FQSy9iUTNzTUN2ek5a?=
 =?utf-8?B?N2dUbmFFTG5ZQ0EwTzgwTDc2cXFXeUd5endRcUxyMzB4ZVZ1Z0M2M3pFdVVK?=
 =?utf-8?B?NXBkcGNiVkRDZjBpT0RNQlcvUUxaR2xGN2hCWnk3b1RIV3N4dWZ1SEpzT1ZK?=
 =?utf-8?B?cC93TFpsalpoQTR1MWQwV1d0UHNSa2R6M0NoTjdpMFNCekhVbFVlZzMvQWxB?=
 =?utf-8?B?VHVpWWQ5Z0N6b0lxa0VjSDJabEcrVTV2c1hSYWsydmh1L0NjSXpHNDE1Vi9L?=
 =?utf-8?B?dmNBNVJFT2RneHBJVUplSXFlWnNsVkdzZHFCbFZaUFEyY3Btd0Q3QUx3VGVO?=
 =?utf-8?Q?c0QE=3D?=
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)(366016)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bVdERVBpWFlabWZ0dzB5Mmt2TzVhNkQwN0Y0Ym01SHdFOC93WTlIeEJuK2Z0?=
 =?utf-8?B?SnFPWnlINjNMTzhoRUN4SVNML3ROSS9LUG54WlNGb2dBcWdpRTlDemZuT0dM?=
 =?utf-8?B?bEQrV2NMYWEzQXgxSHh2NmFDczFYOHJmVzdXVGR6c1o4TkhMbUZmZzd1VWs4?=
 =?utf-8?B?VlNzTWpobFZOTHdDS0xlYjNSeUk1U3F5dXFWNk93RnA1TTZrcmN4ZkoxY0x5?=
 =?utf-8?B?RVYydzIvUmI3Z1dDSFJwTjJwVUJlL0NRV3BqTE5ubyt1YkZrL0gyVGcwSlE5?=
 =?utf-8?B?ZUFmbWRqbUV0M3NUdHNMWGtwSFBHWFM2eDM1Tnl0NmIyMEZKRXdRUit3MjN6?=
 =?utf-8?B?NForbTRjNlRmUmdYRyszUFRVR3o4bTNHWmxqRVM3QzlRdmt5T21GbmpiaVF3?=
 =?utf-8?B?cnI4TlYzdDVCN3V4c3ZldVhNZ0c5eXZkQVNwTGNRNG5HYVk0NWE3R1RFZGFO?=
 =?utf-8?B?b2RxT1lyZkRjY0FtNFNLcHpQQXNsTmxqM3ByWDY2ZDllZzZnWkllWlJoNzR6?=
 =?utf-8?B?K2pyeFpUK25hbVVBZEJ5ZzFIVlZBK2VGVCtLVHhjMFI4Uyt1MlpBS29XN3pB?=
 =?utf-8?B?N1FEckpmbko1TVFCNk41aHRWVTFIWFV5UVBTNWtLTDRvUUNMQnpNamQxTkhs?=
 =?utf-8?B?QWE5RkFscDkyQWVqSjRwV0UrcHpzRDg3aUN1L09DZGdvWEw3UjhQVnhxVDhh?=
 =?utf-8?B?WDNTUVAzdGptNGJRRWNadGorczAxWUZxeFhiaWZaOFZGN1Q2NGlFMk5WMVBF?=
 =?utf-8?B?REJEcGw4TXJUcTgwbG5VdUlJZk1YNThzN1Z2MlVVWCt0cmpoMjRhVVJMTE5u?=
 =?utf-8?B?Z2xPOHJ6cENYK1pEL0tzekU1bnhlRVBvMjAwT1Y4NzhYN2JJazg5YytPVURN?=
 =?utf-8?B?TWNDeCsrUnRabjM0V0JVSjV6Y3I2Zlg3Yzl2cEdlQlNEZS9MRkVVQkdVbUxC?=
 =?utf-8?B?eDFrWGlWcmY3WHdIeXV1SmJuYVA3RC9XSExMQlVuVkNVQUpldngyR3pvV3Rt?=
 =?utf-8?B?NHUwWU5GNWc5ZFZCdGwrWTlwa3VlMW8wK3Z2alhKc3lpRUVSSWoxZVg1bWRW?=
 =?utf-8?B?TFJHN0JLWGg2VFAySFRIMnhiU01FSi84eDVTY05qWnY2cGxybzlXTEVOeFlz?=
 =?utf-8?B?SDFDNGNDSHdPTktuZGZYVG9tSDVZa2NyU1pCRU94Q2tIY0c3MVQ5MEJLTGI0?=
 =?utf-8?B?K1I3RDlXVnhwTEhoU1lJZTlIVTR2YUJBbnRqMEt0NGU5eFZDbWRlcFJsWXN1?=
 =?utf-8?B?Y2t3MEM1TmVPdnYwbnZBQXVUSHUwYnZFS1ZRYVdnemYvT1VYM3diMXYzU053?=
 =?utf-8?B?N3VnQVFDQmxETFh5ZUxkVlhoVkFTQ2F6cjM1VVd4YWdVZmFLSFdCdUg2R1R4?=
 =?utf-8?B?TWJyT1YwOEttZEtDdUZYOXhYRTNKVjFLbU5OYUN3ZnRaUWFTKzZVajNrTFJy?=
 =?utf-8?B?czlpOERyRG9TcWc3dnVtVUJwOGNSLzREMkNZQXhyY0xIQTZhVTFka3NYMDg0?=
 =?utf-8?B?dnNmQmZHeGJkWUZHNk51dXJRRldzMTkwWCtMQWNRYWloV3hjZ3lXbHk4UWo4?=
 =?utf-8?B?cHVlVnlEcitRc2VSVE1Ha0lRR0diK0llZSsyb1NzdzFHOFA0ZVh4emJEckFJ?=
 =?utf-8?B?dGMzVkQ5c0toOWNlRzBrcWV4a0RGUjZ0eFhYdW1mK3M4cFhVazJSUWlUVHZD?=
 =?utf-8?B?b3JJaGlNeXNNcit6cHlZaTVRQ0F4eWJUWTdXYlFWbjU4UGU4Rmp5S2FkalJj?=
 =?utf-8?B?b2VKWFkxZjNSRDdkSTNEME1IV3lGZnRISjlNTUpsV2tmZmVLWUtDZklHajgw?=
 =?utf-8?B?dCtUYWFsdVgvT2s5L2hUaFZyUGVwTjJoOEFLaHNzWmFleC9kWVM2Ri9HdHIy?=
 =?utf-8?B?QW82UTMzVmZFRzhoZzZBL0laZFM2bzRlZzBZWjQwSzV0ZUx3S3ZoMmUwY3R5?=
 =?utf-8?B?dDF4bjBkRXZ5d0lqM3paWTBmbXp3dy9oMGo4Ujk3NEl0WlFwNW9CRGdzT09H?=
 =?utf-8?B?SVBMYnFEbTdacUF4dVNFcmtENUJuNUhZRFZobkJ4UWw2dWMvRXMxN3dURzhZ?=
 =?utf-8?B?R3Z3TkRpN0s4enNSRDlaM3d2STBjQVNWRTZSekhOa3NCZmVYMzZrSDJ1RFRZ?=
 =?utf-8?B?T01nd1ZSN2lrZE42dk9zaUUwQnBCNlN4UnVmNG5Wa1BGbHNSZjVxRi9zZklL?=
 =?utf-8?B?QndIRkV3TkZTOWNibEF3QjZWTTZwVFlzbHlMVHY2UWxPd1FXVlpiSW1lVWVt?=
 =?utf-8?B?eTlncFhOejVOc3lYTEV5Z1RuN3ZQQmc3cmZLeVk4emlrbTJWczBJRHU2Lzdm?=
 =?utf-8?B?eUdJRjZqYVZEaGVxRUMxREhQUDBGeUNBQzJFOGNaa0ZqbHFCRHZyZz09?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 8057de85-c57d-46e6-3aab-08de641eb22b
X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 18:53:33.5711
 (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: bn8zWyXjfURZZWpZ8USJ9E9fy+x9qqoK6hkqYi0fqroGsjUFnlJdA2VuDyDV2paTFNxcyZJZDYggHvdx+jLsrw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB8163
X-OriginatorOrg: intel.com

On 2/4/2026 1:17 AM, Shashank Balaji wrote:

> __x2apic_disable disables x2apic only if boot_cpu_has(X86_FEATURE_APIC)
> and x2apic is already enabled. 

I meant the X86_FEATURE_X2APIC and not X86_FEATURE_APIC. But, thinking
about it more, checking that the CPU is really in X2APIC mode by reading
the MSR is good enough.

> x2apic_enabled also does the same checks,
> the only difference being, it uses rdmsrq_safe instead of just rdmsrq,
> which is what __x2apic_disable uses. The safe version is because of
> Boris' suggestion [1]. If that's applicable here as well, then rdmsrq in
> __x2apic_disable should be changed to rdmsrq_safe.

I don't know if there is a strong justification for changing to
rdmsrq_safe() over here. Also, that would be beyond the scope of this
patch. In general, it's better to avoid such changes unless an actual
issue pops up.

> 
>> I considered if an error message should be printed along with this. But,
>> I am not sure if it can really be called a firmware issue. It's probably
>> just that newer CPUs might have started defaulting to x2apic on.
>>
>> Can you specify what platform you are encountering this?
> 
> 
> I'm not sure it's the CPU defaulting to x2apic on. As per Section
> 12.12.5.1 of the Intel SDM:
> 
> 	On coming out of reset, the local APIC unit is enabled and is in
> 	the xAPIC mode: IA32_APIC_BASE[EN]=1 and IA32_APIC_BASE[EXTD]=0.
> 
> So, the CPU should be turning on in xapic mode. In fact, when x2apic is
> disabled in the firmware, this problem doesn't happen.
> 

It's a bit odd then that the firmware chooses to enable x2apic without
the OS requesting it.

Linux maintains a concept of X2APIC_ON_LOCKED in x2apic_state which is
based on the hardware preference to keep the apic in X2APIC mode.

When you have x2apic enabled in firmware, but the system is in XAPIC
mode, can you read the values in MSR_IA32_ARCH_CAPABILITIES and
MSR_IA32_XAPIC_DISABLE_STATUS?

XAPIC shouldn't be disabled because you are running in that mode. But,
it would be good to confirm.


> Either way, a pr_warn maybe helpful. How about "x2apic re-enabled by the
> firmware during resume. Disabling\n"?

I mainly want to make sure the firmware is really at fault before we add
such a print. But it seems likely now that the firmware messed up.




From xen-devel-bounces@lists.xenproject.org Wed Feb 04 23:30:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 23:30:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221237.1529499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnmKA-0000pa-3Z; Wed, 04 Feb 2026 23:30:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221237.1529499; Wed, 04 Feb 2026 23:30: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 1vnmK9-0000pS-V2; Wed, 04 Feb 2026 23:30:17 +0000
Received: by outflank-mailman (input) for mailman id 1221237;
 Wed, 04 Feb 2026 23:30: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=JUtr=AI=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vnmK7-0000pM-Jb
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 23:30: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 71680c11-0221-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 00:30:09 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id AD23642A72;
 Wed,  4 Feb 2026 23:30:07 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2F59EC4CEF7;
 Wed,  4 Feb 2026 23:30: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: 71680c11-0221-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770247807;
	bh=K1XBJ+iPf0+mEXtlRmo6IsXFzXYMryUhBxLSvA+haUY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OWXVcgk2Re679D7ZYNZEw3FS/uugHAWb5mzmRfwWVaDlSBqtoE95wt79Fw6ZjlfxA
	 3ymveDyhONgh5OXoA09GOHnqrWsH0tPNpvRysVA+bQC9W8x136QUFM9E1B3fquF1gT
	 1wCgfyv1a03VPqNUBwFLPZLrZ8OocyY2iubDHD8o7ql8Et7LjtHAM6a5eIwNhZGL8B
	 QoZ+73pXfVQEAMohdPYjQb45crRqQq+LUxI9G2fRT/f8J50wBg1uh71S05adiPZTjM
	 lGfGrQpPdVSJ/6LiCJ2XHaorNom3uZKMvFQL8DnzL2OzPLhfQw0pbb46jvfJkOT24s
	 b1y0RIQEAuYiQ==
Date: Wed, 4 Feb 2026 15:30:05 -0800 (PST)
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>, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    grygorii_strashko@epam.com, anthony.perard@vates.tech, 
    michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com, 
    jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v8 1/2] xen/console: handle multiple domains using
 console_io hypercalls
In-Reply-To: <0a437580-a373-4aeb-a153-b3dca0cf2bb7@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602041524120.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2601291404410.2238666@ubuntu-linux-20-04-desktop> <20260129220858.2371938-1-stefano.stabellini@amd.com> <0fc9a80a-8621-4ce4-b2f9-c102e975b05b@suse.com> <alpine.DEB.2.22.394.2602031502000.3175371@ubuntu-linux-20-04-desktop>
 <0a437580-a373-4aeb-a153-b3dca0cf2bb7@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, 4 Feb 2026, Jan Beulich wrote:
> On 04.02.2026 00:02, Stefano Stabellini wrote:
> > On Tue, 3 Feb 2026, Jan Beulich wrote:
> >> On 29.01.2026 23:08, Stefano Stabellini wrote:
> >>> @@ -555,7 +566,10 @@ static void console_switch_input(void)
> >>>  
> >>>          if ( next_rx++ >= max_console_rx )
> >>>          {
> >>> +            nrspin_lock_irq(&console_lock);
> >>
> >> As indicated earlier, you can't know IRQ state in anything down the call
> >> tree from serial_rx().
> > 
> > I'll switch to the irqsave/restore versions in console_switch_input
> 
> I've seen that you already sent v9, but seeing how getting the locking right
> has proven to be difficult, I have two more remarks towards this.
> 
> 1) Can the locking additions to existing code please be split out into a
>    separate patch?

I did this


> 2) As all of this is for dom0less only (for now at least), did you consider
>    to make all of these changes dependent upon a new Kconfig option, so to
>    avoid impacting other environments in case issues remain when this has
>    gone in?

Effectively it is already the case because:

#define max_console_rx (max_init_domid + 1)

I could easily add an #ifdef around is_focus_domain() so that in case
CONFIG_DOM0LESS_BOOT is disabled it defaults to is_hardware_domain() but
that wouldn't really help because thanks to the definition of
max_console_rx, effectively it works the same way when
CONFIG_DOM0LESS_BOOT is disabled.

I think what you are asking would be more about the locking changes in
guest_console_write, but for those I cannot really use #ifdef to retain
the current position of the locks. The resulting code would not be good.

So I decided to not make any changes in this regard. However, I am happy
to #ifdef is_focus_domain() although as I said I don't think it would
bring much value.


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 23:36:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 23:36:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221245.1529509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnmPq-0001OL-LZ; Wed, 04 Feb 2026 23:36:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221245.1529509; Wed, 04 Feb 2026 23: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 1vnmPq-0001OE-I3; Wed, 04 Feb 2026 23:36:10 +0000
Received: by outflank-mailman (input) for mailman id 1221245;
 Wed, 04 Feb 2026 23: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=gU/K=AI=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnmPp-0001O8-GS
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 23:36:09 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46d61af7-0222-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 00:36:06 +0100 (CET)
Received: from BN9P221CA0028.NAMP221.PROD.OUTLOOK.COM (2603:10b6:408:10a::10)
 by IA1PR12MB8518.namprd12.prod.outlook.com (2603:10b6:208:447::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Wed, 4 Feb
 2026 23:36:01 +0000
Received: from BN1PEPF00006002.namprd05.prod.outlook.com
 (2603:10b6:408:10a:cafe::43) by BN9P221CA0028.outlook.office365.com
 (2603:10b6:408:10a::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Wed,
 4 Feb 2026 23:35:59 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF00006002.mail.protection.outlook.com (10.167.243.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Wed, 4 Feb 2026 23:36:00 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 17:36:00 -0600
Received: from ubuntu-20.04.2-arm64.shared (10.180.168.240) by
 satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.17 via Frontend Transport; Wed, 4 Feb 2026 17:35:59 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 46d61af7-0222-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SEDrOC5uboCEg3H5bgNf6bwFT3Wqo1CJUtOs7Cm/NRoDXj59s+uGHFl5U/WW0cNex+60NbYvJuK+4OiHQt7TvCk+DJt7vW78quXf9ZoIQ8vdxrj6nmefVCy59iJ1WhuAyxI6uJqO2GM27kguy/itFFg8EK6OE4B3lk4CUTvKdjtawLdkHmmr9n+AvJww7kMKoHMlMtaMJG4puf5gjc3HUVbn144KZwjQB6A0fRfXbYmBIopHGF3Jw6byLaw9MzXfW6X+GiERtcadAyGhIWI1yu8HzSTD/s1dp09Rw79jXnOVlAUV5kI2sLmRmxtyvhEIFXIAOR0h5QY/txX38LXJaw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zPcvXu5VCYMukLaN255k/MTEnsytblLlj+oHAvHnX7g=;
 b=RSCem+zR2I26Ll6bHeLoXpH7z/lT5BT26406f6HQiEljl84Fn5eMD9aetKiAa0YObpl5HGe9tOlqXuv+9o1s8m1u1BP95MVK53r9y4Lp5nAx61Yy5AKX1nHwK2K7HsJNBdVaRp0q4prRsG/Ak56uw42qWw2ZwYLlby/ezssJ+bdN1UIqGvzTyNnSyGKnkla0yzwboFr/YWm4lqzfVWwkknIH8S1pWqQB4DTtae26rm8rqpkJoeOyizbvbQfgirETIK/9n7qCcNWqgNIvPlR3RnFLqTntKxzyAutUXoqliTMT5wXjcCN8VnkWTVc79eYMBU9WGnUqOIEJc2uBbZuNuw==
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=zPcvXu5VCYMukLaN255k/MTEnsytblLlj+oHAvHnX7g=;
 b=yTs8wfdgp9kvhq+v92Kug+S4aJpD25MNTsqOW/aEYYi0/cJxymWNFy8drF4tr+Ns5JPVWjIkhMqJXF0uu3j6k2BZbNIPg+xE8EMV7fHBWSXkIFCB+ku/CgCnk15B/2rArPQ2iwyURqcSciTWvBwToCqfzWoHgR/gMKVFlxHCuLA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Date: Wed, 4 Feb 2026 15:35:59 -0800
From: Stefano Stabellini <stefano.stabellini@amd.com>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.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>, Jason Andryuk
	<jason.andryuk@amd.com>, Victor Lira <victorm.lira@amd.com>,
	<andrew.cooper3@citrix.com>, <jbeulich@suse.com>, <sstabellini@kernel.org>
Subject: [PATCH v10 0/5] xen: console_io for dom0less guests
Message-ID: <alpine.DEB.2.22.394.2602041533440.3175371@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: BN1PEPF00006002:EE_|IA1PR12MB8518:EE_
X-MS-Office365-Filtering-Correlation-Id: b45763f3-2e12-4a42-3285-08de6446277f
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?IQ8e4kX8Pt9VDdeTeNPzriR5Q+ueRXiSxWN1XOKu5KVBdlp8Kqb8uvv7lDdG?=
 =?us-ascii?Q?64RWjN7NNRo0WVK0Ih7z2a8yBprh3iRUFWka4K3mVbyAPrF9hdz2BTCuXCJs?=
 =?us-ascii?Q?8I5sU+7rg6uq27TyZM806/lbWiAx/Q2dCXrVpfcP15dM3K0Ymx62Y08aTH3m?=
 =?us-ascii?Q?3/q4mS8SFCZwuFhygG3wlSwR4mqgZ8ucIXHjtkYF9oUGELHFk+LmLNGBVh8T?=
 =?us-ascii?Q?0r/HXKYY5tOKdSJrkpmUqxe2BppNrCq88PRDz0yfFQS1K7Un0+rE00TduEwS?=
 =?us-ascii?Q?mk603hdWhbyMberrRUnbHsisRbypqXtMeY7u3EkB9c4pNBEp4+45annfa0X6?=
 =?us-ascii?Q?hlzGhDOCma61njMOgS22RFQ542yBJR1KFUfp9uqxv+y8o5E+sslDVQeZP/4q?=
 =?us-ascii?Q?yLpub4B97nooAJTtFfIAy6eaNZH6nVHnpvCdw/0t/kPecKztojgZGUU88wel?=
 =?us-ascii?Q?z9A/DhfIZ140fo9aIBDwFJnkZkHum939h7Xv/AqhRMRqNdCOiEUs1DgC/ct4?=
 =?us-ascii?Q?i8vor8Ow0vvzREKlFNXmkXenbRYtLfelYdSxjnflGJ2/nUixZOKk2hp1AXVs?=
 =?us-ascii?Q?b6JlV/QoNPGggwe1vzS25NaC4KsxBOqSaK767BLPzti0zI+V4tXjFeWrfn9l?=
 =?us-ascii?Q?ZxeZ/n0IvkJHO4l49u01Ij6gbJHfbWLJSbbLT5kEoJI9jKPRs3QHNxCOyq8a?=
 =?us-ascii?Q?wkON+FSxr4YwnQBeNlJxT/dvj4yz6ERNj419XKuPJxuX89ZisYx2292VSJK0?=
 =?us-ascii?Q?JiBlU723DpUwqtPB9OurrvDA8pSw+r8HjYPt/kb4sxAgG+BAQXmayC3hcdDa?=
 =?us-ascii?Q?95gFxTvMqMv8x0vVAtAyh6cIedrKK4RvcGBLbNy/7uLXGss16Kpx8W5n1BPB?=
 =?us-ascii?Q?Usny/M0x07VnGbOBcbz5D9YL9K0uAY+kVgWAbmF6B//eXAi2JAFd62CYPPhd?=
 =?us-ascii?Q?qmr+57wvUcnfCKLKfzuCC3/FZDi2kQJzIViCLs3wCGA/xxziyDS1Q4B7uYcL?=
 =?us-ascii?Q?pP1NlnguVmmIG2MDCag/LddEIb7TgT8MM5B8GgIRYouMRsQ89uumqHf/kmfF?=
 =?us-ascii?Q?83UAtP9HTmPGbpr3FtcqN97k2dLEbCPt68Hf0tJrSTNTasZo49ljKp7OS/x1?=
 =?us-ascii?Q?5c0nnacBp4a9Avgj3U0/4x/AZ6jYrmJmVBjLCK7vvgKEp7mUXbRIrSLMFbmE?=
 =?us-ascii?Q?TTEnxPrlDTXssMHdK4UQTL7tYBmi9DP+7PvnEQRLTuehof4fkojd/rnlaFVm?=
 =?us-ascii?Q?J63WTcg0am3eqXguH2VFKuaQJ8NiD0MJTv5a/F3FwyP4z8smDnKmO35Bs+yW?=
 =?us-ascii?Q?MblCGcvPvL1k2I+8Kd6ngsp3fOo23BVZ4J5HFSddhlsn3a2gwr54APvlPqjW?=
 =?us-ascii?Q?ogl3rqwaE13F3Ff75gqLNuqhaBH911bgNXTSpV48sF6xvPwirnnkia37UWyR?=
 =?us-ascii?Q?eFCVs2SKUgxxRneB+S7hZSuIBMEHmkd0CA+innggPYsnkeHTtVXhsU5/z19H?=
 =?us-ascii?Q?cdxFPoLZffmev1F8zXtsV5Seg4XrWNxeP4k4qO9AhyTwTwk04IOlBnddF6U+?=
 =?us-ascii?Q?Wr5wsF8UiIiDSyD1AM9RrQ0KCmgL8JKMw+g5OlgU9rJ3PCRR759CrXNQzjjB?=
 =?us-ascii?Q?4NL8OFWa9WNGWI+vpb9J3hCklCaS0ZA8DcFyZ7rhya9xbKWZzWE1gmcV8ESe?=
 =?us-ascii?Q?NQ28pg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zqCSik53noERWm9W9ACJKWvB88HSl4fJO8ZxOdPsgmedDu1drjDoxidB+LOIfyBvKXHbvOggvwciSdxkC3CXIK+1MNSwQhKl0U64ZAwyu5gq3gLeki9H3PlHCbjzADAOqfHPACZLwXgjxPc/sDaZTb8kL77r5x5ozgajWGDlN7BvdY8CKKxi7nhdteG++FFhIkcdfS1uJ8+0WHlYBeKezsN4S6XL66eaxEbn/tRx4dKg0ZZ4lhqB5+TLtmYwST49Oxf7Iqcr2aYwbR0BnY7/HNrqFm1mLBWGepEISzppyGxThxZT/ddj/VFOsJrUjxBwloz6BpemZ0e5JkRceD9K8K9ZSvpv9PESYODHkPe0GFU3vXLEGXpfaRQCXeEQq6iD82TEfJEzetPhhOpWzFPXBBMIh62LdNyx+yDAAXTJdGagcnZdjUx1D3AcI4cIW6ZM
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 23:36:00.5901
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b45763f3-2e12-4a42-3285-08de6446277f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006002.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8518

Hi all,

This short patch series enable the usage of console_io hypercalls for
dom0less guests.

Cheers,

Stefano


From xen-devel-bounces@lists.xenproject.org Wed Feb 04 23:37:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 23:37:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221252.1529518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnmR3-0001wX-TD; Wed, 04 Feb 2026 23:37:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221252.1529518; Wed, 04 Feb 2026 23:37: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 1vnmR3-0001wQ-Qf; Wed, 04 Feb 2026 23:37:25 +0000
Received: by outflank-mailman (input) for mailman id 1221252;
 Wed, 04 Feb 2026 23:37: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=gU/K=AI=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnmR2-0001wI-S5
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 23:37:24 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 738610a5-0222-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 00:37:22 +0100 (CET)
Received: from PH8PR07CA0034.namprd07.prod.outlook.com (2603:10b6:510:2cf::15)
 by DS0PR12MB8813.namprd12.prod.outlook.com (2603:10b6:8:14e::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Wed, 4 Feb
 2026 23:37:18 +0000
Received: from SA2PEPF000015CB.namprd03.prod.outlook.com
 (2603:10b6:510:2cf:cafe::d3) by PH8PR07CA0034.outlook.office365.com
 (2603:10b6:510:2cf::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Wed,
 4 Feb 2026 23:37:15 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF000015CB.mail.protection.outlook.com (10.167.241.201) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Wed, 4 Feb 2026 23:37:16 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 17:37:16 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 15:37:16 -0800
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 4 Feb 2026 17:37:15 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 738610a5-0222-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eOWXyyGaMVmZ+SGeqsqzJgedQg644vcPFTtJhiy3oC73xLnMoFbg7U2Y0EsWHFCHpJP0y7oBtx5JEIoCWIcQMo1NtYi49ebIyrvZIn3YtV5+DCicB657d8jE5T4G5hobiJobGFfO3pqMySXXLhZMVq9D1NKTxFDBnKx1XCgo88A5rXEGAywK3I9GGx25QdplrBzqzQi+zcY0QvAo+fFlO9d/HW1XA+endkm5VEvOUsUkTFytlGne19Lr44ABmqc8eXR9cscYTPrvZqVsoLWqkn7MchbIWTOc1WrSt/01kfrijnpeEW21fv/xaXyhjXx9zTXVQtyocSaiiJBz8ut5xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7MFwuvb8+rgtwgN4iWI9ztcKuHcy7B3bPq6D5eSNPBM=;
 b=kMy7d44dpvTcIETOfTL9QTzMpOdMzBG0b1hw/JUYLKqmwopMmybcb4B/xJJcUKC+a0d3DdSPUQ+UuG9H/J+XeGgUeGmyV3ykByiSONYeUaxSr4/vfDF7fJwiUMXrqL4RLSX9SKmCjuk6TZ/t9SVkcp01KZScjXmlNayHr2xJfHDGx+R60fXU6cMIlUFxzrTT07CuaK73uQWfTD/cO2marp/yw33J5lY5Dv3AXwQl+dTCNx3oWoC/3vNjdABlwCdvf0h3KZlzqWqt7hnO9v56VqrDMUu7s3TqL8iFWKqA1YJQ66W7xBN2j3+wzkrmaDAKA8MCx/v5yts94ySpGGCoFA==
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=7MFwuvb8+rgtwgN4iWI9ztcKuHcy7B3bPq6D5eSNPBM=;
 b=vtWsPxowl+bEnV+jV+fLdpgwVhrJx0ppgIyD2WSzP3Yq1jcafvi8pFoichXadX1FNrZ280On/sMovqUdjjcr5eoBR5Cb9IVQntcfQGRUPVcWtmkaWgNjmjqI94i6/C5TaBndNJoQpRTYw3kjHRYJLay4Q8i7gUqXelVicX0Ewao=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow non-hwdom binding
Date: Wed, 4 Feb 2026 15:37:09 -0800
Message-ID: <20260204233712.3396752-2-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CB:EE_|DS0PR12MB8813:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d1a508a-bca5-4518-0af0-08de644654f1
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?m6QZibMyGtulUGtjPx/hDDDVkTMQc1f+xz+z0NzpU50IystHdwbWOOy3sHWr?=
 =?us-ascii?Q?NZ/Y2VD/V1PLFX3NU2WpFSk1Vt5T3ZbrMq2nIb55ZwWXh3t9zSGMg8uaHjnd?=
 =?us-ascii?Q?hhZ7otTXKLzVVxgR8vBZJ2Y7dPJIt70b6K/0Iz5yStBWU38BoCL0vUmDTKsq?=
 =?us-ascii?Q?5pXwsiROJ3IBiQckEVdy/eTGPgNNfz/61IG8+FB2EyTPSe7hX4P9iTYA3Fzv?=
 =?us-ascii?Q?bUzMzx+yG/EHz/ymWzfmbj9WvDcPBpRXQwybkYBFv/PuX5A1fuuU5l9B5GMf?=
 =?us-ascii?Q?NuAgNZ+Dluej5wkT8k+052i5b/KIw+P2VnIiSOqieRADLCay/iZ9qhf1RBYG?=
 =?us-ascii?Q?tPF2/6T3x7CaEM2L+OWPCedxfGeb+ytLLH0IzOu+65Tv7pCVOAVY6Xkk9VKu?=
 =?us-ascii?Q?lFW4Zlft/1lxs+BSsNIK2UtI3nCCjmhSCvwMDRjuNafj2fvGmKoT+ctyY3D1?=
 =?us-ascii?Q?FeUSRandoAW7Hw5+FrpHrGmVhrROqDfLFrj7KRx2saf0IoUI4bVPTaUJncpj?=
 =?us-ascii?Q?GynO2LlmfGCKZ6ur/LfOlaC5mYUSDH4YcFnWYL6FMhGkx3rOEq82rj70hLdZ?=
 =?us-ascii?Q?t1OVnC596ZoD8ung4w4ZjVcNfWnzlt4UQnPHF2UAhJBqDHXQY6vheEOXiVzN?=
 =?us-ascii?Q?RflDE+z3CM0cVH2AF4zGdmWzMcXRafIkCgLGXMxx/5BlSsLJZbtw/xZlH/0d?=
 =?us-ascii?Q?jj+uj4aFmK69s1U8FTpcDE8a7kmwtSLmvnR88c7PbDHDS9jRZ/iHc5Ibkcum?=
 =?us-ascii?Q?q6KHHvaHw+90wSUH7onTeyEGBYSA78IESwCxsEwuL0T638N+Al+z6vIk3dQs?=
 =?us-ascii?Q?jJo4/9rAfrbHCKB6hkP94MME4+EyTK0R9n+/ouP4ch6CgdOa88Q4bnpz3cJl?=
 =?us-ascii?Q?ltkt+gPs3LgiQQA3QUEoPw11NXddI61xNmH6U/A7LSHjrimhJUwZA3/Ub2CA?=
 =?us-ascii?Q?+yFv/ZaK8ALvVO6LMGo7uOps/Bm4zqjSyVdIDbsAluiJxZwT8AlkQ6f0rSLF?=
 =?us-ascii?Q?D0gxHZ1iL+Bs0DX25Re0zylHbc2vTK+i2oEosqBRnDl+rXCOODJZGbx/xyaR?=
 =?us-ascii?Q?xw4waiUKf6yv83dPKmFEyBuDhEJCkJZmExqmA3ViUGRRfqb7iaYjCXVNu2xv?=
 =?us-ascii?Q?Ur+YWkbE5iJgd16slaIvTkOLpb4JC349bqXsKmDs9hdnQe0KNKZPsbDzwy0u?=
 =?us-ascii?Q?YIaNZg1yz05x2eOTxpe8QfF5FPIe8B33IaUp1FIwTNinPl/wOQYugSEiojqm?=
 =?us-ascii?Q?K8KztzM0D/kdTHCe9Py6LL5XC3Zw20BP+XFm1B5UpqfZ3TewMDfpFNG0f6aM?=
 =?us-ascii?Q?FAQvxq2fn+ze7SVWV6wPP6APAg5K/J+0jK8pjP3LGUI9Th5vU4M2X2XBt2I5?=
 =?us-ascii?Q?tYFa1E9Zo4F2dh4q2cZasR6XXyfTEXcsDQjrqyDyhw+/IR8LwrGKYoczSn3J?=
 =?us-ascii?Q?mhkvC174lL91GVnajbDKyegAu+dulrVKCzXoCt8XCS3CNBnOBdXx5Nd4DIEp?=
 =?us-ascii?Q?76wTcxZNOJ7L8iQcGtDPUDrPi4HK4Vrdk9jjDym8PetvTxVsxynODeVXMaT+?=
 =?us-ascii?Q?YW5ssXJq8K01/GgPuDuhy70tZ5Z03FyYO8SB8lD8rtPMlQ2vheP6ofHyqSU1?=
 =?us-ascii?Q?dH9QGN/UhNfL4nASOx/jf/oy/Z90nEzzODR3SuOXGlFnYlSELIHI8M3bq4NQ?=
 =?us-ascii?Q?xGUTTA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	AOLnCJM/lj8+fI4goO9tnLKUn1JsmE455ZnplaKwb2tLH9OXED45XCFLjR6lBoOXl2ywxfifcBaxFXqIHyxoIZem6BnQ5G0ohdXPxG0eJmTqlYVbBKDn4FTfawa3WzzValdrUZGFloQddBsOy6YTB9Y93bLZFRqid93dKMUDx/9FyT0Ubi5XKNVEYAgGN8a/5Z2pJdacQQdtcmZoWjjNTQ653+DtpGFA+98kjhTEfTdtNdf8t9SM1Dk4Vdp3K6lWfBABO/Sawlvc6CYE1TinGjmS38qYE7MEUgD/CkIJ6LmgNifDOSHGL40Ub88Y1kT0cGx6UEvOPoAwVuGUULgwxVSzNbGb+mvkXL03g4cKmmEwGk+0eOWpzXplE/82rSG0PYcjPK8ME4vtO9HvyieEj/fwxeU9m9RvDFiJZ2VYptUyuqTDWytusA5bskypGjDG
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 23:37:16.8044
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d1a508a-bca5-4518-0af0-08de644654f1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CB.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8813

Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
global to VIRQ_DOMAIN to allow other domains to bind to it.

Note that Linux silently falls back to polling when binding fails, which
masks the issue.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v10:
- update comment in xen/include/public/xen.h
---
 xen/common/event_channel.c | 1 +
 xen/drivers/char/console.c | 2 +-
 xen/include/public/xen.h   | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index a3d18bc464..f9becb4ca5 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -138,6 +138,7 @@ static enum virq_type get_virq_type(unsigned int virq)
         return VIRQ_VCPU;
 
     case VIRQ_ARGO:
+    case VIRQ_CONSOLE:
         return VIRQ_DOMAIN;
 
     case VIRQ_ARCH_0 ... VIRQ_ARCH_7:
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 35f541ca8e..fbc89ca2a4 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -613,7 +613,7 @@ static void __serial_rx(char c)
          * Always notify the hardware domain: prevents receive path from
          * getting stuck.
          */
-        send_global_virq(VIRQ_CONSOLE);
+        send_guest_domain_virq(d, VIRQ_CONSOLE);
     }
 #ifdef CONFIG_SBSA_VUART_CONSOLE
     else
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index b12fd10e63..b8146bd00a 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -176,7 +176,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
 /* ` enum virq { */
 #define VIRQ_TIMER      0  /* V. Timebase update, and/or requested timeout.  */
 #define VIRQ_DEBUG      1  /* V. Request guest to dump debug info.           */
-#define VIRQ_CONSOLE    2  /* G. Bytes received on emergency console.        */
+#define VIRQ_CONSOLE    2  /* D. Bytes received on Xen console.              */
 #define VIRQ_DOM_EXC    3  /* G. Exceptional event for some domain.          */
 #define VIRQ_TBUF       4  /* G. Trace buffer has records available.         */
 #define VIRQ_DEBUGGER   6  /* G. A domain has paused for debugging.          */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 23:37:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 23:37:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221253.1529528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnmR6-0002Ao-4w; Wed, 04 Feb 2026 23:37:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221253.1529528; Wed, 04 Feb 2026 23:37: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 1vnmR6-0002Ab-22; Wed, 04 Feb 2026 23:37:28 +0000
Received: by outflank-mailman (input) for mailman id 1221253;
 Wed, 04 Feb 2026 23:37: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=gU/K=AI=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnmR4-0001zb-FD
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 23:37:26 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7537a689-0222-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 00:37:24 +0100 (CET)
Received: from PH8PR07CA0033.namprd07.prod.outlook.com (2603:10b6:510:2cf::20)
 by LV8PR12MB9081.namprd12.prod.outlook.com (2603:10b6:408:188::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 23:37:20 +0000
Received: from SA2PEPF000015CB.namprd03.prod.outlook.com
 (2603:10b6:510:2cf:cafe::ac) by PH8PR07CA0033.outlook.office365.com
 (2603:10b6:510:2cf::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.13 via Frontend Transport; Wed,
 4 Feb 2026 23:37:18 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF000015CB.mail.protection.outlook.com (10.167.241.201) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Wed, 4 Feb 2026 23:37:19 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 17:37:19 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 17:37:19 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 4 Feb 2026 17:37:18 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7537a689-0222-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FliW+oRrlzbj5N4k8TI8NvCkYQvyXTYhokJtgDDR5kzCWfHKAdYMjOhf6aUGznN3yfslFcVIdFVKuIAv0EzGwc1a7JSa4Ki68rlfZSQqkYiKCRikkR5Oh5KU8Nq3Ve0B+4TGiCwAZmTn4gOUI51QZ1iZvQdxwur25aXiovx+HKup4I0kjRhYmrKS720n92d14KuwPPIERfHFp0ucqbRVerBLZ14UWn7vmLlN2P3fgjBS2+jAepD6Sqe22uxm6iTMe9qCuLwHCN1wbwRch0HVPW2udpnmpzu2FjS82kZED9MBtbadgWOTIZx5n5OPAHa7A1390KYe/m1TRSn151Xc+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=3YQTbuJVfM0sef3zdqjvdf8PT/yiTIdcCgsVM88URmI=;
 b=psa3Xm6kzFK/dlH+RcXG6s18ZyO8Fu+Ql7IVcOhxXqZWhUA2N5PHufdsXVoGDSepSOcCxKn5Hy5gToB2XkBedoqVddlO7ViEPxa07tfzYPCXrYrpCaNkvhG7yLz2BxOCyz8vEOiAAf2PFWEKn5xiHNhG83C4xCjMZDmSHAa/PP9QW55pcHA/G6Dl+JKoziM3Fn8muSPmJslXonoRm+XQYziunVf6jGFuxQ3+5sbOBrg8AAPBq1xOKIEwH0dKl9zkSW7cqV3g5Ky6X/W1IOlYzPLMBuFGTwzpiIUfM+ZfHL/c9OeoyeM5WgFD8dBAJeNzUuuWuuwhmyfdggEBX0y0mg==
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=3YQTbuJVfM0sef3zdqjvdf8PT/yiTIdcCgsVM88URmI=;
 b=w0NDRwwhvfCXdxdnF983Yc4SDGnR6TCDK4JV75QciuNGa7QWJV24X/O2NGNX8ADJ+b7HjV858H8QHBCQn0rcrWs1l1ILrL2nfdADSbPnTK5a/y6kFloFaCO3OHTU4bJfj3W2lb2N9SV8vNMgx2ZofryNcaEr/UDeugS1l0OPGqw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v10 5/5] xen: enable dom0less guests to use console_io hypercalls
Date: Wed, 4 Feb 2026 15:37:12 -0800
Message-ID: <20260204233712.3396752-5-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CB:EE_|LV8PR12MB9081:EE_
X-MS-Office365-Filtering-Correlation-Id: 667219e7-6117-4efd-f2a6-08de644656d1
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?6p1lYikMgf5hL9z7dgBMfC+myq5P4Sot3oLo6ykKNe+wYL5YB66Dc2X5WA0a?=
 =?us-ascii?Q?BSFOF58WVI4jTMWdfcztc2GeTqLfy7dt5DrbH7ZzzzNzBRqBN7dPEp/NFAUT?=
 =?us-ascii?Q?JrVOyUKBgvWb9D9i1ZjvH3XRRyYf7T7u9m8BgHpVwK9S0//1Y2dVlgtbhgP6?=
 =?us-ascii?Q?/2WOZX+lawy7rckBCaookGNv8nKAnfoJlZswAnipaU/mhdEZNgTuONThsP1d?=
 =?us-ascii?Q?Q9Um40g5S2uXiCqNlqrt3H2dUebopt2zbAnVUktUU6+JZgQFjvNuFh+3g+gy?=
 =?us-ascii?Q?qZDKaxAwZ98ilDcPbaFPV1JWfGtHrb/M6OyawCFIzTAHF6ArqtGIaQ2qZgk5?=
 =?us-ascii?Q?rV8B1YuKfLexJjWJi9axLtWdnx3WfKt2hUH+e5Vk17iKnNd2ftDMUNyY14a5?=
 =?us-ascii?Q?zdzth3cgVk+++HuadaAVZXPtMEQIzupAe++iznMoI0a73VkqCbiAb5PDsBqV?=
 =?us-ascii?Q?+86v83V2Kb1XSkestyW6uWz4VbxFJP4y4LVIn4dQzp8HSzME8HQuIFcMZurd?=
 =?us-ascii?Q?7yKH2hccFDx4bAs+ZIgvSBMmgaS8gH2yqEZDqWUDkVYRPttj/+Ew117W/EM9?=
 =?us-ascii?Q?R5+nv9ttJV9U0MMQ3cX0k1AtaoluaFowcg9cwMoQhlcRMFrj5rYipuxYacGQ?=
 =?us-ascii?Q?GGHsMFM1S+nem4PEwAA9I4WNlmL6gK2GvWrqe3HeUt502lIHAoHMbHu3REiX?=
 =?us-ascii?Q?nYCrWL1QxzFCoZOZpRYwWC21plXMGrzsK+JeWYyB+EHE9PkdzyFtYfmFjGcN?=
 =?us-ascii?Q?uS0Fgi3gDlD5QlxiWDm969RO0YHiNYd1wXynbUOAMrfxKnBZietafSYnuQyE?=
 =?us-ascii?Q?cLwMwgQWnRR3axGbRJU4shdLmiyJk8jnuD6x6icsuT+QEZKu+hSxBJgjQ94c?=
 =?us-ascii?Q?2li29e7ablxpL3jYRfuMwMUOymdabEQYusAEHXEK8SIIKENpiXJOjhdkBZ7z?=
 =?us-ascii?Q?IGNeTQtbNygSRnX/g22GQteXu0Q2VObJIV/FlbmoRZp7DFPlZkyQd7solmuO?=
 =?us-ascii?Q?/V5lIuuKlfZ2VDnd7r/9NHOD3Xz8RrP8/k0X6YOk6oC3uQLG+S/TXWSxPI+H?=
 =?us-ascii?Q?rFYVJSufDEmH9y9N7ZagX8UApc+6vRWpQg+qbP2jIik1nRFKvYeuWUdUdx9A?=
 =?us-ascii?Q?9MUvfQjGisdKsJUd9f7VyqWv9LAEwDKqAKyJUe8Z8XLjZLOMcmixYcK8tUWt?=
 =?us-ascii?Q?7NlI/wf+WE4eB4nxglPWA3eFMbC/KiRCB7bn/7XsHsdap7pyrPo+rUfvGSIF?=
 =?us-ascii?Q?4S4DmZ9emiwZMboQr3aXzx2zXLVLyyYWe1rC4tpNrO8xgKluftzJUi5cdlpd?=
 =?us-ascii?Q?Yc1Q3vVBncVk5VvUzvy88Jcs/AdDNr/HhyVoddGaYScG4y3mXrOn+giPVNNe?=
 =?us-ascii?Q?ZWpAd12jj8yZmtUQPOn7D57b3Mwrsm5yeFElbG7tc+WEJGZkHrbRaYyapVz/?=
 =?us-ascii?Q?7MhkJiOmp8vjnsKBTqoKtdZ5K/VWeRKrZdpLl69Y2CnpVNgQCcHtgkN3Q5bT?=
 =?us-ascii?Q?bvYRYWgiV06i3o/JUQiELWGoolAw09ppCL0oN8p+MSy1vzlN7UmbYyncrSFA?=
 =?us-ascii?Q?Hcld6riFhuLUaKnmsirTsDe9NEc/UjdpS4nqr1L52ytPTyOHXc3g7/ubdVBd?=
 =?us-ascii?Q?+v0ABE0EtqznOV0d7pPHsjg+JlU5qzWA29CiyjswKdvyqcDtjs5eX1ykrwqt?=
 =?us-ascii?Q?IGwiAw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	2+9wX8DY0f821lFtAN/xmgdaGhpypnAMB3xYzY6ymyNll4kod+/6hdlsGkKLt5mYj0tcH6PWP6U0boxa8oi5ktHcjiq0v+b4ggk/xbfSM4WNBMAQZU+eioBFQIkAZrpJ/Y682DT/lg9Yx+d0Bj6xsXu1PC/SLjCI/8EYlpop8ZuLWCzXoMKjCbCYr/rmagKj/RD3w4iI0YUAmbvbCkAMTXl4XbJrGztpvyC9HLvqvQQBuFYBltFou5HLXpi1uI0RbfrPuCV/axbRxs9T7TzRKrS633r/cVTG9mhIDsBJ0+qsri/OMHMn4gJ1kcqYCl+uO/IB6v7LZCagsJFfc8Cu2HoLWrlp6uS3YGfjeOSpq8MknszIQoZXzM45P+CZSUruAEAmOuW44WyjJ7okiy9QwZJDeiDvPiuhrgy3fA43UidDyYI/lJIOrppMUSPC3Qrw
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 23:37:19.9609
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 667219e7-6117-4efd-f2a6-08de644656d1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CB.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9081

Enable dom0less guests on ARM to use console_io hypercalls:
- set input_allow = true for dom0less domains
- update the in-code comment in console.c
- prioritize the VUART check to retain the same behavior as today

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
 xen/common/device-tree/dom0less-build.c |  2 ++
 xen/drivers/char/console.c              | 16 ++++++++++------
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 840d14419d..cb7026fa7e 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -829,6 +829,8 @@ static int __init construct_domU(struct kernel_info *kinfo,
 
     rangeset_destroy(kinfo->xen_reg_assigned);
 
+    d->console->input_allowed = true;
+
     return rc;
 }
 
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index d3ce925131..7f0c3d8376 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -610,11 +610,20 @@ static void __serial_rx(char c)
     if ( ACCESS_ONCE(console_rx) == 0 )
         return handle_keypress(c, false);
 
+    /* Includes an is_focus_domain() check. */
     d = console_get_domain();
     if ( !d )
         return;
 
-    if ( is_hardware_domain(d) )
+#ifdef CONFIG_SBSA_VUART_CONSOLE
+    /* Prioritize vpl011 if enabled for this domain */
+    if ( d->arch.vpl011.base_addr )
+    {
+        /* Deliver input to the emulated UART. */
+        rc = vpl011_rx_char_xen(d, c);
+    }
+    else
+#endif
     {
         unsigned long flags;
 
@@ -633,11 +642,6 @@ static void __serial_rx(char c)
          */
         send_guest_domain_virq(d, VIRQ_CONSOLE);
     }
-#ifdef CONFIG_SBSA_VUART_CONSOLE
-    else
-        /* Deliver input to the emulated UART. */
-        rc = vpl011_rx_char_xen(d, c);
-#endif
 
     if ( consoled_is_enabled() )
         /* Deliver input to the PV shim console. */
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 23:37:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 23:37:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221254.1529533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnmR6-0002DJ-EL; Wed, 04 Feb 2026 23:37:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221254.1529533; Wed, 04 Feb 2026 23:37: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 1vnmR6-0002Cg-8e; Wed, 04 Feb 2026 23:37:28 +0000
Received: by outflank-mailman (input) for mailman id 1221254;
 Wed, 04 Feb 2026 23:37: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=gU/K=AI=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnmR5-0001wI-1B
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 23:37:27 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7549d2a6-0222-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 00:37:25 +0100 (CET)
Received: from BN9PR03CA0501.namprd03.prod.outlook.com (2603:10b6:408:130::26)
 by SJ0PR12MB8115.namprd12.prod.outlook.com (2603:10b6:a03:4e3::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 23:37:18 +0000
Received: from BN1PEPF00004683.namprd03.prod.outlook.com
 (2603:10b6:408:130:cafe::c6) by BN9PR03CA0501.outlook.office365.com
 (2603:10b6:408:130::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.13 via Frontend Transport; Wed,
 4 Feb 2026 23:37:11 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Wed, 4 Feb 2026 23:37:17 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 4 Feb
 2026 17:37:17 -0600
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; Wed, 4 Feb
 2026 17:37:17 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 4 Feb 2026 17:37:16 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7549d2a6-0222-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bXOHtvNtMhHVxi9pGyN95NyCmt2c9E4rh8Hhcur3/DVhNUxTbAU84yoqgVDoGJMEqwLc57vXqU9K7PYa3k+YckdbPgsQUW46PGpNLvmFYpbD7jFz+7EMOGNPe5BUF7WxDGVfZP/A6mJS+eUdGxoqf0LAfMoW7uix341EQLLRuRV0IKyUrdiQaOhufT/3F/OGqIMIMkOIGH+M+uG9zJWEUlDuBJ1uZF0pKsST2eqh7qoy07cq+IYfyGKyCsEiCYQAdZtHa80qwGMViFndBlXxTExh5QoPiqGb90XXj9tGTNn5zHHAX/1aGzMLe8Eadwp42GVDfAM6ctbZRx8TrMvj2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mqwBp4MnNYKS6IvAa9j+HIjyvIvt0WGP7tqhc7zOsLU=;
 b=ExoQGo4s3V/+PqVPPuHLz+5xsKbXQW+A8ESdkvieZ79cdcI1ulC6h64qt7YkFQM8rwz1uXESevV4wWhd1yrj1Nta7p/iOPymzf2Ns3j0hkregsT5mqqAT2p1fA55KxttkMdNay22fBqGaHZF7Yc2EXkroefHGOom+Sg9pJKobs8VdiDVtSlvLtoPny6NXwa/FyRA61L2L0WaCcWJWf1gjcO8U9qaev8W/TidkhKCUocI+uvahHsYIa2+nzkrpw7lhd1vx+VYsHaQInbVQX0oTbiBrb+0S6nr5weontOI66CNhz4Ru0FKPHGo8Md3mrJU/uJyEAJELghvlY9omHgn+w==
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=mqwBp4MnNYKS6IvAa9j+HIjyvIvt0WGP7tqhc7zOsLU=;
 b=Q8kPY6rzJI0ZKXYBLrWSkfNwkscV0FguUXxIF1F5Ukv7ZYThPByrJvwTp5BsaTAP4z05DSY5mEmZ8vhVw2ecMM45x0a4x7ToMprBGR/nKEcz1jOzyLzmWfBfIX6ln20qyVIdafxHqnd5DIKzI8CGoRFAIDxHErJhSFpZyoHeEtU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v10 3/5] xen/console: add locking for serial_rx ring buffer access
Date: Wed, 4 Feb 2026 15:37:10 -0800
Message-ID: <20260204233712.3396752-3-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Received-SPF: None (SATLEXMB03.amd.com: stefano.stabellini@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004683:EE_|SJ0PR12MB8115:EE_
X-MS-Office365-Filtering-Correlation-Id: 5d5794e7-a201-4095-f762-08de64465582
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?bufdVQeOzJdkhUBif+opBdDYVnsog7QBoI0OWVG/O3EqsIjUEhf8ukNSE5oV?=
 =?us-ascii?Q?LgbsDb2mVKn+RQfRW8+zKjuD38w0S/q+WGzqdZSzHLYGlgTifg7ZuTrXvm+v?=
 =?us-ascii?Q?sJ2cEfbIW6RZ/J71fgvzfOyKNOW3un3YOZhZKiC2vX/8U6R4EuugCjgVWWOo?=
 =?us-ascii?Q?cxgjuHmD3HaB1mz0lYxtwX+6NkrXthGZleZL9F4UwFky8D2+QYRzNBz/dQ2n?=
 =?us-ascii?Q?k+Mk6O50fqZKcjL876MBIZSIPlKINW+WSwzppLSHw+rn9TLzCyuxS9pyCUs9?=
 =?us-ascii?Q?JA4PApib8O8uG7NcfqYd51qcwNyTzS7AhzXG6qWs63NK1I4YBMCU4G85fqbk?=
 =?us-ascii?Q?JWgsphyq1hFzrGvua4rAQozTKP1yweYx+uCEvHUNJp6Cw7aCtCa/RRWbX4qt?=
 =?us-ascii?Q?o9UsYVqscPMmLVI4x6eehrBK7zyh1UIiqQ9Bp7yURG85VUdwCXUuCET+/0HN?=
 =?us-ascii?Q?d26pveSC2Vfvv9lE1lH6mYhSJ/UKLU2IR1VuzrihvsRmsEEsoIluacGGQm5k?=
 =?us-ascii?Q?CLxw/l8eOPr+Qji8NE3G/XcCSBPn4kTlz0XSnJjeeMq4FjbzsFyY3Th5d8Tp?=
 =?us-ascii?Q?YYQ4TYvPWTliiKouSeZl3EBkJczSQo8Gq09JwNBcck8F08NAW9BVrE0JdTaF?=
 =?us-ascii?Q?E4zX30HhBukUaM2zM2u4SLnaBFfVgQ4NcdY+VFhd7qat09hwBDOdKx3H9W7c?=
 =?us-ascii?Q?3Vuv15KrL/n/7nUfCu+vAapAEDwj9vtxPQgOTr7FurutGFSpuX2aGqlY1Kxj?=
 =?us-ascii?Q?pFmdtnfkptcN4BuynPLl3g3GYCyn3onIVZxgoYciGG0hxPnyiqCKGR7q33V3?=
 =?us-ascii?Q?w126WabMX9c+xwDny0p9hlTvdvbBWkzm3xeW557aI1lhedJ/fetfdUDT4/Tt?=
 =?us-ascii?Q?9qEDNoQbNITT5/n4elkCOjeURcBDJmrPv+6e60N9Ezr6XHNQjLwdT1QbKmdR?=
 =?us-ascii?Q?5vDQMkfEe7QaWtOhuhYW72M95DXDWS060iDJbRYeKaMw5vWi+QFyMf8mqtsO?=
 =?us-ascii?Q?bXHLXAC40YgyGV7FWC49jDPKEVK7HMQcypYqjAm8cR4gf5TGr82+DxCYaVm5?=
 =?us-ascii?Q?D4bBeTYg8cGJymuE2J77aQYcMKZ5Kd+lQ4LvdC1ctFHDSH8Zn0KOHN3rNRnU?=
 =?us-ascii?Q?+LBiCvM9m9/2tGajJB6/KTpEAExMFIT37nvcVKCu6J4/OTzkNE4HrMHXD9dX?=
 =?us-ascii?Q?+qy0xbfpiHN2v8LwgmQiqLt7LX2wlyF0NvLUmkqL9tPzD4vHCUir48BlmTFk?=
 =?us-ascii?Q?J/U+OdIlDaRH5k/wcn14U90Y8WYaYi47yJOC7jAJ6vthF/8VRp6WLpFBWuqL?=
 =?us-ascii?Q?SHDYcPNTbZZSIGGZw7E1wvwzSNBCrh5P1SDhCO4b7L3fxe4oQIYhh3wE8/IU?=
 =?us-ascii?Q?k7ATZXbn6ggl4rbL3ptbxcX7XPfR22rjFPuP7PSRw8wGYATRPtrqXk7qqulT?=
 =?us-ascii?Q?qNuBnIj834Vr/xDa2N9rICgvS0ZWNxPIjsPBLVZea0mZ5zUWJpj5sLpfMitz?=
 =?us-ascii?Q?npLYYLar37DkEyYFbKWnRKpoQLUi2osBsaztxsBm5d01fUkwGnNwpA7EUI2M?=
 =?us-ascii?Q?joxEExgZGUvC6+A0SjVG1BgycAvl4krr6nESVWRBTBJzXWfqxZBCo2C7IH/Z?=
 =?us-ascii?Q?F9/lbxL2an0YJEf27I/qrlt7J1zLaqzM6s5OctIbc7//Ph7niym/lDKwoCfM?=
 =?us-ascii?Q?LDLwGQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rQBX5GxwKI8nUpmd7O15a3ozboYJ/XImy0TPuLglSISmQKFuc3Bak46f9CH2OlKgfdN7R+wL3W4OLUc0dJE/lOV4ByG2VqYJL8v0PrVoORvHhZsXYg6EsEdSCEMAEivkpA9VufT/AsrH7/W0rSqicW8Mc4d+Mz9115GYlS2U1BeK8hNuqJT2ge15AuHkV281c1yJD1M+Uv5EgowVJXPGIhUpRpOhTVCooNZ3vYYj7ErjAMS2ox061KyJ1LAXGuPZiHi8lfHd1zamu0weItCFjd+q4XS/js2Q5Olvc6BABNaXdhiGFlsR19Duxq2HWQ0di90BaSFBAZu0FWzDHaDZJqr2vjAxjZ6KusTSM9ZNhu2DMZU8og1DEai8zQN8YWaN2ArzpTFx3aayDlHEX6BbsA3ud2yeH9HPfckvhx9YcPbcTOUWq1CQSeBv1dQjlgkp
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 23:37:17.7884
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5d5794e7-a201-4095-f762-08de64465582
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004683.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB8115

Guard every mutation of serial_rx_cons/prod with console_lock so that
cross-domain reads can't see stale data:

- In console_switch_input(): protect console_rx assignment with the lock
  using irqsave/irqrestore variants since this can be called from
  interrupt context

- In __serial_rx(): protect the ring buffer write operation when
  delivering input to the hardware domain

- In do_console_io() CONSOLEIO_read: hold the lock around the entire
  read loop, using a local buffer copy to avoid holding the lock during
  copy_to_guest_offset()

This is preparatory work for allowing multiple domains to use the
console_io hypercalls where proper synchronization is required.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v10:
- patch split into two halves, this is the first half
---
 xen/drivers/char/console.c | 26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index fbc89ca2a4..ad53073b99 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -553,10 +553,13 @@ static void console_switch_input(void)
     {
         domid_t domid;
         struct domain *d;
+        unsigned long flags;
 
         if ( next_rx++ >= max_console_rx )
         {
+            nrspin_lock_irqsave(&console_lock, flags);
             ACCESS_ONCE(console_rx) = 0;
+            nrspin_unlock_irqrestore(&console_lock, flags);
             printk("*** Serial input to Xen");
             break;
         }
@@ -576,7 +579,9 @@ static void console_switch_input(void)
 
             rcu_unlock_domain(d);
 
+            nrspin_lock_irqsave(&console_lock, flags);
             ACCESS_ONCE(console_rx) = next_rx;
+            nrspin_unlock_irqrestore(&console_lock, flags);
             printk("*** Serial input to DOM%u", domid);
             break;
         }
@@ -602,12 +607,16 @@ static void __serial_rx(char c)
 
     if ( is_hardware_domain(d) )
     {
+        unsigned long flags;
+
         /*
          * Deliver input to the hardware domain buffer, unless it is
          * already full.
          */
+        nrspin_lock_irqsave(&console_lock, flags);
         if ( (serial_rx_prod - serial_rx_cons) != SERIAL_RX_SIZE )
             serial_rx_ring[SERIAL_RX_MASK(serial_rx_prod++)] = c;
+        nrspin_unlock_irqrestore(&console_lock, flags);
 
         /*
          * Always notify the hardware domain: prevents receive path from
@@ -796,6 +805,7 @@ long do_console_io(
 {
     long rc;
     unsigned int idx, len;
+    char kbuf[SERIAL_RX_SIZE];
 
     rc = xsm_console_io(XSM_OTHER, current->domain, cmd);
     if ( rc )
@@ -817,6 +827,7 @@ long do_console_io(
             break;
 
         rc = 0;
+        nrspin_lock_irq(&console_lock);
         while ( (serial_rx_cons != serial_rx_prod) && (rc < count) )
         {
             idx = SERIAL_RX_MASK(serial_rx_cons);
@@ -825,14 +836,19 @@ long do_console_io(
                 len = SERIAL_RX_SIZE - idx;
             if ( (rc + len) > count )
                 len = count - rc;
-            if ( copy_to_guest_offset(buffer, rc, &serial_rx_ring[idx], len) )
-            {
-                rc = -EFAULT;
-                break;
-            }
+            memcpy(kbuf, &serial_rx_ring[idx], len);
+
+            nrspin_unlock_irq(&console_lock);
+
+            if ( copy_to_guest_offset(buffer, rc, kbuf, len) )
+               return -EFAULT;
             rc += len;
+
+            nrspin_lock_irq(&console_lock);
+
             serial_rx_cons += len;
         }
+        nrspin_unlock_irq(&console_lock);
         break;
     default:
         rc = -ENOSYS;
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 23:37:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 23:37:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221255.1529541 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnmR6-0002It-RB; Wed, 04 Feb 2026 23:37:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221255.1529541; Wed, 04 Feb 2026 23:37: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 1vnmR6-0002I3-JP; Wed, 04 Feb 2026 23:37:28 +0000
Received: by outflank-mailman (input) for mailman id 1221255;
 Wed, 04 Feb 2026 23:37: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=gU/K=AI=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnmR5-0001wI-94
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 23:37:27 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7389be09-0222-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 00:37:22 +0100 (CET)
Received: from BN9PR03CA0504.namprd03.prod.outlook.com (2603:10b6:408:130::29)
 by DM4PR12MB7766.namprd12.prod.outlook.com (2603:10b6:8:101::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Wed, 4 Feb
 2026 23:37:16 +0000
Received: from BN1PEPF00004683.namprd03.prod.outlook.com
 (2603:10b6:408:130:cafe::c4) by BN9PR03CA0504.outlook.office365.com
 (2603:10b6:408:130::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Wed,
 4 Feb 2026 23:37:14 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Wed, 4 Feb 2026 23:37:15 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 17:37:15 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 4 Feb 2026 17:37:14 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7389be09-0222-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vjpu7FHY3GbsqJ8C+iiNw+C7Ci+IqUwNbvJhUQGkrjtip+u1LeH3LRvbxOUVfaHtagXmpFAKBDpb/JKvJ6UzPfL8dhfZbKN16lMfVNz05txJWqgnhSFYiJaC8pX/V/N5TLaTPvH9qnhyBpEk3b1MbLZJtmxJrPmjNB47wDW/CpwgcVGpSWgsl5KjTEFY2F8p6osP7bzz7UDgpMSM1AWlYzb1qhvnjt5ygc3cucbhEJD7Lp1RGFB90VZQfxgtUXmRaEXPTz7qR8v5Eo0iz9+JFkawccu/0O/XvQ5KejQbV5osk8iNf5jgSVoXy1mjbUb5INYSO0U55DI65sLEVDJsoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=z+m+wfbaQfqsO+srFswTlFpdkOkHztR+/HdKJrjtAEE=;
 b=oZu6urX+QGXoQzrPduGk/GB1YpW0Hub/re+Zpzz/XavS8kYDpkFmnw7JSZyRnKDZMIWRuTaw7GG/+SgH+x4lKviXqNeHrCI6si0JaeKa6kglqBlODWTA/FeOIRNXJuCIc9BVWTOExlLHibeuZUkQq4s5odnCJMn8jUEnqdV/5htKhqn+7IHSxwQ0gCKIfxEkWFXwP2Nj3zHGE/FlWDeDyrxZtS9uOJOhi5FY0kb/FEQhP+f37sHnf3FIDyuj1UawBZxdtf11asdLnQlHYlxrwt9z7THkMGRTYL9jZ8gCMtig3hzgori6KeoS31DRI92rh2vW1C/Wgy2N/O3wkRp5GQ==
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=z+m+wfbaQfqsO+srFswTlFpdkOkHztR+/HdKJrjtAEE=;
 b=HNFtjdPXYa1EsdXB2qJWCScK8rQYph6QQQlTMZnh05ASZzDrB4HUUTI7xYJeNC1cqH/zcKGszhTUuDuFAGCIrmxe/93r0jRAw1sXBIXqSF80q5IjckWDvSwbR7mpNjVD0UFMt3ApBK0ctJD46dJuUfR51+/wV39ZbGzy2JMjBsM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v10 1/5] xen/console: use ACCESS_ONCE for console_rx
Date: Wed, 4 Feb 2026 15:37:08 -0800
Message-ID: <20260204233712.3396752-1-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004683:EE_|DM4PR12MB7766:EE_
X-MS-Office365-Filtering-Correlation-Id: aa101bac-8a89-4080-6fb6-08de6446542d
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:
	=?us-ascii?Q?J4tKs+0eqjb0iO28ALtbpTkHjXACNu8eenXMsCjbOr0uAYb87QyHcOEzPsiY?=
 =?us-ascii?Q?U0/yjFZ+KN6qtUI8/6iJfBnn13ncBTMdMJKKN+VGhzBt9VDoJjhCV6piXusf?=
 =?us-ascii?Q?7K+fFupV4kQtbR0pOENuIV279DU6Bwp8o5ySzDz+pK857K4Wl8zqENsc2ZXH?=
 =?us-ascii?Q?p/aKxTGIIAW6h5xm1JGPgS+AaibTkhXK8nY2Oqq3EkQE7+5KK21iVLA9gQfd?=
 =?us-ascii?Q?ZaqPGRvLnFONeIfUIHa7doXBFAsopOiIAftD/inX7KGHWqR5TtcWTv5JCp7i?=
 =?us-ascii?Q?zJBc9QU/uKrE8uhia3laYBzm7+NIqEgy/AADrfX59y/xR42jMCaTsWpdHqIh?=
 =?us-ascii?Q?kpzxSDvQPcEwCBetPfqEP82JqwZlvdBBAG9xpbFrgrhJU31FbuWJLxrN9gVU?=
 =?us-ascii?Q?9P2/Cox7sDzm/TyLXqn1z/d34u2RF2PsgtXmTL/SjUTRWxOsEByp96YhRyE/?=
 =?us-ascii?Q?KhtXE/vQURW1Gi0fl7GRVcew2G1YSect7Dl8WzH3fhm+G1LDam1mfnQhrG+h?=
 =?us-ascii?Q?sM6H2ANGWg/tGYgOLyvQudZeqjMvp3gb8wrmbuPc3vZyA0eqEu1LTbZeoJ0+?=
 =?us-ascii?Q?wrhl6T5rRWrQ3UCpJtqXtIFUppCLL2mJVH0wKsSY4sTyY+eRyyhGWbP1kaZA?=
 =?us-ascii?Q?9QmtbSfwj0NmFUFbFhiIqDFROeY1z0j0rAHyVr1niJZid8eB4AR0+23cGqNi?=
 =?us-ascii?Q?xO+ssf/6auYLYr1eRD0OKWhyvlPqKJammFDzC4A/eJFurAPpwzdvFVYVqxNV?=
 =?us-ascii?Q?H01RCUjEDv2F9vxcGylrOCdY/SNs5093HjdYo/kVQpLUNUoHPRtCUkIPjjT0?=
 =?us-ascii?Q?7cgekssLFRaorju0VjgRNRpsJ7IYsbLsfLGiLpjT45o7HE92NVpnvj53Pt7p?=
 =?us-ascii?Q?E4bQIG0ksFZ7Yoy9z8afummCzJJckYP8X5sNOVm21SSFNHBvJaUiMAyzxnCX?=
 =?us-ascii?Q?gt08w2tev2CbUS9ORNjY/TljiaUXpEHTTDZkRe/Fv6NHhrXoq1D0DTTHMkz9?=
 =?us-ascii?Q?fZi//3R/r43NncW7TBRC2jtn1EMYd9QTYeA7KXqt6tpzkkcEO30eJLw1tmvM?=
 =?us-ascii?Q?2qwI+99kxkvxjHb03mWzZ/Z9x6A4ithd/Dl8jUxgOWKHQTmQA12O5eMkEUsr?=
 =?us-ascii?Q?ihUBeYBi5LrKjpxBojgJDxDW40m9EMNObmf0H7StmISzlsrjxcJMnuXsCfNs?=
 =?us-ascii?Q?ZijWyq02p324fBSXw/zJKAYATa7hbHnjKf9c6g7dtbewjU+z5cgQas3IErVT?=
 =?us-ascii?Q?Xj9BVRXq8ZK+UplcZsxL3XWcozLmLsy1FhiZGk+6uGJXBY0kLh16+MDggVVm?=
 =?us-ascii?Q?6e7KkxCDdxIySDiiz//n2Uludu8+CO87+iVD8R1dw/9lFLXEBalP+VlTujhO?=
 =?us-ascii?Q?twkpbX72tQ696/m7lDZOSkhiQg52GBCJlWUwV4xf24lflY7krWZtndf1jTeu?=
 =?us-ascii?Q?L5cbaT3oc/7qN8yzGsya3uLtK1aYq3cgFheSRsc4YqdsMg+nUwqFfCdgWkeZ?=
 =?us-ascii?Q?+h8rfKOBMfQQQ2PBaQqkZmr9lAcM3n3c+zEi5hDegMqXTnt7DNUbBdsQIBXV?=
 =?us-ascii?Q?pWON+ZG8u4XPLSnxtYFxQByIzLTb3vQ5Xsde4WWHMd9TekdTMnBT8oFzRicu?=
 =?us-ascii?Q?/agBKOGReUldDyp0CTKUN/t3eqEqFR+9EJrq74BjAmv75YdIs7Qn3Gga6xVE?=
 =?us-ascii?Q?JMd5Kg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rsjbAevPMSM3fUKJQMwNMYY793JTZywSi1j/83iHyZ4xq7CCSpxsMSKymI5vLnesJhO017OJNAaU4w5aeuk0Fo3/cr1mlgumZeTtp/o6EgXAgB402Tv8dfYFnfTtV7dR/cWw3A8XtvrK7t6m6uC1ohKSrmYURSPVItdghSb+SJNrxCATbRwimmtXhVF0qX3/gbWlxqyevQCOLq7iJuydjTVWCdpbrOeQfxD1+4FWIg8z/TYEgqL2PjFixNtH2Ab8A1sec/y4HlKrfjvfwRkHDJgf1p5YJQZ2pPygHVS7sHaxSBJBscKdIL+jRNreg4C50MW6Mhier+cSbOTfVJ7wYqnWkjMrmTyc43NuFlavRo4M7tFyLcOxCZdiPBr3IbY/zVpgknbkC2ACjoccAmaf4A82jG3nvS1T4l5S2tOz3X5zt46ALdImoOVA1g+gKRen
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 23:37:15.5506
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: aa101bac-8a89-4080-6fb6-08de6446542d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004683.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7766

There can be concurrent reads and writes to the console_rx variable so
it is prudent to use ACCESS_ONCE.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/drivers/char/console.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 2bdb4d5fb4..35f541ca8e 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -518,11 +518,12 @@ static unsigned int __read_mostly console_rx = 0;
 struct domain *console_get_domain(void)
 {
     struct domain *d;
+    unsigned int rx = ACCESS_ONCE(console_rx);
 
-    if ( console_rx == 0 )
-            return NULL;
+    if ( rx == 0 )
+        return NULL;
 
-    d = rcu_lock_domain_by_id(console_rx - 1);
+    d = rcu_lock_domain_by_id(rx - 1);
     if ( !d )
         return NULL;
 
@@ -542,7 +543,7 @@ void console_put_domain(struct domain *d)
 
 static void console_switch_input(void)
 {
-    unsigned int next_rx = console_rx;
+    unsigned int next_rx = ACCESS_ONCE(console_rx);
 
     /*
      * Rotate among Xen, dom0 and boot-time created domUs while skipping
@@ -555,7 +556,7 @@ static void console_switch_input(void)
 
         if ( next_rx++ >= max_console_rx )
         {
-            console_rx = 0;
+            ACCESS_ONCE(console_rx) = 0;
             printk("*** Serial input to Xen");
             break;
         }
@@ -575,7 +576,7 @@ static void console_switch_input(void)
 
             rcu_unlock_domain(d);
 
-            console_rx = next_rx;
+            ACCESS_ONCE(console_rx) = next_rx;
             printk("*** Serial input to DOM%u", domid);
             break;
         }
@@ -592,7 +593,7 @@ static void __serial_rx(char c)
     struct domain *d;
     int rc = 0;
 
-    if ( console_rx == 0 )
+    if ( ACCESS_ONCE(console_rx) == 0 )
         return handle_keypress(c, false);
 
     d = console_get_domain();
@@ -1193,7 +1194,7 @@ void __init console_endboot(void)
      * a useful 'how to switch' message.
      */
     if ( opt_conswitch[1] == 'x' )
-        console_rx = max_console_rx;
+        ACCESS_ONCE(console_rx) = max_console_rx;
 
     register_keyhandler('w', conring_dump_keyhandler,
                         "synchronously dump console ring buffer (dmesg)", 0);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Wed Feb 04 23:37:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 04 Feb 2026 23:37:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221256.1529559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnmRA-0002vO-9V; Wed, 04 Feb 2026 23:37:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221256.1529559; Wed, 04 Feb 2026 23:37: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 1vnmRA-0002v5-5c; Wed, 04 Feb 2026 23:37:32 +0000
Received: by outflank-mailman (input) for mailman id 1221256;
 Wed, 04 Feb 2026 23:37: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=gU/K=AI=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vnmR9-0001wI-38
 for xen-devel@lists.xenproject.org; Wed, 04 Feb 2026 23:37:31 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77f34a59-0222-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 00:37:30 +0100 (CET)
Received: from BN9PR03CA0501.namprd03.prod.outlook.com (2603:10b6:408:130::26)
 by SJ0PR12MB6710.namprd12.prod.outlook.com (2603:10b6:a03:44c::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 4 Feb
 2026 23:37:19 +0000
Received: from BN1PEPF00004683.namprd03.prod.outlook.com
 (2603:10b6:408:130:cafe::c6) by BN9PR03CA0501.outlook.office365.com
 (2603:10b6:408:130::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.13 via Frontend Transport; Wed,
 4 Feb 2026 23:37:13 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Wed, 4 Feb 2026 23:37:19 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 17:37:18 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 4 Feb
 2026 17:37:18 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 4 Feb 2026 17:37:17 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 77f34a59-0222-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=N+5GhNmgPyXYn+xfNH7p1CHD+wBKFMgTdy4kIwrzotDd5gba9c3ScKOg/mwJ3HKjwaTSD4DPTzag1QbBV34i0S7EBs3ZvOPAek2OKXYZaHLbQPk+ASuCYzP8JmDen56sPd7T4QlWlZlLDdSUHCGDPzHaK9k6S2+kSEJJZVYUDsQfs9HK6JShZkkgnQyTby0kMePKDUE6rsxcyrorroQkZ7oCVMrbRXK5IvOr073IRqVDX+/Mcpvt6zbn/WdGA+XUbH5W8EkPw1hjjgK8ZPiGPaKRGepv47CEd+CrA7gFtGiAwPdDJuWcnMs26iUCAzlDl91UTmSuOZSOJXIWMzSc0A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KJpIPQ9Ec8gZQSWwgKAgJ5LcBcdzjYPpdERL2oD0YAY=;
 b=M0d54LBxdZlOTwy/7HkAwnoLg34w1QLIpsRS4o6TTOQtnrczKAzk3mZLrFt/gy3vemr4gtWRzh1Axou+yjl9N9lc4+1WckyU/sg+5mU8v/lm6SY1wXcfCw9ojSXHBeohaO006M5LDG8H43CKqeI7EASuu+l47J6v6svYRPqS0ulut4CnBVkBxj6wmYOEB4TKiylB9gSIGUgVj55L8IdFUvUa7b7sUfVM/l+PTArma+LNIiL95BZOeEp89d6pTuV3tRTkIym9J5p6V98tIxtsL6ankC2R9DbG3ZR3QrxMX0jKRSwvUYs3sljbLzZmZRcqK2SsmkRyRSC3fV73G3h4BA==
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=KJpIPQ9Ec8gZQSWwgKAgJ5LcBcdzjYPpdERL2oD0YAY=;
 b=Wf0iy+1oByQJ9uQCCteZqtveWhWm6wdyMz4su/UBKkxNxsJsyY5vgrBGsIKQXU4AOqL2ykaHFaK7EKdCsbH6Q7I1KJhKZkELViGvoI1B6dvH4ouefLptfxWJ9bzbdUoL4OzT6ja6DYYNqrXcSxgHGQtVv2gIdzoyNzTRBeSBEQE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <grygorii_strashko@epam.com>, <anthony.perard@vates.tech>,
	<michal.orzel@amd.com>, <julien@xen.org>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <victorm.lira@amd.com>, <andrew.cooper3@citrix.com>,
	<jbeulich@suse.com>, <sstabellini@kernel.org>, Stefano Stabellini
	<stefano.stabellini@amd.com>
Subject: [PATCH v10 4/5] xen/console: handle multiple domains using console_io hypercalls
Date: Wed, 4 Feb 2026 15:37:11 -0800
Message-ID: <20260204233712.3396752-4-stefano.stabellini@amd.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004683:EE_|SJ0PR12MB6710:EE_
X-MS-Office365-Filtering-Correlation-Id: b64183d4-733f-4220-59f9-08de6446567c
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?OF2O+aGGIss1OtiLDTMUA2LuQsO76ODGpr3DwQrYhQGmATnIEN1pQPjp95Jd?=
 =?us-ascii?Q?/ueW8M55ZENJzyswc8g1AoGMNURSryLdRRlNuzjHtbxOoBiL1hW5aH8el3nS?=
 =?us-ascii?Q?l+7+QYHv2PFDpJeHtrub76YRZEfMNUa63ajDl20G+zUyymtQ+8qOpdu/IHIX?=
 =?us-ascii?Q?jHy7YkaxYq7e79nbWy80kh1QQz2t2qeF6okDq1p8fRnAU1MXzap1LfuDpX3W?=
 =?us-ascii?Q?9euDlK4CSP7cWsXvJBRiqcSZ3OKTP4yBtKp1urLxNbpE3sWwN1vXodPCRqb5?=
 =?us-ascii?Q?8EQx1cfjHMVAP56V1nYpNXzEJwf6t4jHvfmxohk6gmS5RyQjFwlJB2Kci06n?=
 =?us-ascii?Q?CQ5ZT4TzzAB2R3EeDTclP//HzLZwJndSTlBFr11oM0uXDRT//2bkPkN8ZfHi?=
 =?us-ascii?Q?yxkJznwrPaB3ofGXePBlXJDlcg5QAVEC8jEFKlUtLRzAD9s4sHLcICTxKwvE?=
 =?us-ascii?Q?TDDOZq7aAO50m+zm6h25JcvJKQG2qg8fQ598g0L+X3bSYswnWO5PZNxUzTVF?=
 =?us-ascii?Q?Ko/npBGDFS4vlslSwnQsInOepKstBDggA87stgvT680Rk1H+RvX4zkJh1ooJ?=
 =?us-ascii?Q?N1iCIP8hd/aETstEw4KtQj6esA+GHVDKjMd5rYc82XzZ8MggLO9gup5MeEpt?=
 =?us-ascii?Q?Bdv1E7UDilRg9AuKOcFERqKkbSYvDpZcH54dabgaazA79Yny/sb0XSkDp/Yq?=
 =?us-ascii?Q?bFizPQmY0l8m0OANB3gW7rIuSNg9+L+TEw9AqPAmO0rfhzf87pByGWiPgpQ6?=
 =?us-ascii?Q?N6K8npC1TLRUNJSOsrVZDZNQSWe/75ZChbe3p029UjprJZIfVjvas4M/Higk?=
 =?us-ascii?Q?mQJCIdwTW5ir+SxgQzgE2657m5PZ+M6NsZJre+nb374SxxhEUpw30GUaWUdn?=
 =?us-ascii?Q?9M7WLy/TdqtkdoJiUEOPsKiV8NUqjo53t4DIqpcEcDZwLIoVSQwpG05T9trO?=
 =?us-ascii?Q?QkxkT0UMCynDAbH7A05UW4Ktw3be4BTWK7opJRILTyFknw4NVJIONJMZXlxJ?=
 =?us-ascii?Q?csaZknDlZyTsCUUrSaeVMAIZ8cVeYdmBihSkt5wsLYNXkOS8EOWlIij2ereD?=
 =?us-ascii?Q?Y7xqBvFBJFvjJhrPqz4ToHjMBlnsx2pfNZH0ly4R7O0jVEn4wM/Cd+qln2cH?=
 =?us-ascii?Q?M8I+5YshirtoeH8NViYIGO/vk3jEwALUFh8F4jEpOpOP5oKO0edXo1uZKlHI?=
 =?us-ascii?Q?xD7Jfgq2rHzbv09GIOJlOzRboGqWGxhnl2zlHvldJkeCzxwbEhVUTAPzWun3?=
 =?us-ascii?Q?UYxwD0D5EKs5ivktC7pPWGK1VUEplSOXaGFgV+d3lFKnXHFoJHaD5/LaYQ23?=
 =?us-ascii?Q?ElXZesaUiVCJHP31wPI+ZOenwJKFrajWFzQ8Wec4BHAhEvTF0+xK08ytNQUb?=
 =?us-ascii?Q?uOgnLrbPK5YT+quXffIXrtvG1Tec4aHCBC82dyLVG80GrbOyPU+fhdVkAOXi?=
 =?us-ascii?Q?p5iS+525S5fMXUzkdeKV3JWF8UdPWW7rSg/tHT/7v/jFUBoSQJuzskdde9j6?=
 =?us-ascii?Q?SdZ9psgLNNLyf78BHYW31FmiBUYXhRhCI+2vR5Uqe2hpk8sT78S5J6eGpZh8?=
 =?us-ascii?Q?cxegJlp4xy0nMO2p/BSdgd1nblsQ4wijhNUE3kFRO8Ko7ZDzMLHf6yfdq3EO?=
 =?us-ascii?Q?cz5QYAN5dB2xeO5p5XLbs3fDptuhHb4FyVxyfLsrbNdROoFqiiNji2qcAP9Y?=
 =?us-ascii?Q?3hRsig=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1Mbec0mvVIBuAf+0dvipf7CbZvT2zx8OGDElS3biPMkESmdrCI1MIHxaI3bjWkN2vrtU3zvwK+qXu5KReuYMzvdXksKX7OTZx8cALiQqPaYNe9I+ZRR8McQ2e5ePHY63oaMA3BfPIuFPPjlpG4rqEJyZKEDOfuhRDrRop53ODDm3yZfB0vG7BCTb0IWUsONMBPdh0CuLHSGGkamQcvL32sxNaCTikcWZUwfnRGPQLr2m2IwYeZcEel0P+UtrxMV+lkd3Sj4XgJuzKjmRbYHKyEInxSnDbwzS0NYA4TEQmpYAGgmWlbTTxGLks8WcWSJKRoaJXLAtq5gBFlmd+LoTVzPOWmvLpR2QmtMJ+VMopnBqqOqg0aG0h1Bonugou2nYoqbMt6Yaa/RHiZ/68NjgnfUEbIPPmPTf1PW8cKa9WSsefCD/kCdvIgfXwD1xKfWr
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2026 23:37:19.4241
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b64183d4-733f-4220-59f9-08de6446567c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004683.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6710

Allow multiple dom0less domains to use the console_io hypercalls to
print to the console. Handle them in a similar way to vpl011: only the
domain which has focus can read from the console. All domains can write
to the console but the ones without focus have a prefix. In this case
the prefix is applied by using guest_printk instead of printk or
console_puts which is what the original code was already doing.

When switching focus using Ctrl-AAA, discard any unread data in the
input buffer. Input is read quickly and the user would be aware of it
being slow or stuck as they use Ctrl-AAA to switch focus domain.
In that situation, it is to be expected that the unread input is lost.

The domain writes are buffered when the domain is not in focus. Push out
the buffer after the domain enters focus on the first guest write.

Locking updates:

- Discard unread input under the lock when switching focus (including
  when returning to Xen) so that cross-domain reads can't see stale data

- Require is_focus_domain() callers to hold console_lock, and re-check
  focus after each chunk in the CONSOLEIO_read loop so a focus change
  simply stops further copies without duplicating or leaking input

- Hold cons->lock while flushing buffered writes in the focus path so
  the direct-write fast path does not race buffered guests or HVM debug
  output

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v10:
- patch split into two halves this is the second half
---
 xen/drivers/char/console.c | 52 ++++++++++++++++++++++++++++++++++----
 1 file changed, 47 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index ad53073b99..d3ce925131 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -541,6 +541,12 @@ void console_put_domain(struct domain *d)
         rcu_unlock_domain(d);
 }
 
+static bool is_focus_domain(const struct domain *d)
+{
+    ASSERT(rspin_is_locked(&console_lock));
+    return d != NULL && d->domain_id == console_rx - 1;
+}
+
 static void console_switch_input(void)
 {
     unsigned int next_rx = ACCESS_ONCE(console_rx);
@@ -559,6 +565,7 @@ static void console_switch_input(void)
         {
             nrspin_lock_irqsave(&console_lock, flags);
             ACCESS_ONCE(console_rx) = 0;
+            serial_rx_cons = serial_rx_prod;
             nrspin_unlock_irqrestore(&console_lock, flags);
             printk("*** Serial input to Xen");
             break;
@@ -581,6 +588,8 @@ static void console_switch_input(void)
 
             nrspin_lock_irqsave(&console_lock, flags);
             ACCESS_ONCE(console_rx) = next_rx;
+            /* Don't let the next dom read the previous dom's unread data. */
+            serial_rx_cons = serial_rx_prod;
             nrspin_unlock_irqrestore(&console_lock, flags);
             printk("*** Serial input to DOM%u", domid);
             break;
@@ -610,7 +619,7 @@ static void __serial_rx(char c)
         unsigned long flags;
 
         /*
-         * Deliver input to the hardware domain buffer, unless it is
+         * Deliver input to the focus domain buffer, unless it is
          * already full.
          */
         nrspin_lock_irqsave(&console_lock, flags);
@@ -740,6 +749,7 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
     unsigned int flags = opt_console_to_ring
                          ? CONSOLE_ALL : CONSOLE_DEFAULT;
     struct domain *cd = current->domain;
+    struct domain_console *cons = cd->console;
 
     while ( count > 0 )
     {
@@ -752,17 +762,36 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
         if ( copy_from_guest(kbuf, buffer, kcount) )
             return -EFAULT;
 
-        if ( is_hardware_domain(cd) )
+        /*
+         * Take both cons->lock and console_lock:
+         * - cons->lock protects cons->buf and cons->idx
+         * - console_lock protects console_send() and is_focus_domain()
+         *   checks
+         *
+         * The order must be respected. guest_printk() takes the
+         * console_lock and it is called with cons->lock held. It is
+         * important that cons->lock is taken first.
+         */
+        spin_lock(&cons->lock);
+        nrspin_lock_irq(&console_lock);
+        if ( is_focus_domain(cd) )
         {
+            if ( cons->idx )
+            {
+                console_send(cons->buf, cons->idx, flags);
+                cons->idx = 0;
+            }
+            spin_unlock(&cons->lock);
+
             /* Use direct console output as it could be interactive */
-            nrspin_lock_irq(&console_lock);
             console_send(kbuf, kcount, flags);
             nrspin_unlock_irq(&console_lock);
         }
         else
         {
             char *kin = kbuf, *kout = kbuf, c;
-            struct domain_console *cons = cd->console;
+
+            nrspin_unlock_irq(&console_lock);
 
             /* Strip non-printable characters */
             do
@@ -775,7 +804,6 @@ static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,
             } while ( --kcount > 0 );
 
             *kout = '\0';
-            spin_lock(&cons->lock);
             kcount = kin - kbuf;
             if ( c != '\n' &&
                  (cons->idx + (kout - kbuf) < (ARRAY_SIZE(cons->buf) - 1)) )
@@ -828,6 +856,8 @@ long do_console_io(
 
         rc = 0;
         nrspin_lock_irq(&console_lock);
+        if ( !is_focus_domain(current->domain) )
+            count = 0;
         while ( (serial_rx_cons != serial_rx_prod) && (rc < count) )
         {
             idx = SERIAL_RX_MASK(serial_rx_cons);
@@ -844,7 +874,19 @@ long do_console_io(
                return -EFAULT;
             rc += len;
 
+            /*
+             * First get console_lock again, then check is_focus_domain().
+             * It is possible that we switched focus domain during
+             * copy_to_guest_offset(). In that case, serial_rx_cons and
+             * serial_rx_prod have been reset so it would be wrong to
+             * update serial_rx_cons here. Get out of the loop instead.
+             *
+             * rc is updated regardless to provide the correct return
+             * value to the VM as the data has been copied.
+             */
             nrspin_lock_irq(&console_lock);
+            if ( !is_focus_domain(current->domain) )
+                break;
 
             serial_rx_cons += len;
         }
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 01:36:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 01:36:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221350.1529608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnoI3-0001ij-7B; Thu, 05 Feb 2026 01:36:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221350.1529608; Thu, 05 Feb 2026 01: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 1vnoI3-0001ib-2s; Thu, 05 Feb 2026 01:36:15 +0000
Received: by outflank-mailman (input) for mailman id 1221350;
 Thu, 05 Feb 2026 01:36: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 1vnoI2-0001iV-EZ
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 01:36: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 1vnoI2-003wQ6-0f;
 Thu, 05 Feb 2026 01:36:13 +0000
Received: from [140.209.201.102] (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 1vnoI1-00HVWq-1z;
 Thu, 05 Feb 2026 01:36: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=/gKg0E53LxUxIKjZV4BVNDkp/q7tuKx1vt5Xw35g7Hg=; b=EcMmvu
	bT+5dmIcIKh8n31KBOCNZhujQFSOoKkIVqTksFZLOXBtqM7lMar+v2uY61OCkAfPaDoJ80WPzgcJk
	Oa9qxd48RWqpdoB/t/gxdcCLkb7HAWRLK/T8IuT3wshOS3bNtDkaO3VyklnJpZOP5Oo6Y8YPZ0Xtt
	Cndusu7aXzQ=;
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 0/6] xen/console: configurable conring size
Date: Wed,  4 Feb 2026 17:36:00 -0800
Message-ID: <20260205013606.3384798-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series originates from [1] which addresses feedback [2].
Sending this as v5 since [1] was posted as v4...

Briefly, here is what the series covers:

Patch 1 groups conring code together to better maintainability.
There were conring bits all over the place in console.c.

Patch 2 introduces CONRING_CONRING_SHIFT to select compile-time
conring buffer size.

Patch 3 updates conring{,_size} annotations to __ro_after_init as per [2].

Patch 4 optimizes switch from early conring to permanent conring.

Patches 5-6 update the conring buffer allocation code and add some
verbose logging around buffer size selection.

[1] Link to v4: https://lore.kernel.org/xen-devel/20250311070912.730334-1-dmkhn@proton.me/
[2] https://lore.kernel.org/xen-devel/1a5ed8ad-0cc7-4e05-9b9c-cd6930d9b9ea@citrix.com
[3] Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2306728453

Denis Mukhin (6):
  xen/console: group conring code together
  xen/console: make console buffer size configurable
  xen/console: promote conring{,_size} to __ro_after_init
  xen/console: use memcpy() in console_init_ring()
  xen/console: update conring memory allocation
  xen/console: add conring buffer size alignment setting

 docs/misc/xen-command-line.pandoc |   5 +-
 xen/drivers/char/Kconfig          |  31 +++++
 xen/drivers/char/console.c        | 190 +++++++++++++++++-------------
 3 files changed, 143 insertions(+), 83 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 01:36:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 01:36:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221352.1529627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnoI5-00029b-Id; Thu, 05 Feb 2026 01:36:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221352.1529627; Thu, 05 Feb 2026 01: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 1vnoI5-00029U-Fd; Thu, 05 Feb 2026 01:36:17 +0000
Received: by outflank-mailman (input) for mailman id 1221352;
 Thu, 05 Feb 2026 01:36:16 +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 1vnoI4-0001w6-CE
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 01:36:16 +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 1vnoI4-003wQK-0H;
 Thu, 05 Feb 2026 01:36:15 +0000
Received: from [140.209.201.102] (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 1vnoI3-00HVXD-1m;
 Thu, 05 Feb 2026 01:36: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=OmHZuBlSWJtfYojCeHKDKiy+Jl/+TAljxD/KKQZ0HFU=; b=n5+kAtOKhadDbzsHZdN1u0lU/w
	fL/5Y0aJF/yxV9x7oEsewB/E2kjfDJmz533UFMuyzR68vvyrAkJjk6cGhlllJmo0ZJc+POQpt6i0i
	3lZpNMAMoT2m1zOhMbRd//TxTejqBCm8KNUc9RWR2/MacQyBUx3ioxT1h3TI3tylGPKo=;
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,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v5 2/6] xen/console: make console buffer size configurable
Date: Wed,  4 Feb 2026 17:36:02 -0800
Message-ID: <20260205013606.3384798-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260205013606.3384798-1-dmukhin@ford.com>
References: <20260205013606.3384798-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Add new CONRING_SHIFT Kconfig parameter to specify the boot console buffer size
as a power of 2.

The supported range is [14..27] -> [16KiB..128MiB].

Set default to 15 (32 KiB).

Resolves: https://gitlab.com/xen-project/xen/-/issues/185
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>
---
Changes since v4:
- n/a
---
 docs/misc/xen-command-line.pandoc |  5 +++--
 xen/drivers/char/Kconfig          | 24 ++++++++++++++++++++++++
 xen/drivers/char/console.c        |  6 +++---
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index c1f2def9f99c..87392142e8e9 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -425,10 +425,11 @@ The following are examples of correct specifications:
 ### conring_size
 > `= <size>`
 
-> Default: `conring_size=16k`
-
 Specify the size of the console ring buffer.
 
+The default console ring buffer size is selected at build time via
+CONFIG_CONRING_SHIFT setting.
+
 ### console
 > `= List of [ vga | com1[H,L] | com2[H,L] | pv | dbgp | ehci | xhci | none ]`
 
diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index 8e49a52c735b..d083ba4c9cdf 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -95,6 +95,30 @@ config SERIAL_TX_BUFSIZE
 
 	  Default value is 32768 (32KiB).
 
+config CONRING_SHIFT
+	int "Console ring buffer size (power of 2)"
+	range 14 27
+	default 15
+	help
+	  Select the boot console ring buffer size as a power of 2.
+	  Run-time console ring buffer size is the same as the boot console ring
+	  buffer size, unless overridden via 'conring_size=' boot parameter.
+
+	    27 => 128 MiB
+	    26 =>  64 MiB
+	    25 =>  32 MiB
+	    24 =>  16 MiB
+	    23 =>   8 MiB
+	    22 =>   4 MiB
+	    21 =>   2 MiB
+	    20 =>   1 MiB
+	    19 => 512 KiB
+	    18 => 256 KiB
+	    17 => 128 KiB
+	    16 =>  64 KiB
+	    15 =>  32 KiB (default)
+	    14 =>  16 KiB
+
 config XHCI
 	bool "XHCI DbC UART driver"
 	depends on X86
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 86319600e0af..522b2f489a53 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -339,12 +339,12 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
  * ********************************************************
  */
 
-/* conring_size: allows a large console ring than default (16kB). */
+/* conring_size: override build-time CONFIG_CONRING_SHIFT setting. */
 static uint32_t __initdata opt_conring_size;
 size_param("conring_size", opt_conring_size);
 
-#define _CONRING_SIZE 16384
-#define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
+#define _CONRING_SIZE       (1U << CONFIG_CONRING_SHIFT)
+#define CONRING_IDX_MASK(i) ((i) & (conring_size - 1))
 static char __initdata _conring[_CONRING_SIZE];
 static char *__read_mostly conring = _conring;
 static uint32_t __read_mostly conring_size = _CONRING_SIZE;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 01:36:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 01:36:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221356.1529658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnoI9-0002ng-NS; Thu, 05 Feb 2026 01:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221356.1529658; Thu, 05 Feb 2026 01:36: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 1vnoI9-0002mM-Hu; Thu, 05 Feb 2026 01:36:21 +0000
Received: by outflank-mailman (input) for mailman id 1221356;
 Thu, 05 Feb 2026 01:36: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 1vnoI8-0002cG-0K
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 01:36:20 +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 1vnoI7-003wRJ-33;
 Thu, 05 Feb 2026 01:36:19 +0000
Received: from [140.209.201.102] (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 1vnoI7-00HVXb-1R;
 Thu, 05 Feb 2026 01:36: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=bNWaJuUXW1hcVfeutPblFaJxcDIyBZhI3ZQ6lYZGoTo=; b=SVkMCn+PN2IcPts2W9aqfA74Q/
	3LhLaJthRaMLGDt5IMwKF9TsHjQWxQA7RlLRpqGUdCnP2GOxwcTbPJLIrxLIc2VA31I/9bsnqXfwA
	UDaUW6Ov1D2RETN8r6ef+r+kBXyRGddOfvmkexjwjkzLLeuL5XAIz5uOpY/KdZMYKOn8=;
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 6/6] xen/console: add conring buffer size alignment setting
Date: Wed,  4 Feb 2026 17:36:06 -0800
Message-ID: <20260205013606.3384798-7-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260205013606.3384798-1-dmukhin@ford.com>
References: <20260205013606.3384798-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Introduce CONFIG_CONRING_ALIGN_PAGE_SIZE to control rounding down of the
user-defined conring buffer size.

Also, update the logline reporting the final conring buffer size to report
bytes instead of kilobytes, since the user-defined size may not necessarily
be kilobyte-alined.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/drivers/char/Kconfig   |  7 +++++++
 xen/drivers/char/console.c | 15 +++++++++------
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index d083ba4c9cdf..1b96fbc3ed7c 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -95,6 +95,13 @@ config SERIAL_TX_BUFSIZE
 
 	  Default value is 32768 (32KiB).
 
+config CONRING_ALIGN_PAGE_SIZE
+	bool
+	default y
+	help
+	  This selects the console ring buffer size alignment (rounding down)
+	  to a multiple of PAGE_SIZE.
+
 config CONRING_SHIFT
 	int "Console ring buffer size (power of 2)"
 	range 14 27
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 9394ab2a89eb..c13818715a52 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -470,12 +470,15 @@ void __init console_init_ring(void)
         return;
 
     opt_conring_size = max(opt_conring_size, conring_size);
-    size = ROUNDDOWN(opt_conring_size, PAGE_SIZE);
-    if ( size != opt_conring_size )
+    if ( IS_ENABLED(CONFIG_CONRING_ALIGN_PAGE_SIZE) )
     {
-        opt_conring_size = size;
-        printk(XENLOG_WARNING "Rounding down console ring size to multiple of %lu KiB.\n",
-               PAGE_SIZE >> 10);
+        size = ROUNDDOWN(opt_conring_size, PAGE_SIZE);
+        if ( size != opt_conring_size )
+        {
+            opt_conring_size = size;
+            printk(XENLOG_WARNING "Rounding down console ring size to multiple of %lu KiB.\n",
+                   PAGE_SIZE >> 10);
+        }
     }
     if ( opt_conring_size >= GB(2) )
     {
@@ -512,7 +515,7 @@ void __init console_init_ring(void)
 
     nrspin_unlock_irqrestore(&console_lock, flags);
 
-    printk("Allocated console ring of %u KiB.\n", opt_conring_size >> 10);
+    printk("Allocated console ring of %u bytes.\n", opt_conring_size);
 }
 
 /*
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 01:36:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 01:36:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221355.1529654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnoI9-0002g9-Ch; Thu, 05 Feb 2026 01:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221355.1529654; Thu, 05 Feb 2026 01:36: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 1vnoI9-0002fQ-6G; Thu, 05 Feb 2026 01:36:21 +0000
Received: by outflank-mailman (input) for mailman id 1221355;
 Thu, 05 Feb 2026 01:36: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 1vnoI7-0002TG-1r
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 01:36: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 1vnoI6-003wR7-3B;
 Thu, 05 Feb 2026 01:36:18 +0000
Received: from [140.209.201.102] (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 1vnoI6-00HVXX-1W;
 Thu, 05 Feb 2026 01:36: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=BMutOBe+27MwLrOuLnd1uuC/N9cHX1rSjncNYS0rwBk=; b=YfLCsDy85/YQXPUp+nhtR32ejQ
	sNRH1x0KloisX4lyHEJmPs0Te51ZWTdZWTWd4K7GeNECWxBny/uWMP4+bMudNtgCqPSJGJwuZ4ki6
	8YIz55bbVEYQKEssoW8dLT1cAECE4ZzUyYzpn0AGeqgkwgIKtzS8L92YeDloOis1lc0Y=;
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 5/6] xen/console: update conring memory allocation
Date: Wed,  4 Feb 2026 17:36:05 -0800
Message-ID: <20260205013606.3384798-6-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260205013606.3384798-1-dmukhin@ford.com>
References: <20260205013606.3384798-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

conring buffer doesn't need to be aligned to it's size; it just needs to be
contiguous. Use xmalloc_bytes() in console_init_preirq() for run-time
conring buffer allocation.

Warn user when the conring size is being changed behind the user's
back during the console initialization.

Also, limit the user-selectable conring buffer size to the maximum of 2GB
and minimum of _CONRING_SIZE.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/drivers/char/console.c | 28 +++++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 3ad86fd436e2..9394ab2a89eb 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -463,20 +463,34 @@ static void cf_check conring_dump_keyhandler(unsigned char key)
 void __init console_init_ring(void)
 {
     char *ring;
-    unsigned int start, size, chunk, order, memflags;
+    unsigned int start, size, chunk;
     unsigned long flags;
 
     if ( !opt_conring_size )
         return;
 
-    order = get_order_from_bytes(max(opt_conring_size, conring_size));
-    memflags = MEMF_bits(crashinfo_maxaddr_bits);
-    while ( (ring = alloc_xenheap_pages(order, memflags)) == NULL )
+    opt_conring_size = max(opt_conring_size, conring_size);
+    size = ROUNDDOWN(opt_conring_size, PAGE_SIZE);
+    if ( size != opt_conring_size )
     {
-        BUG_ON(order == 0);
-        order--;
+        opt_conring_size = size;
+        printk(XENLOG_WARNING "Rounding down console ring size to multiple of %lu KiB.\n",
+               PAGE_SIZE >> 10);
     }
-    opt_conring_size = PAGE_SIZE << order;
+    if ( opt_conring_size >= GB(2) )
+    {
+        opt_conring_size = GB(2);
+        printk(XENLOG_WARNING "Limiting user-configured console ring size.\n");
+    }
+    else if ( opt_conring_size < _CONRING_SIZE )
+    {
+        opt_conring_size = _CONRING_SIZE;
+        printk(XENLOG_WARNING "Using compile-time console ring size.\n");
+    }
+
+    /* Contiguous buffer; does not need to be naturally aligned. */
+    ring = xmalloc_bytes(opt_conring_size);
+    BUG_ON(ring == NULL);
 
     nrspin_lock_irqsave(&console_lock, flags);
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 01:36:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 01:36:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221354.1529648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnoI9-0002d4-0b; Thu, 05 Feb 2026 01:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221354.1529648; Thu, 05 Feb 2026 01:36: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 1vnoI8-0002ct-Sj; Thu, 05 Feb 2026 01:36:20 +0000
Received: by outflank-mailman (input) for mailman id 1221354;
 Thu, 05 Feb 2026 01:36: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 1vnoI6-0002Qc-Ul
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 01:36: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 1vnoI6-003wQh-01;
 Thu, 05 Feb 2026 01:36:17 +0000
Received: from [140.209.201.102] (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 1vnoI5-00HVXL-1b;
 Thu, 05 Feb 2026 01:36: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=uMEQbYnd5xAAaBu981UD1vQcoXX8eKP0LOT3hk6YJ3Q=; b=mam4JDzfk/p6OWqgGA5SomxTJ1
	kfYr2LSIJttLdq4REByJY0418pIva21EdHEZQIO78b3QA0GPewW29bZ0QHloo0DXgouG4vk2mrXcv
	mviqLNow7s48GtjqYemVl4uDFo1wfUx6XF4hlmHTfx54LHwxzj9LP/4Aocal7ROGpHfk=;
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 4/6] xen/console: use memcpy() in console_init_ring()
Date: Wed,  4 Feb 2026 17:36:04 -0800
Message-ID: <20260205013606.3384798-5-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260205013606.3384798-1-dmukhin@ford.com>
References: <20260205013606.3384798-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Make console_init_ring() more efficient by using memcpy()'s, rather than
copying the ring a byte at a time.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/drivers/char/console.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index ef9131439bba..3ad86fd436e2 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -463,7 +463,7 @@ static void cf_check conring_dump_keyhandler(unsigned char key)
 void __init console_init_ring(void)
 {
     char *ring;
-    unsigned int i, order, memflags;
+    unsigned int start, size, chunk, order, memflags;
     unsigned long flags;
 
     if ( !opt_conring_size )
@@ -479,11 +479,23 @@ void __init console_init_ring(void)
     opt_conring_size = PAGE_SIZE << order;
 
     nrspin_lock_irqsave(&console_lock, flags);
-    for ( i = conringc ; i != conringp; i++ )
-        ring[i & (opt_conring_size - 1)] = conring[i & (conring_size - 1)];
+
+    start = conringc & (conring_size - 1);
+    size = min(conringp - conringc, conring_size);
+    chunk = min(size, conring_size - start);
+
+    memcpy(&ring[0], &conring[start], chunk);
+    if ( size > chunk )
+        memcpy(&ring[chunk], &conring[0], size - chunk);
+
+    /* Data is moved to [0..size), re-position conring pointers. */
+    conringc = 0;
+    conringp = size;
+
     conring = ring;
     smp_wmb(); /* Allow users of console_force_unlock() to see larger buffer. */
     conring_size = opt_conring_size;
+
     nrspin_unlock_irqrestore(&console_lock, flags);
 
     printk("Allocated console ring of %u KiB.\n", opt_conring_size >> 10);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 01:36:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 01:36:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221353.1529638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnoI6-0002NY-Pd; Thu, 05 Feb 2026 01:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221353.1529638; Thu, 05 Feb 2026 01:36: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 1vnoI6-0002NR-Ml; Thu, 05 Feb 2026 01:36:18 +0000
Received: by outflank-mailman (input) for mailman id 1221353;
 Thu, 05 Feb 2026 01:36: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 1vnoI5-00025u-1m
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 01:36: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 1vnoI5-003wQU-06;
 Thu, 05 Feb 2026 01:36:16 +0000
Received: from [140.209.201.102] (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 1vnoI4-00HVXH-1g;
 Thu, 05 Feb 2026 01:36: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=V01t8A+mJ7h/gTCjHOoEQ3pd7zM8Gkx0R6n2fTb3EgQ=; b=Vq17SajWMVN+UU0/U0os2P+SNq
	HODh3cO6Rpp7W/QCtNQePQiQdqqLD4Px4w0nnJMwibiTsww3OmeoQ+BF0ZauW2mHftLMYPOMGPj6J
	ecweXR72JxhTRg9FLRCSHjdvUrgnlbKbRjEkN6VgVNB+uV4mPZzwz3Byp1Gjm2ePIocs=;
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 3/6] xen/console: promote conring{,_size} to __ro_after_init
Date: Wed,  4 Feb 2026 17:36:03 -0800
Message-ID: <20260205013606.3384798-4-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260205013606.3384798-1-dmukhin@ford.com>
References: <20260205013606.3384798-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Both conring{,_size} should be RO after initialization is completed.

Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/drivers/char/console.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 522b2f489a53..ef9131439bba 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -346,8 +346,8 @@ size_param("conring_size", opt_conring_size);
 #define _CONRING_SIZE       (1U << CONFIG_CONRING_SHIFT)
 #define CONRING_IDX_MASK(i) ((i) & (conring_size - 1))
 static char __initdata _conring[_CONRING_SIZE];
-static char *__read_mostly conring = _conring;
-static uint32_t __read_mostly conring_size = _CONRING_SIZE;
+static char *__ro_after_init conring = _conring;
+static uint32_t __ro_after_init conring_size = _CONRING_SIZE;
 static uint32_t conringc, conringp;
 
 static void cf_check conring_notify(void *unused)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 01:36:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 01:36:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221351.1529617 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnoI4-0001vS-Bz; Thu, 05 Feb 2026 01:36:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221351.1529617; Thu, 05 Feb 2026 01:36:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnoI4-0001uv-9R; Thu, 05 Feb 2026 01:36:16 +0000
Received: by outflank-mailman (input) for mailman id 1221351;
 Thu, 05 Feb 2026 01:36: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 1vnoI3-0001iz-6Q
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 01:36: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 1vnoI3-003wQC-0N;
 Thu, 05 Feb 2026 01:36:14 +0000
Received: from [140.209.201.102] (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 1vnoI2-00HVX2-1u;
 Thu, 05 Feb 2026 01:36: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=2hWVAX5cInV9+JHNZ4ERQlXamvda79ZLFDIRyBNBnyg=; b=WxbR2H+NO/hx9lVr0ieB68MZO1
	bdXxPrxCmpFVs8mf4ofpC35FMRpfjksgu01WDUKkJthpYm2MMtecQxX14e0A8s87rZ1PPnBuABYjP
	Sf88iq0ZzaRvu22v4l9Gv6AoVZeNhiutYr8GNdwIEziqNFonoF+wX7ThC5dXjiSEkLJQ=;
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 1/6] xen/console: group conring code together
Date: Wed,  4 Feb 2026 17:36:01 -0800
Message-ID: <20260205013606.3384798-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260205013606.3384798-1-dmukhin@ford.com>
References: <20260205013606.3384798-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Denis Mukhin <dmukhin@ford.com> 

Groups conring buffer management code in the console driver for ease of
maintaining this code.

Not a functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- new patch
---
 xen/drivers/char/console.c | 161 ++++++++++++++++++-------------------
 1 file changed, 80 insertions(+), 81 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 2bdb4d5fb417..86319600e0af 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -126,17 +126,6 @@ static int cf_check parse_console_timestamps(const char *s);
 custom_runtime_param("console_timestamps", parse_console_timestamps,
                      con_timestamp_mode_upd);
 
-/* conring_size: allows a large console ring than default (16kB). */
-static uint32_t __initdata opt_conring_size;
-size_param("conring_size", opt_conring_size);
-
-#define _CONRING_SIZE 16384
-#define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
-static char __initdata _conring[_CONRING_SIZE];
-static char *__read_mostly conring = _conring;
-static uint32_t __read_mostly conring_size = _CONRING_SIZE;
-static uint32_t conringc, conringp;
-
 static int __read_mostly sercon_handle = -1;
 
 #ifdef CONFIG_X86
@@ -350,6 +339,17 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
  * ********************************************************
  */
 
+/* conring_size: allows a large console ring than default (16kB). */
+static uint32_t __initdata opt_conring_size;
+size_param("conring_size", opt_conring_size);
+
+#define _CONRING_SIZE 16384
+#define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
+static char __initdata _conring[_CONRING_SIZE];
+static char *__read_mostly conring = _conring;
+static uint32_t __read_mostly conring_size = _CONRING_SIZE;
+static uint32_t conringc, conringp;
+
 static void cf_check conring_notify(void *unused)
 {
     send_global_virq(VIRQ_CON_RING);
@@ -416,47 +416,6 @@ long read_console_ring(struct xen_sysctl_readconsole *op)
 }
 #endif /* CONFIG_SYSCTL */
 
-
-/*
- * *******************************************************
- * *************** ACCESS TO SERIAL LINE *****************
- * *******************************************************
- */
-
-/* Characters received over the serial line are buffered for domain 0. */
-#define SERIAL_RX_SIZE 128
-#define SERIAL_RX_MASK(_i) ((_i)&(SERIAL_RX_SIZE-1))
-static char serial_rx_ring[SERIAL_RX_SIZE];
-static unsigned int serial_rx_cons, serial_rx_prod;
-
-static void (*serial_steal_fn)(const char *str, size_t nr) = early_puts;
-
-int console_steal(int handle, void (*fn)(const char *str, size_t nr))
-{
-    if ( (handle == -1) || (handle != sercon_handle) )
-        return 0;
-
-    if ( serial_steal_fn != NULL )
-        return -EBUSY;
-
-    serial_steal_fn = fn;
-    return 1;
-}
-
-void console_giveback(int id)
-{
-    if ( id == 1 )
-        serial_steal_fn = NULL;
-}
-
-void console_serial_puts(const char *s, size_t nr)
-{
-    if ( serial_steal_fn != NULL )
-        serial_steal_fn(s, nr);
-    else
-        serial_puts(sercon_handle, s, nr);
-}
-
 /*
  * Flush contents of the conring to the selected console devices.
  */
@@ -501,6 +460,75 @@ static void cf_check conring_dump_keyhandler(unsigned char key)
         printk("failed to dump console ring buffer: %d\n", rc);
 }
 
+void __init console_init_ring(void)
+{
+    char *ring;
+    unsigned int i, order, memflags;
+    unsigned long flags;
+
+    if ( !opt_conring_size )
+        return;
+
+    order = get_order_from_bytes(max(opt_conring_size, conring_size));
+    memflags = MEMF_bits(crashinfo_maxaddr_bits);
+    while ( (ring = alloc_xenheap_pages(order, memflags)) == NULL )
+    {
+        BUG_ON(order == 0);
+        order--;
+    }
+    opt_conring_size = PAGE_SIZE << order;
+
+    nrspin_lock_irqsave(&console_lock, flags);
+    for ( i = conringc ; i != conringp; i++ )
+        ring[i & (opt_conring_size - 1)] = conring[i & (conring_size - 1)];
+    conring = ring;
+    smp_wmb(); /* Allow users of console_force_unlock() to see larger buffer. */
+    conring_size = opt_conring_size;
+    nrspin_unlock_irqrestore(&console_lock, flags);
+
+    printk("Allocated console ring of %u KiB.\n", opt_conring_size >> 10);
+}
+
+/*
+ * *******************************************************
+ * *************** ACCESS TO SERIAL LINE *****************
+ * *******************************************************
+ */
+
+/* Characters received over the serial line are buffered for domain 0. */
+#define SERIAL_RX_SIZE 128
+#define SERIAL_RX_MASK(_i) ((_i)&(SERIAL_RX_SIZE-1))
+static char serial_rx_ring[SERIAL_RX_SIZE];
+static unsigned int serial_rx_cons, serial_rx_prod;
+
+static void (*serial_steal_fn)(const char *str, size_t nr) = early_puts;
+
+int console_steal(int handle, void (*fn)(const char *str, size_t nr))
+{
+    if ( (handle == -1) || (handle != sercon_handle) )
+        return 0;
+
+    if ( serial_steal_fn != NULL )
+        return -EBUSY;
+
+    serial_steal_fn = fn;
+    return 1;
+}
+
+void console_giveback(int id)
+{
+    if ( id == 1 )
+        serial_steal_fn = NULL;
+}
+
+void console_serial_puts(const char *s, size_t nr)
+{
+    if ( serial_steal_fn != NULL )
+        serial_steal_fn(s, nr);
+    else
+        serial_puts(sercon_handle, s, nr);
+}
+
 /*
  * CTRL-<switch_char> changes input direction, rotating among Xen, Dom0,
  * and the DomUs started from Xen at boot.
@@ -1125,35 +1153,6 @@ void __init console_init_preirq(void)
     }
 }
 
-void __init console_init_ring(void)
-{
-    char *ring;
-    unsigned int i, order, memflags;
-    unsigned long flags;
-
-    if ( !opt_conring_size )
-        return;
-
-    order = get_order_from_bytes(max(opt_conring_size, conring_size));
-    memflags = MEMF_bits(crashinfo_maxaddr_bits);
-    while ( (ring = alloc_xenheap_pages(order, memflags)) == NULL )
-    {
-        BUG_ON(order == 0);
-        order--;
-    }
-    opt_conring_size = PAGE_SIZE << order;
-
-    nrspin_lock_irqsave(&console_lock, flags);
-    for ( i = conringc ; i != conringp; i++ )
-        ring[i & (opt_conring_size - 1)] = conring[i & (conring_size - 1)];
-    conring = ring;
-    smp_wmb(); /* Allow users of console_force_unlock() to see larger buffer. */
-    conring_size = opt_conring_size;
-    nrspin_unlock_irqrestore(&console_lock, flags);
-
-    printk("Allocated console ring of %u KiB.\n", opt_conring_size >> 10);
-}
-
 void __init console_init_irq(void)
 {
     serial_init_irq();
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 02:09:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 02:09:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221413.1529677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnooW-0001hx-BZ; Thu, 05 Feb 2026 02:09:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221413.1529677; Thu, 05 Feb 2026 02: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 1vnooW-0001hp-92; Thu, 05 Feb 2026 02:09:48 +0000
Received: by outflank-mailman (input) for mailman id 1221413;
 Thu, 05 Feb 2026 02:09:46 +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 1vnooU-0001hj-8Z
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 02:09:46 +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 1vnooU-003xaS-0I;
 Thu, 05 Feb 2026 02:09:45 +0000
Received: from [140.209.201.102] (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 1vnooT-00HXSU-1c;
 Thu, 05 Feb 2026 02: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>
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=JZ0IqeUKiUvpVv+1LWGj3tiNHEiiBwZMVorXIjS40XI=; b=
	tXfpl84aIdmnOxa40xWzSwR+VIG4gGMx5WCItzxtZCu68VeKdFSYwbGhA3PpvW/eQh6MT7WFsu+RL
	a1UtFaI+gnGxyicIdnM8fYnaaIIxf15+JZxlf38hnIQrYIYd/3X2BUuGMAz6owjSF0YzaOy09u47N
	WN2A7phPz0CUOBWfU=;
From: dmukhin@xen.org
Date: Wed, 4 Feb 2026 18:09:44 -0800
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, grygorii_strashko@epam.com,
	anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org,
	roger.pau@citrix.com, jason.andryuk@amd.com, victorm.lira@amd.com,
	andrew.cooper3@citrix.com, jbeulich@suse.com,
	sstabellini@kernel.org
Subject: Re: [PATCH v10 5/5] xen: enable dom0less guests to use console_io
 hypercalls
Message-ID: <aYP76EsG3bf3Yp4I@kraken>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-5-stefano.stabellini@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260204233712.3396752-5-stefano.stabellini@amd.com>

On Wed, Feb 04, 2026 at 03:37:12PM -0800, Stefano Stabellini wrote:
> Enable dom0less guests on ARM to use console_io hypercalls:
> - set input_allow = true for dom0less domains
> - update the in-code comment in console.c
> - prioritize the VUART check to retain the same behavior as today
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

The code looks good, just one remark wrt prioritizing VUART check.

> ---
>  xen/common/device-tree/dom0less-build.c |  2 ++
>  xen/drivers/char/console.c              | 16 ++++++++++------
>  2 files changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> index 840d14419d..cb7026fa7e 100644
> --- a/xen/common/device-tree/dom0less-build.c
> +++ b/xen/common/device-tree/dom0less-build.c
> @@ -829,6 +829,8 @@ static int __init construct_domU(struct kernel_info *kinfo,
>  
>      rangeset_destroy(kinfo->xen_reg_assigned);
>  
> +    d->console->input_allowed = true;
> +
>      return rc;
>  }
>  
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index d3ce925131..7f0c3d8376 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -610,11 +610,20 @@ static void __serial_rx(char c)
>      if ( ACCESS_ONCE(console_rx) == 0 )
>          return handle_keypress(c, false);
>  
> +    /* Includes an is_focus_domain() check. */
>      d = console_get_domain();
>      if ( !d )
>          return;
>  
> -    if ( is_hardware_domain(d) )

Hardware domain on x86 may have an emulated UART (not in upstream, through,
I need to send v8 for NS16550 series...). The patch which illustrates the
idea:
   https://lore.kernel.org/xen-devel/20250908211149.279143-2-dmukhin@ford.com/

So this code (hopefully soon) will need adjustment again.

I would update the code to something like:



    if ( is_hardware_domain(d) && !domain_has_vuart(d) )
    {
        // handle hardware domain
    }
#ifdef CONFIG_SBSA_VUART_CONSOLE
    else if ( domain_has_vuart(d) )
        /* Deliver input to the emulated UART. */
        rc = vpl011_rx_char_xen(d, c);
#endif



But domain_has_vuart() needs to be defined for all architectures
(currently it is hidden in arch/arm/vuart.c).

Or perhaps it is possible to postpone the change?

What do you think?

> +#ifdef CONFIG_SBSA_VUART_CONSOLE
> +    /* Prioritize vpl011 if enabled for this domain */
> +    if ( d->arch.vpl011.base_addr )
> +    {
> +        /* Deliver input to the emulated UART. */
> +        rc = vpl011_rx_char_xen(d, c);
> +    }
> +    else
> +#endif
>      {
>          unsigned long flags;
>  
> @@ -633,11 +642,6 @@ static void __serial_rx(char c)
>           */
>          send_guest_domain_virq(d, VIRQ_CONSOLE);
>      }
> -#ifdef CONFIG_SBSA_VUART_CONSOLE
> -    else
> -        /* Deliver input to the emulated UART. */
> -        rc = vpl011_rx_char_xen(d, c);
> -#endif
>  
>      if ( consoled_is_enabled() )
>          /* Deliver input to the PV shim console. */
> -- 
> 2.25.1
> 
> 


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 02:13:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 02:13:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221427.1529688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnori-0003Bh-Q9; Thu, 05 Feb 2026 02:13:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221427.1529688; Thu, 05 Feb 2026 02:13: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 1vnori-0003Ba-Mf; Thu, 05 Feb 2026 02:13:06 +0000
Received: by outflank-mailman (input) for mailman id 1221427;
 Thu, 05 Feb 2026 02:13:06 +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 1vnori-0003BU-5t
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 02:13:06 +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 1vnori-003xg6-0B;
 Thu, 05 Feb 2026 02:13:05 +0000
Received: from [140.209.201.102] (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 1vnorh-00HXiz-1R;
 Thu, 05 Feb 2026 02: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>
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=lkmfRbS/QtnjJUx5SLebBDTlx29CMpQ2hnCYkU6OZOI=; b=
	mtZ+Giob9KpB9oBChRpl/thWOCLLcivyDBBK3e1cMPko18uMU1hykZ/OAKMe16ce5By1Y+YSYoohm
	ARk36TktoGN5lvRm5WR7Ugdjayzy7/o4UGnkqK2Ys1Q2QaKKi3S2bDA+yQN5QfXLjFe0sb7Dz8NE/
	XpoXTkKOZKrLljshY=;
From: dmukhin@xen.org
Date: Wed, 4 Feb 2026 18:13:04 -0800
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, grygorii_strashko@epam.com,
	anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org,
	roger.pau@citrix.com, jason.andryuk@amd.com, victorm.lira@amd.com,
	andrew.cooper3@citrix.com, jbeulich@suse.com,
	sstabellini@kernel.org
Subject: Re: [PATCH v10 1/5] xen/console: use ACCESS_ONCE for console_rx
Message-ID: <aYP8sKgWWN6i3T/F@kraken>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-1-stefano.stabellini@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260204233712.3396752-1-stefano.stabellini@amd.com>

On Wed, Feb 04, 2026 at 03:37:08PM -0800, Stefano Stabellini wrote:
> There can be concurrent reads and writes to the console_rx variable so
> it is prudent to use ACCESS_ONCE.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

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


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 06:07:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 06:07:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221490.1529698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnsWO-0005Ue-Kx; Thu, 05 Feb 2026 06:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221490.1529698; Thu, 05 Feb 2026 06:07: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 1vnsWO-0005UV-FH; Thu, 05 Feb 2026 06:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1221490;
 Thu, 05 Feb 2026 06:07: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=2jf7=AJ=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1vnsWN-0005UN-K7
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 06:07:19 +0000
Received: from jpms-ob02.noc.sony.co.jp (jpms-ob02.noc.sony.co.jp
 [2001:cf8:ace:41::5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5aa1841-0258-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 07:07:11 +0100 (CET)
Received: from unknown (HELO jpmta-ob1.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::6])
 by jpms-ob02.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Feb 2026 15:07:04 +0900
Received: from unknown (HELO JPC00244420)
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob1.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Feb 2026 15:07:03 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5aa1841-0258-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770271632; x=1801807632;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=UBawYbMlXUOKgrz6LV1oJhX/gsrHRCKMioT7xEbWP+c=;
  b=VFWUOk52jOWcGi8pj9k9yr/ikYHOdIKZqb2K1uWGipADY1SE3PQwOTAd
   L1fLtNarakqJrl3BQYWs+6W4oyyUdZ+0FIs0dyOj6CQ+MfqzHxh2KAdIH
   KGWt31+gP6+/qFc0RaScONa/Iscq8V+bJRGQChyS1VjkFs/6uNL0Klj4V
   F3dZo4x3hIQEWk2FM2k9w1/kJjQDxg9fIL1jKGEn8vhCi5zUeIAZOAEps
   yaLH9WYQl9P3XdFxUeL/srUNydMF/rc/fmyYMC55dStmlEPivS0aHwUhs
   mv9q4sb+M1E35Nwfj+vY5pbcasXXbcmYpXwcqGxmNsm8oUL3mj/HMM43P
   A==;
X-IronPort-AV: E=Sophos;i="6.21,274,1763391600"; 
   d="scan'208";a="608419792"
Date: Thu, 5 Feb 2026 15:07:01 +0900
From: Shashank Balaji <shashank.mahadasyam@sony.com>
To: Sohil Mehta <sohil.mehta@intel.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>, stable@vger.kernel.org
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Message-ID: <aYQzhRN83rJx6DSb@JPC00244420>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
 <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>
 <aYMOqXTYMJ_IlEFA@JPC00244420>
 <722b53a7-7560-4a1b-ab26-73eeed3dffa5@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <722b53a7-7560-4a1b-ab26-73eeed3dffa5@intel.com>

On Wed, Feb 04, 2026 at 10:53:28AM -0800, Sohil Mehta wrote:
> On 2/4/2026 1:17 AM, Shashank Balaji wrote:
> 
> > __x2apic_disable disables x2apic only if boot_cpu_has(X86_FEATURE_APIC)
> > and x2apic is already enabled. 
> 
> I meant the X86_FEATURE_X2APIC and not X86_FEATURE_APIC.

My bad, I got that wrong. __x2apic_disable checks for X86_FEATURE_APIC,
while x2apic_enabled checks for X86_FEATURE_X2APIC.

> But, thinking about it more, checking that the CPU is really in X2APIC mode
> by reading the MSR is good enough.

But yes, I agree.

> > x2apic_enabled also does the same checks,
> > the only difference being, it uses rdmsrq_safe instead of just rdmsrq,
> > which is what __x2apic_disable uses. The safe version is because of
> > Boris' suggestion [1]. If that's applicable here as well, then rdmsrq in
> > __x2apic_disable should be changed to rdmsrq_safe.
> 
> I don't know if there is a strong justification for changing to
> rdmsrq_safe() over here. Also, that would be beyond the scope of this
> patch. In general, it's better to avoid such changes unless an actual
> issue pops up.

Makes sense.

> >> I considered if an error message should be printed along with this. But,
> >> I am not sure if it can really be called a firmware issue. It's probably
> >> just that newer CPUs might have started defaulting to x2apic on.
> >>
> >> Can you specify what platform you are encountering this?
> > 
> > 
> > I'm not sure it's the CPU defaulting to x2apic on. As per Section
> > 12.12.5.1 of the Intel SDM:
> > 
> > 	On coming out of reset, the local APIC unit is enabled and is in
> > 	the xAPIC mode: IA32_APIC_BASE[EN]=1 and IA32_APIC_BASE[EXTD]=0.
> > 
> > So, the CPU should be turning on in xapic mode. In fact, when x2apic is
> > disabled in the firmware, this problem doesn't happen.
> > 
> 
> It's a bit odd then that the firmware chooses to enable x2apic without
> the OS requesting it.

Well, the firmware has a setting saying "Enable x2apic", which was
enabled. So it did what the setting says

> Linux maintains a concept of X2APIC_ON_LOCKED in x2apic_state which is
> based on the hardware preference to keep the apic in X2APIC mode.
> 
> When you have x2apic enabled in firmware, but the system is in XAPIC
> mode, can you read the values in MSR_IA32_ARCH_CAPABILITIES and
> MSR_IA32_XAPIC_DISABLE_STATUS?
> 
> XAPIC shouldn't be disabled because you are running in that mode. But,
> it would be good to confirm.

With x2apic enabled by the firmware, and after kernel switches to xapic
(because no interrupt remapping support), bit 21 (XAPIC_DISABLE_STATUS)
of MSR_IA32_ARCH_CAPABILITIES is 0, and MSR_IA32_XAPIC_DISABLE_STATUS
MSR is not available.
 
> > Either way, a pr_warn maybe helpful. How about "x2apic re-enabled by the
> > firmware during resume. Disabling\n"?
> 
> I mainly want to make sure the firmware is really at fault before we add
> such a print. But it seems likely now that the firmware messed up.


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 07:17:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 07:17:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221502.1529709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vntc4-0005j8-Gf; Thu, 05 Feb 2026 07:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221502.1529709; Thu, 05 Feb 2026 07: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 1vntc4-0005j1-Cl; Thu, 05 Feb 2026 07:17:16 +0000
Received: by outflank-mailman (input) for mailman id 1221502;
 Thu, 05 Feb 2026 07: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vntc3-0005iq-2R
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 07: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 b1438502-0262-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 08:17:13 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47fedb7c68dso5048565e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 23:17:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830fe53c23sm56909425e9.3.2026.02.04.23.17.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 23:17:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1438502-0262-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770275832; x=1770880632; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tFn0979k4UELp91ZT2YrW/dcYK0iU/fgMpjIjnylqTw=;
        b=EUySlwqmnRLL+ifPfUEUmA7p+ZHR/UogpbI/TlY68YM/rSDv7ygyF3csKGA8YGxk4E
         0bu86qFuHdGL6TusFN9nx40lAnvLN/xdMBBhPFGU8zjLR04AS5VuUE97pcxuXhe7X9Dk
         eqE7jwKrjbku2I5PaiN7rNQ1qzGZDWmfb+mmCmYfq8+GXs1I/837YpF4Ry0e+xAd3LAI
         w2/AtStAq+N9pOgbnh/eNdgIL5WgYTnm2r33OHvPQJxn/pjukZcWMW++zPeG0V4CgyOx
         dh2W+R3w/7AZL56iBcH54zSIIFMmz2t5p5Z9RLpbsFiulHUeqfcTgilq45DfDr1PYd7q
         go+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770275832; x=1770880632;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tFn0979k4UELp91ZT2YrW/dcYK0iU/fgMpjIjnylqTw=;
        b=jE1jAzmH4PfigfcTwIbaiDLTw9f33ZfV8G277JyhJrIb7Y1wlN3bqYfEtfMlMEbDA4
         1Cy60WXgLKlbWM2X/PJIfyjDZNvId1no6j338cUVkWSn+K2lexlDq4xeZPX5fUFJm4qn
         raJhjMGidT/fRZbtIJXWtKAuHgrQigC2vq8J8hDHcvlYeal/Ev8Q3of3BG+0leJ6tmAL
         7z4a/sLH13in8LBaT3u/tl4zK6d5cPdVrWEk/09lJIaDfFe0U6g8CqqP5c33mvCWbqG4
         IViCeAo4RL2mQ68JcRptWuMRrYdJ4B9HN7wYDwjkjL6sZLwqiBzcDooGufVdR0SSriO7
         8FXw==
X-Forwarded-Encrypted: i=1; AJvYcCVEa1dQtEx/3IEA/EQEcpQb4TLCcDuE0itFITPj+dwBby0MRzOD61qmLntZgszskEXcZdQIneNokt0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw34vBZk5+iw7h2AI27Vf+4cqD09GD0+itF4mRdxW311rY+iKJX
	SCQKqomLS4Oj+I8uMPPWw1EeQOJ24CvMmPnG/WgdWmjfuY1F5KX8HYIqrFjd/XuIjA==
X-Gm-Gg: AZuq6aJ0SROiuaXZUojmRbPeiLTN8wvMftuXNg0UkOHqGYDbH8l/hFQBCtqG6u+/4gM
	PUShCuGpiuyyGpJQ5J+8GKq7EfZqgKvEvM4lyuEW6BS3tn2NULURaOtDJn+wKDqCmo864OuHiAd
	Oy9GP6kWfj47ajEBexd7KsbuCmpMQTIRemO1DJWGQIpdvTkUbpcqam8JkV538IzaGgx48YfuPc4
	KtD5UsCrNsXdcKj/H/CK5XAc7A4TKa/zmwFsUCfzFzHI85BJg538dlV0qefXf0xsdpykTbxnW/j
	7TJKsHLaPuLHHlHb52jUC4zTgZqrPKh6OXmHeqnwNKk4uXYIyFJHONyN7ndxSPDQgY/YIAov8YX
	WEt33xJ/bWQ5ePBgRGFdgccK2Gkf6uz7tdttWMxKqYbQEsufQ473+fB+M8RgnhPRtROnCp5ZSKJ
	iffzItLP7s0ntN9TsWeFBXCZavUNnQll2UNxy4r3BWAWYEgfmiiFWnNt5FdmmWlH2ou+GQu0z4n
	hpY+rg9k2s43A==
X-Received: by 2002:a05:600c:628b:b0:479:2f95:5179 with SMTP id 5b1f17b1804b1-4830e931e2amr74097195e9.15.1770275832545;
        Wed, 04 Feb 2026 23:17:12 -0800 (PST)
Message-ID: <0a6d9ae8-ac1b-4287-9a42-1d91ad5d35a0@suse.com>
Date: Thu, 5 Feb 2026 08:17:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v8 1/2] xen/console: handle multiple domains using
 console_io hypercalls
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 grygorii_strashko@epam.com, anthony.perard@vates.tech, michal.orzel@amd.com,
 julien@xen.org, roger.pau@citrix.com, jason.andryuk@amd.com,
 victorm.lira@amd.com, andrew.cooper3@citrix.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2601291404410.2238666@ubuntu-linux-20-04-desktop>
 <20260129220858.2371938-1-stefano.stabellini@amd.com>
 <0fc9a80a-8621-4ce4-b2f9-c102e975b05b@suse.com>
 <alpine.DEB.2.22.394.2602031502000.3175371@ubuntu-linux-20-04-desktop>
 <0a437580-a373-4aeb-a153-b3dca0cf2bb7@suse.com>
 <alpine.DEB.2.22.394.2602041524120.3175371@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.2602041524120.3175371@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 00:30, Stefano Stabellini wrote:
> On Wed, 4 Feb 2026, Jan Beulich wrote:
>> 2) As all of this is for dom0less only (for now at least), did you consider
>>    to make all of these changes dependent upon a new Kconfig option, so to
>>    avoid impacting other environments in case issues remain when this has
>>    gone in?
> 
> Effectively it is already the case because:
> 
> #define max_console_rx (max_init_domid + 1)
> 
> I could easily add an #ifdef around is_focus_domain() so that in case
> CONFIG_DOM0LESS_BOOT is disabled it defaults to is_hardware_domain() but
> that wouldn't really help because thanks to the definition of
> max_console_rx, effectively it works the same way when
> CONFIG_DOM0LESS_BOOT is disabled.
> 
> I think what you are asking would be more about the locking changes in
> guest_console_write, but for those I cannot really use #ifdef to retain
> the current position of the locks. The resulting code would not be good.

Yes, the request was (primarily) about the locking changes (additions!),
as these can affect non-dom0less as well. I may try to make suggestions
when looking at the next version.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 07:25:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 07:25:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221517.1529718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vntjt-0007J4-7j; Thu, 05 Feb 2026 07:25:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221517.1529718; Thu, 05 Feb 2026 07:25: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 1vntjt-0007Ix-51; Thu, 05 Feb 2026 07:25:21 +0000
Received: by outflank-mailman (input) for mailman id 1221517;
 Thu, 05 Feb 2026 07:25: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vntjs-0007Io-1W
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 07:25:20 +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 cd5c67c8-0263-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 08:25:09 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4806cc07ce7so4929335e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 04 Feb 2026 23:25:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d2bab2sm67332275e9.3.2026.02.04.23.25.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 04 Feb 2026 23:25:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd5c67c8-0263-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770276309; x=1770881109; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QBVWEpktYBWqTUwZ0yzPzFn4ghTuUTmZOg4TOLS4fBc=;
        b=Cvvy0YpHek4nYrL+NUqc4njeLJE0dXFHwMy/tH0KXTVUnkDk09tqoSYSwimsYlzFcp
         +03Ynq/mzDv0gnUBHxdV4Yny5tWdvpRiOkOOZUdwxDv+YmsykA33aCgVr0SelUNuYMz9
         alYbEpbTE9+aCfIPiGlTRCDNXncdQ7iO6myxp7lrTkC/AY0e0/E0vbyKS522qOMj2D+D
         EIafPcS7nP8POOPk/nMSlZbdJxoCN12IJLnaPRLvZZj/PRN85+LdRS5qtzNnjhuh/lhX
         fJAcq+I3w7oivJv5dIDPJhvYaPFI800AEyOv/Sh/ChsBFtg4WC52vHDsgRRkLYSt0OJ7
         zOzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770276309; x=1770881109;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QBVWEpktYBWqTUwZ0yzPzFn4ghTuUTmZOg4TOLS4fBc=;
        b=h6AUzSDHko4SgiSJIx/gDbaqPhvuW+1WuF90K5ttASQyyZKIUlQNaIFOt8jQ205ffH
         7qGkG/t1nCr4Lq7bJronspg2NkU8QsUQcRskfxgvjuIewL9Ovt5LycjJ0TL3jEZKT1EL
         FiKGRZrPOvlETWw9E9+mhbn4aOtvz5s4viOpTyWv9t/1cStpHXwPxVUe/nMguf2sO/t6
         vFHyGLGpYFYZDCLfmAhAOgnBKSWrTuBSrHA2Eat1M2SPgx6Lvft5gsJYgC8hyehZcLID
         RGL6FMH5xCi1agfOpe9U3yvz5HX/nRCtLegUJjXWnkOhUdwjLe8wRilcBb1z8dc36zrx
         j2Ew==
X-Forwarded-Encrypted: i=1; AJvYcCX58L2umbH86ugtZP0jN7SWmtuzeF6Sjg3JKGQybDmamGVkBrYkbquuc2Ztx7XYctqVCjab+9LJbdI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxdmhAx3kbX0YVY/tdEE8+EMSZqjMTuUPhtkSL4XpJfZn5VXOfJ
	EbZO6X39lDcmM9DQ74W/hsTOw1q8HgiJxBO7Qtvf0tnkgiIWsBO5ytAprY4pc2PMlw==
X-Gm-Gg: AZuq6aKCSciJfxB8BXu+SUCEZihKZ9syJwXxO0c1HELeNjBcOgStOYzhVFvJSc1y1/L
	2C962DqoeqN3HspfYG8ptowPidqxc7BOLPkp3svFx8YXFwB6WMMqRXnJtSRFDgW1E4RxgwpZte/
	YlKUe3Lzga4bqOOgsQgelZh9aO5vYFLQ+FdF1ihUsqFc+gIbRIyNy1YsE+NV3eJ6gxNuYmdeLmW
	On4VzJ5lTGjNp/zN7bFzh1mUVEUJGjKnKq8uoDZb8oMf7RG+mC9BspDoHT9+Q6s6hRzNUzHn4Ew
	PxLDJh3m9b0ad+Su66J4k4aAaws0I1bxDWauuM2nX48kxlKGayResJF9jSi9u1j9kTqAPvlJGtn
	Gkz8HFY/+ue06LGpgXpe28HxweKyslcoS6erwZ/YvNWLbGvhsrLUU369od00A+WLrUOexEbRjSv
	e6ZYYdVX526xpXWVyPuMVhSkE6qYNNJM4OAXmtvKs6SITaPfJ81iu45Wrrj1K2WLcs/UOh2Ettu
	LI=
X-Received: by 2002:a05:600c:1d0a:b0:45d:d8d6:7fcc with SMTP id 5b1f17b1804b1-4830e99b3ffmr76619825e9.27.1770276309050;
        Wed, 04 Feb 2026 23:25:09 -0800 (PST)
Message-ID: <ce7abced-0ad2-449a-b6e2-87dd720dbbf6@suse.com>
Date: Thu, 5 Feb 2026 08:25:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Bertrand Marquis <bertrand.marquis@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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com> <aYNySRMnVyNixlzr@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: <aYNySRMnVyNixlzr@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 17:22, Roger Pau Monné wrote:
> On Wed, Feb 04, 2026 at 04:31:12PM +0100, Jan Beulich wrote:
>> On 04.02.2026 14:16, Bertrand Marquis wrote:
>>> --- /dev/null
>>> +++ b/config/Darwin.mk
>>> @@ -0,0 +1,4 @@
>>> +include $(XEN_ROOT)/config/StdGNU.mk
>>
>> Darwin isn't really a GNU environment, is it? The definitions in that file
>> may be suitable, but perhaps a brief comment is warranted?
> 
> It's similar to FreeBSD in that regard, which is also not a GNU
> environment as the compiler and toolchain is LLVM.  However the LLVM
> toolchain attempt to be command line and output compatible with the
> GNU one AFAIK.

Hmm, FreeBSD (unlike OpenBSD and NetBSD) may be somewhat complicated in this
regard. First, I don't think the default compiler used matters. What does
matter is behavior in certain (many?) respects. E.g. in GNU binutils
ELFOSABI_FREEBSD is treated as equivalent to ELFOSABI_GNU in certain places.
So it may be viewed as a "hybrid"? (Of course there are many(?) other things
where GNU environments are expected to "behave" in certain ways.)

> FreeBSD.mk also includes StdGNU.mk.  Maybe we want to rename StdGNU.mk
> to generic.mk or common.mk?

Not sure here.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 07:45:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 07:45:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221534.1529727 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnu3O-0001nO-Pd; Thu, 05 Feb 2026 07:45:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221534.1529727; Thu, 05 Feb 2026 07: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 1vnu3O-0001nH-Mo; Thu, 05 Feb 2026 07:45:30 +0000
Received: by outflank-mailman (input) for mailman id 1221534;
 Thu, 05 Feb 2026 07:45: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=BdQL=AJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnu3M-0001n3-Tj
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 07:45:29 +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 a31b94ef-0266-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 08:45:27 +0100 (CET)
Received: from AS9PR05CA0156.eurprd05.prod.outlook.com (2603:10a6:20b:496::18)
 by AM8PR08MB6532.eurprd08.prod.outlook.com (2603:10a6:20b:316::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Thu, 5 Feb
 2026 07:45:21 +0000
Received: from AMS1EPF00000048.eurprd04.prod.outlook.com
 (2603:10a6:20b:496:cafe::e2) by AS9PR05CA0156.outlook.office365.com
 (2603:10a6:20b:496::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 07:45:19 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF00000048.mail.protection.outlook.com (10.167.16.132) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Thu, 5 Feb 2026 07:45:21 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DU0PR08MB9608.eurprd08.prod.outlook.com (2603:10a6:10:448::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Thu, 5 Feb
 2026 07:44:15 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 07:44: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: a31b94ef-0266-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=J5XLHrCbxieS/KL3esgyuCzaPCHFFCk/piDEw2Q/gW9qUeZnHwBID4Mymd8k9DFIOowJ2BkfZbLFcx02Cc5WYpTYu/NPQ8ZRrj+cmXNGVLBmqho8k7uYkus2l2AZP+bPoTVc+3v4WtTmLZYshTx3fK0rLOrEQXyA6xL+nG61aCGe+EF+gbgA0V4v506z3gjgfYDxNTqup/gu8D6qS4lSslVPDkIsyyx4d2aJryduEXxLJW6739ya7XnX6zPZkZxlB+db9ukkwlL7n5h+hnzDv57TSvrZLYPuOkzz2WqJ17vzTzBWvRszps89ugmoDR//Wu1fw5mfdL84You7bqvgdQ==
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=gc3lKEF9j0RG9jiIh2b4N9jrAj9EvhH8sotbzhhim5k=;
 b=htwsNKo//Bo4SZPa/g2+GW+22cutu+nd/tsFDpMteCVZIKzeg4y+FmoAY28tobOOkaAWiA+1i4+ZXQ6+7jDvvj6zJy2uZJW+k+qhAuRPqguGNYbnv6/Yp9+Rc90RSh4LXRu1n51NgUxTx1JOrVA7sw/cmrFzSjbE0D/HRFwhbjtMrhkFE1jYLp4mRkySuX4Hd8uNVNQYQE68GQ7sQ0pKpVvUWGQ0MS25/SHqtm9jMHeKIE83d7noTb5F/3MN4CA9exzxxxsUTcExjmrquhcbOjB3qiKdug1fvP8qDZUY8q9TYLBhRaxaM0jhn2WgDPA267Y4mWlFXGYW8gX7/t340g==
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=gc3lKEF9j0RG9jiIh2b4N9jrAj9EvhH8sotbzhhim5k=;
 b=ZHrgTxePQWQMCSh/Et+kUFTlmFJmgB66pnLXYUwzpPcYB6NMANdt06KH6pw0VYbSgs1bg43psUb2B7r0qz3Ic+U7mLSjdBkpuycL/SZyBd30yo1vH9UTC2Rqr7DthLjwCHg40uHdFoZlVxIonBARREQGOm50poMnZLmnaUIvuHA=
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=ke23X3QYix7sHjLFOWZOCqb3fidnKA0mWoBljLETAA5ggmtgytl6dGZYcS6WRcKniPmRLzRPgcVSQ9FDZFGFY7uusp4XPxh6Cgq6Guvj9H31QykUsgWAznkaz2akkrOfzFhyvq8ww5NUy2pvSYyLg5JnSwieMccTU2hIRNB6fTVwKk9ZqcdfTlAJBA/LzJkAKDhgwlkvKoM+XrmyLxV0cVpGVV1UjRSeIKPNL0oXK0HsXjSCXH0IQV5BZRHABVL/9hDHZByIyTqGEe1E6MT0nztf86W6m5wy9KK819PII1295MBPFkpVKHDM8njEitblYGxaLz+EPVZwcbm10aMRhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gc3lKEF9j0RG9jiIh2b4N9jrAj9EvhH8sotbzhhim5k=;
 b=MD2L74oolYah6TdrFpy1UXMh5sjeItrhXK4yJ36myW7ZjE5OHH5XA/wW7jbiWUXKLeSk1c0ReVo2drXaryUe9pBEWon+RICduPq/ltrp94y+eh+E9QKCokRHKgfje2EkvpRS+eB/w5wk6doGwDxJbjvRH4Q+dU4GOTaGqBHLESD0CALi21duBsy7cDwxCAqnPkV2JX5qIiVBY40H1RQAnnQURiU7roWd7vzDHAYqE1XrhPwvfk76NcskcJVUI2YRAhUvEcwXjUOzSnvkzkAkvhf0+uiweAAxns80Ij8Zh9Y77+pH6ZrvigyoUeVbSKcJTtB0spGATuThG+R+Q/vAFg==
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=gc3lKEF9j0RG9jiIh2b4N9jrAj9EvhH8sotbzhhim5k=;
 b=ZHrgTxePQWQMCSh/Et+kUFTlmFJmgB66pnLXYUwzpPcYB6NMANdt06KH6pw0VYbSgs1bg43psUb2B7r0qz3Ic+U7mLSjdBkpuycL/SZyBd30yo1vH9UTC2Rqr7DthLjwCHg40uHdFoZlVxIonBARREQGOm50poMnZLmnaUIvuHA=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Topic: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Index: AQHcldiTYCc32vRyb0mp6O53Aox8PLVyquQAgAAD9QCAAAhKAIABA5IA
Date: Thu, 5 Feb 2026 07:44:15 +0000
Message-ID: <65D4FEA7-DECD-4DDD-B119-4625F72ED585@arm.com>
References:
 <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
 <eca1e783-b147-4230-a340-41b8cb694c5e@suse.com>
In-Reply-To: <eca1e783-b147-4230-a340-41b8cb694c5e@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DU0PR08MB9608:EE_|AMS1EPF00000048:EE_|AM8PR08MB6532:EE_
X-MS-Office365-Filtering-Correlation-Id: 73cbcee4-8306-43e1-7d0c-08de648a83d9
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?pyWm1Xon6vlwfn3rBFttEZvrxgz4Fv45cQ/tw/Hu5PWbb9AKSNNl4v6Sk9?=
 =?iso-8859-1?Q?Pkmn3NQRWt352WchIj5D1u0IFFAk/MunUF5tCbI0V3/I0xGihclSXIPbaw?=
 =?iso-8859-1?Q?kFGMFIjrtPMdblxc1YTA8VUHPLNVzmA0eUWu+gilbbmJCQq5k/EaaPP/B0?=
 =?iso-8859-1?Q?RhhQ+JGKdCgW/iUSB4zlT+TnfnLb5UL6KeQUGSOpBu8zcM6UG82nDZVR4i?=
 =?iso-8859-1?Q?ObSWdJeee0UGKNU/l3hKN2/Ws1epyhKz7L0MzpniheI9qBO+sOrHM1sOa8?=
 =?iso-8859-1?Q?3YunAJqq9YEcXCZEXCuEWIMrojfjmwl/LfkK3T416Cy+tWfQJJiPWiMhXL?=
 =?iso-8859-1?Q?z07J6oePoV+Yt9J+zqCxZYYrcywxaDdmyaNG1TCfx21bMUVDS/iglZh7UU?=
 =?iso-8859-1?Q?YUFZHb0X9wJVxj3gVezx8WOye4rEVYWHYIWXgzY0Lc5HBGG5fJFLpb1q+U?=
 =?iso-8859-1?Q?Wjf0czwux1hvioFxPaHVmIrsc4efgthbTkJfPEl+jCb+W02yKPOBXf66F/?=
 =?iso-8859-1?Q?6dkCXd+KWZrB2tNBWV69e/1LYNzkQEHVhc0GNzA6edUOsIIgU86J7Ye5PP?=
 =?iso-8859-1?Q?CjH18knAlU/Bwsoy++Ka5oxR+uh1RJXgtu+yCsweKD5S1kSg0+WPCPbxd0?=
 =?iso-8859-1?Q?qHi8K7BQL7gGiS10qS8x9U3evjAI0nmLNa/41lgm9uy1SWia3eBVc7Lxoa?=
 =?iso-8859-1?Q?O+XKoMWEWSl5EvEu4ft4iCEAoGzkFRkw7pd37CHwUILT6NmTyXafLlKWvi?=
 =?iso-8859-1?Q?zKZeru01dUS8fF3s3sA+rpdlTYrgN0PXP7pKotIjVSRizfa/5mvqQawR9e?=
 =?iso-8859-1?Q?cQ0qlkKrAjn7Rz5IYj8QW20if6gZ6kVxzGqq6yOBNHX8q0X2T1eDkHUIO7?=
 =?iso-8859-1?Q?/xDCZmjEUElyQIelRdWw78ISGbhr5sPBLgUg3rLuXcmtRXbPrDoqW3+Lra?=
 =?iso-8859-1?Q?/07I9W9ooQoZ0/KtndI35t3tHbbyUq3zTz9NVqiBWsoeD6ip1FxensTBQU?=
 =?iso-8859-1?Q?im/bqcceZ0Sng4U2jT0I6XQjYlUe1HPGf/3mU0kvJfy2/jKyNeIb8XY5uW?=
 =?iso-8859-1?Q?yGonuCiUdK4Q594THxYNNbE4g30azrpXSdzbwSujbbE2k8ruB9U46tMAvP?=
 =?iso-8859-1?Q?lVNOE/zo1Ok20UAbWBH0ImYeCM2G6PcbRk0qN4Fbv1TAIMtoPjy9NQa95z?=
 =?iso-8859-1?Q?C1NvB1IDkWRBCJSOOyDCgXmUHTyMnp4RwqzlrBoOFHwBvtQSOL5ep6GeZY?=
 =?iso-8859-1?Q?GLVNns65Z9fEFeL8Y5VbSI2/YWwRrksXGYbKaWecx1uwIyCsNfAslBv66s?=
 =?iso-8859-1?Q?4tj2TAK/n6oIBlAABo1iunlP6mk83qH+1wFszt8XVWzgCgjjVJbbeX9YCt?=
 =?iso-8859-1?Q?pFmWzrcqZNrxV7xBFFAQiwxkui1MBf8jNlx9Wv6xEmKUlxAIUYBSud/bLm?=
 =?iso-8859-1?Q?N85RL2Ew+pQ3goD/qwhTL/Mo8Mx6fGSZOAr2HwV3ahX3ZZBCeDGraPmSbv?=
 =?iso-8859-1?Q?1RgGqBuQXF6xG7WtNlDfdjAnnxtR20Yt3di2t9x4XfCYZy8Bumjm8Cq9kt?=
 =?iso-8859-1?Q?pQsZ+3BlGP67xp3mJJwAo5tB48qaCk2v/EFrC6YKrXGkpnaDMBjnGos0j0?=
 =?iso-8859-1?Q?wUNHdwqbHkmIhZHunMvhbZICAuWSsWWDZOvJeFaP7DI+jkiVNsSxarIxhL?=
 =?iso-8859-1?Q?ELwE/ECU/SdfrA6J9H4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <8C9E445DF3832746B9F7FF717507326D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9608
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000048.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8ecce320-6cb6-40ae-3a34-08de648a5c63
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|82310400026|376014|1800799024|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?x3ELEfLm9OB5L1cwGG5pApv4LSnvQ1ZrdL4lKFcMgCzMWbAaTQXCzeJVBx?=
 =?iso-8859-1?Q?gj6svpDCffZXRYtDTIVYa+3Xfyr9wT+n78EVgcv9VICKzShCW5anbeGgED?=
 =?iso-8859-1?Q?u03VAUXvSflq19IzGGaSI9QguYIEMIsBz4cjJfjtmZI9QF6MmxK6simzlM?=
 =?iso-8859-1?Q?CBsCS3hWHNnhtOm5dVJSWA0JgsB7BIi7j+V/Y5NRwNPrBHXJk4FCcVIKjp?=
 =?iso-8859-1?Q?cb/CjP2CkvxRkTyxaGC/mpnakZrdkXnWHzagBxWmQc9evIi0WiqKwbUD/B?=
 =?iso-8859-1?Q?6xvcntPz0FVqRGKYdk3vBBXWAUTDJTIna6pMWsQx0ykpZB3hJWnLHsEwU3?=
 =?iso-8859-1?Q?Z+c6Kp0Sbw4/0WCvgWt7jG5JbxuNCLYp6RARlQYPFfT2oCfMVPb4gDxsMp?=
 =?iso-8859-1?Q?Ct+RBeYQFKjC0IA1xExrXSMvAca3EeFz2F434NJJWD1KxUXq49eCgBlcy8?=
 =?iso-8859-1?Q?uTyg0uLfpO+XgoIIM4d+/OjvN9Ub0CfhSL0d3R9DvpkM5ConisvHhv1fyt?=
 =?iso-8859-1?Q?XVOLYzgyqpm07xkfsCSWTnqi+c/GYMx+Vpa1fXsQ7/H3s+YpoGdR7A8+ce?=
 =?iso-8859-1?Q?cLckB2zjaU7ZqJOYKEFlIhEn7bG/N19nMwAh63QbwjzkS54VCxi9nVX5lE?=
 =?iso-8859-1?Q?a18wvyiixFkgDB3BeZPMjSryAiVtSmmjj18C98v/aLOjZ4hCm6c0DfzB9/?=
 =?iso-8859-1?Q?8QLN7fHjx5UUNgkzki815AEP4HlFO33JhRjrS+1EpFP3QQiFvQCWK5WfSz?=
 =?iso-8859-1?Q?aHl9Y5z895DasxuMGxh+SOIlueX48A1YBarZyd8uofHD4xzlNhJkJ3tNPn?=
 =?iso-8859-1?Q?7pWgjvRdIeWtfJUvuNhELKVtgCoKVxLcJY71MrSYmkFjdnxu1D7tQhRRGX?=
 =?iso-8859-1?Q?v5p4DFmin1jsUH1fwvuABFMpZulYQRdUWa4QmUPsXzZKFK23tOVRi3mwr8?=
 =?iso-8859-1?Q?Jvl6q4kBik6fxWMtwEY3dZBbaXqkR0EU1B3HZOfSrUPpbWIq3hGUvSBl8v?=
 =?iso-8859-1?Q?DybG2tg+AhmE21Zq01xH3fnWKdSq5mYsWFC4GZDruRFIw08JK4VVV+G88W?=
 =?iso-8859-1?Q?XRIdjPjTTnstY24Xxc9UnmxCu8SPeHoc3YvpDYUdkJdq4EIu31gdNr2lsc?=
 =?iso-8859-1?Q?LfeMpOuRWK/lhZsLLHzRz2Fzo6kHkYjXuROUjUC73vS+98eZmVLoxNrqM5?=
 =?iso-8859-1?Q?RaZscVX6Gj8bT+Dt2Lii6nQXbtaqDjxUhDivMAUl32lDmshTpgtpPfkE/3?=
 =?iso-8859-1?Q?qS10A17CX5yHaPBbHjmyj/yFzJ5tdV15AqyxpbVFWQlzF0W7QF5EURm3Q/?=
 =?iso-8859-1?Q?AZOhmJKDwbZ58SYFWztMKP/cb8QcNRVM1mdJIfNgSvRnFcSTQ3BCePASJ3?=
 =?iso-8859-1?Q?Rc+ZuQX+mHSkKBk5PXRMSVKBUWHIhCnfe4VZVB9Ej4V/1zebfiqd3po+ns?=
 =?iso-8859-1?Q?LFloP8Ud2t+ZivOZjqfSK8+Sq1EqeQAZpg5CtPjDJGVl17i5Wtc83URb1+?=
 =?iso-8859-1?Q?mBlV+iZJc7MSvxwmpr1j375zW8xWjqUNvTi2Jrr8ImBOAi//H4SQA/Dg8h?=
 =?iso-8859-1?Q?CRlaoFb0GmoC/e+/NV8lxsM9+qmIr37OLw1ARECMrA4C+YkgLFNrsszV2p?=
 =?iso-8859-1?Q?bMXbRxqbmzib428t+azSz02t1xBXSJbODt1rTYCCuxNvcxAtm81Tk/Fo+0?=
 =?iso-8859-1?Q?vyOzKVybnAu0TG51eS3GzP7uNJR0HdgdZ9e8EgS2qKfmVmH310xe4+YiVs?=
 =?iso-8859-1?Q?2OLA=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)(36860700013)(14060799003)(82310400026)(376014)(1800799024)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Pp1e1OAijDdyK03U68AxjViWi/jcuzM5uOq3o6Lhjmz/xN/SdJuM8KkVOj6HqFKpaY5SGqGH0C/5BYYt7GMqSgEQYp31ei2s0dS8GpUAQC5c4SHafoYoMCLFRjLFgsGIJk9reTni/xsKqCfa3l3Azy+KcDj0uX09JbUwI8V9GHi9YGL3Ck/7HiVDddavcgWMLUgSHRfDM1yxjYpNJqIXR+552PfB3kYxg5DSEj+WAn0td8VnkEeiEy7ftfkmEr5g6FvuyBY23d7wULae2ok+LOf0Xu7OeCwyELJtdHNr6akPeqIOj0LwpTkwOxhkLlaJYruDkdykuiPb5hGtmaqePtE/sC4ZblxqDx9NuH9YmpgUzsDCWcj05ho1cye1C5KK3LMCByZJq7UA+8k2TPbq//CweDyaDkURXBlh18FiF9ldNKyEI5SoisGUY612Hk5/
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 07:45:21.2595
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 73cbcee4-8306-43e1-7d0c-08de648a83d9
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:
	AMS1EPF00000048.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6532

Hi Jan,

> On 4 Feb 2026, at 17:15, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 04.02.2026 16:45, Bertrand Marquis wrote:
>>> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
>>> On 04.02.2026 14:16, Bertrand Marquis wrote:
>>>> Xen does not currently document how to build the hypervisor on macOS, =
and
>>>> there is no Darwin configuration for a Homebrew-based toolchain. In
>>>> addition, the Makefile silent-mode detection can be tripped by -I path=
s
>>>> that contain an "s", which hides build commands unexpectedly.
>>>=20
>>> This wants submitting as a standalone fix, so it can be backported. But=
 see
>>> also below. I don't, however, understand how -I could be useful here - =
our
>>> build system is self-contained, so any include directives used should b=
e
>>> satisfiable without any -I.
>>=20
>> This is added automatically inside our Makefile if you build out of tree=
:
>>=20
>> MAKEFLAGS +=3D --include-dir=3D$(abs_srctree)
>>=20
>> which ends up being -Ixxx when tested.
>=20
> Hmm, but I do have an 's' in my source path, yet I need to explicitly pas=
s
> -s for the build to be silent.

I did further investigations and my previous assumptions where actually
wrong because i looked tat MAKEFLAGS value once the whole Makefile
was parsed and the include-dir flag is added after so it was not the reason
of the issue.

In fact the issue is coming from variables set on the command line (and
in my case O=3D with a path containing a s).
So you can easily reproduce the issue by just passing XX=3Ds to the make
command line to do a test.

As a consequence, your proposed solution filtering -% is not working and
the only reliable solution is to actually use firstword to actually get the
short options list. This is making an assumption on MAKEFLAGS having
them first but my tests are showing that it is always the case.
I would propose to put a comment to explain the assumptions on which
the filtering is based on top:

Something like this:
diff --git a/xen/Makefile b/xen/Makefile
index 13e336ba5484..a7924fcb7af5 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -113,10 +113,10 @@ else
     Q :=3D @
 endif

-# If the user is running make -s (silent mode), suppress echoing of
-# commands
-
-ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
+# If the user is running make -s (silent mode), suppress echoing of comman=
ds.
+# This relies on GNU make encoding short options in the first MAKEFLAGS wo=
rd;
+# if this changes in the future, this check may need revisiting.
+ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)
     quiet :=3D silent_
 endif

Also i can put a fixes tag if you think that is useful:
Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_rule")

Please tell me if that sounds ok for you and I will resubmit this as 2 diff=
erent patches
instead of a single one.

Cheers
Bertrand

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:03:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:03:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221555.1529746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnuKk-0005Je-Kn; Thu, 05 Feb 2026 08:03:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221555.1529746; Thu, 05 Feb 2026 08: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 1vnuKk-0005JX-HE; Thu, 05 Feb 2026 08:03:26 +0000
Received: by outflank-mailman (input) for mailman id 1221555;
 Thu, 05 Feb 2026 08: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=aqXU=AJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vnuKj-0005JR-3W
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:03:25 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 21c3eaff-0269-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 09:03:19 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by SA1PR03MB6418.namprd03.prod.outlook.com (2603:10b6:806:1c1::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Thu, 5 Feb
 2026 08:03:16 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c%4]) with mapi id 15.20.9587.010; Thu, 5 Feb 2026
 08:03: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: 21c3eaff-0269-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wjVdNoNjVC8bqlCil6V+NKIA6bgorbTNhtMDEqfghuH7HFvlkvmD9hiHUsP7DnlFZOL1ERTK78izdX2HeDhxtN8FCfUJ3xWqoXwG0YJHqgyG3sLajUrpL6J+0KtIKhjKBZzDUORWmr+LOle1S4EhDT8bEC0u4SRRPXDrL8LgBp4MD0c2vOqIDEEtLqHAdn6NVw5S7UDBfRTAOmILJxx7MvCmFShuLbpK+2ehy731U4VzUgV/xdXOLSVs4KzVN4OaKWgdJSjFvl0scjiK48l+/hZCvQg45Vnlu/pgBfDe8uOex3YXlF1uYN6K1Xeiunx9ftUcQC5xL1LHwB2QZzXuug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nu+dQd17RgtDvJogBKvj46VI6xNKQrXq46hIvVdkBCA=;
 b=TUru9tpd0ZJxkSzXMsTkPHQSwMth51y6yW4g5vMPCPc7J110mDbeylRPSOWRSt4sQB2f1hQOyfAY94tuhyr2Oil/9lRTvbZ3LD5423cRAd47TKmLEXC3HFJiXRQYPPBj4o1CIkgSO0dloaPQsXl1uG5BXbgLxLTfElD73cvlTnLi2cB34haMCG/v47HHzwQwyClR0zCMATYpl2s7Atw5LjLKp65e92hlYRDobL+wBXaHz+l95HP6WInABun2k9dgzfkPi1ETWdRz7lRWm2PLtsfRzyxSuS04J9qgB4I2PgXeggTBH/rRdJicTtJKyW7KSWmL26lJRSI3V3jp4Tp9Cg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nu+dQd17RgtDvJogBKvj46VI6xNKQrXq46hIvVdkBCA=;
 b=k5UGRPC02rmXmIvaJAylqOaNHSLV/UmrTDXPPfk6qrteaDiSL3zRXhAW/QzcV8UtxsUpU8ocB3Oapx0zt4IaKzb7/7e3SWV/ge7YsHiPhPlCkUh1ghUWxe/o/y58vNi63RCGIfHGA3dYgilJJgGWXJjU4KYVzW1xxz2FVVeBRsI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3] x86/domain: adjust limitation on shared_info allocation below 4G
Date: Thu,  5 Feb 2026 09:03:08 +0100
Message-ID: <20260205080308.91057-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0006.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:1::7)
 To BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|SA1PR03MB6418:EE_
X-MS-Office365-Filtering-Correlation-Id: b4c15765-5aaf-4f3f-b6a0-08de648d0453
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cHJaZ1FkL3NQMklvMTBTYU54REY3dDhYc1pmaXkrZ3lVY0xOdnAzQThES0c1?=
 =?utf-8?B?S0xlTUdIRGJTSW40dXFqcDNRWGJlSjZxMEtYRitva1loMmJGUHJzczFzai83?=
 =?utf-8?B?VnhQWnZsRmUxSUhVbzdQclZ2c05TZ2lMZGpCaHJNeE9qOEc4eGRETUhqTzgy?=
 =?utf-8?B?SmE0QlRXUUtJbHRCMm5LYnBjMDh5Q1V2UzE3UUhDYzB3Z0lndHUwckZxaUZw?=
 =?utf-8?B?TEV4SkoyMmZiMlNUeUlVdGpxeTRoUW1YNzVNSmx4eGQrUmE1aDJ4YWZ6cjI3?=
 =?utf-8?B?Y2tlQUFLT2R5N3BUS0FGZll0eHZCc2EvS3Y4VngvSmpuc2xNZFM0ZC9DTTZl?=
 =?utf-8?B?YWJlaFZpWlo3dm1kRzVNS2xubGZ6M1ljdTRUam9ZZzd0c3JRZHRNSTY5MjNX?=
 =?utf-8?B?VlVVaXhGcTlFYmZ5d1k1WE5DWDhNWlBhblhRcVIyUnpqUjVmckprWG9kR2Z6?=
 =?utf-8?B?N2NFMElVdjJRRTNTVFBMck84RHp3eE53Rk0zZm1pQXllSlEwOEFUam5HeWM2?=
 =?utf-8?B?aEdpYmJJY28zSXVNV0MxTHZSWmtpWWw4K0RzcGVTZmJNeWUrV0ppSTZmb0RH?=
 =?utf-8?B?WXk3MHl2Sk1BT0tKRVhpUVNSVHNHY05tZE5oZE1jUGQwNGVSY2pTYmF3UXU5?=
 =?utf-8?B?eHNSRG9DTEhuVXd5UkQ1YzdHY3JWQU1xN2pPdkI2NjNHSGtWaWVJS2ZYcVJS?=
 =?utf-8?B?RVNxOTc0d0xqMHppdUtUVlk5VVJyNG5BaEtuajI0L3MrWXFlbVQ3ZjFESG9W?=
 =?utf-8?B?bjJhQ3RkR0Zvd2ZKU1JwRFgzNm1McTNQaGQ0MnltU2NVckczU0pCUmdhU1Y1?=
 =?utf-8?B?R1gzbGJ4dFdhZjZmV3hWQWZncCs1bW5BRFNIblhPSGdlSm9yNjQyT2pLT0ZE?=
 =?utf-8?B?VlVaVFlHaWk1aVdGeDlaRkcvRXJIRzkwdDdFT2ExTnA0RXc3ZDhwK1o1V29o?=
 =?utf-8?B?NGJSOXV1KzlpTi9ibGlkOTJRU0lGN0tsb3ptOUVrL2FhVlNQdktmTWlDc1lO?=
 =?utf-8?B?VURLelZMNXgwNTNFTXlHRnh5Y0FIc2RNVEczM0hPVmNSWnZyZ2FuRTc2M1Zw?=
 =?utf-8?B?UTRqL0xiWlo2VUttQWtISEdqUTlrNUJaVkpvbG1aOThzeU9JcWNnY2dEWG1M?=
 =?utf-8?B?SjQ1SG80VEs4dzRER3FhbkJmY2k4Wjdzd0NTOUcrYWltMlZnMjJQQ2FjWnV5?=
 =?utf-8?B?c2tTSElGRStiOTNMaFhjRGd6S2RTdkVha0tCMlVxRVdmbWJMc1o2UE55eStD?=
 =?utf-8?B?eEl4M2tYNHNTS0JZWnhMR28vYTB1K2kzZVl5blRvN0V4YXNNeGNjSzZWTEsv?=
 =?utf-8?B?STBBK0xKM0ZsQVVFWGtmRGg4NU5vYmt3UnJmQ2RSNEJMa0xPNUZKME1lVjln?=
 =?utf-8?B?NXJQR1h3WXNKZ0JDdEhEYkdvUVJkQytQTmNmQUpqVFhxRmxKYTRyZmRDS0Zm?=
 =?utf-8?B?RUdCK3JWTk4xaXhNLzlnbUNuV0pZSFVESk53WHVkaU04YUE1Z0xPckRTNHF5?=
 =?utf-8?B?bEFVUlB4UE9qdGNIT2R1YXo3SlJnTHp2bkwyYW16T3A3S3pCcHVucTcrMWRx?=
 =?utf-8?B?N1ErTnNWbEpNemRTeW1iVGFaMGpNOHVtRy9PTmhtSWdjOVYxSXR6dHlSUG5S?=
 =?utf-8?B?OVhaUmhGZ3pnTVRDOUlFaGk3aXFuZVNCWkZjRUQzNVdlMXRCdnRtR01yZHBv?=
 =?utf-8?B?bEtYamxMbkxFT1VhUUNpT2lpazVndDRORFJBR09xQWxwSUVrSTIwYjc5U2p5?=
 =?utf-8?B?WHNpaTJEc2Fpcmk0ZXhtQ0ZBQzl5alkreUtydEpHdVp3L05rOTgxMExRenB0?=
 =?utf-8?B?UnlLQ1FKd1p5V1dPL0lPcU1sRjZJbXVCWmNlWklwWXpzeUpUUjg1NVduVWVw?=
 =?utf-8?B?NkhkbUdxeTY2OEU5MVA1eFRmZzhoM2RrZ3dqMTcwSDRTZ3JoeEFDU3lQUHA2?=
 =?utf-8?B?MVdPeElHNmVXQVU3NGJmb2FGWG9uN3ZiM2p4bERIZTREYWVoMm1Dby83Ky83?=
 =?utf-8?B?MWMybC9FeGdtb3d1cnp1Ly9vTHBLRkZuTDZRVGVJcDkxdFE0ZWd4TURkWDd5?=
 =?utf-8?B?djAvbEdmWHJDcXpNZndpZ3FTdU03QTdocDBVS0huYXhPa3R5R1pEbmFPaXpT?=
 =?utf-8?Q?21Q8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WEJWNjNFY0c2cDZOMjNuVUQ4Y0RLMVI2L29kWkZIblVRTGFBc1hTQzFTdzRs?=
 =?utf-8?B?ckJZaVlxWnAzLzR5MWpFc3ZpUEw5bVQvSDRqdXZFcXBNbU9pbUpQeW5GVmNL?=
 =?utf-8?B?c205alpkMlpZTHRmckdGb2hKWEJGY3FyczR5enBRajFJbi9tQk9PNzRNNVBW?=
 =?utf-8?B?T2RqTDYwVkgwTnZlOHBiWFZ3SGR5cFp1bWpJMFRPUUJzUDduYlh6QjFLVHA3?=
 =?utf-8?B?Ukd6aHM1TzB0Nk00QmlvU2M1a0sxcFhOY09rNkRqd3BhTElXWnFFZEtWa3Yy?=
 =?utf-8?B?dmlBeUFxVFpXZHUyZjA0VW5nYnd4SWV4NHVYOWpjNWhqeGZ4T3VXRmtkZXBD?=
 =?utf-8?B?bGVQaUZLWVNEOSt2Znd6cDdYSktBOW1sZVcyc1JOQXNPcWFiZk1PMUFOSjNk?=
 =?utf-8?B?VE51T1pyMC9WZTNnVyt4SmZQMmhjREphVzVsQ0xaVEYwbWl3bjMzRHNLQzBB?=
 =?utf-8?B?T25zRXByMVY2cktCem5hR3o3Z011ZDNSYUxySGluUjFzK0NCVm1ONk14TW45?=
 =?utf-8?B?S21abWRnTm4vZlpFS0gxeDJLNkZCOFZvQURCQUtUNHlhaVFKbEZkenJTRzRL?=
 =?utf-8?B?MWVnQVdha0FuR0Rlc0FiZDdQNXpkMWY5aTI4amRDU2tCMVdSYm1Najl5dFdQ?=
 =?utf-8?B?YXFRbU9DRnNNQ2dKTnY3MldhcnEzMU5EbVk3blJMTDIyRHFhZU9KVkhUQ3lD?=
 =?utf-8?B?TnVNVFlrVmtvK1hkckEzY2FVLzNjWXo4US9jOG05VGNUWFY3OE92MDVwYmFX?=
 =?utf-8?B?K0t5K0h5b0diN1BJdVRwN1JvYjlteWtiR3JrMjQ4bEkxZDlaK0JEYldXNzZy?=
 =?utf-8?B?cmhnNVI3dFA1U0ppeC9Ed0gvY0dZL280ZTU4RlpKeU9hMkJveEpJTzhiUlFr?=
 =?utf-8?B?S2dCT2xPY2w0Q1pvR2hSUTVDR1VHTFZLZUtiWkljTDI1NlVmdE12anNKYVFO?=
 =?utf-8?B?NlorL3Y4eUw5U0luU2FNMENBd1V5dEd2UWFWNDE0QzVXWG9oTGgyVThSblY1?=
 =?utf-8?B?STZZMk8xMnRtZGZKVHQxU3pDZldEeHdLbTZyOXFTUzI3d2lGQUxEQVVYUnVn?=
 =?utf-8?B?ckdqUTcraUYzQ01QUXo0Zi9jcUxCWHhlVVkzamtpVjUyZ0JZV3ROM05aNVps?=
 =?utf-8?B?RjBqTzJDNENjSG00ZHd6dzNOcFIxOHdZaHpxWnI1TXdKOERFTjhkWXdaaUJN?=
 =?utf-8?B?NVhYbVRqTUV4aG5KOVlwRzdaYmpudkphK1lLaXVqVHpXZDNJQnp1dlV2eUNT?=
 =?utf-8?B?WC95dkNLc0srenlXVnQ2T2VkZmNYYnVXNDBmaUMzRDc3aFYwK3plWE85TzBo?=
 =?utf-8?B?Rm9XR2VRU1lQSm5QWEZZd0VlYkFjTHdYNi9sSEh5TzJwUnpnNDhNVElFZUVs?=
 =?utf-8?B?dGtEM3VxUGx1SG1mVUF1eWIxbXdIQjJ1VXBpMXpnLzFPVEFxR0NKZlBVVmpG?=
 =?utf-8?B?WTdhNjlaRzVFQWU2SUovTVozZ0ZCMUhXRTNtcHBldE4wWlhGeEcrbGhTb3lx?=
 =?utf-8?B?NVRxYUVUT2xYT1BNZlZVcysrM3g5RTdveXdlc2pzUGNCVncrbkhGYTNUZHV1?=
 =?utf-8?B?d3FwUWZtRGwyZis3TzdmcTJyVjVja0lveXQycGs2NmpseG1KZy9OMjRtTmo0?=
 =?utf-8?B?R0tDUjZvTUlUUzJCNGk2bWxkNGRkRmRyQVkvZXlRWnF5aTJSK09GOGVHNmZj?=
 =?utf-8?B?NXM1TlNnb0hIQWM0QzRHMmxKNS9aVGZtQjBKeHJ1djh0UDdVbmp1Q3RRT0pk?=
 =?utf-8?B?QUliandxTEJiUEhOU0ExQm1Hb21VOVlmZmZwc01IT2JhNGxmNjU5NndCWmlW?=
 =?utf-8?B?VWdjT0JzVHZPWHlaWG45cVBpR0RHN0NCM3h0UnZYZUtDTW43NzB3b0s5YUNq?=
 =?utf-8?B?THZ6OVc4azZlZU1oQnZsMlpLSmZlRmlYZ0hrWkhKUloxUEpaNWhRb3pVWUdU?=
 =?utf-8?B?eWhXcmswbXRrbmlOUDFqcWVXTXRKeGFra2ZVajAxRFFraXJFMmVEYU5zZnRi?=
 =?utf-8?B?eS9aRzZRUTNYdURRRHdzVm1teGxyMWhEU2pGQzRFT09TZlJuZkhRNUZlUHZZ?=
 =?utf-8?B?TEs3L2I3NHVqdU5hQWxtOGZDWFZYUlJOUEhSUlFwT3N1VnpXaWVWTlFvL0wv?=
 =?utf-8?B?bW5yQk9wd3hXYU5aN3hjdWo2SnFRR2pDQy91enJlbXZrbEdJRUx6KzgxTDY4?=
 =?utf-8?B?anRaVS9wYnlqVGxTaWtSQ0ZuVWxYNkJrZU04dlc1ZkxkbDVxdzB1cklCVlho?=
 =?utf-8?B?NVphYkg3RW9jRUdjYVRFSFQ1ZFdXdnNuRFkxTHVBU05kcUdQR3FDNXVsRWlB?=
 =?utf-8?B?MWhxQXQ4bVh1OU83Nko2cTZsTDhwZFNsdSs4UmI3VGFYL2g4YlVjdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4c15765-5aaf-4f3f-b6a0-08de648d0453
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 08:03:16.1544
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cXFUNWu6b1cabfcEBBbNSnMJ2P6mBpfR+WKs9nkj5NBWupyBqCmRaahX23wb4k4hEjRBTYarqqCrQQkUx0iWNQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6418

The limitation of shared_info being allocated below 4G to fit in the
start_info field only applies to 32bit PV guests.  On 64bit PV guests the
start_info field is 64bits wide.  HVM guests don't use start_info at all.

Drop the restriction in arch_domain_create() and instead free and
re-allocate the page from memory below 4G if needed in switch_compat(),
when the guest is set to run in 32bit PV mode.

Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes since v2:
 - Move/reword some comments.
 - Add spaces in for_each_vcpu call.
---
 xen/arch/x86/domain.c    |  6 +-----
 xen/arch/x86/pv/domain.c | 28 ++++++++++++++++++++++++++++
 xen/common/domain.c      |  2 +-
 xen/include/xen/domain.h |  2 ++
 4 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index edb76366b596..8b2f33f1a06c 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -881,11 +881,7 @@ int arch_domain_create(struct domain *d,
     if ( d->arch.ioport_caps == NULL )
         goto fail;
 
-    /*
-     * The shared_info machine address must fit in a 32-bit field within a
-     * 32-bit guest's start_info structure. Hence we specify MEMF_bits(32).
-     */
-    if ( (d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32))) == NULL )
+    if ( (d->shared_info = alloc_xenheap_page()) == NULL )
         goto fail;
 
     clear_page(d->shared_info);
diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index 01499582d2d6..e3273b49269d 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -247,6 +247,34 @@ int switch_compat(struct domain *d)
     d->arch.has_32bit_shinfo = 1;
     d->arch.pv.is_32bit = true;
 
+    /*
+     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
+     * field within the guest's start_info structure.  We might need to free
+     * the current page and allocate a new one that fulfills this requirement.
+     */
+    if ( virt_to_maddr(d->shared_info) >> 32 )
+    {
+        shared_info_t *prev = d->shared_info;
+
+        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
+        if ( !d->shared_info )
+        {
+            d->shared_info = prev;
+            rc = -ENOMEM;
+            goto undo_and_fail;
+        }
+        put_page(virt_to_page(prev));
+        clear_page(d->shared_info);
+        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
+        /*
+         * Ensure all pointers to the old shared_info page are replaced.  vCPUs
+         * below XEN_LEGACY_MAX_VCPUS will stash a pointer to
+         * shared_info->vcpu_info[id].
+         */
+        for_each_vcpu ( d, v )
+            vcpu_info_reset(v);
+    }
+
     for_each_vcpu( d, v )
     {
         if ( (rc = setup_compat_arg_xlat(v)) ||
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 163f7fc96658..4f6977c67aa7 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -305,7 +305,7 @@ static void vcpu_check_shutdown(struct vcpu *v)
     spin_unlock(&d->shutdown_lock);
 }
 
-static void vcpu_info_reset(struct vcpu *v)
+void vcpu_info_reset(struct vcpu *v)
 {
     struct domain *d = v->domain;
 
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 273717c31b3f..52cdf012c491 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -83,6 +83,8 @@ void cf_check free_pirq_struct(void *ptr);
 int  arch_vcpu_create(struct vcpu *v);
 void arch_vcpu_destroy(struct vcpu *v);
 
+void vcpu_info_reset(struct vcpu *v);
+
 int map_guest_area(struct vcpu *v, paddr_t gaddr, unsigned int size,
                    struct guest_area *area,
                    void (*populate)(void *dst, struct vcpu *v));
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:04:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:04:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221562.1529756 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnuM5-0005sg-1J; Thu, 05 Feb 2026 08:04:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221562.1529756; Thu, 05 Feb 2026 08:04: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 1vnuM4-0005sZ-UA; Thu, 05 Feb 2026 08:04:48 +0000
Received: by outflank-mailman (input) for mailman id 1221562;
 Thu, 05 Feb 2026 08:04: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnuM3-0005sO-4y
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:04:47 +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 54fb87c3-0269-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 09:04:44 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-43626796202so41522f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 00:04:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e3a3a9sm11746332f8f.18.2026.02.05.00.04.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 00:04:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54fb87c3-0269-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770278684; x=1770883484; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uWf/SWAsQrEcqXBCdyJQO3DGlSCpL1Xj54p2jYcZXb0=;
        b=MUwvGUJW9bX2IKyklJZXJIKs+vYG7AI1sH6QZeBqwffXcyXr1iShkvYsBSK6iWmAT+
         hYxhH7txG+8jhdiTAbeIhUWjx0bxIPOjf2Gx767RI8dpswy0rVdmqhj3yYkC6OJ8+2Ez
         TsqNfZB9Xt1bSsk7iRkcOnbQiK5Vk0yu/46V/YwZ4mDKbtH+gpRgBL7KUL+m1gO5r1um
         9VzsN4fv544LEl/P1+gt05HggSPohoynW56mBbeAcmPaqbLU0J0WtePuD0VshtauApU/
         byfRrlhmCYeiHJUp1sgiK0vgYZW8QbJRR7aZOwhb9rxxvdYwWpg571pUC5kpRyIzKnbP
         JwKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770278684; x=1770883484;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uWf/SWAsQrEcqXBCdyJQO3DGlSCpL1Xj54p2jYcZXb0=;
        b=jJMfixc23ZJX+A1PqzO5Tm9lpMK9vbuOV+nNdVYnLvWBFZhoK4SRU/RlJLDuUHL/dZ
         IlmIsuSe+/K+s99mB0D83kKTQg7aIc1XzFCtdJDcn0C7mstxKx7tQEwFl1IX9rxlK3Cl
         d/3zU/mLJBFqNhnqiQqWIxGCeLpFL4f0nlG5lAS9Q65bOSNHcFxHTT4kkBjNkgAUpYwG
         wSUchtMAtsf4YDa9aVDUN1L52blgTOIF6+08MTV6YkMeFkMSf56vBesqAOx8JVyPoL7Y
         sxctdp02kRiETfpk/ugfktC+WfEkY3sKCvYcrEyo3JBCnKcRWY608/6JzCsiH7rawZjc
         hP7w==
X-Forwarded-Encrypted: i=1; AJvYcCUYxmvKSqpSB5YYvUTcVZfgp+Wyo8pjzyk3KE3XsQ/ZpiOPosqGDKbwxpVsf0bLQ8vGK/SGDpVz1AY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8CgJ4dy/OuxbJSRVErWgcJiBPWiAMTms/9+ciXxLuSWAbwJj8
	IDR0ahOcI8bm8iCNRLZokBUOMPO6x4yVhE/b43RSxy4X0ogh2kTpO5LQ+kJsDtKGOA==
X-Gm-Gg: AZuq6aIMrrGDKsBEg9QpCvGntD1H9cBzlP3U1f7M7yXbjiYmuAJrHrSHNf3PAGoWM1l
	k2CjfO+fi7YeBEV1KFrwOqqt6VT4DimdAsxCgtXviKkurtiO58Ha47+QFHOnedmdt9HlndXk3oi
	7/6tIGomXVVrwLIHu2AFbAxddhCZJEbLFVVl2WPywKRJi8124BTo5Au0ggk2sxC6rFOSwIvryr/
	i7jjGiKeBh756FzJvyhbqPjZucaVMLNs6ZLm/ZYY+W3Ipk9j4HGudvJt4J8mY/F7gc4w3Z2UhYp
	986DFoy2tv//6RaXiWT82fGwvyBHzRlXC657PdR3+g7gH5M/CEAPR08P/zUaDABYreMcjRiCEwj
	zi0c7FqV8PuKvT5pPNiumVL6OD4xYxV8cNxFM7TpDRNyfAqJKg6U2yD0XhV4VFTx9bi8FhFiy0f
	U0CU/rp/7Wi3L9S9oKX9gP/ofxhD//wr2rWJfMWBTfuCsV0tVnkAwu9tR9Ss3JynXmRT4rcphkR
	1q4uQOSw7kbIw==
X-Received: by 2002:a5d:5f51:0:b0:435:db6e:e3b2 with SMTP id ffacd0b85a97d-4361802ffe9mr8357061f8f.27.1770278683936;
        Thu, 05 Feb 2026 00:04:43 -0800 (PST)
Message-ID: <d7cf4b5c-ffb4-4168-b0e5-3a035e4929de@suse.com>
Date: Thu, 5 Feb 2026 09:04:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
To: Bertrand Marquis <Bertrand.Marquis@arm.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: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 16:45, Bertrand Marquis wrote:
>> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
>> On 04.02.2026 14:16, Bertrand Marquis wrote:
>>> --- a/xen/Makefile
>>> +++ b/xen/Makefile
>>> @@ -116,7 +116,7 @@ endif
>>> # If the user is running make -s (silent mode), suppress echoing of
>>> # commands
>>>
>>> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
>>> +ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)
>>
>> While probably this would do, assuming make isn't going to make drastic
>> changes to how $(MAKEFLAGS) is set up, how about
>>
>> -ifneq ($(findstring s,$(filter-out -%,$(MAKEFLAGS))),)
>>
>> instead?
> 
> Yes this is a solution that should work to, making the assumption that short
> arguments are kept at the beginning like they are now is possibly to strong.

As you indicated on Matrix, this wouldn't cover variable definitions, e.g. O=.
Sticking to just $(firstword ...) also doesn't work, though: If there are no
options needing handing on and having a short form representation, the "first
word" may be empty, with $(MAKEFLAGS) then starting with a blank. Perhaps

ifneq ($(findstring s,$(firstword .$(MAKEFLAGS))),)

would be a way to overcome this.

However, wording in the documentation [1], [2] is ambiguous as to whether we
may rely on there being that leading blank (it seems likely that [1] is more
reliable than [2], but still). However, [2] effectively suggests another
alternative:

ifneq ($(findstring s,$(filter-out --%,$(MFLAGS))),)

While you meanwhile clarified (again on Matrix) that use of -I isn't the
culprit, even with O= I still cannot observe the behavior you're describing.
I.e. I still need to pass -s in order to silence the build, even if I use
O=.../staging (i.e. an 's' clearly being present in the path).

Jan

[1] "If there are no single-letter options on the command line, then the value
     of MAKEFLAGS starts with a space."

[2] "A similar variable MFLAGS exists also, for historical compatibility. It
     has the same value as MAKEFLAGS except that it does not contain the
     command line variable definitions, and it always begins with a hyphen
     unless it is empty (MAKEFLAGS begins with a hyphen only when it begins
     with an option that has no single-letter version, such as
     ‘--warn-undefined-variables’)."



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:24:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:24:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221588.1529767 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnuei-0000Qs-Ip; Thu, 05 Feb 2026 08:24:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221588.1529767; Thu, 05 Feb 2026 08: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 1vnuei-0000Ql-Dd; Thu, 05 Feb 2026 08:24:04 +0000
Received: by outflank-mailman (input) for mailman id 1221588;
 Thu, 05 Feb 2026 08: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnueg-0000Qe-UF
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:24:02 +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 01af84f8-026c-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 09:23:53 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-42fbc544b09so675484f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 00:23:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4361805faddsm12073754f8f.33.2026.02.05.00.23.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 00:23:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01af84f8-026c-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770279833; x=1770884633; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iSs5qsGCzxCT3MdfmtcnrUblKn9TOmm3mSQZl3vyvMQ=;
        b=MTYdf9MaQaqCd1juYkScoNWh8VPj/HjFu9nTNC0JpmJ/RufkEuD7KoI6w6J+4xnaD5
         KP544Jex5/tja4jh3TOWwxJdH+fWxr1b5WBjA/W++vngmApx70mCdemTTeub45mGhjb/
         d5qEHcovrQ3U9miBRMIatIXqNV98oTc8CWzFT1ecAdLNSeMxy7Sdur25+JLl1OsdtcPB
         Yb2Df835dRDitasodaDmtdr3aIDixLkEikq4T0DGC0jxcrG42MznMoXl8qUzxe5ExyHI
         Sx6sAPQtULs1kyeQD49oa28Hzsz5LoQ876jlOgxw4M1lDFVvTu6X60MytJIW5vo3k8yy
         JT9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770279833; x=1770884633;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iSs5qsGCzxCT3MdfmtcnrUblKn9TOmm3mSQZl3vyvMQ=;
        b=JICTerNRBO9jJO4xmDX81LWOL59e8AQ5xaJGaDsOjR/cY2btNtTcjoxmuseNGDatQQ
         1K22dZ3l4aQ9FtXEqicFctd5APtZItyn8yOK0SWf4+DOkadTLYVg9iQkTFayqHuFNfKI
         H/DSKZkQMnDc5ELsEKxNVFVdu67kweNHcHn/6TylU+WUKQ76B1ldv3JWDw/qAl4/AzfJ
         Nh7I/ch04lkA/jF6MLTICgbIcqmhFrdFPVjvQwyfVEBePh10gK9B8QFtG2HekRfio+kk
         59MF//WuJFuyp0gsKAiNRSbBmQcSDHlW2QB53xezWqR8U8N97Nb7wJX3ZiJv07JmUUQJ
         E6fQ==
X-Forwarded-Encrypted: i=1; AJvYcCXFaG0Xu1Vf0W1UiNaAuLcDoLphIIWe6UqrpJjBCH42oXABF9o1FMUw4HFvRzsOJNLv67vs0V5G2WQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxrcAxq7d3JOI9f9DeMv7/68Whs58KvjdCAOCDm1taOOlcxfhjU
	3WcZff1zXxA8i7gQpUovv4sWslsmvBBEtiKSCcLXQuN2nATabN30HBDRg5yNACCJig==
X-Gm-Gg: AZuq6aK7dd6EJFF04ow1b44Ur4DhYMrpMagUk8d4S2HZMqwKCNGy5QiFMgqM1dLXNmj
	uwNUoeZSbRIitnZ4x9B3GsPCRfhVD1Tv241m6ozFDjpWDJRqxlGq2g9eqMuJANAT0/8H0NAlcpm
	uE49od+h92MPr7qsveUTGixuN5DWh9j1PQeuslErZczFpdNGVDm6JaFrZ0mQ3O7x0BxxN/fvPwM
	OZahYvOmLOqnl6ss56Uq2VeRqJQZg+IWglRCNqWMwYvzEEpQwKK5Xw3gU0a2q4lMICDLO7ELad1
	H2tR/UtP9RVSlJKzRr4Ix8V9/YypFG7I2sJ9lvSCmggEaYWplw29yYj8IFzL0+k8jWfqioaObFl
	Lpkg4S8tBMMpefJs7G/J32IIfjOAmOipsH1o9pNrOUjrw0WzW9TOHmcqP5Kx73k4zqocMUgXgfd
	v2rsfMLYIG2Hdw8qlFw2Svd9H/PLmINVr85oRTPAoElmPGY1c8p4n3hDoJEzuIJov4WlbHgtPFc
	3IO3upbLoB6MQ==
X-Received: by 2002:a05:6000:2310:b0:435:9f41:d43 with SMTP id ffacd0b85a97d-43617e40ba0mr8673859f8f.15.1770279832824;
        Thu, 05 Feb 2026 00:23:52 -0800 (PST)
Message-ID: <eed4bb7b-5836-4345-984d-c542b9f1da34@suse.com>
Date: Thu, 5 Feb 2026 09:23:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
To: Bertrand Marquis <Bertrand.Marquis@arm.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: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
 <eca1e783-b147-4230-a340-41b8cb694c5e@suse.com>
 <65D4FEA7-DECD-4DDD-B119-4625F72ED585@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <65D4FEA7-DECD-4DDD-B119-4625F72ED585@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 08:44, Bertrand Marquis wrote:
>> On 4 Feb 2026, at 17:15, Jan Beulich <jbeulich@suse.com> wrote:
>> On 04.02.2026 16:45, Bertrand Marquis wrote:
>>>> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 04.02.2026 14:16, Bertrand Marquis wrote:
>>>>> Xen does not currently document how to build the hypervisor on macOS, and
>>>>> there is no Darwin configuration for a Homebrew-based toolchain. In
>>>>> addition, the Makefile silent-mode detection can be tripped by -I paths
>>>>> that contain an "s", which hides build commands unexpectedly.
>>>>
>>>> This wants submitting as a standalone fix, so it can be backported. But see
>>>> also below. I don't, however, understand how -I could be useful here - our
>>>> build system is self-contained, so any include directives used should be
>>>> satisfiable without any -I.
>>>
>>> This is added automatically inside our Makefile if you build out of tree:
>>>
>>> MAKEFLAGS += --include-dir=$(abs_srctree)
>>>
>>> which ends up being -Ixxx when tested.
>>
>> Hmm, but I do have an 's' in my source path, yet I need to explicitly pass
>> -s for the build to be silent.
> 
> I did further investigations and my previous assumptions where actually
> wrong because i looked tat MAKEFLAGS value once the whole Makefile
> was parsed and the include-dir flag is added after so it was not the reason
> of the issue.
> 
> In fact the issue is coming from variables set on the command line (and
> in my case O= with a path containing a s).
> So you can easily reproduce the issue by just passing XX=s to the make
> command line to do a test.
> 
> As a consequence, your proposed solution filtering -% is not working and
> the only reliable solution is to actually use firstword to actually get the
> short options list. This is making an assumption on MAKEFLAGS having
> them first but my tests are showing that it is always the case.
> I would propose to put a comment to explain the assumptions on which
> the filtering is based on top:
> 
> Something like this:
> diff --git a/xen/Makefile b/xen/Makefile
> index 13e336ba5484..a7924fcb7af5 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -113,10 +113,10 @@ else
>      Q := @
>  endif
> 
> -# If the user is running make -s (silent mode), suppress echoing of
> -# commands
> -
> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
> +# If the user is running make -s (silent mode), suppress echoing of commands.
> +# This relies on GNU make encoding short options in the first MAKEFLAGS word;
> +# if this changes in the future, this check may need revisiting.
> +ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)
>      quiet := silent_
>  endif
> 
> Also i can put a fixes tag if you think that is useful:
> Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_rule")
> 
> Please tell me if that sounds ok for you and I will resubmit this as 2 different patches
> instead of a single one.

Sadly no, see my other reply sent earlier today. Furthermore, as said there, even
with O= I can't repro what you say. In fact with a Makefile containing just

$(warning MAKEFLAGS="$(MAKEFLAGS)" ABC="$(ABC)" XYZ="$(XYZ)")

all:
	@echo 'MFLAGS=$(MFLAGS)'
	@echo 'MAKEFLAGS=$(MAKEFLAGS)'

I can observe (with both make 4.0 and make 4.2.1) $(MAKEFLAGS) expanding
differently depending on where it's used (I'm passing ABC= and/or XYZ= to
experiment): Only the use in the rule has the variables. What version of make are
you using?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:30:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:30:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221597.1529775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnukV-0001Sp-31; Thu, 05 Feb 2026 08:30:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221597.1529775; Thu, 05 Feb 2026 08:30:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnukU-0001SF-Vt; Thu, 05 Feb 2026 08:30:02 +0000
Received: by outflank-mailman (input) for mailman id 1221597;
 Thu, 05 Feb 2026 08:30: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnukU-0001DR-5t
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:30:02 +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 da4f611d-026c-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 09:29:56 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-47ee3a63300so6749715e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 00:29:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d3eee4sm40937725e9.8.2026.02.05.00.29.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 00:29:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da4f611d-026c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770280196; x=1770884996; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3VQEk6lFXF1gghrs7fL7UQiboQuDLN4HxDlL1UWK25Y=;
        b=JFugXloMxR4UW8P7LX9b65dVXw0sn/4mt7RkwDNmAh9J/gmJFNM3etD58GRa9DvnbY
         jZZl49NdUsSfyE4MEbNUpMe+JvZHTCaLhIeCtJVJANSaxKXnw32nutCk/8ybM2fKRYQA
         KSQMjYsSMmNA1HRq5zRkLQsU5c3i9F3Ey6capqLaMEtk0oTeS7n68oERS5l258J3w7YI
         64Y6aX/ZRaShLcrE2ne5WnFdWaWQxiN+GF8Z3ki1eUrbansSqWmKcMmbAOaZBtNjX/MZ
         Eo1iUn2SQFRUI+zwsZ8CJKC8iWkKKwFC0H4DZ1ODlCjVTCdM75v4e4HImbaACu77FvD3
         vGKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770280196; x=1770884996;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3VQEk6lFXF1gghrs7fL7UQiboQuDLN4HxDlL1UWK25Y=;
        b=q3mIzpJj78N45LxWDjyLaH8Dv2stpEkmHDJPoEiorcQm+n7BA79PQYfmoKHgFI3nEB
         u8zb0gcA5pbqt8B0OQW392GceRlgQtLal6bDnZ7cJVgm5pMk5uXhVyvO4GI1IgZ1PX+h
         CYE/GtYA/3F6GCvH3akm/ibxqlW4v/CalYwB04FZnbdTpuBPnuEd4Dc9iRXaAeeRHCm5
         7524YmpSQHhSkhBIWcBgVRObOYnjpbEag76mMlySJ1FopYmJoqIx5aY+slEtQujkzbni
         ZLnjhpUGl4i1poQkEuo1z7tqrdSNRNuevtC37FRFKrReBm9BkoftV+l+wkZSXgiJwsYF
         Lc0A==
X-Forwarded-Encrypted: i=1; AJvYcCW9T93NGrtUzwMMfBrs5b6J5eMkQutKkYz/UzQBuP0mZU4CBw6h4/+7XZxNsJ0M6sq5VEIw4cyrZj0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzdb0P/u8snUm0VkNQHtvOBY2xbzkTzU0xRyljfHOl9wPycde1o
	kpRH4BJLb13CGHMo7aF7q/rnDfWFCUf2PyTzSvpPevYhfzv+5WhawLCVHbbRKrxqCg==
X-Gm-Gg: AZuq6aJdQ9bvrKqJ1UGTenDBWv4YeS4ZfJ9n9loU7gPCqMW5rDYUbIJLYySfxZkc8Lx
	x9wLFaOyKqQjRiBiTYkepfMdoh/9wrQ5zKUdPT4aK4Ub2vYEhxRUiTuupFzFdPWI5dF/CMdi/Ll
	SZgcrMSxSqAIev4Wjgp0KUYfTEcP5kawJh/iF4KZGgb+dB6C7xC/bgJQA76cfEvibwgcsohCzL0
	qPdgnc5YU5TTIlm7NSqQ+yxCZsJjtlTqvWgKC7vsGtPaxG6hFSACITGB6TmQFjqeyVkXnIFkap+
	qRSfsOEAglzlsRgnku+7rxMpKzcZtfYQ80PPxe3fb8sUmDbDzE8DFL1H9LGkAADIEmFF0uoDmR0
	jkVMsqLrKtpQyu2fHixPc600Jx6klMXfd3cr4gEd6SNmoEtTKh7R/Ju/kUA8D34LG36pZNBu8Lb
	mGcjbymi4u2MxEs8MdFMa9AvB9JWBGvLqYjsHMKHiJrJLO2W1JPSebGuBVZX6K9FzHXjocMpXmH
	KY=
X-Received: by 2002:a05:600c:800f:b0:477:79c7:8994 with SMTP id 5b1f17b1804b1-4830e9713d6mr73445615e9.30.1770280196251;
        Thu, 05 Feb 2026 00:29:56 -0800 (PST)
Message-ID: <5bd55bef-f30c-475d-9831-382406f699fb@suse.com>
Date: Thu, 5 Feb 2026 09:29:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
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: <20260204122553.75711-1-roger.pau@citrix.com>
 <82540f88-ffcd-46a9-9813-ebe42ef0b0ec@suse.com> <aYNdJ6sb4GPaSEyY@Mac.lan>
 <3f9b4337-3e0a-4693-b97f-46505bc1349a@suse.com> <aYN30KD0jsJ2_H_z@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: <aYN30KD0jsJ2_H_z@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 17:46, Roger Pau Monné wrote:
> On Wed, Feb 04, 2026 at 04:08:21PM +0100, Jan Beulich wrote:
>> On 04.02.2026 15:52, Roger Pau Monné wrote:
>>> On Wed, Feb 04, 2026 at 03:06:52PM +0100, Jan Beulich wrote:
>>>> On 04.02.2026 13:25, Roger Pau Monne wrote:
>>>>> The limitation of shared_info being allocated below 4G to fit in the
>>>>> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
>>>>> start_info field is 64bits wide.  HVM guests don't use start_info at all.
>>>>>
>>>>> Drop the restriction in arch_domain_create() and instead free and
>>>>> re-allocate the page from memory below 4G if needed in switch_compat(),
>>>>> when the guest is set to run in 32bit PV mode.
>>>>>
>>>>> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
>>>>
>>>> The tag is here because there is the (largely theoretical?) possibility for
>>>> a system to have no memory at all left below 4Gb, in which case creation of
>>>> a PV64 or non-shadow HVM guest would needlessly fail?
>>>
>>> It's kid of an issue we discovered when using strict domain NUMA node
>>> placement.  At that point the toolstack would exhaust all memory on
>>> node 0 and by doing that inadvertently consume all memory below 4G.
>>
>> Right, and hence also my "memory: arrange to conserve on DMA reservation",
>> where I'm still fighting with myself as to what to do with the comments you
>> gave there.
> 
> Better fighting with yourself rather than fighting with me I guess ;).
> 
> That change would be controversial with what we currently do on
> XenServer, because we don't (yet) special case the memory below 4G to
> not account for it in the per node free amount of memory.
> 
> What would happen when you append the MEMF_no_dma flag as proposed in
> your commit, but the caller is also passing MEMF_exact_node with
> target node 0?  AFAICT the allocation would still refuse to use the
> low 4G pool.

Yes, DMA-ability is intended to take higher priority than exact-node
requests. Another node would then need choosing by the toolstack.

> Also, your commit should also be expanded to avoid staking claims that
> would drain the DMA pool, as then populate_physmap() won't be able to
> allocate from there?

Except that upstream claims aren't node-specific, yet, so could be
fulfilled my taking memory from other nodes? Aiui the problem would
only occur if that DAM-able memory was the only memory left in the
system.

Jan

>  It would be weird for the toolstack to have
> successfully made a claim, and then populate_physmap() returning
> -ENOMEM because (part of) the claim has been made against the DMA
> pool, which populate_physmap() would explicitly forbidden to allocate
> from.
> 
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:36:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:36:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221607.1529786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnuqm-0002h8-Ni; Thu, 05 Feb 2026 08:36:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221607.1529786; Thu, 05 Feb 2026 08:36:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnuqm-0002h1-Ko; Thu, 05 Feb 2026 08:36:32 +0000
Received: by outflank-mailman (input) for mailman id 1221607;
 Thu, 05 Feb 2026 08:36: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnuqm-0002gu-3E
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:36:32 +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 c4350f89-026d-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 09:36:29 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso6666675e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 00:36:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483179d7346sm54145265e9.0.2026.02.05.00.36.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 00:36:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4350f89-026d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770280589; x=1770885389; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NWu9I34hkUQGwz+y0rftURk8xs5tDjpX+OFqhQ2TI6o=;
        b=NuSFwDLLliCo7E+4xWhkuqNdn8XK6ky1H/qafKtUj4OnFmKZ4OQf/RzdU4VJxiDkDL
         GOA4OqBYWL6nmPHau8YQWOXVcTEbrKkwRbox6NTsSF8dfG3psB7/8OWfk96Ok8TnFC8o
         1GZMsYTUmyRw4CAlBEo0eDYHjz7lO5dHZaG3Zi7YBy4gZbBl6HjMMCK7xyMbLOg2gJjk
         ALC4Xd72ZYUPseZKEYwaM7oStefxGf5HvjtNZl76bjnW+13fJBpu5dwAwnZW14mLtt6d
         zNObzd5is3Yo5wyrwLWwsYYB0TpQUbDn/1AazhPwjloHEeaXGqWoTtxqIEqKQsDuS+px
         mEBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770280589; x=1770885389;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NWu9I34hkUQGwz+y0rftURk8xs5tDjpX+OFqhQ2TI6o=;
        b=Hpil+bpKew+I5NGSpe97PJ3bbAI8a6heFBNghqJZIcHJBaaw/vex8Xhb+ZNa/Vz60m
         yfg4MNCEphC5R/FVNSm5ATKNu4bTuzgXq8oEEphAbNrH7PXYwK9rYg02t4ytm9LOqAzU
         IFdqbKKsOuOnVy0b5ihv5FHn1ppMtBqapZ3S5spFo9sfebp9k05DiGCT3sbuOCgA5Nn+
         7JCRbp0rRZ5FF/WZkTx+pq1rFWb27CqIqEyO4tQYD5+ZwfrWvfx0qDh63ckT+bmqgllf
         mNsKbtCyN1ZDwmNGWYnBTfzLOm+jWZ+gbieUN1YJIhBXUtAJCawz7YvQWg4v5JV2hZIG
         7/lw==
X-Forwarded-Encrypted: i=1; AJvYcCVvcE14j+NDd2iM+AVkvPBXkv3QtIen44GYX9WVyo3jowHcAyeyybqZuLz3+WZx4z0S6jjr6tPWYdI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwLGGub/RZE+/BvS0FKc9/wyuGoCY9gqneTgykrUD4WwtI4jAo7
	WulvYVbQeTcqz0cLVJiDG5OhaqrKsblDDWDoYEqtdoVrxoOgSNabCym4bWy3OdFDFQ==
X-Gm-Gg: AZuq6aIDIoHfkyryvnE6s3fBnK+hUR5aEeagKyt/WTyvkJtCe2aljPN+1lUo68Z2fNG
	BhPk45D1PdvhPHW7pRju/nOpexJ91Jx8WJwS3vhylFLeN158Vr2wvGTrIzVOOteqLqvmP6KIyAk
	eduHzQAU6LbmFjP+mN48WdKZ48bpOeBjBW5nDiyzUktL3Vu2Szw36d3b4v16XXoJTU8iCJ4lKnU
	pziteY3Ps0ia38n5ARt16Xs55Y6Gb2kpwa21r52XDf4RcN9p8YCHKvN4FcO6FAdnwF1FCAPjHHh
	X7uTX1aWO35Zc2lVAhkymcJmW61g+lzJL/sP+iITWrKcG2WY87tQLU7wc7741zrxh0k5liUZq3y
	n+JOIJaFqTZmrsITuQRjIW/KUxjAvALcM3x296mV8ET1k49GTuJW1VsasYJsAVn92LYvEqwKoWq
	s6l2KPOaXjtNXfDwPpLwdbGMT3b/XuECCIBUXz6ZWHALr5WWMefd/+HWWsdejcwlKOReW+XBJpE
	A8=
X-Received: by 2002:a05:600c:19cc:b0:47d:6c36:a125 with SMTP id 5b1f17b1804b1-483179dbd52mr28509115e9.17.1770280588734;
        Thu, 05 Feb 2026 00:36:28 -0800 (PST)
Message-ID: <5aaee345-5ace-42b7-a436-ae6ce57cb9fc@suse.com>
Date: Thu, 5 Feb 2026 09:36:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] x86/domain: adjust limitation on shared_info
 allocation below 4G
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: <20260205080308.91057-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: <20260205080308.91057-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 09:03, Roger Pau Monne wrote:
> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -247,6 +247,34 @@ int switch_compat(struct domain *d)
>      d->arch.has_32bit_shinfo = 1;
>      d->arch.pv.is_32bit = true;
>  
> +    /*
> +     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
> +     * field within the guest's start_info structure.  We might need to free
> +     * the current page and allocate a new one that fulfills this requirement.
> +     */
> +    if ( virt_to_maddr(d->shared_info) >> 32 )
> +    {
> +        shared_info_t *prev = d->shared_info;
> +
> +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
> +        if ( !d->shared_info )
> +        {
> +            d->shared_info = prev;
> +            rc = -ENOMEM;
> +            goto undo_and_fail;
> +        }
> +        put_page(virt_to_page(prev));
> +        clear_page(d->shared_info);
> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> +        /*
> +         * Ensure all pointers to the old shared_info page are replaced.  vCPUs
> +         * below XEN_LEGACY_MAX_VCPUS will stash a pointer to
> +         * shared_info->vcpu_info[id].
> +         */

To cope with the toolstack-dependent ordering of actions, may I suggest "... may
have stashed ..." instead?

Jan

> +        for_each_vcpu ( d, v )
> +            vcpu_info_reset(v);
> +    }
> +
>      for_each_vcpu( d, v )
>      {
>          if ( (rc = setup_compat_arg_xlat(v)) ||


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:43:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:43:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221620.1529796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnuxk-0004Vk-Gb; Thu, 05 Feb 2026 08:43:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221620.1529796; Thu, 05 Feb 2026 08: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 1vnuxk-0004Vd-DN; Thu, 05 Feb 2026 08:43:44 +0000
Received: by outflank-mailman (input) for mailman id 1221620;
 Thu, 05 Feb 2026 08:43: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnuxj-0004VX-DH
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:43:43 +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 c208fbd9-026e-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 09:43:35 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4806fbc6bf3so7195985e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 00:43:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e3a546sm14652046f8f.17.2026.02.05.00.43.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 00:43:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c208fbd9-026e-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770281014; x=1770885814; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A7SMHrACdNvAF0q6JSHeQpWtZxCZJrzjTAi9oW+znQs=;
        b=fdlXRmVJ0CUjbC/df4mgsUZdMI6UbT1Kf0rw8fYUPgS0DUxuPgfwc/s+75ryEtqb9l
         cXUOdt+lAe3S5A/1rJ8CR/StvjM+5c/VgGkO6MTWEtpkh6jThsvs4/7eR2AZ1X1QnCZ1
         ZpKrM3pHT3g3f2AJFw7ID4i4+hXKTN8r1Zjc5SihhI3ncS4ibzFNCTzbg2jVdetZRsmY
         vJFHKOL93iCfp+3jHBeS2q4nNPQkQrXz/J8b33kenJg9tn6lUv9oJwv5GyPZl0GG8reO
         8SYmqCfxJDxk5vAbD3KdSiuas0FenoabbyB4vh035OSS7RoFQgYtjKO5XVdkR4f778YY
         IgAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770281015; x=1770885815;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A7SMHrACdNvAF0q6JSHeQpWtZxCZJrzjTAi9oW+znQs=;
        b=gvRCUXesOj/Z3lnt9oTGA3Fymrb3z1UA+nDunfIMsfeuhGgD7x4+rau0sO/WyXY4kj
         49G43fE534kM6QB2jf+liKImeYXNTnKi6b42fxxiGvjSUgcahwl6YdXy6CINbspjXHqT
         oeVwgiTKFfl4NqvvFnWlftXODdk1qLPXXEtJIzjQGG14AiA6TEO/7wYbIkCsBCcanzed
         q9aqDH9ii6Vc0LoLRXG3Rzl+xJ5cz0w968nWusl4sWC8J/y+bVh7X0WLOa5p4Py2nJ8a
         1KkNb5KqHjJZpFeJ8BesMe3oW5rNtHcv9db4F/oMqoGqWn/d3CZYPrQquKtarsY8nJIz
         wlQQ==
X-Forwarded-Encrypted: i=1; AJvYcCVsBV+/3rpNHRO+mwJJOzxNxcqvkyvyKe9bGWiIi34MSEng930KlbAKNcTh5f7HWvYylMzvF5QZZ/A=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+D2oHvY/E1mlHxN7Cx91KkUzz3IyZE15onKk8dkcyK7l2Pwlm
	ab/pXasyd2NodN/GPeVWbCnavN7SmgB2ol2scQyRoeYWfRJ8Un5x20zP5ZO4n3EsBg==
X-Gm-Gg: AZuq6aInczaZN54irbD8DJAGMG8xSM6/gfRnJhlod6pLKdzLd4jJ+O+LxUDp59gTpBv
	DTHrCJR56bDj7nx3Z2X+LEqfHwdjnMhS9j7Jv7xvpZob63/1XelfwEyCGTOG3knIw4G+Xi67408
	/7uNyoLe8h0kGnDHwK0ArHWRRLbRv9ci331K+3OQkYRWVbdULYARziP7XhhkY1qmsr7cq+02UNY
	19p9JpXzyWCb6jmGRUFaz/U9DIxuhZGdcn2beibmSP8S/JwzZBlRK3U4vOD3Fn2EQhqdkEs0IJY
	CTSgts0bTHBoG8kv54dvo9he31qYJ0qfnB/NGZiF8jpWb+Kq3MfDfUDhupU8ka9zUKHuBp7RlVS
	AOWMVekod+xxuKjdxXZW1k2GFnsQPKQ+5PXmNS9vtlV5O3dUyP0pNYZB0easruma67x98UjqGZ5
	wx51WqQ7YfKtXaTioHJ+UEtHQn/xt1svI1WXFUbnkN+NRf1XPDaXkydu3d0mH1CXcpHyjgPWE3x
	e8=
X-Received: by 2002:a05:600c:1f16:b0:46e:4b79:551 with SMTP id 5b1f17b1804b1-4830e9897dcmr92329255e9.31.1770281014552;
        Thu, 05 Feb 2026 00:43:34 -0800 (PST)
Message-ID: <09462166-a3c5-4527-840a-cd77499dc588@suse.com>
Date: Thu, 5 Feb 2026 09:43:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 2/6] xen/console: make console buffer size configurable
To: dmukhin@xen.org
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, Jason Andryuk <jason.andryuk@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-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: <20260205013606.3384798-3-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 02:36, dmukhin@xen.org wrote:
> --- a/xen/drivers/char/Kconfig
> +++ b/xen/drivers/char/Kconfig
> @@ -95,6 +95,30 @@ config SERIAL_TX_BUFSIZE
>  
>  	  Default value is 32768 (32KiB).
>  
> +config CONRING_SHIFT
> +	int "Console ring buffer size (power of 2)"
> +	range 14 27
> +	default 15
> +	help
> +	  Select the boot console ring buffer size as a power of 2.
> +	  Run-time console ring buffer size is the same as the boot console ring
> +	  buffer size, unless overridden via 'conring_size=' boot parameter.
> +
> +	    27 => 128 MiB
> +	    26 =>  64 MiB
> +	    25 =>  32 MiB
> +	    24 =>  16 MiB
> +	    23 =>   8 MiB
> +	    22 =>   4 MiB
> +	    21 =>   2 MiB
> +	    20 =>   1 MiB
> +	    19 => 512 KiB
> +	    18 => 256 KiB
> +	    17 => 128 KiB
> +	    16 =>  64 KiB
> +	    15 =>  32 KiB (default)
> +	    14 =>  16 KiB

As I think I had indicated before - imo an exhaustive table goes too far here.
E.g.

	    27 => 128 MiB
	    26 =>  64 MiB
	    ...
	    15 =>  32 KiB (default)
	    14 =>  16 KiB

would do (if such is needed / wanted at all).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:46:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:46:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221628.1529805 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnv0K-000531-Sv; Thu, 05 Feb 2026 08:46:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221628.1529805; Thu, 05 Feb 2026 08:46: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 1vnv0K-00052u-Q5; Thu, 05 Feb 2026 08:46:24 +0000
Received: by outflank-mailman (input) for mailman id 1221628;
 Thu, 05 Feb 2026 08:46: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=BdQL=AJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnv0J-00052o-0H
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:46:23 +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 1d8fb636-026f-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 09:46:08 +0100 (CET)
Received: from AS8P189CA0014.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:31f::34)
 by DU0PR08MB7638.eurprd08.prod.outlook.com (2603:10a6:10:31f::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Thu, 5 Feb
 2026 08:46:01 +0000
Received: from AM1PEPF000252DD.eurprd07.prod.outlook.com
 (2603:10a6:20b:31f:cafe::e2) by AS8P189CA0014.outlook.office365.com
 (2603:10a6:20b:31f::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 08:45:49 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM1PEPF000252DD.mail.protection.outlook.com (10.167.16.55) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Thu, 5 Feb 2026 08:46:00 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB9886.eurprd08.prod.outlook.com (2603:10a6:20b:5c1::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.18; Thu, 5 Feb
 2026 08:44:57 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 08:44: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: 1d8fb636-026f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=x940C17GmYQo/P3WskN15o1FJ7Fs7iCCupcfOdkPcvsQreKOPVzSIVH2k5a+lNYT3cN9aceUQU6rP0I3/EoHs1rbsh2PEBRJSpa7zI5pTGrYwqq0z9RnllcBKONkybz1gyQC/HJTAI06HPwfcSEV4l7fAQrJfX60Ml/SFBEbzi/S0lfmXzARamdV9SvY7PjB1ozsIQwXCcI3DHuJ9r/boSQWpShh1IeMQcB3uRViRK78gtAdurtzPxTH2i59t/iRonxjUqCwJHOw1NDvKFSxAbwGcnlwzzMsVrNw7ZSvt7AN2YuUYM8PTFWE5rGgPCkScMcgUs1lxYPngnRYQfoqiA==
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=g41nVjpXKxv1UvoojrffIh2ghtB254Nz95KkWX2A3cA=;
 b=kB28ma2DjVlxRx8IKusB4bEBC17VbvRB7FCoCH2OdueN1rdNN5v/+VHUvr6E/4k1d0iSINUooHQC0mjepoeLthS/jq4g9tzMGg6HVgUta4/zs0c8lnp16C3xZ+FVF5beS0xgMse+7N7p0h2VJH0zyQQ2RCLJ6ADhuIb9DYnZoqPJ0Ra+yVJl2udPYyr318WOVxA+x9XDR5cPzdkyYTW1eqkaGYosId0hvsbdrT8KY0zN0Bq/qBzvkDsLerqWrMEcT1+99H9hYmTR6AKhdKHGQUPZwfnE1RSN6l2UToIT6v6ximGDLE0XH/Pu//+MfdH4wlIvVa6cOd+aRk2VcjFuQg==
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=g41nVjpXKxv1UvoojrffIh2ghtB254Nz95KkWX2A3cA=;
 b=SlnCft6lei768ga9KgZ/w23kQeax+aPZcoR374TiSz8N9JtMj7Cb3Wb+qnSnd9cuekPoiRizapA6H7m6QSQeDCuLDBPfs9nqpwz+jTtlG8KHRTrd15MlGkGDsen/9H2qsFfLjFkqaBWKG5iFcWx2uY007lU+ghKhB/zKgnqcVD8=
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=r0j7YwUAgVebaYjpM0NnVWEXpqo6v6WE4SlI/5WDWeZ11SSv8V4BPUmuuTCRWaXjRbn8VaYAylxuDgYqJyh3kDePRelT/Z8JhnfwiHKBTNWpAm9LZp3FrC5SRta5Kq7TFz5pluYrTTlnwokgyIauP7bMveq674RF6KBcU0DtSaYhgYxjOtZcMDXJFIm0MKhjJFBJFECBBloVlgZdO99wg07MnfbK6oAfVucJtEnLurglfT6gDwAi2eviuWz2AcPYEeLgfDy90qky6kfbrVebGOZZysykw+krUYbjXQvtNq1dHAeOdTvGJM6keFJ/o47lpoEPnFCqq3NYPO/kEpGt5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=g41nVjpXKxv1UvoojrffIh2ghtB254Nz95KkWX2A3cA=;
 b=j+O5RulMAo6J993clwIS/4aG0nBfB09RORZAVw9/WvgN5h97oINVOfBby5FnvXcCkLAfSnt+EurIvKGDZdGaX/1WDv16vMVC1BODxfoTz4XJ6kLdNzvtvebBtwsQ4hPTn2wKZVLQhIBz3PBprrzjfeF1FXw7NIzMpTMR9VnuXMHJIttE+RPR1fQbYG/H781e+Og1OORJbgCyb5ZAnkHj0sJ/kWOTXribudRTYedg6YL2H9TkDL9atI+z/a/bnKTxv8vI5lanOqSULy1xU3YaotwnwZVGLZWwdGw1njPZsPWRaiZnnP62DvfjVi9fVG+mJdMejIPjD+B19oQEGwtOMQ==
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=g41nVjpXKxv1UvoojrffIh2ghtB254Nz95KkWX2A3cA=;
 b=SlnCft6lei768ga9KgZ/w23kQeax+aPZcoR374TiSz8N9JtMj7Cb3Wb+qnSnd9cuekPoiRizapA6H7m6QSQeDCuLDBPfs9nqpwz+jTtlG8KHRTrd15MlGkGDsen/9H2qsFfLjFkqaBWKG5iFcWx2uY007lU+ghKhB/zKgnqcVD8=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Topic: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Index:
 AQHcldiTYCc32vRyb0mp6O53Aox8PLVyquQAgAAD9QCAAAhKAIABA5IAgAALHACAAAXaAA==
Date: Thu, 5 Feb 2026 08:44:56 +0000
Message-ID: <C8CFD80F-057C-40D5-93B4-176F3D785C44@arm.com>
References:
 <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
 <eca1e783-b147-4230-a340-41b8cb694c5e@suse.com>
 <65D4FEA7-DECD-4DDD-B119-4625F72ED585@arm.com>
 <eed4bb7b-5836-4345-984d-c542b9f1da34@suse.com>
In-Reply-To: <eed4bb7b-5836-4345-984d-c542b9f1da34@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB9886:EE_|AM1PEPF000252DD:EE_|DU0PR08MB7638:EE_
X-MS-Office365-Filtering-Correlation-Id: 99ad0e5f-2571-4b28-49f6-08de6492fd31
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?tG6rhKPcPICruIyJH/geAeQMnoiTT5jREjrDLjUw6tDnjJ61G6dTR0Kh0s?=
 =?iso-8859-1?Q?leeO72F+C2bmfseIsfYh/2qxD8dIf8aV0Gj6jr6XuNnZvAXw1xScpPhTjo?=
 =?iso-8859-1?Q?Doch9BihfArgatz5g3NVMFfYo4XrDwiU/1Nffbk6B6+AKy3M6DAXvdhDlt?=
 =?iso-8859-1?Q?WDclpXauFhfHGE6t9S4HHbbtSUYWMo73QFyXvHOJRq0c4MLYk5AdwqvzMr?=
 =?iso-8859-1?Q?Fi9Bd4Vf3kiaOaDC8Xsktgw3aUtLVyGCBnKkmP+NOdZK7/fYAIVE2+7bkz?=
 =?iso-8859-1?Q?mEu6u8g5yJ6WQ4JxwcABK4AQSZdsJpMNwwOYSFZJKFlQoNC8faJcRigvFH?=
 =?iso-8859-1?Q?LYHS31RzRLG9jgS3/d7nPi1hRMaXwTWK6JOoDR0QxSyoFHGItZ0wbyJdpJ?=
 =?iso-8859-1?Q?ELbh3DWLMBpD9R12Z/haXPd31OVlrtbRdXx7Ecpccg1WrkwDgc5wI3st+0?=
 =?iso-8859-1?Q?Mj6PdX86AdZ3EzzlJnome/DhPmo5Kay3p1qNxnkxv5sx8k9jVCJHLaqNP4?=
 =?iso-8859-1?Q?LyQBai8ZLA0ntoZIsfJ3BstgEE4j1AKPVn+EV5u2QOltQ8gce5/DaGtOeD?=
 =?iso-8859-1?Q?1Cvk3RUClcWF5Cpo7kxqUCHU4p9QQqdjNolV+2EpBH0NsjQq7Bwd3szp7A?=
 =?iso-8859-1?Q?z5V7f6nujKO9Yx2TUstWIZxqwknnJUaD7MIKq/kZGUe3jBCZTsLe5n1kqS?=
 =?iso-8859-1?Q?0f1ibIddRWPi3a5SvtK1BUVTges38+eZSq8JAtyc3WMaaM6QXEF/aXe3Ly?=
 =?iso-8859-1?Q?jTDJIhDBGghSRniIftekb/65DKccmsliIeDNEJeEP/EE7yX/qVRinKLb/g?=
 =?iso-8859-1?Q?7PcCKaBAn3FeU9vZPClN3z58ukajtITmBPnRi7zEwNnlslHrMjFwFXTBMN?=
 =?iso-8859-1?Q?0FoLPiODbxpO9q4XvfjOcGzK0VeiNQzz+YMj2jOJ1GN4hwMgp1HPNzr3vY?=
 =?iso-8859-1?Q?8oNKqnRh5dTJCHuPEjVlwNusMNiugHZjOXWUiSZGzE0XAcddttC5mXqDzt?=
 =?iso-8859-1?Q?FGWqvPKcl21CM2RP75i+auhOdE5XfqGnqk4pUN/8ic2+I2O41WH5xtBsOF?=
 =?iso-8859-1?Q?vmFOKGNx+YsBN75mXtG4Z/Hbj6XzP2L1ijg6HFLK2WmAqQfI0//y5MNFeb?=
 =?iso-8859-1?Q?MaW9vSwkyXZ2YPZhNyE7mBLKG4DEOWJ3ed4Jo7VJ3+pVoJFNb0JP01MRj6?=
 =?iso-8859-1?Q?7xKX1+WAafZtguwA3u7UUVd4MslA5USgc+36yJAu2XxHmEYgGUZA92T1RA?=
 =?iso-8859-1?Q?oSuPJKoaV6GEnQ+7+L/ZILSWZ084/oO6RlDhD+d2rLa7Y1QegDlu+ivvX8?=
 =?iso-8859-1?Q?PGnyrDHjsWUg1mmMn7uxY+H383vLDqchAHVzgGQe6AZ9cEy3jHSREpxk/P?=
 =?iso-8859-1?Q?HWul6BnpU6QD7PvY7PczTh5ezuqzUNWu7BGvfaHvNFT4DJ6kevjrDUdE1e?=
 =?iso-8859-1?Q?jHjG7vzeRiu5SpaYPmtfbMei+zh+G0sY7pBnLpD++PEDP70q5iBYxrtA3d?=
 =?iso-8859-1?Q?0DWh+hGCEdkz/Sm0ilZPiCrOzj3PXvopGQXRW/RI6vJd+YNocJXqy6f6av?=
 =?iso-8859-1?Q?de5oFJAhiFp4GicQg+BhLLnYTDwWLgs7E6jBzW8RrLvRQHMVzgFe64oxQP?=
 =?iso-8859-1?Q?qm7Vw0JKcI0aDgvNKdiWmPOv9Zt93TDg61uI5OMgjg0bl37z8jhEmNt9w+?=
 =?iso-8859-1?Q?OO8Ja9pUWnBwvGm9Dqs=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <39EF104522013C4BACF84389E1D11743@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9886
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM1PEPF000252DD.eurprd07.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	6c4a06a1-527c-4a9f-2fdf-08de6492d6be
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|82310400026|35042699022|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?jHo5/7EJlGLqpLMWkWLOOgPRqNX+ZgonbEZ43fERLfuMIslsIqHL7ibbuX?=
 =?iso-8859-1?Q?JFCqDgxKrQsQHcgBVAflSs9Mmw5iI5WCoXvatDSF4O+GUWJeOtJoRlisg2?=
 =?iso-8859-1?Q?/0zcS3eAMcO5bGgf+8W8lpfWZxZo95izTlq18+yaNttJqHYBpCDxUTXN+Q?=
 =?iso-8859-1?Q?7Wdy4l/HhDRUi52TAkVOtlsrUa3KP4oNQQNIwHuvpYpN3D/uYQ++VCcF3F?=
 =?iso-8859-1?Q?5P0ll/tDeFB6D6VFm2thzXjfw60YXuVapHB/0r2avGi7zi24Kx2oryEmO4?=
 =?iso-8859-1?Q?UEAdcOuZlNN9nWawLZosUriMPhcxAJyop7UuabfMAyoHTcL2on7glR11qD?=
 =?iso-8859-1?Q?CMtnaxSBWWGaP0+MaGsTbSM8L+GDYG1zOxbU+KdpD21DeWE/oVlgCFv39y?=
 =?iso-8859-1?Q?LZuYvZcYPmSp5jABYQd2zdS/4hH2KT0rxq/KOby6QeqN2Vme9pLSvSRlAE?=
 =?iso-8859-1?Q?wAUy/yoVTtd17YqQ0Q6uZGNZFTZDMUp8LKKjFTpTsXwc1u6H9Pa8jvErX3?=
 =?iso-8859-1?Q?GFJEmxnpLOYdYnvWcK5h359VUQ8j+YOgRjJ8oiS4IwInx0oe6m5ZXx4TXC?=
 =?iso-8859-1?Q?zT3XML3UR02Z8QNkkTzb8DyFT7Wq/HwbDnUD+ImAV8yP1GOi2zEF/O8Dvy?=
 =?iso-8859-1?Q?Qls+z0XEZCkXTsoSVQTkB2gzXyi6y4PPjSF3lKZbfnPedHMpbaaydX6Y85?=
 =?iso-8859-1?Q?AnAZgoJYRkZU4EPBbV/67Fn51pfchK2RY33hLxybZtWEGdUw/Y44saaN+E?=
 =?iso-8859-1?Q?/98EqCW+MHg825nRrppIamdBgo2/0rEU2ucZLI9Fz+t/CDhN2XgujnCR7W?=
 =?iso-8859-1?Q?tejPU5CA9cp2IiMgvKh3K/6SWY9q6Rh2HAVy8g8VgXZSxF2kPWUn05dfEI?=
 =?iso-8859-1?Q?TTJ5PGY/YAndqEnMbcV3g5Him94btKu5nusKfWiwfJpHHBorrsde4Pj6Wf?=
 =?iso-8859-1?Q?iIyYyTU3m3xMvuu5eiRHW5Ad/2ANvuP3nIYjYoMuU2BFe5oxHn62ymMpP7?=
 =?iso-8859-1?Q?jgA5OArQl0WpYJySVfwjrukbL6laKG1IekedcxQL+WXtt8sRL0EizNql0Q?=
 =?iso-8859-1?Q?MW4PdOYsBLbRNawkL4xVcmwNpFct8YpjsuELie2NknUdITyZ7qsy3Hjamu?=
 =?iso-8859-1?Q?a+zAEfWxNZ42I7HVPxmg2NWxIxBWlWcwh2bPNfWPehQdC60UecpMa7e7UD?=
 =?iso-8859-1?Q?oBJhrL1VePuWBU3l0iiCebtIsUtMhTvrJyUDRskVLRlnmIyqEFdDkrZdyK?=
 =?iso-8859-1?Q?GAw3FXrnmNqWUhsw4v79/riwt2oVXkO2WQENa/82BmFf5b1K3KdPhOK1BE?=
 =?iso-8859-1?Q?kndaPA/4AytvGNLsJl2oa+P29Z2ny7wEUmQIvaKOJRuEQrvnZx5mbSsOxx?=
 =?iso-8859-1?Q?FJYU21/uoOdqMvaecUC1/3sa5Mm1P3HKdSxCFjtB07EIdu1G4A1JnGoJ91?=
 =?iso-8859-1?Q?rjAznV/2/RI41tGTlrSjHTuzrG82nGmERP3vLZg8GV0zv60FjQwUq8c2uT?=
 =?iso-8859-1?Q?glQz1YDwuryYQt0usve64L83tAg5DmgR6EzMWbsQbNlRSi3gOxm1AHhkeH?=
 =?iso-8859-1?Q?jEhAXx4m1QsdNn6FcmtbRYHx88C9xsCskezXstSbvhe89ucuCkqtAMmh0y?=
 =?iso-8859-1?Q?WdUomKG0Boh/WXmuMx0USn75i/L7rEy3NImsTkDaP5GJ+LIOBZrRLiG66w?=
 =?iso-8859-1?Q?l236Py3ay5BGkC1lzSkJq+AxvEh1dmYuPvWVRF/GofM/uP6d6VR471sVaJ?=
 =?iso-8859-1?Q?+mpQ=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)(36860700013)(14060799003)(82310400026)(35042699022)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	DQFPsxReXZsHk5ncn+StTmAg9zSRvexcbBVeksIqiRNDL1DvzeXlX0ekbLyiV36glkqWvdky43FkxwiY7t/BWwYoMxo3aheT9snJ4Yaf1qbCftL57X7EA2rT0ANQTxmXJcbZewJoBI/NmQsVEVeJA7PpKob3ujAMvX6J0G9YLvZ1jvbiSEF+P4gxip+IHQHiGsWPlA3eTHe0qbYnd7VNIjUP4qZzzPs8orONaskoDW/NH8VRRhT3W2Orh918HW89oSS/eSUtOKaESFvsNQdrmAy3KbnnnXDNvV7sZsmTECQfAcLSy25E93307koD5biBfVl6fJTWUE3Sb1gYvpamcE2dHp39RzWeqclxrSZmcqSBoEap+cGwCttN4Vyve+VvqV6THx3VJEux3flTfclLiFEhV4KDUyhAmAqjKrkk2qTISqaFr8PuaysfRHkrAHpw
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 08:46:00.8120
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 99ad0e5f-2571-4b28-49f6-08de6492fd31
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:
	AM1PEPF000252DD.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7638

Hi Jan,

> On 5 Feb 2026, at 09:23, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 05.02.2026 08:44, Bertrand Marquis wrote:
>>> On 4 Feb 2026, at 17:15, Jan Beulich <jbeulich@suse.com> wrote:
>>> On 04.02.2026 16:45, Bertrand Marquis wrote:
>>>>> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
>>>>> On 04.02.2026 14:16, Bertrand Marquis wrote:
>>>>>> Xen does not currently document how to build the hypervisor on macOS=
, and
>>>>>> there is no Darwin configuration for a Homebrew-based toolchain. In
>>>>>> addition, the Makefile silent-mode detection can be tripped by -I pa=
ths
>>>>>> that contain an "s", which hides build commands unexpectedly.
>>>>>=20
>>>>> This wants submitting as a standalone fix, so it can be backported. B=
ut see
>>>>> also below. I don't, however, understand how -I could be useful here =
- our
>>>>> build system is self-contained, so any include directives used should=
 be
>>>>> satisfiable without any -I.
>>>>=20
>>>> This is added automatically inside our Makefile if you build out of tr=
ee:
>>>>=20
>>>> MAKEFLAGS +=3D --include-dir=3D$(abs_srctree)
>>>>=20
>>>> which ends up being -Ixxx when tested.
>>>=20
>>> Hmm, but I do have an 's' in my source path, yet I need to explicitly p=
ass
>>> -s for the build to be silent.
>>=20
>> I did further investigations and my previous assumptions where actually
>> wrong because i looked tat MAKEFLAGS value once the whole Makefile
>> was parsed and the include-dir flag is added after so it was not the rea=
son
>> of the issue.
>>=20
>> In fact the issue is coming from variables set on the command line (and
>> in my case O=3D with a path containing a s).
>> So you can easily reproduce the issue by just passing XX=3Ds to the make
>> command line to do a test.
>>=20
>> As a consequence, your proposed solution filtering -% is not working and
>> the only reliable solution is to actually use firstword to actually get =
the
>> short options list. This is making an assumption on MAKEFLAGS having
>> them first but my tests are showing that it is always the case.
>> I would propose to put a comment to explain the assumptions on which
>> the filtering is based on top:
>>=20
>> Something like this:
>> diff --git a/xen/Makefile b/xen/Makefile
>> index 13e336ba5484..a7924fcb7af5 100644
>> --- a/xen/Makefile
>> +++ b/xen/Makefile
>> @@ -113,10 +113,10 @@ else
>>     Q :=3D @
>> endif
>>=20
>> -# If the user is running make -s (silent mode), suppress echoing of
>> -# commands
>> -
>> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
>> +# If the user is running make -s (silent mode), suppress echoing of com=
mands.
>> +# This relies on GNU make encoding short options in the first MAKEFLAGS=
 word;
>> +# if this changes in the future, this check may need revisiting.
>> +ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)
>>     quiet :=3D silent_
>> endif
>>=20
>> Also i can put a fixes tag if you think that is useful:
>> Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_rul=
e")
>>=20
>> Please tell me if that sounds ok for you and I will resubmit this as 2 d=
ifferent patches
>> instead of a single one.
>=20
> Sadly no, see my other reply sent earlier today. Furthermore, as said the=
re, even

Sorry missed you reply when i wrote mine.

> with O=3D I can't repro what you say. In fact with a Makefile containing =
just

interesting

>=20
> $(warning MAKEFLAGS=3D"$(MAKEFLAGS)" ABC=3D"$(ABC)" XYZ=3D"$(XYZ)")
>=20
> all:
> @echo 'MFLAGS=3D$(MFLAGS)'
> @echo 'MAKEFLAGS=3D$(MAKEFLAGS)'
>=20
> I can observe (with both make 4.0 and make 4.2.1) $(MAKEFLAGS) expanding
> differently depending on where it's used (I'm passing ABC=3D and/or XYZ=
=3D to
> experiment): Only the use in the rule has the variables. What version of =
make are
> you using?

I am using make 4.4.1 on both my Linux and brew based builds which might ex=
plain
why i always see the same.

I have an other linux system where i have make 4.3 and in this one, MAKEFLA=
GS does
not contain O=3D options when the test is done so the issue is not appearin=
g there:

adding:
@@ -116,6 +116,7 @@ endif
 # If the user is running make -s (silent mode), suppress echoing of
 # commands

+$(info MAKEFLAGS=3D$(MAKEFLAGS))
+$(info MFLAGS=3D$(MFLAGS))
 ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
     quiet :=3D silent_
 endif

## On linux with make 4.3 i see:
MAKEFLAGS=3D-rR
MFLAGS=3D
and the build is not silent

with -s:
MAKEFLAGS=3Ds -rR
MFLAGS=3D-s

with --warn-undefined-variables
MAKEFLAGS=3D --warn-undefined-variables -rR
MFLAGS=3D--warn-undefined-variables

## but on linux with 4.4.1 i see (same with brew make 4.4.4:
MAKEFLAGS=3DrR -- XEN_TARGET_ARCH=3Darm64 O=3Dbuilddir-s-test
MFLAGS=3D-rR
and the build is silent

with -s:
MAKEFLAGS=3DrRs -- XEN_TARGET_ARCH=3Darm64 O=3D/home/bermar01/Work/xen/xen/=
builddir
MFLAGS=3D-rRs

with --warn-undefined-variables
MAKEFLAGS=3DrR --warn-undefined-variables -- XEN_TARGET_ARCH=3Darm64 O=3D/h=
ome/bermar01/Work/xen/xen/builddir
MFLAGS=3D-rR --warn-undefined-variables

Giving --silent is giving the same MAKEFLAGS and MFLAGS on both versions.

So i think the working solution would be to keep the current test but do it=
 on MFLAGS instead of MAKEFLAGS:

 ifneq ($(findstring s,$(filter-out --%,$(MFLAGS))),)
     quiet :=3D silent_
 endif

Could you quickly do the same test than me on make 4.0 and 4.2.1 to confirm=
 ?

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:56:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:56:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221636.1529816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnvA4-0006oE-QB; Thu, 05 Feb 2026 08:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221636.1529816; Thu, 05 Feb 2026 08:56:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnvA4-0006o7-M8; Thu, 05 Feb 2026 08:56:28 +0000
Received: by outflank-mailman (input) for mailman id 1221636;
 Thu, 05 Feb 2026 08:56: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=oQ2u=AJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnvA2-0006o1-Sr
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:56:26 +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 8d35f34a-0270-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 09:56:25 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47ee2715254so4059125e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 00:56:25 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4831d0b5b31sm14514165e9.4.2026.02.05.00.56.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 00:56:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d35f34a-0270-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770281785; x=1770886585; 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=+IX5G5FK8ZKsLCPCdcCYVvvPMN5D61IxxVz3Nkm5eZw=;
        b=LUo1hPAmzRIz0l/DecXUvaQ7WnMRf2oQpFdvKO2ngY6ixadb/o83/UNChnnxjWa+vW
         OtlLhlKMG+plRjw+75nbq8Qfz7imqbzA9k5Up/WA5YM+/MowE+d21lI+JMumjKsuMcDt
         SAKqrjzaxzEw6TVn2ieJGn+nK0MFeM8v8rlcx/u+cxK6T+DdLgug57bpARgGIXeKjP7I
         ZD5OGwaa8QUDQx/J4lD8lfi2i3XFKO8rPbuQ11hrQ/586a/YN+/cr8IC9X56j1dnw/af
         HJ1xAIce+Q0kud1qqYJZDMoYu3fVuB12Hv1Z99mKjiD8qzW7s+x1NyEyC2pSnV5t2hMn
         7PfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770281785; x=1770886585;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=+IX5G5FK8ZKsLCPCdcCYVvvPMN5D61IxxVz3Nkm5eZw=;
        b=EKlp4vMMaWdyuxPudNqeFzAs64yd+Mx9Qtikx+OugAedPU0TZLa8t82w6Hw7w/RCn5
         P8audwC5uqAcOyrzPv5wh3zSZlmjNRtZKBDVCSyyS5fiL0+pgRr9yOsEMqeQQydF1Q8n
         YODPe9tEbf5zLm33ckLzzrnKhKU2X/PNSBnQW7/bKuT0Kj8KMTY+NUnSajCcvUp09ac1
         yKbUkGcY5BelGeiWonn6k+oHsZ8MVUaXgrGuWFqTCmcq6KoKX/l55LM4dCmDt2yjxIZF
         5ciG2H731Cthw0UPPAp3Vi3mhII1skHdOAwZpd62zRmVEq+MPpN2NpCtzjbCGc+IW6bm
         SzFA==
X-Forwarded-Encrypted: i=1; AJvYcCXR+XmNZLLkr0zToGrCTPbXgb9mwr2FOwlfMWN4SzQwv6DzXrZcrhy/CC4c/Rf6NKrSVqfmhkQtpBk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyuc8vKSSqfGLb3kRnelcxZeD7JCd5WZ/lwc37t+7SGkNcmqAt4
	ae/G+DzGs3cj71YiWeiPoPPltgSUsraLU0Qu1EGi3uLatY1Ncep0ueMZ
X-Gm-Gg: AZuq6aKBQKa2UK8T78CQMl/VlKwvUgn8tdaLtcnwOqHEmemesIg9wtD90oCzIZNpZOE
	6G1FMAej6e1id/b320NnMYCypoAJkoPXzl6u29DYEMu2BLV6lfHDOUBiV7C2berumRWyxqTiEXV
	/F4hARXb1KWXrmDX8PAqzcipWTJbR8rmnK/SIeJIYYCnTJJvr1ZaxcmhxJ7YhR5kjthBe1ZGgLM
	PH1AITs4pQJDspGqDpxFmg9Yn+TX3+TI1yL0BWVqRaNkv+CWWscuf+0sNXcd4y4mp+IMWMiG6vT
	fvUvzDwESe1suvw5hy2K/BRTsz+MCvJDz3zpAsa4wDXMSfx3FzZn8y8vOho9gI2k+OmNPutjt07
	WNIOBH4j/fn+zWF9XCR1MhRF310rLplQlNnTT9K0b1u3fvf+ct/vInKOR/N2pEMc1SL4MR0I8Yu
	09zoiB4a6vSV/BaSEdd8PACIpRMsWNR+mt5lZncgkDfFGY3p2ozfaTnAA+Oyr9aWs=
X-Received: by 2002:a05:600c:1e02:b0:479:1b0f:dfff with SMTP id 5b1f17b1804b1-4830e948cf0mr81176205e9.10.1770281784769;
        Thu, 05 Feb 2026 00:56:24 -0800 (PST)
Message-ID: <060f4338-d6ac-41a1-8036-ab506cd54bf4@gmail.com>
Date: Thu, 5 Feb 2026 09:56:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/riscv: add support for local guest TLB flush
 using HFENCE.VVMA
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <89f50ab2c1a1c79abea4db3a53393f974bb9a473.1770036584.git.oleksii.kurochko@gmail.com>
 <309e4e0d-c2a3-4f56-ab6f-f648da313bb6@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <309e4e0d-c2a3-4f56-ab6f-f648da313bb6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/4/26 12:09 PM, Jan Beulich wrote:
> On 02.02.2026 13:57, Oleksii Kurochko wrote:
>> @@ -14,6 +15,12 @@ static inline void local_hfence_gvma_all(void)
>>       asm volatile ( "hfence.gvma zero, zero" ::: "memory" );
>>   }
>>   
>> +/* Flush VS-stage TLB for current hart. */
>> +static inline void flush_tlb_guest_local(void)
>> +{
>> +    HFENCE_VVMA(0, 0);
> For this use, ...
>
>> --- /dev/null
>> +++ b/xen/arch/riscv/include/asm/insn-defs.h
>> @@ -0,0 +1,10 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#ifndef ASM_RISCV_INSN_DEFS_H
>> +#define ASM_RISCV_INSN_DEFS_H
>> +
>> +#define HFENCE_VVMA(vaddr, asid) \
>> +    asm volatile ("hfence.vvma %0, %1" \
>> +                  :: "r"(vaddr), "r"(asid) : "memory")
> ... don't you want to use "rJ" as the constraints here?

Even without "rJ" it is using x0 when argument 0 is passed. Just to be on a
safe side I don't mind to add "J".

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 08:56:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 08:56:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221640.1529827 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnvAS-0007CW-5j; Thu, 05 Feb 2026 08:56:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221640.1529827; Thu, 05 Feb 2026 08:56: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 1vnvAS-0007CP-1i; Thu, 05 Feb 2026 08:56:52 +0000
Received: by outflank-mailman (input) for mailman id 1221640;
 Thu, 05 Feb 2026 08:56: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnvAR-00073Q-HN
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 08:56:51 +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 9b7ef31e-0270-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 09:56:49 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47edd6111b4so6919465e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 00:56:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d58214sm37468545e9.15.2026.02.05.00.56.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 00:56:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9b7ef31e-0270-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770281809; x=1770886609; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=A7Ac80wrYxoM97kg0aFixqE5HnhAgyPQ0q0t7jyQ20Q=;
        b=UGodCQEdD606AHb/6sXqrXRDkk4WqGX8k/onbn7hfaAdCXcHrevG51XStUvrBBSgUi
         f4ZRJ3o38L22Ay4T3NoM9Pu4MPlDfb0jJ64KnjtXbAzEOAuufhfUnibp/CRZpBfg6sjV
         G8kXzWgAAH7f0HUvo2K/57fHhtDG8Vo/p0+lLUNjCY3DeXOCPLcEYlycBeLyiR0OTOVI
         lAHY9MvWhuv7uSZCCbOZQFwrLRFOT0XrMycvneq+KepHf/jOarQWG+xlRJ86nVDOF1sY
         4y7eWz9vBa8Z8JNbGOMpQMM/aDxzz4xxnoLknEbeQuhpw3egzSVfZ+M1Y7eO2qZH6B0n
         u1GQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770281809; x=1770886609;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=A7Ac80wrYxoM97kg0aFixqE5HnhAgyPQ0q0t7jyQ20Q=;
        b=MZab7kC1GNjQtwZ7oxHeKg5tV1WBX3YhwdiyhSnAsPkjITDpD6xskzPsZqWBsHi85d
         K1XbB5Qoc1CBgaXbzSZlu8sFak9Oj5/2RFkYx+4vOZBDfjALqWCjyMOa8Mr5sxQCiGOH
         J3kJ2fXoJXPDy4hUl7tlSiTeIz14j8yK6xBd0ZEDHyBq0sL35MbcZOx82eM0d5waRYqT
         lXKqblmtfmVmaWfF817a7yuL4i/5tcoGqt1PNhExPxJK8REgs2+iWO9pSrwRYQ5mVZbe
         8Eq/JtK5+50SNmZLN8ANB4+v6JuEuvSHIen0stIr4grSvqi6L0l4jOCOS+xZ+k/0mx8b
         ah6A==
X-Forwarded-Encrypted: i=1; AJvYcCUn800LR2VcKukMLFqJbqvCi7fj1iYNJNskvGUgkuHO/cdi4imGRswuP/SVUJHzCNYSaZkaegFTMBQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzygWlFF4N5dwe7EsUJwKHmvcAfuiZdaamKaW5EqX7mRjX38/yr
	dRbaK7oQXXJtzDOBCmV1WZzKrfOcwdLRsVwkt1BZqfsZPnW6c7eTpI86Sv12/Z8rIQ==
X-Gm-Gg: AZuq6aIgHsfwUaEEFWil17Vt57gB9E5H772tWFUqoyu65c1grWk3yNmS1K+dPtydhab
	E8ayXqxDMbKr+JfH9dppjDbfI4M9ZTjuIvRCASuseMaqGeSQ3BkKVP7sFN/s7YFmUsttNEuJfG3
	WRBT5Bb2nQ/8mlsKtojv7OSGyDpOfQQrw1ulErNvIArd8HuCVUvqSRKN7npTMnyvMlMtYe7GlZ6
	DHGBab+wOM9LyAK+UBWGNPtYRYAz1k9VborwE+rG4ZahTvAx3weBucMBG/tFCfyZSo+1yZkPLUJ
	aqTdDKcf05gOjsv++zSVuuazuOoXlcLIu5UgrIJ3pFjdGfMRnrVy9jG5G+lajGNGizYBfj4fcr0
	StOEyTjcbyX+zFOGg1A0D2gDBS5KZ+XuinHq9fgWHXLw3+fkGDT6jA3MXgxgA9OL6IEjgPpDDJa
	Ng7euG7K2vaEiU8hgOZpw1F1MT/7Jb3vx+pUh3l0iVk+Ie0kNq63hLfXnAEMGPkJYm5oBvLr5HF
	jA=
X-Received: by 2002:a05:600c:4e05:b0:477:c71:1fc1 with SMTP id 5b1f17b1804b1-4830e979260mr83756785e9.19.1770281808911;
        Thu, 05 Feb 2026 00:56:48 -0800 (PST)
Message-ID: <e77fc7ab-39fe-444d-bc04-591155f68aa3@suse.com>
Date: Thu, 5 Feb 2026 09:56:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
To: Bertrand Marquis <Bertrand.Marquis@arm.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: <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
 <eca1e783-b147-4230-a340-41b8cb694c5e@suse.com>
 <65D4FEA7-DECD-4DDD-B119-4625F72ED585@arm.com>
 <eed4bb7b-5836-4345-984d-c542b9f1da34@suse.com>
 <C8CFD80F-057C-40D5-93B4-176F3D785C44@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <C8CFD80F-057C-40D5-93B4-176F3D785C44@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 09:44, Bertrand Marquis wrote:
> Hi Jan,
> 
>> On 5 Feb 2026, at 09:23, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 05.02.2026 08:44, Bertrand Marquis wrote:
>>>> On 4 Feb 2026, at 17:15, Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 04.02.2026 16:45, Bertrand Marquis wrote:
>>>>>> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>> On 04.02.2026 14:16, Bertrand Marquis wrote:
>>>>>>> Xen does not currently document how to build the hypervisor on macOS, and
>>>>>>> there is no Darwin configuration for a Homebrew-based toolchain. In
>>>>>>> addition, the Makefile silent-mode detection can be tripped by -I paths
>>>>>>> that contain an "s", which hides build commands unexpectedly.
>>>>>>
>>>>>> This wants submitting as a standalone fix, so it can be backported. But see
>>>>>> also below. I don't, however, understand how -I could be useful here - our
>>>>>> build system is self-contained, so any include directives used should be
>>>>>> satisfiable without any -I.
>>>>>
>>>>> This is added automatically inside our Makefile if you build out of tree:
>>>>>
>>>>> MAKEFLAGS += --include-dir=$(abs_srctree)
>>>>>
>>>>> which ends up being -Ixxx when tested.
>>>>
>>>> Hmm, but I do have an 's' in my source path, yet I need to explicitly pass
>>>> -s for the build to be silent.
>>>
>>> I did further investigations and my previous assumptions where actually
>>> wrong because i looked tat MAKEFLAGS value once the whole Makefile
>>> was parsed and the include-dir flag is added after so it was not the reason
>>> of the issue.
>>>
>>> In fact the issue is coming from variables set on the command line (and
>>> in my case O= with a path containing a s).
>>> So you can easily reproduce the issue by just passing XX=s to the make
>>> command line to do a test.
>>>
>>> As a consequence, your proposed solution filtering -% is not working and
>>> the only reliable solution is to actually use firstword to actually get the
>>> short options list. This is making an assumption on MAKEFLAGS having
>>> them first but my tests are showing that it is always the case.
>>> I would propose to put a comment to explain the assumptions on which
>>> the filtering is based on top:
>>>
>>> Something like this:
>>> diff --git a/xen/Makefile b/xen/Makefile
>>> index 13e336ba5484..a7924fcb7af5 100644
>>> --- a/xen/Makefile
>>> +++ b/xen/Makefile
>>> @@ -113,10 +113,10 @@ else
>>>     Q := @
>>> endif
>>>
>>> -# If the user is running make -s (silent mode), suppress echoing of
>>> -# commands
>>> -
>>> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
>>> +# If the user is running make -s (silent mode), suppress echoing of commands.
>>> +# This relies on GNU make encoding short options in the first MAKEFLAGS word;
>>> +# if this changes in the future, this check may need revisiting.
>>> +ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)
>>>     quiet := silent_
>>> endif
>>>
>>> Also i can put a fixes tag if you think that is useful:
>>> Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_rule")
>>>
>>> Please tell me if that sounds ok for you and I will resubmit this as 2 different patches
>>> instead of a single one.
>>
>> Sadly no, see my other reply sent earlier today. Furthermore, as said there, even
> 
> Sorry missed you reply when i wrote mine.
> 
>> with O= I can't repro what you say. In fact with a Makefile containing just
> 
> interesting
> 
>>
>> $(warning MAKEFLAGS="$(MAKEFLAGS)" ABC="$(ABC)" XYZ="$(XYZ)")
>>
>> all:
>> @echo 'MFLAGS=$(MFLAGS)'
>> @echo 'MAKEFLAGS=$(MAKEFLAGS)'
>>
>> I can observe (with both make 4.0 and make 4.2.1) $(MAKEFLAGS) expanding
>> differently depending on where it's used (I'm passing ABC= and/or XYZ= to
>> experiment): Only the use in the rule has the variables. What version of make are
>> you using?
> 
> I am using make 4.4.1 on both my Linux and brew based builds which might explain
> why i always see the same.
> 
> I have an other linux system where i have make 4.3 and in this one, MAKEFLAGS does
> not contain O= options when the test is done so the issue is not appearing there:
> 
> adding:
> @@ -116,6 +116,7 @@ endif
>  # If the user is running make -s (silent mode), suppress echoing of
>  # commands
> 
> +$(info MAKEFLAGS=$(MAKEFLAGS))
> +$(info MFLAGS=$(MFLAGS))
>  ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
>      quiet := silent_
>  endif
> 
> ## On linux with make 4.3 i see:
> MAKEFLAGS=-rR
> MFLAGS=
> and the build is not silent
> 
> with -s:
> MAKEFLAGS=s -rR
> MFLAGS=-s
> 
> with --warn-undefined-variables
> MAKEFLAGS= --warn-undefined-variables -rR
> MFLAGS=--warn-undefined-variables
> 
> ## but on linux with 4.4.1 i see (same with brew make 4.4.4:
> MAKEFLAGS=rR -- XEN_TARGET_ARCH=arm64 O=builddir-s-test
> MFLAGS=-rR
> and the build is silent
> 
> with -s:
> MAKEFLAGS=rRs -- XEN_TARGET_ARCH=arm64 O=/home/bermar01/Work/xen/xen/builddir
> MFLAGS=-rRs
> 
> with --warn-undefined-variables
> MAKEFLAGS=rR --warn-undefined-variables -- XEN_TARGET_ARCH=arm64 O=/home/bermar01/Work/xen/xen/builddir
> MFLAGS=-rR --warn-undefined-variables

Ah yes, and here is a quote from make 4.4's NEWS:

"* WARNING: Backward-incompatibility!
   Previously only simple (one-letter) options were added to the MAKEFLAGS
   variable that was visible while parsing makefiles.  Now, all options are
   available in MAKEFLAGS.  If you want to check MAKEFLAGS for a one-letter
   option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return
   the set of one-letter options which can be examined via findstring, etc."

> So i think the working solution would be to keep the current test but do it on MFLAGS instead of MAKEFLAGS:
> 
>  ifneq ($(findstring s,$(filter-out --%,$(MFLAGS))),)
>      quiet := silent_
>  endif
> 
> Could you quickly do the same test than me on make 4.0 and 4.2.1 to confirm ?

Well, I did confirm this already with my earlier experimenting. IOW either
this or the $(firstword -$(MAKEFLAGS)) they suggest (effectively matching my
earlier suggestion, prepending '.' instead of '-', as really any char other
than 's' or a whitespace one will do here). Personally I'm slightly in favor
of the MFLAGS variant.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 09:10:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 09:10:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221662.1529844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnvNq-0002D9-DG; Thu, 05 Feb 2026 09:10:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221662.1529844; Thu, 05 Feb 2026 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 1vnvNq-0002D2-93; Thu, 05 Feb 2026 09:10:42 +0000
Received: by outflank-mailman (input) for mailman id 1221662;
 Thu, 05 Feb 2026 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=BdQL=AJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vnvNo-0002Cw-UH
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 09:10:41 +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 862c5d58-0272-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 10:10:32 +0100 (CET)
Received: from AS4P251CA0017.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d3::6)
 by MRWPR08MB11826.eurprd08.prod.outlook.com (2603:10a6:501:9a::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Thu, 5 Feb
 2026 09:10:28 +0000
Received: from AMS0EPF000001AF.eurprd05.prod.outlook.com
 (2603:10a6:20b:5d3:cafe::86) by AS4P251CA0017.outlook.office365.com
 (2603:10a6:20b:5d3::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Thu,
 5 Feb 2026 09:10:25 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001AF.mail.protection.outlook.com (10.167.16.155) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Thu, 5 Feb 2026 09:10:28 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA4PR08MB6144.eurprd08.prod.outlook.com (2603:10a6:102:e3::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Thu, 5 Feb
 2026 09:09:25 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 09:09: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: 862c5d58-0272-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=G5nTpc33Jxr+33GsusUf2JklL5TEt/2xXWcWTc5izkUaTzKK/fxPuVUo5B9mH/2M2RgBXV6K/7J1AEXv9/n77ruBqjtN1eOiHWZvifc2pMPPwT1Im2gOxrhcF1e77Csy6QzdJEut8lYEWKdBG1/166xdd4BaZ5RDOx8jHvX8s2U9dHBdb1rMNh1QSSSkSnQyM2plGMCfwraN1iG/b4vqDZnIVv5/YOE0ch7CXI6jXdcwtYWD8DfhG4aengQ7RZporaynXCyLYxWRKfNL7mXPiJ3PV2yuJVvHMu6J8HrRl2U3xmbkMiuHuXNTFQrBG/TzSf/eDC9pjYyBH2P5SaXBuA==
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=GJze7kEu5pNh4GwQaLr8lilZBUZikcp2XZkpTPWled8=;
 b=DYMdhrc45qRAVchdj+M58akrpwbXNcV+psiFy/wP0kve6C56RPEeXiSO0KlMQzq7A36plczH3DdAbfPFSbQXXjL+sXvmSwhXjFPv745vn9LXmZshZxrf1ROkUCroQotv0Vdyr/qh18ORsU6DLaSQ90ZhAgMvMi0T+x+Pugfb2SZg23Zb7VaMPnG55f1uILc+twqTkRrOW3rHMwUOtnBcLJSwyvMKQqmVo22MRhBtQs0V723DSfXflFlgSxRQ5pAkRGIh4evBLhd89y2Eal7RC4BdfnQ9HBaEtZ/oddkiW7B+QVhyrxwe/eddWXJKEdy3GgC4vxTgp1A7OyXBo+HQ9Q==
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=GJze7kEu5pNh4GwQaLr8lilZBUZikcp2XZkpTPWled8=;
 b=Sxw0hXDbOkGEV6hzLKmVLkM5xWzq5O8lD6Q+Myqk1B/hdmb5gTyy8r431u6q/fEIEBPAf0ryX8CczgBryqUhliSDetXfDnJz0lNNN7kraRfHDq6sUa19A7PGnMzVkfJ53B6YGYw819dktSaPkUP6WOwpVTPIdlkWpunlCNuum7A=
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=lMxdA9lO1hs1nzMXhLYLWJQV0/phUx4gwlu95MO0UxGbpNwAtx+qG0rE+wDcHWA2hWGSHmy/Qd1RjP0bARYou2PEMO+g37iCki/LYGEbJVuD7+BEa7cHMkFW3wU1N8T9hYod+Fd9expSJieJI3VttH4pxk8Tbgvdp85nZMKPGPDZT7PmL2F+zmjoUk+foWpp6n6HsWUIlYHsxYFYDPTYhxF4+olAfYf1QByeXww1h1jeL1SuzVkuwFaeeRVoyPCG89bY81CpkSBOpoyPwdNzsxm9AZ7zBXHFB8AlW8/8/jyIZr70d8RUYmxjlLDNg/Z9KsfFCsG/g7+6mI+5l424xA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GJze7kEu5pNh4GwQaLr8lilZBUZikcp2XZkpTPWled8=;
 b=tMRooLU5FQquTPLrd57vWwPVXqKHwEB8tUKqo64Nt9FIqQqUGfmoVShX1BckKuytc+QHZPtciE6b2kDfVQ/PNUqfZpFAiQPSCmKw9VwoFIpfkaG349p6UjTAsd22u40Q9O1hYcPaeSOt4xH/h3Nag3nay/cfYrzn/l5mLzk6ELnsFis5gVIBiMtwV7A57YAIZWuHllvZ2jeFBSJBmypw8ePo0MwrQxtOaTYQjEmvsFiQV8Qra5vXmvFdg4qVhalbWDQiPxfuajz/NqaKttklTSrW17aKQnjldXSuZeF2xuDYvHuFq7mjyUm9XlNAa0AxBOBa2Td8kYplVkCSpvj1Hg==
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=GJze7kEu5pNh4GwQaLr8lilZBUZikcp2XZkpTPWled8=;
 b=Sxw0hXDbOkGEV6hzLKmVLkM5xWzq5O8lD6Q+Myqk1B/hdmb5gTyy8r431u6q/fEIEBPAf0ryX8CczgBryqUhliSDetXfDnJz0lNNN7kraRfHDq6sUa19A7PGnMzVkfJ53B6YGYw819dktSaPkUP6WOwpVTPIdlkWpunlCNuum7A=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Topic: [RFC PATCH] xen: Add macOS hypervisor build support
Thread-Index:
 AQHcldiTYCc32vRyb0mp6O53Aox8PLVyquQAgAAD9QCAAAhKAIABA5IAgAALHACAAAXaAIAAA1oAgAADfYA=
Date: Thu, 5 Feb 2026 09:09:25 +0000
Message-ID: <5A50CA14-6AF6-4DFF-A395-5DDFE01C8C50@arm.com>
References:
 <d923a50ff7870087347ef783516f3c2d2764dc6e.1770210872.git.bertrand.marquis@arm.com>
 <a3637eb3-ff0d-4a69-aa7e-e86be92b062b@suse.com>
 <5062E1F2-D023-4BF9-A829-BB996686B04C@arm.com>
 <eca1e783-b147-4230-a340-41b8cb694c5e@suse.com>
 <65D4FEA7-DECD-4DDD-B119-4625F72ED585@arm.com>
 <eed4bb7b-5836-4345-984d-c542b9f1da34@suse.com>
 <C8CFD80F-057C-40D5-93B4-176F3D785C44@arm.com>
 <e77fc7ab-39fe-444d-bc04-591155f68aa3@suse.com>
In-Reply-To: <e77fc7ab-39fe-444d-bc04-591155f68aa3@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA4PR08MB6144:EE_|AMS0EPF000001AF:EE_|MRWPR08MB11826:EE_
X-MS-Office365-Filtering-Correlation-Id: 4b44dbae-6a9a-4970-9054-08de64966807
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?nm1i/euxVIsd2oPfFUXyKQDd8qqUyRQWCu6Uq/Fqg8iq0XPzqb3NPlfHY4?=
 =?iso-8859-1?Q?HV8NLOEUKHlTxUsK9GKlzKzX3SZUpA2h1JDvCNHsK//Q8EMwltpY22B215?=
 =?iso-8859-1?Q?jSGTW1pSKb1oisGc7fg2uxLfxeb7k5XPYHT/HhlJ3VBpQzYWlNp3c/JxAg?=
 =?iso-8859-1?Q?3TlAtwxeRG4h6QNcRX9rLWm7LxBFpS/J/NEIDLYVJOYKk8tq+TlgvObA+e?=
 =?iso-8859-1?Q?uFffaGwjaWibTkQQIPy7zyDcVNS0qsm+dsj0IBCAmXMZOTLtI0VuT6SsfL?=
 =?iso-8859-1?Q?6kYYB83WKSyuCCWrumoLR5EWNsgxlfxrN8M23s71tdOAy8EujH00VGPDon?=
 =?iso-8859-1?Q?RHuFk7GFJEnwzPOuW92dwZk3f+I9a2ddo5oHZZmKbvoVQnWdVWKOiiLIry?=
 =?iso-8859-1?Q?TsNqYxaQn/Aow29Rz5WViWXcsCX/S/hF9e7BoaxhofpGJUjGfeOjLQImZn?=
 =?iso-8859-1?Q?zKF4B2Ujhy0sTHW+8q5QSUQJKgevzSkKMaHJSG+jc97UpGnXKC+aRNrBDl?=
 =?iso-8859-1?Q?z10oyxI3g0HmJ8DYm1QYFflql5YiIx+ViX7XYrcruxXABPYzby44tc6o/8?=
 =?iso-8859-1?Q?VGZsV8H9Ybft0HGh5/EgXYy78KLtNn5OuLbSiStgFSok/88prTsHFPT7jk?=
 =?iso-8859-1?Q?sEgle7EIMAnPpYLU2ikTsWVcWpvexTz5cdrzh1h0lW1QRtWMYXqcHKGc4d?=
 =?iso-8859-1?Q?NA7PBwT/ANjL6BKbaR+7KK2S9JYFOTJYNaFn2W7sPMKugUZcc94VuyHv6u?=
 =?iso-8859-1?Q?+9cnFwWWmibG911vW9XeJJpwd1pUB4Qar/liQRo6JKxZDBDx9VBEoo8Xwp?=
 =?iso-8859-1?Q?WVU8UrCu67b6504F6V4on/szmuPL6rb7K6wwZ5HFzo1DsNL+cTx2fUd7m7?=
 =?iso-8859-1?Q?waLsgo8lGDUzAfhYC0yQBb0eMReus5zZK+WvYuDUrAvyCWPoK89uUuN+w3?=
 =?iso-8859-1?Q?pgz2wK8ZOGQ0hYb2MPqVnufa5k1eNtzqC+BohBu7V46TUo8tLldGJsO1pr?=
 =?iso-8859-1?Q?nmblP1aU+G4eS0SYNs8bJ8+IZyAJWw1Pa0mwxTBHvNPoqh9MWsQec7wioM?=
 =?iso-8859-1?Q?inTgqXeKA2aih/WMJYfrl1a1nL5AXRod4M8/xhup03UbNjlRoG4uwn506q?=
 =?iso-8859-1?Q?6lotR4kbv1uIVOCwQPOwPDFbOpz6SeeS8r+11Tjs+DopWYkUGM+qgeIKha?=
 =?iso-8859-1?Q?S03gTrPuvD4z0JwqNgtiPSQ/J+zGfAF0OaFzyZXT2SOHCSW6+Ii16UEPLP?=
 =?iso-8859-1?Q?ZXdeVKIsUDetRlEa5YEX4jYaXsLwXUohaN/xs7KQPAnRd5ho4lN0HeS2Rr?=
 =?iso-8859-1?Q?GuZ90XJNZpdIHJNWFbNT6B8RijqXoHsl3zZVBWXGUys11glSARgm72snyS?=
 =?iso-8859-1?Q?Bz2O2WBt1aBHw0z2iSegZ6zJ+JdRDp7v6KmEFdYtGkA+noE8Ryf5QbSBN6?=
 =?iso-8859-1?Q?N+Bh3Ciu+PXgSzZg/Nm7Uqg4x4jLZ0ReDLAUs0DhNcklS7MrqGHu+7+3Ev?=
 =?iso-8859-1?Q?Diel66ZQzCqSxR1FGjEQBKG2BsxYKFrdHH++WPxk0KxMc+DaRefZkbu06L?=
 =?iso-8859-1?Q?3X8tvYlckIZH0NWkhQWZkgG+LblaLCmONLKxFE4Va5iOqRBYasLqR9p9iP?=
 =?iso-8859-1?Q?3hPSnNgwA7ovvxFJlF2/ULQu4DL+N0fwApo7JwUOwdAKsNErHXPyDjKRgL?=
 =?iso-8859-1?Q?y6AFeIyrTcVkwnEXTV8=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <2EA2188E9C184442B682650F58091714@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6144
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001AF.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	14541817-7b79-4956-c6aa-08de6496429c
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|1800799024|82310400026|376014|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?ir6n2sCr94VIRi+4lec6URPHjdjzyG38Mpj3qF1wEOz0rgvWLwGsc1P1jJ?=
 =?iso-8859-1?Q?MC/h0sdHS7Y8d/tR5sQWHvAZDlL1D0lT/fr8c/v/FI3H3KCbhl1iaQS8XI?=
 =?iso-8859-1?Q?sWu0r42Xzim4ehGLbACHng0p6MgmJuPSJVX6s5zQ8u3LNYYm6M/EO3MGIe?=
 =?iso-8859-1?Q?1gnrBOmIyvdCADzqAr3JigaHR7wZgg/jEFgfhsMBSuO66PngTeIGrRq10I?=
 =?iso-8859-1?Q?z6j+3lfCLPeQD0QSlfWNVEJa7RtoUQB+hW9XnewjmtF2SdEOd2BttULNfy?=
 =?iso-8859-1?Q?HOxT0U46zTWSyDflZZZm4vpLId+bb8MxVH1VqEu+LIZkruU4jW2gdqDp4W?=
 =?iso-8859-1?Q?2sqnP57cxiU5+RlzRUY1Kewm8vPKGZ+YYlrCeCQpirPsqOvytNdX6lyG5Q?=
 =?iso-8859-1?Q?FPMfeGPlf/Up0mHlH+/1c9Bc8zGXmYj+wa5cim4GW7QHHrrKR2sQtLrHdK?=
 =?iso-8859-1?Q?AsmktvzomNR0bDg6GMJQsPpyHj4NFNkwjJ1Yxld5Z57UosWOuJHP2Ev/q3?=
 =?iso-8859-1?Q?Sgl94p3Q/ZS3LA9uhWeXUoficq/XEwKWPCHJp67D32118Pqd+Yt46TvI30?=
 =?iso-8859-1?Q?tc42x5KT1rjUqz/v0ibY8n6CbeC4pMGdafxqQImwR5h0xFxtW3KFy6zqD0?=
 =?iso-8859-1?Q?oB7s63VOrivqzBtCziVZO7qXYppRsaIRWrBIzeJARfGz++QCgoDQQ3NU/D?=
 =?iso-8859-1?Q?x/5DQRMt7V/r+CaMP4sbPtB10sAx8pFssHhvkW5p5y3+GF0NFApd354wad?=
 =?iso-8859-1?Q?gICeDTd1VoY9MQL44UW+hDiUJzKnCFmDrLzvBNfr/JreBCctExddXoY2wL?=
 =?iso-8859-1?Q?sxJnAaE24Kfxf2p91kebTVCXCKYWHyILiAg0oeRriMIIpWs7q0A5C8HEX0?=
 =?iso-8859-1?Q?o0mSHupJxr+2eypeT3NXVB6a2AU//WvRlysVEDXJgfO5bB6jUUfqehHYZm?=
 =?iso-8859-1?Q?qiDZpnYORXGAbTZVfaVOJuj7qH6gEmLXzw8GECMFOH0ZCtHiMGflge160s?=
 =?iso-8859-1?Q?GrvzIHkG2J1+DDC7iYmQgFxclx/ZpSVT3qHva0M4v7NkWIKxq0xsYoHxNJ?=
 =?iso-8859-1?Q?oJHq2PMd2T6qknEpzcLcbkK8n8ozisyTt9ADA29xg6q6rl/6N/Dkf1DHFI?=
 =?iso-8859-1?Q?7WohdgvSh/7eDxoI+RiUU5+RMj4j2uS17dcG8UuNeAWwb83kbq6rnqHD7m?=
 =?iso-8859-1?Q?II9qS2KQ0Mv+dKFh+WtKBDpXvU4gZGt1cO+4cuTfYqWDoJDEGpZKArbZus?=
 =?iso-8859-1?Q?L48PGX7zDPTti5XHl+jGYVA1J0HvlM4fSScFfspScTcYQPVhMkQJc2loL8?=
 =?iso-8859-1?Q?QJxBcI3y3TVIfLERXS2qY/7yOhUQWyBAKcmcOKZCsqWtF0HDlBUMW/TIrQ?=
 =?iso-8859-1?Q?Uq0e8WClX7tsmmJpKbzsB4m24QGqhp7FM6fpCrcNAadfvVs0vlXL68AXpI?=
 =?iso-8859-1?Q?yt86Va89aLtdIJ8qcUBeHSWHOnT+Wn9XCn2fmxJSHSG2NWZedO5XPttC3e?=
 =?iso-8859-1?Q?wPwGwjTq7aRlKS3TGwMZYkSDABE7gH/oWrke7ztDc6boB55Mcfbl+wqV5L?=
 =?iso-8859-1?Q?qWV3Gmh863Iz5y5W3h2IczeKnnZRzDb3XUnT7iM6r4laBJyhuDGHgFTaSR?=
 =?iso-8859-1?Q?YBWvLNQaNLNUmrLRXApvVUGgE+tq5i4mzhLgQgGiCaAHun1nZW+WCv0VVk?=
 =?iso-8859-1?Q?mrdGo6hs1OK1899LXjtrZXJ2F7FhNQ1Eb/58MSH9vywE/RtdPYzK3TpJe1?=
 =?iso-8859-1?Q?S4sA=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)(36860700013)(14060799003)(1800799024)(82310400026)(376014)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	0TXnHAKL8bwM+NkWJnpBlTN5Xoadz80hZ1CtGz9lOJzMYuOQTbFIkzWTRMYHtMvTSrnA5ED9qOMlZIqmSBEYU5KK3KfzK23widin7gXAFkFbsFNaLFIY2vLnlu547zVl42snED9LgTZBScP64c+CRxoJynOqnRr61vy4VsZAXtj01hf/PdfMaiB7zGRQ2l9lKy0iEQBzkaMTE8/L/aav5HDk4MMJWXLS5Bfb/p2OTiMV79B+XIyqJ1jy0Wiuh8b05dhYL0+z/GAf+GwuOspCeLyyj2VPpHLV6om1s/sN9A14AIfQHi1c/ACfCa2VQSDn1Mdt54Swz/j6lN8PW0RBVfBUsCz6S21id9Lnp8/y51gH9WpQXlhIuw9RZOAU6kohM3eZhIcDdGmtUU1sgWsFlWIpbxdeu4Z7mll4hMA1OSH2Hq1XJCi6hU1wu1LOGFOo
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 09:10:28.5367
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4b44dbae-6a9a-4970-9054-08de64966807
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:
	AMS0EPF000001AF.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR08MB11826

Hi Jan,

> On 5 Feb 2026, at 09:56, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 05.02.2026 09:44, Bertrand Marquis wrote:
>> Hi Jan,
>>=20
>>> On 5 Feb 2026, at 09:23, Jan Beulich <jbeulich@suse.com> wrote:
>>>=20
>>> On 05.02.2026 08:44, Bertrand Marquis wrote:
>>>>> On 4 Feb 2026, at 17:15, Jan Beulich <jbeulich@suse.com> wrote:
>>>>> On 04.02.2026 16:45, Bertrand Marquis wrote:
>>>>>>> On 4 Feb 2026, at 16:31, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>> On 04.02.2026 14:16, Bertrand Marquis wrote:
>>>>>>>> Xen does not currently document how to build the hypervisor on mac=
OS, and
>>>>>>>> there is no Darwin configuration for a Homebrew-based toolchain. I=
n
>>>>>>>> addition, the Makefile silent-mode detection can be tripped by -I =
paths
>>>>>>>> that contain an "s", which hides build commands unexpectedly.
>>>>>>>=20
>>>>>>> This wants submitting as a standalone fix, so it can be backported.=
 But see
>>>>>>> also below. I don't, however, understand how -I could be useful her=
e - our
>>>>>>> build system is self-contained, so any include directives used shou=
ld be
>>>>>>> satisfiable without any -I.
>>>>>>=20
>>>>>> This is added automatically inside our Makefile if you build out of =
tree:
>>>>>>=20
>>>>>> MAKEFLAGS +=3D --include-dir=3D$(abs_srctree)
>>>>>>=20
>>>>>> which ends up being -Ixxx when tested.
>>>>>=20
>>>>> Hmm, but I do have an 's' in my source path, yet I need to explicitly=
 pass
>>>>> -s for the build to be silent.
>>>>=20
>>>> I did further investigations and my previous assumptions where actuall=
y
>>>> wrong because i looked tat MAKEFLAGS value once the whole Makefile
>>>> was parsed and the include-dir flag is added after so it was not the r=
eason
>>>> of the issue.
>>>>=20
>>>> In fact the issue is coming from variables set on the command line (an=
d
>>>> in my case O=3D with a path containing a s).
>>>> So you can easily reproduce the issue by just passing XX=3Ds to the ma=
ke
>>>> command line to do a test.
>>>>=20
>>>> As a consequence, your proposed solution filtering -% is not working a=
nd
>>>> the only reliable solution is to actually use firstword to actually ge=
t the
>>>> short options list. This is making an assumption on MAKEFLAGS having
>>>> them first but my tests are showing that it is always the case.
>>>> I would propose to put a comment to explain the assumptions on which
>>>> the filtering is based on top:
>>>>=20
>>>> Something like this:
>>>> diff --git a/xen/Makefile b/xen/Makefile
>>>> index 13e336ba5484..a7924fcb7af5 100644
>>>> --- a/xen/Makefile
>>>> +++ b/xen/Makefile
>>>> @@ -113,10 +113,10 @@ else
>>>>    Q :=3D @
>>>> endif
>>>>=20
>>>> -# If the user is running make -s (silent mode), suppress echoing of
>>>> -# commands
>>>> -
>>>> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
>>>> +# If the user is running make -s (silent mode), suppress echoing of c=
ommands.
>>>> +# This relies on GNU make encoding short options in the first MAKEFLA=
GS word;
>>>> +# if this changes in the future, this check may need revisiting.
>>>> +ifneq ($(findstring s,$(firstword $(MAKEFLAGS))),)
>>>>    quiet :=3D silent_
>>>> endif
>>>>=20
>>>> Also i can put a fixes tag if you think that is useful:
>>>> Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_r=
ule")
>>>>=20
>>>> Please tell me if that sounds ok for you and I will resubmit this as 2=
 different patches
>>>> instead of a single one.
>>>=20
>>> Sadly no, see my other reply sent earlier today. Furthermore, as said t=
here, even
>>=20
>> Sorry missed you reply when i wrote mine.
>>=20
>>> with O=3D I can't repro what you say. In fact with a Makefile containin=
g just
>>=20
>> interesting
>>=20
>>>=20
>>> $(warning MAKEFLAGS=3D"$(MAKEFLAGS)" ABC=3D"$(ABC)" XYZ=3D"$(XYZ)")
>>>=20
>>> all:
>>> @echo 'MFLAGS=3D$(MFLAGS)'
>>> @echo 'MAKEFLAGS=3D$(MAKEFLAGS)'
>>>=20
>>> I can observe (with both make 4.0 and make 4.2.1) $(MAKEFLAGS) expandin=
g
>>> differently depending on where it's used (I'm passing ABC=3D and/or XYZ=
=3D to
>>> experiment): Only the use in the rule has the variables. What version o=
f make are
>>> you using?
>>=20
>> I am using make 4.4.1 on both my Linux and brew based builds which might=
 explain
>> why i always see the same.
>>=20
>> I have an other linux system where i have make 4.3 and in this one, MAKE=
FLAGS does
>> not contain O=3D options when the test is done so the issue is not appea=
ring there:
>>=20
>> adding:
>> @@ -116,6 +116,7 @@ endif
>> # If the user is running make -s (silent mode), suppress echoing of
>> # commands
>>=20
>> +$(info MAKEFLAGS=3D$(MAKEFLAGS))
>> +$(info MFLAGS=3D$(MFLAGS))
>> ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
>>     quiet :=3D silent_
>> endif
>>=20
>> ## On linux with make 4.3 i see:
>> MAKEFLAGS=3D-rR
>> MFLAGS=3D
>> and the build is not silent
>>=20
>> with -s:
>> MAKEFLAGS=3Ds -rR
>> MFLAGS=3D-s
>>=20
>> with --warn-undefined-variables
>> MAKEFLAGS=3D --warn-undefined-variables -rR
>> MFLAGS=3D--warn-undefined-variables
>>=20
>> ## but on linux with 4.4.1 i see (same with brew make 4.4.4:
>> MAKEFLAGS=3DrR -- XEN_TARGET_ARCH=3Darm64 O=3Dbuilddir-s-test
>> MFLAGS=3D-rR
>> and the build is silent
>>=20
>> with -s:
>> MAKEFLAGS=3DrRs -- XEN_TARGET_ARCH=3Darm64 O=3D/home/bermar01/Work/xen/x=
en/builddir
>> MFLAGS=3D-rRs
>>=20
>> with --warn-undefined-variables
>> MAKEFLAGS=3DrR --warn-undefined-variables -- XEN_TARGET_ARCH=3Darm64 O=
=3D/home/bermar01/Work/xen/xen/builddir
>> MFLAGS=3D-rR --warn-undefined-variables
>=20
> Ah yes, and here is a quote from make 4.4's NEWS:
>=20
> "* WARNING: Backward-incompatibility!
>   Previously only simple (one-letter) options were added to the MAKEFLAGS
>   variable that was visible while parsing makefiles.  Now, all options ar=
e
>   available in MAKEFLAGS.  If you want to check MAKEFLAGS for a one-lette=
r
>   option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to ret=
urn
>   the set of one-letter options which can be examined via findstring, etc=
."

Nice

>=20
>> So i think the working solution would be to keep the current test but do=
 it on MFLAGS instead of MAKEFLAGS:
>>=20
>> ifneq ($(findstring s,$(filter-out --%,$(MFLAGS))),)
>>     quiet :=3D silent_
>> endif
>>=20
>> Could you quickly do the same test than me on make 4.0 and 4.2.1 to conf=
irm ?
>=20
> Well, I did confirm this already with my earlier experimenting. IOW eithe=
r
> this or the $(firstword -$(MAKEFLAGS)) they suggest (effectively matching=
 my
> earlier suggestion, prepending '.' instead of '-', as really any char oth=
er
> than 's' or a whitespace one will do here). Personally I'm slightly in fa=
vor
> of the MFLAGS variant.

Agree, i will use MFLAGS as this looks more reliable.

Thanks i will submit this and the mac os build thing as independent patches=
.

Cheers
Bertrand



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 09:41:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 09:41:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221690.1529861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnvqr-0006Vl-Nm; Thu, 05 Feb 2026 09:40:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221690.1529861; Thu, 05 Feb 2026 09:40:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnvqr-0006Ve-L7; Thu, 05 Feb 2026 09:40:41 +0000
Received: by outflank-mailman (input) for mailman id 1221690;
 Thu, 05 Feb 2026 09:40: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnvqq-0006VY-NI
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 09:40:40 +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 bac970dd-0276-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 10:40:39 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4806f80cac9so4089525e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 01:40:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483179d7346sm58058815e9.0.2026.02.05.01.40.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 01:40:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bac970dd-0276-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770284438; x=1770889238; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4WNcCuYvwijHXkoR0zyLqapDQwNFn30PTvEA3LI1yao=;
        b=WB1MpHmlDs/NKKk4KtNaqRKEBqxi1PMAsvLX7XdXGTYJAzUdu0L59ECcQEbIW+GCn1
         dxJJQjmyUsr673BdKm2a7lfLrgVi0FfDQz5N4VtwBZoLCO5dmoM0I/pR8PsaBzjAYXtQ
         tMZQu7iYdxXavyD0fb41qYqt/94kQhvd47lMWdhVjy0ekbmIqT3RgO1EWN8dWsmPNLP3
         6TEb+Pl6yAHROBDKZ7VROAgJuWtCMeImJxXRVXUfAqKVU7W4r/Msiz5h34AWWut6PXcU
         KBrVCmgmTKZssOn+cmB6mueFkHSzTq6WzZF7X66o0otKN2FiwHrdDR8ExugLBjZE0DY3
         oZFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770284438; x=1770889238;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4WNcCuYvwijHXkoR0zyLqapDQwNFn30PTvEA3LI1yao=;
        b=vvouowSypPg0Wpz4VdeMpdOjz26ICJslpVx1mwCZOn+xyJwZxHVVwZ5Jyf/sW1b8sS
         0YFJAXF0kYpf0pT1Lt2si5NRtNk6udcZpYwDhKgI7UmNfJ9+NOZ70Z/YB0NfQEJEFA1K
         qnNuO1/3u9H1ZzwkfsTgmJPXe0g3jp9uP/8+K+ReDVkLWRMMBlRqmxijuhq8m/BzGRWd
         CprH+0EXS1WU13wXdf7g5bxnARkhlA41ys13plCWRN3vCqht4xxp80ijfqUIFNmatYAV
         bdJ1t2EwiZpqB1byCWncDXB00NHcV1Fsf+gyvKOYI53UqtVFvFYZeujosaptp4S0yldp
         RnrA==
X-Forwarded-Encrypted: i=1; AJvYcCV6JNb7XIInqD5UoeJKucguw13cvwU1oVJJmDC5q5td5DzFdK/S8NJlL8YdpnCTIuowAzNiLQtPvwc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyr48XrRENnOGvOz13mSKtmPIp6qVsn0eD8Dnj7eSaIEpzyrP1r
	sPMJd3p4EnTHMOko8LvvVYUeTzvNxe4OmZ6Lic15imFKLsc2fWPw9H4ywLF2EJOtUw==
X-Gm-Gg: AZuq6aLPBIgTDfEaxEu3l+H24gkyLXvs68dL1xme5XGS1oXUVDUGBBqWxnvj+yOGoqZ
	XCUvByWXLZ0lXkGkosq0jZ7qAj44EZnoAZ74o2vQQ0qaaOYDvTX74GOi8/unZvVZdUe5fsLxgdF
	3S3ebMPIpZYJX3MZSc5qlhqzZx6QgrNyqbv2u0297TEPxUP4i8bz42Xa+uzWXyjU9wJ4yqO2gB5
	7DuYBHYcu7YYmT2t0OQCJBYsRT+oJIrnG5SyCQ4e+obje2bZpkFsjVmpb/sXwNZtL4dyn7H7P6E
	B0Te84hf4CMlwB2osdNLlFWr5SuczUKnWeNomk2da8xTs2gYal0mBqb/yAB8J+soerZbP6cm+7F
	NiwfZDhQb/aZBbQBD2H3sgKC1pn+ymOd2O+Z2kV2SgqgARnFRFFWCzwOU4ny/Bs0/xgpcZe859v
	AugcUNGftljtsIWqhJLb9n+OnLTAJb5pJGjLfzXCxZxRtEv/75xyjoDxMy0gJkRnH9s8UjF8WbE
	2E=
X-Received: by 2002:a05:600c:5250:b0:477:b734:8c41 with SMTP id 5b1f17b1804b1-4830e924044mr89181225e9.1.1770284438342;
        Thu, 05 Feb 2026 01:40:38 -0800 (PST)
Message-ID: <ae9b6edb-1df6-438d-8e46-37995f330d69@suse.com>
Date: Thu, 5 Feb 2026 10:40:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 4/4] xen/mm: limit non-scrubbed allocations to a
 specific order
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: <20260130145726.85907-1-roger.pau@citrix.com>
 <20260130145726.85907-5-roger.pau@citrix.com>
 <2c2b6189-9404-4378-a101-3a93cbadee43@suse.com> <aYNvEpxAqkJPfGF6@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: <aYNvEpxAqkJPfGF6@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 04.02.2026 17:08, Roger Pau Monné wrote:
> On Tue, Feb 03, 2026 at 04:00:09PM +0100, Jan Beulich wrote:
>> On 30.01.2026 15:57, Roger Pau Monne wrote:
>>> @@ -1117,6 +1130,14 @@ static struct page_info *alloc_heap_pages(
>>>                      scrub_one_page(&pg[i], cold);
>>>  
>>>                  dirty_cnt++;
>>> +
>>> +                /*
>>> +                 * Use SYS_STATE_smp_boot explicitly; ahead of that state
>>> +                 * interrupts are disabled.
>>> +                 */
>>> +                if ( system_state == SYS_STATE_smp_boot &&
>>> +                     !(dirty_cnt & 0xff) )
>>> +                    process_pending_softirqs();
>>>              }
>>>              else
>>>                  check_one_page(&pg[i]);
>>
>> Coming back to this, I see two possible issues. One is that on x86 enabling
>> of IRQs happens a bit earlier than setting of SYS_STATE_smp_boot. Maybe this
>> isn't really a problem right now, but it could become one if the "wrong"
>> thing is inserted into that window in __start_xen().
> 
> Even if IRQs are enabled a bit earlier, the watchdog is only setup
> after SYS_STATE_smp_boot state is set.

Hmm, yes. Adjustments like this, otoh, shouldn't primarily be to silence the
watchdog, but to address overly long delays that might trigger it. I.e. they
might (generally: would) be as relevant without the watchdog actually being
active.

>> The other is that only x86 actually ever sets that state.
> 
> TBH we have never seen the watchdog triggering during initial domain
> creation, so the workaround added here was out of caution.  There's a
> certain amount of contention required for the watchdog to trigger, and
> that scenario doesn't happen during boot, as domain creation is
> serialized.

It is right now, but really both dom0less and hyperlaunch could benefit from
parallelization.

> I could maybe gate the softirq processing as:
> 
>                 if ( system_state < SYS_STATE_active && local_irq_enabled() &&
>                      !(dirty_cnt & 0xff) )
>                     process_pending_softirqs();

Yes please.

> Or completely avoid softirq processing in alloc_heap_pages().

Rather not, imo.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 10:32:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 10:32:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221721.1529871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnweb-0004V6-Bg; Thu, 05 Feb 2026 10:32:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221721.1529871; Thu, 05 Feb 2026 10: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 1vnweb-0004Uz-8h; Thu, 05 Feb 2026 10:32:05 +0000
Received: by outflank-mailman (input) for mailman id 1221721;
 Thu, 05 Feb 2026 10:32: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=oQ2u=AJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnweZ-0004UW-Ex
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 10:32:03 +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 e8be03ab-027d-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 11:32:02 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4805ef35864so6676805e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 02:32:02 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4830ffc3a85sm46392265e9.18.2026.02.05.02.32.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 02:32:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8be03ab-027d-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770287522; x=1770892322; 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=ViuJeM4gxsrBWAxJU0RnJcTPBLzlLPCppiJFe/8oRZ4=;
        b=BI1gQ4vj4BHNegWPV5eGyIBhjevjxN5KWyO46sl1wKExI/zfke1nTrl0NgMFwOOvfc
         YyCW/C6zKreNz/GnGUxPPQYmee4ShpMnurHXG1XrCcehOdVvoawGq+QormdkkZIFmL8p
         kFP8Adyg93qsMUJLm5rbCaZVJCoIn94u2qAAJqhKs3tVPG4fLQQHJqw2nYMmFdxD721E
         31a3mo9oPZYbWc/Ek69pgrJgNuAfvnNAj8FLgEK5DjfMS+uLtOPNZ3RI9U8xrfDzNf4H
         iXhUXA9aSax1g/HjF9qweGGARGPSg9/pwgMJPy3TAKTL87sjaviWubwchgG/jmjcJQn1
         Pjkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770287522; x=1770892322;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ViuJeM4gxsrBWAxJU0RnJcTPBLzlLPCppiJFe/8oRZ4=;
        b=PaExPAn64nL6awIqv4pG5DEOV7cxmtRPH3sCI59PTKbPHK/AvDHcSYVTEuUC27Fg+a
         o+Xl/eevyGY8Sc9W9IMrBIa4XKSpej4ef7/RCrL0m8aHXXnDQb7JIJXJAg/d1Nt/SRsf
         +QE//AWYPPgQ+sXF6IUdWEQvbkLamlaZdwq196WrJnnGWsaIpiEuDHoA0nY8GzmHwZug
         iA4TnbBL5ZInE1mjJmJ2sFOaItubNZT2GZxzjnFKSAvkE4bbDAjpynCEWnzrhrVXwqbz
         rK/tjp/rddqBzuz5v7w3Qg9vclCyWTQ0wHlfTuqIxtH3c57o/xnypbH6tKgxEJD57xBS
         yLuw==
X-Forwarded-Encrypted: i=1; AJvYcCVVz19m9+HJScJm/RrmeMGdut0ZlSAgde3RptxO0AuYKm9kkHjxpqgSwZoFHU6BpRPeEFcgoG1iq3I=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1XNvvwEkuXXLl39lxJ/BqTMVwvrROx97cGqmmWCkPeF82V7jf
	IWDbbWRhRpAglWHXXAboxcjcnNyA90HP6mPyv92auFHGKvYy63J3SWky
X-Gm-Gg: AZuq6aJwQAtbflRX/rB3CSlPqEJNyuLvKV+rx17Fy4I+TQmCa34LLj6XMOjk3xOs+1M
	kWKy23YwaCZr1RyXn2T2oO9acJKz040GMT9SFmU3/9GnJBFaQ4W4yP27b8Tsf560puIHzs5Wb5M
	jTJng1Ajcb0Nqdhv9AFjnIBXiPwtYITu0dcVWYYlo+LHy83ATOX54qzGbZh2qAHjaS9nJEwa0Fm
	FL2IakoRJt/tShpBvktbLdLC6+qF4hF5zhx5Ify3fGmG4cB1AGXvHB2SbuqA3pnJp94gY+hSwLA
	C9BU+5B3hkWQmzQh7wxFxka/l1baGU6uWb5aJUNI2CaUq+5xZe/tCc6xH9jHdZtfOMS7b0CmdUo
	NQIY7+Dk1MRFT7S9+zZ94jbNzeb1dNJJagoqsk3+paF6MbVTSnk84/2vuHEa2KAmvz8rTGVCOyc
	387EouCVmcyZPnQ4T2nLZ95FjRdVp5IP68D8d4aFHVqJaTrYU2EGAYf/ujI+WiWck=
X-Received: by 2002:a05:600c:530f:b0:47a:935f:618e with SMTP id 5b1f17b1804b1-4830e9552a2mr86177335e9.15.1770287521593;
        Thu, 05 Feb 2026 02:32:01 -0800 (PST)
Message-ID: <cdc5135b-11fa-45b0-8b62-79141ce3bcb7@gmail.com>
Date: Thu, 5 Feb 2026 11:32:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: implement
 p2m_ctx_switch_{to,from}_state()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <2e4cd29f19945e90733ac85e023d53cecbe1d14d.1770036584.git.oleksii.kurochko@gmail.com>
 <0f0a7479-5f12-4803-9348-2c295a1939a4@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <0f0a7479-5f12-4803-9348-2c295a1939a4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/4/26 4:02 PM, Jan Beulich wrote:
> On 02.02.2026 13:57, Oleksii Kurochko wrote:
>> Introduce functions required to perform a p2m context switch during
>> a vCPU context switch.
>>
>> As no mechanism is provided to atomically change vsatp and hgatp
>> together.
> This sentence doesn't parse; imo you simply want to drop "As".
>
>> 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 in p2m_ctx_swith_from(),
>> then construct new hgatp and  write the new vsatp value in
>> p2m_ctx_switch_to().
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>>   xen/arch/riscv/include/asm/p2m.h |  4 ++
>>   xen/arch/riscv/p2m.c             | 81 ++++++++++++++++++++++++++++++++
>>   2 files changed, 85 insertions(+)
>>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1434,3 +1434,84 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>   
>>       return get_page(page, p2m->domain) ? page : NULL;
>>   }
>> +
>> +void p2m_ctx_switch_from(struct vcpu *p)
>> +{
>> +    /*
>> +     * 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.
>> +     */
>> +    p->arch.vsatp = csr_read(CSR_VSATP);
>> +    csr_write(CSR_VSATP, 0);
> Why two CSR accesses when one will do? RISC-V specifically has the CSRRW insn.

csr_swap() could really be used here instead, thanks.

>
>> +    /*
>> +     * No need for VS-stage TLB flush here:
>> +     *  Changing satp.MODE from Bare to other modes and vice versa also
>> +     *  takes effect immediately, without the need to execute an
>> +     *  SFENCE.VMA instruction.
>> +     * Note that VSATP is just VS-mode’s version of SATP, so the mentioned
>> +     * above should be true for VSATP.
>> +     */
>> +
>> +    /*
>> +     * Nothing to do with HGATP as it is constructed each time when
>> +     * p2m_ctx_switch_to() is called.
>> +     */
>> +}
>> +
>> +void p2m_ctx_switch_to(struct vcpu *n)
>> +{
>> +    struct vcpu_vmid *p_vmid = &n->arch.vmid;
>> +    uint16_t old_vmid, new_vmid;
>> +    bool need_flush;
>> +
>> +    if ( is_idle_vcpu(n) )
>> +        return;
> Shouldn't the other function have such a check, too?

Yes, it should. I will add the check.

>
>> +    old_vmid = p_vmid->vmid;
>> +    need_flush = vmid_handle_vmenter(p_vmid);
> As you're re-using x86'es model, I'm not quite sure why this would be needed.
> I don't think we have such in x86; aiui this should be handled while actually
> doing the VM entry.

I can move this to the end of do_trap().

However, isn’t this effectively the same?
If a context switch to vCPU n happens, it means that once the trap is fully handled,
we will enter vCPU n.
The same will be if to put the changes at the end of do_trap() before control
will be given to VM.

>
>> +    new_vmid = p_vmid->vmid;
>> +
>> +#ifdef P2M_DEBUG
>> +    printk(XENLOG_INFO, "%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
>> +           n, old_vmid, new_vmid, need_flush);
>> +#endif
>> +
>> +    csr_write(CSR_HGATP, construct_hgatp(p2m_get_hostp2m(current->domain),
>> +              new_vmid));
>> +
>> +    if ( unlikely(need_flush) )
>> +        local_hfence_gvma_all();
>> +
>> +    /*
>> +     * According to the RISC-V specification, speculation can happen
>> +     * during an update of hgatp and vsatp:
>> +     *   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 just flush TLBs for VS-Stage and G-stage after both of regs are
>> +     * touched.
>> +     */
>> +    flush_tlb_guest_local();
> Which "both regs" does the comment talk about? Doesn't the flush want to come
> ...
>
>> +    /*
>> +     * The vsatp register is a VSXLEN-bit read/write register that is
>> +     * VS-mode’s version of supervisor register satp, so the following is
>> +     * true for VSATP registers:
>> +     *  Changing satp.MODE from Bare to other modes and vice versa also takes
>> +     *  effect immediately, without the need to execute an SFENCE.VMA
>> +     *  instruction. Likewise, changes to satp.ASID take effect immediately.
>> +     * Considering the mentioned above and that VS-stage TLB flush has been
>> +     * already done there is no need to flush VS-stage TLB after an update
>> +     * of VSATP from Bare mode to what is written in `n->arch.vsatp`.
>> +     */
>> +    csr_write(CSR_VSATP, n->arch.vsatp);
> ... after this? Then some of the commentary also doesn't look to be necessary.

I think there is no need for a guest TLB flush here or above
(i.e. flush_tlb_guest_local()), because:
- If CSR_VSATP is set to 0, or changed from 0 to a non-zero value, no speculation
   can occur. Therefore, the guest TLB cannot be polluted with unwanted entries,
   and no flush is required.
- If need_flush is false, it means that no VMID wraparound has occurred.
   In that case, the VMID is still unique, so we are safe and no guest TLB flush is
   needed.

Additionally, it seems that I do not need to introduce flush_tlb_guest_local() at
all, since local_hfence_gvma_all() already provides the same functionality.
Instead, it probably makes sense to introduce an HFENCE_VVMA() helper as a generic
wrapper around the hfence.vvma instruction, and then reuse it inside
local_hfence_gvma_all().

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 11:33:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 11:33:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221768.1529906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnxcF-0003fD-Vm; Thu, 05 Feb 2026 11:33:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221768.1529906; Thu, 05 Feb 2026 11:33:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnxcF-0003f6-S5; Thu, 05 Feb 2026 11:33:43 +0000
Received: by outflank-mailman (input) for mailman id 1221768;
 Thu, 05 Feb 2026 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=BdQL=AJ=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnxcE-0003et-Cr
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 11:33:42 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 83fc179f-0286-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 12:33:39 +0100 (CET)
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 F322E339;
 Thu,  5 Feb 2026 03:33:31 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.248])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A11213F7D8;
 Thu,  5 Feb 2026 03:33:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83fc179f-0286-11f1-b161-2bf370ae4941
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>
Subject: [PATCH v1] xen: Use MFLAGS for silent-mode detection
Date: Thu,  5 Feb 2026 12:33:12 +0100
Message-ID: <3ab39249c788fd0463e73df9464d482fefe8516b.1770290975.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

GNU make 4.4+ exposes variable overrides in MAKEFLAGS after "--" (e.g.
O=/path, FOO=bar). The silent-mode check searches for "s" and can match
an override value, forcing silent output even without -s.

Use MFLAGS for short options and filter out any long options before
searching for "s". This preserves -s detection while avoiding false
positives from overrides.

Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_rule")

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/Makefile | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/xen/Makefile b/xen/Makefile
index 13e336ba5484..5fc725fb02db 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -113,10 +113,11 @@ else
     Q := @
 endif
 
-# If the user is running make -s (silent mode), suppress echoing of
-# commands
-
-ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
+# If the user is running make -s (silent mode), suppress echoing of commands.
+# Use MFLAGS (short options only). MAKEFLAGS may include variable overrides
+# after “--” (GNU make greater than 4.4), which can contain an “s” and falsely
+# trigger silent mode.
+ifneq ($(findstring s,$(filter-out --%,$(MFLAGS))),)
     quiet := silent_
 endif
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 11:33:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 11:33:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221771.1529921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnxcR-0003yL-8l; Thu, 05 Feb 2026 11:33:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221771.1529921; Thu, 05 Feb 2026 11:33: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 1vnxcR-0003yE-4C; Thu, 05 Feb 2026 11:33:55 +0000
Received: by outflank-mailman (input) for mailman id 1221771;
 Thu, 05 Feb 2026 11:33: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnxcP-0003et-Kl
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 11:33:53 +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 8c466b48-0286-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 12:33:52 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-480706554beso8619235e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 03:33:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d2ba61sm74312435e9.1.2026.02.05.03.33.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 03:33:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c466b48-0286-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770291232; x=1770896032; 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=VUudX/ZSRZyRicmWNQ2Ykgm4S9b/k77SGeQfQ0h7DXw=;
        b=CyyHJWjcWYsixZUndfJUFmY+qqVtOyy4iqJ+mMmLJF12O0HRJjkVuJWYXz8Z4w5JTg
         fahsNOLsiPjSZt/rZNvPhuSmhy9u17QYeSV9GEiIO7y29LBUCpHAINUbQRMZ/eRiott3
         QJ9sg2BjF8xdcQc9OpOqERya9f9yUrVStz+CImzmRwKUalSipnrG9eVxuLbqgw0TDKfj
         g7Dn9V18ZaCRMFlggITt/9h4abdJW/KPziUi8oErJLcyccLPkfE6sQvd5JOYB84DUc8A
         cE4bez0je1S63uDFWcFQNwHg8/SKbUR2/J8GVuN+QbLmlh6USZNAUopPAfE8UvjI6MKL
         s4qw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770291232; x=1770896032;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=VUudX/ZSRZyRicmWNQ2Ykgm4S9b/k77SGeQfQ0h7DXw=;
        b=AIDdulrtjdE1G+KJHGrpsH4Aq0U3vAM26+cFaSitY0i7qqCJvMkSYAXcmuVotj/yOR
         oiuRr+3rxce86Foo+kIOJN+R9PLFu6QTOsH4TBdf8kCDSElavxvfc42ZG6taMt1YrqUl
         NwyruoE34TjEOzTfMfHj7kaIxzMep8w07SepnJKrS7d5RHC9N/Ka1PZV3xtpUX+b0IOV
         CjplTzdmEu1Yk1tSO7dDiB5YPT89Aiov0P497IGR1nOxtoJcAtd8DcihZ7OqOM/matSY
         P2FhgTXqiUz6Lsfoj47mdcqiSKlzMToUUBTJuWACbdGiM1VeQzFxhyagRpcJ2/NCHgFf
         EsjQ==
X-Gm-Message-State: AOJu0Yze5HZIb4nWLEL6mgaxXf4BEkjJDjdncku5zUdOUFbhMSSjyCnf
	6oE/h01EwoBHZlz+/95zs3BmLEXKSDpU9yqXU1+gbW0kOhXbINwdWsmbDpuTtJCDrfSeSaZHr2w
	1SIg=
X-Gm-Gg: AZuq6aKSEjmEtVOPn1urlXBIGK84+XWVlDqdytdU8327oSRff++KQq/8By31rlsPUGL
	hzmu1CwTOXfgf5/PI0BvlldgbQKPEw//qUBmNR0YwmpsaHkBiWGDi+zHgvubl8KBxzULFuVLwM6
	hRfCTLuhNaUzqsrc3QXWW3WVglE4oH4a8QkI63Sbf2Eqb1deKX4iW/SgpeaflzwyDM7co80HonH
	YK7BcTYzIaR/v1nfELXtXiZoZNYD+OEdDJdZuk4T+KmBcuyUEu7HhwGRJ5MomIcX6kWlq7zQl/C
	evDtmsqs+110Q8CnMeVJ7msaZmYY1jlQXwLjcfybD+wU7b3vL2a/cmIlCC23QFDOE/Zneg3UnaM
	d5kCUQapt4nbgyC9SQCgux0p6GRvN/nPddY75fQ6TEblR9lpQegZ2+q/OIv6r6NoL4CGHZpFz0T
	hBQ2T9wPX5s3HhcqNAKqA0CJB//792MqRCZs8+BPnocfQrNO+Otmsgr8ZezHFAzW46AbRk+015e
	y8=
X-Received: by 2002:a05:600c:a03:b0:47e:e78a:c832 with SMTP id 5b1f17b1804b1-4830e99173amr74057675e9.37.1770291232220;
        Thu, 05 Feb 2026 03:33:52 -0800 (PST)
Message-ID: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
Date: Thu, 5 Feb 2026 12:33:49 +0100
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>, Juergen Gross <jgross@suse.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] sched: move vCPU exec state barriers
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 barrier in vcpu_context_saved() is specifically about the clearing of
->is_running. It isn't needed when we don't clear the flag.

Furthermore, one side of the barrier being in common code, the other would
better be, too. This way, all architectures are covered (beyond any
specific needs they may have).

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

--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -333,17 +333,7 @@ void sync_local_execstate(void)
 
 void sync_vcpu_execstate(struct vcpu *v)
 {
-    /*
-     * We don't support lazy switching.
-     *
-     * However the context may have been saved from a remote pCPU so we
-     * need a barrier to ensure it is observed before continuing.
-     *
-     * Per vcpu_context_saved(), the context can be observed when
-     * v->is_running is false (the caller should check it before calling
-     * this function).
-     */
-    smp_rmb();
+    /* Nothing to do -- no lazy switching */
 }
 
 #define NEXT_ARG(fmt, args)                                                 \
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -956,6 +956,9 @@ void vcpu_sleep_sync(struct vcpu *v)
     while ( !vcpu_runnable(v) && v->is_running )
         cpu_relax();
 
+    /* Sync state /after/ observing the running flag clear. */
+    smp_rmb();
+
     sync_vcpu_execstate(v);
 }
 
@@ -2308,11 +2311,13 @@ static struct sched_unit *do_schedule(st
 
 static void vcpu_context_saved(struct vcpu *vprev, struct vcpu *vnext)
 {
-    /* Clear running flag /after/ writing context to memory. */
-    smp_wmb();
-
     if ( vprev != vnext )
+    {
+        /* Clear running flag /after/ writing context to memory. */
+        smp_wmb();
+
         vprev->is_running = false;
+    }
 }
 
 static void unit_context_saved(struct sched_resource *sr)


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 11:34:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 11:34:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221775.1529929 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnxcd-0004MZ-Gt; Thu, 05 Feb 2026 11:34:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221775.1529929; Thu, 05 Feb 2026 11: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 1vnxcd-0004MP-EO; Thu, 05 Feb 2026 11:34:07 +0000
Received: by outflank-mailman (input) for mailman id 1221775;
 Thu, 05 Feb 2026 11:34: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=BdQL=AJ=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vnxcb-0003et-TY
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 11:34:05 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 938d62e2-0286-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 12:34:05 +0100 (CET)
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 1C3A1339;
 Thu,  5 Feb 2026 03:33:58 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.248])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B2E3A3F778;
 Thu,  5 Feb 2026 03:34:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 938d62e2-0286-11f1-b161-2bf370ae4941
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>
Subject: [PATCH v2] xen: Add macOS hypervisor build configuration
Date: Thu,  5 Feb 2026 12:33:54 +0100
Message-ID: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen does not currently document how to build the hypervisor on macOS, and
there is no Darwin configuration for selecting a Homebrew-based GNU
toolchain. Native builds are not supported; the hypervisor must be
cross-built with a GNU toolchain and GNU make/sed.

Add a minimal Darwin.mk which selects the GNU tool definitions used by
the macOS workflow and point to the build guide for required tools and
setup. Document the Homebrew cross toolchain and GNU tools needed to
build the hypervisor on macOS.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 config/Darwin.mk            |  6 ++++
 docs/misc/build-on-macos.md | 66 +++++++++++++++++++++++++++++++++++++
 2 files changed, 72 insertions(+)
 create mode 100644 config/Darwin.mk
 create mode 100644 docs/misc/build-on-macos.md

diff --git a/config/Darwin.mk b/config/Darwin.mk
new file mode 100644
index 000000000000..a4e3efa81842
--- /dev/null
+++ b/config/Darwin.mk
@@ -0,0 +1,6 @@
+# Use GNU tool definitions; the macOS workflow relies on Homebrew GNU tools.
+# See docs/misc/build-on-macos.md for required tools and setup.
+include $(XEN_ROOT)/config/StdGNU.mk
+
+# We are always cross compiling so fake COMPILE_ARCH
+XEN_COMPILE_ARCH = Darwin
diff --git a/docs/misc/build-on-macos.md b/docs/misc/build-on-macos.md
new file mode 100644
index 000000000000..6b56cd8eccab
--- /dev/null
+++ b/docs/misc/build-on-macos.md
@@ -0,0 +1,66 @@
+# Building Xen Hypervisor on macOS
+
+This guide explains how to cross-compile the Xen hypervisor (xen
+subdirectory only) on macOS. This does **not** build the tools.
+
+## Prerequisites
+
+Install the following packages using Homebrew:
+
+```bash
+# Cross-compilation toolchain for ARM64
+brew install aarch64-elf-gcc
+
+# GNU tools (required for compatibility)
+brew install make gnu-sed
+```
+
+Homebrew installs under `/opt/homebrew` on Apple Silicon and `/usr/local` on
+Intel Macs. Adjust paths below accordingly.
+
+### Verification
+
+Verify your installation:
+
+```bash
+# Check cross compiler
+aarch64-elf-gcc --version
+
+# Check GNU make (adjust prefix if needed)
+/opt/homebrew/opt/make/libexec/gnubin/make --version
+
+# Check GNU sed (adjust prefix if needed)
+/opt/homebrew/opt/gnu-sed/libexec/gnubin/sed --version
+```
+
+## Building the Hypervisor
+
+Set up GNU tools in PATH and build:
+
+```bash
+# Set up GNU tools in PATH (adjust prefix if needed)
+export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/opt/make/libexec/gnubin:$PATH"
+
+# Build Xen hypervisor only (in-tree)
+cd xen/
+make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc
+
+# Optional: out-of-tree build directory
+# make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc O=$PWD/build-mac
+```
+
+## Architecture Support
+
+Currently supported architectures:
+
+- **ARM64** (`arm64`) - Default, uses `aarch64-elf-gcc`
+
+Other targets may work if the corresponding cross toolchain is installed,
+but this guide has only been tested on ARM64.
+
+## Limitations
+
+- **Hypervisor only**: This only builds the Xen hypervisor, not the tools
+- **Cross-compilation only**: Native builds are not supported
+- **macOS-specific**: Instructions optimized for macOS with Homebrew
+- **GNU tools required**: Native BSD tools are not compatible
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 11:45:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 11:45:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221815.1529940 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnxnp-0006U3-HK; Thu, 05 Feb 2026 11:45:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221815.1529940; Thu, 05 Feb 2026 11:45:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnxnp-0006Tw-EX; Thu, 05 Feb 2026 11:45:41 +0000
Received: by outflank-mailman (input) for mailman id 1221815;
 Thu, 05 Feb 2026 11:45: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnxnn-0006Tq-NS
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 11:45:39 +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 300f4da9-0288-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 12:45:37 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4806f80cac9so5171675e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 03:45:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483179d7346sm65272075e9.0.2026.02.05.03.45.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 03:45:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 300f4da9-0288-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770291936; x=1770896736; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XKYdeorIhN6a8TiGdvI1xLIVgV+JHMCc78x+DSpvIrA=;
        b=IGIKL4qhfyRLc9dsDoR45x98wdQrlUK3V6XlqP6Q7le6goWuRnUX7Ix2MNxAhbscs/
         0gfJ02cn6DDmRd+1YuB4ww6dJUCvBm697aHxoqZ5ZiChFh/Fgc2/u9u9EbxOYfNyo+GC
         fCU1CDBHDbgv+Gbl0fKPGKEQWraHYsHs2MUrqEL26iYj2oiPPYy5DJxG8GdllmjHo614
         96R6im+qLRKuh55NzSe2R/dN+G8i5Se5MNzdbPQ8qAfHKm7nrXTrz0+WrwxMuqbXkBie
         IJ5ww72woDMaNGJZQE5UQBrWY9u5suUCRJjlTjvKEmAyYf3utyi0dI6iKsUt5MziG3YA
         zf5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770291936; x=1770896736;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XKYdeorIhN6a8TiGdvI1xLIVgV+JHMCc78x+DSpvIrA=;
        b=AazVVlJkAjYQeWy/WFaKT1i2r2O0wTUZDpUzCeqnMKZ/XZk/vVLvRE4Fl/8EmRtaTS
         xKFFKr9CKktjI/Kpx4ymHrSvDcwopy6VxbYIQN/5maE1IDewu4KHF1UUjRux4mBM4amd
         wuYVVJIyE8nwY82s0F3it1mRqiimWwSMW4dgP1NyHm4ITdcYsBMsMUQfbujEwZCPsMoa
         pqTiUPr5hDiJcALZO3GY0UIPF+V2JSV8BWytjC1YLH5Gs6ATt7ZHuWBCwh7M/t0fTI3v
         lZisJvy9OCdSAiiw0k16TOdLAfG2hJ4BhwXzOc/Zei+jU9/yJ7E2izQriL37tWRH2eDB
         oi5A==
X-Forwarded-Encrypted: i=1; AJvYcCVeuOoa1vfdLkDZNqER8dfr1BiUrGBtlpZ6k0FSa13TiURCcygSiyLXICATJ31384Z0NkBsEdmeDo8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxl/BZF0/eNLqyjS/thN+Jq2yJS7b8bTdN3KxpF63lCXM5+RhON
	C5mBik1HhkHAxXbRDuXZEsquzDgNhTFhbbo9vKcS54d05ZqfNPk+WRLq65lqGdYo/g==
X-Gm-Gg: AZuq6aJCtDM2hEoQXnM/mvUd79C+j+trMEYZFAKMJ+DIzNOazZZx1POD9SD0ba7ZYEc
	ejqmPF6vkRmhZ4uKeB+iwOTHZbGNRrG3lyNTAbbSRWEmYmRKSv8T+EbBEtReTkAirfv+xr7aq9K
	e6f2cxhtSwbr4303ZdxEiVRViAscUPaZru5244YVVWYZXYsiAVGEiRtfRfM6YYH8o0NtQpgPMpJ
	UR9+2WLPEZ/5Rq03e4J3yBfYYYZKPDtwmBs25LEZGYSwXPEdWWmFx2QKbLOsvn4SisJYG3VWJTc
	7C+35LYAZD1uX6FJve3OQpnI6NUeLsJhvo52v3vQFcdbB/28RGlC+4awOpmo5Sgc2aKqf78CqXr
	KbYUPPHP6s4LFconsCkmvJdp0FB1uFCsNH9Tp37ouvVL/iqqJCls5ohbrJD5DndwC9U2Tw0re1k
	i34U47srOSPRVAJ4XxVwiG0l5pXXnYp0L5xW26xGgKpWwTt1DFhh+9luvBGAozZs1mgUjXIZ31u
	hs=
X-Received: by 2002:a05:600c:3baa:b0:480:1c69:9d36 with SMTP id 5b1f17b1804b1-4830e968e57mr93549405e9.17.1770291936533;
        Thu, 05 Feb 2026 03:45:36 -0800 (PST)
Message-ID: <1a0c5e48-5457-414e-89c8-0f12cfa55a96@suse.com>
Date: Thu, 5 Feb 2026 12:45:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen: Use MFLAGS for silent-mode detection
To: Bertrand Marquis <bertrand.marquis@arm.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: <3ab39249c788fd0463e73df9464d482fefe8516b.1770290975.git.bertrand.marquis@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <3ab39249c788fd0463e73df9464d482fefe8516b.1770290975.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.02.2026 12:33, Bertrand Marquis wrote:
> GNU make 4.4+ exposes variable overrides in MAKEFLAGS after "--" (e.g.
> O=/path, FOO=bar). The silent-mode check searches for "s" and can match
> an override value, forcing silent output even without -s.
> 
> Use MFLAGS for short options and filter out any long options before
> searching for "s". This preserves -s detection while avoiding false
> positives from overrides.
> 
> Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_rule")

I don't think this is quite right: make 4.4 post-dates that commit by about
2.5 years.

> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>

Nit: No blank lines between tags, please.

> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -113,10 +113,11 @@ else
>      Q := @
>  endif
>  
> -# If the user is running make -s (silent mode), suppress echoing of
> -# commands
> -
> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
> +# If the user is running make -s (silent mode), suppress echoing of commands.
> +# Use MFLAGS (short options only). MAKEFLAGS may include variable overrides

Why "short options only"? It looks you mean to describe the macro here, not
what's done in the ifeq(); at the very least it can be read both ways.

> +# after “--” (GNU make greater than 4.4), which can contain an “s” and falsely

4.4 and newer really, as 4.4 itself is included in the affected range. I'm
not quite sure anyway whether the comment really needs to go this far. This
kind of detail can be had from the commit message of this change, if needed.

Happy to make adjustments while committing, yet I'm not sure whether you
agree in all regards.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 11:46:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 11:46:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221824.1529949 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnxoz-0006yR-Pl; Thu, 05 Feb 2026 11:46:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221824.1529949; Thu, 05 Feb 2026 11: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 1vnxoz-0006yK-Mm; Thu, 05 Feb 2026 11:46:53 +0000
Received: by outflank-mailman (input) for mailman id 1221824;
 Thu, 05 Feb 2026 11: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=Fjwn=AJ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vnxoy-0006yB-DG
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 11:46:52 +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 5c49f13e-0288-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 12:46:51 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b8710c9cddbso95435766b.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 03:46:51 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8e9feefe92sm214469066b.38.2026.02.05.03.46.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 03:46:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c49f13e-0288-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770292011; x=1770896811; 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=aY9r/w+SOeAhBpL4DhLLJgAV50NnoWg91pmcbiW6geo=;
        b=dyBsNAO5NJ1nV/s6HzTYQ8yUpRr2sliUpXQX0f2iaO55onveBMKQ1IM7w0yGpiZ1Hq
         KIZgKT/Kac/WpHLPdeocXHR5L6dC9kk3ggi1NFafGGs4KxKSF5C0kZNc3mN7KXJpVdq8
         PrMd45N6wdKZMzBcvc8wJehNijPfWMz+BT3ZhY/RSsHajpULgs3rYBrkEcLFZMe1RYfL
         B/Pkodg9WDfMqYcPuUNNpK14C+tO5oxPZ7cvDodKk66cyy2NhDEXZPfWGlWkKexe+sBH
         Q+OdaLMUPjcoLXWwjldoOK9zL50yv7oYOhJ4cVYpS8wejQpg+ciW6tBn4s55ilk1f9JV
         EXmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770292011; x=1770896811;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=aY9r/w+SOeAhBpL4DhLLJgAV50NnoWg91pmcbiW6geo=;
        b=uWnpR/EDQJqX5f8Fh+LHcuiEcNzfHkSoJOUdCLTk+AhwcJmw0cV31zyw3agmlTZApz
         nlxC7RlnD1zpbsqggny/gkS6W0YAKXR3HXQCb7/uE8gXvnBQvnLKD5C8xYCIyaEbwu64
         l4XlhbSHQCSm7jUidvFGzU1sHgmp/48+oXP6EckGaaHZdC2848QmkU5tm8PWVDavUfwX
         lvlLz7OtYMR09T2LqgEp5tx0/hqlChM8UKrt6yrkV/ml4kXodG3id0R1bYJR7MfUodtF
         wUqAcFN1JAxd0saQ94JMKF/h/d8dk7/q+GR5Qbho76TIMej2PmX7bW+ykCAXosk0cCfo
         a7sQ==
X-Forwarded-Encrypted: i=1; AJvYcCUMMebHXQ83jEPMES4Og7BqdTtzyptvmXwyNjT+y263ygoVyHpSCQNvYxgUeVoK2YdrbExyz55Fb1o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCOx2Fram9NG5oTOuSSwVddKg1KlvS4slBf5gOcpn0uyVBTOuC
	DoXPuq06i7GaCYp862WqLWZtPFRoIzIEbtP6rhkgrm7wli/ry+fDiU3tcrVlaNcWjeo=
X-Gm-Gg: AZuq6aIj3zQOx5SW7CkLj+5MFBIzl9mJ4JvEfyPYaXXE1rZB6Ri08MFVY+vzv7/xDfc
	Kq0EMuu5opJK4qfKDuHLOTm5jvBCPqGmfaP9IY0AgvTu1ST2/sEgpaYKkaD+yMBy9UCLA+n2Taa
	bj0eT1inCcJAQmQQo6jo0yDOmoK4u3+MRdYo0zCChLDlDfvSy4j7d+pjaKCzTFLp3gkWodnt+Yz
	x9JCNwqjMEYfI4BHyJ3SLlSpL8eiOQiUz1mquqVmpjGP9m2aNi73azp3Uq+abSe0A2ulV3G94Dg
	UbiF+WZkM/qa2XR6nbRwII4+H+bhzML3kxtzNY/6AUGcMU5hFyNWrx+5qfNiPxRSpt/VAS7VkbW
	AsbUmjpouxDNOlheQn7/hes6YEsWs+3k9GnTdNLtgu4I5RLXlz1X5jYdfk6YbA3FtWabqXlMudK
	80wGt/CMnUub9LbQQcc1C9FxHM0O5Ah+2fxO9c2Tlr5wHOhAskxnTPDiHQKrmfLHcvgY4j2xBBU
	i3OAoL+zvNhlX9+XAWqZ6WHxwLGVxbKtii6Aw==
X-Received: by 2002:a17:906:fe06:b0:b88:dc6:395d with SMTP id a640c23a62f3a-b8e9f330dd7mr423586366b.48.1770292010704;
        Thu, 05 Feb 2026 03:46:50 -0800 (PST)
Message-ID: <9aee4ca8-d2ca-4792-8180-9818c669cf23@suse.com>
Date: Thu, 5 Feb 2026 12:46:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: move vCPU exec state barriers
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>, Dario Faggioli <dfaggioli@suse.com>,
 George Dunlap <gwd@xenproject.org>
References: <1e2df446-b116-4861-a396-b87895a96c67@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: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------1GnTZJUDpxpKDPvxzf6f9Dmp"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------1GnTZJUDpxpKDPvxzf6f9Dmp
Content-Type: multipart/mixed; boundary="------------QPEXi87d0qBlSVnTXoNA9OMM";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
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>, Dario Faggioli <dfaggioli@suse.com>,
 George Dunlap <gwd@xenproject.org>
Message-ID: <9aee4ca8-d2ca-4792-8180-9818c669cf23@suse.com>
Subject: Re: [PATCH] sched: move vCPU exec state barriers
References: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
In-Reply-To: <1e2df446-b116-4861-a396-b87895a96c67@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=

--------------QPEXi87d0qBlSVnTXoNA9OMM
Content-Type: multipart/mixed; boundary="------------a38zfpE9tt2rIsImVnQTAqGi"

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

T24gMDUuMDIuMjYgMTI6MzMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBUaGUgYmFycmllciBp
biB2Y3B1X2NvbnRleHRfc2F2ZWQoKSBpcyBzcGVjaWZpY2FsbHkgYWJvdXQgdGhlIGNsZWFy
aW5nIG9mDQo+IC0+aXNfcnVubmluZy4gSXQgaXNuJ3QgbmVlZGVkIHdoZW4gd2UgZG9uJ3Qg
Y2xlYXIgdGhlIGZsYWcuDQo+IA0KPiBGdXJ0aGVybW9yZSwgb25lIHNpZGUgb2YgdGhlIGJh
cnJpZXIgYmVpbmcgaW4gY29tbW9uIGNvZGUsIHRoZSBvdGhlciB3b3VsZA0KPiBiZXR0ZXIg
YmUsIHRvby4gVGhpcyB3YXksIGFsbCBhcmNoaXRlY3R1cmVzIGFyZSBjb3ZlcmVkIChiZXlv
bmQgYW55DQo+IHNwZWNpZmljIG5lZWRzIHRoZXkgbWF5IGhhdmUpLg0KPiANCj4gU2lnbmVk
LW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KDQpSZXZpZXdlZC1i
eTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPg0KDQoNCkp1ZXJnZW4NCg==
--------------a38zfpE9tt2rIsImVnQTAqGi
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-----

--------------a38zfpE9tt2rIsImVnQTAqGi--

--------------QPEXi87d0qBlSVnTXoNA9OMM--

--------------1GnTZJUDpxpKDPvxzf6f9Dmp
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/Ey8FAmmEgykFAwAAAAAACgkQsN6d1ii/Ey9L
0gf9Gz3e3wbPuV1hExg/eJ5g5kOAjZ2IVaBJ0HnTUocpPA9v45YkTmk1a3x60XYzJE34mrB53zku
umvBJKC5yzI8r/+KUoVoapcjpAsj1dXOkw/MRUVZi7Pd1/arIR80vdWsy3Gf9uCwTEiStaf+ZKzI
e141kD7jFHVUSNIdhdjf6RGBb0BWKgpDhS+WOMPfiHzJDIwXXhRkfFpmx1z8cD7ScMP8o6kKZq9c
ZYAdGTSWvz2Sidxo7NvfX5iQu36h51+NQllnwn3yst6WmTd9DGPvjx9c8SHN6dXa2zJd3O8qrALL
6K8CgVlot3ipjmquhlddg0pcFEUCwNY32rjN6DjDmQ==
=BZZF
-----END PGP SIGNATURE-----

--------------1GnTZJUDpxpKDPvxzf6f9Dmp--


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 12:01:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 12:01:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221847.1529960 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vny2i-0001YV-4y; Thu, 05 Feb 2026 12:01:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221847.1529960; Thu, 05 Feb 2026 12:01: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 1vny2i-0001YO-1g; Thu, 05 Feb 2026 12:01:04 +0000
Received: by outflank-mailman (input) for mailman id 1221847;
 Thu, 05 Feb 2026 12:01: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=BdQL=AJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vny2g-0001Vo-Q3
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 12:01:03 +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 5718eff7-028a-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 13:01:01 +0100 (CET)
Received: from DUZPR01CA0066.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:3c2::14) by GVXPR08MB11493.eurprd08.prod.outlook.com
 (2603:10a6:150:2e2::16) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 12:00:55 +0000
Received: from DB1PEPF000509F0.eurprd03.prod.outlook.com
 (2603:10a6:10:3c2:cafe::2) by DUZPR01CA0066.outlook.office365.com
 (2603:10a6:10:3c2::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 12:00:51 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F0.mail.protection.outlook.com (10.167.242.74) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Thu, 5 Feb 2026 12:00:54 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DBBPR08MB6107.eurprd08.prod.outlook.com (2603:10a6:10:200::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Thu, 5 Feb
 2026 11:59:52 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 11:59: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: 5718eff7-028a-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Rqfs+kgav9CWHSpv2zoouqj/t6g/UA922a5XXIejuX7cSWxsIxDnEXQ9ie/RCIKDduxyK9d+iyOSZKPYfj27+CwTSvMzQ6C5HHtfH70/eVq4BY0hIvCTo2a1GQ0PGI52zRkymMRitPs6exo4d5jfabZabLsh7F40cR0MaKT0Y2CX2zmxC3++Rf9MrzF9cdAqZ1Oqi8ZVAQc7hIszA8c5wLWFW4nL/ju1KeELHxrI0kteyUcm5S+j5+pLqAPAq4ClJRQd/PLZj+K69bu6zszoOrrSLSWysbb6wUQtiYFb9bnXUdky2Jkkc7WC8HOgVdw3q0nRejKNDoK5z1OyKDe2Pg==
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=yzsWQja5xQytwL8IBW2sE1gAw6RtagMOQd7oWp97mjE=;
 b=XJvYbBx0taeZFEWPSUnok4A3LvCpnDWWnQRWmj2eE5jOhwU19Zp2cVmR7LrY8o7clfa1/ZSFF7Dos5XnXsG5yHWDdJ5o9330HxY0ot8/TYr5+1UTMMR1ej0n9eFIuwP/s+dNtTKNogeglABvHg8IxiIUZD7xGITIR9Ph1T95i0Mp80rL9Y6WIlGRWrim/wN1uYcM9ZT4eaM5ZBR0m3aUNQlayWurhyfXwxBsjb2qKJsj9FnB8sJjCTwavPQ3GyUtdjOCSbiPOvxuSB62ePdleCpwAxYw/s9e6MnXBwsVjEfwpZK7CIhT4wsE/d0s60jip4tEErMYjFJRfuHVW6rUvA==
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=yzsWQja5xQytwL8IBW2sE1gAw6RtagMOQd7oWp97mjE=;
 b=n/jj6DAsFKfw6QQS7p6hEfCKbNhTRQDfns7iGpextgELPTDXDD292mGCAvJm3lIqAViaNKygFPMxQgxQpQo03nN3TW+0l3eymCcCPiDZgQo1Ave2+48xMU7i1DrzSzkNr/vsW/0k7VE2FeGYIXHaICKGIaQ3pBUiIYYcybysVao=
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=qdcjEXwwAp6jOx6xZzNUOCs1NaBYMKPwB0aR9OVCV3j8d474wCtYAosAWM0xYKZv36skEQNq2sg/MBC4xB+ueQTMgMHKRzKOhEcHd3BfmCUp9zwJ6jYDQwkOe1BsfHi/nrZ9INNfjCBaRRtYFADASFFgZWvf2/TfdQ85Xew5BQJ5EN7cyIPZYCh00HKsFXoq3c5nk1BxfNWyW+2A1o3hMq7OQY/Y71Q+npBsnkJjRNlfkJ3LeUWLH5vnuKlTx7dgEqWYj/sXuBTOYwMY+drBh936nWBYJWzchuanSFZYQyGaH4v/55Eu9S1XYSUcXsX5btDdvjQMIblyyGCJG+Ic8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yzsWQja5xQytwL8IBW2sE1gAw6RtagMOQd7oWp97mjE=;
 b=VXBsq5hfs6w/00v18N2HIYiNR1xtHcVR0+6h3r5LNqyDURi4Olp1r/XDKgfU7tA/xXiBk9PTP/hJzN15qT8VGsR/dYNiia49VR5gJz20UVEDvQidyl8fm4L3Ht3AdkyQwvAbNQKJJ30wNoZuoumWPZbXNkeEmi+t6k47wczWIXI2t+5oGNTXVC7I6WEcVVlbfcqK8zZ7PFrgLcGCidjRWbwD5e/0m6PMMLYvkPml8tTKOy+vNbln8ZWuw7H7wuEIJewfrq2Dt2YsmgBuLJMw1AsV/Z9H7vDyjyGrPxYBtqxpxFGcUCYNY9Yox8tqgcslsHtxXfYJP4TWAilp07ieSA==
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=yzsWQja5xQytwL8IBW2sE1gAw6RtagMOQd7oWp97mjE=;
 b=n/jj6DAsFKfw6QQS7p6hEfCKbNhTRQDfns7iGpextgELPTDXDD292mGCAvJm3lIqAViaNKygFPMxQgxQpQo03nN3TW+0l3eymCcCPiDZgQo1Ave2+48xMU7i1DrzSzkNr/vsW/0k7VE2FeGYIXHaICKGIaQ3pBUiIYYcybysVao=
From: Bertrand Marquis <Bertrand.Marquis@arm.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 v1] xen: Use MFLAGS for silent-mode detection
Thread-Topic: [PATCH v1] xen: Use MFLAGS for silent-mode detection
Thread-Index: AQHclpNYPLhzf1Jy6UKGKEMKa2gWarVz/LiAgAAD8oA=
Date: Thu, 5 Feb 2026 11:59:52 +0000
Message-ID: <2E85263B-38BC-49CB-80CD-3C30F37EFE4F@arm.com>
References:
 <3ab39249c788fd0463e73df9464d482fefe8516b.1770290975.git.bertrand.marquis@arm.com>
 <1a0c5e48-5457-414e-89c8-0f12cfa55a96@suse.com>
In-Reply-To: <1a0c5e48-5457-414e-89c8-0f12cfa55a96@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DBBPR08MB6107:EE_|DB1PEPF000509F0:EE_|GVXPR08MB11493:EE_
X-MS-Office365-Filtering-Correlation-Id: a75b9252-2ae7-4a78-ee4f-08de64ae375b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?VVVvSVE0NGJuZlVMT1ZqYkJVRjc5NStxNXNFZEdNVllmNDl1aHRtaEo0cGQ5?=
 =?utf-8?B?Vzg3YUpzMEFGZDVaNHYraVh6VG1sbWpXZVFuZUUyZ3ZUMTNOOGQ4Wm5zSTBr?=
 =?utf-8?B?TTJIcFhPaFdXQVJVYWVaYW1hYkFweEVJcG5uVVhWNkRiemNpVzlBU1NoVG9H?=
 =?utf-8?B?NEtKQ013d2pWeGJ1RHZMblM5NENVNnBiOWg0eWo5dHpiVjBZT3c1bkw4QWNM?=
 =?utf-8?B?Y2dSNzN0a3lLQW5xd0FHa0F3dHVvcWdlMWZaTFBpY3NJVVVTMXhzNUhCU2Y5?=
 =?utf-8?B?N09TbmNLUGNFVVVzYnUzZ0tHK3lGVENkYXJhNzMwdzRBZ3FSdXhEUjdsb1ZR?=
 =?utf-8?B?ZzEveW5Na1c0WlZRWGwvRE9lcmdHUzBTbG51SWNWL3I0YmZHM0lFcFdOYjFK?=
 =?utf-8?B?VjczNkM3ZEovNkM3NCt2RUFYYmh3bmphRWVIN21FNWdpdVZQaUpaNUtkb0RQ?=
 =?utf-8?B?NkhNcm8xMzN0bkZsekpwdHB0K1dzRzZEMFhBRmkzZEhlRUpsUnA2cTF1NDNu?=
 =?utf-8?B?V2I3RkxrV0ZIZUJjaHpSUjVSSFRCTWlublFodW5mdThOVVJoR1kxTnNsTStT?=
 =?utf-8?B?SkdQYWlQLzlWRVJCTGh2ditVbTAwY0ZydldRY05iYXk3Uzl2bWlyQXFLZGM5?=
 =?utf-8?B?VDR0clJDZUZpMmsrWm9KbG1ycnRYcWZNT1hSYW5XemF5QkhwVllIYmxlc1pU?=
 =?utf-8?B?b3V6UTRLcGNFaUxNaG4vZlpqRkIwUmNZYmJabTRzOVI3dHFTK1N4ajRDU3hl?=
 =?utf-8?B?S1RPcFpNdjZBUVgxckxNclBVckJaRnI4U3RHQVEwZ05vVVJHelYyQ2ZvajFr?=
 =?utf-8?B?bnc5UW5KMUNSam1hclhNVWxkaUJmN1czelFJeXRLU0FONXM2Q2hjODl6bjVW?=
 =?utf-8?B?YjlnRHd2d21MUWs2RGh0aTIrUHZHTE5MZ0wvLzJqQUxlODR4TWVnc0RIckQx?=
 =?utf-8?B?bTVuQ2ZEYjEvR3NHNEhGSDcwODVhUU1pcmZSNGowa0tHaXpoQ2ZIK21qTEdQ?=
 =?utf-8?B?MXRJNzU1eUlrNVA0WTJqaVgrUHhPNkVOUVZDQTBHcFZzbDA5MGVRSXVNSlF5?=
 =?utf-8?B?L0ZGOXQxSzM0bUtNaUJ0VHVCOStVQUgreTlJQlo3ZGVNK3BURkg4ZTZKOFhR?=
 =?utf-8?B?WUJ6L3lDOFZuNm8xVFA5UWZuVW12ZkdzWVRQbnMyKzRpYVNkcnYrRXVuSkdT?=
 =?utf-8?B?S2NVNkt3Sk1rRFVrY3g3VGh1YWY5elYwSUlVNHhUamFmcnJlSzdGUUIydEhY?=
 =?utf-8?B?RUgzeDcwclZrVkpjQ2U3RjJzVkQwQmducTBzSmVFMWVmUTVDNVdnOHp1NU5a?=
 =?utf-8?B?N3NqdjdTRXJsV0pNZjVxK0tKeWs4ZWg1ckp2MGhRWm8zVU9RRzRvSkdPTVpX?=
 =?utf-8?B?aS9lMWRkRzV0RkVnYjFsZjlsRmp6RkJHQzVNaWQ0cEFUcUI0NE9UdEQ5RGdn?=
 =?utf-8?B?ZHV2RzM0SXBod1hPZC85dU5WanVSMjdnQmxKWlNYdzloQjNnUm5JMTJvZlBt?=
 =?utf-8?B?dk5ROGFJS2FBMkk2SE9CbE1HZTRIM0owUGlHdHlyc1AxZkNZa1VPZzlwdTk5?=
 =?utf-8?B?bWwxcFBlQ0xmdFViS3g2c291WGI3VzBpRUFKOEdpQ3N0enpQZWFwK0pNUXhv?=
 =?utf-8?B?OVlma0MxQUFmVE5LZk1FeC9yYkhOazhDRFU2dFF1TG1kNVM0R1JlZFRVUW80?=
 =?utf-8?B?NGNNTCs5WEthd0JIcTRYcHhRbGEvUmkyODkxTDRXaUFzZGZIUWtKWFgyUmZz?=
 =?utf-8?B?TG9WZWhHSUcrdWZwZzNZL3lVaWlhZlJHNVRTaXcwTktROXRCS0ZqdTlIdU5y?=
 =?utf-8?B?U3QwdVNGWURZdWFoOHVLWWZ6dlRvOWxuNHZ3VFVEMGdSQXVjVWs0U24yZ09Z?=
 =?utf-8?B?UDNjU0R1Z2QwQ3RVWXBua2hkeGRGZnlNUHpGZ1c1Y2xVcjJUajFwWmgrbURu?=
 =?utf-8?B?aitpdy9BcGtSRE1aaVFUaWk4R3ZVVVhEdUQ3MWRRNHZvdmwxdW1MOW9za3VO?=
 =?utf-8?B?YWYwZU51bVRlQnhtM3VCTHhYNlRnN0F4R3FnT0dubDJmaDFmMGxkeWJkWkVK?=
 =?utf-8?B?dkdlTTB2emFQb0YzcHUrMElHVDUxWTRFMjd5Vzd1YkVvUlRFRFltWlltVGVG?=
 =?utf-8?B?NmFuNXhUYXRPZEdoNlRkY05xWHBXenVhVlkxMGowd1pFUWpyaS80dm5QVjVh?=
 =?utf-8?Q?Y2Z94L86q8eOcg3hUKK54kc=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <54DF35BDF8392647B97115DDA0CDD9AD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6107
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F0.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	1d3c2c82-5027-4a0a-e6e4-08de64ae11f9
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026|14060799003|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?K2pITGJDR2NocjhBNEJ2ZGYzWEczSTN3M01pRnZjTnZCWlBQblZic1NLVXhq?=
 =?utf-8?B?Mm4vR0RNdm9CdWNCOEEzVkxsN1BsOXJXdmhiUDZ4VXphazhla3dGU3FLNk5n?=
 =?utf-8?B?RGoxcHJndHcrRmxoeWx0NThLR3ZCbTNoRFJLU1cwRlFqQUpZYk5qaWU5dHJR?=
 =?utf-8?B?ckVyc2dEM0pKMDg2ZVU0QmNiM1ZLWm84SmhJOTMyaGdaWlh2ajJJVDRvcG1W?=
 =?utf-8?B?VjQ2eFhGelFMZXBQOXJ2WG9XL0hLZGxKZFJYVXRhQ0NyVU5sS1dud3JjbkQx?=
 =?utf-8?B?WXEweE9QQ0pUbVlXYkZGdzhBZzNzaWxYcXphY3dnRUx1WW94VlhvOVNsTWJO?=
 =?utf-8?B?V3d4SmJ2MDdxc3VzbHlsYnIzVWdpSWpGb1Q5aGpHa1I4WDgydGZoK0NJUzJF?=
 =?utf-8?B?MjJpeXdzc242Y01wdnBBTFRrSmpVNzdSNjFPSTdnVWUrR2l1b25pYzVlQnNX?=
 =?utf-8?B?aGtKbVRzN0RJUldOd3JEUmEvSm9Ha0RuY2pzK0YyWjViby81d0ZWWElvOTBk?=
 =?utf-8?B?dThCTURycHBpOVQ5OTUyQlZ2SnRPVTFuN0toajBMNnNYYXFFMStxUXNwVXhE?=
 =?utf-8?B?SlJjNlo2b0dHTHM4dFZGbGw4MkY0cE93dUdDY0N4N3FrWFJxaG9McGhaWC9G?=
 =?utf-8?B?cWRsbExab0QrNTk2emRLdEpqbmp2U0UwVnh6K2diN0h4N2lqWVh2cld5UG5k?=
 =?utf-8?B?K0ExYk9lSTQzQm1ReWhQQjRkTzNWT1RWYlgwRk5tL3Fpd3RBYkZDclN4d1VU?=
 =?utf-8?B?QmFabEh4bm5uN0dISWRTTmpBNmpXWTczNWI2OWtqSngrM2dmRFpjMjU5VEZ5?=
 =?utf-8?B?V1BZNVhuOHkySEFPdldiamtiem9pRWd0TjczNDdTTnQ1SWdkWkpkSVRYemlv?=
 =?utf-8?B?YnhoY2pjNTRYMEVodVRiR0xJUjRMU2pkeHZTYmZScndDOVc5VVF0NWkvclYw?=
 =?utf-8?B?Vll6eUhkcGZpN2VaNGhKQytzUUswMmZ0V0h4S2dyRzlHeWVaRFRuN251QW85?=
 =?utf-8?B?dng2WldkczRVOVBxNkVVWE5wRGtNdGdmdXZoMjB0QTJ1WUpOSGcrdzZ3eUlT?=
 =?utf-8?B?SWVscE84dHVVdEFyajBLRkE0YjNZS085SWJiQ2p4VXk0dTVYaDFJZ3FkTkMw?=
 =?utf-8?B?SEhkM29lSDVFVGZPUzdkNXJxTVNzS3c0TkNnc1c5Skd2S2VBOEpHcklRWXFB?=
 =?utf-8?B?ZzN4NWJZeDZJZTZwOENlY2hjTjRTY1RzQjAwbVBTbDQ0U0dzRkFLOFdjWTBn?=
 =?utf-8?B?Sm96Tm45ZWpXVjRJNHJTSktOaE1vQkVmcXJGMVlDL3BLdGwrbDU2T2xxMjM4?=
 =?utf-8?B?NW9sdytQZi8xeGFTaXFmU3N1U0ZaYzZldTdYRy9oeFVWblhWRDVGS0tFT3dk?=
 =?utf-8?B?cHRqMEFETkkrOUxIcFRZaFFYRjJGRlRiOWlzaGRpQjhhUXR4YjlhZ2Rhd2Rs?=
 =?utf-8?B?b3NjaC8raWRaY09wbnZZTW1EME1yVHhrNU0zY003RU94UmRnaDduMjdHVEdS?=
 =?utf-8?B?MUNXZzFRQW9WQVoveENsbzBRZUtGU2s5K1YwajlLOS9hRDFybkp3Qk9SSjR3?=
 =?utf-8?B?alk2Uzd3dWFjRy8zNy9MSlhjaEU1S21RRUU4N0NQNVowNThQaVVtYkUyUHlK?=
 =?utf-8?B?TE1nZHRQSFRoT3kyOWRqU3NTdmlCNmRpVU9ZV0xpcFlxL0Nqem9OUFhwMEdG?=
 =?utf-8?B?ZS94LyswNm1JWUl2T3NuM3VmN01YckI4ZnVCeFcvdElBdFh3N1FYV0V0WG5P?=
 =?utf-8?B?MC9GQ2xBeUxBNnUxMEJqbVU2QmxyMGZKc0ZIckQxa2lmcmNRVUI3a0d6UGI1?=
 =?utf-8?B?T3d6UGU3TGVldFJLTFdwblozZUt1NU8zNE5JaEE2N3lkRDVvZ2dZckpCcG9Y?=
 =?utf-8?B?U1kyYmxoSXRXVStYWnVjbXJrait3cS9MQ2dQRlowUXQ0RjRLUUV0VlZ3UmVK?=
 =?utf-8?B?MVh2Mk8wbjNKTEM4RGsrdGJjKzVmaEZTaTBzV2ZGeFBXUkJRQ1ViVU1wdmR5?=
 =?utf-8?B?dWRGYVhzQkNFMklYdlJmNkdzOTIycmthYmtvYzNqMys4aEU4d2Zwei9BbFRY?=
 =?utf-8?B?OFl1RmpuNXRBMyt3WmZNOWl5MElSczgvdHVqWi9lbi9Gd1ZrNkp2NDVqSVhx?=
 =?utf-8?B?cmJNb2JabE5YU3RHVmpuL1F4dUFtK25aVGptL1FBdXNFdlFQL0ExQ3ZXb3JX?=
 =?utf-8?B?ZTFUOERIKzhnaFFzd2g4ejRoaCtQWG13bkNTaHNwUkYzZWF4NFkvWjNrWTZt?=
 =?utf-8?B?cis4TFllWjUrazkwTkdtTVpQVExnPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026)(14060799003)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ojqeNyX8HL9MEerJwBYD/r5Dt5BW2sXhBK15Wnc1v1pqptPove5v6gVjzNN4fZEC4yL6cOPmNwyFAucbOK6/aVvcN0I2L3PPm9btIU/2tANermGWZmVJVUPyp4pqZaZHIb5nmC0NeiMWEHNWL3dlU/zZe/8XDa99EdIftsl6L7j0O0oJgU5xit2kqqZ005QEkKnCGg+1WSSvC5x0YwgyCHjQhqm3maTfESQd7omYmA7NKLHDmIeBwNpR+QJnOeB7tesZBWRIoaY/FLK0igtitrfJxXB8pzs7z9XAvH37ii5E+dRSGs4ftCz6oMB5d2O/J/9dVnHd3FlN/bLNZq05ODrA12XmHnrSWnlUvsP0XuPz64IKDQMVqATKdX8WFqS8jggei8Uz+fl6jTsWtcoJeYCQETQNjY7tV+4PJ1Kn6wGQhBmHilvxRlr8Ui1cV1DO
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 12:00:54.7857
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a75b9252-2ae7-4a78-ee4f-08de64ae375b
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:
	DB1PEPF000509F0.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11493

SGkgSmFuLA0KDQo+IE9uIDUgRmViIDIwMjYsIGF0IDEyOjQ1LCBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDUuMDIuMjAyNiAxMjozMywgQmVydHJhbmQg
TWFycXVpcyB3cm90ZToNCj4+IEdOVSBtYWtlIDQuNCsgZXhwb3NlcyB2YXJpYWJsZSBvdmVycmlk
ZXMgaW4gTUFLRUZMQUdTIGFmdGVyICItLSIgKGUuZy4NCj4+IE89L3BhdGgsIEZPTz1iYXIpLiBU
aGUgc2lsZW50LW1vZGUgY2hlY2sgc2VhcmNoZXMgZm9yICJzIiBhbmQgY2FuIG1hdGNoDQo+PiBh
biBvdmVycmlkZSB2YWx1ZSwgZm9yY2luZyBzaWxlbnQgb3V0cHV0IGV2ZW4gd2l0aG91dCAtcy4N
Cj4+IA0KPj4gVXNlIE1GTEFHUyBmb3Igc2hvcnQgb3B0aW9ucyBhbmQgZmlsdGVyIG91dCBhbnkg
bG9uZyBvcHRpb25zIGJlZm9yZQ0KPj4gc2VhcmNoaW5nIGZvciAicyIuIFRoaXMgcHJlc2VydmVz
IC1zIGRldGVjdGlvbiB3aGlsZSBhdm9pZGluZyBmYWxzZQ0KPj4gcG9zaXRpdmVzIGZyb20gb3Zl
cnJpZGVzLg0KPj4gDQo+PiBGaXhlczogNGZkYjRiNzFiMTUyICgieGVuL2J1aWxkOiBpbnRyb2R1
Y2UgaWZfY2hhbmdlZCBhbmQgaWZfY2hhbmdlZF9ydWxlIikNCj4gDQo+IEkgZG9uJ3QgdGhpbmsg
dGhpcyBpcyBxdWl0ZSByaWdodDogbWFrZSA0LjQgcG9zdC1kYXRlcyB0aGF0IGNvbW1pdCBieSBh
Ym91dA0KPiAyLjUgeWVhcnMuDQoNClRydWUsIHdlIGNhbiByZW1vdmUgdGhlIGZpeGVzIHRhZy4N
Cg0KPiANCj4+IA0KPj4gU2lnbmVkLW9mZi1ieTogQmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQu
bWFycXVpc0Bhcm0uY29tPg0KPiANCj4gTml0OiBObyBibGFuayBsaW5lcyBiZXR3ZWVuIHRhZ3Ms
IHBsZWFzZS4NCg0KQWNrDQoNCj4gDQo+PiAtLS0gYS94ZW4vTWFrZWZpbGUNCj4+ICsrKyBiL3hl
bi9NYWtlZmlsZQ0KPj4gQEAgLTExMywxMCArMTEzLDExIEBAIGVsc2UNCj4+ICAgICBRIDo9IEAN
Cj4+IGVuZGlmDQo+PiANCj4+IC0jIElmIHRoZSB1c2VyIGlzIHJ1bm5pbmcgbWFrZSAtcyAoc2ls
ZW50IG1vZGUpLCBzdXBwcmVzcyBlY2hvaW5nIG9mDQo+PiAtIyBjb21tYW5kcw0KPj4gLQ0KPj4g
LWlmbmVxICgkKGZpbmRzdHJpbmcgcywkKGZpbHRlci1vdXQgLS0lLCQoTUFLRUZMQUdTKSkpLCkN
Cj4+ICsjIElmIHRoZSB1c2VyIGlzIHJ1bm5pbmcgbWFrZSAtcyAoc2lsZW50IG1vZGUpLCBzdXBw
cmVzcyBlY2hvaW5nIG9mIGNvbW1hbmRzLg0KPj4gKyMgVXNlIE1GTEFHUyAoc2hvcnQgb3B0aW9u
cyBvbmx5KS4gTUFLRUZMQUdTIG1heSBpbmNsdWRlIHZhcmlhYmxlIG92ZXJyaWRlcw0KPiANCj4g
V2h5ICJzaG9ydCBvcHRpb25zIG9ubHkiPyBJdCBsb29rcyB5b3UgbWVhbiB0byBkZXNjcmliZSB0
aGUgbWFjcm8gaGVyZSwgbm90DQo+IHdoYXQncyBkb25lIGluIHRoZSBpZmVxKCk7IGF0IHRoZSB2
ZXJ5IGxlYXN0IGl0IGNhbiBiZSByZWFkIGJvdGggd2F5cy4NCg0KVHJ1ZSBzaG91bGQgYmUuDQpG
aWx0ZXIgc2hvcnQgb3B0aW9ucyBmcm9tIE1GTEFHUy4NCg0KPiANCj4+ICsjIGFmdGVyIOKAnC0t
4oCdIChHTlUgbWFrZSBncmVhdGVyIHRoYW4gNC40KSwgd2hpY2ggY2FuIGNvbnRhaW4gYW4g4oCc
c+KAnSBhbmQgZmFsc2VseQ0KPiANCj4gNC40IGFuZCBuZXdlciByZWFsbHksIGFzIDQuNCBpdHNl
bGYgaXMgaW5jbHVkZWQgaW4gdGhlIGFmZmVjdGVkIHJhbmdlLiBJJ20NCj4gbm90IHF1aXRlIHN1
cmUgYW55d2F5IHdoZXRoZXIgdGhlIGNvbW1lbnQgcmVhbGx5IG5lZWRzIHRvIGdvIHRoaXMgZmFy
LiBUaGlzDQo+IGtpbmQgb2YgZGV0YWlsIGNhbiBiZSBoYWQgZnJvbSB0aGUgY29tbWl0IG1lc3Nh
Z2Ugb2YgdGhpcyBjaGFuZ2UsIGlmIG5lZWRlZC4NCj4gDQo+IEhhcHB5IHRvIG1ha2UgYWRqdXN0
bWVudHMgd2hpbGUgY29tbWl0dGluZywgeWV0IEknbSBub3Qgc3VyZSB3aGV0aGVyIHlvdQ0KPiBh
Z3JlZSBpbiBhbGwgcmVnYXJkcy4NCg0KQWdyZWUuDQoNCklmIHlvdSBhZ3JlZSBhbmQgY2FuIGRv
IHRoYXQgb24gY29tbWl0LCBpIHdvdWxkIGp1c3QgcHV0Og0KDQpGaWx0ZXIgc2hvcnQgb3B0aW9u
cyBmcm9tIE1GTEFHUyBhcyBNQUtFRkxBR1MgbWF5IGluY2x1ZGUgdmFyaWFibGUgb3ZlcnJpZGVz
Lg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IEphbg0KDQo=


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 12:13:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 12:13:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221859.1529970 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnyEt-0003Kz-4v; Thu, 05 Feb 2026 12:13:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221859.1529970; Thu, 05 Feb 2026 12:13: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 1vnyEt-0003Ks-2F; Thu, 05 Feb 2026 12:13:39 +0000
Received: by outflank-mailman (input) for mailman id 1221859;
 Thu, 05 Feb 2026 12:13: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=2IOj=AJ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vnyEr-0003KW-Si
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 12:13:37 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 15e3c2ac-028c-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 13:13:32 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH2PR03MB8058.namprd03.prod.outlook.com (2603:10b6:610:27f::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Thu, 5 Feb
 2026 12:13:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Thu, 5 Feb 2026
 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: 15e3c2ac-028c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yjRPERWmfgOZs9I2claEN08KlYRo9o+FHTiIYpQjmrKoFiAkuzqQsiNy/R/ex2/RLM16JxYAor8gUOjBKYWLu8DDgS97H1zAvmYWcLtgd4sjewA/PMbQEtHbUY3CCKe+bDP4A+hE5HmuDXX0+p//Sgx8iS8+dOIkokUQH89WPBva0/6SQg3XglFv4h2tsV4/+LACo3WkEmN2ZUcgF0CMTKySfHTnODdZ6QfIbk6DZG/8LHd3kEoLkaWuNivhb/zVwc/NobRMj8D4wlCdurubCPxNTOcgz2p+4L8VloP2bkWcTCnzEkmYeIftTpZMJhs6J15I7wWHTjK8DOVcLdDurQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jNUhN9lWdI54/sSo9y/2/3hOHiXdlGEsa4Q3yI/diVc=;
 b=UBNRh4J5IgSMFiPMC3bkCHu3riQQXuTmhuMd6CVVt9PlxkPDBHO54GtyljcvNeEmDAlHkdx0FjWXCtJch/9tDCU+uSS7Ew/vApL04fsaIiVOhxtbseKgFT056zvZGHQJKhRxFIU+SF/fHYGbpwX+rzFyfnXuMzIGsYyOws0i+mz6udfQOXmNClZl9Iv1BPDCLibLf9/d4In15jpIo95pcKjgjoNv7cYKEwjWd5cqYfAMAykXEtY0BoSizsImPeta/qeJlIEUmbA7n7o1UcGGV6PF0+4sLDS30vB90ficfQoXIQkwAcuV3yyRWoPfzy6dhTRaGcIDwT8c4em9YW2sFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jNUhN9lWdI54/sSo9y/2/3hOHiXdlGEsa4Q3yI/diVc=;
 b=ycBlZkBZLC1XG3EVuNdJLElx4F06vzyB7mYiQpI17IRo+h5+Cl3vzUEaNdl+sOtawWWhm3zaFNpcYYe9F/gG2hdPRVAD/NPEGNhxv/zgBlYe9IThnjUIDYnHCbFY2qngSQEFulfviKLN7ogcPs3eLUbJwuetjrkd2E9UE7rXd+4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f2015a9f-1713-446e-a89e-f75038f3d715@citrix.com>
Date: Thu, 5 Feb 2026 12:13:24 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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 v3] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260205080308.91057-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260205080308.91057-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0031.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:151::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH2PR03MB8058:EE_
X-MS-Office365-Filtering-Correlation-Id: 125abe08-b6d4-405f-3dc9-08de64aff87e
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?RkczamZhOXp2aUNGU1hjWnRTV3dPalBPa1k0dU90aWNDMGhxY3BnMGhzRHdJ?=
 =?utf-8?B?Zy9QNWl1OXJLa1drcVV6UDVmSHhuZGFDa0pTK3V5Q0VmeVpZZVhmdW5tYksz?=
 =?utf-8?B?VlZSdlUrOTVZZjlIeGY3U2s2cFU4bWFPMXFpdFI1eS9VZjZnb1UxV21DTFho?=
 =?utf-8?B?Uy9ITXZucFVUU2g3U1VZSWcya3ZJMFA0S2tkRmZHejJBL3BlL0ZXUDYwUVhR?=
 =?utf-8?B?SkMwODFTSVNCRWdaT2FsZjYyYUFSMEZQclowWWtHWWJyU3hGTys5bERQMTRn?=
 =?utf-8?B?RjMwdVQyT09TSHJuM2lBUVpCakRIMXNlMUxqQ3VkODYxVFY5TTdua0EwNStp?=
 =?utf-8?B?OWlaN0hoQmpyTC9ka1dFRVNtWmY5TkthU2lLNGtLSmljM0hxSFhhclR2czhu?=
 =?utf-8?B?a29PRzQyRmt6end5SmdKaURaYXdWTndqNTB0TnV4T09CTndKUlp0TnphTGVY?=
 =?utf-8?B?emkrQnlUNXpZNlZqVC9ORnhsY2psSDByYmlKNUgxSWRCODBZQnp0TWROcVlQ?=
 =?utf-8?B?dG1pbVpnMVBvOVZDSHltekNDNW5LcHlENVVZa3ZmRDhXaldRcEErMXdPUzFO?=
 =?utf-8?B?b2RCRVFjcGU4YmZ4QVFRU3ZtNEtxTEhKRzFFa0VvemJ4S0tQRExwUGRFdFdM?=
 =?utf-8?B?UHQ5cytVWXhGZGhoNmx3bW1tMnhjeUIwM3ZWcGk2aWluR0t5c0s4WnlCVVEr?=
 =?utf-8?B?ZnI2MXltSzZiQld2eHJhZnN2WFVnZTQ1a3NsUWdodmRrTEhxVkFvQTRrL0xJ?=
 =?utf-8?B?S1UxbFQyR3QwQW1vVlVtMThLcVUxa1l2KzgwWDNqR3ROdGN2TEFsWWlraFpq?=
 =?utf-8?B?UUlJZ0ltQlFzUDBBNFNtZ2pYZFNoRGIrV3ZCTFRjdzJBZ3ZUOXl0d2c2bGlI?=
 =?utf-8?B?UzBKZEdzOVhZWjZCbitTRUtFSDJYOGJBOVpnaXdSbVFMNG1rZG8vZmp4WnJJ?=
 =?utf-8?B?ejhwd1BPSkpqdXp5TndMV2J0VnhxOW1ndUJxeUlZY3JaS0RDdTdUVHVKVDJI?=
 =?utf-8?B?RWlNODFSaVVpSTc1WFpZd1BzRUo1L2txQnBaSzlOd0pRbnFTRUJ1TzVNRVJ0?=
 =?utf-8?B?WS8wNlRyUWgydjdocEFmRlRpQkZMODVsbG9MTyswdTNpeVRNY2NMblNidnI4?=
 =?utf-8?B?MERubDJDYnM2R2diK0MybDV1TTFZbXJjakEvekJiTEoxYWV1Rk9FdDZnVWg5?=
 =?utf-8?B?T0FTWHE2Zk56S3ZYeEEveFN0cFBsaEl2WDBmYnI5MVh0eEU3NHdrQlhaakU1?=
 =?utf-8?B?UWtObXhldVlBZmpxbFFRcnVYbEpNRHQzN2JSU0pFZGF2aEZwc1FvN0sySk91?=
 =?utf-8?B?U2p1ZHVCMDliMEJmd0FBalZOUDE4cGo4NE8zZHo1WXRhSnVVZWkyZGhvUUpX?=
 =?utf-8?B?aTJwd2lMQzdoZ2h4Uld0SlZOMGNVUzZRbWJwcm5ldC95RldOMkhhcUw3ZVBl?=
 =?utf-8?B?M2FmbkpydzZ6Mnd6ZW5FL29yZG1MK3RxY3ViVTVONmY1WndXVWxZTGNsL2ZX?=
 =?utf-8?B?WVhjaURRUFcrQjJmSUJHTzNqZmd2dnB4RWFTOHRrcWkwNGtFcCtyRUFVeUwy?=
 =?utf-8?B?WWNUUEVmSzBQQUNXTzc1NTJlbmVDeVpSeUZFUGlJY2dYaVBMZ0Izd3NCSzJi?=
 =?utf-8?B?MmZQZnNJNjN2bjVNNmpscm9YVWIxQWdrcENScEgxK3dCZHZNbGdDY24rYWdB?=
 =?utf-8?B?SGc1Vzd1R01jYnNicm5nUTM2WWEwU2xZTlBFUjgxRnFZU0pmdlZKVUI1T08r?=
 =?utf-8?B?N3l1MXhPVkpaaGl2Wko4dkhkN2R5QnVHb2ZpbGZ0UzRyZ2VVUUVBZ28xT2xp?=
 =?utf-8?B?R2dyQ095SDJKSnM4ZlJ4bVdpSjY0c2tQN3dVL2xmakNhdXAxV2w0dlM1N3FV?=
 =?utf-8?B?RFZrZTJFcyt3RXRQYXEzWHNhdnlpdjJhbFgzUGhVZnhhOFZSK3VjRmN6c3dz?=
 =?utf-8?B?bE9HZ0w2eVoyZ2toQkhpOWJZYzlaS3dlbDhFTHZJeVBTcnpibmE1Ti9IeXhO?=
 =?utf-8?B?SmV0VERvR0VHU3JJYXpLMzhNenV3Wnc2UDh0VkMvR1dzaml2Y1NVczBJMFFs?=
 =?utf-8?B?R1F6SDVudU1BeTg4c1BpdzFQVkVwbjRFZlBhc08zQTVMZnZFZVlHRUZJTlU5?=
 =?utf-8?Q?f2F8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RzhKcUlrMWlNN2F0TDhvMURoVW5BdFpDZExGZTBQQmRNVmhrSGNUVFAzdi9P?=
 =?utf-8?B?WlVNTnczbmNNTUJRa05mMnZqeFZ4bWlsT3N5b015UFNKbDdxRnVVMjVha3RX?=
 =?utf-8?B?bGhXSENJNmNlZnFGeDJObGZ2NXF3SEF3VVdyQmpBUi9URFJzY2hpYlFJbThV?=
 =?utf-8?B?Ymk1MlhYbm1LS2tpeFpsblNPVW9jMzE5czdaUjVud3F5UmlmaGpDMS91enBs?=
 =?utf-8?B?aWJkbktzWVpFV25CQ3hMbVZnU2dsdW5Hak9qWmxaQVppRkxmK285RUtGQldC?=
 =?utf-8?B?cVdrd2h3OXZuQjh2SXAzZnNnYnRpOXdoYXBBQ25la1EzSnI3cFI5SXk2bVlY?=
 =?utf-8?B?L2VadTloM1VLLys5YkxsZlA2NnBiRUZ1Q0w2amQ0MkYvZ3U5Y2NoZkZTc1Y3?=
 =?utf-8?B?UkdvSWhQOFAwZ0Y1azZ1SUFQai8zbGZKaWkxQUMxdTRITnFkKzRQVDIxcThU?=
 =?utf-8?B?SUJPdjRvb29CK1J1VE5PV0VvT1Q0TVYzR2gwWEtxR0FrYkdyV3dPMG1BcGsy?=
 =?utf-8?B?bWdMdWoxeStwVG5tTjVCd0V1MlBMdGIrT2dCS2VGRk9sSkVmcGV3UDI4Mlgy?=
 =?utf-8?B?OXR0aWFkYVAvdzNoeDJ5UlZyanNuZjlweUlHSVVCVkowS2lPREtxcGlPT0lt?=
 =?utf-8?B?QVVvamo3WGxKeXo1RkNSZE4zS042UFpFSlFIWjdCd3JlMlBXelczRnBuZ0tm?=
 =?utf-8?B?eFlMQ1JEMjZFQi9GaGJvZTFXb3podStIYzBGd3B4OHk3RFFpaXIxZjY2RmdN?=
 =?utf-8?B?cW9RakIrd1J4ckRabThkQUc4N2dDekMwVDAySDd5MWVmZnFSb1YyZmhGb1cv?=
 =?utf-8?B?MzlleUJiVDBEQ0dHMGVzRzRyaVI5LzFVRTJQeW5HdjlZUXhYZ291MzZIVDNw?=
 =?utf-8?B?SDNuTFBxbXJUTmVBaGE1TktESDNHZDJXNm9PUnh5aFZqbEZQeDNoS1hrMDd4?=
 =?utf-8?B?VTU1UWZvUmhoVU1hVlJyZzdIdWJZRkFkQXlUWStXWldJWjA2NkV3dVV1WDh1?=
 =?utf-8?B?RVlpL0pkVjNSbU5DWnBuY1ZPYWtpUkg1L1doRlNJd3IrSlBmWkVoTm43Qm50?=
 =?utf-8?B?M29RT3NZTjBiUDhqRkdLWElhUG1DZFREMEtJQ1ZNNHJqanZzTVdQS1FWcGR4?=
 =?utf-8?B?YmdpenJPTGRwOHF0Qi9SdnpQeUhXOGgvVklPanlOSGxHcVVyS3FTc2hEcHJX?=
 =?utf-8?B?UDRRa0VWVnNLekpHMG91RXNWQmt0U0cxc0NmM2h3T2k1MU4wVGhsMjVtY2k2?=
 =?utf-8?B?dVU1TmgvbG5TSHlwOG1tMlduSms4dkEvazUvMnd4RisrRVhDUERYT2pwQ1Jq?=
 =?utf-8?B?dTRIZ1JwQytadkpBQVVTS1RUNDlYeUk2RkNqMFlvZTJtWjBFMk1rWXFaRDIx?=
 =?utf-8?B?ODNOTlZNQThZUkU0Z2kyUlRUYjNOa0tnOVAzWG5mdi82R2MrY3drUGs0ejJo?=
 =?utf-8?B?am83VFVlbERYa1FXckNnSGJENFZJVGtVbVRxVFQ4bmJTWVJuRStNMUZ2WkUx?=
 =?utf-8?B?ams3T3VXRXkwQUtNbGZjYVRXN1dVWkx3Z1c4cTZGcE9kV1hIVHIwOVBBWnRk?=
 =?utf-8?B?TDJBRGRra2l3d2txOGE4VC9Ndm1zakMzYTlGNkZSODB6Skx1Mk85aHBOTkhD?=
 =?utf-8?B?ZG1uVk1KUmUzRnRRakNwT0JydS9ZUFY3Yk9rNVJNQzAwNXpuVjZjR3lnYVh4?=
 =?utf-8?B?V1VZS2NzWWFHcVZMbXJUc2ZCeVQwL1MwVGYxaWRhbUl2UmJrU3lmSkh0M3Fm?=
 =?utf-8?B?cGNVZytydFlkZS9NYzZzK283UUlvVjhvUWRZTHRvOWphcjRlczVjbGFPdmtv?=
 =?utf-8?B?Zkk0TmpZSVN6YXZtMVJFaVJQdVZDdWlLajV1WVJRWW55cWZCRjNMK0NxUzVU?=
 =?utf-8?B?V1lhcFh2dXM3VEhiYTFGVHYxTUdPbHZIS0lBWk80UWdTUHZ0VUhLZnRSZzIx?=
 =?utf-8?B?bDhvdFhJWTlUaUhnc3VVOWZnQnJ0SlRmaDJSaUNjdWxHZW5NNzd5dzl5QVJn?=
 =?utf-8?B?d3hRM1ZTKytOQ2tuaTF2TElBUFBOWVRRL290cHBreGk4ZkVpK3dmeXUzRFlT?=
 =?utf-8?B?L3BaM2FYYUZDcm93aEhjMFkrWVV2bXh3VWdkNkVUWlo3MUt5aDdxMnRpVlQy?=
 =?utf-8?B?YjE5aEh4R3dTeVd4ZjMvOElwL0tPSEtlRjVWTm91QVZKS2toNGNKRmR6SDBx?=
 =?utf-8?B?dWF2R1dPTE5RdVRwQlRCNG16Z3lHdk9GSjYrQ3E3YllWd21SZ0RMWEpKVTEx?=
 =?utf-8?B?WE9rcUR1TmJHeGMyazBlVlpwYzJVbVcvanQ3TG9vT01xREJlTEMvZlFuYVZ6?=
 =?utf-8?B?MVJlMzc4NkpiSmVhY1ZqM1cwWGhjOTdFTEd0SDhXc3M2SUxsWnQxQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 125abe08-b6d4-405f-3dc9-08de64aff87e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 12:13:28.5457
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kx+COh2NmpOMm38RfFVwVGlREwsKCAXXTgSPlFEUylDfszZGECiOW7oZ9RkNZ2aCLcWVkuR6Ex8jfvrQFcaGG0Ohi0bbBtwZlwJwZFuNuKg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB8058

On 05/02/2026 8:03 am, Roger Pau Monne wrote:
> The limitation of shared_info being allocated below 4G to fit in the
> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> start_info field is 64bits wide.  HVM guests don't use start_info at all.
>
> Drop the restriction in arch_domain_create() and instead free and
> re-allocate the page from memory below 4G if needed in switch_compat(),
> when the guest is set to run in 32bit PV mode.
>
> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 12:21:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 12:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221870.1529979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnyMW-00054w-Vc; Thu, 05 Feb 2026 12:21:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221870.1529979; Thu, 05 Feb 2026 12:21: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 1vnyMW-00054p-Sl; Thu, 05 Feb 2026 12:21:32 +0000
Received: by outflank-mailman (input) for mailman id 1221870;
 Thu, 05 Feb 2026 12:21: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnyMU-00054j-RX
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 12:21:30 +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 32e4e628-028d-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 13:21:29 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47ee0291921so8524015e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 04:21:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d33f5fsm55167435e9.5.2026.02.05.04.21.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 04:21:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32e4e628-028d-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770294089; x=1770898889; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jytMBN62Phwofq6gia6ATWrhwZXM1An62OfpNpgdsXk=;
        b=LClUN1IArZVKRbQUsvNTOB2NwvrhxEy/doVsO7UoIoHYDTba+XN4/fEycefnI/Xa1u
         q0yvkSm88P4kOQBOvyBua+fznckagXfzlNlwlZFiJGgiV2Ui8Csn9kYEduj402HOG0PI
         56ygj3jvxLPjY0iZ4bZAZYTRTeZjl1PjoNcsZGC0RwKFxw7FlZY2oujDjnGr/6oCCZWA
         vKQMtTDE1mdhkbhOoeTZnmDxSXysToWLHrrMYY5oM00PeCGSAo9Itc5fnlxwzb+D/c3b
         8nV2ZxgQtd+X/W4m6eFswwTn57p7wTD9VRAHs81YGy/MPQ+PVnnfJG+x6r+JQoxaL3il
         oFHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770294089; x=1770898889;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jytMBN62Phwofq6gia6ATWrhwZXM1An62OfpNpgdsXk=;
        b=QtOhzvVIMTERiiOhMlKkn08UFdM/EgVUC1a36Q5xcr9OQ+Loj4gew+FcjYg6KUVcvI
         2Kv3dTwBKIccgw0OMLNvuw4MAFx+//k3YisMEFxEx8jJ9FLIBEj5gKKeN/K0eAdLCp9/
         bcwMDWqfnvP6dqPOSrMtP0JJ2OKHhdCSnG5tTwUEOSu7nU66qZbXf2+gIKB9nClm4KRl
         Tn+ha3THCSNAL52ucGX9AP1/CEjlhnPnHRJ59koxsJqfpsleIqDSYeSXdy15RtuB5Rzc
         ff3rTD8N+rMH70Mk7jnyktievPeaaSjpGt/TzmzPvE39coioPFrMaD0eu2IpuTqwdua5
         JeUg==
X-Forwarded-Encrypted: i=1; AJvYcCUl8kWOSqH5P2nC/BoH+6g11pFEZ/oHssZ65FzoXBAVHPETYEBnFpp26haFk5bvXT7bfOH4IfMP6Ho=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8iV3QhbaMKaF9ZoLdRKX0j8XUVeyF2G3aA+K0io0nB+85HcAn
	eKABd3sEaIupgKpxI7KZVh4b83QDR1cisBA+zlkE3HP66SynIkVN8EwIghrSsGq4Og==
X-Gm-Gg: AZuq6aIEhNrUlF++vU7MVnT4UNej3E52zL5dgtgTUq7DVfYMeE9vjMgGcWbvub1o8C2
	dWcqaIJaJOMwQjdoSOJkAWe7XjpfO4F95YlERzuQXjoxUSCeW6ah4VPOl2zUbEXCTd3+6uqIMQh
	mNuaxlYx2KkeeVc/fuLbCFl9+2HdGiY7Frkgdw/S2e3oiGZglirS00VgMFk0jLOh+jLCpNCL2Jw
	TmDZ1MoCVq8S6b5UugkrgetaH5mAGSz7KiAs0OqoiSxKQMouRUmur3ufZMhqZVMS2ik2m2G/qWv
	vgUuSJGMyKQ8OtgMbABEVRR5Guhuzz8u2zXKgRjJmeOIIA1yUSJqDsPK/WgR97oY1/7kMraljJc
	GXuZJrk3aXb13/60mZcahe2og9ij3PiZXUuxun6347O1vN9M/NIXB0FVgoHG7b3Cr7d4d3e1Rro
	wo03lIcDWOOlemrznT1GQ4XRTI6mpNPRh2gHieGulSBIWgqtRiDJJIiCy0cNsznsb3T2bhiKdKB
	qObVfiisZ53ww==
X-Received: by 2002:a05:600c:c4ab:b0:475:dd9a:f791 with SMTP id 5b1f17b1804b1-4830e9795d3mr79211715e9.28.1770294088698;
        Thu, 05 Feb 2026 04:21:28 -0800 (PST)
Message-ID: <ed502ea0-62b6-4cbb-9116-4ba199727fcc@suse.com>
Date: Thu, 5 Feb 2026 13:21:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: implement
 p2m_ctx_switch_{to,from}_state()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <2e4cd29f19945e90733ac85e023d53cecbe1d14d.1770036584.git.oleksii.kurochko@gmail.com>
 <0f0a7479-5f12-4803-9348-2c295a1939a4@suse.com>
 <cdc5135b-11fa-45b0-8b62-79141ce3bcb7@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: <cdc5135b-11fa-45b0-8b62-79141ce3bcb7@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.02.2026 11:32, Oleksii Kurochko wrote:
> On 2/4/26 4:02 PM, Jan Beulich wrote:
>> On 02.02.2026 13:57, Oleksii Kurochko wrote:
>>> +void p2m_ctx_switch_to(struct vcpu *n)
>>> +{
>>> +    struct vcpu_vmid *p_vmid = &n->arch.vmid;
>>> +    uint16_t old_vmid, new_vmid;
>>> +    bool need_flush;
>>> +
>>> +    if ( is_idle_vcpu(n) )
>>> +        return;
>> Shouldn't the other function have such a check, too?
> 
> Yes, it should. I will add the check.
> 
>>> +    old_vmid = p_vmid->vmid;
>>> +    need_flush = vmid_handle_vmenter(p_vmid);
>> As you're re-using x86'es model, I'm not quite sure why this would be needed.
>> I don't think we have such in x86; aiui this should be handled while actually
>> doing the VM entry.
> 
> I can move this to the end of do_trap().
> 
> However, isn’t this effectively the same?
> If a context switch to vCPU n happens, it means that once the trap is fully handled,
> we will enter vCPU n.
> The same will be if to put the changes at the end of do_trap() before control
> will be given to VM.

Thing is - you will need it at the end of do_trap() (or wherever VM entry is
going to be dealt with) anyway, to cover situation other than context switch
as well.

>>> +    new_vmid = p_vmid->vmid;
>>> +
>>> +#ifdef P2M_DEBUG
>>> +    printk(XENLOG_INFO, "%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
>>> +           n, old_vmid, new_vmid, need_flush);
>>> +#endif
>>> +
>>> +    csr_write(CSR_HGATP, construct_hgatp(p2m_get_hostp2m(current->domain),
>>> +              new_vmid));
>>> +
>>> +    if ( unlikely(need_flush) )
>>> +        local_hfence_gvma_all();
>>> +
>>> +    /*
>>> +     * According to the RISC-V specification, speculation can happen
>>> +     * during an update of hgatp and vsatp:
>>> +     *   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 just flush TLBs for VS-Stage and G-stage after both of regs are
>>> +     * touched.
>>> +     */
>>> +    flush_tlb_guest_local();
>> Which "both regs" does the comment talk about? Doesn't the flush want to come
>> ...
>>
>>> +    /*
>>> +     * The vsatp register is a VSXLEN-bit read/write register that is
>>> +     * VS-mode’s version of supervisor register satp, so the following is
>>> +     * true for VSATP registers:
>>> +     *  Changing satp.MODE from Bare to other modes and vice versa also takes
>>> +     *  effect immediately, without the need to execute an SFENCE.VMA
>>> +     *  instruction. Likewise, changes to satp.ASID take effect immediately.
>>> +     * Considering the mentioned above and that VS-stage TLB flush has been
>>> +     * already done there is no need to flush VS-stage TLB after an update
>>> +     * of VSATP from Bare mode to what is written in `n->arch.vsatp`.
>>> +     */
>>> +    csr_write(CSR_VSATP, n->arch.vsatp);
>> ... after this? Then some of the commentary also doesn't look to be necessary.
> 
> I think there is no need for a guest TLB flush here or above
> (i.e. flush_tlb_guest_local()), because:
> - If CSR_VSATP is set to 0, or changed from 0 to a non-zero value, no speculation
>    can occur. Therefore, the guest TLB cannot be polluted with unwanted entries,
>    and no flush is required.
> - If need_flush is false, it means that no VMID wraparound has occurred.
>    In that case, the VMID is still unique, so we are safe and no guest TLB flush is
>    needed.
> 
> Additionally, it seems that I do not need to introduce flush_tlb_guest_local() at
> all, since local_hfence_gvma_all() already provides the same functionality.
> Instead, it probably makes sense to introduce an HFENCE_VVMA() helper as a generic
> wrapper around the hfence.vvma instruction, and then reuse it inside
> local_hfence_gvma_all().

Hmm, I fear I'm confused: hfence.gvma != hfence.vvma ?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 12:29:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 12:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221881.1529990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnyUO-0005rr-OD; Thu, 05 Feb 2026 12:29:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221881.1529990; Thu, 05 Feb 2026 12:29: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 1vnyUO-0005rk-L8; Thu, 05 Feb 2026 12:29:40 +0000
Received: by outflank-mailman (input) for mailman id 1221881;
 Thu, 05 Feb 2026 12:29: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnyUO-0005rb-8m
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 12:29:40 +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 568f0848-028e-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 13:29:38 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-435a517be33so603435f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 04:29:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e25d47sm12768796f8f.5.2026.02.05.04.29.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 04:29:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 568f0848-028e-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770294578; x=1770899378; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SdwYGtLjUXWh0XRk6hbrZPL5GVOTinEJ2zSbhki0S5M=;
        b=aY18VfTCrDLceH+H5CYc0UAB3vUuvkg3ekGmj6IN91vgBAe0oUqh1o6pl78lv28IuB
         uxTrgN+u4gblxmmBu5upzPGDVBStm7r9tr7wQ1dHsOjFyQVuqZFDvYgFTaEmTsmTUPXh
         cItVXvF9Xs5fAGYEkNB9xCEh3vJsB6iv2mBnJfvxgq/67DrrcMOTVhI+UAWHwvnNh1V5
         BoIreyruu6C9uUPj+ONqi/sn7ohG5qgcl4mqixEPzeV4eMUwXoXH58ogq4mEXZCHRBZt
         +HzXomAIXySk1SwTQI/cucUowgzgzFcKx1QgwUCiuqvZJvfwI91GZEIjQVovdGM6waE0
         DY6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770294578; x=1770899378;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SdwYGtLjUXWh0XRk6hbrZPL5GVOTinEJ2zSbhki0S5M=;
        b=dEgDo0VVEq4nHhJ9WZ8sPoyDn3cKUuw7a7gW1tY2XdUqyMyWJdHfdRqFoefI0i1UFH
         6CaNhVbp31fIFE7hUwmBshioaXtikGZUeEBIUS+LyXTDpXZVgY7oBVJObyn/X54q/QHz
         1adckUxyuK2/h5ZEJmAtv473ACMKgYb89wHmlVyAzvw8FTeKpUTz0R7m2DkF3mToAqk6
         cxTy1vnfMBCTJSg/wh+qePL/h76IHN9omtNiW8uq6dLVyMS+m9OHPZa4bgWhg5dKesnn
         eDoQFryld0pOgnoPwMYj4/UQKB0QEF4Y/6fBO70NH6UHCf3bXAh8Niq5F0dhl2kyK/gm
         MIIQ==
X-Forwarded-Encrypted: i=1; AJvYcCWJHDGN00iDIti/r81dNUKWkBIEWafob1cqXUho48ewa3DyFHXxjwglSpZ9HWRjwZB9R3XoQ2Zy+50=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw7hAUvG7wYf/vxNNK+czMFRXUjgf/U4LoPufeISSxchNHPcvQK
	nd96pcwnLQo4bdsmhoQs5crQLMm9buD+7KyxGgiSu0TTjMXOXnKYp5PywRHeafl8tg==
X-Gm-Gg: AZuq6aLiTRblYWg2LBI6dex/L0mr5y8mRoOb9AWR+Du1UTyZXQ9wjtCg32rHz+V1YLK
	7unEek96s8L5VNAoT7C95/SvsUB60czhTYCQbDzWk+xMsja114G1M4DTJagWwa3qqoe/LNuO4fZ
	cr8TVXThodG7+5XRgN3uj4gf6OjIbPJGVTBZI0BfCt8lYGNm1qe8T2y5yNB8rmag6L8wwMI+gZo
	VCPbT9GXw+T2RpYBzNHNaq25wPX9Tj66eJyBoCOmXCw8T3TCHFGy+4Lj4IjT/YRvDANu7tPixzJ
	6uW13BOs7VIenqskoj2TP22LjC/iWVrypdt11/kvKi8FzAbJX2xNnl6CNV8W7eRVtA5yXEYV+wt
	guNuD5Chx54sT+idZKNdV3Guvu0GDoqAYdy6wuApoAdxWHbWhF3KpZgNTQWuFe4EV2qkyQY4nAu
	hU5kkiq2tyEgYt1vwSYThkpBl+mjR5i/hzthL1fE/eFieaO+DN9e4thdnjEs+6N1OI4YB8sYnSf
	1Y=
X-Received: by 2002:a05:6000:24c3:b0:436:15d3:ed3a with SMTP id ffacd0b85a97d-43617e41e0bmr8965346f8f.17.1770294578092;
        Thu, 05 Feb 2026 04:29:38 -0800 (PST)
Message-ID: <7bf2ee2a-177f-4d7b-9dde-ee43bc4311b8@suse.com>
Date: Thu, 5 Feb 2026 13:29:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
To: Bertrand Marquis <bertrand.marquis@arm.com>,
 =?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: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 12:33, Bertrand Marquis wrote:
> Xen does not currently document how to build the hypervisor on macOS, and
> there is no Darwin configuration for selecting a Homebrew-based GNU
> toolchain. Native builds are not supported; the hypervisor must be
> cross-built with a GNU toolchain and GNU make/sed.
> 
> Add a minimal Darwin.mk which selects the GNU tool definitions used by
> the macOS workflow and point to the build guide for required tools and
> setup. Document the Homebrew cross toolchain and GNU tools needed to
> build the hypervisor on macOS.
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  config/Darwin.mk            |  6 ++++
>  docs/misc/build-on-macos.md | 66 +++++++++++++++++++++++++++++++++++++
>  2 files changed, 72 insertions(+)
>  create mode 100644 config/Darwin.mk
>  create mode 100644 docs/misc/build-on-macos.md

I'm sorry, I should have paid attention already on the RFC, but: With all
other Pandoc files in this directory being named *.pandoc, do we really want
to have an outlier named *.md there?

> --- /dev/null
> +++ b/config/Darwin.mk
> @@ -0,0 +1,6 @@
> +# Use GNU tool definitions; the macOS workflow relies on Homebrew GNU tools.
> +# See docs/misc/build-on-macos.md for required tools and setup.
> +include $(XEN_ROOT)/config/StdGNU.mk

Given Roger's consideration towards possibly using a more MacOS-native
build arrangement as an alternative, I'm actually not quite sure this should
then be the default mode here. Roger, what are your thoughts?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 12:59:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 12:59:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221912.1530023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnywZ-0001jB-4i; Thu, 05 Feb 2026 12:58:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221912.1530023; Thu, 05 Feb 2026 12: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 1vnywZ-0001j4-2C; Thu, 05 Feb 2026 12:58:47 +0000
Received: by outflank-mailman (input) for mailman id 1221912;
 Thu, 05 Feb 2026 12: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=cpzf=AJ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vnywX-0001iy-2O
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 12:58:45 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 63440aa7-0292-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 13:58:38 +0100 (CET)
Received: from BY5PR17CA0057.namprd17.prod.outlook.com (2603:10b6:a03:167::34)
 by DS0PR12MB7777.namprd12.prod.outlook.com (2603:10b6:8:153::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 12:58:33 +0000
Received: from SJ1PEPF00001CEB.namprd03.prod.outlook.com
 (2603:10b6:a03:167:cafe::e) by BY5PR17CA0057.outlook.office365.com
 (2603:10b6:a03:167::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 12:58:33 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF00001CEB.mail.protection.outlook.com (10.167.242.27) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Thu, 5 Feb 2026 12:58:31 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 06:58:31 -0600
Received: from XIR-MICHALO-L1.xilinx.com (10.180.168.240) by
 satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17
 via Frontend Transport; Thu, 5 Feb 2026 04:58:30 -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: 63440aa7-0292-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ILIklL1+02hRLseKuFTdjs+W1m9hAkec5XtcH8WjehH3p3kEspdWnFS4iLdhqc2ASaLuss+FhMQ09C1h6KYtEPisiiMsjMozZsWFMG/sRNDFblCskUEzLphX/TnbdvfnloFzFEfUXUM/qVrzkctXru6sw/H17lheWDLfoyUB9tKeQs9L2ErFSIKkChNA2DGI7Bq8/XsphnyPgL3Z5l7C/qJ5zzp040TMyh/GW7ccJo71sEJ4r5u0lUNndvNfpNv+3AOMeOVumED5MrUAK//WHytRUAq1Y9WudN4/fmjXYMPEUXWfqh7cRD/bZChfzMXD1hRuJXQR9GD1meHn8Wkr0w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/9c1MjqVRjC0TadqvV4eh4kKo/EmKHGJVFivLDSc5iE=;
 b=t3B+n3C8kD6qexE971Fx3lNxp6U2VD/tRPCSN5usozl+ENeLT5Fnbjwp0d+oGBKsq7KJ8fZsmDDYj6O0SgYvvw/BsIyHVFPOz7D33BWmvrDQINVjzgTsyarEclORgn5bb9JbrYCJmatzOSAdErD/eG2USQb0sPbKvF5jQxZL3iFCCPWmRn0P7felGgSe6xY46ZCAeRBEWIoc4yuqZ6D47QimYKmikDaRDnj449XNvom28WjubjQa4H+63LGQLZKj+CtZjekiJH7r3s3GbkeLot/CvgCf5nGYJBvzyGw9MV5/ge8rUoBeEhB1MeJr2fKDYm4MtrnkU2I63irrVqr+gQ==
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=/9c1MjqVRjC0TadqvV4eh4kKo/EmKHGJVFivLDSc5iE=;
 b=xmUyyjJ8gw3T0MAw1hSs7xAsAE6J9Mgv5GgCXfvXMERM6P6My/uYr1ozdRm0Nwcy160Um0MFJUazohNwID3cvInvBAb1cc8uMSO7BixiXSiKDDUzbWpe+htBITNvXiKZtVNVJylCYOpf3DyH8ix+xDGLGN+j8bJhqt/aMwEbxbw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Michal Orzel <michal.orzel@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Michal Orzel <michal.orzel@amd.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
Subject: [PATCH] xen/arm: Fix memory leak in xenmem_add_to_physmap_one
Date: Thu, 5 Feb 2026 13:58:20 +0100
Message-ID: <20260205125820.116555-1-michal.orzel@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CEB:EE_|DS0PR12MB7777:EE_
X-MS-Office365-Filtering-Correlation-Id: f9b289b1-dcbf-418f-00df-08de64b64404
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?DokbqQoTwvrQ3P8CTngIuV9bA9r9AESoJkinUFBNM1HjCsu3NYZTvaO+p3n3?=
 =?us-ascii?Q?A5o8yBtN3ANupx8IB+/MoP6ZbMEP8wPBAMJoW4oze1NN+WQFMnTu4ecn/kI9?=
 =?us-ascii?Q?C9hJzIZ4UfoHN2tAvizSPPz+JoqTBiBXKLp5iy6UDlPf6hsDj+OVWEWNZPIF?=
 =?us-ascii?Q?R8RbLx4BljKuAGdJnHKTYRWSLTPNfS3Ul6vS0k67nu2rEaoweF4LUjlPsZVJ?=
 =?us-ascii?Q?s3lzp+C/8CqELTFCLpnuaSR2OZMIc07EwoW9D8ZrXXGU+bsLNaGw4d96jjkz?=
 =?us-ascii?Q?22UYHAj/VU+CvSqb9PCQYhvIifw9G7Z4AFJWrCBfeQtaBUSByP8vslt8mN7s?=
 =?us-ascii?Q?nfYACtG4P6uAebUb/PrUALd8V93A0GQWBIiY3Pq8TWnF80OtzZ1CKOfUJ1qt?=
 =?us-ascii?Q?HbNXX9LJmoq2pYt0k3Zayb/ITDOEd4OgHBzS6gexdjUvqJvGXJF/B2IFxTrX?=
 =?us-ascii?Q?06Jm0bOMrpQLrSGRCGkFJRAeAbyZqAyaDyzj3LujyVmQN4bbDgKMkWUJwkR7?=
 =?us-ascii?Q?vbtARMXvEX6/T4e/csU5IgQpNLoQ8TPYLF1RqOZXh9ouEZtIL0WQn3Rnivge?=
 =?us-ascii?Q?BA7bNEUivRYEhAouaLfO1mX9+twaj8wDrhgCcuiEXA0wZGINAEaNP6kVwMoj?=
 =?us-ascii?Q?9d5kIio1zb489+tez9fZa4IJuEKAvPsyAIpolW1rTuWp3/2wSzD6VMm7djUV?=
 =?us-ascii?Q?cveRz5c7WovKGl47dDpVn2pB0mbyRQniajrHaQBWkwOQVbitUcNVM8ECBsbC?=
 =?us-ascii?Q?DR36wqsrbHgxdpG7RoiLeSG76rA8lAe+b3/nmXtTXu3zpyHAlVQdfFX5Llj/?=
 =?us-ascii?Q?EcZg5NoXDXsSRVH3e5Fn8PtSdX7t4Ypdg2KRhy5+0nUJvKUtBqgFYGaRyFm9?=
 =?us-ascii?Q?zhwUtyzrXbU2zr+PKNRIer1sbnggpSynDUEH9VE5TDFqQGkEdxmM5DN1S6Om?=
 =?us-ascii?Q?K8mpM0hQXjubou9P6cgLZJNUY8SoiTpHhCVXKdqSULOi3AJvkHVk3aIavOvm?=
 =?us-ascii?Q?D5lD2Q4W7/qJxXJNtEk/SzP/QZgab1R9xXMHBVxaa4a/mXP8FoP6D3LaoI6+?=
 =?us-ascii?Q?q/Jj6So5IJSCUQ4hrPnBrEfHutm9Nj+qxzdnwVRLdP0Fe7DQTYu3lGcsNNhg?=
 =?us-ascii?Q?8v5WQIHH+0zMhIArJtNFJNv7ANacmGpP2QLjx/jU/v4lPUiaxPO6l72rkWxU?=
 =?us-ascii?Q?xF9r/bwtb0cR8k6UGqk015DeA5JscLOjRRD0rZoriucVrsPA+SxsrVGOKngW?=
 =?us-ascii?Q?UWbNIkAaiaFUGJn9GaA0OhIR0lUq9d0ASdZDFN9QXQ2xsrOLJIN2j21HBQgm?=
 =?us-ascii?Q?7E2G8h5Ucbw7HuYOcCaydSMw2hsgXlE13blbtzAD0Rtgk6QoIa8z453rBIm4?=
 =?us-ascii?Q?N90wc0cXK65Q9FdOM2zJ7Cgi9JPuyrlloxRkpddUK1WCY7Ry/ZWl3LmoSyzL?=
 =?us-ascii?Q?o5dugULEC49WpwUGL4VOhOcAKYTB5rbhpRudnlb0AMQP2OCDjhNZpFjPxGk/?=
 =?us-ascii?Q?CikUn7Ox//VlVlpDpDhErp71J8C2Bck96ynl6VQ7Xb1IqVJNMBZf7yNCRFri?=
 =?us-ascii?Q?+QDqWwmC0g6qtMLzzcqaeI+MJXVI4p1VDEL4n5jV2kLF48eeqFOxrjbwt97K?=
 =?us-ascii?Q?l+r6dXs3khMw+qHYLKS13QGtUhHMPpwl2aKyO4VwAtsd9xXU4S8x8YESy/4n?=
 =?us-ascii?Q?2bqd1g=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	LLty5+AtH2LuGknat5qkct+91RbMYrYyr7FMsYMGeVo8fNPH5n3sou3DE4dNllNk5Us4rgGxsxGRay2nWF7ZXC3wnq4C7cfPhNyi0HqiCf+gOOR7JQ5K6W5sz8A0gI1twfWFEQOCrpLW9ZkRmrNcoj5rr4930voVxY52enfwcXscHTU3uDCBsQ2Bh71Dg8c8a7g2UusLlwQf940o5IDeWuJk6W0iD/Biunupg45vjmfMw2D9PZMEKMwIjm2KsuuNonU7QOHsQYqY5dhRZ4pCSvngnYxriCqPaA/0zBv/GVoTEPAlo4dwa1fzQSo/V3aGdolgU5I1fpEZVnG6XcXVtahcGCewjPNwjL0/DLhcVrvNPd5wVkOOp2t2hzqIaapFBMwSt2w+woqcAy8eIhlHHLKWPKm0r9QyI0xW019+Hcc0nmBGEr2gkJ2sUU7zBpfH
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 12:58:31.9773
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f9b289b1-dcbf-418f-00df-08de64b64404
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CEB.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7777

When a guest maps pages via XENMEM_add_to_physmap to a GFN that already
has an existing mapping, the old page at that GFN was not being removed,
causing a memory leak. This affects all mapping spaces including
XENMAPSPACE_shared_info, XENMAPSPACE_grant_table, and
XENMAPSPACE_gmfn_foreign. The memory would be reclaimed on domain
destruction.

Add logic to remove the previously mapped page before creating the new
mapping, matching the x86 implementation approach.

Additionally, skip removal if the same MFN is being remapped.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
I'm not sure where to point the Fixes tag to.
---
 xen/arch/arm/mm.c | 32 +++++++++++++++++++++++++++++---
 1 file changed, 29 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 6df8b616e464..b9f1a493dcd7 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -166,10 +166,11 @@ int xenmem_add_to_physmap_one(
     unsigned long idx,
     gfn_t gfn)
 {
-    mfn_t mfn = INVALID_MFN;
+    mfn_t mfn = INVALID_MFN, mfn_old;
     int rc;
     p2m_type_t t;
     struct page_info *page = NULL;
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
 
     switch ( space )
     {
@@ -244,6 +245,33 @@ int xenmem_add_to_physmap_one(
         return -ENOSYS;
     }
 
+    /*
+     * Remove previously mapped page if it was present, to avoid leaking
+     * memory.
+     */
+    mfn_old = gfn_to_mfn(d, gfn);
+
+    if ( mfn_valid(mfn_old) )
+    {
+        if ( is_special_page(mfn_to_page(mfn_old)) )
+        {
+            /* Just unmap, don't free */
+            p2m_write_lock(p2m);
+            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
+                               p2m_invalid, p2m->default_access);
+            p2m_write_unlock(p2m);
+            if ( rc )
+                return rc;
+        }
+        else if ( !mfn_eq(mfn, mfn_old) )
+        {
+            /* Normal domain memory is freed, to avoid leaking memory */
+            rc = guest_remove_page(d, gfn_x(gfn));
+            if ( rc )
+                return rc;
+        }
+    }
+
     /*
      * Map at new location. Here we need to map xenheap RAM page differently
      * because we need to store the valid GFN and make sure that nothing was
@@ -255,8 +283,6 @@ int xenmem_add_to_physmap_one(
         rc = guest_physmap_add_entry(d, gfn, mfn, 0, t);
     else
     {
-        struct p2m_domain *p2m = p2m_get_hostp2m(d);
-
         p2m_write_lock(p2m);
         if ( gfn_eq(page_get_xenheap_gfn(mfn_to_page(mfn)), INVALID_GFN) )
         {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 13:00:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 13:00:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221921.1530034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnyxt-0003GS-Iq; Thu, 05 Feb 2026 13:00:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221921.1530034; Thu, 05 Feb 2026 13:00: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 1vnyxt-0003GL-GD; Thu, 05 Feb 2026 13:00:09 +0000
Received: by outflank-mailman (input) for mailman id 1221921;
 Thu, 05 Feb 2026 13:00: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=oQ2u=AJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vnyxr-0003GD-Fi
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 13:00: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 97cd3c88-0292-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 14:00:06 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso8253565e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 05:00:06 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d345c2sm73957875e9.6.2026.02.05.05.00.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 05:00:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97cd3c88-0292-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770296405; x=1770901205; 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=997/WIIJ8MTQNgWzBlC3gUc9mZhnD3GD5ynDWf1YabM=;
        b=C9nCZFqarHIkd+bnhFTXxdSB/9FJmya3E9sTr3rB23FdSm5TsB0DmdbRSajMDklbwp
         MfWSEEChmuJDUnZepPtxXTY8OeukiCLmrAbZREPgndIkS5KIO08H+MhJZaFyfcUUaUvx
         D2JVkUljfzlF95EP87EA6D3CItmw8+IK8pA+JdbIo5QHRtiIqVYvyAsLhtTMqSO1BWFw
         lVaqp3a95mY4/wxUG+vtrae6svfAx8wUYUXu6FwYi18m8dn6S9zUULjwxooKHtF1JH0b
         xUdjwao8DKeGTMIoAMe44NVbE4ch/GKWUro9HLl890OYstquI6V6ShLJGjPYDfFoah5y
         CGCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770296405; x=1770901205;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=997/WIIJ8MTQNgWzBlC3gUc9mZhnD3GD5ynDWf1YabM=;
        b=RVPKkkjZn9GAH56yx2tlaER3Hyz1JVtcfmilZjEatqT5DV3u/oJHamsI07mbBWtF5M
         Dak8MfqXpJjahAkisyPsMp9kH2+4NT4qZPKSxy5y1VRcKMzrJzRd+9/r7zyWGtFcG+h1
         dvvRWO+TgEBVl9ugqRMMWZQKCZF3JbpGRsKbsriUk3AljU7hE4t9s+OGapSVt3ZB0Xe2
         pZcMhRFc0Y/hAmg4/nA+37io1acpkz9cYo+p2ZiaIuhj2CpZhC8sP64YQcPQtU0/W2YW
         7gIjVAbMWTDXY0x/cOtQF9iIBjAuK/dVWCM2aZh7May1iMnYeZmhn0BcpU+/Xo3vLzMQ
         QhyQ==
X-Forwarded-Encrypted: i=1; AJvYcCX7p9tGsSG6sxCdaCdsx/YwhBj8cTqegLKaKDfUHq1jp9scsWgWsNFODicGZR0CyiS7cusTJdteQoM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwP6sx8FvqVnS2yKE443XZjn1FC7X4MlwnFe3Tcv+3E+xtPUeo9
	nM2oJWshtDdamY5EpTQuNlhE0vFLeXvMJUryj26MXWe05ePVVeNioQ8Q
X-Gm-Gg: AZuq6aLNmMGoq3gNGVv86+ONeZKyJfpxjBagD4Ziv8ox8lfAlLw4uHNmTLeOGW2KCEI
	7X9viCzA/VfwNeH5YBHB/EapUi5dLeuMCCh0Ok+sFYhCARc5ZuhuJqMKq7SCQVNSxQqUTWja+od
	1HpWuQE0m3NReaPxXdosGArQiPy/iGgG6gIrubYq3wcVKw6ijQ7IH2qZiLEhR0xIkkgYEG1vSIP
	biMQwnBzUCZfgHqDQYnfuwE04KiwhfGQFOOn5yDgpENyf96ZXy3NXptSyU/VLej4zbAfPRhVEg4
	Ob/XmIp63FQ2b3GOmfVi7hsxpTrjphTBIK020DUk2hMyca7zZwTTKKsS62CJViQKgF+nxprhu9K
	zfXZ2CEIZHNloQxnwLebnRLy866dbBYnvvIR1f0qmGiHPG3ux+UdbT8BYlinLJSb0pSaDPt+mlj
	c47zu4IV31ysoxuKZ51RxVKR3ehcKdskrhjaQ8rub4DbfcRHoTenmxhQWHzehBhu8=
X-Received: by 2002:a05:600c:820a:b0:480:3338:292d with SMTP id 5b1f17b1804b1-4830e987bb9mr101279155e9.31.1770296405137;
        Thu, 05 Feb 2026 05:00:05 -0800 (PST)
Message-ID: <57269bd4-28fe-42de-b667-d180e6199de6@gmail.com>
Date: Thu, 5 Feb 2026 14:00:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/3] xen/riscv: implement
 p2m_ctx_switch_{to,from}_state()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <2e4cd29f19945e90733ac85e023d53cecbe1d14d.1770036584.git.oleksii.kurochko@gmail.com>
 <0f0a7479-5f12-4803-9348-2c295a1939a4@suse.com>
 <cdc5135b-11fa-45b0-8b62-79141ce3bcb7@gmail.com>
 <ed502ea0-62b6-4cbb-9116-4ba199727fcc@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ed502ea0-62b6-4cbb-9116-4ba199727fcc@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/5/26 1:21 PM, Jan Beulich wrote:
> On 05.02.2026 11:32, Oleksii Kurochko wrote:
>> On 2/4/26 4:02 PM, Jan Beulich wrote:
>>> On 02.02.2026 13:57, Oleksii Kurochko wrote:
>>>> +void p2m_ctx_switch_to(struct vcpu *n)
>>>> +{
>>>> +    struct vcpu_vmid *p_vmid = &n->arch.vmid;
>>>> +    uint16_t old_vmid, new_vmid;
>>>> +    bool need_flush;
>>>> +
>>>> +    if ( is_idle_vcpu(n) )
>>>> +        return;
>>> Shouldn't the other function have such a check, too?
>> Yes, it should. I will add the check.
>>
>>>> +    old_vmid = p_vmid->vmid;
>>>> +    need_flush = vmid_handle_vmenter(p_vmid);
>>> As you're re-using x86'es model, I'm not quite sure why this would be needed.
>>> I don't think we have such in x86; aiui this should be handled while actually
>>> doing the VM entry.
>> I can move this to the end of do_trap().
>>
>> However, isn’t this effectively the same?
>> If a context switch to vCPU n happens, it means that once the trap is fully handled,
>> we will enter vCPU n.
>> The same will be if to put the changes at the end of do_trap() before control
>> will be given to VM.
> Thing is - you will need it at the end of do_trap() (or wherever VM entry is
> going to be dealt with) anyway, to cover situation other than context switch
> as well.

If there are such situation then it makes sense.

>
>>>> +    new_vmid = p_vmid->vmid;
>>>> +
>>>> +#ifdef P2M_DEBUG
>>>> +    printk(XENLOG_INFO, "%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
>>>> +           n, old_vmid, new_vmid, need_flush);
>>>> +#endif
>>>> +
>>>> +    csr_write(CSR_HGATP, construct_hgatp(p2m_get_hostp2m(current->domain),
>>>> +              new_vmid));
>>>> +
>>>> +    if ( unlikely(need_flush) )
>>>> +        local_hfence_gvma_all();
>>>> +
>>>> +    /*
>>>> +     * According to the RISC-V specification, speculation can happen
>>>> +     * during an update of hgatp and vsatp:
>>>> +     *   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 just flush TLBs for VS-Stage and G-stage after both of regs are
>>>> +     * touched.
>>>> +     */
>>>> +    flush_tlb_guest_local();
>>> Which "both regs" does the comment talk about? Doesn't the flush want to come
>>> ...
>>>
>>>> +    /*
>>>> +     * The vsatp register is a VSXLEN-bit read/write register that is
>>>> +     * VS-mode’s version of supervisor register satp, so the following is
>>>> +     * true for VSATP registers:
>>>> +     *  Changing satp.MODE from Bare to other modes and vice versa also takes
>>>> +     *  effect immediately, without the need to execute an SFENCE.VMA
>>>> +     *  instruction. Likewise, changes to satp.ASID take effect immediately.
>>>> +     * Considering the mentioned above and that VS-stage TLB flush has been
>>>> +     * already done there is no need to flush VS-stage TLB after an update
>>>> +     * of VSATP from Bare mode to what is written in `n->arch.vsatp`.
>>>> +     */
>>>> +    csr_write(CSR_VSATP, n->arch.vsatp);
>>> ... after this? Then some of the commentary also doesn't look to be necessary.
>> I think there is no need for a guest TLB flush here or above
>> (i.e. flush_tlb_guest_local()), because:
>> - If CSR_VSATP is set to 0, or changed from 0 to a non-zero value, no speculation
>>     can occur. Therefore, the guest TLB cannot be polluted with unwanted entries,
>>     and no flush is required.
>> - If need_flush is false, it means that no VMID wraparound has occurred.
>>     In that case, the VMID is still unique, so we are safe and no guest TLB flush is
>>     needed.
>>
>> Additionally, it seems that I do not need to introduce flush_tlb_guest_local() at
>> all, since local_hfence_gvma_all() already provides the same functionality.
>> Instead, it probably makes sense to introduce an HFENCE_VVMA() helper as a generic
>> wrapper around the hfence.vvma instruction, and then reuse it inside
>> local_hfence_gvma_all().
> Hmm, I fear I'm confused: hfence.gvma != hfence.vvma ?

I overlooked that it Gvma in local_hfence_gvma_all(). Then it make sense for having
both local_hfence_gvma_all() and flush_tlb_guest_local().
But it is still look like flush_tlb_guest_local() shouldn't be called in p2m context
switch, because of what I mentioned in the first paragraph above what allow not to
introduce flush_tlb_guest_local() now.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 13:23:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 13:23:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221941.1530044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnzKU-0006CF-A0; Thu, 05 Feb 2026 13:23:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221941.1530044; Thu, 05 Feb 2026 13: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 1vnzKU-0006C8-6U; Thu, 05 Feb 2026 13:23:30 +0000
Received: by outflank-mailman (input) for mailman id 1221941;
 Thu, 05 Feb 2026 13:23: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=0WZD=AJ=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vnzKS-0006C2-PW
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 13:23:28 +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 d82820c2-0295-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 14:23:22 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DBBPR03MB10509.eurprd03.prod.outlook.com
 (2603:10a6:10:53a::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 13:23:18 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9587.010; Thu, 5 Feb 2026
 13:23: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: d82820c2-0295-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hVK3HiX35zOsKBqOmiNfRFvCyPaWtmPJ4UHhDpY4WPauXUCvge8KN/QLyiuy80zmxnoh4206tuj6U9eHiMqx/QtqWYrapMPpBHEIIFRvXfqSqNNLRbWv4YRF5zScO87V9sxekmWPK+b2Kq2s0PNbCcXvTIYluuWN9hmytZMRYmpbwt8krHQn8Dl73AU9Z1iYkpqH0O5P4ABpGp6nKIXuv1rreYAFFQiJ6tMMzBuPLK4dgxIvyeyXe9h+WkorwCIs2dDqD7byC5qxxb/f+5EpuTSymuTa2HrqUO/vV2LdBF5RHCbX2/7Ow+UV4SlHo+G8DxGmG88tte077UCvKX1RKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+424zYTCbnK39QLAxSdBNBAsjGebba3u9+iyXnJXYk=;
 b=HaghmbzYUROuoHgOwLtiKmS2cDXqIb4t2qbG2nRQwyVeesiQhWtKGhZSZGJKLTg1GTxPA20iHk/EPzy5Stw5DZKAk2NWVi0nFE0KQCcsAycnrjEfbyaHDVv7FXsZHfglW+VTHeyEJWOdEkw0cr5mx4bWGxIHTQH3xxBEq/HZCb45O8dA90jr41LCx48sCc0V228UOz1jU9xDG0/ZDROJdBUCqlez0LRrVyPzRpqVii8tvNPibEza+fDnDbWnjIVsAhzDnHavtVl0NO8zupXoDRgH65M/tJ0XHEFFrs0IBRPr0tnAWPCuspnBJEAzWTJ/BcfEnbeukpJp9J667I0Geg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-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+424zYTCbnK39QLAxSdBNBAsjGebba3u9+iyXnJXYk=;
 b=sw9yV+5YMAyIEUC+XOsunZ+N8S7VuLHgsefyqNtH4t+f49XKGpddBadN6txJKxEclsR5432W+CR2S6U+AZHkBADCNrFowCicBf6RjX1CItoWBHLiLNlq47mxkRW8mUhwuPeiIFaGt5XK/1dSysflDfE0FtDvbzN1pO6ey5o3Q4fCnjxUIkIKJ+BOJILcHXzAG3E0Ch0clcLyHiE+7SpLBEBKB4Ev/xaP9ncwZE6xUG/BvXK92HkjKBG5PstxASOZZ9e4ykC2bOkaoyn8EiA9wnCB/yKWnSknI3OFFj54eUmeGe/gCAOxodrzK8CmxAmUmIFTZSPL/Bee6M/EVW55KQ==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, Stefano
 Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v5 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Topic: [PATCH v5 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Index: AQHchGj73A4kTs3O/EWyR3N/eFmlXrVyue0AgAGCbQA=
Date: Thu, 5 Feb 2026 13:23:18 +0000
Message-ID: <48a84d44-def9-4181-ac67-5aeb31ffb529@epam.com>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
 <63892f56f227fae75d78e2ef2ee63887e74c523a.1768293759.git.mykyta_poturai@epam.com>
 <6080438F-DB60-4A50-8264-1CD04761B196@arm.com>
In-Reply-To: <6080438F-DB60-4A50-8264-1CD04761B196@arm.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_|DBBPR03MB10509:EE_
x-ms-office365-filtering-correlation-id: 06901a8d-1468-4595-23f8-08de64b9b9f6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?dERmUWs3SUlCM1JUN0JyZHlRYWIzZUl0dXhodFdxSzBsVVpsa2R2M0JUWDZJ?=
 =?utf-8?B?bjdRRkNyU1VWQUFqcHJhWkl6N1hnWldFY0ZoQzRNQWpMQmdEdlFYTjJ1b2hG?=
 =?utf-8?B?bFY5NEV4QnBlbUZxZWV2akFrMG5Qb1R5WGw3R2RSTnd4SzRHS0diNW5iOFY5?=
 =?utf-8?B?aHZpTzg5bnRPTG5EdjhPWHVyNG1OQkxEQWlHZllCRVJYRmdTTFJxMHl3QTln?=
 =?utf-8?B?dndsemRQWEs3V09ja0UzbkU4OFFYeS92eHc3QjZpZDgyMDF5VlFwVmtGMEJF?=
 =?utf-8?B?d1EyTW1IOEhKTWt5c1RXRTZqcnkyYlpMT21xYVFiTmQyR0d4WWc0VVplSkZz?=
 =?utf-8?B?cmJ5QTJURFJ2S0ljbFVtTTNvcnI4Rjd0Y2hxd0QweVkvaTB0OFZZMURlRWlm?=
 =?utf-8?B?d0xIV2tla1JubXl4NmsvZCt2eGNlaG51c1pQZkRnRFdyOHlXOGZiVU5Ya3p1?=
 =?utf-8?B?ZVNBZTVkdFMrc1M5SlIxS1M5R0NhTXoxcGVLN0VYdm9aZS9lL3ErNitJQ3pQ?=
 =?utf-8?B?R01KUW45VGNxWHRQdHEwS25GL2t1K2hJTkNScVVsd1hWOGpUS3RHUTlnQ1Ar?=
 =?utf-8?B?dzV3NlpQZndVTkVacko1bnRCdG1xRHhsY2htTXpHdU1Fc1VyaHNrYzN5cWdS?=
 =?utf-8?B?aE50cHIvcjhNTG1JNWhoMVMwT3AvQVdtbXJ2QUxPM1lIcmRlQ3FuRTZrUGpz?=
 =?utf-8?B?WnRnM2RJOXNuUmZWV3RvZ3FVYndHbjFzSytvZEJrZXJGaFVrVm8zd25mVHVr?=
 =?utf-8?B?bUxjbkRGa2xsUUI4UnUrVjNiMm4yVlVacGo5c1F5bWs4Q1lwazJSYm5FbXhJ?=
 =?utf-8?B?UkQ2VytSRlJmK200UWZ2eWlOSXVwcmpCLzF6NDNubzJmWllmeUF5dlF4dkdv?=
 =?utf-8?B?aGY1RzFyYU1xVmU5bVo0MVE4VWdKTkFqWll4MHIwZHN0VWJFSjVtUWp3b3Uv?=
 =?utf-8?B?SGFRc2NsOWpPcnRZcFdOd2NuY1J6RWlmRVRZT3l4TmgrYlovM2pMa3htR0tD?=
 =?utf-8?B?MDVISGR3SXZpYkJ4TWNRKzZzZnFqZTRKNUdEVHk2ak04WUk1bE9YZmthYlh5?=
 =?utf-8?B?WjJDZFpCT25SUDN1RXNaQzIyOVZKUTlGSnpoYnhINllFbHd5K1BIZTNvMDZN?=
 =?utf-8?B?SWdwc0NwWmZ6enJCd3dBRFBPelI1UUt4cUM3VUIwWWkzOHdpbHZlbGhsb29n?=
 =?utf-8?B?d0NVT3pxLzkxT1FTT3FSOTQ2bHNtWGtOL1VrUlVINlg5eFlRSElIWlU2RzNV?=
 =?utf-8?B?NW5sVXVBUEpWVTZQai9MNFVjN1l6aUo4cytNZFNkSWNyR1N1cVgrL2lQdnRT?=
 =?utf-8?B?WW5jSXpORE5BT05WTnBkK3VqVWdhZFQ1ODUyWnN0c3dOaWgzYU9IZEU4L0hs?=
 =?utf-8?B?eFhQR2ErRkx3eU0xVFRONFdJMGxXOEdIb0M3Q2VYRkdZUDZUTmxZcTRaNVdZ?=
 =?utf-8?B?cXRQU0FEVXNuMUQ2WTkzMnlibFhMQm5ENUtnb1Y5eFlMRTNHTjJzQmZrdXpx?=
 =?utf-8?B?ZmpZMVJBa28reVBwbTRITkpJYlBMcklseTcwSm1OWHMxcjRzaFcxc2dtT3pO?=
 =?utf-8?B?azg5K254c1NwWklOVnN6aFIzQ0xTakpFaytLSWVYTkkzUjU5TGY3Q1lLN01Z?=
 =?utf-8?B?cXBtY01DelMwZUFtR0cwTEtJWDJpNjNSaDVGRzFWWjBuMnQ1RUYxYmQ0TlRF?=
 =?utf-8?B?ajJ3YUR5Q2ZVdG8rVGFMeWlpaUROQ3A4Q3d5WEVmaVVCYVNsM3ZQekIzNUJH?=
 =?utf-8?B?Ykk5Mlk5SHF3V3JmVTV5U00zQzBxQStWTDJSV1pMTXp1ZjhGZXJ6WTRFRTR3?=
 =?utf-8?B?VGxoTjhiUURlMlJDR21jdjJ4SnY5SUY1UzZLeUxvV0JLY1V6MzdVRFg0eEhG?=
 =?utf-8?B?Uy9kelJ6NllSOSt2Um42REJHMUg3dHNtdXdJeFV0NDBjN0tUSm55ZERCTUJC?=
 =?utf-8?B?ZU5MODZBNGh4TFM0QWUzYmVma2lrNk5jWVhnc1ZNNFpHZkRwMm1WV1QvV2x5?=
 =?utf-8?B?NnBxK0R6elh0VzB4NnlTVEJwMFlwTVpxaFlKRG1uRmdvV3FaMDc1UjU3MzM4?=
 =?utf-8?B?N3lQaHRXdERNTWRPMDJDTmJ5bHhad3JscC9yaWN5dzBYTjBLYlI4NWp4bHFt?=
 =?utf-8?B?UjloSjVDWGFsekJGQjNxblBWM0g5ZnVHNTRqZ3dtZHEyRCtyQlk3R0RXNldx?=
 =?utf-8?Q?aYtTGzxWEndy4frUQaEeEp4=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RWN2TEd6REp0UE85TkM0MEhXTGovYlZkckZYMXltbHVnYjVSYkprZ0tKYUp3?=
 =?utf-8?B?TWhka3hQMVhwNzB6a0pMaEl5bzJEVEgzNzFpQzJVbWFzald4bDNZMTJvRU0v?=
 =?utf-8?B?VXRUOVluNElBbnVlby81bmdtbGdYSzBLblVXM3FlcWZOcFFlR1VtTE1uY2xE?=
 =?utf-8?B?Q01DRjdyVTBMa25FUjFwU0pkYmtUT2hmSWNlNWszSk1XUnd4aCtrOFZ1NGwr?=
 =?utf-8?B?eGtIRlJ0TUUwV05wVmE4UnlpSWpreFJuQTNGRlJvOWZGMGtzZ1ZXeHN1dzdF?=
 =?utf-8?B?WWhtaGwwVW1jWi9MaWw0dmRDUXlCdEExZVhzb1hjZ1VEcTBha0JuUlB2R3VV?=
 =?utf-8?B?cVVSQUJHRk80K00yRGMzNE94UE4vU3l4NUFobG84N21vb3Q4OEpHS3FwT1BK?=
 =?utf-8?B?aTk3OWliektiR044UFR4cThzYlQ1MU41MEt1NkdjbVY1Z1Rpd3l6dTdkU2lv?=
 =?utf-8?B?aXVoOE1ROTNtMmRESm9pd09BQ29DQUxKSUxYU29vUXA0QlNLVjY1aitTZHNx?=
 =?utf-8?B?WU9nRDNXbFBWSi8zVVlMMzd4RE9GOUh0b3JMcHJDc0VuL1YxYVljL2tSays3?=
 =?utf-8?B?bVVrVHdNaDl5L3d3eGJuWWMrcXQraHdPSDliMlFUQUxXcnpidjE4Skl3WUtP?=
 =?utf-8?B?T2Rmc1ZaOFRXOWkxY1ZUUTF6OGd3N3JGR2tad1dZRWlpWmRwYi9NOWdGZlQr?=
 =?utf-8?B?aVJwdXZDMGxVZjVUNDNRQnZiVnBuZ0oxV3c4UVZVTytGWm1FM0xDVlZmeDZ0?=
 =?utf-8?B?Uk85WFVMaVNFSW1xODgyUFNDa1lJTlpYeGIyWlM0U2xnZm12dkVHTTZJTDBl?=
 =?utf-8?B?TVM0dkkzNGQwZ09UWGN5QUJxYzQ2K2k2dkt3UjdqR3g1Rm5kRHZERnJBS0Vl?=
 =?utf-8?B?S0xxNWhaWjUrempOLzVPZVo2Sms1QjVnR2ZGbTlXdVZtVEVmMnc1cGM2d3RO?=
 =?utf-8?B?NzJWM0pKbTF4WTFPdFY0eXR5dFNyb0t3cTBYS1p4dyswaXJCaFk5U1pQVlB1?=
 =?utf-8?B?cWRRdGhmeFpQdzlBU2Fpemw3eFl3SnplR0g2STAwL2lldEowS3gxaDVuYnhL?=
 =?utf-8?B?RGhnTnJiSHVVM3A0ekRRc2tIMmxRWnM0Q1BpVlUzSTR2UkJRSUkzeHZQYlNn?=
 =?utf-8?B?VHg3c2d5MmIvRFJ0cU5KQnNkSjVmeWd3dThDWmVuWE9Makl1a0ppa3NaNU90?=
 =?utf-8?B?dThhL2RaTE5XaG4rc1ZnSE5UaVVjMXFuejJINHU4bGZXZ3RVenRsUlNwWmFh?=
 =?utf-8?B?Mzc3Rk9zZTJQMDA3Zks4TnU4a1hvMFFhTVNnWllxekRnakNQZnd4b2ZCZm9q?=
 =?utf-8?B?RXFZNkJvTjM0NHAwT3BBNWJ0a2RBNld0OGlCQWRrOU4vSGgzL0UzcnBZMlhF?=
 =?utf-8?B?dC9xalBTSmVOYjRmbFg1MHUzMG9IRmhJL1Q1NmZWKzE4Nlp6ZkpOZ3YrUVRS?=
 =?utf-8?B?Q3FmMUdxWndxb1FGbThXS0RZSVdIOUZoaXV0ajVCOVc3SWphOHlOVmR1ZTVE?=
 =?utf-8?B?aVNkM0RBd1UvMklGQlFYakxnSEpHL05KWlFpaW5lYVVYb1BYbFhFMGl1bmFY?=
 =?utf-8?B?eFNsVlVGQWw3TS8vT00rOEFKbkxRQ1djQ1FwUUxiTVM3ais1TGQvUFpRYklX?=
 =?utf-8?B?WHpOejUwdFRWTGxhS0M1K0NKT0h1SkQ4eXJQcWZSeVFGbFV4cTd0TUJjSU1y?=
 =?utf-8?B?YVlaSTVoTzg2RGZheVFkaVVPSERSZ2psMGlnSnFvcFNRVm42d0ZNRGp1bGFs?=
 =?utf-8?B?OFVTdHUrZUVXZ3pGWS91UEJqVUltdG5WVUVFVkFFYi9uMjFxR3pTbjY0REpZ?=
 =?utf-8?B?U3FETGVPTnJLamd0ZnhncDVhWXUwL2JVNFd0bmJ1M1VDRVFSUnNTTFp4Ymx5?=
 =?utf-8?B?aHlJN3FTVGpWSlovVmsyRUw1YnlHdWpSTUwzMGp0bTlhaUEvK0JVUGgrTHo0?=
 =?utf-8?B?WFFlZWlOdk54VGk5Q29hZS9BWlJDZHJSbVcwZlBWWTU4QXQ2Q0RNVyt6bHpa?=
 =?utf-8?B?em9rYU5MK0dRU0VJUHBGSmdvemFQcmU3Y0dBaDRST1NNRGlJTE8zajJBbXRB?=
 =?utf-8?B?SU5QY3BnemRjajFDaW5zMS9mZWlVL25JdTZPU0U5UDBRRTlEVTFqSWdnUjYw?=
 =?utf-8?B?ZUNmS01iemh5c2hkTElEejlLcVlQYXZUOGhTV2dheFl2MWVKMWswcStwN24w?=
 =?utf-8?B?VE9LTERQUitCcTBaY3NVTzFNNDRYQU9kN2dhVzRPc3JLMXppOWN3cExNblVu?=
 =?utf-8?B?Q3hyRk1ldjdxMHVtbWNNRys0N1Z6dmFMRUpOMytFRld2YXhGNkFYRTZINGlw?=
 =?utf-8?B?ZHlzV3BJQWNXWThQdVJkSmZvdnV6REJNNnJOZWRBOE1HZzErS0tScFlUalRN?=
 =?utf-8?Q?atGEi6Rz1i2WbW8Q=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <9C2D9F4EE0D6084493D1519F82583040@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: 06901a8d-1468-4595-23f8-08de64b9b9f6
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Feb 2026 13:23:18.4472
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: RqZmIkryEykZS1X0ECG1FPBezyrXSiJAWhpV3bicBCP7XvuMqSTQZhthusvJ+Pky12tJPkePP5tFYEocaVepjA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB10509

T24gMDQuMDIuMjYgMTY6MjAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+IEhpIE15a3l0YS4N
Cj4gDQo+PiBPbiAxMyBKYW4gMjAyNiwgYXQgMDk6NDUsIE15a3l0YSBQb3R1cmFpIDxNeWt5dGFf
UG90dXJhaUBlcGFtLmNvbT4gd3JvdGU6DQo+Pg0KPj4gTW92ZSBJUlFzIGZyb20gZHlpbmcgQ1BV
IHRvIHRoZSBvbmxpbmUgb25lcyB3aGVuIGEgQ1BVIGlzIGdldHRpbmcNCj4+IG9mZmxpbmVkLiBX
aGVuIG9ubGluaW5nLCByZWJhbGFuY2UgYWxsIElSUXMgaW4gYSByb3VuZC1yb2JpbiBmYXNoaW9u
Lg0KPj4gR3Vlc3QtYm91bmQgSVJRcyBhcmUgYWxyZWFkeSBoYW5kbGVkIGJ5IHNjaGVkdWxlciBp
biB0aGUgcHJvY2VzcyBvZg0KPj4gbW92aW5nIHZDUFVzIHRvIGFjdGl2ZSBwQ1BVcywgc28gd2Ug
b25seSBuZWVkIHRvIGhhbmRsZSBJUlFzIHVzZWQgYnkgWGVuDQo+PiBpdHNlbGYuDQo+Pg0KPj4g
U2lnbmVkLW9mZi1ieTogTXlreXRhIFBvdHVyYWkgPG15a3l0YV9wb3R1cmFpQGVwYW0uY29tPg0K
Pj4gLS0tDQo+PiB2NC0+djU6DQo+PiAqIGhhbmRsZSBDUFUgb25saW5pbmcgYXMgd2VsbA0KPj4g
KiBtb3JlIGNvbW1lbnRzDQo+PiAqIGZpeCBjcmFzaCB3aGVuIEVTUEkgaXMgZGlzYWJsZWQNCj4+
ICogZG9uJ3QgYXNzdW1lIENQVSAwIGlzIGEgYm9vdCBDUFUNCj4+ICogdXNlIGluc2lnbmVkIGlu
dCBmb3IgaXJxIG51bWJlcg0KPj4gKiByZW1vdmUgYXNzdW1wdGlvbiB0aGF0IGFsbCBpcnFzIGEg
Ym91bmQgdG8gQ1BVIDAgYnkgZGVmYXVsdCBmcm9tIHRoZQ0KPj4gICBjb21taXQgbWVzc2FnZQ0K
Pj4NCj4+IHYzLT52NDoNCj4+ICogcGF0Y2ggaW50cm9kdWNlZA0KPj4gLS0tDQo+PiB4ZW4vYXJj
aC9hcm0vaW5jbHVkZS9hc20vaXJxLmggfCAgMiArKw0KPj4geGVuL2FyY2gvYXJtL2lycS5jICAg
ICAgICAgICAgIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4geGVu
L2FyY2gvYXJtL3NtcGJvb3QuYyAgICAgICAgIHwgIDYgKysrKw0KPj4gMyBmaWxlcyBjaGFuZ2Vk
LCA2MiBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9pcnEuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9pcnEuaA0KPj4gaW5kZXgg
MDk3ODhkYmZlYi4uYTAyNTBiYWM4NSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS9pbmNs
dWRlL2FzbS9pcnEuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2lycS5oDQo+
PiBAQCAtMTI2LDYgKzEyNiw4IEBAIGJvb2wgaXJxX3R5cGVfc2V0X2J5X2RvbWFpbihjb25zdCBz
dHJ1Y3QgZG9tYWluICpkKTsNCj4+IHZvaWQgaXJxX2VuZF9ub25lKHN0cnVjdCBpcnFfZGVzYyAq
aXJxKTsNCj4+ICNkZWZpbmUgaXJxX2VuZF9ub25lIGlycV9lbmRfbm9uZQ0KPj4NCj4+ICt2b2lk
IHJlYmFsYW5jZV9pcnFzKHVuc2lnbmVkIGludCBmcm9tLCBib29sIHVwKTsNCj4+ICsNCj4+ICNl
bmRpZiAvKiBfQVNNX0hXX0lSUV9IICovDQo+PiAvKg0KPj4gICAqIExvY2FsIHZhcmlhYmxlczoN
Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaXJxLmMgYi94ZW4vYXJjaC9hcm0vaXJxLmMN
Cj4+IGluZGV4IDcyMDRiYzJiNjguLmEzMmRjNzI5ZjggMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJj
aC9hcm0vaXJxLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9pcnEuYw0KPj4gQEAgLTE1OCw2ICsx
NTgsNTggQEAgc3RhdGljIGludCBpbml0X2xvY2FsX2lycV9kYXRhKHVuc2lnbmVkIGludCBjcHUp
DQo+PiAgICAgIHJldHVybiAwOw0KPj4gfQ0KPj4NCj4+ICtzdGF0aWMgaW50IGNwdV9uZXh0Ow0K
Pj4gKw0KPj4gK3N0YXRpYyB2b2lkIGJhbGFuY2VfaXJxKGludCBpcnEsIHVuc2lnbmVkIGludCBm
cm9tLCBib29sIHVwKQ0KPj4gK3sNCj4+ICsgICAgc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJx
X3RvX2Rlc2MoaXJxKTsNCj4+ICsgICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4+ICsNCj4+ICsg
ICAgQVNTRVJUKCFjcHVtYXNrX2VtcHR5KCZjcHVfb25saW5lX21hcCkpOw0KPj4gKw0KPj4gKyAg
ICBzcGluX2xvY2tfaXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOw0KPj4gKyAgICBpZiAoIGxp
a2VseSghZGVzYy0+YWN0aW9uKSApDQo+PiArICAgICAgICBnb3RvIG91dDsNCj4+ICsNCj4+ICsg
ICAgaWYgKCBsaWtlbHkodGVzdF9iaXQoX0lSUV9HVUVTVCwgJmRlc2MtPnN0YXR1cykgfHwNCj4+
ICsgICAgICAgICAgICAgICAgdGVzdF9iaXQoX0lSUV9NT1ZFX1BFTkRJTkcsICZkZXNjLT5zdGF0
dXMpKSApDQo+PiArICAgICAgICBnb3RvIG91dDsNCj4+ICsNCj4+ICsgICAgLyoNCj4+ICsgICAg
ICogU2V0dGluZyBhZmZpbml0eSB0byBhIG1hc2sgb2YgbXVsdGlwbGUgQ1BVcyBjYXVzZXMgdGhl
IEdJQyBkcml2ZXJzIHRvDQo+PiArICAgICAqIHNlbGVjdCBvbmUgQ1BVIGZyb20gdGhhdCBtYXNr
LiBJZiB0aGUgZHlpbmcgQ1BVIHdhcyBpbmNsdWRlZCBpbiB0aGUgSVJRJ3MNCj4+ICsgICAgICog
YWZmaW5pdHkgbWFzaywgd2UgY2Fubm90IGRldGVybWluZSBleGFjdGx5IHdoaWNoIENQVSB0aGUg
aW50ZXJydXB0IGlzDQo+PiArICAgICAqIGN1cnJlbnRseSByb3V0ZWQgdG8sIGFzIEdJQyBkcml2
ZXJzIGxhY2sgYSBjb25jcmV0ZSBnZXRfYWZmaW5pdHkgQVBJLiBTbw0KPj4gKyAgICAgKiB0byBi
ZSBzYWZlIHdlIG11c3QgcmVyb3V0ZSBpdCB0byBhIG5ldywgZGVmaW5pdGVseSBvbmxpbmUsIENQ
VS4gSW4gdGhlDQo+PiArICAgICAqIGNhc2Ugb2YgQ1BVIGdvaW5nIGRvd24sIHdlIG1vdmUgb25s
eSB0aGUgaW50ZXJydXB0IHRoYXQgY291bGQgcmVzaWRlIG9uDQo+PiArICAgICAqIGl0LiBPdGhl
cndpc2UsIHdlIHJlYXJyYW5nZSBhbGwgaW50ZXJydXB0cyBpbiBhIHJvdW5kLXJvYmluIGZhc2hp
b24uDQo+PiArICAgICAqLw0KPj4gKyAgICBpZiAoICF1cCAmJiAhY3B1bWFza190ZXN0X2NwdShm
cm9tLCBkZXNjLT5hZmZpbml0eSkgKQ0KPj4gKyAgICAgICAgZ290byBvdXQ7DQo+IA0KPiBJIGFt
IGEgYml0IGxvc3QgaGVyZSBvbiB3aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIGRvIGluIHRoZSBjYXNl
IHdoZXJlDQo+IGEgY3B1IGlzIGNvbWluZyB1cCBoZXJlLCBpdCBmZWVscyBsaWtlIHlvdSBhcmUg
dHJ5aW5nIHRvIGNoYW5nZSB0aGUNCj4gYWZmaW5pdHkgb2YgYWxsIGludGVycnVwdHMgaW4gdGhp
cyBjYXNlIHRvIGN5Y2xlIGV2ZXJ5dGhpbmcuDQo+IElzIGl0IHJlYWxseSB3aGF0IGlzIGV4cGVj
dGVkID8NCj4gSWYgYWZmaW5pdHkgd2FzIHNldCBieSBhIFZNIG9uIGl0cyBpbnRlcnJ1cHRzLCBJ
IHdvdWxkIG5vdCBleHBlY3QNCj4gWGVuIHRvIHJvdW5kLXJvYmluIGV2ZXJ5dGhpbmcgZWFjaCB0
aW1lIGEgY3B1IGNvbWVzIHVwLg0KPiANCg0KVGhlIGlkZWEgaXMgdG8gZXZlbmx5IHNwcmVhZCBp
bnRlcnJ1cHRzIGJldHdlZW4gQ1BVcyB3aGVuIHRoZSBuZXcgb25lcyANCmFyZSBiZWluZyBicm91
Z2h0IG9ubGluZS4gVGhpcyBpcyBuZWVkZWQgdG8gcHJldmVudCBYZW4tYm91bmQgSVJRcyBmcm9t
IA0KcGlsaW5nIHVwIG9uIENQVSAwIHdoZW4gb3RoZXIgY29yZXMgYXJlIGJlaW5nIG9mZmxpbmVk
IGFuZCB0aGVuIG9ubGluZWQgDQpiYWNrLiBJdCBzaG91bGRu4oCZdCBtZXNzIHdpdGggZ3Vlc3Qg
YWZmaW5pdGllcywgYXMgdGhlIGNvZGUgc2tpcHMgDQpldmVyeXRoaW5nIHRoYXQgaXMgYXNzaWdu
ZWQgdG8gZ3Vlc3RzIGFuZCBsZWF2ZXMgaXQgdG8gYmUgaGFuZGxlZCBieSB0aGUgDQpzY2hlZHVs
ZXIvdmdpYy4gUGVyZm9ybWFuY2Utd2lzZSwgaXQgc2hvdWxkIGFsc28gYmUgb2theSwgYXMgZnJv
bSB3aGF0IA0KSeKAmXZlIHNlZW4sIHRoZXJlIGFyZSBub3QgbWFueSBpbnRlcnJ1cHRzIHVzZWQg
YnkgWGVuLCBhbmQgSSBleHBlY3QgQ1BVIA0KaG90cGx1ZyBvcGVyYXRpb25zIHRvIGJlIGZhaXJs
eSBpbmZyZXF1ZW50Lg0KDQo+PiArDQo+PiArICAgIGNwdV9uZXh0ID0gY3B1bWFza19jeWNsZShj
cHVfbmV4dCwgJmNwdV9vbmxpbmVfbWFwKTsNCj4+ICsgICAgaXJxX3NldF9hZmZpbml0eShkZXNj
LCBjcHVtYXNrX29mKGNwdV9uZXh0KSk7DQo+PiArDQo+PiArb3V0Og0KPj4gKyAgICBzcGluX3Vu
bG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7DQo+PiArfQ0KPj4gKw0KPj4gK3Zv
aWQgcmViYWxhbmNlX2lycXModW5zaWduZWQgaW50IGZyb20sIGJvb2wgdXApDQo+PiArew0KPj4g
KyAgICBpbnQgaXJxOw0KPj4gKw0KPj4gKyAgICBpZiAoIGNwdW1hc2tfZW1wdHkoJmNwdV9vbmxp
bmVfbWFwKSApDQo+PiArICAgICAgICByZXR1cm47DQo+PiArDQo+PiArICAgIGZvciAoIGlycSA9
IE5SX0xPQ0FMX0lSUVM7IGlycSA8IE5SX0lSUVM7IGlycSsrICkNCj4+ICsgICAgICAgIGJhbGFu
Y2VfaXJxKGlycSwgZnJvbSwgdXApOw0KPj4gKw0KPj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQ
SQ0KPj4gKyAgICBmb3IgKCBpcnEgPSBFU1BJX0JBU0VfSU5USUQ7IGlycSA8IEVTUElfTUFYX0lO
VElEOyBpcnErKyApDQo+PiArICAgICAgICBiYWxhbmNlX2lycShpcnEsIGZyb20sIHVwKTsNCj4+
ICsjZW5kaWYNCj4+ICt9DQo+PiArDQo+PiBzdGF0aWMgaW50IGNwdV9jYWxsYmFjayhzdHJ1Y3Qg
bm90aWZpZXJfYmxvY2sgKm5mYiwgdW5zaWduZWQgbG9uZyBhY3Rpb24sDQo+PiAgICAgICAgICAg
ICAgICAgICAgICAgICAgdm9pZCAqaGNwdSkNCj4+IHsNCj4+IEBAIC0xNzIsNiArMjI0LDggQEAg
c3RhdGljIGludCBjcHVfY2FsbGJhY2soc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuZmIsIHVuc2ln
bmVkIGxvbmcgYWN0aW9uLA0KPj4gICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJVbmFi
bGUgdG8gYWxsb2NhdGUgbG9jYWwgSVJRIGZvciBDUFUldVxuIiwNCj4+ICAgICAgICAgICAgICAg
ICAgICAgY3B1KTsNCj4+ICAgICAgICAgIGJyZWFrOw0KPj4gKyAgICBjYXNlIENQVV9PTkxJTkU6
DQo+PiArICAgICAgICByZWJhbGFuY2VfaXJxcyhjcHUsIHRydWUpOw0KPj4gICAgICB9DQo+Pg0K
Pj4gICAgICByZXR1cm4gbm90aWZpZXJfZnJvbV9lcnJubyhyYyk7DQo+PiBkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gvYXJtL3NtcGJvb3QuYyBiL3hlbi9hcmNoL2FybS9zbXBib290LmMNCj4+IGluZGV4
IDdmM2NmYTgxMmUuLmUxYjlmOTQ0NTggMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vc21w
Ym9vdC5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vc21wYm9vdC5jDQo+PiBAQCAtNDI1LDYgKzQy
NSwxMiBAQCB2b2lkIF9fY3B1X2Rpc2FibGUodm9pZCkNCj4+DQo+PiAgICAgIHNtcF9tYigpOw0K
Pj4NCj4+ICsgICAgLyoNCj4+ICsgICAgICogTm93IHRoYXQgdGhlIGludGVycnVwdHMgYXJlIGNs
ZWFyZWQgYW5kIHRoZSBDUFUgbWFya2VkIGFzIG9mZmxpbmUsDQo+PiArICAgICAqIG1vdmUgaW50
ZXJydXB0cyBvdXQgb2YgaXQNCj4+ICsgICAgICovDQo+PiArICAgIHJlYmFsYW5jZV9pcnFzKGNw
dSwgZmFsc2UpOw0KPj4gKw0KPiANCj4gSSB3b3VsZCBleHBlY3QgdGhpcyB0byBvbmx5IGJlIHVz
ZWZ1bCB3aGVuIEhPVFBMVUcgaXMgZW5hYmxlZCwgbWF5YmUNCj4gd2UgY291bGQgaGF2ZSBhIHN0
YXRpYyBpbmxpbmUgZG9pbmcgbm90aGluZyB3aGVuIEhPVFBMVUcgaXMgbm90IG9uDQo+IGFuZCBv
bmx5IGRvIHNvbWV0aGluZyBpZiBIT1RQTFVHIGlzIGVuYWJsZWQgaGVyZSA/DQo+IA0KDQpZZXMg
SSB3aWxsIGFkZCB0aGlzIGluIHRoZSBuZXh0IHZlcnNpb24uDQoNCj4gQ2hlZXJzDQo+IEJlcnRy
YW5kDQo+IA0KPj4gICAgICAvKiBSZXR1cm4gdG8gY2FsbGVyOyBldmVudHVhbGx5IHRoZSBJUEkg
bWVjaGFuaXNtIHdpbGwgdW53aW5kIGFuZCB0aGUNCj4+ICAgICAgICogc2NoZWR1bGVyIHdpbGwg
ZHJvcCB0byB0aGUgaWRsZSBsb29wLCB3aGljaCB3aWxsIGNhbGwgc3RvcF9jcHUoKS4gKi8NCj4+
IH0NCj4+IC0tIA0KPj4gMi41MS4yDQo+IA0KDQotLSANCk15a3l0YQ==


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 13:49:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 13:49:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221964.1530053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnzjQ-0000kk-1S; Thu, 05 Feb 2026 13:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221964.1530053; Thu, 05 Feb 2026 13: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 1vnzjP-0000kd-Up; Thu, 05 Feb 2026 13:49:15 +0000
Received: by outflank-mailman (input) for mailman id 1221964;
 Thu, 05 Feb 2026 13: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vnzjP-0000kX-Ii
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 13:49:15 +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 73bf04f2-0299-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 14:49:12 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-42fb2314f52so654394f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 05:49:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e250b2sm15746796f8f.8.2026.02.05.05.49.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 05:49:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 73bf04f2-0299-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770299352; x=1770904152; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DWJuRUBRC+KFG6gKJNVY2K6ME6JbpPwoYQMCXiDAsek=;
        b=PiWcq31Q+34Jn3suXK64fzMMjaP3bUBvI6LNP7RRLLNB5kVlghBfRoEhhlpBcrgMFm
         uQlJB2cAVhdbyh8maDyrE7aizH5jd/Qnvz08R32UvfQnDMjy937kwqX59fXM0fBVuCDf
         lbT2x3VjYAyS2Ryerv0zuVwA5WfPjeBrVFq0OO9oFlPPqYh4Ci7FIzS7kmh25M8B9Sz0
         j74ok0gsSAwPNRnAKlewj9j8FnSFPx11o+BjnoQhzE+Y775dL7/jE5MixZ6ab2wNycRD
         LH2igB43HhBXFLT3wRvT9Q0e+k/ZIpdzxWYEHlFK13vaGnp8jkwqocb3H14KDlgS/RCA
         w3mA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770299352; x=1770904152;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DWJuRUBRC+KFG6gKJNVY2K6ME6JbpPwoYQMCXiDAsek=;
        b=xGw3iTkSruswUrkrDOe/qE1ddCIyGyn2bHaXSRwesMb1Kitkd7FZWjiW2bZSlT9jyc
         vD5fdJLbN/o/tKDNm0lTHnc9RpjiTsGkYIqjRkq5FDUhKenBcmpuyE4ir+3ZYXrynqzp
         mqTLg5WZtQ5xKj7neI/7PZOs+1FGilczMxlAz2US/phDUWXs5q4xjeOg86PO08apzusx
         T1zCx9SAJfYwj4Ujm7PMqTA4ueKerluXwR4a58BHZZEwNgMAQrK3vbrvVhvOJfFvtOGz
         vxKAO857/tws8hF54tdLumxZ+uRhAIoziaY61vZuPPcQD2xaBSW4QeZa3dOssPNtXTDL
         o0jw==
X-Forwarded-Encrypted: i=1; AJvYcCW1vdXlGxxK11qJTogj9N+zi9q0IAaUpF5MAfGas39a4kTLEKwqrMup533S663sfuEU70uCJFztw5c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGu+TAL9l7nlZIPGnp3+abnYzFzOEVkucJtPBm2v0QiUhpo8ao
	nfY2qjh8ETM2wRrY5jc39WkgIbOYZd1QZBe9OAeKYBtOGvmFSZzxKAL4hUHUp9aUxQ==
X-Gm-Gg: AZuq6aJdxb/g8SV9aqEHwwyiP9DgVb3gD/lzTEj12hXec7ovYyDChvQ8G2vtTwFArEN
	g/CqpEgRVNNCL87fctiLKNB6vaT42kEUlRRvpdQviHLd8wa5u2qqUUmuviGEKUSy4y1SKnXD2Sc
	PVsV5W9Z5D55mJBWSehn6lEChRzbaOL0/Czf7RdYROv/XyWd61VxSRDyrp/Fikc7kior7VJXJ4L
	cb3Q3b1SXNFU/8ntvs45a6T9TMPeKNCoCBJ9Y4g+LQlNkEZ38Soowk4OmjZ9LWe9UhjsqZY+QNX
	qB0KvtNKMs9SIu0t5HCtTMzL3mEK3+JBWGRzEQp1ebUy2Bgxtiy//cZoAjkw2+xu9L/PnfrrNQV
	VwCqorbxpw6O4gTQxlwKnuGYy0DH7/ES0aWlIS3JF/vvR+LYb5N3XUwiityxbWkCuwMv5uIHNOA
	E9dBsQf6lcYUrScFMYhiT/Jahh98HKLMGSOh070apa/bBgljHiLH4a7Df2GZJXognbKwG3t9mOG
	ZQ=
X-Received: by 2002:a05:6000:2303:b0:435:e486:af82 with SMTP id ffacd0b85a97d-4361805d41emr10191547f8f.45.1770299351572;
        Thu, 05 Feb 2026 05:49:11 -0800 (PST)
Message-ID: <828feb7a-2a5b-4306-8da9-162df9ecfee3@suse.com>
Date: Thu, 5 Feb 2026 14:49:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Fix memory leak in xenmem_add_to_physmap_one
To: Michal Orzel <michal.orzel@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <20260205125820.116555-1-michal.orzel@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260205125820.116555-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 13:58, Michal Orzel wrote:
> When a guest maps pages via XENMEM_add_to_physmap to a GFN that already
> has an existing mapping, the old page at that GFN was not being removed,
> causing a memory leak. This affects all mapping spaces including
> XENMAPSPACE_shared_info, XENMAPSPACE_grant_table, and
> XENMAPSPACE_gmfn_foreign. The memory would be reclaimed on domain
> destruction.
> 
> Add logic to remove the previously mapped page before creating the new
> mapping, matching the x86 implementation approach.
> 
> Additionally, skip removal if the same MFN is being remapped.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
> I'm not sure where to point the Fixes tag to.
> ---
>  xen/arch/arm/mm.c | 32 +++++++++++++++++++++++++++++---
>  1 file changed, 29 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index 6df8b616e464..b9f1a493dcd7 100644
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -166,10 +166,11 @@ int xenmem_add_to_physmap_one(
>      unsigned long idx,
>      gfn_t gfn)
>  {
> -    mfn_t mfn = INVALID_MFN;
> +    mfn_t mfn = INVALID_MFN, mfn_old;
>      int rc;
>      p2m_type_t t;
>      struct page_info *page = NULL;
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
>  
>      switch ( space )
>      {
> @@ -244,6 +245,33 @@ int xenmem_add_to_physmap_one(
>          return -ENOSYS;
>      }
>  
> +    /*
> +     * Remove previously mapped page if it was present, to avoid leaking
> +     * memory.
> +     */
> +    mfn_old = gfn_to_mfn(d, gfn);
> +
> +    if ( mfn_valid(mfn_old) )
> +    {
> +        if ( is_special_page(mfn_to_page(mfn_old)) )
> +        {
> +            /* Just unmap, don't free */
> +            p2m_write_lock(p2m);
> +            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
> +                               p2m_invalid, p2m->default_access);
> +            p2m_write_unlock(p2m);
> +            if ( rc )
> +                return rc;
> +        }
> +        else if ( !mfn_eq(mfn, mfn_old) )
> +        {
> +            /* Normal domain memory is freed, to avoid leaking memory */
> +            rc = guest_remove_page(d, gfn_x(gfn));
> +            if ( rc )
> +                return rc;
> +        }
> +    }

This new code and what follows below it are not inside a single locked region,
hence the cleanup done above may well have been "undone" again by the time the
P2M lock is acquired below. That locking may not be apparent in the x86
variant when merely looking at functions used. There's a large comment,
though, explaining how we actually (ab)use the simplified locking model
(compared to what was once intended, but never carried out).

Further, doesn't P2M entry type influence what needs doing here, including
possibly rejecting the request? x86 refuses to replace p2m_mmio_direct entries
by this means, but seeing that Arm has XENMAPSPACE_dev_mmio, this case may
need handling, but the handling may need to be different from what you do
above. (Just to mention: Presumably on Arm it's no different from x86: An MMIO
page may or may not pass an mfn_valid() check.)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 14:01:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 14:01:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221994.1530063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vnzun-0003TI-4g; Thu, 05 Feb 2026 14:01:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221994.1530063; Thu, 05 Feb 2026 14:01: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 1vnzun-0003TA-27; Thu, 05 Feb 2026 14:01:01 +0000
Received: by outflank-mailman (input) for mailman id 1221994;
 Thu, 05 Feb 2026 14:00: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=83Xm=AJ=citrix.com=christian.lindig@srs-se1.protection.inumbo.net>)
 id 1vnzul-0003SQ-P8
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 14:00:59 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 184f1b92-029b-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 15:00:57 +0100 (CET)
Received: from IA1PR03MB8099.namprd03.prod.outlook.com (2603:10b6:208:596::22)
 by SA1PR03MB6371.namprd03.prod.outlook.com (2603:10b6:806:1b6::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Thu, 5 Feb
 2026 14:00:51 +0000
Received: from IA1PR03MB8099.namprd03.prod.outlook.com
 ([fe80::4556:a2ee:3c19:2ce2]) by IA1PR03MB8099.namprd03.prod.outlook.com
 ([fe80::4556:a2ee:3c19:2ce2%6]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 14: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: 184f1b92-029b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rD4evPf3y9NFqvpe7fk6/Xn9Epw8oalgH70R5ORAG+QxuFfO8xFhfxx7YUkAIw9HWOyOLfBuEWLU2wGPZlK3YxCftbShut7Mdg6KYydiGUKY1iDplfsMIYTEJm/ykO1rTCU4oSUqHM9tmnaTbnLD+Z4Kbbr2LXNz+UgF8/AutN9iPcwufFXE5W3Z1YFQK+BcAI9EP059Y6YGYiWsZbvCDR6Iq3Zj4smiTHLrDd+xgUmc//0012KUjtk/3pWyTVN7ZuiTOeei7SUjdFDvZyEa2DEqpW3bAx9KvAMYzTN1jurTUG1pNNLDmGZ3gNW2GYeqsS+QUyrMSiQzsd7dq1AIEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MjYYIh7kcfj4y0kz4QRPgWdm7DZlp413o/MTa1EZDzY=;
 b=oZgBT4W0F+szTq3pY1hnFdSFZteZVcNdRxTggexilSpt7/UEEK/s4gkuYxeHQeDI1RPaUU+eeEPEhv8lGTJSR+TeNe0F74g35tNys7cDBUR2i9FwgEiADo+/XLQNGIXazUBWfiiPJXkY9VAUL4HcODXD3Qwmt+GK/qAHXjv884NTJnxV1ipF6bKvDNPUrpp6CLOrxPq/ICth+B2NO0IXRu34Zja0RkcQy0h07tT6EsTNB1Ts4RpmGorNt5WPKJvItHOJqrPF7+h+xDDRPXJicVEJPobzc44ZUVx9rFEeMOtPZTcVm6XGf5hsvoPcgmKPiNMjZ5/TS05NOKxgWw38RA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MjYYIh7kcfj4y0kz4QRPgWdm7DZlp413o/MTa1EZDzY=;
 b=hwqEZ/EtGmeyu/L3PYXp6eDgif4OIX4n+Pyyqp87QdKqXroz/9X4Afe1SrhvwYvAC/L8FxDq72VJN+SJO8wAPuus1yA11Vord+KdjSiEgTYVD4ke09dPT7l56O3dldwfaMEYH8/xhk5gVXb5bgxYK924Tpg9yqI/FcSlLwb+FrA=
From: Christian Lindig <christian.lindig@citrix.com>
To: Edwin Torok <edwin.torok@citrix.com>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, David
 Scott <dave@recoil.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] Xenctrl.domain_setmaxmem: fix 32-bit truncation bug
Thread-Topic: [PATCH] Xenctrl.domain_setmaxmem: fix 32-bit truncation bug
Thread-Index: AQHclqdHSMQLCJJwBEO6hgFHUkkYV7V0IlGA
Date: Thu, 5 Feb 2026 14:00:51 +0000
Message-ID: <C971AF3D-D465-47DF-AF95-FF065A053D9B@citrix.com>
References:
 <7f0c73c140b53cf0777437b46d0a0fda496b48b8.1770299489.git.edwin.torok@citrix.com>
In-Reply-To:
 <7f0c73c140b53cf0777437b46d0a0fda496b48b8.1770299489.git.edwin.torok@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.100.1.1.5)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: IA1PR03MB8099:EE_|SA1PR03MB6371:EE_
x-ms-office365-filtering-correlation-id: b8b7c185-08b6-426f-a713-08de64bef8fd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?V1Q2Ti9WdmNjanpCRTA3RUZhWFkrckp5T0xZbW55WFU4b3ZoVWRuQlB6N2VJ?=
 =?utf-8?B?ZXBWSk8zUFBrM1hsZ3NFeFFoY1BLSld5WHZ5d3lOcnFoVnM5T3lJZ3NMNXlm?=
 =?utf-8?B?U2dhTWtFT3V6aWZRZzBuSkxHWE9lSFBCcEVtU2o4NFBTOG9mdWo0eFo3RHNi?=
 =?utf-8?B?MFZ2YTFjdHFJZXYxMmszVklGbXQ1L1dHOFVWa0J5czBNWjJHMjJWQ2RYVlNx?=
 =?utf-8?B?cjQ0OTcreVNYck83ang4WEY1ei96TUFKNlczVTFURE9aZDFWbDUwVGx1aVBW?=
 =?utf-8?B?dndVZ0V5Rk84NmduRkFFdXB3SGRhWm0zVDJFM0VwbUtJdmdoamt3anZEWTJs?=
 =?utf-8?B?MTNrbnhJbTM0RTg5VXBscW9KblNMa0pNS3Z5Y0xybjdzYWJyZHRmK3lMZGti?=
 =?utf-8?B?QzFlNFFGVFR3ajRZb09TNkdrK285NEdkTlNvMTM2V3ZBTEsyUmE0VW1qWThw?=
 =?utf-8?B?dmgwZW1CS0dLWktkZUhtbit2VFhKSGtqcnorRk13QmJsR3dJM1VHNXhWckhq?=
 =?utf-8?B?Z0FZNldtRDJjRkVKT2lQN0N3azVzVHV3MkdFMzdndVN4akRUZTdmTkpNYVFz?=
 =?utf-8?B?eFlkdTlveVU1SWlFb3NxYjVCb0kwQ0Jza3BrM2E4dmFlakJVaHNYbUZvbDZw?=
 =?utf-8?B?RUdoY0UyUlZRWVhiL01INmYrWTREZWpJR0h1bk5nWWx2cUpmVzVCRkliczh4?=
 =?utf-8?B?RnByWldqcVNlRFF6alAxaGZGbitZcTU1UXU4NGQycjdOT3J3VUZBM1hlSzhu?=
 =?utf-8?B?amhLOUNmcGJkelduOE9EZFl3YmdKTloyWkU3MDIvRnpLQnUrYndGTVJ1OUZS?=
 =?utf-8?B?NnQvRUtqbnlyUlhrbWErbVE4NndrQ1ZFZjdyMHhxa1ZZN3k2SVNpdXBRSWZJ?=
 =?utf-8?B?d3FWQVcxaU5WTDJkT1lseUlBQ1F5c0VlOTQ5WnBhR3BqZDY0ZURKWGloYS9R?=
 =?utf-8?B?R3BSZG9VQjB3Yng3NElMN0I0VGc5ZGpicUoyTlJDNi8ybE1oQ3N5RDVQcVZG?=
 =?utf-8?B?YkttQ2dvYzA1c200SEJlSlNlYTZrd1hCU0J5OUhmVVB3cEhPeHZZVy9DTXZz?=
 =?utf-8?B?ZzBnTThPQ3lBeDhTSzlNdHRXS2hxSldaOWdHYUs2UVZRSmo0Qkd2enJ0L3NI?=
 =?utf-8?B?am5kM3FnTDdhQ09Tb25lSTFXZmFGeUo3T05rWnpXdzNNdjlYdzUzWThtTmVS?=
 =?utf-8?B?K0N0eWVaNFJZdmVrYjRsNWpVQldUM1NjbzU1eW9HcFQzQTEyMzBUTjlhbDVh?=
 =?utf-8?B?UG9IaE5oMlBKWVdvV0U1UWFaVGdDRkVJQlBSTW5XOVFicHQreFVtV0hKSHQv?=
 =?utf-8?B?WThpSmpDK2pYY0Z5bnBiSzFSQkI2RHY0V05BaXRMT0FRUXZDS3pzUENoVkZB?=
 =?utf-8?B?bzVMR3VTSHJPaXFHTG9VL2FwWXVleHFpeEEwUnU5d0R6T0lFL3l4cklvM00r?=
 =?utf-8?B?TkhYaTZDalgvMitPUmRQUGNjSmVWYjMxU0Y1Z2tBSVdadEVHL0pVTFUwc0Y0?=
 =?utf-8?B?ZkVLN1JWaTlMQVhQZTFWR0Z3ZTd2MjdhYmZmQ2JSNU5xcWZNbjFKWGtZMXFR?=
 =?utf-8?B?N2E3L0x3Y2xVcGNMQTBka0syUHNZeDh2eU5wT1lIdHZIY2dRQ2JJb2o2ZXpr?=
 =?utf-8?B?dEZxM3UyaDFqcEtEZzYvSkV0YkJrSUVhd3kzd05MbCtGVk9Pc1FoMHZsdW1C?=
 =?utf-8?B?TmFkY0UzcXBIdWIrcDlKdVRMSXhXSGlxZFVtTEJqMmRVZlk1NmFCQUF1R254?=
 =?utf-8?B?UTdKQ0JUOEl2Q2lRR0w5NGQzU3lVRW94UmExQXJhTXpRcXJJdERzMlM2dDdW?=
 =?utf-8?B?cGFiWDd1NFR2UmVKWlNXMzdtN3VYTUNOWGNoYVdwWktQQXVnc0pVcXpYLzQ1?=
 =?utf-8?B?YjROMUJJL24yclUvc0pldGpuVzd1a0JoNU5UekNYaVhLZzJ3dVMzOTZjWmxs?=
 =?utf-8?B?VEdFSDBmTDJCUGdyM3QyWWkyekR4ZkFiZkJ2dE94aW1KUkhYcWhldEI2cjRZ?=
 =?utf-8?B?ZUxKMzRkaityMlpwUWhIYUNvazhBMGFrWDlJTlpWK3FCTVF5c1JpTDRNQ0Zp?=
 =?utf-8?B?aGEybHkxQ3JKOE1GREx3azliNFc2QTJWV3IzR2tnL0RJSUoybkRjNkhRUjNL?=
 =?utf-8?B?WWRoaXlFbGdLQ0dYQUVBa1FZcXNmK0pFT1FpekhCZEN2eUdObFNXbWJtNElq?=
 =?utf-8?Q?b6K5k9W2oMJUYdf53GkB22E=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8099.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UzVVd2pyTklnN1VJZlVoYVByMmRPQkpldUgvNy9KZHVPem1HaW9NL0ovc0Fm?=
 =?utf-8?B?cGZzaGlJdGowbTRnZnUyS3R6clZCanFuVjM3RDhKeHlkaTNVZHBNeVdFT3o1?=
 =?utf-8?B?b3VKa0RSSmQ5ZFFISzQ0S3lncTE2a2hRVWdwbE5HRzhmR0tzSHdQU2lJYnZz?=
 =?utf-8?B?UDJubTVwMEo0RnU5NFo3djRmTXhOYS9DeTFiYVF6cmRYM05ySDRtZ2JKWWtI?=
 =?utf-8?B?VXFuOVVkdmdWNGJ3eWVpdVhaOVRYb3E1VFppZlNZQ2p4L25vWTVjS3RLRUlE?=
 =?utf-8?B?dWRpN041eXB0TGlOMUM0MDlOdWR3QnQ5Q2Y3MGdKNVo2UHh4U1R6UHk5OWdM?=
 =?utf-8?B?NmFyZDVyQ2o3cisrYVVXMWtZTlZnRS9Ob0UxcW9jVXlZMXRFeE92aVVXOWsv?=
 =?utf-8?B?a0FjemxPczF5YmE4U0lzcm5JNFMvdUlneEkwd3REcFB4SUhHaFFmb0FmUFA4?=
 =?utf-8?B?R2dyNWpwWEZqRjBTRnVwdDRSbkNyZTlzQ2l6TDBEajNHM1MxbXZqemU4NHhl?=
 =?utf-8?B?eWJMbnBEeENwWVkvbWtEVFFsRG05ZnNqMUNWWHNleG1HVDNnSDJuQ3puU2lT?=
 =?utf-8?B?WDhXMHk1ekxxK1F3d1VlaVFvRkFSOFROMndiS2dNOTlHOFN0bUZMc00wNWhv?=
 =?utf-8?B?a1RGcEEvYlY3TjlwNFAxMjJpaHM3ZG9uVnBGbzJocGdsTlZNTnIzalV1WVdy?=
 =?utf-8?B?TzNZVXZBaUQwNEh2akhzRENxWDBXcjRveHU3RENmK3pVaTVUMWJRWXV5Vy96?=
 =?utf-8?B?OGNuczcxYmdwa3NycUxQTlVZWUJYTUVKbm1wMVdaRnBOeDlHQU50eEZRKy8z?=
 =?utf-8?B?QTlNcmZ2M3MyY05sdUhNYlVXSStYZWRmbFZibis5bFdnVHV1MCt0TVBUTDM2?=
 =?utf-8?B?MVQ4K1pjSzlDbEZ5MzFjTDlzK3ZKWnBmTGxXMitaYjdlUGJyNWtEd1FEOGlr?=
 =?utf-8?B?V0djWlpOaTRxVGNXRGtLSFJvRmdVbDdySG1RM1I5My9WUmRzZkRHNk45R0VN?=
 =?utf-8?B?cmY4c3pvYzlIYlMxNU54Qk9aREtFQU1XLzdWQ05kQThWOHk3TkhSSnJDMHlD?=
 =?utf-8?B?dDhZSSs3V0NIekMvbVBZSVhaK29nTlliODRjUXYxZENpM3BBY1F4VjB5Uldq?=
 =?utf-8?B?eXB1OE5HOXpEVW9taVhMamJGc1pDcTVWbkhEQ0JiM1NSOFdCZUVhWGFzWjFy?=
 =?utf-8?B?Wk93alpiYmp2d3JnZksvVE42bnlqcURlR3ljM0hjTzI3aFgwbkRHL1pUdzhq?=
 =?utf-8?B?aVVjTDZuNE54SXJidUJBVWFzOHV2R2R0cXMxVW9IdkFhRlBnSDVmdldINHpH?=
 =?utf-8?B?U2JTbFdqL3Z0S1VMcDAvbjN3QnJMVjJlMmFQdllXZ3UvdCtQMjROdUpzdmJC?=
 =?utf-8?B?QlV3V1JzYnBDMGRmeWN2R0hTREdUZUhzMkpJV2crMnI2TWl5cFV5TFFyYmVK?=
 =?utf-8?B?aHdzT3RPYzFJbFhtTmZIbkRPZXdNZktkODN1elVmTjRETDlicFB6NWxxdDdG?=
 =?utf-8?B?dG9jNmJSTmJ2K3JRMFZBU2t3ZlphcXZpRWxVdTVmVkUxV29WMHRUcWF1dE9O?=
 =?utf-8?B?cWRVdHpiclNxczhlV2tkb0NwRUhFdXIwcVg0NTdJSHZydFRDem1wRXp6bnVP?=
 =?utf-8?B?azZpWC9PYTBEdSt3QjJIR1NoU2xMU1RISVJ3RFdjTzZpdEo2dlJXdFFNODVp?=
 =?utf-8?B?eTllM3A1OTlTZzdqRUs5b3h3R0tHU1o2MjZBV3dxWmo5OVFTMXpSeGNRdVJm?=
 =?utf-8?B?dStVSXc1cERxVkx0UWxwUlY1bldqb01VM3h1T2J6d1g3R2xvSnNVOTVUNXY2?=
 =?utf-8?B?VW50ZElObmxyYzFBN1Zyc2NCSEoxMnlUN2ZaUmUwR25rbUloZEVaNlV6ZGpm?=
 =?utf-8?B?R0xKc3FBbVRLWTV2OW9aYkZNbys3TkJncnpxRVFEWXp5NlBXL3FWNG8zOGxS?=
 =?utf-8?B?R1lVczZwR2I5YWxFOVlWMWJyM3A2UzFJb3d3NWdSYnpMSE1CMDQ4U3puK1dK?=
 =?utf-8?B?Ny9BNDgyLys1Ykc5NzJ2RU1Fd0xQeFhQUkRZUm0zMUtVUDBKYUhqcWZyRDNu?=
 =?utf-8?B?TXdKMVFjN1lrRTJuZUNlVS9FZC95WEhFd3VTQWRGbXJvNVF0MWxGeFRqemEy?=
 =?utf-8?B?dmZKOG1JZTZRS1ZSLzF4bEs0TjBaRDdMazZFbThCRXFGOFkxVmxXRVpCcTla?=
 =?utf-8?B?YTlmc1RPMlhvWkYybmJaQ1lkRWZraTBtU2R4dVNqVGNYZ2hHS1diVCtVZVVw?=
 =?utf-8?B?UU4yY2xLd3pwenVuRnZDWVE5WVlWamtSYWRmZlVvTmpUdk5ncFJuSGVmQnhq?=
 =?utf-8?B?aHJVaFNhamFVeXVXV0dxdC9OUUhJZHk5Q0NWNkNXbDdWbEx6STM5UVJqWTlx?=
 =?utf-8?Q?NYXdKEpsTlhLiAmM=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2A77AB6E48039F42973CAD06A7127585@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8099.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b8b7c185-08b6-426f-a713-08de64bef8fd
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Feb 2026 14:00:51.6668
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: JvK/jYfxDG1PkTFx1UIu6Odc2EANwyfZeyBSn61qSwwWdNg1YiK7FtyxGmBJHY0cRdySFlhCgDRDw9owu5bXudqTa66GEEDpW1I4aEi85hU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6371

DQoNCj4gT24gNSBGZWIgMjAyNiwgYXQgMTM6NTYsIEVkd2luIFTDtnLDtmsgPGVkd2luLnRvcm9r
QGNpdHJpeC5jb20+IHdyb3RlOg0KPiANCj4gT2JzZXJ2ZWQgd2hlbiBhdHRlbXB0aW5nIHRvIGJv
b3QgYSA+NFRpQiBWTToNCj4gDQo+IEFmdGVyIGEgY2FsbCB0byBkb21haW5fc2V0bWF4bWVtIHdp
dGggNjM3MDI1NDg0OCAoS2lCKSwNCj4gdGhlIGRvbWFpbidzIG1heG1lbSBnb3Qgc2V0IHRvIDIw
NzUyODc1NTIsDQo+IHdoaWNoIGlzIGV4YWN0bHkgMl4zMiBzbWFsbGVyLg0KPiANCj4geGNfZG9t
YWluX3NldG1heG1lbSB0YWtlcyBhbiB1aW50NjRfdCBhcyBhIHBhcmFtZXRlciwNCj4gYW5kIHRo
ZSBPQ2FtbCB2YWx1ZSBpcyA2NC1iaXQgYWxyZWFkeSwgc28gZml4IHRoZSBDIHZhcmlhYmxlDQo+
IHRvIG1hdGNoIHRoZSB0eXBlIGFuZCBhdm9pZCB0aGUgdHJ1bmNhdGlvbi4NCj4gDQo+IFNpZ25l
ZC1vZmYtYnk6IEVkd2luIFTDtnLDtmsgPGVkd2luLnRvcm9rQGNpdHJpeC5jb20+DQo+IC0tLQ0K
PiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYyB8IDIgKy0NCj4gMSBmaWxlIGNo
YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEv
dG9vbHMvb2NhbWwvbGlicy94Yy94ZW5jdHJsX3N0dWJzLmMgYi90b29scy9vY2FtbC9saWJzL3hj
L3hlbmN0cmxfc3R1YnMuYw0KPiBpbmRleCBhYzJhNzUzN2Q2Li5jNTVmNzNiMjY1IDEwMDY0NA0K
PiAtLS0gYS90b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYw0KPiArKysgYi90b29s
cy9vY2FtbC9saWJzL3hjL3hlbmN0cmxfc3R1YnMuYw0KPiBAQCAtOTQ3LDcgKzk0Nyw3IEBAIENB
TUxwcmltIHZhbHVlIHN0dWJfeGNfZG9tYWluX3NldG1heG1lbSh2YWx1ZSB4Y2hfdmFsLCB2YWx1
ZSBkb21pZCwNCj4gaW50IHJldHZhbDsNCj4gDQo+IHVpbnQzMl90IGNfZG9taWQgPSBJbnRfdmFs
KGRvbWlkKTsNCj4gLSB1bnNpZ25lZCBpbnQgY19tYXhfbWVta2IgPSBJbnQ2NF92YWwobWF4X21l
bWtiKTsNCj4gKyB1aW50NjRfdCBjX21heF9tZW1rYiA9IEludDY0X3ZhbChtYXhfbWVta2IpOw0K
PiBjYW1sX2VudGVyX2Jsb2NraW5nX3NlY3Rpb24oKTsNCj4gcmV0dmFsID0geGNfZG9tYWluX3Nl
dG1heG1lbSh4Y2gsIGNfZG9taWQsIGNfbWF4X21lbWtiKTsNCj4gY2FtbF9sZWF2ZV9ibG9ja2lu
Z19zZWN0aW9uKCk7DQo+IC0tIA0KPiAyLjQ3LjMNCj4gDQoNCkFja2VkLWJ5OiBDaHJpc3RpYW4g
TGluZGlnIDxjaHJpc3RpYW4ubGluZGlnQGNsb3VkLmNvbT4NCg0K


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 14:08:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 14:08:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222002.1530074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo01w-00046l-S3; Thu, 05 Feb 2026 14:08:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222002.1530074; Thu, 05 Feb 2026 14: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 1vo01w-00046e-Ob; Thu, 05 Feb 2026 14:08:24 +0000
Received: by outflank-mailman (input) for mailman id 1222002;
 Thu, 05 Feb 2026 14:08: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=BdQL=AJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vo01v-00046Y-Kj
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 14:08:23 +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 1d3287b7-029c-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 15:08:15 +0100 (CET)
Received: from DUZPR01CA0090.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46a::8) by VE1PR08MB5823.eurprd08.prod.outlook.com
 (2603:10a6:800:1a5::22) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 14:08:07 +0000
Received: from DB1PEPF00039230.eurprd03.prod.outlook.com
 (2603:10a6:10:46a:cafe::74) by DUZPR01CA0090.outlook.office365.com
 (2603:10a6:10:46a::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 14:08:04 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF00039230.mail.protection.outlook.com (10.167.8.103) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Thu, 5 Feb 2026 14:08:06 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by VE1PR08MB5774.eurprd08.prod.outlook.com (2603:10a6:800:1a1::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Thu, 5 Feb
 2026 14:07:03 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 14:07: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: 1d3287b7-029c-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=KEsc/pk5mvXKxACFlbCOw4FU/JM/Y8BasYuRXJeeAe2gFVLQGGUrD9Q8Lw90XJ5iM0/qz8V8UCKZh4/1wEJyebnNZyrZFIByyS4Wk7mNkhf5g5cOQnM7BZvgNr6tVgqr/nC3/bguqCCa/OB0++SN8fhRyktZAqA0ZGv/LYjQAd5L9YJpvY5UF9h8idqs8ze+hSG5yMjvrRJ3CcQUhA0kX2+O9Km4xAJyOBy9mYBBeP9T9JAoAGa9GGonveB5f1nykN4QQcjwKxmPCAZGakgNmj3z7okdVpPp865HqR7nOGfsShA+krnk+r5NUenMt+JFTV0HM+aeNP2L0UFNYUVTjg==
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=V6oOM/no9Hpzb1JgOlBielFeUA61pJW69yO25S8iU/s=;
 b=R75j+NfipzVHTDATPwpdPpEWeK285MrGh2M4PeflelPC/qqQ0cbjw+nyOxywDYtUAhtqpJgGImmkFvxqP6eyscY0ol4pqWPkJODDEEJDnzg12sSobru97M0tILvR1M0eHJisxlFvukZ7QijvMZAulgaW2PL7+n1pyNdmINgR3g+wCMyMHxmr3dl0Jk+zG+qrqGYGd3Z0Bc+AjrzygT70yYvVbhze+JYzU6N3a9OiBimePU4/0VGhyLxq3tKK5zEzs7VxtTUc9I+zGm9NtWWDGN/msdCMN3sWLWjTTm+Z5Q9F33OJRbxTHTVEel+UWV3GUf59tK05jus6Td3VfpFLfg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=epam.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=V6oOM/no9Hpzb1JgOlBielFeUA61pJW69yO25S8iU/s=;
 b=fbAe2ORPuo5XrY25kyrsywI8BONIWHZxYOuA3B666AvEK/l5t7bl2t1uYl2A8svEh8LFUcVBrWJLJ3XZaniXAhtr8ifA2GkKZWzuoR0Sbc3r5kjDzFLL64MdlrobQbr2CXGkVi/Efv1FCDfjdazBu8w9/CFitGmBJr7BVXPO0Uw=
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=OOSrbkBnpoCEWOWGWjTVdBvNxBXAvzKBGL7nqinol/LaWs3JfGYV5Anv9SHT7poHgGUvM3Lyf9L4FqdPEOO/10GyLlLhpX7AivREotIRE+CWvopsd883KzeGy0zQipwKjUwebNZVBWT59HDIlv09l9eXPyJ/rHeT1tFSacFqI7wOZcuCJSKQyPJtRbns6dMJZgMjDT+gPBodnwpN6aUY/A3cmwVSzNGQfZz1WE+AXZn2zG94FV7L4Vd9HzD/QXbloN+HCfw6glbySxoQA4u2LZqZ2a2NJ9VN9Uii6pehz//eC8e2xEmFACfjVnInG5FD8U3E7nphP2A5Vk7+VzNplw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V6oOM/no9Hpzb1JgOlBielFeUA61pJW69yO25S8iU/s=;
 b=eB5QvtUVt7jmvGj8WWRAGBW1VTGGhyp8WMJX9OpFbZiSXf/zEaH0ADCfyYlcaCuzoRo3jAf2LoFTSqgUZD4ww7ImEqCBhcm18Umj/oscen3nuuFS7PBNnWmGR2/uKC2ZFSdkPc7v30bhS6fOPvqpN/FtLgzSBFul5Xnb6QuFz5NI2b/Tvdd5QeqHGv5rLL9Ke5tlyQatEeo2LJ4AgrxBJe+r+YBC7i3C7iEAAQ+t38epg2JIfWLzij9bcreziFMoLkRUeYoUGHMGq/VVGl7O9G1zgkG+U6PE706TDihdwwB6/LgczVGRwo7Wpw6utXnWIcfQkkSfk9PArTxh5Ylt0w==
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=V6oOM/no9Hpzb1JgOlBielFeUA61pJW69yO25S8iU/s=;
 b=fbAe2ORPuo5XrY25kyrsywI8BONIWHZxYOuA3B666AvEK/l5t7bl2t1uYl2A8svEh8LFUcVBrWJLJ3XZaniXAhtr8ifA2GkKZWzuoR0Sbc3r5kjDzFLL64MdlrobQbr2CXGkVi/Efv1FCDfjdazBu8w9/CFitGmBJr7BVXPO0Uw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>, Michal
 Orzel <michal.orzel@amd.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v5 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Topic: [PATCH v5 2/5] arm/irq: Migrate IRQs during CPU up/down
 operations
Thread-Index: AQHchGj73A4kTs3O/EWyR3N/eFmlXrVyue0AgAGCbQCAAAwtgA==
Date: Thu, 5 Feb 2026 14:07:02 +0000
Message-ID: <CE531E44-2AD4-4164-8A86-1D6084A6EAE1@arm.com>
References: <cover.1768293759.git.mykyta_poturai@epam.com>
 <63892f56f227fae75d78e2ef2ee63887e74c523a.1768293759.git.mykyta_poturai@epam.com>
 <6080438F-DB60-4A50-8264-1CD04761B196@arm.com>
 <48a84d44-def9-4181-ac67-5aeb31ffb529@epam.com>
In-Reply-To: <48a84d44-def9-4181-ac67-5aeb31ffb529@epam.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|VE1PR08MB5774:EE_|DB1PEPF00039230:EE_|VE1PR08MB5823:EE_
X-MS-Office365-Filtering-Correlation-Id: bdb52e7b-0d39-46a4-fa6a-08de64bffc4e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?TE54S25vcE45QTA0ZVVMK2ZlZitsNEFMbE9pSE1FZE1wSTNiTmY0RWlJbEdj?=
 =?utf-8?B?NnF6UWdNQWlOb3hnU2pxVlY3UDQ2bVY1aWl0ZTZjSWFVeWhPaTVKT0duN3Qw?=
 =?utf-8?B?Q242QVVhbEQ2TWhJMERzaElEcFZ6WjhQeXA3c0FoK0k3RnByQjNReVd6YlJn?=
 =?utf-8?B?cFBzZHlvdHQxc290QStKeFpNRCswMXBjZjNLQXExTnFMTDM2RU1YemJrYnI2?=
 =?utf-8?B?akJWT0Y3b0NsVmxNVzRpQUxaZloyWWp2OGhtREpHNThXSWdueDBpaUVRdnR5?=
 =?utf-8?B?MnhFRjlkZ0owcVJjUmFraDdXaDZDK3ZvdXVRenNEeStuNkNOdFNJOC8zaWQ0?=
 =?utf-8?B?alNYcitBMmRwNUJzTTVxYkpoMGRsTW5RbFVLb1FOUWRmUUhjYnVSc1BDeEJz?=
 =?utf-8?B?SUwzM3hMWDl6UmYzeTlXQUtSSkpwNGZidGZvOFMySkcyYWYyNWFVckpWN1Jr?=
 =?utf-8?B?U1lLeldLKzVkcGs3cjErd2xzZ2VPNzJFalh5dkNDc29Dd1d5TmZ6Z1d3ZUN5?=
 =?utf-8?B?Z3pvZElzSUE4VHprUXdpcU5Wb0dqem1YdXU3MEsxTEpNYUZQZVZtcmFlMlc2?=
 =?utf-8?B?M2VUUFVoY2dLSTRhQnM3b0o5OUpjMHBYRFZNNkMzZER3L2s1ZlFEWVpFU3Nt?=
 =?utf-8?B?SmIwY1VLOVVxa09oQmwzczE5U2k3ZXhGazMvcmg5ZUZCYnd1Rm50WVpTcnl4?=
 =?utf-8?B?ajVqMGMxRFFENjE0UzdXcmFOUWpXNndaeCt3QUhOQ2x5YXdiVC9yekZ4UHVZ?=
 =?utf-8?B?ZXFQTUo0eWF5aHVYWHowcFpRNi9mQ3E5RTBMY3pucXBFZys3RGxMU2NidWp4?=
 =?utf-8?B?TklDWURWNVJxM1JSaG9PN2dNT2pGN29WajV4bUpYNlRKUkpUbndjYUo0RVJt?=
 =?utf-8?B?ZTZSY3JYSmZNdkFVbitUNVBlNTUyNGhxSDdrRkNXazR3L2tQQ3MxdncwTFg1?=
 =?utf-8?B?NzdmSjZYWWFoOUVUMEg2UGF4alpsVXJ1YmYxMm0zMkVxbnpTaWNRQWREQm4r?=
 =?utf-8?B?dFlwU21uWUx4SVZQNU8zMENTWkdhQmxsZUIwZDlOVHI3QldJcWlrYVJ5Q2lP?=
 =?utf-8?B?cmdObGUzaDh3ajlvMlIxd1dZSzFHQXFSb1d6MlFPc1h4MXV5U21RZlUrUWpx?=
 =?utf-8?B?WE1MVkJxY0RaYWh0azdVR0RDRnZudUpsTlFpVk9ZZFBwQ2k1czVkak8vMTJv?=
 =?utf-8?B?ejFEZ3pmWktxMVdiSmpZek4zUXQ4SjAxaUt6MmtFcnNHb2NKa3JvbWxYekJE?=
 =?utf-8?B?OWJYS0NnemFnNysyV2FCcDNxS2dCQno4RHZBUk81SUwyOEF5R3ExZ2J4bm5V?=
 =?utf-8?B?M0M4b2JmYUl1WUg5SDNQK2JLaTlFTjBIdERSOFJkenh1d0xSMnYwajhuVjNi?=
 =?utf-8?B?c0JMR0R4aTd1eDU5M0U0VlRpaHVtK3FuNkwvbktkYmd3L2Y2SGFZYnd1OXMy?=
 =?utf-8?B?RHVVSVd2OTVLZ252QlVTRzVUL1lsVUJtbG1YSjdCQncyQ2JsUVkzQ1B4dFo4?=
 =?utf-8?B?TDIxVEFTZitTemdoRlJ4aGkvYk1OcWc2cXpaQVMvU0hxR1NoMTh4OGpMTUN1?=
 =?utf-8?B?OG01YzJZQjlidytjSUhTbjhySWg5b0FkSTRYQ05yaXhnbHhrVVY0TWQ5U3lr?=
 =?utf-8?B?RzMzdytCVm5UanN4QmxkQzdMS3JROURzamxPOElNeHZhbDRNNzQ4ZFphalBi?=
 =?utf-8?B?VTkrVDJZMklqRUt5RDR6SDNMWHhTdWl4MmkrVURMdXJDYk9TUk9pbnIyM1F6?=
 =?utf-8?B?by9PYVA0bWViU2dlY2RBeGV4TXNFZ0xaY3JnMWdrbC9RVEQrOXQrMGJMa1RV?=
 =?utf-8?B?TDNxVDNyOGxacnpHYVlyTDNyd2hwVThrQjdvRWdQUFNoUjNuNGxDa3hLMjhx?=
 =?utf-8?B?NkREeW41cXhXNStSVUgxMHV5WVhVbWE4aFJsbmdEVXc0UVBUTTArTHQxRmhp?=
 =?utf-8?B?TXNsd0JxM2FnRVVUd1cvNSt1aEljZVNBNy9RMVdCSDVtdDhXQ2MzZlBXZ0Ja?=
 =?utf-8?B?L0l2SGtWZ0pxSnhZdXAyRm9VVW5PRDRhYW9FTkJZMExxQThRM0FFaTJ6WWcr?=
 =?utf-8?B?bzhHL2J5aG82NjM0TVVvVVNnYWNUd2VvOEt3MFk2cEcyYVEzcVIyelBPTzdO?=
 =?utf-8?B?bFQzWmxlU1dicHZRVzhTdWtYdHMyeVFOWld3cEJ3SVkrQnpyeFJUZW92WmFi?=
 =?utf-8?Q?jWt8MOM56BJKITUooNpBHJ0=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <10F3D9F95408C14FADF9AA860D512CE2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5774
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF00039230.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	e28280c5-9a5d-4899-f3b0-08de64bfd5e6
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|1800799024|36860700013|14060799003|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R2hLSmhWMGlGTWt1ZWpmNFlldStNbkNwZzJKNUd0S3ZBTlN1RUVRclJzRG4z?=
 =?utf-8?B?L3RnZVIwWlhXSzBGWXNpL3BnYkEwdmhVbXhTWkZGQmxWdEx6OUYwVjIwSTMw?=
 =?utf-8?B?aTBFbXpXWWtkMGNyRFExUy8rd0lrRU16cCtKdnU5U3Z2bXlQaGNTVTRhUnY2?=
 =?utf-8?B?dktwcmtXSjNQSG5PWGlxNC94RzVoNzY0MFJSdEh5SUtZQTNRSHovT3lURld0?=
 =?utf-8?B?dXgzUHNJdDcwcVFObXRxMEFXNnRzR2ljY1poSnZlK0RFSTJmS0FmaXkra2F6?=
 =?utf-8?B?SVlSOGtsNG42NE9UTFU0VzR2KzBXMnhtVWtPY2dHTzFkU1hNeEJYSDRJVjRl?=
 =?utf-8?B?RDhhMnFoVTJyYVZVNEFnZ3hRWlhVZGhXUkxQREhjQlJrQUQ0Ui81SVV0Tk1F?=
 =?utf-8?B?eUxHMkZEMENiUVM2elBJMGlBNTBJcEdZSUtnOFRKU21GSy9taWViYkFRaUFF?=
 =?utf-8?B?RGlIVTkvTjNibjQrT3dzeUYyTTJXVC9Ja3VCYkZOYS9XK1lLOW5UTGwvSWh2?=
 =?utf-8?B?V3o0UjZOZ1BFanRyZ0hKQlNtaWVvK3ZnYmVEVDFMR0xsREREb2gwUUlONU1j?=
 =?utf-8?B?eXpGbVJvYjhNa3VmNnUyUTA2cjN2ZWZWZStWRnliWllUWGNKSDFhOVh3SFp1?=
 =?utf-8?B?TzNVbndXTDVIYVVzK2M4RmR4MGdaQXlHTng5OUpLTlM2b0s0VTNGanBVZUUv?=
 =?utf-8?B?ZUNEZGpJdTlvSHRiMVB2cUx3Vmw3QVEvMW9xa1hjVlFHdFhnTmNHeDdFQ0VW?=
 =?utf-8?B?MkNtZFptSVBRVW43RVJ6WGhEemZJV0tvQ1NHWU80c2pwWWZoMVJFaGdmT3Zl?=
 =?utf-8?B?Q0tkZXpzSDlLSkErQ2RaK2MyZGsyN1VkWHZIMk0yRXA2bWRtYWJMTTJBREhS?=
 =?utf-8?B?bWhReFdLTE44OXh2V3QyOFZrY0VjTnN3UGhoSWwrM1cyZ2xzaHY2TExPczE0?=
 =?utf-8?B?eTRpVEw1UWVWTjVWNHVxM2V2VGxGcUtSdFFMa1JwNG8xbXZKUlFZVkVwVm16?=
 =?utf-8?B?RWZpN1hDVjVWck9OMGd1S2dNWm85VkQrVFhBcE5rK2ZNWDUrbXIyODFpK2lS?=
 =?utf-8?B?UVJRN3Y5MUk0ME1Fc3U1M3k1WnVMNjJ6QS9kNFovaW9yUmp0OWVPTnVWRnM5?=
 =?utf-8?B?QjNkVkhUV0NTaDJDSzJ0UTNYQjBYK1BsVmpPY2hxOWdaaFJjcmo3ZUkrbUF0?=
 =?utf-8?B?MmpKOGFEM0M4NlZ5V1ROeE5mcUFYVklwRmhFY0U0VmEza3lmeGw5WXczMmkw?=
 =?utf-8?B?U3g5MHoxK25CbS9TaEhhbVFOVHAyQ21JZThSak5naWduRFR4OTB2d1RiYUl3?=
 =?utf-8?B?cS8zdytRWEFmbWlqZUZkaTBvRGoxUUxMMUJWeXJueVpxSUNJMWYxM013bU8y?=
 =?utf-8?B?WFFaclF6cFIxZUZiVkd4blhqbzd1bXRPOHQ3R1lXQmEzWGZyQndwSFhmSDhH?=
 =?utf-8?B?dFhvaGVpOUROSGIrZkRDUHMrdDBXU2NuS0RSbEZxZ05TMHRpNTJxTTEzZWNm?=
 =?utf-8?B?UXRDbklQekd5K1NYcDdDb1I5MDhGYjV2YXFzVitSVkJYcks3NTh4L0RkaW9Z?=
 =?utf-8?B?aGZFQnoxTDROb1F3YUg2eXFCSkpQSHMzemYxTFBuclF2NnIrMldBQ2ZEMlNQ?=
 =?utf-8?B?dU90d0hnQUwyRkxGRGkvV3hycXN1TXl3TnlkRTRGeEhEU3R5MHR6ZTRIRjZm?=
 =?utf-8?B?UE5tYlQvdVBZa0dCeXhJc1dtU3k0UG5sSHJIc25MbTJPbWRLR0N1c3lVUXI4?=
 =?utf-8?B?OVc4MDNRdWZZYmtZQjVKLzU0aWs3czRDVjh1ME9pOW1hVm5Md09CMUUwZ3p4?=
 =?utf-8?B?cjMzOW4yTTlESlRaZVYzY002T3B2MGwrMW9xVy9YZ0tpRThieURzUDlHV1Fo?=
 =?utf-8?B?VDhUdUZpcG9jRTRrbVRuTmpOdEcxSVhjblJVaEFJd3lQWE9wV3dxaXAvdi9o?=
 =?utf-8?B?aFlDMG5Ha3YrYWxqMUphS0hTYXhuU1B1eWQ3SEJnbFdlREJVenFhTXpYYnNz?=
 =?utf-8?B?V1p5MEtJOWlwTFFBYkR6aVI2LzVKZTBLKzZtSXFmVEZlaFZRb0RneFk3cExy?=
 =?utf-8?B?U1RaTVQ0L0s3UVQxb0NmTEh0QzQxUyt6RXJSSWdGeVg1OXh4OHpKc1ZjOCtU?=
 =?utf-8?B?cEh5cU10MU02L0RDUjl4UktlMVQvZEtNNGRVWGwvbEFDQ3hiZ2s5UzhEWkJW?=
 =?utf-8?B?a2phZnNFcGJNMEpMZDJCcnZDTHR3TWRZaUF4TWs1UVQyZXdZcVhNQzRDRjVo?=
 =?utf-8?B?dGhZK3hnc3ZINDlJSW1PRVE3aTZRPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013)(14060799003)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Cz5RdZftipUjPv+z+F5br8NmRmdG1PJJRNBsYMCQRnBUKxiXJ1WOkSpe5dQZkYc8ZgfxznT8eWUOFajWUE1iTW6vwODIghKE0d29nPOcAny8BSl5cIJYPD+VrohzDftQLaGUKnS+vBDXlAdSRkl98oqX/URAzwUSYn5nhjfHd3rIACee1vwhns039glrYOaoN4N3mQzepWcGDPCE0qKXIEO5sG8hI0qVtUdytZ27v0rzx94OfxCdg7U8iMrOwP/x679huzgaRB7UJsTpHBo0067iNQRt48it4C3+Nwa/ELwEE1bBvPAZBLs/SOPTgTqJinErhVUhfR1LJLEZHG1skcOnbX8WzBG6Xe2IrgeC+3MAqJXGUPf9dpSrgdDXycXMYOBY593yUvzRNe/ewjuiOqfottaju2SGiOs/i6xcsAriv1y2jaONMr60IzydcQO+
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 14:08:06.6628
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bdb52e7b-0d39-46a4-fa6a-08de64bffc4e
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:
	DB1PEPF00039230.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5823

SGkgTXlreXRhLA0KDQo+IE9uIDUgRmViIDIwMjYsIGF0IDE0OjIzLCBNeWt5dGEgUG90dXJhaSA8
TXlreXRhX1BvdHVyYWlAZXBhbS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDQuMDIuMjYgMTY6MjAs
IEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBIaSBNeWt5dGEuDQo+PiANCj4+PiBPbiAxMyBK
YW4gMjAyNiwgYXQgMDk6NDUsIE15a3l0YSBQb3R1cmFpIDxNeWt5dGFfUG90dXJhaUBlcGFtLmNv
bT4gd3JvdGU6DQo+Pj4gDQo+Pj4gTW92ZSBJUlFzIGZyb20gZHlpbmcgQ1BVIHRvIHRoZSBvbmxp
bmUgb25lcyB3aGVuIGEgQ1BVIGlzIGdldHRpbmcNCj4+PiBvZmZsaW5lZC4gV2hlbiBvbmxpbmlu
ZywgcmViYWxhbmNlIGFsbCBJUlFzIGluIGEgcm91bmQtcm9iaW4gZmFzaGlvbi4NCj4+PiBHdWVz
dC1ib3VuZCBJUlFzIGFyZSBhbHJlYWR5IGhhbmRsZWQgYnkgc2NoZWR1bGVyIGluIHRoZSBwcm9j
ZXNzIG9mDQo+Pj4gbW92aW5nIHZDUFVzIHRvIGFjdGl2ZSBwQ1BVcywgc28gd2Ugb25seSBuZWVk
IHRvIGhhbmRsZSBJUlFzIHVzZWQgYnkgWGVuDQo+Pj4gaXRzZWxmLg0KPj4+IA0KPj4+IFNpZ25l
ZC1vZmYtYnk6IE15a3l0YSBQb3R1cmFpIDxteWt5dGFfcG90dXJhaUBlcGFtLmNvbT4NCj4+PiAt
LS0NCj4+PiB2NC0+djU6DQo+Pj4gKiBoYW5kbGUgQ1BVIG9ubGluaW5nIGFzIHdlbGwNCj4+PiAq
IG1vcmUgY29tbWVudHMNCj4+PiAqIGZpeCBjcmFzaCB3aGVuIEVTUEkgaXMgZGlzYWJsZWQNCj4+
PiAqIGRvbid0IGFzc3VtZSBDUFUgMCBpcyBhIGJvb3QgQ1BVDQo+Pj4gKiB1c2UgaW5zaWduZWQg
aW50IGZvciBpcnEgbnVtYmVyDQo+Pj4gKiByZW1vdmUgYXNzdW1wdGlvbiB0aGF0IGFsbCBpcnFz
IGEgYm91bmQgdG8gQ1BVIDAgYnkgZGVmYXVsdCBmcm9tIHRoZQ0KPj4+ICBjb21taXQgbWVzc2Fn
ZQ0KPj4+IA0KPj4+IHYzLT52NDoNCj4+PiAqIHBhdGNoIGludHJvZHVjZWQNCj4+PiAtLS0NCj4+
PiB4ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vaXJxLmggfCAgMiArKw0KPj4+IHhlbi9hcmNoL2Fy
bS9pcnEuYyAgICAgICAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysNCj4+PiB4ZW4vYXJjaC9hcm0vc21wYm9vdC5jICAgICAgICAgfCAgNiArKysrDQo+Pj4gMyBm
aWxlcyBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspDQo+Pj4gDQo+Pj4gZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9pcnEuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9p
cnEuaA0KPj4+IGluZGV4IDA5Nzg4ZGJmZWIuLmEwMjUwYmFjODUgMTAwNjQ0DQo+Pj4gLS0tIGEv
eGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2lycS5oDQo+Pj4gKysrIGIveGVuL2FyY2gvYXJtL2lu
Y2x1ZGUvYXNtL2lycS5oDQo+Pj4gQEAgLTEyNiw2ICsxMjYsOCBAQCBib29sIGlycV90eXBlX3Nl
dF9ieV9kb21haW4oY29uc3Qgc3RydWN0IGRvbWFpbiAqZCk7DQo+Pj4gdm9pZCBpcnFfZW5kX25v
bmUoc3RydWN0IGlycV9kZXNjICppcnEpOw0KPj4+ICNkZWZpbmUgaXJxX2VuZF9ub25lIGlycV9l
bmRfbm9uZQ0KPj4+IA0KPj4+ICt2b2lkIHJlYmFsYW5jZV9pcnFzKHVuc2lnbmVkIGludCBmcm9t
LCBib29sIHVwKTsNCj4+PiArDQo+Pj4gI2VuZGlmIC8qIF9BU01fSFdfSVJRX0ggKi8NCj4+PiAv
Kg0KPj4+ICAqIExvY2FsIHZhcmlhYmxlczoNCj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt
L2lycS5jIGIveGVuL2FyY2gvYXJtL2lycS5jDQo+Pj4gaW5kZXggNzIwNGJjMmI2OC4uYTMyZGM3
MjlmOCAxMDA2NDQNCj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vaXJxLmMNCj4+PiArKysgYi94ZW4v
YXJjaC9hcm0vaXJxLmMNCj4+PiBAQCAtMTU4LDYgKzE1OCw1OCBAQCBzdGF0aWMgaW50IGluaXRf
bG9jYWxfaXJxX2RhdGEodW5zaWduZWQgaW50IGNwdSkNCj4+PiAgICAgcmV0dXJuIDA7DQo+Pj4g
fQ0KPj4+IA0KPj4+ICtzdGF0aWMgaW50IGNwdV9uZXh0Ow0KPj4+ICsNCj4+PiArc3RhdGljIHZv
aWQgYmFsYW5jZV9pcnEoaW50IGlycSwgdW5zaWduZWQgaW50IGZyb20sIGJvb2wgdXApDQo+Pj4g
K3sNCj4+PiArICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7DQo+
Pj4gKyAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPj4+ICsNCj4+PiArICAgIEFTU0VSVCghY3B1
bWFza19lbXB0eSgmY3B1X29ubGluZV9tYXApKTsNCj4+PiArDQo+Pj4gKyAgICBzcGluX2xvY2tf
aXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOw0KPj4+ICsgICAgaWYgKCBsaWtlbHkoIWRlc2Mt
PmFjdGlvbikgKQ0KPj4+ICsgICAgICAgIGdvdG8gb3V0Ow0KPj4+ICsNCj4+PiArICAgIGlmICgg
bGlrZWx5KHRlc3RfYml0KF9JUlFfR1VFU1QsICZkZXNjLT5zdGF0dXMpIHx8DQo+Pj4gKyAgICAg
ICAgICAgICAgICB0ZXN0X2JpdChfSVJRX01PVkVfUEVORElORywgJmRlc2MtPnN0YXR1cykpICkN
Cj4+PiArICAgICAgICBnb3RvIG91dDsNCj4+PiArDQo+Pj4gKyAgICAvKg0KPj4+ICsgICAgICog
U2V0dGluZyBhZmZpbml0eSB0byBhIG1hc2sgb2YgbXVsdGlwbGUgQ1BVcyBjYXVzZXMgdGhlIEdJ
QyBkcml2ZXJzIHRvDQo+Pj4gKyAgICAgKiBzZWxlY3Qgb25lIENQVSBmcm9tIHRoYXQgbWFzay4g
SWYgdGhlIGR5aW5nIENQVSB3YXMgaW5jbHVkZWQgaW4gdGhlIElSUSdzDQo+Pj4gKyAgICAgKiBh
ZmZpbml0eSBtYXNrLCB3ZSBjYW5ub3QgZGV0ZXJtaW5lIGV4YWN0bHkgd2hpY2ggQ1BVIHRoZSBp
bnRlcnJ1cHQgaXMNCj4+PiArICAgICAqIGN1cnJlbnRseSByb3V0ZWQgdG8sIGFzIEdJQyBkcml2
ZXJzIGxhY2sgYSBjb25jcmV0ZSBnZXRfYWZmaW5pdHkgQVBJLiBTbw0KPj4+ICsgICAgICogdG8g
YmUgc2FmZSB3ZSBtdXN0IHJlcm91dGUgaXQgdG8gYSBuZXcsIGRlZmluaXRlbHkgb25saW5lLCBD
UFUuIEluIHRoZQ0KPj4+ICsgICAgICogY2FzZSBvZiBDUFUgZ29pbmcgZG93biwgd2UgbW92ZSBv
bmx5IHRoZSBpbnRlcnJ1cHQgdGhhdCBjb3VsZCByZXNpZGUgb24NCj4+PiArICAgICAqIGl0LiBP
dGhlcndpc2UsIHdlIHJlYXJyYW5nZSBhbGwgaW50ZXJydXB0cyBpbiBhIHJvdW5kLXJvYmluIGZh
c2hpb24uDQo+Pj4gKyAgICAgKi8NCj4+PiArICAgIGlmICggIXVwICYmICFjcHVtYXNrX3Rlc3Rf
Y3B1KGZyb20sIGRlc2MtPmFmZmluaXR5KSApDQo+Pj4gKyAgICAgICAgZ290byBvdXQ7DQo+PiAN
Cj4+IEkgYW0gYSBiaXQgbG9zdCBoZXJlIG9uIHdoYXQgeW91IGFyZSB0cnlpbmcgdG8gZG8gaW4g
dGhlIGNhc2Ugd2hlcmUNCj4+IGEgY3B1IGlzIGNvbWluZyB1cCBoZXJlLCBpdCBmZWVscyBsaWtl
IHlvdSBhcmUgdHJ5aW5nIHRvIGNoYW5nZSB0aGUNCj4+IGFmZmluaXR5IG9mIGFsbCBpbnRlcnJ1
cHRzIGluIHRoaXMgY2FzZSB0byBjeWNsZSBldmVyeXRoaW5nLg0KPj4gSXMgaXQgcmVhbGx5IHdo
YXQgaXMgZXhwZWN0ZWQgPw0KPj4gSWYgYWZmaW5pdHkgd2FzIHNldCBieSBhIFZNIG9uIGl0cyBp
bnRlcnJ1cHRzLCBJIHdvdWxkIG5vdCBleHBlY3QNCj4+IFhlbiB0byByb3VuZC1yb2JpbiBldmVy
eXRoaW5nIGVhY2ggdGltZSBhIGNwdSBjb21lcyB1cC4NCj4+IA0KPiANCj4gVGhlIGlkZWEgaXMg
dG8gZXZlbmx5IHNwcmVhZCBpbnRlcnJ1cHRzIGJldHdlZW4gQ1BVcyB3aGVuIHRoZSBuZXcgb25l
cyANCj4gYXJlIGJlaW5nIGJyb3VnaHQgb25saW5lLiBUaGlzIGlzIG5lZWRlZCB0byBwcmV2ZW50
IFhlbi1ib3VuZCBJUlFzIGZyb20gDQo+IHBpbGluZyB1cCBvbiBDUFUgMCB3aGVuIG90aGVyIGNv
cmVzIGFyZSBiZWluZyBvZmZsaW5lZCBhbmQgdGhlbiBvbmxpbmVkIA0KPiBiYWNrLiBJdCBzaG91
bGRu4oCZdCBtZXNzIHdpdGggZ3Vlc3QgYWZmaW5pdGllcywgYXMgdGhlIGNvZGUgc2tpcHMgDQo+
IGV2ZXJ5dGhpbmcgdGhhdCBpcyBhc3NpZ25lZCB0byBndWVzdHMgYW5kIGxlYXZlcyBpdCB0byBi
ZSBoYW5kbGVkIGJ5IHRoZSANCj4gc2NoZWR1bGVyL3ZnaWMuIFBlcmZvcm1hbmNlLXdpc2UsIGl0
IHNob3VsZCBhbHNvIGJlIG9rYXksIGFzIGZyb20gd2hhdCANCj4gSeKAmXZlIHNlZW4sIHRoZXJl
IGFyZSBub3QgbWFueSBpbnRlcnJ1cHRzIHVzZWQgYnkgWGVuLCBhbmQgSSBleHBlY3QgQ1BVIA0K
PiBob3RwbHVnIG9wZXJhdGlvbnMgdG8gYmUgZmFpcmx5IGluZnJlcXVlbnQuDQoNCk15IGZlYXIg
aGVyZSBpcyBhIGJpdCB0aGF0IGJ5IHJlbW92aW5nIGFuZCBhZGRpbmcgYSBjcHUgd2Ugd2lsbCBj
b21wbGV0ZWx5DQpjaGFuZ2UgaXJxIGFmZmluaXRpZXMuIEkgYW0gbm90IHNvIHN1cmUgdGhhdCB0
aG9zZSBraW5kIG9mIHJhbmRvbSBhc3NpZ25tZW50cw0KYXJlIGNvbXBhdGlibGUgd2l0aCBlbWJl
ZGRlZCBvciBzYWZldHkgdXNlIGNhc2VzIGFuZCBoZXJlIHRoZXJlIGlzIG5vIHdheQ0KdG8gY29u
ZmlndXJlIHRoaXMuDQoNCkBKdWxpZW4sIFN0ZWZhbm8gYW5kIE1pY2hhbDogV2hhdCBkbyB5b3Ug
dGhpbmsgaGVyZSA/DQoNCkNoZWVycw0KQmVydHJhbmQNCg0KPiANCj4+PiArDQo+Pj4gKyAgICBj
cHVfbmV4dCA9IGNwdW1hc2tfY3ljbGUoY3B1X25leHQsICZjcHVfb25saW5lX21hcCk7DQo+Pj4g
KyAgICBpcnFfc2V0X2FmZmluaXR5KGRlc2MsIGNwdW1hc2tfb2YoY3B1X25leHQpKTsNCj4+PiAr
DQo+Pj4gK291dDoNCj4+PiArICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ss
IGZsYWdzKTsNCj4+PiArfQ0KPj4+ICsNCj4+PiArdm9pZCByZWJhbGFuY2VfaXJxcyh1bnNpZ25l
ZCBpbnQgZnJvbSwgYm9vbCB1cCkNCj4+PiArew0KPj4+ICsgICAgaW50IGlycTsNCj4+PiArDQo+
Pj4gKyAgICBpZiAoIGNwdW1hc2tfZW1wdHkoJmNwdV9vbmxpbmVfbWFwKSApDQo+Pj4gKyAgICAg
ICAgcmV0dXJuOw0KPj4+ICsNCj4+PiArICAgIGZvciAoIGlycSA9IE5SX0xPQ0FMX0lSUVM7IGly
cSA8IE5SX0lSUVM7IGlycSsrICkNCj4+PiArICAgICAgICBiYWxhbmNlX2lycShpcnEsIGZyb20s
IHVwKTsNCj4+PiArDQo+Pj4gKyNpZmRlZiBDT05GSUdfR0lDVjNfRVNQSQ0KPj4+ICsgICAgZm9y
ICggaXJxID0gRVNQSV9CQVNFX0lOVElEOyBpcnEgPCBFU1BJX01BWF9JTlRJRDsgaXJxKysgKQ0K
Pj4+ICsgICAgICAgIGJhbGFuY2VfaXJxKGlycSwgZnJvbSwgdXApOw0KPj4+ICsjZW5kaWYNCj4+
PiArfQ0KPj4+ICsNCj4+PiBzdGF0aWMgaW50IGNwdV9jYWxsYmFjayhzdHJ1Y3Qgbm90aWZpZXJf
YmxvY2sgKm5mYiwgdW5zaWduZWQgbG9uZyBhY3Rpb24sDQo+Pj4gICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCAqaGNwdSkNCj4+PiB7DQo+Pj4gQEAgLTE3Miw2ICsyMjQsOCBAQCBzdGF0aWMg
aW50IGNwdV9jYWxsYmFjayhzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5mYiwgdW5zaWduZWQgbG9u
ZyBhY3Rpb24sDQo+Pj4gICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgIlVuYWJsZSB0byBh
bGxvY2F0ZSBsb2NhbCBJUlEgZm9yIENQVSV1XG4iLA0KPj4+ICAgICAgICAgICAgICAgICAgICBj
cHUpOw0KPj4+ICAgICAgICAgYnJlYWs7DQo+Pj4gKyAgICBjYXNlIENQVV9PTkxJTkU6DQo+Pj4g
KyAgICAgICAgcmViYWxhbmNlX2lycXMoY3B1LCB0cnVlKTsNCj4+PiAgICAgfQ0KPj4+IA0KPj4+
ICAgICByZXR1cm4gbm90aWZpZXJfZnJvbV9lcnJubyhyYyk7DQo+Pj4gZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS9zbXBib290LmMgYi94ZW4vYXJjaC9hcm0vc21wYm9vdC5jDQo+Pj4gaW5kZXgg
N2YzY2ZhODEyZS4uZTFiOWY5NDQ1OCAxMDA2NDQNCj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vc21w
Ym9vdC5jDQo+Pj4gKysrIGIveGVuL2FyY2gvYXJtL3NtcGJvb3QuYw0KPj4+IEBAIC00MjUsNiAr
NDI1LDEyIEBAIHZvaWQgX19jcHVfZGlzYWJsZSh2b2lkKQ0KPj4+IA0KPj4+ICAgICBzbXBfbWIo
KTsNCj4+PiANCj4+PiArICAgIC8qDQo+Pj4gKyAgICAgKiBOb3cgdGhhdCB0aGUgaW50ZXJydXB0
cyBhcmUgY2xlYXJlZCBhbmQgdGhlIENQVSBtYXJrZWQgYXMgb2ZmbGluZSwNCj4+PiArICAgICAq
IG1vdmUgaW50ZXJydXB0cyBvdXQgb2YgaXQNCj4+PiArICAgICAqLw0KPj4+ICsgICAgcmViYWxh
bmNlX2lycXMoY3B1LCBmYWxzZSk7DQo+Pj4gKw0KPj4gDQo+PiBJIHdvdWxkIGV4cGVjdCB0aGlz
IHRvIG9ubHkgYmUgdXNlZnVsIHdoZW4gSE9UUExVRyBpcyBlbmFibGVkLCBtYXliZQ0KPj4gd2Ug
Y291bGQgaGF2ZSBhIHN0YXRpYyBpbmxpbmUgZG9pbmcgbm90aGluZyB3aGVuIEhPVFBMVUcgaXMg
bm90IG9uDQo+PiBhbmQgb25seSBkbyBzb21ldGhpbmcgaWYgSE9UUExVRyBpcyBlbmFibGVkIGhl
cmUgPw0KPj4gDQo+IA0KPiBZZXMgSSB3aWxsIGFkZCB0aGlzIGluIHRoZSBuZXh0IHZlcnNpb24u
DQo+IA0KPj4gQ2hlZXJzDQo+PiBCZXJ0cmFuZA0KPj4gDQo+Pj4gICAgIC8qIFJldHVybiB0byBj
YWxsZXI7IGV2ZW50dWFsbHkgdGhlIElQSSBtZWNoYW5pc20gd2lsbCB1bndpbmQgYW5kIHRoZQ0K
Pj4+ICAgICAgKiBzY2hlZHVsZXIgd2lsbCBkcm9wIHRvIHRoZSBpZGxlIGxvb3AsIHdoaWNoIHdp
bGwgY2FsbCBzdG9wX2NwdSgpLiAqLw0KPj4+IH0NCj4+PiAtLSANCj4+PiAyLjUxLjINCj4+IA0K
PiANCj4gLS0gDQo+IE15a3l0YQ0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 14:08:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 14:08:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222005.1530083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo02C-0004Pu-57; Thu, 05 Feb 2026 14:08:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222005.1530083; Thu, 05 Feb 2026 14:08: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 1vo02C-0004Pn-2K; Thu, 05 Feb 2026 14:08:40 +0000
Received: by outflank-mailman (input) for mailman id 1222005;
 Thu, 05 Feb 2026 14:08: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=aqXU=AJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vo02A-00046Y-Pd
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 14:08:38 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2a242d1d-029c-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 15:08:38 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS1PR03MB7823.namprd03.prod.outlook.com (2603:10b6:8:21c::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Thu, 5 Feb
 2026 14:08:32 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 14:08: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: 2a242d1d-029c-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cbPvlR6uQmWHlWmMFJvXoZM2Z6rn6cUUGgk5kXlkGWmu0Ys8RBZQ7IViI0Z/OEExezim7UVvEw5JTKlp7BGElEmSffPYvBcKCd/9778Ae4sZoUuXpyinppwfQqTvOqphLsSi4LstmXy2irN7zZqDlp1WZSs+NOHs02fSlI0ZMmYYTE9Aqskr62lK8t5fjk4mXfI4iKLNAaM9YHM98OWYvElwzji6C5u8n0h4jC6G3L8KfU3bFcMS66ECpV46LBEfB6o+mVaGQsVS2YZX626zVz3kNX9Q+nERVahCYTTz5zsS6Mz7ALdn+otDuZxUpu4I7i/tPDhN7YNpn+kyqme5/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=AEScy6YTAF/WDEzKaM9B99PZ3QvZ8ya0NLitb9w4QPU=;
 b=vsDQFyXaGS/Z1s+OJoJXzxX+6OqnvKX6tRJrTzNBMiz0mK7j/jS0gu+SaX6Hw7yyJh4zzt2fFzTINqtElXL3WaajIFijZd6UU4PJohQH6bJKoPuSxEl4xP+BmIcGlRCadGdgB6/CoyTXJowPWkFhw/7paHiBIXJncqhetLjoT0kgdr6tqCdYzuVG4sjUOfjiybLtV/hBi/g/mLbMIFSpxemprN70whqG02yabafW9DfkFRgUnjHy85lQS2f+L4Jnruje61Oiwe1JfGnS38ZFm929c1r3xt/v2dn9eD10xCW5Q7eRcf+ibnCfsuELxr5LTMy+mvRVccOmGZCAgD3PXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AEScy6YTAF/WDEzKaM9B99PZ3QvZ8ya0NLitb9w4QPU=;
 b=F0T7Cujya5fqxABHwX1gjpav8LAZVGMXhbnLNuQoMip9uC9uBTyhlixIOHitdIzPcWLlg1TVzT/n21pxTNCcnrIRZZEW0rk/+xpJHANR5cfcBvy7lv99krAQ1H5llC7yvESCkyBTuL3i64s26tIDLSV+HuNXMLDPwJ0TULbT4+U=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Feb 2026 15:08:29 +0100
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 v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
Message-ID: <aYSkXX9TDoY0KUNz@Mac.lan>
References: <20260204122553.75711-1-roger.pau@citrix.com>
 <82540f88-ffcd-46a9-9813-ebe42ef0b0ec@suse.com>
 <aYNdJ6sb4GPaSEyY@Mac.lan>
 <3f9b4337-3e0a-4693-b97f-46505bc1349a@suse.com>
 <aYN30KD0jsJ2_H_z@Mac.lan>
 <5bd55bef-f30c-475d-9831-382406f699fb@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5bd55bef-f30c-475d-9831-382406f699fb@suse.com>
X-ClientProxiedBy: MR1P264CA0211.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::13) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS1PR03MB7823:EE_
X-MS-Office365-Filtering-Correlation-Id: 267c0a47-25f6-42a6-6c57-08de64c00b8c
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?OXZSbkp5aWJJVnZKamZGK3N0QVRST3VQYjFVd2wvU1RvaHJ5N0U2R2JMeHd2?=
 =?utf-8?B?amx0UFJ1UjRwNE5VS3NsVTZiTnhtVEU5QmgrWVNsNlhXMWg5RjFmY1lNWGZV?=
 =?utf-8?B?NVEwL1p6V04zVnJrUkRsTk1rLzM0K3VJblRPQ3R1MkZtWU4rT0dsbWRndURx?=
 =?utf-8?B?dnFyc0d4NjBDTjFjV3gzbitENEtQYzRVNDUvb21BcEU5dlhrMEVDSFUxSVE2?=
 =?utf-8?B?Mk5Jam5INHlCNUIwSUVjeVhVa25VRURUUmtnQldHaW9tOTAvYW52UlFzcXpH?=
 =?utf-8?B?VURQWGpzWE53dGlIeHI5bEtJeFFSaWszZWJGYm96YlA5WTFJemgzZjhRUkdY?=
 =?utf-8?B?WWEzWmljVmJpeVdNSFN5TlFtMEVFcWlBMm9qbElIRXJ0QmlGUXZHNS9oNk1Z?=
 =?utf-8?B?YzFWNG9HZ0NqN1hCeW9LUmZMM25TakNFdzBxSHBNajFxUjMxMlIybjB3TWlv?=
 =?utf-8?B?K1dpd2VEUmc1WlU0VmxWZmpaRXlqdmsrOForVDN2aEJpbnNhMW9SZjdrdEty?=
 =?utf-8?B?VXUxSjk2SVJOQ1lZbmtBd3U4U0tUbm9kZHM0cklyc3p2MnpXS1pNU2JGUVVE?=
 =?utf-8?B?UTJEN3JBb25DSHhOQmtDSVkzd2pocEtvTFh3MElPOCtEWERDWFMwczRoNEpO?=
 =?utf-8?B?YmhFU3M1dDlnOHRtcHE1SWlOelJGMStJN0JYSW8xTFI0RmdaSFdWb1FsSzhY?=
 =?utf-8?B?am1XMUVHSmVrT3pQRHkyaTJmQVBVYy94S1FKZ2Nab1d1S1MvMEZuYVZxTVpD?=
 =?utf-8?B?cTlYVHEwRFJGd3ZEeG9CZ0tCa1ZkaFZ6aW9oYzdYdmVneGJYS1F0dUdLUC9o?=
 =?utf-8?B?Z3I5Mlk2d1R0MjlnOVBDMml0T3dYSHppdW9QTnNpVEZaU1BMSmtzRHdPSk9G?=
 =?utf-8?B?N2RHNzNTbDhrekh6NHpWTENSRjRaeit4MTdBUjN5NmJQUVBxaVdPeGRVcnc1?=
 =?utf-8?B?Si90UGcrSThRWUlEN3NwSUxkcGtCV05lbWNNNXdXR1VCTjRPRGdlQzFaUDFC?=
 =?utf-8?B?dHd6Wmx0QUY2cGJpZ0RBVXBGQVVSaEQ3TmlicUtPdmcwNU9FbWpjNDgvNzUy?=
 =?utf-8?B?dDhVMjAxUU10NkRnS0ZRdnIyWjJXbWhWdzNjUGpoRmRnWDFSUUxIcnp4QXJE?=
 =?utf-8?B?VE9yQVdRcnRIQkxTTjVXSFlYNy84VzROaENDdjRFeFlkTTQ0cUo2WmxvMDBQ?=
 =?utf-8?B?Y0lZYjBzMlcxbVMrTWFPWURnR2RjYk9DZUNsTFhXWnE0VlhZbHFXemk3TXg3?=
 =?utf-8?B?SWpZRGlocUN6ck0xMTRQQ24wdzZDMklnYTNSNklnM1o5NVRkY0l2YllYS09G?=
 =?utf-8?B?R1FhY3JOeHUvVzhMMkFzWlFlaWx0d1gxcjdYRDhYNE9rcG8xZWNpek9LczBE?=
 =?utf-8?B?RS9sNllaQTRXcUFMcjlzR3RkT0t5MDJCV0VVYlZxZUlyQVVmM2xKanIvUGha?=
 =?utf-8?B?LzZQZ0VhL1ZkMFkwSDFuNTN3YWgxK2FiR1hmcGxaWWRGNjhTN0ZMMitQVGg5?=
 =?utf-8?B?bzBIUThpK3VEVk5aYU5OZVZsMmdOMlhuR2ZhWERiSzFkSUJZVXh2MW5Ld2tm?=
 =?utf-8?B?d3ByL255MVJqSjJIMFNYM3YvOW1JTm1SRHlBVGUzbkJrNFFiMFp1anl1SjIy?=
 =?utf-8?B?bk85VC90c3VqcjRocjNMZ1NLYnhwOVE4d1NrZXZhbFJJMlVSMzViay9UcUFL?=
 =?utf-8?B?cklab0lmQW9KeUdiRzlHMHhDQWVzdHFSSVpTQXF0TWo1ajg4cmJMQ1FUYVlr?=
 =?utf-8?B?ZnQrRFJnZW13OTlwdUdpRVJzeTcvelQvUk9NcXdjRk8zUklBMGdkTTQ4TTZP?=
 =?utf-8?B?Z1N5NEhWdSs5VzRDMTJQbWxlSWRyM3AreFFwaTBSNHpuOHFGS3FLTkpaRml5?=
 =?utf-8?B?eVpEMHp4SU1Vc2QyU1h5d0I4VXBCbThpV2lxUDhRcFlMRGI0NEN3SUFEVG9C?=
 =?utf-8?B?SmFiZ0hSTjZOUUhXZnI5bVJaQjBMczhXL1ZYZm5HcGJ0VFhseUpZNVRCUXEz?=
 =?utf-8?B?eE8vdW9ObmJHOVYwRXJEU2JxMjF6WGlSaEwwbEhjM0NjcjVUU3dBUHQ1b2Z4?=
 =?utf-8?B?OXZxYkJzWDNXTjJhaXZwT0NYMnM5UG5pS2V4QWRoZjJwRkJocWwyeDRaczAv?=
 =?utf-8?Q?Pyo8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?em8wUGgxNkVCK3pHaGVxUXF2Vzh3WU1vbkt0dDNXbTE4dTFtYUxoR09WVWgv?=
 =?utf-8?B?K0sxT3RnT2dRdGdFNFB3czRiT1pCOVJ5cWpDWG1kTnlIWU8yR0JFdktURElu?=
 =?utf-8?B?aFRsNGNid1RqbE5IUW4zZExocVVISVJxRGllQTdyVnduUDg5TmtrTlJJQ29P?=
 =?utf-8?B?bG5UOVFDOW4wanhNbzQrNmY3WmV6K1FoTklleHBFaktKRUx4aGp6eEJURWVy?=
 =?utf-8?B?MXFkTU5WMytmWWUvNXc0LzJ6Vi84NnM5SGloWjlGSlMwR2RqZ3FrRWNGZXVz?=
 =?utf-8?B?Y1RxMjdPdGdSWkdVd0Zaa2VwQ0xCeHcxSUVZQWFzQUdTWmYzMU15a2VheTNN?=
 =?utf-8?B?UWE1RlJXcTVndFJjNTAyMjNnRk1BaHYwczUrU0ZVYnl5UGtjMHl5STNVVDQr?=
 =?utf-8?B?VnpaVFByekh5ZXN5SWE3YlZ2Q3JIZENiemVYcUYrMStrbnNzSWdZbEZMaEQ0?=
 =?utf-8?B?WjJwbWpTU3dWMW56UjFHN2txOXNJK3NsbXVhR3JvYUNyMWR0dXhvM29HMG5n?=
 =?utf-8?B?Qkx0MGlJb0FROG9FN0d1c3h4SmJOOGxNOVZMMzJNUkNiVVZzVjFOUkp0aTdn?=
 =?utf-8?B?NnJGVmIvQXEzOW02d0dTUVJRRnM0Z1M1TU9RdlpLUHVzMjA5NG9QdDQ3bHhv?=
 =?utf-8?B?bDZoeWl0dUcyZmZyZ0krRDY3NmZCU2dzVmZUYXhtS1ZtTU8rNG04ZmhiSFNo?=
 =?utf-8?B?SHl4b3BqWnNVM08waEVpak8xVXJhR2F0YVh1a0YraGF0cDVCdk9UaVVEL25F?=
 =?utf-8?B?OVhhSkJwbm9RMVQxbitHMG5sWUxYT1VpWlVlMlJJSDdhS2lCYjJXbi9Qd2k2?=
 =?utf-8?B?MGw3MzIxK0RSTm1wai8wcERRMndoc3N4MFhqUVA2akY5SDlYblNWNXNrQ21y?=
 =?utf-8?B?bnYwclU0bktVWmlMT1ZsRnJZbzF1RzgxNFFvd0lueDhsNzlVUWRrdFg1S21H?=
 =?utf-8?B?SDZtdlRTb0V2ZUhzc1ZPQTRIclU0R2FUM2hZUHNVSDRrTUd5eEFRTFFLMGND?=
 =?utf-8?B?K3BvZ1JHTFQ2blkwWDMxZTFMYzlmNVl5Y1RlaGJ1RXBCTVhoQW5QTmRNOEZY?=
 =?utf-8?B?a2JyVEJlSnZmY0pWOFh1ZmkwUXpTNm9jcHlzakFLeXVSOUNLMTl4d0tMOGs1?=
 =?utf-8?B?UjlDcGR1NklkeXZLTmtjeEl1T3pGTWQ4MmVXeHRqdCtWRmZRQUR1bElyZ2tO?=
 =?utf-8?B?c25vL2hpaE9kYmJ1cExDK0o2ZXlXaEdjVjVqajQySlJiNUpEYVM0Z0xQcU96?=
 =?utf-8?B?N3AreU1SckxuMlliZzNGMG0weVJXYVFuc0RVVUJWaG1CeDR6cUhSVSsyNmsx?=
 =?utf-8?B?ZmtXa3Rka1lrTk1oOHRtaUozUnRHZ21ublhrMEZmdUQ2WENuWHpEcU5zZTB3?=
 =?utf-8?B?bWFWTnVmRG13RnVNR3lYanZKM25CSVB0ei9SMldDWnR4SEpJVi8yTlQwU2E0?=
 =?utf-8?B?YW9HeXltUVFFcjd6WkVEMklRRkV2UGxteUl0NUl5Q1FtcDVWZXFhalQxeExU?=
 =?utf-8?B?M29wS2FvWjc1cHBJekgyRXlWMlk4ZXVhQ25jT29zQmo1elBBK1dsMWNqQlkw?=
 =?utf-8?B?Q3ZNTnM4VEFEMGh4aWltZEcxUUtrVmlaMDBrb29sbUYvSlF4b2UxTGtCa2xp?=
 =?utf-8?B?cDBiazRmVjl5T0daTW0rNHBIUjErS0ZIc282dEszRmF1YWI2VkM0cGU1ZEd6?=
 =?utf-8?B?Yi9ReEtPWXdMVTRZdFZFT3RsV1U4SHNVaEtlcEgrNEVhaUtMVHNSTnY5OUYz?=
 =?utf-8?B?eWd2MHg0UnZ6ejdFTitZS3JWeDdqZXVFOUEzVFd3OWY3Qlpoc2lHWkltcHNL?=
 =?utf-8?B?RXE0SHAxK0hmTkJMSS9FbmlsYms1bCtIWXVacWNOdjBPREpITi9vaHJISnQ0?=
 =?utf-8?B?TTVkUGc2SGloc054b3hhSFFBb0ZhdUNxWkdZU0FhQzBGZk5OcjlGNndhVUlE?=
 =?utf-8?B?MHhQTlBjSG5IV29BZnN5Q1RQUUkzOWpORHc3cC9uUkRSMEQrNFlQMENzMWFG?=
 =?utf-8?B?VW80Z1hZYWwvYnNqL0I3SzJyUEZ2aWM2RWhtV0RVM3VZTG4zcC9HclRVeXAw?=
 =?utf-8?B?VFprV2hMdXo2NWd2TXY2UHdaZlU0ejlGb253VHgwZnZuMVZYemhqZWZPaE1Z?=
 =?utf-8?B?Wnl3YXBPSmZ0SndqVi8xNVRWWE91ZkpZSWkzOG1SN1greENraVIxd0Zhd2ho?=
 =?utf-8?B?bklWNUh4VjVTVSszUHN2blo0YjlFbkFMdjNjMXJnZEdXNXlrT1pZSFJHb3lL?=
 =?utf-8?B?dVRzUFpxTGpreGc1ck0ybzJBbW52a0s0dFZPenBPbUxXdkFIcTFzYXVjUmt6?=
 =?utf-8?B?bmFpMit1Mm9wUTBhQ01UU0J2ZTdkbGhIZDhSdXFnbmRkc1R6ejVqQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 267c0a47-25f6-42a6-6c57-08de64c00b8c
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 14:08:32.5964
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Z5of4crkI9ht8DpVNYIat8H7NHNTTGURYl9O8BmaGdSdShL76eOOJWloMK0O/Fo6VsTCkZ12amzs/jd1+TrHbA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS1PR03MB7823

On Thu, Feb 05, 2026 at 09:29:53AM +0100, Jan Beulich wrote:
> On 04.02.2026 17:46, Roger Pau Monné wrote:
> > On Wed, Feb 04, 2026 at 04:08:21PM +0100, Jan Beulich wrote:
> >> On 04.02.2026 15:52, Roger Pau Monné wrote:
> >>> On Wed, Feb 04, 2026 at 03:06:52PM +0100, Jan Beulich wrote:
> >>>> On 04.02.2026 13:25, Roger Pau Monne wrote:
> >>>>> The limitation of shared_info being allocated below 4G to fit in the
> >>>>> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
> >>>>> start_info field is 64bits wide.  HVM guests don't use start_info at all.
> >>>>>
> >>>>> Drop the restriction in arch_domain_create() and instead free and
> >>>>> re-allocate the page from memory below 4G if needed in switch_compat(),
> >>>>> when the guest is set to run in 32bit PV mode.
> >>>>>
> >>>>> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
> >>>>
> >>>> The tag is here because there is the (largely theoretical?) possibility for
> >>>> a system to have no memory at all left below 4Gb, in which case creation of
> >>>> a PV64 or non-shadow HVM guest would needlessly fail?
> >>>
> >>> It's kid of an issue we discovered when using strict domain NUMA node
> >>> placement.  At that point the toolstack would exhaust all memory on
> >>> node 0 and by doing that inadvertently consume all memory below 4G.
> >>
> >> Right, and hence also my "memory: arrange to conserve on DMA reservation",
> >> where I'm still fighting with myself as to what to do with the comments you
> >> gave there.
> > 
> > Better fighting with yourself rather than fighting with me I guess ;).
> > 
> > That change would be controversial with what we currently do on
> > XenServer, because we don't (yet) special case the memory below 4G to
> > not account for it in the per node free amount of memory.
> > 
> > What would happen when you append the MEMF_no_dma flag as proposed in
> > your commit, but the caller is also passing MEMF_exact_node with
> > target node 0?  AFAICT the allocation would still refuse to use the
> > low 4G pool.
> 
> Yes, DMA-ability is intended to take higher priority than exact-node
> requests. Another node would then need choosing by the toolstack.
> 
> > Also, your commit should also be expanded to avoid staking claims that
> > would drain the DMA pool, as then populate_physmap() won't be able to
> > allocate from there?
> 
> Except that upstream claims aren't node-specific, yet, so could be
> fulfilled my taking memory from other nodes?

That's likely to change at some point, but yes, they are not node
specific yet.

> Aiui the problem would
> only occur if that DAM-able memory was the only memory left in the
> system.

Indeed, in that scenario toolstack will be allowed to make claims that
cover that DMA memory, yet populate physmap won't be able to consume
those claims.

I think there are two item that need to be done for us to append
MEMF_no_dma to populate physmap allocations:

 * DMA memory is not reachable by claims.
 * DMA memory must be reported to the toolstack, so it can account for
   it separately from free memory.

Last point could also be solved by subtracting the DMA memory from the
`free_pages` value returned to the toolstack.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 14:12:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 14:12:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1221984.1530093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo05t-0006BM-Jk; Thu, 05 Feb 2026 14:12:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1221984.1530093; Thu, 05 Feb 2026 14: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 1vo05t-0006BE-Gj; Thu, 05 Feb 2026 14:12:29 +0000
Received: by outflank-mailman (input) for mailman id 1221984;
 Thu, 05 Feb 2026 13:56: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=kxpX=AJ=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vnzqo-0002Lg-5i
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 13:56:54 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 838e417b-029a-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 14:56:48 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 45BCC4290347;
 Thu,  5 Feb 2026 08:56:37 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 838e417b-029a-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH] Xenctrl.domain_setmaxmem: fix 32-bit truncation bug
Date: Thu,  5 Feb 2026 13:56:45 +0000
Message-ID: <7f0c73c140b53cf0777437b46d0a0fda496b48b8.1770299489.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Observed when attempting to boot a >4TiB VM:

After a call to domain_setmaxmem with 6370254848 (KiB),
the domain's maxmem got set to 2075287552,
which is exactly 2^32 smaller.

xc_domain_setmaxmem takes an uint64_t as a parameter,
and the OCaml value is 64-bit already, so fix the C variable
to match the type and avoid the truncation.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/ocaml/libs/xc/xenctrl_stubs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index ac2a7537d6..c55f73b265 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -947,7 +947,7 @@ CAMLprim value stub_xc_domain_setmaxmem(value xch_val, value domid,
 	int retval;
 
 	uint32_t c_domid = Int_val(domid);
-	unsigned int c_max_memkb = Int64_val(max_memkb);
+	uint64_t c_max_memkb = Int64_val(max_memkb);
 	caml_enter_blocking_section();
 	retval = xc_domain_setmaxmem(xch, c_domid, c_max_memkb);
 	caml_leave_blocking_section();
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 14:12:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 14:12:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222037.1530105 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo06H-0006e5-Sz; Thu, 05 Feb 2026 14:12:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222037.1530105; Thu, 05 Feb 2026 14:12:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo06H-0006dt-Nb; Thu, 05 Feb 2026 14:12:53 +0000
Received: by outflank-mailman (input) for mailman id 1222037;
 Thu, 05 Feb 2026 14:12: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vo06G-0006QL-Is
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 14:12:52 +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 c1921347-029c-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 15:12:51 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-43622089851so670904f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 06:12:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4361805813asm13904858f8f.27.2026.02.05.06.12.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 06:12:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1921347-029c-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770300771; x=1770905571; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=m9JdkwItn+6Lp4iTVKDXeMjHZogyxORKD6gg6nZLFHc=;
        b=MiH1p8TdMuxfq1gMvwDG9u2P7Gcjb09h1TTU/i5DdsaS0wtmG5gu0afGOnQ5hSnVn4
         M0YVjkJ7qKOdoT2blRnxj0sh35N7JRtd0kv95VJ6MkU6MBW8DBq/iOfi6cjHs1qvZVpz
         zdDtTVT+WftmMzk9rojMFH58tC2f45aJytickapPVgK1hLVnyol9xkrGPSE/wc72HeNk
         Z3cpvMkMa3+AhUl/5tErq6RmJgtJae9r5AEKH61Gb2Pu3W9QYbaDNjrF6qyVxXgVEf5o
         N/t0jWsqQFff9QUpPBsaRPNIw2kJaNup8mSqLmg51Zn70rPCBhN+6cxirxBhMU22WHje
         EN9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770300771; x=1770905571;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m9JdkwItn+6Lp4iTVKDXeMjHZogyxORKD6gg6nZLFHc=;
        b=wdhrCC32QXhmaXCFB+4FlUyr0EwnAx1KP3WxOo8NzvX5wKOEs50QPjjzk/8xLBbSEt
         0O8hgnFq/2NzIUOyrnttjAr/9Z8leIrK7x3Wzq7PPYArbNgBBhwYsBQMg0UHLglriHZg
         SxKM1yCJDPe7m3TPrpA7YpNEbxLd7SNecJL2tgauw4mqtr0QMeNugqAzFBQkALlGE/S4
         w2xZzRLiMVC9C6W1ORqk9oYu0iPehFQrqXJBzo5wpna6I9ZnnIB87FPg+DfcbCQPsTXy
         vBBIwtWsnkwdcI9nSa5Ies76SuZdhSojeSLyYDIXEO+przLhNpWRpijJv06MpUKasYgR
         Vf2g==
X-Forwarded-Encrypted: i=1; AJvYcCW0uGCmM6CBd5JhRPRk7Or/czkv/mWPyL7RSTDhJFh+Z1SDs4DeX0tR/hQFTOAD4btt4uRAgSI/gdY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygN/J4GI+9UmDdErFrKpx4KLoJZ+htc98gpGgSFbd5JAhAQd2q
	H+bIz3ND8gH0p4wCWtee8fyrDKOclIIl6LqtDPRLsOgADGfJRpixmqvdGsfBsCcVtO8bevKiBpj
	/wRE=
X-Gm-Gg: AZuq6aJhGmTZRZGhYAQHJxaf4kI+linvubTTEipK0vOpxRor3q4H50oLWbuTeia3xg8
	1NsWuQxS97u8LDPyvc6ga1FQnf+iMHAdYhuwUfqqXZzTKnBokf/2fKQKOrHborZCpU/GWqObzps
	UaY7VyFh3SegtH+xkAI+1K+ndar6weKxik7eppY4r1MJttbaQwxxlvKiy6wGEZY8WNhZO/LXcZv
	Gg0VKy+dHoeK6jptg4fQbM2tfXSswtQZAEEtiA23GPjMrz0ba5PXflF7oxVaqKFtCiUWi/IL6Pg
	UdQHJ7VEfNaalcXNw8YQ8qsH/SBrl3nuClXwXcH1NMV45YKLBF2jsv0NC5VtRTV3qEASnoT44Tq
	8E2kxIwnVZU1QVP4KBbf+OyysPFQk/6xa2bQds+zkPOHzWaYaXw5Y5Q6N42TpO0dav0MpF+YpmJ
	7UiqgLsAxeDBxsR52/g+UP6LwGFNiWK8eCnUiKJ7HLQ1WX7TeSb/LGgCrtkLWVtcOuF6WtYNhAW
	tY=
X-Received: by 2002:a05:6000:310f:b0:430:feb3:f5ae with SMTP id ffacd0b85a97d-4361805ec2fmr9042708f8f.55.1770300770758;
        Thu, 05 Feb 2026 06:12:50 -0800 (PST)
Message-ID: <9274f071-88ec-4b95-b9b9-034920540505@suse.com>
Date: Thu, 5 Feb 2026 15:12:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/domain: adjust limitation on shared_info
 allocation below 4G
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: <20260204122553.75711-1-roger.pau@citrix.com>
 <82540f88-ffcd-46a9-9813-ebe42ef0b0ec@suse.com> <aYNdJ6sb4GPaSEyY@Mac.lan>
 <3f9b4337-3e0a-4693-b97f-46505bc1349a@suse.com> <aYN30KD0jsJ2_H_z@Mac.lan>
 <5bd55bef-f30c-475d-9831-382406f699fb@suse.com> <aYSkXX9TDoY0KUNz@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: <aYSkXX9TDoY0KUNz@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.02.2026 15:08, Roger Pau Monné wrote:
> On Thu, Feb 05, 2026 at 09:29:53AM +0100, Jan Beulich wrote:
>> On 04.02.2026 17:46, Roger Pau Monné wrote:
>>> On Wed, Feb 04, 2026 at 04:08:21PM +0100, Jan Beulich wrote:
>>>> On 04.02.2026 15:52, Roger Pau Monné wrote:
>>>>> On Wed, Feb 04, 2026 at 03:06:52PM +0100, Jan Beulich wrote:
>>>>>> On 04.02.2026 13:25, Roger Pau Monne wrote:
>>>>>>> The limitation of shared_info being allocated below 4G to fit in the
>>>>>>> start_info field only applies to 32bit PV guests.  On 64bit PV guests the
>>>>>>> start_info field is 64bits wide.  HVM guests don't use start_info at all.
>>>>>>>
>>>>>>> Drop the restriction in arch_domain_create() and instead free and
>>>>>>> re-allocate the page from memory below 4G if needed in switch_compat(),
>>>>>>> when the guest is set to run in 32bit PV mode.
>>>>>>>
>>>>>>> Fixes: 3cadc0469d5c ("x86_64: shared_info must be allocated below 4GB as it is advertised to 32-bit guests via a 32-bit machine address field in start_info.")
>>>>>>
>>>>>> The tag is here because there is the (largely theoretical?) possibility for
>>>>>> a system to have no memory at all left below 4Gb, in which case creation of
>>>>>> a PV64 or non-shadow HVM guest would needlessly fail?
>>>>>
>>>>> It's kid of an issue we discovered when using strict domain NUMA node
>>>>> placement.  At that point the toolstack would exhaust all memory on
>>>>> node 0 and by doing that inadvertently consume all memory below 4G.
>>>>
>>>> Right, and hence also my "memory: arrange to conserve on DMA reservation",
>>>> where I'm still fighting with myself as to what to do with the comments you
>>>> gave there.
>>>
>>> Better fighting with yourself rather than fighting with me I guess ;).
>>>
>>> That change would be controversial with what we currently do on
>>> XenServer, because we don't (yet) special case the memory below 4G to
>>> not account for it in the per node free amount of memory.
>>>
>>> What would happen when you append the MEMF_no_dma flag as proposed in
>>> your commit, but the caller is also passing MEMF_exact_node with
>>> target node 0?  AFAICT the allocation would still refuse to use the
>>> low 4G pool.
>>
>> Yes, DMA-ability is intended to take higher priority than exact-node
>> requests. Another node would then need choosing by the toolstack.
>>
>>> Also, your commit should also be expanded to avoid staking claims that
>>> would drain the DMA pool, as then populate_physmap() won't be able to
>>> allocate from there?
>>
>> Except that upstream claims aren't node-specific, yet, so could be
>> fulfilled my taking memory from other nodes?
> 
> That's likely to change at some point, but yes, they are not node
> specific yet.
> 
>> Aiui the problem would
>> only occur if that DAM-able memory was the only memory left in the
>> system.
> 
> Indeed, in that scenario toolstack will be allowed to make claims that
> cover that DMA memory, yet populate physmap won't be able to consume
> those claims.

It would be (following said patch of mine), but only in order-0 chunks.
Which would make ...

> I think there are two item that need to be done for us to append
> MEMF_no_dma to populate physmap allocations:
> 
>  * DMA memory is not reachable by claims.
>  * DMA memory must be reported to the toolstack, so it can account for
>    it separately from free memory.
> 
> Last point could also be solved by subtracting the DMA memory from the
> `free_pages` value returned to the toolstack.

... any of this more difficult. We don't want to completely prevent its
use, we only want to (heuristically) limit it.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 14:59:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 14:59:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222069.1530115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo0pP-0003rT-7e; Thu, 05 Feb 2026 14:59:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222069.1530115; Thu, 05 Feb 2026 14:59: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 1vo0pP-0003rM-3c; Thu, 05 Feb 2026 14:59:31 +0000
Received: by outflank-mailman (input) for mailman id 1222069;
 Thu, 05 Feb 2026 14: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=aqXU=AJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vo0pN-0003rG-WF
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 14:59:30 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 419ee51a-02a3-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 15:59:24 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB6145.namprd03.prod.outlook.com (2603:10b6:610:d0::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.7; Thu, 5 Feb
 2026 14:59:18 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 14: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: 419ee51a-02a3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=leG5IRQ6WELDIGCanNZWE18Bnb3BsoG+acjEonnE28yWRxjODgUcNzDfT+UrXD5O2u5TiA8h0y9qLXSuFyeq4zRIf36FmNRFmXu2aIWr0jUB+R2+KMaMFQf559L+C2IZoGxLPShrKMzOt3l/6wJ9W7U0wKLxaHlkcXmt4t0uf/IipkdCV9IX14pz6CYFwTRQbPmUBoVmGG6Wi54NIfCUpk71NOhQ87hbK/zg6VW4WtM6DQagdn8uXPcoSqabOGmaswhLhOfADd8yxPvFTVJ4NTeqfT1HtNJDqhkZRGOMCIaTZ/c2CzJofACKKdlPja81mgJbxfpwL2JETQOotBJMDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FAgvj105r1XUSES0+bqszkrt5vEC6Yy3AtKCOMh/jsA=;
 b=BQkYWwtcXbUHpD9vhOwJb3rqQrRz6rN9irb+YA/7Ner+BGEkjR66FAXMvzpfrlawpCcwPHDt+QuJ93bIWmD9RxrvhH3wj86s6+gOWGx37qNZAbcO3VqKbNyDjg9rbConYlhNNI9p4pMJaiUnMVHQenzlL27q6DTCa6YeW6WcmzHiFJaQc/NTjaWCmx71izc4shYXZjwLme4Vfg/7LAu0ypHgnQt5kxEQbdxhR/ENMXAvWmRN1owrxErQUiJ/gJgUBw9yinjYY95KQjroiIFUZ/NWxU638AOtzyloSlmkylAM7bft/n/G9L/E5QCn5LnkaBP3b87hQLILQl6wGDdszg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FAgvj105r1XUSES0+bqszkrt5vEC6Yy3AtKCOMh/jsA=;
 b=k72283hy/izTT08815kygpwBGfcqD6MdPrKjulANUKwrXUvfDwVPXwuoDQbCyVj+4J5n1TLYUxzpIDfju2CHxuwaCqu4MOe0Y9J2CJnOtE6MY/nk+CcL4TT6680sV4UvPludUA6QOSt7sJbO5LiKpYTG0KrwDYPmHJXYRRbRZok=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen/arm: use BSD sed compatible regexp in SRCARCH
Date: Thu,  5 Feb 2026 15:59:13 +0100
Message-ID: <20260205145913.99032-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0031.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB6145:EE_
X-MS-Office365-Filtering-Correlation-Id: ce2083a2-ec99-48d8-7142-08de64c722bf
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?UUJkMnIrSE1YZC9TSkdTTW0xTis0RVM3MXgxSEJIVTh6aTdOdUFvVjBzd3Aw?=
 =?utf-8?B?eHdieGt2MHZxSUJCUVJoZnY2Q2tYL0RsTENvd05pbWRVYThabU4yQXpaTS9F?=
 =?utf-8?B?UWpKU0lZOXJxZzFIMUVRWWtiNnVyTXNoUCtYZWRjaXVPK3UzbmJLREJOM0dl?=
 =?utf-8?B?dE02SEFlZUJ2dHh4Lys3WDIxREcyOFBlbjVRck5GOWVvTHFsUEdaY3RhcjRS?=
 =?utf-8?B?bEpNSkRKMFBmcHp0STBnMWRGTnU5UUpldG1oTjdGSFZob3dCdHJveEpmZ1hZ?=
 =?utf-8?B?MWFXVWc5RGNtMkxNd2VNWGJGbWdDaHRLbmVFeGtMSk40RytBZUdUYjRuaTN1?=
 =?utf-8?B?ZzFPM3IwQ2xJZTY2SnEwS3d0a2swZkJGb2paYkgxWk10N2FpY3hkK3BIOXpT?=
 =?utf-8?B?aUV4bVowRTlFQWxMdXMrWjJDbmhLbHBRU0lmQmU2cFU0QjZoaE8zeWVOdjFj?=
 =?utf-8?B?cWFIZ3Z2eUs0RHBJS0pnY3VGcEp5UDFORkYxa1pxc0w5c0lJVjM0NXE2dWZm?=
 =?utf-8?B?bVlHMjBka2ZhV2JSR2k4MUpZMFZ3M0trYThKdDM5OEpGc0wvU0xLb2s4Y2tO?=
 =?utf-8?B?MWpTd0xWbVdCU0JJcVNwZlJzaDBScVIwa2VLVEJBQkZKeTRZL1RBU3c1Z3Jv?=
 =?utf-8?B?aExxY294Q1hublZMNk9vdnlTNFMwNEJRd1ZJcVJiRlNzbDJQaFJ2WGxHSUZV?=
 =?utf-8?B?RERheHZzK0NDaWg2WDRrL0o1RXBSLzFRaG5Xb3NPTDhTZGlWMHBUUFZ6MStx?=
 =?utf-8?B?R2ovc2NFZFNMYnFHVWFoOGJValVZM3JaaGZWamgzY3kxd0trWXNpckR1dzJr?=
 =?utf-8?B?U2pTMzU2T1pWa3JwNUcrUFJvNTN1SzZxM1BYNytKM2xFTm1UemVDKzE2cGtU?=
 =?utf-8?B?ZkRiUDBSa1h4eW41eUc0eG5vRmRLTXBjdlJrazM1OXB4MjNhQ29ydlZ3aUVG?=
 =?utf-8?B?S0ZMa1pYN3hreG5WR3YyQWQyZUROZlNjV2pkbVlxenJLRndoUDNFYUxpRjRX?=
 =?utf-8?B?N0RyajdOaWpCZUd6NVc1QmRydmI4R1JhaVRzUkx2YlFaL1RtOUk5UERkdzEr?=
 =?utf-8?B?U1hpbytBbDU4b3UrNkNXa045cXd3TWRiVmRPK1BQOWYzZXNUMDZ3YkdGYUFV?=
 =?utf-8?B?SWpaSWRac1RyZ3N4NkQ2cFM2WjFpOElqamlEMU5INHk3Z2wxM05GSVZUVTgx?=
 =?utf-8?B?TXYyWUVCck1vZjRiQjJhK3M2cDFudittdW9PZ2RCM3V5OEFidVFSM2VKOFFz?=
 =?utf-8?B?akRWblBocDJBbzYyMHpJTThPaHZOd0EzeUJ4Qk92YVorS3RTSThkQmNtYW1O?=
 =?utf-8?B?bGltaVl1bHBQUDlBZVhjZ29QTmk4NlNXN0oreWlTczYwWEFscjZRYUp5d09F?=
 =?utf-8?B?NlFsZy8za1dabkordEU5eUJFOTREbXBoRVlWdUEvblNwTVhHaEh5UlRBcWJE?=
 =?utf-8?B?aW4wKzYwV1d5ZUNBeTZKNzBWRkFGdkRWZmVrWW4xT2tHNHppWUk0dFlDaDFG?=
 =?utf-8?B?L2NRdStQcjI3YkR4cWJ4WDVUTGlseTBpTytLWlVRV09iV25YZ052WkJJTzM5?=
 =?utf-8?B?bGZiYmhOeHpJS3FHUDdOQ0c5eWpTczM5WEFjc29IcXBUUHlzcE4wRUtnaXgz?=
 =?utf-8?B?OCtaNHVqRmYwcEZYUGcxZnBTYWcxSFRMS1laeHlvUU5sNHBPVG5ZNkpPc0FD?=
 =?utf-8?B?UStHcFBhZHI3d2h4aVpnZTRZSGlwdk9EMUlUbHd2K2dkdmNjUU1LTHlHM0E2?=
 =?utf-8?B?M2VoN0RuOHh5NEhVNWdIdkxIN1B3cHdDUkdURFk2NjNhVExiUGFCUzdLT3Vv?=
 =?utf-8?B?WWEvVTFGQytzNis4Smt0czRXSVVpZXFxYXNSWmhwUWx3YXpyVVRtMG5hL3pU?=
 =?utf-8?B?ZkZCVDNzeUQwODRRaHRnR0NkZFdOWTI4Q2Mra0ttVWtmcTVGU0dMR09zRjBL?=
 =?utf-8?B?Q00wWCtCcEt0L1RQSjZwamhNanY1TTlsVXBmcUpwckNqSHNRNThkWkFRYTd3?=
 =?utf-8?B?SUFGa1dHb0lad0pPSGJXM2t0Y1A0eldLcmU1SmNqVFJtYVVlQTRRMVpyQXJ2?=
 =?utf-8?B?UEZjWkVmVnZ6VzlDRmlyaXVMK0xoZjVNaHF0amY1MFhYR2pTanRWYmdsZ2Z6?=
 =?utf-8?Q?hFbY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dVNyTDV0b3JqckRwZ0d6M21ONmJDNjJzNFg3K3AybkVJcDR2TWxHUlVnM1ZG?=
 =?utf-8?B?cFliWG5UUFdKQm5EYSsvUitQOFJ6YmJsamF2L1k5UUlZZmRxYjBGbmtyWXdl?=
 =?utf-8?B?OHhZZEdLWXljdzRHQVFIeXpDZEhhNnVJS2xWcU5QRnhGaVRKdko4dmZYWE1a?=
 =?utf-8?B?bFhOQjQ4UHo3bk1zRGNDOVh5a0ppK1ZveG1heVJwazR5dXlPZC93eDBVVHJP?=
 =?utf-8?B?eTY3VUpoODJlOFlyMlczblVUOTB3MjRlQ3hXUnFvQm1vNi9NYmNQYVNSbFYz?=
 =?utf-8?B?Z2xHQXJvVnZWUTE5Ym0rQ2M4cElkMEJ2T0pHUEkvUUhKMHJrVnovOFd4KzNI?=
 =?utf-8?B?cllUcWdFdjdjRkRMdkxZVE1QWVZyTmhkSGZlYU9XYUZEY1Fpa2FHQm9pamNQ?=
 =?utf-8?B?SlprcDlnRnhQN0Z3aTJwWmlqZmlnYXRBck1KOVBHQVM0MWV3QXkrbTc3Z2J6?=
 =?utf-8?B?SjluT0xaS3hDbHQrekNad3I0K3I0S0NzaWZUNEc4ekhxNUV5MUUxbnErUEFt?=
 =?utf-8?B?QUVMNExWWGdyNGprWGFidk50MVV1RmlRdVlHZ2h2cG9xRXZYMmJjalVBRVVI?=
 =?utf-8?B?ODFzeUs2dGZwZEt4MDExOU1BMjE5SVBnMTBHemlmTUtOYldmaERhWnRRVkFD?=
 =?utf-8?B?UGZCNlNzaWZYVEJ3a1Y0TGh1SDJHNkRQcUh3SVZhaWhXY0xtMEw2cnVaeDNa?=
 =?utf-8?B?UmNFZ0xOT2VucGdmOEpDVUJHVWpTRjVXbjhCaldxcHRSeUV2L2JZZ1pDWUl0?=
 =?utf-8?B?Qmc0THByVUlmc0hKRjdzK0VJNWJuVittSDFmdmY5eTJBN0ppbW5sTmphbW9Q?=
 =?utf-8?B?TllzMGRDR1JWTUplejRyK1dCcTQwN0lMSzZOdDIvWVFoTys2VkJFTlpLc3NY?=
 =?utf-8?B?U3JNSDFMVExKUjYyVzFQT0hnc3R5ZTRjRVhrbU9aY1ZjMEhSWDRqcllIUHhn?=
 =?utf-8?B?N2kzdjdPMTlLdDMvVkNVRTc3VVl1SHhBUmJIWmtwZlBrc2RaeU5Lemd3U280?=
 =?utf-8?B?ZU5aS2daSkMveDE4akNrVmpMcktFc3BJNExOT3oxa1ptK1lnakMvS3puT3JC?=
 =?utf-8?B?WTBvWlliZWErRjNiK0pVNyswWXNWKy9nWkhJb2Q4UlN4U3VESWZ4aGdaTW1u?=
 =?utf-8?B?bm8xanJaREtwdjdRZ2JCcjVDY3VVRllpM3hDUDhrVk5Eb21XQzkzeEpCNEFi?=
 =?utf-8?B?TFhtOFV4d213ckVBVkhDL2JpdElTRFRjeEY4dUVGQ0VabFpQczZPRWllK25x?=
 =?utf-8?B?eWUraUJrMk1JK1JxMUl1c1BJenRVNzhVSEZRelNqTGkvQU9jdVJPSHhLZWJJ?=
 =?utf-8?B?NmZjN2lPblJGS0xVT0oydkp2M3cxVmtQaG1qTFpaLzEvamdkR3l6OXMxUWp2?=
 =?utf-8?B?NGJua2x4SnBhVE5UZzBOVmF4d1l4QUQvL2VGanR2SUFFaEJ3aE5wMUx6Q2p2?=
 =?utf-8?B?Y1NZdFFHZUlEMHJFWEppMFg3UzlqWmduUWlBb1A0M04ySk9CT0ZtbGlCTWMz?=
 =?utf-8?B?QWNwSUxueHVUeW9BaFQ2S1Z3NytDSE9SaEkvaVZrbjFTTGtxUENVRVRyNFdK?=
 =?utf-8?B?NDBobVFLNnZmeWtBOWplQ1I0Rk13dmh5OWY2U3ZSNHV5L2JCL1RqNlAyd0FN?=
 =?utf-8?B?cHhUUEtrR0wyeUU4aTBTRUpTSFErNkduYmNwN3NqTmxTY1VzbDhrUVZnZDhp?=
 =?utf-8?B?UUNla0VtY2VwNC9LTTRQUTVrc1p5b3hKTXk3ZTA1SkpZK1huMFZvRTZJTHNy?=
 =?utf-8?B?RlFKc3JKcUhiVU8zZm14M0J1WVJLRzgxTmNVQUNvbzluNWd4TW9mYkVPZWZ5?=
 =?utf-8?B?aFFYYnRXY0ZzY0pVa2lkVytwOXlZT3A5ZkNwMjhsTGNJNG43akVNWEQ0UTVI?=
 =?utf-8?B?cXZ6K211cGIybFFCeEFyMW15ekxvcno2ZHgxRlh6ekErMFhKNkV6eTlHc3pX?=
 =?utf-8?B?NEg3LzFjTGtYMk9FVlJoOUNGaG1SSzhDZU02dXlSeVhDYXZQUXlBN0I0L280?=
 =?utf-8?B?Q2dKL2dPRklYazd5Z0I2VjliMVY1Z0JGVnZsZ0ErdFh1R0dZSzRsQm05dm9u?=
 =?utf-8?B?ME11cDJiRVNRazk1dWJTckdDMzR0d1J5ZW5BL3d2VklrMkNMRStmei8yOHc5?=
 =?utf-8?B?RGlzd2hxNm9qZkwxTmlUcGhBSmhOd1JkcytTTCtnRU8rM2hDUEVLRXR6L0Ir?=
 =?utf-8?B?YUNPOGwzeVlySEZHNExuL25ZRzU3STM2dkxBUzFXWlNNaENYMTYyQnMrNndW?=
 =?utf-8?B?VjZxdXczMmVDeDhlUHM3cm9pMGxDSjVTWE9XemNxUUM0VHQrTXlRZUxUbkpz?=
 =?utf-8?B?bE50Qkg2UGxHNFpodnR5SjlYUXU0WFc5bHpvNFdZcWxBY3BnUzNDUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ce2083a2-ec99-48d8-7142-08de64c722bf
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 14:59:18.0271
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rcrneGSPKaLGwVuhwsZZb5+eu6HD0r5D2G+DTPzUEJW2z9obvyM05E0u5+/IFgw7JauxmTMHSRLrGi2sGEPVwg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6145

Convert the ARM SRCARCH variable setting to use the more common 'arm.*'
expression rather 'arm\(32\|64\)', as the later doesn't work with BSD sed
for not being a basic regular expression.  The usage of | alternations is
not part of basic regexp support.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/Makefile b/xen/Makefile
index 13e336ba5484..31352d4cd260 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -242,7 +242,7 @@ include $(XEN_ROOT)/Config.mk
 
 ARCH := $(XEN_TARGET_ARCH)
 SRCARCH := $(shell echo $(ARCH) | \
-    sed -e 's/x86.*/x86/' -e 's/arm\(32\|64\)/arm/g' \
+    sed -e 's/x86.*/x86/' -e 's/arm.*/arm/g' \
         -e 's/riscv.*/riscv/g' -e 's/ppc.*/ppc/g')
 export ARCH SRCARCH
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 15:02:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 15:02:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222080.1530123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo0sD-0005QV-LZ; Thu, 05 Feb 2026 15:02:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222080.1530123; Thu, 05 Feb 2026 15: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 1vo0sD-0005QO-Iv; Thu, 05 Feb 2026 15:02:25 +0000
Received: by outflank-mailman (input) for mailman id 1222080;
 Thu, 05 Feb 2026 15:02: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=2IOj=AJ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vo0sC-0005QD-1n
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 15:02:24 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ac719c64-02a3-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 16:02:23 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB5266.namprd03.prod.outlook.com (2603:10b6:a03:22d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 15:02:14 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Thu, 5 Feb 2026
 15:02: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: ac719c64-02a3-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sPgSKIGx++s4TM3JqBU6/mJUA63x6zS5B+nHKXt3EFEZo7+X8cwWWOt6crBZQqGNs84ikRbH2zu/0nqDr9ZMSAqBsConrZXnp3vIoIq4e7NS1OBI6EWrGfTF+lbgTLJSz7rRvFpkcq7Yn04+9ZWrtYJ1Hlfeg3GT0drP03LcOTfp8qM3qGPQB/8vMEw0bFzWL+DwUlJYygP2SQKAaBC0TsdIYWSSMQaAaONRfi9syzWEgXLMeaY+BHHGqJn3DxEQJbbbOOJX9yyDl/WT2PQ2JWUENeRucZqyahCv/owD3+aytmCCkPkMdIAmaYou/O9EyFPzNe4mQo53IqRUsc3lzg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZAmtEgyZ3izE1S3KpuxV5RgaSy/1mD7wvplzaMq4vl0=;
 b=yoDdk60Io8gxRndLgz7Dv+vtqfYbJ7bKR3R1208ajAulhq3aIzbTJOG1kJEdfWPVYzWkcvro5YJMLZHlxm4MHvE/Xzaf2gwk64XE2A8GjdRYNloRv1aRM691nmVhVnCuX7895I74XI3tfbnIR7jSA2hW8ATj31h8rsI5k3V35wXggrE1v+3RipdX825C7qV8QCBxeBLSw5IE68Vguea5Dxgc3fVbANDo/DgcribdQOi6otUG7VX5wtvwMiaY8SCCSUqAfNs14YfxdmgD8gq5lfPjUbIX2Zckr1eqAmGL7mF+3EFf2lFIXKO2o0uALIvEXVU0vpq0GGHaqUAABaQQkQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZAmtEgyZ3izE1S3KpuxV5RgaSy/1mD7wvplzaMq4vl0=;
 b=Ssmxv4dLWx7XbnwV20b2WVDxmv4K2u5HmCzaE3NMEGStKrd+LT/DfpeFKllkWEKhikjAFFfViQ0mEszyfz4byjPhz+Qn5imxhLjp+l6827VKRC7nqp1ZP62QnPIh8jTufQfiiYiHn6L4ACs4rCi/UhO58PBXArQMuACjLqb+Yxw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <bb453adc-0b5b-428a-9a34-8c4b92c3c927@citrix.com>
Date: Thu, 5 Feb 2026 15:02:11 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] xen/arm: use BSD sed compatible regexp in SRCARCH
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260205145913.99032-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260205145913.99032-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0063.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1::27) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY5PR03MB5266:EE_
X-MS-Office365-Filtering-Correlation-Id: c6dca37d-9f28-4f62-b52d-08de64c78c1a
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?em14WnhYUmFWQXJyQjZoazcwMktNTHRoZC91WlViVGZ2aER1Y1N2Zi9Ybm8r?=
 =?utf-8?B?MW83UlMxZVRScjZ1WDVWNlBMbmxiQjFqam9sYVRZNndYdzF1WTVkcXFDUVZP?=
 =?utf-8?B?dWVDOVJQQTFCcitXd3BJeGhtNXQ0UWtwZFU4T01ETXF0YUxVbzlRWGZxSUtP?=
 =?utf-8?B?eGxQTFU0TkJvSGtqV1Jpd1lMRlJpOE00djliOTM3LzBDd0QyV1NXOE02UlZO?=
 =?utf-8?B?N2JZaGRKTzJJUDFoOXNkWXNmajV2Zk5pd1ozM2haRmRKb0xiK1JYUXZuMXVU?=
 =?utf-8?B?cS9zWEZZRmtkQnl6R3k1azZzUzROOVFaZ2ZBMGRFdjlzTDFlM3B4SThPUjd4?=
 =?utf-8?B?NmVKdjN0SytlTDd1RVhWOEVocStQYTU2amRXLzJPaXNwTS9JK1FWVjBUTEVW?=
 =?utf-8?B?YksvYnNRRm4wSDVBY2RHb3FzYjErQTZ3enBzZ0tsTFdJaVpuRFM4MGN3SnpS?=
 =?utf-8?B?bGxhd1FGNi9PZjFScnZaOWR1QVlxd1FxNUdvdzJIK0ljeHJEbWdQa3NYbFRW?=
 =?utf-8?B?SytpSGFVRlpuOG1Tclc1RzBWMHZubVYwRW9sWloxdEpCdWZOVFNZU3ozcVFO?=
 =?utf-8?B?NExMY2ozT1RYV3JrMnIwMkRIc3FLWHovQVI2WEhySlp1VnRQOUZWNWNGMnhR?=
 =?utf-8?B?MGdVNjBoTk5oNEFtTjBnUHVJdUlWR1pXbmRpNWNHQXYwN2laK2h4aFE0SWtD?=
 =?utf-8?B?N1dsa2VjamxYYnZ4MXpFT2tsb0lZWWVUZHNTa1NmL1JtV1VvbStmY2tQZmtC?=
 =?utf-8?B?Mk1rTFVpWUVqekJhaWV5V20zUVYxQmR6V1BJdzBwZ1hpRk1YZU84SWk4Qmhp?=
 =?utf-8?B?V05xL3ZxdG1ZT2ExYXZuV3lEK1ZLTHQ2ZGlyYzFsN0Q0RXR2eFhQNnVTN29v?=
 =?utf-8?B?Zi9KeThhS29oWEpBbitDbTUvekhnVmJHZUFsa09YbllIWWJSRDZZTXFnOWl2?=
 =?utf-8?B?RldncHptWUExUndnV005blp0YzF4azhkT0xOaWFJL0xKSVVYUEw0K01aaWkx?=
 =?utf-8?B?UnFMeHl5MWU2anMxR2g2QTJnK2VXNzV3SUNya0NiTjlnL0p1MGR5RnFmK3hD?=
 =?utf-8?B?Nmk4eDU4SmlORWZ6UkJPei94dUF2VWl6cFZhV21HSXExZGxvcm9ETGNod09W?=
 =?utf-8?B?N0VkREV3NnY3Y0ZxQTVENUNqMGlPcUErTS9FdGdpUFRPajNqNjJJcjNTZkhj?=
 =?utf-8?B?aDJzbmlVaTQ4UVRyNDNRNncyVFhOSVQvYi9ZbDM4WlVXL0F3UFJXS094eTY5?=
 =?utf-8?B?YlFzVjBTTzJNWlJlN3FkcWZWNmdnaEpsRmlYQnpTVlFPOVBRYVlvZHExcDJV?=
 =?utf-8?B?STFTTjhKOG1uM3NjK1lEUEg4SFROeHI4TmVIZzZkTklKVWttVHNWSHhoRThy?=
 =?utf-8?B?VVVwODRPdnl0eUF2WlRMYkJkYkxTVHY3Q1NLMU03Zm1RQXN4dUVYRExEQXdx?=
 =?utf-8?B?bVU5SnZEKzBHRzVBRXB2UWJPcVNYanlHQTIyVnpISjlRTG8zV1BxeHlBTTc0?=
 =?utf-8?B?RnpNa1RHcFhCSzJVaVY5OVZMTjB1azlFWnRkY2NEdDJQRDBWNG1ON2t6Y2FW?=
 =?utf-8?B?SW5FTTJJWjI3MXVYUnM4dDR3V2ZVd3JBSnpPS2tteWtUZXZreVRRVHBBMWc1?=
 =?utf-8?B?Q2FFTDRKYTVEVTBnS2k5ZmMzaVdjdGFZcm9qTS96S3BkNktUVGRkTXY3L2p3?=
 =?utf-8?B?cWN1MXBHQnV3MUJNSUljN2RCNmU1ZjNPdDhnOWdMT0YvZWxhL005enlCNWtp?=
 =?utf-8?B?RmdOU1Z0TCtNUkpLaFNnMk01dThrQkNOOFk5djVaelFWWW5EZTYyOFp1NS9N?=
 =?utf-8?B?bEE0NU1XNlpuTUEyWElUbEY3WG40YjlOamdKNXptcW5CbkhtSTdoRW5rdy9K?=
 =?utf-8?B?ZzMxbGNsb2g0eWFhdk5UQmhZUzFYK2RMUWNWd0RZWVVBVE1xdmNOWVdRdWRP?=
 =?utf-8?B?a1JvWWhUdDh6bTNnVGVEVExlRjl6MXExRCt0Z21Ud0JiNTliZ0diNndPOUhR?=
 =?utf-8?B?aFQvb3g0RlJ3TllMT2NXRTN3NTdsZ24wRkFsL3E5Y0RrTURlQVBiTTNlT2Z6?=
 =?utf-8?B?bGZOQ1d1RmtGQ3N6WWgzNDZpR3B0OGFLbGEvMjB0dnk0ZWY4MGY4UUJ0SGcr?=
 =?utf-8?Q?qrXI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VkI5d0wzWkhCSm1GQjdKVDZ2UTlzYUtoakRuQk4vOXR3V2d0eFZVa1ZjdW1F?=
 =?utf-8?B?SmpyK1ZSZzFlTG5ncFIxUTVNWkphUkZjaUpDcFRoSVlJZVlUZnVHUmZ0RWkz?=
 =?utf-8?B?Ukp4RTcvb0orY2dDZTl3Q2Q0aTluZjVUVkYzV1VZY0pwUXY2TWpJVnh2WlZ4?=
 =?utf-8?B?UDg5eHZsSkNPaXRreGg5dmVmTTZQeVl6ODhFU05hY2J5Z1pRK20rdER0SlpU?=
 =?utf-8?B?OXZ5Q2ZLQ0cwNzV3TThGdFRPMXVvTHJ5UFlVYjNHOWxWbmFvNGtheGlybjE4?=
 =?utf-8?B?NWo4L1dvcjB1VzNJVDlQT1NaRTJ4VjljTjlPR0dJZVFzU3EvV0NUaS9EcW5j?=
 =?utf-8?B?OFN3dTRZQUJ4UHZ5N0RZQjEwS01ZUlRUUVlyaktSUlJSVExQUUhjTWRacDBx?=
 =?utf-8?B?TlJhR1Q1TmVqTmhWN1FJY0V1bWV0UnFBWlczWnllRkpWQmFKNitEQ1dIZUw5?=
 =?utf-8?B?TnBxblhVWkZKV3p2V2FnYTRPVkJPUGVZYjk2Wk9KUkpJdlc1VEkxNnhZK1hM?=
 =?utf-8?B?UFB0Qkl1OUNhcWVNSVJvU0VmZzhFNUFRK1I4SXZCOFZ6YU1rRmdBRFBESnZi?=
 =?utf-8?B?aWxmcnArRTQ5d2JtaGY4NXJySGJLSFNPcUV2UDR4c0dZVEE2UVFNZlV4WXNG?=
 =?utf-8?B?d0U3c04wYUdNaDBuVUhaOHBSTVN5b2lVWGIzSE5XdDdtb2I0dThkU2xoUVNX?=
 =?utf-8?B?Rk84K0VEVWlQQWNIdzdSVWliTEMxeHRXLysxK2Z3L05pMHJmOG1teFRFZzVS?=
 =?utf-8?B?N0cxWXdEMTkrTmp6NEwzcE5qckRDa0J4eldnbnpvL2l3Q3d0NG5OS3gzYkQ3?=
 =?utf-8?B?THNabkFPeFB2UXF2NUtVOEJ6VWQ0TVM5TGlYZE85ckE2ZjJPVy8zK0xPQWYr?=
 =?utf-8?B?M0tqdDZjZDI3TzM5S29RL2ZQZU10OE1mckJVekV5T3VTL29xYVUrT05oOWlN?=
 =?utf-8?B?WHdBM2x2UUo2aURhYnpZVHJSdXYyNDd5anlxYWtzT0hzd1R0K2RoZ1lDMEVj?=
 =?utf-8?B?cUw5SGhPWFlqcG5BQTNtU25pckVGcWF4ZzczejR1MzRpNVczOGtERk5xY2Ex?=
 =?utf-8?B?Sm0xV1J3QTAvb01mV1d6S2tMYjRxaWZoQTVZNnQzZUlSVmhkd3pITjFrcHA3?=
 =?utf-8?B?OUloWTZvS2UzS2JDS2FzVWIvZHZYTmpKT1g2M1JrZklJZWhwclRuVFgxYVBs?=
 =?utf-8?B?a0pFaDUvd0dBWDZhMk5BQ3lVRGlaWlZ6TkNyRG5KUkNMZW9DaDZ0Q3JkdlJz?=
 =?utf-8?B?bEJDRkg0ZUJ6WjZ1OXR5Tjk3Vzh3bHdTdmJjK3M5Tlhta2UxNWk2UHliL2ZC?=
 =?utf-8?B?cVFIbm1KQ2I4VGZYMFNuN2xMRmlTQkxYQTV0SCtmaFpxeVBPOVRDV0tRRTBx?=
 =?utf-8?B?ZDVvOGJLMkwzcEd2V1QxMDhUVVc4bjBJQ3FSMWE2VVlVNUNvTHphbVIvdkNr?=
 =?utf-8?B?aWxtRUtUc1QyUXhnZU5wMTYxd1Bsc0NpMHEwMXptMm1PRjZUT3hqSVBMQjBl?=
 =?utf-8?B?YkI0T0p3RFAyYVNYdmQ1Y1phVzVCNUF1R2gwMEJkTFZRUjBjQUVwMnJVTWl3?=
 =?utf-8?B?VDNXVngvUFpMQ3dGcDMxcUNHaUNSWWcxMTFXNThiQXdXOGxxWVF1UnViQUsx?=
 =?utf-8?B?citkYkxObUdxTm9EeThJUjhMOFZoM3A3UGQwKzJYRENaandNYkc3VU9PVU5S?=
 =?utf-8?B?SzdYaWJNY1FaYmYvV21aTi8yQnBDS2VpVkdmbWw5VGgrbFhDZGlJNWlHQmQx?=
 =?utf-8?B?U3lrUEU3OFcxeS85dWtFV2hUbWJYQnYzZjc0cUxqeUVQTHQvR0Z4cTNwajBx?=
 =?utf-8?B?bFM5UWt5RUlzaUprL2tMVDY2UXlpNitxTytDVFRGMUJlcjhRaE9PV0xjdzZJ?=
 =?utf-8?B?dnZYeDgzQ3ZKdk9QOVVRVlE2MFRBMnhlZnpqMjF5dW56RlI1ZlYxbE1GVWhr?=
 =?utf-8?B?aVBPRytIaHlwT1UxZWVQVEN6cm9EMVhwNlNBYk9uU1hDcHo4cTExd2lqSXJX?=
 =?utf-8?B?ZWxvZlpFMGxSQVdqNE50eUZUdnVkYUx5aWVtVGFQY0F6VWZsZDA1T1dlN21J?=
 =?utf-8?B?QW1ncUtxMlJUSzFhams3QzV0ajIwZllNT3NlRmdWRFJ0RTZtNzduY29zeHBV?=
 =?utf-8?B?WFdvWmpTRDMzQU5oQWhScmt2cy9SN2lFdlE4TE9uenY2SGR2c3RzK3ZQemM5?=
 =?utf-8?B?QkljZHQ3Z2RIazJraXdvZVc2cS9Wc3hQenE3MVlobHBnbzNvaDRJVlBQa0R3?=
 =?utf-8?B?NkZWRnorSVVLcnJWRlBhTC9jdmdyRm9nSURtLzU5dXgwcjRUYzUvZ0QwR00v?=
 =?utf-8?B?MzAzY09ZaUZYZmZEajFFczIxOXdNR0FUSzJwenZjbXY1T29DVmtYZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c6dca37d-9f28-4f62-b52d-08de64c78c1a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 15:02:14.5970
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TXGFgY7aHSk572tBtYa+IDsoh+N5w+owdW2azzoxBPQvTpPyuwkmCL30Drs/JCbvBzRAHHdFa6jqf3y2lNelX6E7bA9C8mcYe/n6w2jIHDQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5266

On 05/02/2026 2:59 pm, Roger Pau Monne wrote:
> Convert the ARM SRCARCH variable setting to use the more common 'arm.*'
> expression rather 'arm\(32\|64\)', as the later doesn't work with BSD sed
> for not being a basic regular expression.  The usage of | alternations is
> not part of basic regexp support.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 15:10:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 15:10:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222099.1530135 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo0zl-00077d-EJ; Thu, 05 Feb 2026 15:10:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222099.1530135; Thu, 05 Feb 2026 15: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 1vo0zl-00077W-9n; Thu, 05 Feb 2026 15:10:13 +0000
Received: by outflank-mailman (input) for mailman id 1222099;
 Thu, 05 Feb 2026 15: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vo0zj-00077Q-Ib
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 15:10:11 +0000
Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com
 [2a00:1450:4864:20::444])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c2a00024-02a4-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 16:10:09 +0100 (CET)
Received: by mail-wr1-x444.google.com with SMTP id
 ffacd0b85a97d-4359a302794so824597f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 07:10:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43617e25e8csm13005818f8f.1.2026.02.05.07.10.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 07:10:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2a00024-02a4-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770304208; x=1770909008; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4WWGzM8AGKjwXOGwWw8MQyUZqxv1kgVP3Hqg433Uf3g=;
        b=We/hL3M44txNTSaPmqwoRzSqRMxhpEIpcyrH64dwiSIbH3CuqDNTt9vpXxEWmy1ZGO
         /v798AXfyzOuxlsvDIBVbNRNjqoql/36Gzn6CCrSZzc7WmuJ/t608af5YFWZkHg1tmgg
         t4MI73JC5XG/YY6J0MEDdmpXgyQSFglyT7nFacHdZA+/qEnHe+hScNem+kfhM95iuajn
         VMhtif3CzttoMDKROarrZ3P5CiBKYzjY7AUarkx0Ku3p9gtSPBQ0kH5dNDio+Swhlq4W
         gkvSZQovJcPAzQMYc+7y7jHaCznn0gIXaDi7JkPqtsaQ4o7jzUblFp2IokV50hK/g168
         j97w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770304208; x=1770909008;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4WWGzM8AGKjwXOGwWw8MQyUZqxv1kgVP3Hqg433Uf3g=;
        b=MYoSrjwIiadrIy/kC8WRHt1mDbkSlvAMDXXeqDSSRMIpKv3nsrEEhC8opCw2/IyrZR
         IB5ZXA0v898JfyLQgWv9qrjXh85etsy2uzf9z04ELh60baJuK1wCq8wYWtRoxAw6HvhE
         +EMzhgLOZbThELwXd2ZOLQIdzoane+WllAFEHgGdh1ujC8Brg4w04ExJXHCLLaxdhtuc
         k22wjrRU1+zD0Y1ElYw8K63VSI3RJDlrqB2tXI7UVgUI9dbDXJpsxSRRnxosML9LMogC
         wVwvL/qcvksRUQoJTbSSJgWx22LkViZru1EyBeLqOXPU88qRm0keGW+kybaXG20fn7u1
         1kVQ==
X-Forwarded-Encrypted: i=1; AJvYcCV3pipvod+Uq0E8Pb5Z6hz+mHMawjTE8d4NDijxT0dAZBbmNLtZTf0oXvx0SOJ0xgLC4pYQZhHNc/o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYRK9oUu2KDApgsvpeBXvLonc4laHgc+RGzd5gtpR18iROK25J
	dRfbMkbU9LRCtp2caHpIRjBRnSS1gvnuIVBNpiXNDhLEKsqU56WQpuKzrQNN9dSzPw==
X-Gm-Gg: AZuq6aJJXV6uhtPmCL3HfEaOG5TPaQcJTVxcreve4f+7LJaU8hN1SB/8QeH6wwdu/oK
	PXEUUORIPPITqkNtsVEADRdia4u3wK4wGff5gMDmemtJnqzW4iEDqiDbqFRpq+0/QHmdsOR3Y4z
	x/D30o4qtQPsILY9P1IU+53npc0HFFox8xnuyk1wGjTAwoyKv3xugzskyXV1+WmXH7zNHqJmgJ9
	VqzuZN0ceprTeCQxyofJePcYrS3dd1I6DAbSIX7+4mBu6b4VaZasGxFzoVZMoGO4MRENt5CWakM
	UpN6r5700lOUYH4xTmPIKkEVQj0VaRW43LElqWvoHnVRg1gJvtAWzgtkMQj/YOaE3jHGC0Jdnpt
	2GpxL8BwA+ry6hTqf2g0/Me1NsWOB6pzPzp0XQ8EWD5KqISw37hAObzZe46d70GXfN14hgyEXqh
	CT+CvGq6ykbWDSEHrGYofp5hiyroU4DDgEK/Rzle4uZIw2Zp10i8XX1Af0QvTrSh9IrQufLxmkk
	uo=
X-Received: by 2002:a05:6000:24c6:b0:436:23a2:5e32 with SMTP id ffacd0b85a97d-43623a25f2cmr3561201f8f.48.1770304208463;
        Thu, 05 Feb 2026 07:10:08 -0800 (PST)
Message-ID: <2038c5c4-c542-4382-b89c-0082a51d6d2a@suse.com>
Date: Thu, 5 Feb 2026 16:10:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: use BSD sed compatible regexp in SRCARCH
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: <20260205145913.99032-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: <20260205145913.99032-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.02.2026 15:59, Roger Pau Monne wrote:
> Convert the ARM SRCARCH variable setting to use the more common 'arm.*'
> expression rather 'arm\(32\|64\)', as the later doesn't work with BSD sed
> for not being a basic regular expression.  The usage of | alternations is
> not part of basic regexp support.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
>  xen/Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/Makefile b/xen/Makefile
> index 13e336ba5484..31352d4cd260 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -242,7 +242,7 @@ include $(XEN_ROOT)/Config.mk
>  
>  ARCH := $(XEN_TARGET_ARCH)
>  SRCARCH := $(shell echo $(ARCH) | \
> -    sed -e 's/x86.*/x86/' -e 's/arm\(32\|64\)/arm/g' \
> +    sed -e 's/x86.*/x86/' -e 's/arm.*/arm/g' \

Perhaps to guard against something like armv7, use arm[36][24] ?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 15:10:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 15:10:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222109.1530143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo10P-0007Z8-Kv; Thu, 05 Feb 2026 15:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222109.1530143; Thu, 05 Feb 2026 15:10:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo10P-0007Z1-Hz; Thu, 05 Feb 2026 15:10:53 +0000
Received: by outflank-mailman (input) for mailman id 1222109;
 Thu, 05 Feb 2026 15:10: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=cpzf=AJ=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vo10O-00077Q-Rb
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 15:10:53 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8daadc0-02a4-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 16:10:47 +0100 (CET)
Received: from SJ0PR03CA0051.namprd03.prod.outlook.com (2603:10b6:a03:33e::26)
 by SA1PR12MB6775.namprd12.prod.outlook.com (2603:10b6:806:25a::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Thu, 5 Feb
 2026 15:10:39 +0000
Received: from SJ1PEPF00002310.namprd03.prod.outlook.com
 (2603:10b6:a03:33e:cafe::28) by SJ0PR03CA0051.outlook.office365.com
 (2603:10b6:a03:33e::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.13 via Frontend Transport; Thu,
 5 Feb 2026 15:10:24 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ1PEPF00002310.mail.protection.outlook.com (10.167.242.164) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Thu, 5 Feb 2026 15:10:39 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Thu, 5 Feb
 2026 09:10:39 -0600
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; Thu, 5 Feb
 2026 09:08:51 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 5 Feb 2026 07:08: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: d8daadc0-02a4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T60FRf5sIHXVGI0iP18IoFVLOOE66d9kLGG+K0FcpHAuaDL0G7hiVTsF7E6McX0Qtbxx9tvZ7EqgFoxaja02VIEC+bV5vrXh2JwV3tGG6ULrrFZJX+Ii/WTDPUBMl9cgvcQ3k8vVNjMtOVSkxj7WV10obIuPuHY0V2FzmBYHkGttTTDvINmmftDu2rR9x3dtuCedY2lgX4x1yAx0OXMeQZdMoUz4jh/Rgx5Qz6fyqgKNlEP6t45hhZiJ9mIDh4Qptv+uBCwg5KbBvJCNIdTIKUsTQVlvY2dGzq0Iq2kbKoHbZf1Uwj/0BHQDHLUV7Xi9UmJhoQFylRNl3V2sKahPiw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Gt7yWa6UPkmNuHb7BNRgWpsvGQKzSYkIhKZAb2UnqgY=;
 b=mFtXt/jUbOIFmSVAGdNwmk3ViNAObz7TCEAFZX/S24bVCVIjMtKjGvQF5nj/1uyGrjkNmsy2D80CUk1Gl5IzIZ+Rgv/9s4EXmyi5e5fi5rCk8+7atjjA+kcmaX1k2jNIoSW4BUXyKBfy4u4AXajmYSgjYPlVbD61DApsIR0VExJ9OYFYYWkAGrtPy1kzk43D3Jq9/o1AEwIvkdp6vo8jx9Pjveo31R072W12KsLqFDPiKyXyr0dja0lt0LFGHcePNRZmN1NHA29NmKs9aWW0cmP+s3jwDVu/t8ZD0yLeTW3L7Ux6bYSbt620LvRe/zZHo4rR2/K9NM84TMfKHi2Bzw==
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=Gt7yWa6UPkmNuHb7BNRgWpsvGQKzSYkIhKZAb2UnqgY=;
 b=wrvMIeQMOK6adLAhZ1l44LwoO0bVvQ4H1W/1FlSYLqbZBoNTmPOIe/Sw+V3D/fghBDlPOHNkPcga1ItPBLS9luQW+j0U7uC5TNgIAAEwloFXYUJ2y1JJFQge0PAET3pYZHGI4BZ16bmWNNc5jirZlIXvxqcBSiptZw2uXJmQpfE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <0d91746d-2a58-4770-ac64-f974aa3563b1@amd.com>
Date: Thu, 5 Feb 2026 16:08:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Fix memory leak in xenmem_add_to_physmap_one
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>, "Volodymyr
 Babchuk" <Volodymyr_Babchuk@epam.com>, Xenia Ragiadakou
	<Xenia.Ragiadakou@amd.com>, <xen-devel@lists.xenproject.org>
References: <20260205125820.116555-1-michal.orzel@amd.com>
 <828feb7a-2a5b-4306-8da9-162df9ecfee3@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <828feb7a-2a5b-4306-8da9-162df9ecfee3@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002310:EE_|SA1PR12MB6775:EE_
X-MS-Office365-Filtering-Correlation-Id: d99224f6-a869-4a09-4f47-08de64c8b91f
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:
	=?utf-8?B?VzJTVEhjcGowY1YvbitsVGJUc0VsTG80Umd0amVWWTMzUExoNFNkejU2clVi?=
 =?utf-8?B?bithZDV5d0I2V3UxQmVUY2FUb0pkbzBQTFF5OTh2cGJEcFR4NlduUmZJUC9R?=
 =?utf-8?B?K0UwZTdXVy8xZW1VSHFoV0s1Y1MzOHVKWitxWkNmUERNQTA2UG93TDc4bkk5?=
 =?utf-8?B?UkIySVNiSHZQMWxlaEVLOEIzZXJ1ek4yaXpoYUFueTZRRDJreENVQU1LV1BL?=
 =?utf-8?B?anNKM1hsSVU1ajRPM0ZoSll6dEZBUW9SS2xxYlRDbU1WaGpXOXJ4aWZ5YU5k?=
 =?utf-8?B?aXY1ZGRIdG9MT0JWcTZ1RCtqcjI3T3JLV2MvWUpqb0UxclFSL2FtT003Lytt?=
 =?utf-8?B?T1ZWQXlldHJqV2NMWndrY1ovNUt1UGZXUjd4S3dYNHM3cVYvRGdqNjhnUnIw?=
 =?utf-8?B?dEVoTnVKNGh1UzcxeVJTT2FvYXVyK0JIVjRKTjMxY1BMQWZmMzhEeFlNK0Zr?=
 =?utf-8?B?alNxVndJYlV2dWU1VERuYUtQUVgxL05XN0RYNmVLVWRXNXpNS3VjeWFoMU9B?=
 =?utf-8?B?R0p2VzhOZGtmbSs0VnFZK1NSUmR5TWJQdmNtRW1TOGRDY21lOUZzZVVQbmZv?=
 =?utf-8?B?RFViMW51Q3hYclRPT1ZuODl3VjB3c2xpR3YxMTQ1ZS9tZTdWcG9iZEl6ckZk?=
 =?utf-8?B?MmJUbVZsWkhnSDd3R3VkeUM0eC9Rb0J6SVJjYUxqN1ZQZXRVWGt3Nk44MkFO?=
 =?utf-8?B?MmtLek1Xdk5Dd2JFa0FxUzFNSC90Z3U4V0hCd1YvdkI3cjRzSlNlQldneUJa?=
 =?utf-8?B?dC9nNWVjWkNCK3g4eFhmSG5IZVUvdExGK25kRnJXMlpwVFNrdUp1N205bUtY?=
 =?utf-8?B?NXk4blBZNXZ3cStzVkdNOXIzTmRCNEpFczBLMEppZ1RCaSthVFdlZWFKekN4?=
 =?utf-8?B?QmlmUC9CT1Q0cTQzN0FSK2tNVkRTelNOZk9nMXZTeVdzZWpxdmVYQ00rQmw0?=
 =?utf-8?B?Y2Y1Vlk4WTY2MWR1a0FXQVlMWVpuMzRvU09zdWR5Wk9haGlhUEk1ai84L09D?=
 =?utf-8?B?bGdPK0ZlSXdrUkNsUzhVNTI5dE5FNldiSXZFY2d0RDFuZ1RmeXpybFcwNGY5?=
 =?utf-8?B?azlWNEFEWFYzMmNjcTAyb1A1RjhBVkowTDNPQWIvOVJDQ1pQS2FLSkxERXg1?=
 =?utf-8?B?RWlMdXNZRkNlbTVBSWNwVGc4ZmNISnBtMTIvdjd5ZzRPTXlXRnV6bm01dEJa?=
 =?utf-8?B?T1pMSk5rVUJOclp3aXpQckE5cDJkU1pDSGtIbFlaMjVjQjduUkVIRGVRbjBn?=
 =?utf-8?B?WExoV3ROU0UrWXBmOU5WYTliakw0MlE4VFVER242UC83VGx5ZjVZa012TVF4?=
 =?utf-8?B?TEdNcFh2eGwwZG1KZXlpRTZ1bEozWHVIbUVUNElzTG9iYUNCdi9RWGt1VHhx?=
 =?utf-8?B?U2RDWTZiRk14NzJzUFBSTitHYTFtbXVrNWVKRUU3STc2WllEdEIzc0hpR0hj?=
 =?utf-8?B?bENBMEpSbmpqdy80bDFnTmVlaUJrMUJYVXJLMDMzVkhkWm9mMFRLLzRTYkdn?=
 =?utf-8?B?ZDROWlhRcmtOTzNvTFJIeVY4MkFUdmdJMnE2RThHRXo5WlB2Mk0ybUVEMmZR?=
 =?utf-8?B?NGdQVitIUStqSDZQdmpub3dVN0M4Q0h1UHE4MlR2N3hLZW9IMGZUQ1h6OWt4?=
 =?utf-8?B?Y2tnandEemxXSHhVUUlLVmZuRFF6aExYbGZocnIzUEVpSWJVbEpWUXlCL1Iw?=
 =?utf-8?B?TGZZMjluSXpxd1R5ZEI2Y1dzWVhmNmdFRjkvbDhML1MySjF6cmJxUHNGZVli?=
 =?utf-8?B?ZWI4VXFCUVdrWFpjblAycVhJU1pXMVNHb2RJenhmVGQ2OFYxUmxiYkdyalFv?=
 =?utf-8?B?WStWSkhnRHYwZVN6d2lQMU1KWldmNUE2TUVSMWtyZXl2OHhsa01ReUZTZFVs?=
 =?utf-8?B?R0hsZmRXYnhXSkFhWjlVVVpQVzIzMnhEa05FcWw4anpRYlIxTXVRZXExVXAx?=
 =?utf-8?B?ZndzOGRRZWdWSGFucXAxTFkvYW4rT0ZzRzZibU9zdkNXNlRBeEV4WlFXYWhE?=
 =?utf-8?B?R1FtUWc4YzR5NVgwdVZFQlM4bmdEUjVkQmNieDhKZkZhMnhjYXhVaVFtYlRm?=
 =?utf-8?B?RHFlQjk1TW0wbENkZ083RDBXVnd4OTZueno4aXJZVjIvRW10WURuMy9BWm8z?=
 =?utf-8?B?WHpKVXVSejVKYWUxTnJ0WWJ6em02Q1lwdUFmK3BMeDFvYVFDM0R5Rmd5NHRY?=
 =?utf-8?B?UWNrL2hwT0E5eDlFbjRIVzdyaXJwTHI2MURiS1lGbFZtZExKL0JCYmcrY21i?=
 =?utf-8?B?bzRoOGFVK09mNXl2elFFOWs0a1lRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Iqwlpw3u564WSSDcs7r8+2VSlfrVCnLp1FtRe8a36oZqZdl0Vdp6gwRNcJphmB0w/cCNqpSKdlBjBQYqiTfG3t5gD+EjU/9k+DFJsXzGKfSTJQDinCU1cgJldjF+pMn+KDtGGEPVWbs0L7669rDBIal8zEOlxMPKbX/aUZqxBKe0z5YwS7aKs2MhjkJCZd7H713hB85OSn7vvtISfX+wapLVElArLx+eI7WBWvZCGor+q83ogFUKkfyy/uZf1V0+IoUf7HqT76MHjH0Q9dmMNdY4bCLXtopljxuk5ZklcF1OHd8gupk7JKfQ9m5Y88z/8fmjcqjs1pDQMMcTdijSsRyYmAvUs9Je+GKpLe4oMH9Nddx+r5EjASo3iiOoZeH2RAHpO5Ct3+Uz2P9DUauYvW6KIYZJRzdH3sl2isWb6BH/le9q1OaDOLPduLqLZmbe
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 15:10:39.4154
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d99224f6-a869-4a09-4f47-08de64c8b91f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002310.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6775



On 05/02/2026 14:49, Jan Beulich wrote:
> On 05.02.2026 13:58, Michal Orzel wrote:
>> When a guest maps pages via XENMEM_add_to_physmap to a GFN that already
>> has an existing mapping, the old page at that GFN was not being removed,
>> causing a memory leak. This affects all mapping spaces including
>> XENMAPSPACE_shared_info, XENMAPSPACE_grant_table, and
>> XENMAPSPACE_gmfn_foreign. The memory would be reclaimed on domain
>> destruction.
>>
>> Add logic to remove the previously mapped page before creating the new
>> mapping, matching the x86 implementation approach.
>>
>> Additionally, skip removal if the same MFN is being remapped.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> ---
>> I'm not sure where to point the Fixes tag to.
>> ---
>>  xen/arch/arm/mm.c | 32 +++++++++++++++++++++++++++++---
>>  1 file changed, 29 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
>> index 6df8b616e464..b9f1a493dcd7 100644
>> --- a/xen/arch/arm/mm.c
>> +++ b/xen/arch/arm/mm.c
>> @@ -166,10 +166,11 @@ int xenmem_add_to_physmap_one(
>>      unsigned long idx,
>>      gfn_t gfn)
>>  {
>> -    mfn_t mfn = INVALID_MFN;
>> +    mfn_t mfn = INVALID_MFN, mfn_old;
>>      int rc;
>>      p2m_type_t t;
>>      struct page_info *page = NULL;
>> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
>>  
>>      switch ( space )
>>      {
>> @@ -244,6 +245,33 @@ int xenmem_add_to_physmap_one(
>>          return -ENOSYS;
>>      }
>>  
>> +    /*
>> +     * Remove previously mapped page if it was present, to avoid leaking
>> +     * memory.
>> +     */
>> +    mfn_old = gfn_to_mfn(d, gfn);
>> +
>> +    if ( mfn_valid(mfn_old) )
>> +    {
>> +        if ( is_special_page(mfn_to_page(mfn_old)) )
>> +        {
>> +            /* Just unmap, don't free */
>> +            p2m_write_lock(p2m);
>> +            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
>> +                               p2m_invalid, p2m->default_access);
>> +            p2m_write_unlock(p2m);
>> +            if ( rc )
>> +                return rc;
>> +        }
>> +        else if ( !mfn_eq(mfn, mfn_old) )
>> +        {
>> +            /* Normal domain memory is freed, to avoid leaking memory */
>> +            rc = guest_remove_page(d, gfn_x(gfn));
>> +            if ( rc )
>> +                return rc;
>> +        }
>> +    }
> 
> This new code and what follows below it are not inside a single locked region,
> hence the cleanup done above may well have been "undone" again by the time the
> P2M lock is acquired below. That locking may not be apparent in the x86
> variant when merely looking at functions used. There's a large comment,
> though, explaining how we actually (ab)use the simplified locking model
> (compared to what was once intended, but never carried out).
Do you suggest to put the new code and old code in a single locked region?

> 
> Further, doesn't P2M entry type influence what needs doing here, including
> possibly rejecting the request? x86 refuses to replace p2m_mmio_direct entries
> by this means, but seeing that Arm has XENMAPSPACE_dev_mmio, this case may
> need handling, but the handling may need to be different from what you do
> above. (Just to mention: Presumably on Arm it's no different from x86: An MMIO
> page may or may not pass an mfn_valid() check.)
I actually had the following in my initial implementation:
p2m_write_lock(p2m);
mfn_old = p2m_get_entry(p2m, gfn, &p2mt_old, NULL, NULL, NULL);
if ( p2mt_old == p2m_mmio_direct )
{
    p2m_write_unlock(p2m);
    return -EPERM;
}
but realized this is actually a different issue than the one I want to solve and
I don't want to fix two in one go.

~Michal


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 15:22:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 15:22:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222123.1530155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1C0-00012y-Qq; Thu, 05 Feb 2026 15:22:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222123.1530155; Thu, 05 Feb 2026 15: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 1vo1C0-00012r-MS; Thu, 05 Feb 2026 15:22:52 +0000
Received: by outflank-mailman (input) for mailman id 1222123;
 Thu, 05 Feb 2026 15: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=BdQL=AJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vo1Bz-00012l-IE
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 15:22:51 +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 81d60b51-02a6-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 16:22:39 +0100 (CET)
Received: from DUZPR01CA0012.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:3c3::14) by GVXPR08MB10543.eurprd08.prod.outlook.com
 (2603:10a6:150:15b::20) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Thu, 5 Feb
 2026 15:22:32 +0000
Received: from DB3PEPF0000885C.eurprd02.prod.outlook.com
 (2603:10a6:10:3c3:cafe::98) by DUZPR01CA0012.outlook.office365.com
 (2603:10a6:10:3c3::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 15:22:31 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB3PEPF0000885C.mail.protection.outlook.com (10.167.242.7) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Thu, 5 Feb 2026 15:22:32 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DU5PR08MB10851.eurprd08.prod.outlook.com (2603:10a6:10:522::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 15:21:29 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 15:21: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: 81d60b51-02a6-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=ilIwo6X5a0p5o9sLT655X27iI7v4c3xJlMBQJm7O0c3W2utZUKVdKH0HtUxz5izlqa8H3S66pdbXZElrr7TVVXSIZPzDXyWQoSajoTVojfI6DtNmB71PdIS07qfrIPFafgjgFF8QetXrLRRgsYXd+tPhokJ+SQT5Ff4XD/ZFn9rxlLpzriHng5HGTs1y6flesG0ACvlNwVr+6QyXvfBp/M1m/KwcNh41B5FyXZHihJshspfKxDOpQx7uhRPo6obVzj/IJBFGszUmo0o/rvlPWMH5D17yCinp23GNJAw0mPBq8ct5Pr0TUJ8pgyxvsL7IUT43txPW7mb5FOza4yUIWg==
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=cJxYP8Z+yZ6wCzrr0ORTtdyUimwFteTYhoYHE1xRPdM=;
 b=yB7dYCyP5e3nwl1BdA6d2/prMcZMGPl7qYuzprFmyGGQgls4e3DbSV39+7K8ZosyObSPpQcnQaOfyhwLbONXlTCCAYYmPRqkixxV5wvOA93RjdVzolIlMd9GvDYKB70hn3ipsqEXfH4kBuHcgA7gjQdmBn4ETWfP7d47Ep1Hf5rYnU/2+kxftqjogRmyD/untlZdFtv1ZI4/qvpiDNMUBroi7Amv2G8lsP5somWgJQlSJHufb+MjlpUPYs7IpGnOneDZczUByoBw0ka5HR8UZHwg69XLAIBRFCDtscLcWkjTvhTkmBvqV77nJHRMKAppSNzx77VTYfYYZ5n6J51ANg==
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=cJxYP8Z+yZ6wCzrr0ORTtdyUimwFteTYhoYHE1xRPdM=;
 b=O04m0hVfAximFOwk/qnnyNc6jIFzon5pN7qjOgC3o7vTRfKef55sMKfD5IL35hdXLSwidrq8J6AxUAl1p59qB76CbKNeN8oh6bDtlVt24JZZwmuLDHGrlVRiiFQ4MhT0YoLz7oekwE1hReVjMTXYvmZo/VZDFNlEZjEypJfM1W8=
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=bycO4cGyeLpf+mtPR3gTnAEtB6MgckVGsdZ/2wK0Z4LJlSUYGDt8BnawCQ8JOfDCouQXJjjRskU/Zg4Ws80F1dHwH31XJzYyRibkkDzYVAGwrvYtqOLIqq0Fsv7/HONpNsdIXDLcB9VG/d7U99PlYzXKWbQ8wCY4YXbNtGa8qdyePYhmR8D8nc9KSpFh3FTPZ2qJ9emzMWd1M88sNsBqxFUJR277avP3FpGsu516V+3krkU8ndYYVCS+0zCuQ5fqcEH7ZaBBVi+secaD766eZmUClJ0D1LZnDQxfG8w2bfbiXTsOo7kGACqbSRf4wxiFXJEuCq6jhikLtgQdfFK4Eg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cJxYP8Z+yZ6wCzrr0ORTtdyUimwFteTYhoYHE1xRPdM=;
 b=CEzc7LpUY4WJHnaYuSnAOn78LdUdOx12mxkRE8xfScHbm67zWI4pgolkBH6cDAeY8xWyYcx/PLBy7Niv4X2xUNWKDYWae6SL3yr9fJdKVNEyxadvM1/sZIC9U0hqR0/yBB97FiKqw6myFTyORR7JWJ0zzPgNTshpcAZ96iUfT+eFQCU+vYCOraP5dkxlP3Ouh+zlngGOK1CRe44RWlQlvL49jqQS+bLDTKww77AHOrPBUMXQIWjPHeHLUF3RE+XxUFRqZu5ySoVvNRW9XvFR7x9CZMqXMOYl2jZQjlqQjidyVndxBm4xT982eC3JgFQpIglPml5cqCIad18eqJyZaA==
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=cJxYP8Z+yZ6wCzrr0ORTtdyUimwFteTYhoYHE1xRPdM=;
 b=O04m0hVfAximFOwk/qnnyNc6jIFzon5pN7qjOgC3o7vTRfKef55sMKfD5IL35hdXLSwidrq8J6AxUAl1p59qB76CbKNeN8oh6bDtlVt24JZZwmuLDHGrlVRiiFQ4MhT0YoLz7oekwE1hReVjMTXYvmZo/VZDFNlEZjEypJfM1W8=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
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>, Julien Grall <julien@xen.org>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/arm: use BSD sed compatible regexp in SRCARCH
Thread-Topic: [PATCH] xen/arm: use BSD sed compatible regexp in SRCARCH
Thread-Index: AQHclrAVmOqVSx0X9U6hX+RPaUIqwrV0NaIAgAADJYA=
Date: Thu, 5 Feb 2026 15:21:29 +0000
Message-ID: <5F704F5E-A754-4264-9121-56FEDA0EA02A@arm.com>
References: <20260205145913.99032-1-roger.pau@citrix.com>
 <2038c5c4-c542-4382-b89c-0082a51d6d2a@suse.com>
In-Reply-To: <2038c5c4-c542-4382-b89c-0082a51d6d2a@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DU5PR08MB10851:EE_|DB3PEPF0000885C:EE_|GVXPR08MB10543:EE_
X-MS-Office365-Filtering-Correlation-Id: 5d2d605e-f026-4897-e07a-08de64ca61f1
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?TXNicEFGNHVWTm1mL2pJRVRzZnhvQW13VHE4TnFncFgwRk5RVWVIN29FWEcr?=
 =?utf-8?B?aWV4a1VIcTlkSHRWdVRxcHJLMlNMcXVGamVVRHdsZzA3emtGNVZONjVlSDNN?=
 =?utf-8?B?UjVOelVRd2RLYmRNZlJBZllHY2tTbU5yNUJyY2dacmsyQ1p2ZnNSWEJ2V2U1?=
 =?utf-8?B?OVh1RlJiK1B6Z2tzVnd1VHNEMEhXK0RKM2ozSDhVTndxWVF3TDg4VEtrMG12?=
 =?utf-8?B?eGxaUjl2Y3Q5MVNCazFZZzA3SVU5SDkwU3ZzKzI0UGo5QSttMU5nQjlHYWRX?=
 =?utf-8?B?YTVrTWd5NHNUc0VvZEd1R2VJUWoyY3kyRnFIbUticTI2ejZyOVVHS0hMN3V1?=
 =?utf-8?B?a2NWaVV2a2dnRzBRbkEzT3Z4aVVrcFFXZG9GL290RzhZbzlzUGJ5Y2VyRGk1?=
 =?utf-8?B?TjljMDF3R3pja3FKYVp1c21JckVnd1lBdlhTOVpkRWg3cGlMdTd1QVJNUVkv?=
 =?utf-8?B?TGQ0d2N4Uy9aWElLaXZod1o0c3FWUkNKZFAwa3NmbGU5OFhyQXNTRGQvUnpP?=
 =?utf-8?B?L1EzcE1pak53MkpiRWVXRXo1dVJoa0ZYNmdwSVM4SG9qQXFCUndHRWJpVDB5?=
 =?utf-8?B?dnR3UG4rZ2FsTFQxbmxNRU9FSEtDWnZwbkNPSUd6SE8zRlBwNnFONGdGUHVR?=
 =?utf-8?B?WWtuKzhsZVZTWFFYK3JtYXpEbU9ydDNWVjh5WnI5OVQrMHovKzdkb1FlOXRI?=
 =?utf-8?B?M2loN1hIL25JRFR1S2tKelVaT0VJOGZ5ZnpVU2RQYkpWNVI4b2xpTTNhYVkz?=
 =?utf-8?B?YU5iekVsRndnSFlzVlRLQTJkQVNUUWNCMERlYWQvUXdORktweUVDNDVXR2Ir?=
 =?utf-8?B?aGFUTFVUTmY3emNoYW1hZkFvanRqKzl5UFZ5UkRmUEZISEtjYjNyN2NOWnVy?=
 =?utf-8?B?UXYvZWptbzRpZnFDc214VnZkakpoYzg2c2Q3R0pzdEM0bUFzMW9IbHlSSE5C?=
 =?utf-8?B?c1crRktjT0lhYmZrbTY2UHFieXR5NEQrdGFTWFNOZ0hxa0ovTXlrYWlYRkFj?=
 =?utf-8?B?VkNkUXp0MGVpRFhWb1hpOXE3d2tvRkVqNDBtc1NvSmxuRW1YNER3a2Jkemx5?=
 =?utf-8?B?eGpDZUNhSExoTkdTcWs0ai9NZE1mMmdZRmV2LzVKQlN1VWtlNVBYaHhwNXJK?=
 =?utf-8?B?R2xYd3EvZFZsMlJOaSt2K3ptVXhXaU9FVXg5TG44QWFpQVpqZmJFVjNhTEkv?=
 =?utf-8?B?RTVmTUZCTnhNY21Ddzh2dU1UKzRnWWtIZGZ6WEpURnZJQTV5d0Vzak1aZVRi?=
 =?utf-8?B?bjRPYU5RcnJFNzNtMUI1WGFHS2JkcktNMUdpT3RWOVh6T282YzBEWGpUdWFr?=
 =?utf-8?B?ejNPTzRJL3dBVDFIdDFaZ0FiMkxjbENDQUZNdm1lbklHNWliejIrQmhMRnZR?=
 =?utf-8?B?QUZyaml2dEdGVU5PU015SlFKUlBsODUvNjQ4TmN6VnpQZ0FnYU42QzJBL3dK?=
 =?utf-8?B?c2wrWkZyY3g3Q1phMTFYVEd5SnlEZWx0SzRTcThqeEZzd1lBb1dnVjdJKzd1?=
 =?utf-8?B?VFpsYjhydEt5TlphcnpqZHE2VW5MKzY5SHdwdXpOdmFveHlQbjhUaGdUZlY2?=
 =?utf-8?B?ZE1heGs2Wnd3OFJpS1FKR0IxdDdXQ3BnQUFTLzYrU2tveGg2YmFrUnQ4d3JJ?=
 =?utf-8?B?MHFQZG5OMFJHOWdUSzRRUW1iVUNzaURPcE41WSs1SUJNeWNzT0tOMk9INklG?=
 =?utf-8?B?azBqdWZtWjVhS0gvTG5iK3hmN0V4YUtTcTdTVEVWRE91REt3NElhSndLSmdK?=
 =?utf-8?B?SWhNakIrdFV4ZVhEQWFQZ1Urc1dmTVgvbHhCVGdaalczWmRXUXJ5czVTeDQz?=
 =?utf-8?B?SkN6enRWOE9NYkVUOEdrM2lLbUtRa2xwT09Pc21KSU5DT0tkV1FCMllJbjZH?=
 =?utf-8?B?aHpReFl4MjA2MmdzTUFLc3hxYlJYK0tzQ3M2OGhTZ21LTm0wRit3dnRuYUZj?=
 =?utf-8?B?eFFYOGw5ekNtcjc4SlkwVk55NmN3ZW9wRk9LTk9QTDdHM3F6Y1BTN2lmYTU2?=
 =?utf-8?B?ZWd3VGdqTS91RnRpZlFSQlIwWFd1Mm93ZEpqUHJ6TmRwWEp2NjJjN1BRczJO?=
 =?utf-8?B?ejNNZ0dUdGxab2tBNS9SRGd2bW9XSG9vRVVhcEVWNGJxMEI0Q2dBbjV3bDVk?=
 =?utf-8?B?d1d2ZSsvenNMWHF5VzVHMWNpUVk0Q2F4eXNyZkQwbmNBR2xna2xqc1VSZ3Ny?=
 =?utf-8?Q?HCgvy7M3hfpSN7eGdHv+UNU=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <398E664D7AE03346982457F649BC3C13@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10851
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB3PEPF0000885C.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0c2793d1-ffcd-40ba-5715-08de64ca3ca1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|376014|82310400026|36860700013|1800799024|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q3QyMDErcUZJQ3grc2pDN3FqSEZ6eWw2QURhd1lodCtIRHdvelF3eXIzZjVJ?=
 =?utf-8?B?dWlqblIzNkZQWUYwdVlNL3JwVDhYL2xySE5IODF4eHpNYWhGM1liZm1tcGVn?=
 =?utf-8?B?QkxaVEhzclV0ODhER1JCanJ3TjVoNnh3ck1mMUUyaUU0c3FwSEdiN3RHNmxB?=
 =?utf-8?B?dE1ld1hLMzhtR1pYZEZKRGFKUEZpdzB3a2kvWG1Pc2JPaDFRTEU3TEZORXh5?=
 =?utf-8?B?ZnAvNFpXTytLODZrN0Z1bG9WN1l2Yk1OQUF2ajZ3M0VwWHQ0amNaOVhFWWpU?=
 =?utf-8?B?RWtkem5PWE5SdkJNOWV6NmJDbjByb213and6VythajVuT05ENlVmeFE5dEhG?=
 =?utf-8?B?eWdiZVVPcFptNHp1eGFtRFlFTUo3RXNHL3ZMQlpMSktCcXFQZjFUaUZnenlH?=
 =?utf-8?B?OTRiWmdZK2MwcGdta2wvK1NuZmhhV25kdUFUTDdxMkZtc3hKWG4vMlphRGJx?=
 =?utf-8?B?anplNThCaWtXemxTbjlORFFId2QvaDl5NTNQTENhQnVCS2NjWmhKZ1Q5Z2NC?=
 =?utf-8?B?SUZCNHhBMEh5eEhEKy82bFdISkFxaXlWNk50Qkhia3JqU1lmTEdRTW9DdlJh?=
 =?utf-8?B?SEJwZ1NEUVA3UnNlY0lvSFZFVTJEeXBtZHlWVk5sTU9PRmFZVWtiRFBrZ2hX?=
 =?utf-8?B?ci90bFFBN0ZJSlZaQ2VJVFh0c0dHNXpTMWdqZkRpNUI0VEhsZVRLeHREK0Vo?=
 =?utf-8?B?WStIUk9rdUg5em1EeVFhZUoyNGZISzJJNTNsbkVUVWdsa005cTNwTzduYzRH?=
 =?utf-8?B?MGpNMUM3RUdUemJjODFZUkNwOWZSMVp5RkFxNlNkQmxXbFRHbktmT3VMQnFt?=
 =?utf-8?B?NjVjL0JPUEwyRlIvVkhXdmdrVWNKb0xZR1hhd3l1VHRuVU84UDJZM3RJa1JS?=
 =?utf-8?B?R3ZPRlFhRjMwVjBvM2tBNE5OYTJNNUU3eXU2ZHFWUU5Ya1MyT0Y4bktvNmpn?=
 =?utf-8?B?Um55WS9rdHFvNjd2RHlXaVRiUmJmd3grUWY2OXVOV242aHNLTFpIdStkT25R?=
 =?utf-8?B?YWNWcnByS25kLzltck1QcDVrUG1JaStUaUxNYWIrWFBZdmpYWVBFZ2N0VWd5?=
 =?utf-8?B?Yk5zOXl3RWxaeEZoNkpCdFZUSFFSckdISzZmT2I4Vk1qaVJpMk01eCt5a3px?=
 =?utf-8?B?UzBkejFYMzNBempTbDRvZDAyRm5vcXo0WGI1Skh4bDlHMUNTTGFoZTRiaVE5?=
 =?utf-8?B?V043amZ3eGNjUVE3ZmNFUlA1Wk1KWjg5dzFSL0puU2ZsZXQ2emVRZ2RQNkdv?=
 =?utf-8?B?S0RxR2VaRFdZeG9tQ3F2SjBtZHhvQVNRSE9yTStVdmg5cDJoMjY1a3lSdEhs?=
 =?utf-8?B?Z1Rxa1g0aTl6aVR5c1VOakFvWlBZOXJSVW9aRWk0Q0YvQlMvNUZxeUNHNm4y?=
 =?utf-8?B?alhxUEkvUmJUR0tDV0tkZUtCRTRnelRERWdnZDBvZXFuY2loa1dqNTl4SVNl?=
 =?utf-8?B?a0NNTFNMdXNWVXBxRzQrREZsMkZCUzVkZUpFVkIvY1BhbGVWNTB3ejB5aHMv?=
 =?utf-8?B?K2tTQytSYUVwc3B2L2ZCQVNEYXh0WnVISFJSVUZpUWorSzZHWFNXQk5FajN0?=
 =?utf-8?B?RmU4T1pMcnJNeWVJUmNRa0RUSXgrQjRQY3FOYzE4R3NIbzQ2aUdScmkyUFA1?=
 =?utf-8?B?dzBNT1NtY1d6UFhnYzVLbWh3dzE1TGFTY0F3cjMwaWxFS3J4ODFySktQYjZO?=
 =?utf-8?B?OUIwQ1VuYldpb1UraDVYYmI2N0VscUwya2RyUWpuZ1RRSitDdVZjOVNHc3h1?=
 =?utf-8?B?RytRbC9XWXFXOVdDNE1YSDZtTkkvNDZaemhtM01pb0pLWE43VWdVb3ltT3NP?=
 =?utf-8?B?MmtVcFNISHBaYzFSZ0FBRjlJRDM3T2dQM2wxaWQ1d1RIbjIxcEFyQ1B4clgr?=
 =?utf-8?B?UC9SZ2FVUzhlTURTYyt6VW1tc0g5VmxuaERUcmVXUFBNbHdleXo5azBWWFh6?=
 =?utf-8?B?RUc5aUZmMGxnYkp0L0dZQWs5YnhjUVIvYThNQWV5WWxjWEdteUZGeGVyeVlq?=
 =?utf-8?B?QnZFOFhaanprSVQrZG41dHUxbHdLM1puazROUUlnUkRNQnNxSXl1VnFSRnFD?=
 =?utf-8?B?dlRCRlpaWFdjRUNiQ05heThKR0xEdnZ2N1BDWDdDTDlCTExMZFJTMGVPS0tu?=
 =?utf-8?B?dEgwTElxb29rZFJFQzZxMTl5cnFKelBuUHlXY2t2SGhORGY4bU1PQkFyV21C?=
 =?utf-8?B?SGtiYVIvZGtrS1h1TnA2U2M1a0V2NUtwSkxWM2JCYnZ6YWRWNVFFZUU2NTYr?=
 =?utf-8?B?QzE5Qzg4REQ4bldnVnFhMTdvOWNBPT0=?=
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)(82310400026)(36860700013)(1800799024)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	FKKzakTLOSmBDEkdHqvTB5o9nELyqrn/7x4ZXwq7+onXEJPgRg0Tp02JQRXF42w62nd4Gudq/y6ktRGvW2t5UnFNHTy4d04Xxi9axuXs0Ucybznb0HAKJNlmpiuXh1F+4PITCB+eri2/brr/cH3pi8wcG4LxfESCCKQOSBXvKa2OTZjUUTx30sjCNI82L4GVjalxJzhOX+BCHc1biwLkM9RynV0zHNYYZ88Eg+3S57W+GINZIvLk4N8Oc5e/TJCE9H+q0vatAujkSt5nf3QebWC1TUBCTjiBkx5UbzH2LzEgBsJLeDks03TNZIoXBJ11E12HPDLIMUBs9GHYC0ekAw1kquflEHnuu4OUmX56DWaDJLiQGjdiSPY07+F6ZD+IRlvvKFqGNzvX2gkIaIS3lmPVHHFEf4jGuOiZT4t0o0R2L4x0/5cebeovvkSyY1dk
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 15:22:32.1555
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5d2d605e-f026-4897-e07a-08de64ca61f1
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:
	DB3PEPF0000885C.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10543

SGkgSmFuIGFuZCBSb2dlcg0KDQo+IE9uIDUgRmViIDIwMjYsIGF0IDE2OjEwLCBKYW4gQmV1bGlj
aCA8amJldWxpY2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDUuMDIuMjAyNiAxNTo1OSwg
Um9nZXIgUGF1IE1vbm5lIHdyb3RlOg0KPj4gQ29udmVydCB0aGUgQVJNIFNSQ0FSQ0ggdmFyaWFi
bGUgc2V0dGluZyB0byB1c2UgdGhlIG1vcmUgY29tbW9uICdhcm0uKicNCj4+IGV4cHJlc3Npb24g
cmF0aGVyICdhcm1cKDMyXHw2NFwpJywgYXMgdGhlIGxhdGVyIGRvZXNuJ3Qgd29yayB3aXRoIEJT
RCBzZWQNCj4+IGZvciBub3QgYmVpbmcgYSBiYXNpYyByZWd1bGFyIGV4cHJlc3Npb24uICBUaGUg
dXNhZ2Ugb2YgfCBhbHRlcm5hdGlvbnMgaXMNCj4+IG5vdCBwYXJ0IG9mIGJhc2ljIHJlZ2V4cCBz
dXBwb3J0Lg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5w
YXVAY2l0cml4LmNvbT4NCg0KVGVzdGVkIG9uIG1hYyBvcyB3aXRoIG1hYyBzZWQgYW5kIHdvcmtz
IDotKQ0KDQpSZXZpZXdlZC1ieTogQmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bh
cm0uY29tPg0KDQo+PiAtLS0NCj4+IHhlbi9NYWtlZmlsZSB8IDIgKy0NCj4+IDEgZmlsZSBjaGFu
Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEv
eGVuL01ha2VmaWxlIGIveGVuL01ha2VmaWxlDQo+PiBpbmRleCAxM2UzMzZiYTU0ODQuLjMxMzUy
ZDRjZDI2MCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9NYWtlZmlsZQ0KPj4gKysrIGIveGVuL01ha2Vm
aWxlDQo+PiBAQCAtMjQyLDcgKzI0Miw3IEBAIGluY2x1ZGUgJChYRU5fUk9PVCkvQ29uZmlnLm1r
DQo+PiANCj4+IEFSQ0ggOj0gJChYRU5fVEFSR0VUX0FSQ0gpDQo+PiBTUkNBUkNIIDo9ICQoc2hl
bGwgZWNobyAkKEFSQ0gpIHwgXA0KPj4gLSAgICBzZWQgLWUgJ3MveDg2LioveDg2LycgLWUgJ3Mv
YXJtXCgzMlx8NjRcKS9hcm0vZycgXA0KPj4gKyAgICBzZWQgLWUgJ3MveDg2LioveDg2LycgLWUg
J3MvYXJtLiovYXJtL2cnIFwNCj4gDQo+IFBlcmhhcHMgdG8gZ3VhcmQgYWdhaW5zdCBzb21ldGhp
bmcgbGlrZSBhcm12NywgdXNlIGFybVszNl1bMjRdID8NCg0KVGhpcyBpcyB0aGUgdGFyZ2V0IEFS
Q0ggaW4geGVuIHNvIHdlIG9ubHkgc3VwcG9ydCBhcm0zMiBhbmQgYXJtNjQgc28NCnRoaXMgaXMg
cHJvYmFibHkgbm90IG5lZWRlZCBoZXJlLg0KQXQgdGhlbiB3ZSBqdXN0IHdhbnQgdG8gZ2V0IHRo
ZSBtYWluIGFyY2gsIHNvIHdoYXRldmVyIGlzIGFmdGVyIGFybSBzdGlsbA0KbWVhbnMgaXQgaXMg
YXJtIHNvIGkgdGhpbmsgUm9nZXIncyBmaXggaXMgZ29vZC4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0K
DQo+IA0KPiBKYW4NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 15:32:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 15:32:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222131.1530164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1Kq-0002on-K4; Thu, 05 Feb 2026 15:32:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222131.1530164; Thu, 05 Feb 2026 15: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 1vo1Kq-0002og-HO; Thu, 05 Feb 2026 15:32:00 +0000
Received: by outflank-mailman (input) for mailman id 1222131;
 Thu, 05 Feb 2026 15: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=BdQL=AJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vo1Ko-0002oa-VC
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 15:31: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 ca60a24b-02a7-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 16:31:50 +0100 (CET)
Received: from DUZPR01CA0290.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b7::28) by AS8PR08MB8610.eurprd08.prod.outlook.com
 (2603:10a6:20b:564::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Thu, 5 Feb
 2026 15:31:47 +0000
Received: from DB5PEPF00014B95.eurprd02.prod.outlook.com
 (2603:10a6:10:4b7:cafe::59) by DUZPR01CA0290.outlook.office365.com
 (2603:10a6:10:4b7::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 15:31:42 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B95.mail.protection.outlook.com (10.167.8.233) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Thu, 5 Feb 2026 15:31:46 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AMDPR08MB11481.eurprd08.prod.outlook.com (2603:10a6:20b:719::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 15:30:44 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 15:30:43 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca60a24b-02a7-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=n4/hLdUA6zQnY3OtFHZTi3vFctbjtRklhwSBowrK1doXv8H7mVd2nM5AkXoEB+35KuXQVCXuKehrsNhw4clpvRJnQu8QmPC6A4Fo6QYhy4aIwnjNXYalNMojRi0DtuFj6FfCAUjNPL+bNkwXAOAhJw6Wn4WNY7UJpfB9yQ7g1btPuhFrrHq7gcjT3b1VrOwibzhPLWNc4aB8OEZUtXjvsIs8fNBktMmEMjq6PohJcD+3pJIDUnS4s70KVIkn4gPWTt5kuYxbS7H09nSYYtl4lpa3CmwJPMVPBhJFrrUkECNmzw7SUWgmww02bLT0VKep9j8pI2L9oIM1z9WpZNEJWA==
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=NXP1RvqiP7E4DrADvgvJikJDMzegwiRMmn+AxR/Tip0=;
 b=px41fnOWfBLNbYi1G+BTkL2n2t7ixzwwVA83iTVKtFpmE4lE4JrpUCdcswqQGWau5BDT0fT+01xMeJ0fhoJHpjWhs412j2jCTZwvX4Dr1WVXS6QhYStZmp2Vf127E+cq6/W5equbfPvOu14v+DIQ47zJfhfr0r7YN24bjkkk+WWLKU1dHTPeGe4AZWWsWeU+kZ3rbn/AztToCq/jxbwynzyAtT6tkWmEQeML+uo/mJ+0f8EWpp19xUyCVueF/P7uvBmQU9taSw1ajl6NX44Woq/FF0UN2Rm035AjdRRNIUSUeT2CuxIyalIZymzhVmpkcDHvXI7LMWtDZXdUf7S/ew==
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=NXP1RvqiP7E4DrADvgvJikJDMzegwiRMmn+AxR/Tip0=;
 b=ZK1nQ9aCbIcmgKrTEdhGFKBNAwGfehpFOl9/ZncxJfNVCmBnJxhBLtgM9jMECNrAajafkmcVW+9WIR4nVb7Xr1NWDaAyseAHTd79Lb+hYXGSc0mcQsQTSI64RtRMXbpf+tq/YkW8ntk04AMO5mXccdMFL3WTFc9jyzlh0UFwyTo=
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=vd/n7/CSdQq7Chv2KzinR3BuebyIt0YMbJw+BbYCUlBAhOENPUwFLwxwWrQB94UhMYU/kTuVD8y+K8imWUM4aLx0eTAHONRczRbsEIpLQ+8SixKJ9Wj3w6+e+3v3zLomIF5DCMIaEgcBuGapt2aNu5Pr0akf1UE8UCdqjWLr/93B8KuEzIOIESZfTsqC3h8vwQTEduamU4HoEoK2AIqwsNX6qS4DZG4A11ivO+8PhSX+gUXCoYRpbT4r0lxAO79NzFumGNZNt6UQ13OLiW0XeoBKHOAenoNFGz0S7+zBbGoUSrGtOSNOnHMISlL9eBt3LuHe14FacC860UgA2vYEEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NXP1RvqiP7E4DrADvgvJikJDMzegwiRMmn+AxR/Tip0=;
 b=QrbEaS4DwhMSytAiBVbddYelqeBmy16VIAmiXK2506Js0S5m+5EkpWmaL+S654Ny6JdOcdtDUVeLurFlRxuduPQkaBCpEviLGWrMYni2yRsyDwZRseXvOhDxvhQ3H6uMzFTxj7xIJbPjkZEFAnVw6+/gvSgFIkzVrVAdCZiu7pC3x7ey1Fmz3bz5rVV8FpsaXbp8o57WUKPpi1oYlh4pZruCjzjsaeu/aXi1KB86eRkg3XSaS41yhE58i5O2++5urksdoUXwmUR6mDmyv9uaSN7UH5l7x+ChDVOOTa/hnIvqAX5lWRWUStrDlC2aL7cTXAO40mXlVY7kaTkS2dl8aA==
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=NXP1RvqiP7E4DrADvgvJikJDMzegwiRMmn+AxR/Tip0=;
 b=ZK1nQ9aCbIcmgKrTEdhGFKBNAwGfehpFOl9/ZncxJfNVCmBnJxhBLtgM9jMECNrAajafkmcVW+9WIR4nVb7Xr1NWDaAyseAHTd79Lb+hYXGSc0mcQsQTSI64RtRMXbpf+tq/YkW8ntk04AMO5mXccdMFL3WTFc9jyzlh0UFwyTo=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Topic: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Index: AQHclpNk83RtAc43+U+zvyNqPofiH7V0CQWAgAAyjwA=
Date: Thu, 5 Feb 2026 15:30:43 +0000
Message-ID: <2B5080FA-A0F3-491C-954C-A458C6CA2E93@arm.com>
References:
 <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <7bf2ee2a-177f-4d7b-9dde-ee43bc4311b8@suse.com>
In-Reply-To: <7bf2ee2a-177f-4d7b-9dde-ee43bc4311b8@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AMDPR08MB11481:EE_|DB5PEPF00014B95:EE_|AS8PR08MB8610:EE_
X-MS-Office365-Filtering-Correlation-Id: 6b6c8dbb-4e7b-4b4e-ae1b-08de64cbac91
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?zQv/NXRBzkzuu6xHMxDs+pTe9JZ0mFT/EorvxlZpaQa+ZEsab/sb1qSUGg?=
 =?iso-8859-1?Q?hXk0u7yEw5f8qExw+9cYQZDCQT8RcB9AET9oxXZgWtiX4mHN4suKqSZzAR?=
 =?iso-8859-1?Q?6BQ/RDhU7gQ0hL1iHAUsY6Fa7n/pUwZaxnns+yXmVabEotR7HOqXE/6qWr?=
 =?iso-8859-1?Q?wuNJn4538L6hrSgjn1wK1Eo+XtwoZVqEat/uOckVo1t0bpmXdVb1ap1HSY?=
 =?iso-8859-1?Q?Eld3RXC4uvx4DVDsCe7JQ+V5sgSk5HKyg66LpQthjcTkqUmys+ChCHOpPt?=
 =?iso-8859-1?Q?eh5DPkHiuE5ok/DIfxEbwIJdlojRmGebmo/rXjwmW6WwQxtNf5YMYth4a3?=
 =?iso-8859-1?Q?WIlIZyTPUvbhny2meETU7QmHCUxgzy8xjJHMzBPyZAbX/Nx+ZrXDiSSfmC?=
 =?iso-8859-1?Q?G8zQri+JMd4CZH3oJ+8TzY8FeyguZPKnU94azVGr3M3QwGs/EA5AEMh69J?=
 =?iso-8859-1?Q?3r1vfOplRjIigxeGBK95tKWPhBeInqvewC4oWyWgQyAP+uoMPVkR2yLV/J?=
 =?iso-8859-1?Q?29QbFBoAez+H9wzyi0fTdalGGgI8IqAQG8YcBgbfQQxe2x7AEXj11kHY1o?=
 =?iso-8859-1?Q?bpMZKMmyA69/FEXOkfqtXBo06GsRgNpDCIRD3JRyLKeswcv+Dp1G63ylCA?=
 =?iso-8859-1?Q?r0Dxe/v1wb617X5uwH4j2O1cYdaHv+LAtnppol6v9ZwzrDnQAsd4PaUY5O?=
 =?iso-8859-1?Q?pwuEXBkxh+UU5ZTHG3vJtQGjGBe9/aIbMsSYoCI3EV4L/+fjZZr0qehLrL?=
 =?iso-8859-1?Q?EqKD75PuK8S5jChqHzFJX8i0tZvXuqP97uDu0c3uHK+U5tA6psskAsYmXs?=
 =?iso-8859-1?Q?jTo6lOwzEJ1zAffpJCkFznpP11LbcMHaDg7jvV3lzJKISiKdiR9i3QQ6nx?=
 =?iso-8859-1?Q?iqfM1/iO8e4xwqC+MSIA14Ro+aImsMIIMHWxqTZkr8VTTH4tEsrDZoDNfO?=
 =?iso-8859-1?Q?sE1f2ZTb3QzpozPbM8ohe9zoBohkzkGJQPniceQQSAbPiq+tPjmqcLsYwq?=
 =?iso-8859-1?Q?tUanvto+cw0gsd5Dw1yLHZ+yZZVpMYYQHmeVsztkb1eL1LZnxiWDkVPJsu?=
 =?iso-8859-1?Q?YZZi9Pa1OHlL6/tvKM973WTvCtAP/lKVnAEPm0rK0005INyVIfHqlqsyt4?=
 =?iso-8859-1?Q?XOt+L9n8BxUzxuC237GVHezFoleJjbmkaGElUIOjUJVUYzig8b1qI+btH+?=
 =?iso-8859-1?Q?8tVBHfC9q5kDvO2Oy7GIk9PRc1ViG8FyqpJqlEPibzyxr/nXPQsfo8dRr6?=
 =?iso-8859-1?Q?oAia/2YVmXPN5oazMDfl12PWi/92bx0gaePGAH0jRuYhJ2gvRfN0LXuqwj?=
 =?iso-8859-1?Q?6bAd2Ste6ejTwqF+OodyEQinx55XliFvpszJ7RWLgJRXNKfifl+Qmx9jA8?=
 =?iso-8859-1?Q?xkkB4TaKY0Ib9U3ZuZG0oXr2JJ5nGhUDjwpd1LyonhhQwb8DB7CtLaAK4V?=
 =?iso-8859-1?Q?1cqTdRdlAgylK27CRuP/GUL0TeHzWvoQDeMdwYMj0pBRckdQbxt0YKD/4A?=
 =?iso-8859-1?Q?c2iRih4cVmAT8XnnKx0abRVraWo0dIAr2IJynxyVzXFqfVtBFQBaRGMEII?=
 =?iso-8859-1?Q?E6v7yebbM8MxLkl903fFKxhKZrUfsJ394SlT5gQjtPl/DowmVPyTmLSL0M?=
 =?iso-8859-1?Q?f6H/+bVuYELkz0Yly5AbLg5JQbbMPb2lrsJeOiMyHEg0KRUZLeGkPiND7B?=
 =?iso-8859-1?Q?e9XfnkhAbmNnTUh4s0s=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <D8ACB741784C6540A60F65B28FF8F3A2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11481
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B95.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	97530a35-41ee-4d23-3da2-08de64cb86ab
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|14060799003|35042699022|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?keHiz7aondX9WUt/cdDv3A5wixif/C18BsEEc08o3SLA8ISwHO8w5LJRND?=
 =?iso-8859-1?Q?cR3uIIwbckLGkBlZx7YPTkfmt6nnhX937ToGNeRnE+U/4NmGwK2tl0/RcG?=
 =?iso-8859-1?Q?waSOhgr+jK1gNoKySZGuCri/xDXQ1/QaOBTOGHzNheindybN1jEG/f/rpl?=
 =?iso-8859-1?Q?9KJQPnfg/FfSheCkuh4jxbua80uEPbBzxIms/eR09pW3PNR4D6MPpLPk6B?=
 =?iso-8859-1?Q?lnicKVGU9X9kPGwnprM7khqqCrK0f21Ql8QrnpHMEAxS0ycciu8UshrGKh?=
 =?iso-8859-1?Q?cTk3TMpJCSuigV2p0zlkuls0i9fkw7F8E7ZxENHNJNQybmPLzzNmlojUkJ?=
 =?iso-8859-1?Q?wmlu2Fj66T4xcMn5G+JkMss9/CWbl9IZ93GvSK/pPklWWHzps64Op6NTcu?=
 =?iso-8859-1?Q?YnbE+YSvCuY/ym9eU2QQBTZH9SsZyNEEAHJE1sXj22gyH/ZkyZNNZh2kQ9?=
 =?iso-8859-1?Q?N1AfjLQfSFZ85GwW1C38gftrPx+7w5DkQLAzOXMCAjJoZA/plkztl5RX84?=
 =?iso-8859-1?Q?U2CAMYO2G4uxntLd5Of/b7MvDCzFM8hGu76dtHzm4HM93T33a+4ot2bZ6R?=
 =?iso-8859-1?Q?s1rhgT0gUH9cIHmwYGa2eShl4WvDNm3qe7L2I6LdV8y1FLL0DVneguZSTn?=
 =?iso-8859-1?Q?xkpmRymU32XESwNn64Nf1vAkhXnA+EFU6IQd/tJ3JQsekj9XhGo8xNHFCX?=
 =?iso-8859-1?Q?WkLS9MMR1k3yD8xDXvxDEd0mAjSaM+M+Jm0t/TBV6C7NMUYx/zck8Sf/H6?=
 =?iso-8859-1?Q?xYxXiUt7hBdWg9Y31dU0Vt1pscs5XwIjCm2iHDh7rk0zgOLZIz+6Y7s8pr?=
 =?iso-8859-1?Q?mSXjMaCnvX5XfFfZLnRnRhxabJSwm56hCAdEp/dK35dEzF7bNAkIgFu51Q?=
 =?iso-8859-1?Q?Mi9M+mfoJtj6bq1wefyG9ruYBeM29kA150c7fn5EyB/ILo8u2I5Bbbq7KF?=
 =?iso-8859-1?Q?/Vq6fkjlpI9kRRqKjKl17XVpgT4cvFaxLygtvsJtVyuY1KOWlfy9w/CMLh?=
 =?iso-8859-1?Q?+2DFGeitEbWTfb5mp194Ge50U2c9j+CS+8zgnFiK5EdWZ/h87BPRkrQmPo?=
 =?iso-8859-1?Q?pOpoXBWVDnAYisDZ4zcd84pi9FGKUi/OWxUzp6GhsJAnEcn99n+yxsvUE9?=
 =?iso-8859-1?Q?Q1ELhiIi3i2RfAdy4B3aaK4eZ72rPuLAoy3jIBYhuhyOmi/LV/Loe8z2dR?=
 =?iso-8859-1?Q?NRsxFEW1rPu2sWMPZ2JqrkZDzRUdyPCTSvyVLj7kFM1Sx5O/0Y9fHVLBzx?=
 =?iso-8859-1?Q?iHVARR9PgYfuB4uZAThQbedFoFtlAfmfbbxaAY6GuoGHEXBdxj9GkVbTo2?=
 =?iso-8859-1?Q?Ap41TUWpJgROvaSluO0uDxVIVuOWtrAg5zt/x51Kal2ew444lX1xyLavy2?=
 =?iso-8859-1?Q?YFnur/0fBVUKI4uQLOZUIyfHarqV9SKup8ErN/IASqLyt2wIwrTsoBMRL+?=
 =?iso-8859-1?Q?+cCaUR1hXEpKYwvSsrhPejJz/jpO6wVAP6rWKzoE46zLqYHDVLPQeCJj1m?=
 =?iso-8859-1?Q?NbHP27NyuvjoMrI0skA9KO/PZkMtsp9NN4527zqoOM34btO0gvNLA8MfOx?=
 =?iso-8859-1?Q?mLjTUTbnXluW3lZobOJP4nVvEtwMn/WcZHbXoK4wYSTb53S2BFfI8MFlBe?=
 =?iso-8859-1?Q?81PekNtt6MJHBxaQ2Aw4bocZz2DtRwN7y31OopKPTXflvxKq7AA36i4gnG?=
 =?iso-8859-1?Q?LaPsQVEUFEJGhSEwI63pjI5vbaDzEMZEvpp35JexsXISqjRWsAlm23aX8Y?=
 =?iso-8859-1?Q?fOkA=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)(82310400026)(36860700013)(14060799003)(35042699022)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	EnPhuGwaiSVtPHOY360QTWZ4ugM+AMb6s5nER857J7pB655jct731RdvPtQDMrfNcQ2Y69d3cg9iw2XfUZcU8zfbQbcoOri9VGWgwqGFqHaLDyUhMPwl1GcV/FNljbFD1P6qXLGLBHPwSijHzltcI0KvATzwWW+oWW8TZ9CV1dY8zsinJOkwJW/kB8dCBch2hzVSVUcZJeRmse18GO+dEPvvxpIjZAHMAC0Zx7xRBj4Tv9LHzVkL3+dox491VHWOum7siCTJrkccGktJE2RjsXaicj5VdVqwVme5PYXC0c5vA5hFxMAz8zSYBgG2CCL73eDtypBtvT8umWOAvZhAMykJqjmK6mwZOJvTctBMO6a+l+2v+lM4Ut8Xk5cCDwvz1QRNbwcUg4Wrp/nkOEkjOCfh0BoNyDnzqkP2oSVozgOMbjtumRHz31auectPZcZE
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 15:31:46.8557
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b6c8dbb-4e7b-4b4e-ae1b-08de64cbac91
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:
	DB5PEPF00014B95.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8610

Hi,

With Roger's patch removing the need for GNU sed, it appears that
compilation is also working with Mac OS make.

> On 5 Feb 2026, at 13:29, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 05.02.2026 12:33, Bertrand Marquis wrote:
>> Xen does not currently document how to build the hypervisor on macOS, an=
d
>> there is no Darwin configuration for selecting a Homebrew-based GNU
>> toolchain. Native builds are not supported; the hypervisor must be
>> cross-built with a GNU toolchain and GNU make/sed.
>>=20
>> Add a minimal Darwin.mk which selects the GNU tool definitions used by
>> the macOS workflow and point to the build guide for required tools and
>> setup. Document the Homebrew cross toolchain and GNU tools needed to
>> build the hypervisor on macOS.
>>=20
>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>> ---
>> config/Darwin.mk            |  6 ++++
>> docs/misc/build-on-macos.md | 66 +++++++++++++++++++++++++++++++++++++
>> 2 files changed, 72 insertions(+)
>> create mode 100644 config/Darwin.mk
>> create mode 100644 docs/misc/build-on-macos.md
>=20
> I'm sorry, I should have paid attention already on the RFC, but: With all
> other Pandoc files in this directory being named *.pandoc, do we really w=
ant
> to have an outlier named *.md there?

Right but this might not be needed anymore as the only thing needed after R=
oger's
patch is only a toolchain so brew is one solution but there are a lot of ot=
hers.

>=20
>> --- /dev/null
>> +++ b/config/Darwin.mk
>> @@ -0,0 +1,6 @@
>> +# Use GNU tool definitions; the macOS workflow relies on Homebrew GNU t=
ools.
>> +# See docs/misc/build-on-macos.md for required tools and setup.
>> +include $(XEN_ROOT)/config/StdGNU.mk
>=20
> Given Roger's consideration towards possibly using a more MacOS-native
> build arrangement as an alternative, I'm actually not quite sure this sho=
uld
> then be the default mode here. Roger, what are your thoughts?

Even with Mac OS sed and make working, something is still needed here to=20
compile on Mac OS.

What would you suggest the default mode should be here ? Mac OS is not GNU
but everything used correspond to what is defined by StdGNU.mk.

I am only forcing cross compilation here to prevent using the host toolchai=
n.

What do you think i should put there instead ?

I have been keeping that downstream for a while, it is kind of sad that peo=
ple cannot
compile on mac os just because of this file missing.

Cheers
Bertrand

>=20
> Jan




From xen-devel-bounces@lists.xenproject.org Thu Feb 05 15:43:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 15:43:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222143.1530175 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1WA-0004fq-Pq; Thu, 05 Feb 2026 15:43:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222143.1530175; Thu, 05 Feb 2026 15:43:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1WA-0004fj-Lf; Thu, 05 Feb 2026 15:43:42 +0000
Received: by outflank-mailman (input) for mailman id 1222143;
 Thu, 05 Feb 2026 15:43: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vo1W9-0004fN-GV
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 15:43:41 +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 6ec58ae9-02a9-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 16:43:35 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47ee2715254so7205485e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 07:43:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d835f0sm62008315e9.14.2026.02.05.07.43.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 07:43:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ec58ae9-02a9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770306215; x=1770911015; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3C/iFSnp5yxLxXwQDUUWuS22jpZjTY9Pa/0JcSquaNU=;
        b=AMNOIzfP9FqN9IkY3t/OkbnwM7yvl4j/45/Dm5MCiI2uliQeEVOsnAM8CwPQqh6BdZ
         VmNSH7fETgIl7gAndIb4hSgt58VFdSqqXWNk4IAj2MA9DO+SHdVSrksvGFAaDcpQXkdi
         3wq7+XhBrtzewbZpi9ZywxfijPTPHBdgHhngKq4DvtjvfpxsF1Sq3FA1xj4ICz6VeUI+
         GVkQuel5inqjq+3a6s99WmLRcwkQr036OXZ5PfmtS98pFTVplcuaynW+PriYG9QoQBLD
         bRI8mzNImFcuBcwH+GpSqTFchVDxUXvlFBTuZaRnPKfbbPe2uWGRCO3Bpq1qfZmoK6Hd
         ihdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770306215; x=1770911015;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3C/iFSnp5yxLxXwQDUUWuS22jpZjTY9Pa/0JcSquaNU=;
        b=oRmi/SEyHsfAdQX4AqHqjikuyUGdb5nb7zEbC3reY0HR7ib0aBVj2oEg/C7jAWqIz0
         RpEkLod1oZaoD/onbHhO4drojChObcS053qdJV1m1Fkm/JTqePf9umvDLOrHcINtI41C
         Q3Tdr/FY5/WS5PgOtk3OrI1hziMEK37/uvLgQJOP3iZbrMNe+jncOD+KKJI447gbFqZ6
         cWdGMUZ3o0XrK/zGbZjJiRW7kXjWm17ZSxG6W7UfrKITGS/NOd1+BMH69cMfsQmssEoE
         pGjxNJxRmZmhQfNqBgsUgMniP/kX1R4ONIxCYKZQlBvvQ/pW+vI9KR3LDmKfn7oKrIsX
         gkhw==
X-Forwarded-Encrypted: i=1; AJvYcCXVNR1LvfSENS8Pa9BAr97t7nt1izvz+ra41X6kRSclsTWo+e38LzUfIhUWCtt8U33PZrgz36v+BhE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz57im1r+Gg62v28y5K918TujHYfjBFMgYRjRiRL6OG3mRjrrQv
	GIW5kPfj036MdahtjDbt2ycXsTdbEIgraDldfNUoa2TUC6muvhxq0X/7g5OHXs7JTA==
X-Gm-Gg: AZuq6aKLbm3egc4Zb7MdOpfPtXJg58uxZzP2mb+4go/jRN0AGecpGBjInpFPpGu403Z
	K7sQRKCQ6x/D6rprWNrHSp7N7mG1QviWi+JyxJpCi+s2f8+27REklX9PR/8d52MCnyi8ZpwxpZA
	eyuoeB4wBE95aE9NlMTlS3K9/J/s7/k70fRUc/Ci1hTAFcVi/wUNyXNWFxePI0tCoOADNG8NrM4
	sZ5T9gZJKPBomuExFEk2fveUFC9AwZ03EwMBK3lf2JxNIID3Ou+Usj5ZLvVhjzA/EZYBa4Uz8h+
	BljHU6ItCBZmnXnG4Hha5sLIfqyWB+xX3MUWq7CASSyU9DgWxGSo2VoAtwCHdCXIZkKvGSxy+RB
	cWUTsGsF7L0Y3wl7clHaqy4HpxAf1CVZ/COzN3lTj8EhlXJtzfrvhOvnuKlT/hytcDcXjwq9gwy
	VjDKmVo+3MggtBc4hH3J0qbAI6Zip9JpDrC5ulge5emiBOMJq3pQm4+BIer1QXlUnx6/jFJc03d
	+c=
X-Received: by 2002:a05:600c:190a:b0:480:4a90:1b06 with SMTP id 5b1f17b1804b1-4830e9b7a3cmr87473075e9.34.1770306215055;
        Thu, 05 Feb 2026 07:43:35 -0800 (PST)
Message-ID: <a3cfd04a-c32d-412c-b352-b4a1e65cac52@suse.com>
Date: Thu, 5 Feb 2026 16:43:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <7bf2ee2a-177f-4d7b-9dde-ee43bc4311b8@suse.com>
 <2B5080FA-A0F3-491C-954C-A458C6CA2E93@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <2B5080FA-A0F3-491C-954C-A458C6CA2E93@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 16:30, Bertrand Marquis wrote:
>> On 5 Feb 2026, at 13:29, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 05.02.2026 12:33, Bertrand Marquis wrote:
>>> Xen does not currently document how to build the hypervisor on macOS, and
>>> there is no Darwin configuration for selecting a Homebrew-based GNU
>>> toolchain. Native builds are not supported; the hypervisor must be
>>> cross-built with a GNU toolchain and GNU make/sed.
>>>
>>> Add a minimal Darwin.mk which selects the GNU tool definitions used by
>>> the macOS workflow and point to the build guide for required tools and
>>> setup. Document the Homebrew cross toolchain and GNU tools needed to
>>> build the hypervisor on macOS.
>>>
>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>>> ---
>>> config/Darwin.mk            |  6 ++++
>>> docs/misc/build-on-macos.md | 66 +++++++++++++++++++++++++++++++++++++
>>> 2 files changed, 72 insertions(+)
>>> create mode 100644 config/Darwin.mk
>>> create mode 100644 docs/misc/build-on-macos.md
>>
>> I'm sorry, I should have paid attention already on the RFC, but: With all
>> other Pandoc files in this directory being named *.pandoc, do we really want
>> to have an outlier named *.md there?
> 
> Right but this might not be needed anymore as the only thing needed after Roger's
> patch is only a toolchain so brew is one solution but there are a lot of others.

Even better.

>>> --- /dev/null
>>> +++ b/config/Darwin.mk
>>> @@ -0,0 +1,6 @@
>>> +# Use GNU tool definitions; the macOS workflow relies on Homebrew GNU tools.
>>> +# See docs/misc/build-on-macos.md for required tools and setup.
>>> +include $(XEN_ROOT)/config/StdGNU.mk
>>
>> Given Roger's consideration towards possibly using a more MacOS-native
>> build arrangement as an alternative, I'm actually not quite sure this should
>> then be the default mode here. Roger, what are your thoughts?
> 
> Even with Mac OS sed and make working, something is still needed here to 
> compile on Mac OS.
> 
> What would you suggest the default mode should be here ? Mac OS is not GNU
> but everything used correspond to what is defined by StdGNU.mk.
> 
> I am only forcing cross compilation here to prevent using the host toolchain.

That part is okay with me.

> What do you think i should put there instead ?

Using StdGNU.mk may still be okay, as long as the comment properly represents
the overall situation.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 15:46:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 15:46:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222153.1530183 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1ZI-0005FV-5y; Thu, 05 Feb 2026 15:46:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222153.1530183; Thu, 05 Feb 2026 15:46: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 1vo1ZI-0005FO-39; Thu, 05 Feb 2026 15:46:56 +0000
Received: by outflank-mailman (input) for mailman id 1222153;
 Thu, 05 Feb 2026 15:46: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vo1ZH-0005FI-JR
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 15:46:55 +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 e52fac70-02a9-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 16:46:54 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-482f2599980so12831375e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 07:46:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d345c2sm85009595e9.6.2026.02.05.07.46.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 07:46:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e52fac70-02a9-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770306414; x=1770911214; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=YJWEVKFZlapcnC6PGSpp+kal8z98AGg5h2rGPcrpzPA=;
        b=UKTcyxTS9wPMNZ1UTEJuAliBXtZ4mNqiOgIe8ODjycl7MaD/jq9SfdmwXamJUF7kaU
         HGyTUGK73DkJNoA0EEKyIKkAycSe8TYC0vYuF0QzEeeDcNBpyiw/bPFFWi5LbtxJFrr1
         sdNtpQNQY6PE6TW4fwaysV7bLxgy34Dh6lvkAIbBSSXGsNUBLXmrywxIjOQAOYRLc6J0
         deW1Cc8CAQ16nP4RKoHJQhaWT1R/CRPhsFFhWUT7Lo+dyWo6Sv4fmHFnneaKE+g3ZccT
         byInLO/aHfJiUUCt34AX1LpRjZVUWj+2dYC/HzXW/tAkc7eK+9fzPu6CAkyhAq7iz5s/
         +cgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770306414; x=1770911214;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YJWEVKFZlapcnC6PGSpp+kal8z98AGg5h2rGPcrpzPA=;
        b=ln7Om1EUY5RCrLv+TO2eoLG8gZUVstDnmVpo1oDSeCEVYbPcVuZydF2ZnDMfvYndM/
         PtLPguxS3QsQUvwhTdUnDT/RyNYqM/y292WRp11q5bAaWgrYQfIlFf43bpgUaJGZmbNq
         XibvT8q2bH16bBYv7o4+JOGloAWWJDzsjd7fPhmVpp5RYBmGN5ZonYjQ2teP0cFIZjuX
         Rzed7BUZaIyMznVaIt81Teq6F4AkjGPMqZiyyF8SBalRM+jEsAfjuKs+sQadhjwixSaY
         fXeyFnpv4DUZebNJQdFSpCA8qIPxqYIzFxw0u7epnmudYObKg4YhbJqN16ASL3PCxyJu
         Wnmg==
X-Forwarded-Encrypted: i=1; AJvYcCXZotIc4rVgCAHW8APE61zlxicWUlzIZaKx9hQStsoB13usT2l3N/9hIuZ8UncyROiHn9MISAF8fmo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzlgZZCeKGsNwmWGx84/j4Nq+3eHU0doAY1lXAUvEeefUrf560s
	rUksI2z4c5X9ySIL56SM8iw46EfUNUkPmGNBNh4wvEbiwbXSdhxTXKbOYiiwa6jE3A==
X-Gm-Gg: AZuq6aKmoICL4EPAyoboL1RmbnnalVl3IrSXu2/nrY2L1eGQ8vXCtskgBsSBKWDTypr
	vHXer8kgZhSqWhgMFmZUIM3G99cuzH9Z9KD3odFijbfXibJcrr6hzql3fy/zCKj7K22oHctY0Fv
	8D0n1XcClWk3XE9lH8CkVK+uas74h4fa0uq5oEZDsGjBp1KozNWiHBy9V7xKXRdGUxNgbXzEihV
	kHpMvOjjVuqu2PRU3Gd3hgbZEhWc/TmXMOcpUohW4fR3FAcnJikLxF9ua4hqyldD2juho7ibipX
	tHwCZcwUXDTJbnF2fzUzVF4SdWF5khdft4SHGsZAoIYTN0NbNLdAIeDJTgHRpeFd8nJniJFxVp8
	NyPpcov5YKWOd6jICrjHVAt+JjIbN8CgrOY9hXwz/eNPrbPj9lap097KUjn8KGXdepRrFz2j8v/
	h/FvIK2YXfg1ZDmWqDa1Eaj36UOMgGbAPxd5SmCMrJSf0GpkZEFxBWn28uwYEQaCB5Reb8NEsYk
	pM=
X-Received: by 2002:a05:600c:19cf:b0:477:8985:4036 with SMTP id 5b1f17b1804b1-4830e93e9f6mr100577885e9.1.1770306413684;
        Thu, 05 Feb 2026 07:46:53 -0800 (PST)
Message-ID: <15d344fc-4c12-4782-87a2-650ad0fc8650@suse.com>
Date: Thu, 5 Feb 2026 16:46:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Fix memory leak in xenmem_add_to_physmap_one
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>, xen-devel@lists.xenproject.org
References: <20260205125820.116555-1-michal.orzel@amd.com>
 <828feb7a-2a5b-4306-8da9-162df9ecfee3@suse.com>
 <0d91746d-2a58-4770-ac64-f974aa3563b1@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: <0d91746d-2a58-4770-ac64-f974aa3563b1@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 16:08, Orzel, Michal wrote:
> 
> 
> On 05/02/2026 14:49, Jan Beulich wrote:
>> On 05.02.2026 13:58, Michal Orzel wrote:
>>> When a guest maps pages via XENMEM_add_to_physmap to a GFN that already
>>> has an existing mapping, the old page at that GFN was not being removed,
>>> causing a memory leak. This affects all mapping spaces including
>>> XENMAPSPACE_shared_info, XENMAPSPACE_grant_table, and
>>> XENMAPSPACE_gmfn_foreign. The memory would be reclaimed on domain
>>> destruction.
>>>
>>> Add logic to remove the previously mapped page before creating the new
>>> mapping, matching the x86 implementation approach.
>>>
>>> Additionally, skip removal if the same MFN is being remapped.
>>>
>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>> ---
>>> I'm not sure where to point the Fixes tag to.
>>> ---
>>>  xen/arch/arm/mm.c | 32 +++++++++++++++++++++++++++++---
>>>  1 file changed, 29 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
>>> index 6df8b616e464..b9f1a493dcd7 100644
>>> --- a/xen/arch/arm/mm.c
>>> +++ b/xen/arch/arm/mm.c
>>> @@ -166,10 +166,11 @@ int xenmem_add_to_physmap_one(
>>>      unsigned long idx,
>>>      gfn_t gfn)
>>>  {
>>> -    mfn_t mfn = INVALID_MFN;
>>> +    mfn_t mfn = INVALID_MFN, mfn_old;
>>>      int rc;
>>>      p2m_type_t t;
>>>      struct page_info *page = NULL;
>>> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
>>>  
>>>      switch ( space )
>>>      {
>>> @@ -244,6 +245,33 @@ int xenmem_add_to_physmap_one(
>>>          return -ENOSYS;
>>>      }
>>>  
>>> +    /*
>>> +     * Remove previously mapped page if it was present, to avoid leaking
>>> +     * memory.
>>> +     */
>>> +    mfn_old = gfn_to_mfn(d, gfn);
>>> +
>>> +    if ( mfn_valid(mfn_old) )
>>> +    {
>>> +        if ( is_special_page(mfn_to_page(mfn_old)) )
>>> +        {
>>> +            /* Just unmap, don't free */
>>> +            p2m_write_lock(p2m);
>>> +            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
>>> +                               p2m_invalid, p2m->default_access);
>>> +            p2m_write_unlock(p2m);
>>> +            if ( rc )
>>> +                return rc;
>>> +        }
>>> +        else if ( !mfn_eq(mfn, mfn_old) )
>>> +        {
>>> +            /* Normal domain memory is freed, to avoid leaking memory */
>>> +            rc = guest_remove_page(d, gfn_x(gfn));
>>> +            if ( rc )
>>> +                return rc;
>>> +        }
>>> +    }
>>
>> This new code and what follows below it are not inside a single locked region,
>> hence the cleanup done above may well have been "undone" again by the time the
>> P2M lock is acquired below. That locking may not be apparent in the x86
>> variant when merely looking at functions used. There's a large comment,
>> though, explaining how we actually (ab)use the simplified locking model
>> (compared to what was once intended, but never carried out).
> Do you suggest to put the new code and old code in a single locked region?

Yes. Which may be difficult on Arm, where the P2M lock isn't recursive.

>> Further, doesn't P2M entry type influence what needs doing here, including
>> possibly rejecting the request? x86 refuses to replace p2m_mmio_direct entries
>> by this means, but seeing that Arm has XENMAPSPACE_dev_mmio, this case may
>> need handling, but the handling may need to be different from what you do
>> above. (Just to mention: Presumably on Arm it's no different from x86: An MMIO
>> page may or may not pass an mfn_valid() check.)
> I actually had the following in my initial implementation:
> p2m_write_lock(p2m);
> mfn_old = p2m_get_entry(p2m, gfn, &p2mt_old, NULL, NULL, NULL);
> if ( p2mt_old == p2m_mmio_direct )
> {
>     p2m_write_unlock(p2m);
>     return -EPERM;
> }
> but realized this is actually a different issue than the one I want to solve and
> I don't want to fix two in one go.

Hmm. If you indeed want to separate both (and also not have both in a
series), I'd then suggest to at least mention that this aspect (and
whatever else there may be) is deliberately left out.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 16:00:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 16:00:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222166.1530193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1lv-0007H4-9b; Thu, 05 Feb 2026 15:59:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222166.1530193; Thu, 05 Feb 2026 15:59: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 1vo1lv-0007Gx-6O; Thu, 05 Feb 2026 15:59:59 +0000
Received: by outflank-mailman (input) for mailman id 1222166;
 Thu, 05 Feb 2026 15:59: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=BdQL=AJ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vo1lu-0007Gr-J1
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 15:59:58 +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 b7e5e318-02ab-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 16:59:57 +0100 (CET)
Received: from AS4P192CA0008.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:5da::6)
 by PAXPR08MB6413.eurprd08.prod.outlook.com (2603:10a6:102:de::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Thu, 5 Feb
 2026 15:59:39 +0000
Received: from AM4PEPF00025F9A.EURPRD83.prod.outlook.com
 (2603:10a6:20b:5da:cafe::d0) by AS4P192CA0008.outlook.office365.com
 (2603:10a6:20b:5da::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Thu,
 5 Feb 2026 15:59:36 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F9A.mail.protection.outlook.com (10.167.16.9) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.0 via
 Frontend Transport; Thu, 5 Feb 2026 15:59:38 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DU0PR08MB8044.eurprd08.prod.outlook.com (2603:10a6:10:3e8::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Thu, 5 Feb
 2026 15:58:34 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 15:58:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7e5e318-02ab-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=rxCQXKCaXeYMpYnBAWV/Jg6g/USJl6GoaI6xOssFsBfiQBNjXFpPGbBBc74UzU1myTgA7tw1t3qMnFIEeFfPxHhscZe3MDNyLbN7+twQGTuP9RxBv8OIE5fiuqrLykW6IEP/D3QvMuY/4UjplE2g3ThsO3D5CdrYnfi1fydWIIHJ2FB1lKPSaOZK+jEtrotx9mFRLpck7+Z4SMya8rnzj3YBWsfdglzJuZaiR4WqCohQSx7NpZ71+eq3VA9XixSTqKdisWFIXsfZmGoKfuhlGFxxrwgbRezlqms8WYPh5eXha4criYdqH8zUFCQypA3LU7tAcMXsceHcptkB+xE/dg==
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=JOQgdT734tyaQvnJPnVFeWkvKvV03eRV5SqxeUCQ0fA=;
 b=DjjV7ONdNZQcDx+dHTdcuHf/MPjiVKj3d+1MTftdqEUmmKkCB3YLaiU9zvJgWOU3zdMpsGzyvF+GMXIGk94Uf2eyhNcuDzIM85c/MXqSZDq6ZEYoagZ9obwCSWM8QFc4bzNHDXWuQ+nM/r/bPwKu/BdNv0EK5xF8lpItpzKUkSWCrtVhk+XTq9nojXtEgOzBIV9CQGeXDrzlqUK3UtrTPMEsqx4raqq6Af8TkhUqZ7wNnRqf0/RJdG0UVGYCPnBk55OPuOx+IqM7lAPdp3AaFMl20hevtXinSzhALD4Y4vPkOCydKkQ8/9P8YFgCm/F+pFVKtOQg6DOKYmRNiBD3XA==
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=JOQgdT734tyaQvnJPnVFeWkvKvV03eRV5SqxeUCQ0fA=;
 b=M+5J3HhRjSG4XUvsOcQ5dhyBxOTaH1EUsYo/W7GJtsI52tQpzj26TtQQfr69puNmnm/3qFIMUEJLRcP3Mzmfr9Y2/dfE8XHqHyAvC8MA+Za2Z72tJBLtFk0/WuojIHj/Sgwj4D7wrymmv0gSkKxxSdM2mddlo+MSUtx7w4GtmoE=
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=uIC9C36/kaeGMc66zc8rhi3SeWNF6aKGHS7Kpbnjj/2TUd+iLAThboGAliEI1MrdJiqbATDi5UJJLF/vYEcJIUix7U/m41nWYPaWfhXwAcIO2Yf4TV6gNTJwMHkL6JXyZbyXcERlJ0arDt1TCMuMti82OTE+qzngzN7pWQoMnHNbc2sjH1M2g3v46hhfe1p7omtxTUJpFxNX0mjWKHC+m5zZc4tL2NolfQwAfE4vAHFI5l/a8/2ggiuEwg7TA4zDDPrY1bIZN50ySXB3weGYHnaKd7VXKMyt43VmR0eUV1LDMD7WFYIPBM6/+4AiuXwxJG2mV8rTHfJsQV2BZ04b7A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JOQgdT734tyaQvnJPnVFeWkvKvV03eRV5SqxeUCQ0fA=;
 b=Vy+kzToZWJzNtt3+S5HL6cj9jJ7XrgZFLwsvRCIHenb6x3qiTClSusseHp5bKFcMWGsA7KleCACjX6RMOWgDG8A8UBDbYgQndWBOKdxf748q5cQb5sJVr+SDpyKTiEhcC3h9+jJAKVgJE+B8X4LTg8CxpW3l2tFM9hvQBUauacoJ3hPghR/8FPJwmj1Sic4ACLr3Wt2LROGrsBg6q+7cRrHw6mH6Qyyd/et4b5BetlfmdkQV1nWnvyeMVhtNdQLUh/kbWhdOQSFnkkaG69E2YIvGYmSiNAJk49HNqDCZuxdRoTa3XNtN3aqaUEcD0LNDgaQtmfsNw0TT7IA+DdsBDA==
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=JOQgdT734tyaQvnJPnVFeWkvKvV03eRV5SqxeUCQ0fA=;
 b=M+5J3HhRjSG4XUvsOcQ5dhyBxOTaH1EUsYo/W7GJtsI52tQpzj26TtQQfr69puNmnm/3qFIMUEJLRcP3Mzmfr9Y2/dfE8XHqHyAvC8MA+Za2Z72tJBLtFk0/WuojIHj/Sgwj4D7wrymmv0gSkKxxSdM2mddlo+MSUtx7w4GtmoE=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: =?iso-8859-1?Q?Roger_Pau_Monn=E9?= <roger.pau@citrix.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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Topic: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Index: AQHclpNk83RtAc43+U+zvyNqPofiH7V0CQWAgAAyjwCAAAOggIAABCkA
Date: Thu, 5 Feb 2026 15:58:34 +0000
Message-ID: <6AED68E8-CCBE-46AB-AFF0-9C87AAB770C3@arm.com>
References:
 <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <7bf2ee2a-177f-4d7b-9dde-ee43bc4311b8@suse.com>
 <2B5080FA-A0F3-491C-954C-A458C6CA2E93@arm.com>
 <a3cfd04a-c32d-412c-b352-b4a1e65cac52@suse.com>
In-Reply-To: <a3cfd04a-c32d-412c-b352-b4a1e65cac52@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DU0PR08MB8044:EE_|AM4PEPF00025F9A:EE_|PAXPR08MB6413:EE_
X-MS-Office365-Filtering-Correlation-Id: ba48aa57-cadb-4065-1c4b-08de64cf90e5
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?yFY+XhvA0NsUu3Db6EmJjnsTh2ZSlvrwwZKjGvxkU+N9jnm/aoYPEwYgLW?=
 =?iso-8859-1?Q?IBN38iOdfzvVVG9mCUKnNwYPLk+Pq/aFNPDE7Ga4/z38rLnguSGSrwoaxR?=
 =?iso-8859-1?Q?r5gw5k2KYs/uKCzVGdwWZHi79g2kjYHZZwh6LPvo6cWhBEP0DCEgZYh1tb?=
 =?iso-8859-1?Q?aistQADQG9pOKlSiFC4rqrh40VvoO30bWSMCiUz1LRrs+4tj/ybAqxZExA?=
 =?iso-8859-1?Q?es+Dv1NUTvZAHs2u0CYlr2wg7/RpgIic8m7n39z9TUlcdxLZumtSlSDKfx?=
 =?iso-8859-1?Q?4JPnlPyLheoSB5/qrCZJfUz0g8m0njmATMghPSZ6JYM4iDgd8LF3/sopfP?=
 =?iso-8859-1?Q?YUiYRxR71f49zpWNDxXH3V9cWT9p3TUd1zg5gxrB7hUHdcowAw+mhltPmP?=
 =?iso-8859-1?Q?0NxiSp66WJV3+t+kHuFGKMLPpHWiFgL4qL8XfnC3QpMNZilkwdH0PzGNWx?=
 =?iso-8859-1?Q?YdzFDqA5MXuPDlUeYlPQyl3CyZfoIokQC7Xf7gY4htIbEaZIzIRghDQ/Nl?=
 =?iso-8859-1?Q?uWEDn5uFLgYkRMjFmNHZtQ8pUDz0sPHSoagiKrO7DGqU1sfi3ItoFtRkW4?=
 =?iso-8859-1?Q?cAnqT59wTMUKRL2YV+XmjolADT2bgm77wALi3Ptryi93A2wkDKDNG3RXUW?=
 =?iso-8859-1?Q?yA0TSeFTbESnYoFK0Mt6pnMecqN+R9TU+ispnM8a3gQIyrBYx2CeUUTle7?=
 =?iso-8859-1?Q?vRDxTt3dlFIyeLGmR1z1DTobXqzusfzUT9EieN/BuDJgiAIQtCK+umPxM0?=
 =?iso-8859-1?Q?/ts3UfBhdYPFALrYG6ltVxQQbgaOmukkPZT1Fm+YPhSbFbf+CH6Af8pxD3?=
 =?iso-8859-1?Q?L1PlmZnfU9nkaeC7fiP58bYEZO1cGdx38FEqG/itbHsjscB2fTUNb4HWZ3?=
 =?iso-8859-1?Q?NZM8Fj6XtYFqw9TyX6T76OFK4/UydbrPgCFFmU61Y8dgchI0GhZWi384oc?=
 =?iso-8859-1?Q?AWdvI0+jzZxRj+8FiDq+AaF3FrnMR7VXxZhd35Hd0tQUaKJm/ztFjLQX6/?=
 =?iso-8859-1?Q?IfasMP2wUfYsucXHdEsA1tLSDmxoYQ3vqh5Vz+QT9ztLCpxyNV2/O7eNIR?=
 =?iso-8859-1?Q?OqiBhopsAQkN/BuAkfRiRsOI4UMCLVPemmBRoYdMrvYwvVadCbYAwXoBDL?=
 =?iso-8859-1?Q?7yIeftiv+xG7kUIQtLnca64f4o/7Yi2KMmZkAutFXiFRhdBaQkgHe7p9Ll?=
 =?iso-8859-1?Q?YUqfMjCbg7zMAHsqskt1r+ZgeMbrUJVi5vDIWnHZ29jy+NYMuOskrFpeTi?=
 =?iso-8859-1?Q?6F96aY3HsE3bewwdn4e/XaOlOYcReVzgKGr3hwKRgT6Z92ehtDUWeFeELC?=
 =?iso-8859-1?Q?+c4K9Bxum5Hm0xxJqvakxlXRLGS89JRGRpgbr5coiV4b5MCfW0HRk9mtEn?=
 =?iso-8859-1?Q?1yc4ud4ffqe+74czkR6uhlA1Z9HHejeRBsoaqrLJNNjLVtcsxsRmSbOdtO?=
 =?iso-8859-1?Q?fjDIaXX76v3VmAAigub1F7a5nSvrPiX/03vTQekp4j5GdiHyZI1baJZtie?=
 =?iso-8859-1?Q?qjrRQhvivPqE0KsB0DG6u30LQymMfv06bTGFcmQQ4Q6qVupws7N5nwEWFW?=
 =?iso-8859-1?Q?Ow+OVg+7zq+0FPhw2Wt2ZLHuVev5UJ11zCbFmyZEtbeTLd8GZQlOqJyNwh?=
 =?iso-8859-1?Q?uC1UJHqmnr09IDfrBNQmUk404/OAFIcdR/vjkiPJxw0fV1RF1GnHdUx033?=
 =?iso-8859-1?Q?damfmB2ITWQpAtENJXg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <818FDF940F6CD14BAD015483D85C1860@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8044
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F9A.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	46be51c2-2789-4a9f-081c-08de64cf6aa4
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|376014|82310400026|36860700013|1800799024|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?Cswm67Xrg9+VAzMSVFeUB/5bRCwEGG16T0HhtJ8Vo1qcdwcgxrzXR2C3Py?=
 =?iso-8859-1?Q?2gtpXvQMZo4BQ9MsrjPK2/ya+g+JpW6m2gZxahYLJ30y4BsGX79k9zeUlj?=
 =?iso-8859-1?Q?lJjtgoarg7YVQsjwF+JEMXPbEPZj7RX4Zco7Yi/hVsdUD2XhqBEe2MwVrs?=
 =?iso-8859-1?Q?HrmA/njZNibc+vupV2/FmMFUai7WZLpxYnjFhtYmt2yWdXUr7jkhIjrsyr?=
 =?iso-8859-1?Q?ozdG+35MH+V2RG81ABKvENON/kb9S0jCsTt0QUyn1Ku0pVYK9cFSh6c6EI?=
 =?iso-8859-1?Q?FZladB52k0MfIjM5WDciY0SEFKGPDvjvVWiEo2ERMMLqKBj+D7o60b0QT0?=
 =?iso-8859-1?Q?ft0ooBNfUCTH5LuTzI5KR8zCsiJRaKqYpHQNWfIycbVXAikIXV/OtlrQlv?=
 =?iso-8859-1?Q?9oI+SH9ILxs8u0F2FvYPEV0QcTCAvBv3VFA70bhahcvcTwkccgqKnnfEXQ?=
 =?iso-8859-1?Q?/NerRd4TXj6BICiBCbingbA8c6yqnGCtrn8ys9wchCzK8PG+Wt4/lwpEPc?=
 =?iso-8859-1?Q?91fpyjirtv+M0j6gou9RWXcqa8FxgE0V6BIb4p/pveBNsGF5IRnOY/0sx3?=
 =?iso-8859-1?Q?9gNRrIF5Ra0o7KhRv1onLF4CzCY55mu1j8MfjGplGciUdnwUHE5Z99Vu5V?=
 =?iso-8859-1?Q?tnFyWeQu/Q2oYSBluEONJ11lzLmkIRdVEkDq8zgT4I209CzPMX8ItVr5A8?=
 =?iso-8859-1?Q?ciQo/2fwVdtC2gbg+IudH3N24NNpLCdxmnKwJIHlC9+PzZN4NrHAEnS1EG?=
 =?iso-8859-1?Q?0kAiAxF6zHeBlInn1BUrkClbB56vqZ4F01yo7pynste/9FDYFBcrEYW6Zk?=
 =?iso-8859-1?Q?dpFaHyTTI1nXUAlK5FyhmzltpOEjTVxFQxC1HEx8rFRWjEZQI5LgmtP4nC?=
 =?iso-8859-1?Q?fLThNTTo3xR8bspomQijX6BpQwr71t5meoybPD+4An4mazYH/TQ/t62og8?=
 =?iso-8859-1?Q?7xkJflec934QZnPljJ6S+lr1bXa9RIZsVCxbdMBHnmUxQxtC4n7gKrRpQH?=
 =?iso-8859-1?Q?pDzFbjiDHnEAqmXSEHq7zk59GF296lMo41u/GF4bAfNKNCyhxpZUgcP/mc?=
 =?iso-8859-1?Q?Ysu8e4NUO4erl8+ZJ3+rLKF5Z7DUV2rNFd+IQfUHyGn4tGWqUPWOg+dsuk?=
 =?iso-8859-1?Q?PLxmjrzpDMdeRnenv96rIRn38XHqO/1RWr2vUpuFV27wE6t4SOn4D6bTSW?=
 =?iso-8859-1?Q?9UIb7uAzfGacUy7Yh1+jTo8Jlndp5sn83SUsGtVZJSKq7h/rtCmk6R+Yga?=
 =?iso-8859-1?Q?advlhwJEC+DgGIyOy04sFdhIsDcEPc+brwwzXGfwD87lm6LQfjxVTBLaGY?=
 =?iso-8859-1?Q?ji/EZXamRx505Mw7LrVygmsfqTaNmHJVOKifoBmMo/D6FaoYnw71pvXrwa?=
 =?iso-8859-1?Q?unFX1prDSOrt9fllJX/v5OvwCjcXhieQq8NW6BQK399LQ0Jkk3MKBcoPtS?=
 =?iso-8859-1?Q?dKcAqKlRzOwDEbi4p8/hLf+q0JFREkzCn4tfTkDQzgd9DU18SOVj/T0bT8?=
 =?iso-8859-1?Q?m67h0hUXp2rDCng+dg7BB1BLwKwujOaen/OlMxmZNghC22ox5NTh7I7OBH?=
 =?iso-8859-1?Q?CHrucGVub/ZYKvyqDVC1ChZ4+26gI9R1sdMJe4/zSk8sb7EYVhesRf4Fp1?=
 =?iso-8859-1?Q?/9VscfAAI8LkSW6MxDXovJxjgcpuhnQwQDNVpX5wizzN2WnTbSHhVo/7XJ?=
 =?iso-8859-1?Q?xPc6Ds/lQuo/hXKrkoPAfgnN6cJD7ue7jIbjte19gJ0/Yj1F0y8Tu0OQ68?=
 =?iso-8859-1?Q?AAbg=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)(35042699022)(376014)(82310400026)(36860700013)(1800799024)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	r/CoR4VLX7srNsSGbBu81ZWwV7FL5HijvwMhPTbbhvF8xW7NXqSR+3T7gdWftxRwTsXBu7ZLQO0oX6EPTAejGYV0EW0miIdK+CdOkS8jU8yWgg+B3yuC0hP9K+b2iFoWXCsHGo1yF5k9NyzsUFbNHosFUmOBp2TKJ2dFMkoQByfSvlpcWBdbXvgyvMnGCjco/TytIXK7HRZg2Holk2vMkDe0mdciqShRDX7C3M8TlXnzcjVhrt0l7ozw5gZNtUCvLnYcM/zDAloti3vgvvilpderX6+bT5uf0f1zHGLWcfWa3wpAKOL/pebwf64+pOPDuB+yEfz73KuZFbMsI7Kwfi9VSyvS0t9s6PsFEICo9lkrznUh8mqnQFniIobdmcGLHa4qIGYdFQrfpC3drTqPMfB23ERNBdpT4P6K9sOLW/npyP17CmN9B0uM3ZPkRMzi
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 15:59:38.4259
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ba48aa57-cadb-4065-1c4b-08de64cf90e5
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F9A.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6413

Hi Jan,

> On 5 Feb 2026, at 16:43, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 05.02.2026 16:30, Bertrand Marquis wrote:
>>> On 5 Feb 2026, at 13:29, Jan Beulich <jbeulich@suse.com> wrote:
>>>=20
>>> On 05.02.2026 12:33, Bertrand Marquis wrote:
>>>> Xen does not currently document how to build the hypervisor on macOS, =
and
>>>> there is no Darwin configuration for selecting a Homebrew-based GNU
>>>> toolchain. Native builds are not supported; the hypervisor must be
>>>> cross-built with a GNU toolchain and GNU make/sed.
>>>>=20
>>>> Add a minimal Darwin.mk which selects the GNU tool definitions used by
>>>> the macOS workflow and point to the build guide for required tools and
>>>> setup. Document the Homebrew cross toolchain and GNU tools needed to
>>>> build the hypervisor on macOS.
>>>>=20
>>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>>>> ---
>>>> config/Darwin.mk            |  6 ++++
>>>> docs/misc/build-on-macos.md | 66 +++++++++++++++++++++++++++++++++++++
>>>> 2 files changed, 72 insertions(+)
>>>> create mode 100644 config/Darwin.mk
>>>> create mode 100644 docs/misc/build-on-macos.md
>>>=20
>>> I'm sorry, I should have paid attention already on the RFC, but: With a=
ll
>>> other Pandoc files in this directory being named *.pandoc, do we really=
 want
>>> to have an outlier named *.md there?
>>=20
>> Right but this might not be needed anymore as the only thing needed afte=
r Roger's
>> patch is only a toolchain so brew is one solution but there are a lot of=
 others.
>=20
> Even better.
>=20
>>>> --- /dev/null
>>>> +++ b/config/Darwin.mk
>>>> @@ -0,0 +1,6 @@
>>>> +# Use GNU tool definitions; the macOS workflow relies on Homebrew GNU=
 tools.
>>>> +# See docs/misc/build-on-macos.md for required tools and setup.
>>>> +include $(XEN_ROOT)/config/StdGNU.mk
>>>=20
>>> Given Roger's consideration towards possibly using a more MacOS-native
>>> build arrangement as an alternative, I'm actually not quite sure this s=
hould
>>> then be the default mode here. Roger, what are your thoughts?
>>=20
>> Even with Mac OS sed and make working, something is still needed here to=
=20
>> compile on Mac OS.
>>=20
>> What would you suggest the default mode should be here ? Mac OS is not G=
NU
>> but everything used correspond to what is defined by StdGNU.mk.
>>=20
>> I am only forcing cross compilation here to prevent using the host toolc=
hain.
>=20
> That part is okay with me.
>=20
>> What do you think i should put there instead ?
>=20
> Using StdGNU.mk may still be okay, as long as the comment properly repres=
ents
> the overall situation.

Agree.

What do you think of the following:

Use GNU tool definitions as the tools we are using are either GNU compatibl=
e
or we only use features which are supported on Mac OS.

Bertrand



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 16:08:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 16:08:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222185.1530203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1tg-00016d-4G; Thu, 05 Feb 2026 16:08:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222185.1530203; Thu, 05 Feb 2026 16:08: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 1vo1tg-00016W-1G; Thu, 05 Feb 2026 16:08:00 +0000
Received: by outflank-mailman (input) for mailman id 1222185;
 Thu, 05 Feb 2026 16:07: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 1vo1te-00016Q-OP
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 16:07: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 1vo1te-004F9j-1c;
 Thu, 05 Feb 2026 16:07:58 +0000
Received: from [2a01:cb15:80df:da00:10d0:b82f:72a2:ac5] (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 1vo1td-000giS-2O;
 Thu, 05 Feb 2026 16:07:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=xenproject.org; s=20200302mail; h=In-Reply-To:Content-Type:MIME-Version:
	References:Message-ID:Subject:Cc:To:From:Date;
	bh=L7AlrDhtoiZcfuy+jhhS8IOW+H9z6FpyimOCakWieZk=; b=RaZP1+cn+70lYc2JMr9kqqVAC4
	S4kHvMWOjr00afQJ5Y8TRpNmi8/KBPputVO5xX9pbWyi5Qs2TdA235iFunxvM8BhJ3/f98Y68UH0P
	74ajQ2RSaR5QKFy9g7v2D7cQikfMmbif8sNctH+/BdTQ0qBKCsuLe1zaCsIZxYi6q6gM=;
Date: Thu, 5 Feb 2026 17:07:55 +0100
From: Anthony PERARD <anthony@xenproject.org>
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>,
	Roger Pau =?iso-8859-1?Q?Monn=E9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Grygorii Strashko <grygorii_strashko@epam.com>
Subject: Re: [PATCH v9 4/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 driver
Message-ID: <aYTAW5My41py18b4@l14>
References: <cover.1769696107.git.oleksii_moisieiev@epam.com>
 <3a5ff98b9c46c393e856c2e9a645b2cb1509d5c4.1769696107.git.oleksii_moisieiev@epam.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3a5ff98b9c46c393e856c2e9a645b2cb1509d5c4.1769696107.git.oleksii_moisieiev@epam.com>

On Thu, Jan 29, 2026 at 02:16:55PM +0000, Oleksii Moisieiev wrote:
>  docs/man/xl.cfg.5.pod.in                    |  13 +
>  tools/libs/light/libxl_arm.c                |   4 +
>  tools/libs/light/libxl_types.idl            |   4 +-
>  tools/xl/xl_parse.c                         |  12 +

Hi Oleksii,

Could you put the toolstack part of the patch in a separated patch?

Thank you.

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 16:10:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 16:10:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222191.1530214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1vy-0002a8-GK; Thu, 05 Feb 2026 16:10:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222191.1530214; Thu, 05 Feb 2026 16:10:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo1vy-0002a1-De; Thu, 05 Feb 2026 16:10:22 +0000
Received: by outflank-mailman (input) for mailman id 1222191;
 Thu, 05 Feb 2026 16:10: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=2IOj=AJ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vo1vw-0002Zr-AA
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 16:10:20 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 29e06922-02ad-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 17:10:19 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL4PR03MB8037.namprd03.prod.outlook.com (2603:10b6:208:58e::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 16:10:15 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Thu, 5 Feb 2026
 16:10:15 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29e06922-02ad-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MoD7BpQmz6GK24hN28r4IHa/Dn7JwLgP2Q5HgdYUani75Im9FhI+5lhw6pGy70nzmLa3W1o50cwNyhuTu52r8iG9qcS4tyRzPSxkaI3tlr6Kq5YsRMEs3+76okI7eFwu6K+3G7yx+37p3jtZghFmmv0vLhMKfcbA9yiJidz/2usfY4TddfTh14EnbYNePb3QXnwZiK7XPL0IFxJlrOowF5Wy7DZpo+inF/nveNCkCgJeGOj89hXqqowy/i+flW9VerTiwLMQXMt7YgpyGGaX0ZqeSJ6Kc7H5SMs/2MJB2mAGKhSXZFFTA+wBN10mLZYzjQwBGhLWYhW2n4PaV13BJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CIFNsboLgTT8NUSFp1lc6J0wLhVurW6307dOo7PAn9c=;
 b=kPRaCcRneJYK19tjngSlviB0H4e0v+x+ivsqWXX9ZqV0j3dcmnI3OYD2lDaQwQ00IGC87/o+m6V34zpXUknHZWICwJm7P0Kk4s+p9jmNCLSrU78nJbr/IZi28ACplCYf6LOe28ngR+YypwIXmiP8yjFxVR/OjnorBLbpvvwBCCX5NEAfIca6CrEaepFASCZKaXDqEp1W+pCzyviSc+LzV1PfO2KEaDsd/I3XItMdrsUxCgT1cM1lISgn6ulakG9YstOOcbK7N15kpSRWXcn6V97MoBZLTg5xsd2tb4i5k805RrvnTHG8FKlo8q/yVGfNGFrLq4RSeLiOnPzQGdUI6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CIFNsboLgTT8NUSFp1lc6J0wLhVurW6307dOo7PAn9c=;
 b=sGeipC8HlyEegnvCU5kxV8pD8KGcSDvxagzLKjHOKhsWpdv14xF8rLDnQm45IYYraNQHCATzxdzyBt5bhrNrnOwZsSQWwO0+DWnK16c1fBjmGg2wOqbPg41mRL/TsbVGanfEojH6/qWWsoHMKTQv93W6LwHNSDczMzKobSuQdL0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <cf78fdff-3c83-4c94-b08f-fd60bdfdda5d@citrix.com>
Date: Thu, 5 Feb 2026 16:10:12 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Christian Lindig <christian.lindig@citrix.com>, David Scott
 <dave@recoil.org>, Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH] Xenctrl.domain_setmaxmem: fix 32-bit truncation bug
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>,
 xen-devel@lists.xenproject.org
References: <7f0c73c140b53cf0777437b46d0a0fda496b48b8.1770299489.git.edwin.torok@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7f0c73c140b53cf0777437b46d0a0fda496b48b8.1770299489.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P302CA0031.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:317::18) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BL4PR03MB8037:EE_
X-MS-Office365-Filtering-Correlation-Id: eeb6a01f-541d-49dc-da00-08de64d10c6b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Um9CU0NxWjlLQ1FYODBlbE51SGJ2UFBjbGpxOVhXMWpVemFSWW1IRDFGUmhG?=
 =?utf-8?B?ZFVTbThSTyt4RDFUUFE5dytObG1UTWc0T0h6NG1ZL2h3MVFnSldwT2ZZek8r?=
 =?utf-8?B?Zys2Q2VBSEltNEUra0p5SW1ZeFlhY1BMTWNWeTljWnpVS29IMkpvVXFQZ0Zx?=
 =?utf-8?B?M1ZHWERNUDNsaGtPaXdwdWhhTnVzSEpONTg0bS90dS9WNnIwUUNac2pXU3JP?=
 =?utf-8?B?aHFOWWt2emgybG1QeDVXb3o2NFpJZDVHU3lwS3ZvQnRrbG8xWUFnSXg3NHlF?=
 =?utf-8?B?UjExN3NMOWcxaHZ0dTl5ajRCaFdNYXc5bHFuY2VEbFFSYW04OFpMS1p4Yklo?=
 =?utf-8?B?M3lObVduY1ZzWW9iV2NOd0YwVld4c28yMU5wdWdKc0JkSzhodEtYaVE1SWU0?=
 =?utf-8?B?TFk0QllzYjJUMFYrVnFmMHJtWlVWWHhya3BTRnVGWmJPR3B4dWhONEtXSmlj?=
 =?utf-8?B?cVMzZDJTUnljT3d5SHprTmNWWGJHTnkwd0t6L3pId3cxRXhSMUlld2pmZWhW?=
 =?utf-8?B?bWhVOW5sbzRQOFNyNHUrZFRyUXBmQlRVTXQwMGphZjFGUmd2d0szb2lYY050?=
 =?utf-8?B?d0tzMmdLczBEZ0NnSWQ1WGhneDE1QWkzVjhWREFrdjIxTHdKZXJPVkluL2Vl?=
 =?utf-8?B?K2hnZVMzc3VlMEdZSDBGUmtXdFhPZDdBcjRSQmRQMURrKytSaUxoK1Y2MkMv?=
 =?utf-8?B?ODRmSVplNXlKeW9GNGx6RGtKNVNaT1JyTDNlSUh5bWlNNStsMUphckdyZzNx?=
 =?utf-8?B?eFJFM2VDNVlzVGZGTkpZNlI1c2p6RkNKVkhhT2RNaWdvVFIzU1M0eVBKUGMr?=
 =?utf-8?B?bStMdGluZ2pjUytIaFQ5SncrcUdMNWJZT0NZL3VFZVEyYjF0SlNvQTFocFJB?=
 =?utf-8?B?Mk9XVG1WR1ZLa242Z3N6UjRIdk9VWUk3R04zZVBmekFEUjVnY0xzQzY3L3Jv?=
 =?utf-8?B?Tk1yWjRUV3pBelRDZ29ESVpRYkxBYW9TREZjSmV4dVorbnpvdHVzRjRRT21m?=
 =?utf-8?B?ajEwQndablhrT0xtNUpPeURKVHN1cWZqODMwb05OMThIUzVhUURPUk1yOVNK?=
 =?utf-8?B?dnZ1d3UwVVJhbktSVHIvbDlVTUdLWW00MzhTWHRGbmhBWHE0TmoyakdPYlNK?=
 =?utf-8?B?MDloNUNPa1IrcFJQS2VKTFI0VEdJUXppRjZNaXVIUjVGVmR0UWEraGE4R01G?=
 =?utf-8?B?NXVCUGthSHJma1pnSVpCMmFyNTFUNDllRXkwTTdDbFVSTHR4RENBcklqeGJm?=
 =?utf-8?B?V24rTGFlQ2ZhcGVqZm5kYVh5WUw2aU9ENnJjbXZQUXE1VitvcFdoOWs5Nytt?=
 =?utf-8?B?S2FWN2VFSVdMY25OUVJhMnNLUlNpUnhzYWwvZmVCQ1k5TzA4OFh5OWtHSFVp?=
 =?utf-8?B?M01FVVJjVHBRQmpXcUhqTzM1RlU3ZGIvdE5qcG5XRnN2Z0FZdWFjMGxYSkpZ?=
 =?utf-8?B?TFFQRDZ5N2VnQ3VIOTZnZVRHbWFxZkgxbUFyemJVL0hXQ0N5d3R3NG1JR01h?=
 =?utf-8?B?ZGFQMDIzTkZ4aWhWa3lDMXh5YUhtdFFxenBKTWljR2w3d1pSVE9XL2Z6U05u?=
 =?utf-8?B?SkoyaXVnenpBeGhWbll2TTZZczgyRW1YQWZrTWxpbm5HcnowdGVIdlNrdzQ5?=
 =?utf-8?B?QjlMZE1Xc3ZwNzlYL2xxZ2ZtR2p0bWVXS0JDYTYySU04emlaMmZHaG9BMms1?=
 =?utf-8?B?cTBCekxxUWhiZUI5MHpMWC9FdmU1L2RMR0dpQUMrQWtmb1JORVVJT1Vvd3dn?=
 =?utf-8?B?WExJQnhVVW1wSHlWSHMwU1huRzVRaG9BMTNXWHg3ajdLdUpleUlnTkJKcnI2?=
 =?utf-8?B?T25wQWxoOXA5UzZnZDdPSm8waUdCS2J3MiszTEtVNlp6SWdmaXlkbERPM1l0?=
 =?utf-8?B?NUhtd2g0VnZVZ1hyS3dCaEZ3N1hPZ2M1NVpSS0ZaTWwyUlVXa0MyL05kcU82?=
 =?utf-8?B?SnNQRTE4dk1YcW11NkZoemQ4cksrcmZlSXZnRFB5NExoZXRpNGE2ZnlHajhP?=
 =?utf-8?B?dUdHY21LVXFiamRnZDBoUU0zcUdOaExMbmxybkVOUVpHRWxZOVZ3ODRUMmxt?=
 =?utf-8?B?UHQ5aXM5TzZ3R3U5bnR3YVlIODJzeGF3NmxrOVN6d1pqQm93RG1OdEtTaWlG?=
 =?utf-8?Q?E9rI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SE16aGZZM0JudTExZHlteHVibWZyUGtOU29TUEZiYWVoNGtOVmNKdU5FbHRQ?=
 =?utf-8?B?NlZMNVNpb1E4ZEdUeWk3ZzY1SldSNk9haUMwYUhpUkRXeXVMVkw0VXpZeWRB?=
 =?utf-8?B?VnZIazRRcWVmZnl0YnBJNHp1aVE4YjB4QjBza3pjOG1uTCtwY1JUenU1Q2JI?=
 =?utf-8?B?cHA2SENERGVUUko4Z0RCWWZvUnRseXcwY0lHYldYRGlnTzl4OGRtVlAxK0lH?=
 =?utf-8?B?eGhVVUxOQnplVWZudG9qRW1hWi96NEZFOVNIVUo5RWQraVFEYiszMFZxN1RV?=
 =?utf-8?B?R1ZuOGlJU2F2c2R6MkswTjc4TTA5MVE1YmVMNTVwdllEVkF3R2RieE5qZmNC?=
 =?utf-8?B?Q1ovT21ybWpibEE1WURRYm1lMGlmZEI1SnFTenFKaForVDBtYTNoSy8wMUJI?=
 =?utf-8?B?VEg2bHV0UnZuRUxQL3hkeWhMMit2enRIM2NseThYaGhnRGI1R3F1K0dydFM2?=
 =?utf-8?B?a2h1WUFNZ3FyOXpUMjNkY0FTZEk2UXZKbEFEYjBXL2c0UWs1Q0xBZW9PNytP?=
 =?utf-8?B?S045blFJSXFTL2t0MzJrZ1ZORGJPUDV4WVF1R0E1NnFYSnY5UVBGakhFaW1R?=
 =?utf-8?B?N00wdjMyOWUwd01FNk43SitEdlZxU2x4SzY5VmZTWVJIWTQwVVNUdW1md1VX?=
 =?utf-8?B?bklBRTNnNmNqWlphRVozV3NSbUkrQWNsdXNRQ01PRnVoR0xWeWNkQWVmdVJD?=
 =?utf-8?B?N2gwNE1vN28yZ1JBalI0c3NVRFAzZ0tFRDZyTnpFSHNlK1QwUUg0K0xUUUJz?=
 =?utf-8?B?L3p0ZEo0TUlKcTlOay83WWRNcUJrbDN6bjF3SjhPZ3ovanhPallGdzZzZWgr?=
 =?utf-8?B?YnJOa01uVURZQTBsUldMTGJPamlFZ21NcnpqWFd4eUduSHZNTXVrZzl0RXNC?=
 =?utf-8?B?SEsxSnZMcithL2p0Wi85UGdrQnV3V0hVL2Riamw2RHFCOXpiNlM4ZmpJR2Jr?=
 =?utf-8?B?MSszSmFlbWtzNTRyOFZCWi9SYUFwUVBMSjJRVkRTZlZiZjdvYjgvYU9DNHR0?=
 =?utf-8?B?dTNnRk00bUxkWXJxbmlwSUlVWktUTEtsTzEvV1VOTkUzcGx5aENyUlNCS3py?=
 =?utf-8?B?MlBSWGJ2cXZMdHd2RGtJdGxlVmtHclVRKzNBOHVkbjV1Wmd1RE5SOEFKTjBa?=
 =?utf-8?B?bzQzcDVsbEcyYTNpLzJzTXRjY2ZmaXI1QjYyaVFoNEc4V2hqdk1UNHRjME9h?=
 =?utf-8?B?bHZhVFJVVkh1dmhQSFVkb25kYTRtMkt5WWVOYmlUUTNLdTVIT2h6WDNRRjVB?=
 =?utf-8?B?M2R4eVJlY2ZScUNwa29CSXpQT2FqbnI5bW82WkxHaExuMWxFWkhBbmVsUUJN?=
 =?utf-8?B?ZktNd1lwdzFqZE5IZ2ZITEt3K0c2ZlNNeUthN3MwNXpBdnhPWXFBOTg5djMx?=
 =?utf-8?B?SHU5UXZhTnBDcE9CaHZzRXltUkZpVXZSUC9UT1lKaVc1L0tpSWhmcXZzRXFH?=
 =?utf-8?B?U0lHeFErWVFLcHNYYVRrNlk1NUlrNmpPMEJSdXJISWZ6bG93cWFQdy8zemg4?=
 =?utf-8?B?TG5zNERrc3AvUW51NmxsSTRMWVdEcGZDcGM5K0hqeVpwY0NiZzJGQjBhSWtK?=
 =?utf-8?B?WlkwSjJwdEJETHZ1dTZkYVBINU1HR296NEhwTUpWNzZNVzJtY1ZVU0JKUi9y?=
 =?utf-8?B?N1hzcDhOaGlEYXBFYURHQWNIdUxVRGJtVW9HakluU2RYSHFxN2Y2a0dSd2Yw?=
 =?utf-8?B?a25hL2c1ajFranBCSXJwcmdLbXQxWXhoMlZGdC9sRnhtOHo2ckFCbzVsekVY?=
 =?utf-8?B?WU5Ccm5UV0Q3bHhXLzdyL0l3Y09tUlJTb1NvSWJ6SVpEbURGalFKUzFxUzhU?=
 =?utf-8?B?UWU1MUFEWThadkthMDkrNmYwUXhpOCsrdnROeGtsaWtEb2ZMMDhFRFVsU3RH?=
 =?utf-8?B?K1hCR2M4bm5YMHVyTVhmd3FQMnpCQzlXTWhQdGFWNGxHQ1V6SWxzbmNqNDY2?=
 =?utf-8?B?cDlYTFVTSTJPU3FJNVlQWkw0V1dJUHlhaHVycElza2poWmk2WmozMHNtSzhO?=
 =?utf-8?B?UWNOYkZEM0NBUFAzZjVYQVEyVkFBOENZQUt2TGtZWmxYNEpzd2RROVI2YXd2?=
 =?utf-8?B?MVVBM2JzOGJ4UXRhK3hhWFJ2clYrZHpPVFhqb2Q4M0V6VDhPMEs4b1dZUTNu?=
 =?utf-8?B?NlpMT0thb1JDblJreFU2alkrSDRveVJEWnBick5MVW5JUExpQnVUVkdJSm1R?=
 =?utf-8?B?RzBlQ2tQNlFldnVvTG5oc3M0cUYrN2huelJTS0swR2VTbHFmK2NLZDBBK0Qz?=
 =?utf-8?B?OVFMeU4wL2IzSnRJODZVMGdQY0prckZIbWFXeWZMWWRvS1c0S1RzbmlqaWh1?=
 =?utf-8?B?Y3h6TS8zdDFKRDlueklYWFpoTGptTVd5aFJuNjV5b1ordzJIOWo1UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eeb6a01f-541d-49dc-da00-08de64d10c6b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 16:10:15.4444
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hStASBobNc7jXedFHR06LP8jd83HZF+xXIYo6EiQ7DU+duAKqg6UtrDGrqCifQ64byn88g5aDqcIhVBGgmUPHWX2I5CcviSSWEVNWuzzMeM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR03MB8037

On 05/02/2026 1:56 pm, Edwin Török wrote:
> Observed when attempting to boot a >4TiB VM:
>
> After a call to domain_setmaxmem with 6370254848 (KiB),
> the domain's maxmem got set to 2075287552,
> which is exactly 2^32 smaller.
>
> xc_domain_setmaxmem takes an uint64_t as a parameter,
> and the OCaml value is 64-bit already, so fix the C variable
> to match the type and avoid the truncation.

Fixes: f5b43e95facd ("libxl: fix "xl mem-set" regression from 0c029c4da2")

> Signed-off-by: Edwin Török <edwin.torok@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
>  tools/ocaml/libs/xc/xenctrl_stubs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
> index ac2a7537d6..c55f73b265 100644
> --- a/tools/ocaml/libs/xc/xenctrl_stubs.c
> +++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
> @@ -947,7 +947,7 @@ CAMLprim value stub_xc_domain_setmaxmem(value xch_val, value domid,
>  	int retval;
>  
>  	uint32_t c_domid = Int_val(domid);
> -	unsigned int c_max_memkb = Int64_val(max_memkb);
> +	uint64_t c_max_memkb = Int64_val(max_memkb);
>  	caml_enter_blocking_section();
>  	retval = xc_domain_setmaxmem(xch, c_domid, c_max_memkb);
>  	caml_leave_blocking_section();

Interestingly, in 8b7ce06a2d341c1f when the Ocaml bindings where
introduced, it was always an Int64 downcast into an unsigned int, so the
binding was correct.  Later, xc_domain_setmaxmem() was upgraded from an
unsigned int to a uint64_t.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 16:26:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 16:26:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222203.1530224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2B4-0004NC-PL; Thu, 05 Feb 2026 16:25:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222203.1530224; Thu, 05 Feb 2026 16: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 1vo2B4-0004N5-M5; Thu, 05 Feb 2026 16:25:58 +0000
Received: by outflank-mailman (input) for mailman id 1222203;
 Thu, 05 Feb 2026 16: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=oQ2u=AJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vo2B3-0004Mt-VY
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 16:25:58 +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 5953ab60-02af-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 17:25:56 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso10633145e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 08:25:56 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d7a99asm72216505e9.11.2026.02.05.08.25.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 08:25:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5953ab60-02af-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770308756; x=1770913556; 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=MQnibJuvEXD4990OC7RL8/XAKNQan2ONKn0EEC28b5Q=;
        b=SRVG0E9w6Xa88vwFIi5g0IfPrB01ylIwreoJsir+fdbjK4IW5FRbriBN8AviHovMUY
         9nTwBwWWppqilIbid5GF/APX7V5wUYHRZIKuQeNQCf2Xpphbw0c9d4Cm2507llFaqLtq
         mzqPtDAz4JcKGu+6ZUyHEEPQgC/CkIveqq3AoFjqNpjtQyTgGW9UOvg6GPvqsJa9RghH
         zYgDQQ/pGYwePTx/D+qVg7V4mGoKqOJS2bXM6oMotPw80HNpTtOKowqUC4Kc2QczrGA2
         tA4ejeKqZR1si2ka5dDW66xUcYNPUOtHsc+zijhdrVv7Fy0tevG1HyPefCJ75EmtP//G
         QjyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770308756; x=1770913556;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=MQnibJuvEXD4990OC7RL8/XAKNQan2ONKn0EEC28b5Q=;
        b=RArbnal5mmuSt0ajilYocBE5YFoMtJCKPl/+dfpV0GU0XYzQ1s1VdSBSMKyisCiy47
         Q7oITh0kDeZg1ugUKWG6P7CUiIeBC9im+7HCtMv54quEjoDTiaQPDctf2UTzl6NNLRSN
         chx9+kCzgwkQM+HUrheLoiD6Wou9zm8bmypJpHF3nneY0cA4txphOIIJBvz+0LZik0/6
         GTtt+QffiLJ8WCQFknkX9F+CoIYu48jWgMwNoxeGLhuMff5tRlgfZ5JmebKS1yNTDG9N
         0pCWxbEprhgNYacida5bl6u6hyGA9iTp85cYfilTDajk8DJTDpnymw/3El/qPFvl8RIb
         TvHg==
X-Forwarded-Encrypted: i=1; AJvYcCWUi39cz9FzL51na3RuRKZqJ/9HYuCfLpPiCBnNazGPKAmTwxjP71ZrojRR1naMEq8a0pcJw/mzK+0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGiHaAg91OYQMeFpYZL8tYU2Lf5edPhiUF1miVPcToG4CInlqJ
	YqP4pJOJDpz6IT/8+s9n6/L7mOvbePQ0mHPNZT2JcLOTiZ0ECKNu5/DC
X-Gm-Gg: AZuq6aJSRKIgm0WOoRx08+uSgl9mv3+nvy4ZSiiMuBE+P5bBsJu2AUu+MsYyHnd6N/7
	B8EK4aTgmByavAahtdlnk4l40zXYCxt60/vn/yOdLF6OgTA+DYANM8xTJxFRgEimc7ADD9H58t5
	xIo0Xx0I3Hzwnk+UuzGSSAqmf3lcorPRY0k+eFWxVee2lBMEmf93qD2SQLn8Xyx3AwaZLGihM2j
	uGcqPJOL0YWwPXmykzjUEMb3b3mlrpPBsDElxzF4Eton9ojhpWOQWNDatIIM9iEawabdBVkf1yO
	0+V8ZWKWGClSdWetguTAoO+IT+7zdOJREoLEu/1NOAH94iFhSsIpXVzL3XT5P7grVZUpygQgJVm
	uD3alAs+r3ga5nhr+aWQDEczQxxEe+B5lWY0uMAAi9RYkT5kVrkiTM9d2zE0p98aSh0QX+HJmVj
	Y5VrB1p6tvVfCzPTbDInFGTvrspDLLYhWuLSsZV4Uh9k5aPzAJYIkTr+6/p4z4wPI=
X-Received: by 2002:a05:600c:8b30:b0:480:3ad0:93c0 with SMTP id 5b1f17b1804b1-4830e96d513mr93132845e9.23.1770308755992;
        Thu, 05 Feb 2026 08:25:55 -0800 (PST)
Message-ID: <e0c8e096-c215-4872-b9c4-8b238678d761@gmail.com>
Date: Thu, 5 Feb 2026 17:25:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 13/16] xen/riscv: implement reprogram_timer() via SBI
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <732635f43fb80daec332f78d4442b56bf5dfda98.1769099885.git.oleksii.kurochko@gmail.com>
 <bddacebe-e84b-4ba0-959e-be078d613d03@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <bddacebe-e84b-4ba0-959e-be078d613d03@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/4/26 11:39 AM, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> @@ -40,6 +43,46 @@ static void __init preinit_dt_xen_time(void)
>>       cpu_khz = rate / 1000;
>>   }
>>   
>> +int reprogram_timer(s_time_t timeout)
>> +{
>> +    uint64_t deadline, now;
>> +    int rc;
>> +
>> +    if ( timeout == 0 )
>> +    {
>> +        /* Disable timers */
>> +        csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
> For here and below: Is it guaranteed that the SIE bit is writable? The privileged
> spec looks to have provisions for the case that it isn't (together with the
> corresponding SIP bit).

My understanding is that yes if S-mode is present.

>
> As to the comment - why plural here, when ...
>
>> +        return 1;
>> +    }
>> +
>> +    deadline = ns_to_ticks(timeout) + boot_clock_cycles;
>> +    now = get_cycles();
>> +    if ( deadline <= now )
>> +        return 0;
>> +
>> +    /* Enable timer */
>> +    csr_set(CSR_SIE, BIT(IRQ_S_TIMER, UL));
> ... it's singular here? Also in both cases, isn't it the timer interrupt you
> enable, not the timer itself?

It is timer interrupt. I will correct the comments.


>
>> +    /*
>> +     * TODO: When the SSTC extension is supported, it would be preferable to
>> +     *       use the supervisor timer registers directly here for better
>> +     *       performance, since an SBI call and context switch would no longer
>> +     *       be required.
> I think you mean a mode switch here, not a context one?

Right, mode switch is better.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 16:51:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 16:51:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222237.1530233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2a5-0008Ji-FB; Thu, 05 Feb 2026 16:51:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222237.1530233; Thu, 05 Feb 2026 16: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 1vo2a5-0008Jb-CC; Thu, 05 Feb 2026 16:51:49 +0000
Received: by outflank-mailman (input) for mailman id 1222237;
 Thu, 05 Feb 2026 16: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=oQ2u=AJ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vo2a4-0008J5-S9
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 16:51:48 +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 f608769e-02b2-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 17:51:48 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47ee937ecf2so11628315e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 08:51:48 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d3e245sm63613365e9.8.2026.02.05.08.51.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 08:51:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f608769e-02b2-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770310307; x=1770915107; 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=5xosurgFRAJa+Xu+VaoPk9Fn04w7h4egiOjazTi8msA=;
        b=lLqP6Hd2KMUfBNmAazkBLAXQRjmm/RhRBjZ5dAmb3M1yAuG5N7E/MW+VV7V9LSkPFw
         BlL1ZxljK9SZ2nJIqgm9CTO+HtB3qdpyQmJwAYwwuylTy9SSem67z5kc7BWJtiubw0su
         2JojYzeDfkznIciTXw8xnNpEsLUwdA9dj8STugsrLzsN1zk5VMqn1naWxCmS5V0J29HD
         FlUu59qStRjNX2OK1akTPDFBdWBYHYqE2Z0fQ+bLAS0NYmaK4Qi49sbAo84M4aRtHrTi
         OUKTtvAREGmL4LIta74rN+vkAnidj9tHM40qW5b9m4zFEynx9tQa1LE8IuYMojSDbkjf
         rhbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770310307; x=1770915107;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=5xosurgFRAJa+Xu+VaoPk9Fn04w7h4egiOjazTi8msA=;
        b=bO8IHOjmJp2w7BfxfDOJP0hnH8vrvLQqsnSNdvpVTHFPrE0jWa6sLwVbH2qBVcidRz
         wDxU9LOKqVVG1vRNep6qiOYQ0BbJdoeBbM66rcaGBwo2vopgtUCz/lG3f9QL/eZcBaly
         o5Lhe0cgnwL4qu+qzMdTMFBSWderBUiN+t5/gJJtFTOUHRwAYbbsrR66sLGjCIjBXs5W
         y4x8BftBzGPTp/LQ969/j88prmwfCeXmZgP0NKgxxFzVUh4AkcBG+u5WKYJXPnWeVm5j
         ONrzCyLv1I1vwuCJFsE3eH1pJ9shLe/+mPBmzZj6PYQncxvegRGmmkfn4yk91DdnMTBN
         JExg==
X-Forwarded-Encrypted: i=1; AJvYcCVwoDI3kMICKvyp+wxWDA8az2xqq/R0wSm4PXQhOG+UowlXf5ALZ88nsqAGG2frSTm+qhtMSzLSXl8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzv8oKUHmQQfhPKHSj+qO4aDYMWLq/m/DEBLWNgD0AnJf+QrOEh
	8YEVbPsp8ZCA17oNojTcLVzF95BLdqWsjJN3aobT1a0QVqpGWs1JHOY3
X-Gm-Gg: AZuq6aIG+r/jr3dBqSwEjTA+5AnlN2u0K6OGrFStMHs7BO5/XbjjXZaBsetCoi7/Flc
	+/skTmNwPMb49pOOHnUbWTHSZUWeXHL7xVFLcRehgHsvV4jR3YKPxpSeva1qQZFoTcKTd/5VUQ+
	oAfqgGa6dNFDuJkAPOFEm5mEfPPD8Ka6Az+NOPsHGVZyktBolqX9W0DzywkYqJx9bcUV6oBMtph
	4x7qjmg9DPbKtebsrwwsq157RXZrkx37tcWGLVfCg1PjCYOl8DqrWdSDFuLmTNlLhvx9zCHkGG8
	9qisq+InVCDg8Xsai1S94RI/xFGvPcwN88I6lNieN3ham87eBhrSvd+oFcfQpS+JchKvxMUBIoh
	I5HSk/od1CBVW/16ILD9NZVYHd6VhZQG75/spl/kBK++mM4MO59crAMb9pK1Ove7DSiBjaabhBS
	zs9M9AjgvrEonAwMqNu0yVnSUyqoguJaJIVMiLzviLESrU+Csaf8ugIYZc0+zrcRI=
X-Received: by 2002:a05:600c:3515:b0:483:14ec:5925 with SMTP id 5b1f17b1804b1-48317992008mr50461455e9.2.1770310307257;
        Thu, 05 Feb 2026 08:51:47 -0800 (PST)
Message-ID: <135afbb9-8863-4a9c-b012-832575f04edb@gmail.com>
Date: Thu, 5 Feb 2026 17:51:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 16/16] xen/riscv: implement sync_vcpu_execstate()
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <eb254f5a49d01712f9b3745e420dd37a4a9ba0bc.1769099885.git.oleksii.kurochko@gmail.com>
 <316accc5-2e6b-4571-98a7-5776a47a4ad7@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <316accc5-2e6b-4571-98a7-5776a47a4ad7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/4/26 11:49 AM, Jan Beulich wrote:
> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -259,3 +259,21 @@ void sync_local_execstate(void)
>>   {
>>       /* Nothing to do -- no lazy switching */
>>   }
>> +
>> +void sync_vcpu_execstate(struct vcpu *v)
>> +{
>> +    /*
>> +     * We don't support lazy switching.
>> +     *
>> +     * However the context may have been saved from a remote pCPU so we
>> +     * need a barrier to ensure it is observed before continuing.
>> +     *
>> +     * Per vcpu_context_saved(), the context can be observed when
>> +     * v->is_running is false (the caller should check it before calling
>> +     * this function).
>> +     *
>> +     * Note this is a full barrier to also prevent update of the context
>> +     * to happen before it was observed.
>> +     */
>> +    smp_mb();
>> +}
> Where's the counterpart of this barrier (going to be)?

As it is mentioned in the comment it is invcpu_context_saved(). ~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 16:52:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 16:52:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222242.1530243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2aV-0000Et-Mf; Thu, 05 Feb 2026 16:52:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222242.1530243; Thu, 05 Feb 2026 16:52: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 1vo2aV-0000Ek-Jh; Thu, 05 Feb 2026 16:52:15 +0000
Received: by outflank-mailman (input) for mailman id 1222242;
 Thu, 05 Feb 2026 16:52: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vo2aU-0008J5-B3
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 16:52:14 +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 04f6c617-02b3-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 17:52:13 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-42fb4eeb482so796796f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 08:52:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4361805f25dsm16286467f8f.29.2026.02.05.08.52.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 08:52:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04f6c617-02b3-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770310333; x=1770915133; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+a24y37v2jrnQg8n8+OtM4vlSQ0hwPalNlu13MWmNiw=;
        b=FZi9IgLKfP1EWQhQCdq0whMS111tfVCITYzHgmmANVD5f3333hoIB8nGAaxef7xjo1
         WHhecnGc1xEEAcB+BGth6Ol8/4oGuuQMEPOKswotU9+ZTo0AhU49cWf+un29Dg+7HyHQ
         1CsSPNAfkYsbyGJpHPWfIVnpMTTgIdrDFhA5MA8giE9lDGmm97yUQjMSjOGsbLLd0yL6
         EDBwPZTquCuMUzeeMQvhXvThjjOj5Am/4D1Tpa/ptonBL57I4KO2LZab8LbCl9omeClH
         RIEmaaqPpmmH1nbQOPhcVoU+UogHTUhmUr5k9t5QivZhR9+zNPA/aHYjEL9qS0QPTzoY
         wxHQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770310333; x=1770915133;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+a24y37v2jrnQg8n8+OtM4vlSQ0hwPalNlu13MWmNiw=;
        b=kPa28WwwCigOMEQzLSTtWWzhcowgyPwnj2z+zjLl93+rcGAzXQTviCTSulZmhfip/x
         FKZOHUI2QhU9NxQp6gT1Dou/azrM/+4EJzVZEkVUZh38Hf3CVV06AQCld6GAg5jc31Hs
         uUX0v37uP9mrrnwmMq25QsfKJ91QYMaTfmefELI6br3E7/w6RxDRdjcQne0HKz178ohQ
         FTbqviDcGGVD/qrfrYkz4nqYucvkSSeqxuix70gfnJapeOnBgT+DnKD3aDGbySXCPv78
         bKBxrqX4sGjXGoaFiiDAZ+ElNOZXpoVid9FwvnxZOG0VHsOxVo51WKkuKI2xJFxdF+KC
         Ek9A==
X-Forwarded-Encrypted: i=1; AJvYcCUDHLEiH0+u5qilLKUsi1+N5IjjeaTc7NM6TOPSlB9SBYVJUSgi8yPHEPlI61lf/DXXutpuujVVFp0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8uDG4U/rF6o1dGgcgtQDjeDKVgi+kiTRapEc/58POvtK1MYxl
	6VfMz52iolaSLNSKu630hGegMfMAm4KZhoDcxNA+CZ/1tueqdEM2UFYbVwcKXaBF9A==
X-Gm-Gg: AZuq6aJq4aeRjqKNTtNitwG5UFUcDa7h9KDGzKOxpIulHj7NWss8rHPqnYtgBbQO7ZL
	6FuDbJys/iPpRExkoKprBIPO3eHy0nDWOHjd6lYdxewsGIIf18aRZHjoLAqNVXHx6qlvlmZgHgI
	KS86tvR4t0en965kttHmkVkWOE31qjHFjM7s1e6ooGoVR55sctCbx++XW3DYkJkE8xOP0Om2/IW
	QPxCtBSRVtSa+iljisQmvm+U3/MNQ8pO9H/0UYaCNNMHMCDOzkCrtTCNEZqoUjj9UCNESbgAuRU
	j+yNZflNEovwGL56zuddJTAZuxot5aUeHm4kyLy8ep9KoD68b7Pw5nUdPYvaGHfDNHDYHFnq1iy
	nyKowTTX2ZFgWTnov2tNmbsAZAWUdr0hSr5cZtlFQUcRHRYHfIi7AvkPK/kU+03JhF4DnGsbpyp
	NNVM9aMAWXF2CDf6EBkSKLmjQ0k9zGD9ZuD+FPGutd5og08Jdlp3fVgP/20c7aHPfSSaxVXEstK
	HU=
X-Received: by 2002:a5d:5f45:0:b0:435:b0e7:ea1 with SMTP id ffacd0b85a97d-43617e400f6mr11751317f8f.19.1770310332620;
        Thu, 05 Feb 2026 08:52:12 -0800 (PST)
Message-ID: <4632759d-562a-4038-a78c-85e9ad0d2d6c@suse.com>
Date: Thu, 5 Feb 2026 17:52:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <7bf2ee2a-177f-4d7b-9dde-ee43bc4311b8@suse.com>
 <2B5080FA-A0F3-491C-954C-A458C6CA2E93@arm.com>
 <a3cfd04a-c32d-412c-b352-b4a1e65cac52@suse.com>
 <6AED68E8-CCBE-46AB-AFF0-9C87AAB770C3@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6AED68E8-CCBE-46AB-AFF0-9C87AAB770C3@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 16:58, Bertrand Marquis wrote:
>> On 5 Feb 2026, at 16:43, Jan Beulich <jbeulich@suse.com> wrote:
>> On 05.02.2026 16:30, Bertrand Marquis wrote:
>>>> On 5 Feb 2026, at 13:29, Jan Beulich <jbeulich@suse.com> wrote:
>>>> On 05.02.2026 12:33, Bertrand Marquis wrote:
>>>>> --- /dev/null
>>>>> +++ b/config/Darwin.mk
>>>>> @@ -0,0 +1,6 @@
>>>>> +# Use GNU tool definitions; the macOS workflow relies on Homebrew GNU tools.
>>>>> +# See docs/misc/build-on-macos.md for required tools and setup.
>>>>> +include $(XEN_ROOT)/config/StdGNU.mk
>>>>
>>>> Given Roger's consideration towards possibly using a more MacOS-native
>>>> build arrangement as an alternative, I'm actually not quite sure this should
>>>> then be the default mode here. Roger, what are your thoughts?
>>>
>>> Even with Mac OS sed and make working, something is still needed here to 
>>> compile on Mac OS.
>>>
>>> What would you suggest the default mode should be here ? Mac OS is not GNU
>>> but everything used correspond to what is defined by StdGNU.mk.
>>>
>>> I am only forcing cross compilation here to prevent using the host toolchain.
>>
>> That part is okay with me.
>>
>>> What do you think i should put there instead ?
>>
>> Using StdGNU.mk may still be okay, as long as the comment properly represents
>> the overall situation.
> 
> Agree.
> 
> What do you think of the following:
> 
> Use GNU tool definitions as the tools we are using are either GNU compatible
> or we only use features which are supported on Mac OS.

Sounds good.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 16:53:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 16:53:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222258.1530253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2c8-0000y9-4T; Thu, 05 Feb 2026 16:53:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222258.1530253; Thu, 05 Feb 2026 16: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 1vo2c8-0000y1-1d; Thu, 05 Feb 2026 16:53:56 +0000
Received: by outflank-mailman (input) for mailman id 1222258;
 Thu, 05 Feb 2026 16: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=DyEx=AJ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vo2c6-0000xr-D3
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 16:53:54 +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 40abb575-02b3-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 17:53:53 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-658034ce0e3so1953277a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 08:53:53 -0800 (PST)
Received: from [10.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-65949ed6b7esm2282020a12.11.2026.02.05.08.53.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 08:53:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 40abb575-02b3-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770310433; x=1770915233; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aDW2its2ag7sQlrKqMebqKmR/ovlHMxA0hy54j4hfaI=;
        b=BixUkDskfq2ovToKnlreKqoXcGEyOEebLPOcQ17DjZvKcLXeDG9uyL7tmuCHdG4fbO
         5Zs9nMktybjHGK/gynq8It+kV35/Mv/3R/4lTv1bdw4IYKSzwnm8LSEt/azaaZJ4gYKC
         xcBoE0TNo+xnAsendFYg7JQsXAtBBnFWh63Aid5ha3fGsUovdrSL5CUY+qICInjkV67s
         8wnOJmn32ExvW9XibC5RPq5nGKu6kAPxDeYsYIF3xgYtMv278fS8Ck/7ivRgHYbl8021
         30aKXqSzfjRmVbzfPpn4GGVpAidww3Mb8EZEoEy4BPkuwxw+gGKzc3J3kC/NWEOONjsh
         H2UQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770310433; x=1770915233;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aDW2its2ag7sQlrKqMebqKmR/ovlHMxA0hy54j4hfaI=;
        b=oo9bKZQkck4xjlsOM2Vfte3EzPp4owWwFu8jDP0bDeLUYa9xGwcwojcHFKtmTEefMC
         yP1uiY0NsGXq1qUB119rXoVyoHHxpTRPFU8/Otbv65owaDfNaYLhXtmYc+juESXdjial
         AiRsI9shP6loIq3tga7REeZnec8csK9kpiMClggr86F9qBerk+Kfr+TX05u3wTDiW8Ik
         gIRReAmU63fMhg6ZD3lPShkAZkuhxGmcq1s2WSTsvyWwKl3SbYjMEcPSU9p6cJsa6l9U
         JMNVwd/FZosbibj21SEvUas8KRocgFTUbaitJkjr96zLEKz/zl9StunO4n+kYKfY+BZ7
         VO0A==
X-Forwarded-Encrypted: i=1; AJvYcCW1ZRljZ46lVUnQ/ecd8o7TLCiglvAK5L1ojyZpzE6T220EhU4KgdCvSw1W2MQ7aknACsnpdQNF1MU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz8yiSsvpbSPvEbts0422Yu/PVt9hakwDoS/CABIxbp+em6U1XX
	REeVHg/kWtzvFM/zbsiBU0uVteLWbFtoFYTmQq7WHuVZTK0c8kKEdXcBGUhLuHg6pw==
X-Gm-Gg: AZuq6aKIumUCJpvrzx4A6k3Y3Ml6LM/4+gHxGppJToDw2Yt1CWFDTdqM0oaiCIU0K1u
	zNOGdpmpRBtFCbxn81ZEWSNTgs7hLUcM+JtnFQ0h+THS6loGF2UHADIU0ipxlQleSVOW1ZDJVJQ
	+F6hTmDgv1h82T/pmnXj2f03RpyOUFCwzDBJ8nq1FBqWAx8eLrMZB7Q2BtqubhiSisHCPL2IVwo
	REmHQpX8d1prnagucAFAin4dszZKJKv7ulo+f6IWLuKg8/AO5WKlbNyOHhl9l10Fv5F4sSpdeex
	YTBbii30hKr6vCQZnO6vrVv09KzvYFU4hhqMDswBUPKMenGSgj4QQ1F1gTo+BJgGx1WlBgv+eAZ
	zjhJr2QAyaaeGxSpfPVwW9BGnttN42rLCOMUlCn1IPL0MdAWMGwqtuXRcwZ/HLr6vA0pI2blTwe
	Bz2BulDI1kXSb87XxPj04C6GpCxCAnPFQfLsgrqyP1NU7vqMpIHAOX98GHvYdA/+3aeZ4QRkvEh
	sA=
X-Received: by 2002:a05:6402:50cf:b0:659:3671:137 with SMTP id 4fb4d7f45d1cf-659499b5160mr3925262a12.1.1770310432761;
        Thu, 05 Feb 2026 08:53:52 -0800 (PST)
Message-ID: <dc87ce96-a54f-4b2e-93df-21240d6372b4@suse.com>
Date: Thu, 5 Feb 2026 17:53:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 16/16] xen/riscv: implement sync_vcpu_execstate()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <eb254f5a49d01712f9b3745e420dd37a4a9ba0bc.1769099885.git.oleksii.kurochko@gmail.com>
 <316accc5-2e6b-4571-98a7-5776a47a4ad7@suse.com>
 <135afbb9-8863-4a9c-b012-832575f04edb@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: <135afbb9-8863-4a9c-b012-832575f04edb@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 17:51, Oleksii Kurochko wrote:
> 
> On 2/4/26 11:49 AM, Jan Beulich wrote:
>> On 22.01.2026 17:47, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/domain.c
>>> +++ b/xen/arch/riscv/domain.c
>>> @@ -259,3 +259,21 @@ void sync_local_execstate(void)
>>>   {
>>>       /* Nothing to do -- no lazy switching */
>>>   }
>>> +
>>> +void sync_vcpu_execstate(struct vcpu *v)
>>> +{
>>> +    /*
>>> +     * We don't support lazy switching.
>>> +     *
>>> +     * However the context may have been saved from a remote pCPU so we
>>> +     * need a barrier to ensure it is observed before continuing.
>>> +     *
>>> +     * Per vcpu_context_saved(), the context can be observed when
>>> +     * v->is_running is false (the caller should check it before calling
>>> +     * this function).
>>> +     *
>>> +     * Note this is a full barrier to also prevent update of the context
>>> +     * to happen before it was observed.
>>> +     */
>>> +    smp_mb();
>>> +}
>> Where's the counterpart of this barrier (going to be)?
> 
> As it is mentioned in the comment it is invcpu_context_saved(). ~ Oleksii

You may have seen the Arm side changes to this, as I did Cc you. From that
I think you should understand the background of the question.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 17:07:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 17:07:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222271.1530265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2pB-0002jo-8L; Thu, 05 Feb 2026 17:07:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222271.1530265; Thu, 05 Feb 2026 17: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 1vo2pB-0002jh-4M; Thu, 05 Feb 2026 17:07:25 +0000
Received: by outflank-mailman (input) for mailman id 1222271;
 Thu, 05 Feb 2026 17:07: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=aqXU=AJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vo2p9-0002jb-G7
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 17:07:23 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ca27532-02b5-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 18:07:13 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB5981.namprd03.prod.outlook.com (2603:10b6:5:388::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Thu, 5 Feb
 2026 17:07:02 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 17:07: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: 1ca27532-02b5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=unDFw0e1gKno2sC/nGqDTVEP4RYSzF7ofLaIUqdgb3ZJH5hDGE0n6wTCzgYoa3vTnmSAHO3Q6WwYDpYRB3s3E+D5m3ltLt3jVbnyQBonTyZkeK/Zel2MIXKDcE/mfqcSetx/UrkS5uzgXM66Etm5vbYirmYxF9owMgsTWcsQyHOTRBVuTov3GpoGRnzNSfUoiFBq2bQIGhaOMtME1F6koWhmp1QJR/MVnncuDXFxu8xJ58C9QGavmsYIe3N0Mo73DKPPt1++3vDUb3nu6P4mcOEPgxUsLq0TDBTsey1+spB0s++B3NW0emZOPNkKKFF37pYB2Tp0McN8l44/zfd9JQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rFe9E+J28HPWXB1sL4ayUNH0zJUfEmo73nL+XIVOAaU=;
 b=jYQnhJaNlLxpyhhmNt/xMuZMS8lUgc+BVLso1RbGp/qMJqlUzA/dN3ZQgJnGtJerPz7W0pb6tGPBoypxPZHOahiysRtpYLfWtDxWnDynQoKT7BSeinboiSX9NVz80gixPjau/m4mxXlg0VgD4nsPSG/3sW9r8F1+ZwoNAjTTzUPPaueJNDgieq5TDuEUUpNimgMWOhdWW+cnUUFKdn3t/72cj34UX0cU3/2E54b7HzRAzFLF+foer2Too0vu65fHRD23u0lNUp+a3w0Yx94g9RkL6zRee3k8ty1XAqUjzRnwuDMb4pIMQ5RGl11TJKjCFIWomO9AfW5VTnMzv0Xakg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rFe9E+J28HPWXB1sL4ayUNH0zJUfEmo73nL+XIVOAaU=;
 b=TxRBcZssxPocN5LKxr7HnA24Eqv2i1recLttx54v/NxaQtpTVbCjodMSVq3dbRGxk2QsBJPwIpe30IKWTENK1JkSTvjKRC8QTnnDaZ4KBqqEPr8ED52Igs6T54gs4U8vkO5tW9hudgN+ENk9EYlOkVfvMM0KYoLC3l4pE7+EngM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Feb 2026 18:07:00 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <bertrand.marquis@arm.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] xen: Add macOS hypervisor build configuration
Message-ID: <aYTONBslOYwyrFqM@Mac.lan>
References: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
X-ClientProxiedBy: MA2P292CA0005.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:1::8)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM4PR03MB5981:EE_
X-MS-Office365-Filtering-Correlation-Id: bda05559-9ee6-4b64-3437-08de64d8fb4a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|376014|1800799024|7053199007|7142099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d3lwbkhOeHVSTUJ6TXA0U2ZJenNEYXdVekNyMnZTOXRFVUp2aDQ4c0VyZmZv?=
 =?utf-8?B?REt1eEhLVjZpaHpyTDdEUG5sWG5Kbk8xRlR4ZTlUR0tnVzhiZVdYdnhVM2Yv?=
 =?utf-8?B?R3VEMmxZM3FBOFg5M1ZnazV5RnBuVmw2SWVydGhMWkpqajJEL05OUUlwNFVy?=
 =?utf-8?B?akhJdVBnT2p1SkJzRVVuM1kxYytwOWs4Qnd0VVB3aXNZa2lLdFUxb0tCQXlG?=
 =?utf-8?B?MnVtc2hyOWVVZG1PTWlpNUFFbUpUVlROa0JrdXRiL3dVZ0UwUGwwdjZzdmRW?=
 =?utf-8?B?UEtCbEQvbk9XYUl5c1orUmhETU1CT0xTUW1FMHhGQTJRRFh6cUdNTWF5Tlh1?=
 =?utf-8?B?SVNIaytab1lDUjBRQThJQzlrdmNVZG5zMUFYMHlrZjkyZ013MVo0bjNkNlp5?=
 =?utf-8?B?ZkhhaVVOdFhNS3pYTzNTNkV1NEJZSTVGNWZ0ZkJkWUdXbnJxS1VMeUlDZ2lN?=
 =?utf-8?B?ekRLNkpIbTJmQ05ORUVBcDg0U21TN0FlN05yVy9UNVlRcGlLbFVIb3NUbGVU?=
 =?utf-8?B?TjVCV0hlUktmREdmSUpjQjVZdjhEMWtoVUE2TGJuWi9OdlRFQktTQ1FOU0FM?=
 =?utf-8?B?NEsrdnpHSVduWElFMU1GcmpqL2gzQ2dtTjNSNithQ3ZOTUlBSnhsa0xoNVBI?=
 =?utf-8?B?TVJ5T0N0bm12V042UnpkSjVSdGx2QlpmaE1FcGRiejA2NDRHT3IvTXdmbUVZ?=
 =?utf-8?B?ZDkwOTFBTWpXdWtuYWwxckZLa3VvSHBQcFF2WnpyQmd6UE0vV3VCQjFwcjJ3?=
 =?utf-8?B?emc3WWt3OVJqOXRiODZXT2lqUkp3ZDc0MC9qUitBRHlqVkhXQm8yQVZrSnVU?=
 =?utf-8?B?SzVpMW5TVnA3RXZpS3pqWU96QnJCdWZReVJsT3FWdjluMUlQT015ZTEzNUdC?=
 =?utf-8?B?cUhGVWtBL3daS2RxVGJHMGRLSytPRHZwSFBEZi9LazZMTWdZa1FucGZRV0JP?=
 =?utf-8?B?c3M5OFJMNHRnQTNvTTlhN2dINlluVU1JLzlhNXJpeElSL2pkc0dMaWFHYlFW?=
 =?utf-8?B?QW1BUThUN1NucGx3T1FWcWVxWnFQdm5UcmhybkczSzJEZ0xWUW1TMVVRdFA5?=
 =?utf-8?B?blBDMmdicWdVR01vWC9KUTdkWlhDOFowTElOZVRhTER5eWNvVWxLS2hwRXhn?=
 =?utf-8?B?V0pGT0Q1aVBFeTM0RWZaejR1VUxuWFVmMHZIU2xLa2RTUllFaUxLbjZ1akh6?=
 =?utf-8?B?a1I5ekIvenRkQW0rdEhudldoUVIvK25meXNPNUZ5WFkrUUpoMzJINzJ2c20w?=
 =?utf-8?B?b1psUTcrSkhOUGMvZ3lwYmxkUStjK3dVQWoxbEk0Qy94TG5aSU9tRkxGTHEy?=
 =?utf-8?B?T3JmcGNvU2ttMkVkdUE1V3lnZWIxcmxqUHA2M1c0eGU4eG5rVkFpNStGbDJF?=
 =?utf-8?B?bXMreHVWRjF2YVRCek5zYWQ0U043ZDEvRktWaHpwRldScGF5REtNL1o5aE9Z?=
 =?utf-8?B?V094WHF1dXRWM296WFVhdWgxVm1EeDR3U216bHpkUlVlamJDZlFyaFh0RkZZ?=
 =?utf-8?B?dllmNXA3VFg1REZSeGRqYUNaTys4RHNBTDRPYXdsWE9rNXk3L3hEby9xOThC?=
 =?utf-8?B?bkE1N05ORUh3Zzd0Y2FpOFpDM0ZFMHF4YzRnVllOMStBZi8vYVhuTWRjVU1z?=
 =?utf-8?B?ZjBLZUZxeU5LYm1vQUtieEV2Yk1pMFptNkhxdDMxdExCTS9SbzZjRDYzWHM3?=
 =?utf-8?B?RjU4NFZlRnlETWdHUmpwMWp3UWpBQUg3MUNDNmIyd21iRmFKRENWNXVFRlVt?=
 =?utf-8?B?ZmlTVkFGb0dIOXJvV2RxcjRXbEp4UTE5L2tqdXlOaDJ3am83dVVucnJ1cHZj?=
 =?utf-8?B?MGEzblUzN1VScTJRUHVQWjdOdWVCdjZocUhuNDEwU2U0NTZiTWdsRG1qTzFj?=
 =?utf-8?B?dlIvSEJ5R1pTLytJMUVmeWMwcktLciszWTNESENpVS9Hc2tZU3BvWnliaFZ1?=
 =?utf-8?B?cFRJRW9HT3FqVW1ra05qUFlEMWwrQ0JxS2I5d1pubU0zZm0yU0Q3U2ZxR3pV?=
 =?utf-8?B?V2FMRFU4UW1XeHBJeGJZVkpuUHJsbHVtZFRDM3pYQ1hYK3B5aU9ablpZb0Ns?=
 =?utf-8?B?UUlJK0FBbDNjdnJubnFGQWp5QVpxaTdIMU1XdFY4VDYzSTd1K3ZpS1NDQmtV?=
 =?utf-8?Q?9n48=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007)(7142099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TFc2RG9iWktQNjZsS3UxSE1tQUV5MjZrOXhpcGdYc3NISEI1d0RISk90eDBG?=
 =?utf-8?B?NjZ4NEhsM0ltUzhoQ1NnSDc5d1NUTjlId2dFbW5zNVAvRHU5bGNub3h5WkNu?=
 =?utf-8?B?WHgvOEV5NSs5elh5TUNEcE5RYk85MHRBcU1DV09yTGVwWE9Zb1BhdXdYSllk?=
 =?utf-8?B?c0tIVDBiWFVxSGM2eGEwSWNTMk5DelhrUy9GSGNCY3VTZ3JrNWJCY3U0VjJq?=
 =?utf-8?B?TzdvRHZLYkdzcXkwcE1QZ1RObXhabmxnWnp1azRRdm5aaVUzdWJDWHMvNXMx?=
 =?utf-8?B?dHFrTFhoTDl2dnJSUWFMQkh0dlZSNkhGRlhlenphTk05bWlpeGpBMnN1c01t?=
 =?utf-8?B?Z09NQjNHNk9LSXNxQXNjbjZ0dTc0bU52MGVaTGdDNUYvTElJMWR2cVI2aUE0?=
 =?utf-8?B?aStrNjdlbW9PMjlJeUFEbkR5Z3V0V2lSTXpIR3BoeHFNNzFhcmVTQnhqb0Ri?=
 =?utf-8?B?dW9pVS9sTmg5bWdjZnRiSEpQOXFhWCsyWm53NVJUOVYybXhCa3UveFU4ZHRH?=
 =?utf-8?B?d29jOXBqTkNXWW1CbE9oT2V1Y3B2cCtWOTVObFJsVjV4M3RYOTVoTnJROUVa?=
 =?utf-8?B?enhQMnlpWXlNQWRISFZDRDI3U2kxa2VCSE5TaWJORzd0S0N0KzkxbW52SHRs?=
 =?utf-8?B?RUd6RDZxeWY5L2l6eHVzdmxpQm5YQnhXTkU1SXlFTzlEMmFYMFJyNk1VVU0w?=
 =?utf-8?B?a09NSThJY3luREwzamNpdm5sNU9yMmhIZVY2UVdxYkZzVEp5N2VZY0ZMcTRK?=
 =?utf-8?B?ZEUyajhYcjJrOUlRMVUzSGpXcEFzemI0YTQ4RTduU3dUdUdiUU1DZlBFaHFx?=
 =?utf-8?B?N29HTzF0WlBCMnh3S1RNMDU3RDEwQlRRRnZkd2ZlUWJNeThWZmlmSTcxbENp?=
 =?utf-8?B?QU1aWm80TmVVSm8yV1ZpaE5ieFlzRDFBS29WUnEvZFZ1RTJRVlNoUGEyWkFk?=
 =?utf-8?B?WW9WeWVMNUJ2VHZobUh0OHN6STFHRFFHYTBJSE80UHpMQVlIRERXUzJFNElv?=
 =?utf-8?B?U0pPVnBFdWFFdlFiMkdUSTRzMms3NUt6eWc3NEp2S2dsZGhGcUsvVWdBdjBE?=
 =?utf-8?B?Z1VVWmx4ZmEzY2U1WkhjZlhKcXZBVEZ0S2ZHQkg0ZzNpczdnSWJxQ2JRaTcr?=
 =?utf-8?B?dEZzby9naU41aXFHVWlnV1F2NndFRXp6czlVeEhKcjlFUks3dE53dHd0R0My?=
 =?utf-8?B?clZaeXJGcEhNVmJMbGlpV1ZnZm1LSW1XZEZqU3dmWU8yTUh2LzJWZGdFbXBF?=
 =?utf-8?B?WlUyVll0eE9wall0YXJXYjg3NU5kMUR0eE92dWRmVnl1Z0pPYm1BbUFzc2du?=
 =?utf-8?B?MUNobG5tdkpLMmFiOUJwUHkyOVZxOHllQ2syaWpDMWs5T05vQlp4TTErT29u?=
 =?utf-8?B?ZUxqUDlHZFdpd1RrYi9hLzFvUE9aR2NzbEpCRUxXeGx6REdZclJYYzZ2MVNx?=
 =?utf-8?B?dDVKMzlBVWYxMWtsQmlGTFFtNnhQLzUzVVM1b05mbGRKOUptZVFJem9NT2hj?=
 =?utf-8?B?azhhM00rRXB1eHVDamVZS2pzT01QZnAvRVdQNjJyZUNtL2QvNkhGL2hnZDlC?=
 =?utf-8?B?dVh2NG1VaVJ4Y01xaXZkQkdRVEdPMzZ5THVVMFFTRHRZWWdOczFsWVlGSlAx?=
 =?utf-8?B?anVsV1QyRjVrMWhpT2NlSFFWSVpuM25kMk9PZnZteEVGaUNjelVpMmdKWktl?=
 =?utf-8?B?MmFiRDhlbEcxSGdFNC81MzdlWnRuQUh0WUxra2l4cDBrMGpRZjRxb25pRHhX?=
 =?utf-8?B?WHlwSkUyaFBYb1Q5VGZndUd3RStkRFJnVGh4WmsybGM3dSsrTFpNZ3M5M1Q3?=
 =?utf-8?B?S1NPeFc0QmxvdTljUmQ3cUxSVkVHZTNBUnVRRHZvM2FON3RwOTgyRTl1Tlpp?=
 =?utf-8?B?alVBcWdzRjQwK1RuWjhrMDNXKy9RM1pYNXpCZGVmY0hmek0rdGxtVlFsbVZl?=
 =?utf-8?B?OEZTcHkxSERoZXF0Zko5QS9mazRkc1dEVUU4V245ZGtna21XZWdxZ2lhMk95?=
 =?utf-8?B?dmVwQzlHVnBqSm05Ni81eHFSS0tidEhKS0x6Q25rQkw2Y0NVZzl3WEU0K0Mw?=
 =?utf-8?B?OU1uWis0bkFFUkI3WjJIVzVIVlJlZlpLRGl1RnhNL3YzVjN2QU5PZVpmd2l3?=
 =?utf-8?B?aUNZZDR1MjhoK0JDZVY5Z1djV1JWWE1EemFvSWkraGhHZDFBN0tJaURsRHA2?=
 =?utf-8?B?RWJSMjVhY2V6SlhhS1RSQ04wWnRFbWIyNWphMHpyK3BMaUxXVHNyaWU5Zk52?=
 =?utf-8?B?TVM4dm9jdHY5ZXQ0OFEySzlvSmtST1Y0SThyT0JPKzQ1Q1MzQ3dWRVBDV05r?=
 =?utf-8?B?RFpwZEZ2dzh5L3NLSGF6MzRHbjd1dGcwVm1Wb29MRXFuVjMvOXl2dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bda05559-9ee6-4b64-3437-08de64d8fb4a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 17:07:02.6473
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3idosuqGmsq2ZZ7lHMDE/j0QZ+N5qeVB+q+Wdm3b9MmVN3ISYJIqMcScsE8koudgf1WfaBWLBBn1hcs7sKD1gA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB5981

On Thu, Feb 05, 2026 at 12:33:54PM +0100, Bertrand Marquis wrote:
> Xen does not currently document how to build the hypervisor on macOS, and
> there is no Darwin configuration for selecting a Homebrew-based GNU
> toolchain. Native builds are not supported; the hypervisor must be
> cross-built with a GNU toolchain and GNU make/sed.
> 
> Add a minimal Darwin.mk which selects the GNU tool definitions used by
> the macOS workflow and point to the build guide for required tools and
> setup. Document the Homebrew cross toolchain and GNU tools needed to
> build the hypervisor on macOS.
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  config/Darwin.mk            |  6 ++++
>  docs/misc/build-on-macos.md | 66 +++++++++++++++++++++++++++++++++++++
>  2 files changed, 72 insertions(+)
>  create mode 100644 config/Darwin.mk
>  create mode 100644 docs/misc/build-on-macos.md
> 
> diff --git a/config/Darwin.mk b/config/Darwin.mk
> new file mode 100644
> index 000000000000..a4e3efa81842
> --- /dev/null
> +++ b/config/Darwin.mk
> @@ -0,0 +1,6 @@
> +# Use GNU tool definitions; the macOS workflow relies on Homebrew GNU tools.
> +# See docs/misc/build-on-macos.md for required tools and setup.
> +include $(XEN_ROOT)/config/StdGNU.mk
> +
> +# We are always cross compiling so fake COMPILE_ARCH
> +XEN_COMPILE_ARCH = Darwin
> diff --git a/docs/misc/build-on-macos.md b/docs/misc/build-on-macos.md
> new file mode 100644
> index 000000000000..6b56cd8eccab
> --- /dev/null
> +++ b/docs/misc/build-on-macos.md
> @@ -0,0 +1,66 @@
> +# Building Xen Hypervisor on macOS
> +
> +This guide explains how to cross-compile the Xen hypervisor (xen
> +subdirectory only) on macOS. This does **not** build the tools.

More on this below, I'm not sure I would call it a "cross-compile".
Only when doing so from a x86 silicon Mac?

> +## Prerequisites
> +
> +Install the following packages using Homebrew:
> +
> +```bash
> +# Cross-compilation toolchain for ARM64
> +brew install aarch64-elf-gcc
> +
> +# GNU tools (required for compatibility)
> +brew install make gnu-sed
> +```

Installing make / sed are not strictly needed.

> +
> +Homebrew installs under `/opt/homebrew` on Apple Silicon and `/usr/local` on
> +Intel Macs. Adjust paths below accordingly.
> +
> +### Verification
> +
> +Verify your installation:
> +
> +```bash
> +# Check cross compiler
> +aarch64-elf-gcc --version
> +
> +# Check GNU make (adjust prefix if needed)
> +/opt/homebrew/opt/make/libexec/gnubin/make --version
> +
> +# Check GNU sed (adjust prefix if needed)
> +/opt/homebrew/opt/gnu-sed/libexec/gnubin/sed --version
> +```

Checking for make / sed can be removed.

> +
> +## Building the Hypervisor
> +
> +Set up GNU tools in PATH and build:
> +
> +```bash
> +# Set up GNU tools in PATH (adjust prefix if needed)
> +export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/opt/make/libexec/gnubin:$PATH"

Do you really need the gnubin?  I think this was only for sed / make,
which is not really needed.

> +
> +# Build Xen hypervisor only (in-tree)
> +cd xen/
> +make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc
> +
> +# Optional: out-of-tree build directory
> +# make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc O=$PWD/build-mac
> +```
> +
> +## Architecture Support
> +
> +Currently supported architectures:
> +
> +- **ARM64** (`arm64`) - Default, uses `aarch64-elf-gcc`

It could possibly also use the llvm package from homebrew, but I can
add later if I get some time to test.

> +
> +Other targets may work if the corresponding cross toolchain is installed,
> +but this guide has only been tested on ARM64.
> +
> +## Limitations
> +
> +- **Hypervisor only**: This only builds the Xen hypervisor, not the tools
> +- **Cross-compilation only**: Native builds are not supported

Probably a more philosophical question, but is it really a cross
compilation if I'm building an arm64 Xen on Apple arm64 silicon?

Sure, it might use a different toolchain from native, but it's still a
"native" build from an architectural perspective?

> +- **macOS-specific**: Instructions optimized for macOS with Homebrew
> +- **GNU tools required**: Native BSD tools are not compatible

That last item can be removed.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 17:10:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 17:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222282.1530275 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2rj-0003lx-MR; Thu, 05 Feb 2026 17:10:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222282.1530275; Thu, 05 Feb 2026 17:10: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 1vo2rj-0003lU-HU; Thu, 05 Feb 2026 17:10:03 +0000
Received: by outflank-mailman (input) for mailman id 1222282;
 Thu, 05 Feb 2026 17:10: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=eiMP=AJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vo2rh-0003It-Ge
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 17:10:01 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7e0c27d5-02b5-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 18:09:56 +0100 (CET)
Received: from BLAPR03CA0146.namprd03.prod.outlook.com (2603:10b6:208:32e::31)
 by CH8PR12MB9741.namprd12.prod.outlook.com (2603:10b6:610:27a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Thu, 5 Feb
 2026 17:09:50 +0000
Received: from BN3PEPF0000B372.namprd21.prod.outlook.com
 (2603:10b6:208:32e:cafe::ad) by BLAPR03CA0146.outlook.office365.com
 (2603:10b6:208:32e::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9542.16 via Frontend Transport; Thu,
 5 Feb 2026 17:09:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B372.mail.protection.outlook.com (10.167.243.169) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.0 via Frontend Transport; Thu, 5 Feb 2026 17:09:49 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 11:09:47 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e0c27d5-02b5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rEWs45gzZRNRlwD0QyJpaUTOMobc4HSmq/MW04+YIjtx6eYlrGJQiPrUx+arc8P0b41hmfsNkewvyWueU4249g7f3Md03F1GSXFGDYtL1ertKDkagwC3nS45fC/znpkott2c7CS9GTewwg8QktnB4d9lsQgEFiSKrbhryUrSojxsh1SygOZhk+VYY23WMZsFNAhJ/X25wL5OK3KjeqFx7UPiq+47vSw/kiImrWTakKF0AZU6j+z6Wv6W5b53DCgOsKtCpQ7PtSVAiEtoRUdC1NyWCBBfr3Q6Oma+dLZSeaj/xUkgBHb3OUBbUk8+xiAC3svLMIYdkCVGeuvWEYZxMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wav6Z2ioA7k2G+/mHojpKLayWyPe4WxqQKYqIs0jsWQ=;
 b=fOlbwhDoC+XApz5O702GIlEv4iKhwEh13rMcJz/zqSsDDIy/2Cz2UqTds0r072wz4TulMoXnfT71YODLiUNXwNu5CUfet3ZYzvkm/Mh/CusRVucz5+WOSGK9iYUDHEGfqP7n/Nrtfc8BXtjVQY0AI0PWRH4VsdFw8ibo1d/QimDwMFANx9qqt3/iSEZz4zt8+NzsGRdesyjDjyssXqQ+6ZzIZsWt9LvVt/zx698HX+LYHLxY5dCss1AoCnKkObhEoq9Lrs0eTcYiO5xt+OVWSQ0QjzoIYbxvCPVBOBF7bPTnF7JJVrHGvITuVQfYXw23i+JY7Tn6bFaUFVl919cvGw==
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=wav6Z2ioA7k2G+/mHojpKLayWyPe4WxqQKYqIs0jsWQ=;
 b=5e+94Ak9RAIs61eCw4JSkHBxH9G8/kcNRixORQ9qwPa48C6LtVHTCBmHOUEJE9Ejl1iEPaFBiEudief7/gOqwfvlhixXwuBOaC47crJCjCE6slF7UhuKMzhPV96PivELhf3kecNfvK96a0U8iprtQ59RcgHhecNCg21nkZiPoV4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v2 0/4] x86: Drop cross-vendor support
Date: Thu, 5 Feb 2026 18:09:18 +0100
Message-ID: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B372:EE_|CH8PR12MB9741:EE_
X-MS-Office365-Filtering-Correlation-Id: b9fff9e1-8052-415d-9835-08de64d95ed4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?CaP5o+v6r9T+XhnMqPmOCuvIm7ocaqd97CSwsdQOoNjvu2qyabiKnWWCnujV?=
 =?us-ascii?Q?zwOjiPSwP40bv5MW6IBwaJZNycgjLqdOXKha/Aqd8SKpPkqeC5/myVjXAkzz?=
 =?us-ascii?Q?WXPruXizih5GVGQR7YaYf7HzppspNNh6YAgk4H1kNgOadmBP30dGqXcPNgZK?=
 =?us-ascii?Q?epYldGq4P0Vr3X4Enu7Egi1USQqz5FIYJ0aXfTdLJShpWtJX5ijChltCer8F?=
 =?us-ascii?Q?3O2EwJ2fMlxNpz3kkfkg4rejUcLcHqXpkwRUWTjx4qr3iClrPuIzqWIvax+A?=
 =?us-ascii?Q?kFS8H9fSY9rqLaj6mryUuh819DJQHDsZMiDzx7p+8P+UJGCkDzfwNuGFyDYK?=
 =?us-ascii?Q?7+bIP4Hfxky1laiMO+CSILGx6ZGk9r0a9jDYuE2UgOLNUHVLsbFep5lL81KX?=
 =?us-ascii?Q?5BSNF1MHwOJ7tTzdC8kD3jIxXQI0PH5oaunhZcZICRF4eSAdL+8K4gSOYLPP?=
 =?us-ascii?Q?lfIu6F5BzgqKP6PC1ldJ8MZOThts43LorcuCOkEQSnjHLgTrb8y4nDni1blD?=
 =?us-ascii?Q?YzfnRHMLy/PKUHKM80qATnK1iizgd41nhdgVlcbYgM3MZk/4FAK9LTuSvHzM?=
 =?us-ascii?Q?ym0XEwU3BXwayy4CgVcMKog3OqexJkySbq7grCGRk95lAwqREK5wWOpgbazs?=
 =?us-ascii?Q?C7GCYb+hCIeKQZCh/Kwn8gc46xc0CNEPNGZtoFF+3J2qcVXUoSI1sQ3pRIPJ?=
 =?us-ascii?Q?glO0xfQznECa2ZiFd1lbQQmLQDXKLWKtQwxQZj9WEw1LencqRN+Og1ONHRAL?=
 =?us-ascii?Q?QyQOcEW2CYjrTd3YeIvaV7ZkdS0AJDCtUTDZvXYvbrYesSABpFQcHXoUzK9s?=
 =?us-ascii?Q?0c3kwwQvDswFzv8z1C8+jWUMD77h49Xo92xd1D0ees2PuYVBA3+iCTteXQkp?=
 =?us-ascii?Q?AD7zL/V9CoGq581g81w555KvQNOYBv1xs0di99virYRQ0wQtyAO3/yoDFKjg?=
 =?us-ascii?Q?k938PV6iRtOVZoMhhdZXpRXDzJIKDRB/NQXGdw2YFsrDgi9v3veT3boo0jRk?=
 =?us-ascii?Q?mjQ7NupnDMLMHrASS4CWXaWJmdzIBV6o0bIVz3qGpk5NvRqnah9uas8044sV?=
 =?us-ascii?Q?XUTvIG+AIA89U8X9Y2GepwXUJZl5Mcr2s/JvAhiV9s6BRLGfG4NWTT6rt0sD?=
 =?us-ascii?Q?JBDCXEY/aXWDtL3X/2h0qL2skDtgsGRqHOGBAB3ryJMmoK74zeH9X7c5NbDP?=
 =?us-ascii?Q?W2bDWaQoafXltdd2LbBZfvtnbIFrYa0Qvie7NUVNhio8SMuEopj1W6f7IOMv?=
 =?us-ascii?Q?FcRAI76U+vDNJq2pNdc9+Te7OExg5O0EfBVya6PI6Vz9sy50zoty0eJQQny9?=
 =?us-ascii?Q?KocgsZUA11RgpZztgr/S0cqbndiQbu94d5d5qaRaHy8R3EVCn38rqWhoH1Hx?=
 =?us-ascii?Q?IUBO9MNBT3QF9YvWenkLjjz146thQmlg8YeHh9X8iVrUJHqCVDrn2e0tjwRg?=
 =?us-ascii?Q?PrYbA/xdG9qxbjnyaqw2GAb5HsABXWKNUnVu+iIkPRZ4e4mwpyyQ0yIQ8mIh?=
 =?us-ascii?Q?USr4hvBiEMU/Fc9+p80MQ5xoRtlbudTlyQq5qQwV/qbrNDu9U0vKCrbqiKYi?=
 =?us-ascii?Q?qTScQLBrNFBbm6vtWlNQZVNXMrWPVPLjOJleCU6T26VhENOF4dbRe8fWK75M?=
 =?us-ascii?Q?fieaVW+3ByIteaUQO/GNAciBp7UaJFXgJnmLTUCifusY?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	dO28t8M9V8E1CYc69p+Y+HlmOe+WF+tDfgPWPStXid/h9hRvDOgXE6GpGyzbo4TYKpeiEZdE1pkhvYFSllRKcluy1Lqgrb4H7QFKiUSJB2kbJX2XpH/h9BIj4Ga45GIgqG1/KKIp0YeB4l5nYvOafajMnIlemLN09JBJVAjHbcAQtS79Rei+cUY3SdDs1jk5i/dVs+edXOxliWeR2tfs3Ba7hc+tLqE1cf0CdZiD8pSwtgds88aGcYXDnp/SICbQ6ulGf3mqlRLPDx6n/agb5h34hSvxJyZhHieVGTnGYfJsRpyDdG9E/HGZVbaYNm6KwVqVSN7zyjVOV/PA3Czy5eCaD+2A8BEU1idLB6F8NOW7G4YIrEM4gvXh7fKOIdNOCXpRqs5m3H4IC3TEHwTwkuc03IO7P6OWvU8WMPBOrDJZbfnaKGUSZtTvDTBIihHN
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 17:09:49.4431
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b9fff9e1-8052-415d-9835-08de64d95ed4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B372.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR12MB9741

Hi,

I got rid of the HVM_FEP condition on the #UD handler.

v1: https://lore.kernel.org/xen-devel/20260122164943.20691-1-alejandro.garciavallejo@amd.com/
pipeline: https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/2308391515

Original cover letter:

As discussed in a prior RFC (https://lore.kernel.org/xen-devel/dc68b9ce-38aa-4949-b3e7-a7c0a7ee9a25@citrix.com/)
this series drops cross-vendor support. It includes the policy check that
was there and adds this on top:

  * Eliminates #UD handler when HVM_FEP is disabled.
  * Removes the cross-vendor checks from MSR handlers.
  * Eliminate Intel-behaviour hacks for SYSENTER on AMD handlers and drop
    intercept for SYSENTER.

Open question unrelated to the series: Does it make sense to conditionalise the
MSR handlers for non intercepted MSRs on HVM_FEP?

Cheers,
Alejandro

Alejandro Vallejo (4):
  x86: Reject CPU policies with vendors other than the host's
  x86/hvm: Disable cross-vendor handling in #UD handler
  x86/hvm: Remove cross-vendor checks from MSR handlers.
  x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems

 CHANGELOG.md                             |  5 ++
 xen/arch/x86/hvm/hvm.c                   | 77 +++++++++---------------
 xen/arch/x86/hvm/svm/svm.c               | 45 ++++++--------
 xen/arch/x86/hvm/svm/vmcb.c              |  3 +
 xen/arch/x86/hvm/vmx/vmx.c               |  3 +-
 xen/arch/x86/include/asm/hvm/svm-types.h | 10 ---
 xen/arch/x86/msr.c                       |  8 +--
 xen/lib/x86/policy.c                     |  3 +-
 8 files changed, 64 insertions(+), 90 deletions(-)


base-commit: 3d11d55e19b749697ea7c3799c264b83f5a57a80
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 17:10:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 17:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222284.1530287 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2rk-0003yt-FV; Thu, 05 Feb 2026 17:10:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222284.1530287; Thu, 05 Feb 2026 17:10: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 1vo2rk-0003x2-8T; Thu, 05 Feb 2026 17:10:04 +0000
Received: by outflank-mailman (input) for mailman id 1222284;
 Thu, 05 Feb 2026 17:10: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=eiMP=AJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vo2rj-0003It-4o
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 17:10:03 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 80e8bfec-02b5-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 18:10:01 +0100 (CET)
Received: from BLAPR03CA0125.namprd03.prod.outlook.com (2603:10b6:208:32e::10)
 by CH2PR12MB4325.namprd12.prod.outlook.com (2603:10b6:610:a9::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Thu, 5 Feb
 2026 17:09:55 +0000
Received: from BN3PEPF0000B372.namprd21.prod.outlook.com
 (2603:10b6:208:32e:cafe::16) by BLAPR03CA0125.outlook.office365.com
 (2603:10b6:208:32e::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Thu,
 5 Feb 2026 17:09:42 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B372.mail.protection.outlook.com (10.167.243.169) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.0 via Frontend Transport; Thu, 5 Feb 2026 17:09:54 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 11:09:53 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 80e8bfec-02b5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JXgBWqyV+84jOfyo/IWJmSC8UNj9MDRpz6aOT/Ssecm82I+ejC/chcj/2borBmEw/+5jlRCCvUDQLoiBGun36Gu8HviLz1IQxphuvQpDJrEqQsRviXEWM4r1+uQ47OtM2iF/W9h46BTzgxdUBJQuYZcUikJ9OOwSDL1f5+MXH7N5tV8rVeFFQm3tf04B1lS6Y4B37bUAehONkXmh50TxD0tGyEs4TcuKw5j1w3OqYNUjIZ92uO6OeJI+8VO3IDL4hJAEBf03igN9EZNcKuwI7t7iifm4xYHsU1OFt8Vd2sdhYeR6FzYgOdqksCKWjaTd7cvie+28Ad5o13cKJ1thZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HcmMhNrUvdJLDtdj//oBMXNGmJweY+Izab2C0gA4R0Y=;
 b=TqQmm/cpDUC4sCr8TaSHt18y13spQqWA4sdTy5s67nzcZbMmZjJ+gRS33V2Ghk3g0Km3Ei7XAs41JRmS6P7xGgqbQcyVzqQxUxXFyJ/oUupiFN9E8PcsxFvbY4tsitqFb5H5gYCRmOrbZr8JQOZ+KIFxxm5zZmbHEaSfL1bz829cLcutI9sYcENHaTEUxteNukdmCiF2qZIlJaCp/bWtGmiP70cayWuqXX3didADsVJ4kJZPQn9JgNY5zAjdQ6Vv43Jif3oGCVUtCMBa0RTf+8dX1a5SkDkJcjEK/AvUuTebA2bC5hahJ8NXHrCbb7hh5XzcV2iPl6JXvtoxgcloUw==
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=HcmMhNrUvdJLDtdj//oBMXNGmJweY+Izab2C0gA4R0Y=;
 b=14eiHhnJl9pULr0BQ3Qfq5w3pO4LKCixlbNRkFIE8/yckARPwg/EwPXDb6Um0OX2Erbb5LhhBoRLZgnIdOkVhWQyHCXfOCTxUVFKW85/a8R0YUIMklVv+69ymvMMVJxM+F+ZxRgmURtwNGRTZckRoZ4tfHhCoDBExu50AzkpI0E=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v2 4/4] x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems
Date: Thu, 5 Feb 2026 18:09:22 +0100
Message-ID: <20260205170923.38425-5-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
References: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B372:EE_|CH2PR12MB4325:EE_
X-MS-Office365-Filtering-Correlation-Id: 444c8db9-69dd-4f62-60ef-08de64d96224
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?RhIvZhNZYjXfcfj5qm4+eMPXDhrzwS4slTdbiAAGdYKYrfOf7a5briSm3qdn?=
 =?us-ascii?Q?xcg/08FPb4OnCLHQHJwT8HLYra0uTZXliC58Z62d+WVvid24e3lw+ruCPtg+?=
 =?us-ascii?Q?VGwju1gERA8FKvCCUJPnycbJzOTbvG5aMfIO2x/Dzd5WNZ/dE2tZ8A9c4/kD?=
 =?us-ascii?Q?VQgazdYqeWH/g6+lSY7AJNO4MzWS1Zg9tV1btlZiYUi+Lz6VpV0Y0ZRBjC6P?=
 =?us-ascii?Q?1wHRMdA+n5OeIFvCcb+odJodQbUZjQbOK6K5DVe7XZ/Z3alMlKYRcpg7eELG?=
 =?us-ascii?Q?aaMqIWFRnYnKOpTd4TYXvZneJCmPBhhcs+VlBo5fpJp5mRLY6X4N4QKXFe+B?=
 =?us-ascii?Q?jb7Tqkvu7nBNJls3G8i2Q8PnySemKXsPuxvaX4qvZ2ni06LYx2IweIZY4qhV?=
 =?us-ascii?Q?Ni8owPmXHCEkZ3IHoEDhsSpcs/rFBc2OjQnb7/yl2yG7Vgy3BFdptPKys6mS?=
 =?us-ascii?Q?lSqpddR3GX1Dj2C1A8+3XFNmU9DcRRZuIFhrZ0w5IAezQrGgX6lDl6KyG1TV?=
 =?us-ascii?Q?dIVFtaSelP31A3K+jXFhyNru6sw409pIfT1TDnT0dZVnJTw2YRmm8Vmd1Qhw?=
 =?us-ascii?Q?GkHM9GGG8XO4T0SGTgnv1do0CwLtkjm0X1pd5BpTNlsxZEJ3Gt4/L/y2tBr3?=
 =?us-ascii?Q?KLPDQ+KVhSCq5sw72KcQiWqJnSO9eNdFlnVJb1AS5/EQO9LtSNT38n1KkEZs?=
 =?us-ascii?Q?e99BFSZJXIoJu1+AsSCGm/i2g8Dz/NzERXCLLdzs++pCEpx6gqT4xwQWgI72?=
 =?us-ascii?Q?iCUqTVAgseS404BrRj4ignxILHeDt3zqnWh1Tay/A64gg1Im41z4Cs5w1DqI?=
 =?us-ascii?Q?i+3bs71e06ezKmjaLcg4CArU9b19fBpfFWcqXRgmKKF24K3fq8pLSXwVS708?=
 =?us-ascii?Q?EVaU6B0K6zrEK8Zu+zFLTjpnUJcicKWd2rKUQoBIc4Tf0T7cYJjuWmS22fvo?=
 =?us-ascii?Q?SAISTQgh9F6JH4SLiuaHPM2Lr9zaaIOxml+doLqAeP1Esx1JnUW6X+/vQWIn?=
 =?us-ascii?Q?g2RqLuBcx0vS/JgSJXUWkstNBfbDYhbCGP+fcjL60LKo5VlsMFbzioC3niTQ?=
 =?us-ascii?Q?xiyyc74QsFdo/gJBQ+vbjRW8BLxuAnfEBRPyjaYzqkgG6CduRuC1CLPtKxhC?=
 =?us-ascii?Q?lPPjoKGV8hnfDvv8WdBDG9Q/6hiLN/+SLF4CI6sGkLB87EOZXRQwddZow4ul?=
 =?us-ascii?Q?awRO1lYqgmjYPTw+O/GELKXr2HklMbSZC7uV5JvpmiiDcLKZ363e8e3ZYFix?=
 =?us-ascii?Q?P3gO42ugcE+DZAfx6/1psExWGDc1P71oZfkGjXfQD37Wc+nxktzP4OC1hQ1k?=
 =?us-ascii?Q?PVkgA0lgjGegKz7pQlmRo2d95rjobgEyt6UqMb3upH/i2aRCAhApWJy3zEfB?=
 =?us-ascii?Q?N9D3FdBXJXGnoh8do/yTZXkLavzlIwYHOxrh9fNbw1THu9ElvxRLFtvZisoI?=
 =?us-ascii?Q?SZ0amg8MfgUvek0heWdqEYYHLTIeckja+sqPoz94bn6JmeGz70ZeJS0POfY6?=
 =?us-ascii?Q?CIYJHOjugTUfp6c2E6EZyiMuc0Bnu0ZJWTH9HaRi/lD8CsKW9zcXteoF727b?=
 =?us-ascii?Q?DgDNcb/5zGJGJXaaVCh4QjfBPCRna6fqNYNivpWVR8BwuBuGXMrtvVlCN7H5?=
 =?us-ascii?Q?Hg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	04LEIklg/Z/DxOBv2rLvrWw9cE7eyA7oUuhcPJcrEAo5HumaeM7rKQG58vn2fWdRa8nOpGrNmNnoL/+a0kOYpMZIkvZcUR1CS3oE7nv8tjdJfXlB6vJw25WTWNL+jjCm3BErDpeRHnztBtn7s3oI2BhKVyyNUcJbEXxTxEdSbJt2gq+ASoXR6qfL7pHbVdtwP5GibEu8Xz8p2sHRu1sEu2y4abyiX82ADbOdXxXyCmp+EgumTzZYOCcGrRi3UIrMDqZ6MNDp+LRitnPKOWoKDR7TLWP27wzXazfJ+A4UrHVkagmdUZz7MKbhDtvQNCVUgIKyAvLHY3euSmJt+XjI/ifg4nZ6eFXcEaNdam6RUR3jVX6x3ki7ePLZZZ/28r9YHqEeRIu3GTGSqecJjRxGJwC8IgnzhjR1O9Ou/ash6eKw9mqDS47bIZKKoFkCxeRz
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 17:09:54.9996
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 444c8db9-69dd-4f62-60ef-08de64d96224
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B372.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4325

With cross-vendor support gone, it's no longer needed.

AMD CPUs ignore the top 32 bits of the SYSENTER/SYSEXIT MSRs, which is
not how this emulation worked due to the need for cross-vendor support.
Any AMD VMs storing state in the top 32bits of the SEP MSRs will lose
it.

It's very unlikely to affect any production VM because having 64bit width
just isn't how real AMD CPUs behave.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
  * Reworded commit message to mention the loss of the top dword for
    any VM stupid enough to use it.
---
 xen/arch/x86/hvm/svm/svm.c               | 42 +++++++++++-------------
 xen/arch/x86/hvm/svm/vmcb.c              |  3 ++
 xen/arch/x86/include/asm/hvm/svm-types.h | 10 ------
 3 files changed, 22 insertions(+), 33 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 10d1bf350c..329c4446e9 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -401,10 +401,6 @@ static int svm_vmcb_save(struct vcpu *v, struct hvm_hw_cpu *c)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
-    c->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs;
-    c->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp;
-    c->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip;
-
     if ( vmcb->event_inj.v &&
          hvm_event_needs_reinjection(vmcb->event_inj.type,
                                      vmcb->event_inj.vector) )
@@ -468,11 +464,6 @@ static int svm_vmcb_restore(struct vcpu *v, struct hvm_hw_cpu *c)
     svm_update_guest_cr(v, 0, 0);
     svm_update_guest_cr(v, 4, 0);
 
-    /* Load sysenter MSRs into both VMCB save area and VCPU fields. */
-    vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = c->sysenter_cs;
-    vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = c->sysenter_esp;
-    vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = c->sysenter_eip;
-
     if ( paging_mode_hap(v->domain) )
     {
         vmcb_set_np(vmcb, true);
@@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
+    data->sysenter_cs      = vmcb->sysenter_cs;
+    data->sysenter_esp     = vmcb->sysenter_esp;
+    data->sysenter_eip     = vmcb->sysenter_eip;
     data->shadow_gs        = vmcb->kerngsbase;
     data->msr_lstar        = vmcb->lstar;
     data->msr_star         = vmcb->star;
@@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
-    vmcb->kerngsbase = data->shadow_gs;
-    vmcb->lstar      = data->msr_lstar;
-    vmcb->star       = data->msr_star;
-    vmcb->cstar      = data->msr_cstar;
-    vmcb->sfmask     = data->msr_syscall_mask;
+    vmcb->sysenter_cs  = data->sysenter_cs;
+    vmcb->sysenter_esp = data->sysenter_esp;
+    vmcb->sysenter_eip = data->sysenter_eip;
+    vmcb->kerngsbase   = data->shadow_gs;
+    vmcb->lstar        = data->msr_lstar;
+    vmcb->star         = data->msr_star;
+    vmcb->cstar        = data->msr_cstar;
+    vmcb->sfmask       = data->msr_syscall_mask;
     v->arch.hvm.guest_efer = data->msr_efer;
     svm_update_guest_efer(v);
 }
@@ -1720,12 +1717,9 @@ static int cf_check svm_msr_read_intercept(
 
     switch ( msr )
     {
-        /*
-         * Sync not needed while the cross-vendor logic is in unilateral effect.
     case MSR_IA32_SYSENTER_CS:
     case MSR_IA32_SYSENTER_ESP:
     case MSR_IA32_SYSENTER_EIP:
-         */
     case MSR_STAR:
     case MSR_LSTAR:
     case MSR_CSTAR:
@@ -1740,13 +1734,15 @@ static int cf_check svm_msr_read_intercept(
     switch ( msr )
     {
     case MSR_IA32_SYSENTER_CS:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_cs;
+        *msr_content = vmcb->sysenter_cs;
         break;
+
     case MSR_IA32_SYSENTER_ESP:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_esp;
+        *msr_content = vmcb->sysenter_esp;
         break;
+
     case MSR_IA32_SYSENTER_EIP:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_eip;
+        *msr_content = vmcb->sysenter_eip;
         break;
 
     case MSR_STAR:
@@ -1940,11 +1936,11 @@ static int cf_check svm_msr_write_intercept(
         switch ( msr )
         {
         case MSR_IA32_SYSENTER_ESP:
-            vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = msr_content;
+            vmcb->sysenter_esp = msr_content;
             break;
 
         case MSR_IA32_SYSENTER_EIP:
-            vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = msr_content;
+            vmcb->sysenter_eip = msr_content;
             break;
 
         case MSR_LSTAR:
@@ -1970,7 +1966,7 @@ static int cf_check svm_msr_write_intercept(
         break;
 
     case MSR_IA32_SYSENTER_CS:
-        vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = msr_content;
+        vmcb->sysenter_cs = msr_content;
         break;
 
     case MSR_STAR:
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548..76fcaf15c2 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -97,6 +97,9 @@ static int construct_vmcb(struct vcpu *v)
     svm_disable_intercept_for_msr(v, MSR_LSTAR);
     svm_disable_intercept_for_msr(v, MSR_STAR);
     svm_disable_intercept_for_msr(v, MSR_SYSCALL_MASK);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_CS);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_EIP);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_ESP);
 
     vmcb->_msrpm_base_pa = virt_to_maddr(svm->msrpm);
     vmcb->_iopm_base_pa = __pa(v->domain->arch.hvm.io_bitmap);
diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 051b235d8f..aaee91b4b6 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -27,16 +27,6 @@ struct svm_vcpu {
 
     /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */
     uint8_t cached_insn_len; /* Zero if no cached instruction. */
-
-    /*
-     * Upper four bytes are undefined in the VMCB, therefore we can't use the
-     * fields in the VMCB. Write a 64bit value and then read a 64bit value is
-     * fine unless there's a VMRUN/VMEXIT in between which clears the upper
-     * four bytes.
-     */
-    uint64_t guest_sysenter_cs;
-    uint64_t guest_sysenter_esp;
-    uint64_t guest_sysenter_eip;
 };
 
 struct nestedsvm {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 17:10:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 17:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222283.1530282 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2rk-0003u2-5B; Thu, 05 Feb 2026 17:10:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222283.1530282; Thu, 05 Feb 2026 17:10: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 1vo2rj-0003s9-Uu; Thu, 05 Feb 2026 17:10:03 +0000
Received: by outflank-mailman (input) for mailman id 1222283;
 Thu, 05 Feb 2026 17:10: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=eiMP=AJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vo2ri-0003It-Nu
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 17:10:02 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 808cf9f1-02b5-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 18:10:00 +0100 (CET)
Received: from BN9PR03CA0457.namprd03.prod.outlook.com (2603:10b6:408:139::12)
 by DM4PR12MB6010.namprd12.prod.outlook.com (2603:10b6:8:6a::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.13; Thu, 5 Feb 2026 17:09:52 +0000
Received: from BN3PEPF0000B370.namprd21.prod.outlook.com
 (2603:10b6:408:139:cafe::36) by BN9PR03CA0457.outlook.office365.com
 (2603:10b6:408:139::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 17:09:48 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B370.mail.protection.outlook.com (10.167.243.167) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.0 via Frontend Transport; Thu, 5 Feb 2026 17:09:52 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 11:09:50 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 808cf9f1-02b5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=kAO+Wd9NweWWzOfASMGBmsPmgVlSuCr8f4Ot6U+rBY0QaoAQHuBghGCNLQsHcWTWyI9ZaF3MdGUDdqOVuDe8hing94uwKeStP/71nw6xV/yhuoDG5LfCfZyU5QkqMzxFW+5bcUKuQctpDJjsyIhSzH2t9++Co0zprFCO0ti45ew+7o7TJvbonSRnywDEzdeSQhH0qGNJYuSV7aLw5O3JszoMPHrkBQeNvWEXTE5m5HKHoV+swedI/SAD8Sj+DGaxubxyrTArGjByfPYXrEeZXeahFEuKEpAPEckMyQgbbWivq7NvhWNg3poySAinHZmP3PCpE7Bl/5hVsrcZOFjlEQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=E4FKeqmCM9a2ErEXn6Kh0b9mOhoAFlSSuBV0vP6kKFk=;
 b=lpzewu1hyHLymkyEkPC+N+sBNhl7cRHUIQPCwSJhJh/5BzJv+Yaeze7MS+TZ11HZSW1Z7WqY9dUDhc4oR46SB6DMLvtWij7Xw4NNrgeFRBK/07WH2tPJY9qNQo3fNQwa6/j9kiQVCz0AjLZJG9SnfkkfEagUhI6lBgAy7Nvfn2PPvGKJGT1aeVDYezL9w9F/teDLshY8sEffkr0Tl3DbOPm87PGpd1VVYSQjZDrS8I4ZkCtaQoerXNVNeBjhSZNml1yCICIDVUUH/02WOF5/T75zR8IW6wURGEunH0LS2fC3l9rSLbDaFFS8061PjuVdW/bD1bsXH1/F3b7VM2KMbw==
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=E4FKeqmCM9a2ErEXn6Kh0b9mOhoAFlSSuBV0vP6kKFk=;
 b=PEKn78Xl2QBq+omHbs3iFpua/u55cCbXz4A2J8fpQ3i5JcZpCH3Ajp7fpZMsVS3Vo4ZQz3qdpfwmJ2f2QXDWZSq57aX3UCMfiRQLQrhiM2yDkmGyFA5DPqgk4Clf1UIBeBEmktTu9SeaOilXSjiFgh0h/vdoM2tLvqWvgUqY54k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH v2 2/4] x86/hvm: Disable cross-vendor handling in #UD handler
Date: Thu, 5 Feb 2026 18:09:20 +0100
Message-ID: <20260205170923.38425-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
References: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B370:EE_|DM4PR12MB6010:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f89cbd7-9528-4d3e-d118-08de64d96073
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?G9I8i8Ew1CbZ5mtRMJjgB85h47SCty2b+rsbG1/ZyFV5839zd47heBpZb5FZ?=
 =?us-ascii?Q?aArGit6UdCd9/dcuGJT41zWSksq93BSJKDi22F/rNeBGmbW6Wgiu1TXV9VWJ?=
 =?us-ascii?Q?DYQX/d4v3f/s+aXwttXwYNf13KFRZJpMl7PcXmhawWOmYlc3GcmSnuIFlQke?=
 =?us-ascii?Q?jqJ2wVKh8F1VhCyqjfln3fUoeVKs8JAc6FeNgIezuKGrR5DkpYnz//rHljY8?=
 =?us-ascii?Q?h1c74Lkq94tzt2D/ytXrs1jdoB4lwXHF7njcRvo8neyt8+25iwhuQrCMeNLJ?=
 =?us-ascii?Q?RI/Rztx1z18RanENBOb2HdhQrv6BqtiHNsER4w4MsGv8Q2gGqUhjyX2e7mdJ?=
 =?us-ascii?Q?AF9Fxwn82D/lMhdSm40GTDo+7uFpFG8r0OteynvBq+WXHu85QY9vMWZfNGXc?=
 =?us-ascii?Q?+Jw79z43ELcUi+a5mntEZjVjmpOG44Q/VMLf3dXdW7KDyOIwxw7a+225Sx1+?=
 =?us-ascii?Q?nf6Rtoywp3vnJVYNSHypAESydFJWud2Tt5SbVUF/3+rkFQemjwlEQRaJaE5g?=
 =?us-ascii?Q?yIMGGKcmSLEdFPLiPo9HV3P0T3o8LRlJtOgZsb+5UM8T7MAPFB5lZhT4tdIh?=
 =?us-ascii?Q?vW0pfCXRJAAhcmy9YUK/weQlVKVVqL8cdqz2qj+Wao71pAZZfbPua6a8tBkV?=
 =?us-ascii?Q?Tsl3MMClURGPZffZ7Z6W+PMTbjBbtTWQtj2ywH7NjK52rZEkIf3Lws9KApT1?=
 =?us-ascii?Q?8Ng7gZioyydOdiTuPCYj4d5qcOmdMYIBg7NXPNxfUx6PEJ/JxCFweUaXRFmm?=
 =?us-ascii?Q?qv6DbDvgWeV6H9wwxRuHBgaqWutwy6KpC5jJ63gjkstcqyZMvepNBoGWyoOi?=
 =?us-ascii?Q?KNRJaudR4EngDlOKuK7CO5IjJK/2OC9XYIkNI5TthQPPBJjArNC7B09WJvDw?=
 =?us-ascii?Q?Ca3aQZ26NB6LEdHE2htJBOs0zJOaojLDWROQayn578Q7gJADgTztteDtNNwK?=
 =?us-ascii?Q?izc0/FPhO9GTIqy1H/RQVk3C+kP3AQTkSvQ1Z6+1tEr+eFazmpB89zI0KoRo?=
 =?us-ascii?Q?sov+It00QkgMSTzfl4s8SY84V3YgH0E7dsRXRj8vzPN02Ol130f6U9TgD6V8?=
 =?us-ascii?Q?t8QX26oPlHsRJ1BI2rQ7pAP8sQgNbyeeAdUMvblmyY2Xc9cGuJ7VQGRXwpSI?=
 =?us-ascii?Q?a0GxfyODmmnqfIapDcseLGxfHsDT+r8rHyj99BNYqw7s6N/xyAH/F3Xcp+Zg?=
 =?us-ascii?Q?9LJY/TFCS+UsZvvjo2aErDqvwFwrYTAWMTqozVsRaY7sDLEIYRT8v9NPqlSc?=
 =?us-ascii?Q?aIoz7PL4hZyTtEwoar/aZVuWpdLu7Diop81wvBBvGa05cAKZXEE4yaCh2cTf?=
 =?us-ascii?Q?s3Vxezto0KszeGch17Pu+msl4OhfeyPuEEpRYVzcbeuH0kgnLiPMuY/GSlGU?=
 =?us-ascii?Q?J13yj25gaUDhnHxX6PQ76Xxr0eM0bl0XGWl2wm1FnCHTAUjrVkK2jEQNAsXA?=
 =?us-ascii?Q?PPiyTHg8NQNRTlEp7rpkeOzqvficqXTT1Em2rbdW1NkkawfNH+p5Ls3MH2eX?=
 =?us-ascii?Q?+9J+DPHJwsJb2dvq+eW+UOrDYjbZnOVCDeHj0u8bg9Knb65O50YmYdKcs4Hp?=
 =?us-ascii?Q?oFMbOGgilkcGVfKNCfdNHu0swmNo8RlbQm+g+8qwnHQXMxVm5AuLfcfspRy7?=
 =?us-ascii?Q?7Y0j2goARDXfPz9rAnHb2sM=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ED1LGKZOE2uzilZVIHgf6KW3iDGdDV/D3d850EdZdijVbVqIe81Y3DjFjr/1gQjJ7qxqHeSZ7KpYhWwL20izEkHv4+MjF/DgBPeA7vzuJ2JXhG2om0oCdphGN1d7oPXKA3PCtcUR4EW2CFiJpYBQR2aRbaDmoaNgnqg+h08SnxMr7G7m8xxTx8A4KjtguDCBVhdRhWmLcmtW3ayHxK/JC9JTaTTJH06HgDOP4sf8p6zZpAnFkQ8RnMJEs5RJmxoVgFN7XMc03KVyva1aaHCGgxnUHOtnPLY1+vmTa8B83ky6PeX3BeaVxTW86sJ+qdo5307iyQad2iMdNBvbUUwlheJfxEzFFB2w2UfuKoX6wuTvhWkTWaXkXb0qhL8InfBdblx+rfV94AOcgGjHwn4LkmtmEzopIv8GGZQKb2BZvzr1+J2JOrtKZJRXHoH0FmQ4
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 17:09:52.1660
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f89cbd7-9528-4d3e-d118-08de64d96073
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B370.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6010

Remove cross-vendor support now that VMs can no longer have a different
vendor than the host.

While at it, refactor the function to exit early and skip initialising
the emulation context when FEP is not enabled.

No functional change intended.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
The diff is annoying, but keeping prior logic is silly when it can be
simplified and the emulation context initialisation removed on the
overwhelming majority of cases.

v2:
  * Fix bug introduced in v1: Don't emulate instructions when they
    shouldn't be emulated.
  * Refactor the function so it's simpler.
---
 xen/arch/x86/hvm/hvm.c     | 77 +++++++++++++++-----------------------
 xen/arch/x86/hvm/svm/svm.c |  3 +-
 xen/arch/x86/hvm/vmx/vmx.c |  3 +-
 3 files changed, 32 insertions(+), 51 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..8708af9425 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3832,69 +3832,47 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
     return X86EMUL_OKAY;
 }
 
-static bool cf_check is_cross_vendor(
-    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
-{
-    switch ( ctxt->opcode )
-    {
-    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
-    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
-    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
-        return true;
-    }
-
-    return false;
-}
-
 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;
     struct hvm_emulate_ctxt ctxt;
+    const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
+    uint32_t walk = PFEC_insn_fetch;
+    unsigned long addr;
+    char sig[5]; /* ud2; .ascii "xen" */
 
-    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
+    if ( !opt_hvm_fep )
+        goto reinject;
 
-    if ( opt_hvm_fep )
-    {
-        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
-        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
-                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
-        unsigned long addr;
-        char sig[5]; /* ud2; .ascii "xen" */
-
-        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
-                                        sizeof(sig), hvm_access_insn_fetch,
-                                        cs, &addr) &&
-             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
-                                         walk, NULL) == HVMTRANS_okay) &&
-             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
-        {
-            regs->rip += sizeof(sig);
-            regs->eflags &= ~X86_EFLAGS_RF;
+    hvm_emulate_init_once(&ctxt, NULL, regs);
 
-            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
-            if ( !(hvm_long_mode_active(cur) && cs->l) )
-                regs->rip = (uint32_t)regs->rip;
+    if ( ctxt.seg_reg[x86_seg_ss].dpl == 3 )
+        walk |= PFEC_user_mode;
 
-            add_taint(TAINT_HVM_FEP);
+    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
+                                    sizeof(sig), hvm_access_insn_fetch,
+                                    cs, &addr) &&
+         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
+                                     walk, NULL) == HVMTRANS_okay) &&
+         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
+    {
+        regs->rip += sizeof(sig);
+        regs->eflags &= ~X86_EFLAGS_RF;
 
-            should_emulate = true;
-        }
-    }
+        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
+        if ( !(hvm_long_mode_active(cur) && cs->l) )
+            regs->rip = (uint32_t)regs->rip;
 
-    if ( !should_emulate )
-    {
-        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
-        return;
+        add_taint(TAINT_HVM_FEP);
     }
+    else
+        goto reinject;
 
     switch ( hvm_emulate_one(&ctxt, VIO_no_completion) )
     {
     case X86EMUL_UNHANDLEABLE:
     case X86EMUL_UNIMPLEMENTED:
-        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
-        break;
+        goto reinject;
     case X86EMUL_EXCEPTION:
         hvm_inject_event(&ctxt.ctxt.event);
         /* fall through */
@@ -3902,6 +3880,11 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
         hvm_emulate_writeback(&ctxt);
         break;
     }
+
+    return;
+
+ reinject:
+    hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
 }
 
 enum hvm_intblk hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack)
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..10d1bf350c 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -589,8 +589,7 @@ static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
     const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     u32 bitmap = vmcb_get_exception_intercepts(vmcb);
 
-    if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+    if ( opt_hvm_fep )
         bitmap |= (1U << X86_EXC_UD);
     else
         bitmap &= ~(1U << X86_EXC_UD);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..eda99e268d 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -803,8 +803,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
     const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     int rc = 0;
 
-    if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+    if ( opt_hvm_fep )
         v->arch.hvm.vmx.exception_bitmap |= (1U << X86_EXC_UD);
     else
         v->arch.hvm.vmx.exception_bitmap &= ~(1U << X86_EXC_UD);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 17:10:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 17:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222286.1530308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2rm-0004ga-6l; Thu, 05 Feb 2026 17:10:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222286.1530308; Thu, 05 Feb 2026 17: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 1vo2rm-0004ec-01; Thu, 05 Feb 2026 17:10:06 +0000
Received: by outflank-mailman (input) for mailman id 1222286;
 Thu, 05 Feb 2026 17:10: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=eiMP=AJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vo2rk-0003It-TG
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 17:10:04 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 82a07710-02b5-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 18:10:03 +0100 (CET)
Received: from BN9PR03CA0461.namprd03.prod.outlook.com (2603:10b6:408:139::16)
 by DS7PR12MB5815.namprd12.prod.outlook.com (2603:10b6:8:77::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Thu, 5 Feb
 2026 17:09:54 +0000
Received: from BN3PEPF0000B370.namprd21.prod.outlook.com
 (2603:10b6:408:139:cafe::20) by BN9PR03CA0461.outlook.office365.com
 (2603:10b6:408:139::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 17:09:43 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B370.mail.protection.outlook.com (10.167.243.167) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.0 via Frontend Transport; Thu, 5 Feb 2026 17:09:54 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 11:09:52 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82a07710-02b5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XKBUMpcXB882L+w4U6c/m0A68oxUKJgyABnfS3tYhhrbRC8QVIthHeNgfb3CdVKNFuyXgcGmaqVQWTEhfdSWbNe2cxhcim1c5DBxxYzlSdazKrEsGBrSWzkJ2n6FAbxmFh7GLbsRxD/TZXUia+okFOAXBslmNyjFQFGxww1JjYHaOn0wWp2M8LEy5DzkoHd5Dj4qLSNdI9GhQmuqOYFbabaJf/AVp4KEtNjX8mcasmLMonSoFwz2pMZelw6KST0RweUre41jPI1YJgdcs/27HlxRr8yBfGZhvyDc6PmY31syq8363/WPRqufb0fD1H1SIhUNvJBkWJZKooTvaEUV6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jBpFBQTDjfYGESALWpvq1K9sdPU23kKe6+u6O2nDSkc=;
 b=FmFMNqcUbC4PAbMtyhi2XzJB3SOIETY6/aimC2utr7GonogxnMXUHnxQGaeG76I83n7kTnx7dMnuOaY/la0Wavr1NwM6ne4/Eq4ERSsgYvIO6hFBMDCzr7OF0crTQJ/5Xa959IAD9KwvICAWTjVqtKR06FfbvzxhQ9ewCluuJ2y+B3y8vx5K48ejjyRfIX6k1xF//4U8S6KO2KdnhsTL/m7YfSxy3ppTIFpx4QVdMlipOofMZrSKRV5IGg2T2cutZNHWVZlSikQctVAY63NCCjXP2eonnAa7oVIf/qLV12MK3xjXy45Bt6xT0cbfog3dN8VfDqQ9VS7uEaXPTaLl0Q==
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=jBpFBQTDjfYGESALWpvq1K9sdPU23kKe6+u6O2nDSkc=;
 b=R2mikabrClKSY/POgWnxWcq+fvfWcf5fu4e/bfLPxEx29eweOuiclmDhpFZRqLVKHSMdYKKtRZo4DbCnXC3NC67xTCPROgqAwVLYZGeZ14yjGL5ebsw7FbULRyF9GBtuPA98/DzRSq+pijnGL3+pHYpeVMF44TK20w+Hd+l7ifY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [PATCH v2 3/4] x86/hvm: Remove cross-vendor checks from MSR handlers.
Date: Thu, 5 Feb 2026 18:09:21 +0100
Message-ID: <20260205170923.38425-4-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
References: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B370:EE_|DS7PR12MB5815:EE_
X-MS-Office365-Filtering-Correlation-Id: 26e2c9d8-8ce4-4777-4849-08de64d961c1
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?8ktf/zgpQEaD/coL0Q7aICyna9c83yQOWmwZK0BXt9cmoLIcwce+5wfZDfY5?=
 =?us-ascii?Q?D4GUDMvJIQBpAsEw2m9+Iko2H04mvotTQ584NG12Y+C5VDXIcTh8+ovuzVVl?=
 =?us-ascii?Q?FRrHvnOpdZB+xaZ4I+ZTnoFZQfFBNVdwFYlLdXYZAmKUPfxTQZhkL1CIIDl2?=
 =?us-ascii?Q?tCWKerU+v+WxiwT024eyNP/3IXIKqWQ9taBkKnkUdJ0lwFSw0ThLPOKyi+uE?=
 =?us-ascii?Q?sksid0czvWnsPAOs1hpL2WOVKVPLdGAm7xGUv5AYSL2I6SK3CfwVAiRnUSv6?=
 =?us-ascii?Q?D8YlRZ4vrILcpHlmJcYZzZPqkpHH5z2BupvgfM8o1KwwO7hrzxQpDiJgAYbu?=
 =?us-ascii?Q?itK+6GNu4ALwCynZG+njmuoYrpPq1ZiMiYPSIeEn8ycobRDhV3IGKuwARYyR?=
 =?us-ascii?Q?ky3L1BEVOPsAZ+1qBhkvEurrMQmuBnsCS8yxVrCFzbBzWgP8GF1/J2DPxAFB?=
 =?us-ascii?Q?bBHdYyITjcOsFbZfprd0x/ztSn2cEk/HqFopulz7cdEL63oOo3w81Iu6d+2K?=
 =?us-ascii?Q?IuvGOvL5fy9AL/jl/KD7r1AxcDPJnf7pYRZX2BaWXaFSA8Y2H0mnIa3j7VkL?=
 =?us-ascii?Q?kcPMG0gc9Eq9me+80C92H3iUGp7Gd/GuHv0+wMvXhTB6nkFebV2r7Rb1HfOZ?=
 =?us-ascii?Q?5lDOdkKqG0o3vuz5gLVMHtdurTskVONq5xlcxJZ7rNcBV+WREOAum789XotX?=
 =?us-ascii?Q?PCtH3WgYahTEMTXeb13kZHSvtauG/fVg2TeqNiqUeKN0wNUbJnhBRX+EZxCS?=
 =?us-ascii?Q?0w5AQxQLMmTjTeNgf8aO/Di/XHC9AOZpWrMIYUIt7XFHsUHie3siCWAT/Fef?=
 =?us-ascii?Q?9zE9mhRRrPFa4QAbuIig5nHlhn3cCgpK3sU0vZvD9XQ1Je53r42fEW8i8cUY?=
 =?us-ascii?Q?O4hsDDeMVAySBYCykB2uQxurpjBMjo4gXc+SEagm6WRhTYIwCW6fc9tSAtpm?=
 =?us-ascii?Q?UEYg2oGiekO3qO3H2ginupmxcocjBSQpYzkfg1KhMltc2z3gMa4yF6MFvJ0z?=
 =?us-ascii?Q?ZeYMajDynmM6Jnn9Ak1QeXtXlQCXr05SM/8UNod1U8+yDbzc7RyS4ih1dRJz?=
 =?us-ascii?Q?4GcT9wJVTlHN+biMqX3wBldcTMm+QtysElRtb9QrmQEMGidlcRrKKbT/PcOQ?=
 =?us-ascii?Q?GDZPuhQkKCwVdo0ttjoQ+1r0byoTOPXyXMWh/ZkNYsYduzSpRRFihDS9LhVK?=
 =?us-ascii?Q?SFSdy3ZVwkBVexARn53mJgEEF4YT+z4GfsB5ZYKoODqrfS//mYDitvLCz5TQ?=
 =?us-ascii?Q?a38MaTV9tR2BOxn+WXPW4G6vkepid18GO1OOv4VkAbEH1VTiFHEQjAFhsBf6?=
 =?us-ascii?Q?fpfEtqQbbRkOdTe6t8v1sOK/m7a1YFjbKEQDMXEa53JYqiHcvbXVOeoJ/dL+?=
 =?us-ascii?Q?NMGru6vnYae14918Al8P7gxnkgEJ/h3EI1db0yQagn76oklrFjZJeT/2LTFt?=
 =?us-ascii?Q?RTU/auR3mBkaBXWqg71Ukw0xundNqi0DiVAS4CidFzH4bLfqHs9K4xwhy0Vt?=
 =?us-ascii?Q?jQOCY6DrwrWxUpTLyi0SOe/dzaEqnz+kqhWJxF03e+uzUZ08xQvw59O5XMfQ?=
 =?us-ascii?Q?hv75tq1LjyQNXjOYaLdKuTTMFeOqPJOwq+y+Zb0yeLpQHXajCaA2/71n50Yj?=
 =?us-ascii?Q?2RHKo+debzbp6ca8jxzFaqs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	OsbTs9mhF55wBxUtKHOLlekRZ2+NFUpStJcV66c31BlajeWsnmK0/mzYd58HDBQtZKQzJRbnNQnu96qu6MfZKqIsFsK8u946jr5INvex4ZBaMK13Bp30OZPc6l9Fo4lCP65Y6sM80Crgr0e4ZJXcMjnAoaiz9m+dbNll22Fimq/wJOGD96benW+mB+eql7j/vIiv/Az8R54lrgtTpUCZwhUuAbBtvNjMJYcZ1HCvh59CscXXyKI1TBqpNVPCxZvfZBF1cIjvFW51NYbO9jnx07j8fI9QYHssNA3RDY0cgAGbv3SCHjzeSc53Ams2luQHPNC3gl325J0egpgltfvUXicT2gf0BfY0ZoFPeP1eJ0MyWeN8JYGGlVZFRUXbaHssSS2JH/vSUjLDc75UEFklN7qmUF9VjId5ZU7uWsKwaBMLn/wuHBZLSFfWIBozZo+j
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 17:09:54.3501
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 26e2c9d8-8ce4-4777-4849-08de64d961c1
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B370.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5815

Not a functional change now that cross-vendor guests are not launchable.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
---
v2:
  * Use boot_cpu_data rather than policy vendor.
---
 xen/arch/x86/msr.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index ad75a2e108..d10891dcfc 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -169,9 +169,9 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     case MSR_IA32_PLATFORM_ID:
-        if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
-             !(boot_cpu_data.x86_vendor & X86_VENDOR_INTEL) )
+        if ( boot_cpu_data.vendor != X86_VENDOR_INTEL )
             goto gp_fault;
+
         rdmsrl(MSR_IA32_PLATFORM_ID, *val);
         break;
 
@@ -189,9 +189,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          * from Xen's last microcode load, which can be forwarded straight to
          * the guest.
          */
-        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
-             !(boot_cpu_data.x86_vendor &
-               (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
+        if ( !(boot_cpu_data.vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
              rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
             goto gp_fault;
         break;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 17:10:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 17:10:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222285.1530305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo2rl-0004bb-Th; Thu, 05 Feb 2026 17:10:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222285.1530305; Thu, 05 Feb 2026 17:10: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 1vo2rl-0004aD-Nk; Thu, 05 Feb 2026 17:10:05 +0000
Received: by outflank-mailman (input) for mailman id 1222285;
 Thu, 05 Feb 2026 17:10: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=eiMP=AJ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vo2rk-0003nM-2S
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 17:10:04 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81d1ea6e-02b5-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 18:10:02 +0100 (CET)
Received: from BN9PR03CA0153.namprd03.prod.outlook.com (2603:10b6:408:f4::8)
 by CH1PR12MB9671.namprd12.prod.outlook.com (2603:10b6:610:2b0::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Thu, 5 Feb
 2026 17:09:51 +0000
Received: from BN3PEPF0000B36E.namprd21.prod.outlook.com
 (2603:10b6:408:f4:cafe::e2) by BN9PR03CA0153.outlook.office365.com
 (2603:10b6:408:f4::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Thu,
 5 Feb 2026 17:09:51 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B36E.mail.protection.outlook.com (10.167.243.165) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.0 via Frontend Transport; Thu, 5 Feb 2026 17:09:50 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 11:09:49 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81d1ea6e-02b5-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iOjw3ddZ57njugMK2f9y1tn4zVqtQoaRIEsfBEnOj7r5ztDnqOkO6MRAQ6+MFLUWg5qyYOqz9qomPZEHcwSWQYY+r1/WLyoZQPBIABjGjQEPqGJ7RL1kJpGXgji6Vhbr6E8IWQ3bfP4Hd9Y0pp1ELQybUX3zIaWEzQcxOd2sC8F085VW/o08iP9Wvho+wNvcLpScyuYCgfvu0yuE+polczTWn5HAdIofxvjmOb/wZxX3fj1kOGg6mJ25QrJSYrhCt7ZQLU5I+cSHcpneusIQmQ281c/wpVCl0BrVlJMgi2Ej0HAKWm16lfvrw/tAi4WahgiuRbiBiAH8Sg+GvRU1rA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mflu5yg/x6sFMgT8nkXWde/8IdOHVsgphCYV4lo/bCM=;
 b=R8ZvBlsLB3J9mZqqVtatqGfpe2b+0f+aihjJhTOrsAVtfkiMTj5/6ei5diEgYI25jmWrrhqc6aMTkIgdSaoA4dJMXU08a0a/X5seG3PUw7GkdSGTew7Ukr0PA1dkfHMa72sFuuRComKCE2C0EF35mfljdsHZ9ddnMjFGTonII8H7Tym1uamInTSD8SBUgXtFbb8AXTvtTR/raDKS8YbVJDAnw4nVL2sqFiG2yDliONsyYTTH4h9gLZcZdZf4djD0vvZ9Lr7EYW6VXrmoeiKm6EX59h7MDuTDYnbpAfylw7cDcsEK7Neps3H+VlZTAPTSBf2vyGZMAk8xSOZrGfCx8Q==
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=mflu5yg/x6sFMgT8nkXWde/8IdOHVsgphCYV4lo/bCM=;
 b=tNRbKtTZobvdc4M//bb8VfkKrxPDNABXrykVs3PoRVMkuTHFt0cTfjlU2NO5gh3mI9nr0TdInu+p86Y/h5iN417RSJaeemZEGym+MqrqrKaQ4DeLaQAsG0zDOfFRJbLIksllhNoNiSfq18ouee6ytcUYLOBDgDdTdSEI2W1xQPM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: [PATCH v2 1/4] x86: Reject CPU policies with vendors other than the host's
Date: Thu, 5 Feb 2026 18:09:19 +0100
Message-ID: <20260205170923.38425-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
References: <20260205170923.38425-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B36E:EE_|CH1PR12MB9671:EE_
X-MS-Office365-Filtering-Correlation-Id: 695867bc-d7fb-4fe7-566a-08de64d95fad
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|82310400026|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?TUCGFBGjf9qY8mvleQz3Xm5ndTNUTAKywaFNivGqXq6ruro8TeqqKB9qQOur?=
 =?us-ascii?Q?uohtBlqiNg6MTFODSmUSrFMuYYCuKBEdE09vUXNssUUDNfBp6SLF/jSgY3ZI?=
 =?us-ascii?Q?OVg8JYk7W3PnTK/mpPamOjM0XT/xWDNiaXPunDrPsohZElnxQ/sSJS0Q9Dbl?=
 =?us-ascii?Q?keC1u6M+lftuTCpMxHN/Q2NyBMYvSFxz5Dhcq2oS3zPHfsc0/LOcb3ulCAUt?=
 =?us-ascii?Q?pZzhRkLwmSke1AStnejLyY3Qh7DexqsiofXc867WwoL38m2G9vqcNt3KUrWq?=
 =?us-ascii?Q?uWfdywuGFwQee4c4P0NmfWkVLrarSH13KHft+EBPI6EJ8b6iQewLTIs+KWOG?=
 =?us-ascii?Q?TxjheFSCNuwP3HrXEj37zLU0BfixNDCU3WYTp2lE1KFXE9DqnjPjr2fiftvP?=
 =?us-ascii?Q?+yggpztznwIhPmdqmvYvDC3Cr4mCUFEDnCdae8WbCWjgpqVLVoHCozgvNbQi?=
 =?us-ascii?Q?BKwknjM/N2OUymCT1zuglz2F0tgn6LRm8fLh9NPHM8ENu5hpSdnMwQxs2Lef?=
 =?us-ascii?Q?inWB8GyAlN7yhBUt6TPhgKt1AUK9XhkDRmwn8seOhxC4D8K2pF6tdMo0WkUM?=
 =?us-ascii?Q?bNNfs3FRH7kXkmkr8WUEVbjaF7V3SuwXyaYKJmZdMcYzUB8TAWSoY1dzYDVv?=
 =?us-ascii?Q?zyEBlDCt+BREb2FnIhEG00k25CyUZ4LFyjfnTvJSH3l0aW1tDF3sIz4WZukw?=
 =?us-ascii?Q?/pVm1sVgh2SprJ5CQ/QCtebq+KbyojseS42oMYwg+LV2IS2UoExbsdqLjuvJ?=
 =?us-ascii?Q?qk9o53wELic8aDstsG/xJiOnUsc/49JHutjsuTwy6oHQng7TVt8CXZREWAfn?=
 =?us-ascii?Q?aJdZpqrcmkkGdWYw0kHcRxhda2cUhen04DGtp/XQRFIwTLAdUBF3+lV3HLgA?=
 =?us-ascii?Q?fkiJFzOVTBrDhjVZITv0IX3sL1TSrK2eSZ4OfmL4mrOs8rM7j0M/FoZn1JEG?=
 =?us-ascii?Q?4e51JyFVUpnMeMh0SOsDvlO9O4xdFYVsUtJ4FHfQGRFP1UIVuJgLtRiSdpS0?=
 =?us-ascii?Q?h8Ui9+5w3Hc6xgdK5Sme71GlIYEDoDBv6rjk8gHqJINmNQ93izM1gCAa3yCg?=
 =?us-ascii?Q?zIcgeDboCFkcH9cX8ON99dWR/cEn86tS+HMh8GlIbxV5k7oyFBPqBWUZcjlp?=
 =?us-ascii?Q?eAKFVlHA+1gWkNCJgyId7WZppKzZqQcnh8ZH/xe0nD1hkMpVwroLlbcTeJ9T?=
 =?us-ascii?Q?Kp984RiyYEfk3tT7F1DBoc4dzSds1ttFX5myQR2uB3AeoPx1j9/1ri0MD5cQ?=
 =?us-ascii?Q?dBNGe4P+STuQXL7h7b24uUWUR9OGB8blvVlsQyMYo46XIWNGpkLxtp2i23mi?=
 =?us-ascii?Q?bpax2VNF6QF21q6i1qRtKkDWtsBlWs64ObPdCKXYvwknnyLoZQv6GvVnQsj8?=
 =?us-ascii?Q?TS/1QEEXckYX/SGxlzn8wezDaEaVvoBrmmsdU2aKrJcZtDpN1PQym/76Spqb?=
 =?us-ascii?Q?9osnagI7WClFo7sgFFrLoD1zoz4O6upFmKRGd2ix3305FXk1zBrq+ouZ4AvF?=
 =?us-ascii?Q?UTC27dIW0nGW9ks1VHzOnk+vTgESMzbPmZOBSnC+gQuspBnOtgFJPiN9pytZ?=
 =?us-ascii?Q?yVUJgnaCJ+ASmcT0jj9CnS3d2AD3HQVZNB6xxDXj?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	jrWRRhDnAbH7gDpcdAVpRWAwVMhyQaGXVApI7Z8fkmt5SMveW/tDG0RVCSX9lgIUt9zRjwLihwwC5kIiSpwZjaF+u96xxj6BwFpW6/gksv3Hehk6JlPjzU8z7MlNFY4xQw5zKFLojK5W/oDTsAjBNkbs8lxnK5C/G6MaY3J2FjOQKZvlkZK2DCEhXNtUQAfOHTus143CQCOTxiJ1SUQq64KaHObUBHmos6I0iBHiwsyjdbLz3W2nya+iy2IGcRvHmsGvd7orM+apoQnN4PejHHGuuz0eBdZwaJII6liOj8qcSGL6T6oPiPBvJctmj53sX3cBf5WETwNwIY5uKmogtdD+xrVTxFM9mx4nxrw+WDUilbkSRqCR0sc5x7DuAkTq9/53X03NjNl1RQ6QXR6JiRAgHGLvroGMxdaNyIb+oyNqiqHGPJEFDzVuprAIEuu2
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 17:09:50.8644
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 695867bc-d7fb-4fe7-566a-08de64d95fad
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B36E.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9671

While in principle it's possible to have a vendor virtualising another,
this is fairly tricky in practice and comes with the world's supply of
security issues.

Reject any CPU policy with vendors not matching the host's.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
v2:
  * Reversed polarity of leaf0 check in policy compatibility helper.
  * Reworded changelog entry in terms of LM + save/restore.
---
 CHANGELOG.md         | 5 +++++
 xen/lib/x86/policy.c | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18f3d10f20..426c0bce67 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,6 +22,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Xenoprofile support.  Oprofile themselves removed support for Xen in 2014
      prior to the version 1.0 release, and there has been no development since
      before then in Xen.
+   - Domains can no longer run on a CPU vendor if they were initially launched
+     on a different CPU vendor. This affects live migrations and save/restore
+     workflows accross mixed-vendor hosts. Cross-vendor emulation has always
+     been unreliable, but since 2017 with the advent of speculation security it
+     became unsustainably so.
 
  - Removed xenpm tool on non-x86 platforms as it doesn't actually provide
    anything useful outside of x86.
diff --git a/xen/lib/x86/policy.c b/xen/lib/x86/policy.c
index f033d22785..079c42a29b 100644
--- a/xen/lib/x86/policy.c
+++ b/xen/lib/x86/policy.c
@@ -15,7 +15,8 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
 #define FAIL_MSR(m) \
     do { e.msr = (m); goto out; } while ( 0 )
 
-    if ( guest->basic.max_leaf > host->basic.max_leaf )
+    if ( (guest->x86_vendor     != host->x86_vendor) ||
+         (guest->basic.max_leaf >  host->basic.max_leaf) )
         FAIL_CPUID(0, NA);
 
     if ( guest->feat.max_subleaf > host->feat.max_subleaf )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 17:27:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 17:27:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222350.1530323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo38p-0008Vp-IN; Thu, 05 Feb 2026 17:27:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222350.1530323; Thu, 05 Feb 2026 17:27: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 1vo38p-0008Vi-Ft; Thu, 05 Feb 2026 17:27:43 +0000
Received: by outflank-mailman (input) for mailman id 1222350;
 Thu, 05 Feb 2026 17:27: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=++8R=AJ=bounce.vates.tech=bounce-md_30504962.6984d306.v1-7cfb7669aa814b809b31d35be6213a93@srs-se1.protection.inumbo.net>)
 id 1vo38o-0008VM-1s
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 17:27:42 +0000
Received: from mail177-22.suw61.mandrillapp.com
 (mail177-22.suw61.mandrillapp.com [198.2.177.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5dd2567-02b7-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 18:27:36 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-22.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4f6PLG3fNRzGlsp6v
 for <xen-devel@lists.xenproject.org>; Thu,  5 Feb 2026 17:27:34 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7cfb7669aa814b809b31d35be6213a93; Thu, 05 Feb 2026 17:27: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: f5dd2567-02b7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770312454; x=1770582454;
	bh=5gJfGwa8o6GZ+PiMQ55z7D9ACCtS3gqDjblVe+fCVBA=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=MWMaFSb73wDOzC8isjdwjRcp/3W+PQduOiRpo9/tw2aSf48+Qi/KFJRy96F9jQvQK
	 TyoQN/j+FdRzRsikN6SzHuoWzmp7ac6tQtIpTdu8GgJ0CIodeV5FDbE0NYWHFUag18
	 u0rAnGIMLpRSaGC435Otm/tEUYc27e89Rpsbo3WZNBFON5W3xqkqGH0FhTgqadPStG
	 nqDy8ezobHMexNBV7D1EPfKwUoHW+PwZN1zpfq6OinJAXLMPfwQC2T9lBRCjeYBAuG
	 e4NSdPbfk+wAzqBTf64NDfXaZU3n/u5aF+bzb6dSTULni23OxxOnmsEeBh2KoXNCTx
	 xbphBVYIFhC0g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770312454; x=1770572954; i=teddy.astie@vates.tech;
	bh=5gJfGwa8o6GZ+PiMQ55z7D9ACCtS3gqDjblVe+fCVBA=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=l21pjyEdHcYVojj4hazmeGQyXw7PUJkg75zstX2vKZXndO61UMEJ6CpoQOVzucFzV
	 waD8t55flxQfNU+ZiNy9HAxy3sfyXN6jZOmurNzi0qaofFdpI/Qjp0Vd5UxgIL5cxx
	 3uiwCt6OW4O4Mv/axffFgO9P42SYw1GbuT7buUMiMSzAIyD8AL61UpJ5flmBEeD5B9
	 8S9n2gTsp98dnp8EK1yEnYlFanfktw9R91ocS/ZSdCrYz4xFRjxZDKa2axkERmzGoS
	 NADhziIDj2AlR+37NtDiPu0KU0ir9qVrgxckF6x3EY2OcmK31p3ePa9RCnI12sYRly
	 fBo7B9dci9HtQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20efi:=20Enable=20EFI=5FSET=5FVIRTUAL=5FADDRESS=5FMAP=20by=20default?=
X-Mailer: git-send-email 2.52.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770312452868
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>, "Daniel P. Smith" <dpsmith@apertussolutions.com>, "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Message-Id: <82dfede43d81c2072f90b01d12fe5ef18c80fc24.1770312308.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.7cfb7669aa814b809b31d35be6213a93?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260205:md
Date: Thu, 05 Feb 2026 17:27:34 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Many machines fail to boot if this option is disabled, as
there are no known drawback toggling this option, enable it
by default.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
CC: Daniel P. Smith <dpsmith@apertussolutions.com>
CC: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingslab.com>

 xen/common/Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d7e79e752a..49dea2412d 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -363,13 +363,14 @@ config KEXEC
 
 config EFI_SET_VIRTUAL_ADDRESS_MAP
     bool "EFI: call SetVirtualAddressMap()" if EXPERT
+    default y
     help
       Call EFI SetVirtualAddressMap() runtime service to setup memory map =
for
       further runtime services. According to UEFI spec, it isn't strictly
       necessary, but many UEFI implementations misbehave when this call is
       missing.
 
-      If unsure, say N.
+      If unsure, say Y.
 
 config XSM
 =09bool "Xen Security Modules support"
-- 
2.52.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Feb 05 18:31:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 18:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222390.1530333 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo48Q-0000fI-Lt; Thu, 05 Feb 2026 18:31:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222390.1530333; Thu, 05 Feb 2026 18:31: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 1vo48Q-0000fB-Ih; Thu, 05 Feb 2026 18:31:22 +0000
Received: by outflank-mailman (input) for mailman id 1222390;
 Thu, 05 Feb 2026 18:31: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=2IOj=AJ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vo48P-0000f2-EV
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 18:31:21 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d8800d0e-02c0-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 19:31:13 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5916.namprd03.prod.outlook.com (2603:10b6:806:115::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 18:31:07 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Thu, 5 Feb 2026
 18: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: d8800d0e-02c0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FZJUgzteyiHSCgG1zjDd3rZbio0z+K1Hyq7BRzBRzI7EAWJkydOg8D4DjUwzy08QO0PFw1fs4wdL8LmCJzzC5Xsxp36Z4qQUb00oB4J4QYBoj1Q/tzx5+sdKHI80+bDSwvy1whi2Cf9U9c6Z4fIQ7/Szw2XM+35q4+B62R+NJ3g/IihFy2/0jrFaPNndGEY00CylvG49TsGBv1m2/m4MbbIjquETESVjM+bL1a/u9Mqy6x+B6T4BOZXNNp4I7/rksRNPZUsinQ2W9u9znnPycp4LWDOvMAAjSMAfEJInT7fXqLgScvd+oZvabKPxiMuVSrQiXihiz1HEECfIea1fWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HBz96SJgPv9cMl5vVj12UY6iNXe/Kom5kWn+EVxny9I=;
 b=Wi+4QUpiWG1XvL4IREDdwLMjF/B+cxFlLbpGSnT1V8Wkav5MDEv11E71oMxiO9yfbHB/sKaPYJlCN7JLHzNL1trZEus7OfR3NYbmDiuKbFOkI33Fz6OK7vCMhLd+ByjjtUwfodFfA6SmqtftOwhvwDeRUMkS0jjSFTW9qV6vLuylklR/VhMH1aRL9doKZKy1xF8WAt2e7a3l/X8K81Le/fTc5DWNlIs7SGFnMOZ3T79IletkmVC6hhvezVFC6749wuTdUhzPWbgrzF2LxxhugGJezLlK5OWDA0rDwMjG59zrrEWsfhnBku8CJMuIjVeAjy6WCiMFJ+/yYLhj9q+B5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HBz96SJgPv9cMl5vVj12UY6iNXe/Kom5kWn+EVxny9I=;
 b=IDck2E95MJqtj6va6c4IsLlIAD3+XY3hURFYoKu3LdMaeRe83wj1h5unKmE9tsOX80LBN7jZkmsmzod3Ij6tDob9QUep47iXnJ3clGbVvARH0AnYt/jTNuMv3t3bv8hpm50pg5MUK7vOQdSbGnjFUcnsG+z04LJQw2i1uDkSfhw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5397aef0-2103-4775-af45-49a100be7ab6@citrix.com>
Date: Thu, 5 Feb 2026 18:31:04 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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 v3] x86/domain: adjust limitation on shared_info
 allocation below 4G
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260205080308.91057-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260205080308.91057-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0671.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:351::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA2PR03MB5916:EE_
X-MS-Office365-Filtering-Correlation-Id: 5b963a33-6f67-4269-1a5f-08de64e4ba7b
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?algxb2NjNHg1S0N2ekozVFZtemtXYWU3SndGUjBSVjdPUys5K25SaThmdTRP?=
 =?utf-8?B?THMvT0l3dkI2Tk9GWHl3MWNiU2RSL1loNEFPQTJybjNjZWpvODhWTXN3TGZj?=
 =?utf-8?B?dmhLMXBpVVhmM1RIc3BPamxheDQwL0dzT2xMV3g2eGNRWTYzT0k2UmRMNHgv?=
 =?utf-8?B?bTg1cmliNWgxOExxZjRkVUdONkpSa1JFRFlaeXo3Uno5bTFNMTlNUUhFOUxa?=
 =?utf-8?B?OGNxcFF6Q1Y1anJNbkEwMFJBaVc0ZnBjVTQvMjVYWWcwNzY0K0JmU3FQL0hN?=
 =?utf-8?B?ZDNZK2hNTldocS9rR3JCLytxL29tSDJxM0JWVkMvU2VUR3FQMEV1VGJIY1Vy?=
 =?utf-8?B?bmZEZjVmdWxjYlBkTSt3ZTdEZUYxcUM1TmtnelgvZXlUYTAvdi85M0dMSzFW?=
 =?utf-8?B?SUFicXVrOERLMzNWOUh2UVFXbzNvRDc1SGJTbWluSjZYVVdXVEJzdng1bWMv?=
 =?utf-8?B?L0N5b040TFl3ek1YWlZ5M0RnUWpLVTNHQkorVEdYMUk1UTc5Yko0cE5RcUx6?=
 =?utf-8?B?UHhESXVDYmx2aFkxWVJxMWR6TXBXcFJyaUxydGg3MU01UWpoeGk2STZkK2Np?=
 =?utf-8?B?SXlJcXNIajQ4N0U4bSszYnVhMm05bTl3bjJuMlRlRG5qSmRYajFXVlArSFZj?=
 =?utf-8?B?bUljR3FCMDBqdUh2cmxWNHJ1Sjc4aDlrK2s3eEJyN3Q3WHVvVXR5YklUZ1o3?=
 =?utf-8?B?bzU1WXJ6eTFNZE5lREdrZkNoTGt5dXBCK3UrYi9HZWxHdEZLcjNNQ0lKdkpG?=
 =?utf-8?B?OGNTaXNOOGJOeFdzeXdPemIyL3V3YjZLU2xSQ3pLK0VkblQwWVN0ZGtaRStF?=
 =?utf-8?B?UGd5T05URjNKbld0ZmEycGVzWlhYUEg4R2M0aDNrdDJwMnUrM25DSlRVNEUz?=
 =?utf-8?B?dUlLSUVra3ZrM0hoVmt5NzJOTnZ6WXNqTGJGa1Y0MEpyUnEvaE1URXF3T2to?=
 =?utf-8?B?UGhtL1pIMU5hVk9tTFJNZDZ3Q0NpeEJmL01IT3JpdFhtZWh5aXRFcDN1QU1K?=
 =?utf-8?B?NHR6WTJldldNL3pPRXV2b09PQStha3JjSWVGb3NGSmN2L0JTeUtNU1VvZmtK?=
 =?utf-8?B?aTRrc1UzMkdXb3I4VEZWS2poK3RZS0ptbm9LOEJYWkVmQ1Y5Ukd4TFI0MU10?=
 =?utf-8?B?SnVSQ2kyZERDM3pRak1DNTV2VmM2amdkYmRKNjQreXl1aG1kQUx6cHo2U2xr?=
 =?utf-8?B?MnQ5N3JXcWcvL21JZ3BpZlhZbWhHNDdwalJ4bUN2T2tDbzhRUDdiNEZDRlln?=
 =?utf-8?B?Q2Q3MVgzbkRraG54UHpwekwyWWNDTkxnRnFkNU9UMTJXbDVxMG5kS1VhVk92?=
 =?utf-8?B?Tk5WQ3dXdnBtVkozZGRGb3pJV21walIwaEZVMGlrYkZPR3lLVkptZkd5ZTVR?=
 =?utf-8?B?R2IvRHdVL2tlNjhYN2dtR210ZUxHZXJMTTZNMVR3V3FHbmhKZkJPblJkbkIv?=
 =?utf-8?B?MHAzUlF5Q1hpSU14cjBxK1Y5TUwxMGpVdWY5MkZpS2VVQ2QrZ0cwZzNNaC9V?=
 =?utf-8?B?TUhJQURETzl3d3Z4VGVQRWZCcytCOE81eWRmYWJWUDh5Mzl3ZXpzemFSTWpO?=
 =?utf-8?B?NmN6VzNzU1VBZktGM2plNGkwYXNhQ05Wa2hMZTJ5TmFoUnAyTGI2S3NhMEFZ?=
 =?utf-8?B?Qy9nTHV5ejBMbm9vZEhHWkk3d0VVbFhaMDhkQzlUQ0pjbDVFUFpTcDJQOTNG?=
 =?utf-8?B?aE5wRWRUZk9RajRJSE43TkZjSlVpTEh2azZIU3dNcE9CeDkxSUpVYjhMN1Yw?=
 =?utf-8?B?TTJEUC8zNWZXRUkxcVJsMFJqNGFMZS94SWNScHdUZGlOSDV6dUZ0TXlpZ2R2?=
 =?utf-8?B?L29saGxibEl1NzBDeXVtN09KeThCdCtPY0MzVGw3N2UxaENIS1Iya1dTS2sz?=
 =?utf-8?B?SG9laGZsRHhLbk5hZDJ4NTVUZ0NzQk50akJML2RyMzNpSThsd1FtYjRraFRZ?=
 =?utf-8?B?Z2t2OU9jWGZmNHlHdkN1dzVtRWtNTHgydTJTR2pSMWFHc2FqUHlFdHl0bUhG?=
 =?utf-8?B?R2lUVXI0VURwMWc3QTJqK25MSk1ic08yc0dBbldRTzkxdTBIN29RUThPZS9R?=
 =?utf-8?B?QU5ZWUFMQkkyaElDRk92NHZiOWx1UG5LdWZEaThNRU1yNFdDZWNkellvK2hQ?=
 =?utf-8?Q?zeuk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TEVzR21nL0kyUjAyZG1zNW9yYU5YaGhRc0Q4OEN6NzZJVnNOamxIdTNqTnFQ?=
 =?utf-8?B?L3BBUEtYQVJGbSswWHdKeE5nTkkxc3hLM1h5b1I5NjRkYUNGbTQxQkR0cTFo?=
 =?utf-8?B?M0hTZ3haYmtCTlF1RlJERDJ5VXk2MWwrTDMxUzIyWkVjN3c3YkI5L1RaQjB5?=
 =?utf-8?B?aTE4cENnZm5GYVlEMnNzNWxGcGpDVnBkTmVhaGJjNG9WSHMrcE04U2RPdG1o?=
 =?utf-8?B?ZFpnSkdZc2kvMG05WHh3Y0doZ0piU1R2b3QySTZOeVJ5Vm8zV2ttTGk0bEsv?=
 =?utf-8?B?cDJkS21pK29vS0VkbFZHN05ySjNXaEJ1Z1owS3I3R2lTREVJUFhIQW9ORWFp?=
 =?utf-8?B?aWdkTU4xRVNJQkdZd1ZIbkJnVS95VVJ4ZmlSek9WRS9VSkk1MHpYRkduOWV0?=
 =?utf-8?B?WWFFS0o1Qkp1M1FDcmJCZmZseDMzUUFJaTZQbk1JTnpXQUdKMzNpYmE2K0Ez?=
 =?utf-8?B?dUc3ZTc4Q2RTUE8vYk5QNVY5eC9IZWd5aEJUK0VLQU5VdG5TdnpaeU8zTTVj?=
 =?utf-8?B?Mlg0SUJocXcvTmljYU1rcGhtUlZBT2xMRFFId0dVYnZBR1FLdkhsVWFHR29Y?=
 =?utf-8?B?U1lBVzVrTWVUOEZ5U0ExbmN5SlVHRnNtbmYxTVZkeithOUp1OS9aeG1yTjln?=
 =?utf-8?B?emxaQjIzNm5RdHU1TDEvbkZHVjFaWjAzYk1mWVpvM2g0eS9DNXJ6T2hBNzIy?=
 =?utf-8?B?UzRSRkxacHJ4QjhsMGRnT09yV2JkNTZkRWNHTVh5NTN3d0FMei9NL3A3cHda?=
 =?utf-8?B?M2hSK2ZBeW1MODdxSFE4bWZDb0Vwd1hKTE5za0xqTlhxWHBSRTFmaDkyamli?=
 =?utf-8?B?cG1ZellPSW5ydis4TTFlSVdoYndHUE01SFNaV1BQa256a1h3enJnL0RDTFF3?=
 =?utf-8?B?dkIveThEUjhTbVdnMGZsZDdYZzJhQW95MFF6QkN3ME1reXZkRXdnL1NZVTJJ?=
 =?utf-8?B?ZDZlczZRZzZvclc4U1FKd2M1MGFnb25zZWhaRnFLd0gxSE1yZFZucjVCRmU2?=
 =?utf-8?B?R3g4K0lxYjkwbkp2UkpQbTRHN1hOY2hCazNUdjhybVQxRUE3UUhmL2M4L05p?=
 =?utf-8?B?WmdRdmxlWXdpOVFGVmF1cmp6VFZybTgvYTVnb09Kd1J2YWo2SzdITzRCMHRi?=
 =?utf-8?B?UStCZ05JT2kyTlVHR1IvTWpkRldGZnYzRmVOMGdzbGxJOG1ZbW1OTGZnc0h1?=
 =?utf-8?B?b1BpajZRNUc0L2ozR0tQczJFZDRYUzJ6NVBsK2JQbmlGaEN5TlQxTGt4am1x?=
 =?utf-8?B?UUVpdEEzVkU4SGU0RENTeVd0UXlnMDVMcFgyek9IQm1SeEd4MUlheHRtVjh5?=
 =?utf-8?B?Y29Md0RUTGtyWVhITW1JSU04RGFhSlFzZXR4RThsVjFkSlZVV2cyUVo0d1hR?=
 =?utf-8?B?dVRjSWt4b04rMjZZaVJ0OXArODYyV21DMFlQRDBxem5oNW5ydzA3TnFJQTFS?=
 =?utf-8?B?SXJkUjA2YlVCYmcyNlpOQmNGb3d3bkd2TEdxTCtmd0Z5UjI5bG9TeXk4cWJu?=
 =?utf-8?B?Qzl5dTJVbDZyL2ZtM1lhVDl0V0FuSGZTdGxVbWRidG5jbTNRaXpDU2pSU044?=
 =?utf-8?B?T1pJQUIrQ1pOanVUeXpCOFVDOE1tUU1NMm4rSWQ0WFhyVGFNYWVQdjgwQmI2?=
 =?utf-8?B?bXBpZjNHNXhSMDNyKzVtaTMwSE1rRGF1dTFRRWdCNjZhNnE4cU9YSzNhQS80?=
 =?utf-8?B?M2IxZW1tYjhOZ0FUaWJHRkh0THk3L0QwTlI0OVNFc1gxaGJsZnQ1TGszWlRq?=
 =?utf-8?B?OS9xWWZFeFAzRWx1Q2ZZUElsbDhRZTVySDY0bHI5bkRqaEdiOFp6VmxOV0Js?=
 =?utf-8?B?T09uT1J6K3ArTjEwbVUwVHBrR2tTM1RLWUxrZDRET1lxSXJiNXBGZkMrSXZU?=
 =?utf-8?B?Qy9INzBCR1RoelUvMEI5ZVZpQkp0RlZwKzlNL0FVTUkxOGJIZGZSMGxhZFZq?=
 =?utf-8?B?WTM0ekp5SjVOamJ2SlVObHdrbW4wS2xGdVptWVJRYkpTOHhCeE1ROU9oUmZH?=
 =?utf-8?B?WURBVzE0ZTdBV3phUnMrblBOZSs5TkJ4RlN4YkY0dkwzcm1nKzFIcVRqeDVD?=
 =?utf-8?B?NW9FQmo0Nm9hL3RmZXhBUTBYN1dtcEMxRlRIWDYrQ2dlMU5XYWZzdVMydjNm?=
 =?utf-8?B?RW1Ya2FFRkNrMlVRQkloK25XQ0phclAxOFNUeVVlL3p0R1p1OVVPUHh5enV0?=
 =?utf-8?B?ZFJYcUN2cWM4SndIRW9ObVFaT00vYUVZZzRQcFVyQmNWUjM2aTU2K2tNQVYv?=
 =?utf-8?B?SVNxY3RsdUcvWHZRNXhUc0hndnNkaTRhY1c0aXpwQWJKSlR2UlQ3Z1RFS1U5?=
 =?utf-8?B?aEZNZXFyRHArTDM3RUpTeStnbHVnOEZmVkxyREp1NnlBaVJUMWxsdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b963a33-6f67-4269-1a5f-08de64e4ba7b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 18:31:07.7874
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: R2SG3ffqkBV5QNhFth8hR8c65+5VhNRSqPhIaQ/uH2Qr5WUoUXMWA/TYn/228GlC8HbaqZkzlfoUqbSprKgEr5KqoGPikp0EwhToZDm7C84=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5916

On 05/02/2026 8:03 am, Roger Pau Monne wrote:
> diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> index 01499582d2d6..e3273b49269d 100644
> --- a/xen/arch/x86/pv/domain.c
> +++ b/xen/arch/x86/pv/domain.c
> @@ -247,6 +247,34 @@ int switch_compat(struct domain *d)
>      d->arch.has_32bit_shinfo = 1;
>      d->arch.pv.is_32bit = true;
>  
> +    /*
> +     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
> +     * field within the guest's start_info structure.  We might need to free
> +     * the current page and allocate a new one that fulfills this requirement.
> +     */
> +    if ( virt_to_maddr(d->shared_info) >> 32 )
> +    {
> +        shared_info_t *prev = d->shared_info;
> +
> +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
> +        if ( !d->shared_info )
> +        {
> +            d->shared_info = prev;
> +            rc = -ENOMEM;
> +            goto undo_and_fail;
> +        }
> +        put_page(virt_to_page(prev));
> +        clear_page(d->shared_info);
> +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> +        /*
> +         * Ensure all pointers to the old shared_info page are replaced.  vCPUs
> +         * below XEN_LEGACY_MAX_VCPUS will stash a pointer to
> +         * shared_info->vcpu_info[id].
> +         */
> +        for_each_vcpu ( d, v )
> +            vcpu_info_reset(v);

Sorry, I missed something.  Reading this in full, there's an obvious
(risk of) UAF.

put_page(virt_to_page(prev)) needs to be no earlier than here, or we've
freed a page that we still have pointers pointing at.

In practice, I expect that the global domctl lock protects us from
anything actually going wrong.

Nevertheless, for the sake of reordering the actions in this block, lets
just fix it.

~Andrew

> +    }
> +
>      for_each_vcpu( d, v )
>      {
>          if ( (rc = setup_compat_arg_xlat(v)) ||
>


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 18:37:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 18:37:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222404.1530345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo4Ei-0001KP-Fh; Thu, 05 Feb 2026 18:37:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222404.1530345; Thu, 05 Feb 2026 18: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 1vo4Ei-0001KI-B4; Thu, 05 Feb 2026 18:37:52 +0000
Received: by outflank-mailman (input) for mailman id 1222404;
 Thu, 05 Feb 2026 18: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=aqXU=AJ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vo4Eg-0001K8-VZ
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 18:37:50 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c49a795b-02c1-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 19:37:48 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ2PR03MB7499.namprd03.prod.outlook.com (2603:10b6:a03:556::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Thu, 5 Feb
 2026 18:37:44 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Thu, 5 Feb 2026
 18:37: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: c49a795b-02c1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TZo5Dro6s46edGVxFMMy7nFF72MRftPhLD3h/vxRbno0ZF9H3P6jiueO8GkPS7ORZczpAoSeJGC+7SjIYJLtf9nniQWTTyHI7eb09x6yhRcCHSRoAuku5VZWo+OFPeLsHuw3ux+krQPLgzmH87vYvohqA5v7dIemHRdvu1KlcBbODZpLs7EAubleGaiAK0HPB8Ub/f0Ojw4u7XsJllUREhv/fbnzmLC0hjP8nMaegvHDf+TE7unSMh8Rrx0Nhvvj76/3pIB2Gok8N9XDfXbIWJtpMGl61HOCE4bLo3t3fosZJCap2nK7LTHniddrUp9cBEBv/n2Accs5Kftt/n4J/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=yFQYl0Y5OkRfjuc7gvQp0cFLG9spXPKgUMOz33RxD3I=;
 b=rfCv2UrpZgP6g1+13tprW1ud0ZGnk/asd14Ews43RX1yHtz04hZXh2bF1NfVi0pAYnUEVzvgaxS2pWnXwhqRK/MVV86h/BHm2AR8QNdELcq9VcTdbZyIqf+YUU9JMSU3r+Ejq6o9bDtjwJ76XeltLwaN2bvWopWliBbAkm/DZIZAnesSdoOOxAa8P4l1Y5NoIidqBY6/hQvlVeH4bfJeFvhKaNGvd1J8+aynMP/m8AgkuPYgOvXZ/TftSv+YAR2ckW+QxYQ8rbjL2vFsvJQK+R245i0rIF31fPKwhaw16mgZHLQFq+4hacTRwg1apLkMS7w8cUAqXzgcWJpbkVlW4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yFQYl0Y5OkRfjuc7gvQp0cFLG9spXPKgUMOz33RxD3I=;
 b=i5BVV9JcXMN6jJgFQY1kEkQSd/eBxgpn/am5uC/JVDWHxtH96iBt4+iMB+q3K5iLz7xgeoOKJNByLio5NQp5iGlsgHGSov0OdaV6af5zsrBFXNaMGSA1NouvmlgSvjNna18et+8jTrYe5VKcI345G/GPQi7Jz755Z0+9h7Mo97s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 5 Feb 2026 19:37:41 +0100
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>,
	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 v3] x86/domain: adjust limitation on shared_info
 allocation below 4G
Message-ID: <aYTjdULkU2fCSR9Q@Mac.lan>
References: <20260205080308.91057-1-roger.pau@citrix.com>
 <5397aef0-2103-4775-af45-49a100be7ab6@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <5397aef0-2103-4775-af45-49a100be7ab6@citrix.com>
X-ClientProxiedBy: MA2P292CA0020.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::10)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ2PR03MB7499:EE_
X-MS-Office365-Filtering-Correlation-Id: dac4faed-fa5c-4bee-d281-08de64e5a6e8
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?dTB4Nmh4dGR4T1FGRFc2bWNCandMemt2dzNkWnlvelhJejFibThjclduaVZV?=
 =?utf-8?B?QWdhaHUvZjVseGk1a2pKcEJKNFplUk14R2xhQ0RYUGpYeEZXZHlOcG1hR2M5?=
 =?utf-8?B?QnJMMFh1TzZBS25mMUpHTEdkdEV1ZWd6ek9tNjh1cm9adFpxZFdnVFd2ajI4?=
 =?utf-8?B?Y2tUdURpczNWdElRWmdoSzV3dGtLVEQ2ak1IZzQ5Qk9zK0xXMXYzWS91OTNE?=
 =?utf-8?B?RG9mTHV2enpralJEeXNqRVBaUGVIWXlPL1dFcWZlNFFla0wxRXh2L01YMjFU?=
 =?utf-8?B?VGIyRmZ6czBVWE1kRFFicDZlWWxDUTNyUWk2dWtXQkVzNEQ0ZXp1R2pWcUEy?=
 =?utf-8?B?QXhLUW4rZ2FBcWZnbTZhMUxQeUV6aTlodllxTnZzTkZXbGZjU0VrdTJ3ZEJD?=
 =?utf-8?B?SEpPQ2NkL1krdnRLU1dLblFXUHZJUXU2Y3hjWDRsZHJaaDNNSjYySklOSURO?=
 =?utf-8?B?emxUWEZObHpVQXRPSVZPUUtmSWgzL21LbjNVUFdpUE1pRW00SUVHOWtBektI?=
 =?utf-8?B?aSswRVBZbW4zUHlkazVvRTdtTDBzNXE5M3lsNlBYOHJ2NjBnN0Y5T24vYzFK?=
 =?utf-8?B?dU5RZGJzK29XOWR3VHZuY2F6dTRmR1lCM1ZmV1lpbHFkWE5PRDhTNm9kY1BV?=
 =?utf-8?B?N2VCMGF0elhteHdWTkpYMWo3aFhwR3hkeGRMMmpTM3VCN0JyNHVBZlRGVkU3?=
 =?utf-8?B?cERsUmhlblJHRGdodnQ3aTNtWjlDU0VLTHBoOW1qcDJzZk03WXZoSEYwSE5r?=
 =?utf-8?B?QmtsMGRNNTZoSnpXMkRkNlZ4cFJpb21GclZOQmttakdhMnlQREJKclJvMFB6?=
 =?utf-8?B?OU5jTVAvd3AyRjlnbHc4RWJKa212VWo1ZHhlVWhmQWFZUGo1Skp1a2d3aWVp?=
 =?utf-8?B?RG8vWWlOQ2JDMFZQL2NwblBoZHpxYkhrZHBJUDhCb2pmdVlid3dYbFNtczdZ?=
 =?utf-8?B?TUxrdndOL1I3bFhqb3FnanNzc0M1K2hQUDgwR001aU10Z0ZLd2NjRXlPKzE1?=
 =?utf-8?B?Wk9zb1FWUlhGSmNreU1LS1M0THIyejhreUZwcFVOcGVOSitnZExZZkFJVWFO?=
 =?utf-8?B?VlEyVlZZK1hmWk9lTnZSR0tpTDh1WkVVYWg0RTNZUk1ZQUIveTZuZkQvWkhx?=
 =?utf-8?B?bEhkcEQ0UVFicG9iTVBDQTVMdTRvV3pjanhWZTdINTZxODVKOXNKZmRHd0Jj?=
 =?utf-8?B?cUhWWkRjZ3lBKzNXUW1BbUd4N25IVm1GNnFoRlNGTy8vWHhxSG1iWHRtOThp?=
 =?utf-8?B?VEM1NlBzb0NjUzQzQzQ5TVdVbFE2ZnhPSkdBbEZlMDZCaFREZWpVSmhoRUU2?=
 =?utf-8?B?d2JEenIycUczTEN1bUlyT0NpeWVDcy9ZUHpveFZxNVBsdXVMazQ4dXBkWUIr?=
 =?utf-8?B?U0lkblU5dGV6L0tseERLYVNqUW5aNmxaODBwaEFVMEgrOW5YUGp3UktZdjFY?=
 =?utf-8?B?S05hTHIreGo1dm5hZTJVakkyUXFQQUg0UEQwWS81RDRxTkwrM1h3K2JSQk9W?=
 =?utf-8?B?dG5xVFVISWxBSDZCYVBGc1J6akJ4QkZpVFJNbnBNQ0VTRmg1eWNleE9wMmJT?=
 =?utf-8?B?ZU1CblgxNkw0VjN0YjFuYUs3MkdnWHBGVlE4Q1lwTWZ1TVl1Qmw3a2Rqa0JU?=
 =?utf-8?B?d0w2TFk1OWZ3RmZuSmVlSjUwc0c4Mm1xQ0l2akFiNjgvT01IMlVlbUU2TkF3?=
 =?utf-8?B?ek9YSW9qSlpLM2FIYjNNb2lVN1NqQWtUTFVHV1pjSEhRaXF1Zks0cTI2S2M2?=
 =?utf-8?B?RUU2WlhaYXlQYXUxTUtrRWw0cUMwUXhsUWlDcWxhY2NXaENaRm9nWEYwSlg4?=
 =?utf-8?B?UWtWakRMOElUR3cwbHdnTzBWL3RwTjRPUU5LQUJ1MzBEWm9xdzRQUER5ZC80?=
 =?utf-8?B?WlFvTjdZaERsUm9BbWpNR3R2SFdjQ2ZKejIzcWJrajVjUFRTY1VNSnJpL1Vo?=
 =?utf-8?B?S0RtUTVqTlRGQjZkd0lRc0J0QkZHMy9zVlhRdS84bUs0OWNtOVpBU3pCVHJi?=
 =?utf-8?B?Sm56TG1iUEFIbnFKNStkVWJCdERDRmhoUmo0Mm9oYkJweFVWQ3kxTkRGczlI?=
 =?utf-8?B?UmtWMStlNEt1QnIzUEEwK21tUDA5bm9DUENjMHBJL0syZk1sL0RiODZsZU1B?=
 =?utf-8?Q?rBEA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L1BoMWZZN2hxZGtjaDJjYUNEcnlldHJjSnFnMlVsR0VreUdYS2plaVVkeDZ1?=
 =?utf-8?B?eTc0djFITnVic2k1UXhXQ0dxb0dsOUs4djlqM0JleUZoeHdQSmF0Rm82WHg3?=
 =?utf-8?B?V1orWlJoRkozVEdNdyt6VmVPdFBWU1BSV0R0cFVqa1J6ZldRQWFONkJuRStr?=
 =?utf-8?B?dXU2aEEvWHprVXlrVmdETnlsNFArSkNuR3BxS1liaG8vTHN3UlN2OVY3YWNz?=
 =?utf-8?B?ZmFtUmlXSEJTK2R3cVk2ZXFuNVMrTUtxb1BRakxLdGxoak0xL1NBUEIyODl2?=
 =?utf-8?B?RW84czRIc2dzS29NaDFhQTFvWHB1a3NEaldxY3pPaURmYzZlYVlJcmNMZERD?=
 =?utf-8?B?bzJjNmtLbWRsUjdVUHhMSTZSS0FySFFjQzNveFpCcFlTK1RHTHZiWHM3TzlD?=
 =?utf-8?B?eWc4N1pVM2FiZGhqei9BQUtPT3FjazNScVhPejNzYlN3cGZ1eUpyY05ONzZW?=
 =?utf-8?B?VU1hZ0tQaFRJaUJ0M25pOExlbXlza05FcUZaT2czamU5V1ZkV3RDTG55T21s?=
 =?utf-8?B?eGRaaDVOMmVFZzRRT3Z1ak1DQVJQMW9XK1JGZEhCYW5yYjlvdmdUT3daQjdH?=
 =?utf-8?B?TUh4M2Z3L1JSRFFzbUFaYzQ0b1M3RUxuamVpRmRPd0lCa01FcGhHL3lpcm8v?=
 =?utf-8?B?cm5vRTRraHFPWUZsN3hxdlphSjdzQUk1dkJ0dGQvSUhDR1lpQURVa1VNQ2Nh?=
 =?utf-8?B?VlRMUGh5YTF4dVMzeDZ0b24xVERpSCt0Z3Q2Vi9nYUNEcU5UclpIaUg3c3k5?=
 =?utf-8?B?ZFlSNUxWaU1URk5EUzhXMDdUd3JpMEw2ZGFtalZ3TkVkdFBrUGw0K2dCMTdx?=
 =?utf-8?B?MFZGY0VJZ3NHZE84djI5N1NBQzUzelpQVTd3WDFiOWtuQkNRNDdkZ1NTRXFG?=
 =?utf-8?B?VmhiK0RnMy9zbHV1RFN3alJHNzRvYnhNMG1RQWxnZk5NcmlKcktOUlhScVZB?=
 =?utf-8?B?Yk9BZmZkK3o0eHVBUVBkM3E2RFdoY2czVjM1MlRSY0k0M1MvZDhLNk4wOXZ4?=
 =?utf-8?B?SHV2NUwvNDBnZkM5NlFYSXdlYnB3Zy9UT1ZRZlpvdURwV1psYThHUUV2N2pI?=
 =?utf-8?B?emwyRjRlRGFFZDlnamdhSFFxclhNeS9qdHRaTlhNZFcrSE5jM0ljRlNLUitY?=
 =?utf-8?B?a2FKaXpPaml6NnprUW1Va2w3a05xaGU0WGRpNEZMRmk1VzlNQXAvQ0N4ZHNS?=
 =?utf-8?B?NTJMK094ay9qVVEwYTZydVY3VmVMYXpMc2xYZTJjUEQ0UWRESnRIaUtldFdG?=
 =?utf-8?B?UFVQTS9XUjJ5K1pFalpYQVNSdDd5RnFkZnF0K0VscEVUUXEzNXMwc3lsS3gz?=
 =?utf-8?B?ZnZGU29mTkhYU1prZ2UwN0k4VXhxWFV4cWtkVWFUaHVJeG81N1BSRlFvaE5q?=
 =?utf-8?B?SzljT0V6cm4zVk9LN1laSVZ3SFNUbUlGcmpPb2E3V2NQTFhiTzBGY29JNGNH?=
 =?utf-8?B?eERRMnlZZW9hWEVLV1FBZUZMM0ZxOFQ1aEdzSW5UbUdHcHlQQzAwM1lEaGhD?=
 =?utf-8?B?Wjd5b2dmWFBCZldZd0lDZGpNUVp1RHlPdGxuNXo5N29veUFELytCbVp6OGFR?=
 =?utf-8?B?ekV6ajgyTktNMVFSSzUvd3U4aC82UFArb2hILzNmMUh6REkxVlYyOVlzVlVu?=
 =?utf-8?B?R3ZwN1dvSGcvbmlwOTBCZVNKTHNUWGdTVW1IV3liaXd1UnlVR1Z0UHFDaEtR?=
 =?utf-8?B?bHJiZ0ZrNzd0MzNlQjA1ZDVYbWRxN3JDVGloVUdzdnMxRUhVeld3MHh6ZGFK?=
 =?utf-8?B?NEk4Vk9FanhPN3d5bFEvejd6RVNkdVlTZ3hvQm5rUlRIOXNDeDNKYWNVR2l6?=
 =?utf-8?B?alBqeG56WFJDWi8rTGh3dE1HbmxCY3NPZnJ5VXFsdHUxdE9VVTRQYW1mK2Vs?=
 =?utf-8?B?cEFuL2t3dWE0NEswM1ZYa3p3WklYYlBGaFRjKzE4TXFZalBwUnAwaWo0Z0dD?=
 =?utf-8?B?d3Nyc1JUQVRyTk5LaXJOL3lBVWphd25rS01WUUY2RlQvVGNiZ2xOTko3dmtn?=
 =?utf-8?B?Y2ZaZERRbC8vUVFwQ09DRDlnYUFDMXMzd2JhbUNLZzV0WkNQaGt0bVRwN3la?=
 =?utf-8?B?SEZQcnVjWWQxY3IrOURBMGV3OG9MMXlGQW83TnF2V2pBOTZZcUZSd3grUWZJ?=
 =?utf-8?B?cjRIbHIwUFp2UjZZZkkzQ0d3Qmwwd1lQanY0UEE0SEMrMWtpaEoxaUxMY1dm?=
 =?utf-8?B?NUpOcUtDSC9xeGU1THNmWmFuQkRwVi9Kay9rRVR5TE85blRsWXpoZ0JxNzJk?=
 =?utf-8?B?UDlESFJWTjNVQ0lRRmVzdzNaYXQ1T0NIdmczSTVSdVlKUnZVRVdpemFYVHk0?=
 =?utf-8?B?eHFGK2lBZEFJRjB3dnhUdng2V0pxOEt5UVluRmdWNmMvVVhFRktMUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dac4faed-fa5c-4bee-d281-08de64e5a6e8
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 18:37:44.6012
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rzkG0OEvmw25skSQnXI6h61wRt3H0aJq80iJi3LY3/8oiVipTzWrUWryhtefj/z7w+k4rC6oFTCd4FdtYwiPTQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7499

On Thu, Feb 05, 2026 at 06:31:04PM +0000, Andrew Cooper wrote:
> On 05/02/2026 8:03 am, Roger Pau Monne wrote:
> > diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
> > index 01499582d2d6..e3273b49269d 100644
> > --- a/xen/arch/x86/pv/domain.c
> > +++ b/xen/arch/x86/pv/domain.c
> > @@ -247,6 +247,34 @@ int switch_compat(struct domain *d)
> >      d->arch.has_32bit_shinfo = 1;
> >      d->arch.pv.is_32bit = true;
> >  
> > +    /*
> > +     * For 32bit PV guests the shared_info machine address must fit in a 32-bit
> > +     * field within the guest's start_info structure.  We might need to free
> > +     * the current page and allocate a new one that fulfills this requirement.
> > +     */
> > +    if ( virt_to_maddr(d->shared_info) >> 32 )
> > +    {
> > +        shared_info_t *prev = d->shared_info;
> > +
> > +        d->shared_info = alloc_xenheap_pages(0, MEMF_bits(32));
> > +        if ( !d->shared_info )
> > +        {
> > +            d->shared_info = prev;
> > +            rc = -ENOMEM;
> > +            goto undo_and_fail;
> > +        }
> > +        put_page(virt_to_page(prev));
> > +        clear_page(d->shared_info);
> > +        share_xen_page_with_guest(virt_to_page(d->shared_info), d, SHARE_rw);
> > +        /*
> > +         * Ensure all pointers to the old shared_info page are replaced.  vCPUs
> > +         * below XEN_LEGACY_MAX_VCPUS will stash a pointer to
> > +         * shared_info->vcpu_info[id].
> > +         */
> > +        for_each_vcpu ( d, v )
> > +            vcpu_info_reset(v);
> 
> Sorry, I missed something.  Reading this in full, there's an obvious
> (risk of) UAF.
> 
> put_page(virt_to_page(prev)) needs to be no earlier than here, or we've
> freed a page that we still have pointers pointing at.
> 
> In practice, I expect that the global domctl lock protects us from
> anything actually going wrong.
> 
> Nevertheless, for the sake of reordering the actions in this block, lets
> just fix it.

Yeah, I've already made that change.  At this point in the domain life
cycle and with d->tot_pages == 0 and the domctl lock held, the vcpu
info area shouldn't be updated in parallel to the bitnewss being
changed, but better make this in the right order.

Thanks for spotting, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 19:10:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 19:10:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222448.1530353 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo4kT-0006Xa-OS; Thu, 05 Feb 2026 19:10:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222448.1530353; Thu, 05 Feb 2026 19:10: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 1vo4kT-0006XT-Ln; Thu, 05 Feb 2026 19:10:41 +0000
Received: by outflank-mailman (input) for mailman id 1222448;
 Thu, 05 Feb 2026 19:10: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=kBVW=AJ=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vo4kS-0006XN-3L
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 19:10:40 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 58641c7a-02c6-11f1-b161-2bf370ae4941;
 Thu, 05 Feb 2026 20:10:34 +0100 (CET)
Received: from BLAPR03CA0125.namprd03.prod.outlook.com (2603:10b6:208:32e::10)
 by IA1PR12MB8587.namprd12.prod.outlook.com (2603:10b6:208:450::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 19:10:29 +0000
Received: from BN2PEPF000055DB.namprd21.prod.outlook.com
 (2603:10b6:208:32e:cafe::b0) by BLAPR03CA0125.outlook.office365.com
 (2603:10b6:208:32e::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Thu,
 5 Feb 2026 19:10:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000055DB.mail.protection.outlook.com (10.167.245.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.0 via Frontend Transport; Thu, 5 Feb 2026 19:10:29 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 13:10:27 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 13:01:31 -0600
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Thu, 5 Feb
 2026 13:01:29 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58641c7a-02c6-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dgE30Q9Q9fX/hHkzdUdjpssxu13J+1dvlooZo37aRdexNqlmR6M5g84RGoWreHwqaj3S2297tNXnJyA/QVpQ71lFKF5E0L0wa9SBcU8Cd1MKjXIFZOVxvF2QFJkwawrL4heYmDocX6U1baLVINafWCJQgtqoSr4C++sVO6JjFQWB5sk2tb3aytQR02S3HPH6ub2beMlMkvKsTzHIZNhG5D6u0qng2t6RRNc6vlcTm4C+kV6XZUHF6P1wQsiP6LgJlIPusF7BqRnUERYiegqUg4czimdmaI0LSz51XlAvYfDD02w3gzbKsHeyNNMoBzMHWxk1x2x+8saih/mz6Ow4Ag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6pkHT7YoWrdILM2KZRf860iYhK0mFrQlm9u5hTlgGD0=;
 b=PhSAR8YREbhU3iCLZ23AadrxwLOtDp1ZT/4OjUWG+kxIdFN9bsH7Ekvi6+gQW1wwTqe8ilMueld1UjoF8eKkyINsU+78No5dPPo22MlLHaD320h3lR0/nDefFSZW+U8YGitUv357/R9gAx18Iz38bolTnvbCQi14y0G+HIB+U6x7DvyAv7RhsExf8gZ7UVtmW3MgQfjx5eIpKPIT4r7SphT7g4sxv/GqZqlee8rbmfFAobNEvUbW9KewCGch5QrrXd7UKBGhXcc0UxNuwxJJ4M4c50mpXq3K8m7VUXfIS8JZFSIaZ7oCpId/MQsutpcRSk0pCz7boPJNe1EblPMfTg==
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=6pkHT7YoWrdILM2KZRf860iYhK0mFrQlm9u5hTlgGD0=;
 b=Qr35koLQ7CXLVmoKfJdsZHNaqQg8nFtZZijgCf+aQV0ZRLxCWf3eXqTxY164LLou/7Pw/8M728sknPAEIp8BiUiFoTjO3Lwuu0AU1JOkArJUMfS66ZuTXhRkRgsZGIhIXftgszQX0MiHRTsgds5tVJX+axrj4t6V6lW4UBr/vAI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@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] xen/arm: fix unmapped access trapping on GICv2 hardware
Date: Thu, 5 Feb 2026 14:01:27 -0500
Message-ID: <20260205190128.38716-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000055DB:EE_|IA1PR12MB8587:EE_
X-MS-Office365-Filtering-Correlation-Id: cb3923c0-f86b-4019-62d1-08de64ea39f5
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?pBalMKYHX5a4Z1gkHiTkzuZsJuBxNUcqrISTEn3zW1nOeTOyacwLEAsrToQk?=
 =?us-ascii?Q?E6wmpNa/vWdQeCjG0QvwEpY6KeO0Xvtt6dKWCCOry0aY4HPyeVRaN+7r2LJg?=
 =?us-ascii?Q?X1DmPoNSISQeFPzqjNKeg9Mc3bRKkkxTYVEYlcFC8vlj0wJaqxZtBr94HhwB?=
 =?us-ascii?Q?vnpJzanR02KnscPkvvlCO5SC+bqZxr31hinXAKR8PYEDGxvZavd/ED1ot7QO?=
 =?us-ascii?Q?vMxqZ6IrjpHlZvYQj4vaDZfe2u+hxA7d+ixIa8AYuIxaV30ge5lCOpV7Ikjr?=
 =?us-ascii?Q?RnV35wKKU+wicpu3ulTcRt9OernLZcOV1cxYtBxIUCC/nEfFo17u7MHurJYF?=
 =?us-ascii?Q?Z+oLCPF731HamdiL5vR/8W290p3O4sStpP6usrLSwXcYeg4IQjVtUro9iaJd?=
 =?us-ascii?Q?NoYCXJbLNX2wIDwTuu+vc6TNojpSgj1Ov2mLcp00uSMSVh7G80ASuUtQtiSR?=
 =?us-ascii?Q?qTd+B6TQcZ25WVpZqDFFH/i74KYLq9mjqZabNdE+W7diggWRmSR9PPPLXcBP?=
 =?us-ascii?Q?Ckh+5FNBg/ptg3/UY6NHYDlxJRzameMbcr5Ua0QLJUvr6W5rBcjUfm1jsvML?=
 =?us-ascii?Q?2oJORH3PxDbtCpWa5TkNZLBRV80hKrOt0t1zM9Wd4ZLRr3xp+5zsZyh7kZaH?=
 =?us-ascii?Q?iVkF9IsjAch3s79M6oMjukA3f3TB+QErY1b1w9qT+7JG8I8osDVOFYTwg4hl?=
 =?us-ascii?Q?hWEqWekL4lYhrfJGiiLMYqGgpRrw3eMYoWnZ+6BI0RhqHguKQ0KbnQ2LhGza?=
 =?us-ascii?Q?63eu+/xlYWpUpu65eEPDztJmfU67+VlCVGUyvGxPCiXQ3SANacsd6aTVrwq2?=
 =?us-ascii?Q?3jftte8H45orvFM1KW3VI8GHxPk+nLeBWRajJVLW8UYlXsfjnpZg0ZDeIxON?=
 =?us-ascii?Q?d8IO67DQ9BsHJeGaz4kqJPr0qyqOjabSZNfxW6USWx+/nUyYfVEYJYxg6Nle?=
 =?us-ascii?Q?ppaZWoCpUZ3wQgRRwfauNtH/Vog6Ui6jHZ7eogzYGC3Oti73zw4v4xR1+ocK?=
 =?us-ascii?Q?pbjZiYWgRXhX0Iz0MfJnvvenHD6kHf+HMPhp02IPJpRDRfs8R0v0H4kfos/X?=
 =?us-ascii?Q?lZFW1cAVlNGGkafgnRacGao2Cjdn8p5MNCPWToKaritXChdgd75PLSTEo/36?=
 =?us-ascii?Q?iVdU/1FZ2+xTZisDd6k27i8P4ZsHyGSQblZaaawr/HzAMrDUgrw4MunCwf5M?=
 =?us-ascii?Q?6XvYvQk8E23FFca+32B43CXPqNwuxYIg6nyFiOHIDWvyhgvJbAss1oekS3Ds?=
 =?us-ascii?Q?NiqZdMXfBaWivXl8/i89vfSMz/H6e/tWPjVVB/URaW6DbZkvmH2nCcI+YU2G?=
 =?us-ascii?Q?PaafD7WNwlEPtauLCe0I8ecl58H8t59QgwwSbiwcOMfAKHqJ8wlNuDcc3OGT?=
 =?us-ascii?Q?UL7Ryl+FYItAi2fDaDfL+SG7HOhN/atkq9SS8Nr/xtl7fl/YPRChK1S7ofvk?=
 =?us-ascii?Q?QpSXi60g68fvy8lhdXaolQqhKZGFW8lGTcV9u7V1H/iktOMDbb2GNd6Y7lVG?=
 =?us-ascii?Q?kRqFeje6GKScq2tcQwBDvCP8KAg2cz9L9N2rbtE4otjcEiRwoDYzvIpBmy3p?=
 =?us-ascii?Q?a8L0RisjpeJPESOYdbhTalVLk7sl7Z8d7G2jiPpXyd1OybC+VeNRFD3PlE3x?=
 =?us-ascii?Q?lQk3kPXQs1hwSw87kVI1hr+W1zkIr505KBM8cNvQdfnK?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	oZZpie3V3KMD0f0CVryaanGX7cHG58JPTYYYVb56to3KzcHp35Z0UILNlAUCkaxXaKYQWiwsUpVU25EQAU8rWlzTMvz+fKaGatQB4eG37GTn7ItBZZszpQlWbZolxtWPTExtXmfdrefY6no4Cw/XIHZdPIsDtmXE04Acz2gcDq2xyQTi2fIcr6GBgZWN/0DbC3G0D0eFOOIFIoxz2t0xCZ/LF4o7h6KWjGu4qM/yXXqv4G4AJqQkZDWLFQoE6LXQeRpPTcxVxJpG9txLMEGqJCZHhDrWdXyBRH21OTtFLt8/GoUSJfEL3TS5cFzv6zXNVRzBeVR0rpVYPIaCd+U1LpCN+tlzPeqEkeBZusl5cd/8S0eFU4tnFj9XwBJVw6dYaqsL31DM3aIA9aSjiT25ZK1/iTiSIEvimdDngHhsZxxwOsB257mXpOaZtBX+Z75q
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 19:10:29.0285
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cb3923c0-f86b-4019-62d1-08de64ea39f5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055DB.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8587

Since 4dbcb0653621, the vGICv2 CPU interface is mapped in a deferred
manner. On domains with XEN_DOMCTL_CDF_trap_unmapped_accesses unset on
GICv2 hardware, the vGICv2 CPU interface fails to be mapped. A visible
symptom is that a domU gets stuck at:

  [    0.177983] smp: Bringing up secondary CPUs ...

Move the 2nd check_p2m earlier so it's prioritized over try_handle_mmio.

Fixes: 980aff4e8fcd ("xen/arm: Add way to disable traps on accesses to unmapped addresses")
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
This should be backported to 4.21.

Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2010469665
---
 xen/arch/arm/traps.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 040c0f2e0db1..0c01f37ad6b4 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1915,6 +1915,14 @@ static void do_trap_stage2_abort_guest(struct cpu_user_regs *regs,
         if ( info.dabt_instr.state == INSTR_ERROR )
             goto inject_abt;
 
+        /*
+         * If the instruction syndrome was invalid, then we already checked if
+         * this was due to a P2M fault. So no point to check again as the result
+         * will be the same.
+         */
+        if ( (info.dabt_instr.state == INSTR_VALID) && check_p2m(is_data, gpa) )
+            return;
+
         state = try_handle_mmio(regs, &info);
 
         switch ( state )
@@ -1939,14 +1947,6 @@ static void do_trap_stage2_abort_guest(struct cpu_user_regs *regs,
                 break;
         }
 
-        /*
-         * If the instruction syndrome was invalid, then we already checked if
-         * this was due to a P2M fault. So no point to check again as the result
-         * will be the same.
-         */
-        if ( (info.dabt_instr.state == INSTR_VALID) && check_p2m(is_data, gpa) )
-            return;
-
         break;
     }
     default:
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 05 22:09:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 22:09:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222540.1530363 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo7XO-0001BK-Oo; Thu, 05 Feb 2026 22:09:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222540.1530363; Thu, 05 Feb 2026 22: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 1vo7XO-0001BD-MM; Thu, 05 Feb 2026 22:09:22 +0000
Received: by outflank-mailman (input) for mailman id 1222540;
 Thu, 05 Feb 2026 22: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=l0Ed=AJ=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vo7XN-0001B6-F8
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 22:09: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 4e7341f9-02df-11f1-9ccf-f158ae23cfc8;
 Thu, 05 Feb 2026 23:09:15 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id AFC6D60010;
 Thu,  5 Feb 2026 22:09:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0486EC4CEF7;
 Thu,  5 Feb 2026 22:09: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: 4e7341f9-02df-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770329353;
	bh=V9dFLTZQkqWpJ3YszT3cuHPxhfkzSeZqTHI4J6BzA/w=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=chKqnAXC1YmgMSWLq9I7uASagoeYHlcrQaEuqMn7uPD5Xj4AX6WFiG3JBiwa34Hq+
	 91xHgt5vjyYTDD0DCoDOA5a9dnZbQ96dteNWLq6XJUKWHc0BJr2BMFK90/MZVSpd2B
	 PyJkkgfEQPkVk9npJKlw/SitrNGb9ao9ZEtyHOOxvWfXtMhQ1w95JD9Cp0nmTr1lfp
	 RD6RycqR2CJCY1TF0+2dvsBMt3k0SmLM0Xj29HdFw5k4/emyPqsRzRczmm7u5XoPny
	 SCWo5hE5NMGWEYF6dy2O0ugbRiBg9dKggTFKI0tcq3nh00U4/bjyyE4cOLLO1yUUqE
	 9Z93+3V6f8E1A==
Date: Thu, 5 Feb 2026 14:09:07 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@xen.org
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    xen-devel@lists.xenproject.org, grygorii_strashko@epam.com, 
    anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org, 
    roger.pau@citrix.com, jason.andryuk@amd.com, victorm.lira@amd.com, 
    andrew.cooper3@citrix.com, jbeulich@suse.com, sstabellini@kernel.org
Subject: Re: [PATCH v10 5/5] xen: enable dom0less guests to use console_io
 hypercalls
In-Reply-To: <aYP76EsG3bf3Yp4I@kraken>
Message-ID: <alpine.DEB.2.22.394.2602051403060.3397030@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop> <20260204233712.3396752-5-stefano.stabellini@amd.com> <aYP76EsG3bf3Yp4I@kraken>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Wed, 4 Feb 2026, dmukhin@xen.org wrote:
> On Wed, Feb 04, 2026 at 03:37:12PM -0800, Stefano Stabellini wrote:
> > Enable dom0less guests on ARM to use console_io hypercalls:
> > - set input_allow = true for dom0less domains
> > - update the in-code comment in console.c
> > - prioritize the VUART check to retain the same behavior as today
> > 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> The code looks good, just one remark wrt prioritizing VUART check.
> 
> > ---
> >  xen/common/device-tree/dom0less-build.c |  2 ++
> >  xen/drivers/char/console.c              | 16 ++++++++++------
> >  2 files changed, 12 insertions(+), 6 deletions(-)
> > 
> > diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> > index 840d14419d..cb7026fa7e 100644
> > --- a/xen/common/device-tree/dom0less-build.c
> > +++ b/xen/common/device-tree/dom0less-build.c
> > @@ -829,6 +829,8 @@ static int __init construct_domU(struct kernel_info *kinfo,
> >  
> >      rangeset_destroy(kinfo->xen_reg_assigned);
> >  
> > +    d->console->input_allowed = true;
> > +
> >      return rc;
> >  }
> >  
> > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > index d3ce925131..7f0c3d8376 100644
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -610,11 +610,20 @@ static void __serial_rx(char c)
> >      if ( ACCESS_ONCE(console_rx) == 0 )
> >          return handle_keypress(c, false);
> >  
> > +    /* Includes an is_focus_domain() check. */
> >      d = console_get_domain();
> >      if ( !d )
> >          return;
> >  
> > -    if ( is_hardware_domain(d) )
> 
> Hardware domain on x86 may have an emulated UART (not in upstream, through,
> I need to send v8 for NS16550 series...). The patch which illustrates the
> idea:
>    https://lore.kernel.org/xen-devel/20250908211149.279143-2-dmukhin@ford.com/
> 
> So this code (hopefully soon) will need adjustment again.
>
> I would update the code to something like:
> 
> 
> 
>     if ( is_hardware_domain(d) && !domain_has_vuart(d) )
>     {
>         // handle hardware domain
>     }
> #ifdef CONFIG_SBSA_VUART_CONSOLE
>     else if ( domain_has_vuart(d) )
>         /* Deliver input to the emulated UART. */
>         rc = vpl011_rx_char_xen(d, c);
> #endif
> 
> 
> 
> But domain_has_vuart() needs to be defined for all architectures
> (currently it is hidden in arch/arm/vuart.c).
> 
> Or perhaps it is possible to postpone the change?

This change is needed to avoid regressions on ARM.

However, while I wouldn't be surprised if we need a change here for your
upcoming patch series, at the same time at the moment I don't see why
this check wouldn't work as it is for you as well.

On x86, CONFIG_SBSA_VUART_CONSOLE will never be set. It is OK to do this
first:

#ifdef CONFIG_SBSA_VUART_CONSOLE
    /* Prioritize vpl011 if enabled for this domain */
    if ( d->arch.vpl011.base_addr )
    {
        /* Deliver input to the emulated UART. */
        rc = vpl011_rx_char_xen(d, c);
    }
    else
#endif

It shouldn't hurt. The is_hardware_domain() check is also not necessary
anymore because any necessary check would be part of this check above: 

      d = console_get_domain();
      if ( !d )
          return;

So I am guessing that your series might actually leave this code
unchanged and instead might modify console_get_domain() or
max_console_rx.



> > +#ifdef CONFIG_SBSA_VUART_CONSOLE
> > +    /* Prioritize vpl011 if enabled for this domain */
> > +    if ( d->arch.vpl011.base_addr )
> > +    {
> > +        /* Deliver input to the emulated UART. */
> > +        rc = vpl011_rx_char_xen(d, c);
> > +    }
> > +    else
> > +#endif
> >      {
> >          unsigned long flags;
> >  
> > @@ -633,11 +642,6 @@ static void __serial_rx(char c)
> >           */
> >          send_guest_domain_virq(d, VIRQ_CONSOLE);
> >      }
> > -#ifdef CONFIG_SBSA_VUART_CONSOLE
> > -    else
> > -        /* Deliver input to the emulated UART. */
> > -        rc = vpl011_rx_char_xen(d, c);
> > -#endif
> >  
> >      if ( consoled_is_enabled() )
> >          /* Deliver input to the PV shim console. */
> > -- 
> > 2.25.1
> > 
> > 
> 


From xen-devel-bounces@lists.xenproject.org Thu Feb 05 23:19:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 23:19:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222567.1530375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo8d9-00011B-T4; Thu, 05 Feb 2026 23:19:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222567.1530375; Thu, 05 Feb 2026 23:19: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 1vo8d9-000114-Ow; Thu, 05 Feb 2026 23:19:23 +0000
Received: by outflank-mailman (input) for mailman id 1222567;
 Thu, 05 Feb 2026 23: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=0nnC=AJ=intel.com=sohil.mehta@srs-se1.protection.inumbo.net>)
 id 1vo8d7-00010y-UI
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 23:19:22 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1567f03b-02e9-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 00:19:15 +0100 (CET)
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Feb 2026 15:19:13 -0800
Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90])
 by orviesa003.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Feb 2026 15:19:12 -0800
Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by
 fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35; Thu, 5 Feb 2026 15:19:11 -0800
Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by
 FMSMSX903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35 via Frontend Transport; Thu, 5 Feb 2026 15:19:11 -0800
Received: from CY3PR05CU001.outbound.protection.outlook.com (40.93.201.43) 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.35; Thu, 5 Feb 2026 15:19:11 -0800
Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14)
 by DM3PPFFCD58DF03.namprd11.prod.outlook.com (2603:10b6:f:fc00::f63) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Thu, 5 Feb
 2026 23:19:01 +0000
Received: from DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246]) by DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246%4]) with mapi id 15.20.9587.010; Thu, 5 Feb 2026
 23:19: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: 1567f03b-02e9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770333556; x=1801869556;
  h=message-id:date:subject:to:cc:references:from:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=MkXPYVSbwwCL8U4F4DhKWK/BELaYFx9XW3TfLne07fw=;
  b=VBKOoDBZLMZa4V7/CgM59zjRo6Arrp4vJLi1qEHcwnhHwcSyl9XMLkY/
   j2i5+W0j6vADzxdWWTNPxBkzueBRiDCAsRYUmGXoS9ANefEunwkOvSnHr
   DW73KOypsBmEaA9ldRWSXa2XZNr3xVY2S+epQTO8A6lmtnTpugnA1Nkit
   JKRIucWYZ97i4owj6DBPQNyXtmo/crciiQxInySKgEA1CZvNRKGmtZg5i
   gH7pyUoE6A4qb0RgcPuymxbZIOxindXVsK3l/94/2XZtVfBRPqVVJZtpy
   IsLI7j9RvOuv40ulsi/ig6R0ThbZKC01i0+AxmGZ3iXei09bwQnEpz7S8
   Q==;
X-CSE-ConnectionGUID: SVGQvZJJQMGOWLBdmSwDlA==
X-CSE-MsgGUID: SE4n8dD8S8iucdeW5zWYUA==
X-IronPort-AV: E=McAfee;i="6800,10657,11692"; a="81859624"
X-IronPort-AV: E=Sophos;i="6.21,275,1763452800"; 
   d="scan'208";a="81859624"
X-CSE-ConnectionGUID: 4B3CXN0nSWOu0HJ21Cd1cA==
X-CSE-MsgGUID: SPTKkRioRp2ZtP7ueO3/Fw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,275,1763452800"; 
   d="scan'208";a="214865519"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iQG+ot4HA3wruWJI9B2wcbKcJHZDyeO9YeWGUgUUeDWxJDJIfxkmaSyRn5wMwYWAmn8X+H4cseTdiQNd01DQ76VnXJdi3maCwaKqETu0sJ930RnOw+IVFbdUSV1jzWg/g0BgBjp565x8B8knL2NCgOTXIkAGHbg/XoEQA6nZ32LwuxM3o//ZfjiB72n66JdUYKSUmnrYNP6ZoTLu/iWwJl3P9dxw2/D+FSWUaVLpZQBgv29ETxkJ1JE9nFQe4qm9Ak+VvcK6V01cQFxpME/arTGLKB+A1B4xfdshNr0Rk4HTXyY/YFFIBLQyG+EdYj7+B62mez34JTrwvi8burI/9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yQXzAbtpax9zPpXJ4r1zmO2CANMeD936wVXls9EZKA0=;
 b=rS3dTsr2J3ZGc9ZWQjHYGETceZACn12QrFdop1YC0HRbmxvA12xuVaCSR3H/fWsblPRZn0EIQWOP+aiOQn8nm8ime7h83mq0MlGOc75xEDoGDWROVZcAeEEdY6v0kNPOG4f9MHpZoLyHvrI1rEkreD/whZUudkwB8LTtyUXr3FlIbDvlWtqLHcOseoE0FDMzmBYvx7CkVg6nk16fAvXUDsbP2TeSmXVuSUUarp735zJxlIDvsHmoHmCWXjN2HA0eeDDO+pTAwiYI/XyqCImLi8ldUE+n94uU/WVGz3ErArle2TC67raNQrvQleBEqYDzUASaYoqwg99aVM4y9tj9RA==
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: <e5ac3272-795b-488c-b767-290fd50f2105@intel.com>
Date: Thu, 5 Feb 2026 15:18:58 -0800
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Content-Language: en-US
To: Shashank Balaji <shashank.mahadasyam@sony.com>
CC: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
	<x86@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>, Suresh Siddha
	<suresh.b.siddha@intel.com>, "K. Y. Srinivasan" <kys@microsoft.com>, "Haiyang
 Zhang" <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
	<decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
	<ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Ingo Molnar <mingo@elte.hu>,
	<linux-kernel@vger.kernel.org>, <linux-hyperv@vger.kernel.org>,
	<virtualization@lists.linux.dev>, <jailhouse-dev@googlegroups.com>,
	<kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>, Rahul Bukte
	<rahul.bukte@sony.com>, Daniel Palmer <daniel.palmer@sony.com>, Tim Bird
	<tim.bird@sony.com>, <stable@vger.kernel.org>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
 <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>
 <aYMOqXTYMJ_IlEFA@JPC00244420>
 <722b53a7-7560-4a1b-ab26-73eeed3dffa5@intel.com>
 <aYQzhRN83rJx6DSb@JPC00244420>
From: Sohil Mehta <sohil.mehta@intel.com>
In-Reply-To: <aYQzhRN83rJx6DSb@JPC00244420>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR03CA0355.namprd03.prod.outlook.com
 (2603:10b6:a03:39c::30) To DS0PR11MB7997.namprd11.prod.outlook.com
 (2603:10b6:8:125::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|DM3PPFFCD58DF03:EE_
X-MS-Office365-Filtering-Correlation-Id: e7f12305-7a9c-4a40-c694-08de650cf272
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|366016|376014|7416014;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?eW1CdzBVcXJJdzJuZXVEOEUxRlMyYVNPNXdHWlAyN3BTOXZsZFdnMTNmeHB6?=
 =?utf-8?B?dlJDNmE5TmQrR3VXRkYzalMzU0d6eTBtQWxScFptVXU1NVZGeWVNMUJseXFy?=
 =?utf-8?B?UThobnJycFhaNFhGSFJHUHZHY25UTDltd3ZNSGRnYVRpZDNCcUR3aHdPTVBQ?=
 =?utf-8?B?YzliRmdGWXNGV0Q4Z211bWxSL1FDUWloVGVRNXM0cFQzTTJSUUFGYyt6c1p5?=
 =?utf-8?B?RGdFSnNpdVpBbGhaK1RYbWRjUXE3Vlk3Yk94VjdOc2h2NkxHRzlvckFZc1ha?=
 =?utf-8?B?cW9jajk0Z1ZkK0Vud2pDYmEwOXNQT1VGT3FMdk9TbzRPc0JRTjJwT1Q0aEFF?=
 =?utf-8?B?WnFVM2hsOXJZMUZEck9vRVJsUHNHY1VpQWpraVYxeEVPS3RzNXFoV3FsYVdV?=
 =?utf-8?B?K0NkaUl2R0ZwTy92VFhVQlo0UGF1RVZ0WVY5aHhDU3dvTytVM2tXT2NDWHNt?=
 =?utf-8?B?VnBUWmJrN1ZkZ2lFQ2NwbVd5WlQwU0sway9GZ2F4MnRiWlF1eFRqa0pseGky?=
 =?utf-8?B?VzBwOHpPMXc0Q0tkOWdiRko3VG5keVNyRG1HWFE4VXZrUGlFN29rYXA3SDhG?=
 =?utf-8?B?M0J5TjNucE5KQ1Z0anZIWHkwY29rLyttcVl2Ny9jMkZpN1ZHZ0lsTy9nUVhV?=
 =?utf-8?B?OXkyOXNKRzFhQjJqSHpVWmNPbktLWmx6OFN6ZjIwUzNuZnZyUjdpUG5UbDNV?=
 =?utf-8?B?T0pZUXFXbVVvemVNWEZ4UkFjVmp1V3dPc3FudTFNcWVNbXVMYm91THozd1JK?=
 =?utf-8?B?MDRJNi9yRFBkenEvUStKaEVHMCt5anNkNkhpU1Zwckd3YTdUK2lRcElocWV2?=
 =?utf-8?B?NHI1MkhuNC9DWVc1L3h5VWRsZC9KaUViWXJtTU5XOGh4akIzekhya0p5Uk9E?=
 =?utf-8?B?SzNEVWlBM3FnRDFrdDI0ZWpMMWN6SFBmSUZ0bldxZExhVUNJZFpFeTdNbnZF?=
 =?utf-8?B?RFZJUE1zQWJxdmxmNVYxRkV2S3pVOHFWMFUvd2tNVHpWS3hCWDJZYVBHclZr?=
 =?utf-8?B?UEU4OUtQaEpLWUFiODdzK1l0akhtS0dyeEptL0NlWlk5cFRHdHJvQnNqVHlZ?=
 =?utf-8?B?ME02eWxTT1AvY1I3cGFndGdwVjFBMHc0Ty9BRFNoM25taW1uWWRwSTI3b3Bq?=
 =?utf-8?B?cEVnczRzYmJ6c0YwaXozRlFIUjBuR01GbmRCS21xUHpSdkErdENZeHNEQkFQ?=
 =?utf-8?B?TnRydWQ2S1Y4VDBaYzVKUlBIcElDbjh3SWhidHBrZkR2RzdITldlbWVEdGph?=
 =?utf-8?B?K2E3aUx3WGpjVDB1TjBZdWRPMmhrU25JSDR4NFpseWc4QnUzVEMxY3M4U2Z2?=
 =?utf-8?B?ZzlacExnaGNHUGVRbEdValp0K1dUNzJsWGtXcGxpK1pzd3ZmN0Y1ZDk3QWNB?=
 =?utf-8?B?VlI3ZHc0QVdlSHByUXBpR05PTkRRNmIvZUdDSHAvYVBCSStJQ3J4ZGxrQTZT?=
 =?utf-8?B?dHVLb1NjQ1lkSWVSa3VDeHlsVnc0bEk3UVltZlJJV2dPRll4Q01uSjJrdkpS?=
 =?utf-8?B?RVB6SXIydU1vdEQ5NEU4RCtWNENLTEJja3VvZk5GK01pdjEvVzdUMm9hZnJS?=
 =?utf-8?B?dWw1dWVlOVV4MkhEWTdoZXJmeUJSNGxDRy8rcDJabzdob3JLWWFjVEl6dzB6?=
 =?utf-8?B?NWhMbCtrbUFVWFVTRVNQeEd6dktwUUFsN1FaK0JtcC9Kd2x5NnJzN3V1ZnE5?=
 =?utf-8?B?aUI2M1lmeWNiTUNqVGNaa25OTWxNT2xBMzF6a0p2alJKNmFHYjA3VWtLaFFm?=
 =?utf-8?B?cUdmZDJrQVZzWEtJNUNLTjRrZlk2b3ZrRmZ5WmxXSHgvOS8wTWRBcnlpSUlo?=
 =?utf-8?B?K2kwcGxBQktXaG5QZWNPQ08rdjZaVHZWNEVHNkVNRW9uVWpVcmU1ZE5SZkZP?=
 =?utf-8?B?ZEFOcTBuMktOcnFKTXRMN3JxYW11MlduRTBWZXJWcW90VlhvRzhoVVIrRStL?=
 =?utf-8?B?WTlLeFdmSklCSWh4ZUlEOFJWY0N3WCtoUGpTeDNZcVpWREs5WXZvZ2Q5SWF4?=
 =?utf-8?B?K21iWkt6RHdMdThXTGJhSFhMSTVEcFRZSXVWcXVOeGVOR2tIS1REZ2pmWkZI?=
 =?utf-8?B?bE1zdHRPeWsxbENLbGhOSUdMakhJQlBpWEczMFNzUHYvNGdOM0REandhRWhF?=
 =?utf-8?Q?w88pHEZmkZqbO9e5hh+xzrzlz?=
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)(366016)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T1VRZ1hMdmdiYkRSLzFMenIxTEdpdGNLSnZScEZTNHRLNGZVSm5tcFBqNkU3?=
 =?utf-8?B?N08zemZWaW4zWVJKQVNZUEVEVEplTGl6cktQeU1ISUhPS2dZQzRpUWViTkha?=
 =?utf-8?B?VHM1M3lkUVBzaDhMbWdjR01CUng2WlRNSXlLU3lxc0NUWlBvMlpTTHFIS283?=
 =?utf-8?B?aWVMMVRQSzVKY3BwbWpsUzhTMXdqd3FiTjgyNFArdm0yajRKYm5UakF2d2NF?=
 =?utf-8?B?b2FOOTNZenp4bjZYaTJ4cUIzRU11Y1QwRmRYREVjQlBXeE9YcjZGQU9UOWVY?=
 =?utf-8?B?N1hMUmZ2a2dpVjRmV2ZqcG9yRnZUSlpsVHErb3lMZkpvT1NscW9Md3NwU1Az?=
 =?utf-8?B?TkNoWmFOU3Baalp4S1N1b3BWdGU4MjJSVEpCRnRPaFZMZ3ZPRGtFUzJsS0g1?=
 =?utf-8?B?UXRFK0hwVmdFK1Mxb29FU1p4K3FWRWw2dmhqNVVGSmo2NnlRMm93T3NSRVNL?=
 =?utf-8?B?MEFwOTI3eFJqaU0wcGdnUyszQ3VtZDNCZUpLSHkrZWZudmF3S3ZxbFUvZmdl?=
 =?utf-8?B?aUtoNU5xUC81bEZYNHZMeHdaY2Iwdi9uZ0VTcUpNVUpTU0ExU3Q4OGZtcVJt?=
 =?utf-8?B?STFkZzRBWlZza0gvU2RneWl3YVl1TjdIcVVHTGhsSHUwQ25tVFo2emd6TWQy?=
 =?utf-8?B?OFNDbENyZHRUTUpqcW9icm5KQmVFY0VXT01jOVdYSEdhandXVURPcGpBd3Vv?=
 =?utf-8?B?L25MUHVDY3FORFFkeG1FQ1N0V2ZGVzFKSUdiYklKTG0zMXNXVWZ4MU5xZ2RI?=
 =?utf-8?B?ZnIvR0M3NGVnVm5oN1QxQ1kxYjEwejIxYi9XMU5nZGxPSElqTGh2SU8wKzVO?=
 =?utf-8?B?aHcrcU9JZlhIa3ZINmdvUGNtTko3N2c3RWFReWJNYml5cXlRbkozRjg1ZzF0?=
 =?utf-8?B?MHNpdWFkSUtPdXUySkdITkJKK2RzWFRxSUtPUHBKTk0xcDBxVnBjUnFQL3Ew?=
 =?utf-8?B?UldkblhqTUhxa29Ed2dGRERJQjFOalZGR3dJaUk0Z2RzOVJGNkV0SDhmcGxY?=
 =?utf-8?B?VGR3NjB6RllobDlEUFgzdWdyRloxQWNOMllEUitQd0xuc1dqWi8xMkllNUp2?=
 =?utf-8?B?bWI5ZnM0V21yMkJIRDBUcUxiVnlqUzBkWkxoRVF6RVB2eWdDVXZ4Y2FHNkZt?=
 =?utf-8?B?V1o1VHBwT25LcXphakhNMDQ2WGgvM2FRV3hna0ZXSmtlcmZuNy9BbW42ckZB?=
 =?utf-8?B?NEQxL1FWem80NE95aWlUNWtjZGhlSlF5OHpOT2tUMXVIK1hiZU53QkUrRVh4?=
 =?utf-8?B?bnYzVGpKQWN5aGVpY1dSbVljYTlOV3A0eGczeXI4aEZSNUdxVnRXZUVpOXVq?=
 =?utf-8?B?ZFVjWThuSEFRbmRDTFRmK0EvQnA3QXBXcXhhQXJ5aHJma1dZdjdXUDk3M0Zw?=
 =?utf-8?B?UnBRcEwvc3VsRktvcDZENkNFYVhxdDFodWUxOHdOV2plNlNXWWp1cUsrYTlx?=
 =?utf-8?B?WUd0TXZhM3I3Z1NoZFVSaUZEelpmTnYrL0VONjdzc3Vna3R2NnFqZ3hMenE0?=
 =?utf-8?B?aWFlbE1LWUp2aUlmbnZ4UzB5ZnlidS90anhEQjhVK3B6SGdVSWJQUkNKVnd5?=
 =?utf-8?B?Y1JhTGNaZVVqOEdnYW5Ha3NPZkFaanpOVkkwOFdsQlhxVVRGVWVxSlVyOGIv?=
 =?utf-8?B?NndvLzhCNjJCZHM1UUNiWDFvaXJYRDdFcFpVR1k3TkRNRWZsdkdvVytIQ3hv?=
 =?utf-8?B?RVdpd1dxVEx3SVk2T2llRDB2OUJ5UTV1Y25JckorQXhEcWJ5dWZDd1lPTEx2?=
 =?utf-8?B?YURCUzV5Ukd5K2ZKRThTY3JkbEJwV1VCdHJjeHdiTDN0YWNScnBRWkJNZXlH?=
 =?utf-8?B?dFZ1L0p1RGlqZXRMcllpdnpubkNvOFpJVUh5eVU4UEJERlNVRHdOeEFraTRX?=
 =?utf-8?B?dmtSYzZaNVVXazlmTmFoME81dkZFY0l3M0dPU1hpTS9Yb3FzeVZ6NEZ2NkVq?=
 =?utf-8?B?K01jUHJUUjc0dFNycllvTURwVFFqc0VvcUxJSjJJRUphNFRteEE2aVl4bDlH?=
 =?utf-8?B?UWVzc1BhUzhNc2xjQ3JLb1B3ci9nd1paTDdwRWxVT3NVbXdncGpaQTVTcWpP?=
 =?utf-8?B?UloyVmx6V1JzL09IRVREQTJ4QXhMdmdjaFNMQ1FoSC9mRTFYOTdaZ3FKek03?=
 =?utf-8?B?OW53cnd2VHY4dHlyNWYrSElOazI5VGJHTDVHWnBtamtyR0NRUVQyZk4zTVQ5?=
 =?utf-8?B?Nmc0QkJ3SGN6MXd1QnRySkUvSkhDOEs4eW1tVkxBR0FhbUIwZGZTM3hqWWt0?=
 =?utf-8?B?ZnhIcUNHN2dNcENiMXdPemNiSTl1ZWNDd2dZbkJKZUZsZjdQVkRBTEFSZElu?=
 =?utf-8?B?UGdOaHcvOVVhdHpsQ21zamNwUEs3VUxXVXk1TDNFOVZNSWU0R3lFUT09?=
X-MS-Exchange-CrossTenant-Network-Message-Id: e7f12305-7a9c-4a40-c694-08de650cf272
X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 23:19:01.6520
 (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: dTFCq32cpV+ZjSdGIL/mbp6eMvFEZEVUuO2LFRexjDbt1z7YxIY7ti2eKKNAnK/cdeGLAN2BHKS74lJ7xZivlA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PPFFCD58DF03
X-OriginatorOrg: intel.com

On 2/4/2026 10:07 PM, Shashank Balaji wrote:
> On Wed, Feb 04, 2026 at 10:53:28AM -0800, Sohil Mehta wrote:

>> It's a bit odd then that the firmware chooses to enable x2apic without
>> the OS requesting it.
> 
> Well, the firmware has a setting saying "Enable x2apic", which was
> enabled. So it did what the setting says
> 

The expectation would be that firmware would restore to the same state
before lapic_suspend().

>  
>>> Either way, a pr_warn maybe helpful. How about "x2apic re-enabled by the
>>> firmware during resume. Disabling\n"?
>>
>> I mainly want to make sure the firmware is really at fault before we add
>> such a print. But it seems likely now that the firmware messed up.

Maybe a warning would be useful to encourage firmware to fix this going
forward. I don't have a strong preference on the wording, but how about?

pr_warn_once("x2apic unexpectedly re-enabled by the firmware during
resume.\n");

A few nits:

For the code comments, you can use more of the line width. Generally, 72
(perhaps even 80) chars is okay for comments dependent on the code in
the vicinity.

The tip tree has slightly unique preferences, such as capitalizing the
first word of the patch title.

Please refer:
https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#patch-submission-notes




From xen-devel-bounces@lists.xenproject.org Thu Feb 05 23:51:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 05 Feb 2026 23:51:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222591.1530384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo98U-0005sb-5g; Thu, 05 Feb 2026 23:51:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222591.1530384; Thu, 05 Feb 2026 23:51:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo98U-0005sU-2h; Thu, 05 Feb 2026 23:51:46 +0000
Received: by outflank-mailman (input) for mailman id 1222591;
 Thu, 05 Feb 2026 23:51: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=7khk=AJ=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vo98S-0005sO-5S
 for xen-devel@lists.xenproject.org; Thu, 05 Feb 2026 23:51:44 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9caaf6da-02ed-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 00:51:39 +0100 (CET)
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 615HqIDu018123
 for <xen-devel@lists.xenproject.org>; Thu, 5 Feb 2026 23:51:37 GMT
Received: from ph7pr06cu001.outbound.protection.outlook.com
 (mail-westus3azon11010067.outbound.protection.outlook.com [52.101.201.67])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c4baycky0-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 23:51:37 +0000 (GMT)
Received: from SJ0PR03CA0073.namprd03.prod.outlook.com (2603:10b6:a03:331::18)
 by MW4PR16MB4630.namprd16.prod.outlook.com (2603:10b6:303:185::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Thu, 5 Feb
 2026 23:51:33 +0000
Received: from CO1PEPF000066EB.namprd05.prod.outlook.com
 (2603:10b6:a03:331:cafe::a) by SJ0PR03CA0073.outlook.office365.com
 (2603:10b6:a03:331::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Thu,
 5 Feb 2026 23:51:33 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CO1PEPF000066EB.mail.protection.outlook.com (10.167.249.7) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Thu, 5 Feb 2026 23:51:32 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 615NSiEL1197009
 for <xen-devel@lists.xenproject.org>; Thu, 5 Feb 2026 18:51:31 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c21ngwf3h-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 18:51:30 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id o98Dv4VsqlOqbo98DvTVoB; Thu, 05 Feb 2026 23:51: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: 9caaf6da-02ed-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=Lm3Syi2mpyRFVC0nxFXuSE47y
	+pIAzSatJzFQPa0JVs=; b=fyeZPsGEdmkn43ToBLjVY97//x85uR4fkHOhUwb1F
	YOlnRXJFfT1lXOotADaHHZp8cokJTIJf5onnfhu2tvaeAGysqL8HON8cnY9SqC23
	DtDTgwRpn9K7y0zEf5mVcDkjy5fCJvF7KcOvJaOKos/JIc6Gyg4nulPs7aCkPQeF
	tTM9O3YAGsNao5u9UFKd2wdQhJbevkTYtVWc8qs4nE0UiEOX/G5tW9pXSUd/iriK
	2KqD42a3Suae6BZRkK9051kd+4KUntmWCMc4KQ5ezH1QUcEI5l8Hr3S/iVWGfJve
	Ra0ITSAhRoZT9dFohihPfNIHrU8AzPYESiGhMb/ZEtixg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G9F0F+gVbTCYg5Qx4TxIGgzmriXmxCkedepQw4ksWRArarDsa5QXrW+2rF+uz5hr5FlPQSFBGn5wT65Q5sBn5t3dncbitNBxUTOxJ4+fg2si/bZEyNvo5lNhupnuxzplOlC0jplEp9xz81Bzb81NIrTZFW138R1U0VSoJVvH/UlMJpX1r8SB63KFMjQdTpaFo1KNt3lF+ctZdw8//TnxkBaWZV/llmgIG/Ukd1zh/voM0hDOqqP9ycNmsXd+XEUksJ6O/N9BbPhCFYt3BO8/ce8v17GXLM0Ojq6PgzG6h9+SQIxZK+CQlMCgMA6c2k/ietsIfQgDiq4cmu1iAHRIkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Lm3Syi2mpyRFVC0nxFXuSE47y+pIAzSatJzFQPa0JVs=;
 b=XhrAOtz/vnrW2P81bgoJi8hHtqbk+WJZwKuRkuxZqWj+cN31XP0RN/wG98gOpIA0hieYrKc9puox1dcMzr1Ctsz25lRk5pyhfPX/FCfHGWpYlqeTvVgZ03lHHVoLavqzLhnhH1DdWKmOiwHKVosAXcsT0+vVycIy5iby3AUrWKEQQecZZbZSbdRVZQNXEj8bNNJ+g7imr9jTGRbXpK6T/MovvTsoLWPac8u4kr81J8mfhZqzkoE2qCm1F6InffyOkdpc7O60BkDoCrYhchcyY3M9EbC56rOgwK4pDRLTJDbenk2zZCYXCGz6tO7LIm6pyXIkd3d+8WsZjk4iNgcYCg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Lm3Syi2mpyRFVC0nxFXuSE47y+pIAzSatJzFQPa0JVs=;
 b=Ozkdy385GeoCmS0gfLfgjyrz8Ywlaa2s3il1LCF1CZ//PI3XNpjtJCcLGX1wHi30hu9Ce7JxX9IDNwQyaa+/kFC0xaOkePU9OQdIjZarJ7nEqWnAXKeRQNyCUxLti7MXR94emA4EB2m9tAPKMj8hHkH1MpJe/SzQxXLqzW/zaeU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=Lm3Syi2
	mpyRFVC0nxFXuSE47y+pIAzSatJzFQPa0JVs=; b=Jh2tT4CmNG3tQicOM/XiPFN
	zIQbtIrB60J2nNSRT5ZBek1ivhuNrd1Hbaezt1rgN21Byi6DJZA4JAx1QwaB43aV
	TN9hQuHvzPNcnQByrfg6dRanxgAWAtmJdAjIhUSygPPtQIYYuUBt10JDemh/40w4
	o6tdTIamUxqfyyZ5LU3oTd3VDRFUyPDcPRcAql2X9Qb7SW2i7CVLSAtevL6MgZPD
	G31DAFBv7buQAgQiJESfNXgw/U0F3Sx+IIL3l+IvApe7AEH4fRIO4CACuVg0PTGS
	Vv8V9Pa3n18cY0W5oaYgWUgf5vUusrlWqd23r+D/kDReRxmX1aTidRRVUaFFuQQ=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=Lm3Syi2mpyRFVC0nxFXuSE47y+pIAzS
	atJzFQPa0JVs=; b=rmzYMntLXuw55WmEdjm8XuKrAkSjm3/x5qUXR2k+3zRmSIJ
	1mWwZGlm3/34bRcS95s/jIgLJu2vH3vQ6+2CGbmF1rD/1dxZQAKe6sLhjVRsiH4k
	HtcPvPtaXlPs2Hvu26EqQa8niLCLY2y+HXFFXoORUZ+0Z7t3Nr7SVhWzrysktjNz
	reFEjqYE3N33bDrkwSkJMre0wphV13l97oTElgvTAQ/vlvP3aeN+UhNhvy6ebVtQ
	nM+8+euqMdYEzzF8bN3ca1UywMmbbH545NeCmUo0358kdGIS7mP9SGY1OpP6dBNc
	/I0heZGB7umJhZca+HMTUd59EP+AjgnBrwQnIaA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: o98Dv4VsqlOqbo98DvTVoB
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v5] xen/domain: introduce DOMID_ANY
Date: Thu,  5 Feb 2026 15:51:26 -0800
Message-ID: <20260205235126.3764953-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 spamscore=0 adultscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602050183
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066EB:EE_|MW4PR16MB4630:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 7d9e0a78-97b0-475e-49e5-08de65117d4b
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?NMMetwAYOtDzuS9ubbeVlf85XWJLAXQx8JR+b0CzicZmV1Ali3Qaa15VWY7y?=
 =?us-ascii?Q?VJfBECi297E6hmNAn6rGVwf95hDcsPoNZuLMPvduivyQTpv5wO42gOMc3or5?=
 =?us-ascii?Q?R4BlVPuKp5Vb0ruC3NeXpDVuS+o8H82Qmn1oacZ4po8sIC0HLV8fO61YRktJ?=
 =?us-ascii?Q?1R4ksEz5mgn2YpNFlAEoI5Bxd/VISfPJ1vr+TIz7meB/KUqo/Bh9EGQl5djz?=
 =?us-ascii?Q?dUBMLza+CjKXXe9JqT9jNhp9rtx5Yw6QaWGNAIEqxPsLhAmLpVJDOJ1+4yY1?=
 =?us-ascii?Q?NkN63UfhfrzqGymKUKneLqbOYH9rtoA7V0nj7A4unvWv2tTRuG65G4xM8PjB?=
 =?us-ascii?Q?fuSk7eoKKbyytYNqY19ibKvT9iSZefJE4mpGhxKNLvabsOx7CII5aYt1os6W?=
 =?us-ascii?Q?qBbIKvg3IcPAIul7FoY645CFaVekePdjkPUhT2JApaaFRsQJSOo1xjqb33le?=
 =?us-ascii?Q?aqf6ob0ZC9FxZxt4wEn+sLrCRVjvhwm+/M4E5vrFmyAe73jfqz5gro6t1FnF?=
 =?us-ascii?Q?Z7bKsn1NcfX++82gvkRerzKdUabDV3cgEnioMT22NVxdO3/LspoGMqkxuxHb?=
 =?us-ascii?Q?NBM5fLDJyKkvfUupHwXTec4s8zwtFF2ug2ZAjTBZXJ+sejIcp+mO5F77eXMH?=
 =?us-ascii?Q?JF1eecbunuuLCtj9Xyoy0XLZNcmAkh+wcfQWvWAVVLMjxj8jucvwvZ8vKgM7?=
 =?us-ascii?Q?PgHnZYQd0sU5iVKVeCKk8JZRNFlYuzLdtLW6lsR3pSa++UyoxRxzeL5oOHQI?=
 =?us-ascii?Q?7S6jdtsCLmIVR2iECVEco1j9HrrC8Y+i+XCzY6lu/HpumBWbgCiVv3Xvlf2V?=
 =?us-ascii?Q?KsFo8LEbScJ/7H6AIqlKFYQZxQtky8Dd1Jij7/ucy+DzYA+0IQ0UwsCFDXKK?=
 =?us-ascii?Q?w+kZLJTd0JDN5xdU7myuHesFl+dV1nd2mvQEQ3XLYnnga5b9xidslcB4tRAS?=
 =?us-ascii?Q?cl+o7tQxVRX+nHaOMzwloBxnio4SeOSy8C8Co3Y9ntAE9eb4skv5CXdZV1S6?=
 =?us-ascii?Q?VGSpls6AtQgmOTBxGPK9OW9aTYPG9O3QmjQjFse20wgZohxqg/8E+FHDkD50?=
 =?us-ascii?Q?+stuDZWKOtHJnpBNwko/WjKHLjr9fWA0yK78wefy0Pksqq6Z+X8iIyAUspjy?=
 =?us-ascii?Q?lySRXd3KmJoeyAFs8NeyMVSlBaEDIMdBunHsJJ/IyqeZEk3PFbCU4stpLKnD?=
 =?us-ascii?Q?dju2+GVP4lpvgBeaTrT8MLpZMwtk5K1gFzjNUMjPKuE7s1G4yIH5KjXfYmzg?=
 =?us-ascii?Q?4hWrd4Dozid/kNcEan9C5qMhmIPW75dpnbbZH8jASrLGngx/wg/X0GEM8xGO?=
 =?us-ascii?Q?Lkle8uLvN7SDooria8fDfe0bAx2gUij/cpjysVm/t5YGfUzRhL0xjaF4yQFi?=
 =?us-ascii?Q?Zlm2ceTURMTM2v1Wg7OUOiOq2AT/tXN6afXT3bbdjgjysk5eov0GMw0mYFBS?=
 =?us-ascii?Q?JdWzGzfXitL1a7t9WHuQv3BnobmQH72MV3Ks0Ix9jsxr+RNCgyQDHO8MHXNF?=
 =?us-ascii?Q?LPlbYkNA6El1vayCGDiJVGi+jCGDRxPhRH8nEmpir7IMyNiCas3/m6G83kAe?=
 =?us-ascii?Q?AObM/uNu2VX0jGWwvF6OiWiV6ef1v9D2bW2U2KKtK3jMobWWvxAZ7j3QHMOh?=
 =?us-ascii?Q?ZbZG24ZpZ/a47aszQCHqTTPTwFU1slODk9ng96B2A/FK5+MzVf8dV3A2sJpi?=
 =?us-ascii?Q?+V8Lug=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	BHr2Vv+b1ZA8pEgTHKL1zhO1vl66N+1qdPszJVP0oZz+awuv5RmBRcELK1I74eJewEEYulazFQS9o/GJBObSEFCeklNTnrfupy2AwN0wNf+9C+cVempoQ9pwTs0kgF1S/hfwwBNYx9dYXXUpGyh6E7wzzU3IlkJSbuexzb+Fi8r6C3HK78ynuvfdaeiOcmRmf9ZE+5gSM+7TZM1ZQR8CSUbK9NsUNLeGWIz1tRSMqZh0iqd7OERWt+ydMQLo/3iOuVkvAv/e5GSFzTJX0ybyAJ/vw7LzkAQBo2T4XavOSZ40TdtqoZSszx7rl/JoJ7YQCPZuAVQHSm9CA5gEE6tCWaYiuBl8A0PErxLGE7KkZyOeR7AKkTIi6AAvPD3gstm1gCJmzqbn11OF8GKGEQhmndIEFLGKea0ygYvGnFmJCqf+Ta3/vKXCcB11jgL2cXiv
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	N9jPm6u5mKi9sshJUo5ewH+KW0KqDbtAgEStnb4xAeCIWgQEtBNINGI0zv/kntFq2HEIhSEHOQo+vUWK4f5De+3JQkqWu8X4L5dlDeb+59H5BvpN3piM6aDh5qEK+8pXldQpLaOJ6+EPEODCYJbGn8A4bmNY14awFskhOYrZwnjmE8YXTey1A3FlWFtdcVrMEv6uOE9hLPhTqGmzNyB7nNvEt9SZTodeg65ejA4SFDd/pAM6Jcv3M6C5hyQpGB+EdyPq3ZnWmazGl4o8N8y6oHc5CRA92aAxN6K4BwShUo/7KEnXSLwoTbuP+7I/tEoFKz6dSiqsmU5K6rsZBRkpLkDH1hL4wKVVcBz2ljcDGRMw4nUE9YSezA5EsO90uoI5QxgYmPgQPBRQVlYsyBtn4Erq/cXwDULAW94OU4bFheECX4u0JWxIv+CfdvcpVtrlgbirlCmAbe87DG90iU8SsCEJNhQGEp+8Y447nQlDUYQTRa5mD7B6VeKGZcyWsh2bCtNlkp1DlOQtnu+1/C+CUWW/221eOpY89/bz8WE7jTCZHSOiuZub5CZRv3x/9GYqsQKRfvcKIbc54xSIM87iYpzs57W23dBrpSlNZK5Q5H76VOiQ70nL/uuxVukDcC4TBVyHF1ToWzm8cg7YchKRzg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2026 23:51:32.1879
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d9e0a78-97b0-475e-49e5-08de65117d4b
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066EB.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR16MB4630
X-Proofpoint-GUID: Q2DNK4XEYZR0GbP38AtbZIVaAVeyOWJf
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA1MDE4MyBTYWx0ZWRfX94Dbxp0kB1JI gBvdGCOhmXPaB3iMrmm7m+nBKTO45Zm2C2VihJ7ffirwl0BfchWJgMEPlHEuQ+dIfQNfwxY0l0W ZjexD6z7MWpNi+sN7uH+GBHnUrUomUd5MlJTB8zRQeM45ilfWc5eobhVirsoTXFF/A+Hxwhr2Vs
 2MdPg99lGbkiahtKpxexk6YbQJyGgDugLw04zzO4qLNaLXtaClCypNgu978ZsaMFbeChsWFa+2p myNejtaAje/MCF2d5dR7bNOJyEuUBRKmJfERcfrdkbJe2pOUzmWDQiF6bKZBj8JWVvajixusLuc BVWFXzAaSOve0Jzo09TrjFwZ7SSOonwss0WXwdiOVkEKD8c1t/OEebWT+qHqbcSouRBpePzR+2f
 hP7pevsQau4VcjmhWFSLwwu8uPT2Ml2IwTI/ELRNRcEpv4Uf2ZpjVsNxY/RBO0spPVl6NnfDaua qkBZa1xvf8nofLlPQUg==
X-Proofpoint-ORIG-GUID: Q2DNK4XEYZR0GbP38AtbZIVaAVeyOWJf
X-Authority-Analysis: v=2.4 cv=Y5P1cxeN c=1 sm=1 tr=0 ts=69852d09 cx=c_pps a=uSxJDRa0a+oxfPxgRloJcw==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=p0WdMEafAAAA:8 a=cbNQJ9GKAAAA:8 a=Scr0WcHX4gzoYZdgL5MA:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 impostorscore=0
 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501
 adultscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602050183

From: Denis Mukhin <dmukhin@ford.com> 

Add a new symbol DOMID_ANY to improve the readability of the code.

Update all relevant domid_alloc() call sites and harden the domid_alloc()
input value check.

Also, fix problem with passing invalid domain IDs in
XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
uses 0xffff as domain ID.

Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v4:
- dropped ifdefery for DOMID_ANY in public header since symbol is
  needed in toolstack and stubdom code
- fixed commentary for DOMID_ANY
- fixed check do_domctl()
- fixed libxl__domain_make() is toolstack which can pass invalid
  domain ID
- hardended domain ID check in domid_alloc()
- CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2308917328
---
 tools/libs/light/libxl_create.c         |  9 ++++-----
 tools/tests/domid/harness.h             |  1 +
 tools/tests/domid/test-domid.c          | 12 ++++++------
 xen/common/device-tree/dom0less-build.c |  2 +-
 xen/common/domctl.c                     |  3 +--
 xen/common/domid.c                      |  5 ++++-
 xen/include/public/xen.h                |  7 +++++++
 7 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/tools/libs/light/libxl_create.c b/tools/libs/light/libxl_create.c
index bfc9149096a3..714e71441498 100644
--- a/tools/libs/light/libxl_create.c
+++ b/tools/libs/light/libxl_create.c
@@ -676,15 +676,14 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,
                 if (ret < 0)
                     break;
 
-                v &= DOMID_MASK;
-                if (!libxl_domid_valid_guest(v))
-                    continue;
-
-                local_domid = v;
+                local_domid = v & DOMID_MASK;
             } else {
                 local_domid = info->domid; /* May not be valid */
             }
 
+            if (!libxl_domid_valid_guest(local_domid))
+                local_domid = DOMID_ANY;
+
             ret = xc_domain_create(ctx->xch, &local_domid, &create);
             if (ret < 0) {
                 /*
diff --git a/tools/tests/domid/harness.h b/tools/tests/domid/harness.h
index 17eb22a9a854..65da0d075a2b 100644
--- a/tools/tests/domid/harness.h
+++ b/tools/tests/domid/harness.h
@@ -41,6 +41,7 @@ extern unsigned long find_next_zero_bit(const unsigned long *addr,
 
 #define DOMID_FIRST_RESERVED            (100)
 #define DOMID_INVALID                   (101)
+#define DOMID_ANY                       (102)
 
 #endif /* _TEST_HARNESS_ */
 
diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
index 5915c4699a5c..71cc4e7fd86d 100644
--- a/tools/tests/domid/test-domid.c
+++ b/tools/tests/domid/test-domid.c
@@ -41,20 +41,20 @@ int main(int argc, char **argv)
         domid_free(expected);
 
     /*
-     * Test that that two consecutive calls of domid_alloc(DOMID_INVALID)
+     * Test that that two consecutive calls of domid_alloc(DOMID_ANY)
      * will never return the same ID.
      * NB: ID#0 is reserved and shall not be allocated by
-     * domid_alloc(DOMID_INVALID).
+     * domid_alloc(DOMID_ANY).
      */
     for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == expected,
                "TEST 3: expected %u allocated %u\n", expected, allocated);
     }
     for ( expected = 1; expected < DOMID_FIRST_RESERVED; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == DOMID_INVALID,
                "TEST 4: expected %u allocated %u\n", DOMID_INVALID, allocated);
     }
@@ -64,7 +64,7 @@ int main(int argc, char **argv)
         domid_free(expected);
     for ( expected = 1; expected < DOMID_FIRST_RESERVED / 2; expected++ )
     {
-        allocated = domid_alloc(DOMID_INVALID);
+        allocated = domid_alloc(DOMID_ANY);
         verify(allocated == expected,
                "TEST 5: expected %u allocated %u\n", expected, allocated);
     }
@@ -72,7 +72,7 @@ int main(int argc, char **argv)
     /* Re-allocate last ID from [1..DOMID_FIRST_RESERVED - 1]. */
     expected = DOMID_FIRST_RESERVED - 1;
     domid_free(DOMID_FIRST_RESERVED - 1);
-    allocated = domid_alloc(DOMID_INVALID);
+    allocated = domid_alloc(DOMID_ANY);
     verify(allocated == expected,
            "TEST 6: expected %u allocated %u\n", expected, allocated);
 
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 840d14419da2..3c18dae5e625 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -852,7 +852,7 @@ void __init create_domUs(void)
         if ( (max_init_domid + 1) >= DOMID_FIRST_RESERVED )
             panic("No more domain IDs available\n");
 
-        domid = domid_alloc(DOMID_INVALID);
+        domid = domid_alloc(DOMID_ANY);
         if ( domid == DOMID_INVALID )
             panic("Error allocating ID for domain %s\n", dt_node_name(node));
 
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 29a7726d32d0..35fa60e74d74 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -409,8 +409,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
 
     case XEN_DOMCTL_createdomain:
     {
-        /* NB: ID#0 is reserved, find the first suitable ID instead. */
-        domid_t domid = domid_alloc(op->domain ?: DOMID_INVALID);
+        domid_t domid = domid_alloc(op->domain);
 
         if ( domid == DOMID_INVALID )
         {
diff --git a/xen/common/domid.c b/xen/common/domid.c
index 2387ddb08300..b0258e477c1a 100644
--- a/xen/common/domid.c
+++ b/xen/common/domid.c
@@ -19,7 +19,7 @@ static DECLARE_BITMAP(domid_bitmap, DOMID_FIRST_RESERVED);
  * @param domid Domain ID hint:
  * - If an explicit domain ID is provided, verify its availability and use it
  *   if ID is not used;
- * - If DOMID_INVALID is provided, search [1..DOMID_FIRST_RESERVED-1] range,
+ * - If DOMID_ANY is provided, search [1..DOMID_FIRST_RESERVED-1] range,
  *   starting from the last used ID. Implementation guarantees that two
  *   consecutive calls will never return the same ID. ID#0 is reserved for
  *   the first boot domain (currently, dom0) and excluded from the allocation
@@ -31,6 +31,9 @@ domid_t domid_alloc(domid_t domid)
 {
     static domid_t domid_last;
 
+    if ( domid >= DOMID_FIRST_RESERVED && domid != DOMID_ANY )
+        return DOMID_INVALID;
+
     spin_lock(&domid_lock);
 
     /* Exact match. */
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index b12fd10e6315..f35a6f21f063 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -608,6 +608,13 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
 /* DOMID_INVALID is used to identify pages with unknown owner. */
 #define DOMID_INVALID        xen_mk_uint(0x7FF4)
 
+/*
+ * DOMID_ANY is used to signal no specific domain ID requested.
+ * Handler should pick a valid ID, or handle it as a broadcast value
+ * depending on the context.
+ */
+#define DOMID_ANY            xen_mk_uint(0x7FF5)
+
 /* Idle domain. */
 #define DOMID_IDLE           xen_mk_uint(0x7FFF)
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 00:11:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 00:11:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222609.1530394 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vo9R7-0000vd-Np; Fri, 06 Feb 2026 00:11:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222609.1530394; Fri, 06 Feb 2026 00:11: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 1vo9R7-0000vW-KW; Fri, 06 Feb 2026 00:11:01 +0000
Received: by outflank-mailman (input) for mailman id 1222609;
 Fri, 06 Feb 2026 00:11: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=CQ3X=AK=intel.com=sohil.mehta@srs-se1.protection.inumbo.net>)
 id 1vo9R5-0000vQ-FE
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 00:11:00 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c0772a9-02f0-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 01:10:53 +0100 (CET)
Received: from fmviesa007.fm.intel.com ([10.60.135.147])
 by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Feb 2026 16:10:51 -0800
Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91])
 by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 05 Feb 2026 16:10:51 -0800
Received: from FMSMSX901.amr.corp.intel.com (10.18.126.90) 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.35; Thu, 5 Feb 2026 16:10:50 -0800
Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) by
 FMSMSX901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35 via Frontend Transport; Thu, 5 Feb 2026 16:10:50 -0800
Received: from CH4PR04CU002.outbound.protection.outlook.com (40.107.201.8) by
 edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35; Thu, 5 Feb 2026 16:10:49 -0800
Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14)
 by SN7PR11MB7020.namprd11.prod.outlook.com (2603:10b6:806:2af::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Fri, 6 Feb
 2026 00:10:40 +0000
Received: from DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246]) by DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246%4]) with mapi id 15.20.9587.010; Fri, 6 Feb 2026
 00:10: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: 4c0772a9-02f0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770336654; x=1801872654;
  h=message-id:date:subject:to:cc:references:from:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=9OyJI9CkTcLM9pD7IGEUobn9FORc2Hu9hDL9can3T7M=;
  b=BTKGH+xXhVrdLgUpVFEc2uOY63VMZHDO7WYYBQ8P/m2YfEy6Qxqzy+af
   x837m0xOGBq4aUIQSX+Atk8BQqpr+kK8WWAs3j10/Ermhh6Aky2VCWjlq
   k38VyQFXiAUkwIOX3WSQjRpIE6No/Ehmu2U7s3DEKMMaWsw/J2Cn6yaLa
   dapNzbqHFQEgavtrMZ0VpnIW3GzC0WBcwIvjNff6ezKVPL5GBJpxQY/Mg
   L0pUIWdKsm3rOmkXfiDk9XCg0DtSH23LtDvhvhaysSQt+Zb7SkExsLF2L
   7D5NosgKH0xoNsrVISrO5e6GPQcvw02lgwNo3adE3/cCc/cJvQE6tdYXu
   A==;
X-CSE-ConnectionGUID: Bm3Ye9X8Qj6vAdTd3h3NEg==
X-CSE-MsgGUID: 9fitqBp/SiOokTIUPsAedQ==
X-IronPort-AV: E=McAfee;i="6800,10657,11692"; a="94194661"
X-IronPort-AV: E=Sophos;i="6.21,275,1763452800"; 
   d="scan'208";a="94194661"
X-CSE-ConnectionGUID: e34fgxH5S6Oyf8OhpAwzdA==
X-CSE-MsgGUID: TJjsorqrTOqLM7UGhMRcOw==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,275,1763452800"; 
   d="scan'208";a="210024747"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ifX9ItfCr6EgDhWnX6lpgkZn/G43Gva/86q/mqqm93Uv8RM+4OemfPnNd+1vDpX9iHeaDM6J+tYXWu+NbquFaCbSC1Lh6NpdQOd2a4+gqWnAOnXiBFDY9/xqgoBNY47NSlDpqytbZuPYtPCFhJmbEm8fDgx92vEsYGbEX/g9GrA4Wj8cTfTS/QweNyAsMvn5Cy5ziYKXUe/aVkz65GpnWsQHPKzUn9SSKHoo00opcOj94mIjS90NRXw2TywsqjOUegXXWvAiU/MhLpOdgNB4x52KWg+RV8+kxmridE3TkEiCF8SrPL5xvuWdZuUN8Ybf+OJ0CcFCqa2D7ywjJ0WnwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7THXvKUHsGwmo5ufcvadI3GFDY6RoDMKHVj46gt+3OQ=;
 b=LfPLcPnjVaEl12fYPSp1G4dquK4IFsKABzPYUxs0tIb+ZrsWYWZLyKX3LPUtBZkQ8Va4TsGHQB1TvoCXh5cQxgUb4n3nFJUpKFWMxD71BsB2G15RYSZqt5LgOWEwOvg1Ho6lavXSIkBEsFMv5AFf9cgY2shObF7mNcM4VRFP/vtFN6VDTr26hlK7/3Bw15lCepV5YqaH1OlJDxJMrBN9OPcIYTRKy666RwtOudIJ71QZVMhnmb29wcg82UOZUZx2gAW1qlyoMkBh9R5B3NMHOy59QZfmwsdKN3v4NaeQhAOM/NuPpUd3lDc+7hHdLyYymc6sUNQmj2DKJPupweIYqw==
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: <ab7f5935-fd5e-4ba5-a97d-5433f241a089@intel.com>
Date: Thu, 5 Feb 2026 16:10:37 -0800
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] x86/virt: rename x2apic_available to
 x2apic_without_ir_available
Content-Language: en-US
To: Shashank Balaji <shashank.mahadasyam@sony.com>, Thomas Gleixner
	<tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov
	<bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>, "K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, "Dexuan
 Cui" <decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
	<ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
CC: <linux-kernel@vger.kernel.org>, <linux-hyperv@vger.kernel.org>,
	<virtualization@lists.linux.dev>, <jailhouse-dev@googlegroups.com>,
	<kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>, Rahul Bukte
	<rahul.bukte@sony.com>, Daniel Palmer <daniel.palmer@sony.com>, Tim Bird
	<tim.bird@sony.com>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-3-71c8f488a88b@sony.com>
From: Sohil Mehta <sohil.mehta@intel.com>
In-Reply-To: <20260202-x2apic-fix-v1-3-71c8f488a88b@sony.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: BY1P220CA0003.NAMP220.PROD.OUTLOOK.COM
 (2603:10b6:a03:59d::10) To DS0PR11MB7997.namprd11.prod.outlook.com
 (2603:10b6:8:125::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|SN7PR11MB7020:EE_
X-MS-Office365-Filtering-Correlation-Id: a6e92a19-1470-4faf-bc33-08de65142955
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|366016|376014|7416014|1800799024|921020;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?VlhFNnVXQjM3Tyt4Z29JT0RuV2t4MkxVL3JxL0FETkpzUjdReThHamNOR2lq?=
 =?utf-8?B?ZlBlcjdhNTRMTGJLQmJUOE9SdXdCbGNubWFsc05VcEw4SERlSFExRndBOFZx?=
 =?utf-8?B?MG5mYVVwRTAvQTZFMVFYRi9LNDNHa3ZVUjlDVzF5RTd4RXA4WHpjZFZXdkw2?=
 =?utf-8?B?ckRwemFmM2tuWk1zYU1OUzJkM0dONHN6ZDNFQmM3S3ZvZXpXb3VyOVB2N2Nm?=
 =?utf-8?B?OGJjQURxQjFvNHBvRS9sWk5pb3JDQTc1eVBKTVltZzdzWDBrZENPTDIreVpI?=
 =?utf-8?B?TGJQS0ErU1ZyL2k1WkRTdzNKMXErYmh0SCtYNG5FYW1rRXMzOWM3UUtVWjFY?=
 =?utf-8?B?bG11QWo1VFh5UlBwSUg0Y2xEUHJrNmZ0NVZMZnVBNnpsVGQ3RWR0OXovWG56?=
 =?utf-8?B?MnI3YitNVnB0TTdPaTVNdlJ0MkppOVI4VmxLOWpxZTNEbWNUZGFOVzJJRE1p?=
 =?utf-8?B?cFB4d3dDWE82RXdJd3lYNitGMy9rN21zSTV6a0l2QjBKMDJ2eXFZK3RjVE1t?=
 =?utf-8?B?M01XeklreUFzQU1Eb3pGdFFVbklLOGNXR0J3UGpzbnhDRFVNOEc2QnFVR3lx?=
 =?utf-8?B?YUpMa095alNhdUJvWS9FbE1mRnRWb0hRNXpsenZmUjFvNjlaUWRrRGs3d0cz?=
 =?utf-8?B?KzkzYUNjTnRISkpTTG5UWFE4Z0dLZEdoTy91bDcrTHZqTFBMY3k0cnR0Z2Vm?=
 =?utf-8?B?aWdOZERnb3I4Yi9sSk9KN3VpNTE5emNndzJDek1CbE5DSUFyanNzNE14Um5W?=
 =?utf-8?B?dVc3NTdHM29xK1NiTE84K1AvcDZrb0FsVmZneStnMms2T3JXWGdyUE4zblZa?=
 =?utf-8?B?SG5RK2xzYjdDb3hyWWFZaFkzbyt3Tks2aGhmVzNZUjVoTW5DVjFRT3hycUNa?=
 =?utf-8?B?YnpCTTFQVm1jYTRKVEdTUGt6UzFEeWJmTVA3cm9NTTVIOE1ObU42cElxZ1hY?=
 =?utf-8?B?UHVWZUNJdHpUYk5GbE9vMTZnM1hseTFwZHdINE9qeHVvY2VMeUVZaVB1Zk9Q?=
 =?utf-8?B?VlV4MTEwNzViQmprRmNGOVorbkxKdkN3MGdsbWd4TlJ0UnBTcnBjdkdGaUxK?=
 =?utf-8?B?WGpYaGpBVWhzZHpKTGhNZ1BCUU5vejh0K3VOT2NKRjZEbU10TnlFaUZDaGh3?=
 =?utf-8?B?eGVaUTNTV1BVQ1l5WFFZVTJjY2JveWJKQmM1NHRLSEdPY1NUeUp3UWxaWmxH?=
 =?utf-8?B?eWVSQTE4U0tnWi9JZVoyVHdRWHBoRnppcmZZbGMrU0tFUmt5VUp3cHZHYjU2?=
 =?utf-8?B?RlRucW9sL3o0ZFBIVDJjRFIvU1hjVjRDN0lEVDBMNW1sVC9ST2tkUDMvVkVU?=
 =?utf-8?B?Y29RenA1cDhOSkVkRHN2UUpMZ0ZYTUhxckRNcWYzc21JaGhzSk1oTE9hMGFG?=
 =?utf-8?B?eUx2R0NqUzJXek1aWFVNdm55R0poQXB5RlhONDdSdUlOQW13NzAxRW4wakh6?=
 =?utf-8?B?V1NubEtyQWNCV1FsV0lxUzJyS0pxa2YxTGtwaDVxRElSN0oyWmlNdHBuTmNP?=
 =?utf-8?B?K2VvWTRyZjdVWWhWaytzUG9yUXZyMTdXbXNOVUtGTG9DbE9GV3E4bWdQSHlh?=
 =?utf-8?B?Uis0UUxSNG1iSzB2SFhrODJ6Um85Vmt4YktVQVF0U0dGRTRjR09mb21qRkg4?=
 =?utf-8?B?STFYZ0dERnBIRy8vQ3UxYXRSUmZ2VzNYWXRaaEgxVnpQbWY5RERjVWdvYVpM?=
 =?utf-8?B?YmdBcUg3YzBnYkF5VSsvUFZlSUlhMWxaeXU4c2dRQnpyK3JNaTVmT0xqU0xW?=
 =?utf-8?B?MEZZR1hIKy9mTzkyOEs2VFRLRVNCWEJKSi8vcndEWHVNdi96V080OU8yOHFu?=
 =?utf-8?B?SDhVak5ycVk3YzlFK01uVmFqS2I2SmprSUtCZjk1WWFBR1Nxdnp5RWtyVmJE?=
 =?utf-8?B?QmRRMmxFd2RKSEFPcTBVbHVaTkgvRGMxOWZPakxIQmlsQlRaVkdONk1jWHRk?=
 =?utf-8?B?azVvMytKa2duWTNJMGVzQ1FSZi9PN1drbG9HNE1JVTFvaEpISkFFKzFXaWt0?=
 =?utf-8?B?NHFCSUt0Q2FBZlZ4NGdnN1JKT0NENXpuVzZ0ME9QdHZrUnJ2UnpXcjh3US93?=
 =?utf-8?B?bGR0ZVRacEJJcWx0RjNZbzRWcU5zR3ZGbC9qcVl3cEZNSDVpcU50U1g1WVBO?=
 =?utf-8?B?RForN0JyRGd1Smltd2dWK21KN1NySUZLV0s3NFAyMTFuS0JlL0duM1dUSlJa?=
 =?utf-8?B?Nnc9PQ==?=
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)(366016)(376014)(7416014)(1800799024)(921020);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VUVZTC9mbFR6TTh3NXRBckxRU1VGM0N4blo0Rk51dWhUSEx6YUYrRExqd3BD?=
 =?utf-8?B?Zm02RVFSd2tacjJ1c2dVc1pDMHBUNGlpcDhMRjF1ZU1IUFRzUFFxN3V2cUlu?=
 =?utf-8?B?SzMycnlIeDdmL0d2TWdWUC9RdzY0d2dkaFRkWGp6cWpTTDFyR0JwUGVkMEVG?=
 =?utf-8?B?QkJCZ3h6UmNPdlpuMTR5eFQ0M0VVUFZqbXplcytiSWxlcUczYkdjWFdKcUFH?=
 =?utf-8?B?TC9LTFVRa2QxK1cvdmZFR0ZHZ0FlcXR5dWl5NDI2NVRST1VZM1pnMVc1d1BX?=
 =?utf-8?B?dE1XSDAwbWQzSytnQS9kQUFzdnFoWVptN3pjcllPcjA0bmtBbVZxdCtSTFJ6?=
 =?utf-8?B?RkhQSlJSZjZERTZPNGJxTzR4c09sUWl3M1BveVc2N1d6VzhOOFBYSFZzRXpD?=
 =?utf-8?B?M3R3S0huNnpqYnhRODZuN2hxUXhybk9RWG9SVjhTOC9zYUdQU09TY3ZrUXZP?=
 =?utf-8?B?VGNxQnJ6dU1GM2Jld2lsbVRNNVhIUFpqQ0VXZDd1UmtPN00rWktpbm0vZlNI?=
 =?utf-8?B?bW9NQzBGVUV6NW54QkM5TWoraUlqbjJRVFJpSGlhYUtsS1NFTUlucm9hQzN2?=
 =?utf-8?B?RGdKNHVPRzh3UEtVWUdUVHVJWHhoY2luaEU4TkppdlN5UkQxdisvb2dUTXdv?=
 =?utf-8?B?cEFlZ1RONGY2UHhDMlF5S1VuN3RkM3h1K084RlkvWVA0Y0pTcHYzajRTd3RT?=
 =?utf-8?B?RS9sQk5VeTF5MlpoQ0svQVpyMEpRVEV5K1dwaE44Z1IrZi9BdytyTkZ5TTl5?=
 =?utf-8?B?aWNYa1Z2aWgrVnJSYmxoZlhjYjhyQlFSSlRIdTdqYXZielIySmVhYTNTWVBU?=
 =?utf-8?B?WFFtNE40cnRGa09lRUZtUnVBdEhqaDl5bThRaThaTE5tRjFNQy9xVWtqek9L?=
 =?utf-8?B?M1NhWjI2MHBpOHZaY1AwSW9vQUZHekxkVXJRb09TTEplUERqeXk4bUdVL0Jn?=
 =?utf-8?B?eW1xUVRja2ljMTBrRFB5MTR3RnlUcFExNzAvWnJXOXA4NmlHRGl6Q20zYUc1?=
 =?utf-8?B?M0VBdHF5V0Q1c04xaTdjbjNKMzFDYWg1L005QzNsZHVtbWdQQzZzNXlLNE90?=
 =?utf-8?B?T0srMTZhaDloeUNncGJwOWI2elJKbldaUlN0SDZMYmE0b1N2NTE3eElLVU1G?=
 =?utf-8?B?ZFgxcllzRXkrUkIxeFl0UUd6ckZ3cUExbmplandlRklOcjUzeldrZG1EeGhW?=
 =?utf-8?B?QUcvKzhJRk9VSk1lSjMwSmdkRXpGU3VnRGdnbW9lcHVaZzZ6WEhKLzhSTGw3?=
 =?utf-8?B?RlVVTU1wRnlTOS8xaDhhQVlXS1lhUk9zcGdPb1dNcEJNRkJObjBseS95d2pu?=
 =?utf-8?B?elpZMS9YVnFDMnZLOTl2ZkFWeG9UR090bnJ3clZDdTdMU25OR2pjbDJaNjZ5?=
 =?utf-8?B?M1ZrN2JFV2NZNTZyK1dnek1NeGZQU2s5bzk1OFVqaTZHTlRCM1FPMjJsK3Vt?=
 =?utf-8?B?VXV2T1paRW5FZUlielZMajRZY2lmQWpNc1J6NFVtU29tWVZ4aGFxSFloTTJX?=
 =?utf-8?B?UVJRQXdVRTU4bjh1S0RTWTU1R3F2NE9OLytIeWs0OVNMbVFBNk9aTGxKS0Z1?=
 =?utf-8?B?OW5mR3RtY1BtTnNEbFpOM29EWUsvSU94QW1ZQmpRRDBDUVdCNy9kUHYxSWxT?=
 =?utf-8?B?cmw4WmVPNUJDRGpYQTdrZko5TWp5NnltT0lVa05NREIrOVNPYlBnanlSbmw1?=
 =?utf-8?B?bFhkU2VaRURwNjJNMzJKWGViV2J3eUtqSVVyc1pXam9zNEJXUFJ4S3JDbGdP?=
 =?utf-8?B?b3hnZkFqczBUM1FMV2gxcnQzay9aSEtxZUZ5WGdKMVlDaFcvdGZPamdod2Fz?=
 =?utf-8?B?T0k5cUhvNmUwV2lJRGNVMjBUZWNXOWtHQjVFMGc4NG5XSDdxcnNuUm54eC9y?=
 =?utf-8?B?cEQ2SGdWa2Nxbkt2R1hPV3BRd05wbU5Ta0J3RHlGamU5TG0vVkNlUnVSamhr?=
 =?utf-8?B?WW9NdGN5ajRrc2tCbG1McmlXcWVIZVBPNWNjRGs2STJ6ekVSb1JGR0lINS9q?=
 =?utf-8?B?N3FFbFRpU1ZLeU5CbExYRW9jVjF4Z1RpNlVHTENzWVZwVFNjNTNLWjZ0OVRU?=
 =?utf-8?B?UE90a0Evbis2UjM3Q0FLNFhCYTNjSWMzTUNVREtLdUlMRFIzMElabStoU0Mz?=
 =?utf-8?B?MEpRZG1OWFZRZFNvZVZzdW5ZMzNIU3hCa3c2VFM5VFV2NUpFU0U1UUZtZGNF?=
 =?utf-8?B?RjhrOHJtK3VMR0hOTC9sa3piMCs5SjROSmVQS203clJMZWdzdEE4UGtDbjBo?=
 =?utf-8?B?d1pYV3JQcnRpbWVMUWIrYUd2Uys5anhaWXEvOW41ZFd1UkpYNDY1NzhQdUIv?=
 =?utf-8?B?ckZ0d3lwRENrd3pRWXNFZ0dZMkJHZE4rOUFkVXZZcldpYWRvcktWUT09?=
X-MS-Exchange-CrossTenant-Network-Message-Id: a6e92a19-1470-4faf-bc33-08de65142955
X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 00:10:40.3004
 (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: JUGgmGf9QRU+aFaMQcEv8IxDJvIIxZD26c3bkJWEENJQC1CmvDRSlkYo+zc8vW5u9q7biPDtTUy+BYVISsZqOg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB7020
X-OriginatorOrg: intel.com

On 2/2/2026 1:51 AM, Shashank Balaji wrote:
> No functional change.
> 
> x86_init.hyper.x2apic_available is used only in try_to_enable_x2apic to check if
> x2apic needs to be disabled if interrupt remapping support isn't present. But
> the name x2apic_available doesn't reflect that usage.
> 

I don't understand the premise of this patch. Shouldn't the variable
name reflect what is stored rather than how it is used?

> This is what x2apic_available is set to for various hypervisors:
> 
> 	acrn		boot_cpu_has(X86_FEATURE_X2APIC)
> 	mshyperv	boot_cpu_has(X86_FEATURE_X2APIC)
> 	xen		boot_cpu_has(X86_FEATURE_X2APIC) or false
> 	vmware		vmware_legacy_x2apic_available
> 	kvm		kvm_cpuid_base() != 0
> 	jailhouse	x2apic_enabled()
> 	bhyve		true
> 	default		false
> 

If both interrupt remapping and x2apic are enabled, what would the name
x2apic_without_ir_available signify?

A value of "true" would mean x2apic is available without IR. But that
would be inaccurate for most hypervisors. A value of "false" could be
interpreted as x2apic is not available, which is also inaccurate.

To me, x2apic_available makes more sense than
x2apic_without_ir_available based on the values being set by the
hypervisors.



> Bare metal and vmware correctly check if x2apic is available without interrupt
> remapping. The rest of them check if x2apic is enabled/supported, and kvm just
> checks if the kernel is running on kvm. The other hypervisors may have to have
> their checks audited.
> 
AFAIU, the value on bare metal is set to false because this is a
hypervisor specific variable. Perhaps I have misunderstood something?




From xen-devel-bounces@lists.xenproject.org Fri Feb 06 00:48:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 00:48:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222621.1530404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voA1A-0004zv-Et; Fri, 06 Feb 2026 00:48:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222621.1530404; Fri, 06 Feb 2026 00: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 1voA1A-0004zo-Au; Fri, 06 Feb 2026 00:48:16 +0000
Received: by outflank-mailman (input) for mailman id 1222621;
 Fri, 06 Feb 2026 00: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voA18-0004zf-DA
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 00:48:15 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7efc3023-02f5-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 01:48:05 +0100 (CET)
Received: from pps.filterd (m0367124.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 615HtUSn021469
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 00:48:04 GMT
Received: from mw6pr02cu001.outbound.protection.outlook.com
 (mail-westus2azon11012029.outbound.protection.outlook.com [52.101.48.29])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c1x7kaj4v-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 00:48:03 +0000 (GMT)
Received: from CH0PR03CA0199.namprd03.prod.outlook.com (2603:10b6:610:e4::24)
 by SA1PR16MB5149.namprd16.prod.outlook.com (2603:10b6:806:33a::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 00:48:01 +0000
Received: from CH1PEPF0000AD7A.namprd04.prod.outlook.com
 (2603:10b6:610:e4:cafe::7c) by CH0PR03CA0199.outlook.office365.com
 (2603:10b6:610:e4::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 00:47:46 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CH1PEPF0000AD7A.mail.protection.outlook.com (10.167.244.59) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 00:48:00 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6160c7kl3941270
 for <xen-devel@lists.xenproject.org>; Thu, 5 Feb 2026 19:47:59 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c2127wnwp-17
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 19:47:59 -0500 (EST)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id oA0qv3Wt5wVq0oA0rvzrR9; Fri, 06 Feb 2026 00:47:59 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7efc3023-02f5-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=hIR6mgapBJLizrWjencnTibcGYW
	KdGynUj73hYu/DmM=; b=d802N9aw+MDdTBVLH0aobaDxdAkBvjSfnqjLPNlJfe0
	M+8grVEShFuaPlZhrHc5I+z7zaj+zD0FPuj+oJ+t2e83Pop0ziTATHx48RlbNySp
	79btf8j2krCZnO+H04nzXQfsIEORChYCTb4gbYB7fq/P6PJ1fsHkUtevwBJ/PQXC
	RliNh3A/qjDVdfC4lqi3J+D841moC7qNdvaphXUeLmA5IffwtXYBzfXYtCjRAg6I
	4HyWrIWwxh3cAqpWWgXx7GuoT1kzYW87dZyuDtp0H8VSBOadTcV4BdPAef2/olGd
	bXPeSVZqntTnSbQiNaGMDGLWbH/7y9KR4LAZC6Xt7tw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=keqdw35mCCWsTSfWHYhg2DJg2M2fjDkqdA8NFGK3zsRE/rKnKb4AZBsPXfA3gRfwFiVhqnRAkXO949JboFlOTof7+RLozWQmOrOS74K/5hRkhgd8FlCBnT/ecPvNI/YsdaNNStUrcgZU87r6BR2y43fK8rL5WHOHeR5ThA1cUvKdqhAThBrSW6LlP3G9qdcAo1AlhEtoruTOC0IJKMTAiOKEvv1aI7qz7R8+/HIwHovyk9IG4KsNYEsDxu8yDqONwi3LQqDd3oXh+sJI/b/ZyFRWVUVZzn+O79cIk18FTMaB8ZGQRfMVsuSE1qEwl7/LtyorGrYWb3U300g/PPrVhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hIR6mgapBJLizrWjencnTibcGYWKdGynUj73hYu/DmM=;
 b=tRyj2tOI4+As21FEzOB6BmuAohS9ICc9W1/a1/L/LVatSq+ri5XhIdGz1xvEfrhOztagAqsDIDzYisnIbY2P1XWEDgt+wFgCF43MjVIDnSOY4QzB+1Z2mrNu4QNPgDn9wlrrxQfE6pa4YuJmAnXyWarehbz8yU3OcVUlYyz+8yRY0XyrYrON2Fkmq9dawTtFjBh2Z7vjzvvObsoNhujWSvM7CsnmI35lRt15bbbr0Hwm9my4z+xNE5C4DyepTsNjAQtjtXMogtqH/BhfVsVNg967dQWQwW904urhW9o3WUxSQM2dUUkClygjuLFMHi+/+n5Vbo3iRD1fp1VA9Td27g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hIR6mgapBJLizrWjencnTibcGYWKdGynUj73hYu/DmM=;
 b=kAxZxvLr4PMH0NOtLFJ8WIdsBwk4QTprePapiauD8eF+h3Wo8RsORIRixtKlosmTkBF0POmEiU+vNavO7Tuz8uWZA8DbmIcCEHsZtMuknO6KzAp2C20+ONGEsjgsNlsKBArAwUPQzw2PBcTyjywlD/tM5eKIfl5rK0sifd1V8Hg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=hIR6mgapBJLizrWjencnTibcGYWKdGynUj73hYu/DmM=; b=UJJyLKkahyot
	FfBvmTSNjvlhBaKHCT08emNwQ3A+VulxtYUlCqxGyNhMF/7rT122cDX8t8UY1gJY
	UwIJC7VxxcRZVeD5Fy6h1XPTrn0P17432cW/8OUFeLeVo5nR2Y9s5ZpQoxTPKk32
	wYvIwrcVmA8XRJpu/rbVIsUNokd7LCeT5+wRIFk7EJmnPsWUWIamr8I37dYTI+vT
	N7UJAbZYkI5n58TFWsTCdl4FqEAzH+gIhnyD2PBvNxdb8cQivmYEFEJjfbtNmRCg
	vGXA5F5EEHT8jQONmmMuVCr+dcAO1rFr3bxRSUc6KaisvQS1QiW1Weh0+1UeF6cO
	bc3B8bAlrg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=hIR6mgapBJLizrWjencn
	TibcGYWKdGynUj73hYu/DmM=; b=Ot2GFBgLPL0z7S4SXp16+JggspCtvtHW6FZb
	0kUf7XRi4LK1niuqlkrkXnHGNRYTLfr1l89Kkvtt6D8I/RQFnmKrKMcpNI05LfLY
	wNwJZSnzOlvufQeKbxE3/hEWijSb9JVUJndzPdubS2/0o87JXTTB3xM/4gSbs3A+
	eNes6wUgkNlJ3AME3DXEyJrv6aKccA4neAy8sc1myRPicJSOOCqjYxnRhe8t54iP
	L0SR+SN+ap4UVNLu2KBlFUPtyx5+SMKeggR/F7cQM0eer5aLQQp75Mv3OeThY8l/
	l0UPK9LFfvN3zDNlfliy4/uWnbVnWeQGMrZXGL5ZoeQNY4ksGQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oA0qv3Wt5wVq0oA0rvzrR9
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 5 Feb 2026 16:47:55 -0800
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
        xen-devel@lists.xenproject.org, grygorii_strashko@epam.com,
        anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org,
        roger.pau@citrix.com, jason.andryuk@amd.com, victorm.lira@amd.com,
        andrew.cooper3@citrix.com, jbeulich@suse.com
Subject: Re: [PATCH v10 5/5] xen: enable dom0less guests to use console_io
 hypercalls
Message-ID: <aYU5tGrbkns9OrAV@kraken>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-5-stefano.stabellini@amd.com>
 <aYP76EsG3bf3Yp4I@kraken>
 <alpine.DEB.2.22.394.2602051403060.3397030@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment
In-Reply-To: <alpine.DEB.2.22.394.2602051403060.3397030@ubuntu-linux-20-04-desktop>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060005
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7A:EE_|SA1PR16MB5149:EE_
X-MS-Office365-Filtering-Correlation-Id: 3696e6a0-6b92-4700-b614-08de651960e8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|36860700013|82310400026|6049299003|376014|4053099003;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?QczZw8PrvdRLsr27pfqD3fByRzJjaMCVK6wjm1hYGRBmvxktKIb4xgx+yGQH?=
 =?us-ascii?Q?VhVVrmMPwg1Rn0cu6KCiqF4fBmr5FgaUV7FFk6RVir8SLzrxxfF2tyMrLhti?=
 =?us-ascii?Q?96ZxKNGJAQkwaCZPqFab/n0kJ6q4Iz2XKpZXlohbB3XfDs5XXamf12G78RdU?=
 =?us-ascii?Q?exyP99B5oicm4groi2ynvaM0F9+Zrz3zglsLO7kFFGKKU0NkH8x8b+PH/qHW?=
 =?us-ascii?Q?OxtGUgqPvfg1VqjHDRBMChy3hyb4hB0QwvhrSsd1JnKkN0NGbn9t2Mb3+5yj?=
 =?us-ascii?Q?cJ3h5YnjS8xIiVj/RwzdTYqGpelAacd3YNGPoSAu8HgtmU2bSt7ZjLHsqUyp?=
 =?us-ascii?Q?PZSnmn2UxlV3valyeNRv+p7wrB+023f1mpNybtm3faIs/zQyL2uvEyNUCp+J?=
 =?us-ascii?Q?AcBFL9778ZgOS4gFsMFJJGumYeEKqAauoN2ybO3ioAp/rnwv7uR7884TK8dO?=
 =?us-ascii?Q?OIZ3cDtIGo63sdNd6ICRuhwDPj3EvqtA2q3g3XZ96ZCoOdC7eQWompNrMeYH?=
 =?us-ascii?Q?3i3/dY0/gicwAqcx2Eplb44VN43oyiCElzo1hWpqdR293ycGXEwAnvsvVVba?=
 =?us-ascii?Q?A+vdHfLv7BgQbWURSrsUbytPilh4VpTD5vx1UBhG7OzUDGvSya1xG4O60OdH?=
 =?us-ascii?Q?3su31sBpIGoS2tlLLH+18ZHOfKFxME8niaV4voruCEBwYHLaPg0U2gko/1Np?=
 =?us-ascii?Q?iX0RYAzsDf2v2PsFJHNOA7IlYjLSdcDTC6gfAe0yvsWShVh+Bxe34pF0ZSos?=
 =?us-ascii?Q?PKgQVe6mCE7BeB8NhongQjn7CZDSzy3uLFf8A35thsUzmbMaOoNz/kzqwcXq?=
 =?us-ascii?Q?UM4p59R+gVn9rY0TL8u7BAeUQXPZSZ9/Gg6iVxz4uKk6Vj1BXfe5HoeDGSb0?=
 =?us-ascii?Q?6jIY3k2oAgla9tXqNJCxyVyEcudo3v6gUBlUd0F2gQ7Hal+l6YTqf0c3addW?=
 =?us-ascii?Q?e8cj0h7tNcBcdyXYWFAoB6TfU3FYSDwWT1/orKL0l5XGMDmctpKmVxzJ7Df3?=
 =?us-ascii?Q?0n0LG3kZlxc+EVRkifm8CammPc/VkVZ5lPvVkZ3ONxIYoQJpiyoDb3/Eog8L?=
 =?us-ascii?Q?gUHwYSFzRQ/iL8NO5WggG/8k1DXnsTKaGMJaQ645iP5By95OjjzUQEdwaLAk?=
 =?us-ascii?Q?fdZ4VMJ8WE3mb+YpRbxJHt/EApylK12hgEjghKP1NNJmfEQczN0ngpKKchAz?=
 =?us-ascii?Q?327HIylM+mVmPVu0qw65TAa/yuU68e7a6eEVYv9hT2u9L3H43WB5T0iUUzeb?=
 =?us-ascii?Q?PGkKKyRV95GxR2oiJ5Qxvg+OMw1YhtR8o5Gh5eMf5/F/EFc3S2uPtw5A+waV?=
 =?us-ascii?Q?pp6vyW9SzvfnlmWug35XxFUHamI6y8I2DAZEkGEnX8LYrWE6JPcjUZ0aMwVY?=
 =?us-ascii?Q?I4ygASU093aRcREjEJfiBZj/7pVu?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(6049299003)(376014)(4053099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	dxExsXdBKgPWEh5ZYDxv+MFjJaIMTGxP8QLBGCchD8cB7igrC2u3JW3qc20Z95+VxgKET0JIg43tD9z6U1wJALtZo/2OHdrr2vFUo+jCLZmWcl32qfLFAAfQBOGoVIVxpgvlgvRneeT+s6lOZAcUyja6ogGe08xQO15P0RwygukwE5BgbC1ORMoBcD9K1gC/PUBXbc/V4pGS8kYh45jQuoqZbgQONw1H20up8imXVDD/9r0rIEVOz5DI9OcMlbRM4VdWS1EAFEKFN+zOYmlPIuGivg9Ogs9UNhH8coFInanKVyrfM5YDtzANm0gdZFG/sCUlfBAkLq5ar7e6cH8UVxUPa+WtxICd1gfQZw80trve0/dIhI2JweAxOv3TaE5lw+ZYPfYWCRLHFzIVJPOv2u+P+e61nrNl3FuJ6E8DHEz/ZSOlSPcMS1Edm8nEtYIz
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	nulJS2uyUpR5DgjkM8A7J6kewqGq+znGhmYvFFFYZyXdZDGIz6bD1WUnERNPV2/cbcp22c3lKtFkFpBGeLHcjN/JRMGfccrM0RS6Ms6Et4DNV3BLZDB/WL9BtfTIMR+2mhlv65gmiXVe/CV4Ny/0hUzOc1MX5O6bvvMfLa1K8cahK7KAW/WCUD4npv9uJf6kNYN5l/Y/7TS9qKVeSi8mdlIk/nN3msg21sX9+WVMW7zM0KLguWOgGZXUHvVLqGv49VOZ9nwpkapzK1fwfHs8DRyyYT582KYGQ50IlKK3xMvOui+N8tiWr/d2Q6vmSfp5KddqJqJhADHyEITZIjImUHGE9WCYtkgnCB7SPsqRTfOSwbJ9/G1BGCfqU7IEYQYhE/GbOZjIVHY1rldIWSPf3Bik5hVgXoH4slDblTXZgFv/m+7yC01ucjW9rqJXT4KhWGLlOF60Xv5IgbCQ00UmVlC850mF7o1130hjhAYEd05ShSgfdtlbwu9NYcsuoTCTW3iBbUHydIoiZKpyvtVF0XOIj3+FpyRF3428I0TJvBnAxKRAa1v2Qi2AcW5kj/oj9hTBaazGScij3G/SY0eI1k5ncCxA2yuIfaTkizaqWzEK1wfY8uIGIEWUzyHNbhvTBr0X3vI5radrqirJpCcPgA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 00:48:00.5721
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3696e6a0-6b92-4700-b614-08de651960e8
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD7A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB5149
X-Proofpoint-ORIG-GUID: iw37FmwOPVbRp6JeX97DzdgKai0YjmcN
X-Proofpoint-GUID: iw37FmwOPVbRp6JeX97DzdgKai0YjmcN
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDAwNSBTYWx0ZWRfX/rVG7dTIFMP4 zPge5E64mNABqF61ka6DOANV1VgNfjUiZz4sknBnoD+s8jqRIOEiXG0Kt7TlBWmu8dRZ37U7tue SlbxmUvPEUccYlSzApO9cGSf1I8rxBJVIBXJiUjAvMc4oQVV+bPnhsiFyz/7/uEaP4lcAepBwbU
 je70nahOcciVS/yj04KYOK347aR2r4BfyVlxXx4xJ2mN1XDLp6ruF0QXetDyiW/pmJ0yFNVeTL0 4JsfJBzd21oJRp4tTL/p2vsXQO7SyiE88RTKkpkcPMxwaBRpsuXxeRmgZGrV3qYM5wofYqU/v+d 1o6dk45rrTJn9kJG0/L7QhJVDtX8UTYkU0DHaCmFWA8MTkXGU7RWGRf1lA7jUMlyjaluh/uk7yy
 Kn1Lj6VFP6TeKAITMDsYB9bwY5T6OdYiF6kVG2hvRHFbzqhYvRmkaKeNjiOJtPdczg6hyiIlCIq nzjbigWulp4HMosSbzw==
X-Authority-Analysis: v=2.4 cv=A/Zh/qWG c=1 sm=1 tr=0 ts=69853a43 cx=c_pps a=lBl9kuBVfjPHxW47UHPt6w==:117 a=lOEMawUel/sSvQipkIvNbg==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=gmyCovRJf1LK-PwbnYMA:9 a=CjuIK1q_8ugA:10 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 bulkscore=0
 clxscore=1015 suspectscore=0 impostorscore=0 adultscore=0
 priorityscore=1501 lowpriorityscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2601150000
 definitions=main-2602060005

On Thu, Feb 05, 2026 at 02:09:07PM -0800, Stefano Stabellini wrote:
> On Wed, 4 Feb 2026, dmukhin@xen.org wrote:
> > On Wed, Feb 04, 2026 at 03:37:12PM -0800, Stefano Stabellini wrote:
> > > Enable dom0less guests on ARM to use console_io hypercalls:
> > > - set input_allow = true for dom0less domains
> > > - update the in-code comment in console.c
> > > - prioritize the VUART check to retain the same behavior as today
> > > 
> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > 
> > The code looks good, just one remark wrt prioritizing VUART check.
> > 
> > > ---
> > >  xen/common/device-tree/dom0less-build.c |  2 ++
> > >  xen/drivers/char/console.c              | 16 ++++++++++------
> > >  2 files changed, 12 insertions(+), 6 deletions(-)
> > > 
> > > diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
> > > index 840d14419d..cb7026fa7e 100644
> > > --- a/xen/common/device-tree/dom0less-build.c
> > > +++ b/xen/common/device-tree/dom0less-build.c
> > > @@ -829,6 +829,8 @@ static int __init construct_domU(struct kernel_info *kinfo,
> > >  
> > >      rangeset_destroy(kinfo->xen_reg_assigned);
> > >  
> > > +    d->console->input_allowed = true;
> > > +
> > >      return rc;
> > >  }
> > >  
> > > diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> > > index d3ce925131..7f0c3d8376 100644
> > > --- a/xen/drivers/char/console.c
> > > +++ b/xen/drivers/char/console.c
> > > @@ -610,11 +610,20 @@ static void __serial_rx(char c)
> > >      if ( ACCESS_ONCE(console_rx) == 0 )
> > >          return handle_keypress(c, false);
> > >  
> > > +    /* Includes an is_focus_domain() check. */
> > >      d = console_get_domain();
> > >      if ( !d )
> > >          return;
> > >  
> > > -    if ( is_hardware_domain(d) )
> > 
> > Hardware domain on x86 may have an emulated UART (not in upstream, through,
> > I need to send v8 for NS16550 series...). The patch which illustrates the
> > idea:
> >    https://lore.kernel.org/xen-devel/20250908211149.279143-2-dmukhin@ford.com/
> > 
> > So this code (hopefully soon) will need adjustment again.
> >
> > I would update the code to something like:
> > 
> > 
> > 
> >     if ( is_hardware_domain(d) && !domain_has_vuart(d) )
> >     {
> >         // handle hardware domain
> >     }
> > #ifdef CONFIG_SBSA_VUART_CONSOLE
> >     else if ( domain_has_vuart(d) )
> >         /* Deliver input to the emulated UART. */
> >         rc = vpl011_rx_char_xen(d, c);
> > #endif
> > 
> > 
> > 
> > But domain_has_vuart() needs to be defined for all architectures
> > (currently it is hidden in arch/arm/vuart.c).
> > 
> > Or perhaps it is possible to postpone the change?
> 
> This change is needed to avoid regressions on ARM.

Oh, I see.

> 
> However, while I wouldn't be surprised if we need a change here for your
> upcoming patch series, at the same time at the moment I don't see why
> this check wouldn't work as it is for you as well.
> 
> On x86, CONFIG_SBSA_VUART_CONSOLE will never be set. It is OK to do this
> first:
> 
> #ifdef CONFIG_SBSA_VUART_CONSOLE
>     /* Prioritize vpl011 if enabled for this domain */
>     if ( d->arch.vpl011.base_addr )
>     {
>         /* Deliver input to the emulated UART. */
>         rc = vpl011_rx_char_xen(d, c);
>     }
>     else
> #endif
> 
> It shouldn't hurt. The is_hardware_domain() check is also not necessary
> anymore because any necessary check would be part of this check above: 
> 
>       d = console_get_domain();
>       if ( !d )
>           return;
> 
> So I am guessing that your series might actually leave this code
> unchanged and instead might modify console_get_domain() or
> max_console_rx.

I think I did experiment w/ processing vUART before hardware domain
locally when debugging NS16550 emulator with dom0 PVH...

Thanks for explanations!

Please consider:

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

> 
> 
> 
> > > +#ifdef CONFIG_SBSA_VUART_CONSOLE
> > > +    /* Prioritize vpl011 if enabled for this domain */
> > > +    if ( d->arch.vpl011.base_addr )
> > > +    {
> > > +        /* Deliver input to the emulated UART. */
> > > +        rc = vpl011_rx_char_xen(d, c);
> > > +    }
> > > +    else
> > > +#endif
> > >      {
> > >          unsigned long flags;
> > >  
> > > @@ -633,11 +642,6 @@ static void __serial_rx(char c)
> > >           */
> > >          send_guest_domain_virq(d, VIRQ_CONSOLE);
> > >      }
> > > -#ifdef CONFIG_SBSA_VUART_CONSOLE
> > > -    else
> > > -        /* Deliver input to the emulated UART. */
> > > -        rc = vpl011_rx_char_xen(d, c);
> > > -#endif
> > >  
> > >      if ( consoled_is_enabled() )
> > >          /* Deliver input to the PV shim console. */
> > > -- 
> > > 2.25.1
> > > 
> > > 
> > 


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 00:51:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 00:51:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222630.1530415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voA3r-0006Vp-TS; Fri, 06 Feb 2026 00:51:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222630.1530415; Fri, 06 Feb 2026 00:51:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voA3r-0006Vi-Pc; Fri, 06 Feb 2026 00:51:03 +0000
Received: by outflank-mailman (input) for mailman id 1222630;
 Fri, 06 Feb 2026 00:51: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voA3q-0006Vc-HP
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 00:51:02 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e3ddd45f-02f5-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 01:50:55 +0100 (CET)
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 615HdePr019030
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 00:50:53 GMT
Received: from sj2pr03cu001.outbound.protection.outlook.com
 (mail-westusazon11012064.outbound.protection.outlook.com [52.101.43.64])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c4baycvd2-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 00:50:53 +0000 (GMT)
Received: from BY3PR04CA0027.namprd04.prod.outlook.com (2603:10b6:a03:217::32)
 by MN0PR16MB6512.namprd16.prod.outlook.com (2603:10b6:208:4cb::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 00:50:51 +0000
Received: from MWH0EPF000989EC.namprd02.prod.outlook.com
 (2603:10b6:a03:217:cafe::1f) by BY3PR04CA0027.outlook.office365.com
 (2603:10b6:a03:217::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 00:50:47 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 MWH0EPF000989EC.mail.protection.outlook.com (10.167.241.139) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 00:50:49 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6160NpMh029525
 for <xen-devel@lists.xenproject.org>; Thu, 5 Feb 2026 19:50:49 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c21punmb2-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 19:50:48 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id oA3av8h3jlOqboA3bvXPbA; Fri, 06 Feb 2026 00:50: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: e3ddd45f-02f5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=QMHsOrykkuwlAOZonJMI1HAHX7J
	mO2zBU41Pd2GXuGQ=; b=CA5vOaXvqvSTPPSLRX/oW6blUBEiid1wDI+ICrO0orW
	jAYwwsj+dCeMmWQZTzkSy1eCUSj7IPBaY/O78wqAsbHKuGx8UmFluqvqs6U7dbGW
	UUyIDD3JHM2TxWWlvQ4E7ifsxJq579wIzcXzufRS/ddUmxt0yfFztIh9mEizAFDD
	0DU3Kz5NwLcoYCWLDbr1+yq9EZJ+RKlxFsFmrNV55l2Xzm5HD5JeUSSFdsu53KKA
	/OWglk9Y1xpnRXYUnUNFlKqg7uo3kwC43wWIkOm3V7LtxgmR/uCbCrhOh6xn6LA2
	7LlYD3RlLvocCqfpZiJnzUtk9JrOzcQ35QcyO5HRI4Q==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YjH/dD+bIEzftEuvPSvWPqoNV9eeFTnZ2X0Q7hP+gkblQslnx3apxcxKoShmQ6FyY16czMoQaccvZV3EwUV9clOx1/Z5vp5XBQs4maKXXar8h7Oc5opxHbfOXda8nkhu3KaKYbWWhKfu2YjuXwX5arjBCDesCFk4KIW7yLhvWc8GveCC+WhpKCjr00LRqiWnpwxZoWILlwQ9YmASLIVZhb2fvUGrAxoRUgjVXuVtuQSpTaCc3HoiDaMiZrnr7pBgo5msTb5XYy7aSj9bDnNsxqNIioYnnDZ5bfkblWyTbCLtc1HUSZnm/6ia0ubkETQBm9StY3pRYBnt3Jyot9aW5Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QMHsOrykkuwlAOZonJMI1HAHX7JmO2zBU41Pd2GXuGQ=;
 b=uS5Iq4wSJl6g4oWsz+HOXjwlLayrCMwVINWbaKXIhvRU0Z0uBEcKznqRRzA1yzcdsVUiGiXNHlEjv6Qir6E6UEc71X6yX0Lcfhss6t2KkZCm3+XMMz2lL8mfQJWKTQS/zl7LBSm9+vT4lefEYOGs9lGJ56ZIHNsosh0MYnGBZ0ibRyDmaQ20QwCgBR/Y8yYg8tOovCSV2KxtWgUHAFKCUCyWNJBWdvcpZkIkJ5w2lluZdS1VzBBU10NFPMpY4lAKQpgUirE80fQdpZvBrwpQd/3C3uEL8mPGtuaTqImx5VKRT748/bSeaGSwkU8mGcaRgl+Hf3mNF7uLGKb2ZayWHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QMHsOrykkuwlAOZonJMI1HAHX7JmO2zBU41Pd2GXuGQ=;
 b=QnY03du1xh7FyHlvCC+GgiqEfAFlwqqWZ5lLiIpRQXHjiYs2TVfuCKK8Eq43KJotDEV9alMmqUV0MOF4wECwjt8xuwVIax9lTOM8KcSGZ95GZ7pWMu3DkF0yLn74N4AUx9ZD1BWE5aoPkgpeEHt89U5BcN7QVDeogOoBjotbeMQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=QMHsOrykkuwlAOZonJMI1HAHX7JmO2zBU41Pd2GXuGQ=; b=HiteVAb8B1oK
	W2eQTuZpuXdy3R79NLMp4BpE7H/rdnPDdjDihOmTwGew9dnOn82RwIIEAuGePi4c
	pnDrw7RACGU/FJm2hKGZCGa7TEKmzQ163q5HHezc/IkDrcuc3YJQJxRXvEOPGxBG
	Go60j5dYbbR0x0/oeSNjy/NUwJCCVWumVZeOeHRoTi7PRorpFkflaLBVYHttrR5L
	vubV2lp2tpj3xz483UlYQTFR1okFJJ+qqgthQxAIixx0G9EanyR3GbK40oP+H8J0
	8yvjTRNHMrfICwtzQtuWzaAyy0z3ogpyH53OKHObTPnSV9bPnpgyZ/sEJ2Vh9IeV
	TNT8Fz8gwQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=QMHsOrykkuwlAOZonJMI
	1HAHX7JmO2zBU41Pd2GXuGQ=; b=DproVJM8RtBC3ngxa4DVGqGEc8+Ibwvq1Ptq
	ivXEs/9LiuCrHgiDSqh02xyD62SR6EhA5D934hxOvS37ix1YfsFdrw/4x7sJjuTL
	k7G6PXac/s5BtQt6Po8nqBKFn00KUq5MBuHjUKtGF9BxwBTvn+6xonI2z3t997uk
	4DApk0NKJO0CdM0bohBIyNneZaU3Bl5V/8jGvNZ9rYvBTA8jvBFyHzDMRM3i32cm
	H2faHSfwavsiK1QQc1s0EoGnk+oG8gw3RcsDw7zSPot6wBA6PQEkiC8tqlpUBcks
	UYIZeZxjuKe8QvtTsu6MJ7AOtMup2Oo96QDHAw5j7EV7eS9ouQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oA3av8h3jlOqboA3bvXPbA
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 5 Feb 2026 16:50:46 -0800
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, grygorii_strashko@epam.com,
        anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org,
        roger.pau@citrix.com, jason.andryuk@amd.com, victorm.lira@amd.com,
        andrew.cooper3@citrix.com, jbeulich@suse.com, sstabellini@kernel.org
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
Message-ID: <aYU65nqaZSGzUQD9@kraken>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-2-stefano.stabellini@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260204233712.3396752-2-stefano.stabellini@amd.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060005
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000989EC:EE_|MN0PR16MB6512:EE_
X-MS-Office365-Filtering-Correlation-Id: c0aa447f-3b6a-4399-7351-08de6519c5aa
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?gQ0hdycGJkfFg+SDHLbqOCPPrzJiZ9tMtft9bsf/vPz0qXhweVhF9GP+pwju?=
 =?us-ascii?Q?zIrUGtYw9RMXFcJe1FXPkOou70Ip/nhSUIphI7h4NVWSmflS+qBLj1BUOsoc?=
 =?us-ascii?Q?+yexMZk7q+MrlKgt7CLeJBCsi9HoMef0pXHABO9O5/R4TnMx3Tr7x8Nd/zFX?=
 =?us-ascii?Q?otbbNS+KDytGs05fEvs/zMQyFnzjhPpa/R5IbNw9KG4tTnG7LgFP9GpXTd87?=
 =?us-ascii?Q?wMS+qC7gLXD5emwi8GGXZBUK9b1TdaCOq+p+A62nKzWcV1Mz1pOoMOMc+p5d?=
 =?us-ascii?Q?KcZuCojMtGxPFyAvlFuBFUvR3rikzJNeP+nCWl7sYvhIS9kXiZNWvEKbLmvh?=
 =?us-ascii?Q?JqjbMO0hiTZA4X/gZwPze5bOQUdp/gZ6o2+WbLMCCUoigI7NRy0EuJsOEY1b?=
 =?us-ascii?Q?d1m1wQ1xgb6+4MhW9pKB7l74M9wJyZFFjz7eplsQK8Y33wn+RCG8srM+154B?=
 =?us-ascii?Q?FLa/XnlKKGqMPqE8S2zD/vAbrAs4TVjpRXkjnx4C2Tl88NFeeJyXu6fqlA70?=
 =?us-ascii?Q?JmVAH/bNg8GP1HsMkDmXNdW0cjsyrqn6MZIQhzqdcpiBhsEfwKZ+NGPKFFxD?=
 =?us-ascii?Q?kXueeXhedVO9Gw9rqKgF0KrLyacZ/W+Xjd3OxqSZpqLJYTkf09IFhnMl2k13?=
 =?us-ascii?Q?BLr9kWt+4vA245d9Gx5cB/BfeRDtcHda0E6aZp1/fGQWJU+hDyv16I3SJA39?=
 =?us-ascii?Q?PjQgps3bhG8BFa1nqRHX1Ajtv+FUkGLUq346o4DggBiVsCS1TWq+D1qv4Zs3?=
 =?us-ascii?Q?ak8Sb2uwHzHZpitwvkQ5DCRCk40rg4tpFgG/DN5Jd38egK0OSy8w3M4YCBeK?=
 =?us-ascii?Q?JZeQbsPzIsTK50aSqgOPtBgWhnHA1CC0om1Q6RMtyqy6fLZlTidw8FkCCpe0?=
 =?us-ascii?Q?pOd5SUv5DeTG0mZWB/Ny6b7Uk4+K1wWfTmyAywJGjKw0WAo73F6lIXRUSeS2?=
 =?us-ascii?Q?EnqLUdIUQWnmHb7OqAEtbU5b1dYKoDXYkLM4eQpxvVV1UnNXYODMvhmJt2L9?=
 =?us-ascii?Q?q8bEFkBACu6YMxbrNNkLLodaf9BlpqPTIbotgwb6SqfD7fbbZM3QPL1yBDD2?=
 =?us-ascii?Q?RCKwUQhL3Ili50eYqVU7dYQhLejbtJ3VugerTH4u6yzm8Ud8j1sEvTOSw5d9?=
 =?us-ascii?Q?KkRuVo0RVc9hGt2Y5rUVH2aoNb+k0Uh+IGNb2FKbrmyNI4aB/gOrEpdfAflH?=
 =?us-ascii?Q?hvS0ijWXSSKu6BFOpCD3myltBHU7RKXzsJP+/2e5nfvS2OhFqoZet7uRD7ph?=
 =?us-ascii?Q?YibmBHMDKaHvNyG6FJ1uRyZUxyB0Ud7BIcWNMToaB+yRuK6s7Aejx0ONR0y8?=
 =?us-ascii?Q?JLXp3J2SR2nwosNeUKW2MWgTbxvxMKcb4OL0sskk3sTBLkRrqc5HVqpaA2u2?=
 =?us-ascii?Q?TGvcYWuye517M10XBlxGq1dAXnwZYaFkvyPaNyBuR9UGlTi261GmBvRx3iJH?=
 =?us-ascii?Q?K+Ifej1M2YOqSbI7+BJ2ixgtrMuaSMqsSbuyfuTdl9PTk/f1OLmT9KdSlVMj?=
 =?us-ascii?Q?DdltulKF95Ke1zbWRwSwEMJWKvrnqOOlkwXJnGdYjmK75cSJ9PJ4dZaHucpa?=
 =?us-ascii?Q?CrjTwHTvJm6WkCq1DXBqac1zgDMPuOoffG6hIEdzvX9qnQd4sgu2q8Q6IjhD?=
 =?us-ascii?Q?r1dFrr83GY6OaMl/pOLdypcjhAjnOg+CLbpykGFLKmTpnOmEjjjL0WXHaOVd?=
 =?us-ascii?Q?OHBMdw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	CF++TE3CTW5kUtmc57teGX6eQQJPtVDzZjs+PWdwdlaGXWrt1l0qTdi8WFpMP5zsoZ20AInNUzQPoOdKVpYbKtbgGAVQSIBT8hY5CHYDSIG/4Z7GOmlp1uajckUqdWCU1ZGebnxl8UTcPyhLpa93mQyhkKiRsooEWfNmzZyqrFTfwBlrUYxfnmCdVXJzK1R5VegbNMoOA6nnnteAE3Z21q6dwSYEUndG6X1gzRijMGh5w7w0+T76PVvSCg38bRKc0NTfQB2VrfeZRi1LebUx7GR+Tx4nj1wGrVNcgMOxbmSg64dKnWj96fU1ePv+H93LHhmsMk+8cxPcOht5FdJ3XKf87xf/2vuxIZhAs+UKwqvR0Jc/e4G9AtDlvv5DDYIwLH0b/WaleXr4o7gfAQuqTVGd7byIXIsn5xbhl9ZCYb6uZyLMPc9Wd1Z2Lz4OKRUl
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	il3SAriOtSkKKZZiXgsoGWcg0hYixpabXk/mybky2w13vxEIwZTx/7a+qRyP7BxFtLQMRdyUkLRCnoRjRobecZFFxcnnqVl2g9le7iyir2Lu/p9o4Z0NOHYpJ0RtaI+SPn9dvARXGg3Oeder0CnkwqufM/PG45iP95DAbIyahWiOz87/W4z/NW4472zq1DOfAbKFPyQw0aV/WIzC1RSOMFkNWaxqX0FguTCSLb+whT80grEW7T01YcOhvJd7i+RW5j11kYIGB+WwTHq0EhU8oTQVh/8DoOLMecOEhemGAS8I1p+2ej7ty+YiHMGsDcV84UlrLMxewUuHH4mFjpex6LoTKxkcZ0b/OOMzXv2T9eq4Thm1DClYSfqUDPlI0K/QzrKjURIouyzJyBDLc/HTneUYIx3NLLyMGUfYQQmSWsjJ2h0B6+wCg/46sIlTlKmrGmAi+UzweU3rVoz8JFp/rrJLTVCvNF+SgY9xoxM13VPYhU8lElrkWR5NgVhP8CAHWr4hG0ygIGdFxD+DUg4n3GwxuFCiggZ1ISr8uCSZSCxME6+huPyQieeuvjwmJMs3GnU8Co3wP80Ohss2ybUygzkP3ooH/dRabT99IsK2uqceU1kRf63S9LkTwJ/sWHPF2cEyCx7SE0C6tEaeamNjcA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 00:50:49.6273
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c0aa447f-3b6a-4399-7351-08de6519c5aa
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989EC.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR16MB6512
X-Proofpoint-GUID: TNTl5u5RBpdeRQTZk8IK3xCLtlSJkkcK
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDAwNSBTYWx0ZWRfX0hKy9ZG4smNM bHyfvWVSjQ/j/ClnQqpac1q3DZNPHvaW6XsDbKGavapsq6fvkZ6UZdMdskZ6PfwMyJJWI4Vigo6 uMgaCxMRJnLf5Tt4PsCCD+UAG0v87zpwBU7aQ3qbApv0hgl1nwKh54x6vi06FOyajd8tbo8NLPu
 8IyAO4lRR/tc+YGEWNWBsMXfhZdE/FguWp0eaiQhHUKGtQt48kq6N3aFr9bJveXXjsP/HWKWA4D 8N0Ij4rFI4ZKKvSiqN8sb5asPNaNqNY81/xdguF+xC0wNGicsVcmcb/3jtgn43bViWRsP7vJMuc sQ7lXWY7zgpggwxkDjNGZ/eFd0wWx+ciE4dALfOCg6vOum7C+bEkKfMIcK2ldjgZxTyiIb/YnPu
 WjxOWbvQ5DAEhZgO/sJe/ztD6gmSaNLa7dE4S//Ffw75PTw5ddbjk1ffw2VCOx/jSLtZk0/eavQ zvRN63EK2yFqxgoJnQA==
X-Proofpoint-ORIG-GUID: TNTl5u5RBpdeRQTZk8IK3xCLtlSJkkcK
X-Authority-Analysis: v=2.4 cv=Y5P1cxeN c=1 sm=1 tr=0 ts=69853aed cx=c_pps a=vzG6OqJaKuDO37FI3iuMvQ==:117 a=lOEMawUel/sSvQipkIvNbg==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=zd2uoN0lAAAA:8 a=cbNQJ9GKAAAA:8 a=dEE_NiS0NobiUu1PXT0A:9 a=CjuIK1q_8ugA:10 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 impostorscore=0
 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501
 adultscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060005

On Wed, Feb 04, 2026 at 03:37:09PM -0800, Stefano Stabellini wrote:
> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
> global to VIRQ_DOMAIN to allow other domains to bind to it.
> 
> Note that Linux silently falls back to polling when binding fails, which
> masks the issue.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 01:32:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 01:32:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222658.1530423 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voAi6-0002gG-Sx; Fri, 06 Feb 2026 01:32:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222658.1530423; Fri, 06 Feb 2026 01: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 1voAi6-0002g9-Pr; Fri, 06 Feb 2026 01:32:38 +0000
Received: by outflank-mailman (input) for mailman id 1222658;
 Fri, 06 Feb 2026 01:32: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=3tkN=AK=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1voAi4-0002g2-Gb
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 01:32:36 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b3bb4031-02fb-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 02:32:30 +0100 (CET)
Received: from SJ0PR13CA0184.namprd13.prod.outlook.com (2603:10b6:a03:2c3::9)
 by MN6PR12MB8469.namprd12.prod.outlook.com (2603:10b6:208:46e::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Fri, 6 Feb
 2026 01:32:25 +0000
Received: from MWH0EPF000989E5.namprd02.prod.outlook.com
 (2603:10b6:a03:2c3:cafe::b2) by SJ0PR13CA0184.outlook.office365.com
 (2603:10b6:a03:2c3::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 01:32:29 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000989E5.mail.protection.outlook.com (10.167.241.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 01:32:24 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 19:32:24 -0600
Received: from SATLEXMB03.amd.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 5 Feb 2026 17:32:23 -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: b3bb4031-02fb-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rhp2vCi1E4rFQ6MwavvVHHrcZEpK0bCkpZskIJfP4IGKNeajMXx8Z7qnS1tVNfqiKAFRnny4XUh7lIV2ng9UgWI0lUOxh4n0gsYg3HKqPEU//AOFNMrEcw1qoQIxOF9JG8w81kjC/VThESye3hZT3Md60l7kse1nA5kqgTtoy9sIaZWM3YYPD+HykGAeG6OqFc+GUvfR2qu7QUGQBLbel0jwZLZVGaR1hjlT1J5IUKtBdlTqSQX6BTWsPHO6GAk4j+sq0lO20cQ8ZRVAdHLMy9NOQZtG+2xgo48LivE/Ki7HxQYK9OvFQ6DXypv1q3giDOF8MYo5WJn80XdCDuWt1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W2QrLWOJ471WddrIDb2oIZoosMi0VA38DRqFzfwk6Bw=;
 b=tqRsKIzxy9oKIV3lWIKAEA5PktGGZPJH+FSYyQmYVWNdxT+qXQKe1f3JiPyLyHWqczByo4pONcEiXDs4yG2H3GKrmKJzKQ8Faa/G7hKw/GQpYAB0jMBxtCN69nQhUNsdkDdgUxdmDHN73hQOR+rhLaaeoejXRTDgNMjiVU3+UEI33g+ZoFaDzmEvYinqNx85HMpkX86DoT1y6xKB2+gYxwuX3kFF6yOKiz0eW8MVLq3UfX3BX3wY+G6Bttvn1054k6WWsvseN+GE2CxhkISnPqedJ0uKpVTmJ5df3UxTbOSseqDTN9RE5+yGZy2vojxSD3crhJNeh8Yj3QtN6sfnvg==
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=W2QrLWOJ471WddrIDb2oIZoosMi0VA38DRqFzfwk6Bw=;
 b=QzXzPPErPY2rF7igR4pHYEiKfvBJjeg6Y5SMeVugFz2HtEj9n37YISmauBbE29kfMx7ZttHbYEaccgcYKzwWm+/9xHP1/e68YApF5rkOSQrECLDIg+KqTwnmopTS14dRBvZXgtA8EAQdM2doyqkItijaHk0aaXswxXjdrq0Q0oU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <jbeulich@suse.com>, <andrew.cooper3@citrix.com>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, Stefano Stabellini <stefano.stabellini@amd.com>
Subject: [PATCH] x86/cpufreq: Add Kconfig option for CPU frequency scaling
Date: Thu, 5 Feb 2026 17:32:22 -0800
Message-ID: <20260206013222.4081160-1-stefano.stabellini@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: MWH0EPF000989E5:EE_|MN6PR12MB8469:EE_
X-MS-Office365-Filtering-Correlation-Id: f1fd3076-a094-4b19-c9df-08de651f94a5
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?3pzHTKet3QvvucXjQIp0QCQEvXucr5ukpUaXbbWCbEhFsUYLV7YQVv+ckZC0?=
 =?us-ascii?Q?/BMFGtzsAufo0v85l+QemgPhLmsSDDFaU+CPQujAuijHOxzXhk4lbiMUgRNP?=
 =?us-ascii?Q?YQzmIyJjvZI8wLqTPOVJYbEDAx3PRZbvYYWc/jmaHMrk4GiL0dNN4OVJ8Ymu?=
 =?us-ascii?Q?tpYIVbjlne6BdNXPkeCSmG+pVq6n718J6B8nlBlz8v38+ByxoXooaUd9zZBj?=
 =?us-ascii?Q?IW0yoLwMf7vjMJXB5IlCaOL3Ufy/5+qcv9Ax/BfgrPDkm4CA66sGkPdVRPqT?=
 =?us-ascii?Q?PDueUJyH2X20pead89SII9k6RckAMFcegyhuT+0TsCIdP4ZD4Tyc/3chxwlL?=
 =?us-ascii?Q?ZHUEh2bBZMiUhMDdOceC/MI/PvgA5px8ztOcL/wpKn07B4XQ4ASZW2DlmWSr?=
 =?us-ascii?Q?iUDtCPLC6F+kZfT5WbTLPdrZw3nL2huey8i1/bffFcXZw5F2ieqUdPiIxlkq?=
 =?us-ascii?Q?m7GrRn/ordrW1PXUh6+g0S0gxp41P71nI/dzfvX9NN7JsS1EYJojgVxqOBA0?=
 =?us-ascii?Q?B6nkXcHl3lVSM38+cAE9MHmXFD5letvE6vM4Geoq4kXe+86HMy8GF6a3+Ae5?=
 =?us-ascii?Q?1RboNJJASgdplGyNsrLmPlXWqVA/L4QnBShiR035blG7e7QxoDX3GrVhHjN7?=
 =?us-ascii?Q?JOjw7Z7SnXgPwniVJy99NJuhHcf771N9hkSsFaBkuVF5xveDajAgqcWyQU8N?=
 =?us-ascii?Q?VuT9xK4Zn8wRnjF5VWlpCI1YoTNVY23MKqUmWQH+r/9fY1MGsrbolQy/YL2w?=
 =?us-ascii?Q?OsPeOfF5yOvQGh5Bi/RnBM2SvWTymI+Wn3O0mfdpwyH7flszvVANeWMLkYVs?=
 =?us-ascii?Q?MwWUZ0AHBUncxpf93f6gR8aR8f5EcNa2Z4OT1F7pefYEFhDZak9DroImCZgi?=
 =?us-ascii?Q?4CdJGRRvoebcVhUREXGyku1LCXAylXTKpyFnec2CPf20YeR9H/JGQfi9d0uO?=
 =?us-ascii?Q?NgmvF7AFFYkLUR5UgDUj+Sim+CEFQChviVvqk50UPQmbsHRqgiKzHZJSjXKO?=
 =?us-ascii?Q?HHch0xT+d27D8+tBfD/7aLUpYrAITWWwQyfU8/r93vhhhEsUTkIw0gCoa3+Z?=
 =?us-ascii?Q?SHpe+3Co68BV8foRVEAPoxeIMrQLm9S3g6A8S+E2NP7/8YsIq4adPli6LENQ?=
 =?us-ascii?Q?5g3WUs/CPgpbxiCMQ5MJ8FErqJ/6oGuT1Ynv95+778FjOj/uDjeCMhHwry4A?=
 =?us-ascii?Q?rjGcnR2IYYWeCmkllhl5KU/dn8J7SOQX6koE4d+OXbYHZKSTBILoyIwbZJqd?=
 =?us-ascii?Q?ZnlwYtNMu/RhWlkS/Q7fLfWgmidOeoQgwncCMoS8/uO3m/pDC43kt91/G1CH?=
 =?us-ascii?Q?BeuwLCubYXyFIbELJ93nPx3D7B4lvGuQZp63IQIE67nUS17s16aFhuR3A4ZB?=
 =?us-ascii?Q?nLHat1ODY4V5b5ChijTMYKWrDyY59KaBCel3ibAd13pxYI6fw9sqC5s74izl?=
 =?us-ascii?Q?Hv1WVGpSs9ANNRb/bKH70nmcmp5f3efJqvfpXtNvcMW0GdOE2wMst/INl8Gd?=
 =?us-ascii?Q?HQMGYZWMuotJ3jkGHh73qSTfUkfgaOs6cc0PKI3NmtmpDXWreLlp+NqD/rvN?=
 =?us-ascii?Q?9Ny0o/2rLgJrwCcfIzdwaEsbOQfgosUj/6BTtQUr9Zh18QAabST+3a9kjybe?=
 =?us-ascii?Q?wgEIvqNn/UK3hFeLJcpv+USyChpdHQ3FcbCnYNj/Jo+4JfFySImIuDvROXoI?=
 =?us-ascii?Q?wAaGcA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	D1jrqW67Bxg8HgjGs991HO/Cxw8Ry0ivNHxcmg4YiO3nfuETo0jM0fB1Upw40ajNkPew2jE/4QLW/0eOkuNrx5P4b7nQSJX556esrpA9aQcwi7hDg6UxvRpfXH50tfFrLwg6bpb3a6KYtHKIlxFZnnZm8QRraffmQOJeM6VaC4b1ShNIWcJRkMBQFxb1Y38Y6KAtJbIse8bSAf+GtvHq5/TCuloFEkpNnfj6KOB1HKPaDSxaP0MtzS/ZhDHFSJSMe1xE3R6ws+Pj4yCJaRPSf2cQwbl2yQg4OivyJVxzId59ITJ60PaIIOGvijzgUm94GSdjEz1vdPJMnTRACNdv4FrkUke6MqcX+8gjO2w8XOw7lW55yeX7vxz5fgBfAKl/QSsC99BSeMXp3hWLmLvrMie/9Eetz9TjVFtVaTms/ZiphG1T5flbXbqMxRNlmh/Y
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 01:32:24.4167
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f1fd3076-a094-4b19-c9df-08de651f94a5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000989E5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8469

Add CONFIG_CPUFREQ to allow CPU frequency scaling support to be
disabled at build time. When disabled, this removes cpufreq code
from the build.

Add stubs where necessary.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
 xen/arch/x86/acpi/Makefile         |  2 +-
 xen/common/Kconfig                 |  4 ++--
 xen/drivers/Makefile               |  2 +-
 xen/drivers/cpufreq/Kconfig        | 16 +++++++++++++++-
 xen/include/acpi/cpufreq/cpufreq.h |  5 +++++
 xen/include/xen/acpi.h             |  8 +++++++-
 xen/include/xen/pmstat.h           | 15 ++++++++++++++-
 xen/include/xen/sched.h            |  9 +++++++--
 8 files changed, 52 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/acpi/Makefile b/xen/arch/x86/acpi/Makefile
index 041377e2bb..aa476f65d5 100644
--- a/xen/arch/x86/acpi/Makefile
+++ b/xen/arch/x86/acpi/Makefile
@@ -1,4 +1,4 @@
-obj-y += cpufreq/
+obj-$(CONFIG_CPUFREQ) += cpufreq/
 
 obj-y += lib.o power.o cpu_idle.o cpuidle_menu.o
 obj-bin-y += boot.init.o wakeup_prot.o
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d7e79e752a..cddd7337bb 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -652,7 +652,7 @@ endmenu
 
 config PM_OP
 	bool "Enable Performance Management Operation"
-	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	depends on ACPI && CPUFREQ && SYSCTL
 	default y
 	help
 	  This option shall enable userspace performance management control
@@ -660,7 +660,7 @@ config PM_OP
 
 config PM_STATS
 	bool "Enable Performance Management Statistics"
-	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	depends on ACPI && CPUFREQ && SYSCTL
 	default y
 	help
 	  Enable collection of performance management statistics to aid in
diff --git a/xen/drivers/Makefile b/xen/drivers/Makefile
index 2a1ae8ad13..3d81b8dde4 100644
--- a/xen/drivers/Makefile
+++ b/xen/drivers/Makefile
@@ -1,5 +1,5 @@
 obj-y += char/
-obj-$(CONFIG_HAS_CPUFREQ) += cpufreq/
+obj-$(CONFIG_CPUFREQ) += cpufreq/
 obj-$(CONFIG_HAS_PCI) += pci/
 obj-$(CONFIG_HAS_VPCI) += vpci/
 obj-$(CONFIG_HAS_PASSTHROUGH) += passthrough/
diff --git a/xen/drivers/cpufreq/Kconfig b/xen/drivers/cpufreq/Kconfig
index cce80f4aec..49631f92de 100644
--- a/xen/drivers/cpufreq/Kconfig
+++ b/xen/drivers/cpufreq/Kconfig
@@ -1,3 +1,17 @@
-
 config HAS_CPUFREQ
 	bool
+
+config CPUFREQ
+	bool "CPU Frequency scaling"
+	default y
+	depends on HAS_CPUFREQ
+	help
+	  Enable CPU frequency scaling and power management governors.
+	  This allows Xen to dynamically adjust CPU P-states (performance
+	  states) based on system load.
+
+	  Disabling this option removes all cpufreq governors and power
+	  management interfaces. This is useful for real-time systems or
+	  minimal hypervisor builds.
+
+	  If unsure, say Y.
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 0171ccf0ba..a97c642a50 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -381,8 +381,13 @@ int write_ondemand_up_threshold(unsigned int up_threshold);
 
 int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq);
 
+#ifdef CONFIG_CPUFREQ
 void cpufreq_dbs_timer_suspend(void);
 void cpufreq_dbs_timer_resume(void);
+#else
+static inline void cpufreq_dbs_timer_suspend(void) {}
+static inline void cpufreq_dbs_timer_resume(void) {}
+#endif
 
 void intel_feature_detect(struct cpufreq_policy *policy);
 
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index 90635ba0f3..7077c27150 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -185,8 +185,14 @@ static inline unsigned int acpi_get_csubstate_limit(void) { return 0; }
 static inline void acpi_set_csubstate_limit(unsigned int new_limit) { return; }
 #endif
 
-#ifdef XEN_GUEST_HANDLE
+#if defined(XEN_GUEST_HANDLE) && defined(CONFIG_CPUFREQ)
 int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32));
+#elif defined(XEN_GUEST_HANDLE)
+static inline int acpi_set_pdc_bits(unsigned int acpi_id,
+                                    XEN_GUEST_HANDLE(uint32) pdc)
+{
+    return -ENOSYS;
+}
 #endif
 int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);
 
diff --git a/xen/include/xen/pmstat.h b/xen/include/xen/pmstat.h
index 6096560d3c..4efddad438 100644
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -5,10 +5,23 @@
 #include <public/platform.h> /* for struct xen_processor_power */
 #include <public/sysctl.h>   /* for struct pm_cx_stat */
 
+#ifdef CONFIG_CPUFREQ
 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);
+#else
+static inline int set_px_pminfo(uint32_t acpi_id,
+                                struct xen_processor_performance *perf)
+{
+    return -ENOSYS;
+}
+static inline int set_cppc_pminfo(unsigned int acpi_id,
+                                  const struct xen_processor_cppc *cppc_data)
+{
+    return -ENOSYS;
+}
+#endif
+long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
 
 #ifdef CONFIG_COMPAT
 struct compat_processor_performance;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1268632344..1b431fc726 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1255,9 +1255,14 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
 extern bool sched_smt_power_savings;
 extern bool sched_disable_smt_switching;
 
-extern enum cpufreq_controller {
+enum cpufreq_controller {
     FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
-} cpufreq_controller;
+};
+#ifdef CONFIG_CPUFREQ
+extern enum cpufreq_controller cpufreq_controller;
+#else
+#define cpufreq_controller FREQCTL_none
+#endif
 
 static always_inline bool is_cpufreq_controller(const struct domain *d)
 {
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 01:42:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 01:42:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222672.1530433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voArW-0004RO-Q3; Fri, 06 Feb 2026 01:42:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222672.1530433; Fri, 06 Feb 2026 01:42: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 1voArW-0004RH-NO; Fri, 06 Feb 2026 01:42:22 +0000
Received: by outflank-mailman (input) for mailman id 1222672;
 Fri, 06 Feb 2026 01:42: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voArU-0004RB-Na
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 01:42:21 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 10337af4-02fd-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 02:42:15 +0100 (CET)
Received: from pps.filterd (m0367130.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616193Ys030491
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 01:42:14 GMT
Received: from bl0pr03cu003.outbound.protection.outlook.com
 (mail-eastusazon11012000.outbound.protection.outlook.com [52.101.53.0])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c4yx8bf96-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 01:42:14 +0000 (GMT)
Received: from BYAPR08CA0004.namprd08.prod.outlook.com (2603:10b6:a03:100::17)
 by SJ2PR16MB5527.namprd16.prod.outlook.com (2603:10b6:a03:548::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 01:42:10 +0000
Received: from SJ1PEPF00002327.namprd03.prod.outlook.com
 (2603:10b6:a03:100:cafe::b1) by BYAPR08CA0004.outlook.office365.com
 (2603:10b6:a03:100::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 01:42:07 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ1PEPF00002327.mail.protection.outlook.com (10.167.242.90) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 01:42:09 +0000
Received: from pps.filterd (m0373460.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 6161F7203164864
 for <xen-devel@lists.xenproject.org>; Thu, 5 Feb 2026 20:42:06 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c23g0wj3m-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 20:42:05 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id oArDvhTbCkQ6qoArEvHcXl; Fri, 06 Feb 2026 01: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>
X-Inumbo-ID: 10337af4-02fd-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=7APvWfqG+hCXb8s66oQoapLTBze
	vhzXm7V+emeMXqOE=; b=TSnKGz2iSquydDCU9hCod2pXEtn1GSGXy7dAPn+U/RP
	OBfUZQhgf8hg2di+NVocJt/VUS4nLQxIAzSxv/VVoXA4OcK9nVxX6dRP9QvPpYrp
	1Hs9MpfFuxxLwPeuiTVsh0sv7crYWA3rgM0w2cs9gf5gd8jtkP+YKN43XS6SV6aH
	FUHzW8ywe0Zzr/4fCA9ph0KYQUIevGn1K0ymNPIvxOGWz+RJX/fZNgldCDbwf5ps
	ulGziPAElRwWYsUOzwYxjoxPv6qi1XJaCkMu0wo9XDr6CBc1IvSkRcgHJK7qTPlU
	xiwpLMMf9w8KZoDSIzx7r9zOF5MfDSsbZeIxFRBpHeA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yeSVBtMCZJFagyzMHaQ+hpb7I4a99Jx9q9JzQWMk+B7D76YlR98lTbzAE281DQa3xV58xaYTpZwTG25N64I6bEqi1JIboTH0NMBpNve1xJ4qwt4EcxRB5+akKdzFWsWBAnBPttpfQYyLe21/03cpeW+VWOxvpXV0oSfgHOC0nc401y23k7HQ9BGgYPrPzkNPbCzZN2GJMtL+E69hh34g6A9KVRLy9hVFhT01tPij+Gzm0nUZQHOdq+tPxJ4rRmNv0XmPpz64FsBdhhMOapEnCNyLhh5IDirL1tPj85JL5kROeLSiKAa21sDBYomkj+hj7sg0J6bzqTgclWeAjV8+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=7APvWfqG+hCXb8s66oQoapLTBzevhzXm7V+emeMXqOE=;
 b=O2DOxcUbwL1HeAzixrCqFBAJO2djcqoD+rdvC86TAYZQgxW7Hromfxhmysdr4crQ5NMQd8CnLfVxhRVIiap81mmTbRLW3PTDN3+0ipCDB1cEKL/0Q1setywhlGXVpYcboyz5aTW5K76D1saOZB9UGbkge4AH+wk43QgIshaBMsOCyMWoqriXu0P3Xhu2k9R4t6NVUV2t5904VCfM8BMtLmuQ4z07GeOsKEccmiFiY8ONSJZjRMUVDlP5sK0ZU43lQLDf1/zGzoz6Z3KVJ8/3x9q4HnmR7VxMqwT9V9VCDlnpjKaLvQ08rrVd8GNSqozWR7bDPA7Sf6B8IPmHH7jIEw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7APvWfqG+hCXb8s66oQoapLTBzevhzXm7V+emeMXqOE=;
 b=SjD4Nh8G7S5EUxXss8qkpAepNVAtdgsvMEZieNHmRhuYHN+EAF8L5NNWHnp8W7uT2pTn2j3I7XB2YpuyyOHHvfwKlD3AbyjqvprlafFYrkOZHdJbbvFQF0+wULYnRoBQL6jhN4doPdd1i8eZR2Zi48WVqV/lSs3+0g/A13EM3AA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=7APvWfqG+hCXb8s66oQoapLTBzevhzXm7V+emeMXqOE=; b=oKd5rhlQV75n
	pvoWCBFhhNNXqcImffyybzNgme7SJxMn2u3eNs12/R8rF+EgUdvITXw0y91IYIEu
	dnKbiYWdpfR3g3qVIUdlMQCFAckdompyFKrs9SkLp4BLWLxfJCbFvyAztES2JjDb
	1ZlsFWYODeqg4E4REAU9VUHOBup5zBI7Y8vf3D37Gdh9QHQnQQw2pj9HTbL2Bk0s
	J8EG88qdchTHSqLfUWxP2DWX2+JX/p7eZSBqY9+6+WDnTXzxU75iD4swPZ3+AmVy
	mSTXpsBzR1ZhZWm+uReVyLuth+s+J6cTZTtH2mfnArDyoow8FMgEaZomEHQ2YFOE
	eVzMrOi2MA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=7APvWfqG+hCXb8s66oQo
	apLTBzevhzXm7V+emeMXqOE=; b=kCI0V4H+ScOevv60AWiK+JUQlb/qHC/Pn0sX
	b3t9U25mt5cR5zzk6zqDc5NUSBIphZsIZozsXjzRu1GWi7JCVAyub6p/4QGY74CP
	yIC13IjRdQG7QFrZwJiuklt8VKfX16v+CUGDJreRy5fus7Nb8mq7cOS/qaeEviWj
	WpmFY/EWEFPBxlR8J4dgdQVJbxgs4OX+WBvWA0DnBqnGCfEuSbRVx+Ys9nIku/5f
	IsBJGUXyDYfHbX8Mg3kzfQC4DTbVJ1TUolr974IYERxOjBEta/e7KSmPPR+3WZ41
	umnl0QA8RYnO5pY6CZ+06tYN01y/kwHyfoKEe/DRuK3FIW0Cyw==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oArDvhTbCkQ6qoArEvHcXl
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 5 Feb 2026 17:42:03 -0800
To: Stefano Stabellini <sstabellini@kernel.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, dmukhin@ford.com
Subject: Re: [PATCH v2 3/4] tests: use unit test fragment in PDX test
Message-ID: <aYVG6+jvmUrgOXYe@kraken>
References: <20260111041145.553673-1-dmukhin@ford.com>
 <20260111041145.553673-4-dmukhin@ford.com>
 <alpine.DEB.2.22.394.2601231708190.7192@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2601231708190.7192@ubuntu-linux-20-04-desktop>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 suspectscore=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0
 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060012
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00002327:EE_|SJ2PR16MB5527:EE_
X-MS-Office365-Filtering-Correlation-Id: 32d898fc-8413-4a2e-d90a-08de6520f185
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?QYgRWiOn6s4Yl5lgKySyfwVZZ8O6iLllB5uL2UMcm/041Nweu9oDMkoclv2c?=
 =?us-ascii?Q?qE6iFuKqZspMQrFK1tlLtXmUL7cK+4Tf0z9v1dg8de6m4D8dNAAaBmxJW753?=
 =?us-ascii?Q?woHt6brW9sU0pqL7HoAIt74t/qiEGsT5FznBdyPoRFnTeTeWnKnw/MQh/gYD?=
 =?us-ascii?Q?wMNl4J/9L+Cvayq2F+0Fna11OTD9RC6dXnEN0jQ3M+mvdufd3wqNoLyxIf+e?=
 =?us-ascii?Q?x+kp5RtLqCbPygnllTKzlFbRXiGyOOImjGThLqPDbnVSjZqC0D0yNFDb9wto?=
 =?us-ascii?Q?uSMtRf1ijvJ1z3HU4f1N4kbwxy9e3HjOWUVhRfHQuVxKz+sGgIRU3pQLfJ3i?=
 =?us-ascii?Q?LMILt3l+OeX9Xm0pJnkcbCTEN5if8EVFO4Py6s+QhFMDoCt8HDl2mzUIiFFN?=
 =?us-ascii?Q?SjzyZmtdHJCRkmsUIKVdga95I3xt/Mjk4uWc08kgx3PB+Wx3XOzXsp2E4lyt?=
 =?us-ascii?Q?ql3LzMYY3jszAIumgB1hYteiPZepJQPuYf8g59aQV2NdSg2Dn7L+RAIsPOrD?=
 =?us-ascii?Q?nt6vEboHjXV4YZIMtD8+mDJGTNRdweUWyVlYCRZO+DO668pjiIblpAPVYgAw?=
 =?us-ascii?Q?engJq9gdOubyGsvkCvIt/3ihQDfdDVPRizwFejFlPLLUsWf33Vyi2yfA2TTD?=
 =?us-ascii?Q?o0OzXB6epZoISCd3acI0vwhEUHvJuIRjII+OOBh3TyRtKuF2uiQM7z3HDzhS?=
 =?us-ascii?Q?MbAhW5lB22J/bMRiV++oMIL9U+MQFny+ttorGa/zA3WUPcrlrnUkoP58DcQY?=
 =?us-ascii?Q?hDs3BZ7bqltX3+PA4xjmBifptXKWP72pz2RdeEl8eMN7csdlGEiKPjfufxDV?=
 =?us-ascii?Q?s0PeqoJ7r4t93u4DBJ7xvpFb3vXomM8sX8aPmt0Jw/eASKv826wPbMPwtPrD?=
 =?us-ascii?Q?DvCK4uqUODboSeXdPEXE1jKaFjebsWa6rKrB2sCb1wnyDgkQOvemIOZvwYJL?=
 =?us-ascii?Q?DyHr+f+6DE3ZPLzi4T+1jOxaocbsg/S0AzAKeww1+iWc0cybDxYjTx+nJw/q?=
 =?us-ascii?Q?6IDR5qgiMERw/GBc06oW62PeQL/qVV1b3D3uIQNHlNOXwjwChA+JVJRmCBEr?=
 =?us-ascii?Q?sf9yDNCkX4GbI/PlNlq3wK3O5QxQ2eV+ti3jTZyvjcbEGhbeFiLpFGRa9kpx?=
 =?us-ascii?Q?4sERHwJW+JQYHZx/49t+L1NxtU12I1g+yHwsgqILFxAatKzJwJuypNUqmA4U?=
 =?us-ascii?Q?ZHY8i31cIzYBr0zigHnMb5fGf2kdK4S7UJZ1Vuky2RJVVABSHHKBxj25tNp0?=
 =?us-ascii?Q?7irwTBvOWRrsCK/KdHA2upIN5yd+dt7NjnZsQ3J5n7P3Lcaim0kry+m4ysDs?=
 =?us-ascii?Q?u9ajt5fwqlnYGvIkkmAx1A4HZ+81nXpyBhuQjmmZBeSVgcaD5cithn+oduHu?=
 =?us-ascii?Q?xi6wdl60hTRW1mq1xpowj6FpfzXSx/mYFKZsP4wcrKdnarETUBPnuLxt4P2Z?=
 =?us-ascii?Q?1FsX4KbjPYbIfDCZt4+1drBNgrLtlHwQakLP6N8n7Xq1WLVV92Vf/01Gw5tI?=
 =?us-ascii?Q?OMJTX1l0n5QOCv0Ht3yKj+GW+QQS00xjLP5+oO8uhUSIQtKw5Qe68HsWdCAU?=
 =?us-ascii?Q?r+3tQPKc5C4d4CwErmneUn0P/q3iqMAjLw8RicMBs+RYXTx1HsdvyuS5ejh3?=
 =?us-ascii?Q?+V3kkLNcdGG4XtvYhX07DQmc4MZWwuAIus6RyoUmzglkQfEo5LgEOo7rM+rM?=
 =?us-ascii?Q?v3T2eg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	hZyedsdwnuy64KqJ6iBfjA3y6gq2P7CR/tmndKsFCLkdD2mgy8TRQoi5j+XggOwAzLKsSg5lGPnK+2gjYiXGr3DEUfOw0nvsOCnnHZQVLu25FkjpgYOwwudQPyYnS4JPN2d8bc34DZ3jQ+jGlj9ZfLFhvjkGh0Vu1xgnfiIX8uDF2HNOV9ht06/50XVsvFuuR1My/s+C1vM1lReqh9r2Qwc0DHT1cVQ/F4sDNmBodWmVEP2dkV6UMUNI3Nulg6+0uA9L4c5/UFihRAIUEu7CXqD5gSc27P1y/BAwMR8d4axPAbFe1nGjbsv5woBRS0iG/8Yw4FuC0xXfDbTUheaW/N4xxHQvhymvUye4usP9NVniekCNoG56vvQlNGNx7jbHsSWN1ShkPOC40kc0i1/0pvU34PN9UEHKN2fWFdEulCvl5wT10Q/NXTWCIaju0Arr
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	mG0+9nTjHFVZec3kORpfL2ZZAgU1ZZTtX4ZEYiav2lZBc/DYEUOyLYRNrbHhFJEpxXUo0k+o7jcP2JxtyDKppb8xqIFajzw8lSzIK7bswqasEIrxMNV5eTCvjDLMsFVS9xk2wtl53wmln/62kUp+Mf7P0xjBXravJqZB0CeQjAXQTJPL8lbMU5+f/bPRLc74HnVNNQocy9rcN9vjsQISONEP/aBbUN1ZYc/MSMMqf7j5nAHux/p4CPtZd24Vrusdw6r7hwXqNMDSTHlfPaD7qC+QntzvZ+E0eBvcAVSLnOUj6eA9QVYAY6vj2UStH8BjCea0tdqkyl0IXVFNUaRLRrMOy0T3hkmZ3KwCh8I6rq77IJn1lsGpyL1y3So6ZAFb+qQ9hkJaU7Tjh5Jmoa3rOltwCR/V0Ufdck65VGNuIK527oDYugYpb32PVdP7XJ5I31vhmA2Y/ycpvDQ5r8p7Uteqv/SVnuIceMM5Z2ijWj0kGHH5VAwzN98AQ9BAekEXcybzWQ/5yEvAElpC5QW395ldIhpr2bF1XL0N8sYZRgErrn2rDTpILee/LFXtLSPTRE87vw4Euyzs3xXzMO9w1OpChjWLodF6oF74lgEfwV3sAn8ZOMZ3B3ePcV608rcC
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 01:42:09.8132
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 32d898fc-8413-4a2e-d90a-08de6520f185
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00002327.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR16MB5527
X-Proofpoint-ORIG-GUID: P_flqzgq-vM3Q8N9_e0rWxkP3MSM8lf3
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDAxMiBTYWx0ZWRfX6q36dcQSQCtF jCisMRifrqXfgzYgTF03nUq00Zuo3scVEbcKEsWZceCbmjJ65Z83ccllCWv51RHn7ZNSOQF/xiJ cLheERPgrbqCPcBo0SBbvGYAfuJdAgS+grYZJWZxYYVf4zYv8ubKHc+n4RcYDShUX9xA4A0xkzT
 tT/DzLpsHCb8a3iDXReQUQs17hXmWY0it1SCX1E+IrEEZvDZoQu4/50vMRJRble/NmoxJufgLET 3YL903RGFHHQHFA+7859G9r6WXgDtp08Usb5ALPlLC7b+zSI200GInj0JY1hEdStcytjPNEvq9v JqBPLuwpki1KaHsIk+rSOSXeUAGMNBqpklaJGp++0/4Ivrynzklce59D5RlU8m3Q7RLJfqI7YuR
 2vdOPSgfKlSse9pHDHSQg7epRVPA929fmlTgiYi/GB2pRcIkNHr8Vbms2TcEFztBLZdDn1QkJgw 16f/HnAIfZgHIHVSJCg==
X-Proofpoint-GUID: P_flqzgq-vM3Q8N9_e0rWxkP3MSM8lf3
X-Authority-Analysis: v=2.4 cv=YoUChoYX c=1 sm=1 tr=0 ts=698546f6 cx=c_pps a=0Za+SRInewOPUeHoNPGlYA==:117 a=lOEMawUel/sSvQipkIvNbg==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=mLnsDVdbAAAA:8 a=cbNQJ9GKAAAA:8 a=vpxLyrnmyxfuXQSD9IgA:9 a=CjuIK1q_8ugA:10 a=DqJYxgmhk6moR-_7_KoZ:22 a=xnp1pY6zelCj5OLna2To:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 lowpriorityscore=0
 priorityscore=1501 malwarescore=0 adultscore=0 clxscore=1015 phishscore=0
 suspectscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0
 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060012

On Fri, Jan 23, 2026 at 05:09:05PM -0800, Stefano Stabellini wrote:
> On Sat, 10 Jan 2026, dmukhin@xen.org wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Use the new make fragment to generate test harness code for the PDX unit test.
> > 
> > Move <xen/bitops.h> earlier in xen/common/pdx.c to ensure harness.h is
> > included before triggering the #ifndef MAX_PFN_RANGES check when building a
> > unit test.
> > 
> > Additionally, use real <xen/pdx.h> in harness.h instead of a locally
> > copied version.
> > 
> > Update .gitignore to exclude generated test build-time dependencies.
> > 
> > Not a functional change.
> > 
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v1:
[..]
> > -
> > -test-pdx-mask: CFLAGS += -DCONFIG_PDX_MASK_COMPRESSION
> > -test-pdx-offset: CFLAGS += -DCONFIG_PDX_OFFSET_COMPRESSION
> 
> The test with -DCONFIG_PDX_OFFSET_COMPRESSION is lost?

Whoops, thanks for catching this!


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 01:47:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 01:47:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222679.1530443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voAwI-00050R-B7; Fri, 06 Feb 2026 01:47:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222679.1530443; Fri, 06 Feb 2026 01:47: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 1voAwI-00050K-8D; Fri, 06 Feb 2026 01:47:18 +0000
Received: by outflank-mailman (input) for mailman id 1222679;
 Fri, 06 Feb 2026 01:47: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voAwH-00050E-Fw
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 01:47:17 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3526ef1-02fd-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 02:47:16 +0100 (CET)
Received: from pps.filterd (m0367128.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 6161ONER003688
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 01:47:14 GMT
Received: from dm5pr21cu001.outbound.protection.outlook.com
 (mail-centralusazon11011004.outbound.protection.outlook.com [52.101.62.4])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c1vf7k4f0-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 01:47:14 +0000 (GMT)
Received: from BL1PR13CA0093.namprd13.prod.outlook.com (2603:10b6:208:2b9::8)
 by BN0PR16MB4382.namprd16.prod.outlook.com (2603:10b6:408:162::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 01:47:09 +0000
Received: from BL02EPF0001A104.namprd05.prod.outlook.com
 (2603:10b6:208:2b9:cafe::65) by BL1PR13CA0093.outlook.office365.com
 (2603:10b6:208:2b9::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 01:47:10 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BL02EPF0001A104.mail.protection.outlook.com (10.167.241.135) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 01:47:08 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 615Nnige1197779
 for <xen-devel@lists.xenproject.org>; Thu, 5 Feb 2026 20:47:07 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c21ngwhf9-46
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 20:47:06 -0500 (EST)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id oAw3vhYKmkQ6qoAw4vHfU9; Fri, 06 Feb 2026 01:47: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: c3526ef1-02fd-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=4xse/WhVvbHwCu4OtjXNed2d6MA
	IynAObHok+8iB7pk=; b=vbmVj9lbKcRF7Pf19ATGrcEuWw4oIiCMIb5T8xA3WIS
	w4N0eLCn2/nff59I8srJHd0m35oEELgY7zoDho7IbaFEhaaeWVk/zhRDfsoMFIuG
	pxRYsm7r2lRePwWvJ0NPkyFNk2lflmtnsRKaxuUxYQbRXpmUkGT3ERzaDRTmogB3
	7wY9A8bAf4PawC+5jpSiERnuvWgsSLSPtkxXnS4bhdlTkY7ZOoPBix/wR8gaFCYc
	thLWcozBGkRaHvpMo9E3hjymIyUaxHbUMV9l0tXWTxkvR/g47tonZF+Jr8WEyuZk
	nQH5FFkCfS1xo741gbLj/G4JoJKQIwhCMnfaikDjLJA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SPo894kfcd9ChbaqfeTI1KCJcsGankIBgJRdsvtzsbwtqwKIelN0GYEbQj0fmn26FCzmk7JpAaipPNA/bwtRZprqhy9/XzhqKfUlgHa5wYNmPBxHvOhK1GDiF/RMVLkTcuEIbeU3FnfVIYjiJqJLeP7cDrakhIOmQTUrj5B2op7haHWZDQovJEwiQo5uLxFoMJOTOIWyO+vFOR2087V/enHnp6X96hHo/+DdU5DwpNtnwOt4ec1nwajVU8TSAd5vUdUxIC06j8nw0dYYP6iN9TeAuiLuuLSfCYHf9KbnAW94GGa3jrjUPhHt0I7sG4GdWcvNvCC6eKY4nZEHE94I0A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4xse/WhVvbHwCu4OtjXNed2d6MAIynAObHok+8iB7pk=;
 b=C73qhxksH8RuVD+D36dY4REpxxJuUuMmKGqekPM6OSmKNeLT1/+WkdrIj3BKq+Xnwkm4/Kp1ZrkQHGeW+9FmrZbtM+G7YGvokzFCT0E4UiRLBYsWCkRTryUlqcXtZQ5y9oDwdfOuzdGSYMREJaZY1ox0DVuZO6ycm5yjoEJe/hBsFRQ8jrXrOe9DLbe0QxzRqB8qacj4fULqOMVu5ryS7qpZS4V6hyyb3P9IWopy5gCafT7+ylVpOfIorhaG8LYLOI1twVna/4ViHIBSO/oIiN+FgX1WSPl+zbFbGwdEkbtyOCoemE4i6KiM0A4N88oJOtRSGF2B7a76cWgpB3V1hw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4xse/WhVvbHwCu4OtjXNed2d6MAIynAObHok+8iB7pk=;
 b=RzxvkFHdYPwSRkVHu1OHZUPt0T8ESBTE0FVwI96xUDHrONg29Rhn9kegFPa3LBD7M0vqTbUlQatgcHc2eVnAXFE+L1AjcS0VxfRTA/Nn23bqm3HED32x/SWqHNNZTUimrd7yuXfs2Ht1pnMFgfemHGnp9aHOt9zlap7GMUxrBq4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=4xse/WhVvbHwCu4OtjXNed2d6MAIynAObHok+8iB7pk=; b=fa5NgOvQiXCR
	ynIamat+WCb6hqgVFNlqHkSLMjYBeD8b1KNHy8vluaygO7U0rqga4hu+wHSiyiau
	7lX4F2jeROqIx2QGm6RpiT9UQeNbuGxT6MJyxkkFm1gUhTQPXYabDRnIiRT2eBAM
	h/pX8xOztfR658a05kq+oUNJdVMIoBqunta7Q2/bfYon5oHw3BhBrZv+hurDoYax
	sB/US1QKW76eUduvRDYqSVXfqmd3b/EC/HbQ6ESNdyI8o4/WgXeBT3z1AxiVGuQm
	YRZibk0/Zg1EO1cgqgP2TvnCvV/+jykhGkpRpuCUNjr10x0lReLVny5SzQd/HdDj
	sw1tjCrCqg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=4xse/WhVvbHwCu4OtjXN
	ed2d6MAIynAObHok+8iB7pk=; b=TJHNLWMWu0zmcAAbDrzC6a4cmMJnaY/Q8cuW
	mQEBiyn0kYGyRK4eVayp9IEyRg5sj40nrnFpvGydWCDd/A7A0GStxjFENaK6z8J3
	1vsRh11P8ZFy6/eP81j6HJDCm38d7R8JTe2760ssc+9UnwrIvU4yrTZpZBRy6gr+
	XY/OB7UztzvUqbW6z1Q78nGRPgtjyLG2b/LqZpun/gpQNOFWRIAJT1p0Q2johHhq
	VLVKp99dTeiYzqfCvmGMJ2eaRtTVQIoP24sjfBfvPdd6Zrf5FVgjIs3cixezlG0T
	/s/DkV1FG9kEKDl+4KO43y+ThcEtCkhYjYWmrnTfdpm85genDQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oAw3vhYKmkQ6qoAw4vHfU9
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 5 Feb 2026 17:47:03 -0800
To: Stefano Stabellini <sstabellini@kernel.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, dmukhin@ford.com
Subject: Re: [PATCH v2 4/4] tests: use unit test fragment in vPCI test
Message-ID: <aYVIF1mcNgElm0E3@kraken>
References: <20260111041145.553673-1-dmukhin@ford.com>
 <20260111041145.553673-5-dmukhin@ford.com>
 <alpine.DEB.2.22.394.2601231718380.7192@ubuntu-linux-20-04-desktop>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.22.394.2601231718380.7192@ubuntu-linux-20-04-desktop>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 spamscore=0 adultscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060012
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A104:EE_|BN0PR16MB4382:EE_
X-MS-Office365-Filtering-Correlation-Id: e6614809-af2f-44bd-4dda-08de6521a38f
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?vknYQuRoN+4XZEgf8bhfWDWYtJYWwr9YeN+jCfVgawZypChmluFDFLvPS77o?=
 =?us-ascii?Q?A+2BAz/tXWx3r+t0I3c+BzcTOglKPM1vioUP5Bmx8gLhGKmRYOTOjGR28h91?=
 =?us-ascii?Q?RI0pQe+g0ZLYWzggCoGSZzAGRe3wrrpTzm8ewnb2IFbjWLV+02bdwZNHPbyH?=
 =?us-ascii?Q?eHkWqvGQgY2l7uUoefioQ/RPEJzkxw2b8RdOKX9zGIbIiDOeJlBmh1m/4jPo?=
 =?us-ascii?Q?025/b2UL66sEMIVSmPqhafZNAKLNyhx9QPQ1nt2mY0+H9B7aiVJqepd3WbIF?=
 =?us-ascii?Q?eCdOnZcdt14tZA64jikjUPDNxuW0XmjtS9368WyEdYh5gnjx2HKG5qpntAig?=
 =?us-ascii?Q?/iDquHyHvWDQkOSrI14ZFarB39cd7iR4U9kCKOOIXIwEMmdQKpocuPVNS2yr?=
 =?us-ascii?Q?p3UDK/0Yi86XxIkB204OQvwr8PwNVr7Al1AE2Ttey1yB576HP/QCYB5WnXJD?=
 =?us-ascii?Q?m0Drf/I8u5rMdam9/dDXYeOekRWbrHSZ7x2TOzVFzCceSpa1lmy7HxGjtIFn?=
 =?us-ascii?Q?OKOlFgo8ix7a1AYR4BIN7VeJW06FQ963RH93i0z9qmloEBBVKp8vfi/RpsF0?=
 =?us-ascii?Q?7vAKT0shCMkDE/cT8W62m0GVd9joqdJrtSO/m1lLroau4v3aGrUy4ANJW1BW?=
 =?us-ascii?Q?Z/zRt2hYugC/ihCFPGxGiFZwuwkzUmaxbf341mmua7oTcgXNuadD/Kykx/be?=
 =?us-ascii?Q?rE2pY1lu4SCt6rQWHeSBww66nJ96AAFMevLNMmL8mMz7znU3djQpJtHwyLPv?=
 =?us-ascii?Q?S1uH87kSZVi/VF7Go5/7dWatt2rLrMYhaNVsrg99ipjhAxuJ3gG6+fhAeInf?=
 =?us-ascii?Q?7GZsMvlKf7caoZGxc/0mi6y7H+ToArQG1cF7Rimu2VifW7sItOj98KmEtZi5?=
 =?us-ascii?Q?ITPeukH9rZWrYASHyd+n1QJxh8OZl9nwUmbUPyP/M5uz6dvsnyG+gkZe8BMR?=
 =?us-ascii?Q?rL8U22FYwAK2slPwsz9NEW+ZqLl6+JaTff/aNXSMOma0xE6P4VhQbwOXKOxE?=
 =?us-ascii?Q?TxBr/+cLBJTml32eWf+KBNM1RTTgvgWFFxaydOK1aZEDMlWm2gG5A0YtgpBr?=
 =?us-ascii?Q?541emZDlG7CfkKqFLozj3E8SGKYHMOiuejm6OBAPW33N3Zav0qIXjkwesmpU?=
 =?us-ascii?Q?dEASBqEK1xzQHGbWxTt/vKZmLHuLDnWdyfnH3KUd1UX3EAFMOYfqFSk/a+Tg?=
 =?us-ascii?Q?us0brUW+48vvUZ+nGV4yvmubPC5Iap85o4qPe7IU7SJNZVcC6HxKN2jWzXa2?=
 =?us-ascii?Q?egBUoG1isCQuRsxmtUGgWwjQItz9nNQ8rcCiLthl7YqkAXk/pcjFgxpLSc4b?=
 =?us-ascii?Q?ldyH+zZ7D7enGfiWlAHGYJ06tfQZH4YK51JySVusEx6I70ckswttWlatzG/u?=
 =?us-ascii?Q?tnudCWRwDtmBG6kAIigLy/2pt8yF9iu0V5FOcx/yZaQRJHM8alkkF7m597ie?=
 =?us-ascii?Q?ZZRIC25f8WjsjBQfKCEGqQ0S2dr11UCoV7Nes+ada9TbP0LOnJ9yjsain8EY?=
 =?us-ascii?Q?DyphjhMru2Lo1ArWUxj3tVggkqzWkseGGMein525qx6UZUbzebIqYuNI6GTB?=
 =?us-ascii?Q?lgb3y7pLEBWj1NjAWeIXxJLYpCymRzhnJA3exD0GOiY9spJcPLmMG/tfIAs0?=
 =?us-ascii?Q?EqC93UDowcOhVCQ3OaS4XHRIUPWVqLg1BtLm++1/ITnydJie1nMukvmXEi6g?=
 =?us-ascii?Q?oxUdiA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Gq398ag/304EYaFfdqsThP5/HS81H2uP7ou+FYOt+mIQpN12yaS5xZrdCmXhOFNbY9H/Yn9qZoi20wQkXPNFwmAcvmRX6LvXNJfCm3QbzL//ZyoWx8FVbdHy+37mp06XA6XRKMtqq6PBzEzrhGbH1JLxoGuSvZVVV9GZnGBWau2opWd050GAlZ08odadCyDThZRoYvVneuWMRy1L8zdkIEER6N4KBhLtGkEwOmLWts6/CLLm4DZpv/JN0ZtmrbazqD61h+A0hJKxjP6olDfAEd5VxT4Y/wfRo/PW094jRr0+4tmvIPuiwXp/ykOtYsC9Yd1Dg/38Jp1fJgxj1s1O4IcYJxANEKzJgGXMuM4eijJGArOzLarMp6VddaHyz6+/AjZhYk0g3w6xTtdIuwXBeHzD8Xkg3tZK26gBcLzAmK7qAXF5kA9pKFWXZRvvz9Hn
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	6qcR5LVRnXKuN+WtfnCpSQAbhvXfGHxs2taXuNcHt934Iex3Ts0pHW2azFIqBbOwFHUFaKaktJnvpM4bdPxqsoe7sSSxf0RA3DjjOliWHH25vm9z3CJaG8q7IsEMuwGuK58elCR3Nd1Eq0E2YHU6+e+LYbKDpXHBDST0owzg3bTwlw39IUMnMT6h4winCSMmJKE9aDZNeIXbmUqW3e3lbsI/9Dqbs4cvcHUNbzClBnZXCOCXxipT+QJSUCqIPKBXRyT31gTFsZZISSE2bm0+uuGRkzG28Qdi6gJ9xVg8Wj8vLCqJPJyU3lL63yEmGH8mtH9pX4rG+pzvmSIy9Ozn5RqfMA+8k/8AnaatMSXZUCHv9KJnL//LR7bgunj/wgVqkycjDCvG+AKaFC4rAeYPHWSZNG6AB93MPysQbSZkwPc8CqNG3kyZnnJCbd677rWJh4OP2vjhtSbJLS0ws2eMZJ9r4AL1b8HbTpM7Yvcle0OqNvZg21DgI2UxoK4h1b2CRj2FThID8C731DHyIrsW8CeuSpwcBP2/EJvc5JY0G2I2S8hP16RuWh96UgsKgTMSsKbfJLKL8NWlnQPHry7h6aWImx7Gtx5Sw0FXe61V1JjMZESp1sOwujW2lp2uAT8r
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 01:47:08.4591
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e6614809-af2f-44bd-4dda-08de6521a38f
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A104.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR16MB4382
X-Proofpoint-GUID: wq4EQBbEVO_uNOTRCAJIITM8VWjQe39A
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDAxMSBTYWx0ZWRfX7VSgKJGWOftm iU2PVe/Wv2FqdePto+vP1fWSLtYjYO4I1SnYcLGyUKAjPGUjqL3aZ3Ajwo7165hh8eq+gTYMGd6 bxxVIIOT4wlGvue5e2N7aH9tcLUReEDKL7iJAY6I3fBdtfv6kMyLU5DK5yD58fk9+G3UbFxJ9F0
 ZoFWtk+qS1ewPtbYSP9yTK9OlNFjNmns1EoUtJrjMMZtZU1jr4Y62UBbz7ZDJg6gY5WrjRULFDj 0f4+zWfOCNFU7o7uDLPT1AhgHI3kz9TQnSd2K6dzv6Gkk+ryiIfUTQS3M78VlSL5FNLiHY5IwiY W74jrcEdflIuR4oQsEvTfOGLhQUdrmOVyfhkAyk2m4mCClRP3Ja3h3glRoIh3OPOivYt6smp7Az
 eZoLgUuvKvXQYcrXVCS34+QnMH3AW046uvwVHfa8ai6U9qrv0a2cuvC6KcNE8YHGr7IRDr0KUVQ UhhiRqDfV0rbqJvqTEw==
X-Proofpoint-ORIG-GUID: wq4EQBbEVO_uNOTRCAJIITM8VWjQe39A
X-Authority-Analysis: v=2.4 cv=Ffk6BZ+6 c=1 sm=1 tr=0 ts=69854822 cx=c_pps a=7APEvFnVlBjFtWv3F9ubqA==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=mLnsDVdbAAAA:8 a=cbNQJ9GKAAAA:8 a=kDw80TMy2X5veftrcYMA:9 a=CjuIK1q_8ugA:10 a=DqJYxgmhk6moR-_7_KoZ:22 a=xnp1pY6zelCj5OLna2To:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 clxscore=1015
 priorityscore=1501 spamscore=0 lowpriorityscore=0 phishscore=0
 adultscore=0 bulkscore=0 malwarescore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2601150000
 definitions=main-2602060011

On Fri, Jan 23, 2026 at 05:25:18PM -0800, Stefano Stabellini wrote:
> On Sat, 10 Jan 2026, dmukhin@xen.org wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Use the new make fragment to generate test harness code for
> > the vPCI unit test.
> > 
> > Add new prepare-harness target to tests/Rules.mk as an optional step for
> > setting up mocked environment for building a test.
> > 
> > Fix hypervisor headers used to compile vpci.c against host environment
> > where necessary.
> > 
> > Fixup emul.h by adding missing mocks to account for new unit test infra.
> > 
> > Update .gitignore to exclude generated test build-time dependencies.
> > 
> > Not a functional change.
> > 
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> > ---
> > Changes since v1:
> > - new patch
> > ---
> >  tools/tests/Rules.mk        |  5 +++-
> >  tools/tests/vpci/.gitignore |  2 ++
> >  tools/tests/vpci/Makefile   | 52 ++++++++++++-------------------------
> >  tools/tests/vpci/emul.h     | 50 +++++++++++++----------------------
> >  tools/tests/vpci/main.c     |  2 --
> >  xen/include/xen/irq.h       |  2 ++
> >  xen/include/xen/list.h      |  2 ++
> >  xen/include/xen/numa.h      |  2 ++
> >  xen/include/xen/pci.h       |  2 ++
> >  xen/include/xen/pfn.h       |  2 ++
> >  xen/include/xen/spinlock.h  |  2 ++
> >  xen/include/xen/types.h     |  4 +++
> >  12 files changed, 56 insertions(+), 71 deletions(-)
> >  create mode 100644 tools/tests/vpci/.gitignore
> > 
> > diff --git a/tools/tests/Rules.mk b/tools/tests/Rules.mk
> > index daa9e69301e4..26f3d00b5fb9 100644
> > --- a/tools/tests/Rules.mk
> > +++ b/tools/tests/Rules.mk
> > @@ -11,13 +11,16 @@ $(shell sed -n \
> >      's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
> >  endef
> >  
> > +.PHONY: prepare-harness
> > +prepare-harness:
> > +
> >  # Generate mock environment by replicating header file hierarchy;
> >  # each header file will point to a harness header.
> >  #
> >  # $1 target
> >  # $2 list of test harnesses
> >  define emit-harness-nested-rule
> > -$(1): $(2)
> > +$(1): prepare-harness $(2)
> >  	set -e; \
> >  	mkdir -p $$(@D); \
> >  	for i in $(2); do [ -e $$@ ] || ln -s $$$$i $$@; done
> > diff --git a/tools/tests/vpci/.gitignore b/tools/tests/vpci/.gitignore
> > new file mode 100644
> > index 000000000000..d66c2cd56be6
> > --- /dev/null
> > +++ b/tools/tests/vpci/.gitignore
> > @@ -0,0 +1,2 @@
> > +/generated
> > +test-vpci
> > diff --git a/tools/tests/vpci/Makefile b/tools/tests/vpci/Makefile
> > index 97359ff67f86..695a275675f8 100644
> > --- a/tools/tests/vpci/Makefile
> > +++ b/tools/tests/vpci/Makefile
> > @@ -1,43 +1,23 @@
> > -XEN_ROOT=$(CURDIR)/../../..
> > -include $(XEN_ROOT)/tools/Rules.mk
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +#
> > +# Unit tests for vPCI.
> > +#
> >  
> > -TARGET := test_vpci
> > +TESTS := test-vpci
> >  
> > -.PHONY: all
> > -all: $(TARGET)
> > +XEN_ROOT = $(CURDIR)/../../..
> > +CFLAGS += -DCONFIG_HAS_VPCI
> >  
> > -.PHONY: run
> > -run: $(TARGET)
> > -ifeq ($(CC),$(HOSTCC))
> > -	./$(TARGET)
> > -else
> > -	$(warning HOSTCC != CC, will not run test)
> > -endif
> > +include $(XEN_ROOT)/tools/tests/Rules.mk
> >  
> > -$(TARGET): vpci.c vpci.h list.h main.c emul.h
> > -	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
> > +# Do not mock xen/vpci.h header for the test
> > +prepare-harness:
> > +	set -e; mkdir -p $(CURDIR)/generated/xen; \
> > +	ln -sf $(XEN_ROOT)/xen/include/xen/vpci.h $(CURDIR)/generated/xen
> >  
> > -.PHONY: clean
> > -clean:
> > -	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h
> > +CFLAGS += -I $(XEN_ROOT)/xen/include/
> >  
> > -.PHONY: distclean
> > -distclean: clean
> > +$(eval $(call vpath-with-harness-deps,vpci.c,$(XEN_ROOT)/xen/drivers/vpci/,emul.h))
> >  
> > -.PHONY: install
> > -install: all
> > -	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
> > -	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
> > -
> > -.PHONY: uninstall
> > -uninstall:
> > -	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
> > -
> > -vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
> > -	# Remove includes and add the test harness header
> > -	sed -e '/#include/d' -e '1s/^/#include "emul.h"/' <$< >$@
> > -
> > -list.h: $(XEN_ROOT)/xen/include/xen/list.h
> > -vpci.h: $(XEN_ROOT)/xen/include/xen/vpci.h
> > -list.h vpci.h:
> > -	sed -e '/#include/d' <$< >$@
> > +test-vpci: vpci.o main.o
> > +	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
> > diff --git a/tools/tests/vpci/emul.h b/tools/tests/vpci/emul.h
> > index dd048cffbf9d..979e86e2692e 100644
> > --- a/tools/tests/vpci/emul.h
> > +++ b/tools/tests/vpci/emul.h
> > @@ -34,8 +34,16 @@
> >  #define ASSERT(x) assert(x)
> >  #define __must_check __attribute__((__warn_unused_result__))
> >  #define cf_check
> > +#define always_inline inline
> >  
> > -#include "list.h"
> > +typedef int64_t s_time_t;
> > +typedef uint8_t nodeid_t;
> > +typedef uint8_t u8;
> > +typedef uint16_t u16;
> > +typedef uint32_t u32;
> > +typedef uint64_t u64;
> > +
> > +#include <xen/list.h>
> >  
> >  typedef bool rwlock_t;
> >  
> > @@ -43,10 +51,6 @@ struct domain {
> >      rwlock_t pci_lock;
> >  };
> >  
> > -struct pci_dev {
> > -    struct vpci *vpci;
> > -};
> > -
> >  struct vcpu
> >  {
> >      struct domain *domain;
> > @@ -57,35 +61,17 @@ extern const struct pci_dev test_pdev;
> >  
> >  typedef bool spinlock_t;
> >  #define spin_lock_init(l) (*(l) = false)
> > -#define spin_lock(l) (*(l) = true)
> > -#define spin_unlock(l) (*(l) = false)
> > -#define read_lock(l) (*(l) = true)
> > -#define read_unlock(l) (*(l) = false)
> > -#define write_lock(l) (*(l) = true)
> > -#define write_unlock(l) (*(l) = false)
> > +#define spin_lock(l) (assert(!*(l)), *(l) = true)
> > +#define spin_unlock(l) (assert(*(l)), *(l) = false)
> > +#define read_lock(l) (assert(!*(l)), *(l) = true)
> > +#define read_unlock(l) (assert(*(l)), *(l) = false)
> > +#define write_lock(l) (assert(!*(l)), *(l) = true)
> > +#define write_unlock(l) (assert(*(l)), *(l) = false)
> >  
> > -typedef union {
> > -    uint32_t sbdf;
> > -    struct {
> > -        union {
> > -            uint16_t bdf;
> > -            struct {
> > -                union {
> > -                    struct {
> > -                        uint8_t func : 3,
> > -                                dev  : 5;
> > -                    };
> > -                    uint8_t     extfunc;
> > -                };
> > -                uint8_t         bus;
> > -            };
> > -        };
> > -        uint16_t                seg;
> > -    };
> > -} pci_sbdf_t;
> > +#define lock_evaluate_nospec(l) (l)
> > +#define block_lock_speculation()
> >  
> > -#define CONFIG_HAS_VPCI
> > -#include "vpci.h"
> > +#include <xen/vpci.h>
> >  
> >  #define __hwdom_init
> >  
> > diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
> > index 2ef8d4e03f1d..3753417e866d 100644
> > --- a/tools/tests/vpci/main.c
> > +++ b/tools/tests/vpci/main.c
> > @@ -189,8 +189,6 @@ main(int argc, char **argv)
> >      uint32_t r24 = 0;
> >      uint8_t r28, r30;
> >      struct mask_data r32;
> > -    unsigned int i;
> > -    int rc;
> >  
> >      INIT_LIST_HEAD(&vpci.handlers);
> >      spin_lock_init(&vpci.lock);
> 
> The patch looks OK but I recommend to split the xen headers changes into
> a separate patch

Will do.

> 
> 
> > diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
> > index 6071b00f621e..f7fa1d0fa29b 100644
> > --- a/xen/include/xen/irq.h
> > +++ b/xen/include/xen/irq.h
> > @@ -1,5 +1,6 @@
> >  #ifndef __XEN_IRQ_H__
> >  #define __XEN_IRQ_H__
> > +#ifdef __XEN__
> >  
> >  #include <xen/cpumask.h>
> >  #include <xen/rcupdate.h>
> > @@ -208,4 +209,5 @@ unsigned int arch_hwdom_irqs(const struct domain *d);
> >  void arch_evtchn_bind_pirq(struct domain *d, int pirq);
> >  #endif
> >  
> > +#endif /* __XEN__ */
> >  #endif /* __XEN_IRQ_H__ */
> > diff --git a/xen/include/xen/list.h b/xen/include/xen/list.h
> > index 98d8482daba1..06d2fa3aed15 100644
> > --- a/xen/include/xen/list.h
> > +++ b/xen/include/xen/list.h
> > @@ -7,8 +7,10 @@
> >  #ifndef __XEN_LIST_H__
> >  #define __XEN_LIST_H__
> >  
> > +#ifdef __XEN__
> >  #include <xen/bug.h>
> >  #include <asm/system.h>
> > +#endif
> >  
> >  /*
> >   * These are non-NULL pointers that will result in faults under normal
> > diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h
> > index f6c1f27ca105..80d60fd49178 100644
> > --- a/xen/include/xen/numa.h
> > +++ b/xen/include/xen/numa.h
> > @@ -1,5 +1,6 @@
> >  #ifndef _XEN_NUMA_H
> >  #define _XEN_NUMA_H
> > +#ifdef __XEN__
> >  
> >  #include <xen/mm-frame.h>
> >  
> > @@ -152,4 +153,5 @@ static inline nodeid_t mfn_to_nid(mfn_t mfn)
> >  
> >  #define page_to_nid(pg) mfn_to_nid(page_to_mfn(pg))
> >  
> > +#endif /* __XEN__ */
> >  #endif /* _XEN_NUMA_H */
> > diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
> > index 130c2a8c1a65..f5965a68ae33 100644
> > --- a/xen/include/xen/pci.h
> > +++ b/xen/include/xen/pci.h
> > @@ -14,7 +14,9 @@
> >  #include <xen/numa.h>
> >  #include <xen/pci_regs.h>
> >  #include <xen/pfn.h>
> > +#ifdef __XEN__
> >  #include <asm/device.h>
> > +#endif
> 
> There seem to be other Xen internal declarations in this header. I am
> not sure what the best policy should be: try to cover them all within
> the #ifdef __XEN__ even thought we don't really have a specific build
> test that needs it, or only fix the specific build issue in this patch.
> 
> I am OK either way but I wanted to mention the possible choice in case
> others have an opinion.

I decided to modify the headers, because I hope is there will be more unit
tests using these headers.

> 
>   
> >  /*
> >   * The PCI interface treats multi-function devices as independent
> > diff --git a/xen/include/xen/pfn.h b/xen/include/xen/pfn.h
> > index 1ca9b095e0df..98ff669d7def 100644
> > --- a/xen/include/xen/pfn.h
> > +++ b/xen/include/xen/pfn.h
> > @@ -1,7 +1,9 @@
> >  #ifndef __XEN_PFN_H__
> >  #define __XEN_PFN_H__
> >  
> > +#ifdef __XEN__
> >  #include <xen/page-size.h>
> > +#endif
> >  
> >  #define PFN_DOWN(x)   ((x) >> PAGE_SHIFT)
> >  #define PFN_UP(x)     (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
> > diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
> > index ca9d8c7ec0a1..ad5094c4eb92 100644
> > --- a/xen/include/xen/spinlock.h
> > +++ b/xen/include/xen/spinlock.h
> > @@ -1,5 +1,6 @@
> >  #ifndef __SPINLOCK_H__
> >  #define __SPINLOCK_H__
> > +#ifdef __XEN__
> >  
> >  #include <xen/nospec.h>
> >  #include <xen/time.h>
> > @@ -360,4 +361,5 @@ static always_inline void nrspin_lock_irq(rspinlock_t *l)
> >  #define nrspin_unlock_irqrestore(l, f) _nrspin_unlock_irqrestore(l, f)
> >  #define nrspin_unlock_irq(l)           _nrspin_unlock_irq(l)
> >  
> > +#endif /* __XEN__ */
> >  #endif /* __SPINLOCK_H__ */
> > diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h
> > index 73ddccbbd5dc..e5d702b48ac0 100644
> > --- a/xen/include/xen/types.h
> > +++ b/xen/include/xen/types.h
> > @@ -4,6 +4,7 @@
> >  #include <xen/stdbool.h>
> >  #include <xen/stdint.h>
> >  
> > +#ifdef __XEN__
> >  /* Linux inherited types which are being phased out */
> >  typedef uint8_t u8;
> >  typedef uint16_t u16;
> > @@ -15,6 +16,7 @@ typedef uint64_t u64;
> >  typedef __SIZE_TYPE__ size_t;
> >  
> >  typedef signed long ssize_t;
> > +#endif /* __XEN__ */
> >  
> >  typedef __PTRDIFF_TYPE__ ptrdiff_t;
> >  typedef __UINTPTR_TYPE__ uintptr_t;
> > @@ -33,6 +35,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
> >  #define NULL ((void*)0)
> >  #endif
> >  
> > +#ifdef __XEN__
> >  #define INT8_MIN        (-127-1)
> >  #define INT16_MIN       (-32767-1)
> >  #define INT32_MIN       (-2147483647-1)
> > @@ -52,6 +55,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
> >  #define LONG_MAX        ((long)(~0UL>>1))
> >  #define LONG_MIN        (-LONG_MAX - 1)
> >  #define ULONG_MAX       (~0UL)
> > +#endif /* __XEN__ */
> >  
> >  typedef uint16_t __le16;
> >  typedef uint16_t __be16;
> > -- 
> > 2.52.0
> > 


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 01:51:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 01:51:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222692.1530454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voAzj-0006gw-Rk; Fri, 06 Feb 2026 01:50:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222692.1530454; Fri, 06 Feb 2026 01: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 1voAzj-0006gp-P2; Fri, 06 Feb 2026 01:50:51 +0000
Received: by outflank-mailman (input) for mailman id 1222692;
 Fri, 06 Feb 2026 01:50: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=3tkN=AK=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1voAzi-0006gj-6v
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 01:50:50 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4104abbe-02fe-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 02:50:47 +0100 (CET)
Received: from MW4PR04CA0345.namprd04.prod.outlook.com (2603:10b6:303:8a::20)
 by IA0PR12MB8693.namprd12.prod.outlook.com (2603:10b6:208:48e::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 01:50:36 +0000
Received: from MWH0EPF000C6184.namprd02.prod.outlook.com
 (2603:10b6:303:8a:cafe::d4) by MW4PR04CA0345.outlook.office365.com
 (2603:10b6:303:8a::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.12 via Frontend Transport; Fri,
 6 Feb 2026 01:50:31 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000C6184.mail.protection.outlook.com (10.167.249.116) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 01:50:36 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 19:50:35 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 5 Feb
 2026 17:50:35 -0800
Received: from SATLEXMB03.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 5 Feb 2026 19:50:34 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4104abbe-02fe-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iD5pw1+mxd7adUdDgr4rFavYuJIPKPWeb1vFABabnc1l18T06D+liMz/YrrZh9oyDxZBxuU4yBBXIWW3uRmgDh8xOlWx8uwtzT46rTW2wUqpCoM5lzQCveGTACmo5eoJFhmccbC5RVhJwDyStDgzw9guQ3YKbFxxfWsmtqJVOXMgdMTLb57Ka/+5qowsMZyZg3KRtZMHbzID+Oe7xE06YnuOh7c7YFlGk9dGLuZbSUUlnNr9Ao6yKvfV4xtxIjptczn5Z5sBoaTSkViKJ4Z5+L6V+7+Dpp5dbdmhZg0gRcabOjyj4eqWIrftqadOR/pwI2BqelQDPuPZ/TDFgjpJwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LRe9l5/IqMVz6Ul6sKy+ceH0KLiOj3WX5G6evYctrQo=;
 b=ptRfNm1n5qP43RNS91gImSpjK8paulrxdY9YRy7nwM+bX1rpDVeerfOEJV66tjqPcYFQzdDLcwrUFRFoLTMkKBq1TzktHC3VHcVBGkf3oS6SdSWTo8D4wSIgKLw4N/Hn03deljWZlhSYw5bnyFVNP+itdvpAB8Nf2Jsx8TR18QrrLvJtQUOxlGmrOF+OqECqFMUi+GW4500k81MqlY22Ygzn60XXsGMoXswgjmKtFKS6APqWaoajqLRanc6V6GViI82WEXpzbnxId/onDhaF7fNiAaqp6GdFx3FZ3IektIUN/G4kTmzCR1d+pY9mIYKbY8wxrXnHTqq9FPkXnN6YvA==
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=LRe9l5/IqMVz6Ul6sKy+ceH0KLiOj3WX5G6evYctrQo=;
 b=DxpgkBpZKvXntcf5xzfT65U96R90QE2KMe6jsD7bROJalCtiuKJC7bNOuo/E9YvZSK3u/gHwn8SIWgRaD/CbGrYZajvSbFAVW12MXETPFtVJJl2HO5TqQfBZw/Ct1SquU3KEywNVlTHwo1AANDvg7pJn56UCif0Kijq1eKkDg7U=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <jbeulich@suse.com>, <andrew.cooper3@citrix.com>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <alejandro.garciavallejo@amd.com>, "Stefano
 Stabellini" <stefano.stabellini@amd.com>
Subject: [PATCH] x86/hvm: Add Kconfig option to disable nested virtualization
Date: Thu, 5 Feb 2026 17:50:32 -0800
Message-ID: <20260206015032.4159672-1-stefano.stabellini@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: MWH0EPF000C6184:EE_|IA0PR12MB8693:EE_
X-MS-Office365-Filtering-Correlation-Id: 476fe122-bd96-4192-92b9-08de65221f4a
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?jxtcmPK/4ITR/hSMAlnkDpmgNg50m9fhWXPN8SSAS0NuI1ctSWAQgwLdElnT?=
 =?us-ascii?Q?1FnBxAonNGrQS/q2XuqthF5/QPKsctd256yUtUiiu+IHqsUOIgfBvgeyQv70?=
 =?us-ascii?Q?O8u0mdgmy5QZWvsFJl061SEE93+95tT3Rq4LzsyRPvbiYos9R2l0rXSrwQpo?=
 =?us-ascii?Q?7vBI3d1T8TEgFo0KsrY7rj6Yi7hylWLU9xhJ22Q6O6An1RFX9kR5ePJGOUfq?=
 =?us-ascii?Q?cfywzum7FJCksIySanKYxDloJBhQUgfqgZ2zCS2FU2060ncCk00iuJSOXnpi?=
 =?us-ascii?Q?sIb/3QZEHHiNw+czm76drsXbVkhOV3KN79rI6Zc9AlyC0G5yVZpFAGkcygGn?=
 =?us-ascii?Q?nIgjIiTZoEsBfuNxWubpLMMwk0EL7u4kx6Fp64MTz2vGaWBqL+R7TSZOOcT0?=
 =?us-ascii?Q?ozR3LgUk4rDjCYVQbtaKSH48RssvUXCw6NAZsvPuBwq+kWzLBXoVSEhWvQED?=
 =?us-ascii?Q?fImB54MiyuNhuysprTCj+QtDQZr3VJGPiQ7Uxd3gf1BQiI085qzRw2LQUMmv?=
 =?us-ascii?Q?EAWS6SxZKhPj7vwNn2y8xwyzlYhQ+HjOcVqeKqDGtAqZZcxZuhI/p1ynstS4?=
 =?us-ascii?Q?SrsG5cTDxZtty/qyz+q9EDHHiOoEQ4Rni90NUQoiUeE5xLszhmaD2W+JNTTE?=
 =?us-ascii?Q?fBbGcJz+AdnsAYB5fCYCCXm35bxT8KkZA6FA3La4Wn6VPknzgVKp31OFbvae?=
 =?us-ascii?Q?owGNSbwcVU2EEJLFOEvXjWuMLjgw97sJ8ZusZDbU4wbaaopKRSqVdsLbsn+2?=
 =?us-ascii?Q?Ir9LA94JBW7azqDTHnyj6DOfKwC0bwNPBktEMifYj/wTpa7ZjZimOa8gy5GT?=
 =?us-ascii?Q?2xmhGOtlVdu74Uw1QNsqUVUXdgoj9udU+h271ri7flbzf4GbP1+9QXX4/1Qd?=
 =?us-ascii?Q?wZfJlhBLTab2Q7BD+MVE5gnJhX0B+xufcYEy8dLM6UJtxBmU0kNLoDnDaIo9?=
 =?us-ascii?Q?armsvVdel1J/1MxliYmDSjqEt9DyPFqe4F4itn1K9eku4RYkH+M4Hu4omy0P?=
 =?us-ascii?Q?nVpL1BOxFp/zARonjSyqXzzSyXIhsmym5ZtkHGKdJlEK90YdKrHEcs4Lrdgd?=
 =?us-ascii?Q?wVYHKwamOn0iCyoZUTNpl6eOah9epjYjKFDXmzSLSpm+lJRu163gZhJJAwG7?=
 =?us-ascii?Q?/y3TUhoWsjrfMkggazRqEUgaOfT/WpJod6KB+GzwyxcEpCptwLpLp9eaCgPx?=
 =?us-ascii?Q?WsXtmkWpBHJxHe8dbYuKXhlJAZ1aSOyvrlpD4gbD8ebplO/k1GL4kjasTvJQ?=
 =?us-ascii?Q?VBCm+Fip4CcRSSCiWEAo/cD2snH94aAcxGmP4i9dvyLK2DHDJt+TUGPovBon?=
 =?us-ascii?Q?ZsqD6d4ke6RnN81yeT0s4SyadJ1nk7udnREE0mLXMLJD3wgqRr3tUDXd3I+h?=
 =?us-ascii?Q?GPWzSogea1nhFQgRG+DK2Klfw9cqW3O/4eHGrQSvUAvMEU4pa2wX3bR8BmNX?=
 =?us-ascii?Q?qXMBkPHXWnMiv2ocxLDoyDZSP3iYTnhifRwUld9sINu7OnWbOAvAlBMMpC9g?=
 =?us-ascii?Q?YTAfpcANQbqYXQYuvjDQdqjls1YkRKOdoiKURI4IsH+PLF/CzHHvrZsLt9Uz?=
 =?us-ascii?Q?ulboY0rrL0oC79rukX9QovCMOD8TtK3Y7FTcyr2hcg5p51BXI4AyrDqdr38i?=
 =?us-ascii?Q?6urZo5dd/TMKuVjmpojEt8fgbgUT7sbw66vNDnUI800xs3tfzV8yh7tN5VgW?=
 =?us-ascii?Q?xBR9hQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	f7Pc5not10eH5ZOI9J/sZtogRJGDp0cjZ294s/d33LYd8YOMYrPoP6dwYj/2KZ3iJ6F9byQKrxGE5rjznPe9RPHAF8UJ0oY+OnyPWGc2nEzGNNxuC97bx+ZIK409ArRBgnR6oMAJCVyaydv/j1OfISvisZlFrLUZFa6ytuOGgjnPDDfQht9BRVzlJQyFQPuTwZk/FihT6pvLQMufgLQtnEdcPx+MkxHk+a9fRD9mdD4FxnOUibZatyAHMZ5ducefAjKi2APdSgMOAvu0pVvE7rG5NYBjXwF4KiP6umb2HsfxiMRQ6yymjkOMcq+NplZDffoHdTxVgfuyRiwn03rUVHWu30QpKi9pOotgOJBxr3AXBm2Y7UUgi+60zsD1+VOvAG+5zE/leYcg8BN9EkN3tCHDNjDJVUp7hOietAt0zy+Vk7lWcnpUyqLWjfT1YNP1
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 01:50:36.0126
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 476fe122-bd96-4192-92b9-08de65221f4a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6184.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8693

Introduce CONFIG_NESTED_VIRT (default y, requires EXPERT to disable)
to allow nested virtualization support to be disabled at build time.
This is useful for embedded or safety-focused deployments where
nested virtualization is not needed, reducing code size and attack
surface.

When CONFIG_NESTED_VIRT=n, the following source files are excluded:
- arch/x86/hvm/nestedhvm.c
- arch/x86/hvm/svm/nestedsvm.c
- arch/x86/hvm/vmx/vvmx.c
- arch/x86/mm/nested.c
- arch/x86/mm/hap/nested_hap.c
- arch/x86/mm/hap/nested_ept.c

Add inline stubs where needed in headers.

No functional change when CONFIG_NESTED_VIRT=y.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
 xen/arch/x86/hvm/Kconfig                 | 10 ++++++
 xen/arch/x86/hvm/Makefile                |  2 +-
 xen/arch/x86/hvm/svm/Makefile            |  2 +-
 xen/arch/x86/hvm/svm/nestedhvm.h         | 44 +++++++++++++++++++++---
 xen/arch/x86/hvm/svm/svm.c               |  6 ++++
 xen/arch/x86/hvm/vmx/Makefile            |  2 +-
 xen/arch/x86/hvm/vmx/vmx.c               | 10 ++++--
 xen/arch/x86/include/asm/hvm/nestedhvm.h | 41 +++++++++++++++++-----
 xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 30 ++++++++++++++++
 xen/arch/x86/mm/Makefile                 |  2 +-
 xen/arch/x86/mm/hap/Makefile             |  4 +--
 xen/arch/x86/mm/p2m.h                    |  6 ++++
 12 files changed, 137 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index f32bf5cbb7..12b5df4710 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -92,4 +92,14 @@ config MEM_SHARING
 	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
 	depends on INTEL_VMX
 
+config NESTED_VIRT
+	bool "Nested virtualization support" if EXPERT
+	depends on AMD_SVM || INTEL_VMX
+	default y
+	help
+	  Enable nested virtualization, allowing guests to run their own
+	  hypervisors. This requires hardware support.
+
+	  If unsure, say Y.
+
 endif
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index f34fb03934..b8a0a68624 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -18,7 +18,7 @@ obj-y += irq.o
 obj-y += mmio.o
 obj-$(CONFIG_VM_EVENT) += monitor.o
 obj-y += mtrr.o
-obj-y += nestedhvm.o
+obj-$(CONFIG_NESTED_VIRT) += nestedhvm.o
 obj-y += pmtimer.o
 obj-y += quirks.o
 obj-y += rtc.o
diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefile
index 8a072cafd5..92418e3444 100644
--- a/xen/arch/x86/hvm/svm/Makefile
+++ b/xen/arch/x86/hvm/svm/Makefile
@@ -2,6 +2,6 @@ obj-y += asid.o
 obj-y += emulate.o
 obj-bin-y += entry.o
 obj-y += intr.o
-obj-y += nestedsvm.o
+obj-$(CONFIG_NESTED_VIRT) += nestedsvm.o
 obj-y += svm.o
 obj-y += vmcb.o
diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nestedhvm.h
index 9bfed5ffd7..a102c076ea 100644
--- a/xen/arch/x86/hvm/svm/nestedhvm.h
+++ b/xen/arch/x86/hvm/svm/nestedhvm.h
@@ -26,6 +26,13 @@
 #define nsvm_efer_svm_enabled(v) \
     (!!((v)->arch.hvm.guest_efer & EFER_SVME))
 
+#define NSVM_INTR_NOTHANDLED     3
+#define NSVM_INTR_NOTINTERCEPTED 2
+#define NSVM_INTR_FORCEVMEXIT    1
+#define NSVM_INTR_MASKED         0
+
+#ifdef CONFIG_NESTED_VIRT
+
 int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr);
 void nestedsvm_vmexit_defer(struct vcpu *v,
     uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2);
@@ -57,13 +64,40 @@ int cf_check nsvm_hap_walk_L1_p2m(
     struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
     uint8_t *p2m_acc, struct npfec npfec);
 
-#define NSVM_INTR_NOTHANDLED     3
-#define NSVM_INTR_NOTINTERCEPTED 2
-#define NSVM_INTR_FORCEVMEXIT    1
-#define NSVM_INTR_MASKED         0
-
 int nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack intack);
 
+#else /* !CONFIG_NESTED_VIRT */
+
+static inline int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
+{
+    return 0;
+}
+static inline void nestedsvm_vmexit_defer(struct vcpu *v,
+    uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2) { }
+static inline enum nestedhvm_vmexits nestedsvm_vmexit_n2n1(struct vcpu *v,
+    struct cpu_user_regs *regs)
+{
+    return NESTEDHVM_VMEXIT_ERROR;
+}
+static inline enum nestedhvm_vmexits nestedsvm_check_intercepts(struct vcpu *v,
+    struct cpu_user_regs *regs, uint64_t exitcode)
+{
+    return NESTEDHVM_VMEXIT_ERROR;
+}
+static inline void svm_nested_features_on_efer_update(struct vcpu *v) { }
+static inline void svm_vmexit_do_clgi(struct cpu_user_regs *regs,
+                                      struct vcpu *v) { }
+static inline void svm_vmexit_do_stgi(struct cpu_user_regs *regs,
+                                       struct vcpu *v) { }
+static inline bool nestedsvm_gif_isset(struct vcpu *v) { return true; }
+static inline int nestedsvm_vcpu_interrupt(struct vcpu *v,
+                                           const struct hvm_intack intack)
+{
+    return NSVM_INTR_NOTINTERCEPTED;
+}
+
+#endif /* CONFIG_NESTED_VIRT */
+
 #endif /* __X86_HVM_SVM_NESTEDHVM_PRIV_H__ */
 
 /*
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..0234b57afb 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -46,6 +46,10 @@
 
 void noreturn svm_asm_do_resume(void);
 
+#ifndef CONFIG_NESTED_VIRT
+void asmlinkage nsvm_vcpu_switch(void) { }
+#endif
+
 u32 svm_feature_flags;
 
 /*
@@ -2465,6 +2469,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .get_insn_bytes       = svm_get_insn_bytes,
 
+#ifdef CONFIG_NESTED_VIRT
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
     .nhvm_vcpu_destroy = nsvm_vcpu_destroy,
     .nhvm_vcpu_reset = nsvm_vcpu_reset,
@@ -2474,6 +2479,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .nhvm_vmcx_hap_enabled = nsvm_vmcb_hap_enabled,
     .nhvm_intr_blocked = nsvm_intr_blocked,
     .nhvm_hap_walk_L1_p2m = nsvm_hap_walk_L1_p2m,
+#endif
 
     .get_reg = svm_get_reg,
     .set_reg = svm_set_reg,
diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makefile
index 04a29ce59d..902564b3e2 100644
--- a/xen/arch/x86/hvm/vmx/Makefile
+++ b/xen/arch/x86/hvm/vmx/Makefile
@@ -3,4 +3,4 @@ obj-y += intr.o
 obj-y += realmode.o
 obj-y += vmcs.o
 obj-y += vmx.o
-obj-y += vvmx.o
+obj-$(CONFIG_NESTED_VIRT) += vvmx.o
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..252f27322b 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -55,6 +55,10 @@
 #include <public/hvm/save.h>
 #include <public/sched.h>
 
+#ifndef CONFIG_NESTED_VIRT
+void asmlinkage nvmx_switch_guest(void) { }
+#endif
+
 static bool __initdata opt_force_ept;
 boolean_param("force-ept", opt_force_ept);
 
@@ -2033,7 +2037,7 @@ static void nvmx_enqueue_n2_exceptions(struct vcpu *v,
                  nvmx->intr.intr_info, nvmx->intr.error_code);
 }
 
-static int cf_check nvmx_vmexit_event(
+static int cf_check __maybe_unused nvmx_vmexit_event(
     struct vcpu *v, const struct x86_event *event)
 {
     nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
@@ -2933,6 +2937,7 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .handle_cd            = vmx_handle_cd,
     .set_info_guest       = vmx_set_info_guest,
     .set_rdtsc_exiting    = vmx_set_rdtsc_exiting,
+#ifdef CONFIG_NESTED_VIRT
     .nhvm_vcpu_initialise = nvmx_vcpu_initialise,
     .nhvm_vcpu_destroy    = nvmx_vcpu_destroy,
     .nhvm_vcpu_reset      = nvmx_vcpu_reset,
@@ -2942,8 +2947,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .nhvm_vcpu_vmexit_event = nvmx_vmexit_event,
     .nhvm_intr_blocked    = nvmx_intr_blocked,
     .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,
+#endif
+    .update_vlapic_mode = vmx_vlapic_msr_changed,
 #ifdef CONFIG_VM_EVENT
     .enable_msr_interception = vmx_enable_msr_interception,
 #endif
diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
index ea2c1bc328..0372974b24 100644
--- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
+++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
@@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
 /* Nested HVM on/off per domain */
 static inline bool nestedhvm_enabled(const struct domain *d)
 {
-    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
+    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
+           (d->options & XEN_DOMCTL_CDF_nested_virt);
 }
 
+/* Nested paging */
+#define NESTEDHVM_PAGEFAULT_DONE       0
+#define NESTEDHVM_PAGEFAULT_INJECT     1
+#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
+#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
+#define NESTEDHVM_PAGEFAULT_MMIO       4
+#define NESTEDHVM_PAGEFAULT_RETRY      5
+#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
+
+#ifdef CONFIG_NESTED_VIRT
+
 /* Nested VCPU */
 int nestedhvm_vcpu_initialise(struct vcpu *v);
 void nestedhvm_vcpu_destroy(struct vcpu *v);
@@ -38,14 +50,6 @@ bool nestedhvm_vcpu_in_guestmode(struct vcpu *v);
 #define nestedhvm_vcpu_exit_guestmode(v)  \
     vcpu_nestedhvm(v).nv_guestmode = 0
 
-/* Nested paging */
-#define NESTEDHVM_PAGEFAULT_DONE       0
-#define NESTEDHVM_PAGEFAULT_INJECT     1
-#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
-#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
-#define NESTEDHVM_PAGEFAULT_MMIO       4
-#define NESTEDHVM_PAGEFAULT_RETRY      5
-#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
 int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
                                     struct npfec npfec);
 
@@ -59,6 +63,25 @@ unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
 
 void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m);
 
+#else /* !CONFIG_NESTED_VIRT */
+
+static inline int nestedhvm_vcpu_initialise(struct vcpu *v) { return 0; }
+static inline void nestedhvm_vcpu_destroy(struct vcpu *v) { }
+static inline void nestedhvm_vcpu_reset(struct vcpu *v) { }
+static inline bool nestedhvm_vcpu_in_guestmode(struct vcpu *v) { return false; }
+static inline int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
+                                                  struct npfec npfec)
+{
+    return NESTEDHVM_PAGEFAULT_L0_ERROR;
+}
+#define nestedhvm_vcpu_enter_guestmode(v) do { } while (0)
+#define nestedhvm_vcpu_exit_guestmode(v)  do { } while (0)
+#define nestedhvm_paging_mode_hap(v) false
+#define nestedhvm_vmswitch_in_progress(v) false
+static inline void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m) { }
+
+#endif /* CONFIG_NESTED_VIRT */
+
 static inline bool nestedhvm_is_n2(struct vcpu *v)
 {
     if ( !nestedhvm_enabled(v->domain) ||
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
index da10d3fa96..8dc876a4c2 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
@@ -73,6 +73,8 @@ union vmx_inst_info {
     u32 word;
 };
 
+#ifdef CONFIG_NESTED_VIRT
+
 int cf_check nvmx_vcpu_initialise(struct vcpu *v);
 void cf_check nvmx_vcpu_destroy(struct vcpu *v);
 int cf_check nvmx_vcpu_reset(struct vcpu *v);
@@ -199,5 +201,33 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga,
                         uint64_t *exit_qual, uint32_t *exit_reason);
 int nvmx_cpu_up_prepare(unsigned int cpu);
 void nvmx_cpu_dead(unsigned int cpu);
+
+#else /* !CONFIG_NESTED_VIRT */
+
+static inline void nvmx_update_exec_control(struct vcpu *v, u32 value) { }
+static inline void nvmx_update_secondary_exec_control(struct vcpu *v,
+                                                      unsigned long value) { }
+static inline void nvmx_update_exception_bitmap(struct vcpu *v,
+                                                unsigned long value) { }
+static inline u64 nvmx_get_tsc_offset(struct vcpu *v) { return 0; }
+static inline void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr) { }
+static inline bool nvmx_intercepts_exception(struct vcpu *v, unsigned int vector,
+                                             int error_code) { return false; }
+static inline int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
+                                         unsigned int exit_reason) { return 0; }
+static inline void nvmx_idtv_handling(void) { }
+static inline int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
+{
+    return 0;
+}
+static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
+                                       unsigned int exit_reason) { return 0; }
+static inline int nvmx_cpu_up_prepare(unsigned int cpu) { return 0; }
+static inline void nvmx_cpu_dead(unsigned int cpu) { }
+
+#define get_vvmcs(vcpu, encoding) 0
+
+#endif /* CONFIG_NESTED_VIRT */
+
 #endif /* __ASM_X86_HVM_VVMX_H__ */
 
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 960f6e8409..aa15811c2e 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -7,7 +7,7 @@ obj-$(CONFIG_SHADOW_PAGING) += guest_walk_4.o
 obj-$(CONFIG_VM_EVENT) += mem_access.o
 obj-$(CONFIG_MEM_PAGING) += mem_paging.o
 obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
-obj-$(CONFIG_HVM) += nested.o
+obj-$(CONFIG_NESTED_VIRT) += nested.o
 obj-$(CONFIG_HVM) += p2m.o
 obj-y += p2m-basic.o
 obj-$(CONFIG_INTEL_VMX) += p2m-ept.o
diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile
index 67c29b2162..de1bb3abde 100644
--- a/xen/arch/x86/mm/hap/Makefile
+++ b/xen/arch/x86/mm/hap/Makefile
@@ -2,5 +2,5 @@ obj-y += hap.o
 obj-y += guest_walk_2.o
 obj-y += guest_walk_3.o
 obj-y += guest_walk_4.o
-obj-y += nested_hap.o
-obj-$(CONFIG_INTEL_VMX) += nested_ept.o
+obj-$(CONFIG_NESTED_VIRT) += nested_hap.o
+obj-$(CONFIG_NESTED_VIRT) += nested_ept.o
diff --git a/xen/arch/x86/mm/p2m.h b/xen/arch/x86/mm/p2m.h
index 635f5a7f45..fa14e69fff 100644
--- a/xen/arch/x86/mm/p2m.h
+++ b/xen/arch/x86/mm/p2m.h
@@ -25,9 +25,15 @@ void p2m_teardown_altp2m(struct domain *d);
 void p2m_flush_table_locked(struct p2m_domain *p2m);
 int __must_check p2m_remove_entry(struct p2m_domain *p2m, gfn_t gfn, mfn_t mfn,
                                   unsigned int page_order);
+#ifdef CONFIG_NESTED_VIRT
 void p2m_nestedp2m_init(struct p2m_domain *p2m);
 int p2m_init_nestedp2m(struct domain *d);
 void p2m_teardown_nestedp2m(struct domain *d);
+#else
+static inline void p2m_nestedp2m_init(struct p2m_domain *p2m) {}
+static inline int p2m_init_nestedp2m(struct domain *d) { return 0; }
+static inline void p2m_teardown_nestedp2m(struct domain *d) {}
+#endif
 
 int ept_p2m_init(struct p2m_domain *p2m);
 void ept_p2m_uninit(struct p2m_domain *p2m);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 01:53:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 01:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222699.1530464 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voB1q-0007CA-6g; Fri, 06 Feb 2026 01:53:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222699.1530464; Fri, 06 Feb 2026 01:53:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voB1q-0007C3-3t; Fri, 06 Feb 2026 01:53:02 +0000
Received: by outflank-mailman (input) for mailman id 1222699;
 Fri, 06 Feb 2026 01: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voB1o-0007Bv-VD
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 01:53:01 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d1893d3-02fe-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 02:52:54 +0100 (CET)
Received: from pps.filterd (m0367128.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 6161PiHW003756
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 01:52:53 GMT
Received: from cy7pr03cu001.outbound.protection.outlook.com
 (mail-westcentralusazon11010029.outbound.protection.outlook.com
 [40.93.198.29])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c1vf7k56p-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 01:52:53 +0000 (GMT)
Received: from BL0PR1501CA0029.namprd15.prod.outlook.com
 (2603:10b6:207:17::42) by LV3PR16MB6719.namprd16.prod.outlook.com
 (2603:10b6:408:279::13) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 01:52:50 +0000
Received: from BL6PEPF0001AB51.namprd04.prod.outlook.com
 (2603:10b6:207:17:cafe::58) by BL0PR1501CA0029.outlook.office365.com
 (2603:10b6:207:17::42) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 01:52:53 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BL6PEPF0001AB51.mail.protection.outlook.com (10.167.242.75) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 01:52:50 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 615MGW2w1844453
 for <xen-devel@lists.xenproject.org>; Thu, 5 Feb 2026 20:52:49 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c218c5kyk-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 20:52:49 -0500 (EST)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id oB1bvlIiVP7uEoB1cv2H7c; Fri, 06 Feb 2026 01:52:49 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d1893d3-02fe-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=GFGYOdl8QcukzBk9v4iKbvwzVW5
	OV4QMdJBYJu7/rRA=; b=VaxbyexSpAbxO7q+JKxvR+5YCed01WUnPQYgsmN3/G+
	2MUfTTDlDwN5qrcyz/fcvIC7UeSzvS6mTTbHq3z6uR1AQ/OsTpapWS4Kxs/T+7/9
	gt66UiHGjAxCnRH6eZ5Ug/cQ+I/YsuYbT3EB949tx76nQImhDVskw+RNZdSNTM5g
	VuKgyclCxUQvTvA8926nM+UDaZdVh3M4Xz9PRQrpCd1Qkmzt2gUzog5TRnlXOE4c
	cH7E1giujfMueqfuUstg8osXr91bSRtuLZtEWorsNQwGpO1eaAYZbUHVJotPnoc+
	rNwQmpBhKF8ULS9rAuCEqj1dunakviO4nbA5e5viLSw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=s1K+e6Xtk395KtgTGYRJcNrIUEVH7boT8+VLc/UL5iyDXp2LDfxGIq7E/le2WJhp6r+ms0xFbbFBdlOG9NMDj4oqfwuRHL/XHQp9dUo/OZncLdrmOsEn+yFl9swY+0oEBsaZ2TaOgWfiqVYoqFRZ5Re4177pl+JjwmItInIjGI/j6wnYt8RQhjf1SI6MQ8uwV78FX5J/4O82ukmKVct25ixANCVelUdL21wkgRwnyxrqxSg7e2fyr5p9Xbcc8KZA8RB9UcAAuycsbs3QYUsBFgNoJv863YAfL5xhWTOgWTMOUXraN8leAzD9tsCz6WAbndq4yuQR0p7I48tueqiVHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GFGYOdl8QcukzBk9v4iKbvwzVW5OV4QMdJBYJu7/rRA=;
 b=bqOA9+03PyMbnpiL0jqNbGa0shFEolnp1bd1GjoMq7isp1jQ/3wR16ATbjjANF/5ZOa6Q+wMju8rR/iWQyDUsrsP3krx+S+Fm/ejssh1TglrESB3KhsA8TEGljmT0eneIYKFIjF0Yh1vbS9/UKmd75vHYNKxoLVP7Lj/mSXGRcujVDXM3WKXa9kK00gQb9GpNXP3SJw1qKZagnp1/QpT00zsy7C/DrZdUD5RZdtc08KJ5IoXvzZ5SPaq65YDx69ZznGNFYrgJHhr7Wvsw2o2vIQokw4dhEELiNEsiIZpT/KWDUNAB07bQMO2nUvPvJo9LNpibHbT8fyNftjRFCXjRg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GFGYOdl8QcukzBk9v4iKbvwzVW5OV4QMdJBYJu7/rRA=;
 b=D6UQPfyWOuCgfafysCIKRs/bh/MLYbYY5aUaA/M3GRylqwoOFOjsymYK12jJsvUNaZE9+tQZtpNsLKfVUzj/YxjMfU2SrZAujj8wFFKXJh9bF+CgApYfgEPEUEAmcKpxpMr/qP8kFx8n/74WX/rEYWOzP2GvCwAAER01tkQ5nFs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=GFGYOdl8QcukzBk9v4iKbvwzVW5OV4QMdJBYJu7/rRA=; b=iT6+FiA0GTwI
	wPp/OIRE9hx4f6ji7bwxLfz1W/4u0PIpoqbQ3MY5lJ+1emwmPa/DuLcOqWl7cPE3
	+x2mPkVttu63zvP4BiExr5K/YaDDdftRvUCSfjnvfVRzfOc/aodFn+v3l51EFwBC
	E11ubwtm9h9z7KaCVy0UQAwbCWAHjZnn0uRDBFR0pgSDr9jeCLQtb3Iw0gR8O2pD
	IGX3/U5XhFercAVd3K/1bcyige+bwu2VOurgSLT7nsOEAEna3lEyxQB7EviWqRV0
	dGxM7lbipc+22E7qT0/SJG2hnjQjigpsz44Eb6cgdzlVIJGuh6Ecc7BtQxLIalYs
	fZacQp3KIA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=GFGYOdl8QcukzBk9v4iK
	bvwzVW5OV4QMdJBYJu7/rRA=; b=GnD6FImaZ8x/F/cZOrcoMD+06oACJGuMdtaX
	Jd4F45QEew2fkDTW46yrQQbvWu+3sIAdG6sjc56ydrPIMngHXIQGGFpb6sfAHTaH
	pI/h6Y7fBdbaJYxP+LO4QCpNCg7lg6+M2qwo9dtl4Fa8LL+1Gl4aNLjaL4i1b7Mc
	pTjhwqhmmP9r/YFbwjmzA6YZuyXKwHQTq72DGoo4w+LnznjUZ7IkfjCIBwINFcDw
	snijhjBpOrJ2SqXdaP72yFQLWl7bfTV3wPisGPzLz0n2acxOyynTFQY5odkxQ5Pw
	WSdR09hzTWbO0IEeBshYjqjeAfQKxVtorbj/xue6g+zoloVhPQ==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oB1bvlIiVP7uEoB1cv2H7c
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Thu, 5 Feb 2026 17:52:47 -0800
To: Jan Beulich <jbeulich@suse.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com, Jason Andryuk <jason.andryuk@amd.com>,
        xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 2/6] xen/console: make console buffer size configurable
Message-ID: <aYVJb2b0JlZn61B5@kraken>
References: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-3-dmukhin@ford.com>
 <09462166-a3c5-4527-840a-cd77499dc588@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <09462166-a3c5-4527-840a-cd77499dc588@suse.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_01,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0
 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060013
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB51:EE_|LV3PR16MB6719:EE_
X-MS-Office365-Filtering-Correlation-Id: ec22bc81-8b41-4c53-3699-08de65226f38
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?cwCcPFvf4VKAXIjYWwbTQG32KvMVpc5Q7Crc/Fr4/P2sYAIQgd8q876wYZpM?=
 =?us-ascii?Q?mPFa230SUi4pd80Ux8MVT9VNQwXsHhd4cMRjs/jd/vsc1KN9hVScbf2Qrckv?=
 =?us-ascii?Q?5JiuC2rQZTqwnSXqz5n3eu+jM5hV2PQDTsqfUyjIfmBvKG19FI5RvqilICps?=
 =?us-ascii?Q?2p8IZSXO7DXzgsif+C0pljFl7kPxGy+ERjjmtxU2UoSZJMHNwbtajatrGZUm?=
 =?us-ascii?Q?Tk40R16dUlCQXe4SOrU0LjQmIiTrxmtncrzi/R8kTzgGoQsZULMpKkcvuowG?=
 =?us-ascii?Q?ozsd1TuSmld2C09rQsjeHWDjuml2bbE9T7OKp0Ltzy+ndvo2dSxcoNh9egVT?=
 =?us-ascii?Q?R0p4T8LS6w+lioyWlt9eEhpE69ob60sF0zfV6fP4cfTYpSXJ6NoWHOtKBGZv?=
 =?us-ascii?Q?PHDtzEcvthFwdh8FFWn+oqxaDlJm3qdGB5VHujonL1qsKWJx/Ucohh8+b8mw?=
 =?us-ascii?Q?zH4jE2numN3u8JOtDhXaEbo1CTCMK32EIUA1aFEhdKPU+0kH/Q14v/PP3VrR?=
 =?us-ascii?Q?5y/aVxKAEyyaR5BvHyjAC3OzhsCI20BLcgflBkay9p/dd8fwIO2qyM6i0tHK?=
 =?us-ascii?Q?S42lEVkxFWhfoIV0sYx72NzkikwO8DPPXNwaE5CbqGNapUiD0/u02uLpBrr8?=
 =?us-ascii?Q?IjrROSmIoy0mi2xw7MWoOz3nTNfMpjHm8paj7WO27vICk/nPX1p3b160eDV0?=
 =?us-ascii?Q?gTavgzpbX4of6MWATpEWkvFYEfZZe+HWvgJcRJalvOYchCVMukMHlA9oFePd?=
 =?us-ascii?Q?3Z6zipRVhhdkbevSfpzsqXtgsytVkX/f2Ppq1WGnZ4q+G6GkqK/z/xFTI1nb?=
 =?us-ascii?Q?rdLExQA+F4O7qVhdUiZdWwMjgKMDtEFVJlhSJkWzemxZl1URXoKABym4/h93?=
 =?us-ascii?Q?xBZ5mNMZHkeEmwI/1aXlGFqgRz8rdfPN7EoKiM45ITsJy7OJE+Hov7FK4UOC?=
 =?us-ascii?Q?dxbuEOPmbcehbXYKy4J/m0LJ3+KdiKfCEDe2eePQ23iVF1WWAdOX6GK0FsKc?=
 =?us-ascii?Q?eP9g8Z2m34cEuHiVl/McaTXMEff3jfCuIQndRpJd71kEhjvFnG1P3gKWaFr1?=
 =?us-ascii?Q?/pBXDGvi6COEvU3EplqJbtKom4xk2UF+xCpybz1+pwAFeVKWaI4iCLGPicNm?=
 =?us-ascii?Q?fS1iAPRbRboBP741pM8L18o52R/AnLZ6sSYMBWDvYpaJZQpHtChpkVycdgyo?=
 =?us-ascii?Q?vHcdvXf4kGCugDe4xcJeXt1qzHWZfxxVGBQiNYz8zcrpYbV/N7a/Nvt7tRw6?=
 =?us-ascii?Q?B/XPBCk8uEPc+2GNKWAjBD1HwZL7/L5AECBdBJBA9Mn8pDXfyuEXMSMHgc6u?=
 =?us-ascii?Q?j/uPybVOc3XFIzpXr1o1DusUQ6zoFoU3Nl8QrFu1tnBTQYCXiLSEiwJvwF8l?=
 =?us-ascii?Q?GKznuXs6g7Xus0mEsYLdTT3YXoEHawRDVYm5lRNxFS6KVfwC06TkvtY4scFQ?=
 =?us-ascii?Q?GvDTLICb/PCXCTxwydHcoHRWoG1thH/SsIeutTMwhZJ4M7/oPSk/yApUaWCN?=
 =?us-ascii?Q?8u2O+LnRsMYHK1iGwuJhZEU1zdEg9ffyoc5N/quoxqUZkrbM22meI8v/tIlD?=
 =?us-ascii?Q?QQ/m0OKD7n9Iw2cvdghJYF9w5Ic822b9h4nzEhsSgCBw0MXiwKb4ndMXnLAm?=
 =?us-ascii?Q?SpI7/QPx0PfPlOPfUq6uvzKfMBKc3F+Sf+ZdEbWzetFQBit0HtD356z5tp+E?=
 =?us-ascii?Q?Mt2FtA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	t27czbKym5yopTT9b/q9Bn5/FesqAOS/2Fhy66G7YSAPBzQk1iLnoWoPIl5CSJ5Setrb+0+JC7PNQE90V/ym+kq19t3U39zbhPFlrDFCINiL+gEJfwjt5sILV4FYiAfrCiK4iMYo1amBImpeSnh/PDSiiuCZ39xu4uuSK5JCOyalxuq88WeLe9oo0jAZTvXtO+GC4NO8/NNkDjZzIu1OpA9wIvODUKTo1Y5PHYp3RaHtxOWfWY1tFJDzu7L3nIvIIYqmKqRfzX+NDjy0QdMAvqN23sf4P+v2HnIbVkfGUIzUM2FfkbDKmo6agEgigL7YFMddnyVhSxLFLBi04ebfe65wcbdf8ZVK+0xKNLDAOU0W9cQ4ZhTP4CM2eY7tc2PQjNpJvcQK26BYjuiivdMYII2S2CEemH9Hwb5Nhi0/zM5LruIenFlBvCBT1HI08QYU
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	YftOgfkJcQRnXQterVhK0BmEJMxco0mktso9F2znhU/empTR4U7UBTGppRvlKZ55eWboNUAJQ4NP3inUIC47m89P077vR+THMTWULzAwd84i3iEAX1BoYbhfNecgok5IpeSLAB14GbStukVFQeVecMhAuBpJyCrEin/NykzqT5r0Kls7PKlZbILnQeeFKePal4BLJVaW6hYz2biF9XFW8xiCs0Ww3sJkM9PA1MOGKG+YJ+YMIgOows4bX9eNjqE+Y3Zf/TZrjKK1BSja3pW1fxWlW6UYBnh5fNiwFnnYLmJJ6cks5TRLkGizR5ZCLXs51cPzW+rDB80jogVftvT8Dia78U+liBTAqaEKf518Md0s9MF19avC9iE+Xb+QYVdpGo5Kl38zrlT7BKJ5+T9WZyoo0UhDDVamMkd8+AkN8BbCqpdr6ivRhIWqktunVdlGoFa+c6PbpYgMTCNo2uEbXcGrXmPx9adEG2FgVfCuF9M2dhNN1YOZufYhx2ulJ8KncMsBPtuCVxwqtTCyMfZn2quenut5yH0YLZBzrzmpeSd8Dw0LzBqKBvrtA/+oVbOvPHEMotXb/uu7xbVCx1JR3oP6lYMFr+OaCFgJmbBP+hT5UPOCnJPjCtv48Vm1QU/v
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 01:52:50.1406
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ec22bc81-8b41-4c53-3699-08de65226f38
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB51.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR16MB6719
X-Proofpoint-GUID: _zKmLNFILZoqlywjWgsUSysAukp_vYbb
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDAxMyBTYWx0ZWRfX6e7ICAZ5h/P/ UoWIEsuP4nVv724bEyY6zO03DEDKP06ePFqSPLNorcOgisWLOKBNc03lSddg58NFb/oVKtcmdYa 4guN5AVcBYgCQL1mBIEnXVcDbmDmbWUp5hlAzQXyKzCIXO5N2Hp0gv0SiFZv5aRK96DwvaprLyn
 1GMZJ5MP2NnCoNop613XnipDq/tX4NGDawuEObDY5mGLCqsPop8g4B8XgJtcAEkGrFuNJTue5tM S+3aE1TWS2XhXZS+/CAzBv5zNiVWLtfvY9EK1SNp9Z4HS+FBBISDx6AewPqEYk9NeI7Ho9QjubK oTPBnA9eSTMqVIv7QTm4U/jIUBWorWFD8GMfMFJkALfc6xDon9WAXExkTw+sLDa35NndPMt3eXa
 VyZuR+6QDM4+sPYCNcnJLlya5L3AfBS5S/0/M79MfqZnIP5P4g6El+UKQGmmc1ns2HRH/RdTAwg PL82CGQyq18n8AkIhKg==
X-Proofpoint-ORIG-GUID: _zKmLNFILZoqlywjWgsUSysAukp_vYbb
X-Authority-Analysis: v=2.4 cv=Ffk6BZ+6 c=1 sm=1 tr=0 ts=69854975 cx=c_pps a=KMP5/9L46olBb+slh8+hsQ==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=mLnsDVdbAAAA:8 a=2jrG0t4_TvpmvPL-U7oA:9 a=CjuIK1q_8ugA:10 a=G69WFyCBNqGPyalROSdv:22 a=xnp1pY6zelCj5OLna2To:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-05_06,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 clxscore=1015
 priorityscore=1501 spamscore=0 lowpriorityscore=0 phishscore=0
 adultscore=0 bulkscore=0 malwarescore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2601150000
 definitions=main-2602060013

On Thu, Feb 05, 2026 at 09:43:31AM +0100, Jan Beulich wrote:
> On 05.02.2026 02:36, dmukhin@xen.org wrote:
> > --- a/xen/drivers/char/Kconfig
> > +++ b/xen/drivers/char/Kconfig
> > @@ -95,6 +95,30 @@ config SERIAL_TX_BUFSIZE
> >  
> >  	  Default value is 32768 (32KiB).
> >  
> > +config CONRING_SHIFT
> > +	int "Console ring buffer size (power of 2)"
> > +	range 14 27
> > +	default 15
> > +	help
> > +	  Select the boot console ring buffer size as a power of 2.
> > +	  Run-time console ring buffer size is the same as the boot console ring
> > +	  buffer size, unless overridden via 'conring_size=' boot parameter.
> > +
> > +	    27 => 128 MiB
> > +	    26 =>  64 MiB
> > +	    25 =>  32 MiB
> > +	    24 =>  16 MiB
> > +	    23 =>   8 MiB
> > +	    22 =>   4 MiB
> > +	    21 =>   2 MiB
> > +	    20 =>   1 MiB
> > +	    19 => 512 KiB
> > +	    18 => 256 KiB
> > +	    17 => 128 KiB
> > +	    16 =>  64 KiB
> > +	    15 =>  32 KiB (default)
> > +	    14 =>  16 KiB
> 
> As I think I had indicated before - imo an exhaustive table goes too far here.
> E.g.
> 
> 	    27 => 128 MiB
> 	    26 =>  64 MiB
> 	    ...
> 	    15 =>  32 KiB (default)
> 	    14 =>  16 KiB
> 
> would do (if such is needed / wanted at all).

OK, will adjust as suggested.
Thanks!

> 
> Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 03:45:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 03:45:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222747.1530474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voCmQ-000426-Sm; Fri, 06 Feb 2026 03:45:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222747.1530474; Fri, 06 Feb 2026 03:45:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voCmQ-00041y-OU; Fri, 06 Feb 2026 03:45:14 +0000
Received: by outflank-mailman (input) for mailman id 1222747;
 Fri, 06 Feb 2026 03:45: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=D6vR=AK=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1voCmP-00041D-G5
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 03:45:13 +0000
Received: from jpms-ob02.noc.sony.co.jp (jpms-ob02.noc.sony.co.jp
 [2001:cf8:ace:41::5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37f34637-030e-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 04:45:06 +0100 (CET)
Received: from unknown (HELO jpmta-ob02.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::7])
 by jpms-ob02.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Feb 2026 12:45:01 +0900
Received: from unknown (HELO JPC00244420)
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob02.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Feb 2026 12:45:01 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37f34637-030e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770349507; x=1801885507;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=IuPnlqREwJB3pbqSqs+4wA7Rlfs308sbPiaPxE9gRow=;
  b=PGiM8c0k1NStI9Uo/jLqSLmCzGFdV4IgZ6HLyJNYcFFpfEPzBE5LTJdq
   8b1+7QjtZUlx9cz0DmSlZBr3pCuiFatM6JGK4qaZ59O/dnhacwh0hGB9+
   ooN06xSFhLpPgS9XRxn1oaC6hDeI/MwVXANGXKb1NTloxOCDY0F9RG39u
   Qo+SoP0bI7XaFJBXRkBP7D+S+HTArZskk3ueQ1Pu1/eVgxijx5RAwTSOU
   DUEjrOFCcwGwe20xS+Nxjzxam1W0QLVYhYFyQRQfAUNoXiUfQl3EYVSlR
   NvKRGmSvK9fHjthOiL7z0nuleTFeB/zntlBeaH+vDFwVWuknDS81YzzsG
   A==;
X-IronPort-AV: E=Sophos;i="6.21,275,1763391600"; 
   d="scan'208";a="578775205"
Date: Fri, 6 Feb 2026 12:44:57 +0900
From: Shashank Balaji <shashank.mahadasyam@sony.com>
To: Sohil Mehta <sohil.mehta@intel.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>, stable@vger.kernel.org
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Message-ID: <aYVjuSkdOlBh06_S@JPC00244420>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
 <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>
 <aYMOqXTYMJ_IlEFA@JPC00244420>
 <722b53a7-7560-4a1b-ab26-73eeed3dffa5@intel.com>
 <aYQzhRN83rJx6DSb@JPC00244420>
 <e5ac3272-795b-488c-b767-290fd50f2105@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <e5ac3272-795b-488c-b767-290fd50f2105@intel.com>

On Thu, Feb 05, 2026 at 03:18:58PM -0800, Sohil Mehta wrote:
> Maybe a warning would be useful to encourage firmware to fix this going
> forward. I don't have a strong preference on the wording, but how about?
> 
> pr_warn_once("x2apic unexpectedly re-enabled by the firmware during
> resume.\n");

That works

> A few nits:
> 
> For the code comments, you can use more of the line width. Generally, 72
> (perhaps even 80) chars is okay for comments dependent on the code in
> the vicinity.
> 
> The tip tree has slightly unique preferences, such as capitalizing the
> first word of the patch title.
> 
> Please refer:
> https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#patch-submission-notes

Thanks! I noticed that I also didn't use '()' for function names in the
commit message. I'll fix all these and add the pr_warn_once in v2.


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 04:07:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 04:07:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222754.1530485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voD89-0006uu-Jy; Fri, 06 Feb 2026 04:07:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222754.1530485; Fri, 06 Feb 2026 04:07: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 1voD89-0006um-Fx; Fri, 06 Feb 2026 04:07:41 +0000
Received: by outflank-mailman (input) for mailman id 1222754;
 Fri, 06 Feb 2026 04:07: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=tiGI=AK=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1voD87-0006ug-SF
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 04:07:40 +0000
Received: from mail-yx1-xb131.google.com (mail-yx1-xb131.google.com
 [2607:f8b0:4864:20::b131])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f28f159-0311-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 05:07:38 +0100 (CET)
Received: by mail-yx1-xb131.google.com with SMTP id
 956f58d0204a3-649e97f1e1eso1459069d50.1
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 20:07:37 -0800 (PST)
Received: from [10.138.34.110]
 (h69-131-216-100.cncrtn.broadband.dynamic.tds.net. [69.131.216.100])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-649f256c381sm1225562d50.21.2026.02.05.20.07.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 20:07:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f28f159-0311-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770350856; x=1770955656; 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=wUJNgK2YBOAUeB8OyVaT75o0p+RsxXpAOArOU4GhI3s=;
        b=V9sWUvklXCAaME0YTN0hB+6KSWqTMvLgbsh/4GLX7yk6hDx0Ekgj3bT31NaunAQxjK
         pTEEp3D+pJeVqnwhW0ll4R1eAv/DUc3/tFclciz+Dq7I8TvVgBl2BtJ9756Mz3mb4Ddi
         pgzHy1i+Y5NMAFXLBlZpDe4KV5uf33vi1IH/y2P6McZtjQnu3woU2CjT4oKxBwQi0UVa
         1WYrlHZec9PHWTQPAOzWAIKHGiO0I6nEIzXVObRevtUQbA+CnB/5XUahvIUajJ+u8gEo
         TbZ+q4o9CUs7thWfCRCeCMbof3njm68l/5sch4PYIcrSDCkcaUVy7c/NicF0JT4EVR9x
         E+iQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770350856; x=1770955656;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=wUJNgK2YBOAUeB8OyVaT75o0p+RsxXpAOArOU4GhI3s=;
        b=BAUT7f/rt/ye1BvdqL6seEJM/KTq7kRf7of1NXag7k+81BMGe5chXuBN4vQliPgXDU
         s5kHfaDaw+bwwPRVe7sBt+wqVuzIQlnJ4/9ai6rFo3xRlsWQ+AllSEvj5RArU7jr9j6b
         7f2M8jMYTde56+nj/xL4W6nhM2k41oeo5Ic3rsBsXoSE0ongAg/tgH4PgytaQmOtbnFb
         XFvKxt02BDoOFyUl6EboLzt6H1VJFBqeT2Rpqm5NlyK6b/XIVh0mEZ7VieFX/Xqbe6p4
         i+IVsvNi9OYnWkmJvi12+CBxek4YfiiMTkkZN+xSQOPYb+yO+i+rA9FQrSAXzEnKR++4
         BG4Q==
X-Forwarded-Encrypted: i=1; AJvYcCWf0A9mbrKdGMlY15gzDLE9BfzQv1mE+rFQPzSakJoXk8gqK27EoULGieEuaDCowhgZDkRuq3EQji4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxli1Xvnel75lv6mrhcAob1XwAKBllqCK7k0Sde0VdJbglf1qTM
	XmF3UkQzwh+pq6HpXM/FTpLtq6ip70HqOinalDHotLcuyvhwjx1XKE+v
X-Gm-Gg: AZuq6aJLhy/GCz6YuzvjqCNhBQz9CvE8MmnFJv/+KPK0VSDnbVEETnQslEer6UAJql7
	oZyqQ4aAwN3wcKM/Xalc0VHKU6QCc4w7dggA7UZPUcysVaDkp5uYfM/4pfGfQwXut8N0HjbzRVD
	8WMTuFSkSTXyDYrZuf6PMRI9xBfDjBbzQaWZT8+8azYdJ6qQY4GKAqFOkvQWqN5wkArWged0BJt
	dB/58j/Y1+kjmW38XqxgWv3jB9ajoMrZFUnVIPYgmTch18QmcKCFrP6XbUFIEQDqwYFIEyg7ntx
	iw5bR9Pq+KJuhLjHt2DbEgNCBf/rR/8xpejWgE2aNn5TrNvfSSeglsglWTmI/+afBSb1l8I051m
	mtchap+3TCWujwq+fjXQav1UIrhuS7tcC1xyPdRcdevDp6ylr9R2Kuopn8ihb/60TMU1uTE73Mj
	nY7+f+sgJoa7/Z3nINX5/YCJzLvACfeJYwXnPDgZtluYGiSlUGu94aMtfK6M8fJ19yjHkfFJuIA
	0hACDSioS8nTB/XY3/lHmkHEUz25A==
X-Received: by 2002:a05:690e:1901:b0:649:f272:4e71 with SMTP id 956f58d0204a3-649f2725468mr1294811d50.61.1770350856118;
        Thu, 05 Feb 2026 20:07:36 -0800 (PST)
Message-ID: <8899d013-3be7-4ffa-835c-bc3575439322@gmail.com>
Date: Thu, 5 Feb 2026 23:07:29 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, andrew.cooper3@citrix.com, roger.pau@citrix.com,
 jason.andryuk@amd.com, alejandro.garciavallejo@amd.com
References: <20260206015032.4159672-1-stefano.stabellini@amd.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: <20260206015032.4159672-1-stefano.stabellini@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------3hJUj1mq3NnE0FFYrRZNdcQK"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------3hJUj1mq3NnE0FFYrRZNdcQK
Content-Type: multipart/mixed; boundary="------------v48DdQMR4cnFttR0UBVN0Ytc";
 protected-headers="v1"
Message-ID: <8899d013-3be7-4ffa-835c-bc3575439322@gmail.com>
Date: Thu, 5 Feb 2026 23:07:29 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com, andrew.cooper3@citrix.com, roger.pau@citrix.com,
 jason.andryuk@amd.com, alejandro.garciavallejo@amd.com
References: <20260206015032.4159672-1-stefano.stabellini@amd.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: <20260206015032.4159672-1-stefano.stabellini@amd.com>

--------------v48DdQMR4cnFttR0UBVN0Ytc
Content-Type: multipart/mixed; boundary="------------KMH2SnAkdI0syJl1OX08h0VV"

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

On 2/5/26 20:50, Stefano Stabellini wrote:
> Introduce CONFIG_NESTED_VIRT (default y, requires EXPERT to disable)
> to allow nested virtualization support to be disabled at build time.
> This is useful for embedded or safety-focused deployments where
> nested virtualization is not needed, reducing code size and attack
> surface.
>=20
> When CONFIG_NESTED_VIRT=3Dn, the following source files are excluded:
> - arch/x86/hvm/nestedhvm.c
> - arch/x86/hvm/svm/nestedsvm.c
> - arch/x86/hvm/vmx/vvmx.c
> - arch/x86/mm/nested.c
> - arch/x86/mm/hap/nested_hap.c
> - arch/x86/mm/hap/nested_ept.c
>=20
> Add inline stubs where needed in headers.
>=20
> No functional change when CONFIG_NESTED_VIRT=3Dy.
>=20
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
>  xen/arch/x86/hvm/Kconfig                 | 10 ++++++
>  xen/arch/x86/hvm/Makefile                |  2 +-
>  xen/arch/x86/hvm/svm/Makefile            |  2 +-
>  xen/arch/x86/hvm/svm/nestedhvm.h         | 44 +++++++++++++++++++++---=

>  xen/arch/x86/hvm/svm/svm.c               |  6 ++++
>  xen/arch/x86/hvm/vmx/Makefile            |  2 +-
>  xen/arch/x86/hvm/vmx/vmx.c               | 10 ++++--
>  xen/arch/x86/include/asm/hvm/nestedhvm.h | 41 +++++++++++++++++-----
>  xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 30 ++++++++++++++++
>  xen/arch/x86/mm/Makefile                 |  2 +-
>  xen/arch/x86/mm/hap/Makefile             |  4 +--
>  xen/arch/x86/mm/p2m.h                    |  6 ++++
>  12 files changed, 137 insertions(+), 22 deletions(-)
>=20
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index f32bf5cbb7..12b5df4710 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,14 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
> =20
> +config NESTED_VIRT
> +	bool "Nested virtualization support" if EXPERT
> +	depends on AMD_SVM || INTEL_VMX
> +	default y

Would it be possible to make this

	default n

instead?  If not, could the dependency on EXPERT be removed?

> +	help
> +	  Enable nested virtualization, allowing guests to run their own
> +	  hypervisors. This requires hardware support.
> +
> +	  If unsure, say Y.

I would go with:

	Xen's support is known to be buggy and insecure. If unsure, say N.

> +
>  endif
> diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
> index f34fb03934..b8a0a68624 100644
> --- a/xen/arch/x86/hvm/Makefile
> +++ b/xen/arch/x86/hvm/Makefile
> @@ -18,7 +18,7 @@ obj-y +=3D irq.o
>  obj-y +=3D mmio.o
>  obj-$(CONFIG_VM_EVENT) +=3D monitor.o
>  obj-y +=3D mtrr.o
> -obj-y +=3D nestedhvm.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nestedhvm.o
>  obj-y +=3D pmtimer.o
>  obj-y +=3D quirks.o
>  obj-y +=3D rtc.o
> diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makef=
ile
> index 8a072cafd5..92418e3444 100644
> --- a/xen/arch/x86/hvm/svm/Makefile
> +++ b/xen/arch/x86/hvm/svm/Makefile
> @@ -2,6 +2,6 @@ obj-y +=3D asid.o
>  obj-y +=3D emulate.o
>  obj-bin-y +=3D entry.o
>  obj-y +=3D intr.o
> -obj-y +=3D nestedsvm.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nestedsvm.o
>  obj-y +=3D svm.o
>  obj-y +=3D vmcb.o
> diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/ne=
stedhvm.h
> index 9bfed5ffd7..a102c076ea 100644
> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> @@ -26,6 +26,13 @@
>  #define nsvm_efer_svm_enabled(v) \
>      (!!((v)->arch.hvm.guest_efer & EFER_SVME))
> =20
> +#define NSVM_INTR_NOTHANDLED     3
> +#define NSVM_INTR_NOTINTERCEPTED 2
> +#define NSVM_INTR_FORCEVMEXIT    1
> +#define NSVM_INTR_MASKED         0
> +
> +#ifdef CONFIG_NESTED_VIRT
> +
>  int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr);
>  void nestedsvm_vmexit_defer(struct vcpu *v,
>      uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2);
> @@ -57,13 +64,40 @@ int cf_check nsvm_hap_walk_L1_p2m(
>      struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *pag=
e_order,
>      uint8_t *p2m_acc, struct npfec npfec);
> =20
> -#define NSVM_INTR_NOTHANDLED     3
> -#define NSVM_INTR_NOTINTERCEPTED 2
> -#define NSVM_INTR_FORCEVMEXIT    1
> -#define NSVM_INTR_MASKED         0
> -
>  int nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack i=
ntack);
> =20
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr=
)
> +{
> +    return 0;
> +}
> +static inline void nestedsvm_vmexit_defer(struct vcpu *v,
> +    uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2) { }
> +static inline enum nestedhvm_vmexits nestedsvm_vmexit_n2n1(struct vcpu=
 *v,
> +    struct cpu_user_regs *regs)
> +{
> +    return NESTEDHVM_VMEXIT_ERROR;
> +}
> +static inline enum nestedhvm_vmexits nestedsvm_check_intercepts(struct=
 vcpu *v,
> +    struct cpu_user_regs *regs, uint64_t exitcode)
> +{
> +    return NESTEDHVM_VMEXIT_ERROR;
> +}
> +static inline void svm_nested_features_on_efer_update(struct vcpu *v) =
{ }
> +static inline void svm_vmexit_do_clgi(struct cpu_user_regs *regs,
> +                                      struct vcpu *v) { }
> +static inline void svm_vmexit_do_stgi(struct cpu_user_regs *regs,
> +                                       struct vcpu *v) { }
> +static inline bool nestedsvm_gif_isset(struct vcpu *v) { return true; =
}
> +static inline int nestedsvm_vcpu_interrupt(struct vcpu *v,
> +                                           const struct hvm_intack int=
ack)
> +{
> +    return NSVM_INTR_NOTINTERCEPTED;
> +}
> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  #endif /* __X86_HVM_SVM_NESTEDHVM_PRIV_H__ */
> =20
>  /*
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 18ba837738..0234b57afb 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -46,6 +46,10 @@
> =20
>  void noreturn svm_asm_do_resume(void);
> =20
> +#ifndef CONFIG_NESTED_VIRT
> +void asmlinkage nsvm_vcpu_switch(void) { }
> +#endif
> +
>  u32 svm_feature_flags;
> =20
>  /*
> @@ -2465,6 +2469,7 @@ static struct hvm_function_table __initdata_cf_cl=
obber svm_function_table =3D {
>      .set_rdtsc_exiting    =3D svm_set_rdtsc_exiting,
>      .get_insn_bytes       =3D svm_get_insn_bytes,
> =20
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise =3D nsvm_vcpu_initialise,
>      .nhvm_vcpu_destroy =3D nsvm_vcpu_destroy,
>      .nhvm_vcpu_reset =3D nsvm_vcpu_reset,
> @@ -2474,6 +2479,7 @@ static struct hvm_function_table __initdata_cf_cl=
obber svm_function_table =3D {
>      .nhvm_vmcx_hap_enabled =3D nsvm_vmcb_hap_enabled,
>      .nhvm_intr_blocked =3D nsvm_intr_blocked,
>      .nhvm_hap_walk_L1_p2m =3D nsvm_hap_walk_L1_p2m,
> +#endif
> =20
>      .get_reg =3D svm_get_reg,
>      .set_reg =3D svm_set_reg,
> diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makef=
ile
> index 04a29ce59d..902564b3e2 100644
> --- a/xen/arch/x86/hvm/vmx/Makefile
> +++ b/xen/arch/x86/hvm/vmx/Makefile
> @@ -3,4 +3,4 @@ obj-y +=3D intr.o
>  obj-y +=3D realmode.o
>  obj-y +=3D vmcs.o
>  obj-y +=3D vmx.o
> -obj-y +=3D vvmx.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D vvmx.o
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 82c55f49ae..252f27322b 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -55,6 +55,10 @@
>  #include <public/hvm/save.h>
>  #include <public/sched.h>
> =20
> +#ifndef CONFIG_NESTED_VIRT
> +void asmlinkage nvmx_switch_guest(void) { }
> +#endif
> +
>  static bool __initdata opt_force_ept;
>  boolean_param("force-ept", opt_force_ept);
> =20
> @@ -2033,7 +2037,7 @@ static void nvmx_enqueue_n2_exceptions(struct vcp=
u *v,
>                   nvmx->intr.intr_info, nvmx->intr.error_code);
>  }
> =20
> -static int cf_check nvmx_vmexit_event(
> +static int cf_check __maybe_unused nvmx_vmexit_event(
>      struct vcpu *v, const struct x86_event *event)
>  {
>      nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
> @@ -2933,6 +2937,7 @@ static struct hvm_function_table __initdata_cf_cl=
obber vmx_function_table =3D {
>      .handle_cd            =3D vmx_handle_cd,
>      .set_info_guest       =3D vmx_set_info_guest,
>      .set_rdtsc_exiting    =3D vmx_set_rdtsc_exiting,
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise =3D nvmx_vcpu_initialise,
>      .nhvm_vcpu_destroy    =3D nvmx_vcpu_destroy,
>      .nhvm_vcpu_reset      =3D nvmx_vcpu_reset,
> @@ -2942,8 +2947,9 @@ static struct hvm_function_table __initdata_cf_cl=
obber vmx_function_table =3D {
>      .nhvm_vcpu_vmexit_event =3D nvmx_vmexit_event,
>      .nhvm_intr_blocked    =3D nvmx_intr_blocked,
>      .nhvm_domain_relinquish_resources =3D nvmx_domain_relinquish_resou=
rces,
> -    .update_vlapic_mode =3D vmx_vlapic_msr_changed,
>      .nhvm_hap_walk_L1_p2m =3D nvmx_hap_walk_L1_p2m,
> +#endif
> +    .update_vlapic_mode =3D vmx_vlapic_msr_changed,
>  #ifdef CONFIG_VM_EVENT
>      .enable_msr_interception =3D vmx_enable_msr_interception,
>  #endif
> diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/in=
clude/asm/hvm/nestedhvm.h
> index ea2c1bc328..0372974b24 100644
> --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> @@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
>  /* Nested HVM on/off per domain */
>  static inline bool nestedhvm_enabled(const struct domain *d)
>  {
> -    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nest=
ed_virt);
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
> +           (d->options & XEN_DOMCTL_CDF_nested_virt);
>  }
> =20
> +/* Nested paging */
> +#define NESTEDHVM_PAGEFAULT_DONE       0
> +#define NESTEDHVM_PAGEFAULT_INJECT     1
> +#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> +#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> +#define NESTEDHVM_PAGEFAULT_MMIO       4
> +#define NESTEDHVM_PAGEFAULT_RETRY      5
> +#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> +
> +#ifdef CONFIG_NESTED_VIRT
> +
>  /* Nested VCPU */
>  int nestedhvm_vcpu_initialise(struct vcpu *v);
>  void nestedhvm_vcpu_destroy(struct vcpu *v);
> @@ -38,14 +50,6 @@ bool nestedhvm_vcpu_in_guestmode(struct vcpu *v);
>  #define nestedhvm_vcpu_exit_guestmode(v)  \
>      vcpu_nestedhvm(v).nv_guestmode =3D 0
> =20
> -/* Nested paging */
> -#define NESTEDHVM_PAGEFAULT_DONE       0
> -#define NESTEDHVM_PAGEFAULT_INJECT     1
> -#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> -#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> -#define NESTEDHVM_PAGEFAULT_MMIO       4
> -#define NESTEDHVM_PAGEFAULT_RETRY      5
> -#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
>  int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
>                                      struct npfec npfec);
> =20
> @@ -59,6 +63,25 @@ unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_=
80, bool ioport_ed);
> =20
>  void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m);
> =20
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline int nestedhvm_vcpu_initialise(struct vcpu *v) { return 0=
; }
> +static inline void nestedhvm_vcpu_destroy(struct vcpu *v) { }
> +static inline void nestedhvm_vcpu_reset(struct vcpu *v) { }
> +static inline bool nestedhvm_vcpu_in_guestmode(struct vcpu *v) { retur=
n false; }
> +static inline int nestedhvm_hap_nested_page_fault(struct vcpu *v, padd=
r_t *L2_gpa,
> +                                                  struct npfec npfec)
> +{
> +    return NESTEDHVM_PAGEFAULT_L0_ERROR;
> +}
> +#define nestedhvm_vcpu_enter_guestmode(v) do { } while (0)
> +#define nestedhvm_vcpu_exit_guestmode(v)  do { } while (0)
> +#define nestedhvm_paging_mode_hap(v) false
> +#define nestedhvm_vmswitch_in_progress(v) false
> +static inline void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m) { }=

> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  static inline bool nestedhvm_is_n2(struct vcpu *v)
>  {
>      if ( !nestedhvm_enabled(v->domain) ||
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h b/xen/arch/x86/inc=
lude/asm/hvm/vmx/vvmx.h
> index da10d3fa96..8dc876a4c2 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> @@ -73,6 +73,8 @@ union vmx_inst_info {
>      u32 word;
>  };
> =20
> +#ifdef CONFIG_NESTED_VIRT
> +
>  int cf_check nvmx_vcpu_initialise(struct vcpu *v);
>  void cf_check nvmx_vcpu_destroy(struct vcpu *v);
>  int cf_check nvmx_vcpu_reset(struct vcpu *v);
> @@ -199,5 +201,33 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2=
ga,
>                          uint64_t *exit_qual, uint32_t *exit_reason);
>  int nvmx_cpu_up_prepare(unsigned int cpu);
>  void nvmx_cpu_dead(unsigned int cpu);
> +
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline void nvmx_update_exec_control(struct vcpu *v, u32 value)=
 { }
> +static inline void nvmx_update_secondary_exec_control(struct vcpu *v,
> +                                                      unsigned long va=
lue) { }
> +static inline void nvmx_update_exception_bitmap(struct vcpu *v,
> +                                                unsigned long value) {=
 }
> +static inline u64 nvmx_get_tsc_offset(struct vcpu *v) { return 0; }
> +static inline void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned in=
t cr) { }
> +static inline bool nvmx_intercepts_exception(struct vcpu *v, unsigned =
int vector,
> +                                             int error_code) { return =
false; }
> +static inline int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
> +                                         unsigned int exit_reason) { r=
eturn 0; }
> +static inline void nvmx_idtv_handling(void) { }
> +static inline int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_c=
ontent)
> +{
> +    return 0;
> +}
> +static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
> +                                       unsigned int exit_reason) { ret=
urn 0; }
> +static inline int nvmx_cpu_up_prepare(unsigned int cpu) { return 0; }
> +static inline void nvmx_cpu_dead(unsigned int cpu) { }
> +
> +#define get_vvmcs(vcpu, encoding) 0
> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  #endif /* __ASM_X86_HVM_VVMX_H__ */
> =20
> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> index 960f6e8409..aa15811c2e 100644
> --- a/xen/arch/x86/mm/Makefile
> +++ b/xen/arch/x86/mm/Makefile
> @@ -7,7 +7,7 @@ obj-$(CONFIG_SHADOW_PAGING) +=3D guest_walk_4.o
>  obj-$(CONFIG_VM_EVENT) +=3D mem_access.o
>  obj-$(CONFIG_MEM_PAGING) +=3D mem_paging.o
>  obj-$(CONFIG_MEM_SHARING) +=3D mem_sharing.o
> -obj-$(CONFIG_HVM) +=3D nested.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nested.o
>  obj-$(CONFIG_HVM) +=3D p2m.o
>  obj-y +=3D p2m-basic.o
>  obj-$(CONFIG_INTEL_VMX) +=3D p2m-ept.o
> diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefil=
e
> index 67c29b2162..de1bb3abde 100644
> --- a/xen/arch/x86/mm/hap/Makefile
> +++ b/xen/arch/x86/mm/hap/Makefile
> @@ -2,5 +2,5 @@ obj-y +=3D hap.o
>  obj-y +=3D guest_walk_2.o
>  obj-y +=3D guest_walk_3.o
>  obj-y +=3D guest_walk_4.o
> -obj-y +=3D nested_hap.o
> -obj-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nested_hap.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nested_ept.o
> diff --git a/xen/arch/x86/mm/p2m.h b/xen/arch/x86/mm/p2m.h
> index 635f5a7f45..fa14e69fff 100644
> --- a/xen/arch/x86/mm/p2m.h
> +++ b/xen/arch/x86/mm/p2m.h
> @@ -25,9 +25,15 @@ void p2m_teardown_altp2m(struct domain *d);
>  void p2m_flush_table_locked(struct p2m_domain *p2m);
>  int __must_check p2m_remove_entry(struct p2m_domain *p2m, gfn_t gfn, m=
fn_t mfn,
>                                    unsigned int page_order);
> +#ifdef CONFIG_NESTED_VIRT
>  void p2m_nestedp2m_init(struct p2m_domain *p2m);
>  int p2m_init_nestedp2m(struct domain *d);
>  void p2m_teardown_nestedp2m(struct domain *d);
> +#else
> +static inline void p2m_nestedp2m_init(struct p2m_domain *p2m) {}
> +static inline int p2m_init_nestedp2m(struct domain *d) { return 0; }
> +static inline void p2m_teardown_nestedp2m(struct domain *d) {}
> +#endif
> =20
>  int ept_p2m_init(struct p2m_domain *p2m);
>  void ept_p2m_uninit(struct p2m_domain *p2m);


--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------KMH2SnAkdI0syJl1OX08h0VV
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-----

--------------KMH2SnAkdI0syJl1OX08h0VV--

--------------v48DdQMR4cnFttR0UBVN0Ytc--

--------------3hJUj1mq3NnE0FFYrRZNdcQK
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/sszaHOrMp8lMFAmmFaQIACgkQszaHOrMp
8lMd3A/+KVfsztMeU2Ir8LY3A1KdA+79l8jSu8zvhrYnAdjzFv1tRmMSqRkaSAA7
8DSMp8bvlDwR3uIAsM3IncfHA9fWGUYuejwZL5UreIAfoIsAJaVYiDTTIuNp7fpt
rE2mbl5FwomQ/vVAnmJ6MfajXL9k5I39DuP2mGOqkjsOkrrFtiFfQDWMY/+dh1lE
Nu0cBDxLt32jmfzO75XVopXhUL16iwK1B8qrO6JmQ1I55VFOeDlPWxpPRLMvNkCq
13l99RZub4iBRDfI/ZkYJ3e5n6PvZCd/cVkr6lL8I1mKcI4Q0VZHF5LfI0WLThiC
qr2TDTtJyMu6CfabpKbkxG20yteExLqIr5GcHqcOgWU9S2SqPOUK9D0am1JFROkv
Ps5cAjKReMoIN5LGuephLj3/dkW5BwrAOGnkLwnxxk71cKgLEnpCurOs8e3oF2Gs
lW4joIC7otjBBOTPpu96r/q/WtYqcnym9PTsW2TQ/7vMl+FQmOrpR7Ta4BD0VvXz
y+qnb2UQAJHNOEvIxTBOayF3R880KxlugdId/PXcVJJ3F3QwIuYGN6XnWxPArn1l
mmLv0AYXUvgh2v4g05Z7aoTMyeommWVAzWqbrvJGkg06C/OFOYSMvWlxfkDRlhfO
1BjopWSsYUczy3crtAHbo1LKOEPxIX/hq95ZH8uySfM/xeonfAE=
=n5kT
-----END PGP SIGNATURE-----

--------------3hJUj1mq3NnE0FFYrRZNdcQK--


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 06:23:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 06:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222805.1530493 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voFEt-0006t4-RY; Fri, 06 Feb 2026 06:22:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222805.1530493; Fri, 06 Feb 2026 06: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 1voFEt-0006sx-Ox; Fri, 06 Feb 2026 06:22:47 +0000
Received: by outflank-mailman (input) for mailman id 1222805;
 Fri, 06 Feb 2026 06:22: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=8hvW=AK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1voFEs-0006sp-N3
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 06:22:46 +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 3fa768d0-0324-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 07:22:44 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-43622089851so1271374f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 22:22:44 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a68:95b1:80b8:e2ec:fafe?
 (p200300cab70c6a6895b180b8e2ecfafe.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a68:95b1:80b8:e2ec:fafe])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296bd4desm3710626f8f.18.2026.02.05.22.22.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 22:22:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fa768d0-0324-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770358964; x=1770963764; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OL70kP6yGavXgSQW1KtWli/IeEhjXcq7DRjMjwt40Hk=;
        b=Qf1d6A/qiCBL72QijOQECgJnCWSeXEGQttv7cHtJXHsaZyg7yNgdiOPutdHAWWjwV/
         veZ4ouW61MUaaN5+uiEJlqr6YK7Bt5YFiVwT5LP4hPqyJfViL+WF/wqelN82pZigPGla
         Z02hyCeEBZzCnNNyElvIiZco0xNi2ME3DdtHcOEBEzIWjgc608pstHaxO9bYCIz9CL8j
         P9tENKQFupSfyTCLVWA6vfJntjXf3kgn5kOS+We943bE5pzVjh6DlP+8V/1hICbW16NI
         mH0dtXG6XTuLpGE7kC1O4ZtSjsinu8A7YVer493pYslKGTEbklqba3hQ+NdW739GGKTg
         JxuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770358964; x=1770963764;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OL70kP6yGavXgSQW1KtWli/IeEhjXcq7DRjMjwt40Hk=;
        b=Ghp+K0yNWUUUN6swsJH/1+U59D4jI6MI2Yo+zWRYnPNRhnmWHQg9khcC4CLccTblS2
         KZas1dOaPXe+O+Af1yB464S1ZGv9R10x5TtRa+2UytccJsCD1YfJNykwYCVAaxy34fOH
         7mAYKF+Bj4rhpPQRTr2v6qNefPxUIysDZftvuu9drBw8bPBMZZIRV/BXjMpChRiuP3Vf
         5Owb7Rgnqei6+AOy4qwoUXFxdycTLtrhZx/X3QgLGLq9MRCcJaSJP+IxQ5REakBLVhLj
         dOxo8FiAIDLwu9v6kf6YNtnNjFN39gNpnVfPQqr5FLNYnwOIWd4YlarOYkdGt4DwUZdA
         GotQ==
X-Gm-Message-State: AOJu0Yz+yF8HAkmmuFb+DrDKuAqHBFG6l0a9Rf/7VGsquyG9BdYeJAVo
	LOTt9Xdswq5Fyfo332r0k2Hl1plIbPN1o0iiQfNKsnHqgcMTpa688uURqZQVqKK8Pg==
X-Gm-Gg: AZuq6aK591jgs72OyL2Bkg+OSY5rOoHRDT6UQ+Mmr/RrWuKcWwoo6BDl97EpAeI9aDr
	57jSJ4D2VZ8QttkennF1YxLXgbzAx6UBfWtHw6m05IBZz/sC57ilaOhWfWglNspVal+tm9UZenI
	u54Y6u3YbBxQ31qOcTM15+EEnjKA/OsknjR/P8KEqeGfSC0le0mYMtTvUApM08EfS4ZridmCJtk
	UAP4qImhi8FbgabVBQj6GH0gk2DDBZnt2FwRcJDF7bUQ2GdTfH7X4JFqSDGX8JMYVD4V9e8K4LJ
	HsUzEBzIWuYsCZfKq9B2KIT2jh2utQTdx52xVPgGGbfBLtzD3AKeL7w9jnthVsFP9OV95xdusCL
	46PTibujHctyQM2xWFnwVJNAzktulF3s6M6VCtpZuSAZC4rGr1IzJSUzvO6mHYUYBGGgWghDq3a
	crG/HcTqnTPcEieTe9m4LL8QDK0t2u7S+RpdYH4yKJ2SGjw74vZ3EGkDmMMTvyZPgtK1oQhKcRr
	AWrQV+HkasgoZwzOrYodyAnO/CeS1raVoeKRC366TpFYU81
X-Received: by 2002:a05:6000:184f:b0:435:e57a:9082 with SMTP id ffacd0b85a97d-4362938b122mr2753129f8f.46.1770358964233;
        Thu, 05 Feb 2026 22:22:44 -0800 (PST)
Message-ID: <eeccafa8-8474-485d-afd5-85d9eecdb241@suse.com>
Date: Fri, 6 Feb 2026 07:22:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
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>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <aYTONBslOYwyrFqM@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: <aYTONBslOYwyrFqM@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 05.02.2026 18:07, Roger Pau Monné wrote:
> On Thu, Feb 05, 2026 at 12:33:54PM +0100, Bertrand Marquis wrote:
>> +## Limitations
>> +
>> +- **Hypervisor only**: This only builds the Xen hypervisor, not the tools
>> +- **Cross-compilation only**: Native builds are not supported
> 
> Probably a more philosophical question, but is it really a cross
> compilation if I'm building an arm64 Xen on Apple arm64 silicon?
> 
> Sure, it might use a different toolchain from native, but it's still a
> "native" build from an architectural perspective?

"Cross" aiui covers both OS (i.e. ABI) and hardware. Building x86 Linux
binaries on e.g. Windows is "cross", too. (Strictly speaking it's the
target triplet that is commonly used in at least GNU - if any part
differs, it's "cross". It just so happens that Xen uses Linux'es ABI,
and hence its building is native on identical-arch Linux.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 06:30:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 06:30:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222813.1530503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voFLo-0007cE-HD; Fri, 06 Feb 2026 06:29:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222813.1530503; Fri, 06 Feb 2026 06: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 1voFLo-0007c7-Dv; Fri, 06 Feb 2026 06:29:56 +0000
Received: by outflank-mailman (input) for mailman id 1222813;
 Fri, 06 Feb 2026 06:29: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=8hvW=AK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1voFLm-0007bz-Te
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 06:29: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 3e1a9713-0325-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 07:29:52 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4801ea9bafdso10201045e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 22:29:51 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a68:95b1:80b8:e2ec:fafe?
 (p200300cab70c6a6895b180b8e2ecfafe.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a68:95b1:80b8:e2ec:fafe])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d835f0sm104113245e9.14.2026.02.05.22.29.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 22:29:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e1a9713-0325-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770359391; x=1770964191; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=l7I3grGE0i9bClpF/I10K1YRr3J6btGMAkpgptDyg/o=;
        b=FSRpkeEs1GoBZ6j0abLeYzJ76QTzmVCRV58hrc+rITwJPztbnc6xDX1W6OwowCYBSw
         AMfBgw3kX1bak8uGeZSFeMw6ef2JSu39RKW1dGQzjE9BcfaS2SqKg8Ef8Pynl8VD/cfW
         JtTYm6DXbIhREqoCyFxzfJEi5oNU1CvF9U823b8T7hPf902W5oPmVw0puCATgN9NEK/r
         V0Jm1YwN0fbTIfSydcfICMnibryg6eUAZxUNcoiyFbevX1p6YLCGIUAO7obmEnFUcnkr
         2MzQ8GpBZZ/T3bXRloUOfFxZNpbS1PxcsgHYG1KCudaJq6M5pqvE1EMcCLtGESYQExlo
         h1mA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770359391; x=1770964191;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l7I3grGE0i9bClpF/I10K1YRr3J6btGMAkpgptDyg/o=;
        b=O+AvC0mWUzmKcaUO6HiTnN3rC5I2G48A2X/8aF35u3GEyzQGC7vESXNx1rEf46qMx3
         e7XNIC0G6ACWT2VDsyS4WYSXXxTB24cnwxZk4kTdYEeDDc54ARhH0UEMDJTgYGUEyJJk
         u6Z50dqgCryKEBpYeNA22G23xY7p4c+P0gOYkMDgqBFE5v+4Wb+nnwHhw6uNn/DeyObF
         gQ+WZ4kkbPVD9UVAcC5XIRtwF+KSOeZOm9pCqtCijLtUesWfMriS9toTgYidTiAysY9D
         ldG2sLYuY5cP6zaFtyQ8o5qRA0M6XmCIZvIxJE2zN+ddKz8jOBrrEj3U85jA50pObGb2
         K4HQ==
X-Forwarded-Encrypted: i=1; AJvYcCWptZ+Eg103aAghMxvBTFIbwje1yOqrkkay3bi5a1+FG+5eE/uF7zqQdXOlHxau3/E/fev/HLwh8DQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8M5QCbT/eybkIBHKgu0yMayCkb384mGQL52c7jLzGMC865YoR
	nG4s+s6Yg2dFqCElfHIaPp2AjsjouzC5UcQrZ6s9Qm5KTUOQgHO+1RDwX1wY4upimg==
X-Gm-Gg: AZuq6aLwRr6dJLT2KNMuOn2llA/YpdngEfH0sZXmlirz+5fPp5MxVB20/ANCo2IJLZA
	8YJMOf6KRu2GcVqe5JNv5HQnimrsmHZNVZpe9MCOjsNtQHUtxCdcMO9aarA1T8AYi8sH3dn3ew4
	qgsDOrWI1OXLOfQql9lFhTBID/18LOE5j2W7Y3MdVhbOKeIkjo8iHEZWJoAMeY57R3ImOsi+xa1
	vkgmRaEeITrhyV9jZLKoxocna23zXV00p6Od0CVild7dRfoFXFEMNK5s34fsHTxdxY4rcK86V+m
	qROdpOXcOWafOA6DRbD7gCwG3j8Bz6h13RzrcEQAj9Ue18u6gOwuBUY2QekNk3s7OgzXnCNOoES
	MHQy23KV1pmA11N9G6GGRrLzp9TwBkV3AXzXlME3oVMURNP4/Vs1bQkeNi186tlTIlAD8tgHHcZ
	UrfPHMgZmeaFCx5ys2wLogple+8qEnrHWaMxFvSzu2r7A81C7JhraHFz7B3xGl4mqiaYGMOIVfz
	BJyUrGSiB2kvOlA8LweQ3kS6WIVR0b17bp1VmRMbAiga+Fu
X-Received: by 2002:a05:600c:8215:b0:480:4c20:6a06 with SMTP id 5b1f17b1804b1-48320966792mr20244075e9.17.1770359391131;
        Thu, 05 Feb 2026 22:29:51 -0800 (PST)
Message-ID: <be09e51c-5201-4837-9921-5ac0d8cae582@suse.com>
Date: Fri, 6 Feb 2026 07:29:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] efi: Enable EFI_SET_VIRTUAL_ADDRESS_MAP by default
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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <82dfede43d81c2072f90b01d12fe5ef18c80fc24.1770312308.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: <82dfede43d81c2072f90b01d12fe5ef18c80fc24.1770312308.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 18:27, Teddy Astie wrote:
> Many machines fail to boot if this option is disabled, as
> there are no known drawback toggling this option, enable it
> by default.

"no known drawback" ignores why it wasn't enabled originally. Imo this
wants at least mentioning, if not discussing.

> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -363,13 +363,14 @@ config KEXEC
>  
>  config EFI_SET_VIRTUAL_ADDRESS_MAP
>      bool "EFI: call SetVirtualAddressMap()" if EXPERT
> +    default y
>      help
>        Call EFI SetVirtualAddressMap() runtime service to setup memory map for
>        further runtime services. According to UEFI spec, it isn't strictly
>        necessary, but many UEFI implementations misbehave when this call is
>        missing.
>  
> -      If unsure, say N.
> +      If unsure, say Y.

When this was added, it was actually hacked in with the aim of minimal
intrusiveness. When we now default it to on, I wonder if other changes
shouldn't be made (maybe not right in this patch, but perhaps in a
single series). For example, identity mapping (with its implied
restrictions) ought to be possible to do away with when the option is
enabled. Whether the separate EFI page tables would still be needed
also is questionable.

I further wonder whether the EXPERT dependency of the prompt wouldn't
better be dropped when flipping the default.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 07:34:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 07:34:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222832.1530518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voGLi-0007rh-2u; Fri, 06 Feb 2026 07:33:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222832.1530518; Fri, 06 Feb 2026 07:33: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 1voGLi-0007ra-07; Fri, 06 Feb 2026 07:33:54 +0000
Received: by outflank-mailman (input) for mailman id 1222832;
 Fri, 06 Feb 2026 07:33: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=qUCI=AK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1voGLh-0007rT-1L
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 07:33:53 +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 2a918c38-032e-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 08:33:44 +0100 (CET)
Received: from AS9PR06CA0702.eurprd06.prod.outlook.com (2603:10a6:20b:49f::10)
 by DB9PR08MB8436.eurprd08.prod.outlook.com (2603:10a6:10:3d4::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 07:33:38 +0000
Received: from AM2PEPF0001C710.eurprd05.prod.outlook.com
 (2603:10a6:20b:49f:cafe::57) by AS9PR06CA0702.outlook.office365.com
 (2603:10a6:20b:49f::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 07:33:31 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C710.mail.protection.outlook.com (10.167.16.180) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 07:33:38 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DU2PR08MB10278.eurprd08.prod.outlook.com (2603:10a6:10:498::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 07:32:36 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 07:32: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: 2a918c38-032e-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=Z3Urh8WXhS/b4cBCtOUFE8k70iWS+WGTCeL7RtgPBNR72qYMAN5pOyhNTFYKQ1MSSL0aq/nsFzGe87PatEVjgrOPykikrZffNhR8WtbGRsZi5kK/wuO7GrGYsgXOicXLWmixZzQoJsnY1+h8sh+fov14f5tffkKzvPQN4p/2AG1Y2qDaUMtkm+GwxpcGR88u9Y8PhXI63DV2XppfzxR7UBQK8l1DcB8FzUn1gMGsngE0xqQ7OIV7177qyx/zhMV3H46apYtfoFV95RevJq2/0R+UqYCdnYMNxqDmKm6DBe7Bt/bYnFC5+M787TIeioanylJhyQDMDsW6Beyjjfmq6A==
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=IgjbS7Kv5LTkUZAlz7cUF/olh4GYFZmhnLy2cNrk3A4=;
 b=iG4CkeRXWQHXHUSzXn0+GqyRfB+W8gKsoQfqupHbcQCPvZOqu8qZxmJH8CNXP3dil5C+vMv6zKX4b1e1BA8V+b2MwOpJx9iYacXIdEHUUqBdQqTdb0wpTKsWp2Sw5xgUGXKOxlrxnnyBJjpgTwz4n67WITC51d70XI8kWr3PsU9WpyIl0QP41bx/ryJDPaDmVHOVsdO3xKJOVeP0D9EC8OGYimCQ1/d57GIddPAkg6ft6gTjFWhcBa+LXgAw8piUnNzljzlRp78IQNt9EhzKtwIvU26Dph0g/yE2AAnpb5nwFEhovOhE3xSNqcrBYOZpRmqJbk8fd4j8ZiWeyRVNnA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IgjbS7Kv5LTkUZAlz7cUF/olh4GYFZmhnLy2cNrk3A4=;
 b=WX+stRx7j4XjMM+lfGjYGzjj07AmPdxx55DC2os8+CJz2Qy4S1kNSgDOE5cLXKCKczyZ6y2wKS3+ZJYZlTihTFedoQyzmkJ83I2cm9LUKwmK+l7xqk1XFk0gzMUV3DU6Q3aqwLj5dGR7mgmm86N4YBIeoiwz9Cb3tVXxmj9CIyY=
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=ZwpoWEl8ekwycrUpZsKiwCs2toqKOKlCDlEkjnzYmZm38oOvXJFbgDgspc538nZQxmyAKVCXS+xDCnsMc3Lwjs4FnPO+e9sd30Z6Tzarg//e48GIVLxr365ReIgCn+mVbhyMKdt10yO2w9m8ug8kLZi2WDdAd7G9c1r3KZSxEyvTQIG+KXpfPiUdDZz7gQlh9Xhf6A6HEB010Qm+3JPTwv1kWscV5WrGrmhtC5lxy42xvPJBx0s+dtsUNhzZEy07XGyMevGuRYym+9uNYMjyF1yUw3DXxlYXVXtAO2aMwfTJvrUL3M17tQWA6YEEh3KDoGVKCegVjYs/Tl2K8ECWZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IgjbS7Kv5LTkUZAlz7cUF/olh4GYFZmhnLy2cNrk3A4=;
 b=IMhjx31c1FEpWu3EPuSdZ+Sh96MjUISArxcyZXCS4oJl+05caU3BYPvGwgjEcl1zHYl+jUApPgt9n8f6MAZhi/IQnSz4uj0FF7W9OtubTXySr+XH6IQOTOTfHFnn4JjxZFYZRnzaN+lrX6+e/ibsvTyoo/nyCDvd2q2pu0Wkjyc3rZr2mdyNF5DgdQqLgeiVch4ztSXc2JW//CQQwqvchKUXrvOsW31xEHxljhNymYZMvJPuLHgKuoT0NLldMKW+MBZHOBJTDkmoOJ2ZCl0O3w3wNjYUbQ166Ix0ybE9wTVYlGV7ZRaMjl5+Y+azXQAXohT7Gm6m1oIUHgb1gFFm4w==
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=IgjbS7Kv5LTkUZAlz7cUF/olh4GYFZmhnLy2cNrk3A4=;
 b=WX+stRx7j4XjMM+lfGjYGzjj07AmPdxx55DC2os8+CJz2Qy4S1kNSgDOE5cLXKCKczyZ6y2wKS3+ZJYZlTihTFedoQyzmkJ83I2cm9LUKwmK+l7xqk1XFk0gzMUV3DU6Q3aqwLj5dGR7mgmm86N4YBIeoiwz9Cb3tVXxmj9CIyY=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Topic: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Index: AQHclpNk83RtAc43+U+zvyNqPofiH7V0VocAgADxzIA=
Date: Fri, 6 Feb 2026 07:32:35 +0000
Message-ID: <DFD0D9C3-86A4-4124-8D63-451ADBCB8B3B@arm.com>
References:
 <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <aYTONBslOYwyrFqM@Mac.lan>
In-Reply-To: <aYTONBslOYwyrFqM@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DU2PR08MB10278:EE_|AM2PEPF0001C710:EE_|DB9PR08MB8436:EE_
X-MS-Office365-Filtering-Correlation-Id: 98b33007-61a9-4150-b1bc-08de65520b49
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|1800799024|376014|366016|38070700021|7142099003;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?WG03d3FCSzg3L3pld1ZlVVhZMGFncjN1dm9RdlJaeHhMWG1Sc0dzN25QY2JQ?=
 =?utf-8?B?S2E3bHdZNXRMcUx6d3loMm8yZTE2SmlINkFMU0lEWGFMQUtLcDVkQU85Ri9C?=
 =?utf-8?B?L1FyVUEwVkJPU0NqbXdRK1NmV0NwSytuZk5FZml2SkZVVEsyQlh5amxoelR2?=
 =?utf-8?B?dkJ3eVlpbjBFcVp0QUN3eTk1RU1FVjF0MkE5cjhXcFZWNTlleG80bmtkSEs2?=
 =?utf-8?B?VU1hNFFjNS8wVzRTcTJKZS9WTXptTnV4SGk3VXorbGlqTkl1MFdvSk5wS3k0?=
 =?utf-8?B?Z0NGd0NRNTg3aFl6ODVmeVFFc2NtM1VVUU54cTAyUGNLK2JPSktVcGpyNFdP?=
 =?utf-8?B?Y3ZMTGxJd1kyQVR1WkRvczBBQjdlK1JwNGhhL2tCeHl5cmcyUzc0dmJKU2tO?=
 =?utf-8?B?SE0xOFRJV2xwSHYzVlRpMnlrdVkzZVIyOVNRU3V1d1BEaEdUNTB0ZXdRQkZu?=
 =?utf-8?B?dHQ3MGVPWFdKdk00L1NKYTZLNUZQWkMrUzZCbktYcVkrUnlQMURDY0JqU3hG?=
 =?utf-8?B?bW43RGpqWGdaWGJzZkZBRWRKb1ViRGlpNXhuaUFKYjB5YTRXUkZwaktxWEIx?=
 =?utf-8?B?MTloZGV3WEluNHIyVkpTRXBpYlRLSUVPM3RIMXdwZkRCdysxTk5FTGZnYnZ4?=
 =?utf-8?B?ZGl6aFhjU3ZMbjB6aVZjZFdtbDg0VSs0NEE1dEhZdy9Md2VyR3ZRcGFzZEFY?=
 =?utf-8?B?V2FacGJxcHV6SEJ0OENZZWMvRml5aGhtcVRuV3F1bWtTSzArQ1ZTUmJoYmdu?=
 =?utf-8?B?V2NZNVZYMUtGeENhdEtzWFlPVVVuZGZMOWlPYktQdzZ2eXVvc3NvRzBzTkdF?=
 =?utf-8?B?YlkwZ0NIK2lYS1NURUpzWG9JWjlibG9pUkErZ0lPMkJsU3c3ZXZTNUM2UXZ0?=
 =?utf-8?B?WSsvaE9UcGFHUi9yWVAxVW1xejdZQnJVeFdTdVVMQjV1OHZuSHhRUkEzNHht?=
 =?utf-8?B?L2sxYjRvWFJDdjZxY0NVT0dMRXNUbTUyMXRKZ1JhRUxMd3NpaUN5V2Zkcjkr?=
 =?utf-8?B?U1hyL2liKzVNd2EwQ0VVOG5mR0Q5NmdHTmxRZ1lrVUY0MmhzekFzOHN1bG5R?=
 =?utf-8?B?SWpsYmtvS1E3R1pubVNLNnhVOEMwZlhnaXgzUzZDMXB3UGJhdmNMMTltbGJU?=
 =?utf-8?B?NWUrSUk0R2hud3dVR2dGMmxlYlJKZW5qMmNqRHFQSE52c0J4UitNUlNnaGtq?=
 =?utf-8?B?c2tQL0NNT1ZublRFak9UWlZBcnA1TE1tV0JTMUtSR3lpaXBENW92ejhzWTdL?=
 =?utf-8?B?WGFNeStmTVBoeVA1TmJDSndmM2k4YnNSdWJNMWFWbEFlZ0VteURubVNKbW5O?=
 =?utf-8?B?Vk1nODhxNXBXL0VmYXlTeVBwVDhiZzl2cS96dmQvb2MyMFNxdTF2RTc0OWpL?=
 =?utf-8?B?UFpheisxOW5lQ0VsVHJqV01CUXowU2NSU09oUVdVVi9mbzQvVTZKYTdZMmFw?=
 =?utf-8?B?U0NuNDNyS1VVdVlMMmNxMEo1VlM0bXVuTXg1U3pXWGQ0cmdKZVAzNEJtYjBy?=
 =?utf-8?B?NWJOQklCVXFPSFhrMXRMRmdDUzhNU2xkMlJGUGU3Z2haZXV6SnNoekEvdk0w?=
 =?utf-8?B?RUs2cHc1cFVOSWZ2bjhFbkhXMjJrbFg4YW1kSjRwRFk2MHQxallrcGxXbFVq?=
 =?utf-8?B?NUtlN2JhZFZhbXpxb2RnbUVIQUVJTElxaEFONnk5RkxVWmwxNnNIVTBGRUNN?=
 =?utf-8?B?Q1FGcmFhbnJhRmtTMGFVSTdqeWJzakhHeXl0UTBqU2dnK0xIUThOS1kveXNY?=
 =?utf-8?B?dmlVK2dVZ0kwdURVcnFUY0lMVU9MaFhJT3g5SU9PYkE1YVpMOSs4S0J4ZGs2?=
 =?utf-8?B?Uy9Da3NzNU9TTjk2cEhVYk42cUhUVllkbXZkYnR2NkZRdW5EYmhSTXVVRUN4?=
 =?utf-8?B?N0xYWVpzaGlaaHo0OUFEVzB6aHUya095RTEzc3pLcWU1dWZkRTZFaGNmbENI?=
 =?utf-8?B?d0Q5OFZkaTV3RndWK1JkY2JKNkRtOURraXoyNWg3cUMrcUZ2WGUzaUVUbWhy?=
 =?utf-8?B?U29UZzk1ZEtOSm81QmMxaXRGd25rYm9uV3lnc3gra0ZoeFlNc2ZVcklmNEF0?=
 =?utf-8?B?R3ZqNnJzSVN5emhjcjBxbSs5Vjdnem05ZXRvK1FaOFZRb0U0Z3kwK2F5MGRB?=
 =?utf-8?B?N3dyUXY3bkZpbU13ZFN1eWlmWmw0UkFoMXo3dHlic0ljb2NCSThMWjBoeWdi?=
 =?utf-8?Q?mjro/2DpzES+q8sEw/myer4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(376014)(366016)(38070700021)(7142099003);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <687C2B58BC22424284816F3CD9955A1C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10278
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	0e12697e-a747-4c03-b203-08de6551e5e5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|35042699022|376014|14060799003|7053199007|7142099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Mysrbmt1c094RENFQUo3VW9aQWxIV1dwV3B0cU1lUjMrQ2FTVUxVMklua01x?=
 =?utf-8?B?SVhlclp3M3pIRVhxUWVOU3JTS2tDMExwSUpzS1B3WFNEVGxSYVU5NTNWWExS?=
 =?utf-8?B?em8vcEx6UWkvZ0dRUlY4VGhFaU9LSDN6cXBnQXJBQ0dLU3k3Wmg5dFhZTWl4?=
 =?utf-8?B?RExFdFp3YVdFV3AyVU5TL3BXRWdIdW1rYWswQXZRbUF6M21ab2Z6akQydyta?=
 =?utf-8?B?bkNLUll5UUdEa3laTmViaE9WOUVXaExWN3c4Tmlxc29BWmZuSXNqVVM1Yko0?=
 =?utf-8?B?Sm5DeXk0Wmp2TW8vRjBBeC9aT3BFSzI1RDNUcTFUWGlYQjRkR1NKL1RzamxY?=
 =?utf-8?B?dHRsQ1FVeVBXeFhrRGZncHUwTTdMeDJnNXdsM2l1YTlwQ01ZUHk4OTcwanAw?=
 =?utf-8?B?bkhTa0EwbHp6VS9xS1EzSUZzZVpDM0pwcFVpOHZZR3V2ejhxRUs1ZVZxWElp?=
 =?utf-8?B?MkJLaHVYM3N1VTl2MkFQcGpCRHZBb0I5ZFB2bGZqdDZsZG5yM2xXYytWL3V1?=
 =?utf-8?B?NzBMUEYxKyswck5Oc1JYTUk4YUdDTmI4YTR6d1dsM05TVnhyd2xtakFBN0RP?=
 =?utf-8?B?bXMxRWd0TnpyaGR6cndzOE5pWGQ4dGZHRC9GQ3NlQUY3dzFScnRlUVFGdlg2?=
 =?utf-8?B?Mkw4R2I5d0RtVGZrVDZLZjRDM2dacjJyYzJZM0RpMVR4ais5QTlzWlF3ci9W?=
 =?utf-8?B?SnZEczFMUW10ZGltejBtaE1QK1BNNEZBWUJPNWo3R3psOUd1Y0xMZlBteFpO?=
 =?utf-8?B?L1ErRzREdXUwM3RaT2tCL3NOSWh4QTAyOHpDVm5razU3aEY2U1JWWjhCeXB5?=
 =?utf-8?B?enVreVR6SGszWFRPWlQzbkgybXduVE52WFNIMUZvWGdPMXBUQlBtVUV2ZXpt?=
 =?utf-8?B?eTFiNEZhQmpQWkNyaDU4RHdJb2hTN285U2pUeVNpenVSeStCUHhHbEo4c09Q?=
 =?utf-8?B?cDBDNDA0R2hydUhwaklsQ3QrREtrOFZoRnFYUmVsRGpscHoyRXZJNlZZV0x6?=
 =?utf-8?B?NWNLRGo0ekdrMkpLb3FwRTYxZXFKNVpuM2hQeDROTDVwUERzYlo0QXg2OWJi?=
 =?utf-8?B?Y2hHbTJpdnkvNGJCRGJ6a0J4bmhtUjlBUyszUEZ4MHBRZEN2amdlTzZiSkVL?=
 =?utf-8?B?WngyZ3BsTHhXWFVROThZalFTQmFnTENXWWtGcmtNbWRHbXFvcUJ4RHMrQXpo?=
 =?utf-8?B?OHREMW9TODlrQ3NqWUhXeWtpblFsV2RsdFhEdkVNeExkNTdxTklSV3NlWEJR?=
 =?utf-8?B?dE41eEdua3BTV1pOT3dQRi9KUXd6aFpYUUdybTJUQVNpc1JLQ1BzWUM1V1VC?=
 =?utf-8?B?Q1VrODdKZUxBODFBNElFc1lPSTFWQnF3djJPdklLb0VGZ1NyMEhFNGRhSTAv?=
 =?utf-8?B?bTJzS2ltT2xkSkZkV29ZcVNOWXRYWk41RDJuN0ZmcVpMTFBoSDlwSHFBeVRk?=
 =?utf-8?B?TTVjUG9Mbjc0NGtGT2RhYTRaNVZIblRnWGRLMGpvYktSZ3Y0M3hVWVp3Qk9D?=
 =?utf-8?B?TzNpTG5adWJHNndSZHJKbGRzVlhkeEJ1dlU4MmZkWkE2V0lXSXhMcU1hQ3Ix?=
 =?utf-8?B?RklxMHVVbUlzK0tuSmZTdjBYaFoyTlh6b1NEZlhiYm0xMXJ1Q29VTVdDUUpp?=
 =?utf-8?B?ZEp1eTBPRUdaaFQySC9wbDduaWlOaEdROS81ZWJNSDJNbWdSV21QUEM1RXNK?=
 =?utf-8?B?OWFwTmcwNHpoZU5VWm04ZW5GZVRCVnlDNG05bTNvVlYzRmFkTXY4amU3ZHBu?=
 =?utf-8?B?UFFEMjA0WkJWK3hPbkduZHJaSjBtc3ZhaFVSVFg3bXJTbWVxUk9Oam9vWGo1?=
 =?utf-8?B?NHl0Z3g3bldkSDQ5TWJIc05CT2pXQUgwTDRIdm85MDM1OFdabW9WbGxuR0hl?=
 =?utf-8?B?dzlFT1BSZmd4bXp2cFd3QWtEcWx1aUlIRm9ka2lFOXkxNjdvSWFrd2xlYUxu?=
 =?utf-8?B?cUFQMStoRWJpUkZ1ckMvYmxEaFFQODNIMXByZlVqdHRkUXZiajl1RWxOdk1u?=
 =?utf-8?B?YXBENUVtM3RwOUpSWkpFbzgyd3hVRXR1R2lXOXI2Z1NFaFF1dVBiUFVrd3Y0?=
 =?utf-8?B?N05iaHE0eGkySUZWcElVejdVaUR6b2xNcXB2elNTUDJ5SmhoTXhCNjNySjRI?=
 =?utf-8?B?VTJycEpWNEJHUlpQMEduNXJCWlN3bE5GY2FEWmowMzdndmw4S25RcUZ3Mk5h?=
 =?utf-8?B?V0FaZ1NyN1RCUjdCU1ZVTFZ2VmRyVXlCVnZBemlhOTlQVVRnK0lMOVZRanVE?=
 =?utf-8?B?TGNBTCtzL095LzArTG5NSEFZZFV3PT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(35042699022)(376014)(14060799003)(7053199007)(7142099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	qI2mCxmYSNclc0/Fx3HdStxBcpKvYDZ4QFSFigrYZl8PvPOzV+pIsavA0JiOJe9OdrPHvSUrkfRpe3XJMV/4YF2wERqF1oEVgUXpAoSwgXNYI9s1c6MfI4In5rLuT4Trgmv29XXtMRijtAdsJ3sTufCnL5lm9YRDB5QDEgjLkDeVKfVXhHm204S/WRck32jZx7A1dgxpMk2Y0c8sBtJG+UId2Q9kZORDYhAGYwEYxiSxys8R0BWPxPyHkm2pSgW1SM3dUh/x+afaRo1dR8vRvbZaClckjP+2NJU0x4ruVbAqdCEIuTr0MSq1rxik2TetM+1eUCucZAT3nkDg+WqYCvTQ/rwdcW5tSVNb8P7UhWvLzQ31jSrF4KyAR9rGTVPclAR/cgxRf6cJPnxVoJbF388UZzy7GowD9CzUO4CEtLkp2B5FUB5VkydluViEFiD3
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 07:33:38.3246
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98b33007-61a9-4150-b1bc-08de65520b49
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:
	AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8436

SGkgUm9nZXIsDQoNCj4gT24gNSBGZWIgMjAyNiwgYXQgMTg6MDcsIFJvZ2VyIFBhdSBNb25uw6kg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIFRodSwgRmViIDA1LCAyMDI2
IGF0IDEyOjMzOjU0UE0gKzAxMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBYZW4gZG9l
cyBub3QgY3VycmVudGx5IGRvY3VtZW50IGhvdyB0byBidWlsZCB0aGUgaHlwZXJ2aXNvciBvbiBt
YWNPUywgYW5kDQo+PiB0aGVyZSBpcyBubyBEYXJ3aW4gY29uZmlndXJhdGlvbiBmb3Igc2VsZWN0
aW5nIGEgSG9tZWJyZXctYmFzZWQgR05VDQo+PiB0b29sY2hhaW4uIE5hdGl2ZSBidWlsZHMgYXJl
IG5vdCBzdXBwb3J0ZWQ7IHRoZSBoeXBlcnZpc29yIG11c3QgYmUNCj4+IGNyb3NzLWJ1aWx0IHdp
dGggYSBHTlUgdG9vbGNoYWluIGFuZCBHTlUgbWFrZS9zZWQuDQo+PiANCj4+IEFkZCBhIG1pbmlt
YWwgRGFyd2luLm1rIHdoaWNoIHNlbGVjdHMgdGhlIEdOVSB0b29sIGRlZmluaXRpb25zIHVzZWQg
YnkNCj4+IHRoZSBtYWNPUyB3b3JrZmxvdyBhbmQgcG9pbnQgdG8gdGhlIGJ1aWxkIGd1aWRlIGZv
ciByZXF1aXJlZCB0b29scyBhbmQNCj4+IHNldHVwLiBEb2N1bWVudCB0aGUgSG9tZWJyZXcgY3Jv
c3MgdG9vbGNoYWluIGFuZCBHTlUgdG9vbHMgbmVlZGVkIHRvDQo+PiBidWlsZCB0aGUgaHlwZXJ2
aXNvciBvbiBtYWNPUy4NCj4+IA0KPj4gU2lnbmVkLW9mZi1ieTogQmVydHJhbmQgTWFycXVpcyA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPj4gLS0tDQo+PiBjb25maWcvRGFyd2luLm1rICAg
ICAgICAgICAgfCAgNiArKysrDQo+PiBkb2NzL21pc2MvYnVpbGQtb24tbWFjb3MubWQgfCA2NiAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAyIGZpbGVzIGNoYW5nZWQs
IDcyIGluc2VydGlvbnMoKykNCj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBjb25maWcvRGFyd2luLm1r
DQo+PiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jcy9taXNjL2J1aWxkLW9uLW1hY29zLm1kDQo+PiAN
Cj4+IGRpZmYgLS1naXQgYS9jb25maWcvRGFyd2luLm1rIGIvY29uZmlnL0Rhcndpbi5taw0KPj4g
bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uYTRlM2VmYTgxODQy
DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9jb25maWcvRGFyd2luLm1rDQo+PiBAQCAtMCww
ICsxLDYgQEANCj4+ICsjIFVzZSBHTlUgdG9vbCBkZWZpbml0aW9uczsgdGhlIG1hY09TIHdvcmtm
bG93IHJlbGllcyBvbiBIb21lYnJldyBHTlUgdG9vbHMuDQo+PiArIyBTZWUgZG9jcy9taXNjL2J1
aWxkLW9uLW1hY29zLm1kIGZvciByZXF1aXJlZCB0b29scyBhbmQgc2V0dXAuDQo+PiAraW5jbHVk
ZSAkKFhFTl9ST09UKS9jb25maWcvU3RkR05VLm1rDQo+PiArDQo+PiArIyBXZSBhcmUgYWx3YXlz
IGNyb3NzIGNvbXBpbGluZyBzbyBmYWtlIENPTVBJTEVfQVJDSA0KPj4gK1hFTl9DT01QSUxFX0FS
Q0ggPSBEYXJ3aW4NCj4+IGRpZmYgLS1naXQgYS9kb2NzL21pc2MvYnVpbGQtb24tbWFjb3MubWQg
Yi9kb2NzL21pc2MvYnVpbGQtb24tbWFjb3MubWQNCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+
PiBpbmRleCAwMDAwMDAwMDAwMDAuLjZiNTZjZDhlY2NhYg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4g
KysrIGIvZG9jcy9taXNjL2J1aWxkLW9uLW1hY29zLm1kDQo+PiBAQCAtMCwwICsxLDY2IEBADQo+
PiArIyBCdWlsZGluZyBYZW4gSHlwZXJ2aXNvciBvbiBtYWNPUw0KPj4gKw0KPj4gK1RoaXMgZ3Vp
ZGUgZXhwbGFpbnMgaG93IHRvIGNyb3NzLWNvbXBpbGUgdGhlIFhlbiBoeXBlcnZpc29yICh4ZW4N
Cj4+ICtzdWJkaXJlY3Rvcnkgb25seSkgb24gbWFjT1MuIFRoaXMgZG9lcyAqKm5vdCoqIGJ1aWxk
IHRoZSB0b29scy4NCj4gDQo+IE1vcmUgb24gdGhpcyBiZWxvdywgSSdtIG5vdCBzdXJlIEkgd291
bGQgY2FsbCBpdCBhICJjcm9zcy1jb21waWxlIi4NCj4gT25seSB3aGVuIGRvaW5nIHNvIGZyb20g
YSB4ODYgc2lsaWNvbiBNYWM/DQoNCkFzIEphbiBtZW50aW9uZWQgd2UgYXJlIG5vdCBidWlsZGlu
ZyBvbiBMaW51eCBzbyBpdCBjYW4gYmUgY29uc2lkZXJlZA0KY3Jvc3MgY29tcGlsaW5nLg0KDQo+
IA0KPj4gKyMjIFByZXJlcXVpc2l0ZXMNCj4+ICsNCj4+ICtJbnN0YWxsIHRoZSBmb2xsb3dpbmcg
cGFja2FnZXMgdXNpbmcgSG9tZWJyZXc6DQo+PiArDQo+PiArYGBgYmFzaA0KPj4gKyMgQ3Jvc3Mt
Y29tcGlsYXRpb24gdG9vbGNoYWluIGZvciBBUk02NA0KPj4gK2JyZXcgaW5zdGFsbCBhYXJjaDY0
LWVsZi1nY2MNCj4+ICsNCj4+ICsjIEdOVSB0b29scyAocmVxdWlyZWQgZm9yIGNvbXBhdGliaWxp
dHkpDQo+PiArYnJldyBpbnN0YWxsIG1ha2UgZ251LXNlZA0KPj4gK2BgYA0KPiANCj4gSW5zdGFs
bGluZyBtYWtlIC8gc2VkIGFyZSBub3Qgc3RyaWN0bHkgbmVlZGVkLg0KDQpBY2sNCg0KPiANCj4+
ICsNCj4+ICtIb21lYnJldyBpbnN0YWxscyB1bmRlciBgL29wdC9ob21lYnJld2Agb24gQXBwbGUg
U2lsaWNvbiBhbmQgYC91c3IvbG9jYWxgIG9uDQo+PiArSW50ZWwgTWFjcy4gQWRqdXN0IHBhdGhz
IGJlbG93IGFjY29yZGluZ2x5Lg0KPj4gKw0KPj4gKyMjIyBWZXJpZmljYXRpb24NCj4+ICsNCj4+
ICtWZXJpZnkgeW91ciBpbnN0YWxsYXRpb246DQo+PiArDQo+PiArYGBgYmFzaA0KPj4gKyMgQ2hl
Y2sgY3Jvc3MgY29tcGlsZXINCj4+ICthYXJjaDY0LWVsZi1nY2MgLS12ZXJzaW9uDQo+PiArDQo+
PiArIyBDaGVjayBHTlUgbWFrZSAoYWRqdXN0IHByZWZpeCBpZiBuZWVkZWQpDQo+PiArL29wdC9o
b21lYnJldy9vcHQvbWFrZS9saWJleGVjL2dudWJpbi9tYWtlIC0tdmVyc2lvbg0KPj4gKw0KPj4g
KyMgQ2hlY2sgR05VIHNlZCAoYWRqdXN0IHByZWZpeCBpZiBuZWVkZWQpDQo+PiArL29wdC9ob21l
YnJldy9vcHQvZ251LXNlZC9saWJleGVjL2dudWJpbi9zZWQgLS12ZXJzaW9uDQo+PiArYGBgDQo+
IA0KPiBDaGVja2luZyBmb3IgbWFrZSAvIHNlZCBjYW4gYmUgcmVtb3ZlZC4NCg0KQWNrDQoNCj4g
DQo+PiArDQo+PiArIyMgQnVpbGRpbmcgdGhlIEh5cGVydmlzb3INCj4+ICsNCj4+ICtTZXQgdXAg
R05VIHRvb2xzIGluIFBBVEggYW5kIGJ1aWxkOg0KPj4gKw0KPj4gK2BgYGJhc2gNCj4+ICsjIFNl
dCB1cCBHTlUgdG9vbHMgaW4gUEFUSCAoYWRqdXN0IHByZWZpeCBpZiBuZWVkZWQpDQo+PiArZXhw
b3J0IFBBVEg9Ii9vcHQvaG9tZWJyZXcvb3B0L2dudS1zZWQvbGliZXhlYy9nbnViaW46L29wdC9o
b21lYnJldy9vcHQvbWFrZS9saWJleGVjL2dudWJpbjokUEFUSCINCj4gDQo+IERvIHlvdSByZWFs
bHkgbmVlZCB0aGUgZ251YmluPyAgSSB0aGluayB0aGlzIHdhcyBvbmx5IGZvciBzZWQgLyBtYWtl
LA0KPiB3aGljaCBpcyBub3QgcmVhbGx5IG5lZWRlZC4NCg0KSSBkbyBub3QgbmVlZCBhbnl0aGlu
ZyBhbnltb3JlLCBqdXN0IHRoZSBjb21waWxlciAuLi4NCg0KPiANCj4+ICsNCj4+ICsjIEJ1aWxk
IFhlbiBoeXBlcnZpc29yIG9ubHkgKGluLXRyZWUpDQo+PiArY2QgeGVuLw0KPj4gK21ha2UgWEVO
X1RBUkdFVF9BUkNIPWFybTY0IENST1NTX0NPTVBJTEU9YWFyY2g2NC1lbGYtIEhPU1RDQz1nY2MN
Cj4+ICsNCj4+ICsjIE9wdGlvbmFsOiBvdXQtb2YtdHJlZSBidWlsZCBkaXJlY3RvcnkNCj4+ICsj
IG1ha2UgWEVOX1RBUkdFVF9BUkNIPWFybTY0IENST1NTX0NPTVBJTEU9YWFyY2g2NC1lbGYtIEhP
U1RDQz1nY2MgTz0kUFdEL2J1aWxkLW1hYw0KPj4gK2BgYA0KPj4gKw0KPj4gKyMjIEFyY2hpdGVj
dHVyZSBTdXBwb3J0DQo+PiArDQo+PiArQ3VycmVudGx5IHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVz
Og0KPj4gKw0KPj4gKy0gKipBUk02NCoqIChgYXJtNjRgKSAtIERlZmF1bHQsIHVzZXMgYGFhcmNo
NjQtZWxmLWdjY2ANCj4gDQo+IEl0IGNvdWxkIHBvc3NpYmx5IGFsc28gdXNlIHRoZSBsbHZtIHBh
Y2thZ2UgZnJvbSBob21lYnJldywgYnV0IEkgY2FuDQo+IGFkZCBsYXRlciBpZiBJIGdldCBzb21l
IHRpbWUgdG8gdGVzdC4NCg0KeWVzIC4uDQoNCj4gDQo+PiArDQo+PiArT3RoZXIgdGFyZ2V0cyBt
YXkgd29yayBpZiB0aGUgY29ycmVzcG9uZGluZyBjcm9zcyB0b29sY2hhaW4gaXMgaW5zdGFsbGVk
LA0KPj4gK2J1dCB0aGlzIGd1aWRlIGhhcyBvbmx5IGJlZW4gdGVzdGVkIG9uIEFSTTY0Lg0KPj4g
Kw0KPj4gKyMjIExpbWl0YXRpb25zDQo+PiArDQo+PiArLSAqKkh5cGVydmlzb3Igb25seSoqOiBU
aGlzIG9ubHkgYnVpbGRzIHRoZSBYZW4gaHlwZXJ2aXNvciwgbm90IHRoZSB0b29scw0KPj4gKy0g
KipDcm9zcy1jb21waWxhdGlvbiBvbmx5Kio6IE5hdGl2ZSBidWlsZHMgYXJlIG5vdCBzdXBwb3J0
ZWQNCj4gDQo+IFByb2JhYmx5IGEgbW9yZSBwaGlsb3NvcGhpY2FsIHF1ZXN0aW9uLCBidXQgaXMg
aXQgcmVhbGx5IGEgY3Jvc3MNCj4gY29tcGlsYXRpb24gaWYgSSdtIGJ1aWxkaW5nIGFuIGFybTY0
IFhlbiBvbiBBcHBsZSBhcm02NCBzaWxpY29uPw0KPiANCj4gU3VyZSwgaXQgbWlnaHQgdXNlIGEg
ZGlmZmVyZW50IHRvb2xjaGFpbiBmcm9tIG5hdGl2ZSwgYnV0IGl0J3Mgc3RpbGwgYQ0KPiAibmF0
aXZlIiBidWlsZCBmcm9tIGFuIGFyY2hpdGVjdHVyYWwgcGVyc3BlY3RpdmU/DQo+IA0KPj4gKy0g
KiptYWNPUy1zcGVjaWZpYyoqOiBJbnN0cnVjdGlvbnMgb3B0aW1pemVkIGZvciBtYWNPUyB3aXRo
IEhvbWVicmV3DQo+PiArLSAqKkdOVSB0b29scyByZXF1aXJlZCoqOiBOYXRpdmUgQlNEIHRvb2xz
IGFyZSBub3QgY29tcGF0aWJsZQ0KPiANCj4gVGhhdCBsYXN0IGl0ZW0gY2FuIGJlIHJlbW92ZWQu
DQoNCkF0IHRoZSBlbmQgYWxtb3N0IGV2ZXJ5dGhpbmcgY2FuIGJlIHJlbW92ZWQsIHRoZSBvbmx5
ICJtYWMgb3MiIHNwZWNpZmljDQppbnN0cnVjdGlvbiB3b3VsZCBiZSB0byBpbnN0YWxsIGdjYyB0
aHJvdWdoIGhvbWVicmV3IGJ1dCB0aGVyZSBhcmUgb3RoZXINCnNvbHV0aW9ucyAoY3Jvc3MtdG9v
bHMsIGxsdm0sIGRvd25sb2FkaW5nIGEgcHJlIGNvbXBpbGVkIGdjYywgY29tcGlsaW5nDQppdCB5
b3Vyc2VsZiwgLi4uLnlvdSBuYW1lIGl0KSBzbyB3aGF0IHdvdWxkIG9ubHkgcmVtYWluIGhlcmUg
d291bGQgYmUNCmluc3RydWN0aW9ucyBvbiBob3cgdG8gY29tcGlsZSB0aGUgaHlwZXJ2aXNvciB3
aGljaCBpcyBub3QgbWFjIG9zIHNwZWNpZmljLg0KDQpTbyBpIHdpbGwgcmVtb3ZlIHRoYXQgZmls
ZSBhbmQganVzdCBwdXNoIGEgc21hbGwgcGF0Y2ggYWRkaW5nIERhcndpbi5taw0Kd2l0aCBhbiB1
cGRhdGVkIGNvbW1lbnQuDQoNCkNoZWVycw0KQmVydHJhbmQNCg0KPiANCj4gVGhhbmtzLCBSb2dl
ci4NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 07:36:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 07:36:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222840.1530528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voGO2-0008Pv-IC; Fri, 06 Feb 2026 07:36:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222840.1530528; Fri, 06 Feb 2026 07:36: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 1voGO2-0008Po-FK; Fri, 06 Feb 2026 07:36:18 +0000
Received: by outflank-mailman (input) for mailman id 1222840;
 Fri, 06 Feb 2026 07:36: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=qUCI=AK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1voGO1-0008Pi-7p
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 07:36:17 +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 83c3874d-032e-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 08:36:14 +0100 (CET)
Received: from AS4P189CA0027.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5db::16)
 by DU2PR08MB7375.eurprd08.prod.outlook.com (2603:10a6:10:2f3::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Fri, 6 Feb
 2026 07:36:08 +0000
Received: from AM4PEPF00025F9A.EURPRD83.prod.outlook.com
 (2603:10a6:20b:5db:cafe::7c) by AS4P189CA0027.outlook.office365.com
 (2603:10a6:20b:5db::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 07:36:05 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM4PEPF00025F9A.mail.protection.outlook.com (10.167.16.9) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.0 via
 Frontend Transport; Fri, 6 Feb 2026 07:36:08 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AMDPR08MB11554.eurprd08.prod.outlook.com (2603:10a6:20b:71d::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Fri, 6 Feb
 2026 07:35:06 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 07:35: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: 83c3874d-032e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=wQfzrrLbeQ4O0FCVvLLQkh8ablNmUhLcZvp9cxL/qLRtKW6mT2HcEAnw6L/r1sTkptL6swMGjPic0BkvtRCktjPW1dfZgEOTV+cR3xsd1nOxFxseU+XfPBtRn2tu04DqQHHVHdlT3a1uRfGzjs+I1W+hHryz8w1CILYC3aBtwkgVlKi3xCehs8sXGCPbJC2jDp2llfZpKDe2wST9WAWO/K8sENUV6bXoY10v2829QDcM8EvqIpqYHEC++yVL1wXH5uXkRgh9fi+gttNukcD/vdR++eZFPzp0UpSsBIqSUHmrgCC2urqa1PKwRFnz7FHifnNvtGLG2BpTkvdIY1+9+Q==
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=ffyCm7Pk2R4bH3nv9iG7TXNrGZh+hToGVhl9zu1//zA=;
 b=A+56A5U0Gwk96OFV0gihy6LsNR3zfvPyBPWXUOq8IhqVtLlV8LgR4Ro1ZCH45e28RTTdIrqfn8UIlXZZhwnN5hzcQFiLqKo519aQVa6/IBY0DVhX9MG22c/uUBQxg6no7rfAV7OExeqZwWhkIJpVlso6DB9ndKy+wIknGaQA2xC1sLMAVFuywxIAhjOYECsjDyEBxvfqg3vkryqLwdKYSBdjPr7KH1so++0+2Y5jfjaAH7dqiqXJFNTGo0PUqkP/+YW4GypynWHiodG4GgNp46VTlpk0f+CevwxhZBCw3lePKGi2XCR2G5RMM5qpX//Yw4baQcqHiZIYKZXZ4jZ9YA==
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=ffyCm7Pk2R4bH3nv9iG7TXNrGZh+hToGVhl9zu1//zA=;
 b=Cw1V0926Vz7MnWx9q30zS3VltJZIdQ+HxZ00RSZ//TXIKmF1ngVWjWlk5tmqV8KoBtz5+/rEaZpfzb0HXTego5cu9ZmE5j13GfqiXm2w5IQcX5K/hn1F82MFpPsb4q0tq8N3v41bHQLDbX4WmIJkp7XRzmpzqbHYe+J1f6jJo3U=
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=VormqA62W8MWDP80qKQb7+71qtBaa/IWnq5mQWR+mE4EPe2If65jDja3nciGXN8TJIy6kN6kEK1Sc5+SD16Tg4n0bLF4dZWLmjoF2Hcu64FuzjdCr+5kTEbP+I5kbgrFnJbgdIfdSQidShdnMz7ojwdqoj2p9LdWqY4ngIEwoRIXBIWiRuQoziuxWCl+VW/FijvVPYh0LwRfglSwkwD1jL/OI5cj4E0VDQxbc0nVQ3O2IadISBYnEF7OjUGA0fdT8JMwxnPbj8WmP1xgUMYjO7VKsGTC25v5yixtI7kL+c7bvMYsWp4HgflXIZxZ1qEWxkDgcwhfbxha5c+OT2rSOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ffyCm7Pk2R4bH3nv9iG7TXNrGZh+hToGVhl9zu1//zA=;
 b=ny6adE19Su3yZV0XcA5k7fLJD0d8yl1mRbZlXh18ROAFf+Vq795VCPaSltCslsgnYz26P1jP7MGPqX5dreOfw0nABYkTYqrQN5qlpP29wqFRV42hucdu/Bj/j4s8BEwZqwLf2U/w2lVpQYpiu3y2b4vK1lv+lrtN43CpxL+k3vr4gjXpBI/MEOb/jSGTIrSDlbFCjy8t8a+qLMxxYWKX1pxNUUTkTq43jNzlIZXrXP4i2SyKJ/pIiRoI5jPcvC5k0JiNoxW6MpcEH8kdTHUAxtUx4JL1SHyXn6Dq03amW/y2rWSHSgUWOTdBCIZxddOc/f0yqEtUXILpx4IRmH1OxA==
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=ffyCm7Pk2R4bH3nv9iG7TXNrGZh+hToGVhl9zu1//zA=;
 b=Cw1V0926Vz7MnWx9q30zS3VltJZIdQ+HxZ00RSZ//TXIKmF1ngVWjWlk5tmqV8KoBtz5+/rEaZpfzb0HXTego5cu9ZmE5j13GfqiXm2w5IQcX5K/hn1F82MFpPsb4q0tq8N3v41bHQLDbX4WmIJkp7XRzmpzqbHYe+J1f6jJo3U=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, 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: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Topic: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Index: AQHclpNk83RtAc43+U+zvyNqPofiH7V0VocAgADeUQCAABQugA==
Date: Fri, 6 Feb 2026 07:35:05 +0000
Message-ID: <CE4D854B-1FE6-4058-A517-70B2AD362CF6@arm.com>
References:
 <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <aYTONBslOYwyrFqM@Mac.lan> <eeccafa8-8474-485d-afd5-85d9eecdb241@suse.com>
In-Reply-To: <eeccafa8-8474-485d-afd5-85d9eecdb241@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AMDPR08MB11554:EE_|AM4PEPF00025F9A:EE_|DU2PR08MB7375:EE_
X-MS-Office365-Filtering-Correlation-Id: d17f76fc-aecb-4228-1727-08de655264c5
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|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?bHI5VURsZWNUQkZTK3RGb2d0ZStsRVJCY0w5anFHWXFqT3g2b1AyQkFIbzQz?=
 =?utf-8?B?Q2ZEZkhGOGdXNVpBVUQvMldjSnV1RU1GUklIQVo1cEdpSnkxdnhBeDZsUkR4?=
 =?utf-8?B?QU96Q21SRm5uR2Y0bjRPdmp3ZHBiL1NsRHN2N2J0aGtjNzBjejgrQy9UMVFr?=
 =?utf-8?B?aEtIS1lJdzVBQnBjZWgrQU04aG0rU04yc2tTK050cStUMmYva3FnTWFaZnZO?=
 =?utf-8?B?bktTVEhxNkhOdGNna0pwcWpyazVPSG9qc2VlcVh0Vlg2NXd4cmI3Nm5GWWNM?=
 =?utf-8?B?V25OT2g3d0xWMVNGazNqUG4yYitoZDd5bkx3UWpQNW9Qb1FqNjdpRkc1dkdu?=
 =?utf-8?B?TUxiSUQwMElKSVRuUU5kWCtzKzJ0bThHT1pBTmNtenJMK1VyTVNZaUtJeG5o?=
 =?utf-8?B?YzRvQnRUTHFpQUVKdmtDaGNlN2NPVW81V2xUZ0dra0Y5Z3E0Z0RwaEZ5b2Q1?=
 =?utf-8?B?Qml5OWluTnRMQVlrTHZHanBWNE8ycGkzbDd3eS9tMDdCM2Z6WmJOY3FqTHV5?=
 =?utf-8?B?YWRsTDhFRythWWo5TmpZNDgwZWdYcExsUGdPL3NNK0pBVVJvVGZQeU9FRC9G?=
 =?utf-8?B?MXd3SGY0bHYxcGxkRElwVytIVnRVUi9nVVo1U2Z0R0ZkV2tWdlRzMFhFL0tw?=
 =?utf-8?B?OXV4Q3ZEWHg5UWdVeng0SVFtQUNHek15d3pFSEdIQS9jRnA0TVlqUGVMOUhn?=
 =?utf-8?B?Wm1Ha09EMkk4R0s3YVEzZHlJWVFJU3QvWE5LVElOMjBsc0dqNTc3UmVJeG5E?=
 =?utf-8?B?SXBxV2d3YmlmY3BIR3ZnZEwrRkJ5QXl5ZlpLOS9zRXhXcWtXNWh1L0h3cGJB?=
 =?utf-8?B?Rmw1bnFOVW96S0pxVld1blpod3BFMUN2bFRlclk5MHhKZTFsSTJBc1NIUXZM?=
 =?utf-8?B?a1hOK2hoUWhtd0tOTWpwR1M5ZmJsdlMyajN5TmJFRXprTGptaC9lUWllL3Qx?=
 =?utf-8?B?bGFsMFRUYkhha1VxUHliRnV6aWswUWpHNGNiNUdvYUhNU3FqcTlvZGVwR2l3?=
 =?utf-8?B?NWk1akVwcUFDMDJ6S1I3dHl1M3JUWUxhaHFkQnJacFIxQkdBM2pYM1RaREFL?=
 =?utf-8?B?YlVMbm0wOTRlS0FoaUZvMVdLUy9NU3NURXRqdCtBUnJxVGN6TElseFBoWDRo?=
 =?utf-8?B?d1RFUHJqUW9LTnQvdkVwTFFBU1F0ZTBIdDZQaW54Vm9JdGhJRURGMWFmK2tN?=
 =?utf-8?B?TEdLQndHaHVWeXFlck41UHVtSlpCR014UDBybnlOc01OQk82T3B2MzJiV3Uv?=
 =?utf-8?B?Q21NMHVQTUZURllTK1BLaitrSzU5WVhjWUlvUGR0Y1I1M0s4TThaOXVMMHJl?=
 =?utf-8?B?a0ZWVGJ6YTdhb0NPMngyc2k4SXcrZ0p2b1dCdGRSSjd3UUEyY2pyMlpMWHVX?=
 =?utf-8?B?UE5CT3lMRWxqNHFUVDdlNkVoSzhva1FhbTMvaTc4cjdWK3B5YnRyVUJReDdO?=
 =?utf-8?B?bDdOV1NiQzkvckhiVGJtUjNKd1ltYytVcmkyblZ4UncweHowbkJENGNuNkY0?=
 =?utf-8?B?ZFZHVHd0ajRPMThDNnBCbDdPWDFMU0hTL1NpQlN6dzA3RmF2bVNENXJaVHFM?=
 =?utf-8?B?b3F1cllhcXVsN3lKZDBXdHdqaVIzWkRCcDVBSWFLaThhT1VYR2xsR0VJN1By?=
 =?utf-8?B?NHlMd3ZUaEozZzA4bmFMbGNjNTlFb2NuTkhqemdleFg1MGNyZksyOXpoMzdX?=
 =?utf-8?B?NTBQeHpjSml2NVFKM1BXYVBqd2Vva1cra1doK21nY1BDdTFIQStyenpLV0tV?=
 =?utf-8?B?c3JXWFZ4STZ4M3FpZm43TEtrOUF6T0NLZXFoc1lwa0JCNTFyajcvQ3hYb3RT?=
 =?utf-8?B?NFJxSXFYYkhqbnB1UzI5K09NVFFJY0hMUXg1T3NmZzF6dzkxc0xRZElVa1Vu?=
 =?utf-8?B?dnNad042ZTY4bVdFVmRzNTRMSDRoTWZ6UFlHQVZ3K2cxQ05mbng5SzRHN3Qr?=
 =?utf-8?B?V0QzWENHL0l5bUI5RG9LQ243VGJkdWI2SU55cVZaVEM2ejd2WnFUNkdScHZX?=
 =?utf-8?B?cUZ0ajJyOUEzM0g3TEpob2hOU3g2UzJaVzNSd0lJQUt4dXB6U21oN0kvYzZI?=
 =?utf-8?B?ajNobms0SjNXY0dXZVdLRVVpVTBUWkxiT1IxbW0rSnRMZmhldVNnTWk2Z0NN?=
 =?utf-8?B?YUQxbnorbUZCQndwU3NoZjFnK2dldkZkM2pnRmwzckd4QSt5QkF2U3NFdmZt?=
 =?utf-8?Q?IZkoTqoJFRtYnrMsEVkG5xg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <17AD973D97082C4DB1D18EEE78F9AF72@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11554
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM4PEPF00025F9A.EURPRD83.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4935bbde-0315-43fa-35eb-08de65523f7b
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|36860700013|376014|82310400026|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bmJBSnhxUit4QXIwY3NwS3ZiUWFRTVBwYjErNXJwK01pVnZlblo4WnZHQmNi?=
 =?utf-8?B?RVpudFBSdktBYTU0MXhKR0M3ZlB4YzJTMFhhOEZRNkhCR2ppWXFaT0RDbjJT?=
 =?utf-8?B?VTk1Q3BXYWxuTy9pSDNTOWxKRllwcWJVWkp4d0xXR2JGUldKVFRyMmtRcnVy?=
 =?utf-8?B?ay9rdHJVaERMbnFIbDR2c1VqMS9pVXRVbEVXcW8rb3JEZjVndi9lVzU2bE1X?=
 =?utf-8?B?MStReG9oSkhOSHpLVFQyak0xZEJ2TFBuTnBEMmE2dmlWVTVnaGJWakVpZkFE?=
 =?utf-8?B?bXlrUERxYS9abEtVa3FkdXFMeWtBS0Q0UG9hS3FDclI2aXY3ZHcrSDJSaThp?=
 =?utf-8?B?QWJsbCtxYTllWmllc04vSHc3aDNpSThCb05ndDVJOWsrdjJibEhSSGZlRnU0?=
 =?utf-8?B?bkg1YnNSQzdBSnlEWUJaaFFPSUc3MkNMWXA1ZWs4WWVPZldjUGx1MDZRV2JH?=
 =?utf-8?B?d20vdzdwQzVxcG1ZM3l2M0J5RUNoUU9pa0VJaXRPM0FMSUZCR1VVSEtRWGkw?=
 =?utf-8?B?aHQzR0F3QkZVSDE5S2dsY1JpUHEvZ2N1bnhNbVNtZm1tYU5XYUR5OXovYkpX?=
 =?utf-8?B?K3k0allsb0EzL2l5VFdMVWVOQzdUWGtPUWN1eStLVmY0WkViSmt4Vy9WckNK?=
 =?utf-8?B?bjlkU0JiUnBvMUNrYmdxQ0hQR3FkRzllQUJ2QWRNNkZZYUhpN0RiVGFyS3dY?=
 =?utf-8?B?V0h3WkJaSjN5Ly9mTWNKblpYZmJMMngwK0NyZGRCUGovKzlFQ2owcEx1bXUw?=
 =?utf-8?B?eFVJWVF4bVdCK21PTmhJcFRIRm8xT1JxZkhrOEpzZjQzK0ExTCthei9ScUkr?=
 =?utf-8?B?ci9zVW93Q1puOFIyeFBuQjhtMFdlN0xvNDNQOWxtT3BIalBWMEdkS2ptVURZ?=
 =?utf-8?B?K1RteTdkblp0RVN0cHVXNVN1azlNa3hRRm1HNWdJMnFQeW9pbG1kZ3UyUjZl?=
 =?utf-8?B?QVhrRjl5NHdSUTFsZGNkd0JubUo1ZWI1czJ2eTRIOFJobFVCRWlyUWtVU2VM?=
 =?utf-8?B?enNpb3BkaVdvUkxrZWV2T2U5c3VSSUJGRUhzZG92aXpQdXFPOUtFZEpoN2RM?=
 =?utf-8?B?OFZPcHhxZjFuSHdlcTJlbXRvTkNCN1U3RG9ybVpOeXp6MkYxS2VMdWdiZVpV?=
 =?utf-8?B?UVFyZTBzVWdkNi9NQUtrK1BzbDh0OCtBYWE3c1hPRCtjaThHMk96S3FsRVdn?=
 =?utf-8?B?U0lDN2czaW5PNGRSc256TzVtTTVUUkY3dFhyRmJEOWRCRy9qajVsK0ZBdmRp?=
 =?utf-8?B?OE5YU2hUSGhoZk5HdmZidXlwRDZSd0tFVG5pVkVjUTZpNXArYzFvWDVKNW1z?=
 =?utf-8?B?TUltZWNHLzdjK0pQNFZUOVpQZENySEtqdlo2OGF0c0JPZ0dJNzVGK1NaVE5y?=
 =?utf-8?B?VXdVQ3dIN2Myd0RnL1FFdXRIR0dlcDJIU0VJYTBtVGVYbzdSTTUwcW9ORXdu?=
 =?utf-8?B?WjN4VWFGWUR3K2hFWE1TMEk5SkVhamJSRHRVQmo0ME1FR1c0VFBwdXFvWHlZ?=
 =?utf-8?B?OU1jQUxDajRZQzVUUGFvZW9IeCtvQlJ3ZEE4VHViREZjTEpFSzduK2FOeDZQ?=
 =?utf-8?B?WnFGVVNIZkNkN0pZNmcycUppbnp4dklkUTVJWFFlcDU5L3dTZzJ6Ulo2bm13?=
 =?utf-8?B?cm5wb3JVdUc3N0c3bWR6ei8yZm90bktHYWZUUDE1WEdwa3VZSExQMWRzbTJr?=
 =?utf-8?B?T0FuQWhsNjRCUUhRVEFmaVNhK3JjL2ZadGNaUm1NVnZleU1nUm9tdWhiekUx?=
 =?utf-8?B?Q3JhUkpmNHpCV2Ezcy94ZGJUOVovY2pISjFCdVJJM1RmY3dQVElrNEZhUDds?=
 =?utf-8?B?aHUvRnBnRG1ZUGNwMUdyR0pLK05WaUlhUjJWWlgwK0hCWjJYMXUzK3dIT0xL?=
 =?utf-8?B?R1RSZC9uRWUvek45dVl3Y0h0VDFGNGtzdHhyM2dUaWR5MC9ESkl2VzRSaVlY?=
 =?utf-8?B?SUlrbjFSVnNlNDdmOEd5Q0RGZW4xK3NodFdFVmpaYmNSTDlyVkZsMDFnSkVX?=
 =?utf-8?B?OHRveDF6SDhjOEpUbGZReURlazVKOU1Ddzk3cXZucHlMVnR3eTRlNThrTUtS?=
 =?utf-8?B?VHJTOUpWZW9Fc05DVmdDcUVEUkRUamhQZnlIYWIyaGJTWjlTem1wK2dNMVRr?=
 =?utf-8?B?Mzl6aVB6dTBqZTZrRWkrUi9FRzlZenp5c0xSbEhVdWhhTUR1VlJHKytkek1u?=
 =?utf-8?B?ZVI4eVJSZ2FvOVZZVDlpRGt1YTZaalErbzF5eHZ0OWRLamVHU0F0RUZzQTBC?=
 =?utf-8?B?bExMOGk4bDRLQzBPOVljckJXajN3PT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(36860700013)(376014)(82310400026)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	F1FeFFMkdHxc9sBiqGsoDp6Vwzr4QxKjAynnEAUt8T2DDVuXfiDu70z5iKbHEXVQyZJzUiQmtBqZdjnh2xYVo2tkYQlZ+E6ixdLk2rSd4YOs+u00ZgkJVkXbD1F6WNffWNZCcQR4J9ErUvTPmzkIOvSspHaFWkCsbFiqSrMDYP679PJXnz8cE2Eiu/RLDIpbAwuzu8oRweflTFN2SeBrrtzwTMDKY5VLz9Xieute0go+MMMHgDxHRDbxKRHrYDlPk4KL22v7/iO9Ye/NbjYl/XdAoyp9wYq2tkHTW58Iv0ssVHg2rh4crkVH8tz8RgJ/BTlHe/qr48aU/S9r0CNLB0brVJRDP8pdC9p1RKrb7RHk9mMfM11bi+mdU0Dra33VIjpfhN8NuCE49a4/gYRo6rrfrgrD2NSaWZdjWVlYJqmga38pYP4ohBocFjneJMl6
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 07:36:08.4705
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d17f76fc-aecb-4228-1727-08de655264c5
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM4PEPF00025F9A.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB7375

DQoNCj4gT24gNiBGZWIgMjAyNiwgYXQgMDc6MjIsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl
LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwNS4wMi4yMDI2IDE4OjA3LCBSb2dlciBQYXUgTW9ubsOp
IHdyb3RlOg0KPj4gT24gVGh1LCBGZWIgMDUsIDIwMjYgYXQgMTI6MzM6NTRQTSArMDEwMCwgQmVy
dHJhbmQgTWFycXVpcyB3cm90ZToNCj4+PiArIyMgTGltaXRhdGlvbnMNCj4+PiArDQo+Pj4gKy0g
KipIeXBlcnZpc29yIG9ubHkqKjogVGhpcyBvbmx5IGJ1aWxkcyB0aGUgWGVuIGh5cGVydmlzb3Is
IG5vdCB0aGUgdG9vbHMNCj4+PiArLSAqKkNyb3NzLWNvbXBpbGF0aW9uIG9ubHkqKjogTmF0aXZl
IGJ1aWxkcyBhcmUgbm90IHN1cHBvcnRlZA0KPj4gDQo+PiBQcm9iYWJseSBhIG1vcmUgcGhpbG9z
b3BoaWNhbCBxdWVzdGlvbiwgYnV0IGlzIGl0IHJlYWxseSBhIGNyb3NzDQo+PiBjb21waWxhdGlv
biBpZiBJJ20gYnVpbGRpbmcgYW4gYXJtNjQgWGVuIG9uIEFwcGxlIGFybTY0IHNpbGljb24/DQo+
PiANCj4+IFN1cmUsIGl0IG1pZ2h0IHVzZSBhIGRpZmZlcmVudCB0b29sY2hhaW4gZnJvbSBuYXRp
dmUsIGJ1dCBpdCdzIHN0aWxsIGENCj4+ICJuYXRpdmUiIGJ1aWxkIGZyb20gYW4gYXJjaGl0ZWN0
dXJhbCBwZXJzcGVjdGl2ZT8NCj4gDQo+ICJDcm9zcyIgYWl1aSBjb3ZlcnMgYm90aCBPUyAoaS5l
LiBBQkkpIGFuZCBoYXJkd2FyZS4gQnVpbGRpbmcgeDg2IExpbnV4DQo+IGJpbmFyaWVzIG9uIGUu
Zy4gV2luZG93cyBpcyAiY3Jvc3MiLCB0b28uIChTdHJpY3RseSBzcGVha2luZyBpdCdzIHRoZQ0K
PiB0YXJnZXQgdHJpcGxldCB0aGF0IGlzIGNvbW1vbmx5IHVzZWQgaW4gYXQgbGVhc3QgR05VIC0g
aWYgYW55IHBhcnQNCj4gZGlmZmVycywgaXQncyAiY3Jvc3MiLiBJdCBqdXN0IHNvIGhhcHBlbnMg
dGhhdCBYZW4gdXNlcyBMaW51eCdlcyBBQkksDQo+IGFuZCBoZW5jZSBpdHMgYnVpbGRpbmcgaXMg
bmF0aXZlIG9uIGlkZW50aWNhbC1hcmNoIExpbnV4LikNCg0KQWdyZWUsIGkgd2lsbCBwdXQgYSBz
bWFsbCBjb21tZW50IG9uIHRvcCBvZiB0aGUgbGluZSBpbiBkYXJ3aW4ubWsNCnNwZWxsaW5nIGl0
IG91dDoNCg0KWGVuIHVzZXMgTGludXgnZXMgQUJJIHNvIHdlIGFyZSBjcm9zcyBjb21waWxpbmcg
b24gTWFjIE9TLiANCkZvcmNlIENPTVBJTEVfQVJDSCB0byBhIGZha2UgdmFsdWUgdG8gbWFrZSBz
dXJlIGl0IGlzIGFsd2F5cyB0aGUgY2FzZS4gDQoNCkJlcnRyYW5kDQoNCj4gDQo+IEphbg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 07:54:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 07:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222852.1530537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voGfX-0002t5-Vd; Fri, 06 Feb 2026 07:54:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222852.1530537; Fri, 06 Feb 2026 07: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 1voGfX-0002sy-T3; Fri, 06 Feb 2026 07:54:23 +0000
Received: by outflank-mailman (input) for mailman id 1222852;
 Fri, 06 Feb 2026 07: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=qUCI=AK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1voGfW-0002ss-QR
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 07:54:22 +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 08962fbe-0331-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 08:54:15 +0100 (CET)
Received: from DB9PR02CA0019.eurprd02.prod.outlook.com (2603:10a6:10:1d9::24)
 by DB9PR08MB11500.eurprd08.prod.outlook.com (2603:10a6:10:60b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Fri, 6 Feb
 2026 07:54:11 +0000
Received: from DU6PEPF0000B61E.eurprd02.prod.outlook.com
 (2603:10a6:10:1d9:cafe::6d) by DB9PR02CA0019.outlook.office365.com
 (2603:10a6:10:1d9::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 07:53:52 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000B61E.mail.protection.outlook.com (10.167.8.133) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 07:54:10 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAWPR08MB10017.eurprd08.prod.outlook.com (2603:10a6:102:34e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 07:53:04 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 07:53: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: 08962fbe-0331-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=EJS7Ql0VXj7pFMWH1dParq+q1f81C6bEu2Vdfi0/zCO4x3a57mTMAA9YvHN0UdKW4l0Hs4f8pBwyyo1mXRpY31Bvw0vtBvtyoVvlIQrVQDNjw/FdLIX7igl5ZjN8Yl/AgMNZYdrU4xMQoENcRC54jVQhl391XqDEgifF6OKjMEM8PLVhpOVZVYItG688bOyzzbckd/iF9N0QyoIBIdTdW2u2gJHhMAnP03VYhM/L8g6rVnrRykUg3J+z+u/Uw9zd+Vkrh5RWt9vsWrMlvV1hWL4n8dvVEX2ek8qOlzvV8+c8uK4dJSmXLK3l091mu6Wfm5LFfp2f+ShcfLtXHbvLtw==
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=LsIBgg5Jdm8OVT/O87Y/EymGpgNHjPl3oSkLoUgTdXc=;
 b=TjT/0d14QI4gR5qLA3cgiJp8HtnPomDzjYHLr41lGKGj9/b29Qy/g71Zh5y13Xuj895Vv+Nmd7uDNbIkxft4Yjy4QV/7twjldtYw1QotmW5JYlXNCjTyfT666J3wDk67CVKwf/ZH8huYU3NAfBnHVwJPXR1ZKuJ3JLG6irZTu0/mrv3JcIQw0GkrJdMt6xrfjF6Y5vVTFpVmERgnDZnKe7jvk22p9wXVhzFPpnMpKtvNSiUshZfb9AlX1oI/fFx3KyWJNA0CA1s0qHw/Z8IguHcVwXQoocbeHi4Vcmr/l7x1qfRgYhtmcsPfu4p+ngqWjnyqV4jM9jGm82FLuVFXwg==
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=LsIBgg5Jdm8OVT/O87Y/EymGpgNHjPl3oSkLoUgTdXc=;
 b=IC1YGnliHJXveMA4yu0LHvdFpAqyitkVFF/qENdZ9gPBxoG45ZJEZZ2BnQgh9JvXcAAaWqnB5VO3LnBXYyOUSgKmsVTXp6Q1QrBQwgA4KfzYpxwf4vShXNPrl2aA2P3dZJqz0DEKXybcF4ENqMHEtkhlgbYOsEbydJrn1PsMJu8=
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=uLhBUNsrPCHdLtb4OGp67UAQEEIDY7RkGINTQ4Q7q9hl2hWUS4a5uYWJRnTjqh/3dw9jeLS7fBGvbZ0pv51vIzx3lyXTlQccn4Skn8N6LA6WTd92W4T7Gcehf86XGOyTXBf+l/EhjYC64PqU8vHynXE7yFcU6amZ4H4GPZhhdboDt9l2iSDv/fCShymC0dl68UMmYnaiOWE/pleHaTpe2vY45oUEskVw9ymbT5x6htiA5C9prlV5VxSAw1D1BgeM+IJSL5F6N0PLMI6qJJpEcg2T6G9xefoJeRf58UwCX1OiYYXBV0a62VyR5VnQl8B3avl2ohp5jECllUcjT5mjOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LsIBgg5Jdm8OVT/O87Y/EymGpgNHjPl3oSkLoUgTdXc=;
 b=YRZoYiNs8k71T+ob4uzONLVX7HEYbO4KxFiFRQqkyx+lFKinkWI16wyhdr20tb/nDtXxAbcDwXYUG+iMbED6JS//GSveufgo3kx0tb3ulNYk5SLUy9jueuG6WYDq4KH3wkd/ojONFZdcwLmxluuEQBG0TCArJVusw4OdEU3rGOOwNplHe45RFq4gBZ94mZixioxw4A6Ps7wN8WGoLVF0/u6Wtui46XIALzuoEzkZrc8C0bm1jbmJYU2lK8EnT8QrDHQKIHS5kmDOmYrQp4DAMm/QzGO/SEg3ZCvX+u+XwcTkH4CojCgaOJbBBhZtPqHyaGraXWlfoGiwLlWf8QlVSQ==
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=LsIBgg5Jdm8OVT/O87Y/EymGpgNHjPl3oSkLoUgTdXc=;
 b=IC1YGnliHJXveMA4yu0LHvdFpAqyitkVFF/qENdZ9gPBxoG45ZJEZZ2BnQgh9JvXcAAaWqnB5VO3LnBXYyOUSgKmsVTXp6Q1QrBQwgA4KfzYpxwf4vShXNPrl2aA2P3dZJqz0DEKXybcF4ENqMHEtkhlgbYOsEbydJrn1PsMJu8=
From: Bertrand Marquis <Bertrand.Marquis@arm.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 v1] xen: Use MFLAGS for silent-mode detection
Thread-Topic: [PATCH v1] xen: Use MFLAGS for silent-mode detection
Thread-Index: AQHclpNYPLhzf1Jy6UKGKEMKa2gWarVz/LiAgAAD8oCAAU1iAA==
Date: Fri, 6 Feb 2026 07:53:04 +0000
Message-ID: <F6E76E4B-1992-484E-8232-85696D3F23F0@arm.com>
References:
 <3ab39249c788fd0463e73df9464d482fefe8516b.1770290975.git.bertrand.marquis@arm.com>
 <1a0c5e48-5457-414e-89c8-0f12cfa55a96@suse.com>
 <2E85263B-38BC-49CB-80CD-3C30F37EFE4F@arm.com>
In-Reply-To: <2E85263B-38BC-49CB-80CD-3C30F37EFE4F@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.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAWPR08MB10017:EE_|DU6PEPF0000B61E:EE_|DB9PR08MB11500:EE_
X-MS-Office365-Filtering-Correlation-Id: 2f835618-ad91-4ba6-f3e4-08de6554e9ec
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?NGg2dFFCMjE3S0l2NUQ4SUtuZWNlakdyMGhMdnA4bUlnY2FMWGdaL0gxZkRl?=
 =?utf-8?B?cmtFMCtZeUQxbzJCZ0RYWk1qVzhaWkY3MG5kYkJ0SWpTTzh0b1ExZTBHSFhI?=
 =?utf-8?B?SXRRSFhiVjh4QUdDblFVTDJoYkJIbm5QTE5IdzhVL3Y3WEVPWE00ZzlsalRh?=
 =?utf-8?B?MnJGSFpRNllLTFZVd2JSNktRK3JPWGFJeEtPQlYxVmhadXFRazhLRStnU044?=
 =?utf-8?B?elJ5YTBOcU1iVmZ6cUp4WFFRTkpKbFE2Qy9YaU5YZ2o1eHMzSWN0SWtub2Zs?=
 =?utf-8?B?Q04vNk14enJmQjVuS2pGWTVoY1B3SEJZcStPcXJoVTFEdjk0SEpkVDh3cVBz?=
 =?utf-8?B?cTdTWElLQVZkc1FrK2lpdkMvN2hLWHhlanVxOG5QRFFhZ0hncXlHUldBQVNT?=
 =?utf-8?B?cGJoT2cyRDRxOGhLQXNPaFdQMFZiVTgra05BcVhzUHU0RllHQ2pUUWt6YzVW?=
 =?utf-8?B?M3VrNnhNYS9TcDFvYjJ6RXR1R2oxbDdsR043WTBuTTMwOHFxOTNsVVpkcFFZ?=
 =?utf-8?B?NzZpaSt2S3BhNHZmTkovNzV2WkVWdWwvWCtvak1EVkpRbUF4eU9QbnhpanJv?=
 =?utf-8?B?bFdncVBESWRscWwxVzhzMHhiblk1bWdJZWE4Qnd0L2srbGI3alAybWNwRitW?=
 =?utf-8?B?ZVNYTUtuWTVkTU1ieUxORndWWFNydDlOZktIWTBtV2hwRHJkSVZGbWFTM3hq?=
 =?utf-8?B?ampHK3J2TWNodVpRWVNKQStPS2dYMDJNakdUN0ppWmEyS1VMc3JsOTBzVVhn?=
 =?utf-8?B?V3VzbllhdGEyMmd1OElrQVRndzhWSnFKcVBRWWNYeHBhdW5xN0ZHVGQ0NC8r?=
 =?utf-8?B?MGVRTS9vVFZDb3NBV0FEV21sQWg0Vjd6anFFOG84Z1FydTl6Vk9OL2x2MjYy?=
 =?utf-8?B?ak44OXdHQUVpb1YxUmNjNkNsK2Q0dHJaeVVmcTJVVTl2ckM0Q3dlZ0ZKbEVy?=
 =?utf-8?B?NldiQmw0M04rcnBVRytKU2ptVmhxN1IxM1B5YUxCc3NQR1k3MUEzVXQzMDVK?=
 =?utf-8?B?ejNtTi9sdEN0ckxhMUV2ME5NTHJlWnRiSEZsbk9IcG1ETi9wN0xicFR6VnBR?=
 =?utf-8?B?eFlnMXFhMEczTmtXSW9tWFFQSjJaZzA1QWJLTHFzTW00b0N4ODArZ090a21v?=
 =?utf-8?B?TFRjUzZsWU1LUHpseTBPaGZMSVg1OHVHMTIxVEwyQTdQNTZ4SVpZbjRKT2Qv?=
 =?utf-8?B?RTBiWmRzRUhhaEx1S0xEemVKbk1TcUVBUU4vN1QyN09YTzhPMGFaMzduZENS?=
 =?utf-8?B?NTUvRC9yNEJyZTVvV2NBN2xJWnExMnBWRDZjaGoxWkE1Qyt1Y0o1enFCYXdj?=
 =?utf-8?B?VjBYbUZwbVhrOTgxWmVBOVBUYWpkRy9GTTVOU3ZmN0wzMGxNRGtUY3B1WkV5?=
 =?utf-8?B?cHFTVTNQcGcrWnNiM0duN1duSXdFWjA4c0R2QWVoamlHUGNsUmJkdGhhdFoz?=
 =?utf-8?B?bDNsNHVMallna2VXbzJKVUFnWDQ1Y0ZIczA5Ni9iRzZjVnNKelAyZngwbjBF?=
 =?utf-8?B?QkN3SDlHM003RjRITVc4a0JIZnJENHZoZDYvenpkZjE4QVA4RDNHeW9adE1T?=
 =?utf-8?B?OFRlOEFsdC9SNFNtTkt2NmxhMExNOTVuSzJzZ2I4bS9iblVoUE5wblB3RTQw?=
 =?utf-8?B?b2hJU3lIcW5nT0lINXpIdjdWVHFnV3FwNERDc0Vjaktic08wc3ByS0xVdGFF?=
 =?utf-8?B?SUFHM1g1WEZodWpIT3I3YWUzaTIvSmhrM2l6TUNRdmYzSlFLN1VZTlA4b1do?=
 =?utf-8?B?SjM3Y3NxeEkwT25hbGU4S3pnSlA3SFhLNS9vdDlkb2tSMXZoVGg5U1NIdE9T?=
 =?utf-8?B?VSsxRUdsRGYxTGZESkliT2dOTC9mZ056V2k4aVJDMWc0UXk4MmtJYnJ6bWVo?=
 =?utf-8?B?QklQVyt1SlpJZkJjWGVoVEJzUDAzWXBXY0pwZDZpMncrZzg5S011ZlVJNEda?=
 =?utf-8?B?SnFLK2VYSm54VTdVME9QRVdPNmNieEdUNFdicWRsalFwbEZSUXR0dVVQd0VE?=
 =?utf-8?B?c0JmR1dQdkljRzVRTVQyS0phLy9Md050MWZNNjcrZzRBeVdpNlZGS2F3ZVBL?=
 =?utf-8?B?TVEyanYwcXJ0a0pyNDkwaHR5UmY0ZG5pZlFqVENIVXNack82NDE3V0FJK0tF?=
 =?utf-8?B?b3FvaUQ5djFlb2VVL29JVGdTS0dXR25nV0lXZVMvRmJzQ21lNHcyRld6cGhR?=
 =?utf-8?Q?8oEJ+J7Kp4dm1hCM9LrFP0Y=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <FDF10735F2E0BE41B76C04AD39BFBC39@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10017
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000B61E.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c1fe55d0-d6c1-4b1c-6ee6-08de6554c233
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|36860700013|376014|82310400026|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cVJMNDRHU202V3ArSU1vRS83Tmp6UmRJbzF0TmZySExUK2NLSmV0bXBGSDRC?=
 =?utf-8?B?K3FpSGM3eHhnWGtkZDZqTnE5Z0kxQWtyblExdTJpS2lvcDY1c25PNGYyWCtJ?=
 =?utf-8?B?aWtaWHA1eEpTSEQ0K04xSWF4dnVwc1JmRHFYRk5ZVnlDNWozZ2pvdjAvNVNX?=
 =?utf-8?B?UitaVkQ1YzZKek9ETlJFZXlmcDQrdUp2bEdnM2cwYUtLSlhOeml3aS9Xbk9x?=
 =?utf-8?B?d3o1eTRsVHIvYSsrcVByeHdrQmg0NXFHeGdaeUhmcWJ6K0o2RjVvRlhSK1dy?=
 =?utf-8?B?dzd0aGJDdDNxZFF2ZXBxMEFZa2QrTFhPWGREVCtqeXhKWGJETjBBVzM3TnNB?=
 =?utf-8?B?VlNoNERLaFhuamxoSC8ybmx2UDllYVpndWRIK3pCYjh5enp4RzJrUytQQlB2?=
 =?utf-8?B?YXV3R3ZqMlBnZEo5eGVJdy96eEpSeHk0U01mS1kvZkpxelo3U0Q5aFZ2K2I4?=
 =?utf-8?B?VjhMT1ZiWFFVRW8xcnlWMjg2WjZHdEdpYm9KQ1ZtRGxmY3lLejlkYzZQUHE3?=
 =?utf-8?B?Q0R5VW9sOXp5RkdCcnhHUVpuOERaZWR3VVl2ZExQcnVKMDFPZTQ5Vi93dnZY?=
 =?utf-8?B?bEpvUGtPYVRJcG5kVWJKR3VFZ3ZhcUo2MlVUVmxRM0RGelhRNEQxd05BOTlR?=
 =?utf-8?B?VTJLcG5INWlHcytzWERzQU9nRC9aeVR1dWRqWmZ2SHVaVFFaK0xmUFMzNnN4?=
 =?utf-8?B?R2t3MGtoQzVISk1MYm5PanpuRUd6eVo5SWNzdWVqalh5bE9LWjVpQlNkZ2dz?=
 =?utf-8?B?b3NvTEI2dG1sUFFJaG1HT0FEam9mVnN6elQwT1l2NjN1NE1mc2JFZUZuOTNZ?=
 =?utf-8?B?T2pRaFZHaGsxc0ZqUi9INVV5RFNFSWErMWhaVHZHQzJFS2dYaWM0a2Vmd2RV?=
 =?utf-8?B?NnY5cXhzRm5BZzJ4MnNvTTlVQk9oYXo5aGhZMGNUUkJVcEdoM1ErTmt6emZ2?=
 =?utf-8?B?TjhtZVZNOWFNTzRnUmFIY2ZzcllkNHR0V0h3cmJucjB2VnRLRUUrQUM0NjRi?=
 =?utf-8?B?L0RHbUFmckt0N2kyaHFGaGRtaG52OGJ0aUNUcGpWNktpdHpDR055bnVwaytV?=
 =?utf-8?B?NlJJQThvbFZkTFg4VmNXZlJNeVlncHlRLzI0TWJiMXJGNFV2dXB5OXpCaGpk?=
 =?utf-8?B?THVNUGxqMVlLaVFIaVg0T3dOSGhXLzZSNDU0aVdIYjdHdTlBZGZwWDczSmNU?=
 =?utf-8?B?dFFMTXZZK3RBemNSY0FYcnN2cXp0OHl1V2kzbGlyM0RtaFMvcEx5eDFvcWtE?=
 =?utf-8?B?SVBBR21BZnM0MDhkZCtQeHZyOHR2YlZkTkZ1SUUxMTR5cVVEdXFmVVM5MndC?=
 =?utf-8?B?MG03bndRcG5jQWhid21lWVVzRC91b1I0SGsvMEJSeUIwL215R0tOdFU4SkVq?=
 =?utf-8?B?NmtGUkpWKzNpTHZEcW5IUVpYTVNhbU9FVVF5UXB6SXd0Uis5WkEyZ2FIUU9L?=
 =?utf-8?B?UDl3TklsWDE3TFprZGsybmlTbVVsV0xMbXZQT1dZd1pzWUc2ekNZVHJpTWNU?=
 =?utf-8?B?bnd5Y1VKZm1LeWRtaGdxQk00UnhQZGltK1RPa0lqZGk2TFJ0dmNBNmJ2dWhu?=
 =?utf-8?B?VFdHeXdLWlNxWVh1U2NDRXkzZHkrSEZpYnVqN1dkTTZDT3hIVHlwTlozV0dw?=
 =?utf-8?B?c1B5dGlONUZKTUFNZnE4ZFMwckp0U2RVWWRVb1BBei94eXRvOW1LZUVFd2M1?=
 =?utf-8?B?V1lzOW5DOU83N1pNUDN2TWdsUk01WVR5Ky8zOUFVUzVaZ0FDL3JkMEd2M2tp?=
 =?utf-8?B?VjAxU3FVVmpUbjgvUlZNZW9JeUVyc0cwbFRBUkp6Y0pqeTQyVE1sc2VaQTM3?=
 =?utf-8?B?V1pmNUNFZ09kS1U4eXNQWExadS9lMW9NeEk0cWtSZmhwRDBQRUdDKzJRNU53?=
 =?utf-8?B?T0NMazNTazZqY1lZUHJmd0JSOG52QTJxck1sd0VqSHNIaGhlVmhOSG1vVVpz?=
 =?utf-8?B?YnZFWmJKNnZ5Y2FkaW91NjV4cGZ3bVlGNFhEZVlKeHRyTnJXNkJtbEFvWnVN?=
 =?utf-8?B?MkNOMkNNc3NsK2owSnlxUzNhd0JhYUZ2OGVNMzJrSEx3T2MzN3NHV253Sjkr?=
 =?utf-8?B?V0hhSTF6dmIyYWVrRjloUzVnS05CT0NkMHhmTmRMVzJNdFpsbUVhRWIyRWFK?=
 =?utf-8?B?aUtOVERFV1RQZ3pnSVdsZlZ6dVpKL054WVRLOHRUK0I3eXZrYzF2ZDcwTnZr?=
 =?utf-8?B?OUtoK1F3M2xsM1VJcjNpdEtxTWovUTdkRjJoSk5FVG9KWWhRU0FWcEJJYmth?=
 =?utf-8?B?N3VyeU5EbDFNak1WRzVwbTFxOE5BPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(36860700013)(376014)(82310400026)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	GSSgvWLTSx+XVvucSlUai8sbQeFZv/Y1gPju2FyDmtuLyoXvirrtjl98oUyk2chqQjpnH+yfCTYK8v4h0ssXC3jBGQhKsWgI+GprOT8q83dXM6u7jwIpQlUQ6xoZYgxR6Zbq4/Y/u4IrPyNX6NCxbaZxa8Qo3xwAytZ9xmnWrtKpypfjfGIMWLRAgpXSyyUigA1Y5Dh6YO8XNhD7jbqvuouKj+wn+al4wH8a27AAbtkQr0zfBlxyNCDaNGrydmRRwcDd/izT4Ex+l/9LC62/szcnCGmvsK+QMA7MTRkpNPxIzbuafUNrjUSSfhW6f2AU5hW91YcPW8GoDGjETEJpiD2kXMmBD0yev+oaeOUviv0dRXlW/qOCO5K46BNMFQ7I1zg+mITZtgKwkS+mYQ6njycXbTr1oVGSrdtvASJ3lCoHNuKE+cY5Y4Y28shJon+N
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 07:54:10.8154
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2f835618-ad91-4ba6-f3e4-08de6554e9ec
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:
	DU6PEPF0000B61E.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB11500

SGkgSmFuLA0KDQo+IE9uIDUgRmViIDIwMjYsIGF0IDEyOjU5LCBCZXJ0cmFuZCBNYXJxdWlzIDxC
ZXJ0cmFuZC5NYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPiANCj4gSGkgSmFuLA0KPiANCj4+IE9u
IDUgRmViIDIwMjYsIGF0IDEyOjQ1LCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+IHdy
b3RlOg0KPj4gDQo+PiBPbiAwNS4wMi4yMDI2IDEyOjMzLCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3Rl
Og0KPj4+IEdOVSBtYWtlIDQuNCsgZXhwb3NlcyB2YXJpYWJsZSBvdmVycmlkZXMgaW4gTUFLRUZM
QUdTIGFmdGVyICItLSIgKGUuZy4NCj4+PiBPPS9wYXRoLCBGT089YmFyKS4gVGhlIHNpbGVudC1t
b2RlIGNoZWNrIHNlYXJjaGVzIGZvciAicyIgYW5kIGNhbiBtYXRjaA0KPj4+IGFuIG92ZXJyaWRl
IHZhbHVlLCBmb3JjaW5nIHNpbGVudCBvdXRwdXQgZXZlbiB3aXRob3V0IC1zLg0KPj4+IA0KPj4+
IFVzZSBNRkxBR1MgZm9yIHNob3J0IG9wdGlvbnMgYW5kIGZpbHRlciBvdXQgYW55IGxvbmcgb3B0
aW9ucyBiZWZvcmUNCj4+PiBzZWFyY2hpbmcgZm9yICJzIi4gVGhpcyBwcmVzZXJ2ZXMgLXMgZGV0
ZWN0aW9uIHdoaWxlIGF2b2lkaW5nIGZhbHNlDQo+Pj4gcG9zaXRpdmVzIGZyb20gb3ZlcnJpZGVz
Lg0KPj4+IA0KPj4+IEZpeGVzOiA0ZmRiNGI3MWIxNTIgKCJ4ZW4vYnVpbGQ6IGludHJvZHVjZSBp
Zl9jaGFuZ2VkIGFuZCBpZl9jaGFuZ2VkX3J1bGUiKQ0KPj4gDQo+PiBJIGRvbid0IHRoaW5rIHRo
aXMgaXMgcXVpdGUgcmlnaHQ6IG1ha2UgNC40IHBvc3QtZGF0ZXMgdGhhdCBjb21taXQgYnkgYWJv
dXQNCj4+IDIuNSB5ZWFycy4NCj4gDQo+IFRydWUsIHdlIGNhbiByZW1vdmUgdGhlIGZpeGVzIHRh
Zy4NCj4gDQo+PiANCj4+PiANCj4+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxi
ZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+PiANCj4+IE5pdDogTm8gYmxhbmsgbGluZXMgYmV0
d2VlbiB0YWdzLCBwbGVhc2UuDQo+IA0KPiBBY2sNCj4gDQo+PiANCj4+PiAtLS0gYS94ZW4vTWFr
ZWZpbGUNCj4+PiArKysgYi94ZW4vTWFrZWZpbGUNCj4+PiBAQCAtMTEzLDEwICsxMTMsMTEgQEAg
ZWxzZQ0KPj4+ICAgIFEgOj0gQA0KPj4+IGVuZGlmDQo+Pj4gDQo+Pj4gLSMgSWYgdGhlIHVzZXIg
aXMgcnVubmluZyBtYWtlIC1zIChzaWxlbnQgbW9kZSksIHN1cHByZXNzIGVjaG9pbmcgb2YNCj4+
PiAtIyBjb21tYW5kcw0KPj4+IC0NCj4+PiAtaWZuZXEgKCQoZmluZHN0cmluZyBzLCQoZmlsdGVy
LW91dCAtLSUsJChNQUtFRkxBR1MpKSksKQ0KPj4+ICsjIElmIHRoZSB1c2VyIGlzIHJ1bm5pbmcg
bWFrZSAtcyAoc2lsZW50IG1vZGUpLCBzdXBwcmVzcyBlY2hvaW5nIG9mIGNvbW1hbmRzLg0KPj4+
ICsjIFVzZSBNRkxBR1MgKHNob3J0IG9wdGlvbnMgb25seSkuIE1BS0VGTEFHUyBtYXkgaW5jbHVk
ZSB2YXJpYWJsZSBvdmVycmlkZXMNCj4+IA0KPj4gV2h5ICJzaG9ydCBvcHRpb25zIG9ubHkiPyBJ
dCBsb29rcyB5b3UgbWVhbiB0byBkZXNjcmliZSB0aGUgbWFjcm8gaGVyZSwgbm90DQo+PiB3aGF0
J3MgZG9uZSBpbiB0aGUgaWZlcSgpOyBhdCB0aGUgdmVyeSBsZWFzdCBpdCBjYW4gYmUgcmVhZCBi
b3RoIHdheXMuDQo+IA0KPiBUcnVlIHNob3VsZCBiZS4NCj4gRmlsdGVyIHNob3J0IG9wdGlvbnMg
ZnJvbSBNRkxBR1MuDQo+IA0KPj4gDQo+Pj4gKyMgYWZ0ZXIg4oCcLS3igJ0gKEdOVSBtYWtlIGdy
ZWF0ZXIgdGhhbiA0LjQpLCB3aGljaCBjYW4gY29udGFpbiBhbiDigJxz4oCdIGFuZCBmYWxzZWx5
DQo+PiANCj4+IDQuNCBhbmQgbmV3ZXIgcmVhbGx5LCBhcyA0LjQgaXRzZWxmIGlzIGluY2x1ZGVk
IGluIHRoZSBhZmZlY3RlZCByYW5nZS4gSSdtDQo+PiBub3QgcXVpdGUgc3VyZSBhbnl3YXkgd2hl
dGhlciB0aGUgY29tbWVudCByZWFsbHkgbmVlZHMgdG8gZ28gdGhpcyBmYXIuIFRoaXMNCj4+IGtp
bmQgb2YgZGV0YWlsIGNhbiBiZSBoYWQgZnJvbSB0aGUgY29tbWl0IG1lc3NhZ2Ugb2YgdGhpcyBj
aGFuZ2UsIGlmIG5lZWRlZC4NCj4+IA0KPj4gSGFwcHkgdG8gbWFrZSBhZGp1c3RtZW50cyB3aGls
ZSBjb21taXR0aW5nLCB5ZXQgSSdtIG5vdCBzdXJlIHdoZXRoZXIgeW91DQo+PiBhZ3JlZSBpbiBh
bGwgcmVnYXJkcy4NCj4gDQo+IEFncmVlLg0KPiANCj4gSWYgeW91IGFncmVlIGFuZCBjYW4gZG8g
dGhhdCBvbiBjb21taXQsIGkgd291bGQganVzdCBwdXQ6DQo+IA0KPiBGaWx0ZXIgc2hvcnQgb3B0
aW9ucyBmcm9tIE1GTEFHUyBhcyBNQUtFRkxBR1MgbWF5IGluY2x1ZGUgdmFyaWFibGUgb3ZlcnJp
ZGVzLg0KDQpBcmUgeW91IG9rIHRvIGdpdmUgYSByZXZpZXdlZC1ieSBhbmQgZG8gdGhlIGNoYW5n
ZXMgb24gY29tbWl0IG9yIGRvIHlvdSB3YW50IG1lIHRvDQpwdXNoIGEgdjIgd2l0aCB0aG9zZSBm
aXhlcyA/DQoNCkNoZWVycw0KQmVydHJhbmQNCg0K


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 07:58:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 07:58:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222861.1530549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voGjO-0003YA-JH; Fri, 06 Feb 2026 07:58:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222861.1530549; Fri, 06 Feb 2026 07: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 1voGjO-0003Y3-FC; Fri, 06 Feb 2026 07:58:22 +0000
Received: by outflank-mailman (input) for mailman id 1222861;
 Fri, 06 Feb 2026 07:58: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=8hvW=AK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1voGjN-0003Xv-8e
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 07:58:21 +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 9a088fae-0331-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 08:58:20 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-432da746749so1158493f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 05 Feb 2026 23:58:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296bd3fdsm3827201f8f.16.2026.02.05.23.58.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 05 Feb 2026 23:58:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a088fae-0331-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770364699; x=1770969499; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=DZNJQPwntNIQqjFZHgMx4KebADQv48iTVe3De2X/X5A=;
        b=Q2Z2dJCMD9mjuyjNejx1a2pPOG0bdc/omW5quq9iaNUACc/WvTDIWk1c3urZSw5FH5
         MvkQC1KEuOD7YizORlnwD3OCu23R1kIhdHeYfoBHXje7DKoCl4ItQelGxypEBMgS7PE3
         nuNF3C5LMY4ohZbbB4DdsRVrnOyCKgJRAJ0/OcK7xLEGHR2oMgFTyIXWQZBCyKMuLk1g
         3HD0yuj9ZBakptwGYCvFNyMoSmTQ9nZM/CDHgJkpJcWfokYZxzQLvzHpv4eOd+TTGSqH
         syyWz4sU7RJahSSvbtsuJp9XL/AcaOQWUVuQ2Ofl/bRY3CYHd4AdLEBedDxvDL7u1ZJs
         jYdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770364699; x=1770969499;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DZNJQPwntNIQqjFZHgMx4KebADQv48iTVe3De2X/X5A=;
        b=sfDvdpdck0aOSShaGOPhR5vZmvDIVtmDMGfw8CW5otIOOHHFiYj9CePeQvfYpZu7hR
         caAgUQHUi6PYjyoQdzAJkhixtiJDXsnFHMzyMzRCDP8UzwFp3hOBsrvsMCBvCY1ZvoF3
         pZ/bP3GWndBDDCiUDFXDwuIpdmPy6sis4CFCkfxHR+Yv4EPpG4J128Sha9GVJMTgfE+f
         OzMWaudwQ25Lm4e2D5vyA3sPqxyAUKV5RFRWefGECKLGmuDefY14Q2xP39SQDeVp0+KS
         0hylgdpEpL5X4UFGSl+Xli8jRC2O/6pt+1C7yJqOWmRTidCoDmhPYBMivjbFg0662/xX
         ATFg==
X-Forwarded-Encrypted: i=1; AJvYcCXks3Bsk827tU/43g+FQVa1WavWVu/fREpPncdMN85fjTFabwLN2icGPEojThARWvkc/5lUZjOFJs4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1h1j8nmFaG4JKaYAHL9CPy1crtOOBUzBFAgOrKHmra64GQKLo
	ilJrc3WH2BQRPcwe3+Wmdx17sFKVs2nZLu4jaVcqRYPBDqKkLpqXN8jFFXSDXowKMw==
X-Gm-Gg: AZuq6aIsICOUuUcAwuokS69poie5o1YVm8+oNHlm3EB8vD1PDJyX0NfsaIyPSlyhdj/
	rxSilNzllQTt5Nf42EMPZemvRunVS/Wq9Rwmm4wr7M8gj48o1QEjEb01Gz8IDDEhHa9D06Fk2B/
	9jUq6Pegk90GBO/WU3pBWxilfOkZKSqFI0zrJHVZWFwl1UHGf2IRWWsCq+6POw770+vFm7K0jka
	mSl3tbDsRiQIDL5KvigQY7GnffiNpbQ4uvCDsq9zeuWB1u05sZemV64HM/x8mo132KvGg4bIcd3
	mXNEY25K3380IqoSaWW5rkjtaMmDxW6DimC/coVlwcBaEnOHlMlzDXJUCSKH85E2YjCqYeyyM1w
	CvuI5wUuKhI+OAkdaLr0GIRejpjiGNDLwmtNV29NRhstAjLp0bVTQ1dfg4dHfOIM3v+RPq4gjFy
	hyLqoDvSzxhL0iacuLcFI/Efp+uP1VB7CHb8k43lo/cgTYG82QrHNhMOxy8SpMEiY0BVNY26/SE
	Kw=
X-Received: by 2002:a05:6000:220f:b0:42f:bb08:d1ef with SMTP id ffacd0b85a97d-43629658eb3mr2438342f8f.17.1770364699220;
        Thu, 05 Feb 2026 23:58:19 -0800 (PST)
Message-ID: <37e2fad1-ce06-465e-b56b-190bc0aaa379@suse.com>
Date: Fri, 6 Feb 2026 08:58:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1] xen: Use MFLAGS for silent-mode detection
To: Bertrand Marquis <Bertrand.Marquis@arm.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: <3ab39249c788fd0463e73df9464d482fefe8516b.1770290975.git.bertrand.marquis@arm.com>
 <1a0c5e48-5457-414e-89c8-0f12cfa55a96@suse.com>
 <2E85263B-38BC-49CB-80CD-3C30F37EFE4F@arm.com>
 <F6E76E4B-1992-484E-8232-85696D3F23F0@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <F6E76E4B-1992-484E-8232-85696D3F23F0@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.02.2026 08:53, Bertrand Marquis wrote:
> Hi Jan,
> 
>> On 5 Feb 2026, at 12:59, Bertrand Marquis <Bertrand.Marquis@arm.com> wrote:
>>
>> Hi Jan,
>>
>>> On 5 Feb 2026, at 12:45, Jan Beulich <jbeulich@suse.com> wrote:
>>>
>>> On 05.02.2026 12:33, Bertrand Marquis wrote:
>>>> GNU make 4.4+ exposes variable overrides in MAKEFLAGS after "--" (e.g.
>>>> O=/path, FOO=bar). The silent-mode check searches for "s" and can match
>>>> an override value, forcing silent output even without -s.
>>>>
>>>> Use MFLAGS for short options and filter out any long options before
>>>> searching for "s". This preserves -s detection while avoiding false
>>>> positives from overrides.
>>>>
>>>> Fixes: 4fdb4b71b152 ("xen/build: introduce if_changed and if_changed_rule")
>>>
>>> I don't think this is quite right: make 4.4 post-dates that commit by about
>>> 2.5 years.
>>
>> True, we can remove the fixes tag.
>>
>>>
>>>>
>>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>>>
>>> Nit: No blank lines between tags, please.
>>
>> Ack
>>
>>>
>>>> --- a/xen/Makefile
>>>> +++ b/xen/Makefile
>>>> @@ -113,10 +113,11 @@ else
>>>>    Q := @
>>>> endif
>>>>
>>>> -# If the user is running make -s (silent mode), suppress echoing of
>>>> -# commands
>>>> -
>>>> -ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
>>>> +# If the user is running make -s (silent mode), suppress echoing of commands.
>>>> +# Use MFLAGS (short options only). MAKEFLAGS may include variable overrides
>>>
>>> Why "short options only"? It looks you mean to describe the macro here, not
>>> what's done in the ifeq(); at the very least it can be read both ways.
>>
>> True should be.
>> Filter short options from MFLAGS.
>>
>>>
>>>> +# after “--” (GNU make greater than 4.4), which can contain an “s” and falsely
>>>
>>> 4.4 and newer really, as 4.4 itself is included in the affected range. I'm
>>> not quite sure anyway whether the comment really needs to go this far. This
>>> kind of detail can be had from the commit message of this change, if needed.
>>>
>>> Happy to make adjustments while committing, yet I'm not sure whether you
>>> agree in all regards.
>>
>> Agree.
>>
>> If you agree and can do that on commit, i would just put:
>>
>> Filter short options from MFLAGS as MAKEFLAGS may include variable overrides.
> 
> Are you ok to give a reviewed-by and do the changes on commit or do you want me to
> push a v2 with those fixes ?

I'm intending to make adjustments while committing. That will now be next week only,
though.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 08:11:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 08:11:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222882.1530558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voGvn-0006qn-01; Fri, 06 Feb 2026 08:11:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222882.1530558; Fri, 06 Feb 2026 08:11: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 1voGvm-0006qg-Se; Fri, 06 Feb 2026 08:11:10 +0000
Received: by outflank-mailman (input) for mailman id 1222882;
 Fri, 06 Feb 2026 08:11: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=qUCI=AK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1voGvl-0006qa-Ce
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 08:11:09 +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 62e8fe5e-0333-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 09:11:06 +0100 (CET)
Received: from DU7P250CA0001.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:54f::23)
 by DU0PR08MB9903.eurprd08.prod.outlook.com (2603:10a6:10:470::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Fri, 6 Feb
 2026 08:11:00 +0000
Received: from DB5PEPF00014B95.eurprd02.prod.outlook.com
 (2603:10a6:10:54f:cafe::f4) by DU7P250CA0001.outlook.office365.com
 (2603:10a6:10:54f::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 08:11:00 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B95.mail.protection.outlook.com (10.167.8.233) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 08:10:59 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA4PR08MB6176.eurprd08.prod.outlook.com (2603:10a6:102:ea::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 08:09:55 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 08:09: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: 62e8fe5e-0333-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=TofQlYGmaJ/WQVYj68ci6Xzk6ANQWLa357j1gnjFRmcvfbfpqtb/6zUqGrqx65hJg/c/HYG+UH29ik9qN4E9uedMsAnKLr0arWDNx4tsB4Rtrk5ZVLyuSBZMoXNQ1+19Oc211lsT+lDNgjFo45KT8faeuD27/2s8Tzuvcf8zTMcSF7N051C0EUsgvqW40sPm0b18IrvETM73jMh4jVhlIlv3wWSuOf3pkCu7rEP4P1r9Rxxn53w5Rf7tpsEgM7cVXq29EWLWi0rqAZPtgMxmeCNudWVoguRuZRLk0mYuh6w1IVBzZJl1Cf5zRJDz7JXjEDwh1c4PiUqnbMHWky0ZXw==
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=7Rabjhhvd83tr7aWZzIR0w55EB/7Bw+hHmRK29bmjAM=;
 b=ps+KL1/qlPGxIKD8u/5CihTzOEl4ERJWoU3EpAar2Gc8iOEqhczLvgk0fNTcZds8p04Idr3YDo9Z/UAMZqNklvLv35oOJbU24CRx1+aYdR7zYnwpl4Z5iOAWN6K9awfWw8sOwrZk1NPAFNAjWhEmxeWS3NNrOtxMGCdM+ZzijvRD1SrtS+aPxOQOgaSRcM30/cL+w5TAiJUTiCcvnU7SYL7l9NVu0VPZHmkpnkRarM6QLii53hiW30h4uNtsiDZBJ92QYOSxX1p4QmbtwTmBY/ddES14U2XHxkVxv4DNSs2iQ5CXJWzEJbadF41DSGsYPmuGlHP402Hvdjld38dlTw==
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=7Rabjhhvd83tr7aWZzIR0w55EB/7Bw+hHmRK29bmjAM=;
 b=W9PFTR+O6TT5IvFv2XmXAYLh3ioqH/HjxFYKSQIwyTWj5HI8tZHHerynKw4VLRRA+fjVgUy73tQfBP9lkN6TbSOEjWRM8LS7mSLjRggmHqdBjENhvQzhKvHyFXM3CPxi1IDGiusJErCrxtnmzUgtRKZ/jj2Xef0X9qBvKxSz0Hk=
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=k/hKnbWw737c7OVrlHMxC0kHfcVyenoJvwTrkbw4NnWzOvCsZkkmuEPClbkSzQNyIBepoOF9+jnYdYi672UBvNZUr5r5D5ujHgFqtzdMeySOj6wWqkYKP0aob7/Auhr4/VdAbDEo6c9vSo0OLJD8vruIqKdZx1idxXGEb1PaFDaXJGOx969iJmsrIfHuuXGlemZHHy00B1bh3zHikR+Y0Qd3Ec+mxutpu7ZKlIYFvcBb9Jaum0B2esOVkQlW6UXIrtKHnrLWi8gsxbsPyiPE9dlyJmkvWrK+IRgvkAKtUfSKefRHUnEFcfkzLVdnopvui2sAGaUsmphFf8tN2qQP/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=7Rabjhhvd83tr7aWZzIR0w55EB/7Bw+hHmRK29bmjAM=;
 b=qREo6PEv5XjBLvFHaJ1NFsoUiHDIW9y3OHFO+lBGv6AA6+0v45zzG6R6yC9AVyynixuKwkU6HwRJ3AU05PoiQafW0+xKFPBWMTBAOGfJURisyff0dJ9StdvEcVb1oJBNVMYUfCOrQUhLKxbeurzwlj7Dka4vDEN9K93azvM2SIONKtOfzb2WU5NRecLTJfzNHBW5mzEe63hQmlirWBzIXCizcXw2W2e8JGbGFkf7I78xzxL4hE7nUgdVGd/w7j+nKPKUwio9QVR+Wk8bVI1dDyPrRnvQQcoxBOwqY3eJX9u/fBruZO/0xpdoZOcsMnu9sxxLNDmYYrWeJr+rHZPl0Q==
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=7Rabjhhvd83tr7aWZzIR0w55EB/7Bw+hHmRK29bmjAM=;
 b=W9PFTR+O6TT5IvFv2XmXAYLh3ioqH/HjxFYKSQIwyTWj5HI8tZHHerynKw4VLRRA+fjVgUy73tQfBP9lkN6TbSOEjWRM8LS7mSLjRggmHqdBjENhvQzhKvHyFXM3CPxi1IDGiusJErCrxtnmzUgtRKZ/jj2Xef0X9qBvKxSz0Hk=
From: Bertrand Marquis <Bertrand.Marquis@arm.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 v1] xen: Use MFLAGS for silent-mode detection
Thread-Topic: [PATCH v1] xen: Use MFLAGS for silent-mode detection
Thread-Index: AQHclpNYPLhzf1Jy6UKGKEMKa2gWarVz/LiAgAAD8oCAAU1iAIAAAYGAgAADMwA=
Date: Fri, 6 Feb 2026 08:09:54 +0000
Message-ID: <1DCB4CF7-99F9-4958-AFC8-521EE4779664@arm.com>
References:
 <3ab39249c788fd0463e73df9464d482fefe8516b.1770290975.git.bertrand.marquis@arm.com>
 <1a0c5e48-5457-414e-89c8-0f12cfa55a96@suse.com>
 <2E85263B-38BC-49CB-80CD-3C30F37EFE4F@arm.com>
 <F6E76E4B-1992-484E-8232-85696D3F23F0@arm.com>
 <37e2fad1-ce06-465e-b56b-190bc0aaa379@suse.com>
In-Reply-To: <37e2fad1-ce06-465e-b56b-190bc0aaa379@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA4PR08MB6176:EE_|DB5PEPF00014B95:EE_|DU0PR08MB9903:EE_
X-MS-Office365-Filtering-Correlation-Id: a46ab3f1-38f2-40af-9d5f-08de6557434d
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?TmdWSEVWVFd6S1lsREJDZU9pWDZjRVJGbkJHMzRFMDhlbjh0NWtGSWR5NmZ1?=
 =?utf-8?B?VHBnR1FWeXprR0NWbmI5d1dudGp1MVYrR01IZ2ZZV2N4UUZpdllhWGxzMWJN?=
 =?utf-8?B?Vkg1ZEZmaHFGYkh0OWQrYXJzMXcxZVZRM283TUJnODJrOGF5clNId2JKK3Q4?=
 =?utf-8?B?bGdGalhEK0dKSFpuVk5hSDhEQXM4Y2VUOUNhM21NbWM2VFcyNHhBVzVXMGgz?=
 =?utf-8?B?dXpJR0xUMlBLRXdNTkQzRVlUR1hXbEVXalVuU09iaEJ3b3hEZDV4eUlES0FG?=
 =?utf-8?B?aVNic2J3SXNDNmNjdHVocUVTNG5vd05GNVZxQnlkSG1RWDZ5SlRnUkJmV05P?=
 =?utf-8?B?c0ZMRGtWWVFlUHlDU2Y0anBCZ295SCs3ZmdmYWVWWEsxUzdOb3QrMlhzdE1x?=
 =?utf-8?B?NmRIS2FTZDMxQWN2cEhTaFdOZkRRaXZXd25JcTUzTFNSY0JVL2lzS1prNWRo?=
 =?utf-8?B?UTJHdWV3aTdlclZBL1RzOFpqY3FnYjBicHJrUzhkZlg5SzF5ZGNzdnFpVm9I?=
 =?utf-8?B?aUs5ZEw0UVRBQWMwYUpYR2tqNFhDVFBjSVo4TWx6OWNRTXoxSkhpczh4eEFB?=
 =?utf-8?B?c1dRU0pyRGkvUnhGUVpjWVc1ZmVFQVFNbzg3dDNsUzRXdDV3OTBCMCtVTmw0?=
 =?utf-8?B?N3BvMEF0QTB0WTFaY2luREEyZVlQR2lZMFZ0Y1hJOEtoSkd6TmhEcXVwVHU1?=
 =?utf-8?B?RUZFbGtncENKZmRreWJ2ejNUbjB4d1ZiMzcwbUNXMTF1bVdrNEdUQnI3V3Aw?=
 =?utf-8?B?OWh1SVYzaWxxVkpJTDVaaHc3YWk5TGY4YmdQL0FZcytjNGkwS2JpMTJsWkhO?=
 =?utf-8?B?TkNtdGtUWkk2UW01M3BGOWtwbDFLbEpFQUc4ekNJb003ZjBxV2hQT2RnTXM2?=
 =?utf-8?B?RDJoQ0M2VEdjUjhoa1FFOW5UeDhZdDgwQWRGbHZ3QUpublArZlh5VzcwamxG?=
 =?utf-8?B?d2RCdjVHM29wYkJkNHlVVFlseG1OMWZyRjRtVnIxeW1HT3dhRzl4Z2p0cEhB?=
 =?utf-8?B?RnJ2Rzd1cjlIWncwQUN4TnhBeWcvUWRDeStnb20wbG9pYUZNODEyVTZ2cVdI?=
 =?utf-8?B?MVJoZmJ0SXdZN2lrS0VidXZvOC9EZkdCTksrZGpSeGdnNzZFUUVqeXp3UStT?=
 =?utf-8?B?U1pDbEMvQWE5amdRWml2TnZhU1NUY2lHNENkWU02TDdoV0lxMGlZTWFuYVB3?=
 =?utf-8?B?bnArQi9XZGRtN2RyRGVRcUpYQmx5TlVxdXRHcWxRbDhzRW1NdUtkQU5pZjRG?=
 =?utf-8?B?cEI1dHdPb1BoTTlTMTcvSFdEYVRaMHdkeGlTeDg1Q1NnVzJmNUZ5TFBlSmV0?=
 =?utf-8?B?cnl0blJhalp0TE1ma2FJQ242N0o4b0l5RUNuODd3TVVka1M5STdXTk9PbEp2?=
 =?utf-8?B?L0FZZU1KS0ZtOXYxcC9HL3A1VWQyVnAwU3ZGUythNGViUHRZR0xHcUZUa0p6?=
 =?utf-8?B?K3EzTnRyeHQ1L1A0OUNyTDFYYkdLMFNxKzNzcUliczJCTlhsZUlQVm1NSFpZ?=
 =?utf-8?B?eldWak1vOXRPNTg4enFSdWVreHU2WXUxUGZTQmxWUThhVkZwWjMvUVVoRmZp?=
 =?utf-8?B?KzRSUnlxdVZqVHF2TWxnY2NjV1Q4ZVhxOGZ6dkxUUUpVb00vZHpON0FtOUVS?=
 =?utf-8?B?a1ovcFkzN0t3V3dTbTJETE9kS2V5QTZhMTRGSS93d1FJZVZINmtuUlFxWXVk?=
 =?utf-8?B?TzhCTys0K1dNOEZ3WEFXbUhUTHpoTVNZZVRTTDhseGRPL2lIVEZSWERMNjc0?=
 =?utf-8?B?ckt1eUZJNW1iNzdOdnl4SVRYTXZJbUNNUVM0Q0Y4YkV0dE5ld2hxOVZDUkpE?=
 =?utf-8?B?MFgyb3lqbUlBaFlyTnFQWmtxaHk1N00vQjlMT3pIanFqd1NYTWRJVTQyVGRo?=
 =?utf-8?B?ek9RcGFaUE91UzJNMU9NZ1d6Q1p1SGk4SFhkME16RzBlZUpoNjRLZUt6NGxY?=
 =?utf-8?B?cS9PTUpDSkJrQlVVaEdZNmd4bWk5UDBNNTV4dUhhVStHM2xZbDY4YXJpdzlO?=
 =?utf-8?B?VmpKaXA1K0xUVUdSQnc1VlNZY080Wmo5aTNvbmJBbHkxTVlncmN6TDluREFv?=
 =?utf-8?B?NmF4a2V0ZTZRNlNhUTlDSEFhQmJaSDV6aTdqZlBkWVora0ZiS0JQMXlBZkZk?=
 =?utf-8?B?KzBSemF5UEc3Y3NJSVB1dkNLVWRVeHZiYkdKN2ZZWityVGV1aklIZ0Vwb1M4?=
 =?utf-8?Q?shkcof0b7EIF/lR6kwmkgH0=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <BD7976C4B6D9E14F9EDF26CBC35E0161@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6176
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B95.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	8aa616ca-45a8-49ee-c618-08de65571c92
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|14060799003|82310400026|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?c2RnaTJsdFpsSDBHMkU3cXZVRmVKWm5JREV2R21sdmpWd2VyWllZaXJVTVEx?=
 =?utf-8?B?SngxUzljMlFnc0c4RnVWU3AyK1R3Ui9md2Iwa1NLVTBrMFJ3R1h5c25Welhw?=
 =?utf-8?B?MHh4R3pEd1Z5d0Nwd3pmV2JSWGEyckU3bk8rTXpKZGNVQTh1ekRWRS9qSUZq?=
 =?utf-8?B?S3dpSzdYQytVdklzVmdJamNza25OeldwblJGaTJPYm9jcVF6UnEyV1ZZbU5m?=
 =?utf-8?B?Z2hpb3dqT1Z4aDdIdkI5YitjSHhXanRLbTA3RlNLQ3VYcVJrb2Nsa25nK1Zo?=
 =?utf-8?B?a2l6bnBlOFJ4L3pVcSt4aEtkcjNyMW9ydHhNWC9LV0czSEMycHkyd3FlVzB6?=
 =?utf-8?B?ME5lb1FaVEdXMm8rMmsrYUgvazY0cmhUamFLSFlTZGh3VW5kQmVhNlhFQm1H?=
 =?utf-8?B?SzRvbTZJSGxSdkFKUE0vV0FUSkFiOEFtbjhqeGJvZ3JGTkh0aU9qV21aWC9z?=
 =?utf-8?B?WXZCSWZ0dFNOaC90T25qaEtUMHBKSVN6WU9RaVU3REZDRXZMazlmTjJFU3dL?=
 =?utf-8?B?SjZnMW8wMEQ2MUY4MHYwTnVGSnZNT1Z0ek5jc0JDTm90a3BJZUNWVHlnRkgx?=
 =?utf-8?B?T1kveHlLTFU3ZzA5a0FSakExRndZY0JUZytNQTdwT2gxUDJTL0JMNGRWR3Fv?=
 =?utf-8?B?OGs0VjhIdHlNaUtPa2duY3JyZUhmcXpaOCtCVmVQVkVBRVhoZm9SWjVOb0JX?=
 =?utf-8?B?bEJBaHJCUWxReHh4WEpnZmxDbUR0MDZyU2VpVDNXMUk0WnBxdmZkWGs2dW5o?=
 =?utf-8?B?UUhzamFBTzU4R0NSZkVnUnZSck5XN3duckkvVjZweE5qa0p4eHI2bWtHOWhi?=
 =?utf-8?B?RHY1dUNJdHpVRXlCQlYrTEJKeTJqcUlRQUJsNnlIdm00NFBiSGlEbGZWazJt?=
 =?utf-8?B?U0daaHNzL1VDR1Z2QjF0TU9YOHRFVjFuV25YWkp5YTl1eFZXT2FmblpIbm1u?=
 =?utf-8?B?aHR4bHQwWFFsZEJhNmZycVpKQ3c5Y0VaeUdValFqai9UbmhuMXZGQlRXTVlO?=
 =?utf-8?B?VjVaMDFsa3hCeVMvMG5RRkRQUllYWmsyMncrOVh4ZVZZYW1zZy9heU05cUJH?=
 =?utf-8?B?N25HUVdFQ3V3RHAvSy82UUhMY2RSd2M4WTBsaTYzVnN0dWF2QUgxaTRLSGV4?=
 =?utf-8?B?QW1tMVRwYWY3YVpSQ1BwNzdHZTdGSGRRdDN2OVBmb013RnNnNUlZODYyYUZS?=
 =?utf-8?B?Y09mL2JNdS9PcXBXSDVwT3hYaFdWM1pzRWFhTmxjeDlIbzBNcEJzbVFOYVpn?=
 =?utf-8?B?MW9pY0dMbEx1K2s4aldqZHp3YXJTZ2lIdUNCbW9DTTFhRjcvd2RwQS9yZHpV?=
 =?utf-8?B?MmpsUnY3STFVVTFia1dZVHp2OHNlRmNRbEZ3QXJJRWdjYzI5RDE4TTREeDJ0?=
 =?utf-8?B?VXUxZ2xvbzhlZ3ZKWFJpeTZkSTRHd0xUVTdKZ2QrK3hlTnZXYjFHeFRRQmRR?=
 =?utf-8?B?N2R0a0xWdCswWDdTbkh1NGpwUGhSeFo1YkJrSmRVd2lSdkg0R0xsZWVoRC9k?=
 =?utf-8?B?RVI5bGx0V0trNnYyemdJNVJjemN1QVA2Y1RUUVZBbUVPVFIyZEkvdCtRUmt1?=
 =?utf-8?B?UDJxcStxOVlpdGl6eERVUklFKzRjYzk2S0RTMnQvQXB3ZXRoZnFpMUlFak5M?=
 =?utf-8?B?bEY3WTBxM0xpSy9LWlpEL1NBSi9WUllSMzFNMi94NjYzWllwUjdsRnVVa0VK?=
 =?utf-8?B?UU5zMlFWcnU3WmNjQTBZTVVORlZOeUs5Q1VVN2FiYi9hc1ZScFFlWGFJZnRv?=
 =?utf-8?B?Yjdma2pMUmFCY3o5OW5tRFp3SUdOWEl6Tmk4WGlUQmR4RFlrSGk3TllsMDcy?=
 =?utf-8?B?bzhKY1pjVC9SVXpWSzM3bUpwbjYycmxra3dmOUlYNlhVOCtDVHlkVHBhcWQy?=
 =?utf-8?B?VnptZ3BRekNCT1NscnlQNEpJSVNkRURHcjNnT0JVYVJaQndaUlNubUJlVUNh?=
 =?utf-8?B?dzVQRXJQMmF0YmlzREYvanRUTnhqMDZsNk9OTS9mdFhyT0hlWE1JWjB4c3RN?=
 =?utf-8?B?dllwdDRhMmFSc2RrUElDNTJreVpCNG1QMm1FNFBleUIwejZTR2V1RDdEK21O?=
 =?utf-8?B?WlRMcVJXWDd1ZEZhemRLa2ttMHAwMmtrT3NORDNQVC9ReWVUQ0pQbDdGNTd1?=
 =?utf-8?B?U1RkUjlmbXhYZENURUI0ek5POFFSNFNuSlhwUVdTQTYyT3UvVkxJSFIzZVd0?=
 =?utf-8?B?NlA2ZkY0ZjlKYlVsa3ZKdjZ2MmMrdVdZbGM5aU5pV0lveGZTNXJVUGpXNno4?=
 =?utf-8?B?R3BUUzNsc0pVb3ovYitxS1FKdSt3PT0=?=
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)(14060799003)(82310400026)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	6nNIdksqlpNat7463gBAzAVozHISM1j63bBS3cZFB+X8KIuG0vi7fJUB2L00dys3pgTGkXt36mU11m1YkLKZy7O8fEMVeQF+BojvnZPWhIe57nESlSr8DOAv0y640GyrqtlJNB8I0Tqby03sPESMTCpTQxdmgXxAB4tCG1MIhnZu5eRrzAOtxOJFKxUmo4HfxVGnAhzdJM3IdU20vpjBJEeTP3yX9eU/e2owNohX0kaGwLWgIodByyr/gY232OX9qwKmzU1KxQGiXCuweGrV1CDrfYVvAxe/msyZ/YeRUd5Ne+YnUuuTjmXMipTIuY1HbqnpdLBu0ODGMcEPWTnUcOYQHlAS96Y7ZyuRhZWxlMHGtcIfRO/bbtGoBJa951fSPt2SAn4FT1FnWCHvWaw+xYgHChu3JFScC1SN01pZY1SlvjURAbXmT7nF+QlC7yck
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 08:10:59.7849
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a46ab3f1-38f2-40af-9d5f-08de6557434d
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:
	DB5PEPF00014B95.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9903

SGksDQoNCj4gT24gNiBGZWIgMjAyNiwgYXQgMDg6NTgsIEphbiBCZXVsaWNoIDxqYmV1bGljaEBz
dXNlLmNvbT4gd3JvdGU6DQo+IA0KPiBPbiAwNi4wMi4yMDI2IDA4OjUzLCBCZXJ0cmFuZCBNYXJx
dWlzIHdyb3RlOg0KPj4gSGkgSmFuLA0KPj4gDQo+Pj4gT24gNSBGZWIgMjAyNiwgYXQgMTI6NTks
IEJlcnRyYW5kIE1hcnF1aXMgPEJlcnRyYW5kLk1hcnF1aXNAYXJtLmNvbT4gd3JvdGU6DQo+Pj4g
DQo+Pj4gSGkgSmFuLA0KPj4+IA0KPj4+PiBPbiA1IEZlYiAyMDI2LCBhdCAxMjo0NSwgSmFuIEJl
dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPiB3cm90ZToNCj4+Pj4gDQo+Pj4+IE9uIDA1LjAyLjIw
MjYgMTI6MzMsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+Pj4+PiBHTlUgbWFrZSA0LjQrIGV4
cG9zZXMgdmFyaWFibGUgb3ZlcnJpZGVzIGluIE1BS0VGTEFHUyBhZnRlciAiLS0iIChlLmcuDQo+
Pj4+PiBPPS9wYXRoLCBGT089YmFyKS4gVGhlIHNpbGVudC1tb2RlIGNoZWNrIHNlYXJjaGVzIGZv
ciAicyIgYW5kIGNhbiBtYXRjaA0KPj4+Pj4gYW4gb3ZlcnJpZGUgdmFsdWUsIGZvcmNpbmcgc2ls
ZW50IG91dHB1dCBldmVuIHdpdGhvdXQgLXMuDQo+Pj4+PiANCj4+Pj4+IFVzZSBNRkxBR1MgZm9y
IHNob3J0IG9wdGlvbnMgYW5kIGZpbHRlciBvdXQgYW55IGxvbmcgb3B0aW9ucyBiZWZvcmUNCj4+
Pj4+IHNlYXJjaGluZyBmb3IgInMiLiBUaGlzIHByZXNlcnZlcyAtcyBkZXRlY3Rpb24gd2hpbGUg
YXZvaWRpbmcgZmFsc2UNCj4+Pj4+IHBvc2l0aXZlcyBmcm9tIG92ZXJyaWRlcy4NCj4+Pj4+IA0K
Pj4+Pj4gRml4ZXM6IDRmZGI0YjcxYjE1MiAoInhlbi9idWlsZDogaW50cm9kdWNlIGlmX2NoYW5n
ZWQgYW5kIGlmX2NoYW5nZWRfcnVsZSIpDQo+Pj4+IA0KPj4+PiBJIGRvbid0IHRoaW5rIHRoaXMg
aXMgcXVpdGUgcmlnaHQ6IG1ha2UgNC40IHBvc3QtZGF0ZXMgdGhhdCBjb21taXQgYnkgYWJvdXQN
Cj4+Pj4gMi41IHllYXJzLg0KPj4+IA0KPj4+IFRydWUsIHdlIGNhbiByZW1vdmUgdGhlIGZpeGVz
IHRhZy4NCj4+PiANCj4+Pj4gDQo+Pj4+PiANCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5k
IE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+Pj4gDQo+Pj4+IE5pdDogTm8g
YmxhbmsgbGluZXMgYmV0d2VlbiB0YWdzLCBwbGVhc2UuDQo+Pj4gDQo+Pj4gQWNrDQo+Pj4gDQo+
Pj4+IA0KPj4+Pj4gLS0tIGEveGVuL01ha2VmaWxlDQo+Pj4+PiArKysgYi94ZW4vTWFrZWZpbGUN
Cj4+Pj4+IEBAIC0xMTMsMTAgKzExMywxMSBAQCBlbHNlDQo+Pj4+PiAgIFEgOj0gQA0KPj4+Pj4g
ZW5kaWYNCj4+Pj4+IA0KPj4+Pj4gLSMgSWYgdGhlIHVzZXIgaXMgcnVubmluZyBtYWtlIC1zIChz
aWxlbnQgbW9kZSksIHN1cHByZXNzIGVjaG9pbmcgb2YNCj4+Pj4+IC0jIGNvbW1hbmRzDQo+Pj4+
PiAtDQo+Pj4+PiAtaWZuZXEgKCQoZmluZHN0cmluZyBzLCQoZmlsdGVyLW91dCAtLSUsJChNQUtF
RkxBR1MpKSksKQ0KPj4+Pj4gKyMgSWYgdGhlIHVzZXIgaXMgcnVubmluZyBtYWtlIC1zIChzaWxl
bnQgbW9kZSksIHN1cHByZXNzIGVjaG9pbmcgb2YgY29tbWFuZHMuDQo+Pj4+PiArIyBVc2UgTUZM
QUdTIChzaG9ydCBvcHRpb25zIG9ubHkpLiBNQUtFRkxBR1MgbWF5IGluY2x1ZGUgdmFyaWFibGUg
b3ZlcnJpZGVzDQo+Pj4+IA0KPj4+PiBXaHkgInNob3J0IG9wdGlvbnMgb25seSI/IEl0IGxvb2tz
IHlvdSBtZWFuIHRvIGRlc2NyaWJlIHRoZSBtYWNybyBoZXJlLCBub3QNCj4+Pj4gd2hhdCdzIGRv
bmUgaW4gdGhlIGlmZXEoKTsgYXQgdGhlIHZlcnkgbGVhc3QgaXQgY2FuIGJlIHJlYWQgYm90aCB3
YXlzLg0KPj4+IA0KPj4+IFRydWUgc2hvdWxkIGJlLg0KPj4+IEZpbHRlciBzaG9ydCBvcHRpb25z
IGZyb20gTUZMQUdTLg0KPj4+IA0KPj4+PiANCj4+Pj4+ICsjIGFmdGVyIOKAnC0t4oCdIChHTlUg
bWFrZSBncmVhdGVyIHRoYW4gNC40KSwgd2hpY2ggY2FuIGNvbnRhaW4gYW4g4oCcc+KAnSBhbmQg
ZmFsc2VseQ0KPj4+PiANCj4+Pj4gNC40IGFuZCBuZXdlciByZWFsbHksIGFzIDQuNCBpdHNlbGYg
aXMgaW5jbHVkZWQgaW4gdGhlIGFmZmVjdGVkIHJhbmdlLiBJJ20NCj4+Pj4gbm90IHF1aXRlIHN1
cmUgYW55d2F5IHdoZXRoZXIgdGhlIGNvbW1lbnQgcmVhbGx5IG5lZWRzIHRvIGdvIHRoaXMgZmFy
LiBUaGlzDQo+Pj4+IGtpbmQgb2YgZGV0YWlsIGNhbiBiZSBoYWQgZnJvbSB0aGUgY29tbWl0IG1l
c3NhZ2Ugb2YgdGhpcyBjaGFuZ2UsIGlmIG5lZWRlZC4NCj4+Pj4gDQo+Pj4+IEhhcHB5IHRvIG1h
a2UgYWRqdXN0bWVudHMgd2hpbGUgY29tbWl0dGluZywgeWV0IEknbSBub3Qgc3VyZSB3aGV0aGVy
IHlvdQ0KPj4+PiBhZ3JlZSBpbiBhbGwgcmVnYXJkcy4NCj4+PiANCj4+PiBBZ3JlZS4NCj4+PiAN
Cj4+PiBJZiB5b3UgYWdyZWUgYW5kIGNhbiBkbyB0aGF0IG9uIGNvbW1pdCwgaSB3b3VsZCBqdXN0
IHB1dDoNCj4+PiANCj4+PiBGaWx0ZXIgc2hvcnQgb3B0aW9ucyBmcm9tIE1GTEFHUyBhcyBNQUtF
RkxBR1MgbWF5IGluY2x1ZGUgdmFyaWFibGUgb3ZlcnJpZGVzLg0KPj4gDQo+PiBBcmUgeW91IG9r
IHRvIGdpdmUgYSByZXZpZXdlZC1ieSBhbmQgZG8gdGhlIGNoYW5nZXMgb24gY29tbWl0IG9yIGRv
IHlvdSB3YW50IG1lIHRvDQo+PiBwdXNoIGEgdjIgd2l0aCB0aG9zZSBmaXhlcyA/DQo+IA0KPiBJ
J20gaW50ZW5kaW5nIHRvIG1ha2UgYWRqdXN0bWVudHMgd2hpbGUgY29tbWl0dGluZy4gVGhhdCB3
aWxsIG5vdyBiZSBuZXh0IHdlZWsgb25seSwNCj4gdGhvdWdoLg0KDQpXb3JrcyBmb3IgbWUgbm8g
cnVzaCwgaXQgaXMganVzdCB0aGF0IHlvdSBuZXZlciBzZW5kIGEgUi1iIG9uIHRoZSBNTCBvbiB0
aGlzIHBhdGNoLg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IEphbg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 08:15:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 08:15:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222889.1530568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voGzl-0007P4-FM; Fri, 06 Feb 2026 08:15:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222889.1530568; Fri, 06 Feb 2026 08: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 1voGzl-0007Ox-CA; Fri, 06 Feb 2026 08:15:17 +0000
Received: by outflank-mailman (input) for mailman id 1222889;
 Fri, 06 Feb 2026 08:15: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=wPAo=AK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1voGzk-0007Or-IS
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 08:15:16 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f40b9cf7-0333-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 09:15:10 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA0PR03MB5402.namprd03.prod.outlook.com (2603:10b6:806:b7::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 08:15:07 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 08: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: f40b9cf7-0333-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cZl1OIZCM93WhrAwePcVEoLK52b+swVbgd4Ux6HfhYDA97xLxbNsDmWdD9M+NPZAr9m6LkCzstMrewRGdheWK/EGYlavCtR++jXjM9XsbzNbhHcjeZ4zYoLs2Pl/lhqE7hq9JZlxY1AlMnsKE3WA8eqFWOuQky0DfkSB+AIlrEroZdmQj5FOPJ81Z5NhJc2zeLNG0tLvhfA7O+ZvgI3XimCzi5oj0lUc54cwPxfrN+t9IP+SqbgFRRuppKgFF5q/A1Z74Amsoa3efBxih3DTmyLxT4TB5B3dJ8a2hWtq10q0uCOojCksauzvLoSw5RiWUYCcqC620AXBTE3WDkp5yw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nFyHYnlCeziwmKXfVZeH/osv2ZsO8WuiR/tQbVYnudc=;
 b=HHVTv21gD9gKZc/HD/dw4RW5nDGslaYARIAfc+HsenF07FVu2J0wMxQ28FwugMgFNZdx574njzg7iLiSVVBjKLoIFn3UKf5yvjjxhPc5vO9MoteBmBw+OEB0NbWT2ah3hqOayGsDIMPFJAicZ7Ricp9s9icHCO9AYJ43Vt+2pQ0bGTJbpseRhlqJEmJp+ACYdhCa9BR8Qd5CSshWZE2zGR6k5Eu/WUf1Mq/NXqRTyxge5rsN3WA94DbMV9Qm3XPLD1I/8L41dQlsae/h7X5JPYoGK5gqHEBFTbyTlFTaEOEjvcejEauNQHuYaAvGHvwxQEQyUC5eVtvwNd1GdoTL1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nFyHYnlCeziwmKXfVZeH/osv2ZsO8WuiR/tQbVYnudc=;
 b=sdw3Fzz2U7mWRCLRXJ81jgTmXYmQdW9wKmXmZBs+yLf5rvG/DHpH8dK6pMuQ1LZfPM87u6qYERtprxEy6Xtos4ReomD1bmWdpW32gezesVbSAJGEAMQYbpz+BK9XjZXcsd7i/OXj9QJp3mYOFtk7QvzHmj6ipY6PsA9EfLsKSfQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 6 Feb 2026 09:15:03 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, jbeulich@suse.com,
	andrew.cooper3@citrix.com, jason.andryuk@amd.com,
	alejandro.garciavallejo@amd.com
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
Message-ID: <aYWjB-fxIzdk0K6_@Mac.lan>
References: <20260206015032.4159672-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260206015032.4159672-1-stefano.stabellini@amd.com>
X-ClientProxiedBy: MR1P264CA0202.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA0PR03MB5402:EE_
X-MS-Office365-Filtering-Correlation-Id: eb819473-a3d2-4263-777c-08de6557d6e1
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?cHRHVXpuYUNLMXI2Mmg0SCtBSWRLSElLUDBVSk9yMXdoNytIVEVxR3ZQVkpL?=
 =?utf-8?B?OGlYQ2sxMmt1QVkydTcvR2k2WkVhOGEzcDNCNWlpRThGcXo0RHVySVhZbFNq?=
 =?utf-8?B?bDVTWVhtMi82ZUIrWmxDelh1cFNTNmpxZVhiWlJDNFlWWEdib0Uyb2s4ajdh?=
 =?utf-8?B?MFo3ZXlETkhOQ05JMThRbEdxcGxXZmxTT0M3QTl1OWZSZTRwWDhBcGFQMVJq?=
 =?utf-8?B?U0U3ZElhRHFlMTR3eUlINFBRUFJoTUt2TkdrcHF3eXptQkpmZVJYMXpaT2Vx?=
 =?utf-8?B?VEFQSkpQRWFvaU9rLzJRbUlGdmplMzFDZExaa1pYa3hocmdOQ21xT1FmSzRH?=
 =?utf-8?B?R0FocHlYVlRuUkk5dDd4WTZ6Szl1V2xORDR0akU5bm5Mc3BrTzlpRTlrVTdt?=
 =?utf-8?B?VW1NZEtnbFpuRTVhbUJSRi9sV0tsdVNyUWdSbHVZd3RlS3NjNnNLLzIwMzQ2?=
 =?utf-8?B?VDZzY1U4Vy96QnMyaGRYbUl1b09LQlp4VWZucjV3L0tYeFpvNWthd3JyR2tI?=
 =?utf-8?B?b1BvSmR3cXpDRUR4QzU0NXlmRDJYQ3REdHNHL2dFU0E3S285NVFFVTR1elNt?=
 =?utf-8?B?NENHR0t2enltdUljV292c3FuUlBmdGlZbnNkd0FrNnNiUjdHeG5seHpuRkxx?=
 =?utf-8?B?YjNVaUQ1a1g4Ums0VUhjL3NzNnJuMnJIbDJoc3hNMWpNeTdDSUhDNWorV3Qz?=
 =?utf-8?B?MVZzU3R4Rmo5Z0hpZnRVZUdWd0c0OFpoMG9JZ0pFMFV2QWR2ZFlmdDdReDVm?=
 =?utf-8?B?WnJkUVNITkNaQjB6enVMcFlZRmcyMGZWNzFvazQ2RjBxWmRZV0MyUTk2YzI2?=
 =?utf-8?B?Y01uMGJGcGlZK1hNWFNDTE5sSWhKMGtkOE5FL3FDT05XZnA5R2RWaEJZNXlp?=
 =?utf-8?B?SkQvc25PS0ZNZ0Y2Q2hvT0l4ZnVteVZrWTBveTM2N3NDbEVTUDR4RHJqemhx?=
 =?utf-8?B?aUgvNndCTUJMTFZtaXM5OGNOOEdXZ3VLYWRpSGxSci9uREFrTFppaUw4WW0y?=
 =?utf-8?B?V2l2NUg3ejQ2YzB1R2diejgyZEhXaHM1VmlhdWU0elZ6WHBNTlk0WG1yQkZD?=
 =?utf-8?B?OEVrWGRRYzU0ZEh3d3lUVDBCeTJKMVMyVlRQMFU4UkpNTEJ0Z1Y0UWhzRHB4?=
 =?utf-8?B?aURyT2RTTjhPMGRuM055OHhCdFljaFZzOXJHdWFCdkdpam5IaHViZlJqKzNP?=
 =?utf-8?B?SjY1NGNOL0RmejczSENyOC9VN253bllXSGcreThkTSthcnM5MkNwdEcrRGQy?=
 =?utf-8?B?anF0RlNkcHJySndHSkdxZXpybGRnV0p1NG5XRGQyeWsxcFY0Q0F2N3M3NVdl?=
 =?utf-8?B?emV1U2ptZ20xWDZObUsxZXU5a0Y4RTNnMXJtQ3BJMUVsSFViejQ3Y2JkUHZM?=
 =?utf-8?B?WHVwQ3h0MzY4NW80bXViRXdwSEtuSzhkMHIzQjg4NDF0dU96UlFZVm03Y2tj?=
 =?utf-8?B?a3Rad2F1TDhKMjdudE5udVp1VzFjbCtnTzBKNlgvVyt2Z3VaMmd3K3BpOGlv?=
 =?utf-8?B?aFpBa282MVkvYVNDeHowcVQzSzVzU2lwenRCZVQ0aXJza3M5bTY4V2xTMXMy?=
 =?utf-8?B?UDhDaXlUcURqTkZ2c1dlbmFReVJPUUFJMnBXdDJYQzZEQnp1VFY0cUw2RGcr?=
 =?utf-8?B?SENjWUxNTnlTbjNtdGIzUWlsNVhKZWdNRTlQdXBhOXV5emZTMG9qbGNEbjJH?=
 =?utf-8?B?cStFM25pYUFIeFRwd1VzNlhjRWpQaElUckR0WFJMRlVBRjZaQ1VPZktQYkx5?=
 =?utf-8?B?dlA0ckg4UnZGU2ErVHZ3anhzOXM4THlENFdNdm1jK1hKUDhNUlhpeldPVUE0?=
 =?utf-8?B?b3lVYjUvRWxldk13UTJ4aTZDbDFQOVU2K3dVcXp4bERNQWJ3cDhQaGo3S0RV?=
 =?utf-8?B?aGsxeko4R0pWUUp1OFZRZTZmZlFhNXdlamZPbDJHTEY4L2hSMEJZYjA0dHhD?=
 =?utf-8?B?MFQwY3ZCM1pEYzZtdXRaUlBUaVl6cTIwT1Avc0d4bDdpUDFEL3lCZlFDNThJ?=
 =?utf-8?B?WmlRY0tqZTIxdWNuUDk4dGFzbUpMVHZZdVpYMjAxUGYra2N1ZVdZYjE3V0tJ?=
 =?utf-8?B?YU5VUmhENmh6REtmVGJORUZWUVJrZEJoMzk2QnV1ejBmMTZjQlVHT281U3Iz?=
 =?utf-8?Q?G5bU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ekxoYnhGTytHWUNWSmRaZmlXaFpzeTF0T3lkcVRvQlllaUJDMFlCcDdrRy8y?=
 =?utf-8?B?UUxBZktVUE9iNlUwKzRkTjBFaUQ3YnVnMHJyMlo2aWtwcGs0T3NNcndOelRC?=
 =?utf-8?B?WnpGNkFwTHIxcTMyeEx2L2NvREx2OTRvNHhaNjhmeUlJbldLcjhZMi9kQTNY?=
 =?utf-8?B?QVVDZkdmME1Jeks4U09nTVdpKzFsRVcvK0tHWGNtVy9QYUQwOGNWM0ZoRUhW?=
 =?utf-8?B?bjlKdExxUmRXMThGaThJdWRiTUcxc2FYYnN2dGsrdkRwTEx4djduRWwzY3V1?=
 =?utf-8?B?UXRGdlN4dmQ0VlhCVTJSdDlWemxaMFU5RFQzN3E2S2ljd2lTYWhocXdURnl4?=
 =?utf-8?B?NVZ1NzJYZ3hIUC9QSU5aYkNxMkNUMEJWVDIvTHJjMHd0bmtSSksvUUNnUVpm?=
 =?utf-8?B?L3VqczhIbDRPOEZPem5tZEtranVrOFRJY2swbVpXRVZEQ2NDdVVUV1RzM3hV?=
 =?utf-8?B?OVZPMmlHL0tFc1BKVzJ2dmJacVZ6TnJwZGFyM3BrWElqUWZ3Z25VQ3FaZUtz?=
 =?utf-8?B?QnI5ZC9nV01OZ09YdkxuUVRXMnNkVGhaVWNCM0lRQzh3YkM1NnRjY09NbCtn?=
 =?utf-8?B?cXh3MmJNVEFYcHR5aFZ4UkF6RS94dVlqZ0V4RTZxMUQwSDdtRHFRWE5LMVA4?=
 =?utf-8?B?SDROQkpZV2NkSDRrZUZoMTJUeUpUSFlWdEs5aUJFcWxNLzU0cmMwUjgwYm9m?=
 =?utf-8?B?LzV5djkyck9xSi9PS0drZlhicThyZXBuYnp3WXJ4c0JOd2tlMGlrMThoaXk1?=
 =?utf-8?B?OVpxSWErYU5wYUlyZGxTWUh1NmdmamZJVDVYcG9sZGZhQlhSUHZoN3pIVHBt?=
 =?utf-8?B?bi9DUnNiY2VYN1BqaHZZbEhrRzhPREdZZGk4M0xvWEtMRzkrSFhITTgyY2FQ?=
 =?utf-8?B?cURaRittYlRrSDdjZTVxNnppcEZDcFgyYXI4NjlqdU1yUC9jV3ZIS2pLbUp3?=
 =?utf-8?B?VEc5V21FMWl5Ymo0dXE1UEV5Z2hkbFRBcCsvdGZDSmhUNHYvR0lnOThRUFVQ?=
 =?utf-8?B?dS9PZEJMSU1tSURnUG9NQjVMdmpDNlBDMnI4UmJvUTlxUjZoZFgwOWpKOHZI?=
 =?utf-8?B?bjEvUnpDV2hWUDdtREVqUFZtY0pkZG5ZQmtqdEN3VTBLMFZBTnZ3cm01cEZw?=
 =?utf-8?B?KzFaeXd6aGtEcEVJR1hlUjRoVFVHTG50YVMxM0phMHRDZFF1L00xMWw3NTdS?=
 =?utf-8?B?MXJmTUc0OHVsTnlZWVQrUVRzalBLTDVmVGk3MWhIdXhINlJsVTNhU1hqTDRP?=
 =?utf-8?B?WU9EeGZRN0pHa0d0NVB3eFd6K3N4bzVKYkt1L1VORHozS1FQK0hjQ2ZMYUNQ?=
 =?utf-8?B?MWR6SlJKTk1iQlRScVJNQ3FYazhDWDNxcG42RlFGYjlLMXRuejhtN3JGODhB?=
 =?utf-8?B?MXdrbHpYeXVPV0t2bUJFMXlLc2NNS1NFRE1KV05EM1ZkNGMxRG5CeUp0Qkk3?=
 =?utf-8?B?SVMyKzBxaFROQko1dHhDMko4NGVYcG1DKzNqWUNmMit3a0hoNkNoNGtrRjly?=
 =?utf-8?B?aGsxUW1IQitXOW44NVJNcFhtU3ZyOXhFdFRTTk4zbWF6blRNdW1HeTBSbXJw?=
 =?utf-8?B?a1ZVMGdDemhZME0vUHl6L2JQSmI2NXRLUVlVb1ZsYldpR0xPSzZLYUJvQkdZ?=
 =?utf-8?B?WFRzTEY4L2dSb0VSN2lWaHJiSGdsUktranU1b2hhOVJMTjNGVU9JU2tqTjhW?=
 =?utf-8?B?NW5adm1UUTNHSDNEZjRBak90MlhaWU9hait2ZTJPN3VDWU5JZ3pOdG1KeEtp?=
 =?utf-8?B?c0VEVWpTMkpzbldYTGpYM09Wb0NLUzVuMDlWUElocWNRK2ZMd3hMTnVvRVNs?=
 =?utf-8?B?NjBlQ2tlTm8wL2tqTTgwcmdGeUUwODV3ZFhHQmViTmM3ZHdzNDJPeW1mMmZj?=
 =?utf-8?B?OUU4b2RZMDBhK3lNaklFVzBCRVl5dVlRY3VFMmRqcnhrU2xQTHRDR2RmTzV0?=
 =?utf-8?B?OSsrWDV3YUc3S3N2bzBvVW9JemNqdWg5ajR3YUx6eDRyMUlhbzFIYytYd0ND?=
 =?utf-8?B?emNmRXZvZ29kRjEvTG9vUjBqb3hUai84d1hIc3BtV3A3VWNGNWVhOW9TVytG?=
 =?utf-8?B?OUQ1bzBDZ1R4Y2dkWWdlT3B1Y1RtVWd2bDJWSDBoazl6ZmxUVW5DOFkzUzFv?=
 =?utf-8?B?a0NKSFVvQTFSc2UydWtuM1NaV0RlVXdwaHYxTUpLR0d0ZXh4Q3JWNkQ2bERp?=
 =?utf-8?B?YWdBSDBhZTQ4QTlEUnY1U0F3aTl5R0hTNzlpYnVUdGZsMVd2c1owQ2hMUkZB?=
 =?utf-8?B?U1g4dTRVT05HZnJXdUZkK2JBeGJzRnNaVlpTbzdRcWw1NnVpamtjV3NWV2Yr?=
 =?utf-8?B?L2VjeGxEdlVhUEpUcUVHZkg1VWNwSnEySTNzOS9qM0FjSHB6eHJoQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eb819473-a3d2-4263-777c-08de6557d6e1
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 08:15:07.6455
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Gvj4eaQZWo5SEW5T1mhYOyR9RMhb7XfgtsBlvCUTL1xpkOrmS8lQYS9AYJ6NrzOW+g00cGhXKpZ5Ul2ssS+w2g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5402

On Thu, Feb 05, 2026 at 05:50:32PM -0800, Stefano Stabellini wrote:
> Introduce CONFIG_NESTED_VIRT (default y, requires EXPERT to disable)
> to allow nested virtualization support to be disabled at build time.
> This is useful for embedded or safety-focused deployments where
> nested virtualization is not needed, reducing code size and attack
> surface.
> 
> When CONFIG_NESTED_VIRT=n, the following source files are excluded:
> - arch/x86/hvm/nestedhvm.c
> - arch/x86/hvm/svm/nestedsvm.c
> - arch/x86/hvm/vmx/vvmx.c
> - arch/x86/mm/nested.c
> - arch/x86/mm/hap/nested_hap.c
> - arch/x86/mm/hap/nested_ept.c
> 
> Add inline stubs where needed in headers.
> 
> No functional change when CONFIG_NESTED_VIRT=y.

You also need to adjust arch_sanitise_domain_config() so it refuses to
create domains with the XEN_DOMCTL_CDF_nested_virt flag set when
CONFIG_NESTED_VIRT=n.  If you do that I think a bunch of the dummy
helpers that you add when CONFIG_NESTED_VIRT=n should also gain an
ASSERT_UNREACHABLE().

And IMO you will also need to add a new XEN_SYSCTL_PHYSCAP_nestedhvm
(or alike) to signal the toolstack whether the nested HVM feature is
available.  Much like we do for HAP/Shadow/gnttab availability.

> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
>  xen/arch/x86/hvm/Kconfig                 | 10 ++++++
>  xen/arch/x86/hvm/Makefile                |  2 +-
>  xen/arch/x86/hvm/svm/Makefile            |  2 +-
>  xen/arch/x86/hvm/svm/nestedhvm.h         | 44 +++++++++++++++++++++---
>  xen/arch/x86/hvm/svm/svm.c               |  6 ++++
>  xen/arch/x86/hvm/vmx/Makefile            |  2 +-
>  xen/arch/x86/hvm/vmx/vmx.c               | 10 ++++--
>  xen/arch/x86/include/asm/hvm/nestedhvm.h | 41 +++++++++++++++++-----
>  xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 30 ++++++++++++++++
>  xen/arch/x86/mm/Makefile                 |  2 +-
>  xen/arch/x86/mm/hap/Makefile             |  4 +--
>  xen/arch/x86/mm/p2m.h                    |  6 ++++
>  12 files changed, 137 insertions(+), 22 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index f32bf5cbb7..12b5df4710 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,14 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
>  
> +config NESTED_VIRT
> +	bool "Nested virtualization support" if EXPERT
> +	depends on AMD_SVM || INTEL_VMX
> +	default y
> +	help
> +	  Enable nested virtualization, allowing guests to run their own
> +	  hypervisors. This requires hardware support.
> +
> +	  If unsure, say Y.

If we go that route, I think nested virt should become off by default.
It's not security supported, and known to be broken in many areas.

I'm also unsure about whether this wants to be gated under EXPERT.
But I'm not sure I'm any good at knowing whether something should be
under EXPERT or not.

> +
>  endif
> diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
> index f34fb03934..b8a0a68624 100644
> --- a/xen/arch/x86/hvm/Makefile
> +++ b/xen/arch/x86/hvm/Makefile
> @@ -18,7 +18,7 @@ obj-y += irq.o
>  obj-y += mmio.o
>  obj-$(CONFIG_VM_EVENT) += monitor.o
>  obj-y += mtrr.o
> -obj-y += nestedhvm.o
> +obj-$(CONFIG_NESTED_VIRT) += nestedhvm.o
>  obj-y += pmtimer.o
>  obj-y += quirks.o
>  obj-y += rtc.o
> diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefile
> index 8a072cafd5..92418e3444 100644
> --- a/xen/arch/x86/hvm/svm/Makefile
> +++ b/xen/arch/x86/hvm/svm/Makefile
> @@ -2,6 +2,6 @@ obj-y += asid.o
>  obj-y += emulate.o
>  obj-bin-y += entry.o
>  obj-y += intr.o
> -obj-y += nestedsvm.o
> +obj-$(CONFIG_NESTED_VIRT) += nestedsvm.o
>  obj-y += svm.o
>  obj-y += vmcb.o
> diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nestedhvm.h
> index 9bfed5ffd7..a102c076ea 100644
> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> @@ -26,6 +26,13 @@
>  #define nsvm_efer_svm_enabled(v) \
>      (!!((v)->arch.hvm.guest_efer & EFER_SVME))
>  
> +#define NSVM_INTR_NOTHANDLED     3
> +#define NSVM_INTR_NOTINTERCEPTED 2
> +#define NSVM_INTR_FORCEVMEXIT    1
> +#define NSVM_INTR_MASKED         0
> +
> +#ifdef CONFIG_NESTED_VIRT
> +
>  int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr);
>  void nestedsvm_vmexit_defer(struct vcpu *v,
>      uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2);
> @@ -57,13 +64,40 @@ int cf_check nsvm_hap_walk_L1_p2m(
>      struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
>      uint8_t *p2m_acc, struct npfec npfec);
>  
> -#define NSVM_INTR_NOTHANDLED     3
> -#define NSVM_INTR_NOTINTERCEPTED 2
> -#define NSVM_INTR_FORCEVMEXIT    1
> -#define NSVM_INTR_MASKED         0
> -
>  int nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack intack);
>  
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
> +{
> +    return 0;
> +}
> +static inline void nestedsvm_vmexit_defer(struct vcpu *v,
> +    uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2) { }
> +static inline enum nestedhvm_vmexits nestedsvm_vmexit_n2n1(struct vcpu *v,
> +    struct cpu_user_regs *regs)
> +{
> +    return NESTEDHVM_VMEXIT_ERROR;
> +}
> +static inline enum nestedhvm_vmexits nestedsvm_check_intercepts(struct vcpu *v,
> +    struct cpu_user_regs *regs, uint64_t exitcode)
> +{
> +    return NESTEDHVM_VMEXIT_ERROR;
> +}
> +static inline void svm_nested_features_on_efer_update(struct vcpu *v) { }
> +static inline void svm_vmexit_do_clgi(struct cpu_user_regs *regs,
> +                                      struct vcpu *v) { }
> +static inline void svm_vmexit_do_stgi(struct cpu_user_regs *regs,
> +                                       struct vcpu *v) { }
> +static inline bool nestedsvm_gif_isset(struct vcpu *v) { return true; }
> +static inline int nestedsvm_vcpu_interrupt(struct vcpu *v,
> +                                           const struct hvm_intack intack)
> +{
> +    return NSVM_INTR_NOTINTERCEPTED;
> +}
> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  #endif /* __X86_HVM_SVM_NESTEDHVM_PRIV_H__ */
>  
>  /*
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 18ba837738..0234b57afb 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -46,6 +46,10 @@
>  
>  void noreturn svm_asm_do_resume(void);
>  
> +#ifndef CONFIG_NESTED_VIRT
> +void asmlinkage nsvm_vcpu_switch(void) { }
> +#endif
> +
>  u32 svm_feature_flags;
>  
>  /*
> @@ -2465,6 +2469,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
>      .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
>      .get_insn_bytes       = svm_get_insn_bytes,
>  
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
>      .nhvm_vcpu_destroy = nsvm_vcpu_destroy,
>      .nhvm_vcpu_reset = nsvm_vcpu_reset,
> @@ -2474,6 +2479,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
>      .nhvm_vmcx_hap_enabled = nsvm_vmcb_hap_enabled,
>      .nhvm_intr_blocked = nsvm_intr_blocked,
>      .nhvm_hap_walk_L1_p2m = nsvm_hap_walk_L1_p2m,
> +#endif
>  
>      .get_reg = svm_get_reg,
>      .set_reg = svm_set_reg,
> diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makefile
> index 04a29ce59d..902564b3e2 100644
> --- a/xen/arch/x86/hvm/vmx/Makefile
> +++ b/xen/arch/x86/hvm/vmx/Makefile
> @@ -3,4 +3,4 @@ obj-y += intr.o
>  obj-y += realmode.o
>  obj-y += vmcs.o
>  obj-y += vmx.o
> -obj-y += vvmx.o
> +obj-$(CONFIG_NESTED_VIRT) += vvmx.o
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 82c55f49ae..252f27322b 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -55,6 +55,10 @@
>  #include <public/hvm/save.h>
>  #include <public/sched.h>
>  
> +#ifndef CONFIG_NESTED_VIRT
> +void asmlinkage nvmx_switch_guest(void) { }
> +#endif
> +
>  static bool __initdata opt_force_ept;
>  boolean_param("force-ept", opt_force_ept);
>  
> @@ -2033,7 +2037,7 @@ static void nvmx_enqueue_n2_exceptions(struct vcpu *v,
>                   nvmx->intr.intr_info, nvmx->intr.error_code);
>  }
>  
> -static int cf_check nvmx_vmexit_event(
> +static int cf_check __maybe_unused nvmx_vmexit_event(
>      struct vcpu *v, const struct x86_event *event)
>  {
>      nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
> @@ -2933,6 +2937,7 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
>      .handle_cd            = vmx_handle_cd,
>      .set_info_guest       = vmx_set_info_guest,
>      .set_rdtsc_exiting    = vmx_set_rdtsc_exiting,
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise = nvmx_vcpu_initialise,
>      .nhvm_vcpu_destroy    = nvmx_vcpu_destroy,
>      .nhvm_vcpu_reset      = nvmx_vcpu_reset,
> @@ -2942,8 +2947,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
>      .nhvm_vcpu_vmexit_event = nvmx_vmexit_event,
>      .nhvm_intr_blocked    = nvmx_intr_blocked,
>      .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,
> +#endif
> +    .update_vlapic_mode = vmx_vlapic_msr_changed,
>  #ifdef CONFIG_VM_EVENT
>      .enable_msr_interception = vmx_enable_msr_interception,
>  #endif
> diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> index ea2c1bc328..0372974b24 100644
> --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> @@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
>  /* Nested HVM on/off per domain */
>  static inline bool nestedhvm_enabled(const struct domain *d)
>  {
> -    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
> +           (d->options & XEN_DOMCTL_CDF_nested_virt);
>  }
>  
> +/* Nested paging */
> +#define NESTEDHVM_PAGEFAULT_DONE       0
> +#define NESTEDHVM_PAGEFAULT_INJECT     1
> +#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> +#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> +#define NESTEDHVM_PAGEFAULT_MMIO       4
> +#define NESTEDHVM_PAGEFAULT_RETRY      5
> +#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> +
> +#ifdef CONFIG_NESTED_VIRT
> +
>  /* Nested VCPU */
>  int nestedhvm_vcpu_initialise(struct vcpu *v);
>  void nestedhvm_vcpu_destroy(struct vcpu *v);
> @@ -38,14 +50,6 @@ bool nestedhvm_vcpu_in_guestmode(struct vcpu *v);
>  #define nestedhvm_vcpu_exit_guestmode(v)  \
>      vcpu_nestedhvm(v).nv_guestmode = 0
>  
> -/* Nested paging */
> -#define NESTEDHVM_PAGEFAULT_DONE       0
> -#define NESTEDHVM_PAGEFAULT_INJECT     1
> -#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> -#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> -#define NESTEDHVM_PAGEFAULT_MMIO       4
> -#define NESTEDHVM_PAGEFAULT_RETRY      5
> -#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
>  int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
>                                      struct npfec npfec);
>  
> @@ -59,6 +63,25 @@ unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
>  
>  void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m);
>  
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline int nestedhvm_vcpu_initialise(struct vcpu *v) { return 0; }
> +static inline void nestedhvm_vcpu_destroy(struct vcpu *v) { }
> +static inline void nestedhvm_vcpu_reset(struct vcpu *v) { }
> +static inline bool nestedhvm_vcpu_in_guestmode(struct vcpu *v) { return false; }
> +static inline int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
> +                                                  struct npfec npfec)
> +{
> +    return NESTEDHVM_PAGEFAULT_L0_ERROR;
> +}
> +#define nestedhvm_vcpu_enter_guestmode(v) do { } while (0)
> +#define nestedhvm_vcpu_exit_guestmode(v)  do { } while (0)
> +#define nestedhvm_paging_mode_hap(v) false
> +#define nestedhvm_vmswitch_in_progress(v) false
> +static inline void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m) { }
> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  static inline bool nestedhvm_is_n2(struct vcpu *v)
>  {
>      if ( !nestedhvm_enabled(v->domain) ||
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> index da10d3fa96..8dc876a4c2 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> @@ -73,6 +73,8 @@ union vmx_inst_info {
>      u32 word;
>  };
>  
> +#ifdef CONFIG_NESTED_VIRT
> +
>  int cf_check nvmx_vcpu_initialise(struct vcpu *v);
>  void cf_check nvmx_vcpu_destroy(struct vcpu *v);
>  int cf_check nvmx_vcpu_reset(struct vcpu *v);
> @@ -199,5 +201,33 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga,
>                          uint64_t *exit_qual, uint32_t *exit_reason);
>  int nvmx_cpu_up_prepare(unsigned int cpu);
>  void nvmx_cpu_dead(unsigned int cpu);
> +
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline void nvmx_update_exec_control(struct vcpu *v, u32 value) { }
> +static inline void nvmx_update_secondary_exec_control(struct vcpu *v,
> +                                                      unsigned long value) { }
> +static inline void nvmx_update_exception_bitmap(struct vcpu *v,
> +                                                unsigned long value) { }
> +static inline u64 nvmx_get_tsc_offset(struct vcpu *v) { return 0; }
> +static inline void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr) { }
> +static inline bool nvmx_intercepts_exception(struct vcpu *v, unsigned int vector,
> +                                             int error_code) { return false; }
> +static inline int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
> +                                         unsigned int exit_reason) { return 0; }
> +static inline void nvmx_idtv_handling(void) { }
> +static inline int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
> +{
> +    return 0;
> +}
> +static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
> +                                       unsigned int exit_reason) { return 0; }
> +static inline int nvmx_cpu_up_prepare(unsigned int cpu) { return 0; }
> +static inline void nvmx_cpu_dead(unsigned int cpu) { }
> +
> +#define get_vvmcs(vcpu, encoding) 0
> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  #endif /* __ASM_X86_HVM_VVMX_H__ */
>  
> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> index 960f6e8409..aa15811c2e 100644
> --- a/xen/arch/x86/mm/Makefile
> +++ b/xen/arch/x86/mm/Makefile
> @@ -7,7 +7,7 @@ obj-$(CONFIG_SHADOW_PAGING) += guest_walk_4.o
>  obj-$(CONFIG_VM_EVENT) += mem_access.o
>  obj-$(CONFIG_MEM_PAGING) += mem_paging.o
>  obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
> -obj-$(CONFIG_HVM) += nested.o
> +obj-$(CONFIG_NESTED_VIRT) += nested.o
>  obj-$(CONFIG_HVM) += p2m.o
>  obj-y += p2m-basic.o
>  obj-$(CONFIG_INTEL_VMX) += p2m-ept.o
> diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile
> index 67c29b2162..de1bb3abde 100644
> --- a/xen/arch/x86/mm/hap/Makefile
> +++ b/xen/arch/x86/mm/hap/Makefile
> @@ -2,5 +2,5 @@ obj-y += hap.o
>  obj-y += guest_walk_2.o
>  obj-y += guest_walk_3.o
>  obj-y += guest_walk_4.o
> -obj-y += nested_hap.o
> -obj-$(CONFIG_INTEL_VMX) += nested_ept.o
> +obj-$(CONFIG_NESTED_VIRT) += nested_hap.o
> +obj-$(CONFIG_NESTED_VIRT) += nested_ept.o

With this change nested_ept.o is no longer gated explicitly on
CONFIG_INTEL_VMX, which could cause build issues if you have a Kconfig
like:

CONFIG_INTEL_VMX=n
CONFIG_AMD_SVM=y
CONFIG_NESTED_VIRT=y

Does the code in nested_ept.o have dependencies on other files gated
by CONFIG_INTEL_VMX, and hence would fail at the linking stage?  And
even if it builds, the code in nested_ept.o would be unreachable I
expect.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 08:17:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 08:17:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222902.1530577 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voH1v-00087P-TN; Fri, 06 Feb 2026 08:17:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222902.1530577; Fri, 06 Feb 2026 08:17: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 1voH1v-00087I-Qo; Fri, 06 Feb 2026 08:17:31 +0000
Received: by outflank-mailman (input) for mailman id 1222902;
 Fri, 06 Feb 2026 08:17: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=qUCI=AK=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1voH1u-00084v-Rd
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 08:17:30 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 452dc470-0334-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 09:17:26 +0100 (CET)
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 2ED0B339;
 Fri,  6 Feb 2026 00:17:19 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.24])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F048F3F740;
 Fri,  6 Feb 2026 00:17:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 452dc470-0334-11f1-9ccf-f158ae23cfc8
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>
Subject: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Date: Fri,  6 Feb 2026 09:17:17 +0100
Message-ID: <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen does not provide a Darwin build configuration for selecting
GNU tool definitions. On macOS, the tools we use are either GNU
compatible or we only rely on features supported by Mac OS, so
using the GNU tool definitions is appropriate.

Add config/Darwin.mk to include StdGNU.mk and force
XEN_COMPILE_ARCH=Darwin, ensuring Darwin builds always follow
the cross-compile path as we depend on the Linux ABI so compiling
on Mac OS is always a cross compilation case.

An example of how to build the hypervisor for arm64 on Mac OS
(tools cannot be build for now) using a compiler from brew:
- brew install aarch64-elf-gcc
- cd xen
- make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v2:
- Subject was "xen: Add macOS hypervisor build configuration"
- Update Darwin.mk comments to more accurate versions (Jan)
- Remove the build-on-macos help as we have no dependency on anything
  coming from brew anymore and the toolchain can be retrieved by lots of
  other solutions than brew on mac os. Switch to a simple doc in the
  commit message instead
---
 config/Darwin.mk | 7 +++++++
 1 file changed, 7 insertions(+)
 create mode 100644 config/Darwin.mk

diff --git a/config/Darwin.mk b/config/Darwin.mk
new file mode 100644
index 000000000000..427588eaf899
--- /dev/null
+++ b/config/Darwin.mk
@@ -0,0 +1,7 @@
+# Use GNU tool definitions as the tools we are using are either GNU compatible
+# or we only use features which are supported on Mac OS.
+include $(XEN_ROOT)/config/StdGNU.mk
+
+# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
+# Force COMPILE_ARCH to a fake value to make sure it is always the case.
+XEN_COMPILE_ARCH = Darwin
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 08:58:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 08:58:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222971.1530628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHev-0005Iu-75; Fri, 06 Feb 2026 08:57:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222971.1530628; Fri, 06 Feb 2026 08:57:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHev-0005In-3a; Fri, 06 Feb 2026 08:57:49 +0000
Received: by outflank-mailman (input) for mailman id 1222971;
 Fri, 06 Feb 2026 08:57: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=D6vR=AK=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1voHeu-0005Ih-L4
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 08:57:48 +0000
Received: from jpms-ob01.noc.sony.co.jp (jpms-ob01.noc.sony.co.jp
 [2001:cf8:ace:41::4]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3b88d49-0339-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 09:57:44 +0100 (CET)
Received: from unknown (HELO jpmta-ob02.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::7])
 by jpms-ob01.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Feb 2026 17:57:37 +0900
Received: from unknown (HELO JPC00244420)
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob02.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Feb 2026 17:57:36 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3b88d49-0339-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770368264; x=1801904264;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=pC/nHVWjvFbxMPwxtThf4k2nFuf59ielNHdSV23cY9U=;
  b=A2Lo627pG2vqp+4SHLFm5bAOIWjFteYDn42/glFbGGE7Q5B4bi15fK/2
   rSFv2KpZYzyW+yYGrmhLXbW7T712+8ExOAKUYStMwx7zLe0w0ljM7gPsy
   WFEX0B+pYjs0XiLCNpep2XDvsMx5UJG3NXgJXVfiEumlfldR92vsbjovc
   +DZP0rFMq8CWaYoufarfJygRM0apL7unwcbOL1CnpJv9oFuOQxvLQEuY+
   wy9u1oV/w1MNbEhcrNNngosiS0LTXx7iMvaVHKnqzj8+JSFdneHucpIp3
   romHPmPS0ECqp59CiD8cPYfRwU4cuaIytOFVnZ6PAJ5kaSYMDzIBRCnLf
   A==;
X-IronPort-AV: E=Sophos;i="6.21,276,1763391600"; 
   d="scan'208";a="578880254"
Date: Fri, 6 Feb 2026 17:57:31 +0900
From: Shashank Balaji <shashank.mahadasyam@sony.com>
To: Sohil Mehta <sohil.mehta@intel.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>, stable@vger.kernel.org
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Message-ID: <aYWs-wvDuS53BHMe@JPC00244420>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
 <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>
 <aYMOqXTYMJ_IlEFA@JPC00244420>
 <722b53a7-7560-4a1b-ab26-73eeed3dffa5@intel.com>
 <aYQzhRN83rJx6DSb@JPC00244420>
 <e5ac3272-795b-488c-b767-290fd50f2105@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <e5ac3272-795b-488c-b767-290fd50f2105@intel.com>

On Thu, Feb 05, 2026 at 03:18:58PM -0800, Sohil Mehta wrote:
> On 2/4/2026 10:07 PM, Shashank Balaji wrote:
> > On Wed, Feb 04, 2026 at 10:53:28AM -0800, Sohil Mehta wrote:
> 
> >> It's a bit odd then that the firmware chooses to enable x2apic without
> >> the OS requesting it.
> > 
> > Well, the firmware has a setting saying "Enable x2apic", which was
> > enabled. So it did what the setting says
> > 
> 
> The expectation would be that firmware would restore to the same state
> before lapic_suspend().

I'm a bit out of my depth here, but I went looking around, and this is from the
latest ACPI spec (v6.6) [1]:

	When executing from the power-on reset vector as a result of waking
	from an S2 or S3 sleep state, the platform firmware performs only the
	hardware initialization required to restore the system to either the
	state the platform was in prior to the initial operating system boot,
	or to the pre-sleep configuration state. In multiprocessor systems,
	non-boot processors should be placed in the same state as prior to the
	initial operating system boot.

	(further ahead)

	 If this is an S2 or S3 wake, then the platform runtime firmware
	 restores minimum context of the system before jumping to the waking
	 vector. This includes:

	 	CPU configuration. Platform runtime firmware restores the
		pre-sleep configuration or initial boot configuration of each
		CPU (MSR, MTRR, firmware update, SMBase, and so on). Interrupts
		must be disabled (for IA-32 processors, disabled by CLI
		instruction).

		(and other things)

I suppose, in my case, the firmware is restoring initial boot
configuration on S3 resume. And initial boot configuration of x2apic is
set from the firmware's UI "Enable x2apic".

> Maybe a warning would be useful to encourage firmware to fix this going
> forward. I don't have a strong preference on the wording, but how about?
> 
> pr_warn_once("x2apic unexpectedly re-enabled by the firmware during
> resume.\n");

At least as per the spec, it's not something the firmware needs to fix,
and it's not unexpected re-enablement.

Am I missing something?

But it _is_ surprising that this bug went unnoticed for so long :)

[1] https://uefi.org/specs/ACPI/6.6/16_Waking_and_Sleeping.html#initialization


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 09:02:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 09:02:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222983.1530638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHj6-0006r2-M8; Fri, 06 Feb 2026 09:02:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222983.1530638; Fri, 06 Feb 2026 09: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 1voHj6-0006qv-JA; Fri, 06 Feb 2026 09:02:08 +0000
Received: by outflank-mailman (input) for mailman id 1222983;
 Fri, 06 Feb 2026 09:02: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=YaI+=AK=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1voHj5-0006qi-JX
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 09:02:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 82a9b045-033a-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 10:02:06 +0100 (CET)
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 2D0B6339;
 Fri,  6 Feb 2026 01:01:59 -0800 (PST)
Received: from e134099.cambridge.arm.com (e134099.arm.com [10.1.198.34])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 981723F778;
 Fri,  6 Feb 2026 01:02:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82a9b045-033a-11f1-b161-2bf370ae4941
From: Harry Ramsey <harry.ramsey@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 0/3] Fifth MPU Series
Date: Fri,  6 Feb 2026 09:01:52 +0000
Message-ID: <20260206090155.68466-1-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series continues to further the ongoing work to introduce support
for MPU systems in Xen.

The patches in this series aim to implement MPU specific p2m functions.

Harry Ramsey (2):
  arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
  arm/mpu: Implement p2m tables

Penny Zheng (1):
  arm/mpu: implement setup_virt_paging for MPU system

 docs/misc/arm/device-tree/booting.txt    | 11 ++++
 xen/arch/arm/arm64/mpu/p2m.c             | 67 +++++++++++++++++++++-
 xen/arch/arm/dom0less-build.c            | 25 +++++++++
 xen/arch/arm/domain.c                    | 16 ++++++
 xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
 xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
 xen/arch/arm/include/asm/cpufeature.h    | 13 ++++-
 xen/arch/arm/include/asm/domain.h        |  9 +++
 xen/arch/arm/include/asm/mpu.h           |  5 ++
 xen/arch/arm/include/asm/mpu/p2m.h       | 12 ++++
 xen/arch/arm/include/asm/p2m.h           |  5 ++
 xen/arch/arm/include/asm/processor.h     | 11 ++++
 xen/arch/arm/mpu/p2m.c                   | 71 +++++++++++++++++++++++-
 xen/include/public/arch-arm.h            |  4 ++
 15 files changed, 250 insertions(+), 7 deletions(-)

--
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 09:02:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 09:02:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222984.1530648 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHj9-00075R-SY; Fri, 06 Feb 2026 09:02:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222984.1530648; Fri, 06 Feb 2026 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 1voHj9-00075E-Pf; Fri, 06 Feb 2026 09:02:11 +0000
Received: by outflank-mailman (input) for mailman id 1222984;
 Fri, 06 Feb 2026 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=YaI+=AK=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1voHj8-0006qi-LM
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 09:02:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 84bf41e6-033a-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 10:02:09 +0100 (CET)
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 B81BF1516;
 Fri,  6 Feb 2026 01:02:02 -0800 (PST)
Received: from e134099.cambridge.arm.com (e134099.arm.com [10.1.198.34])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A5B333F778;
 Fri,  6 Feb 2026 01:02:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84bf41e6-033a-11f1-b161-2bf370ae4941
From: Harry Ramsey <harry.ramsey@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>,
	Penny Zheng <penny.zheng@arm.com>,
	Wei Chen <wei.chen@arm.com>,
	Luca Fancellu <luca.fancellu@arm.com>,
	Hari Limaye <hari.limaye@arm.com>
Subject: [PATCH 1/3] arm/mpu: implement setup_virt_paging for MPU system
Date: Fri,  6 Feb 2026 09:01:53 +0000
Message-ID: <20260206090155.68466-2-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206090155.68466-1-harry.ramsey@arm.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Penny Zheng <Penny.Zheng@arm.com>

For MMU system, setup_virt_paging is used to configure stage 2 address
translation regime, like IPA bits, VMID allocator set up, etc.
Some could be inherited in MPU system, like VMID allocator set up, etc.

For MPU system, we could have the following memory translation regime:
- PMSAv8-64 at both EL1/EL0 and EL2 (default)
- VMSAv8-64 at EL1/EL0 and PMSAv8-64 at EL2 (enabled with device tree
  proprty v8r_el1_msa)

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
Signed-off-by: Wei Chen <wei.chen@arm.com>
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Signed-off-by: Hari Limaye <hari.limaye@arm.com>
Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
 xen/arch/arm/arm64/mpu/p2m.c             | 67 +++++++++++++++++++++++-
 xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
 xen/arch/arm/include/asm/cpufeature.h    | 13 +++--
 xen/arch/arm/include/asm/mpu/p2m.h       | 12 +++++
 xen/arch/arm/include/asm/p2m.h           |  5 ++
 xen/arch/arm/include/asm/processor.h     | 11 ++++
 6 files changed, 108 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/arm64/mpu/p2m.c b/xen/arch/arm/arm64/mpu/p2m.c
index b6d8b2777b..da8f0553c1 100644
--- a/xen/arch/arm/arm64/mpu/p2m.c
+++ b/xen/arch/arm/arm64/mpu/p2m.c
@@ -2,11 +2,76 @@
 
 #include <xen/bug.h>
 #include <xen/init.h>
+#include <xen/warning.h>
 #include <asm/p2m.h>
 
 void __init setup_virt_paging(void)
 {
-    BUG_ON("unimplemented");
+    uint64_t vtcr_el2 = READ_SYSREG(VTCR_EL2), vstcr_el2 = READ_SYSREG(VSTCR_EL2);
+
+    /* PA size */
+    const unsigned int pa_range_info[] = {32, 36, 40, 42, 44, 48, 52, 0,
+                                          /* Invalid */};
+
+    /*
+     * Restrict "p2m_ipa_bits" if needed. As P2M table is always configured
+     * with IPA bits == PA bits, compare against "pabits".
+     */
+    if ( pa_range_info[system_cpuinfo.mm64.pa_range] < p2m_ipa_bits )
+        p2m_ipa_bits = pa_range_info[system_cpuinfo.mm64.pa_range];
+
+    /*
+     * Clear VTCR_EL2.NSA bit to configure non-secure stage 2 translation output
+     * address space to access the Secure PA space as Armv8r only implements
+     * secure state.
+     */
+    vtcr_el2 &= ~VTCR_NSA;
+
+    /*
+     * The MSA and MSA_frac fields in the ID_AA64MMFR0_EL1 register identify the
+     * memory system configurations supported. In Armv8-R AArch64, the
+     * only permitted value for ID_AA64MMFR0_EL1.MSA is 0b1111.
+     */
+    if ( system_cpuinfo.mm64.msa != MM64_MSA_PMSA_SUPPORT )
+        goto fault;
+
+    /* Permitted values for ID_AA64MMFR0_EL1.MSA_frac are 0b0001 and 0b0010. */
+    if ( system_cpuinfo.mm64.msa_frac == MM64_MSA_FRAC_NONE_SUPPORT )
+        goto fault;
+
+    /*
+     * cpuinfo sanitization makes sure we support 16bits VMID only if all cores
+     * are supporting it.
+     */
+    if ( system_cpuinfo.mm64.vmid_bits == MM64_VMID_16_BITS_SUPPORT )
+        max_vmid = MAX_VMID_16_BIT;
+
+    /* Set the VS bit only if 16 bit VMID is supported. */
+    if ( max_vmid == MAX_VMID_16_BIT )
+        vtcr_el2 |= VTCR_VS;
+
+    p2m_vmid_allocator_init();
+
+    WRITE_SYSREG(vtcr_el2, VTCR_EL2);
+
+    /*
+     * VSTCR_EL2.SA defines secure stage 2 translation output address space.
+     * To make sure that all stage 2 translations for the Secure PA space access
+     * the Secure PA space, we keep SA bit as 0.
+     *
+     * VSTCR_EL2.SC is NS check enable bit. To make sure that Stage 2 NS
+     * configuration is checked against stage 1 NS configuration in EL1&0
+     * translation regime for the given address, and generates a fault if they
+     * are different, we set SC bit 1.
+     */
+    vstcr_el2 &= ~VSTCR_EL2_SA;
+    vstcr_el2 |= VSTCR_EL2_SC;
+    WRITE_SYSREG(vstcr_el2, VSTCR_EL2);
+
+    return;
+
+ fault:
+    panic("Hardware with no PMSAv8-64 support in any translation regime\n");
 }
 
 /*
diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
index 19d409d3eb..a4b6eef181 100644
--- a/xen/arch/arm/include/asm/arm64/sysregs.h
+++ b/xen/arch/arm/include/asm/arm64/sysregs.h
@@ -462,6 +462,10 @@
 #define ZCR_ELx_LEN_SIZE             9
 #define ZCR_ELx_LEN_MASK             0x1ff
 
+/* Virtualization Secure Translation Control Register */
+#define VSTCR_EL2_SA                 (_AC(0x1,UL)<<30)
+#define VSTCR_EL2_SC                 (_AC(0x1,UL)<<20)
+
 #ifdef CONFIG_MPU
 /*
  * The Armv8-R AArch64 architecture always executes code in Secure
diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
index 13353c8e1a..bf902a3970 100644
--- a/xen/arch/arm/include/asm/cpufeature.h
+++ b/xen/arch/arm/include/asm/cpufeature.h
@@ -248,6 +248,12 @@ struct cpuinfo_arm {
             unsigned long tgranule_16K:4;
             unsigned long tgranule_64K:4;
             unsigned long tgranule_4K:4;
+#ifdef CONFIG_MPU
+            unsigned long __res0:16;
+            unsigned long msa:4;
+            unsigned long msa_frac:4;
+            unsigned long __res1:8;
+#else
             unsigned long tgranule_16k_2:4;
             unsigned long tgranule_64k_2:4;
             unsigned long tgranule_4k_2:4;
@@ -255,6 +261,7 @@ struct cpuinfo_arm {
             unsigned long __res0:8;
             unsigned long fgt:4;
             unsigned long ecv:4;
+#endif
 
             /* MMFR1 */
             unsigned long hafdbs:4;
@@ -267,13 +274,13 @@ struct cpuinfo_arm {
             unsigned long xnx:4;
             unsigned long twed:4;
             unsigned long ets:4;
-            unsigned long __res1:4;
+            unsigned long __res2:4;
             unsigned long afp:4;
-            unsigned long __res2:12;
+            unsigned long __res3:12;
             unsigned long ecbhb:4;
 
             /* MMFR2 */
-            unsigned long __res3:64;
+            unsigned long __res4:64;
         };
     } mm64;
 
diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
index e46d9e757a..d165585d4e 100644
--- a/xen/arch/arm/include/asm/mpu/p2m.h
+++ b/xen/arch/arm/include/asm/mpu/p2m.h
@@ -5,6 +5,18 @@
 
 struct p2m_domain;
 
+/*
+ * The architecture allows at most 255 EL2 MPU memory regions. The size of the
+ * MPU structure entry (pr_t) is 32 Bytes on AArch64 (requiring two 4KB pages)
+ * and 16 bytes on AArch32 (requiring one 4KB page).
+ */
+#ifdef CONFIG_ARM_64
+#define P2M_ROOT_ORDER 1
+#else
+#define P2M_ROOT_ORDER 0
+#endif
+
+/* Not used on MPU system */
 static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
 
 static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
index 010ce8c9eb..ed1b6dd40f 100644
--- a/xen/arch/arm/include/asm/p2m.h
+++ b/xen/arch/arm/include/asm/p2m.h
@@ -48,8 +48,13 @@ struct p2m_domain {
     /* Current VMID in use */
     uint16_t vmid;
 
+#ifdef CONFIG_MMU
     /* Current Translation Table Base Register for the p2m */
     uint64_t vttbr;
+#else
+    /* Current Virtualization System Control Register for the p2m */
+    register_t vsctlr;
+#endif
 
     /* Highest guest frame that's ever been mapped in the p2m */
     gfn_t max_mapped_gfn;
diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 1a48c9ff3b..7344aa094b 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -403,6 +403,10 @@
 
 #define VTCR_RES1       (_AC(1,UL)<<31)
 
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+#define VTCR_NSA        (_AC(0x1,UL)<<30)
+#endif
+
 /* HCPTR Hyp. Coprocessor Trap Register */
 #define HCPTR_TAM       ((_AC(1,U)<<30))
 #define HCPTR_TTA       ((_AC(1,U)<<20))        /* Trap trace registers */
@@ -464,6 +468,13 @@
 #define MM64_VMID_16_BITS_SUPPORT   0x2
 #endif
 
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+#define MM64_MSA_PMSA_SUPPORT       0xf
+#define MM64_MSA_FRAC_NONE_SUPPORT  0x0
+#define MM64_MSA_FRAC_PMSA_SUPPORT  0x1
+#define MM64_MSA_FRAC_VMSA_SUPPORT  0x2
+#endif
+
 #ifndef __ASSEMBLER__
 
 extern register_t __cpu_logical_map[];
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 09:02:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 09:02:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222985.1530658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHjF-0007MV-4p; Fri, 06 Feb 2026 09:02:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222985.1530658; Fri, 06 Feb 2026 09:02: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 1voHjF-0007ML-13; Fri, 06 Feb 2026 09:02:17 +0000
Received: by outflank-mailman (input) for mailman id 1222985;
 Fri, 06 Feb 2026 09:02: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=YaI+=AK=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1voHjD-0006qi-RA
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 09:02:15 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 87e09567-033a-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 10:02:15 +0100 (CET)
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 089881516;
 Fri,  6 Feb 2026 01:02:08 -0800 (PST)
Received: from e134099.cambridge.arm.com (e134099.arm.com [10.1.198.34])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 770163F778;
 Fri,  6 Feb 2026 01:02:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 87e09567-033a-11f1-b161-2bf370ae4941
From: Harry Ramsey <harry.ramsey@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 3/3] arm/mpu: Implement p2m tables
Date: Fri,  6 Feb 2026 09:01:55 +0000
Message-ID: <20260206090155.68466-4-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206090155.68466-1-harry.ramsey@arm.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement `p2m_alloc_table`, `p2m_init` and `p2m_final_teardown` for MPU
systems. Additionally implement a helper function `generate_vsctlr` for
p2m initalization.

Signed-off-by: Harry Ramsey <harry.ramsey@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.h       |  5 ++
 xen/arch/arm/mpu/p2m.c               | 71 ++++++++++++++++++++++++++--
 4 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
index 2cf0f8cbac..d565230f84 100644
--- a/xen/arch/arm/include/asm/arm32/mpu.h
+++ b/xen/arch/arm/include/asm/arm32/mpu.h
@@ -11,6 +11,8 @@
  */
 #define MPU_REGION_RES0       0x0
 
+#define VSCTLR_VMID_SHIFT     16
+
 /* Hypervisor Protection Region Base Address Register */
 typedef union {
     struct {
diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
index 4f694190a8..8b86a03fee 100644
--- a/xen/arch/arm/include/asm/arm64/mpu.h
+++ b/xen/arch/arm/include/asm/arm64/mpu.h
@@ -7,6 +7,8 @@
 
 #define MPU_REGION_RES0        (0xFFFFULL << 48)
 
+#define VSCTLR_VMID_SHIFT      48
+
 /* Protection Region Base Address Register */
 typedef union {
     struct __packed {
diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
index 72fa5b00b8..4ae583a7e9 100644
--- a/xen/arch/arm/include/asm/mpu.h
+++ b/xen/arch/arm/include/asm/mpu.h
@@ -87,6 +87,11 @@ static inline bool region_is_valid(const pr_t *pr)
     return pr->prlar.reg.en;
 }
 
+static inline register_t generate_vsctlr(uint16_t vmid)
+{
+    return ((register_t)vmid << VSCTLR_VMID_SHIFT);
+}
+
 #endif /* __ASSEMBLER__ */
 
 #endif /* __ARM_MPU_H__ */
diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
index f7fb58ab6a..1598f9ab64 100644
--- a/xen/arch/arm/mpu/p2m.c
+++ b/xen/arch/arm/mpu/p2m.c
@@ -28,10 +28,62 @@ void p2m_dump_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
+static int __init p2m_alloc_table(struct domain *d)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    pr_t* p2m_map;
+
+    p2m_map = alloc_xenheap_pages(P2M_ROOT_ORDER, 0);
+    if ( !p2m_map )
+    {
+        printk(XENLOG_G_ERR "DOM%pd: p2m: unable to allocate P2M MPU mapping table\n", d);
+        return -ENOMEM;
+    }
+    clear_page(p2m_map);
+
+    p2m->root = virt_to_page((const void *)p2m_map);
+
+    return 0;
+}
+
 int p2m_init(struct domain *d)
 {
-    BUG_ON("unimplemented");
-    return -EINVAL;
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+    int rc = 0;
+    unsigned int cpu;
+
+    rwlock_init(&p2m->lock);
+
+    p2m->vmid = INVALID_VMID;
+    p2m->max_mapped_gfn = _gfn(0);
+    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
+
+    p2m->default_access = p2m_access_rwx;
+    /* mem_access is NOT supported in MPU system. */
+    p2m->mem_access_enabled = false;
+
+    /* Ensure that the type chosen is large enough for MAX_VIRT_CPUS. */
+    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < MAX_VIRT_CPUS);
+
+    for_each_possible_cpu(cpu)
+       p2m->last_vcpu_ran[cpu] = INVALID_VCPU_ID;
+
+    /*
+     * "Trivial" initialization is now complete. Set the backpointer so that
+     * p2m_teardown() and related functions know to do something.
+     */
+    p2m->domain = d;
+
+    rc = p2m_alloc_vmid(d);
+    if ( rc )
+        return rc;
+    p2m->vsctlr = generate_vsctlr(p2m->vmid);
+
+    rc = p2m_alloc_table(d);
+    if ( rc )
+        return rc;
+
+    return rc;
 }
 
 void p2m_save_state(struct vcpu *p)
@@ -46,7 +98,20 @@ void p2m_restore_state(struct vcpu *n)
 
 void p2m_final_teardown(struct domain *d)
 {
-    BUG_ON("unimplemented");
+    struct p2m_domain *p2m = p2m_get_hostp2m(d);
+
+    /* p2m not actually initialized */
+    if ( !p2m->domain )
+        return;
+
+    if ( p2m->root )
+        free_xenheap_pages(p2m->root, P2M_ROOT_ORDER);
+
+    p2m->root = NULL;
+
+    p2m_free_vmid(d);
+
+    p2m->domain = NULL;
 }
 
 bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 09:02:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 09:02:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1222988.1530668 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHjK-0007i1-Gm; Fri, 06 Feb 2026 09:02:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1222988.1530668; Fri, 06 Feb 2026 09:02: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 1voHjK-0007hm-Dh; Fri, 06 Feb 2026 09:02:22 +0000
Received: by outflank-mailman (input) for mailman id 1222988;
 Fri, 06 Feb 2026 09:02: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=YaI+=AK=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1voHjJ-0007ev-Dg
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 09:02:21 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 86559266-033a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 10:02:12 +0100 (CET)
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 6E9D8339;
 Fri,  6 Feb 2026 01:02:05 -0800 (PST)
Received: from e134099.cambridge.arm.com (e134099.arm.com [10.1.198.34])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DC6DF3F778;
 Fri,  6 Feb 2026 01:02:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86559266-033a-11f1-9ccf-f158ae23cfc8
From: Harry Ramsey <harry.ramsey@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 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
Date: Fri,  6 Feb 2026 09:01:54 +0000
Message-ID: <20260206090155.68466-3-harry.ramsey@arm.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206090155.68466-1-harry.ramsey@arm.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a new device tree property `v8r_el1_msa` to enable/disable the
PMSAv8-64 translation regime at EL1.

Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
---
 docs/misc/arm/device-tree/booting.txt | 11 +++++++++++
 xen/arch/arm/dom0less-build.c         | 25 +++++++++++++++++++++++++
 xen/arch/arm/domain.c                 | 16 ++++++++++++++++
 xen/arch/arm/include/asm/domain.h     |  9 +++++++++
 xen/include/public/arch-arm.h         |  4 ++++
 5 files changed, 65 insertions(+)

diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index 977b428608..431d285b6e 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -322,6 +322,17 @@ with the following properties:
     Should be used together with scmi-smc-passthrough Xen command line
     option.
 
+- v8r_el1_msa
+
+    A string property specifying whether, on Armv8-R aarch64 systems, a domain
+    should use PMSAv8-64 (MPU) at EL1 or VMSAv8-64 (MMU) at EL1.
+
+    - "mmu"
+    Enables VMSAv8-64 at EL1.
+
+    - "mpu"
+    Enables PMSAv8-64 at EL1.
+
 Under the "xen,domain" compatible node, one or more sub-nodes are present
 for the DomU kernel and ramdisk.
 
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 4181c10538..41f538fb50 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -315,6 +315,7 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
     struct xen_domctl_createdomain *d_cfg = &bd->create_cfg;
     unsigned int flags = bd->create_flags;
     uint32_t val;
+    const char *v8r_el1_msa;
 
     d_cfg->arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
     d_cfg->flags |= XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
@@ -322,6 +323,30 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
     if ( domu_dt_sci_parse(node, d_cfg) )
         panic("Error getting SCI configuration\n");
 
+    if (!dt_property_read_string(node, "v8r_el1_msa", &v8r_el1_msa))
+    {
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+        if ( !strcmp(v8r_el1_msa, "mmu") )
+        {
+            if ( system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_VMSA_SUPPORT )
+                panic("Platform does not support VMSA at EL1 (v8r_el1_msa)\n");
+            d_cfg->arch.v8r_el1_msa = MPU_EL1_VMSA;
+        }
+        else if ( !strcmp(v8r_el1_msa, "mpu") )
+        {
+            d_cfg->arch.v8r_el1_msa = MPU_EL1_PMSA;
+            if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
+                panic("PMSA is not valid for domain without static allocation"
+                      " and direct map (v8r_el1_msa)\n");
+        }
+        else
+            panic("Invalid device tree option for v8r_el1_msa\n");
+#else
+        panic("'v8r_el1_msa' property requires CONFIG_MPU and CONFIG_ARM_64 to "
+              "be selected\n");
+#endif
+    }
+
     if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
     {
         int vpl011_virq = GUEST_VPL011_SPI;
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 2eca2b913d..fc4c7ae734 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -35,6 +35,18 @@
 
 DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
 
+/* If this domain should use PMSAv8-64 translation regime (MPU) at EL1. */
+static inline bool is_mpu_domain(struct domain *d)
+{
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+    return d->arch.v8r_el1_msa == MPU_EL1_PMSA;
+#elif defined(CONFIG_MPU)
+    return true;
+#else
+    return false;
+#endif
+}
+
 static void do_idle(void)
 {
     unsigned int cpu = smp_processor_id();
@@ -731,6 +743,10 @@ int arch_domain_create(struct domain *d,
     if ( (rc = sci_domain_init(d, config)) != 0 )
         goto fail;
 
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
+#endif
+
     return 0;
 
 fail:
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 758ad807e4..1387adc0e9 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -29,6 +29,11 @@ enum domain_type {
 #define is_64bit_domain(d) (0)
 #endif
 
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+#define MPU_EL1_PMSA 0
+#define MPU_EL1_VMSA 1
+#endif
+
 /*
  * Is the domain using the host memory layout?
  *
@@ -126,6 +131,10 @@ struct arch_domain
     void *sci_data;
 #endif
 
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+    uint8_t v8r_el1_msa;
+#endif
+
 }  __cacheline_aligned;
 
 struct arch_vcpu
diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index cd563cf706..0ef445a273 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -355,6 +355,10 @@ struct xen_arch_domainconfig {
     uint32_t clock_frequency;
     /* IN */
     uint8_t arm_sci_type;
+#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
+    /* IN */
+    uint8_t v8r_el1_msa;
+#endif
 };
 #endif /* __XEN__ || __XEN_TOOLS__ */
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 09:10:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 09:10:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223016.1530678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHqm-0001FW-89; Fri, 06 Feb 2026 09:10:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223016.1530678; Fri, 06 Feb 2026 09:10: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 1voHqm-0001F8-56; Fri, 06 Feb 2026 09:10:04 +0000
Received: by outflank-mailman (input) for mailman id 1223016;
 Fri, 06 Feb 2026 09:10: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=YaI+=AK=arm.com=harry.ramsey@srs-se1.protection.inumbo.net>)
 id 1voHql-00014k-KA
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 09:10:03 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 9cd71c38-033b-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 10:09:59 +0100 (CET)
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 A3201339
 for <xen-devel@lists.xenproject.org>; Fri,  6 Feb 2026 01:09:52 -0800 (PST)
Received: from [10.57.94.150] (unknown [10.57.94.150])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C17D13F778
 for <xen-devel@lists.xenproject.org>; Fri,  6 Feb 2026 01:09:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9cd71c38-033b-11f1-9ccf-f158ae23cfc8
Message-ID: <93d53946-feea-4aaf-be5c-b64954894b7b@arm.com>
Date: Fri, 6 Feb 2026 09:09:57 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/3] Fifth MPU Series
Content-Language: en-GB
To: xen-devel@lists.xenproject.org
References: <20260206090155.68466-1-harry.ramsey@arm.com>
From: Harry Ramsey <harry.ramsey@arm.com>
In-Reply-To: <20260206090155.68466-1-harry.ramsey@arm.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

On 06/02/2026 09:01, Harry Ramsey wrote:

> This series continues to further the ongoing work to introduce support
> for MPU systems in Xen.
>
> The patches in this series aim to implement MPU specific p2m functions.
>
> Harry Ramsey (2):
>    arm/mpu: Introduce `v8r_el1_msa` device tree property for domains
>    arm/mpu: Implement p2m tables
>
> Penny Zheng (1):
>    arm/mpu: implement setup_virt_paging for MPU system
>
>   docs/misc/arm/device-tree/booting.txt    | 11 ++++
>   xen/arch/arm/arm64/mpu/p2m.c             | 67 +++++++++++++++++++++-
>   xen/arch/arm/dom0less-build.c            | 25 +++++++++
>   xen/arch/arm/domain.c                    | 16 ++++++
>   xen/arch/arm/include/asm/arm32/mpu.h     |  2 +
>   xen/arch/arm/include/asm/arm64/mpu.h     |  2 +
>   xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
>   xen/arch/arm/include/asm/cpufeature.h    | 13 ++++-
>   xen/arch/arm/include/asm/domain.h        |  9 +++
>   xen/arch/arm/include/asm/mpu.h           |  5 ++
>   xen/arch/arm/include/asm/mpu/p2m.h       | 12 ++++
>   xen/arch/arm/include/asm/p2m.h           |  5 ++
>   xen/arch/arm/include/asm/processor.h     | 11 ++++
>   xen/arch/arm/mpu/p2m.c                   | 71 +++++++++++++++++++++++-
>   xen/include/public/arch-arm.h            |  4 ++
>   15 files changed, 250 insertions(+), 7 deletions(-)
>
> --
> 2.43.0
>

This is a complete rework of the previous patch: 
https://patchwork.kernel.org/project/xen-devel/patch/20260119105022.3616126-1-harry.ramsey@arm.com/

v2:

- Split `implement setup_virt_paging for MPU system` into `arm/mpu: 
implement setup_virt_paging for MPU system` and `Implement p2m tables`

- Rework register setup within `setup_virt_paging` to be more concise

- Introduce v8r_el1_msa device tree parameter



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 09:17:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 09:17:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223035.1530688 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHxT-0002Ec-Sw; Fri, 06 Feb 2026 09:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223035.1530688; Fri, 06 Feb 2026 09:16:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voHxT-0002EV-Q2; Fri, 06 Feb 2026 09:16:59 +0000
Received: by outflank-mailman (input) for mailman id 1223035;
 Fri, 06 Feb 2026 09:16: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=O5P7=AK=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1voHxS-0002EP-CA
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 09:16:58 +0000
Received: from mail-oo1-xc2f.google.com (mail-oo1-xc2f.google.com
 [2607:f8b0:4864:20::c2f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 952638e0-033c-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 10:16:56 +0100 (CET)
Received: by mail-oo1-xc2f.google.com with SMTP id
 006d021491bc7-66314fa03c9so1175291eaf.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 01:16:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 952638e0-033c-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770369415; cv=none;
        d=google.com; s=arc-20240605;
        b=Bf8JuqUy4bGJcVj3w/NJIIV4XD4clsHaQFOC+4OMEyNTKVjm+Bolv1KGsjiV44uEPz
         AeO4bghcFXFgv1vHuQ2QmKvsd29LExWsIy16unbLw6oyGo7cnem8rqQd9c08erf2teC8
         0tvbsbp+M1qwhbNXhp771MQUjTm9Dgaa11FwudrWqeCdajTVfsFrLhfSmdn79xcumW+S
         YvVuqE6Am3/f1bnSLZvCK8p1zuR5xS81tP3AU7soMRdMFpIKzz7CEQAcV8198e5jZBAI
         e6MO5HtStS7IXsdm9mqzC4LS2ysrumCDlb3qxdPDe3DG5lnF6lcklillxhPqT9V0igCh
         vVrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=7ewCMcU3FXn5aamHbAb40erMcNWhH6SJAYdvFqj8jIc=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=Q6ZUUXePTvigmhoTNRLEjmcgRgQVRFNFtH6gj6Y/YINWxuJaNi6ut+UekMYTUEnZmV
         BCBigv2Dg1l0Y4ifmhXigX5orrcrSGw7Nx2IdgsiPNI9QCN4GktpdN6fvoak/NmWhltj
         MUzZPKuxYiMD/hXDhCuaHFzd0vC5LCMAfw4LdnC08tvWW2E6uQe1IZvWC5MVcq/Q7duS
         CKq62csU6klKFRbJhvxP+UVR+tpZi9eZQ5Ovajf83HJww7pxhWgjupxpD1xcQ5t8/kmW
         acVktc7yzWS43NuKCseViA9zcTCtRzosAgbNdAbqFnK99vRZIpuY6l8X69PrTaokFBPn
         adLg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770369415; x=1770974215; 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=7ewCMcU3FXn5aamHbAb40erMcNWhH6SJAYdvFqj8jIc=;
        b=jF923ObE9v0qAgDXd+N4FtbMktwaTX2jPOxmxNtI2/OutLIc7RZ3mLQNyg3LlB2bNw
         CGURfc8mOGpItFHSU2OG3IeeilsHUO0nG2dzRDhtMEQH/LqRmrcNMWri+JMo+kdnTD8c
         k2/lWi/Qi2vuNC1tdcdLzy9ntHDMeGduzLomDI3tUOg0Oc1n402WlGWZig585ycy72pv
         MZK/LnKerm/e8Xd6ISAPuPap4SVa65DXzLNXWaMoiarfp+PISX9JpexBTfjwMiDSAQy8
         VYCdnfAkDypWZ+O0SDQBrJW1IIAhaeJWqB5GIHoifrWV5UgfF9TglQEkrVW5e49uWPlF
         O5oQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770369415; x=1770974215;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=7ewCMcU3FXn5aamHbAb40erMcNWhH6SJAYdvFqj8jIc=;
        b=ALLLY4+erWi5ekA53NjoZhpyEw5F7ompM9EaEXyFv6eN147gmUkQBOG1JM+PyszPfK
         nl/Lp1xWjIS4GPGRhCsXuGnFcNCc3Nfow9cs9rGPK/7wbUFG6mc3E3hQ0rD3TlGs9K33
         1fw+WjP9CGvp+joqJHHIqc4klImqx8gnguA6wIUziRJVE6vKNEh2NaAhmDENsX1rP3fH
         sG39XaXrlh+7jcBMAzvRTtTEJmK71PWtrgbUs0dKM9dOm6La35kN4JvGGFhLDY1wG3ml
         zCMgXxD+RKeb4oe6o5YtQAB7TVlpMudwVmDN9rn8S8TChEDBgco4XnbKiS3nWxoZqUfq
         f8zw==
X-Gm-Message-State: AOJu0YwMJTzIQINjN/urbeVHhmOGZQJ1zNCWI1XRors+TTBHV2xPhvqh
	/uauWIohT1hviyAkDzN1rBgB1qjvN5zj4fwgEabJ5m5CTmtnEv1C6zQ+9B4AjVNCUgVZuHFp+CW
	+at82sYnXInX32QI4EthuD9Ltujq2mPZPcAzGT1z2vg==
X-Gm-Gg: AZuq6aKUtGOgErrRvxQshOWhhEf80T12eyINMJBhUnK2VIoXuSUQnVj1/7lC0s/dcTL
	tsQkzatAk+LKkdzr7msNeHlj92BBfm7B927q2e3+c1P/UdI1ADHc+9Adh3D8cbBUBG2rhDJqfVI
	9RsKT93NCBNPQY7E3FbqIYSzbjapsqG2NLtwe6yV6yfexQTzUMNmm74/naLVTZuVNUmDwPyFY4N
	YZuZIKz/7O4pvctnQtN05OH19PGbzVllFlJf5DsHk+J6h4pB+i3tFDR1UtRhVWqy9B5lmN9X+dN
	sc1rzKd34CYkBTlyuoTgcJyB3g==
X-Received: by 2002:a05:6820:450a:b0:65e:eec4:70d5 with SMTP id
 006d021491bc7-66d09cb41fcmr743769eaf.8.1770369415349; Fri, 06 Feb 2026
 01:16:55 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <db0a0b4459630ea00a67d5e985cff3bca73d1c64.1770115301.git.bertrand.marquis@arm.com>
In-Reply-To: <db0a0b4459630ea00a67d5e985cff3bca73d1c64.1770115301.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Fri, 6 Feb 2026 10:16:44 +0100
X-Gm-Features: AZwV_QjXp9DRPui5uG1Nm-KlF1mnWZ8D9-0nik7Tczx6wq6kr7FZbgo1A9ENgkU
Message-ID: <CAHUa44ESzOCDpt-HuXRFOkDDHRxz3LsjQJsxMpNjMv=mzxyj3g@mail.gmail.com>
Subject: Re: [PATCH 01/12] xen/arm: ffa: Add endpoint lookup helper
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Direct messaging paths duplicate endpoint validation and RCU domain
> lookup logic across multiple call sites, which makes the checks easy to
> drift and complicates maintenance.
>
> Introduce ffa_endpoint_domain_lookup() to centralize this logic. The
> helper validates the endpoint ID (rejecting ID 0 for the hypervisor),
> performs RCU domain lookup, ensures the domain is live and has an
> initialized FF-A context with a negotiated version, and returns the
> domain locked via RCU.
>
> Switch ffa_msg_send2_vm() to use the helper, replacing its open-coded
> validation sequence. This consolidates approximately 20 lines of
> duplicated checks into a single call.
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c         | 45 ++++++++++++++++++++++++++++++++++
>  xen/arch/arm/tee/ffa_msg.c     | 24 +++---------------
>  xen/arch/arm/tee/ffa_private.h |  3 +++
>  3 files changed, 51 insertions(+), 21 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index ed18e76080d0..6de2b9f8ac8e 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -433,6 +433,51 @@ static bool ffa_handle_call(struct cpu_user_regs *re=
gs)
>      return true;
>  }
>
> +/*
> + * Look up a domain by its FF-A endpoint ID and validate it's ready for =
FF-A.
> + * Returns FFA_RET_OK on success with domain locked via RCU.
> + * Caller must call rcu_unlock_domain() when done.
> + *
> + * Validates:
> + * - endpoint_id is not 0 (the hypervisor)
> + * - domain exists and is live
> + * - domain has FF-A context initialized
> + * - domain has negotiated an FF-A version
> + */
> +int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain *=
*d_out,
> +                                   struct ffa_ctx **ctx_out)
> +{
> +    struct domain *d;
> +    struct ffa_ctx *ctx;
> +    int err;
> +
> +    if ( endpoint_id =3D=3D 0 )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    err =3D rcu_lock_live_remote_domain_by_id(endpoint_id - 1, &d);
> +    if ( err )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    if ( !d->arch.tee )
> +    {
> +        rcu_unlock_domain(d);
> +        return FFA_RET_INVALID_PARAMETERS;
> +    }
> +
> +    ctx =3D d->arch.tee;
> +    if ( !ACCESS_ONCE(ctx->guest_vers) )
> +    {
> +        rcu_unlock_domain(d);
> +        return FFA_RET_INVALID_PARAMETERS;
> +    }
> +
> +    *d_out =3D d;
> +    if ( ctx_out )
> +        *ctx_out =3D ctx;
> +
> +    return FFA_RET_OK;
> +}
> +
>  static int ffa_domain_init(struct domain *d)
>  {
>      struct ffa_ctx *ctx;
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index 4e26596461a9..10856fddcbc4 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -161,30 +161,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, co=
nst void *src_buf,
>      struct ffa_part_msg_rxtx_1_2 *dst_msg;
>      void *rx_buf;
>      size_t rx_size;
> -    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 ( !ACCESS_ONCE(dst_ctx->guest_vers) )
> -    {
> -        ret =3D FFA_RET_INVALID_PARAMETERS;
> -        goto out_unlock;
> -    }
> +    ret =3D ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
> +    if ( ret )
> +        return ret;
>
>      /* This also checks that destination has set a Rx buffer */
>      ret =3D ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 282c105f3bce..cd7ecabc7eff 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -437,6 +437,9 @@ int32_t ffa_partinfo_domain_init(struct domain *d);
>  bool ffa_partinfo_domain_destroy(struct domain *d);
>  void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
>
> +int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain *=
*d_out,
> +                                   struct ffa_ctx **ctx_out);
> +
>  bool ffa_rxtx_spmc_init(void);
>  void ffa_rxtx_spmc_destroy(void);
>  void *ffa_rxtx_spmc_rx_acquire(void);
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 09:24:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 09:24:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223043.1530699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voI4O-0003tZ-JW; Fri, 06 Feb 2026 09:24:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223043.1530699; Fri, 06 Feb 2026 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 1voI4O-0003tR-Fi; Fri, 06 Feb 2026 09:24:08 +0000
Received: by outflank-mailman (input) for mailman id 1223043;
 Fri, 06 Feb 2026 09: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=D6vR=AK=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1voI4M-0003sn-Nc
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 09:24:06 +0000
Received: from jpms-ob02.noc.sony.co.jp (jpms-ob02.noc.sony.co.jp
 [2001:cf8:ace:41::5]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9247a15a-033d-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 10:24:03 +0100 (CET)
Received: from unknown (HELO jpmta-ob02.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::7])
 by jpms-ob02.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Feb 2026 18:24:00 +0900
Received: from unknown (HELO JPC00244420)
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob02.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Feb 2026 18:23:56 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9247a15a-033d-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770369844; x=1801905844;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=wPZfRdP+k5tHXCWNK6Ygu9GCntNiGeUU6L8G+KPNkCQ=;
  b=RUt2QEnftwM1KiJrBNHRT2TK2Ivwb11iwqsRxog1/IBIeDcwSCYdpwFd
   HgqFbV1YJF7oC9RMe8s0HOYmw/xAbDNftAGXAQLfGqxduUHQJPNSk4D1l
   ovuZJplJ7DhqBYXXJN1RUZh0LRxncQ9zABFbWHOzttU0Z98oqweIqX1Vk
   v8mxFUv8Om1CE2axUC0023wveuJDzihyjUD1YMAuUEbeHsy7XgxTASoUF
   w/cZBCLntjJtnmEy0TY5/gJza5JcBoCtNrYLPw67xy0EPd2DVhltMgqbg
   3MKesNGHaVjUs12HPnquyTFUOGQqPu9bfLcriDup5eYTdYoeF4U5WU+cH
   A==;
X-IronPort-AV: E=Sophos;i="6.21,276,1763391600"; 
   d="scan'208";a="578889420"
Date: Fri, 6 Feb 2026 18:23:53 +0900
From: Shashank Balaji <shashank.mahadasyam@sony.com>
To: Sohil Mehta <sohil.mehta@intel.com>
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev, jailhouse-dev@googlegroups.com,
	kvm@vger.kernel.org, xen-devel@lists.xenproject.org,
	Rahul Bukte <rahul.bukte@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>
Subject: Re: [PATCH 3/3] x86/virt: rename x2apic_available to
 x2apic_without_ir_available
Message-ID: <aYWzKQQTyTZpMAme@JPC00244420>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-3-71c8f488a88b@sony.com>
 <ab7f5935-fd5e-4ba5-a97d-5433f241a089@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ab7f5935-fd5e-4ba5-a97d-5433f241a089@intel.com>

On Thu, Feb 05, 2026 at 04:10:37PM -0800, Sohil Mehta wrote:
> On 2/2/2026 1:51 AM, Shashank Balaji wrote:
> > No functional change.
> > 
> > x86_init.hyper.x2apic_available is used only in try_to_enable_x2apic to check if
> > x2apic needs to be disabled if interrupt remapping support isn't present. But
> > the name x2apic_available doesn't reflect that usage.
> > 
> 
> I don't understand the premise of this patch. Shouldn't the variable
> name reflect what is stored rather than how it is used?

Sorry about the confusion, I should have used '()'.
x86_init.hyper.x2apic_available() is called only in
try_to_enable_x2apic(). Here's the relevant snippet:

	static __init void try_to_enable_x2apic(int remap_mode)
	{
		if (x2apic_state == X2APIC_DISABLED)
			return;

		if (remap_mode != IRQ_REMAP_X2APIC_MODE) {
			u32 apic_limit = 255;

			/*
			 * Using X2APIC without IR is not architecturally supported
			 * on bare metal but may be supported in guests.
			 */
			if (!x86_init.hyper.x2apic_available()) {
				pr_info("x2apic: IRQ remapping doesn't support X2APIC mode\n");
				x2apic_disable();
				return;
			}

So the question being asked is, "can x2apic be used without IR?", but
the name "x2apic_available" signals "is x2apic available?". I found this
confusing while going through the source.

Most hypervisors set their x2apic_available() implementation to
essentially return if the CPU supports x2apic or not, which is valid
given the name "x2apic_available", but x2apic availability is not what's in
question at the callsite.

> > This is what x2apic_available is set to for various hypervisors:
> > 
> > 	acrn		boot_cpu_has(X86_FEATURE_X2APIC)
> > 	mshyperv	boot_cpu_has(X86_FEATURE_X2APIC)
> > 	xen		boot_cpu_has(X86_FEATURE_X2APIC) or false
> > 	vmware		vmware_legacy_x2apic_available
> > 	kvm		kvm_cpuid_base() != 0
> > 	jailhouse	x2apic_enabled()
> > 	bhyve		true
> > 	default		false
> > 
> 
> If both interrupt remapping and x2apic are enabled, what would the name
> x2apic_without_ir_available signify?

If IR is enabled, then the branch to call x2apic_available() wouldn't be taken :)
So the meaning of x2apic_without_ir_available wouldn't be relevant
anymore.

> A value of "true" would mean x2apic is available without IR. But that
> would be inaccurate for most hypervisors. A value of "false" could be
> interpreted as x2apic is not available, which is also inaccurate.
> 
> To me, x2apic_available makes more sense than
> x2apic_without_ir_available based on the values being set by the
> hypervisors.
 
I agree with you, and I think therein lies the problem. Most hypervisors
are answering the broader question "is x2apic available?", so the name
"x2apic_available" makes sense.

I think further work is required to check if various implementations of
x2apic_available() also need to be changed to reflect the "x2apic
without IR?" semantic, but I don't know enough to do that myself. Maybe
I should have added TODOs above the implementations.

I would like the feedback of the virt folks too on all this, maybe I'm
misinterpreting what's going on here.

> > Bare metal and vmware correctly check if x2apic is available without interrupt
> > remapping. The rest of them check if x2apic is enabled/supported, and kvm just
> > checks if the kernel is running on kvm. The other hypervisors may have to have
> > their checks audited.
> > 
> AFAIU, the value on bare metal is set to false because this is a
> hypervisor specific variable. Perhaps I have misunderstood something?


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 09:28:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 09:28:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223057.1530708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voI8g-0004Qz-2Y; Fri, 06 Feb 2026 09:28:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223057.1530708; Fri, 06 Feb 2026 09: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 1voI8f-0004Qr-Vv; Fri, 06 Feb 2026 09:28:33 +0000
Received: by outflank-mailman (input) for mailman id 1223057;
 Fri, 06 Feb 2026 09: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=O5P7=AK=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1voI8e-0004Qk-JW
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 09:28:32 +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 331a53da-033e-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 10:28:31 +0100 (CET)
Received: by mail-oa1-x2f.google.com with SMTP id
 586e51a60fabf-40423dbe98bso242030fac.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 01:28:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 331a53da-033e-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770370110; cv=none;
        d=google.com; s=arc-20240605;
        b=Ch2pY/72oBmRxDpABZHLm7w/H4Tz9rf/XPOOHe/p6QR9PeCI90OTDHzYaXI2PP/As+
         cYfJxHAbL7C2WipIJH0x6c9GCaxZQvYlIzHiQhLBDauO6B/MArApIoBaZb8U+/ag51Gz
         1KA7umAQ46bj7AYqHm5riNRagCiH1/DhoqfOhqIAgDeER4OpgUnNlXWbmyUbMoPEE6No
         E8ekFOrAvDrOPWPixt9tDl2gTDFWcwesvXEOlZHt2YaqBeAlIes13ft7b05FrCyvx7zy
         vMOUteUsuvS8jRb+Si1pE2JJXwTHpyzFhptHZ5UIUyjfHNLe4/9cMcTTsKkswMD0t+F3
         2NeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=PfsQd9prHj4PEJxEoECC3VAkgFIlM0CLps+3qg6UKmA=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=fggTYgYyGfqReSVHSHXR6SZ/sfeq3GvsMkPvVmyrBm5LWHAcXaCeAnopTvU1QxTtCd
         VFBS4Z5aLq0YgO2Zec9rO1BusUSCWtWNkfDIUsrgbB7ohzqdGHoUxCNGc58GvOtUp5zB
         bPLGNdkATmL45zIG2G/YjHeiRd3UDumUpcO28t4lUQUt7KZTpYFmmKnt/0d+McKcyp03
         JVVhNKjpbELs4s0eXHTiJFOYrqGhsOZsyYO6V9Mb+krN5zD2SpUd3P/QYcEkgKP9LQvz
         z1iC8cYKJKbwfbov15VbPRg6yEf7jw+IVKix7q+l0PPHOnUSfBDy44cpOwQQn5GzhVIV
         c/UA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770370110; x=1770974910; 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=PfsQd9prHj4PEJxEoECC3VAkgFIlM0CLps+3qg6UKmA=;
        b=WGHUpmz9pnBUMDU1VrtECLn8LJFq4Cjk5T7wuo5ZuLN1vgaKjiFFq8F8qTzOuqq0sp
         6BfuRyehVqUSYsCaqkszXzXhO479lGhB6EwIRyG8O3uVHDCUqvzq1ZvOUfqsxAqAVXdN
         NId6GyGMnfJU8Ss6CosTHgMf2JtgQg7euAOnU3NlQOlQAr4S9r2WzN3AAXpKkhjl1b2o
         rBzMAE7WUTqVX7Eg93sBDfRNTT4dp2PgHhvOklmTD0qp5cbMW3bVYxKAG/mdm/YebsWy
         eRttgLTOoJ8mUgWHnS5N0YGv1VJgMLL4ItEL2cULRiiZIsimIZBWBVPqMBRa1VtKN6bl
         /zTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770370110; x=1770974910;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=PfsQd9prHj4PEJxEoECC3VAkgFIlM0CLps+3qg6UKmA=;
        b=ekL0FSKxUc417tfKeRrQYA7uQn/lDsSBInTPXU35poxsjNAvkOl5WhIjLMSw4D6euv
         oyJcsgPcZrjEIUiSxJQAVftwlhdoNaLH3fyv9bG2yatUTSfrM/F6aMQt11h/HedvtQ+q
         TKsgbJGvI3PBGQr7Q0ARQm/u+2hHAUxar10EBHgtesCtFSsJjIGy6u7hTSh6/eJ6a368
         rsJ9AjGbEgn1H4a8FuI/JlaVUGb7toO42scHCprgodq+e2aOuGsnNXjNcMLqLMuhvC5E
         OVj/TOJpHRsuPJT8g4W/PZNbIEX0fmK4w8fPMKJODmytxFpWIj1Gi0NIKTFO1RzQZuFD
         e1kg==
X-Gm-Message-State: AOJu0YxCtNTpoZVc+WMUawqls2SRifSnOuL/50eDhHpIFVRiALpk9U8w
	PU+HGyhA5X7KH/Hj7oQog6AdQ/MMSl+46ixdDMydgcz/iMS9kc4cuk9pzvwoENc4x/nfxCh/f4y
	vANesMEAlAgC5tXOL/TXnjvxClREEdKZv3zH5y2+nvQ==
X-Gm-Gg: AZuq6aLKcXm/lUUV93S5JykspTBprX0AGG5OWXY5ITIHAJXiOn9VPxMEY5yKHdklJA0
	oUUKlTZtNM3geGa1aHzcF+P0zEqroz1IEuxjK4LX/7LzAm4nIfZdJnwA2tzIKxr6QJYbuifW9kL
	pv3rIulOi/+j291Ddky5C+FvQxF1Rc8281yqKykq8cU5UfKPfDS4EctLdx8kiJywtqo6YL+8OHh
	AOkUCYw5AKcePwHAkWxJBaJ/mTen6Qa/dXHxk/IV0Xj2a4Nv9cacc2oBS0GilMUA7oYgL6mXbaK
	/zpRNZgAwHMgQlfOMcPvODTkmw==
X-Received: by 2002:a05:6820:80c5:b0:661:1d0c:a5b5 with SMTP id
 006d021491bc7-66d0bea3ff5mr856255eaf.48.1770370109901; Fri, 06 Feb 2026
 01:28:29 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <9886df295f4c4365668576cc956299ee36f36c8b.1770115301.git.bertrand.marquis@arm.com>
In-Reply-To: <9886df295f4c4365668576cc956299ee36f36c8b.1770115301.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Fri, 6 Feb 2026 10:28:18 +0100
X-Gm-Features: AZwV_Qj9QyssabLDHCzs3J98Sgr51l9lPVztXoTTsnmXQ_CWV0Vhp6RomyItEBE
Message-ID: <CAHUa44G9sGWp18EX=Zb-C-jDJn_V6BmEVvnza7t6gcx3rjsRww@mail.gmail.com>
Subject: Re: [PATCH 02/12] xen/arm: ffa: Fix MEM_SHARE NS attribute handling
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> The FF-A memory attribute encoding is currently a literal value (0x2f),
> which makes reviews and validation harder. In addition, MEM_SHARE
> accepts the NS (non-secure) attribute bit even though the normal world
> must not set it according to FF-A specification.
>
> Introduce named attribute bit masks and express FFA_NORMAL_MEM_REG_ATTR
> in terms of them for clarity.
>
> Reject MEM_SHARE descriptors with the NS bit set, returning
> INVALID_PARAMETERS to match FF-A v1.1 rules that prohibit normal world
> from setting this bit.
>
> Functional impact: MEM_SHARE now rejects descriptors with NS bit set,
> which were previously accepted but violate FF-A specification.

To be fair, it was also rejected earlier, but with a different error code.

>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_private.h | 17 ++++++++++++++++-
>  xen/arch/arm/tee/ffa_shm.c     |  6 ++++++
>  2 files changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index cd7ecabc7eff..b625f1c72914 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -129,11 +129,26 @@
>  #define FFA_HANDLE_HYP_FLAG             BIT(63, ULL)
>  #define FFA_HANDLE_INVALID              0xffffffffffffffffULL
>
> +/* NS attribute was introduced in v1.1 */
> +#define FFA_MEM_ATTR_NS                 BIT(6, U)
> +
> +#define FFA_MEM_ATTR_TYPE_DEV           (1U << 3)
> +#define FFA_MEM_ATTR_TYPE_MEM           (2U << 4)
> +
> +#define FFA_MEM_ATTR_NC                 (1U << 2)
> +#define FFA_MEM_ATTR_WB                 (3U << 2)
> +
> +#define FFA_MEM_ATTR_NON_SHARE          (0U)
> +#define FFA_MEM_ATTR_OUT_SHARE          (2U)
> +#define FFA_MEM_ATTR_INN_SHARE          (3U)
> +
>  /*
>   * Memory attributes: Normal memory, Write-Back cacheable, Inner shareab=
le
>   * Defined in FF-A-1.1-REL0 Table 10.18 at page 175.
>   */
> -#define FFA_NORMAL_MEM_REG_ATTR         0x2fU
> +#define FFA_NORMAL_MEM_REG_ATTR         (FFA_MEM_ATTR_TYPE_MEM | \
> +                                         FFA_MEM_ATTR_WB | \
> +                                         FFA_MEM_ATTR_INN_SHARE)
>  /*
>   * Memory access permissions: Read-write
>   * Defined in FF-A-1.1-REL0 Table 10.15 at page 168.
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index 8282bacf85d3..90800e44a86a 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -512,6 +512,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs=
)
>      if ( ret )
>          goto out_unlock;
>
> +    if ( trans.mem_reg_attr & FFA_MEM_ATTR_NS )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out_unlock;
> +    }
> +
>      if ( trans.mem_reg_attr !=3D FFA_NORMAL_MEM_REG_ATTR )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> --
> 2.50.1 (Apple Git-155)
>

Looks good, but I think the commit message needs a small update or
clarification.

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 10:38:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 10:38:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223101.1530738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voJDz-00059l-V8; Fri, 06 Feb 2026 10:38:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223101.1530738; Fri, 06 Feb 2026 10:38: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 1voJDz-00059e-Rh; Fri, 06 Feb 2026 10:38:07 +0000
Received: by outflank-mailman (input) for mailman id 1223101;
 Fri, 06 Feb 2026 10: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=8hvW=AK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1voJDz-00059Y-4w
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 10:38:07 +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 eadc725a-0347-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 11:38:04 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4801eb2c0a5so18398135e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 02:38:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b25casm5004834f8f.4.2026.02.06.02.38.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 06 Feb 2026 02:38:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eadc725a-0347-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770374284; x=1770979084; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BA8sS6pxbBVzsljXH59ZUxiuS6H0sInZOhvaXRU7Nbo=;
        b=RWqrXAvAMlaiCI//S3qh+J1FjeaR7pVB9uRw+yq2pjX6Wsvt97vUggU+sDJkKbO4mN
         kgYeaeLyOxLCiWBCY4F9enbnAlhV/xJLpYBFXJ3zlwq6YUitAEhg0GTaN8HVSR2G5NeT
         9M+FCzytnngtq0Jv3tk3VkBiSqThYOQfB19tGARK8Pb20gkBRjSvJcKuV3pVKEoMmr5k
         ll5h/T9FfV4QlWbFLxio5xcCH3/sOv5nwvpMRl3yO2NDhSBAhNhxiuxhg1+vLaCssYzs
         JdnWK+Ha94R77BnfMwnsXPyGXwNy+9ywGrKnXqnMpIkqlXzIDz5GmZhYkQxlq6d1vyZy
         58mA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770374284; x=1770979084;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BA8sS6pxbBVzsljXH59ZUxiuS6H0sInZOhvaXRU7Nbo=;
        b=J+A3qWrOD7D5ufg5c7VWpoh1iX8VHqtzyWVEzm35FJDPzNOYyGd8HIiAPVPF+pcfLX
         ENhuIneLjScZ71WTwl+3pDWDslKebQmU6loIgQJ53jdFgxyUVV59zudgxxpWc2mp1PCA
         Vng7AC3w6ElJTbW4+6s7L+yRSreSdrn9degaw3ba7AHpSTLeQuSxmeP8efesA3aAvU82
         gtZexCNV8MJDFwD1MwZd4GKRTuXOzoqu71lQ/8xFWupgYUTS0arqhZ3r2JSJoM2gNTIa
         ApcjsKT6OLgsVxEggDR7YnPnPLJWOvviZyVVtAdl5PMSXKt9imkfjX+ou6CgFQ46gK5C
         yLWg==
X-Forwarded-Encrypted: i=1; AJvYcCVV1Z0coL3Cpkx9dZAS5nM+LrdheySPlOHFSvj/t9x4WJV6VLuqgnqSnpXx8kJZwC3O1YnQNiageJc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMj7nR9bQM6X8DKUlKQUzqYjhMSEU5AlGUIZw7g9NnGBu2kHdF
	CoaG4SmvsltJUuu5JaFqEA9DsKTFsGugqDjdsdkkARa5+Byzlrf5Vr7yGcyL+abnrw==
X-Gm-Gg: AZuq6aJydYlZJs2QtVUUtiFCAOEpF8lf3+rSTSFC0xGX2PW3GTURIJLEIqJ0DgRDNoG
	tCZ4gr/IWdGt4keSpPgK4Ap+QxMiCma2eK/E5Kjhz1GKQf0Spl8Y9CU611TDTxnDtQwlPNxPaof
	D4pcl0dVpQz0OzzSarbUlQGbZA9in0RqZc6nyEFYsn0wwpDy6PuMUAi7ZSB6hrX47UU1XKDdbrc
	WsByef1s3AqpnU8HyAcGIEYMsoAvXoQUf8FwtpfiKl15E78Kw0wzBupFOxsR5/5j196q304T34Q
	g1BCWcjHWULkhJ02p+FHm7r90dDIigCJoihkE5q0DqVuEQS22nLpkCEbNSjw6Sm3TRJUgUBt3bS
	9JqCNTtCxhK2VUUMhbOzwujqa4xpnMBqhmMzFew4KKw9BqIRoGwRs/iQrsAFhL4vLiyiDYX6qzt
	9vOPkKcY13hYc3QjGB7xFh+69qaWeOOVS6HnqMPFZptLqrxls1HOAubPmX1qn0IMZR8bKiPIZrf
	iA=
X-Received: by 2002:a05:600c:a15:b0:46e:35a0:3587 with SMTP id 5b1f17b1804b1-4832021fe42mr33879635e9.27.1770374283740;
        Fri, 06 Feb 2026 02:38:03 -0800 (PST)
Message-ID: <4bdcd7e0-ff9d-4bbd-8337-aa80d7d66ce9@suse.com>
Date: Fri, 6 Feb 2026 11:38:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
To: Bertrand Marquis <bertrand.marquis@arm.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: <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 09:17, Bertrand Marquis wrote:
> Xen does not provide a Darwin build configuration for selecting
> GNU tool definitions. On macOS, the tools we use are either GNU
> compatible or we only rely on features supported by Mac OS, so
> using the GNU tool definitions is appropriate.
> 
> Add config/Darwin.mk to include StdGNU.mk and force
> XEN_COMPILE_ARCH=Darwin, ensuring Darwin builds always follow
> the cross-compile path as we depend on the Linux ABI so compiling
> on Mac OS is always a cross compilation case.
> 
> An example of how to build the hypervisor for arm64 on Mac OS
> (tools cannot be build for now) using a compiler from brew:
> - brew install aarch64-elf-gcc
> - cd xen
> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v2:
> - Subject was "xen: Add macOS hypervisor build configuration"
> - Update Darwin.mk comments to more accurate versions (Jan)
> - Remove the build-on-macos help as we have no dependency on anything
>   coming from brew anymore and the toolchain can be retrieved by lots of
>   other solutions than brew on mac os. Switch to a simple doc in the
>   commit message instead

Did you see Roger's notice on Matrix about objcopy?

> --- /dev/null
> +++ b/config/Darwin.mk
> @@ -0,0 +1,7 @@
> +# Use GNU tool definitions as the tools we are using are either GNU compatible
> +# or we only use features which are supported on Mac OS.
> +include $(XEN_ROOT)/config/StdGNU.mk
> +
> +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
> +# Force COMPILE_ARCH to a fake value to make sure it is always the case.
> +XEN_COMPILE_ARCH = Darwin

I first wondered why you say "fake", seeing the file is named Darwin.mk. But
in Config.mk's cross-compile check the build host OS doesn't even matter. So
yes, it needs faking here for the time being.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 11:52:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 11:52:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223151.1530759 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voKO0-0006Gg-2J; Fri, 06 Feb 2026 11:52:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223151.1530759; Fri, 06 Feb 2026 11: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 1voKNz-0006GZ-Vr; Fri, 06 Feb 2026 11:52:31 +0000
Received: by outflank-mailman (input) for mailman id 1223151;
 Fri, 06 Feb 2026 11:52: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=C95x=AK=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1voKNy-0006GT-JH
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 11:52:30 +0000
Received: from fhigh-b8-smtp.messagingengine.com
 (fhigh-b8-smtp.messagingengine.com [202.12.124.159])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4c7e1935-0352-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 12:52:24 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 56A527A0028;
 Fri,  6 Feb 2026 06:52:22 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Fri, 06 Feb 2026 06:52:22 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 6 Feb 2026 06:52:20 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c7e1935-0352-11f1-9ccf-f158ae23cfc8
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=1770378742;
	 x=1770465142; bh=UN/rphT7k7nEBywS8b1d1sD/3Ze95vxqDdoTJfTUZqY=; b=
	Cv6hvI5FbIlCxmYhZlMRzOLs+ckXGOzybxomPZS1y344D9snw7JyJYAgn0K+vxiL
	M0IXlLQSVL8GD6Eifbu/mM3Q6SbOw7+he7UoSDg0VMy14H274GOGkrJghCIF1M14
	xZJHTnPf9E5V5N1wiAbyzDTKV0slfhsIdLEDStJedhfq8/EIcDRxk2nGraR6jzrQ
	/iuaCKn5iue3MwHEfsUNxfkBFnvcEAvFEwv53w7XcnrWYFhHbUtOI7nbgrs+n9Gn
	+V7bwvbbRuWsCBeCc9ka5Wg42uZrrRqpA8qXwz9eFOeZwW5tijQ7B3CTxTiHIB1i
	E5AKqsiRJ3E1xtir0fWeRQ==
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=
	1770378742; x=1770465142; bh=UN/rphT7k7nEBywS8b1d1sD/3Ze95vxqDdo
	TJfTUZqY=; b=sRw+vSq2/Q1C4fVGO9dee8tCbZAcgBlP4S/EpuRWPXzvSLATqms
	+YVGuGobamnSqzEZwZvxO2IYjzhklQj6ZkRX0wf6iKzQCWz9CvhcoTk5Sm9n9w6z
	JfnYo44Rk5+kjsnkA9g1e+w+BVIxWpB6Dx/auD1p1zTHY3iSGZdFxL1riz3Si6rd
	dAqd27+25AtFUA3O5jJynpklib7CRlihmSF4jwtMKVrxDW1tVnCEV60VVi2nmc8b
	4G1UoahLX3U7lnIcnpGq+X/+TQfRjHENnbAhPFfd5a3KijVT8Wu+Snj/vs0d3VWe
	qwi8zvsFE0z72r+fWL765E75+GbcFKQHzXw==
X-ME-Sender: <xms:9dWFaRCJsdY8xdbUovR5UZaZ9o2ZeL-xtiPKFCufClddS6OvZvsIgA>
    <xme:9dWFacGiR51moW_r8kGq8IeMJSSSP_kr0jNHiTxZWmQIyFWyUiujGXKLoZOgQgDdx
    Kg3xynn6kERp0zBoqzuhi_dYMUg5x_ONP0RYEi33SsFcvwmiA>
X-ME-Received: <xmr:9dWFaRDrSy_r3K5Xtm_ozzO2r8RoZ2XCyPp08i8ol7GxD2R7GCcWYwVLD6BpuPefd-FR80l4KVb9wJDvjy4xPhE7MOMbG-RdnnY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddukeekuddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepieeluddv
    keejueekhfffteegfeeiffefjeejvdeijedvgfejheetuddvkeffudeinecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopedutddpmhhouggvpehsmhhtphhouhhtpdhrtghp
    thhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgtphhtthhopehtvgguugihrd
    grshhtihgvsehvrghtvghsrdhtvggthhdprhgtphhtthhopegrnhgurhgvfidrtghoohhp
    vghrfeestghithhrihigrdgtohhmpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrh
    gusehvrghtvghsrdhtvggthhdprhgtphhtthhopehmihgthhgrlhdrohhriigvlhesrghm
    ugdrtghomhdprhgtphhtthhopehjuhhlihgvnhesgigvnhdrohhrghdprhgtphhtthhope
    hrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehsshhtrggsvghl
    lhhinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopeguphhsmhhithhhsegrphgvrh
    htuhhsshholhhuthhiohhnshdrtghomh
X-ME-Proxy: <xmx:9dWFaSl3uBs0XUhHghvJnMt3Fi6n3Cp_NAPkpMWg36rl5iETrwFBbA>
    <xmx:9dWFaXNqg0zMc8b2f954SzPKn_rUP4e1Vvd2-I_NOTGAlrFubJ-NsA>
    <xmx:9dWFaX8cnlp4ie6v9eipNTo7ifmwK-FHsnfqIxUwiEvaE19cxqs-eQ>
    <xmx:9dWFaRGlwJ1WsJLpNiupRt8ENnJiRAgsMYirR0Tin-LHrDoXAFB_WA>
    <xmx:9tWFabEJ8mKA94zjbM0hlwCkaLZDtJW3wSdsJrThkIG5opBWAeEDfDNg>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 6 Feb 2026 12:52:18 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
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>, 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
Subject: Re: [PATCH] efi: Enable EFI_SET_VIRTUAL_ADDRESS_MAP by default
Message-ID: <aYXV8o4LjGLQ0VaE@mail-itl>
References: <82dfede43d81c2072f90b01d12fe5ef18c80fc24.1770312308.git.teddy.astie@vates.tech>
 <be09e51c-5201-4837-9921-5ac0d8cae582@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="cPD7qH7Wc/gZxncq"
Content-Disposition: inline
In-Reply-To: <be09e51c-5201-4837-9921-5ac0d8cae582@suse.com>


--cPD7qH7Wc/gZxncq
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 6 Feb 2026 12:52:18 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
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>, 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
Subject: Re: [PATCH] efi: Enable EFI_SET_VIRTUAL_ADDRESS_MAP by default

On Fri, Feb 06, 2026 at 07:29:49AM +0100, Jan Beulich wrote:
> On 05.02.2026 18:27, Teddy Astie wrote:
> > Many machines fail to boot if this option is disabled, as
> > there are no known drawback toggling this option, enable it
> > by default.
>=20
> "no known drawback" ignores why it wasn't enabled originally. Imo this
> wants at least mentioning, if not discussing.

Relevant discussion was at https://lore.kernel.org/xen-devel/4e46a667-da69-=
9f25-387e-4dd45db10cda@suse.com/
(previous attempt at switching the default)

And also, (large) part of the reason for this being off by default
initially was it being close to 4.13 release:
https://lore.kernel.org/xen-devel/272a9354-bcb4-50a4-a251-6a453221d6e3@citr=
ix.com/

Now it's substantially earlier in the 4.22 release cycle.

But yes, some note in patch description would be nice.

> > --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -363,13 +363,14 @@ config KEXEC
> > =20
> >  config EFI_SET_VIRTUAL_ADDRESS_MAP
> >      bool "EFI: call SetVirtualAddressMap()" if EXPERT
> > +    default y
> >      help
> >        Call EFI SetVirtualAddressMap() runtime service to setup memory =
map for
> >        further runtime services. According to UEFI spec, it isn't stric=
tly
> >        necessary, but many UEFI implementations misbehave when this cal=
l is
> >        missing.
> > =20
> > -      If unsure, say N.
> > +      If unsure, say Y.
>=20
> When this was added, it was actually hacked in with the aim of minimal
> intrusiveness. When we now default it to on, I wonder if other changes
> shouldn't be made (maybe not right in this patch, but perhaps in a
> single series). For example, identity mapping (with its implied
> restrictions) ought to be possible to do away with when the option is
> enabled. Whether the separate EFI page tables would still be needed
> also is questionable.

This is an interesting question, but IMHO the current approach is safer
(or rather: more reliable) - which is relevant given how many UEFI
systems are not exactly spec compliant...
One approach that could be tried is to mirror what Linux does, but I
don't see it as necessary for flipping the default. And in fact I would
rather prefer to not do that at the same time - the current approach is
battle tested by several downstream projects on a large number of
systems.

> I further wonder whether the EXPERT dependency of the prompt wouldn't
> better be dropped when flipping the default.

IMO the EXPERT dependency is still relevant. This option is basically
"break Xen on a large number of UEFI systems".

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmF1fIACgkQ24/THMrX
1ywpaAf+IdQvew+Tmba3gd8DfFsbt/AqXwj2y9McV+0qoKjZ7VuLLj5Z3L5rY48Q
nI/n/5w8Jbanh/uK4/o87ApPxnw4SRKftr3w308s3lQPE/qoxwy7BPpbULaguMV+
yUEO9cQTTPprSsY7qcu58HCWKgWF0jA1x2IA3uKU8WyDdxEdQ7dvJp3FX/xWSzaG
W8j1TVAj1XIoisNe8q6aPB9+wtFaecCj9m7eRU0C873ax6y5V+ZbWah6z/GVX118
4QW0JligkgQY5Wb6kJyQ/0O5e8qC24E2nbtVAtx+bfMY4n+4PmUAKgRrcBqM5wst
FWNkBl5ASrJR4AgrxPnY3Y32xTk8Hg==
=rCxC
-----END PGP SIGNATURE-----

--cPD7qH7Wc/gZxncq--


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 12:04:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 12:04:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223163.1530768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voKZu-00082q-7e; Fri, 06 Feb 2026 12:04:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223163.1530768; Fri, 06 Feb 2026 12:04: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 1voKZu-00082j-4Q; Fri, 06 Feb 2026 12:04:50 +0000
Received: by outflank-mailman (input) for mailman id 1223163;
 Fri, 06 Feb 2026 12:04: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=C95x=AK=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1voKZs-00082d-GT
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 12:04:48 +0000
Received: from fout-b1-smtp.messagingengine.com
 (fout-b1-smtp.messagingengine.com [202.12.124.144])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0537be4c-0354-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 13:04:43 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.stl.internal (Postfix) with ESMTP id DF4411D0013D;
 Fri,  6 Feb 2026 07:04:41 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Fri, 06 Feb 2026 07:04:42 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 6 Feb 2026 07:04:39 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0537be4c-0354-11f1-b161-2bf370ae4941
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=1770379481;
	 x=1770465881; bh=RpwilhNWGcU20VgC4fNtVXpo08Rs6aa7wHosmip5EVQ=; b=
	XI7cDEnbaS4a910RPsaP63/uYfF16p07shE0ZjP6DuqyPNzB49pQ4Sr3Ql9ERa6X
	03w2OMsVUaaN5UnWC9D3wG3j4aL78dr1ViUQOLlSOZn7bvuGEyC4Ot0OSdzr+gwm
	aQDnZ8v6WVpxow04hqVYp0c8tL7eSj+FwL571desm2uKUnRomUwo5tGNig8KbKTa
	likbhwTUElsaVQUPIw5/Z3KWcvP6q6qlcaQjseMe6id3TBvb6LQutIw9fhjJBJTu
	u/5qNqXv/OGkv1TR12r6e9qEbICWADDdFbOZy6PXdbEcn5mDNdpdjCe17KsQXyPF
	PKdASFHE323WH7RRAZ2pew==
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=
	1770379481; x=1770465881; bh=RpwilhNWGcU20VgC4fNtVXpo08Rs6aa7wHo
	smip5EVQ=; b=l2hq+XDyXo4RDYa2tyFjUddxjcFVn3zQsOhNo2mQ/hxzyVjopfP
	UykzOD/uqR3MoOMMg1N81JdRnfSOurTeVDEbAiF+qYrblTs2NZqb/TXQvmCVOyiy
	MxuVMAAxnxRI8qtnnS7SSbWJnTgxHTZt6TGPpygmmk+VO/pwHGWzYp+lITYNrKKP
	L62cbSMVDsSQvhSIMKVTjGig3+8bHUoZ8Qs9136m0jE80VhRSHE4QoQ2elCAOvRk
	IWdGX2PG+PXJkD+twI3KhYVnRSmUwE5Lp4dD+YoSnkkpCd3nPrPn2TWwyfazJ5Uw
	ItM4WLOX1Mgad3ejglRUWklpzwjQCwinTWQ==
X-ME-Sender: <xms:2diFaeoXj69JmIBh8bn4Q5R6W0yIaj5SVDcd-HCCvDyHJDA2ajxs-A>
    <xme:2diFaZNR7b7Rc4sI9YkQa4bQM5tnjexduwJH302-IrMtPZwDVAq_nxpMA0MdUj1Dl
    4VZt1Qjm_EonE2xHm3sdiSd5Enggs2belbLbMJoXTyjEDlHbA>
X-ME-Received: <xmr:2diFaXoGgKM3-ELfG2PA5fLARx7yQzeK5anpIZ7od3-a8uj2SmQWDGsBwIQTxqczLKYFOJcDTuT978F3wItajlDCqUfqwD5KfH8>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddukeekuddvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepuddtpd
    hmohguvgepshhmthhpohhuthdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrdgt
    ohhmpdhrtghpthhtohepthgvugguhidrrghsthhivgesvhgrthgvshdrthgvtghhpdhrtg
    hpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigidrtghomhdprhgtphht
    thhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpdhrtghpthhtoh
    epmhhitghhrghlrdhorhiivghlsegrmhgurdgtohhmpdhrtghpthhtohepjhhulhhivghn
    seigvghnrdhorhhgpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtoh
    hmpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorhhgpdhrtghp
    thhtohepughpshhmihhthhesrghpvghrthhushhsohhluhhtihhonhhsrdgtohhm
X-ME-Proxy: <xmx:2diFaUtfQZjwR-ZhRBo-eh9bdvDbBYCgwqdUcHvXSGbxHhbpEZC4ew>
    <xmx:2diFae3MtM7E6DTWTSRwJivMzbxVyvxHUWHsW1neZSkNQvissn0pNQ>
    <xmx:2diFaXGmlrzt7_WqE6PZzfZmRCAjgCOTFXoqj0S4IBQ26-n_aqz40g>
    <xmx:2diFaRvNmqfmF2VKuK3PQ9VYFPhlWFkhPQ-YhQJkannpfxs2F4ZegA>
    <xmx:2diFaVTCNju2rwTdjXCqOrQJc6oGZrUzvhfC8moURRP9aczcFijuup9p>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 6 Feb 2026 13:04:38 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
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>, 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
Subject: Re: [PATCH] efi: Enable EFI_SET_VIRTUAL_ADDRESS_MAP by default
Message-ID: <aYXY1iLWmoBzTb5M@mail-itl>
References: <82dfede43d81c2072f90b01d12fe5ef18c80fc24.1770312308.git.teddy.astie@vates.tech>
 <be09e51c-5201-4837-9921-5ac0d8cae582@suse.com>
 <aYXV8o4LjGLQ0VaE@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="6fIOSKi6fkyCQFPu"
Content-Disposition: inline
In-Reply-To: <aYXV8o4LjGLQ0VaE@mail-itl>


--6fIOSKi6fkyCQFPu
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 6 Feb 2026 13:04:38 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
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>, 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
Subject: Re: [PATCH] efi: Enable EFI_SET_VIRTUAL_ADDRESS_MAP by default

On Fri, Feb 06, 2026 at 12:52:18PM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Fri, Feb 06, 2026 at 07:29:49AM +0100, Jan Beulich wrote:
> > I further wonder whether the EXPERT dependency of the prompt wouldn't
> > better be dropped when flipping the default.
>=20
> IMO the EXPERT dependency is still relevant. This option is basically
> "break Xen on a large number of UEFI systems".

To be clear: I mean disabling the option (changing the new default)
should be IMHO hidden behind EXPERT.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmF2NYACgkQ24/THMrX
1yytngf/edaIsV+0DngPXnzmL9xsuPT3k0V7h4WSgth5ouF4gv02DFYC3p3FhLoU
yqEACmeQ8D11URuS5Lyol4V2sztydtiIYbxNjr1/J/MQOocD4NMEWQziYljbdlNT
nH+POiDeIfGXNiUKq+Jk8Vc6Lb0Glwumq5DbAjcQnIY9CgVEPgkXVZjY74kfzEQd
vRSwhjStcPnnrNAqjtyeCHCD79qQf5ryE510oidv0pyQs4afh5pAr9W75JRwzwtB
ztuVpvxZUiyXDmFdTtHWTYnvjh30/3uNDZMti85bdYEtNc5JUccxi6Z1olows3YQ
LsiBiUb6UybCn+vMXSA3rKawFdZamA==
=1uHT
-----END PGP SIGNATURE-----

--6fIOSKi6fkyCQFPu--


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 12:58:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 12:58:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223189.1530778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voLPL-0006P6-Ub; Fri, 06 Feb 2026 12:57:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223189.1530778; Fri, 06 Feb 2026 12: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 1voLPL-0006Oy-S4; Fri, 06 Feb 2026 12:57:59 +0000
Received: by outflank-mailman (input) for mailman id 1223189;
 Fri, 06 Feb 2026 12: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=RA+/=AK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1voLPK-0006Os-GW
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 12:57: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 757dbe33-035b-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 13:57:57 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b8ea3d15580so87374466b.0
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 04:57:57 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacb18d0sm79499466b.40.2026.02.06.04.57.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 06 Feb 2026 04:57:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 757dbe33-035b-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770382677; x=1770987477; 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=BBgIkJRx76QyS8sZ0e4NRUt9O0kSm6br4RWWPw5x1C8=;
        b=iIeJtz5SuJeZhJ8lak7bgIEQ6Sc5fpoBTtT48HIL3LliSc3oimeBDm978mgkhELyGM
         N4FDzLvgYoVWvzTaia10NN0HtpyZi09EI/VcevXd+LHNarf7dFUVzlccNsehy01v3gpQ
         cQ3CJqL5YJipjvH+QaIQ44nJeEg7Q146Lpw4dDqAuZ+unZtF7X9YhvQGzuA+v3lAo1iX
         eKOYc26z5mp8dyIzuV4ZVMrXzPHuVYPQnqhK5T/cDQjGuDajW9m7hc1HOGeCuR9bRVmX
         ijF8KbixLmBT6oQ5i9R73xIFIQURTo3qD0ynBxDTVu77qTdWKAOnL2ZLriZUZyjpcmDB
         +JNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770382677; x=1770987477;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=BBgIkJRx76QyS8sZ0e4NRUt9O0kSm6br4RWWPw5x1C8=;
        b=dMlymiLuT1YtJY7+Hb5DIrZlcFfPlq2dFlM0Txl4325y0JtJz6a1BBgmCIg9zjeWzo
         lYhwKdYVvl986KqsBanlI8qH2EvG+Ux7CUfsN7FUAP6EzltJIjH5BTM0bMsHiyZQv8EU
         su2iK8tLv05n9jzK+3C8evlLQNHdU+MIZaEFxSOj1P1R5Wl+C+5G7upQPoT78Ue5RITW
         Zx/rkYpUbyt87x7EugVM6RJpxEiBEDh9bb+dFlO5O2AEx64qdsSpV4pwscmnPZbuYKWX
         GpLp5/3KFEgwt4oCk/Ar7rudMxXSFCS46JY8hzDPIM40I5u6n9sdzeAfjM1INUfSFPFA
         LC/w==
X-Forwarded-Encrypted: i=1; AJvYcCWhHrUbj4gte/v/y4d1U9WZAtonTzE92dRjaMpDPD9k7wJ7UyaX4HU2lzuOAlxkpXhw5RPWy06BLKk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3FHhdZcKzldIyRsJfunsSyWGjqsF3pGLDSabdLzY0eCb3Uel3
	NDAVk9m3gAib2gbdV4o3ocpYC92V0D4Hx9YBXYU9aWoyStyX+BPZ+tuN
X-Gm-Gg: AZuq6aInBDru+4uUIwSmsdNNS9z2D/Yq3pMvhkX9ci1EYUiDpqdZinxesGTXKhCWW+W
	b6go+9Q/4ImoeiOuHzW3MM7FgIvpaNXnX3DbBlLe1hMVsQbCbPJGMZxQxBrW6FRUn2D0+6umseF
	F+z78y7i4M78EuhLRFnKcI4BfBVlPi1q0cPyql/xInn09e1r6o+IWV1SFXkqyGrcvSmtVdT5yHy
	tMyYbThp2igvfPYJ6M5pIewihhO5xTe8/SCMJvwozA6irla6CFc4iKBj2zmHgX7U/RqJxetp3xS
	q/cv+Wbz7aJRm18vkAsCQVH0LLHRkdd+eOR0Kzj6x2oXYn0PwMgeqjRJZipvhG7aoRkjR760ySf
	VockPh3TBA6KbZZDIrzkuVejTZtkzLurUwthqgoa8EFUfGMSx0NbmSJ2X4XBix8mduJtz6iBG1l
	GctuAokKtgc4Svlk4IUw1uWFiEsXZEi5XcRwnZHwmBercQFODzjis5iin4FAmDIRg=
X-Received: by 2002:a17:907:a05:b0:b87:756b:cfab with SMTP id a640c23a62f3a-b8edf2faa52mr155963466b.36.1770382676601;
        Fri, 06 Feb 2026 04:57:56 -0800 (PST)
Message-ID: <1beb7c04-5c21-4ba2-a74e-467f659224e5@gmail.com>
Date: Fri, 6 Feb 2026 13:57:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: move vCPU exec state barriers
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>, Juergen Gross <jgross@suse.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/5/26 12:33 PM, Jan Beulich wrote:
> The barrier in vcpu_context_saved() is specifically about the clearing of
> ->is_running. It isn't needed when we don't clear the flag.
>
> Furthermore, one side of the barrier being in common code, the other would
> better be, too. This way, all architectures are covered (beyond any
> specific needs they may have).

Don't we want then move ...

>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -333,17 +333,7 @@ void sync_local_execstate(void)
>   
>   void sync_vcpu_execstate(struct vcpu *v)
>   {
> -    /*
> -     * We don't support lazy switching.
> -     *
> -     * However the context may have been saved from a remote pCPU so we
> -     * need a barrier to ensure it is observed before continuing.
> -     *
> -     * Per vcpu_context_saved(), the context can be observed when
> -     * v->is_running is false (the caller should check it before calling
> -     * this function).
> -     */
> -    smp_rmb();
> +    /* Nothing to do -- no lazy switching */
>   }

... to common code with ability to re-define sync_vcpu_execstate() by arch
as only x86 does something inside this function?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 13:13:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 13:13:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223201.1530798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voLe4-0000rN-Bc; Fri, 06 Feb 2026 13:13:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223201.1530798; Fri, 06 Feb 2026 13: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 1voLe4-0000rG-8v; Fri, 06 Feb 2026 13:13:12 +0000
Received: by outflank-mailman (input) for mailman id 1223201;
 Fri, 06 Feb 2026 13: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=R5re=AK=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1voLe2-0000do-OF
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 13:13:10 +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 953eed7e-035d-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 14:13:09 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48327b8350dso3915035e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 05:13:09 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296c0f2esm5726244f8f.19.2026.02.06.05.13.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Feb 2026 05:13:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 953eed7e-035d-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1770383589; x=1770988389; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vW8VdQJGm+HJLfdiFyEYvmbpGb/n1ANvl9UX6UaPxlQ=;
        b=cAkDeF6g4wLikJvbUOO/yEghYdLfqF+bAa1fAf7YzhZ5k44mHB3zNc3WddNM/++G4O
         eyJAZ74JbTG9tJHF4qwLe+SnmvdNzdnlCcUVbwo9+YfyXCz57bk9bZO0E7u5qkzmvylk
         ApGldOc9UB1Jbrv8Fr+N6X5jDjm7j0z5Lss90=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770383589; x=1770988389;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vW8VdQJGm+HJLfdiFyEYvmbpGb/n1ANvl9UX6UaPxlQ=;
        b=P3+1w3wrrmRoU5YslnOYXqMaBmAsV9kBricHaxvuFTo8i8QZM0nDvdEbin4LApOHNt
         mWILaAxFesncX77cxXbZ6uj9OgngbrciOYQwn7lgL2Tcaa+Ag36A0tQMPr5YoETu49iy
         NqUrsDk3sPPsCUPqmE2vlNLsNbfCKdb7GRNcv1YNgvq93iiI/Ti/xjVcvS1nuJjl7JFC
         QuUuEl1B99WP0kv9YLha7UVZtiHXKQdRvIYrmkO0KJXTJOVv9GRz01yonZ8KC9pgjJ2R
         byg8hxXYR/OATP+DjPjMuBjwAGB5AlLBFE53szRcpJr763D/2Dxyo5zf8LmQh/0qS9kn
         Gbrg==
X-Gm-Message-State: AOJu0YxgRWrbC4ejO6PqMTpxlDizaGA4R2kfKzhTPLlnkdChkapbsyMZ
	Eu8Wr2tstSWicX1Q7tJixf/W/cqoBPPH7JnJQ8A2ABd0e5RsKb62124chBYJGnI3Wtx9rhuBCXy
	1oIlurObPtA==
X-Gm-Gg: AZuq6aJmuEwpEGXQcz3Lvgo7JaN2eT3Ygyjk2ihEITmiFzM97ILRxalMSDVjAl0YuvG
	QSxgh/Q5PEVvSAR4ib18jZCzlM8JhS8Z9H5F1jm9AVFarsVMS8RbqI8yboZLcCOUHrNqNBmq4hv
	pxM9PHQimnbtgA+frvORmoqy4//g2yk0FrbWpphYEi72HDIPW8qYX37dXph/aRsW3jKd1WltJND
	nQaD6f7H7s9AZi/GLg/iS5Uvj6k733l2/IE0uHURSxqK0KBgTNjaDUPmlsfgN2NGVEDjETCmW6t
	7UcR/5PzuBK1gxODpIkbyn59lm1YUJ8J7t5rGeFrrPxnoiUNAoWrVvysBxdSiyMq99C4DMDGYat
	XfnYGK3nhX+zDWyDudb/feQRrcntHmmJGaJy/R6nKOwJzkhrQ6qk16XYExnVhxuX7fBQDCJ4eCb
	I/yvhQHj1ceoiZ5pwC99DGdrx2q9fxhVjVFAaZRD0EzUU5AlnVuCO9WYY4HSi/dn5w09jj6g==
X-Received: by 2002:a05:600c:470c:b0:483:103c:b1ee with SMTP id 5b1f17b1804b1-483201da9bamr41523865e9.8.1770383588708;
        Fri, 06 Feb 2026 05:13:08 -0800 (PST)
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/memtype: Deduplicate rendering of X86_MT_*
Date: Fri,  6 Feb 2026 13:13:05 +0000
Message-Id: <20260206131305.2675905-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260206131305.2675905-1-andrew.cooper3@citrix.com>
References: <20260206131305.2675905-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The MTRR infrastructure has two different copies of mtrr_attrib_to_str(), one
in .init and one in regular .text.  EPT has another variation.

All 3 are incomplete; they encode only the non-reserved values for the task,
but hiding reserved values with ?'s is detrimental to the diagnostic purpose
of these existing in the first place.

Implement a single function which covers all the architectural values.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

Yes I know EPT tries to render the reserved reserved encodings numerically.
It's a cute trick, but does get foiled by the '[MTRR_NUM_TYPES] = "??";' row
which breaks things.

Putting this in traps.c isn't great, but there isn't an obviously better place
either.
---
 xen/arch/x86/cpu/mtrr/generic.c  | 21 ++++-----------------
 xen/arch/x86/cpu/mtrr/main.c     | 21 +++------------------
 xen/arch/x86/include/asm/traps.h |  1 +
 xen/arch/x86/mm/p2m-ept.c        | 22 +++-------------------
 xen/arch/x86/traps.c             | 16 ++++++++++++++++
 5 files changed, 27 insertions(+), 54 deletions(-)

diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index ad6a24f055ec..0b30689a0b99 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -13,6 +13,7 @@
 #include <asm/msr.h>
 #include <asm/mtrr.h>
 #include <asm/system.h>
+#include <asm/traps.h>
 
 #include "mtrr.h"
 
@@ -125,20 +126,6 @@ void __init get_mtrr_state(void)
 static bool __initdata mtrr_show;
 boolean_param("mtrr.show", mtrr_show);
 
-static const char *__init mtrr_attrib_to_str(mtrr_type x)
-{
-	static const char __initconst strings[MTRR_NUM_TYPES][16] =
-	{
-		[X86_MT_UC] = "uncachable",
-		[X86_MT_WC] = "write-combining",
-		[X86_MT_WT] = "write-through",
-		[X86_MT_WP] = "write-protect",
-		[X86_MT_WB] = "write-back",
-	};
-
-	return (x < ARRAY_SIZE(strings) && strings[x][0]) ? strings[x] : "?";
-}
-
 static unsigned int __initdata last_fixed_start;
 static unsigned int __initdata last_fixed_end;
 static mtrr_type __initdata last_fixed_type;
@@ -149,7 +136,7 @@ static void __init print_fixed_last(const char *level)
 		return;
 
 	printk("%s  %05x-%05x %s\n", level, last_fixed_start,
-	       last_fixed_end - 1, mtrr_attrib_to_str(last_fixed_type));
+	       last_fixed_end - 1, x86_mt_name(last_fixed_type));
 
 	last_fixed_end = 0;
 }
@@ -188,7 +175,7 @@ static void __init print_mtrr_state(const char *level)
 	int width;
 
 	printk("%sMTRR default type: %s\n", level,
-	       mtrr_attrib_to_str(mtrr_state.def_type));
+	       x86_mt_name(mtrr_state.def_type));
 	if (mtrr_state.have_fixed) {
 		const mtrr_type *fr = mtrr_state.fixed_ranges;
 		const struct fixed_range_block *block = fixed_range_blocks;
@@ -214,7 +201,7 @@ static void __init print_mtrr_state(const char *level)
 			       level, i,
 			       width, mtrr_state.var_ranges[i].base >> 12,
 			       width, mtrr_state.var_ranges[i].mask >> 12,
-			       mtrr_attrib_to_str(mtrr_state.var_ranges[i].base &
+			       x86_mt_name(mtrr_state.var_ranges[i].base &
 			                          MTRR_PHYSBASE_TYPE_MASK));
 		else
 			printk("%s  %u disabled\n", level, i);
diff --git a/xen/arch/x86/cpu/mtrr/main.c b/xen/arch/x86/cpu/mtrr/main.c
index eff0500f0d06..f11fbf1a223b 100644
--- a/xen/arch/x86/cpu/mtrr/main.c
+++ b/xen/arch/x86/cpu/mtrr/main.c
@@ -39,6 +39,7 @@
 #include <asm/msr.h>
 #include <asm/mtrr.h>
 #include <asm/processor.h>
+#include <asm/traps.h>
 
 #include "mtrr.h"
 
@@ -63,22 +64,6 @@ static bool __ro_after_init mtrr_if;
 static void set_mtrr(unsigned int reg, unsigned long base,
 		     unsigned long size, mtrr_type type);
 
-static const char *const mtrr_strings[MTRR_NUM_TYPES] =
-{
-    "uncachable",               /* 0 */
-    "write-combining",          /* 1 */
-    "?",                        /* 2 */
-    "?",                        /* 3 */
-    "write-through",            /* 4 */
-    "write-protect",            /* 5 */
-    "write-back",               /* 6 */
-};
-
-static const char *mtrr_attrib_to_str(int x)
-{
-	return (x <= 6) ? mtrr_strings[x] : "?";
-}
-
 /*  This function returns the number of variable MTRRs  */
 static void __init set_num_var_ranges(void)
 {
@@ -364,8 +349,8 @@ int mtrr_add_page(unsigned long base, unsigned long size,
 			if (types_compatible(type, ltype))
 				continue;
 			printk (KERN_WARNING "mtrr: type mismatch for %lx000,%lx000 old: %s new: %s\n",
-			     base, size, mtrr_attrib_to_str(ltype),
-			     mtrr_attrib_to_str(type));
+			     base, size, x86_mt_name(ltype),
+			     x86_mt_name(type));
 			goto out;
 		}
 		if (increment)
diff --git a/xen/arch/x86/include/asm/traps.h b/xen/arch/x86/include/asm/traps.h
index 73097e957d05..00dde631ea5b 100644
--- a/xen/arch/x86/include/asm/traps.h
+++ b/xen/arch/x86/include/asm/traps.h
@@ -19,6 +19,7 @@ void percpu_traps_init(void);
 extern unsigned int ler_msr;
 
 const char *vector_name(unsigned int vec);
+const char *x86_mt_name(unsigned int mt);
 
 #endif /* ASM_TRAP_H */
 
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index 204bdb054a89..1950beb745af 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -21,6 +21,7 @@
 #include <asm/mtrr.h>
 #include <asm/p2m.h>
 #include <asm/paging.h>
+#include <asm/traps.h>
 
 #include <public/hvm/dm_op.h>
 
@@ -1489,21 +1490,6 @@ void ept_p2m_uninit(struct p2m_domain *p2m)
     free_cpumask_var(ept->invalidate);
 }
 
-static const char *memory_type_to_str(unsigned int x)
-{
-    static const char memory_types[8][3] = {
-        [X86_MT_UC]      = "UC",
-        [X86_MT_WC]      = "WC",
-        [X86_MT_WT]      = "WT",
-        [X86_MT_WP]      = "WP",
-        [X86_MT_WB]      = "WB",
-        [MTRR_NUM_TYPES] = "??",
-    };
-
-    ASSERT(x < ARRAY_SIZE(memory_types));
-    return memory_types[x][0] ? memory_types[x] : "?";
-}
-
 static void cf_check ept_dump_p2m_table(unsigned char key)
 {
     struct domain *d;
@@ -1551,14 +1537,12 @@ static void cf_check ept_dump_p2m_table(unsigned char key)
                 if ( p2m_is_pod(ept_entry->sa_p2mt) )
                     printk("gfn: %13lx order: %2d PoD\n", gfn, order);
                 else
-                    printk("gfn: %13lx order: %2d mfn: %13lx %c%c%c %c%c%c\n",
+                    printk("gfn: %13lx order: %2d mfn: %13lx %c%c%c %s%c\n",
                            gfn, order, ept_entry->mfn + 0UL,
                            ept_entry->r ? 'r' : ' ',
                            ept_entry->w ? 'w' : ' ',
                            ept_entry->x ? 'x' : ' ',
-                           memory_type_to_str(ept_entry->emt)[0],
-                           memory_type_to_str(ept_entry->emt)[1]
-                           ?: ept_entry->emt + '0',
+                           x86_mt_name(ept_entry->emt),
                            c ?: ept_entry->ipat ? '!' : ' ');
 
                 if ( !(record_counter++ % 100) )
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index f621b99a5fcc..0d951762bce2 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1044,6 +1044,22 @@ const char *vector_name(unsigned int vec)
     return (vec < ARRAY_SIZE(names) && names[vec][0]) ? names[vec] : "???";
 }
 
+const char *x86_mt_name(unsigned int mt)
+{
+    static const char names[8][4] = {
+        [X86_MT_UC]      = "UC",
+        [X86_MT_WC]      = "WC",
+        [X86_MT_RSVD_2]  = "Rs2",
+        [X86_MT_RSVD_3]  = "Rs3",
+        [X86_MT_WT]      = "WT",
+        [X86_MT_WP]      = "WP",
+        [X86_MT_WB]      = "WB",
+        [X86_MT_UCM]     = "UC-",
+    };
+
+    return mt < ARRAY_SIZE(names) ? names[mt] : "?";
+}
+
 void asmlinkage do_double_fault(struct cpu_user_regs *regs)
 {
     unsigned int cpu;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 13:13:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 13:13:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223200.1530788 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voLe3-0000e7-5C; Fri, 06 Feb 2026 13:13:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223200.1530788; Fri, 06 Feb 2026 13: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 1voLe3-0000e0-2d; Fri, 06 Feb 2026 13:13:11 +0000
Received: by outflank-mailman (input) for mailman id 1223200;
 Fri, 06 Feb 2026 13: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=R5re=AK=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1voLe2-0000do-47
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 13:13:10 +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 94e30115-035d-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 14:13:09 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47ee0291921so6887805e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 05:13:09 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296c0f2esm5726244f8f.19.2026.02.06.05.13.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Feb 2026 05:13:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94e30115-035d-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1770383588; x=1770988388; 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=uFR8lza34CFQ/+zGTVuQRm28nikRCMImKoJ3e0Tnkdc=;
        b=fzAUKOwXJoHSedRfW447g2yfWJPc/BDSORLddqKKcoMsx4pKNO+CJtFpoHQEY3ARda
         mA7v+CWaw/sxQ2yV9Ta+9Rlac4MYFDXffbhEttX3NTr4jq86YTUS3jC9FpbHjxp3pXMj
         FMk81+I8cbVtOvRCtm3njcbPZhnhAPkRxm0NI=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770383588; x=1770988388;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uFR8lza34CFQ/+zGTVuQRm28nikRCMImKoJ3e0Tnkdc=;
        b=BZ8ejp/4twd+HfhFQ89SuvE5W8hdGVBmqy1T04wN6qvPEtexo6Un0SUu1TlkgUIEYy
         aqBsPlEdi9YSH7egQn+SutdLtl0oI+ebAX+53Ghbpz/mYMsJ+WChmekTU6sW5gadICuc
         B5O7FJYT1WIAnk4F1g0wMyZIbQoDhpXZfAwSyFHWa5IazANpqs3CJgU/iqij7Lribrcg
         feCrb32n//ZM2jvGy1YptMo1oXa+UCJtkAzwhmM/GsD4TrQNiHs+z8McyqIq8gK2/KyP
         Bc7Jx8T9Ymus28EXBj0HLysuQaxsDDQhRn6G82WZc4sREGtTotCR37AbWydYw1+GcKKD
         RZ8A==
X-Gm-Message-State: AOJu0YwdB53VkvyiiEkiTbQFoPsTRzyc+1apwkWw5Oj60MSS6DzYdyqi
	GMUBmpEFV6JgsN792lrq+bTVcDKE+bClQiheahySxRcEeHHCws5t1WHEmhEBsPReqyPAk4lQcX7
	WmN2s
X-Gm-Gg: AZuq6aJdkEVLospl7okdaURjwCMf5ThuCB0F7gSOzefJ/3ekllZ7q9dSc1bw4EK2RmR
	1f33XFOEmPtCsWZF22SI46Bky7qoEiQE3pTaRx/6Pczlbp/lvofLE49csksPaX1Q1k6BDS95yFr
	jLsxSSh097eWj97az3Kr1/g0p7nrh1XjE3K9ZZgGYXUDANghALiyt3s/ixylCMaEeNfWm3S5w/G
	VM9NYTqAvWR2ck7hLRfBPi7lTBXBI9maMMIIUFaBsbrVWJZLHmc/ADbYQziG1JlLCLC0DAutkD9
	BlEnrmwkx0YKI7ZeObI2tsjykjHXbevBwysNrEntuPTyI6LHlL8pQuXn98/Mib+RE4DEi8mvgLs
	Ckrkg+wCCEPgfG+BfSIBhz2dAthIVyjfJm+vbuQ/lZCE5cFU2+BRlFZQVFFECcm8P7MsKEiazVA
	5b7ZAnlENfk3e/uoXItylhsVHGjp4IKPruVggEBPo+noAsSlqmwYTbis4FqH5dBiw6rBzUPw==
X-Received: by 2002:a05:600c:19c6:b0:477:54f9:6ac2 with SMTP id 5b1f17b1804b1-4832017f99emr37415515e9.0.1770383587554;
        Fri, 06 Feb 2026 05:13:07 -0800 (PST)
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/memtype: Deduplicate
Date: Fri,  6 Feb 2026 13:13:03 +0000
Message-Id: <20260206131305.2675905-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

Andrew Cooper (2):
  x86: Sort headers
  x86/memtype: Deduplicate rendring of X86_MT_*

 xen/arch/x86/cpu/mtrr/generic.c  | 31 ++++++++--------------
 xen/arch/x86/cpu/mtrr/main.c     | 26 +++++--------------
 xen/arch/x86/include/asm/traps.h |  1 +
 xen/arch/x86/mm/p2m-ept.c        | 44 +++++++++++---------------------
 xen/arch/x86/traps.c             | 16 ++++++++++++
 5 files changed, 48 insertions(+), 70 deletions(-)


base-commit: 381b4ff16f7ff83a2dc44f16b8dd0208f3255ec7
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 13:13:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 13:13:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223202.1530809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voLe8-00017x-NM; Fri, 06 Feb 2026 13:13:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223202.1530809; Fri, 06 Feb 2026 13:13: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 1voLe8-00017o-JD; Fri, 06 Feb 2026 13:13:16 +0000
Received: by outflank-mailman (input) for mailman id 1223202;
 Fri, 06 Feb 2026 13:13: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=R5re=AK=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1voLe6-00015k-Or
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 13:13:14 +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 953ecb26-035d-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 14:13:09 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-43596062728so2226633f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 05:13:09 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296c0f2esm5726244f8f.19.2026.02.06.05.13.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 06 Feb 2026 05:13:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 953ecb26-035d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1770383589; x=1770988389; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=l06N7W/IgJqsoeByf1/E1bvHwGy9JIi2puRVREdrwfk=;
        b=FooH+3NJtFPRBCtoIX9seKxIE9B8reXEYf9Iw55ux1lQ/c9arEBXrwa+Z5Q1WiRT3A
         UfuXO3HO1IIeWoysy0iaoP5DQvwfUmD549xAaZVWFn3QVQM1ZTB4kzD+3KeWGbdmyGPM
         4cNHpznCnB+eGtNqMtXFk7J52Y+ZDE5Y+ZAK8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770383589; x=1770988389;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=l06N7W/IgJqsoeByf1/E1bvHwGy9JIi2puRVREdrwfk=;
        b=gLzqT77S0X0aSlyScJzH7SUesOM97w6MvNgBekt22TH1H8JJlIwGPxcCx94kwhBdTq
         enHHhgzPAjkqcLtA6zhsJx9vRCf6859Rzn5pUU84N6XFIPNt91MYXLkkzN4JG4tRuION
         Qu6b2Sj6TBbmSOWQhl2rSBXIJyIs/AfqqnQVTjOdpimbS6rH10qfFQshcXDJVtT75Dr5
         SBbasY9FnjUdbl6SvjTcLyXQ2EpXYmJr1lFsJ+G9+5IDjUX5wvBpW//ZKBgA0THIbnl9
         QnRrM2AsVbrA78btnm/ARgOkuauHtZoAGStnW+ttVDe9S+LhJY4AamQNocm4ZpTakQ2y
         lZuQ==
X-Gm-Message-State: AOJu0YwhgW9IaWwEEhq2WCnQCy3DhpEpd7wg+ustbUBFSLpnHFlA5mpl
	mSCWe5npME8Wj4k+JvQpNNQGm0cu/0WDziDt8y1ytC86gRmkuBZD9wB//i4AeJ4tey/W2H+4ejs
	B9uF9
X-Gm-Gg: AZuq6aKNcvCBpoq6oXbCnU46yF3dIBvIzvrVnSDAvC6/q8ch8QckWsJ8w1+q7FWzDNX
	Hh/u1oQzkt5VcKMm6wFvCvZA9W3Xsm2W8t6rbWuJ/GeTyAFN0uncz5xTptIV2N2dIjQandGTGM8
	+9fNrUb+JL41s3vHo8b1yFFDkZoHBTpBvWS9SgrGkEk3j/ET+XcUCSFlkPCLPsmLWpzSjmIijwY
	HdFTMZcuAmk67C1mIEBsr+Gv1GrJDWTpXH/tkFApZxPtlLOWAA2NFZKb/o8H1SuaZxzX9OpjkY8
	PavDMzCk+Be/Ldppxv77/d8XCcfkUUvn9iLwHkIRJML+77HNpr01/kUYasOWhXpsgadQ9Emvt8P
	homV/8/eyPavi7wXqYR6F4o/goYADYMqrDB8Us9iA/6MxUws1+Ue5jLvL/0DXeGDWod/T4gzzNy
	lIgdFFjpKpxsGEfmst3UKGl5slExKs0lLrI0rsCnt0zW5LnBIvf31TDC7z9RMDpf8ndcWWLBpdF
	bB+aV7K6g==
X-Received: by 2002:a05:6000:18a4:b0:431:c06:bc82 with SMTP id ffacd0b85a97d-436209967b3mr11293997f8f.12.1770383588085;
        Fri, 06 Feb 2026 05:13:08 -0800 (PST)
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: Sort headers
Date: Fri,  6 Feb 2026 13:13:04 +0000
Message-Id: <20260206131305.2675905-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260206131305.2675905-1-andrew.cooper3@citrix.com>
References: <20260206131305.2675905-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... prior to making changes.

mtrr/main.c absolutely does not need to include asm/uaccess.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/mtrr/generic.c | 10 ++++++----
 xen/arch/x86/cpu/mtrr/main.c    |  5 +++--
 xen/arch/x86/mm/p2m-ept.c       | 22 ++++++++++++----------
 3 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index c587e9140e06..ad6a24f055ec 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -1,17 +1,19 @@
 /* This only handles 32bit MTRR on 32bit hosts. This is strictly wrong
    because MTRRs can span upto 40 bits (36bits on most modern x86) */ 
-#include <xen/lib.h>
+
 #include <xen/init.h>
+#include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/param.h>
-#include <xen/stdbool.h>
+
+#include <asm/cpufeature.h>
 #include <asm/flushtlb.h>
 #include <asm/invpcid.h>
 #include <asm/io.h>
-#include <asm/mtrr.h>
 #include <asm/msr.h>
+#include <asm/mtrr.h>
 #include <asm/system.h>
-#include <asm/cpufeature.h>
+
 #include "mtrr.h"
 
 static const struct fixed_range_block {
diff --git a/xen/arch/x86/cpu/mtrr/main.c b/xen/arch/x86/cpu/mtrr/main.c
index d4f549d92ee7..eff0500f0d06 100644
--- a/xen/arch/x86/cpu/mtrr/main.c
+++ b/xen/arch/x86/cpu/mtrr/main.c
@@ -34,11 +34,12 @@
 #include <xen/lib.h>
 #include <xen/smp.h>
 #include <xen/spinlock.h>
+
 #include <asm/atomic.h>
+#include <asm/msr.h>
 #include <asm/mtrr.h>
-#include <asm/uaccess.h>
 #include <asm/processor.h>
-#include <asm/msr.h>
+
 #include "mtrr.h"
 
 /* No blocking mutexes in Xen. Spin instead. */
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index dfdbfa0afec8..204bdb054a89 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -5,22 +5,24 @@
  */
 
 #include <xen/domain_page.h>
+#include <xen/iommu.h>
+#include <xen/keyhandler.h>
 #include <xen/sched.h>
-#include <public/hvm/dm_op.h>
+#include <xen/softirq.h>
+
 #include <asm/altp2m.h>
 #include <asm/current.h>
-#include <asm/iocap.h>
-#include <asm/paging.h>
 #include <asm/domain.h>
-#include <asm/p2m.h>
-#include <asm/hvm/vmx/vmx.h>
-#include <asm/hvm/vmx/vmcs.h>
+#include <asm/hvm/cacheattr.h>
 #include <asm/hvm/nestedhvm.h>
-#include <xen/iommu.h>
+#include <asm/hvm/vmx/vmcs.h>
+#include <asm/hvm/vmx/vmx.h>
+#include <asm/iocap.h>
 #include <asm/mtrr.h>
-#include <asm/hvm/cacheattr.h>
-#include <xen/keyhandler.h>
-#include <xen/softirq.h>
+#include <asm/p2m.h>
+#include <asm/paging.h>
+
+#include <public/hvm/dm_op.h>
 
 #include "mm-locks.h"
 #include "p2m.h"

base-commit: 381b4ff16f7ff83a2dc44f16b8dd0208f3255ec7
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 13:29:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 13:29:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223246.1530822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voLuA-0003ou-2q; Fri, 06 Feb 2026 13:29:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223246.1530822; Fri, 06 Feb 2026 13: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 1voLu9-0003on-WE; Fri, 06 Feb 2026 13:29:50 +0000
Received: by outflank-mailman (input) for mailman id 1223246;
 Fri, 06 Feb 2026 13:29: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=wPAo=AK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1voLu9-0003oZ-Ak
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 13:29:49 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e64f9022-035f-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 14:29:44 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6423.namprd03.prod.outlook.com (2603:10b6:a03:38d::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 13:29:38 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 13:29: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: e64f9022-035f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ndBHM8TWfTj1cOujvpfY6WF/FbuvGgRIJ5hokIT321EOGt0BhnnwEGETYSPDxc4BhhzwYw/fupTjRQ4eLoK2P+QG924lex/7nZtBtH+NcBKbCFSlpulg8VSP6hKzZAi/+5NBOZ7FfilaQ3NuFk6ODq+7GRFUgRseBffzo40QoULoHeNAnBvC0e+uYco/4ZjUUuw1pSUmXLWcx+JeLQ0F8bSs+zM2QfYOJOvax//4qpxBRTDBvHvoi+kfk18Di62E+BS1IBtiszJ6TnyuUnSwsn3UrW/t9zxeYvwWel+H6t5tueR8nrR/oOoi7W7RIAMuQcSMzejLIhV+imQNfhIjQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3hY5FyuDZP6NwuBFEmcCkb7AwE3kWtgyY4vZVqMZG4k=;
 b=oxQzjCsqp8Kr7hL4tGzFyczL1oQygVTE1uhbgAWZB4kmgiONOXz773fmOUnhrHN3fqI+oti3xYXh+lCNXgJHIoBxYcxJ1ruDwdKI27uTIkvevfMRR3KQlCMHV/ACc7fwX9OQ2OwYBLrXOFV6gEY876vmgcGGzrXmItNwhHXu3imIdZG/zd9a+kEmdgrzGs4w1bxfgv09dgP031nlXVpnnfFaC9GZ09o+LfqirGKxVsRdsT8WI6PwoNbSsd60Dz44cBso6EG4d5sSYXdbAtBYKV9zq+hJwEiOGwqzu0J0IUk8oaPAGPnZnDAaZlgUTvhwCNVGRvx8+VcLfrQz+TfX5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3hY5FyuDZP6NwuBFEmcCkb7AwE3kWtgyY4vZVqMZG4k=;
 b=DdpDLXOQ8pIwe6kRa3WGFR53hzqFnvuGKfYQ4cmHgDKVxeXeKgYXwhflVa3Isu0tPbLygh8oV79n7aA8vIdr2Rqr/8w/4norsL4BI5kWgPm0N2VqQIfA7CUwweC9wG4SnP0I2TzcT4gVdmAVp+flz1/Er6r4dk7ceXrjtsmf7yE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 6 Feb 2026 14:29:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Bertrand Marquis <bertrand.marquis@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Message-ID: <aYXsvu3HlPuCUuY8@Mac.lan>
References: <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
 <4bdcd7e0-ff9d-4bbd-8337-aa80d7d66ce9@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <4bdcd7e0-ff9d-4bbd-8337-aa80d7d66ce9@suse.com>
X-ClientProxiedBy: MR1P264CA0152.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:54::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6423:EE_
X-MS-Office365-Filtering-Correlation-Id: dc3a549a-7abb-47d8-647f-08de6583c64d
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?ck1KNWdqTTB2SXFLVFpqQkdLVkJrSFNBYlZadUxIc1pzR3FBSHVwb3pVYjZi?=
 =?utf-8?B?Y2txRVcwazJlNW1UNnFnYmh2NU5QYWVnMU5PNG1acjNxLzhoYnRIZUV0YzBM?=
 =?utf-8?B?bmdhWFJraHVXTVZaRnhlQXBaUG5NbXJmbTJ0L09ZeVZyVVYrY3VhT2dFMlRZ?=
 =?utf-8?B?eWJPVENWeFVSeDRuK0ZoOGhvaG5KU0FqaG9pa2Vybk04VU9Td0xwS21SS1lm?=
 =?utf-8?B?cm9uN1dmNTdEeEl2SFQ5Umt6ZWRhbGNRWUdZOVdRV2c2VFlwcTgwTi8vSm9m?=
 =?utf-8?B?TGFPQnBJUjcyOVFCSW44WkhUbHFYSktjMUEwSzA1Mng1MzdwTlRJVFMvN0Iz?=
 =?utf-8?B?b0RhdUNid1VKclluUVhRanJtY1JtRWdvSkEyTm12UU5GTlNhMWtiUkZjVCtq?=
 =?utf-8?B?RDRZWWJncHpzNmhoWVdTZlhUaW5VY0xLdWUvNmE4OWxNUnRPbW1TOUVKNnI4?=
 =?utf-8?B?MHVyc01adXdBYVh4TjY4Q1o0NVB1UEdZdnhyaFJzUm5nM0NrZUUxTVg5aGFB?=
 =?utf-8?B?Wk4vZTRjaXJwbUpwdjl6dlE0bmUvdjBtalZ3bmJ5OWQ2VmFrVWZGamVkL0RK?=
 =?utf-8?B?NkJmenNXSDFtQTdBWEM4aTFuV09EQXBRSFAwSVI3MDNmNFExVjRUOFhlNEg3?=
 =?utf-8?B?N0d2Y295YWhmQnhwYWFEWDJldHA1MklYeWVYR2J1OFBTYklwdTFmVmUrK1lq?=
 =?utf-8?B?SkZqeklKMXR6WFc5Y0MxaGdLNTdoUkE2TkFOOWIrSGdRYUJMRytPWUxiU0dZ?=
 =?utf-8?B?MDhwdElLZXhEQzExV25NMjJOM3NnakVFV0V4T01pK28wSVZwWVZiLy9iS0x4?=
 =?utf-8?B?YVE0SFpBSkt4Rjk3SEJCMDkxNFl3T3hUS0JaeTBGUnVxM2tjcnYxMVVUbnpX?=
 =?utf-8?B?MkNpeENmYmlmU2EyWmRsUFhxays5MlhsTTJ4WXNSVjU3Rm5UMktubkRhekRJ?=
 =?utf-8?B?KzFZRlp0Zk9qSEpuZFRtVWcrWDAzRVRqVnhHNU9pN1ZyeUxxdnpsdTlDa0FQ?=
 =?utf-8?B?WEZ2MHVjMFBZQTVhWGI1cEhQN3FRcWltMmh6MEUxbk95V1o3SCt5RHEwdUZ1?=
 =?utf-8?B?KzJ2YU0zYmd4Zm52cmNqNDh0THdPdUQwQjdRWWIrSWdTS29UNGtycC9jNGU0?=
 =?utf-8?B?ZHNiSE9ZTzN3ZzlDYkhIMEhidFV6SktheXZ1Q0wxMFROZ0gvcmd4SUhkZ0tr?=
 =?utf-8?B?T0JyMExham1RVWFuYnBwZDhTbWpPY1YxRTFwVFJUaXEydGFTY05FL2ljT0Zp?=
 =?utf-8?B?Y2kxREpiOHlSVlk2cXg1MHJqczN5TmFEVXhBaytpTGIydWpCVWZrT1BvNFZq?=
 =?utf-8?B?aTA2VTU4S3JYQUlCQkx5ckNlanhJclJMaGlYZC9DVlFTNmZrMFdIOGdzZ1Qr?=
 =?utf-8?B?YW5ncVZKb3FGNkxGUE9uZVNTMlFSekVYeWQwQU01NFVoRVZrMUtWMmFmOFFl?=
 =?utf-8?B?L2xPWUhxRitpTUxvOTh6N1IzQmwybkY3ZTFCL2Rxd05UQ1ZMWnBvdlRvZElU?=
 =?utf-8?B?WUpqMVM2eTQwZHVVaU5wSUJtb1g3K3NzQ2MrV1VuT1NyN0txUTZ0ZFpFNk1j?=
 =?utf-8?B?R2cvWFZmZFptM1pSVjFFZ01KTnJPaks2VXdOUkUrRE1VS1g3Qm5aN2M4YTRE?=
 =?utf-8?B?czJxdGpxV3NhNjgrNWNOOUVKSDhlc3QxakNWQnREQm1OdXJET3IyL2FLR04z?=
 =?utf-8?B?REZ0aUd2QWI4UUgwNHowSWdsZWprSVUvSVg1bTdWTVBmRER3VnZ6ZGJqVXRk?=
 =?utf-8?B?bzBNZzk4OUlaVUt6dHMrcjJ0eVFDMEZjbDBGSkdUTndqSjhlY0hrakZzRkQ5?=
 =?utf-8?B?QUN2UEJ3alViNm40V0pUT054MnlLS2ZhY3FsdHlyQkZWRFRwNDU5LzVFSEx6?=
 =?utf-8?B?RXJMRjZ4Y0pSQ0FTVFN2ZW1UMXpUbUx3bGRoQk1HOUtkZ1liMmxLZmxOcHhR?=
 =?utf-8?B?OEZ4UzdOeUdDMjdRSjdvZnBqU1BCS09mL2FQNjFpb005NWF3UGw4RVI1Y0Vw?=
 =?utf-8?B?OU5zOURkdmorYVY0VGlLN1N3WXB5aXFWM1RjQTVxN09NZS8vbWxzUDdTd1NV?=
 =?utf-8?B?N1AreGtjeHhxaUJkMHloQ3BjeWdJaU9iM3hhQWFIaGswTEJtZnRGa1VZc25F?=
 =?utf-8?Q?KYPk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Qm5DR2djaE55bFRBVjE0TzM1bmFveGlQdXlmR2VVdHFYemxLdmVXQXRaWExQ?=
 =?utf-8?B?OXBLOGR0MUJBbEh1S3pKMG45emJrTkg3YmR6eUJBY25Qem1ES0lFYUhFMUNQ?=
 =?utf-8?B?Q0ttbXh0TTZzeENMS0wyNC90cGtlck1GdnVzTnVObnRqdkVkZHZJRnhJY0Rq?=
 =?utf-8?B?eXBlc2YyMnFBZnBZOXUvTXVjTEtHdmhoWEJvd0hZVDZ5RmVNTlgwRnUrY3Jx?=
 =?utf-8?B?SjJIYkVYYWhIY2N5eUFZVE1wT2hJejkyMWJCT2pFY1Z0KzFxQ2hWOU13MDBK?=
 =?utf-8?B?YURWanhJNTA5NDRwQkRsc01WU0xQczhaYjZ0bmp6VWlHUk5YWTkvdjJ6eHNJ?=
 =?utf-8?B?VkQxOHBkeGhMM0R2Z1lTYzVqS3FNUHRicnZ0MGRDMUwxd01zdVBHL1lKZ1Yv?=
 =?utf-8?B?dncxVmxvSVg0K3BSQXJDWmdFM2swWVc3Qzd5d0ozMG1lM0pmK1hYWTBNMlVv?=
 =?utf-8?B?UWN1SHhyTytXQnVVemoyVm5QWFJ0YlByUGtvWE05VUQwYXF5SlJuckVFU3Iv?=
 =?utf-8?B?dUMzY1RrVGNtcU9VRmhBTEM2RkdhL0V4Sk55emtuUllaTGVBSHB3RmRvUEg5?=
 =?utf-8?B?SWFITVZjazUwK0ltWUs5TXI4aFRQZ3huTzRjMk5NWVg0UUJyZXhzdHlzN2Z5?=
 =?utf-8?B?UzNnTzlsNXZSQ1JlSkptUi8wRERPbTNwTkFQN1pLZEo2YlBGQi9BQ0JDb1Bh?=
 =?utf-8?B?b2p1YlNaUnc4VTV3VGxPVVg5M3laYXBGWGtieG42bzdSZHBnZEY3dVhGdmFM?=
 =?utf-8?B?bWJScTY1OTJoRm1NWTEyYUIramJZRVJDSkpTdExBSndQbjQ2SlUxYUVwbmRi?=
 =?utf-8?B?Tk1tMXB6eUFZR1B4azI5YVRTakQxUTkwWlFMNndoL3Y5QlE1MjVsaUNvbk9S?=
 =?utf-8?B?N2k1bE5peW02MHZFMEFjcWlWQVNqWE91NXRHUExaZEJuUTNFeDRVb0JER0tZ?=
 =?utf-8?B?RlNTeEw0L2Y4ZFl6R1VaRTZPZDFTMnRVNUJybWNiMnRUM2dNWG1ldGJNMHIw?=
 =?utf-8?B?YklPajExVnRIR2hkSnBvYVVNYno0eHptbXpZZlg0N0k5ZjREMjE5Z0dsMWdo?=
 =?utf-8?B?cjlmdUQ3ZVRFWko3aUhaSGp6b3lhNk5LVHVwRk4zZmo1V28vWWR3S0w5cW9h?=
 =?utf-8?B?TTA1NXl1bGcweklxUDFiS0NNQXJEQWNYc1ZSNXlud0NIVXFXOERHeWRwUmxB?=
 =?utf-8?B?RjlCQmNOaXNaV0dEanpwK0xSMWU0b2k2NVNwNFgxVjNBWXpCcFhMZGNsYjln?=
 =?utf-8?B?QnArKy83b0JHemNpUVI1Z0xoNlZGSWpWYUxBbjRZeWpDeTZhUGVDQTdKWG03?=
 =?utf-8?B?RGlad3NVUjZ3bThKZEUzenFYaVVSNnpDRXd0cVFqNFlJS2VMNk5pODFrSVFY?=
 =?utf-8?B?NjZkVkUwamJWbXpXVW1IL3lMYmFBdW8xQjlLNmd0elErd1UvbXpKa2diSk9S?=
 =?utf-8?B?eng3TllYYkRwNXdMZVBwbHFCVW5Qa0IvY1h3b0pVSkhFTmxwaGt0UXV5ZTRS?=
 =?utf-8?B?bzk3T1NDQnBUcUR1TGY3cFZaS3I0NjYrZDRRdHhjVXQyajJodU40WTF3MHBI?=
 =?utf-8?B?ZlZOQXVTMlFFNi91ckNXQVlnOFlDK2NDa1ZoYitEZ2FVdFBwcGc1UGhuRWNL?=
 =?utf-8?B?VDZ6TlM1aXhWMTluUTJPU000clBxYW0yT2t2VkJOSzdUa0Z6ekhneW5WYzVy?=
 =?utf-8?B?Wm1WNnVIL25DS1ZFYmpZTlB1ei9tb3FxMXdyKzQ0aUtrZGJvM3diZ3QwT0pz?=
 =?utf-8?B?eGhTS0QrdDY0bnMzVzU3R1pyaWVHa0NhWUhoRTNlejlVK2dRVVpTMEEybE5M?=
 =?utf-8?B?Y0wra1FCWXdiY3A5QWtZamJmYnR1dDNFTHY1RUtVNFoyRjltbDd2Z3Z2bmhh?=
 =?utf-8?B?Q3ppTVlLTklSUDlSV1QzQjVYSW00RmFpOElEVVY1N3hNNlVjMU1JZEFubVJw?=
 =?utf-8?B?em9FWjdPVFA4ZFIveXhOSHJrekUwV1A2T3E0OVI5Z29RaHdRVzc4NWkzNXlj?=
 =?utf-8?B?aTIreHVpWTdzMlNGNGIraDdFSXFwaktQTDFjZVNSVExmSkJLQ1YrT2ZNYWIy?=
 =?utf-8?B?Z3I0b04yNXlRelBoR3NjeDNROVZST1hIdEVKNUFoeEQzOTR6WTNjaUVRbjdN?=
 =?utf-8?B?TFViaUg1djVQdll6ZkQ1NHh3eWdXQlFRTE4rdWRuS0ZEL3ZLNjBwMVg2OGN1?=
 =?utf-8?B?L0ZJVGhzSDV5cXZoV0RIUnZZeFZvUDFiS0FDY3ZhSU16MlI5SUUzcktLTVVK?=
 =?utf-8?B?SEFucmd5QmErai9WSnhVMDVUV0lXRHUzQXJoU1NMQVhDQWxGeHB3TDhLdlZ0?=
 =?utf-8?B?UWltaVJ5MGF6eDdtRmZaTHg3NDlRT0wyYjlyR00ybGxRZjFXR0tmZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dc3a549a-7abb-47d8-647f-08de6583c64d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 13:29:37.6641
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Yt/te4zX7TzZ7yoHQIHsAcwoo73EErHClhwt7oT3SBEn3xqMj38LF4Ayh0mq9q6SLaqgDKMck/aGNyN+0L7kQg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6423

On Fri, Feb 06, 2026 at 11:38:02AM +0100, Jan Beulich wrote:
> On 06.02.2026 09:17, Bertrand Marquis wrote:
> > Xen does not provide a Darwin build configuration for selecting
> > GNU tool definitions. On macOS, the tools we use are either GNU
> > compatible or we only rely on features supported by Mac OS, so
> > using the GNU tool definitions is appropriate.
> > 
> > Add config/Darwin.mk to include StdGNU.mk and force
> > XEN_COMPILE_ARCH=Darwin, ensuring Darwin builds always follow
> > the cross-compile path as we depend on the Linux ABI so compiling
> > on Mac OS is always a cross compilation case.
> > 
> > An example of how to build the hypervisor for arm64 on Mac OS
> > (tools cannot be build for now) using a compiler from brew:
> > - brew install aarch64-elf-gcc
> > - cd xen
> > - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc
> > 
> > Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> > ---
> > Changes since v2:
> > - Subject was "xen: Add macOS hypervisor build configuration"
> > - Update Darwin.mk comments to more accurate versions (Jan)
> > - Remove the build-on-macos help as we have no dependency on anything
> >   coming from brew anymore and the toolchain can be retrieved by lots of
> >   other solutions than brew on mac os. Switch to a simple doc in the
> >   commit message instead
> 
> Did you see Roger's notice on Matrix about objcopy?

I think Bertrand considers objcopy to be part of the toolchain, hence
"retrieving a toolchain" is meant to include objcopy (either the GNU,
LLVM or elftoolchain one)

> > --- /dev/null
> > +++ b/config/Darwin.mk
> > @@ -0,0 +1,7 @@
> > +# Use GNU tool definitions as the tools we are using are either GNU compatible
> > +# or we only use features which are supported on Mac OS.
> > +include $(XEN_ROOT)/config/StdGNU.mk
> > +
> > +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
> > +# Force COMPILE_ARCH to a fake value to make sure it is always the case.
> > +XEN_COMPILE_ARCH = Darwin
> 
> I first wondered why you say "fake", seeing the file is named Darwin.mk. But
> in Config.mk's cross-compile check the build host OS doesn't even matter. So
> yes, it needs faking here for the time being.

Hm, setting it to "Darwin" seems weird to me.  I understand the
purpose of this is to force the user to set XEN_TARGET_ARCH
explicitly.  I however wouldn't see it as fully uncorrect to not set
this.  It will then execute `uname -m` and get `arm64` back for Apple
silicon macs (which is kind of OK?).  Other I suggest we use a non-OSX
specific value here, so that if required we could distinguish this
case where the user is expected to provide XEN_COMPILE_ARCH.

Maybe XEN_COMPILE_ARCH = { unknown | undefined }?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 13:35:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 13:35:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223253.1530832 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voLzk-0005LJ-Mb; Fri, 06 Feb 2026 13:35:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223253.1530832; Fri, 06 Feb 2026 13:35: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 1voLzk-0005LC-JV; Fri, 06 Feb 2026 13:35:36 +0000
Received: by outflank-mailman (input) for mailman id 1223253;
 Fri, 06 Feb 2026 13:35: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=qUCI=AK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1voLzi-0005L6-Pv
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 13:35:35 +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 b5ad0523-0360-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 14:35:32 +0100 (CET)
Received: from DUZPR01CA0204.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b6::25) by GV2PR08MB8462.eurprd08.prod.outlook.com
 (2603:10a6:150:bc::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 13:35:27 +0000
Received: from DU6PEPF0000A7DF.eurprd02.prod.outlook.com
 (2603:10a6:10:4b6:cafe::80) by DUZPR01CA0204.outlook.office365.com
 (2603:10a6:10:4b6::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 13:35:23 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000A7DF.mail.protection.outlook.com (10.167.8.36) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10 via
 Frontend Transport; Fri, 6 Feb 2026 13:35:27 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB8460.eurprd08.prod.outlook.com (2603:10a6:10:3d4::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 13:34:23 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 13:34: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: b5ad0523-0360-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=IJQZkIDKDY6AihAnQjAGprUvIqnozLfiRfbdqKce72ncxnQ3e0T/+GtEeILW1MTJpF4wTTduHFNEH8r/Rs47QfUajio9P9eIoI1BQo88qgcaV2upHgcG0NRNQKT3NIM9nsnzSgdPSPrj4O8vwwsjWq/bOB62Q/5YUo/19kR5nUlKDyreIHKskAb0BNQCN3N7reT74Im7oO7hFVeRFXLnOz040itYrHlbyKeNanI1LG7uUhiW1cqp0SbZeOx5Y+eGGN0dUoyYhMOKWn7JGR73DMA14A6WgUS1lDTH6mqjq/TfWJwO1rNE1eZE5dDYhsDgOiG2LQaZoTfRYolw+pyKGw==
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=/iP7mUcdvII2+7Ig+jjc9vW2Lpo6q0aXzlOhYgh9G3Y=;
 b=qUTeBsTX0XVHE54g5QYDZ6VV+gGiqK4VP5w0qaafJOl1AOBgxNtpMuQIEd7A5My2tcs62ZPiv/GMaUaKUCJdD7bSIZoSR1xuokDcf/brtZLExb5w55seZ2B/Yaqw3DoGc8AAVmjQfWM4W0v4qS+TRPA/AUOYzTg8JtTLHc42neSQxBLF4H5w/iQFWrumn/IhnUeRUp2rp23bvgsulfSP3ILQBcPKcIUI5Xd4gjQRcbBDygsKcwlr8syZFTY6ITLJak3G67iTBFxvscLUyeTIuBR6jdQYzT6R1hq2h5e/P2CkPPLyk89mlKX62GaLuBQMfT0C9RRVlb0eAl/jurkUDA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/iP7mUcdvII2+7Ig+jjc9vW2Lpo6q0aXzlOhYgh9G3Y=;
 b=XRCIH23Eg8KrfKvc1mfdoAEz9Er0cqX4XvGhOiJZcMFNZzohzcVYDwYWzK+a6bRsRNSaylqoiNijSCJ/1rrjqgeSknEa8jKbhEBA6CgZy1zSB/jXiKJTUcLE390SvXpfqHIwmX+Bh8NG5FORrzMB4wgJbQCdOBa56OKZeX98y2I=
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=ZgFLMd+2HBguI5YROR6rAoYpCIVz7LHBy/IdBP65RL3DYZrWlco9I0gg5IBu96HKj1KaETkb1BV5yZZ32eLQ8rTiOhWjSEufVgvqph3XXWNGaRIrcTclzh/T/XkS2stZhvNzRfLjc3pVcqV5umclCkje1WiCSHMOd8hZ7A7Nw12cSze6+m+ciL76xoipmz85ntXQmy7WThq7qBOIIvTBmwMJ4oORmBW80a82Wi1rtqh4tKnH7Jx1DHygmLZeZUBgb1SBwVoCuDLLPVO+dnJ5wez7PM99XjDnJvyekW8hzQdYSg5TW1UI0+VQbn6SjOKX4haTa4gb3aawWzhFT9oprQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/iP7mUcdvII2+7Ig+jjc9vW2Lpo6q0aXzlOhYgh9G3Y=;
 b=ZM7oHbif7MAlSZnTLhJtOH+u7xwh8btqSHjhlfthx+vCXaywBr6I1Xt8TG8dYavP+ogpgrcKXjSYMShjkFBaIouqNTA1wM0hkh3y1cq/A8lWTtSOXe15i8BSZTw8X/SWBjVR88u3iySH9jwhpGbHY9uqEt8cm+k523vmP+IF2E5ibcPnj8tckCjILqbROZ28q5bNYY9QikgT+MGtZvVCYxx/dJVUz0edCFj/U8ho8zX5Pw1JLUUfquX69FolW6h3Mym8Pa6TwjLLRsOkg+cbM9gsd2keX0rEubfILLaCgGSM5/XU9liAnwKP5Yo/E8yNwbtBEQoUfX3Tj5UaEdkixA==
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=/iP7mUcdvII2+7Ig+jjc9vW2Lpo6q0aXzlOhYgh9G3Y=;
 b=XRCIH23Eg8KrfKvc1mfdoAEz9Er0cqX4XvGhOiJZcMFNZzohzcVYDwYWzK+a6bRsRNSaylqoiNijSCJ/1rrjqgeSknEa8jKbhEBA6CgZy1zSB/jXiKJTUcLE390SvXpfqHIwmX+Bh8NG5FORrzMB4wgJbQCdOBa56OKZeX98y2I=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.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>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Thread-Topic: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Thread-Index: AQHcl0ETIV6m5wqgrECh60MWgPTuGLV1etQAgAAv7QCAAAFMgA==
Date: Fri, 6 Feb 2026 13:34:23 +0000
Message-ID: <16ECC44C-5C56-47CF-8AB6-DED34990C5B1@arm.com>
References:
 <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
 <4bdcd7e0-ff9d-4bbd-8337-aa80d7d66ce9@suse.com> <aYXsvu3HlPuCUuY8@Mac.lan>
In-Reply-To: <aYXsvu3HlPuCUuY8@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB8460:EE_|DU6PEPF0000A7DF:EE_|GV2PR08MB8462:EE_
X-MS-Office365-Filtering-Correlation-Id: 15c17fdb-3f9f-4965-a363-08de658496e0
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?OXBUQ3hIUmdlQjNkY1pnbzMrbzlORW1MSUJ2dnc5NFJ4Uy9UWkNHeXdhV252?=
 =?utf-8?B?MG5CdTQxcUVCUkNaSlRTRmZ2eWlvQkp1MlBGYm81TWV3L0JrdlhndUFRaXFy?=
 =?utf-8?B?aHBiLzg2aWlwSVN2Sm1VbmpQbUc5R3V3U2UxNllMZ01DTGIwOGkxSjM1MTAy?=
 =?utf-8?B?bnVkU3lXL2xrSW9kdzQ0U3NRM3JKcG9kbDJKTEtvbVo1eHk3cmo3QVl2Q2dB?=
 =?utf-8?B?N1VEdnpnVUc4UmYyZjA0Tlo1Yll6ZWp5MkxZVkFKYzVwV3JKWHR6M3Iralph?=
 =?utf-8?B?VUJoRFVyakpkNTQ2cjJFbDBBYm5zc2lQMFRQUlM0OHAxRzlWcDFXdlhEd2Qv?=
 =?utf-8?B?eVBNVkJZa2RxQmdSdWhhOExlK3gwcFc4NDRrUURyWkFwSWFrWXc5dHJUeWVN?=
 =?utf-8?B?UzI1T1JvMVpROWt1UjBBYUdCUDNhVXlsaERJTEVDSm1ZanE5R0NxSDMxc3l6?=
 =?utf-8?B?OWVYSXd2RHZQTm1sNDNNN0xaTmp5KzFEVFRlM2NuOGRiRHQ4d3NzV1ZmemdE?=
 =?utf-8?B?NDFZQXVWWnF5NFZuT2RRU0d5eFBqWS9FUm1GL2pRK0RudzJ1SlhkYkkyQjAy?=
 =?utf-8?B?d2RJeUxzYWFTMVJNN25scWVBWGJKUlVQS2VUSzNpT09rVkpreDRaUWFUNDRR?=
 =?utf-8?B?NjRrbmtPWktXV3h2VkNPOTVJNGZqYTJ5L2M2OVByRllTVnVidzEybWRHZkVB?=
 =?utf-8?B?NnAwRmpRUUFnbHpScHExMDJQeGVwZk1GMElzWkhFeUpHMENlQXpLVUJOMXc1?=
 =?utf-8?B?M3NSMTRWTXFac1hmZjNES2hIcWxZTTMxZEVtMy9NRmVFVE0wRXhpdEZpaTYy?=
 =?utf-8?B?ZW53Sm1IZUFnUnJGT0ZIa1RUYjhLSDBwSXRpOWMxRXFjRlQ4dzVXQjB0WkZv?=
 =?utf-8?B?UHNCUFBJcGxMdkdROS9Uek1FL29BY21mN0hJdGRLQjNwL1BZeklQeEJRYjFP?=
 =?utf-8?B?YkliNE5LZVA1SUs2TlpYL0VDVXNrMVJhNzY2TzBzN0pQRFI3ZU5xSksyTjNP?=
 =?utf-8?B?NW56eTZTcnIrdWNXNnZGTm9RNm1Zd2RUdnRFaFlENnIrL0MzMzFkUGpmYUNM?=
 =?utf-8?B?Z3NqSHhzZlFiMGNibEVPc2xQdnBYMDFmblYzL0RlMXY3ekk3bDlnNkNzYTBL?=
 =?utf-8?B?RWFLM29hKzJKQUczbGZpeE92OForYVlxajNNRFVYOGtYWU01R1F6THBMTzdy?=
 =?utf-8?B?MlFocU9WdHI2RzlLSURIdW9iZ3pQb0tSdjhrcXRwNG1SVkEySEhmOFBZc05o?=
 =?utf-8?B?L2hlanU4MUpUcU4vTUVFVE9rL0JadE9yb2xGSlU0KzdJRElySUpoUFFRZ3ZK?=
 =?utf-8?B?R2hnSU5iSXc0a1o2ZmJaeVByVFJOMHRRTnFlOTFjRzV6bWlEVXpZYzI2S3Ix?=
 =?utf-8?B?TU5LOStYdWlPR2xyRzFJV0paV21Seml3SU1XU3VIcGxwRE9kbTkzRHhNaWtR?=
 =?utf-8?B?TFZUMTlkNEZ3Vk5xcU5UdHdtWU5FVEp2ekMrN1RiVGt1THAyR1JuOXZtQm9l?=
 =?utf-8?B?Ym5lTFlwdGhaWEdSSXlRekdjLzk4ZUhxNFBUODhyYVlTRjZ5Nk5IeHlYd2hp?=
 =?utf-8?B?emYwMVdNQmZvbDluTmxxeEpJQXpRY3drWFZQeEt1aHhsU1VQa3lIU0hpNHhV?=
 =?utf-8?B?Mkh1MVQ4TVUwNnZFdDhIM0loUG9YUndVbkpEMmY4NEtYWHQvMDJSNWpsNkZ6?=
 =?utf-8?B?bDhOcXgwREpKbExOTmpJZER6bE5IQTNLdTAvbEpEVFdFWnNiWWY3aVVJUmVJ?=
 =?utf-8?B?V0U2WnBGTGZpaWM2WHYxKzN4ZDA4RDZROHlQcmozMXdxZThxMHN3dTJXSHRp?=
 =?utf-8?B?Q1dGejRxMFh4ZldOUFhDYnpHK3RNYVE3R25mZE8wZmJqUXFmVzVBWkNkaUdD?=
 =?utf-8?B?Vkh3U3BmYTZmVU1FYjVjSDQ4MjlIM3h1ekovbkd6SU0zTjVoUkt0a082cUtT?=
 =?utf-8?B?L0VJK2dIT0gwNjNpc1NmMXBzbkR2K3FXTjg1WUNyL1lPNDRhQ092c2x5eTZk?=
 =?utf-8?B?TitsYzVGVm92ZUtkSEZvK1FJdmhDQU83c0M1MEZ3ZFZjeXVaaFRxYWhuQi9t?=
 =?utf-8?B?MVlPb2xVaFNkcy9ZS1ZsT1B6Q2tUQWFqWll6L25UNUE4TUUzVmNEanBZQ2or?=
 =?utf-8?B?QU5yRitxMVRXY1M5Z2x3VW55bGo4N28vdzBQcmhGcTRLaHI4bys3NkVmL0po?=
 =?utf-8?Q?XF90qSXkffhBJyF2lnffOHs=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <0878CB93CC2BF74F82939F014B606831@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8460
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7DF.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b58b390b-9626-40f8-e394-08de658470c2
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|14060799003|82310400026|35042699022|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N2lQSE9mZTdlT2t6ditBZVd6WTBsNi84RGMva3J0bFRLZnp3YUJrRGYyZC92?=
 =?utf-8?B?d1NnaVE4alNJWmFUM0NRUnhFZ2xESEgzZUc3Mkx1ODFJY3l6MmRoUEdncVRr?=
 =?utf-8?B?dFFjUVZLVC83b2dzL3BSZXVNY3o5cUdOUDBoS1FRelFGSnBjYjE4ckRUQkRk?=
 =?utf-8?B?cndlUFVvMFVnbEk2QjBQSWRtWE1xZ1NpUjNVNTVGTHpSRDlMLzFZZ0pzcTh2?=
 =?utf-8?B?Y2hpRStzRHFyb0I5cnpZamI5UUNQRUJxcHZTNVlSaVhneU1idVAzZFZ6ZGM3?=
 =?utf-8?B?L3ZlV1lPL09SaDJmUkRGWXArYlFoVTUzbzYvOHdaT1dmNXBEck56R3U3d3ZQ?=
 =?utf-8?B?NXZtQXBpamRQUW1KVFJZQUlWU1JuTjJ4OFZlNjMwR1VaaGNrUDc3SENSd1do?=
 =?utf-8?B?K1lFdFZsRXJjcHBHVCtUVnRWbUpHbWl4TWhzSnlRbmQza1RkeGtMUlduMGVn?=
 =?utf-8?B?M2JSY1F5OU9WTWRWbERHYy9jRExBaEFyOFlNK1FwL2E4Sk5mZVlvVzJmMlM1?=
 =?utf-8?B?YVZOLzdKTEhGdGxjMVJrdi9zeXk1VTlNQ1A1c3pZQzJNa3N0UXdkL0creERY?=
 =?utf-8?B?eERIQWpWZkw4cStvYzFKdXZwOG0rZUI1Q09kVzZCRnZlanJPRnp0T0N1Uk90?=
 =?utf-8?B?YitvRFRySGJnNlZrODRJdnorNFZieWNvMmZsWXo0TzZITGtkazlmZ2RIWnpD?=
 =?utf-8?B?VVlFeTZBYU1xOUpYNmFZV0lXYlp5Wi9kaFdoMHpTNVMxL3NGTzhIRVZLb044?=
 =?utf-8?B?TFhXcUtZOUZFT0tiSnNmKzRZSzBWbTVHV1FIeVNJZWtwd295dncrK3RjWWUx?=
 =?utf-8?B?Tlg5ckZxbTZhMHFsdjdJOHdzb2hnWm8vTlV2Qnd5a1d0T1MreVNoRTE5aWY5?=
 =?utf-8?B?ZHdjY05jZ2dpVnlFWVFhVFVSa1kvd052aVdPdUVmRTVJMUNQT3JlQkVvNTRM?=
 =?utf-8?B?OFMzd0FQUFZJK3RCNnZVUThkN2xaRHRjeHFtNEo4RUZ2YUM3b1pUUzF4MXdk?=
 =?utf-8?B?Zmdsb3hFb1FKQmg2azFxcHVxRGpHY0xVdENBNUdMYS9WQjhKWkM3c0tNTUJZ?=
 =?utf-8?B?WEYzUVh0TVhEaTU4bzhDRE5OSzRtMWxwTk9tS3BtUmhUa1cvYkNMRHFFdGVX?=
 =?utf-8?B?SWo0TktDNXZtNzFNOHJFQ282dXlRWTdVaWxqNU5WL3NHbGx6YktvQm1IM2pO?=
 =?utf-8?B?V1NZMTlXKzJDRmRQdmxPY1dURWRpSStuV1dtOXB2SHRPMDNFYnNZbUw2dThi?=
 =?utf-8?B?OHFCOHdsaUdTMzlYVFRYQzcrNkd3WmxNUVNNaDZnZFMySTE1WHVOS1hEblc3?=
 =?utf-8?B?ZzNqK1Q5ak9vSCsyUTZIOXNZWHR5TTJid2JwM0IwaGlZbFhJdnVSNmVodkEx?=
 =?utf-8?B?OTJHeGJ3TW8xb1h2ZjQ2S2tyVlgxTU04aWpFZ2Y5VDB1NzVHNjBMUmtWT0Fv?=
 =?utf-8?B?eEFYVnpwRkR1VERLM1JKVmhpR0ZVWHAyYlRNNUxhaU5zbWNSeWxNSUZpYVpl?=
 =?utf-8?B?ZitiMHVtNHlMR2xkU205T0x0V3BtRE1IMzhxT3ZBTWFPeVg0aTlRNUg3SVUy?=
 =?utf-8?B?UitRei8vM1lMRjBDRTVkVnRxSlF3LzBUaUZwV3crc241bzg1WVh4MHMzd3ow?=
 =?utf-8?B?Y1l1aXFTQTlWdFptMWlUYmZvbHdkNFBIWERoZFJldWFDNW5SSTFmY2w5anYx?=
 =?utf-8?B?cnQ0ZE02WmpRR3AzY1hxdWQ4cHd5OWVzNTFVNlNBTjBOaEdlc3pkUk9LbmlM?=
 =?utf-8?B?V2IrOVhjMWdGUEtFZVVrYlJmMXRBZmFzN1kxcVBSbDlqVGNOSEIraysyU1pG?=
 =?utf-8?B?a0tsaEU5MkF4V1p4UEsyaWJFd0tIYnJUTG41TXUrVUoxc093RjAweEltL1Fl?=
 =?utf-8?B?YjE4ajN6QXF6aGhSSXBSOFEydHFvc01YOHduQmxnT0h4ZHV2Y2pGblJ1aHh3?=
 =?utf-8?B?c1VyamY2dW8vZlUzT0FaUTJLZFAvZTFvZWFKSGUxd0pZKysrczAxL1ZyWUpU?=
 =?utf-8?B?aGNKSDl1d3dXUmtPUVFQcjVnd0VmS1paTzJoVktwMWRFTlFReW51Yzh5a2wv?=
 =?utf-8?B?UVRNWjg1bFkrZnVWcVpGVUpVa0w0YzU0UmtsZy9jTFJjTGtVSGJDcjk1MHNZ?=
 =?utf-8?B?NGNtTGFRYTYxWkkrL2tJMVlwYzB0M0xTczBsM2x5c1Y1OGVXNjExaXIwRTB3?=
 =?utf-8?B?RGo3UGQzVG9Yd2djelVIWkU3QWJJTTl4Ym80MHZCbGI1SlRtam9TQXJLZ2RG?=
 =?utf-8?B?U0hpb3U4dERoUTZJZWFBc1RDcTJnPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(14060799003)(82310400026)(35042699022)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	O7e2FuVPblYh6ZzDOXa1avTY9LtoxeAZgdfxQIUJcu9Z2WsC1XOJtp3vRJUIIOsi3kY30vuya7XMrtuJELBTcRJXUypuEXVlaYgGbOyC/+qmd/qFvqY6IW8D30CvqNHVS9WZgo8GC0ygsjIMQBvDK1dyihtY7YmhrsUN+38OyaJKkLwLvnNVQb9NvLIwsCanBL2dvS5BHenKWN4WNHU5FGdYV54EQeo9OPctotMLJkoXwXaI+ImCQ3LRHmQr1dGDDUU5OGCJ7xtGnRmLkN39x0MT70vU+XdA7k7orEGxprXMUy6533tEftRcB3xjTbQuPpA47rUbP+ZbvUAioYKrw1KrmrLU9nV9qM4jX1UudvC4LlBeADKg2BVgSwRtZLZ0QVbWlVFQLAvbMu+dF7/vNthHU1d3cc+xu5nZuq8EzlgPDiR1DQ7q8j2o+fc7HRJP
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 13:35:27.3511
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 15c17fdb-3f9f-4965-a363-08de658496e0
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:
	DU6PEPF0000A7DF.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8462

DQoNCj4gT24gNiBGZWIgMjAyNiwgYXQgMTQ6MjksIFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBh
dUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIEZyaSwgRmViIDA2LCAyMDI2IGF0IDExOjM4
OjAyQU0gKzAxMDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4gT24gMDYuMDIuMjAyNiAwOToxNywg
QmVydHJhbmQgTWFycXVpcyB3cm90ZToNCj4+PiBYZW4gZG9lcyBub3QgcHJvdmlkZSBhIERhcndp
biBidWlsZCBjb25maWd1cmF0aW9uIGZvciBzZWxlY3RpbmcNCj4+PiBHTlUgdG9vbCBkZWZpbml0
aW9ucy4gT24gbWFjT1MsIHRoZSB0b29scyB3ZSB1c2UgYXJlIGVpdGhlciBHTlUNCj4+PiBjb21w
YXRpYmxlIG9yIHdlIG9ubHkgcmVseSBvbiBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgTWFjIE9TLCBz
bw0KPj4+IHVzaW5nIHRoZSBHTlUgdG9vbCBkZWZpbml0aW9ucyBpcyBhcHByb3ByaWF0ZS4NCj4+
PiANCj4+PiBBZGQgY29uZmlnL0Rhcndpbi5tayB0byBpbmNsdWRlIFN0ZEdOVS5tayBhbmQgZm9y
Y2UNCj4+PiBYRU5fQ09NUElMRV9BUkNIPURhcndpbiwgZW5zdXJpbmcgRGFyd2luIGJ1aWxkcyBh
bHdheXMgZm9sbG93DQo+Pj4gdGhlIGNyb3NzLWNvbXBpbGUgcGF0aCBhcyB3ZSBkZXBlbmQgb24g
dGhlIExpbnV4IEFCSSBzbyBjb21waWxpbmcNCj4+PiBvbiBNYWMgT1MgaXMgYWx3YXlzIGEgY3Jv
c3MgY29tcGlsYXRpb24gY2FzZS4NCj4+PiANCj4+PiBBbiBleGFtcGxlIG9mIGhvdyB0byBidWls
ZCB0aGUgaHlwZXJ2aXNvciBmb3IgYXJtNjQgb24gTWFjIE9TDQo+Pj4gKHRvb2xzIGNhbm5vdCBi
ZSBidWlsZCBmb3Igbm93KSB1c2luZyBhIGNvbXBpbGVyIGZyb20gYnJldzoNCj4+PiAtIGJyZXcg
aW5zdGFsbCBhYXJjaDY0LWVsZi1nY2MNCj4+PiAtIGNkIHhlbg0KPj4+IC0gbWFrZSBYRU5fVEFS
R0VUX0FSQ0g9YXJtNjQgQ1JPU1NfQ09NUElMRT1hYXJjaDY0LWVsZi0gSE9TVENDPWdjYw0KPj4+
IA0KPj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNA
YXJtLmNvbT4NCj4+PiAtLS0NCj4+PiBDaGFuZ2VzIHNpbmNlIHYyOg0KPj4+IC0gU3ViamVjdCB3
YXMgInhlbjogQWRkIG1hY09TIGh5cGVydmlzb3IgYnVpbGQgY29uZmlndXJhdGlvbiINCj4+PiAt
IFVwZGF0ZSBEYXJ3aW4ubWsgY29tbWVudHMgdG8gbW9yZSBhY2N1cmF0ZSB2ZXJzaW9ucyAoSmFu
KQ0KPj4+IC0gUmVtb3ZlIHRoZSBidWlsZC1vbi1tYWNvcyBoZWxwIGFzIHdlIGhhdmUgbm8gZGVw
ZW5kZW5jeSBvbiBhbnl0aGluZw0KPj4+ICBjb21pbmcgZnJvbSBicmV3IGFueW1vcmUgYW5kIHRo
ZSB0b29sY2hhaW4gY2FuIGJlIHJldHJpZXZlZCBieSBsb3RzIG9mDQo+Pj4gIG90aGVyIHNvbHV0
aW9ucyB0aGFuIGJyZXcgb24gbWFjIG9zLiBTd2l0Y2ggdG8gYSBzaW1wbGUgZG9jIGluIHRoZQ0K
Pj4+ICBjb21taXQgbWVzc2FnZSBpbnN0ZWFkDQo+PiANCj4+IERpZCB5b3Ugc2VlIFJvZ2VyJ3Mg
bm90aWNlIG9uIE1hdHJpeCBhYm91dCBvYmpjb3B5Pw0KPiANCj4gSSB0aGluayBCZXJ0cmFuZCBj
b25zaWRlcnMgb2JqY29weSB0byBiZSBwYXJ0IG9mIHRoZSB0b29sY2hhaW4sIGhlbmNlDQo+ICJy
ZXRyaWV2aW5nIGEgdG9vbGNoYWluIiBpcyBtZWFudCB0byBpbmNsdWRlIG9iamNvcHkgKGVpdGhl
ciB0aGUgR05VLA0KPiBMTFZNIG9yIGVsZnRvb2xjaGFpbiBvbmUpDQoNClNvcnJ5IGkgb25seSBz
YXcgeW91ciBtZXNzYWdlIGluIG1hdHJpeC4NCg0KSSBjaGVja2VkIGFuZCBpIGluc3RhbGxlZCBi
b3RoIGdjYyBhbmQgYmludXRpbHMgaW4gaG9tZWJyZXcuDQoNClNvIGkgdGhpbmsgdGhlIGNvbW1p
dCBtZXNzYWdlIG5lZWRzIG1vZGlmeWluZyB0byBzdGF5Og0KDQpicmV3IGluc3RhbGwgYWFyY2g2
NC1lbGYtZ2NjIGFhcmNoNjQtZWxmLWJpbnV0aWxzDQoNCnRvIGJlIGZ1bGx5IGNvbXBsZXRlLg0K
DQo+IA0KPj4+IC0tLSAvZGV2L251bGwNCj4+PiArKysgYi9jb25maWcvRGFyd2luLm1rDQo+Pj4g
QEAgLTAsMCArMSw3IEBADQo+Pj4gKyMgVXNlIEdOVSB0b29sIGRlZmluaXRpb25zIGFzIHRoZSB0
b29scyB3ZSBhcmUgdXNpbmcgYXJlIGVpdGhlciBHTlUgY29tcGF0aWJsZQ0KPj4+ICsjIG9yIHdl
IG9ubHkgdXNlIGZlYXR1cmVzIHdoaWNoIGFyZSBzdXBwb3J0ZWQgb24gTWFjIE9TLg0KPj4+ICtp
bmNsdWRlICQoWEVOX1JPT1QpL2NvbmZpZy9TdGRHTlUubWsNCj4+PiArDQo+Pj4gKyMgWGVuIHVz
ZXMgTGludXgnZXMgQUJJIHNvIHdlIGFyZSBjcm9zcyBjb21waWxpbmcgb24gTWFjIE9TLg0KPj4+
ICsjIEZvcmNlIENPTVBJTEVfQVJDSCB0byBhIGZha2UgdmFsdWUgdG8gbWFrZSBzdXJlIGl0IGlz
IGFsd2F5cyB0aGUgY2FzZS4NCj4+PiArWEVOX0NPTVBJTEVfQVJDSCA9IERhcndpbg0KPj4gDQo+
PiBJIGZpcnN0IHdvbmRlcmVkIHdoeSB5b3Ugc2F5ICJmYWtlIiwgc2VlaW5nIHRoZSBmaWxlIGlz
IG5hbWVkIERhcndpbi5tay4gQnV0DQo+PiBpbiBDb25maWcubWsncyBjcm9zcy1jb21waWxlIGNo
ZWNrIHRoZSBidWlsZCBob3N0IE9TIGRvZXNuJ3QgZXZlbiBtYXR0ZXIuIFNvDQo+PiB5ZXMsIGl0
IG5lZWRzIGZha2luZyBoZXJlIGZvciB0aGUgdGltZSBiZWluZy4NCj4gDQo+IEhtLCBzZXR0aW5n
IGl0IHRvICJEYXJ3aW4iIHNlZW1zIHdlaXJkIHRvIG1lLiAgSSB1bmRlcnN0YW5kIHRoZQ0KPiBw
dXJwb3NlIG9mIHRoaXMgaXMgdG8gZm9yY2UgdGhlIHVzZXIgdG8gc2V0IFhFTl9UQVJHRVRfQVJD
SA0KPiBleHBsaWNpdGx5LiAgSSBob3dldmVyIHdvdWxkbid0IHNlZSBpdCBhcyBmdWxseSB1bmNv
cnJlY3QgdG8gbm90IHNldA0KPiB0aGlzLiAgSXQgd2lsbCB0aGVuIGV4ZWN1dGUgYHVuYW1lIC1t
YCBhbmQgZ2V0IGBhcm02NGAgYmFjayBmb3IgQXBwbGUNCj4gc2lsaWNvbiBtYWNzICh3aGljaCBp
cyBraW5kIG9mIE9LPykuICBPdGhlciBJIHN1Z2dlc3Qgd2UgdXNlIGEgbm9uLU9TWA0KPiBzcGVj
aWZpYyB2YWx1ZSBoZXJlLCBzbyB0aGF0IGlmIHJlcXVpcmVkIHdlIGNvdWxkIGRpc3Rpbmd1aXNo
IHRoaXMNCj4gY2FzZSB3aGVyZSB0aGUgdXNlciBpcyBleHBlY3RlZCB0byBwcm92aWRlIFhFTl9D
T01QSUxFX0FSQ0guDQo+IA0KPiBNYXliZSBYRU5fQ09NUElMRV9BUkNIID0geyB1bmtub3duIHwg
dW5kZWZpbmVkIH0/DQoNCkkgYW0gb2sgdG8gY2hhbmdlIHRoaXMgd2l0aCBlaXRoZXIgYnV0IG1h
eWJlIHVuc3VwcG9ydGVkIGNvdWxkIGJlDQphIHRoaXJkIGNob2ljZT8NCg0KQ2hlZXJzDQpCZXJ0
cmFuZA0KDQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 14:17:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 14:17:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223284.1530842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voMdX-0002Mc-Or; Fri, 06 Feb 2026 14:16:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223284.1530842; Fri, 06 Feb 2026 14:16: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 1voMdX-0002MV-MA; Fri, 06 Feb 2026 14:16:43 +0000
Received: by outflank-mailman (input) for mailman id 1223284;
 Fri, 06 Feb 2026 14:16: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=wPAo=AK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1voMdV-0002MP-Vn
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 14:16:42 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6ee76d48-0366-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 15:16:31 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB6540.namprd03.prod.outlook.com (2603:10b6:303:127::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Fri, 6 Feb
 2026 14:16:27 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 14: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: 6ee76d48-0366-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Cb/dWkEqchMkBs4dEJKLfEjfUfcIBOpPfgCJRIKgbd0UNkb3QCK6JI09PYly1W8HmZZOqY+tC7KVifj6oeZjrdraZza1zXd/akki2Epff6GTozXdJN/rZcbNBWQ2P0g89knY+f3yBXb2SNkuIhbUQ3cd3kRxaS2820LiGVbgZh6NhcV+LwWStJfvlKxjWcmzb8CuNVVUEzn+++tHS7gsErGhRBeukecOmHdjlyZ1DSnsvGpk/ZZtHJsyJ1rFUVNGaL0lsqwcE20VeDNOyj7J9m+PWSq7h1rxDt99A74cQ2IRKbmiBHWjCk9B+EEgd4Dt6d1FFMxMLEBMAEqLtgtYkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RTA1iiQO+s/F2BYi2DqPkFXaSmJXt2ZnztOC0nfAVGk=;
 b=q3UjlDYRZhNO8MbwtUVOxFpOoXLKKAi/ytm/JotSlja3SMP5NCH89qsbdBKkYmp2KaZFdhlw7cfTMg8FMriPzcLLwqnllx9zE2tQQCncRfgIki6wuNajLr53WQ/uVwrb3PZYcoCym2NzgkCCW66+IWQo56xcrwLvcDzFXif70jiyMX8e8djNW2e14gTT7qtxR8oZ76xJOXGOAIpTLUZ08v6YwM/A8DzYzl9ZZnzOpyKQEEvUo6E8I7Flhy39kBnVnkpbklzeltrtygGzCIlMSbM5n9TykwFF1DRn3PF3JbK8Ad3d95XIrrIWnG3EoICPFVClcsGRG7jSQBF2nogkrQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RTA1iiQO+s/F2BYi2DqPkFXaSmJXt2ZnztOC0nfAVGk=;
 b=c+qMNrh+8L2nQp83bG6LbO7nyl7AafhaOZ4maD45sDcJlUupIMnfXNWIhPWh1IHMSbiOL2FSD93OchgbUPAgRdM3qQ50MwfC/jXW5ijWf2iTsHtNoaFaIf5YfmGSow7oTI/sqz/ufh9890mgg0ws5D5qVkJoZ+YjL+DhDBjr/as=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 6 Feb 2026 15:16:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Message-ID: <aYX3uBr6NcCZoP10@Mac.lan>
References: <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
 <4bdcd7e0-ff9d-4bbd-8337-aa80d7d66ce9@suse.com>
 <aYXsvu3HlPuCUuY8@Mac.lan>
 <16ECC44C-5C56-47CF-8AB6-DED34990C5B1@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <16ECC44C-5C56-47CF-8AB6-DED34990C5B1@arm.com>
X-ClientProxiedBy: MA2P292CA0018.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::8)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB6540:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cd4649e-9708-48c7-41eb-08de658a5119
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?SGllUm1JNmg4Z05qSnlMNDl0SmtJMmJrT3BlN3BrUm5JS21HQ0NWclkyY1Zx?=
 =?utf-8?B?K0VaRmo4UzVCekoxNmRnVVRzalBzQTBNMlBCd3ZlYU42TThQKzB4UGtMYlZC?=
 =?utf-8?B?RVN5aWRLaStXck1IZ0szSmxCQ3lsVWVXZWNrNjJ1cEtsK2U4UWo1bzhMM0p3?=
 =?utf-8?B?SjlQdG9UOUliNndHd28rNEJiRVRDZWZzQXhFcTRqTkpoRnl1eDJZOWlVMmJv?=
 =?utf-8?B?dFRPblVjTHZUbXpjeWpYM0FlZVdEUnFXUGdzUWV5K2FkeSs5YzdIbFRqWWc3?=
 =?utf-8?B?Zm5hRkJlZlpBZ1ZzanBiQ2RlQzUxZGEyN2RDMGRlZjYxanpNcVM3LzdxdDA3?=
 =?utf-8?B?aGNOeU9aYnR0aXBTQU9lL1N0SWt0WmlGWkxpWnRGakUxUTVYT1I1VEdZWHIx?=
 =?utf-8?B?cFQ2c25WUGpTUTNTd0tqeFE3NXdGR2ZraVB2MjNna2ZGTEl0WCtuNVVpYzlQ?=
 =?utf-8?B?Z2htRkxicVdDbUtvODRrRGxmNlQrMlRrL1VyRlpIeDRZbnJvN1NuSzhxNkRt?=
 =?utf-8?B?NlpjRFd2N3VWRVlFMEZDN2VPeHk1QWRJRnZlTHNaTytEL1g5Q3p6bDQyR3VK?=
 =?utf-8?B?MDJQOXM5NTBRSWYyNVBLYUk2TEozcThCZUxzZU03LzZWMCtOdFlhQ2RKaU5t?=
 =?utf-8?B?SEVFUFlxNHFKdFBIZnBCU2lyaGlRVWZlM3VoRHdzN0VtdU9XamRTQytnN0pM?=
 =?utf-8?B?NDJXSXFYVFYwaWR2aFZqRGt1SEpEbGdha2RyQktIeTFVUG1mRXhITGZPVm9L?=
 =?utf-8?B?dktVWUtNRFF1eWdBOFJEMjFVN01MdnVNeFByMk8rOFlxREdLQndWOXdqRjJQ?=
 =?utf-8?B?QlJSTTdWdHQvbVgzbVZJdU9BbEk4cFRtUy9vZ0wyQ2MycHM0Q3lIQUVQaHgw?=
 =?utf-8?B?Z3Awc29VeW4vQmdPdDM1Zk94akVVRFNlZnVwL0swT0Fid2NOYm5LQzZ2d2c2?=
 =?utf-8?B?TUpFQ01tbWRBY3AvZjhDcXBieG5KdWJoYkM1eGpVYlhZZWdlWTZGNjdLNlBj?=
 =?utf-8?B?dW5JVTZzSUNHRXVDY2NaalA0dTFRaUtqazRIb25ndkFxeDYrdkp3KzRsbHcv?=
 =?utf-8?B?Q3VNdlQ0djd5V1c3bHkxMGRYQklVTXdSYkhFVmlxbVovOVpOWVVPNWRZZGth?=
 =?utf-8?B?cGtFcklCWXUzd3cvY1VabkxEaDkvQTVKMHJHVFhBNHJhWjhMdWxaWEpMOEYz?=
 =?utf-8?B?NTYrNUd2SStTVUJuVlloZytEaDROSlVJRXJraDlBRE96VkFXVnMxQlVDaENa?=
 =?utf-8?B?SWdnREl1YzlmQ3lKZGt3cHdnZGpWT2lLMitWU2RSZm5Td1ZGZC9Cc01VVEZU?=
 =?utf-8?B?ZCtyaURqald6Mmc5OHRZQ1c5TVNBdXNlbGs5Ykp3aFpac3VyN2Q1MEtsTmZj?=
 =?utf-8?B?cDdpVERlVVBZYmFXMGd6b1diT0tTa0V4UFk1eGViaHErbkNBL2R5NkRtOGhW?=
 =?utf-8?B?VytGTHRyS0lqaHlhMVFXSUxraVRPNGQ1NFowOWFzQzF6bDliZm92TlBUcHRi?=
 =?utf-8?B?TnRCemRZUDh5SGszMWJyL2FiM2lTY1B0Rk52aDNBaHk2akdLTFpheWFCOUhr?=
 =?utf-8?B?cnBsMy9DVkxXTkVBVHRnMGMyZjBoeEN0ZnNkbitHSmtOOWIrNWl2ZWs0cFNq?=
 =?utf-8?B?Y0hZWjE4Z3d6a3JGN2U0dmNwUlU0VStmVzlMZk1oaVpWbTVWVWNtRDY5Q3dq?=
 =?utf-8?B?UTZ4cVFMeitLbG1peThsNkQzVUNjTFAzdzJ1Qk9ibUVjWnJ1ZU10ajFzN1p6?=
 =?utf-8?B?S2Fzd2tzR1E1dnE2TE5SZTJ3MzFxRGo2c3BERG1TcnZBVXRnTldhTVFhOGQ0?=
 =?utf-8?B?UlVFL0pqajFSVTVTbU9iOEh0ZkxOMVVyRWx6ZFN1M2VwSGNOQU5GejlNd081?=
 =?utf-8?B?dmIxY0V2SFdHS0dWWkduZjJZNk80cE9Ybm9haEpqRC9TM2g1MVpRQUdtZXZY?=
 =?utf-8?B?K1lCWXJ5cm14aGpFZ2R6NzMrUmYyL1VLM3FOYnR4djhlQmpySHpSMFV4NThC?=
 =?utf-8?B?blhHL2xnSEc2NytnYU9GNlR5SWdXd0RKTWExYUhjTHg2dFNQN3IrK2o2L09h?=
 =?utf-8?B?K1prblllc3MxZVhjeTd2V2dJclhnVkROWDBINlc3TWZmOGNKdyt4OUFDWStP?=
 =?utf-8?Q?RQFs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Zm5tL1BFVnJ6Skd3OXdjMXovNlpZZmlmV0RmL0tEQXUvRWY0VWhUbytrMFU2?=
 =?utf-8?B?YUIyN01saVlqZmFYY2kzSkt0Z2NXUlJhOVRMTCsxUWo5OXdUK1pGOFlrWHhS?=
 =?utf-8?B?S2thRTlIM0JtZElKeXhwZ1U5ZG11ck9qaHRpZExETys4VVk1K2d5TDFDa2dt?=
 =?utf-8?B?WlB1NklGYm45TE1Wa3ZMK2JCZXZkdnY5MzY1UXpEVFRwcXMwaHpPckY5VTMv?=
 =?utf-8?B?S0p3S2ttdUhjQVRuRmd6RHhuMml5RVRxdUlDS1FXcTFEUEpzUWZUbW9lMGdI?=
 =?utf-8?B?K0piN3RVaTF6cy9mQkZTS2Vib2ZaMWhvOXdTRlNmOWttT3dLY29VOGhwZ3FW?=
 =?utf-8?B?a0k4V2dHK29VV29US1JVWEFSa0NCRCtqMVNuK0NYaTh5U2wrZ1R2RnIzR2E3?=
 =?utf-8?B?SkN4bG1mcktrRHhDNnM2T2lxNFdqT3E5VUZZaXc0NUtqYyt6NjZGVVdzRnpn?=
 =?utf-8?B?NGhUOU9VVlhwUmtxV3lkUTVMb05reXk4a2NVVzdZR3NBUTJUc05kMzMvZk1u?=
 =?utf-8?B?WUI4akxYZC9vbmdES3FrVmNyT1RybUwvZmw1SXdnUThrWmxtSFhWSmVvdzFG?=
 =?utf-8?B?SXRYTU9iTHg2K1c3QTIyVXpWNlJFU1Y0SHVNWVdFMm1yMDdSRklQSks1cnVn?=
 =?utf-8?B?d2R1Yk5vVktZeDZGWk9SLzJTNHpqRzVTN2pkWTlHRFgxU3B0SVRrYTVkakpE?=
 =?utf-8?B?K0dsWUJqL1g1QXZKSVBROWJPa2FJalFyeUNvQ3ZUOG91eHR0MUwvR1FNY3VJ?=
 =?utf-8?B?Nk1Xc0t0RHAyZnNDYWlHcjhvaFZWU3dIVnNYaUlCcUIxM2l1ZG9SUEpISVVl?=
 =?utf-8?B?MGVRdFpNbVk5WG9KS0g1MDRTeStvTWpObEtuK3lLN2JaeGRSaEJXMko2NTlX?=
 =?utf-8?B?dm82UmZudmpvVUdIeUxmbnBEam01N0V5by9JQmcxZlhuMWNxMEk4OG4xWnhF?=
 =?utf-8?B?M0NhVUM1dHIyMk5DMnFFbnpnSVp5SEhjSEFaY2RCTmdrNEdsVTJUNjNDQ0dV?=
 =?utf-8?B?MTZCOGlNdHNnblRlOTdQNDBLenN3OU9VNW1GcGxyUTR6VHJub3B0Z01BSXdh?=
 =?utf-8?B?TGNhQmJvTzJMcWhSNUdjU2paZU5saDdhZTJ1cllIWkRoMlNDV1V2NWZrNHBS?=
 =?utf-8?B?Z0llUnd3czRrSHVSTUdpdUp6T2l4MTdhTmhZMWU2SXpNOEhhUW9QUmgvYStu?=
 =?utf-8?B?NzNpb0E2VzEyVVpueHBGTjdtMG9OQ3RnekVZMXdFUFRRUUlWbkQ1SFprQzVq?=
 =?utf-8?B?UldPWjZMakJSMFk4RWp3Z1dsMUJBYnVsUkUzeDEyMnVkaXNnTHg0ODlrbk1X?=
 =?utf-8?B?Wlk5dmJRTG93cm1FdGczSGhvSnNxYXlnU1dnVW16RkhrODBYamxxSFdmczBq?=
 =?utf-8?B?RGFqQTRjdDgvR3F4YUdDanRiZXVkYVdxZUpCaW5MbzJFTVpxL1JMWW1vTVdH?=
 =?utf-8?B?MDNsdGdxaVBPYnRETFVmVXdudUVxWmZWOU9JTFNYMDVwemg2Q1BwbnVpcC9S?=
 =?utf-8?B?SWNaV3dPaXd3VVZaQkltNkxtNnByRlk3NDNVamk2QURVM08rRUx5SEJQREpO?=
 =?utf-8?B?ZStMWDU4QUN0YWdqVkF4UDRjUFJkdGxUek5TZGE5bkIxSzlxMGpGRmJMWnNp?=
 =?utf-8?B?ei9yN3RSMVRUeHpJWC9wRDFnVlF3OGVzbExtbGNLbFVVb2tyZXp6dDd3blAv?=
 =?utf-8?B?SWtjckhOcSsrUGRsbWRUZ0kzOU44a2VqamFJckNTM2lzM044K2hPNStnZFNv?=
 =?utf-8?B?UHRtSHNPakY3WGMva1NuRGp3bVQxaXo5bFcwK1NDYnhWYWg5dUV4d0lYM2tW?=
 =?utf-8?B?WHNTRFMyTWNUeU1PYkFMeEwvRzYxUWoxU3JvdjRtd1AzZCtqLzE0RnhIOGFD?=
 =?utf-8?B?Q1dkOVRhRjVlVStxUlBsNTBULzFEUzNZMmNhOThJcHVRVDR2L1BaTmdsS0Vo?=
 =?utf-8?B?NERHUUZ0alVzNU8yTmo3ZGRXZ0k3cWVaNndORW5ZaEZ6N1VpM3Z1bVQ5TUE0?=
 =?utf-8?B?NHBaWFduODJLV0FmQ003akpDb1E0N1RnenphR044MFhxZmxZVWRjMXYrY0N5?=
 =?utf-8?B?NG1HZEdsbEY4VTNjNEF1Wi9VaGxxNzBzcGJIWXMvQmlWUFRhUC9GSEFJTm1P?=
 =?utf-8?B?T2RBMStjUGtmZERON21JdVk5TWRZTEkwZ1RJeTJzbXNLMEd5b1lKajBUaDBB?=
 =?utf-8?B?OHFFNmpnMThKMEJSTWVuT3BaZ2h2MmVjbkVVdm5kS2pEU29vT2gvT2tZTHRX?=
 =?utf-8?B?SVVsdUR5cXE1dUZNUDNyQWdtdzVBb3E2YlN3WlJsZWVFMXE3T21mblJiT1JK?=
 =?utf-8?B?SytZNnJZdFJmam5DMC9CYWFBMmtwNlFGdE00OTBNKzN3cmlmQkdxZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cd4649e-9708-48c7-41eb-08de658a5119
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 14:16:27.5340
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VOoabL3osC6scmmCaCtn7wB5bMb7+CPQl/Cf5k3PcJoZT3hokFmG95EAbV6timun6BdLzINEbuBAFzSoVNq8bQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6540

On Fri, Feb 06, 2026 at 01:34:23PM +0000, Bertrand Marquis wrote:
> 
> 
> > On 6 Feb 2026, at 14:29, Roger Pau Monné <roger.pau@citrix.com> wrote:
> > 
> > On Fri, Feb 06, 2026 at 11:38:02AM +0100, Jan Beulich wrote:
> >> On 06.02.2026 09:17, Bertrand Marquis wrote:
> >>> Xen does not provide a Darwin build configuration for selecting
> >>> GNU tool definitions. On macOS, the tools we use are either GNU
> >>> compatible or we only rely on features supported by Mac OS, so
> >>> using the GNU tool definitions is appropriate.
> >>> 
> >>> Add config/Darwin.mk to include StdGNU.mk and force
> >>> XEN_COMPILE_ARCH=Darwin, ensuring Darwin builds always follow
> >>> the cross-compile path as we depend on the Linux ABI so compiling
> >>> on Mac OS is always a cross compilation case.
> >>> 
> >>> An example of how to build the hypervisor for arm64 on Mac OS
> >>> (tools cannot be build for now) using a compiler from brew:
> >>> - brew install aarch64-elf-gcc
> >>> - cd xen
> >>> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=gcc

I've just noticed: it's a bit misleading to use HOSTCC=gcc here, as
(under a normal OSX system) gcc is a plain wrapped around clang:

% gcc -v
Apple clang version 17.0.0 (clang-1700.6.3.2)
Target: arm64-apple-darwin24.6.0
Thread model: posix

You might as well use HOSTCC=clang and make it explicit the host
compiler is clang and not gcc.

> >>> 
> >>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >>> ---
> >>> Changes since v2:
> >>> - Subject was "xen: Add macOS hypervisor build configuration"
> >>> - Update Darwin.mk comments to more accurate versions (Jan)
> >>> - Remove the build-on-macos help as we have no dependency on anything
> >>>  coming from brew anymore and the toolchain can be retrieved by lots of
> >>>  other solutions than brew on mac os. Switch to a simple doc in the
> >>>  commit message instead
> >> 
> >> Did you see Roger's notice on Matrix about objcopy?
> > 
> > I think Bertrand considers objcopy to be part of the toolchain, hence
> > "retrieving a toolchain" is meant to include objcopy (either the GNU,
> > LLVM or elftoolchain one)
> 
> Sorry i only saw your message in matrix.
> 
> I checked and i installed both gcc and binutils in homebrew.
> 
> So i think the commit message needs modifying to stay:
> 
> brew install aarch64-elf-gcc aarch64-elf-binutils
> 
> to be fully complete.

Yes, I didn't notice that in the commit message you explicitly
mentioned the brew install dependencies.  There's also bison and flex
needed for Kconfig, but AFAICT those are part of command line tools.
I think python is also part of the command line tools, and not sure
it's required for arm64, as it's required for x86 to generate the
cpuid headers (but I don't know if arm64 has anything equivalent).

> > 
> >>> --- /dev/null
> >>> +++ b/config/Darwin.mk
> >>> @@ -0,0 +1,7 @@
> >>> +# Use GNU tool definitions as the tools we are using are either GNU compatible
> >>> +# or we only use features which are supported on Mac OS.
> >>> +include $(XEN_ROOT)/config/StdGNU.mk
> >>> +
> >>> +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
> >>> +# Force COMPILE_ARCH to a fake value to make sure it is always the case.
> >>> +XEN_COMPILE_ARCH = Darwin
> >> 
> >> I first wondered why you say "fake", seeing the file is named Darwin.mk. But
> >> in Config.mk's cross-compile check the build host OS doesn't even matter. So
> >> yes, it needs faking here for the time being.
> > 
> > Hm, setting it to "Darwin" seems weird to me.  I understand the
> > purpose of this is to force the user to set XEN_TARGET_ARCH
> > explicitly.  I however wouldn't see it as fully uncorrect to not set
> > this.  It will then execute `uname -m` and get `arm64` back for Apple
> > silicon macs (which is kind of OK?).  Other I suggest we use a non-OSX
> > specific value here, so that if required we could distinguish this
> > case where the user is expected to provide XEN_COMPILE_ARCH.
> > 
> > Maybe XEN_COMPILE_ARCH = { unknown | undefined }?
> 
> I am ok to change this with either but maybe unsupported could be
> a third choice?

No strong opinion for either naming, as long as we don't explicitly
use "Darwin".

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 14:30:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 14:30:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223299.1530852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voMqu-00053Q-Te; Fri, 06 Feb 2026 14:30:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223299.1530852; Fri, 06 Feb 2026 14: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 1voMqu-00053J-Qb; Fri, 06 Feb 2026 14:30:32 +0000
Received: by outflank-mailman (input) for mailman id 1223299;
 Fri, 06 Feb 2026 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=qUCI=AK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1voMqt-00053D-Fq
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 14:30:31 +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 634aae5e-0368-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 15:30:30 +0100 (CET)
Received: from DU2P251CA0012.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::8) by
 AMDPR08MB11367.eurprd08.prod.outlook.com (2603:10a6:20b:717::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 14:30:26 +0000
Received: from DB1PEPF000509E7.eurprd03.prod.outlook.com
 (2603:10a6:10:230:cafe::39) by DU2P251CA0012.outlook.office365.com
 (2603:10a6:10:230::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 14:30:21 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509E7.mail.protection.outlook.com (10.167.242.57) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 14:30:25 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PR3PR08MB5755.eurprd08.prod.outlook.com (2603:10a6:102:86::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 14:29:23 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 14:29: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: 634aae5e-0368-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=TvcaZ/flgCdpzHx9zAIKNdo3zb2YC3pOszhPpdRAdmK2LAuUOLWJhdTOiYNOr2r51/PdPpkeQTwOGaTmdwjN42+FkTE2dS6VlbqmRZ0yArPX3wD5OyYLIsRlZNEPO3+8Hh3+ARhytLIMzK1E1eagGAsNRbl4wNFHekghCWCfQ4jvZO4FVKesGLAZlfRd0J7p6Tf4k7o6qVKaIQF0qAAtAoAmUSFOfAaXzGMatfRJJcVqLxJDm0JcVEkEh8lYJLNzJPR/ZInC4pAZ1sDhjPS1VSGWU2cDZFEA7QAk3vXenFdG/WakdXYTg7oSwbH+3b190Eq3xxXzvYmSKCHzCX7sWw==
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=kFTmHDCqa6Y2s6X6nc8m6Jgh9gGlZwbbiP0hkvPapI0=;
 b=xoasaXywx8G1TNyMRmRpwetfIuO7od1ND4+CNCj1n77UwKFJwi+iVryqY8LV3u4IM/pI+gPjqwcztDVaXIEsAoKUSCF3g+uA27LFtAYho4+LqZtYiUQEv6y6PePgcANRjwU3iLhBG8GupO2gXVOha6rntqGwxoE9yuyqwoyzbcuKmIpoAMnY7ENVaHUEK0q4HrW/ci28uJLVKuZFUSzKiSWAkyB+P13BRqPfOLYbFTpMkV9YgO7Di7qzpFZvgq6tEj9RWxdeN3pa2GXbATeJyw683Dqrz1zISLLsCWVKnjjcebXvTcb1A2pqZSnv+ldpp9c4QjtWAzY2e+kW1UTggg==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kFTmHDCqa6Y2s6X6nc8m6Jgh9gGlZwbbiP0hkvPapI0=;
 b=pWAUD6w8KiFYRDGJHnP2p1KzT/ZCyQ0vr4M5kPnhINDVRJLAqTzbFZxaiDN4blQh4EEnLZNnZkVo4ruVq1+a+Wv8OwB1McwZ62n5nvZA7rjx9rZKI/ya7sT2xU3JgbkSFSaehiqfp+yANAzghS07EfObwrH6S0hNa8ZMFxANYeQ=
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=VD2x8bhETLxZJIKJWVeIvkZBalWtyN9iqeRFF24JHevArmsNjadQ0DLTncGNeTHsYTFgK0ZOwYKD6CbV4UO4MdTSflSor1JoHwG9UU0t9JegcAu4ZcBowIaXNRBrXndov0C1lmUpQYm2dyULdvOnM+hm4n3r9nNWmFn78IXMgX6VPOLu9LzeDcHgyT2ii9+MReE8s1zBr2ykKW5D46A+OafHSPtuHvb+AO/PLypHgt5MrAA6fuwoNAFJRlz3CdULe7tyuylcD5X/jc4EtFWLjejp3LdO/YZweSuuHwnF/aFksZ5cKoSHpLNfSXb40sFrDP5nsVCu61mHsBPBu6Hi0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kFTmHDCqa6Y2s6X6nc8m6Jgh9gGlZwbbiP0hkvPapI0=;
 b=huZtdHcDDZLVhcWGZ3XiaIzm86Nl30IxDXBpeGR83Sdx06WNXAsw1PVunpU2CTgqKHQfnm1m/PYd6dkLOO3NqaU+xpz+O2F5sW6XQTKy0GXojeBhX3O+SxRqkPc7D5W2PH3eg3qkcR8d9Po30P8DiodvwRsu2+VvPuLvM36VTzHJ/o0SVDtw25Xo/0Ae/0LD1i3GJ3Om443qcGtNUJlIGshV48W/0bSD8HE3hoKE04CUS6sITxr7dZIOtU/RMndUt+NhkoTo4oa+pMTCt7AJ6scEvCOmUSilFNs5b8oS8paF9eL3J8sgM0h0AmY/lawByveWOkqlAhqvELodchXWIA==
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=kFTmHDCqa6Y2s6X6nc8m6Jgh9gGlZwbbiP0hkvPapI0=;
 b=pWAUD6w8KiFYRDGJHnP2p1KzT/ZCyQ0vr4M5kPnhINDVRJLAqTzbFZxaiDN4blQh4EEnLZNnZkVo4ruVq1+a+Wv8OwB1McwZ62n5nvZA7rjx9rZKI/ya7sT2xU3JgbkSFSaehiqfp+yANAzghS07EfObwrH6S0hNa8ZMFxANYeQ=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.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>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Thread-Topic: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Thread-Index: AQHcl0ETIV6m5wqgrECh60MWgPTuGLV1etQAgAAv7QCAAAFMgIAAC8oAgAADkwA=
Date: Fri, 6 Feb 2026 14:29:23 +0000
Message-ID: <F0D0BAE5-9B94-4734-AC5A-4269A30D24DC@arm.com>
References:
 <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
 <4bdcd7e0-ff9d-4bbd-8337-aa80d7d66ce9@suse.com> <aYXsvu3HlPuCUuY8@Mac.lan>
 <16ECC44C-5C56-47CF-8AB6-DED34990C5B1@arm.com> <aYX3uBr6NcCZoP10@Mac.lan>
In-Reply-To: <aYX3uBr6NcCZoP10@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PR3PR08MB5755:EE_|DB1PEPF000509E7:EE_|AMDPR08MB11367:EE_
X-MS-Office365-Filtering-Correlation-Id: 6c7d9568-56a5-4c84-0ddd-08de658c4506
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?dG9JV1lTdGVMcHo1aVJjVWhkVzRSWUF4eU13Q01wU3Iwc2lMWHJBZlRkMDhr?=
 =?utf-8?B?Tk5DYW5lVE1mSzYxdkFHVTdTUWt0ayt5ZTQzYnhXZlhMRkh6RlRTZDdxR0RN?=
 =?utf-8?B?MHByemtuUm5HcmxyblloNm9lNHBwZ2I4eGZiV1NUY1pRc0ZFbmdhMlo1VEZw?=
 =?utf-8?B?bnNDRitUUzE0blFnYXJVKzJFbzVEWHROWFN4L0ZlNXZhTWxRTVROWm1PYVl5?=
 =?utf-8?B?LzFUWE9UemhIZEJ2eXpaUGNIVUJhZXVhV24rbnlZejNqS0FiSWZyenFFQmtI?=
 =?utf-8?B?bnJ5TzF1UTF4VFFpVmQyd2l5Z3d6OGpJZ0xnWm8zOE15Qjc2Y1ZSTjY1WnM0?=
 =?utf-8?B?VlNCdjBQUEFjaDFmOFJXdDh4bURmRCsyQjR0RDVScWhnampyemwyTHBmNEZU?=
 =?utf-8?B?enNieHIrSmpmQmRZRDBLSWpqSEx6MlFaanBoMGV5aEZxcnp2K3R2SjM3Sjd4?=
 =?utf-8?B?TFFoVkpycDF1YmtsYnlqNDNlTXVobGtEamVkYzd4WUhLTXh5QmpjWFlsZFBl?=
 =?utf-8?B?VDhHdTBtRm9BWWJXbGJILzNmTitRdkdKTTgvOERFK2M3SmF3azZYZzcyQ2p6?=
 =?utf-8?B?aE9HaFYydHJjRVQyMzExenQrM1loYmlVV1o5Vk96N0hIOFJvZ3ZHOWJSL05m?=
 =?utf-8?B?dGtLNmlqdFY2d0d4NUlZVmhtTDR5SEpWNzNndDRRaktiTm1VRHppdWZ0OGF5?=
 =?utf-8?B?RzAxL2ZtM3JHWWp6czdnZDY1ZW11NWw1eDF6UCszUmIyS2VFYTdBbWFOZEow?=
 =?utf-8?B?c095Y243M0lEVzRFMzFnR0tpODdOT2R1TUdkc1d6UVVWOEFIZkxJOHNVbGkv?=
 =?utf-8?B?SG1ucndpTVFBeEtpYndLalh6WWpQY0k4MjVkcnNzODJ5TkU1akc1MXNDekwy?=
 =?utf-8?B?N3p1aGFzRnlHYlBZaEU0dlRiQjZ5Vkl2dEJ1U1RSdStrSlFkSjZOUGtSSllw?=
 =?utf-8?B?ZlQyVUdiWUY2dUJwRFIzMVdkTlpGUThLdG41TnV3OWl6MzU3NURFYzlxK3JB?=
 =?utf-8?B?UXNtWUtBK2ZFd1BFQjd5bityN3M1TmlxRVRyUUdiNXB0K2JtTjU4aGNvMGIy?=
 =?utf-8?B?NEtVdXVWeW5Uckdzc2hjOUZNZGRmaWNQMFZrVFk5STBKcCtwaHZqNCtzRVdV?=
 =?utf-8?B?VlRIb0JkcXlpVlh5NTgwRTRLNXdPU3NoZnVqdHd0dXBxN2hBeEFtcm4zdnFM?=
 =?utf-8?B?NytNWFBmcWtObHJJc056ZU52MFEyeGxVSkpnQVg3eXAvRndXOHZHZ04ySmFV?=
 =?utf-8?B?R0tuaU1HRFRJT1lxczRYcTVEOVBSc3NMeVJ6TXo5NVhxd2pQQTE2K0ZzeFdB?=
 =?utf-8?B?VWZ3OHdlLy8rMVlxUmNPc0VpSHpPYlpvQ3lqdk9DdmdFZjVLWlBSUTlxYnFZ?=
 =?utf-8?B?OUh4MVFUZnlkQ0NvcGgwS2JFenJWbTluMWRhQmQ2QndWNkkxZk55b1d0OWlK?=
 =?utf-8?B?YnZhRTVOQUYvL3pUeXNMYkI0aGIvN2EvV3RjdHdoQ1BSZ0xsbnFGTG44ay9o?=
 =?utf-8?B?UUlVYVRXbXVDaG54Wk5TYklPWk5WSU1zR1lUYXRlRnZiUEVEaWRFRzRubk1l?=
 =?utf-8?B?NVVxTW9uOVZvTDNTWVpscXNoYmlFV1dpOEp1NHpYVi91dURlcitmMml3Zzdq?=
 =?utf-8?B?cTJ4MHZhQUlUcWFoTlZOYTdFZWFBOGFwTlZ5M0hyYTlEUkRSam5QQnlpRDM0?=
 =?utf-8?B?S2xSRVdCMFlJWWxkVytKeVJDYkdhYzNQeHBXejBTUk1aVThIWitkTFF6djJp?=
 =?utf-8?B?dWNmOTBCd2RsNDRpUGZIM2Vad3lKZHU2b1k5MWdIWTYxN1VoMUtETG9tZUc1?=
 =?utf-8?B?bG5CSHNDUFUxaDUxMmt5TVpjdk9SMDQ1a3BaY1ROSVZLVk5nb2p6ZjdWbzlE?=
 =?utf-8?B?VU1VY0JsMHVNVk1abkZQWFZ2RkJSTjMyZjNRM3ZVeUdnT0kyeVE2T0dEVXpQ?=
 =?utf-8?B?Nk84U3IrR3RCYXJxeVVwdmhmdnJzUkQ3TDBOSDh3NjI0bWNySU00M3YybHNi?=
 =?utf-8?B?TnpFUi8rbXh4QzZZRDVJQ0JvM0UrakZZRWdHdVMzS0E0Tk5MNGgydE4yTjRF?=
 =?utf-8?B?YVB0OTNadmpiR1k3V2NGTjhWZmlzLzB4N000ZG5PbVpHOWxtNytBYWF1Mkgx?=
 =?utf-8?B?OEoxRXBKam5uU0J5SWxscFFlSnNiVzVEdmZDTXpZTzRhWlVSQjl1ZVgvaE9o?=
 =?utf-8?Q?/P63mJD6pTmJ4Zit8JAECUs=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <9E1BB7190E39234B83419B1595267871@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5755
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509E7.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	e79edb80-aa97-4ae2-c2aa-08de658c1fbf
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|82310400026|376014|1800799024|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cTlWUGdYZlZtQzloU3ZNRXJweVpNdytEUDViTU1WY01hVWZ3aThoaDRaTDA3?=
 =?utf-8?B?V21KbUplWXY5eStCS1E2bTVyRnFlR2FFRi8xbTVkc0M2M1pPbEgyeVJ3Y0xF?=
 =?utf-8?B?MEVIaWErYUk3M1lkTUhtUXZ5dUtLQnBNdWZPT2gySWhXNWMyQlZ0ZnU2MHVT?=
 =?utf-8?B?OFl2OUxqcUlUK0hPUmFmMDZMRkJ2M0RldjFRL3ZvZEowQ0V6UWdXdGlsRkl5?=
 =?utf-8?B?UDJ5MG1KSUNUSnQySzhlWG9kSnJUZ0daejJCSDVkbFRFSDhtR0NYS1U5ai9O?=
 =?utf-8?B?T0g1WWV4Y1d0RVlxaG1tcEtKNkxjT2pNVEFMMEdHc3c1d2FQTjF6S3BUWWdD?=
 =?utf-8?B?YmU0dEZGUmVZbWFKd2lWOUNvUnJzUnIvdkhrK0YxTXNRZHpmOVpCcnpKTUdV?=
 =?utf-8?B?N0ZnZFZPUmhBdXMrdG5Hd0lvekkrUkR4NGEvVGFQYVRHclhxT3U2TFYrQmpm?=
 =?utf-8?B?VEIyUnZVa290d2hNMHBaSHNRdzZrTGxSYU5vazA0blZKaWx4UUlZcGZpTHhR?=
 =?utf-8?B?MlhFWEtnenVtb2Q4a3R2NVZvYzljY3pSZXBwYTA4YmFsZHlTVnBZNTQ5Rjlr?=
 =?utf-8?B?U0NsbWQ0TkdpanpZUitWMU9SSkdCUUk3UnoweHB0Tm15OTUxdHVTcWpkVVVr?=
 =?utf-8?B?WHBDZDM1VE0yQjlEK3JUYlNENFVtZURndUNpSmRNODdJbnFCTlBvcnVlWTho?=
 =?utf-8?B?dHRRa1Jobzl5RFhCSStLM2ZmWFZiWHdqSkpQWnJta25qWE1XeFA3VHdQWndS?=
 =?utf-8?B?RVhVVnNuTitsbTVaZkpWQkdjcWJXekx6ang2WnhFbi84ZFFUVjdRNDJUYzJT?=
 =?utf-8?B?RXAySEhMME52SUhHa3kzZS9ZZXU2YVhWcW9USXdZVXErU1phRnR3UnozMTNZ?=
 =?utf-8?B?Q01wYmtwSkl4c0Nna3pET3ZIVDZlRkRLY0NVSms0aGk2ZXZMUVdZekFYdDJI?=
 =?utf-8?B?UVNqMGd6elpBQzF5YjRzbGpka0tCRGtHcWs2UDlPT2xDWmJzTThFQW9wcklv?=
 =?utf-8?B?SUQxc2FWazU0S2dLNGR3WFRhTU5rODFhUHliOWdjTVZWLzZFYTNrdWNKalgw?=
 =?utf-8?B?MXQ1a3ZhMUlrRWMwVXcyZm1ka2x3QThuWFBKSmNLVnlwNmdRd0sxdkpRUHVE?=
 =?utf-8?B?cXEvVE5rOEFZL0V2c3dPRXRCWmxqSUdTbzBqUHdRNTRMRUFYL3ZlS0FOSXFI?=
 =?utf-8?B?bnBmQXFkSXExUTBsZHo0L3AyUm1qbmRydWhLVlhBaktxK1JnVkx0Tk4rOFYx?=
 =?utf-8?B?MFpvRlhZNFdUbzdGZVc0cVhjb0w4cFVSMmxsVk0veUhSdjJ5Nk9sdWc4Vjh6?=
 =?utf-8?B?OGxvb3g4YzRDcDkycnVzb2xUWFoyblJTQlhpTmdiR0lUVDYzekUrSEdtdDdu?=
 =?utf-8?B?alY2UmlDczBSS09tL3pkUWx6aWViOE1lcFN1citSSzdLNWI4MjhJaGFieVhm?=
 =?utf-8?B?VUNRcnVERC9XVy9nMzgzTTNKNFdJVHFqTWhyM1FKZW9tV213WndFOWdjRnRk?=
 =?utf-8?B?RHVvQ1RrRjFwWi9BT29PanM2TDJOd0k2VzJDYmVrei9xRzhDTGdpeXJBNDh2?=
 =?utf-8?B?Y0JXRStEMGR1UnFWdEhOakpSNkZtaDhWV1N1eGMxcnF4Z0w0TmJmOUc5bzlo?=
 =?utf-8?B?MFh3Y05SN0tFZVVEQm5TZlBVOTV6dkNzWXlKczUxVW10bFVicE9iYjRBWFhr?=
 =?utf-8?B?TlU1b1F3cVU3Ny9JVy95cnZ6b2lDTTROWGVXMmJWYzBHN1hTVTkySGxnelhu?=
 =?utf-8?B?U1pQOXpRVXp5ekkyUUZaNVFOUDlIWkNWQ215bnVsKzQwNVlrenQwRHdIRzJM?=
 =?utf-8?B?TldUUjMxODBjQ1cxUE9oR0c0WlUrcGlJMlNBMldGTDJWaXY2ZW9MT2xCekpP?=
 =?utf-8?B?ME1rMHJKTzlMakdqWVo0RFNpNkMxR09NVmxQdHIyRlgyK2JpZ3BhS3ZSMEtW?=
 =?utf-8?B?eFlzT2F0dnZZTjBYbUZRcVNQcnhVMjAxc1JBSDU0UStoUFZCelBQbWwya2pM?=
 =?utf-8?B?MTBjUDMzaE9UV0JmNlBmdUpYR1Jkb21DVGpHSTNmdHNJSm1uMGhxNHRidWtN?=
 =?utf-8?B?dHpXZUpPTGZjY2I3akZadkt1QjB4Y01iWTJLaDFNK1lhVHJyYWVFZzFLZFVP?=
 =?utf-8?B?UTlaU1g2a0J2TU8ycDM5Yy9hRXc0eEQxSDY2bnZHOCtkMkhlTnE3QnYzcHln?=
 =?utf-8?B?c2lPQ01kbjNFaGhFTkRvR1ZpODhiOTRYY1RzcXZFazJtOTR6WEhvN3k3azVR?=
 =?utf-8?B?WUQyZngyZGRsTlZlaVN2eHZDTTJ3PT0=?=
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)(82310400026)(376014)(1800799024)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	cH1w2DNzjeEm1KMuVJg7BPwjWqrlPjQJ9GJklEbkgLmN+fPwkKM7vK/zcakbCKvdKkp28aoK/RCOcbvTq0W8FQM/BRGBXtot8mkPJsQvx+t8tM2bklHKNto+cJ1r/j9kVdD2hfFIALZ4+MkTHy8nwBMKtUiJ7mX4A6+Bvn//QBHLCk1XnIv6vRgebFuCcdjjEo0b3fMLEoyvbTcVFdobbYM//ID4rrAdOMJXZ51nQcoZ/Y7Aw5JjvkQxBEL2sx4JZYoR4G3CKlrO9RQDPQSV7WxIDKADradeanZSqCIHSTQlnZWzuT/FsxWdrdlcVdCMjEJaaIW0v7OAZXEn2v4KaG4D9OZjGj5FVlLYr1AEwS77YjJSD2q2zbsBjXKwX3YDS3PdFomgTBo7Sc95PTFvmd8SCAwWC3Af6+ASWDr9DSB4EZWoSqZUoNplwobLcgCQ
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 14:30:25.9831
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c7d9568-56a5-4c84-0ddd-08de658c4506
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:
	DB1PEPF000509E7.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11367

SGkgUm9nZXIsDQoNCj4gT24gNiBGZWIgMjAyNiwgYXQgMTU6MTYsIFJvZ2VyIFBhdSBNb25uw6kg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIEZyaSwgRmViIDA2LCAyMDI2
IGF0IDAxOjM0OjIzUE0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiANCj4+IA0K
Pj4+IE9uIDYgRmViIDIwMjYsIGF0IDE0OjI5LCBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVA
Y2l0cml4LmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gT24gRnJpLCBGZWIgMDYsIDIwMjYgYXQgMTE6
Mzg6MDJBTSArMDEwMCwgSmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4+IE9uIDA2LjAyLjIwMjYgMDk6
MTcsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+Pj4+PiBYZW4gZG9lcyBub3QgcHJvdmlkZSBh
IERhcndpbiBidWlsZCBjb25maWd1cmF0aW9uIGZvciBzZWxlY3RpbmcNCj4+Pj4+IEdOVSB0b29s
IGRlZmluaXRpb25zLiBPbiBtYWNPUywgdGhlIHRvb2xzIHdlIHVzZSBhcmUgZWl0aGVyIEdOVQ0K
Pj4+Pj4gY29tcGF0aWJsZSBvciB3ZSBvbmx5IHJlbHkgb24gZmVhdHVyZXMgc3VwcG9ydGVkIGJ5
IE1hYyBPUywgc28NCj4+Pj4+IHVzaW5nIHRoZSBHTlUgdG9vbCBkZWZpbml0aW9ucyBpcyBhcHBy
b3ByaWF0ZS4NCj4+Pj4+IA0KPj4+Pj4gQWRkIGNvbmZpZy9EYXJ3aW4ubWsgdG8gaW5jbHVkZSBT
dGRHTlUubWsgYW5kIGZvcmNlDQo+Pj4+PiBYRU5fQ09NUElMRV9BUkNIPURhcndpbiwgZW5zdXJp
bmcgRGFyd2luIGJ1aWxkcyBhbHdheXMgZm9sbG93DQo+Pj4+PiB0aGUgY3Jvc3MtY29tcGlsZSBw
YXRoIGFzIHdlIGRlcGVuZCBvbiB0aGUgTGludXggQUJJIHNvIGNvbXBpbGluZw0KPj4+Pj4gb24g
TWFjIE9TIGlzIGFsd2F5cyBhIGNyb3NzIGNvbXBpbGF0aW9uIGNhc2UuDQo+Pj4+PiANCj4+Pj4+
IEFuIGV4YW1wbGUgb2YgaG93IHRvIGJ1aWxkIHRoZSBoeXBlcnZpc29yIGZvciBhcm02NCBvbiBN
YWMgT1MNCj4+Pj4+ICh0b29scyBjYW5ub3QgYmUgYnVpbGQgZm9yIG5vdykgdXNpbmcgYSBjb21w
aWxlciBmcm9tIGJyZXc6DQo+Pj4+PiAtIGJyZXcgaW5zdGFsbCBhYXJjaDY0LWVsZi1nY2MNCj4+
Pj4+IC0gY2QgeGVuDQo+Pj4+PiAtIG1ha2UgWEVOX1RBUkdFVF9BUkNIPWFybTY0IENST1NTX0NP
TVBJTEU9YWFyY2g2NC1lbGYtIEhPU1RDQz1nY2MNCj4gDQo+IEkndmUganVzdCBub3RpY2VkOiBp
dCdzIGEgYml0IG1pc2xlYWRpbmcgdG8gdXNlIEhPU1RDQz1nY2MgaGVyZSwgYXMNCj4gKHVuZGVy
IGEgbm9ybWFsIE9TWCBzeXN0ZW0pIGdjYyBpcyBhIHBsYWluIHdyYXBwZWQgYXJvdW5kIGNsYW5n
Og0KPiANCj4gJSBnY2MgLXYNCj4gQXBwbGUgY2xhbmcgdmVyc2lvbiAxNy4wLjAgKGNsYW5nLTE3
MDAuNi4zLjIpDQo+IFRhcmdldDogYXJtNjQtYXBwbGUtZGFyd2luMjQuNi4wDQo+IFRocmVhZCBt
b2RlbDogcG9zaXgNCj4gDQo+IFlvdSBtaWdodCBhcyB3ZWxsIHVzZSBIT1NUQ0M9Y2xhbmcgYW5k
IG1ha2UgaXQgZXhwbGljaXQgdGhlIGhvc3QNCj4gY29tcGlsZXIgaXMgY2xhbmcgYW5kIG5vdCBn
Y2MuDQoNCnRydWUNCg0KPiANCj4+Pj4+IA0KPj4+Pj4gU2lnbmVkLW9mZi1ieTogQmVydHJhbmQg
TWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPj4+Pj4gLS0tDQo+Pj4+PiBDaGFu
Z2VzIHNpbmNlIHYyOg0KPj4+Pj4gLSBTdWJqZWN0IHdhcyAieGVuOiBBZGQgbWFjT1MgaHlwZXJ2
aXNvciBidWlsZCBjb25maWd1cmF0aW9uIg0KPj4+Pj4gLSBVcGRhdGUgRGFyd2luLm1rIGNvbW1l
bnRzIHRvIG1vcmUgYWNjdXJhdGUgdmVyc2lvbnMgKEphbikNCj4+Pj4+IC0gUmVtb3ZlIHRoZSBi
dWlsZC1vbi1tYWNvcyBoZWxwIGFzIHdlIGhhdmUgbm8gZGVwZW5kZW5jeSBvbiBhbnl0aGluZw0K
Pj4+Pj4gY29taW5nIGZyb20gYnJldyBhbnltb3JlIGFuZCB0aGUgdG9vbGNoYWluIGNhbiBiZSBy
ZXRyaWV2ZWQgYnkgbG90cyBvZg0KPj4+Pj4gb3RoZXIgc29sdXRpb25zIHRoYW4gYnJldyBvbiBt
YWMgb3MuIFN3aXRjaCB0byBhIHNpbXBsZSBkb2MgaW4gdGhlDQo+Pj4+PiBjb21taXQgbWVzc2Fn
ZSBpbnN0ZWFkDQo+Pj4+IA0KPj4+PiBEaWQgeW91IHNlZSBSb2dlcidzIG5vdGljZSBvbiBNYXRy
aXggYWJvdXQgb2JqY29weT8NCj4+PiANCj4+PiBJIHRoaW5rIEJlcnRyYW5kIGNvbnNpZGVycyBv
Ympjb3B5IHRvIGJlIHBhcnQgb2YgdGhlIHRvb2xjaGFpbiwgaGVuY2UNCj4+PiAicmV0cmlldmlu
ZyBhIHRvb2xjaGFpbiIgaXMgbWVhbnQgdG8gaW5jbHVkZSBvYmpjb3B5IChlaXRoZXIgdGhlIEdO
VSwNCj4+PiBMTFZNIG9yIGVsZnRvb2xjaGFpbiBvbmUpDQo+PiANCj4+IFNvcnJ5IGkgb25seSBz
YXcgeW91ciBtZXNzYWdlIGluIG1hdHJpeC4NCj4+IA0KPj4gSSBjaGVja2VkIGFuZCBpIGluc3Rh
bGxlZCBib3RoIGdjYyBhbmQgYmludXRpbHMgaW4gaG9tZWJyZXcuDQo+PiANCj4+IFNvIGkgdGhp
bmsgdGhlIGNvbW1pdCBtZXNzYWdlIG5lZWRzIG1vZGlmeWluZyB0byBzdGF5Og0KPj4gDQo+PiBi
cmV3IGluc3RhbGwgYWFyY2g2NC1lbGYtZ2NjIGFhcmNoNjQtZWxmLWJpbnV0aWxzDQo+PiANCj4+
IHRvIGJlIGZ1bGx5IGNvbXBsZXRlLg0KPiANCj4gWWVzLCBJIGRpZG4ndCBub3RpY2UgdGhhdCBp
biB0aGUgY29tbWl0IG1lc3NhZ2UgeW91IGV4cGxpY2l0bHkNCj4gbWVudGlvbmVkIHRoZSBicmV3
IGluc3RhbGwgZGVwZW5kZW5jaWVzLiAgVGhlcmUncyBhbHNvIGJpc29uIGFuZCBmbGV4DQo+IG5l
ZWRlZCBmb3IgS2NvbmZpZywgYnV0IEFGQUlDVCB0aG9zZSBhcmUgcGFydCBvZiBjb21tYW5kIGxp
bmUgdG9vbHMuDQo+IEkgdGhpbmsgcHl0aG9uIGlzIGFsc28gcGFydCBvZiB0aGUgY29tbWFuZCBs
aW5lIHRvb2xzLCBhbmQgbm90IHN1cmUNCj4gaXQncyByZXF1aXJlZCBmb3IgYXJtNjQsIGFzIGl0
J3MgcmVxdWlyZWQgZm9yIHg4NiB0byBnZW5lcmF0ZSB0aGUNCj4gY3B1aWQgaGVhZGVycyAoYnV0
IEkgZG9uJ3Qga25vdyBpZiBhcm02NCBoYXMgYW55dGhpbmcgZXF1aXZhbGVudCkuDQoNCnB5dGhv
biBpcyBub3QgYXZhaWxhYmxlIG9uIG15IHNpZGUgKHB5dGhvbjMgaXMpLg0KSSBkbyBub3QgdGhp
bmsgdGhpcyBpcyBuZWVkZWQgb24gYXJtIG5vLg0KDQo+IA0KPj4+IA0KPj4+Pj4gLS0tIC9kZXYv
bnVsbA0KPj4+Pj4gKysrIGIvY29uZmlnL0Rhcndpbi5taw0KPj4+Pj4gQEAgLTAsMCArMSw3IEBA
DQo+Pj4+PiArIyBVc2UgR05VIHRvb2wgZGVmaW5pdGlvbnMgYXMgdGhlIHRvb2xzIHdlIGFyZSB1
c2luZyBhcmUgZWl0aGVyIEdOVSBjb21wYXRpYmxlDQo+Pj4+PiArIyBvciB3ZSBvbmx5IHVzZSBm
ZWF0dXJlcyB3aGljaCBhcmUgc3VwcG9ydGVkIG9uIE1hYyBPUy4NCj4+Pj4+ICtpbmNsdWRlICQo
WEVOX1JPT1QpL2NvbmZpZy9TdGRHTlUubWsNCj4+Pj4+ICsNCj4+Pj4+ICsjIFhlbiB1c2VzIExp
bnV4J2VzIEFCSSBzbyB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIG9uIE1hYyBPUy4NCj4+Pj4+ICsj
IEZvcmNlIENPTVBJTEVfQVJDSCB0byBhIGZha2UgdmFsdWUgdG8gbWFrZSBzdXJlIGl0IGlzIGFs
d2F5cyB0aGUgY2FzZS4NCj4+Pj4+ICtYRU5fQ09NUElMRV9BUkNIID0gRGFyd2luDQo+Pj4+IA0K
Pj4+PiBJIGZpcnN0IHdvbmRlcmVkIHdoeSB5b3Ugc2F5ICJmYWtlIiwgc2VlaW5nIHRoZSBmaWxl
IGlzIG5hbWVkIERhcndpbi5tay4gQnV0DQo+Pj4+IGluIENvbmZpZy5taydzIGNyb3NzLWNvbXBp
bGUgY2hlY2sgdGhlIGJ1aWxkIGhvc3QgT1MgZG9lc24ndCBldmVuIG1hdHRlci4gU28NCj4+Pj4g
eWVzLCBpdCBuZWVkcyBmYWtpbmcgaGVyZSBmb3IgdGhlIHRpbWUgYmVpbmcuDQo+Pj4gDQo+Pj4g
SG0sIHNldHRpbmcgaXQgdG8gIkRhcndpbiIgc2VlbXMgd2VpcmQgdG8gbWUuICBJIHVuZGVyc3Rh
bmQgdGhlDQo+Pj4gcHVycG9zZSBvZiB0aGlzIGlzIHRvIGZvcmNlIHRoZSB1c2VyIHRvIHNldCBY
RU5fVEFSR0VUX0FSQ0gNCj4+PiBleHBsaWNpdGx5LiAgSSBob3dldmVyIHdvdWxkbid0IHNlZSBp
dCBhcyBmdWxseSB1bmNvcnJlY3QgdG8gbm90IHNldA0KPj4+IHRoaXMuICBJdCB3aWxsIHRoZW4g
ZXhlY3V0ZSBgdW5hbWUgLW1gIGFuZCBnZXQgYGFybTY0YCBiYWNrIGZvciBBcHBsZQ0KPj4+IHNp
bGljb24gbWFjcyAod2hpY2ggaXMga2luZCBvZiBPSz8pLiAgT3RoZXIgSSBzdWdnZXN0IHdlIHVz
ZSBhIG5vbi1PU1gNCj4+PiBzcGVjaWZpYyB2YWx1ZSBoZXJlLCBzbyB0aGF0IGlmIHJlcXVpcmVk
IHdlIGNvdWxkIGRpc3Rpbmd1aXNoIHRoaXMNCj4+PiBjYXNlIHdoZXJlIHRoZSB1c2VyIGlzIGV4
cGVjdGVkIHRvIHByb3ZpZGUgWEVOX0NPTVBJTEVfQVJDSC4NCj4+PiANCj4+PiBNYXliZSBYRU5f
Q09NUElMRV9BUkNIID0geyB1bmtub3duIHwgdW5kZWZpbmVkIH0/DQo+PiANCj4+IEkgYW0gb2sg
dG8gY2hhbmdlIHRoaXMgd2l0aCBlaXRoZXIgYnV0IG1heWJlIHVuc3VwcG9ydGVkIGNvdWxkIGJl
DQo+PiBhIHRoaXJkIGNob2ljZT8NCj4gDQo+IE5vIHN0cm9uZyBvcGluaW9uIGZvciBlaXRoZXIg
bmFtaW5nLCBhcyBsb25nIGFzIHdlIGRvbid0IGV4cGxpY2l0bHkNCj4gdXNlICJEYXJ3aW4iLg0K
DQpvayBsZXQncyB1c2UgInVuc3VwcG9ydGVkIg0KDQpJIHdpbGwgcHVzaCBhIHY0IHdpdGggdGhl
IGNvbW1pdCBtZXNzYWdlIGFuZCBEYXJ3aW4ubWsgZml4ZXMNCg0KQ2hlZXJzDQpCZXJ0cmFuZA0K
DQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 15:00:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 15:00:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223315.1530864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voNJm-0000sQ-39; Fri, 06 Feb 2026 15:00:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223315.1530864; Fri, 06 Feb 2026 15:00: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 1voNJm-0000sJ-0I; Fri, 06 Feb 2026 15:00:22 +0000
Received: by outflank-mailman (input) for mailman id 1223315;
 Fri, 06 Feb 2026 15:00: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=8hvW=AK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1voNJl-0000i8-Je
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 15:00:21 +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 8de9ce6d-036c-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 16:00:19 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-4359108fd24so1475294f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 07:00:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4362974b230sm6854108f8f.36.2026.02.06.07.00.16
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 06 Feb 2026 07:00:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8de9ce6d-036c-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770390019; x=1770994819; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RP2INcmEyQltmh8qokURhnVGF/ErH15/ysKuOOI5YeU=;
        b=NPzcvf7KVUOZMJarDN4r1mdU0KGFiqiFBNt2tTwjegvyn946YSB9FkobkdPlSJecOU
         tkdr+5FfFwUSXx5xdyrZFwp2Fj3W90NlwwW0E4yPxVnHIqBKtn9YH1OLruwPMrOGuTDl
         dFPMD7N2jVaMLtnt6j3QCw+kluURigwrSjQjE56hGmlCWgWu+r+ZKG8owjkGcAR16hhi
         tu4Zkp/qHWFna2iaGZ2TTug7CJ8QJbIzCwyoArMRo7zVMaHOJErZtSupkAilL9gIwyxM
         n8NOSvG2eDB0MaG/wVoSvmh3dAPIs9LulsHbu2SvW4CFXcUZAKs2hHnRYe57pYWnkZfF
         tc9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770390019; x=1770994819;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RP2INcmEyQltmh8qokURhnVGF/ErH15/ysKuOOI5YeU=;
        b=azqboE+wx81kUkmcobegfJGSmjC/C2SZamiarRLw04GnX/DP/D/gtUEUmo1yZ4NnM5
         hR49ItSR38tF4VGpUSjhNlqXoCw9UU2kA5KJ0kQkNN+UYCydgl47spJNUVkAGKykEGyQ
         4H2bWPnY3g5KLXIQrSI12zGyq4n1XDg7hDrTlhHKCYQVV5rhF7HveX/EzqOMbx77Vtaf
         uru2sSuFXGUPCL46He+JnNXgY0U2o5/Hu5bUMO1Whi4i7mV9YGyrQq4jsXSUPg711HQQ
         SvzVxzJ/aXLvEEAPs2rP3+vFU+HBt/mgYnLjb+Fg1q1uFUJ19Dqog9N37/VabVCXJR+f
         jJew==
X-Forwarded-Encrypted: i=1; AJvYcCVNoZo12cM0BSvhkq904Hh/xCZQRNO+4CPqiQbXAIdRDI24wHkuU0eNGqE9S+2rG96dPGLI0ITN7c8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtNr4Fq7IAVP7HB+ozfeo8SgxjxxHUGGb5j3D7W5QG0AThL/c1
	HUMQUrZAZt29ybf0YldU8/eA8AN1a/Iqoj+V3pPyCCoqZUCaUCx6GdqJcMwkfuoHtw==
X-Gm-Gg: AZuq6aLkQwn8mcgjGVyZAkPU0cZOQZ0FM75KlyhUweAvd3XRbxqvJEttj39yrZO+Vyj
	yWHqF/nLxEd5QGNEtnFCc4sH3A24abqKMKZqGALHnXhEnGI4uVSe+CKxbgTshDECYWBZOJSvAZR
	jTvUAHJfXdUG+n5z8GPkOo59ureLryGQIN6Fzad/jC+yhHKDqveWdW0z8mGZsjt3bJ9WMJvhXIX
	FQQO36N+68D8mDh4OE40M9y4kTVoxy6rSUl/GY6nEEhZIXHztK1MHas9JFv+7dyuZ+MqI8ASmi2
	uoYq7mUcym3WndLRuRxTyJGK8RP8SinB65iU0W2mqcdihXaNXtwHTCxTz8uDH1ycx1+FM1ZXwrl
	HPnfsXuNxN5sr+XAA50EA06rMt7IjNb6/P5c5V/Hk6/FlabX5Rz8fWw38+NYR9HiDC9e+K8yXgm
	dnTtrxf+CWwwgb+skkkyJDZKOp0DHpTFT+uAMJfqDqtySAakIJyDP5nRg8/EhxFFWT3IEL1jIYl
	D0=
X-Received: by 2002:a05:6000:3104:b0:435:e3bd:5838 with SMTP id ffacd0b85a97d-43629659095mr4380062f8f.25.1770390017717;
        Fri, 06 Feb 2026 07:00:17 -0800 (PST)
Message-ID: <3c6fc5d9-dbb4-44f6-97fb-85095429c7d1@suse.com>
Date: Fri, 6 Feb 2026 16:00:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
To: Bertrand Marquis <Bertrand.Marquis@arm.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" <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
 <4bdcd7e0-ff9d-4bbd-8337-aa80d7d66ce9@suse.com> <aYXsvu3HlPuCUuY8@Mac.lan>
 <16ECC44C-5C56-47CF-8AB6-DED34990C5B1@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <16ECC44C-5C56-47CF-8AB6-DED34990C5B1@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.02.2026 14:34, Bertrand Marquis wrote:
>> On 6 Feb 2026, at 14:29, Roger Pau Monné <roger.pau@citrix.com> wrote:
>> On Fri, Feb 06, 2026 at 11:38:02AM +0100, Jan Beulich wrote:
>>> On 06.02.2026 09:17, Bertrand Marquis wrote:
>>>> --- /dev/null
>>>> +++ b/config/Darwin.mk
>>>> @@ -0,0 +1,7 @@
>>>> +# Use GNU tool definitions as the tools we are using are either GNU compatible
>>>> +# or we only use features which are supported on Mac OS.
>>>> +include $(XEN_ROOT)/config/StdGNU.mk
>>>> +
>>>> +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
>>>> +# Force COMPILE_ARCH to a fake value to make sure it is always the case.
>>>> +XEN_COMPILE_ARCH = Darwin
>>>
>>> I first wondered why you say "fake", seeing the file is named Darwin.mk. But
>>> in Config.mk's cross-compile check the build host OS doesn't even matter. So
>>> yes, it needs faking here for the time being.
>>
>> Hm, setting it to "Darwin" seems weird to me.  I understand the
>> purpose of this is to force the user to set XEN_TARGET_ARCH
>> explicitly.  I however wouldn't see it as fully uncorrect to not set
>> this.  It will then execute `uname -m` and get `arm64` back for Apple
>> silicon macs (which is kind of OK?).  Other I suggest we use a non-OSX
>> specific value here, so that if required we could distinguish this
>> case where the user is expected to provide XEN_COMPILE_ARCH.
>>
>> Maybe XEN_COMPILE_ARCH = { unknown | undefined }?
> 
> I am ok to change this with either but maybe unsupported could be
> a third choice?

If I ran into "unsupported" there, I'd wonder if I even should trust any of
this and try it out. I'd prefer either of Roger's suggestions, in the order
given.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 15:02:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 15:02:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223322.1530874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voNLZ-0001NX-E1; Fri, 06 Feb 2026 15:02:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223322.1530874; Fri, 06 Feb 2026 15: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 1voNLZ-0001NQ-B1; Fri, 06 Feb 2026 15:02:13 +0000
Received: by outflank-mailman (input) for mailman id 1223322;
 Fri, 06 Feb 2026 15:02: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=8hvW=AK=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1voNLY-0001NK-P3
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 15:02:12 +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 cfd9470e-036c-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 16:02:10 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-480142406b3so18060795e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 07:02:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48320978108sm28935295e9.7.2026.02.06.07.02.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 06 Feb 2026 07:02:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cfd9470e-036c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770390130; x=1770994930; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=J2vEvvZsMtMoC9IZOQ21H59oFhwHjgyBrGXIbGtUX1c=;
        b=d5OwRzvuE9DdB5efs9wiajBzs+ZEFvhBs3H3genclXwK78IyeOBwV1hV0R73AqfzPf
         w2VVVG6KT2/lHUYHMU3M+n8WjEMEf/z2Sx1xvgDsuDQt9spZETZNj7VykLxueZHp6H0O
         iXjtMhpt877n7zRb0tbeTdGNsNELmDWQKosJX4bS7zA4Un7K4TGeA9oAIVHDE/Sgu+ZN
         oZGn9eTOMwwjPtE3PSWtQHTM6LwTJmQGpP3IJrecKa3h6PmFk1YwBFhKGcX33O7LCdmj
         FP9CvwBOArcxlWlMT3Vb4VPh/8pewI/woYzyY6rWcPM68IGDJk6hPNn5EqLVV77aSqod
         Fu8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770390130; x=1770994930;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J2vEvvZsMtMoC9IZOQ21H59oFhwHjgyBrGXIbGtUX1c=;
        b=L0BB7J6eYz0Yt0j1pb399b6pa8OiD4aeV/iNlk8Rh9fNSwbHjvJyql7wLB0SMJPDYA
         xMUSBHnZg/p/z8B1kz3Yfn32d779oIuPfWiOIdxZQTCWAcTT0ntfLME3b5FSF+NUCrLK
         q6TIhmUv7GhN87oujkCN9D2HzpQQCk5XWJApGXatKFUxBTKqz5Lop6dOnlQf8JbJaiKU
         +9zt6pCG0b92CS4Mvpxb4D6M/55Otp3OgiRmxxcLoQ7r5WouzqP59NbQzcw8pAm71z9w
         Aip1AJhJdpnA5i5ixV1iKbAZeIiF1CmFh6GcaUj89Of1aXrs4twC/v+SRrxqn2N+phEl
         T0Jw==
X-Forwarded-Encrypted: i=1; AJvYcCUqYMXuL9Ct0MhTDPN+kK8fQXCepqAUtulnnCv2Xfhl/Xc9YZ9eqU0N2MprnJZDDmRRGSMPwU+EvF8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySZJxJ9nirZZqe4XIKjnadueeRDZgDGIpKAq55k29tH+GurIWH
	hQ7l/I3suVC6/9xr6qjxPiqxoFu8H2yWXWHqkQTiSAt7h7mghbxKaV3lNyXM+TJ4RQ==
X-Gm-Gg: AZuq6aKeN910VEJ2xm8eOpXoQYGfcAji/gwTTehUpVAlsBNI9/dbcTdGz3jvrITsy2y
	yslNnS4meD8lV4vjVlJjNE8xO5qCKJ1e6e5dNUaFWOOWweE6qsGF03eAKDQ7tA6/wNHRbPXZ09l
	FdmE/lslfU0GEhxZHF4EcVeh0o8H1ZrjL9i1DBm0mK0xce2kBDrjrb0cokr6KdcEBJpBmc0u47l
	RkIWn38Bu+XOe3iIhceebw7Q/3Tk+WpIJDVwLHBesE5GOpOcmfMWEz7AIWF/kvfCbb79w3+ZoE+
	yeTzIvIleR2swQcinxxAMfl+H0RErJ0sBKizRqljlJPVV5c0qs8Lu6j0yYCP2/7P6i6qRG1D8WT
	IDD0Zh3/E5x0u8RZTZFJMopj8D8WYffG3nEsPdwthD/z8Jivs5EUrfvpsMro6c8A8RBh/5+imkG
	41GmIs154c1hHPxCfZbAZFRTgHwV4YIj9lpC5l2Zr9f9qG32HGaVJ5rYaME9rpZILgAgiZmiDlv
	oo=
X-Received: by 2002:a05:600c:8b57:b0:479:35e7:a0e3 with SMTP id 5b1f17b1804b1-4832021d9b3mr46394515e9.30.1770390129614;
        Fri, 06 Feb 2026 07:02:09 -0800 (PST)
Message-ID: <436bb64f-39d9-4b01-9f50-7a734f3e6764@suse.com>
Date: Fri, 6 Feb 2026 16:02:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: move vCPU exec state barriers
To: Oleksii Kurochko <oleksii.kurochko@gmail.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>, Juergen Gross <jgross@suse.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
 <1beb7c04-5c21-4ba2-a74e-467f659224e5@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: <1beb7c04-5c21-4ba2-a74e-467f659224e5@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.02.2026 13:57, Oleksii Kurochko wrote:
> 
> On 2/5/26 12:33 PM, Jan Beulich wrote:
>> The barrier in vcpu_context_saved() is specifically about the clearing of
>> ->is_running. It isn't needed when we don't clear the flag.
>>
>> Furthermore, one side of the barrier being in common code, the other would
>> better be, too. This way, all architectures are covered (beyond any
>> specific needs they may have).
> 
> Don't we want then move ...
> 
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/arch/arm/domain.c
>> +++ b/xen/arch/arm/domain.c
>> @@ -333,17 +333,7 @@ void sync_local_execstate(void)
>>   
>>   void sync_vcpu_execstate(struct vcpu *v)
>>   {
>> -    /*
>> -     * We don't support lazy switching.
>> -     *
>> -     * However the context may have been saved from a remote pCPU so we
>> -     * need a barrier to ensure it is observed before continuing.
>> -     *
>> -     * Per vcpu_context_saved(), the context can be observed when
>> -     * v->is_running is false (the caller should check it before calling
>> -     * this function).
>> -     */
>> -    smp_rmb();
>> +    /* Nothing to do -- no lazy switching */
>>   }
> 
> ... to common code with ability to re-define sync_vcpu_execstate() by arch
> as only x86 does something inside this function?

Indeed this was considered already, as a possible next step.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 15:03:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 15:03:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223327.1530885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voNMc-0001s7-Nk; Fri, 06 Feb 2026 15:03:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223327.1530885; Fri, 06 Feb 2026 15: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 1voNMc-0001s0-L1; Fri, 06 Feb 2026 15:03:18 +0000
Received: by outflank-mailman (input) for mailman id 1223327;
 Fri, 06 Feb 2026 15: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=qUCI=AK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1voNMb-0001rp-5O
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 15:03: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 f2a403fc-036c-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 16:03:09 +0100 (CET)
Received: from DUZPR01CA0066.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:3c2::14) by PAXPR08MB6479.eurprd08.prod.outlook.com
 (2603:10a6:102:157::14) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 15:03:05 +0000
Received: from DU6PEPF00009526.eurprd02.prod.outlook.com
 (2603:10a6:10:3c2:cafe::9f) by DUZPR01CA0066.outlook.office365.com
 (2603:10a6:10:3c2::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 15:03:00 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF00009526.mail.protection.outlook.com (10.167.8.7) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10 via
 Frontend Transport; Fri, 6 Feb 2026 15:03:05 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS2PR08MB8262.eurprd08.prod.outlook.com (2603:10a6:20b:551::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 15:02:02 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 15:02: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: f2a403fc-036c-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=B1xPGy8gWwBBSIsoo2WadZKCyPQUMIrroAWaEG8mjojkm6AqEjAiL+Ti2XZaCJm9HxbM/nJ/eQ2YqVdLDnoeAZMpjGxdHRRL1/oa42t+xfbexbqsx7QsEySc+E2cB4lA+qYb/Y1N+0fVbVukp5XWwrTM2Xx2JdcE04AGhdZso55tufSoxCtkYBLAmEJR/SAHfvN9gzfP2lulNraWgtt9gloea1oyaqCfpvzA/9RPy98zBliYJoJ4JHm41/KY2BDwpLkyLmsrvwW8Y4wS0C2vsSulARzL8CCm7QL6nMu6pGOPHcUJyvNqNErxC3DZnb83plCtBAnho8+JZjr5gM+IrA==
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=dnKYQMeDVtJmn4VMa68DYKnindDHzlMgDeE5Va9Lw5g=;
 b=HzhmYGlOxUe56N/0LZc9okJI50DJE7CYBggPeAImRV2k9V7pHkbBnPgUi//ngcPqjVA9fNTybyyhH5mi/yIqyrDP2kzhUz9KMKGbxZ1Lx6Q8tZavMir3IOacEoNirke+tEtFY0CVF2PXKf0hblkhXMqVmc4yI365NLlHYoG8yNYDPmMnS3kGJtbRY6dz+OM+U6fTPztbm6wqSHuXKA+mEOSZxqmQQaCf/cgrOVTJIhnit4JRGBvUarY9Ku41zKy+cSH5cgkLKRU540M5SHHL8sW8mdi3zZ1TL7RCLXuLhbDyNJpkDHzezq/0g+HIrUPELj1RgWRrt1cUd8Yz5+CJLw==
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=dnKYQMeDVtJmn4VMa68DYKnindDHzlMgDeE5Va9Lw5g=;
 b=l1hngG6TaS9uq3C58+NL05vvDBsSsgIrPRe5mdp2wW0mH4YWDBUcVG4ILWmjQRJEz6gDIGRFiRWFZCvNcJdBhHIrhEIDoLpF650dFPPv82S59sx/S2xdIGqe4Sz0h7NlTDhDsLC5DkXPP5gWh1v6PpKS1aupg+sVgs89r2zDPj0=
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=KOOmUXnbadggPfcjCAtagM46rwgMVH/ooAm4ur3aggDWxiJHjp1O6TLAD9Gh/BGjTOuzYJgnb2F6g+fzH1gGSgq88kLU15Z2KuLTG7aFHKP2zCgyrMat+Vp5RQsygyQPey4P+77iLAEjefRWYffPITPu4Q9JKmq7N2hpSMqKDRI1k5AEZwoaUd6YJFoz5bMzYbmEHktYlcFyuLIiLwWprrat9z86UFh98ERk5CjWu49PNNC7eoSCGCTAfkb3XjRpEb1wiBF/aZAdtT5GWB6kVZhXThmKkUqA2XT2qrR7f2iSFUKQfIXZO5zJIvRVjlgTeWj+jW2U21iFl6fU9ZZ0Zw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dnKYQMeDVtJmn4VMa68DYKnindDHzlMgDeE5Va9Lw5g=;
 b=KTzvYFvlxWjobdf6BrRKJDRj8ZQYd79ZRRNqCY06tsuKYYLXzeg2QYinLcwAsJAwBuUXwUkvX93xWm+fsUgTYATIpW2Cnekpwg+Y/A2UalSXuZR4xqfyeukz6OwNP9ZrJQEUqarnnAN492uhSOyH7VrCH7VVjQC2+w4fyTTSdR6UN7IRkXG/COkcFNT4H+FIKYISCNW8VTS2exn5fsrnxn55HPiAP3MlaXVeApv+30OejdQEWzue9I3B3naNjJv6Y755kzE8AynewftXPkLaKYkaXd3cQ+d/KV3LX1GGBDKIDKnSDHSiL0GFX5nUueKiBhYjXyykVQ249O2xsqvrSg==
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=dnKYQMeDVtJmn4VMa68DYKnindDHzlMgDeE5Va9Lw5g=;
 b=l1hngG6TaS9uq3C58+NL05vvDBsSsgIrPRe5mdp2wW0mH4YWDBUcVG4ILWmjQRJEz6gDIGRFiRWFZCvNcJdBhHIrhEIDoLpF650dFPPv82S59sx/S2xdIGqe4Sz0h7NlTDhDsLC5DkXPP5gWh1v6PpKS1aupg+sVgs89r2zDPj0=
From: Bertrand Marquis <Bertrand.Marquis@arm.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" <xen-devel@lists.xenproject.org>,
	=?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>
Subject: Re: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Thread-Topic: [PATCH v3] xen: Add Darwin.mk for GNU toolchains
Thread-Index: AQHcl0ETIV6m5wqgrECh60MWgPTuGLV1etQAgAAv7QCAAAFMgIAAGAqAgAAAdAA=
Date: Fri, 6 Feb 2026 15:02:02 +0000
Message-ID: <668E74DA-1441-45A4-90A9-D720CAB7B04A@arm.com>
References:
 <a3837d27d473763a667596841754398e7d67df46.1770365754.git.bertrand.marquis@arm.com>
 <4bdcd7e0-ff9d-4bbd-8337-aa80d7d66ce9@suse.com> <aYXsvu3HlPuCUuY8@Mac.lan>
 <16ECC44C-5C56-47CF-8AB6-DED34990C5B1@arm.com>
 <3c6fc5d9-dbb4-44f6-97fb-85095429c7d1@suse.com>
In-Reply-To: <3c6fc5d9-dbb4-44f6-97fb-85095429c7d1@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS2PR08MB8262:EE_|DU6PEPF00009526:EE_|PAXPR08MB6479:EE_
X-MS-Office365-Filtering-Correlation-Id: 8acfb9bd-f830-4581-6742-08de6590d4e6
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?RjdMOTczaUk5eG1Zb1F5MVhZWEZXdlVUN0dGVk9rK1d5ZTRRVzc2U0lEMTFK?=
 =?utf-8?B?bEx6emM2NE9FbEUwUnovc2VaYmxYTjVERStZL2NRVHV1Z1l2SGIyYlZFSHZY?=
 =?utf-8?B?enhlY21LbWNkUlZ1dnFINkM5cisvbExJbS9uYUVqc3czTU5xQjdVQThPdFFz?=
 =?utf-8?B?NFdhRXNlSVZaQkNwcTR6R01iSFRvQ0F1VVFIbjlWMTV2Z1hEa0cxSkpyS1Uw?=
 =?utf-8?B?K0Voc0dOZmJXdmI1NC9CS0dKaUFveTNaR3BRekVXVkdtNmp1eVZ3ajBWMlNz?=
 =?utf-8?B?RE1SZnpUQWk5NS9qSGJKdEU5TzVWc3JLT29BL0Q1ZnIrTXh4Nmk4SmNxRHRI?=
 =?utf-8?B?aWpBUHVScmJ5YlVCcnREdi9CaGlOcE1SVFROTjRPVlJRcDcyZnBMUW5lYkdv?=
 =?utf-8?B?WGJiNkF5SHh0cXlxRWN3aTdlbUh5Zm5Md2h2Z2xrcHk2UG43b0NtSG1jblBz?=
 =?utf-8?B?bmFqMHBZS1J0cXRaVUpPcUY1d2tHemFkSTVmcCtueWpueFZPSnVjZ2Y3L1JG?=
 =?utf-8?B?eXNnWjV4Y0NOcW1HaHZ4OTFlNGwwSWtnZHFSUXhyMHdVWk45NHdkOXZrd3U4?=
 =?utf-8?B?aFpnMkdEbmhQNURXM3ZEL01FVXljMkdMeHk0SVV0NzRXV1lTN0QrL2FoYkV1?=
 =?utf-8?B?YnJGK2FBWTl1MHBSUGZ2WFJIZmVxZDFzc0RUcTRTNVNrMkpHWStOUVBUVm0w?=
 =?utf-8?B?VExNaUh3ZkVQZVZuYkppdGE1MGFJL2pQYTl6Z3RZRzN2QVNDUXI5OUhPYnJ5?=
 =?utf-8?B?OUc4Qlk1QStmRThhc0lvK2NqaEFQbTBtYVdqSWZFdmxSZDM4alRPT2Zkb2do?=
 =?utf-8?B?S3BVdlNuOG43MkY1TkNxMDZGbHFrdjYxa3pwVVpZRlhBelpFS0M5WVM4OGsv?=
 =?utf-8?B?bmhWaWpCdkRHd0pVV0EwOVZDdmlNWGYyc1NQWEdpVkxJa0lQNW1wT1o5THdz?=
 =?utf-8?B?eWJqdGI1UXVPcXBBRndGakllRXYvcnVXbTN2enNUT2RXQUx5NHd5YVdXTnJ6?=
 =?utf-8?B?dXltNm8zR2VMMS9FdW42bTdURzNiZUFNdWNxMHQwaWNuYUFwNVdnUzZkNjFV?=
 =?utf-8?B?bkFBYnNSOUw0SnA2bnJMaTZ0NklOc1I0S0hjRy9sSExObVFJVlMzNzdiVzdB?=
 =?utf-8?B?KzFYaEtHaG1PZGw5eFVkZDNPRXFYL1dyN0pkRkRxeDcyTy9hbkF5YTFpdTVB?=
 =?utf-8?B?WWdXS2ZrNFJiQXNHZHN1Q2dzNVJobFVkdnA3cnNad1M1VlYrcWRQekV2Um55?=
 =?utf-8?B?bHJ3am1XNXVRZ3NtMHNialg0emkxd0JhbGRDLzVCRDJTd2VZcGJUbmJLWXJt?=
 =?utf-8?B?Q0J3Mzk3WXdjam9VWkNPUjhldVNtd2VnR3dOUExRSzc0MHg0ZG5lVlFIZmdu?=
 =?utf-8?B?R0M0c09ZNjgxbEcwVVBUWEFoOWY3bWlNbVUwZGZpNGZhOEFHbVBjSG1SZ21J?=
 =?utf-8?B?TTU0eVNjUFE5eE1GeEtJM1NhOUlPUTVKRFZHSkZndFFsZHNycFR2TkhkQUgx?=
 =?utf-8?B?OVJWbXNkVlhZdUFTdkZCZFFOOGduaFRrWktyWjY1dTZCbzVNUW9hMDAzSDFV?=
 =?utf-8?B?YXJwa3RSVUdKRXRnUlFQZEdhblhEazFPTzlzSFR4R2hHeStYaGpaOG5LNFg1?=
 =?utf-8?B?VWw5OFhkdjJsVzM1Tml1Q2JXUjhVUmcvZ0s4YUpOdnovcHduVVRMUkdHbklE?=
 =?utf-8?B?Zzg4Y245Y3htNkJteHl1MlUyd25pWFVZaWRvQTQxRnhXWUxWS1JnYkp2a2Nt?=
 =?utf-8?B?aFNRVkFmbm1hd1hVenc3enRabFZidXF0TEgyKzJQaERYVWVLVXE1QjNxdlF0?=
 =?utf-8?B?bDhPakNEcXhVandLMkttdUkxZ08wZFFZd0dkYkZIbTBWQXMzdHBOY0NMV0Jv?=
 =?utf-8?B?MWRPQ3p1VTlxOHhJY3JFb2gxcFlvSXA1YTY5b2lrdEFBbXQ3RjFieXlsSXdD?=
 =?utf-8?B?dEhkTnFvdlV1THc0a2h4OVRDcExuRXZ1cE14ZmVLMFZ6Vmh2NDNYaGtreW42?=
 =?utf-8?B?ejQ1ZG83NjZGQXE1UFhQQm1pcVl6OWdOZVR3amsvTUlZNWJHU1AxNGY4aFFy?=
 =?utf-8?B?dnZqNkVIK2ZvK3NlaDFYMDM2UzZyV0lZeVVFbmxwWlJhMldjblMvWXpNTmxC?=
 =?utf-8?B?c01HUXlVb1dId1JvMlVxREJnL2NCVlRrSVhaaFdDaERHMXM5eUs2OTMyeTVy?=
 =?utf-8?Q?Nk17SEURrLETWtgSXs2Idqo=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <701B68A5C98277449A8754F93276CDD2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8262
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF00009526.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	222ddd6b-16af-4be1-cbd2-08de6590af87
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|35042699022|82310400026|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VDcyc0pwMVB5TzNSYkVMdm82WmMwYVNqdHRLemZ6Q0UzWFl5aUJTMVBUQTdG?=
 =?utf-8?B?cXFDL1lac0p1Ym0vaHBTNE5KZW9UcU1kVkhvRzI5cWRUdXNmWk9rVUVycURO?=
 =?utf-8?B?ckorKzNSMWxSU1NtaXI5L28vdWNSakQ1SXpiR2hzQnd3OE14NFRkbTR5cUlB?=
 =?utf-8?B?R0pkaWdkTVRWbXIzcmZEYU1EYlQ1b290UWdTOTZJV3p2emw1aHJYZElidWRR?=
 =?utf-8?B?LzNmbjc0VHc1Nm56M05rQW5FNWpaVDJxQTJvMUVEay9RTitjb0Q5MThYcW9t?=
 =?utf-8?B?LzJJaUhRTWtaL2JUeTREaFJDNmlCR25SU3cxWk9SN2V6d3VvSFBlWE1XaU8w?=
 =?utf-8?B?MVFZVXRRMlZBMmlJSTI2anNJbTB4QzlMampIcTRCaUlkVjBWaW1KcXk2NjNi?=
 =?utf-8?B?THhQeEV4ZEwrS1BFWU4yV2srN1ErUHpRKzRhT2ZiVmpXQU1DREhIMXF0WUwy?=
 =?utf-8?B?TWc1YzBpbXFSY3QxcFNQR1ltRnk0TGdWWnJTOXFDZDRneDllbllMQlBYbXFk?=
 =?utf-8?B?YlRkVU5YUzhTQmM5d0pOSy9WemhGMFkxaUZyL1N6L3AxRnFvODZvYVU3NTdo?=
 =?utf-8?B?UW5iY1F2clJLenV1SXorYzlpVk50Qk1GV2VFaVJSVnZqUjkybW5GbEdubkpE?=
 =?utf-8?B?U05ZL1ZCSGY4aEZqVllzR0FDMmZNT0NZS3AwUkRTTUYvSFNqNTRsUG1XY21I?=
 =?utf-8?B?aW0ySmg1UDdIZk9hUVVCY0VQOFVjYWFKM1Jub21xaWpzZnFwNi9SVitPYSsx?=
 =?utf-8?B?a0IxblZFeC9BYlludjY3aHhXNzFsT2h6MXE1YnNHa3RSbHRHd3BkTEUzdnZo?=
 =?utf-8?B?TU9WRFpEZ2Ftd1p3dXB2YjNvd09KaThaRG1sRVliczRQUlQxcUQrN0s5eURy?=
 =?utf-8?B?UnRYV0ZMZDVrL3dkRzNka1BOR0hKM3dUNzR6eHlSeklYMDhnZU5OWUdSdmdy?=
 =?utf-8?B?TUw1Nkp3U25WVGl5WURQWVdkZWNhWXZGRmUyWmlPeWg5TmpCcUUzTk9mQzhs?=
 =?utf-8?B?bmNsb3hQSXdZOUhzTWRFNTNZV0plU0tyVzUybE10b1RjdHRWZWp1UVZQNlFq?=
 =?utf-8?B?VkpGaDF6VXNYRUlEb3pxWnNlbDhBWFNFd1B6dDhOTTRyQUI4R1gxMmxjRlUr?=
 =?utf-8?B?VkNscWJYcDAzV1JwMnRIckZNckdMRkJUTkNuTTJJUk5ua01nZklMVGp5cDF0?=
 =?utf-8?B?VXgzU3htYUJnaGdUOWxPVjQzd1FCVDdOdzNXbDBpVE9xaU1rRG1PZm1VRzRm?=
 =?utf-8?B?bVRhWmkzVGVaNTBOSUdiS3V6RWxFNnE5SGJQNjY1RW13T2NMKzJtUTdLWGlH?=
 =?utf-8?B?UGo3R0x2dzdpR0RGdTU5RStvOHMxbmlmZDQzai90RnlQK0srOGlwd01rbGM3?=
 =?utf-8?B?U2szUUcrV20zYWtVVGlmdFZXMmJ2WjFRTkp3TnVHcFRhWGNLY2Frb3kycHpB?=
 =?utf-8?B?bXA0cUtzdGxRK0N4NjYzdElwb2kxeWdCNUYvQ3JwaS81WnhVeWZrTHkvOGg1?=
 =?utf-8?B?bUtabXl0emJDNHJFMkRnMmtpU0Y0eUw2WEFsM1k1WEI0WkVtaGR0bEdBeG82?=
 =?utf-8?B?N3JEcGFPblFCajNRdFk0b0NTbUcrUFYrWFFtR1VnNy81dDRwa0FENTEyVWdh?=
 =?utf-8?B?SE5GcHdFNzArRkN1TGdSSG9DUDYrMGhMMlQwQ2I2WVJ5Ym9CNFZQRHdTWTRK?=
 =?utf-8?B?M0tWRVhpcWh5Q0hKTkhZTUZlWVhhNHVObUZFN1FCSGEvdElJRFF3Z2FxSzhX?=
 =?utf-8?B?cktCQVVYNVd4TmRJYnRhdXE2Q2V4NlhJRXh1OEZtcVFMczYvU3B3RG9SNUh4?=
 =?utf-8?B?THloVExJU0pJcWRETktuSFNBKzUzSVVJeFkvTXVGSWY0NXBkYk8weWhrY1U1?=
 =?utf-8?B?aENyN1VLMkRUa3pkN0p0eWdnNDg5QUw2ZkFrWWtFS0FrK2QwbXlOUFJxenBi?=
 =?utf-8?B?cnh0a0V6TWVnODFhMVFtcFpBM0tVSEo3a0lTVS85bXZMS25TdzhtVDhyYnZp?=
 =?utf-8?B?RU9FMGRoMzFiRURqbXdBNm9vY2hFMDE1L2IycjJ4SDhLZWFDVy9ZV1NPTjVr?=
 =?utf-8?B?SE9sRksxYWdXSlNUMHVCaVM1QUc1a0dBMkxnbFhFbjg1N2JPbnBYdU5jUXhv?=
 =?utf-8?B?UlhPK3JkbCtKMkhGcFdjMWZMRHZOU01SSU9ZcUM2SFpLTWxwaTBuUy9jbWZG?=
 =?utf-8?B?U3NidDhLYytaNDU3QldOZXRscVdXeHBYRUI4dWRVcTNRcU1pcFlDNEo3M2xO?=
 =?utf-8?B?WEszdmpsWG1JajZVYkhVbHhqNkhRPT0=?=
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)(376014)(1800799024)(35042699022)(82310400026)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZwtugPE2+tg2wWeo7ULp2r8GtbAb8GcJBzuUHnGsu/kY6tUHg2brV5XCWQ+pBqFnL1S+gC/5ldTf1CNZVadFy5lW7WhDYGdZDt1iHZ29Tp1JQNO97iSpu2b1BaFVftEFlIqW9aJYKq94ihG3sPP0mhZV5bH9eQTBLEOXztr2Z+2DdESvmPvQuNMH62cffMTgsIYMDdhNlAjnUu+6oHfbbS4mUnGjt72G5gfM7uoQ/7i5zOes3h5fezia3FiKFN6X5a6PfrQ5yhWLlCXMZM5R4JKZCRhjBrieBeC5BMCJe6KUtEELfvb4a7Xsm8x148d5Ne90UvOcC2XhU3znhXZdfDKJHa8518B69+NMv8Lf5jJMiIgMkWJ1qs3K2ntNE9FzZoSFtIIJXj+Zz2WD/0k2arWfsoNGgws07jLsjOk1jvLQAaabvbzXydrdHDaaAFmI
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 15:03:05.3756
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8acfb9bd-f830-4581-6742-08de6590d4e6
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:
	DU6PEPF00009526.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6479

SGkgSmFuLA0KDQo+IE9uIDYgRmViIDIwMjYsIGF0IDE2OjAwLCBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDYuMDIuMjAyNiAxNDozNCwgQmVydHJhbmQg
TWFycXVpcyB3cm90ZToNCj4+PiBPbiA2IEZlYiAyMDI2LCBhdCAxNDoyOSwgUm9nZXIgUGF1IE1v
bm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOg0KPj4+IE9uIEZyaSwgRmViIDA2LCAy
MDI2IGF0IDExOjM4OjAyQU0gKzAxMDAsIEphbiBCZXVsaWNoIHdyb3RlOg0KPj4+PiBPbiAwNi4w
Mi4yMDI2IDA5OjE3LCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4+Pj4gLS0tIC9kZXYvbnVs
bA0KPj4+Pj4gKysrIGIvY29uZmlnL0Rhcndpbi5taw0KPj4+Pj4gQEAgLTAsMCArMSw3IEBADQo+
Pj4+PiArIyBVc2UgR05VIHRvb2wgZGVmaW5pdGlvbnMgYXMgdGhlIHRvb2xzIHdlIGFyZSB1c2lu
ZyBhcmUgZWl0aGVyIEdOVSBjb21wYXRpYmxlDQo+Pj4+PiArIyBvciB3ZSBvbmx5IHVzZSBmZWF0
dXJlcyB3aGljaCBhcmUgc3VwcG9ydGVkIG9uIE1hYyBPUy4NCj4+Pj4+ICtpbmNsdWRlICQoWEVO
X1JPT1QpL2NvbmZpZy9TdGRHTlUubWsNCj4+Pj4+ICsNCj4+Pj4+ICsjIFhlbiB1c2VzIExpbnV4
J2VzIEFCSSBzbyB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIG9uIE1hYyBPUy4NCj4+Pj4+ICsjIEZv
cmNlIENPTVBJTEVfQVJDSCB0byBhIGZha2UgdmFsdWUgdG8gbWFrZSBzdXJlIGl0IGlzIGFsd2F5
cyB0aGUgY2FzZS4NCj4+Pj4+ICtYRU5fQ09NUElMRV9BUkNIID0gRGFyd2luDQo+Pj4+IA0KPj4+
PiBJIGZpcnN0IHdvbmRlcmVkIHdoeSB5b3Ugc2F5ICJmYWtlIiwgc2VlaW5nIHRoZSBmaWxlIGlz
IG5hbWVkIERhcndpbi5tay4gQnV0DQo+Pj4+IGluIENvbmZpZy5taydzIGNyb3NzLWNvbXBpbGUg
Y2hlY2sgdGhlIGJ1aWxkIGhvc3QgT1MgZG9lc24ndCBldmVuIG1hdHRlci4gU28NCj4+Pj4geWVz
LCBpdCBuZWVkcyBmYWtpbmcgaGVyZSBmb3IgdGhlIHRpbWUgYmVpbmcuDQo+Pj4gDQo+Pj4gSG0s
IHNldHRpbmcgaXQgdG8gIkRhcndpbiIgc2VlbXMgd2VpcmQgdG8gbWUuICBJIHVuZGVyc3RhbmQg
dGhlDQo+Pj4gcHVycG9zZSBvZiB0aGlzIGlzIHRvIGZvcmNlIHRoZSB1c2VyIHRvIHNldCBYRU5f
VEFSR0VUX0FSQ0gNCj4+PiBleHBsaWNpdGx5LiAgSSBob3dldmVyIHdvdWxkbid0IHNlZSBpdCBh
cyBmdWxseSB1bmNvcnJlY3QgdG8gbm90IHNldA0KPj4+IHRoaXMuICBJdCB3aWxsIHRoZW4gZXhl
Y3V0ZSBgdW5hbWUgLW1gIGFuZCBnZXQgYGFybTY0YCBiYWNrIGZvciBBcHBsZQ0KPj4+IHNpbGlj
b24gbWFjcyAod2hpY2ggaXMga2luZCBvZiBPSz8pLiAgT3RoZXIgSSBzdWdnZXN0IHdlIHVzZSBh
IG5vbi1PU1gNCj4+PiBzcGVjaWZpYyB2YWx1ZSBoZXJlLCBzbyB0aGF0IGlmIHJlcXVpcmVkIHdl
IGNvdWxkIGRpc3Rpbmd1aXNoIHRoaXMNCj4+PiBjYXNlIHdoZXJlIHRoZSB1c2VyIGlzIGV4cGVj
dGVkIHRvIHByb3ZpZGUgWEVOX0NPTVBJTEVfQVJDSC4NCj4+PiANCj4+PiBNYXliZSBYRU5fQ09N
UElMRV9BUkNIID0geyB1bmtub3duIHwgdW5kZWZpbmVkIH0/DQo+PiANCj4+IEkgYW0gb2sgdG8g
Y2hhbmdlIHRoaXMgd2l0aCBlaXRoZXIgYnV0IG1heWJlIHVuc3VwcG9ydGVkIGNvdWxkIGJlDQo+
PiBhIHRoaXJkIGNob2ljZT8NCj4gDQo+IElmIEkgcmFuIGludG8gInVuc3VwcG9ydGVkIiB0aGVy
ZSwgSSdkIHdvbmRlciBpZiBJIGV2ZW4gc2hvdWxkIHRydXN0IGFueSBvZg0KPiB0aGlzIGFuZCB0
cnkgaXQgb3V0LiBJJ2QgcHJlZmVyIGVpdGhlciBvZiBSb2dlcidzIHN1Z2dlc3Rpb25zLCBpbiB0
aGUgb3JkZXINCj4gZ2l2ZW4uDQoNCnVua25vd24gaXQgaXMuDQp3b3JrcyBmb3IgbWUNCg0KQ2hl
ZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiBKYW4NCg0K


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 15:56:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 15:56:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223375.1530904 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOBx-0000NY-JP; Fri, 06 Feb 2026 15:56:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223375.1530904; Fri, 06 Feb 2026 15:56:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOBx-0000NR-GT; Fri, 06 Feb 2026 15:56:21 +0000
Received: by outflank-mailman (input) for mailman id 1223375;
 Fri, 06 Feb 2026 15:56: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) id 1voOBw-0000M4-HS
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 15:56:20 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5f8e64f2-0374-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 16:56:18 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 9DAC142B8E1C;
 Fri,  6 Feb 2026 10:56:06 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f8e64f2-0374-11f1-9ccf-f158ae23cfc8
From: Abdelkareem@tibco.com, Abdelsaamad@tibco.com,
	abdelkareem.abdelsaamad@citrix.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH 0/3] Virtual NMI
Date: Fri,  6 Feb 2026 15:53:14 +0000
Message-ID: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>

Currently, the Xen hypervisor delivers NMIs to the guests using the Event
Injection mechanism. The Event Injection mechanism does not block the
delivery of subsequent NMIs. So the Xen Hypervisor tracks the NMI delivery
and its completion (by intercepting the IRET instruction) before sending
a new NMI.

With the 4th generation AMD EPYC, a hardware NMI virtualization support,
Virtual NMI (VNMI), is introduced.  The vNMI allows the hypervisor to inject
the NMI into the guest w/o using Event Injection mechanism. No need to track
the guest NMI and intercepting the IRET instruction.

NMI Virtualization support is indicated by CPUID Fn8000_000A_EDX[VNMI] = 1.[1]

NMI Virtualization is enabled by setting V_NMI_ENABLE (bit 26 in offset 60h
of the VMCB). Enabling NMI Virtualization requires the NMI intercept bit to
be set. An attempt to run a guest with V_NMI_ENABLE without the NMI intercept
bit set results in #VMEXIT(INVALID) [1]

Three new bits are added to the VMCB field at offset 60h to provide NMI
virtualization hardware support:

V_NMI(11): Indicates whether a virtual NMI is pending in the guest. The
processor will clear V_NMI once it takes the virtual NMI.
V_NMI_MASK(12): Indicates whether virtual NMIs are masked. The processor will
set V_NMI_MASK once it takes the virtual NMI. V_NMI_MASK is cleared when the
guest successfully completes an IRET instruction or #VMEXIT occurs while
delivering the virtual NMI.
V_NMI_ENABLE(26): Enables NMI virtualization. [1]

--Abdelkareem Abdelsaamad
[1] https://docs.amd.com/v/u/en-US/24593_3.43

Abdelkareem Abdelsaamad (3):
  svm/vnmi: introduce the vnmi bit support in the cpuid feature set
  svm/vnmi: add the definitions for the svm vnmi management bits in the
    VMCB
  svm/vnmi: Add support for the SVM Virtual NMI

 xen/arch/x86/hvm/hvm.c             | 29 +++++++++++++++++++++--------
 xen/arch/x86/hvm/svm/intr.c        | 16 ++++++++++++++--
 xen/arch/x86/hvm/svm/svm.c         | 25 ++++++++++++++++++++++++-
 xen/arch/x86/hvm/svm/vmcb.c        |  3 +++
 xen/arch/x86/hvm/svm/vmcb.h        | 12 ++++++++----
 xen/arch/x86/include/asm/hvm/hvm.h | 12 +++++++++++-
 xen/arch/x86/include/asm/hvm/svm.h |  2 ++
 7 files changed, 83 insertions(+), 16 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 15:56:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 15:56:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223379.1530924 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOC7-0000qe-07; Fri, 06 Feb 2026 15:56:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223379.1530924; Fri, 06 Feb 2026 15:56: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 1voOC6-0000qS-SU; Fri, 06 Feb 2026 15:56:30 +0000
Received: by outflank-mailman (input) for mailman id 1223379;
 Fri, 06 Feb 2026 15:56: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) id 1voOC4-0000ag-Sy
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 15:56:28 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6502e08c-0374-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 16:56:27 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id DA80842B9403;
 Fri,  6 Feb 2026 10:56:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6502e08c-0374-11f1-b161-2bf370ae4941
From: Abdelkareem@tibco.com, Abdelsaamad@tibco.com,
	abdelkareem.abdelsaamad@citrix.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH 2/3] svm/vnmi: add the definitions for the svm vnmi management bits in the VMCB
Date: Fri,  6 Feb 2026 15:53:16 +0000
Message-ID: <7ab87d357ef98a9e195294367b991790376cabd3.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>

Add defines for the three SVM's Virtual NMI (vNMI) managements bits in the
VMCB structure's vintr_t:

vintr_t(11) - Virtual NMI is pending.
vintr_t(12) - Virtual NMI is masked.
vintr_t(26) - Enable NMI virtualization.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/svm/vmcb.h | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
index 69f6047394..0ffb2fb8e1 100644
--- a/xen/arch/x86/hvm/svm/vmcb.h
+++ b/xen/arch/x86/hvm/svm/vmcb.h
@@ -336,15 +336,19 @@ typedef union
         u64 tpr:          8;
         u64 irq:          1;
         u64 vgif:         1;
-        u64 rsvd0:        6;
+        u64 rsvd0:        1;
+        u64 vnmi_pending: 1;
+        u64 vnmi_blocking:1;
+        u64 rsvd1:        3;
         u64 prio:         4;
         u64 ign_tpr:      1;
-        u64 rsvd1:        3;
+        u64 rsvd2:        3;
         u64 intr_masking: 1;
         u64 vgif_enable:  1;
-        u64 rsvd2:        6;
+        u64 vnmi_enable:  1;
+        u64 rsvd3:        5;
         u64 vector:       8;
-        u64 rsvd3:       24;
+        u64 rsvd4:       24;
     } fields;
 } vintr_t;
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 15:56:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 15:56:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223378.1530914 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOC5-0000cS-Oh; Fri, 06 Feb 2026 15:56:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223378.1530914; Fri, 06 Feb 2026 15:56: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 1voOC5-0000cL-M1; Fri, 06 Feb 2026 15:56:29 +0000
Received: by outflank-mailman (input) for mailman id 1223378;
 Fri, 06 Feb 2026 15:56: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) id 1voOC3-0000ag-Sl
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 15:56:27 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 648cf790-0374-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 16:56:27 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 1EAB842B8E1C;
 Fri,  6 Feb 2026 10:56:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 648cf790-0374-11f1-b161-2bf370ae4941
From: Abdelkareem@tibco.com, Abdelsaamad@tibco.com,
	abdelkareem.abdelsaamad@citrix.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH 1/3] svm/vnmi: introduce the vnmi bit support in the cpuid feature set
Date: Fri,  6 Feb 2026 15:53:15 +0000
Message-ID: <2111928538087e6600cc89fd2d666e2be0007906.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>

Introduce the cpuid bit for SVM vNMI feature support in for the x86\AMD
platforms.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/svm/svm.c         | 2 ++
 xen/arch/x86/include/asm/hvm/hvm.h | 4 +++-
 xen/arch/x86/include/asm/hvm/svm.h | 2 ++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..e451937b04 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2524,6 +2524,7 @@ const struct hvm_function_table * __init start_svm(void)
     P(cpu_has_tsc_ratio, "TSC Rate MSR");
     P(cpu_has_svm_sss, "NPT Supervisor Shadow Stack");
     P(cpu_has_svm_spec_ctrl, "MSR_SPEC_CTRL virtualisation");
+    P(cpu_has_svm_vnmi, "Virtual NMI");
     P(cpu_has_svm_bus_lock, "Bus Lock Filter");
 #undef P
 
@@ -2533,6 +2534,7 @@ const struct hvm_function_table * __init start_svm(void)
     svm_function_table.caps.hap = cpu_has_svm_npt;
     svm_function_table.caps.hap_superpage_2mb = true;
     svm_function_table.caps.hap_superpage_1gb = cpu_has_page1gb;
+    svm_function_table.caps.vNMI = cpu_has_svm_vnmi;
 
     return &svm_function_table;
 }
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59..ad17ea73e9 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -115,7 +115,9 @@ struct hvm_function_table {
              virtual_intr_delivery:1,
 
              /* Nested virt capabilities */
-             nested_virt:1;
+             nested_virt:1,
+             /* virtual NMI support */
+             vNMI:1;
     } caps;
 
     /*
diff --git a/xen/arch/x86/include/asm/hvm/svm.h b/xen/arch/x86/include/asm/hvm/svm.h
index 15f0268be7..a35a61273b 100644
--- a/xen/arch/x86/include/asm/hvm/svm.h
+++ b/xen/arch/x86/include/asm/hvm/svm.h
@@ -37,6 +37,7 @@ extern u32 svm_feature_flags;
 #define SVM_FEATURE_VGIF          16 /* Virtual GIF */
 #define SVM_FEATURE_SSS           19 /* NPT Supervisor Shadow Stacks */
 #define SVM_FEATURE_SPEC_CTRL     20 /* MSR_SPEC_CTRL virtualisation */
+#define SVM_FEATURE_VNMI          25 /* Virtual NMI */
 #define SVM_FEATURE_BUS_LOCK      29 /* Bus Lock Threshold */
 
 static inline bool cpu_has_svm_feature(unsigned int feat)
@@ -57,6 +58,7 @@ static inline bool cpu_has_svm_feature(unsigned int feat)
 #define cpu_has_svm_vloadsave cpu_has_svm_feature(SVM_FEATURE_VLOADSAVE)
 #define cpu_has_svm_sss       cpu_has_svm_feature(SVM_FEATURE_SSS)
 #define cpu_has_svm_spec_ctrl cpu_has_svm_feature(SVM_FEATURE_SPEC_CTRL)
+#define cpu_has_svm_vnmi      cpu_has_svm_feature(SVM_FEATURE_VNMI)
 #define cpu_has_svm_bus_lock  cpu_has_svm_feature(SVM_FEATURE_BUS_LOCK)
 
 #define MSR_INTERCEPT_NONE    0
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 15:56:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 15:56:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223381.1530930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOC7-0000tw-99; Fri, 06 Feb 2026 15:56:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223381.1530930; Fri, 06 Feb 2026 15: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 1voOC7-0000tD-3v; Fri, 06 Feb 2026 15:56:31 +0000
Received: by outflank-mailman (input) for mailman id 1223381;
 Fri, 06 Feb 2026 15: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) id 1voOC6-0000M4-5g
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 15:56:30 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6582475d-0374-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 16:56:28 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id A444942B940E;
 Fri,  6 Feb 2026 10:56:16 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6582475d-0374-11f1-9ccf-f158ae23cfc8
From: Abdelkareem@tibco.com, Abdelsaamad@tibco.com,
	abdelkareem.abdelsaamad@citrix.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH 3/3] svm/vnmi: Add support for the SVM Virtual NMI
Date: Fri,  6 Feb 2026 15:53:17 +0000
Message-ID: <51fb085801706c082de4061181381d6cb9449d77.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>

With vNMI, the pending NMI is simply stuffed into the VMCB and handed off
to the hardware. This means that Xen needs to be able to set a vNMI pending
on-demand, and also query if a vNMI is pending, e.g. to honor the "at most
one NMI pending" rule and to preserve all NMIs across save and restore.

Introduce two new hvm_function_table callbacks to support the SVM's vNMI to
allow the Xen hypervisor to query if a vNMI is pending and to set VMCB's
_vintr pending flag so the NMIs are serviced by hardware if/when the virtual
NMIs become unblocked.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/hvm.c             | 29 +++++++++++++++++++++--------
 xen/arch/x86/hvm/svm/intr.c        | 16 ++++++++++++++--
 xen/arch/x86/hvm/svm/svm.c         | 23 ++++++++++++++++++++++-
 xen/arch/x86/hvm/svm/vmcb.c        |  3 +++
 xen/arch/x86/include/asm/hvm/hvm.h |  8 ++++++++
 5 files changed, 68 insertions(+), 11 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..3117ef8f2f 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3904,10 +3904,29 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
     }
 }
 
-enum hvm_intblk hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack)
+static enum hvm_intblk hvm_nmi_blocked(struct vcpu *v)
 {
     unsigned long intr_shadow;
 
+    if (hvm_funcs.caps.vNMI)
+    {
+        if (!hvm_funcs.is_vnmi_pending(v))
+            return hvm_intblk_none;
+
+        return hvm_intblk_vnmi;
+    }
+
+    intr_shadow = alternative_call(hvm_funcs.get_interrupt_shadow, v);
+
+    if ( intr_shadow & (HVM_INTR_SHADOW_STI|HVM_INTR_SHADOW_MOV_SS) )
+        return hvm_intblk_shadow;
+
+    return ((intr_shadow & HVM_INTR_SHADOW_NMI) ?
+            hvm_intblk_nmi_iret : hvm_intblk_none);
+}
+
+enum hvm_intblk hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack)
+{
     ASSERT(v == current);
 
     if ( nestedhvm_enabled(v->domain) ) {
@@ -3922,14 +3941,8 @@ enum hvm_intblk hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack)
          !(guest_cpu_user_regs()->eflags & X86_EFLAGS_IF) )
         return hvm_intblk_rflags_ie;
 
-    intr_shadow = alternative_call(hvm_funcs.get_interrupt_shadow, v);
-
-    if ( intr_shadow & (HVM_INTR_SHADOW_STI|HVM_INTR_SHADOW_MOV_SS) )
-        return hvm_intblk_shadow;
-
     if ( intack.source == hvm_intsrc_nmi )
-        return ((intr_shadow & HVM_INTR_SHADOW_NMI) ?
-                hvm_intblk_nmi_iret : hvm_intblk_none);
+        return hvm_nmi_blocked(v);
 
     if ( intack.source == hvm_intsrc_lapic )
     {
diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 6453a46b85..c54298c402 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -29,10 +29,19 @@
 
 static void svm_inject_nmi(struct vcpu *v)
 {
-    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
-    u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
+    struct vmcb_struct *vmcb;
+    u32 general1_intercepts;
     intinfo_t event;
 
+    if (hvm_funcs.caps.vNMI)
+    {
+        hvm_funcs.set_vnmi_pending(v);
+        return;
+    }
+
+    vmcb = v->arch.hvm.svm.vmcb;
+    general1_intercepts = vmcb_get_general1_intercepts(vmcb);
+
     event.raw = 0;
     event.v = true;
     event.type = X86_ET_NMI;
@@ -176,6 +185,9 @@ void asmlinkage svm_intr_assist(void)
             }
         }
 
+        // vNMI is currently serviced in progress.
+        if (unlikely(intblk == hvm_intblk_vnmi)) return;
+
         /*
          * Pending IRQs must be delayed if:
          * 1. An event is already pending. This is despite the fact that SVM
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index e451937b04..f67869353b 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -297,6 +297,26 @@ void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags)
         __clear_bit(msr * 2 + 1, msr_bit);
 }
 
+static bool cf_check svm_is_vnmi_pending(struct vcpu *vcpu)
+{
+    if (!hvm_funcs.caps.vNMI)
+        return false;
+
+    return (vcpu->arch.hvm.svm.vmcb->_vintr.fields.vnmi_blocking);
+}
+
+static bool cf_check svm_set_vnmi_pending(struct vcpu *vcpu)
+{
+    if (!hvm_funcs.caps.vNMI)
+        return false;
+
+    if (vcpu->arch.hvm.svm.vmcb->_vintr.fields.vnmi_pending)
+        return false;
+
+    vcpu->arch.hvm.svm.vmcb->_vintr.fields.vnmi_pending = 1;
+    return true;
+}
+
 #ifdef CONFIG_VM_EVENT
 static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
@@ -2464,7 +2484,8 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
 #endif
     .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .get_insn_bytes       = svm_get_insn_bytes,
-
+    .is_vnmi_pending = svm_is_vnmi_pending,
+    .set_vnmi_pending = svm_set_vnmi_pending,
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
     .nhvm_vcpu_destroy = nsvm_vcpu_destroy,
     .nhvm_vcpu_reset = nsvm_vcpu_reset,
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548..5069789f6c 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -184,6 +184,9 @@ static int construct_vmcb(struct vcpu *v)
     if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
         v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
 
+    if (hvm_funcs.caps.vNMI)
+        vmcb->_vintr.fields.vnmi_enable = 1;
+
     return 0;
 }
 
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index ad17ea73e9..d7f439d41b 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -67,6 +67,7 @@ enum hvm_intblk {
     hvm_intblk_rflags_ie, /* RFLAGS.IE == 0 */
     hvm_intblk_tpr,       /* LAPIC TPR too high */
     hvm_intblk_nmi_iret,  /* NMI blocked until IRET */
+    hvm_intblk_vnmi,      /* vNMI is currently blocked*/
     hvm_intblk_arch,      /* SVM/VMX specific reason */
 };
 
@@ -224,6 +225,13 @@ struct hvm_function_table {
     int (*pi_update_irte)(const struct vcpu *v, const struct pirq *pirq,
                           uint8_t gvec);
     void (*update_vlapic_mode)(struct vcpu *v);
+    /* Whether or not a virtual NMI is pending in hardware. */
+    bool (*is_vnmi_pending)(struct vcpu *vcpu);
+    /*
+     * Attempt to pend a virtual NMI in harware.
+     * Returns %true on success
+     */
+    bool (*set_vnmi_pending)(struct vcpu *vcpu);
 
     /*Walk nested p2m  */
     int (*nhvm_hap_walk_L1_p2m)(struct vcpu *v, paddr_t L2_gpa,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223509.1530954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVA-0005WK-0o; Fri, 06 Feb 2026 16:16:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223509.1530954; Fri, 06 Feb 2026 16:16: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 1voOV9-0005WC-UP; Fri, 06 Feb 2026 16:16:11 +0000
Received: by outflank-mailman (input) for mailman id 1223509;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOV8-0005HU-73
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:10 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23c5772d-0377-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 17:16:07 +0100 (CET)
Received: from SA9P221CA0021.NAMP221.PROD.OUTLOOK.COM (2603:10b6:806:25::26)
 by DM6PR12MB4339.namprd12.prod.outlook.com (2603:10b6:5:2af::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.15; Fri, 6 Feb
 2026 16:15:58 +0000
Received: from SN1PEPF00036F3D.namprd05.prod.outlook.com
 (2603:10b6:806:25:cafe::4a) by SA9P221CA0021.outlook.office365.com
 (2603:10b6:806:25::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 16:15:56 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:15:57 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:15:56 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23c5772d-0377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FdO+RBaOHDwpix9ndmcsSIcUbq9dc+eYpi/JH+OcNStx4WQ/GhH4ArtK/lM+RTWDkGnzoFER6tJQdSyDk/xqeJd5jzYGjV4FlRzObmjzwcMq4Qrw1LArsWmjjcV3CnNMMRtyFPkIzWah+87MnFPntSi7ScgxTasF6gZXqbnZEC2Xd59ewRAxKUYjLOeCYb7cloDYr5hHHDiGQ2zj5bOT3iRcyLUHmGNIPirFBSUFlavC8I4Wx69EyPV+OsMdOm3vjAj3atK499abflIAII4RtgD3qe2t1GdEQHzCBHrrlUIP/zeQo2B0HtRnbgh2QYhwq7ghTG9feENRGPDtkHUhiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XXIQxMzOsLkcntds5WVXwjfHLjwU4sR3iGU5UhK9k7Q=;
 b=gTA4LuLwS18IqD5nUjLZKUrJgQlhqMT4Z67962KBwD8SvYE2Bxqn+OFxdoDphJKJAnpmWD0iERVQVu0lpdOjEzcq7ROU3m97xbNh8ooJI3t/Y2IBGXnaPxOJcSrX8lonSV8zGs6s78uZGXO1+1rZ7PTmcRN/dIj8prozhrGKVN3ONUUi8Sgh/whol/NZFO2AN8lgGVIH9U028jHp9gwULijNndme0Dmqng1qx3STSKf6ZfYp4g4BsZmrcf6ACxDOnvXwWVNP6NvL0xX3Hy4J7ZmpExvfgbO1nAlvJvJ2j/dQn7W6TQEZiNF+CFd2PkBzCnWwCMhb0mUitdN/At7krQ==
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=XXIQxMzOsLkcntds5WVXwjfHLjwU4sR3iGU5UhK9k7Q=;
 b=YmVeFfKRZaizwwo6C8//gaVdL+5mxTViD43SL/s5Vh6UTZmVn17fSL5NXx9O+HY748FiVYBBNQVHxivzvoKyawr9QaOBCpb54fXfQ2HnlQ9GzAweAac95qI5QFY7Gc8N9KRBd/J8Qm8/41LMeAoH5WqY3UE+j4XEBBvKpgSF86M=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 00/12] const-ify vendor checks
Date: Fri, 6 Feb 2026 17:15:22 +0100
Message-ID: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3D:EE_|DM6PR12MB4339:EE_
X-MS-Office365-Filtering-Correlation-Id: 44900149-0c10-4207-2c21-08de659b031f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?mpmiKR4S748JUR1dMnVXaxrKfL1xTE/B0HT9VLtRLZz8nEvhyQ1/3AXv24B7?=
 =?us-ascii?Q?+M3r3hojdrNnnWKNXoXuUmkEnzWQbotrgpavMVNP4OU7Rkbbspybl004bDnQ?=
 =?us-ascii?Q?WuS6Y0zIQCqOopPK8nLCv9MsthYtbocUqEqAO0Ge7qmAndfV8Enmno4eUXDe?=
 =?us-ascii?Q?iXPVWiK+6QZ96C/CAPqvksJYx6en7KnFMPIfmrKuyDADxYqS+SHEVsCH3utH?=
 =?us-ascii?Q?1z6NqozGlCnYOi+o7LJqSCCYEF3ELL9Fb9FlofQxhqhkeQziH6Fi79vq72fD?=
 =?us-ascii?Q?yR6D0xeEDRYyCr0OqipRHjxt99xOSwGCyxD+lHk6FCeUfEPydJjwRyzHss69?=
 =?us-ascii?Q?p1JDMqUUVTF2qxPEcdcalHRTSOtdXKiz3AhRl1aXD4qkqfz2kPUTbDU3AwbO?=
 =?us-ascii?Q?c5kqfvPAfE9IZ0bXGaLjJtn+FlAzKURIILztbgxmbVarj5yYHlJdN+Y4SQvW?=
 =?us-ascii?Q?lxgJFvU34Ut1uNGHxrDw4aFYmMEQdoGbCUFV2ArbCd+4PMWrtydj4ViyLuAG?=
 =?us-ascii?Q?bNfd7VnWcPiLck+q9UNJ+j0gHPXChJY7qz1rtHzVQltaBnUrrpmcPCsHNuZk?=
 =?us-ascii?Q?txwSH1bHQCzKNl+bEebvN/ME4C58AXjXm+Uadsle03IXYNCHx4jfcQIUawbE?=
 =?us-ascii?Q?1AelDomMNwJ6O71tqkOCAPWHtJmTjBjDjb7SlrVF2TVnT6sw0DeOsxCxsaEB?=
 =?us-ascii?Q?KmE51uUGpkNFlHqUGMJAl7E7dHVtZ6Rb0xU+1ZwiMEXR5n5FFUVJyrXruAqw?=
 =?us-ascii?Q?dZVe0LQHu+46CP/etNnIvlHLjoGb0niC1N7gJvRtXYAcV+d6isGf3jjNGGP4?=
 =?us-ascii?Q?39VbzSJFX1Z6M6grHo0ZGFpGkcsdduIq5a/qFsGPkh7mIyRWeBLAbbNt45r7?=
 =?us-ascii?Q?zbzlNiQqJX5wO99bQ1dra0yxms4Qi8N2LCYD8qJz2ZkBwmzXWtDhDahY+lfH?=
 =?us-ascii?Q?n5I0ITD0NNCXEqQ1OA5l6GmdBevxV6uloR7dsH6AB1VEH0c/v1lbhkxqF9DY?=
 =?us-ascii?Q?26sAK6aJRoSE6jMI1Srpteo8Bt/a1MAOG71YIOnp4TxmU8XeWTXYy0mJ8ENT?=
 =?us-ascii?Q?l64I849PInWpyHgeqFwUMU5Fmrjx3w5uCW9P+X7W1cWTfhzb96yr+A07MIkP?=
 =?us-ascii?Q?xcmtjuDIZe2V7KBlUbWek97picOhzISNFuLuALKYtS9GVi0jLXBYOLfaEoJR?=
 =?us-ascii?Q?ZeAK04e94IsLjCUsXiyqWJTLiqa5KYj738PSQ8U7PRMdUW4oGZvb/nBENPRn?=
 =?us-ascii?Q?rpKE+4uQkiA8TCvmZXgqPKJ7FPtCGUspxg5waF10WeSCcIVVsCkO1PtZXXvy?=
 =?us-ascii?Q?trRGaFlrEkOHAHVTSlNeBzf1O6w2CIG/XjCTfI9Slx52ggwaP5mM39Y7woJw?=
 =?us-ascii?Q?7qiThfkavy+JHmgNbNiP6R+fe0tVeMY1nR/XQcFrJy8DWJY3fFTO3u4jWfp2?=
 =?us-ascii?Q?9Pb5LIGBa8oANizLUzAdMCQoEJLOIXcsecN6LMfOXMveuotpOsvFdK56f9ZC?=
 =?us-ascii?Q?R/+fp8R/Aatb1DrJUQIRLy1smWLirSlzC3YrDHkBA48wDrFR9K+QVBgRkky8?=
 =?us-ascii?Q?SxNIOAEZcZEj6J9T+uZTcgbCfHWd5Bmy/MywjQ2bsb5OFyYmDdtMhHKRSuSE?=
 =?us-ascii?Q?M8zoIfR3QVIU60f5dOpiPtR2FIB3xIpk959Jr7MXz2XDUhO2kOMJZGAW8BE+?=
 =?us-ascii?Q?ftdtCg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/o6CVO9Zbcy5WFlq3iZz948GbFOPS0Ys2Ko8kSrBLki2C4BHdwUfU2pT0p98rJVxYvvL1Q6ZvZ7R9QpErhT8qoyHlY1g5IBtOo40cYlwI0cArW62XveqKaOp4cHhFAxDkxgnQml8CfS3b/lJdhDm/YLjs+Z+Rqv9Q+LfxID3xjt0zAqAVdxCREFtpGw5M8dVpX25RO5jLysFL07on0FSJwW6iCxwSltsY++H8/6dqLZdylt5ZWnXcanGzVKWTCvjQtIzV09pKINW+xncJZNLbPeTUNOocUokxHFiPPc+CsW3KgD4XRtADPb93gEvEXTbrvMVKT83x05S8VkBqE6Q79He4lFrSZJ52nw3lF+s9HiSThXa1sqcoiXpo9uKi4TpT5sX1grGF/CYsRnX7nKzDLPUMLoIAgZVEmtdyO7DV8Mz2fqoh18w19X9HKkMGi48
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:15:57.9248
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 44900149-0c10-4207-2c21-08de659b031f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4339

Hi,

This series is a big revamp of vendor-checking to enable it to perform DCE.
It improves all configurations useful in practice at minimal cost in the full
build, and at a massive advantage for the single-vendor case. Many ifdefs can
go away as a side effect of the series.

This series depends on cross-vendor removal:
  https://lore.kernel.org/xen-devel/20260205170923.38425-1-alejandro.garciavallejo@amd.com/T/#m4c3d318f37e4f24d0f8c62b104221aa5d428cebc

Patch 1 in this series matches that of cross-vendor removal. It's logically
required, but that's the single requirement.

High level description
======================

When compared to the RFC this makes a different approach The series introduces
cpu_vendor() which maps to a constant in the single vendor case and to
(boot_cpu_data.vendor & X86_ENABLED_VENDORS), where X86_ENABLED_VENDORS is a
mask of the compile-time chosen vendors. This enables the compiler to detect
dead-code at the uses and remove all unreachable branches, including in
switches.

When compared to the x86_vendor_is() macro introduced in the RFC, this is
simpler. It achieves MOST of what the older macro did without touching the
switches, with a few caveats:

  1. Compiled-out vendors cause a panic, they don't fallback onto the unknown
     vendor case. In retrospect, this is a much saner thing to do.
  2. equalities and inequalities have been replaced by equivalent (cpu_vendor() & ...)
     forms. This isn't stylistic preference. This form allows the compiler
     to merge the compared-against constant with X86_ENABLED_VENDORS, yielding
     much better codegen throughout the tree.

The effect of (2) triples the delta in the full build below.

Some differences might be attributable to the change from policy vendor checks
to boot_cpu_data. In the case of the emulator it caused a 400 bytes increase
due to the way it checks using LOTS of macro invocations, so I left that one
piece using the policy vendor except for the single vendor case.

And finally, some bloat-o-meters to better grasp the effects

  1. AMD + wo/ unknown (compared against prior AMD-only build)
    add/remove: 0/12 grow/shrink: 4/66 up/down: 108/-11595 (-11487)

  2. AMD + Intel + wo/ unknown (compared against prior full build)
    (excludes Hygon, Shanghai, Centaur and any other unknown CPU vendors)
    add/remove: 1/6 grow/shrink: 27/31 up/down: 356/-1552 (-1196)

  3. All vendors + w/ unknown (compared against prior full build)
    add/remove: 0/0 grow/shrink: 33/19 up/down: 398/-273 (125)

1. AMD + wo/ unknown (compared against prior AMD-only build)
============================================================

add/remove: 0/12 grow/shrink: 4/66 up/down: 108/-11595 (-11487)
Function                                     old     new   delta
x86_cpu_policies_are_compatible              157     194     +37
xen_config_data                             1476    1509     +33
amd_check_entrysign                          807     827     +20
init_guest_cpu_policies                     1364    1382     +18
opt_gds_mit                                    1       -      -1
nmi_p6_event_width                             4       -      -4
nmi_p4_cccr_val                                4       -      -4
init_e820                                   1037    1033      -4
x86_mcinfo_dump                              477     471      -6
pci_cfg_ok                                   307     301      -6
get_hw_residencies                           213     205      -8
recalculate_cpuid_policy                     909     900      -9
dom0_setup_permissions                      3809    3800      -9
arch_ioreq_server_get_type_addr              250     241      -9
cpu_has_amd_erratum                          230     219     -11
init_amd                                    2449    2437     -12
parse_spec_ctrl                             2321    2307     -14
amd_nonfatal_mcheck_init                     192     177     -15
shanghai_cpu_dev                              16       -     -16
hygon_cpu_dev                                 16       -     -16
centaur_cpu_dev                               16       -     -16
x86emul_0fae                                2758    2741     -17
vmce_init_vcpu                               153     136     -17
pge_init                                      60      42     -18
cpufreq_cpu_init                              34      15     -19
nmi_watchdog_tick                            534     514     -20
vmce_restore_vcpu                            160     139     -21
init_nonfatal_mce_checker                    142     120     -22
ucode_update_hcall_cont                      888     865     -23
vpmu_arch_initialise                         195     168     -27
mce_firstbank                                 37      10     -27
init_shanghai                                 29       -     -29
validate_gl4e                                617     587     -30
l4e_propagate_from_guest                     451     421     -30
guest_walk_tables_4_levels                  3411    3381     -30
clear_msr_range                               30       -     -30
acpi_dead_idle                               430     398     -32
print_mtrr_state                             719     684     -35
amd_mcheck_init                              451     416     -35
hvm_vcpu_virtual_to_linear                   631     595     -36
do_IRQ                                      1783    1747     -36
init_bsp_APIC                                193     149     -44
symbols_offsets                            30800   30752     -48
cpu_callback                                4650    4600     -50
mc_memerr_dhandler                           903     851     -52
vpmu_init                                    309     248     -61
mcheck_init                                 1187    1122     -65
microcode_nmi_callback                       205     139     -66
init_IRQ                                     477     407     -70
disable_lapic_nmi_watchdog                   119      49     -70
__start_xen                                 9448    9378     -70
alternative_instructions                     154      82     -72
traps_init                                   543     468     -75
protmode_load_seg                           1904    1829     -75
set_cx_pminfo                               1691    1614     -77
init_intel_cacheinfo                        1191    1111     -80
is_cpu_primary                                93       -     -93
symbols_sorted_offsets                     60760   60664     -96
do_mca                                      3181    3085     -96
guest_cpuid                                 2395    2292    -103
guest_common_max_feature_adjustments         110       -    -110
read_msr                                    1471    1346    -125
x86emul_decode                             12729   12597    -132
guest_common_default_feature_adjustments     232      62    -170
do_microcode_update                          793     608    -185
cpufreq_driver_init                          453     263    -190
vmce_wrmsr                                   967     768    -199
symbols_names                             108114  107914    -200
recalculate_misc                             898     689    -209
vmce_rdmsr                                  1083     872    -211
early_cpu_init                               948     721    -227
guest_wrmsr                                 2853    2622    -231
init_centaur                                 238       -    -238
domain_cpu_policy_changed                    677     408    -269
write_msr                                   1752    1455    -297
x86_emulate                               222203  221896    -307
init_hygon                                   402       -    -402
guest_rdmsr                                 2308    1881    -427
start_vmx                                   1607    1105    -502
setup_apic_nmi_watchdog                      977     276    -701
do_get_hw_residencies                       1289       9   -1280
init_speculation_mitigations                9714    6788   -2926
Total: Before=3878514, After=3867027, chg -0.30%

2. AMD + Intel + wo/ unknown (compared against prior full build)
================================================================

add/remove: 1/6 grow/shrink: 27/31 up/down: 356/-1552 (-1196)
Function                                     old     new   delta
start_vmx                                   1607    1686     +79
vcpu_info_reset                                -      38     +38
xen_config_data                             1483    1520     +37
x86_cpu_policies_are_compatible              157     194     +37
amd_check_entrysign                          807     838     +31
init_speculation_mitigations                9836    9862     +26
set_cx_pminfo                               1691    1709     +18
read_msr                                    1471    1486     +15
guest_cpuid                                 2395    2405     +10
vmce_restore_vcpu                            160     167      +7
recalculate_cpuid_policy                     909     916      +7
vmce_init_vcpu                               153     159      +6
do_mc_get_cpu_info                           584     590      +6
init_e820                                   1037    1042      +5
x86_mcinfo_dump                              477     480      +3
setup_apic_nmi_watchdog                      977     980      +3
guest_common_max_feature_adjustments         110     113      +3
guest_common_default_feature_adjustments     257     260      +3
disable_lapic_nmi_watchdog                   119     122      +3
cpu_has_amd_erratum                          230     233      +3
amd_nonfatal_mcheck_init                     192     195      +3
alternative_instructions                     154     157      +3
pge_init                                      60      62      +2
mce_firstbank                                 37      39      +2
init_bsp_APIC                                193     195      +2
do_get_hw_residencies                       1289    1291      +2
mcheck_init                                 1227    1228      +1
intel_mcheck_init                           2398    2399      +1
pci_cfg_ok                                   307     306      -1
init_nonfatal_mce_checker                    160     159      -1
mc_memerr_dhandler                           903     901      -2
recalculate_misc                             898     890      -8
acpi_cpufreq_cpu_init                        823     815      -8
cpufreq_driver_init                          468     459      -9
vmce_intel_rdmsr                             161     150     -11
validate_gl4e                                617     605     -12
guest_walk_tables_4_levels                  3411    3399     -12
traps_init                                   543     528     -15
l4e_propagate_from_guest                     451     436     -15
shanghai_cpu_dev                              16       -     -16
hygon_cpu_dev                                 16       -     -16
centaur_cpu_dev                               16       -     -16
write_msr                                   1752    1735     -17
cpu_callback                                5100    5080     -20
amd_mcheck_init                              451     431     -20
hvm_vcpu_virtual_to_linear                   631     610     -21
domain_cpu_policy_changed                    677     656     -21
vpmu_arch_initialise                         195     173     -22
acpi_dead_idle                               430     407     -23
symbols_offsets                            31800   31776     -24
print_mtrr_state                             719     693     -26
guest_rdmsr                                 2308    2282     -26
do_mca                                      3181    3153     -28
vpmu_init                                    320     291     -29
vcpu_create                                  864     835     -29
unmap_guest_area                             198     169     -29
init_shanghai                                 29       -     -29
symbols_sorted_offsets                     62760   62720     -40
vmce_wrmsr                                   993     936     -57
vmce_rdmsr                                  1134    1073     -61
symbols_names                             112215  112141     -74
init_intel_cacheinfo                        1191    1111     -80
early_cpu_init                               948     854     -94
init_centaur                                 238       -    -238
init_hygon                                   402       -    -402
Total: Before=3932243, After=3931047, chg -0.03%

3. All vendors + w/ unknown (compared against prior full build)
===============================================================

add/remove: 0/0 grow/shrink: 33/19 up/down: 398/-273 (125)
Function                                     old     new   delta
start_vmx                                   1607    1686     +79
early_cpu_init                               948     986     +38
x86_cpu_policies_are_compatible              157     194     +37
xen_config_data                             1483    1515     +32
amd_check_entrysign                          807     838     +31
init_speculation_mitigations                9836    9862     +26
set_cx_pminfo                               1691    1709     +18
read_msr                                    1471    1486     +15
vmce_wrmsr                                   993    1005     +12
init_nonfatal_mce_checker                    160     170     +10
guest_cpuid                                 2395    2405     +10
mcheck_init                                 1227    1235      +8
vmce_restore_vcpu                            160     167      +7
recalculate_cpuid_policy                     909     916      +7
vmce_init_vcpu                               153     159      +6
init_intel_cacheinfo                        1191    1197      +6
do_mc_get_cpu_info                           584     590      +6
cpufreq_driver_init                          468     474      +6
init_e820                                   1037    1042      +5
amd_mcheck_init                              451     456      +5
x86_mcinfo_dump                              477     480      +3
setup_apic_nmi_watchdog                      977     980      +3
guest_common_max_feature_adjustments         110     113      +3
guest_common_default_feature_adjustments     257     260      +3
disable_lapic_nmi_watchdog                   119     122      +3
cpu_has_amd_erratum                          230     233      +3
cpu_callback                                5100    5103      +3
amd_nonfatal_mcheck_init                     192     195      +3
alternative_instructions                     154     157      +3
mce_firstbank                                 37      39      +2
init_bsp_APIC                                193     195      +2
do_get_hw_residencies                       1289    1291      +2
intel_mcheck_init                           2398    2399      +1
recalculate_misc                             898     897      -1
pci_cfg_ok                                   307     306      -1
mc_memerr_dhandler                           903     901      -2
vmce_rdmsr                                  1134    1127      -7
traps_init                                   543     535      -8
acpi_cpufreq_cpu_init                        823     815      -8
vmce_intel_rdmsr                             161     150     -11
validate_gl4e                                617     605     -12
guest_walk_tables_4_levels                  3411    3399     -12
l4e_propagate_from_guest                     451     437     -14
write_msr                                   1752    1735     -17
vpmu_init                                    320     302     -18
print_mtrr_state                             719     698     -21
hvm_vcpu_virtual_to_linear                   631     610     -21
domain_cpu_policy_changed                    677     656     -21
vpmu_arch_initialise                         195     173     -22
acpi_dead_idle                               430     407     -23
guest_rdmsr                                 2308    2282     -26
do_mca                                      3181    3153     -28
Total: Before=3932245, After=3932370, chg +0.00%

Alejandro Vallejo (12):
  x86: Reject CPU policies with vendors other than the host's
  x86: Add more granularity to the vendors in Kconfig
  x86: Add cpu_vendor() as a wrapper for the host's CPU vendor
  x86: Migrate MSR handler vendor checks to cpu_vendor()
  x86: Migrate spec_ctrl vendor checks to cpu_vendor()
  x86: Migrate switch vendor checks to cpu_vendor()
  x86: Have x86_emulate/ implement the single-vendor optimisation
  x86/acpi: Migrate vendor checks to cpu_vendor()
  x86/pv: Migrate vendor checks to cpu_vendor()
  x86/mcheck: Migrate vendor checks to use cpu_vendor()
  x86/cpu: Migrate vendor checks to use cpu_vendor()
  x86: Migrate every remaining raw vendor check to cpu_vendor()

 xen/arch/x86/Kconfig.cpu               | 43 ++++++++++++++++++++++++++
 xen/arch/x86/acpi/cpu_idle.c           | 16 +++++-----
 xen/arch/x86/acpi/cpufreq/acpi.c       |  2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c    | 15 +++------
 xen/arch/x86/alternative.c             |  2 +-
 xen/arch/x86/apic.c                    |  2 +-
 xen/arch/x86/cpu-policy.c              | 14 ++++-----
 xen/arch/x86/cpu/Makefile              |  6 ++--
 xen/arch/x86/cpu/amd.c                 |  6 ++--
 xen/arch/x86/cpu/common.c              |  8 +++--
 xen/arch/x86/cpu/intel_cacheinfo.c     |  5 ++-
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |  2 +-
 xen/arch/x86/cpu/mcheck/mce.c          | 23 ++++++--------
 xen/arch/x86/cpu/mcheck/mce.h          |  2 +-
 xen/arch/x86/cpu/mcheck/mce_amd.c      |  7 ++---
 xen/arch/x86/cpu/mcheck/mce_intel.c    |  7 ++---
 xen/arch/x86/cpu/mcheck/non-fatal.c    |  6 +---
 xen/arch/x86/cpu/mcheck/vmce.c         | 16 +++-------
 xen/arch/x86/cpu/microcode/amd.c       |  2 +-
 xen/arch/x86/cpu/microcode/core.c      |  2 +-
 xen/arch/x86/cpu/mtrr/generic.c        |  5 ++-
 xen/arch/x86/cpu/mwait-idle.c          |  5 ++-
 xen/arch/x86/cpu/vpmu.c                |  9 ++----
 xen/arch/x86/cpuid.c                   |  5 ++-
 xen/arch/x86/dom0_build.c              |  2 +-
 xen/arch/x86/domain.c                  | 16 +++++-----
 xen/arch/x86/e820.c                    |  2 +-
 xen/arch/x86/guest/xen/xen.c           |  6 +++-
 xen/arch/x86/hvm/hvm.c                 |  3 +-
 xen/arch/x86/hvm/ioreq.c               |  3 +-
 xen/arch/x86/hvm/vmx/vmx.c             |  8 ++---
 xen/arch/x86/i8259.c                   |  5 ++-
 xen/arch/x86/include/asm/cpufeature.h  | 27 ++++++++++++++++
 xen/arch/x86/include/asm/guest_pt.h    |  3 +-
 xen/arch/x86/irq.c                     |  3 +-
 xen/arch/x86/msr.c                     | 35 +++++++++------------
 xen/arch/x86/nmi.c                     |  4 +--
 xen/arch/x86/pv/domain.c               |  2 +-
 xen/arch/x86/pv/emul-priv-op.c         | 27 +++++++---------
 xen/arch/x86/setup.c                   |  7 ++---
 xen/arch/x86/spec_ctrl.c               | 42 ++++++++++---------------
 xen/arch/x86/traps-setup.c             |  2 +-
 xen/arch/x86/x86_emulate/private.h     | 10 +++++-
 xen/arch/x86/x86_emulate/x86_emulate.c |  2 +-
 xen/lib/x86/policy.c                   |  3 +-
 46 files changed, 224 insertions(+), 200 deletions(-)


base-commit: 381b4ff16f7ff83a2dc44f16b8dd0208f3255ec7
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223510.1530959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVA-0005YI-Be; Fri, 06 Feb 2026 16:16:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223510.1530959; Fri, 06 Feb 2026 16:16: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 1voOVA-0005Xt-4y; Fri, 06 Feb 2026 16:16:12 +0000
Received: by outflank-mailman (input) for mailman id 1223510;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOV8-0005HV-Ac
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:10 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 25aefbdc-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:16:09 +0100 (CET)
Received: from SA1PR04CA0011.namprd04.prod.outlook.com (2603:10b6:806:2ce::18)
 by DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 16:16:04 +0000
Received: from SN1PEPF00036F3E.namprd05.prod.outlook.com
 (2603:10b6:806:2ce:cafe::d6) by SA1PR04CA0011.outlook.office365.com
 (2603:10b6:806:2ce::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3E.mail.protection.outlook.com (10.167.248.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:04 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:02 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25aefbdc-0377-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aFPY+Yq2iuGVCGcFbOJuvZxJKLYGvnkyKu68D+b+vvLOCysMYFzx/5i1T7HjP4snkEAVIUBvtGuUHtzGNk8F5NK+jZjhjt8s5R5lxSd6w9x/Cb8NAUdG/1XU92/FLSylmGJul9uguBFJmcFlt28KgjqKLhIz8xvPGfQNo+xZ/hhAVfGU60iBETa7gSm3Z0WI38R8Z8vKPCo8GwWhBDHfXD5aTflcRVDyKh+pEkvoNl6N0v93MzWQJKwKUhe4yiDQDoqI1+xGN1PjbZnq2Fc38mfa/E/8+SfBCA+HLoktSusw1jtkXFmZR0mKec4J4FcIo7R1eDpmbycDRbWh9TnL4g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YP+tIwhw5jxaGWVsbf50GL1A5iL5JpmAlXqycfYObto=;
 b=LhTWEkJh8xyDTS/LnbtrUYh8I0s0s28pRZ0owrd250r68bHEcTvdEIGAUBvilwYVm/JxKTJ071O6J4EL3vw6CZfwP3h1YzTaWHZn5m8pliSRh33RcSrk1Lfq4ajN8WMprwsFtvFIlPZ53am4PDt4W5dvAvwONxCiGsSl3G6kFCiOXAWHi6xtvOgJ+MeEP6OzjPzs3SkBn1qsrAAxX10KZfbUL3YUPyoDIkyV3Ll4qI7mw1kO6m+yX5USbI+FEjvbN4MVz/x7NObNmPRd1Cpv7z9L0G8zh3/K8PvfPhUmYcB4sR7npcoshV4r/HaOvbaupUuDJrbaeQuc8NdBM4MVtQ==
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=YP+tIwhw5jxaGWVsbf50GL1A5iL5JpmAlXqycfYObto=;
 b=hy7KN+A9z15EfVPw8vx/K1qQ8AhP84qr7X0Dc6aSdpOoFVsp5yNgxzxfkhSQ0M5oe+qs5E4RRh4lHoTgNe4y1WwImqW0QTOBCMi+S/AFHLqIzjZbWnyo8oa+jij8TXGBUKBeF5CDiIi4y4SlM5kfUSXvv9PXv/j5FiBxK6f9RkM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 05/12] x86: Migrate spec_ctrl vendor checks to cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:27 +0100
Message-ID: <20260206161539.209922-6-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3E:EE_|DS0PR12MB7726:EE_
X-MS-Office365-Filtering-Correlation-Id: 4c72a1d6-961c-4d98-fe78-08de659b06c5
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?XwxmNnIoYzGPImCyyC+6VqnvgczSz/ktuISLVf6Ouz/iWn1TD8i1wBkN9DLq?=
 =?us-ascii?Q?MQbJka8jnmCliLuUGb0Lo9StNv6aRx9R2rG1PCm6b9GcsDA64e4G/mfjSBD3?=
 =?us-ascii?Q?dzWwQg6z1B5ZHqLhnEggj+2DDbGSWywproXQ7II0ur1/7EPXXVz8OnxV4WSz?=
 =?us-ascii?Q?FTxS63Sz8YE/MsckXFHG42bqm3zEZ+btl9EgLKb2xt/SWhzT8PkUSgi3+MLy?=
 =?us-ascii?Q?kkaAhDt8nmk7o4O/pYeSVdqg38WbwU74fXTOuBh2eYDI0KXgMkDIz7KiQEFM?=
 =?us-ascii?Q?sHPlX3/8rNJPdOdTPusez3U+g2pyEfjMndoQD3Zq1lW6QPyx4VR0yPGSNs3D?=
 =?us-ascii?Q?efrRmAQTB8+m8UHXP+UImcjCqve4OMgfbxO/sD40XpOLYN/2BlUb5f99qvbo?=
 =?us-ascii?Q?9VaDSj2eTAOLqCF2JbhvYCLapWid0Xeo8JkspGR5bXuBckZBGBo783dGnHGn?=
 =?us-ascii?Q?1VJdXXPRZ8rXjXcHkv45CV93Hgdy6+O0+C5voPz1dMWhOqjb+Iy43+wQjFz1?=
 =?us-ascii?Q?iAFNq3XwCj6J6Ra5SEfYe391RJxZua7DcDBsaOinbUh2s7arC++ADb/32PTy?=
 =?us-ascii?Q?gmBTpBAcNGdlq+RALJG6bUv4qCGTgWyM2xE2oNFXOs946BomUbjlKqYyUzwk?=
 =?us-ascii?Q?9eVezztFnq+nwmMQYLpvOc0Pllh1cZBGfsterDn8RVZOJvpCPIex0k80RTDF?=
 =?us-ascii?Q?sn6GCjTehGL4ZjnW1Aacm9+kDQsbsy3d2a7kPQR/9HK5U9vdsO2kKqfDw8X+?=
 =?us-ascii?Q?hOAv8olp7WsTexdwb+RQeJHu80opXywuPZQqNjc2Uy+mNYPG7KMN74aqOXii?=
 =?us-ascii?Q?a7OhnJryTGIjJSQo7eAwbnfQ98AJ+xESRB0vKuXgGYGGZ9B5NZOEV+bBhrVB?=
 =?us-ascii?Q?dEfmx9moPe6GiBhPDsTugqYl3kIUvT/og44XSXClyu8ZngTk1r6O2S68zkPq?=
 =?us-ascii?Q?7pf+Hkh1dSgvyD6N8LkIIrtDB3b09uXJe0sI0f4/G/ZhMWlvV04Y6ftUl5m8?=
 =?us-ascii?Q?Uc17vymN+2lV+z/vQVAqEOuS/oi5CBwbTuuCoOUTO4Y453kAR7C9zjlM513j?=
 =?us-ascii?Q?O/Cir9Jvs7uD1EL1PhpWLD4yeGEcNZ8EuP+QabnF9fhPjFHQgWDAEeGCe1Ee?=
 =?us-ascii?Q?d4+8gxMlNv+m41HwsgdoN9McJf6Uqki30Z2ep31vS5fDjBQ+gJiGrfAPvif0?=
 =?us-ascii?Q?oZxv9GgiEBKk3Cwy370mMXWfzL1xdeL/PhwfLf+/A4qlasHNrqg62/FCg8rX?=
 =?us-ascii?Q?5FeCA52RE/huV7E0W0Lw0pTmrnqEfRRys5oYd0qN6jAVOMzjjWMsHANQT/XZ?=
 =?us-ascii?Q?ODicbSpb2JfEyeGxTuurX7TUgTTt8PbmXRGIxKk0HY0Im8IQqWgzjWQYQ43Z?=
 =?us-ascii?Q?A+BCLfSFnXaR2y23TXEf1dFtbsuXBVhQzT8+8EJaDFuRcK34OSrdeoAMouHU?=
 =?us-ascii?Q?R/9DcCMU3BWbAkIXIKF8yn8xcCvxNWu1YGa7QQGBmi9xY72b/Ks0kwhf5Xdl?=
 =?us-ascii?Q?1rUACWDq7m1tuqSAMBJmoSt8y+g6954GlgbbR0NSIn/aUPfZLoucsmFE2Sud?=
 =?us-ascii?Q?pYp7N+Sq7fNZoZl1lTawV3CpTmhlgvMLFXd8oPd+8rdiBzOuIQkhUX0AMozv?=
 =?us-ascii?Q?5dpzWBQmaRyBwFi6hq8yrWMycrhiA/89xE2K/uqqnUjUC6jqC9azLjMZQs6I?=
 =?us-ascii?Q?t9/ZjA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mq8xoaZmAGblaIWjy9T6IzYe0RdEQVSP/o6xT6+StldA+OfQw30jYq7Hixz6X4mjYLBOONJmU70iOr75/G9sqc9Trfkl9/Z9NsD/JhD/nk3m3r09ORsBFMyf8rI1vJ82EcZcoCPIBifZUDKdYBMtm7FCUILgBQIrpcfGhJfCM7Noca/Kgnxzl80+ASs8Eg26a+YZKXYSHRGx7H0DPfCNtOS+8YdmeEQDLiJ9a2q5vUZK9QY8P7ywYbqO8NkvtNk01e/ciPOtkin4su3zsNkBOY6aJdRCxKfqwyfnbQAzFDrL0fXLqiUGXw2I/D4pBrkg/9SGCHOQ9hGZUg1iWWXNHeJWiPD7LYxRClbj5I1UrQxUBL0Sxr4aU+vigGga5WRSK93gzqmXlzEK8gHStqe9P4F9Z2wZeHAx60mA6lQEX7mP/8+izds2hTB66LuCp47h
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:04.0467
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c72a1d6-961c-4d98-fe78-08de659b06c5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7726

This is the file with the most dramatic effect in terms of DCE, so
single it out here.

On an AMD-only build:

  add/remove: 0/1 grow/shrink: 0/5 up/down: 0/-2968 (-2968)
  Function                                     old     new   delta
  opt_gds_mit                                    1       -      -1
  symbols_offsets                            30776   30772      -4
  symbols_sorted_offsets                     60712   60704      -8
  parse_spec_ctrl                             2321    2307     -14
  symbols_names                             108031  108016     -15
  init_speculation_mitigations                9714    6788   -2926
  Total: Before=3876849, After=3873881, chg -0.08%

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/spec_ctrl.c | 42 ++++++++++++++++------------------------
 1 file changed, 17 insertions(+), 25 deletions(-)

diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
index dd0413e1fc..246d8895f1 100644
--- a/xen/arch/x86/spec_ctrl.c
+++ b/xen/arch/x86/spec_ctrl.c
@@ -388,7 +388,7 @@ int8_t __ro_after_init opt_xpti_domu = -1;
 
 static __init void xpti_init_default(void)
 {
-    if ( (boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) ||
+    if ( (cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) ||
          cpu_has_rdcl_no )
     {
         if ( opt_xpti_hwdom < 0 )
@@ -712,7 +712,7 @@ static bool __init check_smt_enabled(void)
      * At the time of writing, it is almost completely undocumented, so isn't
      * virtualised reliably.
      */
-    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL &&
+    if ( (cpu_vendor() & X86_VENDOR_INTEL) &&
          boot_cpu_data.family != 0xf && !cpu_has_hypervisor &&
          !rdmsr_safe(MSR_INTEL_CORE_THREAD_COUNT, &val) )
         return (MASK_EXTR(val, MSR_CTC_CORE_MASK) !=
@@ -738,11 +738,10 @@ static bool __init retpoline_calculations(void)
     unsigned int ucode_rev = this_cpu(cpu_sig).rev;
     bool safe = false;
 
-    if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+    if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return true;
 
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family != 6 )
         return false;
 
     /*
@@ -938,8 +937,7 @@ static bool __init retpoline_calculations(void)
  */
 static bool __init rsb_is_full_width(void)
 {
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family != 6 )
         return true;
 
     switch ( boot_cpu_data.model )
@@ -966,8 +964,7 @@ static bool __init should_use_eager_fpu(void)
      * Assume all unrecognised processors are ok.  This is only known to
      * affect Intel Family 6 processors.
      */
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family != 6 )
         return false;
 
     switch ( boot_cpu_data.model )
@@ -1033,7 +1030,7 @@ static bool __init should_use_eager_fpu(void)
  */
 static void __init srso_calculations(bool hw_smt_enabled)
 {
-    if ( !(boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+    if ( !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
         return;
 
     /*
@@ -1099,7 +1096,7 @@ static void __init srso_calculations(bool hw_smt_enabled)
  */
 static bool __init has_div_vuln(void)
 {
-    if ( !(boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+    if ( !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
         return false;
 
     if ( boot_cpu_data.family != 0x17 && boot_cpu_data.family != 0x18 )
@@ -1137,7 +1134,7 @@ static void __init ibpb_calculations(void)
         return;
     }
 
-    if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+    if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
     {
         /*
          * AMD/Hygon CPUs to date (June 2022) don't flush the RAS.  Future
@@ -1222,8 +1219,7 @@ static __init void l1tf_calculations(void)
     l1d_maxphysaddr = paddr_bits;
 
     /* L1TF is only known to affect Intel Family 6 processors at this time. */
-    if ( boot_cpu_data.vendor == X86_VENDOR_INTEL &&
-         boot_cpu_data.family == 6 )
+    if ( (cpu_vendor() & X86_VENDOR_INTEL) && boot_cpu_data.family == 6 )
     {
         switch ( boot_cpu_data.model )
         {
@@ -1358,8 +1354,7 @@ static __init void l1tf_calculations(void)
 static __init void mds_calculations(void)
 {
     /* MDS is only known to affect Intel Family 6 processors at this time. */
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family != 6 )
         return;
 
     /* Any processor advertising MDS_NO should be not vulnerable to MDS. */
@@ -1469,8 +1464,7 @@ static __init void mds_calculations(void)
 static void __init rfds_calculations(void)
 {
     /* RFDS is only known to affect Intel Family 6 processors at this time. */
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family != 6 )
         return;
 
     /*
@@ -1535,7 +1529,7 @@ static void __init tsa_calculations(void)
     unsigned int curr_rev, min_rev;
 
     /* TSA is only known to affect AMD processors at this time. */
-    if ( boot_cpu_data.vendor != X86_VENDOR_AMD )
+    if ( !(cpu_vendor() & X86_VENDOR_AMD) )
         return;
 
     /* If we're virtualised, don't attempt to synthesise anything. */
@@ -1659,8 +1653,7 @@ static void __init gds_calculations(void)
     bool cpu_has_bug_gds, mitigated = false;
 
     /* GDS is only known to affect Intel Family 6 processors at this time. */
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family != 6 )
         return;
 
     cpu_has_bug_gds = cpu_has_gds();
@@ -1754,8 +1747,7 @@ static void __init gds_calculations(void)
 static bool __init cpu_has_bug_bhi(void)
 {
     /* BHI is only known to affect Intel Family 6 processors at this time. */
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
-         boot_cpu_data.family != 6 )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family != 6 )
         return false;
 
     if ( boot_cpu_has(X86_FEATURE_BHI_NO) )
@@ -1878,7 +1870,7 @@ static void __init its_calculations(void)
         return;
 
     /* ITS is only known to affect Intel processors at this time. */
-    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) )
         return;
 
     /*
@@ -2181,7 +2173,7 @@ void __init init_speculation_mitigations(void)
          * before going idle is less overhead than flushing on PV entry.
          */
         if ( !opt_rsb_pv && hw_smt_enabled &&
-             (boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
+             (cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
              (boot_cpu_data.family == 0x17 || boot_cpu_data.family == 0x18) )
             setup_force_cpu_cap(X86_FEATURE_SC_RSB_IDLE);
     }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223511.1530974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVB-0005y9-Lf; Fri, 06 Feb 2026 16:16:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223511.1530974; Fri, 06 Feb 2026 16: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 1voOVB-0005y2-II; Fri, 06 Feb 2026 16:16:13 +0000
Received: by outflank-mailman (input) for mailman id 1223511;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOV9-0005HU-Pd
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:11 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 239fb4e2-0377-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 17:16:06 +0100 (CET)
Received: from SA1PR04CA0005.namprd04.prod.outlook.com (2603:10b6:806:2ce::14)
 by LV3PR12MB9093.namprd12.prod.outlook.com (2603:10b6:408:19d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 16:16:02 +0000
Received: from SN1PEPF00036F3E.namprd05.prod.outlook.com
 (2603:10b6:806:2ce:cafe::34) by SA1PR04CA0005.outlook.office365.com
 (2603:10b6:806:2ce::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3E.mail.protection.outlook.com (10.167.248.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:01 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:00 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 239fb4e2-0377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aRxQ6yAe1818+J4I+sHXFyvZzfwUyY66oinUDS4T9DpKe2gkHtYXncbbaIuKX6F7kmbuyAtF4IdclZuUkwwJme36D0/KhM5FA6rWX5FQgDw7mpINWuK8NYAFmsI/3/P72gfDbXFgGJgzqoAEELduEyYbzG+XcYqOrbS3LwBylNNTdpvi1pfXFA+B5Vx0xM4R+qdNVuzVWVWqmtoSrromM+geD7oU2xKuoUzt+86SIk2C2kxCWJ+xfLGFMakaUgWD2Evn8DDtpQ4HzdlC19c2L+xmWxTxkxPPRa6a4Ne2zB8c4DkNeRl9ewnj86w8YRuUWsmSqWm3mWtMQm30E2Xaag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3XqRfkRYraueuo3h0D16mjrku9u0GK6eRvjfilF9NFM=;
 b=ELk9Hu02OLTU6CxxZ+0kfq8vUHhPGEJHUd4p4UyI5oZ6k0+L/F8TtgDQy7UuNvZ70KrlE/41OExBqpA3D+bg9FNeeZu1AsjOFpRXBsgGT5fJTHPLlYv9Lodtu32d4LHqaujLpRaCcX6Q6hA/jUv+lZuLIokkupau7z9WjcSSQY66gE3pR+jqI3/I+3NkjYEM+aPlTY4ybvKbz0LzmqkLUAFHrYkPPAh1wYEglh7D1BHg1SG6eMeCIS2zf9mRiv9Q2usWiK59SpYeuUVq60HEJwGYwNCYqTGd4UmCrzRG8c1f7cPXzK8hY4mC5tRMuAEL7LJXfFvlYYUpOMCysbxsPQ==
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=3XqRfkRYraueuo3h0D16mjrku9u0GK6eRvjfilF9NFM=;
 b=zYJ/eu6LSpsz6bl43V+uQ+9hDGo9pTCiN9cOxquqm8ASrOH68yGVf2hNGEJTSH1ZKhct8ogetR9NpUv6ym5LJFE9QUqlPRpfUN5206qMcBsqhGH4W2FsahzxtGpgv6R84MiUfVlL1iR0ya0ZRp4dCoRegG8N+DuFSHyGHPIjqLM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's CPU vendor
Date: Fri, 6 Feb 2026 17:15:25 +0100
Message-ID: <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3E:EE_|LV3PR12MB9093:EE_
X-MS-Office365-Filtering-Correlation-Id: 17db9e9f-2f58-4aae-6f9e-08de659b0583
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?18fERMQhuiiD/6WQBkxfyvj+1suLtedGR2BlGQcTn33+IUtevwEBQ501UM6e?=
 =?us-ascii?Q?HoWdlaOJSonptG5yU4fuZizmgvguzhkmFAuZrRMchEY5I5+3eUgF3Xff2uXR?=
 =?us-ascii?Q?+9y31dLoc+XNJrB9DuaUUIzogDT0E7hykk3c4mrqKRtoj6hHsLxhIYnDCE4O?=
 =?us-ascii?Q?pMPPg1Uywx7iPgy5oTYdNXtqiu4SAe3tFVtIwknE31lykvoFjj3S/62vof15?=
 =?us-ascii?Q?ZARhOebDCdCFwifYyCweHejnr8qyBCyUKoK9AHk2XfRQ5+szD1k7N7E+bAOJ?=
 =?us-ascii?Q?Il/S0TQf3CcJPI3lYR4xeQ15fTn3rm1IKkXYxHrLPRksKYHiFJmQYB1PCDh5?=
 =?us-ascii?Q?1SgyfhE2TR7SBdzhvzoJBGDK99Z6kc96LX5BhekWa61Zz+yJu2590+XC9jAb?=
 =?us-ascii?Q?idOYNEVx4U7AUFJUFQYC25agYA/G8ZF+yWg5xwcZzZQw76MbII60XCG4aGMB?=
 =?us-ascii?Q?Xi+mOjFr7ZEfDA+nnCQbCVqaf53MWLAsJXo4YlYVPUwcJB45pOcP//l9tVJ3?=
 =?us-ascii?Q?utJEfLWa0x2wLYdR6Goc2UA+iv3F+R02ZAHcu1Y4S3KFAIqGMCK+OWqpwA98?=
 =?us-ascii?Q?2NdBniD2HQixHtgC8R7NSPbtznDnYu2U507h66CVwHxtc/6ObV5g6oKTYhUD?=
 =?us-ascii?Q?Ib3zZYXJmP8lWLUThqo++Z3+P+ycRWS36aoyqoGqlR3w471gQZJEvPgGrEkr?=
 =?us-ascii?Q?GW/aTtE8NCPa8AJ2Ou2n4vwnJNe5V8dYSwkfnaky4wvQ0e0CIMUvWWhOGzXv?=
 =?us-ascii?Q?ZEaCol4AYIuUOdikEZ3CLVYMZxO7Ljr9P/LXsx5xYMFFKXaLD4KJ8uhPgiC3?=
 =?us-ascii?Q?JIPCJ5Ng7C7zmBzPRpyK7D7HrbKhIibaGjUWXw3lfTjmA7TfcJNjEzfVDXv2?=
 =?us-ascii?Q?a9QL/2yxiMl0mOxBfBf7lpdbJWQEXLa0Dt86qUTyjNpeRx4q6czIJ9Nbw+n/?=
 =?us-ascii?Q?8KFIXW+7JxdIAUY2Om+EMndT4VJPlsgzUHEx3PzWZDFL7TLdUAXv/8tvEJ/H?=
 =?us-ascii?Q?tjm29CF5A0sksSqnEpcOIlgAfnr1iO1t9NZ/X9/0STbmCWqt5F/ppHg4iEVQ?=
 =?us-ascii?Q?OuOC1rXB+mDR7GdJt63nO9xpoDqxvV2zJEKs88PcaxW0aDSmEN1FFnVbaFmL?=
 =?us-ascii?Q?J0AJUppiadoWVKr6BbTfBONQ1+v4lN3/FUwE5Qt24WGBpg5tWsJnM9XEyhmm?=
 =?us-ascii?Q?mWYNO4d4UFgKW1xElqmtwMPciR+HFzV4lCkHu6/uOd8YlCmGjKlbnfGN+8ks?=
 =?us-ascii?Q?kNCMkg0OfpFkzePU3dItokoqzShGBm+SJis9PuHlVtnMX58Q0A4CcSIX6LiY?=
 =?us-ascii?Q?HgV24BNJpj+Ip7dAFlk4E59iGkHpAevG9Bs9xVLfiyHQwRNRDEmfmG2B7XEh?=
 =?us-ascii?Q?QsibPnJILilek5CU1tTTmLwVkVItoSevSzxjhzcRvrgP3GRGEPMjyXX6pxEh?=
 =?us-ascii?Q?fEGlkvXGKdInUi5DhSoKepjIQAprRwxoiPF7su9g8wh2DjoWDUo7hVON9p8t?=
 =?us-ascii?Q?KdOINbJ4TMUyfjEZwVhd+od+c+PMghvr/ZMjg55zhIIN9mf5X81ryJUfpWL6?=
 =?us-ascii?Q?cmufzbg3bZmK9lVjGWbI2aav6zmN08J6KkwtyzYyJxaEj1xn3ktfoLz5flGP?=
 =?us-ascii?Q?fLsRMZFN0lHE2+wQvvYR+Qds4A4cxDIk8Wfa2NgdmagY2HxqV71lSOE4yG5p?=
 =?us-ascii?Q?kYqXOw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mZAyRuj5TFPP0OU1r5Y+bt0SyYxuwGmzx5X7vGzc0qfiXyaDPOdORLRyo87TI5fFviM0j5zxAyApYJUoUXbikSZfeVxpJie1Ykofrpbwk4N49jgEk4YGgpl/zhusZ0XZxXr6N2WWTPWtTrxMLutc2Mihy3Sv6n6yo5ejbj//h/pdNmS7DyOGeLKC19EbTY6/GEAPZHyGrmtBVvRxP3jkDeiTz/D3Ok9792sRi1Lg0HluqMqAU7B+9Oi5+KZaz5kv9Co0gzdVYrcQOHG8C7fL+9cjshIFav2NcVv3RITqk/WhyqzUBPR215uSYoP0lKqDmGEL6rr2iQmF3R19NF8pTzYPi5FwseCvm/6KnjgnfHFQKPfIDxNhC8CSNmsAKbOd65+mtNQ+3zsBLwW4LmYC4mFONzd8l4kDYpKYQvA//XYYgBbE71S6tq+CdOdUw2gt
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:01.9325
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 17db9e9f-2f58-4aae-6f9e-08de659b0583
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9093

Introduces various optimisations that rely on constant folding, Value
Range Propagation (VRP), and Dead Code Elimination (DCE) to aggressively
eliminate code surrounding the uses of the function.

  * For single-vendor+no-unknown-vendor builds returns a compile-time
    constant.
  * For all other cases it ANDs the result with the mask of compiled
    vendors, with the effect of performing DCE in switch cases, removing
    dead conditionals, etc.

It's difficult to reason about codegen in general in a project this big,
but in this case the ANDed constant combines with the values typically
checked against, folding into a comparison against zero. Thus, it's better
for codegen to AND its result with the desired compared-against vendor,
rather than using (in)equality operators. That way the comparison is
always against zero.

  "cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)"

turns into (cpu_vendor() & X86_VENDOR_AMD) in AMD-only builds (AND +
cmp with zero). Whereas this...

  "cpu_vendor() == X86_VENDOR_AMD"

forces cpu_vendor() to be ANDed and then compared to a non-zero value.

Later patches take the opportunity and make this refactor as cpu_vendor()
is introduced throughout the tree.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpu/common.c             |  6 +++++-
 xen/arch/x86/guest/xen/xen.c          |  4 ++++
 xen/arch/x86/include/asm/cpufeature.h | 27 +++++++++++++++++++++++++++
 3 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index ebe2baf8b9..6f4e723172 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -328,7 +328,11 @@ void __init early_cpu_init(bool verbose)
 	*(u32 *)&c->x86_vendor_id[4] = edx;
 
 	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
-	switch (c->x86_vendor) {
+	if ( c->x86_vendor != cpu_vendor() )
+		panic("CPU vendor not compiled-in: %s",
+		      x86_cpuid_vendor_to_str(c->x86_vendor));
+
+	switch (cpu_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;
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index 77a3a8742a..ec558bcbdb 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -57,6 +57,10 @@ void asmlinkage __init early_hypercall_setup(void)
         cpuid(0, &eax, &ebx, &ecx, &edx);
 
         boot_cpu_data.x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
+
+        if ( cpu_vendor() != boot_cpu_data.x86_vendor )
+            panic("CPU vendor not compiled-in: %s",
+                  x86_cpuid_vendor_to_str(boot_cpu_data.x86_vendor));
     }
 
     switch ( boot_cpu_data.x86_vendor )
diff --git a/xen/arch/x86/include/asm/cpufeature.h b/xen/arch/x86/include/asm/cpufeature.h
index dcd223d84f..10309e40b6 100644
--- a/xen/arch/x86/include/asm/cpufeature.h
+++ b/xen/arch/x86/include/asm/cpufeature.h
@@ -14,6 +14,7 @@
 #include <asm/cpu-policy.h>
 #include <asm/cpuid.h>
 #include <xen/lib/x86/cpu-policy.h>
+#include <asm/x86-vendors.h>
 #else
 #include <asm/cpufeatureset.h>
 #endif
@@ -116,6 +117,32 @@ static inline bool boot_cpu_has(unsigned int feat)
 
 #define CPUID_PM_LEAF                                6
 
+#define X86_ENABLED_VENDORS \
+    ((IS_ENABLED(CONFIG_INTEL)    ? X86_VENDOR_INTEL    : 0) | \
+     (IS_ENABLED(CONFIG_AMD)      ? X86_VENDOR_AMD      : 0) | \
+     (IS_ENABLED(CONFIG_CENTAUR)  ? X86_VENDOR_CENTAUR  : 0) | \
+     (IS_ENABLED(CONFIG_SHANGHAI) ? X86_VENDOR_SHANGHAI : 0) | \
+     (IS_ENABLED(CONFIG_HYGON)    ? X86_VENDOR_HYGON    : 0))
+
+static always_inline uint8_t cpu_vendor(void)
+{
+    uint8_t vendor = boot_cpu_data.vendor;
+
+    /*
+     * const-ify the CPU vendor if we compiled for a single vendor and there's
+     * no boot path for an unknown vendor.
+     */
+    if ( !IS_ENABLED(CONFIG_UNKNOWN_CPU_VENDOR) &&
+         (ISOLATE_LSB(X86_ENABLED_VENDORS) == X86_ENABLED_VENDORS) )
+        return X86_ENABLED_VENDORS;
+
+    /*
+     * This allows the compiler to know more in its VRP pass about the valid
+     * range of `vendor`. It enhances DCE by eliminating impossible vendors.
+     */
+    return vendor & X86_ENABLED_VENDORS;
+}
+
 /* CPUID level 0x00000001.edx */
 #define cpu_has_fpu             1
 #define cpu_has_de              1
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223512.1530978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVB-00060j-Ug; Fri, 06 Feb 2026 16:16:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223512.1530978; Fri, 06 Feb 2026 16: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 1voOVB-0005zu-PF; Fri, 06 Feb 2026 16:16:13 +0000
Received: by outflank-mailman (input) for mailman id 1223512;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVA-0005HU-7H
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:12 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24ffcf26-0377-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 17:16:09 +0100 (CET)
Received: from SA1PR04CA0005.namprd04.prod.outlook.com (2603:10b6:806:2ce::14)
 by BL1PR12MB5804.namprd12.prod.outlook.com (2603:10b6:208:394::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 16:16:01 +0000
Received: from SN1PEPF00036F3E.namprd05.prod.outlook.com
 (2603:10b6:806:2ce:cafe::e6) by SA1PR04CA0005.outlook.office365.com
 (2603:10b6:806:2ce::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:00 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3E.mail.protection.outlook.com (10.167.248.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:00 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:15:58 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24ffcf26-0377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c9BY5tQwZsNpcXfl6ExoSMbCGHiP6/s6cUSwDJmeltiOQvEMjcr2JlFAejwkt8K+mqw2qBmi5pwxKm2GBJHHwStqiuhjEJKjNFgbrMBB3JPp31I5Jfa7O5AweyHHaPm7HdfKruwQWCM6opd31bO7amdJ8064fQwIe+ACVLcmTmNJS/nfBOGsAPMCoJr/UAozaoAXLV8S7hvtuaDACrsz6iJsVuAQRXJqralQnlsk/IC5ddTZSkWWsP2YgkbPHhimsW7gJ3HOT5H5hfn8zsxn/az8YXFxRwN7s8LMgZbwQYmschka63Y/PUgsgM7batIw6Q2YMj9rsqmh6IUVX0N+3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bOhbQwb+qNaHaDSvXmZVl68QN/9CpRrOxtwZQK4VBCk=;
 b=QwRcO5WlU/zsKn7ShgRXdN0dTzRn3kQjVE1hLKo7rOXfmbyQLtERNSGa1vMibk6mvFxINZyP6t80zpNCxy7D9iFXLmhk+VYsN6JIzWtqpwj8LS9slGZKt/mXa4VuAsMNzE37PqrTyLIttfu/PQgZeNc3bI2oJgYpNX5HTO+KLyC/tGeY4s6aZISTGEycQlr+RUPGuhiwScbXtHUOUO0LfTLuq6GKHTTPeBpqjix/qTEWh015QSFaIstrHgeLSsF9JIPUavbXN+s3yOTabcoMq/uzrJAf3JJZMNsmBWgPyH1veDGjhJyhnd181/RO6CE0xiRmD9nZqOLAeJ34M1h11A==
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=bOhbQwb+qNaHaDSvXmZVl68QN/9CpRrOxtwZQK4VBCk=;
 b=jjnKdtnQBlmdtBvARc8qjHmCU0NGlTHjB4sU3Y+6OuFppZkSIF9qSQr80QRy3bBkMgMYrZHsttpgbfLZrcpwJmqOo0dvJCvYCsaU+7TmGg1hGFsIhiCxLptAuZPpFc6k0PaFJOjXXAEBKsfGRr8nBJOvuWNvA2//F+N5AaIu86k=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 02/12] x86: Add more granularity to the vendors in Kconfig
Date: Fri, 6 Feb 2026 17:15:24 +0100
Message-ID: <20260206161539.209922-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3E:EE_|BL1PR12MB5804:EE_
X-MS-Office365-Filtering-Correlation-Id: 19df79fb-40a1-4c05-7243-08de659b0489
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?qTZUjAX3HWTuSJRaXlb5exbR8cfpPfzKkabqqJI+dcGggA3z8b68nFExkYkp?=
 =?us-ascii?Q?cHCqL5Mm9UYvoZT2ZTM7F8b6WL9IlJQJCGmFYicwlAXVjj8PmlyW4nyirlAt?=
 =?us-ascii?Q?GKTyE5NpZxOPjfK3lKXACzv7KYK0N3SYx9HXBwp86Oc3eHOVIIwrRLzMSBJ0?=
 =?us-ascii?Q?OTTgO3w0mPv5/jL8sFWaKFqtt/V9SDftzF8UgO1nW5fjZiQe0IPaFKW6chgS?=
 =?us-ascii?Q?R9ceQIgyDFhEdz5rp8S8+QZMiAjtdTVIxy4dM5m/YgKd6SAPF3KIwzfDXArM?=
 =?us-ascii?Q?VgF6MLUVU6W/+7skJtMUz5GnpH7tSM+jFJbYZ1LzH4YApcAEnTMacFyiphax?=
 =?us-ascii?Q?JCEqWPdSCni4EzbAM7AyRk2dWbv9WfebS4M2s1p1JzsbnvHEIlRnHvEfaYe0?=
 =?us-ascii?Q?KSGS1miIXEsGbJRnPiJ7JAeNhu4Sksh/I1krD4vnoBG9c8MNG+amOpXyBzvT?=
 =?us-ascii?Q?ILAs8N2X96wIvOeoXGkChAbdhGFkzUoMmNCI5a9sUEi344eRZVB2cS2VVMRd?=
 =?us-ascii?Q?r5+BndVNW/94Azo/O2BGXh0PvGMhnuVPSYGOPw9KhYymzy1MUvqghkqEbZmR?=
 =?us-ascii?Q?Px4MhJjBIuRgghyYnbnSSDSHabKsgfcFNUiSY7oA82lMyX45dRGUu3nceOm0?=
 =?us-ascii?Q?1dOHMgHxhquEBlOEUNOhZFZDETfHdu5a9Ng1fYQPZ1JZiExS5+Djze403FF2?=
 =?us-ascii?Q?R3yY/7imieR4h9DP/j7NwadrjlWQMbsoOGphbYrDuc9f0C415O64A77s95D3?=
 =?us-ascii?Q?v7ho24x0hmidf9XfTZ1Q7bjVlw1UI1NxJwUsWattz6AZtM8hD6uKy6v+fPHQ?=
 =?us-ascii?Q?bf2FWGgh/3LtoBHX7npPLILpqDhNjeMu8mPs8Mu2h8hCn/3rroiyMNIFrUG6?=
 =?us-ascii?Q?xgpzLAqKKFFmxhD6dTUbH/ppLX8jS9XaxThmOLz0KBrSl3J3NXpBtmzYbi5q?=
 =?us-ascii?Q?f8WjyqESisqdCDcc/H4/tavp/Zg1zUU5dyfYcZukF+Kx4oMYFZI1I8C4IZ50?=
 =?us-ascii?Q?lzywEFImDnTmLuM97ucKO3djnNpWV8eKAs2k8K8bJ7AnZjoh5WlDJQ/1u50g?=
 =?us-ascii?Q?nyfRAhZ9W8op71N4OU1OISlojzeP+99NmLcNGq7UwWxvTi4TZNTy/DTpwmQm?=
 =?us-ascii?Q?Etz/BEpF49ZEqCL927sibmKS0syU+nKqPqFvBCiJ34piLehHso/WcaYiWfs1?=
 =?us-ascii?Q?54YnmxL2VR8iXM0eaQ9ogtXxsCxjxrMclPZXW814/xJSjwGG0M/U0+B6XHH4?=
 =?us-ascii?Q?hdMvZE9wbOCXQhaNHaObc576VX6N6Raf2n+P0vkOkR4YlcLIPgTXDgw2udcx?=
 =?us-ascii?Q?EIyDcrfu6a2HcxquLll9lRZpBPqy9zPixpBl7vOE8kH7aW78kY/K4y87E02O?=
 =?us-ascii?Q?12JmEvoyhiNo/urfp2+cUC8KGxNRr0XR+qmiEFiZN3dpEWZWR7TJX7y9pgSA?=
 =?us-ascii?Q?AMoNNhv9eN4e1+PWRoBtCGVJgzyyjRlgIAs56qexWC/ImBEid5I1moeu/pnc?=
 =?us-ascii?Q?yGI4i03vW6xP2PNx6oDa0LV8HTKPLTYGqpLEefS761R32vIHCqx4H6M9Wie3?=
 =?us-ascii?Q?qgIHot2N5W47tSD3TCdxyMlbvDYVBwA4gBGnZxPXvOjMlKMC7HwuMHxyzMjC?=
 =?us-ascii?Q?Mwxh0MIvKGPaqHU3kjD92KRtRCIzPBvevmuGND2uNdv9u4HT9rNfltGMyWn9?=
 =?us-ascii?Q?vNaXUA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mOU8ZwLOiXMTD2OVkMiNAWKQkftY535OQ7s87e+nde3u0cGDzRtrdsBZ3bpPekaVtk3iBIrfINvnP5Yvk2z27W2dU4CeUc9yPsylieu9BxrRAU6HqQ++sd61PQqE+FOzK9L0xDCKChxH3ZjCJJEDhggkXki03MthGzehztIjXZsi10eQTCVCVpT3TSwiOoQ/vgjpGic2OCJucmpEixvAywrII063HfI5u4g+GOYx/JnXQt16NiXZH66eWaF8+ugjzyRcWJc4No36AyRL3F7/tX0E++uFBXDM8V64rbXFIh9zjvDDosG5NA/AL7RHjkKCIhswhYvMBq1Q5Xrk5LXTb2sd0WZTj1vi9bi6ZuIBjR+rG0aJWG86NBNbqHER4fdQX4sRJxZ0hgVxaTfQwhdgdyk1M0nGZIYJzx0Jo85d1fEGJRmYWQlB4scsZuClcQyo
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:00.2937
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 19df79fb-40a1-4c05-7243-08de659b0489
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5804

This enables very aggressive DCE passes on single-vendor builds in later
patches, as it will allow most vendor checks to become statically chosen
branches. A lot of statics go away and a lot more inlining will be allowed.

A prerequisite for such optimisation is to expand Kconfig to have the
full set of vendors. Adds Hygon, Centaur, Shanghai and the unknown-vendor
path. Have Hygon select AMD, and Centaur|Shanghai select Intel.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
rfc -> v1:
  * s/depends on/select/
  * s/UNKNOWN_CPU/UNKNOWN_CPU_VENDOR/
  * Removed "if unsure, say Y"
---
 xen/arch/x86/Kconfig.cpu  | 43 +++++++++++++++++++++++++++++++++++++++
 xen/arch/x86/cpu/Makefile |  6 +++---
 2 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/Kconfig.cpu b/xen/arch/x86/Kconfig.cpu
index 5fb18db1aa..f895cfe97a 100644
--- a/xen/arch/x86/Kconfig.cpu
+++ b/xen/arch/x86/Kconfig.cpu
@@ -19,4 +19,47 @@ config INTEL
 	  May be turned off in builds targetting other vendors.  Otherwise,
 	  must be enabled for Xen to work suitably on Intel platforms.
 
+config HYGON
+	bool "Support Hygon CPUs"
+	select AMD
+	default y
+	help
+	  Detection, tunings and quirks for Hygon platforms.
+
+	  May be turned off in builds targetting other vendors.  Otherwise,
+	  must be enabled for Xen to work suitably on Hygon platforms.
+
+
+config CENTAUR
+	bool "Support Centaur CPUs"
+	select INTEL
+	default y
+	help
+	  Detection, tunings and quirks for Centaur platforms.
+
+	  May be turned off in builds targetting other vendors.  Otherwise,
+	  must be enabled for Xen to work suitably on Centaur platforms.
+
+config SHANGHAI
+	bool "Support Shanghai CPUs"
+	select INTEL
+	default y
+	help
+	  Detection, tunings and quirks for Shanghai platforms.
+
+	  May be turned off in builds targetting other vendors.  Otherwise,
+	  must be enabled for Xen to work suitably on Shanghai platforms.
+
+config UNKNOWN_CPU_VENDOR
+	bool "Support unknown CPU vendors"
+	default y
+	help
+	  This option prevents a panic on boot when the host CPU vendor isn't
+	  supported by going into a legacy compatibility mode and not applying
+	  any relevant tunings or quirks.
+
+	  Not selecting this options while selecting multiple vendors doesn't have
+	  any major effect on code size, but selecting a single vendor with this
+	  option cleared produces a much smaller build.
+
 endmenu
diff --git a/xen/arch/x86/cpu/Makefile b/xen/arch/x86/cpu/Makefile
index 7cfe28b7ec..84b060aa41 100644
--- a/xen/arch/x86/cpu/Makefile
+++ b/xen/arch/x86/cpu/Makefile
@@ -3,13 +3,13 @@ obj-y += microcode/
 obj-y += mtrr/
 
 obj-y += amd.o
-obj-y += centaur.o
+obj-$(CONFIG_CENTAUR) += centaur.o
 obj-y += common.o
-obj-y += hygon.o
 obj-y += intel.o
+obj-$(CONFIG_HYGON) += hygon.o
 obj-y += intel_cacheinfo.o
 obj-$(CONFIG_INTEL) += mwait-idle.o
-obj-y += shanghai.o
+obj-$(CONFIG_SHANGHAI) += shanghai.o
 obj-y += vpmu.o
 obj-$(CONFIG_AMD) += vpmu_amd.o
 obj-$(CONFIG_INTEL) += vpmu_intel.o
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223508.1530945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOV7-0005IF-LG; Fri, 06 Feb 2026 16:16:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223508.1530945; Fri, 06 Feb 2026 16:16: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 1voOV7-0005I7-Gt; Fri, 06 Feb 2026 16:16:09 +0000
Received: by outflank-mailman (input) for mailman id 1223508;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOV6-0005HV-4G
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:08 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 227491bc-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:16:04 +0100 (CET)
Received: from SA9P221CA0018.NAMP221.PROD.OUTLOOK.COM (2603:10b6:806:25::23)
 by SA1PR12MB6971.namprd12.prod.outlook.com (2603:10b6:806:24e::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 16:15:59 +0000
Received: from SN1PEPF00036F3D.namprd05.prod.outlook.com
 (2603:10b6:806:25:cafe::79) by SA9P221CA0018.outlook.office365.com
 (2603:10b6:806:25::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 16:15:41 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:15:58 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:15:57 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 227491bc-0377-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=degnmZ/NmJiJxxx5uBAmiFH7zkk8AO2+jWtHJaRbyToKkGnUvct0d3KDz/XmSq+kb5XpCUOjOMmvilsbS09DEXcdp337XQutA7pU9WcG0Q/gIs2g9kMtrwU+JC85hu7u83amXwmN1zGw3pXefSmE4j3ASwfpr33xIzUIwygEZvGZ0tFmPM4QCD+ZN1hkyd7vMn85WNZu6Gs3o0gv7jar3bK5ZX3wLhI/Ah34ULLUa/BQRyL7xdpOzODcXgbWY4Jhrw9PBLovsZlpZvyayEuiRtLMdzDku0vyzSC4cazmA8qNiMRxxZrvwNJB2s/I4yefDHE1NFvv0pSN+yce3gURQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8U/tOhuQz4IEnvv5g6K+uE3NzPZT0JPx1VIr+jwU6TU=;
 b=PL1zkJmmtoAe/siY60mi+hMZFKXySSwUcBjnhH5lLBjN+U0jHvvC7A7QI/YBQg+aoEcSEzbbUPYRDxuGOiHiEl9w/WDvV7b7NhWOdzy3+fNBvILTx6LFd6lDT1c6yFTFGJrCHvYJnyz78cd2hqykn6i/j1ru+m9Xw09dZnnGwYnJj1BXzqFu40+AyESI2n7o+E3eVGvzY+06lNw6uTFb5iaKRqGifay2KZushy/0vrTZocHAtpdhsFMbUkXQCUay9HOKFdk+IvdRcCLV/1abLF5AcimOOETU9gEkC/kttJKB2LK6UthRrfDD6UQ/nHo2dieB6WSKNbezVbOk8yOcxQ==
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=8U/tOhuQz4IEnvv5g6K+uE3NzPZT0JPx1VIr+jwU6TU=;
 b=QHBi/zh1SPcUpp211nnsFR04MTPS4CgLnmxmjlS9dYMQ7b4zgxfjXmsHDAyNydp9Peejx3VHtKj1Kr9MpTRSydp2SnuZq7PJdsvvIo+NnWJxFkoUA62z82VELMp+zCUhBV4LW2KPZIYK483wlS2+s8cbsudc0sYi1HwwsgUBfQY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 01/12] x86: Reject CPU policies with vendors other than the host's
Date: Fri, 6 Feb 2026 17:15:23 +0100
Message-ID: <20260206161539.209922-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3D:EE_|SA1PR12MB6971:EE_
X-MS-Office365-Filtering-Correlation-Id: f2a0cb51-ff81-4503-abbd-08de659b03b6
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?gw/C7mZFMjh5CYgilZE+ZhuCPUZFU/eSGPSzyBEBe/SK/BL0pWKBNVBhsHkm?=
 =?us-ascii?Q?mC7vvFGiu/vOQ04dyQZNMFkxSyEpqzqJ2Cu0vQNDHMn7gDtDvIEnayQdHwGG?=
 =?us-ascii?Q?RMwg1eQ8+2ELvv3nK4cl2WESkpBDhAXeQu7vNlvg1mcrp20k7KwuukkBA4hb?=
 =?us-ascii?Q?YlD59Knok8HH4pHxsJc3C0deG3wRLBV18UwJ9Zq3MdawZO6p3jgvldPTP7TC?=
 =?us-ascii?Q?Ep/dAI0r8+CdVwuNzsgzAVWgOi7t864tArfUM53mgU6qV18dtzybUO9K0sau?=
 =?us-ascii?Q?C2gA2MZ/5d6L3g8PWFJ8I3CtCjJNqLnY1WYVgWWqEeXkxT0eaJAm4BWSLB35?=
 =?us-ascii?Q?1o3TtNrsAPCWbVwQ75eLj3QTXg7jstlct2mKZsegdxbMXMA3/HON9m55Ag7l?=
 =?us-ascii?Q?jTwI1rq6awQdz4hrOL6efte+JITotnT5tc2FD26Uw8/5fLut0JraoPh+oYRw?=
 =?us-ascii?Q?DZk1rmJp3E1t57uf+4ARyoRxX05sOXHaPxsz8pLcw1v1swSObvyK4LlNDCEc?=
 =?us-ascii?Q?6tPkXGsUriBsSszr4o6mVxnqbUy24jGAPMtDrMcfGZkg+YFFoZahg5XBTMX5?=
 =?us-ascii?Q?NUYbz52uwgkYm76r3Ydycj5l1Ifb/pnGiq+anwTgFS48CnScurjZRDksbAN9?=
 =?us-ascii?Q?6stx2qdcnWX8NSYuo4ZUNpR93dd+1R89aOvT3HpeZd3oYWw+enuE7Trnf4V+?=
 =?us-ascii?Q?2A5VuE59X3pt5eSihOaEHf0HmPrgmdtA05hKbSBxyuOJg6f8reHwUzT9DKyu?=
 =?us-ascii?Q?NuJIlkbgVFTMVSbrlAbYUujtszZZNLCxxq/tPtc91Xjlm3GRLVabitKHkE12?=
 =?us-ascii?Q?CF14C8muaRXbWY2SGpqMk3GEN4shimgKuNMThhamt7Ciiw1exX436G9QuwMF?=
 =?us-ascii?Q?6xuyfNEWmn8ZFtT4sdwKitur+PwRud5qIiiqNMEjv7Y5jMtg7TVlhC0XTDdw?=
 =?us-ascii?Q?0r0rFwUUJmCp6Ly9YCv5bN2ERKIpoeKS7JkiUI9Tw6GsUzEBlPAEPcUGCqa1?=
 =?us-ascii?Q?R76Im8QbWqSfOc1+LaKShr8cGXrkmCIerUUO8oefB0N28htlZL2tDxcsXxBa?=
 =?us-ascii?Q?d71XY2d1FJO/AGI3LNlrjR3JzElQQ14l4gZqdRPCaOMsp0RSmbaNnkF37t5m?=
 =?us-ascii?Q?orArhoJl35Hu9N3M1gBwYonvUrW7txOJQgMEVBox6+ueAsEy+UiiyCCR0Vlj?=
 =?us-ascii?Q?ALQPSxbpab+CMGXc0ZmXU4pvLeX8ATKXWkgvhd1D/xQyhl4NXceYs4XwDU9/?=
 =?us-ascii?Q?RTBESNejaPPEopZzWOjgcljOCL9KtILwJU/qnHK8XNCwbcY2+YgXtRlGsMGf?=
 =?us-ascii?Q?i3QELC9GSyz0frCMjc9f9KWJua8PyBc4Ll4QvMavpLJMfCxxN4P8uZb7/xkh?=
 =?us-ascii?Q?mNE7h2TDITPi4tXpfUl3otEZMCKHIg10Zj8tmqFZU09xCb+AZgXSwT4XpY1C?=
 =?us-ascii?Q?1ybTuBqRSAGOWDsTWkOJUb6taam/QH0Fu9x1ILYm2ApCNxX1EWtscC2LuHhH?=
 =?us-ascii?Q?ZiE25bSNzqdPTaN2VuFZMrkKlEaLeiutIsxPTaW0WDijWQ17zt9K1UpBh1IO?=
 =?us-ascii?Q?y2OlkHVTiIsSMS1sMGMC+omIw9n8BbL3DjADlW4JWvGdKh2Q0sS7jPRfeyNj?=
 =?us-ascii?Q?wEtgwYE/5fdZf2dW/3eTE21lPsyDdKG7t1SRqG70JT0caoHnlrDE/rBrcpA2?=
 =?us-ascii?Q?9Bzytg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	YHGuCS2RElm1v7C9ObqPcZd4u2psQH4fRNXiWumvcBtm5HqRCMr/NXsyjsLqrEBz5f6hkUTlMx9df/Nbf4yL5D+vKx+rhHejDvMqW/HyiO36mwLVMcfl/hJhGc5xTQ3Mnn7bCxaLnDNnUhH6TQHTJahEuVO7UC9dYcrhuX227XMb+2lRhZV/+U8IHz2wZ9DObJaQ0KfSf8/d6Ubm/BsZaFl/GLY3lLtpG1lcdwAZddArlWg6VpSUTQXcsxjCiEZaFoFlURY0gbFxoVlzngy9IWqQt+wTVClBT523AQu3oWRY2yqpwbk92V02xN8ceczUQQqe5olboy9BV/pwG4rFXRV2/oDGQW0Aj1ZMEGYEDtE9kTcpuFLzlevaTTocOhvTAh1SubtCNqC8Z5J1fsn0wV/FeUFQvMJR/bnBGZHXHXi6E6rXPE99Im0zWG3ZzhVE
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:15:58.9151
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f2a0cb51-ff81-4503-abbd-08de659b03b6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3D.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6971

While in principle it's possible to have a vendor virtualising another,
this is fairly tricky in practice. Not doing so enables certain
optimisations with regards to vendor checks in later patches.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
Patch 1 from the cross-vendor series. Do not merge here. It's simply for
consistency.
---
 xen/lib/x86/policy.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/lib/x86/policy.c b/xen/lib/x86/policy.c
index f033d22785..079c42a29b 100644
--- a/xen/lib/x86/policy.c
+++ b/xen/lib/x86/policy.c
@@ -15,7 +15,8 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
 #define FAIL_MSR(m) \
     do { e.msr = (m); goto out; } while ( 0 )
 
-    if ( guest->basic.max_leaf > host->basic.max_leaf )
+    if ( (guest->x86_vendor     != host->x86_vendor) ||
+         (guest->basic.max_leaf >  host->basic.max_leaf) )
         FAIL_CPUID(0, NA);
 
     if ( guest->feat.max_subleaf > host->feat.max_subleaf )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223513.1530993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVD-0006Mw-90; Fri, 06 Feb 2026 16:16:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223513.1530993; Fri, 06 Feb 2026 16:16:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVD-0006Mk-25; Fri, 06 Feb 2026 16:16:15 +0000
Received: by outflank-mailman (input) for mailman id 1223513;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVB-0005HU-7T
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:13 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 25279c69-0377-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 17:16:09 +0100 (CET)
Received: from SA1PR04CA0019.namprd04.prod.outlook.com (2603:10b6:806:2ce::26)
 by IA1PR12MB7592.namprd12.prod.outlook.com (2603:10b6:208:428::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Fri, 6 Feb
 2026 16:16:03 +0000
Received: from SN1PEPF00036F3E.namprd05.prod.outlook.com
 (2603:10b6:806:2ce:cafe::b4) by SA1PR04CA0019.outlook.office365.com
 (2603:10b6:806:2ce::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:01 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3E.mail.protection.outlook.com (10.167.248.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:02 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25279c69-0377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Darwn6Xe8Zm+HyJG9J0XxvNTqFTQwD6NdUiQ0l4F4oY/3EL6L6WJ6UXakfAFfS2vGR5qzQv4mgGxueYw/B4Iky8C/JWw0YoJy3FtXO6dwvOcVK2FyLsT8FSZ7nVG8GiaWCMUFXaI7L9Crqx0is0A07plQXUrQpfaXyfuzjCQzaHM3Z5r01hM87gXo6/vsDsVeufQpX2lgDai3lXFFppu8PgF9Kyvx7Oh+AjfC4ZZHZA0A23EUDZNBzN0RxP0KLMyzjNO3oOKW5U8KKO1oGmtkcJnQtTdg5nnPCWiSPW6C1qETSxZYo4HJuYEcZDlOBNj8q5Hn2t2rNIlxBO8d50JqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/WzEwx3Opaugl9/DnwYYjCuWFXIdaNBvH15zMid2uSM=;
 b=cWDxe7tyvFLFW4R7UdO+pwvn68cAn4rooQofcExx56e+PijCJijaWHnnxUxvsWS2mwek0ywHyOJrtur+Ba9Vc/W9f96UY+2B/1m7jPEjc/HaymHDz6sc/Rb6gloFsU7Q9roj0z0PKBPPS4FgOVvN5Fb3TISkoaUKouv8L1mU0y/Ydi33KjOs7aji5hB7lhFKCi5EeFa//wNEw3WMA4s8RzZgrlwOWN4pmAPf5Aps5hTdp/bbHKKgKOKJeNwEjVffhsTn1nXRKi1pFZnwZxX+tspFsLkh0G+R/eZVFeEq8ite9urDBoOtYFPkxQLG5Lik94OqnoELFAHHhwDT8z11Bg==
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=/WzEwx3Opaugl9/DnwYYjCuWFXIdaNBvH15zMid2uSM=;
 b=MR4dMm/OXboALYquRCkfWxkq1xrS8XhKPUCBcl43AHwN72nXwMEDvD+GD2VSW/AkJng/t2miXqRrdp9nZ3tiw5yN08ZnKcZsDDn5U3z7bNNmmFPAfZCxpICkOfjMwUXVj8gKVgpRApBetfQI3kZTh66RSYOvonXBTvcROrFnVXI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 04/12] x86: Migrate MSR handler vendor checks to cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:26 +0100
Message-ID: <20260206161539.209922-5-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3E:EE_|IA1PR12MB7592:EE_
X-MS-Office365-Filtering-Correlation-Id: 352d51fa-d1a8-419c-378c-08de659b0614
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|376014|36860700013|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?mWI2C8ZbBmEMqHFMe4usMFfd1oUOWKAQujrwjc2TFRruSrJlWE+1JKTN4XdS?=
 =?us-ascii?Q?WguFtGGYUTLvAIj2UqH4RGQYVxezC9MmZqKKrjDIVgUpqxgBFGTkYs41l7Is?=
 =?us-ascii?Q?2rxyfpJ0gKLw6DPiyFiaC4xjeG0c9aQPwOb4xv19/GI+2MlhaPI//Lycnumh?=
 =?us-ascii?Q?wyIdipnHv0T6o6DO5Xo7jWbFABaKEjQL8KiQnP5+fc9QIH5OhoMItidvxlhA?=
 =?us-ascii?Q?jQIuYiyli/U7D5inGPLTt04Zhk41fmhNH1LVzEF0uN3RBehAjjnRQq/Wajf+?=
 =?us-ascii?Q?QVkAhQDVaN92rPJ65fdeQ6KVfz1q/m7nsMqrkBFS0KHkKqs1DckXPoPbta1f?=
 =?us-ascii?Q?Fp7ioxFC2rZSL8tl5DHkWCI4+jvublKzzav7gzykL1wMEPEcXd2oc4GY1osC?=
 =?us-ascii?Q?R21iZrFAsi8wjTgpHxs9hBwA0UBRoGJaNFWU9oaxMKErutN5K9kNq1Zqsrb5?=
 =?us-ascii?Q?zY4iwWRQF5qoD/C1n3ouP9h6EW+zfrGl/cCbf8uQtGdbBIcOOLx8oDwpe+ok?=
 =?us-ascii?Q?wzRTvYTPBad4IoRl9O7TsWXXIVImKFqu5+2yjJnYvAHu/oLWNZF65vd1pGu3?=
 =?us-ascii?Q?eW46wAgL1hVaOVmFteUo9sxcU06C6biyHgIQwyoCYyVrg4bFJzwZHWsPbs/O?=
 =?us-ascii?Q?Q2Ve79SDDSKd6nzYG7d5D4ukonewBDKJ2n4u7PB3OEs3BdzRHd91hWUDyDeS?=
 =?us-ascii?Q?H2Us/D7JLcTUZ3k4Jy5C6UqiGCnmR0Y8yhigNAZKCFaC8mkxJUNEvAb1w3cT?=
 =?us-ascii?Q?T2uy++GjkpZXe0BWOUO0lxdwI95608pfzi/mY4Tnzirh94x0rJG2gO7nsRtW?=
 =?us-ascii?Q?Jc1wJyv7rFEBoZXE7Z/hif4mZXe5i9RIaLumz+4rbbeBcsS2quGdzJ7VF2ez?=
 =?us-ascii?Q?Ybb0LytaChLvhGT0Uc9O/+ueHtooX0TGJKGjaPaOJx9lCGhB1RnXgjVzN+rs?=
 =?us-ascii?Q?wJKKzAf+s9LVJDEq0xV3/hwIzRdq/zF4uagVVmNFY41RQxomegjkMNykt0r2?=
 =?us-ascii?Q?3Gj0kA0XJddVJkNUREj+WALFgepfLs0kmXcEo+nepnHSFSxNoqlKQiOvdssq?=
 =?us-ascii?Q?LNnv/xPyXSNbYKgW+sgMdge8Arsz6RlOBHvL+v+qpeFzKn/0KAyvHECYdTbI?=
 =?us-ascii?Q?TWk2CvmU1S6bZD9PbLDxWftmS4GqCopg6wo+d43jWWxyJPuQ8RqjjHK4QNj8?=
 =?us-ascii?Q?aHpgAq+1zEZJ3YTC2V+8al226+6+01DUMG+7TK8+Wrel2LU0FW5OkWM4qDst?=
 =?us-ascii?Q?cgQUQfE/R5akHGtg6Xygxfokkvj7Zq+a+KBBTPisT8ax1egPE3CCFouKwYAO?=
 =?us-ascii?Q?S/hduRJT00h/nu9z2SUGtBueo5qO3DMUzfiRoc6MYQe2Yx4OeIGVHWk6GL1e?=
 =?us-ascii?Q?ka+ui9/aKWveksGDClzSJJsboPmQ1pUTHvaOZ4BsCHUQWYr+eCTJUdrCbzWi?=
 =?us-ascii?Q?ilf/xdH/zOD/G61Dv16Ha0aqz4hyw6auldQsmMjwm9sjhuhy3aibuT1x9rOu?=
 =?us-ascii?Q?+Y/6ghNSpLQBU9pn6CM0To3Cu5MnsUVuxB7+dUEutN9ihk2rQLKYQ0Sbsl4C?=
 =?us-ascii?Q?gWqyrXxOg+yBAU0YQwHAhVqwwvm4DsN5vVfuG8TLD0+F5bJCN3C2HdUE1GTw?=
 =?us-ascii?Q?C3KzD2zcLECUgrQd3jA1xMxhH5oGK876uCk0nvH9h86+csaEIJxa0DmocDgL?=
 =?us-ascii?Q?vw+CRQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	M73vfP6zUQ6/q5afN4sd86CguFxwGltSgeXE771V8kufxzV7Tc+pw3G1GZi8oCBcTcBvoYcv1PnKEO0C7FhVxMHD+KKwiHmvy7fIHRZKi7jfXWvHi0MIqrNIMzy7q1VqopN/3rxe0MTeI70FZMYZKD+4v22KpUXpOdGSls31vtVSTHDhbBJJ+9wz78JNbZp+/gKzY3Hf3NPjN/9a5EEEZgkW2f7WMogbiU+02MVbSQLsFPUB1x5jzoYop3KdTCwGupVuNZxzUaVUb+roWCzzzVYKlgqToKyarl6mWdzh2altffTqhM0ruDT+lHwSbM4YSFCjVk7GJ1dIHfd7r9H1RU4kgKVlOHEpC5NuY5sdy2wtOp2kybGh7u8jeXu4c09PYqeVdlristXe12Yr62aZHX+WhwnACkswkwI4np3E5L2boynuavO+JZ15vUI7gYng
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:02.8807
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 352d51fa-d1a8-419c-378c-08de659b0614
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7592

Many handlers are vendor-specific and are currently gated on runtime
checks. If we migrate those to cpu_vendor() they will effectively
cause the ellision of handling code for CPU vendors not compiled in.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/msr.c | 35 +++++++++++++++--------------------
 1 file changed, 15 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index ad75a2e108..34033c1982 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -157,8 +157,8 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          * The MSR has existed on all Intel parts since before the 64bit days,
          * and is implemented by other vendors.
          */
-        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_CENTAUR |
-                                 X86_VENDOR_SHANGHAI)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_INTEL | X86_VENDOR_CENTAUR |
+                               X86_VENDOR_SHANGHAI)) )
             goto gp_fault;
 
         *val = IA32_FEATURE_CONTROL_LOCK;
@@ -169,8 +169,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     case MSR_IA32_PLATFORM_ID:
-        if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
-             !(boot_cpu_data.x86_vendor & X86_VENDOR_INTEL) )
+        if ( !(cpu_vendor() & X86_VENDOR_INTEL) )
             goto gp_fault;
         rdmsrl(MSR_IA32_PLATFORM_ID, *val);
         break;
@@ -189,9 +188,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          * from Xen's last microcode load, which can be forwarded straight to
          * the guest.
          */
-        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
-             !(boot_cpu_data.x86_vendor &
-               (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
+        if ( !(cpu_vendor() & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
              rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
             goto gp_fault;
         break;
@@ -236,7 +233,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          */
     case MSR_IA32_PERF_STATUS:
     case MSR_IA32_PERF_CTL:
-        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_CENTAUR)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_INTEL | X86_VENDOR_CENTAUR)) )
             goto gp_fault;
 
         *val = 0;
@@ -245,7 +242,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         goto gp_fault;
 
     case MSR_IA32_THERM_STATUS:
-        if ( cp->x86_vendor != X86_VENDOR_INTEL )
+        if ( !(cpu_vendor() & X86_VENDOR_INTEL) )
             goto gp_fault;
         *val = 0;
         break;
@@ -302,7 +299,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
     case MSR_K8_IORR_MASK1:
     case MSR_K8_TSEG_BASE:
     case MSR_K8_TSEG_MASK:
-        if ( !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             goto gp_fault;
         if ( !is_hardware_domain(d) )
             return X86EMUL_UNHANDLEABLE;
@@ -314,14 +311,14 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     case MSR_K8_HWCR:
-        if ( !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             goto gp_fault;
         *val = 0;
         break;
 
     case MSR_FAM10H_MMIO_CONF_BASE:
         if ( !is_hardware_domain(d) ||
-             !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) ||
+             !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) ||
              rdmsr_safe(msr, val) )
             goto gp_fault;
 
@@ -338,7 +335,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     case MSR_AMD64_DE_CFG:
-        if ( !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             goto gp_fault;
         *val = AMD64_DE_CFG_LFENCE_SERIALISE;
         break;
@@ -461,7 +458,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
          * for backwards compatiblity, the OS should write 0 to it before
          * trying to access the current microcode version.
          */
-        if ( cp->x86_vendor != X86_VENDOR_INTEL || val != 0 )
+        if ( !(cpu_vendor() & X86_VENDOR_INTEL) || val != 0 )
             goto gp_fault;
         break;
 
@@ -470,8 +467,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
          * See note on MSR_IA32_UCODE_WRITE below, which may or may not apply
          * to AMD CPUs as well (at least the architectural/CPUID part does).
          */
-        if ( is_pv_domain(d) ||
-             cp->x86_vendor != X86_VENDOR_AMD )
+        if ( is_pv_domain(d) || !(cpu_vendor() & X86_VENDOR_AMD) )
             goto gp_fault;
         break;
 
@@ -482,8 +478,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
          * for such attempts. Also the MSR is architectural and not qualified
          * by any CPUID bit.
          */
-        if ( is_pv_domain(d) ||
-             cp->x86_vendor != X86_VENDOR_INTEL )
+        if ( is_pv_domain(d) || !(cpu_vendor() & X86_VENDOR_INTEL) )
             goto gp_fault;
         break;
 
@@ -553,7 +548,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
          * a cpufreq controller dom0 which has full access.
          */
     case MSR_IA32_PERF_CTL:
-        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_CENTAUR)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_INTEL | X86_VENDOR_CENTAUR)) )
             goto gp_fault;
 
         if ( likely(!is_cpufreq_controller(d)) || wrmsr_safe(msr, val) == 0 )
@@ -663,7 +658,7 @@ int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
          * OpenBSD 6.7 will panic if writing to DE_CFG triggers a #GP:
          * https://www.illumos.org/issues/12998 - drop writes.
          */
-        if ( !(cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             goto gp_fault;
         break;
 
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223514.1531000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVE-0006Ya-0V; Fri, 06 Feb 2026 16:16:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223514.1531000; Fri, 06 Feb 2026 16:16:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVD-0006XG-Ot; Fri, 06 Feb 2026 16:16:15 +0000
Received: by outflank-mailman (input) for mailman id 1223514;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVC-0005HV-PT
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:14 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 27bc9eb7-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:16:13 +0100 (CET)
Received: from PH7PR10CA0010.namprd10.prod.outlook.com (2603:10b6:510:23d::19)
 by CH1PR12MB9719.namprd12.prod.outlook.com (2603:10b6:610:2b2::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Fri, 6 Feb
 2026 16:16:08 +0000
Received: from SN1PEPF00036F42.namprd05.prod.outlook.com
 (2603:10b6:510:23d:cafe::a2) by PH7PR10CA0010.outlook.office365.com
 (2603:10b6:510:23d::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:05 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F42.mail.protection.outlook.com (10.167.248.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:07 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:05 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27bc9eb7-0377-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P/Up0Hp6fakxlzktGJH0t9/n8gGdORpWklY+8KO1WF07o27VJI54MhLbMkRX7VkOR9y5JjhH4Hh2JtG/L7JNFU/NRntHFxW8lW+UHBUrwz24oyRrY82AD9q+VDDm55w2/l3QZtYEJo1MWybyyUs57E9R3w1DE/YnV18qFi94dmcn16o63FCVjINTYPTHfJIwm/NTBsfwYYz4F1uLIPlcpKbM26Fs/SXXQR2OdjfjtRbOHb3SQsMkqox/AHqmA02u+sed+/IwTs2lJmFIYG7FujFup/isO32Q1irOk75Gtjr/BaBO9SY/PRAitvAyvYAWAgK1EecHKIESyq8N8jZZJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rQHgXMWkC3Mm8J2pKE1eUqP0egx2Jwst5WiZnP3oWB0=;
 b=Ks8KuTI4oUYf1+j+FssvYdUB5v5cG7423mzUXeuCxVp1ubWI8gB0YYw3CbuGIzMaPnjd9rL6R2vFFnLYPtgDxT0GMukp6bdmgkHTJG8n1vinGhMG8WubW7c8cr7Uf7BfKftVqzH2StBFeHolsM5qUqf3h8vN6v7CryPti2r5IzqAkouBntNCs3w5sw21pDSYPwT7DkixcJ/gy/Z9vl/IHXggGU/TtD94gl1AejabuaSAxXQWbB7K0Mh/106H1gNXtOlKu1R3LXzoZm+I5FSsN9sg8j/7j0WfEcQ7C8Yta2qHHLfQPiHyOhUAGxODetppv7V8X2cT5+WLNmLKurmw3Q==
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=rQHgXMWkC3Mm8J2pKE1eUqP0egx2Jwst5WiZnP3oWB0=;
 b=ymTfd69AIyaAnWuPnWCX51PX6c55rjGF0O3OPWS7wpYO5ije1blCk40diXP9VgL0t5R7iInV5MZxCH6TqvqKysdzeq0/d7wp9JBnTbPyciQ0zXuaJ+D7Yse50Pl27m7mGesb7HrUw9VV05RnoQr3kXeuhy3/T4YPAKGHThFMqDs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 07/12] x86: Have x86_emulate/ implement the single-vendor optimisation
Date: Fri, 6 Feb 2026 17:15:29 +0100
Message-ID: <20260206161539.209922-8-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F42:EE_|CH1PR12MB9719:EE_
X-MS-Office365-Filtering-Correlation-Id: 721a540a-067c-4a0b-55e5-08de659b0913
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:
	=?us-ascii?Q?lPPTS0ksCHxSz7MxxYUl84vcMYAzO8ElhpC9DzIPwMgPAmqVqcgyUpuBtOhf?=
 =?us-ascii?Q?IE1mmPnRJ/aVocbSrum1Oa9JSozS7gJ3KHjENQaCGQ8pJNvBaAGTTaPglLUH?=
 =?us-ascii?Q?tLIWg1GBylQrydjyt2L8nEUIFd7+hOoME+gRd4qzYmYiuLerPWiA/es87nI/?=
 =?us-ascii?Q?/xG1m1VmNBnhAMpZuucNYZ5jgLb6/24C4JyUY/0CqbbLhVnEOS9tpOXDt1DB?=
 =?us-ascii?Q?cHmS0M3JwUqZXUWjj9XiONAaahzEGbciBkmM9YB5yodcKpzWfOmoATkQ9VX6?=
 =?us-ascii?Q?rTmDS6jbAI+hm8nt8Qp2cPSPlfbTYbLYRGCqyU75BvHNzgpfU8qq8nzlCHzR?=
 =?us-ascii?Q?8bIAAbs06GbRLRoxwsj0sFryEQwCxV89mvsEIEK7NjMwjmq4rY8IWDTg7Jkt?=
 =?us-ascii?Q?TgpPJ0oZtt4eo8nx8wKXnO2wpjsJOIoToSdl7/y+MjyKUzPcDcmTTG7/FM6D?=
 =?us-ascii?Q?b8dWYWI/FDKLpdahRPyx0El1jWCfosZVq8ZHeLyhmd8U+ebWrjh38KkRX5X0?=
 =?us-ascii?Q?3Ll+0CaBMrIQInyVxBdiP9162iZuVpWQSOOYd/btCB5R5KjwUyBEu7pBdDfX?=
 =?us-ascii?Q?gDV4e6krvfQW3zxeS1/m4BA6iKQCPej6xRf8hj6xvf5ilvnpZXSnWNaK9gt6?=
 =?us-ascii?Q?kuxuEA68Q+/VnwTbvipxdukPT5yAzvabVtXt3FPEzXu78fokXib3EIDbCqmV?=
 =?us-ascii?Q?jEFcqp3CYLZCdzvMSai3GDu22BWAh9lhTMz5bKh34Ha12PUwT9HbrvttAO1u?=
 =?us-ascii?Q?fS/EQgdGKn0jj9SqMExbNmoNKTICi2ZDjMhDZfl15n0pbIzvEX1D/YoPqFv2?=
 =?us-ascii?Q?bVet0vXB4L7PODHSZRCgab0udPhzuL5FkFbfdQ9eJSOu0opySaiQe5h1VK4W?=
 =?us-ascii?Q?Gdi1KB1gFtWyZLO03ZFZwQMCuDT101qv3L6KBFrfcU+GTZaPCc9ifX/8QXMB?=
 =?us-ascii?Q?hxEvL6GJyyXYYUkHT3VIojjeaw8oSvx1dm2HQ50V9+53f8Gjb6ETxjImKweA?=
 =?us-ascii?Q?oIHnQ9hlb+KxT+TRBHbut3MK7Z+rX1lwtmrVEh0cvRZCHV7eOeJV/YLrBEES?=
 =?us-ascii?Q?X+MuVWgzw7oX1JLHx8/Nzku/xX05KNwK2SSr1kekW/HofLn2o7jTVyphNFoe?=
 =?us-ascii?Q?1sg8L0o1ZsDTFQk0pxjWv8d4BP4jCc21pYu3uf9d8HXDKPZNyjJ1UEjBwAsi?=
 =?us-ascii?Q?daGxhdsWZZnttrpdqnflOX6eHYljJ3Nka/lww/BRc7BLlPmtX0+43gyeZhDc?=
 =?us-ascii?Q?NcAOS+qexMTx5/WJfejBzYAD9O+scB6hmH9oiu5V4xsIs2r+oZ44Z0lX/3KR?=
 =?us-ascii?Q?YfIRgghE5bwDlCJimDC61bH69vuN/b2S8T185vYX55nrV6HtCm4ALVx0FUxI?=
 =?us-ascii?Q?s10+fcaxRbqIR3NOjdfciT86Chq8kVn2DtfngW8S/wYrv3ldWpyz21nfKKXI?=
 =?us-ascii?Q?+j/Ih/AbYnk/2qBKR6KGOscDtFeAnh6LFZxTZYGiFu7HGN9V97N+N+SLB29I?=
 =?us-ascii?Q?eBUdLZZ8L1U61EuSrhA8lC7/T5aQYIAa8tvrUqP6tWHIsbXInh2SqwYdA3lg?=
 =?us-ascii?Q?f5rqcHuHS+eBVj+7nMWanggOwiAdF5JnkJDDvc5vYYuDf1sVopiL40sl7N8S?=
 =?us-ascii?Q?Vdad6Uy7kXcK5XRspTkHBHmEHW2sug3h1BYxBOrXLX8j/59xj9Qv8UtlqfAF?=
 =?us-ascii?Q?27HDzg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	u8zoQJns1sfnDdUl2aUmHBAi/HtiXT0w9JHbigeCtVkAt+/7d7rmgexo0MzDXlPvWUAwQFqax2JaacPQFaeZ5UbsKuCvsITlTcjNj6rKQ5wjTFpjJqeEFpRln6DxjKUYodHQ3FdNNQYMYni/K3g9+km3mb6VO2P+qNnoA5RB88jzGtfvXRbhxELfFtkBb8WELYJmQuhAVmCL1Xz9tMwFdBiZhDOrzgmUl0gZY7xfh2dy06qcs2GVVTj1j5pWV+y6NBxXM/m64S8D+AkKWKPxjuGN+kyX4LrkMOg0r2J5uwXVl0m2IJlejSSa537ErWk1sEmgtbBMrLkhLnyRez27iOZlxclm79L+dQZuUpMvOuqc4/YMMqE8G5+x1M/FMvcUlCMLTW+6sM0DL8sEeEW7xxmGF2eNeHxxm7oK42ss/koa6MJRWQVLA91s2Sm61DFT
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:07.8985
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 721a540a-067c-4a0b-55e5-08de659b0913
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F42.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9719

Open code the vendor check through the policy as a one-off. The emulator
embeds amd_like() in macros and is called in MANY places. Using a
local variable (cp->x86_vendor) makes it a lot smaller (300-400 bytes
smaller). So treat this as the exception it is and let it use the policy
rather than boot_cpu_data.

Also keep the current behaviour of using the policy vendor when
compiled for userspace, where cross-vendor configurations are expected.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/x86_emulate/private.h     | 10 +++++++++-
 xen/arch/x86/x86_emulate/x86_emulate.c |  2 +-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/private.h b/xen/arch/x86/x86_emulate/private.h
index 24c79c4e8f..95f2015c44 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -15,6 +15,7 @@
 # include <xen/kernel.h>
 
 # include <asm/cpu-user-regs.h>
+# include <asm/cpufeature.h>
 # include <asm/endbr.h>
 # include <asm/msr-index.h>
 # include <asm/stubs.h>
@@ -30,8 +31,15 @@ void BUG(void);
 #  define X86EMUL_NO_SIMD
 # endif
 
+/* intentionally avoid cpu_vendor(), as it produces much worse codegen */
+# define x86emul_cpu(cp) ((X86_ENABLED_VENDORS ==            \
+                           ISOLATE_LSB(X86_ENABLED_VENDORS)) \
+                               ? X86_ENABLED_VENDORS         \
+                               : ((cp)->x86_vendor & X86_ENABLED_VENDORS))
+
 #else /* !__XEN__ */
 # include "x86-emulate.h"
+# define x86emul_cpu(cp) ((cp)->x86_vendor)
 #endif
 
 #ifdef __i386__
@@ -520,7 +528,7 @@ in_protmode(
 static inline bool
 _amd_like(const struct cpu_policy *cp)
 {
-    return cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON);
+    return x86emul_cpu(cp) & (X86_VENDOR_AMD | X86_VENDOR_HYGON);
 }
 
 static inline bool
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 7751a67130..308ec3579f 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -3104,7 +3104,7 @@ x86_emulate(
          * in fact risking to make guest OSes vulnerable to the equivalent of
          * XSA-7 (CVE-2012-0217).
          */
-        generate_exception_if(cp->x86_vendor == X86_VENDOR_INTEL &&
+        generate_exception_if((x86emul_cpu(cp) & X86_VENDOR_INTEL) &&
                               op_bytes == 8 && !is_canonical_address(_regs.rcx),
                               X86_EXC_GP, 0);
 #endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223515.1531008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVE-0006f0-Hc; Fri, 06 Feb 2026 16:16:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223515.1531008; Fri, 06 Feb 2026 16:16: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 1voOVE-0006dZ-5F; Fri, 06 Feb 2026 16:16:16 +0000
Received: by outflank-mailman (input) for mailman id 1223515;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVC-0005HU-MH
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:14 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2705e35c-0377-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 17:16:12 +0100 (CET)
Received: from SA1PR04CA0007.namprd04.prod.outlook.com (2603:10b6:806:2ce::12)
 by CY5PR12MB6573.namprd12.prod.outlook.com (2603:10b6:930:43::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Fri, 6 Feb
 2026 16:16:06 +0000
Received: from SN1PEPF00036F3E.namprd05.prod.outlook.com
 (2603:10b6:806:2ce:cafe::7e) by SA1PR04CA0007.outlook.office365.com
 (2603:10b6:806:2ce::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 16:16:06 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3E.mail.protection.outlook.com (10.167.248.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:05 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:04 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2705e35c-0377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rP6Sy0o4boTHulfLwPYK111iwBHz9WGU+D63Zkgv61G73+YYrjbpZZ9VvMSgPItbuyxF8vVeuD3WdY0SE/l1HzyxRdZi/1mHwl+3MZJzIumssY0z1kr4LJru3uNAYyniWo4aDAfjM1ZA/ue/UGiuKy8vM9wpmvY1WegECmL7I9MbTXAJc1J4Ix9Wfh3bSCy0rqkFLag4Ers6IHGvR6MEqoWejBW5N+0D9VJP3xk8t/lsgB8DO6ABcYsNwAwxqHYQN01HJIpkQhc6mjkBuiRG5RP7qCk9uNq+DhRAiqSvdplWtKuPiA/ZXkVnbzKMmjnIMXLOxzHtDPonBbjj2OJRPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NCyo7O8Na5M9YQ1OlNa4fXESdvuSX/73rKr8aiBo3mY=;
 b=y8UEc+JZJ2wTIKDkzRyoysIDqIiB8ud9y20X1FbZcZRt5UF3xjo15IPCeZqXUBLMWNpDBSZdLi8S2tOcIJCGD+GCM58zlk2q4icSNer8U12D7SK3k1e8L2FOtM1I6zYvgWwht3qbdKvNsGOlZH3XMREH7p1HNnw7NBOe4lTTsx05cs8U74vYhOCp9R62N9xAA9S2GB22Gau0G9qsqYaYrvyjBmOdcZQhvrZmzy9BKaSnjv7Rcu05W4FCwjTFyA0VlgWuI0rfrpcV3Y4AwH8BKiphEdAFCaje5nz4YJBOKgz0eiEb1DmvoSz/YXCdcP16aIOeyNe5LTVb1fhnH7QxrQ==
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=NCyo7O8Na5M9YQ1OlNa4fXESdvuSX/73rKr8aiBo3mY=;
 b=c6gqESWmOtap/l8/92AtQBOy9hsRiGkCrv0NNjEJGOM6N3dOiuSRMu7leAznx4Z8EMKgyGMDyaI/SJOJYric8UAh6QI5pqm4YDC16YSbRpi5vj4nPgoUtLzfnrTWnG8aibwYgJkZTTQu0eszA7I5Nwvk4nNj3vikdk64gVQlWSE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 06/12] x86: Migrate switch vendor checks to cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:28 +0100
Message-ID: <20260206161539.209922-7-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3E:EE_|CY5PR12MB6573:EE_
X-MS-Office365-Filtering-Correlation-Id: f402acba-e5db-45f7-3695-08de659b07e9
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?r+PR5TQbdX4oyj/arY748CE4y3CXwJH0k8n2TzzYucwZyldRxuQWaWerRKrz?=
 =?us-ascii?Q?+4uz9aO6gt/k/fnPYCBhvq4WUZty8HTWQa5vhInDGOKkwq9Cj51rY2mbL5Yy?=
 =?us-ascii?Q?yb0LtgVRcunWf3bjolPrnoWZbD3+49OE1HFEkWXx12x3cC6b1FD191uVUxgC?=
 =?us-ascii?Q?YkkSMSNpepnpde1zO3ovujFZqvXWO8RpWpWFcPf1IeQTKIMIRiMUPOEsrBcT?=
 =?us-ascii?Q?XW1WaekcVjLhaA6GiW4qX9GL9zdRZFreT6Aw1iLdmlHGizewVvBYO+KXR6jR?=
 =?us-ascii?Q?+g+8pxtSH+BXqbtJR4+RGFEanRuIAnj2e8TNZRtXQGs/bcPDk7CKbbpwJzee?=
 =?us-ascii?Q?F0NHBw5C7AgrSX41vpX3aUXx2n9F6BF2fWKBlJVZQx4vsZrT3b0DVInuEpD1?=
 =?us-ascii?Q?NndoN2PawObBTtEgtjgl8yt7UwA90OfRUn75avgiBsrKbe1Y3hETEpEA7RfJ?=
 =?us-ascii?Q?JEhuD7lBf3VdW7gHqzBeF9DEDplRGbC8IfXIJlM/pEuT77C1sD5wlId6BoLi?=
 =?us-ascii?Q?UqN7TOUFPd89ZR4lflE61MGDTyQ0+4NCInv3IGq1LmrF6UbGI6gQ0bEu/1qa?=
 =?us-ascii?Q?H4k7lRddm8PGfkW2GHJsIE/UCHuYOLchfR/FHmReSBlP1lerWH/URh+6GjWD?=
 =?us-ascii?Q?RcSJRpKRwbnN/NCrS5K0AfV7hqi5oFmuKQumYOc8yR8Y+9w3th+ihyEqLnFt?=
 =?us-ascii?Q?X9wtR+HatGyYdCgzuOgsgvTs1/5A0lO7+RwlmMFuZEbVtfsxbXpP93Zr5J5E?=
 =?us-ascii?Q?5i5ZFljyQiSzAqlIAomoii+4A6M4de1o8wSxKMuhOdgSbFAJWlgHPJmUiUbe?=
 =?us-ascii?Q?jZj+elQc0/h1MJPl+8uR6xRl222CUzGcr89yJUdUOUh66dsD/ZQV+DjSKuZ+?=
 =?us-ascii?Q?2WSQvFzgF1WyLGixgq29XekkJdG7HKZ6BRrw3jkeuNji2/xV7gspvQtO56dk?=
 =?us-ascii?Q?MlkAzAGE+RuwydtQIQSsv6mjACQH01uxoUGiwQLodO5zpKHOWQ2vHm9Wt0Zp?=
 =?us-ascii?Q?2cmDk3D0Cxk97UwkPIZrZ/zLKydE1A17U2U/VHzhWS35xghGryvKi9Db/Skv?=
 =?us-ascii?Q?FTYWfKrF7l8BIXGfbBsxf1D6O+GB05XlMYDqNb571zrD/I/p9312dGz5ahIF?=
 =?us-ascii?Q?7HIbBoyc51P9wUd0t54LGZm8fXgHl55nKijefYHYNSZH366P+CdBCto35FQm?=
 =?us-ascii?Q?d/oi8iCZZ5KlUdsedtm2A6X8AMvPH0FAG/yi/fSsYPuWIHD7leHFXs6lDF3A?=
 =?us-ascii?Q?/JZQ+bEqkmgGFxCq6iX9VDNqgNmWbCMfsUiM2PkO+yWTffsi2ErxlAiFDDvu?=
 =?us-ascii?Q?aDYsUUlfT0ocvQSYqzTfrtBdSgwPNqxnjD9JwzI8SPgNgcUoY2uzVwXVBwzQ?=
 =?us-ascii?Q?HQ67UytqvHtXS25rsY0EL2Jk5H0I/1Q700+snYoKBHvh/tbOBiZ1jkKsi+dg?=
 =?us-ascii?Q?+KQrNeSTs6USPT4aTSPgLn5qVHKV0gIZdzeSQ33+wCPkjwnVR+D1M6w1cU7g?=
 =?us-ascii?Q?92mWsLigOELayhXb9YnNtZy035XCVkB7Xz4fdkBJ+dC1NOY2MLoHb6XRf9MB?=
 =?us-ascii?Q?K8Fcz5PjvwolL9XPfYrkcz+sT1SPDItLq+m2HVFPr+jz8sl07e7nisCT1jg8?=
 =?us-ascii?Q?3f9741v7wvTGWic3r7hpL/N7cqUFUj+s5p1/fJYImk9LxMHDWreQtJaxT0Jx?=
 =?us-ascii?Q?0kDrjw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ryNnJ5bzsI1mM7TOh5hOHAQ0JkLwDZIfFPxULwfsPKwkr8/JJxt4fk8so6/tR0kKMx9GLgOYLLrqpu5CQcjay8P2firrBt0FkZIGL8Lk7mNK2erNQ3sJVSm7rZG5y2LYLtaqdojShpTowypZfMVm39YOOX9pMos3ieynlIbRJ6ykAkliwZ7Zd9Y2yijD6ozzq5BDduGLMkjY3z3YfdjuV0C2QZSFx0HCJe/STvEoAUwi/ZrXn7W/9N2hWkvhzrlYQGvGYS20r6XzSkbZgNKQPseeIUdhWwclxkZMXZBKlSwfmjjMF8zOnpJBu3c8WlloY/CzpCksXojxEt1mrM1iE4Cl5iHVO2RfZWarAYSvGYNMZZF2C5/ex0+GLrwcRK8w1DQ1p0ddjpk+r3ClZyXYme99AULK7d67yK7Rxlpzuk6qbJKpc0gOVjDNWKiGPp2Y
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:05.9530
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f402acba-e5db-45f7-3695-08de659b07e9
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6573

In the single-vendor case (with no unknown vendor) all switches turn
to a branchless straight line through the single compiled-in case.

In the multivendor case where some vendors are disabled the VRP pass
ensures those branches are eliminated.

It's hard to tell the VRP pass zero is also unreachable when
CONFIG_UNKNOWN_CPU_VENDORS is disabled, so default cases tend to remain.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
The removals of ifdefs are proof of VRP doing the work of DCE.
---
 xen/arch/x86/acpi/cpufreq/cpufreq.c | 12 +++---------
 xen/arch/x86/alternative.c          |  2 +-
 xen/arch/x86/cpu-policy.c           |  6 +++---
 xen/arch/x86/cpu/mcheck/mce.c       |  6 +-----
 xen/arch/x86/cpu/mcheck/mce.h       |  2 +-
 xen/arch/x86/cpu/mcheck/non-fatal.c |  6 +-----
 xen/arch/x86/cpu/mcheck/vmce.c      | 12 ++----------
 xen/arch/x86/cpu/vpmu.c             |  6 +-----
 xen/arch/x86/domain.c               |  4 ++--
 xen/arch/x86/guest/xen/xen.c        |  2 +-
 xen/arch/x86/nmi.c                  |  4 ++--
 xen/arch/x86/traps-setup.c          |  2 +-
 12 files changed, 19 insertions(+), 45 deletions(-)

diff --git a/xen/arch/x86/acpi/cpufreq/cpufreq.c b/xen/arch/x86/acpi/cpufreq/cpufreq.c
index 5740c0d438..4ee03ecc65 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -133,7 +133,7 @@ static int __init cf_check cpufreq_driver_init(void)
 
         ret = -ENOENT;
 
-        switch ( boot_cpu_data.x86_vendor )
+        switch( cpu_vendor() )
         {
         case X86_VENDOR_INTEL:
             for ( i = 0; i < cpufreq_xen_cnt; i++ )
@@ -141,12 +141,10 @@ static int __init cf_check cpufreq_driver_init(void)
                 switch ( cpufreq_xen_opts[i] )
                 {
                 case CPUFREQ_xen:
-                    ret = IS_ENABLED(CONFIG_INTEL) ?
-                          acpi_cpufreq_register() : -ENODEV;
+                    ret = acpi_cpufreq_register();
                     break;
                 case CPUFREQ_hwp:
-                    ret = IS_ENABLED(CONFIG_INTEL) ?
-                          hwp_register_driver() : -ENODEV;
+                    ret = hwp_register_driver();
                     break;
                 case CPUFREQ_none:
                     ret = 0;
@@ -165,7 +163,6 @@ static int __init cf_check cpufreq_driver_init(void)
 
         case X86_VENDOR_AMD:
         case X86_VENDOR_HYGON:
-#ifdef CONFIG_AMD
             for ( i = 0; i < cpufreq_xen_cnt; i++ )
             {
                 switch ( cpufreq_xen_opts[i] )
@@ -191,9 +188,6 @@ static int __init cf_check cpufreq_driver_init(void)
                 if ( !ret || ret == -EBUSY )
                     break;
             }
-#else
-            ret = -ENODEV;
-#endif /* CONFIG_AMD */
             break;
 
         default:
diff --git a/xen/arch/x86/alternative.c b/xen/arch/x86/alternative.c
index 9f844241bc..c723417807 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 ( cpu_vendor() )
     {
     case X86_VENDOR_INTEL:
         /*
diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 5273fe0ae4..62aff61d8c 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -279,7 +279,7 @@ static void recalculate_misc(struct cpu_policy *p)
 
     p->extd.raw[0x8].d = 0;
 
-    switch ( p->x86_vendor )
+    switch ( cpu_vendor() )
     {
     case X86_VENDOR_INTEL:
         p->basic.l2_nr_queries = 1; /* Fixed to 1 query. */
@@ -420,7 +420,7 @@ static void __init guest_common_default_leaves(struct cpu_policy *p)
 
 static void __init guest_common_max_feature_adjustments(uint32_t *fs)
 {
-    switch ( boot_cpu_data.vendor )
+    switch ( cpu_vendor() )
     {
     case X86_VENDOR_INTEL:
         /*
@@ -514,7 +514,7 @@ static void __init guest_common_max_feature_adjustments(uint32_t *fs)
 
 static void __init guest_common_default_feature_adjustments(uint32_t *fs)
 {
-    switch ( boot_cpu_data.vendor )
+    switch ( cpu_vendor() )
     {
     case X86_VENDOR_INTEL:
         /*
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 9277781bff..4b295aeeb5 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -766,16 +766,13 @@ 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 ( cpu_vendor() )
     {
-#ifdef CONFIG_AMD
     case X86_VENDOR_AMD:
     case X86_VENDOR_HYGON:
         inited = amd_mcheck_init(c, bsp);
         break;
-#endif
 
-#ifdef CONFIG_INTEL
     case X86_VENDOR_INTEL:
         switch ( c->x86 )
         {
@@ -785,7 +782,6 @@ void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
             break;
         }
         break;
-#endif
 
     default:
         break;
diff --git a/xen/arch/x86/cpu/mcheck/mce.h b/xen/arch/x86/cpu/mcheck/mce.h
index 920b075355..4828c74d47 100644
--- a/xen/arch/x86/cpu/mcheck/mce.h
+++ b/xen/arch/x86/cpu/mcheck/mce.h
@@ -137,7 +137,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 (cpu_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/non-fatal.c b/xen/arch/x86/cpu/mcheck/non-fatal.c
index a9ee9bb94f..3a0399c121 100644
--- a/xen/arch/x86/cpu/mcheck/non-fatal.c
+++ b/xen/arch/x86/cpu/mcheck/non-fatal.c
@@ -23,20 +23,16 @@ static int __init cf_check init_nonfatal_mce_checker(void)
 	/*
 	 * Check for non-fatal errors every MCE_RATE s
 	 */
-	switch (c->x86_vendor) {
-#ifdef CONFIG_AMD
+	switch (cpu_vendor()) {
 	case X86_VENDOR_AMD:
 	case X86_VENDOR_HYGON:
 		/* Assume we are on K8 or newer AMD or Hygon CPU here */
 		amd_nonfatal_mcheck_init(c);
 		break;
-#endif
 
-#ifdef CONFIG_INTEL
 	case X86_VENDOR_INTEL:
 		intel_nonfatal_mcheck_init(c);
 		break;
-#endif
 
 	default:
 		/* unhandled vendor isn't really an error */
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 1a7e92506a..0c1bfb691b 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -136,22 +136,18 @@ static int bank_mce_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( cpu_vendor() )
         {
-#ifdef CONFIG_INTEL
         case X86_VENDOR_CENTAUR:
         case X86_VENDOR_SHANGHAI:
         case X86_VENDOR_INTEL:
             ret = vmce_intel_rdmsr(v, msr, val);
             break;
-#endif
 
-#ifdef CONFIG_AMD
         case X86_VENDOR_AMD:
         case X86_VENDOR_HYGON:
             ret = vmce_amd_rdmsr(v, msr, val);
             break;
-#endif
 
         default:
             ret = 0;
@@ -273,20 +269,16 @@ static int bank_mce_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
         break;
 
     default:
-        switch ( boot_cpu_data.x86_vendor )
+        switch ( cpu_vendor() )
         {
-#ifdef CONFIG_INTEL
         case X86_VENDOR_INTEL:
             ret = vmce_intel_wrmsr(v, msr, val);
             break;
-#endif
 
-#ifdef CONFIG_AMD
         case X86_VENDOR_AMD:
         case X86_VENDOR_HYGON:
             ret = vmce_amd_wrmsr(v, msr, val);
             break;
-#endif
 
         default:
             ret = 0;
diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
index c28192ea26..b1ad4ebcf6 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -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 = cpu_vendor();
     const struct arch_vpmu_ops *ops = NULL;
 
     if ( !opt_vpmu_enabled )
@@ -832,7 +832,6 @@ static int __init cf_check vpmu_init(void)
 
     switch ( vendor )
     {
-#ifdef CONFIG_AMD
     case X86_VENDOR_AMD:
         ops = amd_vpmu_init();
         break;
@@ -840,13 +839,10 @@ static int __init cf_check vpmu_init(void)
     case X86_VENDOR_HYGON:
         ops = hygon_vpmu_init();
         break;
-#endif
 
-#ifdef CONFIG_INTEL
     case X86_VENDOR_INTEL:
         ops = core2_vpmu_init();
         break;
-#endif
 
     default:
         printk(XENLOG_WARNING "VPMU: Unknown CPU vendor: %d. "
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 8b2f33f1a0..10a558e515 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -319,7 +319,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( cpu_vendor() )
             {
             case X86_VENDOR_INTEL:
                 /*
@@ -427,7 +427,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( cpu_vendor() )
             {
             case X86_VENDOR_INTEL:
                 mask &= ((uint64_t)edx << 32) | ecx;
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index ec558bcbdb..590a4bad82 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -63,7 +63,7 @@ void asmlinkage __init early_hypercall_setup(void)
                   x86_cpuid_vendor_to_str(boot_cpu_data.x86_vendor));
     }
 
-    switch ( boot_cpu_data.x86_vendor )
+    switch ( cpu_vendor() )
     {
     case X86_VENDOR_INTEL:
     case X86_VENDOR_CENTAUR:
diff --git a/xen/arch/x86/nmi.c b/xen/arch/x86/nmi.c
index a0c9194ff0..a3ba59ce0b 100644
--- a/xen/arch/x86/nmi.c
+++ b/xen/arch/x86/nmi.c
@@ -216,7 +216,7 @@ void disable_lapic_nmi_watchdog(void)
 {
     if (nmi_active <= 0)
         return;
-    switch (boot_cpu_data.x86_vendor) {
+    switch(cpu_vendor()) {
     case X86_VENDOR_AMD:
         wrmsrns(MSR_K7_EVNTSEL0, 0);
         break;
@@ -387,7 +387,7 @@ void setup_apic_nmi_watchdog(void)
     if ( nmi_watchdog == NMI_NONE )
         return;
 
-    switch ( boot_cpu_data.x86_vendor )
+    switch( cpu_vendor() )
     {
     case X86_VENDOR_AMD:
         setup_k7_watchdog();
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index d77be8f839..7d7554a7ba 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -243,7 +243,7 @@ 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( cpu_vendor() )
     {
     case X86_VENDOR_INTEL:
         if ( boot_cpu_data.x86 == 0xf )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223517.1531024 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVJ-0007MB-3b; Fri, 06 Feb 2026 16:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223517.1531024; Fri, 06 Feb 2026 16: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 1voOVI-0007Lq-VH; Fri, 06 Feb 2026 16:16:20 +0000
Received: by outflank-mailman (input) for mailman id 1223517;
 Fri, 06 Feb 2026 16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVI-0005HU-Ew
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:20 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2ac786d0-0377-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 17:16:19 +0100 (CET)
Received: from PH7PR10CA0018.namprd10.prod.outlook.com (2603:10b6:510:23d::15)
 by PH7PR12MB6489.namprd12.prod.outlook.com (2603:10b6:510:1f7::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 16:16:15 +0000
Received: from SN1PEPF00036F42.namprd05.prod.outlook.com
 (2603:10b6:510:23d:cafe::9c) by PH7PR10CA0018.outlook.office365.com
 (2603:10b6:510:23d::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:08 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F42.mail.protection.outlook.com (10.167.248.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:14 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:07 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ac786d0-0377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=G1KGCckWNilrQm4RVGaI03hP1mulUcxcFZILjkXzmV+rHb4q5ioMybYP1r5ZHvL8hXc4MUi3bBhmN/fz5KAEg9t4mMytkTDS6SmVwqFh21GKNM4s61YHKjCYJIFMTRaZRJ6zmD9DiCQM3GHVj3RWKBX5yESeEeZN1niLRwrHUjVGHIxmKTdz18BA+MOGhNbtOk8D+YifQ6dHhxyBayM5WB/Ym402xSzi863RckFYGTutqLyDI2lmY/P8bEk/j5ZZYDFkzRl8d6xMhguohT9L2xDkbZWnt8HgJOH5H67PwfnwSXjzaqNSwi1gnoRn4ozRn2GayA894DygtjpHswR+EQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MyC8/f2nPCFmUAAOBRxbvkfjjyjt5TErAPO2zi2zHVU=;
 b=JDipnWztcSch+OwxLIdWCgYD6M16lCmQ+SxQA9NCAPCQIs4GGeIQ8lzXDhtG8HL+DCdtlxfYCHjFF54HuwTWOfq1v1IRAbunp/42PVV6GkxbA67njtO8w2UKYdgCt+je3oHaHLY7xUtDJEqbZ5ZE7UmNi2nglGfEnxkRuHwVi+sP3Bdb0FPSRsjH6XHyb0W7k+zGnomVAanrnG7jPlxueiXrmndP8UVXS24Np/9XkGTwKfCLtMOnpfu7tW4El5dB3hw6bhOZ97P0C54IaSt0dvk7/kLhCBzRi3l2Ihhq8fMYhrKa7YhU1mQUwhNVuCaEqVt95921OrLvFft9+uEyWA==
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=MyC8/f2nPCFmUAAOBRxbvkfjjyjt5TErAPO2zi2zHVU=;
 b=0FmnseOIWwSIrtCV77BdzPTJXFE3giUkSaYYRtrnIwaOqeNMFuALXxAlX2bTY335QV3rWfsSMWdK2TC2clKQHNq79AcITXc7zjo1D6HiVUfkDUCwgL8rhTHOIFgTR/oBUR1NfS+yLevZSRmNQ4MsQ79hGTOcNiu7eVhUhXTKmT0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 08/12] x86/acpi: Migrate vendor checks to cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:31 +0100
Message-ID: <20260206161539.209922-10-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F42:EE_|PH7PR12MB6489:EE_
X-MS-Office365-Filtering-Correlation-Id: 24ff0173-367a-4829-443f-08de659b0d31
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?QG6d2kZYWehmAi8WsAKvhZsqzItvDq+a/czCUFGLV7ggBmFXlc4qt6WPYx5p?=
 =?us-ascii?Q?IzrqIH70Y5r6c/X3eUtYC13aeMbEzTcxQahasDIYnwC0AZvc+T2CG6UT5cI1?=
 =?us-ascii?Q?Pmt01xLfYrnmFalOSHbOAd79oZxWAXnuJ5p5vg6zU3/PsGmdUvMwnkJaIEz2?=
 =?us-ascii?Q?ERDcZYJT6w+6xPsrLShBvWg9Zx1LKaBPHYg/F13BfUMGMQjFAEMf1/dkNPCk?=
 =?us-ascii?Q?dLfXlqcHltctOIDbOlI5oYtWti5NzzXB8Z00Flt4v90YjcaLwgDDC1EPJv8T?=
 =?us-ascii?Q?yxBX73thl5tlSek/UMCJILKXZQK/zzUK2ajVZ+pcpoNnTyGLTZYPgtrESx92?=
 =?us-ascii?Q?3/j630RQVq9VyBp3AYPYaz/omxnaMf2PM+bggpW+LF88jZvOBsxoDYww6VRW?=
 =?us-ascii?Q?6TyuXbsNkt+SEWxr56ENIIHn3yJynKCQ0WJ279FllojaBo+e81emeJMfxR7A?=
 =?us-ascii?Q?uqsJemaPRz4SH2eetxAZU6R660d14iHhJbcnPWsZ4xhA80rHk9cqECD91p2a?=
 =?us-ascii?Q?AhlU1fCvAv4eRVpjgVvbPypmRPulPtZRalkG6GJzVsfzSbcyuEZ/QZaHeTg3?=
 =?us-ascii?Q?QLC2nUzf3szHqBlzFrulHIAb2soUB49uN7hREec1CBPxxDiT3BO0YL9FFV8q?=
 =?us-ascii?Q?e3KlfjtyrfHpPocOjGctFa+LQLtEHrbEGGWNQDlOTuptVnvwl6gbk9t16ciu?=
 =?us-ascii?Q?ocEevujc7+r4qA6mUO4RJQtjd0jh9tN6hYecuSIYJODxXJGuptFiBe0hijAr?=
 =?us-ascii?Q?NzBuM0tgJULFuPhvd77Kti0P25bql7IO6+jTJNHSJOqLPFYsUDu6APWUQ4KA?=
 =?us-ascii?Q?ul8TqqvkxwiV+DMdVeT4X1FLQ4aOKBo1BFvjuSi5e3/BLrpAwJeg06dYgxrM?=
 =?us-ascii?Q?PfcsSUakUhlKsFma9dvffv4SaijjWEl3g+FEfdr6j3Zkf2YZ+FjnEXxWsNSd?=
 =?us-ascii?Q?Gw+6CNXJ5n1Fhf+cKWRsOqmLvr7z45k/rqw4aUk6lk5Z7lL/I5145jgS/7T6?=
 =?us-ascii?Q?oR1fnW0p7DjQabNI64fvc7QdMXSRdC80eUdmIe7fgk9xUGwMEyhoMsAg/bBP?=
 =?us-ascii?Q?7dCNKJr+s+2jtW/BpysDPZZPG8wEpI3JPdaRw3ehQ1IxE3yNIW5Sfb7jhF6Q?=
 =?us-ascii?Q?64iO3nEIpLxFo7U8045Sjh4YKYaWyiUVjF4Nvu6QM/Yee6c4xUE71E/euZdD?=
 =?us-ascii?Q?pgPrna/fLvokHFkwqvQHVf7RK9XPGxFASmMJ+WYcoLf8ARB6to3+udKEx/T3?=
 =?us-ascii?Q?riS8KMCzX+4iJLg2eMhYm+MHYJYevIdzLoij782pE1aAEhsaI6iJccFZ34ZR?=
 =?us-ascii?Q?JshuhMoptDKeXOh0AHlqyVgo/9xW8OGmWaPr37avBRHFfXKH3OF3sbYs4PW/?=
 =?us-ascii?Q?aL7Bwi1enRCCyEPdWYcFLsF2h6D1e04mLJRJ3PcSx9yoXbHRxM4OEcmusg/A?=
 =?us-ascii?Q?bbpTUw+6smXSGlMJy8BqE4UYlrkIcL0SwiGecLfxLT90S1Sd/SupNcHw9UqZ?=
 =?us-ascii?Q?F87tVVSZZs9VCbqvaJuXh7W22zBFIIxR3j/mJB7na9IeuqTk9qKh5bRL7zGj?=
 =?us-ascii?Q?TNcdZjWR4gI2MfPbzHB9PlZFjT3cf9voK6I2wy9Dx/EeORReuCAEIxX2b7Qo?=
 =?us-ascii?Q?O52842iLtO0FDPmbDH19TGOQr9tps1x+EwPhdD8if6r7oTpNuCZlACi0F9dp?=
 =?us-ascii?Q?Im7MMQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	idIp1cbIE7EaO73ieWsyVyhSx0ETrPq//IgIaaIupINO8eL5QkdzltnJ0Hq7BfR5/if4sQxHHsz21QhGRk8qmPu9WMvkcWXRYaRZL0rSdSnynFagnYEnI8Wc/9ytb3OLu1yhxHHbbo3laUBrGaqhYI4t6OmRJvObCwuGC63F08FOG0uh1wDDhViVffCBr7ufBo4U4GfQgzFXJoWX6sQ56VzMlrB4HX1kyg4cxhpd6DBo5FRQYuMI/zN8tuhA79ohDkN218hOUdi6+i/AGTO5ZJnIyO0zZFG2/6BZ/gwjel16yblWcfYWJtF/hQpiJErd+Gb1yH9kj5QUX4WOQuCibLiOVtKnNg94i+iF499H2t4H3z68jEdfKLfRL216MZ6Punxe8E7DadmyTdY3RQYRGMNFnQQlt/bBWL/2rKPqQO7O/PesL75ZW/NUvm5er2gU
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:14.8060
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 24ff0173-367a-4829-443f-08de659b0d31
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F42.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6489

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/acpi/cpu_idle.c        | 16 +++++++---------
 xen/arch/x86/acpi/cpufreq/acpi.c    |  2 +-
 xen/arch/x86/acpi/cpufreq/cpufreq.c |  3 +--
 3 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 0b3d0631dd..0a49b2730b 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -178,7 +178,7 @@ 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 ( !(cpu_vendor() & X86_VENDOR_INTEL) || c->x86 != 6 )
         return;
 
     switch ( c->x86_model )
@@ -915,8 +915,7 @@ void cf_check acpi_dead_idle(void)
             mwait(cx->address, 0);
         }
     }
-    else if ( (current_cpu_data.x86_vendor &
-               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
+    else if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) &&
               cx->entry_method == ACPI_CSTATE_EM_SYSIO )
     {
         /* Intel prefers not to use SYSIO */
@@ -1042,8 +1041,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 ( (cpu_vendor() & X86_VENDOR_INTEL) ||
+              ((cpu_vendor() & X86_VENDOR_AMD) && c->x86 == 0x15) )
     {
         /*
          * Today all MP CPUs that support C3 share cache.
@@ -1059,7 +1058,7 @@ 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 &&
+    if ( (cpu_vendor() & X86_VENDOR_INTEL) &&
         (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 14)) )
             flags->bm_control = 0;
 }
@@ -1421,7 +1420,7 @@ static void amd_cpuidle_init(struct acpi_processor_power *power)
     case 0x1a:
     case 0x19:
     case 0x18:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_HYGON )
+        if ( !(cpu_vendor() & X86_VENDOR_HYGON) )
         {
     default:
             vendor_override = -1;
@@ -1648,8 +1647,7 @@ static int cf_check cpu_callback(
         break;
 
     case CPU_ONLINE:
-        if ( (boot_cpu_data.x86_vendor &
-              (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
+        if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) &&
              processor_powers[cpu] )
             amd_cpuidle_init(processor_powers[cpu]);
         break;
diff --git a/xen/arch/x86/acpi/cpufreq/acpi.c b/xen/arch/x86/acpi/cpufreq/acpi.c
index d0ca660db1..a5e5c223b3 100644
--- a/xen/arch/x86/acpi/cpufreq/acpi.c
+++ b/xen/arch/x86/acpi/cpufreq/acpi.c
@@ -454,7 +454,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 ((cpu_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 4ee03ecc65..d731a21644 100644
--- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
+++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
@@ -246,8 +246,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 &
-         (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+    if ( cpu_vendor() & (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         return cpufreq_add_cpu(cpu);
 
     return -EOPNOTSUPP;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223518.1531034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVK-0007cZ-Fv; Fri, 06 Feb 2026 16:16:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223518.1531034; Fri, 06 Feb 2026 16: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 1voOVK-0007c1-9W; Fri, 06 Feb 2026 16:16:22 +0000
Received: by outflank-mailman (input) for mailman id 1223518;
 Fri, 06 Feb 2026 16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVI-0005HV-P9
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:20 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b34ac77-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:16:20 +0100 (CET)
Received: from PH7PR10CA0009.namprd10.prod.outlook.com (2603:10b6:510:23d::29)
 by PH8PR12MB7134.namprd12.prod.outlook.com (2603:10b6:510:22d::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 16:16:13 +0000
Received: from SN1PEPF00036F42.namprd05.prod.outlook.com
 (2603:10b6:510:23d:cafe::10) by PH7PR10CA0009.outlook.office365.com
 (2603:10b6:510:23d::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:08 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F42.mail.protection.outlook.com (10.167.248.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:10 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:06 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b34ac77-0377-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=izP9oK2J4DMFiOFY5a56QNBEog9cSEpiu768GoEa0XgRENYbWqD77G7FMi8S+V3uq282wbv/+AwQMtE3VX9kXvXpPXVOIQ0DIpONsoX0RnKDkTrtnXy2aWvsiF+Ua3xy1T8lltDJzcLEQWaoVGY/gRejtK21lJdfltFcFR8nbje0edvkwdCgqe0pO6QKDwjhY4zG8FhKGkM29w8+E0/NSOqQ9rbCDnvi2lr8AszOu7Uj4MZJ0DztmMTFE4v32EXNGcud6kwNZNY4MGg0V+VQvz8UdYBSx89kihCCRvKChja5ksUzJbmdyLT0ApfL6VuC67oEms4ZtGHHUV1cF97Afg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+acfGxRyaaJDoExPDPojLHYDy13h9jJLSyZO4Cf1eQ=;
 b=O4P3DV4QpjmDOSPOtYhSoyzpCrPnva5bGfbbgASKkmT1i+CeWEXNQQ/f3SLDPvObuNWNguTn67qLrd+qEO5eJl4jiImzUkbdk36k+QYPWy38mC206+hTx8ZpxylTGBZQuuHTwkt/sbqo7O07RPRsamPI/HQWg4TE2NfvFb7x4BzwnL9uHAlJsfoRVls+zxnusOnVU230RyTHNXLrODMoc+C3U0RGdoX0mCcFU4bn5n380pSlXqZHHFzTOk0mDg6W/Qa8NlahQlqc9MwOeB3HTWOxkGv2DvRPGlKI6eSTS8xVaBBg5MQQ1uoyILU4DN8POd7JyiETfcQ/1awz2W9TTw==
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=C+acfGxRyaaJDoExPDPojLHYDy13h9jJLSyZO4Cf1eQ=;
 b=ZVv+y4Po8q8/qMMJghD34jftU8npjXDRRoeVZ10a+H6rHAvfz9/NUGMVH3sx8nqAEI4/0w/E1Udl3GIzz4JpqLtWVOtRRdGKYkC2lOrgjmMphsFVZSIVqJtpF2s5oOEiR+cmF61D1qtrM0HR4h9itUwXUr7pDcylsDhoy9XUPg4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 07/12] x86: Migrate x86_emulate/ to use cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:30 +0100
Message-ID: <20260206161539.209922-9-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F42:EE_|PH8PR12MB7134:EE_
X-MS-Office365-Filtering-Correlation-Id: 22c258cd-a416-45ba-29d4-08de659b0b15
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?+eBPA5U5licDCP/zOgvmX02RaBianYb1r/2/MFr+sRX7b2XFSlh+3701+N3y?=
 =?us-ascii?Q?8qfnUKD6nly7D141hWP556pcBt8eQeIi6WrVqWmfP/dUAV4FpSVLnHiIm18h?=
 =?us-ascii?Q?0KiC2ZvQQ5rVV85Z/Ko7EUzFImTLKyaPc5p0RRTxcxDx8hfU+CoaCk05vysv?=
 =?us-ascii?Q?squKLd7Eadyq5cSCWrDwgvh1VAclTsmXn7X/kmDphUO2UAvpiAN9YthISUVv?=
 =?us-ascii?Q?FYCdMX6GY3M0OLWz4fThpV3jiiiJeVoHVfHy/RwSWUbWIli6+9/8XUfQJNnL?=
 =?us-ascii?Q?R7P67luer3QZ707Wb3DDDrDNxSVF7Fs8bU6E96F6C0TlAqFzFtt4WN5lyRhE?=
 =?us-ascii?Q?rTlxDAzI4qwGWR3fEE3eewMW+R7bEM/2O8MvOAGuS9PuJL3valci44s1W53V?=
 =?us-ascii?Q?H4tkfR6TW/Z2coe3rBgu3UKuh+IFTCuSYmoulUDf4tCapvwVqg8zCxjCfriE?=
 =?us-ascii?Q?QVlsIGW766PGu14QEz3WvD8ywBnLB3iAuXInXTjJulPnyBUz+YPsmhKMQTS1?=
 =?us-ascii?Q?bKeyeuuaGwFwwQuLZKma3vgFSqn64T5vWFxqcHZtNQqkLaZWO6AccjCHAwkZ?=
 =?us-ascii?Q?lvNkU0N6Vsv5eXjM28HSz8cpJSrlEOErgYBLzBEHaQncQ8mg7iydJY6MdJjp?=
 =?us-ascii?Q?vq2IG4uVPQv6TE0CLEz2I5mutjM1dVJnJbjxUmEESaeXJNlF44vyzAFGujAZ?=
 =?us-ascii?Q?C/ff7by9gvacwGpOp6I/I1+gUAnvtH5Dy8BCoHinxEvYpJravAp51sURDEZd?=
 =?us-ascii?Q?lCTtPajOiTJq8eXSTH6TICWZVGScvnckEgegRhsDDJ8/i7zrS+CiETa2s05l?=
 =?us-ascii?Q?8hbySMocta1dTtoRcLmiqVdsGjsASXF4WqVHFZrRPnIfNXt/NCzadsA20OXP?=
 =?us-ascii?Q?WkY9feuZFUZeLWv6uUuMiohTwyiCGGreCHvCq804np+htzS9/2s/D3MwFOMD?=
 =?us-ascii?Q?qKfol49PssSalG3KC+hayLNQJCS2lufs3DG+HvHiZOD8QBwWylcbCf/566nU?=
 =?us-ascii?Q?ZO3/vo0msZpxm4lByWTHFH8McAnBxb0Yuxu0/ZuBsQtICOaWLVuRm4Ep7Chv?=
 =?us-ascii?Q?OFEgp8vQiE2i66vdogzWwb9XAMnTFuNBUWCNvGiIvnpFsOeBiTDFMN11DJWe?=
 =?us-ascii?Q?7wGHC6uiMQVp/lI3qm4sC177F+rlu+B0JDK5jLDmyOmJEvNKQdi/iY/xAd2l?=
 =?us-ascii?Q?gU1zqex6dFCkQesGvTpabpY7ziwlOv+MYhO1DyESaR2rmnKe1a2rxp/cY6/c?=
 =?us-ascii?Q?358IDa9cfBWwM3u9XFV/5ajAQOOD7Yb4aMwRXgGH4CENrKMxd11hiTYjJJU+?=
 =?us-ascii?Q?SI7Tm23+5phk+YPyv8cNAC4RXUraXiWB7/2a0AvtqeZv7GajM85OfMBiUZhb?=
 =?us-ascii?Q?UaX5rR5D6bCwk1epzHBWcKxDqyDM7v++bbT1I9dmtNrK7B0g9UKt0p6gPZrx?=
 =?us-ascii?Q?r6uQ4Cln+nRcI7YyY83dxK8FqY8hbF+wV1zB/wZ1xzutlJJR+C4mXUs4rIDd?=
 =?us-ascii?Q?a0CtfsD+oxbpwybSR3ES8rkvKaUco1bH6XBfROg987ZPKWkW+DPqD1ujUezV?=
 =?us-ascii?Q?QbyruG7wJXyGd9cc6grMmTqCoVyZK6q5HwgpS/H0SNFohnzb/ivfpolGey0/?=
 =?us-ascii?Q?zpO9qPzBzOgH26tfqnEhiMSEanXsW2ao0OucZjvngLGYhhDs982UEL7ofIl5?=
 =?us-ascii?Q?CPuxkg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	xEWEVsDR1O0WomhyqARWSkcxVb7YvGxGUvZv3ocQAruUdKkPhkti2g6CD60bx3DwDH9nzWPe/1cfE9QrlnEELErnQSdSDfg86kgdAOmFiZ+Y7eSdN+Pv5kaFQSqOxXWimCjfMvhmhO29nZ/14+xdfhdP+r5nyQ9sB6QmqldBe+wFqthYijs13DSp0jQ6aUdtfyi6T8aQRCRD2LngrIUNZdHMGXJkJxEiDecxNUQjH2n7nosANGJHDxXPcp5Pdtgo4ko3HgFzXqrs+/yRupHswmaiP3iE4ds/Q2QWUIKy2Rp/nXysSehhNP3vR2zwqe5V1dabscRvnNf1qdWUKkd/JRPWygox21KC0vZ8RjHAdMDrE9EXuBk7LpI8LTXgeinHrJOn91J64R1erU4kPOVdPgqVCU5uoRnhTurvbJ3KdnvnIElItt0osKLSbsggvGeU
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:10.9231
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 22c258cd-a416-45ba-29d4-08de659b0b15
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F42.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7134

... but keep the current behaviour of using the policy vendor when
compiled for userspace, where cross-vendor configurations are expected.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/x86_emulate/private.h     | 6 +++++-
 xen/arch/x86/x86_emulate/x86_emulate.c | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/private.h b/xen/arch/x86/x86_emulate/private.h
index 24c79c4e8f..1b6fc48ab6 100644
--- a/xen/arch/x86/x86_emulate/private.h
+++ b/xen/arch/x86/x86_emulate/private.h
@@ -15,6 +15,7 @@
 # include <xen/kernel.h>
 
 # include <asm/cpu-user-regs.h>
+# include <asm/cpufeature.h>
 # include <asm/endbr.h>
 # include <asm/msr-index.h>
 # include <asm/stubs.h>
@@ -30,8 +31,11 @@ void BUG(void);
 #  define X86EMUL_NO_SIMD
 # endif
 
+# define x86emul_cpu(cp) ({ (void)(cp); cpu_vendor(); })
+
 #else /* !__XEN__ */
 # include "x86-emulate.h"
+# define x86emul_cpu(cp) ((cp)->x86_vendor)
 #endif
 
 #ifdef __i386__
@@ -520,7 +524,7 @@ in_protmode(
 static inline bool
 _amd_like(const struct cpu_policy *cp)
 {
-    return cp->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON);
+    return x86emul_cpu(cp) & (X86_VENDOR_AMD | X86_VENDOR_HYGON);
 }
 
 static inline bool
diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c
index 7751a67130..fcd8cbccc9 100644
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -3104,7 +3104,7 @@ x86_emulate(
          * in fact risking to make guest OSes vulnerable to the equivalent of
          * XSA-7 (CVE-2012-0217).
          */
-        generate_exception_if(cp->x86_vendor == X86_VENDOR_INTEL &&
+        generate_exception_if((x86emul_cpu(cp) == X86_VENDOR_INTEL) &&
                               op_bytes == 8 && !is_canonical_address(_regs.rcx),
                               X86_EXC_GP, 0);
 #endif
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223522.1531044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVN-000860-Ts; Fri, 06 Feb 2026 16:16:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223522.1531044; Fri, 06 Feb 2026 16:16: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 1voOVN-00085j-Lt; Fri, 06 Feb 2026 16:16:25 +0000
Received: by outflank-mailman (input) for mailman id 1223522;
 Fri, 06 Feb 2026 16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVL-0005HV-Pm
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:23 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2c394f35-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:16:21 +0100 (CET)
Received: from PH7PR10CA0002.namprd10.prod.outlook.com (2603:10b6:510:23d::28)
 by CH3PR12MB8484.namprd12.prod.outlook.com (2603:10b6:610:158::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Fri, 6 Feb
 2026 16:16:16 +0000
Received: from SN1PEPF00036F42.namprd05.prod.outlook.com
 (2603:10b6:510:23d:cafe::a7) by PH7PR10CA0002.outlook.office365.com
 (2603:10b6:510:23d::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:11 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F42.mail.protection.outlook.com (10.167.248.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:15 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:09 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c394f35-0377-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iJs/IXKnHokLBUkyrcXT4LXAPNblUkv9tyyMWBqGNunADWNR0935ThMdQfr0lVo1sttgEYk3hT7sKQ9WDBMly6oOJdrd6pN6JpE7M4/FOyVU8HRaWOgOxCiEuB59bQzapN19S0n292EPzn0Ptt37+aDY8tes06v3cyvpIo+JeqSDYxtfEUcNsrJ6ZZRdDreBgGoGTCf9FjRrXi0ZFdvGW51icNYiQLMQzRbcRbU4d6QyQOIkdFvNdUt0YqFiiiowR7zAAylSGaNHrNphQNeQ/FOXRZCpADq9rvjaH3LIl+YQISMV72OcsCwLKoROEK7ZjvtT+7e1ISsjelmvpjROhg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aADzh42OJMUzlOI8zR0cG226+X401FT8r8Ytx3iigag=;
 b=HNlWpKqtRrhi9QxmfZEa6gwfhgFAWOjYSs5apd+Qqh6npyIxusdigI35o4gbNYHKYHhzKGD2Yd7bcCcoo+BOp723YyqOfYnVbdTjq5hatvWMCnkXA9MBnUTfh66LTBwa9MiMClm6EcDZXWqMjHlHLG3301ka5Uow0Cp2QvgjOVEA5AknWBZ8ngdUunZ3C+R/DHzkjpRlw69KHsKTP6Vdi5+4t52zHqCHk6yUPTIzPBsBCxioZ/94TiI8h1WwqtpezWy7dB9JEWaTzgNiz8twvar/3msXDTVmh8I46SRJDHOAwHycOLAZG9849cEWs6Mdn3MWJEjKdbTgZLTjBGO5wg==
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=aADzh42OJMUzlOI8zR0cG226+X401FT8r8Ytx3iigag=;
 b=mThHTxbbbDdptS4A0kx051M3IMjEPgPPp5n16UKx0/aoXbBdSSVkAsRCQ+S4l8BNycfDPvBa4iFRFl2yMcjL5NBOQdXfIUSBlxvqSs620yMdJlriBMZxBog0utWTshonwJm/kPYzvYOoWPXSH90hv2QXeuB+b7FyQ40uyA3Nbt8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 09/12] x86/pv: Migrate vendor checks to cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:32 +0100
Message-ID: <20260206161539.209922-11-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F42:EE_|CH3PR12MB8484:EE_
X-MS-Office365-Filtering-Correlation-Id: be55931c-a880-466e-4a93-08de659b0d89
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?DkFt7Qg6cNkOB4AZMYP0uYpPksqutZIrmpaLb8djRVDgQyf6zM/PK5LD9MRi?=
 =?us-ascii?Q?s6INeOe7TJtZNDOAKjOD8c8Efl+A7UpSY3293fND564KkxfeUbrerdVmRqtU?=
 =?us-ascii?Q?RBsQtKCUFGYlnUYLTdNbGaichX8O8Y+V7HRl+ax/gX+Q0HQ/MEM48xwjc2dg?=
 =?us-ascii?Q?K+XmjlUTO6dIXAnF4g3OAyJaTXkqq/iqOzNbX+Op4TBdveQq+qbNkEekuptq?=
 =?us-ascii?Q?MFShscL6vw++R+Tg/+ZAcbcpTE3Tw2J2N6JV1XIxD6quXWJ89N/LEKZgYohF?=
 =?us-ascii?Q?o23VOwiCi2/Uwmp4We9S/yfSVVRm3168wGw12u+e7BCoYEBfwrm7vX5Qoc5U?=
 =?us-ascii?Q?rhJIEJyZu8C4E1Wrl/BRfLfMKyH/4hzilTgg4UENf0jJppVF9iDKDbt5oRxG?=
 =?us-ascii?Q?lBfr8LON7qRj2HkPs2XuKJ9rFWWc4q+nbGs1I5nZfCfD0/6Nmet9mmf+BBTl?=
 =?us-ascii?Q?G6xs9Zp0MVY7GOyAC9im/YLvkjIRa7v5qZZkLBe8mfrDQhgSDheltfm9JfvK?=
 =?us-ascii?Q?ND97tdh15bPLPw145JUYciUd1PSEKV/0zJ/GFUAuiwpR4N6W2lH78r8RbTvL?=
 =?us-ascii?Q?PbhbpwRSg2YztYTd2cAnWcrjYOHTsiNrK9DyiD863X1/DRcGZlYVBR2v1EXZ?=
 =?us-ascii?Q?F37yvuQeXnWiqQdWfOx1mLiOHyqjMPnzLrYDx3n6C0siGfVspfQQyONbUE3x?=
 =?us-ascii?Q?3RGZkiqGNAeRxZY2MMLYN6Rh0vtJQ+N7UGUYvNANDxx/PRNUvPeVCC0lKiV6?=
 =?us-ascii?Q?+VNNthKCAk0TJR9EPARYFqvjn6OGNvflCDZ2Jc9FtTbLiYfyloNkP5GmHhAy?=
 =?us-ascii?Q?andVi0If2TN+U9dp4lg4iayrQRqacuVRyoDUeRvA/h65lzADKIU34uUEqYHx?=
 =?us-ascii?Q?Q1HbEY6c5u4REfWu0AljW2zAzWjM8y/TiSOtWRsAEfJ0lN0m3PjHXQFTr191?=
 =?us-ascii?Q?mHvqveXzTEp9oZXSeJTrNlq0USlXvrOh3E6lCelt6OFWTUSHOlvfYNSpUjhY?=
 =?us-ascii?Q?7EwPbPlVaXmEPCy/o21/QWWuFmk+YmY/i6T5iGNKEbjHHxJfGj8tzdajBWVJ?=
 =?us-ascii?Q?ZumfaLMkiWMvKMQ2bNtJWjsJ7xeeM2fhoCsrENEs7nECeL3O427DGDzcWTcz?=
 =?us-ascii?Q?DU+NQcNp2csSDtrM3aqE5UJa+Wulbt6E9we1hwzyQrS5I+NA7mHL8SD6yT3o?=
 =?us-ascii?Q?D1WxtWjHA7N3pH41Hu4/nwaI6S131qjKeiJiqbpilyOxG3TeY65FlscYwiPt?=
 =?us-ascii?Q?HRYGv6Sus9IfDndlm8dh2Jci2sApFAOmzGvEp2FIn311f96ZVRSM7ek5bfyz?=
 =?us-ascii?Q?jwCZtY3tFcPFuhWsUGLoRu86eTRuadn5pPM/yMWpzoWXYsGWB8H5xazOm7Kd?=
 =?us-ascii?Q?QH/lX+LSsu9tvBGp0sDVEfG3ybsencuyvCwrXPAb7FeynxM5WPt9XH8ge8sD?=
 =?us-ascii?Q?kNXGqpuuudu2NI6qiiLixEsD1KjDP2Gj+tIDnZKC/S2wwnve7625JPoBAEgQ?=
 =?us-ascii?Q?zAE+cl+B8vyU28kiqjDX0rR0vqvulCnnldUrqJvtRC+OpO7lb9Arv21B1utL?=
 =?us-ascii?Q?4xq5ve/ZnDzuMXgpkky9dkqu1143pF+VSecHkTdWABAcSLL+JwJXEuFxB2Yw?=
 =?us-ascii?Q?KF+p4CRuGBN3MA5KtL7EszGYoUc8zIy2ZEazNTKy42gcn7TAXuoG79STTJ1y?=
 =?us-ascii?Q?rUj6Yw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QkIm/o6xEoS3jZneaH2bjEEPUjgRedO7IQbwUZuiWMXV7TUQOZOKjpWOPk0BRxlUFPTsN2xqB6CAF/PNcmr0dHrwYMG0sBmNqthzCUNebjnJIFGpUaiQgv4WSmR+8q8yltiaLN+U8qsVoqsr3WG5/brvgy+CuHcE3sD3XfrI/aKE5kiwF10NLdXbgzUVpD4hNpPEIEJNqOj4ahElIiQTu7lBOE0LHAXE5QZJLeeUl+HtCx26UDtvNQM9cs2Bdbm0e3RND1D66FReoysvr7XwZu0mdusU4TF4KNQahqUrE4UuvbhdRp9cMcq3ko5kRibsMByoxDjX9Ev8x8qwiA/0sM/f2Tz66W9T7JFVckdU8vaJOG/LFF1VeA9vElkOx+ryeN7Zsj8jDTxUuEWDdtoeMd6KICahHSWF2TV128AfbuKBwD1d18cjMy56UT//menS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:15.3732
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: be55931c-a880-466e-4a93-08de659b0d89
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F42.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8484

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/pv/domain.c       |  2 +-
 xen/arch/x86/pv/emul-priv-op.c | 27 ++++++++++++---------------
 2 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/xen/arch/x86/pv/domain.c b/xen/arch/x86/pv/domain.c
index d16583a745..7084274dff 100644
--- a/xen/arch/x86/pv/domain.c
+++ b/xen/arch/x86/pv/domain.c
@@ -174,7 +174,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 &
+                           !(cpu_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 1d9e57ad27..02b6e8f01f 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -243,8 +243,7 @@ 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 &&
+    if ( CF8_ADDR_HI(currd->arch.pci_cf8) && (cpu_vendor() & X86_VENDOR_AMD) &&
          boot_cpu_data.x86 >= 0x10 && boot_cpu_data.x86 < 0x17 )
     {
         uint64_t msr_val;
@@ -869,8 +868,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
-                  ? EFER_SCE : 0));
+                 ((cpu_vendor() & X86_VENDOR_INTEL) ? EFER_SCE : 0));
     return val;
 }
 
@@ -958,7 +956,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 ( !(cpu_vendor() & X86_VENDOR_AMD) )
             break;
         if ( unlikely(is_cpufreq_controller(currd)) )
             goto normal;
@@ -966,7 +964,7 @@ static int cf_check read_msr(
         return X86EMUL_OKAY;
 
     case MSR_FAM10H_MMIO_CONF_BASE:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_AMD ||
+        if ( !(cpu_vendor() & X86_VENDOR_AMD) ||
              boot_cpu_data.x86 < 0x10 || boot_cpu_data.x86 >= 0x17 )
             break;
         /* fall through */
@@ -991,13 +989,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 ( cpu_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 || (cpu_vendor() &
                               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             {
                 if ( vpmu_do_rdmsr(reg, val) )
@@ -1100,8 +1098,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 &
-               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             break;
         if ( likely(!is_cpufreq_controller(currd)) ||
              wrmsr_safe(reg, val) == 0 )
@@ -1119,7 +1116,7 @@ static int cf_check write_msr(
         break;
 
     case MSR_FAM10H_MMIO_CONF_BASE:
-        if ( boot_cpu_data.x86_vendor != X86_VENDOR_AMD ||
+        if ( !(cpu_vendor() & X86_VENDOR_AMD) ||
              boot_cpu_data.x86 < 0x10 || boot_cpu_data.x86 >= 0x17 )
             break;
         if ( !is_hwdom_pinned_vcpu(curr) )
@@ -1148,7 +1145,7 @@ static int cf_check write_msr(
 
     case MSR_IA32_MPERF:
     case MSR_IA32_APERF:
-        if ( !(boot_cpu_data.x86_vendor &
+        if ( !(cpu_vendor() &
                (X86_VENDOR_INTEL | X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             break;
         if ( likely(!is_cpufreq_controller(currd)) ||
@@ -1158,7 +1155,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 ( !(cpu_vendor() & X86_VENDOR_INTEL) )
             break;
         if ( !is_hwdom_pinned_vcpu(curr) || wrmsr_safe(reg, val) == 0 )
             return X86EMUL_OKAY;
@@ -1168,12 +1165,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 ( cpu_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 || (cpu_vendor() &
                               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             {
                 if ( (vpmu_mode & XENPMU_MODE_ALL) &&
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:16:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:16:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223525.1531053 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOVR-00009s-GY; Fri, 06 Feb 2026 16:16:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223525.1531053; Fri, 06 Feb 2026 16:16: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 1voOVR-00009e-Bc; Fri, 06 Feb 2026 16:16:29 +0000
Received: by outflank-mailman (input) for mailman id 1223525;
 Fri, 06 Feb 2026 16:16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVP-0005HV-Ss
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:28 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2f402c0e-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:16:26 +0100 (CET)
Received: from PH7PR10CA0014.namprd10.prod.outlook.com (2603:10b6:510:23d::16)
 by CH3PR12MB8910.namprd12.prod.outlook.com (2603:10b6:610:179::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 16:16:16 +0000
Received: from SN1PEPF00036F42.namprd05.prod.outlook.com
 (2603:10b6:510:23d:cafe::74) by PH7PR10CA0014.outlook.office365.com
 (2603:10b6:510:23d::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 16:16:11 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F42.mail.protection.outlook.com (10.167.248.26) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:16 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:10 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2f402c0e-0377-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hN+d7duL8jfrV55NJv7n71rGpoCzUDP6Ku2vaKoLE0JR/+X2Zs+xdEgjECl5T9CnMH3o81Q9vU9Dj7Onb2RL/Yq3GnNNN8VMY2wl41LDGeS32NhPv/TcwqxUFbfTXJTqg51uYwMVab01Gma+wCksKBPZG+AV8b8XlNm8+Kv9ImTLOBS88car2qet8rTRZY6TofhKK2kdyyoxjcSBj+Zqfe+y8wPZspR3oO+yNjL01TBkQzJPDIK4dQ9gqb7u/TRY0EDS9+oQ/eo5qjP9soZW6keqgUy49cpLXFbb5EVGp6NebEcDKdsojJ+lO7kYUFWptDk8OcbrHD4Wilq6I4ADfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fjZ3KGt1oKvWdF+qKsxJPwEsM/qwiLCAqyhzQ4GhfSE=;
 b=idWomeWOtNt2BYk3REeTNjzOtEp/uUgP63xr40PO2t20XQlDnTN2Hlix5rCx0AgzCkmZQuSPnnIOzA7nzugHkmOcXvw+cjrg8eJYoZXZNkPbxyS8T1Bt4dpXltmJg5Q4En/LMbXbrpzYVxjJac2e/EnzSbiAHEspdbaEKBj2tPSlRNumuqrMgcYLq654de4SLQPN8GgLUos2D5gbr0zULUhw2Nh23+zrIIEBU9jhH8SouMlkbfr5idN5XiJKgt+qBG1z4lnNfOZJjR6ggj/0kJ+o3oTPQCcx7+DYmb9FKAXFKL05PaB9WEA77341CehcBSW5KYheA7j+QNWSfZDA/Q==
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=fjZ3KGt1oKvWdF+qKsxJPwEsM/qwiLCAqyhzQ4GhfSE=;
 b=s3+A7B7n50gkhFksWozjr7XqW5rRL3VtM3aZfvt++OsGtgbsW1cl8JziOCh1+2GBJhX8vMYpTiBhoINKdBX8iotKpTXEy6uU6e4WJuCf8szxiwzwGXdt9dYW6XCgAuMvnyEg6z8KwXRnye2LohsDM0L4rxkf1ISMMcQ8F1LPkRA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 10/12] x86/mcheck: Migrate vendor checks to use cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:33 +0100
Message-ID: <20260206161539.209922-12-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F42:EE_|CH3PR12MB8910:EE_
X-MS-Office365-Filtering-Correlation-Id: d84cdd99-d9f8-49de-2249-08de659b0e41
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?E4yM8adFBgM/0sMwppSPLrjXuP6+d8RTa1qwtKSTJslMzAm873KBjXmUZkCi?=
 =?us-ascii?Q?waKt5+FBzwBQ/V1fg4gF/tWOdC4VZg4qsUT5pd7SYlGMxKcZm9Aqf5v3S05L?=
 =?us-ascii?Q?sJXOowNTP2UEqCoLWqrhs77/36d8m8Julzv6/L3T33afcJtzlX84X6FG6NEk?=
 =?us-ascii?Q?lLEg0hKqGB2hpHVSgKEqh4KaGIDb2s+jJyW0SBrcw9Johy2ZaDWVTjeux8Bb?=
 =?us-ascii?Q?0PITkiTBh1cbYEK3MZ4pRCyRbor+t4/cOeiyZ+m9Omm6Q/fH7rmaeP3VAE8E?=
 =?us-ascii?Q?wTryNDdcni138QH5Ww+jDTBRmD8psAEkbiVRUbrpwXAQkpS4uWno+2VGwiYy?=
 =?us-ascii?Q?P/2lBwC0gEDtE8kVbBO09goR59dFSo5jU4ZlyOluCBI6MHAvhbYxuuY4M3Np?=
 =?us-ascii?Q?fXruISRDieQWgJo5b7nD/hE82BmC5x86X+oKyvRxajX8mY/K4suNqn6Z4xW9?=
 =?us-ascii?Q?P/6C4AFdiVUrUiyp5T1NvqRasvPppegsgmik/Li2Wo3UxC+GeOWgHbDIOLKp?=
 =?us-ascii?Q?nT6KVJ1JDLVEld/uaQ8CVLCikvXg9pzLaAjHYLTlqhGxX3A+SgmfIXer9rzC?=
 =?us-ascii?Q?x76f45dR0sRL/2bj+ysQuuNd5fZpsQgAqXi/pyOWCCxuHY1yMSt0vUC0GO3L?=
 =?us-ascii?Q?S8dU2iKRzfh0UX22GMBYu4NE8zemeErYmdrE2W1+QAruDz4D03yPY7zPtFmy?=
 =?us-ascii?Q?UEOxjmioB+v7a2CyaDgnUg5r0vWy5n1veFPKTMKTxvar46I0e6PNA6gI6ipA?=
 =?us-ascii?Q?b9Vjq/wSTWKFRc/Zdpp4V8Yp4izf2Xs2hPOoduXgyL7QWmChq1mrqEISGxIL?=
 =?us-ascii?Q?xFGUx9jzNQHVEd8WAce2fAPRRmAp78tOZwI99JTqWjG3tmHR7lE2KbVmjAC+?=
 =?us-ascii?Q?Nt5q4tgxqy9g06Vcy6yrOUKlsj83hvNPj0oAer6vWu13+LSDAEj1R0pP83CT?=
 =?us-ascii?Q?q+lOtPyQ2OVLZ4GcAWw0eXoNFBbNNXweJTacUeUJMTUvcFuT3DxmAUo0g//j?=
 =?us-ascii?Q?M+3bsqOtIpwUF/PHnlxj41hfqQgAriyna2xLHcHyMXRF7J2QQZOMiIVRJujv?=
 =?us-ascii?Q?teK0EWNSwCdGB3H13p1UHve8rkN3I85qOt0SGjm2BxB9zKA/fwiBD9Gr56y4?=
 =?us-ascii?Q?Mp8riybhMJ2Djl1rDIxxiQUGzVdvOO+ZvUhVKaaja3O6ZHmOckVhFK8HD7Iw?=
 =?us-ascii?Q?IJTraXqfHh+STamkvabEFTzYIj359J9Uv68BlA5Y9xQdjczNtUaBFi7c5V0y?=
 =?us-ascii?Q?6TVnrJBdLnm8YmJ+geLaex2Ys7uOWRHiZ14+cAgP6F6WaZj8636L+pirlXkR?=
 =?us-ascii?Q?SAMfpnwGhvz6CN/Ubd8P2v9G5Pie3MWXdFuIsK7p70AJQ6eZ+/yoOfuLU5OH?=
 =?us-ascii?Q?eo81G0+dzZKsUVad0H5HVD6p284RUjGEkuZyofkSVBdVXoLK49saACIKFZVE?=
 =?us-ascii?Q?phJYJsl34vS/lZ+w3e+pRmQ/xmer9WuQK36sXABvAFc7WXD6WB2D6ExMts9N?=
 =?us-ascii?Q?YoY/DRPPFqUH6VGQl8H3BK927QynWBHUk8zXi8JXlXW1V56PQdIRxDvtuIXn?=
 =?us-ascii?Q?etXqjFZjDYOcXqdyekFPXzZDa8NYqRAv5xXFGTyZc4PiWnTYflO2AtJNp1ZP?=
 =?us-ascii?Q?VJiVvWnCIt6kMJg8SQGSAC5t/VcXiq+ftlo6c63pv0xaQdhI9jn6yzrQMmGI?=
 =?us-ascii?Q?bxRrsA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	K8oZZBH6uZBla21Z9M2vfLJAX68OLd8+0oO51WGf1RFZseJNTj5fDFtZA0oYMahII1C5QXMdhF3TC270ePYEKi2EVy7faqG2WNz8K19BN0tNZOLI4o1lOCelkUVcv/jaX6hr0k7rbFcP+q5WVU9eS8v0BMj7EzYZHrujusIFf7P3L7i2Vhul/tZ2gqSGIiR8HhdKQRrp2x8qy7bKZyw3U+PtMJy4v4dUelg0yl2Mtmf5PVdMy/gokMXYIy3s6NnFEQxP90yaQq0+YK0hyWTFeW60HmSRJxL7U1S0IQAop3RwFuDLnmOa7tJ7isOpSYc5H1V9SbZKfa27m4Hw/UQX3HxCK1SgWpwG4BRgesajIXuaf4+gbCsAfoKSNjO/9puf8JTxvH+QDLOWahtvrf+jPG485G7OQ4hn2BbUd9fTTh/hq3EPBFe+SSV6zYlc6OPw
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:16.5847
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d84cdd99-d9f8-49de-2249-08de659b0e41
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F42.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8910

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |  2 +-
 xen/arch/x86/cpu/mcheck/mcaction.c     |  2 +-
 xen/arch/x86/cpu/mcheck/mce.c          | 17 ++++++++---------
 xen/arch/x86/cpu/mcheck/mce_amd.c      |  7 +++----
 xen/arch/x86/cpu/mcheck/mce_intel.c    |  7 +++----
 xen/arch/x86/cpu/mcheck/vmce.c         |  4 ++--
 6 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
index 7d48c9ab5f..ebe13911ba 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 (!(cpu_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..b7fc5056d8 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 &&
+                     ((cpu_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 4b295aeeb5..91c5033edb 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -333,8 +333,7 @@ mcheck_mca_logout(enum mca_source who, struct mca_banks *bankmask,
                 ASSERT(mig);
                 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 )
+                if ( cpu_vendor() & X86_VENDOR_INTEL )
                     intel_get_extended_msrs(mig, mci);
             }
         }
@@ -564,8 +563,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 (cpu_vendor() & X86_VENDOR_INTEL) &&
+           c->x86 == 6 && c->x86_model < 0x1a;
 }
 
 static int show_mca_info(int inited, struct cpuinfo_x86 *c)
@@ -862,7 +861,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 = cpu_vendor();
     m.cpuid = cpuid_eax(1);
     m.socketid = mc_global->mc_socketid;
     m.apicid = mc_global->mc_apicid;
@@ -964,7 +963,7 @@ static void cf_check __maybe_unused do_mc_get_cpu_info(void *v)
                         &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_vendor = cpu_vendor();
     xcp->mc_model = c->x86_model;
     xcp->mc_step = c->x86_mask;
     xcp->mc_cache_size = c->x86_cache_size;
@@ -1122,7 +1121,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 ( (cpu_vendor() & X86_VENDOR_AMD) )
             {
                 /*
                  * On AMD we can set MCi_STATUS_WREN in the
@@ -1157,7 +1156,7 @@ 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 ( !(cpu_vendor() & X86_VENDOR_AMD) )
                     reason = "only supported on AMD";
                 else if ( c->x86 < 0x10 )
                     reason = "only supported on AMD Fam10h+";
@@ -1165,7 +1164,7 @@ static bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject *mci)
 
             /* MSRs that the HV will take care of */
             case MSR_K8_HWCR:
-                if ( c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+                if ( cpu_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_amd.c b/xen/arch/x86/cpu/mcheck/mce_amd.c
index 25c29eb3d2..b4d09fd6c1 100644
--- a/xen/arch/x86/cpu/mcheck/mce_amd.c
+++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
@@ -160,7 +160,7 @@ mcequirk_lookup_amd_quirkdata(const struct cpuinfo_x86 *c)
 {
     unsigned int i;
 
-    BUG_ON(c->x86_vendor != X86_VENDOR_AMD);
+    BUG_ON(!(cpu_vendor() & X86_VENDOR_AMD));
 
     for ( i = 0; i < ARRAY_SIZE(mce_amd_quirks); i++ )
     {
@@ -291,7 +291,7 @@ 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 ( !(cpu_vendor() & X86_VENDOR_HYGON) )
         quirkflag = mcequirk_lookup_amd_quirkdata(c);
 
     /* Assume that machine check support is available.
@@ -337,6 +337,5 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bsp)
             ppin_msr = MSR_AMD_PPIN;
     }
 
-    return c->x86_vendor == X86_VENDOR_HYGON ?
-            mcheck_hygon : mcheck_amd_famXX;
+    return (cpu_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 839a0e5ba9..90dbb60236 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -711,8 +711,8 @@ 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 ( (cpu_vendor() & X86_VENDOR_INTEL) &&
+         c->x86 == 6 && c->x86_model >= 0xe )
         return true;
     return false;
 }
@@ -1018,7 +1018,6 @@ int vmce_intel_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
 
 int vmce_intel_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
 {
-    const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     unsigned int bank = msr - MSR_IA32_MC0_CTL2;
 
     switch ( msr )
@@ -1036,7 +1035,7 @@ int vmce_intel_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
         return 1;
     }
 
-    if ( !(cp->x86_vendor & X86_VENDOR_INTEL) )
+    if ( !(cpu_vendor() & X86_VENDOR_INTEL) )
         return 0;
 
     if ( bank < GUEST_MC_BANK_NUM )
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 0c1bfb691b..393bf8c787 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 ( cpu_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 ( cpu_vendor() & X86_VENDOR_INTEL )
         guest_mcg_cap = INTEL_GUEST_MCG_CAP | MCG_LMCE_P;
     else
         guest_mcg_cap = AMD_GUEST_MCG_CAP;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:17:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:17:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223576.1531064 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOWX-00037z-Tp; Fri, 06 Feb 2026 16:17:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223576.1531064; Fri, 06 Feb 2026 16:17: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 1voOWX-00037s-QZ; Fri, 06 Feb 2026 16:17:37 +0000
Received: by outflank-mailman (input) for mailman id 1223576;
 Fri, 06 Feb 2026 16: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVQ-0005HU-0u
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:28 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2eab457b-0377-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 17:16:25 +0100 (CET)
Received: from SA0PR11CA0013.namprd11.prod.outlook.com (2603:10b6:806:d3::18)
 by PH7PR12MB6610.namprd12.prod.outlook.com (2603:10b6:510:212::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Fri, 6 Feb
 2026 16:16:19 +0000
Received: from SN1PEPF00036F41.namprd05.prod.outlook.com
 (2603:10b6:806:d3:cafe::79) by SA0PR11CA0013.outlook.office365.com
 (2603:10b6:806:d3::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 16:16:06 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F41.mail.protection.outlook.com (10.167.248.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:19 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:11 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2eab457b-0377-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TIyiPH+CPOBLsUzbmpdINdjuV0m8EV2i/dPF7hnA8c864TwxMzW+55dubtBoWPGM6NTokdWLR87jQvP8uT/xKrEw3sYXJH0n1g85TXcwDkE5YICLVZHLeE53jv3bEHCZPybQsqq8ro0bL7VjbeNyY97U/2/Jdpkuo5KQmotGcB6RQA9eqpqs6Xm9D47ro1PtXUTZey7eSQjOZZhzoSnJxhhb2RXaHna9fE8DxS9NRKgDTAByFPu7g0IOzSv42rn6HvGy9D5R1qUoWu05P3vlVC8BnEvkZRd4iF+YzVeQSop6I6cuOlh1f29krNCnB5+Esf8Yn0X//TP0KC52UgoUGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jbzue9B2hVLt1UeDx9oOjDhE9VK6iMJSqn6kMjLi+z0=;
 b=mTcdaP4IXuqF6foGyey52jGKj1B/riSSi0XbId6s9b6i7cIuno+89RnO1IPfZ1UeNx4IHsQzKkWBQ14dKjLonSqWskt20uBS34VXoBZpaU/QyDmocJMlRaxSG8/ouOSB4/NxWjxZkDc+1duOQl96pt4On3YUF8y17vFES9rc3CEwBx05kewd8ztQuD72XYpLBxLQHPD9yFZeqepH+7IbITgTkniuDVLAkQouaUmzJiBT8IquANS3euE+CRld/H96y9F8TRjYZYdB+a+jMDb1qopVYS0UreNfFZl7AXcKh292a/RCN8ZmOXyims/SuBLF35g+55TeTGPPfyOOSzQ4iA==
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=jbzue9B2hVLt1UeDx9oOjDhE9VK6iMJSqn6kMjLi+z0=;
 b=0i7uSwx5ZcaAa7GZN72ykDQLOnEzKX/H6P2L1Y9b37auftqSN9WPaDNLorXd4lriSJdm/TzIll7+OkoOa/nWLmYiEYjyEOi0+HaAr0f7X9rKMemE6Kv7WdNhLNSjwpeArQIfacXPegKdFcAkuXY2J3aj+s4y6DmbWQ0RDMqqQEY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 11/12] x86/cpu: Migrate vendor checks to use cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:34 +0100
Message-ID: <20260206161539.209922-13-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F41:EE_|PH7PR12MB6610:EE_
X-MS-Office365-Filtering-Correlation-Id: 74a7baa9-5a38-4165-8c3b-08de659b1016
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?3ut4IXevdK8KcHm+85bUlrR/X9r4BYnhrvkY95VkBCA3ks7IO3JxMVm1SciJ?=
 =?us-ascii?Q?orPjeAS5RqKts5+xx02rhLhIHcTv7YqF9ttacifx5VRcI8MXDO2EPk+Acvfm?=
 =?us-ascii?Q?ZIYKnLIQYrOMFUUJIpDFe8Ubv2dtrveIQiyjQaeyipxnDIkRVzMTffdQo45C?=
 =?us-ascii?Q?lmYBVFmmNX4dsHbBEHyh42mrcZC/j2BcLIsF5qWxZjt+5NTBLTLXZ+0MnQVh?=
 =?us-ascii?Q?MD0P06hJWbcSWb5+81SgSFAYhtSMkHRd4Dv8aaUmtRyMfwZ4TjZWOdA8vGnO?=
 =?us-ascii?Q?jv6NSUrrFdmpUZWLmyavqtUqk0qUe8INgorHyNjVMiasPozp9Fr2FEpXlwDU?=
 =?us-ascii?Q?Epi/4elRyK47dah7RqkAMepJRxXjmvumMD7quRCGaMKG7xgFgTx+T14eQ3wP?=
 =?us-ascii?Q?3YZgQNNEmE8MYzUGPJDuV2SJJop98awakHL1EeRCrIRpFUXviFCuEcyJs50T?=
 =?us-ascii?Q?+CWe+5+a5j9hntCNJ6paHd5F4iQxl2Bvxp6pZz7Fwp5JqvB8DkfCz4T8AAyf?=
 =?us-ascii?Q?OrDP5YWko+6BUDCi6WBqg0kxFGzDF3Go96xjnV9RLD15REuOb6vebBV6Rc3d?=
 =?us-ascii?Q?sPNk1NgkRe8FxntVQcr6XfvHxBHtAnWAm+/1tpj+tEOq1vontz0yFfUzWHG0?=
 =?us-ascii?Q?vbG2wLs8Q7bp8POCOpJTnKeNEydYMKgYaTq9+IaYeQmw29x4fvv6pYE4s+2V?=
 =?us-ascii?Q?83bqIH2UoN+b2/S75GmZKuqCMuekLle8sPzygVfdoAFuTmD6Cx8Hkz5C3S/L?=
 =?us-ascii?Q?YZqVPUu7zubyIIaPosjmrpQlMYCsgiRcZmwmUkkjfbkmUNHzs36RkPDxS7Kl?=
 =?us-ascii?Q?NLLItsS4qdqgqSUhSVlThureMlokkOUliM3RFSgGJjqUDWTieUlxl7d4xZzP?=
 =?us-ascii?Q?9yu0WBcIU8deDxj0o5EHfSL0TGLLIJP2qcUZdU6UgpQ5S8LWFtLB2IawhBd9?=
 =?us-ascii?Q?JjpOcu1s8lxwDnTmoDgth37aLiOm8ekwuxCxVYMTYEuYjsvE+a86RphyUb3Y?=
 =?us-ascii?Q?8t9UmhU0dRftPvsELN9wg3lZCUb8TQfaC1vjkU52t3HALnA6VHeQLCuvsD9k?=
 =?us-ascii?Q?mRRMuuZXHGBYT1ZBWmPi7AyVIDUHhgJ/3IyZYlaRvKItvyjjUchPg2cK+vJX?=
 =?us-ascii?Q?hPAegx+BXU2RkkfWvJ9Hd2dNtuc62u+YYbe3VJWB2obhJMZKCvvdomnzpi30?=
 =?us-ascii?Q?kKSTenXkF0LV59t492RuTwwNaVXAGI4y5FDlnh6v09Tq8MFw+SPEmodZw5y2?=
 =?us-ascii?Q?MI8rjpt/vOIVUk67wNaq/HDEl3AeDEDsOPEMpqINFNDEceqSYIhdk24r3Dni?=
 =?us-ascii?Q?oaBuWO7sSLlaeOV3uLjygsjerP1r4tBpNg6omOv23kJW3OrVDS3cn6yOvWit?=
 =?us-ascii?Q?O2Hgp5Y8vMOAawFW0oCP8CF5r4hyQ4pr6PjwVbVbxuRH2UbVHTWEIbqsk570?=
 =?us-ascii?Q?LlzEdF4D2OkrfxKE54ahbgA2IVNUHWZLux7tSYWlGskTipKCsKUzsKMIox7F?=
 =?us-ascii?Q?o3mkRuZD/+ja11oyy+5IsiHRiwsqie62dzlcffhl+AnOmiKCzG/UTGm/zl9a?=
 =?us-ascii?Q?Lz1WLxm/6HwDJlfbsukwCpYtsuV2P2uvYhO0LY0DHf3yAgV/M4Ri0WYyNkyR?=
 =?us-ascii?Q?zspBZ8JqyakLK5WluTvINI6vnMloMvA7jAIhaTYjg/9UgNqZYGIrpifakQjS?=
 =?us-ascii?Q?2cLWWA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	BleTiUfR805OBNmIBC8ktguyPHLf7Mo/gJ3hM1Ckxhe/1BXbgZB0KTnYRUYgsGtHuZRTtmXRWX8Z9rEgnavPO1d7qafqrf6bCVoJmbxjqX8xm8l8tNvzC4fBZv5LdgPfXv7b5KFVw5W8jN3tBOi9iU5PFZlWuHTakLxQxi5WlhOlYwG3tXhJXJ82zCztWY52LZ7Jk7LYuwPqOULPFc8lqkdbfHwv0ZZwtM5zt50AorGa6UbhfjM1EWFxH8c11NOAD6XpcwhCL/o44qsElCTT61QBOHhODskhgNtC9cy6ois7xReKGfBfeAykXAExp+Cy0nnhzNVyzCrsgOd2lPVCKkX5mJZS/jX/x2vqzKCJA34CQy+kzj+6Ym13TX8D+OgnXoHJX6TLQ3M/sbZGce47UhVrMPACWWlF9qt5DKBiysu5NyUw8nlsG82ztDfPIiQt
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:19.6742
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 74a7baa9-5a38-4165-8c3b-08de659b1016
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F41.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6610

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/cpu/amd.c             | 6 +++---
 xen/arch/x86/cpu/common.c          | 2 +-
 xen/arch/x86/cpu/intel_cacheinfo.c | 5 ++---
 xen/arch/x86/cpu/microcode/amd.c   | 2 +-
 xen/arch/x86/cpu/microcode/core.c  | 2 +-
 xen/arch/x86/cpu/mtrr/generic.c    | 5 ++---
 xen/arch/x86/cpu/mwait-idle.c      | 5 ++---
 xen/arch/x86/cpu/vpmu.c            | 3 +--
 8 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index fc496dc43e..422d81472e 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -327,7 +327,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)) {
@@ -418,8 +418,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 (!((cpu_vendor() & X86_VENDOR_AMD) &&
+	      (boot_cpu_data.x86 >= 0x0f)))
 		return;
 
 	rdmsrl(MSR_K8_SYSCFG, syscfg);
diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index 6f4e723172..9a6fb90fec 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -436,7 +436,7 @@ void __init early_cpu_init(bool verbose)
 		paddr_bits -= (ebx >> 6) & 0x3f;
 	}
 
-	if (!(c->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
+	if (!(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)))
 		park_offline_cpus = opt_mce;
 
 	initialize_cpu_data(0);
diff --git a/xen/arch/x86/cpu/intel_cacheinfo.c b/xen/arch/x86/cpu/intel_cacheinfo.c
index e88faa7545..f95ed90809 100644
--- a/xen/arch/x86/cpu/intel_cacheinfo.c
+++ b/xen/arch/x86/cpu/intel_cacheinfo.c
@@ -168,9 +168,8 @@ 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->x86 == 15) && c->cpuid_level > 1) &&
+	    (!(cpu_vendor() & X86_VENDOR_SHANGHAI))) {
 		/* supports eax=2  call */
 		unsigned int i, j, n, regs[4];
 		unsigned char *dp = (unsigned char *)regs;
diff --git a/xen/arch/x86/cpu/microcode/amd.c b/xen/arch/x86/cpu/microcode/amd.c
index 90f10ac8be..b4c8264e27 100644
--- a/xen/arch/x86/cpu/microcode/amd.c
+++ b/xen/arch/x86/cpu/microcode/amd.c
@@ -616,7 +616,7 @@ void __init amd_check_entrysign(void)
     uint8_t fixed_rev;
 
     if ( !IS_ENABLED(CONFIG_MICROCODE_LOADING)  ||
-         boot_cpu_data.vendor != X86_VENDOR_AMD ||
+         !(cpu_vendor() & X86_VENDOR_AMD)       ||
          boot_cpu_data.family < 0x17            ||
          boot_cpu_data.family > 0x1a )
         return;
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index ea0b35c499..ebe4d21026 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -216,7 +216,7 @@ static struct patch_with_flags nmi_patch =
 /* Returns true if ucode should be loaded on a given cpu */
 static bool is_cpu_primary(unsigned int cpu)
 {
-    if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+    if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
         /* Load ucode on every logical thread/core */
         return true;
 
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index c587e9140e..eab72dc103 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -218,9 +218,8 @@ 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 (((cpu_vendor() & X86_VENDOR_AMD) && boot_cpu_data.x86 >= 0xf) ||
+	    (cpu_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 5962ec1db9..8536bc97f6 100644
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1598,7 +1598,7 @@ static int __init mwait_idle_probe(void)
 	const struct x86_cpu_id *id;
 	const char *str;
 
-	if (boot_cpu_data.vendor != X86_VENDOR_INTEL)
+	if (!(cpu_vendor() & X86_VENDOR_INTEL))
 		return -ENODEV;
 
 	id = x86_match_cpu(intel_idle_ids);
@@ -1816,8 +1816,7 @@ bool __init mwait_pc10_supported(void)
 {
 	unsigned int ecx, edx, dummy;
 
-	if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
-	    !cpu_has_monitor ||
+	if (!(cpu_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 b1ad4ebcf6..b79d57d0ec 100644
--- a/xen/arch/x86/cpu/vpmu.c
+++ b/xen/arch/x86/cpu/vpmu.c
@@ -398,7 +398,6 @@ 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;
     int ret;
 
     BUILD_BUG_ON(sizeof(struct xen_pmu_intel_ctxt) > XENPMU_CTXT_PAD_SZ);
@@ -418,7 +417,7 @@ static int vpmu_arch_initialise(struct vcpu *v)
         if ( vpmu_mode != XENPMU_MODE_OFF )
         {
             printk(XENLOG_G_WARNING "VPMU: Unknown CPU vendor %d. "
-                   "Disabling VPMU\n", vendor);
+                   "Disabling VPMU\n", cpu_vendor());
             opt_vpmu_enabled = 0;
             vpmu_mode = XENPMU_MODE_OFF;
         }
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:17:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:17:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223577.1531072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOWY-0003H7-DA; Fri, 06 Feb 2026 16:17:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223577.1531072; Fri, 06 Feb 2026 16:17: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 1voOWY-0003G5-73; Fri, 06 Feb 2026 16:17:38 +0000
Received: by outflank-mailman (input) for mailman id 1223577;
 Fri, 06 Feb 2026 16:17: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=lgBG=AK=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1voOVX-0005HV-Bz
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:16:35 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 333d7b06-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:16:34 +0100 (CET)
Received: from SA0PR11CA0027.namprd11.prod.outlook.com (2603:10b6:806:d3::32)
 by LV2PR12MB5896.namprd12.prod.outlook.com (2603:10b6:408:172::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 16:16:21 +0000
Received: from SN1PEPF00036F41.namprd05.prod.outlook.com
 (2603:10b6:806:d3:cafe::2a) by SA0PR11CA0027.outlook.office365.com
 (2603:10b6:806:d3::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 16:15:58 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F41.mail.protection.outlook.com (10.167.248.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:16:20 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:16:13 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 333d7b06-0377-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=P1KP7lKcZOlGtD+/mITh7dKwL7mZLQTOXUc1urosQ8X4qH7RaZt2hCfIJRiM7LzQI2e5eja8kcBr73SREC8HwFesopWUTCXIwj6CzkSVbqNecwDQlA0p/uxkW9hdgdbveikSx5GRfCjzzJzua071gX5e6L3DdrDXyAPnd949seXFOk68g4HFmxbIhEyzTN/XnOhtwtx3UHFMgUVYcA5/0v/+/aOcCb3INKD+PVhVazhsAbx53g6uUbePLvp+Q+am9AbaxxEf+4Rg6UbibQqSpejUF4eg/14NNMggNOAtPcZVg9+qjRRQRri4DVFgUor/C6zSvtfORFfoHHLvBOSNwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/jfYW07KAjXqKVaVm3zRcCd3GsPpEyUAxEWXRxtkz+8=;
 b=lg8VEJbZ7v6KrvGElhdMmYsmFDXMv34LoZr4gJVsQtSnnkcEFMHLAdAG94fwuSMmAY85cRBuKj/iwtNEDfAjmzdkNkZOzzvQEBRTD2j6dbeM+GDNcxpQ34kV2E2H44Y5ukgtpPcgLlNgBLmL67uprnour2Lvcgcaw9p2ZeoO2wTfffV2irzEwM+XmL+t8UEwQrJCcK/+oyajtL20zq2TO7m858abELRb7zhDctRDeCSvUCW0hFaEHk8hCM6B2fWU+9oUp88BrzEoblyl3JTb7NrL76obTcaHVHCe0XfecS1p8NuFa/wwknj1mVD2CqpnIVJOOk61HzpT9xllLO25wA==
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=/jfYW07KAjXqKVaVm3zRcCd3GsPpEyUAxEWXRxtkz+8=;
 b=5Xov+7h4Wc5OPFWr3kItl6F+m75R2kXn+Z7wNKzAY6/RiNeHhSHOM9MM5WgfZQTbfjJl1VCLBLRHY+FKOkazWVcRYy1uwSu74/clDcq5VMlEwrp7p0fh8Zu0j040WELDRlosPDRf30xoPU89ouq5Aq0lDOvM+0jGdYXsT7Z1jc4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH 12/12] x86: Migrate every remaining raw vendor check to cpu_vendor()
Date: Fri, 6 Feb 2026 17:15:35 +0100
Message-ID: <20260206161539.209922-14-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F41:EE_|LV2PR12MB5896:EE_
X-MS-Office365-Filtering-Correlation-Id: 4509b12d-18d7-442e-2ecd-08de659b106f
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?LI6REjNS+bZCjLv2BJo4vgK9ca8iR1w3PBppr55QPbMhgUyOJGwTSP0i+NNE?=
 =?us-ascii?Q?VNBlrlFfIV1hqWll7B8Y3HSLDZTGu5KwjJj1dGGr34JW63jIJlDau6M/mdI6?=
 =?us-ascii?Q?zCM9raHfohFMUP8A4Ep7+QkosG85WNIgcRM+1muT600jq2Z3d3LUU3F00t6w?=
 =?us-ascii?Q?Yyig95yfyOOjkmpDEeokTpjWcqAIS3PyPRcgJTOjLyOpcFTrDCgKwP2heXBr?=
 =?us-ascii?Q?cbBqNw2rJabFYi+t87H4s68XakxmR5d0zxpW0C25nwSl027xvoS6SCrPc0gy?=
 =?us-ascii?Q?D2n7B8zf8jPoi3qxNoJ+x0lqaRGIBNHkvJ6S6NcqKOUeu2twAZxLIRoCehH3?=
 =?us-ascii?Q?LyZI+lOGFwUuQsd2eoSVlo9+BTDLBJJ9+Mp0BSZ3naOYAzj7TPg9pGjoaReL?=
 =?us-ascii?Q?/7Lb8lYFtXF9jVguRK7YD5LhCufXwMZNe8n8Cqz06q93Oh/4KqZUwddYv6IX?=
 =?us-ascii?Q?+/iyISQT9v2ZYVNcpYnqhwdu1Qxb3D9ZtswS6twG2FhAWjkRWYgVPArwS8hJ?=
 =?us-ascii?Q?rDRdOfXWevEnNvC8aaKaC9vJFbjgbHB3wDWYjUho7zDpwgU6ZTo66EwJqc79?=
 =?us-ascii?Q?+0nIksuf33z7SQyTidWLfme27uxDLIu2OausIB4j8ecGO2uW1ONpRP+Wgd2m?=
 =?us-ascii?Q?gyuirPN2ZfkmWkNLrC9NycUtqAy0ypi1PtB/PnX5ic0Qy5VDqku0CReqd2Vg?=
 =?us-ascii?Q?ni7dH2cwY4b5nJT0++9alg2Z0y3Hc/ynQU8ZjbvfcQqrR+Kg9WkCg0eFM6xJ?=
 =?us-ascii?Q?4pOScjJoJyNP789Rwydd0sL56tAcPcuHrYbyfhrmIivT5so1M7n8tUFyYrxL?=
 =?us-ascii?Q?1sVNPRlXvPWhq0Ftk0K70rrn2qQenuwVEwwbypPBM5m0RK2nu0jq1wcQ9uhB?=
 =?us-ascii?Q?SVyguPCtXLev5vMato7xhtXWIuL2ulCwvLFtX/Q8izuPzggh5rJKtZjUU8pd?=
 =?us-ascii?Q?jlPbfRrJ5GIM6DYZ1tLqWBPs+TTAB0n5HSbLGefkE+2FiCOMdHbOdIAgCnlD?=
 =?us-ascii?Q?90LTWNQSAmDCex2RG+ge4yD0XZqGy2uLKOaagN+g+S5PF73pvrhQQqkmuDXw?=
 =?us-ascii?Q?AlkiCPJK/2axZMFZ6U6XXGKihBTeNaOHpnj90RpMAsYKNruatSvtkxRZLfhe?=
 =?us-ascii?Q?fMaEw+byfwG4kPWSVXU/22NMW4mZg4byNH+P13wSsG9FAZ44HjLWEceuuEj2?=
 =?us-ascii?Q?PQAwJlwJpg4/ZvLfcc1gUXzCdZWaGSbBt+pjURqbGxF+PZNXgBu5C6FQkpvX?=
 =?us-ascii?Q?zT1f2s97vj/8dJ/QYh2vREvdAlqp1Xjp5zEpGQgmfcMdwUzDvJRpA4E/rWHo?=
 =?us-ascii?Q?LKS7iXzglSQYujRG1fjD3iXan+ta+ai+1N5cwRWZppGzoZFbVfrDnmtt1r2t?=
 =?us-ascii?Q?G5mhKyBSZjleRk+J1Af/X2s3pclo9uriB+3cgPO8xG4oHXugF3G9thNrBfMV?=
 =?us-ascii?Q?Me4Y8mapqeY4PoWPKZvqLTtqt7iW3j7GWDehPpbKU2NrwMPNDInjRcMk4RKr?=
 =?us-ascii?Q?xj46NV9T9lTlwdltoPfaRgwnnoM7ejyE9j/gqpvhCllxpP/X4fNvILtD2ml7?=
 =?us-ascii?Q?vIbygImvh3RXGocF5WZM5lBVDXJQJOi/qaBPNyOCBnl/1lDsU/lBGt5rMp+C?=
 =?us-ascii?Q?eL03tSdKoWASJwlXkAIKN6hbAhFY2EsyxE86RV9m1zO3arxPoDJjbU8qBp7s?=
 =?us-ascii?Q?wEnX2A=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QO9Og815qQC6iZd1G5IQjwRXMAnm60V/4HGsVp5YegNHvM5G/DXtxeqVH/DrxXCNLBNPk52tJ2VG28iEMO+LjMCIXN5zupMS/zzOP6cKPZpeT+Nh8ya+zERV8bi+IvkXAEzJ5O48WqIcXIE0jgY54Ea7vaZXs6zOXihjUYyaueB3Oonfeb7uqPnzOu32outxilp1nILnyMikvSawyVLkhXZ6wqKD1Am8qLwRinQSrTxAr8c9JqgiWWOavTaC4+1bNOHClA6nh/tb/kpIy0DbpiCNssbvOSd9YGDGYU8nZ7IboPivyK2hLWiQSXT7HYh2dsqHfluGflVNf+OBZ3ZVzcd389OV7cmzhEgaSGWkMC0UusIWW46ruq7pPEOcwRKovmWTscbued8CSP5jfmWx2K4P2npKipjak2luqfIjjWgK8GbUV3DcdTrrsofxClKA
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:16:20.2901
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4509b12d-18d7-442e-2ecd-08de659b106f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F41.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5896

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/apic.c                 |  2 +-
 xen/arch/x86/cpu-policy.c           |  8 ++++----
 xen/arch/x86/cpuid.c                |  5 ++---
 xen/arch/x86/dom0_build.c           |  2 +-
 xen/arch/x86/domain.c               | 12 +++++-------
 xen/arch/x86/e820.c                 |  2 +-
 xen/arch/x86/hvm/hvm.c              |  3 +--
 xen/arch/x86/hvm/ioreq.c            |  3 +--
 xen/arch/x86/hvm/vmx/vmx.c          |  8 +++-----
 xen/arch/x86/i8259.c                |  5 ++---
 xen/arch/x86/include/asm/guest_pt.h |  3 +--
 xen/arch/x86/irq.c                  |  3 +--
 xen/arch/x86/setup.c                |  7 +++----
 13 files changed, 26 insertions(+), 37 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index fb38be7ec3..fd3ac07aeb 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -406,7 +406,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 ((cpu_vendor() & X86_VENDOR_INTEL) && (boot_cpu_data.x86 == 15))
         value &= ~APIC_SPIV_FOCUS_DISABLED;
     else
         value |= APIC_SPIV_FOCUS_DISABLED;
diff --git a/xen/arch/x86/cpu-policy.c b/xen/arch/x86/cpu-policy.c
index 62aff61d8c..055862b0b2 100644
--- a/xen/arch/x86/cpu-policy.c
+++ b/xen/arch/x86/cpu-policy.c
@@ -770,7 +770,7 @@ static void __init calculate_hvm_max_policy(void)
      * long mode (and init_amd() has cleared it out of host capabilities), but
      * HVM guests are able if running in protected mode.
      */
-    if ( (boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
+    if ( (cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
          raw_cpu_policy.basic.sep )
         __set_bit(X86_FEATURE_SEP, fs);
 
@@ -963,8 +963,8 @@ void recalculate_cpuid_policy(struct domain *d)
     p->basic.max_leaf   = min(p->basic.max_leaf,   max->basic.max_leaf);
     p->feat.max_subleaf = min(p->feat.max_subleaf, max->feat.max_subleaf);
     p->extd.max_leaf    = 0x80000000U | min(p->extd.max_leaf & 0xffff,
-                                            ((p->x86_vendor & (X86_VENDOR_AMD |
-                                                               X86_VENDOR_HYGON))
+                                            ((cpu_vendor() & (X86_VENDOR_AMD |
+                                                              X86_VENDOR_HYGON))
                                              ? CPUID_GUEST_NR_EXTD_AMD
                                              : CPUID_GUEST_NR_EXTD_INTEL) - 1);
 
@@ -998,7 +998,7 @@ void recalculate_cpuid_policy(struct domain *d)
     if ( is_pv_32bit_domain(d) )
     {
         __clear_bit(X86_FEATURE_LM, max_fs);
-        if ( !(boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+        if ( !(cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
             __clear_bit(X86_FEATURE_SYSCALL, max_fs);
     }
 
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 5decfad8cd..d64030bc09 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -437,8 +437,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 ||
-             !vpmu_available(v) )
+        if ( !(cpu_vendor() & X86_VENDOR_INTEL) || !vpmu_available(v) )
             *res = EMPTY_LEAF;
         else
         {
@@ -483,7 +482,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
 
     case 0x80000001U:
         /* SYSCALL is hidden outside of long mode on Intel. */
-        if ( p->x86_vendor == X86_VENDOR_INTEL &&
+        if ( (cpu_vendor() & X86_VENDOR_INTEL) &&
              is_hvm_domain(d) && !hvm_long_mode_active(v) )
             res->d &= ~cpufeat_mask(X86_FEATURE_SYSCALL);
 
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4..4b7f1bf034 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -572,7 +572,7 @@ 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 ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
     {
         mfn = paddr_to_pfn(1UL <<
                            (boot_cpu_data.x86 < 0x17 ? 40 : paddr_bits));
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 10a558e515..fd9c7f0be5 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -372,7 +372,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 ( cpu_vendor() & X86_VENDOR_AMD )
                 mask &= (~0ULL << 32) | p->basic.raw[6].c;
 
             d->arch.pv.cpuidmasks->_6c = mask;
@@ -387,8 +387,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 &
-                 (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
+            if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                 mask = (((uint64_t)p->feat.max_subleaf << 32) |
                         ((uint32_t)mask & p->feat._7b0));
 
@@ -400,7 +399,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 ( cpu_vendor() & X86_VENDOR_INTEL )
                 mask &= (~0ULL << 32) | eax;
 
             d->arch.pv.cpuidmasks->Da1 = mask;
@@ -424,7 +423,7 @@ void domain_cpu_policy_changed(struct domain *d)
              * If not emulating AMD or Hygon, clear the duplicated features
              * in e1d.
              */
-            if ( !(p->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
+            if ( cpu_vendor() & ~(X86_VENDOR_AMD | X86_VENDOR_HYGON) )
                 edx &= ~CPUID_COMMON_1D_FEATURES;
 
             switch( cpu_vendor() )
@@ -457,8 +456,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 &&
-             p->basic.pmu_version == 0 )
+        if ( (cpu_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..0bf90f2283 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 = cpu_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 4d37a93c57..52a6cc69e5 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2681,8 +2681,7 @@ bool hvm_vcpu_virtual_to_linear(
         }
         else if ( last_byte > reg->limit )
             goto out; /* last byte is beyond limit */
-        else if ( last_byte < offset &&
-                  v->domain->arch.cpuid->x86_vendor == X86_VENDOR_AMD )
+        else if ( (cpu_vendor() & X86_VENDOR_AMD) && last_byte < offset )
             goto out; /* access wraps */
     }
 
diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index a5fa97e149..7a55b14f55 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -285,8 +285,7 @@ bool arch_ioreq_server_get_type_addr(const struct domain *d,
         *type = XEN_DMOP_IO_RANGE_PCI;
         *addr = ((uint64_t)sbdf.sbdf << 32) | reg;
         /* AMD extended configuration space access? */
-        if ( CF8_ADDR_HI(cf8) &&
-             d->arch.cpuid->x86_vendor == X86_VENDOR_AMD &&
+        if ( CF8_ADDR_HI(cf8) && (cpu_vendor() & X86_VENDOR_AMD) &&
              (x86_fam = get_cpu_family(
                  d->arch.cpuid->basic.raw_fms, NULL, NULL)) >= 0x10 &&
              x86_fam < 0x17 )
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..5637ee15e7 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -3073,8 +3073,7 @@ 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 ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.x86 != 6 )
         return false;
 
     switch ( boot_cpu_data.x86_model )
@@ -3431,7 +3430,7 @@ 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 ||
+         !(cpu_vendor() & X86_VENDOR_INTEL) ||
          boot_cpu_data.x86 != 6 )
         return;
 
@@ -3476,8 +3475,7 @@ 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 ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.x86 != 6 )
         return;
 
     switch ( boot_cpu_data.x86_model )
diff --git a/xen/arch/x86/i8259.c b/xen/arch/x86/i8259.c
index 5c7e21a751..c19d2fe7b4 100644
--- a/xen/arch/x86/i8259.c
+++ b/xen/arch/x86/i8259.c
@@ -419,9 +419,8 @@ void __init init_IRQ(void)
          * the interrupt.
          */
         cpumask_copy(desc->arch.cpu_mask,
-                     (boot_cpu_data.x86_vendor &
-                      (X86_VENDOR_AMD | X86_VENDOR_HYGON) ? &cpumask_all
-                                                          : cpumask_of(cpu)));
+                     ((cpu_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/guest_pt.h b/xen/arch/x86/include/asm/guest_pt.h
index 21473f9bbc..cc3e9b504c 100644
--- a/xen/arch/x86/include/asm/guest_pt.h
+++ b/xen/arch/x86/include/asm/guest_pt.h
@@ -314,8 +314,7 @@ static always_inline bool guest_l4e_rsvd_bits(const struct vcpu *v,
                                               guest_l4e_t l4e)
 {
     return l4e.l4 & (guest_rsvd_bits(v) | GUEST_L4_PAGETABLE_RSVD |
-                     ((v->domain->arch.cpuid->x86_vendor == X86_VENDOR_AMD)
-                      ? _PAGE_GLOBAL : 0));
+                     ((cpu_vendor() & X86_VENDOR_AMD) ? _PAGE_GLOBAL : 0));
 }
 #endif /* GUEST_PAGING_LEVELS >= 4 */
 #endif /* GUEST_PAGING_LEVELS >= 3 */
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index cc2934bfca..8e3706fb98 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -2011,8 +2011,7 @@ 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))) &&
+                    cpu_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/setup.c b/xen/arch/x86/setup.c
index 27c63d1d97..26b17aab8f 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1406,8 +1406,7 @@ void asmlinkage __init noreturn __start_xen(void)
          * CPUs with this addressed enumerate CET-SSS to indicate that
          * supervisor shadow stacks are now safe to use.
          */
-        bool cpu_has_bug_shstk_fracture =
-            boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+        bool cpu_has_bug_shstk_fracture = (cpu_vendor() & X86_VENDOR_INTEL) &&
             !boot_cpu_has(X86_FEATURE_CET_SSS);
 
         /*
@@ -2038,10 +2037,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 || !(cpu_vendor() &
                                  (X86_VENDOR_AMD | X86_VENDOR_HYGON));
     if ( opt_smap == -1 )
-        opt_smap = !pv_shim || !(boot_cpu_data.x86_vendor &
+        opt_smap = !pv_shim || !(cpu_vendor() &
                                  (X86_VENDOR_AMD | X86_VENDOR_HYGON));
 
     if ( !opt_smep )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:18:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:18:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223603.1531083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOXf-0004Ny-JG; Fri, 06 Feb 2026 16:18:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223603.1531083; Fri, 06 Feb 2026 16:18: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 1voOXf-0004Nr-Gg; Fri, 06 Feb 2026 16:18:47 +0000
Received: by outflank-mailman (input) for mailman id 1223603;
 Fri, 06 Feb 2026 16:18: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=qUCI=AK=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1voOXd-0004Nc-Tp
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:18:46 +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 81f36b62-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:18:44 +0100 (CET)
Received: from DU2PR04CA0077.eurprd04.prod.outlook.com (2603:10a6:10:232::22)
 by VI0PR08MB10800.eurprd08.prod.outlook.com (2603:10a6:800:205::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Fri, 6 Feb
 2026 16:18:37 +0000
Received: from DB5PEPF00014B91.eurprd02.prod.outlook.com
 (2603:10a6:10:232:cafe::2f) by DU2PR04CA0077.outlook.office365.com
 (2603:10a6:10:232::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 16:18:10 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B91.mail.protection.outlook.com (10.167.8.229) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 16:18:36 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AM8PR08MB6435.eurprd08.prod.outlook.com (2603:10a6:20b:317::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 16:17:33 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 16:17: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: 81f36b62-0377-11f1-b161-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=GTUppB/BHbxz54Ar06VKNARHj3IUYtVvF/U47RuGYlBOz+h8LQ4Wg+ZD105XoNKufw01caFJqk4XF+dvz8R49Je4GrlQUeNmTswJgViu6GW995hzzsUY2WHbTwyj6I9y+aCdizalNNhb6BmKlB8gPx6bd6nkNsamSCg/Piu2bZrtWWoZcqTp5THOwX6fmxTo/dbqlNfIZgy6YlEKJayVrPWzeeCwZT5UONx2BElW/nDcVX4qJhkDACSQTyFMq5swomZMuNWcfj4pPeWbt31XFSvT1SDsIW9Eo+KzLV/9ZRGz4GwS9HUP5WJ3zKHa4hM+EwRBsQiOlCFDMgSuTF5ahg==
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=uM+MsmT9gJMdqsLx2cZgzlibgHr5q5kJQWH0GYLA3xc=;
 b=kshrmkzjj8pVtKNoB8gU5bOuAXDwVX10uMBk32IPjh9Is1nO24uZEGT9NbEdUc1q5cN0RpQC1ciDfpEYqGmZaJlgB8nNSTrpbxyTqKorHPafRz5SPlB6Au/kLHupmw8y/z3WOCcy7aS6LBo/0KDdP/ZAHN42UJMuuyilLcxY5zEJLR7XB/SB6DHjicOIx4jHK8RZSgnpbDqoIxnUADpoJqJZngHQSEAcPFwuzc9Nr8/yOrBNqa6woixf1KcaHFcneU/FH13uPjx58cW9c1envcCjDS31d0tlEm2R5CqI4RnmckiIfdlEXFeZYveF0BjuM44RkrViKGXZ7SSjiJS1JQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uM+MsmT9gJMdqsLx2cZgzlibgHr5q5kJQWH0GYLA3xc=;
 b=gxMDi5xRv9HAhgqdQbzth/0GO9OR0k+9P0M0w9pRQBiugUBt9oZCngIslOgwmUc6i9LKu3OJ+iWtNe0QlzZcXcBuowMyn4GRtzTzR5OGVohjHNtNEl0+JSxMutTMoUJwuFUo0VrxgEei+RXuL6+fEz2bPr6nPOAXgsoUSqijNcU=
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=jOnvKZuK+IoIv2mF4jujPb/N7XEnZjTB2BAL69UmxKC9TVVe2ldd9R9hOeqT9TGKZqY980cO9zjUVIy15wflkuJ0/yBymQdRcvhc09Gtk/JpnOmvK13OHqQBqUs6ugM5HDkfvtd1NdVkXhGzwxwUDRjS+6PLjO9GyHepj24dvvOEog4VLartD46710ipSxVGFrOXiVG5faIgC96/sWYDgj0qOi8TBcqMCUJoNjS7yOxP/lWStv7L4Jsjq3F2vmHXCHlST4OIAisoo5nVnrn0Y9xRCYrYyIJtMvVaq97whIN+pvY9JPwjadbDNVD48wGOApIv9/TUdCr55asxiX0Ktw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uM+MsmT9gJMdqsLx2cZgzlibgHr5q5kJQWH0GYLA3xc=;
 b=XE2Q+XJE6uUwTJg9RkcEhV40YgN6hpGvM24K4af5YeMOXezjDijvpNTzVQZTmdjFTwp6stHNp2lbW4lBXNSMRfQuTns/JmCkDPbkcOSGcYZLd2vU/y+Lqcwe9784PDiy2vw9rJHRjulcdnX2UzFhpy0BEe8EvraER2wDn3UOmIC38UR98dOO7ZlppGWdOT3oFyt6bFoWS+BCAa72Row3xD4RCTKANVsh3VyOO0Ljb9aFInk0DutqWd3X53mJwumq/ACjulbTHNFc3IA/9x/G+m3+Wfuit03qDNlkLRy6gfVrOpwYvjmyCAB1om1lgQWhr56F/t9T/A7EOQqc/ezH6Q==
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=uM+MsmT9gJMdqsLx2cZgzlibgHr5q5kJQWH0GYLA3xc=;
 b=gxMDi5xRv9HAhgqdQbzth/0GO9OR0k+9P0M0w9pRQBiugUBt9oZCngIslOgwmUc6i9LKu3OJ+iWtNe0QlzZcXcBuowMyn4GRtzTzR5OGVohjHNtNEl0+JSxMutTMoUJwuFUo0VrxgEei+RXuL6+fEz2bPr6nPOAXgsoUSqijNcU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 02/12] xen/arm: ffa: Fix MEM_SHARE NS attribute handling
Thread-Topic: [PATCH 02/12] xen/arm: ffa: Fix MEM_SHARE NS attribute handling
Thread-Index: AQHclTP7K3wg+ZaqtkSBKsmCVp4oSLV1a3IAgAByTIA=
Date: Fri, 6 Feb 2026 16:17:33 +0000
Message-ID: <24BD5FEB-06D2-40C0-A928-376A104B9E55@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <9886df295f4c4365668576cc956299ee36f36c8b.1770115301.git.bertrand.marquis@arm.com>
 <CAHUa44G9sGWp18EX=Zb-C-jDJn_V6BmEVvnza7t6gcx3rjsRww@mail.gmail.com>
In-Reply-To:
 <CAHUa44G9sGWp18EX=Zb-C-jDJn_V6BmEVvnza7t6gcx3rjsRww@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AM8PR08MB6435:EE_|DB5PEPF00014B91:EE_|VI0PR08MB10800:EE_
X-MS-Office365-Filtering-Correlation-Id: 7d1b92a1-e5c4-4488-5e49-08de659b61d4
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?d2tQK2V1Z0xiY1RKUGt5T0FKb3hSNE1OOTZpWkhiZ002VGxMQ3YzL1hjMC8r?=
 =?utf-8?B?dUhiSDVHYnVnTVNvdEFselRiMVAzRFNucGZYNlB6anYwd3JGUG5aRWZPVW53?=
 =?utf-8?B?b0tpL0ZHbUtLN3I1MzdtOEJyRUNjVmEzS3U0by9lMDJmaTU0V0k0MWl1Yngz?=
 =?utf-8?B?TmcybHE2c25pUVJDYkxMNFRyWi9rc1JmTUhwKzdaS2pzbzFzOHhpSkh2cjBI?=
 =?utf-8?B?dGtCekg5N3pISDE4U3hzU2NUb1FxSWhGTjlVV2E2bytld0tPSjFGZkhrMEdh?=
 =?utf-8?B?ZCswa1U2U2cwVzV1UUsrNlp4MFpUbENYZXVkR3M4QlorQkN6SWRkbFU5T0o1?=
 =?utf-8?B?bDI4amVFek5teWJHWFFKUzNHTTFMeVNQNFFKTFFIdXBKMWZONHZxdWYzeURW?=
 =?utf-8?B?RXZtSWx6eHl0MzFCNTV2OCtham9USFk5V0U3eG5FaTZjVE1YWDNwVjZOaVdS?=
 =?utf-8?B?bUEzaHVZUHRxVERMWWs5OE1EaVZabVZGRS9acHBnMmJsYnBCMkhPWXdXSzRx?=
 =?utf-8?B?MGs4bDdLbXByZUlqbXBFOEhWQWFRNjBLR0JYYnYyaWpzeFRWZUg5Q3JQd2J3?=
 =?utf-8?B?dmdHeWdxdXZzYXdQM3hMS25wZmZkZWpLeUorV285YUdOb0pTS2ExNXlEb1V4?=
 =?utf-8?B?SzlhWkt3SmtFY0ltY1hscGFHT0NlWW0zS1pHdlBDc2Zma2pxdG11cmIzam9C?=
 =?utf-8?B?WVpiRUpoTlRKeGhTdUt2WFdOS2lhQ0xHTW9taDJiLy9OTFhOVkdOTEFRSTdC?=
 =?utf-8?B?SXp5aFlqejkxVFlHWUR1ZVZHU3JCWVZmYm5yT3d4NXA0bWF6Yzd6NkRwSTQw?=
 =?utf-8?B?dVNxQnhibmdFeVFVSVpLNmNMak9hSzBmVFYzbFdSaUVkNTBhQ3k5VWxIWWxU?=
 =?utf-8?B?V2tSSkljazZXaFBLKzNZaytVNDVyKzc1ZnhGNEhxV0F1cVBXSDZidFl3dHdF?=
 =?utf-8?B?RFR1TjNsUU9vb3hHVEVLV1MzVW9wMUxJRVlKblZkQllvMVBFeUxUZDVyUnp4?=
 =?utf-8?B?TTJHSXN0ZUJTZ2srWDFCamN5SUxwekRuTTNrZU1HcW1LVXg3bXU1dUczbSty?=
 =?utf-8?B?eUFGb3JHcWJOamg2a005OUZ5VmwraDZ3d2Y1SHdzZ2Y2TTdETndOYnoyOUtB?=
 =?utf-8?B?SGRFcHo0aUE1cStUV1pHSlNQWDVLUm1iMlF0M0ZDRkNiRXFFZ0l5M2g1L2cx?=
 =?utf-8?B?RmdYaTBTNkpVcmtYV1hOR0lqL3NMQkF0MEJrTVBQSFJzakhHcmx5QUEwbjdk?=
 =?utf-8?B?cGFwR25uaDlhMUdHUWhIYVN4VnBPc3Y1SStuK1F6ZlgvUHRTMDhBUk5Rc2R5?=
 =?utf-8?B?a1VLSGNyN1o0MytyNzFsd3o5NVRxQno4UUVjYzhubTlXZnhTM0hKbE5tVWZL?=
 =?utf-8?B?REpBWVpvejJKK1U4ekt4QzF6anhrS1licnJUSFhFaUdBajdsb3dWUjR6ZDBh?=
 =?utf-8?B?Qkp6M3lHVTgyczBtRXZVcFV5NGpEd3YvMnZZaG84YS9RSXhud3pVWnhaM3Ew?=
 =?utf-8?B?N2JOSDVSV2NoVHpyN210bkcxdmlUTE1CZUllREh1R2lYRXFQTE5vMGhrZmVi?=
 =?utf-8?B?WEN6NnRaVUM5cGlMOXlBZlQwd1ZPQU1xVStwbDZ3Qk9Sd240aG5BbVBnSVhh?=
 =?utf-8?B?d0c0YTI1dEJBOTZkdGJtU2V4Z3pucXAxZFMrd2dnWWZNUnFrMDhxSUhGbVc5?=
 =?utf-8?B?emNSUzNJdk00VXQ1U1IrViszNmQyOWFqMGpXVlJnblVVRjZ3WGtZaVM5bzBp?=
 =?utf-8?B?SzQ5c2dDZDVicDJZOUJzT0dXdCt5dHFRZ1d0UWk3ck9iZCtrM0dKMFhlWDY1?=
 =?utf-8?B?MXNrMjJ6dWFyVnNIRkY4U3dZKzEvNGxZZ1R4VHltcDVVMEUyemZlYllra085?=
 =?utf-8?B?OHllUVo1R3BmSjBqKzMwYXFiMktsbjQ2cXdLU0EwaExERTFEa2xXdVNZbHly?=
 =?utf-8?B?aWhwd0pybHgzeVh3TTZkMEpPam1mWmxybTZmaGo4SWhKS0c2all5WmtKNU9q?=
 =?utf-8?B?b2p3R1BoRVlOQkM1ZGRRLzE0cjF0ZWk2TEV4YjZkYUlKeTZhb0M5VWxjcStH?=
 =?utf-8?B?NUlhTUlzMFpXdEVaNEExQ1VEWm1GbDg4bEFZT2t0VldZdS9naDB3QUtxQUF4?=
 =?utf-8?B?K2gxRGo0M1BqYlJONnV3a01RRkFLZFYydTZFUGJLNjd4NmdPbFNST29pNG5S?=
 =?utf-8?Q?BL+Hj0AY8Z6+cJn5FZWejqI=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <D65CDC11FEE31F47A2C3233E33BA6E19@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6435
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B91.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	59e91ed0-b287-4167-3ec9-08de659b3c00
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|14060799003|35042699022|376014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bFk4NndCVy9zcWwxcXFOY2ZjZjFsdlZzcGJzVGttU05ZbFFZTmxBc0ZKZWJK?=
 =?utf-8?B?RndUZmVPbTZnU1NQa241WXBFK0pteVM4dmRCcDZiMVdUMVVzZVZqcDlWV3Bu?=
 =?utf-8?B?d3BHNTRzN1ZTQlNyUDZMRVZJVmdFeGUzN2lScWtvOFNFTmNvQ01XdEY5RWVl?=
 =?utf-8?B?M2Ivc3NpTlZxTkRSN3MxQ1pDRXlJN2RnMmtONS9QVzk4cXFRVFJlRE5EMkFs?=
 =?utf-8?B?bWN4VHdmRUJXYWNlUEVaeEY1L1huUHp6TEJaaHN0R0xlZzBneFBBUmtzMXBV?=
 =?utf-8?B?S0tJRHZpWDByWjRZT210T2lBNlpEREhjcHdYVDV3VTVkZFNXUEkyVFlDUFFl?=
 =?utf-8?B?dVIxUGFDeE52LzREZzBqMEVIc2pyTWt6YjhJQmxhTTFnczNjRG5GWU9GQldz?=
 =?utf-8?B?ZmNqUzAyazJDSmYzWERtOEdqaG8wVUhTWEEwellybk84bzk2VE1XL2JpcWNq?=
 =?utf-8?B?QTlYcGRnRldXelUwOEtLdllicEp5V1JKS0QyVXM3M0dwN3FOalJRY0dXOW5t?=
 =?utf-8?B?eWdobzYxL1lGZmJabEZXWDBBZi8xeXhSMkNTVy85dFNUYnY3L2hRNnNWSUIr?=
 =?utf-8?B?K0ZjVTdaMWRLRHlZSU0wczR5ZmFqNkZJWWowdEV1R0dxbUNwbEFlekFzVGIw?=
 =?utf-8?B?elZQd2xhdUlQVGpuTGYycU9rV2tBQW9wNSt3YTM2SkNLNmZJOWhab2VLcENq?=
 =?utf-8?B?TnY2TlpscjBTTFlXc3pvSnExRDN2U2hMQ1QvUHdsMDdSNU9mUHRMVzdKWTBL?=
 =?utf-8?B?b0hLMjZ0ZTV1TTN2SjE4L2RRd1hIK1VydWEwNnRWRkxnSVFWY3B6aFl3d1Bv?=
 =?utf-8?B?RTI2WFp3YW9ROTNHd0tuK1dpNEFvZVEvK2J1Z2YrL0VvL2NqOHkzVEowSE5h?=
 =?utf-8?B?QXhJYk05NTArdzBqajZ6Y2VCYTFzanhteEd3WmhFU1NVUENiQmFlVW5EYWR5?=
 =?utf-8?B?aHVjVkZPcDFUc04zdVNrSWhtdUJNUWdJdE9XcG5Pb1ZBb1hlb3pSUGliTkF6?=
 =?utf-8?B?dXU1RS9WRXkzWUlITmVuYWlLMGhXKzFTc2tFUTFJcXRJRXBwbE9jSVJKVUVh?=
 =?utf-8?B?VCtINUdFaHdVaE5ySmhKdlBaMUdxeVJxV0Z6c0Zyd2V5bDBSZUxmdjRJRW5l?=
 =?utf-8?B?bTVjVEZKb2FVMlZUbU9kaDNGa3VuMjQ5cXVaZ01EQ29BaGI3Y2RPak1nTlo5?=
 =?utf-8?B?M1F0TDUvRzdyZjZOQlNYMVRFbS9LaU1uN21LSUM5WWQxYmQrWmc4bFgxMm1D?=
 =?utf-8?B?ZGZsbE8xQURSYktMNE8yMjJidy9EUDVpU3lKT1c2QmdMVzlPQU91V3VEcDVD?=
 =?utf-8?B?MTNBcWhwQ01xb3IyTlBydWF5MUlBRHY4THBmT0xiYVVZZFZzTDhKZWE5MmJH?=
 =?utf-8?B?NjYrQ2wwMVFXcUM0MmxmZ25DVDNlWEUxOGtCbTRJNThvaThHVCtUWnU5c0s0?=
 =?utf-8?B?b09MZXdMSnA2UU15clN5cW9GdTd3SGF3L1hWck5HSmdxaDM3VWRqSDRKd3du?=
 =?utf-8?B?Z1EzNUlXY0ZEQnJiWlk5V0J3aXYvdlZldFdHM21CckdQLzZIS09ER3VhTXJO?=
 =?utf-8?B?WEVoUVBoSUsrTEhGWExQODJvbkZ2cmNDS0F2UmIwTUlzaVlVMXQraUdNRy9y?=
 =?utf-8?B?SGxwUFM0N0ExdGdsaStyUU1ZektLeUk0VDZES0lkeFBWSmFMWC9leEdYNEI3?=
 =?utf-8?B?YmZFNXdFUFVzdFpSa0lpZUJ0RXVKYTNFZkEvTGNvRCtHN1MrQnozd0lEaDNq?=
 =?utf-8?B?N2ZxZ2VybTN6WVE2dmcwUTdPOVcyaXBWVFJnVWZPVGp1ZDg5YmVYbUpJTUZJ?=
 =?utf-8?B?Z041Yk9BaitIQlE5VHNKLzlCM0hkVVdtd0JDbjA1WUllQjREWVVkWjhaUlZt?=
 =?utf-8?B?ZDVsZkhHb2tiaWVrazQxVWRNUmRyK3ZVRXU2UzZlR2FmdGRiNlp5SVRDZTJ4?=
 =?utf-8?B?R0NieDhFTmVWZHBOOFBId2thSlppanVyc2FzVExjem5WeTJIRHFKVHo3bFBu?=
 =?utf-8?B?eU5TbFVMZm5raFQ5dUlLSzdVZDBXQ01rczZUaGNsUHo0bmJtR3gyMUpSSFhv?=
 =?utf-8?B?SDNRVXNRZHdIVnBoL2J6anFHTDRHNVhVUVNWcmdUT1BVTGpzdWFDSTNRdkdC?=
 =?utf-8?B?ZlBOMzgvWDVudDJON2JjUUlFL1ZvTjhaN3ZxZjh4M0lIcVZUNlNWRlF4ZE1V?=
 =?utf-8?B?UHRiZEpBMG51UXpTYnVjWWVqSTVpY1pjQ2VBaG9hbUFJaE81S2VYb2ZHQXNx?=
 =?utf-8?B?TDVnNWJqNzU1WTV5ZDBmak9wc1pRPT0=?=
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)(35042699022)(376014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	SkT9H1KHE2xNLALQTBlN489eeiOsdxtDvq9TEBkvqufKZ38zmoA0PEKc5BmG/BY510Xe4lIe75rYPntHMbLv5p8hlFU8Y0T7baMnex+0YoQe9cYKxeDSqONJwjBFkZ7q2BpOqwDGakNr8EZFbDSfo0xl2HZ3MakQ7bqZT4dGhIIsc3QEOU4mo+WcQ/ttnJDAiA3gEAQfz8/Xvhsfnfv1hy8qJ+2QIwu9XH93cZPHxGT/xJUHDl+k7/sAP6kHmPa6MQP30ccxUzKEExqi1C+VwFBKTrNrzUtGBWE88CXLPFGNdZK8a72gX2MFfsykBejFgJOUoKx4EtCaEHKfnOCwzkRV/Q2TAiqDPcM45NWbMiIKby/WXRSf4LSxC+YcK9IMzm0VLlZhmMaSf7l+lwNLN8wyN8VitXJepTolLDN3gntWNce04gEC3Fm8/tIq9Zo5
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:18:36.7795
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d1b92a1-e5c4-4488-5e49-08de659b61d4
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:
	DB5PEPF00014B91.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10800

DQoNCj4gT24gNiBGZWIgMjAyNiwgYXQgMTA6MjgsIEplbnMgV2lrbGFuZGVyIDxqZW5zLndpa2xh
bmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiANCj4gT24gVHVl
LCBGZWIgMywgMjAyNiBhdCA2OjM44oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8YmVydHJhbmQu
bWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gVGhlIEZGLUEgbWVtb3J5IGF0dHJpYnV0
ZSBlbmNvZGluZyBpcyBjdXJyZW50bHkgYSBsaXRlcmFsIHZhbHVlICgweDJmKSwNCj4+IHdoaWNo
IG1ha2VzIHJldmlld3MgYW5kIHZhbGlkYXRpb24gaGFyZGVyLiBJbiBhZGRpdGlvbiwgTUVNX1NI
QVJFDQo+PiBhY2NlcHRzIHRoZSBOUyAobm9uLXNlY3VyZSkgYXR0cmlidXRlIGJpdCBldmVuIHRo
b3VnaCB0aGUgbm9ybWFsIHdvcmxkDQo+PiBtdXN0IG5vdCBzZXQgaXQgYWNjb3JkaW5nIHRvIEZG
LUEgc3BlY2lmaWNhdGlvbi4NCj4+IA0KPj4gSW50cm9kdWNlIG5hbWVkIGF0dHJpYnV0ZSBiaXQg
bWFza3MgYW5kIGV4cHJlc3MgRkZBX05PUk1BTF9NRU1fUkVHX0FUVFINCj4+IGluIHRlcm1zIG9m
IHRoZW0gZm9yIGNsYXJpdHkuDQo+PiANCj4+IFJlamVjdCBNRU1fU0hBUkUgZGVzY3JpcHRvcnMg
d2l0aCB0aGUgTlMgYml0IHNldCwgcmV0dXJuaW5nDQo+PiBJTlZBTElEX1BBUkFNRVRFUlMgdG8g
bWF0Y2ggRkYtQSB2MS4xIHJ1bGVzIHRoYXQgcHJvaGliaXQgbm9ybWFsIHdvcmxkDQo+PiBmcm9t
IHNldHRpbmcgdGhpcyBiaXQuDQo+PiANCj4+IEZ1bmN0aW9uYWwgaW1wYWN0OiBNRU1fU0hBUkUg
bm93IHJlamVjdHMgZGVzY3JpcHRvcnMgd2l0aCBOUyBiaXQgc2V0LA0KPj4gd2hpY2ggd2VyZSBw
cmV2aW91c2x5IGFjY2VwdGVkIGJ1dCB2aW9sYXRlIEZGLUEgc3BlY2lmaWNhdGlvbi4NCj4gDQo+
IFRvIGJlIGZhaXIsIGl0IHdhcyBhbHNvIHJlamVjdGVkIGVhcmxpZXIsIGJ1dCB3aXRoIGEgZGlm
ZmVyZW50IGVycm9yIGNvZGUuDQoNClRydWUsIHdpbGwgYWRhcHQgdGhlIGltcGFjdCBjb21tZW50
IHRvIHNheToNCg0KRnVuY3Rpb25hbCBpbXBhY3Q6IE1FTV9TSEFSRSBub3cgcmVqZWN0cyBkZXNj
cmlwdG9ycyB3aXRoIE5TIGJpdCBzZXQNCndpdGggdGhlIHJpZ2h0IGVycm9yIGNvZGUsIElOVkFM
SURfUEFSQU1FVEVSLg0KDQpUZWxsIG1lIGlmIHRoYXQgd291bGQgYmUgb2sgZm9yIHlvdSBhbmQg
aWYgaXQgY291bGQgYmUgZml4ZWQgb24gY29tbWl0IHdpdGgNCnlvdXIgUi1iIGlmIGl0IGlzIHRo
ZSBjYXNlLg0KDQo+IA0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxi
ZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+PiAtLS0NCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZh
X3ByaXZhdGUuaCB8IDE3ICsrKysrKysrKysrKysrKystDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2Zm
YV9zaG0uYyAgICAgfCAgNiArKysrKysNCj4+IDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9u
cygrKSwgMSBkZWxldGlvbigtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3Rl
ZS9mZmFfcHJpdmF0ZS5oIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBpbmRl
eCBjZDdlY2FiYzdlZmYuLmI2MjVmMWM3MjkxNCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2Fy
bS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0
ZS5oDQo+PiBAQCAtMTI5LDExICsxMjksMjYgQEANCj4+ICNkZWZpbmUgRkZBX0hBTkRMRV9IWVBf
RkxBRyAgICAgICAgICAgICBCSVQoNjMsIFVMTCkNCj4+ICNkZWZpbmUgRkZBX0hBTkRMRV9JTlZB
TElEICAgICAgICAgICAgICAweGZmZmZmZmZmZmZmZmZmZmZVTEwNCj4+IA0KPj4gKy8qIE5TIGF0
dHJpYnV0ZSB3YXMgaW50cm9kdWNlZCBpbiB2MS4xICovDQo+PiArI2RlZmluZSBGRkFfTUVNX0FU
VFJfTlMgICAgICAgICAgICAgICAgIEJJVCg2LCBVKQ0KPj4gKw0KPj4gKyNkZWZpbmUgRkZBX01F
TV9BVFRSX1RZUEVfREVWICAgICAgICAgICAoMVUgPDwgMykNCj4+ICsjZGVmaW5lIEZGQV9NRU1f
QVRUUl9UWVBFX01FTSAgICAgICAgICAgKDJVIDw8IDQpDQo+PiArDQo+PiArI2RlZmluZSBGRkFf
TUVNX0FUVFJfTkMgICAgICAgICAgICAgICAgICgxVSA8PCAyKQ0KPj4gKyNkZWZpbmUgRkZBX01F
TV9BVFRSX1dCICAgICAgICAgICAgICAgICAoM1UgPDwgMikNCj4+ICsNCj4+ICsjZGVmaW5lIEZG
QV9NRU1fQVRUUl9OT05fU0hBUkUgICAgICAgICAgKDBVKQ0KPj4gKyNkZWZpbmUgRkZBX01FTV9B
VFRSX09VVF9TSEFSRSAgICAgICAgICAoMlUpDQo+PiArI2RlZmluZSBGRkFfTUVNX0FUVFJfSU5O
X1NIQVJFICAgICAgICAgICgzVSkNCj4+ICsNCj4+IC8qDQo+PiAgKiBNZW1vcnkgYXR0cmlidXRl
czogTm9ybWFsIG1lbW9yeSwgV3JpdGUtQmFjayBjYWNoZWFibGUsIElubmVyIHNoYXJlYWJsZQ0K
Pj4gICogRGVmaW5lZCBpbiBGRi1BLTEuMS1SRUwwIFRhYmxlIDEwLjE4IGF0IHBhZ2UgMTc1Lg0K
Pj4gICovDQo+PiAtI2RlZmluZSBGRkFfTk9STUFMX01FTV9SRUdfQVRUUiAgICAgICAgIDB4MmZV
DQo+PiArI2RlZmluZSBGRkFfTk9STUFMX01FTV9SRUdfQVRUUiAgICAgICAgIChGRkFfTUVNX0FU
VFJfVFlQRV9NRU0gfCBcDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGRkFfTUVNX0FUVFJfV0IgfCBcDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGRkFfTUVNX0FUVFJfSU5OX1NIQVJFKQ0KPj4gLyoNCj4+ICAqIE1lbW9y
eSBhY2Nlc3MgcGVybWlzc2lvbnM6IFJlYWQtd3JpdGUNCj4+ICAqIERlZmluZWQgaW4gRkYtQS0x
LjEtUkVMMCBUYWJsZSAxMC4xNSBhdCBwYWdlIDE2OC4NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJj
aC9hcm0vdGVlL2ZmYV9zaG0uYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5jDQo+PiBpbmRl
eCA4MjgyYmFjZjg1ZDMuLjkwODAwZTQ0YTg2YSAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2Fy
bS90ZWUvZmZhX3NobS5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0uYw0KPj4g
QEAgLTUxMiw2ICs1MTIsMTIgQEAgdm9pZCBmZmFfaGFuZGxlX21lbV9zaGFyZShzdHJ1Y3QgY3B1
X3VzZXJfcmVncyAqcmVncykNCj4+ICAgICBpZiAoIHJldCApDQo+PiAgICAgICAgIGdvdG8gb3V0
X3VubG9jazsNCj4+IA0KPj4gKyAgICBpZiAoIHRyYW5zLm1lbV9yZWdfYXR0ciAmIEZGQV9NRU1f
QVRUUl9OUyApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJRF9Q
QVJBTUVURVJTOw0KPj4gKyAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPj4gKyAgICB9DQo+PiAr
DQo+PiAgICAgaWYgKCB0cmFucy5tZW1fcmVnX2F0dHIgIT0gRkZBX05PUk1BTF9NRU1fUkVHX0FU
VFIgKQ0KPj4gICAgIHsNCj4+ICAgICAgICAgcmV0ID0gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0K
Pj4gLS0NCj4+IDIuNTAuMSAoQXBwbGUgR2l0LTE1NSkNCj4+IA0KPiANCj4gTG9va3MgZ29vZCwg
YnV0IEkgdGhpbmsgdGhlIGNvbW1pdCBtZXNzYWdlIG5lZWRzIGEgc21hbGwgdXBkYXRlIG9yDQo+
IGNsYXJpZmljYXRpb24uDQoNClRoYW5rcy4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiBD
aGVlcnMsDQo+IEplbnMNCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:21:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:21:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223624.1531094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOag-0006AU-7b; Fri, 06 Feb 2026 16:21:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223624.1531094; Fri, 06 Feb 2026 16:21:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOag-0006AN-3o; Fri, 06 Feb 2026 16:21:54 +0000
Received: by outflank-mailman (input) for mailman id 1223624;
 Fri, 06 Feb 2026 16:21: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=qUCI=AK=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1voOaf-0006AB-4w
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:21:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id f1e6e323-0377-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:21:52 +0100 (CET)
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 316EC339;
 Fri,  6 Feb 2026 08:21:45 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.55.24])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CBD193F632;
 Fri,  6 Feb 2026 08:21:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1e6e323-0377-11f1-b161-2bf370ae4941
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>
Subject: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
Date: Fri,  6 Feb 2026 17:21:44 +0100
Message-ID: <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen does not provide a Darwin build configuration for selecting
GNU tool definitions. On macOS, the tools we use are either GNU
compatible or we only rely on features supported by Mac OS, so
using the GNU tool definitions is appropriate.

Add config/Darwin.mk to include StdGNU.mk and force
XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
the cross-compile path as we depend on the Linux ABI so compiling
on Mac OS is always a cross compilation case.

An example of how to build the hypervisor for arm64 on Mac OS
(tools cannot be build for now) using a toolchain from brew:
- brew install aarch64-elf-gcc aarch64-elf-binutils
- cd xen
- make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v3:
- set XEN_COMPILE_ARCH to unknown instead of Darwin
- list binutils as a dependency to install in brew in commit message

Changes since v2:
- Subject was "xen: Add macOS hypervisor build configuration"
- Update Darwin.mk comments to more accurate versions (Jan)
- Remove the build-on-macos help as we have no dependency on anything
  coming from brew anymore and the toolchain can be retrieved by lots of
  other solutions than brew on mac os. Switch to a simple doc in the
  commit message instead
---
 config/Darwin.mk | 7 +++++++
 1 file changed, 7 insertions(+)
 create mode 100644 config/Darwin.mk

diff --git a/config/Darwin.mk b/config/Darwin.mk
new file mode 100644
index 000000000000..176b27eac676
--- /dev/null
+++ b/config/Darwin.mk
@@ -0,0 +1,7 @@
+# Use GNU tool definitions as the tools we are using are either GNU compatible
+# or we only use features which are supported on Mac OS.
+include $(XEN_ROOT)/config/StdGNU.mk
+
+# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
+# Force COMPILE_ARCH to a fake value to make sure it is always the case.
+XEN_COMPILE_ARCH = unknown
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:37:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:37:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223644.1531104 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voOpE-0000At-By; Fri, 06 Feb 2026 16:36:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223644.1531104; Fri, 06 Feb 2026 16: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 1voOpE-0000Am-9P; Fri, 06 Feb 2026 16:36:56 +0000
Received: by outflank-mailman (input) for mailman id 1223644;
 Fri, 06 Feb 2026 16: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=RA+/=AK=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1voOpC-0000Ag-E5
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:36:54 +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 0a7f5404-037a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 17:36:52 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso21047305e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 08:36:52 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43629754c62sm6410513f8f.38.2026.02.06.08.36.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 06 Feb 2026 08:36:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a7f5404-037a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770395811; x=1771000611; 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=3iKjscCOfwDt9D3tqFrpxr7mrqRlHECUuBkOTLEFi14=;
        b=XyvzeglVqNEyeEIxI1Kn6htrcsjnzK/knDqAq0sqS1Tlg7zwjRIYbuHNmR11VyUud9
         wUvSatq/le2Z2H5+omF9SyG9K/CFu+nlGUU9BKbRl4QcfrS8qP26u2rstzPsvQZS2pGX
         H6vZzKnB6y1EbF5MZ4njy6ILmpplPKps3NJKwybo1R5w4WdB8qtQnH1UpTA5yutT/A5u
         WESCDpg8QeeNupMEavelwufDRKopquVJXi3RzuOm2catsfDP9JtoMGRmWNE246UkjuzS
         TU7EP9uZ72dJvKlIIZ2u4KYpRWvsrq+RNeP1/EnqcJOYYL/KH+1RfaV4xhx6iWfmlkBw
         fE5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770395811; x=1771000611;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=3iKjscCOfwDt9D3tqFrpxr7mrqRlHECUuBkOTLEFi14=;
        b=OZrlEKJecx8Lux9Gr2gyuTiytWHIO5Ml43hmTArhgayUd68sFCABSWO8P6sfnbyVRt
         b/TXYRKDqRWirBXvEnE12zyMQ3KCjMAn6KHBJBxG2MekIZqRTqnivtdFvldX+WbXngsg
         oC6ji1UOdSIHfaVkz/TAQ13pab2Gf+2tgrhew1kyrRcez7A1C+LAckesMXS5XItPQp9G
         FW/CoBznTsmfYewTsac7efBGqOPJY3BGDNKla110Y61rHr0l7eY8nXHYKMsfrhA6lR6+
         mWApa2Bdh6V6KhXqFgEytytypnbGpjWEqtZL4BKjohA7J8nRJJsTjXcM8cNd3o5tsavX
         qG6Q==
X-Gm-Message-State: AOJu0YyiILGiZm1XNYQRATNC2W8j7pIOvTWHBDIhFKDegbpYdiGHsX4G
	q75TKG+ZjTb2Cncbp4vYLhFAYjyULKWyfiozMEZxqO2e5yMhSk7JFcorMTQdtA==
X-Gm-Gg: AZuq6aJtk1Tbv+fIAdzJPsr+C9We3N4oVCZ+jrzPYaRj2I2lEVPort5sG7tcu5dfK6x
	O9XEyxqLo0B2Ajc1zY9u5txPxJ5dtGzpPFE09fwkJag1TJgLOfbQOFvV/FQq3Ti5/5jOJX6JjJq
	4ateFLsEFbHSUdoRcncSeAqJbFLLfArZES9uI4UdNtSjF8F13D+Zq0xORH8X2UEEcGAMo6m979Q
	GMuzaQzBwaWkJyYse9YlBv0shF/bJL+yDac/q5PGvKIVnkYKvnh8/DAV1YKjSJgT5WJymsRod/X
	imt+Lj/yS8kFfcfu/uT7AY4YL3oeLig3l+omknA2IAmyxoJ52A0Z28ovJBsNq1ulbkahe2d8n8w
	t0RV0KV2mWA+jMICShre84caV0TE5mX0zCuYxxgHWaQzEzM8AlVrg/cNaPNxRml9anYvcjpWxb6
	rjw0xORXwb3ujb9xI+MbcSma5SXwZExt+Hdln42kTiNJZIL03IkAMur/wJHIVN7V0=
X-Received: by 2002:a05:600c:3b23:b0:47f:8c05:786b with SMTP id 5b1f17b1804b1-4832021eae9mr49223655e9.28.1770395811199;
        Fri, 06 Feb 2026 08:36:51 -0800 (PST)
Message-ID: <14d19350-0de8-4496-99e5-0ba76e421684@gmail.com>
Date: Fri, 6 Feb 2026 17:36:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/16] xen/riscv: introduce vcpu_kick() implementation
To: xen-devel@lists.xenproject.org
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <0335a7db0343d81ce4256482a464e7ba5df1c204.1769099885.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <0335a7db0343d81ce4256482a464e7ba5df1c204.1769099885.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 1/22/26 5:47 PM, Oleksii Kurochko wrote:
> Add a RISC-V implementation of vcpu_kick(), which unblocks the target
> vCPU and sends an event check IPI if the vCPU was running on another
> processor. This mirrors the behavior of Arm and enables proper vCPU
> wakeup handling on RISC-V.
>
> Remove the stub implementation from stubs.c, as it is now provided by
> arch/riscv/domain.c.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> Changes in v2:
>   - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
> ---
>   xen/arch/riscv/domain.c | 14 ++++++++++++++
>   xen/arch/riscv/stubs.c  |  5 -----
>   2 files changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
> index e38c0db62cac..13ac384c4b76 100644
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -1,8 +1,10 @@
>   /* SPDX-License-Identifier: GPL-2.0-only */
>   
> +#include <xen/cpumask.h>
>   #include <xen/init.h>
>   #include <xen/mm.h>
>   #include <xen/sched.h>
> +#include <xen/smp.h>
>   #include <xen/vmap.h>
>   
>   #include <asm/bitops.h>
> @@ -240,3 +242,15 @@ void vcpu_sync_interrupts(struct vcpu *v)
>   #   error "Update vsieh"
>   #endif
>   }
> +
> +void vcpu_kick(struct vcpu *v)
> +{
> +    bool running = v->is_running;
> +
> +    vcpu_unblock(v);
> +    if ( running && v != current )
> +    {
> +        perfc_incr(vcpu_kick);

Because of this it is needed to introduce:
   PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
Otherwise randconfig build will fail when CONFIG_PERF_COUNTERS=y.

I would like to ask if it would be okay to add it xen/include/xen/perfc_defn.h
just after PERFCOUNTER(need_flush_tlb_flush,...) or would it be better to have
it in arch specific perfc_defn.h?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:51:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:51:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223660.1531114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voP30-0003lr-Gt; Fri, 06 Feb 2026 16:51:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223660.1531114; Fri, 06 Feb 2026 16:51: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 1voP30-0003lk-E1; Fri, 06 Feb 2026 16:51:10 +0000
Received: by outflank-mailman (input) for mailman id 1223660;
 Fri, 06 Feb 2026 16:51: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=8zO+=AK=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1voP2y-0003lb-Cr
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:51:08 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 06d3514a-037c-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:51:06 +0100 (CET)
Received: from BL1PR13CA0374.namprd13.prod.outlook.com (2603:10b6:208:2c0::19)
 by IA0PR12MB7675.namprd12.prod.outlook.com (2603:10b6:208:433::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 16:50:58 +0000
Received: from BL02EPF0001A0FD.namprd03.prod.outlook.com
 (2603:10b6:208:2c0:cafe::61) by BL1PR13CA0374.outlook.office365.com
 (2603:10b6:208:2c0::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 16:50:53 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF0001A0FD.mail.protection.outlook.com (10.167.242.104) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 16:50:58 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 10:50:57 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 08:50:57 -0800
Received: from [172.21.218.86] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 6 Feb 2026 10:50:57 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06d3514a-037c-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pEXmQJOZLbrdrgablsIQLDZ7E0yuFvX0bnxcyYjbl2w3iYKaXrK91kqmy9ZZ9F9t9zqaqeLsjXRd2FcCmWZSfG6MZ4wODKsB6Y6STNHO/43wZ0pqLA60dIJLVyShq1PjTABoaOs3ODoL/MUvERrMLlubZIM9PDgc+YfFdY5+KLoAk+/qI1k+fCRelrstN24Jm1ptOKyqnKzxa5x/kwC0mbY3V2f72mftuBAPjkz5zihM6ts/dUUWIkdc6YOMyZU1DORbDc5qlQyAXh0p0JkTSMZQDddLULRuoLgSnBlVvZEU/kXlls+NYnAb5IwBcBYOUEAze8oo8LOqTtRtIpDYDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZvvMK4Jo0DtuAqT718GzL7NN1KijCPgjnisX+GZoXe4=;
 b=QPZD50emyBEO/vc+3AwQ1dWUy93E0jZdggGZbkGW0mGG79fa1k9xUTuGcsq6lZcMbVWNNhERbRBlv1bnNbWb81nX8QVytDRWP+dNLFQvjzwxvST9ra/5CUom9zyxGZjcs6/2h65vW31Zy4hXBQu4ulyzGkepm8df67Meg+Qglq4ZV/7Udepc3keEEIp4tkELeFs7kEgxZWDqxhB6hWaMOT9mj8MFkl42oNIi4/T4XPGBLtmrGj7aJmaadBGgy/U1rcAmO5S2+y3SDqh0D88cmH8kw2WKOKOI8VCk9SJm6x4hIxVAgnqLzI6VDEMGN0mvbutEgi8cQ/inzBerW9JjKQ==
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=ZvvMK4Jo0DtuAqT718GzL7NN1KijCPgjnisX+GZoXe4=;
 b=WPy+I9daKjEaiATVzPLKWag5w9DIM3nwMOLS5sWOxSl5eS03YYmefGsg0UYJtblwSn0wAD52Z85UpVW57y7lrvk1GGTSIxwUI3snCWvIOhwXIqzWdf3i7ug0aqN4o0eVDNghzS4a2XY7Ie9ZtI2DcVkFuJWn/XocLM+V4Tl6L00=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <9aef904b-348b-45e9-be44-afaea6d3eb3a@amd.com>
Date: Fri, 6 Feb 2026 11:50:56 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/cpufreq: Add Kconfig option for CPU frequency scaling
To: Stefano Stabellini <stefano.stabellini@amd.com>,
	<xen-devel@lists.xenproject.org>
CC: <jbeulich@suse.com>, <andrew.cooper3@citrix.com>, <roger.pau@citrix.com>
References: <20260206013222.4081160-1-stefano.stabellini@amd.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20260206013222.4081160-1-stefano.stabellini@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: BL02EPF0001A0FD:EE_|IA0PR12MB7675:EE_
X-MS-Office365-Filtering-Correlation-Id: a85afc23-718b-43b6-8557-08de659fe6e4
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?UzBEd3FNWXRzMGNIeCttMU9hYTBvbjY2ckpHWkM0S1d3bVYxNFB2aDZzWmli?=
 =?utf-8?B?aXBIRFZDcWNwREZQcTlhRHNjZUEwKzhvS3QwNUlsSWlWd2kzdmloSGc5V09L?=
 =?utf-8?B?bUczbzRjS1RycWIxRkJhMDNReDl4bXNXRE9HRmdsZXJQc2U5dFJNL0FOTit6?=
 =?utf-8?B?MjVyRWRyVld2MGYzaFFzSWFpazRDWlpGeFluL05GSzMvNHV1akxKdVo4UGhO?=
 =?utf-8?B?VjNOM0pUZ1BkWEVNU2RSU09ESEsvaUVGV2t3bWRQcVo2ajBQamxlWTlDcnkz?=
 =?utf-8?B?K01iKzVDOTlLcEtyM1pxWCtQSm45WHVxMVNySzcwc0kxSEpRVU9qL2lnYjZm?=
 =?utf-8?B?QWJVVGREdktCc0VqTFZseFVabFA3dmRHc1p4M0tRUlRibG5yeHFqak1yMDRo?=
 =?utf-8?B?bXNmeWlEOFdIdGM0QVpId0FUS2dtcHJBVzliZVpTYkszQUVkZ3BuZk1kZ2dx?=
 =?utf-8?B?Szhpd1pDbU5YQW55RldoV000YWFnZVh2TGRjaDJKT0VWQi9rcDRWR3hveW9R?=
 =?utf-8?B?LzdMVHhuOU81Um5xbStWTFI0TXRGUlo1OFpUYVZGb3huR3REMHlPRXBkVDlV?=
 =?utf-8?B?Mk9nZk16cHJXcWtaa08wenkxMzdxK0RiKzc5c3kxY0lORVdONU1MdEQ3NUpF?=
 =?utf-8?B?ajZJMEJWNDhxQjN3UldKbWwwNjB3Q1hUT3EwK09OdXZrT0xBSlZIa0pRME5h?=
 =?utf-8?B?bC96MVJBbFdDSjhkZ0NOTGE5ZVA0eFZ3VFc1MUFub2llRGZTNDdQeEZ2MERz?=
 =?utf-8?B?WFVEUmVPbG9mc3JMNjluamxIbEllbEV0M1M0UXhpNE96L09nVmJkY283bXk1?=
 =?utf-8?B?WVlQRVFiS3gvTWVNTitYbVJBMUNkR0pYanc4OHgwYVA4cndZMG9DR3h2MnRU?=
 =?utf-8?B?REJ5dGJIeU1laU9lWXpta1BDRkR3YVNMMHBKVFhMa0psSHNHWTZkeEkxWUsx?=
 =?utf-8?B?Q2ZWZHREUlA0Z0VaVWRWUEh1WldUTVdFaHY1TjVVZms4WXhMajZaa3F4Z05J?=
 =?utf-8?B?d21pYU1ydHoyMkp6TlUxdVROeXVFejBlbGNISU5TTm5PZlRNcUFUM0dXZEdv?=
 =?utf-8?B?dE5GMUNRVHo5VDlnT1JFUk1yNHB3ODJETUIxWG5XVERhUFdEV0tTUG16aVBa?=
 =?utf-8?B?bTNxb3RseTZFR2dGeXNjYTh0VWNNS3NMdWVQM3p4eE9WUWh0SkgxVm9ubGdx?=
 =?utf-8?B?c0w0ay9LV1F0K0FMMFJrQ3FoZXBtc0FKcVdxUEhKQURmdzkycXFSN3Z5ZHhE?=
 =?utf-8?B?K21xWS9vUXdMREdsazc1d0FhbDFabVJENGw0eVhOcnJOZUcyT2hjMXBIYzhz?=
 =?utf-8?B?bS9GczI1Z1lPVGV0SC9MN0twM0NkczJDUHgvU2JaaEFUVDNibnhWYVc2aXkw?=
 =?utf-8?B?ZXNQTzVBOFhFenJkNGNXeXdueGhHVnByRk9mZW5sb1E4cW45T3ZmQWNEUWJC?=
 =?utf-8?B?cHVBVzVQSGVGbGFnVXErMnBWenlnVmhVb05wcXVzS3JhVHdtMXgrcitmZm1t?=
 =?utf-8?B?QUZXaXFkNG5uS3NMOURQWXRPMURzYkFHRGtBdVp3c01nMG1LaGczdDRmbC9t?=
 =?utf-8?B?aU9COU43WXI2cnMycENrZmlkRENpd25pWk9uYzJjdm9vL0JoZUNmVEFJYjAw?=
 =?utf-8?B?ZWlNYVQ1aTlVK0V2U05ETXlYY1k0eWFWVVZFVUZEUmI0ckxReUhYNndkNkI1?=
 =?utf-8?B?VERGQ0NocjN2cE5LVXdyN0VlbWVQeUNlRXZVekhWYjI3UnBoTEM2MGxPbGNh?=
 =?utf-8?B?OVRMNGk2a05Qc21PbS9Ic0tMNVFkbEhhVG9FckhJUkRlNlhPZk5TVzZ3anJl?=
 =?utf-8?B?alpaaEhPNUlUbDEwRDZXWktsNjhYSk9YMkRpZVFQdEVkR0h1NUVQd29uc1ZJ?=
 =?utf-8?B?RmRtR2xMWUNhSk5KbWUweTA4M2d4bXI0WVdwdmh4aW1OUnRHcG4xYzFPQzhv?=
 =?utf-8?B?NndaSFJEajB5RHFxUVNuTzZNZ0NaME5vRzVFenhJblBsM2VCbmlqZHVoSWIx?=
 =?utf-8?B?RS9keDBVbGlCaXFTMDI3dlhJZzFaVkZjOTFIbmJDbHg1THo2T3Z6WDA3R1c3?=
 =?utf-8?B?R0h5NmRCalkvR1lFUGtkcDNXOEtqSGJNbUdaNndyWnNsMHEyM1dsajVwMlZG?=
 =?utf-8?B?a091VVp1TXBHN3FxenJLTnYyYWpHVlU1dkRzK2hLSHhEZWRXWHlxUHBOWHFx?=
 =?utf-8?B?QVBkNXZlbGw1M045MUpNM3hNeHFSSWhZS2xwYi9XMlVsamdSanF4a3JYRXc2?=
 =?utf-8?B?ODJJNHZIUytmS1d0VXBCc3EzcUFRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	pf0sRNTSFjUA0GAQSx2vTiAlDJrHzN+t+X6miI+pAzQeW8EWEU3DmHfu/sGbSC9um6l/Qhog5F7ltRETevKqSznedCtlY3KJxlZdHA9fsq8lTRr9R+uySBeLl4ftlMde3O4A+PfUkCJXiCls+YkNwVkNWVWZDEnjLNiszPa2v089Y2uw7YAxRdppvLGTTIwTkUtxZQ50tjpzlK0LzvRCI+Pf8p5tBfPki8axH8PfGcmF4WjHYa2/CZUBTr953PadLD/7ds8ORPPkouoNtrBOmQRzKKmuo79EhUeEtonlMkk2rALlxeeMZkdCUyhE3VUfGHCoUCbRheKFQgr93O/v/24qxrag1PZSEMRb6ztf7irm4xQuRfoCl88LXzyEcrswj3MMb6VyofIrLLUoJrJrZaiSOQr0dGwzHZ4w1Oxt84AF/hKKaVwt90MQJ5n2WmZ7
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 16:50:58.0772
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a85afc23-718b-43b6-8557-08de659fe6e4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FD.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7675

On 2026-02-05 20:32, Stefano Stabellini wrote:
> Add CONFIG_CPUFREQ to allow CPU frequency scaling support to be
> disabled at build time. When disabled, this removes cpufreq code
> from the build.
> 
> Add stubs where necessary.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 16:58:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 16:58:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223670.1531123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voP9O-0004dn-6J; Fri, 06 Feb 2026 16:57:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223670.1531123; Fri, 06 Feb 2026 16:57: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 1voP9O-0004dg-3k; Fri, 06 Feb 2026 16:57:46 +0000
Received: by outflank-mailman (input) for mailman id 1223670;
 Fri, 06 Feb 2026 16:57: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=C95x=AK=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1voP9N-0004da-E0
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 16:57:45 +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 f3ac846b-037c-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 17:57:43 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfout.stl.internal (Postfix) with ESMTP id 8E0081D00089;
 Fri,  6 Feb 2026 11:57:41 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Fri, 06 Feb 2026 11:57:42 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 6 Feb 2026 11:57:39 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3ac846b-037c-11f1-b161-2bf370ae4941
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=1770397061;
	 x=1770483461; bh=fdei6A8Fv4G08+sQSJ06Za50Yavvk3tX+aq5jzNB1wg=; b=
	rBnxDer3O29CxSJ2JTGeSBi7N+3wUbgsBXif/NU3xMTWBLcTKNhQSJNwwJFbg3lq
	Jo/2M3z2RUMffV3adZ8iamRlfLPY5WtimrsfcJ6eOBQPzuAiLTjfrV0b+1EYtcue
	lmo/hEji/UYgT5ekOc1Dy/CkU6M7GJSV4jwKLEY2uQZb+l2rdouE+cAQJF1y8dZL
	epNUd83zOzI4u746AjZa8XhxLmQLHytO2t0bCKGWVZiWG2HmtnghSUzECymSWnZn
	acPXoDl8IlaAtjhnQ9VQiXHyUtGWjNx4yqpRchc9BpTfjo+l3fDa28U7QA6GKeBo
	HnnF7+T/8vCpKbzECy3XGg==
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=
	1770397061; x=1770483461; bh=fdei6A8Fv4G08+sQSJ06Za50Yavvk3tX+aq
	5jzNB1wg=; b=DL1g5BcjX/E+F9Jp3+8NmuPC7styb3BfG94kopqevU97Ptl635R
	XcBj5OoJMB0LJBGivzE0j0yJGFLNxj1PDHGZHc+hz76WVmrUSp1Z8JzN8YU8VQQF
	GsmsAVR8d2kM+eBACuNCeWPQ3b+audocL328o/65tVnqv1EhJh+szjrjBTuydHqe
	zHChXPfcP2QSvX8s86erKUOj693RT0v/olxWxUeqs8TaV95BuaJeY90RrAXGUJEW
	2ufPDIzxPSLJr3Frs/g/+/OI4TL/GjrkkBQ0wjmUXxCTREeMmAhOtc57q3q2uKI7
	qO+0M4gyTP+3gevyecOnxMs+wgGU8yjVL5A==
X-ME-Sender: <xms:hB2GaS5hYtMQTXWJctQjxIZEBoy7eUYdB3W-xzCbk8wqBChPVSPg2g>
    <xme:hB2GaX6yUr8y8EblxgUxBNv-UD93Br51qwhhawh5qwCeLKMSQgS1E9wl-tS-RJ0J7
    x1dQbWFgZUKrUGIXiDmhk6hEoJteAF_Saieeg94RN7E1DVGQg>
X-ME-Received: <xmr:hB2GaTqEfhV-tteecrjqb4rJI293h_EodkdEkGR2MJumEEVQc9FdjlWzuhqsOUhENuwksKmuOEAYUsKywzOrTZUPaiC2fzTlGgs>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddukeekjeduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepledtleeu
    ueeugeekudejgeffgfffheelieehgeffleeikefhuefgjedugfduffdunecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghdpghhithhhuhgsrdgtohhmpdhnvghtfihorhhkrdhphien
    ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmh
    grrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphht
    thhopeekpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjghhrohhsshesshhush
    gvrdgtohhmpdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhn
    vghlrdhorhhgpdhrtghpthhtohepshhsthgrsggvlhhlihhniheskhgvrhhnvghlrdhorh
    hgpdhrtghpthhtohepohhlvghkshgrnhgurhgpthihshhhtghhvghnkhhosegvphgrmhdr
    tghomhdprhgtphhtthhopehjihgrnhhgrdhpvghnghelseiithgvrdgtohhmrdgtnhdprh
    gtphhtthhopegthhgvnhhqihhujhhiieeiieesghhmrghilhdrtghomhdprhgtphhtthho
    pehjrghsohhnrdgrnhgurhihuhhksegrmhgurdgtohhmpdhrtghpthhtohepgigvnhdqug
    gvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:hB2GaQNJ1jVub0lMmmKZQEMTQZXwqIMn9r3K3adt--DqaBc2_yizEw>
    <xmx:hB2GaT2dt-EVv4j8LNM0GvYP8tbVNzVXLiN9Y_ePfHJAq9QmlwDEUw>
    <xmx:hB2GaXB2O_p656wqNDpv9GQq4tHWR9rjOCgH3WakjN-rVwLWAHVarQ>
    <xmx:hB2GaYI9esgJQrlQWeDbaK-9bmISleRuFnLRXralJaxJ3lDOzyVvuA>
    <xmx:hR2GaQyYMfkxYEB3g83E9UIwGVsWQGRDx8hkC-V69yQS07-U9Z3Jt0Cg>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 6 Feb 2026 17:57:37 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Peng Jiang <jiang.peng9@zte.com.cn>,
	Qiu-ji Chen <chenqiuji666@gmail.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"moderated list:XEN HYPERVISOR INTERFACE" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/xenbus: better handle backend crash
Message-ID: <aYYdgXMKnMCfXob7@mail-itl>
References: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
 <e6ab32d7-b1eb-428b-95e8-a90f7b3be39c@suse.com>
 <261c3ced-7f40-4c2f-93da-0e020f9bcf3a@suse.com>
 <e1060ba2-7985-4e80-9d84-fb738758e3b3@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="RiDRDFZVGyD/fnDn"
Content-Disposition: inline
In-Reply-To: <e1060ba2-7985-4e80-9d84-fb738758e3b3@suse.com>


--RiDRDFZVGyD/fnDn
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 6 Feb 2026 17:57:37 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Peng Jiang <jiang.peng9@zte.com.cn>,
	Qiu-ji Chen <chenqiuji666@gmail.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"moderated list:XEN HYPERVISOR INTERFACE" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/xenbus: better handle backend crash

On Thu, Jan 29, 2026 at 08:02:35AM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> On 26.01.26 08:08, J=C3=BCrgen Gro=C3=9F wrote:
> > On 17.11.25 12:06, J=C3=BCrgen Gro=C3=9F wrote:
> > > On 02.11.25 04:20, Marek Marczykowski-G=C3=B3recki wrote:
> > > > When the backend domain crashes, coordinated device cleanup is not
> > > > possible (as it involves waiting for the backend state change). In =
that
> > > > case, toolstack forcefully removes frontend xenstore entries.
> > > > xenbus_dev_changed() handles this case, and triggers device cleanup.
> > > > It's possible that toolstack manages to connect new device in that
> > > > place, before xenbus_dev_changed() notices the old one is missing. =
If
> > > > that happens, new one won't be probed and will forever remain in
> > > > XenbusStateInitialising.
> > > >=20
> > > > Fix this by checking backend-id and if it changes, consider it
> > > > unplug+plug operation. It's important that cleanup on such unplug
> > > > doesn't modify xenstore entries (especially the "state" key) as it
> > > > belong to the new device to be probed - changing it would derail
> > > > establishing connection to the new backend (most likely, closing the
> > > > device before it was even connected). Handle this case by setting n=
ew
> > > > xenbus_device->vanished flag to true, and check it before changing =
state
> > > > entry.
> > > >=20
> > > > And even if xenbus_dev_changed() correctly detects the device was
> > > > forcefully removed, the cleanup handling is still racy. Since this =
whole
> > > > handling doesn't happend in a single xenstore transaction, it's pos=
sible
> > > > that toolstack might put a new device there already. Avoid re-creat=
ing
> > > > the state key (which in the case of loosing the race would actually
> > > > close newly attached device).
> > > >=20
> > > > The problem does not apply to frontend domain crash, as this case
> > > > involves coordinated cleanup.
> > > >=20
> > > > Problem originally reported at
> > > > https://lore.kernel.org/xen-devel/aOZvivyZ9YhVWDLN@mail-itl/T/#t,
> > > > including reproduction steps.
> > > >=20
> > > > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblet=
hingslab.com>
> > >=20
> > > Sorry I didn't get earlier to this.
> > >=20
> > > My main problem with this patch is that it is basically just papering=
 over
> > > a more general problem.
> > >=20
> > > You are just making the problem much more improbable, but not impossi=
ble to
> > > occur again. In case the new driver domain has the same domid as the =
old one
> > > you can still have the same race.
> > >=20
> > > The clean way to handle that would be to add a unique Id in Xenstore =
to each
> > > device on the backend side, which can be tested on the frontend side =
to
> > > match. In case it doesn't match, an old device with the same kind and=
 devid
> > > can be cleaned up.
> > >=20
> > > The unique Id would obviously need to be set by the Xen tools inside =
the
> > > transaction writing the initial backend Xenstore nodes, as doing that=
 from
> > > the backend would add another potential ambiguity by the driver domain
> > > choosing the same unique id as the previous one did.
> > >=20
> > > The question is whether something like your patch should be used as a
> > > fallback in case there is no unique Id on the backend side of the dev=
ice
> > > due to a too old Xen version.
> >=20
> > I think I have found a solution which is much more simple, as it doesn't
> > need any change of the protocol or any addition of new identifiers.
> >=20
> > When creating a new PV device, Xen tools will always write all generic
> > frontend- and backend-nodes. This includes the frontend state, which is
> > initialized as XenbusStateInitialising.
> >=20
> > The Linux kernel's xenbus driver is already storing the last known state
> > of a xenbus device in struct xenbus_device. When changing the state, the
> > xenbus driver is even reading the state from Xenstore (even if only for
> > making sure the path is still existing). So all what is needed is to ch=
eck,
> > whether the read current state is matching the locally saved state. If =
it
> > is not matching AND the read state is XenbusStateInitialising, you can =
be
> > sure that the backend has been replaced.
> >=20
> > Handling this will need to check the return value of xenbus_switch_stat=
e()
> > in all related drivers, but this is just a more or less mechanical chan=
ge.
> >=20
> > I'll prepare a patch series for that.
>=20
> In the end the result is more like your patch, avoiding the need to modify
> all drivers.
>=20
> I just added my idea to your patch and modified some of your code to be m=
ore
> simple. I _think_ I have covered all possible scenarios now, resulting in
> the need to keep the backend id check in case the backend died during the
> early init phase of the device.
>=20
> Could you please verify the attached patch is working for you?

Thanks for the patch!

I ran it through relevant tests, and I got inconsistent results.
Specifically, sometimes, the domU hangs (actually, just one vCPU spins
inside xenwatch thread). Last console messages are:

    systemd[626]: Starting dconf.service - User preferences database...
    gnome-keyring-daemon[975]: =E2=90=9B[0;1;39mcouldn't access control soc=
ket: /run/user/1000/keyring/control: No such file or directory=E2=90=9B[0m
    gnome-keyring-daemon[975]: =E2=90=9B[0;1;38:5:185mdiscover_other_daemon=
: 0=E2=90=9B[0m
    xen vif-0: xenbus: state reset occurred, reconnecting
    gnome-keyring-daemon[974]: =E2=90=9B[0;1;39mcouldn't access control soc=
ket: /run/user/1000/keyring/control: No such file or directory=E2=90=9B[0m
    gnome-keyring-daemon[976]: =E2=90=9B[0;1;39mcouldn't access control soc=
ket: /run/user/1000/keyring/control: No such file or directory=E2=90=9B[0m
    gnome-keyring-daemon[976]: =E2=90=9B[0;1;38:5:185mdiscover_other_daemon=
: 0=E2=90=9B[0m
    gnome-keyring-daemon[974]: =E2=90=9B[0;1;38:5:185mdiscover_other_daemon=
: 0=E2=90=9B[0m
    xen vif-0: xenbus: state reset occurred, reconnecting
    systemd[626]: Started dconf.service - User preferences database.
    xen_netfront: Initialising Xen virtual ethernet driver
    vif vif-0: xenbus: state reset occurred, reconnecting

And the call trace of the spinning xenwatch thread is:

    task:xenwatch        state:D stack:0     pid:64    tgid:64    ppid:2   =
   task_flags:0x288040 flags:0x00080000
    Call Trace:
     <TASK>
     __schedule+0x2f3/0x780
     schedule+0x27/0x80
     xs_wait_for_reply+0xab/0x1f0
     ? __pfx_autoremove_wake_function+0x10/0x10
     xs_talkv+0xec/0x200
     xs_single+0x4a/0x70
     xenbus_gather+0xe4/0x1a0
     xenbus_read_driver_state+0x42/0x70
     xennet_bus_close+0x113/0x2c0 [xen_netfront]
     ? __pfx_autoremove_wake_function+0x10/0x10
     xennet_remove+0x16/0x80 [xen_netfront]
     xenbus_dev_remove+0x71/0xf0
     device_release_driver_internal+0x19c/0x200
     bus_remove_device+0xc6/0x130
     device_del+0x160/0x3e0
     device_unregister+0x17/0x60
     xenbus_dev_changed.cold+0x5e/0x6b
     ? __pfx_xenwatch_thread+0x10/0x10
     xenwatch_thread+0x92/0x1c0
     ? __pfx_autoremove_wake_function+0x10/0x10
     kthread+0xfc/0x240
     ? __pfx_kthread+0x10/0x10
     ret_from_fork+0xf5/0x110
     ? __pfx_kthread+0x10/0x10
     ret_from_fork_asm+0x1a/0x30
     </TASK>
    task:xenbus          state:S stack:0     pid:63    tgid:63    ppid:2   =
   task_flags:0x208040 flags:0x00080000
    Call Trace:
     <TASK>
     __schedule+0x2f3/0x780
     ? __pfx_xenbus_thread+0x10/0x10
     schedule+0x27/0x80
     xenbus_thread+0x1a8/0x200
     ? __pfx_autoremove_wake_function+0x10/0x10
     kthread+0xfc/0x240
     ? __pfx_kthread+0x10/0x10
     ret_from_fork+0xf5/0x110
     ? __pfx_kthread+0x10/0x10
     ret_from_fork_asm+0x1a/0x30
     </TASK>

(technically, `top` says it's the xenbus thread spinning, but it looks
like the actual issue is in xenwatch one)

Note that other xenwatch actions in this domU are not executed, for
example `xl sysrq` does nothing. Not surprising, given xenwatch thread
is busy... Fortunately, it blocks only a single vCPU, so I'm able to
interact with the domU over console (to get the above traces).

It isn't a reliable failure, in this test run it failed once, out of 4
related tests.

The specific test is: https://github.com/QubesOS/qubes-core-admin/blob/main=
/qubes/tests/integ/network.py#L234
In short:
1. Start a domU
2. Pause it
3. Attach network (backend is !=3D dom0)
4. Unpause

TBH, I'm not sure why the "state reset occurred" message is triggered at
all, I think it shouldn't be in this case...

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmGHYEACgkQ24/THMrX
1yzAmQf+NRGy8QTLgD4KZEUEwmKcOoJt0GuZ7D6tvKQSWciyTrBlUf68vuVPyZLq
JIq18vc7BjqyecbfsOxID/vULrP0Gk6s4dQzC4vjZo3Cq3eNkTNgrJsNqVOU/dQV
vweIA/Xochl8VdUB4q1gpKBvuwzXFjbOZ3Ec4R3ynnBdJBHNGI1IYJ7UMdftNi6Y
lPqKfyKL8E0s8f814lfGemyS1y27K5iYqq5TdqoOtZvy4Qa1/3KXe61QYwgwjmZ7
VpvGKIxSHB1hh8KK1jI7RQTLhpZHC3qWhvd3SXKFfopMt2b+XROe1ZX1UmmYWsGY
kB28LvL2H2Wg0NtuT/5uC+j6RwdFtA==
=Jub0
-----END PGP SIGNATURE-----

--RiDRDFZVGyD/fnDn--


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 17:25:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 17:25:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223692.1531141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voPaL-0000p8-Fv; Fri, 06 Feb 2026 17:25:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223692.1531141; Fri, 06 Feb 2026 17:25:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voPaL-0000p1-DB; Fri, 06 Feb 2026 17:25:37 +0000
Received: by outflank-mailman (input) for mailman id 1223692;
 Fri, 06 Feb 2026 17:25: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=wPAo=AK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1voPaJ-0000ov-U6
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 17:25:36 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d54202e6-0380-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 18:25:30 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH7PR03MB7089.namprd03.prod.outlook.com (2603:10b6:510:2be::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Fri, 6 Feb
 2026 17:25:26 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 17:25: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: d54202e6-0380-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tGueE9H0FCvSvztRFa+pBiJzLGEXlwNB78n0Rg2JmmfzJRsS1D+PFchNSxD9ITXgP+q+SS2uRQUhRnmofvAsEB0BHtY+pInU0D4WqyIjP3XOv4BfgIZ724xZ4IZ8bT2l0x6rMCbng5cTZDrPvNpCejNKzczYoBMe+ZWPXQ4ZiIa3JYwCVXeDBUJZHLSJlk6KzA/GrrI8l5qYJbjrH/OXpFxTKswXGeycPGNQhFOVdy9z7/kZSATZAHaQELlgbHNp9C6EVsUzRbk7v6wdGQMQZF82/Fpw33IttsQs2sn8uy/biWxVysLFWymBlsoJ3xgXFRj0HqtygWwwazIUyTVqjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W8yVKOREDqy9T21MoTAdzSRdS+jRroDbGTxS5xDp5Uw=;
 b=TO0RGVB0+xUgsS+jUuS8CwwNAx6Dq/tuok/lQiycHDr8i00vvv7/G2ttF8iWRqUzJL6FGjmv3HRHGuJKMTnkH8IOjigemY6u3D5+iCanDiWsgCU1U/C+S+Kyp3ZZ3lbB+hdBLyKQ8JMEpbmlvyMFObiuM5LXtoi/y8aZhNJ87v6uAtdzPT/XtWlefZadRELAbxHbA2L6KfDgYVT6ieAKY974RGF5QLO1Yw/wdDEIwCSKHtHEfMQDeDW1gCdVrJBvcSmdr0DxBdtqd8+hJZzAKiCTi3njETHafrEOHzUbUjNiK8G8YCVAgAvCH42mrjZZ/iIYHcSwrdl7iXLv0oXmyg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W8yVKOREDqy9T21MoTAdzSRdS+jRroDbGTxS5xDp5Uw=;
 b=GhATLbaEM+/r1LVqx+BVjQ8fPfnBGgF+OTsmkVOANsTS6Ax+mAqZScIYsK2LLTlWIvQwNEobkvowt9NkAIq9HkAxGoApy6s89bYntzUBdL9O2BRfhWf2BezywItMYU9ZLctTIItRUCvIDB8v4NtR8xajE+0CAE+okEreMV25pBs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 6 Feb 2026 18:25:22 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <bertrand.marquis@arm.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 v4] xen: Add Darwin.mk for GNU toolchains
Message-ID: <aYYkAvGQygf2eNI7@Mac.lan>
References: <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
X-ClientProxiedBy: MA3P292CA0012.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH7PR03MB7089:EE_
X-MS-Office365-Filtering-Correlation-Id: 1cdac1aa-e012-417f-42ed-08de65a4b6a0
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?L2h6RUhBUkhTWUlSOFlvN29lTjl5eUZGdmcwNEVNVTl0L1VaN05vVlpNQWtq?=
 =?utf-8?B?MlU0d0RITkx2aFg5Tzh0T0pmRnpMb2QwTXljM3NYYXpraVl2UFRZYVZ4emhy?=
 =?utf-8?B?WkJkbXBBVkk0TTN2R2MrVWMxTnlNN3lBTmpRNHBFNEV2VlRSVFVqbm9LdVlI?=
 =?utf-8?B?bEM0Y0NqK0lHeUNJQTBDcUZoUEpFRm1ueVNURFV6bFBHbDRnOGgweVBOcW96?=
 =?utf-8?B?U3BFYTBCN2tVNm9PZnI5My9pVGU5QUxLNTZEd1lCbTNGN05Qcjdud2MwVUx1?=
 =?utf-8?B?WDZ3YWxLaVFvK3VXOFZXa0lLUmJ5bnNMMC9Tc2xqa2xRSStFS0hES1N1d0NI?=
 =?utf-8?B?QWdQV0d0eHdUUFdyeW1Sa3VISEV6MzY5TStPVmdaSHFvSVlTVEdtb2lvcGJF?=
 =?utf-8?B?RTVadkFIS3hMUDZhbWtuK1I3MHdvR0xUL0FkTmFJOW1TTlQyV3psaEZvTU5k?=
 =?utf-8?B?VllhMDh5U0MzNWxWbXFTR3ZvMENYYkFPVjJhR3M1eHVtSjRMRm9YTEpSK3g3?=
 =?utf-8?B?RUcwczc2cmhVOFJaV291YitVZGNYbSs0QTJvL3FhdTJGUjlLSVVYTE1zazYy?=
 =?utf-8?B?NUpzc2NXU00raUZQYkhUVDhsaFpZeXM3OGJPS0N5TDZmbDZLcGozV1FWRVYz?=
 =?utf-8?B?alZCcjBBL096K0Vhb0hBVGdlS2ZqTmRBblVHOGZEUGdFZzlENmV4N1AzS09S?=
 =?utf-8?B?TTJReXVOQ0dGU3pEWHlHd1RXc2tlb29SZExyRDJmczMzd3hHNWpaKzB3SGh0?=
 =?utf-8?B?SGVVSm5XK01RcDlzU1B6Qmc5VUVmTE9sMll1Rmx3Y0Ntc0laZEdNNkovNDJu?=
 =?utf-8?B?b0xuSXJORnRzVWdVQ3NnNVlkWXlYY2xVZkhha0ZGRGsxVGlxYTl0c0ZFbURk?=
 =?utf-8?B?NGRaT0o3Q0lFYjZIZmpVenRNRVpBQWFjRkl2MnQzQmZXZE1CeHFWY2JGbmly?=
 =?utf-8?B?UmtFeVlVYXR4UjhCVGwzREhvY1hNTlZSL2E3amNFdEpWYlJhd1pNOHE5M0JS?=
 =?utf-8?B?U2Z0c3I0QXc2NXkxbEtrVVlieEpTSWZHWldCWC9wOGN2TFN5K3dZUEFoUjhy?=
 =?utf-8?B?YUFlWlludDI4YkgrU2tJdHJXSWtOMTZWQjlxSWsxbUZZZ2ZHZG5seVJ4MHhQ?=
 =?utf-8?B?UHFZRlcrYTlnT0grOWZtYmtVSzFDbUpDVUNaMjRmcWE2YUV3Rm9uNlJQaGlG?=
 =?utf-8?B?ZzkweWtxb0xybytUdEdnYlRPdTZOcUVxU05QWUs2N0JmUGZ5ekpuWG40U083?=
 =?utf-8?B?WDFFcVdzK1ZSRk9LWlVwbGNrczRVZko1Z3Q5aWxoWWRFVVFHNXphTHNMdmtP?=
 =?utf-8?B?cWZldGVBZWtTOUx4ajNXemZtYStXSVA5dDBZRHoyUnpRZTBOTnc1dXhEWFlR?=
 =?utf-8?B?YjRrdVhyYWM5Qk81RjJ6UGo3MTlOWXk3Rk9Dci9RSHlLV2JuYnZta092MERi?=
 =?utf-8?B?STE2NEpIZU5jOWZ5emJBRUZyUmV6VHY2ZTlVVWFLZFZCMUVqY21kL0lPWXow?=
 =?utf-8?B?L0ZZT28rTlJMaFAwZFJNQmg2am91YXVFZnJSajg4VWlISHUzeWFSVmg0emZF?=
 =?utf-8?B?VXdXSlhrcU9zMXVJbFhXcWo5NEcvd3doQjZsL295TmdoRGlBeExPMlU0b0JN?=
 =?utf-8?B?cXVuTmg2T2JLZjM3eml0R3Myc0lFUjZYVzBiODZnQ3NLV08vMWNJa043K1pr?=
 =?utf-8?B?YlljMzY3OEMxNE13YWJ3b0oreCszai9KTlZsYnhSL01Lck1wWlVPc1ZXd0po?=
 =?utf-8?B?d1FJTHpzVVVZV0JKZlJIT1pyeU5iTGdBS1BYYVNyR0FydEFjdU4xWUtubGNx?=
 =?utf-8?B?L250emg4ZkpoMVVweVBuSk9Wa3BSdCt6cG1MMGZuZUdlU25aekZja21ndGxC?=
 =?utf-8?B?cTRLSmV3NnJ4eXNwYy95TkRycFgvcHEzSm1mVUxUMS8vSFpQU3huSXNoODc0?=
 =?utf-8?B?SDJ3dzFOLzd5bjNVemM1Q3dsajVjUTBycGR0ckNzY1RucDJ3clNybjhaalpF?=
 =?utf-8?B?bVB3NWpweWc5dkhscTU1OFBFMitHc3hNcFlrYXQxVjhybE9keEgvV21UaFpk?=
 =?utf-8?B?RHh6TnJFVXNSL3hUS3NlcnRYQkVYRTRwbThGQThqSmFhWlZaRHY4czNoaGQx?=
 =?utf-8?Q?60yE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dHIxeFhjdUNuVStJeEhTWjJ4VDJKNU1RWmFDRmdFSU5lSytianRTdmEvcG53?=
 =?utf-8?B?ZlpCNkl4MjNRZTdNVm9yK0hGSmJCNmwyZ0Y5dDdEK2djR3dCMXF2MVlFUHJU?=
 =?utf-8?B?OUtJWTczaTZMRG00RUx0Z0hjRU51NkNxUk9zMk1CTlNiQVJleWw1RWJaeUVQ?=
 =?utf-8?B?RWpZeGRBVUh3RG9sWlpsK3QxRmRtZUdFUVVDRkRMbjM4TWg3L2FxWFpLdTVS?=
 =?utf-8?B?QVFXVUFUWjBXV1hSZlE0cngrOUhERWpveGhLcFRlM3l3THh2Vm9KTXZpbGll?=
 =?utf-8?B?bXloL29xR3IxN1I0NTRqQTB3Qm5ZVjlXeFVvTmRMMGhjSEhJZEdDSVpucDVq?=
 =?utf-8?B?SjBpYmdScDNmNWFTSlVsdUJHMGM0NG9MZTZ3bVBBK3ZDdVdSRlFvd2tIOUsx?=
 =?utf-8?B?bVVQUVdwcThMaXBKVUVhSGdyYUNLZVdyVDNENWxUOTBQbWI0TEVSNU1jUHgx?=
 =?utf-8?B?RTFJOWs5S21EcmRaZ3VMSTUyYW9EUDZBTjg1dnRROFZYVGRLMTFwQzMxUEU1?=
 =?utf-8?B?WDVldzBjV3U5SmZ5Nk1RM054NWdGTVhOZm4yUnR4TjNKRW9vQ2Q3R0JvcjRr?=
 =?utf-8?B?UUJBOWY1MEhySWlFZ1psdWVWVEt3cnFjNzFBVXd2TFRLSWlQL3VMcUZuVGth?=
 =?utf-8?B?cVBiUGQ2eWxISVl2VU1aOXhWZDFETW1EZGlpSGgyZlRhbzFEaWNyTm9BZjZF?=
 =?utf-8?B?NDA5QTZaSTRTY016MERVQ3RkQTYvUGY5ZUlBWlZqWGswQzdYZDZBSUlOTitC?=
 =?utf-8?B?NEJmMnhuR3lJOGNnVnVsV0taUWltVlcyWSt3R0hpNC9qdTBZVmJOSnpMZjB4?=
 =?utf-8?B?UG1EZlh3dXlOOEhYa0MvbnpnTmw3aE9xK3pLUk9yeEZSSzQ0SGJzbnFRV2Zy?=
 =?utf-8?B?cDZLODRDNzlSVFJhU2xMbEFJay9laCtyTkhrSGE0Qit4S3pSbFczMEV4dVkr?=
 =?utf-8?B?T0dId0tJai9mSkNWTGNRcVIvNTIxa2FEQmFEb0NpZHZSbUNxWnpxTVVibzk1?=
 =?utf-8?B?ekx2WnR2VndoL2sxZ3Y5OEFoM3M0TjFPVWlqMDIrWWZrLzFyUFl2cWI4ek10?=
 =?utf-8?B?dnVjU0Q0MjNRSmZCUXV6Qm1tNG9Hb3pQb3dod2s2Q0ZFcDAxb0Y2QlFIYVdj?=
 =?utf-8?B?QVY2TWV0RFJvY3FRTmhFZVc2a1NlTEJFc3hERnMrOFB2R3U4VUhjUHhjT2xq?=
 =?utf-8?B?NW5NQWg3ZTdPQXBjNDhWVGNFcGxmU0lobTV2REZERlRMOXhIM1A0K0ZHMDVW?=
 =?utf-8?B?eXJZSW0xVnQ4eFdjeEkrQXBwVmZLT0xqNFYzd2VZRURrVmNTUEF1b0tGclJz?=
 =?utf-8?B?OE5KMUdyRVI3QVJxR1VnZDRaaTRNcjNMdS8rOTJHM1hUTzNDaHR1WUtNMWt3?=
 =?utf-8?B?UjdobEhrcXgwMXgyU0pyQlZESVI2SmJia0J4VWRXYnczTGdvOEgvYUNoTFEy?=
 =?utf-8?B?SndSYWltSU5VQVZyRzNkVy81aVlML2EvRFdUaDF5YnpVZnVLRmVmckRnUHht?=
 =?utf-8?B?bllaMDBGZmVPZUVxZkFzUHFyWEJaZVJYY0tOSFdNL3BPM1ExVzhDZDdqYmpa?=
 =?utf-8?B?dEdDOW13a3RtdlVMMWxQN3JxQUJLd3VNTzJlVTRYYXQzT3V1MUs1L3UyS0Ft?=
 =?utf-8?B?OUtlaG5PSUZHS0JNVmNZdTZER2F6M2pQY2Vyc0hQOVNUaWk5c1JJaytYbW5T?=
 =?utf-8?B?R1hxMm9JMDRteGIxOXFrcld2NGh0OVMrdHBsVGJvWStOeUs3RlVicEUya0FO?=
 =?utf-8?B?aS80MzBSMENEMmgyV0N5aHV3bi9hVHAyeC8rb3pXNnl4ZkhWcHVnZzFCU0I5?=
 =?utf-8?B?cTBpdXBRSlFEZUxWSm1OcXhnV2ZFb28vVVJLWUZLZldEdVRZYzdXQ0gzUGha?=
 =?utf-8?B?ZitBOFczcGtVU05PeE9SeVovQkM3SW9YVmZDS0I1NndmTE1ncFNEa016MldX?=
 =?utf-8?B?NzRLVWpOSW9JR3AxOGVhOFh5MG5wZWJjeVdEQTdvdjlORGdsd1F3QUNJVXFh?=
 =?utf-8?B?c1dtZVM2MWVmc2JjbGpmN1JRVUJiRmpRNGxhcVFJbmRMTFRDSFdCVlBnaW9Q?=
 =?utf-8?B?c2FNa1ZNVHRFRGl2dVpiUkhZUnhyQ3pCbkVBWmt2MVQ1Rk1jZ0R0Y2kyb0RJ?=
 =?utf-8?B?dzhuaUJzdndXVTMzUkdKUUEzb2FSQnJCRXIwdXRIZGVoRmJkbzZxUTY1WmFP?=
 =?utf-8?B?UVhsaXBaQ3prNzArS085Q3RKMitJWnIvVUx4b01ObElyMnN2a0ZYQnJxK3RG?=
 =?utf-8?B?MHR6OWdNV0R5eDd3SysyNDI5MStWSURPT0FKenowcnFMOU50R0J0ekYzYmZG?=
 =?utf-8?B?OHNGcTNlUjMzZDdoMUdxMlZVcDdNb3ZibnhTWjljNnpsR2k4cFpYZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1cdac1aa-e012-417f-42ed-08de65a4b6a0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 17:25:24.7536
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: okJK4dafBMrWo4Y4+EZpzq3yFDB6ynQVk0glK2n+G7/zpskO1VQFVL7TqrlYteeZJGcU1+pRcgxcFJ6XaZt2SQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7089

On Fri, Feb 06, 2026 at 05:21:44PM +0100, Bertrand Marquis wrote:
> Xen does not provide a Darwin build configuration for selecting
> GNU tool definitions. On macOS, the tools we use are either GNU
> compatible or we only rely on features supported by Mac OS, so
> using the GNU tool definitions is appropriate.
> 
> Add config/Darwin.mk to include StdGNU.mk and force
> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
> the cross-compile path as we depend on the Linux ABI so compiling
> on Mac OS is always a cross compilation case.
> 
> An example of how to build the hypervisor for arm64 on Mac OS
> (tools cannot be build for now) using a toolchain from brew:
> - brew install aarch64-elf-gcc aarch64-elf-binutils
> - cd xen
> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang

Instead of `cd xen` I would use `make xen ...`.

> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

One comment below.

> ---
> Changes since v3:
> - set XEN_COMPILE_ARCH to unknown instead of Darwin
> - list binutils as a dependency to install in brew in commit message
> 
> Changes since v2:
> - Subject was "xen: Add macOS hypervisor build configuration"
> - Update Darwin.mk comments to more accurate versions (Jan)
> - Remove the build-on-macos help as we have no dependency on anything
>   coming from brew anymore and the toolchain can be retrieved by lots of
>   other solutions than brew on mac os. Switch to a simple doc in the
>   commit message instead
> ---
>  config/Darwin.mk | 7 +++++++
>  1 file changed, 7 insertions(+)
>  create mode 100644 config/Darwin.mk
> 
> diff --git a/config/Darwin.mk b/config/Darwin.mk
> new file mode 100644
> index 000000000000..176b27eac676
> --- /dev/null
> +++ b/config/Darwin.mk
> @@ -0,0 +1,7 @@
> +# Use GNU tool definitions as the tools we are using are either GNU compatible
> +# or we only use features which are supported on Mac OS.
> +include $(XEN_ROOT)/config/StdGNU.mk
> +
> +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.

Hm, is this actually fully true?  What's the Linux ABI exactly here?

FreeBSD builds Xen natively, and it's not using the Linux ABI.
FreeBSD uses no specific -target to the compiler invocations, and the
linker emulation is set to elf_x86_64_fbsd.

I think the point here is that the toolchain must support building ELF
objects / images, because that's the binary format supported by Xen.
Whether it's Linux ELF or FreeBSD ELF doesn't make a difference for
standalone environments like the Xen kernel.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 18:29:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 18:29:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223759.1531153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voQZX-0000Bz-QW; Fri, 06 Feb 2026 18:28:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223759.1531153; Fri, 06 Feb 2026 18:28:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voQZX-0000Bs-No; Fri, 06 Feb 2026 18:28:51 +0000
Received: by outflank-mailman (input) for mailman id 1223759;
 Fri, 06 Feb 2026 18:28: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voQZV-0000Bm-Tv
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 18:28:50 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9ed83ec-0389-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 19:28:43 +0100 (CET)
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616IOFEH017501
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 18:28:41 GMT
Received: from sj2pr03cu001.outbound.protection.outlook.com
 (mail-westusazon11012026.outbound.protection.outlook.com [52.101.43.26])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c4baykurm-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 18:28:41 +0000 (GMT)
Received: from CH2PR16CA0012.namprd16.prod.outlook.com (2603:10b6:610:50::22)
 by SA1PR16MB6504.namprd16.prod.outlook.com (2603:10b6:806:3eb::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 18:28:37 +0000
Received: from DS3PEPF000099E2.namprd04.prod.outlook.com
 (2603:10b6:610:50:cafe::f9) by CH2PR16CA0012.outlook.office365.com
 (2603:10b6:610:50::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 18:28:20 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 DS3PEPF000099E2.mail.protection.outlook.com (10.167.17.201) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 18:28:36 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616I59sE1841430
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 13:28:35 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c218c6bab-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 13:28:35 -0500 (EST)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id oQZFvzUVxlOqboQZGvI18E; Fri, 06 Feb 2026 18:28: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: a9ed83ec-0389-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=isu3H6ItSuU3iL0v5qYuL7PsHtP
	L9FGISgFy+2hK2S4=; b=ijF+HfJXdcKptn+rpTbJHF6cvlaEZeLW5JsdsvkleHp
	XBfOzl0Kd8h+hJWsOKcaa/ycZQN6M4bM8EA6oUGTYADXJAWNvSN8RX6d/DLYAdqD
	W4W1Joz/w4nSBwpX7V0ykmShvSiJ6Z7MLhs0ra7jZaiVjJz+9Q6HguPum7Y6M9pu
	WPdHN34sMXwMkql/qkQnlDecmo4NGaqcjce4nKFJB0OuuO3PP+QDzWStbO4Efm6P
	vivnhHw2r1JHhybRWOhG70HVKJ9Ef6nh/LB7kxmcyJ6uyBUGmbGGVDklK5DUjNQ0
	zXTO8txjiPbHjMGr7ihVpLl9M8ySdMxM813cXQNwYQw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YiVfjd04WdJ+PdGSo+5iwkSJDGRdBqNJupHYGhq3bbNrhjNMutp/HLvP1DGWswbli+GM700miwjaajgmc/rh3yZ8JVQJwD2ZZHhej1BYP1rgRwtpywtIsoCWDIpQsCNQzEIFyWCjNzFV5DmqsKCJLpxXASKj0V6yl4QK8mTEzVi5cRI83lx50r7RwF1nEhLyTLcLB/lI5X5SezaWijMniabWNOm21VqkVP/VJxD4tUCNpq2RuOeKNAHar35NmyJiUqM5BocySJFBsvF73uPEf/Sjd+lkKbfTCONNN5yA0JFFHPInlG7omRYkW45dSPI5Jlpv0Stghnt685A1oWCvoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=isu3H6ItSuU3iL0v5qYuL7PsHtPL9FGISgFy+2hK2S4=;
 b=Z+bNVdgRtb6lyqrvdcgUE8XUYyWtJwOTHpKttIY4ThUuCECwNV+32fCjVnL5IziG4IihjncdkikFzE3VXmEZAn+A5UHWMW5HMYrI6+0xw57ezKSjuKBHixLhqBI3R+djSaJZ7mQZDY031gcLaYwoUXihxowAAzgcEVq5lsgZksxhd7DYVJTbWeqKz5BE1V8+GVYdB72hAOdJLCT3/i3D3mTCgbDZL8g3JSpTRFGUyY2UWs/H6ui2GHoiXoGbWaO2mnavngRPZYbnBS9xz9ThgHuUxetsCvIijjKxKDLmIDe+IIJiCiMCw020W8Al214jg1+HbPpgNFVT32Ak0fk8kQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=isu3H6ItSuU3iL0v5qYuL7PsHtPL9FGISgFy+2hK2S4=;
 b=HEzrIrae6rv5GXCR8S1ZGM7E4SPWJ/nvgjdrdLk19NGM0hOQi8SM5O7nYUryBwCKNyKyd7gdWzI694jcAdPfx3+Q5R0G7AubUO0xjPBEBdA4BaGsF+fWKnE3N9JRTHvYQwR7nIfeEfEHD2j/C2KAH2aTcU8glA+WraXHED2trTo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=isu3H6ItSuU3iL0v5qYuL7PsHtPL9FGISgFy+2hK2S4=; b=DajHhIcBQHXH
	fo+fzZ3Qs5NNXOmADnfW99wf4V62+57u9atLn5/ZPuQYCMUM9iruF0bmPsgEvZLj
	DeSbvZp+O/VVrgZZL/eLJzC163k70cwLJFp2umcJXA0Hf44GXyvttIGU6CxfV5mo
	z8xgGHd+tgGOODhPdke15U4frgs9Zv1aJKWsO6xWYgqmsuRkXWvutyM+BNzPnqDF
	vYejSZ3EJBJfrcSHPcVZfvyb/ZyoFxIRIAkTvCbJnQ2aq532NJzzQAqyShnymkOi
	q4kcwdRRZ+0WzAwGwE8e3/IGauX+zh7+hcQN1lCbpuvZ07K98gGS5UIcVTGlm2Oz
	EzxhSglxgA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=isu3H6ItSuU3iL0v5qYu
	L7PsHtPL9FGISgFy+2hK2S4=; b=P8Y2B6cDLAo+cLuNM6E3acGt1UDHMK42LnAO
	1qlXc+EIoIEWKomBYI4h84e+CFLFAt1TACQDJJHpFYICzXBMENRI5MD1qaDamhhs
	1qCH/erpRmOCN3KIrKW/TOVDs6Go5fHdyox8HjfTeNXFROqMK8DbKaqd1UHbEtfz
	yn8+soc03ddMBohjAN4TL0bArnVrnu8cSKA7QW2PoaZ+bwOD5OXML0eyGybpbQo6
	0HhKpquTSG55fH7deZIHqLQc0v1TwtI0eZvY3ecCyxwnj8wxzUhMMCZlzs91kCpK
	49fZIoQOmo8lqTNYq+LJClk28bd3rvkJQnk22V5tbvZJp8gz9w==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oQZFvzUVxlOqboQZGvI18E
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Fri, 6 Feb 2026 10:28:33 -0800
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, jbeulich@suse.com,
        andrew.cooper3@citrix.com, roger.pau@citrix.com, jason.andryuk@amd.com
Subject: Re: [PATCH] x86/cpufreq: Add Kconfig option for CPU frequency scaling
Message-ID: <aYYy0fHRX+gpHSkA@kraken>
References: <20260206013222.4081160-1-stefano.stabellini@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260206013222.4081160-1-stefano.stabellini@amd.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0
 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060136
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099E2:EE_|SA1PR16MB6504:EE_
X-MS-Office365-Filtering-Correlation-Id: baf4ceb5-2e45-4da7-1a50-08de65ad8ae7
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?9C78pw9bw+UvIxqmnfIS6ZcPxHDdwpIiEp/VFPXOWsSshWPzhAgLzk4lGRqk?=
 =?us-ascii?Q?9nhIKwB6wZdNWgq638QyrsE7nJAhIu4Fbf0v2D7jR4tD8H5wlXidu+VGqC1p?=
 =?us-ascii?Q?wirxo9a2VdOJZOvU7RocEEBXqmp0bZR7xoCXA0nDhLNRx6IYcomtV776NP8N?=
 =?us-ascii?Q?PNwTBYqNm/rCdT8x1wGQHR50pyCMdcOEhKF2GqgU5B9i7Clb1PGKCy0sBxPq?=
 =?us-ascii?Q?95sbb+s7UWl2J/uWSTxSt1WbXAiI+21TFyBynKXOTdheyqN5qcBDtm9H19qB?=
 =?us-ascii?Q?TSBzpqZOamd6TucGD0szFJKN7nxYa+VqNLEWFQ+26g7QgZtU/ugB+gJSGKE/?=
 =?us-ascii?Q?kOftN9jaL9Vgpij8gJgQ6lkFdT6/+w+ZpZPWFRQ0FBTeKRQ7EB4s+Z4FIUJN?=
 =?us-ascii?Q?oufeOQysqb3pVL9jYrwS/wEgx5Rzc06g/WfEJ+IxEiAoEaTdEr9GGWzBFv65?=
 =?us-ascii?Q?MYOJjQqj+bNG4BbJBi3sJvtg5G2jYrNgMK2ijW2NqhONkacjelyQgh+8WjUS?=
 =?us-ascii?Q?O4zEcPuO0GGSKCIhEP9UYY4KRRJeoQwfVxjfWDKWOsYEWspPLr7qNccEqNQP?=
 =?us-ascii?Q?YxzwgXha91j5WMC7W++o2ThYp0rnhCrGgGiUq4lL/9K3eowBaaEEFVLJ4S4W?=
 =?us-ascii?Q?qkqBhdmhe7IsPYDqhat9eoJ4mjnDOSPfXmg1y9eBjNEOyn/Ee/MdfwU87eh1?=
 =?us-ascii?Q?QDkQ5VjCwXeSBzYghtlWVhPBj+7/w4S2txjpv5DWGzPKysOWqjf/yTTufES2?=
 =?us-ascii?Q?ID+LrkE6PQzQtH4/ag7+efdhJmh43RoPVINaHpMaPcEvj22L74ydMZkuKgVV?=
 =?us-ascii?Q?JwACkKSLilig91J3oN6OiroI8dp3GGvA91GsDlS5t4jbdZScIeyDZpyXaqO/?=
 =?us-ascii?Q?DzhGh0jysjCQsqBSvwaFkpyX4Nvd7xpajWwx0gfRZ8hn86BwewBtNgL32h6O?=
 =?us-ascii?Q?LrBaaEFd8M8eJIS/XVTvyl8wzWb4Li9Hnl4vrn6o5+Yk112Gp/vPwG+/YJuS?=
 =?us-ascii?Q?PzPNaoB0fP7P+/T7PqgrTL+pXgOz/G2uvYtwOAEIm4v7VgZBwK2C6bdxMVfc?=
 =?us-ascii?Q?4/L86jaEHxYW2c9WVUTxPbmIuZSjspEpPMO7/eOx7XbeeOI/B+fPrlFW7R5a?=
 =?us-ascii?Q?o2dy02B0ne8wTUWlsxGiNXYj/dMWDIWu2WfKc1Pv6yVBhzGarvnPtcDocruB?=
 =?us-ascii?Q?uAAFUv1SQccggBvXLkfHrh1X0XiZIwfqkFz/F2IzgW3UJbqP5BD4ab7BRstI?=
 =?us-ascii?Q?gl1YLQJM1NzHGoHVTHlBSzb2bCFQlQBwr146HQs6EW74/IXrens7hX1KFMYY?=
 =?us-ascii?Q?D9jwPNzvbbxR6O5l2axh7PXjR5ZyDLXkMU2N5mRMzSalgak1saH8b7lonCft?=
 =?us-ascii?Q?sJsQeabv6PogD90PEzTAQEqfLm9OuvNHf3bsZ7nf2ZSdHBtzjdfXk5uw7naZ?=
 =?us-ascii?Q?FM6G44qHS/JCstgn1twVQWgyZjoLB0RITm1aExfTI3UfX8YNg/3ucghCaddU?=
 =?us-ascii?Q?tcqxTRxsmEt9RrT2wYdV3Tbl8AoZAt4SSevqV3TXW4X2tiBx9bF2itQLQZCq?=
 =?us-ascii?Q?2y7bg+j3wCsfaJCAl5W6ZUS+Pg9FMzgBH4z/4FQ7yXDiq7BECn4FNAp++TEI?=
 =?us-ascii?Q?zRK0cbCRmW6FcjqbUaYb9qGdR+qTlteOncNhfCIWkeSa0xgEV7B6lTqMddYy?=
 =?us-ascii?Q?SuDyZw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	w4ExBqCmmEvWYdaQ7ezzmqulSnhyIq6FT52UafSZAmhwHmF3kLRjpj0c4mR4OhsjLK94QEi8LTLNqG5DgAVKJZgtkRqfqHMfIpmdCikiWNO+4VIu+qmKombP/nFrnfpl5VsSgC+81bRvqCcfaoh34SA4WiqFR+/jrcqQUhJwtWOw+Ymd5CLBu05cKETXSP6A4AWVlhlLnRocFEJalOVOlZaOPN45+uSeZNpnfqO3XPs1zbkAQAdRljJYzpu/CU7LaCMQ6/q1C01sg5k/yTGvtFINDx6OC85D2CIWKrMNh2nOxOeTux592nCSf+7MMKSe2S24Zg7LJf4puopxO24kb+TbhzJp7CGUYUZ4NoIaA3Ited/Je9LiIrz/mFEPkIZ7udzYHHUDBA+4h1t4LJmvIWfz4yCjIav5yKoHHrgYdi/fpUW0L3ECJLrtE771u3Ns
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	DkZLyZp1fEn/jZmE90c0XDJgo62KWSmd3h0mTvUBeX5I24EsfothiMbtuBLfvAZRX0lbmRXzWLDTxhi6bdBV4vUmzzy7Gb8rNnkjOvUwC3GaBgFSlO+S9/vqfYKfnwKAfxYsm191xzsKWO7ohpZEF8VPFtzWfbW6C0l4cj4wJTlwyki/70HvtrbS65xEjzhneCBicD5uO8B1Vcum+JLIxGtAa0bYU84uxYA4dIcP81b2lwnKstGzI9NXUh7c3RXP7TuYS2zYl2WaVsdyH2ogQ5lZmkKUo3HHma+ZQAJlJQqqKc6VAAlQc0XQu9isBQaOVlP2DLZCmXi5s25nnR2L26d02pRxJNowwMFSbuMGKnRY36W6QB3EmFCHBo8AC5R8crwcLkciwju8tX9JLktmwOizYcsCMTKGrc2f4ydMz1o3G3fS/zBpqe8aaE8pEDY6sPMdlyx6XmJ2AzGgXFWyVE3Rm347hXDf/ZlbpISE5xQ0YEZ1HvjhZc0F6Tk2PZm/JBE+HQSDLxWofUlpD9SQKueXWAROcyHDVr3zYeDOyfuJWZrxE1UVN6Rdc3A8m1g2AfmjtwodA/Ud64aC/rY5PTD/MxUMEMLoyQtPc/mTa9LjGuBlZph9/UckMCcfOaMG
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 18:28:36.5497
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: baf4ceb5-2e45-4da7-1a50-08de65ad8ae7
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099E2.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB6504
X-Proofpoint-GUID: d3zm9WobT4T_NyHFJHPsTsqwNxS3Vb4c
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDEzNSBTYWx0ZWRfXxYoB9O7me2no LV/o066CUEDzzLQEQhTZG3VKYob8huyptc5b5UbQ88C+Y7Fk9LkTtqKU71VfdtlwWyJ1qIeS76y Qxdi362k0cqcsxUHmwLiouK9YXXsR0c+fRJM1llh1plV1+Aq84d9+a428lXMfuIGHZBhyOA8gRZ
 WDvD1k0f1VNEzpPADbyA7x8GXEL8DnaOALV0mur08OijO2sJgZDqZd2GvxgCl9WQUmb4Lgu7rBz syGzqcOsSQy2NEGViIROmp3k3aZiwUzL799Rsq+oYno8zqBMaiX29UqQZk78JwSG8BkQJ/8TWDd +ifNaXTp6H06c3Ss3w50prSoUJ6qZ+Zjr1mHReTaGAbpvqa8pDme4/Pm5FB5osEmdv+r4X/qGOy
 nrOmC3l3LdLc/BVdY32kJJRDwBjE4/7FouhbSMqsn9OljeJf7jb09eA12g6OQuZiWepMaR7JHiQ Ot1DnxppYoQy+R6VmtQ==
X-Proofpoint-ORIG-GUID: d3zm9WobT4T_NyHFJHPsTsqwNxS3Vb4c
X-Authority-Analysis: v=2.4 cv=Y5P1cxeN c=1 sm=1 tr=0 ts=698632d9 cx=c_pps a=KbXMGX1SJVu0lhZGOc8PIA==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=zd2uoN0lAAAA:8 a=cbNQJ9GKAAAA:8 a=dEE_NiS0NobiUu1PXT0A:9 a=CjuIK1q_8ugA:10 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 impostorscore=0
 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501
 adultscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060135

On Thu, Feb 05, 2026 at 05:32:22PM -0800, Stefano Stabellini wrote:
> Add CONFIG_CPUFREQ to allow CPU frequency scaling support to be
> disabled at build time. When disabled, this removes cpufreq code
> from the build.
> 
> Add stubs where necessary.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 18:31:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 18:31:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223764.1531164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voQbr-0001eH-7V; Fri, 06 Feb 2026 18:31:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223764.1531164; Fri, 06 Feb 2026 18:31:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voQbr-0001eA-4S; Fri, 06 Feb 2026 18:31:15 +0000
Received: by outflank-mailman (input) for mailman id 1223764;
 Fri, 06 Feb 2026 18: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=wPAo=AK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1voQbq-0001e4-2y
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 18:31:14 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00946907-038a-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 19:31:08 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6678.namprd03.prod.outlook.com (2603:10b6:510:b3::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 18:31:04 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 18:31: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: 00946907-038a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S0ZUQZwStRCM7t78/44ASC442OIW3uCYcHZtDJaORgqzNmynoQ5Yv+/l8La/cZJo58jygiL45W2eJu+3CigJy9wtyrtPCbARJLO8ZjpoWwW6af+jXbVrB9dlz0wsuWs60gZu/d06mk7/xXhe6nv/ZAhPXbc98Z+VjJE5xBpwRwTFNq7Ze5emeQN2oQ/vrCAWSddi9EinYhkEbKpskcRM7JRYiTbaXHh7cG95uADmAl978ewCnCcM+ZLLkYYt2DT9jIjBDJD5aUqQMxYYybwe4FORNSAdS0zfs+KDTuByH3aZASlQBtzdSMchCAhWrJ7D6vfb4KHmtRg1Og21xzsXzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PU9mKuGzTDeoc44ezZO8dk6jHbXJ98spQcPpWZLAc04=;
 b=RMRafY8rA/lvMcaDjtqkT51BdoZSwXYeZuyLrMw+OFUcFlB1U9Y7I6IH8yribWjt3YNY4/Cq1biN3ohKbV43TzoXHz4sjd76wagEP6DK5aLOxbxnSLGjVxltv53pzN1Ces4LtrJ9b7MflRgjX9/z2xXko4o5L4dSAWyn6zV4MU3ep8y2yvv0NI63Q+RknBMLjRoOOeBhhbsCXVZg1SdYIsrrFeJ6ioUkuMhXxHyNCkn7JVfWRZZJP44aOyQFnkM2KiOncgeAm1ocPtNNXY5vTNJ5TBllqFlvM2ujjXEOYpKje4/Cjf+nkipSjbGbSs7FK87N55h1z+zFKY3QKpAF6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PU9mKuGzTDeoc44ezZO8dk6jHbXJ98spQcPpWZLAc04=;
 b=uGJpGwAq+1735ITUiSaLLxIRYx3gxR4y68iPJJPUNrZYgiwf5eSe/AvFcGyIoXjkfsh/fX+0sc7l50/5W12oKiJiATvybK/s5FpNN5ej86MboLvkzX0OFbYoniiYhUiFGSotv6xfGEGAAJ63wkJMgXHOGWPyVK53/brGQXwWC5E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH] xen/kexec: return error code for unknown hypercalls
Date: Fri,  6 Feb 2026 19:31:00 +0100
Message-ID: <20260206183100.28195-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0015.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB6678:EE_
X-MS-Office365-Filtering-Correlation-Id: 745461ae-47ab-42a7-1827-08de65ade2bc
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?aEdDd2ZhRW0wcTJObUFoL0hpczNuYit2SzJnMzFmeWdsVHVQSWdaTFFMKzZh?=
 =?utf-8?B?cm9WVkluV0RJN0xGOHU5bVlLUEoyMXFNMXBFdzJIZWFpUFVjc1hwSTMvaDA1?=
 =?utf-8?B?OTFmMWw0QzJnemd2WUVPUjE0bm9heDNEYnd1YkxSVG1pVnFWUUNkQU5JQzU2?=
 =?utf-8?B?UUE5RmlJc0I3L2JweGZkR1R6STZ3amlod3RWN01odmI3UEpqMU9QcUFIQ2No?=
 =?utf-8?B?S1ZWaEpIaTlvT3hSTy9LZWI3SHArb2lReUd6TkJMS3dkb1RYTjQ5WGd4RVdF?=
 =?utf-8?B?Ym9PTnk5bzBIOWNSVkFBeUxaN0FNRUc2M2VJcFRCY1ZDUitJa3FGOVFIb0xB?=
 =?utf-8?B?VlJqb0oydTVJUHJmMkNqVlRkNVFUTGZsNWMyNEJ3Z3NPQkFtM01xSUcyVE81?=
 =?utf-8?B?azNTd1YyNEJGdVhMTllmVTRSdm9vWVh5cTdJanhOb2pYekxSeXBYc1dLamQy?=
 =?utf-8?B?azJJenZvM0g2c2Q5Sld2aEw0a0NveWhXWE90ckJ5MFVrdFlYaDl2Q1hURWND?=
 =?utf-8?B?K2Jjd3FnWS8zbVlXbnQ4ZVFSWWhBTGRqdnVGOFJVZWdTT3Q4MFZVSENsbm0r?=
 =?utf-8?B?M0lSRHhLNHU5SCtUS2hScDVDZXhFT2d3Rm9zcnAxdlFCNXB2dXBHQXB1SXRk?=
 =?utf-8?B?Qk03SXVDbWxWbEthL2M5RzdSY1hHbnFlYWlKY3pINTR3ckVoTUk3Nnhkdy9O?=
 =?utf-8?B?QWpYeS9oQ0grK3RkUzRFQmxsMjlLYnl1UkVpaVpYQVhBd0dtYnRaYzVBS0Jp?=
 =?utf-8?B?THRoMjZweXViZS9aK21ybW1CRHpwazlBYzNLV1FYdXRrM2E1NmIyVi9tYmZw?=
 =?utf-8?B?YWFtendLck5FRVViT2xld2JaTjQxZndVTFZnRU1veWJUVzIwWG5BcStybXBF?=
 =?utf-8?B?SDZEZ25SNlVGSUU5VjNUbm1OZno0UHRXSHczdUFidGYvU3Z1Y2RnYjVva3B2?=
 =?utf-8?B?OUxkNkxYRVFnNnpVYXN5SkVobVhaU0xxR1RyV25lMDY0RnlsV0dsNDBQUUR0?=
 =?utf-8?B?bGlTanpIMitKVTBMbFh3RnRzbWkzTExrUFhWWjlrb3J5NlJsQm1ZYnNHMjdp?=
 =?utf-8?B?QWJ1RHh6MDBaSElaZU9jT1JnYmJjZzZ2QXpVRlhmT3ZtQzN2SDk4Z2R3VnZm?=
 =?utf-8?B?bEx0UlZoVGRWRWVMK2xFM1BtVVVDZFVwTkN0UlpYbG10SUt6bEsrUkVGWjFk?=
 =?utf-8?B?aVZ6VjZmRzdPUGJrckc5VWRKczNiQU83a0syTVROdUdsc1RYc3BVUnZMTGVJ?=
 =?utf-8?B?eWp6Q3YwQmRQK3ZZb21jbkpXMTZsZ2twVkgwU3FmZlZPajcza1ZXZXlEQlpQ?=
 =?utf-8?B?bGFKenFTOHhSbnhhelFyem5raGdOemNoR1BlemFSQUo2SFlqVTdmdUlLYTl2?=
 =?utf-8?B?a3JiSGxOR1prRU1rMnAzRVZCaTFFK1loeUNYazlJcW1yMFZQKzV6VWdDMFlw?=
 =?utf-8?B?ZXVCUHZJejgzS1JveHZjd2gzOFZoMlRBTnhoelBlcmE3VmZ2dVRoTFJOSUZR?=
 =?utf-8?B?WWRjdG5Cd2NJRFJkak1TVnFrcW5wTVdLc0ttck1BREhNQzBxbVk1ZjdYd2dz?=
 =?utf-8?B?Zi9aSUdGdEdjcnE4dWdIbFBMSkc1cEZxZDRvNEFIalpBMGtwSXBhb3RlTm9l?=
 =?utf-8?B?UEJNRHc4UXVpVkNtSUV2TFVGaGk0aEJtS01EMzRUblUzK1MvMDVnL0NUYWZo?=
 =?utf-8?B?UlNWeFduOTVHUzRnWFVrQXhWVnk1WUNPZHhUcHhJV3N4RDIyYzdZSnhoajRM?=
 =?utf-8?B?MHFmWDFvcGFZU08zYkQyZ3pvdy8xWDRGTCtkRlVRZm5XTnM3ZEJkSkZSVGhZ?=
 =?utf-8?B?eUg2YVhlNTRSK01sZnV6cEVoZXhOa29ZekgwZSs0cnVUb1JybS9KS2NpM09h?=
 =?utf-8?B?L2xWczlORGdsc3F5OXdkVUxSTDVOZ0NSczlOM3V4cnpBL0RFNHpkSk5EaGZn?=
 =?utf-8?B?ZkROVUZuZHlkSlJLVGRYT3YxTSs2YzBxR1ViaXdRdHI2bGxNNDNPNExDYnBt?=
 =?utf-8?B?UEVjNStYaTd5RSt3K3RPaFJFVGNiVzlDbGc1b2w2UUljNWxOVzlxYlJnWkdV?=
 =?utf-8?B?OXRNdjVwM3A1OWVxNEQyakkzM2E1L2xwdjdBSmtDZ1NuRFRLMUxUVXd4VUhZ?=
 =?utf-8?Q?yg8Y=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dzkxL1ZSWW9UM0tMNndOOXNFbXU4VUdHVWlQNzhHKzVxS2d6NDJra1hmNkpP?=
 =?utf-8?B?MEVwdFNiQXhEQXZzeTNDWVJpSHBoY3A2U3dQZTN4cnVGN05DYzBDb2hXbDNr?=
 =?utf-8?B?NnRFT2hFaFh5MTZwNFpmdU8xanA2bDFJdU16M1Q0Z2NKR1RrOFIxZ2M4eUxn?=
 =?utf-8?B?SFJKSFdvOEIwcjV2Uk5UUGJPczE1VGpHVzNLUzdKOFV4SjJQR2NhWE5BRmxR?=
 =?utf-8?B?a3dqVStDVEZtalFMRys4dVJCN0piS1kzRURHbDdLcE16WUNPck8zSlpVQXNH?=
 =?utf-8?B?dGFwVVpnTCtLWTZoWnpuNnZBUWRVQnNIT2tWODZ1Tm9zZnBIbUtORmZqT1I3?=
 =?utf-8?B?cEc5YlR3TjFCT1pFSkR2cnlQZEE3NFZMaW9KVTU0cU0rV2E0UkJtWGhPd2V5?=
 =?utf-8?B?Z1NZWXFZd1JFUkJrdmNJRitDTjZxeWZ2UDl3S0tpZjRiczE5NUdTbytIdHFi?=
 =?utf-8?B?ZW8vN0QyV1IxdnJzUkpDT2o5N3hFbVp0Q3BKRjNlT1RORms1cEY4K2F4VGhW?=
 =?utf-8?B?WUcxZHdSQm1Ed0swd1J4dmprNlVXZTdnNGFBTFRxc2YwaU1qekJwZnRSL29E?=
 =?utf-8?B?WjJldEluRERRbStpTTNFcTVKdjZHdTNEaUk2WWw3MFRQaGNEaFppTUVpQ3o5?=
 =?utf-8?B?cnpUREwxS01Sekw4c3hxZ0cwOVhJNDhmWVE4SmhBbHVqbGpDWHErYzNFby81?=
 =?utf-8?B?Z1Q5UWxCQy94dHZub1lPZ1k1T09YR1REd1EwSFFyOW54WUVKK2xnaEl4QWk1?=
 =?utf-8?B?NEJEemJJRG43VzhkdEZTVUdjVFVOaGl3WThTNEY1S2JXeThBYzQwaytDdlF5?=
 =?utf-8?B?RHAzbTJzWTRPN0xEZUpVM3ZJNU5ITG95Rkp5NFRrVXFUZXQxbG44amV3bVhU?=
 =?utf-8?B?V1g5QVd6dGJmeDgyZjM4aVp0d0Q0RFI2cWxINlhscTZ2TGx3NlNzakxJSGhq?=
 =?utf-8?B?NUtESk9EbVJnYlJkYURGcTBiRUVEb1owT2pydWR6S1Q1TkE1bnZFV0duekx0?=
 =?utf-8?B?ZDN5V1VmQ1pON1JnM3RBdDFtSkc4V01VZTRSZk9rNE5wZ2V0bm1Ea01DeEd5?=
 =?utf-8?B?bTJ3Vk1TYjVGbmZYQ3pER0hQa2owUDE4bnFia1NCTDJ6TjFDRUt1ZytCV3hs?=
 =?utf-8?B?UGYvODlVaUxzaW9CMG40ZkFQdFU4TllHQmF2dnJjVWtqa25EMVdqK0I2Y3d6?=
 =?utf-8?B?OVNheVdSYnd0UUlydE1IcVFyb3JDWTRaeEk0MnRsZHFkdzk0Vktlanowbjlj?=
 =?utf-8?B?RUlvb2tIVjFjNjQ3ZzBudStDR1ZwSTh1TkhJT2xOZmlBaWk0UldvTlI0dDE0?=
 =?utf-8?B?VmU3N3JHUElCTFRKdmhITTdVR1dhWlh5MzdYcTJWeVdvUVBNTlVCbThzYnBJ?=
 =?utf-8?B?NUZWM1VVM3M0WXVFZEJ5UGR6OU43L2FYQnRoUmRsVi9JZnRXZXp5Z01LK1ZC?=
 =?utf-8?B?VExsdXFMYmIxYkRCY1RrWmd4Y3hxL0pwLzBPWTR0M0dHN0hxc294ZjJ0YU1p?=
 =?utf-8?B?WlM0NHhyeHRpSUVTWDh5RDVGTTZqY0RTcHpNVnhxR3MrTlhia2gvcklwVFNR?=
 =?utf-8?B?N25BNHkwcW83c3hKSkViSXFWaU1KNEN5ZHI0S1BkT2hTYjR1Q0JGZ1RBS2Q0?=
 =?utf-8?B?Umtlc3FNaEhvTFpKbkI1L2cvWkJNVkhIZXlTeithL0F5a1k5b0s4c2dISnBX?=
 =?utf-8?B?Wi9icjdscWt4b2gwOHU3N1VyQzhuc1FFZ3MxU2l1T0VZTkduL3d1b1JlYm5l?=
 =?utf-8?B?SlRrYmtTZU1tZWx1am96ZE5iNmRsakd6NVVOSEh6MVhvdTYzdXYyMUdWbTdL?=
 =?utf-8?B?RHR3MlV1SkdHQ2NVL3VIOC9GVE1DcjNSTlBpMUxLVUdIMGFtejdVMUxrYWxa?=
 =?utf-8?B?eDIrcC9YMWtiUmRLZ055bGdxTFMxc3dmVis2SmduUDdKTDBhUm50MDc5MTR2?=
 =?utf-8?B?amhadU93RnM5WkJ2ZTZqeVlvQjdIRVlHcUUwRXVET1BrZE9vZjB6dXcrKzdp?=
 =?utf-8?B?WXJXa2FwcWNaL1E2Q2w3TThFa00vZ3ZQZEFWMEM5YkE3N2poblhUd3V1ZEsx?=
 =?utf-8?B?WGxqSGRIRWQ0M3NTd0tId3prTnFJNU1GOThHT0I3QXJzajZYQ25rR2dkNEVT?=
 =?utf-8?B?U1MvendtaVJkWDhNNlZoSk11UGVzQTY5Q2ZUaXQ0bmU3bzZoc01iRzA4UmpO?=
 =?utf-8?B?YTVnSWxROVYzVXVnMy85a3ArTDRvclA0TkNIN1FYekpPV3MxbVlxN25vRVRS?=
 =?utf-8?B?cmJvbzh3a1RHWUFzZGZEYmVLTzNLQkZacjBLd1lCY2Q4K0k4a1NwOHkzQyt1?=
 =?utf-8?B?aUhYSVg4TEsycXprVmN0UzJwR2laS1lnZG9RVkl1RCt4V1FjQVRTZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 745461ae-47ab-42a7-1827-08de65ade2bc
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 18:31:04.2961
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wvTtsTabneAWQ6Nu5oJ/LyuD6nz0BmZ4gSiqJqTLYShOJGimE7f1Gtuz3kJgR8Ay1c4O65yhXDCWSo3pwGtpBQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6678

Currently do_kexec_op_internal() will return 0 for unknown hypercalls.  Fix
this by returning -EOPNOTSUPP instead.

Fixes: d046f361dc93 ("Xen Security Modules: XSM")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Arguably the error code for unsupported kexec hypercalls was already wonky
before the XSM addiiton, as it would return -EINVAL.  It's however way
worse after the XSM addition, as it returns 0.
---
 xen/common/kexec.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/common/kexec.c b/xen/common/kexec.c
index 84fe8c35976e..8f52c5506d4a 100644
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
@@ -1217,9 +1217,8 @@ static int do_kexec_op_internal(unsigned long op,
                                 XEN_GUEST_HANDLE_PARAM(void) uarg,
                                 bool compat)
 {
-    int ret = -EINVAL;
+    int ret = xsm_kexec(XSM_PRIV);
 
-    ret = xsm_kexec(XSM_PRIV);
     if ( ret )
         return ret;
 
@@ -1258,6 +1257,10 @@ static int do_kexec_op_internal(unsigned long op,
     case KEXEC_CMD_kexec_status:
         ret = kexec_status(uarg);
         break;
+
+    default:
+        ret = -EOPNOTSUPP;
+        break;
     }
 
     clear_bit(KEXEC_FLAG_IN_HYPERCALL, &kexec_flags);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 18:35:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 18:35:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223776.1531174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voQgA-0002KZ-R8; Fri, 06 Feb 2026 18:35:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223776.1531174; Fri, 06 Feb 2026 18:35: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 1voQgA-0002KS-ON; Fri, 06 Feb 2026 18:35:42 +0000
Received: by outflank-mailman (input) for mailman id 1223776;
 Fri, 06 Feb 2026 18:35: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=B2QQ=AK=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1voQg9-0002KM-Mu
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 18:35:41 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a299ccd3-038a-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 19:35:40 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH8PR03MB7307.namprd03.prod.outlook.com (2603:10b6:510:253::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 18:35:36 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9564.016; Fri, 6 Feb 2026
 18:35: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: a299ccd3-038a-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c6g6XfyxkWrsqVAYrwI0ApQGL1U2OX1QTOZQSKdnZgf3XWpWpqlxtTGkUfNr0wHdz+oKA6AtGS39I/aUBgek5toQMVNYTQqzfZUy2F6KMUCMHDXRPZwBLZzRH95hzl5hnt57ngfERvvA9tKUAXNBADzOUeZ7OSxHJRuhAApYZJZjtrs79f4r3g9gDa2hAURKoaufZC6G4hY2875yDqYMMdXDYroWr96RezZhLNGWtR1QYzjgt7xwzx3kSAdJ+eZbrKa0J45SNJj1FpSEX2PyIMV+lwlgl7HEpUlW6qPmkrrZPZ89rgfoyFHi5q3Xr22ElyI+6aW2fPqpcFrgnuGETQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vEYlH1SHa7WJYszZwkbqaLMCrD31e4e2YYLmFr7tt48=;
 b=GK789rFxV+OtFASdi4EK+F7jx05/XAakbH3hgT4mJUuwQzU0+VYZMXjkr3Jd1EZmM74JUk4c0A8jgaKzLIbQTqQbH3nVm5+VH1o1wCcDoC/SclyqiQJGYZOs7PFQVfhY65/3eNpe2ZIAAmVV07Ye9KvEeBMDwi6wC2NJTVSQbBMWPHjiNfBOZp5jfzLXzZoYT2/K8IDFROrX+QjOpmSTbZnPczeIjOw8aQbrJyXRyZDBkgdmR6MhTsb06bqE59jMQmpc0wzywY12N3+ocwxTnm1eZiOachdw/X9vrFygrvZ1hAb322hKSadlaV4Q5qdshRADwXq3ReP5rqj4rLV4pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vEYlH1SHa7WJYszZwkbqaLMCrD31e4e2YYLmFr7tt48=;
 b=jJsW4nNAxnm806k40VVE9N6Y+JtzbjvA2G+3vS1fwRzaSgu2XSof2LwzPrsApWakF2ISG+RU98Jt62VJ5oQ8mfrFSM8Qg9uU9kC+xPfvhPMsqRdLFULwEwFSxyGEBllQn5O/o/fSnFhiidefIPMOHA4r9NYjdwGLrqtUFeMmUZM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d754b3b3-ef3f-43ee-81fd-076f50ada106@citrix.com>
Date: Fri, 6 Feb 2026 18:35:32 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH] xen/kexec: return error code for unknown hypercalls
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260206183100.28195-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260206183100.28195-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO0P265CA0004.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:355::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH8PR03MB7307:EE_
X-MS-Office365-Filtering-Correlation-Id: 3d7c7ff6-bc40-4cbb-0ecb-08de65ae84bd
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?YjIrNS9GbHRaK2N2dXhvM3pyeGNrODVUSHJEMktlWXBzS1Nra3VKUnNMQURJ?=
 =?utf-8?B?UHE1dThDbGRoKzNoWDlXczhWWkVvWG45QzU0SGlReFVYOEZiTVZCK0xaU210?=
 =?utf-8?B?em1OQW9hc25tY01mQXJGVll3L3VCczRhTFBhS1pZZHdPRmN5aU4wR2pQR1p3?=
 =?utf-8?B?b3BiM0E0V0lVL3hXaTlqRmRqRDRnaUhqNVo2Y29MK255NzBRRERkR0pZeG9n?=
 =?utf-8?B?TzhyTXdkS1MyTDdpRzY4bDdNM2R3VTd3b0lNZGV3aHFXQU5JNTN1cTljK01Z?=
 =?utf-8?B?cjRHZlYyV2dNeU9obHhIbWR3YzNsTWs4SzAvYkJZd09RK2dESDd0ajlzZU5m?=
 =?utf-8?B?UnhtTnROTHdkRDc5UTA3NXRFM3hjcEZPK1ZXcG9RNDdQZ1EwT2dhaVJsZGZ0?=
 =?utf-8?B?N21abVZ6TnBwU0pPeURwVlFOZEt5ZE5HQU52UGVQY2hBUzREWkFCRjZZbGZL?=
 =?utf-8?B?SVRZNmhOa2FzaE9PNG5VYWxXSTJVSFRBbmkyNmZvUHdWYXlUUWdpb1VGbC85?=
 =?utf-8?B?cnJNTzFYN0lZNU9BUFpyOVY1VkFjT1d3djFFc3FHWE9EVGlDNDQwT1U0MFpv?=
 =?utf-8?B?UXI4TEwrQjVKOCtkcXR6V3orV2swRVJXc0QxeFpCWHVlOEtUZDJPT3VDb1RN?=
 =?utf-8?B?cFpMdGpRZ3N2dVNHdXREWE5BNkVWRGFzbjBWRnNER0dGQlA5ZC9kRWJ2WCta?=
 =?utf-8?B?dVR4LzdBWmd0ZDdjZDR4MFdSY1EvWktrd0ZTaU9pbmh1blpLQmFOem5CcEVY?=
 =?utf-8?B?Wk9CZzJPR2JXVUVrTThSNUxHeFpHelZXR3JmYkJvcjR0VnRxUkR2RmdtaW9m?=
 =?utf-8?B?ejU2OWJjQ1A5MnRUNnBTZ0RxNEg3RGUreHB1UXBwa0xiU1BtQUZwYzRYR2ww?=
 =?utf-8?B?VkdHandsNElFZ3Nkb25BMitxT2pneGowVWNGWUR4bjBxVEJTdGZGZjFKRG82?=
 =?utf-8?B?UmUzQ0UxeS9GcVZFR0pFT293Q3RZVlp1VksvMzNPRXp1eVlYV2c3UUFncFlV?=
 =?utf-8?B?UjdlOFk2Smp5aDF4NnZOYTZVOFM5MVREWFJPMEVCN2NLdEw2a2p5eXJBZHVV?=
 =?utf-8?B?RVlLQmxwVVBjTUs3dTFQRVFKS05MNm9SVU9kM0FFZ2wvQkdFaUNjL0U3aU9M?=
 =?utf-8?B?eUp4TTdqSFlkUGJzMGVGTG96U1NxWnAyWlhMQzRTdHBjakJJVVFBd2ZBeGpM?=
 =?utf-8?B?ZzduZkpQM21pQ25hVjZXa2lHZ296T0NzLzJ2ZjNsVG82UlladSswOWVSaUNT?=
 =?utf-8?B?OFlqeldDQitTSFZuN1haUkszL1JTWlJRVUdLMEw1RUlmMlJkMFBpbDNRV2NU?=
 =?utf-8?B?VndlQ3RMME1IcHN5THVrN1FpUXJvRk1LUVVyVTFLNDlsVE9FM0ZBcHZWVUs3?=
 =?utf-8?B?VEJMbktBSWhWU3YvSzJralZpbkU3OEw2UU5zY3AvcjBIOERRbzBoZFdKWkJy?=
 =?utf-8?B?UjRsWkdYbU5yL2xrRjQ1ampZOFZPVVRMdjJwU29Ba0pmSlg2UlVrbTFKR0Jk?=
 =?utf-8?B?RlU1YlY0M21MZHlJWVZJQzF6RlBoVEEvU0VGZ05vZ3pNUE9HSXFjNFNDQVZw?=
 =?utf-8?B?TjRUQy91ZGxlbnBmMGJwRS9iNTJhOFBySmdLcGIxOSs3Y1NZZ0gwR29kY3I2?=
 =?utf-8?B?NHErM2VTTHJqcHpsUDE1OEl2Q2JvNkdVQ2hxNEdvNUt0R3Q5Qjh5b2plVUJq?=
 =?utf-8?B?VVk3dXdCc2Ywa1NRN2RQUi9IR3AyeGRLdnlKcklmV1hkOHkxbU0vRThWbVk2?=
 =?utf-8?B?c1RONkpzRWFjRCtwTjlmbWhJUUZ3SEY4TDI2UFY1Zms1clFEcDdxL2FSQkNN?=
 =?utf-8?B?VTAxa3ROY3M4T1YyVUdqUVYwUWQ5S0cxeXFuTTlCcDRzempZQ3NLNDlUY1V4?=
 =?utf-8?B?ZFhnRFZyVG5NcTYxUmx0OTBxMStqbzA3NkNHMkdQVjhjT3hxZ1BBT20yZnIx?=
 =?utf-8?B?dDV2VzlDSmtwRnVEZ3o5ck9QMGkvVS9xQWRKeDZpZkw3eVFROXlGaFIwbmJZ?=
 =?utf-8?B?WHlOeGROZy93QlcrTHNzMkxNZG4xWHY4ckIzaUp6Y0RjWHFrQVhUS2tEd2FJ?=
 =?utf-8?B?dFVEanBSV01KMzladVczM1RqT09NWWVnVjEwR0ZRdTdKTCszUkdrQitHRktU?=
 =?utf-8?Q?juU0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UExXSXN2MmNDd25YQXpEaHF1UjQ1VVNXK0Eyd09aRjl6bHRKT2NPVks2eFdp?=
 =?utf-8?B?UDBKMmgyNzh4aDRqdS9uRjBUNkFtTzRZcDRhVjRRWUJJZEJadkRKV2JQOWpm?=
 =?utf-8?B?ZEJxMlNFaXpZR0hZS1gyL1NtUlVBb2VuMGRzY3htT0pCUWtFNFQrdkZhVCtZ?=
 =?utf-8?B?cG1pWExidVZPMWE0b242bmNHWUw2RG9sVFlBeC9RZndJTUpYN3l5bTZwY1ZX?=
 =?utf-8?B?TGxJdEZEemZHWnNxcU1BMndiRkdPZEdaU2ljalFpcUZ5UXFJbnI4bXU2MFZU?=
 =?utf-8?B?cGpjWTZ1cnFiTWJiNTNhVER0bmxGMURETU1RTXZaQnp4TjE1bjVSSU9oYVhn?=
 =?utf-8?B?WWRlOWdId0ZPck1ya1puSXFzMU1pa01VVzZLdnphZmUwR3dIbXZiMzJseE1h?=
 =?utf-8?B?TU5YVmpXRWFUMUQ2ZUF6U2J5bWxsSDFkQUZxa3ZtUXk2RFdPRWh6WTF5bW9a?=
 =?utf-8?B?RlhGSGFtZlNmTVR5ZjFWVW9IZ1dxclp6bTI1WTYyN1FUUGVlWVdXUTV5NU1I?=
 =?utf-8?B?NlBVVXdFamF2aUVONEpFaCtDdHpCd2NJR0pLc3EzVHJqOHVCeDcxSXNzZXAy?=
 =?utf-8?B?bWN5OHZ5NTg3N1VJVFFtS3pLSVRMelRmdmVBWHFZeVhTelJobzdINGZycnpm?=
 =?utf-8?B?aHRNOEpwODVpWFFJOVZnaWhYY2xxcHBzVnM3Q1ZRMDIyTzAzUWNZK2VZZFNJ?=
 =?utf-8?B?ZGdLYmxWSENudTBUN2tLNEd5cnAvOUVNN2JIUG1jQStPeVFpQ2o2K1FSQ3JD?=
 =?utf-8?B?V2xSVTdBYm1FM3laTU9jb0RBNHJ3eDFvTjhrbTliUnlqay8yc1hja3ZkY1VK?=
 =?utf-8?B?c1A2ZDIxeHB4MjJlZzkrb2llRVNNZTRDYVk2aUdoam5xeXM2MVpKbTFLcENW?=
 =?utf-8?B?YTBVeDA0SE1oVTB6RVczQ0JFdlk1STIzQ0JZRngyRHhtNkRwTWEwY1hRZEZQ?=
 =?utf-8?B?WGt5VVpkMGpDdnNUK0NnejlZc3gzUCsxbnUwWXBzQXl6bGFhZWx4ZzdEUDBq?=
 =?utf-8?B?aGdPQzVOeFJKY3VsL3lVUTltbm5qQis0eEF5blYrZEEwSTZtSVJ6NXJWbWhC?=
 =?utf-8?B?a2hLMjFpU250ekJRaHBYKzE1TGoyOG96cDF2d3k5Q1NHM251U2dxRHBPQ0N3?=
 =?utf-8?B?OWIwZGJWM3dkL0cwQ3lTdVplZlJlT3EzK1Nra2hLdTFhZ3BrWEpBSVUreTRw?=
 =?utf-8?B?bm1rckpuTFUraXJNMmsxWjVIazBSQU4xWFpuWVpFcG1RSjBIS1hSVCsyTjZj?=
 =?utf-8?B?bml0cVRRU3NROHBpSXMzRDNZUHdSSkUvd1VoZzBRRjBhc1hGdFhkMDhIYmNy?=
 =?utf-8?B?RTIzalhRMU9IblIwYlJ5bVJBTllxNStNbjF5SUdMWnprNlMrODk2N1NmTVFW?=
 =?utf-8?B?R2NNbUNVd3VnOXBzc3c1bjNhQTBELzFRR2xrL2llNnY5d2hYT2xVRHZycko5?=
 =?utf-8?B?My9Db0hRS1dTMnNubDlRZVdOc0g1dkdKQ0h1bGJpUTBUTEpQTmxpRTQrVWFN?=
 =?utf-8?B?cThpSTZ3c3FoTkNlUXhqdHlzQ3VZTVlGQi9VbFV5NjhyTThsRWNHR2svUGt3?=
 =?utf-8?B?SGtIN3RXWGtCWlVIZjVtbFpZMmY1SFJMWW51TnZ6K3NwNVlDYXA4RXpJRm1W?=
 =?utf-8?B?SDdabDJJc1g5SVJLbWlpS0ZwaldoN2pRV0VyZW5Ic3ZrRGJ6ajJnMkpiSXdI?=
 =?utf-8?B?V21MQlJYVEUrSHZXUFBISXp2Y1RpQlVUZ0k4RlJkZVFkeXNwUGpUOFYwbHNG?=
 =?utf-8?B?V2tES0ZxZHhFTngyOUVqelZFSFMzT0llZEkzVE1wMFZCT1Ywd1RJZ2hKeGMv?=
 =?utf-8?B?WC9YMXMvSXlrY2RaczNqRUN2ejY3eTlnM3ZnZWJ5dmhCeWRyN2luTEdJc2ow?=
 =?utf-8?B?UjRJRWh5RUNiV1RtRjFteGNGUm1iVldxVGxwb3A4ZEVMVkFETGdJMnAyOGMy?=
 =?utf-8?B?LzFsRTFkcDVnNXhHSlBiTjZac3FVZkgwRzBZRVBINWthSk1VU0N0Y0VCNXQw?=
 =?utf-8?B?THpRU1pDa3hTc2Z0N2hIUWU0c2RzMzgwdjJJYTgzZVpscXRwbDh3bW5rN0cy?=
 =?utf-8?B?NVAybVNpSkR3M1JVankzWWRrd1h1ZGZPMG1GYWtTVjFqOVEyQkRSYTVPcndU?=
 =?utf-8?B?WFNrUHg5WTNjSllvZ1NxQVRqMFJjTE1hSUM1RWdYcFJsS1FYL3dwT3g1UkZO?=
 =?utf-8?B?eHU0MENRTHQwK3czalM0ZDZITHZmVHZhU3d3RklJNThhVmpDWXZ4Nmo5a2lq?=
 =?utf-8?B?OGFaZnNoL3BOd29RVjlDT096b2ZzMWZ4TkFPK0d2Zk9MdE4yQzBzeks2eXlY?=
 =?utf-8?B?TUluR2Y0d3BEQVNVZjVJb0xSVDBhZW4vYWdwdFBYcHIrL093NS9TQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d7c7ff6-bc40-4cbb-0ecb-08de65ae84bd
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 18:35:35.9992
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: IhbyVhCWxKLzVRxkrMr2ykCFmHeL+u7DAFNgbleAw5NcYWKgzBLcwwYPLaDgbJ7uIbYlfmc4UjAwMEZNirPS8ttdGpm3hNrpFtJV3bKAC28=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR03MB7307

On 06/02/2026 6:31 pm, Roger Pau Monne wrote:
> Currently do_kexec_op_internal() will return 0 for unknown hypercalls.  Fix
> this by returning -EOPNOTSUPP instead.
>
> Fixes: d046f361dc93 ("Xen Security Modules: XSM")
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> Arguably the error code for unsupported kexec hypercalls was already wonky
> before the XSM addiiton, as it would return -EINVAL.  It's however way
> worse after the XSM addition, as it returns 0.
> ---
>  xen/common/kexec.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/xen/common/kexec.c b/xen/common/kexec.c
> index 84fe8c35976e..8f52c5506d4a 100644
> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -1217,9 +1217,8 @@ static int do_kexec_op_internal(unsigned long op,
>                                  XEN_GUEST_HANDLE_PARAM(void) uarg,
>                                  bool compat)
>  {
> -    int ret = -EINVAL;
> +    int ret = xsm_kexec(XSM_PRIV);
>  
> -    ret = xsm_kexec(XSM_PRIV);
>      if ( ret )
>          return ret;

Personally, I'd just have `int ret;` and leave the xsm_kexec() call as
it was.  That leaves the slightly more normal pattern intact.

>  
> @@ -1258,6 +1257,10 @@ static int do_kexec_op_internal(unsigned long op,
>      case KEXEC_CMD_kexec_status:
>          ret = kexec_status(uarg);
>          break;
> +
> +    default:
> +        ret = -EOPNOTSUPP;
> +        break;
>      }
>  
>      clear_bit(KEXEC_FLAG_IN_HYPERCALL, &kexec_flags);



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 18:40:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 18:40:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223787.1531184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voQkW-0003yj-BZ; Fri, 06 Feb 2026 18:40:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223787.1531184; Fri, 06 Feb 2026 18:40: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 1voQkW-0003yc-8W; Fri, 06 Feb 2026 18:40:12 +0000
Received: by outflank-mailman (input) for mailman id 1223787;
 Fri, 06 Feb 2026 18:40: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=wPAo=AK=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1voQkU-0003yW-TB
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 18:40:10 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 42cedb65-038b-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 19:40:09 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5454.namprd03.prod.outlook.com (2603:10b6:a03:284::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 18:39:53 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026
 18:39: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: 42cedb65-038b-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qhmMGxBKeuYUrQtD5jXTWrhTOfqkyZ75VKSEYlHupi8sDtUy07tMQpN0DAYykPgqXBaqtqU5k/Ebb7jc6UcFmpVQFg+y/XjQu2OKFFra4aNMRdNLZpJlXiwzwBXPYzPcwBHKP2kf3C7/uM+11zFxyeeiYRsrV5L1HvE+G7TJZtmzeNvK3KroZ6QbnRtwYpfqulibDuCI73Hj2C32U07vNaFneKuxRhGpSZ4pYURgJ6RGz0Uv8LdFyrjyn7MWqIwci73uyOdacxPYfrqaSo4bXtogY3q33ZpvWTI6KpqiAM9Ug/kGqODpfH/cFc4Y0sxhei7zd2Nzqt5xgZYq7KpmcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=syBf/RLorpv/i9yzElRI4iOU5fZxH4MOYfIBjXEPObA=;
 b=oEJNWtgSxQJHxOJoYovtq44L3eJTpQL3kANvmmsSrNGUp0C27cZET/d1yIgAATVP0fbRqtOAcW/aC1uMFZRx0W8YJ1g00+rJp/WOsiKXvN9e5/LAAprnXyfeSN93bpZc2BZkei9/WHPkd+ErB7HG3FIMIYZHdHkWB8agMfYlUyIiBEXY0KqEN02Bb/IXjuL15V72R5tCwHot25VQtzWQXeoFnqzJFD6sCgObU4Qzpx6z1gcIgr11I6XuO04YBjpJfiUs8J89/sogSItDHkdZktWf0YQT8+YSnTV9nDQNPF8yXc2o7AvLbj+S9eqgBeQEAayDTFQtN3LnnQHJYf3i7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=syBf/RLorpv/i9yzElRI4iOU5fZxH4MOYfIBjXEPObA=;
 b=PPldD3CIECFuOzbHeZNucVXdaQWTqHoNNQoAJG6ruGcIL+duJPHCCjpStSKup1HkT6GI5+k/heRfVPMYRfmwu1l/XuiL4Hp3RXdL27DZZ2y56FSRa8tmJwHOmFR/D6KOZOp9+D0gtvxCv2dBqzIhQRYx4ptQxRzVNaADXMXlfjw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 6 Feb 2026 19:39:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: Re: [PATCH] xen/kexec: return error code for unknown hypercalls
Message-ID: <aYY1diy1J81MajXI@Mac.lan>
References: <20260206183100.28195-1-roger.pau@citrix.com>
 <d754b3b3-ef3f-43ee-81fd-076f50ada106@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <d754b3b3-ef3f-43ee-81fd-076f50ada106@citrix.com>
X-ClientProxiedBy: MA3P292CA0051.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB5454:EE_
X-MS-Office365-Filtering-Correlation-Id: a23aa6c4-1976-4b0f-cf44-08de65af1dd5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RnhEVytvWnlYVmhJTkg2VlR2NVRyaTNmcWRYSThYT29pVWRMaDN2Q3RKWmV3?=
 =?utf-8?B?a0FrREVuZXNlY04rQ09LMWVMajBnUFQ5enlWQytqOW1FdXd3ZmM4NUZjNndr?=
 =?utf-8?B?cHVJWWI0bytVNEp6cDdjWW1RQ24wNnRWSEFvSFlxN2tmd1NRblBpanpIWGRC?=
 =?utf-8?B?ZkgxNUpkdlp1RzRXa1AxZFJvTENCekg0Q0lvNHJxU2tYUFllSFdGUUkvS2dl?=
 =?utf-8?B?ZEVDRWhWSjQ0cUhFNld3VUNOZXJiL0ZkSVprN0xyMk9WdGU5ZUplNjFsUCtm?=
 =?utf-8?B?RnM0SmpUNU1nNkMzdUo4VVVHenpheHdPVXZ3NmVGWGsrNW9GczFMeWNaRFhr?=
 =?utf-8?B?OWxpRkJodG9YTGJueVRPRHVOdzJhK21RVlZlb3N6UFFWcTl1bWMzUkNuRE92?=
 =?utf-8?B?ZkhGL1JSSUg3MHQ2Z0hGZzZqem9Hck9LTHF1clV4cE5YeVZJb21ZRGphbFRU?=
 =?utf-8?B?ZUh6WW1iSFBhZm1wYXZzUjR2TXV5Wm9OM25nWE5JbGgxMUJyZ0svNDYyV2RI?=
 =?utf-8?B?WGUwNG1hT0JRTHJ6S2xrOFZOVUtibkg0NlJJUHFzOXJJM2F2MWVGUjJNT2ND?=
 =?utf-8?B?cHYybkF6QXBMcDJ4emwzd0tPMTdack5oR29wV1RUbk5rTHBTdjJwVXNhQ3RX?=
 =?utf-8?B?R2dlQVYvUERHK05Yd01adHE2NklmdG4rVXNZTGhEZDh5cXU5TEJaWHFKNVNT?=
 =?utf-8?B?eUU4OFVaOXhXc241aENhMWtZR01TSitubGxORXBRanZEL2ljbk9DYVU0UTBl?=
 =?utf-8?B?Z1BRcjBISnRUWmdhOHQ2Z2t1aTh5d3cvcHRNV2llZzVtbGNsWEZ1a0RmUXVE?=
 =?utf-8?B?Rnl5eHNCTGt0bGVOd0tJVzZORlUvd3hYQVZ1Q0ZRRmFwODNVbnhJUTV1V3JP?=
 =?utf-8?B?UnUyYzFHdW9tYzBvb01SbHk3NWViZVdmdFJrUmNodjVIRnJlMHYyQ1l5N3ZX?=
 =?utf-8?B?UHdSOUFtNEpXQ1RiMlFWSXdRZmxleHBFc2thN3NKbjI0SVRTN0dGbGJrNDdv?=
 =?utf-8?B?TFFpZmRmR1ZnRlhBUFFHMEZVTDBzU1U3bGNkQjRMbDg2TTB6NkQwQzNJVkhD?=
 =?utf-8?B?M2JPVzJoOEpZQlZxY3ozRVpjd2krQmRiZ2ZQVG1CK2dqT1EydmtKeTUwQ1BU?=
 =?utf-8?B?SlFwSTNQQlBGSmpLdVd1TWFZeVlkWnVGNVhKOFdJcXh4N3JsNTFxdHdLQ25H?=
 =?utf-8?B?RE5WMFUrdWVGM2N3YmdWQXI2encwcFU5MnNpNkNpZnJqWnhGVkJzdWhaUXBS?=
 =?utf-8?B?U3R4ZGlxeFAyYlNiZjVBb2pTeWFMU3Z4WHFBNWg3RE9Jc1JBRGpDTXo1OFBO?=
 =?utf-8?B?azRUNXcxcUxZUmdndU1UQWp3SFI2R0V6cFZ5dmJCcEVXWUY4U0dGajNHdkdV?=
 =?utf-8?B?UVVLbGtzT2xOWDMrR2RyRU9JODBnTExINXcvbTk1djFLc2d6WVVzc2tjNVQw?=
 =?utf-8?B?ZGFwdmpnT3NtV292VUZnY1R5K1RENG5pcUZLK2MxS3pvMG43WFRibzRicTdG?=
 =?utf-8?B?Q3ZpVVV6bTVDdHp2TWtpN3cvcW93N09kdHpzSWNPZ3h0WjlUQVYwbFNjWWNR?=
 =?utf-8?B?Y1NSdWdwYTl3MjRZdnM1dVQwZ21rZERzVVllMDNnQTVpcCtTSFVEOUVwam9H?=
 =?utf-8?B?WUR2cEJGQmtXOXdhR1BsL3ZzdjJHcC9Yd25PeG5Gd2tjY010WVdZaGtCNThk?=
 =?utf-8?B?VmZMZDdzOHRWbm82eFp1d0lzcXhHWm9vWUkzeEVFVzZUbTZvQWpGS09kaUM5?=
 =?utf-8?B?SHJybnRuUC9LTk1JQ010VXJaOVJRbGhFMXF6WjR1eHJjSXkxNEpOR0h1VVpr?=
 =?utf-8?B?dzFFV01ZMDlxN3dWcEQ3N1VsTllWQzE5SWlzemd1Y05oWTlrYk1ybTZkcm1V?=
 =?utf-8?B?MFIyTjFUNmdSVlFJSUNLNjZlcjN4NGJoeFpoRmszTU9HOVIzWVF4K1FiUEhD?=
 =?utf-8?B?V0JoZ3ZqdWUxS0tBd082b3d2T1RCMmRrOFFjM0Y4akZSd2Y3MldCcGphY0Ra?=
 =?utf-8?B?V3pnVnQ4TVArSWtmQmtaK0VLODVoZE13cExtZC9FTHB2QmZQOEo3Wmd6ekRu?=
 =?utf-8?B?eUFqdHEyeWpOWEFJYTRGTFNiSXpydlF1b2Y4bFcwUzFHVXhVNDU0SzRMOEEr?=
 =?utf-8?Q?+rno=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q3NHaXBsOE43TTJ3WXloRG5sZE8rTWdZY2pJSm9vUjBhNUh0SlFQSTJzU1I0?=
 =?utf-8?B?cm0zaWU3QXUvQjFBcEtMeEZsWms3OGMvbzNhSlFZR1lMSnFNN09tSWZJZVZS?=
 =?utf-8?B?b1FRRWU1aVZFNzdHQk5KdXFWaTBoTEw1dFlBRzQrdWUyaHpjTWpKUVlMQjVt?=
 =?utf-8?B?TWRSaERmRXNadXpReDNvUUJhQkhOS2xLMERHL3BhRWc5WWliUVF2bnBMWnZZ?=
 =?utf-8?B?YU56K2YyMVJMb3FTRi9EdThMejdqZHpPNnU4OTFoK0dJSXNuSEk1Z1VyTFdu?=
 =?utf-8?B?elY5TDV0ODNKekk2b0NXTzJHR2NsMnhPRzJoMGNaSHYzZlV4S1J3NUNWZndw?=
 =?utf-8?B?YWpudnFzdWF4aU5GYTJVQXY5TE1kRzR6OEtYamQzMUF2a3dHVGs4bU5CaG16?=
 =?utf-8?B?ZDl1UDJ1dTQvUGRWQ2dJRnphVXhOTGJrMHM4VTVsYnVRa1dBYkxGd3dMQkU0?=
 =?utf-8?B?YnpqcUhEUXN1cGdoc01VSy9PaVpiN00wWW5teUhCUmxtWlpGVm1Rc3Q1WlZq?=
 =?utf-8?B?TnVZcDNPUWEvRmFPbFVRM1plUStvUXZ0MUVhNVJtYm1xZUtJQUpYR1lNa1hm?=
 =?utf-8?B?MXRVY2Y3aEJzT3gxN1B0eFpET3FsT0l2TDRzcSt1dkkxMndKK1Z6TUptek9N?=
 =?utf-8?B?ZEdtY044QjYvWXMrSXl5bm9VaEc3RzVBbXlPL0VSalNQZjlrdHVSOTZodVNi?=
 =?utf-8?B?TFpYaDJibkhvajBWZ2JCSHB5Y2ZPcisyVXJ4YmJLVk1mTjV3dHA3TkZ0aDF3?=
 =?utf-8?B?Ri9acjJmT2cxMlEyVTIwSkt6OXdpc0JERHU4OUxCSkg0TFYvdHIxQlRzVk54?=
 =?utf-8?B?QkhrYWFEdE5acGZwSmxxYTZuV1l2RUJ3b1dEN090MWdPNWxNV2JnV2p5K0FB?=
 =?utf-8?B?eHZGMGoyWnc2czl5dFVZbFBiL1pNWDhRL3JIZEozQlFubURTQmovZ3ppUjJB?=
 =?utf-8?B?LytxUE9HOW9YeW1NUzVXNW5JMmdFaWRRYUcxYkt1djdzTzk5MGMxbUMrWWRa?=
 =?utf-8?B?b0pxakVUL2VpRzdEZ0FobkxVY2lGQXJSajhOcnlFakdXVklDVlRRbTlrWjc1?=
 =?utf-8?B?cFFNZGl3M285VHl3WHFkQ2pmODQzYW9mbDFhTFpkREdhT2J4c2NaN3RnWjNX?=
 =?utf-8?B?OUhSSCtaWThRcytTUGh0VGpjMzZ5K3YwMW5rYTN6ZEovOXFIOGVpcEFBTlhm?=
 =?utf-8?B?NE1NaitOUzNEeTYwSmluRW5wSmF5bXU0QW5MOThaUTdoaHozc2ttU0NBeDQy?=
 =?utf-8?B?TGUrTG9RZXJqZWp0amNqUjY1T3I4bXlObU11OHE2WWg3b1BsN2ZFM2RyQmFW?=
 =?utf-8?B?NlcvaDBtSVJlQmltcFdIZmZMWFlZRmUvN2RxeDdlb1hFOTNKdVhRTnlWM3do?=
 =?utf-8?B?WHJGTG9jc3BhUldxdzhBbWpSa2taL0FaeGloZWhsRTVLOXU1UXlxaU4zeDhH?=
 =?utf-8?B?YVpmZS9RMExlNTZ1V2hXcTJ5NENsK1hOVVRDQVUvWllBNXVFT2FUbnF6ZEpz?=
 =?utf-8?B?OTBtZ1FDVmVRMXZJU0U2UFNCS3BrZ0RGRFkrQmNwSkdHaVNtcDFxQVlQK25W?=
 =?utf-8?B?ZSs1aHU0MUJoTUQ0S2ZmNm9RWHcvZllNUHlrYjZodngvSUgyaHJtSG9jeVND?=
 =?utf-8?B?UTlhcjRVK1FSK2YwY3FmT3Q1VnQzbzJLTi9LUUxmUTZkTjBDNTB3K1hENWEr?=
 =?utf-8?B?SlU3cHRadnFaa1BOSy9KaGlZM2lSaDB0VE1oakV2MlY4M2Zycm5pTFdMc1Yv?=
 =?utf-8?B?RWJidlJPbHpFU3ZlZ0hSQmFlWStxa2hQL25lK0x3czZxQkxlTGV1RkYySzJt?=
 =?utf-8?B?ZzUwOTN5LzJFdDFZbG8wbHVhTElsdFRDd1d0REx1bTRVV3NjREt1TGJFU1BW?=
 =?utf-8?B?bFR5bEcvemsyK25pbnFZTVNYbStNMERWbnlDUFR1aHRJSUR2ZnRxNS9EU1Ry?=
 =?utf-8?B?Q2IwaDdvM1p3bmgrMzh0OXUzSW9VUWdoRFd5NmRTaXhLWC84Um1HbmhRYm1S?=
 =?utf-8?B?UmRoVWlNeTlsQllqRWl2QnRTT1RxaEo5cDVJSUk0SkNrVUNGc2lieW9JZiti?=
 =?utf-8?B?U0NYeW5aYUZGRFNTTFdxUG9FMk1VdVpzcXR0UzBHUXVucno0b0p2MGZ6N3Rv?=
 =?utf-8?B?U056UnVoMkRxYTVPeGZxYkhlR0toYWhGRDQ5L0U4b3lxTGNySzdab2ZEb1Y2?=
 =?utf-8?B?TEpiL0JMOUwySDJwQjN1RmF5OTdMV0VsWWdIejhsMjljdk1mNXdJZklvaHQ0?=
 =?utf-8?B?bmc2MFROanFzd2RBRVIvVXk4cjRaNFJmSGlpdWx4U2pVSHBNL2kyajZKZ1RL?=
 =?utf-8?B?MTI2ODloSi9tbkdGeEwxSW9XNGE0MHo5ZFdmYVlOYW5KNml4cmFYUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a23aa6c4-1976-4b0f-cf44-08de65af1dd5
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 18:39:52.9445
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: youUz4AMGTFhZznH4efthLmVKmEt0nfP0zSxb1RgAOCtj635+Bk6eFDmVP8dpvI3j430S6uDqCzSskDcxy9i5g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5454

On Fri, Feb 06, 2026 at 06:35:32PM +0000, Andrew Cooper wrote:
> On 06/02/2026 6:31 pm, Roger Pau Monne wrote:
> > Currently do_kexec_op_internal() will return 0 for unknown hypercalls.  Fix
> > this by returning -EOPNOTSUPP instead.
> >
> > Fixes: d046f361dc93 ("Xen Security Modules: XSM")
> > Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> > ---
> > Arguably the error code for unsupported kexec hypercalls was already wonky
> > before the XSM addiiton, as it would return -EINVAL.  It's however way
> > worse after the XSM addition, as it returns 0.
> > ---
> >  xen/common/kexec.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/xen/common/kexec.c b/xen/common/kexec.c
> > index 84fe8c35976e..8f52c5506d4a 100644
> > --- a/xen/common/kexec.c
> > +++ b/xen/common/kexec.c
> > @@ -1217,9 +1217,8 @@ static int do_kexec_op_internal(unsigned long op,
> >                                  XEN_GUEST_HANDLE_PARAM(void) uarg,
> >                                  bool compat)
> >  {
> > -    int ret = -EINVAL;
> > +    int ret = xsm_kexec(XSM_PRIV);
> >  
> > -    ret = xsm_kexec(XSM_PRIV);
> >      if ( ret )
> >          return ret;
> 
> Personally, I'd just have `int ret;` and leave the xsm_kexec() call as
> it was.  That leaves the slightly more normal pattern intact.

I'm fine with that as it also drops the dead -EINVAL initialization.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:24:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:24:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223853.1531250 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNn-0000Nv-4a; Fri, 06 Feb 2026 20:24:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223853.1531250; Fri, 06 Feb 2026 20:24: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 1voSNm-0000Mr-UN; Fri, 06 Feb 2026 20:24:50 +0000
Received: by outflank-mailman (input) for mailman id 1223853;
 Fri, 06 Feb 2026 20:24: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voSNk-0007sX-Fa
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:24:48 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e0382352-0399-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 21:24:46 +0100 (CET)
Received: from pps.filterd (m0482516.ppops.net [127.0.0.1])
 by m0482516.ppops.net (8.18.1.2/8.18.1.2) with ESMTP id 616IONkg008154
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 12:24:44 -0800
Received: from sn4pr2101cu001.outbound.protection.outlook.com
 (mail-southcentralusazon11012024.outbound.protection.outlook.com
 [40.93.195.24])
 by m0482516.ppops.net (PPS) with ESMTPS id 4c4v83dr0n-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 12:24:44 -0800 (PST)
Received: from CH0PR04CA0113.namprd04.prod.outlook.com (2603:10b6:610:75::28)
 by SA1PR16MB7004.namprd16.prod.outlook.com (2603:10b6:806:4b3::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 20:24:40 +0000
Received: from CH2PEPF0000013C.namprd02.prod.outlook.com
 (2603:10b6:610:75:cafe::19) by CH0PR04CA0113.outlook.office365.com
 (2603:10b6:610:75::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 20:24:36 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CH2PEPF0000013C.mail.protection.outlook.com (10.167.244.73) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 20:24:39 +0000
Received: from pps.filterd (m0426317.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616HcMQ53490164
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 15:24:38 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c21pupgxw-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 15:24:38 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id oSNYvS87kFVH0oSNYvli5r; Fri, 06 Feb 2026 20:24: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: e0382352-0399-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=iG5
	bdruXvwjOkGeq9u+92H+E2bXW726qNCD/5wDXq9c=; b=WXB38UuqsV6dh4sruYz
	LqzBDLspW+0WZhSABHEOywPNC/AVVwP8QuLKxGYvKezYLbMbZVPwCh43rhNgkeUM
	AQpcKKLUiuQ9WKFWl3w3rKbjwKPUQUMvJ1JU20LtG3+H3ZzhoqlrSGegrrd+VVoN
	MicrPZwYetBtn/vRZSnded+B36Wv5AFMOQFaImx3AuAATt2E00lFJ6vSs4kRL8GL
	Gk7ShWfDWUnxagJpBjix+/Uxj7jIVUSxoV0NntTu0zFnYWzr70He3vERpUJuxgJZ
	uVX+D82ZowTmVGZ/D+k1H0riOLhBZiHnmCx5bzE+Hsu8wNzuRuZn/yGPBffBibqS
	ogA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=elbmEeoOEO7Tn+r7I2VAPJx/h4Qx9oANUnyNbVYq131zY/RFOCwMxFYNlaeNCXS7kptxb2LJWfmlCCqfndWso9s8kZIzD924vG3wOz1M7DwY9iNzS/a/IHeZSBdNgRvQETtnoAFNwroA5iAFD9bc+LWmPOzyCDPDs8BOavwo7CNqqR3umo4xyQYHZiQ8RBkeSs3pJmcjcJwISNiixCEqgHrRqIEC0L4uEjG//WAE+Y5r11FprCIdGb4T6NxEarMJQh/J+5Klz16SMNVmQQoaSMd3SBmue6TDihtgswvz2rIYCTxpXlknmFUByGL++SYN45D6HiwNo2cvwAtGqGkIDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iG5bdruXvwjOkGeq9u+92H+E2bXW726qNCD/5wDXq9c=;
 b=HMODNjtLbZ2AUyWb91UJLBz/bxKxgwscLQnvR06G7dkI5u7ULQ7/GRAxyyXaIxtgfj2x198Bxa8D2m0OgD3RBUV5y3gwpk90aYwGhYTIs7MzsxK2EG+fN9G4oUVms43jKZyxEAXmI4hB8Cc3JMmGEI4fomTiCeYrEJrEcYAHTNurMNhDj1VWWK8tzOxsYyjI/E2M3T+4Em71MLZb+YEyMhKL0p9/Q6DDAJ55YY4LRBowFh/pLuwiLZ16kluSuGJlW2pNxE8+7Nthvk4svTZecFizn9LUFMGDVgFS4isE+XFzoehES7xMYn4kVn4R1XlY2VEhGVOUP5HYPvdO8zPjOQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iG5bdruXvwjOkGeq9u+92H+E2bXW726qNCD/5wDXq9c=;
 b=GdvxsNCrKQcNqh13MuLB1hmHUYYODtpmVHMHuhumvK4oR0sVFpHIHfESfIf0TWxBcbQN8KKBCikZ+Wxqu2xEhI6oyxQ7RxvEtWE1CuznoXWtqNEp9C3kCMdBAQlCiqYN0TGHY3ZwZUZFwwf6g5ILvp0LTWeCQFV8jw86ZH94BmI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=iG5bdruXvwjOkGeq9u+92H+E2bXW726qNCD/5wDXq9c=; b=
	oxHt6FogF7g2sC7QjSDnyinOERA3m4iub1UKsOpNaRUrKQl9qwW4vbohj6GJZ7WI
	i3n3PXPeZB5blvUgDkkkzO/UaolRD3Azlxzh2C7hwl2PdvVFUXLhpPu1PpO0JwJA
	QlEf3cl3vpCdQ+dT5njcisqNtR6qqG+Xd6J67I0rRYId7JG9pILrWTC6hFySApKy
	EGdcIOc1Oiqb+aT8JGlAd6HHNd3sL4MXkrkHaMnx4IL2Za198sn6M85GfjrhJfXb
	dzsSAA7ku9pR6OgxAQAkmpu6cooHF8r1H5Y1bZHTFmwnujMwQ3ksibS9FD+JtZqz
	txg3IQvEqu3JMNTMwLha3Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=iG5bdru
	XvwjOkGeq9u+92H+E2bXW726qNCD/5wDXq9c=; b=TSi5W+jEESQF/Kk9YhMwNoe
	ENzCGqIiYX32gI04tqyQyYtVkkggnWCOI18dhuZdm7pJj4jauJuegeIP9fqGYbkr
	jkWhyQz/t8NygDPFO1qTDy0iWKKY2q/gaoOGxpAzbMtDbxhAjSyR0jB1fpkp4O8m
	e8InB6Mo9w6iaxnkbQdYd0lrUeVJJ02/TmC3RpEfSWDbFqV4edHy6AboR8DoXBKO
	MY7cAm0CgT6vy9r8TH2B7Os5t3EMojRlGcrmD79OZj7CJI+WuvkvP+3eXcaMrG2I
	vAG+YDjLnucL89YLiMLvWJgZi9NWga5ML9Uz5JCJhS20Ry1ZRkHVAdmOx2tjJjQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oSNYvS87kFVH0oSNYvli5r
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 4/7] xen/console: add run-time rate-limiting controls
Date: Fri,  6 Feb 2026 12:24:21 -0800
Message-ID: <20260206202424.2054758-5-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260206202424.2054758-1-dmukhin@ford.com>
References: <20260206202424.2054758-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060151
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000013C:EE_|SA1PR16MB7004:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: e0a38e86-d5e5-4257-c1d5-08de65bdc11a
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?dOnV3vQS8yXHP7nbUF//OJXzKcHDDDA38rCbML5OC0RL1YuDFGv7DhlYaUjJ?=
 =?us-ascii?Q?XNCQcUdBQGCEsBtcXsDgBKycB6T6Ik+cb5Mdg5FCbVCXsuSiB3pZ5IsgAKeV?=
 =?us-ascii?Q?4+hMcydm1DksFgA9XxLMqN46RJV5k233V4LAc6X8bNqcaLjCB9pEsYoJETT2?=
 =?us-ascii?Q?kPc3O3yJ83ByIi2k4heyARFCMNWzhBBRP/HpCajbTkX52dcvSF/9ZzvbQSvr?=
 =?us-ascii?Q?qH0pgGy0J4Z3i5EGF8JT0Qps51sLbZhh4Sh5+f/YH4dz4ZOIHCpb3UwoKVHG?=
 =?us-ascii?Q?scXXbK2qkurMqBIpameVCFV3r6MIhK5IUnZyQyV+VA93UgHx1pnpSfWpFYf4?=
 =?us-ascii?Q?CXnuWeVRgHe1Lz5q87BSGP7JPmmnd9KxFWz+uS/BcQUe2L8+klPcuO5VyuP5?=
 =?us-ascii?Q?g3iPqHusSkDD2A5JKymfP/YCWdxHGtCmNMZfio+vdkgFyrMKtGFopvBU1UAz?=
 =?us-ascii?Q?ISMzDJU3EvlDZNLPUwts09BjyrWEcT/2MsYZctjzBwUj6wqoBQVTUQUdfrUl?=
 =?us-ascii?Q?QhP+QjQL5zyEf43LNh/19RvbYCUnWDZERUEOtVFzQC5CfX4+V4qlwzVxlLfu?=
 =?us-ascii?Q?iTYwRGq753Y6ED6cr/r0oMd1WdTpMV0xMHa8NkHQPDRoXvr2ocpfqJ45Zvw9?=
 =?us-ascii?Q?dhIZdpez1hciTQ/v13ef38Jm6By/Ul6l8V/J7X0qLpE7bAz1upJJIMxal+/P?=
 =?us-ascii?Q?wjJObI2HK+V9cwuURpu3zVJWr56XuiLMyutTn3Q6h3OsXN67sFJiR55p6M6i?=
 =?us-ascii?Q?rQlrc+I9+HmsyYBw/scDVaELwaIjb8MJ3mkZcZlmLcjeo3r5W7TzJ8E6Hxky?=
 =?us-ascii?Q?3scTg9GLaBQ8B6TLMQcFtM8XTm4lLrJD5mGbNV83LAtEWdDcFnBQE5Qwt9g4?=
 =?us-ascii?Q?LVYCyz+LdIQcG1lQYHyJJemI2zyhevcx9hPxW+Q9gSLZ96aFJpnCyH6MAPVS?=
 =?us-ascii?Q?acZgF+H7LHM/anEuSTvUU44u//vVgYHkJ7C5JvWbkY7RDe0IwYjTv36D3DU3?=
 =?us-ascii?Q?KNvUO/4OEadXlCfxs99LT5h7T1o57If991eUERQXigtHrR4pApxFbI+a6ZLQ?=
 =?us-ascii?Q?LnOY5EhmMjGoAwIRowITExKpGuyaaSK7kDwq0bqhvnwKfDl546WrTdx5D8Nk?=
 =?us-ascii?Q?UUNElBX14FHiVsVGczfxmjojS/bhB6RcuCNY68jLiX5Kb+BxqjgoysPckXoo?=
 =?us-ascii?Q?UlNPfkgysli3hJk0xUmO1JQTv6TBkWEhUilbmMhhKdeiorE/sp7hqfSXZaDK?=
 =?us-ascii?Q?z+trJIM61/cJ0cOhAe38gMEgckGbiflrr1ze0NGyOeElYOGtvs5qszxV2r/G?=
 =?us-ascii?Q?H6rEvYrT2bhuIF4hFOLBNYC0uYx9eEw3BMMfpo75vS+2GgISGCDPAHNXbItw?=
 =?us-ascii?Q?BWDAMDTyPHVoXWvqVa7ThHypLa8AQPjcrzjZ2Xwir/guCsEMoIUUN5ZT0/Ds?=
 =?us-ascii?Q?xnsKz8M11Is9eGtZstDZVKsKgHerfTuLuusMwCo1XHCELsI1lOX0kng5BjHE?=
 =?us-ascii?Q?/n2eGKvsGtckhTRAdznsGT7ThsOSED762s5ZjCpB35xb4z/GENqLMkOXS61a?=
 =?us-ascii?Q?lAfcjFbyFUJkaGVwJdVTvqed2JjHEjonrkttwFqiM0U3Jirmf4DQ4GmweIhc?=
 =?us-ascii?Q?AK1HQGF/fEvyhD1QIPiWnlzhAXigFFzY0hKYM9EYGxz898xWBKv1p+BIMCkb?=
 =?us-ascii?Q?bFwffA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	lx4rEcX+KnEvOnRmLK1+jEy3PVqzvL1Zfnhr2EOxNEObftZTAFKxBkriIFZQkeNKFHQP6RUuvDxo9qCQWEGuIthDNKYHgzaBme/F98/RaFBsxD1N75mD2SZUsdQl0lJ+r7vfqPey5kEtPUTIIttbmd3xXcxPzK92pHcyC1ayjcESqQfPBdFXQDaLRuK5K+Gb3TGKwAwS7fs7NUqLBRefSpfktacfvIAvv5a1bjSHt4Cx9ECpGNnpNO9V+muYqPGBVX/ofa7Q1bdSHQalco11mwYySjKpOY4wxFU3wOjS4yvLVtmeKWlVR8UfiEKC17RPX1+8GCBRDFz2k8jDSPlURrbacnyIdEb1vUBcQHYB1lqsgU2GFKAnOUoNS9N6COanbThWqMlFjw/xZXymlrDx3U0DKCSAp7Xsw2LDN3NRgp29U9slwk+AzyYIpQXsbd12
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	dydQMUVoRL0+R3PaFTo92m8hrV/xAwaGlv2brqmcwjaU2E90/th1wsuOZYgdl+1p6fQiouBpiT33XeyRwPM0XIpC+d3ZIkmSdmIP59HNgoo3/1E5PcDqHnV8M01EZV2Tj/LiBfIE2Q4yaZZxbaCXgzZViwnyUOtPExSW+CUAaGYDtY362Y9Mxeowaa25TuzasTdbV+zNFs6TUCd+EwIFCXw2MNPw54AZLh4blyCSQXyeXJif17HCBuhckiN49ekzPTsf4NHhK+AfpTAOOsVKWrCFF6KbP6mhoN15yaoASYhHWtajPuZ/SCJb5A1ovtkNZzyI9WspDZ1V0EcdahWexcWslSUHz0/rLl/lUTDpo4vmnwQjnG/8RXoiMJXKPe6ooAGOxuq59IiwCa+OSSOaeFkjk/pXl+rjjgfEh1yo815xGM1TUX/FzRQWrwwJLBc0ADHI/Et0yQ6F6g0TYhTK0bKdA7khIgvMrcrV8WLZ9Lw634HDr0Zu01us5huvwyowcYNPhutwdv6/wGu/iCxawkkUGlLETYl1qYer05Zid9UHrnopeAn/Ya2s68+uWxyC89BqNxNPnlko9HJkm5x3ffov84R3fIjt4mM7RF1cEzvZVHrtSso/XQljfjiZIHIk
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 20:24:39.3855
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e0a38e86-d5e5-4257-c1d5-08de65bdc11a
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000013C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB7004
X-Proofpoint-ORIG-GUID: SgaySis_AniU5FKlz2K0c3uzrqCe1G7o
X-Proofpoint-GUID: SgaySis_AniU5FKlz2K0c3uzrqCe1G7o
X-Authority-Analysis: v=2.4 cv=IqwTsb/g c=1 sm=1 tr=0 ts=69864e0c cx=c_pps a=j0vpRZT92jK8pnwqK8unXQ==:117 a=lOEMawUel/sSvQipkIvNbg==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8 a=-8YlOinzr_Rz_bKtHYAA:9 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE1MSBTYWx0ZWRfX6WjdqgUyTRNV xKYqNUtI28ZausfeqZkCBGdtKAqaVLZKjjol3fhJxAMRnu8xEkCqw9Ghd8g0NWzmSpyBRE8xH26 1D+86CUffm1X+pIWagIVsI8Te5sYvgO3vsZy0t6q5Apm2kl1OFwTlZsGkjOEHTt03YmNV16Gzt9
 UMQyUYzTn1fl12GKiXbt+uhIrfxr2Yny2GdvoXa3fwNXpRR5bSXfLvMqza3MwdLlTVEov2vya8i 3f6WXSE/vPqXI5N7QusG3k3u+MdPFQd2h+L3DkPKffIV+4tIb2d8ATFvvkvJDpzVA23HJM6d3Aa 0ieJg92qr8GZWYMah8C15M10gTJX7cZXXVgBv0lueMitGYd2OoAVdfJMpF0rbe9uh276Q2dH+Nk
 qrMtiZ30BQpJFpqjMTVrer8ff07zdcpLNq4OAnBIIkVcsS20hMs9dHPWi4GXUMLQ+xoGhi+dlpo TT1RfKS6MYIJxLLvKGw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 phishscore=0
 clxscore=1015 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0
 lowpriorityscore=0 priorityscore=1501 classifier=typeunknown authscore=0
 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060151

From: Denis Mukhin <dmukhin@ford.com> 

Add new "printk_ratelimit_ms" and "printk_ratelimit_burst" command line
parameters for global rate-limiting controls.

Drop `const` and add `__read_mostly` for both global parameters
printk_ratelimit_{ms,burst}.

Update command line documentation.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- new patch
---
 docs/misc/xen-command-line.pandoc | 27 +++++++++++++++++++++++++++
 xen/drivers/char/console.c        | 22 ++++++++++++++--------
 2 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index c1f2def9f99c..5505644d1c0f 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2077,6 +2077,33 @@ compression is selected at build time from Kconfig.
 This is a mask of C-states which are to be used preferably.  This option is
 applicable only on hardware were certain C-states are exclusive of one another.
 
+### printk_ratelimit_ms
+> `= <integer>`
+
+> Default: `CONFIG_PRINTK_RATELIMIT_MS`
+
+Specifies the time window, in milliseconds, for rate-limited printk messages.
+No more than `CONFIG_PRINTK_RATELIMIT_BURST` messages will be printed within
+this window.
+
+Setting this value to 0 disables rate-limiting entirely.
+
+Rate-limited messages are those controlled by the `loglvl` and `guest_loglvl`
+command-line parameters.
+
+### printk_ratelimit_burst
+> `= <integer>`
+
+> Default: `CONFIG_PRINTK_RATELIMIT_BURST`
+
+Defines the maximum number of rate-limited printk messages that may be printed
+within each `CONFIG_PRINTK_RATELIMIT_MS` time window.
+
+Setting this value to 0 disables rate-limiting entirely.
+
+Rate-limited messages are those controlled by the `loglvl` and `guest_loglvl`
+command-line parameters.
+
 ### probe-port-aliases (x86)
 > `= <boolean>`
 
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index ec87ecb3e5a0..f607e8f84d7a 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -344,6 +344,20 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
     do_adj_thresh(key);
 }
 
+/*
+ * Global rate-limiting controls for printk().
+ */
+
+/* Minimum time in ms between messages */
+static unsigned int __read_mostly printk_ratelimit_ms =
+    CONFIG_PRINTK_RATELIMIT_MS;
+integer_param("printk_ratelimit_ms", printk_ratelimit_ms);
+
+/* Number of messages we send before ratelimiting */
+static unsigned int __read_mostly printk_ratelimit_burst =
+    CONFIG_PRINTK_RATELIMIT_BURST;
+integer_param("printk_ratelimit_burst", printk_ratelimit_burst);
+
 /*
  * ********************************************************
  * *************** ACCESS TO CONSOLE RING *****************
@@ -1320,14 +1334,6 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
     return false;
 }
 
-/* Minimum time in ms between messages */
-static const unsigned int printk_ratelimit_ms =
-    CONFIG_PRINTK_RATELIMIT_MS;
-
-/* Number of messages we send before ratelimiting */
-static const unsigned int printk_ratelimit_burst =
-    CONFIG_PRINTK_RATELIMIT_BURST;
-
 bool printk_ratelimit(void)
 {
     return do_printk_ratelimit(printk_ratelimit_ms, printk_ratelimit_burst);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:24:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:24:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223850.1531217 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNl-00085A-15; Fri, 06 Feb 2026 20:24:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223850.1531217; Fri, 06 Feb 2026 20:24: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 1voSNk-00083w-PY; Fri, 06 Feb 2026 20:24:48 +0000
Received: by outflank-mailman (input) for mailman id 1223850;
 Fri, 06 Feb 2026 20:24: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voSNj-0007sX-5p
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:24:47 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dfcffbac-0399-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 21:24:45 +0100 (CET)
Received: from pps.filterd (m0367129.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616IODM4029751
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 20:24:44 GMT
Received: from bn1pr04cu002.outbound.protection.outlook.com
 (mail-eastus2azon11010005.outbound.protection.outlook.com [52.101.56.5])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c5j8q36kq-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 20:24:43 +0000 (GMT)
Received: from SJ0PR03CA0299.namprd03.prod.outlook.com (2603:10b6:a03:39e::34)
 by DS5PPF15CEA7AF4.namprd16.prod.outlook.com (2603:10b6:f:fc00::7cb)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 20:24:36 +0000
Received: from MW1PEPF0001615F.namprd21.prod.outlook.com
 (2603:10b6:a03:39e:cafe::58) by SJ0PR03CA0299.outlook.office365.com
 (2603:10b6:a03:39e::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Fri,
 6 Feb 2026 20:24:31 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 MW1PEPF0001615F.mail.protection.outlook.com (10.167.249.90) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.0
 via Frontend Transport; Fri, 6 Feb 2026 20:24:35 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616HGWLB1842312
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 15:24:34 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [34.209.42.160])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c218c6fa1-8
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 15:24:34 -0500 (EST)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id oSNSvS7tpFVH0oSNUvlhx4; Fri, 06 Feb 2026 20:24: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: dfcffbac-0399-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=PAb
	5O/Y8tkJMuRffwwSmk6ToGXwlAAsbstwG7rcOOjk=; b=RT9gxY8/LpdXtPwFiau
	+jfcDEEA4UtUWQVnghL45gCEnEiVBLU7TdV5kPPT7a4jg3w58ZrDscDJJ66KAQD7
	wmUQEwxor3VYCPo1LF94VUeQQf/8t6DSt821Yklr3L/tG9cITsmfCp5ygB3LhHVC
	fhSwva1r+/HSGRn+UTc46BCmvkED2/Mv4wM1O5Jip9GjMT18dC2i1bhVy/d8ezkk
	c+0ZE+3z9xymBcD/q1o2/vSQF6QUp+Xnb+GXfuMPq3eWjRu/6/DIT+lPe1MTrKq+
	9KDyRa39N0B/if3O4fqhbwxJ65GWRd3p+zomZxGBWzYp5g3QkID6obmWlO8yhw70
	0Yw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lysWj6+PYXB8dooueUFWKNAqa0zV3U58ab4+nI3XNoEOigkBU5V9KJFa0aDA90uUcaZjQi8T6CqXldaUU6d3CnCjkTBi8LhPyM5PB56WsPW/AiomBXePpP7Jpol56lr9k5yrjyhTuwElV9LhdauWe9aLncvY67/eC1l1VGCjWqdD0Bsi62jQ2f/CuhBHEZHLt2vR1mIvkuBRBwConi+DABEm0f9MI/TgNpalaQ0NiV6t/8SJv1zqrcnYTabVJXktZgryqyzMxYESOQIjX1/bMbOwEecrfURVhtuOKMHKo5GtygVrgq9lEgdc60PIYrsVU/3FK4vX2vjbxS33LQhAJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PAb5O/Y8tkJMuRffwwSmk6ToGXwlAAsbstwG7rcOOjk=;
 b=sbUnvvVlyO2RJoEKeYDmILQJTD1iptz7LzZhGxaajQQvQQG3YS1bLs8zh04X1Ji/0kHDrP39HfDphRGehnhOF73U1n5hu6sRJI+wB6TPstyR9RbooKV6vt4tCGKtXHztkOoH3iCLV/99Q0sGIlxtudwqeHFCBNejWlYwNVfN5Ecq4V/pPFDdir3JDJtFo/ydex9MTF5BnW1P0IGba5yJITdN55b+0i7E02lycR63FdUmXXnBohxYoWUUuOQCs24nVOIE35UHErVFtV2Hn0d2qzECdVIvrLNfvEjDsTGxiwNCq2aoB45XAUOPKdTkjQZEv+OGtA2a8TL7UVos7dkQSw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PAb5O/Y8tkJMuRffwwSmk6ToGXwlAAsbstwG7rcOOjk=;
 b=Gzd511Klz56wgmZLtHJIfe8tNqobEq+kxgwwu78KsVcdtYt/lUiXjrwdPQWvLvPTb1SCQV3rBNh4MeBaj6+4GWxFAJLlvwpDfpSy8Xvw3YSfq0C863myrt5lN8AtN7i09kkm/QLKynRXqJgYj5IUU95evvgZ/AUWhtXh3KzHpYs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=PAb5O/Y8tkJMuRffwwSmk6ToGXwlAAsbstwG7rcOOjk=; b=
	asHXhnL/jYo8iBkNbk1yOu/5W0MfbTMOcBhh/dUJ4vPBRvCsyb9088q0Uoba5orm
	rhiOFZ23Jbza7MNyTjPrUW2orOi0A+VxQD/c463ExnppGkBYFoNChEPgUzD2TOPk
	HJHFaSk2jtFviURJaPqhN+uWk5aGVk8APGcAug0ZqmQmivVdGrXFe56qdZCYYIiU
	IloOE88RlVEacw9aFMmj8vYuwGE2iRL/D9R5UCnA3ahYVpNv4m3N+Bfl618kOcUs
	E9dqAmgGYXkucKzM2jGVBgtfz9BRLlknut11BmxNemz1N7Gnk4GM84+UMkT9SvRK
	0g9yupCabcuZTBz9nRouIg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=PAb5O/Y
	8tkJMuRffwwSmk6ToGXwlAAsbstwG7rcOOjk=; b=rMc+3sE9rtU4AVoE65CPivf
	qcflUAzrawltWtdttXFXz9E0ySktMrrBBOgcBuwyEoT1JJMuk13iLvjHu1Tw4AQu
	HoXmvi8KXQjiB4DOq+/6PlcgMi85X3Y1f8xdHIf2nZ/YkJqAFTXsKfOvyiL/gDD5
	NZ5XCBJSgUVrmz6l4QJgtLOlX4pprDT16PuPnCt60U7R7vSL221Q2e2QSlcH+E4o
	Nfv8e93iCsn8UV/J7ou9PWOFYUJ4ocBz9Jq5xllUT6wicsQYjeIRVOkv0uM+Y60w
	Ybvc9PhQeHPCtXwpyl8Q620UT//kL3NPW+oFD5Ue//hkYKaWfoguBP8ax6PHYUQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oSNSvS7tpFVH0oSNUvlhx4
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 2/7] xen/console: use bool as return value from printk_ratelimit()
Date: Fri,  6 Feb 2026 12:24:19 -0800
Message-ID: <20260206202424.2054758-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260206202424.2054758-1-dmukhin@ford.com>
References: <20260206202424.2054758-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0
 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060151
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW1PEPF0001615F:EE_|DS5PPF15CEA7AF4:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 2e05c65e-1254-4d55-955b-08de65bdbea2
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?BqXKJbTH92E6MMPffEWQeZfwL5XPMcVQClgzRKCi8ZRGEEmhUJl5yvxaE6Ja?=
 =?us-ascii?Q?Wo/5uMlZXhnx2Tg25HO4i+0IfosSZ5dLUk6+qnOjJ5lvPHBrOkL/r8VlQ8Hf?=
 =?us-ascii?Q?LGuTBYfOulYoM5x9MzkS9AAsefJ0pTcP1Yy6QT3dbh/sTl6OWNH0a3d1MTc0?=
 =?us-ascii?Q?TTE8kMrmfuhTCaNCgLHX2jNRvXBYdY1dVtlF6o8Hld6uFUNcWvwEvFTlx8A3?=
 =?us-ascii?Q?9IbW8erjjH1/ajemwJkn/LoGVEuk2mijWBSqar8rFxgFBltK6OjA794P6gbU?=
 =?us-ascii?Q?1q2kxLgFFj9/jWbOvkBXcCWQ/BXTUtd/ISUCAAFaBzyzgLOwgdYhqf7NiSlX?=
 =?us-ascii?Q?ugquMUpsY5cQ+q33wmm53KEi7Z+C6zPYnXVvKAmbMs6zCSwz228JO+OT79QN?=
 =?us-ascii?Q?kDQU298eqVW2BsNVc6WBGToNvnpDgJAV98OoDqAgU4uyWU2D4sw70iP32dS6?=
 =?us-ascii?Q?FgFi0MRQ19QBowyjWlV10wIiUBFCTKyXYAuP5fUZ9OqlOS5EitiuxPEoSd2n?=
 =?us-ascii?Q?tmFcFLsOCVnCQXSRqw/OpuUm/yiU0x0Gfc7bBU9vXnxOI6nf6aMnltXja5SC?=
 =?us-ascii?Q?H4g06Y5jo107JVERs1K9JAN16nCzEyF3Qa/6JHsxsEG7LawzRTOBVqNv8V0x?=
 =?us-ascii?Q?YX3ASYu0Ug9uv7YKT1lRthyiTvXonWYsei3r52gd6wpmCeo1t96QC/AJJBM4?=
 =?us-ascii?Q?4Xx72tcgLeSKFo/iVVBck4Wlf0Lkqfc7q2lvnJoUB/MZ+l9lU4Jju07z6AxT?=
 =?us-ascii?Q?GKZ3YE5Sype803NJ4xpinLHPzieI8bLno+zFv0GolOtfao/72PXLQZxUKSM+?=
 =?us-ascii?Q?9c64ecyV1rM1/Pt6Hz6v8OkRL+uc7Akv1LXO40iWYJubOl34QL37cgU55dHd?=
 =?us-ascii?Q?iz9VJkg5bodBQuPakh7BasjEMnO0Od6GQ8fhMXYNnHizHQGbJvYLS3+l6fgE?=
 =?us-ascii?Q?1tkaW8Eu43LKuus0GbCNmHU7z1YtKy9ItnGU9mcFLnMFrZzoGrSpsyS4mqlg?=
 =?us-ascii?Q?KFUPDuiv7EwJBjq6muJ9WWn1f5n2+upmUIyfXsCoQuTYevimihgdZDMPPXAC?=
 =?us-ascii?Q?zSXd94SSDOX2NwK0HupCE/E1XyibBywbDtg9fN4SG7P5B13CyafSEIGON0wp?=
 =?us-ascii?Q?uj8g0dy12kUvpqetsh6COQ/4bak5awK+tgRKIRKdhYLP4Wocae4mYwx+w5rX?=
 =?us-ascii?Q?nJYW6/HlHOaz+UfhPO1cyVWr/JUquXPTD1IO+f5vu8yc2EBJ7O1s2TKHZ0b3?=
 =?us-ascii?Q?JWX0eOJORNEXEg0PH54QvJLx0LGgx8ul2MVoPmNyblAtP6g5A7U2MIWWAPAK?=
 =?us-ascii?Q?PE8bt88BO50FdTvk+1YZHhTgbxZa25CAacLW2sIjYHrgbqAXKcUnJMSx8FLG?=
 =?us-ascii?Q?LXFMlynPe4Jcm7139xJsVePhJ4otazoiPsQf4yeID6wXlazdFG/yy0o7uOos?=
 =?us-ascii?Q?Cr6lBy9Al4q6JRoWlxtkZlUMQslQtEFEJ3HpAMkAcXZ5BIO8Nxox0OOPeIaw?=
 =?us-ascii?Q?2hu+fRoLpPPiTrJ+tqW/+vgM2RhD6chNdhNfUU2Q9jvrtndi77kNs2ZN3n8E?=
 =?us-ascii?Q?nGxJjaWCzn3prOuAgeJ2x0KSEz72gBH+gcA2/ZcLpGCZx59NrGX1FvAbOiCL?=
 =?us-ascii?Q?zgpyIAcqhRDQ2Ram6zigDvMVdXX9GY0mWWS+OnXLtMBYAnXi4eZE/rjDOZ0o?=
 =?us-ascii?Q?fgbELA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fUAYm2yHfful01GD7o2asg6rw0IfQ5JsSFuhTbI6zQvHVYRO2rvcKLfM6Bv5jSCo0d3JaYrNtHNe6NZ4ImTsidfqOrVMuJwaxXgBBZ5eL+RQphgxLeLICVkUox+ke3k7XuzFUSuMwndJmtZ/e655/VHCQepc+TKHe1FyD322j+0L+bsIErhJDF4iTPkfw+eCnHUi6IckwNEUCPmTfP+OQmWtgOEABxTrR4nKcWp7ZzX3pRU6rRr5GUHVghi3dJYCHeEVihVKTCNbtR88usPiw6tqL1k6GS0hmxCJt60uL6bh9shZRb6bykU/9HrFLM7K8sgyccejHBaZONTxqjleLNkC7DY29Jx1HQsPgeNO4ssq3bi4p6cR4yuoq5HfZXScfXAnumUl2A/JLdfsuQznSenZRfKDy7OPNlPQ/BRDcFTe31e2bNJx9+/+w92zSUGc
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	pr8AieQrC78r97TizD7vof/P0NxC1Iy23pxgxC9ueyO0/N/LzhSM00Aeem5iTkGE/E2rs5+wvZpKK8U4D2NAYMUKGmjfSRmMGuxdzrdUsATYUgqes0HcVD6z9SXfgFH/6ocpmVmCLmq0l619rbiCvKX/ZE5I+KEvYQQQ6VTDd0haro8Yz55Z+RkRe1nAeBnGRncTndWmgEyoKr46gqETs/eHJ90FfSmKmdG1kp8FRvtg1DWitDXQrlVGSgDa9QChBIf5QrQV+0r3v7KVLXrbE147DO/MBrzpjyArhReycdmw1WwW4zFaW9RgFq4AbGk42+Wi7HFA4uOUiZ+X2k6LYiCLKIA8aayhv8l6OWVFw0OklAnsTUexfOT8ntoFEy2EQIGwJRQ/OPRKND5gXg/2w9LV8OnsxVpnfGdV7ICtLWdRolk5rHSB8EnhEJ0rGkMkL0rTZ9lDceqdG/hJrDCE3OMBovupad3U8hmpogZI6VGgnWMx1OjNzPBvXBLRluBX04CTaigi02HtV5QnWN5jcaU4Hhlv+yKT1Ne90VZHgPdWr2dr+bDTm3RtEfsoi+Lc/qFIgNUO5v8mNkdGDbVgRdlRcQp6BA9ugZAE90Uynae/QrVzLE0fBcfAfa0gbLLN
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 20:24:35.1879
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2e05c65e-1254-4d55-955b-08de65bdbea2
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MW1PEPF0001615F.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPF15CEA7AF4
X-Authority-Analysis: v=2.4 cv=B960EetM c=1 sm=1 tr=0 ts=69864e0b cx=c_pps a=sh1HRyDNv5RGx04/W1QObA==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8 a=O5SXfJm8xCv1owjWUKgA:9 a=P0bj-C3X3jJDpopQwM1U:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE1MSBTYWx0ZWRfX+ggG+y6eokCM o5xuhCKacqgqVyVEbjlCWz5sQFyj3Xn863Kngo4fj0nauybB8p6kexiHnkrjmwAty+L7yxAclfH rcQYf9hL05HZFMtVwt9KjfroyMSfSLTfMGvT8PuS/p/yY0zShcmUr0lVI63uzIDbyykjYkm/YhM
 N7EGo9k3VoEFvvBi7LfpeYlHYjaOA1Mjr4+eCOuu/Bfq4tNTHGCHJsuj4jdc4rW1JD6Gk/nK4tr bTJ18dVpQU5GRv4PbGx6+V+kqgOQuHg1HOLspOS+4ugG9izq3he1xnDeLFPNbWDEeAdpK2f0QuO irdF3369PuQc5HXDcabWjdRD5X0nmHVZTb0q9/8JO3N9NEMsNAgBo2/f2I/pVyKV7X4qNuFsxfT
 orWi+7vT0/r/LV32LM3FxzkBu31tMLnmuUB5YeBLahMDLsYgDHmnU2jt69h4QAKkWZz8SO6TQGN JcQAam47M4A4/U9+6aQ==
X-Proofpoint-ORIG-GUID: MaL_CyK9OpA5O2oyiAfGNYpny7HGwj0D
X-Proofpoint-GUID: MaL_CyK9OpA5O2oyiAfGNYpny7HGwj0D
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 lowpriorityscore=0
 adultscore=0 clxscore=1015 spamscore=0 impostorscore=0 bulkscore=0
 phishscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060151

From: Denis Mukhin <dmukhin@ford.com> 

{do_,}printk_ratelimit() are predicates. Make that pronounced by updating the
return value to boolean.

Not a functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- new patch
---
 xen/drivers/char/console.c | 10 +++++-----
 xen/include/xen/lib.h      |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index af9ed38da553..c4c92e3efa39 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1273,8 +1273,8 @@ void console_end_sync(void)
  * This enforces a rate limit: not more than one kernel message
  * every printk_ratelimit_ms (millisecs).
  */
-static int do_printk_ratelimit(unsigned int ratelimit_ms,
-                               unsigned int ratelimit_burst)
+static bool do_printk_ratelimit(unsigned int ratelimit_ms,
+                                unsigned int ratelimit_burst)
 {
     static DEFINE_SPINLOCK(ratelimit_lock);
     static unsigned long toks = 10 * 5 * 1000;
@@ -1313,11 +1313,11 @@ static int do_printk_ratelimit(unsigned int ratelimit_ms,
             rspin_unlock(&console_lock);
         }
         local_irq_restore(flags);
-        return 1;
+        return true;
     }
     missed++;
     spin_unlock_irqrestore(&ratelimit_lock, flags);
-    return 0;
+    return false;
 }
 
 /* Minimum time in ms between messages */
@@ -1326,7 +1326,7 @@ static const unsigned int printk_ratelimit_ms = 5 * 1000;
 /* Number of messages we send before ratelimiting */
 static const unsigned int printk_ratelimit_burst = 10;
 
-int printk_ratelimit(void)
+bool printk_ratelimit(void)
 {
     return do_printk_ratelimit(printk_ratelimit_ms, printk_ratelimit_burst);
 }
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index f516215ca8e4..e39fa9200c82 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -82,7 +82,7 @@ extern void guest_printk(const struct domain *d, const char *fmt, ...)
     __attribute__ ((format (printf, 2, 3)));
 extern void noreturn panic(const char *fmt, ...)
     __attribute__ ((format (printf, 1, 2)));
-extern int printk_ratelimit(void);
+extern bool printk_ratelimit(void);
 
 #define gprintk(lvl, fmt, args...) \
     printk(XENLOG_GUEST lvl "%pv " fmt, current, ## args)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:24:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223851.1531223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNl-0008B3-9A; Fri, 06 Feb 2026 20:24:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223851.1531223; Fri, 06 Feb 2026 20: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 1voSNl-00088E-3r; Fri, 06 Feb 2026 20:24:49 +0000
Received: by outflank-mailman (input) for mailman id 1223851;
 Fri, 06 Feb 2026 20:24: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voSNj-0007sX-HV
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:24:47 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e023a3b3-0399-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 21:24:45 +0100 (CET)
Received: from pps.filterd (m0384717.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616IOH81018955
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 20:24:44 GMT
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11010003.outbound.protection.outlook.com [52.101.61.3])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c5n0ch9mj-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 20:24:44 +0000 (GMT)
Received: from BL1PR13CA0218.namprd13.prod.outlook.com (2603:10b6:208:2bf::13)
 by DS4PR16MB6948.namprd16.prod.outlook.com (2603:10b6:8:319::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Fri, 6 Feb
 2026 20:24:42 +0000
Received: from BN3PEPF0000B370.namprd21.prod.outlook.com
 (2603:10b6:208:2bf:cafe::7a) by BL1PR13CA0218.outlook.office365.com
 (2603:10b6:208:2bf::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 20:24:36 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BN3PEPF0000B370.mail.protection.outlook.com (10.167.243.167) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.0
 via Frontend Transport; Fri, 6 Feb 2026 20:24:41 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616I3C0J1842071
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 15:24:41 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c218c6fa4-7
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 15:24:40 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id oSNavSQoORfmuoSNbvypEN; Fri, 06 Feb 2026 20:24: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: e023a3b3-0399-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=ua9
	UEn7fZ+IMjj0dFXJV6pVmJk5FwzdwF5Yb/oZBC3U=; b=dPysj1FBkVVkOo1seRS
	JKPXrp9sbuEG1Fh93N09/D7G97fGxxrdOOHEylK5lKuSTbFDpfQQDcG0gShCgrHH
	ktIKUl0l7LtelbieR75/tEWIFDYVVoYrqCqWiCYuPe0qWq6DKQxLsEO7sKpOHTSS
	Hwc0v/nQWIvQCBCpo/f5wsLmf3jvroXfNv27WauWHJ9iZq+UgNzB0826wdOK3J4m
	Yqym1TWqXZB+WF0/VUov9ighXxit34T9M8Yu27/4NMFkFVqVGnjdyb8QUwUbq0Xw
	fKlDQHNYXmnjS+oYdBnun9GSgMnlHdlinbV3tbbef/uNi6Mlm9YZuk8VMuPYD7rk
	lLQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=k0Y+EuevjmOHL4FxYqqxsKvJYw6OnHVBNpdnfxN4x0TWjPdGuMAOJ29Q04iVwYJuh0QqP4PouWY84fuP25yFomiocEYBCuOTc3H4LnJfFNuDW9CqS+01piOofksU6v+IGLhf7ZNUu7LqzjFvW5JpCbXeBlJK1xDjVP2J5J3XLsHfdR5poDBkvONYrliO5AjkCZFPHUIlqIFrWGPWSefq+8OhzN3Ta91GGSedfBlXwfud061MjHU428+Tf1ONShvdEzv5hlJaTezfY1f4SdFZkooiCTUQfiNBbTrlitKo5ZDiFZeUI+ZMRToY/MlArMPWecvUauKogR1M3yfCn0V1Xw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ua9UEn7fZ+IMjj0dFXJV6pVmJk5FwzdwF5Yb/oZBC3U=;
 b=w7at9vRpzdJImxf1xXCuVDdnao26A0Tdyij7pyUTPgoFczZDs9HcxO7YjK5MHWHioil+Sev+Sn+lvbxHdv9cV7/vI7qQD5gGOI5kwfswiWb2Z6suuoDF4acUsbZwW5FUU0CrouD8+e7taLMlB5Y2yaSc3EwzUXoAMB1yfgJzK9SQBTQnJGtEzzmitLGal36oneIg45euRDVbe7x4kkhLN01Yjpspp3HFkTO2ZrVjvlM2XfpIKFMjUhYWmZrfOeH4gZP2FmhRHgjxdxvAkOuPexuidCq62lxEBSo34h1lveJCx2JaCIG2ZgEKEDTPQ4VImWxBMEMzW7974z5RbJLrfw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ua9UEn7fZ+IMjj0dFXJV6pVmJk5FwzdwF5Yb/oZBC3U=;
 b=cLZ7DJARFSeck1FUWwiM/+qVcCO16VYmMZ4+EZcLPpUc0X7P2fXT18GUuoQHTfzYm6bgGMc4wUGHFVrpBOmhAfbL+Qlbe8uD0+rF+CodAd+fWuQhmbkK7ByY4AXFTFifQ0PSL6HoCdcDpSZs4WJz7MlvdOBoKn/I75V6TdmG5Bk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=ua9UEn7fZ+IMjj0dFXJV6pVmJk5FwzdwF5Yb/oZBC3U=; b=
	PI60bNxvIe5609nKJ5/DO+XwgLX2Dc6YIHXLnxzPdUPRIZLa/9GqEfjXlETTMpo2
	EJBZi4nXj56JEfnkGCqFO7fUM9Q6K6EaT+E/3uwl4UJl9Ml9q511I58SVJc220az
	xnmEPfYhh0AxGBMVrCbwxt7Xv6VnIKvIFv+ix3prYrFnaRcwinGrqtNMGmSu6hIL
	/10CbiD1hCYERmNqgrVon+WLTS4TgjXHzDXNkt6ck72fwLu1HZbR8g2Ps9wNp+t0
	RQgLNMsyOFzEoJMt419ZiiN4RKmI/kHYn+cW9uxXymQ6r6KjXLkXq5hgr25Grb0z
	vlCJlJvKmWInnLW4TAzpzQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=ua9UEn7
	fZ+IMjj0dFXJV6pVmJk5FwzdwF5Yb/oZBC3U=; b=P/jNC0aLOAI1kMtBm/ny2Pp
	Ea0PuBoQKzGMJ0rNcQx9baRD92AWZgE6ijtxds1llfXaxpCFJe0HMoVpLRgnbdJa
	ylDwian/mFxUGW3qTLieXy5Lrcqfk41A4+1DDM1bN5a/SMy6GfrwZ/W9LP/qtZBg
	Bu6PUdzt/1pQZcs/1785REjCY1nbBOhIk9fdO6DNUvGwXwHrRZQ+NEI/a1aARvdy
	uTFy1uneA+pbKGjAKfIS1rH9mc0ZHLczAWCte3alto+04owz1NG6jJ+I8+vhGC9Q
	qkCgAUyWG4zwFiBSJINYo6UkfRnNU4ciXjzKNTsr8a/yUivAVKNoQqdQrrk5MPQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oSNavSQoORfmuoSNbvypEN
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 5/7] xen/console: correct leaky-bucket rate limiter
Date: Fri,  6 Feb 2026 12:24:22 -0800
Message-ID: <20260206202424.2054758-6-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260206202424.2054758-1-dmukhin@ford.com>
References: <20260206202424.2054758-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0
 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060151
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B370:EE_|DS4PR16MB6948:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 25a032e5-8ffe-4e99-f0e7-08de65bdc24a
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?nci5GDRaeidAXcWjLpdQrD/Yf8M+t2XtKM+JljGOC3oOkaMQ9thB43bhIjTM?=
 =?us-ascii?Q?VIoU4bSiHKQF3KSGsTXrFJnMv+s76VD6VaJbqPbFxXA8Cn418mBTND+xbRtI?=
 =?us-ascii?Q?yXpIRomtkqlZu+K629jSyk7l+Dnq3c3dv8dHI388XxMXDJWdV0phwaxTKjgi?=
 =?us-ascii?Q?vQ7qZsOlOmvuTdIidgc1qWcO6JfToWCASLN9eOAj9dGl/ofd456yWTvE6Ioo?=
 =?us-ascii?Q?PMMx9h58xhPv3FYQ+vCTBuPmCXrbXkNrSmqi6z9w8h46TaiNeUQhu8x+i4u/?=
 =?us-ascii?Q?CvlW5VKjulbzWEOt7jQ4UN5qm7sXComE/sVhzKmv+zN6lThj2YtFKgYwLOc1?=
 =?us-ascii?Q?FGZIp649WUY7PtN5km8Ff6wOZ7/T8Li9avIW9yQUVILZOXZWc7gx/4oDDr4A?=
 =?us-ascii?Q?5KEE7qHU4qfa3/yB7m4qbS98EsnZaem4kV3ESUSAHCfamSFXfuilY3DwDnU+?=
 =?us-ascii?Q?WLoeEc/3WeMqCig0/wVLPpXbRJiz8Xz+GOvCwpogO7VuEGOgfnK9mBtNr5TD?=
 =?us-ascii?Q?dmdk7R0A3gx26bUNKjuOb7kLqZu3fXLD9XgkBo4nk8KtlrAD97R40CL3zEDE?=
 =?us-ascii?Q?J4GYvsqgvMQkF0kT3Q4o/Zty9qDDiNfE6nV36+WGoNETV9auTJnVwZvgIC2y?=
 =?us-ascii?Q?hKErG4ZkZQR2KZbzqjXqK63cR8kyIxeidZJfWq6HX3sIyZ1D7beHJbc3vSxJ?=
 =?us-ascii?Q?ZeYSXYFWlkHSYHwAvBw4lBW/zaPCdg9KK7iBWCrmk1xVO0osCk/qswzn0Sia?=
 =?us-ascii?Q?ire2/7BttTf88A0NGK40wLF5aFymZjnXZpC/tAkoVZOkvpgcWYlWvY/8wSJX?=
 =?us-ascii?Q?hnripPYNicJDIDflQFWoj377J1cKr+SDt05lqYZExyliusht7wH/TJAkCK/I?=
 =?us-ascii?Q?JPAmSx6aqPAhIs8Tt+V+3niFhdWUnQ7YcUKvixh4j/Z3VNr7VeNTGfAiULM4?=
 =?us-ascii?Q?qBZ0Fa3vbw/oKaj0EuFfXr2YCW+5J5kNh0bVRD6ERidSXeBs952sMy83RSOs?=
 =?us-ascii?Q?DhVRl6EU57eCNyMPuVyHgVnc55+KMH2AwCBl4HN5udvqqhnDEFDwD94cinTR?=
 =?us-ascii?Q?PNOSJ2i3VzIDrl2YFy5ulmhjffRr0uRUGhuyr4BQWVpqeKDSkrpoTQpMfLEI?=
 =?us-ascii?Q?4SusYmtbUQ5FCQaz5y3jwlnaVoM5qOtwZTI+m+c73v26XlRXIQsSaBAK0F99?=
 =?us-ascii?Q?1jrwmzc3JOzBm8Y1cssltkXvqcp5YCM2V+T7lfRYaCZNHlTWrp6huvs76EHm?=
 =?us-ascii?Q?dbSy/CYk/9kilqzk2IVtiUsdCj/9rfA5Y0NGfqLqtAn5c7qzup1oDB9gLPNS?=
 =?us-ascii?Q?aoAmTnNmamdOYH2hhvgHOAiQSCswukOmN4ry6PkmW8CAxrsrPN8ZuvnlDfRh?=
 =?us-ascii?Q?Z8TaOuAYOjRdIEyW8K/74Q424wikLi0l1T956flkhkdSORGhN1vCMSmA5425?=
 =?us-ascii?Q?3CFMCDf/8WwfPxQloxwb1pZEMcw1reGt8UgdHRGYa5ttcxO69OfV4pHuwjkM?=
 =?us-ascii?Q?iM4TLut9X1W/XddtUqioNBDY+R9pH8Jji1KJe2pEanekLUZlDaXG8hI5OanQ?=
 =?us-ascii?Q?DARZYhmlnJNxeBFJiI2AmBVGqYHgyWTHVViEb/v+GnRCk/S4iTDYCEt4jxW9?=
 =?us-ascii?Q?PzdGNhKxJ0UR1ncpn7Ktz+0=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	LMofdFfo/TaDeLeIxnEqErjVeFDjUg7a/6nHtKkSjoSry88Lp6ZbNfnzTy74Pod/s6bCGs7xupmQQWVG7gnPhS3IQJPjoGJ9J2zI+9eCK76jCOO2DwehtT+VDW2xiJQZPQ7vaL6UcpcGKQE3DTyuaNEw9MFmHuhYfL5/oFSpNH/4JY5o3Nf3de2evYrDzYR1xftM96bq5x0tZ4Rt4aygE3nKOVO2UlVoPBd1YD2Mkh6ZpqOqUDFk7PPAJk9O/RLsjjAoEJu/jZskFeOTBzCj93EDvl2K1ogoEiOEeEN1jWhRD/+FuVPb2tkUaCRG+HbdYZPx+jsAjdjtcykuuc1o+w+ZF+jVk0ggQDnXWDFFRtVqCSTclhEc1ZH9mG3kGvLNcgGpbpUsz1nDcdgnXMNdMB6XYQtk+0cWeLxU4l7mQ4oonfb07YxZkJmr41qeuuRa
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	MUS3pNiNDNVOTGoH9wITLYYO4BZAq3FZ+/2W2eH+GBiB6vfspQ+l68P9vOhBsJOlrhYkzZ57CA5DMVlk85RfbC7m17uKdtntqflfv/mdsu6ganOWXM1oVKFL2ebi/jZFGklAdLEFnwnfJizhSnn6IOY9C0cnc5BLHTQXbesyi31FivDrj+Ole4btZwze0gqj2+eKYQO9shrJ11pxPm0X/bjjF5Nu9vT12vYTkoxVFfHRlvoJ8jLSI09N1X4gdyGrZh+00R4dRbO6jRQc7RPBF6XMUfIBonPvnhslNr5i9JyqBo+rcQT87fP/U5b8VmJcmLvebxQ9orkm8hTH20shj+fNgUsVXzUHSFqyjyJlK0waAhj/TleAiZa7x2VYjU43FyHNO9xgPk4yPQe+asQ1IeS8LLFfTxPb30EWe88HDlhQia/ZOPd/pksGVArJyt0cxfCquzX+7wTnqsTWY5gRZ7ZBACO0dKSzuollHOuU2O+OdrVRbWeKGB7x3y3Xs842LRA47cYDrgJ35GiHhiu99SkKDDXSx+gAeA7pfk8BLeSh5EaZsptRav/5xCJeL2TimDNgoBsp+eboiFilDxQ7E9M5aGtOyn1OXnC7ix4dUI9VLvQdfC/fADxCPFj59R+/
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 20:24:41.5119
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 25a032e5-8ffe-4e99-f0e7-08de65bdc24a
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B370.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR16MB6948
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE1MSBTYWx0ZWRfX7cSGUemrt1HD PBZrPZykAfCClVB8uTqCD4D+AdV0zkqCcpQ8wjh7ddfWD0v32uEG7UgObDapu7w2MQFA1kmxnyz w22wYS19VeMefGhqz3Ki9RCoSaQ5IGDoaS0YZCHCzvQx0vytU5KPimuIl4PKak7lEyz4ntnnSCW
 FE6CzknH0WE2CsmyfsVF2sCglt1FGHQ21d4hLHXoLbBRCwWWZc138pvWC0cYlmtMMSynbZzgpYq WT2kmk8X5ndIDMvdwlcR10TFlqtHuDhjjpHNLOGsPOoPgSypiqH5OAvBtmoELWjpU0wU+dMUza6 TrXEHiWcwDih4gNfsSCJ46KWhOdz2WoFcbzfuPjTtuvSAYyZRsiqG7Tn33EntftJSuGyBNwCJxi
 p7th2yVmq0JV6RTItK0+2woti/weEv/x7+Bt38+aw9lG6uTtXzgqgpEtwoPmgZwFeoKUiVahawg +HB+cpkKklco77ydj1A==
X-Proofpoint-ORIG-GUID: O4gGO6pxZ7cmWfGCwZuI7khaeTbc0DSR
X-Proofpoint-GUID: O4gGO6pxZ7cmWfGCwZuI7khaeTbc0DSR
X-Authority-Analysis: v=2.4 cv=b+C/I9Gx c=1 sm=1 tr=0 ts=69864e0c cx=c_pps a=z4Cvy7J80qD6KqIazgzwmw==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8 a=LB0Ib6n2NbWcIVi9NEwA:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 adultscore=0
 impostorscore=0 malwarescore=0 clxscore=1015 spamscore=0
 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2601150000
 definitions=main-2602060151

From: Denis Mukhin <dmukhin@ford.com> 

Use existing printk_ratelimit_ms and printk_ratelimit_burst variables in
do_printk_ratelimit() instead of hardcoded values 5000 and 10 respectively.

Ensure rate limiter is disabled if either printk_ratelimit_ms or
printk_ratelimit_burst is 0. Make sure no unnecessary initialization is done
in the corner case.

Also, simplify the limiter code by using min().

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- new patch
---
 xen/drivers/char/console.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index f607e8f84d7a..e3962512d282 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1291,21 +1291,27 @@ static bool do_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 toks;
     static unsigned long last_msg;
     static unsigned int missed;
     unsigned long flags;
-    unsigned long long now = NOW(); /* ns */
+    unsigned long long now;
     unsigned long ms;
 
+    if ( !printk_ratelimit_burst || !printk_ratelimit_burst )
+        return true;
+
+    if ( !toks )
+        toks = printk_ratelimit_burst * printk_ratelimit_ms;
+
+    now = NOW(); /* ns */
     do_div(now, 1000000);
     ms = (unsigned long)now;
 
     spin_lock_irqsave(&ratelimit_lock, flags);
     toks += ms - last_msg;
     last_msg = ms;
-    if ( toks > (ratelimit_burst * ratelimit_ms))
-        toks = ratelimit_burst * ratelimit_ms;
+    toks = min(toks, (unsigned long)(ratelimit_burst * ratelimit_ms));
     if ( toks >= ratelimit_ms )
     {
         unsigned int lost = missed;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:24:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223849.1531210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNk-0007wC-Fj; Fri, 06 Feb 2026 20:24:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223849.1531210; Fri, 06 Feb 2026 20:24: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 1voSNk-0007vb-A6; Fri, 06 Feb 2026 20:24:48 +0000
Received: by outflank-mailman (input) for mailman id 1223849;
 Fri, 06 Feb 2026 20:24: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voSNh-0007sX-Rh
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:24:46 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id decd5cf9-0399-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 21:24:44 +0100 (CET)
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.2/8.18.1.2) with ESMTP id 616IOEjL009130
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 12:24:42 -0800
Received: from cy3pr05cu001.outbound.protection.outlook.com
 (mail-westcentralusazon11013007.outbound.protection.outlook.com
 [40.93.201.7])
 by m0482515.ppops.net (PPS) with ESMTPS id 4c5dukdd30-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 12:24:42 -0800 (PST)
Received: from PH7P220CA0005.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:326::22)
 by LV3PR16MB6645.namprd16.prod.outlook.com (2603:10b6:408:270::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 20:24:38 +0000
Received: from CY4PEPF0000E9D3.namprd03.prod.outlook.com
 (2603:10b6:510:326:cafe::e3) by PH7P220CA0005.outlook.office365.com
 (2603:10b6:510:326::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 20:24:35 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CY4PEPF0000E9D3.mail.protection.outlook.com (10.167.241.138) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 20:24:36 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616Hl3bX1841426
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 15:24:36 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c218c6fad-3
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 15:24:35 -0500 (EST)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id oSNWv5ORZlOqboSNWvNL7L; Fri, 06 Feb 2026 20:24: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: decd5cf9-0399-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=W0z
	vrbxd65Dho5s7fjUyTHQ6fvgLtTPnG+rL6EKOBJI=; b=Es4wwtubcVdR92h6Rx7
	PXy4oJaxmWMOGrQWYrpbDng9scVOEWs0J39C03q9Nd8f80AzDAwtYQAYgx7Kij0v
	bnmuSxV/xYJnaEkwOzEgZXR/b3/MpZUOxU1iYnvxSjf2B0p7eA9F+M+3R4rXZslx
	fGFrBkvLEc8LQagQHKKum/ecJF0mWt5ijSx0+A8YUNiJVhdpu3qI3LTpqexr/UVO
	8VbPaJ2l+MDLYW0gIY9POTCr4kd6H/LURQFKrKum+zkm5uxpYHilobIldt6nr7kH
	RMgGUqOT/m3sI/7q6GNDveoAqgt+UdD2dCgEJ4CyUmqrXHfiBUrjPwuLTN4j/Urp
	1Lg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VqqAlia7aIux2IAqssNBexRV0faNWi2XQX3YapLmKja6sKeiScBorohIDdIh8OJclapCuyjjm/G6+XEVjfUX1uXfrKEwkQLLS2Bhv3dO2zAM331gFl4T8K8QwP49TyJnATbkL+uQpSp3fD3HNcAiuMAcBxdwbuKTRAnZkhfpFfE3UbOx/kQuL2F422BK2qTjW2BhnEFzjAVrcBcywntiKL0dWBA7E935hfsFJmQbNawU/VN2C0AbrM5Cx8sW5CxacaIuFy2PMEgb9dtG0heoFnaQHxM/tLPpa7UbPjPOUuH01GXMiUYsigaZkB/CZcnehF7LrkJ8CMYoRReGcei0XA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W0zvrbxd65Dho5s7fjUyTHQ6fvgLtTPnG+rL6EKOBJI=;
 b=c89xKPemlmCyE7i8GJFVpxbzFgWlRJLpBt3xIdVV3ftEscBPURzf5qU68wQEK96DomlIC/y2V5ybYeJDrJeIzW/f4pBah+bbHFAdZpBUpW6O2Tz8NwC7bN0dNXWLBIpbQA/oXkk8tR0qX4vOcXDFpGQVmtFG0wrH/mefOOY4fSYcig6TmjeAAGdVOyeIGo1ZqF6sFRLM9HHBpQWq9AbIt0RRka5KGlDlCb/G+HVbTG2qqNaVmgOAN7EdClM8uPympCnJaHE/elm6wtkiA71NeoqtVODe5tihiHi+MKmAyqF2gD+InW6rNkhTh5FcR3R4GIArDQocbJRDVoj0XKLp1A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W0zvrbxd65Dho5s7fjUyTHQ6fvgLtTPnG+rL6EKOBJI=;
 b=F5+KwsrgtLTHHJZbuL2i47JSJgWcr+dhZKLtz2rkIh6j6JnWOtxyH6QiqYrzbzbaMZ/nIVQLIw2uP4i6UFPRERKBP6m2fVzv3WsBm80W97NFUsuoTRr52re8s13taCi7L+0lE2FHjtFdMEgs6yYjqBVNjHZfUIhgusuKxS844zQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=W0zvrbxd65Dho5s7fjUyTHQ6fvgLtTPnG+rL6EKOBJI=; b=
	RGiBunbeCNOcaJi/N2H/a+29Ie20agAJgrXeyH6cfUMCDCKfDc5wyv8mxd0OS42m
	wfSBmMd9apIArO7wNuzyLyu7chv2A+JhIAwyo2CxVBvgEZHN1+zXcs40fCeswvTb
	DEPKocZt7YHGwx+2qpJrTW5GQY3DO8B8nHnVK8bx7lNJI2EL1YjlKYqQvdOfHZHP
	RmMAxSmHG0zb11uwFvpa9guDB+qyPHSdwoZVD9N3Y2gEte+HhK3CyWltdcYpgFuc
	J/+yNLLLahSOA1BH+wzllXviRqrS4bwInuu76r1xNYiKq8cMijhj1ULPpBVxRl45
	h9N53u0lQoAhMj32w+LnwA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=W0zvrbx
	d65Dho5s7fjUyTHQ6fvgLtTPnG+rL6EKOBJI=; b=nQfv9vEoevjWH9QqTwTa9gh
	okRKapMOwJNmUNJ68UXJ1ynYyRL64o9MKY6/kFDnz8lFBduKaL791cY7C+I+elR7
	O+bGGc+6ibVwj4s+9IRAltGAWTVIo5q+YEPjmlYw78TLR9hyxu1P8Wt4fWdH7yb4
	GbPGTWzru97CszngDi2fI6dfzEf/V1tenm8gWFT71PGylxOl8gpeuaEFqBuVGtXE
	k997xDjQhmOwB0w0pAn33eTbWBoA+HbrrfKQK3HUf5wospZ4rRqC5OweBCQZt/lW
	ilC6T6eCVVDP/rss3x/lWmM1M3iSb7m2TrpeNhmjMqQsLdggnay1Ov5u1qyzI3Q=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oSNWv5ORZlOqboSNWvNL7L
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 3/7] xen/console: add build-time rate-limiting controls
Date: Fri,  6 Feb 2026 12:24:20 -0800
Message-ID: <20260206202424.2054758-4-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260206202424.2054758-1-dmukhin@ford.com>
References: <20260206202424.2054758-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0
 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060151
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D3:EE_|LV3PR16MB6645:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: d6b88f9d-941b-412d-d2e2-08de65bdbf6a
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?7CGNhXAXFncLRhRSN6JCmzGeGPGxZ4WOGt3pK5wUw4NhdZq9K2eccVVq60sj?=
 =?us-ascii?Q?s2bwnV+i6jgBiN/vuerW8xPAAAFLU67DMj4e2RQTb6spe2UhSBNBlSfeOSwC?=
 =?us-ascii?Q?f30zF19bxZlK+g2S71imM0V20Uc+yyNiDGPJVbiwPVbwKaJMsGUDe2PrP3Ek?=
 =?us-ascii?Q?vw4oDyRw+2cgnKUJEgjrBgU3F+M1GjG2poY+6pxEwR/YpbyU1BZ5UDrTVSxc?=
 =?us-ascii?Q?tVBKa/YlF1u2yAk4nVd+Rto/ZQnzJMgPkgex2eWXjUjxu9jFugPBo8xEOjql?=
 =?us-ascii?Q?860d+az//hVYRCxLjhKZD0PctIePAN6Z8onsbHayU+UaZT3jpi0zny+BzT54?=
 =?us-ascii?Q?31Umgw+zvFIKbXSmYegY44CADl0J3+L6tKmOwv1najyLLMaLfs26T35Uq5ZS?=
 =?us-ascii?Q?vmtQjwCuhzJ9p4rIJBDF47KBfnlkTz97NJlnhwlbUzL5OkOazfC3mQIVs2hm?=
 =?us-ascii?Q?qOkgSR59Wsan1vZm5wttJU0inzSwZgcidBkPFUk/6T/BX4CWozwo0EQPuDaj?=
 =?us-ascii?Q?NjJOjyrs8WsdgJqqIq7nk98CBtXQE6fs/iQwoGhf/GZC6mhdX3puAdPI2NGR?=
 =?us-ascii?Q?VKJ1j2BrppEFO5gKeZ46R3KtIC80tmZLicZPy75uu5OK/rszNc4T+1hExVGV?=
 =?us-ascii?Q?GVl3UKexwacYc3+AT9k3yfAh5U8rwtLh6i7ypNCBjew3JawavBbaO9n2vTgp?=
 =?us-ascii?Q?hXiu81fUhYZNdqo+OD84xJ6wY/zntI3M3dPMQCbqcR71F7DcBBF9OX3lO+yM?=
 =?us-ascii?Q?tQIzgC5wJuqGsYV9P+YQEsB78WTi/JHy05ucBZilgXPc7PXPLCr3ZTkcD6Ci?=
 =?us-ascii?Q?Zb/MKOGR2tahm6Kx1/fLuSnrmydvp+hQyIlWi0K5AYFyqeoudO1s54MBo17L?=
 =?us-ascii?Q?4iJSF7LnYPgXT5fbOZZo49/YDsKLMGPiIQ/afabo72AWi5att/VwoSsdP4GK?=
 =?us-ascii?Q?hhpMN3qEGuHslBqVT4EIN7+LD0igQ9yycVIMid467gp1rDMKiVlKmDZq/kH6?=
 =?us-ascii?Q?/tN12D2SacQfMG5lTLn5CRn24X7SQYyqjspB5hsrB8yuP3vDPFQH8e8ZvgrW?=
 =?us-ascii?Q?4iaK9NyDek8x97P8iqw1cCIFZ9MnPvxCgzSQLXDlXCitjI6bGUUcasZNl+Gc?=
 =?us-ascii?Q?lLUvhIz4bD2ld1G1EPXkGDse6dRPq4hU2CQD9F50+sB284HVnNYrJrzGnzQW?=
 =?us-ascii?Q?JZFWiNtHkaVZqNVi1GUGf5QrLG2Fi27+9UAc94zNzgRQWrqI++b7P/wINan7?=
 =?us-ascii?Q?X7KABLmXy9cHHBi8+MCJphn/uu+kUQDrHrIrQZrcHWAc4Jvo1K+EsaMb9bQ2?=
 =?us-ascii?Q?YjUuq4n7EXjODJq7L4qMHpISY+YXxpb9NE4q8LfyXab7gGGkMTnn3pefggcg?=
 =?us-ascii?Q?6ITJgbQVK+STNVtSVVWf2H/CVeZHJOJCtf7qAG5GyC3ImBwGZfcJtOkTqY5e?=
 =?us-ascii?Q?0p0BZdDsS97Up1axZqJgcliJ63qzvJtyqMApnkS310v6zS1qzW/eDS45514P?=
 =?us-ascii?Q?Ef+0iOKl5xpVuDK2fW46vrMy7/B9dIvJ2XVSQLmKBWr+79908T7KE3yTtTfj?=
 =?us-ascii?Q?kWj9kzIhnzoUCzXlBNJKtRU9K7M5huOLdhxAaNnVUauRzyB4bIrMQHufwKct?=
 =?us-ascii?Q?1yzgtK6X8NtsuCQZ22maE/ktJzQ7pWi78gSGGnTxpQtH4SYgOuByIqmHs1+O?=
 =?us-ascii?Q?WbdloA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	di5kvvBBzcPACO6VpnsNcIU9D61pCczfvurASQd+80V8IyYFdaNK9nYazvd2i1wFW0Q6Q0GZn1XIBHb8XrWQPGh8QBBXjXfU5cZDMTssYtKmGKo26NEFUZ1pG++iS+fR4Ym6HHV7XDFUVvQdjIbne5rtTniQkQYkn0XG9wTi0CC9Hf9uZCWO+5gT5I00Fv9Ga//0KAqc395EQLVHywBJi075mZefNMEErYxndiuAjmspXBrmHrEb9B05sup66NS0TPnJzcFRT+UOOXWCJzk4SxKNXx1/3qwBzGXTcXSKL6kaVGW1TB+pOM3YL9n1QLzfeEjzS3cAVzPyten7MyKpmnhZuhnFc7njzURnNxrvSC8FLohYGPkYMAODvJZ6K3deE8qdu0w5UpLbdu6Ph+RntHjZ+zWDD2xj5NwINHGTWU0CF9c3k2n1o1msC9Snb/aU
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	z7wCFLqfnbELEpZjoKAggqWmwOWAVuDIj77zUloA2k5nQ4j3umDg+N8r9eTSH9zotB203JpUKmOkpXq3sed9DSrN/acgZw5VE6tTDT12VtmTAB4WkXyUGfaFEyi0bXtZDedAT1bjxZibXld9SIulj/lSf4v2TI6NcfSmgbtbMEhUXLxGThxjm8gWNK2lxUokuFUx5W5cG1CBsrjg4FegKDKwRn4sxYjtj/JC+nvpmXwp+0LjLNhyRvsc0DzJsyH1YCZy51NjoGE/Kp+Q+f3xuqHAQlgTcEjbnBu4mqhvW9qvt2xfJVWo98NVBlQCvObEAAYx8E1BwofpgRAIPi2jjpWapRZ6zGYhwGfIh6KRHd0LRrzsn98NrsKODGDmInDgrd2PReXblPkPYFRJ/wbhbWS177WVIkyDNeESeJmRd1ovABTJVSts+qIUiYcK/3nYBMZ2FnxooyqaXJ1m9F+gBnu8XMydIKohIaekUDw3BgZ8pTlGvnQmi5Uq1fs+ZA5FyzFkXMZRvSnbGrVPG/1gtKWFv1g/TWKwn2Du7BEnQ0RPCn9gRFQtXR+5cOpeaCeoBfI3HQflqNSr0dQADW1RZ7O98kTwUqO/48Iim9cBe47nImS76rq4o+i3BGJkM+x2
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 20:24:36.5858
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d6b88f9d-941b-412d-d2e2-08de65bdbf6a
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D3.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR16MB6645
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE1MSBTYWx0ZWRfX+0enZNh7+HIy wvnmjazMgI368LI0cpa2wb7uv7D7yY5h3qRykbjscm4MYuylfDT9GOEQUP2cmUlK0Hp+ts0pwhY H275tdP2ybZe9Ga1I6K5ovExeH+pyrvqpPrVItdyupIv85W5zm6BeKrgGptoX4AZCvLOmW89wzV
 rR6xS0gkJtINXMOiNVbpEX/0bb/hyNvYOwNH6OAKVQf/BhWXdVdZtRccxm/ODLqvH7YKVIaPYSn FnMwJoXnSEj/EmaPtdRRgIfxNAYxwkUAMoTvuzdARkeGbGHvklocWXHbU8NKcDvaunlu3Nqvp91 mdOgK8e2FLqNaBoIQZWuJAseob+/Vbzo/GiAb1yGvGh0DiPo7591ANR7N6F4gYSEVCQCm4BJ8LX
 ERPeihRdKy25NS0CjI8VT75Bst4TT/baPbvAMV1/MR0sz95sm2NuoViipJt9xxdZhn6CUAE5G4G 3Qa7/Twf1bduXIrGVHQ==
X-Proofpoint-GUID: H0Y_FYu_U2aUQTqVi3kQFZ9GCBySh6o9
X-Proofpoint-ORIG-GUID: H0Y_FYu_U2aUQTqVi3kQFZ9GCBySh6o9
X-Authority-Analysis: v=2.4 cv=B8m0EetM c=1 sm=1 tr=0 ts=69864e0a cx=c_pps a=PxTiP5NnQLoflLcDylFrfg==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8 a=hm9gxtsbu_PkzfZFzYAA:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 lowpriorityscore=0
 priorityscore=1501 suspectscore=0 clxscore=1015 spamscore=0 bulkscore=0
 phishscore=0 malwarescore=0 adultscore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060151

From: Denis Mukhin <dmukhin@ford.com> 

Introduce CONFIG_PRINTK_RATELIMIT_MS and CONFIG_PRINTK_RATELIMIT_BURST
for configuring rate-limiting policy at the compile time.

Use symbols for global rate-limiting initialization in the console driver.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- new patch
---
 xen/drivers/char/Kconfig   | 25 +++++++++++++++++++++++++
 xen/drivers/char/console.c |  6 ++++--
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/char/Kconfig b/xen/drivers/char/Kconfig
index 8e49a52c735b..98b117762a0c 100644
--- a/xen/drivers/char/Kconfig
+++ b/xen/drivers/char/Kconfig
@@ -103,3 +103,28 @@ config XHCI
 	  Enabling this option makes Xen use extra ~230KiB memory, even if XHCI UART
 	  is not selected.
 	  If you have an x86 based system with USB3, say Y.
+
+config PRINTK_RATELIMIT_MS
+	int "printk rate-limiting time window (milliseconds)"
+	default 5000
+	help
+	  Specifies the time window, in milliseconds, for rate-limited printk
+	  messages. No more than `CONFIG_PRINTK_RATELIMIT_BURST` messages will be
+	  printed within this window.
+
+	  Setting this value to 0 disables rate-limiting entirely.
+
+	  Rate-limited messages are those controlled by the `loglvl` and
+	  `guest_loglvl` command-line parameters.
+
+config PRINTK_RATELIMIT_BURST
+	int "printk rate-limited message burst size"
+	default 10
+	help
+	  Defines the maximum number of rate-limited printk messages that may be
+	  printed within each `CONFIG_PRINTK_RATELIMIT_MS` time window.
+
+	  Setting this value to 0 disables rate-limiting entirely.
+
+	  Rate-limited messages are those controlled by the `loglvl` and
+	  `guest_loglvl` command-line parameters.
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index c4c92e3efa39..ec87ecb3e5a0 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1321,10 +1321,12 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
 }
 
 /* Minimum time in ms between messages */
-static const unsigned int printk_ratelimit_ms = 5 * 1000;
+static const unsigned int printk_ratelimit_ms =
+    CONFIG_PRINTK_RATELIMIT_MS;
 
 /* Number of messages we send before ratelimiting */
-static const unsigned int printk_ratelimit_burst = 10;
+static const unsigned int printk_ratelimit_burst =
+    CONFIG_PRINTK_RATELIMIT_BURST;
 
 bool printk_ratelimit(void)
 {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:24:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223848.1531204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNk-0007t0-6r; Fri, 06 Feb 2026 20:24:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223848.1531204; Fri, 06 Feb 2026 20:24: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 1voSNk-0007st-2z; Fri, 06 Feb 2026 20:24:48 +0000
Received: by outflank-mailman (input) for mailman id 1223848;
 Fri, 06 Feb 2026 20:24: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voSNh-0007sY-Ry
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:24:46 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db3738cc-0399-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 21:24:37 +0100 (CET)
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.2/8.18.1.2) with ESMTP id 616IODDq009026
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 12:24:36 -0800
Received: from ch5pr02cu005.outbound.protection.outlook.com
 (mail-northcentralusazon11012060.outbound.protection.outlook.com
 [40.107.200.60])
 by m0482515.ppops.net (PPS) with ESMTPS id 4c5dukdd23-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 12:24:36 -0800 (PST)
Received: from BY3PR04CA0012.namprd04.prod.outlook.com (2603:10b6:a03:217::17)
 by DM6PR16MB3832.namprd16.prod.outlook.com (2603:10b6:5:2bf::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 20:24:33 +0000
Received: from CO1PEPF00012E80.namprd03.prod.outlook.com
 (2603:10b6:a03:217:cafe::62) 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.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 20:24:10 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 CO1PEPF00012E80.mail.protection.outlook.com (10.167.249.55) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 20:24:31 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616HGWL51842312
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 15:24:30 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c218c6fa3-4
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 15:24:30 -0500 (EST)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id oSNQv5OIqlOqboSNRvNL0E; Fri, 06 Feb 2026 20:24: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: db3738cc-0399-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=ET+
	jvimhv0hTD8RcCXIsoFo2fNr0oqaiC0W5T80dNhk=; b=TuaJmXYXVOckGjY+fvp
	JUtcQkBW9Nykwq/RgwLkQTAom9MYzHo3aHDuAtyVzo8lSOnex4VJTp7OjfKP2UqC
	HyNs3BJzzvHlvp9Ux5y18ja6rShUJ7jRXwgancXepTvqyJBlsb6Pqmyzu9JFfv/t
	wG5JlYFjnmDzluK0tXzXzBThkKJqoUV2y+YBCaY+ImYmQSlQMs4hgzLW+3QYRF3T
	h8BsTIdlnhmywXG8uumKQXG9P/Bj0+Nv//mSq7yGqrFoNhp9gM6b+j0e2Ryticsm
	pME1rkF3xMeeeZEYXT81MyexMZX1Kg//PYWIrHAe5Jt7Y4sImI6bCKzYuN7/UZk1
	l4A==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=la1hr4hTtfbe7e5SNMcliJIWPp7OXqxb+GJHjRaT2oRVhQ/IiSoaLEy9pjbRAFoN+qtkLFQtDm6mpW0MfaT48P3iJ3FLvF95ViOy+HgIeCXU2hFTH81KLfC8XDZuCXF4LJEicnSqUVMB9lgl27ibcfGHpSHAGVM65Xj/sNz9P/rT/5O2YfkOTUdjBLuZC8aqvBtkAu5nhsksVkakQpykgje8MzOwUURhCcyfR/gkUeRLPl8JwzHbeleiq/mzFFSuK1ZZ2/z1uEjDeZtFm8yrOIrre6Pxfgu64sxwpQIIvsHitvaKJscLqNp9/jYlENVmbgTZvEx4/3kPy74ns1g26w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ET+jvimhv0hTD8RcCXIsoFo2fNr0oqaiC0W5T80dNhk=;
 b=LksH4VI5X45NpIQAZi5wSjkFITiFGPR+eQ4VJ53I5FNS2V4CS7mWmS+KMVX5IIUF8Y4g8Z1CzweGnohc6KMtH0g0wE/mPkeHmP9Mbc/Gt7Gn3KqH5OX8AqItOQV8CZCpQDPO4QkKB+mLgOG0Iuwc26piq5BJAckPNRB+WYlDb+XRqvdDNTllmeudgkwNanO8wce+VWGcycODeSHB1DISDX2J45jR/teIrzBSaPuGfYhoZLn0UEGbl68pqmq6uFvvgDPtAMUYchKkwrSssf/F2Yrm0oA+NhV4SsiQGsPED2/2C+R529Zx4POCJy8DghlwyhANWeXRLh1D9ggPiqLT0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ET+jvimhv0hTD8RcCXIsoFo2fNr0oqaiC0W5T80dNhk=;
 b=AB1dhG1AMSaKfFHWNN+2EM+U2gx3AfGTqPkKVZ71NKSGji/TQ0evaCrMS5wszhcKvV8GNB9Ul87x8K5zvUPrjIymI543JJLeotT7ezpTalV9YQLopJTgE5+YrsNCmA1vte22k0FS05zxDpr0ejWUYUAs0Rg6g0CtlfGjtzsZTS4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=ET+jvimhv0hTD8RcCXIsoFo2fNr0oqaiC0W5T80dNhk=; b=
	HZc8oJ7KwAZ08gDMJP3FrICClIjt895zb5B6EPJj4D1XixGP6Xa9Ri9S6XHG4pQO
	v+DijJdG7tVsi3Vny5yK9Kh83+JDmUyMC2eBY1zJfBP2uwlKs8eTfMOWkO5RqM8G
	eR2csPUzCAH0WktNv0/5M64MLAWWfarQcsbVDSEIobIiB9zVBeKlYjNfy2cOever
	ALnpy058tRVu9LvCQlTiQ+UPFOmRvLgKmF68goPCmf55v+G+WDuz/K0UdTnhqp+W
	04eBdptMjo4tnjmRfFMEa+gV6VjJA/B086uc5dL6H5K7H6KEW82t6dxzOtYzpAh6
	hqYh6y3hrCd6PdETgMvn+Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=ET+jvim
	hv0hTD8RcCXIsoFo2fNr0oqaiC0W5T80dNhk=; b=rDuiJofUrN1DNiHr5A6BMbF
	0N3MTC39gGo8i0a4w9ZMsWTD7hFlRcDfSOJkGfEavcYdb7Lb/0M65shlrp8Wdiu+
	bUH8Y66LGrXPxICwkvXZ08nHjx6jqvEypronxrIVWDv8pNuzeM4wYmc3FS526OWh
	tyuZ9rs570rKfHg2urAjHieRvE84iT1DzV1VASpVUShMQDjsFtIp57HNlpssrBwA
	lUKYx5WHpBpsakKy3T3cU4x3LIdg7TrqZTeYBPnj4zMo1gybMXujoJctOc/9B43u
	vKo8g7cveWT0VH4EU+BV9hXbXnwPke2HD7jcOiGd3knw9ibYqNZ1nkaOIVlbz1A=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oSNQv5OIqlOqboSNRvNL0E
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 1/7] xen/console: remove __printk_ratelimit() from lib.h
Date: Fri,  6 Feb 2026 12:24:18 -0800
Message-ID: <20260206202424.2054758-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260206202424.2054758-1-dmukhin@ford.com>
References: <20260206202424.2054758-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0 phishscore=0 bulkscore=0 adultscore=0
 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060151
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E80:EE_|DM6PR16MB3832:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 57674b96-e0e5-4552-140d-08de65bdbc60
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?7t3gSzPmm9Vt6MQEo1h66wt9Fy82cXY2jKvnv4nCbc7xv2M9GY9FVrNd6Db1?=
 =?us-ascii?Q?6QHeTFBlho7hbkv/AiqklxFA04Ka3E/bTx/0dFpQUG6sBfNgClM5dZ18E8x3?=
 =?us-ascii?Q?mTvgxTBnH4e2EjIXYHHIBd/ki5WsCOHBKzGm/PTnEWkRDxFb7PSMF73jHKH6?=
 =?us-ascii?Q?yv0yROXD8mvnl3V8oB3k+Uq8xygBjw0v5091aMNi0+lvemD9Ry8mFDdF7yZW?=
 =?us-ascii?Q?v5X7zXflAoVytHRKq1w0wy8dLrn4e3+8zxJ5IQO6n+VFmu9a9f5m90upeOiY?=
 =?us-ascii?Q?19mEzEEQuz2mF1UdPibDQnb7bAc2Dx10UF7fmW/3DMMSn7WpTe3pCwzUdgkX?=
 =?us-ascii?Q?dDokZgfm5dU0/CREePoE46vg4G3HvWbyRkQaLSQIvhsBaCQuQtmXj58QDRRa?=
 =?us-ascii?Q?gnFMw8YO1USYsn3/sIvfFl9xTNJ3JKh3JYyFf7W4qpLHL1JPfCT9oyCDtuQo?=
 =?us-ascii?Q?SgHiLwRiVAsjzjJMhlUB7TQdGt5gJk2b+7KDrc4LkkqJfMixv+b0+4mMgaj8?=
 =?us-ascii?Q?wWNw+aqWjsRMCBqHyxU8oVb2LgKvXACa3zRaj/y0pTK50FauSuBQNFZCSyEE?=
 =?us-ascii?Q?x85o1kBZdlZFiPzdV/6jYQAbQWJonU2w1uTuozLvnLAuGdT/Fon4qoUVJAKV?=
 =?us-ascii?Q?oWMG8IsuqbsyIavf2x/eZqnSdVzcyWddUsXUkI/nTZuLH41grBJ7OGEsdjOv?=
 =?us-ascii?Q?VbDF3Is7jphHzcD5HegfI9WyjyM3d/NooOQmi0gF+0D6U/LyzBG/0DFxulpY?=
 =?us-ascii?Q?Aop/40gLZaKNlqzbxprqg7TJuPHZwErLhomYcH6LN53/hdeI9kcUxaX5lWgw?=
 =?us-ascii?Q?4eED0hfoqEpsZ90N6Awn4rRq4ozQXbQ42uZ0xDA9Chl8ftO7GTFe1qjVcIC+?=
 =?us-ascii?Q?E4W0vC/YuXJsGGgpMQJmdDZ5CNeAgDJbInPL4Rp0yQbMiReOYNc1MLLVqOmb?=
 =?us-ascii?Q?UCt99+4l4W686LfTOhbwo3kjTuFR41KZLlmQz+ReocX3FxtxpkJwTzkAH5GJ?=
 =?us-ascii?Q?NxYAQ1w4JMM1ndoLdbTCtLTQJJ5woAWAHMJrDaAArpXtpJVjVCRZ8VZbQsNv?=
 =?us-ascii?Q?8HsymnzyP/SsXyP8yTDxH9EA/ERKcZ0N5xT40H+wjtjcKzO4Aed/NvVSRi7l?=
 =?us-ascii?Q?Fw3zHbJHrMrrIpyRDUuYMLKX1fj5t3uQ+tO955zdmXB5TmcEYyiNAxzF+tp/?=
 =?us-ascii?Q?CAHQpQl191niJualIbWGfiS0Ml7YkdCILwg+1vrjnBJ7BFdQDeTZH67qUGeM?=
 =?us-ascii?Q?DHRFh/Qh0teJYvXZ1JUVk9hmpUc7HAshD0ZvDcLAYME9P44v17rhAUa1AlC0?=
 =?us-ascii?Q?Uc9e1dPskUR2oAFaCD8pNuGSFogDj2qBCjOQUazP4mKa3MWP6ierJKw1bacn?=
 =?us-ascii?Q?SoDZJJaTSBffVZdyGrf9xjgOyh+sr/1zbf06oY1yrmHu4QH5BK9Mln6tOc+s?=
 =?us-ascii?Q?iKCFWaRL2/2COAKRad0ehvFMRMrpF6OJY72O8RqxRoJ+ANonziR6N2uX04wg?=
 =?us-ascii?Q?/+MAyYRnP1SuZN2Mr4Usd6yy/OrjhCv9qdufk31XLnZpaaMnFv+LJAJKJoyC?=
 =?us-ascii?Q?HONb4fRR/Av85ITxXIOHx5LgEon5UIozVuc67qbjG5APXQgNI44FS4eBiQZ7?=
 =?us-ascii?Q?Z9OQQrgiK+WVKI6i1jn3BUFckITkLwzrhB/Wt3qOaCwRrMX1J2p6+K2DRL9m?=
 =?us-ascii?Q?9iG/FA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	o+QUaML6HrR5ebvSJ2q/k+dWnvU65/nl2SOYj0D9ar1jNrlOIkaZRa8+kNECaDN+sYKxkjskvngS1GtEl2QbIhm051yM4na5+s7C8clYds5Wm0WZNPUKq/nggpW0L8/RJ1KVKOhZw1zcQMHILgpLQe3ihN7ziCTXrqSYoq1iPTRiywHrldswQaacgpERHLkOELXXkzBmbfcLET125G2nU6NSVMCeaPR+xHoKe3daG8K/s08cFl1dHq54ApVquXI517FK2PeNBqQj1yFiOvcx4VK1A8kja8yJa+rOTzWwcKd/tX5ZviwNKveaQP5tGbuQ3cDwHqyg1NW+CTLsHMllEuIKsTGcg2hlbBWX2/gmJgLM5jNdLOo7Or5L9HyvA6i4Pfr5Uux3fm4BE359Vpn/XELj4Yy8VK3JXyQcinRTxMdc10b91AQzgNFk9EKIt0S0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	vhXdALSNUf5UL/rncfCA3uim18MlY5pxuIcuYebgdfaoPckl0YJ1xvZ14dK0hnKpgtoEJY9jAJPjqVcy35Yye42cwNEPhO1Np3AWAlwcxpsPZb7Q4p+sAo3G5u86oMzpqisSEzKyQOgDIJ2CvPEQvsKO0ASwHbC3zyDAjZMocPagv7gbx1qtsFNJY1KUhaaeGG2YLhsQCHUPW4HaiTtezRs/+75jP1Rl3txupiT2d6YiNTCpKZvm6tvWnDFIwQErRWnE+0zyoutw688SPlb7LuPrNOI1ncUox5qnLJQuIOJ6kq6+aYqBop2s385n4dC5oVIHkABOX0KXyNVQunxGMdqDq4fh83j/L88rVw3ewahQNsgZrx5HoXOGi4qy6W+0LFIiUWqDu8yxp2gf1floxxi12cU2mtADorl6E00nQXIghkQ3EpGCpOXnDkTL/AZZe5sD4EpaWB4TCncMYL8qTQQji9tB1k0z4wMQxuGRSyH0MMkPyht0+CeXjw2YzuJrPNzXZajq2eE2ccHRpm73DUe+CM3gMJNpdL4Nz4bYGhFikUXT1sEdlVePmjGqR8T3FDmWbdeL1ML5UbKEA+Wzbn0lPEvkVjW/sDprSJRoMOcz7XsTk3OgybDP2gnwWyXf
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 20:24:31.3981
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 57674b96-e0e5-4552-140d-08de65bdbc60
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E80.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR16MB3832
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE1MSBTYWx0ZWRfX5JCEipSBW380 PZEKmEJcM5C0LTW58G8sq5WJNu2chwZNkmslgRWMPEKlL28Kw637j9HdNreoPFiNchl5WfjzyFm /0sb9IXpaC/HavATSVgU+ImqWeBhsIIv5d/EivUV1hsCOabLjxPhKs6vh1u85WPLKlRaOX3eOub
 d21o4fJV5Vfc2BarTuBgMHf6D0Stn/3QtSv1S1z1vxG+qt0qN7lDKsnQ5Lbl1eT8smtuw3GLspe gKxPrRfLI+LP8XeG5GvmESrQSEFV9uD2Gjma6UbRv+fHErpWVguFtOsCGNX2lmlZ8xOPAjAlLbh xkPFoGsmtJqvU4dZVlV2cicuIJlKm8J2aMQtsKueWCrny3Aslhx54IWQmfEJ4hjtwYxE8pRU7bn
 RbWyjV0DGi1CmKvVHXSKJPlXn3RyethnkkOu/wlPffp7DfeSHX85UT2OXMp6lRBhKpoOf68/fX2 ZRGxdvetz4A0EcaeAmQ==
X-Proofpoint-GUID: 8m2QTyhIk_Rb8yABjFxMejuevYNTGaR1
X-Proofpoint-ORIG-GUID: 8m2QTyhIk_Rb8yABjFxMejuevYNTGaR1
X-Authority-Analysis: v=2.4 cv=B8m0EetM c=1 sm=1 tr=0 ts=69864e04 cx=c_pps a=P3LZRqt57NYhn536gl30yA==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8 a=oa5hPvwPiI9YOEVbZ-QA:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 lowpriorityscore=0
 priorityscore=1501 suspectscore=0 clxscore=1015 spamscore=0 bulkscore=0
 phishscore=0 malwarescore=0 adultscore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060151

From: Denis Mukhin <dmukhin@ford.com> 

There's no users of __printk_ratelimit() outside console driver.

Remove the declaration from lib.h header and make the function local to
console driver.

While doing it, drop double underscores to satisfy MISRA; rename function
to do_printk_ratelimit().

Not a functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- made __printk_ratelimit() static to console driver
---
 xen/drivers/char/console.c | 7 ++++---
 xen/include/xen/lib.h      | 2 --
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 2bdb4d5fb417..af9ed38da553 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -981,7 +981,7 @@ 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 do_printk_ratelimit(). */
     local_irq_save(flags);
     rspin_lock(&console_lock);
     state = &this_cpu(state);
@@ -1273,7 +1273,8 @@ void console_end_sync(void)
  * This enforces a rate limit: not more than one kernel message
  * every printk_ratelimit_ms (millisecs).
  */
-int __printk_ratelimit(unsigned int ratelimit_ms, unsigned int ratelimit_burst)
+static int do_printk_ratelimit(unsigned int ratelimit_ms,
+                               unsigned int ratelimit_burst)
 {
     static DEFINE_SPINLOCK(ratelimit_lock);
     static unsigned long toks = 10 * 5 * 1000;
@@ -1327,7 +1328,7 @@ static const unsigned int printk_ratelimit_burst = 10;
 
 int printk_ratelimit(void)
 {
-    return __printk_ratelimit(printk_ratelimit_ms, printk_ratelimit_burst);
+    return do_printk_ratelimit(printk_ratelimit_ms, printk_ratelimit_burst);
 }
 
 /*
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index bb0fd446b484..f516215ca8e4 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -82,8 +82,6 @@ extern void guest_printk(const struct domain *d, const char *fmt, ...)
     __attribute__ ((format (printf, 2, 3)));
 extern void noreturn panic(const char *fmt, ...)
     __attribute__ ((format (printf, 1, 2)));
-extern int __printk_ratelimit(unsigned int ratelimit_ms,
-                              unsigned int ratelimit_burst);
 extern int printk_ratelimit(void);
 
 #define gprintk(lvl, fmt, args...) \
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:24:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223852.1531244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNm-0000K6-Pn; Fri, 06 Feb 2026 20:24:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223852.1531244; Fri, 06 Feb 2026 20: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 1voSNm-0000Js-LU; Fri, 06 Feb 2026 20:24:50 +0000
Received: by outflank-mailman (input) for mailman id 1223852;
 Fri, 06 Feb 2026 20:24: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voSNk-0007sY-FS
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:24:48 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id de7e6e86-0399-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 21:24:43 +0100 (CET)
Received: from pps.filterd (m0384718.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616IOGEJ000612
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 20:24:41 GMT
Received: from dm5pr21cu001.outbound.protection.outlook.com
 (mail-centralusazon11011012.outbound.protection.outlook.com [52.101.62.12])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c1way2guf-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 20:24:41 +0000 (GMT)
Received: from SJ0PR05CA0135.namprd05.prod.outlook.com (2603:10b6:a03:33d::20)
 by DS0PR16MB5392.namprd16.prod.outlook.com (2603:10b6:8:156::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 20:24:30 +0000
Received: from SJ5PEPF000001D0.namprd05.prod.outlook.com
 (2603:10b6:a03:33d:cafe::4f) by SJ0PR05CA0135.outlook.office365.com
 (2603:10b6:a03:33d::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 20:24:29 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SJ5PEPF000001D0.mail.protection.outlook.com (10.167.242.52) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 20:24:29 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616J8RBF3941138
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 15:24:28 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c2127xjkm-4
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 15:24:28 -0500 (EST)
Received: from localhost ([19.12.92.222]) by cmsmtp with ESMTPSA
 id oSNOvB1fl4XAgoSNPvvjiz; Fri, 06 Feb 2026 20:24:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de7e6e86-0399-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=WXOe7x/puaksRUf8rmIsWMRfc
	lVPj0Uj2TcLoptzsdY=; b=sdg+YZB0AInLZizskn/Aj1llQcAA53U75DHeHqR46
	0BJTvlIvWfSwwsn08ThjOG97kdEwuga5kJE96oL7kTypIPGysHQVW7jYm0AjPd6o
	QhZ0gcT3TFBZC5f/GxXl3t44CgKl9n6Y5IgXDw1Y9jCZsGkZtsRrHXw2RvXnTWgd
	u82tIDl+ndGlE5OQMn53Ojnqs8CCXsbC4aHVnXVSNTKKpQgZOukTOkT2pgZA0iWw
	T9TBtJLoqy0OIb2G7AnX5qi3b8SLihKdGxPqR9LFnJ5J1LkGJNQNjcI0sDLVeEew
	Tp9BbsmZfdBlb4EMVak22pTkdC72Q6glJSgj7aHrObSbw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=nU4aNXiqciSnyL2/yTOT09490bVd1jQ+juvdVLPKy5GjNKubhR3uacd7a7m4uQCOzfkKIhG2dA/eXLi0eIaSe0WvMP/zihEqNA+3Nu4Qz/2pbhRlymvZL2Fbq5TeZaEm7D8/vSqExfjrrZT0XFLgNTGYBS0reokTi2pVuBz7f6UlqnmSBAHWi55Z9JXqmLBMtBeSIP9tPm8hT80FwyaI6FImsZsmJU1uDDLKLGuUCisLSyVFcoo2hQEpTecxOlVugb0g1nfjtw17KIpF1ovsX/ul/+7fPxQ7J3ANbsjJqZkM3zXUMt+pHTc8LKvZEqrXzRn8jibor1tH7OrVN3zjeQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WXOe7x/puaksRUf8rmIsWMRfclVPj0Uj2TcLoptzsdY=;
 b=MCqsM9JTSmHsbCqvmFBO0i3EXqFQGz5NGakEngJ5ByQBwv3/jaQoTLUF/uK3Lau0ImTN8rEVwLNrDGGZVMI/XKgxE43IIdBnsZDajP+DL4NMKvlu5GZevDj92Qs0BM15PZ0xUr9JzPz1l0rqEBUgQDs1rw4f26wUqZK5o9Qty9adDLFNnVnTPlXMIrfG/5fqQqupCU7GUcN8dz8lJA2ctJt4AY1fhA5iV51Lntnir0Lvz9dT3yO41Zo3z5euGCC5Zeyr7TDacYovHZnNlV7jfaxVWHYo1nO3GQk4D8KhBUu3jPw/4b6ZORZ0bq90wzJw/4H9uS/4LDfi8jybOgXjJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WXOe7x/puaksRUf8rmIsWMRfclVPj0Uj2TcLoptzsdY=;
 b=glj9Osi9TCy0DYSZ0SN4bU8R6Gk8GMl0a3vRcDSGoQDlPyB/TGvb4755Mk46AmgV6a7tzitvs0845ssxfaLnQ05B3vmG/t1pCOjwjANesUbF/3mNwMePpLtSG3sLKG361MNlOlK2Z24s8FgM48auMRsagWsCqNsNTG6ndoDxUtE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=WXOe7x/
	puaksRUf8rmIsWMRfclVPj0Uj2TcLoptzsdY=; b=J60LHh+NHQqmJI1odjU0GkP
	0ONL6DRLzT/ta8LlqQ0CYRnu5VVWZvdcDdteQhcrWMY7gkkaDk2cuJvaOWYWk480
	4E2nQWBmggodH17b19pJZyS6Q31dwH9VGVU59dWRbjyG5Ny2Wigs7DcJu+JGkFAS
	udoeap+lte2mFl30z2U46yRUcDmPDJn5Raz3Vsr3CwAAgR909FzQ6UKFHF9wQzEh
	6Y1qUFZqOc4Vo9vRFzovjMTo0fu7tSQBjYypzjQCekWGD1WrKNyqixguLPhYmxs+
	dMqYBMREJFYhZQgGYkhX8Rw97A5v8SfpnPnNzUo0OkzIOqylPt3Apzy6xcP22/g=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=WXOe7x/puaksRUf8rmIsWMRfclVPj0U
	j2TcLoptzsdY=; b=Nap9RnTcROlrJyMd4GjWcefH4k3lkgRfu0jbCbjXMYCtMA1
	KDnQ2ueWBlMPLCYMM/Gt7P5sOUdVpDbuoWOChAkRm5IgD4CTK0sQpcC5OcGKKb4L
	uiGQWRq60KDaSZzyeFhgoXT9C6auaJME6XDyit3P5UJ1JF3+3tZDNdpHaBKQSOV6
	9WsnN4FEiWtvwA8ppNaVyYe3c/tRVTyrhUFxIM7ha0B4+6Mdqe/gh3g4sOcwzvqR
	Ib8+Lf7Hh/hWxZY4G3p6T8JR+ZFveyvfwMw+jLBzydANxQdyPENmMwAvng9aRn6T
	uleeY6Qm9V98RVCKCj1LTnWJbYvaa8tU6hIZd2Q==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oSNOvB1fl4XAgoSNPvvjiz
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 0/7] xen/console: updates to rate-limiting
Date: Fri,  6 Feb 2026 12:24:17 -0800
Message-ID: <20260206202424.2054758-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060151
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D0:EE_|DS0PR16MB5392:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 9e0269ab-de28-46c6-d941-08de65bdbad2
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:
	=?us-ascii?Q?TN+Hu8vYnMgB3eoajViAxRdzVCLgV8F01CFQuj+VPBYvbhvqSC6uUn3x+45l?=
 =?us-ascii?Q?PtceTZRh47ZpIIxSy1RaKvPne5WnHes6hwm6QmIC621+SpBpKQLUiliurc5k?=
 =?us-ascii?Q?9jxcSdJULYmYTpSoUnPF3snifGu0jsJR1D0WOl2XNddR5wAm+6UjP8eRPydH?=
 =?us-ascii?Q?l22twcg65bz+WymH1G0um1Dpu6VGaAR0Ywp7iZy+HQ7rn/o0DM/xKM3Qp06R?=
 =?us-ascii?Q?a8y5ASOVn+K+/EvMK+JYF5EraIZ7d1kVL9OeB+eJ+6tIxhUFEoK0YMcFZrmJ?=
 =?us-ascii?Q?M3yRdbhWG8HYcf6pn/oXlsF3RG4Q4Gd9I1c1++AoAXjQXlwazYvtBTVKwe03?=
 =?us-ascii?Q?yxVyoYbMvZitnbcbYHBf8MAs4ciap04sHc7Iio+tezeitIiz34wtKnbEi6td?=
 =?us-ascii?Q?lVWCO4ZMT0bIHrXukWHASAmmHez2A1yvXlmZ9W4eZ9yY0H0MfIpgzDxtEWXV?=
 =?us-ascii?Q?6UUlqsLszhBaUOxy2gslPCtWSPk4ijh34NhCh8j42JzfRPwJ/p0HyH5jNvtN?=
 =?us-ascii?Q?EiJOyHSOIwFPGAoLgfMOtmk6sSCsouIDe7ckpeGtS0w6LwC9PeGWE9sxsqKk?=
 =?us-ascii?Q?9zTmWd82OESD4DC7gpana1fvk/ReE5Wo/NASXUdwY3Yw01AZ11JL7W0fKsVc?=
 =?us-ascii?Q?TA9A+g/qAGNn/rPu5KBJE5l+4ItoGRmeY71pjUbUFmMN/Hta3xj7tgpOPpX1?=
 =?us-ascii?Q?RS/Og1t7OYklNveyLZECdnveIpRSRGOR37oIzmZ0+5XfeIz5/hHpQOS0TUnk?=
 =?us-ascii?Q?egWv04CREW1L2pw87+ox1yq5KC5noNOg+7J1JEmpfxEeo4piOTY4E6MEyll5?=
 =?us-ascii?Q?CFIBfF5dj0KxS6Yt7rYDEAzLFuLWKsMKfAYXd74OMTpEwjPX3n4LUHgu3oAh?=
 =?us-ascii?Q?iNSrqyLBdKDg/Uz8gVtkJfEDcC3VW1TbHKgcAwinJ3IqT3P4CE0mv0ObCY89?=
 =?us-ascii?Q?4aHOSulAg3gMl4X6k0JdFW32HOVzEDKLBEtuzsKz+n/sUQe5nbylfaWEF3JU?=
 =?us-ascii?Q?x0/GE8FsKSIKK7LKZmZ5xP14ljpRtSvMUibGL6rbb5Ww3BgtR4rkZELFAsFi?=
 =?us-ascii?Q?Z69l7B8iOHv6XwLKudCc7jO57M7Doci8B3V+Gc0E6KB6GsnLzer1Mq6pDOH9?=
 =?us-ascii?Q?sEgghwRrFP1+Q8iBWXBtzxj5radW4FYL9dwEHlQflibWo10q/pGYItq/LnZB?=
 =?us-ascii?Q?B9qJRCEq2rhGIKN/DCEYk7oqZhW3j8pHlOSpAFHmo+bjyfitjwa1lc088jlM?=
 =?us-ascii?Q?dA3XT6wb0mgtzHnBpiP+vsNVOiqDEmOmrKuy1H0S8A+jJbZh/UUbtw37Z4sD?=
 =?us-ascii?Q?8STF1OG+MbvMk3QdjQPai8JSMETb6fkUXRS5zTlCSO80CUlC2z5ssu3fM5tv?=
 =?us-ascii?Q?J1SokQPqU0zpNs3uls1AKcUVEXCmquoKR0paYs26V0coss0xFrpq7D72wxTG?=
 =?us-ascii?Q?sFv6heMpjGLEDenH0NZysEB0N+SKhzdKXHTBBRbIXTrRKfKSfVJB7mldyCFj?=
 =?us-ascii?Q?LhQcsi3b6salRGcdjrNk74DP1nWkkzluWr3PDGyVI0hWiQJvgOYxWzdA6Arj?=
 =?us-ascii?Q?4w7nqCjrD7DuGkw3QCFkXnrTJT51VpZC9YkA/P/NqaY0QBviOLHridmbedrx?=
 =?us-ascii?Q?QY8JcOiy0EnUv/nmiIg7shntYGxfkOiTIPjf4KxXO1DwbSNANTrpIgdnKouT?=
 =?us-ascii?Q?5/o4TQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZzaeIT2iXKRbDD44SyT2kegnBrhARIHZvkaNQk+/P3IK2wOe51uVlBPE19e52DYyjWHIqch8g5A0SXENUwDJnV9eqvCYfKqESf4JzSMDXEmSWsKaB0BIg2/cFzIO/pTBFztLp58cqgUyHjIX4erw/nd606YavHEDx+mZ21tM22tciWhP9AhLCaeUahfNcQUaKW0P1Ba1pJ9WURduP5raxxlUwU1uNQRyzLx4HFxCa+mgF/iimDprW0tEO8Vik79DbAzmU1IbPAIZRYEfWVminEo5YTLwRCv7qVjpZI/dvZmNM/zwe1Shn+YXUZzx6b3wbTTdnNvvV9am/0Az71T05UU2jVd/8k3xLcSDFCMfREHstog73L1nnFrpJbdL3ICKsxpQXvaRIf70rPhs/4GYOxC8ZDoGnFwApc3Azx4ucerGNGyyVMJLZwVu21PQFgy/
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	muhajrjo5kQp3zug+obrJfRtV3bN6aMi77h/+d7xi0TgjcmxDgOHf51VZEH1NyiZu/gzSyiAaLeKbraI7Do5pdQGeCdlhrrH3C1r66hwuhd+aejV+v3ote60Ig9GaSEu/Rh3XrMQdLntkAwUBedrqmvxThQNFVuskadxzMwNDgSgqtbxXgdAdXZoiQTq5SyW04T/4gJ9kfoZoetkwNtllNxieQCzyhqdBCGOmIdzdpm39D8Q88joLvVyzLfDowvLmRd/NYO6tLHwtGSAqRzsn4dfDWQEZawyMZzEbvI410c/xsnF2feDUdcwxxSfXpTnWCVXNdM6bHMcL8nP5y1Havb/3ymDI3Lf05a9jYsXOenhZD3h0MALIlS+r9Ymfwbv32BZcX8yD7jOruhdXP3LzOx8+kQxhQfFNQeiBvBtMyef47tGoyH3N6yDgZSp1JwH4WbDgafhftp5/lWkJ0Q7dzHHFr3N6YkWFE0h/6PH87H2L6lcTKKdkEOj38ObczUK9XIu5hJOGcIyuquU+W9TGOY/9j6Vu3jhh+9nDy5hQHDWMjUrslnLHAQOUaP/nM0H1c3npeouzeFUQicE6hWhbtWQGqGRCCh/z8/T0zHREn3NuJRU61Kj27CGZLPBBQVA
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 20:24:29.0315
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e0269ab-de28-46c6-d941-08de65bdbad2
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001D0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR16MB5392
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE1MCBTYWx0ZWRfXxr6O7QK5qZUL spsZlgaYuvNIyzS/oF3hsfiyfAMRdcW/6C9WvHtdtLk+ZHIo4D36Gwf8JmkaVTH8/IYORkeHkpe 83nZb4rtGMLskJSxLT/2prtAFwodA2fhf3FOzSM0Y2eIjIScUhBN8QVjf6nOyyVlqOmEj3xFAWh
 JRw5P2RdmnARPELfa3SPvG5N8BbxU0xkAwsJ61dO5wdEzvTImQtbsMU/81SsgkRmCCzPawVzgcP 2X7qT1oifHGFpzM8PhJjzeFFhr3SzJhR5RoRRkWE7+VRB2pyrfW3IEStsmWzGZXrEUHctvBttfA aiU5See1WzVCNWijobIfGwoWje4oqAiEGhscwVdvKHrr17lAJdXfIN2BpJDAHEg4Ee2qYFLARAk
 lFne8Msabl7E9CtVs0oWvsQeAeLLxwckIXCSYGcxYfm+N03yKsIti9befz8EEPuR0wBWJl1c92A LaalyPWK9Mx7HcADHiw==
X-Authority-Analysis: v=2.4 cv=IJoPywvG c=1 sm=1 tr=0 ts=69864e09 cx=c_pps a=4YDC/s56AEiJKWlPnw2jOg==:117 a=lOEMawUel/sSvQipkIvNbg==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VwQbUJbxAAAA:8 a=cbNQJ9GKAAAA:8 a=p0WdMEafAAAA:8 a=_6ByI0yGj-vICIXCAFgA:9 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-ORIG-GUID: 9wXk-qr7bMORXKKzeJ-QnoHW-lx-GPQc
X-Proofpoint-GUID: 9wXk-qr7bMORXKKzeJ-QnoHW-lx-GPQc
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0
 clxscore=1015 lowpriorityscore=0 priorityscore=1501 spamscore=0
 malwarescore=0 phishscore=0 impostorscore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2601150000
 definitions=main-2602060150

The series introduces compile- and runtime-configuration for diagnostic
messages rate-limiting.

Patches 1-2, 6-7 are tiny cleanups.
Patch 3 introduces build-time rate-limiting controls.
Patch 4 introduces run-time rate-limiting controls.
Patch 5 is a fixup for the rate-limiter to adjust to new user-defined
rate-limiting parameters.

[1] Link to v1: https://lore.kernel.org/xen-devel/20250725212235.753363-1-dmukhin@ford.com/
[2] CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2311064179

Denis Mukhin (7):
  xen/console: remove __printk_ratelimit() from lib.h
  xen/console: use bool as return value from printk_ratelimit()
  xen/console: add build-time rate-limiting controls
  xen/console: add run-time rate-limiting controls
  xen/console: correct leaky-bucket rate limiter
  xen/console: use s_time_t for time accounting in do_printk_ratelimit()
  xen/console: simplify printouts in do_printk_ratelimit()

 docs/misc/xen-command-line.pandoc | 27 ++++++++++++++
 xen/drivers/char/Kconfig          | 25 +++++++++++++
 xen/drivers/char/console.c        | 62 ++++++++++++++++++-------------
 xen/include/xen/lib.h             |  4 +-
 4 files changed, 90 insertions(+), 28 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:24:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223854.1531263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNs-0000vR-Ir; Fri, 06 Feb 2026 20:24:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223854.1531263; Fri, 06 Feb 2026 20:24:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNs-0000vF-FL; Fri, 06 Feb 2026 20:24:56 +0000
Received: by outflank-mailman (input) for mailman id 1223854;
 Fri, 06 Feb 2026 20:24: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voSNr-0007sY-4J
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:24:55 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e47ee03a-0399-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 21:24:53 +0100 (CET)
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616IOGl1017544
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 20:24:51 GMT
Received: from bn1pr04cu002.outbound.protection.outlook.com
 (mail-eastus2azon11010001.outbound.protection.outlook.com [52.101.56.1])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c4baymunk-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 20:24:51 +0000 (GMT)
Received: from BL1PR13CA0222.namprd13.prod.outlook.com (2603:10b6:208:2bf::17)
 by SJ2PR16MB6132.namprd16.prod.outlook.com (2603:10b6:a03:571::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb
 2026 20:24:44 +0000
Received: from BN3PEPF0000B370.namprd21.prod.outlook.com
 (2603:10b6:208:2bf:cafe::a4) by BL1PR13CA0222.outlook.office365.com
 (2603:10b6:208:2bf::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 20:24:49 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BN3PEPF0000B370.mail.protection.outlook.com (10.167.243.167) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.0
 via Frontend Transport; Fri, 6 Feb 2026 20:24:43 +0000
Received: from pps.filterd (m0426315.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616IWehB3654759
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 15:24:43 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c24gveaaw-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 15:24:43 -0500 (EST)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id oSNcvoz8awVq0oSNdveEla; Fri, 06 Feb 2026 20:24: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: e47ee03a-0399-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=91u
	vrCfmE9p9OckTdvelbOLI6FReGTxP9EGg8jerJOM=; b=afazjQhmEDNaqPLk5v9
	RLNk1Ofa571aSDn4Fz5SSwJ3GNO4tWdQYm0tkd3LOBXphhOnTwjhXMs+Aq4uXnvF
	542WFaA8GPYBU1/L6IYja0ltsoZCtcboOMtZUu7lFlDRiNLaYOSwtnpOMknq4rYh
	BhVjzA3ccSKC5bo1lnWmUo2WWSwuDQp7LHdaPsntc3mWU2VG7U5Ww4l0BcNWgGjC
	EuJ/+rb43+S+IcatfyF9hEs96HB+MzXN5dVIuEtLlxOaxsvW5ouZ3l9hEJo3+JPU
	KIDffULgE+RUX/hE6i5MO5jmsDrtnjluVoExd9wYQiv/sQ/qUgh+v37Qd2OAdLf3
	/Tw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p2ifvxee0qkO0LQ/SYqMzf/VexVVtz0LtQ3AyikPi5t3TFl8gDNnHVnll8gJ0sthZQKTl9bguZLVzy66DCkM30L+Ms3bG9otL8xRLfZjlzB4GNADNKcbch6j3UbfqLDZgzoUfln1r/ME2WahpobhSZ01ko+T+x60h8o4WccA4d1iWTpnd1GGh256njoxnDOgW8OF9saj+WwI0Xkh2DHwiGyQaglDRCeo7kJaR0AII1fhzm/ZiA6T5Q4l7dTZLlTiuSAQ1lPIlLP8Ilj5bCsnvQXbIgFTGuHM+LwpYhPKZNWVW3R9NfNB+yi2V2n87TfckwspD1FiA+AbttnzNc5lTQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=91uvrCfmE9p9OckTdvelbOLI6FReGTxP9EGg8jerJOM=;
 b=x3MRFUR7ldCqQoqGY6zMcFT2qzYpKQoYYJwpZg+mC8yRac8LNXt1rGbuCot8dw8d1cyKkyi/kemZkkmkHS0KLWE6zUnYaB/MSTy/dy/au3YXpaSuCY2qZKByIBAyCgSssFxN5eGvuya8dvG37lXNFJcF0MpJ+HYHOqDxE9wicJMESCe6VPchen8yzxoLEkn76e5bmDyLanDRA2MQG9UKoSg16y4RqAxGDC33c02kRi9jAhYlhI6lfa2R+Rosb/t/F0Nxeu0p2s7FNBAjP2KerENTByf375zildnoz1+FwjNjalm/9cqshB9efNNkfC9OZVML7z/UjE6BGromlKvcvw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=91uvrCfmE9p9OckTdvelbOLI6FReGTxP9EGg8jerJOM=;
 b=QKj9yW+G5dqA/Q6Ra3UdH8J4nfX0wyLF8tAtsms3XbrnveH6aFi0FQ+wbMirn1KeCfQuGpBKnAAG/88jBioE9+AksTF/Uds8a+DKVxkhHdJTAYDgt+wd3y/qVij4xZEngINLVIQ79sv7mGO6XYshicqTY2Xs2Wzl4NHQ36rvMEY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=91uvrCfmE9p9OckTdvelbOLI6FReGTxP9EGg8jerJOM=; b=
	bazJ8CuAfH7XNJ69iUeawUD8ycV46TjDBRN+L5wXWm1sgzFhEhLq3SuGDwOBrkC0
	ZHwD8YCyjDFdH2T4Y4J1tmZOmYLbhShOnMHRTjG4DrXKpz6qWboBMpHcRfdKAa32
	UtlLYRBJyL3fyms3Sk0HzOccKUsxkoabehVj8ObVS0Rd1DTaBN2wKmUEmKHqzE+u
	jlvLFcumskGITMdihEvlGhqKaSCiOdH8NT7WkiHjARo9oGgbQ7SQuOEhH8Iau3/E
	DvJOzIqByhFBhgw38Q6Ew63nBIGVuozLeZxbnE/7C4YwCk7zcX3vjUh8RNiLtqiR
	nB+jSn6nqJRzsSqVicPGmA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=91uvrCf
	mE9p9OckTdvelbOLI6FReGTxP9EGg8jerJOM=; b=WkAXJiUJ/J1w6ZaGvjrM1iP
	pL5JYjq2vTXcif1cuCH3Pt8L5Qur1oahU/waXT7ur+nZIo87sDjjYBSD13OktPXO
	pumh/epVfrE9dFQ+qKlABstD/gu0kU14+kglhKcn8F1Rf7JqN5lnnY1zQVWawpu1
	6Wq+XUCP/kqaAXCy6icOtwZZwSaTbX1RDvVcauIGfafcUgqkGASqVAEVdpeD6cQ4
	9xKXp+O5rNDpEdnZMPjRk/WBhRMeE/A2BE9/KWg6bCUvP71G1fz1uV/o4G+uDwTP
	7PZ4B0ORHRe/rg3jRM6hpCD2V9EcG+CJwKhvsCG9IHsvmEEIOB3OoxZlSEIQNAQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oSNcvoz8awVq0oSNdveEla
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 6/7] xen/console: use s_time_t for time accounting in do_printk_ratelimit()
Date: Fri,  6 Feb 2026 12:24:23 -0800
Message-ID: <20260206202424.2054758-7-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260206202424.2054758-1-dmukhin@ford.com>
References: <20260206202424.2054758-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 suspectscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 malwarescore=0
 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060151
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B370:EE_|SJ2PR16MB6132:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: e0db4c7c-126f-4c47-102b-08de65bdc39f
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?Z7XeBMp7iSGv2sJKJF1ErHlMYrHYTTP6XAICIfUuV7kRtPoblp+/+8qkDM5e?=
 =?us-ascii?Q?z0Yx+M5iqeaDcFHeJIRt93smAqkbxJt/kO1/EpZSGsxf9Dr4aXF26kcV8KJn?=
 =?us-ascii?Q?ory82q4ZtxEIkhmiUXNtu1qN5JYshXdxOWkhppKG7vEGlPTLbhI+eu+Vktuj?=
 =?us-ascii?Q?bzqGL0/SCJK0eB1hllX2YqI4LOv0VC012ipxyesgzK7aBWm1ZLr5NXfUDjag?=
 =?us-ascii?Q?H61bVsRBsFI//H++xE58q52MBgsDXQLSfNCorjHcV/RsYn9ovH2PBAKp9/gh?=
 =?us-ascii?Q?arYCZEl47kNW0kWnp06ZtLfg6AzRJkR6fdW2AHilr+yLkFGQeiMkyo5yfK+1?=
 =?us-ascii?Q?QAQ8FNEEmi5MDYO7sagR9gI354FjKuAvGthC4KlP8HR7ummtKlj60sb16piD?=
 =?us-ascii?Q?bTJ++q4I6el18GjELLPOFdqWwDoZ+0PgFbb/xQFjR57SWpAWo6brOgjqCexZ?=
 =?us-ascii?Q?fEF10h2JRvCA7jQhcmtAgzsyQ2jQcTK9bcTQlEJ4Obk3BRSAUfn+frmh37IA?=
 =?us-ascii?Q?ohlL1QKZcttzti3ptbnQj/w39fVHeE5BcMKy/8WVa9ovf/lX4oOnhDNcNuPg?=
 =?us-ascii?Q?HJUJ0WCaAdxPxkTA+DhV95nCAqPH5VhDLV+P9krFy2IdvQhh7x18avMyoVZa?=
 =?us-ascii?Q?u8KP/RNTVyNqju7wV/8mwe3FYTuBQ9SI0ki0jI6Qu2QLmhvXJ+kLyWia6Tr6?=
 =?us-ascii?Q?31wOiuK4O6O9iIYkZ+9GIEIfu2gyytEQ53K6qlubXMCyzr9Rxfq++Zyknqoa?=
 =?us-ascii?Q?Dka/5QEoMcc0Gk3iAS/SZEMD9AE6XZA3j9oK/uhm7fsL1rkoJfNsFQD6PwaP?=
 =?us-ascii?Q?Rk8mmJuvg/P6cxEhePdpwLQmBzLOBkW0Qy/1TySy79zzsS+sSUnTnqwDpcae?=
 =?us-ascii?Q?lNSdwT2znShHz5KnyBw0U6pDuueN0Kb+SzkUI52Uh8HrvHrpa2gV74bkrkXZ?=
 =?us-ascii?Q?8pKEE+ZtA6YoBd8pKfObVWk+dlbRm9JZdjCgg149KncXHau3Z53z+i0LKfLz?=
 =?us-ascii?Q?ztTgoHkd2BfXyFnoEMYgR4+inoFFS7FCE1buWvdRH2JXQjSJEEXHkTmAH16b?=
 =?us-ascii?Q?rdsue6FN5IOVzyJ1mdqNLBAbIrhvfL5VBGEq52Iwu7RyZEsHc/r9c/c6U7TP?=
 =?us-ascii?Q?/7T10NOXZb3WdjMXYU9E1ZfKbTzFBa4fbFqt22w7yca0c74zOPOXPRtOtwnA?=
 =?us-ascii?Q?TacFLvr7CBPrhDxarJcv/DteNg+fCEzLf4GFVx/LJSBufeXxVtCkU60sO99Q?=
 =?us-ascii?Q?iuUF++NtXzZRiXW4KMG5IvsKX6CuE6fXjv+yuNYRzOPX/ijpJUaO7610EyEI?=
 =?us-ascii?Q?ld/AVw3yF0bYrQemf4f51mlW2CZjfbXrP4YK4TML946i+zbrO54lUYVjOI47?=
 =?us-ascii?Q?RTpsC1c6kfMYcR1t7QTDEH0DUj/jQbjDMzLz6sAFgeG4UsC2oOm+QzvsMsLw?=
 =?us-ascii?Q?BtCmxruUF4B02uWTt5mQkoHX2opxtaYrB8qgg7j85TT1dO9gjYHyGeGq5KYk?=
 =?us-ascii?Q?jWZNo0CWNm8S2Uuvwq8a8GXBp9If65o9ai0EGqUocclD+6XD9F2g2IGMBuDV?=
 =?us-ascii?Q?aOUch22PsEzT3cinK+SSw0jC10QeKct8rW6YRAJSnpno20PIVfYCdbrakAQt?=
 =?us-ascii?Q?pDjJ0s+sVpVQf6BzXbAPwB0=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZecZ654W56pnfY6cvlr3CVn9jpY5Is/kuJK2xsSEUZ4FGyRhSG7+qi9jZL/F9jLx8Z9vxmVxX/dE+9RTX+KNOAKrQBU6L8fmSocp0SDW48DfYyabx1LQmM0exBqfExcq38pUlp2ZDc0Bl9KHgeIHcAvWeHslFaqEYLp8A9zTuU8elQ7XzO1Gx+6Nc9IA1lb1X0Y6TqFDDvl79qvcLzykVR+20/qgfB9Nh7emqNGZkBIjyIZeVbjeiTAVj4xP0CzPXxyAPYfNRqKc77kB9ErnxX2a7ZrcvBELwLJVqnYK6BpOvxbDLt+Wgyl+UDHqnPp+y0F7IoIER+v90Mmrr11RvPMaJ55SQqLOuerd5Fvw9TSQIaXDhUPEaLbLHJ+v57FrQ5yIOvudd2X8lU0Di8uWtG6b6qF/n1M2la/5+T8qniv7uCyGksNBcRweYbcvehsh
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	IYivZ5RI8RzsjIR45NzetnHP8o01ihiMknmQktDjSBJq4u8oUFc2/X/N8PpBfo2CQMQdK7qXpZ9SGB3BDuc2EoqyC7QnvUBIG3a6hmeIdZUq+3vpRDrjy8ULbeE2tRCe+/9ZHEJGx9P7qmlWe58mHpZKBdyEVBJVXmhhekc2f38BM63OSTPpPHL3xse5V9ikjdrvUSMlHlBqjqL6dqrxha9KRFm0FAAh/n3u7HYBU0fuu67xa1Xcda4dGWOg98qTgdH4OIhey3m4kzvr6OmXVYlo71H7XM5ymG/7Xb7WujOp04c2fTYqkE8v+ef6pE+3bCfbKWunt/8Dk5Nup139X1pJGM5gNryIOARKjvru5Gz6yfkYftHHsLq0hSWMre+jxiNREv5quQFZyNwZn+yj1PBtVFvKpagPrszjsi9gtUFOeRm/OPOwPwz2+SuGpSIqAXj7icS6dQ70u1O2hi8/HgIbL6gj78gAGUUBMjNap1ws9C9jjm/FLKJdm3u2somghbmdzdIFJBupHODcFp9z4ADuxX17peg0LjnzvvYmrBnvWAJ5f2s6garEKTt4T9Ul1DmbTHkkF730CsGfSRKGT2eExbo6sE5dFTHJUhAFbu1ozrIo7A2K1vzXmNB8PXy2
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 20:24:43.7317
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e0db4c7c-126f-4c47-102b-08de65bdc39f
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B370.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR16MB6132
X-Proofpoint-GUID: fgaykZ-oroHLu2cn7KDygUBkHrzFUDpH
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE1MSBTYWx0ZWRfXzh+D9j/V4yQB 6N56yMvlVv6k69kALKJCZgPtAJ/vLQJl/DjmwHGxbs6X0+E+plXLjr8L6PpZTqAGMJ2Fc/K5o8G hmgNJSacNtGTKIkbMMMYpIv0b76ypUohvZo7pWMS48BLKbmY0h6A/uqdUzIj6ylkne502vVG7ZN
 TQkgs1FqgdD5fq9Dux89BHbqm47dYcstfNZlID9auzO0TbJIk9tjmAkT+d4jRAvHcrdUdJmInNg AYAMsYe+4e/K12tQqpzZgLwNpuiLKCOog8cn0/z14uNm9QT385kcMM/8jQr/gvE86AE979o/roL fWfA/qi7wnoOk7bhfToeUA6VqmjwJsvfIN/UqsbCVnYGDwr9esUzsrk5fApRMMlUSTJqHLYDh5I
 z75huXBWSmLGlzL0DRrc0Fgd60woqB9Ig8vXOHmKcUW3q/OrkrvZyuYNfdNzu1+2u7Qd/hj4127 9xxM1gU4Pk9CgWvk8Lg==
X-Proofpoint-ORIG-GUID: fgaykZ-oroHLu2cn7KDygUBkHrzFUDpH
X-Authority-Analysis: v=2.4 cv=Y5P1cxeN c=1 sm=1 tr=0 ts=69864e13 cx=c_pps a=qHW1pi9L+1RZ0SKNcL3CYw==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8 a=7mFPJ6EfzbUYukK6fngA:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 impostorscore=0
 bulkscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501
 adultscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060151

From: Denis Mukhin <dmukhin@ford.com> 

Use appropriate s_time_t for time window calculation in the rate limiting
algorithm.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- new patch
---
 xen/drivers/char/console.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index e3962512d282..536b883d5dcf 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1291,12 +1291,10 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
                                 unsigned int ratelimit_burst)
 {
     static DEFINE_SPINLOCK(ratelimit_lock);
-    static unsigned long toks;
-    static unsigned long last_msg;
+    static s_time_t toks, last_msg;
+    s_time_t now, ms;
     static unsigned int missed;
     unsigned long flags;
-    unsigned long long now;
-    unsigned long ms;
 
     if ( !printk_ratelimit_burst || !printk_ratelimit_burst )
         return true;
@@ -1305,13 +1303,12 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
         toks = printk_ratelimit_burst * printk_ratelimit_ms;
 
     now = NOW(); /* ns */
-    do_div(now, 1000000);
-    ms = (unsigned long)now;
+    ms = do_div(now, MILLISECS(1));
 
     spin_lock_irqsave(&ratelimit_lock, flags);
     toks += ms - last_msg;
     last_msg = ms;
-    toks = min(toks, (unsigned long)(ratelimit_burst * ratelimit_ms));
+    toks = min(toks, (s_time_t)(ratelimit_burst * ratelimit_ms));
     if ( toks >= ratelimit_ms )
     {
         unsigned int lost = missed;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:24:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:24:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223856.1531274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSNv-0001Ep-2g; Fri, 06 Feb 2026 20:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223856.1531274; Fri, 06 Feb 2026 20: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 1voSNu-0001Ee-UA; Fri, 06 Feb 2026 20:24:58 +0000
Received: by outflank-mailman (input) for mailman id 1223856;
 Fri, 06 Feb 2026 20: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voSNt-0007sY-Cm
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:24:57 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e61374a1-0399-11f1-9ccf-f158ae23cfc8;
 Fri, 06 Feb 2026 21:24:55 +0100 (CET)
Received: from pps.filterd (m0367128.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616IOCY2020005
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 20:24:54 GMT
Received: from co1pr03cu002.outbound.protection.outlook.com
 (mail-westus2azon11010040.outbound.protection.outlook.com [52.101.46.40])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c1vf7tw07-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 20:24:54 +0000 (GMT)
Received: from PH0P220CA0028.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:d3::17)
 by IA1PR16MB5455.namprd16.prod.outlook.com (2603:10b6:208:452::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb
 2026 20:24:48 +0000
Received: from SN1PEPF00036F41.namprd05.prod.outlook.com
 (2603:10b6:510:d3:cafe::5d) by PH0P220CA0028.outlook.office365.com
 (2603:10b6:510:d3::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.14 via Frontend Transport; Fri,
 6 Feb 2026 20:24:32 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 SN1PEPF00036F41.mail.protection.outlook.com (10.167.248.25) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 20:24:46 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616JZ8E41635518
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 15:24:45 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c2127xjn1-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 15:24:45 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id oSNfv7ffjP7uEoSNfvI6oV; Fri, 06 Feb 2026 20:24: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: e61374a1-0399-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=CR4
	hrbY+VQlJ/rgqLlCY9Cvf6nyLAYSOtoaaucI88Xs=; b=NNuTHRm7OJSUrMIS8cE
	X6514LUyZMHh+fTr7rNoNE4dPW7aFde2+HY392G27X0XQS9hMnFsbXrzD4otOsMr
	3bWuKBM3nQtkJved1YXy0yyxrHbAnBCA2N0JsRJ291lWuo3QFcl86NkZ1XEvwrWT
	yZvbmHj0R1NaaUyecfaAby3SAscW8vVJ8b+6fOou14iZd5nS8dPfz45l8zl7hvdM
	chLskLi4y7mibJzzisgwDC7FTi1jZM3m/qwpWdrLv0sjW1iiO2XEjolhn8Tpe82M
	axCihJlLjosOHsH1ML2Z4CEWZuidjDxdBN5ZtUmwE4Zg34typlCR5kl9ysjS3mcc
	fMQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tM+TFsP3atkBMdZe8/c2ydtb7Hu4WXRQbNIyi+OZzBbiDOemy7VYel4jcX4INPCy+vzDLeYeVzH9QNZiDvd4b7fuA6KyQs9UHCWLuSml3NVX6whgGi0iS6Vk9rrsKWYGJLBMzZIin/smaEyw8KzQNcMRMcwIcWR7KEqJ+e6tYIY7P/GlkmOTGXHj7DQOq1Y7qy/6wSjB/islLQQXuQUX1Kj3ROGtti0qFjP359as2C1akrT5Om6xnSe4A8F7eD7xXv/a/vGJ9sSEgCYVWH2B/wyI4QFmQ5E6BEDLwb4p3vaM+LFH1wHOJPvhwvtwK3awHJyFiNOMki1T06wVIfrVGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CR4hrbY+VQlJ/rgqLlCY9Cvf6nyLAYSOtoaaucI88Xs=;
 b=nNUQgZX7i2TrAGvFl1aJ6C4SLzHfdAxytpZflTIECymYc0IXX4ORtP5OyxX6Er8vLvQ0+oYuttAPMhHLx+NCburbFq13J7QqNis9OWRETgbBQJ6JKyty3Pp+02sbOU9hu8pSy0tW0Nva/04XBOP1knlnfM8VJZ6R1sFek2Kdsadz4SLcMieAwA6RXkBG42YyiNHn/ydm7a6XOxKwEXcc7pH5+R9AhFT3k7eSslMMbY4xkh4T57pmpQnbJR/Zf3+53AUpu1sVMqdSlawCQvhlqSrw+aMSntfn+3EU1ZU6lgG6GI1OsiB0REh2qCUr50Vj7w4uYA9gZgCnZpXQweiA+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CR4hrbY+VQlJ/rgqLlCY9Cvf6nyLAYSOtoaaucI88Xs=;
 b=Lnij9Y6r8iliSzgHk4cj3I2PW/f/tAOihnGumaTPQxHIjiC3Y9ddq/fA71lTuZYh6dRFK6x/ElS+4XFO0D/1x24pI1vBBfGsQe/nh1+pVBfqC+sf7xYdH/JnBoPHH7LXALEL8qoD9YW3NqnCLEI9Rv0ajmo5MKTX06wVbVMaL14=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=CR4hrbY+VQlJ/rgqLlCY9Cvf6nyLAYSOtoaaucI88Xs=; b=
	GKp24soira96aMPBn/+WULAh03CMCWMxfP3ppicTBUC3KqGfW9fwdXpzql4tqj2S
	uIh6spJRpWBgdwoCRIWi5Yv8/FLZEudMl+64fJHYSkNjtXTCv+HuPbDbnClETGGf
	4/h4LHbEeGOk08wADlln1RKCq/0z7Ohad0GlE5oMMHWxpbU+kZ/zxDumrxJkt+Bj
	pklc87IU3BPbLEXXP+KafPdXiH2Gr85ExYpUsA4vRR22Yq3UnrJqwm4hjrjZeV8r
	6Dgp8oA937ulYO/YeGsnkk3dmhaJFSsvK99pnKipYIx8w1z+rUaG71nCjZTepSaA
	G5lF20b7b7c94he4VNpA+Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=CR4hrbY
	+VQlJ/rgqLlCY9Cvf6nyLAYSOtoaaucI88Xs=; b=Q3+tSxeWydMRSKASXIZdzvG
	Y1f2R7ASHyDRTiRpg2dteQnTNY2ET6niWVYrCjsgH4Jr4FkL9Mf14XkkvEYcJEKc
	huIsmBhoQEUN9C5YlY9RFimmVrFmttDrRsF3i/WVvlAFyZaFWTRuvD93KZXl7ecw
	y/kOpKgEPfoku0dzZbO5Zqv3O0LeJSB6qbLKQxnoh1Flhi0RKT28MVY3P+Bwuwoy
	YjHy3c/DcgpD7kHg93asHrCnZ3KT3HhKbeSEnEmwWSuUnGOZw8GEtBzkAW+WSMmw
	k1dKtLi72TZYVd4wMV30/0bHDDbi4SMbHjM/grOYj3kBRzk0tJTYGBEAjkOfmDg=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oSNfv7ffjP7uEoSNfvI6oV
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v2 7/7] xen/console: simplify printouts in do_printk_ratelimit()
Date: Fri,  6 Feb 2026 12:24:24 -0800
Message-ID: <20260206202424.2054758-8-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260206202424.2054758-1-dmukhin@ford.com>
References: <20260206202424.2054758-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060151
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F41:EE_|IA1PR16MB5455:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 4d1a2765-4961-4cea-1281-08de65bdc561
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?6mSO8d/pQL//n+mKA8vTTMHyXhoaP1FzQT4BPFQxaUDZlfeV7HbjieAIPAkn?=
 =?us-ascii?Q?afif1iZf2J/49rHGC3LDYR4TQAT+I6Vz4JyBUkM4HedQO8QfJYAp3lG9ZgCb?=
 =?us-ascii?Q?HIqngrNSnj8AwaCE+Z9jStjOLI7p+iExuACzFwrTviPY/kS0J5vWY0X1v4Ad?=
 =?us-ascii?Q?ieGAZhBbSlbWAa/fsgddRhwL4uf7JSopW+Ym6bWb6qZw89QvjNnxyr75GdRM?=
 =?us-ascii?Q?WIt1GuFgg840/54+gdY1Bw4H4XAxBhRESbG+BNNHg6rDZwvXNY2I/Qv081Um?=
 =?us-ascii?Q?AfkrNX30ku1nxjTYTixiueDi3D+aDo/CgUP1PvkVYLwcJsILXWXQT/8BM9Uj?=
 =?us-ascii?Q?6EgNFuPBfgAtJMQSoGlWPRCd8oYbHFsWK6NaUWpPtw6FHw+MQqmSSMC+2AaW?=
 =?us-ascii?Q?jprpdCrDvhFmxNt3Qcd1a85SUtq8x4BGTjxi21D/CBgSkKpvVOnKMkLjqSxa?=
 =?us-ascii?Q?hgwM3pPAiwpJVwHQ2np+Q9APcF9s3SevSv1JCZLcFQgyxja80wd94AWzAdmn?=
 =?us-ascii?Q?SE5Tpc7EOLmWojrZptMzwMJcg1JTYELYanl7LTeQ7uT8Byz4zyl9P6zErAlx?=
 =?us-ascii?Q?WmEf3a25Zcz5cx4JiULNiTYeHaieAjy1AZUKOP+WJiNfdb4dgpqjSMVahWOa?=
 =?us-ascii?Q?DsquU+Qcr5FyDpiYONnDg4QvMkns4lGeAQaWkeQOnj8H3FkG1WJTA3QdVHai?=
 =?us-ascii?Q?dly3+wGVQQ42hAwfz5ZzkmoVWJACWd2Zi+w5YPGkvId8Q2+qkI22T8QrVKeT?=
 =?us-ascii?Q?Mz57RPbDHcMrE/XHq9ltyc7NUCxMT5k/hU4mhdIN8NkADZXpaVNhJSIv0ehC?=
 =?us-ascii?Q?5p72MI6BrwSHCqhdFVuhRrKyT6iyEdiQlI7GTE2zPoyQlNr2UhTdm8QEIlcN?=
 =?us-ascii?Q?E6vyhrtXjriUr3BPvedBqbr/cdullmN7F4SYjXdtSsXXn/6ssS4xiLqWN+Sm?=
 =?us-ascii?Q?V9kITlOc43pmfQnCN99cYfcgaLtDpGUGZ8sN2Co3KeO0b/KYOE0lSn7OAHKB?=
 =?us-ascii?Q?yj2+Ff8SkFoBt6ikYJPOP510Z+2dD/xNTRCE/sGWrA/RnwWwYnwQxr21RACH?=
 =?us-ascii?Q?UQM3CoWRBaBaUYcvzBxzHokREkKwDlY761sijl/lEn87jyWW+WOU49lODLhw?=
 =?us-ascii?Q?E3db7degtaIKgdsG6MSwssNLmmILM7fxzXHorvtARMu6J77HuGSy2kbdxxZo?=
 =?us-ascii?Q?A0RlFGOJdpjXxEjx286jXwIfm7EN1DRHAPtrLwpwqCry2r1/h2MIBdoX2Ais?=
 =?us-ascii?Q?Wtg7T0S7xND1XhBJ6c71AdRDZP+dNUMZicRI8l18Zf5DWQc31hndVjGi3Ol1?=
 =?us-ascii?Q?TrafpmKXXYfMPXaEN/z+VLplzvgR9yqVUdMlDvYpkcoqZw6t1mi+Lf8rl/48?=
 =?us-ascii?Q?lUna3yCiTleAHQcuNS+2WveXnvng6svZeiz9QNjYRRTgQ/EQi+BR9dzyAwEk?=
 =?us-ascii?Q?d4M7OQK12U+Zy0pRoe6smnjQOvoeKi+LhasA8aL1NrO7TYpWHYiLYyLoT5rS?=
 =?us-ascii?Q?psIgdMsrso5ji7e1fpQHWDN5aQS+wbMYMkMtFBlWKOpj9tbGHPvOwAv4XRVu?=
 =?us-ascii?Q?VoxR9dsAn+rI90y1KKoFJsvmdEu85ZPnRNNXhgaylHa17U3/vbvslr0KRBaF?=
 =?us-ascii?Q?BBanckhL3V4ESFleUVHeP/ENCU1Zj/gr/QUnNuZJ7DCUgvR99H7dNI45YoLS?=
 =?us-ascii?Q?xMldww=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	8CJj7mQlqwP+HdvGiLTQKqk1WAf4i2kWBT6ndW0kOtsqVR9Co/yA5499McF5NBWLjAn/KV1Vt/JDPfhm6Ai1QZoDF9RUamZetHgonpGzZTZ2+b0IQOlFJ5ocrQy2EDqsT9T5xZJECgNFVtIMSV7QbZLVHuMTJKXwxYuVXkRNyKDSdzm6apSg80ksSxzh4yqKKPCLtIWNxSSmUYgJXGPgBRC7doGEzJ21bDmbiC1bXAws0h0la+S1DfSJX17Nb56aPXT43ij9rX7woIpsyi1Rb4tFBPwJp5jRuXKv7nEwju1yIxcGxwKO6xCkLs5trDeBWzlW4LYxrq/iKWEM1vHOoSNM9K7M9TYCnQxS8fpdLHWZyftlhzjihBkN+xIgo54YwSY68HQK1DsQODTeyWxpnQiF9PPEhbS/2kEyRnqfXUF6AbGCXtrcqWVAYuiqM4ay
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	9/y2tzjBUa0NV12qDFzyWPXAstqpeMQC0scT93EIpr3vuDslCIMkgzpOdT3mNM7FY11SberJnXazpqe608v3sBLcNaAnhMX5n4kH5X504zpMO6KvMvi8riBVQHrumCtU+HBjyYbJLsGhwA7mrzEE/JNxcZBLJds1N+HSlJF19DAhj6lyaFgBoPD09db4fTgOe4eOqGQIdfJ1VyQzLa7EyK7Gp1hZ1P1G9qL0d0WYXZB/o0kVisryjTp9VtyFCiJzp+EFCHI/Fh9oUFugEuDR3hpbCRMIvOQOSlHGw5y+Zj+KeykaIpwmN9AqmbW5lcR0+D5EaTcJ9hEV9eY2MzpMadDVgiEIkHtmL1Sap2hlOe/LdgN/6DNVUuAPFxFPIcIArraBfJtEdBtSxiyy95yDoW06Dr8u2S5tkS51kBRQJ1PNhWwFYpfH6leR5PlLSbc6ZUkAIIjBEivNxHjzKtnBU+EyuHskzPXAkoXlRU68TXylSVBNE0353QoLrHZjNuksqCYQ2N2jV7PST27Ll9OuvFh/ayzWj2rKN/WbqWkk+zbwrPAcy9EAl8fwjsfMpKcoJHuXycorjeuZBlDk/6zQRHwvasSl1NnCxu7UMjSe6iTF5jJsCJXZOwRdlu49S8cQ
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 20:24:46.5769
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d1a2765-4961-4cea-1281-08de65bdc561
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F41.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR16MB5455
X-Proofpoint-GUID: n2vWVFBBYeftt5MXJwv7bZ2Ys-IgrRPd
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE1MSBTYWx0ZWRfX/xwkSqTYHVfL 7SqJRFbX8YOdv1NuwBiN7nvf8AuQuYoFfy9VABvIq+k7G3SjSJK3oXb84MIhmypHhoYtY8ISLTh AvPggHJG5WaLqAkChzel6Ay/jZeOxnGaKZy4oTlUtxz75HhzUJUli6NNPR31f56I4X/vsCXeQJd
 W7Chs00ALvpbSYaKBbs3qFG+ZCLTkaH7unQ5sXmtERZpGQKQvkKG8NLIvDo7l9nf2DK28tJ1hjh SG6Flyq6bvurYFMZ4HUO3mQpEWAfdMSBBzlCfjgBMm4T3QXiAU5eUH2yIOJpcrr9QM3wKPl/qA+ PgR5U5vlaGQGUe4n6Wt7uFPgENym0Sq19/awCmB/kEqTZ/xdvB8hgM95v6KxW2FR56mGWrdtYfl
 0Hmp9q/4d5RRN17voBA7Qj/fz/zGvkOyUuUhnhSF91M2xldkxur721C47oqB8aoV0QGOvr+spQR HZJfEn1rhM8mXSDyj+g==
X-Proofpoint-ORIG-GUID: n2vWVFBBYeftt5MXJwv7bZ2Ys-IgrRPd
X-Authority-Analysis: v=2.4 cv=Ffk6BZ+6 c=1 sm=1 tr=0 ts=69864e16 cx=c_pps a=AQ8jqBFaYtg5UXnSSWtk/A==:117 a=lOEMawUel/sSvQipkIvNbg==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8 a=SFDS5k057olLXLxw2aMA:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 clxscore=1015
 priorityscore=1501 spamscore=0 lowpriorityscore=0 phishscore=0
 adultscore=0 bulkscore=0 malwarescore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.19.0-2601150000
 definitions=main-2602060151

From: Denis Mukhin <dmukhin@ford.com> 

Simplify the code around notification of how many messages have been
rate-limited.

Not a functional change.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v1:
- new patch
---
 xen/drivers/char/console.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 536b883d5dcf..a60a7c213555 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -1318,15 +1318,15 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
         spin_unlock(&ratelimit_lock);
         if ( lost )
         {
-            char lost_str[10];
+            char msg[40];
+
+            snprintf(msg, sizeof(msg),
+                     "printk: %u messages suppressed\n", lost);
 
-            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);
-            __putstr("printk: ");
-            __putstr(lost_str);
-            __putstr(" messages suppressed.\n");
+            __putstr(msg);
             rspin_unlock(&console_lock);
         }
         local_irq_restore(flags);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 20:52:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 20:52:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223929.1531284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voSoX-0008N0-6C; Fri, 06 Feb 2026 20:52:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223929.1531284; Fri, 06 Feb 2026 20: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 1voSoX-0008Mt-3X; Fri, 06 Feb 2026 20:52:29 +0000
Received: by outflank-mailman (input) for mailman id 1223929;
 Fri, 06 Feb 2026 20:52: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=LUBK=AK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1voSoV-0008Hz-ID
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 20:52: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 bd7845b0-039d-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 21:52:26 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 245A643910;
 Fri,  6 Feb 2026 20:52:24 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13D8BC116C6;
 Fri,  6 Feb 2026 20:52: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: bd7845b0-039d-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770411144;
	bh=uo8ze5SVM4HHEzRgguecAUZD/G9nCX+zUnK5PcRTjZs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=tBhc9u81VkaMbZnuFknF8cq09oEyuF9T2+lkaOpUdsd5QLojBXtqmf4FcEnLRRkbv
	 szGJaYptOpCYeo0/rkrPjAMjN8N01Qs18rrU5sCKbg16JVjtkyi32hROfjK4suE+tL
	 17SvfOlEnvoKS0LUXQVk84MnOC2NJQruWk4M7yRhjY0J+wzHytE7yosHSbDbDPhPpg
	 q70f95fnjjF4OC+xb+PZQPt23xEq0W0zUDwugN2qLRxRn143NYv1YIySn9Lx6KWy/E
	 s9vfQ7+u+Rr/Xy2JPppRy3smg8gSF9sv2Hrk2oqCVLULT6my5gG6eeKtLOSQSGiYgU
	 0Vkh8xWSjGudg==
Date: Fri, 6 Feb 2026 12:52:19 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    xen-devel@lists.xenproject.org, jbeulich@suse.com, 
    andrew.cooper3@citrix.com, jason.andryuk@amd.com, 
    alejandro.garciavallejo@amd.com
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
In-Reply-To: <aYWjB-fxIzdk0K6_@Mac.lan>
Message-ID: <alpine.DEB.2.22.394.2602061250560.3668128@ubuntu-linux-20-04-desktop>
References: <20260206015032.4159672-1-stefano.stabellini@amd.com> <aYWjB-fxIzdk0K6_@Mac.lan>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1050394070-1770411124=:3668128"
Content-ID: <alpine.DEB.2.22.394.2602061252160.3668128@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-1050394070-1770411124=:3668128
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2602061252161.3668128@ubuntu-linux-20-04-desktop>

On Fri, 5 Feb 2026, Roger Pau Monné wrote:
> On Thu, Feb 05, 2026 at 05:50:32PM -0800, Stefano Stabellini wrote:
> > Introduce CONFIG_NESTED_VIRT (default y, requires EXPERT to disable)
> > to allow nested virtualization support to be disabled at build time.
> > This is useful for embedded or safety-focused deployments where
> > nested virtualization is not needed, reducing code size and attack
> > surface.
> > 
> > When CONFIG_NESTED_VIRT=n, the following source files are excluded:
> > - arch/x86/hvm/nestedhvm.c
> > - arch/x86/hvm/svm/nestedsvm.c
> > - arch/x86/hvm/vmx/vvmx.c
> > - arch/x86/mm/nested.c
> > - arch/x86/mm/hap/nested_hap.c
> > - arch/x86/mm/hap/nested_ept.c
> > 
> > Add inline stubs where needed in headers.
> > 
> > No functional change when CONFIG_NESTED_VIRT=y.
> 
> You also need to adjust arch_sanitise_domain_config() so it refuses to
> create domains with the XEN_DOMCTL_CDF_nested_virt flag set when
> CONFIG_NESTED_VIRT=n. 

Sounds good


> If you do that I think a bunch of the dummy
> helpers that you add when CONFIG_NESTED_VIRT=n should also gain an
> ASSERT_UNREACHABLE().

OK


> And IMO you will also need to add a new XEN_SYSCTL_PHYSCAP_nestedhvm
> (or alike) to signal the toolstack whether the nested HVM feature is
> available.  Much like we do for HAP/Shadow/gnttab availability.

yeah good point


> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> > ---
> >  xen/arch/x86/hvm/Kconfig                 | 10 ++++++
> >  xen/arch/x86/hvm/Makefile                |  2 +-
> >  xen/arch/x86/hvm/svm/Makefile            |  2 +-
> >  xen/arch/x86/hvm/svm/nestedhvm.h         | 44 +++++++++++++++++++++---
> >  xen/arch/x86/hvm/svm/svm.c               |  6 ++++
> >  xen/arch/x86/hvm/vmx/Makefile            |  2 +-
> >  xen/arch/x86/hvm/vmx/vmx.c               | 10 ++++--
> >  xen/arch/x86/include/asm/hvm/nestedhvm.h | 41 +++++++++++++++++-----
> >  xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 30 ++++++++++++++++
> >  xen/arch/x86/mm/Makefile                 |  2 +-
> >  xen/arch/x86/mm/hap/Makefile             |  4 +--
> >  xen/arch/x86/mm/p2m.h                    |  6 ++++
> >  12 files changed, 137 insertions(+), 22 deletions(-)
> > 
> > diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> > index f32bf5cbb7..12b5df4710 100644
> > --- a/xen/arch/x86/hvm/Kconfig
> > +++ b/xen/arch/x86/hvm/Kconfig
> > @@ -92,4 +92,14 @@ config MEM_SHARING
> >  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
> >  	depends on INTEL_VMX
> >  
> > +config NESTED_VIRT
> > +	bool "Nested virtualization support" if EXPERT
> > +	depends on AMD_SVM || INTEL_VMX
> > +	default y
> > +	help
> > +	  Enable nested virtualization, allowing guests to run their own
> > +	  hypervisors. This requires hardware support.
> > +
> > +	  If unsure, say Y.
> 
> If we go that route, I think nested virt should become off by default.
> It's not security supported, and known to be broken in many areas.
> 
> I'm also unsure about whether this wants to be gated under EXPERT.
> But I'm not sure I'm any good at knowing whether something should be
> under EXPERT or not.

I am happy either way and I'll others decide on the default. I did it
this way to avoid changes over the current baseline. In case there is
disagreement, I am also happy if it gets changed on commit based on the
latest preference.


> > +
> >  endif
> > diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
> > index f34fb03934..b8a0a68624 100644
> > --- a/xen/arch/x86/hvm/Makefile
> > +++ b/xen/arch/x86/hvm/Makefile
> > @@ -18,7 +18,7 @@ obj-y += irq.o
> >  obj-y += mmio.o
> >  obj-$(CONFIG_VM_EVENT) += monitor.o
> >  obj-y += mtrr.o
> > -obj-y += nestedhvm.o
> > +obj-$(CONFIG_NESTED_VIRT) += nestedhvm.o
> >  obj-y += pmtimer.o
> >  obj-y += quirks.o
> >  obj-y += rtc.o
> > diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefile
> > index 8a072cafd5..92418e3444 100644
> > --- a/xen/arch/x86/hvm/svm/Makefile
> > +++ b/xen/arch/x86/hvm/svm/Makefile
> > @@ -2,6 +2,6 @@ obj-y += asid.o
> >  obj-y += emulate.o
> >  obj-bin-y += entry.o
> >  obj-y += intr.o
> > -obj-y += nestedsvm.o
> > +obj-$(CONFIG_NESTED_VIRT) += nestedsvm.o
> >  obj-y += svm.o
> >  obj-y += vmcb.o
> > diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nestedhvm.h
> > index 9bfed5ffd7..a102c076ea 100644
> > --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> > +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> > @@ -26,6 +26,13 @@
> >  #define nsvm_efer_svm_enabled(v) \
> >      (!!((v)->arch.hvm.guest_efer & EFER_SVME))
> >  
> > +#define NSVM_INTR_NOTHANDLED     3
> > +#define NSVM_INTR_NOTINTERCEPTED 2
> > +#define NSVM_INTR_FORCEVMEXIT    1
> > +#define NSVM_INTR_MASKED         0
> > +
> > +#ifdef CONFIG_NESTED_VIRT
> > +
> >  int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr);
> >  void nestedsvm_vmexit_defer(struct vcpu *v,
> >      uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2);
> > @@ -57,13 +64,40 @@ int cf_check nsvm_hap_walk_L1_p2m(
> >      struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
> >      uint8_t *p2m_acc, struct npfec npfec);
> >  
> > -#define NSVM_INTR_NOTHANDLED     3
> > -#define NSVM_INTR_NOTINTERCEPTED 2
> > -#define NSVM_INTR_FORCEVMEXIT    1
> > -#define NSVM_INTR_MASKED         0
> > -
> >  int nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack intack);
> >  
> > +#else /* !CONFIG_NESTED_VIRT */
> > +
> > +static inline int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
> > +{
> > +    return 0;
> > +}
> > +static inline void nestedsvm_vmexit_defer(struct vcpu *v,
> > +    uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2) { }
> > +static inline enum nestedhvm_vmexits nestedsvm_vmexit_n2n1(struct vcpu *v,
> > +    struct cpu_user_regs *regs)
> > +{
> > +    return NESTEDHVM_VMEXIT_ERROR;
> > +}
> > +static inline enum nestedhvm_vmexits nestedsvm_check_intercepts(struct vcpu *v,
> > +    struct cpu_user_regs *regs, uint64_t exitcode)
> > +{
> > +    return NESTEDHVM_VMEXIT_ERROR;
> > +}
> > +static inline void svm_nested_features_on_efer_update(struct vcpu *v) { }
> > +static inline void svm_vmexit_do_clgi(struct cpu_user_regs *regs,
> > +                                      struct vcpu *v) { }
> > +static inline void svm_vmexit_do_stgi(struct cpu_user_regs *regs,
> > +                                       struct vcpu *v) { }
> > +static inline bool nestedsvm_gif_isset(struct vcpu *v) { return true; }
> > +static inline int nestedsvm_vcpu_interrupt(struct vcpu *v,
> > +                                           const struct hvm_intack intack)
> > +{
> > +    return NSVM_INTR_NOTINTERCEPTED;
> > +}
> > +
> > +#endif /* CONFIG_NESTED_VIRT */
> > +
> >  #endif /* __X86_HVM_SVM_NESTEDHVM_PRIV_H__ */
> >  
> >  /*
> > diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> > index 18ba837738..0234b57afb 100644
> > --- a/xen/arch/x86/hvm/svm/svm.c
> > +++ b/xen/arch/x86/hvm/svm/svm.c
> > @@ -46,6 +46,10 @@
> >  
> >  void noreturn svm_asm_do_resume(void);
> >  
> > +#ifndef CONFIG_NESTED_VIRT
> > +void asmlinkage nsvm_vcpu_switch(void) { }
> > +#endif
> > +
> >  u32 svm_feature_flags;
> >  
> >  /*
> > @@ -2465,6 +2469,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
> >      .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
> >      .get_insn_bytes       = svm_get_insn_bytes,
> >  
> > +#ifdef CONFIG_NESTED_VIRT
> >      .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
> >      .nhvm_vcpu_destroy = nsvm_vcpu_destroy,
> >      .nhvm_vcpu_reset = nsvm_vcpu_reset,
> > @@ -2474,6 +2479,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
> >      .nhvm_vmcx_hap_enabled = nsvm_vmcb_hap_enabled,
> >      .nhvm_intr_blocked = nsvm_intr_blocked,
> >      .nhvm_hap_walk_L1_p2m = nsvm_hap_walk_L1_p2m,
> > +#endif
> >  
> >      .get_reg = svm_get_reg,
> >      .set_reg = svm_set_reg,
> > diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makefile
> > index 04a29ce59d..902564b3e2 100644
> > --- a/xen/arch/x86/hvm/vmx/Makefile
> > +++ b/xen/arch/x86/hvm/vmx/Makefile
> > @@ -3,4 +3,4 @@ obj-y += intr.o
> >  obj-y += realmode.o
> >  obj-y += vmcs.o
> >  obj-y += vmx.o
> > -obj-y += vvmx.o
> > +obj-$(CONFIG_NESTED_VIRT) += vvmx.o
> > diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> > index 82c55f49ae..252f27322b 100644
> > --- a/xen/arch/x86/hvm/vmx/vmx.c
> > +++ b/xen/arch/x86/hvm/vmx/vmx.c
> > @@ -55,6 +55,10 @@
> >  #include <public/hvm/save.h>
> >  #include <public/sched.h>
> >  
> > +#ifndef CONFIG_NESTED_VIRT
> > +void asmlinkage nvmx_switch_guest(void) { }
> > +#endif
> > +
> >  static bool __initdata opt_force_ept;
> >  boolean_param("force-ept", opt_force_ept);
> >  
> > @@ -2033,7 +2037,7 @@ static void nvmx_enqueue_n2_exceptions(struct vcpu *v,
> >                   nvmx->intr.intr_info, nvmx->intr.error_code);
> >  }
> >  
> > -static int cf_check nvmx_vmexit_event(
> > +static int cf_check __maybe_unused nvmx_vmexit_event(
> >      struct vcpu *v, const struct x86_event *event)
> >  {
> >      nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
> > @@ -2933,6 +2937,7 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
> >      .handle_cd            = vmx_handle_cd,
> >      .set_info_guest       = vmx_set_info_guest,
> >      .set_rdtsc_exiting    = vmx_set_rdtsc_exiting,
> > +#ifdef CONFIG_NESTED_VIRT
> >      .nhvm_vcpu_initialise = nvmx_vcpu_initialise,
> >      .nhvm_vcpu_destroy    = nvmx_vcpu_destroy,
> >      .nhvm_vcpu_reset      = nvmx_vcpu_reset,
> > @@ -2942,8 +2947,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
> >      .nhvm_vcpu_vmexit_event = nvmx_vmexit_event,
> >      .nhvm_intr_blocked    = nvmx_intr_blocked,
> >      .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,
> > +#endif
> > +    .update_vlapic_mode = vmx_vlapic_msr_changed,
> >  #ifdef CONFIG_VM_EVENT
> >      .enable_msr_interception = vmx_enable_msr_interception,
> >  #endif
> > diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> > index ea2c1bc328..0372974b24 100644
> > --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> > +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> > @@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
> >  /* Nested HVM on/off per domain */
> >  static inline bool nestedhvm_enabled(const struct domain *d)
> >  {
> > -    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
> > +    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
> > +           (d->options & XEN_DOMCTL_CDF_nested_virt);
> >  }
> >  
> > +/* Nested paging */
> > +#define NESTEDHVM_PAGEFAULT_DONE       0
> > +#define NESTEDHVM_PAGEFAULT_INJECT     1
> > +#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> > +#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> > +#define NESTEDHVM_PAGEFAULT_MMIO       4
> > +#define NESTEDHVM_PAGEFAULT_RETRY      5
> > +#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> > +
> > +#ifdef CONFIG_NESTED_VIRT
> > +
> >  /* Nested VCPU */
> >  int nestedhvm_vcpu_initialise(struct vcpu *v);
> >  void nestedhvm_vcpu_destroy(struct vcpu *v);
> > @@ -38,14 +50,6 @@ bool nestedhvm_vcpu_in_guestmode(struct vcpu *v);
> >  #define nestedhvm_vcpu_exit_guestmode(v)  \
> >      vcpu_nestedhvm(v).nv_guestmode = 0
> >  
> > -/* Nested paging */
> > -#define NESTEDHVM_PAGEFAULT_DONE       0
> > -#define NESTEDHVM_PAGEFAULT_INJECT     1
> > -#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> > -#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> > -#define NESTEDHVM_PAGEFAULT_MMIO       4
> > -#define NESTEDHVM_PAGEFAULT_RETRY      5
> > -#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> >  int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
> >                                      struct npfec npfec);
> >  
> > @@ -59,6 +63,25 @@ unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
> >  
> >  void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m);
> >  
> > +#else /* !CONFIG_NESTED_VIRT */
> > +
> > +static inline int nestedhvm_vcpu_initialise(struct vcpu *v) { return 0; }
> > +static inline void nestedhvm_vcpu_destroy(struct vcpu *v) { }
> > +static inline void nestedhvm_vcpu_reset(struct vcpu *v) { }
> > +static inline bool nestedhvm_vcpu_in_guestmode(struct vcpu *v) { return false; }
> > +static inline int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
> > +                                                  struct npfec npfec)
> > +{
> > +    return NESTEDHVM_PAGEFAULT_L0_ERROR;
> > +}
> > +#define nestedhvm_vcpu_enter_guestmode(v) do { } while (0)
> > +#define nestedhvm_vcpu_exit_guestmode(v)  do { } while (0)
> > +#define nestedhvm_paging_mode_hap(v) false
> > +#define nestedhvm_vmswitch_in_progress(v) false
> > +static inline void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m) { }
> > +
> > +#endif /* CONFIG_NESTED_VIRT */
> > +
> >  static inline bool nestedhvm_is_n2(struct vcpu *v)
> >  {
> >      if ( !nestedhvm_enabled(v->domain) ||
> > diff --git a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> > index da10d3fa96..8dc876a4c2 100644
> > --- a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> > +++ b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> > @@ -73,6 +73,8 @@ union vmx_inst_info {
> >      u32 word;
> >  };
> >  
> > +#ifdef CONFIG_NESTED_VIRT
> > +
> >  int cf_check nvmx_vcpu_initialise(struct vcpu *v);
> >  void cf_check nvmx_vcpu_destroy(struct vcpu *v);
> >  int cf_check nvmx_vcpu_reset(struct vcpu *v);
> > @@ -199,5 +201,33 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga,
> >                          uint64_t *exit_qual, uint32_t *exit_reason);
> >  int nvmx_cpu_up_prepare(unsigned int cpu);
> >  void nvmx_cpu_dead(unsigned int cpu);
> > +
> > +#else /* !CONFIG_NESTED_VIRT */
> > +
> > +static inline void nvmx_update_exec_control(struct vcpu *v, u32 value) { }
> > +static inline void nvmx_update_secondary_exec_control(struct vcpu *v,
> > +                                                      unsigned long value) { }
> > +static inline void nvmx_update_exception_bitmap(struct vcpu *v,
> > +                                                unsigned long value) { }
> > +static inline u64 nvmx_get_tsc_offset(struct vcpu *v) { return 0; }
> > +static inline void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr) { }
> > +static inline bool nvmx_intercepts_exception(struct vcpu *v, unsigned int vector,
> > +                                             int error_code) { return false; }
> > +static inline int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
> > +                                         unsigned int exit_reason) { return 0; }
> > +static inline void nvmx_idtv_handling(void) { }
> > +static inline int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
> > +{
> > +    return 0;
> > +}
> > +static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
> > +                                       unsigned int exit_reason) { return 0; }
> > +static inline int nvmx_cpu_up_prepare(unsigned int cpu) { return 0; }
> > +static inline void nvmx_cpu_dead(unsigned int cpu) { }
> > +
> > +#define get_vvmcs(vcpu, encoding) 0
> > +
> > +#endif /* CONFIG_NESTED_VIRT */
> > +
> >  #endif /* __ASM_X86_HVM_VVMX_H__ */
> >  
> > diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> > index 960f6e8409..aa15811c2e 100644
> > --- a/xen/arch/x86/mm/Makefile
> > +++ b/xen/arch/x86/mm/Makefile
> > @@ -7,7 +7,7 @@ obj-$(CONFIG_SHADOW_PAGING) += guest_walk_4.o
> >  obj-$(CONFIG_VM_EVENT) += mem_access.o
> >  obj-$(CONFIG_MEM_PAGING) += mem_paging.o
> >  obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
> > -obj-$(CONFIG_HVM) += nested.o
> > +obj-$(CONFIG_NESTED_VIRT) += nested.o
> >  obj-$(CONFIG_HVM) += p2m.o
> >  obj-y += p2m-basic.o
> >  obj-$(CONFIG_INTEL_VMX) += p2m-ept.o
> > diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile
> > index 67c29b2162..de1bb3abde 100644
> > --- a/xen/arch/x86/mm/hap/Makefile
> > +++ b/xen/arch/x86/mm/hap/Makefile
> > @@ -2,5 +2,5 @@ obj-y += hap.o
> >  obj-y += guest_walk_2.o
> >  obj-y += guest_walk_3.o
> >  obj-y += guest_walk_4.o
> > -obj-y += nested_hap.o
> > -obj-$(CONFIG_INTEL_VMX) += nested_ept.o
> > +obj-$(CONFIG_NESTED_VIRT) += nested_hap.o
> > +obj-$(CONFIG_NESTED_VIRT) += nested_ept.o
> 
> With this change nested_ept.o is no longer gated explicitly on
> CONFIG_INTEL_VMX, which could cause build issues if you have a Kconfig
> like:
> 
> CONFIG_INTEL_VMX=n
> CONFIG_AMD_SVM=y
> CONFIG_NESTED_VIRT=y
> 
> Does the code in nested_ept.o have dependencies on other files gated
> by CONFIG_INTEL_VMX, and hence would fail at the linking stage?  And
> even if it builds, the code in nested_ept.o would be unreachable I
> expect.

It does build, but you are right. I'll improve this.
--8323329-1050394070-1770411124=:3668128--


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 21:06:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 21:06:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223941.1531293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voT1o-0002cG-F8; Fri, 06 Feb 2026 21:06:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223941.1531293; Fri, 06 Feb 2026 21: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 1voT1o-0002c9-CU; Fri, 06 Feb 2026 21:06:12 +0000
Received: by outflank-mailman (input) for mailman id 1223941;
 Fri, 06 Feb 2026 21:06: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=3tkN=AK=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1voT1n-0002c3-5V
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 21:06:11 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a6b7ab68-039f-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 22:06:08 +0100 (CET)
Received: from MN0P220CA0023.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:52e::27)
 by DM4PR12MB7693.namprd12.prod.outlook.com (2603:10b6:8:103::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Fri, 6 Feb
 2026 21:05:57 +0000
Received: from MN1PEPF0000ECDB.namprd02.prod.outlook.com
 (2603:10b6:208:52e:cafe::d) by MN0P220CA0023.outlook.office365.com
 (2603:10b6:208:52e::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Fri,
 6 Feb 2026 21:05:52 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000ECDB.mail.protection.outlook.com (10.167.242.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 21:05:56 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 15:05:56 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 6 Feb 2026 15:05:55 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6b7ab68-039f-11f1-b161-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n/CyJmSpK3aSSOU9EuchTa9pifYl95O7BdCTK8psRgq06xGqZlX7u8oeqR9WJvdKdN4kNenb7MeA6rMMoCvmXCT5ih7/HsfhtLAgWqmjz3xsLG5qDTNg3lyitkZHLjblKMeud+UesMBnJCGTqsv1kuhUDz0UChlCa9cLHBc8u0412At9sh8naWZMDZ7Wbk64aXHnvWSbRHgpXSPZGwtOXLD1P2wWjKLbUO+NZELBqHeRoCc29jJUUqRtjWSLk/noDpMoIsgIPHUCis3k8LdssKmi72WKXN/ELd2JNJ6xRaPZTmhHy6yn18hyyACE9O5OqBE0bN5El7mMgJp7qqx3Gg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=b00a3xbubGuypy17s5wYQfasEn0j9YKwFi9GJMkSJ48=;
 b=lFnLo3tqjra6XreOPCs0+WqWqdMbmaMESTPoqPOZ0JcShZN03OCXaDQOhX+N0qp5fUME3aDYKLMWnyKcAde8EoRgKeqpB8PJRqEWNId9238tBPEdm2IW9I52BDAkK9oTMYDK+RDHgP77szr4qoLHroePq0KHYbDRA5AGNg3tANrltnNexIxZJLUIGe7iweImhvoZctBxHypFIwEniZdTMEXj1vgZFZ98QCo9BpbODf/0VNZfpCOpFhHu93T7NbQ/Dj2mG5QaAsEcC+aICrBssaLZ74LHDg8fXr+C3nRC+tHUelLiYREgze6VVsFEsXMjPMRem173n0wYuXQ/v1vSGg==
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=b00a3xbubGuypy17s5wYQfasEn0j9YKwFi9GJMkSJ48=;
 b=OyOGDwMHSddChVufmb7Zojgi2ArbC+O3WqBv88beH2m+6wL1Dh7OH4/Es716w7sC0XhQU9pbIqfHawMy3ukAvW3K39+GVA8J2/UrIWVfw5nxgLQFmySFoKnXCiAGcARs4Jd6X29Rb1rch1gTs03WpcWijxb9xCzNRzWbw2av3Uw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <roger.pau@citrix.com>, <jbeulich@suse.com>, <andrew.cooper3@citrix.com>,
	<jason.andryuk@amd.com>, <alejandro.garciavallejo@amd.com>, "Stefano
 Stabellini" <stefano.stabellini@amd.com>
Subject: [PATCH v2] x86/hvm: Add Kconfig option to disable nested virtualization
Date: Fri, 6 Feb 2026 13:05:54 -0800
Message-ID: <20260206210554.126443-1-stefano.stabellini@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: MN1PEPF0000ECDB:EE_|DM4PR12MB7693:EE_
X-MS-Office365-Filtering-Correlation-Id: cea37211-1d07-446a-64c4-08de65c3855b
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:
	=?us-ascii?Q?EvuPWGGIsp2/w4WUFPGcCJSnt2mhD4YTos80abfte9Q09bV63SSGiNZnGnZW?=
 =?us-ascii?Q?XGFW5D7+yM3QgXbw8nxxVm86sM5xbwRZ9FgMp1AxNa3srOhlRZX3h/SS5hS7?=
 =?us-ascii?Q?2yR+eSSfiKYgLf1dRoW6Jhgx0vQunS8sJYgsqCF3JPx8jSJNUlzzpXDPnuSn?=
 =?us-ascii?Q?AwfhNVh1VcrZOyb3h9NA4wWhbzNKeH4MOdpbT/+CYQ+vFyFkK0bHrDJicurE?=
 =?us-ascii?Q?TxgO/oqClUAIUzvjGnFUXdlLMbDIaWHMjV4lrCTbdJ6oZ4Wak4e6xhbrsV6p?=
 =?us-ascii?Q?Zi8NMecvOcMK4LBPfDsDah19b4H0rEhMPy53ry5EPqX/fg5iA4TIwJkK0fma?=
 =?us-ascii?Q?PYaauuIeXUpmx/vMStm2XXBo3YEjQVPYcvrv2Y009SatwDtoV/A3mImGkTOb?=
 =?us-ascii?Q?mQY94bmCTCGOt0BLS7bxUg/tgaIpa+1FXDH39bA4U9OV3SjbPMfd/d4OUQp+?=
 =?us-ascii?Q?VB6EeVwYUQr3GCwRdlkigAQrBgWZLFvezsOSDkqOwHE7F5qP2WuFJS8Bh/zO?=
 =?us-ascii?Q?+U1C6axGTmidlVXrVzn1QFmAoxCPgCgxpgT9P2HaZ20Iu044tEXUEKSsb17x?=
 =?us-ascii?Q?3Pj87b8yAiV0GAaDJeUfTg7ljN9yXQtRvJWuNwKAbP5CqFV1fKYmVlk2f/kN?=
 =?us-ascii?Q?lJYtaOdmQJY2lAuGxM8CN49+HsVNog/wOFFF3yXori5ZUJuZR1gL8vQIr2F2?=
 =?us-ascii?Q?aq31xqM9Qf5w7x/0NRexxjWFQb7Kid5iJWD7rf68Aix8yfmQcaONuaJs06po?=
 =?us-ascii?Q?qMU9GVPtolzYJq+joNwNJfWsnZTLahbusNm0z5zukHL5XSKziYAnePLZjs3z?=
 =?us-ascii?Q?Gijmn/8WjCYfUxNPdHxKCQM7pWf3XZfC+hhAJEgIHOd+8P8pOss1MVBSWvYM?=
 =?us-ascii?Q?wrNsh42SY28NtFIg3myIBEj4TW9oXZ1o/rxJ9YnL2JbuXX6g0gSc5NaMQSb/?=
 =?us-ascii?Q?9UexkLoYZACixBI8XIPG5WBrBX4lMNs6cVip6TFCJ/GD5cDdVVWPGVZA4zf8?=
 =?us-ascii?Q?KbYZl4Yf9JsuN8C+Jx/bMYdPIQIbRsx+sTAPXVyX/JRvWu32yYrKvPtlYPOJ?=
 =?us-ascii?Q?kcVhnbRHn+Dxb4pA8dBh4ZceMaL0IatWQe8nm33OYgI9PVs/YHlbbVIfAeBL?=
 =?us-ascii?Q?6qd2vnlmLhqzejbSCQr8pijGJRxmRc1iIa6MisCYNDXG+hTv1cCwBB/f7pNM?=
 =?us-ascii?Q?etGO/No1+ldyr8TvsNxqvLaggDDKffpeINVWeXjk9fYiEJ7e8mpogWBcqbfZ?=
 =?us-ascii?Q?X04GXi5bqaH6j1jjI3UgijR6w7XiM93coyjk8NJREHO3qem0HZKkDSE03OP1?=
 =?us-ascii?Q?HFCEVJ0yz4GaKZLpMH2kyHEw7A1rKPixfxtc15dTdIQ0CDZrvToQ1iZ/1/cj?=
 =?us-ascii?Q?Tx9y7RExCWw8tVUkcsLcpS5BVdS/elMR7N0K7OEtM6uVAzRILdm5ZwYT9ctb?=
 =?us-ascii?Q?ldRW6qlf6A5ZJiJ7zb4fvgIz/eI/xuegbOUpAj89Rd9mip8Rn6r7PaR7Jyu2?=
 =?us-ascii?Q?Mu2CpZm4yVmFpcJoufEM/hhCKrI1P2bEOn3cNy517iIzO9Dz/mzXuH1KL+S6?=
 =?us-ascii?Q?Z3ZwEU8rVYXuxcxlncTAI/cg5JUrfj3TDzb6Pl2hYAQ29pTzTw3VMJGMGgZB?=
 =?us-ascii?Q?ZHENhIGLPN9n/eXmq6XPTPWGmiAvbjjDs635Ivt6tAMYZcOB7s3nwi5aa3QM?=
 =?us-ascii?Q?sh8Fqw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	sMhv5Jumpt9QIMcgUf3bBp5A4vTDTwevJcRnm027tPQBui0Wos02ePcD8ruvyrdg0p7kA/GZKMSdUiWMutXGuTEtLpHrsBd8zYDJ8YIkptb3Kas1rgHBoRr+RBuo6dhWjt4U/NpBfMncMlfYTDrnrIn1AfU2vE7ANQ+webY7bzRv1bjZuPdtMClh881GarAhsFCAtvBExeSlfraJLz3Sstuvc+DuT24NpAY79Qs7Cos6dL1JM9W9dKSuOZGUJcKv6Pi2DBjdIwzvf+dozo4COEUNqSpz59zUAknf+ugTAOv5Dt98J1hy7FPXG6/WhcAU5nqWkk2hVQHTOoRurhKpfeL9p4dOU3YSXxXNj/6281c2rc6mYdv13a0p5JqDVq3Yup+XnBShdIZ4Qh1pQyL+CjN4H3pNMKVJ0XH4eUeCBNYQBvQ+JlEqn1xlL+efe1Va
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 21:05:56.3113
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cea37211-1d07-446a-64c4-08de65c3855b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7693

Introduce CONFIG_NESTED_VIRT (default y, requires EXPERT to disable)
to allow nested virtualization support to be disabled at build time.
This is useful for embedded or safety-focused deployments where
nested virtualization is not needed, reducing code size and attack
surface.

When CONFIG_NESTED_VIRT=n, the following source files are excluded:
- arch/x86/hvm/nestedhvm.c
- arch/x86/hvm/svm/nestedsvm.c
- arch/x86/hvm/vmx/vvmx.c
- arch/x86/mm/nested.c
- arch/x86/mm/hap/nested_hap.c
- arch/x86/mm/hap/nested_ept.c

Add inline stubs where needed in headers.

No functional change when CONFIG_NESTED_VIRT=y.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v2:
- add ASSERT_UNREACHABLE
- change default to N and remove EXPERT
- don't compile nested_hap if not VMX
- add XEN_SYSCTL_PHYSCAP_nestedhvm
- add IS_ENABLED check in hvm_nested_virt_supported 
---
 xen/arch/x86/hvm/Kconfig                 | 10 ++++
 xen/arch/x86/hvm/Makefile                |  2 +-
 xen/arch/x86/hvm/svm/Makefile            |  2 +-
 xen/arch/x86/hvm/svm/nestedhvm.h         | 60 +++++++++++++++++++++--
 xen/arch/x86/hvm/svm/svm.c               |  6 +++
 xen/arch/x86/hvm/vmx/Makefile            |  2 +-
 xen/arch/x86/hvm/vmx/vmx.c               | 10 +++-
 xen/arch/x86/include/asm/hvm/hvm.h       |  2 +-
 xen/arch/x86/include/asm/hvm/nestedhvm.h | 52 ++++++++++++++++----
 xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 62 ++++++++++++++++++++++++
 xen/arch/x86/mm/Makefile                 |  2 +-
 xen/arch/x86/mm/hap/Makefile             |  4 +-
 xen/arch/x86/mm/p2m.h                    |  6 +++
 xen/arch/x86/sysctl.c                    |  2 +
 xen/include/public/sysctl.h              |  4 +-
 15 files changed, 202 insertions(+), 24 deletions(-)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index f32bf5cbb7..133f19a063 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -92,4 +92,14 @@ config MEM_SHARING
 	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
 	depends on INTEL_VMX
 
+config NESTED_VIRT
+	bool "Nested virtualization support"
+	depends on AMD_SVM || INTEL_VMX
+	default n
+	help
+	  Enable nested virtualization, allowing guests to run their own
+	  hypervisors. This requires hardware support.
+
+	  If unsure, say N.
+
 endif
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index f34fb03934..b8a0a68624 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -18,7 +18,7 @@ obj-y += irq.o
 obj-y += mmio.o
 obj-$(CONFIG_VM_EVENT) += monitor.o
 obj-y += mtrr.o
-obj-y += nestedhvm.o
+obj-$(CONFIG_NESTED_VIRT) += nestedhvm.o
 obj-y += pmtimer.o
 obj-y += quirks.o
 obj-y += rtc.o
diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefile
index 8a072cafd5..92418e3444 100644
--- a/xen/arch/x86/hvm/svm/Makefile
+++ b/xen/arch/x86/hvm/svm/Makefile
@@ -2,6 +2,6 @@ obj-y += asid.o
 obj-y += emulate.o
 obj-bin-y += entry.o
 obj-y += intr.o
-obj-y += nestedsvm.o
+obj-$(CONFIG_NESTED_VIRT) += nestedsvm.o
 obj-y += svm.o
 obj-y += vmcb.o
diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nestedhvm.h
index 9bfed5ffd7..ed1aa847e5 100644
--- a/xen/arch/x86/hvm/svm/nestedhvm.h
+++ b/xen/arch/x86/hvm/svm/nestedhvm.h
@@ -26,6 +26,13 @@
 #define nsvm_efer_svm_enabled(v) \
     (!!((v)->arch.hvm.guest_efer & EFER_SVME))
 
+#define NSVM_INTR_NOTHANDLED     3
+#define NSVM_INTR_NOTINTERCEPTED 2
+#define NSVM_INTR_FORCEVMEXIT    1
+#define NSVM_INTR_MASKED         0
+
+#ifdef CONFIG_NESTED_VIRT
+
 int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr);
 void nestedsvm_vmexit_defer(struct vcpu *v,
     uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2);
@@ -57,13 +64,56 @@ int cf_check nsvm_hap_walk_L1_p2m(
     struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
     uint8_t *p2m_acc, struct npfec npfec);
 
-#define NSVM_INTR_NOTHANDLED     3
-#define NSVM_INTR_NOTINTERCEPTED 2
-#define NSVM_INTR_FORCEVMEXIT    1
-#define NSVM_INTR_MASKED         0
-
 int nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack intack);
 
+#else /* !CONFIG_NESTED_VIRT */
+
+static inline int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
+{
+    ASSERT_UNREACHABLE();
+    return -EOPNOTSUPP;
+}
+static inline void nestedsvm_vmexit_defer(struct vcpu *v,
+    uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline enum nestedhvm_vmexits nestedsvm_vmexit_n2n1(struct vcpu *v,
+    struct cpu_user_regs *regs)
+{
+    ASSERT_UNREACHABLE();
+    return NESTEDHVM_VMEXIT_ERROR;
+}
+static inline enum nestedhvm_vmexits nestedsvm_check_intercepts(struct vcpu *v,
+    struct cpu_user_regs *regs, uint64_t exitcode)
+{
+    ASSERT_UNREACHABLE();
+    return NESTEDHVM_VMEXIT_ERROR;
+}
+static inline void svm_nested_features_on_efer_update(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline void svm_vmexit_do_clgi(struct cpu_user_regs *regs,
+                                      struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline void svm_vmexit_do_stgi(struct cpu_user_regs *regs,
+                                       struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline bool nestedsvm_gif_isset(struct vcpu *v) { return true; }
+static inline int nestedsvm_vcpu_interrupt(struct vcpu *v,
+                                           const struct hvm_intack intack)
+{
+    ASSERT_UNREACHABLE();
+    return NSVM_INTR_NOTINTERCEPTED;
+}
+
+#endif /* CONFIG_NESTED_VIRT */
+
 #endif /* __X86_HVM_SVM_NESTEDHVM_PRIV_H__ */
 
 /*
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..0234b57afb 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -46,6 +46,10 @@
 
 void noreturn svm_asm_do_resume(void);
 
+#ifndef CONFIG_NESTED_VIRT
+void asmlinkage nsvm_vcpu_switch(void) { }
+#endif
+
 u32 svm_feature_flags;
 
 /*
@@ -2465,6 +2469,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .get_insn_bytes       = svm_get_insn_bytes,
 
+#ifdef CONFIG_NESTED_VIRT
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
     .nhvm_vcpu_destroy = nsvm_vcpu_destroy,
     .nhvm_vcpu_reset = nsvm_vcpu_reset,
@@ -2474,6 +2479,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .nhvm_vmcx_hap_enabled = nsvm_vmcb_hap_enabled,
     .nhvm_intr_blocked = nsvm_intr_blocked,
     .nhvm_hap_walk_L1_p2m = nsvm_hap_walk_L1_p2m,
+#endif
 
     .get_reg = svm_get_reg,
     .set_reg = svm_set_reg,
diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makefile
index 04a29ce59d..902564b3e2 100644
--- a/xen/arch/x86/hvm/vmx/Makefile
+++ b/xen/arch/x86/hvm/vmx/Makefile
@@ -3,4 +3,4 @@ obj-y += intr.o
 obj-y += realmode.o
 obj-y += vmcs.o
 obj-y += vmx.o
-obj-y += vvmx.o
+obj-$(CONFIG_NESTED_VIRT) += vvmx.o
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..252f27322b 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -55,6 +55,10 @@
 #include <public/hvm/save.h>
 #include <public/sched.h>
 
+#ifndef CONFIG_NESTED_VIRT
+void asmlinkage nvmx_switch_guest(void) { }
+#endif
+
 static bool __initdata opt_force_ept;
 boolean_param("force-ept", opt_force_ept);
 
@@ -2033,7 +2037,7 @@ static void nvmx_enqueue_n2_exceptions(struct vcpu *v,
                  nvmx->intr.intr_info, nvmx->intr.error_code);
 }
 
-static int cf_check nvmx_vmexit_event(
+static int cf_check __maybe_unused nvmx_vmexit_event(
     struct vcpu *v, const struct x86_event *event)
 {
     nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
@@ -2933,6 +2937,7 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .handle_cd            = vmx_handle_cd,
     .set_info_guest       = vmx_set_info_guest,
     .set_rdtsc_exiting    = vmx_set_rdtsc_exiting,
+#ifdef CONFIG_NESTED_VIRT
     .nhvm_vcpu_initialise = nvmx_vcpu_initialise,
     .nhvm_vcpu_destroy    = nvmx_vcpu_destroy,
     .nhvm_vcpu_reset      = nvmx_vcpu_reset,
@@ -2942,8 +2947,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .nhvm_vcpu_vmexit_event = nvmx_vmexit_event,
     .nhvm_intr_blocked    = nvmx_intr_blocked,
     .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,
+#endif
+    .update_vlapic_mode = vmx_vlapic_msr_changed,
 #ifdef CONFIG_VM_EVENT
     .enable_msr_interception = vmx_enable_msr_interception,
 #endif
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59..536a38b450 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -711,7 +711,7 @@ static inline bool hvm_altp2m_supported(void)
 /* Returns true if we have the minimum hardware requirements for nested virt */
 static inline bool hvm_nested_virt_supported(void)
 {
-    return hvm_funcs.caps.nested_virt;
+    return IS_ENABLED(CONFIG_NESTED_VIRT) && hvm_funcs.caps.nested_virt;
 }
 
 #ifdef CONFIG_ALTP2M
diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
index ea2c1bc328..e18d59e0eb 100644
--- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
+++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
@@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
 /* Nested HVM on/off per domain */
 static inline bool nestedhvm_enabled(const struct domain *d)
 {
-    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
+    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
+           (d->options & XEN_DOMCTL_CDF_nested_virt);
 }
 
+/* Nested paging */
+#define NESTEDHVM_PAGEFAULT_DONE       0
+#define NESTEDHVM_PAGEFAULT_INJECT     1
+#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
+#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
+#define NESTEDHVM_PAGEFAULT_MMIO       4
+#define NESTEDHVM_PAGEFAULT_RETRY      5
+#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
+
+#ifdef CONFIG_NESTED_VIRT
+
 /* Nested VCPU */
 int nestedhvm_vcpu_initialise(struct vcpu *v);
 void nestedhvm_vcpu_destroy(struct vcpu *v);
@@ -38,14 +50,6 @@ bool nestedhvm_vcpu_in_guestmode(struct vcpu *v);
 #define nestedhvm_vcpu_exit_guestmode(v)  \
     vcpu_nestedhvm(v).nv_guestmode = 0
 
-/* Nested paging */
-#define NESTEDHVM_PAGEFAULT_DONE       0
-#define NESTEDHVM_PAGEFAULT_INJECT     1
-#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
-#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
-#define NESTEDHVM_PAGEFAULT_MMIO       4
-#define NESTEDHVM_PAGEFAULT_RETRY      5
-#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
 int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
                                     struct npfec npfec);
 
@@ -59,6 +63,36 @@ unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
 
 void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m);
 
+#else /* !CONFIG_NESTED_VIRT */
+
+static inline int nestedhvm_vcpu_initialise(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+    return -EOPNOTSUPP;
+}
+static inline void nestedhvm_vcpu_destroy(struct vcpu *v) { }
+static inline void nestedhvm_vcpu_reset(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline bool nestedhvm_vcpu_in_guestmode(struct vcpu *v) { return false; }
+static inline int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
+                                                  struct npfec npfec)
+{
+    ASSERT_UNREACHABLE();
+    return NESTEDHVM_PAGEFAULT_L0_ERROR;
+}
+#define nestedhvm_vcpu_enter_guestmode(v) do { ASSERT_UNREACHABLE(); } while (0)
+#define nestedhvm_vcpu_exit_guestmode(v)  do { ASSERT_UNREACHABLE(); } while (0)
+#define nestedhvm_paging_mode_hap(v) false
+#define nestedhvm_vmswitch_in_progress(v) false
+static inline void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
+{
+    ASSERT_UNREACHABLE();
+}
+
+#endif /* CONFIG_NESTED_VIRT */
+
 static inline bool nestedhvm_is_n2(struct vcpu *v)
 {
     if ( !nestedhvm_enabled(v->domain) ||
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
index da10d3fa96..ad56cdf01e 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
@@ -73,6 +73,8 @@ union vmx_inst_info {
     u32 word;
 };
 
+#ifdef CONFIG_NESTED_VIRT
+
 int cf_check nvmx_vcpu_initialise(struct vcpu *v);
 void cf_check nvmx_vcpu_destroy(struct vcpu *v);
 int cf_check nvmx_vcpu_reset(struct vcpu *v);
@@ -199,5 +201,65 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga,
                         uint64_t *exit_qual, uint32_t *exit_reason);
 int nvmx_cpu_up_prepare(unsigned int cpu);
 void nvmx_cpu_dead(unsigned int cpu);
+
+#else /* !CONFIG_NESTED_VIRT */
+
+static inline void nvmx_update_exec_control(struct vcpu *v, u32 value)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline void nvmx_update_secondary_exec_control(struct vcpu *v,
+                                                      unsigned long value)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline void nvmx_update_exception_bitmap(struct vcpu *v,
+                                                unsigned long value)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline u64 nvmx_get_tsc_offset(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+static inline void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline bool nvmx_intercepts_exception(struct vcpu *v, unsigned int vector,
+                                             int error_code)
+{
+    ASSERT_UNREACHABLE();
+    return false;
+}
+static inline int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
+                                         unsigned int exit_reason)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+static inline void nvmx_idtv_handling(void)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
+                                       unsigned int exit_reason)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+static inline int nvmx_cpu_up_prepare(unsigned int cpu) { return 0; }
+static inline void nvmx_cpu_dead(unsigned int cpu) { }
+
+#define get_vvmcs(vcpu, encoding) 0
+
+#endif /* CONFIG_NESTED_VIRT */
+
 #endif /* __ASM_X86_HVM_VVMX_H__ */
 
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 960f6e8409..aa15811c2e 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -7,7 +7,7 @@ obj-$(CONFIG_SHADOW_PAGING) += guest_walk_4.o
 obj-$(CONFIG_VM_EVENT) += mem_access.o
 obj-$(CONFIG_MEM_PAGING) += mem_paging.o
 obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
-obj-$(CONFIG_HVM) += nested.o
+obj-$(CONFIG_NESTED_VIRT) += nested.o
 obj-$(CONFIG_HVM) += p2m.o
 obj-y += p2m-basic.o
 obj-$(CONFIG_INTEL_VMX) += p2m-ept.o
diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile
index 67c29b2162..2082dfee2d 100644
--- a/xen/arch/x86/mm/hap/Makefile
+++ b/xen/arch/x86/mm/hap/Makefile
@@ -2,5 +2,5 @@ obj-y += hap.o
 obj-y += guest_walk_2.o
 obj-y += guest_walk_3.o
 obj-y += guest_walk_4.o
-obj-y += nested_hap.o
-obj-$(CONFIG_INTEL_VMX) += nested_ept.o
+obj-$(CONFIG_NESTED_VIRT) += nested_hap.o
+obj-$(filter $(CONFIG_NESTED_VIRT),$(CONFIG_INTEL_VMX)) += nested_ept.o
diff --git a/xen/arch/x86/mm/p2m.h b/xen/arch/x86/mm/p2m.h
index 635f5a7f45..63808dddcc 100644
--- a/xen/arch/x86/mm/p2m.h
+++ b/xen/arch/x86/mm/p2m.h
@@ -25,9 +25,15 @@ void p2m_teardown_altp2m(struct domain *d);
 void p2m_flush_table_locked(struct p2m_domain *p2m);
 int __must_check p2m_remove_entry(struct p2m_domain *p2m, gfn_t gfn, mfn_t mfn,
                                   unsigned int page_order);
+#ifdef CONFIG_NESTED_VIRT
 void p2m_nestedp2m_init(struct p2m_domain *p2m);
 int p2m_init_nestedp2m(struct domain *d);
 void p2m_teardown_nestedp2m(struct domain *d);
+#else
+static inline void p2m_nestedp2m_init(struct p2m_domain *p2m) { }
+static inline int p2m_init_nestedp2m(struct domain *d) { return 0; }
+static inline void p2m_teardown_nestedp2m(struct domain *d) { }
+#endif
 
 int ept_p2m_init(struct p2m_domain *p2m);
 void ept_p2m_uninit(struct p2m_domain *p2m);
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 1b04947516..b1d865e1c8 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -103,6 +103,8 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
         pi->capabilities |= XEN_SYSCTL_PHYSCAP_hap;
     if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
         pi->capabilities |= XEN_SYSCTL_PHYSCAP_shadow;
+    if ( hvm_nested_virt_supported() )
+        pi->capabilities |= XEN_SYSCTL_PHYSCAP_nestedhvm;
 }
 
 long arch_do_sysctl(
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 66c9b65465..b4bd1dd7b2 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -100,9 +100,11 @@ struct xen_sysctl_tbuf_op {
 /* Xen supports the Grant v1 and/or v2 ABIs. */
 #define XEN_SYSCTL_PHYSCAP_gnttab_v1     (1u << 8)
 #define XEN_SYSCTL_PHYSCAP_gnttab_v2     (1u << 9)
+/* The platform supports nested HVM. */
+#define XEN_SYSCTL_PHYSCAP_nestedhvm     (1u << 10)
 
 /* Max XEN_SYSCTL_PHYSCAP_* constant.  Used for ABI checking. */
-#define XEN_SYSCTL_PHYSCAP_MAX XEN_SYSCTL_PHYSCAP_gnttab_v2
+#define XEN_SYSCTL_PHYSCAP_MAX XEN_SYSCTL_PHYSCAP_nestedhvm
 
 #if defined(__arm__) || defined(__aarch64__)
 #define XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK  (0x1FU)
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 22:24:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 22:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223974.1531308 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voUFg-0005xa-T0; Fri, 06 Feb 2026 22:24:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223974.1531308; Fri, 06 Feb 2026 22:24: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 1voUFg-0005xT-Q3; Fri, 06 Feb 2026 22:24:36 +0000
Received: by outflank-mailman (input) for mailman id 1223974;
 Fri, 06 Feb 2026 22:24: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voUFf-0005xC-Kz
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 22:24:36 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98ff9403-03aa-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 23:24:27 +0100 (CET)
Received: from pps.filterd (m0367127.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616IO9dK022793
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 22:24:26 GMT
Received: from dm5pr21cu001.outbound.protection.outlook.com
 (mail-centralusazon11011032.outbound.protection.outlook.com [52.101.62.32])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c1wnnbcbh-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 22:24:26 +0000 (GMT)
Received: from DS7PR03CA0148.namprd03.prod.outlook.com (2603:10b6:5:3b4::33)
 by DM6PR16MB3685.namprd16.prod.outlook.com (2603:10b6:5:2b8::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Fri, 6 Feb
 2026 22:24:21 +0000
Received: from DS3PEPF000099D3.namprd04.prod.outlook.com
 (2603:10b6:5:3b4:cafe::f5) by DS7PR03CA0148.outlook.office365.com
 (2603:10b6:5:3b4::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri,
 6 Feb 2026 22:24:07 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 DS3PEPF000099D3.mail.protection.outlook.com (10.167.17.4) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10 via
 Frontend Transport; Fri, 6 Feb 2026 22:24:20 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616I1kxx1197779
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 17:24:19 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c21ngxgjk-12
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 17:24:19 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id oUFNvw8XOV4jQoUFNvPcdJ; Fri, 06 Feb 2026 22: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: 98ff9403-03aa-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=jvRfC2O/mNe4IS70swksiJIxQzf
	BIUtBFytrUnAMVCM=; b=eJZRF29ppn4JwMibCS3L2xEwOHsC8qNiPWjBGDqIQX2
	nb7Iwmv3FjZlW0pUpbOHTjkw2a4B2bj/XpZe/3dcwV3zS/qsTVpE7WhBU1luCdoQ
	uQeQShCLuYTNCyj1yEpPHJXBdTexBYBVNLcbr2uuCdcCYacJeXMNBPFFZEi/M/dz
	utJg6Sm45F+HSk6vmZ2La7tOSgQegTtOj38sWWx2Sud2kFSXQ3000qZHvpRusK7R
	np8f/OfuewiUEk0KXOVxq/WNulerSbjRRo1yT8vPiEgKspVUuUSaTjV2Xn1g4xYa
	0SH+xNQ/Whw2wb9kck2RvZs4V+YL3cQKdcup6TZY/CQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fApHTIzm/Yp8ErgWTub6r+lNXlA162moVIrLcMeubsRrgZbbyrrmQcLXR2SfGBYggSd01tVxkDC0JPcfX0m0YHyE1SsBVt+67fnmiWReyCYKoux0w9xcBIlVEevQMniDk4BkpeZiEZTguGdnKTB1qt7ylO51HEbA6dHGtG2ph2SYW+mHJ/SbLqlAN87jjl5mh7b8LO2Q3xjaFqUniGT8U+iqLrpgb/01n40FMBWx9+HbjB9kxzSfHHFws+DiXgLkzLkt4IfYkatXWYUFc5cBPDY9/KyNCY2T2PXCaSkyRmfIgeTdP4eV6oYoe39NsPtrIa/OanY5kPjDs4R+9vfmKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=jvRfC2O/mNe4IS70swksiJIxQzfBIUtBFytrUnAMVCM=;
 b=SEPIza8C9tppSK0aBvPqyI52TtUsOxNpr6w2HTWEbB3meo3Ac3NhdMYw9bgCyJ9G/34SHNBkMx9mgYKKi8wumJPI+SMSLDIqcvWK8vyKYCqiQmAocuRzdg0bcPZsydduCCalMVgJ4XPNC+Qq/aI3E2CcGGfaEqdma7j9Ask92K7Vrr6Om1114nVn697W/iF3Yp3PxnFQkbf+cpjzkJfBizO21ohqbZMQ8WVHmIi5ukGBTPtk2LkixfYEVXgf8uXBroLrBJvIqO82vLcnS6t95lJMdIKE8HkASDy1UrTzThlqPmRNfai0AP7djlGVye4V4TgFiEHJrq/JQ64OMJSl0g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=jvRfC2O/mNe4IS70swksiJIxQzfBIUtBFytrUnAMVCM=;
 b=GMCSkpu4OPdaplC/pN0UCVZiAQ/SPbZTnVCRxDRn8Az2hDAL7dnTiz6FwxZFnA3qZrlmQ2s/kCEJXxBFf8+t+dhmgTixDAqg0Ko8oBGFxFwA3E+e8Pirb/eDXVmJnJ/GJ+mtwWEpGP28eKjcyG+JhH5HtLTh+tFcUEx9WgZUgvQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=jvRfC2O/mNe4IS70swksiJIxQzfBIUtBFytrUnAMVCM=; b=Qy66d36bdJiS
	88zGoY9MdqeY/NlZU2VLInitUgPKZq9Soi/QDfet+771wvUdHq7oYFVjbLk8f4LY
	zh+J7Jr/uQ4nfBdYhc9or5eG/dyXr0FvwBvPvpIF6RV0fjVwg+Sdxglqu1WIxCvH
	NdDUzr5NxVeRoid29b1htOPEd3FsoivIFNDNjoonyx7Q7yljWJD09tX7wDzIqOY6
	fEIVjyn5+bohs5bFo+I3Fuc9LGo4mgA/f8SPzpaLK65xQT6q1WnS5zHS/RaWaZgu
	QzTQPjUPcdd+k85YZMypq+Q/iIJAgdHTeCvkDmqf7SblU5f08UQ4RFmKw/aSh787
	49rRyr5/0Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=jvRfC2O/mNe4IS70swks
	iJIxQzfBIUtBFytrUnAMVCM=; b=H7bGrcL5+GuAus6dFJnL8RKPR15o3vm6rdIn
	obLLGG9KkAYp5tZOjkg+cyfS5o9b6cfXwlVtCHAvmpNV9gUrfdUBpPIDF4Hsh/lA
	P2khTtlk94XAgpPOMW82NGWVL+bNRiPfXZXXp4mflLsFyE0bqyGdtsKMYRlEKEFL
	dqXDwBRG8WVv6/gNjFXbt3Wzpl4/RJe12ruX2sFpv6ahf0OJmPPXpNoQ4A627khi
	0udu0+ahQnLNebzrCuOk0MKqW1FL5YtD9wqN/j505mg8cw+EoKOb9WSWnnUGogd/
	N+3MCzZH3BBTVkQu4STshXtmkuanoNraKVmP1W0FKfVNbs81tg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oUFNvw8XOV4jQoUFNvPcdJ
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Fri, 6 Feb 2026 14:24:16 -0800
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, grygorii_strashko@epam.com,
        anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org,
        roger.pau@citrix.com, jason.andryuk@amd.com, victorm.lira@amd.com,
        andrew.cooper3@citrix.com, jbeulich@suse.com, sstabellini@kernel.org
Subject: Re: [PATCH v10 3/5] xen/console: add locking for serial_rx ring
 buffer access
Message-ID: <aYZqEBz9ERuOZf+D@kraken>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-3-stefano.stabellini@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260204233712.3396752-3-stefano.stabellini@amd.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 spamscore=0 adultscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060165
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099D3:EE_|DM6PR16MB3685:EE_
X-MS-Office365-Filtering-Correlation-Id: 34a59678-edaa-497c-74c5-08de65ce7982
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?FKh7+Km0j3Uqsr1tHiBnR2QwgBdZVXd62prIJTUCfOdNoBWdpZ3RSzbWqZvp?=
 =?us-ascii?Q?KhKGFyxQzLIo4eFwScsmM7ER0M6URU34SBJZ5uKMkCDmJ9xrGhc6YhGvPSv0?=
 =?us-ascii?Q?EkmHJhX7Rej293aw/3asg/ont4L43zGMPbvvBu4oESMg/AYK9F6MoBwdw5n/?=
 =?us-ascii?Q?r5JWfMDdhqb6bCVD0wSZX2hutiUg5J2QnBeTeB22RxOAUL17iXF284VeMx2P?=
 =?us-ascii?Q?+szAZv+r2wN0TunVqwzRHCTcJiiypgPBoxBHc+RX1UcxcvIsfccCu1ANWRVM?=
 =?us-ascii?Q?PCXhbLyYSoo+bq6rCU4e9D88YZAYoKQLEqe9xaGVz6Bpt9OTV7QDa1alkMdi?=
 =?us-ascii?Q?CpVV58yx5uKUJrSBwz/WD2UI91O4D1rG+FV+aBup5qex8Qvzuf8FpvMdDhyi?=
 =?us-ascii?Q?HBvfh+10BB88CoWBVxc2ot024vKF2IRxpxpdXTArk7eWnTkQPO10DS4U8WFc?=
 =?us-ascii?Q?oDnC7J3YyzT8hEynoL0adfiwQ4/EhN2xJSwppufr3hfrYVmLWICUgSPuY5kh?=
 =?us-ascii?Q?9d7GHOhDKbaYLJQ9ZA9BY3rtOLNyYhV0QWApxLK6cUfRQD/3+2lnwaJQ3UgT?=
 =?us-ascii?Q?I+9Nsyrxn+AAfVczs/P6LPqfzn7A2uwzxfuahUUH6GUwtBYAg1KKVERQIZvo?=
 =?us-ascii?Q?Szqn+jHBAn4TaOXQSkwpoI2PEcPcPxpKbyIcjqhpdHxxoe7EN3UjUeJU5XEG?=
 =?us-ascii?Q?Yn/OK6+GX8OqyPN+0RRi8XBg3rDgk/e+2+/s/JlRU6WTS4qk5+gYXf83CdW/?=
 =?us-ascii?Q?OxuPRvu+81N+4g/4+MKnmQUWNUwQu40XKYzmL5xUoqo8s3oWtcw9Nnca8gni?=
 =?us-ascii?Q?57zG4LNAh/V7jqLrrKMMM4k9OqNxbDrS+oV+CPs75dVIKxcW74YxnP2YfCiD?=
 =?us-ascii?Q?ikj2ntzzz8j6o9wTBAvCtylcyg1iY36uAv+2n9gagdSEeZiji8/vDfO9EdBL?=
 =?us-ascii?Q?ufL2XGGZ0Ml4ggfKq6sNkIl3hq52lTsBTNRavXfaQoq3fyZZ0AbiQBnntfIO?=
 =?us-ascii?Q?zKBxcx0E216ApJYYmKPcuSsoyiqvIZFH6cIe8zChGb98vQ7hahYyvjGSuXUX?=
 =?us-ascii?Q?uo5bSgc/1rhllunwiufDihoDZSzKgcfXxt0h5t0K0ju4SLzCa3Jy3dFYBqr6?=
 =?us-ascii?Q?hLXVQa8EllXTo9CiMA82ulzQ2iDd3PndT2T+Zx7K2P45xBFoR6Gk7cE9Wp6R?=
 =?us-ascii?Q?6WidNAEIH1ucKOJxHeLo3cTKF44kIzbqCfldJBKZJ4FhC57j/oUQj87/bM9d?=
 =?us-ascii?Q?eu7YYokZPXbsCFRjIG5ntjVjtc5rF8ox50rAlTrRmXDPcoaFAkOaoaZuvR4t?=
 =?us-ascii?Q?n/pZVf0Im5hUP0CdUorsuIEmMO4NNSkFPwsdOVpJxER3eYzknaTNBM6rm1vo?=
 =?us-ascii?Q?TijJlnhkjHmAGpz21RgjH1wG5d/xrT7Y8o+86MkEtgRHG4FcPy17kJWcR2ag?=
 =?us-ascii?Q?En3QX/3AzQJPahU3WYPdqyJqDVL7j2FzyHOLK2KlVL/JaxAKA4pCW7PQ1D/M?=
 =?us-ascii?Q?oRPnEVIMtcsaxrWEWqt8HlUUTM/3SqmLEK7qZQB2j4lBwE3h4m/795EuF5Yj?=
 =?us-ascii?Q?CRp86A6i8gZ7NQvLHbC9pnitz2gKHVdgmxL7Mnqq5jEsuyKZkml+NAQd9uL0?=
 =?us-ascii?Q?z9GXQvmWXqgJMRW9kGTk35I35PcWfyRoSQcWm+g/TXUsAopSeAzjjv4z4lSs?=
 =?us-ascii?Q?/ldANg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	oPVBGjhh4uBNUwGmfK6+eIjVx5KdaUZ2BTruhD3FTnbGq0QdKsqb3/In1kMB5XwbZ6E4EMm/NKZVd6lpzaimdFuVv2ZvPComUgPzDOHwwWxk91EMsAa2TMswOVXXMCkPCoQylY3hutfgRUiJeiBTdWDR+WO/QKs+MHtnYQo6DeeEtPa3ezMkcHHw9rPiZUJofNUCtLOKHCaLzhz7H/9r/tZMdDatDRUJ6nJShY/47s5vIXOs0P7RqxB4nLP3FHQnJHX3IXoeLhtAMWyzlVOUxYgyF8XBDs4XRCziS8egWhR1takNolzO+xw+a42RplPgOjhodBZ6bABRwkwvyZJP3b9KWR6uX53uDTgxcz0OLJL61pqnD7AIH1LR56rbpVxUfpDhQrVqK4Ydkwx5CUiO9zBnJ0gdfPA5wBMGdwl0bUcl17wb78BSvCrOw/M0iXot
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	RsObQ4ke0jMzlmhDMah2QFC5mNJ4x8cfNlTjH7n1B8N2Ks3+U53inrEV/zBRDs/ZSuBRlf5F02PmF62lHH9LDXC4HzzbMlW3lxG9NQg3lNm+5aoucAD64K2QswZES6zt02S5J3NOqOrgWy/GvQ1ncAcvy35XARvBbc/SrE2e5Ck30gMkVgZ1UK4m4vCFikoZ5gyxzPLX7AHkNYXwrLK9GxUSjiVPFCokLwKwj+1KoqNng0fgJXW/4ppVBYO8+s6Bj6W+cGC7scBpcTY9wBWsQ2p/RXWoq5E42Rs+Plm1Effqy6tG6wfVgqaQjz8kE3pAqueTPSrd4oGJj3egQhcobP9w9mAQRVTjMI1+8sLW1ff29ibxWV2C47qjUpgkkC25MBM2mo5NtQ7WZsHUj437yBmFwsZYLvNa4SQQOaK0ZsCixst38yO5Erwyq+cL+rMHCWsm5l6CtyhphZ1VNCzxNuCCb0u7/KB2BsrQGmwwrrUqm1oGkDA3weqYYHrrDOJq4BwZ62uCOPDHMhP4q+fnkgSFBXXvUGfN3pGUIU9AWmOPzxXa6pTvwVBFhpslWMV1U5zZt3oVaJCRmQYC/Xvn9sW15sITQ06GhC6Q+iTfyU5wtd073Oxeyk5CAIGhsD4uYku7QXzfVGmC457zQ4fNNw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 22:24:20.7563
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 34a59678-edaa-497c-74c5-08de65ce7982
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099D3.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR16MB3685
X-Proofpoint-ORIG-GUID: 3afUeVPM_PjOHA56xcF9XZVziw6Kp72z
X-Authority-Analysis: v=2.4 cv=U/CfzOru c=1 sm=1 tr=0 ts=69866a1a cx=c_pps a=j/UUtXukZThXjipu8qKQYQ==:117 a=b7IhknPlfT0FN1EembXvig==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=zd2uoN0lAAAA:8 a=cbNQJ9GKAAAA:8 a=dEE_NiS0NobiUu1PXT0A:9 a=CjuIK1q_8ugA:10 a=ZXulRonScM0A:10 a=zZCYzV9kfG8A:10 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-GUID: 3afUeVPM_PjOHA56xcF9XZVziw6Kp72z
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE2NSBTYWx0ZWRfX/UKCdfq/EC9j X+1oHe+6VcIHBYvvnit3CEudvn+5+jg1j1+ysJVfLB55xJwpuaZYz5/KnZOnHEPNTNIBB4DV9is /RcpKz4kXAhkiDLKAq/mK9+pRN3n3HGSU72y5Jsv0+Zczd5KbXcWC90qnVwoaPBUz+xCqf+9FGF
 YFef6aQScx+uIlH10p589NZMIAme2F93cAnDNtRjVob5wyWvKk0knnObkGec0avfR9elSOt6+Oe sQvAkE13uYDYeBAtjXWfytej83yVeYYVUoQLDcNrAzRyVIb8qfm33/OJs5CjwXasc6w8Yjd4EO5 Tooxb2AtKOJeCX+bScj+ziW8KX03XHzdpK5Hf+U6momr8gUjDDPxE2YHY0pzG4Rboyp7nqJ6M6E
 bMEZMeER0Ozb41rlpcsV/m6dF/RjM/YdsmfJCPJlSkYyELSYGIwX7E/4AwjwN0YNX7KAoqJlcTo sdpCsjWPcvpnKjlEVHw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 suspectscore=0
 bulkscore=0 malwarescore=0 adultscore=0 clxscore=1015 impostorscore=0
 phishscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060165

On Wed, Feb 04, 2026 at 03:37:10PM -0800, Stefano Stabellini wrote:
> Guard every mutation of serial_rx_cons/prod with console_lock so that
> cross-domain reads can't see stale data:
> 
> - In console_switch_input(): protect console_rx assignment with the lock
>   using irqsave/irqrestore variants since this can be called from
>   interrupt context
> 
> - In __serial_rx(): protect the ring buffer write operation when
>   delivering input to the hardware domain
> 
> - In do_console_io() CONSOLEIO_read: hold the lock around the entire
>   read loop, using a local buffer copy to avoid holding the lock during
>   copy_to_guest_offset()
> 
> This is preparatory work for allowing multiple domains to use the
> console_io hypercalls where proper synchronization is required.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 22:29:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 22:29:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1223990.1531318 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voUKd-0006lN-IE; Fri, 06 Feb 2026 22:29:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1223990.1531318; Fri, 06 Feb 2026 22:29: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 1voUKd-0006lG-FX; Fri, 06 Feb 2026 22:29:43 +0000
Received: by outflank-mailman (input) for mailman id 1223990;
 Fri, 06 Feb 2026 22:29: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=FjYH=AK=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1voUKc-0006l8-4W
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 22:29:42 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 537eaa60-03ab-11f1-b161-2bf370ae4941;
 Fri, 06 Feb 2026 23:29:40 +0100 (CET)
Received: from pps.filterd (m0367127.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 616IO8R4022777
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 22:29:39 GMT
Received: from sj2pr03cu001.outbound.protection.outlook.com
 (mail-westusazon11012009.outbound.protection.outlook.com [52.101.43.9])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c1wnnbdew-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 22:29:39 +0000 (GMT)
Received: from CH0P221CA0026.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::6)
 by BN7PPFBC519E732.namprd16.prod.outlook.com (2603:10b6:40f:fc02::723) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Fri, 6 Feb
 2026 22:29:36 +0000
Received: from CH2PEPF000000A0.namprd02.prod.outlook.com
 (2603:10b6:610:11d:cafe::7) by CH0P221CA0026.outlook.office365.com
 (2603:10b6:610:11d::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend
 Transport; Fri, 6 Feb 2026 22:29:32 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CH2PEPF000000A0.mail.protection.outlook.com (10.167.244.26) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 6 Feb 2026 22:29:35 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 616J8Rbo3941138
 for <xen-devel@lists.xenproject.org>; Fri, 6 Feb 2026 17:29:34 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c2127xpxv-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 06 Feb 2026 17:29:34 -0500 (EST)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id oUKSvAVXJP7uEoUKTvKCR3; Fri, 06 Feb 2026 22:29: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: 537eaa60-03ab-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=DCpJL48mHSGuimrJ3uKpy6OQ6Zz
	ZTNdC3hoqo6FRy7I=; b=Og+gkzzndrLARnJJzJh85UWQdXOVu/w01gO4ZShNz42
	HT4EAWYbiCFV/2W0lHnUdSJQ+XDJ9jpoFtg3RQqmto18UAButCCUr9vSnJX0zHOa
	B+EkgDsZ4JbtPeO6f4pCps4BIPCtGjLej7TCZJGhPz8qpKOd61y/Ty8R2xpRl1lv
	n2eDvRy7Qf/30kdfXcrshcBVcDzcNz6xII+BuHc5tmvndogERaKrjJXkv0tL/EoL
	d+hH1kMfMHiS0u7ncA5Eiza2pdZwwUaGgcQXwGdsuvCGckjBmByzELI+DcsxqVYu
	6jnsjEgQhNVisKFmF+ixdMl98kbWw/AEGv0v38OJApQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NHwMLtB2rinTHATegU/tPnRnMK0lZRDncsjdvWJG/HoFhctBtE9EezPSgOZlSWKLHaOh305QQO1j93Tt14lCiLeWBgANgi4PIuaSy7MO5ilGaZBAsiaQA8RDv1oR40zwJAI4QVeAt7PlapxLtSIcMmJsd+KPH/OSNqMfyUpyp1GdmAKGB5E7j4I7j3gsWLLwyRlApH+U544/j5FrgXBkeBF19SLuo1nLENlPRqbsFJFXRRmJfxmjpsUX25SYusGDOgomQcNFReo1FpVqmDyCzXqq504wZl6rn5Y1IZJGNDew1kA974O/7/diraL4hoVp0glSO3avYVMSd2dOW4sKdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DCpJL48mHSGuimrJ3uKpy6OQ6ZzZTNdC3hoqo6FRy7I=;
 b=HrwDzywb1zjrYhtY4ckkWCAbo7EwjezxxpMYtF1DNux3NUWzbAatHEoYwnoUtjst2FT++P7+XQ1KwFR9TIQAXC/26OressEMTxUfSJu3j4fX0OpSVVSH+lb8x3xI5XdZ/frkUYEX9oGALnqDogxTkFNqlsMArNMxi4SqUpkvwSUeSMXRupEbAl3fwmQrPNcjuq85j8iI8RCYgsPRgia4/M/T0pgIrc6kNpXIwdW7e9XscvqTdvBL9CcxP/gKKLIbtBzVRS73bydk1ZpSdHew4645vLcy+akfoVPzerb8n/aTX+ekKHlkBtD43NdjAK07WXdX5WnXP4BqyCsDcNhV5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DCpJL48mHSGuimrJ3uKpy6OQ6ZzZTNdC3hoqo6FRy7I=;
 b=h2FVd+Y2uBdYN5Pdr3+fwoqhGDTaMMXFdEnSkeve/zk5L/rEjfAMcB0TqUVdKteYXNEod+yrZryUB9eMhY6Q0Pal3GMPhJ1QIMMTSRd96HzSs4rbcKs5ibHWEtI7HF4JAqSLlWwn/80kPjcuQVpkRTc7Q4QaTYWBsLr1wv5PT18=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=DCpJL48mHSGuimrJ3uKpy6OQ6ZzZTNdC3hoqo6FRy7I=; b=X4IKp+iXvbCq
	h8cbQsfBAtxJQGtx/MrHQs8o8uKXIqDJKhQnL7h9HQYQMVS7gyQIXNvKgk5Sz7vy
	/E6VMPpK7WI8DpDvzF007eCNSIFf1wdM+WvDgJsHVRlQz8wP6d9+2h0iw7UcfXzT
	uCru6fHI5Idklhn55hYplGQm6UEIuWChAN/IlNUwogko/QxeGm3erjqoDS+cl78j
	ZD4QNyQUVfrDppI5EdntBT8FeyvyAoA/9aCtM5EBPlso17+77HTDkdgt+nmEl3dp
	3GjzKcnBWoCo1hhVWQZBucg3m6t+Ocsl2gVbM+9e/zF7gqb7SqazCI/Q28bofhx6
	Dq9CPQ3+qw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=DCpJL48mHSGuimrJ3uKp
	y6OQ6ZzZTNdC3hoqo6FRy7I=; b=APVfLtKoodBj/BsGWb658XkyIWWJ30GAhpus
	eovU71TSgBIC+X4lPrgWFK0jj5k7BIDjzXYHjuJhOPUcxxW3aS3MnOgjpwquqj6V
	YRZ5QfNUd2migwQUpYEirJmGWVLTgoa9wh8xYFfsy3apP55DNioevk5so3FjK2Vq
	Bw3iX8sdO8yZaycjM/i/Fgx2t00lzE/I/m7i3MQiMshPxSYwvGqhmb960O/cRQTx
	5sy6hS20p4sB18IduzhuF++eZ+17NwPq3yP/1a8w33Tz4oby7ukQUfyBXq0RzYco
	KZVK14ATFoJuGWecKl8aqfEOlPV9fVJe1YxQ0ncUbDBP+VeGDA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: oUKSvAVXJP7uEoUKTvKCR3
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Fri, 6 Feb 2026 14:29:32 -0800
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, grygorii_strashko@epam.com,
        anthony.perard@vates.tech, michal.orzel@amd.com, julien@xen.org,
        roger.pau@citrix.com, jason.andryuk@amd.com, victorm.lira@amd.com,
        andrew.cooper3@citrix.com, jbeulich@suse.com, sstabellini@kernel.org
Subject: Re: [PATCH v10 4/5] xen/console: handle multiple domains using
 console_io hypercalls
Message-ID: <aYZrTF3uWiZLsjOB@kraken>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-4-stefano.stabellini@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260204233712.3396752-4-stefano.stabellini@amd.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0
 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602060166
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF000000A0:EE_|BN7PPFBC519E732:EE_
X-MS-Office365-Filtering-Correlation-Id: 85e3cae3-e114-403b-f894-08de65cf3517
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?yaMuWqN0aHF2+5TKMqWnmG+xTKNoShirhogeAGwaewXefAKUbVkjd3ja4/SA?=
 =?us-ascii?Q?9EUx9TiJbekUWIIqee+0yAabuH9FkJ7+vGmAP9u981lX5V7Bcdpz7bMV4mkP?=
 =?us-ascii?Q?F1PlJk/+1M8lihqAQ9MpHTBanw0r6G0oyRhXFTl8jlL9BuWLZaS5+0E7n/tQ?=
 =?us-ascii?Q?eHfV8KSDAOD/NpIVgXlS0MPeqjXs7zhJqLLFOBVZND3YERqK3ciN5HgHQF4t?=
 =?us-ascii?Q?JRmHLG4ti09IB9tPNTPck/ztHcJiiMa4mTQ3hJiiKapK1m+SwuLP7cVUyUwW?=
 =?us-ascii?Q?s8iqMBvQVEq4aWFVdhh1RmdHNUdBZy95FKAO+/txwSLqimFISF9DTJ/Wx5+b?=
 =?us-ascii?Q?s+4RKaxJXhFSDWXcl28dZw48rIrR1i4noL8cRGW8IrdzBUkGYsekWMiZhEQt?=
 =?us-ascii?Q?h5eY++I2TVQK8EE0kf9Zvcy42EsFAcz2FLHNwOFnqlzD/AC+Oa43wXj+bLRr?=
 =?us-ascii?Q?NLuzXxeR1YEScK45g09BX/2UEta8QX/BbNRbq9F0pHZ8xzL9tzEiqoIEgw68?=
 =?us-ascii?Q?coEy7wZmDcZ0fftG1eewVSmN1ai59HUg17KkogrQW3Ue1quS/ZTf0wOGt+dB?=
 =?us-ascii?Q?LNQciioTnRliS2um1sCaFYGPKFQ3N81hShGitNUiiQqkReRDTd9l/p1Y0Q+R?=
 =?us-ascii?Q?HJEi1WvxV5jK97oj01tHEnn3cVTjCXMO6zR0lADi0+YMiiV+DPzDwjpxemlN?=
 =?us-ascii?Q?+9DnFdt0O2342Ba0nRLHUzeoPwk6nbvkt2Rk/bwRTW8MtEOGjE0xRJCnHrsa?=
 =?us-ascii?Q?fC4inEX8mdeZ0hbtIo2vbaTkM0WsMLIDX8K9CFpEuMeXqGwb9XB+hRoE2OA+?=
 =?us-ascii?Q?Oq7qnVLnSDiuHoNTYVECZYbgHq/P672ngquRUXabl4mAouiuzYGkcjw+eh8A?=
 =?us-ascii?Q?3joX9Dm7XPVogXPfeWzhafLTYYXEKVXupzKndXoU0iyUYiJU4a2KW7e70AFD?=
 =?us-ascii?Q?Wy3z2YQD1Su77vs+E0dcKQmscQ0MCCM8tOfQuxaPdlK0tSEuuMvwwIF6Z1Uw?=
 =?us-ascii?Q?XhVDXwn/u74HiX8oe4eP/zrwFQv53bX0y0BA9VWHBW6N6CVVb+d04lzOwy3h?=
 =?us-ascii?Q?Qe1ox36+2dZnoAHfdR38iAiHpeDy7dS1SFz+pWbgCh1NvrYX4Ph4c0HDhzBa?=
 =?us-ascii?Q?3S9cD+r8jshfeYVCaIL4gbTpXDC40c2QePQs71gXjjWDmDnPtdh3FoG9ECcA?=
 =?us-ascii?Q?nLI4BgVOQeDXgbxYZpos0D5+amc9z5GkXAbbDRspMLi+QEey8UCZwErHqLCN?=
 =?us-ascii?Q?QlY/FUu992GnGAXBEb8d3OIQnLYzRGbO29gPvhpA9k/a5iKleD0UaYmV6wmx?=
 =?us-ascii?Q?mNS7M9syxeAu0UQl+HmfQTPwkgWG+bbG0PxBdtyORKpC9n/kuoJm1EZzOE/6?=
 =?us-ascii?Q?5Z3T/55//PGqzcbyKkLZ/VIGb4On+z+GxoRHeRy4hFcuG/9p6Lz+bkV5tx/n?=
 =?us-ascii?Q?DOV3xIvOqPgrog+aS5EPKB2FBd/Hzq5RFIYgGLwy59uToyI9IUsXpHzq4ljH?=
 =?us-ascii?Q?H1XICyh2GMuFzE35VLFgwOFd9tQTPuzuGvnju1r14s8DNxdIhBEYoP3miOxH?=
 =?us-ascii?Q?AkeFATF5B6dBArZe07JSUAQtZ3OyYwj7Ok628Wnkia+gpDx/Hst7uN4UsV7e?=
 =?us-ascii?Q?9VS4gnns1Fe1oXiBCyPoeREd+iqM3DCzXaBWzT2E1CGaDdAocAi0afl3HE+Q?=
 =?us-ascii?Q?Za7vVw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	YFgWZhPNgLPomT03OzcRLfT7oFgWFvM6d3Zpmqf0CYCTBzAmitU33BqhyJ5ACbqAQJxeUXAoEnzLfZDy8KisDXocRIk2aBJxI9G+VmkifWPtqKeeLQuM7+yFXE2eQ133oOSwJzGYVgkao9eO4mGtlU/3ubpKdOSD1lkjuJNI1hI3xlZUCDe1NTo30lGr4bj2fbrbXe6iGBbH8OXbMjVXCgFw+S5fVd59RNUaTOUNx5Hy3L9/zQ6ofJGYEDOyf+Ke9M+NK2aVWid3rM1QWAkw8OhGgmcGfRpzIB2a7f0J0zimP+GSWL4ayAVHHSSMMNeU7GEAzz4F1iew1Nm9RPuX8CsvqknS3Pm81o0Cc2WdF13AmpT4ikioYw2hdng4tNjgDXDMJloFT1DTHwLBy0R2KvHX9fOK0Hu3SmDTpNuQeXzLdqFIX4zKzxOPl3+cvcQU
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	8QuokZlwZtHpOYcV+EjjYxlbsiNIPKLCeBO7zPPc0SaRSK1aX/sNCMKRnYZbwQM6Yce8i7WjrM+HzNQaFoofkn2B5Z6TgMr+e3Ju+0ksLV+5tM/0mPOlQ5+rp1kXrIIZ3lkULW6XWnyqG/jixQMLPbOnr9cBXyL7vkPavgybXbHOzoNOwOG31N9ffau4EMrSNyekLx1SGiL3USL7rKdLSWK7/A6H7SkWIRxtRGc3+Rk2Wi1pF17vbIFw96QBleqFUBE9NECRTIa0p4nBVxEQZavTbd5GuZ31vXZOZQ7ddyujC+SCByXCBj9QMpVg/WADb2cz9zodrP7O30GWEHSxRT+QXwywXWEVrU0vZPMvUscO+JFAcXatNqSelEa25cbeZMdwsqx6x09n3aUN1W5rP++23tPN3bpa94ecQSLKKHeVi181YjHp3XngLyBrLxUpjq2oEsqNOdfUucQ1TDrg3PwhS+F3IakdY0BMSHhJtwG2CzhR9Kmw2+XSiNTl4Ba+hQH0OWQvSSwwZZsxd7WN6kPMBlcRfjs0ghiXXZNo/o3n7E4fLDgmEk1UlRbtCZ/bUABPChPWmQAvUkXnmjHRFYfDjnliKB0sZKxBS1IZgAUl/L9+GbpxIloCjDxv6mAZFk8T0dLd6qEF/rUMGtJ96g==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 22:29:35.4269
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 85e3cae3-e114-403b-f894-08de65cf3517
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF000000A0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPFBC519E732
X-Proofpoint-ORIG-GUID: Mv3KU8iUADS61HDtd41IEwFCqu7-qYQO
X-Authority-Analysis: v=2.4 cv=U/CfzOru c=1 sm=1 tr=0 ts=69866b53 cx=c_pps a=rl9QZQJB4f+cLtFzzj7oTw==:117 a=lOEMawUel/sSvQipkIvNbg==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10
 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=zd2uoN0lAAAA:8 a=cbNQJ9GKAAAA:8 a=VoHnIRGKSVmt8-PxNDkA:9 a=CjuIK1q_8ugA:10 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-GUID: Mv3KU8iUADS61HDtd41IEwFCqu7-qYQO
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA2MDE2NiBTYWx0ZWRfX//0taBXQbxmj 21FlJwNhGHWl2gWwCFnn90Z3wMZ1lSTUVB9nBrkWg/Eip85PnqalUaeymnOyq+/qj+tGAAnfHHp 1bdzjMCRWEtSmcEp59BXAyb0PU2/BN1XQT+NkxaGZUnCz360gvCUmnCtzmvfLrd1CQlwPeSpxwS
 zvQ32TPDndhE9lCRubJDtNM2rrcp8p6nLDpbnCVcFPb7Re5SaZUIu6OIgg8kOWVM2VRxIvVU5Gl bmUfpJy+G6MmyttSyeOFQ4HJSQ3Kg/7XuREj/SHuOg3gZaSF2Hje4Vs85QoJde4dqua+SR4xVCD mCsPUiJ6iDp2DBF8tiWqnkxf8AAH7i9as9R/qVeLX562sAmhOAuvyDmF9LLxOJIlWI+j18S3Kb9
 wVNCiEhqwRu54AAFzyRFsMjKHyx670unQ0v6uHOiF5ST9AgIXNeAEex69wZMu5/QjTVtlEWrekw RGCJfbqRLUxNp8+i9kw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-06_05,2026-02-05_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 suspectscore=0
 bulkscore=0 malwarescore=0 adultscore=0 clxscore=1015 impostorscore=0
 phishscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown
 authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1
 engine=8.19.0-2601150000 definitions=main-2602060166

On Wed, Feb 04, 2026 at 03:37:11PM -0800, Stefano Stabellini wrote:
> Allow multiple dom0less domains to use the console_io hypercalls to
> print to the console. Handle them in a similar way to vpl011: only the
> domain which has focus can read from the console. All domains can write
> to the console but the ones without focus have a prefix. In this case
> the prefix is applied by using guest_printk instead of printk or
> console_puts which is what the original code was already doing.
> 
> When switching focus using Ctrl-AAA, discard any unread data in the
> input buffer. Input is read quickly and the user would be aware of it
> being slow or stuck as they use Ctrl-AAA to switch focus domain.
> In that situation, it is to be expected that the unread input is lost.
> 
> The domain writes are buffered when the domain is not in focus. Push out
> the buffer after the domain enters focus on the first guest write.
> 
> Locking updates:
> 
> - Discard unread input under the lock when switching focus (including
>   when returning to Xen) so that cross-domain reads can't see stale data
> 
> - Require is_focus_domain() callers to hold console_lock, and re-check
>   focus after each chunk in the CONSOLEIO_read loop so a focus change
>   simply stops further copies without duplicating or leaking input
> 
> - Hold cons->lock while flushing buffered writes in the focus path so
>   the direct-write fast path does not race buffered guests or HVM debug
>   output
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

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


From xen-devel-bounces@lists.xenproject.org Fri Feb 06 23:30:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 23:30:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224014.1531328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voVHL-00078H-TH; Fri, 06 Feb 2026 23:30:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224014.1531328; Fri, 06 Feb 2026 23:30:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voVHL-00078A-QX; Fri, 06 Feb 2026 23:30:23 +0000
Received: by outflank-mailman (input) for mailman id 1224014;
 Fri, 06 Feb 2026 23: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=3tkN=AK=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1voVHK-000784-LP
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 23:30:22 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c9feb7a6-03b3-11f1-9ccf-f158ae23cfc8;
 Sat, 07 Feb 2026 00:30:16 +0100 (CET)
Received: from SA1PR04CA0008.namprd04.prod.outlook.com (2603:10b6:806:2ce::13)
 by SJ1PR12MB6337.namprd12.prod.outlook.com (2603:10b6:a03:456::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Fri, 6 Feb
 2026 23:30:11 +0000
Received: from SA2PEPF00001504.namprd04.prod.outlook.com
 (2603:10b6:806:2ce:cafe::68) by SA1PR04CA0008.outlook.office365.com
 (2603:10b6:806:2ce::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9564.16 via Frontend Transport; Fri,
 6 Feb 2026 23:30:05 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 23:30:10 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 17:30:07 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 6 Feb
 2026 15:30:07 -0800
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 6 Feb 2026 17:30:07 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c9feb7a6-03b3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AdAZsrjptcoaV9g61fEmjozNwviYhCE2HOZymQm1IZnyqgtni8sSiaXiCo9c2svWR9OgIoYRI7/OpmOEPm2jrmtzBu3CnsiIR01btz21oQiEU1hpF/eyplGT2PyqoIQJFZfva9qzR4m2gG30qo2S+QnJ2wsWEBrM0PShUH3fUyk3DStXa4LKHfLMy2icizcSlD8hyRRe/N/Iu9J02Bj3UyU9H1Q05KrZmELoyQx1lsNVj5y9G9Y9rdmwaKpeisjEgS59QU8L3zscykuAjUG70wMW+rAQ1qdld8FYEHswe1XeVq6iNqjILHxfIJ+fYyHvXUq7YnwGyb+0ZOEiWO9xdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6ZmR/VYUbsIrA583I6+recTTPOLRPVLSgfhbcINoDhs=;
 b=sOaoIKvKqzctSq2bwHvBz3I6YEjiBoSBnrSdvQHk0eM15hAlnXnRE5KljjmNgdFRLlSkXaI5LL7wjKSb9bFWE3q3+IB7As7Kck7bbwcvWq65gutAN3RFZ3nWk7WwM722B8ma+Ge6nBfg64Cdv+BR/27Kxmu8pAREXuUOcZ6K7UrJLYAPhs0SOh/S2HE11JJQnI7VVb3i78iiQCtVOZUfapSzyxeTTN6D0bnx5a8FNNUa0GgsNZXY6j1ag/V7jLdTaUA4g7zA3klJ/n7fEXBb7Jt8YQQNmfXayn32JulTO97mDeRXG5UDfj0OABlAWOD11bM5aWJlM57JdHkOaTeJIw==
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=6ZmR/VYUbsIrA583I6+recTTPOLRPVLSgfhbcINoDhs=;
 b=oVeh7jX3F57LC0hjoqWdHYuPuKIUXqxzX02tQIHjBT1JOETpsD1n1jBVPbbDHbumQnuv8Lt8jH8FqWb9xKViKTlYvvKTCRMRSuh/+RBu3ItRzYwQxkscTRrSuMLdDq42zA+y2Cy10MMi+Z0+XABx3qHFuWdqfMYrcEsrkE4gEoQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <jbeulich@suse.com>, <andrew.cooper3@citrix.com>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <stefano.stabellini@amd.com>,
	<alejandro.garciavallejo@amd.com>
Subject: [PATCH v2] x86/cpufreq: Add Kconfig option for CPU frequency scaling
Date: Fri, 6 Feb 2026 15:30:05 -0800
Message-ID: <20260206233005.417233-1-stefano.stabellini@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: SA2PEPF00001504:EE_|SJ1PR12MB6337:EE_
X-MS-Office365-Filtering-Correlation-Id: 3de52961-f10e-4a7e-ad93-08de65d7ab66
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?5DXQoXg4WKg32+JHax/7HZix5LnPCZq4KkgEeAp/tsyQZYWVIHfG+xpwwd20?=
 =?us-ascii?Q?fQsC5DHMKs4ASLJDsppaZTFJcUVFo6nekgnnf2qWKwKC3Gm4/beM5q7ErRQg?=
 =?us-ascii?Q?uwBo0m1dwP9YXbn9LYlNp8gx3TXpXGR5CI29Ltxaa04GuAccAZ3NQHdWa8KL?=
 =?us-ascii?Q?LlyXNp9aWkDqXIitJf3lwzO5LJ5ZXG+og9WDHGOQEuqQ+f1MWqjTOkHdIHB5?=
 =?us-ascii?Q?ZgX3EdUO2zLFdV9Mdzl9+tfHzzvhMr4KmVAUrNLzrZ7WCXMslsjiidGIMIH1?=
 =?us-ascii?Q?9/vD4P9alG8qFhNfamXW+QquyRBRdW7QHAdn+HHX1yuxccZSWRINVduX7GGx?=
 =?us-ascii?Q?hh188s21MQqRZyLiHkix72a+bmc3KEZsI6x4+0Bf9xsxOKXWgH41WNGH9YFF?=
 =?us-ascii?Q?1l/rGC9CwWS5IPf8AmciXH69lKSlH8a1vBCr8vAUMKZQv5K1vXLH843d6lXI?=
 =?us-ascii?Q?yQjHE5YMibebsfp/PQPU5jgtzyPh8c/9r0cAHd1tzn+jFjp8/PB01sx/BXQd?=
 =?us-ascii?Q?guw77zLhMVBFsmb2OvkSZ3yi2hmw5iFM1YoABAya1JW6d0TOevXLL2eBaen8?=
 =?us-ascii?Q?N5dWvqoxKcvtbWgWD6OqOXNsxNb5HWQ/H76GZwkZ5R69oAQeGvgjiMVL6h9N?=
 =?us-ascii?Q?NtlzeK70WM/TP6OnuUL1Oeqh2P/HSrDteBrVmCp0pyclbajbF84hZ3nJOgNs?=
 =?us-ascii?Q?MagrshhcFNQ5M9E6/PdbuxgzVzFJIRsTJMiFmiKAC6FsDEHWYCokYnU8iS8D?=
 =?us-ascii?Q?e8hPAPIdZ3yQ9EnzvEy7hT6yO7IBUKHFb1YsXKf2O058GuLtPVJGyhk7t5Sa?=
 =?us-ascii?Q?Q3myENNaYtiofsdauBMD//a2CC+Ipq4L2I7OWG7gqStOk2F9vGkNTIFXfn58?=
 =?us-ascii?Q?VTt+BvNyfS3jXjd0uvzm+yjSvYhxxRM28WjqBJnd/OL6ykPYxJ32YhCAx7AT?=
 =?us-ascii?Q?1d2ibFhfTHrY2hd1cwvjQTrqg7oGFFkC8wPekdAIPxFIB13R21lZq9JD6Oe/?=
 =?us-ascii?Q?vBH+LxwpAiunDJ4ipOkRJDEVgHazKfZWbVY4teT4+KOsss0143pyQ3z7RUse?=
 =?us-ascii?Q?ZP7ScJ/gcrjxQqBAy2dNMDFRDWPi3ap8rWq1BgCBlI4i6wjeL/3qLVO0CFLq?=
 =?us-ascii?Q?ZVbHMkQfyunvbsHcEzoUAm07PxZqqUqU60V/JxbJbIOTP7HSfo6BwU4S7Vdh?=
 =?us-ascii?Q?zUuZrK+3bp0SxKHHdoCFB5ndvA4j6C08LqQ5sulbYTgUg/dcQGTKXdBarL2u?=
 =?us-ascii?Q?4Vuie3G7YmNU27WkPXeJyS3/fB+9upKx37I7raI9t9lxzCYtV+9FKnDaC+sH?=
 =?us-ascii?Q?aXWigA+kvDSkbiHzkQLw3a2P0RlpvgxrAFElsnj4EdCk324ZfGkwSbPLtAbd?=
 =?us-ascii?Q?5p493ARRkMsCzbT5BPadxU6se4VaOnkkW953MEaUi8nzsRs6pX7o6TS6nmg1?=
 =?us-ascii?Q?GMpgGqp9q7Xbk9qGcs8/mNji/fcJ09CsvjFxDvIOl4m5d9/pnBW84TgNiQjC?=
 =?us-ascii?Q?QoQLrbDoPqUyXJ6K9tQeJ5TtGXrCssejE5ys1lFfYZmWZYecw93O5+HnaCSn?=
 =?us-ascii?Q?yZF28eDfRRZFmxz0ZWIWNTPda0Zi5alWPlC76nrrd06SXiZ9SQXWcC/e5k4V?=
 =?us-ascii?Q?TefXbFY78fhLJSr9MqmL28r2BLC6YMx08hK6d6HVWLAegGdTmtH/qSmOPK2u?=
 =?us-ascii?Q?RqOtVw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	tRTr2GPFaDm1eDPQn++e/opp5JtEBnCjApJz+Gs2l5SPytPK2nnDcmC8ccBI5Nevdbq7ZBSqzobp3SoOBN+2whe1da4lyoEd7BA8c7VdkTezntR4Vm606YN4JdyvbaaWN71vTY9jV2H+EN4QPEXhdfcvk32LpGutO/bhYAdTAxaO17KIS+54Lba1JV1VlMOMklq/bUy4/1i8Uq7dF8F07drrNjlEFunrRo6RaR23tcWlTw6pYFt5nZVIVI8uWuFeqd8iPXK+fBqkEHWvVMlKpW3WF8tZv28XLj3yFqLfchtQg0GBW4KQd3j6KWrjfFVNM5AlGxF8jzEAEXUpE+wLWtVlTLK07N51eYqw7dLp5wZ/VXRxZW9U7YQFdZGtd+IAMZEuAPCkS8EDo9CRcgpicpMY5WRITEnKaoNOBa+tIupOP8iZNs+tCX1wyLeHcNps
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 23:30:10.0477
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3de52961-f10e-4a7e-ad93-08de65d7ab66
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001504.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6337

Add CONFIG_CPUFREQ to allow CPU frequency scaling support to be
disabled at build time. When disabled, this removes cpufreq code
from the build.

Add stubs where necessary.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v2:
- add stubs for cpufreq_add/del_cpu
- also gate hwp_active
---
 xen/arch/x86/acpi/Makefile                |  2 +-
 xen/common/Kconfig                        |  4 ++--
 xen/drivers/Makefile                      |  2 +-
 xen/drivers/cpufreq/Kconfig               | 16 +++++++++++++++-
 xen/include/acpi/cpufreq/cpufreq.h        | 13 ++++++++++++-
 xen/include/acpi/cpufreq/processor_perf.h |  3 ---
 xen/include/xen/acpi.h                    |  8 +++++++-
 xen/include/xen/pmstat.h                  | 15 ++++++++++++++-
 xen/include/xen/sched.h                   |  9 +++++++--
 9 files changed, 59 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/acpi/Makefile b/xen/arch/x86/acpi/Makefile
index 041377e2bb..aa476f65d5 100644
--- a/xen/arch/x86/acpi/Makefile
+++ b/xen/arch/x86/acpi/Makefile
@@ -1,4 +1,4 @@
-obj-y += cpufreq/
+obj-$(CONFIG_CPUFREQ) += cpufreq/
 
 obj-y += lib.o power.o cpu_idle.o cpuidle_menu.o
 obj-bin-y += boot.init.o wakeup_prot.o
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d7e79e752a..cddd7337bb 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -652,7 +652,7 @@ endmenu
 
 config PM_OP
 	bool "Enable Performance Management Operation"
-	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	depends on ACPI && CPUFREQ && SYSCTL
 	default y
 	help
 	  This option shall enable userspace performance management control
@@ -660,7 +660,7 @@ config PM_OP
 
 config PM_STATS
 	bool "Enable Performance Management Statistics"
-	depends on ACPI && HAS_CPUFREQ && SYSCTL
+	depends on ACPI && CPUFREQ && SYSCTL
 	default y
 	help
 	  Enable collection of performance management statistics to aid in
diff --git a/xen/drivers/Makefile b/xen/drivers/Makefile
index 2a1ae8ad13..3d81b8dde4 100644
--- a/xen/drivers/Makefile
+++ b/xen/drivers/Makefile
@@ -1,5 +1,5 @@
 obj-y += char/
-obj-$(CONFIG_HAS_CPUFREQ) += cpufreq/
+obj-$(CONFIG_CPUFREQ) += cpufreq/
 obj-$(CONFIG_HAS_PCI) += pci/
 obj-$(CONFIG_HAS_VPCI) += vpci/
 obj-$(CONFIG_HAS_PASSTHROUGH) += passthrough/
diff --git a/xen/drivers/cpufreq/Kconfig b/xen/drivers/cpufreq/Kconfig
index cce80f4aec..49631f92de 100644
--- a/xen/drivers/cpufreq/Kconfig
+++ b/xen/drivers/cpufreq/Kconfig
@@ -1,3 +1,17 @@
-
 config HAS_CPUFREQ
 	bool
+
+config CPUFREQ
+	bool "CPU Frequency scaling"
+	default y
+	depends on HAS_CPUFREQ
+	help
+	  Enable CPU frequency scaling and power management governors.
+	  This allows Xen to dynamically adjust CPU P-states (performance
+	  states) based on system load.
+
+	  Disabling this option removes all cpufreq governors and power
+	  management interfaces. This is useful for real-time systems or
+	  minimal hypervisor builds.
+
+	  If unsure, say Y.
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 0171ccf0ba..9529730d9c 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -381,8 +381,19 @@ int write_ondemand_up_threshold(unsigned int up_threshold);
 
 int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq);
 
+#ifdef CONFIG_CPUFREQ
+int  cpufreq_add_cpu(unsigned int cpu);
+int  cpufreq_del_cpu(unsigned int cpu);
+
 void cpufreq_dbs_timer_suspend(void);
 void cpufreq_dbs_timer_resume(void);
+#else
+static inline int  cpufreq_add_cpu(unsigned int cpu) { return -ENOSYS; }
+static inline int  cpufreq_del_cpu(unsigned int cpu) { return -ENOSYS; }
+
+static inline void cpufreq_dbs_timer_suspend(void) {}
+static inline void cpufreq_dbs_timer_resume(void) {}
+#endif
 
 void intel_feature_detect(struct cpufreq_policy *policy);
 
@@ -398,7 +409,7 @@ void intel_feature_detect(struct cpufreq_policy *policy);
 
 int hwp_cmdline_parse(const char *s, const char *e);
 int hwp_register_driver(void);
-#ifdef CONFIG_INTEL
+#if defined(CONFIG_INTEL) && defined(CONFIG_CPUFREQ)
 bool hwp_active(void);
 #else
 static inline bool hwp_active(void) { return false; }
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 0a87bc0384..bad9d94865 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -36,9 +36,6 @@ static inline void cpufreq_statistic_exit(unsigned int cpu) {}
 
 int  cpufreq_limit_change(unsigned int cpu);
 
-int  cpufreq_add_cpu(unsigned int cpu);
-int  cpufreq_del_cpu(unsigned int cpu);
-
 struct processor_performance {
     uint32_t state;
     uint32_t platform_limit;
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index 90635ba0f3..7077c27150 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -185,8 +185,14 @@ static inline unsigned int acpi_get_csubstate_limit(void) { return 0; }
 static inline void acpi_set_csubstate_limit(unsigned int new_limit) { return; }
 #endif
 
-#ifdef XEN_GUEST_HANDLE
+#if defined(XEN_GUEST_HANDLE) && defined(CONFIG_CPUFREQ)
 int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32));
+#elif defined(XEN_GUEST_HANDLE)
+static inline int acpi_set_pdc_bits(unsigned int acpi_id,
+                                    XEN_GUEST_HANDLE(uint32) pdc)
+{
+    return -ENOSYS;
+}
 #endif
 int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);
 
diff --git a/xen/include/xen/pmstat.h b/xen/include/xen/pmstat.h
index 6096560d3c..4efddad438 100644
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -5,10 +5,23 @@
 #include <public/platform.h> /* for struct xen_processor_power */
 #include <public/sysctl.h>   /* for struct pm_cx_stat */
 
+#ifdef CONFIG_CPUFREQ
 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);
+#else
+static inline int set_px_pminfo(uint32_t acpi_id,
+                                struct xen_processor_performance *perf)
+{
+    return -ENOSYS;
+}
+static inline int set_cppc_pminfo(unsigned int acpi_id,
+                                  const struct xen_processor_cppc *cppc_data)
+{
+    return -ENOSYS;
+}
+#endif
+long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
 
 #ifdef CONFIG_COMPAT
 struct compat_processor_performance;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1268632344..1b431fc726 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1255,9 +1255,14 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
 extern bool sched_smt_power_savings;
 extern bool sched_disable_smt_switching;
 
-extern enum cpufreq_controller {
+enum cpufreq_controller {
     FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
-} cpufreq_controller;
+};
+#ifdef CONFIG_CPUFREQ
+extern enum cpufreq_controller cpufreq_controller;
+#else
+#define cpufreq_controller FREQCTL_none
+#endif
 
 static always_inline bool is_cpufreq_controller(const struct domain *d)
 {
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Feb 06 23:30:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 06 Feb 2026 23:30:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224016.1531337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voVHf-0007Rz-83; Fri, 06 Feb 2026 23:30:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224016.1531337; Fri, 06 Feb 2026 23: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 1voVHf-0007Rs-51; Fri, 06 Feb 2026 23:30:43 +0000
Received: by outflank-mailman (input) for mailman id 1224016;
 Fri, 06 Feb 2026 23: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=LUBK=AK=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1voVHd-000784-Sd
 for xen-devel@lists.xenproject.org; Fri, 06 Feb 2026 23:30:41 +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 d63eecff-03b3-11f1-9ccf-f158ae23cfc8;
 Sat, 07 Feb 2026 00:30:36 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B414B43EB5;
 Fri,  6 Feb 2026 23:30:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7968C116C6;
 Fri,  6 Feb 2026 23:30: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: d63eecff-03b3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770420634;
	bh=YsE+k9TlfdyetO8KrAuHXjK9Y9/SBHHvYyZvePNvB80=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=hzQaETGERC9281HaC24TPuPbXH7cS0rR8h75emTYyIWvOnUqMxLxNcC6hkStuYf+f
	 2Lalt5fME6UxWb1sAIcVOI3n16CMcvq/nDogYv0zSf/e9jx4hxwXlB3lSfb1ox6+Vr
	 9lsz432oKhxKWjCh/5dLZe2RKTww5jJ5Sn8W7vPcT0z69QxU7ZpMoXstJlIS1jzdpf
	 WbE5xNUFEuVPI7LA+68l5tq/1WoLM+WzCjMr8tYDnVXQmvLTU1ZQ7X9ELZv+cNlINr
	 q3W5faaGE9kJZqf7zlnoiHWFLbVuWz4zt3rFHK+mh1L8b0y0PTv4FQbLbW0QroWKD3
	 fAkmyyBoVmWNQ==
Date: Fri, 6 Feb 2026 15:30:32 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jason Andryuk <jason.andryuk@amd.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    xen-devel@lists.xenproject.org, jbeulich@suse.com, 
    andrew.cooper3@citrix.com, roger.pau@citrix.com
Subject: Re: [PATCH] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
In-Reply-To: <9aef904b-348b-45e9-be44-afaea6d3eb3a@amd.com>
Message-ID: <alpine.DEB.2.22.394.2602061530170.3668128@ubuntu-linux-20-04-desktop>
References: <20260206013222.4081160-1-stefano.stabellini@amd.com> <9aef904b-348b-45e9-be44-afaea6d3eb3a@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, 6 Feb 2026, Jason Andryuk wrote:
> On 2026-02-05 20:32, Stefano Stabellini wrote:
> > Add CONFIG_CPUFREQ to allow CPU frequency scaling support to be
> > disabled at build time. When disabled, this removes cpufreq code
> > from the build.
> > 
> > Add stubs where necessary.
> > 
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

Actually I missed a couple of stubs, I had to send a v2


From xen-devel-bounces@lists.xenproject.org Sat Feb 07 00:38:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 07 Feb 2026 00:38:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224049.1531347 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voWKa-0007nt-NS; Sat, 07 Feb 2026 00:37:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224049.1531347; Sat, 07 Feb 2026 00:37: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 1voWKa-0007nm-Kn; Sat, 07 Feb 2026 00:37:48 +0000
Received: by outflank-mailman (input) for mailman id 1224049;
 Sat, 07 Feb 2026 00:37: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=wspJ=AL=intel.com=sohil.mehta@srs-se1.protection.inumbo.net>)
 id 1voWKU-0007ng-Rh
 for xen-devel@lists.xenproject.org; Sat, 07 Feb 2026 00:37:46 +0000
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 321b6f6d-03bd-11f1-b161-2bf370ae4941;
 Sat, 07 Feb 2026 01:37:36 +0100 (CET)
Received: from fmviesa001.fm.intel.com ([10.60.135.141])
 by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Feb 2026 16:37:34 -0800
Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90])
 by fmviesa001.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 06 Feb 2026 16:37:33 -0800
Received: from FMSMSX901.amr.corp.intel.com (10.18.126.90) by
 fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35; Fri, 6 Feb 2026 16:37:33 -0800
Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by
 FMSMSX901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35 via Frontend Transport; Fri, 6 Feb 2026 16:37:33 -0800
Received: from DM1PR04CU001.outbound.protection.outlook.com (52.101.61.12) 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.35; Fri, 6 Feb 2026 16:37:33 -0800
Received: from DS0PR11MB7997.namprd11.prod.outlook.com (2603:10b6:8:125::14)
 by IA3PR11MB9376.namprd11.prod.outlook.com (2603:10b6:208:570::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Sat, 7 Feb
 2026 00:37:29 +0000
Received: from DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246]) by DS0PR11MB7997.namprd11.prod.outlook.com
 ([fe80::24fa:827f:6c5b:6246%4]) with mapi id 15.20.9587.010; Sat, 7 Feb 2026
 00:37: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: 321b6f6d-03bd-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770424657; x=1801960657;
  h=message-id:date:subject:to:cc:references:from:
   in-reply-to:content-transfer-encoding:mime-version;
  bh=zNSkSTahWoRNSo/iSDo76F6cClLlavuEpCmaKOlEdKs=;
  b=KVu137S401pAcbIWCITRQrP7AlCQmWBDEncQF52Uy/EgteuBALZcmjDu
   mpaUdpZCRq/zkXWY4i0Xn8+GSXbpvF8QtoT8dV7+tJe9a29pVmEk42azv
   +iFOThohH3FYm+xpOZUu7Y83JJ0mv8jdJekUufEy3D3c0U0N85n5c/8wL
   uat57HrTaZwC27vvUw3fb1bMRkaHbLSEwTcBAoSui/nFQPQjj4U+G789h
   ruB+v9lRxDR5XOc+1TBMzgYGgCc7CnPZdjavI6j5rE4wzoBeStmcfIbjh
   XKpK36JE2+3oNOd8LDifB6rZiIrEhznduc/mLOAni4DvKItmqn4lIwmpv
   w==;
X-CSE-ConnectionGUID: d8QmFPKAR3q9fPGQZQfJ4g==
X-CSE-MsgGUID: +L9BoR9tRziv9lkiio7z9w==
X-IronPort-AV: E=McAfee;i="6800,10657,11693"; a="71536925"
X-IronPort-AV: E=Sophos;i="6.21,277,1763452800"; 
   d="scan'208";a="71536925"
X-CSE-ConnectionGUID: Oe/yXzCtR9ayFQjvTB820A==
X-CSE-MsgGUID: 3YLLhuDGSu6a+Irw8GEIhg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,277,1763452800"; 
   d="scan'208";a="241395661"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gBl+ZuEfVO87KAC2dBSE2G+7DSrDqMcvwe0xGKQrU9tu84rp3BROy8PS0gWXQeTR9e0B72eu0bWUJIRlTzgeCJMSy9llVaZ24+kHwY/FYen2lLan9CszokXwkHfT9HkZrQhTcy0WX7VmlRAFWBXYWYX/Yj7cNcZU5vFHlMPvG6Lwrbkw6Z+AJmRwvo0LdZ2j3eyJWcXHLK7Xg/5w9Cm8/GzVaqKCQCPBtQHlkjpEySj0L+FpJxdIe3q/ntqTYB4ZJvh9X2q5/NFF8E4SVxjIcy2QML64XsO5VJsghffv8JvKSFJwvN613BpFPT3VJeJZS9a2vCtFGQds2NnKTbClKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+9CZL3CkEkb3f0oMDkwW7ENiSMqLkOjG9Ju6lugk40Q=;
 b=OgCjFGXmdCdk8/F08ynhCOaTXUOhobqvtJ90aGFuuBIxTsPvHRbAoRvROWlXy2LwY51+KmMdxDZbEr7tKrLyx/iID1Q5X0bdRM0RoGu7HdvX1G0wfUjrmCf5gaCvN8R3L4JuujCycaoYsXRmTcq/ds4ObWIQBse1c1crgg45cLjiFS6DmW+OqAp0sTBEobef6Quy9X1txfd0RNPweJCIJz0rYnNM2ernGg7Ewy1OjSLH9loDuBDiANQejuRv+T0ZQUOJ2kisJB3Z7KXdTJn+aEIIseGcb8oFrH2rOn5TSs3VhmccBJs0DEhuhiNfUhbWvEqdgQJs/C3vpAa8/MZNuQ==
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: <cd6b866c-f871-472e-9c00-3228a2f06c25@intel.com>
Date: Fri, 6 Feb 2026 16:37:26 -0800
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] x86/x2apic: disable x2apic on resume if the kernel
 expects so
Content-Language: en-US
To: Shashank Balaji <shashank.mahadasyam@sony.com>
CC: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
	<x86@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>, Suresh Siddha
	<suresh.b.siddha@intel.com>, "K. Y. Srinivasan" <kys@microsoft.com>, "Haiyang
 Zhang" <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>, Dexuan Cui
	<decui@microsoft.com>, Long Li <longli@microsoft.com>, Ajay Kaher
	<ajay.kaher@broadcom.com>, Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>, Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>, Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>, Ingo Molnar <mingo@elte.hu>,
	<linux-kernel@vger.kernel.org>, <linux-hyperv@vger.kernel.org>,
	<virtualization@lists.linux.dev>, <jailhouse-dev@googlegroups.com>,
	<kvm@vger.kernel.org>, <xen-devel@lists.xenproject.org>, Rahul Bukte
	<rahul.bukte@sony.com>, Daniel Palmer <daniel.palmer@sony.com>, Tim Bird
	<tim.bird@sony.com>, <stable@vger.kernel.org>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-1-71c8f488a88b@sony.com>
 <0149c37d-7065-4c72-ab56-4cea1a6c15d0@intel.com>
 <aYMOqXTYMJ_IlEFA@JPC00244420>
 <722b53a7-7560-4a1b-ab26-73eeed3dffa5@intel.com>
 <aYQzhRN83rJx6DSb@JPC00244420>
 <e5ac3272-795b-488c-b767-290fd50f2105@intel.com>
 <aYWs-wvDuS53BHMe@JPC00244420>
From: Sohil Mehta <sohil.mehta@intel.com>
In-Reply-To: <aYWs-wvDuS53BHMe@JPC00244420>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: SJ0PR05CA0060.namprd05.prod.outlook.com
 (2603:10b6:a03:33f::35) To DS0PR11MB7997.namprd11.prod.outlook.com
 (2603:10b6:8:125::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS0PR11MB7997:EE_|IA3PR11MB9376:EE_
X-MS-Office365-Filtering-Correlation-Id: 102c622a-490f-4cd8-9e31-08de65e112ec
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|366016|7416014|376014;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?ek9uT1V2YjV2N004MGF2eG5SSng5WjNxNXY5eld1OUNMVUtNQjRNTzEwYWFO?=
 =?utf-8?B?K0dnY3lSQ3F3NitZQWl6QkJvTWpBdmlSUkxjWDhYVnIzL3d4dGs0b3JCamVj?=
 =?utf-8?B?TCtYME9GVDdrbWtURzhPRzd3b1pZK2xwMTk0Z2dHcmJrZ1ZqTUNpRUh0WHVR?=
 =?utf-8?B?T3orVEZRc3phNk9zcFBuZkE1VHFIRy9sNXRKZkRaaUd6dFNqRFNKNkpZWndD?=
 =?utf-8?B?R3BHZTJvYkJXRmZUc1Q5VWFudytqR2R1Um9rSVAvaG9oYTVCOE9oNUZQOVJl?=
 =?utf-8?B?QVRMQ3RyTFIyZ3lKNGpYSE5UZWltRFErckQyaDJTaHJ0ZmJidW9md3NkTVNy?=
 =?utf-8?B?a21pMGtWeThoNTdtajdSRG5rUk5qWGlFRmhFMFZCcWVRVlk5ZDRCTnp4YXFR?=
 =?utf-8?B?QmZ1OWY4NFkzMXhiRGFYckNrVndSSjFiZnVESTV3dFZmWFc5OXZnL2lNNGZT?=
 =?utf-8?B?OG9zV2VBNEoxU3ZDVEYzVFFSajlma1pZWnoxRGZhMWtOTVljZ0o3RFFiOEdS?=
 =?utf-8?B?bTZvVU1rbnJOK3o2cktaQnNQa28wWk9IRHEzOGVkUHFUYjl2ZjE0emVLZ2hE?=
 =?utf-8?B?NWJnemhNZ0xHRWtmQzZROFZTb3Q3YVNxWkxhNEY0TlYvSEFwRTBqeTIwZWdl?=
 =?utf-8?B?WmtTcVllTFRxbmwxOXUrVXgrSG0zTGZvdUN5L0tyRUkwTGNkdmx4L0ExbFNq?=
 =?utf-8?B?MmRjVXJaOFJyZysrazRzeE8wa0VTclhqaDRKclVFa2o3VVNTOEhyVWliaHo1?=
 =?utf-8?B?ZnFycGRza3JDdno3akhzM2ZMT0ZoaTZ0azQ0N0E5eVBXNXBlWEdTVXIwRWJ4?=
 =?utf-8?B?Yi9ZRWd4MDJWVUw4SEF1TkM4T0ZLVDU3Y1Q4bkJCc2s1dzFPbHFZSHVBT01w?=
 =?utf-8?B?d3N6VEtxRXNyT2hhRE9yV29oMU1Qb0d5Q1EvSWF4RnN0ckE5ZTJ0WDJJS1dJ?=
 =?utf-8?B?ZXFyODlpZ2libzdCNU5kek41Ym9LdUF3RnJWNVhnd0x3dmZqZ2FtclFDQmpI?=
 =?utf-8?B?cEg2eEE1bzFaejl2VkJtSXNVbXQ3QUF3cXBhZkhXUFgyVUl3MEpSdWcxWWZD?=
 =?utf-8?B?YWt4Wm5DSVpiZ3lkeEpuT0h0c2JJeHZEWnFUNk9kTlRNc3QvSlBZUHE1SWtW?=
 =?utf-8?B?YVFjK0dYcWtncjFYZlQ4OXhvNWhIeDhzVUx5QjRGck9WSWZ3cnllQ1hodWYx?=
 =?utf-8?B?cWltbGpPQlNrVmM3S3NERnhBRUgvNmtkZ0EzRjNQS0k0NTR2TTFodytaaC8v?=
 =?utf-8?B?ZXJCRjFIaXVYSUdkZXBVRHBTM3NWMDlQZUxzYVJpbHFXVEU0QVRkR1gxRkgr?=
 =?utf-8?B?T2dxeitMRnZHbThjYXJVYTZ5SW5mQkVVVnJ6RWJ0Y0MveFNJcWg1N1BHMGJs?=
 =?utf-8?B?a29UQ29iYitDeld0V1hKNWtqQ2RFRGNMM2RFQ2cxVHVtL3pKUWVaOUxyN2pE?=
 =?utf-8?B?NWhJMmI4bk9oczl4Yk9hWDZaNGcxck5vNUFLcS9QdkVtWHVndTkzZDZpYkp0?=
 =?utf-8?B?VnFkNXM1MnBTOHdLaVZLMUVXeUJUc2RCY2UyTVJ6OFEvaXdhQUllN2o1SzFW?=
 =?utf-8?B?cVZvVW5peFNsN3RuSW8wVG05T2FmMTZwU25jUGIyVWU1SG9BZW9tWHFQelk4?=
 =?utf-8?B?TjVjcVFNQjVZdzVPZmc3bTRvRGQzTEEvQXVXSG9UM2ZrcmY4YWFaTDZQWkZB?=
 =?utf-8?B?WVZzM2ROVGhUMHA3TmZwbWxHZm81N0ZSN3JPMG03OFExRWFaZVQ5cUhOSGxC?=
 =?utf-8?B?cDNhTlc0WjJNRlREdWE4YUNVcHVrUStYT1gyaXArd2tzNjBlN0t3Q0g0RVRK?=
 =?utf-8?B?RytoUkNnRjB1SmxiTTVTc3pocXExT29aOUcvVEdzVUpra28raGEyVjBvZk5B?=
 =?utf-8?B?MTFZNXFFUy84K2o4QkdwdkhrMkRua0dQM0dRSDBvdUlKajNIY2JOY3MwTDFj?=
 =?utf-8?B?N0hjMHJJajhnYW1JL0JmY09BQ1VKS1hEalRkNFo1K2IwS3FuWWY2eXE0ZjJz?=
 =?utf-8?B?UDlOZWpYRURwUk1pWWkvVjlDazZSYjNKdXN5QytuZDVDNlRCMGFxREhOLzVO?=
 =?utf-8?B?bS9ZV1ZReXdpSEFxcXFGb2p3amJFTEVjVDhEaGxCWkJHZS93eXFZVDdZanlu?=
 =?utf-8?Q?bSJg=3D?=
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)(366016)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YUUzZGI1aWd0RmpYMWtlelAveDZ1bk1jYVhueTlNUTMvL05zTEZIVlNDOTE2?=
 =?utf-8?B?a25LTkVEeGcrQ2tLNllFb2ZLQ21hRnY4TURWcDhVRXZvUjBrYUY3ZXdUTUFh?=
 =?utf-8?B?eHVqT3hWOWVVbE5qQ2lZYUhoZWZ3dG8rMU9yTGl4TVBrWlFrYkhORlhIaHMy?=
 =?utf-8?B?RmNBUFlwM3g4SHR6RmpNa205T0M4R1N2U3kwNU52UUkzZS9UUDZSaVNqVFhR?=
 =?utf-8?B?dFoyUEZnZGdnZDl3cUtmUVU5R0FDcXowNzhLZmlldGtzVVhNVHk3VUdRSG1N?=
 =?utf-8?B?V1d3a1JSVEFhcTJJd0YxUzArS3F6TkRra21mR20ycUJLOWxpbFBOVHAySklt?=
 =?utf-8?B?Vm96Slcrb0wvUFFyL2FpMTNNRHVxekR5bngyYUdSRmwyT0FBa1dIQmZ0NjUy?=
 =?utf-8?B?Mis2M1BuQ2g1aUYvOFhIL3JzdytVVC9oUjVxTFEvcWg3aXNMVVN0Q0NmL3Fs?=
 =?utf-8?B?VEtHajBFdkpMQ1JqdlJHbGxjdnVpM2VKbXp4VFdlYTJGZVFoYXo3NUI3aWZ0?=
 =?utf-8?B?aTYwak92NUtJWEQwTkFUSkx1S01EV0YvN0VDS3NpRVJmWXNtcmlpd2NlMDhp?=
 =?utf-8?B?Sm84VHgvaUlIRXZHSDR6dDc2VThsWHFoSkU5WmplQzRQTWZPc3ZWSEZHSnNt?=
 =?utf-8?B?TDU4YXE3MmZsdnE0ekRoUjY5OURxeG1YTFJEMWgrdytqd0xsZHI2V3A1OFZo?=
 =?utf-8?B?QkJPUUFIOWlxOGxuL3psY2t1RjBUWFZxTFZEWTdubTZsMDJaQTdhSUd5dnFR?=
 =?utf-8?B?MG03LzJoY1EyRXJHeFM5azVPUmUwcTVCUGdZckJkdXFrb1NsOWc1NnVnaklU?=
 =?utf-8?B?SkhaT1d6aFNQRjFzVC9wWUNvU1NqNG5NdjVXMUhMWnN3Ukl5dm1DdXZEaGsw?=
 =?utf-8?B?ekVBOEJMU3gvK1hCTTBZelZ5enlTYy9WMURsUzJBUWVFTU9HTS9YTzRRbytw?=
 =?utf-8?B?Ti9HOGI0aVd5dzhGNS9WTzZtQlJWSmljM1NJYkFtM012L0oyU2VOZGg5QVBq?=
 =?utf-8?B?SG1kYnRYM0ZLOEQ2WFVWZ3BNcHVoZERQTnN3SS9MUm1rREVlVGJ6VnRGNlBj?=
 =?utf-8?B?QkdxQU5nMTVpYm1CUXBIRFlsZkhwTzBiV0JDNklhT3JUSVlIbVlLYkh0NkVa?=
 =?utf-8?B?cjlCMWgzbGlyWE83c0haV1VqNjkrN21ZZjRMTWZiOVNLZUVqdGZPa1lkMGUw?=
 =?utf-8?B?eEJlZmo2eUN1NWRNd0xmaHR0RTE5SlNsQjR0OVZSWVN0MmRNeElwQkZPUDZO?=
 =?utf-8?B?a3M0YVBiT1FLQnlKaUJrWStFbkpqZkFJSVg3Wk1Jelp4Q3FmdWZmMWN2TW4w?=
 =?utf-8?B?aGViK0FzdUp2aGtPcko0cHUwOXRjbFlFb2JzWXdLV1VuVVFvcUtVdjkzakxL?=
 =?utf-8?B?VVg3amFRZC9taDVsY1hyRzBiMjIxeVRqdU1KdXBGVUlwa1lGeVYyRm9VYlhF?=
 =?utf-8?B?clFlUnlGaW9FMWovbjMyNTlBelV4clhTRjB6ZEJJVExyTUdERUo2aEo2ckZK?=
 =?utf-8?B?UFRwNDVpci9Xb1BtU0JpVy9jV1NQL1g3a0RpbWdlWHZYTk9hM0NHOG44bHQ0?=
 =?utf-8?B?QU8xTGJtU0p2UnJRQXVkTE5lZWlHSmN6SHF4K1dMem5OQUVVM3dYU1NCMHA4?=
 =?utf-8?B?dGRZVTJleGMxMGo0RStHMmFqVTVoRXpzeWtrYnpPMUhIN245aG52T2VHbmNN?=
 =?utf-8?B?UVdlWFFQeHpsU2hrbXFIa3BtSE9sLzVodGF2akNQT2MzV203NngrTHlsSmRt?=
 =?utf-8?B?R05NaVRtN1Fmbmh6NmJRSS9CQVBMbUpQbyszSXpmeVVjRi82MUtWemNadXhZ?=
 =?utf-8?B?OE9CSG1pYkVLVFI1RVk5Q2lGR3NZQ2M1WGNPZkRvWjROWjROWXNiSkdEalJj?=
 =?utf-8?B?U1k5bHlPRTRFak8zUDh4S3JtQ05XVGszQ1ZFWWtwSHBqaEJ2bEJzZC96MWUx?=
 =?utf-8?B?WHVnQzd6NHdtVU5IanlzVGkyNEE4WGxsK2JaTHM0ektJQTFqVTBDQVNIWnlE?=
 =?utf-8?B?Y2JBT2JFU3FyM3llbmc0b0x5RlJFRzZwZ2lqZFh1SW1OT2FVdkl2TWNweUtR?=
 =?utf-8?B?SjMvbHhwdEVTalh1bXZCaHBVc3lZT3hMSklzU25Ydko0eUYvNWZaeFU2K2d1?=
 =?utf-8?B?bHpmd2VBaVFUUjkyYVAxYWZMcUZLaXFlMDNYMWZOZ1NNdlJrUjcyWFBpRHVD?=
 =?utf-8?B?UTdkNk1Hc3NYa3RWNktqRlRXdUE5WGJmdVAzUCtVUG9HVWZHMkRRU256V21o?=
 =?utf-8?B?dTRwbWNYMFJxWnRidW94Ym1MQTljS2FsdFNZaVU0SGdpKzZGYmxiK2U1cGlY?=
 =?utf-8?B?dmtjSVA2Z0NKdGtvK0xJSnBWcm9EcEwvSXgzNzRaYkp5T3oyWitzQT09?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 102c622a-490f-4cd8-9e31-08de65e112ec
X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7997.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2026 00:37:29.4584
 (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: QCeQcFNLjroZjEpSnA5O3LegZ6mXkjYoDmLCqMR6szkEcYZ6tOsUCuQGcsvyTL9H2AnTEQBNDGzX1UCxPv9qTg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR11MB9376
X-OriginatorOrg: intel.com

On 2/6/2026 12:57 AM, Shashank Balaji wrote:
> On Thu, Feb 05, 2026 at 03:18:58PM -0800, Sohil Mehta wrote:
>> On 2/4/2026 10:07 PM, Shashank Balaji wrote:
>>> On Wed, Feb 04, 2026 at 10:53:28AM -0800, Sohil Mehta wrote:
>>
>>>> It's a bit odd then that the firmware chooses to enable x2apic without
>>>> the OS requesting it.
>>>
>>> Well, the firmware has a setting saying "Enable x2apic", which was
>>> enabled. So it did what the setting says
>>>
>>

I still think the firmware behavior is flawed. Some confusion
originates from the option "Enable x2apic". Based on just these two
words, the behavior seems highly ambiguous. I interpret it to mean "Make
the x2apic feature available to the kernel". Then it is up to the kernel
whether it decides to use it.

If the intention of the BIOS option is to automatically/always enable
x2apic then there is an architectural way to do it. It can set the bits
that track to x2apic_hw_locked(). But, doing it this way during resume
(behind OS's back) is unexpected.

>>
>> pr_warn_once("x2apic unexpectedly re-enabled by the firmware during
>> resume.\n");
> 
> At least as per the spec, it's not something the firmware needs to fix,
> and it's not unexpected re-enablement.
> 
> Am I missing something?
> 
> But it _is_ surprising that this bug went unnoticed for so long :)


Maybe this BIOS option isn't typically found in a production firmware. I
think it would be preferable to have the pr_warn_once() but I won't push
super hard for it due to the unclear information.

Whatever you choose for v2, can you please briefly describe the
ambiguity in the commit message? It would help other reviewers provide
better insight and be handy if we ever need to come back to this.





From xen-devel-bounces@lists.xenproject.org Sun Feb 08 02:32:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Feb 2026 02:32:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224585.1531358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voua9-0007Ao-1N; Sun, 08 Feb 2026 02:31:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224585.1531358; Sun, 08 Feb 2026 02:31: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 1voua8-0007Ag-Sd; Sun, 08 Feb 2026 02:31:28 +0000
Received: by outflank-mailman (input) for mailman id 1224585;
 Sun, 08 Feb 2026 02: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=y0cN=AM=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1voua7-0007Aa-Mj
 for xen-devel@lists.xenproject.org; Sun, 08 Feb 2026 02:31:27 +0000
Received: from mail-yw1-x1129.google.com (mail-yw1-x1129.google.com
 [2607:f8b0:4864:20::1129])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 43a8e176-0496-11f1-b161-2bf370ae4941;
 Sun, 08 Feb 2026 03:31:25 +0100 (CET)
Received: by mail-yw1-x1129.google.com with SMTP id
 00721157ae682-790884840baso31315957b3.0
 for <xen-devel@lists.xenproject.org>; Sat, 07 Feb 2026 18:31:26 -0800 (PST)
Received: from [10.138.34.110]
 (h69-131-216-128.cncrtn.broadband.dynamic.tds.net. [69.131.216.128])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-7952a074c2bsm60413827b3.21.2026.02.07.18.31.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 07 Feb 2026 18:31:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43a8e176-0496-11f1-b161-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770517885; x=1771122685; 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=PovCF2twN9QaANsWWfpMCOlO2V3/jbCVFjasb/NZtjY=;
        b=Jy7wi7oCYdOork/F3ftDBAXHZPFtkz1/XLl/QonVqklUsPppO3TOv35/qvqqN6PBb9
         uNYiJNnAu7VmQbpOii3gVb7iO+jC0IqpZVnBuhgdh1wdhqUaMU3NqW8lZgIbsvIrebv9
         GR9sHSrML92RNAbMzKhL91FzcxeOZ02hFitIvVDIyvLpYAkMk2rAjYQo/dgeCSakROir
         cVqYtg3A9LAJapq5y4ZXrMFBIkKZ3UMhX0sPVevf9hKq/QYJnpxkFX6GdXNfLTNcZKha
         Utcy1RTr/ktr/lBmrecC85idBBpyYhMm0eFBWESn5RAwIWBgnk76LQjsZX0uocIFh9X7
         Ig8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770517885; x=1771122685;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=PovCF2twN9QaANsWWfpMCOlO2V3/jbCVFjasb/NZtjY=;
        b=eSo3Fk1do3DAYY2SooTWsjdVmotvA6ggpVthM0vpMR2EKFhZBhbCoGXKaXFMnIsLIB
         E03O59CZUQknNzr3zvFwtmtqQJp0dRZMF7GhdLjwuKtFalxN7VqH4cCZ62r8u/i32Y07
         wvWegAraeM9qlABYTEiDXUV7vG0xmz9nD3QYoBQQhpUZ8QfxrUtoK0/X8INYZVkY78Yt
         ah0TThTS8dfrYLApaEoF5s5mXECqS+6r4+KWNMNAtXFBLhd89U9CtUrNot5d/Z9soxb7
         aicXe72/9qaiUuT/6T5Wu8LS/okppjHqYEQXew/FuUQT+sSM/vigiu+rI+vt1Yu5q+sO
         Ol+A==
X-Forwarded-Encrypted: i=1; AJvYcCWHvMR9pU/8TIWqpYyXR9NWWVKzzCeE27cUklQa3HL4WtUv8cuaMwojckBM6ifXFgkJGe5+6UFHxXU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxu9xlZXAcIeUObdqWOvJFO2rjx3FNbf9mO5pspWXEGto6dPC2R
	4CbJZz6RkgU0puLm656mkeJ+93aEM6WPJardXmgqgIId7iTKggpW2uh/
X-Gm-Gg: AZuq6aI9ifDj3TsSIsVFNd55UKO40K0C3pk5pLTsITYysxPZxqJ2STw7YzJIvkA/rRf
	uld48/II6+F2JFOgzar6Tp2lCJ+4+tmP+AvwX0XBKcMjadhfOEV5iiluH6UCbQitr/2ZuIML4C6
	LgZBs7eujfB8lxzzBGjqqGs7pwyPSNNavCrOYKXpH/ipOIW3+WEpzCbCVf8lhsUrCD+OWKKg4XT
	4ulGn5GXFqSBmSbl1oZ3XZKaPDN5sAq7RS5s8/7i+KVotqjxWI5EWgtlOzxoc44+ou2+Sm0Rwtd
	4Tdrxq+JpHxzwdDdWNxNMVpQPK0vstRJlkhBPac3xv+IZ0RMc1tglWhWekiAbLaNCCQ6YSYNPHZ
	9daahKlFJ/Jd+Ga31tVAV99gSxEg3byqf4cXslqv7YHVzUljHUemTw623z8/PFUHcRZHN7mkKxP
	Ruf1wsKKvJK4T4Qg8iE7gR8GnzE6bVfyTmFMLVcWUtlAysHnOR2iKQlieygflkKsaisrWHfTmXw
	38uoifI+WpRRbTiLQd3qwm8hXtEFXDcHbWAZRKs
X-Received: by 2002:a05:690c:b87:b0:794:8f0f:e8b4 with SMTP id 00721157ae682-7952ab5a4admr70887737b3.55.1770517884726;
        Sat, 07 Feb 2026 18:31:24 -0800 (PST)
Message-ID: <fbed640d-6a0a-40a6-a443-5a9947b7eda8@gmail.com>
Date: Sat, 7 Feb 2026 21:31:18 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com, jbeulich@suse.com, andrew.cooper3@citrix.com,
 jason.andryuk@amd.com, alejandro.garciavallejo@amd.com
References: <20260206210554.126443-1-stefano.stabellini@amd.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: <20260206210554.126443-1-stefano.stabellini@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------ff2IswLqbcPfzIXGl0xJh30R"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------ff2IswLqbcPfzIXGl0xJh30R
Content-Type: multipart/mixed; boundary="------------wqWINVx790Rm0KUkoXtv0Ghb";
 protected-headers="v1"
Message-ID: <fbed640d-6a0a-40a6-a443-5a9947b7eda8@gmail.com>
Date: Sat, 7 Feb 2026 21:31:18 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com, jbeulich@suse.com, andrew.cooper3@citrix.com,
 jason.andryuk@amd.com, alejandro.garciavallejo@amd.com
References: <20260206210554.126443-1-stefano.stabellini@amd.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: <20260206210554.126443-1-stefano.stabellini@amd.com>

--------------wqWINVx790Rm0KUkoXtv0Ghb
Content-Type: multipart/mixed; boundary="------------ri2vDAwU4hWXBxbozr8xIOrE"

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

On 2/6/26 16:05, Stefano Stabellini wrote:
> Introduce CONFIG_NESTED_VIRT (default y, requires EXPERT to disable)
> to allow nested virtualization support to be disabled at build time.
> This is useful for embedded or safety-focused deployments where
> nested virtualization is not needed, reducing code size and attack
> surface.
>=20
> When CONFIG_NESTED_VIRT=3Dn, the following source files are excluded:
> - arch/x86/hvm/nestedhvm.c
> - arch/x86/hvm/svm/nestedsvm.c
> - arch/x86/hvm/vmx/vvmx.c
> - arch/x86/mm/nested.c
> - arch/x86/mm/hap/nested_hap.c
> - arch/x86/mm/hap/nested_ept.c
>=20
> Add inline stubs where needed in headers.
>=20
> No functional change when CONFIG_NESTED_VIRT=3Dy.
>=20
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

Commit message is stale: the default is now N and the dependency on
EXPERT was removed.

Personally, I would add a dependency on UNSUPPORTED, since it is
known to not work well and should not be used.
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------ri2vDAwU4hWXBxbozr8xIOrE
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-----

--------------ri2vDAwU4hWXBxbozr8xIOrE--

--------------wqWINVx790Rm0KUkoXtv0Ghb--

--------------ff2IswLqbcPfzIXGl0xJh30R
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/sszaHOrMp8lMFAmmH9XYACgkQszaHOrMp
8lP4EQ/+MdruKz/dPrBzXe8Yi7JhPGEU1KGuPuT8rD3g5Hu9EGbn6m1Zl2AfGSd6
WMxrIdNbuYuBgm0R5Zk4uoEi1Q17UbBiIeK8hF33Ipe4OKGoAZzHTMm+vVI+3uzR
vfpMWTi9O9alTCpOXz8b2MQgKCj9VLAvJaYbe6qXNBfaa/Tz8o5u1dhwZZPhXbEG
wFDjpqHCXWz0x+b9Mu79LmwNt2ckpF/Zpve2obv2bICPkVzUsIFK3PJ/CRPxzzLc
uK/W8xQClLOxohdYEbEUEOIylLEwwe2oIaZmn1L9beYYUY6VkSyT7HGMGwSeVJ8o
+uvGOhBujXqGk9z3u6kprVC4Etk7+RqczkF4hnsML5IKPOxFdbvyX4DUHTvYVlle
V9j1mknnseZ4SrxVR2mMqChy8Vi6whL8JNnt2UovPcVMuxQfqhBLbw4q5xcMn7QQ
xrVNKxcI/+EJ9DcpYSe6y0pTPBzG4qUuJ0PkINeVysdAZEIZZU+DwqBAzwxnWv9J
SlADyxCH3mqMJ3eWEw/qZIedkrnTeeMZ9wWw0uLs8fZLpTu/3a+oFO4fW/4sb5n8
K/WChWp7hwyeCTpcw1fuHFqj/4zpYMSgY1Htd1kLfdOWjUfqnUcg5mPLTSmWVnl+
jm8tWDe6fXJqesbCo2C6YWV1G4hH18nGcmbP1CERFgET03rI1lk=
=yM3o
-----END PGP SIGNATURE-----

--------------ff2IswLqbcPfzIXGl0xJh30R--


From xen-devel-bounces@lists.xenproject.org Sun Feb 08 02:36:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 08 Feb 2026 02:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224592.1531368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1voufF-0007ka-GM; Sun, 08 Feb 2026 02:36:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224592.1531368; Sun, 08 Feb 2026 02: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 1voufF-0007kT-DP; Sun, 08 Feb 2026 02:36:45 +0000
Received: by outflank-mailman (input) for mailman id 1224592;
 Sun, 08 Feb 2026 02:36: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=y0cN=AM=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1voufE-0007kM-FM
 for xen-devel@lists.xenproject.org; Sun, 08 Feb 2026 02:36:44 +0000
Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com
 [2607:f8b0:4864:20::112b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 000bc4cc-0497-11f1-9ccf-f158ae23cfc8;
 Sun, 08 Feb 2026 03:36:41 +0100 (CET)
Received: by mail-yw1-x112b.google.com with SMTP id
 00721157ae682-79640a34aecso391157b3.3
 for <xen-devel@lists.xenproject.org>; Sat, 07 Feb 2026 18:36:41 -0800 (PST)
Received: from [10.138.34.110]
 (h69-131-216-128.cncrtn.broadband.dynamic.tds.net. [69.131.216.128])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-79529e45621sm60559777b3.0.2026.02.07.18.36.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sat, 07 Feb 2026 18:36:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 000bc4cc-0497-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770518201; x=1771123001; 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=Fws+4d6K+XO5o8Jr3h/3cZynn1bQjQ1dR6k9ePNUr3c=;
        b=DGFTS0B6WGyK7qrw/tXDqaE/Ebml30alTfsd2LXxhKJeuUEZF9LXPnh/0ALO1VLzds
         AX0DZsMl46M77RYRj44GtfkfljM6ER+0xmRsFyDojkQ1Qsy8CP5pK5i2ulPkuTUzyUKQ
         PvOrz+1k5a4N5RWGsNHLFZGpe+GseC8auPVlD56ZDDOU7hqm5kB4+AC5mCzRDpn6cZSw
         3xXACEfN+Ho/nI0b0E+c5Bmhwt/xVwWTcdNEpu1RrZp196h99lyriP7/31/EA290xNsN
         qtvTzeuvSDlmiHGXgKt7eyv3fppFBpb1gi+8VbIkOBIMPtN4IL//8oVSiuNcOHr1lfIt
         lGDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770518201; x=1771123001;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Fws+4d6K+XO5o8Jr3h/3cZynn1bQjQ1dR6k9ePNUr3c=;
        b=w3yRQMNcPVHM8Ezu4z3lZDRd2XR15CGpTn41iyGK1PBnpcZIcytzzuL5szCLONbI47
         vbdPoRS6fAsLHjKmgK9EkFTtIcU30HcLPw1zjtsYrnpUH/jAe98eNe8GrSF+wRHCHahi
         ukfW4xdxVRN+CyfhuMO+eB5TUQqVSA03JM7k4wfEVDPYgSWF5rn5zaGA20ENdXZQcAUo
         hK6pdY8qxA+FR+I740H0x2kQnS3lipstJmfn9lnPY2/CF+Py76C2j8zDp3l8F1K3/aL3
         LLvOhjnT35ieCUNoPQMm+U2Lne+7DWkmp+FKhBNJxFevPvOHMbf89AIZd90LZQu+1Io+
         qknw==
X-Forwarded-Encrypted: i=1; AJvYcCWPcsz9gS3vN65jc3jT9tbRWShjWwduW8iwOve/EMygMHbUTLUYVXPfWXz1R773QqW8cVo310CdYWo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPhlNs/aWUvEN2jXvcwGaasnh45jQBBfP/krFfWVoJG0Yopezh
	0VOf8nFCAYHFG9Nira8G3dfISiH36hiWYUOmMQ77biKYfFmkfG2bPSN2
X-Gm-Gg: AZuq6aI/HLvzGVj7puormA9WbzvCYSrW6mDct9XaVqurXiPnXLuKXBbhcEWF9GdcC5+
	9BHC2CE1ZiAaYSHtO4nbpOQ4LT66xeDTK1HNl7AmKsnnWQ/MN0OsAHv8R7Ul7HpyjiBp0zwIPp/
	WDn1ZDtQxwog11KGzwxghP/x4W6wzAHgArigeIwW0ZfTumr3d95HBN2vIpGJ+nma/q9AHsRwrHd
	brcBLDw4ZwNOevgN8Fn3HbCEmXyJdYp7o2jxabrMH8vV18DI97iVfckelvGvmj6P3a05px4i2uG
	auqc11eArisL5h73bP16k2W1Le1KTX9ipKtNgsK2gaY43tWoAi63Sj5hk9Ov+gs2jLZSLneQacU
	dfWzJmPt1eu6H/7JmYKm/c6K1m+6l6wPLdgG6kXB+J4v9MFspp8RC4xbZ3Yi3rozXlNpo0DuPA2
	w9V1W6tdMMGj10MCz63r6eLIhVgVGXL6OhDAmTBIwIAfRL64HLqmd8Wzrp1O/yqdsl9d0F6RkmC
	Wr/9O1TRJbVnk0nlzkw3LgRgjXMoA==
X-Received: by 2002:a05:690c:9b01:b0:794:b8c0:5a7c with SMTP id 00721157ae682-7952ab4407cmr73537387b3.48.1770518200558;
        Sat, 07 Feb 2026 18:36:40 -0800 (PST)
Message-ID: <13bee33c-43f7-490a-b1be-85e8cc5e0fdd@gmail.com>
Date: Sat, 7 Feb 2026 21:36:36 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
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>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.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: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------dR2BCafI04aJLLaFXzM9KCdg"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------dR2BCafI04aJLLaFXzM9KCdg
Content-Type: multipart/mixed; boundary="------------0cHNH2D3q4dpkolbvC5sZr5c";
 protected-headers="v1"
Message-ID: <13bee33c-43f7-490a-b1be-85e8cc5e0fdd@gmail.com>
Date: Sat, 7 Feb 2026 21:36:36 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
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>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.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: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>

--------------0cHNH2D3q4dpkolbvC5sZr5c
Content-Type: multipart/mixed; boundary="------------65NyWMNLE3h0WBhRmHfseTsz"

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

On 2/5/26 06:33, Bertrand Marquis wrote:
> Xen does not currently document how to build the hypervisor on macOS, a=
nd
> there is no Darwin configuration for selecting a Homebrew-based GNU
> toolchain. Native builds are not supported; the hypervisor must be
> cross-built with a GNU toolchain and GNU make/sed.
>=20
> Add a minimal Darwin.mk which selects the GNU tool definitions used by
> the macOS workflow and point to the build guide for required tools and
> setup. Document the Homebrew cross toolchain and GNU tools needed to
> build the hypervisor on macOS.
What is the use-case?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------65NyWMNLE3h0WBhRmHfseTsz
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-----

--------------65NyWMNLE3h0WBhRmHfseTsz--

--------------0cHNH2D3q4dpkolbvC5sZr5c--

--------------dR2BCafI04aJLLaFXzM9KCdg
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/sszaHOrMp8lMFAmmH9rQACgkQszaHOrMp
8lM3wxAAnUhJpUjsEsMY6Q1sv3HPqKTki6ljTgaLKGbK7xFcRwstP9GDTgfcG/YF
wJKAQ8f5uqhJIOIbMcQLA5DnYfr4VDTGjhYNumBWBDb+XN2tOV+E0j2pi2wJLIdA
vUHpkMZ2h94xkZuInZuwK8tqMhfvOhgjEmfAl+GiiKXpUyMMZPIZl+OBNyV5jcos
fM+0Y0ZlyHtq0mbsCGkhyBz4jeMCe6br05UiIH/Y2KtYPfm8419Eq4I5ftctDLkc
mE7p7PyoOMT58DzbnVk05P5AiLO/lXAynb0IG535AmXTwMWM6rU4099EqSimPLWO
V0+fiZtfrjYONUIg5bMMMcGN+XxQWboJidTXZGXDEntXORIHHdpIZLIg8+8iygcZ
xM3Wrf75gJ6Tel4GkCE0HHqs17rQjqsnJI2LGhf/SFa4HOhupKSH4KJ+qwf60H2F
Kg8wqgeSGxD3KoEN0QWSBm0bngbIgeqq28ckkHxZsg8ZkGhpAEH8qpFJFQIyFCim
pbmE1v2EYd2s5NwCALClQNYnSNwoG8c/bOHArokjooPWa4yMtwI7GVATgjId/w3d
6SC0aPWQpaVFK5U8Y96uy2QFNJxSYdTIFSWqicIgy9OoZEagG0dQgVdFUxxP9155
jazI2sQKyvTjBy23JJ110YAEKLfi9kn6upNYCV3dOB9+hQauiOc=
=Ggy+
-----END PGP SIGNATURE-----

--------------dR2BCafI04aJLLaFXzM9KCdg--


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 06:50:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 06:50:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224938.1531378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpL6K-0004Yc-UB; Mon, 09 Feb 2026 06:50:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224938.1531378; Mon, 09 Feb 2026 06:50: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 1vpL6K-0004YI-P0; Mon, 09 Feb 2026 06:50:28 +0000
Received: by outflank-mailman (input) for mailman id 1224938;
 Mon, 09 Feb 2026 06:50: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=DrmV=AN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vpL6J-0004YB-Rm
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 06:50: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 99f29c04-0583-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 07:50:21 +0100 (CET)
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 1403E3E6CB;
 Mon,  9 Feb 2026 06:50: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 DC20B3EA63;
 Mon,  9 Feb 2026 06:50: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 ZRCUNKqDiWnRCwAAD6G6ig
 (envelope-from <jgross@suse.com>); Mon, 09 Feb 2026 06:50: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: 99f29c04-0583-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770619820; 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=uxIup0MaVzd1A8EqzNcp+SXDu4RkLA1hB0nzbwvx01A=;
	b=Vae7kyOzMMBmqRJ8+bFsYYRnjjluA3VVsQNrETg9JIHbO5MsN5Xe8vGGiMOHsWK+eibsED
	ErUJ9Rwvk+DoePkxFQz3I4SySwIAK6sEDA5IN7d13KRCVJgYN8lJsAmD7Mh/lDI72t2T+5
	t8keCk/I5ZssUWOEwsi5iMQgCCuWr6c=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770619819; 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=uxIup0MaVzd1A8EqzNcp+SXDu4RkLA1hB0nzbwvx01A=;
	b=j7KdINpScrRloY8LTUoYyTW0M3hzzZIUbd2xdFpmLNN/zaeAY51PrYTpF3iGFw83uLQ56s
	/DkD23FKVYK/9w28CV3wa8WQnVKBTrupLCz4W42JCaARhmSO3BTLw8zFtIj8O5XaPopEty
	hQXnx2MRJtS5rQ9QSO0GkhVve9ORwjc=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	sstabellini@kernel.org
Subject: [GIT PULL] xen: branch for v7.0-rc1
Date: Mon,  9 Feb 2026 07:50:18 +0100
Message-ID: <20260209065018.74473-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-2.80 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	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)[suse.com:mid,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
X-Spam-Level: 

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc1-tag

xen: branch for v7.0-rc1

It contains the following patches:

- a simple fix for running as Xen PVH guest in 32-bit mode without PAE

- a small series fixing PV device handling for suspend/resume when
  running as a Xen guest

- a small series cleaning up workqueue usage

- a small series fixing the Xen balloon driver for PVH dom0

- a patch introducing the possibility to use hypercalls for console
  messages in unprivileged guests

- a patch enabling a Xen dom0 to use virtio devices in nested
  virtualization setups

- a simplification of the xen-mcelog driver


Thanks.

Juergen

 Documentation/admin-guide/kernel-parameters.txt |  5 +++++
 arch/x86/platform/pvh/head.S                    |  2 ++
 arch/x86/xen/enlighten.c                        |  2 +-
 drivers/tty/hvc/hvc_xen.c                       | 29 ++++++++++++++++++++-----
 drivers/xen/balloon.c                           | 26 ++++++++++++++++++----
 drivers/xen/events/events_base.c                |  6 ++---
 drivers/xen/grant-dma-ops.c                     |  3 ++-
 drivers/xen/mcelog.c                            |  4 +---
 drivers/xen/privcmd.c                           |  3 ++-
 drivers/xen/unpopulated-alloc.c                 |  3 +++
 drivers/xen/xenbus/xenbus.h                     |  6 ++---
 drivers/xen/xenbus/xenbus_probe.c               | 22 +++++++++----------
 drivers/xen/xenbus/xenbus_probe_frontend.c      | 18 +++++++--------
 include/xen/xen.h                               |  2 ++
 14 files changed, 89 insertions(+), 42 deletions(-)

Hou Wenlong (1):
      x86/xen/pvh: Enable PAE mode for 32-bit guest only when CONFIG_X86_PAE is set

Jason Andryuk (2):
      xenbus: Use .freeze/.thaw to handle xenbus devices
      xenbus: Rename helpers to freeze/thaw/restore

Marco Crivellari (2):
      xen/events: replace use of system_wq with system_percpu_wq
      xen: privcmd: WQ_PERCPU added to alloc_workqueue users

Roger Pau Monne (2):
      Partial revert "x86/xen: fix balloon target initialization for PVH dom0"
      xen/balloon: improve accuracy of initial balloon target for dom0

Stefano Stabellini (1):
      xen: introduce xen_console_io option

Teddy Astie (1):
      xen/virtio: Don't use grant-dma-ops when running as Dom0

Uros Bizjak (1):
      xen/mcelog: simplify MCE_GETCLEAR_FLAGS using xchg()


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 07:27:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 07:27:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224947.1531387 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpLg5-0000DD-Ek; Mon, 09 Feb 2026 07:27:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224947.1531387; Mon, 09 Feb 2026 07: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 1vpLg5-0000D6-C3; Mon, 09 Feb 2026 07:27:25 +0000
Received: by outflank-mailman (input) for mailman id 1224947;
 Mon, 09 Feb 2026 07:27: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpLg3-0000BX-SC
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 07:27:24 +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 c5263012-0588-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 08:27:21 +0100 (CET)
Received: from AS9PR06CA0582.eurprd06.prod.outlook.com (2603:10a6:20b:486::18)
 by DB3PR08MB9136.eurprd08.prod.outlook.com (2603:10a6:10:435::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Mon, 9 Feb
 2026 07:27:13 +0000
Received: from AM3PEPF00009BA0.eurprd04.prod.outlook.com
 (2603:10a6:20b:486:cafe::fc) by AS9PR06CA0582.outlook.office365.com
 (2603:10a6:20b:486::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.18 via Frontend Transport; Mon,
 9 Feb 2026 07:27:19 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF00009BA0.mail.protection.outlook.com (10.167.16.25) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 07:27:13 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 07:26:09 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 07:26: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: c5263012-0588-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=OyyTekr4r7jlgEsL5bmYXqfMuC0vi6uQbWBV7Z0GZIBhRT8c6ajxMUpTdnypCoty6dq5U6hhY7LxAIh/O7SXebzO9tpZY0B0/FvKiDVdDj7j4HjaPAeiHmCDpPM/uy0QHHLkxg/w3GnQ7pwGIKATSwgRK2mGr+CAMp8c3Kg8t1YFig1VQpPRrC0ZCl98cOGrBrl01MZ8JkGAKiTN7rgbsvOfzMwICQBMXZq/R9jgj4XXmX1anPA7ZOs/ykLFg6uWrXGT7Y2zPy3CH7MfdY88bW63dDn0g1zErIpovM2p3fijfj88+H+McHK6PZrWB5pFeoU0UJf8jMOYhS2TPsgQDA==
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=iUUTfMYYaBZ3xrrZiJBRATlMTMjWxXeVJnrs26n2EiQ=;
 b=SeLcLSwJAcRxdi2iGAnuRvpvsiymuxv9ETydj7LJyLIMYPxVesCThIAV33lcDnNcQQFA1gUgkCt81OJx47EtTXsHq/EVKA+QUt22N74NSjUyNSn1G24IB/txwcxifbXAWTL5SWgrGInVQ4KjsBQ05KP8nZ6XgQCiNHQP3JyMzaQuUkn4244M+aSF+4oNx4oyg7WAwoXMdUzz3mqsasCGjmTvwOWimbqskNj79qpKMIAves8lgXZTzD84fzqrNpT3hRxJIw7NhQzZsrb4yx7EtZ0s6GVYdsZ2v22twKSm9Ae3O738HuWwC1CwyFrHqR3ma3LhAlHic+nZfTinOSwfmw==
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=iUUTfMYYaBZ3xrrZiJBRATlMTMjWxXeVJnrs26n2EiQ=;
 b=OUOg8clW94WxM0AyGnvuWC4oKnPA3eIv3uEU4hR4dHgEXzOlcgewlYeTmdUi4E02TRTdtcLpYHadnsfWteEuDB5UagirP86ehIVXLV/fbPWYIaGbGRyPQoRFLbweev7bUkseFwDmzsOEuWxlplrYR60+w9T4b2h7hEkKQ0wWftU=
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=OrE75YSHnk+eaGUF9CCk6YxwQl4Y9YfHLJkPrrAE4qGtbmGSFA/AY5RIE1kKjfKt3h3gzFRqPPRXhYf5o1wv4+i7BqdumtwuKUGn+dzKk91Se+3DMMIBriS5AFGJUcMf2ZxrGzGzUOhufvGocOkr5/jAy1/u+e+dd+1hYRAHxgli2EmVRmbwTDoyBjUAJfcaTDceQtALGVBHJmNfyUZGYBAB+fYxNHAtFxthgsjS7g0rntIMyCPz3Un+1Uz24s7sx93iGqFLGS2DsXdYXqpem9jiD+5ufnXV4s0Pj+Y9HYJ+S8uXEkeEvopSYWzaX+xGjSb5IRgj+UW9GPWryCLCkw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iUUTfMYYaBZ3xrrZiJBRATlMTMjWxXeVJnrs26n2EiQ=;
 b=FviXsE0tWSWGNZBXW37Lk68RHN0nUlnjWyKu/ynanzoXk++7I6a5oBQDLF5wARGp+SSfd9l4LvuHDSD8z7g7JkPCd0pif44irBLSsjf4xjFR1MHd+BI5pbY3wrvVRBD+9QyhMAgxOYh83nh1XakwzClCM40CJ/cWktfawyF7ncLHeq5AtIx95xzUcZd3jEzI6cVd9cIMPNv+xRlMrOFLQt3nqKwgbdCZNlVtPYKZ/z3TGthGs1hhvEDea+G7RcYgdvPRi50zvDFlvvlIgmFrvCJsB+sh2iHc3Dgv+4zXpf204ztbvnZL5sfWUQBW8dpdRjRloeGPwzegf81qY9dwbA==
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=iUUTfMYYaBZ3xrrZiJBRATlMTMjWxXeVJnrs26n2EiQ=;
 b=OUOg8clW94WxM0AyGnvuWC4oKnPA3eIv3uEU4hR4dHgEXzOlcgewlYeTmdUi4E02TRTdtcLpYHadnsfWteEuDB5UagirP86ehIVXLV/fbPWYIaGbGRyPQoRFLbweev7bUkseFwDmzsOEuWxlplrYR60+w9T4b2h7hEkKQ0wWftU=
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>, Andrew
 Cooper <andrew.cooper3@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: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Topic: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Index: AQHclpNk83RtAc43+U+zvyNqPofiH7V4GlYAgAHjLgA=
Date: Mon, 9 Feb 2026 07:26:08 +0000
Message-ID: <6285DC05-0CE7-49B7-B394-34D0872FE551@arm.com>
References:
 <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <13bee33c-43f7-490a-b1be-85e8cc5e0fdd@gmail.com>
In-Reply-To: <13bee33c-43f7-490a-b1be-85e8cc5e0fdd@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAWPR08MB8982:EE_|AM3PEPF00009BA0:EE_|DB3PR08MB9136:EE_
X-MS-Office365-Filtering-Correlation-Id: c24d4632-7bcd-419e-85b9-08de67aca517
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|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?e0cXdmTBs6u+3DrAxCnH50or5UvIsis2Nw3cWmfgFQdnGY17DJTtRAmfzU?=
 =?iso-8859-1?Q?ChVHIbh952W0k0ghBWusp+hOaKEKYYQZPrc0L2RbQpCCOGOO3vgTJ/oZwG?=
 =?iso-8859-1?Q?e3aFq7qBHleS7JK7PMLsDp5taL5GtpZX3z/uYpUa7iMnJ4J4/e/1+hqqvj?=
 =?iso-8859-1?Q?tvA+2NxXi7OlXx5/wPC7T0tTZ9jkFpgM0P40mZ62TAy5E7eB3xJd5iIpJy?=
 =?iso-8859-1?Q?Ofai/DgK8qlgA5B7pv6Pfx7YYz46Ijn5pKBGaWIPleMPF5TWgMoYhOeAua?=
 =?iso-8859-1?Q?kdZYQsTzwaD3mPvik9Wbne6Oj+BFqN6x2/ixr7BgNYY5hXDYcXbFLoeuzg?=
 =?iso-8859-1?Q?apnCwsJtDJnWxE57cdU6YrQfy/GCoxctrLzATXvdL3iP9qlHvppWPr8uzW?=
 =?iso-8859-1?Q?1nXmQXU+akn+nfGELRGEDlYapw35XyM2KpCUlE+TTc/H+pLktdItosZE29?=
 =?iso-8859-1?Q?dflA7WhMYFrbr5DCySnjLn/fe3NNr+e6r5Tu47ZodY4suXUWsbFgdbm76Q?=
 =?iso-8859-1?Q?hWueX9/GsR2/ZzTeam2kNaPYb4gnyayX0J42Rd2jrFsI45PlF2/4zI31fG?=
 =?iso-8859-1?Q?u75qqehy2/fv/J5av0dkpNW1Jz5yMG8n8MhjnGlpdZNiHcNcdlcxwHN3O4?=
 =?iso-8859-1?Q?ddLm+4TOtC54xR1aUKFo4bIqAVzlxdNkHZk9krv/Gd37eqLZmNtosXgB+s?=
 =?iso-8859-1?Q?evDs4jVg9OvwhAUEYnngYQHymyPU2YxTcxSTXWWAAdObPr7I4F2bHXNsZq?=
 =?iso-8859-1?Q?qnHlK+u4M6hhMgsNSLUSK8J82gQJXVlxY87gzLfyZwd7YItaQw9xGu2r+3?=
 =?iso-8859-1?Q?aSUb1apQUCikrcQbnFoj5BPvGQam9RdFCotTywFTDlDlYcfW5q6WjAfYwM?=
 =?iso-8859-1?Q?OdjEWDnDliboNCB3KoLnJCCyK5tDoz510Mv1YmaojkzzwmIv5dLI7MlVli?=
 =?iso-8859-1?Q?dMcB2lCtfyhY+aHquaYAex4X200SPn9a1t/mINAZGA+KrWlWpB0CMqxD34?=
 =?iso-8859-1?Q?tklkmEnqOkrBWM4YM3l8xL0NVEGC8L3oqPg5Ganp1WSkaYRy5quuvEEYaW?=
 =?iso-8859-1?Q?7cguF7wik0GpfmDH7M9QdDVWVZxAkHMbHgnc0U+dG01RkiBqA1/CzGUDhG?=
 =?iso-8859-1?Q?jLdEhDLGG5qFXtsBt0S1BiUera9budNPKsIzj5iVTbcdWXFLUaOyZoMko3?=
 =?iso-8859-1?Q?/Q/7ZxvHl99c9zZj4TykglBbMYFBF2e0ptdVF6JZqAc91drBgx5OivLS2X?=
 =?iso-8859-1?Q?X2+2aVkSk5PQ9PRH25uWUoN9A1F7ZSjx4HyvZzBBchIRXLtqD0YLt+htBu?=
 =?iso-8859-1?Q?cA5CbTfA7hFyYlNX5oDnHbXE+hyTNNKDUk3jyj/LTViqDRpwa94249Lyvl?=
 =?iso-8859-1?Q?G2Pb2n6tUbvBH0Ygu7IIVK4AjWDrkI7q0AEYHEd6CalzSD/56pBtWKUFJy?=
 =?iso-8859-1?Q?CpfeNu6fefNYjtn6s/qNg1yHQgGTQARebRR+2WBB7lElgjv2p60QeYBhO7?=
 =?iso-8859-1?Q?mQWqSXDXVE9sAkjJriO2e6TiXIXGr8hpVaZAt//SyITe4Ktb1WnUvB6BH3?=
 =?iso-8859-1?Q?2d7gsqexEMS85ARbxVsxDVCaHzp9trdcZGRgcx2DDOvx+40F4JJoLkCcJH?=
 =?iso-8859-1?Q?c/KT7CLYkwWCE9wSNwVyVXlnXgHsiY78brVoJadaxE7yiF9z4mN9aLIj1N?=
 =?iso-8859-1?Q?oA1w6eHnkjbOBQBbVvY=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <4FAD67B52F7ADA48A46A1B47CFDE7E05@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB8982
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009BA0.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	9e30bcf7-5aaa-4776-47ca-08de67ac7e88
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|14060799003|35042699022|36860700013|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?k/UWOC5nAPSiyvt7Wa5b30oxE465nRGr+4Wwv5uIMfnuu68N/VJo8FkkuF?=
 =?iso-8859-1?Q?4+0xXEcMnUE36p8fy+BzNnYEjfDLPqB/5Tju61AbGxxsmIehLDR9r6csbd?=
 =?iso-8859-1?Q?3W1uUd4uKx16aqITsKKv139iIwDXCu4oyMaQ5JZKNMMqWLIl3f8txlwbfa?=
 =?iso-8859-1?Q?QnKL4nXjXTlkK5ULHxDP11OwKU/mEipqxGcMCHZ15fvFSLP5ySKZuKDLcf?=
 =?iso-8859-1?Q?HNVMnKbb+mUmO6R3n6/eIqFflApleqQrloTGF7mHylSLmW7r9isYnocVZP?=
 =?iso-8859-1?Q?/slNFN5FA2ePudKxeWPN2nen7vDkNmU0CRNIH/J484nlCuUHVpeZeTw4Qa?=
 =?iso-8859-1?Q?PEVBxuj6/PxmbApteQJ3fkXubVnY4RyiMQ9tTMTAW8jFtNgxw542+g3Ck9?=
 =?iso-8859-1?Q?6nHPnvKsemvREx9SAm4c3gEiJw5BW2tvKxo8wZUtH+PlY1Z9RDBpbdrhZY?=
 =?iso-8859-1?Q?yNrqlwu7h86cM4PB/QhdX4m+svgweBxpnnALJT7mc3oQ1KjcwJEYFfmzsa?=
 =?iso-8859-1?Q?uig0phSBEkPaIeZbRfrtpkKVxiyGCYAEIGBkXrFkCZtZM6mj+0GiKgDDQ/?=
 =?iso-8859-1?Q?PVwO90sG9ZKfpj6ZnDnzHV+VhjOhDEfK9Hm7LREsuKDmtPvQw2+8KjWqsy?=
 =?iso-8859-1?Q?iDpEfLdFZBq5SfvAYWLOz03bdsrPWw+P8twXpvp1auGuI/2BPjPeYnjdnh?=
 =?iso-8859-1?Q?29XNlTUEopzPyt+8ccAxiEcwIGt/UZmX6lSRJQ5tzHAxDYMlauynNsSmAc?=
 =?iso-8859-1?Q?LxCVWeS1QkUDLvR32brgrwBnEzJLwHZ6ERrWwpLK12cWFgWWNYBobHLcoL?=
 =?iso-8859-1?Q?WcI8KQlIZIDy6OHkTF64g4jMzPJFTS4o8c+X76ZfFVnZtCDfoRHfYeL/0Y?=
 =?iso-8859-1?Q?0a9rkVSKsgPH8rpw9+TBwdFhB89w+VEuxBIJN4Ng7X67YBdE4Kx+842sxK?=
 =?iso-8859-1?Q?wQNTCll14AXVq5R+79AryviTKI6x8jM7xSbzcukF7i3J/HDvuGjXWPC29w?=
 =?iso-8859-1?Q?zk6mByIZp5h8bpG8vvvIiNtakDwUnIOUTSKoKWc2R9DmW7ODfZWdslLJQq?=
 =?iso-8859-1?Q?AxGov7DlnU6bbMm/bS+SM1DCBmWM3ENkkomfOj5CWhDFb7AEcOr7Vi/LPn?=
 =?iso-8859-1?Q?jV+6PrKEWif798WMNMtlryM1UD3JekszMk5GMFgvoIiiwAfHUPsHbeL2aS?=
 =?iso-8859-1?Q?iVLLB3Zu2XSS/tMgdFDHlo25X7HbiUYnKMS8JEjqUYm5g1q5SgsLZbg5ub?=
 =?iso-8859-1?Q?CoHMymGHnQ41lRfxL42IakwxQiOG1HkBpYFHc2252gSUur4Y3ieqslKcnD?=
 =?iso-8859-1?Q?16+Ysp5PAp/r5rPsFPt+ltpPra50rrPLZsNT63YLAg8xiyaMbRQp6/IBxb?=
 =?iso-8859-1?Q?PHR4fSFoODphvU6/SaC7z3SBgZXSWOOzIw0sXI+RrX/09jFlCX1rZjDkTr?=
 =?iso-8859-1?Q?gkz9bPbzlA1OxjeamX6xcV/FlonZ5G5diPYu2czeOGQhHbTksJEN914dUJ?=
 =?iso-8859-1?Q?j9fwF025YBZV4bUfsynYjE8RYIUVJuzDyLhJnjR5XYeEnJXt0Xygp8p1gP?=
 =?iso-8859-1?Q?gXC2bv68Sqhq0xjhlpQhPM2fiTYFkzjkzCg4leOU9VXUUroyLJyB7zcCE3?=
 =?iso-8859-1?Q?1ugM+oUrn7z+nKnz/rVZjoOiO1RtIzl7gFM8bebxu80NZAqB8VleIMJKUi?=
 =?iso-8859-1?Q?BuTc4dpi/Ux7Bwp9SulffnYQtj4llx3gxaXonZQUnvt3PJUv7b+Ee6LhsJ?=
 =?iso-8859-1?Q?LS6w=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)(376014)(1800799024)(14060799003)(35042699022)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	HkKWNhIeJL8LNwihEIq42c5eQbjhfjLZPjp7n7zFnSR+Wu26M6XVIMqm9+VnDeMHfs7sbmwe4OR2C6KnuFQwxXhz2lsDus2m8L2Z7Ycejyp48708szMTN83uaWe2iIvbdXmvJADx6Z//Xi38PPNO67pNAMrLd9fGNVGdy5w+uSdTiNb0SL5nwRXJjS+9JzWaEbhFI34GCrK8LvMZId8RfNAUNdU0o1KT8/5lxmkHa95WskxMGHKYH/HAnNJTvhN9ZftWF9OMaiTb3TpHjAQQqeMSMET8z2UvURUVNj3y8tpTWLxVtR9YnNYQmOxHRKQTnfR9tUzDYi8tf3GAO9u5hnPXka7s6i4NcR6sqJc3qOqaG0eY/HG0KXux3MIKtKV9PjM6mHhBwXgrvHhjHGBdV9m/WhkADYG5mPkGVFwjJJwLIsDuI1EjaHG7WU7sisaf
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 07:27:13.4164
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c24d4632-7bcd-419e-85b9-08de67aca517
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:
	AM3PEPF00009BA0.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB9136

Hi Demi,

> On 8 Feb 2026, at 03:36, Demi Marie Obenour <demiobenour@gmail.com> wrote=
:
>=20
> On 2/5/26 06:33, Bertrand Marquis wrote:
>> Xen does not currently document how to build the hypervisor on macOS, an=
d
>> there is no Darwin configuration for selecting a Homebrew-based GNU
>> toolchain. Native builds are not supported; the hypervisor must be
>> cross-built with a GNU toolchain and GNU make/sed.
>>=20
>> Add a minimal Darwin.mk which selects the GNU tool definitions used by
>> the macOS workflow and point to the build guide for required tools and
>> setup. Document the Homebrew cross toolchain and GNU tools needed to
>> build the hypervisor on macOS.
> What is the use-case?

My main use case is development and testing on MacOS.
I can do a lot of stuff by only recompiling and testing the hypervisor with=
out
changing the rest of my test environment and being able to do it directly
on my mac is making things a lot faster and simpler.

I have been using this for a long time and someone asked me some weeks
ago if that was possible so i figured it would be a good idea to share.

Cheers
Bertrand

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




From xen-devel-bounces@lists.xenproject.org Mon Feb 09 07:28:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 07:28:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224951.1531398 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpLhR-0000j3-Ph; Mon, 09 Feb 2026 07:28:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224951.1531398; Mon, 09 Feb 2026 07:28: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 1vpLhR-0000iw-Mh; Mon, 09 Feb 2026 07:28:49 +0000
Received: by outflank-mailman (input) for mailman id 1224951;
 Mon, 09 Feb 2026 07:28: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=gD01=AN=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vpLhP-0000hw-Vz
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 07:28:48 +0000
Received: from mail-yx1-xb12f.google.com (mail-yx1-xb12f.google.com
 [2607:f8b0:4864:20::b12f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7667119-0588-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 08:28:45 +0100 (CET)
Received: by mail-yx1-xb12f.google.com with SMTP id
 956f58d0204a3-64ae222d87dso569011d50.2
 for <xen-devel@lists.xenproject.org>; Sun, 08 Feb 2026 23:28:45 -0800 (PST)
Received: from [10.138.34.110]
 (h69-131-216-128.cncrtn.broadband.dynamic.tds.net. [69.131.216.128])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-649f248c511sm9416624d50.8.2026.02.08.23.28.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 08 Feb 2026 23:28:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7667119-0588-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770622124; x=1771226924; 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=gMaZdlWoBGV1TqFrFLofLd55Rv9VuufAy5OteQ7RjM8=;
        b=aqdhuqhSbiMHjV+kXMa+3b0VLo58XB+avhKip4m30LPoqCtBs/pXm46Ij6+5kb99/K
         lewYSr3xE0zsIvxB5QBEPrZxZJwy6UeEnZvp58fgGDDt86cW1xGTbkiaqrvaZ2L4aBo/
         xa9ilNGmsyc05stfU3YX410AZis3Hi+fBAEzc7OqBmA1IxTmqstkmHl/6iIlM1SDNeDw
         MV8tHAWTsE+Sb/imbdlldM0nDmXPk6MH8wBSCC9oCtmOotmKI1tErcHvB6ccFbuqQBSO
         ljW1U735xZZBd1JfYpGz0AY7ONhnuZNYeh9xEu1o8fI8toeeE1OLo2rfTwtyJ16kvmof
         6hmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770622124; x=1771226924;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=gMaZdlWoBGV1TqFrFLofLd55Rv9VuufAy5OteQ7RjM8=;
        b=dnspHjnlAPiMibJY4/sG4ACPHgVixX/mKYhJ5W3RSRdkaiHAFPlHUz/NyxGANzPbwA
         I82BMVuYzkeRqQADxt72Idj9Q5O40T+mw67wOdSL6qiVje02v3g4YqEY27+ut93OEpYR
         D0hl7OBxltQ8ne+svtvFRY3dbZ3PLY3ttDQohsK+tDKerAX4xgvLwwt44YcbJ8Z0j1H8
         5mMVS5h5Kwqj32o8XZ2bokVmWLukp9gu5Y3Ymh1gFk7LxhEnmR1www6yTwuTbUUpKQIx
         JpHf5YdEeZuvoZP0d+OJO8OEqViCopwD5XIVWlQuLuhYf8C3EJv48K/ZxMz9x0T0Y9EM
         Q9Tw==
X-Gm-Message-State: AOJu0YxO+MsbK7WAJr/W1NeWGVzQhF/kNOi2neYoD7xmzhntQm612RdQ
	EHSIWI0WK/vdcfW+mSbmckzZVPTxldAXHxz2XxPFddKllrqgr2ZOREb3
X-Gm-Gg: AZuq6aJbj1xrchJDeV5VHUL6lcv25/09C5su+tedFabGAqQ2n09bUelUyJXtJnRvzj2
	eP7790r7ryaSAPpTN+bV/hrqXAnOkpWRdrL5Z9ORF3VJI3Pg9T2eo01VtXIMfzISXi/0zkhtMo9
	eMBxw/kjIRfgdg6+nIbhI+lP3wpVU21sb6FirV5hffS5har7hGhMJ0Wg9FKfqZF5C3BR/wXWo9f
	dDFmqF3STQaXbMeVTq/R/CA220P4z14Pmc56hcEnXFKy9LL1Vg6TKRceEEnkJxP+j+XzWAFsD8F
	pZ3QVeDcNK8I/TlAAueQnJfG+xCTiYnKOczF43GEZhKcUUAVlZmcnBkrYPArfk4IQ++tsBzYtWW
	11wIG5KAsKcS/TNjG4FI0bfs+BTZ9xEgBSLl/M2gncC63fyDB/DXnndF0kMRqvbKWKavjqfn0fF
	U3Txj/hekSe0qVNZaEQINNr8w/S62EDrHPs3G/+bGref4aqdARM29IRWUk9C2LeCjKSp+BJJICH
	iic1zkLVpxZEHkNjbjiuOeVsABQBg==
X-Received: by 2002:a53:c90d:0:b0:649:b6b1:84aa with SMTP id 956f58d0204a3-649f217ce1bmr7244460d50.78.1770622124137;
        Sun, 08 Feb 2026 23:28:44 -0800 (PST)
Message-ID: <44ecfc7b-a8dc-4e5f-a084-a63caabf9e91@gmail.com>
Date: Mon, 9 Feb 2026 02:28:31 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
To: Bertrand Marquis <Bertrand.Marquis@arm.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?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <13bee33c-43f7-490a-b1be-85e8cc5e0fdd@gmail.com>
 <6285DC05-0CE7-49B7-B394-34D0872FE551@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: <6285DC05-0CE7-49B7-B394-34D0872FE551@arm.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------PJtPByOG0wKwf9vlwUyCpFhH"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------PJtPByOG0wKwf9vlwUyCpFhH
Content-Type: multipart/mixed; boundary="------------SMuuU5IrXHXB1NGdSNtpcUQ1";
 protected-headers="v1"
Message-ID: <44ecfc7b-a8dc-4e5f-a084-a63caabf9e91@gmail.com>
Date: Mon, 9 Feb 2026 02:28:31 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
To: Bertrand Marquis <Bertrand.Marquis@arm.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?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <13bee33c-43f7-490a-b1be-85e8cc5e0fdd@gmail.com>
 <6285DC05-0CE7-49B7-B394-34D0872FE551@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: <6285DC05-0CE7-49B7-B394-34D0872FE551@arm.com>

--------------SMuuU5IrXHXB1NGdSNtpcUQ1
Content-Type: multipart/mixed; boundary="------------ZNa6ElHYwb6P1HD0Rov3pdDG"

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

On 2/9/26 02:26, Bertrand Marquis wrote:
> Hi Demi,
>=20
>> On 8 Feb 2026, at 03:36, Demi Marie Obenour <demiobenour@gmail.com> wr=
ote:
>>
>> On 2/5/26 06:33, Bertrand Marquis wrote:
>>> Xen does not currently document how to build the hypervisor on macOS,=
 and
>>> there is no Darwin configuration for selecting a Homebrew-based GNU
>>> toolchain. Native builds are not supported; the hypervisor must be
>>> cross-built with a GNU toolchain and GNU make/sed.
>>>
>>> Add a minimal Darwin.mk which selects the GNU tool definitions used b=
y
>>> the macOS workflow and point to the build guide for required tools an=
d
>>> setup. Document the Homebrew cross toolchain and GNU tools needed to
>>> build the hypervisor on macOS.
>> What is the use-case?
>=20
> My main use case is development and testing on MacOS.
> I can do a lot of stuff by only recompiling and testing the hypervisor =
without
> changing the rest of my test environment and being able to do it direct=
ly
> on my mac is making things a lot faster and simpler.
>=20
> I have been using this for a long time and someone asked me some weeks
> ago if that was possible so i figured it would be a good idea to share.=

>=20
> Cheers
> Bertrand

How are you testing?  QEMU TCG?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------ZNa6ElHYwb6P1HD0Rov3pdDG
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-----

--------------ZNa6ElHYwb6P1HD0Rov3pdDG--

--------------SMuuU5IrXHXB1NGdSNtpcUQ1--

--------------PJtPByOG0wKwf9vlwUyCpFhH
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/sszaHOrMp8lMFAmmJjKAACgkQszaHOrMp
8lPfkRAApFIDYL0ZDZGQUuWlOt7qbQI4rWYLF0ltEg1GoyZIeunnmoVgQJP7e06b
4u4YhOmx7chULFfSl6VubeM2RVHSX+ZWW5OFkUsCRDKdyKgJE3mbO9o8EP22z095
0oCbJabt7+aEvfptb17b4INbmtEuOHnwRd9YDC3Pbmpo6qgGcPDVTjjdHZBar+8m
wuIjVpFFAMwsz27xThVl/+RhR0bZ4qiyXn5RZwG8DGei8KBwZypcQJjCwUQTezzA
SJftgbDsF60U2ZId4CmSmL1s4Pim0fzbXxrSXNBcs+yl1FDAQfF5Un8H9mwRmMXl
1bvSofID20VISuSpN7/S7BA+vY+Ri5xrN9UxyDDKadnsDC81N1DdRc/5Cop//w4h
TFXEMD+bkM2vuRQTlbBnzdbPoCmIgwJsZj6YwTaOA2pDxVU6R+6xcI0O+8Q2Vfcf
fS3AXPh1FLh0amayOcYLDvnkQXo7BPUBu7TWZR2uLnHYoB8KbxVldr44HVQeM2ti
N/QMmXn6BSQvO8s4nOzG69obqk6VV9gLBP0W5BBxOUJfPTX0rNKXZ7Jm/IJ7haVb
036XrZnN5/p42a6v+QVmsqM2g0GkC+2nH+cahGojsB78Gp4h74M6zgcWf/3Ouiq+
OG+toooDOl5aHavNJ+KsDXAb3pS0hWNYiIoTFddxAg5AKK+QryE=
=kZ1q
-----END PGP SIGNATURE-----

--------------PJtPByOG0wKwf9vlwUyCpFhH--


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 07:30:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 07:30:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224959.1531408 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpLir-0002F6-8Y; Mon, 09 Feb 2026 07:30:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224959.1531408; Mon, 09 Feb 2026 07: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 1vpLir-0002Ez-52; Mon, 09 Feb 2026 07:30:17 +0000
Received: by outflank-mailman (input) for mailman id 1224959;
 Mon, 09 Feb 2026 07:30: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=DrmV=AN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vpLip-0002Er-5l
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 07:30:15 +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 2bbadcd6-0589-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 08:30:12 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-658f1fde4bfso7936891a12.1
 for <xen-devel@lists.xenproject.org>; Sun, 08 Feb 2026 23:30:12 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8eda74972esm352882366b.8.2026.02.08.23.30.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 08 Feb 2026 23:30:11 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bbadcd6-0589-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770622212; x=1771227012; 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=j9DYld0Uy2UOWEXBoqFW6AHlxUvtXWpFOXPJCePl8EU=;
        b=QBek1P17atBKkOw7AjnvQ30Bum+7zqVUCZxCXFlTvf5inFD6R5eMqD4oQCOJsyhscb
         Izh7HUheics/nRi7y67liIKrrWUwFMgcfuE6faMCKMxDvtdgoZsoaG8mj71eNUiYnmoZ
         3OALVsSyWrw8P5mUghHQajSzQZwsUhbwzp/wqay14BMc+zIVJFvChEioC3pDotoNv4XW
         2I8aHlDTErHM30fMpax/++G/nZ9YJxSzKxgh2agy8JDSa7O1dPlES1vxs3tdceD1r+/i
         PHdzni0Bp/aBBBSxxo27yMqaX1MViwX2lZQiU7gyeIb9x4OCpwONrfz7Mpj78asNBQKW
         e/Ew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770622212; x=1771227012;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=j9DYld0Uy2UOWEXBoqFW6AHlxUvtXWpFOXPJCePl8EU=;
        b=nnybMJ+plWF/WIj0D4lJDs+1HZxFHUChrXMsCHH5ppJRh7nJ69GrfCuOTKT0JZp1OL
         OFmCTwWTZ3krtsBVCoEXWpbnfZe4JITwgsAThZUOCB0SNpFhyXVi4rnyeKIVnDpaxn5W
         dsxytPdU3aFgO6zKLMVGuDkUTQZC1Fa4owHA69SPGLxu7owJYDUeVeNGmihAJ8mY1RVm
         +M7W1XKWPHOPr82KG1P8A9Ucy6w8RvE0+IlmKP3lPzfhFGNN9o6xF61PU3d/8EtV+5i0
         JzSCHiVhjNPy5m+pALwp/AKlbvQZBTiNyBz16FsRZX4FPFtZcTAGxzZgOpvWpODb9ERn
         8xYQ==
X-Forwarded-Encrypted: i=1; AJvYcCUZDLQ9d6/MswIfDE0v/VjhKf8sBG9NIh1h+BPnt1g7ikot001T4gOouAn6pH+j3J9rx9dLcUnk8bY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw4qo0MWGOCxBnNQPSUurRi27VNq3ShplpsQr0ThXgu6zuz4qtw
	+HQKpM23sjOv+l4EDa93urgbTz3Rp1aEO6MPC2VBB4irWTPzQCTREeddu1xmw0kt0Jo=
X-Gm-Gg: AZuq6aJXc1aZipY3fORULRnlRN+pFz3JmUK4Jw6gIJSRedXZpQ7lcZmhEwC18/0rsZL
	In/tuMWbzy/P0AxfOtKsivTGlHWqpj/HCRPTx3E42Kz3NU0peIKBkE6IzRy/M9iiEIJ+Lhs9NnP
	Lqv5ObQnvT+W90IIONRwMgdHM+lycdug8+GClQVtQ7ACqyLB40Ab5kNdMCwuDj121S6QsyqlX1D
	ftxOMreqMJ+yX1vfLX3RIKyEIxM74U2uqYHhjtVbJOCEncvH+8YORQi4TJ1IsOFbFVnyfs1Gyp3
	3FxlB4jTDrtuqdRIoRPThrOhcsEtgG6xJexEpv8h9XpyiIu9AxAEu+t3MCspAGNHjjrjB2kKU7V
	gZunjhufj4s6ffY3dVZntzKrTm5JGoDgR2Vp9IRJVgNhI7yq839M2c3nJs23NDkCSUl+WQ9iDlZ
	mV3YE2t5QCdJS6nQczcwQ38ZJt4IwnOD4xLK7KFZ1Oq2HOzi71PiLVpi7yNCee4kymIo80Ohq5k
	anG6S7zsCFoqhyGevBuHiC6TzP/gY8CrRfMDQ==
X-Received: by 2002:a17:907:a07:b0:b87:1ffc:bfc0 with SMTP id a640c23a62f3a-b8edb9aeaeamr659093366b.20.1770622212170;
        Sun, 08 Feb 2026 23:30:12 -0800 (PST)
Message-ID: <bcbccd13-880d-43e5-be20-b462546e1dca@suse.com>
Date: Mon, 9 Feb 2026 08:30:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/xenbus: better handle backend crash
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: linux-kernel@vger.kernel.org, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Peng Jiang <jiang.peng9@zte.com.cn>, Qiu-ji Chen <chenqiuji666@gmail.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "moderated list:XEN HYPERVISOR INTERFACE" <xen-devel@lists.xenproject.org>
References: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
 <e6ab32d7-b1eb-428b-95e8-a90f7b3be39c@suse.com>
 <261c3ced-7f40-4c2f-93da-0e020f9bcf3a@suse.com>
 <e1060ba2-7985-4e80-9d84-fb738758e3b3@suse.com> <aYYdgXMKnMCfXob7@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: <aYYdgXMKnMCfXob7@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------C4JZ8hebH6MhCvpPobfGKOrT"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------C4JZ8hebH6MhCvpPobfGKOrT
Content-Type: multipart/mixed; boundary="------------hVQRiz2GlU9dM0IIIra60Nfu";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: linux-kernel@vger.kernel.org, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Peng Jiang <jiang.peng9@zte.com.cn>, Qiu-ji Chen <chenqiuji666@gmail.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "moderated list:XEN HYPERVISOR INTERFACE" <xen-devel@lists.xenproject.org>
Message-ID: <bcbccd13-880d-43e5-be20-b462546e1dca@suse.com>
Subject: Re: [PATCH] xen/xenbus: better handle backend crash
References: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
 <e6ab32d7-b1eb-428b-95e8-a90f7b3be39c@suse.com>
 <261c3ced-7f40-4c2f-93da-0e020f9bcf3a@suse.com>
 <e1060ba2-7985-4e80-9d84-fb738758e3b3@suse.com> <aYYdgXMKnMCfXob7@mail-itl>
In-Reply-To: <aYYdgXMKnMCfXob7@mail-itl>

--------------hVQRiz2GlU9dM0IIIra60Nfu
Content-Type: multipart/mixed; boundary="------------WhEgGKVIhCkkgcZTuxwpCjOb"

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

T24gMDYuMDIuMjYgMTc6NTcsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToN
Cj4gT24gVGh1LCBKYW4gMjksIDIwMjYgYXQgMDg6MDI6MzVBTSArMDEwMCwgSsO8cmdlbiBH
cm/DnyB3cm90ZToNCj4+IE9uIDI2LjAxLjI2IDA4OjA4LCBKw7xyZ2VuIEdyb8OfIHdyb3Rl
Og0KPj4+IE9uIDE3LjExLjI1IDEyOjA2LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4+PiBP
biAwMi4xMS4yNSAwNDoyMCwgTWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpIHdyb3RlOg0K
Pj4+Pj4gV2hlbiB0aGUgYmFja2VuZCBkb21haW4gY3Jhc2hlcywgY29vcmRpbmF0ZWQgZGV2
aWNlIGNsZWFudXAgaXMgbm90DQo+Pj4+PiBwb3NzaWJsZSAoYXMgaXQgaW52b2x2ZXMgd2Fp
dGluZyBmb3IgdGhlIGJhY2tlbmQgc3RhdGUgY2hhbmdlKS4gSW4gdGhhdA0KPj4+Pj4gY2Fz
ZSwgdG9vbHN0YWNrIGZvcmNlZnVsbHkgcmVtb3ZlcyBmcm9udGVuZCB4ZW5zdG9yZSBlbnRy
aWVzLg0KPj4+Pj4geGVuYnVzX2Rldl9jaGFuZ2VkKCkgaGFuZGxlcyB0aGlzIGNhc2UsIGFu
ZCB0cmlnZ2VycyBkZXZpY2UgY2xlYW51cC4NCj4+Pj4+IEl0J3MgcG9zc2libGUgdGhhdCB0
b29sc3RhY2sgbWFuYWdlcyB0byBjb25uZWN0IG5ldyBkZXZpY2UgaW4gdGhhdA0KPj4+Pj4g
cGxhY2UsIGJlZm9yZSB4ZW5idXNfZGV2X2NoYW5nZWQoKSBub3RpY2VzIHRoZSBvbGQgb25l
IGlzIG1pc3NpbmcuIElmDQo+Pj4+PiB0aGF0IGhhcHBlbnMsIG5ldyBvbmUgd29uJ3QgYmUg
cHJvYmVkIGFuZCB3aWxsIGZvcmV2ZXIgcmVtYWluIGluDQo+Pj4+PiBYZW5idXNTdGF0ZUlu
aXRpYWxpc2luZy4NCj4+Pj4+DQo+Pj4+PiBGaXggdGhpcyBieSBjaGVja2luZyBiYWNrZW5k
LWlkIGFuZCBpZiBpdCBjaGFuZ2VzLCBjb25zaWRlciBpdA0KPj4+Pj4gdW5wbHVnK3BsdWcg
b3BlcmF0aW9uLiBJdCdzIGltcG9ydGFudCB0aGF0IGNsZWFudXAgb24gc3VjaCB1bnBsdWcN
Cj4+Pj4+IGRvZXNuJ3QgbW9kaWZ5IHhlbnN0b3JlIGVudHJpZXMgKGVzcGVjaWFsbHkgdGhl
ICJzdGF0ZSIga2V5KSBhcyBpdA0KPj4+Pj4gYmVsb25nIHRvIHRoZSBuZXcgZGV2aWNlIHRv
IGJlIHByb2JlZCAtIGNoYW5naW5nIGl0IHdvdWxkIGRlcmFpbA0KPj4+Pj4gZXN0YWJsaXNo
aW5nIGNvbm5lY3Rpb24gdG8gdGhlIG5ldyBiYWNrZW5kIChtb3N0IGxpa2VseSwgY2xvc2lu
ZyB0aGUNCj4+Pj4+IGRldmljZSBiZWZvcmUgaXQgd2FzIGV2ZW4gY29ubmVjdGVkKS4gSGFu
ZGxlIHRoaXMgY2FzZSBieSBzZXR0aW5nIG5ldw0KPj4+Pj4geGVuYnVzX2RldmljZS0+dmFu
aXNoZWQgZmxhZyB0byB0cnVlLCBhbmQgY2hlY2sgaXQgYmVmb3JlIGNoYW5naW5nIHN0YXRl
DQo+Pj4+PiBlbnRyeS4NCj4+Pj4+DQo+Pj4+PiBBbmQgZXZlbiBpZiB4ZW5idXNfZGV2X2No
YW5nZWQoKSBjb3JyZWN0bHkgZGV0ZWN0cyB0aGUgZGV2aWNlIHdhcw0KPj4+Pj4gZm9yY2Vm
dWxseSByZW1vdmVkLCB0aGUgY2xlYW51cCBoYW5kbGluZyBpcyBzdGlsbCByYWN5LiBTaW5j
ZSB0aGlzIHdob2xlDQo+Pj4+PiBoYW5kbGluZyBkb2Vzbid0IGhhcHBlbmQgaW4gYSBzaW5n
bGUgeGVuc3RvcmUgdHJhbnNhY3Rpb24sIGl0J3MgcG9zc2libGUNCj4+Pj4+IHRoYXQgdG9v
bHN0YWNrIG1pZ2h0IHB1dCBhIG5ldyBkZXZpY2UgdGhlcmUgYWxyZWFkeS4gQXZvaWQgcmUt
Y3JlYXRpbmcNCj4+Pj4+IHRoZSBzdGF0ZSBrZXkgKHdoaWNoIGluIHRoZSBjYXNlIG9mIGxv
b3NpbmcgdGhlIHJhY2Ugd291bGQgYWN0dWFsbHkNCj4+Pj4+IGNsb3NlIG5ld2x5IGF0dGFj
aGVkIGRldmljZSkuDQo+Pj4+Pg0KPj4+Pj4gVGhlIHByb2JsZW0gZG9lcyBub3QgYXBwbHkg
dG8gZnJvbnRlbmQgZG9tYWluIGNyYXNoLCBhcyB0aGlzIGNhc2UNCj4+Pj4+IGludm9sdmVz
IGNvb3JkaW5hdGVkIGNsZWFudXAuDQo+Pj4+Pg0KPj4+Pj4gUHJvYmxlbSBvcmlnaW5hbGx5
IHJlcG9ydGVkIGF0DQo+Pj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwv
YU9adml2eVo5WWhWV0RMTkBtYWlsLWl0bC9ULyN0LA0KPj4+Pj4gaW5jbHVkaW5nIHJlcHJv
ZHVjdGlvbiBzdGVwcy4NCj4+Pj4+DQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBNYXJlayBNYXJj
enlrb3dza2ktR8OzcmVja2kgPG1hcm1hcmVrQGludmlzaWJsZXRoaW5nc2xhYi5jb20+DQo+
Pj4+DQo+Pj4+IFNvcnJ5IEkgZGlkbid0IGdldCBlYXJsaWVyIHRvIHRoaXMuDQo+Pj4+DQo+
Pj4+IE15IG1haW4gcHJvYmxlbSB3aXRoIHRoaXMgcGF0Y2ggaXMgdGhhdCBpdCBpcyBiYXNp
Y2FsbHkganVzdCBwYXBlcmluZyBvdmVyDQo+Pj4+IGEgbW9yZSBnZW5lcmFsIHByb2JsZW0u
DQo+Pj4+DQo+Pj4+IFlvdSBhcmUganVzdCBtYWtpbmcgdGhlIHByb2JsZW0gbXVjaCBtb3Jl
IGltcHJvYmFibGUsIGJ1dCBub3QgaW1wb3NzaWJsZSB0bw0KPj4+PiBvY2N1ciBhZ2Fpbi4g
SW4gY2FzZSB0aGUgbmV3IGRyaXZlciBkb21haW4gaGFzIHRoZSBzYW1lIGRvbWlkIGFzIHRo
ZSBvbGQgb25lDQo+Pj4+IHlvdSBjYW4gc3RpbGwgaGF2ZSB0aGUgc2FtZSByYWNlLg0KPj4+
Pg0KPj4+PiBUaGUgY2xlYW4gd2F5IHRvIGhhbmRsZSB0aGF0IHdvdWxkIGJlIHRvIGFkZCBh
IHVuaXF1ZSBJZCBpbiBYZW5zdG9yZSB0byBlYWNoDQo+Pj4+IGRldmljZSBvbiB0aGUgYmFj
a2VuZCBzaWRlLCB3aGljaCBjYW4gYmUgdGVzdGVkIG9uIHRoZSBmcm9udGVuZCBzaWRlIHRv
DQo+Pj4+IG1hdGNoLiBJbiBjYXNlIGl0IGRvZXNuJ3QgbWF0Y2gsIGFuIG9sZCBkZXZpY2Ug
d2l0aCB0aGUgc2FtZSBraW5kIGFuZCBkZXZpZA0KPj4+PiBjYW4gYmUgY2xlYW5lZCB1cC4N
Cj4+Pj4NCj4+Pj4gVGhlIHVuaXF1ZSBJZCB3b3VsZCBvYnZpb3VzbHkgbmVlZCB0byBiZSBz
ZXQgYnkgdGhlIFhlbiB0b29scyBpbnNpZGUgdGhlDQo+Pj4+IHRyYW5zYWN0aW9uIHdyaXRp
bmcgdGhlIGluaXRpYWwgYmFja2VuZCBYZW5zdG9yZSBub2RlcywgYXMgZG9pbmcgdGhhdCBm
cm9tDQo+Pj4+IHRoZSBiYWNrZW5kIHdvdWxkIGFkZCBhbm90aGVyIHBvdGVudGlhbCBhbWJp
Z3VpdHkgYnkgdGhlIGRyaXZlciBkb21haW4NCj4+Pj4gY2hvb3NpbmcgdGhlIHNhbWUgdW5p
cXVlIGlkIGFzIHRoZSBwcmV2aW91cyBvbmUgZGlkLg0KPj4+Pg0KPj4+PiBUaGUgcXVlc3Rp
b24gaXMgd2hldGhlciBzb21ldGhpbmcgbGlrZSB5b3VyIHBhdGNoIHNob3VsZCBiZSB1c2Vk
IGFzIGENCj4+Pj4gZmFsbGJhY2sgaW4gY2FzZSB0aGVyZSBpcyBubyB1bmlxdWUgSWQgb24g
dGhlIGJhY2tlbmQgc2lkZSBvZiB0aGUgZGV2aWNlDQo+Pj4+IGR1ZSB0byBhIHRvbyBvbGQg
WGVuIHZlcnNpb24uDQo+Pj4NCj4+PiBJIHRoaW5rIEkgaGF2ZSBmb3VuZCBhIHNvbHV0aW9u
IHdoaWNoIGlzIG11Y2ggbW9yZSBzaW1wbGUsIGFzIGl0IGRvZXNuJ3QNCj4+PiBuZWVkIGFu
eSBjaGFuZ2Ugb2YgdGhlIHByb3RvY29sIG9yIGFueSBhZGRpdGlvbiBvZiBuZXcgaWRlbnRp
ZmllcnMuDQo+Pj4NCj4+PiBXaGVuIGNyZWF0aW5nIGEgbmV3IFBWIGRldmljZSwgWGVuIHRv
b2xzIHdpbGwgYWx3YXlzIHdyaXRlIGFsbCBnZW5lcmljDQo+Pj4gZnJvbnRlbmQtIGFuZCBi
YWNrZW5kLW5vZGVzLiBUaGlzIGluY2x1ZGVzIHRoZSBmcm9udGVuZCBzdGF0ZSwgd2hpY2gg
aXMNCj4+PiBpbml0aWFsaXplZCBhcyBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4NCj4+Pg0K
Pj4+IFRoZSBMaW51eCBrZXJuZWwncyB4ZW5idXMgZHJpdmVyIGlzIGFscmVhZHkgc3Rvcmlu
ZyB0aGUgbGFzdCBrbm93biBzdGF0ZQ0KPj4+IG9mIGEgeGVuYnVzIGRldmljZSBpbiBzdHJ1
Y3QgeGVuYnVzX2RldmljZS4gV2hlbiBjaGFuZ2luZyB0aGUgc3RhdGUsIHRoZQ0KPj4+IHhl
bmJ1cyBkcml2ZXIgaXMgZXZlbiByZWFkaW5nIHRoZSBzdGF0ZSBmcm9tIFhlbnN0b3JlIChl
dmVuIGlmIG9ubHkgZm9yDQo+Pj4gbWFraW5nIHN1cmUgdGhlIHBhdGggaXMgc3RpbGwgZXhp
c3RpbmcpLiBTbyBhbGwgd2hhdCBpcyBuZWVkZWQgaXMgdG8gY2hlY2ssDQo+Pj4gd2hldGhl
ciB0aGUgcmVhZCBjdXJyZW50IHN0YXRlIGlzIG1hdGNoaW5nIHRoZSBsb2NhbGx5IHNhdmVk
IHN0YXRlLiBJZiBpdA0KPj4+IGlzIG5vdCBtYXRjaGluZyBBTkQgdGhlIHJlYWQgc3RhdGUg
aXMgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcsIHlvdSBjYW4gYmUNCj4+PiBzdXJlIHRoYXQg
dGhlIGJhY2tlbmQgaGFzIGJlZW4gcmVwbGFjZWQuDQo+Pj4NCj4+PiBIYW5kbGluZyB0aGlz
IHdpbGwgbmVlZCB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIHhlbmJ1c19zd2l0Y2hf
c3RhdGUoKQ0KPj4+IGluIGFsbCByZWxhdGVkIGRyaXZlcnMsIGJ1dCB0aGlzIGlzIGp1c3Qg
YSBtb3JlIG9yIGxlc3MgbWVjaGFuaWNhbCBjaGFuZ2UuDQo+Pj4NCj4+PiBJJ2xsIHByZXBh
cmUgYSBwYXRjaCBzZXJpZXMgZm9yIHRoYXQuDQo+Pg0KPj4gSW4gdGhlIGVuZCB0aGUgcmVz
dWx0IGlzIG1vcmUgbGlrZSB5b3VyIHBhdGNoLCBhdm9pZGluZyB0aGUgbmVlZCB0byBtb2Rp
ZnkNCj4+IGFsbCBkcml2ZXJzLg0KPj4NCj4+IEkganVzdCBhZGRlZCBteSBpZGVhIHRvIHlv
dXIgcGF0Y2ggYW5kIG1vZGlmaWVkIHNvbWUgb2YgeW91ciBjb2RlIHRvIGJlIG1vcmUNCj4+
IHNpbXBsZS4gSSBfdGhpbmtfIEkgaGF2ZSBjb3ZlcmVkIGFsbCBwb3NzaWJsZSBzY2VuYXJp
b3Mgbm93LCByZXN1bHRpbmcgaW4NCj4+IHRoZSBuZWVkIHRvIGtlZXAgdGhlIGJhY2tlbmQg
aWQgY2hlY2sgaW4gY2FzZSB0aGUgYmFja2VuZCBkaWVkIGR1cmluZyB0aGUNCj4+IGVhcmx5
IGluaXQgcGhhc2Ugb2YgdGhlIGRldmljZS4NCj4+DQo+PiBDb3VsZCB5b3UgcGxlYXNlIHZl
cmlmeSB0aGUgYXR0YWNoZWQgcGF0Y2ggaXMgd29ya2luZyBmb3IgeW91Pw0KPiANCj4gVGhh
bmtzIGZvciB0aGUgcGF0Y2ghDQo+IA0KPiBJIHJhbiBpdCB0aHJvdWdoIHJlbGV2YW50IHRl
c3RzLCBhbmQgSSBnb3QgaW5jb25zaXN0ZW50IHJlc3VsdHMuDQo+IFNwZWNpZmljYWxseSwg
c29tZXRpbWVzLCB0aGUgZG9tVSBoYW5ncyAoYWN0dWFsbHksIGp1c3Qgb25lIHZDUFUgc3Bp
bnMNCj4gaW5zaWRlIHhlbndhdGNoIHRocmVhZCkuIExhc3QgY29uc29sZSBtZXNzYWdlcyBh
cmU6DQo+IA0KPiAgICAgIHN5c3RlbWRbNjI2XTogU3RhcnRpbmcgZGNvbmYuc2VydmljZSAt
IFVzZXIgcHJlZmVyZW5jZXMgZGF0YWJhc2UuLi4NCj4gICAgICBnbm9tZS1rZXlyaW5nLWRh
ZW1vbls5NzVdOiDikJtbMDsxOzM5bWNvdWxkbid0IGFjY2VzcyBjb250cm9sIHNvY2tldDog
L3J1bi91c2VyLzEwMDAva2V5cmluZy9jb250cm9sOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0
b3J54pCbWzBtDQo+ICAgICAgZ25vbWUta2V5cmluZy1kYWVtb25bOTc1XTog4pCbWzA7MTsz
ODo1OjE4NW1kaXNjb3Zlcl9vdGhlcl9kYWVtb246IDDikJtbMG0NCj4gICAgICB4ZW4gdmlm
LTA6IHhlbmJ1czogc3RhdGUgcmVzZXQgb2NjdXJyZWQsIHJlY29ubmVjdGluZw0KPiAgICAg
IGdub21lLWtleXJpbmctZGFlbW9uWzk3NF06IOKQm1swOzE7MzltY291bGRuJ3QgYWNjZXNz
IGNvbnRyb2wgc29ja2V0OiAvcnVuL3VzZXIvMTAwMC9rZXlyaW5nL2NvbnRyb2w6IE5vIHN1
Y2ggZmlsZSBvciBkaXJlY3RvcnnikJtbMG0NCj4gICAgICBnbm9tZS1rZXlyaW5nLWRhZW1v
bls5NzZdOiDikJtbMDsxOzM5bWNvdWxkbid0IGFjY2VzcyBjb250cm9sIHNvY2tldDogL3J1
bi91c2VyLzEwMDAva2V5cmluZy9jb250cm9sOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5
4pCbWzBtDQo+ICAgICAgZ25vbWUta2V5cmluZy1kYWVtb25bOTc2XTog4pCbWzA7MTszODo1
OjE4NW1kaXNjb3Zlcl9vdGhlcl9kYWVtb246IDDikJtbMG0NCj4gICAgICBnbm9tZS1rZXly
aW5nLWRhZW1vbls5NzRdOiDikJtbMDsxOzM4OjU6MTg1bWRpc2NvdmVyX290aGVyX2RhZW1v
bjogMOKQm1swbQ0KPiAgICAgIHhlbiB2aWYtMDogeGVuYnVzOiBzdGF0ZSByZXNldCBvY2N1
cnJlZCwgcmVjb25uZWN0aW5nDQo+ICAgICAgc3lzdGVtZFs2MjZdOiBTdGFydGVkIGRjb25m
LnNlcnZpY2UgLSBVc2VyIHByZWZlcmVuY2VzIGRhdGFiYXNlLg0KPiAgICAgIHhlbl9uZXRm
cm9udDogSW5pdGlhbGlzaW5nIFhlbiB2aXJ0dWFsIGV0aGVybmV0IGRyaXZlcg0KPiAgICAg
IHZpZiB2aWYtMDogeGVuYnVzOiBzdGF0ZSByZXNldCBvY2N1cnJlZCwgcmVjb25uZWN0aW5n
DQo+IA0KPiBBbmQgdGhlIGNhbGwgdHJhY2Ugb2YgdGhlIHNwaW5uaW5nIHhlbndhdGNoIHRo
cmVhZCBpczoNCj4gDQo+ICAgICAgdGFzazp4ZW53YXRjaCAgICAgICAgc3RhdGU6RCBzdGFj
azowICAgICBwaWQ6NjQgICAgdGdpZDo2NCAgICBwcGlkOjIgICAgICB0YXNrX2ZsYWdzOjB4
Mjg4MDQwIGZsYWdzOjB4MDAwODAwMDANCj4gICAgICBDYWxsIFRyYWNlOg0KPiAgICAgICA8
VEFTSz4NCj4gICAgICAgX19zY2hlZHVsZSsweDJmMy8weDc4MA0KPiAgICAgICBzY2hlZHVs
ZSsweDI3LzB4ODANCj4gICAgICAgeHNfd2FpdF9mb3JfcmVwbHkrMHhhYi8weDFmMA0KPiAg
ICAgICA/IF9fcGZ4X2F1dG9yZW1vdmVfd2FrZV9mdW5jdGlvbisweDEwLzB4MTANCj4gICAg
ICAgeHNfdGFsa3YrMHhlYy8weDIwMA0KPiAgICAgICB4c19zaW5nbGUrMHg0YS8weDcwDQo+
ICAgICAgIHhlbmJ1c19nYXRoZXIrMHhlNC8weDFhMA0KPiAgICAgICB4ZW5idXNfcmVhZF9k
cml2ZXJfc3RhdGUrMHg0Mi8weDcwDQo+ICAgICAgIHhlbm5ldF9idXNfY2xvc2UrMHgxMTMv
MHgyYzAgW3hlbl9uZXRmcm9udF0NCj4gICAgICAgPyBfX3BmeF9hdXRvcmVtb3ZlX3dha2Vf
ZnVuY3Rpb24rMHgxMC8weDEwDQo+ICAgICAgIHhlbm5ldF9yZW1vdmUrMHgxNi8weDgwIFt4
ZW5fbmV0ZnJvbnRdDQo+ICAgICAgIHhlbmJ1c19kZXZfcmVtb3ZlKzB4NzEvMHhmMA0KPiAg
ICAgICBkZXZpY2VfcmVsZWFzZV9kcml2ZXJfaW50ZXJuYWwrMHgxOWMvMHgyMDANCj4gICAg
ICAgYnVzX3JlbW92ZV9kZXZpY2UrMHhjNi8weDEzMA0KPiAgICAgICBkZXZpY2VfZGVsKzB4
MTYwLzB4M2UwDQo+ICAgICAgIGRldmljZV91bnJlZ2lzdGVyKzB4MTcvMHg2MA0KPiAgICAg
ICB4ZW5idXNfZGV2X2NoYW5nZWQuY29sZCsweDVlLzB4NmINCj4gICAgICAgPyBfX3BmeF94
ZW53YXRjaF90aHJlYWQrMHgxMC8weDEwDQo+ICAgICAgIHhlbndhdGNoX3RocmVhZCsweDky
LzB4MWMwDQo+ICAgICAgID8gX19wZnhfYXV0b3JlbW92ZV93YWtlX2Z1bmN0aW9uKzB4MTAv
MHgxMA0KPiAgICAgICBrdGhyZWFkKzB4ZmMvMHgyNDANCj4gICAgICAgPyBfX3BmeF9rdGhy
ZWFkKzB4MTAvMHgxMA0KPiAgICAgICByZXRfZnJvbV9mb3JrKzB4ZjUvMHgxMTANCj4gICAg
ICAgPyBfX3BmeF9rdGhyZWFkKzB4MTAvMHgxMA0KPiAgICAgICByZXRfZnJvbV9mb3JrX2Fz
bSsweDFhLzB4MzANCj4gICAgICAgPC9UQVNLPg0KPiAgICAgIHRhc2s6eGVuYnVzICAgICAg
ICAgIHN0YXRlOlMgc3RhY2s6MCAgICAgcGlkOjYzICAgIHRnaWQ6NjMgICAgcHBpZDoyICAg
ICAgdGFza19mbGFnczoweDIwODA0MCBmbGFnczoweDAwMDgwMDAwDQo+ICAgICAgQ2FsbCBU
cmFjZToNCj4gICAgICAgPFRBU0s+DQo+ICAgICAgIF9fc2NoZWR1bGUrMHgyZjMvMHg3ODAN
Cj4gICAgICAgPyBfX3BmeF94ZW5idXNfdGhyZWFkKzB4MTAvMHgxMA0KPiAgICAgICBzY2hl
ZHVsZSsweDI3LzB4ODANCj4gICAgICAgeGVuYnVzX3RocmVhZCsweDFhOC8weDIwMA0KPiAg
ICAgICA/IF9fcGZ4X2F1dG9yZW1vdmVfd2FrZV9mdW5jdGlvbisweDEwLzB4MTANCj4gICAg
ICAga3RocmVhZCsweGZjLzB4MjQwDQo+ICAgICAgID8gX19wZnhfa3RocmVhZCsweDEwLzB4
MTANCj4gICAgICAgcmV0X2Zyb21fZm9yaysweGY1LzB4MTEwDQo+ICAgICAgID8gX19wZnhf
a3RocmVhZCsweDEwLzB4MTANCj4gICAgICAgcmV0X2Zyb21fZm9ya19hc20rMHgxYS8weDMw
DQo+ICAgICAgIDwvVEFTSz4NCj4gDQo+ICh0ZWNobmljYWxseSwgYHRvcGAgc2F5cyBpdCdz
IHRoZSB4ZW5idXMgdGhyZWFkIHNwaW5uaW5nLCBidXQgaXQgbG9va3MNCj4gbGlrZSB0aGUg
YWN0dWFsIGlzc3VlIGlzIGluIHhlbndhdGNoIG9uZSkNCj4gDQo+IE5vdGUgdGhhdCBvdGhl
ciB4ZW53YXRjaCBhY3Rpb25zIGluIHRoaXMgZG9tVSBhcmUgbm90IGV4ZWN1dGVkLCBmb3IN
Cj4gZXhhbXBsZSBgeGwgc3lzcnFgIGRvZXMgbm90aGluZy4gTm90IHN1cnByaXNpbmcsIGdp
dmVuIHhlbndhdGNoIHRocmVhZA0KPiBpcyBidXN5Li4uIEZvcnR1bmF0ZWx5LCBpdCBibG9j
a3Mgb25seSBhIHNpbmdsZSB2Q1BVLCBzbyBJJ20gYWJsZSB0bw0KPiBpbnRlcmFjdCB3aXRo
IHRoZSBkb21VIG92ZXIgY29uc29sZSAodG8gZ2V0IHRoZSBhYm92ZSB0cmFjZXMpLg0KPiAN
Cj4gSXQgaXNuJ3QgYSByZWxpYWJsZSBmYWlsdXJlLCBpbiB0aGlzIHRlc3QgcnVuIGl0IGZh
aWxlZCBvbmNlLCBvdXQgb2YgNA0KPiByZWxhdGVkIHRlc3RzLg0KPiANCj4gVGhlIHNwZWNp
ZmljIHRlc3QgaXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9RdWJlc09TL3F1YmVzLWNvcmUtYWRt
aW4vYmxvYi9tYWluL3F1YmVzL3Rlc3RzL2ludGVnL25ldHdvcmsucHkjTDIzNA0KPiBJbiBz
aG9ydDoNCj4gMS4gU3RhcnQgYSBkb21VDQo+IDIuIFBhdXNlIGl0DQo+IDMuIEF0dGFjaCBu
ZXR3b3JrIChiYWNrZW5kIGlzICE9IGRvbTApDQo+IDQuIFVucGF1c2UNCj4gDQo+IFRCSCwg
SSdtIG5vdCBzdXJlIHdoeSB0aGUgInN0YXRlIHJlc2V0IG9jY3VycmVkIiBtZXNzYWdlIGlz
IHRyaWdnZXJlZCBhdA0KPiBhbGwsIEkgdGhpbmsgaXQgc2hvdWxkbid0IGJlIGluIHRoaXMg
Y2FzZS4uLg0KPiANCg0KVGhhbmtzIGZvciB0aGUgdGVzdC4NCg0KSSBndWVzcyB0aGUgaGFu
ZyBoYXBwZW5zIGR1ZSB0byB4ZW5uZXRfYnVzX2Nsb3NlKCkgd2FpdGluZyBmb3IgYSBzdGF0
ZQ0KY2hhbmdlIHdoaWNoIHdvbid0IGhhcHBlbiBhdCBhbGwsIGFzIGl0IGlzIGFscmVhZHkg
WGVuYnVzU3RhdGVJbml0aWFsaXNpbmcuDQoNClRoZSByaWdodCB0aGluZyB0byBkbyB3b3Vs
ZCBiZSB0byBhZGQgdGhlIHhlbmJ1c19kZXZpY2UgcG9pbnRlciB0byB0aGUNCnBhcmFtZXRl
cnMgb2YgeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKCksIGluIG9yZGVyIHRvIGJlIGFibGUg
dG8gcmV0dXJuDQpYZW5idXNTdGF0ZVVua25vd24gaW4gY2FzZSB0aGUgZGV2aWNlIGhhcyB2
YW5pc2hlZC4NCg0KSSdsbCBhZGQgYSBwYXRjaCBmb3IgdGhhdC4NCg0KDQpKdWVyZ2VuDQo=

--------------WhEgGKVIhCkkgcZTuxwpCjOb
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-----

--------------WhEgGKVIhCkkgcZTuxwpCjOb--

--------------hVQRiz2GlU9dM0IIIra60Nfu--

--------------C4JZ8hebH6MhCvpPobfGKOrT
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/Ey8FAmmJjQMFAwAAAAAACgkQsN6d1ii/Ey95
Jgf8DpH1RfoHUsEV2w4IlmMxSoUdNU1Uw9GFG6v56eFo40smywACKXmmqjGR0FaUeuqBln4d6xgt
9d2aLze5P9LEs8oeFYf4k2/GyrFn0meDibZ5a4rqbLoMedKeolXtBRF59y6zf3oqp0dTqImc8XJg
uoFYw8dX92inkS0Cz2PXszFvE3HHmCVih94//wk1UoO4EuoPyc9RYm1NPmAYdvTUkf947pPByra6
cfcAnZMvjIDzizZ3lTWPWn5icfgvnPm31FhrYX3SrsmyTm6+v5NHFw2qs8HTCTHuARaB5d1TzOay
QL5C3GDxZQQyZofReDfvfcXtEGVHulXwHJZTDlIUhA==
=elE0
-----END PGP SIGNATURE-----

--------------C4JZ8hebH6MhCvpPobfGKOrT--


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 07:31:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 07:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224968.1531418 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpLkF-0002lL-J5; Mon, 09 Feb 2026 07:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224968.1531418; Mon, 09 Feb 2026 07: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 1vpLkF-0002lE-Fw; Mon, 09 Feb 2026 07:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1224968;
 Mon, 09 Feb 2026 07:31: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpLkD-0002l6-MC
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 07:31: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 5ff51acc-0589-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 08:31:40 +0100 (CET)
Received: from CWLP265CA0299.GBRP265.PROD.OUTLOOK.COM (2603:10a6:401:5d::23)
 by AS2PR08MB10009.eurprd08.prod.outlook.com (2603:10a6:20b:64b::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 07:31:35 +0000
Received: from AM2PEPF0001C713.eurprd05.prod.outlook.com
 (2603:10a6:401:5d:cafe::c5) by CWLP265CA0299.outlook.office365.com
 (2603:10a6:401:5d::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.18 via Frontend Transport; Mon,
 9 Feb 2026 07:31:34 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C713.mail.protection.outlook.com (10.167.16.183) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 07:31:35 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA6PR08MB10815.eurprd08.prod.outlook.com (2603:10a6:102:3d8::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Mon, 9 Feb
 2026 07:30:30 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 07: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: 5ff51acc-0589-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=XR1QfRRJC44LogJaiM3yo9q5+EQMk4oDlYRupNG+e2a+znV4DXT6a+1BwwhH8N5xTrWfLg17vWkhMWfEdVsA0FVw5f4FMy3KKPltxUhcHQxOxbZ6JcPkvcvXy3H96Ta5xKLeFl27aYW+KIRSnh5cGxWMnsAg6ZGPlpeIwS7JVnBenBOIuJBGm9KHjCihFFXhyAup1EQ4J6SZQFXvK4PSuUEwbk0c4FzVJdzTLJjyyAW+KrV1Uw4tQeVZ2GeO9p8EBNLQXtWuVXQkAWNNfQvtXxb87Y/aiNTJvUcwX2FI0FfmN/kSXnO4S7Uk7M7foCEmbzeXy839iW3sdR0Hz3AaIg==
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=pZeh32cjtA7Z/DVMmDgLKTy6TX5NTpb69mniU+/NRE8=;
 b=AhqR15i9GSSMmqRTfiwNi8GfabDOgeqHfnpOTmSfryUgj2To16OZJWCKufTspOh3zI5lps+0PhAKGTA2QPXTTSL+m/f9fIKQnEptPSKwgAFMNWP/FZj5pWVYm8/udg34KNvXNFRCvnsXfOEzMtOFQsWf/YtW2kL5V+JDVQHU5gPKal5d2W4msdfw9RP9ZPT+/ulQMDOIJKzQOqexzspAxDynQ1o0hYFD1uZnnVStX0Fv3Qvh2dD861TZoaQjJEDP3WhygUn16b2dTbxye+tWORTyNLecHA1JEYE07ppJ+L4ZbUSDf7ikZ2nSZyi0Jv4B99QV4ZTVR56EFMkJ5NCHnA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pZeh32cjtA7Z/DVMmDgLKTy6TX5NTpb69mniU+/NRE8=;
 b=MigYVwo3hRK03N34KZtwociK0APfHulve54pJcVm0rbxssqB+o+qv/o74WTG7vQ20bcgMffpn0IMV2remEkcpk1yA4wcGPsvr7wRdamCWdsbXKN1cXKQZ6A/9/UpXGFu3YJFy+l3WCVoPx2yhbcWwn1j4v8FS09NVvJxafKlQsw=
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=DjFTUxR+78npPvX/inyAnlPgi7zLjFwQaz5ze1XV3wozpVtkwKE7r2JDybzv3p6grOiQM+QsomYvg+6fhHaylc32FiHpWrLlxAW90K2OKbMnp9htbYxTtZO7C6P8UOWN9EQ3K3RvwZ1k1UWub5tQKB3UHgNzrZSlY/4cSwZ21FOQzMfczvieqEjkW3rcV9IxAyRFJR/gDRDqoIi/3/Lqhos+yIr/s39g5s7kbBL1f0uNDXQCvMsVKUWMS0G+4oviNNl4j5a6WwzpXNXLt63CEYfpcsB0EvMGc/qJCnkcK3NW5Cn65vp55XRKq5ZOIWR3yPQDci3vm5fGZGUQKDR+ew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pZeh32cjtA7Z/DVMmDgLKTy6TX5NTpb69mniU+/NRE8=;
 b=My0vPPp92rgSiDc2OEfTZmasEZEQjjZUe/9FQMDe9jVVj4kOAOAzWjRbfBGkYOKB8QSBE/2+dIitgh1lxgB0D8CBQ5VbWkLSibk7ijSmFbvpxRPQYp0dvLDsTTM40pZEI/toJps+407V9YXwJMUT6qiJzjOU7G82/2SpOIIEExt0HZ9I+j/ZPuzQ4HgIihKMITWHMm1k8enUO3SgWLY5alL8dBoppG257H4u9hQh0BToYGUAgAMb8nAVClrcp7W2ZCxdUV3dIWd3AdvhsLYf+XlhbIylOmFfpN6xzKAGjq9IndppwDNQSrHnJgspj1HXOgwMMjip11QxQR2CeHj3qw==
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=pZeh32cjtA7Z/DVMmDgLKTy6TX5NTpb69mniU+/NRE8=;
 b=MigYVwo3hRK03N34KZtwociK0APfHulve54pJcVm0rbxssqB+o+qv/o74WTG7vQ20bcgMffpn0IMV2remEkcpk1yA4wcGPsvr7wRdamCWdsbXKN1cXKQZ6A/9/UpXGFu3YJFy+l3WCVoPx2yhbcWwn1j4v8FS09NVvJxafKlQsw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>
Subject: Re: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
Thread-Topic: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
Thread-Index: AQHcl4TDvkxax6jik0exjnZrMlGqw7V17BsAgAQQvwA=
Date: Mon, 9 Feb 2026 07:30:30 +0000
Message-ID: <28DF7F1E-BAA3-49AC-8A53-75100BAE74B5@arm.com>
References:
 <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
 <aYYkAvGQygf2eNI7@Mac.lan>
In-Reply-To: <aYYkAvGQygf2eNI7@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA6PR08MB10815:EE_|AM2PEPF0001C713:EE_|AS2PR08MB10009:EE_
X-MS-Office365-Filtering-Correlation-Id: f94115b4-04b8-4199-297d-08de67ad4114
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|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?MWE5alVHTFJTeGt3ZzAxaDJueDhkU2JDNkpTbXZEeHhUZjVwK1BtUVdMRDRa?=
 =?utf-8?B?K2R3RGxhYkVWUW9oRktqV3NYZzFkQnVHTnVVK3NpRTM1cTM4UmdUUnBHYVBn?=
 =?utf-8?B?UzdxOE42bFdZL1dmWUgraTFQbnZGWHlHcmthV1dTcHRVdkIwRHVGa0xadm5w?=
 =?utf-8?B?bEovK1R2b1FZRDdGSTEwNjVjQ3dIYnVwYkhWM3kxdkZxeWxkSGZQUXB5KzQ5?=
 =?utf-8?B?Mk5VRjNYWVN1MUJEUVVGb3lRT1JHTlB0Z2dUZG9Xc21hZE84UE5KVGx4RU5W?=
 =?utf-8?B?NXZiMWZDK2ZCWGRwbmJKWUU4RW9TL3MzczRTTzdCVXRVcWxTUklGZjNDTzRO?=
 =?utf-8?B?N1A1Tmwzd2JRY3lWanM0ZEVLK3Bsa1FSSUtwR0tNenluN1k2Tm9WV215ejF4?=
 =?utf-8?B?bU96V293eEh3MExXZkc0cGRxMlQ5N3JQRUR3NkRLUEx5THRtazFBNTVrcEls?=
 =?utf-8?B?VFZCSFVFV3NmbDlBTnhEdHYrVUhjcjMyNlVuYjFnWnVLNDVMS05pODJtL1R3?=
 =?utf-8?B?SzdPNStBUHUreWl4K0xDb3JUMkk3YUZrb05RUktaUWlGb1k5bENpZFB3ZWND?=
 =?utf-8?B?elFBa0NtK2tKbkd6cFhQQ2ZSM25mOWtlNHMyRGU2YTBDamd4K09yemluQlNU?=
 =?utf-8?B?SG1ITnZ3NEhyYUVxdjZlYmxpcHg5VUZpYVA5ZllxS2hGeXI5UXh5T3NNZXlK?=
 =?utf-8?B?UXRicWRmMjVRZmdDdi9DbURjLzRNOTJ3bU9IQUtvZzViNmJGWjR3Qm04SmRh?=
 =?utf-8?B?eFFPcHFnWjRaVUxQYnhJdHhsUUN1ZVVudWVaUjBNbzhxSm1yc3Y2M3prUFRP?=
 =?utf-8?B?RjdFZ3ZDU2Q4eE43MVZQTmI0RTdXb2FXU2krVVVMdDVmcG5xZzFzUTZjTGd6?=
 =?utf-8?B?eCtUTDhHUDdVTTdxR040azdDY21tTksrcmdHVklLaVZ6OGFXemFIR1NTUVFN?=
 =?utf-8?B?amplQzhTZjFqdjZqaGpxL1Y3NlQ0QmVCdmQwZ05VQ25KcS8xS05GVjR6VEpV?=
 =?utf-8?B?bHpKOUxnU21RVk50REVYenBUaHN6SnN1UUtxSFNWUnY4dE5JcnpSaWNPYVpD?=
 =?utf-8?B?SVNGUjZ1Y0dSalJ3UE9WSXpEYi9kbjdBanJya05GZXhJZjBSaWZJcXBUR1kr?=
 =?utf-8?B?eVBjdW9vZk5Id2RnWWE1ZWR2N2VUNWxrOHk4ZFJDUTNMOUhUZFkvRmFPbTd4?=
 =?utf-8?B?aXJQekprN3QvdnlibmtWMGJQelhZcnUwdGl3NE1kSnlsYnVNWWVIdmFLNERn?=
 =?utf-8?B?dUtiRkprZDNudEtQajFOZUFYOVpyN0JVZXVpNzhaMTh1TmppZUZLOTY4alh0?=
 =?utf-8?B?cUtteGd6Q3htNkpiVm5sZW5vcWVNQ2tudDFTL3Mrbmc4KzlmQVJGbkVsRDRj?=
 =?utf-8?B?S3l5RzZTSGVGWURpTnkrN05QZEFzQm10ZVhwZ3FmZlRrUUhlZFlCd1VSdVRo?=
 =?utf-8?B?N1hUOFMzaUovYjJMOHZvdU1xOGVqdW1HMitNTlh2YmJka2diMS9BNHlQc0tK?=
 =?utf-8?B?UnRlU0FPSnJHUkgzTkV1dUtsY29WenRXSDFyWmlKd1BQekhSUnRJb3dzaE9U?=
 =?utf-8?B?Wi9vWE4rdzFoQmtzTml2MkJnSkRPSlVLMGY0U1dSa3EzWkR5Z2Q2VzlQNVVG?=
 =?utf-8?B?b3JCUXh3MDRJenlFakk4dE0vS2xYTkxJaW5OSmFuVjU4dE1uVnVRdDdpdzJ0?=
 =?utf-8?B?dXdSY0s2UlJwUVlLY3NsSFN0dU43ZWtMQ3kwREk0R2JsVWdWQ1FndkdtS0s3?=
 =?utf-8?B?Q0l1MDAwdjZaNUU4WHRZUklQazc2TU1oVUtmVW1vNWRsSUxuUCszR2VueEpM?=
 =?utf-8?B?clpUVFJMQy9tV0NSNktwUzE4NW01U2wzd2FSQUpZZUR6cDlqSk9yb3lHbWVt?=
 =?utf-8?B?TGh4bEhNOHRDQ1gzV0lySWhxM1ZvdkwyTDNERGxmUEJLWG1XczlQUzZqSk4x?=
 =?utf-8?B?WnN6SEV2eHJNOGZCam9GbzZrQ0Y3R0Y5akV2OWE0YzFhRzVidC9qYW8xZXdY?=
 =?utf-8?B?RldFNkN4RmpGTDMzNkVXQ3VVOTN0TWE2UVp3Q2l2OWROaGo1TEFIZE1saGEz?=
 =?utf-8?B?NFR1STRLeG5xcVhqSnF0RGI3Z0YwcXBMV0h4MUtER2M3R09SRGM1cFljUFJV?=
 =?utf-8?B?a25hRlZpclEzRGRWNnVrSExUTFMxU1VSSFhxK2lQQjRlZVFDZHBhSXkxMW9k?=
 =?utf-8?Q?CsQ5H4MyXmbYZWbyXtexLE8=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(10070799003)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <738AC16F97FB9B4580AEEEEB86DD8539@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10815
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C713.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	14ce41f4-4fca-4ecd-3648-08de67ad1a86
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|36860700013|35042699022|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VWdKeWlTWDY1emdwNUJYT1ZiK29oV3MvZERkZlp2elExZkJQK3VpV09WQ1Rt?=
 =?utf-8?B?UmtHRnowMkxqRWVvRFJ5VjRiOXpmRm91N1NiZ2tQT28wUlJ5dXFKU3JXV3RK?=
 =?utf-8?B?NXl6T0p6VlE5Njg0aTBVL3krbXdMa3ZuZFhoUko3SEFLNjBkRmtCUWg5a055?=
 =?utf-8?B?Q1NoUW5zMi9WSWgxbDFaT3RFZVgwaDRsNTdRVllaR0FZNHlRVUN6SHJXK3FF?=
 =?utf-8?B?R0lDQ2pPWEhYOGNUQ1ptNjI3K1krblhTTEZEM25sbnM3U3FYK2k0eURvNGRv?=
 =?utf-8?B?M0UzSEtUblRNMTFMMWpFa0JPOGE1djFFaUo5bGRjYkIyVU0xemVYSVkwbUM2?=
 =?utf-8?B?Q2wwNzk2dEhZUUZ4NEtVU2plQ0JBeEJaelN3MUdTSFhLeFI2K3VEeEQyV3dR?=
 =?utf-8?B?NzdlbVg2ZmNweFp3eUVQZUF0bG8rRS9INENkY1hTdjgyQytKWUdML0IyQmRK?=
 =?utf-8?B?djIxMWthR0VFT0xDcms5ZkxXYndlOHNXbE9XOWxRK1pMdXFwY2hBdVJZeTFR?=
 =?utf-8?B?VWtQb2ZuY05kQmdlb0JtRG9Cd2JaYU1RTjlSZHpYeS8vYmRsQUh6Ti9IQzdO?=
 =?utf-8?B?dWtKK090SUVNaElCME9rZTU2Q2YzSllsYm54T3F2cEJYMzB5VS9xVmY4TWxB?=
 =?utf-8?B?dm5rZ3V5Q2FSdFF3MDdrK2hZNERBRHladmdOREc1Wkc4cmd5S0FNNkRVaVVj?=
 =?utf-8?B?Smd5dWR2d3FKUVh3T3NMZUxNZVFLRkxEUlljZGhacGFtL3BuZWdkQ0kwWk5Z?=
 =?utf-8?B?UjNZWnQzamM3OGFXL1pIR3lrMFIwS0ZJV0ZsTzl6Y1BsYzdsRCttbC93Wi9C?=
 =?utf-8?B?ZnpNOVl5NUxXenlHZTl5ZGpUckFHWUVuS3o2MU5RQVZEZ0RuZGxlRXgrcTAw?=
 =?utf-8?B?ZGRaTEk3dmZwNjNxNHVvWmdkbURGMnpTTFZvdXIweWZOcU1vUmtZK2RiQndG?=
 =?utf-8?B?N3JJano2T28yNW5ocVE4QjJmTTRGTmtMbDN3bU5vRDh5SmI1akp0Smd4RVRj?=
 =?utf-8?B?bi8yUmV3RVJ2UGRpemVyc1ZnMUdZYXBwemZoWlFCNkFRZXJ3Z25pT3JHZDhm?=
 =?utf-8?B?aDFoYWNwYU5EZmVxc0VYUHovRjVLMjB3UmxiOTdOT0FTeWs0UHZlUEF2RkYr?=
 =?utf-8?B?SWo4dEN2SHBmVjFyVUZ4OW1OdkY4UUhqZlBzclNhelljenUxQndSa25GMDZu?=
 =?utf-8?B?d2RRaVhhb2JPQUx3dHZoSkxBVi9uTkVjUVJUR2NURHQvVnBnT2l3Tmdqakk1?=
 =?utf-8?B?REFoUHN6OUJ4UDJvUHAxMkdsakhodkhCMGpiN1ZXWGs5eEgxWlNSRDdWVURi?=
 =?utf-8?B?WmVuNVZMMUdsYTRtQ24zSTQ0N0M1cXlXeHpwOE9nY1laaEg5cDQ1K0N0a1F5?=
 =?utf-8?B?MTQwaStNTkxObzRFZVNkQjBud2lURzJFUEhYQWlFU3BMeFpkYlVsRG02NXBh?=
 =?utf-8?B?c2xCM0FuWkpHSzBCYjdkOHk4NGI5TGtRNWVQdnpLd295ak9nanJiQUdhM1Jp?=
 =?utf-8?B?K0ltSVIwZ3M5eHZBeWg5eW1Gd0pYbXRDZ1lPanZEbDcwVFVISTBtSkFMUWt3?=
 =?utf-8?B?RHRPTnBjK1BVenBDRENSZ3lSa01mU0FsZVU4NDZyRC9tRHhHMWVSNUZSdTJX?=
 =?utf-8?B?NTJ2V2l5ckZFTlI5cDBIMjByNFJjYi84VFlON0NYRlJIK0JvTkJVZTFPYzhM?=
 =?utf-8?B?Rm9yQ2h6VVNrU1M0TWpOZVAvS2p4QXRTdWliNjE0SnRuYUZ1SFdqb09JZzNa?=
 =?utf-8?B?cmlva1p5UUVvMERwZEhWSm1ncndMaE14NUtUMlJjZVMxVXBoRkJHazhjTFdZ?=
 =?utf-8?B?aWJyNkVQbDlydkNCRUU2M2RidFFONFN0ZkQ0QTA2VVpyZUR2NjBNQ1RRR09S?=
 =?utf-8?B?c0VLSjZBQ08yVjNFYnRBbk9MWmdJcW5mZkhNUGlGbGlNdWpnSHpMN2k1WVc3?=
 =?utf-8?B?S0pBZmRxTXpFSExQdVJ4N1V0Mlhlc3dyWUlMclhobEEwbitzZjgzT05oWjhP?=
 =?utf-8?B?RkF0NnJ1eVUzRkUxRnJnUjZkVVI0c3BZTDdpcEJWdGRxMjc0Z1hJOWZraCs0?=
 =?utf-8?B?TGJPbkRVYlI2aTNjU2xmWUFKaTVWemhGbDFGU0JSZXFCNkJMbjhzeTdNanEv?=
 =?utf-8?B?YVBJdE9RRTIzZGtyTSttemRRYzJBZnJmSXA5Ny8yZ0NvR3V2Kzk4SWhvOG1J?=
 =?utf-8?B?V0FoelVoTGYvbWlEaTN4cjNDSHRYcHNaMkU0V2xZaC8yTUs2YjZ3MDFxbWgy?=
 =?utf-8?B?Yjk0OW5jV3U3NUdmOGU3SGFnc01RPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(14060799003)(36860700013)(35042699022)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	EivjJekCLzibcKVV8bC3mh25USLWwk8tJLps3Hobga74Xr6e3ajzKQ3Wa3Sy5BADlQkhAGhLLTBNvwhjOKx9sEFMtDI9a/HAFZQKdnHEsuLUgNyr/LuuIDboC1H+UraS+ho/Ly3QBfU+MqRQ6/iZ8RGKPd669DbxRsU6m4Saz5Zi2A25m2bs1sZgbNQWAKGBaQCh19v/kRADdvLxtZq3rh0IqfjufoQYydaEfEI0qFIO9/oTNxU03fX68W1rw6Ks0MMFYK3PiAozEXBaGkTDQzWLZb+kEmGQaM6t/SCqFdrON9j2XNUjGDCVWIZjNG2R7n4J2zl8EFrT2X6Pavow3yNC3m17lX74lAKQmnst5jbQYrRWqNv+5AeP+EcCHejS8NBt0klDYR5Bkw1t9xPb0MwqlDjFQoMnWvs5XfD8KmufqiANUQexpbScjsVEqwlN
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 07:31:35.1083
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f94115b4-04b8-4199-297d-08de67ad4114
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:
	AM2PEPF0001C713.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10009

SGkgUm9nZXIsDQoNCj4gT24gNiBGZWIgMjAyNiwgYXQgMTg6MjUsIFJvZ2VyIFBhdSBNb25uw6kg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIEZyaSwgRmViIDA2LCAyMDI2
IGF0IDA1OjIxOjQ0UE0gKzAxMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBYZW4gZG9l
cyBub3QgcHJvdmlkZSBhIERhcndpbiBidWlsZCBjb25maWd1cmF0aW9uIGZvciBzZWxlY3RpbmcN
Cj4+IEdOVSB0b29sIGRlZmluaXRpb25zLiBPbiBtYWNPUywgdGhlIHRvb2xzIHdlIHVzZSBhcmUg
ZWl0aGVyIEdOVQ0KPj4gY29tcGF0aWJsZSBvciB3ZSBvbmx5IHJlbHkgb24gZmVhdHVyZXMgc3Vw
cG9ydGVkIGJ5IE1hYyBPUywgc28NCj4+IHVzaW5nIHRoZSBHTlUgdG9vbCBkZWZpbml0aW9ucyBp
cyBhcHByb3ByaWF0ZS4NCj4+IA0KPj4gQWRkIGNvbmZpZy9EYXJ3aW4ubWsgdG8gaW5jbHVkZSBT
dGRHTlUubWsgYW5kIGZvcmNlDQo+PiBYRU5fQ09NUElMRV9BUkNIPXVua25vd24sIGVuc3VyaW5n
IERhcndpbiBidWlsZHMgYWx3YXlzIGZvbGxvdw0KPj4gdGhlIGNyb3NzLWNvbXBpbGUgcGF0aCBh
cyB3ZSBkZXBlbmQgb24gdGhlIExpbnV4IEFCSSBzbyBjb21waWxpbmcNCj4+IG9uIE1hYyBPUyBp
cyBhbHdheXMgYSBjcm9zcyBjb21waWxhdGlvbiBjYXNlLg0KPj4gDQo+PiBBbiBleGFtcGxlIG9m
IGhvdyB0byBidWlsZCB0aGUgaHlwZXJ2aXNvciBmb3IgYXJtNjQgb24gTWFjIE9TDQo+PiAodG9v
bHMgY2Fubm90IGJlIGJ1aWxkIGZvciBub3cpIHVzaW5nIGEgdG9vbGNoYWluIGZyb20gYnJldzoN
Cj4+IC0gYnJldyBpbnN0YWxsIGFhcmNoNjQtZWxmLWdjYyBhYXJjaDY0LWVsZi1iaW51dGlscw0K
Pj4gLSBjZCB4ZW4NCj4+IC0gbWFrZSBYRU5fVEFSR0VUX0FSQ0g9YXJtNjQgQ1JPU1NfQ09NUElM
RT1hYXJjaDY0LWVsZi0gSE9TVENDPWNsYW5nDQo+IA0KPiBJbnN0ZWFkIG9mIGBjZCB4ZW5gIEkg
d291bGQgdXNlIGBtYWtlIHhlbiAuLi5gLg0KDQpBY2sgdGhlICdjZCB4ZW4nIGxpbmUgaXMgdXNl
bGVzcyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuDQoNCj4gDQo+PiANCj4+IFNpZ25lZC1vZmYtYnk6
IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4gDQo+IEFja2Vk
LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gDQo+IE9uZSBj
b21tZW50IGJlbG93Lg0KPiANCj4+IC0tLQ0KPj4gQ2hhbmdlcyBzaW5jZSB2MzoNCj4+IC0gc2V0
IFhFTl9DT01QSUxFX0FSQ0ggdG8gdW5rbm93biBpbnN0ZWFkIG9mIERhcndpbg0KPj4gLSBsaXN0
IGJpbnV0aWxzIGFzIGEgZGVwZW5kZW5jeSB0byBpbnN0YWxsIGluIGJyZXcgaW4gY29tbWl0IG1l
c3NhZ2UNCj4+IA0KPj4gQ2hhbmdlcyBzaW5jZSB2MjoNCj4+IC0gU3ViamVjdCB3YXMgInhlbjog
QWRkIG1hY09TIGh5cGVydmlzb3IgYnVpbGQgY29uZmlndXJhdGlvbiINCj4+IC0gVXBkYXRlIERh
cndpbi5tayBjb21tZW50cyB0byBtb3JlIGFjY3VyYXRlIHZlcnNpb25zIChKYW4pDQo+PiAtIFJl
bW92ZSB0aGUgYnVpbGQtb24tbWFjb3MgaGVscCBhcyB3ZSBoYXZlIG5vIGRlcGVuZGVuY3kgb24g
YW55dGhpbmcNCj4+ICBjb21pbmcgZnJvbSBicmV3IGFueW1vcmUgYW5kIHRoZSB0b29sY2hhaW4g
Y2FuIGJlIHJldHJpZXZlZCBieSBsb3RzIG9mDQo+PiAgb3RoZXIgc29sdXRpb25zIHRoYW4gYnJl
dyBvbiBtYWMgb3MuIFN3aXRjaCB0byBhIHNpbXBsZSBkb2MgaW4gdGhlDQo+PiAgY29tbWl0IG1l
c3NhZ2UgaW5zdGVhZA0KPj4gLS0tDQo+PiBjb25maWcvRGFyd2luLm1rIHwgNyArKysrKysrDQo+
PiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspDQo+PiBjcmVhdGUgbW9kZSAxMDA2NDQg
Y29uZmlnL0Rhcndpbi5taw0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvY29uZmlnL0Rhcndpbi5tayBi
L2NvbmZpZy9EYXJ3aW4ubWsNCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAw
MDAwMDAwMDAuLjE3NmIyN2VhYzY3Ng0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvY29uZmln
L0Rhcndpbi5taw0KPj4gQEAgLTAsMCArMSw3IEBADQo+PiArIyBVc2UgR05VIHRvb2wgZGVmaW5p
dGlvbnMgYXMgdGhlIHRvb2xzIHdlIGFyZSB1c2luZyBhcmUgZWl0aGVyIEdOVSBjb21wYXRpYmxl
DQo+PiArIyBvciB3ZSBvbmx5IHVzZSBmZWF0dXJlcyB3aGljaCBhcmUgc3VwcG9ydGVkIG9uIE1h
YyBPUy4NCj4+ICtpbmNsdWRlICQoWEVOX1JPT1QpL2NvbmZpZy9TdGRHTlUubWsNCj4+ICsNCj4+
ICsjIFhlbiB1c2VzIExpbnV4J2VzIEFCSSBzbyB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIG9uIE1h
YyBPUy4NCj4gDQo+IEhtLCBpcyB0aGlzIGFjdHVhbGx5IGZ1bGx5IHRydWU/ICBXaGF0J3MgdGhl
IExpbnV4IEFCSSBleGFjdGx5IGhlcmU/DQo+IA0KPiBGcmVlQlNEIGJ1aWxkcyBYZW4gbmF0aXZl
bHksIGFuZCBpdCdzIG5vdCB1c2luZyB0aGUgTGludXggQUJJLg0KPiBGcmVlQlNEIHVzZXMgbm8g
c3BlY2lmaWMgLXRhcmdldCB0byB0aGUgY29tcGlsZXIgaW52b2NhdGlvbnMsIGFuZCB0aGUNCj4g
bGlua2VyIGVtdWxhdGlvbiBpcyBzZXQgdG8gZWxmX3g4Nl82NF9mYnNkLg0KPiANCj4gSSB0aGlu
ayB0aGUgcG9pbnQgaGVyZSBpcyB0aGF0IHRoZSB0b29sY2hhaW4gbXVzdCBzdXBwb3J0IGJ1aWxk
aW5nIEVMRg0KPiBvYmplY3RzIC8gaW1hZ2VzLCBiZWNhdXNlIHRoYXQncyB0aGUgYmluYXJ5IGZv
cm1hdCBzdXBwb3J0ZWQgYnkgWGVuLg0KPiBXaGV0aGVyIGl0J3MgTGludXggRUxGIG9yIEZyZWVC
U0QgRUxGIGRvZXNuJ3QgbWFrZSBhIGRpZmZlcmVuY2UgZm9yDQo+IHN0YW5kYWxvbmUgZW52aXJv
bm1lbnRzIGxpa2UgdGhlIFhlbiBrZXJuZWwuDQoNClRoaXMgZmlsZSBpcyBhbHNvIHVzZSB3aGls
ZSBjb21waWxpbmcgdGhlIHRvb2xzIGFuZCBmb3IgdGhvc2UgeW91IGRlZmluaXRlbHkNCnRvIGNy
b3NzIGNvbXBpbGUgYXMgdGhleSBkZXBlbmQgb24gTGludXggQUJJLiBNYXliZSB0aGF0IHdvcmtz
IG9uIEJTRA0KYnV0IGkgZG91YnQgdGhpcyB3b3VsZCBiZSB0aGUgY2FzZSBvbiBtYWMgb3MuDQoN
Ck1heWJlIHdlIGNvdWxkIHNpbXBsaWZ5IHRoZSBzZW50ZW5jZSB0byBub3Qgc2F5IGFueXRoaW5n
IHdlIGFyZSB1bnN1cmU6DQoNCiMgQ3Jvc3MgY29tcGlsZSBvbiBNYWMgT1MNCg0KVGVsbCBtZSBp
ZiB0aGF0IHdvcmtzIGZvciB5b3UgYW5kIGkgY2FuIHN1Ym1pdCBhIHY1IG9yIHRoaXMgbWlnaHQg
YmUgcG9zc2libGUgdG8NCmZpeCBvbiBjb21taXQuDQoNCkNoZWVycw0KQmVydHJhbmQNCg0KPiAN
Cj4gVGhhbmtzLCBSb2dlci4NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 07:34:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 07:34:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224978.1531428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpLmV-0003O1-3m; Mon, 09 Feb 2026 07:34:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224978.1531428; Mon, 09 Feb 2026 07: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 1vpLmV-0003Nu-0r; Mon, 09 Feb 2026 07:34:03 +0000
Received: by outflank-mailman (input) for mailman id 1224978;
 Mon, 09 Feb 2026 07: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpLmT-0003No-ND
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 07:34:01 +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 b3301312-0589-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 08:34:00 +0100 (CET)
Received: from DUZPR01CA0001.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:3c3::10) by DB5PR08MB10021.eurprd08.prod.outlook.com
 (2603:10a6:10:48e::5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 07:33:55 +0000
Received: from DB1PEPF000509E9.eurprd03.prod.outlook.com
 (2603:10a6:10:3c3:cafe::7a) by DUZPR01CA0001.outlook.office365.com
 (2603:10a6:10:3c3::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 07:34:01 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509E9.mail.protection.outlook.com (10.167.242.59) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 07:33:54 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB9PR08MB7511.eurprd08.prod.outlook.com (2603:10a6:10:302::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 07:32:49 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 07:32:48 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3301312-0589-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=onGOLfhiI+tCH+IXFWPAC9uKvYN6JR3DwM5KV/D/b+AnOKO4W43/PrxmXmcRXnj57v2kkjSuWShC9ZP810r6MWBWNlWO/f1chg0tfb8zbbBH/woFK6OP5Uw4AnMPqjcbSqCKWrRH2VSOZlVzCDJPecKLsckLP/VYaF1iu6z4YvpQvjsOu7YHMXk9lD5ftQQBZH7RZd4/wrkwqfiXKo4QKPRPqPC1IrdaZIMZDsOnnTlVcJpr487NB0/KlEbYfs4/ibRaLdS8OQtkrQP+fqtKa/l6qdaquQrT8hclzTacCnZq9yIDrWrQC+HxIae8LbnDG0OyhQYwfb+nOPl6Hos75w==
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=XU6iU7TVAipAA7AwrQax6FW39II4FKbKIOedNurUUCA=;
 b=wj9dgiDByHXAn877qgfQvUQwFcdJ1Sz6qZX3BmWeHk+CU+7bYQuyLfxV6/MY9wnGbZlXx7g4MHC/xxqJ6HrPa5dIDjnU6xsf4/LgSUkjbGlh7GePLtKbvfGJ4n+UYDDT5tzkEJwKy5+u1uNDQ8fZw3xIMXSGls0k4BX53E1zAAuBKnpLE1MqaNoorH1EZmT5NnTx3BrQWKoc2nDVS7Ec2CrVH5/EZJB11XFzC7VHscVjxJPU6jWB3RncP8+UxZMkzI+BKG2N5R4h8xLDyCR7olvEJP2aoTRB8rwKHFk2Fd6YJp4TlJwhV6sy/1wSwDNTo1F1/PX4zstIzAPI+fEsZg==
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=XU6iU7TVAipAA7AwrQax6FW39II4FKbKIOedNurUUCA=;
 b=A+fjqeiOVo/oZZSrZlSprwah9CtNKshLhFEQ279iJfXUGbg598YkB+M9iuY0CPL3QsqMp3YGm4IZl20XHfdqeCQmnaLM10LajLrjJ8X2ZRsTfgKrGOwZXNHI/RseX8Ti606CgjpHit7Y/MK39PbDP9veV9bnibQ/izZj4wA/VdE=
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=rxgAPjoe3kTHLu+8QXXBG0AswCrFvIY6jWkMtvTcq6qradS6hSV7//0U52ljt7HjUIe/W1D2SL0E9Jh8MZx88H78Tmk9su3pJ4iWjH5v95bK1iHZ+b/ti2YV5e2ldMA4RgzdB6pKgZVQik4ZPIdlDX0XFepxoiWiegvRjn1nSaTXTSpCczWskqnbEInKJRiyF0r9DWDfjNN8aM4P/Z1w3CGLoNlxqEFiAJQSQJMN1e+kXwtrXMAljWfi9MDkLwwwNgz3cEvHmETtlAtC2PylRuIhIj6nVW4LeXQ2gRnOHL4H3oQTtpk89Z2deni/YQCXlTmr50rfA+4LwG5mCiFUYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=XU6iU7TVAipAA7AwrQax6FW39II4FKbKIOedNurUUCA=;
 b=ptHOpZT6kwATRJAKvTnz5BP3n9uR6qMlGrVlxTxWVL1QvLzamDXfXAkktx0JKpXASX8nYCuwArmkC8l0Ko1AIvUOcXy84qkvOHXzQsNke6FPTfY1wzpYRsvEyQEMAnftGlR3/Ua0H0Gir+EHF7HTyUkkp7RRUW2GmlVFu+bkcvA2NYOhZf9ROvue7FzAshcVnSU5fzqlZPynLGAHYfsO54ni06F0tcTV3YsD7fBNkQmuFiv0WIvhtE9dG8bUKs0f626EDygpsiuml48dAGgNRte82hVgxcfAlGjRuxmG8ye/hKkMSDynw1kQ2KfTz7nP1ooE+HEuMRlBs0S3CJwdYg==
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=XU6iU7TVAipAA7AwrQax6FW39II4FKbKIOedNurUUCA=;
 b=A+fjqeiOVo/oZZSrZlSprwah9CtNKshLhFEQ279iJfXUGbg598YkB+M9iuY0CPL3QsqMp3YGm4IZl20XHfdqeCQmnaLM10LajLrjJ8X2ZRsTfgKrGOwZXNHI/RseX8Ti606CgjpHit7Y/MK39PbDP9veV9bnibQ/izZj4wA/VdE=
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>, Andrew
 Cooper <andrew.cooper3@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: Re: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Topic: [PATCH v2] xen: Add macOS hypervisor build configuration
Thread-Index: AQHclpNk83RtAc43+U+zvyNqPofiH7V4GlYAgAHjLgCAAAC2gIAAAScA
Date: Mon, 9 Feb 2026 07:32:48 +0000
Message-ID: <2816DC31-36BB-4D13-AF96-19FA72940FE6@arm.com>
References:
 <d30deb8fa22291beb64eb179e8e2d55d13ef27dd.1770291000.git.bertrand.marquis@arm.com>
 <13bee33c-43f7-490a-b1be-85e8cc5e0fdd@gmail.com>
 <6285DC05-0CE7-49B7-B394-34D0872FE551@arm.com>
 <44ecfc7b-a8dc-4e5f-a084-a63caabf9e91@gmail.com>
In-Reply-To: <44ecfc7b-a8dc-4e5f-a084-a63caabf9e91@gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB9PR08MB7511:EE_|DB1PEPF000509E9:EE_|DB5PR08MB10021:EE_
X-MS-Office365-Filtering-Correlation-Id: b95caecd-d533-46b0-3c6c-08de67ad945d
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|10070799003|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?Y6AcMs0HAVRo2j8uPVUgmAgCtR3J6j5G7pzU7WPabkNJO6bYwjYvxqYP3P?=
 =?iso-8859-1?Q?2y8beDJpE9DvMQtvnjK075TmvdkDEdzR7wSPANNMjJohe9CmB/3XUYEZF8?=
 =?iso-8859-1?Q?2q+YJvSS5mGSo/UUZQ9qMQjze7/Nma9mxRPR2R7tynZP9OpdwopyQA4Ram?=
 =?iso-8859-1?Q?bB+5LjiybDt4VRf8k4534ieI8CG+7F/xy8YV/0ey6mFvBr2nIhEimgkA8q?=
 =?iso-8859-1?Q?APP8iAlvZ6LCKSSnheWVjEJWbiZ3fBBMSIrpL//9nCIr2tiVgmRgYMSesm?=
 =?iso-8859-1?Q?uHwk8VmhnO5viUcvXRlHp/CufiN0lW71N+CiH05irfp+TaYtq774BNjqED?=
 =?iso-8859-1?Q?vlp4ZG28b0+nzk7I+Hbh2a6qotxLJvzKxFJeoTSvfedcXFieEZP2C+Sg46?=
 =?iso-8859-1?Q?IS1vFtupOURwcENYiRc/swcCLKth2y9huMs/CLassdrb8d98SnHQBrQ3eO?=
 =?iso-8859-1?Q?wfqM2x/Mh5YggrSbwh0a13szw0ixGf+Pkyd8jsxo2YPDI3n0EwWjbjzOCI?=
 =?iso-8859-1?Q?DncqyqZXy8y+kNPXCmjdzn3Lh9oWw+P5vtkycGuTO3/vS1LjBtpsDx01V6?=
 =?iso-8859-1?Q?d63T3xVsX6UeM6QmgxDcFcx5CM8kP3UILDxH7lSImm9wHz767VuzkWN1Pl?=
 =?iso-8859-1?Q?usF48SYB7y1LSBOW0YFj7I++SxbIJR2wrVLmcIoayAddMXYxVI+wu/XWRu?=
 =?iso-8859-1?Q?BxMmR3V0Qilx74+Ot3C+bKTQfbPXjDPmA4j2DMnrJ74rLmlDtb6wpBv1QH?=
 =?iso-8859-1?Q?PzYAfXhohsTxkX41eBysxoONM9bpLQqZa5pAmO4Tf+0lCTINQYtBGDa69l?=
 =?iso-8859-1?Q?bqWY/GbjaUL1bp9u3nGCsJcomBdBt+SkDBUIafXjP9fhxhiff+iCpDbeGq?=
 =?iso-8859-1?Q?y3/pYGVVRCksy6NDd5ubyEGjvL4xlDYm0f1OTCu3eEjtYaxFv8XbSryybY?=
 =?iso-8859-1?Q?DnQj9/XsiC9dzbOAgfe8kW4paabpsP0ZDPUD9snB8C2b9uwun9YXoU5auT?=
 =?iso-8859-1?Q?gpdndsST1zC4TlmIppBZuKXMVdWXaW6venlO1Ce8/IHXAJs9xhNMwCbfo9?=
 =?iso-8859-1?Q?o1vUw7CQd7FZ+hY+pZU8VghHQ5lXep1IIVw4iuLKM9kIKl6nq02ImL6hB9?=
 =?iso-8859-1?Q?pzqNa+dlYvb+1gAOMpB3JU7u1nS8K4A6v9QYLSadkdT76g7O13t01Y7fBo?=
 =?iso-8859-1?Q?nVZpaFSPdeSDVNGaGhCODED+7/F/wK2ihDoWlKuCAQA0aNcRJO2NCSw8h6?=
 =?iso-8859-1?Q?Ydg+rtU+Qjaaa8RrZozk5sbjgetPXbhJLHl2+vy26q3ovNi2JTYojA30YG?=
 =?iso-8859-1?Q?OdeB4KwKo7t1IucC52UpafpNc2bcrFMdUPQNDDH2o23nVdSRmTvT1pQJv6?=
 =?iso-8859-1?Q?rjkh+3qwx0cWO7Wvp0tbwsAs5KlZ6IH+LgfxyYlhIMqZSMqg9MyXRGhe4D?=
 =?iso-8859-1?Q?rHxz/7fSFacJFEmCArbqu62gJXpjfrKC8GZg2znB6BHZv/74csVyIknrsv?=
 =?iso-8859-1?Q?tW5BLwTzNEGi6ZALeRJfI0DFKM0YZ9LorSrNiXgomwvO/8618g+ZCzyp0d?=
 =?iso-8859-1?Q?6phYZfy2ONjCQUkpOTCouAiDEq/IzhPqLJIc1CpRX/o+W887LPj3mBjY7H?=
 =?iso-8859-1?Q?b3G1ogfOJZtUKN9b60Fhy2R1xeYkk6QX9eJx6A8SgdBoMCNYyVXgMVblPy?=
 =?iso-8859-1?Q?2mQDPb5feE9501PjrDE=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(10070799003)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <F4A6E712C3E0E5418BB82684A17BEFE3@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7511
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509E9.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b624b713-6ca8-4230-388d-08de67ad6d09
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|82310400026|1800799024|35042699022|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?nP5Slf55dwIP5Doiby8K6xHv4cf6OFbaGgfxB90UEv/gf5fZMdGyjO/+/X?=
 =?iso-8859-1?Q?BArc9m/NZZnXesN+1k0ndc42rvB3sdcXM/5DksCjnrrytBB40uxZNUY2D3?=
 =?iso-8859-1?Q?2ed5WAI4j4i3X0Yji2mfN4NqTdkC4kbGuQVAtwj8d7mdBOrszeSWIBGUV1?=
 =?iso-8859-1?Q?C6twcH2Lvhc2m7U8Kse7fe8LnJdp9XIb3g4C9qqZ5+YveBohHMr8NOWI56?=
 =?iso-8859-1?Q?bx8KJ7xVqqxM3kS0n1dwRKDtWNYUsBMDQGzRxUjZ7p1MHmkSgSRRoB0aO+?=
 =?iso-8859-1?Q?2h0NLRCmdWGcRJVZv7wv+6AmZWWQegSB/Y9RDwZuPriMwPFo60YV1ey2J4?=
 =?iso-8859-1?Q?TF3qgTtXGYkeLHOjD4PVYSxiN2N68S4Kvs3wnWVyWCZ5Ye3dWwMTN2qmsK?=
 =?iso-8859-1?Q?Uz3SyPipvcaRvjjMNOvWeRotHWTxcYTsrKnbKejyXESR8f/okjqYlRtei3?=
 =?iso-8859-1?Q?TkmXmltgMFfMO1okCYI6Pu2oiyjLY+gxaUvTv5OZxG4WejbCxUOriG1E+Z?=
 =?iso-8859-1?Q?Qb/y3pYwXRwuAlxLbAp7hjWCQudl19UHNpTFPQOl+Op5uH+94pm2KZ+45k?=
 =?iso-8859-1?Q?jddbGiGb8YoubrLhkDJer/DifDVp5tTaysrUawUuMZbm3WOwDHnTY0i5xG?=
 =?iso-8859-1?Q?1/ZPsWxyUbSlpVfGIx0kLMVXsG3MkeCyIepSSMSayPeWhU/sDgICiAkuqW?=
 =?iso-8859-1?Q?jjR7yKTuyb1ohHnI4ekRqTlCLfWm3UnJkOTsVQxibv+6W4IMdDu16hytLo?=
 =?iso-8859-1?Q?zSPCKBHKjGs9Q57VjQJMAU+WVTMwM4Q0+boMebzjBczjtmFysf3+sJU3z9?=
 =?iso-8859-1?Q?XBEMxsNf8Bt+H9zuMUU2u6g+y7xCw3xoiq/N0QNir75Rly47mixP43bbkZ?=
 =?iso-8859-1?Q?u3vPK5MIhbTu2paIxtFjnNYcCKlVKcM6LJ4nruIwgCvzgDoRVmX14uj+eF?=
 =?iso-8859-1?Q?z4RtzxGAhuTCGHYAgeplOmGei3Cu6tYyhOWfUPcf+jHmxO423i/Qb6lr/H?=
 =?iso-8859-1?Q?JLGbwc2fO9/OT1uhkhpVvWRvy1p5cAI/Px1NLEtORDhwWo2bOSPqU13Ehc?=
 =?iso-8859-1?Q?PkeBJcyrprLsqrtRwx88lRtw8mrsv+2NHIC22KBHfShx1xC5YYme+Fy820?=
 =?iso-8859-1?Q?vubp8Bi9RXINBrbqyhnyOzeigVDyn/C15ziLXwosOjWUdF42hPocOhCO2M?=
 =?iso-8859-1?Q?xOdEmsfwdCINaw7msBz+eO9hbKrhbcD1yhFebb5bm0NZSSHjyBKOlkmywB?=
 =?iso-8859-1?Q?kGn/y0N077EbrgBsnGXPquzKj/E7LnxNZ9CCCUhFBwq/G0YXAcClxVozLD?=
 =?iso-8859-1?Q?YV4TAnQfOmQ/dE7RK0qWspZB89QWd1YxC3YKvUMWvJ0ZEBI6vunbEycm+W?=
 =?iso-8859-1?Q?3k8wJqF6cgbFGjl129XOnuUO4DfURpV6ZopWg6v9yPT8RBpOD/szl3CuBM?=
 =?iso-8859-1?Q?sO3LLQ6MTkVLyQYG0wvhBFGy15j5zk9Ue2hTszNdC79q2tqANeJMfGQr34?=
 =?iso-8859-1?Q?s5fjAyGgcxkQbUM8ksVJfE+aPV2ftQWWzgE+3q7pUkM9CmKA6+66KZ9F/g?=
 =?iso-8859-1?Q?//v4kK52pwGkunvPco00NclLQlmOYs6m2TGn4O6j8SxddLz7W+kZdAK7ku?=
 =?iso-8859-1?Q?H8A3kBBMh3ClGSPeH7FkVyTMoTj6DVn0lCwOhFiYfPhd6l7lMMzxmJzW/u?=
 =?iso-8859-1?Q?U+TnwIUdj8YJbkUq6q8AxYaryvOZpX0e4Ao68B0AwCuOSgfK+DVlS2errZ?=
 =?iso-8859-1?Q?+3Uw=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)(82310400026)(1800799024)(35042699022)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	5fYVaK1UBSz6kKRejT400hFTUJeTNdUcIy/rxRAywPISKfm1wpux9DCzkwmRX2QXr22mIWsx4EDKhN7XyNYBDk4FZU/P0pYDPlr0Qh+wMtPP6ARBKAW9JIzG8YuBjD+10KdCm7tfz5eF2NFcNHeSDIW+JPdVjD/Lhywc+TKjOHtyZ3RIcj51L1C+HPp55NuZKp23mN6yTfB2ei98mPc2jqECGeBaSKK1KSBr7r+Jm6n4bKSJ2e2l8s6YAjzDxJ2d+ZiEhMvzgkK2KKEcw3ObPgl7tXhYLZNR01go3Sn+aXktntxgwV4GMMDStSWfNLEjzHq3Icv6HuBfpwMjF3FFcAo3aGF4AASh4TOfziBDOiSqSLFbdqenNmt60z5o8XucTciCmo/6Va8bEJaP4DI4BRsLioMijo/mWS1P80cTcC961iBCkikWwh/JNiotluDJ
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 07:33:54.8317
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b95caecd-d533-46b0-3c6c-08de67ad945d
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:
	DB1PEPF000509E9.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB10021

Hi Demi,

> On 9 Feb 2026, at 08:28, Demi Marie Obenour <demiobenour@gmail.com> wrote=
:
>=20
> On 2/9/26 02:26, Bertrand Marquis wrote:
>> Hi Demi,
>>=20
>>> On 8 Feb 2026, at 03:36, Demi Marie Obenour <demiobenour@gmail.com> wro=
te:
>>>=20
>>> On 2/5/26 06:33, Bertrand Marquis wrote:
>>>> Xen does not currently document how to build the hypervisor on macOS, =
and
>>>> there is no Darwin configuration for selecting a Homebrew-based GNU
>>>> toolchain. Native builds are not supported; the hypervisor must be
>>>> cross-built with a GNU toolchain and GNU make/sed.
>>>>=20
>>>> Add a minimal Darwin.mk which selects the GNU tool definitions used by
>>>> the macOS workflow and point to the build guide for required tools and
>>>> setup. Document the Homebrew cross toolchain and GNU tools needed to
>>>> build the hypervisor on macOS.
>>> What is the use-case?
>>=20
>> My main use case is development and testing on MacOS.
>> I can do a lot of stuff by only recompiling and testing the hypervisor w=
ithout
>> changing the rest of my test environment and being able to do it directl=
y
>> on my mac is making things a lot faster and simpler.
>>=20
>> I have been using this for a long time and someone asked me some weeks
>> ago if that was possible so i figured it would be a good idea to share.
>>=20
>> Cheers
>> Bertrand
>=20
> How are you testing?  QEMU TCG?


FVP that i trigger remotely, qemu locally or remotely, real targets depends=
 on what
i have available.
But while on the go, developing and testing compilation locally without eve=
n testing
on target so that i can later trigger on target is definitely very useful.

Want some tips on how to develop while on Mac OS ?

Cheers
Bertrand

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




From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:02:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:02:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1224998.1531439 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNAA-0006mB-KP; Mon, 09 Feb 2026 09:02:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1224998.1531439; Mon, 09 Feb 2026 09:02: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 1vpNAA-0006m4-F4; Mon, 09 Feb 2026 09:02:34 +0000
Received: by outflank-mailman (input) for mailman id 1224998;
 Mon, 09 Feb 2026 09:02: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=DrmV=AN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vpNA9-0006ly-40
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:02:33 +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 1045eedb-0596-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 10:02:30 +0100 (CET)
Received: by mail-ej1-x634.google.com with SMTP id
 a640c23a62f3a-b872f1c31f1so495585666b.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:02:30 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65983eb5e07sm2686844a12.9.2026.02.09.01.02.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:02:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1045eedb-0596-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770627750; x=1771232550; 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=dOZG59NT6OMRZRmVt0sIlfg56vyg9VJ8nqc/EOqal64=;
        b=WfPjCGpp4rST0+E2WP3vB1ffT4N4Byy124BaGTiFiRv0KD9+zLqOE9I94tkHF9M97D
         PqvcqV/kS8YvpXGAdkl+UJ/YEf/IMQYKicK/o3VyxVyvXcsMAnIfh+lpHGuA1q6IaH9l
         9EUDquQr3FmzcIyT927rB2MPSZptayDZcEeQ8XebeENTuL32Vp/iDaKLeXofn/In/2e5
         obXwDZ28FUu84EZ7oWL3Bb6jLzOirIgg1GCLdOnztnw6x+w1K3Y0+Vn+ezE24xG2rap4
         baA4tZbLHt1lO2QqVkNJ0I+QJjTVV/NDK98VRxW5giaFeE/TGwoRqrQzvuDtmNQowWVE
         s2YQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770627750; x=1771232550;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=dOZG59NT6OMRZRmVt0sIlfg56vyg9VJ8nqc/EOqal64=;
        b=hE7Pv+icQZZDYhl+h8eElFcaOXd41tDTvvl1jbQMuM5MpZo1MKwEQU8oI5ePusZaLo
         tBUqJhY7noawYZnDxV4oRIXNSPp/G6ch3N3L4HF0bjAUnGAiVt+B5gKPDp5Ffxu6WWjf
         4lftpBfP6/aehCngixBkypgrh1xzEveMK2XZJLf7hq6p1X4myK2pF8gltz1mP78bjLKY
         YdLAadoUqHogD1ee+ajABFGA/Wp/w8iTew0BCRsdSUkmSrV2ESxvwI7pJr0nHbvleG2W
         oVaNqPcF0SDTnFmJW4jLHKR0Pp3iKHcrrhps3vg9ORd5ZHu2CibYnzLR7VGLRhUB3Dlk
         X4+Q==
X-Forwarded-Encrypted: i=1; AJvYcCXDAb8CEslAc4TBgtI19AQwgRrC8DQwk4utTvoXSDIGi+eOCAjt/RKBY7BPlQKrEqgPa1lhXnv/gFo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxLvj0EcZyAzapR5mTCmZuKyxAOOks9TCDObQ9uObY813SE7QEC
	Qs784WNSh32yUMyVEk7FO4qFoPYyEvVrGDq6f4soV6AaYlMQ59lEGY1c5LfIu5cMnPk=
X-Gm-Gg: AZuq6aIU9nm79T2PIGxhyNIZiDOG6F5lTovS9y6kIrYnZSlHQNQLvqeJypKLEHNN3Ik
	EMqvWGGtYo+0e1jVKqsG9K5rBIK3DfH3x8RKmz1getdDfJKBo3vOuIS5KwGyavTpDZwdNy7CfgH
	cGN3xvLr/PQVYLRF+GTu/08t3kTV9D+V5Uq3nbaz6IIhKbImXvb2MulW3epfhM61fnQkdjVlp/P
	tMb0arXTqlKmlBTGzbJfpuh4huv54kkFdICLeJOgIW9l8NUSwi+6fO6hel63hDBr9G8MdYHlZ7S
	OPi9/7DufEXR9Kdjq4B2jZPHZXfZt9KGQja7rssqmCExHzCobn0MRAe+F4Cf+CkWBkT4Ru+V8H5
	jgi7rdLgbixKeQNGwzv9kvq6VijcLGhiVI4yOPSt0Uvn/cHexi1XbFx2QDrQngLYw6s4+Vu4hLY
	0Q1sei1//SuNmgI0KUHI0Zuev6PAJureDvu67VHGRUPDuKO8Dkc98Sfy5zhY++7unjmq1a/9VKt
	kjVTzjs/5MqOXN5TaIJWVaF63cvv+8A4kg+XXFM4Fc+L9+s
X-Received: by 2002:a17:907:3d45:b0:b88:7568:26ed with SMTP id a640c23a62f3a-b8edf3ec116mr539139266b.50.1770627749326;
        Mon, 09 Feb 2026 01:02:29 -0800 (PST)
Message-ID: <abd6f188-4c5e-4e56-9dbf-3bc942622b6f@suse.com>
Date: Mon, 9 Feb 2026 10:02:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/xenbus: better handle backend crash
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: linux-kernel@vger.kernel.org, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Peng Jiang <jiang.peng9@zte.com.cn>, Qiu-ji Chen <chenqiuji666@gmail.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "moderated list:XEN HYPERVISOR INTERFACE" <xen-devel@lists.xenproject.org>
References: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
 <e6ab32d7-b1eb-428b-95e8-a90f7b3be39c@suse.com>
 <261c3ced-7f40-4c2f-93da-0e020f9bcf3a@suse.com>
 <e1060ba2-7985-4e80-9d84-fb738758e3b3@suse.com> <aYYdgXMKnMCfXob7@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: <aYYdgXMKnMCfXob7@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------DETIOXt92lBiKQ0s9wYZMxiR"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------DETIOXt92lBiKQ0s9wYZMxiR
Content-Type: multipart/mixed; boundary="------------YbxEwefYK5Vf23tKEwSnV0I9";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: linux-kernel@vger.kernel.org, Stefano Stabellini
 <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Peng Jiang <jiang.peng9@zte.com.cn>, Qiu-ji Chen <chenqiuji666@gmail.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "moderated list:XEN HYPERVISOR INTERFACE" <xen-devel@lists.xenproject.org>
Message-ID: <abd6f188-4c5e-4e56-9dbf-3bc942622b6f@suse.com>
Subject: Re: [PATCH] xen/xenbus: better handle backend crash
References: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
 <e6ab32d7-b1eb-428b-95e8-a90f7b3be39c@suse.com>
 <261c3ced-7f40-4c2f-93da-0e020f9bcf3a@suse.com>
 <e1060ba2-7985-4e80-9d84-fb738758e3b3@suse.com> <aYYdgXMKnMCfXob7@mail-itl>
In-Reply-To: <aYYdgXMKnMCfXob7@mail-itl>

--------------YbxEwefYK5Vf23tKEwSnV0I9
Content-Type: multipart/mixed; boundary="------------3unF3ejPwvXQuxwe8F5RecVi"

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

T24gMDYuMDIuMjYgMTc6NTcsIE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSB3cm90ZToN
Cj4gT24gVGh1LCBKYW4gMjksIDIwMjYgYXQgMDg6MDI6MzVBTSArMDEwMCwgSsO8cmdlbiBH
cm/DnyB3cm90ZToNCj4+IE9uIDI2LjAxLjI2IDA4OjA4LCBKw7xyZ2VuIEdyb8OfIHdyb3Rl
Og0KPj4+IE9uIDE3LjExLjI1IDEyOjA2LCBKw7xyZ2VuIEdyb8OfIHdyb3RlOg0KPj4+PiBP
biAwMi4xMS4yNSAwNDoyMCwgTWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpIHdyb3RlOg0K
Pj4+Pj4gV2hlbiB0aGUgYmFja2VuZCBkb21haW4gY3Jhc2hlcywgY29vcmRpbmF0ZWQgZGV2
aWNlIGNsZWFudXAgaXMgbm90DQo+Pj4+PiBwb3NzaWJsZSAoYXMgaXQgaW52b2x2ZXMgd2Fp
dGluZyBmb3IgdGhlIGJhY2tlbmQgc3RhdGUgY2hhbmdlKS4gSW4gdGhhdA0KPj4+Pj4gY2Fz
ZSwgdG9vbHN0YWNrIGZvcmNlZnVsbHkgcmVtb3ZlcyBmcm9udGVuZCB4ZW5zdG9yZSBlbnRy
aWVzLg0KPj4+Pj4geGVuYnVzX2Rldl9jaGFuZ2VkKCkgaGFuZGxlcyB0aGlzIGNhc2UsIGFu
ZCB0cmlnZ2VycyBkZXZpY2UgY2xlYW51cC4NCj4+Pj4+IEl0J3MgcG9zc2libGUgdGhhdCB0
b29sc3RhY2sgbWFuYWdlcyB0byBjb25uZWN0IG5ldyBkZXZpY2UgaW4gdGhhdA0KPj4+Pj4g
cGxhY2UsIGJlZm9yZSB4ZW5idXNfZGV2X2NoYW5nZWQoKSBub3RpY2VzIHRoZSBvbGQgb25l
IGlzIG1pc3NpbmcuIElmDQo+Pj4+PiB0aGF0IGhhcHBlbnMsIG5ldyBvbmUgd29uJ3QgYmUg
cHJvYmVkIGFuZCB3aWxsIGZvcmV2ZXIgcmVtYWluIGluDQo+Pj4+PiBYZW5idXNTdGF0ZUlu
aXRpYWxpc2luZy4NCj4+Pj4+DQo+Pj4+PiBGaXggdGhpcyBieSBjaGVja2luZyBiYWNrZW5k
LWlkIGFuZCBpZiBpdCBjaGFuZ2VzLCBjb25zaWRlciBpdA0KPj4+Pj4gdW5wbHVnK3BsdWcg
b3BlcmF0aW9uLiBJdCdzIGltcG9ydGFudCB0aGF0IGNsZWFudXAgb24gc3VjaCB1bnBsdWcN
Cj4+Pj4+IGRvZXNuJ3QgbW9kaWZ5IHhlbnN0b3JlIGVudHJpZXMgKGVzcGVjaWFsbHkgdGhl
ICJzdGF0ZSIga2V5KSBhcyBpdA0KPj4+Pj4gYmVsb25nIHRvIHRoZSBuZXcgZGV2aWNlIHRv
IGJlIHByb2JlZCAtIGNoYW5naW5nIGl0IHdvdWxkIGRlcmFpbA0KPj4+Pj4gZXN0YWJsaXNo
aW5nIGNvbm5lY3Rpb24gdG8gdGhlIG5ldyBiYWNrZW5kIChtb3N0IGxpa2VseSwgY2xvc2lu
ZyB0aGUNCj4+Pj4+IGRldmljZSBiZWZvcmUgaXQgd2FzIGV2ZW4gY29ubmVjdGVkKS4gSGFu
ZGxlIHRoaXMgY2FzZSBieSBzZXR0aW5nIG5ldw0KPj4+Pj4geGVuYnVzX2RldmljZS0+dmFu
aXNoZWQgZmxhZyB0byB0cnVlLCBhbmQgY2hlY2sgaXQgYmVmb3JlIGNoYW5naW5nIHN0YXRl
DQo+Pj4+PiBlbnRyeS4NCj4+Pj4+DQo+Pj4+PiBBbmQgZXZlbiBpZiB4ZW5idXNfZGV2X2No
YW5nZWQoKSBjb3JyZWN0bHkgZGV0ZWN0cyB0aGUgZGV2aWNlIHdhcw0KPj4+Pj4gZm9yY2Vm
dWxseSByZW1vdmVkLCB0aGUgY2xlYW51cCBoYW5kbGluZyBpcyBzdGlsbCByYWN5LiBTaW5j
ZSB0aGlzIHdob2xlDQo+Pj4+PiBoYW5kbGluZyBkb2Vzbid0IGhhcHBlbmQgaW4gYSBzaW5n
bGUgeGVuc3RvcmUgdHJhbnNhY3Rpb24sIGl0J3MgcG9zc2libGUNCj4+Pj4+IHRoYXQgdG9v
bHN0YWNrIG1pZ2h0IHB1dCBhIG5ldyBkZXZpY2UgdGhlcmUgYWxyZWFkeS4gQXZvaWQgcmUt
Y3JlYXRpbmcNCj4+Pj4+IHRoZSBzdGF0ZSBrZXkgKHdoaWNoIGluIHRoZSBjYXNlIG9mIGxv
b3NpbmcgdGhlIHJhY2Ugd291bGQgYWN0dWFsbHkNCj4+Pj4+IGNsb3NlIG5ld2x5IGF0dGFj
aGVkIGRldmljZSkuDQo+Pj4+Pg0KPj4+Pj4gVGhlIHByb2JsZW0gZG9lcyBub3QgYXBwbHkg
dG8gZnJvbnRlbmQgZG9tYWluIGNyYXNoLCBhcyB0aGlzIGNhc2UNCj4+Pj4+IGludm9sdmVz
IGNvb3JkaW5hdGVkIGNsZWFudXAuDQo+Pj4+Pg0KPj4+Pj4gUHJvYmxlbSBvcmlnaW5hbGx5
IHJlcG9ydGVkIGF0DQo+Pj4+PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwv
YU9adml2eVo5WWhWV0RMTkBtYWlsLWl0bC9ULyN0LA0KPj4+Pj4gaW5jbHVkaW5nIHJlcHJv
ZHVjdGlvbiBzdGVwcy4NCj4+Pj4+DQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBNYXJlayBNYXJj
enlrb3dza2ktR8OzcmVja2kgPG1hcm1hcmVrQGludmlzaWJsZXRoaW5nc2xhYi5jb20+DQo+
Pj4+DQo+Pj4+IFNvcnJ5IEkgZGlkbid0IGdldCBlYXJsaWVyIHRvIHRoaXMuDQo+Pj4+DQo+
Pj4+IE15IG1haW4gcHJvYmxlbSB3aXRoIHRoaXMgcGF0Y2ggaXMgdGhhdCBpdCBpcyBiYXNp
Y2FsbHkganVzdCBwYXBlcmluZyBvdmVyDQo+Pj4+IGEgbW9yZSBnZW5lcmFsIHByb2JsZW0u
DQo+Pj4+DQo+Pj4+IFlvdSBhcmUganVzdCBtYWtpbmcgdGhlIHByb2JsZW0gbXVjaCBtb3Jl
IGltcHJvYmFibGUsIGJ1dCBub3QgaW1wb3NzaWJsZSB0bw0KPj4+PiBvY2N1ciBhZ2Fpbi4g
SW4gY2FzZSB0aGUgbmV3IGRyaXZlciBkb21haW4gaGFzIHRoZSBzYW1lIGRvbWlkIGFzIHRo
ZSBvbGQgb25lDQo+Pj4+IHlvdSBjYW4gc3RpbGwgaGF2ZSB0aGUgc2FtZSByYWNlLg0KPj4+
Pg0KPj4+PiBUaGUgY2xlYW4gd2F5IHRvIGhhbmRsZSB0aGF0IHdvdWxkIGJlIHRvIGFkZCBh
IHVuaXF1ZSBJZCBpbiBYZW5zdG9yZSB0byBlYWNoDQo+Pj4+IGRldmljZSBvbiB0aGUgYmFj
a2VuZCBzaWRlLCB3aGljaCBjYW4gYmUgdGVzdGVkIG9uIHRoZSBmcm9udGVuZCBzaWRlIHRv
DQo+Pj4+IG1hdGNoLiBJbiBjYXNlIGl0IGRvZXNuJ3QgbWF0Y2gsIGFuIG9sZCBkZXZpY2Ug
d2l0aCB0aGUgc2FtZSBraW5kIGFuZCBkZXZpZA0KPj4+PiBjYW4gYmUgY2xlYW5lZCB1cC4N
Cj4+Pj4NCj4+Pj4gVGhlIHVuaXF1ZSBJZCB3b3VsZCBvYnZpb3VzbHkgbmVlZCB0byBiZSBz
ZXQgYnkgdGhlIFhlbiB0b29scyBpbnNpZGUgdGhlDQo+Pj4+IHRyYW5zYWN0aW9uIHdyaXRp
bmcgdGhlIGluaXRpYWwgYmFja2VuZCBYZW5zdG9yZSBub2RlcywgYXMgZG9pbmcgdGhhdCBm
cm9tDQo+Pj4+IHRoZSBiYWNrZW5kIHdvdWxkIGFkZCBhbm90aGVyIHBvdGVudGlhbCBhbWJp
Z3VpdHkgYnkgdGhlIGRyaXZlciBkb21haW4NCj4+Pj4gY2hvb3NpbmcgdGhlIHNhbWUgdW5p
cXVlIGlkIGFzIHRoZSBwcmV2aW91cyBvbmUgZGlkLg0KPj4+Pg0KPj4+PiBUaGUgcXVlc3Rp
b24gaXMgd2hldGhlciBzb21ldGhpbmcgbGlrZSB5b3VyIHBhdGNoIHNob3VsZCBiZSB1c2Vk
IGFzIGENCj4+Pj4gZmFsbGJhY2sgaW4gY2FzZSB0aGVyZSBpcyBubyB1bmlxdWUgSWQgb24g
dGhlIGJhY2tlbmQgc2lkZSBvZiB0aGUgZGV2aWNlDQo+Pj4+IGR1ZSB0byBhIHRvbyBvbGQg
WGVuIHZlcnNpb24uDQo+Pj4NCj4+PiBJIHRoaW5rIEkgaGF2ZSBmb3VuZCBhIHNvbHV0aW9u
IHdoaWNoIGlzIG11Y2ggbW9yZSBzaW1wbGUsIGFzIGl0IGRvZXNuJ3QNCj4+PiBuZWVkIGFu
eSBjaGFuZ2Ugb2YgdGhlIHByb3RvY29sIG9yIGFueSBhZGRpdGlvbiBvZiBuZXcgaWRlbnRp
ZmllcnMuDQo+Pj4NCj4+PiBXaGVuIGNyZWF0aW5nIGEgbmV3IFBWIGRldmljZSwgWGVuIHRv
b2xzIHdpbGwgYWx3YXlzIHdyaXRlIGFsbCBnZW5lcmljDQo+Pj4gZnJvbnRlbmQtIGFuZCBi
YWNrZW5kLW5vZGVzLiBUaGlzIGluY2x1ZGVzIHRoZSBmcm9udGVuZCBzdGF0ZSwgd2hpY2gg
aXMNCj4+PiBpbml0aWFsaXplZCBhcyBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4NCj4+Pg0K
Pj4+IFRoZSBMaW51eCBrZXJuZWwncyB4ZW5idXMgZHJpdmVyIGlzIGFscmVhZHkgc3Rvcmlu
ZyB0aGUgbGFzdCBrbm93biBzdGF0ZQ0KPj4+IG9mIGEgeGVuYnVzIGRldmljZSBpbiBzdHJ1
Y3QgeGVuYnVzX2RldmljZS4gV2hlbiBjaGFuZ2luZyB0aGUgc3RhdGUsIHRoZQ0KPj4+IHhl
bmJ1cyBkcml2ZXIgaXMgZXZlbiByZWFkaW5nIHRoZSBzdGF0ZSBmcm9tIFhlbnN0b3JlIChl
dmVuIGlmIG9ubHkgZm9yDQo+Pj4gbWFraW5nIHN1cmUgdGhlIHBhdGggaXMgc3RpbGwgZXhp
c3RpbmcpLiBTbyBhbGwgd2hhdCBpcyBuZWVkZWQgaXMgdG8gY2hlY2ssDQo+Pj4gd2hldGhl
ciB0aGUgcmVhZCBjdXJyZW50IHN0YXRlIGlzIG1hdGNoaW5nIHRoZSBsb2NhbGx5IHNhdmVk
IHN0YXRlLiBJZiBpdA0KPj4+IGlzIG5vdCBtYXRjaGluZyBBTkQgdGhlIHJlYWQgc3RhdGUg
aXMgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcsIHlvdSBjYW4gYmUNCj4+PiBzdXJlIHRoYXQg
dGhlIGJhY2tlbmQgaGFzIGJlZW4gcmVwbGFjZWQuDQo+Pj4NCj4+PiBIYW5kbGluZyB0aGlz
IHdpbGwgbmVlZCB0byBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIHhlbmJ1c19zd2l0Y2hf
c3RhdGUoKQ0KPj4+IGluIGFsbCByZWxhdGVkIGRyaXZlcnMsIGJ1dCB0aGlzIGlzIGp1c3Qg
YSBtb3JlIG9yIGxlc3MgbWVjaGFuaWNhbCBjaGFuZ2UuDQo+Pj4NCj4+PiBJJ2xsIHByZXBh
cmUgYSBwYXRjaCBzZXJpZXMgZm9yIHRoYXQuDQo+Pg0KPj4gSW4gdGhlIGVuZCB0aGUgcmVz
dWx0IGlzIG1vcmUgbGlrZSB5b3VyIHBhdGNoLCBhdm9pZGluZyB0aGUgbmVlZCB0byBtb2Rp
ZnkNCj4+IGFsbCBkcml2ZXJzLg0KPj4NCj4+IEkganVzdCBhZGRlZCBteSBpZGVhIHRvIHlv
dXIgcGF0Y2ggYW5kIG1vZGlmaWVkIHNvbWUgb2YgeW91ciBjb2RlIHRvIGJlIG1vcmUNCj4+
IHNpbXBsZS4gSSBfdGhpbmtfIEkgaGF2ZSBjb3ZlcmVkIGFsbCBwb3NzaWJsZSBzY2VuYXJp
b3Mgbm93LCByZXN1bHRpbmcgaW4NCj4+IHRoZSBuZWVkIHRvIGtlZXAgdGhlIGJhY2tlbmQg
aWQgY2hlY2sgaW4gY2FzZSB0aGUgYmFja2VuZCBkaWVkIGR1cmluZyB0aGUNCj4+IGVhcmx5
IGluaXQgcGhhc2Ugb2YgdGhlIGRldmljZS4NCj4+DQo+PiBDb3VsZCB5b3UgcGxlYXNlIHZl
cmlmeSB0aGUgYXR0YWNoZWQgcGF0Y2ggaXMgd29ya2luZyBmb3IgeW91Pw0KPiANCj4gVGhh
bmtzIGZvciB0aGUgcGF0Y2ghDQo+IA0KPiBJIHJhbiBpdCB0aHJvdWdoIHJlbGV2YW50IHRl
c3RzLCBhbmQgSSBnb3QgaW5jb25zaXN0ZW50IHJlc3VsdHMuDQo+IFNwZWNpZmljYWxseSwg
c29tZXRpbWVzLCB0aGUgZG9tVSBoYW5ncyAoYWN0dWFsbHksIGp1c3Qgb25lIHZDUFUgc3Bp
bnMNCj4gaW5zaWRlIHhlbndhdGNoIHRocmVhZCkuIExhc3QgY29uc29sZSBtZXNzYWdlcyBh
cmU6DQo+IA0KPiAgICAgIHN5c3RlbWRbNjI2XTogU3RhcnRpbmcgZGNvbmYuc2VydmljZSAt
IFVzZXIgcHJlZmVyZW5jZXMgZGF0YWJhc2UuLi4NCj4gICAgICBnbm9tZS1rZXlyaW5nLWRh
ZW1vbls5NzVdOiDikJtbMDsxOzM5bWNvdWxkbid0IGFjY2VzcyBjb250cm9sIHNvY2tldDog
L3J1bi91c2VyLzEwMDAva2V5cmluZy9jb250cm9sOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0
b3J54pCbWzBtDQo+ICAgICAgZ25vbWUta2V5cmluZy1kYWVtb25bOTc1XTog4pCbWzA7MTsz
ODo1OjE4NW1kaXNjb3Zlcl9vdGhlcl9kYWVtb246IDDikJtbMG0NCj4gICAgICB4ZW4gdmlm
LTA6IHhlbmJ1czogc3RhdGUgcmVzZXQgb2NjdXJyZWQsIHJlY29ubmVjdGluZw0KPiAgICAg
IGdub21lLWtleXJpbmctZGFlbW9uWzk3NF06IOKQm1swOzE7MzltY291bGRuJ3QgYWNjZXNz
IGNvbnRyb2wgc29ja2V0OiAvcnVuL3VzZXIvMTAwMC9rZXlyaW5nL2NvbnRyb2w6IE5vIHN1
Y2ggZmlsZSBvciBkaXJlY3RvcnnikJtbMG0NCj4gICAgICBnbm9tZS1rZXlyaW5nLWRhZW1v
bls5NzZdOiDikJtbMDsxOzM5bWNvdWxkbid0IGFjY2VzcyBjb250cm9sIHNvY2tldDogL3J1
bi91c2VyLzEwMDAva2V5cmluZy9jb250cm9sOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5
4pCbWzBtDQo+ICAgICAgZ25vbWUta2V5cmluZy1kYWVtb25bOTc2XTog4pCbWzA7MTszODo1
OjE4NW1kaXNjb3Zlcl9vdGhlcl9kYWVtb246IDDikJtbMG0NCj4gICAgICBnbm9tZS1rZXly
aW5nLWRhZW1vbls5NzRdOiDikJtbMDsxOzM4OjU6MTg1bWRpc2NvdmVyX290aGVyX2RhZW1v
bjogMOKQm1swbQ0KPiAgICAgIHhlbiB2aWYtMDogeGVuYnVzOiBzdGF0ZSByZXNldCBvY2N1
cnJlZCwgcmVjb25uZWN0aW5nDQo+ICAgICAgc3lzdGVtZFs2MjZdOiBTdGFydGVkIGRjb25m
LnNlcnZpY2UgLSBVc2VyIHByZWZlcmVuY2VzIGRhdGFiYXNlLg0KPiAgICAgIHhlbl9uZXRm
cm9udDogSW5pdGlhbGlzaW5nIFhlbiB2aXJ0dWFsIGV0aGVybmV0IGRyaXZlcg0KPiAgICAg
IHZpZiB2aWYtMDogeGVuYnVzOiBzdGF0ZSByZXNldCBvY2N1cnJlZCwgcmVjb25uZWN0aW5n
DQo+IA0KPiBBbmQgdGhlIGNhbGwgdHJhY2Ugb2YgdGhlIHNwaW5uaW5nIHhlbndhdGNoIHRo
cmVhZCBpczoNCj4gDQo+ICAgICAgdGFzazp4ZW53YXRjaCAgICAgICAgc3RhdGU6RCBzdGFj
azowICAgICBwaWQ6NjQgICAgdGdpZDo2NCAgICBwcGlkOjIgICAgICB0YXNrX2ZsYWdzOjB4
Mjg4MDQwIGZsYWdzOjB4MDAwODAwMDANCj4gICAgICBDYWxsIFRyYWNlOg0KPiAgICAgICA8
VEFTSz4NCj4gICAgICAgX19zY2hlZHVsZSsweDJmMy8weDc4MA0KPiAgICAgICBzY2hlZHVs
ZSsweDI3LzB4ODANCj4gICAgICAgeHNfd2FpdF9mb3JfcmVwbHkrMHhhYi8weDFmMA0KPiAg
ICAgICA/IF9fcGZ4X2F1dG9yZW1vdmVfd2FrZV9mdW5jdGlvbisweDEwLzB4MTANCj4gICAg
ICAgeHNfdGFsa3YrMHhlYy8weDIwMA0KPiAgICAgICB4c19zaW5nbGUrMHg0YS8weDcwDQo+
ICAgICAgIHhlbmJ1c19nYXRoZXIrMHhlNC8weDFhMA0KPiAgICAgICB4ZW5idXNfcmVhZF9k
cml2ZXJfc3RhdGUrMHg0Mi8weDcwDQo+ICAgICAgIHhlbm5ldF9idXNfY2xvc2UrMHgxMTMv
MHgyYzAgW3hlbl9uZXRmcm9udF0NCj4gICAgICAgPyBfX3BmeF9hdXRvcmVtb3ZlX3dha2Vf
ZnVuY3Rpb24rMHgxMC8weDEwDQo+ICAgICAgIHhlbm5ldF9yZW1vdmUrMHgxNi8weDgwIFt4
ZW5fbmV0ZnJvbnRdDQo+ICAgICAgIHhlbmJ1c19kZXZfcmVtb3ZlKzB4NzEvMHhmMA0KPiAg
ICAgICBkZXZpY2VfcmVsZWFzZV9kcml2ZXJfaW50ZXJuYWwrMHgxOWMvMHgyMDANCj4gICAg
ICAgYnVzX3JlbW92ZV9kZXZpY2UrMHhjNi8weDEzMA0KPiAgICAgICBkZXZpY2VfZGVsKzB4
MTYwLzB4M2UwDQo+ICAgICAgIGRldmljZV91bnJlZ2lzdGVyKzB4MTcvMHg2MA0KPiAgICAg
ICB4ZW5idXNfZGV2X2NoYW5nZWQuY29sZCsweDVlLzB4NmINCj4gICAgICAgPyBfX3BmeF94
ZW53YXRjaF90aHJlYWQrMHgxMC8weDEwDQo+ICAgICAgIHhlbndhdGNoX3RocmVhZCsweDky
LzB4MWMwDQo+ICAgICAgID8gX19wZnhfYXV0b3JlbW92ZV93YWtlX2Z1bmN0aW9uKzB4MTAv
MHgxMA0KPiAgICAgICBrdGhyZWFkKzB4ZmMvMHgyNDANCj4gICAgICAgPyBfX3BmeF9rdGhy
ZWFkKzB4MTAvMHgxMA0KPiAgICAgICByZXRfZnJvbV9mb3JrKzB4ZjUvMHgxMTANCj4gICAg
ICAgPyBfX3BmeF9rdGhyZWFkKzB4MTAvMHgxMA0KPiAgICAgICByZXRfZnJvbV9mb3JrX2Fz
bSsweDFhLzB4MzANCj4gICAgICAgPC9UQVNLPg0KPiAgICAgIHRhc2s6eGVuYnVzICAgICAg
ICAgIHN0YXRlOlMgc3RhY2s6MCAgICAgcGlkOjYzICAgIHRnaWQ6NjMgICAgcHBpZDoyICAg
ICAgdGFza19mbGFnczoweDIwODA0MCBmbGFnczoweDAwMDgwMDAwDQo+ICAgICAgQ2FsbCBU
cmFjZToNCj4gICAgICAgPFRBU0s+DQo+ICAgICAgIF9fc2NoZWR1bGUrMHgyZjMvMHg3ODAN
Cj4gICAgICAgPyBfX3BmeF94ZW5idXNfdGhyZWFkKzB4MTAvMHgxMA0KPiAgICAgICBzY2hl
ZHVsZSsweDI3LzB4ODANCj4gICAgICAgeGVuYnVzX3RocmVhZCsweDFhOC8weDIwMA0KPiAg
ICAgICA/IF9fcGZ4X2F1dG9yZW1vdmVfd2FrZV9mdW5jdGlvbisweDEwLzB4MTANCj4gICAg
ICAga3RocmVhZCsweGZjLzB4MjQwDQo+ICAgICAgID8gX19wZnhfa3RocmVhZCsweDEwLzB4
MTANCj4gICAgICAgcmV0X2Zyb21fZm9yaysweGY1LzB4MTEwDQo+ICAgICAgID8gX19wZnhf
a3RocmVhZCsweDEwLzB4MTANCj4gICAgICAgcmV0X2Zyb21fZm9ya19hc20rMHgxYS8weDMw
DQo+ICAgICAgIDwvVEFTSz4NCj4gDQo+ICh0ZWNobmljYWxseSwgYHRvcGAgc2F5cyBpdCdz
IHRoZSB4ZW5idXMgdGhyZWFkIHNwaW5uaW5nLCBidXQgaXQgbG9va3MNCj4gbGlrZSB0aGUg
YWN0dWFsIGlzc3VlIGlzIGluIHhlbndhdGNoIG9uZSkNCj4gDQo+IE5vdGUgdGhhdCBvdGhl
ciB4ZW53YXRjaCBhY3Rpb25zIGluIHRoaXMgZG9tVSBhcmUgbm90IGV4ZWN1dGVkLCBmb3IN
Cj4gZXhhbXBsZSBgeGwgc3lzcnFgIGRvZXMgbm90aGluZy4gTm90IHN1cnByaXNpbmcsIGdp
dmVuIHhlbndhdGNoIHRocmVhZA0KPiBpcyBidXN5Li4uIEZvcnR1bmF0ZWx5LCBpdCBibG9j
a3Mgb25seSBhIHNpbmdsZSB2Q1BVLCBzbyBJJ20gYWJsZSB0bw0KPiBpbnRlcmFjdCB3aXRo
IHRoZSBkb21VIG92ZXIgY29uc29sZSAodG8gZ2V0IHRoZSBhYm92ZSB0cmFjZXMpLg0KPiAN
Cj4gSXQgaXNuJ3QgYSByZWxpYWJsZSBmYWlsdXJlLCBpbiB0aGlzIHRlc3QgcnVuIGl0IGZh
aWxlZCBvbmNlLCBvdXQgb2YgNA0KPiByZWxhdGVkIHRlc3RzLg0KPiANCj4gVGhlIHNwZWNp
ZmljIHRlc3QgaXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9RdWJlc09TL3F1YmVzLWNvcmUtYWRt
aW4vYmxvYi9tYWluL3F1YmVzL3Rlc3RzL2ludGVnL25ldHdvcmsucHkjTDIzNA0KPiBJbiBz
aG9ydDoNCj4gMS4gU3RhcnQgYSBkb21VDQo+IDIuIFBhdXNlIGl0DQo+IDMuIEF0dGFjaCBu
ZXR3b3JrIChiYWNrZW5kIGlzICE9IGRvbTApDQo+IDQuIFVucGF1c2UNCj4gDQo+IFRCSCwg
SSdtIG5vdCBzdXJlIHdoeSB0aGUgInN0YXRlIHJlc2V0IG9jY3VycmVkIiBtZXNzYWdlIGlz
IHRyaWdnZXJlZCBhdA0KPiBhbGwsIEkgdGhpbmsgaXQgc2hvdWxkbid0IGJlIGluIHRoaXMg
Y2FzZS4uLg0KPiANCg0KU2Vjb25kIHRyeS4NCg0KDQpKdWVyZ2VuDQo=
--------------3unF3ejPwvXQuxwe8F5RecVi
Content-Type: text/x-patch; charset=UTF-8;
 name="0001-xenbus-add-xenbus_device-parameter-to-xenbus_read_dr.patch"
Content-Disposition: attachment;
 filename*0="0001-xenbus-add-xenbus_device-parameter-to-xenbus_read_dr.pa";
 filename*1="tch"
Content-Transfer-Encoding: base64

RnJvbSBiZTUwZjBhNDA0MTExNjM5Mjg2NGE5YWNiMzczMTVjOGI4YzA3NmE3IE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
CkRhdGU6IE1vbiwgOSBGZWIgMjAyNiAwODo0MjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg
MS8yXSB4ZW5idXM6IGFkZCB4ZW5idXNfZGV2aWNlIHBhcmFtZXRlciB0bwogeGVuYnVzX3Jl
YWRfZHJpdmVyX3N0YXRlKCkKCkluIG9yZGVyIHRvIHByZXBhcmUgY2hlY2tpbmcgdGhlIHhl
bmJ1cyBkZXZpY2Ugc3RhdHVzIGluCnhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZSgpLCBhZGQg
dGhlIHBvaW50ZXIgdG8gc3RydWN0IHhlbmJ1c19kZXZpY2UKYXMgYSBwYXJhbWV0ZXIuCgpT
aWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQogZHJp
dmVycy9uZXQveGVuLW5ldGZyb250LmMgICAgICAgICAgICAgICAgIHwgMzQgKysrKysrKysr
KystLS0tLS0tLS0tLQogZHJpdmVycy9wY2kveGVuLXBjaWZyb250LmMgICAgICAgICAgICAg
ICAgIHwgIDggKystLS0KIGRyaXZlcnMvc2NzaS94ZW4tc2NzaWZyb250LmMgICAgICAgICAg
ICAgICB8ICAyICstCiBkcml2ZXJzL3hlbi94ZW4tcGNpYmFjay94ZW5idXMuYyAgICAgICAg
ICAgfCAxMCArKystLS0tCiBkcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NsaWVudC5jICAg
ICAgICAgfCAgMyArLQogZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZS5jICAgICAg
ICAgIHwgIDYgKystLQogZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZV9mcm9udGVu
ZC5jIHwgIDIgKy0KIGluY2x1ZGUveGVuL3hlbmJ1cy5oICAgICAgICAgICAgICAgICAgICAg
ICB8ICAzICstCiA4IGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDMzIGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hlbi1uZXRmcm9udC5jIGIvZHJp
dmVycy9uZXQveGVuLW5ldGZyb250LmMKaW5kZXggN2MyMjIwMzY2NjIzLi5lMmRhOTc3Yzlj
NTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRmcm9udC5jCisrKyBiL2RyaXZl
cnMvbmV0L3hlbi1uZXRmcm9udC5jCkBAIC0xNjQ2LDcgKzE2NDYsNyBAQCBzdGF0aWMgaW50
IHhlbm5ldF94ZHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBicGZfcHJv
ZyAqcHJvZywKIAogCS8qIGF2b2lkIHRoZSByYWNlIHdpdGggWERQIGhlYWRyb29tIGFkanVz
dG1lbnQgKi8KIAl3YWl0X2V2ZW50KG1vZHVsZV93cSwKLQkJICAgeGVuYnVzX3JlYWRfZHJp
dmVyX3N0YXRlKG5wLT54YmRldi0+b3RoZXJlbmQpID09CisJCSAgIHhlbmJ1c19yZWFkX2Ry
aXZlcl9zdGF0ZShucC0+eGJkZXYsIG5wLT54YmRldi0+b3RoZXJlbmQpID09CiAJCSAgIFhl
bmJ1c1N0YXRlUmVjb25maWd1cmVkKTsKIAlucC0+bmV0ZnJvbnRfeGRwX2VuYWJsZWQgPSB0
cnVlOwogCkBAIC0xNzY0LDkgKzE3NjQsOSBAQCBzdGF0aWMgc3RydWN0IG5ldF9kZXZpY2Ug
Knhlbm5ldF9jcmVhdGVfZGV2KHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCiAJZG8gewog
CQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpOwog
CQllcnIgPSB3YWl0X2V2ZW50X3RpbWVvdXQobW9kdWxlX3dxLAotCQkJCSB4ZW5idXNfcmVh
ZF9kcml2ZXJfc3RhdGUoZGV2LT5vdGhlcmVuZCkgIT0KKwkJCQkgeGVuYnVzX3JlYWRfZHJp
dmVyX3N0YXRlKGRldiwgZGV2LT5vdGhlcmVuZCkgIT0KIAkJCQkgWGVuYnVzU3RhdGVDbG9z
ZWQgJiYKLQkJCQkgeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKGRldi0+b3RoZXJlbmQpICE9
CisJCQkJIHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShkZXYsIGRldi0+b3RoZXJlbmQpICE9
CiAJCQkJIFhlbmJ1c1N0YXRlVW5rbm93biwgWEVOTkVUX1RJTUVPVVQpOwogCX0gd2hpbGUg
KCFlcnIpOwogCkBAIC0yNjI3LDMxICsyNjI3LDMxIEBAIHN0YXRpYyB2b2lkIHhlbm5ldF9i
dXNfY2xvc2Uoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldikKIHsKIAlpbnQgcmV0OwogCi0J
aWYgKHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShkZXYtPm90aGVyZW5kKSA9PSBYZW5idXNT
dGF0ZUNsb3NlZCkKKwlpZiAoeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKGRldiwgZGV2LT5v
dGhlcmVuZCkgPT0gWGVuYnVzU3RhdGVDbG9zZWQpCiAJCXJldHVybjsKIAlkbyB7CiAJCXhl
bmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NpbmcpOwogCQlyZXQgPSB3
YWl0X2V2ZW50X3RpbWVvdXQobW9kdWxlX3dxLAotCQkJCSAgIHhlbmJ1c19yZWFkX2RyaXZl
cl9zdGF0ZShkZXYtPm90aGVyZW5kKSA9PQotCQkJCSAgIFhlbmJ1c1N0YXRlQ2xvc2luZyB8
fAotCQkJCSAgIHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShkZXYtPm90aGVyZW5kKSA9PQot
CQkJCSAgIFhlbmJ1c1N0YXRlQ2xvc2VkIHx8Ci0JCQkJICAgeGVuYnVzX3JlYWRfZHJpdmVy
X3N0YXRlKGRldi0+b3RoZXJlbmQpID09Ci0JCQkJICAgWGVuYnVzU3RhdGVVbmtub3duLAot
CQkJCSAgIFhFTk5FVF9USU1FT1VUKTsKKwkJCQl4ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUo
ZGV2LCBkZXYtPm90aGVyZW5kKSA9PQorCQkJCVhlbmJ1c1N0YXRlQ2xvc2luZyB8fAorCQkJ
CXhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShkZXYsIGRldi0+b3RoZXJlbmQpID09CisJCQkJ
WGVuYnVzU3RhdGVDbG9zZWQgfHwKKwkJCQl4ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUoZGV2
LCBkZXYtPm90aGVyZW5kKSA9PQorCQkJCVhlbmJ1c1N0YXRlVW5rbm93biwKKwkJCQlYRU5O
RVRfVElNRU9VVCk7CiAJfSB3aGlsZSAoIXJldCk7CiAKLQlpZiAoeGVuYnVzX3JlYWRfZHJp
dmVyX3N0YXRlKGRldi0+b3RoZXJlbmQpID09IFhlbmJ1c1N0YXRlQ2xvc2VkKQorCWlmICh4
ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUoZGV2LCBkZXYtPm90aGVyZW5kKSA9PSBYZW5idXNT
dGF0ZUNsb3NlZCkKIAkJcmV0dXJuOwogCiAJZG8gewogCQl4ZW5idXNfc3dpdGNoX3N0YXRl
KGRldiwgWGVuYnVzU3RhdGVDbG9zZWQpOwogCQlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQo
bW9kdWxlX3dxLAotCQkJCSAgIHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShkZXYtPm90aGVy
ZW5kKSA9PQotCQkJCSAgIFhlbmJ1c1N0YXRlQ2xvc2VkIHx8Ci0JCQkJICAgeGVuYnVzX3Jl
YWRfZHJpdmVyX3N0YXRlKGRldi0+b3RoZXJlbmQpID09Ci0JCQkJICAgWGVuYnVzU3RhdGVV
bmtub3duLAotCQkJCSAgIFhFTk5FVF9USU1FT1VUKTsKKwkJCQl4ZW5idXNfcmVhZF9kcml2
ZXJfc3RhdGUoZGV2LCBkZXYtPm90aGVyZW5kKSA9PQorCQkJCVhlbmJ1c1N0YXRlQ2xvc2Vk
IHx8CisJCQkJeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKGRldiwgZGV2LT5vdGhlcmVuZCkg
PT0KKwkJCQlYZW5idXNTdGF0ZVVua25vd24sCisJCQkJWEVOTkVUX1RJTUVPVVQpOwogCX0g
d2hpbGUgKCFyZXQpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS94ZW4tcGNpZnJv
bnQuYyBiL2RyaXZlcnMvcGNpL3hlbi1wY2lmcm9udC5jCmluZGV4IDExNjM2NjM0YWU1MS4u
Y2QyMmJmOTg0MDI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYwor
KysgYi9kcml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYwpAQCAtODU2LDcgKzg1Niw3IEBAIHN0
YXRpYyB2b2lkIHBjaWZyb250X3RyeV9jb25uZWN0KHN0cnVjdCBwY2lmcm9udF9kZXZpY2Ug
KnBkZXYpCiAJaW50IGVycjsKIAogCS8qIE9ubHkgY29ubmVjdCBvbmNlICovCi0JaWYgKHhl
bmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShwZGV2LT54ZGV2LT5ub2RlbmFtZSkgIT0KKwlpZiAo
eGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKHBkZXYtPnhkZXYsIHBkZXYtPnhkZXYtPm5vZGVu
YW1lKSAhPQogCSAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2VkKQogCQlyZXR1cm47CiAKQEAg
LTg3Niw3ICs4NzYsNyBAQCBzdGF0aWMgaW50IHBjaWZyb250X3RyeV9kaXNjb25uZWN0KHN0
cnVjdCBwY2lmcm9udF9kZXZpY2UgKnBkZXYpCiAJZW51bSB4ZW5idXNfc3RhdGUgcHJldl9z
dGF0ZTsKIAogCi0JcHJldl9zdGF0ZSA9IHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShwZGV2
LT54ZGV2LT5ub2RlbmFtZSk7CisJcHJldl9zdGF0ZSA9IHhlbmJ1c19yZWFkX2RyaXZlcl9z
dGF0ZShwZGV2LT54ZGV2LCBwZGV2LT54ZGV2LT5ub2RlbmFtZSk7CiAKIAlpZiAocHJldl9z
dGF0ZSA+PSBYZW5idXNTdGF0ZUNsb3NpbmcpCiAJCWdvdG8gb3V0OwpAQCAtODk1LDcgKzg5
NSw3IEBAIHN0YXRpYyBpbnQgcGNpZnJvbnRfdHJ5X2Rpc2Nvbm5lY3Qoc3RydWN0IHBjaWZy
b250X2RldmljZSAqcGRldikKIAogc3RhdGljIHZvaWQgcGNpZnJvbnRfYXR0YWNoX2Rldmlj
ZXMoc3RydWN0IHBjaWZyb250X2RldmljZSAqcGRldikKIHsKLQlpZiAoeGVuYnVzX3JlYWRf
ZHJpdmVyX3N0YXRlKHBkZXYtPnhkZXYtPm5vZGVuYW1lKSA9PQorCWlmICh4ZW5idXNfcmVh
ZF9kcml2ZXJfc3RhdGUocGRldi0+eGRldiwgcGRldi0+eGRldi0+bm9kZW5hbWUpID09CiAJ
ICAgIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZykKIAkJcGNpZnJvbnRfY29ubmVjdChwZGV2
KTsKIH0KQEAgLTkwOSw3ICs5MDksNyBAQCBzdGF0aWMgaW50IHBjaWZyb250X2RldGFjaF9k
ZXZpY2VzKHN0cnVjdCBwY2lmcm9udF9kZXZpY2UgKnBkZXYpCiAJc3RydWN0IHBjaV9kZXYg
KnBjaV9kZXY7CiAJY2hhciBzdHJbNjRdOwogCi0Jc3RhdGUgPSB4ZW5idXNfcmVhZF9kcml2
ZXJfc3RhdGUocGRldi0+eGRldi0+bm9kZW5hbWUpOworCXN0YXRlID0geGVuYnVzX3JlYWRf
ZHJpdmVyX3N0YXRlKHBkZXYtPnhkZXYsIHBkZXYtPnhkZXYtPm5vZGVuYW1lKTsKIAlpZiAo
c3RhdGUgPT0gWGVuYnVzU3RhdGVJbml0aWFsaXNlZCkgewogCQlkZXZfZGJnKCZwZGV2LT54
ZGV2LT5kZXYsICJIYW5kbGUgc2tpcHBlZCBjb25uZWN0LlxuIik7CiAJCS8qIFdlIG1pc3Nl
ZCBDb25uZWN0ZWQgYW5kIG5lZWQgdG8gaW5pdGlhbGl6ZS4gKi8KZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvc2NzaS94ZW4tc2NzaWZyb250LmMgYi9kcml2ZXJzL3Njc2kveGVuLXNjc2lmcm9u
dC5jCmluZGV4IDkyNDAyNTMwNTc1My4uZWY3NGQ0ZGE1YWIwIDEwMDY0NAotLS0gYS9kcml2
ZXJzL3Njc2kveGVuLXNjc2lmcm9udC5jCisrKyBiL2RyaXZlcnMvc2NzaS94ZW4tc2NzaWZy
b250LmMKQEAgLTExNzUsNyArMTE3NSw3IEBAIHN0YXRpYyB2b2lkIHNjc2lmcm9udF9iYWNr
ZW5kX2NoYW5nZWQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAkJCXJldHVybjsKIAkJ
fQogCi0JCWlmICh4ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUoZGV2LT5ub2RlbmFtZSkgPT0K
KwkJaWYgKHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShkZXYsIGRldi0+bm9kZW5hbWUpID09
CiAJCSAgICBYZW5idXNTdGF0ZUluaXRpYWxpc2VkKQogCQkJc2NzaWZyb250X2RvX2x1bl9o
b3RwbHVnKGluZm8sIFZTQ1NJRlJPTlRfT1BfQUREX0xVTik7CiAKZGlmZiAtLWdpdCBhL2Ry
aXZlcnMveGVuL3hlbi1wY2liYWNrL3hlbmJ1cy5jIGIvZHJpdmVycy94ZW4veGVuLXBjaWJh
Y2sveGVuYnVzLmMKaW5kZXggYjExZTQwMWYxYjFlLi40YmQxYzdhODk1N2UgMTAwNjQ0Ci0t
LSBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3hlbmJ1cy5jCisrKyBiL2RyaXZlcnMveGVu
L3hlbi1wY2liYWNrL3hlbmJ1cy5jCkBAIC0xNDksMTIgKzE0OSwxMiBAQCBzdGF0aWMgaW50
IHhlbl9wY2lia19hdHRhY2goc3RydWN0IHhlbl9wY2lia19kZXZpY2UgKnBkZXYpCiAKIAlt
dXRleF9sb2NrKCZwZGV2LT5kZXZfbG9jayk7CiAJLyogTWFrZSBzdXJlIHdlIG9ubHkgZG8g
dGhpcyBzZXR1cCBvbmNlICovCi0JaWYgKHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShwZGV2
LT54ZGV2LT5ub2RlbmFtZSkgIT0KKwlpZiAoeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKHBk
ZXYtPnhkZXYsIHBkZXYtPnhkZXYtPm5vZGVuYW1lKSAhPQogCSAgICBYZW5idXNTdGF0ZUlu
aXRpYWxpc2VkKQogCQlnb3RvIG91dDsKIAogCS8qIFdhaXQgZm9yIGZyb250ZW5kIHRvIHN0
YXRlIHRoYXQgaXQgaGFzIHB1Ymxpc2hlZCB0aGUgY29uZmlndXJhdGlvbiAqLwotCWlmICh4
ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUocGRldi0+eGRldi0+b3RoZXJlbmQpICE9CisJaWYg
KHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShwZGV2LT54ZGV2LCBwZGV2LT54ZGV2LT5vdGhl
cmVuZCkgIT0KIAkgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNlZCkKIAkJZ290byBvdXQ7CiAK
QEAgLTM3NCw3ICszNzQsNyBAQCBzdGF0aWMgaW50IHhlbl9wY2lia19yZWNvbmZpZ3VyZShz
dHJ1Y3QgeGVuX3BjaWJrX2RldmljZSAqcGRldiwKIAlkZXZfZGJnKCZwZGV2LT54ZGV2LT5k
ZXYsICJSZWNvbmZpZ3VyaW5nIGRldmljZSAuLi5cbiIpOwogCiAJbXV0ZXhfbG9jaygmcGRl
di0+ZGV2X2xvY2spOwotCWlmICh4ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUocGRldi0+eGRl
di0+bm9kZW5hbWUpICE9IHN0YXRlKQorCWlmICh4ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUo
cGRldi0+eGRldiwgcGRldi0+eGRldi0+bm9kZW5hbWUpICE9IHN0YXRlKQogCQlnb3RvIG91
dDsKIAogCWVyciA9IHhlbmJ1c19zY2FuZihYQlRfTklMLCBwZGV2LT54ZGV2LT5ub2RlbmFt
ZSwgIm51bV9kZXZzIiwgIiVkIiwKQEAgLTU3Miw3ICs1NzIsNyBAQCBzdGF0aWMgaW50IHhl
bl9wY2lia19zZXR1cF9iYWNrZW5kKHN0cnVjdCB4ZW5fcGNpYmtfZGV2aWNlICpwZGV2KQog
CS8qIEl0J3MgcG9zc2libGUgd2UgY291bGQgZ2V0IHRoZSBjYWxsIHRvIHNldHVwIHR3aWNl
LCBzbyBtYWtlIHN1cmUKIAkgKiB3ZSdyZSBub3QgYWxyZWFkeSBjb25uZWN0ZWQuCiAJICov
Ci0JaWYgKHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShwZGV2LT54ZGV2LT5ub2RlbmFtZSkg
IT0KKwlpZiAoeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKHBkZXYtPnhkZXYsIHBkZXYtPnhk
ZXYtPm5vZGVuYW1lKSAhPQogCSAgICBYZW5idXNTdGF0ZUluaXRXYWl0KQogCQlnb3RvIG91
dDsKIApAQCAtNjYyLDcgKzY2Miw3IEBAIHN0YXRpYyB2b2lkIHhlbl9wY2lia19iZV93YXRj
aChzdHJ1Y3QgeGVuYnVzX3dhdGNoICp3YXRjaCwKIAlzdHJ1Y3QgeGVuX3BjaWJrX2Rldmlj
ZSAqcGRldiA9CiAJICAgIGNvbnRhaW5lcl9vZih3YXRjaCwgc3RydWN0IHhlbl9wY2lia19k
ZXZpY2UsIGJlX3dhdGNoKTsKIAotCXN3aXRjaCAoeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRl
KHBkZXYtPnhkZXYtPm5vZGVuYW1lKSkgeworCXN3aXRjaCAoeGVuYnVzX3JlYWRfZHJpdmVy
X3N0YXRlKHBkZXYtPnhkZXYsIHBkZXYtPnhkZXYtPm5vZGVuYW1lKSkgewogCWNhc2UgWGVu
YnVzU3RhdGVJbml0V2FpdDoKIAkJeGVuX3BjaWJrX3NldHVwX2JhY2tlbmQocGRldik7CiAJ
CWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jbGllbnQu
YyBiL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMKaW5kZXggMmRjODc0ZmI1
NTA2Li42ZWQwY2Q4ZTk2NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5i
dXNfY2xpZW50LmMKKysrIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jbGllbnQuYwpA
QCAtOTM2LDcgKzkzNiw4IEBAIHN0YXRpYyBpbnQgeGVuYnVzX3VubWFwX3JpbmdfaHZtKHN0
cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsIHZvaWQgKnZhZGRyKQogICogUmV0dXJuczogdGhl
IHN0YXRlIG9mIHRoZSBkcml2ZXIgcm9vdGVkIGF0IHRoZSBnaXZlbiBzdG9yZSBwYXRoLCBv
cgogICogWGVuYnVzU3RhdGVVbmtub3duIGlmIG5vIHN0YXRlIGNhbiBiZSByZWFkLgogICov
Ci1lbnVtIHhlbmJ1c19zdGF0ZSB4ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUoY29uc3QgY2hh
ciAqcGF0aCkKK2VudW0geGVuYnVzX3N0YXRlIHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShj
b25zdCBzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAorCQkJCQkgICBjb25zdCBjaGFyICpw
YXRoKQogewogCWVudW0geGVuYnVzX3N0YXRlIHJlc3VsdDsKIAlpbnQgZXJyID0geGVuYnVz
X2dhdGhlcihYQlRfTklMLCBwYXRoLCAic3RhdGUiLCAiJWQiLCAmcmVzdWx0LCBOVUxMKTsK
ZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmUuYyBiL2RyaXZl
cnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmUuYwppbmRleCA4NmZlNmU3NzkwNTYuLmQ0ZjFk
YmY3Y2JjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZS5j
CisrKyBiL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfcHJvYmUuYwpAQCAtMTkxLDcgKzE5
MSw3IEBAIHZvaWQgeGVuYnVzX290aGVyZW5kX2NoYW5nZWQoc3RydWN0IHhlbmJ1c193YXRj
aCAqd2F0Y2gsCiAJCXJldHVybjsKIAl9CiAKLQlzdGF0ZSA9IHhlbmJ1c19yZWFkX2RyaXZl
cl9zdGF0ZShkZXYtPm90aGVyZW5kKTsKKwlzdGF0ZSA9IHhlbmJ1c19yZWFkX2RyaXZlcl9z
dGF0ZShkZXYsIGRldi0+b3RoZXJlbmQpOwogCiAJZGV2X2RiZygmZGV2LT5kZXYsICJzdGF0
ZSBpcyAlZCwgKCVzKSwgJXMsICVzXG4iLAogCQlzdGF0ZSwgeGVuYnVzX3N0cnN0YXRlKHN0
YXRlKSwgZGV2LT5vdGhlcmVuZF93YXRjaC5ub2RlLCBwYXRoKTsKQEAgLTM2NCw3ICszNjQs
NyBAQCB2b2lkIHhlbmJ1c19kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKl9kZXYpCiAJICog
Y2xvc2VkLgogCSAqLwogCWlmICghZHJ2LT5hbGxvd19yZWJpbmQgfHwKLQkgICAgeGVuYnVz
X3JlYWRfZHJpdmVyX3N0YXRlKGRldi0+bm9kZW5hbWUpID09IFhlbmJ1c1N0YXRlQ2xvc2lu
ZykKKwkgICAgeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKGRldiwgZGV2LT5ub2RlbmFtZSkg
PT0gWGVuYnVzU3RhdGVDbG9zaW5nKQogCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVu
YnVzU3RhdGVDbG9zZWQpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoeGVuYnVzX2Rldl9yZW1v
dmUpOwpAQCAtNTE0LDcgKzUxNCw3IEBAIGludCB4ZW5idXNfcHJvYmVfbm9kZShzdHJ1Y3Qg
eGVuX2J1c190eXBlICpidXMsCiAJc2l6ZV90IHN0cmluZ2xlbjsKIAljaGFyICp0bXBzdHJp
bmc7CiAKLQllbnVtIHhlbmJ1c19zdGF0ZSBzdGF0ZSA9IHhlbmJ1c19yZWFkX2RyaXZlcl9z
dGF0ZShub2RlbmFtZSk7CisJZW51bSB4ZW5idXNfc3RhdGUgc3RhdGUgPSB4ZW5idXNfcmVh
ZF9kcml2ZXJfc3RhdGUoTlVMTCwgbm9kZW5hbWUpOwogCiAJaWYgKHN0YXRlICE9IFhlbmJ1
c1N0YXRlSW5pdGlhbGlzaW5nKSB7CiAJCS8qIERldmljZSBpcyBub3QgbmV3LCBzbyBpZ25v
cmUgaXQuICBUaGlzIGNhbiBoYXBwZW4gaWYgYQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4v
eGVuYnVzL3hlbmJ1c19wcm9iZV9mcm9udGVuZC5jIGIvZHJpdmVycy94ZW4veGVuYnVzL3hl
bmJ1c19wcm9iZV9mcm9udGVuZC5jCmluZGV4IDZkMTgxOTI2OWNiZS4uNDE4MzI5OTRmOGIx
IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3Byb2JlX2Zyb250ZW5k
LmMKKysrIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZV9mcm9udGVuZC5jCkBA
IC0yNTUsNyArMjU1LDcgQEAgc3RhdGljIGludCBwcmludF9kZXZpY2Vfc3RhdHVzKHN0cnVj
dCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKIAl9IGVsc2UgaWYgKHhlbmRldi0+c3RhdGUg
PCBYZW5idXNTdGF0ZUNvbm5lY3RlZCkgewogCQllbnVtIHhlbmJ1c19zdGF0ZSByc3RhdGUg
PSBYZW5idXNTdGF0ZVVua25vd247CiAJCWlmICh4ZW5kZXYtPm90aGVyZW5kKQotCQkJcnN0
YXRlID0geGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKHhlbmRldi0+b3RoZXJlbmQpOworCQkJ
cnN0YXRlID0geGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKHhlbmRldiwgeGVuZGV2LT5vdGhl
cmVuZCk7CiAJCXByX3dhcm4oIlRpbWVvdXQgY29ubmVjdGluZyB0byBkZXZpY2U6ICVzIChs
b2NhbCBzdGF0ZSAlZCwgcmVtb3RlIHN0YXRlICVkKVxuIiwKIAkJCXhlbmRldi0+bm9kZW5h
bWUsIHhlbmRldi0+c3RhdGUsIHJzdGF0ZSk7CiAJfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94
ZW4veGVuYnVzLmggYi9pbmNsdWRlL3hlbi94ZW5idXMuaAppbmRleCBjOTRjYWY4NTJhZWEu
LjE1MzE5ZGE2NWI3ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuYnVzLmgKKysrIGIv
aW5jbHVkZS94ZW4veGVuYnVzLmgKQEAgLTIyOCw3ICsyMjgsOCBAQCBpbnQgeGVuYnVzX3Vu
bWFwX3JpbmdfdmZyZWUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwgdm9pZCAqdmFkZHIp
OwogaW50IHhlbmJ1c19hbGxvY19ldnRjaG4oc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwg
ZXZ0Y2huX3BvcnRfdCAqcG9ydCk7CiBpbnQgeGVuYnVzX2ZyZWVfZXZ0Y2huKHN0cnVjdCB4
ZW5idXNfZGV2aWNlICpkZXYsIGV2dGNobl9wb3J0X3QgcG9ydCk7CiAKLWVudW0geGVuYnVz
X3N0YXRlIHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShjb25zdCBjaGFyICpwYXRoKTsKK2Vu
dW0geGVuYnVzX3N0YXRlIHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShjb25zdCBzdHJ1Y3Qg
eGVuYnVzX2RldmljZSAqZGV2LAorCQkJCQkgICBjb25zdCBjaGFyICpwYXRoKTsKIAogX19w
cmludGYoMywgNCkKIHZvaWQgeGVuYnVzX2Rldl9lcnJvcihzdHJ1Y3QgeGVuYnVzX2Rldmlj
ZSAqZGV2LCBpbnQgZXJyLCBjb25zdCBjaGFyICpmbXQsIC4uLik7Ci0tIAoyLjUzLjAKCg==

--------------3unF3ejPwvXQuxwe8F5RecVi
Content-Type: text/x-patch; charset=UTF-8;
 name="0002-xen-xenbus-better-handle-backend-crash.patch"
Content-Disposition: attachment;
 filename="0002-xen-xenbus-better-handle-backend-crash.patch"
Content-Transfer-Encoding: base64

RnJvbSAwMjkyZjg0M2JmZjA1YzFiMjY2YzMyZTllODAyY2EzZjAxZTAzMGYwIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+
CkRhdGU6IE1vbiwgMjYgSmFuIDIwMjYgMDg6NDU6MTcgKzAxMDAKU3ViamVjdDogW1BBVENI
IDIvMl0geGVuL3hlbmJ1czogYmV0dGVyIGhhbmRsZSBiYWNrZW5kIGNyYXNoCk1JTUUtVmVy
c2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250
ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpXaGVuIHRoZSBiYWNrZW5kIGRvbWFpbiBj
cmFzaGVzLCBjb29yZGluYXRlZCBkZXZpY2UgY2xlYW51cCBpcyBub3QKcG9zc2libGUgKGFz
IGl0IGludm9sdmVzIHdhaXRpbmcgZm9yIHRoZSBiYWNrZW5kIHN0YXRlIGNoYW5nZSkuIElu
IHRoYXQKY2FzZSwgdG9vbHN0YWNrIGZvcmNlZnVsbHkgcmVtb3ZlcyBmcm9udGVuZCB4ZW5z
dG9yZSBlbnRyaWVzLgp4ZW5idXNfZGV2X2NoYW5nZWQoKSBoYW5kbGVzIHRoaXMgY2FzZSwg
YW5kIHRyaWdnZXJzIGRldmljZSBjbGVhbnVwLgpJdCdzIHBvc3NpYmxlIHRoYXQgdG9vbHN0
YWNrIG1hbmFnZXMgdG8gY29ubmVjdCBuZXcgZGV2aWNlIGluIHRoYXQKcGxhY2UsIGJlZm9y
ZSB4ZW5idXNfZGV2X2NoYW5nZWQoKSBub3RpY2VzIHRoZSBvbGQgb25lIGlzIG1pc3Npbmcu
IElmCnRoYXQgaGFwcGVucywgbmV3IG9uZSB3b24ndCBiZSBwcm9iZWQgYW5kIHdpbGwgZm9y
ZXZlciByZW1haW4gaW4KWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcuCgpGaXggdGhpcyBieSBj
aGVja2luZyB0aGUgZnJvbnRlbmQncyBzdGF0ZSBpbiBYZW5zdG9yZS4gSW4gY2FzZSBpdCBo
YXMKYmVlbiByZXNldCB0byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyBieSBYZW4gdG9vbHMs
IGNvbnNpZGVyIHRoaXMKYmVpbmcgdGhlIHJlc3VsdCBvZiBhbiB1bnBsdWcrcGx1ZyBvcGVy
YXRpb24uCgpJdCdzIGltcG9ydGFudCB0aGF0IGNsZWFudXAgb24gc3VjaCB1bnBsdWcgZG9l
c24ndCBtb2RpZnkgWGVuc3RvcmUKZW50cmllcyAoZXNwZWNpYWxseSB0aGUgInN0YXRlIiBr
ZXkpIGFzIGl0IGJlbG9uZyB0byB0aGUgbmV3IGRldmljZQp0byBiZSBwcm9iZWQgLSBjaGFu
Z2luZyBpdCB3b3VsZCBkZXJhaWwgZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb24gdG8gdGhlCm5l
dyBiYWNrZW5kIChtb3N0IGxpa2VseSwgY2xvc2luZyB0aGUgZGV2aWNlIGJlZm9yZSBpdCB3
YXMgZXZlbgpjb25uZWN0ZWQpLiBIYW5kbGUgdGhpcyBjYXNlIGJ5IHNldHRpbmcgbmV3IHhl
bmJ1c19kZXZpY2UtPnZhbmlzaGVkCmZsYWcgdG8gdHJ1ZSwgYW5kIGNoZWNrIGl0IGJlZm9y
ZSBjaGFuZ2luZyBzdGF0ZSBlbnRyeS4KCkFuZCBldmVuIGlmIHhlbmJ1c19kZXZfY2hhbmdl
ZCgpIGNvcnJlY3RseSBkZXRlY3RzIHRoZSBkZXZpY2Ugd2FzCmZvcmNlZnVsbHkgcmVtb3Zl
ZCwgdGhlIGNsZWFudXAgaGFuZGxpbmcgaXMgc3RpbGwgcmFjeS4gU2luY2UgdGhpcyB3aG9s
ZQpoYW5kbGluZyBkb2Vzbid0IGhhcHBlbmVkIGluIGEgc2luZ2xlIFhlbnN0b3JlIHRyYW5z
YWN0aW9uLCBpdCdzIHBvc3NpYmxlCnRoYXQgdG9vbHN0YWNrIG1pZ2h0IHB1dCBhIG5ldyBk
ZXZpY2UgdGhlcmUgYWxyZWFkeS4gQXZvaWQgcmUtY3JlYXRpbmcKdGhlIHN0YXRlIGtleSAo
d2hpY2ggaW4gdGhlIGNhc2Ugb2YgbG9vc2luZyB0aGUgcmFjZSB3b3VsZCBhY3R1YWxseQpj
bG9zZSBuZXdseSBhdHRhY2hlZCBkZXZpY2UpLgoKVGhlIHByb2JsZW0gZG9lcyBub3QgYXBw
bHkgdG8gZnJvbnRlbmQgZG9tYWluIGNyYXNoLCBhcyB0aGlzIGNhc2UKaW52b2x2ZXMgY29v
cmRpbmF0ZWQgY2xlYW51cC4KClByb2JsZW0gb3JpZ2luYWxseSByZXBvcnRlZCBhdApodHRw
czovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvYU9adml2eVo5WWhWV0RMTkBtYWlsLWl0
bC9ULyN0LAppbmNsdWRpbmcgcmVwcm9kdWN0aW9uIHN0ZXBzLgoKQmFzZWQtb24tcGF0Y2gt
Ynk6IE1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSA8bWFybWFyZWtAaW52aXNpYmxldGhp
bmdzbGFiLmNvbT4KU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu
Y29tPgotLS0KIGRyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMgfCAxMyArKysr
KysrKystLQogZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZS5jICB8IDM2ICsrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ZW4veGVuYnVzLmggICAgICAg
ICAgICAgICB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2Ns
aWVudC5jIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jbGllbnQuYwppbmRleCA2ZWQw
Y2Q4ZTk2NzYuLjAwZWU4ZjYyYzI4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4veGVuYnVz
L3hlbmJ1c19jbGllbnQuYworKysgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NsaWVu
dC5jCkBAIC0yMjYsOCArMjI2LDkgQEAgX194ZW5idXNfc3dpdGNoX3N0YXRlKHN0cnVjdCB4
ZW5idXNfZGV2aWNlICpkZXYsCiAJc3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7CiAJ
aW50IGN1cnJlbnRfc3RhdGU7CiAJaW50IGVyciwgYWJvcnQ7CisJYm9vbCB2YW5pc2hlZCA9
IGZhbHNlOwogCi0JaWYgKHN0YXRlID09IGRldi0+c3RhdGUpCisJaWYgKHN0YXRlID09IGRl
di0+c3RhdGUgfHwgZGV2LT52YW5pc2hlZCkKIAkJcmV0dXJuIDA7CiAKIGFnYWluOgpAQCAt
MjQyLDYgKzI0MywxMCBAQCBfX3hlbmJ1c19zd2l0Y2hfc3RhdGUoc3RydWN0IHhlbmJ1c19k
ZXZpY2UgKmRldiwKIAllcnIgPSB4ZW5idXNfc2NhbmYoeGJ0LCBkZXYtPm5vZGVuYW1lLCAi
c3RhdGUiLCAiJWQiLCAmY3VycmVudF9zdGF0ZSk7CiAJaWYgKGVyciAhPSAxKQogCQlnb3Rv
IGFib3J0OworCWlmIChjdXJyZW50X3N0YXRlICE9IGRldi0+c3RhdGUgJiYgY3VycmVudF9z
dGF0ZSA9PSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZykgeworCQl2YW5pc2hlZCA9IHRydWU7
CisJCWdvdG8gYWJvcnQ7CisJfQogCiAJZXJyID0geGVuYnVzX3ByaW50Zih4YnQsIGRldi0+
bm9kZW5hbWUsICJzdGF0ZSIsICIlZCIsIHN0YXRlKTsKIAlpZiAoZXJyKSB7CkBAIC0yNTYs
NyArMjYxLDcgQEAgX194ZW5idXNfc3dpdGNoX3N0YXRlKHN0cnVjdCB4ZW5idXNfZGV2aWNl
ICpkZXYsCiAJCWlmIChlcnIgPT0gLUVBR0FJTiAmJiAhYWJvcnQpCiAJCQlnb3RvIGFnYWlu
OwogCQl4ZW5idXNfc3dpdGNoX2ZhdGFsKGRldiwgZGVwdGgsIGVyciwgImVuZGluZyB0cmFu
c2FjdGlvbiIpOwotCX0gZWxzZQorCX0gZWxzZSBpZiAoIXZhbmlzaGVkKQogCQlkZXYtPnN0
YXRlID0gc3RhdGU7CiAKIAlyZXR1cm4gMDsKQEAgLTk0MCw2ICs5NDUsMTAgQEAgZW51bSB4
ZW5idXNfc3RhdGUgeGVuYnVzX3JlYWRfZHJpdmVyX3N0YXRlKGNvbnN0IHN0cnVjdCB4ZW5i
dXNfZGV2aWNlICpkZXYsCiAJCQkJCSAgIGNvbnN0IGNoYXIgKnBhdGgpCiB7CiAJZW51bSB4
ZW5idXNfc3RhdGUgcmVzdWx0OworCisJaWYgKGRldiAmJiBkZXYtPnZhbmlzaGVkKQorCQly
ZXR1cm4gWGVuYnVzU3RhdGVVbmtub3duOworCiAJaW50IGVyciA9IHhlbmJ1c19nYXRoZXIo
WEJUX05JTCwgcGF0aCwgInN0YXRlIiwgIiVkIiwgJnJlc3VsdCwgTlVMTCk7CiAJaWYgKGVy
cikKIAkJcmVzdWx0ID0gWGVuYnVzU3RhdGVVbmtub3duOwpkaWZmIC0tZ2l0IGEvZHJpdmVy
cy94ZW4veGVuYnVzL3hlbmJ1c19wcm9iZS5jIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1
c19wcm9iZS5jCmluZGV4IGQ0ZjFkYmY3Y2JjNC4uNDdlOTkyMDMyMDE0IDEwMDY0NAotLS0g
YS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3Byb2JlLmMKKysrIGIvZHJpdmVycy94ZW4v
eGVuYnVzL3hlbmJ1c19wcm9iZS5jCkBAIC00NDQsNiArNDQ0LDkgQEAgc3RhdGljIHZvaWQg
eGVuYnVzX2NsZWFudXBfZGV2aWNlcyhjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3QgYnVzX3R5
cGUgKmJ1cykKIAkJaW5mby5kZXYgPSBOVUxMOwogCQlidXNfZm9yX2VhY2hfZGV2KGJ1cywg
TlVMTCwgJmluZm8sIGNsZWFudXBfZGV2KTsKIAkJaWYgKGluZm8uZGV2KSB7CisJCQlkZXZf
d2FybigmaW5mby5kZXYtPmRldiwKKwkJCQkgImRldmljZSBmb3JjZWZ1bGx5IHJlbW92ZWQg
ZnJvbSB4ZW5zdG9yZVxuIik7CisJCQlpbmZvLmRldi0+dmFuaXNoZWQgPSB0cnVlOwogCQkJ
ZGV2aWNlX3VucmVnaXN0ZXIoJmluZm8uZGV2LT5kZXYpOwogCQkJcHV0X2RldmljZSgmaW5m
by5kZXYtPmRldik7CiAJCX0KQEAgLTY1OSw2ICs2NjIsMzkgQEAgdm9pZCB4ZW5idXNfZGV2
X2NoYW5nZWQoY29uc3QgY2hhciAqbm9kZSwgc3RydWN0IHhlbl9idXNfdHlwZSAqYnVzKQog
CQlyZXR1cm47CiAKIAlkZXYgPSB4ZW5idXNfZGV2aWNlX2ZpbmQocm9vdCwgJmJ1cy0+YnVz
KTsKKwkvKgorCSAqIEJhY2tlbmQgZG9tYWluIGNyYXNoIHJlc3VsdHMgaW4gbm90IGNvb3Jk
aW5hdGVkIGZyb250ZW5kIHJlbW92YWwsCisJICogd2l0aG91dCBnb2luZyB0aHJvdWdoIFhl
bmJ1c1N0YXRlQ2xvc2luZy4gSWYgdGhpcyBpcyBhIG5ldyBpbnN0YW5jZQorCSAqIG9mIHRo
ZSBzYW1lIGRldmljZSBYZW4gdG9vbHMgd2lsbCBoYXZlIHJlc2V0IHRoZSBzdGF0ZSB0bwor
CSAqIFhlbmJ1c1N0YXRlSW5pdGlhbGl6aW5nLgorCSAqIEl0IG1pZ2h0IGJlIHRoYXQgdGhl
IGJhY2tlbmQgY3Jhc2hlZCBlYXJseSBkdXJpbmcgdGhlIGluaXQgcGhhc2Ugb2YKKwkgKiBk
ZXZpY2Ugc2V0dXAsIGluIHdoaWNoIGNhc2UgdGhlIGtub3duIHN0YXRlIHdvdWxkIGhhdmUg
YmVlbgorCSAqIFhlbmJ1c1N0YXRlSW5pdGlhbGl6aW5nLiBTbyB0ZXN0IHRoZSBiYWNrZW5k
IGRvbWlkIHRvIG1hdGNoIHRoZQorCSAqIHNhdmVkIG9uZS4gSW4gY2FzZSB0aGUgbmV3IGJh
Y2tlbmQgaGFwcGVucyB0byBoYXZlIHRoZSBzYW1lIGRvbWlkIGFzCisJICogdGhlIG9sZCBv
bmUsIHdlIGNhbiBqdXN0IGNhcnJ5IG9uLCBhcyB0aGVyZSBpcyBubyBpbmNvbnNpc3RlbmN5
CisJICogcmVzdWx0aW5nIGluIHRoaXMgY2FzZS4KKwkgKi8KKwlpZiAoZGV2ICYmICFzdHJj
bXAoYnVzLT5yb290LCAiZGV2aWNlIikpIHsKKwkJZW51bSB4ZW5idXNfc3RhdGUgc3RhdGUg
PSB4ZW5idXNfcmVhZF9kcml2ZXJfc3RhdGUoZGV2LCBkZXYtPm5vZGVuYW1lKTsKKwkJdW5z
aWduZWQgaW50IGJhY2tlbmQgPSB4ZW5idXNfcmVhZF91bnNpZ25lZChyb290LCAiYmFja2Vu
ZC1pZCIsCisJCQkJCQkJICAgIGRldi0+b3RoZXJlbmRfaWQpOworCisJCWlmIChzdGF0ZSA9
PSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyAmJgorCQkgICAgKHN0YXRlICE9IGRldi0+c3Rh
dGUgfHwgYmFja2VuZCAhPSBkZXYtPm90aGVyZW5kX2lkKSkgeworCQkJLyoKKwkJCSAqIFN0
YXRlIGhhcyBiZWVuIHJlc2V0LCBhc3N1bWUgdGhlIG9sZCBvbmUgdmFuaXNoZWQKKwkJCSAq
IGFuZCBuZXcgb25lIG5lZWRzIHRvIGJlIHByb2JlZC4KKwkJCSAqLworCQkJZGV2X3dhcm4o
JmRldi0+ZGV2LAorCQkJCSAic3RhdGUgcmVzZXQgb2NjdXJyZWQsIHJlY29ubmVjdGluZ1xu
Iik7CisJCQlkZXYtPnZhbmlzaGVkID0gdHJ1ZTsKKwkJfQorCQlpZiAoZGV2LT52YW5pc2hl
ZCkgeworCQkJZGV2aWNlX3VucmVnaXN0ZXIoJmRldi0+ZGV2KTsKKwkJCXB1dF9kZXZpY2Uo
JmRldi0+ZGV2KTsKKwkJCWRldiA9IE5VTEw7CisJCX0KKwl9CiAJaWYgKCFkZXYpCiAJCXhl
bmJ1c19wcm9iZV9ub2RlKGJ1cywgdHlwZSwgcm9vdCk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEv
aW5jbHVkZS94ZW4veGVuYnVzLmggYi9pbmNsdWRlL3hlbi94ZW5idXMuaAppbmRleCAxNTMx
OWRhNjViN2YuLjhjYTE1NzQzYWY3ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuYnVz
LmgKKysrIGIvaW5jbHVkZS94ZW4veGVuYnVzLmgKQEAgLTgwLDYgKzgwLDcgQEAgc3RydWN0
IHhlbmJ1c19kZXZpY2UgewogCWNvbnN0IGNoYXIgKmRldmljZXR5cGU7CiAJY29uc3QgY2hh
ciAqbm9kZW5hbWU7CiAJY29uc3QgY2hhciAqb3RoZXJlbmQ7CisJYm9vbCB2YW5pc2hlZDsK
IAlpbnQgb3RoZXJlbmRfaWQ7CiAJc3RydWN0IHhlbmJ1c193YXRjaCBvdGhlcmVuZF93YXRj
aDsKIAlzdHJ1Y3QgZGV2aWNlIGRldjsKLS0gCjIuNTMuMAoK
--------------3unF3ejPwvXQuxwe8F5RecVi
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-----

--------------3unF3ejPwvXQuxwe8F5RecVi--

--------------YbxEwefYK5Vf23tKEwSnV0I9--

--------------DETIOXt92lBiKQ0s9wYZMxiR
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/Ey8FAmmJoqQFAwAAAAAACgkQsN6d1ii/Ey/m
UAf/TgfgEhL/tOTePfM+Q9L+uC+8V9TUhw6IGWAgAkKD15SXtvrui4zSER5Xy92IPqNiP4SA6tUq
HY20mgaHw//jG7pQlq4NMug4fxnV127a8QMhf8tsQLXzuHBtbdq+jLABiWmw3ogzWumVk5aw0v+k
iD9F0QHqfdyeZZV+KyGVdyQl9zmgl6uMb/QKvAON64T3PhoHg/IFdWA2G9tBhKvyraXh3GBVMuZE
VFHnpoJoy1Frvp6MQdIZ1BBTXKFhGhDJNq2Wa869LoG5ElDzo1gVUU9d+XgSouBMtoj9lTrQUFB5
tuzkjV6XlUoKlR1cq+o3YbBYSP5DnA37a7PO99k6tw==
=foWj
-----END PGP SIGNATURE-----

--------------DETIOXt92lBiKQ0s9wYZMxiR--


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:07:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:07:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225008.1531448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNEz-0007QD-8c; Mon, 09 Feb 2026 09:07:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225008.1531448; Mon, 09 Feb 2026 09: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 1vpNEz-0007Q6-5Q; Mon, 09 Feb 2026 09:07:33 +0000
Received: by outflank-mailman (input) for mailman id 1225008;
 Mon, 09 Feb 2026 09:07: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpNEy-0007Q0-5X
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:07:32 +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 c2b1d286-0596-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 10:07:29 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-43638a3330dso1162453f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:07:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296bd1c9sm24901859f8f.15.2026.02.09.01.07.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:07:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2b1d286-0596-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770628049; x=1771232849; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JsQ2GXmQfO89ijeuq5/YBvvUKb75EA9IxDV5fq3XWB0=;
        b=cFMMOYf2Qf3pUvqCgbUOdM8UzEiTv9vKcbh7wcBZfrXXxOl3lruacG8P8Jvx2lcTfS
         nqIqopb7q1Ntwi35jnTVDKfhHnwFXOqh7aeIH+Oq0HruyDX+OBO0lZ5BPX+xwWVYtpSJ
         zELb1k+1tvIh4S4pKcEs9leI/CEpu10y5cwZU1OV75wRQ6JsI8b1jclHZsvjJ/eBEhf2
         SjLFuNnn023+2NK23vuccndkoSniKaI2DMepZeOkISRhUT+LNzAMGBcFPMB1f74qyGhd
         KLIocEiTlBsv2tJIpERiKSf0ut4pO0A1hJ/VVoEgSQVqKa14FKN6Ca9O0Xq0IHVj+e2/
         urFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770628049; x=1771232849;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JsQ2GXmQfO89ijeuq5/YBvvUKb75EA9IxDV5fq3XWB0=;
        b=PFqa071P4eQG46qJMV8EuVn7oKpG2O+1CHoKJzinWUILmzNNs9M8/1y0xYy4Ul8Xi9
         Q/vkddM7zCkihra1gEh0ANO8k4Ro2+neBYG7tgSU/WCVgOhNpUumawfeq2H1dOhT9Vnu
         W4bQOJPhzuOXvviay2nPtEIY4Sj+LsIAuh5zIVyGoY5gaTGtlCvvDWmcyiU7MmLHSHG+
         HWyXmBUtxdpb2VIUxGZqZbkUk69eb9EzDG4ijksm2vypxnXkNNvxMP9Z+Nj6UvQ+CIJ4
         ocPrFT08Ja4b7KdIMl3CUpQnnjWZq72MBqC3pCk2czBmB7Z0MWBHP7A4t+6ySv7tRH1u
         Upyw==
X-Forwarded-Encrypted: i=1; AJvYcCU37vBdX6RtU6ejwngqiZ13dXkYcwghNaLcFwIFMBI/4feU924wrSrltHJJWKUuBrWAAKY0qycMgzQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxibZmlg2WkpnJdy6ty5y7usIXBg+hzS5S1ixHm6u3ApQEGpDQl
	VEIm8nfwZw6Lqfyzq10hxiiwCj7MxBykGCYGR4pZuRINS//KIwMWuIfXxD3IXclDxw==
X-Gm-Gg: AZuq6aLpGzyxOoKQCNToHrufWHSnUTGV8yC8EdYMAgTWdEehFcP/DFiLAtbwCuo6J0G
	lJcRAPyYiiFDpbtjWz7nGMzDsmawz4IcVRbujNrqyc7v1ssz4VMJvSMnU9uZW3eDIPTtORFTQXv
	Q/MiOEb4XkIuAWJNb1sJtdSwVWw5ubSVWQWIxcJz/CTtPjQpQXZNw7eWjErds2KOYRnKju+8T4w
	sgNDr5chxEuwiDN4oTwb7cNwwsouFwtt8Sx7jEr205gGqvjp38TAW0HjN/iciMrr/T5YgsjGVsR
	N066i/Iqo0LUi+pqD4m8HrWnR0dkta5cfgbxr9bBqQ7L/grfikrxi/S7BLZtJREkR5MiGh0Hmsn
	Zki9ZSZy3dt7iWl6ygyXsXplrX0PVmZoPba4fXle6j3CV+wFbPMlzABIij5bsN5vsMgkyeuapQJ
	j7sHYOTm8MqxLWo++hnmAcR+awAydiqp+IOjXuSWg9iv7zlIV6hWEMRODf8QDUGtg/0Ht10bkmI
	Bs=
X-Received: by 2002:a05:6000:4211:b0:436:1e6:e1d6 with SMTP id ffacd0b85a97d-4362938c3c2mr17031638f8f.46.1770628048937;
        Mon, 09 Feb 2026 01:07:28 -0800 (PST)
Message-ID: <4a12e652-5b53-40d0-b701-d1f5b749dfa7@suse.com>
Date: Mon, 9 Feb 2026 10:07:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/16] xen/riscv: introduce vcpu_kick() implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <0335a7db0343d81ce4256482a464e7ba5df1c204.1769099885.git.oleksii.kurochko@gmail.com>
 <14d19350-0de8-4496-99e5-0ba76e421684@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: <14d19350-0de8-4496-99e5-0ba76e421684@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:36, Oleksii Kurochko wrote:
> 
> On 1/22/26 5:47 PM, Oleksii Kurochko wrote:
>> Add a RISC-V implementation of vcpu_kick(), which unblocks the target
>> vCPU and sends an event check IPI if the vCPU was running on another
>> processor. This mirrors the behavior of Arm and enables proper vCPU
>> wakeup handling on RISC-V.
>>
>> Remove the stub implementation from stubs.c, as it is now provided by
>> arch/riscv/domain.c.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Changes in v2:
>>   - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
>> ---
>>   xen/arch/riscv/domain.c | 14 ++++++++++++++
>>   xen/arch/riscv/stubs.c  |  5 -----
>>   2 files changed, 14 insertions(+), 5 deletions(-)
>>
>> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
>> index e38c0db62cac..13ac384c4b76 100644
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -1,8 +1,10 @@
>>   /* SPDX-License-Identifier: GPL-2.0-only */
>>   
>> +#include <xen/cpumask.h>
>>   #include <xen/init.h>
>>   #include <xen/mm.h>
>>   #include <xen/sched.h>
>> +#include <xen/smp.h>
>>   #include <xen/vmap.h>
>>   
>>   #include <asm/bitops.h>
>> @@ -240,3 +242,15 @@ void vcpu_sync_interrupts(struct vcpu *v)
>>   #   error "Update vsieh"
>>   #endif
>>   }
>> +
>> +void vcpu_kick(struct vcpu *v)
>> +{
>> +    bool running = v->is_running;
>> +
>> +    vcpu_unblock(v);
>> +    if ( running && v != current )
>> +    {
>> +        perfc_incr(vcpu_kick);
> 
> Because of this it is needed to introduce:
>    PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
> Otherwise randconfig build will fail when CONFIG_PERF_COUNTERS=y.
> 
> I would like to ask if it would be okay to add it xen/include/xen/perfc_defn.h
> just after PERFCOUNTER(need_flush_tlb_flush,...) or would it be better to have
> it in arch specific perfc_defn.h?

Arch-specific please - it's not used by x86 nor ppc.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:10:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:10:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225016.1531457 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNI1-0000V8-Lx; Mon, 09 Feb 2026 09:10:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225016.1531457; Mon, 09 Feb 2026 09:10: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 1vpNI1-0000V1-JS; Mon, 09 Feb 2026 09:10:41 +0000
Received: by outflank-mailman (input) for mailman id 1225016;
 Mon, 09 Feb 2026 09: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=8Y/H=AN=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vpNI0-0000Uf-2h
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:10:40 +0000
Received: from mail-oo1-xc35.google.com (mail-oo1-xc35.google.com
 [2607:f8b0:4864:20::c35])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 30a5de59-0597-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 10:10:34 +0100 (CET)
Received: by mail-oo1-xc35.google.com with SMTP id
 006d021491bc7-66e35b48d11so840265eaf.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:10:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30a5de59-0597-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770628233; cv=none;
        d=google.com; s=arc-20240605;
        b=XvbTQe8xte4t9n5cgVH/kjq5aojoL4TlAwj39EDZXBQCyaS3ceOhutM6tTzJE5OeUs
         yXBPvOP/K+uv2+8L2NF9J4X79bkEhzvwp9nf7mXC+OR7P4N2VXKpSxhWGSg7cmygnOVd
         8+aggDVEYSCsHq0pLEqNt5IEY34cCZII5lVDQVFXTacKmFm4+Th9PT8Se5VUVA8CVMHU
         J+CGSsviEvivJwCOk1TnX1CRLu+nJfMkytMYO+XdxNsx2RYPfLxUWS4zvmP+DYF1tEAL
         aKyES8ZwogXWuTZwl7hEisxbH3evi2++VLxNGuSjgc55N3R9VkWKLAkypErvDdbdxVHV
         N/qQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=/WgflB2kW5OpebDqrVi1GbSDPN8vcPQ8RjJSmZ7qYTI=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=cLNByov8ie2NkgE1qW+o6YZqI3FaGlO6Z2hzseFIfhQTmqxMip4QgiQCdq9qNsn7S5
         C/IjOXUkkPEZFryeW2rfD/amTUveJhNbmFcf5emKNvGe0TxrvXFV87mSPKgCQdQLLTTV
         AC77a33xQAGtjxUFDwVMs7E6YR9b6S/LHUpyGhhtqru3yzSYApdWv0uTchuEAjUO8PkY
         I6C/SmFgk5mwaqfcbZRyZGv+EYiYC6M7/jeMj3fq6yiiT3H7RPuffFNIYSgYgi3NNb/U
         x7YVdVXNB9xqFZe2WIIAZEE/Ey4I1S3kY4U4bDM+o9o0epJePugyvGQruUi0AZHPV3uh
         qgEQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770628233; x=1771233033; 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=/WgflB2kW5OpebDqrVi1GbSDPN8vcPQ8RjJSmZ7qYTI=;
        b=Z40F6PbFsL90mFUPVP1y8sG89DVVvOJVSA6KxV+wzAhfHttQy4prcFBAdLL85vIyAc
         U1d+b2K035wvSWomN2oORCudzvebPY1QVD9HHEdu3fp1ivKLR+IeXXhHc8druclRZA98
         216fIObHP3gmGRAsuVz9/p2+olLztXmiCGIlh+hkln0CeO25Rm93NS2UJq3Pf1jP8uUm
         yYQ/bnv2VOkYraJ/yz2oV0X7pw9OuBWNV8hh+xkHb8VNRYEj2cpFS76BgxUYQBWWc962
         HHcUgSsWJx8mGu5pWskpjvJ1EgETtl4VxpdL4l1BDsCONGDozzIPl3afoQIxQFAdYaWL
         BNiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770628233; x=1771233033;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=/WgflB2kW5OpebDqrVi1GbSDPN8vcPQ8RjJSmZ7qYTI=;
        b=F9qdM+LJuN/uVf7lAF9irO3gP6OtJZPCi6NNFbdSIXBUjfPUfTvSzPwQ/oD9Q3WOlV
         MoAN64mUcX3CWex0iPveyjkbyFKT4j78TgLOEHHAvudm5DU73cnSqejlGEBqvMuXHCjI
         R7T375etuz63nWnN7Ta+NM1pZ7LTW696fv/PnWCc+IrOwPvRGfV+fZ/vT/Awuhkz0yB9
         cDw22Dl+/6B3lqxvfjZ1ztyZpXC2C9/K1fTzgDX6r58ed2MfRyOY9bVmbAMwgbbyf4a8
         9ATaI3GfaCeoUEasW+o8dwNPLblwWSOA8NqKP7brBA8y38ku5jkFJPEbqgjjxaiaoxjL
         1+xQ==
X-Gm-Message-State: AOJu0YwMhxY48iLkc8Ko4mT95pcXonNTg1yZv23n7z47PKm/qCBuTdfw
	N8pFFr0tfF0qsa/gYXXnnI0G8BgCCoH2QkzIPMZ5vHfMh/ux2MVEBziQ5/AoNE5gVaXkniWcs6h
	npxT4wS9M9n5kKJ5WOqNuaEOglp5AJMfGHcn6AWMptg==
X-Gm-Gg: AZuq6aKjO6nMfGtfLfGiAP+NTutZN+ZPK31p302c3QP3edqfbTBmeJXWE1oVxaZl43f
	U/Ns6/ViDOjjooCfVaFysGp1g0DxRN151ufMjuVc3K1VkHwxXf3qzQc8g6ijJIaePNE1V1ORRwU
	J3SdfUYjyTuqiwHvqV60o721XV/AYfwTaT56A/+jD+to7SR5rUHxJlIvxTl4ZoPcUK6J28H/OfW
	sQ5wfsOjK5XKN8eF3+uDFDadrYR3ikBmyCoObTAXQXG6SOlVCWhKY/s8+Gkj+k/PNGBlqV3cX7J
	uraPtylHl8XISIOurNte37Fw/g==
X-Received: by 2002:a4a:c90a:0:b0:66e:d9c5:ad47 with SMTP id
 006d021491bc7-66ed9c5b0d0mr2307035eaf.55.1770628233302; Mon, 09 Feb 2026
 01:10:33 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <9886df295f4c4365668576cc956299ee36f36c8b.1770115301.git.bertrand.marquis@arm.com>
 <CAHUa44G9sGWp18EX=Zb-C-jDJn_V6BmEVvnza7t6gcx3rjsRww@mail.gmail.com> <24BD5FEB-06D2-40C0-A928-376A104B9E55@arm.com>
In-Reply-To: <24BD5FEB-06D2-40C0-A928-376A104B9E55@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 9 Feb 2026 10:10:21 +0100
X-Gm-Features: AZwV_QjTAhuTcnRM2PUZAl1grLFxtY5I1I4fFXNDa5F0J_pp5X_NMDZi6zzHWNM
Message-ID: <CAHUa44Fr5KVNdmah-_DPyv-0dq3Lc+wcHo72zjMH72sPjJHD1w@mail.gmail.com>
Subject: Re: [PATCH 02/12] xen/arm: ffa: Fix MEM_SHARE NS attribute handling
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, Feb 6, 2026 at 5:18=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
>
>
> > On 6 Feb 2026, at 10:28, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> > On Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> The FF-A memory attribute encoding is currently a literal value (0x2f)=
,
> >> which makes reviews and validation harder. In addition, MEM_SHARE
> >> accepts the NS (non-secure) attribute bit even though the normal world
> >> must not set it according to FF-A specification.
> >>
> >> Introduce named attribute bit masks and express FFA_NORMAL_MEM_REG_ATT=
R
> >> in terms of them for clarity.
> >>
> >> Reject MEM_SHARE descriptors with the NS bit set, returning
> >> INVALID_PARAMETERS to match FF-A v1.1 rules that prohibit normal world
> >> from setting this bit.
> >>
> >> Functional impact: MEM_SHARE now rejects descriptors with NS bit set,
> >> which were previously accepted but violate FF-A specification.
> >
> > To be fair, it was also rejected earlier, but with a different error co=
de.
>
> True, will adapt the impact comment to say:
>
> Functional impact: MEM_SHARE now rejects descriptors with NS bit set
> with the right error code, INVALID_PARAMETER.
>
> Tell me if that would be ok for you and if it could be fixed on commit wi=
th
> your R-b if it is the case.

Sounds good. With that, please add:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> >
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa_private.h | 17 ++++++++++++++++-
> >> xen/arch/arm/tee/ffa_shm.c     |  6 ++++++
> >> 2 files changed, 22 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_pri=
vate.h
> >> index cd7ecabc7eff..b625f1c72914 100644
> >> --- a/xen/arch/arm/tee/ffa_private.h
> >> +++ b/xen/arch/arm/tee/ffa_private.h
> >> @@ -129,11 +129,26 @@
> >> #define FFA_HANDLE_HYP_FLAG             BIT(63, ULL)
> >> #define FFA_HANDLE_INVALID              0xffffffffffffffffULL
> >>
> >> +/* NS attribute was introduced in v1.1 */
> >> +#define FFA_MEM_ATTR_NS                 BIT(6, U)
> >> +
> >> +#define FFA_MEM_ATTR_TYPE_DEV           (1U << 3)
> >> +#define FFA_MEM_ATTR_TYPE_MEM           (2U << 4)
> >> +
> >> +#define FFA_MEM_ATTR_NC                 (1U << 2)
> >> +#define FFA_MEM_ATTR_WB                 (3U << 2)
> >> +
> >> +#define FFA_MEM_ATTR_NON_SHARE          (0U)
> >> +#define FFA_MEM_ATTR_OUT_SHARE          (2U)
> >> +#define FFA_MEM_ATTR_INN_SHARE          (3U)
> >> +
> >> /*
> >>  * Memory attributes: Normal memory, Write-Back cacheable, Inner share=
able
> >>  * Defined in FF-A-1.1-REL0 Table 10.18 at page 175.
> >>  */
> >> -#define FFA_NORMAL_MEM_REG_ATTR         0x2fU
> >> +#define FFA_NORMAL_MEM_REG_ATTR         (FFA_MEM_ATTR_TYPE_MEM | \
> >> +                                         FFA_MEM_ATTR_WB | \
> >> +                                         FFA_MEM_ATTR_INN_SHARE)
> >> /*
> >>  * Memory access permissions: Read-write
> >>  * Defined in FF-A-1.1-REL0 Table 10.15 at page 168.
> >> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> >> index 8282bacf85d3..90800e44a86a 100644
> >> --- a/xen/arch/arm/tee/ffa_shm.c
> >> +++ b/xen/arch/arm/tee/ffa_shm.c
> >> @@ -512,6 +512,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *r=
egs)
> >>     if ( ret )
> >>         goto out_unlock;
> >>
> >> +    if ( trans.mem_reg_attr & FFA_MEM_ATTR_NS )
> >> +    {
> >> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        goto out_unlock;
> >> +    }
> >> +
> >>     if ( trans.mem_reg_attr !=3D FFA_NORMAL_MEM_REG_ATTR )
> >>     {
> >>         ret =3D FFA_RET_NOT_SUPPORTED;
> >> --
> >> 2.50.1 (Apple Git-155)
> >>
> >
> > Looks good, but I think the commit message needs a small update or
> > clarification.
>
> Thanks.
>
> Cheers
> Bertrand
>
> >
> > Cheers,
> > Jens
>
>


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:11:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:11:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225022.1531467 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNIk-0000x4-VC; Mon, 09 Feb 2026 09:11:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225022.1531467; Mon, 09 Feb 2026 09: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 1vpNIk-0000wx-SK; Mon, 09 Feb 2026 09:11:26 +0000
Received: by outflank-mailman (input) for mailman id 1225022;
 Mon, 09 Feb 2026 09: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpNIj-0000Uf-C6
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:11:25 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b979bcb-0597-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 10:11:20 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6221.namprd03.prod.outlook.com (2603:10b6:a03:3ab::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Mon, 9 Feb
 2026 09:11:17 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 09:11: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: 4b979bcb-0597-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LjQ9BrcHdZhB/eQ0Wpupit3vtI5tyTCBY4dst6T+ZhzkfGzm3hvEJ60pz6Qt0uFW+UNaGAsvDTSMrPGe3Zkpyo4hjjZRuvbaJUMhYOhTl+4BPVgDiLdUc/y/zhRRtpwQIKYFDIqtiia4sZ2iPOjqj2f6cT+26KOOJPLohV2NC1iI3DPEOK+14Hmhw2tpkKGoYi+7dn6ErDghpQYOYOcrMtzARjG3yWLBbBctFqJ1jo8rMa4eT/HWlnB2dUVVufmo64HkCLVE4pt7M4b/2IYoru4UBb3xl+ASXgBRwKMYr/bSfWABeJ8UaQHcUUmKv6/7+DPukuQuPSwLf7dGc0wSTA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/fuDHjQNjG+uV2L8Ai2NYYypU7K2EFRLzlLTUbGX1g=;
 b=dZG2Yejwq7U+pu9dUSdeWMye6mCXQFXoh675a/i/1ZZqdpWmpimty4bIqCoyzRYgY7l+Xh6+LUAswhxVKaX3WNuDv14VWjeSVxjfKvQJRcm/w7IjWjnV558Wvb9vZYBVnmyVE87IMIJ2vOWTmpF2Eb1HfWHkOx5MEgHj3rjaC3w5dIUHnfUBncwhwL7SU+ZZKoe82Vtt8Mdkoja31STJmC33zLviJBPw2G4A5kqrU9m25efUoLe1JvtekVKcWkJnrcr7VjzgSmT8bGIoHbA/0lq9FoGa1n93SPaH4IsMH+Aez3xwsgCRIns9cfdVBr3KOQpxZ4cL128XfJvnFAt+cg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=a/fuDHjQNjG+uV2L8Ai2NYYypU7K2EFRLzlLTUbGX1g=;
 b=Og3u65KElM3hkLON145NaZE5y5U41UOLDPjy20ilRpb7wknkeO3/F54ZfB5OepB3Vho+QcOyyKf99wmc+uE7Fwprg1YQn5jWg4yr0VfU0X8w2XSSY6E2wLBCxVdcHzxKI0Cc5SP30jqYxaWLjqO2AvIbPevZcIh0o+7SpdqNBwk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 10:11:13 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.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>
Subject: Re: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
Message-ID: <aYmksdxh5PM7IHDN@Mac.lan>
References: <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
 <aYYkAvGQygf2eNI7@Mac.lan>
 <28DF7F1E-BAA3-49AC-8A53-75100BAE74B5@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <28DF7F1E-BAA3-49AC-8A53-75100BAE74B5@arm.com>
X-ClientProxiedBy: MA3P292CA0031.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6221:EE_
X-MS-Office365-Filtering-Correlation-Id: 746f5ef7-ea62-46f3-8700-08de67bb2e4f
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?Q2U3WDJTVXdRU1puMmFScFYxZFRSTXo5ODJyeU40K0RBeHpwSVJ6S3NNQ0VB?=
 =?utf-8?B?aVplZnh4Y1lNOUdiU2dUZzBja1c2d2JvaWM4NFg3N2N2NEZ4MjlrdHg5NWkw?=
 =?utf-8?B?VTFHeWFlVWJweWdjYy9wR1FlTlRJeGFyRXJXYWZqUFZDL3ZUaEY2VDlKT2VG?=
 =?utf-8?B?ZDN5NEFRZnQ1c01QSTRBcVpWaEVPVk1oSU1MaVZCVStLMWlVaEt1Wkxkb2lO?=
 =?utf-8?B?Y1pBSUJGZEhqeTlzVmNIMlZPekZJeDR2Ym5aKzlreFI1U1doSm9mWXJ5TG0y?=
 =?utf-8?B?ODhOSS9OdWpjUWc3eDh1eXpvYjJsQkhlOFNBQU9UaUhBQlBLUXVWQ3NSdDdh?=
 =?utf-8?B?NEJjWE1qOFdXc2ZyaGQ2eDgzNk5MT0FwTkZtRXI0Z3FMd0Y2RE45NEdjME84?=
 =?utf-8?B?UGZuV2hTenRqY0RqeFcwUGc1aGJpZ0t4eUVneHRaSGdTYkt6TERzMDEzVFpn?=
 =?utf-8?B?VGpGbTNvc2pDbG9ZUklXMHJHdWx5S24vN2xmWDV3Ym9CbG8wSVZCMjlYZGxS?=
 =?utf-8?B?YWE0MDZMUXdHSlVDMW5ySVhPOHhXR2JpWjNUeVBJZnhYWUozL3VzN2c5OVdV?=
 =?utf-8?B?N1AxSDJZVmFENVF2NDM3NDIwZ21iNm9HTDFFTm5zS3BQa3lITTJPVUVXNnow?=
 =?utf-8?B?RERLVVc2TXNwVFp4RDBpQjZKL1N5TU1neG9XMnlZNWdRckdVUkk3RDQ2Qno3?=
 =?utf-8?B?eFZZL0x6NnBnNEpnRkNTYjRWZVozbE4vam5GMTRreEhPcll5bnBtLzZiMUZJ?=
 =?utf-8?B?UVZtVjcwUEExN1kwQWtVenJmVExpaUdjQ3pzS3RGMnd0MFlFd0FrTldUc0c1?=
 =?utf-8?B?NE1manMzMnBVcFRlQk50NWFYZFdZbmx1YlRnQ3JuakE4WGozbUh4QjZSOFA5?=
 =?utf-8?B?WXVHYk5hUG83ZmxNUFFpYXlESnJDUjQ4NDI0ckR4OXM1MGt3TmNBYmdrTmd3?=
 =?utf-8?B?L29qQmIrUzFMNWdhM1RzTDlsQ0lxdzJDclBMOUtYamY0QXB3cEpEZDg2VVZZ?=
 =?utf-8?B?OTdPUDhlNFBSdjlseHd0WTJmY200bXlTY0daMnRsTmpWUGFuMzRIYk1ESTM2?=
 =?utf-8?B?Z3NLQXYzWkU3VDF0UVNTTWJOL2NmTVZoaGVUcEU0N3RDUGNWblgxVkg1YUE2?=
 =?utf-8?B?bDRBb28ySTFqMm82bkk0anFuVEFtZUxFSzMvRURSUVN0MHlUdkZ6c3dFemdE?=
 =?utf-8?B?SkJ0bFQrY2FoR3dObTZnZ1NQSHZibU81RUFsSzJCOGRFSkQ1MGZUQkpQQm1a?=
 =?utf-8?B?VklIbHVnS0VkZHcyYzhVaFFrMmJqZmZjTlZ4N1ZlZkp3NnNDQ1lMT2hnYkZq?=
 =?utf-8?B?QWJnSysyZWZsY2pkRkNEVDNwQlp4ZVZTNzNuWVQ5WTltOG5pd0JnRVBORU92?=
 =?utf-8?B?SThhN2dSQ2djUU0yNmxGYWYrVHRWZTJTMVBxOTVmT2k1VGxjZC83Q3Nzd2E4?=
 =?utf-8?B?TUlWQit6dDJzcHlNcHdxdkRadVBnUzNnVVNaVUc4MFljTS9YcHZNM056Ri92?=
 =?utf-8?B?QWI5N2xWZnRpSUMyTzhLbUJ3QjVZdGN5Nk12cW9ORGkyR3VGa0Q5d1BkNTBa?=
 =?utf-8?B?YTY5UWhzTjBJOVZXSEhENXJHTjdHeG93Wk8xYjBKSzhnM05mV1BXNE5mRGc1?=
 =?utf-8?B?SzFzbDF5YzZ0ZVZTekJuQ2NKQ0hsdUpaT3hJdEFFZHFtQ0RDaDVEUFhFODk4?=
 =?utf-8?B?dG1wcHQ5a2pvWnpRajBjTklaVmdXMjV4dUJ2ZVBUOGNHRERRY2RERDA5VTF4?=
 =?utf-8?B?TVhnOXhaK1lNWFZubkhBaDhQUVJLWUpkSTd6SFlscmZiOE5HaWJmTEdDbmhY?=
 =?utf-8?B?dElRNGtHRlRVVnhnREVpOGZsellRVFY3aDI5WVcreDFjeXlPdGgyY2d0dHgy?=
 =?utf-8?B?YWJVR1F2OHppT0E5eDlzR3AvczZEajhPbjJoZE9oVHg3NnJ4eDNOZW12Ujdj?=
 =?utf-8?B?alplS1RVSTN4UXFOcGlXUVZoeVE1UFdiQXRRMTBWQ2tjLzhVdXozMFV1cU9o?=
 =?utf-8?B?cWpFZzZXdEF5NDVaODdmdzJrVTRjS2ZDODYvaUJOUXpjakhtaFBmcmg1OFkz?=
 =?utf-8?B?SW1wYytHR1VWV3FpejNKcmZtK3VET0FiTXJSUldQS214bGx3NlVHMnh6RTZ5?=
 =?utf-8?Q?cI08=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WS9EbVkvM0FrSHBUcTRwQ2pqMHFZaFM0YlRiNDNlWWQ0S0NDMDk1UFI0MHov?=
 =?utf-8?B?WlVLMGxtRnk1bTVEZ3pJWGpoRjlEU1NleE5xOHVSU3dLQTZkbjVqQjZ6dzN0?=
 =?utf-8?B?Y1FRcEpSTnpjcDZqTVVhLzFXWFVBUzNXZUJndWQ1ek9zM29DWDU3aHpLbTFl?=
 =?utf-8?B?aHdSUTY1Nm83eHZmMFk1T0ZYbm1rSWpwZnZJcU40S1BKZlBhSityU0hBYzRq?=
 =?utf-8?B?dnlvZjZWeDNXSEhjNUwzWEJ4TkNXdVdOZU84WTZRN3Z2VSsybXNSWkk1V0dl?=
 =?utf-8?B?dGwyam5VUGpCQklDM3phamE5bmtaK01BU3lFQmp6b25HTldHMHMrL1ZUR2gr?=
 =?utf-8?B?RVFBRW1nVkE2dG5VQTh1dWxwVUIvUHZQKzBzR0I5UTF1VnVGUjArQ05IekNn?=
 =?utf-8?B?a1dTTnJHNHlTRDQzbDQxRE0yMW1Ud2xvcHZVZ1RvV2syR1ZIR3lPV2pDL0I3?=
 =?utf-8?B?eU5SOU5uSTJFOWg3MDhoV1FWazNlWlcxZDVxNGtLV1I3Z1UvRmtlQnpIZEVU?=
 =?utf-8?B?UnpmN2ZRU0dKRExPSmw5RktjRnhHN0VpaW9GcExhUUM0QjVkb296M3lwcnh4?=
 =?utf-8?B?cENZOW02clZKTkFIWmJ6VHBKS2tuNGxPalBrWWVZNGg0bVAyQVR6VnFrNXZv?=
 =?utf-8?B?c1FDY3BKY3lkbXdWeUphTE1ja1NkTXNRVEVQSWdPWDdUOWNWQktYdEovN2Rw?=
 =?utf-8?B?bVhUSERZSFd2MitKRUcveGJKaG9YVTJmRDNOZy9uaUFRWGJPZ01KRXFqd1JU?=
 =?utf-8?B?Skx0bVc4TUNoSDFKOVpmVk5NY3VMNnNjZGorMElMVTlJdEM1bUpHbzNxYTdw?=
 =?utf-8?B?aGhtVVFCamc2cTVkbHVzaHhiRW5weFNHdW9oZ0ZyODMxWVhpZnpZaCtRblVE?=
 =?utf-8?B?VisrRVBUT0J4WGROTG40RENQRUJvVVI0R3Vrb0JZQVlVVTJRMGd3SDkxTGFL?=
 =?utf-8?B?emQ0S0czeUkrLyttZmw2U2hQeHNjc3gvVW1lYllnWVJOaG4weWRNOUlacjNz?=
 =?utf-8?B?TzJ4OHFETjE4R0IzdHdFT0I5WWJGaUxDWVZtSkdSNEg1eWZUd2ZKQituTTR0?=
 =?utf-8?B?ZGxudzdSZ3FFVTRjOWRWMFZrZ3lOYjFmeXduTThJQUZzZDRUWmZ3cGlCWmFk?=
 =?utf-8?B?S0RLdE9tQmJDekJlemR1ZFJuK1N2dzJqVllqN0JJdk5yS1o0UnRMamo3L05x?=
 =?utf-8?B?VWZlcGhMTiswZ0oybzVRY1U4NldsMS9DMzV4M0g1RmdzV0tiRStWZCtkYlBI?=
 =?utf-8?B?TTE3RkJmWVc2NitLbEp6QldRREp5T1ZUUEJCMzUxMmsydmNza1NHNDdiWDFs?=
 =?utf-8?B?Q0ZyK3JiblMySE1jY3dOYUJwVU9naXk0eGZTR3B6OENnbEFqRjZGYlpaZ0hK?=
 =?utf-8?B?Qy9XNW14Z2hZZlNiQWpha0ZIK3BlWkNiQmc5RnVoTlFZaDFTclhRRWpnanYr?=
 =?utf-8?B?REtmMnRaVW9CZFdhWVNDYTVzVEdVVVJMTit3ejd0UjBmVklROTdjN3YvMW9o?=
 =?utf-8?B?WDliVUhjUTUxVHg2NzZXa1VxS0xPQmx2SWU4ZmNEMzhVOHl3aXUrZTg2WHQ5?=
 =?utf-8?B?ZkRYU0tGVUE5VDdSYUl2UTIzVmVZUWdDbmNocGVRRjh1ZFVkZTZXbDQvVWh5?=
 =?utf-8?B?TEpxRE05RnU2RXhrR3VRdlhJTEMxZGx3d09QTW9GU3BmMVE3U0lYZHFGb1dM?=
 =?utf-8?B?bThxSjd6SElXRzBockhvREhPQ0N3blhrR0NmRW1HMnRocUtSSXhTMHNZSVJx?=
 =?utf-8?B?U1p5Lzd6RmIraGJ5MFBVVi9qTnNTdDRISjJ4YkFwenlaMVR6dUZjeERMTEky?=
 =?utf-8?B?Sm00WHFJQmRYMFFoZnNzQmJ3SExteXNrT1F2a1I5eHprVGlheGJxTE5pdm9q?=
 =?utf-8?B?Z1dRbzFzU3pHTTJJN1lRWW45cTM1Z0hTM01BcFJoR1JmSDJtN1JmOUZLMkNy?=
 =?utf-8?B?bWg2TVlhZEl6Q2JaVGZ1ZGpibkUwS0ZHSlQ5UDBXL2FYL1phd3JPSEErczBP?=
 =?utf-8?B?TEJnYmUwSTlzTHI3R3QxZGJEa1hnSTgxcjVNQ2VWWE1EU0NLSWFDaUg4cmNR?=
 =?utf-8?B?aVQ4aGQxVFFBNENqNHhyekVoSUNaTmhWdGxicFh2bjFwMlJBWS95aEhkSDBG?=
 =?utf-8?B?a0dZRUpRU29vTDdDUldJVTJzLzd6NERwL2VPZW1SOW4rOFJTcGtyTGpEZTBk?=
 =?utf-8?B?R3lSUXg2UDVyVzZ0cyt5K3o4TmhlNDZHWHpuOFRpWE1aK0pzWDlBZFkvVkQv?=
 =?utf-8?B?SFdnckhRQXU0ckdwN0dYMHl1SjNkYzRkU25iMGNxK05ZRXEyNjA4WTlpdmxl?=
 =?utf-8?B?RC9GMm91djVVQngxcWJ4TDJIREFyOTZ2L2ttVVVGcTYxTVdsTFVBZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 746f5ef7-ea62-46f3-8700-08de67bb2e4f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 09:11:16.8946
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: K8rAqCFukrdNDfbH60FPCV0OUA4OmnX/vTbZci63kgABX+aAScU8LJWfUx78tt3XQA8dBmXx/fXZp2WC20sQXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6221

On Mon, Feb 09, 2026 at 07:30:30AM +0000, Bertrand Marquis wrote:
> Hi Roger,
> 
> > On 6 Feb 2026, at 18:25, Roger Pau Monné <roger.pau@citrix.com> wrote:
> > 
> > On Fri, Feb 06, 2026 at 05:21:44PM +0100, Bertrand Marquis wrote:
> >> Xen does not provide a Darwin build configuration for selecting
> >> GNU tool definitions. On macOS, the tools we use are either GNU
> >> compatible or we only rely on features supported by Mac OS, so
> >> using the GNU tool definitions is appropriate.
> >> 
> >> Add config/Darwin.mk to include StdGNU.mk and force
> >> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
> >> the cross-compile path as we depend on the Linux ABI so compiling
> >> on Mac OS is always a cross compilation case.
> >> 
> >> An example of how to build the hypervisor for arm64 on Mac OS
> >> (tools cannot be build for now) using a toolchain from brew:
> >> - brew install aarch64-elf-gcc aarch64-elf-binutils
> >> - cd xen
> >> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
> > 
> > Instead of `cd xen` I would use `make xen ...`.
> 
> Ack the 'cd xen' line is useless and should be removed.
> 
> > 
> >> 
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> > 
> > Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> > 
> > One comment below.
> > 
> >> ---
> >> Changes since v3:
> >> - set XEN_COMPILE_ARCH to unknown instead of Darwin
> >> - list binutils as a dependency to install in brew in commit message
> >> 
> >> Changes since v2:
> >> - Subject was "xen: Add macOS hypervisor build configuration"
> >> - Update Darwin.mk comments to more accurate versions (Jan)
> >> - Remove the build-on-macos help as we have no dependency on anything
> >>  coming from brew anymore and the toolchain can be retrieved by lots of
> >>  other solutions than brew on mac os. Switch to a simple doc in the
> >>  commit message instead
> >> ---
> >> config/Darwin.mk | 7 +++++++
> >> 1 file changed, 7 insertions(+)
> >> create mode 100644 config/Darwin.mk
> >> 
> >> diff --git a/config/Darwin.mk b/config/Darwin.mk
> >> new file mode 100644
> >> index 000000000000..176b27eac676
> >> --- /dev/null
> >> +++ b/config/Darwin.mk
> >> @@ -0,0 +1,7 @@
> >> +# Use GNU tool definitions as the tools we are using are either GNU compatible
> >> +# or we only use features which are supported on Mac OS.
> >> +include $(XEN_ROOT)/config/StdGNU.mk
> >> +
> >> +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
> > 
> > Hm, is this actually fully true?  What's the Linux ABI exactly here?
> > 
> > FreeBSD builds Xen natively, and it's not using the Linux ABI.
> > FreeBSD uses no specific -target to the compiler invocations, and the
> > linker emulation is set to elf_x86_64_fbsd.
> > 
> > I think the point here is that the toolchain must support building ELF
> > objects / images, because that's the binary format supported by Xen.
> > Whether it's Linux ELF or FreeBSD ELF doesn't make a difference for
> > standalone environments like the Xen kernel.
> 
> This file is also use while compiling the tools and for those you definitely
> to cross compile as they depend on Linux ABI.

I'm not an expert on this at all, but IMO the tools don't depend on
the Linux ABI at all.  Anyone can add the minimal OS-specific bindings
required for the tools to work on environments different than Linux.
We currently have {Net,Free}BSD and Linux.  In the past we also had
Solaris, but that has bit rotten.

> Maybe that works on BSD
> but i doubt this would be the case on mac os.

I doubt we would ever have any need to build an OSX native toolchain,
as it's unlikely (?) that we will ever get Xen support in the Darwin
kernel.

> Maybe we could simplify the sentence to not say anything we are unsure:
> 
> # Cross compile on Mac OS
> 
> Tell me if that works for you and i can submit a v5 or this might be possible to
> fix on commit.

I'm fine with it, I would like to hear Jan's opinion.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:11:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:11:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225028.1531477 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNJC-0001Re-B4; Mon, 09 Feb 2026 09:11:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225028.1531477; Mon, 09 Feb 2026 09: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 1vpNJC-0001RX-8Z; Mon, 09 Feb 2026 09:11:54 +0000
Received: by outflank-mailman (input) for mailman id 1225028;
 Mon, 09 Feb 2026 09:11: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=DrmV=AN=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vpNJA-0001R9-Fd
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:11: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 5e7fb580-0597-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 10:11:51 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-658034ce0e3so6613066a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:11:51 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-659840238fdsm2659958a12.30.2026.02.09.01.11.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:11:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e7fb580-0597-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770628310; x=1771233110; 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=6Rf0FYjkPu0tVX2FfB/cW3xLBvBaQoo5kGcbjmkcKgM=;
        b=C4W0QqMCVfoM/TfEBSl4le9KLkT1h8eaxydzWK5OO5ZgdJV7MUTLFh6m5jL9ks96pI
         na2zS4J1xMTCr5FilwQqEsALva9FntqbSMZutFwt0FUdvxfbGiU7g2x5RwIK19H+yf9Q
         kc1tsy1/aosUbnPe56MyUfQhRezV0dCZuFNhKiaCyovqy7MWSCugdzjPl/VIsRdbKuQ2
         bMCc2zH8dF8Mk+lOmWrVBzDU7NxsMi+H/qkPJbUfiwVz5pGEz5/DUbIRJ6FxdUcwVKJb
         xJD9PX97YxfE60eaScTF6CTbb7aVpl+YZ+V0HyQ0c5SyLfz45o3YuxYPycADYJoJFwRU
         tHzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770628310; x=1771233110;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=6Rf0FYjkPu0tVX2FfB/cW3xLBvBaQoo5kGcbjmkcKgM=;
        b=qyTzfITGLp8R6FYABdV54rJWcGBTJSoYWFiY+rslKwKqm6kRWDIBpNl0ytvjz67elm
         0RqyEjNLQwZOSUYjxTF9NQ1MPb8UBHcJOPBzcB6HeiZbPjSMN+RSGooDojsAJ08Fr8IY
         QrOqW4StN+n+citK9G/4vGksH+TpUcJo+kSkmFTNMfo+Ypzz/ZLwW/e6M3BRJcFFJOsE
         oeembzaFu8gotK0/Cxd7Alfwu5arGfwZGVUSI3tsAAruCz0q4tSZWWe9aZgwZiwV4CgZ
         3i/8044rmYMMurM8MNwtya8hOJ3/181l8q3Tk4zWmWABP76nQYaqAQTcTu8m7m4YNRzD
         j6NA==
X-Forwarded-Encrypted: i=1; AJvYcCVTRfqF9x2sbyMCDkHwfiLn+iS5bu4gIbG1EQ4fHxYWQrNhznmifmB7AwTfhy0twYfglEOWq18BthY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyww9+Q6qkx5Pw5TwNnbbU1H/MSQiFHmM6yMy4Lv4jH+lLtxjA0
	F54ZKvP2QfyLTJJekYe/2OLItGxcv50foR+7weir7e800oixXBpRXWk1V5pI5xNSnys=
X-Gm-Gg: AZuq6aIOLPIWdcFldb8Turh+fMHSCOWUdnwdg2I4PD7v3/bhcaCoKGgOHCeT3qevBGA
	LD0UxfDHdRWDKG6LFH/05qkurelORmWSHrYf5CfyMHEWFmNnDwa9MAh61DowSRcAo/w1MAwiZfD
	D5xo+KkmmlYcVvskwIDU+YlAb84naubn7uchqQd4RGpWv/WXLd9Q/yJ4fyaf+SB0Tj1d37dqlka
	rHawT4KThqU6sBVgRs9av1XBtG/UFm9ecEMcXSfGKsi28/m9QEueOWHIoKNpK6sbEVa8hLYIOJB
	6h6ZO3C9pmmz3M5SXZ0oG4heJzJoH2bBaexadRXEqkwZ1uLArpDSVDcAP/oGWE0s2Fokbq59BNK
	ByddckQR4XOhLNNA3EWZEsM8lATiNBVH7ttNGWJkHNjM3iIDroGl58iFdThS80enQK3Es7HqxJN
	OYgUvWddgPXOEQUY11uN/PYhR6o9Pyhnl+f8fKW7aOFVIpeUb6NiUZn2BxPfOHq9AUGZj3Ocgue
	aiAeFKSjy4VsYxButyi7Ib+VOq1Lwr4nDn+VQ==
X-Received: by 2002:a05:6402:518f:b0:658:bd60:43e2 with SMTP id 4fb4d7f45d1cf-659841692cdmr5396289a12.17.1770628310369;
        Mon, 09 Feb 2026 01:11:50 -0800 (PST)
Message-ID: <6ee93510-1f43-4cd2-952e-8ed3ce7ba0e5@suse.com>
Date: Mon, 9 Feb 2026 10:11:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 0/6] x86: Cleanups around slow_down_io()
To: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-block@vger.kernel.org
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
References: <20260119182632.596369-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: <20260119182632.596369-1-jgross@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------CRkOi8Dd1YqtQXNyzdN5KBGQ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------CRkOi8Dd1YqtQXNyzdN5KBGQ
Content-Type: multipart/mixed; boundary="------------34IehBIppGcxVnrgQ2weG0lj";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org, x86@kernel.org,
 virtualization@lists.linux.dev, kvm@vger.kernel.org,
 linux-block@vger.kernel.org
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 "H. Peter Anvin" <hpa@zytor.com>, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Paolo Bonzini
 <pbonzini@redhat.com>, Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Denis Efremov <efremov@linux.com>,
 Jens Axboe <axboe@kernel.dk>
Message-ID: <6ee93510-1f43-4cd2-952e-8ed3ce7ba0e5@suse.com>
Subject: Re: [PATCH v4 0/6] x86: Cleanups around slow_down_io()
References: <20260119182632.596369-1-jgross@suse.com>
In-Reply-To: <20260119182632.596369-1-jgross@suse.com>

--------------34IehBIppGcxVnrgQ2weG0lj
Content-Type: multipart/mixed; boundary="------------gSU4Siyeh4zHWGT3RiPM5v62"

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

UElORz8NCg0KTm93IDMgd2Vla3Mgd2l0aG91dCBhbnkgcmVhY3Rpb24uLi4NCg0KT24gMTku
MDEuMjYgMTk6MjYsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6DQo+IFdoaWxlIGxvb2tpbmcgYXQg
cGFyYXZpcnQgY2xlYW51cHMgSSBzdHVtYmxlZCBvdmVyIHNsb3dfZG93bl9pbygpIGFuZA0K
PiB0aGUgcmVsYXRlZCBSRUFMTFlfU0xPV19JTyBkZWZpbmUuDQo+IA0KPiBEbyBzZXZlcmFs
IGNsZWFudXBzLCByZXN1bHRpbmcgaW4gYSBkZWxldGlvbiBvZiBSRUFMTFlfU0xPV19JTyBh
bmQgdGhlDQo+IGlvX2RlbGF5KCkgcGFyYXZpcnQgZnVuY3Rpb24gaG9vay4NCj4gDQo+IFBh
dGNoIDQgaXMgcmVtb3ZpbmcgdGhlIGNvbmZpZyBvcHRpb25zIGZvciBzZWxlY3RpbmcgdGhl
IGRlZmF1bHQgZGVsYXkNCj4gbWVjaGFuaXNtIGFuZCBzZXRzIHRoZSBkZWZhdWx0IHRvICJu
byBkZWxheSIuIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gb2YNCj4gcmVtb3ZpbmcgdGhlIGlv
X2RlbGF5KCkgZnVuY3Rpb25hbGl0eSBjb21wbGV0ZWx5LCBhcyBzdWdnZXN0ZWQgYnkgSW5n
bw0KPiBNb2xuYXIuDQo+IA0KPiBQYXRjaCA1IGlzIGFkZGluZyBhbiBhZGRpdGlvbmFsIGNv
bmZpZyBvcHRpb24gYWxsb3dpbmcgdG8gYXZvaWQNCj4gYnVpbGRpbmcgaW9fZGVsYXkuYyAo
ZGVmYXVsdCBpcyBzdGlsbCB0byBidWlsZCBpdCkuDQo+IA0KPiBDaGFuZ2VzIGluIFYyOg0K
PiAtIHBhdGNoZXMgMiBhbmQgMyBvZiBWMSBoYXZlIGJlZW4gYXBwbGllZA0KPiAtIG5ldyBw
YXRjaGVzIDQgYW5kIDUNCj4gDQo+IENoYW5nZXMgaW4gVjM6DQo+IC0gcmViYXNlIHRvIHRp
cC9tYXN0ZXIga2VybmVsIGJyYW5jaA0KPiANCj4gQ2hhbmdlcyBpbiBWNDoNCj4gLSBhZGQg
cGF0Y2ggMSBhcyBwcmVyZXEgcGF0Y2ggdG8gdGhlIHNlcmllcw0KPiANCj4gSnVlcmdlbiBH
cm9zcyAoNik6DQo+ICAgIHg4Ni9pcnFmbGFnczogRml4IGJ1aWxkIGZhaWx1cmUNCj4gICAg
eDg2L3BhcmF2aXJ0OiBSZXBsYWNlIGlvX2RlbGF5KCkgaG9vayB3aXRoIGEgYm9vbA0KPiAg
ICBibG9jay9mbG9wcHk6IERvbid0IHVzZSBSRUFMTFlfU0xPV19JTyBmb3IgZGVsYXlzDQo+
ICAgIHg4Ni9pbzogUmVtb3ZlIFJFQUxMWV9TTE9XX0lPIGhhbmRsaW5nDQo+ICAgIHg4Ni9p
b19kZWxheTogU3dpdGNoIGlvX2RlbGF5KCkgZGVmYXVsdCBtZWNoYW5pc20gdG8gIm5vbmUi
DQo+ICAgIHg4Ni9pb19kZWxheTogQWRkIGNvbmZpZyBvcHRpb24gZm9yIGNvbnRyb2xsaW5n
IGJ1aWxkIG9mIGlvX2RlbGF5Lg0KPiANCj4gICBhcmNoL3g4Ni9LY29uZmlnICAgICAgICAg
ICAgICAgICAgICAgIHwgIDggKysrDQo+ICAgYXJjaC94ODYvS2NvbmZpZy5kZWJ1ZyAgICAg
ICAgICAgICAgICB8IDMwIC0tLS0tLS0tLS0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9m
bG9wcHkuaCAgICAgICAgIHwgMzEgKysrKysrKystLQ0KPiAgIGFyY2gveDg2L2luY2x1ZGUv
YXNtL2lvLmggICAgICAgICAgICAgfCAxOSArKysrLS0tDQo+ICAgYXJjaC94ODYvaW5jbHVk
ZS9hc20vaXJxZmxhZ3MuaCAgICAgICB8ICA2ICstDQo+ICAgYXJjaC94ODYvaW5jbHVkZS9h
c20vcGFyYXZpcnQtYmFzZS5oICB8ICA2ICsrDQo+ICAgYXJjaC94ODYvaW5jbHVkZS9hc20v
cGFyYXZpcnQuaCAgICAgICB8IDExIC0tLS0NCj4gICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9w
YXJhdmlydF90eXBlcy5oIHwgIDIgLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9NYWtlZmlsZSAg
ICAgICAgICAgICAgfCAgMyArLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9jcHUvdm13YXJlLmMg
ICAgICAgICAgfCAgMiArLQ0KPiAgIGFyY2gveDg2L2tlcm5lbC9pb19kZWxheS5jICAgICAg
ICAgICAgfCA4MSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gICBhcmNoL3g4Ni9r
ZXJuZWwva3ZtLmMgICAgICAgICAgICAgICAgIHwgIDggKy0tDQo+ICAgYXJjaC94ODYva2Vy
bmVsL3BhcmF2aXJ0LmMgICAgICAgICAgICB8ICAzICstDQo+ICAgYXJjaC94ODYva2VybmVs
L3NldHVwLmMgICAgICAgICAgICAgICB8ICA0ICstDQo+ICAgYXJjaC94ODYveGVuL2VubGln
aHRlbl9wdi5jICAgICAgICAgICB8ICA2ICstDQo+ICAgZHJpdmVycy9ibG9jay9mbG9wcHku
YyAgICAgICAgICAgICAgICB8ICAyIC0NCj4gICAxNiBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNl
cnRpb25zKCspLCAxNTkgZGVsZXRpb25zKC0pDQo+IA0KDQo=
--------------gSU4Siyeh4zHWGT3RiPM5v62
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-----

--------------gSU4Siyeh4zHWGT3RiPM5v62--

--------------34IehBIppGcxVnrgQ2weG0lj--

--------------CRkOi8Dd1YqtQXNyzdN5KBGQ
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/Ey8FAmmJpNUFAwAAAAAACgkQsN6d1ii/Ey8j
qQf7Bg+qPPnREAQQ4FK1hd4m2YZs0u9VS/xDnH/zOwWH5hkNgmRIQMvwV3d4YvP1jkhVXNcGzqyt
mS6tcQVuRNpSrvWmzT1N58G6PZ7MCb003jylOa177f0zVFFrYtaAV03j7X8jlfpca3vMfjFAh4mF
1bqFtbbiqiWbqV4p8R4XEmEUPICcGinAPRNF/NH90Q6huR90gRaBk+KxOM0P3xIU5lxOfX9IO1yn
TnSXXFc0fycQ1QYdfQ9m2IaA+RqdvwOYzCdlS0pNV6ma79NEVpt57FqCmxQn3yUUd4xiH1ZXUGiX
qYWqHU467Y5uoUe0Cx/CwEoazfjVpOvElk0GH00bHA==
=520A
-----END PGP SIGNATURE-----

--------------CRkOi8Dd1YqtQXNyzdN5KBGQ--


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:13:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:13:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225036.1531489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNKe-000266-NX; Mon, 09 Feb 2026 09:13:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225036.1531489; Mon, 09 Feb 2026 09:13: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 1vpNKe-00025z-IC; Mon, 09 Feb 2026 09:13:24 +0000
Received: by outflank-mailman (input) for mailman id 1225036;
 Mon, 09 Feb 2026 09:13: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpNKe-00025s-0X
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:13:24 +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 952c6cab-0597-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 10:13:22 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-43591b55727so2348447f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:13:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43629754c62sm23517408f8f.38.2026.02.09.01.13.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:13:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 952c6cab-0597-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770628402; x=1771233202; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vxcxOb4ZYN3LxUIRHDGKbNbm08O3LiJuVEv3H4iXmeA=;
        b=EOvaOJGpaj+xE67F3V/srzllcTwWEgzZqrw7O4UavTzAuEloBDPAuzQjCKBbEhVMqU
         GAuHEJis1LbRukn0/k8hLo3MWJY2VF6I8vf7pkRI9GvHEVE6NP4eflGFdITPXZOLFqms
         M7AWwXLOaIPss65/7Ur1Z8o/9LZ08X/oCpdx2l8paj195NsPebE+EuSLwU6wnlTe9mEt
         EUIzPjnDJ+SEXMi8m6OPtGNopgCz/1QFEhPC5eurHjP6ISl2p6ivgrxoESJ7ds2BDMVT
         T2GFtImVLxndM9QJxtmoZGnjmYR6BivZskVvQRUqIxqkpj7ok7xMm57YMebjGEK2lMBY
         7RuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770628402; x=1771233202;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vxcxOb4ZYN3LxUIRHDGKbNbm08O3LiJuVEv3H4iXmeA=;
        b=QIYFhzVlCmkvHiLs7KuERmZ0le3m23dmwdCjQQST284YZ04FMWzrctq/3rlWvLlGag
         JbQDD63M/p1GFpFn6eN7iHy/wPS2XO6Gj6oaH2mXuu1+av/UmhXnP1ZWQ0lJOCZEitVg
         BBF2qjKmmlpPPj8d3WL1bBYklUeEynqGKTYkC88Z6kZ4jXKQ0SZPZZISwJ5kzVo0vK9C
         xeS8lvJJFDAh9LTw7x1X0HYHDcb9jDrLEBoECWwr3Sp3VyOAGRe4XYPcBtNjZpqHHVk+
         C6jc7VGtcyQpNop8MFEUgFdCk/nIzZL/OOl8Dx8AGEnUpnTb3X/KnYsu1lK/KjKJmgR4
         Ok8g==
X-Forwarded-Encrypted: i=1; AJvYcCXTazjT4U6bwqVNCv/OADh2w9d7hdDSK1VbsE4Xgca5Yq1cyo5xJauM7LSniE7ibezaQCRd4ca0lIc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwUvOTFqNqcSmuYdiIoFpImRqTb2ysjpvkSzLYXL0aKSQZdHwgP
	XFwBgdzOoDvq8rQBcHNBZJjQ0L/Je2HsXP0itstsvz6okrwPThWaDUX1dXShnkFZNQ==
X-Gm-Gg: AZuq6aKL3b5/YIq4z0eCrjUqg0hSss+x92TU3eWkKPCldhqGbusaiA9wd/eUaP13CD+
	r/mSyujGS4k0K55DYWeYRVyJBk6Y4ABUCekp/cYq78GPgFl2hdAhCP2XwVbhSGseHEpwKGcphTk
	td8dm2syrPyEQuIxGVLXtao1f8OiHgH/FtCPTuzUT1VXHeEfcWnBWsJxpegsmfts4MPmNAykEUR
	b5sBZe/tPGL/jmtRXPG7oOC3q1PIvYFRtgndc1VEDUZ8z75pq17iokReA3DnzEKEWbMbtTBOhuq
	EHfaNLfQhOpAJrZsbwbKWppaGP/VZ9jzAGn1WpbI6vL2lY76ZmJiIVrrVBeQsfmQ7bR/7r/nx3N
	ROYJLTxm0FNrJ/xfASI0Mpyl/nzUW0Eqs6COfBjkLtf3gZm6o7j0NiHoGiesDTOJrLOvcLWdLDX
	ce2lnjnTiqLne+GOqg93CdaPNa3/CezEAtuqDj5uUjJL06JrpZ+1mBIkMPeZp7NeRmt7pePtoXu
	yU=
X-Received: by 2002:a05:6000:402b:b0:435:a815:dd93 with SMTP id ffacd0b85a97d-4362938617bmr15056339f8f.35.1770628402114;
        Mon, 09 Feb 2026 01:13:22 -0800 (PST)
Message-ID: <82c06e52-1db0-46e5-be9f-7ca0360ffc70@suse.com>
Date: Mon, 9 Feb 2026 10:13:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: grygorii_strashko@epam.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-2-stefano.stabellini@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: <20260204233712.3396752-2-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 00:37, Stefano Stabellini wrote:
> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
> global to VIRQ_DOMAIN to allow other domains to bind to it.
> 
> Note that Linux silently falls back to polling when binding fails, which
> masks the issue.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

Technically this is an ABI change, and hence I'm uncertain it can go without
that aspect being at least mentioned, perhaps even its implications properly
discussed.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:21:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:21:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225049.1531499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNSP-0003rb-Es; Mon, 09 Feb 2026 09:21:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225049.1531499; Mon, 09 Feb 2026 09: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 1vpNSP-0003rU-9t; Mon, 09 Feb 2026 09:21:25 +0000
Received: by outflank-mailman (input) for mailman id 1225049;
 Mon, 09 Feb 2026 09:21: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpNSO-0003rM-2a
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:21:24 +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 b3452d4d-0598-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 10:21:22 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so624985e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:21:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48320736953sm260747655e9.15.2026.02.09.01.21.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:21:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3452d4d-0598-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770628882; x=1771233682; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt: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/Y9jpBxvzXfVRY7kJLj76I5Zd+1EiTWos4eVX9KGIs=;
        b=PlmCFI4Q0lvjcOdphjCWjpofr5w7LDO9fc1LQVTk2IU3ViW58pNJrU0reXRchdSIUG
         8UE1E3x9m68z5k4QQ997tdIN+yUpiaPUKpsC3bn3Teucbc6H0lMQwWY/KHZOux8at2kL
         e+r3Z/u43+1KMznwnArPpU8MukAEAjmR+ocNyypNacza9qNeVl45CA7CyJ7b8G9K2WnT
         u/KCHS2bbpZG8N9ltKl45xmwkRLLjJpxuVaenYLE0B6b8eUXlRk+qLw5c8QN1EFmClAl
         5xShsB/P329hA1zOn6x8nVxFU69M4MVvUR6MF47uuAibTmsVKPSNZnFZDs7MpS/Ag5Mq
         mE0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770628882; x=1771233682;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F/Y9jpBxvzXfVRY7kJLj76I5Zd+1EiTWos4eVX9KGIs=;
        b=UF9UIbHQgSz8ujEaK6g+X9tHshq7+MH0ELzJ5g4ytQESXSJX9rZlxwC0muKxwRnRWx
         HzcA5xq8Na2EO77RY5WaCpev/0lKKebn3qO5Cn9n3z6r0HorgkxWX6+5G6x3biLa1mj1
         B56POH14+4ONkXQdO2T7qNBgpffgnfIVkY2O3qomAyq3OS0r4Mvve4zRoxk/t+sG+CYP
         /VB2RprTYTubqaOAr1ShSdfF0sxLqeJwRgYuzQEim4maXY2p/QEHuo5auK2qyFrVdfCU
         TCFhlQis1j9t4z8zRRYOqZBr/gbEY88kkvJbQ+pGAJHNdKMY2od2+2/Vz2z2rMF579oQ
         LUuw==
X-Forwarded-Encrypted: i=1; AJvYcCWXPReOZjabi+1Xh2w+0iVpWA6VJO+chyPi4nsX6uixifCA5WaWRhkQc6vCdsC6FpmNhE0Z2ZgYTPg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxaE1FvCn2g08j+OzRkAwtM90XlS+Oej77GHHwHMgElIAbCdXKB
	YJ+UIHsRLQgWmMpDv2GfZV0yCJnzaJTfDzt9zYpMEHD7bdsGNzl3YO54k/at12UBSh5/p7DFeg3
	YI4g=
X-Gm-Gg: AZuq6aKsnFR+2KewKPQl6+zBOmzFb1NHQu4RM4HBFg/LOdQgowxzq7jWPs2iw4z3ms8
	7w8bEd5DDbYU+wgtKzBTHObKAtMkCh65O18uN2LnMxqaECv1mdKp/u0u6847bDmYNJDkeKJ8dKc
	5LI7a0Ms6DYGo+o3u9tR4COpsHvtX0Wf3vlVqcqVAeok5ygOcoTOI/lapVs7k3FhGnIAyPE8MJf
	MP3yv+zlyqqS8YvB1RVDK1y8drLgdf6Mhxt4o3xaRKsq9lhFuniNfsg8HW2te9i487DPY3AJ9Xl
	3l7HSGDLQppXrSc1f9+6NfuGxJd+34cLza1Ea9SHRsN3CFxqryJ3iGVDQ83YrcxRxfEnrW6dVW4
	Z6ci+u0LoXQpjJG7wjxl4/UtYzwFWrnvRIcBgJiF/0ygFgOiwUi8svLRozS+nR/w/1tz4rxTJvZ
	wpT+hhLhkvYV8UfHKLmnS7bwndEUoE7f+qAvhMKQjpj+75KxAv4fbK6DwszxqjqJ+OQO4yggGpm
	jA=
X-Received: by 2002:a05:600c:3145:b0:476:4efc:8ed4 with SMTP id 5b1f17b1804b1-483201e7793mr127986865e9.11.1770628882019;
        Mon, 09 Feb 2026 01:21:22 -0800 (PST)
Message-ID: <608472d0-517c-4bc5-b5c1-c278c4f6620b@suse.com>
Date: Mon, 9 Feb 2026 10:21:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/12] const-ify vendor checks
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> Hi,
> 
> This series is a big revamp of vendor-checking to enable it to perform DCE.
> It improves all configurations useful in practice at minimal cost in the full
> build, and at a massive advantage for the single-vendor case. Many ifdefs can
> go away as a side effect of the series.
> 
> This series depends on cross-vendor removal:
>   https://lore.kernel.org/xen-devel/20260205170923.38425-1-alejandro.garciavallejo@amd.com/T/#m4c3d318f37e4f24d0f8c62b104221aa5d428cebc
> 
> Patch 1 in this series matches that of cross-vendor removal. It's logically
> required, but that's the single requirement.
> 
> High level description
> ======================
> 
> When compared to the RFC this makes a different approach The series introduces
> cpu_vendor() which maps to a constant in the single vendor case and to
> (boot_cpu_data.vendor & X86_ENABLED_VENDORS), where X86_ENABLED_VENDORS is a
> mask of the compile-time chosen vendors. This enables the compiler to detect
> dead-code at the uses and remove all unreachable branches, including in
> switches.
> 
> When compared to the x86_vendor_is() macro introduced in the RFC, this is
> simpler. It achieves MOST of what the older macro did without touching the
> switches, with a few caveats:
> 
>   1. Compiled-out vendors cause a panic, they don't fallback onto the unknown
>      vendor case. In retrospect, this is a much saner thing to do.

I'm unconvinced here. Especially our Centaur and Shanghai support is at best
rudimentary. Treating those worse when configured-out than when configured-in
feels questionable.

>   2. equalities and inequalities have been replaced by equivalent (cpu_vendor() & ...)
>      forms. This isn't stylistic preference. This form allows the compiler
>      to merge the compared-against constant with X86_ENABLED_VENDORS, yielding
>      much better codegen throughout the tree.
> 
> The effect of (2) triples the delta in the full build below.
> 
> Some differences might be attributable to the change from policy vendor checks
> to boot_cpu_data. In the case of the emulator it caused a 400 bytes increase
> due to the way it checks using LOTS of macro invocations, so I left that one
> piece using the policy vendor except for the single vendor case.

For the emulator I'd like to point out this question that I raised in the
AVX10 series:

"Since it'll be reducing code size, we may want to further convert
 host_and_vcpu_must_have() to just vcpu_must_have() where appropriate
 (should be [almost?] everywhere)."

Sadly there was no feedback an that (or really on almost all of that work) at
all so far.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:31:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:31:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225060.1531509 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNcJ-0005ix-FS; Mon, 09 Feb 2026 09:31:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225060.1531509; Mon, 09 Feb 2026 09:31: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 1vpNcJ-0005iq-AZ; Mon, 09 Feb 2026 09:31:39 +0000
Received: by outflank-mailman (input) for mailman id 1225060;
 Mon, 09 Feb 2026 09:31: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=8Y/H=AN=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vpNcI-0005ik-Dg
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:31:38 +0000
Received: from mail-oa1-x33.google.com (mail-oa1-x33.google.com
 [2001:4860:4864:20::33])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1bdf031c-059a-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 10:31:28 +0100 (CET)
Received: by mail-oa1-x33.google.com with SMTP id
 586e51a60fabf-40429b1d8baso1316422fac.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:31:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1bdf031c-059a-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770629487; cv=none;
        d=google.com; s=arc-20240605;
        b=J+HJTN1L+6deIK1tkIf1bVmPZcMx0HaDiLGWH0pfSzMtwD6WRv23lg+8HJwx/e1Dnz
         IPwkYBTKw1U5wJZoYosFggeCwq05y1QsvNBeZbkMyOC1UWDSxIliipiR7YWZJT1lekUA
         ZZiBbV577Tacr+JIv289QdH0uTwvILPGAeZGB3nN+SYmKrqeJ5XfolaLvj3KSD0WSJuc
         wUlogLLgOnpyO+60Y/lJQ0BIIM54QkCtISK1mxSP6/bdiAYmBsSNXhOrwAzA6O9wSD6g
         A9PrWCpcZHzz+PwiTHuA1qR0v/+6TGjR+9BwFQ18J77vYUXv+FcbO31oljUCZFkOpBg2
         OxMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=O0o1/Bj54XGcPpPmp6xwMpgdLQgL1D0IbYLcV2QHG1w=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=TtehPdsyqfBqc9UwrnnTAN7w0O+rtj/BNUeQ58uTuLTpfx0J9HGkzDV0tLYVplZnBI
         tAbaWLaoVbc5qnsztJ34DOtrhOAGqsP2UHANW5DX9bj+i8JvECxZxAmxSHDevyFxKz7I
         /frG1Nb4lzo0OiZI+LzzmJUMla36o1kaBSTwoZNOU7kxE8nkIsWfc2IErpPMRvHRy5aJ
         OKoHVs0v4q8lkNeRptB6VRiYOhT5Yi5CvNc7rIQvmt3XroRjwFC5iGzUGyHK2Vmt2ZY3
         jcfhN+Iih5Vm7mIKWmlHsjmHUfz3BaBPOd2uxuxGACsFpiuGOat4iLc/SU98Q2g2Rd2p
         x+qQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770629487; x=1771234287; 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=O0o1/Bj54XGcPpPmp6xwMpgdLQgL1D0IbYLcV2QHG1w=;
        b=jrHTzvc0kPIZMc0cozLt5FlGjxnefUAfEFKBpmJ/pbIzttzQaty7ygRdjW0EoPKXmf
         iBgUnCynk8gkQhdB7H0zuXTN250bXk2JsMxRHLUCr1O0yLczBYRZqcZklMOXf63NUChp
         h03cbUv5cDgkj/MI8xoF1yWCjsQtcAJsDsgNl3Djxg98ug6zzWsePsmBIhRqq7hQGIdE
         EIatCCKCwRQhQTEAx4wnkwRH37x9BncHIoJPoeVqXqaeBfdgDBQ95IMKEOBTcjL/eBff
         Vzaecr3UB3vO4Ac+w6tzz619zuLpvI+n/ucG9RL9PM5GNVKx/k/D6+f+cPC0soC6wZZM
         VM2Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770629487; x=1771234287;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=O0o1/Bj54XGcPpPmp6xwMpgdLQgL1D0IbYLcV2QHG1w=;
        b=tTXXHmfdIfBRvcru7Z9z6iQ1h2CKmOysw4D9wO7wRSIUALLuqce4HaymC61FYm/AhG
         GDSfIKNznaBijG6ruAKmq7hEQIoQETH6+BsneM7mN5Uuh8vo1ZO3zkDjkln3qIy7n9gx
         4ro3D+VeMB3jtZSKZI9Ay0dvq00VDu28Zumdqtt3TJRmHbovTLtVaumflYgtGGZcd5pe
         1GyapSS0V8/Hwnpak34XeDEmT/w67Dq9C0ApxSnqj+k74v4ixZ3z1Od9ZZv1+pnRUnRp
         EV1Fqf8sqdl/68sGcCkwUOR0wlY0OD9GmL63CXBqXeqbI5Px3vmc7lyD5GATzrlu17a5
         dsVw==
X-Gm-Message-State: AOJu0YxDgUU/SIdh/TOGPgZ4e22WoHH3vKoDXfS5u5iNMxwuT4PjNf8i
	QY5D3Hty05zK+KdjDS4CzsYOlW/TuyMZfHBuSIJ7sYYCAWav/h3q3FKX7THWGRu6Pm6Vad7dMjT
	+M+c8xjOOOh4pqHOlmH99jMIHa2Uc5nr5fBcfSKiAnw==
X-Gm-Gg: AZuq6aImVYy61paEj6pN6PQPHdOxkOV6dcgCmxwvn1YtWVjBQB0HBdlovSRnp43vwaV
	hmRwoBdZZWyC74zbAbU32rWUGAx27fA9uubznKIpY0QNWoLcwg16Mki13U93UwK538+9ouF8anP
	C/DGJmQJYtYm69BlHNdQYq3ZG+CY4lFume3A/9uoayVevC74NtcCzshLhIfK3cuJZNLUNFHVpJe
	1Am6rtW7i2dDgCfDMkOnh6VcFSM29yJShdeO6ZQAvHCdd9lQ4yOKLzZegytcB+EB1IMH/9S3FzI
	kfjY3LlLUcZSAFKyyZ0nTrc1Pg==
X-Received: by 2002:a05:6870:44c9:b0:40a:62b7:1619 with SMTP id
 586e51a60fabf-40a96f90eacmr5939057fac.46.1770629486838; Mon, 09 Feb 2026
 01:31:26 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <97a064c81ee5ea26774c189538f9f1e37dd3eebc.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <97a064c81ee5ea26774c189538f9f1e37dd3eebc.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 9 Feb 2026 10:31:15 +0100
X-Gm-Features: AZwV_Qh3Ing8UIqZBqcXWB5tfalsZrcsBW9TLoWWNf-WEJ9ogJ8KgZPu6NeBnrg
Message-ID: <CAHUa44Ey=Ph_m8r933K5enqPJgFuyVgY+2Qhtj3pi+V_Fw4=6A@mail.gmail.com>
Subject: Re: [PATCH 03/12] xen/arm: ffa: Harden shm page parsing
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> get_shm_pages() uses unchecked address arithmetic and does not enforce
> alignment, so malformed descriptors can cause overflow or slip through
> validation. The reclaim path also repeats handle-to-shm-mem conversion
> in multiple places, duplicating error handling.
>
> Harden page parsing and reclaim handling:
> - add ffa_safe_addr_add() and use it to detect address overflows
> - enforce alignment checks in get_shm_pages() and return FF-A errors
> - introduce ffa_secure_reclaim() and use it for MEM_RECLAIM and teardown
> - simplify ffa_mem_share() argument handling and allow max page count
>
> Functional impact: invalid or misaligned memory ranges now fail earlier
> with proper error codes; behavior for valid descriptors is unchanged.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_private.h | 11 +++++++
>  xen/arch/arm/tee/ffa_shm.c     | 57 +++++++++++++++++-----------------
>  2 files changed, 40 insertions(+), 28 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index b625f1c72914..58562d8e733c 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -632,4 +632,15 @@ static inline void ffa_uuid_set(struct ffa_uuid *id,=
 uint32_t val0,
>      id->val[1] =3D ((uint64_t)val3 << 32U) | val2;
>  }
>
> +/*
> + * Common overflow-safe helper to verify that adding a number of pages t=
o an
> + * address will not wrap around.
> + */
> +static inline bool ffa_safe_addr_add(uint64_t addr, uint64_t pages)
> +{
> +    uint64_t off =3D pages * FFA_PAGE_SIZE;
> +
> +    return (off / FFA_PAGE_SIZE) =3D=3D pages && addr <=3D UINT64_MAX - =
off;
> +}
> +
>  #endif /*__FFA_PRIVATE_H__*/
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index 90800e44a86a..4c0b45cde6ee 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -96,16 +96,14 @@ struct ffa_shm_mem {
>      struct page_info *pages[];
>  };
>
> -static int32_t ffa_mem_share(uint32_t tot_len, uint32_t frag_len,
> -                             register_t addr, uint32_t pg_count,
> -                             uint64_t *handle)
> +static int32_t ffa_mem_share(uint32_t tot_len, uint64_t *handle)
>  {
>      struct arm_smccc_1_2_regs arg =3D {
>          .a0 =3D FFA_MEM_SHARE_64,
>          .a1 =3D tot_len,
> -        .a2 =3D frag_len,
> -        .a3 =3D addr,
> -        .a4 =3D pg_count,
> +        .a2 =3D tot_len,
> +        .a3 =3D 0,
> +        .a4 =3D 0,
>      };
>      struct arm_smccc_1_2_regs resp;
>
> @@ -131,12 +129,16 @@ static int32_t ffa_mem_share(uint32_t tot_len, uint=
32_t frag_len,
>      }
>  }
>
> -static int32_t ffa_mem_reclaim(uint32_t handle_lo, uint32_t handle_hi,
> -                               uint32_t flags)
> +static int32_t ffa_secure_reclaim(struct ffa_shm_mem *shm, uint32_t flag=
s)

I agree with moving the uint64_to_regpair() call into this function,
but I'm puzzled by the new name. What's secure?

>  {
> +    register_t handle_hi;
> +    register_t handle_lo;
> +
>      if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
>          return FFA_RET_NOT_SUPPORTED;
>
> +    uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
> +
>      return ffa_simple_call(FFA_MEM_RECLAIM, handle_lo, handle_hi, flags,=
 0);
>  }
>
> @@ -145,7 +147,7 @@ static int32_t ffa_mem_reclaim(uint32_t handle_lo, ui=
nt32_t handle_hi,
>   * this function fails then the caller is still expected to call
>   * put_shm_pages() as a cleanup.
>   */
> -static int get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
> +static int32_t get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
>                           const struct ffa_address_range *range,
>                           uint32_t range_count)
>  {
> @@ -156,17 +158,26 @@ static int get_shm_pages(struct domain *d, struct f=
fa_shm_mem *shm,
>      p2m_type_t t;
>      uint64_t addr;
>      uint64_t page_count;
> +    uint64_t gaddr;
>
>      for ( n =3D 0; n < range_count; n++ )
>      {
>          page_count =3D ACCESS_ONCE(range[n].page_count);
>          addr =3D ACCESS_ONCE(range[n].address);
> +
> +        if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
> +            return FFA_RET_INVALID_PARAMETERS;
> +
>          for ( m =3D 0; m < page_count; m++ )
>          {
>              if ( pg_idx >=3D shm->page_count )
>                  return FFA_RET_INVALID_PARAMETERS;
>
> -            gfn =3D gaddr_to_gfn(addr + m * FFA_PAGE_SIZE);
> +            if ( !ffa_safe_addr_add(addr, m) )
> +                return FFA_RET_INVALID_PARAMETERS;
> +
> +            gaddr =3D addr + m * FFA_PAGE_SIZE;
> +            gfn =3D gaddr_to_gfn(gaddr);
>              shm->pages[pg_idx] =3D get_page_from_gfn(d, gfn_x(gfn), &t,
>                                                    P2M_ALLOC);
>              if ( !shm->pages[pg_idx] )
> @@ -180,7 +191,7 @@ static int get_shm_pages(struct domain *d, struct ffa=
_shm_mem *shm,
>
>      /* The ranges must add up */
>      if ( pg_idx < shm->page_count )
> -            return FFA_RET_INVALID_PARAMETERS;
> +        return FFA_RET_INVALID_PARAMETERS;
>
>      return FFA_RET_OK;
>  }
> @@ -198,15 +209,11 @@ static void put_shm_pages(struct ffa_shm_mem *shm)
>
>  static bool inc_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
>  {
> -    bool ret =3D true;
> +    bool ret =3D false;
>
>      spin_lock(&ctx->lock);
>
> -    if ( ctx->shm_count >=3D FFA_MAX_SHM_COUNT )
> -    {
> -        ret =3D false;
> -    }
> -    else
> +    if ( ctx->shm_count < FFA_MAX_SHM_COUNT )
>      {
>          /*
>           * If this is the first shm added, increase the domain reference
> @@ -217,6 +224,7 @@ static bool inc_ctx_shm_count(struct domain *d, struc=
t ffa_ctx *ctx)
>              get_knownalive_domain(d);
>
>          ctx->shm_count++;
> +        ret =3D true;
>      }
>
>      spin_unlock(&ctx->lock);
> @@ -251,7 +259,7 @@ static struct ffa_shm_mem *alloc_ffa_shm_mem(struct d=
omain *d,
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      struct ffa_shm_mem *shm;
>
> -    if ( page_count >=3D FFA_MAX_SHM_PAGE_COUNT )
> +    if ( page_count > FFA_MAX_SHM_PAGE_COUNT )
>          return NULL;
>      if ( !inc_ctx_shm_count(d, ctx) )
>          return NULL;
> @@ -367,7 +375,7 @@ static int share_shm(struct ffa_shm_mem *shm)
>          init_range(addr_range, pa);
>      }
>
> -    ret =3D ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);

Please remove frag_len from share_shm() since it's not needed any longer.

Cheers,
Jens

> +    ret =3D ffa_mem_share(tot_len, &shm->handle);
>
>  out:
>      ffa_rxtx_spmc_tx_release();
> @@ -637,8 +645,6 @@ int32_t ffa_handle_mem_reclaim(uint64_t handle, uint3=
2_t flags)
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      struct ffa_shm_mem *shm;
> -    register_t handle_hi;
> -    register_t handle_lo;
>      int32_t ret;
>
>      if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
> @@ -652,8 +658,7 @@ int32_t ffa_handle_mem_reclaim(uint64_t handle, uint3=
2_t flags)
>      if ( !shm )
>          return FFA_RET_INVALID_PARAMETERS;
>
> -    uint64_to_regpair(&handle_hi, &handle_lo, handle);
> -    ret =3D ffa_mem_reclaim(handle_lo, handle_hi, flags);
> +    ret =3D ffa_secure_reclaim(shm, flags);
>
>      if ( ret )
>      {
> @@ -677,11 +682,7 @@ bool ffa_shm_domain_destroy(struct domain *d)
>
>      list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
>      {
> -        register_t handle_hi;
> -        register_t handle_lo;
> -
> -        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
> -        res =3D ffa_mem_reclaim(handle_lo, handle_hi, 0);
> +        res =3D ffa_secure_reclaim(shm, 0);
>          switch ( res ) {
>          case FFA_RET_OK:
>              printk(XENLOG_G_DEBUG "%pd: ffa: Reclaimed handle %#lx\n",
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:35:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:35:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225067.1531518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNfh-0006Hr-Rs; Mon, 09 Feb 2026 09:35:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225067.1531518; Mon, 09 Feb 2026 09:35: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 1vpNfh-0006Hk-Ou; Mon, 09 Feb 2026 09:35:09 +0000
Received: by outflank-mailman (input) for mailman id 1225067;
 Mon, 09 Feb 2026 09:35: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpNfg-0006He-ED
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:35:08 +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 9db011c1-059a-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 10:35:05 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-4376c0bffc1so686698f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:35:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376ab6e4c0sm10574590f8f.0.2026.02.09.01.35.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:35:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9db011c1-059a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770629705; x=1771234505; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xfEZDwMetPdChnyM4arsicKXekHp8K+9aou74YwYZys=;
        b=E132Ws79hjujbvLosDL54FeGDS5hZHfdwW6fZTs774MvPG00LrV2wHVXgyknnkE/4y
         YTiafPQg7ayRJBNv2NscDJVIXVzUDaeV5wzBVCFdJrKistc4bFKNySqCpiOL6h9+gutP
         aKnFiNWZ2eFAfTD9VJIGBEyxB4z4+KlXVlIenwfjiUpa6P6D4vhN6YLt+q6pJZ8BdCbd
         mBZC5EA/DLOx1kI1qtaqQigqFrD/H1CQkrPK9zxO6qLRad3UYBiVWY+Dzw4Pc84+2Z61
         GFClwe1ZkaAT9BC1O1dNsf+GZI8w1QquB+1xEXyhra+HhMznHLD9+oKSzAUfgqHUmIKp
         hofA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770629705; x=1771234505;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xfEZDwMetPdChnyM4arsicKXekHp8K+9aou74YwYZys=;
        b=KEZu3XnOHiVuHEyIiSxuM59W4W2gUfQeK7H0/6unWeIIfW1ivppY7+6ZSrnJvuuIO5
         fWQ7bn0jvcFsZ0oA6+d4t7wTQNVNx4W+LQU0JFJXS2/hDDu94US/sQfjWMHO+VFJh4R+
         /ufvjv6bOd0tixfjUe/QW3PNypIaPrSdSeN2FJ8QGGHM75+n4mJgBidpyZOfHfriRVYe
         RR3pg4NU91saV/Gc28O4GqNbGhEUugwQqgzozFcNZ+X6L6eMlTeZlAy3fWLjnXW1UlVC
         BZoggOtwZh4tODQMhj1QrgBUOvv3OxSy2oHZ7MsETmHg5s7lPP9JI0OFTvsadUxLlhsk
         304g==
X-Gm-Message-State: AOJu0YwS0U4mJ4jn8dCBnHPqxWR8++kealnMefGI8yUZWjcBqfIHxWC9
	O4agAFpTdIrZc1ciQqvJG6/RRYiSUmIw9y3afDbEiKoiP30vOuXeOGx49AYJMBc4/g==
X-Gm-Gg: AZuq6aKTiv8n6EhtkoNfBN/zarfPmAcYtHCv9dUNe1JPql60kKqWy7UY+8DEV5wnxeI
	r2BTzBb+k0jLZmx0hDptcwR+9AeEO8ZuFWt8B7pP70e+k36QZP33t8l3y7Ck5wU98j3drPRYVZS
	4/7wQfdi9NUjrJ7xVOfks5tQC5juBndANunoXrwFDN84DU1OhjbzrB3IN8mSFKJsfIyphttXEQI
	LKsY2yf+cmHpmgHM+OVdOyYDy215JmeoJl9v1M3aQQr3EqLalvkoI/xfHKccJodkNpWDEY7uJaZ
	l9TS1ryncxkkRF/D8D70BR9SCXJTJFRsqbLc9xGVuXxIFtQZOXFitAVtWAC1fXwZuFMEovA81ax
	//WpU3Zr8vRoKz6hfeQ6pKg/MFWQerFuRArzng1l66Xr/5UrUXAwr9HYeniozh+tUbSpCPp2kSE
	tsoaoExOoFuFRQK8y01GJWg0bmO/ed3lXmUP0h9euNDF/hTAC0wJPMv1+8glxQ/s2Sc7w6twbSC
	0I=
X-Received: by 2002:a05:6000:24c8:b0:432:8504:8d5b with SMTP id ffacd0b85a97d-4362968a722mr16717227f8f.50.1770629704869;
        Mon, 09 Feb 2026 01:35:04 -0800 (PST)
Message-ID: <7180e7a5-3075-4237-b23f-ddc0e370f692@suse.com>
Date: Mon, 9 Feb 2026 10:35:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
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>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
 <aYYkAvGQygf2eNI7@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: <aYYkAvGQygf2eNI7@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.02.2026 18:25, Roger Pau Monné wrote:
> On Fri, Feb 06, 2026 at 05:21:44PM +0100, Bertrand Marquis wrote:
>> Xen does not provide a Darwin build configuration for selecting
>> GNU tool definitions. On macOS, the tools we use are either GNU
>> compatible or we only rely on features supported by Mac OS, so
>> using the GNU tool definitions is appropriate.
>>
>> Add config/Darwin.mk to include StdGNU.mk and force
>> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
>> the cross-compile path as we depend on the Linux ABI so compiling
>> on Mac OS is always a cross compilation case.
>>
>> An example of how to build the hypervisor for arm64 on Mac OS
>> (tools cannot be build for now) using a toolchain from brew:
>> - brew install aarch64-elf-gcc aarch64-elf-binutils
>> - cd xen
>> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
> 
> Instead of `cd xen` I would use `make xen ...`.

There are subtle differences, though. (Really I first wondered whether you
omitted -C ...)

>> --- /dev/null
>> +++ b/config/Darwin.mk
>> @@ -0,0 +1,7 @@
>> +# Use GNU tool definitions as the tools we are using are either GNU compatible
>> +# or we only use features which are supported on Mac OS.
>> +include $(XEN_ROOT)/config/StdGNU.mk
>> +
>> +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
> 
> Hm, is this actually fully true?  What's the Linux ABI exactly here?
> 
> FreeBSD builds Xen natively, and it's not using the Linux ABI.
> FreeBSD uses no specific -target to the compiler invocations, and the
> linker emulation is set to elf_x86_64_fbsd.
> 
> I think the point here is that the toolchain must support building ELF
> objects / images, because that's the binary format supported by Xen.
> Whether it's Linux ELF or FreeBSD ELF doesn't make a difference for
> standalone environments like the Xen kernel.

It's the ELF SVR4 psABI that we're after. This is more than just building
ELF objects: It's also about calling convention, for example. Which would
not matter much if Xen code was all written in C, as the ABI Xen surfaces
to guests is entirely different anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:40:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:40:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225075.1531527 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNkv-00084L-DD; Mon, 09 Feb 2026 09:40:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225075.1531527; Mon, 09 Feb 2026 09: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 1vpNkv-00084E-A8; Mon, 09 Feb 2026 09:40:33 +0000
Received: by outflank-mailman (input) for mailman id 1225075;
 Mon, 09 Feb 2026 09:40: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpNkt-000844-Gk
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:40: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 5e9e2732-059b-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 10:40:29 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso39920215e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:40:29 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48320410b78sm136213835e9.2.2026.02.09.01.40.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:40:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e9e2732-059b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770630028; x=1771234828; 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=hL5ylKQQZwhy5EKQP6ncYf+9DocqDBHr6X+tFP4oOY8=;
        b=g2s5WqatTXTJKCReZqCZdfkMNNqMzd80ZOnXIMTqAWA1NUQCUZnJ6URIJ5RBbN2sRo
         czsInJKoxC1O2i5gAga9UprwNu/eFpSOflGmroTQn/ObJhGesbXQ2nOJ+HyuO51lFc+r
         2zdrTG+6EGkMBfJIokH/IXZv3Pw27lHSVNi+yo3C3j7WpjYTk4YxbGoHDvj7s/he4Ye5
         f+wbUki56nDcYhplkL56aoG/v2fhQYtI9kyymz6IZjc0G+BMnvH/2PEQLMuO8WxPVFpx
         6yhbbnG/scob6AL+Jpip812SPLJiCLW/GnQiObz2LNNniuQoD4M+7lTqpzMds2BBqqv6
         gHmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770630029; x=1771234829;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=hL5ylKQQZwhy5EKQP6ncYf+9DocqDBHr6X+tFP4oOY8=;
        b=vbuO5MY9cCvgRcoajrScilmmY+rp6Egc6duxdvz7WYlzLaVtihRWEJ8QezRW9Q2erh
         TfxPIZr2kKw9FNyAW8tkWXDgLBG2jG4BJtD6Ug012WGjZ6LIckVKjJwh4ziaEKc+Qe47
         YzQlZ69OhFbRkpWGVfY3JxRia+fKLQehi8/48waMaJB4/4rJqiZGo6cSbhOWbofKkDkh
         7w+4vTJMNCNP92dV+BpguvHsQqazaSalaiLnXmkXhiWiSKG7Uj+WUfdR8LO8iPOfh7pw
         fQRHCU0/bcKq26asbinBFPhDX0sGT380/1zyrfcA2UUCBFfExwCmhTS54bnxFjPyUVc5
         tcAw==
X-Forwarded-Encrypted: i=1; AJvYcCVDzHQk2XGTxa3Q69iyoFjw0vm3FowVd2RzcTBFEYt4q6qxVZJxWEPp7jepQfNbQ8HDLLa0lyjfm38=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMTbT3gd6D+jZrUjSEBQ+4NAOd4muG1Fg++ytcknzU+OLt8wH4
	hAINvs/xlb4qDBjcOrbeOyt1N5dmU5QQy4DzFHDyZBHwnj8P4jP1jaOK
X-Gm-Gg: AZuq6aIHhhOgDbf8kkhug2RF6nVLD8/a4rR6i4/XTIjhCl9J5sdWpiNg82mljZtJNfe
	WpJvhFnnOvYJELDpwCX8XBCdqEGKzSFTkdWORzqm14c4HVPYIgeziC2k3DRnnr9rZf6mthGaTSH
	XkCWXTWiLMTI4s8oHCwB9OpnVC7V8x/Xd8JzN8Vy5GG8Yu2xwir9xA7m7bXmPqEDZKIpQU/GynK
	2ekvq76DrVlnnNTi+BKtFoD69ufrsy4R0ec4WnNknQw2FfWpboNNHIUnWvqwCXCin4gQ9kryQLw
	zAdbweEM+brJO7Um0zqwrct4lWWUsKfo9pgcJv9UaylZn/KbapEMZmHxs9geE2euVQXAuRf6d48
	1Ly0a7Qy3ZhtOGKTEniAN/i0czx4qYBTPvJM2Qo6wKcul+1epjZzXWddBOHQ4aXLOM8h+n+YppA
	yGkWXY78WKkF3Bg/EsSRmWVR1bEypx1QbEyxg+2MfqpFEs4CzumEbXl82a2LB3deJgy0B4rRqVB
	A==
X-Received: by 2002:a05:600c:d8:b0:47e:e452:ec12 with SMTP id 5b1f17b1804b1-48317921817mr145153785e9.15.1770630028315;
        Mon, 09 Feb 2026 01:40:28 -0800 (PST)
Message-ID: <29006d8a-e003-4451-99af-0eef8f7d1c08@gmail.com>
Date: Mon, 9 Feb 2026 10:40:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/16] xen/riscv: introduce vcpu_kick() implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <0335a7db0343d81ce4256482a464e7ba5df1c204.1769099885.git.oleksii.kurochko@gmail.com>
 <14d19350-0de8-4496-99e5-0ba76e421684@gmail.com>
 <4a12e652-5b53-40d0-b701-d1f5b749dfa7@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <4a12e652-5b53-40d0-b701-d1f5b749dfa7@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/9/26 10:07 AM, Jan Beulich wrote:
> On 06.02.2026 17:36, Oleksii Kurochko wrote:
>> On 1/22/26 5:47 PM, Oleksii Kurochko wrote:
>>> Add a RISC-V implementation of vcpu_kick(), which unblocks the target
>>> vCPU and sends an event check IPI if the vCPU was running on another
>>> processor. This mirrors the behavior of Arm and enables proper vCPU
>>> wakeup handling on RISC-V.
>>>
>>> Remove the stub implementation from stubs.c, as it is now provided by
>>> arch/riscv/domain.c.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> Changes in v2:
>>>    - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
>>> ---
>>>    xen/arch/riscv/domain.c | 14 ++++++++++++++
>>>    xen/arch/riscv/stubs.c  |  5 -----
>>>    2 files changed, 14 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
>>> index e38c0db62cac..13ac384c4b76 100644
>>> --- a/xen/arch/riscv/domain.c
>>> +++ b/xen/arch/riscv/domain.c
>>> @@ -1,8 +1,10 @@
>>>    /* SPDX-License-Identifier: GPL-2.0-only */
>>>    
>>> +#include <xen/cpumask.h>
>>>    #include <xen/init.h>
>>>    #include <xen/mm.h>
>>>    #include <xen/sched.h>
>>> +#include <xen/smp.h>
>>>    #include <xen/vmap.h>
>>>    
>>>    #include <asm/bitops.h>
>>> @@ -240,3 +242,15 @@ void vcpu_sync_interrupts(struct vcpu *v)
>>>    #   error "Update vsieh"
>>>    #endif
>>>    }
>>> +
>>> +void vcpu_kick(struct vcpu *v)
>>> +{
>>> +    bool running = v->is_running;
>>> +
>>> +    vcpu_unblock(v);
>>> +    if ( running && v != current )
>>> +    {
>>> +        perfc_incr(vcpu_kick);
>> Because of this it is needed to introduce:
>>     PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
>> Otherwise randconfig build will fail when CONFIG_PERF_COUNTERS=y.
>>
>> I would like to ask if it would be okay to add it xen/include/xen/perfc_defn.h
>> just after PERFCOUNTER(need_flush_tlb_flush,...) or would it be better to have
>> it in arch specific perfc_defn.h?
> Arch-specific please - it's not used by x86 nor ppc.

Then I will do the following changes:

diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index 3824f31c395c..86c56251d5d7 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -7,7 +7,6 @@ generic-y += hypercall.h
  generic-y += iocap.h
  generic-y += irq-dt.h
  generic-y += percpu.h
-generic-y += perfc_defn.h
  generic-y += random.h
  generic-y += softirq.h
  generic-y += vm_event.h
diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
new file mode 100644
index 000000000000..4fc161f1abad
--- /dev/null
+++ b/xen/arch/riscv/include/asm/perfc_defn.h
@@ -0,0 +1,7 @@
+/* This file is intended to be included multiple times. */
+/*#ifndef __XEN_PERFC_DEFN_H__*/
+/*#define __XEN_PERFC_DEFN_H__*/
+
+PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
+
+/*#endif*/ /* __XEN_PERFC_DEFN_H__ */

and add the following to commit message:
     Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
     vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
     CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
     for example, by randconfig what will lead to CI build issues.

Note that I keep __XEN_PERFC_DEFN_H__ as other archictectures use the same,
not something like ASM__<arch>__PERFC_DEFN_H.

Let me know if these changes are okay for you and if I can keep your
Acked-by for this patch.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:45:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:45:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225084.1531538 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNpp-0000Gd-3r; Mon, 09 Feb 2026 09:45:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225084.1531538; Mon, 09 Feb 2026 09:45: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 1vpNpp-0000GW-0F; Mon, 09 Feb 2026 09:45:37 +0000
Received: by outflank-mailman (input) for mailman id 1225084;
 Mon, 09 Feb 2026 09:45: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpNpo-0000GN-1F
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:45:36 +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 148d1fc3-059c-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 10:45:34 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-480142406b3so32077595e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:45:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d3e245sm351227245e9.8.2026.02.09.01.45.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:45:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 148d1fc3-059c-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770630334; x=1771235134; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=sMepS55pwInObmLx/M7587dXUiK3Ie5eihrONDd6dfk=;
        b=NVU2vyDpXr13Rf2zgNIrchuFh2v7MpIu2toPEd6yJ0hO3tCVb8u/h1H+a4CfkpWfNt
         N72o5bwTgvNEiJfTSh2freOlfpTBd7VIIBhnnZmIHPlpapKTke7cOYzTko/t0EMcLUU5
         nL4w0/80sMjA6mJ6xaebTw5KtgIpjH5vH4M+cHP3ahd6IIfXhZoqRyj1K9YOoMttX5+i
         S6RiPSPGZOW9ZYR3bmrUKJXVANrqz0NL282Kvo2lRj+iP8etn+9x6x7Y8dMICPR4LKqC
         n+PZwPqVicLMaBsVKe1u3MPMEXIkce5EwSkcT2bUWDozD/IqRFimavGgc42sOAMSsro9
         HBnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770630334; x=1771235134;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sMepS55pwInObmLx/M7587dXUiK3Ie5eihrONDd6dfk=;
        b=HpVeAFlyMq2o/AaekBUf8wofaMjg/YUZReRIdsuUi93iGOZE9lA0gEXoDer9tChHhq
         4V4AfHTaG1TwaviKqukOSoaFn8NBhjaZwNLYKFhi2qY6Ou/rAeOrvcUV+Wccb9cDWIZX
         EamGF01gKHrMB9LdG9bZ7pZHXBsMbMMhpmBexrs/Gm9boUl38dBGhcEpwyFXQrVJgFeO
         feUdG5Q9PY5X7bhIF46ttFK4eETlQfSU7te3sb1fEVmK67oRSayY9+mDnG5c6ICV41ra
         /Q1widsw4afQPt4gom+B1C4IZY5cUUaAasisaL86mLlpl9/P9U5liA1TSXZbAYutd314
         bA2g==
X-Gm-Message-State: AOJu0YxWeX4UY3NZwtySeiQ91QtEKF4YbyxMHmTwleXbSD/7PMluLw3s
	GbQ8kYAogBSH3HA7D0HuF7OvEYiEFASA4REUjJXufTik7qK9GPfgF7CzvxG1lvZRpQ==
X-Gm-Gg: AZuq6aLCdcNSPzy57gg9PecPuchDEiWgjdhTDrx5UmokQcv6KVDbCrH0Gul151+SvTE
	rEDIKheQbkeohI/vmSp0S1vbYclTxYEp+xmfBPFQpj5o3iDLiWUVaYtlYldLjbUL2j9bKc8CtBi
	rtYnu9I30aAPcvjkaUeI6+0YHBWB3EKKKctzpYqu1G9GHKGsYqPwKlD+UXgvwWrMqbezSIssoVg
	k7C0qv5mdhRGJccc7MJPWUcUpMunMmXOIfYsaqHBFDkODH3XfOnn6EPsa7/ZJoT1Cp3UQfvN5x+
	HUd8uSVmB256kYjyE4S+UYUXdS1bzv3fDTzU317gTSOZ7EVbHK9+sKAr5EEo77R8iThj8W25cXP
	Io1q1Cz2qpDQ/zzb4h3UqagU3Rop7NOV8zHjGLDPyNXV6YNr6NsEA+hJbvD+cr9CbwpCeDmMwch
	ebB+Szgw1z9bEi/Y3atASnJ2sH9Seie/ImGXyoLJjD/ZkY0T0bOpoObpe8zyMMEMezkGozGYduY
	g0=
X-Received: by 2002:a05:600c:34d1:b0:47e:e20e:bb9c with SMTP id 5b1f17b1804b1-483201d5ff1mr157582515e9.8.1770630333819;
        Mon, 09 Feb 2026 01:45:33 -0800 (PST)
Message-ID: <d43840ca-4e06-45c4-853d-bd666ea06bc0@suse.com>
Date: Mon, 9 Feb 2026 10:45:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Bertrand Marquis <Bertrand.Marquis@arm.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>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
 <aYYkAvGQygf2eNI7@Mac.lan> <28DF7F1E-BAA3-49AC-8A53-75100BAE74B5@arm.com>
 <aYmksdxh5PM7IHDN@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: <aYmksdxh5PM7IHDN@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 10:11, Roger Pau Monné wrote:
> On Mon, Feb 09, 2026 at 07:30:30AM +0000, Bertrand Marquis wrote:
>> Hi Roger,
>>
>>> On 6 Feb 2026, at 18:25, Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>
>>> On Fri, Feb 06, 2026 at 05:21:44PM +0100, Bertrand Marquis wrote:
>>>> Xen does not provide a Darwin build configuration for selecting
>>>> GNU tool definitions. On macOS, the tools we use are either GNU
>>>> compatible or we only rely on features supported by Mac OS, so
>>>> using the GNU tool definitions is appropriate.
>>>>
>>>> Add config/Darwin.mk to include StdGNU.mk and force
>>>> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
>>>> the cross-compile path as we depend on the Linux ABI so compiling
>>>> on Mac OS is always a cross compilation case.
>>>>
>>>> An example of how to build the hypervisor for arm64 on Mac OS
>>>> (tools cannot be build for now) using a toolchain from brew:
>>>> - brew install aarch64-elf-gcc aarch64-elf-binutils
>>>> - cd xen
>>>> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
>>>
>>> Instead of `cd xen` I would use `make xen ...`.
>>
>> Ack the 'cd xen' line is useless and should be removed.
>>
>>>
>>>>
>>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>>>
>>> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
>>>
>>> One comment below.
>>>
>>>> ---
>>>> Changes since v3:
>>>> - set XEN_COMPILE_ARCH to unknown instead of Darwin
>>>> - list binutils as a dependency to install in brew in commit message
>>>>
>>>> Changes since v2:
>>>> - Subject was "xen: Add macOS hypervisor build configuration"
>>>> - Update Darwin.mk comments to more accurate versions (Jan)
>>>> - Remove the build-on-macos help as we have no dependency on anything
>>>>  coming from brew anymore and the toolchain can be retrieved by lots of
>>>>  other solutions than brew on mac os. Switch to a simple doc in the
>>>>  commit message instead
>>>> ---
>>>> config/Darwin.mk | 7 +++++++
>>>> 1 file changed, 7 insertions(+)
>>>> create mode 100644 config/Darwin.mk
>>>>
>>>> diff --git a/config/Darwin.mk b/config/Darwin.mk
>>>> new file mode 100644
>>>> index 000000000000..176b27eac676
>>>> --- /dev/null
>>>> +++ b/config/Darwin.mk
>>>> @@ -0,0 +1,7 @@
>>>> +# Use GNU tool definitions as the tools we are using are either GNU compatible
>>>> +# or we only use features which are supported on Mac OS.
>>>> +include $(XEN_ROOT)/config/StdGNU.mk
>>>> +
>>>> +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
>>>
>>> Hm, is this actually fully true?  What's the Linux ABI exactly here?
>>>
>>> FreeBSD builds Xen natively, and it's not using the Linux ABI.
>>> FreeBSD uses no specific -target to the compiler invocations, and the
>>> linker emulation is set to elf_x86_64_fbsd.
>>>
>>> I think the point here is that the toolchain must support building ELF
>>> objects / images, because that's the binary format supported by Xen.
>>> Whether it's Linux ELF or FreeBSD ELF doesn't make a difference for
>>> standalone environments like the Xen kernel.
>>
>> This file is also use while compiling the tools and for those you definitely
>> to cross compile as they depend on Linux ABI.
> 
> I'm not an expert on this at all, but IMO the tools don't depend on
> the Linux ABI at all.  Anyone can add the minimal OS-specific bindings
> required for the tools to work on environments different than Linux.
> We currently have {Net,Free}BSD and Linux.  In the past we also had
> Solaris, but that has bit rotten.
> 
>> Maybe that works on BSD
>> but i doubt this would be the case on mac os.
> 
> I doubt we would ever have any need to build an OSX native toolchain,
> as it's unlikely (?) that we will ever get Xen support in the Darwin
> kernel.

If Darwin has some way to load "modules" (e.g. drivers) into the kernel, it
may in principle be possible to run OSX as a HVM-Dom0, with a Xen driver
loaded separately. That's far fetched, I know.

>> Maybe we could simplify the sentence to not say anything we are unsure:
>>
>> # Cross compile on Mac OS
>>
>> Tell me if that works for you and i can submit a v5 or this might be possible to
>> fix on commit.
> 
> I'm fine with it, I would like to hear Jan's opinion.

As long as it's clear that all of this is only about building the hypervisor
(which doesn't look to be the case right now beyond the example given in the
commit message, which may be taken as really only an example), that's okay
[1]. I'd still prefer to mention the SVR4 ABI here, though, to at least
somewhat explain the "always cross" aspect.

I can make edits while committing, but I'm unsure whether that's wanted in
this case.

Jan

[1] Yet better might be if we refused to build other than the hypervisor.
I'm unsure though how easy it would be to achieve that in an at least
halfway tidy manner.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:52:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:52:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225091.1531549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNw5-00023V-Pj; Mon, 09 Feb 2026 09:52:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225091.1531549; Mon, 09 Feb 2026 09:52: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 1vpNw5-00023O-LG; Mon, 09 Feb 2026 09:52:05 +0000
Received: by outflank-mailman (input) for mailman id 1225091;
 Mon, 09 Feb 2026 09:52: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpNw4-00023I-6c
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:52:04 +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 f9ca622d-059c-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 10:51:59 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-43284ed32a0so2818018f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:51:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376accfc58sm10384106f8f.16.2026.02.09.01.51.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:51:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9ca622d-059c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770630718; x=1771235518; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CFemyBGgeUstEbpkJJOJGGd9yi/2M0injES8NM4DbJY=;
        b=gI9vk1QKeHaRJFo99dwROwvRWYacIvFjWYykuKDw8+uTwl5VVDmcuDOnxmnVUwvCQB
         N8jH1sY7QKB6CprgJOtNsk8uO3roxny1HY4iGqNMe6Ng6PeU8Ejt8r/afH/V7F15/yj2
         jFy2MUJim4jaQERhviKq6rc5XjPXVbVdH0vOCTcydQGaWaKCatbAVZ4bTiKKmd31o4XK
         MSDI/ZM9wxLEoiOWoPcAjZL2JWsqVQNTSv6fglYiUH/7BOaYYWhS7Qi34H3UcRJxYnZZ
         hpTrj45+9nqZmekVCWo2Z2DBqrorX2T0Z40y4s3Ij/iyNxzrnu4Sx8rWqx8hOPHoCz5K
         hRbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770630718; x=1771235518;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CFemyBGgeUstEbpkJJOJGGd9yi/2M0injES8NM4DbJY=;
        b=CISZrmeoKgEW0UPUhs/qIGpsk/4zRsdqwb/0+blWw5ZXATePZDxHB/5mBhTdjcQLto
         JAx7swIHHz70nU4pngkZARGIEyUPn0oszi++EfNMqbFd174xMdAgDDNZ1L8Sz0AB9zyu
         L4kylEIvXxqvSeOOV1omaSxbwguCkha4MMEzMEzQRGaz7RUuI976CByu4fJya2dUMLhf
         jZc9uGTd/Jy9PWt3VDZmn6nTTeuv4NiZJN0VTXvcIcl7QuPHJWTDHLx02X9Hpc0MptUL
         p8WxhmmscVAeQ2urVsId+Wt9yjFGopPbAjFFT1UzOlkib+SsycPATwD+rBJkFr/q57Ez
         U3DQ==
X-Forwarded-Encrypted: i=1; AJvYcCXR6YOpitC2ReKUr/GGBlQVq9XUCKAeA98gzsHjoalKSgKNUv33o//n1hIcch1KeG9EJg5ZCC6eAyA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw0PLlsgv69nSrCvDvGMO7E8n9HqpLhkpWNjyQKJzlsIAcPwR5+
	TofFqLlvuBupKfQhFs+yuCfC7NTqfG371LQgbHLpi75+xGgbC2GLH0NMPWXrcdccWg==
X-Gm-Gg: AZuq6aKX7i+m0Hmu1mJHDJ1Q7yMtEEreig25ysl4xGX6k0leOiUiROcVWH/mIxdvdFI
	5LYBiDywmrEAXjBwIy+dvC5OyjdAS+Qmci+2pU2wN5UMGlgimYbVnDPg0B8t+XLNamgEj+chYnz
	n3pz6YlWbS8KLf3MWpSw2BXPxcvWJuXdqr2m7E6JuuufGEtXRrDtqJ27deEXIGuodDIMMp2X2lX
	dDCHn7hIhmWfGxUPGD2fifPVv+IxZwKjPmcKwXSAy7CN0eM0DzlOXPkXG7tPlLEecKILGvn5Tld
	nN249ttEL8kK243Ca8JjkLS9rIJ/X8oZLH+2F1K61rz/v5CKtVkPS1f/xXabSYyxQRUqDpB+wEG
	BQ2uy1UJI95l9eoePD7ziCP6XgcjWpDPJwtqv25sDSWpcMXDuqTZELRm0lwTxou897DdylVITNe
	rm16iP7A1+JSJkcded6xEspZKr+vbdH6+U9pSVRMTrbvFLVITVZmF84TOn0NEvkBkvdEg8BPaEy
	IU=
X-Received: by 2002:adf:e3ca:0:b0:436:307c:b756 with SMTP id ffacd0b85a97d-436307cb85dmr9404908f8f.47.1770630718313;
        Mon, 09 Feb 2026 01:51:58 -0800 (PST)
Message-ID: <87533cdf-c8cc-4a86-9946-a999e8d31b82@suse.com>
Date: Mon, 9 Feb 2026 10:51:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/16] xen/riscv: introduce vcpu_kick() implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <0335a7db0343d81ce4256482a464e7ba5df1c204.1769099885.git.oleksii.kurochko@gmail.com>
 <14d19350-0de8-4496-99e5-0ba76e421684@gmail.com>
 <4a12e652-5b53-40d0-b701-d1f5b749dfa7@suse.com>
 <29006d8a-e003-4451-99af-0eef8f7d1c08@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: <29006d8a-e003-4451-99af-0eef8f7d1c08@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 10:40, Oleksii Kurochko wrote:
> 
> On 2/9/26 10:07 AM, Jan Beulich wrote:
>> On 06.02.2026 17:36, Oleksii Kurochko wrote:
>>> On 1/22/26 5:47 PM, Oleksii Kurochko wrote:
>>>> Add a RISC-V implementation of vcpu_kick(), which unblocks the target
>>>> vCPU and sends an event check IPI if the vCPU was running on another
>>>> processor. This mirrors the behavior of Arm and enables proper vCPU
>>>> wakeup handling on RISC-V.
>>>>
>>>> Remove the stub implementation from stubs.c, as it is now provided by
>>>> arch/riscv/domain.c.
>>>>
>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>> ---
>>>> Changes in v2:
>>>>    - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
>>>> ---
>>>>    xen/arch/riscv/domain.c | 14 ++++++++++++++
>>>>    xen/arch/riscv/stubs.c  |  5 -----
>>>>    2 files changed, 14 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
>>>> index e38c0db62cac..13ac384c4b76 100644
>>>> --- a/xen/arch/riscv/domain.c
>>>> +++ b/xen/arch/riscv/domain.c
>>>> @@ -1,8 +1,10 @@
>>>>    /* SPDX-License-Identifier: GPL-2.0-only */
>>>>    
>>>> +#include <xen/cpumask.h>
>>>>    #include <xen/init.h>
>>>>    #include <xen/mm.h>
>>>>    #include <xen/sched.h>
>>>> +#include <xen/smp.h>
>>>>    #include <xen/vmap.h>
>>>>    
>>>>    #include <asm/bitops.h>
>>>> @@ -240,3 +242,15 @@ void vcpu_sync_interrupts(struct vcpu *v)
>>>>    #   error "Update vsieh"
>>>>    #endif
>>>>    }
>>>> +
>>>> +void vcpu_kick(struct vcpu *v)
>>>> +{
>>>> +    bool running = v->is_running;
>>>> +
>>>> +    vcpu_unblock(v);
>>>> +    if ( running && v != current )
>>>> +    {
>>>> +        perfc_incr(vcpu_kick);
>>> Because of this it is needed to introduce:
>>>     PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
>>> Otherwise randconfig build will fail when CONFIG_PERF_COUNTERS=y.
>>>
>>> I would like to ask if it would be okay to add it xen/include/xen/perfc_defn.h
>>> just after PERFCOUNTER(need_flush_tlb_flush,...) or would it be better to have
>>> it in arch specific perfc_defn.h?
>> Arch-specific please - it's not used by x86 nor ppc.
> 
> Then I will do the following changes:
> 
> diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
> index 3824f31c395c..86c56251d5d7 100644
> --- a/xen/arch/riscv/include/asm/Makefile
> +++ b/xen/arch/riscv/include/asm/Makefile
> @@ -7,7 +7,6 @@ generic-y += hypercall.h
>   generic-y += iocap.h
>   generic-y += irq-dt.h
>   generic-y += percpu.h
> -generic-y += perfc_defn.h
>   generic-y += random.h
>   generic-y += softirq.h
>   generic-y += vm_event.h
> diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
> new file mode 100644
> index 000000000000..4fc161f1abad
> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/perfc_defn.h
> @@ -0,0 +1,7 @@
> +/* This file is intended to be included multiple times. */
> +/*#ifndef __XEN_PERFC_DEFN_H__*/
> +/*#define __XEN_PERFC_DEFN_H__*/
> +
> +PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
> +
> +/*#endif*/ /* __XEN_PERFC_DEFN_H__ */
> 
> and add the following to commit message:
>      Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
>      vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
>      CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
>      for example, by randconfig what will lead to CI build issues.
> 
> Note that I keep __XEN_PERFC_DEFN_H__ as other archictectures use the same,
> not something like ASM__<arch>__PERFC_DEFN_H.

Please don't copy this mistake. I actually question the commented-out pre-
processor directives altogether: Misra also has a rule against commented-
out code (directive 4.4, which we didn't accept [yet], but which exists
nevertheless). Yet at the very least what's commented out should not be
obviously wrong.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 09:54:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 09:54:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225098.1531558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNyl-0002aG-4t; Mon, 09 Feb 2026 09:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225098.1531558; Mon, 09 Feb 2026 09:54:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpNyl-0002a9-1C; Mon, 09 Feb 2026 09:54:51 +0000
Received: by outflank-mailman (input) for mailman id 1225098;
 Mon, 09 Feb 2026 09:54: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpNyj-0002a3-Tw
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 09:54:49 +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 5ea97129-059d-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 10:54:48 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-43770c94dfaso696292f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 01:54:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296bcdfcsm26675623f8f.10.2026.02.09.01.54.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 01:54:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ea97129-059d-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770630888; x=1771235688; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kyk4UMo77LHGu/CGUnrmNu78TqeUvmgqXiBER9ISS2w=;
        b=V6f5fmN7aY18DsnFKqoHf7n66ukSLRUp4BxLnGHc7QIxNvzRPdHF5hCHZYEJAjtm/S
         08zIqSi4S6/nU7/4aoRLBMj+KV6QPAapnhsZWJPYJgF8HOfF6NMGmhqfs8v4milYvr9W
         FPRVYu9MVx3F6K7pYmH1tfvwdqRo+aUn0l6TC7Bnjn7GkleD9hx9jEpyghG/nMJ54ZNT
         BUY++yhZmhjj8RsQJ71fGk54Kb5fri91IicecbUGqSgZyPL1XEIbSauUe+fOgKLdz5ZS
         QAJ3a83vitFR4GBd1qo+8MO9IbhDHQxC1AizZB8nMvXMsBw+PmvuPoutvr0NKwjPWd5S
         EnrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770630888; x=1771235688;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kyk4UMo77LHGu/CGUnrmNu78TqeUvmgqXiBER9ISS2w=;
        b=eDE9OCaeflP52w6mqrGZ6Fez2o/CrFBilQXKB7iEEKo3aILBNXqVIu0GvJmRhdCNZx
         ejLdnK6Ji7V4dQiI97cvB8HQpmgUNrIhPsr6ssluEogA1Ccxuc8GnDz6vwCQTDAJQ+ck
         MhlfvLABLanjx5y5b1JWSguSqs+7OXt6f4zmzmC+C99vF2q4mxskhjbC7c7uKZQtXXrg
         1nMfv+pSF75l+0jiq12loevpm4cuRP0Y/LEb2ywWKCSjR6YGfrlU6k1UamMvOXvCmWo9
         SKAisFnw3pJ+FoSjVsLVDBaDEt/aC3l5enek9Rl4F9/VYwJPezSOqszHKd1z4CAkS1VS
         F72Q==
X-Forwarded-Encrypted: i=1; AJvYcCVH+3MIygAeX9FIXoCS0DkM5gW7zQL06ae83IuSWJuC2Ax9QrlZmjVOgbd+M75LiYgzCADa2uV/Kv8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyO/4U1Mkcyl0vf9JB+S2PnIWRDPnQMoFpZLcY4JCjpdIb2ZPTY
	l/37QaaNMIcaDwDEyMn3JE2jyq6DSxyW2h00TG+9xTUFKkv0x3k+0SPdyC2A5jD4HsB+KXZgrJQ
	T/uA=
X-Gm-Gg: AZuq6aK0Ue72ZmiqZvOrb+Ruz93xQVtXRDRhhP0kxdoczJ6iV16jAKrlEhuKsjVNLp6
	xJAYRZiF6e31ISTGVNbYJ9VrLcwANtd/fL6WNpOsEArFxv4iUFA311AXVtoLBDWAUQLyGpe5o23
	bn+kN0SGRgZeTcDqpEMEENv6ow+dCWqjYAqkw3uU1FuaO8JYIOlNh+uH2eRV+zpEdKt3zDKIdtt
	oyH50S3Pn6pV7d2qC32JloQ3yeJcstNYyuIbNR5OmQMcDO8sCS2AAtmf0fHatnACu/ZWULliIbz
	+8l6v7us8Dp9m32jpkK+T+3DEsviT9wPZIm6NVvbkiQZmHQddCpeehsG4XHBA/XRPUpS51of1tS
	Ui8pZ+PIgnyrCMabtQX9WstPuSMFqxKvf9bTIrSpZggCPi+D+FT5B0jO+GBw6kLHFtsK6f+hE3d
	nPLibAlpKv7Pgi79mMZNdZamyAOvBBzxxNnZ9nTUF7vVTnbQm9hTAq9Agw99oHW49UN8VC27VMb
	VA=
X-Received: by 2002:a05:6000:2306:b0:437:664c:3f28 with SMTP id ffacd0b85a97d-437664c4204mr7464356f8f.47.1770630887694;
        Mon, 09 Feb 2026 01:54:47 -0800 (PST)
Message-ID: <63031607-4b36-403b-8135-c5b271332b3a@suse.com>
Date: Mon, 9 Feb 2026 10:54:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] 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: <20260206131305.2675905-1-andrew.cooper3@citrix.com>
 <20260206131305.2675905-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: <20260206131305.2675905-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 14:13, Andrew Cooper wrote:
> ... prior to making changes.
> 
> mtrr/main.c absolutely does not need to include asm/uaccess.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 Feb 09 10:04:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:04:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225105.1531567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpO7j-0004Tx-Uy; Mon, 09 Feb 2026 10:04:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225105.1531567; Mon, 09 Feb 2026 10: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 1vpO7j-0004Tq-SE; Mon, 09 Feb 2026 10:04:07 +0000
Received: by outflank-mailman (input) for mailman id 1225105;
 Mon, 09 Feb 2026 10:04: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpO7h-0004Tj-Pa
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:04: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 a6d79706-059e-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 11:03:59 +0100 (CET)
Received: from AM8P251CA0006.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:21b::11)
 by PA4PR08MB6221.eurprd08.prod.outlook.com (2603:10a6:102:ed::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 10:03:56 +0000
Received: from AMS1EPF0000003F.eurprd04.prod.outlook.com
 (2603:10a6:20b:21b:cafe::a8) by AM8P251CA0006.outlook.office365.com
 (2603:10a6:20b:21b::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.18 via Frontend Transport; Mon,
 9 Feb 2026 10:03:51 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF0000003F.mail.protection.outlook.com (10.167.16.36) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 10:03:56 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by VI0PR08MB11408.eurprd08.prod.outlook.com (2603:10a6:800:302::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Mon, 9 Feb
 2026 10:02:52 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 10:02:52 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6d79706-059e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=M6vinsgfn/Ya4CpKAdbWFwXhkLG4psMhyyUd6CduqOcYOh4qpN5guQxyp3Mtd+an7kEwScONLOovmCDIEfRsKN9KMqZQwPk7gt5KOlNYfNvI/nxFoUA8TxvFoxH3bWz3Yb+MO3uBedh6TMPKrV37XUxzI+MmIAQJSLEZCMC+TXSos6cNRSFqCl1zq+1pmWMeNIJCvrqSJH83wxPMi42XVJwFEosyC33go1nOISuN8962eGBkVT/PHXgZcLJgzxe+zr6LjlGXT1DZIwHz7rGJL8+Jxsp6iQEZ4N/6nhugEMAajaZKCa6Z9IcfwLGP59Wj9Qc3O3m1zsba45YW67hzJA==
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=EbZc3J2/CTPqP6i6o8sB3W52G9qJzIrSebqk2GYF6T0=;
 b=KFAmtSFSPx4NNMW723UZSZ/Ml+Gy/AowawOPWpAyWUJX+I9GqSGyMGVlC1OVqdZcH8SgkU5O+2U0zX9BzJp/AhWoTPlUgtkXmMAJLdjLYDJz86KCp7o6FmgfXsU2s3IOI9IwRYs6vqWYgM7idxSKbjiOHIiIqcilSNObFcoERslGRAK6iTKqu3giMSIHX6UXJYvWkthIMDpHv6IuixYMg5fELnO024eu5f7xvf2EzWDqA8MvfkRveB/XtacHEcR6FkiaqsLjOT7JadkK6jN6/BXlZSN9hPHvP2BHNQuxB3PORecmWUugskl8eyBYDj6KKWoLlQIAG7M0vL+0LmO+Nw==
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=EbZc3J2/CTPqP6i6o8sB3W52G9qJzIrSebqk2GYF6T0=;
 b=FoI2MpZMo383EY0NGfmJVp51/w1d/Np8XrgLWWCP89NuKQzISRMCcHYfTmnbSNdOpEU1vCaM50yy4Xj4xlS8ND1vS2cW8DQmbAFUWDQJDvHmbXvK0+UbDdh/i6NMPizbNwUyElpZWtduaPrX6ZTP8pTyFRmYW/i/Ck1M7LTq/8U=
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=W7uSOjlDS+qmmX2RsN/JIpx36kl0AvzLSYu5yfK8x/ZQ+DILqHvh7gODKDuN59yRmp4PQKIwY/eIe9CPnvExsWVOuP7FAFain2rZs2cgTgm+3QJCLrcBcr21rvxBpoYLDme0l5fRZqYsjsGAYYCJHZ1pssR2q6rk6AuxuXIFR/T+AIcyFGFsGeH0qJditd0HNVM9KIsbO9e4l4JS+B24A2KWs2TZiD14kgcbMaWJmG4lWq6hBWw/JXGhYK+lpiomkpTTquOw8Um23D+wJWlE+mCcBlZ01hRrd38CgUM1f+N5Xwuu3Fx6oIIy+EkqpsSJ3yN1bNPqbMEsYEJpU3x8Lw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EbZc3J2/CTPqP6i6o8sB3W52G9qJzIrSebqk2GYF6T0=;
 b=c0iEqxw13wi3kCFJ+lo3IlzVQlEG5ZYhyljOy3KFEwY61QksX2TqbfePdyJAE8nnB9BLNnKW3m+4/Rn9HKsnjTkZ8Qli57S9jGwAwtLyyTRpsVrrDtDwsL8tPJWPQYXCyeqcek4vQMvOURRbvAxaKdgQHxasUZtPkFoHk7PBUiMemXT7Je5GkVnLZiN9emolnn+yiauiYivMLocXXY0A4z3rjZ7TNoavMoKXiggrgowfS0hTpLUDW5LwsVShPWmvbi+DXe967ixqTZvyr+0dVug6bKFHb/XbpqqGu1xwJqqNHOHUgol9Ylwv2d7o5dqN1ZL0xK2kyzQSWNVzlHOA/Q==
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=EbZc3J2/CTPqP6i6o8sB3W52G9qJzIrSebqk2GYF6T0=;
 b=FoI2MpZMo383EY0NGfmJVp51/w1d/Np8XrgLWWCP89NuKQzISRMCcHYfTmnbSNdOpEU1vCaM50yy4Xj4xlS8ND1vS2cW8DQmbAFUWDQJDvHmbXvK0+UbDdh/i6NMPizbNwUyElpZWtduaPrX6ZTP8pTyFRmYW/i/Ck1M7LTq/8U=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, 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: Re: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
Thread-Topic: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
Thread-Index: AQHcl4TDvkxax6jik0exjnZrMlGqw7V17BsAgAQQvwCAABwvgIAACZqAgAAEx4A=
Date: Mon, 9 Feb 2026 10:02:52 +0000
Message-ID: <C851E211-4B56-489A-8F06-6512D785B611@arm.com>
References:
 <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
 <aYYkAvGQygf2eNI7@Mac.lan> <28DF7F1E-BAA3-49AC-8A53-75100BAE74B5@arm.com>
 <aYmksdxh5PM7IHDN@Mac.lan> <d43840ca-4e06-45c4-853d-bd666ea06bc0@suse.com>
In-Reply-To: <d43840ca-4e06-45c4-853d-bd666ea06bc0@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|VI0PR08MB11408:EE_|AMS1EPF0000003F:EE_|PA4PR08MB6221:EE_
X-MS-Office365-Filtering-Correlation-Id: d16b6253-ea6b-45dd-74a7-08de67c2898c
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?OFA1eUV0WEhUOUpzZ2g5SHBUYUJnSzNubWNtYTNPNXBud2JkZ3R0cnJodHlD?=
 =?utf-8?B?aDZtRnFma295cjh2b1hpN2VGRkhZd0FCU05ha21VQTBUMnA0SVh1WlRoRStv?=
 =?utf-8?B?OGIwdUprUG9mcmJneWZydWlsWUhtaWRtTFd0MWRQMUtHaUNBeGNLM3VpRWdz?=
 =?utf-8?B?ajhGZ1I3YXUyc21rMDA3eThLdVVsTXhvT2pGcDlsVHhmeHhpWnNjZHBGaXJI?=
 =?utf-8?B?Y09xajBHVmNRQlQ2R3ErUEY3UCtjdWdyb3hlVW5jSVdUWnlsSGR5VmlYYnN2?=
 =?utf-8?B?aUVDaStYZ0pqU0UzWHhmNkxVZXBJeS8xUTRRdmVlYUxBU2daeXg2cGU1S0Ex?=
 =?utf-8?B?QVlFZ2tFaW5pUGFOdUlxUDJLQS9iNWlGd084NHY0d21DRmdTMGtnQjA3WU16?=
 =?utf-8?B?OWdRdnh5dmJsUVFlNkxXbTNTZnVPZ082YnhmbHBlVHMvUGVyQ0lWTUlrajVY?=
 =?utf-8?B?V2tQdWNoclQwUFB0NldSODdyZ0VOUWRYcWNuRFVyb3YvME5MUTVsc1FYWC9B?=
 =?utf-8?B?WEhVTmc4ZFJ6VTNiMjJWZ0NwQ3VuWDk5am1NZFh6UCszNkxuTTRtRTRjZGJs?=
 =?utf-8?B?c29MY0N4c2JMTm9uTjdMWm9ORHBEbFViS3F2M0twNUdqQm9lbGVhazJ4MjZl?=
 =?utf-8?B?aTBZbkxaV3ZNZVlNYzcyOHFleGMrbllxY296MG81clVLL0lia2lndXQrZzRM?=
 =?utf-8?B?bnAzUWNIeFQ3TVM0Q2V4cVZmVXluaVhBaHZraElnazBuRWUxSEc3VTlydDlM?=
 =?utf-8?B?UG1UT1ZpQWFoSVZoSktaeUJ1cXNWQlMzUTA4cnNhL3dHMWY0emVOMUFvNWVm?=
 =?utf-8?B?bnIwL1hTTGk2V0tpK1U0a3c4Y2JxVStITUJNSTZOSkRDZmh3NUF2L0pFNStN?=
 =?utf-8?B?VEpDSzNVL3I0aitJaXdQOGhBT21pT0hHV2VhNVlRNTJnQ3FXeHhRZlJ6azZV?=
 =?utf-8?B?N3A1bkJ5M0M3d3BVZ2VXZmNkOHMyOWVXYUc1bUhuUVF2MFJhd0pmVVltd0Vs?=
 =?utf-8?B?bHprYzV4SGVEeWkzNjRESTFiYURXVTk4Z0Y0Mzcvc1V4VlArT0h1WU5ZeUlX?=
 =?utf-8?B?V1dES2Vzc2RuYlp2T3lVd0k2M3psMjQ3eEtaVVhTZThXT2VsalAvaXVKMG9B?=
 =?utf-8?B?SzcyeGtTU0hlTFFhYUJuVVVFTEdCZ3J1VWp5bFJreVFPODVQYVd1bEpzb1M1?=
 =?utf-8?B?NUtQTmJ3cWFzaFRnK0g4WldYT1FMY3IrS3dyaGN2K2Z2dDVSOW00QllnMC9M?=
 =?utf-8?B?Qlc4VjFiVTNtQjYxWVQ3SFhoandQQjQ4QmFmazlyK3FvRUdQVFJ5Z2ZuQ2xy?=
 =?utf-8?B?eXZjTTJmd2dYbDFYa3lYRHppeTVleDNRRDZsZVhnZGhwd0htRHBDT2Y2N3c1?=
 =?utf-8?B?bzljclUvQitJOWpwd3ozNmZtUGYza3NKTktrZmtzZmRmT005WXNlQWc2cVFr?=
 =?utf-8?B?ZmNGMzV1eU5Odm9JQ0w4RWtBZXhuRXhlL2dIUklqUHB1N1UwMjh2bTRLWWMw?=
 =?utf-8?B?OHZkRTBob0xZQ1ZXa2Vua044L3pMM08vZ21kRERPRk1kQS9tR3Q4UXNNNUs0?=
 =?utf-8?B?SWF1aXMwR0lSNjVPSitCTStzUFVJd2ZRc3U1WmRGSnYyQklLaXphc3RlbmZ3?=
 =?utf-8?B?VnJPU3l3N1I0NkdSb2owR0o1T0xkTGd5V25IakEyc1Q5VzlKS1JpV1MzRWU2?=
 =?utf-8?B?QTNEZFJHQWdyRHBMNkU3TzVZZ2plRmZUdEtWcTVIRjBGL2tWbk0vb0RyZ3ly?=
 =?utf-8?B?T0E3eUZ3YWRnMG5QeDB0VlJZM0xIWk84S2NCR1RVUjV1VUJtemRmUUVRdEdi?=
 =?utf-8?B?dGlVYjhvK3V6a3BraGRxb1diREQwSmF2d3M3U0hTOVUzVWhRbmI2L2FvZk1o?=
 =?utf-8?B?NG5ja3p5RHh0b1VzRjUyMkUxU2dkWjdGVWpMTk5GZUtRa2ZJRCtvcjhqb0Zz?=
 =?utf-8?B?N3JYSDF3M0lFYVN3bDJES0FxeFNtR0xNdXFPaWdPKzR2Yld2eVJmZzFxSnR1?=
 =?utf-8?B?ckRQeVBHSjR2YjJVTkZ2L2x0VlQySFFxWFVwVXhDNXMzUHhyMEFPdmlEMmpa?=
 =?utf-8?B?RDhzaVowRUVGaStnT2lqWjE5VHMvV3hVSE04VU9oRWZmcjVVZlgwUG9zMUs0?=
 =?utf-8?B?ZUF0bVc3a3krUGJWUHlwMTRleW5abmdWOVg0amJqeGwzcHUwZklxUy96a09r?=
 =?utf-8?Q?w7bY6xEzm/3A4mVAFYh0OTI=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <CCA2117C57B2104694AB6507E99FADEE@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11408
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF0000003F.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f8df4ff0-423d-4d5a-ad81-08de67c2639b
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|82310400026|376014|1800799024|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?S0R6bG1oOFdIVjdJMWM2cjdQQTdiOWIyMWlwNHpqaEdMRnI5WkxYU21PbmdC?=
 =?utf-8?B?MzIvNlppcGhYQVhicTQzUGFQdlNoNGFpNTRpN0RwRFMvbFE2UTBDOEcxY211?=
 =?utf-8?B?dlpSWFgwLzRKeHh3T3VxOExQNjN2OHFLNldKd1pTSzZmeUd0bTBLQmVJN1M2?=
 =?utf-8?B?aXk4ZVpOck9QMmhMWmdaaTQrUXNYczBDK0FLWEJwbFBvWWZvdzc2TEp1cWZy?=
 =?utf-8?B?ZTAwb1d2OEFmdkkzcHZtbWpYbW56OUU1VEpGbFRleDNGU0RxQ1gwa01MUGFR?=
 =?utf-8?B?UVhwMFVaZHNXcEdnVURnWGw4WmJxQVFVdGRzN2MwVzA2bmdHSU5OTmd5ZTAx?=
 =?utf-8?B?RlVuZDdHQ0RDTUNsaVNmV3hMTmVmRHY5U1JCcmVLMlpSUlYyeDVNQkw3cDdE?=
 =?utf-8?B?K2V1S3IrdldpUWxkZFBtU3J4ZHBWZk0rM25Ha2JXZXJZSkFZTzlkV1ZMZHB0?=
 =?utf-8?B?TG84SUNTV3BGT1Vab2ZWS1AreWNObUR0MlUrdGNyWDdQSmdPalZTU1lWbEpy?=
 =?utf-8?B?WjR2ZUV2dSs2bzZ0eUxUc2RKWkF1dkprTGVsYnJNTUhNaExDWkJxd1dOekRw?=
 =?utf-8?B?NmV4dUZFd1ptMmp3T3c4MklOdnhyM1JtTHV1aW5IMGloSDZOZXFDS2VET01N?=
 =?utf-8?B?eWFub0xrQWZwSDc1ZDdQdFZiZlVZVkpuOHA4OVFPSFB3VVA2dUFkekNMR0Fq?=
 =?utf-8?B?NmQ5QkVXSTdlL09ZS3ZDZHNTRUhDODdiT2FZazN5blM1QS9YN1Q5M21HSWdL?=
 =?utf-8?B?NHhkUlJjbWovOGVEVW0zU3RDSjYzNkRpV3ZLUnRCT2lGNE4wUHEycEJzRncy?=
 =?utf-8?B?VUl0RVMvaWs5N2JlNkR4aHlDbHRZQWM3QW1zSkI4SVc2Wkw2ZWZJZk1mYWNM?=
 =?utf-8?B?NmdsOXR3bnFrRVMrdVFaOUQ3cUxJUStjZE1GNVg4bWFQYS9maVRxSm9TMm43?=
 =?utf-8?B?YTFRTmJGWjVreUhTM2VFV29EUGhIVGNqMTZJRTRkNis1dWJ3SVZHYVdidFR5?=
 =?utf-8?B?NEt0ZzJzK0ZXNE5hL1llcmErVENtZVJFZHBYSHM5SlpaRjBuajNUaDlsT3BP?=
 =?utf-8?B?Z2Y4RnB0bCtTVlpKN2k3TXJtZkJ5MlNIQk1ydURPYkgxWVJBN0ZDaWtEd3k5?=
 =?utf-8?B?Z3hMTWp1eHhsTU45aXRLbng0c1c4alhOWXJMS3hjRm5RMkFNdkRUV29sdk9N?=
 =?utf-8?B?TEVWSThNdkI2cHBVVjJZd0FxbnNKMFZacDNLQXdaaWhxWVY3SjF3OElLV0xO?=
 =?utf-8?B?bkhOQnB4US8rRkVBaHZjRDMzZU1nUG9iamR2dUFsV045b2MxSEo4aUZ6SnU5?=
 =?utf-8?B?OWZaa0xwMzJhYjZBRS9PbVZXZ2hWM1QzWWxzQ1d3cU55N1hSZk5FV3I3Qllj?=
 =?utf-8?B?aXV2RU11Y3RRbk1TbGF2ZzY3akE3L1BGaWdOTWdRV0dNazAxdGZwVjhIUmdO?=
 =?utf-8?B?dlFab0Z0M09NTnZPNTdVb21paVhMei9KQjlUSjI5TVBjZzlFWWJ4ajV6NkJY?=
 =?utf-8?B?eXArQWVVZERVaGFRNjZtN3I4RGYwbFhYRjJsWERpa25VbE92RDhscUlUZG02?=
 =?utf-8?B?N2RkNmdaN0RSOHNBSStFeWJ4aGVPU1l2Mm9Eb2JrYUNSMFgwakJnMDJQQVdV?=
 =?utf-8?B?S0xzYWxEWWhXYWViWHpzVENtT3hVbWFBaXVyNmZEYktWM1VueHpKanorWmVq?=
 =?utf-8?B?eWk2KzZKQ1QvY3ZMdXJrSmUxZzU0Ym5zd280aEs2cG4zdzB1TzZROVgvdFRY?=
 =?utf-8?B?NDFDSng0Rzd4U0ZDZ2xEWmJSSllhQ2NyK0hCbXhxZ3h2RXZpRlQ4bDVSdFhj?=
 =?utf-8?B?NkRIaStDL0tDRGpMZEJrZkNoYTB4N1pQdXZUc1JBTCs5L3E2d0tlMHk5d2FP?=
 =?utf-8?B?SE81WjQ3ZTVIbjY3dFUxM1A1SVNPVTRKUFQ5Nmc1YkpsVjYyREREWnVVanlV?=
 =?utf-8?B?RG9HMEtWSnhlbkduQk1ISFVEZXN2ekR3SUlaeFFFOFNLUEo3UzJ4c1NISHVr?=
 =?utf-8?B?UklweTBVdWk4aWJwZXgxdDNsd28ybzhtNDZpa1NkWHNjVzVkeUZvMy9vaWNS?=
 =?utf-8?B?b0lpbkxkOURXM2FMY29lRzcrbGFOQlR1Q1grS2J3WEtaK05XVVBkWDVHV2VJ?=
 =?utf-8?B?Uktlb0lLSmxzZncyN2FaL1dXRTVZWUU1aUkxTGFOVkZqM0RhK1hoVDFiOTVw?=
 =?utf-8?B?NXdDcy8zZDhucWFDZVZ2K2hhNEtJMzNjamhsdVViUXFsMjluRVB1OUxQOVdX?=
 =?utf-8?B?bUJhSEJacjk2enhRZVR5TFl4SG1RPT0=?=
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)(14060799003)(82310400026)(376014)(1800799024)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	9bRGcvAK71yFjJFPOdbFXLrIY1IY1QdOmWLNZslrBvP/jjDUHaxoQaFXhRQrMfmNvs7yYj9V7vQRQAP91EXjLWIroEsDXhySywFWaFUBZqzsPlC4eUh3fm6bon47sDHewQvPd2GvbBuFXovncMuXOIHpho6CEfr25gFn9XvDdXk0s4JpfPMEvzbxOzOSzr7hUe2XgRgMDrmYTewUA3NaJb7BwayrGI9EtKUgYlAjsEE+vHNGxbS3WLf5D2KgtyQ3026YeoEmJdZDzZzS8e1QgDGWomSEJfw03S0eDV5eoTCBNeG2SDg99wiWb78E6OJaDw0b2Xbvliag3Sft4CrafKrvrOsAupYYrYSnSlm9tUDt8MSCrvWV+DohSllm8VMep7xV3v04ezOhNE0ZK3WRuhke7UMp4wIqq4uUpP/SnRw7FjCRa27VUooKE5vM/GkS
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 10:03:56.1067
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d16b6253-ea6b-45dd-74a7-08de67c2898c
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:
	AMS1EPF0000003F.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6221

SGkgSmFuLA0KDQo+IE9uIDkgRmViIDIwMjYsIGF0IDEwOjQ1LCBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDkuMDIuMjAyNiAxMDoxMSwgUm9nZXIgUGF1
IE1vbm7DqSB3cm90ZToNCj4+IE9uIE1vbiwgRmViIDA5LCAyMDI2IGF0IDA3OjMwOjMwQU0gKzAw
MDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+Pj4gSGkgUm9nZXIsDQo+Pj4gDQo+Pj4+IE9u
IDYgRmViIDIwMjYsIGF0IDE4OjI1LCBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4
LmNvbT4gd3JvdGU6DQo+Pj4+IA0KPj4+PiBPbiBGcmksIEZlYiAwNiwgMjAyNiBhdCAwNToyMTo0
NFBNICswMTAwLCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4+Pj4gWGVuIGRvZXMgbm90IHBy
b3ZpZGUgYSBEYXJ3aW4gYnVpbGQgY29uZmlndXJhdGlvbiBmb3Igc2VsZWN0aW5nDQo+Pj4+PiBH
TlUgdG9vbCBkZWZpbml0aW9ucy4gT24gbWFjT1MsIHRoZSB0b29scyB3ZSB1c2UgYXJlIGVpdGhl
ciBHTlUNCj4+Pj4+IGNvbXBhdGlibGUgb3Igd2Ugb25seSByZWx5IG9uIGZlYXR1cmVzIHN1cHBv
cnRlZCBieSBNYWMgT1MsIHNvDQo+Pj4+PiB1c2luZyB0aGUgR05VIHRvb2wgZGVmaW5pdGlvbnMg
aXMgYXBwcm9wcmlhdGUuDQo+Pj4+PiANCj4+Pj4+IEFkZCBjb25maWcvRGFyd2luLm1rIHRvIGlu
Y2x1ZGUgU3RkR05VLm1rIGFuZCBmb3JjZQ0KPj4+Pj4gWEVOX0NPTVBJTEVfQVJDSD11bmtub3du
LCBlbnN1cmluZyBEYXJ3aW4gYnVpbGRzIGFsd2F5cyBmb2xsb3cNCj4+Pj4+IHRoZSBjcm9zcy1j
b21waWxlIHBhdGggYXMgd2UgZGVwZW5kIG9uIHRoZSBMaW51eCBBQkkgc28gY29tcGlsaW5nDQo+
Pj4+PiBvbiBNYWMgT1MgaXMgYWx3YXlzIGEgY3Jvc3MgY29tcGlsYXRpb24gY2FzZS4NCj4+Pj4+
IA0KPj4+Pj4gQW4gZXhhbXBsZSBvZiBob3cgdG8gYnVpbGQgdGhlIGh5cGVydmlzb3IgZm9yIGFy
bTY0IG9uIE1hYyBPUw0KPj4+Pj4gKHRvb2xzIGNhbm5vdCBiZSBidWlsZCBmb3Igbm93KSB1c2lu
ZyBhIHRvb2xjaGFpbiBmcm9tIGJyZXc6DQo+Pj4+PiAtIGJyZXcgaW5zdGFsbCBhYXJjaDY0LWVs
Zi1nY2MgYWFyY2g2NC1lbGYtYmludXRpbHMNCj4+Pj4+IC0gY2QgeGVuDQo+Pj4+PiAtIG1ha2Ug
WEVOX1RBUkdFVF9BUkNIPWFybTY0IENST1NTX0NPTVBJTEU9YWFyY2g2NC1lbGYtIEhPU1RDQz1j
bGFuZw0KPj4+PiANCj4+Pj4gSW5zdGVhZCBvZiBgY2QgeGVuYCBJIHdvdWxkIHVzZSBgbWFrZSB4
ZW4gLi4uYC4NCj4+PiANCj4+PiBBY2sgdGhlICdjZCB4ZW4nIGxpbmUgaXMgdXNlbGVzcyBhbmQg
c2hvdWxkIGJlIHJlbW92ZWQuDQo+Pj4gDQo+Pj4+IA0KPj4+Pj4gDQo+Pj4+PiBTaWduZWQtb2Zm
LWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+Pj4+IA0K
Pj4+PiBBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQo+
Pj4+IA0KPj4+PiBPbmUgY29tbWVudCBiZWxvdy4NCj4+Pj4gDQo+Pj4+PiAtLS0NCj4+Pj4+IENo
YW5nZXMgc2luY2UgdjM6DQo+Pj4+PiAtIHNldCBYRU5fQ09NUElMRV9BUkNIIHRvIHVua25vd24g
aW5zdGVhZCBvZiBEYXJ3aW4NCj4+Pj4+IC0gbGlzdCBiaW51dGlscyBhcyBhIGRlcGVuZGVuY3kg
dG8gaW5zdGFsbCBpbiBicmV3IGluIGNvbW1pdCBtZXNzYWdlDQo+Pj4+PiANCj4+Pj4+IENoYW5n
ZXMgc2luY2UgdjI6DQo+Pj4+PiAtIFN1YmplY3Qgd2FzICJ4ZW46IEFkZCBtYWNPUyBoeXBlcnZp
c29yIGJ1aWxkIGNvbmZpZ3VyYXRpb24iDQo+Pj4+PiAtIFVwZGF0ZSBEYXJ3aW4ubWsgY29tbWVu
dHMgdG8gbW9yZSBhY2N1cmF0ZSB2ZXJzaW9ucyAoSmFuKQ0KPj4+Pj4gLSBSZW1vdmUgdGhlIGJ1
aWxkLW9uLW1hY29zIGhlbHAgYXMgd2UgaGF2ZSBubyBkZXBlbmRlbmN5IG9uIGFueXRoaW5nDQo+
Pj4+PiBjb21pbmcgZnJvbSBicmV3IGFueW1vcmUgYW5kIHRoZSB0b29sY2hhaW4gY2FuIGJlIHJl
dHJpZXZlZCBieSBsb3RzIG9mDQo+Pj4+PiBvdGhlciBzb2x1dGlvbnMgdGhhbiBicmV3IG9uIG1h
YyBvcy4gU3dpdGNoIHRvIGEgc2ltcGxlIGRvYyBpbiB0aGUNCj4+Pj4+IGNvbW1pdCBtZXNzYWdl
IGluc3RlYWQNCj4+Pj4+IC0tLQ0KPj4+Pj4gY29uZmlnL0Rhcndpbi5tayB8IDcgKysrKysrKw0K
Pj4+Pj4gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQ0KPj4+Pj4gY3JlYXRlIG1vZGUg
MTAwNjQ0IGNvbmZpZy9EYXJ3aW4ubWsNCj4+Pj4+IA0KPj4+Pj4gZGlmZiAtLWdpdCBhL2NvbmZp
Zy9EYXJ3aW4ubWsgYi9jb25maWcvRGFyd2luLm1rDQo+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0
NA0KPj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi4xNzZiMjdlYWM2NzYNCj4+Pj4+IC0tLSAvZGV2
L251bGwNCj4+Pj4+ICsrKyBiL2NvbmZpZy9EYXJ3aW4ubWsNCj4+Pj4+IEBAIC0wLDAgKzEsNyBA
QA0KPj4+Pj4gKyMgVXNlIEdOVSB0b29sIGRlZmluaXRpb25zIGFzIHRoZSB0b29scyB3ZSBhcmUg
dXNpbmcgYXJlIGVpdGhlciBHTlUgY29tcGF0aWJsZQ0KPj4+Pj4gKyMgb3Igd2Ugb25seSB1c2Ug
ZmVhdHVyZXMgd2hpY2ggYXJlIHN1cHBvcnRlZCBvbiBNYWMgT1MuDQo+Pj4+PiAraW5jbHVkZSAk
KFhFTl9ST09UKS9jb25maWcvU3RkR05VLm1rDQo+Pj4+PiArDQo+Pj4+PiArIyBYZW4gdXNlcyBM
aW51eCdlcyBBQkkgc28gd2UgYXJlIGNyb3NzIGNvbXBpbGluZyBvbiBNYWMgT1MuDQo+Pj4+IA0K
Pj4+PiBIbSwgaXMgdGhpcyBhY3R1YWxseSBmdWxseSB0cnVlPyAgV2hhdCdzIHRoZSBMaW51eCBB
QkkgZXhhY3RseSBoZXJlPw0KPj4+PiANCj4+Pj4gRnJlZUJTRCBidWlsZHMgWGVuIG5hdGl2ZWx5
LCBhbmQgaXQncyBub3QgdXNpbmcgdGhlIExpbnV4IEFCSS4NCj4+Pj4gRnJlZUJTRCB1c2VzIG5v
IHNwZWNpZmljIC10YXJnZXQgdG8gdGhlIGNvbXBpbGVyIGludm9jYXRpb25zLCBhbmQgdGhlDQo+
Pj4+IGxpbmtlciBlbXVsYXRpb24gaXMgc2V0IHRvIGVsZl94ODZfNjRfZmJzZC4NCj4+Pj4gDQo+
Pj4+IEkgdGhpbmsgdGhlIHBvaW50IGhlcmUgaXMgdGhhdCB0aGUgdG9vbGNoYWluIG11c3Qgc3Vw
cG9ydCBidWlsZGluZyBFTEYNCj4+Pj4gb2JqZWN0cyAvIGltYWdlcywgYmVjYXVzZSB0aGF0J3Mg
dGhlIGJpbmFyeSBmb3JtYXQgc3VwcG9ydGVkIGJ5IFhlbi4NCj4+Pj4gV2hldGhlciBpdCdzIExp
bnV4IEVMRiBvciBGcmVlQlNEIEVMRiBkb2Vzbid0IG1ha2UgYSBkaWZmZXJlbmNlIGZvcg0KPj4+
PiBzdGFuZGFsb25lIGVudmlyb25tZW50cyBsaWtlIHRoZSBYZW4ga2VybmVsLg0KPj4+IA0KPj4+
IFRoaXMgZmlsZSBpcyBhbHNvIHVzZSB3aGlsZSBjb21waWxpbmcgdGhlIHRvb2xzIGFuZCBmb3Ig
dGhvc2UgeW91IGRlZmluaXRlbHkNCj4+PiB0byBjcm9zcyBjb21waWxlIGFzIHRoZXkgZGVwZW5k
IG9uIExpbnV4IEFCSS4NCj4+IA0KPj4gSSdtIG5vdCBhbiBleHBlcnQgb24gdGhpcyBhdCBhbGws
IGJ1dCBJTU8gdGhlIHRvb2xzIGRvbid0IGRlcGVuZCBvbg0KPj4gdGhlIExpbnV4IEFCSSBhdCBh
bGwuICBBbnlvbmUgY2FuIGFkZCB0aGUgbWluaW1hbCBPUy1zcGVjaWZpYyBiaW5kaW5ncw0KPj4g
cmVxdWlyZWQgZm9yIHRoZSB0b29scyB0byB3b3JrIG9uIGVudmlyb25tZW50cyBkaWZmZXJlbnQg
dGhhbiBMaW51eC4NCj4+IFdlIGN1cnJlbnRseSBoYXZlIHtOZXQsRnJlZX1CU0QgYW5kIExpbnV4
LiAgSW4gdGhlIHBhc3Qgd2UgYWxzbyBoYWQNCj4+IFNvbGFyaXMsIGJ1dCB0aGF0IGhhcyBiaXQg
cm90dGVuLg0KPj4gDQo+Pj4gTWF5YmUgdGhhdCB3b3JrcyBvbiBCU0QNCj4+PiBidXQgaSBkb3Vi
dCB0aGlzIHdvdWxkIGJlIHRoZSBjYXNlIG9uIG1hYyBvcy4NCj4+IA0KPj4gSSBkb3VidCB3ZSB3
b3VsZCBldmVyIGhhdmUgYW55IG5lZWQgdG8gYnVpbGQgYW4gT1NYIG5hdGl2ZSB0b29sY2hhaW4s
DQo+PiBhcyBpdCdzIHVubGlrZWx5ICg/KSB0aGF0IHdlIHdpbGwgZXZlciBnZXQgWGVuIHN1cHBv
cnQgaW4gdGhlIERhcndpbg0KPj4ga2VybmVsLg0KPiANCj4gSWYgRGFyd2luIGhhcyBzb21lIHdh
eSB0byBsb2FkICJtb2R1bGVzIiAoZS5nLiBkcml2ZXJzKSBpbnRvIHRoZSBrZXJuZWwsIGl0DQo+
IG1heSBpbiBwcmluY2lwbGUgYmUgcG9zc2libGUgdG8gcnVuIE9TWCBhcyBhIEhWTS1Eb20wLCB3
aXRoIGEgWGVuIGRyaXZlcg0KPiBsb2FkZWQgc2VwYXJhdGVseS4gVGhhdCdzIGZhciBmZXRjaGVk
LCBJIGtub3cuDQo+IA0KPj4+IE1heWJlIHdlIGNvdWxkIHNpbXBsaWZ5IHRoZSBzZW50ZW5jZSB0
byBub3Qgc2F5IGFueXRoaW5nIHdlIGFyZSB1bnN1cmU6DQo+Pj4gDQo+Pj4gIyBDcm9zcyBjb21w
aWxlIG9uIE1hYyBPUw0KPj4+IA0KPj4+IFRlbGwgbWUgaWYgdGhhdCB3b3JrcyBmb3IgeW91IGFu
ZCBpIGNhbiBzdWJtaXQgYSB2NSBvciB0aGlzIG1pZ2h0IGJlIHBvc3NpYmxlIHRvDQo+Pj4gZml4
IG9uIGNvbW1pdC4NCj4+IA0KPj4gSSdtIGZpbmUgd2l0aCBpdCwgSSB3b3VsZCBsaWtlIHRvIGhl
YXIgSmFuJ3Mgb3Bpbmlvbi4NCj4gDQo+IEFzIGxvbmcgYXMgaXQncyBjbGVhciB0aGF0IGFsbCBv
ZiB0aGlzIGlzIG9ubHkgYWJvdXQgYnVpbGRpbmcgdGhlIGh5cGVydmlzb3INCj4gKHdoaWNoIGRv
ZXNuJ3QgbG9vayB0byBiZSB0aGUgY2FzZSByaWdodCBub3cgYmV5b25kIHRoZSBleGFtcGxlIGdp
dmVuIGluIHRoZQ0KPiBjb21taXQgbWVzc2FnZSwgd2hpY2ggbWF5IGJlIHRha2VuIGFzIHJlYWxs
eSBvbmx5IGFuIGV4YW1wbGUpLCB0aGF0J3Mgb2theQ0KPiBbMV0uIEknZCBzdGlsbCBwcmVmZXIg
dG8gbWVudGlvbiB0aGUgU1ZSNCBBQkkgaGVyZSwgdGhvdWdoLCB0byBhdCBsZWFzdA0KPiBzb21l
d2hhdCBleHBsYWluIHRoZSAiYWx3YXlzIGNyb3NzIiBhc3BlY3QuDQo+IA0KPiBJIGNhbiBtYWtl
IGVkaXRzIHdoaWxlIGNvbW1pdHRpbmcsIGJ1dCBJJ20gdW5zdXJlIHdoZXRoZXIgdGhhdCdzIHdh
bnRlZCBpbg0KPiB0aGlzIGNhc2UuDQoNCkkgd291bGQgc3VnZ2VzdDoNCg0KQ3Jvc3MgY29tcGls
ZSBvbiBNYWMgT1MsIG9ubHkgaHlwZXJ2aXNvciBidWlsZCBoYXMgYmVlbiB0ZXN0ZWQsIG5vIHRv
b2xzDQoNClBsZWFzZSBkbyB0aGUgZm9sbG93aW5nIGVkaXRzIG9uIGNvbW1pdCBpZiB0aGF0J3Mg
b2sgZm9yIHlvdSA6DQotIHJlbW92ZSAnY2QgeGVuJyBmcm9tIGNvbW1pdCBtZXNzYWdlDQotIHVz
ZSBwcmV2aW91cyBjb21tZW50IGluIERhcndpbi5taw0KDQpPdGhld2lzZSBoYXBweSB0byBzdWJt
aXQgYSB2NQ0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCg0KPiANCj4gSmFuDQo+IA0KPiBbMV0gWWV0
IGJldHRlciBtaWdodCBiZSBpZiB3ZSByZWZ1c2VkIHRvIGJ1aWxkIG90aGVyIHRoYW4gdGhlIGh5
cGVydmlzb3IuDQo+IEknbSB1bnN1cmUgdGhvdWdoIGhvdyBlYXN5IGl0IHdvdWxkIGJlIHRvIGFj
aGlldmUgdGhhdCBpbiBhbiBhdCBsZWFzdA0KPiBoYWxmd2F5IHRpZHkgbWFubmVyLg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:06:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:06:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225113.1531579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpO9m-00053W-F0; Mon, 09 Feb 2026 10:06:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225113.1531579; Mon, 09 Feb 2026 10: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 1vpO9m-00053P-Aw; Mon, 09 Feb 2026 10:06:14 +0000
Received: by outflank-mailman (input) for mailman id 1225113;
 Mon, 09 Feb 2026 10: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpO9k-00053E-Tz
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:06:13 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id efc7615a-059e-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 11:06:02 +0100 (CET)
Received: from SJ0PR13CA0156.namprd13.prod.outlook.com (2603:10b6:a03:2c7::11)
 by SA3PR12MB8803.namprd12.prod.outlook.com (2603:10b6:806:317::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 10:05:55 +0000
Received: from CO1PEPF00012E60.namprd05.prod.outlook.com
 (2603:10b6:a03:2c7:cafe::76) by SJ0PR13CA0156.outlook.office365.com
 (2603:10b6:a03:2c7::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.5 via Frontend Transport; Mon, 9
 Feb 2026 10:05:54 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E60.mail.protection.outlook.com (10.167.249.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 10:05:54 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 04:05:53 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efc7615a-059e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DCGeROPW6+ZWzqOsPYI4wfSIsNupsiSe3qw+SsaVpXFHmNgpXlBmJ0lYzS9cg3DBHfzfFpbNU5/OQLQCLMCIBrL4qhsZquX1fmdsoFaN1EY4FPhkdnfuzXM88FUX4VoV8yf0gSLHvqATyFfmEw12d22q63Lbv0uKuKvJc4hnUJ+IKjVHG4FQr1WJ9lwSfsWLwsNMGQzxEfXVGSIr7SJEf4ZIdMmmZP3G54/7GxenKJ5nQRX8UpiWAG9/+4cYg2lWqgo+t0F+h7woO4nrscjMEiX3MyEg2ePFCfy87rZtzjOZshe9qyldiuhext1wJu+AHSqFF4BY18LRTvWj5kmMWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/ghaL8GcdRVpjK0JlWhyMVuHmqlJ6wrPR7AlENbBTfI=;
 b=L4J/BSo2ISRQQt+lE2S78xHimJWywlW+kHn5UzkEOm84aDPRU+4bOwe+9pni0o1+F6cuS9eK1FOLeHqVkzo2MXoKXwVOgjfoo2lXglUFh/q9pv6K3X8gMTnBonXU2GOmZXNdqfkYG0GBTIpD1v2rLBlmQnqxLejip21AiW3lKmJQ5EVtDKl0kAhWYftLg8VHrL6yGR6UuWkvdvKoDD0gFzHCoATDkU1visrQ2R43XFAn92oZerunTNCk1HP6ghACh/i9QinJZ+pf+Kk2dOHmv4SJBIShweswMa5aQ3eKIpTvEQq0nn3ywISFdvKiTYjkE/t4v10k0xn7Y9KPKcV1vA==
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=/ghaL8GcdRVpjK0JlWhyMVuHmqlJ6wrPR7AlENbBTfI=;
 b=qH4pVK/WwPxHJ3t6W9S6rgKVYReOI+LwxbgTj6moBsiEfiXRAZWHT6+m+GUdjM4NtytVzGutf0y89sFCSlZ8mT1AaS9LTpSnIID2qtcpAlPjJSeQ4zTU0FGD/b9EGm6Jz8yXN92d0ku5U2wjPpQOf+FK2D4pzI2uftB22SNlW74=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 11:05:52 +0100
Message-ID: <DGACI1R7MGDO.1SB7OMQQZ1NC3@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 00/12] const-ify vendor checks
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <608472d0-517c-4bc5-b5c1-c278c4f6620b@suse.com>
In-Reply-To: <608472d0-517c-4bc5-b5c1-c278c4f6620b@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E60:EE_|SA3PR12MB8803:EE_
X-MS-Office365-Filtering-Correlation-Id: c921effd-259c-48aa-6b47-08de67c2d04f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eXUxOFBXbW1yYnMzT2Mwb1lPMFFnWnRtVXRpcGZ6ajFFVDJIQnAwNWtoMzVy?=
 =?utf-8?B?ZmFpZzRDTFRmeXdVd294T2x3cEd3M2lDZHNQQ25FUEljdHJidkgzU0xjcU9L?=
 =?utf-8?B?WXFJN3dNZ2NvTTB4MmlPNWp0ZDRvd1BVYkpPVGIvQ2dpcGdibk9kQjZIQm5J?=
 =?utf-8?B?N2xMNVZPM0pDMkZ0MVJudEtHWGpNTW5CVURyaXBVYzR5c2FzOEZiK2pFNlVF?=
 =?utf-8?B?RktLSWNxeXlFNlBTMDJmUFIrdzZGcVR0ZURHUlJaM1BJOCsxYXBJWHlEeXVI?=
 =?utf-8?B?YjduM2RVUXZEeGlXUC85ZytkTk9mNzZwK3VyeFRoV1g3MytoTDBOVWZYY0tN?=
 =?utf-8?B?VHgzQnlNKzMrRks5K2tMOWQ4UXViVXdpQ2RkcllOUmxhUjR4Rlh6U2ZEMFMv?=
 =?utf-8?B?RVorMm92K1ZkNUZXeWg3T1JwaFQxY1lJMjl4eFdxRkd0NlBXYzh6aEdtcXVs?=
 =?utf-8?B?Zkh3Y0hsZlo0cmY3WTRFbWhJa2JxTHo3RHBCTFJEbTYvcHZYQUZSRlVyOGVs?=
 =?utf-8?B?Lzg2Q0U0aEZHVmhyKzlZL1U4L1dqblZ1cWlrMEpaRHlWQlUrZnc2ekQwQWxl?=
 =?utf-8?B?NGlFblJTUXk1S2lqMkJuaWhZa1JQaVV1WEprVEIwcVFkaEtzZFMvWVBWYmlN?=
 =?utf-8?B?UzlUazkvNWwwSEdWL0M1MXlUOWNqditIUzhHeFA2SXViU0Z5VkxQSTZSSS9o?=
 =?utf-8?B?WFZPWTJNdkVsaWdBQVJJdUJrSUcrSm1BbDB3THUzcUVNZmc3a1NMcDE2WUFO?=
 =?utf-8?B?U3EvbzZnNlQ0ZVZLTzdOVXhGRmlTemE1TUsrRlQwV0JGY1JIcitMRnlueTg5?=
 =?utf-8?B?SGxDcjNOME9uNk1YNkdlM3N4R0UyQ2ZXNE5xTmkrVmlXOHdGU0s2eXYvbmM3?=
 =?utf-8?B?NXo0VWNnYXhIc1hRajVuSmQvUEZBaFFjdS80OGlsRS9UdWNNSUt6Q2VxTlBX?=
 =?utf-8?B?NTc0MlQrcDRiVEk5ZlZFY1hpM0hPQjlGc0JISEhtZG5wNGY5WDVEUnVJUi9m?=
 =?utf-8?B?MnUvck1TWmRIT3lNVkNETHBHY0c3QlhPUVVrR1k0dUF0ZEpHcHRBT214U3V0?=
 =?utf-8?B?SXZUZ0U0Skg5VnNTRCsvN1lUNGd5ZUg3eHl2OTJ5ZDdkSWpEKzh0dmtzN1c4?=
 =?utf-8?B?Z3hqSmw0eDR1MVZxR1pzOEdDV253dTZqdS9JdVA5R2t4QWZ6eXZNUVpITERL?=
 =?utf-8?B?WVZxN29aTEZXOU5TZXJKaUhkOGF6MjgycldibE1aSEE3Vk1YamRoUVY0VmZC?=
 =?utf-8?B?QXR4NWpSeU0ycE5Dd0M0cXFYU1lrQkpCb3NPK01XVEV0RFJ0R0d4dW9wYm56?=
 =?utf-8?B?OHUxc2ZmSXZ1dUMrS3BnZVNYUEYydnoxamZrTitiZnRZaGlmTmkwN2hJZ084?=
 =?utf-8?B?NEtDajlmbEtwSmVvODM3RDBla3JQZ3kvNG5NV0QrR3ZDUXFPUFRXTXdodUV1?=
 =?utf-8?B?cy9ZeVF4Z0R0VjRHUVIyVDNWY1pZdFA0Zm0yZEpCbHk5VnRaYk84cjZKWlN1?=
 =?utf-8?B?T2I0WHlGUWdQTVZSR3pnOVJ4Z1JWQ2VmM1dsVUdEMTV2ekErZE9sU083Skpy?=
 =?utf-8?B?dVFuZVhuZE5UYkM3YnUyT2VyRjJlQzFZdTRjQjZQUDY0SEgyRnJKLzIwZkRz?=
 =?utf-8?B?NGpvdWpWQlU0bkRQQkptZS85SmhnZndkZ0d0MWVqN0phYk0ydSs3REhCRVZs?=
 =?utf-8?B?WnE1UkxkYyszVjdFcktRSzdacEhvUnFqY3hUcEpldG00eHpxdUVLQTRSaHhJ?=
 =?utf-8?B?WDB1WWNId1VJMzdmZGR1ekFudVppMUl1WDhQRXFRa1YvejBLVUlsZkFZNHdK?=
 =?utf-8?B?NTBSblc2V2svajZXR1FLcHcyc0J2b3dCZkFwTVB1aDV2aEwrbXdwRlVqOExZ?=
 =?utf-8?B?bHhwWDRkOUk1dXkrVzdaOGdFNkZPZjlmZGQwVTdBa3phNFJtcWFDNXkxUjhl?=
 =?utf-8?B?RUllaHNNT0Q2TElqQkp0bVA5djFpMzRQNStrdlA3c2lsVTluaTRPazhPcnlp?=
 =?utf-8?B?Q0dKWDJwQ3lSYllQeVBwbGp2ZW83MDB0T2Y3V2hxaVh1bjdSODZ6S1VGZ3Zz?=
 =?utf-8?B?K085V0FQcGJVdzRWUVQ2dDZ6MGY2eXpleEhpM08xcmdVcDRmSmU4VmpqaXlu?=
 =?utf-8?B?dnBYdXMvanlIVFJkcTlEcTh4cjRrRVpScFRxVmkyb3I5QUllVU5jQjY1SDZl?=
 =?utf-8?B?bzRyaURZVVJUYVV6bS9tVC8wOVFiZ2lVdVJpMzErdmtCdHc4Kys4aWZoSW9k?=
 =?utf-8?Q?GOY49uH1LL7PMa3cJ2rZO4h8pyNmHSbkDn5TGrFApY=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	hQBgicOgCGU7Key60JEx7mWw31zoLuVkhBxvcPUM8Yj1GBDka6/xEhkuX0epm/Tsn15ApkVipGJZvPr5IklUpN8zCQNOWDICDVGe8wLYaFdBVbDreuVXVspc1aAD3hVOcQBixbAzVRbzPCiIPl8ymTBugNt8EpdKRaYvXu8icgO5UATRS/WJo9Z7KgRhb1Qgs3aGhoDAiVyEkRxW8DoX3fbTAJtvYQKRZWK8a3cFBYLzNZc5V8JO8L4DyEFDMfx6aHaZn2vMySLKoBehKSpQVmdkaRJmNVY+llv0icZ/iowjRRGx9LTiVi+krfKSK7WL1fduMF0BlL113vIcnuPusdDqnsm1q/ZWH8CP3oTb2et3YUvf63RvHKyKDDigvF/ExiRdESxN3utRwV9F6hwOGMBKPERviI4x7Ov7zm+OJahJutwCmr/BzhUmgF1GRuJk
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 10:05:54.8070
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c921effd-259c-48aa-6b47-08de67c2d04f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E60.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8803

On Mon Feb 9, 2026 at 10:21 AM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> Hi,
>>=20
>> This series is a big revamp of vendor-checking to enable it to perform D=
CE.
>> It improves all configurations useful in practice at minimal cost in the=
 full
>> build, and at a massive advantage for the single-vendor case. Many ifdef=
s can
>> go away as a side effect of the series.
>>=20
>> This series depends on cross-vendor removal:
>>   https://lore.kernel.org/xen-devel/20260205170923.38425-1-alejandro.gar=
ciavallejo@amd.com/T/#m4c3d318f37e4f24d0f8c62b104221aa5d428cebc
>>=20
>> Patch 1 in this series matches that of cross-vendor removal. It's logica=
lly
>> required, but that's the single requirement.
>>=20
>> High level description
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> When compared to the RFC this makes a different approach The series intr=
oduces
>> cpu_vendor() which maps to a constant in the single vendor case and to
>> (boot_cpu_data.vendor & X86_ENABLED_VENDORS), where X86_ENABLED_VENDORS =
is a
>> mask of the compile-time chosen vendors. This enables the compiler to de=
tect
>> dead-code at the uses and remove all unreachable branches, including in
>> switches.
>>=20
>> When compared to the x86_vendor_is() macro introduced in the RFC, this i=
s
>> simpler. It achieves MOST of what the older macro did without touching t=
he
>> switches, with a few caveats:
>>=20
>>   1. Compiled-out vendors cause a panic, they don't fallback onto the un=
known
>>      vendor case. In retrospect, this is a much saner thing to do.
>
> I'm unconvinced here. Especially our Centaur and Shanghai support is at b=
est
> rudimentary. Treating those worse when configured-out than when configure=
d-in
> feels questionable.

Isn't that the point of configuring out?

Besides the philosophical matter of whether or not a compiled-out vendor
should be allowed to run there's the more practical matter of what to do
with the x86_vendor field of boot_cpu_data. Because at that point our take
that cross-vendor support is forbidden is a lot weaker. If I can run an
AMD-hypervisor on an Intel host, what then? What policies would be allowed?=
 If I
wipe x86_vendor then policies with some unknown vendor would be fine. Shoul=
d the
leaves match too? If I do not wipe the field, should I do black magic to en=
sure
the behaviour is different depending on whether the vendor is compiled in o=
r
not? What if I want to migrate a VM currently running in this hypothetical
hypervisor? The rules becomes seriously complex.

It's just a lot cleaner to take the stance that compiled out vendors can't =
run.
Then everything else is crystal clear and we avoid a universe's worth of co=
rner
cases. I expect upstream Xen to support all cases (I'm skeptical about the
utility of the unknown vendor path, but oh well), but many downstreams migh=
t
benefit from killing off support for vendors they really will never touch.

>
>>   2. equalities and inequalities have been replaced by equivalent (cpu_v=
endor() & ...)
>>      forms. This isn't stylistic preference. This form allows the compil=
er
>>      to merge the compared-against constant with X86_ENABLED_VENDORS, yi=
elding
>>      much better codegen throughout the tree.
>>=20
>> The effect of (2) triples the delta in the full build below.
>>=20
>> Some differences might be attributable to the change from policy vendor =
checks
>> to boot_cpu_data. In the case of the emulator it caused a 400 bytes incr=
ease
>> due to the way it checks using LOTS of macro invocations, so I left that=
 one
>> piece using the policy vendor except for the single vendor case.
>
> For the emulator I'd like to point out this question that I raised in the
> AVX10 series:

There's no optimisation shortage for the emulator. For that patch I just
ensure I didn't make a tricky situation worse. It is much better in the sin=
gle-vendor case.

>
> "Since it'll be reducing code size, we may want to further convert
>  host_and_vcpu_must_have() to just vcpu_must_have() where appropriate
>  (should be [almost?] everywhere)."
>
> Sadly there was no feedback an that (or really on almost all of that work=
) at
> all so far.

It sounds fairly orthogonal to this, unless I'm missing the point.

In principle that would be fine. the vCPU features whose emulation requires
special instructions are most definitely a subset of those of the host anyw=
ay.

I agree many cases could be simplified as you describe.

I do see a worrying danger of XSA should the max policy ever exceed the
capabilities of the host on a feature required for emulating some instructi=
on
for that very feature. Then the guest could abuse the emulator to trigger #=
UD
inside the hypervisor's emulation path.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:09:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:09:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225121.1531588 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOD5-0005o5-SE; Mon, 09 Feb 2026 10:09:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225121.1531588; Mon, 09 Feb 2026 10:09: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 1vpOD5-0005ny-PT; Mon, 09 Feb 2026 10:09:39 +0000
Received: by outflank-mailman (input) for mailman id 1225121;
 Mon, 09 Feb 2026 10:09: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpOD4-0005nM-Ji
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:09:38 +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 7089330b-059f-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:09:37 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48068127f00so39147295e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 02:09:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483209c1a64sm88195135e9.12.2026.02.09.02.09.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 02:09:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7089330b-059f-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770631777; x=1771236577; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EibnnF/NRdJa+aXezoTgnR3v2Eikbj51oP8GQxmVnpU=;
        b=IHohuq9lYujN/gHRG1c/0nwGeA4Y/UxJCebKu78EeN+daigbgdcr6i+aPP88yTaXIa
         ZC8SsYjWxVDRz97FOSjiOQY4/Y//D0vEtPtvWnp5LAQfPTGTCDM+V/k0QyNtcqPndiUz
         3VQUj4Fyw9qxxHQIrWeHDsQ7iL679mBdqkI8JSlbQcZMp5DWMjwNexUO4ZBseVCSFsT4
         1TnELSJ0SFzmTUky/7bCcETrq17Wmk1J/fDs2YLEuDtCstfY7c7m147cq8B13pkqXX83
         bOdNSzJF2snk7zENs9foaApJWnTvGdY7j50LdP6OXVpo50BqqffUfk3Hvu18djv8ifLr
         jJ0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770631777; x=1771236577;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EibnnF/NRdJa+aXezoTgnR3v2Eikbj51oP8GQxmVnpU=;
        b=OWbPc0sLL+DDIunKLhjTC0uQXp0/k4vsDX+WKkm8PPAc7J5Tg+W4ynfa6Q/VAKDakp
         FewJklrd8yEjzNmqxLRuUOHZ+vkncS1IoQFXsXd+BeoH8ZaZW3wJSTG1b5YvSzuFd80A
         /iM4l0WHeid4gkiIK4/FCxuzwWK0KtlSo8oXeyP2QO/FlMujazjT6vRzJPrUXFRxkKUt
         1WANYGEYWM6wLXxdl9YIC4v1qr//34kxGughd9rNup633yFSTPWLlm5Zpb+zUISa9qsH
         6C2EXUkSPxc1ysZYyTkZRfbjj7vefg3ukOUyxWDGI8Ry9xyQfRSfyGJc2QKGQ2vuuJc9
         UVGA==
X-Forwarded-Encrypted: i=1; AJvYcCVgKZCkiQpyAGwrm5hykfD8HXzeoWxdoK+10PsV9UJUfCXuXavNGwqob9vHaQIp66YJZrr+qrOUxZ0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyv8Tt9zCMtKzas4aP2Iu6na2OcCYFisVESQyyHsov62IAS7EEC
	FGtbYkDhSgOOjuWNsNHJ6No/iGVuWsyIbh8edEoiECBaujrNgS6ZBtTbFawhGmU81w==
X-Gm-Gg: AZuq6aJ54teb7aKuiPVZJuF//kdgke1n6a5S9KG7KlTHHK1x+gn+q2/DtPK3wTs8XVw
	Lx4KI1psGJQcRUBLSyXV7FrmUwTafbl400p9+oksXbz9DozwX07kiJnBDodp9byRO3E9TtdyzX5
	eZQIEf2GFLvR5X4U3E6Aj9ut2BQruxryNjqbKVrjM7BWzSBwxPwzWVpxMdG9tD4KkIaAE/rKKXf
	RA1f78JUdJAgtnUsXhTnPkahmjpDqDCTeXqvBFyJnDQ9B0Tw0rOUOXQivui7/3tOuSpKa5RuCUi
	bQATMG7HL55je7GpQ47X1YMFfTk2wLhYrS6rZYocY8mZuJPP7v2dWCraBqzXNpcc7IARk3inGI8
	cYRTvaPBMQ3jnP/nJuzQa65zV8P2ahLsGRBjT+bb4n1PpSw4MMcTEjGttsqicZPr/I195+6Bhx2
	/QgmKc3SM4H94kCEhzf+wwlbJEZKknfL5CqWtFSBIN4d5bo05Iqm0D826bzwzOlgDDXWexGGNZd
	TaLoGsPpBiAuA==
X-Received: by 2002:a05:600c:c4a7:b0:480:f27c:6335 with SMTP id 5b1f17b1804b1-48320236645mr152633405e9.25.1770631776517;
        Mon, 09 Feb 2026 02:09:36 -0800 (PST)
Message-ID: <210d133e-fa60-4116-b65f-039e46e31738@suse.com>
Date: Mon, 9 Feb 2026 11:09:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] x86/memtype: Deduplicate rendering of X86_MT_*
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: <20260206131305.2675905-1-andrew.cooper3@citrix.com>
 <20260206131305.2675905-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: <20260206131305.2675905-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 06.02.2026 14:13, Andrew Cooper wrote:
> The MTRR infrastructure has two different copies of mtrr_attrib_to_str(), one
> in .init and one in regular .text.  EPT has another variation.
> 
> All 3 are incomplete; they encode only the non-reserved values for the task,
> but hiding reserved values with ?'s is detrimental to the diagnostic purpose
> of these existing in the first place.
> 
> Implement a single function which covers all the architectural values.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> Yes I know EPT tries to render the reserved reserved encodings numerically.
> It's a cute trick, but does get foiled by the '[MTRR_NUM_TYPES] = "??";' row
> which breaks things.

Does it? 7 isn't UC- there, but is instead reserved, which we leverage to get
EPT-misconfig exits. 7 also isn't UC- when used in MTRRs; that's a PAT-only
type. I think we better wouldn't mix those. Therefore I'm also not really
happy with x86_mt_name() as a name - it should be clear from the name whether
this is about MTRR (and EPT memory type) or PAT.

> Putting this in traps.c isn't great, but there isn't an obviously better place
> either.

Any reason not to put them in one of the two mtrr/*.c files? Are we entertaining
the idea of allowing to compile out mtrr/?

> @@ -214,7 +201,7 @@ static void __init print_mtrr_state(const char *level)
>  			       level, i,
>  			       width, mtrr_state.var_ranges[i].base >> 12,
>  			       width, mtrr_state.var_ranges[i].mask >> 12,
> -			       mtrr_attrib_to_str(mtrr_state.var_ranges[i].base &
> +			       x86_mt_name(mtrr_state.var_ranges[i].base &
>  			                          MTRR_PHYSBASE_TYPE_MASK));

Nit: Indentation of this line then wants changing, too.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:15:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:15:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225130.1531597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOIe-0007Mx-FK; Mon, 09 Feb 2026 10:15:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225130.1531597; Mon, 09 Feb 2026 10:15: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 1vpOIe-0007Mq-CT; Mon, 09 Feb 2026 10:15:24 +0000
Received: by outflank-mailman (input) for mailman id 1225130;
 Mon, 09 Feb 2026 10:15: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpOId-0007Mk-QV
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:15: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 3d98be0e-05a0-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 11:15:21 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4805ef35864so35927785e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 02:15:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48320396ccbsm122726605e9.0.2026.02.09.02.15.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 02:15:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d98be0e-05a0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770632121; x=1771236921; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rKEYjfwGSlDXYIcWOdqL22W8ABlXSix8asFwzwPE4lc=;
        b=TeddAdJ1FSzUmWbNbTwKkzDJSdHzNwF/aKPnbgOQLM+ZJaDFPR5AWJpDc89/AvFGvL
         g3MmdiPt7mCA3+4s6VyqIZ9WoKGLOrv22uDwsLntDBmRcTrOPM0UU6Pn8VsOIHpGkZpQ
         VMU1bgjHaKYp+IZIgBtM+WMQxV+b7LcPjUmRCo0XbnKT/adJzN5yedQBYafsLlNB6Jhe
         6JPhcV3zreJAjm/MKJPEXTC71PWyR7fF65xSNjSwducbg2bvht5fmdCkL1W+hf7roNXD
         gcXuVPRYp+Rfg+7rg+fN3Wxs/jBvMX00YpYiLEv2IwVzf52L55U5Te81/MMQaZKKsC/C
         /Kgw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770632121; x=1771236921;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rKEYjfwGSlDXYIcWOdqL22W8ABlXSix8asFwzwPE4lc=;
        b=eu0zKu9aqhe1DncRMhqmqhihcvraYJqLgqZ1McXJSEEHg8Xa4NKswsuJZ87HTwvrEu
         TUsKAFRKSM/AOWtc6wNIG8eSAROrAgIkt7NMVFvmQVxhCpeESdRP+2cHskcudMAc+/Te
         yahfqsOpD+ovyeYuDv9Okj+h7e5pq9gu5mmrR6cBnTHFfcQ64mY7cioaqyQ1HBdYZcec
         4dOxszYI0+fqIGLO0eiIqInCksreHj6Ud7jcTp6wqZkWF70fSk4zwqnJzn4eV596urMn
         afYDPeO++CyNjNyTSS+vKjkQmN10/bVz7E2MkVe5z+ziFD4iBGQNrk892ItXHy7KtMcg
         w4tg==
X-Forwarded-Encrypted: i=1; AJvYcCVNXP0wVdCX7+X91xxqa3AchwzT5OwyXjD1VcjNjiNo33WXzW/U+voUs2ZLWgNZDcPR/6fdi6vNlDE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVWPXbQeZoOSnH8rBkyLEgdjuvvm/2DNomdjSUB0s/m/G6w7WY
	Gv5VDzekR1YTSIQ3Z/YCD/yBVu7OQyT5tw8zGwqCNEbpMxT01k2IG2tlaS1PM3G/7UDrvKd876F
	4WM8=
X-Gm-Gg: AZuq6aKlpJz4CtZ6s/QSvrzi9ENGXDRA11eJrfu7n+XIHI3/Mx17IekA2koSa4p9VKP
	Gj2MMr0/+BTu72OJGXY5GSeNF76PYdy8Bexqh814jnnWAykJE9uMTtahWUBuvr11oBYj4ngBiUr
	+75jolWu0nrM5aHUESSuKgTgfozJLIxUGue5AaekBmdqYKA9SqvkvBnAWVxxVxBubJM6vnNr1S4
	m0aVGxd2b2ybMtPLlclJmBuk+D7RWLrjH8AuCOIK65LG8a0zczJRMEkBtrhFjOZR34dasjq0Grq
	abTtl0H4PNafoszq1QjedsEyUjN+vrV1R+U9wfHnzboU7cRk7VjP59sFpe1lYBZ1pQd+w4CPFpS
	KVALbKkEmJhXZz8cyA+NvurJ/t0dYsaNtETV1AMgyLwMYCeeivqYSJOmJZWUoqctMMK88iIrdNS
	iUeEaBd57wBxj2Fi8wMYgMPPPoohu/SEERGQm3MV3axVg5H7190rc+uwjizXNGnawetHQbQj71z
	zUw/CwPRMneLFA=
X-Received: by 2002:a05:600c:a101:b0:483:456a:5146 with SMTP id 5b1f17b1804b1-483456a51ebmr12005765e9.25.1770632120620;
        Mon, 09 Feb 2026 02:15:20 -0800 (PST)
Message-ID: <836c1ef7-4ec3-4c4a-b527-17066327ff19@suse.com>
Date: Mon, 9 Feb 2026 11:15:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/12] const-ify vendor checks
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <608472d0-517c-4bc5-b5c1-c278c4f6620b@suse.com>
 <DGACI1R7MGDO.1SB7OMQQZ1NC3@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: <DGACI1R7MGDO.1SB7OMQQZ1NC3@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 11:05, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 10:21 AM CET, Jan Beulich wrote:
>> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>>> High level description
>>> ======================
>>>
>>> When compared to the RFC this makes a different approach The series introduces
>>> cpu_vendor() which maps to a constant in the single vendor case and to
>>> (boot_cpu_data.vendor & X86_ENABLED_VENDORS), where X86_ENABLED_VENDORS is a
>>> mask of the compile-time chosen vendors. This enables the compiler to detect
>>> dead-code at the uses and remove all unreachable branches, including in
>>> switches.
>>>
>>> When compared to the x86_vendor_is() macro introduced in the RFC, this is
>>> simpler. It achieves MOST of what the older macro did without touching the
>>> switches, with a few caveats:
>>>
>>>   1. Compiled-out vendors cause a panic, they don't fallback onto the unknown
>>>      vendor case. In retrospect, this is a much saner thing to do.
>>
>> I'm unconvinced here. Especially our Centaur and Shanghai support is at best
>> rudimentary. Treating those worse when configured-out than when configured-in
>> feels questionable.
> 
> Isn't that the point of configuring out?

That's what I'm unsure about.

> Besides the philosophical matter of whether or not a compiled-out vendor
> should be allowed to run there's the more practical matter of what to do
> with the x86_vendor field of boot_cpu_data. Because at that point our take
> that cross-vendor support is forbidden is a lot weaker. If I can run an
> AMD-hypervisor on an Intel host, what then? What policies would be allowed? If I
> wipe x86_vendor then policies with some unknown vendor would be fine. Should the
> leaves match too? If I do not wipe the field, should I do black magic to ensure
> the behaviour is different depending on whether the vendor is compiled in or
> not? What if I want to migrate a VM currently running in this hypothetical
> hypervisor? The rules becomes seriously complex.
> 
> It's just a lot cleaner to take the stance that compiled out vendors can't run.
> Then everything else is crystal clear and we avoid a universe's worth of corner
> cases. I expect upstream Xen to support all cases (I'm skeptical about the
> utility of the unknown vendor path, but oh well), but many downstreams might
> benefit from killing off support for vendors they really will never touch.

To them, will panic()ing (or not) make a difference?

>>>   2. equalities and inequalities have been replaced by equivalent (cpu_vendor() & ...)
>>>      forms. This isn't stylistic preference. This form allows the compiler
>>>      to merge the compared-against constant with X86_ENABLED_VENDORS, yielding
>>>      much better codegen throughout the tree.
>>>
>>> The effect of (2) triples the delta in the full build below.
>>>
>>> Some differences might be attributable to the change from policy vendor checks
>>> to boot_cpu_data. In the case of the emulator it caused a 400 bytes increase
>>> due to the way it checks using LOTS of macro invocations, so I left that one
>>> piece using the policy vendor except for the single vendor case.
>>
>> For the emulator I'd like to point out this question that I raised in the
>> AVX10 series:
> 
> There's no optimisation shortage for the emulator. For that patch I just
> ensure I didn't make a tricky situation worse. It is much better in the single-vendor case.
> 
>> "Since it'll be reducing code size, we may want to further convert
>>  host_and_vcpu_must_have() to just vcpu_must_have() where appropriate
>>  (should be [almost?] everywhere)."
>>
>> Sadly there was no feedback an that (or really on almost all of that work) at
>> all so far.
> 
> It sounds fairly orthogonal to this, unless I'm missing the point.

It's largely orthogonal, except that if we had gone that route already, your
codegen diff might look somewhat different.

> In principle that would be fine. the vCPU features whose emulation requires
> special instructions are most definitely a subset of those of the host anyway.
> 
> I agree many cases could be simplified as you describe.
> 
> I do see a worrying danger of XSA should the max policy ever exceed the
> capabilities of the host on a feature required for emulating some instruction
> for that very feature. Then the guest could abuse the emulator to trigger #UD
> inside the hypervisor's emulation path.

Well, that max-policy related question is why I've raised the point, rather
than making (more) patches right away.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:17:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:17:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225139.1531607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOKs-000837-UF; Mon, 09 Feb 2026 10:17:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225139.1531607; Mon, 09 Feb 2026 10:17:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOKs-000830-R8; Mon, 09 Feb 2026 10:17:42 +0000
Received: by outflank-mailman (input) for mailman id 1225139;
 Mon, 09 Feb 2026 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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpOKr-00082u-7P
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:17:41 +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 90205245-05a0-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:17:39 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-435a11957f6so3293641f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 02:17:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4831d0b5b31sm299241845e9.4.2026.02.09.02.17.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 02:17:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 90205245-05a0-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770632259; x=1771237059; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ORPnRdZxS94JybiXJ+41RiztFeD57Sg9Hn8JQGd/EJw=;
        b=fKi3HjAfp60kHHHj7pJ/O23yGPzu9wfJu9rfdC3WPXouMam4SAa0b74sV6PsTAIxu/
         v+IRiapqj4sYuBdqf9kq8xRWGfP1H+9TQxTNwJvx7nk2KGih1wfUAfCC+n9yVFIG2rlO
         aiZcW41xnH3im66fK3b/kSj2kbmC6G39a95jHTGOkcCU1BUL1hSmaPEVZJD1gL5LcxMZ
         vx/d7+cSAhcCZhtpLmU/vFK5SORy5v+xPJeb8Qo/d4TNKmYDy0kYiTBPU07zAGxM7/mi
         97t2D6Jd6ede+WOKiPog/Bh6xilGnLJqMh6zdMpVbULRmezoAlp06RuLD03sX/K8u4Af
         TIfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770632259; x=1771237059;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ORPnRdZxS94JybiXJ+41RiztFeD57Sg9Hn8JQGd/EJw=;
        b=JGDIqIMOjrj8x/Q29GADZwsfGjn3BqcJIFvEB2E3LQ1q+/LR2Tsw/kHYB84TYk+dpE
         /naWAuh0PHJd/VDzLBujBNstS5faMNeNKhhyPxzn1QYkWT/7hEOK5MRhQd5OM0KVuIjb
         SXpU8Ge5phndcIJ3kAHMo/az8A/eaT+eT4426Wr0AsNbwO4Ax1957j13K8AGIYfihfU3
         fPULZ2Zeh4X30CF/OK1XPZWf3X0oHGw9DQzGRYPptccsePUVzcjUxhVEKOLlKjnl19F4
         FSXdjr7PGCFCUX0x/bYE1fXqH1zruH7qy9xjDK8MH8zLQocY+d/cqKhvStJhwhCEN3p3
         Cy3w==
X-Forwarded-Encrypted: i=1; AJvYcCUidQ5NI9Nz6ZnwT5WhdjLIeGnn+NaFoPkomeUjPtT+ZHuFXVh2DAoog5bE1vant3FlDVGeZKQHKXs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGh4mPsa4AXf/1qPf5qNwVByj+Nm1S4rGhNUjb97TMmmTUEaar
	VnT3eR9F7TgdWWRpiEGJZbObDXud8hNCBmIQxghxT27SJ7BmS9xGaaxXX9esFVmoYg==
X-Gm-Gg: AZuq6aJx6ouZIbFENdf5GOENkg6I7NeNCSM5M+9kx57E8NpEXDoPUJPzpmvaBpwTb/x
	xrgYWFCv1aTLYRdnPd9D/z3SiabjOBlr01PERzZrvS2Su1mFiCtkVqQpIs+cDNcdyskzJXAnlVM
	mR6cEdBF+EDum8Nq6sFn43u9mMP2Ys/8zq1YcAva9JYeN4w2ezJfpG9gE1oqmwyxU2aPFv9z6gj
	c8Th3nldBUf1dUQ6koCudcgx2Mk/1azMJSr+XefCDyNImPIDLSgKQcZWAZpVLjvebFJjc0/ijhL
	WP+0DdSVYboK/gcpJPTfe2sW46iMPiVrIxiuegabNhRkRixo6rc8KpJ+WB1yhg8/tYR5YzZu7QU
	L6rgjRGy157y1CV+YcBoG4SQGbrspHyprKNwHe8ZrdqC22iuCuirMb4JIUez4AjQWAiLfhLQdC8
	exIz2LwSPVcwR7cJk2kbrAbuG8PvglFo2yySaFa9NtxuQ58LHvxXxMQnF+Q9bBbxEUWHq+Cv6p8
	ts=
X-Received: by 2002:a05:600c:34c7:b0:477:b0b9:3129 with SMTP id 5b1f17b1804b1-483201dc3ebmr151130145e9.3.1770632259097;
        Mon, 09 Feb 2026 02:17:39 -0800 (PST)
Message-ID: <51a91133-13d0-413a-b8fb-58b9d3018499@suse.com>
Date: Mon, 9 Feb 2026 11:17:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "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>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
 <aYYkAvGQygf2eNI7@Mac.lan> <28DF7F1E-BAA3-49AC-8A53-75100BAE74B5@arm.com>
 <aYmksdxh5PM7IHDN@Mac.lan> <d43840ca-4e06-45c4-853d-bd666ea06bc0@suse.com>
 <C851E211-4B56-489A-8F06-6512D785B611@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <C851E211-4B56-489A-8F06-6512D785B611@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 11:02, Bertrand Marquis wrote:
> Hi Jan,
> 
>> On 9 Feb 2026, at 10:45, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 09.02.2026 10:11, Roger Pau Monné wrote:
>>> On Mon, Feb 09, 2026 at 07:30:30AM +0000, Bertrand Marquis wrote:
>>>> Hi Roger,
>>>>
>>>>> On 6 Feb 2026, at 18:25, Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>>>
>>>>> On Fri, Feb 06, 2026 at 05:21:44PM +0100, Bertrand Marquis wrote:
>>>>>> Xen does not provide a Darwin build configuration for selecting
>>>>>> GNU tool definitions. On macOS, the tools we use are either GNU
>>>>>> compatible or we only rely on features supported by Mac OS, so
>>>>>> using the GNU tool definitions is appropriate.
>>>>>>
>>>>>> Add config/Darwin.mk to include StdGNU.mk and force
>>>>>> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
>>>>>> the cross-compile path as we depend on the Linux ABI so compiling
>>>>>> on Mac OS is always a cross compilation case.
>>>>>>
>>>>>> An example of how to build the hypervisor for arm64 on Mac OS
>>>>>> (tools cannot be build for now) using a toolchain from brew:
>>>>>> - brew install aarch64-elf-gcc aarch64-elf-binutils
>>>>>> - cd xen
>>>>>> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
>>>>>
>>>>> Instead of `cd xen` I would use `make xen ...`.
>>>>
>>>> Ack the 'cd xen' line is useless and should be removed.
>>>>
>>>>>
>>>>>>
>>>>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>>>>>
>>>>> Acked-by: Roger Pau Monné <roger.pau@citrix.com>
>>>>>
>>>>> One comment below.
>>>>>
>>>>>> ---
>>>>>> Changes since v3:
>>>>>> - set XEN_COMPILE_ARCH to unknown instead of Darwin
>>>>>> - list binutils as a dependency to install in brew in commit message
>>>>>>
>>>>>> Changes since v2:
>>>>>> - Subject was "xen: Add macOS hypervisor build configuration"
>>>>>> - Update Darwin.mk comments to more accurate versions (Jan)
>>>>>> - Remove the build-on-macos help as we have no dependency on anything
>>>>>> coming from brew anymore and the toolchain can be retrieved by lots of
>>>>>> other solutions than brew on mac os. Switch to a simple doc in the
>>>>>> commit message instead
>>>>>> ---
>>>>>> config/Darwin.mk | 7 +++++++
>>>>>> 1 file changed, 7 insertions(+)
>>>>>> create mode 100644 config/Darwin.mk
>>>>>>
>>>>>> diff --git a/config/Darwin.mk b/config/Darwin.mk
>>>>>> new file mode 100644
>>>>>> index 000000000000..176b27eac676
>>>>>> --- /dev/null
>>>>>> +++ b/config/Darwin.mk
>>>>>> @@ -0,0 +1,7 @@
>>>>>> +# Use GNU tool definitions as the tools we are using are either GNU compatible
>>>>>> +# or we only use features which are supported on Mac OS.
>>>>>> +include $(XEN_ROOT)/config/StdGNU.mk
>>>>>> +
>>>>>> +# Xen uses Linux'es ABI so we are cross compiling on Mac OS.
>>>>>
>>>>> Hm, is this actually fully true?  What's the Linux ABI exactly here?
>>>>>
>>>>> FreeBSD builds Xen natively, and it's not using the Linux ABI.
>>>>> FreeBSD uses no specific -target to the compiler invocations, and the
>>>>> linker emulation is set to elf_x86_64_fbsd.
>>>>>
>>>>> I think the point here is that the toolchain must support building ELF
>>>>> objects / images, because that's the binary format supported by Xen.
>>>>> Whether it's Linux ELF or FreeBSD ELF doesn't make a difference for
>>>>> standalone environments like the Xen kernel.
>>>>
>>>> This file is also use while compiling the tools and for those you definitely
>>>> to cross compile as they depend on Linux ABI.
>>>
>>> I'm not an expert on this at all, but IMO the tools don't depend on
>>> the Linux ABI at all.  Anyone can add the minimal OS-specific bindings
>>> required for the tools to work on environments different than Linux.
>>> We currently have {Net,Free}BSD and Linux.  In the past we also had
>>> Solaris, but that has bit rotten.
>>>
>>>> Maybe that works on BSD
>>>> but i doubt this would be the case on mac os.
>>>
>>> I doubt we would ever have any need to build an OSX native toolchain,
>>> as it's unlikely (?) that we will ever get Xen support in the Darwin
>>> kernel.
>>
>> If Darwin has some way to load "modules" (e.g. drivers) into the kernel, it
>> may in principle be possible to run OSX as a HVM-Dom0, with a Xen driver
>> loaded separately. That's far fetched, I know.
>>
>>>> Maybe we could simplify the sentence to not say anything we are unsure:
>>>>
>>>> # Cross compile on Mac OS
>>>>
>>>> Tell me if that works for you and i can submit a v5 or this might be possible to
>>>> fix on commit.
>>>
>>> I'm fine with it, I would like to hear Jan's opinion.
>>
>> As long as it's clear that all of this is only about building the hypervisor
>> (which doesn't look to be the case right now beyond the example given in the
>> commit message, which may be taken as really only an example), that's okay
>> [1]. I'd still prefer to mention the SVR4 ABI here, though, to at least
>> somewhat explain the "always cross" aspect.
>>
>> I can make edits while committing, but I'm unsure whether that's wanted in
>> this case.
> 
> I would suggest:
> 
> Cross compile on Mac OS, only hypervisor build has been tested, no tools
> 
> Please do the following edits on commit if that's ok for you :
> - remove 'cd xen' from commit message
> - use previous comment in Darwin.mk

There have been several "previous" comments there, so I think in this case
it may indeed be better ...

> Othewise happy to submit a v5

... if you do this. I'm sorry, it's quite a bit of bike-shedding on "merely"
commentary, yet I think we want to avoid misleading people.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:20:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:20:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225146.1531618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpONB-000179-9x; Mon, 09 Feb 2026 10:20:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225146.1531618; Mon, 09 Feb 2026 10: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 1vpONB-00016g-6k; Mon, 09 Feb 2026 10:20:05 +0000
Received: by outflank-mailman (input) for mailman id 1225146;
 Mon, 09 Feb 2026 10:20: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=mr8m=AN=alien8.de=bp@srs-se1.protection.inumbo.net>)
 id 1vpON9-0000nj-UK
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:20:03 +0000
Received: from mail.alien8.de (mail.alien8.de [2a01:4f9:3051:3f93::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e2b51e57-05a0-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 11:19:58 +0100 (CET)
Received: from localhost (localhost.localdomain [127.0.0.1])
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id ACEAC40E02E5; 
 Mon,  9 Feb 2026 10:19:55 +0000 (UTC)
Received: from mail.alien8.de ([127.0.0.1])
 by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id 4C9Q5WVVx173; Mon,  9 Feb 2026 10:19:50 +0000 (UTC)
Received: from zn.tnic (pd95306e3.dip0.t-ipconnect.de [217.83.6.227])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest
 SHA256) (No client certificate requested)
 by mail.alien8.de (SuperMail on ZX Spectrum 128k) with UTF8SMTPSA id
 917DA40E0326; Mon,  9 Feb 2026 10:19: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: e2b51e57-05a0-11f1-9ccf-f158ae23cfc8
X-Virus-Scanned: Debian amavisd-new at mail.alien8.de
Authentication-Results: mail.alien8.de (amavisd-new); dkim=fail (4096-bit key)
	reason="fail (body has been altered)" header.d=alien8.de
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8;
	t=1770632389; bh=qEUrs9aV2UevLern7cWNO8zzbe1KAW/M2x98IuKSaBo=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=L7SgNe1HGQWJrNNPxIw1k6KgoWfev2wqz1jZbCcdXa3N+r4Sl/iSwK3+WgzxAFLP8
	 QDIumwRX6KDqKNsBiOjqrW8IUFJtEx9sgCqb/bAzmbANjrv039vpmzj4gjo9THzeU+
	 YSeKDxKiC0bvOQQrRgAmB1w4YLy5TCWky0ssa46YJD12Zf3DncxHeqLZnCEyiDvmok
	 ImdQ26bRkjFZie01PrBcG6QN7TlXcb7KBJhmBUxPdA+piF7m7xZKSZWgb7o4p/oBoW
	 65Eq70rBCFjVlN2eomT3o1+/ySJUpqMssMZEfzXq/CyGEHZVfOrzEhVna54KL/dc4S
	 7ZeL+vs8Y7GtRdbrr9C4RHiMxtgKQPEoyMTb//9gb0Y2+3+7wDLh1B9yHuqbWjz+Kr
	 Yb/Ws3PqB19EwD6aoi/Tt1w25wr/ScLec10clV/Mjn/qpU5jib/sg2vHOJVaaKm4Sh
	 oDhL5LGnFq1wjriJrXcmG4Vw3VjwohtUAQmP5GMIB5HnkpO6y85vAK8EPWtn6A4K9+
	 TJ9NGVpHZA3Fht96JrON+2jvKS3NfRstQvYDeF17seJMrMjba69iIQPkiaMVYjiH5s
	 0ihBjjGUpmtKls4QpuZphm5tynBcgqWNyCG4hiKuLtwqpBtWM+74IOdgKLcwwzTB+v
	 5v/tPeD19u9TgLlvgaBntID4=
Date: Mon, 9 Feb 2026 11:19:18 +0100
From: Borislav Petkov <bp@alien8.de>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	virtualization@lists.linux.dev, kvm@vger.kernel.org,
	linux-block@vger.kernel.org, Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org, Denis Efremov <efremov@linux.com>,
	Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH v4 0/6] x86: Cleanups around slow_down_io()
Message-ID: <20260209101918.GAaYm0plbeXIBr8p9a@fat_crate.local>
References: <20260119182632.596369-1-jgross@suse.com>
 <6ee93510-1f43-4cd2-952e-8ed3ce7ba0e5@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <6ee93510-1f43-4cd2-952e-8ed3ce7ba0e5@suse.com>
Content-Transfer-Encoding: quoted-printable

On Mon, Feb 09, 2026 at 10:11:49AM +0100, Juergen Gross wrote:
> PING?
>=20
> Now 3 weeks without any reaction...

J=C3=BCrgen, there are other patchsets that need review too. And we have =
merge
window right now so no reviewing anyway.

And you know all that damn well!

How about you help us out and you start reviewing x86 patches instead of
pinging every week?

Thx.

--=20
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:22:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:22:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225154.1531627 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOP1-0001mk-Kd; Mon, 09 Feb 2026 10:21:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225154.1531627; Mon, 09 Feb 2026 10: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 1vpOP1-0001md-Hc; Mon, 09 Feb 2026 10:21:59 +0000
Received: by outflank-mailman (input) for mailman id 1225154;
 Mon, 09 Feb 2026 10:21: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpOOz-0001mV-Jo
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:21:57 +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 2924fdc7-05a1-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:21:56 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48039fdc8aeso26130455e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 02:21:56 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4832041f1a3sm111178465e9.7.2026.02.09.02.21.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 02:21:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2924fdc7-05a1-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770632516; x=1771237316; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to
         :cc:subject:date:message-id:reply-to;
        bh=s+X4NaFjYOwIFCTiACW2xzPhIQxgMm0W4k8O5HtiGy4=;
        b=IEqHupu8vAgQpkwLe3/3ZAGSH0lrys8jhFHyiL+8qVZ1VRBUpeEytwJF1Kq8p3cuIt
         YWT5ra0wZyjchnnTHeUYyg/EBlvbXNjixRADHPmfUAVu7xrIuga9lh/5fKaOPY32wZsY
         CmPFCsZc4NZ+HkbaFVdHAyKRnBDJbdsMnpmoRe3t/ol69hb1shPXUwj4fPV419Bo/6Sl
         KKYoTMT6dNy4vcDdIZYDssimut5gx5/TZInYpV4EkmW3FRgf1jN72KS7AsnwkDctm0xx
         AAgYq1z7DKqFV2ZMXrs9A66alNoKNoFmkcIdiX6ZTn2br4ye/Rn23TLtQ6s7jNBAOBB7
         jUGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770632516; x=1771237316;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=s+X4NaFjYOwIFCTiACW2xzPhIQxgMm0W4k8O5HtiGy4=;
        b=JKovAkKGafWPO9jLgmZnVHJp/RISddcm+hnys+SKOCpGNw1MAaAfrI+jJbmNCbYj6P
         eS6V3/9SEECK03iCzJ/k59TfJSwh0UxXSG7wD0a4E4za4l0W3U0afq0RiQgCItSKiysR
         oETT6gLumqef11+6rZ8MQNw4nppXQhGtz3YEh59YurUxKos2r1jKK8K/vi3yeijzJ0Ul
         vMaOG9N0QthRT6n0pez6cFdfiLXKYjjvSAdBqwMVUqlj8pjDTGv+/LzaQCn5vsjlGGo9
         htKY9PDlTk2rpzUaV/9x66VzkMu7rDpf4A8+UGP9yknl0sxz3wsaGV8MIsKeGY1BdDQz
         G9uQ==
X-Forwarded-Encrypted: i=1; AJvYcCU6ucxpbsxKVeHF1eJJB9+NRnJIzt7wDl/Cp3WRDc4RWqMNNEjRelc+kOqkgsse+wS2xuaVsdqIzRg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyqDZVkA25DxD7gUqh6tTwiCxYKTWva7mX06Xs0YKlIsdA6LcUy
	4jBO1mI/b4nuTYH8LMSkvPxDhwoIqw/tVFoxu1PvWJo5picZJ3FlTjrg
X-Gm-Gg: AZuq6aKjmJFslPmfaP9WmJpMQEbSVM+Sqi+0dSCl4vtm92eLH2HASROAASx3mp1ytCX
	hUM6kMwBWr51LFcrWiYSBxx39xMB2IYP78D0hNKi/amRAkmbiUDinzR+crj3qNtn6J2XF4OzrPd
	zfEW6GnbaE4YSk6WNzN5/5ECEVoimbbR1+VSSq2NTaOAYRTaguQt4ovxPwJEOFGdna32DulCl/h
	URtQAPfdWuky1N2OQ3BlAOeCUoOSpgMoPPrI1BTcylR1jFVqV9bBaT5/iHCY1GjWN0jtHvNV8GM
	OHZppPKaVKtGDpV1PWmPR6ryq2rRAhjQsT+nORW2PRy9SpMl5zjqdBNmk5vwgQ2btaorxqPk1OP
	s0Z7YcWSHm9i6DQ1HbkjkQd6hHYPNd/pZpuV2iDtIVt1p0OZHRtiQu1zYPzIfM+5qVyGN0/FY6y
	G8TgbzkdcUYNTWNAh7QMsTy+23SWbw3PzUAQW4VY4v7OgsRQxtIqZqnRvVuATFK2E=
X-Received: by 2002:a05:600c:468b:b0:479:3a86:dc1c with SMTP id 5b1f17b1804b1-48320229cf1mr167334165e9.36.1770632515438;
        Mon, 09 Feb 2026 02:21:55 -0800 (PST)
Message-ID: <0574673e-0ca8-4a65-bb5e-89d475676631@gmail.com>
Date: Mon, 9 Feb 2026 11:21:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/riscv: add support for local guest TLB flush
 using HFENCE.VVMA
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <89f50ab2c1a1c79abea4db3a53393f974bb9a473.1770036584.git.oleksii.kurochko@gmail.com>
 <309e4e0d-c2a3-4f56-ab6f-f648da313bb6@suse.com>
 <060f4338-d6ac-41a1-8036-ab506cd54bf4@gmail.com>
Content-Language: en-US
In-Reply-To: <060f4338-d6ac-41a1-8036-ab506cd54bf4@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/5/26 9:56 AM, Oleksii Kurochko wrote:
>
> On 2/4/26 12:09 PM, Jan Beulich wrote:
>> On 02.02.2026 13:57, Oleksii Kurochko wrote:
>>> @@ -14,6 +15,12 @@ static inline void local_hfence_gvma_all(void)
>>>       asm volatile ( "hfence.gvma zero, zero" ::: "memory" );
>>>   }
>>>   +/* Flush VS-stage TLB for current hart. */
>>> +static inline void flush_tlb_guest_local(void)
>>> +{
>>> +    HFENCE_VVMA(0, 0);
>> For this use, ...
>>
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/insn-defs.h
>>> @@ -0,0 +1,10 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#ifndef ASM_RISCV_INSN_DEFS_H
>>> +#define ASM_RISCV_INSN_DEFS_H
>>> +
>>> +#define HFENCE_VVMA(vaddr, asid) \
>>> +    asm volatile ("hfence.vvma %0, %1" \
>>> +                  :: "r"(vaddr), "r"(asid) : "memory")
>> ... don't you want to use "rJ" as the constraints here?
>
> Even without "rJ" it is using x0 when argument 0 is passed. Just to be 
> on a
> safe side I don't mind to add "J".

When "J" is used compiler is trying to use integer 0 (what I misread when read
about J) but hfence.vvma expects two registers (zero register in this case), so
"J" can't be really used here.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:29:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:29:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225162.1531638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOWa-0002eE-Cz; Mon, 09 Feb 2026 10:29:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225162.1531638; Mon, 09 Feb 2026 10:29: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 1vpOWa-0002e7-9F; Mon, 09 Feb 2026 10:29:48 +0000
Received: by outflank-mailman (input) for mailman id 1225162;
 Mon, 09 Feb 2026 10:29: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpOWZ-0002e1-8P
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:29:47 +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 409cf749-05a2-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:29:45 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-47edd6111b4so60996225e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 02:29:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d33f5fsm320151745e9.5.2026.02.09.02.29.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 02:29:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 409cf749-05a2-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770632985; x=1771237785; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iHAPROrQ2OryllZawBueycjWCxXkYKUy81Ev28s7ahY=;
        b=PTFy7nKuXreD8J+CtyFs0FbAiuZGKgW3VWNteaNqdRNMcZVApS/8shQnuzNyyB0vGE
         KHRCSHqqA7Qat1V3R+DWg091ZCj9V6S7Mz1ETkTgzi2VNMAiGSmZrvD11Z3d2MBkwoSA
         FVhEta4U1rmC8NONM5GjQQmeF7ckWVFRTVXofoMmFnKO42FJifuFWlCd9Nr5XbyzJnYs
         JkalMxfrPFwperLjds1ZEUJLzHvJRAYQKbyFOHv/+9+MnadS3uO6zdCjPhzrv1Fltqd0
         yiXNuxR9pWHBiESYc+CMxOUPJDbjU1kit+jibvFUoGcqp9jtwuAeKfYoxi+rydJsANGI
         l6+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770632985; x=1771237785;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iHAPROrQ2OryllZawBueycjWCxXkYKUy81Ev28s7ahY=;
        b=VmsOHbdgFYWngvHRR9A/YObm1gKDrwOlxEH7oLZkmlaSgy2gedVnWw/JBI6Q7YnkY0
         Rmpk9vlg88bdzjySUy/Q3t9olKVpVBNJvGOMjRpQSB9hfH0bGLAU+W1LrH/ETzzP165X
         7xbczt87FgO1DkCXTkHrJD2Oi4eAJKXHcK8BcvQBy4SvS6gOlME9cpBVQdaynLjylZD0
         hnWDz/68ffAySF2QLXa3vzyANRZ1tBj0P7bDfm1bRpUEDHXdy/gapMhJoddePSVSYqDB
         1dbmJFe/k0COTkNwFwfKwf1N1HulWewPeAatbj9Mq13ZmOzB4l1CEXwQwCi0P5m4zq/U
         Vakg==
X-Forwarded-Encrypted: i=1; AJvYcCUG0jVL0qYSXXFHL6VwxpjGz3dFHfRrVpgWNRUhtWXotEn4whdAsnWjk0v/80eLL6PN+8yczApPZeU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzyk1s+0PUYgmgyiMlLHV8r19dVrnIr+HLtNJBYGxirMjsA8QZa
	k7LFWlVUTlhK+ARsoScklA2d1o4JLZa/EatR/wJa0Z0ez6AT54L4YIx4UAEyidGmIQ==
X-Gm-Gg: AZuq6aIjTBuhvRhaykr8xOXbH5ThcgKejD/LBuFYBvjx9UQHJWHritUr2nRd3H7FVgS
	MWi9jfecEWR8DXmXoLuEZoiZOHE/ftqrODVfL776bg31S4aWR8Y2swqiyD7JMPFPRUimwLOKCGy
	JtM66ulrk5VnnzDYVn7GRF8wIKVpKDE1O5mJ728Bu+dqVeba6Ez4APsuIR3isvgXj1pYgN/l2GF
	tAhGDY7h1SQqrx9KgZ+wGLPSmUNbz/qLHn+Uivo8OOvP3ogZw//H8+OM5EJ/djom0socqrKUebc
	Ih2DFTWJ1m3H67GcqV7iEthFsVqXJNtLMZ9fwFz46WkNR750je92JA2EpegENniE7atFhZPnu/Z
	gllhpCokdXUCs0ibfXtu+ANbFZMbaqV9coIl2GaN4hagP453stua3eMWoMYkI1LqfqScWNBmDGr
	f0eo3JheUUaGA3dZMiOtl5/L84cvNjg3x9HGQpkiefFMHDw73OfPxelsN0KNKTsN+D8U3N5IT9n
	gzNsZbqpiv3aRY=
X-Received: by 2002:a05:600c:c0ca:b0:483:43d8:8d68 with SMTP id 5b1f17b1804b1-48343d88e32mr18815195e9.28.1770632984713;
        Mon, 09 Feb 2026 02:29:44 -0800 (PST)
Message-ID: <5c66e79d-1455-4038-ae07-5f73756e0008@suse.com>
Date: Mon, 9 Feb 2026 11:29:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/3] xen/riscv: add support for local guest TLB flush
 using HFENCE.VVMA
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770036584.git.oleksii.kurochko@gmail.com>
 <89f50ab2c1a1c79abea4db3a53393f974bb9a473.1770036584.git.oleksii.kurochko@gmail.com>
 <309e4e0d-c2a3-4f56-ab6f-f648da313bb6@suse.com>
 <060f4338-d6ac-41a1-8036-ab506cd54bf4@gmail.com>
 <0574673e-0ca8-4a65-bb5e-89d475676631@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: <0574673e-0ca8-4a65-bb5e-89d475676631@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 11:21, Oleksii Kurochko wrote:
> 
> On 2/5/26 9:56 AM, Oleksii Kurochko wrote:
>>
>> On 2/4/26 12:09 PM, Jan Beulich wrote:
>>> On 02.02.2026 13:57, Oleksii Kurochko wrote:
>>>> @@ -14,6 +15,12 @@ static inline void local_hfence_gvma_all(void)
>>>>       asm volatile ( "hfence.gvma zero, zero" ::: "memory" );
>>>>   }
>>>>   +/* Flush VS-stage TLB for current hart. */
>>>> +static inline void flush_tlb_guest_local(void)
>>>> +{
>>>> +    HFENCE_VVMA(0, 0);
>>> For this use, ...
>>>
>>>> --- /dev/null
>>>> +++ b/xen/arch/riscv/include/asm/insn-defs.h
>>>> @@ -0,0 +1,10 @@
>>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>>> +
>>>> +#ifndef ASM_RISCV_INSN_DEFS_H
>>>> +#define ASM_RISCV_INSN_DEFS_H
>>>> +
>>>> +#define HFENCE_VVMA(vaddr, asid) \
>>>> +    asm volatile ("hfence.vvma %0, %1" \
>>>> +                  :: "r"(vaddr), "r"(asid) : "memory")
>>> ... don't you want to use "rJ" as the constraints here?
>>
>> Even without "rJ" it is using x0 when argument 0 is passed. Just to be 
>> on a
>> safe side I don't mind to add "J".
> 
> When "J" is used compiler is trying to use integer 0 (what I misread when read
> about J) but hfence.vvma expects two registers (zero register in this case), so
> "J" can't be really used here.

Hmm, I see. Besides the option of using just "r" as you did originally,
another looks to be to use the 'z' operand modifier along with "rJ".
That's what gcc's riscv.md looks to be doing, and I assume there is a
reason for this.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:31:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:31:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225171.1531647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOYU-0004AV-QL; Mon, 09 Feb 2026 10:31:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225171.1531647; Mon, 09 Feb 2026 10: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 1vpOYU-0004AO-N0; Mon, 09 Feb 2026 10:31:46 +0000
Received: by outflank-mailman (input) for mailman id 1225171;
 Mon, 09 Feb 2026 10: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=PW1f=AN=bounce.vates.tech=bounce-md_30504962.6989b78d.v1-7a9873fa657341e6a0418bb5867dd057@srs-se1.protection.inumbo.net>)
 id 1vpOYU-0004AI-06
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:31:46 +0000
Received: from mail177-22.suw61.mandrillapp.com (unknown [198.2.177.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8639f82c-05a2-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:31:44 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-22.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4f8gwY23ylzGlspCH
 for <xen-devel@lists.xenproject.org>; Mon,  9 Feb 2026 10:31:41 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 7a9873fa657341e6a0418bb5867dd057; Mon, 09 Feb 2026 10:31: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: 8639f82c-05a2-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770633101; x=1770903101;
	bh=Q+QF0oPxFfiCTygOaUN36BYB9qNIhQFyHxEA4lBnZXc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=wUJC4LKKllCm00wyWejCRzbBv0sT8de/rMxXNSsne1jhBl7qMqInwrybrjA7P5V/R
	 pShxCqPP9/QsA0/C9ESHpBZ9i1DQzA1gcrS13MntZXzvO7goS3mEPaNP75fmC720jc
	 XGpWHCLGuMxAERC0Ya8XgG0KI88ffzQ4h4G/DQih83IozMK71ZuYRUGf6T26hTeq5F
	 N7fLTs3sfX0hluBILcKBqwPR0JZjyEgUIPo0ENQCbhj6QBAsElo4wPoB4SJOagbfjz
	 Ztyv8P9Tol4VnknTR0h/2XQK0uXoowlh0hXhZFflCu3FVUWZD9WKU/8BOqE1iKlsX5
	 9uPZ02zCZr8ww==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770633101; x=1770893601; i=teddy.astie@vates.tech;
	bh=Q+QF0oPxFfiCTygOaUN36BYB9qNIhQFyHxEA4lBnZXc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=MjTV6GNEzHQNdPYEp5U2pI+bV5n5dNcXbCfbK6SO0le3a5nbTuMe5I6uRZO37xhlz
	 LOZwexF38MZT5YGwm5jJJ0GuuS2JnPBU3pqsg1qeqA6wuEJ/Gh7nraDkd/JPe+iLQK
	 9/Wh1acN96X4u8hEsWQDfwcpNOoe9ev/lte6DD4pOZmOwfKC+b2MEMxWVH9DyuHfP/
	 30QxMjTo9oGh0EOnZpOQzl9Aj8Su/PKytywq9eJQmqEFcSx2irR+kGCzt9+dXZMrhr
	 QPbk176OYb6r+GXP+V3toAY+VLrqhfmcjQWQYW586VCNcWKWJL2nwWY+p+ORTDtjRn
	 3H4EPEwnCLTlQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v6]=20xenpm:=20Add=20get-intel-temp=20subcommand?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770633100428
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>, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <489a4decf4367a9983a63fb4987d8c5f6267ed9f.1770632848.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.7a9873fa657341e6a0418bb5867dd057?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260209:md
Date: Mon, 09 Feb 2026 10:31:41 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

get-intel-temp allows querying the per-core CPU temperature and
per-package one on Intel processors (as usual Dom0 drivers cannot
work due to misalignment between Dom0 vCPU and pCPUs).

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
CC: Jan Beulich <jbeulich@suse.com>

v4: https://lore.kernel.org/xen-devel/cover.1766158766.git.teddy.astie@vate=
s.tech/
v5: Removed trailing whitespace.
v6: Report errors through errno and use strerror() to display them
---

 CHANGELOG.md       |   2 +
 tools/misc/xenpm.c | 131 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 132 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18f3d10f20..d7fac4a8d0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,8 @@ The format is based on [Keep a Changelog](https://keepach=
angelog.com/en/1.0.0/)
    - Support for Bus Lock Threshold on AMD Zen5 and later CPUs, used by Xe=
n to
      mitigate (by rate-limiting) the system wide impact of an HVM guest
      misusing atomic instructions.
+   - Introduce get-intel-temp to xenpm to query CPU temperatures on Intel
+     platforms.
 
 ### Removed
  - On x86:
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 682d092479..de490b6507 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -32,11 +32,14 @@
 
 #include <xen-tools/common-macros.h>
 
+#include <xen/asm/msr-index.h>
+
 #define MAX_PKG_RESIDENCIES 12
 #define MAX_CORE_RESIDENCIES 8
 
 static xc_interface *xc_handle;
 static unsigned int max_cpu_nr;
+static xc_physinfo_t physinfo;
 
 /* help message */
 void show_help(void)
@@ -93,6 +96,7 @@ void show_help(void)
             "                                           units default to \=
"us\" if unspecified.\n"
             "                                           truncates un-repre=
sentable values.\n"
             "                                           0 lets the hardwar=
e decide.\n"
+            " get-intel-temp        [cpuid]       get Intel CPU temperatur=
e of <cpuid> or all\n"
             " start [seconds]                     start collect Cx/Px stat=
istics,\n"
             "                                     output after CTRL-C or S=
IGINT or several seconds.\n"
             " enable-turbo-mode     [cpuid]       enable Turbo Mode for pr=
ocessors that support it.\n"
@@ -1354,6 +1358,131 @@ void enable_turbo_mode(int argc, char *argv[])
                 errno, strerror(errno));
 }
 
+static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, i=
nt *temp)
+{
+    xc_resource_entry_t entries[] =3D {
+        { .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STA=
TUS },
+        { .idx =3D MSR_TEMPERATURE_TARGET },
+    };
+    struct xc_resource_op ops =3D {
+        .cpu =3D cpu,
+        .entries =3D entries,
+        .nr_entries =3D ARRAY_SIZE(entries),
+    };
+    int tjmax;
+
+    int ret =3D xc_resource_op(xch, 1, &ops);
+
+    switch ( ret )
+    {
+    case -1:
+        /* xc_resource_op returns -1 in out of memory scenarios */
+        errno =3D -ENOMEM;
+        return -1;
+
+    case 0:
+        /* This CPU isn't online or can't query this MSR */
+        errno =3D -ENODATA;
+        return -1;
+
+    case 1:
+    {
+        /*
+         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's =
100
+         * which is correct aside a few selected Atom CPUs. Check Linux
+         * kernel's coretemp.c for more information.
+         */
+        static bool has_reported_once =3D false;
+
+        if ( !has_reported_once )
+        {
+            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assu=
me "
+                            "tjmax =3D 100, readings may be incorrect.\n")=
;
+            has_reported_once =3D true;
+        }
+
+        tjmax =3D 100;
+        break;
+    }
+
+    case 2:
+        tjmax =3D (entries[1].val >> 16) & 0xff;
+        break;
+
+    default:
+        if ( ret > 0 )
+        {
+            fprintf(stderr, "Got unexpected xc_resource_op return value: %=
d", ret);
+            errno =3D -EINVAL;
+        }
+        else
+            errno =3D ret;
+        return -1;
+    }
+
+    *temp =3D tjmax - ((entries[0].val >> 16) & 0xff);
+    return 0;
+}
+
+static void get_intel_temp(int argc, char *argv[])
+{
+    int temp =3D -1, cpu =3D -1;
+    unsigned int socket;
+    bool has_data =3D false;
+
+    if ( argc > 0 )
+        parse_cpuid(argv[0], &cpu);
+
+    if ( cpu !=3D -1 )
+    {
+        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
+            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+        else
+        {
+            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
+                    errno, strerror(errno));
+            printf("No data\n");
+        }
+        return;
+    }
+
+    /* Per socket measurement */
+    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
+          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.threads_=
per_core )
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, true, &temp) )
+        {
+            fprintf(stderr,
+                    "[Package%u] Unable to fetch temperature (%d - %s)\n",
+                    cpu, errno, strerror(errno));
+            continue;
+        }
+
+        has_data =3D true;
+        printf("Package%u: %d=C2=B0C\n", socket, temp);
+    }
+
+    if ( has_data )
+        /* Avoid inserting a trailing line if we have nothing */
+        printf("\n");
+
+    for ( cpu =3D 0; cpu < max_cpu_nr; cpu +=3D physinfo.threads_per_core =
)
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, false, &temp) )
+        {
+            fprintf(stderr, "[CPU%d] Unable to fetch temperature (%d - %s)=
\n",
+                    cpu, errno, strerror(errno));
+            continue;
+        }
+
+        has_data =3D true;
+        printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+    }
+
+    if ( !has_data )
+        printf("No data\n");
+}
+
 void disable_turbo_mode(int argc, char *argv[])
 {
     int cpuid =3D -1;
@@ -1618,12 +1747,12 @@ struct {
     { "set-max-cstate", set_max_cstate_func},
     { "enable-turbo-mode", enable_turbo_mode },
     { "disable-turbo-mode", disable_turbo_mode },
+    { "get-intel-temp", get_intel_temp },
 };
 
 int main(int argc, char *argv[])
 {
     int i, ret =3D 0;
-    xc_physinfo_t physinfo;
     int nr_matches =3D 0;
     int matches_main_options[ARRAY_SIZE(main_options)];
 
-- 
2.53.0



--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:31:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:31:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225172.1531657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOYc-0004QK-1z; Mon, 09 Feb 2026 10:31:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225172.1531657; Mon, 09 Feb 2026 10:31: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 1vpOYb-0004QD-VJ; Mon, 09 Feb 2026 10:31:53 +0000
Received: by outflank-mailman (input) for mailman id 1225172;
 Mon, 09 Feb 2026 10:31: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpOYa-0004AI-VT
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:31:53 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b8bcd2c-05a2-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:31:51 +0100 (CET)
Received: from PH7PR17CA0057.namprd17.prod.outlook.com (2603:10b6:510:325::6)
 by LV9PR12MB9829.namprd12.prod.outlook.com (2603:10b6:408:2eb::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 9 Feb
 2026 10:31:46 +0000
Received: from CY4PEPF0000EDD7.namprd03.prod.outlook.com
 (2603:10b6:510:325:cafe::56) by PH7PR17CA0057.outlook.office365.com
 (2603:10b6:510:325::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.17 via Frontend Transport; Mon,
 9 Feb 2026 10:31:36 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000EDD7.mail.protection.outlook.com (10.167.241.203) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 10:31:45 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 04:31:42 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b8bcd2c-05a2-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=a+JytafSwklHj7MW80gsBEId3sDiFrrlLYZLmr+NE6pJhNAkd3dYIXNHG6Q2VVucHLTW12Gtj5PAFVhOFxK7xQPS3OjWZ0E1xWxEdxRd89AQl/SuO2Zd7qlsZNyii8+3lI3rFVzWoKjvjY2vcsVn/pEfOsY35QnCrJ4ybwkBM5G0Y+m2TLV7yDCNM43lcoTlhzw7VCDNBlSbtjrcDP3hgUmCOW3Oz3IglziuEyXqV4AzaaxyLmdsQVaDHQ/n1bQm8wzp/9y6KaIAYJhl2MHBxDaG2njkCKpINazYRRlNmLCYgcLELvCXEEB+/V/lh3A/X7oOyYp/aRbXkGuG99/6qQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qeeq1xMi1fi4C++dxIjciOIE3wFIWwG27Soi5ZlWspE=;
 b=J8rY+sR5is0tLuBgDvvHODc+gNE6zWbrH/kL7V+rHpNctSixh4BNVhvNRym2j2wnmPXwHYD5CSyC/KFznn2htk7HALKi2PPILoYWobSS7kc1IbeJjCY1gtVq5u1TT93ZDRfChuYxHPXQbmsgpXRp8AR4sP92jJbc8oPHiU92Clcg4tSFRF1AIAIUgZridmATDItEwTEOYgCnIzWtlC9rsYoOrf/j1RezwlKroCFa8Sdryhl+HvuE1HP/uQn7VXix0a/y1tS73cQsSXV2T5/5cmKiGzLUZP9gKmCRY79zS2o0g4/B661ohsenaFGS023ZgElXmhid2DOyfmfyGLZ5bQ==
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=Qeeq1xMi1fi4C++dxIjciOIE3wFIWwG27Soi5ZlWspE=;
 b=N7SGZmIp3cVr8O+jJToR0tvtbwmRysGKSGQi3+dYNAVPkfOeN+dQE/B3D5tOQsN0Ouhwe3JpaeyxGbfHnF5+WpidbnKrwBnNmyHrFiU4k+ZGsToJan+LWhsrmuZ8QCRpzWJI7Uf5QiqZ+Y3+HkK7KGpyMgPP/NbTPmGFUvek2vM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@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] x86: Add Kconfig option for log-dirty tracking
Date: Mon, 9 Feb 2026 11:31:15 +0100
Message-ID: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb08.amd.com
 (10.181.42.217)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD7:EE_|LV9PR12MB9829:EE_
X-MS-Office365-Filtering-Correlation-Id: 3613ac6b-03ef-4da8-f455-08de67c66c51
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?RE4UcandWHDe4SGeorw+LULNVJa3B5iSFq4XJ8ZnvIurNWg2kSujDJPxEbus?=
 =?us-ascii?Q?o33tuCSqWnOuOjBfsFyJIzgbuCpGY5WDybJDy6uZiNTxfln+I18VZ6p5PFf3?=
 =?us-ascii?Q?lrJo3ggIoJc5xRWImzwLA/J/+mjhi9iCL9CsFSjjEEKV7smtFjhjWO5e4y6z?=
 =?us-ascii?Q?tx7NRkgHfX2heavx28+nbCKm7u1LX9/kBvqBsQKMkMBi2lgIgUlr5lI5SPr4?=
 =?us-ascii?Q?SrHuT/D7+TvlfMrb2Ssx4cqafhfDBu3dc4sXGWUz7F0soxeuk5sJXeoGQo7O?=
 =?us-ascii?Q?SDwXVMKKUBivUPMapTeAeMEi0uIdQbL4YYF4cWJ7oSRGBUc86KGXvHlXp3kA?=
 =?us-ascii?Q?p0njNUaAUET9EuY0STT6ez2kUAfWdPe8UNwCSYW/gwEVBUJxvhUTir+a2LtE?=
 =?us-ascii?Q?sVYupeN6EfqmcHxNf5Xlewqv7DWqU30cMIGV6wBOiIc4p5GlzXKUTwgMuuj7?=
 =?us-ascii?Q?ZGimRG8qz6bfAMQdLiB16Q5LulnHwq1WGwfbLjrlT7MC9gmazq6UPL7wGlsf?=
 =?us-ascii?Q?A8IEB60+9EbjBu6+Hv8w5G8Pd86wehjiibG/cCiqUjzfKmGmkzS5je7YuS6S?=
 =?us-ascii?Q?snNz0KsJzGQa1zZ6ezeHQCBb9NQWjDPjLaTcPb+22ZYRXCtS5PExneoONyx+?=
 =?us-ascii?Q?1TtMjYorAwk41MCII2B2AsUq5I/qpv2b1F3ITMEgmqqi1q8HCE8u0JjbUwcn?=
 =?us-ascii?Q?S2aJltWYIZwKZ0HJz/zYM+3ojQgw2BA8PxVxio9owDnuUw+L+giYL+jk05hU?=
 =?us-ascii?Q?Y0B5nfuiWGV2skBg/cCf8DKInTuUt4AHHt0jqhXtEw/6aP+B6uhRyeXKwZSm?=
 =?us-ascii?Q?nOpnAfKg22TufhvL+30hFU1rkUKSX1gzfnARNWPPLwsGfNO6GJwzV6okQtLv?=
 =?us-ascii?Q?ThTEY8xaZH/CUaxJjq+ry9wDd5nC0FhCl9Xy1s6c2tDM+gvWrJaFwxPBJ3/N?=
 =?us-ascii?Q?tUGpQmOVRHKxKGIbAEKKvSymAk52hJQTLlIKhQsVIGPstwKDpQ/F/jpZ4Q+B?=
 =?us-ascii?Q?sJeG1IQD3l04Y0ujMYSTohVq+/5zfs/FT1XCdeK3SYl0BVZ427yzNOomEkeJ?=
 =?us-ascii?Q?vPnAcW/kFhQK0Nx6Zsc1oz7G+ZJ/EMAP3PqGYwzyeuNqIO60UMBNd8CIYcnO?=
 =?us-ascii?Q?8mk0ntZ2kfDjV6cw0n52v9hSoOi5uAwKPILiJ6TIveOBWTJXKJ07xu1vvRym?=
 =?us-ascii?Q?8WnpTZNurnZIiLWu+Wop/V3QCIYvk5DSYS1GcQDeAdzAnLONzdtfK4LMFLfJ?=
 =?us-ascii?Q?a1RX+5tX12q5YqjWETQygHVtob0aRJU66G43mCD2eQPyzXaMIC4vFFRUtmkT?=
 =?us-ascii?Q?nEXPBlDJmgoNJ3j6zOCkiDxnvvY8waJIERLQPzErMBFohnRQX8pp28Bg8hYi?=
 =?us-ascii?Q?3fa5h3GG+XAX+SXYkFrqv5ZZepYkM9Y7rft/JYcp+wRLaDdq60hTuIO+hpUK?=
 =?us-ascii?Q?dPbqydBLz03LrRY25BAxqjlExCT/OOzS4raeoRtI3w1jHerWDp9xn07Eje88?=
 =?us-ascii?Q?ImZadr6emK80TCqAQIw76+nUxItAZuzIZSrLDsUMvwW1CW+Jr6XomJVD1xsV?=
 =?us-ascii?Q?EkkRLu0Ol2g+rNd8xBSPTOYBvfoL3wm5KnbqGby+kGcOaq7x92ut93Ct0d9X?=
 =?us-ascii?Q?EDEpt9VcZr39optmb2i7l3JLH9FQ/xd4MiyiD0BdsYehd3TjkcMcdXdN5eIP?=
 =?us-ascii?Q?tmNk5g=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rt1AgFp4OTa4RZOsY4azbK6Iy3tcOmMt4RxB3CPAkRZm71IyRi8kRfoiO/smerqQ5m8OHJ1f2XzlgKN61aGZ+Nnf3gjGbPyYn/hGVeh1oLVLyUvAqVWrdhBzfk4Tj33HvDDngObUceo3E2sOVv58waX0rGUuYRlWFBgQgfTgPTY/6Sql/dkh3t/0EoPRPjqBzKXIYIWTGwXixKr70g15KY0q+MoQ+YbHY4aYtxnM4EBxU6K6aiDY382SVswRI7y2bac3dyxc1wXD6k/DtGfBC2fQP67QohoHsmYou81GanPTRHTIX0W9GhV636/bDIBnTWEz2R69LAg8UkexuMtfXgUC7LVEZgSNIbJThC9eIALKl0IM0RH8cTu/a2qKTz19lbt8lNJokGuOfvo/FXVvXznaVFQEO5aTW1tJPheyOSY8GrCd0pIksQsyIBXWQolC
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 10:31:45.0759
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3613ac6b-03ef-4da8-f455-08de67c66c51
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EDD7.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9829

Creates a CONFIG_LOG_DIRTY Kconfig option with the following effects
when disabled:

  * paging_domctl{,_cont} return -EOPNOTSUPP (XEN_DOMCTL_shadow_op).
  * VRAM tracking via DMOP returns EOPNOTSUPP.

And compiles out all log-dirty tracking infra.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
RFC for the Kconfig help message.
---
 xen/arch/x86/Kconfig              |  9 +++++++++
 xen/arch/x86/domctl.c             |  8 ++++----
 xen/arch/x86/hvm/dm.c             |  3 +++
 xen/arch/x86/include/asm/domain.h |  2 ++
 xen/arch/x86/include/asm/p2m.h    |  2 ++
 xen/arch/x86/include/asm/paging.h |  8 +++-----
 xen/arch/x86/mm/hap/hap.c         | 22 +++++++++++++---------
 xen/arch/x86/mm/p2m.c             |  2 ++
 xen/arch/x86/mm/paging.c          |  2 ++
 xen/include/hypercall-defs.c      |  4 ++--
 10 files changed, 42 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 61f58aa829..fbf044aa4d 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -146,6 +146,7 @@ config XEN_IBT
 config SHADOW_PAGING
 	bool "Shadow Paging"
 	default !PV_SHIM_EXCLUSIVE
+	select LOG_DIRTY
 	depends on PV || HVM
 	help
 
@@ -166,6 +167,14 @@ config SHADOW_PAGING
 config PAGING
 	def_bool HVM || SHADOW_PAGING
 
+config LOG_DIRTY
+	bool "Log-dirty page tracking" if EXPERT
+	depends on PAGING
+	default !PV_SHIM_EXCLUSIVE
+	help
+	  Enable log-dirty infrastructure so Xen can track domain memory writes and
+	  the dirty state of VRAM for device models and live migrations.
+
 config BIGMEM
 	bool "big memory support"
 	default n
diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index d9521808dc..61d43a21d0 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -220,15 +220,15 @@ long arch_do_domctl(
     {
 
     case XEN_DOMCTL_shadow_op:
-#ifdef CONFIG_PAGING
+        ret = -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
+            break;
+
         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:
diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
index 3b53471af0..94216aecc2 100644
--- a/xen/arch/x86/hvm/dm.c
+++ b/xen/arch/x86/hvm/dm.c
@@ -48,6 +48,9 @@ static int track_dirty_vram(struct domain *d, xen_pfn_t first_pfn,
                             unsigned int nr_frames,
                             const struct xen_dm_op_buf *buf)
 {
+    if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
+        return -EOPNOTSUPP;
+
     if ( nr_frames > (GB(1) >> PAGE_SHIFT) )
         return -EINVAL;
 
diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 94b0cf7f1d..f09c13909f 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -226,7 +226,9 @@ struct paging_domain {
     unsigned int            p2m_pages;    /* number of pages allocated to p2m */
 
     /* log dirty support */
+#ifdef CONFIG_LOG_DIRTY
     struct log_dirty_domain log_dirty;
+#endif /* CONFIG_LOG_DIRTY */
 
     /* preemption handling */
     struct {
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 9016e88411..3c2dcacfa5 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -253,9 +253,11 @@ struct p2m_domain {
                                     bool *sve);
     int                (*recalc)(struct p2m_domain *p2m,
                                  unsigned long gfn);
+#ifdef CONFIG_LOG_DIRTY
     void               (*enable_hardware_log_dirty)(struct p2m_domain *p2m);
     void               (*disable_hardware_log_dirty)(struct p2m_domain *p2m);
     void               (*flush_hardware_cached_dirty)(struct p2m_domain *p2m);
+#endif /* CONFIG_LOG_DIRTY */
     void               (*change_entry_type_global)(struct p2m_domain *p2m,
                                                    p2m_type_t ot,
                                                    p2m_type_t nt);
diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
index 291ab386e8..980cdfa455 100644
--- a/xen/arch/x86/include/asm/paging.h
+++ b/xen/arch/x86/include/asm/paging.h
@@ -55,12 +55,9 @@
 #define PG_translate   0
 #define PG_external    0
 #endif
-#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
 /* Enable log dirty mode */
-#define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
-#else
-#define PG_log_dirty   0
-#endif
+#define PG_log_dirty   IS_ENABLED(CONFIG_LOG_DIRTY) * \
+                       (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
 
 /* All paging modes. */
 #define PG_MASK (PG_refcounts | PG_log_dirty | PG_translate | PG_external)
@@ -174,6 +171,7 @@ static inline void paging_log_dirty_init(struct domain *d,
                                          const struct log_dirty_ops *ops) {}
 static inline void paging_mark_dirty(struct domain *d, mfn_t gmfn) {}
 static inline void paging_mark_pfn_dirty(struct domain *d, pfn_t pfn) {}
+static inline void paging_mark_pfn_clean(struct domain *d, pfn_t pfn) {}
 static inline bool paging_mfn_is_dirty(struct domain *d, mfn_t gmfn) { return false; }
 
 #endif /* PG_log_dirty */
diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
index a337752bf4..21672db011 100644
--- a/xen/arch/x86/mm/hap/hap.c
+++ b/xen/arch/x86/mm/hap/hap.c
@@ -50,7 +50,7 @@ struct hap_dirty_vram {
  * calling p2m_log_dirty_range(), which interrogates each vram
  * page's p2m type looking for pages that have been made writable.
  */
-
+#ifdef CONFIG_LOG_DIRTY
 int hap_track_dirty_vram(struct domain *d,
                          unsigned long begin_pfn,
                          unsigned int nr_frames,
@@ -161,6 +161,7 @@ out:
 
     return rc;
 }
+#endif /* CONFIG_LOG_DIRTY */
 
 /************************************************/
 /*            HAP LOG DIRTY SUPPORT             */
@@ -440,14 +441,17 @@ 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 = {
-        .enable  = hap_enable_log_dirty,
-        .disable = hap_disable_log_dirty,
-        .clean   = hap_clean_dirty_bitmap,
-    };
-
-    /* Use HAP logdirty mechanism. */
-    paging_log_dirty_init(d, &hap_ops);
+    if ( IS_ENABLED(CONFIG_LOG_DIRTY) )
+    {
+        static const struct log_dirty_ops hap_ops = {
+            .enable  = hap_enable_log_dirty,
+            .disable = hap_disable_log_dirty,
+            .clean   = hap_clean_dirty_bitmap,
+        };
+
+        /* Use HAP logdirty mechanism. */
+        paging_log_dirty_init(d, &hap_ops);
+    }
 
     d->arch.paging.update_paging_modes = hap_update_paging_modes;
     d->arch.paging.flush_tlb           = flush_tlb;
diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
index e915da26a8..373382c28c 100644
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -236,6 +236,7 @@ struct ioreq_server *p2m_get_ioreq_server(struct domain *d,
     return s;
 }
 
+#ifdef CONFIG_LOG_DIRTY
 void p2m_enable_hardware_log_dirty(struct domain *d)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
@@ -263,6 +264,7 @@ void p2m_flush_hardware_cached_dirty(struct domain *d)
         p2m_unlock(p2m);
     }
 }
+#endif /* CONFIG_LOG_DIRTY */
 
 /*
  * Force a synchronous P2M TLB flush if a deferred flush is pending.
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index 2396f81ad5..13ee137db9 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -623,10 +623,12 @@ int paging_domain_init(struct domain *d)
     INIT_PAGE_LIST_HEAD(&d->arch.paging.freelist);
     mm_lock_init(&d->arch.paging.lock);
 
+#ifdef CONFIG_LOG_DIRTY
     /* This must be initialized separately from the rest of the
      * log-dirty init code as that can be called more than once and we
      * don't want to leak any active log-dirty bitmaps */
     d->arch.paging.log_dirty.top = INVALID_MFN;
+#endif /* CONFIG_LOG_DIRTY */
 
     /*
      * Shadow pagetables are the default, but we will use
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 63755bb8df..be7ed832be 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -194,7 +194,7 @@ 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
-#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
+#if defined(CONFIG_LOG_DIRTY)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
 #ifndef CONFIG_PV_SHIM_EXCLUSIVE
@@ -292,7 +292,7 @@ dm_op                              compat   do       compat   do       do
 hypfs_op                           do       do       do       do       do
 #endif
 mca                                do       do       -        -        -
-#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
+#if defined(CONFIG_LOG_DIRTY)
 paging_domctl_cont                 do       do       do       do       -
 #endif
 

base-commit: 1ee8b11c1106dca6b8fe0d54c0e79146bb6545f0
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:34:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:34:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225184.1531669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOag-0005BJ-Ek; Mon, 09 Feb 2026 10:34:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225184.1531669; Mon, 09 Feb 2026 10:34: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 1vpOag-0005BC-Ae; Mon, 09 Feb 2026 10:34:02 +0000
Received: by outflank-mailman (input) for mailman id 1225184;
 Mon, 09 Feb 2026 10:34: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpOae-0005Ay-NB
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:34:00 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d703aca0-05a2-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 11:33:58 +0100 (CET)
Received: from MN2PR02CA0009.namprd02.prod.outlook.com (2603:10b6:208:fc::22)
 by BL4PR12MB9723.namprd12.prod.outlook.com (2603:10b6:208:4ed::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 10:33:54 +0000
Received: from BL6PEPF0001AB50.namprd04.prod.outlook.com
 (2603:10b6:208:fc:cafe::53) by MN2PR02CA0009.outlook.office365.com
 (2603:10b6:208:fc::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 10:33:54 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL6PEPF0001AB50.mail.protection.outlook.com (10.167.242.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 10:33:54 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 04:33:53 -0600
Received: from xcbagarciav01.xilinx.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_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 02:33:52 -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: d703aca0-05a2-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GzqBFwq47U4T++x1zo89aphFFkmiDvot3n0khcLPfar8FJ3QUtWfELGUY5vv6e/5BSJhjKPnNUDjOPyPvOkenu+Gy3Lic0mkftrPVNOSzIOLMbRLxYlj18CLqJZnakGcznperxMTFJ5SHBiF2878gikK+rL0krGnxrq+r8lfi22g4ciJM11PWCiIm1IhYV/YMk6tgOc1+QcUaahpPK9VQfhY3z94NGMKpibD+kW3GPnqLvS/QVCU5x2Wm4O4kdun6uKKOzQeHybMucrOQNNOV7IH11+Ssb1+F0O3J61ADPZwGaaxYPgtYE/ESuaromtDxveAQKhMCuWKmKHS97sjfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RE0PHywVwvZEIDnboVhWWsI0Yb3xWcXOSTtq7qyqpak=;
 b=W0GLh3Uvt6NmWTerusLrcbF7I0kqHO8zaxfOekWBe5LnY9bHFHRU0ldBl14/wzWsdD2OG81p6ofVRMddyeR2aRiB8EaweMzjWdJk+DoDwflMYSxzicCYd7jYwRuRpH+WcvB8AhgGx0X8Nfv6vXQITl1VKii8/j8c9U7va209viX/IC1LuiVFL/8iD1cfZ6JuKs5zOgQo9AihkH/4+yNFKGBkjpKt9o69LoS9woapIwrx4xFQk/7d08lGNmu+SDNZGE4hozGaUZ+Ou6N3tKMESoOjNdI3GQXUdBXYF5QS44AxI38+L1qpWfV5HmKM1Qo96JMSRMYYpdeIHqMmvsEFlg==
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=RE0PHywVwvZEIDnboVhWWsI0Yb3xWcXOSTtq7qyqpak=;
 b=Um3V+W7uKe+3TtgYe5ovFj6RiArBxQpXJnbR52nSAUvIQnGlU0rmzESokZfFjgG7p7dnZ9OwPKnmhuGj0PtSDKFjbva6ISGJ3zkIjcBgIZlSrbPfpPMuxd2dcXiIc7g0SS74c4SLqYnDmHCyCxTVUQvRwYemMwBsldwpwd8se4w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@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] x86/kconfig: Reflow the SHADOW help message
Date: Mon, 9 Feb 2026 11:33:38 +0100
Message-ID: <20260209103339.6466-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB50:EE_|BL4PR12MB9723:EE_
X-MS-Office365-Filtering-Correlation-Id: 7070f4d4-833c-47ba-66ff-08de67c6b92e
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?5qzD/43yL+Mm9UsS8nAkg0PwXRAb1fitUpqyFmzLrNYkhSvdt2ogwOnvyxSs?=
 =?us-ascii?Q?mRXsgnLAiMY8lCM2bdiKC0WYfAGR7ILSV+mqlzV8xGrhr+lTI+qMEXX+/R4V?=
 =?us-ascii?Q?BJa0M8f0k3QhfEbFFgkKULOrcuKDddVD6u219wOSuzQJZUvfu3THcvQDfNQE?=
 =?us-ascii?Q?dohjK4sMeVhYH6SR7eabnWxxKpoacv34fMSaEGcVITUa9+xCU2ovnPMjuz/G?=
 =?us-ascii?Q?MYEN+IwfAywXQ696VU81gu+fm4SVNCs9/sOwIELYqOq2+Ca6vXf07H/vOI8e?=
 =?us-ascii?Q?NR89uifxOylAOC4mcXeaFVSpVbiePB0bBlZKIxT+egDxfsE02G9hu2iAn9FT?=
 =?us-ascii?Q?BmRZNB4FDOIcdxNESZfR7J9e3aaXqkzrRPVO/jBrxOyt1+9W6za38NpEXWZq?=
 =?us-ascii?Q?Rwks8ZTfG0vSQVpV8VzAV9X38YC9nHyJdsT/P2EGxSqc3sfbW0pdH5U0rDxW?=
 =?us-ascii?Q?nle8pbjRb2Mtey58SECLrAgfGZnRVcMq2+WukagH8IHpcA4IfAauum8HCS3K?=
 =?us-ascii?Q?aEmhKyzXMkeVV6VUIhZU40HU2kQwaMiKoFLHwSHVAh++2CfuZeUDozkR97ZN?=
 =?us-ascii?Q?vL2uTrkE4iEKFN2XdyZhfLL5wjHsXuf98IgUv3nddcoZgO79WVV+2ds1NOb/?=
 =?us-ascii?Q?RsNoznfhLtdJ8HMp23lFUJqkkfEgDXscFfwhqx8dYF9oA7tGP4HD/0hfCZ1L?=
 =?us-ascii?Q?j7oDYDcUUHaV4ls1XB93Jd9a/ueuvzz8pxGGd8g8mgaepKmkzdiUi5LTOeGH?=
 =?us-ascii?Q?kjR/UZxoqYD5lbtA9DHqkD1O/2XV6qZXnUh1mFRqcWVFV9auoZtbZa0g0rg5?=
 =?us-ascii?Q?rFR8hZP0nPkNU+I4YBiYWXDyu17VAulQ5B6pZbFyZm4WN/LLo2861OWv5l8q?=
 =?us-ascii?Q?wIUMmJfqMm2NEyxw/hYiQAzq69aRgx9ChL3eUIrX/qeq2XDqbX1sH46ZVFwv?=
 =?us-ascii?Q?YEV+lC/qdu2hT5TYEYCf2bJOS3OXDJMIIABrdXptnC/7mOWk+1hAPGt3VsTR?=
 =?us-ascii?Q?EQivjFwVvy2F781EUNjqll42WC6STR7gzQFeAULHba/RuyyeD0TtfpMDmKRb?=
 =?us-ascii?Q?q/B5rF2bN2jpDdo4rKmyMbTBAkoNRMbJDZuw9duJ4PM/7c+xhmUig3Op1brh?=
 =?us-ascii?Q?ai8Iafp2rMpC5YXRgcd0A7AJ1sxSUaYdv/Z44hhWRYz5ZZxEM3IWNV8Gu3Q/?=
 =?us-ascii?Q?p7qINFG020Ja1pmin7uJKEykbKXjvRznkstYDVQQk1pps2fTTZ0oYlxN7d+f?=
 =?us-ascii?Q?pxwuYpeULfSv1L6jolOe2u45DoIC+xJr9UeJ5h8tZ9aTljP8jLXnOBfiw9CP?=
 =?us-ascii?Q?7At8hRIxpSIiUKVQseMmouGiuvcWWFUTkLnEueDxoceVUJ/+OT9++pSrik9z?=
 =?us-ascii?Q?fh5Tr3uP6rl+S+MoKkxGClUbs9BdwcLPUYbpLL/GOuGpuAk/2/rsJ2XgUWzP?=
 =?us-ascii?Q?KrTQ3PnJC3nQTfrTPrsRY0JH4DGTQSY2TwX5xoL6r82f4UJ7i+OlKdpIarsm?=
 =?us-ascii?Q?YYznVUyIoB/zyNe3x41/KFqPRkV3CJCxIj6qvulibPoRYhxhgNEmfsXQrFqc?=
 =?us-ascii?Q?iyBDUWH82fKtxaqQ2usXu96392yCx+PC98HkU0PiDfWyDbzGfDbVkbUib9cu?=
 =?us-ascii?Q?HTHWuW5S27v8+Bs9RKJXZlh54PvWF8SaHIJ5ZNImHHRq7kZza0LbnoQNMlTD?=
 =?us-ascii?Q?yj7Avw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	asUt+9tLTHfhVlostRj8y73/AD6V1n+6AKNHPHXPc8l3eK/HRzuwl+D8HAiHgtNeYU6xKRTfX0OosgpZU1Y5RjVZYTymC2LHXaAGt4Fvt95fKyvitjRp3lneBt1AaxJGuQt9YtSilyRm48WEApQHPbTed94jbR2uHZnC3M8wfsK5FiPBTrvv0s8nTSjZOoF+z3d15E9vvm/Hx0Slb3rhAjLEghy+FzL0VYRNDgNIa1rW9hhPbvRjIcxCsXNMoiRYauiO8sxhk5ed/0ykDb+bfvKE8qJAdCid7ZJNM/51NP/N0CNmDR6DDzxmcTXdPUQF5IqGhs1k40Q1+nLNcZr4LBXZdamCh4FZ73dlMzMUZOGGgJquWUaJlqzBLo5E4Vn59xMC9vfGGOMo3shjBvgWiTeMxunK9iv4+GVxVGgGcTZ18doBF7pGOzq998n+u3bk
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 10:33:54.0751
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7070f4d4-833c-47ba-66ff-08de67c6b92e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB50.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9723

Wasn't following the tab+2 spaces convention throughout the rest of the file.

Not a functional change.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/Kconfig | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 61f58aa829..2ce4747f6e 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -148,20 +148,17 @@ config SHADOW_PAGING
 	default !PV_SHIM_EXCLUSIVE
 	depends on PV || HVM
 	help
+	  Shadow paging is a software alternative to hardware paging support
+	  (Intel EPT, AMD NPT).
 
-          Shadow paging is a software alternative to hardware paging support
-          (Intel EPT, AMD NPT).
+	  It is required for:
+	  * Running HVM guests on hardware lacking hardware paging support
+	    (First-generation Intel VT-x or AMD SVM).
+	  * Live migration of PV guests.
+	  * L1TF sidechannel mitigation for PV guests.
 
-          It is required for:
-            * Running HVM guests on hardware lacking hardware paging support
-              (First-generation Intel VT-x or AMD SVM).
-            * Live migration of PV guests.
-            * L1TF sidechannel mitigation for PV guests.
-
-          Under a small number of specific workloads, shadow paging may be
-          deliberately used as a performance optimisation.
-
-          If unsure, say Y.
+	  Under a small number of specific workloads, shadow paging may be
+	  deliberately used as a performance optimisation.
 
 config PAGING
 	def_bool HVM || SHADOW_PAGING

base-commit: 1ee8b11c1106dca6b8fe0d54c0e79146bb6545f0
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:37:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:37:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225197.1531678 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOeE-00061p-2j; Mon, 09 Feb 2026 10:37:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225197.1531678; Mon, 09 Feb 2026 10:37: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 1vpOeD-00061i-W5; Mon, 09 Feb 2026 10:37:41 +0000
Received: by outflank-mailman (input) for mailman id 1225197;
 Mon, 09 Feb 2026 10:37: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpOeD-0005yj-6F
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:37: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 5b661214-05a3-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:37:39 +0100 (CET)
Received: from DU7P195CA0008.EURP195.PROD.OUTLOOK.COM (2603:10a6:10:54d::35)
 by AM8PR08MB6449.eurprd08.prod.outlook.com (2603:10a6:20b:364::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 10:37:35 +0000
Received: from DB1PEPF0003922E.eurprd03.prod.outlook.com
 (2603:10a6:10:54d:cafe::d6) by DU7P195CA0008.outlook.office365.com
 (2603:10a6:10:54d::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.18 via Frontend Transport; Mon,
 9 Feb 2026 10:37:33 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF0003922E.mail.protection.outlook.com (10.167.8.101) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 10:37:34 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS2PR08MB8381.eurprd08.prod.outlook.com (2603:10a6:20b:558::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 10:36:29 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 10:36:29 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5b661214-05a3-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=hrawf4RVcvw2enicDbCCSuOqk9mheeisnl5LmjDcTKe0E6dqISMOZyILkBOu4GCudzbtP5EUPNZJCbteCS/YhF4M0pW0ZNHFDCQeyhd0d1JSWjjzWahsd+UBzawUm7JLyut0GTQ3EFTDeMTTCGmufSmRURM86TCTYEMwlID3t3ELbZMnkScLL6gw3L0D7QrK13poiepvaSCcy4OGKlYM/Ibce5lB7JkqghyIkLHHLfd06CGtWd/hsyadmdhRvDfPOUc1breJY5Hc+IUdHcdHV4j9q736dOZtgxLzib9P6rGdqcmMKqOApmBVFCUa0TEoF0NzJr3H1Jeug7UX6wyVgQ==
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=5t1eUYfthphS+6r0sL9Y1OI1NN0KV8JI2/mcqgNwvMg=;
 b=n5tj11xwRcorn+Mq1JHT7ZhO5dhoxnslct8K+rw33JcV+UyckVpKfasiUF5SwnDWD8jFNE0nQXMgDcJt6xqlCQZx+kUYQIpyvknc2+ulkbVmY+hdR44XQN8L8UqzpfDc2TQJcug4ijS5Ku40NIjhU9k4sONjO4d2gOj8j8FDbWxLDOMR+TWG8yRyGuu9x85iTwzit4z0LKZdW38v5Y8sC6nnSYlfx5v3MLVQQhx0PISi284UoXEdCX7lqEgQNDBo+CCqjAagz/HrYjy4awVv8q2UCR9w7ootg9eOQT74zzktAP3RV8DX+ZfjOBaEPWxfO+AwkIfxpqG9SdX30BRI8A==
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=5t1eUYfthphS+6r0sL9Y1OI1NN0KV8JI2/mcqgNwvMg=;
 b=SNb+ua+owWLYdPUsAaZ7r+VmbL4Z9uUkr4NF43NApKfKif+7XA5Hxg1y5a0h1x4WCAfN3ed4oV+2NrIo6Msbn/8x7csmP5F+bWQmTTxv+QYjn/Q1Hlc6SLufjLi1LCj/3NZOpMxJQeTcFa/z6H/TZ1Qh9hblRhJMgxeIKO91JpI=
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=T8SWMcSMrwh9jGM5cFzRSbrrK9pP04WAlDhl0QGclUO+iZlIPDNtfZv1E4NJ78UeDZ4tkYr4Q3wNNwz6MbjHrPTpryCI03B1JBlyRe5AxWyEcvTKpRKT0vYKG8Q9v6E6TKyOq8Cm/IkLckfzgOSNwSjuMfr8FcA+efLiGKSbW51Ei4P+Yk+owJfd/Svu8YOlSjtaligr8cvOiokX6cMQTOjCl1h1nXtenQUHtfm0/H90YvYmdULAYxDKSyX/Frsx0Fg2XKAiSTGZk33IGaoraOC5opUmVgngOwunxr+BacMdZIwYtIr66QTvrbiu/H7R0Hvbf9CSZxPBSy2UQPj/BQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5t1eUYfthphS+6r0sL9Y1OI1NN0KV8JI2/mcqgNwvMg=;
 b=gbdhpFidqcvHrs0ygmhedqYtiMZvliq+QN64ERF7Op3l1/aaxWdNKZis/eKnnaelRcScD8M7Piqo2adYz6HOV3cL4/rPpZoGNoeVx1ZUKPoo6tTVd9PNRfp7/jMQen2SLBJjvsyJlCRGlsmTUrwFGnGP+XOtY2uIIkq37yYXaA2CpO506UINIimrEY3absYJuCaVBTkKDpe7poLjfRuslSnrcbxB35164ML0+/R8TY+Keu7cMJWwPYU37b23bbpVu79szYlYFgNrPxqdrmyUoX/GG4fdBNI3z/iJe3r4OGv8dAQ/sx3cVTT8Apy1VLmYzWzO8iOAUvui3tQIxqX5Tg==
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=5t1eUYfthphS+6r0sL9Y1OI1NN0KV8JI2/mcqgNwvMg=;
 b=SNb+ua+owWLYdPUsAaZ7r+VmbL4Z9uUkr4NF43NApKfKif+7XA5Hxg1y5a0h1x4WCAfN3ed4oV+2NrIo6Msbn/8x7csmP5F+bWQmTTxv+QYjn/Q1Hlc6SLufjLi1LCj/3NZOpMxJQeTcFa/z6H/TZ1Qh9hblRhJMgxeIKO91JpI=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, 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: Re: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
Thread-Topic: [PATCH v4] xen: Add Darwin.mk for GNU toolchains
Thread-Index:
 AQHcl4TDvkxax6jik0exjnZrMlGqw7V17BsAgAQQvwCAABwvgIAACZqAgAAEx4CAAAQwAIAABTaA
Date: Mon, 9 Feb 2026 10:36:29 +0000
Message-ID: <0586655E-1A20-41B9-BC97-04FE305E5933@arm.com>
References:
 <ff14a313c6ec9b487263e8f823c96533bb70fe1d.1770394705.git.bertrand.marquis@arm.com>
 <aYYkAvGQygf2eNI7@Mac.lan> <28DF7F1E-BAA3-49AC-8A53-75100BAE74B5@arm.com>
 <aYmksdxh5PM7IHDN@Mac.lan> <d43840ca-4e06-45c4-853d-bd666ea06bc0@suse.com>
 <C851E211-4B56-489A-8F06-6512D785B611@arm.com>
 <51a91133-13d0-413a-b8fb-58b9d3018499@suse.com>
In-Reply-To: <51a91133-13d0-413a-b8fb-58b9d3018499@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS2PR08MB8381:EE_|DB1PEPF0003922E:EE_|AM8PR08MB6449:EE_
X-MS-Office365-Filtering-Correlation-Id: 3c029d9e-1a4e-4a29-9222-08de67c73c6e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?dTNXczV2ZHF2ZEMwVmVwUkhWSXJYdGF6c29FWW9JV2loMTRCMWFpTFRabm5y?=
 =?utf-8?B?RVkwU0NhbW5GWWhVU3JUVU1rczU3Smx6WkNTTmRSWW02MUR0K0MxTW5kR2tJ?=
 =?utf-8?B?aEo4QmloSGszZ2wrYVJOVnNTMXIrS0oyc1VYcXc4Zmo2OFRXSnNNTDV5b2t3?=
 =?utf-8?B?ejMydUNnWW5KMk9YNmxSWDRxejEvUk9NZlIzWUtiK2pweHZydW9VbGNZd3Br?=
 =?utf-8?B?bVRIM2YzOGVaRE5Na3RYeWJoVE4xUnJjaDBjRG5weXhudkVmZEROd2h3Ni82?=
 =?utf-8?B?RTJDQkFTSW1HYkhqdkVZSHZNTVpoM2lvV3VXRThzZWNuTTQrek9XTXBJSkZw?=
 =?utf-8?B?UjJFeWNTRmFLbjg2UC9uVEhYblViUkFselhHMWJCUXhyNFVER0dmMkNYRTQr?=
 =?utf-8?B?eldEOFNBS05Zekx3cm9jclo0bnc0a1kySmpXcnBkdWV4YnV3SmFpTHlZRGM2?=
 =?utf-8?B?YW1OdUludEF1aXRIdU1aVXo1eStXc0Q3SmpsNitMQllSY1ZreUhFYTBRZUYy?=
 =?utf-8?B?aExacHhCQlp3SzNmM3ZISkhrWmhmTk4zRXJ1azVIMmc1MUhNb2dzNkxQM09Z?=
 =?utf-8?B?aDJkQ2F0WTZ4anlaMDY4WVNLbzZsNVRZMjJKVXV1NWpFUUJFZUltRERheEF3?=
 =?utf-8?B?cUY4bkU1d25LTUNvY1YxblB6dzlLVy93YW5KNzh4UjJTS3ZTdW50T2xacDZ4?=
 =?utf-8?B?UUNiWEhyNDVBenMxYk4rOGs4b1Zmd0V4c042M25zelg3Y0VNODIrRGxWTE54?=
 =?utf-8?B?L2VWNWZZMG4xL1JXZ2dEbnlwYm9qeWFjL1NGa0ZHbW5zbWZxa2R6UUR1MWU4?=
 =?utf-8?B?QmtDdWdXY085RllYbEpDNTRKWUZsK0dGWmtIdStYZzd4RzRTb3NaTFJDQW9p?=
 =?utf-8?B?YndsVjFhdVFCcFdkNC96Z29wN3hBdExaU3VXcTd4WGozYm1FRW42K3E1aEh4?=
 =?utf-8?B?cXB2WVMrQTF3bkRlems1UGU2SGxPOFpkU0QzcTEreUV5c05HWk1ROVhjR1ZV?=
 =?utf-8?B?akJrK3QyK3lBZy9WOHh0ZnJ4V1dyK3BQcG03R1I1ZDZGRlRKUkVqNEhyVWdR?=
 =?utf-8?B?aExQdUliRUtOeVkxbjJGVmxxU29RS1lUbzB5ZGF3a2wrRU9WUmdlRzQ2Q2w3?=
 =?utf-8?B?MGRIYUd2VzhSalFxeHRNajdmWk4zYjJxNzVERHR6U0lSZ21HYUxTalhkTnZC?=
 =?utf-8?B?U2NaR0FUTmJRb3Fabnk4c0tRclJtWlJla2dZaUdvcFNJekZ5RHhYbXF4M29v?=
 =?utf-8?B?c3hRTzVta1FQRDlxdXFRK0psUk1PMEcrazNXQjZ3YlFmakhZd1V0UzJTclho?=
 =?utf-8?B?WjF2R0lJNDc3c2xWNTViempnd3VGYzRmL2loQVgxaDBCSHpKVStSQnpkRStm?=
 =?utf-8?B?TVUyR29GTFFianA0K3NwTTFaTGpZUS9XbTZXRmJneG9EWW56NXAyeTBBTzA2?=
 =?utf-8?B?ZU1VUGYzREFFVVhqRk10VVZBbWFoaUc4MUlhYVpTYnBSd1JvRmJGMEs1MnZq?=
 =?utf-8?B?RTA5MTc3NUt6ZHdvUTA0YXkzd0MzWXIzUHg2d3BTdWtGYk53bDkwTS8yTCtF?=
 =?utf-8?B?VGo0aGc5OXNJdzBkUk1CZTN0ZXR6UW1sTS9OaWVHbjliMGhMa0hReGdzMDNR?=
 =?utf-8?B?UGwveStLSkF3K2MvKzNPTHBlZmlqZko5NThEd3RoQnIwbURETi9uQmEzeWNG?=
 =?utf-8?B?K0d2OExsRTBENXk5emZ4dC8yRkRLdTkxT2UrTDF4aEFZc1JOUnRNaFZlYm1E?=
 =?utf-8?B?U0lTM1V3UTl0THlOTGQvM0tJRnQvN1hRV2RYSVYvclYyTnNtUlg2TThYK1Fv?=
 =?utf-8?B?L0dIcTYvYTNJZDBhaXBiUFBuZUFHNXFGQ3RLYkloWEpiS3NhL3ZVckZPYjE3?=
 =?utf-8?B?NEs5emt2cXVoRUhnaERFSGNaQUR5T0NkNllBVG5kR0hsQ09qTWxNMS8xMkwz?=
 =?utf-8?B?WkxaN0lJSlZhRTBDN2RkbEFwQ2NWRy9Cd3Q1VStyVDBiQVpqU1J3NzBDL0V5?=
 =?utf-8?B?NGRwa2dkem9FWVMxakxJbnhyZEUzWXNFbTludHp5VENOanJpZ3h3Qm9tMnNR?=
 =?utf-8?B?cTlsRkEraVhtcTN5Wkh5emtLMlMxOXpjQTNqWVNnYmxRdmg4bHpIQ29GamVv?=
 =?utf-8?B?VjlBby9YOS9iMTVQYmdmOEtqTzNZKzU1RU5MSjJFTEJrbk9iMUNPU2NFdFNK?=
 =?utf-8?Q?VLFPG2Ifjex0cl0Om5G2F7E=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <50147FEBE812FF468E194E162D664F6F@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8381
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF0003922E.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ec03ea67-5847-428e-fd30-08de67c715bd
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|35042699022|376014|14060799003|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dkV5dUNWWGhQeVU4MVF5UDEzYjJjWk0wbzlpNFVsOUhuZllyWlhBWmxSdjVG?=
 =?utf-8?B?aFlMREtuZm4zMjV6TGNWUUhrUkdyY3ludXZhNUU4K1YvL2dIK3BaK3hGam5W?=
 =?utf-8?B?MGZOeDNWVFp2WEtocnRrc1hmNVVreGJOMTh5MzZDT0dlTEJlZi9xbXJabXo2?=
 =?utf-8?B?cXlWcVRYU3J1QmJoSThSU3VremdGYU5vaHZURHRTYzFSQW1QT3l6OCtiQmVv?=
 =?utf-8?B?YU51bGlYN0prSUdwOXFwajFlN29qTkFjWnNJN2dBc3hkYldjbmRiR3FBQ3ps?=
 =?utf-8?B?TmxaczBCMTFIQVduMXVibGJOOGJTSVlNUEtCNmJvZDA4MFFaNktTM2RDTENq?=
 =?utf-8?B?YjJhUFdPRkNoazhqdkxKMmhKNUZGcUNZSWQxVkdmbFl2alluRlcwUEs1L05H?=
 =?utf-8?B?bHJnUllaRjV4UEhUWXdXcTlaMVd1SHZydkZuVjMrQ3JHSktFREx6b2pLaG9I?=
 =?utf-8?B?dTRDWElXQnd0d3VCOG1aa1Y5cDc5SDM2Q0ZaNXVhdmZTQ0JCd1o5ZTZDWTFF?=
 =?utf-8?B?czhqNHBzbUVvbSs4VExHT2pNeUx6dU11Y1BPUGdHU1VVbDdEWDBVc0NzelIz?=
 =?utf-8?B?TTBpakZ6YkhKS2NtdjlMMkhyL2o2cU5vRFlwWXg3N2VzWGFZcTFMWW55S3pV?=
 =?utf-8?B?cHlTbzZOd0FmeHFKTkxUVy9nckloWE1GbkJMOElkSzdjQnhOcSs2K2kyeXkx?=
 =?utf-8?B?L1BjbjRyUGE0VFdxS0EvUGNKS0dmbWJ2RndyOXdSdXc2Z3N1OUVhNy93N1Fi?=
 =?utf-8?B?QjF2anZjaWtUaVpVOHUzME4xbzNma1orMFRKNXNBbDg2K09pRzZuRmRNemFr?=
 =?utf-8?B?aDcreHNMUnFLQXFyc3Fjc1FzSTVsWXdaVWFPL2p4aUdpOHFkR0UraEdKeGdL?=
 =?utf-8?B?MWwvdkt4OTFZOU85MCtUbHExeHh2RWVOQm5LK0tKd1JicVFDZDJCdnlQRC92?=
 =?utf-8?B?MStZV3BLYlFWSDZmQi84MkxLYU5tNHBRK1dvQ0YxUytVTXJhYzRSem9UdkU3?=
 =?utf-8?B?Um1aNVJHYVhaNDlVcUpVbTY0QTFyTk9yS2NPanVhWG5pcmxxcDZKL3hSTjFZ?=
 =?utf-8?B?OFVxZXFUR21MNFZvYzZtR0w5ZFlxTjVzNENsemZDRzNqMWdZTEh1dlJKQkJ6?=
 =?utf-8?B?UDZUaFhHeVhLK3ErM3RWcUJoRVIwN2x3dlZCVWFvU3RXc3pEekYvTFM2aDJm?=
 =?utf-8?B?c1Z0SDJwZjdvQ08rREhnc2hLQ3lVM3M2UkovYzl5U1lHVnVSNUszYmlrS2NX?=
 =?utf-8?B?bldRcTZDZWV5UkVYSXJ5TnpzcEtaU01oK0JWNjBSNHpEZG1Kd0x0V0VVd1h1?=
 =?utf-8?B?TWRTUFpPOGlUb3ZDZ05oT1ZGd2tacGJZMCtML01iRXlWd3Uzbm1KYlVUeFpv?=
 =?utf-8?B?UGxIUkdYNUppNUJRMkdRSENub1dhY3hXL0Zna1VTVzNFVDArZDVaYXdsVlZY?=
 =?utf-8?B?c3BZc0FDZGtnSDEvSnBqcW4zdWJadEZ4NHVPSzhqTmJaZGFzcVlxVEZHRkZQ?=
 =?utf-8?B?NFZxQkdFNFJ3RnNVWFhNUDE1TzdOVFdHMnNMSUZqZ2xIeHBQQUNORklxaUU0?=
 =?utf-8?B?N25SMkI4R05UUkNHZ3FsTUNsdGorajJBaHZYUDAxMG1MN0YrRThoU2dKbThn?=
 =?utf-8?B?Y1l4MGFrSXo4UXQzMk55ZVpFYU5XY0YrRlZHWGI1cTZqNXFBMEQ2dFEzZ1JO?=
 =?utf-8?B?ODlXMkZDMmd5cXBDTGhqcTdUZWg2WStCYkRwRlprNVkyODlkQlIrVWRvN0JG?=
 =?utf-8?B?V2oraVBvMXI5SWpDMkdrdDgwVFFmaU9XZWJKR3k4UzRIckcwZVNUMkRKVFBQ?=
 =?utf-8?B?VHdPVGl4Vlh6Mk8ybllPT0hsb1NVRzJlckNDdlFHTDNiYlZHaVZHYzFEdjFQ?=
 =?utf-8?B?UWt2SWRDV2F4K0xGOEt5Y3FHYUZWWHRxYUhHUXRNOFRQNVRyR0YyeFlOcUhw?=
 =?utf-8?B?eGZsakxjYWM0ZnZnc1B1SmorSm9XWWNQdmJQRE9zWW1kSC9hWjFGOU1XQjMy?=
 =?utf-8?B?Kytiem1BWFZUTnZ6RGd2R2NEK0x6ZnE0SUtsT2xLdUp5Y0RabUZOaytkVEFw?=
 =?utf-8?B?bjZqMkRkZGRhVlBMOFU4Z2NBd3B4SmY1UGlaUHhlWUk2bHBqaitvTHJQd3FB?=
 =?utf-8?B?MFFwUFkraHVUMGI3dnJUQVJ4dC9zTkZuTDZybDhKNTlVSjd0MU9qNXVhZzMx?=
 =?utf-8?B?d2FjbVNzN2JwMExPNmxPSUw3Qkl2RHgvVFhXOVBjTk9vT2s0aHdjZ1E1YWpP?=
 =?utf-8?B?c0xHclZMUTN4UmZFVXBKbXkxa2NnPT0=?=
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)(376014)(14060799003)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	EEAbONlHEoGAWCXqcBaqr0IpSocfRpgl//ZOoMgjLapq1k4yWvirkOwTadfnm1RgEtj8rVUj5E4dHCaqbbfFDSL5dwhBqxqI2SocAELoQWE3KnqyetiFKFo21Tvc1E17WgsGUEtfPKuD+q5wZMe7kiwE+Wu38ON9+oy8zrnd4m2k6dq1PYt9o5o/+dAXlXz2COBTZPk33a8qxtJOWmgcfrrA7fJ1FY9U+qTDNS+N4C0RdV0y+wN8E7YxzVD6GzTc5UK6DrY6zRTBXCb8LSZvoLoMojgYJqFJWDv3Z6gjS3gKWgggSeb4JEfxyofh1aic8e+Hmyonu4wMDejzRF+ViyJpo+/dPpAC4Gr38o9Qv/uYMqsRS492FA1KYa8mYPrU6/VU1SrapBH4QdBJeypQe89ooIeNiQ1xMhBWcUblW9auEG6uLYlX/7wfrOXqtQCm
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 10:37:34.2102
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c029d9e-1a4e-4a29-9222-08de67c73c6e
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:
	DB1PEPF0003922E.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6449

SGkgSmFuLA0KDQo+IE9uIDkgRmViIDIwMjYsIGF0IDExOjE3LCBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDkuMDIuMjAyNiAxMTowMiwgQmVydHJhbmQg
TWFycXVpcyB3cm90ZToNCj4+IEhpIEphbiwNCj4+IA0KPj4+IE9uIDkgRmViIDIwMjYsIGF0IDEw
OjQ1LCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+IHdyb3RlOg0KPj4+IA0KPj4+IE9u
IDA5LjAyLjIwMjYgMTA6MTEsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+Pj4+IE9uIE1vbiwg
RmViIDA5LCAyMDI2IGF0IDA3OjMwOjMwQU0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6
DQo+Pj4+PiBIaSBSb2dlciwNCj4+Pj4+IA0KPj4+Pj4+IE9uIDYgRmViIDIwMjYsIGF0IDE4OjI1
LCBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6DQo+Pj4+Pj4g
DQo+Pj4+Pj4gT24gRnJpLCBGZWIgMDYsIDIwMjYgYXQgMDU6MjE6NDRQTSArMDEwMCwgQmVydHJh
bmQgTWFycXVpcyB3cm90ZToNCj4+Pj4+Pj4gWGVuIGRvZXMgbm90IHByb3ZpZGUgYSBEYXJ3aW4g
YnVpbGQgY29uZmlndXJhdGlvbiBmb3Igc2VsZWN0aW5nDQo+Pj4+Pj4+IEdOVSB0b29sIGRlZmlu
aXRpb25zLiBPbiBtYWNPUywgdGhlIHRvb2xzIHdlIHVzZSBhcmUgZWl0aGVyIEdOVQ0KPj4+Pj4+
PiBjb21wYXRpYmxlIG9yIHdlIG9ubHkgcmVseSBvbiBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgTWFj
IE9TLCBzbw0KPj4+Pj4+PiB1c2luZyB0aGUgR05VIHRvb2wgZGVmaW5pdGlvbnMgaXMgYXBwcm9w
cmlhdGUuDQo+Pj4+Pj4+IA0KPj4+Pj4+PiBBZGQgY29uZmlnL0Rhcndpbi5tayB0byBpbmNsdWRl
IFN0ZEdOVS5tayBhbmQgZm9yY2UNCj4+Pj4+Pj4gWEVOX0NPTVBJTEVfQVJDSD11bmtub3duLCBl
bnN1cmluZyBEYXJ3aW4gYnVpbGRzIGFsd2F5cyBmb2xsb3cNCj4+Pj4+Pj4gdGhlIGNyb3NzLWNv
bXBpbGUgcGF0aCBhcyB3ZSBkZXBlbmQgb24gdGhlIExpbnV4IEFCSSBzbyBjb21waWxpbmcNCj4+
Pj4+Pj4gb24gTWFjIE9TIGlzIGFsd2F5cyBhIGNyb3NzIGNvbXBpbGF0aW9uIGNhc2UuDQo+Pj4+
Pj4+IA0KPj4+Pj4+PiBBbiBleGFtcGxlIG9mIGhvdyB0byBidWlsZCB0aGUgaHlwZXJ2aXNvciBm
b3IgYXJtNjQgb24gTWFjIE9TDQo+Pj4+Pj4+ICh0b29scyBjYW5ub3QgYmUgYnVpbGQgZm9yIG5v
dykgdXNpbmcgYSB0b29sY2hhaW4gZnJvbSBicmV3Og0KPj4+Pj4+PiAtIGJyZXcgaW5zdGFsbCBh
YXJjaDY0LWVsZi1nY2MgYWFyY2g2NC1lbGYtYmludXRpbHMNCj4+Pj4+Pj4gLSBjZCB4ZW4NCj4+
Pj4+Pj4gLSBtYWtlIFhFTl9UQVJHRVRfQVJDSD1hcm02NCBDUk9TU19DT01QSUxFPWFhcmNoNjQt
ZWxmLSBIT1NUQ0M9Y2xhbmcNCj4+Pj4+PiANCj4+Pj4+PiBJbnN0ZWFkIG9mIGBjZCB4ZW5gIEkg
d291bGQgdXNlIGBtYWtlIHhlbiAuLi5gLg0KPj4+Pj4gDQo+Pj4+PiBBY2sgdGhlICdjZCB4ZW4n
IGxpbmUgaXMgdXNlbGVzcyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuDQo+Pj4+PiANCj4+Pj4+PiAN
Cj4+Pj4+Pj4gDQo+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRy
YW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+Pj4+PiANCj4+Pj4+PiBBY2tlZC1ieTogUm9nZXIgUGF1
IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQo+Pj4+Pj4gDQo+Pj4+Pj4gT25lIGNvbW1l
bnQgYmVsb3cuDQo+Pj4+Pj4gDQo+Pj4+Pj4+IC0tLQ0KPj4+Pj4+PiBDaGFuZ2VzIHNpbmNlIHYz
Og0KPj4+Pj4+PiAtIHNldCBYRU5fQ09NUElMRV9BUkNIIHRvIHVua25vd24gaW5zdGVhZCBvZiBE
YXJ3aW4NCj4+Pj4+Pj4gLSBsaXN0IGJpbnV0aWxzIGFzIGEgZGVwZW5kZW5jeSB0byBpbnN0YWxs
IGluIGJyZXcgaW4gY29tbWl0IG1lc3NhZ2UNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IENoYW5nZXMgc2lu
Y2UgdjI6DQo+Pj4+Pj4+IC0gU3ViamVjdCB3YXMgInhlbjogQWRkIG1hY09TIGh5cGVydmlzb3Ig
YnVpbGQgY29uZmlndXJhdGlvbiINCj4+Pj4+Pj4gLSBVcGRhdGUgRGFyd2luLm1rIGNvbW1lbnRz
IHRvIG1vcmUgYWNjdXJhdGUgdmVyc2lvbnMgKEphbikNCj4+Pj4+Pj4gLSBSZW1vdmUgdGhlIGJ1
aWxkLW9uLW1hY29zIGhlbHAgYXMgd2UgaGF2ZSBubyBkZXBlbmRlbmN5IG9uIGFueXRoaW5nDQo+
Pj4+Pj4+IGNvbWluZyBmcm9tIGJyZXcgYW55bW9yZSBhbmQgdGhlIHRvb2xjaGFpbiBjYW4gYmUg
cmV0cmlldmVkIGJ5IGxvdHMgb2YNCj4+Pj4+Pj4gb3RoZXIgc29sdXRpb25zIHRoYW4gYnJldyBv
biBtYWMgb3MuIFN3aXRjaCB0byBhIHNpbXBsZSBkb2MgaW4gdGhlDQo+Pj4+Pj4+IGNvbW1pdCBt
ZXNzYWdlIGluc3RlYWQNCj4+Pj4+Pj4gLS0tDQo+Pj4+Pj4+IGNvbmZpZy9EYXJ3aW4ubWsgfCA3
ICsrKysrKysNCj4+Pj4+Pj4gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKQ0KPj4+Pj4+
PiBjcmVhdGUgbW9kZSAxMDA2NDQgY29uZmlnL0Rhcndpbi5taw0KPj4+Pj4+PiANCj4+Pj4+Pj4g
ZGlmZiAtLWdpdCBhL2NvbmZpZy9EYXJ3aW4ubWsgYi9jb25maWcvRGFyd2luLm1rDQo+Pj4+Pj4+
IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uMTc2YjI3
ZWFjNjc2DQo+Pj4+Pj4+IC0tLSAvZGV2L251bGwNCj4+Pj4+Pj4gKysrIGIvY29uZmlnL0Rhcndp
bi5taw0KPj4+Pj4+PiBAQCAtMCwwICsxLDcgQEANCj4+Pj4+Pj4gKyMgVXNlIEdOVSB0b29sIGRl
ZmluaXRpb25zIGFzIHRoZSB0b29scyB3ZSBhcmUgdXNpbmcgYXJlIGVpdGhlciBHTlUgY29tcGF0
aWJsZQ0KPj4+Pj4+PiArIyBvciB3ZSBvbmx5IHVzZSBmZWF0dXJlcyB3aGljaCBhcmUgc3VwcG9y
dGVkIG9uIE1hYyBPUy4NCj4+Pj4+Pj4gK2luY2x1ZGUgJChYRU5fUk9PVCkvY29uZmlnL1N0ZEdO
VS5taw0KPj4+Pj4+PiArDQo+Pj4+Pj4+ICsjIFhlbiB1c2VzIExpbnV4J2VzIEFCSSBzbyB3ZSBh
cmUgY3Jvc3MgY29tcGlsaW5nIG9uIE1hYyBPUy4NCj4+Pj4+PiANCj4+Pj4+PiBIbSwgaXMgdGhp
cyBhY3R1YWxseSBmdWxseSB0cnVlPyAgV2hhdCdzIHRoZSBMaW51eCBBQkkgZXhhY3RseSBoZXJl
Pw0KPj4+Pj4+IA0KPj4+Pj4+IEZyZWVCU0QgYnVpbGRzIFhlbiBuYXRpdmVseSwgYW5kIGl0J3Mg
bm90IHVzaW5nIHRoZSBMaW51eCBBQkkuDQo+Pj4+Pj4gRnJlZUJTRCB1c2VzIG5vIHNwZWNpZmlj
IC10YXJnZXQgdG8gdGhlIGNvbXBpbGVyIGludm9jYXRpb25zLCBhbmQgdGhlDQo+Pj4+Pj4gbGlu
a2VyIGVtdWxhdGlvbiBpcyBzZXQgdG8gZWxmX3g4Nl82NF9mYnNkLg0KPj4+Pj4+IA0KPj4+Pj4+
IEkgdGhpbmsgdGhlIHBvaW50IGhlcmUgaXMgdGhhdCB0aGUgdG9vbGNoYWluIG11c3Qgc3VwcG9y
dCBidWlsZGluZyBFTEYNCj4+Pj4+PiBvYmplY3RzIC8gaW1hZ2VzLCBiZWNhdXNlIHRoYXQncyB0
aGUgYmluYXJ5IGZvcm1hdCBzdXBwb3J0ZWQgYnkgWGVuLg0KPj4+Pj4+IFdoZXRoZXIgaXQncyBM
aW51eCBFTEYgb3IgRnJlZUJTRCBFTEYgZG9lc24ndCBtYWtlIGEgZGlmZmVyZW5jZSBmb3INCj4+
Pj4+PiBzdGFuZGFsb25lIGVudmlyb25tZW50cyBsaWtlIHRoZSBYZW4ga2VybmVsLg0KPj4+Pj4g
DQo+Pj4+PiBUaGlzIGZpbGUgaXMgYWxzbyB1c2Ugd2hpbGUgY29tcGlsaW5nIHRoZSB0b29scyBh
bmQgZm9yIHRob3NlIHlvdSBkZWZpbml0ZWx5DQo+Pj4+PiB0byBjcm9zcyBjb21waWxlIGFzIHRo
ZXkgZGVwZW5kIG9uIExpbnV4IEFCSS4NCj4+Pj4gDQo+Pj4+IEknbSBub3QgYW4gZXhwZXJ0IG9u
IHRoaXMgYXQgYWxsLCBidXQgSU1PIHRoZSB0b29scyBkb24ndCBkZXBlbmQgb24NCj4+Pj4gdGhl
IExpbnV4IEFCSSBhdCBhbGwuICBBbnlvbmUgY2FuIGFkZCB0aGUgbWluaW1hbCBPUy1zcGVjaWZp
YyBiaW5kaW5ncw0KPj4+PiByZXF1aXJlZCBmb3IgdGhlIHRvb2xzIHRvIHdvcmsgb24gZW52aXJv
bm1lbnRzIGRpZmZlcmVudCB0aGFuIExpbnV4Lg0KPj4+PiBXZSBjdXJyZW50bHkgaGF2ZSB7TmV0
LEZyZWV9QlNEIGFuZCBMaW51eC4gIEluIHRoZSBwYXN0IHdlIGFsc28gaGFkDQo+Pj4+IFNvbGFy
aXMsIGJ1dCB0aGF0IGhhcyBiaXQgcm90dGVuLg0KPj4+PiANCj4+Pj4+IE1heWJlIHRoYXQgd29y
a3Mgb24gQlNEDQo+Pj4+PiBidXQgaSBkb3VidCB0aGlzIHdvdWxkIGJlIHRoZSBjYXNlIG9uIG1h
YyBvcy4NCj4+Pj4gDQo+Pj4+IEkgZG91YnQgd2Ugd291bGQgZXZlciBoYXZlIGFueSBuZWVkIHRv
IGJ1aWxkIGFuIE9TWCBuYXRpdmUgdG9vbGNoYWluLA0KPj4+PiBhcyBpdCdzIHVubGlrZWx5ICg/
KSB0aGF0IHdlIHdpbGwgZXZlciBnZXQgWGVuIHN1cHBvcnQgaW4gdGhlIERhcndpbg0KPj4+PiBr
ZXJuZWwuDQo+Pj4gDQo+Pj4gSWYgRGFyd2luIGhhcyBzb21lIHdheSB0byBsb2FkICJtb2R1bGVz
IiAoZS5nLiBkcml2ZXJzKSBpbnRvIHRoZSBrZXJuZWwsIGl0DQo+Pj4gbWF5IGluIHByaW5jaXBs
ZSBiZSBwb3NzaWJsZSB0byBydW4gT1NYIGFzIGEgSFZNLURvbTAsIHdpdGggYSBYZW4gZHJpdmVy
DQo+Pj4gbG9hZGVkIHNlcGFyYXRlbHkuIFRoYXQncyBmYXIgZmV0Y2hlZCwgSSBrbm93Lg0KPj4+
IA0KPj4+Pj4gTWF5YmUgd2UgY291bGQgc2ltcGxpZnkgdGhlIHNlbnRlbmNlIHRvIG5vdCBzYXkg
YW55dGhpbmcgd2UgYXJlIHVuc3VyZToNCj4+Pj4+IA0KPj4+Pj4gIyBDcm9zcyBjb21waWxlIG9u
IE1hYyBPUw0KPj4+Pj4gDQo+Pj4+PiBUZWxsIG1lIGlmIHRoYXQgd29ya3MgZm9yIHlvdSBhbmQg
aSBjYW4gc3VibWl0IGEgdjUgb3IgdGhpcyBtaWdodCBiZSBwb3NzaWJsZSB0bw0KPj4+Pj4gZml4
IG9uIGNvbW1pdC4NCj4+Pj4gDQo+Pj4+IEknbSBmaW5lIHdpdGggaXQsIEkgd291bGQgbGlrZSB0
byBoZWFyIEphbidzIG9waW5pb24uDQo+Pj4gDQo+Pj4gQXMgbG9uZyBhcyBpdCdzIGNsZWFyIHRo
YXQgYWxsIG9mIHRoaXMgaXMgb25seSBhYm91dCBidWlsZGluZyB0aGUgaHlwZXJ2aXNvcg0KPj4+
ICh3aGljaCBkb2Vzbid0IGxvb2sgdG8gYmUgdGhlIGNhc2UgcmlnaHQgbm93IGJleW9uZCB0aGUg
ZXhhbXBsZSBnaXZlbiBpbiB0aGUNCj4+PiBjb21taXQgbWVzc2FnZSwgd2hpY2ggbWF5IGJlIHRh
a2VuIGFzIHJlYWxseSBvbmx5IGFuIGV4YW1wbGUpLCB0aGF0J3Mgb2theQ0KPj4+IFsxXS4gSSdk
IHN0aWxsIHByZWZlciB0byBtZW50aW9uIHRoZSBTVlI0IEFCSSBoZXJlLCB0aG91Z2gsIHRvIGF0
IGxlYXN0DQo+Pj4gc29tZXdoYXQgZXhwbGFpbiB0aGUgImFsd2F5cyBjcm9zcyIgYXNwZWN0Lg0K
Pj4+IA0KPj4+IEkgY2FuIG1ha2UgZWRpdHMgd2hpbGUgY29tbWl0dGluZywgYnV0IEknbSB1bnN1
cmUgd2hldGhlciB0aGF0J3Mgd2FudGVkIGluDQo+Pj4gdGhpcyBjYXNlLg0KPj4gDQo+PiBJIHdv
dWxkIHN1Z2dlc3Q6DQo+PiANCj4+IENyb3NzIGNvbXBpbGUgb24gTWFjIE9TLCBvbmx5IGh5cGVy
dmlzb3IgYnVpbGQgaGFzIGJlZW4gdGVzdGVkLCBubyB0b29scw0KPj4gDQo+PiBQbGVhc2UgZG8g
dGhlIGZvbGxvd2luZyBlZGl0cyBvbiBjb21taXQgaWYgdGhhdCdzIG9rIGZvciB5b3UgOg0KPj4g
LSByZW1vdmUgJ2NkIHhlbicgZnJvbSBjb21taXQgbWVzc2FnZQ0KPj4gLSB1c2UgcHJldmlvdXMg
Y29tbWVudCBpbiBEYXJ3aW4ubWsNCj4gDQo+IFRoZXJlIGhhdmUgYmVlbiBzZXZlcmFsICJwcmV2
aW91cyIgY29tbWVudHMgdGhlcmUsIHNvIEkgdGhpbmsgaW4gdGhpcyBjYXNlDQo+IGl0IG1heSBp
bmRlZWQgYmUgYmV0dGVyIC4uLg0KPiANCj4+IE90aGV3aXNlIGhhcHB5IHRvIHN1Ym1pdCBhIHY1
DQo+IA0KPiAuLi4gaWYgeW91IGRvIHRoaXMuIEknbSBzb3JyeSwgaXQncyBxdWl0ZSBhIGJpdCBv
ZiBiaWtlLXNoZWRkaW5nIG9uICJtZXJlbHkiDQo+IGNvbW1lbnRhcnksIHlldCBJIHRoaW5rIHdl
IHdhbnQgdG8gYXZvaWQgbWlzbGVhZGluZyBwZW9wbGUuDQoNCm9rLg0KDQpDaGVlcnMNCkJlcnRy
YW5kDQoNCj4gDQo+IEphbg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:41:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:41:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225204.1531687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOhp-0007co-I3; Mon, 09 Feb 2026 10:41:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225204.1531687; Mon, 09 Feb 2026 10: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 1vpOhp-0007ch-Es; Mon, 09 Feb 2026 10:41:25 +0000
Received: by outflank-mailman (input) for mailman id 1225204;
 Mon, 09 Feb 2026 10: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpOhn-0007cb-Vt
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:41:23 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id def62875-05a3-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:41:21 +0100 (CET)
Received: from CH0P221CA0044.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::27)
 by IA1PR12MB6233.namprd12.prod.outlook.com (2603:10b6:208:3e7::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 10:41:16 +0000
Received: from CH3PEPF00000009.namprd04.prod.outlook.com
 (2603:10b6:610:11d:cafe::3c) by CH0P221CA0044.outlook.office365.com
 (2603:10b6:610:11d::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 10:41:21 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF00000009.mail.protection.outlook.com (10.167.244.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 10:41:16 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 04:41:14 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: def62875-05a3-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CQ7Wa9xhTh+UC1AwJNTwdZKU99vOp/+KTNnV/ovOrwpTnA4bq5TuniWi/s4yGK+AsS0bD2ZqJx3iK/uS1BCiqOo97dw1iHZVewON6CyhBQKWQ8X7amNYJhibdrxALGYjxWrg5QXT855uZkihW0wK5vLCuuc0OtOlPUnW0+tdk1UPxqxy5vLvAWo2xbui/JVBhGBtt54m88G4DYnU8MMUf+aZbIake1sMfF0TGkDSUYm/hVnCYdIqPy2DquqG+qIESUPsj1Aq2rZxNpucAC4USCn7HZiYlAyqnSuVj7opAgFNxdYk2Atyt91riitGQ9XmrVE1yyzNQS7W6W5mBwe3Tg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eAJGuOmwxNu4QZ9hKqgRV0cRJ+U0QxWyMRiYMd+1e5Q=;
 b=JrbAzhpRzSSeP+jSl2NgcjyMuKdG87wUMmZ1/WpDI7qBVpNC0SboaxykHrabgbgWf+fROAw1m1mWg3ZuNuShyga+uaVe8XGT4FrwSkbGQ0awcMxnf3W69Kjj9sUpylca3uqYR8IvUdvXMlh/RzpTiUZG+akxrAhLxkbfbw2WJzdanbE+LVC/7+nki79rfv0Ox9XU0icX+kAU1ehlT3inESmjximPL7yzjwdLfrINGljtk06N/sfRDx0KihVDM/9Dt0fW+bP/IHm9aE4dkWm7t6hmGRrbMJq7q+9bKF9UwpQa0HGNNds9PdSHI3l2Lm9cr4texx50IYZ6gSFDCiAKYA==
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=eAJGuOmwxNu4QZ9hKqgRV0cRJ+U0QxWyMRiYMd+1e5Q=;
 b=dSrOpzp16LhdwYriHD07klifCTIAmzm6C3d01Umr8lVBL3ZVlH+kpZoIWe5lk37QIvLqF+21g5mS8iwInGVN8GXAj1qRuk3LduOlmss7D7wRggBRHFkM3XQ6cMqyGb4RuaIaW1vd1Phh2Ud1NBqYEIsvFAujQENoE16ZJmu9mlE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Tim Deegan
	<tim@xen.org>
Subject: [PATCH] x86/shadow: Delete the none.c dummy file
Date: Mon, 9 Feb 2026 11:41:02 +0100
Message-ID: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF00000009:EE_|IA1PR12MB6233:EE_
X-MS-Office365-Filtering-Correlation-Id: a99352f0-d0df-4c7c-7df7-08de67c7c0bd
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?o4Yg7UowA3oF6PlL+k4gCUr0swws5r8jlDVB6cHJcku1fisJu4x5D+swil9h?=
 =?us-ascii?Q?CCK4LuSQOc+3/nJBciobVOYxAn9AdqVMLW8i7Bzbh9KoC5sPn6SHlzRMvMiH?=
 =?us-ascii?Q?8kfkgQFaSppXaVdFJsTqAOM0+0J3G+unC1gORkGbSytjJKVqRWBH5vy3nSel?=
 =?us-ascii?Q?TyF6tUoRcOJpvD/X0nIqcIu7PN0o7ua0hgMyH668VOpzDLLRVhgoiFWbgFPS?=
 =?us-ascii?Q?Y1uH1MWmXh5of25P9wwcrO2g7JkGGBoc4F0J8auuJmBqcUfyakWdjX1WVfF2?=
 =?us-ascii?Q?55xsFOtUQeLC7faCe/cc53mEs+yaxfXIjlgPy3jEVwB5nVhY5QYRdCljjBdc?=
 =?us-ascii?Q?fZs4rjihss3rqLwfnYq5tI0OTphDCXoGtnBXAMU7fxEfGIJm/rSrvspzjAtb?=
 =?us-ascii?Q?PXMpVfbmN2Y4BsURIUFaKM+N03iteKw3zdLnj30/1csfJ0utpg7DnIgbmTnh?=
 =?us-ascii?Q?UGAsGbZ/z8eq0tCeMF9kYAbr/lLsdnCTDdrm9sd0jo/+Ef9aUOA/zoklJLJI?=
 =?us-ascii?Q?0JYiINVP/3faiBU+OeSmpe3KhcDbEoiIN2EacrK3GMIzo4FdFEB5C0+D19g6?=
 =?us-ascii?Q?Gt5/SEvIgDQrRNsNqdube211XmONmAcdZM4AhmNizb2QKmZFmKJVJNQIcsns?=
 =?us-ascii?Q?xc/KS4PGhg7U415mV7UU81oojYRoveJCvUUfRTq0o25PYZ6ljPqHZ2H5NRUL?=
 =?us-ascii?Q?ka4lIOc4lA2kubwn4cWOi/iR5C720tK6bciToJKhUA7qu100XHjCGAz9vG5k?=
 =?us-ascii?Q?vm93LZUBM+mnI8A4L8uFPQ9QEtdXKmsgLiGYKistrapvYPXiKs4t3bH1JRPi?=
 =?us-ascii?Q?tP3aE9378KDPh2ezbpXZx+yZVEa9SfXxh7w8vorrSeu0CQL8grBCBelgkNvN?=
 =?us-ascii?Q?OmByT3+EN2ismY/HTxPLXpFFbuvM6AARoLGkStbXhbOkS5lkEI1HGSy5hhtY?=
 =?us-ascii?Q?PqeGsK+Thi9M4G68VgwckllfGY/oUbfk0GZb3nsiA+7gORhEYUJwbmL1zOyA?=
 =?us-ascii?Q?62QfoKEfdCi5GeCAsiOOeVguKkUpS/wYvThaPruQrJVYo3LMMpeEWKXKipvi?=
 =?us-ascii?Q?P4Qo41mrSr2in7tnJsaIkDxrjfeYsUdQbuBeRc8pFZU+mG/FZ1nE0mCwqU8g?=
 =?us-ascii?Q?APOTgliEX2RH98IN3lTODqZ+NUl2UIFtpdLWJgbE+rVYDghvlRZFTiQEK6qp?=
 =?us-ascii?Q?9OxwzT1ALJvjcIjxqttXkobOBR3XVKFFpAwlk6E9NJsnjGmoCLqfrO0aQUS4?=
 =?us-ascii?Q?GaTIeMGfeNxEcVG4tT7H0U8cETMPEIVdLMWQJcsLke/+Z6vbxoJhnpm9wO1o?=
 =?us-ascii?Q?Cm0DU13ZYros+nFrF+k0xS2ResuEW9kDZFZAza+y9PEeR2GPz1JBmIq0egXK?=
 =?us-ascii?Q?3BN6VXX26hRkR7AzAdsQPbt/UmOxeC9JTrSWyleA3IvjyVg5DuYegPFB05Ra?=
 =?us-ascii?Q?jHGGkDJmbPa6uIcUeTeK4n97P/kUWxJZtBmaqJHMOWS4gB6XaJlLTLJ7qkqV?=
 =?us-ascii?Q?t1JAjK/1OU3NHUZ6xgg88s51i5rk5+isdUFux94XJEUzKJXCIUuhvJDnAHxm?=
 =?us-ascii?Q?dpVdSffzAkhT1y3C4e/deEuKJ29HK2VlAvB6NKY/I5LRrSvKZ0nxrJ3ED/hA?=
 =?us-ascii?Q?hE6bUgwByWemPROAba/Co/Vte58cpTjqfbyi1x/fY1j9q85Urt7YhlaTZ438?=
 =?us-ascii?Q?AG9e7ksnzRwg2ZnTWgKq5RpRLSA=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	SWgR+G9zLGhDIZWCvXGsfTrZWWVdjtkRdVk4YXuvpZ8V++zApI5ap30ZETCBBXk26ssGWVZOFiHwGzmplTcUANR1shSG6ho2svlphL/Xv7kaMguL3BaRsuY2/JGV3jssYArRxqWr02CeeKdwO43hrNrn3m/ZJ4gKdrQTD/ZTLHROgYtkXI7T2CWW+X3ej92uZbnkcD5NMhrOqKsTZ+L8aJxPyfUnZ0+wi+KWyyzpyI0kXcuXKDl/cIr/w6uvQUhBPRgY/ZFRRt7Mn1oPaVvJW6ASA5P5EbzRxbUL3XfFmXNhvp15rLxSEl0vQW9qG/8bdr/VH806KVZFPOhdqtFIXh+UB1r19+QbcMIuV56SFkDhjj7bfh2fFYw1Nz6R5RAaN/m9nXLRJPhZ4JGhDdBfAvNIoLUnjTcXPhLjgJPoMaraBn3+MlNl+zTryuBNt72N
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 10:41:16.2444
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a99352f0-d0df-4c7c-7df7-08de67c7c0bd
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF00000009.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6233

It only has 2 callers, both of which can be conditionally removed.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
I'd be ok conditionalising the else branch on...

    IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)

logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@amd.com

... to avoid the danger of stale pointers, with required changes elsewhere so
none.c is only compiled out in that case.

I'm not sure how much it matters seeing how they are all unreachable.
---
 xen/arch/x86/mm/Makefile        |  2 +-
 xen/arch/x86/mm/paging.c        |  4 +-
 xen/arch/x86/mm/shadow/Makefile |  4 --
 xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
 4 files changed, 3 insertions(+), 84 deletions(-)
 delete mode 100644 xen/arch/x86/mm/shadow/none.c

diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 960f6e8409..066c4caff3 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -1,4 +1,4 @@
-obj-y += shadow/
+obj-$(CONFIG_SHADOW_PAGING) += shadow/
 obj-$(CONFIG_HVM) += hap/
 
 obj-$(CONFIG_ALTP2M) += altp2m.o
diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index 2396f81ad5..5f70254cec 100644
--- a/xen/arch/x86/mm/paging.c
+++ b/xen/arch/x86/mm/paging.c
@@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
      */
     if ( hap_enabled(d) )
         hap_domain_init(d);
-    else
+    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
         rc = shadow_domain_init(d);
 
     return rc;
@@ -645,7 +645,7 @@ void paging_vcpu_init(struct vcpu *v)
 {
     if ( hap_enabled(v->domain) )
         hap_vcpu_init(v);
-    else
+    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
         shadow_vcpu_init(v);
 }
 
diff --git a/xen/arch/x86/mm/shadow/Makefile b/xen/arch/x86/mm/shadow/Makefile
index 3012fa127d..119989ca4d 100644
--- a/xen/arch/x86/mm/shadow/Makefile
+++ b/xen/arch/x86/mm/shadow/Makefile
@@ -1,7 +1,3 @@
-ifeq ($(CONFIG_SHADOW_PAGING),y)
 obj-y += common.o set.o
 obj-$(CONFIG_HVM) += hvm.o guest_2.o guest_3.o guest_4.o oos.o
 obj-$(CONFIG_PV) += pv.o guest_4.o
-else
-obj-y += none.o
-endif
diff --git a/xen/arch/x86/mm/shadow/none.c b/xen/arch/x86/mm/shadow/none.c
deleted file mode 100644
index 2a4005a795..0000000000
--- a/xen/arch/x86/mm/shadow/none.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#include <xen/mm.h>
-#include <asm/shadow.h>
-
-static int cf_check _toggle_log_dirty(struct domain *d)
-{
-    ASSERT(is_pv_domain(d));
-    return -EOPNOTSUPP;
-}
-
-static void cf_check _clean_dirty_bitmap(struct domain *d)
-{
-    ASSERT(is_pv_domain(d));
-}
-
-static void cf_check _update_paging_modes(struct vcpu *v)
-{
-    ASSERT_UNREACHABLE();
-}
-
-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 = {
-        .enable  = _toggle_log_dirty,
-        .disable = _toggle_log_dirty,
-        .clean   = _clean_dirty_bitmap,
-    };
-
-    paging_log_dirty_init(d, &sh_none_ops);
-
-    d->arch.paging.update_paging_modes = _update_paging_modes;
-
-    return is_hvm_domain(d) ? -EOPNOTSUPP : 0;
-}
-
-static int cf_check _page_fault(
-    struct vcpu *v, unsigned long va, struct cpu_user_regs *regs)
-{
-    ASSERT_UNREACHABLE();
-    return 0;
-}
-
-static bool cf_check _invlpg(struct vcpu *v, unsigned long linear)
-{
-    ASSERT_UNREACHABLE();
-    return true;
-}
-
-#ifdef CONFIG_HVM
-static unsigned long cf_check _gva_to_gfn(
-    struct vcpu *v, struct p2m_domain *p2m, unsigned long va, uint32_t *pfec)
-{
-    ASSERT_UNREACHABLE();
-    return gfn_x(INVALID_GFN);
-}
-#endif
-
-static pagetable_t cf_check _update_cr3(struct vcpu *v, bool noflush)
-{
-    ASSERT_UNREACHABLE();
-    return pagetable_null();
-}
-
-static const struct paging_mode sh_paging_none = {
-    .page_fault                    = _page_fault,
-    .invlpg                        = _invlpg,
-#ifdef CONFIG_HVM
-    .gva_to_gfn                    = _gva_to_gfn,
-#endif
-    .update_cr3                    = _update_cr3,
-};
-
-void shadow_vcpu_init(struct vcpu *v)
-{
-    ASSERT(is_pv_vcpu(v));
-    v->arch.paging.mode = &sh_paging_none;
-}

base-commit: 1ee8b11c1106dca6b8fe0d54c0e79146bb6545f0
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:46:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:46:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225215.1531698 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOn9-0008GW-8E; Mon, 09 Feb 2026 10:46:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225215.1531698; Mon, 09 Feb 2026 10:46: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 1vpOn9-0008GP-4W; Mon, 09 Feb 2026 10:46:55 +0000
Received: by outflank-mailman (input) for mailman id 1225215;
 Mon, 09 Feb 2026 10:46: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=r8oy=AN=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vpOn8-0008GA-9V
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:46:54 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id a414413b-05a4-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:46:51 +0100 (CET)
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 46E7D339;
 Mon,  9 Feb 2026 02:46:44 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.56])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DA2123F63F;
 Mon,  9 Feb 2026 02:46:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a414413b-05a4-11f1-b162-2bf370ae4941
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>
Subject: [PATCH v5] xen: Add Darwin.mk
Date: Mon,  9 Feb 2026 11:46:44 +0100
Message-ID: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen does not provide a Darwin build configuration useable on Mac OS.
It is possible to build Xen Hypervisor (tools are not supported) with a
toolchain able to produce ELF binaries (GCC or others).

Add config/Darwin.mk to include StdGNU.mk and force
XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
the cross-compile path so compiling on Mac OS is always handled as a
cross compilation case.

Only compiling the hypervisor has been tested !

An example of how to build the hypervisor for arm64 on Mac OS
(tools cannot be build for now) using a compiler from brew:
- brew install aarch64-elf-gcc aarch64-elf-binutils
- make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Change-Id: Iba91634afbaab58767bb8744b4b722ce5732a6dd
---
Changes since v4:
- Subect was "xen: Add Darwin.mk for GNU toolchains" but remove the GNU
  toolchains part as this could also work with Clang
- remove 'cd xen' from commit message
- simplify comment in Darwin.mk and rework commit message.

Changes since v3:
- set XEN_COMPILE_ARCH to unknown instead of Darwin
- list binutils as a dependency to install in brew in commit message

Changes since v2:
- Subject was "xen: Add macOS hypervisor build configuration"
- Update Darwin.mk comments to more accurate versions (Jan)
- Remove the build-on-macos help as we have no dependency on anything
  coming from brew anymore and the toolchain can be retrieved by lots of
  other solutions than brew on mac os. Switch to a simple doc in the
  commit message instead
---
 config/Darwin.mk | 6 ++++++
 1 file changed, 6 insertions(+)
 create mode 100644 config/Darwin.mk

diff --git a/config/Darwin.mk b/config/Darwin.mk
new file mode 100644
index 000000000000..b1fc9ca859b0
--- /dev/null
+++ b/config/Darwin.mk
@@ -0,0 +1,6 @@
+# Use GNU tool definitions as the tools we are using are either GNU compatible
+# or we only use features which are supported on Mac OS.
+include $(XEN_ROOT)/config/StdGNU.mk
+
+# Cross compile on Mac OS, only hypervisor build has been tested, no tools
+XEN_COMPILE_ARCH = unknow
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 10:57:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 10:57:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225239.1531708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpOxa-0001pU-HT; Mon, 09 Feb 2026 10:57:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225239.1531708; Mon, 09 Feb 2026 10: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 1vpOxa-0001pN-EB; Mon, 09 Feb 2026 10:57:42 +0000
Received: by outflank-mailman (input) for mailman id 1225239;
 Mon, 09 Feb 2026 10: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=8Y/H=AN=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vpOxZ-0001lq-LA
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 10:57:41 +0000
Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com
 [2001:4860:4864:20::2b])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 21dc5c79-05a6-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 11:57:32 +0100 (CET)
Received: by mail-oa1-x2b.google.com with SMTP id
 586e51a60fabf-4097b420ce0so2544378fac.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 02:57:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 21dc5c79-05a6-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770634651; cv=none;
        d=google.com; s=arc-20240605;
        b=lYp+ckw3QLIQKd7kaGkaOirR87cr2bYjUlLy5HKJzAuNPqbUsNigZE89xz4rJxXvbn
         K+HYKn8RAUgn3ZPTdjrPJ8xShAVAI/Xc8OsipPc6b0f6UabEAIYct2/gBIALqZewHlQR
         oCkcpCiIZPQ4B4JbD8CM5gtCzUnT74rOiPxJ7K5YwXDZ3y1j3XbxGeAtOlnucOemBzcS
         z6TXvNSB316HoDMkL/PRMvCHKRCewujFRm91GKrtnDCl8J6bZReZG/VpP3oLaSN2Df+z
         dckUiD5M333QsNo+FbWSu17taZwAYG9JObEd/d+cfcOMP/HsQ2rkao5tjKjLdPZchHC/
         3R/w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=gHNH1H2nAPvRNt6QXWPS/jE/ydclZc1VP95kPl1l2Ms=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=OoGLqTFg2ePCoLFZKakJ7yWfAUO5uqrXrA1XYAQAnMwAFpngWrJQEXggLccWjnvEII
         Uxa2g3S6HZsaaj4mj+z0kTUgW5Cq4M/V6JZmu7YTYQGeFnFQYtwxRGyLv0/FAw+6QvLf
         MDalWjXqZ3ogkKLsVDR4eHRmrPMKtDlltbi33Di3L5/ubnLOWOxl4RZMfdp9rhGQwkTQ
         LfGInM+RypPqeIGW2pIwMQAoQKrMbh2Vmb46HWiEObju3KhviPVzI4YOGrGwQv98McCy
         Mv3mrRxhRDWd0qysEz620nUNV53bkGCqvj/QvVtQNYac2LfsNkx23C5PrFRErL6LUQMz
         B32Q==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770634651; x=1771239451; 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=gHNH1H2nAPvRNt6QXWPS/jE/ydclZc1VP95kPl1l2Ms=;
        b=U1jAXiQdQxD6/1/rMPplgTB49b/Pzmxb2Xj3kHn5DAy74fatrKFNd9VBVUArIzDYFT
         N2+UMZFK9ZrEgj18hmHNkf0G0+S8qoUxLHJFXSSf+OYH5Xtca24tX4jOEDA47M7lJWDT
         /LK/cVTGatqX00H6N2JhSve68Wcyp51hzuDoKEBhYNFzS9cVH4iNnQLC5GRzApPYOokw
         M9dPv/4QXWpGGxXwFedcpwxstI5H428kGFrevU/isLz9TuG/dU8Io0uJ7tfrUa18Eg12
         PrmgHpQUjUX82mf5PIL9Q+SzTzpBGIZBcDvs4PRaZxB6SqDj7ADBlEopznc3nMRZTkyn
         V7sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770634651; x=1771239451;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=gHNH1H2nAPvRNt6QXWPS/jE/ydclZc1VP95kPl1l2Ms=;
        b=rL9Kdkwnid3MlyzAS71ke0TttKuPpS2nadb/iVb4WBxGEgiPNoRmdcDgnlWnxmKNeX
         tPD2siPY8zenj3ct50VnsZtjFWj6SlXyT/4a+ezMA39tnIph777b1aHO7Q9WMfM9Cs/i
         0mehLJygjDi6EVuvJzjLlGYcV45gsjxyki2kM7rOAzro9LdBWRwH5IR5K/wVWj8RmOia
         ZjUoSttMPeWRWOd3yjdUGbRPpCgd3fyFgPe+QpmlRzzJ/T0GV2XCvWN3mHuhCGLl1RkY
         C4+OQCfGTpIhs0J/Vin9Wpz8iyXsAv0AHWxJHpFVC7T9AW76JCCbOM2R11yIFtgbAGm1
         3AAA==
X-Gm-Message-State: AOJu0YziAHdbPnmeYGAHN8lLJqvxF1aks5Ll3xktV5pXXb+ZZFMUhmsC
	6m91+vwVgWNWWa3vaBfCUeD0n1IDgLFGMcaApRRYeeIiMX/NFaPniYy8zHTY7ZU+vLJXHqPoZEd
	JzqI50wTJw1H8DGDLC4vWmKDckppiNc1J1QQbAhb/vg==
X-Gm-Gg: AZuq6aJtIiUn5VBlZm4gLXOgGG+AHpPqvQXz27Y937z2hdO2bY9f8vV5i39fPUTBh/u
	QYLmLA+xFGHBufo48v3W4ItiPC0ukDtkmoVCQVqnj0jMlsNygZ9XdL9teqzt2JWYqyuPPphN1ic
	VYdYQnaoFpng4fZremjsGJC78oB9TdCBX4egiLIeguyRBGXU+sIZXsYup4Dgd2LtLRMoIduyfnR
	lai1EhbBRzUu5YLRE6xiHOhan1gBnXx6nnSPll2fkKP5Ah/FxL90I7Q3HPY23DDAcKUmBhK/N2O
	y3k3hwKLvQuo+UzyLOrtFs33VQ==
X-Received: by 2002:a05:6871:7385:b0:3fd:9f68:b8c4 with SMTP id
 586e51a60fabf-40a96e60f2dmr5781860fac.28.1770634650795; Mon, 09 Feb 2026
 02:57:30 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <a8d316dbdbd00a7980c6d527038f9046bb895c69.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <a8d316dbdbd00a7980c6d527038f9046bb895c69.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 9 Feb 2026 11:57:19 +0100
X-Gm-Features: AZwV_QjEYjLK80seHVWR5O0YxU8u9Nr5dBKcu5-KmRV-e-2B8jb8rhN2P1YLyAk
Message-ID: <CAHUa44HZ59JC2X1p0GWGN1TVAoGo9K1emVPrBQon4V0VT960YA@mail.gmail.com>
Subject: Re: [PATCH 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory access descriptors
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FF-A 1.2 extends the endpoint memory access descriptor (EMAD) from
> 16 to 32 bytes, adding implementation-defined (IMPDEF) fields and
> reserved space. The MEM_SHARE path currently assumes the 1.1 EMAD
> size and rejects the 1.2 layout.
>
> Add FF-A 1.2 EMAD support to MEM_SHARE:
> - define ffa_mem_access_1_2 and store IMPDEF payload in ffa_shm_mem
> - emit 1.2 EMADs to the SPMC for FF-A 1.2 guests, forwarding IMPDEF
> - refactor header parsing into read_mem_transaction() for 1.0/1.1+
> - detect EMAD format by mem_access_size to allow 1.1 on 1.2 guests
>
> Functional impact: MEM_SHARE supports FF-A 1.2 EMADs.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_shm.c | 108 +++++++++++++++++++++++++++++--------
>  1 file changed, 86 insertions(+), 22 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index 4c0b45cde6ee..905a64e3db01 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -30,6 +30,14 @@ struct ffa_mem_access {
>      uint64_t reserved;
>  };
>
> +/* Endpoint memory access descriptor (FF-A 1.2) */
> +struct ffa_mem_access_1_2 {
> +    struct ffa_mem_access_perm access_perm;
> +    uint32_t region_offs;
> +    uint8_t impdef[16];
> +    uint8_t reserved[8];
> +};
> +
>  /* Lend, donate or share memory transaction descriptor */
>  struct ffa_mem_transaction_1_0 {
>      uint16_t sender_id;
> @@ -73,7 +81,7 @@ struct ffa_mem_transaction_1_1 {
>  /*
>   * The parts needed from struct ffa_mem_transaction_1_0 or struct
>   * ffa_mem_transaction_1_1, used to provide an abstraction of difference=
 in
> - * data structures between version 1.0 and 1.1. This is just an internal
> + * data structures between version 1.0 and 1.2. This is just an internal
>   * interface and can be changed without changing any ABI.
>   */
>  struct ffa_mem_transaction_int {
> @@ -92,6 +100,8 @@ struct ffa_shm_mem {
>      uint16_t sender_id;
>      uint16_t ep_id;     /* endpoint, the one lending */
>      uint64_t handle;    /* FFA_HANDLE_INVALID if not set yet */
> +    /* Endpoint memory access descriptor IMPDEF value (FF-A 1.2). */
> +    uint64_t impdef[2];
>      unsigned int page_count;
>      struct page_info *pages[];
>  };
> @@ -297,17 +307,21 @@ static void init_range(struct ffa_address_range *ad=
dr_range,
>   * This function uses the ffa_spmc tx buffer to transmit the memory tran=
saction
>   * descriptor.
>   */
> -static int share_shm(struct ffa_shm_mem *shm)
> +static int share_shm(struct ffa_shm_mem *shm, uint32_t ffa_vers)
>  {
>      const uint32_t max_frag_len =3D FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE;
>      struct ffa_mem_access *mem_access_array;
> +    struct ffa_mem_access_1_2 *mem_access_array_1_2;
>      struct ffa_mem_transaction_1_1 *descr;
>      struct ffa_address_range *addr_range;
>      struct ffa_mem_region *region_descr;
> -    const unsigned int region_count =3D 1;
>      uint32_t frag_len;
>      uint32_t tot_len;
> +    uint32_t mem_access_size;
> +    uint32_t mem_access_offs;
> +    uint32_t region_offs;
>      paddr_t last_pa;
> +    uint32_t range_count;
>      unsigned int n;
>      paddr_t pa;
>      int32_t ret;
> @@ -326,16 +340,35 @@ static int share_shm(struct ffa_shm_mem *shm)
>      descr->handle =3D shm->handle;
>      descr->mem_reg_attr =3D FFA_NORMAL_MEM_REG_ATTR;
>      descr->mem_access_count =3D 1;
> -    descr->mem_access_size =3D sizeof(*mem_access_array);
> -    descr->mem_access_offs =3D MEM_ACCESS_OFFSET(0);
> +    if ( ffa_vers >=3D FFA_VERSION_1_2 )
> +        mem_access_size =3D sizeof(struct ffa_mem_access_1_2);
> +    else
> +        mem_access_size =3D sizeof(struct ffa_mem_access);
> +    mem_access_offs =3D sizeof(struct ffa_mem_transaction_1_1);
> +    region_offs =3D mem_access_offs + mem_access_size;
> +    descr->mem_access_size =3D mem_access_size;
> +    descr->mem_access_offs =3D mem_access_offs;
>
> -    mem_access_array =3D buf + descr->mem_access_offs;
> -    memset(mem_access_array, 0, sizeof(*mem_access_array));
> -    mem_access_array[0].access_perm.endpoint_id =3D shm->ep_id;
> -    mem_access_array[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> -    mem_access_array[0].region_offs =3D REGION_OFFSET(descr->mem_access_=
count, 0);
> +    if ( ffa_vers >=3D FFA_VERSION_1_2 )
> +    {
> +        mem_access_array_1_2 =3D buf + mem_access_offs;
> +        memset(mem_access_array_1_2, 0, sizeof(*mem_access_array_1_2));
> +        mem_access_array_1_2[0].access_perm.endpoint_id =3D shm->ep_id;
> +        mem_access_array_1_2[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> +        mem_access_array_1_2[0].region_offs =3D region_offs;
> +        memcpy(mem_access_array_1_2[0].impdef, shm->impdef,
> +               sizeof(mem_access_array_1_2[0].impdef));
> +    }
> +    else
> +    {
> +        mem_access_array =3D buf + mem_access_offs;
> +        memset(mem_access_array, 0, sizeof(*mem_access_array));
> +        mem_access_array[0].access_perm.endpoint_id =3D shm->ep_id;
> +        mem_access_array[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> +        mem_access_array[0].region_offs =3D region_offs;
> +    }
>
> -    region_descr =3D buf + mem_access_array[0].region_offs;
> +    region_descr =3D buf + region_offs;
>      memset(region_descr, 0, sizeof(*region_descr));
>      region_descr->total_page_count =3D shm->page_count;
>
> @@ -349,8 +382,9 @@ static int share_shm(struct ffa_shm_mem *shm)
>          region_descr->address_range_count++;
>      }
>
> -    tot_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
> -                                region_descr->address_range_count);

Please remove the unused ADDR_RANGE_OFFSET() macro and friends, as
they're no longer accurate.

> +    range_count =3D region_descr->address_range_count;
> +    tot_len =3D region_offs + sizeof(*region_descr) +
> +              range_count * sizeof(struct ffa_address_range);
>      if ( tot_len > max_frag_len )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> @@ -358,7 +392,7 @@ static int share_shm(struct ffa_shm_mem *shm)
>      }
>
>      addr_range =3D region_descr->address_range_array;
> -    frag_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count=
, 1);
> +    frag_len =3D region_offs + sizeof(*region_descr) + sizeof(*addr_rang=
e);
>      last_pa =3D page_to_maddr(shm->pages[0]);
>      init_range(addr_range, last_pa);
>      for ( n =3D 1; n < shm->page_count; last_pa =3D pa, n++ )
> @@ -448,6 +482,12 @@ static int read_mem_transaction(uint32_t ffa_vers, c=
onst void *buf, size_t blen,
>      if ( size * count + offs > blen )
>          return FFA_RET_INVALID_PARAMETERS;
>
> +    if ( size < sizeof(struct ffa_mem_access) )
> +        return FFA_RET_INVALID_PARAMETERS;

Implicitly, size should also be a multiple of 16. Don't you agree?

> +
> +    if ( offs & 0xF )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
>      trans->mem_reg_attr =3D mem_reg_attr;
>      trans->flags =3D flags;
>      trans->mem_access_size =3D size;
> @@ -464,7 +504,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      uint64_t addr =3D get_user_reg(regs, 3);
>      uint32_t page_count =3D get_user_reg(regs, 4);
>      const struct ffa_mem_region *region_descr;
> -    const struct ffa_mem_access *mem_access;
> +    const struct ffa_mem_access_1_2 *mem_access;
>      struct ffa_mem_transaction_int trans;
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> @@ -474,9 +514,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs=
)
>      register_t handle_hi =3D 0;
>      register_t handle_lo =3D 0;
>      int ret =3D FFA_RET_DENIED;
> +    uint32_t ffa_vers;
>      uint32_t range_count;
>      uint32_t region_offs;
>      uint16_t dst_id;
> +    uint8_t perm;
> +    uint64_t impdef[2];
>
>      if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
>      {
> @@ -515,8 +558,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      if ( frag_len > tx_size )
>          goto out_unlock;
>
> -    ret =3D read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), tx_buf,
> -                               frag_len, &trans);
> +    ffa_vers =3D ACCESS_ONCE(ctx->guest_vers);
> +    ret =3D read_mem_transaction(ffa_vers, tx_buf, frag_len, &trans);
>      if ( ret )
>          goto out_unlock;
>
> @@ -545,13 +588,35 @@ void ffa_handle_mem_share(struct cpu_user_regs *reg=
s)
>          goto out_unlock;
>      }
>
> +    if ( trans.mem_access_size < sizeof(struct ffa_mem_access) )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out_unlock;
> +    }
> +
>      /* Check that it fits in the supplied data */
>      if ( trans.mem_access_offs + trans.mem_access_size > frag_len )
>          goto out_unlock;
>
>      mem_access =3D tx_buf + trans.mem_access_offs;
> -
>      dst_id =3D ACCESS_ONCE(mem_access->access_perm.endpoint_id);
> +    perm =3D ACCESS_ONCE(mem_access->access_perm.perm);
> +    region_offs =3D ACCESS_ONCE(mem_access->region_offs);
> +
> +    /*
> +     * FF-A 1.2 introduced an extended mem_access descriptor with impdef
> +     * fields, but guests can still use the 1.1 format if they don't nee=
d
> +     * implementation-defined data. Detect which format is used based on
> +     * the mem_access_size field rather than the negotiated FF-A version=
.
> +     */
> +    if ( trans.mem_access_size >=3D sizeof(struct ffa_mem_access_1_2) )
> +        memcpy(impdef, mem_access->impdef, sizeof(impdef));
> +    else
> +    {
> +        impdef[0] =3D 0;
> +        impdef[1] =3D 0;
> +    }
> +
>      if ( !FFA_ID_IS_SECURE(dst_id) )
>      {
>          /* we do not support sharing with VMs */
> @@ -559,13 +624,11 @@ void ffa_handle_mem_share(struct cpu_user_regs *reg=
s)
>          goto out_unlock;
>      }
>
> -    if ( ACCESS_ONCE(mem_access->access_perm.perm) !=3D FFA_MEM_ACC_RW )
> +    if ( perm !=3D FFA_MEM_ACC_RW )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
>          goto out_unlock;
>      }
> -
> -    region_offs =3D ACCESS_ONCE(mem_access->region_offs);
>      if ( sizeof(*region_descr) + region_offs > frag_len )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> @@ -590,6 +653,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      }
>      shm->sender_id =3D trans.sender_id;
>      shm->ep_id =3D dst_id;
> +    memcpy(shm->impdef, impdef, sizeof(shm->impdef));
>
>      /*
>       * Check that the Composite memory region descriptor fits.
> @@ -605,7 +669,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      if ( ret )
>          goto out;
>
> -    ret =3D share_shm(shm);
> +    ret =3D share_shm(shm, ffa_vers);

Shouldn't we rather use ffa_fw_version?

Cheers,
Jens

>      if ( ret )
>          goto out;
>
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 11:08:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 11:08:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225253.1531718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpP7s-0003p1-KA; Mon, 09 Feb 2026 11:08:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225253.1531718; Mon, 09 Feb 2026 11:08:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpP7s-0003ou-Fn; Mon, 09 Feb 2026 11:08:20 +0000
Received: by outflank-mailman (input) for mailman id 1225253;
 Mon, 09 Feb 2026 11:08: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpP7r-0003oo-1e
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 11:08:19 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a261800e-05a7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 12:08:17 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH7PR03MB7090.namprd03.prod.outlook.com (2603:10b6:510:2bd::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Mon, 9 Feb
 2026 11:08:13 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 11: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: a261800e-05a7-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lMTeuxnQC1YeIxOldDicTO9vRjogeSIljvlOACgrec/gyLylK6pOXXedsU4TQt4MfD3l+WBVuwQzbnTEmD/jzg15bsLIjm/dQR7fy0wb2wOwW3B7Xo6+YMZHVbwh+hnRVUvlXSIJ4IkAMRYOyYV2S6bcHr7jg0rfSactrXCC3IRnLQAeAhw++HtfdfxQneI5kbYymgFzQWQ3V1Of9/L5evL+0rTe8NJ3XCBeZMqNDVhvQ5Q3U7WBOcHQmr+CLg5+U3cedKyvIBxwn9CLr6tj3mo31KNiQ5xBF5wfB5i19+Q/v7AuaV6XPXHyeWFxWD9ygQtYxwOJvk2Q3NeTagcGXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eLyt3rstWdbzGbUzjnhs3wNAHQ6Vf4gniKPk67c6Mz0=;
 b=VgxyY/PF5Mb9Iz+kJd9BABJApH0oE53xncbibs3URAzQk5Xl1yJHbYYZ1or4oNYodS8D31dot4d1QGppHdHDxtSs8aZ98KzPYGwJPm15Ivq4MO1M2CereLETkObxwgriWImeHiukB8k/x+ImKStzDt0VVq3PVm/jh/5zHUfenclBZBV8oADlntt8ztxW1+8sN+dRs5U99992xcnzhH5Ja9oZ1w8mvN7mUYPKvUSR++n70PpPw5s7N3p5WFJQbPjdgOiEIUC4k/PcXAwvZRzpSslWFc4Fz7WhdAWbjil51PecZvfpiQufot6u02Xub+AyM+HTF2aSxCnA+4PnWujRDg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eLyt3rstWdbzGbUzjnhs3wNAHQ6Vf4gniKPk67c6Mz0=;
 b=aU5tOPN4F/nUzxK4UM5Kb2VkyyD3FNUXBK8HNRgVTOFZ1nsKSyNLz8YyYe9UT1D7OfS5tDzkXO/4kDvVAI83wBls39F0ufJm/ex0uOJhNJqRwfFn41eIFdNQGhpGt3iJQsmmQ5s58BXM3oGwflcG2bayxkZzeHGzgO5ZCeOVTww=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 12:08:09 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, jbeulich@suse.com,
	andrew.cooper3@citrix.com, jason.andryuk@amd.com,
	alejandro.garciavallejo@amd.com
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
Message-ID: <aYnAGQa56yvDoN0M@Mac.lan>
References: <20260206210554.126443-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260206210554.126443-1-stefano.stabellini@amd.com>
X-ClientProxiedBy: MR1P264CA0162.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH7PR03MB7090:EE_
X-MS-Office365-Filtering-Correlation-Id: 00b51107-3276-482a-418d-08de67cb8470
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a2JoVFNFTDFwa1RZaWw2K1NRUHE4WjNkZGdiL0owL1lVQVpiUlVkYUlyTU9O?=
 =?utf-8?B?dGNFRlgwYzJyZng5bUFEYjRkZm00M0JtSktXVzJ3ZVlRS3czQWczOXhoZ04r?=
 =?utf-8?B?MSt5K3RNWExWTE9XeUFSVC9nQStXYXgxQ09mMlM1aFB2MlNyZFlFNmxyS2pS?=
 =?utf-8?B?YVF0em83bU9BbUp3aGVIdkRGMHBWdGlVSm5FeUFhL2p4cjh4MDdyRzZhWkFi?=
 =?utf-8?B?bDZSYmZTNEFwb0RBa1JRZ2pxK0F5RDBuTmFOZE5LSEZQbTFldm54MjRLcGUv?=
 =?utf-8?B?dDBWVk1JVlpaU0pPYk9nK092blZPNTFsV1BPOTg1cHpscCt3S2FrcHpMbWtR?=
 =?utf-8?B?WUY4UGZLMGwvQWR3bDlCdy9JaytxdXNuM1Y0VEYvaHNQazR5SE1pMGtWcGZy?=
 =?utf-8?B?Y01FRkZzUTY4UGhjMlQ4ZVBFbm93Q3p0TjZ4VWJZVElyR2VCTlR3R2NGWWJl?=
 =?utf-8?B?RWd1UWJKZkhpNjRaZHBzd2dlTWYrWEdTTlFXVWRxSGFXeVZaTUJqQmtSS2VU?=
 =?utf-8?B?WkNpS1NveWE3ZEgxZzF2a1pjMlBOSG9GS2JLNTl4R2FleGh3WDhpdVFSQ25P?=
 =?utf-8?B?Y0JKRmRIQkNQWDlXMWZwM2N3U216OFhmdHF2UVQzdFY0S08rRSs3NDlsZjNW?=
 =?utf-8?B?S25TY3JtQ2s5cGRUVEJYaUJtT1RXaGlwS3ZmVFZNRHBhQXR1NlUxQjlJbzVa?=
 =?utf-8?B?d1FBRFVHOTQ0UU8vUDFVQzVaZmRtTUJYQUVKR2FVdE5Xa09OaUFmSWVUSDZz?=
 =?utf-8?B?NWhRVHVlV052enRGVHpMZ0FrL21ZeUk2MUY0NGJFRjlEeHMwWmg3M0tSSDdw?=
 =?utf-8?B?cUVMSkdoK1dHYkVjTHo3bGRKY1ZrbDdXcW8ranBFekF6OU1UeGFQMzVyY0tP?=
 =?utf-8?B?QjVxdVJ3dHJHMW9kelJiMUhjejU2bmh6Q2hIcTZVWHJYMkR6Y2JPUWxFM3BD?=
 =?utf-8?B?eWtRSDFkMzRIZzhFS1lVMEtWUnowUCtVZytQcjl4TDA3V1k1UUhNOEY0S1Fk?=
 =?utf-8?B?NFJ5Vk9WWVZONnBuVXlPR1VXUDhVbFNvSWNKaStNeThrck5oT1RlQXpSRE5D?=
 =?utf-8?B?aDZCT1FmaitQUFhnUTNRVk5kTmNmZi8xbTA4U21RNVlqb3V1UHBmZFp5MWZX?=
 =?utf-8?B?K01mMldyK0dqN05UMDlPNUdoUVZidVovV05uV2VEM3hXdk9WNWhOK0h0Q3BH?=
 =?utf-8?B?cWxIRHRQVkswS2pvS0IwNk5mU0k2TzVpOXBXY2IxSGJndENXR1BhaDFUL1Nn?=
 =?utf-8?B?NXgxa1ZmVVV0aTdZS2FwTU9EUFIrSDRRMC9lcGZBUkNyKzE5c2F6cjdNR2hi?=
 =?utf-8?B?d3VyQ0pnNy9MbFdPTWFtbFJ4SXA2Rit3NmNoTU1LV09DK3M4VHNJdE43NzJh?=
 =?utf-8?B?Ti80ODl5d1Q0L1FHQnNxVzU3NGErZjcvdTlTM3RpVkxGaG9VallQMmRDQ2dr?=
 =?utf-8?B?dVhLUnNNUTRQMitTdEt6MktHc1RzeDJ6WFBWZHIrZU1ndjExd0lLdTRpbi9B?=
 =?utf-8?B?YlU1OUdoNi8zaVdVSXU2c01EREhTWFBmOWRueFlsSHgwSHVlNC9RWWc3cGZD?=
 =?utf-8?B?NXBGNFVYTWVIZ1gwMTFSMWdza1hZanNSTi9vSnE0NnBMYWd2QmFMdmgrVWt1?=
 =?utf-8?B?bUc2ckJua0FET2RkSzRDQXRUN1htcjZYNjNzM3dpYjNJTUk3aUorTmpzL3JS?=
 =?utf-8?B?QkdlVEttQlBKSURMdnJycGN0dmpsNWk0UW5naFVMZE1wUlZmVVFyYlZLL1ZI?=
 =?utf-8?B?QWprNHFiRmNYQjd3NERkSWhYMFRLRWFJd0NPODd4SzQ1R2dGeWVWeW9SVWlG?=
 =?utf-8?B?NWNrS3hJZ3BxMlNhRXBOanRDUmhFb0Y1RzN0dVk1Q05zMFJMcHBhQ3E3SCtO?=
 =?utf-8?B?VVd6Q1BHV1lsbVlNSlRFUi8zeTREeXk5VTZiTzU2VWNENk9xcDNqaFgySzAx?=
 =?utf-8?B?YW14VktYaUw4MDZlaWpML3FrWlorNk1wcFNaT3dTcDdLWWZWajAvYTV4Tm9l?=
 =?utf-8?B?cDJQMGhHZzRnaitqek1yZy8zcHhQY3NKc2JoWkNIWVhKOG1uc2diaGxDdnVT?=
 =?utf-8?B?SEZJMGh4d1NlRFM0YmV6TE9Pb2RwZ1J2L3o3Tlplb2VXL05sKys1ckphd091?=
 =?utf-8?Q?nwiQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bVdvK1I0NGhDczl2MjczbGxVVVRkREJMYUxqL2VSZFNKdHNDSmZaVmVRdWM4?=
 =?utf-8?B?YlNKZTE0aHl5MU9wWWZZRXVjOEI5Sko0VDB1YkRZWlVCbjNtMFN3OTE4dnZk?=
 =?utf-8?B?Qm9pcjhtOFA1Rml2NjZ5WkpTTzNPQWpGUC9Kc0ZZZ2M5MDlFc0EyN3o0RVlM?=
 =?utf-8?B?cDE0czcvRkYrQU9kdHRtOVZaRjlmTWQvWldsUEw0azFiMzZOVlhvQkFBTFo2?=
 =?utf-8?B?Q2twRTBxb0dpb0g2eFhxL0FOQ3JQOVJOcXBKZlBFYmtIRFR2ZnJzNUlBTUJ4?=
 =?utf-8?B?VmY0RE44aWRIQlYwZXBjQ3dTQWI3N0dGekFOaVo5SFAvRUt3c2wraHhYTDlt?=
 =?utf-8?B?QklzTnBOSnQ4by9YZW5qSnFoMk1NYTlTUEl0ZFVXY3hKWmFDbjYwcDdjUUky?=
 =?utf-8?B?QXd6NGRzOG1rUS9kajVQelZTZ0FiblJNdWE4c3ZCczZSQlQwSlc4NVBDSjZQ?=
 =?utf-8?B?dEowTGVWeVh0bk5aU0NtblNrSW5vUUJsUDh1N0tHVE5Vb3RVVXlIOHkyWmxL?=
 =?utf-8?B?bGtxdDN0KzlpVTdIR3VUbFd4bjhIbHkxRHArWUJqTldwTVUvQ0pLZzBSbjlD?=
 =?utf-8?B?S1I5amRaWitTN3pUZHlkMjVYSS9wSEJwRHpPTVgwd1FBellLY0FBUWx4VzFK?=
 =?utf-8?B?NXdFWXpLNGl5aXhiZCtqZ29wcUxsbE1xK1RPVDVTRlF0SGdhZkNmZUJSYndk?=
 =?utf-8?B?MURHd3pxMzJYK0NvaGpCRVV4NldDbHM3YlA1dm5CT0tYd29sNkxZS1ZuUG1G?=
 =?utf-8?B?aFBhYWJCZ0tDQlQ1TEFNdW1KSmVWTnNpQkYwb1BIeXhuU1h0MTZZbklCaTZX?=
 =?utf-8?B?amV5QjFUZmFMR0JFa3V6Mi9QdG1BcVJCSXVteXBRdHhkWk8zWm53WjhIUngw?=
 =?utf-8?B?SHFnSEtvZUhPL1BhVWE2ZEVkWGlsU3QyL2dkdUlQLzM2SXdTb05yRGg1WFVy?=
 =?utf-8?B?TmdnVGhSSkNyM0tzOGY5d2YzYmt5VGxSdGJZLzJmamN6elRQWktHcjI1eFRL?=
 =?utf-8?B?ajlsTW5nNllQS3cyclJlTjgrZTRKcDRZbnVzbTkwUldEenFNOUp3VDVTa1ZF?=
 =?utf-8?B?NDVVakRLT3VwTk9CZDV2d3lBTHF0SXZUc2VId0ZETHNGcWxPSG44WHVqaUFH?=
 =?utf-8?B?N2NIMGFYbWhaUWN2MHdnY3VRMkk1VHROblgrOFhzU0FFMFZNWnR2d1d1NUpV?=
 =?utf-8?B?d3dxbmpDSTM1UG5xMXoxdTdYaisyUWN3Vi9XaW8vbHNQRGoyT2Vocng3R25T?=
 =?utf-8?B?Z1hNTkVUc0cvVDMrTU01dnBSaUtNSXE1Qmd4d0tBaCtaZE5EUlU1S2xuREU3?=
 =?utf-8?B?Q013MHJ2UzdvOGRQM0xOZ1JWSVdoTWJnaU5hRTVVZmtDcE1zbUpZWDZJYnhs?=
 =?utf-8?B?WnByaFgxQnM5b2dDTk1yZ2xaTlpZZTYxSjU3S1BybGg1ak0xenJzOE1zNmo4?=
 =?utf-8?B?ZzF5Rjg5YVNHbHlLdEgxak9OZ285K0EwSDZibDg5RVRNRG1MR3BKbE5RcVlY?=
 =?utf-8?B?dTFZNkNEKzI2cUxaa2xUNWhsT1JnS1RFNWpyVlU3SVYzekZmRU90ZFllYS9V?=
 =?utf-8?B?b3VJYko4YzdQRmYrRzZjOG8zSW50OGJibm9JVmp3M3BIRFJHRzZtN1lZUlFI?=
 =?utf-8?B?KytZb0t4blh3ak8rWWNIbkdsOUJrUTlDYjZlK0t4N29LbkNlTHZWbnlQZkJS?=
 =?utf-8?B?YkliOHFMdHhpWVdyL3U0RFVZV2JKbnhZOVFGOHZNb0YwMDFzRHoyZDdSTEh5?=
 =?utf-8?B?VGx2UHBIdStaSjhrMHJNWUUzZ3JIRkU4elJBYmpycitJZWNOZnpNdHFRTlBh?=
 =?utf-8?B?ZzAvMGVTNjdocEVrbjFrYzJ6aUgrVkxwN1dGcFJ5S2x4TDlWaktDMFc2Z09h?=
 =?utf-8?B?ZjY0WnpnWW1FOXlzenIwZW9DeUtHOGxpT0tTY1ZNRDJha1NuNTNheHNUWm94?=
 =?utf-8?B?a091SlNGeTJaUVJLajVNdlMxdkFnbEc5VHV5WG40N2VBUExSdHVMUW9vNUVx?=
 =?utf-8?B?Qmh2TWw5Wmhmb1Z6dUM0VzUzeUdoVkVxV3ptSkcrMDdyZ3RyTUNMM1V0ejhD?=
 =?utf-8?B?aDJkZG5qODdFajZuNnRLTEJZZDVYMVh0c3VLSFFMbXdqTzQrRHJoRVpPbVdI?=
 =?utf-8?B?K1g4amsrb2tOYzdUN3BGWTh2VzZtTXB2V3lMK0xMVk9hblM2V0M3UzhJdW0x?=
 =?utf-8?B?V29wWUtXeUpSWXBFT0xvQkdiZFduV1QwRTFlWUpBVmd0bDFybGsrUkRKTFJW?=
 =?utf-8?B?LytmeUZqeG5aVmx4VUszVTUxbGFlZTZiR3g4SCtoKzZISUxpWmlwQ0VtakhJ?=
 =?utf-8?B?ZzRDdFJha2Nxb29MblA0VFdWMFdHTms0OGlqM3RwdmIvNUppejNWUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 00b51107-3276-482a-418d-08de67cb8470
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 11:08:13.3399
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5yPeX60Egh0wpGjM3Ing73MPa9HvbgAQfITAFv6CEgAP8C3aTRXvdBl78+mFeMNiOfT62wUh+ldMAxYXxtAAMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7090

On Fri, Feb 06, 2026 at 01:05:54PM -0800, Stefano Stabellini wrote:
> Introduce CONFIG_NESTED_VIRT (default y, requires EXPERT to disable)
> to allow nested virtualization support to be disabled at build time.
> This is useful for embedded or safety-focused deployments where
> nested virtualization is not needed, reducing code size and attack
> surface.
> 
> When CONFIG_NESTED_VIRT=n, the following source files are excluded:
> - arch/x86/hvm/nestedhvm.c
> - arch/x86/hvm/svm/nestedsvm.c
> - arch/x86/hvm/vmx/vvmx.c
> - arch/x86/mm/nested.c
> - arch/x86/mm/hap/nested_hap.c
> - arch/x86/mm/hap/nested_ept.c
> 
> Add inline stubs where needed in headers.
> 
> No functional change when CONFIG_NESTED_VIRT=y.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> Changes in v2:
> - add ASSERT_UNREACHABLE
> - change default to N and remove EXPERT
> - don't compile nested_hap if not VMX
> - add XEN_SYSCTL_PHYSCAP_nestedhvm
> - add IS_ENABLED check in hvm_nested_virt_supported 
> ---
>  xen/arch/x86/hvm/Kconfig                 | 10 ++++
>  xen/arch/x86/hvm/Makefile                |  2 +-
>  xen/arch/x86/hvm/svm/Makefile            |  2 +-
>  xen/arch/x86/hvm/svm/nestedhvm.h         | 60 +++++++++++++++++++++--
>  xen/arch/x86/hvm/svm/svm.c               |  6 +++
>  xen/arch/x86/hvm/vmx/Makefile            |  2 +-
>  xen/arch/x86/hvm/vmx/vmx.c               | 10 +++-
>  xen/arch/x86/include/asm/hvm/hvm.h       |  2 +-
>  xen/arch/x86/include/asm/hvm/nestedhvm.h | 52 ++++++++++++++++----
>  xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 62 ++++++++++++++++++++++++
>  xen/arch/x86/mm/Makefile                 |  2 +-
>  xen/arch/x86/mm/hap/Makefile             |  4 +-
>  xen/arch/x86/mm/p2m.h                    |  6 +++
>  xen/arch/x86/sysctl.c                    |  2 +
>  xen/include/public/sysctl.h              |  4 +-
>  15 files changed, 202 insertions(+), 24 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index f32bf5cbb7..133f19a063 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,14 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
>  
> +config NESTED_VIRT
> +	bool "Nested virtualization support"
> +	depends on AMD_SVM || INTEL_VMX
> +	default n
> +	help
> +	  Enable nested virtualization, allowing guests to run their own
> +	  hypervisors. This requires hardware support.
> +
> +	  If unsure, say N.
> +
>  endif
> diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
> index f34fb03934..b8a0a68624 100644
> --- a/xen/arch/x86/hvm/Makefile
> +++ b/xen/arch/x86/hvm/Makefile
> @@ -18,7 +18,7 @@ obj-y += irq.o
>  obj-y += mmio.o
>  obj-$(CONFIG_VM_EVENT) += monitor.o
>  obj-y += mtrr.o
> -obj-y += nestedhvm.o
> +obj-$(CONFIG_NESTED_VIRT) += nestedhvm.o
>  obj-y += pmtimer.o
>  obj-y += quirks.o
>  obj-y += rtc.o
> diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefile
> index 8a072cafd5..92418e3444 100644
> --- a/xen/arch/x86/hvm/svm/Makefile
> +++ b/xen/arch/x86/hvm/svm/Makefile
> @@ -2,6 +2,6 @@ obj-y += asid.o
>  obj-y += emulate.o
>  obj-bin-y += entry.o
>  obj-y += intr.o
> -obj-y += nestedsvm.o
> +obj-$(CONFIG_NESTED_VIRT) += nestedsvm.o
>  obj-y += svm.o
>  obj-y += vmcb.o
> diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nestedhvm.h
> index 9bfed5ffd7..ed1aa847e5 100644
> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> @@ -26,6 +26,13 @@
>  #define nsvm_efer_svm_enabled(v) \
>      (!!((v)->arch.hvm.guest_efer & EFER_SVME))

I wonder whether you also want to force this one to return false if
NETSED_VIRT is disabled.  That would likely lead to more DCE by the
compiler:

#define nsvm_efer_svm_enabled(v) \
    (IS_ENABLED(CONFIG_NESTED_VIRT) &&
     !!((v)->arch.hvm.guest_efer & EFER_SVME))

>  
> +#define NSVM_INTR_NOTHANDLED     3
> +#define NSVM_INTR_NOTINTERCEPTED 2
> +#define NSVM_INTR_FORCEVMEXIT    1
> +#define NSVM_INTR_MASKED         0
> +
> +#ifdef CONFIG_NESTED_VIRT
> +
>  int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr);
>  void nestedsvm_vmexit_defer(struct vcpu *v,
>      uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2);
> @@ -57,13 +64,56 @@ int cf_check nsvm_hap_walk_L1_p2m(
>      struct vcpu *v, paddr_t L2_gpa, paddr_t *L1_gpa, unsigned int *page_order,
>      uint8_t *p2m_acc, struct npfec npfec);
>  
> -#define NSVM_INTR_NOTHANDLED     3
> -#define NSVM_INTR_NOTINTERCEPTED 2
> -#define NSVM_INTR_FORCEVMEXIT    1
> -#define NSVM_INTR_MASKED         0
> -
>  int nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack intack);
>  
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
> +{
> +    ASSERT_UNREACHABLE();
> +    return -EOPNOTSUPP;

I think this is guest-reachable code even when nested virt is build
time disabled:

VMEXIT_VMRUN -> svm_vmexit_do_vmrun() -> nestedsvm_vmcb_map().

I think you rely on nsvm_efer_svm_enabled() always returning false, as
all calls to nestedsvm_vmcb_map() are gated on nsvm_efer_svm_enabled()
returning true.

> +}
> +static inline void nestedsvm_vmexit_defer(struct vcpu *v,
> +    uint64_t exitcode, uint64_t exitinfo1, uint64_t exitinfo2)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline enum nestedhvm_vmexits nestedsvm_vmexit_n2n1(struct vcpu *v,
> +    struct cpu_user_regs *regs)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NESTEDHVM_VMEXIT_ERROR;
> +}
> +static inline enum nestedhvm_vmexits nestedsvm_check_intercepts(struct vcpu *v,
> +    struct cpu_user_regs *regs, uint64_t exitcode)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NESTEDHVM_VMEXIT_ERROR;

For the above two you possibly want to return
NESTEDHVM_VMEXIT_FATALERROR so that the L1 guest is killed.  This
should be unreachable code when nested virt is build disabled, and
hence it's safer to kill the guest, rather than attempting to report
an error to L1.

> +}
> +static inline void svm_nested_features_on_efer_update(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline void svm_vmexit_do_clgi(struct cpu_user_regs *regs,
> +                                      struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline void svm_vmexit_do_stgi(struct cpu_user_regs *regs,
> +                                       struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +}

Aren't those last two guest reachable if it tries to execute an STGI
or CLGI instruction?  I see the svm exit handler calling straight into
svm_vmexit_do_{st,cl}gi() as a result of VMEXIT_{ST,CL}GI vmexit.


> +static inline bool nestedsvm_gif_isset(struct vcpu *v) { return true; }

I think this one above is really unreachable when `nestedsvm.c` is not
build, and hence you could even remove the handler here.

> +static inline int nestedsvm_vcpu_interrupt(struct vcpu *v,
> +                                           const struct hvm_intack intack)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NSVM_INTR_NOTINTERCEPTED;
> +}
> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  #endif /* __X86_HVM_SVM_NESTEDHVM_PRIV_H__ */
>  
>  /*
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 18ba837738..0234b57afb 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -46,6 +46,10 @@
>  
>  void noreturn svm_asm_do_resume(void);
>  
> +#ifndef CONFIG_NESTED_VIRT
> +void asmlinkage nsvm_vcpu_switch(void) { }
> +#endif

Instead of adding the ifdefs here, you could maybe add them to
svm/entry.S and elide the call to nsvm_vcpu_switch() altogether?

> +
>  u32 svm_feature_flags;
>  
>  /*
> @@ -2465,6 +2469,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
>      .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
>      .get_insn_bytes       = svm_get_insn_bytes,
>  
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
>      .nhvm_vcpu_destroy = nsvm_vcpu_destroy,
>      .nhvm_vcpu_reset = nsvm_vcpu_reset,
> @@ -2474,6 +2479,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
>      .nhvm_vmcx_hap_enabled = nsvm_vmcb_hap_enabled,
>      .nhvm_intr_blocked = nsvm_intr_blocked,
>      .nhvm_hap_walk_L1_p2m = nsvm_hap_walk_L1_p2m,
> +#endif
>  
>      .get_reg = svm_get_reg,
>      .set_reg = svm_set_reg,
> diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makefile
> index 04a29ce59d..902564b3e2 100644
> --- a/xen/arch/x86/hvm/vmx/Makefile
> +++ b/xen/arch/x86/hvm/vmx/Makefile
> @@ -3,4 +3,4 @@ obj-y += intr.o
>  obj-y += realmode.o
>  obj-y += vmcs.o
>  obj-y += vmx.o
> -obj-y += vvmx.o
> +obj-$(CONFIG_NESTED_VIRT) += vvmx.o
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 82c55f49ae..252f27322b 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -55,6 +55,10 @@
>  #include <public/hvm/save.h>
>  #include <public/sched.h>
>  
> +#ifndef CONFIG_NESTED_VIRT
> +void asmlinkage nvmx_switch_guest(void) { }
> +#endif

Similar to my remark above, you could likely move the ifdef to the
assembly call site.

>  static bool __initdata opt_force_ept;
>  boolean_param("force-ept", opt_force_ept);
>  
> @@ -2033,7 +2037,7 @@ static void nvmx_enqueue_n2_exceptions(struct vcpu *v,
>                   nvmx->intr.intr_info, nvmx->intr.error_code);
>  }
>  
> -static int cf_check nvmx_vmexit_event(
> +static int cf_check __maybe_unused nvmx_vmexit_event(

Maybe you can move this one to the vvmx.c file?  It seems like an odd
one to have defined in vmx.c.

>      struct vcpu *v, const struct x86_event *event)
>  {
>      nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
> @@ -2933,6 +2937,7 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
>      .handle_cd            = vmx_handle_cd,
>      .set_info_guest       = vmx_set_info_guest,
>      .set_rdtsc_exiting    = vmx_set_rdtsc_exiting,
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise = nvmx_vcpu_initialise,
>      .nhvm_vcpu_destroy    = nvmx_vcpu_destroy,
>      .nhvm_vcpu_reset      = nvmx_vcpu_reset,
> @@ -2942,8 +2947,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
>      .nhvm_vcpu_vmexit_event = nvmx_vmexit_event,
>      .nhvm_intr_blocked    = nvmx_intr_blocked,
>      .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,
> +#endif
> +    .update_vlapic_mode = vmx_vlapic_msr_changed,
>  #ifdef CONFIG_VM_EVENT
>      .enable_msr_interception = vmx_enable_msr_interception,
>  #endif
> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
> index 7d9774df59..536a38b450 100644
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -711,7 +711,7 @@ static inline bool hvm_altp2m_supported(void)
>  /* Returns true if we have the minimum hardware requirements for nested virt */
>  static inline bool hvm_nested_virt_supported(void)
>  {
> -    return hvm_funcs.caps.nested_virt;
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) && hvm_funcs.caps.nested_virt;
>  }
>  
>  #ifdef CONFIG_ALTP2M
> diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> index ea2c1bc328..e18d59e0eb 100644
> --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> @@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
>  /* Nested HVM on/off per domain */
>  static inline bool nestedhvm_enabled(const struct domain *d)
>  {
> -    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
> +           (d->options & XEN_DOMCTL_CDF_nested_virt);
>  }
>  
> +/* Nested paging */
> +#define NESTEDHVM_PAGEFAULT_DONE       0
> +#define NESTEDHVM_PAGEFAULT_INJECT     1
> +#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> +#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> +#define NESTEDHVM_PAGEFAULT_MMIO       4
> +#define NESTEDHVM_PAGEFAULT_RETRY      5
> +#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> +
> +#ifdef CONFIG_NESTED_VIRT
> +
>  /* Nested VCPU */
>  int nestedhvm_vcpu_initialise(struct vcpu *v);
>  void nestedhvm_vcpu_destroy(struct vcpu *v);
> @@ -38,14 +50,6 @@ bool nestedhvm_vcpu_in_guestmode(struct vcpu *v);
>  #define nestedhvm_vcpu_exit_guestmode(v)  \
>      vcpu_nestedhvm(v).nv_guestmode = 0
>  
> -/* Nested paging */
> -#define NESTEDHVM_PAGEFAULT_DONE       0
> -#define NESTEDHVM_PAGEFAULT_INJECT     1
> -#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> -#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> -#define NESTEDHVM_PAGEFAULT_MMIO       4
> -#define NESTEDHVM_PAGEFAULT_RETRY      5
> -#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
>  int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
>                                      struct npfec npfec);
>  
> @@ -59,6 +63,36 @@ unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
>  
>  void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m);
>  
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline int nestedhvm_vcpu_initialise(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +    return -EOPNOTSUPP;
> +}
> +static inline void nestedhvm_vcpu_destroy(struct vcpu *v) { }
> +static inline void nestedhvm_vcpu_reset(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline bool nestedhvm_vcpu_in_guestmode(struct vcpu *v) { return false; }
> +static inline int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
> +                                                  struct npfec npfec)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NESTEDHVM_PAGEFAULT_L0_ERROR;
> +}
> +#define nestedhvm_vcpu_enter_guestmode(v) do { ASSERT_UNREACHABLE(); } while (0)
> +#define nestedhvm_vcpu_exit_guestmode(v)  do { ASSERT_UNREACHABLE(); } while (0)
> +#define nestedhvm_paging_mode_hap(v) false
> +#define nestedhvm_vmswitch_in_progress(v) false

Why are those defines instead of static inlines?

> +static inline void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  static inline bool nestedhvm_is_n2(struct vcpu *v)
>  {
>      if ( !nestedhvm_enabled(v->domain) ||
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> index da10d3fa96..ad56cdf01e 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> @@ -73,6 +73,8 @@ union vmx_inst_info {
>      u32 word;
>  };
>  
> +#ifdef CONFIG_NESTED_VIRT
> +
>  int cf_check nvmx_vcpu_initialise(struct vcpu *v);
>  void cf_check nvmx_vcpu_destroy(struct vcpu *v);
>  int cf_check nvmx_vcpu_reset(struct vcpu *v);
> @@ -199,5 +201,65 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga,
>                          uint64_t *exit_qual, uint32_t *exit_reason);
>  int nvmx_cpu_up_prepare(unsigned int cpu);
>  void nvmx_cpu_dead(unsigned int cpu);
> +
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline void nvmx_update_exec_control(struct vcpu *v, u32 value)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline void nvmx_update_secondary_exec_control(struct vcpu *v,
> +                                                      unsigned long value)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline void nvmx_update_exception_bitmap(struct vcpu *v,
> +                                                unsigned long value)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline u64 nvmx_get_tsc_offset(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}
> +static inline void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline bool nvmx_intercepts_exception(struct vcpu *v, unsigned int vector,
> +                                             int error_code)
> +{
> +    ASSERT_UNREACHABLE();
> +    return false;
> +}
> +static inline int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
> +                                         unsigned int exit_reason)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}
> +static inline void nvmx_idtv_handling(void)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}

I think this function is reachable even when nested virt is not
enabled:

vmx_msr_read_intercept() -> case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_VMFUNC -> nvmx_msr_read_intercept()

I'm also confused about why the function returns 0 instead of an error
when !nestedhvm_enabled().  We should probably make it return -ENODEV
when nested virt is not available or enabled.

> +static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
> +                                       unsigned int exit_reason)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}

Same here, I think this is likely reachable from vmx_vmexit_handler(),
and shouldn't assert?

It should also do something like:

    hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
    return X86EMUL_EXCEPTION;

So it mimics what the function itself does when !nestedhvm_enabled().

> +static inline int nvmx_cpu_up_prepare(unsigned int cpu) { return 0; }
> +static inline void nvmx_cpu_dead(unsigned int cpu) { }
> +
> +#define get_vvmcs(vcpu, encoding) 0

This likely wants to be a static inline and have an
ASSERT_UNREACHABLE()?  From a quick look it seems like call sites do
check that the vpcu is in guest mode before attempting to fetch a
field from the nested VMCS.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 11:34:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 11:34:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225264.1531728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpPX9-0007nq-Ic; Mon, 09 Feb 2026 11:34:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225264.1531728; Mon, 09 Feb 2026 11: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 1vpPX9-0007nj-FM; Mon, 09 Feb 2026 11:34:27 +0000
Received: by outflank-mailman (input) for mailman id 1225264;
 Mon, 09 Feb 2026 11:34: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=aPXx=AN=bounce.vates.tech=bounce-md_30504962.6989c63a.v1-bdcf0703707f407d99f9ec1d35fae8ed@srs-se1.protection.inumbo.net>)
 id 1vpPX7-0007nc-P7
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 11:34:25 +0000
Received: from mail177-22.suw61.mandrillapp.com
 (mail177-22.suw61.mandrillapp.com [198.2.177.22])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4592c962-05ab-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 12:34:19 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-22.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4f8jJp3Y8czGlspFT
 for <xen-devel@lists.xenproject.org>; Mon,  9 Feb 2026 11:34:18 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 bdcf0703707f407d99f9ec1d35fae8ed; Mon, 09 Feb 2026 11:34: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: 4592c962-05ab-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770636858; x=1770906858;
	bh=z+5bID8B4TwdHcS855x2tQYEC5yCWNBE+4Tk0xW2DB0=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=GsUGkxNoEbItShzNz3FNY3wdo3I3QGhdDrVe7uIxiPkydzK/5cQIMWYR3UJMYYnQN
	 dJtd2GN1SQaN0h2HuMZNqYKvqUTHgjwRLGrLduznCJruqgCzfkcRQCxbA2HPMY/h3w
	 +5mcoA7cCxaIa9zJvbB4tww/r05lLFNFP6AN4Av3sdL+1bCWrgDRZplmW2CvBqQaXH
	 dyBm49VCBBNJlrJs+/Aa96chqZoczbVlz2NSwsxj5ZJEhl3LQdQCt+iIh5QsWBeGPZ
	 IwajwqP+7KIaXlZkVfs6Nbyj4BoLmZUF2Fn4ykgxJ6YfxxF5cTshFsUp6d/uTabG9j
	 dYzhwhtjpKK+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770636858; x=1770897358; i=julian.vetter@vates.tech;
	bh=z+5bID8B4TwdHcS855x2tQYEC5yCWNBE+4Tk0xW2DB0=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=tckZcawuk7VX8DLCwfV0lS8GkXe5JThP7mb5BI9tWb3r8L2KuZhcxRB9gfF5ywbmz
	 41q2vCmg+qznch+DGOIGa1qChf6ncvbJCJjq5KHRW07egICynDOUdfsvcQQHzYSqoz
	 vmULI/QAoydiw5gMMW9aU32R+K1LIEajaZ8TUMZg9B7vcR1RCCGio96mSL2IzmSJw8
	 Lq7UADMWzIEw0L7jFB2kAJsixe731KkwudU4iCIga6AEy4UrwI3ywVkGdzOGecV3qP
	 ssTNgfEozCmv9niAYtlFJq2AsUNlG1IWl4qMMMJ0kjxhdEJEhU+A75kDcCdhB8dWJx
	 qTct4eWf17zfg==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20x86/hvm:=20Advertise=20and=20support=20extended=20destination=20IDs=20for=20MSI/IO-APIC?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770636857446
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260209113412.2603088-1-julian.vetter@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.bdcf0703707f407d99f9ec1d35fae8ed?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260209:md
Date: Mon, 09 Feb 2026 11:34:18 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

x2APIC guests with more than 128 vCPUs have APIC IDs above 255, but MSI
addresses and IO-APIC RTEs only provide an 8-bit destination field.
Without extended destination ID support, Linux limits the maximum usable
APIC ID to 255, refusing to bring up vCPUs beyond that limit. So,
advertise XEN_HVM_CPUID_EXT_DEST_ID in the HVM hypervisor CPUID leaf,
signalling that guests may use MSI address bits 11:5 and IO-APIC RTE
bits 55:49 as additional high destination ID bits. This expands the
destination ID from 8 to 15 bits.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
 xen/arch/x86/cpuid.c                   |  9 +++++++++
 xen/arch/x86/hvm/irq.c                 | 11 ++++++++++-
 xen/arch/x86/hvm/vioapic.c             |  2 +-
 xen/arch/x86/hvm/vmsi.c                |  4 ++--
 xen/arch/x86/include/asm/hvm/hvm.h     |  4 ++--
 xen/arch/x86/include/asm/hvm/vioapic.h | 13 +++++++++++++
 xen/arch/x86/include/asm/msi.h         |  3 +++
 7 files changed, 40 insertions(+), 6 deletions(-)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index d85be20d86..fb17c71d74 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -148,6 +148,15 @@ static void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
         res->a |= XEN_HVM_CPUID_DOMID_PRESENT;
         res->c = d->domain_id;
 
+        /*
+         * Advertise extended destination ID support. This allows guests to use
+         * bits 11:5 of the MSI address and bits 55:49 of the IO-APIC RTE for
+         * additional destination ID bits, expanding the addressable APIC ID
+         * range from 8 to 15 bits. This is required for x2APIC guests with
+         * APIC IDs > 255.
+         */
+        res->a |= XEN_HVM_CPUID_EXT_DEST_ID;
+
         /*
          * Per-vCPU event channel upcalls are implemented and work
          * correctly with PIRQs routed over event channels.
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 5f64361113..2cc14d37d4 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -374,7 +374,16 @@ int hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq)
 int hvm_inject_msi(struct domain *d, uint64_t addr, uint32_t data)
 {
     uint32_t tmp = (uint32_t) addr;
-    uint8_t  dest = (tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT;
+    /*
+     * Standard MSI destination: address bits 19:12 (8 bits).
+     * Extended MSI destination: address bits 11:5 (7 more bits).
+     * When XEN_HVM_CPUID_EXT_DEST_ID is advertised, the guest may use
+     * bits 11:5 for high destination ID bits, expanding to 15 bits total.
+     * For legacy guests these bits are 0, so this is backwards-compatible.
+     */
+    uint32_t dest =
+        (((tmp & MSI_ADDR_EXT_DEST_ID_MASK) >> MSI_ADDR_EXT_DEST_ID_SHIFT) << 8) |
+        ((tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT);
     uint8_t  dest_mode = !!(tmp & MSI_ADDR_DESTMODE_MASK);
     uint8_t  delivery_mode = (data & MSI_DATA_DELIVERY_MODE_MASK)
         >> MSI_DATA_DELIVERY_MODE_SHIFT;
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index 7c725f9e47..263b1bd5cb 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -411,7 +411,7 @@ static void ioapic_inj_irq(
 
 static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
 {
-    uint16_t dest = vioapic->redirtbl[pin].fields.dest_id;
+    uint32_t dest = VIOAPIC_RTE_DEST(vioapic->redirtbl[pin].bits);
     uint8_t dest_mode = vioapic->redirtbl[pin].fields.dest_mode;
     uint8_t delivery_mode = vioapic->redirtbl[pin].fields.delivery_mode;
     uint8_t vector = vioapic->redirtbl[pin].fields.vector;
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index 27b1f089e2..dca191b4f1 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -66,7 +66,7 @@ static void vmsi_inj_irq(
 
 int vmsi_deliver(
     struct domain *d, int vector,
-    uint8_t dest, uint8_t dest_mode,
+    uint32_t dest, uint8_t dest_mode,
     uint8_t delivery_mode, uint8_t trig_mode)
 {
     struct vlapic *target;
@@ -125,7 +125,7 @@ void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci)
 }
 
 /* Return value, -1 : multi-dests, non-negative value: dest_vcpu_id */
-int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t dest_mode)
+int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t dest_mode)
 {
     int dest_vcpu_id = -1, w = 0;
     struct vcpu *v;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59..11256d5e67 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -295,11 +295,11 @@ uint64_t hvm_get_guest_time_fixed(const struct vcpu *v, uint64_t at_tsc);
 
 int vmsi_deliver(
     struct domain *d, int vector,
-    uint8_t dest, uint8_t dest_mode,
+    uint32_t dest, uint8_t dest_mode,
     uint8_t delivery_mode, uint8_t trig_mode);
 struct hvm_pirq_dpci;
 void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci);
-int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t dest_mode);
+int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t dest_mode);
 
 enum hvm_intblk
 hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack);
diff --git a/xen/arch/x86/include/asm/hvm/vioapic.h b/xen/arch/x86/include/asm/hvm/vioapic.h
index 68af6dce79..b49eb348d5 100644
--- a/xen/arch/x86/include/asm/hvm/vioapic.h
+++ b/xen/arch/x86/include/asm/hvm/vioapic.h
@@ -32,6 +32,19 @@
 #define VIOAPIC_EDGE_TRIG  0
 #define VIOAPIC_LEVEL_TRIG 1
 
+/*
+ * Extract the destination ID from a 64-bit IO-APIC RTE, including the
+ * extended bits (55:49) used when XEN_HVM_CPUID_EXT_DEST_ID is advertised.
+ */
+#define IO_APIC_REDIR_DEST_SHIFT        56
+#define IO_APIC_REDIR_DEST_MASK         0xffULL
+#define IO_APIC_REDIR_EXT_DEST_SHIFT    49
+#define IO_APIC_REDIR_EXT_DEST_MASK     0x7fULL
+
+#define VIOAPIC_RTE_DEST(rte) \
+    ((((rte) >> IO_APIC_REDIR_DEST_SHIFT) & IO_APIC_REDIR_DEST_MASK) | \
+     (((rte) >> IO_APIC_REDIR_EXT_DEST_SHIFT) & IO_APIC_REDIR_EXT_DEST_MASK) << 8)
+
 #define VIOAPIC_DEFAULT_BASE_ADDRESS  0xfec00000U
 #define VIOAPIC_MEM_LENGTH            0x100
 
diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index 00059d4a3a..b7a132e5b5 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -54,6 +54,9 @@
 #define	 MSI_ADDR_DEST_ID_MASK		0x00ff000
 #define  MSI_ADDR_DEST_ID(dest)		(((dest) << MSI_ADDR_DEST_ID_SHIFT) & MSI_ADDR_DEST_ID_MASK)
 
+#define MSI_ADDR_EXT_DEST_ID_SHIFT	5
+#define MSI_ADDR_EXT_DEST_ID_MASK	0x0000fe0
+
 /* MAX fixed pages reserved for mapping MSIX tables. */
 #define FIX_MSIX_MAX_PAGES              512
 
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 11:37:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 11:37:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225271.1531737 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpPa8-0008PZ-V6; Mon, 09 Feb 2026 11:37:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225271.1531737; Mon, 09 Feb 2026 11:37: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 1vpPa8-0008PS-SP; Mon, 09 Feb 2026 11:37:32 +0000
Received: by outflank-mailman (input) for mailman id 1225271;
 Mon, 09 Feb 2026 11:37: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=tm/7=AN=bounce.vates.tech=bounce-md_30504962.6989c6f7.v1-6799114329fc46f48f27ec1887b0cf2b@srs-se1.protection.inumbo.net>)
 id 1vpPa7-0008PM-70
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 11:37:31 +0000
Received: from mail177-22.suw61.mandrillapp.com
 (mail177-22.suw61.mandrillapp.com [198.2.177.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b66e5807-05ab-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 12:37:29 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-22.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4f8jNS0H8PzGlspFm
 for <xen-devel@lists.xenproject.org>; Mon,  9 Feb 2026 11:37:28 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 6799114329fc46f48f27ec1887b0cf2b; Mon, 09 Feb 2026 11:37: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: b66e5807-05ab-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770637048; x=1770907048;
	bh=9FCMY3mXWbB9oHBO/NmmXAPXVQaSYKElKez8x1qxfjc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Fa1F22hzxMIkjK6N1Ju5WjQ+Z6AGHhcOrOOyVOfDuHeVGCjKvSDoDDKTWuhWfDP9u
	 ZMp4jwxFAZ1nRJw6obgoIzlE47sNpIa/OIys4oVftVRy7UJ1lQ3NmiF0r/xwWr41ws
	 LNMJZsb6Gq+/qHbxXRa3LDcUNLTTAg0vS2q5hU80Q5DCOocEJGn4g/eoF4i2K4ziLi
	 80R3qsMlx+XepH2IDn8PcO99NjL//AhTbS+LudH89RTTsALP8iSLbpcQfsCPbhvgKY
	 XJs/qSgnn3Umj6lIESfWWYwUgt9yTUl/KF34CCBEBdrMawGvYKCyaRa9zP+4YzdD1Y
	 MvaGh0OSaKtEA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770637048; x=1770897548; i=julian.vetter@vates.tech;
	bh=9FCMY3mXWbB9oHBO/NmmXAPXVQaSYKElKez8x1qxfjc=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=15XNw88vA7zZuXdMA3QqNK/Av9hW0zol3+pcreLCBCTG0+YokYPjyfxpRkyPpHq1w
	 KEM9ejrjx6e1qBWHIVbI6cudoCGlc/JkG66uzOAH4r83WvpuvVZbctkioBfmp733wo
	 bUCeXxL3E71RHesW/HlDqttJ+REYFmCqL0pNab29r28kwRpmI9CLKy7+cIMvzqoroB
	 VWbnogEdP+XutFmecZuaXO/EZWfxjR6RUEJrQp+qhN/NGuJyX9R4ybA+P3rxMSeq10
	 TfkPwnpiVsiwJx+fhW0pPMbfUd83nZPtwR2CH34H+QI6TS8Yb7AGS1p5olzBg9bN3Y
	 NVz+3+I7BWEcQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20x86/hvm:=20Add=20x2APIC=20topology?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770637047143
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260209113721.2604894-1-julian.vetter@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.6799114329fc46f48f27ec1887b0cf2b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260209:md
Date: Mon, 09 Feb 2026 11:37:28 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

HVM guests with more than 128 vCPUs require APIC IDs above 255 (since
APIC ID = vcpu_id * 2), which exceeds the 8-bit xAPIC limit. Currently,
CPUID leaf 0xB returns EBX=0, making firmware (OVMF/EDK2) fall back to
CPUID leaf 1 for APIC ID discovery, which is limited to 8 bits and
cannot distinguish vCPUs with APIC IDs greater than 256.
To address this, implement proper CPUID leaf 0xB x2APIC topology
enumeration. Present all vCPUs as cores in a single package with correct
shift values based on the maximum APIC ID, and non-zero EBX so that
firmware uses the 32-bit x2APIC ID from EDX. Moreover, set CPUID leaf 1
EBX[23:16] (max addressable logical processor IDs) to the appropriate
power-of-2 value, but capped at 255.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
 xen/arch/x86/cpuid.c | 54 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 50 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index ceac37b3ae..fb17c71d74 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -284,10 +284,26 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
         const struct cpu_user_regs *regs;
 
     case 0x1:
-        /* TODO: Rework topology logic. */
         res->b &= 0x00ffffffu;
         if ( is_hvm_domain(d) )
-            res->b |= (v->vcpu_id * 2) << 24;
+        {
+            unsigned int max_apic_id, max_lp;
+
+            /*
+             * EBX[23:16] = Maximum number of addressable IDs for logical
+             * processors in a physical package. Must be large enough to
+             * accommodate all vCPU APIC IDs. Round up to next power of 2.
+             *
+             * With APIC ID = vcpu_id * 2, max APIC ID = (max_vcpus - 1) * 2.
+             * We need max_lp to be greater than max_apic_id for proper
+             * enumeration.
+             */
+            max_apic_id = (d->max_vcpus - 1) * 2;
+            max_lp = min(1u << fls(max_apic_id), 255u);
+
+            res->b = (res->b & 0xff00ffffu) | (max_lp << 16);
+            res->b |= (uint8_t)(v->vcpu_id * 2) << 24;
+        }
 
         /* TODO: Rework vPMU control in terms of toolstack choices. */
         if ( vpmu_available(v) &&
@@ -463,11 +479,41 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
          * coupled with x2apic, and we offer an x2apic-capable APIC emulation
          * to guests on AMD hardware as well.
          *
-         * TODO: Rework topology logic.
+         * Provide a simple topology where all vCPUs are cores in a single
+         * package (no SMT). This ensures EBX is non-zero so that software
+         * (like EDK2/OVMF) uses the 32-bit x2APIC ID from EDX.
          */
         if ( p->basic.x2apic )
         {
-            *(uint8_t *)&res->c = subleaf;
+            unsigned int max_vcpus = d->max_vcpus;
+            unsigned int max_apic_id = (max_vcpus - 1) * 2;
+            unsigned int shift;
+
+            /* Calculate shift value for Core level topology. */
+            shift = fls(max_apic_id);
+
+            switch ( subleaf )
+            {
+            /* SMT level - no hyperthreading, 1 thread per core */
+            case 0x0:
+                res->a = 0;         /* No shift (1 thread per core) */
+                res->b = 1;         /* 1 logical processor at this level */
+                res->c = 0x100 | 0; /* Level type 1 (SMT), level number 0 */
+                break;
+
+            /* Core level - all vCPUs are cores in one package */
+            case 0x1:
+                res->a = shift;     /* Bits to shift to get package ID */
+                res->b = max_vcpus; /* Number of logical processors */
+                res->c = 0x200 | 1; /* Level type 2 (Core), level number 1 */
+                break;
+
+            default: /* Invalid level */
+                res->a = 0;
+                res->b = 0;
+                res->c = subleaf;   /* Level number only, type 0 (invalid) */
+                break;
+            }
 
             /* Fix the x2APIC identifier. */
             res->d = v->vcpu_id * 2;
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 11:57:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 11:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225279.1531748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpPtA-0002nD-F4; Mon, 09 Feb 2026 11:57:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225279.1531748; Mon, 09 Feb 2026 11:57: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 1vpPtA-0002n6-BO; Mon, 09 Feb 2026 11:57:12 +0000
Received: by outflank-mailman (input) for mailman id 1225279;
 Mon, 09 Feb 2026 11:57: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpPt8-0002n0-Bd
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 11:57:10 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 726cb90e-05ae-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 12:57:04 +0100 (CET)
Received: from BY5PR17CA0011.namprd17.prod.outlook.com (2603:10b6:a03:1b8::24)
 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.9587.18; Mon, 9 Feb
 2026 11:56:58 +0000
Received: from SJ1PEPF000023CF.namprd02.prod.outlook.com
 (2603:10b6:a03:1b8:cafe::47) by BY5PR17CA0011.outlook.office365.com
 (2603:10b6:a03:1b8::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 11:57:01 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023CF.mail.protection.outlook.com (10.167.244.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 11:56:58 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 05:56:54 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 726cb90e-05ae-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UdCfqo8jicYVhAcwEjHmUXbjdKpqC+DNoao0nWtCi4A661MqI8q7JQUc6I5qLb7JZnJMpo4dLPJgQ+AwBBJxjcdkp7YqviBgn1/fzKPFFx7qRaiwEa4R0pjfncbt7yUdLCMbhh/4huPjm+dntxKig5A6cBpscbHV3FOEsswk05XWo7SH0mZs3fkSTgQTp4oFY/7riR8UcbBsE8mCpuGu31BigeWITwn9jEHKyZSW6NywKx0GWHUKVBdfZrUXsBAdqygs7q33jaJGvj+srx9H1stjMj+4xYN2MrWNTFf13sTYs2Te5w5ab2p97Zo0edJiYdsLiHk5LdJafraASA7KPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TKz42avQEeqgp9Afgsat2XSqKjshh55Fm/ZrKyKf2m0=;
 b=MeZT9w1x9HKYBK6qYcaw/V24nlbNpWqGJhvoFkTzTbNqLOSlGWAkBUdtDOjIcVxD84yNiUVvyWfHlBP9GFSe3UCli0bY+6dW26rFYu/S+f7XcnYMqlFoDcirIlMOtHxp1RFdHvh2f18J0P7eFGrT9a3HaLX7pX87ickIbiLhjg22WXg04OsTKdWFFB1/yV9gJ6xQFQDgSeasw1XGVCuy6Z3GOaVJJS9szEd+XMusDh9FD05yHDZrFquLz+ttZ7gXzf1LfSezHClw1yiXDyjzu24hyQsdr/k/5RPGZTa8QiXRKUcrVjJj+7CH0nfFcTQmfpm2iTVzIjUG3lSj8HdNBQ==
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=TKz42avQEeqgp9Afgsat2XSqKjshh55Fm/ZrKyKf2m0=;
 b=s920qP1PegiP7Y8yrSJLO+lN8tUfRWTQa+ARpeXH98S2/5cV1yiG2mI73p5lc+EzecU4hjYQ80gfA8oEg/l9/W87xszYZB1j9Fl2NsmLq5ylgwmLuaKl/Irz8RT5qrmSGHir6UiMFBMY5TomNDO6LLRZZiK73eb/4Y9hlRpQ+8A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 12:56:52 +0100
Message-ID: <DGAEV1NFZF2A.2ATDMEFZAIZ5S@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 00/12] const-ify vendor checks
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <608472d0-517c-4bc5-b5c1-c278c4f6620b@suse.com>
 <DGACI1R7MGDO.1SB7OMQQZ1NC3@amd.com>
 <836c1ef7-4ec3-4c4a-b527-17066327ff19@suse.com>
In-Reply-To: <836c1ef7-4ec3-4c4a-b527-17066327ff19@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023CF:EE_|IA0PR12MB8085:EE_
X-MS-Office365-Filtering-Correlation-Id: 79e06539-bed9-4e17-9cf6-08de67d253ee
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?UDdPdzQwYXhMemhkQ0dYeUdTNm41Vm93RGdMNUt1a2dHZVV2TnVuZGo3WER4?=
 =?utf-8?B?VHVVc3dnRTRrczRtRUhQSlpxNUN5OWhHekdwTWIwc0Y1eFplcDUyeDYvUUQr?=
 =?utf-8?B?Mmc0TlYvZTd1V3pYTEppVStZT2J5dDVySzlreW5Mbk4vVEx5Rm43aWpZenFv?=
 =?utf-8?B?Sm1kVUpIZTkxNGhHZjRra252ODB1VWlOM1Q5RlY2eFVSUGVFRzFrOVFKaG5h?=
 =?utf-8?B?bHNDOSs2dUhXQVJ0V1RKeUFnVnAyMGpLRWNPQlZ1RkpMVllxRlV5RG5GV3J5?=
 =?utf-8?B?M3BwN1p6S3BHTEZxRlVHVFFXUko3N1VTNnYyS0s4ZlZTVjNVMzZPV3F5bXRv?=
 =?utf-8?B?a1BUTmtaVjYzdFpBMWhicGRCVzFHWkdqSXJmckJOKzRvQ2pzekxqV215d2x2?=
 =?utf-8?B?aGVIeUFjdEhhUFZuekkzaGtVeGhSZitTTW1XK2xobUZwWDlLQzhEcXJmL1V1?=
 =?utf-8?B?SFQraVZ2RGVhbUtrYUhOQnc1WVJPMVBRVUVLajdDbStZclhUL1NmRXlJUlBq?=
 =?utf-8?B?WXY2OE9zWk5tQzNnMFZUdTVBTzRGZityZnpVb1dINjJlSTVEdUxYUTBMd3BP?=
 =?utf-8?B?WXZaVjE2bGp6N0VkbGF5ZTJ0ZHRJV0RUT1ZnQlNUdzV6cXRVNFdkSTFBeXFR?=
 =?utf-8?B?bTROejF0RFNSR2dDeFExRXpNcGFFM29DUG14dHJFUGFQZm1Oc3Z1RDZoWXR4?=
 =?utf-8?B?Mkx3SWRZeDFXcW9FT3ZWK2dMb0dyRS9BTlhQaCtSOXVvdnJYMFMvZkF1UW1s?=
 =?utf-8?B?TCtBcmtvQ0xyY2ZURjFvVnlFRFA3MXhyZlQ5dVpmWTB5SzdhSEZxSm5yaXI0?=
 =?utf-8?B?QnJ3Yk1CclExbWdGQXVyS2lKdUkxVXFOZ1RvR1lwRmZHcEJuUkQzQmpBRG5s?=
 =?utf-8?B?WGhHN3FlcDk3cU1XbFkyR1U1b001WC9TZ3FXQU8wNlZqMlRmT0g5VzhBMURT?=
 =?utf-8?B?T2kvWFlHTlgyNlRqd1VyOW4xS3ZWYXQ4bHRWZ0NNOXNUZFovK25xTDNhVXo0?=
 =?utf-8?B?aWRtZjU3UTV3WlNoUUFJK0FaLzZCNDFKcVNTdkJSODlqKzhYd05tOEFJNG03?=
 =?utf-8?B?WjhzQ2N4bUFOaXZLOFN3YkVFWGs0a09QUkFBTjcyVWN0a3BUVFdXS0NNSGNX?=
 =?utf-8?B?alIwY1lGUHd2bGdaaTlCVzZhWGlSMkxFMUlCTG51eWdaTEJJYjZ3RmFxN01H?=
 =?utf-8?B?VUtHR2lEbHBNNUt5Vnk0b1UrSlZhMGpZYjdCb2ZtZGNjUWk0Rkh2ckl4c3hm?=
 =?utf-8?B?cHRreGhheG1hVmxhTTFNRUtOVEF1M2M3eEVjdGQ1SlgxZU56WTA1a2FQKzJq?=
 =?utf-8?B?cHhOUmExLzZUcExWZDhiV2J5aVhTdW9QVERmTzVKVmpNU2ZWakVUOEdJcFhP?=
 =?utf-8?B?a3lINEVXODhTRTRHQS9rWUlVcjJCUjZMeGtFRDV1R3FPMDFEdnFjZzhUSFNy?=
 =?utf-8?B?alRnL0tJUng1VERYTG1BUXF4N2JBVGNjak9xbkpkZFJpYWlhdXk5a2x5Zm44?=
 =?utf-8?B?VmFVTEFaTEZPY2dZUS90SDUrNVZPVTh2b25wb0ViMHRpTUhxRThPcHNHaU0w?=
 =?utf-8?B?aGZtbTE1MXVtNzFXVExWYTZKRVBnbEVwNCtUVFRWWmF6d0NBZ1d6WWNiV0VI?=
 =?utf-8?B?RFdtMTRWV1N3TkVDaTRTeXRpWHVFa0owOGpHdGpka0NRL3lKbGQ0Z1lZMjNZ?=
 =?utf-8?B?T1dhdUxQVFBUbUZYNUNrM0ZDQ0NFcEhPVnBoNFE5SzBoOFhWcEsxYU5qbFFh?=
 =?utf-8?B?QXFSeG1MNVZwclBob2RHL3F1L040bi9Md1dyWXg2RTJiNnpjVDRPa2FlNjB0?=
 =?utf-8?B?eFR6c0JvdGJRTWNNcGJQOFpBNXpSbldkdWtyM2V0N0RhcHh1NWg2U1haWFY0?=
 =?utf-8?B?RWwxdWd2LzRJTDlqODE4ZnRQbjB4Z1BFTndhbVFEcEZwR0UrbEwyM3ArRFBB?=
 =?utf-8?B?cytoamE4L1pZcWNHRE5wbmt1ZWY3RjJ6aUl1dURhazluUURxSmFLY1VaS0I5?=
 =?utf-8?B?cmttSVBmU2RjRzRoV0hOZVlPR1lvWWRTc0dXYVh4TEZiYVZvL0d5Vy96VGJy?=
 =?utf-8?B?TzZvQnV5UVVYYm5EMnB5dWNqRlZsVUFTUTRrbVNNWEx0VTNGMkFsWDJJaUtM?=
 =?utf-8?B?NzF2WGVRZ1ovdWJCWXN4MWVLMjdpRGpyOHNuRmFvODNnd0tNdVFzU3A3NUlx?=
 =?utf-8?B?RDBUYUFSS1BKOTNBbVFCTDZjd2lueTVRZGVpWkVHZW1ZdTc1eUp3WWVPeEY3?=
 =?utf-8?B?aXFqQU1zWG1rblYwNVA2SGlWeXdBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	geAKpG2khK4y8t7d4qI6PLJ5YBbsvT5Cv/KyTBev5SV9/5LmWsBCYka5t3vtYVmiQ51lfkYfyA71bf5a5T2k+7bLmGau27XoAMZeI4/YF2SHLI7sFU43iwX+L61LvVomQm6kiRhb5XIc9Tm1/NQkTrTPHG4P74HUBJadE0TlXyX2v917N9mtB2XW4HlfmncuRCiTAju3eaKhcYUuyKy7fKl/RL/ncXBTpGjQwhlKMAFnthdBaKtGBRAMD6B2GSrDwuaq8kmaweklQpY0PeCVCkvRU2XjUFV5oEVCPkQUhXZ2NbZnIGGbgbNQIR0QKqerp4ANMIVhcUKC1foS9KRZADkt9hHm/iInMBjDQN9gSTn1FUfW/+eg+o4k3oRvA6hZevBT7zKylxFntYHiVuMmWzlbYeBaOs9opOqvgx7ImwGY6YoxmG5F1WzeV6N1wDmK
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 11:56:58.0797
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 79e06539-bed9-4e17-9cf6-08de67d253ee
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023CF.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8085

On Mon Feb 9, 2026 at 11:15 AM CET, Jan Beulich wrote:
> On 09.02.2026 11:05, Alejandro Vallejo wrote:
>> On Mon Feb 9, 2026 at 10:21 AM CET, Jan Beulich wrote:
>>> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>>>> High level description
>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>
>>>> When compared to the RFC this makes a different approach The series in=
troduces
>>>> cpu_vendor() which maps to a constant in the single vendor case and to
>>>> (boot_cpu_data.vendor & X86_ENABLED_VENDORS), where X86_ENABLED_VENDOR=
S is a
>>>> mask of the compile-time chosen vendors. This enables the compiler to =
detect
>>>> dead-code at the uses and remove all unreachable branches, including i=
n
>>>> switches.
>>>>
>>>> When compared to the x86_vendor_is() macro introduced in the RFC, this=
 is
>>>> simpler. It achieves MOST of what the older macro did without touching=
 the
>>>> switches, with a few caveats:
>>>>
>>>>   1. Compiled-out vendors cause a panic, they don't fallback onto the =
unknown
>>>>      vendor case. In retrospect, this is a much saner thing to do.
>>>
>>> I'm unconvinced here. Especially our Centaur and Shanghai support is at=
 best
>>> rudimentary. Treating those worse when configured-out than when configu=
red-in
>>> feels questionable.
>>=20
>> Isn't that the point of configuring out?
>
> That's what I'm unsure about.

I'm really missing what you're trying to make, sorry. How, if at all, is it
helpful for a hypervisor with a compiled out vendor to be bootable on a mac=
hine
of that vendor?

>
>> Besides the philosophical matter of whether or not a compiled-out vendor
>> should be allowed to run there's the more practical matter of what to do
>> with the x86_vendor field of boot_cpu_data. Because at that point our ta=
ke
>> that cross-vendor support is forbidden is a lot weaker. If I can run an
>> AMD-hypervisor on an Intel host, what then? What policies would be allow=
ed? If I
>> wipe x86_vendor then policies with some unknown vendor would be fine. Sh=
ould the
>> leaves match too? If I do not wipe the field, should I do black magic to=
 ensure
>> the behaviour is different depending on whether the vendor is compiled i=
n or
>> not? What if I want to migrate a VM currently running in this hypothetic=
al
>> hypervisor? The rules becomes seriously complex.
>>=20
>> It's just a lot cleaner to take the stance that compiled out vendors can=
't run.
>> Then everything else is crystal clear and we avoid a universe's worth of=
 corner
>> cases. I expect upstream Xen to support all cases (I'm skeptical about t=
he
>> utility of the unknown vendor path, but oh well), but many downstreams m=
ight
>> benefit from killing off support for vendors they really will never touc=
h.
>
> To them, will panic()ing (or not) make a difference?

One would hope not because the're compiling them out for a reason.
But for upstream, not panicking brings a sea of corner cases. The ones I
mentioned above is not the whole list.

Turning the question around. Who benefits from not panicking?

>
>>>>   2. equalities and inequalities have been replaced by equivalent (cpu=
_vendor() & ...)
>>>>      forms. This isn't stylistic preference. This form allows the comp=
iler
>>>>      to merge the compared-against constant with X86_ENABLED_VENDORS, =
yielding
>>>>      much better codegen throughout the tree.
>>>>
>>>> The effect of (2) triples the delta in the full build below.
>>>>
>>>> Some differences might be attributable to the change from policy vendo=
r checks
>>>> to boot_cpu_data. In the case of the emulator it caused a 400 bytes in=
crease
>>>> due to the way it checks using LOTS of macro invocations, so I left th=
at one
>>>> piece using the policy vendor except for the single vendor case.
>>>
>>> For the emulator I'd like to point out this question that I raised in t=
he
>>> AVX10 series:
>>=20
>> There's no optimisation shortage for the emulator. For that patch I just
>> ensure I didn't make a tricky situation worse. It is much better in the =
single-vendor case.
>>=20
>>> "Since it'll be reducing code size, we may want to further convert
>>>  host_and_vcpu_must_have() to just vcpu_must_have() where appropriate
>>>  (should be [almost?] everywhere)."
>>>
>>> Sadly there was no feedback an that (or really on almost all of that wo=
rk) at
>>> all so far.
>>=20
>> It sounds fairly orthogonal to this, unless I'm missing the point.
>
> It's largely orthogonal, except that if we had gone that route already, y=
our
> codegen diff might look somewhat different.
>
>> In principle that would be fine. the vCPU features whose emulation requi=
res
>> special instructions are most definitely a subset of those of the host a=
nyway.
>>=20
>> I agree many cases could be simplified as you describe.
>>=20
>> I do see a worrying danger of XSA should the max policy ever exceed the
>> capabilities of the host on a feature required for emulating some instru=
ction
>> for that very feature. Then the guest could abuse the emulator to trigge=
r #UD
>> inside the hypervisor's emulation path.
>
> Well, that max-policy related question is why I've raised the point, rath=
er
> than making (more) patches right away.

All jmp_rel() macros have amd_like() inside, and other checks are open-code=
d
in many places. The problem is that offsets into the policy pointer (which
is stored in a register) end up being global accesses to an offset from a
non-register-cached 64bit address. And that adds up. having an amd_like boo=
lean
in the ctxt would've helped, but I went for the least intrusive solution.

I'm not sure how what you brought up would've helped for this particular co=
degen
matter.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 11:58:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 11:58:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225285.1531757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpPun-0003RW-TZ; Mon, 09 Feb 2026 11:58:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225285.1531757; Mon, 09 Feb 2026 11:58: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 1vpPun-0003RP-Qh; Mon, 09 Feb 2026 11:58:53 +0000
Received: by outflank-mailman (input) for mailman id 1225285;
 Mon, 09 Feb 2026 11:58: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=/dId=AN=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpPum-0003RJ-Im
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 11:58:52 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2974d2f-05ae-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 12:58:51 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN6PR03MB7720.namprd03.prod.outlook.com (2603:10b6:208:4f5::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 9 Feb
 2026 11:58:47 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 11:58: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: b2974d2f-05ae-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jVYs5eoRAAWVxiCDoSc77mL4lbPBcDEcLdW9npQDKTcGl94vFFZAToDKWFwij8l+2KQ1AMvVD/Iwfxh22s4RAGGVx0aFrjSddlNnq6AGRechPhACgkAjodLKk/Q9z3UAeVTvJ354FoS18lvD3fJKiTnj+kujJtfQDoJ4xN0UMfCg+Nk/oGyV3lu/2jd4tEEUtEPoD69STtqpnjL1PwC+zoIMoEs5LsZNIc+ljqWtSTGNXvBIz9SOtyWlTwSk74Jx8jq0caHok+d0eOnR2MIgfLlO/eN1PyuKsFPPsnzop6xBtnjjZFqXsPU0+ZJSasiz8eJyHRPQSWvXtapzu5yaWA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=r0DGAXHGXIXNsUsKpRHhHiF6pi8tCfQWKCvvhDIEBNo=;
 b=ouJ3rv029do76cBDqFJMSm5xUai8dIZVAdBfeomvEIXu3QZQOsfreMzFXQynMpy0q7VSnTtJFnCZAqacxuLjoLGPJ0EXhQtKIeqHU/vUiJUsFk1Ym3OeLmTTzEIdRYQokF0SbsLVYI6TK2BnLn5G8wZ4jMtgi448o/SChrrcDGO5s3y01QmKXp5d24pt9O5pGq4SlD+xzq398er4zpBMndbG4W5kbe5yOBZH3HF+c/L/F32RbLxxOHbCvU4wRo3o9OmXMcCIfLBApfWSXQhvgaQH7EhtRS9AvEG4vrRX2D0siVhr+lakhx5e17dhzqYyWo5lTEZi5XT4FCNOCmQYaQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=r0DGAXHGXIXNsUsKpRHhHiF6pi8tCfQWKCvvhDIEBNo=;
 b=Y+9InMNW5sOlqQWgUoMI/oduhl/Xhk/aSCT92fVQkTA+d7tBuxHGLsE5tq8Odjr+n3bfj5OfeJm3si+NHXB3Rc+75/DZaPbbRfxxRkA0XYUsW9rt4FiCeONCkog0k2ojWAy3pbFWjBM5xha80y6wRF5TmcVYRGlyGbDSrI3fW1k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1686f9db-dab3-4c8f-940e-1d93c9523dd2@citrix.com>
Date: Mon, 9 Feb 2026 11:58:43 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/hvm: Add x2APIC topology
To: Julian Vetter <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <20260209113721.2604894-1-julian.vetter@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260209113721.2604894-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0339.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN6PR03MB7720:EE_
X-MS-Office365-Filtering-Correlation-Id: a76cc3c0-e1ad-449b-fff7-08de67d294a4
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?SkFPd0hYdzY1MUhVQnh4MDRGTG1xem8wNFhobnhLZjJYUjFIRUNsalJiUzVC?=
 =?utf-8?B?RDdFRGZmVk5hZTd0anUxa0hKMThWZURndDFxOHhZdlhlNkk0dGtsaXFmUVh5?=
 =?utf-8?B?cXo2RVdWWVZDWFRVOC9kRWhBSFhLVFB0aEVLVWdtdmlXOUE4KzJoVzJySVhv?=
 =?utf-8?B?SDVCZnlDS1pWTzB1Rnc4a294cEJrQms4K1I1d1FUQzNTRVl5Z0NudGZJOEtM?=
 =?utf-8?B?RG0yeDdNSkxLKzhteEwwUEFxOGJYajZCSG9tQjZLZWJDT3FwdWtwWlpIZU5i?=
 =?utf-8?B?ckE1bG1EakVzQWxieFYxR1UxVDh0T2ZJdGdtdG92MG1sazNlajdyQ01WZWZR?=
 =?utf-8?B?SmFtaGlDd0JjU3AwSG1ia2MzS1Y1ZmhRNDlVVnA0Y1Q3ZUhhMUdEZnVsMWVi?=
 =?utf-8?B?eWZvYWdPblMrS1J5WUVXNWJ0cnBZaCtmcVhEOWVrM2w0RWhVS0M0bEdzc2cx?=
 =?utf-8?B?ZGhSSjhtZkYvbkpMSmZqY2hoK05xUTVxQy9FUk8xd0xkVnI5eUNaVy83ZWMy?=
 =?utf-8?B?Q0hFTlFtVVJTOGRWTVFwN3VwMXVBcHM5Yk4xeTlPTlpTdWoySFFGTXZRQzBX?=
 =?utf-8?B?bUUxR0NqNUJDNnpQbXpFQWdybTJIRXNycFpyYWV4TjM0cVJTYXI5SmxiazBo?=
 =?utf-8?B?ZDB5b0lNdiszcDNwNHphaVdWM2NocnR4dlVHTTVrUnZzNTNNalRSdUNtOUZ4?=
 =?utf-8?B?SWNEQUgrVFhLemthaEJrQ0hlakxPb0FXTzZacnpqVVpxMVRqeUluTFZQWnJ2?=
 =?utf-8?B?YTRxMmlRMFlHSnlLMzdpY2F3L0JSN1pndVdTQ0ErVkJqVDBDRzlBR0FEZG01?=
 =?utf-8?B?aGx2cjRqU3FtZ3RnVnRFVnJiMW85RHRLcFdFck1aZlRIdjJQdnU1RVJUY1lG?=
 =?utf-8?B?NWttcnBJOFk0R1VYdXJUTStlWWZQMVRvNW9zaFJiZ3gxYXluNkxoaUtQN3BO?=
 =?utf-8?B?U2UzSFUvWjY4OVpzVy8yd08zQ0RlTHZMSHdiWHV5Rk81aWQyZFd1akkwOXpD?=
 =?utf-8?B?aHkrQXFxa0xPTzBxTU5neDRNY1dyZHhiZlk5Vm1GOERPaEsxeUJVaFN2MVZB?=
 =?utf-8?B?WU9zODJRUC8rSkJmRHBPZXNBTCtSVWxvaGp2Rk04T1owZHZrZXBGRTBqRG1N?=
 =?utf-8?B?R0ZGU3dVU2hCNUQzaGJtMWlnbEZqemdzbVpUV2lGa0F0Tk45SUdwMGFDbFpS?=
 =?utf-8?B?Qll4VHdrTVdxa3M5RE1lQWdGMlhmSWptdUlBSEZIcS95Uy9wN1JwSDRGTmVy?=
 =?utf-8?B?amdTUWJaRm5VdTJkR2lvc3RHUWtheHYwMkpybnVKZDRRbnUrMTZXRnlDVWFD?=
 =?utf-8?B?Ni92N2tnMWpNeklTZ2JNMEtsUlRCRytsMENhT1RSNU5RN1JxTHdXTEkxcjF6?=
 =?utf-8?B?dUtDRFpUbWZrRm4rZmdCUEJ4ZU9nck1CWGVLTGpzbHVzc2RpNkVySXRqQnFZ?=
 =?utf-8?B?anArcllJNW45YUxOTWpzTkxLTFZJN21RQ3FFQ1FvYmNmWm5SVXdJQXFwV3Yw?=
 =?utf-8?B?RHkyMUp6bmxiOGJJckdTc1k5TWRQTGxBNGdKY1NXVzlyTTRyRVZTKzdCUk0v?=
 =?utf-8?B?VkQxV3ZDd05MVHBEN3dQMXhjU1FrRjhRZlBjTG5CQlhvbGhyem85eFVsVkxU?=
 =?utf-8?B?YmhoRHZRQWpWbG8zWHRLNFpDbXNZNGJBMGd6cjYzQVoreHRyVTkzRUUwb3hW?=
 =?utf-8?B?Wnl3QnI4Y0xEWGxQcTYxdnRhUmowUWVXcHZYdmEwazgrOUFGQkxPd0JOZFBW?=
 =?utf-8?B?K2ZQS1JDeVdMT1N1WHhENjYrZzlJS1Z2cEluc2NtMUtrUXRLRkQrWXhWRHRC?=
 =?utf-8?B?NmxGRTRqMzc1Q25EWWd4dEk2aTZWaC9UZWNSNnp4U1pGajdOdXpldVI3NFNq?=
 =?utf-8?B?ZmJBYkJxQ1hrNlRNTVYwencranVDeU9wRVJpM2VDdkNCRzJWTGNiNUhlYmov?=
 =?utf-8?B?S3lmK2xYdWRaZTdtS242UU5nRWROTklsNDkxYVlLZzZxdlhiQkN4S2dqNG44?=
 =?utf-8?B?VVNFNnpIK1VISlRMb3JmcHFrZVczaTdNY1d2aGxocVRmSkh6ZnJtU1RiWVpR?=
 =?utf-8?B?VXQydjFrMk1TTktkanphL1NERXhxamlEZmJuZnhzT05nT051VGNudUM1Q1k0?=
 =?utf-8?Q?TPuc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bjdHSnBLako2VElDZUFVcnVnNWlFVmRrbVl6MS9FbW9QT1V1QitNcStDSVhv?=
 =?utf-8?B?Y3pQUG9nUG5lUS9SQ1RXdGUvYlRHakJFZEk4aENVUHpWTktudW9SZ2JOTjk1?=
 =?utf-8?B?a2pTajUrWnNaRkRiZzc1dkRsemJqbSs1cUtXQzY4RFQxS0NjZXg5VFBSRjZh?=
 =?utf-8?B?SFZBdWtvbm43dnpXOVJqRmFwR25xc01QNHc2cG9Yd05UK3lZdEErWnhudHlj?=
 =?utf-8?B?OHBWRGtHaGJHNTNmcWFIcnBrRm9IU0xscWZScVRyNGV4N0h6alU4NVF0REVj?=
 =?utf-8?B?My9DN3hJV0YvMUdEQnd6NkIwQTF4ZzFjaWJXSkNJQUlIekM1aEh3OURESGNW?=
 =?utf-8?B?cWV6ZjZrYU5uSkp4ZE44OStBOHQ0VkJCWC9QZTFDNGQyS2grWFM1ZEJ0andy?=
 =?utf-8?B?bVd2YXdyME9WbXpZSDJVaXVGUEQ2c0JTU29lTVpkN0FwV1lFT0JPY05Wby94?=
 =?utf-8?B?ZS9qaDJyWTdORWgyckdRcXVIYVdNbTZoRG5PaUFRQng2ZWFaZUtqV0pURHhK?=
 =?utf-8?B?N0N2WlBuZ2hpQUtXaGlnUFhPU2UwUWZ0U2llRC9JN1ZtUFo1MUZZeHRoeUNH?=
 =?utf-8?B?SkQ2WEVwdmo4OWFjUThFSkFsQ0JielVZaUJlZkhERG1rS0g1R0pUYkJWS2hy?=
 =?utf-8?B?dFlyUVlGL2JGWnk5TlRFMHU3OS83cFA0ZnhYOGhwM3lSN214NlFDRUVtemNr?=
 =?utf-8?B?MVR1Y2F1dEJKRFFidVJHSXlmK0tML0YwUFBOOTRDbWNTZUFSenI4QytYU0tO?=
 =?utf-8?B?TUgrT2ZiYlJZVUlkZVFpSG8zb0taOTNRUWVrZ1dWZ0szc0hZM1lyQXpGbnE5?=
 =?utf-8?B?M296cTRuWjlwVFI0N21lemlUYnArN2VNYnI5WmFJcDBUWVpERlRmS0Nlelky?=
 =?utf-8?B?RzZxL0R3QmhKNUtDbHZXcWJQMTNPU1RVd01yMi9OVWJoM2tjcW9TZGxWbUNF?=
 =?utf-8?B?Z1pWSVhCRlkvZEYybzlsaXJJSzk0RDc4WWcxMW1XQSsrY2ZrRitoV2JqWVNM?=
 =?utf-8?B?VVdnZE5Sb2RMVlUrTXNtUVVrRytIcStzT3UxNGZjL24xaWFueWJqa2ZXSkRW?=
 =?utf-8?B?T2F3OWlqRVNmdkFtNGVRQ3dVWVVnNDBOK2NyVEtCMDZ0MlNZL0tQUEhPY09N?=
 =?utf-8?B?OHdrbUtqL09nQklYaitCRTBuWCtqM1pIU3pEL3o0RkVoTEltSzRhMHdTSHo0?=
 =?utf-8?B?c2RCN3hXSzNEL0NtVE96QkNPSW9PZEZtdHVKQ3l3dTNJK2FiMGZ5ZUFqeEJD?=
 =?utf-8?B?aEtvZlpwTGxFOGdKYXM3bEVqd2w5ZFc4cXBVOHliQ3IzckxGVmZncTBIQXhJ?=
 =?utf-8?B?aDQ0Y1VpYWJEdGNZNk5mYkQzeDUyUzBXMTl2d2NYTDByb2ZNWStXbVczMHFQ?=
 =?utf-8?B?Vzg1NCtwUUtEVitHTE5rWGhpb2hSWXNJNlNERi94QUJWVEFYUXlzQTJ5bVNM?=
 =?utf-8?B?VzNzL2hlakt4bU5mbXpLdGhVYmFYN0VlWHQ1M0QxSExWcmdQT2o3Y1o3OUN5?=
 =?utf-8?B?ek9lQ0xwME1xWmdBcXdUbU56N0x5WUJyK0lGT3h4NlR2RUlSbW1aZ2VhSFR5?=
 =?utf-8?B?UjJlcC9yUDBwTzM4TTQ1L0x0NU5XT2tLa2xOaWRsUDI5NS9jYjVaY2tXVWJ4?=
 =?utf-8?B?RlFKOUJKUUQxU3hxbU1rTEpPQmZ0SmNuOHF3MHA2dzJmRG9ndDFzbUJBNjBn?=
 =?utf-8?B?ZElZb2gyaXdVT1NmeCtsZjNUM2tOR3pRd0IvRmIrOHFvODZMWmkvQzRnOUdH?=
 =?utf-8?B?a3hqMFpVSTZ1RkZsODI0ck1vWjlNeTFoS0taSVlaZlZ3YWZkRFd5bWMxN2NS?=
 =?utf-8?B?TlpxY0dUcDFZRzZFdlZLQzRNV09xTVRZdDRIS3l6bStoeG0rVXFGS1JBNHZW?=
 =?utf-8?B?bFRxTGhabWU2ek9LTVFUYmwyMEZkMTBHTC9LakRNdC90TkJxWUtvTDljQUk2?=
 =?utf-8?B?Zlp3cWpxc1BXeWE5TEEvUlhnTWY2SERMUmtDZHRsY2E1L0Z2U3BRalJyb29z?=
 =?utf-8?B?T0lMU01YNmphSTBDVGhOWktPUVZUMmp1Q0RPMytHWTM3RHRHb1lvSTVlVDY3?=
 =?utf-8?B?WHN1S01FaVVvc2RmMFk5a3BvZ25EdVdCNlMxVStCbGN3WU83OUx6UFhNUDZo?=
 =?utf-8?B?L3dFdS9TYzJSbEVpNlhtTjcrVTdDendpRWRBcndMdk5MTjVWdS9UajJFczZD?=
 =?utf-8?B?UWQrc1FTVkpCaXdGanB2S0daU2RDZWpWYTRBZ0lqM2dZZEVZQ3lWenV6d0N1?=
 =?utf-8?B?bjJOYnZ1Mm9ycjVJK2hnMzlvZlFQcWtKdUJ4OW1keTEybjZMUTFpOXd0MXVU?=
 =?utf-8?B?bXlrQi80YytreUpuTGZFWHYvMFlDemhSbnVaZ0k1YjV5a1NQNWhTdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a76cc3c0-e1ad-449b-fff7-08de67d294a4
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 11:58:46.8555
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MnxBXbApCsSgh+EaH1hUXCMjW25+PfTeq+/JI+5rQhvfiqnEOZhxmZgsTKsakzyp7an2cR2gNb/qLD+tL05qok0+RKb5WDt1jgGI5Tr7oSI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR03MB7720

On 09/02/2026 11:37 am, Julian Vetter wrote:
> HVM guests with more than 128 vCPUs require APIC IDs above 255 (since
> APIC ID = vcpu_id * 2), which exceeds the 8-bit xAPIC limit. Currently,
> CPUID leaf 0xB returns EBX=0, making firmware (OVMF/EDK2) fall back to
> CPUID leaf 1 for APIC ID discovery, which is limited to 8 bits and
> cannot distinguish vCPUs with APIC IDs greater than 256.
> To address this, implement proper CPUID leaf 0xB x2APIC topology
> enumeration. Present all vCPUs as cores in a single package with correct
> shift values based on the maximum APIC ID, and non-zero EBX so that
> firmware uses the 32-bit x2APIC ID from EDX. Moreover, set CPUID leaf 1
> EBX[23:16] (max addressable logical processor IDs) to the appropriate
> power-of-2 value, but capped at 255.
>
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>

This may work for cleanly booted VMs, but it's unsafe and will cause VMs
to crash on migrate.

The toolstack needs to choose the APIC IDs and topology.  Alejandro had
a series working on this problem, which needs picking back up. 
https://lore.kernel.org/xen-devel/20241021154600.11745-1-alejandro.vallejo@cloud.com

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 12:30:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 12:30:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225300.1531769 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpQPW-0000FX-Bi; Mon, 09 Feb 2026 12:30:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225300.1531769; Mon, 09 Feb 2026 12: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 1vpQPW-0000FQ-7b; Mon, 09 Feb 2026 12:30:38 +0000
Received: by outflank-mailman (input) for mailman id 1225300;
 Mon, 09 Feb 2026 12: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=MoWW=AN=bounce.vates.tech=bounce-md_30504962.6989d369.v1-83dfc58c492b4955aa7410bdef83aa34@srs-se1.protection.inumbo.net>)
 id 1vpQPV-0000FK-16
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 12:30:37 +0000
Received: from mail177-22.suw61.mandrillapp.com
 (mail177-22.suw61.mandrillapp.com [198.2.177.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2142db85-05b3-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 13:30:34 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-22.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4f8kYj3m7NzGlspS5
 for <xen-devel@lists.xenproject.org>; Mon,  9 Feb 2026 12:30:33 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 83dfc58c492b4955aa7410bdef83aa34; Mon, 09 Feb 2026 12:30:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2142db85-05b3-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770640233; x=1770910233;
	bh=TfENv7311CbqQTHZdmTk5osd0PeqUAge6A03sADL0to=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=jnNTh1wQUB0i+0aCdmjW+TEhpJC3RBmA/UHU3pZ312mixmiH6IYIyxlqYf3/itEvW
	 ZAg7MNQ1m2I4x2hjWoKmRnB0mx0kwkhDI+SgA15f675VZOmY0OkQ9qWHeuLR5rRLlH
	 X32opi53i+lIF48pNIu3CZjgNnIFbZz2zrrKYPFla1+au6uSZsYliKyIgasm595kn4
	 ThjXiJq1dcg4GJvLQVeD5uDtqMlVCj6ixDbO8pLWmRta+Me1fJc0RXRT4yK8stsed/
	 lH3OR6mJY7rB9HWx1HvhDQFK19HBP7JDnWqVQLQgBVkWJzpZYpmt8axsvkmO8bR7En
	 3AET6lBvDS0qw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770640233; x=1770900733; i=julian.vetter@vates.tech;
	bh=TfENv7311CbqQTHZdmTk5osd0PeqUAge6A03sADL0to=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=vYaceytzXnH1/JB/7kZpZj3Hm2fNaW3/zb/ZyqjcJytATRWDC4XSphZVin267oI6I
	 gCOkIxr0wfMtn/l/htNzX5o7z8UB4kxkop1hWuInTBvAeZKYECdB4CL5QZE+j65kEF
	 i7HV8PUAI8ppStJsWADuZX2UjkOkvdf1VU95Iv0IfwckglSSPkUYSYUtd2Ot8So2fS
	 ha1jt7vwyNSiDmKT0VfThLOidhXRNLBsy0UbCIuaSD5lVxnqGdmZZT+m04hAJuhOsO
	 nVTzKZc1x0aIlPdhADT9HsAyYUkdhfWT1cgMWq1OTD7Ec1ALUA25wJs9qdH/iVBmOI
	 4oLSPApkFyKNA==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770640232140
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260209123025.2628513-1-julian.vetter@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.83dfc58c492b4955aa7410bdef83aa34?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260209:md
Date: Mon, 09 Feb 2026 12:30:33 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A single shared ioreq page provides PAGE_SIZE/sizeof(struct ioreq) = 128
slots, limiting HVM guests to 128 vCPUs. To support more vCPUs, extend
the ioreq server to allocate multiple contiguous ioreq pages based on
the max number of vCPUs. This patch replaces the single ioreq_page with
an array of pages (ioreq_pages). It also extends the GFN allocation to
find contiguous free GFNs for multi-page mappings. All existing
single-page paths (bufioreq, legacy clients) remain unchanged.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
 xen/arch/x86/hvm/ioreq.c | 160 ++++++++++++++++++++++++++++++---------
 xen/common/ioreq.c       | 145 +++++++++++++++++++++++------------
 xen/include/xen/ioreq.h  |  13 +++-
 3 files changed, 230 insertions(+), 88 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index a5fa97e149..a5c2a4baca 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -71,6 +71,38 @@ static gfn_t hvm_alloc_legacy_ioreq_gfn(struct ioreq_server *s)
     return INVALID_GFN;
 }
 
+static gfn_t hvm_alloc_ioreq_gfns(struct ioreq_server *s,
+                                  unsigned int nr_pages)
+{
+    struct domain *d = s->target;
+    unsigned long mask = d->arch.hvm.ioreq_gfn.mask;
+    unsigned int i, run;
+
+    /* Find nr_pages consecutive set bits */
+    for ( i = 0, run = 0; i < BITS_PER_LONG; i++ )
+    {
+        if ( test_bit(i, &mask) )
+        {
+            if ( ++run == nr_pages )
+            {
+                /* Found a run - clear all bits and return base GFN */
+                unsigned int start = i - nr_pages + 1;
+                for ( unsigned int j = start; j <= i; j++ )
+                    clear_bit(j, &d->arch.hvm.ioreq_gfn.mask);
+                return _gfn(d->arch.hvm.ioreq_gfn.base + start);
+            }
+        }
+        else
+            run = 0;
+    }
+
+    /* Fall back to legacy for single page only */
+    if ( nr_pages == 1 )
+        return hvm_alloc_legacy_ioreq_gfn(s);
+
+    return INVALID_GFN;
+}
+
 static gfn_t hvm_alloc_ioreq_gfn(struct ioreq_server *s)
 {
     struct domain *d = s->target;
@@ -121,52 +153,95 @@ static void hvm_free_ioreq_gfn(struct ioreq_server *s, gfn_t gfn)
     }
 }
 
+static void hvm_free_ioreq_gfns(struct ioreq_server *s, gfn_t gfn,
+                                unsigned int nr_pages)
+{
+    unsigned int i;
+
+    for ( i = 0; i < nr_pages; i++ )
+        hvm_free_ioreq_gfn(s, _gfn(gfn_x(gfn) + i));
+}
+
 static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return;
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
+
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            continue;
 
-    destroy_ring_for_helper(&iorp->va, iorp->page);
-    iorp->page = NULL;
+        destroy_ring_for_helper(&iorp->va, iorp->page);
+        iorp->page = NULL;
 
-    hvm_free_ioreq_gfn(s, iorp->gfn);
-    iorp->gfn = INVALID_GFN;
+        hvm_free_ioreq_gfn(s, iorp->gfn);
+        iorp->gfn = INVALID_GFN;
+    }
 }
 
 static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
+    gfn_t base_gfn;
     int rc;
 
-    if ( iorp->page )
+    /* Check if already mapped */
+    for ( i = 0; i < nr_pages; i++ )
     {
-        /*
-         * If a page has already been allocated (which will happen on
-         * demand if ioreq_server_get_frame() is called), then
-         * mapping a guest frame is not permitted.
-         */
-        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-            return -EPERM;
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
 
-        return 0;
+        if ( iorp->page )
+        {
+            /*
+             * If a page has already been allocated (which will happen on
+             * demand if ioreq_server_get_frame() is called), then
+             * mapping a guest frame is not permitted.
+             */
+            if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+                return -EPERM;
+
+            return 0;
+        }
     }
 
     if ( d->is_dying )
         return -EINVAL;
 
-    iorp->gfn = hvm_alloc_ioreq_gfn(s);
+    /* Allocate contiguous GFNs for all pages */
+    base_gfn = buf ? hvm_alloc_ioreq_gfn(s) : hvm_alloc_ioreq_gfns(s, nr_pages);
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+    if ( gfn_eq(base_gfn, INVALID_GFN) )
         return -ENOMEM;
 
-    rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
-                                 &iorp->va);
+    /* Map each page */
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
+
+        iorp->gfn = _gfn(gfn_x(base_gfn) + i);
 
-    if ( rc )
-        hvm_unmap_ioreq_gfn(s, buf);
+        rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
+                                     &iorp->va);
+        if ( rc )
+            goto fail;
+    }
+
+    return 0;
+
+fail:
+    /* Unmap any pages we successfully mapped */
+    while ( i-- > 0 )
+    {
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
+
+        destroy_ring_for_helper(&iorp->va, iorp->page);
+        iorp->page = NULL;
+        iorp->gfn = INVALID_GFN;
+    }
+    hvm_free_ioreq_gfns(s, base_gfn, nr_pages);
 
     return rc;
 }
@@ -174,32 +249,43 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return;
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
+
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            continue;
 
-    if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
-        domain_crash(d);
-    clear_page(iorp->va);
+        if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
+            domain_crash(d);
+        clear_page(iorp->va);
+    }
 }
 
 static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
     int rc;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return 0;
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
 
-    clear_page(iorp->va);
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            continue;
 
-    rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
-    if ( rc == 0 )
-        paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
+        clear_page(iorp->va);
 
-    return rc;
+        rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
+        if ( rc )
+            return rc;
+
+        paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
+    }
+    return 0;
 }
 
 int arch_ioreq_server_map_pages(struct ioreq_server *s)
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..13c638db53 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -95,12 +95,15 @@ static struct ioreq_server *get_ioreq_server(const struct domain *d,
 
 static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
 {
-    shared_iopage_t *p = s->ioreq.va;
+    unsigned int vcpu_id = v->vcpu_id;
+    unsigned int page_idx = vcpu_id / IOREQS_PER_PAGE;
+    unsigned int slot_idx = vcpu_id % IOREQS_PER_PAGE;
+    shared_iopage_t *p = s->ioreqs.page[page_idx].va;
 
     ASSERT((v == current) || !vcpu_runnable(v));
     ASSERT(p != NULL);
 
-    return &p->vcpu_ioreq[v->vcpu_id];
+    return &p->vcpu_ioreq[slot_idx];
 }
 
 /*
@@ -260,84 +263,120 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
 
 static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     struct page_info *page;
+    unsigned int i, j, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
 
-    if ( iorp->page )
+    for ( i = 0; i < nr_pages; i++ )
     {
-        /*
-         * If a guest frame has already been mapped (which may happen
-         * on demand if ioreq_server_get_info() is called), then
-         * allocating a page is not permitted.
-         */
-        if ( !gfn_eq(iorp->gfn, INVALID_GFN) )
-            return -EPERM;
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
 
-        return 0;
-    }
+        if ( iorp->page )
+        {
+            /*
+             * If a guest frame has already been mapped (which may happen
+             * on demand if ioreq_server_get_info() is called), then
+             * allocating a page is not permitted.
+             */
+            if ( !gfn_eq(iorp->gfn, INVALID_GFN) )
+                return -EPERM;
+            continue;  /* Already allocated */
+        }
 
-    page = alloc_domheap_page(s->target, MEMF_no_refcount);
+        page = alloc_domheap_page(s->target, MEMF_no_refcount);
+        if ( !page )
+            goto fail;
 
-    if ( !page )
-        return -ENOMEM;
+        if ( !get_page_and_type(page, s->target, PGT_writable_page) )
+        {
+            /*
+             * The domain can't possibly know about this page yet, so failure
+             * here is a clear indication of something fishy going on.
+             */
+            put_page_alloc_ref(page);
+            domain_crash(s->emulator);
+            return -ENODATA;
+        }
 
-    if ( !get_page_and_type(page, s->target, PGT_writable_page) )
-    {
-        /*
-         * The domain can't possibly know about this page yet, so failure
-         * here is a clear indication of something fishy going on.
-         */
-        domain_crash(s->emulator);
-        return -ENODATA;
-    }
+        /* Assign early so cleanup can find it */
+        iorp->page = page;
 
-    iorp->va = __map_domain_page_global(page);
-    if ( !iorp->va )
-        goto fail;
+        iorp->va = __map_domain_page_global(page);
+        if ( !iorp->va )
+            goto fail;
+
+        clear_page(iorp->va);
+    }
 
-    iorp->page = page;
-    clear_page(iorp->va);
     return 0;
 
- fail:
-    put_page_alloc_ref(page);
-    put_page_and_type(page);
+fail:
+    /* Free all previously allocated pages */
+    for ( j = 0; j <= i; j++ )
+    {
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[j];
+        if ( iorp->page )
+        {
+            if ( iorp->va )
+                  unmap_domain_page_global(iorp->va);
+            iorp->va = NULL;
+            put_page_alloc_ref(iorp->page);
+            put_page_and_type(iorp->page);
+            iorp->page = NULL;
+        }
+    }
 
     return -ENOMEM;
 }
 
 static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-    struct page_info *page = iorp->page;
+    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
 
-    if ( !page )
-        return;
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
+        struct page_info *page = iorp->page;
 
-    iorp->page = NULL;
+        if ( !page )
+            continue;
+
+        iorp->page = NULL;
 
-    unmap_domain_page_global(iorp->va);
-    iorp->va = NULL;
+        unmap_domain_page_global(iorp->va);
+        iorp->va = NULL;
 
-    put_page_alloc_ref(page);
-    put_page_and_type(page);
+        put_page_alloc_ref(page);
+        put_page_and_type(page);
+    }
 }
 
 bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
 {
     const struct ioreq_server *s;
-    unsigned int id;
+    unsigned int id, i;
     bool found = false;
 
     rspin_lock(&d->ioreq_server.lock);
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
     {
-        if ( (s->ioreq.page == page) || (s->bufioreq.page == page) )
+        if ( s->bufioreq.page == page )
         {
             found = true;
             break;
         }
+
+        for ( i = 0; i < NR_IOREQ_PAGES; i++ )
+        {
+            if ( s->ioreqs.page[i].page == page )
+            {
+                found = true;
+                break;
+            }
+        }
+
+        if ( found )
+            break;
     }
 
     rspin_unlock(&d->ioreq_server.lock);
@@ -348,9 +387,11 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
 static void ioreq_server_update_evtchn(struct ioreq_server *s,
                                        struct ioreq_vcpu *sv)
 {
+    unsigned int page_idx = sv->vcpu->vcpu_id / IOREQS_PER_PAGE;
+
     ASSERT(spin_is_locked(&s->lock));
 
-    if ( s->ioreq.va != NULL )
+    if ( s->ioreqs.page[page_idx].va != NULL )
     {
         ioreq_t *p = get_ioreq(s, sv->vcpu);
 
@@ -579,6 +620,7 @@ static int ioreq_server_init(struct ioreq_server *s,
 {
     struct domain *currd = current->domain;
     struct vcpu *v;
+    unsigned int i;
     int rc;
 
     s->target = d;
@@ -590,7 +632,8 @@ static int ioreq_server_init(struct ioreq_server *s,
     INIT_LIST_HEAD(&s->ioreq_vcpu_list);
     spin_lock_init(&s->bufioreq_lock);
 
-    s->ioreq.gfn = INVALID_GFN;
+    for ( i = 0; i < NR_IOREQ_PAGES; i++ )
+        s->ioreqs.page[i].gfn = INVALID_GFN;
     s->bufioreq.gfn = INVALID_GFN;
 
     rc = ioreq_server_alloc_rangesets(s, id);
@@ -768,8 +811,9 @@ static int ioreq_server_get_info(struct domain *d, ioservid_t id,
             goto out;
     }
 
+    /* Just return the first ireq page because the region is contigeous */
     if ( ioreq_gfn )
-        *ioreq_gfn = gfn_x(s->ioreq.gfn);
+        *ioreq_gfn = gfn_x(s->ioreqs.page[0].gfn);
 
     if ( HANDLE_BUFIOREQ(s) )
     {
@@ -822,12 +866,13 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
         *mfn = page_to_mfn(s->bufioreq.page);
         rc = 0;
         break;
+    case XENMEM_resource_ioreq_server_frame_ioreq(0) ...
+         XENMEM_resource_ioreq_server_frame_ioreq(NR_IOREQ_PAGES - 1):
+        unsigned int page_idx = idx - XENMEM_resource_ioreq_server_frame_ioreq(0);
 
-    case XENMEM_resource_ioreq_server_frame_ioreq(0):
-        *mfn = page_to_mfn(s->ioreq.page);
+        *mfn = page_to_mfn(s->ioreqs.page[page_idx].page);
         rc = 0;
         break;
-
     default:
         rc = -EINVAL;
         break;
diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
index e86f0869fa..8604311cb4 100644
--- a/xen/include/xen/ioreq.h
+++ b/xen/include/xen/ioreq.h
@@ -19,9 +19,16 @@
 #ifndef __XEN_IOREQ_H__
 #define __XEN_IOREQ_H__
 
+#include <xen/lib.h>
 #include <xen/sched.h>
 
 #include <public/hvm/dm_op.h>
+#include <public/hvm/hvm_info_table.h>
+#include <public/hvm/ioreq.h>
+
+/* 4096 / 32 = 128 ioreq slots per page */
+#define IOREQS_PER_PAGE  (PAGE_SIZE / sizeof(struct ioreq))
+#define NR_IOREQ_PAGES   DIV_ROUND_UP(HVM_MAX_VCPUS, IOREQS_PER_PAGE)
 
 struct ioreq_page {
     gfn_t gfn;
@@ -29,6 +36,10 @@ struct ioreq_page {
     void *va;
 };
 
+struct ioreq_pages {
+    struct ioreq_page page[NR_IOREQ_PAGES];
+};
+
 struct ioreq_vcpu {
     struct list_head list_entry;
     struct vcpu      *vcpu;
@@ -45,7 +56,7 @@ struct ioreq_server {
     /* Lock to serialize toolstack modifications */
     spinlock_t             lock;
 
-    struct ioreq_page      ioreq;
+    struct ioreq_pages     ioreqs;
     struct list_head       ioreq_vcpu_list;
     struct ioreq_page      bufioreq;
 
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 12:35:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 12:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225307.1531779 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpQU7-0000oz-SD; Mon, 09 Feb 2026 12:35:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225307.1531779; Mon, 09 Feb 2026 12:35: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 1vpQU7-0000os-OI; Mon, 09 Feb 2026 12:35:23 +0000
Received: by outflank-mailman (input) for mailman id 1225307;
 Mon, 09 Feb 2026 12:35: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpQU6-0000om-JS
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 12:35:22 +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 cc221e0a-05b3-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 13:35:21 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-47f5c2283b6so41803335e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 04:35:21 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48320719bf4sm235392125e9.10.2026.02.09.04.35.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 04:35:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cc221e0a-05b3-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770640520; x=1771245320; 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=N+hp/aSkHJOSFk6DnUkbT9zdwF2I8VnnRCpfMv/e/Tg=;
        b=m3e4WLvoBpGYdgpWvlqKJ/wHYk8fst/pQZdwBt3NDFMAxOf2ZKwAWP76LXlaZSpubP
         62zsy4yNKcTlDHpB0DY1KJpMBi4Wwiq05rLJy5Uylj/8htfVmcm1bxcqEN9Uatt2YsY2
         rTQ//iCwIKq+lEOityBhzqXlVpi8nELrG8UyTI79bK8T6P1fe4ZICFX9rPpgOtdeNb+v
         a0b6hTpR+urr1aC6sEczd4aCwOIPdDPxBa3h869hrl4JQMQ/rxlZA1iPNctIXQItBx/M
         H+xUM3WFFoe3QQiUvU1td3rN1VwdgNMr1GuPcBfbI8Nw6Yb2AAbaYtNVucg8h66Q2Qht
         3lcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770640520; x=1771245320;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=N+hp/aSkHJOSFk6DnUkbT9zdwF2I8VnnRCpfMv/e/Tg=;
        b=U1NnriSAar9X9ifh1uuD+k58F1yAXWdvLyEPNL/os9fLjfiRm/6UZKXlLnjQQC/JnO
         +AuTWFKZkqSFEeZ+T4S7BMyWJ6LFZ94vna9m/gPextoUkjXdWYCaq8WPXcEDpZE4VmYG
         lfhSJcJQzC1Q8bZ+AIWwvUil+lAbI3IGhjku/bID0WOKIsJkFtJh0q1NztHIOMkVORnz
         M0y/yfdhV/KiNBAzfrrFWjeKzIkWBIUb7fdE0CIO4VygJUNRKR5OhR0H5nIM3JUhu8ue
         hSNpM1i+SjC+XfcEjMA+5sLJBvcHcC5bRRNiI8fu3Y3p/PfW7iOJJv/0REKGh2J88kyp
         ECfw==
X-Forwarded-Encrypted: i=1; AJvYcCUDQD70PtIi5Za2lb8fTCOZpN+mUyWeici/xJqd9HBgg0wWAV8uQ+Ip7tkkHs8rc6xFYdLqL2cOaJU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwGANBGPaK2b3WL+KlXOTpKlJyc/wxX38xCcbBrTbK5yGusZXeb
	KGD8Bbha5bxrN6L8rPQNnBfTnxJUi983zMw/seB5kYWBnX9nA/xsXD/5
X-Gm-Gg: AZuq6aJzrbWtm+hWdAXsN5FiNBrVvjmYI3chuY+0oi62zQO/fHb235X3L1ePi1DQm+t
	yVqXV8HPECfvtGiViQWbrUMej2fPMj22VOMcwnrj+TvoBQwpKoS/ro9jVJP5STrSO2/OiOIO2y2
	pldPdMKzl+94rl4yLL3LthNHPHcBhAbDSpkqyx3o/mk4R2V3KVh18zV7az8lkAxZ90NMQT3mpXu
	py1ETnEATcogiTFevNQWAxBZw6au4k+SvHqhJuOUf9PBkenIm+Pe1HXWpPEO8pAgyUnyGrNskB7
	gRKDBWViv0ijatsN5M6NQNd2FJRwEfsNqwjTF5j8W0/oOs+IXBqiQc0aq7nWm7NWaNdKpFtxRFV
	KscUERQpmQ2AGcUuFS9Kqo5VXtFlHywhmjhHqpjMqDOGCGbrYBeaRK0FTAEggCvi6tbhdfG/p/q
	HYecNhyjcjAmA6xhvVkkZfhe6yYKzHRjR2eDleRMlMoOzKmZp8oMSoLWStPyuBVME=
X-Received: by 2002:a05:600c:4fc8:b0:480:19ed:7efa with SMTP id 5b1f17b1804b1-483203397fcmr190181915e9.36.1770640520038;
        Mon, 09 Feb 2026 04:35:20 -0800 (PST)
Message-ID: <d82c9acd-9a51-4a1a-af0f-ef3aba515bb0@gmail.com>
Date: Mon, 9 Feb 2026 13:35:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/16] xen/riscv: introduce vcpu_kick() implementation
To: Jan Beulich <jbeulich@suse.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <0335a7db0343d81ce4256482a464e7ba5df1c204.1769099885.git.oleksii.kurochko@gmail.com>
 <14d19350-0de8-4496-99e5-0ba76e421684@gmail.com>
 <4a12e652-5b53-40d0-b701-d1f5b749dfa7@suse.com>
 <29006d8a-e003-4451-99af-0eef8f7d1c08@gmail.com>
 <87533cdf-c8cc-4a86-9946-a999e8d31b82@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <87533cdf-c8cc-4a86-9946-a999e8d31b82@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/9/26 10:51 AM, Jan Beulich wrote:
> On 09.02.2026 10:40, Oleksii Kurochko wrote:
>> On 2/9/26 10:07 AM, Jan Beulich wrote:
>>> On 06.02.2026 17:36, Oleksii Kurochko wrote:
>>>> On 1/22/26 5:47 PM, Oleksii Kurochko wrote:
>>>>> Add a RISC-V implementation of vcpu_kick(), which unblocks the target
>>>>> vCPU and sends an event check IPI if the vCPU was running on another
>>>>> processor. This mirrors the behavior of Arm and enables proper vCPU
>>>>> wakeup handling on RISC-V.
>>>>>
>>>>> Remove the stub implementation from stubs.c, as it is now provided by
>>>>> arch/riscv/domain.c.
>>>>>
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>> ---
>>>>> Changes in v2:
>>>>>     - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
>>>>> ---
>>>>>     xen/arch/riscv/domain.c | 14 ++++++++++++++
>>>>>     xen/arch/riscv/stubs.c  |  5 -----
>>>>>     2 files changed, 14 insertions(+), 5 deletions(-)
>>>>>
>>>>> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
>>>>> index e38c0db62cac..13ac384c4b76 100644
>>>>> --- a/xen/arch/riscv/domain.c
>>>>> +++ b/xen/arch/riscv/domain.c
>>>>> @@ -1,8 +1,10 @@
>>>>>     /* SPDX-License-Identifier: GPL-2.0-only */
>>>>>     
>>>>> +#include <xen/cpumask.h>
>>>>>     #include <xen/init.h>
>>>>>     #include <xen/mm.h>
>>>>>     #include <xen/sched.h>
>>>>> +#include <xen/smp.h>
>>>>>     #include <xen/vmap.h>
>>>>>     
>>>>>     #include <asm/bitops.h>
>>>>> @@ -240,3 +242,15 @@ void vcpu_sync_interrupts(struct vcpu *v)
>>>>>     #   error "Update vsieh"
>>>>>     #endif
>>>>>     }
>>>>> +
>>>>> +void vcpu_kick(struct vcpu *v)
>>>>> +{
>>>>> +    bool running = v->is_running;
>>>>> +
>>>>> +    vcpu_unblock(v);
>>>>> +    if ( running && v != current )
>>>>> +    {
>>>>> +        perfc_incr(vcpu_kick);
>>>> Because of this it is needed to introduce:
>>>>      PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
>>>> Otherwise randconfig build will fail when CONFIG_PERF_COUNTERS=y.
>>>>
>>>> I would like to ask if it would be okay to add it xen/include/xen/perfc_defn.h
>>>> just after PERFCOUNTER(need_flush_tlb_flush,...) or would it be better to have
>>>> it in arch specific perfc_defn.h?
>>> Arch-specific please - it's not used by x86 nor ppc.
>> Then I will do the following changes:
>>
>> diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
>> index 3824f31c395c..86c56251d5d7 100644
>> --- a/xen/arch/riscv/include/asm/Makefile
>> +++ b/xen/arch/riscv/include/asm/Makefile
>> @@ -7,7 +7,6 @@ generic-y += hypercall.h
>>    generic-y += iocap.h
>>    generic-y += irq-dt.h
>>    generic-y += percpu.h
>> -generic-y += perfc_defn.h
>>    generic-y += random.h
>>    generic-y += softirq.h
>>    generic-y += vm_event.h
>> diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
>> new file mode 100644
>> index 000000000000..4fc161f1abad
>> --- /dev/null
>> +++ b/xen/arch/riscv/include/asm/perfc_defn.h
>> @@ -0,0 +1,7 @@
>> +/* This file is intended to be included multiple times. */
>> +/*#ifndef __XEN_PERFC_DEFN_H__*/
>> +/*#define __XEN_PERFC_DEFN_H__*/
>> +
>> +PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
>> +
>> +/*#endif*/ /* __XEN_PERFC_DEFN_H__ */
>>
>> and add the following to commit message:
>>       Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
>>       vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
>>       CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
>>       for example, by randconfig what will lead to CI build issues.
>>
>> Note that I keep __XEN_PERFC_DEFN_H__ as other archictectures use the same,
>> not something like ASM__<arch>__PERFC_DEFN_H.
> Please don't copy this mistake. I actually question the commented-out pre-
> processor directives altogether: Misra also has a rule against commented-
> out code (directive 4.4, which we didn't accept [yet], but which exists
> nevertheless). Yet at the very least what's commented out should not be
> obviously wrong.

Do I understand correctly that it would be acceptable to simply drop the
commented-out preprocessor directives and keep only /* This file is intended
to be included multiple times. */ ?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 12:52:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 12:52:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225317.1531789 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpQkT-0003hP-4w; Mon, 09 Feb 2026 12:52:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225317.1531789; Mon, 09 Feb 2026 12:52: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 1vpQkT-0003hI-0M; Mon, 09 Feb 2026 12:52:17 +0000
Received: by outflank-mailman (input) for mailman id 1225317;
 Mon, 09 Feb 2026 12:52: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpQkR-0003hC-9D
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 12:52:15 +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 27d989ff-05b6-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 13:52:13 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-43284ed32a0so2958031f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 04:52:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436297455eesm26933995f8f.29.2026.02.09.04.52.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 04:52:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27d989ff-05b6-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770641533; x=1771246333; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vhYC04O8gKnRQo3Pv4jv/kK6x8je3ndyIe2MaJiJ3eY=;
        b=FsQyxy/iPFRhdkr99pJE09oIDsDMbf0FEcPdT8Bp+v5ohG6sLf+PQlwE7exARoauER
         WYkHmdmf3ZShViOr2h4G4AYRH5un4uYAG52JGxEyuXkDz4YVKeZrDTaRREBlvxASnX6d
         whWZ34ozi0KDVpgN808U8erolkBP3FyRMHkyppdZeo96zthGl/75XAc23hShoVBuq+sl
         Gey15Biwof0q2WfNugChl367dNGXfL/TUNCBaXc0qjbuRxEMXHTbNO61ALIrjoZXV2fK
         /ITM922zPN4+8R3ls9ojKpcVS1bYxbBh4Qh2DRDVI1zyj5ZV/0a9+wY7TxuBzK7yRPqQ
         f1lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770641533; x=1771246333;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vhYC04O8gKnRQo3Pv4jv/kK6x8je3ndyIe2MaJiJ3eY=;
        b=VFli2yYnqkEjX0lzwz2IPr4MgJehwwP9JJ2Ik8RxCvh1tYZjBh2WpWU/SXBcZn6hxu
         3fEu5FyVI2n1zg1bLQ1CGmXTcH/x5qkUNDgFxdxTxmkN1nWEIkIAfpZIvcIIF7lgl9kj
         KsFpeCQ3Zg7CO5kteskqXWT4rQ/6CB73rt3anMZ0l3UjB/52E0+HfAoLCzF8xSwK9ufm
         uRKxBX1N05TxrtwPtgakcYuY312OgfKaDwudSRM4qKMHFN2cMMxVyG1d94cIwfVrfw+E
         6RAZBY3EYYUr/ITAZvBA3Stq9qI578AutSDnGBaB8TLCB3e/DJxDdaHZ8MoYs3NEWgqt
         SUIA==
X-Forwarded-Encrypted: i=1; AJvYcCWNqyiDuIMgpmaVtyg/w8PimfBwpP2RroDNu6GEAER9qnxK/IEFmvADplCuUQbEBFC5vL7E3LnP6nI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yznlr3x7JEUlTXs9w5GfWNnJV9XrIgkwyYQS9lxAI2vv/+eWlUD
	HVd7J7iAFRCNyftSnef1j3hdkQ5ZT45A9sqnYg1Ckxsu6FCZ+Wzvf/gx+3UDBEK33w==
X-Gm-Gg: AZuq6aI3pLQQz6WdN7KtCeweepd9uaTpGwdCSpZRStwUf55kXX1QsQfJCL8VuA+lLIK
	GJWf0hpmY27wBdD35uyYGq8rjllzSNqNfPL/Sw0BBUgQm3EKNsm9lbLAzKF+m4hxYqpzdafnlAv
	+roidSOw/QPmqmtCH8PxYGANRrKy+sKmMh0ZPXBaEOb0/rtNoX08A1KpkoDM9RYqBsN1nR6xld0
	a26KtJKWnFfI34gnqh7mhJ4KtKZRRUlwGbl0iJTQrn39rUE44/XO42Kv1H+zAiiFd00nFR1Gtci
	o1+7QQOLN31imI9GhEGVpwj0fy3I4yTlEHWENR5nl3yd2GkeenScwMBrWF+VswRmJk8cyxZNN6/
	yWjvjoEVLFnPr/kvki9OGroIS4b7Zqdj0gMAIUqr7YxMMmgNQF6vmbbkn6qLmutcOx44zcqYDaz
	tQoBGKxqyxII+wj1KW60H1ZlPQ2cjcSK9doULUFf2ZnSEIvk9voFauO2OJ7JxW3bobHE1rc8XXV
	zw=
X-Received: by 2002:a05:6000:4301:b0:435:a7fa:249a with SMTP id ffacd0b85a97d-436293b326bmr17072170f8f.61.1770641533160;
        Mon, 09 Feb 2026 04:52:13 -0800 (PST)
Message-ID: <57c4d4d5-5588-40cf-919c-1e337328858f@suse.com>
Date: Mon, 9 Feb 2026 13:52:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/12] const-ify vendor checks
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <608472d0-517c-4bc5-b5c1-c278c4f6620b@suse.com>
 <DGACI1R7MGDO.1SB7OMQQZ1NC3@amd.com>
 <836c1ef7-4ec3-4c4a-b527-17066327ff19@suse.com>
 <DGAEV1NFZF2A.2ATDMEFZAIZ5S@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: <DGAEV1NFZF2A.2ATDMEFZAIZ5S@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 12:56, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 11:15 AM CET, Jan Beulich wrote:
>> On 09.02.2026 11:05, Alejandro Vallejo wrote:
>>> On Mon Feb 9, 2026 at 10:21 AM CET, Jan Beulich wrote:
>>>> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>>>>> High level description
>>>>> ======================
>>>>>
>>>>> When compared to the RFC this makes a different approach The series introduces
>>>>> cpu_vendor() which maps to a constant in the single vendor case and to
>>>>> (boot_cpu_data.vendor & X86_ENABLED_VENDORS), where X86_ENABLED_VENDORS is a
>>>>> mask of the compile-time chosen vendors. This enables the compiler to detect
>>>>> dead-code at the uses and remove all unreachable branches, including in
>>>>> switches.
>>>>>
>>>>> When compared to the x86_vendor_is() macro introduced in the RFC, this is
>>>>> simpler. It achieves MOST of what the older macro did without touching the
>>>>> switches, with a few caveats:
>>>>>
>>>>>   1. Compiled-out vendors cause a panic, they don't fallback onto the unknown
>>>>>      vendor case. In retrospect, this is a much saner thing to do.
>>>>
>>>> I'm unconvinced here. Especially our Centaur and Shanghai support is at best
>>>> rudimentary. Treating those worse when configured-out than when configured-in
>>>> feels questionable.
>>>
>>> Isn't that the point of configuring out?
>>
>> That's what I'm unsure about.
> 
> I'm really missing what you're trying to make, sorry. How, if at all, is it
> helpful for a hypervisor with a compiled out vendor to be bootable on a machine
> of that vendor?

No more and no less than for a system with CPUs from a vendor we don't have
support for at all. Let's assume someone wants to start adding support for
a new vendor. They may first try Xen as-is. This wouldn't panic. Depending
on how exactly they would start adding stuff, Xen might suddenly panic,
despite functionally nothing having changed.

>>> Besides the philosophical matter of whether or not a compiled-out vendor
>>> should be allowed to run there's the more practical matter of what to do
>>> with the x86_vendor field of boot_cpu_data. Because at that point our take
>>> that cross-vendor support is forbidden is a lot weaker. If I can run an
>>> AMD-hypervisor on an Intel host, what then? What policies would be allowed? If I
>>> wipe x86_vendor then policies with some unknown vendor would be fine. Should the
>>> leaves match too? If I do not wipe the field, should I do black magic to ensure
>>> the behaviour is different depending on whether the vendor is compiled in or
>>> not? What if I want to migrate a VM currently running in this hypothetical
>>> hypervisor? The rules becomes seriously complex.
>>>
>>> It's just a lot cleaner to take the stance that compiled out vendors can't run.
>>> Then everything else is crystal clear and we avoid a universe's worth of corner
>>> cases. I expect upstream Xen to support all cases (I'm skeptical about the
>>> utility of the unknown vendor path, but oh well), but many downstreams might
>>> benefit from killing off support for vendors they really will never touch.
>>
>> To them, will panic()ing (or not) make a difference?
> 
> One would hope not because the're compiling them out for a reason.
> But for upstream, not panicking brings a sea of corner cases. The ones I
> mentioned above is not the whole list.
> 
> Turning the question around. Who benefits from not panicking?

Certain things may work. But more generally - see above. Turning this
question around also isn't quite appropriate imo: You want to introduce
the panic(), so it's on you to justify doing so (which includes making
clear why omitting that small piece of code would be a bad idea).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 12:54:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 12:54:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225325.1531799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpQmb-0004I0-M1; Mon, 09 Feb 2026 12:54:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225325.1531799; Mon, 09 Feb 2026 12: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 1vpQmb-0004Ht-Gl; Mon, 09 Feb 2026 12:54:29 +0000
Received: by outflank-mailman (input) for mailman id 1225325;
 Mon, 09 Feb 2026 12:54: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpQma-0004Hl-NP
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 12:54: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 753f679a-05b6-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 13:54:23 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso37314395e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 04:54:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483203d60d0sm99528645e9.1.2026.02.09.04.54.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 04:54:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 753f679a-05b6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770641663; x=1771246463; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QPc3F21/PLwVr2kD/0NfiQY4IxlG2jDkItlfyCOTuKY=;
        b=Frt2ibzkdPgYsxnNYmH27MDOlE2emrCejRii6SKHqVi5Lo42hxtNN46b9MQo/zghDp
         C/mNj1L2+m0aRtdbAptfykmxxKgIDQimV9ULP3THcOodViPXSOJm8rLTlMJq7xvRwPIM
         fz4JeZfLqGpJy8p+8/Xmmy3bCCoFi/0aEHqACiRTZO5hd4BeDj+Bn6zEyBUOXPCTa3eb
         dZnxEwiD7ghDoGv32wbKAYgaQ7aiXvbDeJ3LjoZTMno5gGOAhpMr/c4nf8W/TSRgu6kJ
         HM60/eb8GIIldmjwoL3B4YM26Jskxztbh2ikcGHx9CAViX9nrJzW4arLvN6XAnOzPc7H
         BCAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770641663; x=1771246463;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QPc3F21/PLwVr2kD/0NfiQY4IxlG2jDkItlfyCOTuKY=;
        b=oc0huddkG0zhXWOv2HM7IwQnHVf0zQ1FvJwvUu2IgOyZmeZkifmk/JyN5Ny2KYugwA
         Z9ygxRl5AQ588SWvO6I7SDWBDZ53jW/VvWfWMQB6q7oX9XyyNVwziJgKqFtVYdhsFlvm
         H9A22aOFbPHgKl/hWNuca4nRfIa3/ewei4FTxh63X2oW3mcWpKXdc3pxtBnYqIog6hiq
         MoIrDK1TzwantoD/ZjFrEry0eFJxgKSUeSglKHufSQlhh8r/W4Qq5OUedRUTL0BDM5Zt
         o/sZbGviP258duAqCwUk6KcjDTNknGY0lvslgg6vloL5LjU68UpUhq663mQ28N2QTJ+n
         ujDQ==
X-Forwarded-Encrypted: i=1; AJvYcCWeS6q6jfxU/iZ16Lqb39/AozeioiF2aTYMTN8btUrEfVwu05yTp4iO250WYq4SNZmwhrbXJbZ+eAY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzjx/BP3yhDFvotQOdHEF1xQ4EyvOxOhK30Orn6pmwXm9N+iUkZ
	lGXAxyuM3kyKmrshI++GCWbUsOgCIxhW6FT4V3nTXQVzWvAi7uWZqea6HFdAUAbfneFsIJ6VNqz
	ikSc=
X-Gm-Gg: AZuq6aIuYgNPSFLfKxHBxaTaXXQNj/9vAGl0wXrsbjeAsh8zZqkbCpYnBmmKtuHXrO3
	glgcHgChK6AEk9NOhIwl7G6Rh9JuwFpse2NgUGWhMR44NAgvuyXwsmPMJQoonqqc0o16o+AXFgg
	RCnD3cmnuXXzWBcNM+iB8DkjC7UItuR0EaPFkeQppOEUS2yFG6DC2Ii3jLz1LZGOJ2ysr8s5aCC
	cv0l65K6Te9O7kcyLcT7R2BeI0haFfqzqomxpvEAfktWKYsMBWrRMugyNORaWpjgdzNrjqgt0fx
	DptoNZJ3/AczCygRzuVK+QSSTh7yIpYtY+q5wvoHugCF3LWdPVLKfkwl1mho8AQ2eKqWZlVnfK0
	n5PVDa674p5OYzOWOBnghpBHymn/jh3pVIXmdxy8hCkUryt+5h2ZGGoMw3EAhSsNfYkVs0gA5Ss
	zI/sMvGpSao64jhF2nVQZt3eAqZ/hDXP7GCgpWjnDl7yjTe1EF2xhb25QbdB1tncmkNEWNaOe0K
	hg/M8PE/ppqPw==
X-Received: by 2002:a05:600c:828e:b0:477:abea:9028 with SMTP id 5b1f17b1804b1-483201dadc1mr181133985e9.6.1770641662905;
        Mon, 09 Feb 2026 04:54:22 -0800 (PST)
Message-ID: <089aeecb-4e58-407d-aa4d-e09f88f861a0@suse.com>
Date: Mon, 9 Feb 2026 13:54:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 09/16] xen/riscv: introduce vcpu_kick() implementation
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Romain Caritey <Romain.Caritey@microchip.com>, xen-devel@lists.xenproject.org
References: <cover.1769099883.git.oleksii.kurochko@gmail.com>
 <0335a7db0343d81ce4256482a464e7ba5df1c204.1769099885.git.oleksii.kurochko@gmail.com>
 <14d19350-0de8-4496-99e5-0ba76e421684@gmail.com>
 <4a12e652-5b53-40d0-b701-d1f5b749dfa7@suse.com>
 <29006d8a-e003-4451-99af-0eef8f7d1c08@gmail.com>
 <87533cdf-c8cc-4a86-9946-a999e8d31b82@suse.com>
 <d82c9acd-9a51-4a1a-af0f-ef3aba515bb0@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: <d82c9acd-9a51-4a1a-af0f-ef3aba515bb0@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 13:35, Oleksii Kurochko wrote:
> On 2/9/26 10:51 AM, Jan Beulich wrote:
>> On 09.02.2026 10:40, Oleksii Kurochko wrote:
>>> On 2/9/26 10:07 AM, Jan Beulich wrote:
>>>> On 06.02.2026 17:36, Oleksii Kurochko wrote:
>>>>> On 1/22/26 5:47 PM, Oleksii Kurochko wrote:
>>>>>> Add a RISC-V implementation of vcpu_kick(), which unblocks the target
>>>>>> vCPU and sends an event check IPI if the vCPU was running on another
>>>>>> processor. This mirrors the behavior of Arm and enables proper vCPU
>>>>>> wakeup handling on RISC-V.
>>>>>>
>>>>>> Remove the stub implementation from stubs.c, as it is now provided by
>>>>>> arch/riscv/domain.c.
>>>>>>
>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>>>>> ---
>>>>>> Changes in v2:
>>>>>>     - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
>>>>>> ---
>>>>>>     xen/arch/riscv/domain.c | 14 ++++++++++++++
>>>>>>     xen/arch/riscv/stubs.c  |  5 -----
>>>>>>     2 files changed, 14 insertions(+), 5 deletions(-)
>>>>>>
>>>>>> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
>>>>>> index e38c0db62cac..13ac384c4b76 100644
>>>>>> --- a/xen/arch/riscv/domain.c
>>>>>> +++ b/xen/arch/riscv/domain.c
>>>>>> @@ -1,8 +1,10 @@
>>>>>>     /* SPDX-License-Identifier: GPL-2.0-only */
>>>>>>     
>>>>>> +#include <xen/cpumask.h>
>>>>>>     #include <xen/init.h>
>>>>>>     #include <xen/mm.h>
>>>>>>     #include <xen/sched.h>
>>>>>> +#include <xen/smp.h>
>>>>>>     #include <xen/vmap.h>
>>>>>>     
>>>>>>     #include <asm/bitops.h>
>>>>>> @@ -240,3 +242,15 @@ void vcpu_sync_interrupts(struct vcpu *v)
>>>>>>     #   error "Update vsieh"
>>>>>>     #endif
>>>>>>     }
>>>>>> +
>>>>>> +void vcpu_kick(struct vcpu *v)
>>>>>> +{
>>>>>> +    bool running = v->is_running;
>>>>>> +
>>>>>> +    vcpu_unblock(v);
>>>>>> +    if ( running && v != current )
>>>>>> +    {
>>>>>> +        perfc_incr(vcpu_kick);
>>>>> Because of this it is needed to introduce:
>>>>>      PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
>>>>> Otherwise randconfig build will fail when CONFIG_PERF_COUNTERS=y.
>>>>>
>>>>> I would like to ask if it would be okay to add it xen/include/xen/perfc_defn.h
>>>>> just after PERFCOUNTER(need_flush_tlb_flush,...) or would it be better to have
>>>>> it in arch specific perfc_defn.h?
>>>> Arch-specific please - it's not used by x86 nor ppc.
>>> Then I will do the following changes:
>>>
>>> diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
>>> index 3824f31c395c..86c56251d5d7 100644
>>> --- a/xen/arch/riscv/include/asm/Makefile
>>> +++ b/xen/arch/riscv/include/asm/Makefile
>>> @@ -7,7 +7,6 @@ generic-y += hypercall.h
>>>    generic-y += iocap.h
>>>    generic-y += irq-dt.h
>>>    generic-y += percpu.h
>>> -generic-y += perfc_defn.h
>>>    generic-y += random.h
>>>    generic-y += softirq.h
>>>    generic-y += vm_event.h
>>> diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
>>> new file mode 100644
>>> index 000000000000..4fc161f1abad
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/include/asm/perfc_defn.h
>>> @@ -0,0 +1,7 @@
>>> +/* This file is intended to be included multiple times. */
>>> +/*#ifndef __XEN_PERFC_DEFN_H__*/
>>> +/*#define __XEN_PERFC_DEFN_H__*/
>>> +
>>> +PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
>>> +
>>> +/*#endif*/ /* __XEN_PERFC_DEFN_H__ */
>>>
>>> and add the following to commit message:
>>>       Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
>>>       vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
>>>       CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
>>>       for example, by randconfig what will lead to CI build issues.
>>>
>>> Note that I keep __XEN_PERFC_DEFN_H__ as other archictectures use the same,
>>> not something like ASM__<arch>__PERFC_DEFN_H.
>> Please don't copy this mistake. I actually question the commented-out pre-
>> processor directives altogether: Misra also has a rule against commented-
>> out code (directive 4.4, which we didn't accept [yet], but which exists
>> nevertheless). Yet at the very least what's commented out should not be
>> obviously wrong.
> 
> Do I understand correctly that it would be acceptable to simply drop the
> commented-out preprocessor directives and keep only /* This file is intended
> to be included multiple times. */ ?

I think so, yes. You could simply check how the same situation is covered
for elsewhere.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:01:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:01:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225333.1531807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpQtc-00062f-8x; Mon, 09 Feb 2026 13:01:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225333.1531807; Mon, 09 Feb 2026 13: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 1vpQtc-00062Y-6H; Mon, 09 Feb 2026 13:01:44 +0000
Received: by outflank-mailman (input) for mailman id 1225333;
 Mon, 09 Feb 2026 13: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpQta-000629-Ub
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:01:42 +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 793076d1-05b7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 14:01:39 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-47ee3a63300so49767065e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 05:01:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d2bab2sm558239595e9.3.2026.02.09.05.01.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 05:01:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 793076d1-05b7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770642099; x=1771246899; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WMomWoEsj2ex4pGPs0lBqhq27v3hvNP3Old7JGYgpcs=;
        b=NaGgmRAKxf5prPa3jZ/ixn1mzOc1qM5sYA5eSB6WPYDc19IHYwfR19QzVW+jsjCMtr
         0F3Jjd38Zm9zDN91ylN/lxtlARFGFtv+DljOj3Kijo0ZjVNY/nqF8on+o5TAiUaFGZd2
         2A9Sf7Wt7cKrgQlP9NYbgFt9TlSfFZ7INBlpizYpwRJzXeUpt1bSsfI9/29MTAqSRMmn
         fWpa689gM30f1EccsK36niNMf8WuJjXgxFif4YNGvxTNcCIb73CDbeetkYopkQd/MFwH
         X8YGQPN+3PYdqv/hXrhNdcC3rUn8sZlHJh52JUfK59GCkFqXWZvv638A7ABLxYWnqj3o
         b+jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770642099; x=1771246899;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WMomWoEsj2ex4pGPs0lBqhq27v3hvNP3Old7JGYgpcs=;
        b=Z78FqJWuPpUepHp0r3wxE1WisANxpol0FwXztIcgwXVmP3V6koTWZAPJODaEgM5V3I
         ZVOAlIzOc8slW3wQ8Prp1pzRQiejQ4KcGReBPHhIhOSkiH/oO7skOhhOWCv1Ca73EiLH
         4S0EtOHrRUqgrjHUO2Iu60BpbDxV7682GLaXvr0EeX9+0xrdQV26Rxce4FbMJd/rv06l
         Yn/i7arpsUOxfHF7DSbjnSWKqJK8as7MWN0jPXD9TJX7Wl0qD8oYnPsqYFWMUsRrPndQ
         kuWwJyvFOU3j85WGM+I2v0kZxDdcaV0M7B8C7Gxuq1Nq3b54GKI4I0qr0K+5UQYIGgEL
         7bjw==
X-Forwarded-Encrypted: i=1; AJvYcCVrOfuWBIWElp0i2XcfHof2nPITJ1L3oZgmuWRrcBfxIctUU0FZh+Zi/d9yhopR6kRyJLYQHZmDuK4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwtaN8cZeKhNMzY5sxNedIvfDn5Sqq7va4RmKs7ROe/J+R4fZDX
	IcZyU9SJWHl/0PuqnwaXm+M7EO7TNQssmbJ1oCb7y/5gvJRFYkCjso6kC0lGWhAt1w==
X-Gm-Gg: AZuq6aKbq7u34eURpG3YPQ99UGng3xuJsidzm0ETU+VBCo8qrwA2KqU1Zfw+hSNgF/h
	Zb+N3YBxqkMDjdSiymCVThOGmvXmw8vyfwotzLX7tztbU2tpki8i6dYgVgFbNsEqKfAMevEulii
	kUzQQICL1P6proh/qDVM6LTpV85h/0mkItuSQ+EM+Gu3gTZhGv6r3KV9x3HPbalmMxWflBX64SA
	5InKHE3nZP9bgWAOkNJiqgHznprHl40lzVh/o1Ad182FUIud24V9+HFQriN/97f3415Y4HkdNjp
	vEyUdBUIojsAmW5dks30odJrufzmn29C+0nyk0Xb26yKiASOOZYxWnY99dD40OAR8Vc54BQOGJQ
	CtAw8ImInIudPAZIdRDYm2TQGtNfGbtTUyDRTwuF2z7QUXN5P4Tzn9Wa6zfCzxiY6mXMMeCH+lf
	nxlC4bLh4WimLej1xZ+lgYgyCkMrZbJSXOG+/Mr8FqRSzXB/dttGQ48KnF+hxIr4LsJWtfokKu0
	dM=
X-Received: by 2002:a05:600c:8b82:b0:47e:e57d:404 with SMTP id 5b1f17b1804b1-4832020f040mr176487535e9.16.1770642098978;
        Mon, 09 Feb 2026 05:01:38 -0800 (PST)
Message-ID: <15680dd6-e554-4503-8964-e8801aa31e79@suse.com>
Date: Mon, 9 Feb 2026 14:01:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: Add Darwin.mk
To: Bertrand Marquis <bertrand.marquis@arm.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: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 11:46, Bertrand Marquis wrote:
> Xen does not provide a Darwin build configuration useable on Mac OS.
> It is possible to build Xen Hypervisor (tools are not supported) with a
> toolchain able to produce ELF binaries (GCC or others).
> 
> Add config/Darwin.mk to include StdGNU.mk and force
> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
> the cross-compile path so compiling on Mac OS is always handled as a
> cross compilation case.
> 
> Only compiling the hypervisor has been tested !
> 
> An example of how to build the hypervisor for arm64 on Mac OS
> (tools cannot be build for now) using a compiler from brew:
> - brew install aarch64-elf-gcc aarch64-elf-binutils
> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>

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

> Change-Id: Iba91634afbaab58767bb8744b4b722ce5732a6dd

This wants removing, I suppose.

> --- /dev/null
> +++ b/config/Darwin.mk
> @@ -0,0 +1,6 @@
> +# Use GNU tool definitions as the tools we are using are either GNU compatible
> +# or we only use features which are supported on Mac OS.
> +include $(XEN_ROOT)/config/StdGNU.mk
> +
> +# Cross compile on Mac OS, only hypervisor build has been tested, no tools
> +XEN_COMPILE_ARCH = unknow

There was an 'n' lost, as the reason for forcing cross-compilation also
isn't stated. I'll take the liberty to add both back in.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:16:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:16:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225340.1531818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpR7d-0007tC-Fs; Mon, 09 Feb 2026 13:16:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225340.1531818; Mon, 09 Feb 2026 13: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 1vpR7d-0007t5-Cj; Mon, 09 Feb 2026 13:16:13 +0000
Received: by outflank-mailman (input) for mailman id 1225340;
 Mon, 09 Feb 2026 13: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpR7c-0007sz-6v
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:16:12 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f95797e-05b9-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 14:16:10 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB6668.namprd03.prod.outlook.com (2603:10b6:303:123::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Mon, 9 Feb
 2026 13:16:06 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 13:16: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: 7f95797e-05b9-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JksPtjRrByi2SbCVEoXSZ4Dul/gNFdwq3689c4c7lBwpVBQAUAiGFTpFuFBwd5VwmAHnwR/BLAncCPjMkjxS1tH/z2SuT2j94Sj/rRWJNmVqXNgxgOcykEFeEUiG47YnfDJbIJMGegXvCLTCOkGG+b8zlSfwAck3jXOe/G752Kupx5ucYrk+ojNfjyfHA2PrmGa5gzKr6eko7zIKzCBZ1hMyte6nHoqQIIiFrZalXwBZRh749mmjpwVuvgPgAte0kSRbDy7sQyVH09QGYryUEpateJwcmnShkeMBI/pSKvEcPNcXoE3QoOeFcVsiMduggEztuAiKyEMz5M/qHYplUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hzud+cLvqfABb4jnl6vBiJzYYIWClp5Iyz/6N6A1gKg=;
 b=PtTg3JslyrJs86EVbEq3tTGAEhk6mHlnE5kiw/EQCVSHHSZdwDJ1+TLUB90HrEgtua+aQNj9SYG+D4rpzicF67XgGpAzVoZx4B0SeyZUstdqOQ4BAshZ03E+s6Y0cmXrSNoo5ItmrJCku0o9OVxSjxX48GwhxlgTpXDYTrQupTsIxjl+2ThEdlHgnPTa4JoOIiH0gb4i5VufQS5kJLIPrs6eFbA7DqNVfEm2C7B1eHl6fi+G9wOW/s/auAuNTKJGVIb3rEM8qEUP0Yp2Eeydzy+0fYxfUTUDyHqCzZtduBQqKHZN0z3829PXWHJyoxhpzyWP+8U5bi+IUQJ3ZnP4EQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hzud+cLvqfABb4jnl6vBiJzYYIWClp5Iyz/6N6A1gKg=;
 b=h6aDUV5BIZxBdVHo1ZE51fd1nZ8VJ41zBmmOSamBdA+heXOkOAQQmCsuE6xaf4zgTC0kCDvFYPTsKVV28YJ4WZV/uOEnSQThCq60weu0iiq3QK+DD6hvdjdiI9CDOc7ZA5gIvD3+dHrNq39TRT7e8QU/X4NzpZOiPhoqJVSAYUA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 14:16:02 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/hvm: Advertise and support extended destination IDs
 for MSI/IO-APIC
Message-ID: <aYneEnAa-LqQt8Gm@Mac.lan>
References: <20260209113412.2603088-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260209113412.2603088-1-julian.vetter@vates.tech>
X-ClientProxiedBy: MR1P264CA0170.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB6668:EE_
X-MS-Office365-Filtering-Correlation-Id: da3cf47d-e245-4a65-eb64-08de67dd61f0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Vkt3SGU4bUt5eHAzUHRKQUFxWTJIWUpsUFpXeUxuaVRIMmJNMEZGVURwV2pK?=
 =?utf-8?B?bHpWU3JOK2dUNktkalNxR3R6bE96R2U5M01BZGFLNXl2eHltdEU2ZG1sQWp5?=
 =?utf-8?B?VUJobXdCR1F4V3RoaXgxSUxTWVgyazZuL09nRUlvNHV1Z2I0dnMzVWdiejBB?=
 =?utf-8?B?Q0gvd0UyMmM4M0oxOGxRUUliakVkdjZpdjRjMDVTN0NUMGNaQkxqelI1ZTQ3?=
 =?utf-8?B?SGlmV1VpSUR6MmRqMUJjUkZXV0h4NnV3WVQ4VWt1QzEyZDNaZSs2aTJ2NENQ?=
 =?utf-8?B?UGdkS01oa05KWTV4UlppcGtqQkc0USs2ZWk5S01WVzM5dnZUL0gxUHh0VW12?=
 =?utf-8?B?QlFnRzNOLzRVV0I0VlZJQmdnTUlXZEFEbkRLUS9KZHg2bHFhUVFHRllCR2dD?=
 =?utf-8?B?YlBtZHJhU0kxOEcremhlMlN2TnFTbmh3OW9HK25mUFdtV24rZU41QzgxdGNt?=
 =?utf-8?B?S3VtWUE3TCtTS2dZRlMyby9RdHRld1NnbFZFWGFyMkVMRFBCMnBjT3lBSGpx?=
 =?utf-8?B?YVVYRE96WTZYNVllNVNPYmlXYjVMRFp4WW9JeDRLQWFCcVJrY0FwQVQ5a3lp?=
 =?utf-8?B?UUlJSDh5WVhtbzJxYmM3djF0emxJTU00ZFFLWndva29hZFN3SG9JbFU5Q2Va?=
 =?utf-8?B?MGIrZ29MZzEyTDl6QzJWd0FUYTRTMXJDeGlxeWVidXRBd01FclNmeDBxSjlt?=
 =?utf-8?B?bGk0SjFLeDRWWVdHNEdqaU5SVDI4bllyRFFLbmxhMmF6ZjVqT2sySGFCMW9L?=
 =?utf-8?B?RVRUaXVEM2owSDR6Z09iSjh0NC9NNEMvcHhDYlNNYnhxZUhLU0dOT1ltV2Zt?=
 =?utf-8?B?WlZZUWZiT0plNG9US3JsOGxySzY3L1gzamc0N1c0akw0UlA4ZmZtcWo1cUVE?=
 =?utf-8?B?djlUVVFVT0hFcjFIWHFMSUhPOCt4c1RqZjdSRDAvSHYxelJkYVYxcGhBMnFk?=
 =?utf-8?B?Vm1WR2doTVliU0djM284QTlpZHhsblNhSGp4QTVsUWorVC9ERFpIeHo2cTNp?=
 =?utf-8?B?L2JXY1BKQy9Fb2ptem9QcHVIMUdMaHJOcDJ0ZWhDNU9RV0RWRnMzbk9zbEJU?=
 =?utf-8?B?eGpuTFNlZEF2YzFLL09mNjVXYndXYXdHSE1maG1oSTVkcHZBNndOYWVkakZH?=
 =?utf-8?B?UXh6a0JGTGl2OXBwZmJ3a3gwcFdZU0E4VlN6OUxyQnBPNXNzdXlNN0tEeHZW?=
 =?utf-8?B?STBMZEgzRlo2enFaTWhiaUhMZnZrRmo5VEJycVdWYnV2K3JlL3prNXpKZUVV?=
 =?utf-8?B?S1Q5N3hmQ1VSWnorTjExbS9kUy83RmRtelhKTjl3a2xOanNLVldnTXpxZnpz?=
 =?utf-8?B?aFZ5Qlc2ZEQ2OGVKNWhwSWhhWHpwYTQ4Z0hmY3RzVDhxWmtmT1BHeWg4SUxB?=
 =?utf-8?B?UmVJWm8vTE1tQjcvREZxbnI5MjB6cU5Ua1pBd1Q1dXpKZTNiSVU3MmVRaHpT?=
 =?utf-8?B?MlB0S2czbUZ2WHdJaVFieDR4aDJrNnpyZU5jdjRpME81YjI5TUQxa1FES2E2?=
 =?utf-8?B?eGg0YmdGNCt1aitpU0l4djVKOFpWRkhiUGRWYjZoQW04UjRNUkFPMWlJK0N4?=
 =?utf-8?B?NTdSYWpJZzFFMDVTZytjWTFWcGlmY3lsUUhLbUVZNFFzZVFPaGVXaXg2MmRF?=
 =?utf-8?B?anFDV0QvMytMNHBEeGZ2VlhFaFkzRmJVWEYzUXVZWGgxY25rU01mL0lTMU9h?=
 =?utf-8?B?REhhc1RzMktPUTAvZURJWWV5NUN4em83N2tyQ0IwNVdXWVV3OEkxRE1xem5R?=
 =?utf-8?B?UHE4Tjl0TEVkUFcvcTBoTXNMZERRZkJYcEpzS1hCOC9hSnFONHVRZFJja2ts?=
 =?utf-8?B?WEJiMExraTNKQWVsSnZaYTR3ekxFOHVyQnNsKzNDRGxnZExQQXA2L0swQ2gx?=
 =?utf-8?B?UFMvbmtzbktiU0dQWE1IREhLUHlTSUt0SUY4MzllMU9qVC9weFB5dFVHTmhX?=
 =?utf-8?B?TUNMV3NlRWt3QWhTbE8yRlNNSzZKNUtUL2JzOVFSS25iUXVNeGFya0lUY2ps?=
 =?utf-8?B?RmRDU2xtejNoQktXV2dRTUgrUlgyck15dlVuUXZUTWtwMUowZEQvS09QZEcx?=
 =?utf-8?B?ZXU3Nlc4ejUwQmlCK2Yya2FxSml4OE85cVluTDcrNGJtdk1HcjR0QkVtZ3ZJ?=
 =?utf-8?Q?t7Bo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eGtrNjdISVVvMVU0SnJlZmdJdFNsK0d3c2dUck1zTllrZ2NmVWREdFpibWxI?=
 =?utf-8?B?YUtuL2IvK3lYaWRkcnNtOXRHV056aXZIcXNaSmlWaFhqNDhhMTBrUU9xSlFT?=
 =?utf-8?B?Y3hJdmNkSXNVaC82ZXc4YmxQUVdTQzZTcWk0VFh6bURlcDZMdHdyMktVak85?=
 =?utf-8?B?R2pyb2NTUFducFVWMGJYbjhEdU9PY0FFdmpvcXhLUkRUWUlwTFNDcnVqcG1S?=
 =?utf-8?B?U2VNeGRqaWxLdEZ0R2FwSUVVU0lhRWxPUTRMMHc0Y1U1OTBhMzJGZnRvY3ZB?=
 =?utf-8?B?RkJ0N1dyamdkUFFtcy9Ya3pGNWRJZVllRk43V20wMEZobmo0d0pNZzAraGFM?=
 =?utf-8?B?MEpOcmFPSFRSWGE5TTVWUjRMYWZmOUQ1NkxCSzlZU2UwRWkvMjVPVUlOaDRL?=
 =?utf-8?B?RmtjVit2dUhGZ0o5REZXZ3dFVktONGZoZEo3S3VlcU8rd25lSmlFazJvUmhs?=
 =?utf-8?B?ZGtjd2FJenRoWForUDNvZjR1MUJTU1RFUUFkd2pxWEhoOVBsMkVORTNweDcr?=
 =?utf-8?B?U2hZbEJ4MTNyS2hDSHZ5WjNqU3lKLzJhbzBMN0I1eXk2SzVURW5pR2dyekJH?=
 =?utf-8?B?VklIZTdTclZiYXJYbTFyWXRibkdPN29MazdQc0sxQ2E5bFI1bFExWXZEVTRv?=
 =?utf-8?B?dHhBSWRZWnNpTGdVbnVQL3ZZZXl2bFFMUnh4U1dnWGxhOEFOT0FkV0VXaUJI?=
 =?utf-8?B?WkpEdy9hMUNZMFFBZXRqZEhaM2l0RmJqc1NuTjRHbnZlTnUzZGpZV3J4aGtG?=
 =?utf-8?B?czdGTnppUGl0cDlRcVI4OUJrTWlBWFM3dFdJNEQzMitDRzg3SEdPL05uV3dX?=
 =?utf-8?B?OTcrSVZzaE1wZEJZK3dMTDl2MnVDYWRhTjNyMTdtd1hJNHpPOS81WjVob3NT?=
 =?utf-8?B?YVR1V0s5c3pNcmszSmFGa1dLYVRZRHlsdWRyTEtzckJERzZRcXRMNWcycWpU?=
 =?utf-8?B?WFBWc3pEU3Ivem4wVU1qeGlRWDMxSW91bG43Z2JPOEJjRk5IdE1vTWU5Rk5W?=
 =?utf-8?B?a01hSnUwOHpwWlo4YVMvY2JDSGJoRThwZW5SdjRTZHg2ZjRlKy9VREh0WExi?=
 =?utf-8?B?TlhRR1dJTnVPMFJ4NGxnZEQ4ZmtBSTZTcS9RMFd6Y253SXlPNmdSL3BMYTRh?=
 =?utf-8?B?NDUvbjREdHpyam5tbzgvQ24xUy9YN0JwOXl2YVUzcElLa2VaYVFvb1ZYRENM?=
 =?utf-8?B?Mnlvakx4QWRsK3hTLzA0V2ovS0xWcDdsUnNYUlNmNTdYY3htQXVSTE9jOVpP?=
 =?utf-8?B?aEM5UUVQdXM1RlRMMGc4RkZ3ZHk0ZDZYNHpHdE9FTVhLOEtTU2UyTlVCZ3FT?=
 =?utf-8?B?cnFua3VCcSt2cEZHQm92NEJyVGVhMXk0S2FrZUhoTHlKS1RuOHVrR3hHdm1j?=
 =?utf-8?B?YjNRMmpYK2pjUXNUQkEycEJGVVIxME5Vak5PSlp1RjIrWHRMOEVaNGhScU9O?=
 =?utf-8?B?YUVKUXJHSFhwdUs3TlNyUzQzQ0hUOWJjeno2cENSN3NrS2pVUkY0c05ncmRl?=
 =?utf-8?B?QVlvZHVyb3psNUphZGJFY004S2hNU1F5NVMrZ0Zzc3RMOFlYRk9UVE5CVFFj?=
 =?utf-8?B?QUYwdUpkZGtkMnZFQ2dyWTJIZzAvUFl6NnFsL3M5bGx5QW5TTUxoVVVHMmlJ?=
 =?utf-8?B?TlBySmUyZVdoUUY3Z24rbDFsRE1ONjZEK1dNQVQ0N0FFSlBOeEEzVVFjRlFD?=
 =?utf-8?B?YVZUUUltYW80K3RoS0RUWjZZb0gwekdBT3Jnd1FqczNGV3pDM1E0RFBaWG9I?=
 =?utf-8?B?T2VlUUd3K25FWStFZGJUTkx1bDE2djFoSnp3VDdjUGRqR2N6d2RvZkJUOGtw?=
 =?utf-8?B?czNrWEJXcGQwcE5WdUt0RXloaTB3ZzIrV3BoN1EwZExQMktQZTQvL0xYcFI5?=
 =?utf-8?B?WUhwcWR2SkZqVWVZV1FaQ0VoYmt5VStyZk9LVUYwc3VXQXcydklKWlRsaDAy?=
 =?utf-8?B?Zlp3WWkvb2FLOGozQW56NFBQdHdrd1hYQTlibFFMYWJsY3R2TVg2OVFWL1g4?=
 =?utf-8?B?ODZhWnB6alJiME9PMXdnWVFaWHVrZVdzS2VUZnF2SE9EM0hvTXdmQ2piNUN0?=
 =?utf-8?B?SWpJeXZWakNUcFRWbG1CWjMveDJvaUpWSWY2S3l5dmFzVnZhbXJ5MllCV3Yr?=
 =?utf-8?B?UzVPSCt5TksxNW12ZTBaQ1ZGOVIvMnFWTFJhUktheVM0N0ZBOWZCc0ZCR1kv?=
 =?utf-8?B?Qi96dGNJYnkxSVRCVVU0VVltREQ1NDBIem1NUnpKWUtJUFQzbS9PTmc4bDFt?=
 =?utf-8?B?azdtRnVPUERGTUxNdGRHOXBaZkdaSmx6czl1djRBc2djQytnNC9qMndBanZW?=
 =?utf-8?B?MXlUQnZqUFltdkJWdWxKQWRlSkNQNjNBSWZLZ0toWmd3UEMwQ01Cdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: da3cf47d-e245-4a65-eb64-08de67dd61f0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 13:16:06.4231
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: yhwrLMCJBUbU4NRxsn9BXHX0nBh1HXRz+AWLtTKZLIc3L/T9ge4OP6xJgtpHr1rygtdbY3Zd0bGb5fnKd/pgAg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6668

On Mon, Feb 09, 2026 at 11:34:18AM +0000, Julian Vetter wrote:
> x2APIC guests with more than 128 vCPUs have APIC IDs above 255, but MSI
> addresses and IO-APIC RTEs only provide an 8-bit destination field.
> Without extended destination ID support, Linux limits the maximum usable
> APIC ID to 255, refusing to bring up vCPUs beyond that limit. So,
> advertise XEN_HVM_CPUID_EXT_DEST_ID in the HVM hypervisor CPUID leaf,
> signalling that guests may use MSI address bits 11:5 and IO-APIC RTE
> bits 55:49 as additional high destination ID bits. This expands the
> destination ID from 8 to 15 bits.
> 
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
> ---
>  xen/arch/x86/cpuid.c                   |  9 +++++++++
>  xen/arch/x86/hvm/irq.c                 | 11 ++++++++++-
>  xen/arch/x86/hvm/vioapic.c             |  2 +-
>  xen/arch/x86/hvm/vmsi.c                |  4 ++--
>  xen/arch/x86/include/asm/hvm/hvm.h     |  4 ++--
>  xen/arch/x86/include/asm/hvm/vioapic.h | 13 +++++++++++++
>  xen/arch/x86/include/asm/msi.h         |  3 +++
>  7 files changed, 40 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
> index d85be20d86..fb17c71d74 100644
> --- a/xen/arch/x86/cpuid.c
> +++ b/xen/arch/x86/cpuid.c
> @@ -148,6 +148,15 @@ static void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
>          res->a |= XEN_HVM_CPUID_DOMID_PRESENT;
>          res->c = d->domain_id;
>  
> +        /*
> +         * Advertise extended destination ID support. This allows guests to use
> +         * bits 11:5 of the MSI address and bits 55:49 of the IO-APIC RTE for
> +         * additional destination ID bits, expanding the addressable APIC ID
> +         * range from 8 to 15 bits. This is required for x2APIC guests with
> +         * APIC IDs > 255.
> +         */
> +        res->a |= XEN_HVM_CPUID_EXT_DEST_ID;

This cannot be unilaterally advertised: you need a QEMU (or in general
any device model that manages PCI passthrough) to understand the
extended destination mode.  This requires the introduction of
a new XEN_DOMCTL_bind_pt_irq equivalent hypercall, that can take an
extended destination ID not limited to 256 values:

struct xen_domctl_bind_pt_irq {
[...]
             uint32_t gflags;
#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK 0x0000ff

When doing PCI passthrough it's QEMU the entity that decodes the MSI
address and data fields, and hence would need expanding (and
negotiation with Xen) about whether the Extended ID feature can be
advertised.

It would be good to introduce a new XEN_DMOP_* set of hypercalls that
support Extended ID to do the PCI passthrough interrupt binding.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:20:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:20:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225349.1531828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRBp-0001Cv-3I; Mon, 09 Feb 2026 13:20:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225349.1531828; Mon, 09 Feb 2026 13:20: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 1vpRBp-0001Co-0Q; Mon, 09 Feb 2026 13:20:33 +0000
Received: by outflank-mailman (input) for mailman id 1225349;
 Mon, 09 Feb 2026 13:20: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpRBn-0001Ci-Fx
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:20:31 +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 1a8cb2be-05ba-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 14:20:29 +0100 (CET)
Received: from AS4PR09CA0003.eurprd09.prod.outlook.com (2603:10a6:20b:5e0::6)
 by AS2PR08MB9473.eurprd08.prod.outlook.com (2603:10a6:20b:5ea::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 9 Feb
 2026 13:20:25 +0000
Received: from AM3PEPF0000A799.eurprd04.prod.outlook.com
 (2603:10a6:20b:5e0:cafe::d6) by AS4PR09CA0003.outlook.office365.com
 (2603:10a6:20b:5e0::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 13:20:27 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A799.mail.protection.outlook.com (10.167.16.104) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 13:20:24 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAWPR08MB10135.eurprd08.prod.outlook.com (2603:10a6:102:35a::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Mon, 9 Feb
 2026 13:19:21 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 13:19:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1a8cb2be-05ba-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=nFoOcaeYj0tP9wGwjnCF1e/V6i3mL4i2yK+MvjjUXlUjxsCaqXnsjk+YljxwOk3DnGKA25o/cBR9Z/rxgFO6lFOVBG5eVLkr3ZX/nXl6f9EWfMhHE1GYhxhAnH/D0ms17egzY1D95n0xerV8t7c1VzYk3DWA+uRNYl7osAwAzr6HwHRzroyVAudYOLnmKbB1Hz3BBUKtC0Bnut11cpFWE9W/mwvQYoQiKkJYnt4eZatBJjohACtQly1JinTqZhZkfLOstuh5b3+jlE+i5LydPUOrcRBr6H20Vp1oCI8LM/QbKNa9if4eh3FyMle/I4fh1W+Yj+wXZoSySUAyAuueZg==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=f+yFPHtlgflRslhcZ8K9Ddu5pWXxoDqTj8fSjTgmqSI=;
 b=oLip1NI8JF8O896W0yez5nS1+QbiR9iacJy9wvAA/rNGZBNG5YH2be2VU8VyuG5iYVu7hdByNuox0N7lbWUbranTUF08PcY7nIhSAdrxRGlhKUnMexPr9GyB7DWtOeFsNhdp/XzU2KwY/or+bof2s08zC4bYretdAiVPX9YnoBOT6HF6j0iSJmL6zgcvQeV9eRLjhynbnsHBzB6Pz8mNZyQm5H/i5e2ODmtSJTMdbDB2uO68v/6hgPGITxnAdFAQ9lggQIFjFaLBBc7wkYYXK4SNL3vUtfb/LSst88OjYZAR2QQZJZkn3IWHDA0tPRc8jpAsqhKAUC6pKpR7ERNL2A==
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=f+yFPHtlgflRslhcZ8K9Ddu5pWXxoDqTj8fSjTgmqSI=;
 b=I7LM1RgFd57opK4XRBzS0nQTGplk5ELyniSeG4t0XMDwkOqRutkuVb7KJJo4Jc9xGAvPfE4jYp20+1V+qPTxdFTRCh5kx3Ho5XBT0Z0cUUoyArcKIaMySQLxGimFJJEbuzQGlqXgSQJh6yB4NNNXurOKTiMk6GWf46AX99aXaFg=
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=K2Rk5a46oymK8xI3MTjzKsoCggiLjnDc5J9v4ryvkm+m9eL65HGa+XVUq0L1zfaQVR0VIeb8EvtfGkB1GrDTIL1bcNSNnhecumHPQ0jcRzmOfR7I+Uf8pYILe54QpkADoUS0jN0VmbjTINvCWfL15AbMMismYKhmFaqMcKUoV7wnAoIWp/w8MkLiAAFhGMZPWgErOeldKqs1KvgBxWSmtho1bPvRxQlNuLCURVWzXD7Vw8C6arJEsPPp70nHzSoUfde3sxxkI6Rtc2eqFO7gpTricQ2NTGE0GcmI2+VOYvOpplzZpGGfZiufOAeA2iyMBFw47R9hEogplafUTiJoiA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=f+yFPHtlgflRslhcZ8K9Ddu5pWXxoDqTj8fSjTgmqSI=;
 b=jTUWIWcC35MYSzFUQWFVtLJxgkaVqFjE2HIkg61IRyz+v8s+3XaKs5PfBf8iuHkdCQX3zxYg0koEF95pxc86XfiazehZfcCE1afZ+KcJMYByEFLCC9shChvnBwqRwMwLIwNyHwpwzaGIwWhC82B+jRINTAVysb51XzDQpCa6OSKyZ2ox2k0bxzhIRCHqq+fKe/rr0NhIgWBy2vB7/WRnrA8ImhWPfmJug/lE9gkjxJ53PEVrWLt2UV7GGdeZap0tN3dXcNjjACYDl6k+UEBIga8b5dgdoFpRDklx58xlHceFPT9VAvdEmoikZCAOMtHzdbHXkZM9fDt/ZCIowUDZwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=f+yFPHtlgflRslhcZ8K9Ddu5pWXxoDqTj8fSjTgmqSI=;
 b=I7LM1RgFd57opK4XRBzS0nQTGplk5ELyniSeG4t0XMDwkOqRutkuVb7KJJo4Jc9xGAvPfE4jYp20+1V+qPTxdFTRCh5kx3Ho5XBT0Z0cUUoyArcKIaMySQLxGimFJJEbuzQGlqXgSQJh6yB4NNNXurOKTiMk6GWf46AX99aXaFg=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v5] xen: Add Darwin.mk
Thread-Topic: [PATCH v5] xen: Add Darwin.mk
Thread-Index: AQHcmbF131JHt0VrQEG2yzDmCYz1i7V6VRMAgAAE5AA=
Date: Mon, 9 Feb 2026 13:19:21 +0000
Message-ID: <D2D36A19-BDB9-456E-B52E-743D5DB4C6B8@arm.com>
References:
 <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <15680dd6-e554-4503-8964-e8801aa31e79@suse.com>
In-Reply-To: <15680dd6-e554-4503-8964-e8801aa31e79@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAWPR08MB10135:EE_|AM3PEPF0000A799:EE_|AS2PR08MB9473:EE_
X-MS-Office365-Filtering-Correlation-Id: ab5bb532-702a-47e0-9085-08de67ddfc3f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?b26un2mXdIQ+kP0TxO56x0a/5OPzeYc0f63PdKZA5Xl3iOJEvWoQRf4F3x?=
 =?iso-8859-1?Q?rvUD1YgvbqvNVuzl/5s517mftkInhPbBuzK+ncWUR2dtczTLha1aWsRibo?=
 =?iso-8859-1?Q?voRebg368c0xyusXTONXNBWwcsOP3Rw2uX3dABu+bBK6bZST/9giZqn8Vl?=
 =?iso-8859-1?Q?15yU+Aybq+qDZoSkA0V2fUvDtZyQPi4xB5kIhAYnb1f2UCjW1ehO9Ox9hG?=
 =?iso-8859-1?Q?ffkzSieQ0K+DIfFgHx7WR1QDxN32mokB7GOFztMtooNBuIF41/PZ6g2VRS?=
 =?iso-8859-1?Q?VIWQzcIjRUPPzz/KqGj08VDHjv3J3pv+81Mx/IVEdMCVcjv9gWAfeeSMfP?=
 =?iso-8859-1?Q?6q86IM8ooKzaSzHPrMclruwyeKLvXrdY8LytnCJwX+fOw/HxyiDUYcWcfS?=
 =?iso-8859-1?Q?jCvEnosIwpgMHQoJNqGJodS+oujNAeFB4WoD1hco32npc6z/sKRsjRc9W4?=
 =?iso-8859-1?Q?pUdZfRo8liNmiuvYYb6Ia7mIKoGz2iMmjaqW4kgKVP3PYYgu085QD2aq0K?=
 =?iso-8859-1?Q?ZWPGHiKOtMAfwoet8x+PuqRXlJbMoXhwG+kHYKXmADTRJPETkj0We2gCMt?=
 =?iso-8859-1?Q?nVT9CvuEyOavNGrWw2bEtam8WabOIDhg4RFxEJVrypKSrPMX10NSa7SWUC?=
 =?iso-8859-1?Q?NWVh2jzpxFnO0muRNRxOnnELdRfD87g6rw8jn0TwvIvwq5qkMrN4wvLsqF?=
 =?iso-8859-1?Q?kCT822nAnkGUzi/4c7lcuWdJORuw9P8UeZqI8PSxT9+bNfZGE+h/xwj2Fo?=
 =?iso-8859-1?Q?cFbYv2gWhuLVEwH2SEzDyWf8AigBBrxeVyH5G1FEeETIwBSi5N6FB9NSop?=
 =?iso-8859-1?Q?odeddbrvAhvSVVgrRRSYvWdjCFBAajs7kZEYakGDwvTwEuOWanhGx/ATTw?=
 =?iso-8859-1?Q?wsu8HYgIx5KfG3nrlm9BN9B6d4d+I5z0sRjCDF6hWAQ/hq6ecblYMUlZpv?=
 =?iso-8859-1?Q?lKgwSDixV0vQEIeVwK5TYCfZ+rBI/NqK1AZN+9rmzQtLJbddJx0aKPSc7v?=
 =?iso-8859-1?Q?5qwwbRBM8d2zhRdcXYy1c9WAR2fENd9JOZbvpLpvumueEH4DlST2ScqPpM?=
 =?iso-8859-1?Q?nEsumpltUT6h6PiXqJavMt9c76mxz6Ir9GPH29FK5CaCJs7VLGUV/CKetG?=
 =?iso-8859-1?Q?CBhbU/qT/YxNZgOXlLrqvpGpq7hrzjTe3PQv/n3DsycUy/8s9aFWpxvaJN?=
 =?iso-8859-1?Q?ygOBv55vwFt/R+jSRTznjgoYQnOUIqPfOPcipQzO8f9+1v4DXK4NuuYE/Q?=
 =?iso-8859-1?Q?vtq5gHZ3+Hv8WVmuKnzVnOnpRJoUtQwQ2lPLFwzkMnUGaboQyl830rs6m2?=
 =?iso-8859-1?Q?MRVJIeTUIjgL0ggSlAkzev1yskb3b3oghUKgS/TtDusScvS70siaLZujRh?=
 =?iso-8859-1?Q?FZARz+KrP4EHtbUv7JlslpOzMwArbEZEjpW95kV6g8yzCHTRuSUDueH7c+?=
 =?iso-8859-1?Q?/U5YCMdvQZRUGFjVNrVScTuLr3hqlRQ9N/490uMR2o6meZ7i7vUQyP7FuA?=
 =?iso-8859-1?Q?kgutTU7Ew6uuWNEwlG+u1e2cvCtRsMMGZAOSALR1SEhrzYcWHCzmepo1+I?=
 =?iso-8859-1?Q?5unKqCk4q3Sw/RZb/F4sdbU1lxTmXbQeUYNO/kJtBPgaY0YNvShOVa0sjd?=
 =?iso-8859-1?Q?bfT6CYy7bCFrhhhpe3esUheejwuQLFXfNTY9IGFGyMDekq7YWwV9wSXHVA?=
 =?iso-8859-1?Q?xjgToT2Ag0vj/w1UuuY=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <3C3639A876DC454CB954099B046F13FD@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10135
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A799.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a7a5dee2-0450-4701-30a6-08de67ddd64b
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|14060799003|82310400026|1800799024|376014|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?PD4w6+iODDDTuGJdBMDlFr+iuOLW/U1b4XKEGBtuxbr9uDtpAP4dg3Agc6?=
 =?iso-8859-1?Q?lYhbmFJF/tCpnbkFe65yEyT7IS4/J1uAgg9arb89N7uzNXbgLASx6SPfOV?=
 =?iso-8859-1?Q?55X/oVXW34ZfDTJy2cCZ0EkaaXa3ivEVV5G/nnWy6guHHxxKtZm4wHHDwz?=
 =?iso-8859-1?Q?IoX1oGmEIpyxost2uBWgUCBvkpHgKGSfhsE9st9tBa82xhos8qiTrgW4s0?=
 =?iso-8859-1?Q?mfAWpRwGezyXbVCPxqAjLbyQw6qvDOhX4IM+tz8aX4IFUijhMP46AOWUKN?=
 =?iso-8859-1?Q?xW6E6GeEn/oIEXOV7+Gl1YAlHM6J7WTnJG/c6hXZd8K0hqSQ5/vhyzUVY3?=
 =?iso-8859-1?Q?kqHs2OmxUn5WeNFG/G7BXISkqN+WnRiv/SduFzX2xan1pHzXVTBmRYHVF3?=
 =?iso-8859-1?Q?WB80AlIoYCP8KZ6kFhySrvw6i+DCF3Xi+71VjiLGAM4E16guFCkeKzp0+8?=
 =?iso-8859-1?Q?/UJd/N5XXVovAm/CWXzv41iLg90VtQzwSJRtaSmlS1j3/3iw2A2ufmHVGE?=
 =?iso-8859-1?Q?gXqfihb/D6qx8sjib6shWM4g0vOF6EfQ0cS0vq+ziTu0puWaUTjjboIxKf?=
 =?iso-8859-1?Q?5ESblLFg2Q9We1+rUzGcZvlJXFXizkK8lHRTyhPjbw1iAVEaDD3wJsPygK?=
 =?iso-8859-1?Q?hBwczAmlgnBRGu0m+toegmM1dMF3JNfj3PoQcRosOrFUtkrxdEIG7F1RD+?=
 =?iso-8859-1?Q?FlttcVax2NsT+wHS7UvS7YBnlvNzq6Ccrio6DJHNAGQ6HhIQVcYCypII3G?=
 =?iso-8859-1?Q?BUMbOWo9cs0M6Sv1mE/3TnEgCrRtjMegSFUOQe/6r4veknOaxwmrajB+L2?=
 =?iso-8859-1?Q?zrVf3Dte2sqGHmjlRz551+AMEj3gmzGfIx5N71ZR/QWo14BPN/uHAYsTXb?=
 =?iso-8859-1?Q?kYRrGA2sWPst3gxfWt4/HpdzSNsRVeHgeTqSEaxH0Mi6DZts3tnwrMK1rZ?=
 =?iso-8859-1?Q?xXwCoLT0oPdxQrboKNBoZN1rL5h91UfS/1Ffz1PThBL/VdgCN183RAIf5B?=
 =?iso-8859-1?Q?VoqZxj/arfWiMVfbBRLJyhbYbJrBiD9F/1hvMB4H3ho0VVIULFlwRRTzj7?=
 =?iso-8859-1?Q?JfHCjifoUp43v0fYjQtSr5KxE/0pNef9nwr8SRmb+dtHs8JXhDOjkVCl7+?=
 =?iso-8859-1?Q?gxFMGdUtDfapalYFOLqJ92pzCAh7Nl+vJEfgw4FKjSNSkyPUYT66/nY1o2?=
 =?iso-8859-1?Q?UJygTPba1zQiB85DlAtMWlG0/CvQR/uaF99pH/XTE1FbnMRAcOKQAfTTxV?=
 =?iso-8859-1?Q?ycV6lX20dy+mNWrQRGYVkz0Yu6o9bEAOa7rCbotMllJ6qAUZNLGGuCjU8+?=
 =?iso-8859-1?Q?vZ8FGn2WQl7TSB8+prhptSbRbmZJs+59gaJfVItPz0G+bAX5DtBKseMRlu?=
 =?iso-8859-1?Q?XiRfSHtPsCoD6vAtkmO/trJtsI+bMgKnfeejQGWEU7Rcb54D7GbY+BcYMf?=
 =?iso-8859-1?Q?Nv7HaxoyXgUeh3zWOI56xu4TbVpMdSe1gnkqI/8hUti9P7pkm3uO0AgzhI?=
 =?iso-8859-1?Q?PUXiAJ5QVRmuq5Tc1QhXcCGyyHslNp21u5/9SlNGzjlNKHXMG8nJIGVMm3?=
 =?iso-8859-1?Q?vdw9ctnNXp0RoFrkWg5SXosOFq3A5Mkticbe30Ozs9zKde5fCT1uoID0Hi?=
 =?iso-8859-1?Q?L5Lkau1BlMYVXf0yuxR0K8E6A9sWGh62kDKj7uLLZPNmmtna7EDTZ1976i?=
 =?iso-8859-1?Q?kXewOX0bZ5UYfb+VXTFwY8lfysilueRBmxqGqAwVBii/PLUB1wQc2MeWxy?=
 =?iso-8859-1?Q?+ITw=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)(36860700013)(14060799003)(82310400026)(1800799024)(376014)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	oczgqVtXH9KjkY9qNDKe1ga9v3XlOHgkqkLkdPEBCM8QN/icKGmpTfI9qVxh5T2qI5Xuj4dG+o7/y0z75mfTyd9geDczbwqW3AjdWylfFbQmrMMrOTu5Zy3218YITO9jiW+cFWHcnJ0GZHMeKKqVyHneeAk1NGAEK/KetYSIgGn7ZHmsi4f2gnrkIOhzhYnZY4RE/OgXLC/oF+pCN3Hu6Fyp78vLsdNFT92IG8vBmME47lZqHDYQyxWZPygbFn4jfIopk8jJaMrFz+Erwtf3eC0phZXcWyQqjs0KjmmTtP8ut4T3oO3NqfPOaYjYgBl4YlXEYUPwDQtCUFOtr9RWqMyKgfUp+zrq4L239lyCDhH162qWYVGH6p9El9vwDhj5+Xiu6w333Q74E42I3GoC0H0mS/coWhr/5J0Mo1FcfzfRbvGLh7i7GfgWYu3R5o9/
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 13:20:24.9722
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ab5bb532-702a-47e0-9085-08de67ddfc3f
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:
	AM3PEPF0000A799.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9473



> On 9 Feb 2026, at 14:01, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 09.02.2026 11:46, Bertrand Marquis wrote:
>> Xen does not provide a Darwin build configuration useable on Mac OS.
>> It is possible to build Xen Hypervisor (tools are not supported) with a
>> toolchain able to produce ELF binaries (GCC or others).
>>=20
>> Add config/Darwin.mk to include StdGNU.mk and force
>> XEN_COMPILE_ARCH=3Dunknown, ensuring Darwin builds always follow
>> the cross-compile path so compiling on Mac OS is always handled as a
>> cross compilation case.
>>=20
>> Only compiling the hypervisor has been tested !
>>=20
>> An example of how to build the hypervisor for arm64 on Mac OS
>> (tools cannot be build for now) using a compiler from brew:
>> - brew install aarch64-elf-gcc aarch64-elf-binutils
>> - make XEN_TARGET_ARCH=3Darm64 CROSS_COMPILE=3Daarch64-elf- HOSTCC=3Dcla=
ng
>>=20
>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>=20
> Acked-by: Jan Beulich <jbeulich@suse.com>
>=20
>> Change-Id: Iba91634afbaab58767bb8744b4b722ce5732a6dd
>=20
> This wants removing, I suppose.

oh yes sorry for that

>=20
>> --- /dev/null
>> +++ b/config/Darwin.mk
>> @@ -0,0 +1,6 @@
>> +# Use GNU tool definitions as the tools we are using are either GNU com=
patible
>> +# or we only use features which are supported on Mac OS.
>> +include $(XEN_ROOT)/config/StdGNU.mk
>> +
>> +# Cross compile on Mac OS, only hypervisor build has been tested, no to=
ols
>> +XEN_COMPILE_ARCH =3D unknow
>=20
> There was an 'n' lost, as the reason for forcing cross-compilation also
> isn't stated. I'll take the liberty to add both back in.

ok with me.

Cheers
Bertrand

>=20
> Jan




From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:24:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:24:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225357.1531837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRG0-0001ln-JY; Mon, 09 Feb 2026 13:24:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225357.1531837; Mon, 09 Feb 2026 13: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 1vpRG0-0001lg-Gu; Mon, 09 Feb 2026 13:24:52 +0000
Received: by outflank-mailman (input) for mailman id 1225357;
 Mon, 09 Feb 2026 13:24: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpRG0-0001la-0Q
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:24:52 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b32702d9-05ba-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 14:24:46 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB5988.namprd03.prod.outlook.com (2603:10b6:610:e3::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Mon, 9 Feb
 2026 13:24:41 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 13:24: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: b32702d9-05ba-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rb2nQYB+dKXb6bAPwFonecCVAAnowaYNyi0bLqlBQukdl5DkfTyifTodokbfq7uvliyicZnjMo4w62gZZJo1U4/T0AbwsOjINPBcsamwXf7piUwhxIAoE92wLf2Qq6prShkCnW3QrLSTob7XWKqWvwcQSNOlsHQ6Foj7dlgiH4PVwrm3sw20r9b1z7wlstz71oUCmoOntqW/x3ZR2qYQv8kENPfq+GsaBe+HNakoGMyTQBmAh/V4oXOXq/kOmPjniPQWX5xz8CQmMVDGW8rHHbojg/97EltBX+ubFHSakOS4/L306GXp9IOu2jAYsm+Gj5DPQMBRT9CarHvJHtvKcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BoVbc0gaZd5O2MY9McQsMrm1n6Z6VVG6a57IlbJK9RQ=;
 b=bWj8AGSiQGw1qp5m4ulbI0dbMDLVtMm2jI4XJrPhhfNm1hyRT+KLpwKKHru5s1ctAlIVo7OhISauWvq70CP/o/jIFdRyMkg1oV3SKs932buMGO0FCKHdBCkOImtjMriBczAz0YDyHFCLFdQjGQxr9rC9W+62iKqHlx92nP4yJUMoQ9/s4NP9MfEmKvktBN3CWtQ/tGdmxPpky89dPFrMRpXS0X55oujL2C7ZbBtD4Hq3LTUu1UEHb4Fy6tHwxHE0mmFbfmmMQpprizVYOgJlFqvi/P6obGBcjylQuCD77uhAHfQQJ5ALz6mJrea4K1D5Je1I5G/Y4L163r3uN+fmHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BoVbc0gaZd5O2MY9McQsMrm1n6Z6VVG6a57IlbJK9RQ=;
 b=TrutoUoTXwrDpa8R0PAnqhGAV5FHJLqb6ix2APmZM6VfTtEGOlEA1ooF0y209FzdBcXFtL0Ptl1L27zXYf83IeA+oY30rfpXwvZqPw1vFkG9l9zu/ZvRpVexRrTblkOlOrrIG9wlHfLzMajrSSO282oBjuyIB/vQawcItgm6cjQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 14:24:38 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Julian Vetter <julian.vetter@vates.tech>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/hvm: Add x2APIC topology
Message-ID: <aYngFiaRQ-J4i0fN@Mac.lan>
References: <20260209113721.2604894-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260209113721.2604894-1-julian.vetter@vates.tech>
X-ClientProxiedBy: MA2P292CA0023.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::18)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB5988:EE_
X-MS-Office365-Filtering-Correlation-Id: b3b5ab64-7a64-4597-6a26-08de67de951e
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?bmE3TEFNVStmZzJLVEZqY0d6bU1wYlRzTXBuSnFEUkYyOUNFUWFDUk9xbUhD?=
 =?utf-8?B?UkV4YjBEUTlweXlwcHgycmxPL3h1SmlXVjdiTmtVSDMwS2RGVDRGdUhCR2k5?=
 =?utf-8?B?VUZNZ3lDZkVSM1FVRmtLSisvUjBkOUxVR2dhM2hoS0JxTEJnODBtc0dlYXlu?=
 =?utf-8?B?eUZaYlRrOGI5MmZYd3pYUk5GZzJQUkN6S1FXTTZ6YTVTMHRxN2lmMHdZSDVn?=
 =?utf-8?B?ZC9ybnp3bVBqdjkybVVzSXRsc0RSZngxZ3ZvWXRnRmdwdmphY0ZnZlFiRS8r?=
 =?utf-8?B?T3grRlN4b0IweDkvcFc2a0NjeUdHU1J1cHhUQnEvS2c5aU9Cd1lkYXgrRnBU?=
 =?utf-8?B?R0VMT1U3SWtibE9zQ3FmUTR2YVp4WGVCUnIrUERmYlhQUFhOVXNGWFV5V3JD?=
 =?utf-8?B?U0VWTFBtYmhvQmt5VWZjdWNsVVR0WlV5cWlWbVcwa3hNYWZmejdpcjc1SERl?=
 =?utf-8?B?UldHcXFBZWR2amM3elhWdS8vdS94VHY4b0xBeE00d2p3bWlaV1pBemt1NHV6?=
 =?utf-8?B?RzVydHQ5WFYraFQyc0k0RWJOL29yd2hEN2RTTFhwMWF3a3hHM2FNbkV3QTg3?=
 =?utf-8?B?Qk5tckdRdDdhU2l3c1NtSWRkMVlhN1dsaUxGbGxTNjhvYTVTQVBCNEdweVhp?=
 =?utf-8?B?c1U5UEdkb1F5WXJJK00vVHFCM08xUHdBOXh4Vk11TnY1N3Z1bmEzMEI0ZE5R?=
 =?utf-8?B?TUZBb2lBeU42Qkx6R3RaSUtNdUh5aFNoZHdYMUI0bzU5d2xiK3ByMzdJSFVP?=
 =?utf-8?B?M29IRVNzRVRoWityems5Wk9jSmRVbWdwN1ppL2xsUXJ1Qk5uMGJ1Y2VHVWNm?=
 =?utf-8?B?VDUwTmkzTkY3d1BLRzZOTVlMdlFIWnRIam5vd3lIcHRtL1doblhlRG9pd2Jw?=
 =?utf-8?B?WTd0NnNMM0t3R3ZjTkJIQ3kzZG40SDFKRUFyWVRMemFhWjVtTWFDdk9HM3p0?=
 =?utf-8?B?ekpISXJTcmRJZ244QUI0TWF4ZHpjcDRFbng3eEwxWkp3VDJ5V0ZUemp2TFNJ?=
 =?utf-8?B?aGFwbnFyRzNiV1ZWVHZNQnFEMVIxem1yam1TT0t5V0xHODB2MzNlVzRjUjNo?=
 =?utf-8?B?RE1mbUFMNlZNVFBWWkJTSFFXdkpzRGdWczBxbGtQMTZoTHMzQ0w2OVVYYmkw?=
 =?utf-8?B?aml5VXhUb1c2M2cwTUlTdmd4TEV4Z2FUZzZzODBWVGRtanVJYW15TElITFY4?=
 =?utf-8?B?dGlpQUV1ckdiY09nLzM1M3g5ZnRNK2krUTJranRwTlpqV0hxSlYvajVxWlE5?=
 =?utf-8?B?QTcrN0V3anBFWmlxR0t2TmExZGhreGZDbm9EZjFucUVnNU5rZFc3cHB1bnZV?=
 =?utf-8?B?RjN3dmh5aVpxcktOWG1iaUFxZGRKcnNRSURuSTgyeE5ibmt4bHVMME5kNmxF?=
 =?utf-8?B?MGFpWktFbG5uQk0yOXh0ZEVhbXJOVmhBT3lnNU9HeFlVcXZGWkRHSkNhcmhV?=
 =?utf-8?B?Z3lveGhqMXdhZHcrMWpUYm9naGlCSG9wbXJxMEhOSEg1a2RoUHZqS0JpVXBK?=
 =?utf-8?B?UTlqK21jMnEvaXJnbnZJRC94UmJ2ZmgxQXVwL012QVI2UzdyZlk2dExKWU12?=
 =?utf-8?B?SUg4MDR6cmM4SVdTdGx4eHJVRWdvd1NCYU9BcUR2RU1BbXlZTkx3dUpnZ2NT?=
 =?utf-8?B?OEFRektkR2xmbm9ZbUV0Z1BDbTlmN0FOSTR1eWRjbDJ3MDBQdC9BOW94Q2ZM?=
 =?utf-8?B?TnpLdmJydmROWE1HT2lHTVRFNm5SSkhHS0RnaG1NNmxZN3pzQlozVDVyV1VZ?=
 =?utf-8?B?eHVKUzRFM1VYWHU0cXluWmN2SlN1VDBTd1VLQzkyWnlmZHRYTDVsZHBDazYr?=
 =?utf-8?B?R2J3NlBoM0kvN3JwQ1BaNmI4NVdZK29TdDBNR0xVVGxabVd2bmNweDF0VEZ4?=
 =?utf-8?B?MzNaYkxPaUJVczdVSGtCWXJja0JRY3lIYjdGdmZrNWY4dkpYSTNuRXBVZG9u?=
 =?utf-8?B?cHVybHNjemxqR05Vd3JqbWJtQit2QXhrTFozeWhCYWV0R2UrekV6YUZSVWRm?=
 =?utf-8?B?ZmJtTjBEd1FRTEhVNUhPVkR1SFlKZFJqK244MkpzUFB1N1hIYU44NC84WVZv?=
 =?utf-8?B?YWczeEhBMHh0R3Yxd3JKRzBzWVdGdFN2TU4rbkNKWU5aaXNZRVlGNmVNekRx?=
 =?utf-8?Q?Sv/c=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cWpxLzZaWDBzc1VSZDAyNEwwZ2twNkRzWWtRTzU3WmpyVlJ1R0dnSVBxdFpp?=
 =?utf-8?B?SitMVDFVKzF5R0FUblZEdENHZ0d0bmtVQVBrOGhwUnJCSUNHeG5FT2hSSkJn?=
 =?utf-8?B?NzgyWWpzK25nYks2NlQzUXhzSit0UTNKOFJuUlNjNGs1bWp1UVIwNDNyT29R?=
 =?utf-8?B?cFhLZHFuZE00SnZ4ZVZVNVdiZkM5OW4yR1h3TXpVNjdkOWhMREVVNFdaOSt0?=
 =?utf-8?B?d20ramFFSExuUU9wRlYwTnBjWkxXVmtacXZneldwZHhpeXU2cU5vZStDZ1hO?=
 =?utf-8?B?ZXphWWRycWZXdDYrQ1J1M1QzbDB5WG53MDE4WHJjQkFXVUNOV3NIelhsbis0?=
 =?utf-8?B?bXB2bW5tUmVpc3ZJYnNlSHZlZmIrM3dsZC9EdSsyV1FKcHREN0xUdG1leEl4?=
 =?utf-8?B?TUVEUXdmdnBMZXFYT1FyVk8vbHd6SFlTWm9xTk8yUlJ3RThFTWFzUjFXbkIz?=
 =?utf-8?B?Ni9CVVRIMm1zVHpyQXRuOE91Uk9HNFdwdWU5NjI0cVNGcnZDS1lvSHZKem5B?=
 =?utf-8?B?S2JDdnhJMEc5WFVJRGhrNTRRbGx0cjd0dEg5a3pENkoxWXIwbnkvVTcxVWVX?=
 =?utf-8?B?cjFoc0lORWh1ZGNHczdSakZ3WEgyUW9lR3dKRGw1S21TdTZiNjhwZThST0Qz?=
 =?utf-8?B?YzVzOVBKbThnREI5Smh6Y3FBNm5qZnNPajBPWFdPQklKUkQxaklDUkV6blJq?=
 =?utf-8?B?enpXd2NZbFBwSDVGR0hNaHVJenFzczU5aENCZlQrQXhmSzVpcnVJdmR6L09T?=
 =?utf-8?B?ZmVwK1JGa0YzZTE5Rm84bXA5UDc2c25EVzZtMVpKazIza0pJajdpTm1nUjhj?=
 =?utf-8?B?TlpCQzZBMjNIOXI2VUZIRXB4WnlqUUREcGtZKzdKRlhFcXlZTEkrcHM2azhB?=
 =?utf-8?B?cER6NlZMWUpiejhya1JDVGZSU1BodXkrQnhmeTdEVjl3Tjk3aWxETkJRa0Fa?=
 =?utf-8?B?b3VMcWdPdlo2M2hkRE5ZMjYvTk1UUVlDcmcrUkJLd01XaFRIYkZVb05iemdD?=
 =?utf-8?B?N3ZtdnZmZXg1KzFKVzlwVEdLa3VhLzFKWEJPQ011UmhveW1SMmRzR01mZXhn?=
 =?utf-8?B?NVhPQnp2ZTFBamliZURxZEozY01FZFdlK0pEU1RiK1ZFdzY3Tk9qeVE5SERz?=
 =?utf-8?B?RVBRR3JxekErcW90d2dTZGRBb2Y2WjY2RzlGK080LzN1dWFyZWpRTGYxMW1i?=
 =?utf-8?B?ZVVPUTBvWEhKWU42WmNsc253ZlFuK2hiQVpFRVFBUkRnbk1QVWNFT0ZvOWZj?=
 =?utf-8?B?eUZ2V1h3WlVxbGg0RThnTU5jdTNFaHJiTUJNZmw3SmtYY09xeThiZ3BMQzgr?=
 =?utf-8?B?cnhrd0hIVmRVeXlTdlJRT2w4Z3lkK2lNOGF2ZDc1QlJxTWoxY2F1K1RTYUFv?=
 =?utf-8?B?dnRadjRpWnYzWTdSbVpDa2RtK281V2xBd1lpVXNEdXFOeTdpcTdwbzRTejc2?=
 =?utf-8?B?V2VaQ3ZtRUJxZ3l2WGIxY3Zqb2RrMUkwSVZ5bU9EV3JiT3VHODFCZzdGazQw?=
 =?utf-8?B?dllFd2h2c2FsWEhSYmdqSWRSU2ZZU3NHOFZ3bFVPUmpxMkd0TjBuRVNBV0xI?=
 =?utf-8?B?MXQzMkM2V3B2RDBaT3FLdU1YQTBkZ1BLMDJsR0QrcVphaHBxcGpzRU5aY2xi?=
 =?utf-8?B?Qnl1N3VSOFhqRForb25JRmlvSnJXQ3pBekxJL2pIcmR2TlFTazluRVB3N0JC?=
 =?utf-8?B?OW1CVlNDZk90djY5elUxVy91RkJvY0pCMzRsTEdTb2RCT00weklIQ0tXV3F6?=
 =?utf-8?B?cTBGWUxDVkprS1dpSmtSMHI0Y3g4UzZmSklxQ0p0eFpISWhpK1NRU25iTklk?=
 =?utf-8?B?SzVGeG9RMWdFQXJxRE5ONkFEdXI4cWpGKzZTMHJ3eUFld2QxUXZySlpFTWc2?=
 =?utf-8?B?R0hpNk5vM2RaeFhXTzc2NlpxNHAvbXlCQ1VvL1VwRXh6WXp3cmlodmVvWTda?=
 =?utf-8?B?NHdwcTFZeHVpWGVaanJXNmlSTVFIYTRKL0ZqOTE1Slhka1dJazFldDBhQ0NM?=
 =?utf-8?B?V1FMRHlyR1huZkhaczZwb0cvWWRCcUhUQUhIN3c1SHdUZzJQZExRR1ljK1gr?=
 =?utf-8?B?MGVPT2MwdGVoM3Y2dk5FRExQS0wvOExUWXQ0RTJCdnp2Ym9lVFlieFBZUkNM?=
 =?utf-8?B?alV2dVJENzZ2Z0c3aWFKbm9lWnY2STZDdkMvUmVzeEQ0OHlSeWpjd3dSRnVN?=
 =?utf-8?B?UkN5Qm8ybWJEcXFkbWFCVCtrcXJQY25JYXlSTmMzbStTeUZGM1FhRG0vdkh2?=
 =?utf-8?B?bTdqUTNBRTM5ZmE4aExVWGZleHVua2VSYUUyKzI0U3NZZ0xCa2JHVDJQcnVV?=
 =?utf-8?B?alJRNDdKeFk5OFpHclpZSUVZTzUvWitKUVRramhzZnpST1JNVWsxdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b3b5ab64-7a64-4597-6a26-08de67de951e
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 13:24:41.7031
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Knpyig6/wO5z3sm814iYmLKH0fKCfvxjmwEunJP3YSAv4ULTQIZAgk9Oi84Q+Af0Z1EP104/7+2xV1rV2rLIRQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB5988

On Mon, Feb 09, 2026 at 11:37:27AM +0000, Julian Vetter wrote:
> HVM guests with more than 128 vCPUs require APIC IDs above 255 (since
> APIC ID = vcpu_id * 2), which exceeds the 8-bit xAPIC limit. Currently,
> CPUID leaf 0xB returns EBX=0, making firmware (OVMF/EDK2) fall back to
> CPUID leaf 1 for APIC ID discovery, which is limited to 8 bits and
> cannot distinguish vCPUs with APIC IDs greater than 256.
> To address this, implement proper CPUID leaf 0xB x2APIC topology
> enumeration. Present all vCPUs as cores in a single package with correct
> shift values based on the maximum APIC ID, and non-zero EBX so that
> firmware uses the 32-bit x2APIC ID from EDX. Moreover, set CPUID leaf 1
> EBX[23:16] (max addressable logical processor IDs) to the appropriate
> power-of-2 value, but capped at 255.

Additionally to what Andrew has mentioned, you also need to report any
vCPU with ACPI ID >= 255 to use the x2APIC MADT ACPI structure, as the
local APIC MADT structure can only hold 8bit ACPI IDs.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:26:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:26:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225362.1531848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRHh-0002Gc-VO; Mon, 09 Feb 2026 13:26:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225362.1531848; Mon, 09 Feb 2026 13:26: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 1vpRHh-0002GV-Rt; Mon, 09 Feb 2026 13:26:37 +0000
Received: by outflank-mailman (input) for mailman id 1225362;
 Mon, 09 Feb 2026 13:26: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpRHg-0002GP-O3
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:26:36 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f3896fb1-05ba-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 14:26:34 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH0PR03MB5988.namprd03.prod.outlook.com (2603:10b6:610:e3::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Mon, 9 Feb
 2026 13:26:31 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 13:26: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: f3896fb1-05ba-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rKB11lN4OiET8Vy+nj3EZEVZb6qrxxwT2fiXuMRnc6GauI8dPfAZjs34mAlG6XfJb+cT/f2gMXu6VdEyXpzYbRHItlSBMPOgYY9NPI8lWAOQXHPWf46FPVuMizd0SVMcRr8UHNtep7CLkEfBUIC2TmhUsECfgpSNmqCESYsge/XZtXwzV8eoRTuUI6GVbBVMY5+O75ByMgvhzshJyWHSd3jC6EKvLPgzmc3jMquwm/eLJUMDq3mWKeuo5et047lvQonHlDVleIT0qHf+Sqsi+MdK0STpk6RXZCDhujErRskVXAdIP/snkMyoeo0+XhB+eeEsKO66ep6n+z7CCTAPuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fJ+KuiHeqfT93+KL8i1L77n9FESaV5R8qfn6LlR5y2o=;
 b=ixOPp46JX01nZFHP4WS9/6iWKOeHIwUS2H4s9XIBAhTXhIlXu4aK6fRVfQordGeMmv77QAh/qJFhKGtBndpRNCxIzgstExtOBqNWY9RgkTFEMMHfaquXtmGXTJU4k8I6RY5/6+mtW8rcbzD8kJdpZ3/D1yADURgoYchjASWMa6w3nRMhhuF6m/q6x8jyxNvz3xW7L4lAoOHHAjGIFwIimOzUIGmGc+/7RUQI//McZ/AY6H7zjaslMKgh1BR8pLBkR2E29w9URP+v6tFVOxmAPuAEg1JTNmCjQVqDc89p4hjP/W47irrJ3pqhXtL4i0P0a4m3urBBU+Imo51HPp9cAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fJ+KuiHeqfT93+KL8i1L77n9FESaV5R8qfn6LlR5y2o=;
 b=dewIAsmZoUxXbCg6uvU99q837zKOgWUA76Kp092zwqeONNDfxFyhoyciXVNADqJqERbKNhfdlxBJy2r8vtQoj8zTscfF3Ur1YZ4/Cu97jYa2tTPx2CSuPY1C7HSHS3cdPVDtOGH9O4wq93TFpqLXIUqUkGZ6Au/9ZlwoKW4YCus=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 14:26:27 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <bertrand.marquis@arm.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 v5] xen: Add Darwin.mk
Message-ID: <aYngg_ym18d0G-fX@Mac.lan>
References: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
X-ClientProxiedBy: MA3P292CA0061.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH0PR03MB5988:EE_
X-MS-Office365-Filtering-Correlation-Id: 59e453b2-42b9-4034-4ff4-08de67ded633
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RmxBcXBOejQxdHJQb0VOUjd4Y1kyL3NiVFB2V2hUcTZIV3F0ak45TzdQZWVh?=
 =?utf-8?B?WHdzWTI1YmNhUXErYU1nNXNiWjZIRGxsUlFyeGZ6a0E3MDFRS1JzLzhqMHYv?=
 =?utf-8?B?RWpYaUNuc1g4VUFJTjQwMFZPdlErWThhYndSL2hFVDJVVGg5WDh0T3picThM?=
 =?utf-8?B?RUJBZVZYMmFDWDNwekRGT2UwNUZyaS9Gd3pKTVpYaG55TUZCNlU4SkxPdjdh?=
 =?utf-8?B?UnM2YitKd0VjYzNSa0V0cmdPSlk4UGp4MHhkUzdmQmFYNCtsdmZEUTEra3hp?=
 =?utf-8?B?M0IyYWVaT29WR1RuM2s5U0hHYXpJVmRTWVhZSzFPVFZ5SmhMYlpXTG1ZMVNv?=
 =?utf-8?B?bVhMVjVWSm5jU28zSzlkdG5UQlZnM1ZTNndGbk40bFByOXMxSUUreWs5V0Uv?=
 =?utf-8?B?dFphOHNKOTJLc3g1clNBVHMrM1l0MG5CV2FUWU1zWjY2R21jMGVaSFl1RGY1?=
 =?utf-8?B?ckR1U2VVM2JpeDladHJVckd2dVNVZlNkalNxQmt6SUphQWVpQk56T3JWaFMr?=
 =?utf-8?B?Vm5sQU9Sekp0bWhqaE41dW9XYmNyUHdVMFE5NjVFMnM0Tm1oWDJtYjhZZDdH?=
 =?utf-8?B?YzE1aEU1bHAwL09ZVmV1R1hmeVNTeFZLNDBxVnRMZkxTZW5aSGd5Z0w0S0xv?=
 =?utf-8?B?Z0xtQ1JvTU11Sis2Mm5vcjF5anlKQ1FuVWpwV2dTUDYvU2FKcjZ5L2xMdWdL?=
 =?utf-8?B?NHloVHIwaWowdzZvZDZoeXdHNTR0NmV3VmFqMCtBVmhnVTczTGREYUxMeTU1?=
 =?utf-8?B?cTZqOEdlVEM2dlZIVHhCOXBtK3dJNG03Qzh3WTRBVk1QQUMzdmo4eVRlVnU1?=
 =?utf-8?B?ektFZE5URC9aTnAyaU56OXlDZWhrY3ZqTnJSenFSTkZHWjZmUFhNZXZSY0sx?=
 =?utf-8?B?bFgxUER1K0kyZmMrejFSUCtaZlFZcWtjSmNTZVBZWEd2QkJpNkdZclAxb29n?=
 =?utf-8?B?YUVoUllobjhtRFJXMmpXczgxbVpaMG9KeUViZzdFdUVhTU9hUkpNODBiYUhh?=
 =?utf-8?B?WFVtQzEzbm1RQXJTQW0yNHllQkl0UkoxTDFURXloSnFRRUIwSTQwb01Vbktx?=
 =?utf-8?B?bDU0S00yVFNLLzRSWUQ3cXRTZEtqcnU1K3pxYkI3ZXhlVUJUQTBSZjd2ODJQ?=
 =?utf-8?B?OUJLcTZQTmpTVzJEV1JmUTNkaEw2N2JydHFBd2Y4cUljWkVXTm5CZjg1MlJ2?=
 =?utf-8?B?NDM4R0h6U0ZVZUUyVHpBaFpLS1BRSU84dmFhcTZmQXFXQ0djZVc0RlFGcm84?=
 =?utf-8?B?QWlmTy9TRVVPdXdqM0RUWHhHdzhtS3hBNWhNVkFuWkd5S3hVN1g1SHNxbHpB?=
 =?utf-8?B?OTlXeG1hcTFoQmNsaDRSR1RQd3A2N1lBN3hUb2JVd3NUcWdwSGd5dlFKZFlu?=
 =?utf-8?B?cXVIYWZHU1hlaWVKL0hXaGZ5QWppem05T1lqaHNRaW1zeXNxTjNUVlhWOFBm?=
 =?utf-8?B?UDR0UDNFN1VUSXBwZlVVWE9sU3orei9jOE9XL1lQc1cwMTYxQmhsUmJMdGd2?=
 =?utf-8?B?ZzBSdnFPZ2luMmFKWjZ1ZEFNZWdWZ2ZLTk85ei9HdnN0c2VlSXVKckN3elFz?=
 =?utf-8?B?aTZQdVA3Y01RUUNPSEZVakF5REdhNDY3ZzdqMVFHWjR1SFNpeUkzeGYwN3R0?=
 =?utf-8?B?WThUOXZIZlB4MTJtTmRXTXZEeWl4c0pCR0V1Wm9oaGR6YzBiZi8vdGZQUXVE?=
 =?utf-8?B?M3RWT2t4SndIRlAzUitoUm1OTUZNRjMrd3RyS3crbGFtRXFGLzRQR2dUUzBz?=
 =?utf-8?B?Yjh1MmI1V0VpTEJZdy82U28yQ1hCOS8xWUlEV3d5OEVVS0xrNFcrd2ZGNEFl?=
 =?utf-8?B?KzQzbVdlTWY5S3NZYlRBUmRMRlcxL2w4TjQwV0NIOTJ0cUp2ZzFybkt6NmNN?=
 =?utf-8?B?bmdOY1I1SzY1U3BPdXFPSEVOcTBkUy9rQzh0TU14LzJERGtkejhCbmdmU2cx?=
 =?utf-8?B?TGJFSXF3NTltdVZFblE4SlBYNkpiNUttMWVjSXAzemdXK053QXI2K1hJMXhw?=
 =?utf-8?B?UkNnRHR4YW5URFBVVHp5MmVQYS9qZVZiQmFRSmRQb1YraTdJaVZleWl1QTNo?=
 =?utf-8?B?ZVhMTjdPcTA5cTJaanhxU21FeXBEUjhVaUltUTJ1YXFnekc0TlZ5YTUyMVd5?=
 =?utf-8?Q?KPow=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RXNrczJtU05VN2JtS3hsa1J2U3ZGWGFxaGhFbzFqODhiYk1FdURpSm15SXhD?=
 =?utf-8?B?YU8xSGtOVnBhUWNtTG1FelBIdm1IRm5jWTFXblR3cDUvKzNBb3ZNcWltTERj?=
 =?utf-8?B?cG8rbnlGMHdpNmxGZXF6czZrWmdHVXNHcE0yK0ZQT0ZzNVhwT0sreWdvaGho?=
 =?utf-8?B?eUREc1hEbXNQWXUrYklBa3Rad0ZOaVEwb1lObVZtRGh2NERTUTdFQjRZbVpW?=
 =?utf-8?B?NmZQK0k0KzlRYVJrSVlHRjZHREhXRGovREQzbDArUVV1K2RFNEN1UEdMTnhE?=
 =?utf-8?B?elF4dzNSL0M3UkpzMmROamZsaW1VQmk4bEFXS1IrNWM0NkVZT3lMKy9Zck5o?=
 =?utf-8?B?eXdROVNlL05zTW5mcys0RFQ2ZkZBbGNEc0xoL0swd1MxWEI3N0VlemZKbS9n?=
 =?utf-8?B?ZUNLa0xPZlI1NmtsZTZia205UG5RRWx1amIvSmtOSkJpbjF5WEtPb0xQN0ZH?=
 =?utf-8?B?SVhiZ0gvVnA0ZnpRTXdtQWZ2ZlhNYUdieGdkTWIwdWZYdmtObmYyZWpxRjd6?=
 =?utf-8?B?VkozRjh6ZURra1p6TC9aSFdGSWxNR0FmTDFGU2g2dzRvV3F6Ui9vc3JzUzYr?=
 =?utf-8?B?NnRRd2VjM2hJcjBQRVk3ME9LcFpLOVlGQjhjdk8vcmRoaFNHM0ZYK1g4YUor?=
 =?utf-8?B?WXRLNG5KaFlBVHBadXJDdzdMdVEvR3poKzFRTHU0OThWZGNlT2ZIUnJORW9L?=
 =?utf-8?B?aEpxTWpiSGtoNlZTNmFVOENDSEhwSGhjVUE2VHhsYVAvWGRnYzFqTU1TOUtX?=
 =?utf-8?B?SzA0S1BDUXVXUlBFU2xFNUo1SWRZcXhySGtGZ2tZdFFtdXUydXNhT2txUG0y?=
 =?utf-8?B?Tk5OQTVZL21xRmpjLzZqNWlxYjBkeUxlU1M4OXhDL0tWSmwrdWkrUU90R0pE?=
 =?utf-8?B?ZXNPMEpBMVJrS254VC85a28zZU9qbmw3dXhYVjlDNk9zS2JHb21jY1Z6VHR1?=
 =?utf-8?B?WVB6QVd0QzZ4cmszMkRFeU5MQXFxTTE5SzgrNk1PRUZ2QXh2alFiaXlUcTFo?=
 =?utf-8?B?UG95NE1BMWJDL0VzU2RxTmthbXlzTnNzVmh2a2RZZFRCSHNnTGZxL1cxU2Mv?=
 =?utf-8?B?VmRWMmxEM2g5djcxcDViZTZMM0x5bnB6WGI3NUZ4K0o3ZkRjcGF0UjZjdDU4?=
 =?utf-8?B?cndLRCt4S2srbThHZGd4T2VRRUgrVFZkZlZNdUJYRExXOUxKU2Y2dUUzT3Rr?=
 =?utf-8?B?UC9jKzVWV3gzcGptQ0lncU1FbnZnSWRsMWoxMjE5Q2hxQklvOHNHVUh0cldG?=
 =?utf-8?B?RURQNGZQZ1VNei9pY0xDd1c0V1ZpYlJjUWlsOVRTV3c4SHV3L1h5a0VYcTFR?=
 =?utf-8?B?OXU3dnhTbm1BV1Vna0ducm1RS1UyVW94RnFjZDBNcllMdS8rMkxNNjgvQjZm?=
 =?utf-8?B?eFlqUFVOZWNUMm1JTXN1SVQ3TXVMU3hGSkxWTFUxYzdONWVMREhNNXhUZmxr?=
 =?utf-8?B?YWJWdlA1VXBIblNPaEE1WHJ6dnBkTTdRNnVlZE5tWlNVbkpFQkgrdjlIUHZk?=
 =?utf-8?B?MHMxMmR3UUdjTmtRalBpN09xandRRTJ6MVVmQW8wQzNPVnQ2SmJxODBVNVNB?=
 =?utf-8?B?QldmUlNDN0h1S2pRZjVVR04yYUUzcUFreXk1ek5OSE84dk82Ly9vNTh2dnYy?=
 =?utf-8?B?MVEyempCOWFyWXZjcmtoVFNJZW9FN3prSHVHQ3RFV3AzWWJoS2dxbjZJREhG?=
 =?utf-8?B?ZVlCU3dsWEJpV1lCQXVMWGZZcERpdnNmUERtQVlkdlpMMmNBVS92eWJ0ZDI4?=
 =?utf-8?B?YmVFV0hjWmcvU1hNdU9SSHd2bWV5dU1VeTdFVDMyRk5lTEwzMTZ6cEcySE1H?=
 =?utf-8?B?bnpEdy8yL0tNWk5JOXBvRCtMS05NT1g0NHRBWElKNmM2WlJNazZQbTRQMHd3?=
 =?utf-8?B?amZBUEJwQjV5MW9ISWh0VmNqQkgwdUZ5UU9zeVlTbjg5TUZOdUJEc0taUGRz?=
 =?utf-8?B?RXNFQ1dVOWpRRDllVGN5VEJZVXJtMFJMd21HMlkvZXJ2dlAraHVIK2V5cE1a?=
 =?utf-8?B?bWQ0ZTVKNC9iSXNLZmxPeWRMQ1ZPeGQrZjBkcSsyaEE1eWdTeFg0cVFlL3Fw?=
 =?utf-8?B?eWRlRTRIcHBJN3lNVlNtVTZrWG90c29HRXhPTkw1dWg2RVExOElnODhLa3ZW?=
 =?utf-8?B?bThIa1UvVEVZVEJtWkNjNlBhSnBhb3cydTJIVzdLTWZINi8weTE0dkNnYzNG?=
 =?utf-8?B?QSswQnZmVVA0YVBGWmZsV2F4QWxyQi9QQ09QUDg5L1MwZ1U2MWRzeUhwSkU0?=
 =?utf-8?B?Mm9aUjcxdk52THNVaW5TUmd2a3FHaVZYMCsrdnhOQlBZcmxtS3JXMWl3UkJ1?=
 =?utf-8?B?My83NU5EYUJsQ3B2cC9vZnhVYWQyU2xzM21pVkZoRllGRS9BaGhMQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 59e453b2-42b9-4034-4ff4-08de67ded633
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 13:26:30.9954
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3rxUdDQUsbeLFvJC9OJUBlA3UC7RF8kI6t4JRqlbdr3+EYGsA1TReOapoNfK6fXKjrYc7489jmVkhUBl+MJedg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB5988

On Mon, Feb 09, 2026 at 11:46:44AM +0100, Bertrand Marquis wrote:
> Xen does not provide a Darwin build configuration useable on Mac OS.
> It is possible to build Xen Hypervisor (tools are not supported) with a
> toolchain able to produce ELF binaries (GCC or others).
> 
> Add config/Darwin.mk to include StdGNU.mk and force
> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
> the cross-compile path so compiling on Mac OS is always handled as a
> cross compilation case.
> 
> Only compiling the hypervisor has been tested !
> 
> An example of how to build the hypervisor for arm64 on Mac OS
> (tools cannot be build for now) using a compiler from brew:
> - brew install aarch64-elf-gcc aarch64-elf-binutils
> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang

This needs 'xen' target passed.

> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:34:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:34:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225374.1531858 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRPI-0004A7-P2; Mon, 09 Feb 2026 13:34:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225374.1531858; Mon, 09 Feb 2026 13:34:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRPI-0004A0-LP; Mon, 09 Feb 2026 13:34:28 +0000
Received: by outflank-mailman (input) for mailman id 1225374;
 Mon, 09 Feb 2026 13:34: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpRPH-00049u-SC
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:34:28 +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 0987f398-05bc-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 14:34:20 +0100 (CET)
Received: from DBBPR09CA0027.eurprd09.prod.outlook.com (2603:10a6:10:d4::15)
 by AM7PR08MB5493.eurprd08.prod.outlook.com (2603:10a6:20b:102::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 13:34:16 +0000
Received: from DU6PEPF00009527.eurprd02.prod.outlook.com
 (2603:10a6:10:d4:cafe::ef) by DBBPR09CA0027.outlook.office365.com
 (2603:10a6:10:d4::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 13:34:15 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF00009527.mail.protection.outlook.com (10.167.8.8) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10 via
 Frontend Transport; Mon, 9 Feb 2026 13:34:15 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DBBPR08MB10819.eurprd08.prod.outlook.com (2603:10a6:10:53a::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 13:33:13 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 13:33: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: 0987f398-05bc-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=D4SVsM5ZbEDmRaqePhDz6BpBSfzv6NMEX2leKGSvUr3sSIR0tyafV+doqCVp1zvBwZkfrLNKo9rR240VyARxVcLRu3aM0WF+rL8Nbno5Z7NsuSR7WWBy71IUJlVr+k59W6/CwfWqEtSxvxxMYLuJl1QgbZoFT92pJjyM6ul4Aduxj/C2TzwmF1OCiy7hx2pH9H5GwrK6Tu2Go/NNOYJ45GU7B90V9nrtYMR82QZtSVoosa9CYqvsWBK8crITYxIbYmyx1rCC11qyBBQvpqrDqYwWBq0P4lHC8esshkqOE4RLsuGLzPpmxv03DBwyJEVOvMMpWMIXjQlMKku9eMJgyQ==
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=zS0oCuwjdEUcSjNp+B39e+RyraAaxOpDOqBht9vmFJs=;
 b=yHRpD5N1F4mnsI0Hq1G9bpVW/rSWgL9rTkecEUIETx3nvKNvewOalc7M4Z23/EeRUsBrQNZHHO4taFuUlpn37GHZlCUdLJY/dxIURpNsEbTN15cz/5Z15aC1tA635xwjDdeXMHc6gHsZ1P8Ra7vI+ZCL6ib4LzWHARBf8SoYrOjVlQpQ9m+rfr9QDqwtF7sVDOCP+lmmnW5HdLJy2W0GCfOorhitbfe/P4Or5ntgayZUaDB7kawlJSLDK8zDxES0/p5i3D1ueXf8XZJurzx6jkhqdJpunCeJPqGRasPASm6GMZYDTDNKHKUK5n6KBjpPPxJBJtdNIqVbKmtOz5fnug==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zS0oCuwjdEUcSjNp+B39e+RyraAaxOpDOqBht9vmFJs=;
 b=fYQTkDPR6Hiix5CiplZcCdnrWrRfw/Kt7xH3j6EC4lhTE2WDTFLinl15EyLDGhG8/ZHYCXXALnSIqYSDO6/HXO+hRe9J0G9XoAzvvfohtbF3422Cm/paxWFU+Kv2DkRKAGjwN0UI6GOAcZeI37/1t5phF7+R0pRW5y0XlHWeiTE=
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=tySZ5RCjxIIjfU3yGj9kEG6GzbI/6P85MLV08QbybXiFByCVzD3IYUwykMae4EqgQUCICQVCYGqAas/arThQjDM9AhMWnZgOztobiGONXQA38kJdxifFmlDS6R96neoO9sNiaAgvBRvWJbuIWNrJuHScQhcvkgQwh5m3At6PvR1OGQN3pHthimUweup4I6DrRaVCKFtT236Cb7EBuN226aWByJX1kdWGTgCHgoDDf11vt8beqN0ecg7DU72Ss0O05h1sHRLTUgqGYaRaXTiW/fN9Gs2sl44/x14dPF9ijN4/TKFxK7TqyNVZpEKaOOzcGKM3SR8OYZCJFhJggZdggA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zS0oCuwjdEUcSjNp+B39e+RyraAaxOpDOqBht9vmFJs=;
 b=vUdD1QfseVYGIoiA/ppGKRYL0vvf43QlkuXF/9S3PuTARN9T3wbMHcT8l552odUmsgW+Q2kHpyN+3MTdl3qdpWhoYfRLc2mUPLunAeLVGF+i5S8ZmqbOJ+8DqrY1GWFQiW3arswcCder2nWD0DdpUk3+ZPGwCu/wzD2uBcJSCU8f2rqGD9owZ1MpmiPx/HZDzzQhBMudncS6njM9lPh0fOueqlc2qSypKdWDFfvrd9daT8Jx9a68p7pxLz9vPeY2bV3tdOdMC5CXLWLpxzFwGpa164ZctiC8kCCghlngqq6S5Ic6Q5y1DaJXcsn8calDZLk7i98IJfuZ1QdRZ1RKtg==
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=zS0oCuwjdEUcSjNp+B39e+RyraAaxOpDOqBht9vmFJs=;
 b=fYQTkDPR6Hiix5CiplZcCdnrWrRfw/Kt7xH3j6EC4lhTE2WDTFLinl15EyLDGhG8/ZHYCXXALnSIqYSDO6/HXO+hRe9J0G9XoAzvvfohtbF3422Cm/paxWFU+Kv2DkRKAGjwN0UI6GOAcZeI37/1t5phF7+R0pRW5y0XlHWeiTE=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>
Subject: Re: [PATCH v5] xen: Add Darwin.mk
Thread-Topic: [PATCH v5] xen: Add Darwin.mk
Thread-Index: AQHcmbF131JHt0VrQEG2yzDmCYz1i7V6XACAgAAB1gA=
Date: Mon, 9 Feb 2026 13:33:13 +0000
Message-ID: <28A169D0-4454-4D60-B811-72FE377A4318@arm.com>
References:
 <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <aYngg_ym18d0G-fX@Mac.lan>
In-Reply-To: <aYngg_ym18d0G-fX@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DBBPR08MB10819:EE_|DU6PEPF00009527:EE_|AM7PR08MB5493:EE_
X-MS-Office365-Filtering-Correlation-Id: 0c9f0bec-7a64-4ec3-0ad9-08de67dfeb5f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?ak9aSTN3QjB1cjBtb2xkYUZHVEh3TjJjK3lwQmtDMmVWL3k4QWhIRTlpSEFk?=
 =?utf-8?B?NGJOejRjUGIzTzJVOU5ZWVk2OTI5b0NNNTcwc1JydTVndC9ra3MvV3JUYXJi?=
 =?utf-8?B?eWxCNURUdmNXemJZalk1V1NFVTJlOUplaDFTZGQyVTRXODYxSDRpbnNSeVls?=
 =?utf-8?B?aUZSWUVWeVdIcWRLV0U4NWJLWDcrK3Bway80bzMrdVl1OVV1aW1QcmUxS1lo?=
 =?utf-8?B?c2RIV0RiZFE3K01OTUpiVXN0ZGhrQUpndnRYa2ltM3AvKzQyWUpXWDNYQXc4?=
 =?utf-8?B?aHdmYStGUzdyNXdnR1Q2TEUyVzJBSTRubmtQeE5UMWkvejhZdmtpN3poV0g4?=
 =?utf-8?B?ODhkc3FBWE11cTEzcGJ1cndYdW40Qk13RlZKM0ZVenVYb2VwbWw0U3NUZms5?=
 =?utf-8?B?ZW5Yb2lEWk9QME5CbVVrSURZb3JLMU05ZzgwYkJ5bnBsQkladFBmYVdYM29Q?=
 =?utf-8?B?a3dPZTY1SG9nMExuM0EzRnRpM2JCWm9NN0dnMnE4Q2lkZHpaYXBJMkZXeFFI?=
 =?utf-8?B?bGJFa0dRMEF6VFM2Zy9NaDJWdmIwbkJQMk9jZ1BYekw3a1ZLM1YwdmtWNDMv?=
 =?utf-8?B?TUtJY0pyYmNLUjR0OHJuczNwY2VmeDJHRkxuaExaSnhzc1dtTkNzcGJabTUx?=
 =?utf-8?B?dzRNVXpUSk45dWw3YnBPL1AxVXFKeXdRZk9tVVZtVnBRTU85cnk3NVZmVlAr?=
 =?utf-8?B?MCtwOWJjcXlwaWcrdUF6N2dmaXYwa1ptd09sK0NMWG0zQU15ZzY3clQ1VHRz?=
 =?utf-8?B?MHFXYjNSV1VGUG9URU5yeWh4Sy9PWnFIYUhsckN5WXp4ejRiWitzZTdjMDgr?=
 =?utf-8?B?VThCMHRnV3BYZWQxYjRxMUs5S0tHT2E4TkEyMzVzS002YXMvRmRiaUFpcVlB?=
 =?utf-8?B?UU9GN0Q4V1ZiQ3NKYWdpOExiVVgvdzk2QTZFTlpFRFhBK0tzRzBZTmxWSW5r?=
 =?utf-8?B?VFJBUHRxSmZUakZScUgra3gzWUR4UTZyZUtaVFdRcU51ZHo1cWx5RHEvL2NT?=
 =?utf-8?B?aGkvaVNsNU5wOTFCYWRaNXd6cHFGbFlaSEMzbHVOdElJY3pCSEJGMzNYSWs2?=
 =?utf-8?B?QjFaNWxIY0JoVzIwcVBsa3VtVW9FWGViRWZkak9ROERIRU5ZMmlodEQycE1N?=
 =?utf-8?B?akxPS0JCbUhidkFTVEVFdkY0anNmWnFFckR5emhLOWdGYjdXeUxhR1BSWE8x?=
 =?utf-8?B?azVicFBST0g1eE1iaUlxaEw0YTVyY3U5MEZaY0x1OVZOZUFjQjZ6d3N5RUt1?=
 =?utf-8?B?Zk4xb2tqZXpSblluVytoY2I5OVBWdmVYU2QxSXUvRkV0NG5NZ05DSm1pajhw?=
 =?utf-8?B?ZlV6R1FnYlUzQ0JGYm1YNngwVS94Vld6VitmKzM1cnJtUGN3a2duc2VCZmxj?=
 =?utf-8?B?UG1BeE9Rc1hkU3FkNVViNDl5ekw3Y3l1NkpXaXVRdDRlL0Z6SEFwQWYrdkdL?=
 =?utf-8?B?cXl4Z0MwR2VjelN3aUxnWDlxQU1JVnpCVzNPMEVDT09qdjBrTFEybUo1cyt1?=
 =?utf-8?B?MnYxdzJtTlp4WWdLUzZFa3JGMzFQblVsQ25Hd0xkQThUZldscEVoYmM5M3hp?=
 =?utf-8?B?azZ6d21wL2p4Nmd1RVBseEt3YUhaeEk5NzNJYlNENko1VGtQVnlxRXEyVnl4?=
 =?utf-8?B?eVFIaVpyK2RrWFNoS1N4dUl6RDluMkVmb0crd1g0amZxTGxoVk5KRzh3U1h5?=
 =?utf-8?B?RnVZeTl1Q2NnM08ydWxsRTJCSlQzNXdIYkdYemVGQjVWaC9VMjgrTU9kaTVH?=
 =?utf-8?B?ZFZpVUo4MTlqWmQ4cml6V3N2NllsRU9hL3Awbnl3MFB6dGJ2L1ZXN0JnM1d5?=
 =?utf-8?B?QXRPakppaE1LN2t5cEZRVzhyam55QlRmQ0txaDQyWmd0Mi9NUjFON2hqYXVU?=
 =?utf-8?B?TGtZS2U3KzUzdkJmOG44U1I2eWVmN2FDaUdHaVU5QlptSjFFWklLaFN5dk01?=
 =?utf-8?B?UWtTV0FzZTV1MzRyWGF3US8zRExzUk1ONGU5RG9mOE80U2wyK2xHeU01aWxM?=
 =?utf-8?B?Q1JCTkE2K0JiRXYvbWF6a05TTlY2SlkxUVdnMG96OC82UndNVExDQzl4dGds?=
 =?utf-8?B?bHZSUHRMQVVCMThRcnRVZTMweG5tOXhyZktGOTBCWmxlTUowcUhGOEQ5N1NF?=
 =?utf-8?B?clVLYThIRVArbWdIQTJYMys0czJmajAwTC9SSTh1Z0QzRit3V296RWNvc0Ux?=
 =?utf-8?Q?yb+ZQtcYa/rCNK89oYNnIJI=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <1B1928650701914CA4CAE5EAEC47574A@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10819
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF00009527.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	5c167b97-64e9-4ea1-8858-08de67dfc61f
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|82310400026|36860700013|14060799003|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VGZuVWNiZ2VkVEVYQ3dJeHZjNVVwVU03OU85aUUvUnBNT0lpcUhGaElIWWV2?=
 =?utf-8?B?T1JSd3RaYXRSK1hubk5PWG1xYVppcHRud2M1UmpOQkxZRHdOU1crYmloTFNp?=
 =?utf-8?B?eXB5dUdSV0VrMGN4MWZqR0hVbW1hTkNYSTBBMitiVllFcTl6ZGlOeXZvME92?=
 =?utf-8?B?RnhoZ1ZjT1JpdWszK2ZYVDgrSXBxellwRnNqdGd3RDA5cVcwOGpyZFM0eHg5?=
 =?utf-8?B?WmdCdTJDWEpOOHlQVUtTWUd1cXE5Wmo5ZzBzelQrdjgvK3VWQnZZQWhtaUZJ?=
 =?utf-8?B?cG50UDhyMnRDUmRLeXdPM2lBMnJNTTZWMkp0d29HRFZyelBLZFA3YkJubjFi?=
 =?utf-8?B?eXBHNWMvOEQ4SG9qUTJPb2FpdkVRWjJ5eWtFRU9SM1lKVjQyWCtaRTlYejRE?=
 =?utf-8?B?NXRyOTI4TUZwbWRMdzdHM29NM25LU3FMS2cwa241SXdHZlVCQS9TbG1USlJk?=
 =?utf-8?B?eDhtOEJtQktwbW1EMmR2UHB2alR3RTRmeWwwMzZsYWhLODIxd3hYQklzUEZS?=
 =?utf-8?B?K3F5U0hVdkhKWUsxMlhHUldyVnVBTkJ0eU9SMVJQNzM1ZDdiMG9FaFZSd1h2?=
 =?utf-8?B?UjVZY3BnS09BbUhJVDZxV3VrdDgweFB3UG9HMzJudjlBV3E5N3V4SkhteVYv?=
 =?utf-8?B?bWtHY3Njb1Z0a0lweERzU0lIY1BpRy9qT0NWVDNObDFVYmVQeUFpVTNZZndX?=
 =?utf-8?B?WjZmSEVadDJsS0M4ZW1xbVcyWXBLa1pCcmtLQjVlVHg5VlloY3dwNyt6c0t4?=
 =?utf-8?B?WEY1d1NqVzZzRGJnN1oxZUJlRXBGOHRidFR2VzcwTW9xQWJsY0U4MUwvajdt?=
 =?utf-8?B?NUljOUUxSmNtSXBCN25tRGhVMXVMV242cmxPaTk0ZExYSmlnT1g0a1ZTNFhT?=
 =?utf-8?B?emQ5bzRIUm9la0JPRUREcUhKaTZrdU42cWZSSnJHN1daSUNZYnBtRDcrQzhR?=
 =?utf-8?B?d3NCUjJKQ0RKY1dQRWc2QmprSVh3NGZpeGtmM3cxZWV6YnJvWDNlR24xYlJL?=
 =?utf-8?B?dWJrczRIRXpHU1pYWmJiMm1FWXlwYUkwRDRHdEYzbEJUOGNNdk5LcWZhUmJS?=
 =?utf-8?B?SnhEcEtKdVJHOFVhUmpJeVNnL0p5dmpPOWlwZzRJRFlJOFBKUGlNYlIzTUVu?=
 =?utf-8?B?S3BqSU9iVEc2TmZpYWw1VHpCdkZzbUlOSXE5eTVOR1d2MlkvNWNQNU1COUJn?=
 =?utf-8?B?TnpGclBjKzBKbEtXSk5vWEhJbnhYQXlaTDN4VmNRUDJjSDZlZjBGN05PMVVE?=
 =?utf-8?B?VWQ5NUN2b1diM2tCU2U0dFV0ZDkvVVBRWnNhNDd4MFoxK1grYlhUc21PZ2Vx?=
 =?utf-8?B?NkVLYUx6U2duQWR1bmRwL2EvQ0FSRkRmZXVDVzIwMTRQeUtnSm9MTlhQaS82?=
 =?utf-8?B?Qi82b2kwcDcyWjVnK1pYZTZzMXFvUnJQRDZ5TDlWdmdNdUtJWWR2YWRxekF5?=
 =?utf-8?B?WWhlcXFTVEEyOVNCODdwSmduUTE1bWxoa1hwaDNKNDE1YWNqSlIzdjBQbXp5?=
 =?utf-8?B?TGl6N0lwWndZUG9CSmtXSitYRFp2YjB5dzh1SmF4dGdkODFPV003Qis0NThq?=
 =?utf-8?B?T0tCenlpcUhWYUZvQ1c1azFvdzlEbEQwNmJSRlhwdjZQbHoyS3NGSDZJR00y?=
 =?utf-8?B?N0NrQmR3WDNsWW10eWJkaFpJaWRDZUJQTG0xanRnWDRvck9rV0NNdGdjaUhu?=
 =?utf-8?B?V3pIVlpnSG41Vm5kcDJBaC81N0hhQlFlUm1Kd1piM3JkOStmTzBQaWdFakhZ?=
 =?utf-8?B?eVhpUVBkcDh4T1hGNUZwMjhLTURWek9tR1REMi9hNWtJR3FjNnNDUmxmc0o4?=
 =?utf-8?B?cFZqYkhxOU0vMUhMaDhPRHJUVnA2dmtaTVFPaDRhV3pEYys2QW5JRFNVSDd4?=
 =?utf-8?B?VmNsN1NDM1BhUWZaQjE0Y1VPdzdmTng3UUtmUEw0MCtQNUpPV3E0bWdKWTNT?=
 =?utf-8?B?UHVOMS9ONXdXaUEveXlTd3hoeVBCSW9tb2pOd0FDQ2tSSXFwc08zV21uVTFr?=
 =?utf-8?B?N3NEZjRMc3NsdXZ2WFdnVnZwekZyTUNaak5tdks1YWw0S3dkelErSmhRQUJ2?=
 =?utf-8?B?MWQ4dTlCYjdCTVJmaFE0bEdYaDNQaEw3S05mZ2Nvd3BoOWpwUjB0bEVIOHVa?=
 =?utf-8?B?Q3ZvSDdJVTAvK3NJZ1Z4NHR2VVR1Zlg4cm13VDJ2ZHdhU3djQTBEZGpkTm1M?=
 =?utf-8?B?UTBaSGd4SVFvbkFZdnR5Y1VDYitXa053NEdsNkxzc3QwNUU2VnAza042RE9Q?=
 =?utf-8?B?TE5ObGprdEVGYmdaMEJoelhIUVl3PT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(35042699022)(82310400026)(36860700013)(14060799003)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	hcfcTupijiCZmjb24gXJa42bA29uQxmDgKlwdXCFNyu5cBCiBqCiiYeTSdoz3p3rAgWPu568UQKvXAuPmJT+tYr32+9nrtdrP2FoBJMLPBQNjdq01LXmvz96oqVY7HtipGlajUVM9Gl1qbdf5UTfIaOEA6vJEpAlP4Mq36xS+ewMqS8DhVAShxOaY9OfSjzAk3S4pcClSwuvTeSO0nkc+mW1jz5dhIdn4uSICruGymowZcHqoXsRbSNwMCoEnmiqUi/cRFoZUywz5L4uVA8CProiIlZuFT3QgM0ZaRYMYMHFtBPlGL8rZ+FqVhFhnSjyNCot+XQQN0J6vLpIlsTC1NiQlTRd8mWxgpWmJZZvLbzJMlN+SfAwLtKsFNI4etaTwMSZ5ZymTHODZc9i2e+VmS8c7wMKYjLxNAnPrmRl3uVf3oUBliOL/HqV7A3zK21F
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 13:34:15.6426
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0c9f0bec-7a64-4ec3-0ad9-08de67dfeb5f
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:
	DU6PEPF00009527.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5493

SGkgUm9nZXINCg0KPiBPbiA5IEZlYiAyMDI2LCBhdCAxNDoyNiwgUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOg0KPiANCj4gT24gTW9uLCBGZWIgMDksIDIwMjYg
YXQgMTE6NDY6NDRBTSArMDEwMCwgQmVydHJhbmQgTWFycXVpcyB3cm90ZToNCj4+IFhlbiBkb2Vz
IG5vdCBwcm92aWRlIGEgRGFyd2luIGJ1aWxkIGNvbmZpZ3VyYXRpb24gdXNlYWJsZSBvbiBNYWMg
T1MuDQo+PiBJdCBpcyBwb3NzaWJsZSB0byBidWlsZCBYZW4gSHlwZXJ2aXNvciAodG9vbHMgYXJl
IG5vdCBzdXBwb3J0ZWQpIHdpdGggYQ0KPj4gdG9vbGNoYWluIGFibGUgdG8gcHJvZHVjZSBFTEYg
YmluYXJpZXMgKEdDQyBvciBvdGhlcnMpLg0KPj4gDQo+PiBBZGQgY29uZmlnL0Rhcndpbi5tayB0
byBpbmNsdWRlIFN0ZEdOVS5tayBhbmQgZm9yY2UNCj4+IFhFTl9DT01QSUxFX0FSQ0g9dW5rbm93
biwgZW5zdXJpbmcgRGFyd2luIGJ1aWxkcyBhbHdheXMgZm9sbG93DQo+PiB0aGUgY3Jvc3MtY29t
cGlsZSBwYXRoIHNvIGNvbXBpbGluZyBvbiBNYWMgT1MgaXMgYWx3YXlzIGhhbmRsZWQgYXMgYQ0K
Pj4gY3Jvc3MgY29tcGlsYXRpb24gY2FzZS4NCj4+IA0KPj4gT25seSBjb21waWxpbmcgdGhlIGh5
cGVydmlzb3IgaGFzIGJlZW4gdGVzdGVkICENCj4+IA0KPj4gQW4gZXhhbXBsZSBvZiBob3cgdG8g
YnVpbGQgdGhlIGh5cGVydmlzb3IgZm9yIGFybTY0IG9uIE1hYyBPUw0KPj4gKHRvb2xzIGNhbm5v
dCBiZSBidWlsZCBmb3Igbm93KSB1c2luZyBhIGNvbXBpbGVyIGZyb20gYnJldzoNCj4+IC0gYnJl
dyBpbnN0YWxsIGFhcmNoNjQtZWxmLWdjYyBhYXJjaDY0LWVsZi1iaW51dGlscw0KPj4gLSBtYWtl
IFhFTl9UQVJHRVRfQVJDSD1hcm02NCBDUk9TU19DT01QSUxFPWFhcmNoNjQtZWxmLSBIT1NUQ0M9
Y2xhbmcNCj4gDQo+IFRoaXMgbmVlZHMgJ3hlbicgdGFyZ2V0IHBhc3NlZC4NCg0KV2l0aG91dCBh
bnkgdGFyZ2V0LCB4ZW4gaXMgYnVpbHQgYnkgZGVmYXVsdCBzbyBpIGtlcHQgdGhlIHNpbXBsZXN0
IHBvc3NpYmxlIGNvbW1hbmQNCkJ1dCBJIGFtIG9rIHdpdGggYWRkaW5nIHhlbg0KDQo+IA0KPj4g
DQo+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFy
bS5jb20+DQo+IA0KPiBBY2tlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp
eC5jb20+DQoNClRoYW5rcw0KDQpCZXJ0cmFuZA0KDQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQo=


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:39:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:39:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225382.1531868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRUE-0004yL-9Y; Mon, 09 Feb 2026 13:39:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225382.1531868; Mon, 09 Feb 2026 13:39: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 1vpRUE-0004yE-6p; Mon, 09 Feb 2026 13:39:34 +0000
Received: by outflank-mailman (input) for mailman id 1225382;
 Mon, 09 Feb 2026 13:39: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpRUD-0004y8-BM
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:39:33 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c3221905-05bc-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 14:39:32 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5166.namprd03.prod.outlook.com (2603:10b6:208:1ed::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 9 Feb
 2026 13:39:28 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 13:39:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3221905-05bc-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n+aG9xM1tO5e+AQr8bRj60wKmCsOUTdki25la4sVSyVXQWF2vKxl3RcMVFy/IfDOKuGGu8kmubidRH1rTwq/pLriSFqyRokTi37lSUDxS2rx8bTH9FFje7GOnPjpz+IDZk0DEePLL25B0ShXugQr7xD+lCIZziv8QPctSHYfsY14CDmUoYTAa8WmmX4AgQ8byxk1aWn0X6mxCGrRhxuTuWbN7McDKk/Xu+Sub4Z6EV9ZFbvtL0xaZvNe/YkDG1j08b4hfQ81vudbiWPVbxGXg0IXNa5iYsWNk81zJdv3Zx6Zp+k8oGpXJu7tUa67Kr114A6VYy6eJ+IlLmfd87Oviw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A5AMvFr1EqwhGFO2Q3L3XMLGUp4ZVOd78Cp91Mo5skc=;
 b=s1ixJOjpYdEsGg9+fzuKdcnpVaoCiFp3k75VuKXeJR+33IiRh+zshrjR8eMKwvTlBUpu2UoOL1CqWr+pRry9Njy84kbIGqDRPrYqD0ZM6j9aq/h7Ab96I92ufzxjZjqgN6rxmUkgMth7AqDfG3gkbPifViw6lCR5gNEZ8QVU63raV377s55TyBFm8raiFoQ0sTWjsX0Hw8OJeldi0bl5J45CU7u2JVALPj+hiN9b3R5VXzXbsTDKcpA6mJ3MlktOkWBHGMLDICbhpocCkOJwIBCwTHxU+BZVkHEQhyDZSnrQnFZdVFt8Vm3l3Ld6t/0rlfUuDO9Bh8PN0711acd+yw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=A5AMvFr1EqwhGFO2Q3L3XMLGUp4ZVOd78Cp91Mo5skc=;
 b=s+9v9PRVrRn//OAX9/lwQKCkMjX27WnchjK/NGq7WTdg3atpir1jzEwSsRe/QIyhlYHkS61cSH3EijhV3tTPGaigm9HNDBQHiCywze9RPmy2TKQYmx35uciEKnOffex4ALQMAdcGmYwtIXNKC+w5B5GMc4n5O6c6Gxdwh5RDWb0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 14:39:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.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>
Subject: Re: [PATCH v5] xen: Add Darwin.mk
Message-ID: <aYnjjHlbaYjr2VqV@Mac.lan>
References: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <aYngg_ym18d0G-fX@Mac.lan>
 <28A169D0-4454-4D60-B811-72FE377A4318@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <28A169D0-4454-4D60-B811-72FE377A4318@arm.com>
X-ClientProxiedBy: MR1P264CA0035.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::22) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MN2PR03MB5166:EE_
X-MS-Office365-Filtering-Correlation-Id: 877a4437-3b5a-484e-db81-08de67e0a586
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?OEh5N2Z4VEVHYWVORkhLOGNBOTFRVjR2b1Z1T0p6ZmIzVTNFSjJzWGtIcU9k?=
 =?utf-8?B?U3pwWkZFUEE0SFAyMkppenB5VEhGTndrejZOUE1hRktJenUrdi8zUXFuYUhq?=
 =?utf-8?B?MllUcjNGSjBRUlVobExUdlZDUVFnZU44QkVuZDkvQWVIMk40c2pHRTExVDBp?=
 =?utf-8?B?cDFHQWtqN0lXUHlHUTJwVHZoY2w4ckYvWSs5ZzFveWhXWWlwT0NVM1NVQTdv?=
 =?utf-8?B?TlREd3BjcCsrSURZMHZyUUpMWTdhOXZFb2N6QU9SNGY4Y1R3RVYyQkFPUWJX?=
 =?utf-8?B?ZEJycGpvQnRuVHVlZFQ3NnBrYlhNbkRzSXIzWFAyQ2hjQ2JlZ2djclpoWVVF?=
 =?utf-8?B?L01IcGpwd0R5enQ0S201NU1NQTVLanBnYTVQby9WeFlKYlBMdlBvckdESHRi?=
 =?utf-8?B?bFpJRUpyclVNNVA2c0RZc3hkMUZEazFSQyswZ0ZRMUdUNFY5NDBSNFViQldO?=
 =?utf-8?B?c1FOQkc3SlIyUy9tNEoyQjNaTGJNcjAwZjJSYy8yTFB4Vm1vZHBDSEpOT0VW?=
 =?utf-8?B?KzgwcU1EOE5md1dLb2crbjJnSVpPdzR1ZkxjN0w1WkpVNmM3cis2M3pzNmNy?=
 =?utf-8?B?K0lza29DamdrNE1nd0NXaW4yenRnVFdSUGJPMm1YVUZiaE5rQzNHbjRLWkdj?=
 =?utf-8?B?b1dkT2Q0Y3JjdnFpcnIyaE15bVFVK3RsYU5VeFQvVGNGL1lORjVsbEc5bGdk?=
 =?utf-8?B?czlQczNSa3RXSEd1WFJWaGhlNW1OdytJZTRsRFl1SzVoV08xTExVbkhmSW8r?=
 =?utf-8?B?ZXY4Ukd3UEo2UHZzUk1Ham1KbUlhUGRiMHlETDg3VW9QZUdJSG81a1ZDWUFn?=
 =?utf-8?B?QXFVcXBJRXl5UVlvMjU0YmlYQVZhU0VCR0VFbmcvTEZqbDlLd1FUZ0N3aWlL?=
 =?utf-8?B?ZzIwSXVaZHJES3A1bzNpdUxkRFFZQWJ6L3grdGpJbmNGenRYbWhjaHZiSUNk?=
 =?utf-8?B?cTdtYUtZNjJJL05IQkxTUGNpZ1J5bkR2VndJWTJDdEc1UWVjak85SkxFV2dj?=
 =?utf-8?B?c3JWbVp2YWY0NnZ3R09Od1NrUHhmekg0akx3NCtFSDNKS2hVWHdYTlNnMGVq?=
 =?utf-8?B?SWV2L1FCMDJ4VmJBUzJ2SWpkTjV2Z0g1SzkxQ2grOXRTb1p5dDRLbEpLQS9j?=
 =?utf-8?B?Z2FEUUY0UXV0Q2FpakJHUlZaaVRPaHRVM1VCMHpBd2sxemxSaENqWEtRbHgr?=
 =?utf-8?B?Yko5M0thazB6SnpsRkZxQ1BvejYvMStWaHZMN2dPeXAzdytFU2Y5VWcwRWlQ?=
 =?utf-8?B?ell4Z1RGcjNWNzlaRC9pMk5qWm5qdzVRZGN3UmFYQ0MxT1pZSmlaUWExc0xZ?=
 =?utf-8?B?bUp0NWhtOEo0bXRDYVl0anV5UVdzTUhKWUxKbzNBdHMrZWVkQjd1cjZrRWRF?=
 =?utf-8?B?Rm1MeHF5YTNER0s5Qi90OUdNclZZc0hJOTlNcUhpekpXQytWUDcyYmsrcTFa?=
 =?utf-8?B?RTZORmszL0pGN2ZUeHdXS0QyQnVqZFZKSzlFaXNoMUZTU3NOa1dic1BJL3dT?=
 =?utf-8?B?TERUcUhLQnRpNlhPandyVHlYZVpjTDJPdjVyVzFrMUlySVpsZzJWYXZOTCtB?=
 =?utf-8?B?QVJQc0tpc01jUzRmUFZkZWIvTUNrdWlLN1A3alYxaHpubnB6RWlaakpOTmY4?=
 =?utf-8?B?WkxjT2V6TC9HaVR5dm5QaDFYVWFGMENWazJnbmFpVXpPSnowQVlOdFJaR25E?=
 =?utf-8?B?QnNWaEhCMVRCem11cXhzTHFrVGlHRkxqcjRjcGR1citGKzZQeFYwVWFnTVpD?=
 =?utf-8?B?T21pck5HTTgyS2dhdGJmTnR3RXhSSTJmL3NSV3R2OEgyOXlxdCtBYXJRQXI0?=
 =?utf-8?B?UzQyZzV6ZWVOd3QzMDhZRjNGQmdwMS9IZ2E5cUp1RHcyWmtZaHRQYUFKZmtM?=
 =?utf-8?B?VnN0SlA3eHNNRTN1bG1mTVA5aEpMbWFweUdIV0tzcW8zMU1DNzZQQjZCUUxD?=
 =?utf-8?B?UnlqSUJwcm0rVldVeFMvMDNta0dUNWtkbmg0cnRlbC82V3FTMHVyMXNHQXRF?=
 =?utf-8?B?aW1zNDdWWjY2STF0UXNTSStuTVlhZ1lNU2NFYklxMGJ5M0U5YWlKWUtqNTFP?=
 =?utf-8?B?QjBkbXpoMDJGQUxGMjFYcDY2MGxoUDhxSDJpNElQWmgzR2FOUEx5Q3NleUN1?=
 =?utf-8?Q?5Zl8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VFhQMmlkU0FYZS9mRWd0WjNGSFpqMXlMb1lQbFN6ODRZeUd0YzgyZnQxb0dY?=
 =?utf-8?B?NkhKUmRpdWRtN2F2d0w2Ly8xZFF4UVVNVzc2SWNRK3ZsV0dqQ055TFZPOElL?=
 =?utf-8?B?YlJCbnpSQWxsSVYxbW05anUxS3o1TmtpdzNUUkhNR3dpU01MT1NQVVFVZ2pn?=
 =?utf-8?B?Yk1pd3l5VlNiNlBTc3Fwa0EvMXJIY3V6Zkk3UFlkNWhkaUpKVzRiRTVhK2lY?=
 =?utf-8?B?aDBzMHVHUE9xdGxMVWU0aHlqdE8wL0xvT3A1Ky9IVjM5eS93RldtSUxVVEZS?=
 =?utf-8?B?V3FMRnJ3RXE2MTRMSXBjZGJIM2llK1FucEdEd1VHSEVYK0RVMEl1NXVoL1hq?=
 =?utf-8?B?U2xxemhwVGhlV3dEeFZxc3JDUUE1dTY0WEwvcFhyMzJCSGprQXJJV2ZkQTRK?=
 =?utf-8?B?OHZrVVhUZnNyNXd6Qk9CNmpic2RUaWF1bVY5Mlg2TGdKQ0ZIVUFDZGJtclJG?=
 =?utf-8?B?enl5V1pCc3pnSjFlaGJ4N0s1akduT1JtK1VhSmxSdkQyZTlBVmJkK1E2S1By?=
 =?utf-8?B?OS9DV3FtZkNaaUZzYVJhb0FUUkNTd0lEd0M4WGUyR201U05LTG5zVzZ2VDhS?=
 =?utf-8?B?cE00eHhCYzJEU084US9OR2RvSG9sbkE1S1dPVEdpZFZSQlFTaGZlQXhHMlkz?=
 =?utf-8?B?T01qekRiVVZ4QVBhQUJMRS9saVkwR2JxSkU2SGsvejY2bGs0alhnK3BaS0Jh?=
 =?utf-8?B?cm5XbE82TCswT2hNS3hTeTlnMlNMUGpPSXBvWUxYSS9COUpwZDZuSkpWTGs5?=
 =?utf-8?B?QnVKUjYybnR1RTc3ZG9jQkhTQW5oNmt2cHdwd3VmT0Y2VkcvOXlKRHFRd3Ex?=
 =?utf-8?B?emg2VFEzWlFxVlFDTnBTK25QVE5iSDloaGhGekxSbEtkcFM3aGlhOFlFL0Ra?=
 =?utf-8?B?dHZOdnlTWkNqQm9SRUQyVGZkWitMK2sydHlLWGg4L0FZREcweEcySVRFM3gx?=
 =?utf-8?B?VHJGRFRpYjEwZEtJL0xKTUluVm1IV2dKNWJDVnNkVHdWUGo5TXc2cE8xSmVG?=
 =?utf-8?B?Z0llbWNJNG52KzNEQnZLZG5INmtiYzVqZmhkWVZacTNYQ2xCQVhVRjRzWHBP?=
 =?utf-8?B?QTZJRUFBUEhDSDZ1cGxId05PMzdCYTg0ZzF4T09NLzFDSGRWTnMxN0dWODlN?=
 =?utf-8?B?VURPSFdGRmZLU0s0ZE9pUWpzNkNick5DdWRFOXREMVpQYmRqOUFUeUo5azY4?=
 =?utf-8?B?d3FuUDZiOWJoS1lvUlplN29TZVJFbDFsZUp1NExNcTRud05uUTR6THR0V0pk?=
 =?utf-8?B?S1IvSit2ajdKMEZsL1NzZGhzU2NkTjZpNVV6ak95cmdGUDMxOUNGb2VnSlA1?=
 =?utf-8?B?enRlS210YmdaZHpsS0xXRFZDcTdCY0U0SVA0bGpQL3k5R3h3dVRuK2hyREtS?=
 =?utf-8?B?bXlrZGwweGxzTVJRNXZSWGx0Y3lDbFMwSHlrQ1k4TWRZanpVazB2WVVHck9k?=
 =?utf-8?B?RE1vdTd2dDM5Y2lCWFNCZmE3c0xhYVA0c3RXVTBZeW1rMW9SdzRnMnVxblpm?=
 =?utf-8?B?S3NwTnBHOWFWSndISW9wd2dpMU1GbHloUE5sWm0xZUtvZmY5RU90dHp1aWt0?=
 =?utf-8?B?Tk91WWo0RGxNdzFHL1NRNWZuV2FYZjc3ZFhOTTFDb3Arc3ZoUjFEOXBMVUlv?=
 =?utf-8?B?bTB2SG5uV2xEMUd2d3owQjhYdkUrZnR6aC9VWUxobFQwWDU3TTg4UldKeStD?=
 =?utf-8?B?aXZpbUlOUEZoRjY1VnB3dzNxMXNIMDNmQnhWdWV2Y0ZKb2xqZUdlOFJRWmgw?=
 =?utf-8?B?QVZUU3lGT3h5dHp1RFUwZnV2bXhEWUhSWm9ZMDBUdGdBUVlOOEhFVWtjdDdP?=
 =?utf-8?B?U2UrcW1tVjJXcThYSEd6M1loS1N2azVoSnlxSkVJRHlaaU9OMW1QbTNTNVhE?=
 =?utf-8?B?ZEtzQi9oWmZHeGVjWlFrWkVWZWhTZDcvU2hsRkJVMXJ4Mi91K05Ld1FlS3Q2?=
 =?utf-8?B?OWU2bXJHQXR3eE8yRnJzaDFCdkNlSVBISTRyYS9DTkR2QzZKakM4c0JwK0hh?=
 =?utf-8?B?Mm9MTEllTVFiR1ZhZklFNEwwemVVaUt6UkV5MUdDQUVXWlpDVDJ1TUM0eHlP?=
 =?utf-8?B?VW1ZL3RSZ2dXSHdJY3FJTlZ2QVFldmxYYitiQWZZSFpBSmZIbXJjMlVlTXVj?=
 =?utf-8?B?d0V5ekU2VUpEVXJSeXI4V1B6TUJMUVFDQ2xQQmc3RlUwMkhlZVFLaHpVODN2?=
 =?utf-8?B?Q1ExMjU4TEtpSHgzUUo1bWk5VnBuQThEdHJpT1FYS3pHYVpzZXFGWE5LNXRj?=
 =?utf-8?B?NUx4YlpNMXIwSHFQRHdsTzE2RDVKbllGcTdRK01ZaWs0VFk0bjA2bDJ2OEVu?=
 =?utf-8?B?bG5xQ1ZyREZTa0lUcSttc1VENnYveWQwVjVYWkJQeHBhem9ISmNoQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 877a4437-3b5a-484e-db81-08de67e0a586
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 13:39:28.3678
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mu4E5j1Z4DFAa2QLquD1UKK+dP4XE9uDYfoqKzSs9QW/giLGiXiS237Izko74Und3as9vcC/cxKqabP23jK3Dw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5166

On Mon, Feb 09, 2026 at 01:33:13PM +0000, Bertrand Marquis wrote:
> Hi Roger
> 
> > On 9 Feb 2026, at 14:26, Roger Pau Monné <roger.pau@citrix.com> wrote:
> > 
> > On Mon, Feb 09, 2026 at 11:46:44AM +0100, Bertrand Marquis wrote:
> >> Xen does not provide a Darwin build configuration useable on Mac OS.
> >> It is possible to build Xen Hypervisor (tools are not supported) with a
> >> toolchain able to produce ELF binaries (GCC or others).
> >> 
> >> Add config/Darwin.mk to include StdGNU.mk and force
> >> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
> >> the cross-compile path so compiling on Mac OS is always handled as a
> >> cross compilation case.
> >> 
> >> Only compiling the hypervisor has been tested !
> >> 
> >> An example of how to build the hypervisor for arm64 on Mac OS
> >> (tools cannot be build for now) using a compiler from brew:
> >> - brew install aarch64-elf-gcc aarch64-elf-binutils
> >> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
> > 
> > This needs 'xen' target passed.
> 
> Without any target, xen is built by default so i kept the simplest possible command
> But I am ok with adding xen

With the `cd xen` omitted, won't that also attempt to build the tools
then?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:40:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:40:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225389.1531877 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRV7-0006PP-IJ; Mon, 09 Feb 2026 13:40:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225389.1531877; Mon, 09 Feb 2026 13:40: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 1vpRV7-0006PI-Ff; Mon, 09 Feb 2026 13:40:29 +0000
Received: by outflank-mailman (input) for mailman id 1225389;
 Mon, 09 Feb 2026 13:40: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=5cm8=AN=bounce.vates.tech=bounce-md_30504962.6989e3c8.v1-67754961e148408b9a870d67effcb503@srs-se1.protection.inumbo.net>)
 id 1vpRV5-0006P2-T9
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:40:27 +0000
Received: from mail177-22.suw61.mandrillapp.com
 (mail177-22.suw61.mandrillapp.com [198.2.177.22])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e3998e7a-05bc-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 14:40:26 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-22.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4f8m6J5wcZzGlsp2q
 for <xen-devel@lists.xenproject.org>; Mon,  9 Feb 2026 13:40:24 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 67754961e148408b9a870d67effcb503; Mon, 09 Feb 2026 13: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: e3998e7a-05bc-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770644424; x=1770914424;
	bh=E+Nh1SkPaXDN/5wTRsrC5L53Z2u3HS0QQ13Rh8scEGI=;
	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=i8iZpYn5RezKnFDM5OwNvgrNkWOjclQs/DHDv0t7TJFSLoRsDebMWwgwVvX4QkxW0
	 jKGs3j8Py8Js3+7sNRAzbPYpskWnpPYhEEerI1u+wjmB+xNGkuBk4R9+aQR1eJU7Sq
	 jG616jc2UiWolF2XWw3tZQmab3mq2v2wCiDYA2re7r8UsJ5C0hCMsrjuHOtAGErTQf
	 +5Uds1I0J4Ptp2i5cTcOZtCCkfSGB/2YaWGTznnywlDLUnqsP30tecNtGL7LDXcR6B
	 NYXt6qwzLlZKXVR9pwu1lxOh8YCxjlhKJd6JVZfaD3xQa5g1e1YWIepUqMNbelzxAp
	 gXqdDExjvzNrA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770644424; x=1770904924; i=teddy.astie@vates.tech;
	bh=E+Nh1SkPaXDN/5wTRsrC5L53Z2u3HS0QQ13Rh8scEGI=;
	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=cFP/Iy9IvgmE97nyxeS64QbdUGGo0DEq9qbVN1rdNnO5uctzp7wHlRerYEV+YS7NN
	 F6XOE0TQKxcO+vA2VGK7R7iPZTajfqvbrjmhpCgWbE9aW1/OEtpI5ZCYtlVIPNZN8X
	 XzBdK01eswIuhQmdkUAuHIXdeYJXbkm6XFqXf6dFvs7Y+kOWw72q4Lm43Y9DbgpHrK
	 dxUi7zrxWbnzPm6QCwtvHsILscvWnzavuCO7J6U2h+uig5MoL5wbJEfLUsyYj3lB+I
	 1Q9LLAhEdAcqCx5J8/hUMkV8HfdXhRlWFxUaKmloy6EuR2brchaqb48eAqOBhLm0tD
	 yZhC3u09djklA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/hvm:=20Advertise=20and=20support=20extended=20destination=20IDs=20for=20MSI/IO-APIC?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770644423667
Message-Id: <87be26c1-52fe-438f-8aad-1d5ea0f0a325@vates.tech>
To: "Julian Vetter" <julian.vetter@vates.tech>, 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>
References: <20260209113412.2603088-1-julian.vetter@vates.tech>
In-Reply-To: <20260209113412.2603088-1-julian.vetter@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.67754961e148408b9a870d67effcb503?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260209:md
Date: Mon, 09 Feb 2026 13:40:24 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello,

Some comments, mostly code style, nothing functionnal.

Le 09/02/2026 =C3=A0 12:36, Julian Vetter a =C3=A9crit=C2=A0:
> x2APIC guests with more than 128 vCPUs have APIC IDs above 255, but MSI
> addresses and IO-APIC RTEs only provide an 8-bit destination field.
> Without extended destination ID support, Linux limits the maximum usable
> APIC ID to 255, refusing to bring up vCPUs beyond that limit. So,
> advertise XEN_HVM_CPUID_EXT_DEST_ID in the HVM hypervisor CPUID leaf,
> signalling that guests may use MSI address bits 11:5 and IO-APIC RTE
> bits 55:49 as additional high destination ID bits. This expands the
> destination ID from 8 to 15 bits.
> 
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
> ---
>   xen/arch/x86/cpuid.c                   |  9 +++++++++
>   xen/arch/x86/hvm/irq.c                 | 11 ++++++++++-
>   xen/arch/x86/hvm/vioapic.c             |  2 +-
>   xen/arch/x86/hvm/vmsi.c                |  4 ++--
>   xen/arch/x86/include/asm/hvm/hvm.h     |  4 ++--
>   xen/arch/x86/include/asm/hvm/vioapic.h | 13 +++++++++++++
>   xen/arch/x86/include/asm/msi.h         |  3 +++
>   7 files changed, 40 insertions(+), 6 deletions(-)
> 
> diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
> index d85be20d86..fb17c71d74 100644
> --- a/xen/arch/x86/cpuid.c
> +++ b/xen/arch/x86/cpuid.c
> @@ -148,6 +148,15 @@ static void cpuid_hypervisor_leaves(const struct vcp=
u *v, uint32_t leaf,
>           res->a |=3D XEN_HVM_CPUID_DOMID_PRESENT;
>           res->c =3D d->domain_id;
>   
> +        /*
> +         * Advertise extended destination ID support. This allows guests=
 to use
> +         * bits 11:5 of the MSI address and bits 55:49 of the IO-APIC RT=
E for
> +         * additional destination ID bits, expanding the addressable API=
C ID
> +         * range from 8 to 15 bits. This is required for x2APIC guests w=
ith
> +         * APIC IDs > 255.
> +         */
> +        res->a |=3D XEN_HVM_CPUID_EXT_DEST_ID;
> +
>           /*
>            * Per-vCPU event channel upcalls are implemented and work
>            * correctly with PIRQs routed over event channels.
> diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
> index 5f64361113..2cc14d37d4 100644
> --- a/xen/arch/x86/hvm/irq.c
> +++ b/xen/arch/x86/hvm/irq.c
> @@ -374,7 +374,16 @@ int hvm_set_pci_link_route(struct domain *d, u8 link=
, u8 isa_irq)
>   int hvm_inject_msi(struct domain *d, uint64_t addr, uint32_t data)
>   {
>       uint32_t tmp =3D (uint32_t) addr;
> -    uint8_t  dest =3D (tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_=
SHIFT;
> +    /*
> +     * Standard MSI destination: address bits 19:12 (8 bits).
> +     * Extended MSI destination: address bits 11:5 (7 more bits).
> +     * When XEN_HVM_CPUID_EXT_DEST_ID is advertised, the guest may use
> +     * bits 11:5 for high destination ID bits, expanding to 15 bits tota=
l.

As we always advertise XEN_HVM_CPUID_EXT_DEST_ID, I would rather say

 > As XEN_HVM_CPUID_EXT_DEST_ID is advertised, ...

> +     * For legacy guests these bits are 0, so this is backwards-compatib=
le.

"Guests unaware of this feature set these bits to 0, ..."

> +     */
> +    uint32_t dest =3D
> +        (((tmp & MSI_ADDR_EXT_DEST_ID_MASK) >> MSI_ADDR_EXT_DEST_ID_SHIF=
T) << 8) |
> +        ((tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT);

I wonder if we should introduce a macro like you did for IO-APIC 
(VIOAPIC_RTE_DEST).

>       uint8_t  dest_mode =3D !!(tmp & MSI_ADDR_DESTMODE_MASK);
>       uint8_t  delivery_mode =3D (data & MSI_DATA_DELIVERY_MODE_MASK)
>           >> MSI_DATA_DELIVERY_MODE_SHIFT;
> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
> index 7c725f9e47..263b1bd5cb 100644
> --- a/xen/arch/x86/hvm/vioapic.c
> +++ b/xen/arch/x86/hvm/vioapic.c
> @@ -411,7 +411,7 @@ static void ioapic_inj_irq(
>   
>   static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int p=
in)
>   {
> -    uint16_t dest =3D vioapic->redirtbl[pin].fields.dest_id;
> +    uint32_t dest =3D VIOAPIC_RTE_DEST(vioapic->redirtbl[pin].bits);

I would rather introduce a new field in vioapic_redir_entry for the 
extended dest part; and compute dest from that and dest_id.

>       uint8_t dest_mode =3D vioapic->redirtbl[pin].fields.dest_mode;
>       uint8_t delivery_mode =3D vioapic->redirtbl[pin].fields.delivery_mo=
de;
>       uint8_t vector =3D vioapic->redirtbl[pin].fields.vector;
> diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
> index 27b1f089e2..dca191b4f1 100644
> --- a/xen/arch/x86/hvm/vmsi.c
> +++ b/xen/arch/x86/hvm/vmsi.c
> @@ -66,7 +66,7 @@ static void vmsi_inj_irq(
>   
>   int vmsi_deliver(
>       struct domain *d, int vector,
> -    uint8_t dest, uint8_t dest_mode,
> +    uint32_t dest, uint8_t dest_mode,
>       uint8_t delivery_mode, uint8_t trig_mode)
>   {
>       struct vlapic *target;
> @@ -125,7 +125,7 @@ void vmsi_deliver_pirq(struct domain *d, const struct=
 hvm_pirq_dpci *pirq_dpci)
>   }
>   
>   /* Return value, -1 : multi-dests, non-negative value: dest_vcpu_id */
> -int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t dest=
_mode)
> +int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t des=
t_mode)
>   {
>       int dest_vcpu_id =3D -1, w =3D 0;
>       struct vcpu *v;
> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/as=
m/hvm/hvm.h
> index 7d9774df59..11256d5e67 100644
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -295,11 +295,11 @@ uint64_t hvm_get_guest_time_fixed(const struct vcpu=
 *v, uint64_t at_tsc);
>   
>   int vmsi_deliver(
>       struct domain *d, int vector,
> -    uint8_t dest, uint8_t dest_mode,
> +    uint32_t dest, uint8_t dest_mode,
>       uint8_t delivery_mode, uint8_t trig_mode);
>   struct hvm_pirq_dpci;
>   void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pi=
rq_dpci);
> -int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t dest=
_mode);
> +int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t des=
t_mode);
>   
>   enum hvm_intblk
>   hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack);
> diff --git a/xen/arch/x86/include/asm/hvm/vioapic.h b/xen/arch/x86/includ=
e/asm/hvm/vioapic.h
> index 68af6dce79..b49eb348d5 100644
> --- a/xen/arch/x86/include/asm/hvm/vioapic.h
> +++ b/xen/arch/x86/include/asm/hvm/vioapic.h
> @@ -32,6 +32,19 @@
>   #define VIOAPIC_EDGE_TRIG  0
>   #define VIOAPIC_LEVEL_TRIG 1
>   
> +/*
> + * Extract the destination ID from a 64-bit IO-APIC RTE, including the
> + * extended bits (55:49) used when XEN_HVM_CPUID_EXT_DEST_ID is advertis=
ed.
> + */
> +#define IO_APIC_REDIR_DEST_SHIFT        56
> +#define IO_APIC_REDIR_DEST_MASK         0xffULL
> +#define IO_APIC_REDIR_EXT_DEST_SHIFT    49
> +#define IO_APIC_REDIR_EXT_DEST_MASK     0x7fULL
> +
> +#define VIOAPIC_RTE_DEST(rte) \
> +    ((((rte) >> IO_APIC_REDIR_DEST_SHIFT) & IO_APIC_REDIR_DEST_MASK) | \
> +     (((rte) >> IO_APIC_REDIR_EXT_DEST_SHIFT) & IO_APIC_REDIR_EXT_DEST_M=
ASK) << 8)
> +
>   #define VIOAPIC_DEFAULT_BASE_ADDRESS  0xfec00000U
>   #define VIOAPIC_MEM_LENGTH            0x100
>   
> diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/ms=
i.h
> index 00059d4a3a..b7a132e5b5 100644
> --- a/xen/arch/x86/include/asm/msi.h
> +++ b/xen/arch/x86/include/asm/msi.h
> @@ -54,6 +54,9 @@
>   #define=09 MSI_ADDR_DEST_ID_MASK=09=090x00ff000
>   #define  MSI_ADDR_DEST_ID(dest)=09=09(((dest) << MSI_ADDR_DEST_ID_SHIFT=
) & MSI_ADDR_DEST_ID_MASK)
>   
> +#define MSI_ADDR_EXT_DEST_ID_SHIFT=095
> +#define MSI_ADDR_EXT_DEST_ID_MASK=090x0000fe0
> +
>   /* MAX fixed pages reserved for mapping MSIX tables. */
>   #define FIX_MSIX_MAX_PAGES              512
>   



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Feb 09 13:43:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 13:43:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225400.1531887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRXw-00071P-5E; Mon, 09 Feb 2026 13:43:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225400.1531887; Mon, 09 Feb 2026 13:43: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 1vpRXw-00071I-2X; Mon, 09 Feb 2026 13:43:24 +0000
Received: by outflank-mailman (input) for mailman id 1225400;
 Mon, 09 Feb 2026 13:43: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpRXu-00071C-Tf
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 13:43:23 +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 4a9ff918-05bd-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 14:43:20 +0100 (CET)
Received: from AM0PR10CA0013.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:17c::23)
 by DU5PR08MB10516.eurprd08.prod.outlook.com (2603:10a6:10:528::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Mon, 9 Feb
 2026 13:43:11 +0000
Received: from AMS0EPF00000194.eurprd05.prod.outlook.com
 (2603:10a6:208:17c:cafe::ca) by AM0PR10CA0013.outlook.office365.com
 (2603:10a6:208:17c::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 13:43:11 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF00000194.mail.protection.outlook.com (10.167.16.214) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 13:43:10 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by GV2PR08MB11723.eurprd08.prod.outlook.com (2603:10a6:150:327::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 13:42:05 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 13: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>
X-Inumbo-ID: 4a9ff918-05bd-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=of7bS4nmz0xYfrKdb5EZZ4oNuL7wpkSSE9i8WP5ZB/oVzro2ZXjH3So6qmcRiVA8QHTUYDeU/aZzND4sDKgNoxnmNSetHCrvMLKDziOgI4ta2iMprBt+Sqct+3Px1WLqNRk/VAR3OkspHpZ5UDPnK/r+izDJ7POTUmyOSt/wXkV1wBvNmsjUn4JQ7Jx950a1l2+TYxIT/qoB36fdwtoDBE9ISU6+BTIeTXHjx6ZSvPDeSv+N3+vp5gAj+4n6NYnjYC0NE63VPljNwrOk2B1e/rKjnpbutFjCyG2KzKo2tZAsI5s/fn3/JvSJ+fjxhEM6baFMKsp81zSpYTIliimUcw==
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=+PPitlFRaP6lgCZ3/SzjstNFgsyt9LHNuxmswqteW/c=;
 b=GxU0Dyui9lv4Wmu9qAmy9ExDxX4SOJRmJBkhVOImYc3e4cvzgjfkYOQ9dtz4QIEnbmJ4Wz22m5DxpGJEEOkRNIIFPfoV9B9E7h4eNRPSK+eg8zEXoKIrMPx6Sk40B/VTb7mj52SB2GPJSEFPZrXdkRhcq8IUBOEiyQ4oaE++ptXe9WcsePF6GVvCb+KfWdi2/1BDX/PwU9VEvmRoqXu/l1xy7wEByh59Y+vqQ5U72EIZf5F+rHdME6E9I9gDSsMWY91SeQOucqCFVokgN/6mUjBAplol/DbwLTZ/q+ecDux/smvZ4AAunDryWaiiRkJK7dEmvGzi7HlKF4kD1h3XXw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+PPitlFRaP6lgCZ3/SzjstNFgsyt9LHNuxmswqteW/c=;
 b=b7LFRs+fmsGncGBuLVPnk/XKcED7XpZs0niTHLniRsXk1uUuACXRhDYJlVpPoBeA8ZecYMCov5wPzIlryVc5STSdngme9kUslzn4dO3oSAFoC6n5M1+1YMHDLqWRm3oCfZTwte+dCg10WMxwHoKprMs2l5yWJe1Ei/MWgEx+FTY=
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=zCAxX7OY1Kk61xNRcIx3M3jUy2ct36I0TsDVNYud40XXHxk29jXoGAwqKgZNfiQ7V64HORP/eYyAFn1Qki/2i2Qu0XF8n1DYKquHYEvovg55rP9Ohk8Kwm9ByhUXJWANeQnzw+gB+lb8ot2k8X18omyJZlSHCHaw8D2iqVJ7twr4b/ehXiEHaJZdLBrpOrddfZEDTc9g9Jer48SXB8oiQaQoyO7/+18iwI34uoEZubhhcwJ2+5DxOP9Xw4uHn+xeOgbrJRdIY5KdnLaZHKeZHL/6aMGAMPE9wkaXGHbM1HCZ4W20Fuv+ffVrEDm8AIHHRBpToR8eoENxVxgQv5jNhQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+PPitlFRaP6lgCZ3/SzjstNFgsyt9LHNuxmswqteW/c=;
 b=exqA1K723npB0k0vJmcQQ6h0KbakwYeQFabnINhjbx4OW8C7vjgifXUBZQ8DM0MEZ94MplMfvWRqQCK9kFVlVdDbHkjwI68jgzAm5uYMQyVgIebzOjv7U+b7vj2YN0utrJRoC9zFpgiFc5+ffvqmva+WaSyQ7SR/AkWL6+QXciiEFOwlkiArvc9TL2N9poFsyWi4YFwFs7/K8QWgwUF3DTUoCZEaxdaTnxNmjNg2FTkDRDXjmtG+185OeLrbGQJjFal03qFa+oKPQyGPgff8lGagMGIkmQqQnKyOJKUWny3Eu4uxAD2KUQrWBtmVcwg7I9d3CVbRAuOMPskeijLslg==
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=+PPitlFRaP6lgCZ3/SzjstNFgsyt9LHNuxmswqteW/c=;
 b=b7LFRs+fmsGncGBuLVPnk/XKcED7XpZs0niTHLniRsXk1uUuACXRhDYJlVpPoBeA8ZecYMCov5wPzIlryVc5STSdngme9kUslzn4dO3oSAFoC6n5M1+1YMHDLqWRm3oCfZTwte+dCg10WMxwHoKprMs2l5yWJe1Ei/MWgEx+FTY=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>
Subject: Re: [PATCH v5] xen: Add Darwin.mk
Thread-Topic: [PATCH v5] xen: Add Darwin.mk
Thread-Index: AQHcmbF131JHt0VrQEG2yzDmCYz1i7V6XACAgAAB1gCAAAHIAIAAALSA
Date: Mon, 9 Feb 2026 13:42:05 +0000
Message-ID: <6B8E025C-3235-4289-948A-B26992D0C4C2@arm.com>
References:
 <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <aYngg_ym18d0G-fX@Mac.lan> <28A169D0-4454-4D60-B811-72FE377A4318@arm.com>
 <aYnjjHlbaYjr2VqV@Mac.lan>
In-Reply-To: <aYnjjHlbaYjr2VqV@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|GV2PR08MB11723:EE_|AMS0EPF00000194:EE_|DU5PR08MB10516:EE_
X-MS-Office365-Filtering-Correlation-Id: 14453e76-a4b2-4feb-7dd1-08de67e12a41
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?R0hRZ3hhOUViMkppa0FOZlpsbHFHTkw4aU9FampSdVdra29HdExxcG0wQjVk?=
 =?utf-8?B?SUNkRVBtU3Bac24xRmJVOFc4eERxYzBhMzBLNSttSDU4RTM2QVN3WDBqZ21V?=
 =?utf-8?B?d1JXSVNrODV6UWZ2dC9xeU43cVc3SGhuS0NUMTJYcXJBNjFTdWE2c2FSa0dW?=
 =?utf-8?B?ejc5eW5wOW0wZW1yWjluRHM4ZW0zUTBoK2JJMzNpM2ZUNTQxWUk4S1RzNE4y?=
 =?utf-8?B?MGRIdVd0N3Z2cmVjelJBOUFxclNZUllTS2h1QU5hWnczN0U4NmRDU2ZTS3Vl?=
 =?utf-8?B?N255YVlEd2Fod0d4eXlqVjBWTWJTTFluV0dnd1lOUG1MZjV5bkZOZjMvblZL?=
 =?utf-8?B?QTNYb3VyUXkxS3M2bGlxL3F4MkJ2TWVIRmc2eXNYNVZ0K0RrY1B0SzltK0V6?=
 =?utf-8?B?dnRjS0RYYkVmUVVvUUdQRk1CZkcxQmJFSEM1ZmtaN25hTy9NMWN1cWVTTDRW?=
 =?utf-8?B?ZWowaXU2cXJzaENSV3YyTWFjRmVSVHZmQ0RMN25LQ0pYcG9rUllvZ2x5WlBm?=
 =?utf-8?B?ZjF0NHV2aDJVOEJwc1JSSHFlYmFoanZTQS9vZm5yMGpUZ2w0UUZoZjVFMmZB?=
 =?utf-8?B?MVZxWUR0aVZQNVNhcHZITENNamMzalZRN0MxMlBCQXM1dTY4QXAzeUt3M1N5?=
 =?utf-8?B?M2tWTFpTRTZ2eG9pVkp3L2dwRE8wTTIyR1FjK0NueEkydWg0UUpSZVZOZG1j?=
 =?utf-8?B?WGRPMGNzTEM0MjlnZVZFcmpjL3FsY2RxWmdHSDVYMGdSS0crT2w0bEdMb0do?=
 =?utf-8?B?b2dNbCtBY253SHNaOGFWeTUvWjdjelFuZmI5VDJQYld5ZlljQklJQkZPVFNr?=
 =?utf-8?B?ODc4MUVtUTZQc1grajdWZlQ1LzdaeXZZaXc3ZGpvWjRicjFHKzVnR2V0SHpo?=
 =?utf-8?B?di9UTlRON01YNUsxK2oyY21lcHBpVHBvcHBMNlM0UUo3Q3YzeE94WWlybWor?=
 =?utf-8?B?RWhhMzFmUmRtNkJXL3YxdXNORG9MUGN2bnVOc2Rnekw0RkxVbXd3bnh6OEFl?=
 =?utf-8?B?QlJwM1lKM1AxN2dyZTk5ang4RDNUbEJpcVNjdGc5NmVWVjBIZmZTTWd0Lzdv?=
 =?utf-8?B?ME5tUG1FdjI2M3gxV211RDhyQlB3WE5jWk5RS1kxQUN2aFFSdW5lVDg2T3NH?=
 =?utf-8?B?UG5DOWJkYW13NlByZSs4QjlCZHp1bFFKYTlNb1dVRUFZWFlQZUFXUm9RVmYr?=
 =?utf-8?B?WmE4TFp4VmgwMFZ2eXBKdThESmJUTzNNa3lwZHo4Q0tzQmtSbFcrcmZlM3gz?=
 =?utf-8?B?ZWIxUnZKK2R4blZ6bXE4NVZUQWpNc1d0QTA4NkZjbTR4dWVzK0RKNVhnT2gz?=
 =?utf-8?B?N2pnT1ZBaU5CdzM0bXJUbHliNkJZYTk1Uk9aR2RiblUwdEYwa2UyQ1ExTXBP?=
 =?utf-8?B?aUVzSks1TDUyVkZxSWw2WUdEYW1QdHVCWFNaMHkwR3E4NHdHWkJTUVQxc1F2?=
 =?utf-8?B?S2tQSHlBcG1FdktQS0xkUHNMY1FLalBDTERZL1V5aks3Z05CMG1oSGZXMGl5?=
 =?utf-8?B?TXA0aldLNGRoTW5VVkxQSURzLytHb0pubFlIZ3FKcGdrdm5EbmVYVVJMb2V6?=
 =?utf-8?B?T3JUdWJPdWw2WnZmVUhTSUVtV2NsTHdxV2VuZWp5MUFGbXkvYlVLS2NxbVFX?=
 =?utf-8?B?ckdaaDk2ZFY1RFQ4UTZab01OalRZcFlubXRCYWRyRnBEeTd6Y0FZMVE3VTIr?=
 =?utf-8?B?TCtQUHhMSW1jQmhrS3hZSi9FbytEQ21BVGtQK1FlUDdxVFRHWmhNUXNwRWx4?=
 =?utf-8?B?VjByVDZKajF2L0Q0M0xDSDY4YUY0d0JiZmdrNVBQcVhmQjNQMkhQdHl3MFF0?=
 =?utf-8?B?d2VCQlVYQ0VBM3hCUnhaVzRDbzZDOGMwRWRIRVBTYUNYM1RSRklNTHorYWF2?=
 =?utf-8?B?Y0Q4QjhOdU1ndm94QWYyY3IxUTJITXVLM1JyV0NNdnF1U2FsMDVKRk1tdjN6?=
 =?utf-8?B?RWpJMjdYTENGZUcwalNaQ1VkdXR3OEVOOThvbUVaUFRicVpMbEZWZmx0N3hq?=
 =?utf-8?B?Tm91dHBHWXNMaU1ROGh4cUdRNUttYm9iQ2NLSkFpdEtITC9Xei9PcGpQbURY?=
 =?utf-8?B?MHRpOFMrbXg2V0k4U1pWa0dhaVUzN1lhOVhQY3MvVFJwcTB2MFJaR1FqYll2?=
 =?utf-8?B?bE41T09uMWdwR1llc0ZDR0NDb1NNWTl3RkJGV2VOOUs1WVNVbHk3U3AyTHRy?=
 =?utf-8?Q?ykVucLzSNVmFbCIcDb4TkAY=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <6F64F49B97F2D849BE88CE251F5DC50E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB11723
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF00000194.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	72e347c8-4a1b-4f76-1071-08de67e10383
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|35042699022|82310400026|376014|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OHpBUS9QTHhpM2ZrczBob1N0NDBqaFV6QUVIYzc0OHNIMnoramtDcXkvTy9m?=
 =?utf-8?B?VWw4cHNmakVzZ21Td05kaEVBdWRVSkN5akNrK0ZHbTFraTBUMUVkYVB4WE05?=
 =?utf-8?B?MGJXeGd6OEdaTmsrdWJkY0NIaER5ei9CT2JjcUVua1dxYy9sd2t1dVFSK1o2?=
 =?utf-8?B?dno1dEdIRVh5dWNPUndyRStYVHNJQ1FpaXB0UTJkcGdxL092MDVUbklRa1B6?=
 =?utf-8?B?V0R1UDgyK1pVY2lpc1E1T05jbktycDlRZGNWdUNqTmhzYXBsRi84QmJpaTZG?=
 =?utf-8?B?b0JHMDdCK3o0S3ozS1lTQTNHSTkzR3IwZFJpNXhlTFhPK0VNazI1UGRXNzlW?=
 =?utf-8?B?eWgyaDF3Vld4dENmb0g0SW4yVVRsK0dkNXY3aEdteXRUeVJRdVBNNmhudmZU?=
 =?utf-8?B?Z1czaWJ3U0JGbmhUODZDd2pCSkhaTnNzMG5Kd3dINHNxYjZkWXBSRXNkWHdJ?=
 =?utf-8?B?ajZ3VEt2cnlKMHRPUXg1RUsyZHRiSDZwUHh1ekw5Qi90SFdRNW5PbFZjblFa?=
 =?utf-8?B?akl2R09mb2hIeDBqL1dYeUFyVGhJQjh5VkpWakNIT2NVSmZhR1JmYWV6Qm1B?=
 =?utf-8?B?Mk1mRkVaMFV0ditUM3JJbHBNZjd5a3Z2S2lvaEl3YXV3QzdKQ3J3S3orNHhp?=
 =?utf-8?B?ejFaRFVyYXRMcko4aEYzRHdBa3l1c2VZUWlxTTVUeEM4eEJJVW1qdm4rbE1Y?=
 =?utf-8?B?L05Pd2NWaXhxa0xiYzNob3hhakl5enhJWWRraFJMQmxWendzUEVGNm43VFNi?=
 =?utf-8?B?SUhWa3Y3YmJ5ZmpCdkNudGc1MllXaFBwQ0tvZGtScTRMK3FRU2g3d2pKejlX?=
 =?utf-8?B?cnZyS2ZadWIvUmhnc2YrMmc1REpjWkZ5ZUJwNVJvc3VJUG03NEl4VFdLd3VT?=
 =?utf-8?B?QmRyd2hJTEhwL3EwMFVialdXRDhlVlp0ZFd0MDAySm03WitvRUZNekl4b2gw?=
 =?utf-8?B?ZHBUMzVVOXFBaTNqcTRIOVN2cDFpUVArQ2dIK3dPNjRmeGdWeXFEMnhJN3BH?=
 =?utf-8?B?dkpJVzJPbms4VzZPTWRyTmFsWXlOeUs3K0g4MmMvWk9VdG5EeEF1Y29EK3VX?=
 =?utf-8?B?UFBvKzlBNUE0aTRraXkzaUFJR3piSkpxWVp3cHpuVXhkVFEyREY0TlZ3aUZ0?=
 =?utf-8?B?dXFFdmU2TVJrdW5mdGRKYkJaVTNSQlFYMCtpUENhSTR4SksrK21La04xWmlH?=
 =?utf-8?B?cXdQWmF3TUJ3a2Jvck5Wbm8xQ1RObXhqcWJLVmxXZ0FsWmpDMGxGaUk1Tm56?=
 =?utf-8?B?NVdHbWI3Qmk1MjZOelh5cE45enlVZ3pMYmpKcnQwSGFOTVh2dUlsRXpza0dC?=
 =?utf-8?B?dnpEVTlTaHNITDlWZGJSVDZjV0plMENNQzRLSnhvK0cxdzBVY3VrVEZ6b2Zl?=
 =?utf-8?B?SE5oSHcrNWszYUhaYWVaTU9NMjR3eXFJNTlWLzRlbjFhK1ZvK2puSkZMdzZt?=
 =?utf-8?B?YXRMRzI1bDNCMzd6akF1MFdxT1BvOHU5MEo1eXpHV2dGMnJ2L0cxZUlkUzZD?=
 =?utf-8?B?N2Izb29udi93MmQ1all4U0VQM0Q0eUdNYnBROFJ0NDlVWTljS0pWeDJyMktn?=
 =?utf-8?B?NXJaT3RwTTB5U2luTlYwSHphYTFMNXd0aFM2bWVDWGFxWkp2NkVEZFhXMnYv?=
 =?utf-8?B?MTNRTTNJbDdkYWJHZlNVUWNvSEdaTklVSDJlZTRUWWN4VzhFSVdIdjdRci95?=
 =?utf-8?B?ZTZxRjhmU2pzTmFFaHZVZlg3VUhZM1RrWE9DdFMrUWhpTUM2bU0rY09RUEhZ?=
 =?utf-8?B?bVRhcUYxUzJkUFUxdnRLRFZON2tSckhIUlZyQ0hLU0tWMzQwVTBwYWZiUWU3?=
 =?utf-8?B?c0ZSUzNpNjlHZVNONzYxdXRFcDNCVEM3elFRT1lQQUJnbmRaZ05LWUx2Q3p3?=
 =?utf-8?B?cmZTOXF5eWthU1ZxWTdWMmRGYWhTUlZaaXo2eVJrVEs3ZnFvSEZ3KzlYcmw0?=
 =?utf-8?B?VWZqN2lrTzBTaGVKYmcwTThxVDd1TFJ0YjkwazlwRnNEMUVzOUd0STNlT2l4?=
 =?utf-8?B?OFkwN0tRcUVkUWpSQ2xwUUZXUW56YWZHYTl2KzJuSnBVWFhBZ0JSQThCeHFz?=
 =?utf-8?B?QzV5Yy81Zm1LYXBWdU1BbXRDbHRra1N1d1ZPdFA4N2c0bEZyd2FNa1lJRGE4?=
 =?utf-8?B?WitRTE4yN1J5dlhCejBJL1pJemJ1L2YrNnhnNGprdTdQYUxNVkxsMzUxS0Ju?=
 =?utf-8?B?K2dwcHZETWY5ZmpvK2JNaXV5eXFnYzB4UDd5RVUxd09RQW9HNkhOOERSNmgv?=
 =?utf-8?B?bWtYY1g5Z0dHZnVRTStYOWpWYU9BPT0=?=
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)(1800799024)(35042699022)(82310400026)(376014)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	AYl6exASe6rJMKwyhtEXRGWVLJ0sbyvcPmVHs//8Xu0ZbQolm7FkMjziRF3+NmOYzibcYkUdVtQJRsJ1GgM8nAHzH2/NjxzCOaaaGm7+rwXMtyQC0SNcv9EuIUZXruPFlmTPmnSPB1WVeF/F5xqV1g3KRyjcnirj4XzYlLc5QOxwbRmQc9MnYXiEWZ7nkcLQtkR0hhMLKTyredbwlt8ir4FgsAajpJwYZap9OfVvl7WGkE6iKcC+Zwo5DZgymujnQHRIuKsAQ7Ar1LPjsTKArRyORWHPhcoJbKxNPwtZ5puZSHA3cYoTxtSdo1lf8xMiYEX5hCddaiAOiFnug9WE7KZeiD9ysQVlA8H8TDTuVCqWKRz60AbJG7w7/1DUN6UNSG16xzqMRpLkn3RPfuZeWzwpd8YzwqQBBYafw8VEn++bucWxlRjP2u3dMobZsfDv
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 13:43:10.6515
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 14453e76-a4b2-4feb-7dd1-08de67e12a41
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:
	AMS0EPF00000194.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10516

DQoNCj4gT24gOSBGZWIgMjAyNiwgYXQgMTQ6MzksIFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBh
dUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIE1vbiwgRmViIDA5LCAyMDI2IGF0IDAxOjMz
OjEzUE0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBIaSBSb2dlcg0KPj4gDQo+
Pj4gT24gOSBGZWIgMjAyNiwgYXQgMTQ6MjYsIFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj
aXRyaXguY29tPiB3cm90ZToNCj4+PiANCj4+PiBPbiBNb24sIEZlYiAwOSwgMjAyNiBhdCAxMTo0
Njo0NEFNICswMTAwLCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4+PiBYZW4gZG9lcyBub3Qg
cHJvdmlkZSBhIERhcndpbiBidWlsZCBjb25maWd1cmF0aW9uIHVzZWFibGUgb24gTWFjIE9TLg0K
Pj4+PiBJdCBpcyBwb3NzaWJsZSB0byBidWlsZCBYZW4gSHlwZXJ2aXNvciAodG9vbHMgYXJlIG5v
dCBzdXBwb3J0ZWQpIHdpdGggYQ0KPj4+PiB0b29sY2hhaW4gYWJsZSB0byBwcm9kdWNlIEVMRiBi
aW5hcmllcyAoR0NDIG9yIG90aGVycykuDQo+Pj4+IA0KPj4+PiBBZGQgY29uZmlnL0Rhcndpbi5t
ayB0byBpbmNsdWRlIFN0ZEdOVS5tayBhbmQgZm9yY2UNCj4+Pj4gWEVOX0NPTVBJTEVfQVJDSD11
bmtub3duLCBlbnN1cmluZyBEYXJ3aW4gYnVpbGRzIGFsd2F5cyBmb2xsb3cNCj4+Pj4gdGhlIGNy
b3NzLWNvbXBpbGUgcGF0aCBzbyBjb21waWxpbmcgb24gTWFjIE9TIGlzIGFsd2F5cyBoYW5kbGVk
IGFzIGENCj4+Pj4gY3Jvc3MgY29tcGlsYXRpb24gY2FzZS4NCj4+Pj4gDQo+Pj4+IE9ubHkgY29t
cGlsaW5nIHRoZSBoeXBlcnZpc29yIGhhcyBiZWVuIHRlc3RlZCAhDQo+Pj4+IA0KPj4+PiBBbiBl
eGFtcGxlIG9mIGhvdyB0byBidWlsZCB0aGUgaHlwZXJ2aXNvciBmb3IgYXJtNjQgb24gTWFjIE9T
DQo+Pj4+ICh0b29scyBjYW5ub3QgYmUgYnVpbGQgZm9yIG5vdykgdXNpbmcgYSBjb21waWxlciBm
cm9tIGJyZXc6DQo+Pj4+IC0gYnJldyBpbnN0YWxsIGFhcmNoNjQtZWxmLWdjYyBhYXJjaDY0LWVs
Zi1iaW51dGlscw0KPj4+PiAtIG1ha2UgWEVOX1RBUkdFVF9BUkNIPWFybTY0IENST1NTX0NPTVBJ
TEU9YWFyY2g2NC1lbGYtIEhPU1RDQz1jbGFuZw0KPj4+IA0KPj4+IFRoaXMgbmVlZHMgJ3hlbicg
dGFyZ2V0IHBhc3NlZC4NCj4+IA0KPj4gV2l0aG91dCBhbnkgdGFyZ2V0LCB4ZW4gaXMgYnVpbHQg
YnkgZGVmYXVsdCBzbyBpIGtlcHQgdGhlIHNpbXBsZXN0IHBvc3NpYmxlIGNvbW1hbmQNCj4+IEJ1
dCBJIGFtIG9rIHdpdGggYWRkaW5nIHhlbg0KPiANCj4gV2l0aCB0aGUgYGNkIHhlbmAgb21pdHRl
ZCwgd29uJ3QgdGhhdCBhbHNvIGF0dGVtcHQgdG8gYnVpbGQgdGhlIHRvb2xzDQo+IHRoZW4/DQoN
ClRoaXMgaXMgc3VwcG9zZWQgdG8gYmUgY2FsbGVkIGluIHRoZSB4ZW4gc3ViLWRpcmVjdG9yeSBu
b3QgaW4gdGhlIG1haW4gZGlyZWN0b3J5Lg0KDQpOb3cgaSBnZXQgd2h5IHlvdSB3YW50ZWQgdGhl
IHhlbiAoYW5kIGhlbmNlIHdoeSB0aGVyZSB3YXMgdGhlIGNkIHhlbiBiZWZvcmUpDQoNCk1heWJl
IGhhdmluZyAtQyB4ZW4gd291bGQgYmUgYSBiZXR0ZXIgaWRlYSwgYnVpbGRpbmcgZnJvbSBtYWlu
IE1ha2VmaWxlIGNvdWxkDQpicmluZyBvdGhlciBzaWRlIGVmZmVjdHMgaSBndWVzcy4NCg0KQ2hl
ZXJzDQpCZXJ0cmFuZA0KDQoNCj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:10:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:10:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225413.1531905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpRxm-00033y-8p; Mon, 09 Feb 2026 14:10:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225413.1531905; Mon, 09 Feb 2026 14: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 1vpRxm-00033q-4X; Mon, 09 Feb 2026 14:10:06 +0000
Received: by outflank-mailman (input) for mailman id 1225413;
 Mon, 09 Feb 2026 14:10: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpRxk-0002kv-PO
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:10:04 +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 075e87d0-05c1-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:10:03 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4805ef35864so38378145e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:10:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d7a963sm296692555e9.9.2026.02.09.06.10.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 06:10:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 075e87d0-05c1-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770646203; x=1771251003; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wFvOG2PHs/YhAlG0EftJED06hEKrvzFmCzK8Elb+jWc=;
        b=gZBq+tAHcaCTsun8uEgA/qijJy1ZBm4R6NVscxDsplKj0lra5nIUE5mNnESimdGGll
         Aa+Z5Mtl/3wCB2ceQHyktcngNctn43QaJBrEhKHsCu/NR0FHQBSv6lRjW2EHpsfy7hWs
         Ra2YMo0RC/vaP544U76syOGMjc3ndSjgghqn/G/fUXFRefyg52uCHYNYhHp35V8dI0Pk
         tUjZ8+vP0FkLQhi7RyVAIpuxXJRu46Ox1wx8j/X2HRXLPMVdwOMtJRVZFMl/3687NW1P
         20h/AMo0RAmcU5za+lVQ8zutqIDDg/Vyii81ghAszA4Mg3V0EccKVW+MmMPm96eC1e6m
         WC1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770646203; x=1771251003;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wFvOG2PHs/YhAlG0EftJED06hEKrvzFmCzK8Elb+jWc=;
        b=vtJM98o8cvOdpHSg7O6DpnzTLdvavipjHX8Hn6SfE2Sw56vlB2m1BRPDE61bJST6+/
         lH/MxFXuSedPZ0Flggq9o3HWbUah44pP/ykxWZ6rfnS2/0iyyBcpC/3KtqX2H4aMnrsM
         omaw/5ZQde0WId/A/IS9089TYDj0gTGNcEUqrgSwcMyh5TLwRaTPd8NQBwYR4K0oV+GQ
         IrllhfbsliGgmE/KDiLvpsglb4joLLmLHlP7QqW7tGfOmJfrXXTdz+qx+69aU0Hu5jFC
         kNnO87bjQIHDrIfz15RzxMehv8//DyPDA3vp3l1tMs7U9WtfRukYHoDKSY58RJEOdyyz
         x7mQ==
X-Forwarded-Encrypted: i=1; AJvYcCWvzz1guJgr4k7bpMcIUXtNmWNH5e9njiQXBwC+nduH8AFrtkLuzigwpx71VF6nqXQX/e7aXkvHorI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx1f53pH5BhQGo+5sUoqVlQZlnvzwhA2FAmsdhZpffNCiJpzNPE
	BrI299fsBcuQvq0ZU6IktlD8LJFTKzOLbT4D7CVFXGlTIaZ9WKggu56k6xjKr2322Q==
X-Gm-Gg: AZuq6aLyHWg62qHSgJksBlv/6TKPyotrPTB9vPAy2x99I8z/b9xzbDhccpjlhhVYWpn
	t72W8n0EA/VvoWBUHYKDruSftgl1J6Fo2M7PMT1lp8ps/iA45fv2PnS1PhacKKeXw8MOIRlv+qt
	jf7PnLgHLmXgMDN/FmuzM4BRuUzDYrMP1rRrfgw1ZIhsew7qEMAsAd1GT8/AMRhOrXSSAev3w+P
	XYRc2+2AqG7ByLqddbPwZMx4L96rqrpYMJJ6zBu9hFTz+I3IREMLT8viGaouSYxTkUr4kXrG4/J
	ruX80wcRhchsPXmRqIlXyiSffyfzTK26KJZsVCzsQf+ywPOxtepJuZos/pErEPJF2xkWVV2P/kz
	21zkiHJmnAEONJyt50q3MPf6g2oPjlvoVhYUDgqCGwxgi5m3SG5oPC37rE1JHAFPMDqRdLMWX0i
	X018GQfPa/jNeJXU5AH0OZF7Fy9OzMyjXYzacfM3yt5pQQ0T65/U5i6ptvQ8a4C8nSkzfo1zfkr
	Es=
X-Received: by 2002:a05:600c:528b:b0:477:9cdb:e337 with SMTP id 5b1f17b1804b1-483201d61c7mr166417715e9.7.1770646203011;
        Mon, 09 Feb 2026 06:10:03 -0800 (PST)
Message-ID: <491d4d54-243d-48bd-ae9c-10567d0de1a6@suse.com>
Date: Mon, 9 Feb 2026 15:10:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Advertise and support extended destination IDs
 for MSI/IO-APIC
To: Julian Vetter <julian.vetter@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: <20260209113412.2603088-1-julian.vetter@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: <20260209113412.2603088-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 12:34, Julian Vetter wrote:
> --- a/xen/arch/x86/include/asm/hvm/vioapic.h
> +++ b/xen/arch/x86/include/asm/hvm/vioapic.h
> @@ -32,6 +32,19 @@
>  #define VIOAPIC_EDGE_TRIG  0
>  #define VIOAPIC_LEVEL_TRIG 1
>  
> +/*
> + * Extract the destination ID from a 64-bit IO-APIC RTE, including the
> + * extended bits (55:49) used when XEN_HVM_CPUID_EXT_DEST_ID is advertised.
> + */
> +#define IO_APIC_REDIR_DEST_SHIFT        56
> +#define IO_APIC_REDIR_DEST_MASK         0xffULL
> +#define IO_APIC_REDIR_EXT_DEST_SHIFT    49
> +#define IO_APIC_REDIR_EXT_DEST_MASK     0x7fULL

Can we please stop introducing pairs of mask and shift values? Already these
versus ...

> --- a/xen/arch/x86/include/asm/msi.h
> +++ b/xen/arch/x86/include/asm/msi.h
> @@ -54,6 +54,9 @@
>  #define	 MSI_ADDR_DEST_ID_MASK		0x00ff000
>  #define  MSI_ADDR_DEST_ID(dest)		(((dest) << MSI_ADDR_DEST_ID_SHIFT) & MSI_ADDR_DEST_ID_MASK)
>  
> +#define MSI_ADDR_EXT_DEST_ID_SHIFT	5
> +#define MSI_ADDR_EXT_DEST_ID_MASK	0x0000fe0

... this shows one of the problems: It's never clear whether the mask is
intended to be applied to the shifted or un-shifted value. Like you have it
down here, the mask constant alone is enough. You use it with MASK_EXTR()
and MASK_INSR().

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:13:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:13:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225419.1531917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpS0t-0003fR-Ng; Mon, 09 Feb 2026 14:13:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225419.1531917; Mon, 09 Feb 2026 14:13: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 1vpS0t-0003fK-JX; Mon, 09 Feb 2026 14:13:19 +0000
Received: by outflank-mailman (input) for mailman id 1225419;
 Mon, 09 Feb 2026 14:13: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpS0s-0003fE-3O
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:13:18 +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 7a74b412-05c1-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:13:16 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4375d4fb4d4so1194282f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:13:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b25d5sm28112721f8f.2.2026.02.09.06.13.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 06:13:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a74b412-05c1-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770646396; x=1771251196; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9FtapWJxCB15CLdJ4G0c1wUZIGnxFkevlFycQMCLLj0=;
        b=MsvGNz25D3sM8P0bmzELT+/JijYyGShVe1WUFVLWGccyMKbG9kWv2we0zcTZW2Nfoy
         0NcpASkF1vbxh+w4cYQtCaJSRiS41PUST1PU/M/Tz6qjB1a4c9ryRy2Wx4aVdK5byyoh
         IoEGLP1gzW2sp8gUjzLnUAaxX702BcfE2VYVKG25YO8fgUvN0//gnQV4kXcK+Cyst/Tc
         T8jip7WOB7yGtri4EDH5BoUkoBBDNIPwSn9GIrE9luVXUNJMUDa89io6Mg2KSGdSO6qr
         uhkoVWrfxNQyoRbuZgvOJ9Ic8lqMTVsuT2snJOw6PsDfXiTGLIbiRWKkKg2tUqDPyX5j
         PVCg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770646396; x=1771251196;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9FtapWJxCB15CLdJ4G0c1wUZIGnxFkevlFycQMCLLj0=;
        b=cRvK0U1TNFzIbef5Gc6B8fMPPZMulPiM0i6NDGd3sFLj3aBjlXVbGKUTPfWD69VZP9
         DsP4wD+XOVPCneR3a7nwxjzU/horl2NFNsuqo1UKqHVhN++BnuRxzlwEG/a4T3lE/QGp
         c8DZavS85ZkuXg8Xls/b9QlWQ81F3fYtcF86TeL06ejTYIszo1fu5yl5SPBhl9Ipl62I
         wqFKUxmwF+Y+HE3yQEmmbL2ZAqtSJYoTkKQ9dEogYgBgfb3w+EKF2jHwDONExu7aVGiH
         yZfgkdrzxHbMEqJEuI74UA9oihNMznCg4saZw71zVxOAEZHlTDNC97k1wAHg3I1gF2/z
         4/6A==
X-Gm-Message-State: AOJu0Yw4Sukq3LNB+ksADeLQqrsuNN/Q83x1OPaZRsZkfWGYuQdQcy9t
	WEaxXaOz6v9Grztkb1n6nPj1NNPQ3bhbYDwAqJOREGzZ1UmgS+6XKrhbHlew3mDUZA==
X-Gm-Gg: AZuq6aLtPGK/C3StTvXCKljkE0rY01UMGP3MyITdU64lROA6x1JoKK5PeNWKUWC4k42
	KiWcUtaH0N276NFdXGmj3iuJtaLAhUErtwH1PsowJLUhq/cd7dQbMYRuwkCzP3LAYKqovgaJ+c3
	Nbec30NsWP49qlFddxTG+tnqVDkgt7EiPMD1pX3RCh4pFpw6jQM6CwVkfJ0BIkPm979YStdPJ2S
	ywVio6QIc9y2F0PhLGAFATKu4PaVIdu3dBGndxdrxLtuD91JHdPxM+1s/8BIwoQZQruUBE7gqff
	OBKqfsJNQrxJLuRGSeUOX0BRchJ/ypH+JHWex1QOmegGuBJavALwOGFmqWiRSwxdWwO3tCP7xIu
	yhuESmUrB35IsQMeDc3Pt1aHvZ73NmvgM0xNdFy5S4Rrwc/LDXo5mQYEnkHeMiYrNGA14wu7eHi
	nWl/Kfe6w1LrBeKSgoDxhYqMw0CYKzKDG6jJRDFSz/I0x0xihpoVowoTde8BB/RkeYDm8E2DZiB
	+F7AwKuT1jqjQ==
X-Received: by 2002:a05:6000:1889:b0:436:d10:a6b0 with SMTP id ffacd0b85a97d-4362923f296mr18524646f8f.20.1770646396133;
        Mon, 09 Feb 2026 06:13:16 -0800 (PST)
Message-ID: <daa99e9b-068f-4e77-872d-69e93067447f@suse.com>
Date: Mon, 9 Feb 2026 15:13:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: Add Darwin.mk
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 =?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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
References: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <aYngg_ym18d0G-fX@Mac.lan> <28A169D0-4454-4D60-B811-72FE377A4318@arm.com>
 <aYnjjHlbaYjr2VqV@Mac.lan> <6B8E025C-3235-4289-948A-B26992D0C4C2@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <6B8E025C-3235-4289-948A-B26992D0C4C2@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 14:42, Bertrand Marquis wrote:
>> On 9 Feb 2026, at 14:39, Roger Pau Monné <roger.pau@citrix.com> wrote:
>> On Mon, Feb 09, 2026 at 01:33:13PM +0000, Bertrand Marquis wrote:
>>>> On 9 Feb 2026, at 14:26, Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>> On Mon, Feb 09, 2026 at 11:46:44AM +0100, Bertrand Marquis wrote:
>>>>> Xen does not provide a Darwin build configuration useable on Mac OS.
>>>>> It is possible to build Xen Hypervisor (tools are not supported) with a
>>>>> toolchain able to produce ELF binaries (GCC or others).
>>>>>
>>>>> Add config/Darwin.mk to include StdGNU.mk and force
>>>>> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
>>>>> the cross-compile path so compiling on Mac OS is always handled as a
>>>>> cross compilation case.
>>>>>
>>>>> Only compiling the hypervisor has been tested !
>>>>>
>>>>> An example of how to build the hypervisor for arm64 on Mac OS
>>>>> (tools cannot be build for now) using a compiler from brew:
>>>>> - brew install aarch64-elf-gcc aarch64-elf-binutils
>>>>> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
>>>>
>>>> This needs 'xen' target passed.
>>>
>>> Without any target, xen is built by default so i kept the simplest possible command
>>> But I am ok with adding xen
>>
>> With the `cd xen` omitted, won't that also attempt to build the tools
>> then?
> 
> This is supposed to be called in the xen sub-directory not in the main directory.
> 
> Now i get why you wanted the xen (and hence why there was the cd xen before)
> 
> Maybe having -C xen would be a better idea, building from main Makefile could
> bring other side effects i guess.

Happy to add "-C xen" while committing, if that's what we now have settled
upon?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:19:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:19:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225429.1531926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpS6X-0004Tk-Ge; Mon, 09 Feb 2026 14:19:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225429.1531926; Mon, 09 Feb 2026 14:19: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 1vpS6X-0004Td-C6; Mon, 09 Feb 2026 14:19:09 +0000
Received: by outflank-mailman (input) for mailman id 1225429;
 Mon, 09 Feb 2026 14:19: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpS6V-0004TX-NY
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:19:07 +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 49eaf249-05c2-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:19:05 +0100 (CET)
Received: from AS8PR07CA0060.eurprd07.prod.outlook.com (2603:10a6:20b:459::33)
 by PR3PR08MB5692.eurprd08.prod.outlook.com (2603:10a6:102:8a::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 14:18:53 +0000
Received: from AM2PEPF0001C710.eurprd05.prod.outlook.com
 (2603:10a6:20b:459:cafe::cd) by AS8PR07CA0060.outlook.office365.com
 (2603:10a6:20b:459::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.5 via Frontend Transport; Mon, 9
 Feb 2026 14:18:51 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C710.mail.protection.outlook.com (10.167.16.180) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 14:18:53 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAWPR08MB9735.eurprd08.prod.outlook.com (2603:10a6:102:2ee::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 14:17:48 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 14:17: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: 49eaf249-05c2-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=VV56wUj/OWm9agyincvbd01UsqmtWdBb62c1GyYLD0/WrwO6pcYx8AxIgT3q36aysxW1N/yPfQ0oOIUhjLYYNaVhQ1GS1WQ7f4EFDiytFgG8vLgInoAisrl6+2F2n0UEx12HUgeL/apXcktZN8lzymgUe8PHzPjeL8M/KYpxXDyhHCVJQGI1iF3W/6s2AJEzE9ZfPbjeBNXqM/tApgmU8LpHjN846lpSeEDnUNF7Z5HA5o5PIB4cOB3wHfnD0YzW/mC2UD6/tMy875VJ3tjNlaBn3AatnMilpG1E0rBhFfc9ihCQQGIwUDCg9z3Wjo30ab50T6PWIPogluURgs2b0w==
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=FY6s0oaPakqRkFg4kYZmzJ9ep/wbnuKyO39KzOwjjlg=;
 b=D6dlLuSZHgSWTU38umTyb1DCs0SoB8ClPgm+EYgD8aCZ28R4FQEdJsxizyQ7qwEs497deWnyann/SYFL+Rt8yWaza7eKlWD8D3tM5CSOAw+uM+VP+HdqDkHu9uy79YkqdLjOGiJtP5f0t8+bfv7igzlkWx/H7bW+HOwzYwROV4sK/Lvpyz17dSPcTXK5dVo+K2gPIOH3RQ98kjoHHS9od5nj9u3/U53cT2ZEReWsWNjD4TfE6BoVMFk0ikIWr/jwv9Op5bI7xNTGdT9WVQOO29wWTlLNhRZxzNB82HX9+0dI5sksRPFJRLQbvNu+6DpGeGXMbG56ApOaDQZIvtZa+A==
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=FY6s0oaPakqRkFg4kYZmzJ9ep/wbnuKyO39KzOwjjlg=;
 b=HSYzY6e4ir/iQe2B5a6T5qRCxDPjLEXMb3J3z/fYFH68rmSpe30bp8NJfr8PRTxs5XPRv5jBxE2CiH9BE6YadH/TTPzUPecJ2kTcq9fZnipsma/Wf4TuCMQvJ/28tp83ito0LeFuWNQEFMwaGy6kq6liVjiCC/rJh3C2P+H+2HY=
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=yFCvLtnKyWBRF0+PZTmqLhhM2WoXEXynMMyqhCw7YG/9Q3Z1mqiLZxElTj/il3ptPvyFDXGtOs5RWJpWvdAXvvHzz1/g9nbnvbQgxXhM/xLxk8OnlZv53Akgw/O4AzZxkE0peDdYxG8nYGpwrGMnVz9n9uAwVbWohtnkJqFGqii1de1duJB8oG0djO80uJfglRn7h5c6MuAJ4p2R87OUddkgfPQ/OUiLEftwurbdXDCAPMNAJ+VUmWxSliE4vT1wmuDFtZnhahTSV15YK3Y6RXqWbh1GqA5eK8Jh/F+hS2gxp/lOexYLD4dXa84q9x0CppOuS1qx/LwdAlHRUI5riw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FY6s0oaPakqRkFg4kYZmzJ9ep/wbnuKyO39KzOwjjlg=;
 b=NYqiYGgisrhGggMAb2yff9O6y/3lMSWlJUOh/lJqiwyVNvisYJPXPyRmtECzl412n7IWInvv1S5rD7LBrFUKqI2D0o2E6ktGATYCvYEEXZRtfLzNQsYT+8waEX6BfgEFVgaWo5NJVAEkbJ5SjJd/mYCyxq+Oiq8HQJlvnaemWdkEMxOHckHzx1Of9B27DafqUzotVJlmTZ1Yp390n+1xjtG5kuTjeWxhE3O7dBdCrZT2KNS6ePDCB90qulmXuI047qCIsn7OnMXtxpmh4i3jzSYlE6Hw42R4K4vyg4zVtgeUewZrGZoFIEDHW6uPtpdT7blcj7P0dtLUe/0EAxQ5qQ==
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=FY6s0oaPakqRkFg4kYZmzJ9ep/wbnuKyO39KzOwjjlg=;
 b=HSYzY6e4ir/iQe2B5a6T5qRCxDPjLEXMb3J3z/fYFH68rmSpe30bp8NJfr8PRTxs5XPRv5jBxE2CiH9BE6YadH/TTPzUPecJ2kTcq9fZnipsma/Wf4TuCMQvJ/28tp83ito0LeFuWNQEFMwaGy6kq6liVjiCC/rJh3C2P+H+2HY=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, 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: Re: [PATCH v5] xen: Add Darwin.mk
Thread-Topic: [PATCH v5] xen: Add Darwin.mk
Thread-Index:
 AQHcmbF131JHt0VrQEG2yzDmCYz1i7V6XACAgAAB1gCAAAHIAIAAALSAgAAIw4CAAAE2gA==
Date: Mon, 9 Feb 2026 14:17:48 +0000
Message-ID: <965DA116-8B66-45CC-BEFC-AE5840849EA4@arm.com>
References:
 <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <aYngg_ym18d0G-fX@Mac.lan> <28A169D0-4454-4D60-B811-72FE377A4318@arm.com>
 <aYnjjHlbaYjr2VqV@Mac.lan> <6B8E025C-3235-4289-948A-B26992D0C4C2@arm.com>
 <daa99e9b-068f-4e77-872d-69e93067447f@suse.com>
In-Reply-To: <daa99e9b-068f-4e77-872d-69e93067447f@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAWPR08MB9735:EE_|AM2PEPF0001C710:EE_|PR3PR08MB5692:EE_
X-MS-Office365-Filtering-Correlation-Id: 4182c521-d292-4626-2377-08de67e6274f
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?ZUZUUDBVMTQyUkoxNitPMVpHNHhwS3Z2ZitpdXB3ejg4cUlxdU03NnprMWhh?=
 =?utf-8?B?M3NHOEorMHhhVWhOeW1tejJ6V1k0VXlsNm9WdUVyVWNrVnVQeGF2VVEraEJW?=
 =?utf-8?B?dEI1c3VjZ2xxU09vWkNiNmR6U0l5N0RYbFB4RHNMZFNjM1A2NVBocnk3UElC?=
 =?utf-8?B?UVlYakczckx5Q1NnVWdxMVNZZFVuR3BEZDFISmxxTDV3YTA4RjZPU1dxcytH?=
 =?utf-8?B?QW5ZZ3hiaEhOYXhjVHY1Rnl5aHYvZFFHRis4SlNFcmgrVlZONGZsdFYxYUhz?=
 =?utf-8?B?eEQ3cTFxWkROc1hHWVlhNitsZzd1WUFPSzZnYjZwLzRReVVHbmYzNVUySHg2?=
 =?utf-8?B?d1NnVEFFVlJLY2Z0azhDM2FVaFF4ZzdhUkxiN3BrcG81dm9DQmRBWjVQdGlN?=
 =?utf-8?B?cm9QU2JpZno3SzlKRzlXaWVSZVFOR21vbTBJb29HenpZYm5jcVZqK2xXcGR3?=
 =?utf-8?B?bzRmejBQUEJaQ1ZsQU5DSjljZDVWUlhHSGdRTWxaamNBRW51K3RlNEx5UzJ6?=
 =?utf-8?B?OVk0OUFIVmY0VTNJU3NxSW5ISDlWZXA4SGZHTkFGRVdJck94RkI0eS82UWVV?=
 =?utf-8?B?WGhtUTRFeVJXQ2hWMmlxU0RwUmUxU2IwTG8reUVXV09JalJiZ21XR0hXMDEy?=
 =?utf-8?B?dnN0NTJ6SlJkdUZTOXNBdUZTOFk4R2ZsRFBTUXJNbVEyNVNOY2Z6UEpIZlk3?=
 =?utf-8?B?T1pKYWZQallkSVZ5Y1VFMk5XMGIvUDV2Y0pBbllvRlBpQnllWWREWXFkZUR3?=
 =?utf-8?B?eisrM3l1eVErbndXVGZNSmk0RlVhem1zb3dUTWVhU3EwOGs5bHd3UW8vMTV4?=
 =?utf-8?B?aDF5WmJVV210MEJDaFRTMGRnZGhWWldpSkxIYVdDU3pNc0F3Q0RmK1VJTVRz?=
 =?utf-8?B?bXM0Wk82MjBkY1pnS2xqNnpBYTBEcVIyc3Noa1hGM2VUdE55U1o4T0pXZGVW?=
 =?utf-8?B?TWV4dDdzRjJTQUhaQ3ZtaGh6M0YrVllvOHh2QWNySUl2SjhDc2s5QkNSSmJF?=
 =?utf-8?B?Mm96bDJDbmdLU1Iwck1RSjUyMDBoNTlIRTNpbTJMb29Fbkg3SnFNcGQ5UXp2?=
 =?utf-8?B?UUEycldqcmNEM0FWY21PTlBRS21FSjg1bXZpWVR0ZWdFQVNac0x4Tms3VFdm?=
 =?utf-8?B?a1YzQUZMclBkUCtpb2pyRGtmdE5VK3lBajY0SWh2UXpMV0VNdEFlbnZtRVFX?=
 =?utf-8?B?UEFPdkxMSzJLeGtBZm01N0ZFWlduUm9DMytxbWZtUTUxQ2MxUFlSSFREbU84?=
 =?utf-8?B?S2c2MlhHUjErVXBKbVdtYS9EWTZvdC9lMi9uZG1obTdacmFkcUdjN2ZQRUFW?=
 =?utf-8?B?UUhwNHNpOUZpRmV0cDE0M1BvZG1EUjk3QXR3NUVaWjlGM1ByK1JMRE1kTVBE?=
 =?utf-8?B?azJKTUExRUZXYjh1REVrRXNnc3ZubDR6amRjZXN4cm9uby95RVMxWkxaNno1?=
 =?utf-8?B?K3hHYzJQS1dnMTEvOXVwOGU5aXNMUzQ0TkNUaEpqK3BvTHI2eU5RYVo0TDBI?=
 =?utf-8?B?MUlLNGRxYllLVXpZOEdQeVJCWFlrZk5EdGdnTC9qOVp3bzIvOVJvRndzbkhR?=
 =?utf-8?B?c0M5ZHFZUTBIY09NK3VFdU9NS0NJYVEwemNSZmovelVOME1XTWhURVhhY2FG?=
 =?utf-8?B?MFZ0alZUZjRJSWJUbzAyTFVQTHpBN0x2OE9Vb3ViTnh6WjNPR0J5cldFUjg3?=
 =?utf-8?B?UXdPYmxBSUlrenAxOXByNTExRkwrUWxkd0FJQ0JBZUZzdnFWNkF4dUYxV2x4?=
 =?utf-8?B?MnVlK1lVVkhGYmcvNGJZWXRTdjlTc3piN0Q2STVFRXNucWdobTNEZklqd2pV?=
 =?utf-8?B?alRtUTd2ZVIxanplOGw2TFlnZkErdnJ6QklRQkU1U0hBYjhGem5VcW5wUU54?=
 =?utf-8?B?eFRJYnMyMW1XclVlZkJsK09JVXhKY3NxdTF4NHpjem5pVkZqWUp5ZHJPQmll?=
 =?utf-8?B?WUhOQnowL3hOUDBJMHgva3c2MllOMlpVaGpMN3BzUWRLdWVxY0JoYnZNNDl4?=
 =?utf-8?B?VjcwTExFL2ZnQ3JwdExrMURPWVNTYlpGcHppSXViOGxBRmY5amN3R2kwY2xs?=
 =?utf-8?B?NlJsb2dkYWlpYXpMRkYxWVNhT0UwbUFZbWVhTUN0WUdnWFQ2aDluT0NkWVd2?=
 =?utf-8?B?QmRTODhvU3pVbUNIS1lhSHlZaVYwT2NFM3pqQzRTOXVlL3ZPeXMyUnVVOWRa?=
 =?utf-8?Q?v9t8uf2bPMRKX7SiCeJO8M4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <71A1B86294EAFB43B913EDB6CF602020@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9735
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a3940bfb-fd79-41a4-1d37-08de67e6008e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|14060799003|1800799024|35042699022|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dWdSRnhsSUVhWXROUW9US1AxVkV4RWJBYVMweFpkQjRoTTIrSVhmUnZsQzQ1?=
 =?utf-8?B?SkRpQ0I0QWJKRWlZODUyK0ZtU1d3RFBqUlNhUmNjbGRQSXRhencvVFRGM1E0?=
 =?utf-8?B?bDJpS2d4SlJWU0tsdC9hdVZCSDVYeDhuQm1VNS9FQmdOK0czN0V1MWZBU0tn?=
 =?utf-8?B?VEpDcDB1bFNjVzk4SXBzN2ExSjdlYWgwbk9CdDlRLy9BWmd6OWswd050N3Zn?=
 =?utf-8?B?YjBoQUxHWFQ5b3BGZHJpR0ZjK3pmTVgrWkpKN2c1QlFpSFYwcXVkaDZDOHJo?=
 =?utf-8?B?VzhhTndueWNDYkVEdlQvWEl3NXE2aUZZQmhVaVNmbzJ5NHBJeHFzMEN3YjRv?=
 =?utf-8?B?YXlRREszK0c5eDBmcVB5WE5VQ0lPdE83VzZXQVVGWkIyM2tQRkZRd3VNT29p?=
 =?utf-8?B?NXJFOG00RVhibDlxYloyTE85TEYzTXJIVlZJSTNMUzMzZHcyaTFRUHVCRmFQ?=
 =?utf-8?B?d20rUnFTMGJ5anV3L1NoMEc1eEJPcXI3MWFGM1pUNEk2ZGtBOEFtNmJEQjV4?=
 =?utf-8?B?MTRjUTZleXhjWGd2OXlsTzBxOS90WmQ1MW0zaitvdmVuOFp4dkQ1T0l3d1hW?=
 =?utf-8?B?QWQ5QU5sTjdaTFYvTHFEZHF6WVZxYW45eHBGd2QwZVZabFZOb1FOeVZMSURp?=
 =?utf-8?B?Zk1hWExIVXViNkFIM0wxSXdQYTBPTk96V2t4Q3VMRFBidFkwZkdnamFvZWhw?=
 =?utf-8?B?TkxMOCtvL2pxTlJXdlBUK3lFQitCRUNjWm52SU5XTy9MSjFNRnJGZ3AvVGhX?=
 =?utf-8?B?R05PN3hnd3VibUhBeVVDT21YdWgyWk1BcVJMeGdiVDN1VGJLdFZwQzcvQ0Uw?=
 =?utf-8?B?Zmc4WlkzQXI2Z1J4b3ZXbER4MENNM0MrN3RoTlFVbmV5RVNjaHlKVFNydUk0?=
 =?utf-8?B?WEljWXM5RWtBcjRLbkNIQWp0Q2dXK1RyMVJEb09sSkE0ME0wUlFaQ29IV2hB?=
 =?utf-8?B?TDVGb3lVdTk4eVRxSUpVREc0aVRxRU1ER1gyOVNtdjJtaGFsYThKQlJEb09a?=
 =?utf-8?B?NDAzeXArcTFWKzJacE9VQWl6Mm8zVzh1NkVCMXFBblN3b2tDcldmWGQ5bHNG?=
 =?utf-8?B?R1dHS0ZQTmVlWU9udjA4UGlJRWlWRTRFV01CRmtvMm1TZEVDUmZ0a3huM0I3?=
 =?utf-8?B?dmsrR25oMkJpRGpBSlNFOTk1RWxmcVpxVUxrZ0hnajJMRWtLU3NSRFY2WlJh?=
 =?utf-8?B?L3cvQ2JSZ0JMc1JrTk1RNmNST0tXeDNqN2JSRDBpWGFlcVduVnNKQnJjNiti?=
 =?utf-8?B?eEFJYlN6OFRXMmdYd3NUTDVxL3NXeXY5WFhRUTArSHN0cm5tdWZDRUY1OEhB?=
 =?utf-8?B?dC9neGV0eitSV2RtYm01djZ1RnBpQmlQZjNIOEgra1RiNEJRNHVXOWs4UnlX?=
 =?utf-8?B?ZldwbUhlVjZTK2lHRmw0cWllRTdERURwN1VpOElWa0ozbGZ3MkpzaWR0OFo5?=
 =?utf-8?B?bHdmeDF2clZMVG5nVnhQVVN1cGRsWkVIbjhaRVYxZHd2eUdDeGxNdGhRWllu?=
 =?utf-8?B?c2FkNjlvbW5DQnFoWFhpOW9yTlRaTkxVVUVyTlRKbXRXVE5lTzJOUUsrY1B1?=
 =?utf-8?B?MWhOV1A0UUM1d3doRVo1MTBIVVhaSGdEeGV3bDV2dUpwZUlQZHJKeGtic3Zq?=
 =?utf-8?B?ZG84QXdCY3FsWC90MldUbnNlcytVcjFoWVdWUVVjU1N5ZHRNNDY0aTBoLzN0?=
 =?utf-8?B?UlFlWlJnQjNWK1FkdFkrbVQ3UFpTeVorRWJpRHlIM3FMWkRmM3dsSnRlMUdS?=
 =?utf-8?B?NFBlTmlwRm44UUptSHYwVWdrek9xdWl1YTBWTzdEdjdjQXczUnR4b2FxeE5O?=
 =?utf-8?B?azJxT2RXZXJLRkFmcmxadlBad2x5WHFKNEtVT2lBQUd3MUlqTDM0MFV4blNy?=
 =?utf-8?B?MHJjTzBFS080eWZwSUllNmxUSmxCUHZNUDgrQ01IRzljYTJUK0dKMXNtMTV5?=
 =?utf-8?B?bkhpazdvYzZaRm92cWZIeHhtK0xPZ2pKUTFFSEpxVGhzY1JOMnNFa25YZklP?=
 =?utf-8?B?ZS9DTi8yeWp3eTNhaHN2Z2h3UE42L0JITWEyYTQ4cXNDWlZ0L0VCL2lSSHlK?=
 =?utf-8?B?dnJXSUNyYnVTNVpHNkNnelBrQmhLWXpXbFBKVitja1lGUE9GNW5RbHV3MDc2?=
 =?utf-8?B?OHdSVkpHT3lYbkp5NE4xWS8zMlgvMVpsSFJzbzZvWkUyamFNRW9OVHh0dWdz?=
 =?utf-8?B?Qjl0ODV5SXROTzAxK0FzVjFRbjFpT2t0N2dyVFQxSkpnbytjbHlXbHJDN0hX?=
 =?utf-8?B?MXpoeWthUFJyRmZockdtVVd6T09RPT0=?=
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)(1800799024)(35042699022)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7eYzwdUbvIZxqAsWUK40fGj2UhYVulhQqiMZux8/job72tGbXksziPTMSqlRzVMeMlMOFu8qdqJqiclLel5XhURjVe81lxH8t8/txewWUNHzt84fztoO0PlZi2UsjYuc9hybfNOv6VP/y9Y9IHIfPxt6ENAOA+0qQuduvrR9pbG0p6R08KzUSXY43QLvvj2n9+c6kTGgniUT60nHQZlxKLtU4MVpFxI6eOKIpvKKCb4o8iNz7UZLzc6xlVuzQCxmhNmhfMUYjOs2BdaqEnZMzFnuA5rki0q7cXH/WviFV6CyhdUSwUr2KbHKaJvVtvLe4wpv6k2+nvNeWX/9IKZK2RoIfjjndEG/J8yHW91elxdqREXgk85/+GxHrsauk+SvEZIhu0Eh3zfRz78kxBw+/4zpQgs0H1yzI3Rwch0dkz4ceLrE7fg1pnKDGMMfMnSE
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:18:53.2010
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4182c521-d292-4626-2377-08de67e6274f
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:
	AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5692

SGkgSmFuLA0KDQo+IE9uIDkgRmViIDIwMjYsIGF0IDE1OjEzLCBKYW4gQmV1bGljaCA8amJldWxp
Y2hAc3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMDkuMDIuMjAyNiAxNDo0MiwgQmVydHJhbmQg
TWFycXVpcyB3cm90ZToNCj4+PiBPbiA5IEZlYiAyMDI2LCBhdCAxNDozOSwgUm9nZXIgUGF1IE1v
bm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOg0KPj4+IE9uIE1vbiwgRmViIDA5LCAy
MDI2IGF0IDAxOjMzOjEzUE0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+Pj4+PiBP
biA5IEZlYiAyMDI2LCBhdCAxNDoyNiwgUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp
eC5jb20+IHdyb3RlOg0KPj4+Pj4gT24gTW9uLCBGZWIgMDksIDIwMjYgYXQgMTE6NDY6NDRBTSAr
MDEwMCwgQmVydHJhbmQgTWFycXVpcyB3cm90ZToNCj4+Pj4+PiBYZW4gZG9lcyBub3QgcHJvdmlk
ZSBhIERhcndpbiBidWlsZCBjb25maWd1cmF0aW9uIHVzZWFibGUgb24gTWFjIE9TLg0KPj4+Pj4+
IEl0IGlzIHBvc3NpYmxlIHRvIGJ1aWxkIFhlbiBIeXBlcnZpc29yICh0b29scyBhcmUgbm90IHN1
cHBvcnRlZCkgd2l0aCBhDQo+Pj4+Pj4gdG9vbGNoYWluIGFibGUgdG8gcHJvZHVjZSBFTEYgYmlu
YXJpZXMgKEdDQyBvciBvdGhlcnMpLg0KPj4+Pj4+IA0KPj4+Pj4+IEFkZCBjb25maWcvRGFyd2lu
Lm1rIHRvIGluY2x1ZGUgU3RkR05VLm1rIGFuZCBmb3JjZQ0KPj4+Pj4+IFhFTl9DT01QSUxFX0FS
Q0g9dW5rbm93biwgZW5zdXJpbmcgRGFyd2luIGJ1aWxkcyBhbHdheXMgZm9sbG93DQo+Pj4+Pj4g
dGhlIGNyb3NzLWNvbXBpbGUgcGF0aCBzbyBjb21waWxpbmcgb24gTWFjIE9TIGlzIGFsd2F5cyBo
YW5kbGVkIGFzIGENCj4+Pj4+PiBjcm9zcyBjb21waWxhdGlvbiBjYXNlLg0KPj4+Pj4+IA0KPj4+
Pj4+IE9ubHkgY29tcGlsaW5nIHRoZSBoeXBlcnZpc29yIGhhcyBiZWVuIHRlc3RlZCAhDQo+Pj4+
Pj4gDQo+Pj4+Pj4gQW4gZXhhbXBsZSBvZiBob3cgdG8gYnVpbGQgdGhlIGh5cGVydmlzb3IgZm9y
IGFybTY0IG9uIE1hYyBPUw0KPj4+Pj4+ICh0b29scyBjYW5ub3QgYmUgYnVpbGQgZm9yIG5vdykg
dXNpbmcgYSBjb21waWxlciBmcm9tIGJyZXc6DQo+Pj4+Pj4gLSBicmV3IGluc3RhbGwgYWFyY2g2
NC1lbGYtZ2NjIGFhcmNoNjQtZWxmLWJpbnV0aWxzDQo+Pj4+Pj4gLSBtYWtlIFhFTl9UQVJHRVRf
QVJDSD1hcm02NCBDUk9TU19DT01QSUxFPWFhcmNoNjQtZWxmLSBIT1NUQ0M9Y2xhbmcNCj4+Pj4+
IA0KPj4+Pj4gVGhpcyBuZWVkcyAneGVuJyB0YXJnZXQgcGFzc2VkLg0KPj4+PiANCj4+Pj4gV2l0
aG91dCBhbnkgdGFyZ2V0LCB4ZW4gaXMgYnVpbHQgYnkgZGVmYXVsdCBzbyBpIGtlcHQgdGhlIHNp
bXBsZXN0IHBvc3NpYmxlIGNvbW1hbmQNCj4+Pj4gQnV0IEkgYW0gb2sgd2l0aCBhZGRpbmcgeGVu
DQo+Pj4gDQo+Pj4gV2l0aCB0aGUgYGNkIHhlbmAgb21pdHRlZCwgd29uJ3QgdGhhdCBhbHNvIGF0
dGVtcHQgdG8gYnVpbGQgdGhlIHRvb2xzDQo+Pj4gdGhlbj8NCj4+IA0KPj4gVGhpcyBpcyBzdXBw
b3NlZCB0byBiZSBjYWxsZWQgaW4gdGhlIHhlbiBzdWItZGlyZWN0b3J5IG5vdCBpbiB0aGUgbWFp
biBkaXJlY3RvcnkuDQo+PiANCj4+IE5vdyBpIGdldCB3aHkgeW91IHdhbnRlZCB0aGUgeGVuIChh
bmQgaGVuY2Ugd2h5IHRoZXJlIHdhcyB0aGUgY2QgeGVuIGJlZm9yZSkNCj4+IA0KPj4gTWF5YmUg
aGF2aW5nIC1DIHhlbiB3b3VsZCBiZSBhIGJldHRlciBpZGVhLCBidWlsZGluZyBmcm9tIG1haW4g
TWFrZWZpbGUgY291bGQNCj4+IGJyaW5nIG90aGVyIHNpZGUgZWZmZWN0cyBpIGd1ZXNzLg0KPiAN
Cj4gSGFwcHkgdG8gYWRkICItQyB4ZW4iIHdoaWxlIGNvbW1pdHRpbmcsIGlmIHRoYXQncyB3aGF0
IHdlIG5vdyBoYXZlIHNldHRsZWQNCj4gdXBvbj8NCg0KWWVzIEkgdGhpbmsgdGhpcyB3aWxsIG1h
a2UgaXQgY2xlYXJlciBhbmQgb2J2aW91cyB0aGF0IHdlIG9ubHkgb3BlcmF0ZSBpbiB0aGUgaHlw
ZXJ2aXNvcg0Kc3ViLWRpcmVjdG9yeS4NCg0KVGhhbmtzDQpCZXJ0cmFuZA0KDQo+IA0KPiBKYW4N
Cg0K


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:19:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:19:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225430.1531936 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpS6k-0004md-MX; Mon, 09 Feb 2026 14:19:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225430.1531936; Mon, 09 Feb 2026 14: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 1vpS6k-0004mV-JS; Mon, 09 Feb 2026 14:19:22 +0000
Received: by outflank-mailman (input) for mailman id 1225430;
 Mon, 09 Feb 2026 14:19: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpS6j-0004TX-Iw
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:19:21 +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 52ec2749-05c2-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:19:20 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-4359a16a400so4268431f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:19:19 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376accfc58sm12083437f8f.16.2026.02.09.06.19.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 06:19:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 52ec2749-05c2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770646759; x=1771251559; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SyHH6FsI9v902kl0sVA1FWIQqURFpxWXf1yAeuXN12U=;
        b=ERcH3DStGvHlASKk/UMsF717NdQi/tWA1zHQySRFf4qq3xDmZhVBWcJZWSlCsgaHDN
         9Q4jzJorUYFM1gSSfcSAs0foj2Y/wdRhwuIwbBKbAF1xIAEZUhYO3ER83tg/GNJ26d8h
         KVwMZ3c00MYGwGHz9HIEnPEivkY2nlTEbzP/MFDdDHt8evY52nXVYdpvUeXYcjOckyCD
         bQuxItKVTUSZa1y6DcIX1k+la/tyFRQcHxVEXUxHcF835+ZdO9Uu7UqiUD6GhfrIXT1H
         M/2g9A6XBF68DsCdhLWeHsJcrEKQESituzx4xm+uJt0gYvTe5D0Qj2g65dPwXpGAjBqk
         V3Wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770646759; x=1771251559;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SyHH6FsI9v902kl0sVA1FWIQqURFpxWXf1yAeuXN12U=;
        b=ghGoGcs4nEI5tld7/FLWB4CjFOiBCIPP6MZqEqsbfUKnqLLyvL4gTNnWk6Am5hdgCf
         zVU68YaTHh/yUTw4Vrx6F/iVI7oHlZCxQhQeYRt1b0271IBTfBjSCcm83i3xcx45oi8k
         UYgK6PzSvkGuDwT0gSKA2SncYr3cFNIQrk25liYrTbDSFTJ+FkvQfDaZMJiYS4o+Wmvx
         BDBf1Y2oXGxF896kZJuqw2CCB0z3BR4dYnZ1V3Q7qEM92ULWrZ0nT2dGnyaLU2J8sYIv
         GVp8/GKmBqu5xEJezo0saprWQk/tvWy6EQ5br3vLqbp9cAnNqm19I2UsvbNX+pt3S0aC
         mC0A==
X-Forwarded-Encrypted: i=1; AJvYcCX4pQpuTNGEqDHGSaGVSZU/GWcBKqLDLAkEfuhOV90P3SGr73n7h1CVZTIwkWCSD0zf0Lyp7Pj/+XQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAHRekry1CIBr1Wi6mdS/e7c67FLfrrvs1xq2awK3ILMCX1Ud/
	zQV4BwmcBRm0fK4gE19QUx80kTTWovgQW67mYX1RJHW7ME2u05CtMPpem3v7Z6UTlLysEx8Raix
	hLdM=
X-Gm-Gg: AZuq6aLqqpS+ScxxaMF1vXP4CMa1rF4aZj4imJ1KFcCJH7FmfGIIXMJro2Jo3SEX24u
	8Jc9/bAO2mChNwG1gSRaZoPl+AfE9OIq18cOtcxKkgzgPpPgtZiXL5lto4k1F1e7mM3nOyTaks8
	yv6m8KK0AnVJu/HfQNbSgQa164JPivdSTiUKb0v4zm6aehfU0ZC+mgpausun4YYO37l4gahUx3u
	BrUDmvu4G6U0CC36qxFkjrENo0dB6e0Qg4w8IR+K5MkFBjMh0OBY0THJK6hPSE7fuGVObUsvFGa
	+XrktG/K12fW6kAz+0D88CDUEwfBZVxWoTCPPxC/vI3CnJyQuMyz5ox6eBfcBYHxC2po+bI6M6W
	J5ozs9y5r4S8y5HHgniKA4nHdAIEJDDu0edh1Q+IjaaGtTl9WevL4ySwocpW9j+cRwVs249quej
	Ur1r7KxTg+cH0QSWKbWo5t6m5iZsQ81Z+UOWhNyFjTTU1/sFiXMiTadKF+pPNGCFx+XVCJ9PFPB
	6XwFn5yB+0mMA==
X-Received: by 2002:a05:6000:2307:b0:435:a9c9:159 with SMTP id ffacd0b85a97d-436293411e4mr17351430f8f.18.1770646759237;
        Mon, 09 Feb 2026 06:19:19 -0800 (PST)
Message-ID: <7064136b-38f1-4bbe-9ff4-14774c88f016@suse.com>
Date: Mon, 9 Feb 2026 15:19:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6] xenpm: Add get-intel-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <489a4decf4367a9983a63fb4987d8c5f6267ed9f.1770632848.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: <489a4decf4367a9983a63fb4987d8c5f6267ed9f.1770632848.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 11:31, Teddy Astie wrote:
> @@ -93,6 +96,7 @@ void show_help(void)
>              "                                           units default to \"us\" if unspecified.\n"
>              "                                           truncates un-representable values.\n"
>              "                                           0 lets the hardware decide.\n"
> +            " get-intel-temp        [cpuid]       get Intel CPU temperature of <cpuid> or all\n"

Sorry, thinking about it only now: Do we really want to build in the vendor
name to a command? "get-temp" would allow for adding an AMD implementation
later on?

> @@ -1354,6 +1358,131 @@ void enable_turbo_mode(int argc, char *argv[])
>                  errno, strerror(errno));
>  }
>  
> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *temp)
> +{
> +    xc_resource_entry_t entries[] = {
> +        { .idx = package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STATUS },
> +        { .idx = MSR_TEMPERATURE_TARGET },
> +    };
> +    struct xc_resource_op ops = {
> +        .cpu = cpu,
> +        .entries = entries,
> +        .nr_entries = ARRAY_SIZE(entries),
> +    };
> +    int tjmax;
> +
> +    int ret = xc_resource_op(xch, 1, &ops);
> +
> +    switch ( ret )
> +    {
> +    case -1:
> +        /* xc_resource_op returns -1 in out of memory scenarios */
> +        errno = -ENOMEM;

And xc_resource_op() doesn't itself set / inherit a properly set errno?
We don't want to override what the C library may have set.

> +        return -1;
> +
> +    case 0:
> +        /* This CPU isn't online or can't query this MSR */
> +        errno = -ENODATA;
> +        return -1;

Here we "synthesize" an error, so errno indeed needs setting. However,
doesn't errno want setting to positive E... values?

> +    case 1:
> +    {
> +        /*
> +         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's 100
> +         * which is correct aside a few selected Atom CPUs. Check Linux
> +         * kernel's coretemp.c for more information.
> +         */
> +        static bool has_reported_once = false;
> +
> +        if ( !has_reported_once )
> +        {
> +            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assume "
> +                            "tjmax = 100, readings may be incorrect.\n");
> +            has_reported_once = true;
> +        }
> +
> +        tjmax = 100;
> +        break;
> +    }
> +
> +    case 2:
> +        tjmax = (entries[1].val >> 16) & 0xff;
> +        break;
> +
> +    default:
> +        if ( ret > 0 )
> +        {
> +            fprintf(stderr, "Got unexpected xc_resource_op return value: %d", ret);
> +            errno = -EINVAL;
> +        }
> +        else
> +            errno = ret;

Why would this be? How do you know "ret" holds a value suitable for putting
in errno?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:19:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:19:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225432.1531946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpS6l-00050l-Tr; Mon, 09 Feb 2026 14:19:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225432.1531946; Mon, 09 Feb 2026 14:19: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 1vpS6l-00050d-RG; Mon, 09 Feb 2026 14:19:23 +0000
Received: by outflank-mailman (input) for mailman id 1225432;
 Mon, 09 Feb 2026 14: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpS6k-0004lv-EB
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:19:22 +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 53c8e3d4-05c2-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:19:21 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-435a11957f6so3487034f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:19:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376accfc58sm12083437f8f.16.2026.02.09.06.19.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 06:19:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53c8e3d4-05c2-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770646761; x=1771251561; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SyHH6FsI9v902kl0sVA1FWIQqURFpxWXf1yAeuXN12U=;
        b=eiVN5ZI//TCXLELnOWjUknf2umZaUDlY+HQ0sTcJ4N9GlZO1RkUUhltD6XJzFfs87G
         prKH+o85AsH+UDhlC5xhR5CxmttjqPR8Qktx1Wn/bk0txHS/GWNOYy5T/3Bx77Cj7XYC
         orHEQE39eLb+RZ10Np/hqbhudxepj/Vd3xdz2KZq8cwTWPlSj7G6x5/tWMKVFBgJ6EGD
         6atKDoObZLUaz72toemDFKkfcsrkj5K0yvzuf8KiepSQQh7tNkPxbfz62mq3xS2/4IDg
         bumAV9EN/OZ8lc+NkrrKaHgxiVk1dbO0x4P4fgyuqEGpV87iUW3OBexTUxuuN66fnbia
         OL7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770646761; x=1771251561;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SyHH6FsI9v902kl0sVA1FWIQqURFpxWXf1yAeuXN12U=;
        b=TNFMBO1yL8qQh4kBcmWOqP5rQSF9ZUBN5YDGSbHVj8WMxv0ILCI7zH9EmZftgyK+jV
         gjB4wFOLpGDDJ9kRr5SOso2dozgsVfkNAQhmXLjcMFIyFenuSN8Ka2cUjwLpnA5zDHQq
         Z00nQeqe85ArT5/uHJZJrh4OlimIgqLhH6DFDoKFQNeBjTiJRfeN0UEST5/VLNIfz9CL
         N4iJfMLQKCYI/PwyNvRty6faZxvGl95x1Ce5mHJB4bJBvsCXe1Sr7VBrYL59Yais1++v
         9bLNRYeoszj3wFgBMvh3LQOFmFYvlSgIinKfy+tEJZiK+mHJ7fj5oetne6THoGldAS0x
         SO9Q==
X-Forwarded-Encrypted: i=1; AJvYcCWTyV504ygp3JxV3oLoJq5YXEw/kxp2/hO9mrnctNqZttBMpO5ofbvgeoznyjPGlriJYBKfwOWBDMM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz1uA+1nIQCtB8OzXpa9aOgxM0YXHaQoBa6Afp7osZLcqjg1ygV
	bqULbfEC5/1D00eAZcg8y1AeeZUFpQSpOhGtgx7K0JJv0LZvPTz7s/gTW+tUgHJ7Cv6LZWSiTu6
	WCAE=
X-Gm-Gg: AZuq6aJOCe4WUExlnd2RK8eqTnZ/4ObMzksRRrZJRAmUUbTjN0ig5RuCR+hnBj+jUYV
	wQHY1NVQJ+8PUrtmqweqJs3/1hGuWkHBwbGTx47MrZ3/eaCFdRFvktH9xPaSsPaMIQOdUN/EZZF
	b/jUTStA7FFLrvfgU/XHVyGjLRbD+2RJaV0a5EbBkyYh4K3eX7nN61VYdncmTM4TKJ7srHjKFZp
	BsupWxGPeNHpzdKPkUblqjDSxFiqmStlo9z6xbZLPnO1catiNZpfUJs0rYY6o55N8eRdM+MQptg
	gQjJfnjD0cve776QzYtbwy2E106SekN8xivm/HXbz82zd/qTr95MuZIBwVzZ/Mx5ttZPFyoZzIp
	pL14z1kSKtVKD/9eF5D8ERcOsy4dV2/8M/P/U0WIfxL3eAYYJM7Wh2f4MP0deknPrREfjni6lQy
	5QeALvV14g+4XrQZaLyDUFcJBzf+WDyw+CXpcDIQWOvvCEKBxaygkBsLYFapIfBq5Hf+zalt5kX
	Fw=
X-Received: by 2002:a05:600c:4748:b0:480:1d0b:2d32 with SMTP id 5b1f17b1804b1-483201e4947mr172029005e9.12.1770646760685;
        Mon, 09 Feb 2026 06:19:20 -0800 (PST)
Message-ID: <e1a99aa3-2fe8-4178-8602-ffcaeffcdb59@suse.com>
Date: Mon, 9 Feb 2026 15:19:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6] xenpm: Add get-intel-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <489a4decf4367a9983a63fb4987d8c5f6267ed9f.1770632848.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: <489a4decf4367a9983a63fb4987d8c5f6267ed9f.1770632848.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 11:31, Teddy Astie wrote:
> @@ -93,6 +96,7 @@ void show_help(void)
>              "                                           units default to \"us\" if unspecified.\n"
>              "                                           truncates un-representable values.\n"
>              "                                           0 lets the hardware decide.\n"
> +            " get-intel-temp        [cpuid]       get Intel CPU temperature of <cpuid> or all\n"

Sorry, thinking about it only now: Do we really want to build in the vendor
name to a command? "get-temp" would allow for adding an AMD implementation
later on?

> @@ -1354,6 +1358,131 @@ void enable_turbo_mode(int argc, char *argv[])
>                  errno, strerror(errno));
>  }
>  
> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *temp)
> +{
> +    xc_resource_entry_t entries[] = {
> +        { .idx = package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STATUS },
> +        { .idx = MSR_TEMPERATURE_TARGET },
> +    };
> +    struct xc_resource_op ops = {
> +        .cpu = cpu,
> +        .entries = entries,
> +        .nr_entries = ARRAY_SIZE(entries),
> +    };
> +    int tjmax;
> +
> +    int ret = xc_resource_op(xch, 1, &ops);
> +
> +    switch ( ret )
> +    {
> +    case -1:
> +        /* xc_resource_op returns -1 in out of memory scenarios */
> +        errno = -ENOMEM;

And xc_resource_op() doesn't itself set / inherit a properly set errno?
We don't want to override what the C library may have set.

> +        return -1;
> +
> +    case 0:
> +        /* This CPU isn't online or can't query this MSR */
> +        errno = -ENODATA;
> +        return -1;

Here we "synthesize" an error, so errno indeed needs setting. However,
doesn't errno want setting to positive E... values?

> +    case 1:
> +    {
> +        /*
> +         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's 100
> +         * which is correct aside a few selected Atom CPUs. Check Linux
> +         * kernel's coretemp.c for more information.
> +         */
> +        static bool has_reported_once = false;
> +
> +        if ( !has_reported_once )
> +        {
> +            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assume "
> +                            "tjmax = 100, readings may be incorrect.\n");
> +            has_reported_once = true;
> +        }
> +
> +        tjmax = 100;
> +        break;
> +    }
> +
> +    case 2:
> +        tjmax = (entries[1].val >> 16) & 0xff;
> +        break;
> +
> +    default:
> +        if ( ret > 0 )
> +        {
> +            fprintf(stderr, "Got unexpected xc_resource_op return value: %d", ret);
> +            errno = -EINVAL;
> +        }
> +        else
> +            errno = ret;

Why would this be? How do you know "ret" holds a value suitable for putting
in errno?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:23:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:23:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225454.1531956 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSB8-00072x-JM; Mon, 09 Feb 2026 14:23:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225454.1531956; Mon, 09 Feb 2026 14:23:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSB8-00072q-G2; Mon, 09 Feb 2026 14:23:54 +0000
Received: by outflank-mailman (input) for mailman id 1225454;
 Mon, 09 Feb 2026 14:23: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpSB6-00072k-MV
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:23:52 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f45e898a-05c2-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:23:51 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS2PR03MB8160.namprd03.prod.outlook.com (2603:10b6:8:27d::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Mon, 9 Feb
 2026 14:23:48 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 14:23: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: f45e898a-05c2-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D5XUzoYEd0Ngu0pirpdHJJizLUzpvX0FmZM5Q+9zexS/jeU2e2wug/f8kM32zXKKSw/dAiNZ8YKCaKnW9414YBHE+N6HqXl5yGzAoUANprPASAQy0I+misf1BlUHFqnt4BP9Z0yhvHVz5pf1bXVwXxFH2z44veyEZsxYH4llbfIwQ/PmuPxUWQAr2ReNPJy8yLH7S5tC7D3BR9tUwEEnb2thbkHjEoqVKJBRkNC9B48DqejMU2oQuOfxAijNssPrejP2RqW/sA0zPugbhC+pOaEORpAdQvhMI7/2sHlq90xe8kSPCJ5OeDmgbmtmqSzstM3R1VIPEwsnzrixoiLVzg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xDLOQZu1BZE5A+JIJb3+whYaBA/ZW/ig7mAIpIGC4Pw=;
 b=rJA3YpBdrXQgS7uK5ddnsyE4OBr+jjjdEcmWubeF/WXXs0pFYbeC+WmCadhQXLBUVsxj+w74uUp7HZK5AITE728VtSrdhhSD6wBL815in/Q8fXeqauoVGWWqhJZRuuTJIVejdqK5VMh9L8+VgH0gYs7jrpjnMuauQjysGmklkVRSX0pN4KORYL2D/A08DXGPtyFn+yUHho9m5XyZ2Qv2pHUi5YeDR/RA2YsYPgBrEmuwyAItnUAHgkF51h+/xsNlKAy9Skq/KCxCAyzSxNnio423ZomUwJ0ZKv5NP8VP2A95GG+QpUPQrUo4MY5bn2zOwMAynLKuXz/weNFoveOikw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xDLOQZu1BZE5A+JIJb3+whYaBA/ZW/ig7mAIpIGC4Pw=;
 b=BZyNp62ZFhZjP+8XAcAeMiYiDW7FrM/ag7MHsmxBb3Z6Ky+HRmDWdqW6x90UU9lq5n9DkcaDZKJMLknqSyXtIAlxfY9ymVhxmr0RM1KceoSJvAigA1uUDLBNkdu1KFJzWR/sqKHR0eYj6yATjHZuRay5sBJHx4Fh+MH/ksBLq+s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 15:23:45 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.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>
Subject: Re: [PATCH v5] xen: Add Darwin.mk
Message-ID: <aYnt8WtmjkBn-t-l@Mac.lan>
References: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <aYngg_ym18d0G-fX@Mac.lan>
 <28A169D0-4454-4D60-B811-72FE377A4318@arm.com>
 <aYnjjHlbaYjr2VqV@Mac.lan>
 <6B8E025C-3235-4289-948A-B26992D0C4C2@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <6B8E025C-3235-4289-948A-B26992D0C4C2@arm.com>
X-ClientProxiedBy: MA4P292CA0001.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::20) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS2PR03MB8160:EE_
X-MS-Office365-Filtering-Correlation-Id: 0911f657-0be0-4f03-331d-08de67e6d715
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UVdjN1EyVnd6OHRyZWJYckxHUFVnYzIxRnlpMjJlNk8rK0MrQkYwZVk2czQr?=
 =?utf-8?B?bUtXY3czdXBnMC83RkJXOEZHSlFQT3pNSVpoU2M3VE5BczE0Sks4VG5uRFZK?=
 =?utf-8?B?RnI0ZUpQS2RKbTBoNVFMY3VnVWlVL0F5NGNTd0JXQ1ZHSE1xNjhRbm1ldXlr?=
 =?utf-8?B?bURWMTdEdzZ2SkkyU2xtaDYvU2NYMEgzM2o0d2I2b2FIQkdXMmhxSlpQYWpa?=
 =?utf-8?B?VmZPS0hJM1pHWUhydFpuajcrOEpMdkRtdlo1YnQ3NVAvVFBwWFVPbHlLVktz?=
 =?utf-8?B?QkdkODBJMkxFLzI5bHZPNjZXTmFBWU8ySmVxMGpXZHRVU2o4OGJNY2dLOVlL?=
 =?utf-8?B?Y1dnNi9LSlo2VEFDTGd4WjVLbS9wdWRUd0FFNFdmeHU0SHU5eXpEZFBPZVIx?=
 =?utf-8?B?YXlVSXhiVWtReUUrcVQ1UDJ6UUtJaVJ2clFaZ3hJdmlwWSs5b2NJSjVvV3ly?=
 =?utf-8?B?cU01RGlsWk9leFRZeng0T2s3NjR0bzdXcnE4Q3V6TllDWUxxR29lRmNXUUVB?=
 =?utf-8?B?QkZCZ1RoVjNyK2U5OG9PTFRFUjRBL3Vha1R5eVhkWXFmczRpUWpZcWE2YlF3?=
 =?utf-8?B?dnR0TXV5aU9CSVdQREFkbkZQRy9TYkVFQXhzcUhoZTdHbTlEU0FNY1dycjZL?=
 =?utf-8?B?ZkM1OXhRdnZDV0tEazY0WWQ2d0xHZHAxV2hoell3VituYjlZRFloeDlCRWpx?=
 =?utf-8?B?Z2xiZFRsRFdoOUlvUjExdWw2Nk4yQ3JZL2JOREpNZ2VINUozaWd1cktnN0pz?=
 =?utf-8?B?UFBOallYdDJEZ0JPa3Iyd0tZSzRqM3pEL1UxaUJrbVJUclBoL2VIcld2T1o1?=
 =?utf-8?B?RXNCRGlOdzloZGttNWlPOTUrNXJTRG1lcjNkYUlzMVlYN1FLTVpqUWx1YXNl?=
 =?utf-8?B?ZjVvWTdNcU10bHlBMFQ2QmRDZGp0QUJGeFRvenpPQ2RYaFAxYTZhZDJsVUg0?=
 =?utf-8?B?TVMrMWlHSHFkUFZwbkF0RUI1QkpPTUQ5TUcva0FRYnIzRmJWN0R4NU5xbFNY?=
 =?utf-8?B?eXJpV0hpQlgwN1M1eW1UeTg3d1RMWXBwTWlBSjdzTjJEdmpQMUtrQTNYZHdy?=
 =?utf-8?B?U1BSdFB5UXdvRXhZZ1Z4TWFldzBRUnZFQXc3T3E2bGpySXFmdTJzWlg1cnht?=
 =?utf-8?B?V0pDSXU2NWQvOFIyMjJ5eXpnOWRxU01sVWtYbUI1b29iS3BRekhHb3ZITDQx?=
 =?utf-8?B?TzRzS0hycDBTeUgwcVBHR1VaRFVSa0pPUys0TDI5U3dQWmZpUkNhSkFsM0R4?=
 =?utf-8?B?SHVpalB0T0U5Vi9qY2xtNTU4bGRXMHh6OGd0ckQ2Q1pHMnRwUE1NaTRqRlgx?=
 =?utf-8?B?a3FGT1RDUFpJQWhBeGhjeTAzMkxuVCtxZ2FDa2s1Rklqd3R5cHFuNk1SbVEr?=
 =?utf-8?B?bjhhUTZRdXpsM1Z0MGJwK0dFVFlhNWVSQXpSUklVSGFQRXVHd3o4VTRHQWU1?=
 =?utf-8?B?elp6UHVIank5UVhkVWVjdEg3bEhBYldzaWlJRkFIYkpQNUVQQkVRTkRScDBX?=
 =?utf-8?B?eUZmbU53RkpqQjJmZnhkTnovNTFzSzJXTUNtbHU5QkdTeFlLTnVnUTNoa0tS?=
 =?utf-8?B?YnNXQXVvYVVkdU5oQmtlYmRDVzh2UFhyM0hKbjBFcGZ6amdTRnR2OFA5eHp2?=
 =?utf-8?B?YzVmUHZhcE44UDdUYlIrb2VDdy9ibWFLelV5Q0ZOb2JHME9oaGlYcmNZY05H?=
 =?utf-8?B?UThoNVhlSGU5ejRnVTJ1ZTM3MTFteVlkOER2MDhsamU5MDRZME9EMnh3UUtl?=
 =?utf-8?B?RUtGWHJoWlY2KzFnQlNvOXNtRmZFMTlMUzZMVS9oVldWeWJRM3hwbEc3Qzl2?=
 =?utf-8?B?OHcyeHNPRmZ3alFYSTF0TG5JM01TejBhakxiOVgxR1ZXdHZJcE0yR081VHpT?=
 =?utf-8?B?ZlM3Mlk2dVZtSUx0UG1PL2JlSUxLNmJYYVpCRXdjM0Rqckw0ZGFsOVlVYUdG?=
 =?utf-8?B?eW9lNU1odHh5cUx1TzRwZGN5cEFBR3Eya3BGQlpjcE81WUl6M0Q4VmVtUWsr?=
 =?utf-8?B?Y2luN3M2T1QxUTRBVjA0cWp3dExYMzU2OHlMRDJzTTRRU1A0MWZEb3ZraTky?=
 =?utf-8?B?ZGFQaDRkRWFieU9JNUFpc3NjN0pyb29vNzladUpaV0NFRUlzYy85cURiTmVB?=
 =?utf-8?Q?gkAw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NVQ5emNPdG9NWWxuMU16Q2VYK2hVOW0rTGlMM3M0THgrZXRIREFVOFczajRr?=
 =?utf-8?B?OTcxR2xyaEd5dmZvRStoVzVSQ0J1SUFiaVVITk9CUkNWUzM4TTNTYXNjSE1w?=
 =?utf-8?B?cWFnaHo1NW9BT1YvaGZMcVdZL2JSNkVUWXNZQUg1V2xEb0lYM3lJVDczSzhi?=
 =?utf-8?B?UjQ2RGFJWUhxUTB3TDhqYnU2MzdxcHFVQTNWa3pZeVJnWjEreXdFTFRFNmlG?=
 =?utf-8?B?TVg2YWd5NGo2bXV3U3JoOWFDeGxSTDNZZEx4SkFmZlhhODUvMmM4UE8zazM1?=
 =?utf-8?B?Z1M2dG1Uem1jY0kvVVFLRkNxOXRJTFUxZnNUanl0SWF4UzVpN2VxeEJ1U1VQ?=
 =?utf-8?B?U1JFUmxQRjZwdXhPVjJSZFRkMFIycFZxN1ZnN0RjNWNDL0orMmoyQTFZdXlS?=
 =?utf-8?B?YzNkYm14OWRDNWtjcUpVTXZVbVNpTEl6eDZzSlAwbkd1UFFJTEYrMXZqK1E5?=
 =?utf-8?B?aldUWDhQQzIzTGdMeGx2V1dXSW12bmRiemFuVyt4ekptU2svUUdEREVoQTNj?=
 =?utf-8?B?Q1ZzV3hGUjVGOVhIQnpaMFpHTnQxWTZQbGMrRDFpeTVDZ0t6WStGVjh6bUtB?=
 =?utf-8?B?K2VTc3owcUMrd2ExbXVmTjFERTRuOEtvRUE5NWdBQW9GKytPYW90QjZPT0p1?=
 =?utf-8?B?QkFVaVQyTXdlbjdqRHBMdWlyUUNYeWZIbjNpbWNDeDlxWVBURlVRdHY4N2J2?=
 =?utf-8?B?a3Nkb2lqNUplTUxIZEZNV0lIZ1V6SzdrcHpxaCttRGFHRkNnV1FOanBnZmZI?=
 =?utf-8?B?cU9FSjJpYm1RcnVIaEs5MkIvYXA3N3VJdm9qWW9xNGlQbVJOMDZ6bE1KWTJi?=
 =?utf-8?B?KzhJTTFJOGxoOTdYK2Q1ejVKQUxvSk1uVVBzS1pJcXNtSTdEcUFTdjdaeEc4?=
 =?utf-8?B?bG1DdnlZemNxa0w0ZlN1QTdHdDliOTR3VS8xc2lnVlM2aERnazhGaDllVjFV?=
 =?utf-8?B?S3ExOTZqc2ZhcC9wUUNJQmJ5dnlhUmx4ZWJTTWR2NllyUkdKYzdFdzRSYkpn?=
 =?utf-8?B?dk9wSVo2Smg1dUlLQ0ZQSWRyVTRRU1h2dDVnS0FkajhITWEyWnQreUgwQnlZ?=
 =?utf-8?B?UDFaUVN3RVg4VTNjalRRSW1aL2xSbmdRSlRVbWpJRXNWQkc0UFB3Z2xTcDI1?=
 =?utf-8?B?UWt3MTZJdlJwQmVCZEt2WkFaK0xlWHFTamJUZ0h3QURBWmZ6bEdzcE9CQ01l?=
 =?utf-8?B?bG5ucTF2L2FBdk5EMkZISmthLzg0UmoyRCt1cm0zM2dpTmNma284WFZQRjBV?=
 =?utf-8?B?allBS1cyUHlKcHB1QjFTam4wUzc5SS85dUdsU1l0QzA0NDNjWlBsWEtaNjRJ?=
 =?utf-8?B?SEIvRFA3YSt0L3NvUlFaR1hLbXpxeFRTQWRveisraEtzbWhjVnVjQ2Z0Uld3?=
 =?utf-8?B?dSt1MVdSc01raUF0NS9LZFYxek5PUWxLMUgxbThQSUVlZjZuME1sdGRVR1ZY?=
 =?utf-8?B?UWhzS3QrOXJpVFNvVGZzZ0F4UnNQdStEWHJBbDlndXVveEhzQjBDTVN2d2Ro?=
 =?utf-8?B?cUNsSHkxOHhmMWV1OTVzWkF6dS9DSzRpWEwzWWVuRkVDUlhQQXdSOXVOVWJD?=
 =?utf-8?B?cFcvRStWblRFMXgreWhNOXBSSzJUbUFlVmZWeXcxSHVlYWJmekpaTTMrVkV2?=
 =?utf-8?B?UlVnc1V5cGgxaFhMWndRSEdoVFRkOVBsWUlxUkkxL0NPRVJYS0pLeFRsS2Fh?=
 =?utf-8?B?cE1BQ1Qwaldmcml2NmdoRTM1MGJtMEFCeFdtSjIvNTZKUVRtRTY1TVFzcGRJ?=
 =?utf-8?B?eFhwS015b0ZLalE3dGZIRUplcjhkUWs5MFZWZnhJUW81dzE5S3FRbEJ2YXEr?=
 =?utf-8?B?c3FqdmNiNzJ2M29la0M3MzZ2SHNoNitQbkNBcUxGelExOVV6VUJ3SjZJWmdD?=
 =?utf-8?B?TjludVVLdDRGMlFJaEtSTC9uY0Q0azBDbTJ0VTl2UVBKRk1JWDF3d0F6TVRr?=
 =?utf-8?B?NjJzRlZ2cFh1MlR5amNQMWEwUlBRYVZ4cklQTDg5SHNJRGNaU0pYek1NNGJs?=
 =?utf-8?B?ZitaZDRnQzdqSWY0WTNFazRSK3hUY05PdUlnL2JLVWsvOWdVMzNFUlhicGNW?=
 =?utf-8?B?eGJQTUg3S05EdkZZOE5YTEJTREU0UFVpRHdjMTFyWERvb0RmWDVzeE84a2h4?=
 =?utf-8?B?Y0RobmVYbmRBcVNTazVzaTgwemJhdGhyUHpwRmxFbUVnOUJtdEE3T01pS1N3?=
 =?utf-8?B?YlhvUDZNWTFndVBxMFUzZFc3TCtJMmZ1WkJvaUFYV2JvNW83UG42UGpOQytl?=
 =?utf-8?B?aTdBSTQrZDhyZGlIK0NHN0txeDc4eWwvUzBwUnVEODFOUXJRMHAvM0xVYy92?=
 =?utf-8?B?S0NXMENFK3FlQW9ieFlkUEQyNDdHRi9KdnR5TG1CTmVpVUdIaCtOZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0911f657-0be0-4f03-331d-08de67e6d715
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:23:48.5254
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: gl5wwBmj8DrzWQiGmUYI1FMLijPyzXZHu8LUeE0JQkqOClxdb/BX6AQtPJSwNukkUqgU876Dzz7Otb7UidIFbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR03MB8160

On Mon, Feb 09, 2026 at 01:42:05PM +0000, Bertrand Marquis wrote:
> 
> 
> > On 9 Feb 2026, at 14:39, Roger Pau Monné <roger.pau@citrix.com> wrote:
> > 
> > On Mon, Feb 09, 2026 at 01:33:13PM +0000, Bertrand Marquis wrote:
> >> Hi Roger
> >> 
> >>> On 9 Feb 2026, at 14:26, Roger Pau Monné <roger.pau@citrix.com> wrote:
> >>> 
> >>> On Mon, Feb 09, 2026 at 11:46:44AM +0100, Bertrand Marquis wrote:
> >>>> Xen does not provide a Darwin build configuration useable on Mac OS.
> >>>> It is possible to build Xen Hypervisor (tools are not supported) with a
> >>>> toolchain able to produce ELF binaries (GCC or others).
> >>>> 
> >>>> Add config/Darwin.mk to include StdGNU.mk and force
> >>>> XEN_COMPILE_ARCH=unknown, ensuring Darwin builds always follow
> >>>> the cross-compile path so compiling on Mac OS is always handled as a
> >>>> cross compilation case.
> >>>> 
> >>>> Only compiling the hypervisor has been tested !
> >>>> 
> >>>> An example of how to build the hypervisor for arm64 on Mac OS
> >>>> (tools cannot be build for now) using a compiler from brew:
> >>>> - brew install aarch64-elf-gcc aarch64-elf-binutils
> >>>> - make XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-elf- HOSTCC=clang
> >>> 
> >>> This needs 'xen' target passed.
> >> 
> >> Without any target, xen is built by default so i kept the simplest possible command
> >> But I am ok with adding xen
> > 
> > With the `cd xen` omitted, won't that also attempt to build the tools
> > then?
> 
> This is supposed to be called in the xen sub-directory not in the main directory.
> 
> Now i get why you wanted the xen (and hence why there was the cd xen before)
> 
> Maybe having -C xen would be a better idea, building from main Makefile could
> bring other side effects i guess.

I don't have a strong opinion, both -C xen or xen seem to work for me.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:25:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:25:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225462.1531966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSCB-0007Ys-T0; Mon, 09 Feb 2026 14:24:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225462.1531966; Mon, 09 Feb 2026 14: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 1vpSCB-0007Yl-Pk; Mon, 09 Feb 2026 14:24:59 +0000
Received: by outflank-mailman (input) for mailman id 1225462;
 Mon, 09 Feb 2026 14: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=8Y/H=AN=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vpSCA-0007Yd-HA
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:24:58 +0000
Received: from mail-oi1-x229.google.com (mail-oi1-x229.google.com
 [2607:f8b0:4864:20::229])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18f78b53-05c3-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:24:52 +0100 (CET)
Received: by mail-oi1-x229.google.com with SMTP id
 5614622812f47-45f126d47b8so1985101b6e.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:24:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18f78b53-05c3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770647091; cv=none;
        d=google.com; s=arc-20240605;
        b=SNlOEs9l884q8jDn6zvMkEVdKxkSn/QKqbyCHxtd/4jlvlpHJV9YzkeSHvHpuLzED4
         kYlQqojVPOGdS6ACxlCk8SZvYHv8FOyEocc4KddeXfke8WFrAS3vqEAUOrlAV2kZtIe4
         2aPwiRa12ZOsLM0YZ3u+NONsol+WgnWPyzP8lMTM81ueWJNlxiA+VPuqckNAkGByYzrg
         j8y5PCOsFvjvOVQet1+3v1dk8E0ITgEn80+DzT4KjO98tLIWfGZ2pYcEwP07drXyO/1L
         ++1/TX9OM9XHwmvKcndvj9P6t9SaeBysXpMmIEt8FfL8StaIEGc5thxmwKwOsVFi7Qzn
         GjQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=OR3MJ1p16CrcUYxK9iWZWDF0oa/huSemMt4e/B8BbsY=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=c0jqvRyDKUiAqlCf6T6pVTaTdndC21oTrMQ1MtOABhOVG5zDjdMvIGtHMhYFB+V8W7
         63XjuXhpclw+vXg2+A/tS6PaiyYFi3Ya7SyKyD/ZZlupQpZACusHEQUWw538Xtx/AIwK
         WhkN8TqL+HqfmgnViAm02H1VBuP+VNymRfBoPTq+GMPzcfUndHMt1j14JXF8j7jRZdhE
         LwkGlEi4a1Ep7hNpECg6bLHEwB+S305cslp8cW3FCduOoWbns43/TAAQc7BY/2Adkva/
         GbD0rWlZNgvjJ8OuCKZLI1G2PK9vME3QrBGtkTAHaWzuH98GC9mtcyUk4wnlNVIPAtUU
         4k4g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770647091; x=1771251891; 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=OR3MJ1p16CrcUYxK9iWZWDF0oa/huSemMt4e/B8BbsY=;
        b=TNO1IpnX2oSL/JQhUOiB60PeYvE0PC+4lzJptZbV9RojykDq9UUYdbuV47nhAaeGwd
         XTBa3WU1zhIlicO04e6h1fEPQMke7x8sMu/WI1i/SCaNKWpVKZnAR4+j3Cj8iv9cCD82
         S5yvd0ijnBDfVi0cQLIRoFYckBBJkFGDt9eK5wPy8vcCpzbpEvcp/eB3xPC/ZJcu5FXd
         gJZMEGEIwrkrNqrHbKeVrjWGCmg1KfyrWXMEwe4huv8wuq/i+M0M5srWwhY7vjSXqKYX
         Lynev+iXJEgpJ2y6oqFWbSWQS0x0OmpupwK8+EVL7rLqi7Bufv2oW0u60zqEL2C61kc9
         KO4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770647091; x=1771251891;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=OR3MJ1p16CrcUYxK9iWZWDF0oa/huSemMt4e/B8BbsY=;
        b=IAhIj5/Lrib/5SEB4NNoE30lcVnJMbd85pNcj+DEffNBZJshiRh4Z1SeLNlPFbXbJe
         vslKkXs/ppeLSGxHGTooiozwt1xXFiBLcLROzw4aM67Ow7Do3e5KM5Bbqk23VWuwvHae
         +vx+Xq8BSEHtsjFvun8jRWl+1UbvhyniKTL58Z9EYBnTyb//FdnMbNkIZcj5XGEOhX8D
         27va8KyKwEa6pXVGJZzhUpCbEszb2LdI3DyJJdRiSteOznLs6zgrWZyfJMAQJoNuTaRj
         uUW+Vyk/s9EMxZrv/cifCfrL/GO8ZQKu2XCMBljYrQKUwiRsmOFR82WVV6lu9nUmBvLN
         22cQ==
X-Gm-Message-State: AOJu0YwvyWnAiksviakn8SX3JOrUYU/MbqMMIh8nmFdauZmUAfdjd1EU
	0ecTyvkI0K4wpxbgBNlyC/IaEJhe7xDTq7n5rw3I+CjsVzYcm4DrIt2RwQfqu7rEf2aY6OOAbH3
	Bnj7b2mp09XGgz+fHCo+CF018hGaA+q5uJqCkHrGw3Q==
X-Gm-Gg: AZuq6aLn+UsKsvgT4Ma6VkzcPjw1RJ9bSgG4MbO6vFHrhZbS+19zH0auBOtZlwTa2pp
	ppcunsULKext2oPsPZBJIva/qe/v/hstqtelA2IWeLbLirZkUiqzIiwfbfNlLtimN7llBaQ7ocu
	YJXwEr8o2GW9aShM/sWZPRDfnYbsk05FVc1tgGzUHPirPBbgOcoDpZ7mRu63dIIDXM3LJhNjUwA
	gRRThUtOUrvUJngH+HXTs4Ugg28uGSi5AcGtBW+81ZPF4mluV84WfG0fULxA3gYXV50HfcjMKxo
	oB+PcFSXrhAzdeI9LsRxNjWpPU7eDdVFfjV2
X-Received: by 2002:a05:6808:c181:b0:45f:4498:35d with SMTP id
 5614622812f47-462fca55091mr5958422b6e.7.1770647091383; Mon, 09 Feb 2026
 06:24:51 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <2cb24d49d7c72bf15a101cc3be62b3cccbfce3d5.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <2cb24d49d7c72bf15a101cc3be62b3cccbfce3d5.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 9 Feb 2026 15:24:39 +0100
X-Gm-Features: AZwV_Qiyots_TwQKHnPPMI96XR5-4WDBnP74SYNudQ9AyNmV8hCzP66RP8dg1fM
Message-ID: <CAHUa44G7ThfytBBQ=1DRju1z6DY_s+gbndNZOHLCUwf66V+Umg@mail.gmail.com>
Subject: Re: [PATCH 05/12] xen/arm: ffa: Fix PARTINFO RX release errors
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> On PARTITION_INFO_GET error paths, Xen unconditionally called
> FFA_RX_RELEASE for the SPMC RX buffer. If the SPMC didn't grant RX
> ownership (i.e., the call failed early), this issues a spurious release
> that returns DENIED and produces warnings.
>
> Modify ffa_rxtx_spmc_rx_release() to return the release status and let
> callers choose whether to log it. Only issue FFA_RX_RELEASE after a
> successful PARTINFO SMC, while always releasing the local RX lock to
> avoid deadlocks.
>
> Update handle_partition_info_get() to only release the SPMC RX buffer
> after successful fw_ret checks, and ignore release errors during the
> error path.
>
> Functional impact: eliminates spurious FFA_RX_RELEASE calls and
> associated DENIED warnings when PARTITION_INFO_GET fails before
> obtaining SPMC RX buffer ownership.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 14 ++++++++++++--
>  xen/arch/arm/tee/ffa_private.h  |  2 +-
>  xen/arch/arm/tee/ffa_rxtx.c     | 14 +++++++++-----
>  3 files changed, 22 insertions(+), 8 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index bf906ed0c88f..6b01c4abe915 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -92,9 +92,11 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uui=
d, uint32_t *sp_count,
>                                     uint32_t dst_size)
>  {
>      int32_t ret;
> +    int32_t release_ret;
>      uint32_t src_size, real_sp_count;
>      void *src_buf;
>      uint32_t count =3D 0;
> +    bool spmc_ok =3D false;

Wouldn't notify_fw be clearer, and the same in ffa_partinfo_init()?

Either way, please add:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
>      /* We need to use the RX buffer to receive the list */
>      src_buf =3D ffa_rxtx_spmc_rx_acquire();
> @@ -104,6 +106,7 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uu=
id, uint32_t *sp_count,
>      ret =3D ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
>      if ( ret )
>          goto out;
> +    spmc_ok =3D true;
>
>      /* Validate the src_size we got */
>      if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
> @@ -157,7 +160,10 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid u=
uid, uint32_t *sp_count,
>      *sp_count =3D count;
>
>  out:
> -    ffa_rxtx_spmc_rx_release();
> +    release_ret =3D ffa_rxtx_spmc_rx_release(spmc_ok);
> +    if ( release_ret )
> +        gprintk(XENLOG_WARNING,
> +                "ffa: Error releasing SPMC RX buffer: %d\n", release_ret=
);
>      return ret;
>  }
>
> @@ -507,6 +513,7 @@ bool ffa_partinfo_init(void)
>      int32_t e;
>      void *spmc_rx;
>      struct ffa_uuid nil_uuid =3D { .val =3D { 0ULL, 0ULL } };
> +    bool spmc_ok =3D false;
>
>      if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
>           !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
> @@ -522,6 +529,7 @@ bool ffa_partinfo_init(void)
>          printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
>          goto out;
>      }
> +    spmc_ok =3D true;
>
>      if ( count >=3D FFA_MAX_NUM_SP )
>      {
> @@ -533,7 +541,9 @@ bool ffa_partinfo_init(void)
>      ret =3D init_subscribers(spmc_rx, count, fpi_size);
>
>  out:
> -    ffa_rxtx_spmc_rx_release();
> +    e =3D ffa_rxtx_spmc_rx_release(spmc_ok);
> +    if ( e )
> +        printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n=
", e);
>      return ret;
>  }
>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 58562d8e733c..461e87f6f9c4 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -458,7 +458,7 @@ int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_=
id, struct domain **d_out,
>  bool ffa_rxtx_spmc_init(void);
>  void ffa_rxtx_spmc_destroy(void);
>  void *ffa_rxtx_spmc_rx_acquire(void);
> -void ffa_rxtx_spmc_rx_release(void);
> +int32_t ffa_rxtx_spmc_rx_release(bool notify_fw);
>  void *ffa_rxtx_spmc_tx_acquire(void);
>  void ffa_rxtx_spmc_tx_release(void);
>
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index 7d8bb4f4d031..50758fb57cdf 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -375,18 +375,22 @@ void *ffa_rxtx_spmc_rx_acquire(void)
>      return NULL;
>  }
>
> -void ffa_rxtx_spmc_rx_release(void)
> +int32_t ffa_rxtx_spmc_rx_release(bool notify_fw)
>  {
>      int32_t ret;
>
>      ASSERT(spin_is_locked(&ffa_spmc_rx_lock));
>
> -    /* Inform the SPMC that we are done with our RX buffer */
> -    ret =3D ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
> -    if ( ret !=3D FFA_RET_OK )
> -        printk(XENLOG_DEBUG "Error releasing SPMC RX buffer: %d\n", ret)=
;
> +    if ( notify_fw )
> +    {
> +        /* Inform the SPMC that we are done with our RX buffer */
> +        ret =3D ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
> +    }
> +    else
> +        ret =3D FFA_RET_OK;
>
>      spin_unlock(&ffa_spmc_rx_lock);
> +    return ret;
>  }
>
>  void *ffa_rxtx_spmc_tx_acquire(void)
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:26:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:26:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225468.1531976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSDn-00084M-6W; Mon, 09 Feb 2026 14:26:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225468.1531976; Mon, 09 Feb 2026 14:26: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 1vpSDn-00084F-3Y; Mon, 09 Feb 2026 14:26:39 +0000
Received: by outflank-mailman (input) for mailman id 1225468;
 Mon, 09 Feb 2026 14:26: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpSDl-000843-ML
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:26:37 +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 570ef9d5-05c3-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:26:36 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-435f177a8f7so3105426f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:26:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436297462a8sm25230877f8f.30.2026.02.09.06.26.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 06:26:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 570ef9d5-05c3-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770647196; x=1771251996; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D7qzzO3aEWggHR41H2FO35b1jRA7tl46snHtmS7OYp4=;
        b=Gk4TbE8YCUk+Iq4eR2+eyqSksxD72vJW29kMVxNTnqaFEdNh8MQqqRwJ9Lo0CYcdtb
         osmkqVd5pHfC3pkip8fFDmJowkKl+4vu17sjbdFi/o1C0pYlTg+GTmxKo941Egr5lrXq
         6N/AzE0GLF59yzxwV3Rr8R1hN+kISZZVDDBtF0HodPSKGpHZ6q83/b5wrgqfB6i53REu
         2x2f0N71HnzeryAv0eVUZ7S+dSYn2O8e62z8PCG/CHQGhxiPW4HumKVtl8NjUoqrsq9a
         Jka9i8KySSkCBXkUAd52+5grhlbyKRTZ821varl6ZPF8vxP9+d/cwEM2gx2OjE3gHIn9
         xyVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770647196; x=1771251996;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D7qzzO3aEWggHR41H2FO35b1jRA7tl46snHtmS7OYp4=;
        b=MX+f8w1FCNcVqoQ+HWTskzF6YTksKNdp8iI6v89H8RyMtu4kX26G7YjEs73STiSjF7
         /C34p0pFIJrpnj3OXgmsCoSeL8qI/+DLIQBufXsRP0s5Fp+j/umWv1GF8tQBHxeOzUB4
         Y3eyrURITSQjIjBwlO8lM4S9UAuu3lP077v0psvQx19pwUFwgDuSNalUdauZO9jiYec/
         6lk/DkZLHE2BYUU1gfPirwiGLapi47zwJkVGS4DW5tHsXavqCVrrslzzYlykmFwlEm9D
         CU8eAKSYe47zmCNwEC6Dtou6kHhgMLgUe+bhEIHQToltSgw25y/onvwCPL5laUID9R5N
         CHNA==
X-Forwarded-Encrypted: i=1; AJvYcCUANCPMBrKZY/gw+YGUCVuX3gyNT7WMZQS483T3mQlSQdF/D7radS01fv0P8o0w1f942/4fqhOXYMA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxAYfYf+64/w2CczFyDd4jSLVjWfHmu+mXOH36v2mU/+YEtunMC
	9cTsBjM1ucY9XQtmVAqk08Vde5mZ2ld4+ep5XBvaxzZCQSOlTnRPvGkvTKzNcIs0ow==
X-Gm-Gg: AZuq6aLqMM/MFUvFDgou0uCGddT0QF5dZCuRj5GFTgrjAeP3J0VvyJizq0DaMXyYrPU
	qlYIKx1Xkl+PJYCAt4OOCCMXApUsUJbIOmfMzGiSDddM6lHhb6WXPxLK6elxbCYfP/FaAwFLmkP
	ys1gKf573b8DWCuTMt6oO3joKd8FI7/AR+J4OTPysI2yp38iobtjjFOcXVVrFiO1GTzPfmzDA7r
	kL5uRHMb82tmlPwsxAyJmOokFlVHhMVbzPIpOLE8a8VYS1fLFNzwYJcmgQAISO2c0JC2XBka3WX
	F1F5ODs5iVB9DcjrTiiDibA+bxMeYUHfRGSLWnK6w6XOp0e8VW32bYtem2crA1T2ehv/ePf4UDL
	efb6kDCWXoi/bQq0ERxbg37D9m4eBRncdXusGcohvLXtiGH/bQuhOB0ZM3zCNdbarn1W/QNjEC9
	ood7iWZQ6qtHP/SsEFexIt02Z5Zn+nnSOjG97mtFZcswPbFqVlS+MnW/60GnZ9FfwUGIoI9MKA5
	aQ=
X-Received: by 2002:a05:6000:240e:b0:436:1517:aeca with SMTP id ffacd0b85a97d-43629341e78mr18713364f8f.15.1770647195744;
        Mon, 09 Feb 2026 06:26:35 -0800 (PST)
Message-ID: <6779b2e3-c324-481b-ae20-20a40fb1eac4@suse.com>
Date: Mon, 9 Feb 2026 15:26:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/kconfig: Reflow the SHADOW help message
To: Alejandro Vallejo <alejandro.garciavallejo@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
References: <20260209103339.6466-1-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260209103339.6466-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 11:33, Alejandro Vallejo wrote:
> Wasn't following the tab+2 spaces convention throughout the rest of the file.
> 
> Not a functional change.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

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

> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -148,20 +148,17 @@ config SHADOW_PAGING
>  	default !PV_SHIM_EXCLUSIVE
>  	depends on PV || HVM
>  	help
> +	  Shadow paging is a software alternative to hardware paging support
> +	  (Intel EPT, AMD NPT).
>  
> -          Shadow paging is a software alternative to hardware paging support
> -          (Intel EPT, AMD NPT).
> +	  It is required for:
> +	  * Running HVM guests on hardware lacking hardware paging support
> +	    (First-generation Intel VT-x or AMD SVM).
> +	  * Live migration of PV guests.
> +	  * L1TF sidechannel mitigation for PV guests.
>  
> -          It is required for:
> -            * Running HVM guests on hardware lacking hardware paging support
> -              (First-generation Intel VT-x or AMD SVM).
> -            * Live migration of PV guests.
> -            * L1TF sidechannel mitigation for PV guests.
> -
> -          Under a small number of specific workloads, shadow paging may be
> -          deliberately used as a performance optimisation.
> -
> -          If unsure, say Y.

I'm trying to establish (among the committers) whether we're indeed meaning
to drop this sentence from Kconfig help texts that we touch. If I wouldn't
get conclusive feedback, I'd likely put it back in.

Jan

> +	  Under a small number of specific workloads, shadow paging may be
> +	  deliberately used as a performance optimisation.
>  
>  config PAGING
>  	def_bool HVM || SHADOW_PAGING
> 
> base-commit: 1ee8b11c1106dca6b8fe0d54c0e79146bb6545f0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:27:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:27:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225478.1531986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSEm-0000H0-L6; Mon, 09 Feb 2026 14:27:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225478.1531986; Mon, 09 Feb 2026 14: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 1vpSEm-0000Gt-H4; Mon, 09 Feb 2026 14:27:40 +0000
Received: by outflank-mailman (input) for mailman id 1225478;
 Mon, 09 Feb 2026 14: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpSEl-0000FS-Gd
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:27:39 +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 792c9590-05c3-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:27:33 +0100 (CET)
Received: from AS4P189CA0036.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5dd::7)
 by AS2PR08MB9452.eurprd08.prod.outlook.com (2603:10a6:20b:5e8::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 9 Feb
 2026 14:27:27 +0000
Received: from AM3PEPF00009B9B.eurprd04.prod.outlook.com
 (2603:10a6:20b:5dd:cafe::67) by AS4P189CA0036.outlook.office365.com
 (2603:10a6:20b:5dd::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 14:27:29 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF00009B9B.mail.protection.outlook.com (10.167.16.20) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 14:27:27 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DU2PR08MB10086.eurprd08.prod.outlook.com (2603:10a6:10:46e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 14:26:24 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 14:26: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: 792c9590-05c3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=AoNL3+yCoatm8+ICAgxh3JtJFozTjUJtjmXJc8gMVNryARboB7AgbxamRaiI2lAhHwL32+QIMQrFeRDMd2zbLPQP8o0YmIFdPb121SavNA3rtThfBUUHNfNAKhLvT1ej/joTfyu4Z4qfwzJVwke4arrAlB8u8LXwYUfUr2cTGD4XRlfsNGT/gACxJn3MAhrY/x6W4ONk9u4PR2sPB1J5XQEnHiA2EbyM1UlDm4HlXkjkgGKS8urW8QLR3oj7nQvB1ivga1Rm7Enz3kvdwa6mT8JbvBJf3NifYBJ2IrIj/0Af0x9TddTIZRJez6KQDyLvWrxQ3Vp7qm5etGntMFgkWQ==
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=FgX1f4XYBzZwg95rBGTNVggnM56nI/j4rRU/70lpU2w=;
 b=VdsYBM5QI7FfkmEbhSyRAvugDvpKvGJN4ZquonIFq9A9eN2nbzt04gswPVKbqTgrPCX1/BILxG/1ZlwjUe6n3qpUu7EzpGJjQk4FeWzxV0l6tDmKYYRF5QNFDopUZdRqubXIIHQdLUyoHG/JqHXAmogE1RyttcVCE1Aa0N+vZwu/txtUfzu17F0RtjYghWn/csrHUOh+G/iX7L0JCP+4B5Zc8PH0aY3ErQHgBKouIjfLunHNw2Aok29Lno4pQ1OYGm5kK/ibO/+2/fGqJ0GqGVABUJ7Of7bE6I1i/Mn6D8UEF3IxaxlvPvo6k7KlfUOm8nixAFlur+YzB4/fhsu9aA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FgX1f4XYBzZwg95rBGTNVggnM56nI/j4rRU/70lpU2w=;
 b=m0AujePkWq0jYq8rMWXWflGJs6riT/iRRR/S00IauvVZBDp0BlkO50ScA8GdE9rby5ZL/8ZN/wmG1AGmhXjJLW9bk8Au++xmO7v5tofNbmbAWeJlpFLaE8RBIx12/X6sZmJ7oVDkGYLelcxCvWspq58VUvVkXhX1dUYCpnCgWME=
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=cxfGAOlkXB35d5gtjJ88PZFBnXSIn2qUA4fBIQlP/vgl8rWgws5XPrPHazBnUJT6NRqIOTuKwNhEGAPN3fDLKyk5pqu8dpDhW8ho8qigPTIz/msqGF20dXvW/sy7+pwlDF0gCWk3Qua1KgOGi4axI0m3P6bL+i2vAA/NIQ0jLO5GFvSooq8REBFELmtBotsAfslm3elG5tHVH+LAP80vyLnW48vW5USh7mahZuM8IPF9+D9xZ6Emqh+AFPXu0r7l4LHYNmlNgGskNy9pOGPFkiPZzVlnCBJEn65hEkVV4TGtFli0YMcgQuBuykkGA4Gz9+FwkWa2IBi4qkYQgbvnKw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FgX1f4XYBzZwg95rBGTNVggnM56nI/j4rRU/70lpU2w=;
 b=uxexYDBylKBWYabDyNfaMDSi5Q4kr5/1yZLmHhDBfB7/ClaDht+nxvO1Sa3mRjfnvh6K+/KPORNj5I+78rxnn5EWw4ChZVf8aB/bDfvqubJzCLdgo1IMUtLCx8vKKyfOHoQei3QijND5C9mURVQ84C7wcLozCym5c9oZtR6E69PSBHKZlszmfS/yq2V1WKjdKkWU89M8lHyl+fw9bWBbOx9++KugsaZreovAIMD0COUSqyiC+I9qdwdGSGuWFZzuzSsXgO0KepWtcbcS3kCq4r23ma9vFQ9aCoFSCw+wLBJcsoMZ6lxiD6odfS91cNVdmk2fUuTqDn3dhXnL1EX8aw==
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=FgX1f4XYBzZwg95rBGTNVggnM56nI/j4rRU/70lpU2w=;
 b=m0AujePkWq0jYq8rMWXWflGJs6riT/iRRR/S00IauvVZBDp0BlkO50ScA8GdE9rby5ZL/8ZN/wmG1AGmhXjJLW9bk8Au++xmO7v5tofNbmbAWeJlpFLaE8RBIx12/X6sZmJ7oVDkGYLelcxCvWspq58VUvVkXhX1dUYCpnCgWME=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 03/12] xen/arm: ffa: Harden shm page parsing
Thread-Topic: [PATCH 03/12] xen/arm: ffa: Harden shm page parsing
Thread-Index: AQHclTP8S4iGL6T7pUmD4E2SewFDhLV6I0SAgABSaAA=
Date: Mon, 9 Feb 2026 14:26:22 +0000
Message-ID: <19C7C710-4447-42AC-AFF3-F3122606BC0C@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <97a064c81ee5ea26774c189538f9f1e37dd3eebc.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44Ey=Ph_m8r933K5enqPJgFuyVgY+2Qhtj3pi+V_Fw4=6A@mail.gmail.com>
In-Reply-To:
 <CAHUa44Ey=Ph_m8r933K5enqPJgFuyVgY+2Qhtj3pi+V_Fw4=6A@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DU2PR08MB10086:EE_|AM3PEPF00009B9B:EE_|AS2PR08MB9452:EE_
X-MS-Office365-Filtering-Correlation-Id: 728130d7-4397-4b38-81f1-08de67e75993
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?NzdKOFFJRDhzMlpmZGsrczZWbTRoREZ1MW41bXVOYnprRmlxV0hKS1laaWkv?=
 =?utf-8?B?K2hoQ0R5WWI3SnlhZE5kYzVqbkVhOGdta1lta1VQOWgzbmVOL08vWnRzYTFj?=
 =?utf-8?B?TWpHMUk5NlZEMWRyZWx0YjloSm5vMmR3NGpIRzZ3dVFFWlJhTG9yVVZKY3d2?=
 =?utf-8?B?bkp3YklhV3pKMmdFMm5SdHRUTjhLZUZsMlJvb3EwdVA1aFQ4OVFXZnpuQ0lO?=
 =?utf-8?B?eTRiNTFrYjhxT2NhVXcva21uRWJnWkFsMFhOc0o2aDNzMnBLdWdXVWd0cTlG?=
 =?utf-8?B?VDdxWDRnTndHbkk3UXVUcXVMRlV3b1Bld3ZvMDllY05ONmhUOXVNejdidmFU?=
 =?utf-8?B?MklyWkZET2NYZ1ZoOHM1TCt5aVMxVndvbzViNlFXTXU5TXkzUzlENjYwS2JK?=
 =?utf-8?B?VDNmWEhxTW5pWUtabERzQU9mbzZuekxQSUJ6SEIzRHpkdkhubnJ4RExRMmZy?=
 =?utf-8?B?UFczdnRLeEZHbmE1ZEs4ZXpFekQrUDZyL0lYZEhtVThQRk1HTk1YaFhVL0tH?=
 =?utf-8?B?MlpUZHIvZzFsREYxRCtaQS9id2JiVURBblNXelh2NmxBV3VMQkhjcHNTRFlH?=
 =?utf-8?B?NTB2SUVMWEF2U1ZJdGo5V095VEo5UFN1SnNwRXBwa2ErT3N4MHpuYkJIVjBl?=
 =?utf-8?B?bU1mWGtoSU9ZL2YwTFpGUjRxK0JNdGRIODNDYzcraGtWaDNuSjZHR1daamFH?=
 =?utf-8?B?clNkVTR3alB1cTUyNWNVWmtiWHBjekpxUSt2SVVQdnJMc3ovVmFvalRrK3U1?=
 =?utf-8?B?bW04MEtnOXF0QmxHWGtCWFpPMDd6dGl0M3FjcjVhbXgyb0ZrVUdWNStBU3c1?=
 =?utf-8?B?bkRIbWluaWVjNGo1VTBWYVUvdWVoREp5YnRmTm1rYUtqcDY2aGpEYUZNbVVo?=
 =?utf-8?B?UDh6YVdHMkVINGtzQmVaVmMxRmZoZHk4a1hyRW54NXZnbU9aamdrQUpUOU1T?=
 =?utf-8?B?ZWhneTAwVmpZVzNEQWxDY0h5NWc1U28yLzNDL01DUjl2V3hwUkx1aFoyeFJw?=
 =?utf-8?B?YzM3S0Q3dzJpYk5LOXlmRzUyNFhjdEhTdnBEZE9MU3BiazhLWnRNVUtGV3Vl?=
 =?utf-8?B?N283UWlia1pPL3QwM2hXLy9iR2pyS1REdmRoU1d5ZjlPMVhMc3ZoNmQxODNu?=
 =?utf-8?B?NUxwVkNDZ0dRWFM1WUpRR0JId2NHb1NZRlZQNUtxS2IwTGNPRkt0ZEZJSi9r?=
 =?utf-8?B?eXZ5Q25uZjk0TzdTR3Z3S20xMjcvL0FjRkVYTUdob3BiZDBndE1XZFdPMzV6?=
 =?utf-8?B?YXZXVUhuNHNvdzlDT0Izb3lRNEw5bCtYazlKYXF3TDZlU0ZSU1dDbU5waCtQ?=
 =?utf-8?B?ZUlXeW02ek95azBjVTlWUWd2S3VmeWprY1JLZDRrWHdtMDFneFhvekZvLzdW?=
 =?utf-8?B?alJkcHZ2eGlmUkRwNzVCZnNXTVFYT1g4bkJ5cHdNWkNkaDFVMUFXR21keFc2?=
 =?utf-8?B?d05DeG8vUGtyeUdHb2MzaWZPNUhTZHpjYm4vZmRGVnNGSU9kdXg5WW5lWDdn?=
 =?utf-8?B?c1NIVW1CZjhEVjJocWt0SUxRdDRNdmtrSk9Xb2JVUXpvMWlrS1ZKWDljeHFI?=
 =?utf-8?B?YVlndEd6MHU4OXJFdVNDRlFOZ3lyZDd0YlF2RHdJd2ltY2NMSzUzbUdmMkdk?=
 =?utf-8?B?ZDEwRnFGOHpaV2J6Y0g5eGQ4WW1XaFNVYjZ4cVVhNXVtZzVlUlNydzZ5dEJz?=
 =?utf-8?B?Y3A4RXJGeG5MVWZyWVZ6UEJmQU5KRUtYa3gvVG5MMXV1emYram1BQ2lXbGFz?=
 =?utf-8?B?cWw2M0hNN0I0RjEwY3JFT1BWcHdVMGNjL0xOaHFTVFZvcHBDeXpsTzhhUlBj?=
 =?utf-8?B?VDNpUlM1bTRmejFJTTVaV2xLRUIvN0VCS1Juek42dnIvQndxMmZuTlRKdm0r?=
 =?utf-8?B?RGZNdkpoUFJZbG9Jd1VTK0IvazFTUUxzSmt5ZGt6bnlNblArTklURXpxRmZS?=
 =?utf-8?B?QXlWWSs3a1FYTEFQYmlnTzlmaS9oOHJ2MUdjTEt5aDdxSkpDaE9PY0JCMkNH?=
 =?utf-8?B?NXFySmdqVlh1c3ovNEFieGFDb2FaNjVCdkpEbFhCbjlnZng4QUx3d2ZQdVhR?=
 =?utf-8?B?azhWM3FSTlAwMUJaN0FFNE1mUmVGNWR5SGdFTnFzWE1CTGxMMXNQenJiUGhP?=
 =?utf-8?B?ZHFrSUpCUmxFY3I2SmdVYi9WMmtxQnBqTEhrU1ZETnhZcUgzQjh5dkVuamVV?=
 =?utf-8?Q?dg4dPyLv8TgGBm8r8R2uVxo=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <C22528AF9CAF1A47B7AC2B646D239920@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10086
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF00009B9B.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	4426807f-821d-40a2-9616-08de67e7331f
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|35042699022|376014|1800799024|36860700013|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VVBQTUNDeUF0MTh5bllkNmNKUjJWdUE2Q0FDWk5QZGpDRHRMdGdOZXE1ZE1L?=
 =?utf-8?B?akY2aTM2NUhNN1ZGN1BCcjNtZUEzZDhmbE5IcTB6TjRFRUVwckQyN2Jicmkr?=
 =?utf-8?B?bnhHMVZ4NFNiUWMvMXovRVNRUkgwa0RCQlFnK1c3ODNROWVHZkFjdjlTNFBL?=
 =?utf-8?B?aW1kNFhNa1lTekhPZTQ1SlVaNXRrd0JiOG42akRrRnkwNTVBM3lCNGRuT3dG?=
 =?utf-8?B?YVdGcDlmcWxJUFFqR2laNVlkR1hpdmFPL0xFbFVLWkRhS1ZuRzVCU3hYU0k2?=
 =?utf-8?B?SEJxRlRtaXB5OHczUzZ3anpadUh1SnB3Vm82by92aVV5OHZ2U3JVQjNuRUR2?=
 =?utf-8?B?Uk1zSGs1bFFQWFpINWtIOUJMem4rZHFwWStPK3B5SlczZ0RqaWFuODl3dEt4?=
 =?utf-8?B?MTQ0bkpSSS81QjgyMjR0ZENwcmZKYm9WZDVVZlhuVis5azFlcy80TVBrMXhG?=
 =?utf-8?B?WTY4QkJYMjFsT1BWdWE3elVCRUVVYnJNMTBlUnAvSjFIdzljdmV2OHBJbmNm?=
 =?utf-8?B?NVhPL3djUXBSOHN1dmQxRHJZUGJoWFpXUSttWGg4YzFJQUxGMXNBQThyY0R0?=
 =?utf-8?B?REJTa29wcW9BUUE4YXRUQUZKQitJd0JtYktXdzJ0YjdKNmRjWmEyZEwwT01P?=
 =?utf-8?B?cXZ5NzA1K1BBRlFGQ1VRY3NNdnBCbHNIUHJ6RkNSbUcxMkxrcFlJR2NaV2do?=
 =?utf-8?B?b0pFRFJ0Uy9CTkJFdUYrNUhXLzY5c0YzM1Z4eXMxVDlVeitSZFhYWjhNZEp5?=
 =?utf-8?B?amF2S1kvNzhFU3hOQUNRQ3RDd0pSakxIemlKN2FjL1NSTjQ5Y3NvZEVUeSt3?=
 =?utf-8?B?aERlZ0d6a1ZoUk1YSG85dXhua0Q4MnUxZDdscUhiNDkrUHltbUNuWGdPMi9T?=
 =?utf-8?B?Vmx6TVo3a3Nnem9zMWowNU40anNCRXdpNnlpQVRSdVRpT0VDR294ME1MV0xY?=
 =?utf-8?B?OGN5Z3hMR1ZpNG0xVjZ3L2xSQUVQcFdMdVhGaVdFMHdERW12QkR0SFUzT1ZC?=
 =?utf-8?B?MjhqUG1FeFB3MHpmeFExNk9rZlRWY0Z4bU4zQndMM1g4dFF2cjEzOUp4Z00x?=
 =?utf-8?B?NExhVFNrakEwQ1FKbExBUC95eVhYd2RxbkRKa2JHbU9XZHNXTFF4NGg0YVJ1?=
 =?utf-8?B?L3ZaN2VyUFZSZ3JiSWZoZzlBQlprUnVUTzFJci9FTitUaGRUMDViV1ppVitt?=
 =?utf-8?B?dGxqLytLNlAySDBvSUE0alVDKzY3RXlUMmlLMXNIcjdCUVVkOE5JV1FDdkd0?=
 =?utf-8?B?QkF2SnpvQmR1eWZEVXVWa2lDYXNGeEZCQ0J6YjhseGo2UEJpeTN6dWErKzZp?=
 =?utf-8?B?UzA3QnRZaTNQQk9JZFl3eXFjRTFQbThTM2UybTRQTlloUC9OZEYrQXh4NXNR?=
 =?utf-8?B?KzYrc1EyeXQvMTlVbEdxU2FlREdQbVFxRVcxYVVxMGNNS1FPMkpRbnl4WkZE?=
 =?utf-8?B?bjQ2WFRhL0pQbHl5aXJrU2VzVUR6Sm5jcWVHUGt5bm5BZG8vTmpNUFFnTmtH?=
 =?utf-8?B?ZHF5UWJkL3hKWllRTFFWMU8wWXFCTjFpZ3ZzcWY2dnhpUmVJeHJ3M01na3pp?=
 =?utf-8?B?YnhGYzA2QlErcGVqV0ptZkJpRENpdTl4QmRZRGpEaTZHdEJhNlNZS2tXMThu?=
 =?utf-8?B?cHBVUkVLU2I1bjBiUUFEQndMaWhleWVYVU01MlNuMWJaUTllZ25wVHVNYnRJ?=
 =?utf-8?B?Q0VUZVVNaTU4VkxPVmZWek1tblowU3l5MnJ3T1NKMlB3OWNuOHVnUkkwY3lI?=
 =?utf-8?B?OUthNUxOTGxMYXkvNlpCZ2RNTFl5Um5BeGdEWWRpakY5THBlOFRhQUdRUmlN?=
 =?utf-8?B?QXJpTE5jbVc2ejJ2OTdJSkFGWEp0cWU1UzdPVGw5THRTVWVoclJNS21RL2Fm?=
 =?utf-8?B?Ym1wUG9KdHFJMU1LOWZNN25VN3czOEZwMCtvOVJ1RkZYOVJMM01ucEJOci8w?=
 =?utf-8?B?YXdhbXoxckZUcDZSaTdRZ3kydUR0QnVCZnpmUGZOMjhDaGxQeUswVHhqTFN6?=
 =?utf-8?B?THhKVmR5cWExcFJoSDk3blhpbVJ2VEp0N0VJQ2MyQUx1NFlxbDJ1dHhEYm9C?=
 =?utf-8?B?Mlp4dnBNRE8rdUwvcmMrSFJaZmoydnpsRk1ZdU5aYWlaampkTW8rR0RHRDh0?=
 =?utf-8?B?cm52MUYwOW4xSnk4VURvWXVTLzJRT2Yyb0ZpOXZ1cHRiU0ZhWjk4UmxxbHVQ?=
 =?utf-8?B?QkVnRjBIQlBHRnAwaEZ2ZmlWUitDbndlVnl2dGprVDF5dmU1enBoU2dyOENE?=
 =?utf-8?B?blMvTzdyOHRHS3g4QjZtdHRRUEpBPT0=?=
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)(35042699022)(376014)(1800799024)(36860700013)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	GJYJMpiYeoQYJAzGULemeHUB8igNpXFtDLwnH5HuRbkumlTFbxFC834ADiIS5hnOGjgRNtmTKHRhZ98nd9aPAiJ+FTWQDsSRhcluCXeeyePScclDnvdGkAlMr5DzaiJ+O0wikrGV/+rroQ38oaeoG5F0R3DTcCmUPsfwHGpPDtQmXNwAvxqBwh9gplQSJv8kZDcgdKdpghQoq3ePb0VdDHqurBtp2WXDymHbwlqGv+X4Id1lptgdDhpGTb/k/qL2TB2Ae2SCeB//acM3xYAELiYYEU+X0nNdn/71Omhi8GgUbTVEDSHyg0mVBo55RHoHiZvKOX1rxa+VSVDl34jiK/IUJ/Wa4fXsaosjVChxkBJHNTavylTs4mkO5TDFpvrc21KkIyomghl/UXOjMp/XLzZ3nC4uCDHDe3+KPesLLWPQCY8j48G/XjL3Ih59KlxA
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:27:27.0122
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 728130d7-4397-4b38-81f1-08de67e75993
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:
	AM3PEPF00009B9B.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9452

SGkgSmVucywNCg0KPiBPbiA5IEZlYiAyMDI2LCBhdCAxMDozMSwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUdWUsIEZlYiAzLCAyMDI2IGF0IDY6MzjigK9QTSBCZXJ0cmFuZCBNYXJxdWlzDQo+IDxi
ZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBnZXRfc2htX3BhZ2VzKCkg
dXNlcyB1bmNoZWNrZWQgYWRkcmVzcyBhcml0aG1ldGljIGFuZCBkb2VzIG5vdCBlbmZvcmNlDQo+
PiBhbGlnbm1lbnQsIHNvIG1hbGZvcm1lZCBkZXNjcmlwdG9ycyBjYW4gY2F1c2Ugb3ZlcmZsb3cg
b3Igc2xpcCB0aHJvdWdoDQo+PiB2YWxpZGF0aW9uLiBUaGUgcmVjbGFpbSBwYXRoIGFsc28gcmVw
ZWF0cyBoYW5kbGUtdG8tc2htLW1lbSBjb252ZXJzaW9uDQo+PiBpbiBtdWx0aXBsZSBwbGFjZXMs
IGR1cGxpY2F0aW5nIGVycm9yIGhhbmRsaW5nLg0KPj4gDQo+PiBIYXJkZW4gcGFnZSBwYXJzaW5n
IGFuZCByZWNsYWltIGhhbmRsaW5nOg0KPj4gLSBhZGQgZmZhX3NhZmVfYWRkcl9hZGQoKSBhbmQg
dXNlIGl0IHRvIGRldGVjdCBhZGRyZXNzIG92ZXJmbG93cw0KPj4gLSBlbmZvcmNlIGFsaWdubWVu
dCBjaGVja3MgaW4gZ2V0X3NobV9wYWdlcygpIGFuZCByZXR1cm4gRkYtQSBlcnJvcnMNCj4+IC0g
aW50cm9kdWNlIGZmYV9zZWN1cmVfcmVjbGFpbSgpIGFuZCB1c2UgaXQgZm9yIE1FTV9SRUNMQUlN
IGFuZCB0ZWFyZG93bg0KPj4gLSBzaW1wbGlmeSBmZmFfbWVtX3NoYXJlKCkgYXJndW1lbnQgaGFu
ZGxpbmcgYW5kIGFsbG93IG1heCBwYWdlIGNvdW50DQo+PiANCj4+IEZ1bmN0aW9uYWwgaW1wYWN0
OiBpbnZhbGlkIG9yIG1pc2FsaWduZWQgbWVtb3J5IHJhbmdlcyBub3cgZmFpbCBlYXJsaWVyDQo+
PiB3aXRoIHByb3BlciBlcnJvciBjb2RlczsgYmVoYXZpb3IgZm9yIHZhbGlkIGRlc2NyaXB0b3Jz
IGlzIHVuY2hhbmdlZC4NCj4+IA0KPj4gU2lnbmVkLW9mZi1ieTogQmVydHJhbmQgTWFycXVpcyA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPj4gLS0tDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2Zm
YV9wcml2YXRlLmggfCAxMSArKysrKysrDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0uYyAg
ICAgfCA1NyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tDQo+PiAyIGZpbGVzIGNo
YW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQ0KPj4gDQo+PiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oIGIveGVuL2FyY2gvYXJtL3RlZS9m
ZmFfcHJpdmF0ZS5oDQo+PiBpbmRleCBiNjI1ZjFjNzI5MTQuLjU4NTYyZDhlNzMzYyAxMDA2NDQN
Cj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gKysrIGIveGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBAQCAtNjMyLDQgKzYzMiwxNSBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgZmZhX3V1aWRfc2V0KHN0cnVjdCBmZmFfdXVpZCAqaWQsIHVpbnQzMl90IHZh
bDAsDQo+PiAgICAgaWQtPnZhbFsxXSA9ICgodWludDY0X3QpdmFsMyA8PCAzMlUpIHwgdmFsMjsN
Cj4+IH0NCj4+IA0KPj4gKy8qDQo+PiArICogQ29tbW9uIG92ZXJmbG93LXNhZmUgaGVscGVyIHRv
IHZlcmlmeSB0aGF0IGFkZGluZyBhIG51bWJlciBvZiBwYWdlcyB0byBhbg0KPj4gKyAqIGFkZHJl
c3Mgd2lsbCBub3Qgd3JhcCBhcm91bmQuDQo+PiArICovDQo+PiArc3RhdGljIGlubGluZSBib29s
IGZmYV9zYWZlX2FkZHJfYWRkKHVpbnQ2NF90IGFkZHIsIHVpbnQ2NF90IHBhZ2VzKQ0KPj4gK3sN
Cj4+ICsgICAgdWludDY0X3Qgb2ZmID0gcGFnZXMgKiBGRkFfUEFHRV9TSVpFOw0KPj4gKw0KPj4g
KyAgICByZXR1cm4gKG9mZiAvIEZGQV9QQUdFX1NJWkUpID09IHBhZ2VzICYmIGFkZHIgPD0gVUlO
VDY0X01BWCAtIG9mZjsNCj4+ICt9DQo+PiArDQo+PiAjZW5kaWYgLypfX0ZGQV9QUklWQVRFX0hf
XyovDQo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfc2htLmMgYi94ZW4vYXJj
aC9hcm0vdGVlL2ZmYV9zaG0uYw0KPj4gaW5kZXggOTA4MDBlNDRhODZhLi40YzBiNDVjZGU2ZWUg
MTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0uYw0KPj4gKysrIGIveGVu
L2FyY2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+IEBAIC05NiwxNiArOTYsMTQgQEAgc3RydWN0IGZm
YV9zaG1fbWVtIHsNCj4+ICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlc1tdOw0KPj4gfTsNCj4+
IA0KPj4gLXN0YXRpYyBpbnQzMl90IGZmYV9tZW1fc2hhcmUodWludDMyX3QgdG90X2xlbiwgdWlu
dDMyX3QgZnJhZ19sZW4sDQo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rl
cl90IGFkZHIsIHVpbnQzMl90IHBnX2NvdW50LA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDY0X3QgKmhhbmRsZSkNCj4+ICtzdGF0aWMgaW50MzJfdCBmZmFfbWVtX3NoYXJl
KHVpbnQzMl90IHRvdF9sZW4sIHVpbnQ2NF90ICpoYW5kbGUpDQo+PiB7DQo+PiAgICAgc3RydWN0
IGFybV9zbWNjY18xXzJfcmVncyBhcmcgPSB7DQo+PiAgICAgICAgIC5hMCA9IEZGQV9NRU1fU0hB
UkVfNjQsDQo+PiAgICAgICAgIC5hMSA9IHRvdF9sZW4sDQo+PiAtICAgICAgICAuYTIgPSBmcmFn
X2xlbiwNCj4+IC0gICAgICAgIC5hMyA9IGFkZHIsDQo+PiAtICAgICAgICAuYTQgPSBwZ19jb3Vu
dCwNCj4+ICsgICAgICAgIC5hMiA9IHRvdF9sZW4sDQo+PiArICAgICAgICAuYTMgPSAwLA0KPj4g
KyAgICAgICAgLmE0ID0gMCwNCj4+ICAgICB9Ow0KPj4gICAgIHN0cnVjdCBhcm1fc21jY2NfMV8y
X3JlZ3MgcmVzcDsNCj4+IA0KPj4gQEAgLTEzMSwxMiArMTI5LDE2IEBAIHN0YXRpYyBpbnQzMl90
IGZmYV9tZW1fc2hhcmUodWludDMyX3QgdG90X2xlbiwgdWludDMyX3QgZnJhZ19sZW4sDQo+PiAg
ICAgfQ0KPj4gfQ0KPj4gDQo+PiAtc3RhdGljIGludDMyX3QgZmZhX21lbV9yZWNsYWltKHVpbnQz
Ml90IGhhbmRsZV9sbywgdWludDMyX3QgaGFuZGxlX2hpLA0KPj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCBmbGFncykNCj4+ICtzdGF0aWMgaW50MzJfdCBmZmFfc2Vj
dXJlX3JlY2xhaW0oc3RydWN0IGZmYV9zaG1fbWVtICpzaG0sIHVpbnQzMl90IGZsYWdzKQ0KPiAN
Cj4gSSBhZ3JlZSB3aXRoIG1vdmluZyB0aGUgdWludDY0X3RvX3JlZ3BhaXIoKSBjYWxsIGludG8g
dGhpcyBmdW5jdGlvbiwNCj4gYnV0IEknbSBwdXp6bGVkIGJ5IHRoZSBuZXcgbmFtZS4gV2hhdCdz
IHNlY3VyZT8NCg0KVGhpcyBpcyB0byBkaXN0aW5ndWlzaCB3aXRoIHJlY2xhaW0gZm9yIFZNIHRv
IFZNIHNoYXJpbmcgaW4gdGhlIGZ1dHVyZSBhcyBoZXJlDQpyZWNsYWltIGlzIGFza2VkIHRvIHRo
ZSBzZWN1cmUgd29ybGQuDQoNCkJ1dCBpbiBmYWN0IHRvIGJlIGNvaGVyZW50IEkgc2hvdWxkIGFs
c28gaGF2ZSByZW5hbWVkIGZmYV9tZW1fc2hhcmUgdG8gZmZhX3NlY3VyZV9zaGFyZS4NCg0KV291
bGQgeW91IGJlIG9rIHdpdGggdGhhdCA/DQoNCj4gDQo+PiB7DQo+PiArICAgIHJlZ2lzdGVyX3Qg
aGFuZGxlX2hpOw0KPj4gKyAgICByZWdpc3Rlcl90IGhhbmRsZV9sbzsNCj4+ICsNCj4+ICAgICBp
ZiAoICFmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9NRU1fUkVDTEFJTSkgKQ0KPj4gICAgICAgICBy
ZXR1cm4gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4gDQo+PiArICAgIHVpbnQ2NF90b19yZWdw
YWlyKCZoYW5kbGVfaGksICZoYW5kbGVfbG8sIHNobS0+aGFuZGxlKTsNCj4+ICsNCj4+ICAgICBy
ZXR1cm4gZmZhX3NpbXBsZV9jYWxsKEZGQV9NRU1fUkVDTEFJTSwgaGFuZGxlX2xvLCBoYW5kbGVf
aGksIGZsYWdzLCAwKTsNCj4+IH0NCj4+IA0KPj4gQEAgLTE0NSw3ICsxNDcsNyBAQCBzdGF0aWMg
aW50MzJfdCBmZmFfbWVtX3JlY2xhaW0odWludDMyX3QgaGFuZGxlX2xvLCB1aW50MzJfdCBoYW5k
bGVfaGksDQo+PiAgKiB0aGlzIGZ1bmN0aW9uIGZhaWxzIHRoZW4gdGhlIGNhbGxlciBpcyBzdGls
bCBleHBlY3RlZCB0byBjYWxsDQo+PiAgKiBwdXRfc2htX3BhZ2VzKCkgYXMgYSBjbGVhbnVwLg0K
Pj4gICovDQo+PiAtc3RhdGljIGludCBnZXRfc2htX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHN0
cnVjdCBmZmFfc2htX21lbSAqc2htLA0KPj4gK3N0YXRpYyBpbnQzMl90IGdldF9zaG1fcGFnZXMo
c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGZmYV9zaG1fbWVtICpzaG0sDQo+PiAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZmYV9hZGRyZXNzX3JhbmdlICpyYW5nZSwNCj4+
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCByYW5nZV9jb3VudCkNCj4+IHsNCj4+
IEBAIC0xNTYsMTcgKzE1OCwyNiBAQCBzdGF0aWMgaW50IGdldF9zaG1fcGFnZXMoc3RydWN0IGRv
bWFpbiAqZCwgc3RydWN0IGZmYV9zaG1fbWVtICpzaG0sDQo+PiAgICAgcDJtX3R5cGVfdCB0Ow0K
Pj4gICAgIHVpbnQ2NF90IGFkZHI7DQo+PiAgICAgdWludDY0X3QgcGFnZV9jb3VudDsNCj4+ICsg
ICAgdWludDY0X3QgZ2FkZHI7DQo+PiANCj4+ICAgICBmb3IgKCBuID0gMDsgbiA8IHJhbmdlX2Nv
dW50OyBuKysgKQ0KPj4gICAgIHsNCj4+ICAgICAgICAgcGFnZV9jb3VudCA9IEFDQ0VTU19PTkNF
KHJhbmdlW25dLnBhZ2VfY291bnQpOw0KPj4gICAgICAgICBhZGRyID0gQUNDRVNTX09OQ0UocmFu
Z2Vbbl0uYWRkcmVzcyk7DQo+PiArDQo+PiArICAgICAgICBpZiAoICFJU19BTElHTkVEKGFkZHIs
IEZGQV9QQUdFX1NJWkUpICkNCj4+ICsgICAgICAgICAgICByZXR1cm4gRkZBX1JFVF9JTlZBTElE
X1BBUkFNRVRFUlM7DQo+PiArDQo+PiAgICAgICAgIGZvciAoIG0gPSAwOyBtIDwgcGFnZV9jb3Vu
dDsgbSsrICkNCj4+ICAgICAgICAgew0KPj4gICAgICAgICAgICAgaWYgKCBwZ19pZHggPj0gc2ht
LT5wYWdlX2NvdW50ICkNCj4+ICAgICAgICAgICAgICAgICByZXR1cm4gRkZBX1JFVF9JTlZBTElE
X1BBUkFNRVRFUlM7DQo+PiANCj4+IC0gICAgICAgICAgICBnZm4gPSBnYWRkcl90b19nZm4oYWRk
ciArIG0gKiBGRkFfUEFHRV9TSVpFKTsNCj4+ICsgICAgICAgICAgICBpZiAoICFmZmFfc2FmZV9h
ZGRyX2FkZChhZGRyLCBtKSApDQo+PiArICAgICAgICAgICAgICAgIHJldHVybiBGRkFfUkVUX0lO
VkFMSURfUEFSQU1FVEVSUzsNCj4+ICsNCj4+ICsgICAgICAgICAgICBnYWRkciA9IGFkZHIgKyBt
ICogRkZBX1BBR0VfU0laRTsNCj4+ICsgICAgICAgICAgICBnZm4gPSBnYWRkcl90b19nZm4oZ2Fk
ZHIpOw0KPj4gICAgICAgICAgICAgc2htLT5wYWdlc1twZ19pZHhdID0gZ2V0X3BhZ2VfZnJvbV9n
Zm4oZCwgZ2ZuX3goZ2ZuKSwgJnQsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFAyTV9BTExPQyk7DQo+PiAgICAgICAgICAgICBpZiAoICFzaG0t
PnBhZ2VzW3BnX2lkeF0gKQ0KPj4gQEAgLTE4MCw3ICsxOTEsNyBAQCBzdGF0aWMgaW50IGdldF9z
aG1fcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGZmYV9zaG1fbWVtICpzaG0sDQo+PiAN
Cj4+ICAgICAvKiBUaGUgcmFuZ2VzIG11c3QgYWRkIHVwICovDQo+PiAgICAgaWYgKCBwZ19pZHgg
PCBzaG0tPnBhZ2VfY291bnQgKQ0KPj4gLSAgICAgICAgICAgIHJldHVybiBGRkFfUkVUX0lOVkFM
SURfUEFSQU1FVEVSUzsNCj4+ICsgICAgICAgIHJldHVybiBGRkFfUkVUX0lOVkFMSURfUEFSQU1F
VEVSUzsNCj4+IA0KPj4gICAgIHJldHVybiBGRkFfUkVUX09LOw0KPj4gfQ0KPj4gQEAgLTE5OCwx
NSArMjA5LDExIEBAIHN0YXRpYyB2b2lkIHB1dF9zaG1fcGFnZXMoc3RydWN0IGZmYV9zaG1fbWVt
ICpzaG0pDQo+PiANCj4+IHN0YXRpYyBib29sIGluY19jdHhfc2htX2NvdW50KHN0cnVjdCBkb21h
aW4gKmQsIHN0cnVjdCBmZmFfY3R4ICpjdHgpDQo+PiB7DQo+PiAtICAgIGJvb2wgcmV0ID0gdHJ1
ZTsNCj4+ICsgICAgYm9vbCByZXQgPSBmYWxzZTsNCj4+IA0KPj4gICAgIHNwaW5fbG9jaygmY3R4
LT5sb2NrKTsNCj4+IA0KPj4gLSAgICBpZiAoIGN0eC0+c2htX2NvdW50ID49IEZGQV9NQVhfU0hN
X0NPVU5UICkNCj4+IC0gICAgew0KPj4gLSAgICAgICAgcmV0ID0gZmFsc2U7DQo+PiAtICAgIH0N
Cj4+IC0gICAgZWxzZQ0KPj4gKyAgICBpZiAoIGN0eC0+c2htX2NvdW50IDwgRkZBX01BWF9TSE1f
Q09VTlQgKQ0KPj4gICAgIHsNCj4+ICAgICAgICAgLyoNCj4+ICAgICAgICAgICogSWYgdGhpcyBp
cyB0aGUgZmlyc3Qgc2htIGFkZGVkLCBpbmNyZWFzZSB0aGUgZG9tYWluIHJlZmVyZW5jZQ0KPj4g
QEAgLTIxNyw2ICsyMjQsNyBAQCBzdGF0aWMgYm9vbCBpbmNfY3R4X3NobV9jb3VudChzdHJ1Y3Qg
ZG9tYWluICpkLCBzdHJ1Y3QgZmZhX2N0eCAqY3R4KQ0KPj4gICAgICAgICAgICAgZ2V0X2tub3du
YWxpdmVfZG9tYWluKGQpOw0KPj4gDQo+PiAgICAgICAgIGN0eC0+c2htX2NvdW50Kys7DQo+PiAr
ICAgICAgICByZXQgPSB0cnVlOw0KPj4gICAgIH0NCj4+IA0KPj4gICAgIHNwaW5fdW5sb2NrKCZj
dHgtPmxvY2spOw0KPj4gQEAgLTI1MSw3ICsyNTksNyBAQCBzdGF0aWMgc3RydWN0IGZmYV9zaG1f
bWVtICphbGxvY19mZmFfc2htX21lbShzdHJ1Y3QgZG9tYWluICpkLA0KPj4gICAgIHN0cnVjdCBm
ZmFfY3R4ICpjdHggPSBkLT5hcmNoLnRlZTsNCj4+ICAgICBzdHJ1Y3QgZmZhX3NobV9tZW0gKnNo
bTsNCj4+IA0KPj4gLSAgICBpZiAoIHBhZ2VfY291bnQgPj0gRkZBX01BWF9TSE1fUEFHRV9DT1VO
VCApDQo+PiArICAgIGlmICggcGFnZV9jb3VudCA+IEZGQV9NQVhfU0hNX1BBR0VfQ09VTlQgKQ0K
Pj4gICAgICAgICByZXR1cm4gTlVMTDsNCj4+ICAgICBpZiAoICFpbmNfY3R4X3NobV9jb3VudChk
LCBjdHgpICkNCj4+ICAgICAgICAgcmV0dXJuIE5VTEw7DQo+PiBAQCAtMzY3LDcgKzM3NSw3IEBA
IHN0YXRpYyBpbnQgc2hhcmVfc2htKHN0cnVjdCBmZmFfc2htX21lbSAqc2htKQ0KPj4gICAgICAg
ICBpbml0X3JhbmdlKGFkZHJfcmFuZ2UsIHBhKTsNCj4+ICAgICB9DQo+PiANCj4+IC0gICAgcmV0
ID0gZmZhX21lbV9zaGFyZSh0b3RfbGVuLCBmcmFnX2xlbiwgMCwgMCwgJnNobS0+aGFuZGxlKTsN
Cj4gDQo+IFBsZWFzZSByZW1vdmUgZnJhZ19sZW4gZnJvbSBzaGFyZV9zaG0oKSBzaW5jZSBpdCdz
IG5vdCBuZWVkZWQgYW55IGxvbmdlci4NCg0KQWNrLCBJIHdpbGwgcmVtb3ZlIGl0IGluIHYyLg0K
DQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IENoZWVycywNCj4gSmVucw0KPiANCj4+ICsgICAg
cmV0ID0gZmZhX21lbV9zaGFyZSh0b3RfbGVuLCAmc2htLT5oYW5kbGUpOw0KPj4gDQo+PiBvdXQ6
DQo+PiAgICAgZmZhX3J4dHhfc3BtY190eF9yZWxlYXNlKCk7DQo+PiBAQCAtNjM3LDggKzY0NSw2
IEBAIGludDMyX3QgZmZhX2hhbmRsZV9tZW1fcmVjbGFpbSh1aW50NjRfdCBoYW5kbGUsIHVpbnQz
Ml90IGZsYWdzKQ0KPj4gICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47DQo+
PiAgICAgc3RydWN0IGZmYV9jdHggKmN0eCA9IGQtPmFyY2gudGVlOw0KPj4gICAgIHN0cnVjdCBm
ZmFfc2htX21lbSAqc2htOw0KPj4gLSAgICByZWdpc3Rlcl90IGhhbmRsZV9oaTsNCj4+IC0gICAg
cmVnaXN0ZXJfdCBoYW5kbGVfbG87DQo+PiAgICAgaW50MzJfdCByZXQ7DQo+PiANCj4+ICAgICBp
ZiAoICFmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9NRU1fUkVDTEFJTSkgKQ0KPj4gQEAgLTY1Miw4
ICs2NTgsNyBAQCBpbnQzMl90IGZmYV9oYW5kbGVfbWVtX3JlY2xhaW0odWludDY0X3QgaGFuZGxl
LCB1aW50MzJfdCBmbGFncykNCj4+ICAgICBpZiAoICFzaG0gKQ0KPj4gICAgICAgICByZXR1cm4g
RkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiANCj4+IC0gICAgdWludDY0X3RvX3JlZ3Bh
aXIoJmhhbmRsZV9oaSwgJmhhbmRsZV9sbywgaGFuZGxlKTsNCj4+IC0gICAgcmV0ID0gZmZhX21l
bV9yZWNsYWltKGhhbmRsZV9sbywgaGFuZGxlX2hpLCBmbGFncyk7DQo+PiArICAgIHJldCA9IGZm
YV9zZWN1cmVfcmVjbGFpbShzaG0sIGZsYWdzKTsNCj4+IA0KPj4gICAgIGlmICggcmV0ICkNCj4+
ICAgICB7DQo+PiBAQCAtNjc3LDExICs2ODIsNyBAQCBib29sIGZmYV9zaG1fZG9tYWluX2Rlc3Ry
b3koc3RydWN0IGRvbWFpbiAqZCkNCj4+IA0KPj4gICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm
ZShzaG0sIHRtcCwgJmN0eC0+c2htX2xpc3QsIGxpc3QpDQo+PiAgICAgew0KPj4gLSAgICAgICAg
cmVnaXN0ZXJfdCBoYW5kbGVfaGk7DQo+PiAtICAgICAgICByZWdpc3Rlcl90IGhhbmRsZV9sbzsN
Cj4+IC0NCj4+IC0gICAgICAgIHVpbnQ2NF90b19yZWdwYWlyKCZoYW5kbGVfaGksICZoYW5kbGVf
bG8sIHNobS0+aGFuZGxlKTsNCj4+IC0gICAgICAgIHJlcyA9IGZmYV9tZW1fcmVjbGFpbShoYW5k
bGVfbG8sIGhhbmRsZV9oaSwgMCk7DQo+PiArICAgICAgICByZXMgPSBmZmFfc2VjdXJlX3JlY2xh
aW0oc2htLCAwKTsNCj4+ICAgICAgICAgc3dpdGNoICggcmVzICkgew0KPj4gICAgICAgICBjYXNl
IEZGQV9SRVRfT0s6DQo+PiAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcgIiVwZDog
ZmZhOiBSZWNsYWltZWQgaGFuZGxlICUjbHhcbiIsDQo+PiAtLQ0KPj4gMi41MC4xIChBcHBsZSBH
aXQtMTU1KQ0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:36:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225486.1531996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSMx-0002AQ-E3; Mon, 09 Feb 2026 14:36:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225486.1531996; Mon, 09 Feb 2026 14: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 1vpSMx-0002AJ-AH; Mon, 09 Feb 2026 14:36:07 +0000
Received: by outflank-mailman (input) for mailman id 1225486;
 Mon, 09 Feb 2026 14: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpSMw-0002AD-FP
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:36: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 a9e8a6a5-05c4-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:36:05 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso13880295e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:36:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483206b8ebbsm376976065e9.1.2026.02.09.06.36.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 06:36:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9e8a6a5-05c4-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770647764; x=1771252564; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GjE24oHJ7+3c5LwLALaEgJB0mosYzNvS+FXm5WKJaYM=;
        b=I3o7m5nrhLWy5x7ZaQSNQL1GKHPWfTdzXK1gBcL8hsmIpJq0PSBUUUdng27+jTABjg
         EK+jTRq6cPPlxwy3iVvkW91H3A/8wI4bU7t0LObBW3KtWb2eBz5TF3KHEAAj9J2zWzRE
         nK31nDhnJB7k/1xhNfJY7DSwP5XXz2GJc/DTNndgWeNGeaW5JvQsKqQ1ix9EyiEKi8za
         s0+4qOXe2VDjfImh7QDzGRNBTZ26WWUnE4KY2VkiYnAcfwmRqAA6VZXTvfE+D2zr5WJv
         yV+8MqkBvHXIiuSfI8bG+InKCT2dfXjiYGmzI/+MaWjP1qv+S91b0jAkFjW4TtXpoVdC
         BIKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770647764; x=1771252564;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GjE24oHJ7+3c5LwLALaEgJB0mosYzNvS+FXm5WKJaYM=;
        b=r3agk674gyzgvA3PggMG1JQIMbFnRSvLYz+Zza8pQyiTWBg+/QwCAIFHObGu4Rj9Yx
         1DBwSUoaHNcgQk78BWDLSZceBBfJOTwJ509L4nqnw92pKmLBVlYlAwDX1hwzGDPQFtze
         tVLqG83RCMOL5BcJF4MDorM/2Aj/LwDwzsgVhQ3Zgl9HQuS7QH5zVNNfRUwtaexCCrc1
         UbIgxzF+aPFnai9YXrGEMamKVEPemgM7QaKAB/Dq8JmcmpXly4kLnWx4eyeSrmbOgp/u
         hyxRdr+gjxzxnVlRS22ImVTAnNwjom6xq4G2piZF0EnzhpGlVMGATz+O47PVVq/P8WrC
         0Vtg==
X-Forwarded-Encrypted: i=1; AJvYcCX5TBO4PdK62RPfyqjpB+bhLFA5iFQL5Ye+c4jBP+9dX3jxW9UkfuFidkrV9T6AKzC/OmNfX4Zbxvs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwikYxUxd8Ef8FUEdFjxN2oGfY8EenQNopJZ3ukVt5qGuubuaNu
	/82MTuoOfTx9Ub4Xzq6NU6MezRZBepMZ+Pqs0FUSwEpnFkWAnfJ++k5pIXFJdXp8KA==
X-Gm-Gg: AZuq6aLIJYlwKRblYDKqy+mJSV3z+0slTVkMAaWft4E4gll20zPvlX3iLwuXK5ac46h
	MyNNjAhW/8RBY6wciTECJCgAuUfJn3LHOINyiHCJQAS7al3OXIUkUYsdxSlG2VPo3adDShjMvXg
	zJEtED3SQN12D86X6zNFnoGde7Quaoy6EbKBMMLW/++MNze8nKmhzl/GjJdKPM8MUoLe1x6sDIW
	17/RC0excVb/hqjQV/CopvEkjrvj+/QKYrnjC5edp9vbAe65+hOdTIehL0Cfc7z3KBffp6RSw1H
	iV/15zVFfS9VRLn/hAABw1o57O6Uha4+c4OpO3xHrZdVWbnY/YyjAMyEIq6t2EHUAJLiDbBE7Z5
	uKpw8eAeTVwbkGLRrnBSgmknV6cJvHQyajUooh8xsEpuE2p3CRLiv+xTGas5DF4/dphbI847C+/
	39XhVDDD+LzZATKRMtUoM+reinspze5NQJjXCGY7jK4nzopOs6giDflFm7GRqD/3PgLjaXiUxy8
	ZoZteUnoHrRhA==
X-Received: by 2002:a05:600c:5253:b0:46e:4e6d:79f4 with SMTP id 5b1f17b1804b1-483201ee7f4mr163094455e9.15.1770647764172;
        Mon, 09 Feb 2026 06:36:04 -0800 (PST)
Message-ID: <fcbdc4bf-249a-4495-b0fb-434c0e793484@suse.com>
Date: Mon, 9 Feb 2026 15:36:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>, xen-devel@lists.xenproject.org
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 11:41, Alejandro Vallejo wrote:
> It only has 2 callers, both of which can be conditionally removed.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> I'd be ok conditionalising the else branch on...
> 
>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
> 
> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@amd.com
> 
> ... to avoid the danger of stale pointers, with required changes elsewhere so
> none.c is only compiled out in that case.

I'm not sure I understand this remark. Is this about something in the other
patch (which I haven't looked at yet), or ...

> --- a/xen/arch/x86/mm/paging.c
> +++ b/xen/arch/x86/mm/paging.c
> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>       */
>      if ( hap_enabled(d) )
>          hap_domain_init(d);
> -    else
> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>          rc = shadow_domain_init(d);
>  
>      return rc;
> @@ -645,7 +645,7 @@ void paging_vcpu_init(struct vcpu *v)
>  {
>      if ( hap_enabled(v->domain) )
>          hap_vcpu_init(v);
> -    else
> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>          shadow_vcpu_init(v);
>  }

... these two hunks? In this latter case, I don't think the bigger conditional
would be correct.

> --- a/xen/arch/x86/mm/shadow/none.c
> +++ /dev/null
> @@ -1,77 +0,0 @@
> -#include <xen/mm.h>
> -#include <asm/shadow.h>
> -
> -static int cf_check _toggle_log_dirty(struct domain *d)
> -{
> -    ASSERT(is_pv_domain(d));
> -    return -EOPNOTSUPP;
> -}
> -
> -static void cf_check _clean_dirty_bitmap(struct domain *d)
> -{
> -    ASSERT(is_pv_domain(d));
> -}
> -
> -static void cf_check _update_paging_modes(struct vcpu *v)
> -{
> -    ASSERT_UNREACHABLE();
> -}
> -
> -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 = {
> -        .enable  = _toggle_log_dirty,
> -        .disable = _toggle_log_dirty,
> -        .clean   = _clean_dirty_bitmap,
> -    };
> -
> -    paging_log_dirty_init(d, &sh_none_ops);

How do you avoid d->arch.paging.log_dirty.ops remaining NULL with this
removed?

> -    d->arch.paging.update_paging_modes = _update_paging_modes;

Same question for this function pointer.

> -    return is_hvm_domain(d) ? -EOPNOTSUPP : 0;
> -}
> -
> -static int cf_check _page_fault(
> -    struct vcpu *v, unsigned long va, struct cpu_user_regs *regs)
> -{
> -    ASSERT_UNREACHABLE();
> -    return 0;
> -}
> -
> -static bool cf_check _invlpg(struct vcpu *v, unsigned long linear)
> -{
> -    ASSERT_UNREACHABLE();
> -    return true;
> -}
> -
> -#ifdef CONFIG_HVM
> -static unsigned long cf_check _gva_to_gfn(
> -    struct vcpu *v, struct p2m_domain *p2m, unsigned long va, uint32_t *pfec)
> -{
> -    ASSERT_UNREACHABLE();
> -    return gfn_x(INVALID_GFN);
> -}
> -#endif
> -
> -static pagetable_t cf_check _update_cr3(struct vcpu *v, bool noflush)
> -{
> -    ASSERT_UNREACHABLE();
> -    return pagetable_null();
> -}
> -
> -static const struct paging_mode sh_paging_none = {
> -    .page_fault                    = _page_fault,
> -    .invlpg                        = _invlpg,
> -#ifdef CONFIG_HVM
> -    .gva_to_gfn                    = _gva_to_gfn,
> -#endif
> -    .update_cr3                    = _update_cr3,
> -};
> -
> -void shadow_vcpu_init(struct vcpu *v)
> -{
> -    ASSERT(is_pv_vcpu(v));
> -    v->arch.paging.mode = &sh_paging_none;

And the same question yet again for this pointer.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:38:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:38:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225494.1532006 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSP8-0002vL-SL; Mon, 09 Feb 2026 14:38:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225494.1532006; Mon, 09 Feb 2026 14:38: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 1vpSP8-0002vE-PW; Mon, 09 Feb 2026 14:38:22 +0000
Received: by outflank-mailman (input) for mailman id 1225494;
 Mon, 09 Feb 2026 14:38: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpSP7-0002tn-8q
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:38:21 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f7113c48-05c4-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:38:15 +0100 (CET)
Received: from BN9PR03CA0926.namprd03.prod.outlook.com (2603:10b6:408:107::31)
 by SN7PR12MB7450.namprd12.prod.outlook.com (2603:10b6:806:29a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 14:38:06 +0000
Received: from BN2PEPF000044A8.namprd04.prod.outlook.com
 (2603:10b6:408:107:cafe::33) by BN9PR03CA0926.outlook.office365.com
 (2603:10b6:408:107::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 14:38:11 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000044A8.mail.protection.outlook.com (10.167.243.102) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 14:38:06 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 08:38:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f7113c48-05c4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h+H+KWWznYDZbzRocsU4waH+x7nlb0rOSWPx+Tcw1ePoU4A8rzAbs5CPxD9ipbjELLzBvgj8Tdo2xr4aLBk5SWhhhf90v4eqp1snKfX8yFDpbCfTf4k5epjI6+qCyUSHC0B+YSAJwGPe1EWX8kGD/6yrH1oS236ZZc7vmF6vOQU0A/eHjlSL65MLIWa6RiL7BqY1OCOQr/RUuLODiSiM4OBd9EZBWuYKlJNJCKErg6hoEQw5cjcjGMIvMgDlpebkEh3X6GRMzJ1hFl670IbWsbiZK+wVm2AmIVIlRCiHiTPeEQcCI156dIPpED1Lj3pPKqVmmfidF6ynZjFu1PQ0Vw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Gn12UfPFihhH+wxtx1AeC7kZFezimNVmrRvx7f0cUCE=;
 b=Oh9J7H4ByCIxnCYJ1A/7+0BY5DbnZaEle9Uskni9rnNkActXL5+c32ONaMdu98OwTDChPlAS4uNNO6OY8yiuBMdPybF2TQG6+7YHTC1u6mn0yeSKP3RHws9nR7wXPCCumei16H/GYPXhgMVO3Xb00M9b9kUFNINCyOro0oEkYWbT86wWrtisG6q+qpa5r4e5tI/JO9k5yJoat7f9+hvrRfqzXHWWISNSKWoE2N1m1btfmnGS3KNgGaL2DrtEzb15WXFUdtVhW6XzqyoGtxdJAkMY4BDfSszu/+9tRO8K696z2NEHA643I23n8dA5k1FJ4AfOMVMRB0Nkap9a5/1I/Q==
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=Gn12UfPFihhH+wxtx1AeC7kZFezimNVmrRvx7f0cUCE=;
 b=YqJ9wWQe7mE70OSlaKEAHjofHulOqsMA+eK+dKq4NAJT/vrj0XJ/s0HHUwVNw1Q+8PUtCKmM+PmMstXAlBddtmWU+e7+7FC5aSyqgi/nds6XUz2ckif3qVF5Nn+3yuPwf+4a7pFlr/OOEMyRd/93Ru5nLpBANks5xCX/ER2AohY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 15:37:59 +0100
Message-ID: <DGAIAEFBG8RK.3EP3TSR06KTOZ@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 00/12] const-ify vendor checks
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <608472d0-517c-4bc5-b5c1-c278c4f6620b@suse.com>
 <DGACI1R7MGDO.1SB7OMQQZ1NC3@amd.com>
 <836c1ef7-4ec3-4c4a-b527-17066327ff19@suse.com>
 <DGAEV1NFZF2A.2ATDMEFZAIZ5S@amd.com>
 <57c4d4d5-5588-40cf-919c-1e337328858f@suse.com>
In-Reply-To: <57c4d4d5-5588-40cf-919c-1e337328858f@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044A8:EE_|SN7PR12MB7450:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f289284-3833-453e-ca17-08de67e8d6b5
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?ZjE1L3pOZExoRlY1aDd2UHlTdzRLOFR6MFpnRHMrUk01SE5JTWQ1Qmcwc3BX?=
 =?utf-8?B?K3dYdmpoRlVibDR0REhBcnBna1A2SmFyVlNRc2xSdjh2aVI2Y2hvenhMdlFh?=
 =?utf-8?B?bDRwTzArSWJVR2cyZzhzN1lMTGZXNzRWWHpJKzZ1RGlJSDh0REdBdjQ5WC9y?=
 =?utf-8?B?eHF4aHJPWi9tR1hyTFRrMXV5NlV0aGVwYUd4TEZ2ZUphSVdDZGhPd2dqMVlk?=
 =?utf-8?B?QkxTZFlmZEpRZXJlT1puZmpOblRSMGFteVZlbVpTZ3kybXJWZ3V2YmtSeWtQ?=
 =?utf-8?B?blFLYlZXQ09LeW5zbGVUbG1DWm52djVRUzhscVpsRkxFYWlGQkNLVVd6K3Mz?=
 =?utf-8?B?eU0zdlVyYWpiYStqeE5SbzkyU1puR2ljczhrSTcyUUVKdzNKK1NVY3h2R01M?=
 =?utf-8?B?SncwcEVHYk41MjlZai9oSGdHOW5wb2hoOGxDNWJ4aUFvT2ZHVWh3R21aRnJC?=
 =?utf-8?B?eUdnRWd6T1FLQXgySlM2RVJXck82a3hzZWZaV1FVeEc5cmJhZTVITnhXbmxW?=
 =?utf-8?B?NGhoUTFQMHBtUTNJdG9pOUlIT2JTRFUrL2lQVlFYdm1WRFN0MFFvN2c0S2dr?=
 =?utf-8?B?cGNVUDJoemVGWXlJQzRTNjRlMU5teDM2QkFIam80UXFNZnFBY2tFRG1oUjQy?=
 =?utf-8?B?Rmh6RksrR21VcnRCMVd2WjFGcUVOWHFob244Qm5rRFFTL1JPdXp2ZHJMQmtC?=
 =?utf-8?B?aEZGWWx1L2NraWt2S3BDSzgyZUtINkNRc3haMTNjUEV1dHVTM2FTbDlzQUs1?=
 =?utf-8?B?RWZEelZNTHBDMkZmR0t5WGtTdWhCeE8xTmYrUmduRzVxZ050N0RiaW5HanJR?=
 =?utf-8?B?M2dHd1VVZzR2QjFMWjU1YXFHa1RVdXQ4ZGVFNFF2OFBZbCtJY2YwdzRKMzMr?=
 =?utf-8?B?SGhXdlFQcWhudDlaQkpDMGJjQ1k3MCs5REk5ck8vSW9wRTl2cUc2dUVsd1BU?=
 =?utf-8?B?MTN2QkhyclFLNk1zK0svQ1J4cjc4ZStuZ0NaV3F3WVVXdE1WY1lPeTUwWThJ?=
 =?utf-8?B?RTZ4MEEyeDI2blNqVW9KS2tFVkxUQTRSSktZajU5eUUvOU83NjRaRHFrR0RT?=
 =?utf-8?B?WG5zdkJidmxwMVkxWjlibDZYWVRIRUZoc1ZZNnlMMldrWW0wVG41QTBlZmwv?=
 =?utf-8?B?RWNsSDg5ajJvMzJQK3dVa3k2MFJnc0R6djJXSTRXSlRZdUxwME15ZngxVFE2?=
 =?utf-8?B?cFZYYXFtRGpWZjRwTWNmVHlWUDVuRW9uTmEzeUNmL3hzaEdpQ2c4V0Rjb3pH?=
 =?utf-8?B?VUVHTnlKUlRIMUs4SXYrMEY1a3ZTczBGWHh6bG5zUml0aVhnR0pJSllEL05D?=
 =?utf-8?B?UEFNU2o3RFY1ZGFqWjJjUGxnKytEanFFUy9heXhsY2gxUXYyaklpSXFCSmpM?=
 =?utf-8?B?UzJWN2Q0QWlabWFSLzlMWWRSMDMyOCtmMjE0R0hWWEFsVzJpQUFqeFB4Zzl6?=
 =?utf-8?B?YTlKcUNZOWozWklNckg2eXdZYWhnNSs2SHdDOHRkZTZtZ3EyQWVRdlZDWnpH?=
 =?utf-8?B?QkJ3akV2SFEyU2Y0Nkl1UjRXTDBwZW9STW1kb1F6YVR2WC9IS3FZQTRpN01Y?=
 =?utf-8?B?YmE1R3puMGg4aFlDRDZ6cTZtQmpQNXJ2cHRDS3lVTFRKVGJRMmwzUDhucEFC?=
 =?utf-8?B?aDVuMFo4N0d6Qld1K0NobGlkVEdsODdWcXgrUlU1dExHQStSdnZtNEF1WWVT?=
 =?utf-8?B?SWNFNzBkM2w0U1gya1ZsWDh3SWRrTE94Q3VrM2hMMDhxU2Y4ZldSeEpZUFBE?=
 =?utf-8?B?MDZ2NXRhbkNQb0pMbDIyRlN5Wm8va2lxRDhBMXJVMCtEbHFFUXRvcmJYUXRs?=
 =?utf-8?B?SWVhaWE2VHBOeVBZZHUza1pVY3J0V1FqK0pnTnBuVlNsN2hVeDdiWWhxSTAv?=
 =?utf-8?B?eWhyVjBIV1QxR2w5V2Y3NGxQd052aXI4SlBhcm9RU041NSsycUJKSml4cHlk?=
 =?utf-8?B?N3IweFhmLythS3czZVJCU1B6clNpY0ExRm5qYWVTazdyWWl4VjBnQWpjeWZB?=
 =?utf-8?B?S0tuei9EeWY1blZCTUpRZmt2UUlKdXdzUDI5QkpRandTTGM1MTBvOEFiTjZs?=
 =?utf-8?B?eVFFMmpaYWRxNjFscURqTUlleExyWVlUUS9DSHJzTXpnN1g0OS9tdlpBc3Az?=
 =?utf-8?B?RE5GZ2FRNDRZV1BMejFnVnNQSU5yTTNSeEJETk1OdXc5OTF1MUJVRXNBdGll?=
 =?utf-8?B?YzEzdTE4SGpNRTZZSnlEQ21SbnhYMlZrTThRajRKM0xSa0ptemhad2tXREpU?=
 =?utf-8?B?a3dMKzhkV3ZNcUIwY2tqNHp5SVF3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	yDQGe2OWld8ffx5IOw5+5wIx+SrHv2pc2vQW0agl06lZPlrOrWlAbNW3vKVACQcTVJFG9qMpbc69IFPK47+NG5JVkTxQ1U31Qhpbv1sK5BLa9O4y05ugDK+jiQEb55LAjzL2tXixlKgsdq7ZHIaMzfFHa14Hgra2hMHragSXzUlnAedQIeLFF0VudOpevzrHfTr/FySezwwWVoxgfSHGdwQkFYKA/RBtE7MJ2zUJEfHFBR/O6tE5DLFk6S7kx7NpSpRZRgxwcRQ/iwGK5mI/D17IHNU6d7huyRlDekvh5tkj9Nn9tMMWMUlH6NRA7RwVqovgiVZSfdJ8Jy+bTMEJPuAnAOqrrO53aj7hguF9XQmyZ8nt8PgX4ANh78UD8/HVkWZwZo4nhUfJEiP7CIxSRVFEnPYE7Pf8J1sirEaEChUv67t2pEZluDbDGfB69Tf7
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:38:06.5065
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f289284-3833-453e-ca17-08de67e8d6b5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A8.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7450

On Mon Feb 9, 2026 at 1:52 PM CET, Jan Beulich wrote:
> On 09.02.2026 12:56, Alejandro Vallejo wrote:
>> On Mon Feb 9, 2026 at 11:15 AM CET, Jan Beulich wrote:
>>> On 09.02.2026 11:05, Alejandro Vallejo wrote:
>>>> On Mon Feb 9, 2026 at 10:21 AM CET, Jan Beulich wrote:
>>>>> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>>>>>> High level description
>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>>>
>>>>>> When compared to the RFC this makes a different approach The series =
introduces
>>>>>> cpu_vendor() which maps to a constant in the single vendor case and =
to
>>>>>> (boot_cpu_data.vendor & X86_ENABLED_VENDORS), where X86_ENABLED_VEND=
ORS is a
>>>>>> mask of the compile-time chosen vendors. This enables the compiler t=
o detect
>>>>>> dead-code at the uses and remove all unreachable branches, including=
 in
>>>>>> switches.
>>>>>>
>>>>>> When compared to the x86_vendor_is() macro introduced in the RFC, th=
is is
>>>>>> simpler. It achieves MOST of what the older macro did without touchi=
ng the
>>>>>> switches, with a few caveats:
>>>>>>
>>>>>>   1. Compiled-out vendors cause a panic, they don't fallback onto th=
e unknown
>>>>>>      vendor case. In retrospect, this is a much saner thing to do.
>>>>>
>>>>> I'm unconvinced here. Especially our Centaur and Shanghai support is =
at best
>>>>> rudimentary. Treating those worse when configured-out than when confi=
gured-in
>>>>> feels questionable.
>>>>
>>>> Isn't that the point of configuring out?
>>>
>>> That's what I'm unsure about.
>>=20
>> I'm really missing what you're trying to make, sorry. How, if at all, is=
 it
>> helpful for a hypervisor with a compiled out vendor to be bootable on a =
machine
>> of that vendor?
>
> No more and no less than for a system with CPUs from a vendor we don't ha=
ve
> support for at all. Let's assume someone wants to start adding support fo=
r
> a new vendor. They may first try Xen as-is. This wouldn't panic.
> on how exactly they would start adding stuff, Xen might suddenly panic,
> despite functionally nothing having changed.

There's an "unknown CPU vendor" option for that. With that option enabled
unknown vendor keep working as intended. If it booted in the first place it=
's
because the unknown vendor option was enabled. The panic would happen iff t=
hey
add their own vendor to the code, hook it up on the lookup function and mis=
s
the X86_ENABLED_VENDORS addition. Which, incidentally, would notify them ri=
ght
away through a panic rather than having them waste time trying to trigger c=
ode
DCE is intentionally removing.

>
>>>> Besides the philosophical matter of whether or not a compiled-out vend=
or
>>>> should be allowed to run there's the more practical matter of what to =
do
>>>> with the x86_vendor field of boot_cpu_data. Because at that point our =
take
>>>> that cross-vendor support is forbidden is a lot weaker. If I can run a=
n
>>>> AMD-hypervisor on an Intel host, what then? What policies would be all=
owed? If I
>>>> wipe x86_vendor then policies with some unknown vendor would be fine. =
Should the
>>>> leaves match too? If I do not wipe the field, should I do black magic =
to ensure
>>>> the behaviour is different depending on whether the vendor is compiled=
 in or
>>>> not? What if I want to migrate a VM currently running in this hypothet=
ical
>>>> hypervisor? The rules becomes seriously complex.
>>>>
>>>> It's just a lot cleaner to take the stance that compiled out vendors c=
an't run.
>>>> Then everything else is crystal clear and we avoid a universe's worth =
of corner
>>>> cases. I expect upstream Xen to support all cases (I'm skeptical about=
 the
>>>> utility of the unknown vendor path, but oh well), but many downstreams=
 might
>>>> benefit from killing off support for vendors they really will never to=
uch.
>>>
>>> To them, will panic()ing (or not) make a difference?
>>=20
>> One would hope not because the're compiling them out for a reason.
>> But for upstream, not panicking brings a sea of corner cases. The ones I
>> mentioned above is not the whole list.
>>=20
>> Turning the question around. Who benefits from not panicking?
>
> Certain things may work. But more generally - see above. Turning this
> question around also isn't quite appropriate imo: You want to introduce
> the panic(), so it's on you to justify doing so (which includes making
> clear why omitting that small piece of code would be a bad idea).

The justification is twofold. To aleviate complexity in Xen, and fullful a
security invariant in the presence of misuse. Letting a guest run is easy (=
not
quite a oneliner, but not much more). However it raises a number of questio=
ns
with complicated answers:

Save/restore | Live migration
=3D=3D=3D=3D=3D=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 biggest hurdle, as I mentioned, is live-migrations/save-restore.

If I xl restore a Hygon VM on a host running in "unknown" mode (being an
AMD-only hypervisor with the unknown vendor cfg enabled on an Centaur host)=
: What
should the vendor policy check say when I restore?

    a. They are incompatible: Because Hygon is compiled out.
    b. They are incompatible: Because Hygon doesn't match the vendor bytes =
of the host.
    b. They are compatible: Because they are both "unknown".
    c. What if the host _was_ Hygon, but Hygon was disabled?

It's just a mess. And the fact that the unknown vendor path has even less
testing than that of Centaur we can probably count on it being extremely bu=
ggy.

And on the topic of the consequences of bugs, there's the other argument...

Security argument
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

If an AMD-only hypervisor runs on Intel hardware it just wouldn't be safe. =
We
can make statements that this configuration being unsupported and known uns=
afe,
and everything along those lines but mistakes happen. A mistake in producti=
on
where a vendor-trimmed hypervisor lands on the very trimmed vendor means a
security hole. And saying "that's a 'you' problem" doesn't cut it, because =
I can
make the same statement to users and developers of new vendors.

I can only see very theoretical use cases for the lack of a panic and a ver=
y
clear danger of misuse. early_cpu_init() runs after COM ports are configure=
d so
it's not like we'd reboot without stating why.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

If it's a hard requirement, I can change it so the panic behaves as it did
on the RFC, but IMO it creates real problems for the benefit of imaginary u=
se
cases.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:41:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:41:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225501.1532017 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSRj-0004cV-9D; Mon, 09 Feb 2026 14:41:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225501.1532017; Mon, 09 Feb 2026 14:41:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSRj-0004cN-4q; Mon, 09 Feb 2026 14:41:03 +0000
Received: by outflank-mailman (input) for mailman id 1225501;
 Mon, 09 Feb 2026 14:41: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpSRh-0004cH-Lr
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:41:01 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 590a2291-05c5-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:41:00 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6641.namprd03.prod.outlook.com (2603:10b6:806:1cc::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Mon, 9 Feb
 2026 14:40:55 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 14: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: 590a2291-05c5-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Nnyf2ogBZH3Y7/qcnevx6p9v+z4gWTNF4cgQTfBDrGYB87j13PRXpHRmLrarpnZEvt13Ti/W0RvXkUlea3PYHk2kGJpuBOs10s7Y1Zcxr3LbraHUnA3eh4Yjmr01i+BieGzbpRgywcsv4ydkDikLaPwRcI73I82XEXUwFnVoGT7Wo9ya8CQWqDPXOQ7gdKNu5wl7BLSQZZX+DCv0nEuJpfWiIod5PeCJN5qxZz9h38z8Be9SAvBPQvTWby/jAfVnn1KC8ppPCBxNFZVredA/3WLXRlCeUHok6Z5oYVf0X/kyby/54e1MSdjbJEQPCZrVXolmIz/R8NVvjosdan4qfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5vnjWHHeT8/l+RzwQ5S+oy92xbLdGrhmy1Q8HLAPSz0=;
 b=rZPtZRoCWFr/GMJW3hYbPp0DdvofySgUMtHjuFm2jk7gRiQmZ+QvPK65tL/jWvs7peJeMUzv4cenVypueqkaRn1WH8esJEOOsxydEHa4VXpbltUPE+dus5+LJqa+rlBbkoPT/8j6Q1ntwilySYle31NQo8znGA4wd3tYzHxpnr4SY0LxaizrWsjVJZlTnTWqXxdi3dJYbDz/yRG3WM3NwvuaYrtTjIoS50rVxoeY3rFlNaXEmcz/HUakbPrpvRa+2xgqkhJEq6R8bP0KUa4MKgfCwnylvD8eyEYv0UzgSQxIG0RlPJ8TkKFR6GvZEt2mLtiFqW9t5lJe75gXDQicgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5vnjWHHeT8/l+RzwQ5S+oy92xbLdGrhmy1Q8HLAPSz0=;
 b=qI3iZL9edog19y/R0ur2zFbpUjriJyTNuv/rVMDcdBCBeXspJ2wYDIPvrWyG1sCnxQLHRK+HVa+8CyY8FBplMYaokAqmIen7OcqMC0mbDTCvx72LoPjvsMfi/IRg/uaYC10yI/ggUtTqa2wDG+wsKXlC+eQxQZWTEhtjkIFasNo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] x86/hvm: short-circuit HVM shadow guest creation earlier
Date: Mon,  9 Feb 2026 15:40:49 +0100
Message-ID: <20260209144049.86535-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0034.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6641:EE_
X-MS-Office365-Filtering-Correlation-Id: d06f133b-5f66-4b91-01f1-08de67e93af0
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?aExTdEZPMjFDdmgyWDF4Rm9SQWJZR1g3TGlyUDUvWjZZOEJib3NJVHdFdDlt?=
 =?utf-8?B?QzdtRGhnV0piWklBVDd2OWVFUlpMRnJ6a0lJMmpwaXc0T0ltVks5TmUva2Np?=
 =?utf-8?B?amZaS093ZnNhaFNKQ3pjTmdrNTFlK1FzdjFFaC9XVklZMEpJQVpWT1pvOG1r?=
 =?utf-8?B?ZGFOU0xYNE5yZFIvL205U084VjdvY0FDRFlTejFvRFk2Z29GcGJjcHBYMkdR?=
 =?utf-8?B?Vml3V3gwRmszcHhRQklseUhVS3FDM3FIcW1IaXVrNjRGVm9nY2VpSERtcFph?=
 =?utf-8?B?OTJzcVV0clFpLzRtMlVBZ2lydTNpclh5clg5TzR0b0lDR0tVTHU5LzBjdDFN?=
 =?utf-8?B?UGxNS3BZUGZ1ZTNyeGN0WFRxL2pPTklZN0NUNHhCY2lYU1EvNGhFZWQ0RzJt?=
 =?utf-8?B?MnZBSlBJQjNLMy85UDlXSUVFd3FESkhrRXpUZ285SlNpUlVsb1V0dFRkaGN3?=
 =?utf-8?B?NGNmb2JKRDFLWjZFSjFqWis2OG92RlZMb1I2ZVZtU081NGx2MUhoRFBaMllE?=
 =?utf-8?B?VXR4TnBGcy9CRmNTS0Fsdm1iUlJUUXNWRXgrdGdtK052ZGpYYWkwTmZKd3JP?=
 =?utf-8?B?dFJUUEZqSkN3Qm9ZMEdPZ1htTnV1enRjcG1zK3RselZOSDl5Vkt2TUN5U1d6?=
 =?utf-8?B?anFvZUJHWEpvWUdUN1BWOTlsTXlVbU9LcC9iVmZQTm1xbjhQWVgzMFozdjZ5?=
 =?utf-8?B?TkQraHpOMzQ0cVllVGZDb3dnYTE0K1ZJcXl4VVVJZ0g5ekFvZTJ3QjBIbkoz?=
 =?utf-8?B?UktLemsyM0pZYk1pSkNkR1ZoOFNscmh3SmtTQjBtR0s3LzhBZklYSXZ6a0pR?=
 =?utf-8?B?bWV5VjJWUmpQaE42cCs2RXJZRmtGbERJOHloZWhJMjAwUnRIRDlTN0U2WE9r?=
 =?utf-8?B?ZFZSOUlxZDdWR3lJQW5kSE03My9jRzR3cysyNmo1dUpUcDJ4cGJXK0Z3Vmg5?=
 =?utf-8?B?K3Vwc0hKSy9Kdm44amQvWUlaMXVscjkvUXNhdC8rUklDNlZwNVJtTFdlSHpE?=
 =?utf-8?B?RDZpWDkvaU8zUzMxTjVKMFpmRHhlcHNyNm95QnJpazdacEVQN2VRU3RhYmlX?=
 =?utf-8?B?RmFtTmxPUFRiQUdoQ2JNMFJwM1doeE91TG1FSXBGemVhK2dMdVJJRnBJVnZ2?=
 =?utf-8?B?NGhCU2ZhVkJBd0hKV0hBenQzS1BWbk40NGRjUFVBdldqWmoxclhKd3IzbTgv?=
 =?utf-8?B?b2VkbGlQY2xVb0pvS2t6K0Rhc0hsVGp0NXF6VmhQWUdUSGtwNk5nQzVNYWo3?=
 =?utf-8?B?cW1wVmFtekJnaUJqSVFuLzhZN3Q5cE5TUEpaSkx6UE5rZFkxSC9Wd0JhZzJj?=
 =?utf-8?B?dEIzblJIZi9Gd1Q3Tnd4emplRE5CL2s0ZWhrdm11SFlGNlYwK0NmNTNtQXdD?=
 =?utf-8?B?NDdpUDJ2SW5Ia2xvRUdPVFV3UGVUV3ozK2MrUjFSczVNM2xVbkgvOTB4YzJ6?=
 =?utf-8?B?am5IbitjYlN5TVJoNU8zVExQU0xkOUQ3MWRocFUrUEE1Yi83Q3VaVjBvVUNI?=
 =?utf-8?B?SW1qR1F4WTVxY0FHcjRveEkvOXdtVVN0a2ZPRkJCNVI4RW5lS2ZUUkNnMnhX?=
 =?utf-8?B?UW1jQzBLS21jNURsWktDOWE4dEdKUW9XcC9KU3M2VVo2VWpTVkFkU0hXUEM3?=
 =?utf-8?B?MlpXT0dVWE1wb2xpNS9lY3ZITjdvdDNuN1N2bzZCUWhrYTN3MmV3ME9Xc3Ft?=
 =?utf-8?B?QlRiTCtTc01SSFMxYm56d2FSeHVscDJhbk4zQ1BXV1dzM1FSSzFJNUxGQjF1?=
 =?utf-8?B?TDJ0UFlPaVBnWDhGMTlkOTRsSGZGV1IwMEIxSTVFSVZrMVVqam4xVDl6bGtm?=
 =?utf-8?B?c1VOM0NUQkhrVE9hd1F1bWZlVS94ajRSTW0zVzYyaWJlQjZRakdrZmhkR1pF?=
 =?utf-8?B?cGZTcCtWUjdwRDlYZGp2OTVBc0dkY0pHblZFZGROeVYyZGFKQzFBWmxGUnpW?=
 =?utf-8?B?RkZzK2xvVHlJczNHQjBZVTlNRjFxQTNnRVlGOWxtL2E5NC9zRXdhbHFBMlk0?=
 =?utf-8?B?OWwzcUNRVHl2eVEreE9uVGVUQTZ6Qk1hUEFJd2NGSzMwS1BzK3VTNHU4bmpt?=
 =?utf-8?B?RHhGUlVHaTNaOWdCM2d5ZlRob1BCdnVvN1VTK0JKSHRjbnowZ25BbXo1ZG14?=
 =?utf-8?Q?B+nM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WnBMbFg1c2dOVnZrcjE1MmRaQ0Fob2dRcDFjLzFhUnpENWh1SWRMMnNiR1lE?=
 =?utf-8?B?cURzSjVkaWdSa2ZZSHQweEdmbmNyenR1S3VzUFRVaTRiNm5aZkluVEV6Tjhm?=
 =?utf-8?B?ejU5VHVyT2plL3NsWVJxRXlMVUxvbHhock1qZlJCZXVRSlRrbTlncFpnbUVX?=
 =?utf-8?B?V3dvcHhkNG0rS2R1NjB4Um04ZUkvY212OXJDS3VnekZaSFYyUTE2ZEtMNnFa?=
 =?utf-8?B?L212TzZFVHdLNzFsT3R4WEVQRnVNQTZqOWNIc2hacmQyZXJxb3ZjN01BeGp6?=
 =?utf-8?B?S0QzTDJxS3d0cGtnUXdRUHBYNzJiVEhOU1BPQmdUSzJoM0ZlM3BmMEhwb1Vi?=
 =?utf-8?B?QWg4M05oemZYbGZMeGsyOTNmVmx0N3JzRUk1VWFEQTZoQ2lrZjhvT1JoQUgx?=
 =?utf-8?B?aXdiakp6VnBjZEh2dFAwWG9IR1h3QjVsYWRmaWNhZlB4aklxSnRtWWx2Yk9w?=
 =?utf-8?B?bW55clloQ05mT1U1WldBMlZuZitZbHRCaUtIVUo2clgzSk9kVHk2ekp4SzRl?=
 =?utf-8?B?SUI4dUEwbkZwYWFFSWZheGRFSkM0OVlNN1RncVJrc0Q0M0pSWEs4aG1LMFFh?=
 =?utf-8?B?RXFrZVljNTJSRVNrdlpTVnRmNG0ydUdUWkJjNkNVSjZSQ2hyNGg4UVRmcDMr?=
 =?utf-8?B?U3R5dC9rb1VFOUtkdEtCZVFiaVRXRGhZclFhdTUvNGtmNlB6NXNnUE1qeHJG?=
 =?utf-8?B?bUNmSE1LRFRkQmFUZGJ2N3VXQ1hmZENvaHliNnZYaVNKd0F4QmxFWlYyUjlq?=
 =?utf-8?B?WEVKanFtNVZhK2Z6SHgrMlJNY1lxcElpYkZrN2U0WWdIZ3BVNjZYbXlpbFJz?=
 =?utf-8?B?MENuaEhUczhHa0JqUGZLLy9TZXl6R041TVdKeDJEVmxLSlVPU2hmUmcycUVG?=
 =?utf-8?B?eXMzS3E3b09oMnZaUkRsN3c4N2owVS9XQkRBQis2ODJON1hXaUhBajVWOGNj?=
 =?utf-8?B?L05jY3BlcStiYVFjeHcrcmhLQlYyUjVna2dBNEpHeGpyWVc2cUlVNlh2WmZo?=
 =?utf-8?B?UTNsMWFzdzYzb3hWUGx4cTFJMlUwRzQ4VnF5WUpyakhTWlFxdm43cTcyeHlk?=
 =?utf-8?B?VjEzMStObDJLNFRkaVpBMHRuRFB6WmZQRzdoamU1VlJJZHo2NGx5SGlWVllR?=
 =?utf-8?B?UUFpY1Fac0xOd0ROZWJUOHpQa0JBbWhDWXNialFuYzZ2dCt0NjdUa0E4TDJa?=
 =?utf-8?B?UHpIL1FEcXdrdkhNc1hseUxTcXFRZEptOXBXTFNFc1RwdlpzK1A1dnFqZDFQ?=
 =?utf-8?B?cDB5eDBPVThiTnp3VHRFcElkOTNlVlM5RkFSNks0L0pRd0poWG9FTXQvQk5Q?=
 =?utf-8?B?UjlhU0RwWTVXaDFtWGJzd2hTMzN1ejBmMklxMk45MGxpZzJJTENHZHB4bU9G?=
 =?utf-8?B?bFBCVjUrTG9RR0dGZ0d0bUY5MWlzT0NJMUh6bXZBNmZaZko3U3V2Y25mNzFT?=
 =?utf-8?B?Umx6NTJtYU1DcFV6RWxPL1FXYXFoZHhEZlJVSFA5N1lwaVdnNmpLZEgrdWhT?=
 =?utf-8?B?WHNnb1J2VEwzQjlnWEVxcGRxem1KQVRqd1BNZ21hOWJGUDJqOElvZDNNaXB0?=
 =?utf-8?B?NmYxcEdBL2d6elpOZDBXN043YWp4d252aHNqRE9xT2Z5N0c5aHhUWGYydVV1?=
 =?utf-8?B?RlFDUG5uNXg4dVZLcXlFQW1rcDFmakxRU2J4cWphcmluTHBLZ1EwQWRKTzdx?=
 =?utf-8?B?MnB4dC84OW9Ka0lXaThDZEV2NjhnRnBmQ2R2b0s1c1ZnOGxYbEFBZHJ3RGg4?=
 =?utf-8?B?V1NGbHJVeDNEWWRxc2VwWllUcnBtakx6UjZGdVFBYmtqcHU0K0J0Wnh1Mk05?=
 =?utf-8?B?M2NVY1h6NjFiYnU0UWRsU0NpdGpTSGp2Z3BTSmZVcEwxZjJmNDFZZ1RBSlh0?=
 =?utf-8?B?TTFObm9LcmpMdmNRcVY2TTBzcURWdVRiYXVqWmpIMnUwU1IwQlg5NlN2MDd6?=
 =?utf-8?B?UzlqOTZ1WGtzT0U2ekUrdXBJZUlvN2xuMmpJbjAwTTBQTnYwS0VBREloTDFz?=
 =?utf-8?B?RFA1b1IyV0Y3dnlPSXc1eG5XaGtNOE9HR2NiMmlvMG9BK1haazF4cXAxQkFM?=
 =?utf-8?B?OEtjSmF1Mnd2VXExT29RRm5HZGE5cTZxSytYV2RueDVmL2NpZ3p6RUQ5T2FZ?=
 =?utf-8?B?WHVvcFlaL3hHSnVISHhoWXM0dFIydGhicmN0SWZJLy9ScWZTMUhWRkhoODc4?=
 =?utf-8?B?YlQ4TFVuYUdNOWtPWHA2OW9zbkhWSFB3bjNPREtYc0hkbDVXZkJadzZCbWlz?=
 =?utf-8?B?cFY0MEN6eU1ZU00zb0Fub3V3azlXMGtCd3BaZXlzdkh5R3NubjFtMStkb3pC?=
 =?utf-8?B?QVU1dTVveVRaSE1QKzRIZW05WTB3L0V2QlFmV0hsSGJJeUZlQU1ldz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d06f133b-5f66-4b91-01f1-08de67e93af0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:40:54.9756
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dE+mzXXY63wYduUxX4UPoT2Fg3MrfVgIiRNF81n//5Fr1jC/+hLbu32tV6VF9nuA3yMo8oRowg+ufw9HQb/fEg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6641

If shadow paging has been compiled out short circuit the creation of HVM
guests that attempt to use shadow paging at arch_sanitise_domain_config().
There's no need to further build the domain when creation is doomed to fail
later on.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/domain.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 8b2f33f1a06c..8eb1509782ef 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -627,6 +627,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
         return -EINVAL;
     }
 
+    if ( hvm && !hap && !IS_ENABLED(CONFIG_SHADOW_PAGING) )
+    {
+        dprintk(XENLOG_INFO, "Shadow paging requested but not available\n");
+        return -EINVAL;
+    }
+
     if ( !hvm )
         /*
          * It is only meaningful for XEN_DOMCTL_CDF_oos_off to be clear
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:42:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:42:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225507.1532026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSTU-00057V-Im; Mon, 09 Feb 2026 14:42:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225507.1532026; Mon, 09 Feb 2026 14: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 1vpSTU-00057O-Fl; Mon, 09 Feb 2026 14:42:52 +0000
Received: by outflank-mailman (input) for mailman id 1225507;
 Mon, 09 Feb 2026 14:42: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpSTT-00057G-BP
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:42:51 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9aebdf59-05c5-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:42:50 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6641.namprd03.prod.outlook.com (2603:10b6:806:1cc::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Mon, 9 Feb
 2026 14:42:46 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 14:42:46 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9aebdf59-05c5-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WX/S8kGfcY2w7KPCDH0qE9JfuqKQWaYcAC2y90aIm95DBlAQQxRrejeYELyILLAOXwDlQmxnloTmDwi5Kb6eGYuCrBFbT2HJCoaZl8HHIdGeC9gvLou3QUyY3wwJ/UrRCgrjPS9JwI4B/dXxWMWJhWOxsk6LOnGYzn2xbIe4Bvbl4Yc9vkh/fcO2HvssRrRapqIhBxhiH5GEdMnH3y5XURfiGWTOXLpwUYsVDBbx7qN79g8BF2f+8XXu+cC79CH2TT6Dbn5rAfD6W7JEIY3icdblNzrAilG05b3BtI1v9tK+4ZpunLtN6FpdS4CwAUIobkhLBtgXN0jdQqWTFogQ+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=/O6ZHyTlRS+Z6itupY7eGYrVktQGBX8QqkBHQyVLAYQ=;
 b=eZH1GufyL5ccauQE5oxK/HyhZeW0oQeKvfD5w5Cl247A5v8ft31SX1VXeb/7xTn03Y94eIfpeyZAziV69LuXnlRwd29cf+3uAeNjAOkLgvigVc7MHojoVzXZ6cQED/pAPCkCI5M5TDjFndMsoZF2PpVApRM1ma761p1LpfWC2WUFI3JXcjDtXeX304aqd7SZJ+aUS4TL4/jJs61gxO1RtPLX2qKHM/RLHR09WYjcUUz8CnhvMg9XJl9d4johQyIUU9ERsQyirw9X2+g01VelorJ4pGndMKE0YEhusiI008di46QPgE56QKI7DGw3l8xTPA1hWVoKgmlifvv5yKRO8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/O6ZHyTlRS+Z6itupY7eGYrVktQGBX8QqkBHQyVLAYQ=;
 b=Ba9XlZdtUQimMzHCn+qtWBaiZcGPKtumEy/seDtNOF5eGhh8+GmRjFMe+dsUR3sDBTG3VtYbBtintQijJBOUJpNaNYIyGtOtHpRMEU8EhI+VnBH+qB48D6jorWub32jercjTePQ7rEK2qP7xtWi3av072nJhTkRWqpR/HZ6enik=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 15:42:43 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
Message-ID: <aYnyY2MArv4vTXsY@Mac.lan>
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
X-ClientProxiedBy: MA2P292CA0018.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::8)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6641:EE_
X-MS-Office365-Filtering-Correlation-Id: e221efd0-eac8-41af-b135-08de67e97d7d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VkZielJXT1lvUkYwQzJTSCtoOW5zaGZaSk9iTW1admxEcTE4dU1sZUljQTdE?=
 =?utf-8?B?MmdTazdOQUg0VEkzaEJVcjd0V1hxL2E0ZTlzVm04Yk5SN1JsU01EVzZDekx2?=
 =?utf-8?B?WWVRRW9oSDZWZ3g3dTE1U1Z2TkJZVERmanhabm5XUE9OdFZJZkhSSkxEdVVp?=
 =?utf-8?B?aDFQcjRBeXFUaEdRNHVsUUZRdGVIN1FtUFl3Ti9KOGNveExTUGw0WFBHMUk4?=
 =?utf-8?B?dnJ6b2ZEdUNGdmJMU3BoT3lVOFFJWHYrRFJuR1pPSUFibkJid1UwRFZVYzFE?=
 =?utf-8?B?VXFCVkViMWZ0WFZuVkdKaXlpTklqUkR5dW9DRjNybTdpMTU0L2Q1eUdETllj?=
 =?utf-8?B?MDdDOFhJc3NHS3R0RFZMOHpIcEEzRDJQZHBhKytheUtoZWtKbzAybVBPekpz?=
 =?utf-8?B?S2RlQU1ZcVVTRjRnZ2kzOEdZU2tCd1ZRblpyUTFickNxa3pHVGw3bDJuc3Ux?=
 =?utf-8?B?VXBIc2FobWIwNk12QVE1M2Npdy8zODlTbVZTVVpycGJoMms5bjdTL1IxTHIr?=
 =?utf-8?B?eXVadW5IbzBlcXVEUHhON08zNmZCV2hUanJsWE03dFBScEF3S0ZuYnlIQStE?=
 =?utf-8?B?VnhITTRNcy9CWkpsVGFrV1NFYVNDa0x6Zk5zMTFTdVRtUkhNSGZaMk9LZFBJ?=
 =?utf-8?B?allJTk85cnFra0Qxa0I4WjloZSt5eHRpTlRGNVYwNG12RUFzcW01OFN1eXN0?=
 =?utf-8?B?U3hHTlZyY2dIUEdmNlI4bzFoUDRDT2ZDdkkzbEFVZk1lMy9qRUNQSU51RUhh?=
 =?utf-8?B?NDhuVmxsMEZmRUJFVlRNaWk5aklmeU5kRE5ZeXFMa216alR2cTI2dFkzWlBZ?=
 =?utf-8?B?NVFkY3NBbzdBUHJZdjdYTjA0VjRnZ0VJZ0hNZVZ5R2RBU080ZmlUMmxOOEtr?=
 =?utf-8?B?VDh3YjR5KzRuYjFlSEFZNVJUNDBMZXJmTERuai9GOEZNa2VjOTlnV041aTNB?=
 =?utf-8?B?MVpGeGxlaXhnU0ZNc2ZIYXgwZXdLSnl2aEdycmFQTFlvbU0vRzZRNmNGWk5r?=
 =?utf-8?B?eE1EeGY2Rlh6S0lwVU9WaXd4cG9LQUR2Tit6WTcwSkpaRGkxVHNaUmoxZFFL?=
 =?utf-8?B?WjU5ak94MzlGZWJoaUdmOHM5THk1elBvV3BXRGRmbmJ4UVk0eDV6aU9hSmd5?=
 =?utf-8?B?bWlsUEs1QWtDcUhHaUZhN2xaTGthZzMwZjNYa2xWTmZCYmhLODRPUkVRcTR6?=
 =?utf-8?B?Vmttd2JSVmphK1BZSHIyT09IVkFrc2psMWl5ejd4dUtlTzRWWUNOcG1DNnV2?=
 =?utf-8?B?ZFRlUk5wdFlaM1lhK2Q2SjZMbitRNkQ5ZmZCRjdQcHFSYkttQ1Y3M2VsS295?=
 =?utf-8?B?MkZyZGVQeGF3M2QwbGdlUVk5bEpudUhFbjdOVndrMHZWL0RmZFQvRUFoRTdG?=
 =?utf-8?B?SDBIOTh0RWZhdm45TGtxckR5VzZPOFRQY1I1Z2dvY0IyWFVKWlVlS2w5dHdX?=
 =?utf-8?B?QXQ5UGxGcEV6VzczdjhDY3RRRUFrMzFvK0gxaUFONEs2Qlk1S0loZ2FHVVhV?=
 =?utf-8?B?QVpKZm0zYnF4YmV5KzVyMWU0SGYxUDdsYUtXN1RYYndQSTlxb3l1UFNvTzJq?=
 =?utf-8?B?d0gwdC8zSVA2blZmV3F1UjBXWFNKSGR6aEVzWmdyZ082NFEwaEc2amNJNWFl?=
 =?utf-8?B?cXExdFI2VXcvckRTYjZnUFUrQUdqdGV5bHJxclo3UkdmemYwcENjRlZHYjBv?=
 =?utf-8?B?TjBCQklZSXQ5eE1WanlLd1AyYXhNdktmTmI5QXNOQmdKRVk5Tjh6TjlkMjRh?=
 =?utf-8?B?WG1zVG1DWk1rSUd5L2gzUEo4UW83M1cyMEdLcFM4MFlzL2U1VjI3cjBGWEwv?=
 =?utf-8?B?aWYxRmMvaEZhWHZtQTUxMW5FRGkwVUtNbWNJaENkQkZBMHlpdDBCd0Uvb2Jj?=
 =?utf-8?B?WFdHNGEwRGFEbjVibWNiMUhZVlluTlk4YmduUkVuMXNxYXZkaUc2UnlXZHNQ?=
 =?utf-8?B?T2NseWU4SUIxNnY2Y1pJa3hqeElsU1VFUStBV00xeHNBWDJnMlYyMGdoL1h0?=
 =?utf-8?B?WDZZMnY0aHRiSTNlbmNmL1NMcVovNnR2STc3dU80amlNckx6SzRZb3FBY2JJ?=
 =?utf-8?B?QzhTS1QzYVJGZS9ZZmVNcWRCcFNvbXVxdTFwcEcwUmNCeTRySm9DNTdSaGRI?=
 =?utf-8?Q?3pis=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZVhuYS9iSngvYUV6WFFWRDRnalZETnZseldEbWxwWXBOWExZckgySlZScVNy?=
 =?utf-8?B?SS9RaVk4SVhFUkpxZmI4U00yekdEdGowVkt4bjRtcjNPTlUyN25HZzNOcTlj?=
 =?utf-8?B?cThaRUNBS3QraEtqYXlkVEN5UURldk9adCtHTzlES1l1MVZHRlJBcUYwRzFn?=
 =?utf-8?B?RVUxN2FqQkdORFJ0WkhCL21Ed2Uxb1VjVDFmbmg2VDdPVW9PRnhMNzVNcFpP?=
 =?utf-8?B?QUVuT0xlZUQ2WGNudGJnZ1U1Q3BNN01BdFFJNWljN3FhT01FZXl5N0hIY1hC?=
 =?utf-8?B?dm8zaytibzMrTU9pQW1Jc0JMa0hxREIwd20xcXBmSmpaRGNScHZxaDRtZldM?=
 =?utf-8?B?bFRPdnhtV3pNRVgwbGl1QzkvaXphaWZGSW0zREJYN3B1NGk4Y1llUTFrT1dQ?=
 =?utf-8?B?MmtpTDE1VVVuaWFhdFJ3VmZtNWZUTXJXLzlVSWVrbDhuTEtaVUN5ZVkxRnFv?=
 =?utf-8?B?YlR1NFlBamI1ekN6N0cwaGIrUnJiTFo4Z21ZeDl0QlBUZnI5T0hZb0dVU0Na?=
 =?utf-8?B?bFNVbmtGVVZSYk5BTno0Mzh6N1k0NWNLcm51MjdYbW9kVGl2SjhPbWlaNCs3?=
 =?utf-8?B?RXFEajFMRm9PeTArQjFtZFRhSzVFUFdYbE91WmduUVUwbkQ1MEwweHVFQ1NZ?=
 =?utf-8?B?VVNtMHoxR2FxcDhzTy94Z2U1N3hYbHB0cFIzaVNYRDZmdkY0NW0zQXFkUzYy?=
 =?utf-8?B?cDM0czhTeU9EcjhaaGdDWXVPWTRsUkdCZ1lOa1ErelZOVTZuS2x6QU1FREdL?=
 =?utf-8?B?aE8vVi9vb2FVc1ZjVUhYYzVCNUE1SHM2MWR6VGN0Z05rdDA2TTFNOVNrZUdD?=
 =?utf-8?B?MjA0SVJ1SVk3dGw0SmFIRkZaS1luSWVvMFNBL3hhbDFVNVRwRTBYczlvMFlL?=
 =?utf-8?B?eFIxWnNzN29NeE8zb2gxWVk4ZWcwbmZSbm1HT2pEdjdaT09vOVU4RjUyN3Fh?=
 =?utf-8?B?bmk3dmg1c0E3a08zS1VVc3NsNTVEK213ZFlleTJ6UlNkeWhLOWNoaFRoMExk?=
 =?utf-8?B?eWpTcWZYb3VMZG05YzVMd2hIQ1AvcVR4bEJibnl2UC9uZ09YNHhTemVzYVM0?=
 =?utf-8?B?bnJ1TFNFMk5ORTNsb2JmUWoybFNweW10YTNFUUsvQnNIbThRSUwwSlhyRnl4?=
 =?utf-8?B?RXRuNkFNaDVPeHU5dkNXUnZVb1B4V0E5MEdieUsxVk8vZGlLOE10WVJ6d253?=
 =?utf-8?B?M0lIRmRDdEJCUlVjcnEwbXhRRUVJRDRTWGxPM25XTTFlUTlVVGNwMmVNcUVF?=
 =?utf-8?B?WGxlczlVYW54em84UlBmNi8yR3l4VDZ1ZFJzYWFScllXOUdDSjNBKzRqZis1?=
 =?utf-8?B?TmV0SU1WajYyekUvem52aEZIdnUwWXZqNWszNE00REtqaFhrM1NoU04zQVd1?=
 =?utf-8?B?MHZ1Z0VqcXVva3ZQSzE2ZEk4R21QVkhPUDhTU1BXUHBXQWdyUXR2Mk1kY1gw?=
 =?utf-8?B?VGNOejJld2dNUXBpbTJHNm1tZ2cwR3c4cFZrWWsySDh0R3cwZ25aQ1R4bGdk?=
 =?utf-8?B?NmhzZlBTWnNzYlFLTnpCbnhUUjRKdFZFU1FPZ1FQTndobkI1QmdYUWdka2lC?=
 =?utf-8?B?NUlYTFBudUJvNGdsQ3JmSmdUNXJqYVczL09XOU90TkJ1b2F3US9zZU9NVWZ4?=
 =?utf-8?B?OEJwbDd6ZEJEU01LbkJyS21iWllqdGRCT0x0REVMd3ZIVmttZm9rRVV5N1U5?=
 =?utf-8?B?alRwemcyOU9hdHFrUkpiQzFNTVM4RTNNdVJHL3IweVFzVGM2Vkd5RDBFeCtN?=
 =?utf-8?B?R2toaXp3YmVQbGRLVGt3WThRbkFYa3QxN002MnpRL2ZaSVNYQjBKZmExRXha?=
 =?utf-8?B?N0pEenpvbEk0QTNnSGt2WEZvRU9SRG45MWkzTVV6V1NVSkZpNFdoMGZ1TGhi?=
 =?utf-8?B?Z3RqSEw1eUxJN1NLY0VuWFV2KzJnbkFoYXJYd1Fub256bCthMzBRTzJQc1hW?=
 =?utf-8?B?SmpKQ0N1SnlVMHJnYVVHcDQyR0IzblRQYWFObmp1bUkya2F3c080VDZjdUFL?=
 =?utf-8?B?ckRXZ3k3Y1RwSkRBZDh1Z0pSalNjUVFRelBKNm1nK2tlKzkxdDRIN0p5R3lk?=
 =?utf-8?B?OFBsRTFKVVExN1oxZlppU1AwNUVHcFY0VVBOdXlOWDJ2MHNXTjE3cTVIMVRm?=
 =?utf-8?B?dG9yeEJQWUd6T0p1aVBWNEdiNmlJSXJNMXRlV1UvYlVqY3ZxdWVUOFZiVnNa?=
 =?utf-8?B?QlkvVWR6SVRCSmFHR1VUdGJ3dGxkRFZ6c2RDbkM0TmgrVm90RjZ0dXc2MlNJ?=
 =?utf-8?B?eUdueWIxbUQrdWIwMUQ3YTVFR1F3cGFhVm4rbG5ZUDdvc3VSZ29mU1Zkd1dp?=
 =?utf-8?B?NW1CZ0VJdlFuMy9nMGtPSm9DcFlEQUFLVlNscFFvRWhxYUN3WmdaZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e221efd0-eac8-41af-b135-08de67e97d7d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:42:46.6393
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UoEuyWqW6NUMoELmz6j4olf0arIM8gqyxP2bk/BJ+qQ6rk5+jzMdQewjegVfRApiIsKDJu1nEDlMe9hHDOZlOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6641

On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
> It only has 2 callers, both of which can be conditionally removed.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> I'd be ok conditionalising the else branch on...
> 
>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
> 
> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@amd.com
> 
> ... to avoid the danger of stale pointers, with required changes elsewhere so
> none.c is only compiled out in that case.
> 
> I'm not sure how much it matters seeing how they are all unreachable.
> ---
>  xen/arch/x86/mm/Makefile        |  2 +-
>  xen/arch/x86/mm/paging.c        |  4 +-
>  xen/arch/x86/mm/shadow/Makefile |  4 --
>  xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
>  4 files changed, 3 insertions(+), 84 deletions(-)
>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
> 
> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> index 960f6e8409..066c4caff3 100644
> --- a/xen/arch/x86/mm/Makefile
> +++ b/xen/arch/x86/mm/Makefile
> @@ -1,4 +1,4 @@
> -obj-y += shadow/
> +obj-$(CONFIG_SHADOW_PAGING) += shadow/
>  obj-$(CONFIG_HVM) += hap/
>  
>  obj-$(CONFIG_ALTP2M) += altp2m.o
> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
> index 2396f81ad5..5f70254cec 100644
> --- a/xen/arch/x86/mm/paging.c
> +++ b/xen/arch/x86/mm/paging.c
> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>       */
>      if ( hap_enabled(d) )
>          hap_domain_init(d);
> -    else
> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>          rc = shadow_domain_init(d);

If you want to go this route you will need to set rc = -EOPNOTSUPP;
prior to the `if ... else if` on the HVM case.  Otherwise when shadow
is compiled out, and the toolstack has not specified the HAP flag at
domain creation you will end up with a domain that doesn't have the
paging operations initialized as paging_domain_init() would return 0
with neither HAP nor shadow having been setup.  That's likely to
trigger NULL pointer dereferences inside of Xen.

Also, seeing the code in arch_sanitise_domain_config() we possibly
want to return an error at that point if toolstack attempts to create
an HVM guest without HAP enabled, and shadow is build time disabled.
I've sent a patch to that end.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:48:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225517.1532035 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSYf-0005xP-8P; Mon, 09 Feb 2026 14:48:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225517.1532035; Mon, 09 Feb 2026 14: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 1vpSYf-0005xI-5k; Mon, 09 Feb 2026 14:48:13 +0000
Received: by outflank-mailman (input) for mailman id 1225517;
 Mon, 09 Feb 2026 14:48: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpSYd-0005vo-Mu
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:48:11 +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 59997e0f-05c6-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:48:09 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4834826e555so4963265e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:48:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48317d2ba61sm506797225e9.1.2026.02.09.06.48.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 06:48:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59997e0f-05c6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770648488; x=1771253288; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=v453STh1OLvxFiocJmEuLGSjWmbLxTLcAgwEQxOmP4I=;
        b=gLW5McMZXGCR3lc5eThrqMChvoNC/UJsmcMPer3UJas8tpw7S+N5niNr5jbErOU4Vs
         RwrIuSio7Fj0OHeV8820wax9p1/ggq7Yc5/o88Bzd1pt/lA0xxZCPVMyPgHiUjTmO/mC
         MOoPRozx1xI9jiSqpr+7T2YvLugjNMsNXIAEfUInzNleJllVe7EXLs42zurIgMfHGCZ2
         ZCs6DkLj90v1lLLKdvGlHaQ4+0wppRBUAqkNM7Afz/DGlVsb6Nu/wwjQ8kg4kvKEdePq
         XuNsy56PJYbrrNNvwYBlTvfhkKcjVZUkQV4X/3/aKxiMxvn/roOcKshbyupN3Ffdtw94
         Jb7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770648488; x=1771253288;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=v453STh1OLvxFiocJmEuLGSjWmbLxTLcAgwEQxOmP4I=;
        b=pbJyUxyNiPYSqs/N+xSBS5gDEbKNbIZcPM8AnSqEK3P7cCeAoVE6tkZKYKls4QZ18q
         ynif1WJ7nQIa8wAx+8Wmz9NBiqeLG/WrISM4indaoHOE2mIOwOSvvDP7FkK8VT+K3Lk/
         5QIjUFaoY5c+iskLL6ZnuvVJJNW/zM4jwxD2e484vo0l4tYXG2bfFLwfgXE7PAOSoby3
         JumtSfPpeVVjGz40k0BQBmPMJ7dnFsA6xiUqHAHnFNzLW0UGOjQu5rRQxup9Ef3mY8xk
         40Z8FA7224p+0ueHf6/1/ewrMfNjc24IgZKNBZUuTSmCXJG+cg66bELjOJ1pki5sf+w6
         2ikg==
X-Forwarded-Encrypted: i=1; AJvYcCW3TuTQdgBnS/zIe+6S7vlywv6xPd2RRoiw8BfhciJNCyKVc6En4dHWgysFIMk5O8kloPM84ZAu/uQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJw3pKT/HN5vwXRXHtc4mdcgsN5b0WzMfqQ3qHLwP4wJjgXtlY
	mSI86Tkima7UPQodKvWc7PirzMHnrQl/Dye1GWXg/0fbwyt2tS5ADj+CPRkGGqgdDw==
X-Gm-Gg: AZuq6aJFHDbk7xNY75bB9hpG0hJXGviOsrRS5Su/oE94dPwHo5WPKG2hxH4EZoUHhEf
	I/knqVLYhoAJwQvc8frWKU8HzVftemoKdoxubyiwG92VxWboGl/qyJJpssdDwBfAGBg13O8lEEv
	wG8plhELTlV7lEI6f9DW3BLeEzVnk+LEbp7oJh0caEWCYs6bfkVScO1Z+aJlARVET9/g6S9dlTK
	5AvGbrgq9g4x595sqxlxkSAQ3/E8xNQX7YVWRh+FnWDCzzWTIKftiBHDOFq4QcmjJPHd6n6cPXR
	ICqVOgnzcwbDhW5wvAO2IIUmoJ75iPHp+ZI3CYMibQtl80tChuJwbuR8eEaCmoIJVZEj134McFk
	YTj9gN8gcWi+7FJ8dixvLKQxXix3+9HPrsLYL2q8aVY0u0Mv5acfrIa5wX2hjNAXmZx9UOy9bAx
	DFyZhd5zytACFFIRg9KOXIhMV+iEUqKCquuNvg7DsATiNxf3WD+sbX2pYrmUUHrBzIb3rN5i3Zo
	w5K4cZUOGW5Jg==
X-Received: by 2002:a05:600c:468b:b0:46e:4b79:551 with SMTP id 5b1f17b1804b1-48320229220mr169266295e9.31.1770648488437;
        Mon, 09 Feb 2026 06:48:08 -0800 (PST)
Message-ID: <c5a9075b-6ed0-4778-b3ad-fe6647dad8b7@suse.com>
Date: Mon, 9 Feb 2026 15:48:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Add Kconfig option for log-dirty tracking
To: Alejandro Vallejo <alejandro.garciavallejo@amd.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
References: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 11:31, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -146,6 +146,7 @@ config XEN_IBT
>  config SHADOW_PAGING
>  	bool "Shadow Paging"
>  	default !PV_SHIM_EXCLUSIVE
> +	select LOG_DIRTY
>  	depends on PV || HVM
>  	help

Why would this be? IOW why would shadow imply log-dirty, but HAP wouldn't?

> @@ -166,6 +167,14 @@ config SHADOW_PAGING
>  config PAGING
>  	def_bool HVM || SHADOW_PAGING
>  
> +config LOG_DIRTY

PAGING_LOG_DIRTY?

> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -220,15 +220,15 @@ long arch_do_domctl(
>      {
>  
>      case XEN_DOMCTL_shadow_op:
> -#ifdef CONFIG_PAGING
> +        ret = -EOPNOTSUPP;
> +        if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
> +            break;
> +
>          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;

Can a HVM-only hypervisor create any guests with this? I simply fail to
see how XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION would then make it through to
hap_domctl().

> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -226,7 +226,9 @@ struct paging_domain {
>      unsigned int            p2m_pages;    /* number of pages allocated to p2m */
>  
>      /* log dirty support */
> +#ifdef CONFIG_LOG_DIRTY
>      struct log_dirty_domain log_dirty;
> +#endif /* CONFIG_LOG_DIRTY */

Such an #ifdef can likely replace the comment? Or else the comment would
better also live inside the #ifdef?

> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -55,12 +55,9 @@
>  #define PG_translate   0
>  #define PG_external    0
>  #endif
> -#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>  /* Enable log dirty mode */
> -#define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
> -#else
> -#define PG_log_dirty   0
> -#endif
> +#define PG_log_dirty   IS_ENABLED(CONFIG_LOG_DIRTY) * \
> +                       (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)

Need wrapping in parentheses then.

> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -50,7 +50,7 @@ struct hap_dirty_vram {
>   * calling p2m_log_dirty_range(), which interrogates each vram
>   * page's p2m type looking for pages that have been made writable.
>   */
> -
> +#ifdef CONFIG_LOG_DIRTY

This wants to move further up.

> --- a/xen/include/hypercall-defs.c
> +++ b/xen/include/hypercall-defs.c
> @@ -194,7 +194,7 @@ 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
> -#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
> +#if defined(CONFIG_LOG_DIRTY)
>  paging_domctl_cont(xen_domctl_t *u_domctl)
>  #endif
>  #ifndef CONFIG_PV_SHIM_EXCLUSIVE
> @@ -292,7 +292,7 @@ dm_op                              compat   do       compat   do       do
>  hypfs_op                           do       do       do       do       do
>  #endif
>  mca                                do       do       -        -        -
> -#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
> +#if defined(CONFIG_LOG_DIRTY)
>  paging_domctl_cont                 do       do       do       do       -
>  #endif

The CONFIG_X86 part of the checking wants to remain: Another port may also gain
a setting of this name, without necessarily having this auxiliary hypercall.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:50:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225524.1532045 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSau-0007dB-LB; Mon, 09 Feb 2026 14:50:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225524.1532045; Mon, 09 Feb 2026 14: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 1vpSau-0007d4-IK; Mon, 09 Feb 2026 14:50:32 +0000
Received: by outflank-mailman (input) for mailman id 1225524;
 Mon, 09 Feb 2026 14:50: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpSas-0007cy-Or
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:50:30 +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 aabb2797-05c6-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:50:25 +0100 (CET)
Received: from DB8PR04CA0024.eurprd04.prod.outlook.com (2603:10a6:10:110::34)
 by AS2PR08MB8405.eurprd08.prod.outlook.com (2603:10a6:20b:558::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 14:50:16 +0000
Received: from DU6PEPF00009528.eurprd02.prod.outlook.com
 (2603:10a6:10:110:cafe::ed) by DB8PR04CA0024.outlook.office365.com
 (2603:10a6:10:110::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.18 via Frontend Transport; Mon,
 9 Feb 2026 14:50:16 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF00009528.mail.protection.outlook.com (10.167.8.9) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10 via
 Frontend Transport; Mon, 9 Feb 2026 14:50:15 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAXPR08MB7368.eurprd08.prod.outlook.com (2603:10a6:102:22a::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Mon, 9 Feb
 2026 14:49:12 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 14:49: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: aabb2797-05c6-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=h1sVCE8JOJDmilegjWstnRxGc90PUkgbglqwD1iQQRHiKmMdSZfHpXZnSKuLLbCHc/f4ypAD0S5eDoazAE88vqG42UJXLtz3T+L2CVe2Q/o2tASElo0aG6kCSlpW+KHDsVvGvSAhr1IzwVmCOOagHoIDpnRB57S07HxhwOTvgkYzJcoNu2uptJoUGlm7lySTuqw1jyRq2JvFMr1NHvvuspDSE9MHseBMcb8Ty5x/LIsi57I4G1ApJdvazuXeDmwyr1EmvhQiYWTWAaVhApvdLkg8U2e7qQJTxQAocppUb9MsPdZqAvCrisok/9qtbohv76DZfg17PoH1vRJewtgN8A==
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=NFRsJIcE+DDKh+aEtOye2DuAMHliVcmI53HOEyXt+T0=;
 b=yRKmXBBfzg11VfUrbfGY8MjQPKPLkhnLomXAGtCIQzfiMfZiRaLRnJnaYzCEaF7SgF8RXniWdf9VqrFDL/B5LyQpvtNtI9a/utx6Xi0eBJu0F3eCBGJGNvPMJIhsU8Ppm5iSX8znlsZ7jMZInPj0RAFn2V1qNob6VVwty9+9/j8ZNYn/xc/lDF2q8ACDhdC9Ud4XeD1Ff3OOZpkpUn8qyeHuGby2EWSplEYq3bTZHSbl7gO2YjnVx04NPfpdzCtL/SodAd7FPJPv1iz+YmvJNlbRjT/zR04uQ7VUU0AYHwpRyTYUVMERKXHsiAHrII983TkEM1PQVEBwIK1IREjAzQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=NFRsJIcE+DDKh+aEtOye2DuAMHliVcmI53HOEyXt+T0=;
 b=F/72UG2Hr5AEO1xWP6aBgqi6kTXK98RNh6lvQQFdVHPFnTbCo79AEu86jNaXSe/WTZDMn6acS6/aThQdaiE5ILLNqtvSaZNa/6xe2BaS6h8zOxK3PHImIsvl4pCPv9wjWhyAu14WEOyabccP/N0PHD2RUy9wSu5/XVkrmC7qvTU=
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=po7/fZAddu2Vf8jbXBG3Y0UJ5oFgcr2fHej1lulXCksoOUrMlxVdIQj+kU14lKqKXrnI3UNwzI8CV/2MrBo3ALlXwHsLCY5gpIn7pQsvpXwDRD73cufwy684saFDX5fVV9hPeOuzwMF332KTXRDeprhYkd70R4xxPNdWw+0imj8YORiUe/9Vt3qeriU7D7KMPfiRbSZ7zFCQ38dw2gbxXy1nRXct/gmQADvxx9jwJu/P3i8eE0GN8r8rQcI7Y4sDnoqJ5W8/GGwqu2i8TKmbBuzNqlAx/2pFDibHl76aewe7TON5mA/GbD5jvd+tHzpKjzhMXcXDzm9sxPmVM2CoyA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NFRsJIcE+DDKh+aEtOye2DuAMHliVcmI53HOEyXt+T0=;
 b=K0ArB/lI1MYGeBz8OUmHeF7PveEMJQhYN7EDuzRPVmdNCQjeMH/isTjEIXY3iJa6XGiFQ5DR1lk5tts9+6Q1ypdabE9Db5aztxm4fi51tyHxo0KOOuSp9Im/5Bz8AT+C5EHkvK1Y9gr7YgjrJpJ/CzFbB6K+ItMGXNKNeUzieraTjXoCeucjdCUD0dUjd49EKcajIOGSRy1vSTl29cXhlDGHho+RQH+k5BIdz7MwtHmLc+sEmR8ifc5yeqt3s+9ASoK5l7Da2r60FWYfFEpm1rPixRYEY90rRT9Sk+HfWcsRQfu05Af6ozM+i9m385RUOoUXizWFX7oSiZLA0kDMmg==
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=NFRsJIcE+DDKh+aEtOye2DuAMHliVcmI53HOEyXt+T0=;
 b=F/72UG2Hr5AEO1xWP6aBgqi6kTXK98RNh6lvQQFdVHPFnTbCo79AEu86jNaXSe/WTZDMn6acS6/aThQdaiE5ILLNqtvSaZNa/6xe2BaS6h8zOxK3PHImIsvl4pCPv9wjWhyAu14WEOyabccP/N0PHD2RUy9wSu5/XVkrmC7qvTU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory access
 descriptors
Thread-Topic: [PATCH 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory access
 descriptors
Thread-Index: AQHclTP/RUvXxHHq6UOIad3SSLcFW7V6O1CAgABAvIA=
Date: Mon, 9 Feb 2026 14:49:11 +0000
Message-ID: <1A922065-D0DC-4930-806C-6C202B5A6957@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <a8d316dbdbd00a7980c6d527038f9046bb895c69.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44HZ59JC2X1p0GWGN1TVAoGo9K1emVPrBQon4V0VT960YA@mail.gmail.com>
In-Reply-To:
 <CAHUa44HZ59JC2X1p0GWGN1TVAoGo9K1emVPrBQon4V0VT960YA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAXPR08MB7368:EE_|DU6PEPF00009528:EE_|AS2PR08MB8405:EE_
X-MS-Office365-Filtering-Correlation-Id: eb01c2dc-4bfc-4ea5-6a71-08de67ea897e
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?a0dqd2xBdUJBWGc3Y3NoRkJtcW1pMU93RU1velROQ3FLWDVTLzdwWXVheXFB?=
 =?utf-8?B?c1pSUERWT0pvWCtFTWRKQ2N6UUljaW9oK3p1b2JJMVJqeTBocG5WWExOZzFL?=
 =?utf-8?B?NUNicW1CeXI5Wk82b09GMDlqVnhxWnNoYzZHMmJJTjAxT0xKbHJwWis2VUNa?=
 =?utf-8?B?aHR6MllzekhHZnhlSzk0QVF2L0MvWmdIaytXQmJLNmpnd1UrOHpvUkRNYlRV?=
 =?utf-8?B?QndxREx3cE1TNkZldEUvZjZKbUVOdEl6alpUYTVKN3lGRS9KYmpsNWlvbkt1?=
 =?utf-8?B?OFJpdjhsSkxkVnJsaVZNMUczTU9GWlNNU0lzM0o1dDJoMkZMUEdaVlhKSWpa?=
 =?utf-8?B?WVlYSEdDTnJEN0dqY0pwVmJHaFJGbXRqV1JybXhkTENVU29rbC9YWlVWaGF3?=
 =?utf-8?B?TXhDc1VqVjR2bzFoNTM0aFMrRXFiMUdQRW1kNklWY3orUEtOdThwNG9Zb0NW?=
 =?utf-8?B?bk5JOU9GZlZuOS9oR1lXcmNlTS83QzFqOVZZb09adHhDM2ZKczlOaHBReTB2?=
 =?utf-8?B?ZC9IVzhIMWtCS1hnUE9IK0JaOVhVN1BRNm9sOEZqY0hhbkxWQ0Fob2Y0Tk02?=
 =?utf-8?B?c1dYcVVBUEQwbTlhTC9QNjBJRU5EdG9wSmZWVDVkazJRMU5hZnRtZFYrVHBq?=
 =?utf-8?B?eTJ4bFIxOWdXOGRFNjhFeSs1TFVaQzBzRm1KN25lUWpPNzI2dUlHZDc1TlFH?=
 =?utf-8?B?TmRHWHg4ZURPeXVTQkhKRWZWenZvUmRocisyUmZ1MkkwbkZXV3RkLy9UVkJq?=
 =?utf-8?B?RXIxUEh1cUNaSFhiWUlVMmNEdUo2S2piOUU0eW8rWklJbGF6cDA1Umh5RDFZ?=
 =?utf-8?B?QTBWOWNkYU90YzNxcGd0aUNEL1lXc0JlNEdqaUZac1VQZk1IQSt4UFR6dXdW?=
 =?utf-8?B?VzJPemNJeEtuaFh1aUVVL0ZhSlhqZTRoUWx6ZFRwWWwwVytXNXdZaW42K0RY?=
 =?utf-8?B?MWN2Z09lSFJjcE9PWTA3RnpWWERKdDFaRlRLWEhHbmF2ZEtlR3V0NDBtb25I?=
 =?utf-8?B?MVJsNlRtSWpJZ2NMU1VEcE05M3Z4Q1ZrcWUwbEFsWGhkUVlrdVNmdGRzU2Fz?=
 =?utf-8?B?UVdJaXFvWUpNLzl3WllSUnBlL1FOSVZvVnQybHl1VER6WHpMc1l2OUNSeDho?=
 =?utf-8?B?bDIwUis4eWhkQWF1dE5Lc3EyUUpVYWVtNDJJNzR6bWpVK0tVRzJjNDRPNlcz?=
 =?utf-8?B?bjdtbCt1b2pVeE5hMVZIQWhsTFNmWHFrQ09kT3FjaEdEaXhLN3FndTU4WEdi?=
 =?utf-8?B?aXJVWDVYcWg0UlJ6TDgwcFpDNmpNMXIrRHRQbEd4WDMvakpmSmVCYTJsRjRZ?=
 =?utf-8?B?aEc4dndqT0U0aVNUZHJ0MjZ6VVJEbCtQWFVlLzFwTGltU0pJY01jMW1DYnV1?=
 =?utf-8?B?WW9ZbEI3djVsS2h3cEJqd0RxS0VJbGVoTW1KbjVWU0h0eUJObEJWSHFBYUNG?=
 =?utf-8?B?MlRwQkl2NkVmL2VySmx5NEtFTmxkN0liZFAzTE5oMVZXNzV5cWl5NGNSNlE5?=
 =?utf-8?B?b2NDTXRtM2p5N0hUaHk0ZkttRm1hRVZwWXZvWEpuelhDejlVbmlMaktmcGp1?=
 =?utf-8?B?bXhaWEJhcFI1MmZVZm9pUXMvNU5CN0YwRTdoemk0N2s3cG5jVVluNVJmV0RE?=
 =?utf-8?B?YU1EYUJQK2JneVFoL1dCLzVHY1lqK08xTnk0TEFyL0Noak1ZTHV0MnZYeVNZ?=
 =?utf-8?B?K2JxSlR2Mmx1R0RuelVYTEl4OTNyUTU0c1hVT2o4SmJxMzJTMFN1ckdiQWpQ?=
 =?utf-8?B?NEwyaGVLS1Z6SEZkdHlsN1M3eHJScG1SZTBTYVVIbmpkSGg3VzVmbFNvcFF2?=
 =?utf-8?B?Z2pmK0hDR1pwcEFUWXJNbGVyUUZvY2NZOWVsYldhd3U4Ni9QcjdjMHh0Mzl5?=
 =?utf-8?B?NmZQRlVoMUU3YnpDQm9vVTF0emZCNi9RdFJZeUd3MHpPTWZ0SlJjaWdvV2t5?=
 =?utf-8?B?MmkreU9qcTIwZFlLVEdHUGM2dzBjbEpSSUIvbHVONDhlc1lnZ1RUUFBncE1C?=
 =?utf-8?B?YS9zd1FuQmQ4STk3QnFIcWIrSzdPbVFMRkh3bnhTMksydWtZNjhFMGczdnIr?=
 =?utf-8?B?Vkg3NVJYb09ESllSb3VhSm96VFJuMThwV2NkRjQvOURoUlMzUW1tMGRhejdk?=
 =?utf-8?B?MkdEdGcwdituWURkU3hYdXhFUk5wc1NwakovM3pHSS81YmN4c28yblZmYnpL?=
 =?utf-8?Q?9CZu9lMWPwa91AkagDWI08A=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <06AA036A92A0DC4BB4AC8BD13B6233D1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7368
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF00009528.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	2a4a799e-038a-4d9d-3d82-08de67ea634d
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|35042699022|14060799003|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UFh2aFRHcnVBdzE3RXAwNVNZSXNNTVprUWJMRW5rN0dvZHMvNnpEdHp6YUpJ?=
 =?utf-8?B?TTNBWVhRS2phNENCMjJ3ZCtsNVJURDhHZGwwVldVMlo5TEF1cDdvOGcwQmZ3?=
 =?utf-8?B?TXV4UHVvMUR4czZFYWJNZ0QyMU5GYndkeUhOcUI0K3JZL0NDN09qYUpYOGlY?=
 =?utf-8?B?cjN5am9DUlhOZExNM1kxamxaM2ZNaXhKbWlPS2Z6Tk1GTVNTdTR5WXhZdTN5?=
 =?utf-8?B?NEJqeWNJSGIwUVBYSCtNN09YOXBzcXgxeVNpQ2FVZW1CRy9jWmRkMUJZWHdr?=
 =?utf-8?B?VjlreHFuZTYvdUZ1dGxHVlBsT0ZvY3UzVGhJK2plQkpKZ3BKa1k0YkM3MDFD?=
 =?utf-8?B?dmFmOU0vRXlxMnhqN2tkMFVGa3E0L3VId0IwMUZ1eVZjelVDM1llRUozbk5Y?=
 =?utf-8?B?Q3pNVjREZm9qeVFJZ1RmUWYxNldNZXpKdmN2VDhDVmtUUHpDWmRGU3hlMHRm?=
 =?utf-8?B?UU5MUWpSY0ZKTWNPSDNweUk1cGhhcXlwOWxtTG96MktZMlRoRDh2dUV1T2Nh?=
 =?utf-8?B?ZHlESTFDZGlTMk1xRWZOTkZ5K0phdHVrYzFRMG5vK29NdE9za0lXaFBxYTNh?=
 =?utf-8?B?ZEJGbi94SGRDRmV0Nm40ZklKTmg1NVFMZFp0Q1VmdlFrcDJCamhZUy9Ldk9v?=
 =?utf-8?B?VDhlTWhNbHptR1RJNHR6NHZCcDEydExIeGZ4VWdWeVFzaDQxYkVhdGJxWVlM?=
 =?utf-8?B?bVBHdE9TbXRjSUxaNWZ1Sk1ncUR3dWI1eWR1UmlvaFZLcm13ZHFBa3pRbkor?=
 =?utf-8?B?KzVkSjBNL3Mwb3hkVTFrQlk4UnRsSE11SHpFR0VQbFVPWjZ2MVpJRVhxaVNO?=
 =?utf-8?B?RHVzeXpncXMva2RLV3lpUkJJOFd5RDVtM0hJSVZ6bXNEM2NSbWJKM0V6dHNG?=
 =?utf-8?B?dmxkNTVkdHVuOURzVjlqcE9PNTFZUWVUT0d2TzZhYzJoc3BPSS9QeUNvdk9o?=
 =?utf-8?B?VEFNc0VlcHRLbHB5TVhDa1hJdzZsUjBlQ1lBUURlckRXS0pSdmUzdjg5Q3Z3?=
 =?utf-8?B?Nnk0MHlxSE1NQXNRc1FyVm41bDFnNW9nQmRJVitmam0rdzBBZVN4ZWg4SEVp?=
 =?utf-8?B?Qm5sZmhBZGdpRGgwOXY1OVFFMEtTVVd6U1g5Y2I1Nk13SmF0SHR6TzZZQ0I5?=
 =?utf-8?B?aDhkaWdOdFJ3OVZTYU9HcWZiN3l6amxUQlIxSVMxaldYQ1VhMnpNYWtUMXpm?=
 =?utf-8?B?NThBNHVaRVNDWTVMQ3hLVWFVSGtJb1pEc3U5UkxrN2VwSkZnbGc5SzdpK2Fj?=
 =?utf-8?B?VkwrejdDa0lKRHFMRGJvc3lUVWtZbGRld3VITERxZklUWStkSWVJdHRiaW5J?=
 =?utf-8?B?NC9GczJwY09oQVA3MCsrQXpqMU54Ym1WUmg0Z1g5bm1walRwN0RGSWlMSi9t?=
 =?utf-8?B?S2ozcHNUVHoxR3k2a3Z1amEzNXQ1RTZUZUxkOWRJRjhWZ1pQOS9hTTRUUVFN?=
 =?utf-8?B?cEhlbUkyZVN3YjlrSnFPTUpXNkZIckZOME1VYVg2b25IMjNjWEFTQmc2SFN0?=
 =?utf-8?B?M3RFM2xidG1YemtkV3JYVWRsKzUwWmp0RWlOZGEydjFVQk1uTzJ5dHdMLzdO?=
 =?utf-8?B?RFBJVEo3akRKd1ZVbG1JZVMwWkhTVE5CZWw5ejZFamE1ZFVub3hZc1VXNWtS?=
 =?utf-8?B?RGZHdUE0MEtwdVRIc0Z3MEwwTVEyVldBOGY0NUZCMVB2b0tCQjlmSmpSWXRY?=
 =?utf-8?B?bzJrNHVXSndrbmxYa3R2d0ZoRDFIWW9SNEFHV3ducDdLZjkvM3dQdmpxeW9K?=
 =?utf-8?B?RlQvUWVXMld2UTZjRVAzQ3BRclZLaFVhcXlEQkV2V29pODFjQ1BvRHYxcFRh?=
 =?utf-8?B?K3hWeWVxYjF6dVBXZEx6WmlmSzZjdGdhNmwvcDNBWDFJeFlqek5mS3puLzAr?=
 =?utf-8?B?T25VV0pHSVFUTVlOSzEyYUhkYkNqSkRjRE5iK3VDRWhxdUhyY1NwN1BGTHIv?=
 =?utf-8?B?WWIydkRVVFRXbjF3RkZ0RXdRZitSdU9vK1RNNUMwQklSMVpPVHNwbm13K2V2?=
 =?utf-8?B?TzJqdmdEdDZNNUgzQTl4cVFYdWwvaGRMSHBDSVY0bmpZVHB2c2NocTRDdWNx?=
 =?utf-8?B?S0NBeTkvNE14bzZhMU9DVzlJU2ZDNUQ2S0RzMXlwYzJWNUFTZFR2Mm9FOFZX?=
 =?utf-8?B?WldtbTFoQVE1a0p4SGVzZFBoeG5wZGhUTUxhZ284ZGFYMFZOZ2VQU2tBSjFQ?=
 =?utf-8?B?cXRCS3hqN1g5SkhJSnFmYURjSUhGTjdyT1I0Mkh2K3NyMlI4NWVhdGZoSlpq?=
 =?utf-8?B?RnA3cDQ3UFdMQzdxb3l3TXFQbDRnPT0=?=
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)(36860700013)(35042699022)(14060799003)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	El3hpyNDPVSzVzRwURcI5Bv2WA2W995iOy6QFFWC6Z5eMDWNg5yG58PWnvFVzXv5WBH5Ja1EPokdnHSxJGMwZmhcEJ2D9SJOQfwSNuVBa1/Xo2kzoocomcw+gdifiz89778Y6jDtOTI+SEibqve6av6eykyRGzwko5VtsQkpouHujSphLpOLOUiE3H5X7ekLgGQYR19Enjg5rGBc6QjaxzsqmVLfEaVqjEFCsPg2qTzdA7migUCzfLOfnJrl7XsTnvyUTRDXYRv0SFEdn/5lwEZ5v6id+DbnugNxFbbcGMUl8TtjSMryMrQizsO3U1I+HJ7Qfdr3I7r0hTtLDBlfnc7mm+ujS+RHfRImlA/dMpO9eM7ts/uttvx/E7+hmFnRClsG1a/AlAA5HW02LUMW3ueHb5cxZ7t8PK4Q3KQf0Rc8xZwWSZ6FpJNjRPhZ2TgL
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:50:15.8717
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eb01c2dc-4bfc-4ea5-6a71-08de67ea897e
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:
	DU6PEPF00009528.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8405

SGkgSmVucywNCg0KPiBPbiA5IEZlYiAyMDI2LCBhdCAxMTo1NywgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUdWUsIEZlYiAzLCAyMDI2IGF0IDY6MzjigK9QTSBCZXJ0cmFuZCBNYXJxdWlzDQo+IDxi
ZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBGRi1BIDEuMiBleHRlbmRz
IHRoZSBlbmRwb2ludCBtZW1vcnkgYWNjZXNzIGRlc2NyaXB0b3IgKEVNQUQpIGZyb20NCj4+IDE2
IHRvIDMyIGJ5dGVzLCBhZGRpbmcgaW1wbGVtZW50YXRpb24tZGVmaW5lZCAoSU1QREVGKSBmaWVs
ZHMgYW5kDQo+PiByZXNlcnZlZCBzcGFjZS4gVGhlIE1FTV9TSEFSRSBwYXRoIGN1cnJlbnRseSBh
c3N1bWVzIHRoZSAxLjEgRU1BRA0KPj4gc2l6ZSBhbmQgcmVqZWN0cyB0aGUgMS4yIGxheW91dC4N
Cj4+IA0KPj4gQWRkIEZGLUEgMS4yIEVNQUQgc3VwcG9ydCB0byBNRU1fU0hBUkU6DQo+PiAtIGRl
ZmluZSBmZmFfbWVtX2FjY2Vzc18xXzIgYW5kIHN0b3JlIElNUERFRiBwYXlsb2FkIGluIGZmYV9z
aG1fbWVtDQo+PiAtIGVtaXQgMS4yIEVNQURzIHRvIHRoZSBTUE1DIGZvciBGRi1BIDEuMiBndWVz
dHMsIGZvcndhcmRpbmcgSU1QREVGDQo+PiAtIHJlZmFjdG9yIGhlYWRlciBwYXJzaW5nIGludG8g
cmVhZF9tZW1fdHJhbnNhY3Rpb24oKSBmb3IgMS4wLzEuMSsNCj4+IC0gZGV0ZWN0IEVNQUQgZm9y
bWF0IGJ5IG1lbV9hY2Nlc3Nfc2l6ZSB0byBhbGxvdyAxLjEgb24gMS4yIGd1ZXN0cw0KPj4gDQo+
PiBGdW5jdGlvbmFsIGltcGFjdDogTUVNX1NIQVJFIHN1cHBvcnRzIEZGLUEgMS4yIEVNQURzLg0K
Pj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlz
QGFybS5jb20+DQo+PiAtLS0NCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5jIHwgMTA4ICsr
KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0NCj4+IDEgZmlsZSBjaGFuZ2VkLCA4
NiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkNCj4+IA0KPj4gZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS90ZWUvZmZhX3NobS5jIGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+
IGluZGV4IDRjMGI0NWNkZTZlZS4uOTA1YTY0ZTNkYjAxIDEwMDY0NA0KPj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5j
DQo+PiBAQCAtMzAsNiArMzAsMTQgQEAgc3RydWN0IGZmYV9tZW1fYWNjZXNzIHsNCj4+ICAgICB1
aW50NjRfdCByZXNlcnZlZDsNCj4+IH07DQo+PiANCj4+ICsvKiBFbmRwb2ludCBtZW1vcnkgYWNj
ZXNzIGRlc2NyaXB0b3IgKEZGLUEgMS4yKSAqLw0KPj4gK3N0cnVjdCBmZmFfbWVtX2FjY2Vzc18x
XzIgew0KPj4gKyAgICBzdHJ1Y3QgZmZhX21lbV9hY2Nlc3NfcGVybSBhY2Nlc3NfcGVybTsNCj4+
ICsgICAgdWludDMyX3QgcmVnaW9uX29mZnM7DQo+PiArICAgIHVpbnQ4X3QgaW1wZGVmWzE2XTsN
Cj4+ICsgICAgdWludDhfdCByZXNlcnZlZFs4XTsNCj4+ICt9Ow0KPj4gKw0KPj4gLyogTGVuZCwg
ZG9uYXRlIG9yIHNoYXJlIG1lbW9yeSB0cmFuc2FjdGlvbiBkZXNjcmlwdG9yICovDQo+PiBzdHJ1
Y3QgZmZhX21lbV90cmFuc2FjdGlvbl8xXzAgew0KPj4gICAgIHVpbnQxNl90IHNlbmRlcl9pZDsN
Cj4+IEBAIC03Myw3ICs4MSw3IEBAIHN0cnVjdCBmZmFfbWVtX3RyYW5zYWN0aW9uXzFfMSB7DQo+
PiAvKg0KPj4gICogVGhlIHBhcnRzIG5lZWRlZCBmcm9tIHN0cnVjdCBmZmFfbWVtX3RyYW5zYWN0
aW9uXzFfMCBvciBzdHJ1Y3QNCj4+ICAqIGZmYV9tZW1fdHJhbnNhY3Rpb25fMV8xLCB1c2VkIHRv
IHByb3ZpZGUgYW4gYWJzdHJhY3Rpb24gb2YgZGlmZmVyZW5jZSBpbg0KPj4gLSAqIGRhdGEgc3Ry
dWN0dXJlcyBiZXR3ZWVuIHZlcnNpb24gMS4wIGFuZCAxLjEuIFRoaXMgaXMganVzdCBhbiBpbnRl
cm5hbA0KPj4gKyAqIGRhdGEgc3RydWN0dXJlcyBiZXR3ZWVuIHZlcnNpb24gMS4wIGFuZCAxLjIu
IFRoaXMgaXMganVzdCBhbiBpbnRlcm5hbA0KPj4gICogaW50ZXJmYWNlIGFuZCBjYW4gYmUgY2hh
bmdlZCB3aXRob3V0IGNoYW5naW5nIGFueSBBQkkuDQo+PiAgKi8NCj4+IHN0cnVjdCBmZmFfbWVt
X3RyYW5zYWN0aW9uX2ludCB7DQo+PiBAQCAtOTIsNiArMTAwLDggQEAgc3RydWN0IGZmYV9zaG1f
bWVtIHsNCj4+ICAgICB1aW50MTZfdCBzZW5kZXJfaWQ7DQo+PiAgICAgdWludDE2X3QgZXBfaWQ7
ICAgICAvKiBlbmRwb2ludCwgdGhlIG9uZSBsZW5kaW5nICovDQo+PiAgICAgdWludDY0X3QgaGFu
ZGxlOyAgICAvKiBGRkFfSEFORExFX0lOVkFMSUQgaWYgbm90IHNldCB5ZXQgKi8NCj4+ICsgICAg
LyogRW5kcG9pbnQgbWVtb3J5IGFjY2VzcyBkZXNjcmlwdG9yIElNUERFRiB2YWx1ZSAoRkYtQSAx
LjIpLiAqLw0KPj4gKyAgICB1aW50NjRfdCBpbXBkZWZbMl07DQo+PiAgICAgdW5zaWduZWQgaW50
IHBhZ2VfY291bnQ7DQo+PiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZXNbXTsNCj4+IH07DQo+
PiBAQCAtMjk3LDE3ICszMDcsMjEgQEAgc3RhdGljIHZvaWQgaW5pdF9yYW5nZShzdHJ1Y3QgZmZh
X2FkZHJlc3NfcmFuZ2UgKmFkZHJfcmFuZ2UsDQo+PiAgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhl
IGZmYV9zcG1jIHR4IGJ1ZmZlciB0byB0cmFuc21pdCB0aGUgbWVtb3J5IHRyYW5zYWN0aW9uDQo+
PiAgKiBkZXNjcmlwdG9yLg0KPj4gICovDQo+PiAtc3RhdGljIGludCBzaGFyZV9zaG0oc3RydWN0
IGZmYV9zaG1fbWVtICpzaG0pDQo+PiArc3RhdGljIGludCBzaGFyZV9zaG0oc3RydWN0IGZmYV9z
aG1fbWVtICpzaG0sIHVpbnQzMl90IGZmYV92ZXJzKQ0KPj4gew0KPj4gICAgIGNvbnN0IHVpbnQz
Ml90IG1heF9mcmFnX2xlbiA9IEZGQV9SWFRYX1BBR0VfQ09VTlQgKiBGRkFfUEFHRV9TSVpFOw0K
Pj4gICAgIHN0cnVjdCBmZmFfbWVtX2FjY2VzcyAqbWVtX2FjY2Vzc19hcnJheTsNCj4+ICsgICAg
c3RydWN0IGZmYV9tZW1fYWNjZXNzXzFfMiAqbWVtX2FjY2Vzc19hcnJheV8xXzI7DQo+PiAgICAg
c3RydWN0IGZmYV9tZW1fdHJhbnNhY3Rpb25fMV8xICpkZXNjcjsNCj4+ICAgICBzdHJ1Y3QgZmZh
X2FkZHJlc3NfcmFuZ2UgKmFkZHJfcmFuZ2U7DQo+PiAgICAgc3RydWN0IGZmYV9tZW1fcmVnaW9u
ICpyZWdpb25fZGVzY3I7DQo+PiAtICAgIGNvbnN0IHVuc2lnbmVkIGludCByZWdpb25fY291bnQg
PSAxOw0KPj4gICAgIHVpbnQzMl90IGZyYWdfbGVuOw0KPj4gICAgIHVpbnQzMl90IHRvdF9sZW47
DQo+PiArICAgIHVpbnQzMl90IG1lbV9hY2Nlc3Nfc2l6ZTsNCj4+ICsgICAgdWludDMyX3QgbWVt
X2FjY2Vzc19vZmZzOw0KPj4gKyAgICB1aW50MzJfdCByZWdpb25fb2ZmczsNCj4+ICAgICBwYWRk
cl90IGxhc3RfcGE7DQo+PiArICAgIHVpbnQzMl90IHJhbmdlX2NvdW50Ow0KPj4gICAgIHVuc2ln
bmVkIGludCBuOw0KPj4gICAgIHBhZGRyX3QgcGE7DQo+PiAgICAgaW50MzJfdCByZXQ7DQo+PiBA
QCAtMzI2LDE2ICszNDAsMzUgQEAgc3RhdGljIGludCBzaGFyZV9zaG0oc3RydWN0IGZmYV9zaG1f
bWVtICpzaG0pDQo+PiAgICAgZGVzY3ItPmhhbmRsZSA9IHNobS0+aGFuZGxlOw0KPj4gICAgIGRl
c2NyLT5tZW1fcmVnX2F0dHIgPSBGRkFfTk9STUFMX01FTV9SRUdfQVRUUjsNCj4+ICAgICBkZXNj
ci0+bWVtX2FjY2Vzc19jb3VudCA9IDE7DQo+PiAtICAgIGRlc2NyLT5tZW1fYWNjZXNzX3NpemUg
PSBzaXplb2YoKm1lbV9hY2Nlc3NfYXJyYXkpOw0KPj4gLSAgICBkZXNjci0+bWVtX2FjY2Vzc19v
ZmZzID0gTUVNX0FDQ0VTU19PRkZTRVQoMCk7DQo+PiArICAgIGlmICggZmZhX3ZlcnMgPj0gRkZB
X1ZFUlNJT05fMV8yICkNCj4+ICsgICAgICAgIG1lbV9hY2Nlc3Nfc2l6ZSA9IHNpemVvZihzdHJ1
Y3QgZmZhX21lbV9hY2Nlc3NfMV8yKTsNCj4+ICsgICAgZWxzZQ0KPj4gKyAgICAgICAgbWVtX2Fj
Y2Vzc19zaXplID0gc2l6ZW9mKHN0cnVjdCBmZmFfbWVtX2FjY2Vzcyk7DQo+PiArICAgIG1lbV9h
Y2Nlc3Nfb2ZmcyA9IHNpemVvZihzdHJ1Y3QgZmZhX21lbV90cmFuc2FjdGlvbl8xXzEpOw0KPj4g
KyAgICByZWdpb25fb2ZmcyA9IG1lbV9hY2Nlc3Nfb2ZmcyArIG1lbV9hY2Nlc3Nfc2l6ZTsNCj4+
ICsgICAgZGVzY3ItPm1lbV9hY2Nlc3Nfc2l6ZSA9IG1lbV9hY2Nlc3Nfc2l6ZTsNCj4+ICsgICAg
ZGVzY3ItPm1lbV9hY2Nlc3Nfb2ZmcyA9IG1lbV9hY2Nlc3Nfb2ZmczsNCj4+IA0KPj4gLSAgICBt
ZW1fYWNjZXNzX2FycmF5ID0gYnVmICsgZGVzY3ItPm1lbV9hY2Nlc3Nfb2ZmczsNCj4+IC0gICAg
bWVtc2V0KG1lbV9hY2Nlc3NfYXJyYXksIDAsIHNpemVvZigqbWVtX2FjY2Vzc19hcnJheSkpOw0K
Pj4gLSAgICBtZW1fYWNjZXNzX2FycmF5WzBdLmFjY2Vzc19wZXJtLmVuZHBvaW50X2lkID0gc2ht
LT5lcF9pZDsNCj4+IC0gICAgbWVtX2FjY2Vzc19hcnJheVswXS5hY2Nlc3NfcGVybS5wZXJtID0g
RkZBX01FTV9BQ0NfUlc7DQo+PiAtICAgIG1lbV9hY2Nlc3NfYXJyYXlbMF0ucmVnaW9uX29mZnMg
PSBSRUdJT05fT0ZGU0VUKGRlc2NyLT5tZW1fYWNjZXNzX2NvdW50LCAwKTsNCj4+ICsgICAgaWYg
KCBmZmFfdmVycyA+PSBGRkFfVkVSU0lPTl8xXzIgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBt
ZW1fYWNjZXNzX2FycmF5XzFfMiA9IGJ1ZiArIG1lbV9hY2Nlc3Nfb2ZmczsNCj4+ICsgICAgICAg
IG1lbXNldChtZW1fYWNjZXNzX2FycmF5XzFfMiwgMCwgc2l6ZW9mKCptZW1fYWNjZXNzX2FycmF5
XzFfMikpOw0KPj4gKyAgICAgICAgbWVtX2FjY2Vzc19hcnJheV8xXzJbMF0uYWNjZXNzX3Blcm0u
ZW5kcG9pbnRfaWQgPSBzaG0tPmVwX2lkOw0KPj4gKyAgICAgICAgbWVtX2FjY2Vzc19hcnJheV8x
XzJbMF0uYWNjZXNzX3Blcm0ucGVybSA9IEZGQV9NRU1fQUNDX1JXOw0KPj4gKyAgICAgICAgbWVt
X2FjY2Vzc19hcnJheV8xXzJbMF0ucmVnaW9uX29mZnMgPSByZWdpb25fb2ZmczsNCj4+ICsgICAg
ICAgIG1lbWNweShtZW1fYWNjZXNzX2FycmF5XzFfMlswXS5pbXBkZWYsIHNobS0+aW1wZGVmLA0K
Pj4gKyAgICAgICAgICAgICAgIHNpemVvZihtZW1fYWNjZXNzX2FycmF5XzFfMlswXS5pbXBkZWYp
KTsNCj4+ICsgICAgfQ0KPj4gKyAgICBlbHNlDQo+PiArICAgIHsNCj4+ICsgICAgICAgIG1lbV9h
Y2Nlc3NfYXJyYXkgPSBidWYgKyBtZW1fYWNjZXNzX29mZnM7DQo+PiArICAgICAgICBtZW1zZXQo
bWVtX2FjY2Vzc19hcnJheSwgMCwgc2l6ZW9mKCptZW1fYWNjZXNzX2FycmF5KSk7DQo+PiArICAg
ICAgICBtZW1fYWNjZXNzX2FycmF5WzBdLmFjY2Vzc19wZXJtLmVuZHBvaW50X2lkID0gc2htLT5l
cF9pZDsNCj4+ICsgICAgICAgIG1lbV9hY2Nlc3NfYXJyYXlbMF0uYWNjZXNzX3Blcm0ucGVybSA9
IEZGQV9NRU1fQUNDX1JXOw0KPj4gKyAgICAgICAgbWVtX2FjY2Vzc19hcnJheVswXS5yZWdpb25f
b2ZmcyA9IHJlZ2lvbl9vZmZzOw0KPj4gKyAgICB9DQo+PiANCj4+IC0gICAgcmVnaW9uX2Rlc2Ny
ID0gYnVmICsgbWVtX2FjY2Vzc19hcnJheVswXS5yZWdpb25fb2ZmczsNCj4+ICsgICAgcmVnaW9u
X2Rlc2NyID0gYnVmICsgcmVnaW9uX29mZnM7DQo+PiAgICAgbWVtc2V0KHJlZ2lvbl9kZXNjciwg
MCwgc2l6ZW9mKCpyZWdpb25fZGVzY3IpKTsNCj4+ICAgICByZWdpb25fZGVzY3ItPnRvdGFsX3Bh
Z2VfY291bnQgPSBzaG0tPnBhZ2VfY291bnQ7DQo+PiANCj4+IEBAIC0zNDksOCArMzgyLDkgQEAg
c3RhdGljIGludCBzaGFyZV9zaG0oc3RydWN0IGZmYV9zaG1fbWVtICpzaG0pDQo+PiAgICAgICAg
IHJlZ2lvbl9kZXNjci0+YWRkcmVzc19yYW5nZV9jb3VudCsrOw0KPj4gICAgIH0NCj4+IA0KPj4g
LSAgICB0b3RfbGVuID0gQUREUl9SQU5HRV9PRkZTRVQoZGVzY3ItPm1lbV9hY2Nlc3NfY291bnQs
IHJlZ2lvbl9jb3VudCwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lv
bl9kZXNjci0+YWRkcmVzc19yYW5nZV9jb3VudCk7DQo+IA0KPiBQbGVhc2UgcmVtb3ZlIHRoZSB1
bnVzZWQgQUREUl9SQU5HRV9PRkZTRVQoKSBtYWNybyBhbmQgZnJpZW5kcywgYXMNCj4gdGhleSdy
ZSBubyBsb25nZXIgYWNjdXJhdGUuDQoNClZlcnkgdHJ1ZSwgd2lsbCByZW1vdmUgdGhlbSBpbiB2
Mi4NCg0KPiANCj4+ICsgICAgcmFuZ2VfY291bnQgPSByZWdpb25fZGVzY3ItPmFkZHJlc3NfcmFu
Z2VfY291bnQ7DQo+PiArICAgIHRvdF9sZW4gPSByZWdpb25fb2ZmcyArIHNpemVvZigqcmVnaW9u
X2Rlc2NyKSArDQo+PiArICAgICAgICAgICAgICByYW5nZV9jb3VudCAqIHNpemVvZihzdHJ1Y3Qg
ZmZhX2FkZHJlc3NfcmFuZ2UpOw0KPj4gICAgIGlmICggdG90X2xlbiA+IG1heF9mcmFnX2xlbiAp
DQo+PiAgICAgew0KPj4gICAgICAgICByZXQgPSBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+PiBA
QCAtMzU4LDcgKzM5Miw3IEBAIHN0YXRpYyBpbnQgc2hhcmVfc2htKHN0cnVjdCBmZmFfc2htX21l
bSAqc2htKQ0KPj4gICAgIH0NCj4+IA0KPj4gICAgIGFkZHJfcmFuZ2UgPSByZWdpb25fZGVzY3It
PmFkZHJlc3NfcmFuZ2VfYXJyYXk7DQo+PiAtICAgIGZyYWdfbGVuID0gQUREUl9SQU5HRV9PRkZT
RVQoZGVzY3ItPm1lbV9hY2Nlc3NfY291bnQsIHJlZ2lvbl9jb3VudCwgMSk7DQo+PiArICAgIGZy
YWdfbGVuID0gcmVnaW9uX29mZnMgKyBzaXplb2YoKnJlZ2lvbl9kZXNjcikgKyBzaXplb2YoKmFk
ZHJfcmFuZ2UpOw0KPj4gICAgIGxhc3RfcGEgPSBwYWdlX3RvX21hZGRyKHNobS0+cGFnZXNbMF0p
Ow0KPj4gICAgIGluaXRfcmFuZ2UoYWRkcl9yYW5nZSwgbGFzdF9wYSk7DQo+PiAgICAgZm9yICgg
biA9IDE7IG4gPCBzaG0tPnBhZ2VfY291bnQ7IGxhc3RfcGEgPSBwYSwgbisrICkNCj4+IEBAIC00
NDgsNiArNDgyLDEyIEBAIHN0YXRpYyBpbnQgcmVhZF9tZW1fdHJhbnNhY3Rpb24odWludDMyX3Qg
ZmZhX3ZlcnMsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGJsZW4sDQo+PiAgICAgaWYgKCBzaXpl
ICogY291bnQgKyBvZmZzID4gYmxlbiApDQo+PiAgICAgICAgIHJldHVybiBGRkFfUkVUX0lOVkFM
SURfUEFSQU1FVEVSUzsNCj4+IA0KPj4gKyAgICBpZiAoIHNpemUgPCBzaXplb2Yoc3RydWN0IGZm
YV9tZW1fYWNjZXNzKSApDQo+PiArICAgICAgICByZXR1cm4gRkZBX1JFVF9JTlZBTElEX1BBUkFN
RVRFUlM7DQo+IA0KPiBJbXBsaWNpdGx5LCBzaXplIHNob3VsZCBhbHNvIGJlIGEgbXVsdGlwbGUg
b2YgMTYuIERvbid0IHlvdSBhZ3JlZT8NCg0KVGhlIHNwZWMgaXMgZ2l2aW5nIHNvbWUgY29uc3Ry
YWludHMgb24gdGhlIG9mZnNldCBidXQgdGhlcmUgaXMgbm90aGluZyBleHBsaWNpdCBmb3IgdGhl
DQpwZXIgbWVtIGFjY2VzcyBzaXplLiBBcyB3ZSBoYXZlIG5vIDY0Yml0IGZpZWxkcyBpbiBpdCwg
SSBhbSBub3QgcmVhbGx5IHNlZWluZyBhbnkNCmltcGxpY2l0IG11bHRpcGxlIG9mIDE2Lg0KDQpJ
IGFtIGNoZWNraW5nIHRoZSBvZmZzZXQgYmVjYXVzZSBpdCBpcyBlbmZvcmNlZCBieSB0aGUgc3Bl
YyBidXQgZm9yIHRoZSBzaXplIGkgd291bGQNCnJhdGhlciBub3QgcHV0IHNvbWV0aGluZyBhcyB3
aG8ga25vd3Mgd2hhdCBtaWdodCBiZSBhZGRlZCBpbiB0aGUgZnV0dXJlLg0KDQo+IA0KPj4gKw0K
Pj4gKyAgICBpZiAoIG9mZnMgJiAweEYgKQ0KPj4gKyAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5W
QUxJRF9QQVJBTUVURVJTOw0KPj4gKw0KPj4gICAgIHRyYW5zLT5tZW1fcmVnX2F0dHIgPSBtZW1f
cmVnX2F0dHI7DQo+PiAgICAgdHJhbnMtPmZsYWdzID0gZmxhZ3M7DQo+PiAgICAgdHJhbnMtPm1l
bV9hY2Nlc3Nfc2l6ZSA9IHNpemU7DQo+PiBAQCAtNDY0LDcgKzUwNCw3IEBAIHZvaWQgZmZhX2hh
bmRsZV9tZW1fc2hhcmUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgdWludDY0
X3QgYWRkciA9IGdldF91c2VyX3JlZyhyZWdzLCAzKTsNCj4+ICAgICB1aW50MzJfdCBwYWdlX2Nv
dW50ID0gZ2V0X3VzZXJfcmVnKHJlZ3MsIDQpOw0KPj4gICAgIGNvbnN0IHN0cnVjdCBmZmFfbWVt
X3JlZ2lvbiAqcmVnaW9uX2Rlc2NyOw0KPj4gLSAgICBjb25zdCBzdHJ1Y3QgZmZhX21lbV9hY2Nl
c3MgKm1lbV9hY2Nlc3M7DQo+PiArICAgIGNvbnN0IHN0cnVjdCBmZmFfbWVtX2FjY2Vzc18xXzIg
Km1lbV9hY2Nlc3M7DQo+PiAgICAgc3RydWN0IGZmYV9tZW1fdHJhbnNhY3Rpb25faW50IHRyYW5z
Ow0KPj4gICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47DQo+PiAgICAgc3Ry
dWN0IGZmYV9jdHggKmN0eCA9IGQtPmFyY2gudGVlOw0KPj4gQEAgLTQ3NCw5ICs1MTQsMTIgQEAg
dm9pZCBmZmFfaGFuZGxlX21lbV9zaGFyZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+
ICAgICByZWdpc3Rlcl90IGhhbmRsZV9oaSA9IDA7DQo+PiAgICAgcmVnaXN0ZXJfdCBoYW5kbGVf
bG8gPSAwOw0KPj4gICAgIGludCByZXQgPSBGRkFfUkVUX0RFTklFRDsNCj4+ICsgICAgdWludDMy
X3QgZmZhX3ZlcnM7DQo+PiAgICAgdWludDMyX3QgcmFuZ2VfY291bnQ7DQo+PiAgICAgdWludDMy
X3QgcmVnaW9uX29mZnM7DQo+PiAgICAgdWludDE2X3QgZHN0X2lkOw0KPj4gKyAgICB1aW50OF90
IHBlcm07DQo+PiArICAgIHVpbnQ2NF90IGltcGRlZlsyXTsNCj4+IA0KPj4gICAgIGlmICggIWZm
YV9md19zdXBwb3J0c19maWQoRkZBX01FTV9TSEFSRV82NCkgKQ0KPj4gICAgIHsNCj4+IEBAIC01
MTUsOCArNTU4LDggQEAgdm9pZCBmZmFfaGFuZGxlX21lbV9zaGFyZShzdHJ1Y3QgY3B1X3VzZXJf
cmVncyAqcmVncykNCj4+ICAgICBpZiAoIGZyYWdfbGVuID4gdHhfc2l6ZSApDQo+PiAgICAgICAg
IGdvdG8gb3V0X3VubG9jazsNCj4+IA0KPj4gLSAgICByZXQgPSByZWFkX21lbV90cmFuc2FjdGlv
bihBQ0NFU1NfT05DRShjdHgtPmd1ZXN0X3ZlcnMpLCB0eF9idWYsDQo+PiAtICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZyYWdfbGVuLCAmdHJhbnMpOw0KPj4gKyAgICBmZmFfdmVycyA9
IEFDQ0VTU19PTkNFKGN0eC0+Z3Vlc3RfdmVycyk7DQo+PiArICAgIHJldCA9IHJlYWRfbWVtX3Ry
YW5zYWN0aW9uKGZmYV92ZXJzLCB0eF9idWYsIGZyYWdfbGVuLCAmdHJhbnMpOw0KPj4gICAgIGlm
ICggcmV0ICkNCj4+ICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPj4gDQo+PiBAQCAtNTQ1LDEz
ICs1ODgsMzUgQEAgdm9pZCBmZmFfaGFuZGxlX21lbV9zaGFyZShzdHJ1Y3QgY3B1X3VzZXJfcmVn
cyAqcmVncykNCj4+ICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPj4gICAgIH0NCj4+IA0KPj4g
KyAgICBpZiAoIHRyYW5zLm1lbV9hY2Nlc3Nfc2l6ZSA8IHNpemVvZihzdHJ1Y3QgZmZhX21lbV9h
Y2Nlc3MpICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BB
UkFNRVRFUlM7DQo+PiArICAgICAgICBnb3RvIG91dF91bmxvY2s7DQo+PiArICAgIH0NCj4+ICsN
Cj4+ICAgICAvKiBDaGVjayB0aGF0IGl0IGZpdHMgaW4gdGhlIHN1cHBsaWVkIGRhdGEgKi8NCj4+
ICAgICBpZiAoIHRyYW5zLm1lbV9hY2Nlc3Nfb2ZmcyArIHRyYW5zLm1lbV9hY2Nlc3Nfc2l6ZSA+
IGZyYWdfbGVuICkNCj4+ICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPj4gDQo+PiAgICAgbWVt
X2FjY2VzcyA9IHR4X2J1ZiArIHRyYW5zLm1lbV9hY2Nlc3Nfb2ZmczsNCj4+IC0NCj4+ICAgICBk
c3RfaWQgPSBBQ0NFU1NfT05DRShtZW1fYWNjZXNzLT5hY2Nlc3NfcGVybS5lbmRwb2ludF9pZCk7
DQo+PiArICAgIHBlcm0gPSBBQ0NFU1NfT05DRShtZW1fYWNjZXNzLT5hY2Nlc3NfcGVybS5wZXJt
KTsNCj4+ICsgICAgcmVnaW9uX29mZnMgPSBBQ0NFU1NfT05DRShtZW1fYWNjZXNzLT5yZWdpb25f
b2Zmcyk7DQo+PiArDQo+PiArICAgIC8qDQo+PiArICAgICAqIEZGLUEgMS4yIGludHJvZHVjZWQg
YW4gZXh0ZW5kZWQgbWVtX2FjY2VzcyBkZXNjcmlwdG9yIHdpdGggaW1wZGVmDQo+PiArICAgICAq
IGZpZWxkcywgYnV0IGd1ZXN0cyBjYW4gc3RpbGwgdXNlIHRoZSAxLjEgZm9ybWF0IGlmIHRoZXkg
ZG9uJ3QgbmVlZA0KPj4gKyAgICAgKiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIGRhdGEuIERldGVj
dCB3aGljaCBmb3JtYXQgaXMgdXNlZCBiYXNlZCBvbg0KPj4gKyAgICAgKiB0aGUgbWVtX2FjY2Vz
c19zaXplIGZpZWxkIHJhdGhlciB0aGFuIHRoZSBuZWdvdGlhdGVkIEZGLUEgdmVyc2lvbi4NCj4+
ICsgICAgICovDQo+PiArICAgIGlmICggdHJhbnMubWVtX2FjY2Vzc19zaXplID49IHNpemVvZihz
dHJ1Y3QgZmZhX21lbV9hY2Nlc3NfMV8yKSApDQo+PiArICAgICAgICBtZW1jcHkoaW1wZGVmLCBt
ZW1fYWNjZXNzLT5pbXBkZWYsIHNpemVvZihpbXBkZWYpKTsNCj4+ICsgICAgZWxzZQ0KPj4gKyAg
ICB7DQo+PiArICAgICAgICBpbXBkZWZbMF0gPSAwOw0KPj4gKyAgICAgICAgaW1wZGVmWzFdID0g
MDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gICAgIGlmICggIUZGQV9JRF9JU19TRUNVUkUoZHN0X2lk
KSApDQo+PiAgICAgew0KPj4gICAgICAgICAvKiB3ZSBkbyBub3Qgc3VwcG9ydCBzaGFyaW5nIHdp
dGggVk1zICovDQo+PiBAQCAtNTU5LDEzICs2MjQsMTEgQEAgdm9pZCBmZmFfaGFuZGxlX21lbV9z
aGFyZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICAgICAgICAgZ290byBvdXRfdW5s
b2NrOw0KPj4gICAgIH0NCj4+IA0KPj4gLSAgICBpZiAoIEFDQ0VTU19PTkNFKG1lbV9hY2Nlc3Mt
PmFjY2Vzc19wZXJtLnBlcm0pICE9IEZGQV9NRU1fQUNDX1JXICkNCj4+ICsgICAgaWYgKCBwZXJt
ICE9IEZGQV9NRU1fQUNDX1JXICkNCj4+ICAgICB7DQo+PiAgICAgICAgIHJldCA9IEZGQV9SRVRf
Tk9UX1NVUFBPUlRFRDsNCj4+ICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPj4gICAgIH0NCj4+
IC0NCj4+IC0gICAgcmVnaW9uX29mZnMgPSBBQ0NFU1NfT05DRShtZW1fYWNjZXNzLT5yZWdpb25f
b2Zmcyk7DQo+PiAgICAgaWYgKCBzaXplb2YoKnJlZ2lvbl9kZXNjcikgKyByZWdpb25fb2ZmcyA+
IGZyYWdfbGVuICkNCj4+ICAgICB7DQo+PiAgICAgICAgIHJldCA9IEZGQV9SRVRfTk9UX1NVUFBP
UlRFRDsNCj4+IEBAIC01OTAsNiArNjUzLDcgQEAgdm9pZCBmZmFfaGFuZGxlX21lbV9zaGFyZShz
dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+ICAgICB9DQo+PiAgICAgc2htLT5zZW5kZXJf
aWQgPSB0cmFucy5zZW5kZXJfaWQ7DQo+PiAgICAgc2htLT5lcF9pZCA9IGRzdF9pZDsNCj4+ICsg
ICAgbWVtY3B5KHNobS0+aW1wZGVmLCBpbXBkZWYsIHNpemVvZihzaG0tPmltcGRlZikpOw0KPj4g
DQo+PiAgICAgLyoNCj4+ICAgICAgKiBDaGVjayB0aGF0IHRoZSBDb21wb3NpdGUgbWVtb3J5IHJl
Z2lvbiBkZXNjcmlwdG9yIGZpdHMuDQo+PiBAQCAtNjA1LDcgKzY2OSw3IEBAIHZvaWQgZmZhX2hh
bmRsZV9tZW1fc2hhcmUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgaWYgKCBy
ZXQgKQ0KPj4gICAgICAgICBnb3RvIG91dDsNCj4+IA0KPj4gLSAgICByZXQgPSBzaGFyZV9zaG0o
c2htKTsNCj4+ICsgICAgcmV0ID0gc2hhcmVfc2htKHNobSwgZmZhX3ZlcnMpOw0KPiANCj4gU2hv
dWxkbid0IHdlIHJhdGhlciB1c2UgZmZhX2Z3X3ZlcnNpb24/DQoNCkRlZmluaXRlbHkgeWVzLg0K
DQpJbiBmYWN0IGkgaGF2ZSBkb25lIHRoaXMgaW4gYSBmb2xsb3cgdXAgcGF0Y2ggYW5kIGkgbmVl
ZCB0byBleHBvcnQgdGhlIGZ3IHZlcnNpb24gdG8gYmUgYWJsZSB0bw0KZG8gdGhhdCBidXQgSSB3
aWxsIGJyaW5nIHRoYXQgZm9yd2FyZCBhbmQgZG8gaXQgaGVyZSwgdGhhdCBtYWtlcyBhIGxvdCBt
b3JlIHNlbnNlLg0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IENoZWVycywNCj4gSmVucw0K
PiANCj4+ICAgICBpZiAoIHJldCApDQo+PiAgICAgICAgIGdvdG8gb3V0Ow0KPj4gDQo+PiAtLQ0K
Pj4gMi41MC4xIChBcHBsZSBHaXQtMTU1KQ0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:53:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:53:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225536.1532056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSdj-0008Ct-8Q; Mon, 09 Feb 2026 14:53:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225536.1532056; Mon, 09 Feb 2026 14: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 1vpSdj-0008Cm-5Q; Mon, 09 Feb 2026 14:53:27 +0000
Received: by outflank-mailman (input) for mailman id 1225536;
 Mon, 09 Feb 2026 14: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpSdh-0008Cg-3n
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14: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 153bdf1c-05c7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:53:24 +0100 (CET)
Received: from AS4P251CA0013.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d2::18)
 by AM9PR08MB5873.eurprd08.prod.outlook.com (2603:10a6:20b:2dd::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.17; Mon, 9 Feb
 2026 14:53:21 +0000
Received: from AM2PEPF0001C710.eurprd05.prod.outlook.com
 (2603:10a6:20b:5d2:cafe::f7) by AS4P251CA0013.outlook.office365.com
 (2603:10a6:20b:5d2::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 14:53:22 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C710.mail.protection.outlook.com (10.167.16.180) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 14:53:20 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AMDPR08MB11632.eurprd08.prod.outlook.com (2603:10a6:20b:73c::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 14:52:18 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 14:52: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: 153bdf1c-05c7-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=llJJYWm2Tw9RcNrASWm8yzXB4Kj8rpHYQxeVXYw2Y9OpuosTMwoU94OSZCddqvgfpZEZ4l4lGpQwIP1St+jW0aQJNhvmZXSdIA3/5n/Gjn34RqDMOujmgqCPHhPWDpzCRnCXwZk2C7gQwljPNQFjwG1n3/rs5BF/IBgDqdayjGU2m4qlr4oiLbyytmjqIZKvOaf1verd+zFfNmqMsbFtFgTN0ZCxHYIAPAlRfoGzC8RGqbV6pdfTUIn3BOiq00W9akCE86S7C4DvTDIR4bCCK9N7C9Hw4FdLRfcIlokAwt69zJyRSEjBziW8UbSNneYX5PupYz3mRDSOiTOf8bQExg==
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=bncAFYil/8wXfT0rxSwLbXinxYk0UcGOWfrBur3+V9c=;
 b=heBzrv+0NO5hyUGTkPnWQ6mGDMcdATnGVFYPkzxGJycK/1WNNlg6W0gEd1ZrOEVq9AzNcdnYiRniGXA0vNuiB3zp/edgeP3P7RvtSEPETAdgMHhPEjqS84ZwGsnyc0b6odgRiwcrntnz6ofDlDhBQ02QkhgbmM+NuWI0uhnWz55JXmHqZ5CYXr22q6w1X7V4Qr/hWYrj1LfIFW5TiMP9iGUWlE1QzPCszHzrpL8nTbUpajXl7w/k7QGndqIfFwVMzXsgtZfVfqd9KxgPqH6BZFloUiqh4csBHG+9Pp6LxR0Zq5kkJ3e1HU9U8SBPSpvkSVYfkK97auY/ET6Yus+WgQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bncAFYil/8wXfT0rxSwLbXinxYk0UcGOWfrBur3+V9c=;
 b=e0JAnJujp4onQWznQdUHKePC+GjvmVfbAfgswIhz81gkuAIGZaVN25mUSXnwfcdc9ydo6EZZdl9LTolRC7784OjIxc5abuHG0/CU1Qzc88JHDnpqDSYgvgHRV3ic52yCsF9cMr4N8Ko79M+9/ucu6kZDouf6w9f3jEmvWUSle5M=
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=GYU1ZGUzpS0nJri9cecvtwlAGpkDnJ/GxJUW0AbBUPyxp9s7iHFZSYtPAOKRyv4VvpcVEl72oB5/sle/XRZH2Jt3T3pciqfzXX0ip+AZgarckk68+vkHxJWYu6vm05x7ruyThP68psM37uCFAmU4l7nn+BzrJBnsqRsg56qYtfjrROwOzVsPjwC6NXTMrhOGSmY2A5Xo1XcNeCiGJkfO+4o2v1FOTGikUOBj5/XfmXy5e8Rhqwe2ToRrHVIi8IyH1hiV+QTSlKG3kPbq0pM2jkltVsR9w3CXc86TLlzM0x8I5zBV8HLf82AYsM0yeG/FPgSHY0tfCoSODVa+rfK94g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bncAFYil/8wXfT0rxSwLbXinxYk0UcGOWfrBur3+V9c=;
 b=hD7f3u5PV7k3Rt/eaOoUBiG5GWwlY9fCCZD0GUMxqs/b0D5gE44HLaX4s2nzla3kFRd6URht0h+slM2+T7OKKcy46UkCXMbZZlxJWTk5cS5uj5FcIKHmsdjv2Wiyw6kxgKmsQtjWy3f+UFBtvYqnlUt0SUt2gEazBUvnOcDMMwx4HbPCR+97Ya3vPskatrNElH4kLBV+G21r0rvTAysb/Fyw6M8rwibWr3iFHJpyIdYw1dprQrTWAx/ZGq4zFKnU46OgUQKSD3f1rlnbqc1CVTsMuzo8ZNbZuPLIfzuQlTRRpG6cy/9OOhVb2dDpQK7+kad1A99BXEGrHGpbm8yiaA==
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=bncAFYil/8wXfT0rxSwLbXinxYk0UcGOWfrBur3+V9c=;
 b=e0JAnJujp4onQWznQdUHKePC+GjvmVfbAfgswIhz81gkuAIGZaVN25mUSXnwfcdc9ydo6EZZdl9LTolRC7784OjIxc5abuHG0/CU1Qzc88JHDnpqDSYgvgHRV3ic52yCsF9cMr4N8Ko79M+9/ucu6kZDouf6w9f3jEmvWUSle5M=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 05/12] xen/arm: ffa: Fix PARTINFO RX release errors
Thread-Topic: [PATCH 05/12] xen/arm: ffa: Fix PARTINFO RX release errors
Thread-Index: AQHclTP+kXTEyTENq0yz84jX28uc2LV6dT2AgAAHrgA=
Date: Mon, 9 Feb 2026 14:52:18 +0000
Message-ID: <8A90931C-7DB3-49BF-AF94-ECCE7B2C5FF6@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <2cb24d49d7c72bf15a101cc3be62b3cccbfce3d5.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44G7ThfytBBQ=1DRju1z6DY_s+gbndNZOHLCUwf66V+Umg@mail.gmail.com>
In-Reply-To:
 <CAHUa44G7ThfytBBQ=1DRju1z6DY_s+gbndNZOHLCUwf66V+Umg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AMDPR08MB11632:EE_|AM2PEPF0001C710:EE_|AM9PR08MB5873:EE_
X-MS-Office365-Filtering-Correlation-Id: c8f43693-c7df-430b-9f99-08de67eaf7ac
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?c0RwTHk3NjdMS09HRHRPL09nYXE4azBRMmwwZ1lIbnhjcElxcm1zVnRTMTBo?=
 =?utf-8?B?aWtPdVU5VVUrNVNaVlM4Yktzd0tYRXNHTkpqd1RlT01MRFRqQXcreTd0S01h?=
 =?utf-8?B?eUMyMEZEMk1nRllnLytVZXBaVE44SERMdzUrZUZkTlpBc2FSbHVtd3VuMVZr?=
 =?utf-8?B?bUJ4ZlNWK0kvUkFIbFBDcTNGU2Q5YUlkQUVYMklqT3ZjTXNWYTkyRm8xNmdh?=
 =?utf-8?B?TWF4MkhhMDVGeFhVT2JKNDVuMTNoWXlHQ25OcDFRR0pEU1FHdksvK29sRHk1?=
 =?utf-8?B?YzFpRDhmVzg2YjgyVGkvcDhaVkJpd0F2T3NmU2lhd0xoUUJvdFBRZFBGQk4w?=
 =?utf-8?B?ditlZHpjVERYbDNEUWZJUGNrQ2pGVWgrcHFHQTdRZG9vK0FhTFRhcDFJZi9j?=
 =?utf-8?B?WENucnFlcWUvT1kxeURtQU85blp6c2h4cC9ndmN3YWJwT2xyNXpuTk56bUly?=
 =?utf-8?B?VGlzdjduTnVpcGV1a2oxRzRPendXckV2OFR5emlQdVNiMDdhSVEyKytIZHVz?=
 =?utf-8?B?azYvUk0vZVNQZE5wWGR4QWNycEk1YTJvTHAyQ2tQNU5iNUxqdnBLMWFxeG8v?=
 =?utf-8?B?TmNRREcvZUM5d3hGS1o5d3lsZm1KL1RncmVHZGl2akU5eU9aRnRnSGwvSXY4?=
 =?utf-8?B?UTkxalo0U3dMaFlyYmFDVi8rbmhoTnk1U0VSSnlVYm8rWXMzYm5Oa2dkZW5P?=
 =?utf-8?B?TmhzeVdPUlJQQ0haSTh2d09reVU1NkZDSm9QMkJxaEJBRDBnRXVJcGNYUnFo?=
 =?utf-8?B?RUxiaEtNbUtVRkFuMHFNZWM5bzl0dWkyZ0x5aVppeUFRSkxuWm5KaFY4UThz?=
 =?utf-8?B?QlgwK1RwVFI1UG9RQlhhMitFNWd1N0RVbVNENE5JWlYyMnE4d21rL2lJcmsy?=
 =?utf-8?B?a1JUU1cwWEhuUHI5eThNck5PZ2VhbDhxWWxIbmV1OTZDbTh6M0hONHZ2VXVL?=
 =?utf-8?B?VWZURFRFLy9MR0drQnEwZHc2a25ZOUlUWXZ4bDhUZ3FPU2puN0sxS2RueDZE?=
 =?utf-8?B?ZWlKZVhYblkvMzh5c3ZxVk4yYXMvN05CeWZseTBqL2NyTWZ5SDdKYUNKQXhS?=
 =?utf-8?B?MjdEMWRUSkVCd044M3pKRkMxVDgvRk1UMXFnMXd2VHdnd1h2NWQ1ZUhVaWVx?=
 =?utf-8?B?dHdwQktybnA5Y09GZkxxaWR6aTZHT2FvWkVqSjFvcy9XOEd0VFJEQlQwdWpk?=
 =?utf-8?B?ZzA0SmhkanRMcG9VU0pZU0MwVS9PYVZvaytCY0Y5dG9vT1ZjL1ExdmFYTW5m?=
 =?utf-8?B?TTNydEdubjFrZFAreERaMkoyUm0zQjZUVklUSnZ2VlZSc0l4b0o5R3BzS2sx?=
 =?utf-8?B?V2F4NnVJaStwZzM3Y3pqdzhXSEhtOEhIR1M4b015dkc0RWcxbE5OcUUyYnRy?=
 =?utf-8?B?WGpSM2xrS2hlM3RzcXlidVpXdlpXYTN5dSt4VzFCVVZZUWhoYTVqTExGUkJI?=
 =?utf-8?B?Q2NaRTNQdU80RW8zSWc1WjlmQWUzT0dVd3AvbWJ4YW82a25DQnhSWEtsVkdt?=
 =?utf-8?B?OXdZQ0ZCN3I4aDFqMGloaUMyQ25yejQ3aEM4ZjJaMWNuTi8wYkhRSkUrV3Zz?=
 =?utf-8?B?TjhVKzFwaGZtU1JVeFVUWU96a0w5RXl3Vm13eWtIQ0NFQ0pBQXU4V3JYV1Az?=
 =?utf-8?B?b2k5dm5Od29hNVhKQVU3WUV6MmFDdVlORG1ySkFrclRZcEphTy9uOGFEOGJ5?=
 =?utf-8?B?SWJwcS9sZStOLzdsclZrNStIcW9Yb1BxM0w3OWhBaWJjSEF0a29pTmdMMzNl?=
 =?utf-8?B?Kys5V2Q0OEE5OHNueHVhbE10NFNGVFNiOXpzc1Z2Uk1iVGlhNFVBUkRJRkVM?=
 =?utf-8?B?OGpmemZSOE4yWDZyMEtvbFFSUzhFV0c5NnFiRW5paVpYWHltc040cG12d2ZR?=
 =?utf-8?B?N1FmMlpkRmpRSVlyQjNhTWJmRERjSjlpMG1BaEYrTXpWcVpZRU9CSlJOSkhn?=
 =?utf-8?B?OUFGbVNmVmRGTUVjdjBpanI4UjkwTDlDajZNUGdFZlVtTzNrVkpUSHErS2hM?=
 =?utf-8?B?YmlHWVZZYmphN2Z2aDMzUlo1dFlqV0Z2QUw3RTc3WU1nSXdYZWxjYU1nRjll?=
 =?utf-8?B?bnVRalJCT0VGZnJpeDFxU09NMHpsTy91QXJCa2loQ0FuZWZCbTUvUTl3ZlVS?=
 =?utf-8?B?N1BwMmtDY1FPVnNmdHhpc1c4R1VvK0Znb3VHWDVaTWE1N0ZHbGhoS1hXaTND?=
 =?utf-8?Q?PMwG9oFYj6Ey4gM34Z9kl7c=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <79D3F99E0D21D3499F8FBDAB9E787F1D@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11632
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c4ef5aac-fa71-4bd4-06e0-08de67ead281
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|82310400026|376014|1800799024|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WmEydm9FZzNjcytaOHBZM1c3ek1vdVFnR3FqcnhaUDgrZ1RXOXlQb09uOENS?=
 =?utf-8?B?ME8xcjRTUDZ5am9TNGMySjlWbHNITk9rbmsvSm9OOGdZTzEzeHlYaUlsVWo0?=
 =?utf-8?B?VEpSUzhCSENQYVB4ei9Ob1BlT3E3TXFlUkRybjBQUXZtcTlKV2x6NTlZOWNN?=
 =?utf-8?B?VVJjRGdlZ0ZVb2tKUHduU1pyOXVCM1lSdFZUTHRLZ0QvTDMwR0lzN1FKUjhw?=
 =?utf-8?B?UWxaYnViZ2Z4ZHFLbXJUNnVoTDR2Y0xxT1RSc3I1ejJqdExqcGltdVZNbDBw?=
 =?utf-8?B?ajVZdG1JOE5ma3V4VmRlRkQ5YStFbVhwWFMzdVFXTGswcTFxeWhxMG5Fc2lS?=
 =?utf-8?B?U2ViWkhXSGE3MzJkWktFV2xXK3Yvam1iMmlDQnVjZzdUbThKV0FXdG13ZlF0?=
 =?utf-8?B?eHFxSjlteFhLNEI5MzErbVQ4RG56bUR1YWJRcU1aN1BpOFVpREI1cE45NmZ0?=
 =?utf-8?B?eCtobndBcTEwMy9oZFJMVFFyTVJCWjNNM3NGZ0Y3NUtwRmxsV3J3V3ZzRUQr?=
 =?utf-8?B?VC9EcWVFOVl2dmFBWk1kS2FKYmczZy9na1JzZWZpcm9SN3p6d2VKSXBYb3hl?=
 =?utf-8?B?UStBWUdaTkFlZTkzUWQ3SEpXNk92U2N5dGdNVno3c2xjNm5zUWpTVkNucThY?=
 =?utf-8?B?dzMyU2JHZHdTQ2ZzM2t6d2JSOU40K0VyYXY1R3F2UXlZNENqOFpLd215cFAx?=
 =?utf-8?B?RkI5YW4yWVphdjNoRlJRalI5VFBjb1hMNmFvZkkzakJYTnNjclBJTE03emRa?=
 =?utf-8?B?RDhpWnVSd2thdnhOZkcrVGExelZnSVVWcXNUbktSUWtkU0dBd0l3N0U5NFlz?=
 =?utf-8?B?blhFV1JwdW1JMUM1TitFVVprSkxEbm9mMmUwdXlPMnlsMlBVQloxUHJYNEpp?=
 =?utf-8?B?VWNhTkRRRkhSTmJFRjk2L0xCVWl5RVNTYmhyQzJ2QzBMeU51bC9QZ1lqTGNm?=
 =?utf-8?B?NllCZXVBZEo4bGZtSTVsL2h1a0ZBMTltVzE4ZVpkZHZDUnhhWWZWYnBNYXRQ?=
 =?utf-8?B?c1JoVVp6U0c1aWtZQTlrSlBNUjdGcjRtTHQ2ekpZczNsSUdxWk9JaHhzRHFk?=
 =?utf-8?B?RUhQYThDbld1MW1za3p2dVZyMnFkYzQ4Vk9hUzUxc2hsMC96V2Vtak5YUWcw?=
 =?utf-8?B?SUhxRmhVRDdFb0ZqQkhLSVpSdjcrNisrYklBTnZnVWxRbnhYbTVPODhkRXlI?=
 =?utf-8?B?TUZaaGFWVXJTalQzTlQ0QmNEak1PcGQwRFNlam1jODVNdGF0a1ZUMGt6dW9O?=
 =?utf-8?B?djRGby83TjllQ3MzNEZ5OW5qbWw4QkRocENVRFIwRXBueWJEL0xHTFFIcU1Z?=
 =?utf-8?B?SUM3SVlXOWlRZzRibDVQWWZIRjRycE9DeEl1emZ5ODRtdFdWRXd4cUttU3ZK?=
 =?utf-8?B?REVyblpVb2tHQk8wTFF0cGthQlJPQTE2cGlpUEw1djJiYi92RmVoK1JhTitC?=
 =?utf-8?B?NVFTOWVTMXVzeGdCendENGJHNGR4YkFWU0gvSVh3YnJ4M0JuR2piTFljcHRq?=
 =?utf-8?B?Mkd6NjFnOUdSNWlxZnhBY0p6ZTZUTnlGODFyTFBvUUZrQU81U0hnS0NhTmhJ?=
 =?utf-8?B?ZGh3Y2NGZ2pmMEU1cndsTldpazQ3WkNMdXVuMzM4bW03eUVFQXQ4U3h4NWI4?=
 =?utf-8?B?WTd5SXlXRnpGb2xqZTY4Y0ZyaXNEZW84dG83SWhsQjA5T3RqZGs1aFNvS2Jj?=
 =?utf-8?B?aFJJV0dVekxSYmpLWjZleStqbXEzWDRzazRYekdBR2NtTlBReEp1NWlIU01Q?=
 =?utf-8?B?ZmlsNUVRV3JOK0ZTem5VZHpuUGxHMDdhODRzSWVzNmtCNG5Zd3o2ZUFTRWVh?=
 =?utf-8?B?N2NibXpHODUxSTVoMU9oNXhDMVlycDBOUGUrQ1RZNjB0djRBMEpSdWU0SWlP?=
 =?utf-8?B?dUdkZ0orN2dEaENSVUJCK214Vm9aeGtDYy9pMVVjS2hVMjNYd1dqcFIvd3N5?=
 =?utf-8?B?OWV2Q3dudTZHYlIzS0ozVFQrSGNYRk1MUERZS1FhOW9JbXNwMktxb09WWFIr?=
 =?utf-8?B?bzU2dzh3TncxMENTYks4K1I2S1hLL2cycURuZ0V2WVhLQ0FtR2Q4bkErRERz?=
 =?utf-8?B?ZXRuNUVtNWhFUHBjR0h2aTMvREQ2dnp0UHFoaUQ3cjh1QXpSbVVPcUQwOXM3?=
 =?utf-8?B?ZzNtNkd2b0tXQnRZYkRmNldrUHZaWHd5OHYrcnFwanAwcHhnS3hicGtNQzR3?=
 =?utf-8?B?VGFQSUdtL0lnUXlFeXZZUThCcXBDK0xSUVlWREU3dEtZbzVHRzRiM2NuNWhw?=
 =?utf-8?B?U0FTdXhpT2JhL2hTb2NvTW9Ca1pRPT0=?=
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)(82310400026)(376014)(1800799024)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZAPUc+Beb/dTQbZmen4v8pW/CVgLRSotGaGlz05vEY63LwkYXqzQXlTvc2XJyTyEzbWufYM34glQb6qydVrc7r2nuLbP5oj3dTF1oVGm2DPsodfc4IW9yZ9C3RtjArdgAnZdE96h5N1pYwWO+Ta84oYSx6sSm2InTI9BztVD76FUQuigQDiHWkm6e7Qvu+nUCQCXBBNpGiWxSJENSGvQKir/dgHylgCAQPZ/hf1944tCCmgGkLmUsaAcsfDjt20kga7Dv9TETYhF1sbw4cqKjeAhlLhfL4SU+bPVydde6zUZlzNfUwTvLiHp1+4K03/9LIuB3Q9qnbQ6Skc2C1tblZZdmhCvgaLkNo6ulpApa358dJBV0ISom/4vkaUB0VBmnj7mAY/j9XyIRgBZfnyUDpotqXo/3HUjzIwauMNgXr/AReeafktXKgGtNoMgxwva
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:53:20.7563
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c8f43693-c7df-430b-9f99-08de67eaf7ac
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:
	AM2PEPF0001C710.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB5873

SGkgSmVucywNCg0KPiBPbiA5IEZlYiAyMDI2LCBhdCAxNToyNCwgSmVucyBXaWtsYW5kZXIgPGpl
bnMud2lrbGFuZGVyQGxpbmFyby5vcmc+IHdyb3RlOg0KPiANCj4gSGkgQmVydHJhbmQsDQo+IA0K
PiBPbiBUdWUsIEZlYiAzLCAyMDI2IGF0IDY6MzjigK9QTSBCZXJ0cmFuZCBNYXJxdWlzDQo+IDxi
ZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBPbiBQQVJUSVRJT05fSU5G
T19HRVQgZXJyb3IgcGF0aHMsIFhlbiB1bmNvbmRpdGlvbmFsbHkgY2FsbGVkDQo+PiBGRkFfUlhf
UkVMRUFTRSBmb3IgdGhlIFNQTUMgUlggYnVmZmVyLiBJZiB0aGUgU1BNQyBkaWRuJ3QgZ3JhbnQg
UlgNCj4+IG93bmVyc2hpcCAoaS5lLiwgdGhlIGNhbGwgZmFpbGVkIGVhcmx5KSwgdGhpcyBpc3N1
ZXMgYSBzcHVyaW91cyByZWxlYXNlDQo+PiB0aGF0IHJldHVybnMgREVOSUVEIGFuZCBwcm9kdWNl
cyB3YXJuaW5ncy4NCj4+IA0KPj4gTW9kaWZ5IGZmYV9yeHR4X3NwbWNfcnhfcmVsZWFzZSgpIHRv
IHJldHVybiB0aGUgcmVsZWFzZSBzdGF0dXMgYW5kIGxldA0KPj4gY2FsbGVycyBjaG9vc2Ugd2hl
dGhlciB0byBsb2cgaXQuIE9ubHkgaXNzdWUgRkZBX1JYX1JFTEVBU0UgYWZ0ZXIgYQ0KPj4gc3Vj
Y2Vzc2Z1bCBQQVJUSU5GTyBTTUMsIHdoaWxlIGFsd2F5cyByZWxlYXNpbmcgdGhlIGxvY2FsIFJY
IGxvY2sgdG8NCj4+IGF2b2lkIGRlYWRsb2Nrcy4NCj4+IA0KPj4gVXBkYXRlIGhhbmRsZV9wYXJ0
aXRpb25faW5mb19nZXQoKSB0byBvbmx5IHJlbGVhc2UgdGhlIFNQTUMgUlggYnVmZmVyDQo+PiBh
ZnRlciBzdWNjZXNzZnVsIGZ3X3JldCBjaGVja3MsIGFuZCBpZ25vcmUgcmVsZWFzZSBlcnJvcnMg
ZHVyaW5nIHRoZQ0KPj4gZXJyb3IgcGF0aC4NCj4+IA0KPj4gRnVuY3Rpb25hbCBpbXBhY3Q6IGVs
aW1pbmF0ZXMgc3B1cmlvdXMgRkZBX1JYX1JFTEVBU0UgY2FsbHMgYW5kDQo+PiBhc3NvY2lhdGVk
IERFTklFRCB3YXJuaW5ncyB3aGVuIFBBUlRJVElPTl9JTkZPX0dFVCBmYWlscyBiZWZvcmUNCj4+
IG9idGFpbmluZyBTUE1DIFJYIGJ1ZmZlciBvd25lcnNoaXAuDQo+PiANCj4+IFNpZ25lZC1vZmYt
Ynk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+IC0tLQ0K
Pj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYyB8IDE0ICsrKysrKysrKysrKy0tDQo+
PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9wcml2YXRlLmggIHwgIDIgKy0NCj4+IHhlbi9hcmNoL2Fy
bS90ZWUvZmZhX3J4dHguYyAgICAgfCAxNCArKysrKysrKystLS0tLQ0KPj4gMyBmaWxlcyBjaGFu
Z2VkLCAyMiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0
IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZh
X3BhcnRpbmZvLmMNCj4+IGluZGV4IGJmOTA2ZWQwYzg4Zi4uNmIwMWM0YWJlOTE1IDEwMDY0NA0K
Pj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYw0KPj4gKysrIGIveGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfcGFydGluZm8uYw0KPj4gQEAgLTkyLDkgKzkyLDExIEBAIHN0YXRpYyBp
bnQzMl90IGZmYV9nZXRfc3BfcGFydGluZm8oc3RydWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90
ICpzcF9jb3VudCwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy
X3QgZHN0X3NpemUpDQo+PiB7DQo+PiAgICAgaW50MzJfdCByZXQ7DQo+PiArICAgIGludDMyX3Qg
cmVsZWFzZV9yZXQ7DQo+PiAgICAgdWludDMyX3Qgc3JjX3NpemUsIHJlYWxfc3BfY291bnQ7DQo+
PiAgICAgdm9pZCAqc3JjX2J1ZjsNCj4+ICAgICB1aW50MzJfdCBjb3VudCA9IDA7DQo+PiArICAg
IGJvb2wgc3BtY19vayA9IGZhbHNlOw0KPiANCj4gV291bGRuJ3Qgbm90aWZ5X2Z3IGJlIGNsZWFy
ZXIsIGFuZCB0aGUgc2FtZSBpbiBmZmFfcGFydGluZm9faW5pdCgpPw0KDQpZZXMgdGhhdCB3b3Vs
ZCBtYWtlIG1vcmUgc2Vuc2UuDQpJIHdpbGwgcmVuYW1lIHNwbWNfb2sgdG8gbm90aWZ5X2Z3IGlu
IHYyLg0KDQo+IA0KPiBFaXRoZXIgd2F5LCBwbGVhc2UgYWRkOg0KPiBSZXZpZXdlZC1ieTogSmVu
cyBXaWtsYW5kZXIgPGplbnMud2lrbGFuZGVyQGxpbmFyby5vcmc+DQoNClRoYW5rcw0KDQpDaGVl
cnMNCkJlcnRyYW5kDQoNCj4gDQo+IENoZWVycywNCj4gSmVucw0KPiANCj4+IA0KPj4gICAgIC8q
IFdlIG5lZWQgdG8gdXNlIHRoZSBSWCBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgbGlzdCAqLw0KPj4g
ICAgIHNyY19idWYgPSBmZmFfcnh0eF9zcG1jX3J4X2FjcXVpcmUoKTsNCj4+IEBAIC0xMDQsNiAr
MTA2LDcgQEAgc3RhdGljIGludDMyX3QgZmZhX2dldF9zcF9wYXJ0aW5mbyhzdHJ1Y3QgZmZhX3V1
aWQgdXVpZCwgdWludDMyX3QgKnNwX2NvdW50LA0KPj4gICAgIHJldCA9IGZmYV9wYXJ0aXRpb25f
aW5mb19nZXQodXVpZCwgMCwgJnJlYWxfc3BfY291bnQsICZzcmNfc2l6ZSk7DQo+PiAgICAgaWYg
KCByZXQgKQ0KPj4gICAgICAgICBnb3RvIG91dDsNCj4+ICsgICAgc3BtY19vayA9IHRydWU7DQo+
PiANCj4+ICAgICAvKiBWYWxpZGF0ZSB0aGUgc3JjX3NpemUgd2UgZ290ICovDQo+PiAgICAgaWYg
KCBzcmNfc2l6ZSA8IHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRpdGlvbl9pbmZvXzFfMCkgfHwNCj4+
IEBAIC0xNTcsNyArMTYwLDEwIEBAIHN0YXRpYyBpbnQzMl90IGZmYV9nZXRfc3BfcGFydGluZm8o
c3RydWN0IGZmYV91dWlkIHV1aWQsIHVpbnQzMl90ICpzcF9jb3VudCwNCj4+ICAgICAqc3BfY291
bnQgPSBjb3VudDsNCj4+IA0KPj4gb3V0Og0KPj4gLSAgICBmZmFfcnh0eF9zcG1jX3J4X3JlbGVh
c2UoKTsNCj4+ICsgICAgcmVsZWFzZV9yZXQgPSBmZmFfcnh0eF9zcG1jX3J4X3JlbGVhc2Uoc3Bt
Y19vayk7DQo+PiArICAgIGlmICggcmVsZWFzZV9yZXQgKQ0KPj4gKyAgICAgICAgZ3ByaW50ayhY
RU5MT0dfV0FSTklORywNCj4+ICsgICAgICAgICAgICAgICAgImZmYTogRXJyb3IgcmVsZWFzaW5n
IFNQTUMgUlggYnVmZmVyOiAlZFxuIiwgcmVsZWFzZV9yZXQpOw0KPj4gICAgIHJldHVybiByZXQ7
DQo+PiB9DQo+PiANCj4+IEBAIC01MDcsNiArNTEzLDcgQEAgYm9vbCBmZmFfcGFydGluZm9faW5p
dCh2b2lkKQ0KPj4gICAgIGludDMyX3QgZTsNCj4+ICAgICB2b2lkICpzcG1jX3J4Ow0KPj4gICAg
IHN0cnVjdCBmZmFfdXVpZCBuaWxfdXVpZCA9IHsgLnZhbCA9IHsgMFVMTCwgMFVMTCB9IH07DQo+
PiArICAgIGJvb2wgc3BtY19vayA9IGZhbHNlOw0KPj4gDQo+PiAgICAgaWYgKCAhZmZhX2Z3X3N1
cHBvcnRzX2ZpZChGRkFfUEFSVElUSU9OX0lORk9fR0VUKSB8fA0KPj4gICAgICAgICAgIWZmYV9m
d19zdXBwb3J0c19maWQoRkZBX01TR19TRU5EX0RJUkVDVF9SRVFfMzIpKQ0KPj4gQEAgLTUyMiw2
ICs1MjksNyBAQCBib29sIGZmYV9wYXJ0aW5mb19pbml0KHZvaWQpDQo+PiAgICAgICAgIHByaW50
ayhYRU5MT0dfRVJSICJmZmE6IEZhaWxlZCB0byBnZXQgbGlzdCBvZiBTUHM6ICVkXG4iLCBlKTsN
Cj4+ICAgICAgICAgZ290byBvdXQ7DQo+PiAgICAgfQ0KPj4gKyAgICBzcG1jX29rID0gdHJ1ZTsN
Cj4+IA0KPj4gICAgIGlmICggY291bnQgPj0gRkZBX01BWF9OVU1fU1AgKQ0KPj4gICAgIHsNCj4+
IEBAIC01MzMsNyArNTQxLDkgQEAgYm9vbCBmZmFfcGFydGluZm9faW5pdCh2b2lkKQ0KPj4gICAg
IHJldCA9IGluaXRfc3Vic2NyaWJlcnMoc3BtY19yeCwgY291bnQsIGZwaV9zaXplKTsNCj4+IA0K
Pj4gb3V0Og0KPj4gLSAgICBmZmFfcnh0eF9zcG1jX3J4X3JlbGVhc2UoKTsNCj4+ICsgICAgZSA9
IGZmYV9yeHR4X3NwbWNfcnhfcmVsZWFzZShzcG1jX29rKTsNCj4+ICsgICAgaWYgKCBlICkNCj4+
ICsgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyAiZmZhOiBFcnJvciByZWxlYXNpbmcgU1BN
QyBSWCBidWZmZXI6ICVkXG4iLCBlKTsNCj4+ICAgICByZXR1cm4gcmV0Ow0KPj4gfQ0KPj4gDQo+
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oIGIveGVuL2FyY2gv
YXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBpbmRleCA1ODU2MmQ4ZTczM2MuLjQ2MWU4N2Y2Zjlj
NCAxMDA2NDQNCj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4gKysr
IGIveGVuL2FyY2gvYXJtL3RlZS9mZmFfcHJpdmF0ZS5oDQo+PiBAQCAtNDU4LDcgKzQ1OCw3IEBA
IGludDMyX3QgZmZhX2VuZHBvaW50X2RvbWFpbl9sb29rdXAodWludDE2X3QgZW5kcG9pbnRfaWQs
IHN0cnVjdCBkb21haW4gKipkX291dCwNCj4+IGJvb2wgZmZhX3J4dHhfc3BtY19pbml0KHZvaWQp
Ow0KPj4gdm9pZCBmZmFfcnh0eF9zcG1jX2Rlc3Ryb3kodm9pZCk7DQo+PiB2b2lkICpmZmFfcnh0
eF9zcG1jX3J4X2FjcXVpcmUodm9pZCk7DQo+PiAtdm9pZCBmZmFfcnh0eF9zcG1jX3J4X3JlbGVh
c2Uodm9pZCk7DQo+PiAraW50MzJfdCBmZmFfcnh0eF9zcG1jX3J4X3JlbGVhc2UoYm9vbCBub3Rp
ZnlfZncpOw0KPj4gdm9pZCAqZmZhX3J4dHhfc3BtY190eF9hY3F1aXJlKHZvaWQpOw0KPj4gdm9p
ZCBmZmFfcnh0eF9zcG1jX3R4X3JlbGVhc2Uodm9pZCk7DQo+PiANCj4+IGRpZmYgLS1naXQgYS94
ZW4vYXJjaC9hcm0vdGVlL2ZmYV9yeHR4LmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9yeHR4LmMN
Cj4+IGluZGV4IDdkOGJiNGY0ZDAzMS4uNTA3NThmYjU3Y2RmIDEwMDY0NA0KPj4gLS0tIGEveGVu
L2FyY2gvYXJtL3RlZS9mZmFfcnh0eC5jDQo+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9y
eHR4LmMNCj4+IEBAIC0zNzUsMTggKzM3NSwyMiBAQCB2b2lkICpmZmFfcnh0eF9zcG1jX3J4X2Fj
cXVpcmUodm9pZCkNCj4+ICAgICByZXR1cm4gTlVMTDsNCj4+IH0NCj4+IA0KPj4gLXZvaWQgZmZh
X3J4dHhfc3BtY19yeF9yZWxlYXNlKHZvaWQpDQo+PiAraW50MzJfdCBmZmFfcnh0eF9zcG1jX3J4
X3JlbGVhc2UoYm9vbCBub3RpZnlfZncpDQo+PiB7DQo+PiAgICAgaW50MzJfdCByZXQ7DQo+PiAN
Cj4+ICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmZmYV9zcG1jX3J4X2xvY2spKTsNCj4+IA0K
Pj4gLSAgICAvKiBJbmZvcm0gdGhlIFNQTUMgdGhhdCB3ZSBhcmUgZG9uZSB3aXRoIG91ciBSWCBi
dWZmZXIgKi8NCj4+IC0gICAgcmV0ID0gZmZhX3NpbXBsZV9jYWxsKEZGQV9SWF9SRUxFQVNFLCAw
LCAwLCAwLCAwKTsNCj4+IC0gICAgaWYgKCByZXQgIT0gRkZBX1JFVF9PSyApDQo+PiAtICAgICAg
ICBwcmludGsoWEVOTE9HX0RFQlVHICJFcnJvciByZWxlYXNpbmcgU1BNQyBSWCBidWZmZXI6ICVk
XG4iLCByZXQpOw0KPj4gKyAgICBpZiAoIG5vdGlmeV9mdyApDQo+PiArICAgIHsNCj4+ICsgICAg
ICAgIC8qIEluZm9ybSB0aGUgU1BNQyB0aGF0IHdlIGFyZSBkb25lIHdpdGggb3VyIFJYIGJ1ZmZl
ciAqLw0KPj4gKyAgICAgICAgcmV0ID0gZmZhX3NpbXBsZV9jYWxsKEZGQV9SWF9SRUxFQVNFLCAw
LCAwLCAwLCAwKTsNCj4+ICsgICAgfQ0KPj4gKyAgICBlbHNlDQo+PiArICAgICAgICByZXQgPSBG
RkFfUkVUX09LOw0KPj4gDQo+PiAgICAgc3Bpbl91bmxvY2soJmZmYV9zcG1jX3J4X2xvY2spOw0K
Pj4gKyAgICByZXR1cm4gcmV0Ow0KPj4gfQ0KPj4gDQo+PiB2b2lkICpmZmFfcnh0eF9zcG1jX3R4
X2FjcXVpcmUodm9pZCkNCj4+IC0tDQo+PiAyLjUwLjEgKEFwcGxlIEdpdC0xNTUpDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:56:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:56:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225543.1532066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSgN-0000JF-Lw; Mon, 09 Feb 2026 14:56:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225543.1532066; Mon, 09 Feb 2026 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 1vpSgN-0000J7-IE; Mon, 09 Feb 2026 14:56:11 +0000
Received: by outflank-mailman (input) for mailman id 1225543;
 Mon, 09 Feb 2026 14:56: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpSgM-0000J1-Qf
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:56:10 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7653ebd1-05c7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:56:08 +0100 (CET)
Received: from SN1PR12CA0058.namprd12.prod.outlook.com (2603:10b6:802:20::29)
 by PH7PR12MB6561.namprd12.prod.outlook.com (2603:10b6:510:213::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Mon, 9 Feb
 2026 14:56:01 +0000
Received: from SN1PEPF000252A0.namprd05.prod.outlook.com
 (2603:10b6:802:20:cafe::58) by SN1PR12CA0058.outlook.office365.com
 (2603:10b6:802:20::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 14:56:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF000252A0.mail.protection.outlook.com (10.167.242.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 14:56:00 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 08:55:58 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7653ebd1-05c7-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L0tCCW2TnXE1rxqsDqsI0X6S1cNxACcH2pKPz30IHbQIjmTTFv6hav4z3W3ObgswYu0qqUzTaLGuY10IyBxjFnVUT4c9HJ7EoL2b39w+Mxc51Y8c+vy1pJ/AtiSOKM3WqCM442GdTENmEPH+Nq6CvVVECXYGSGYCIKHME69/AkXf+D5Ph8UlZ9C9C2ZbKswbVSqFHt8LiGHVIHL+AUENZMAqwGcyt0fiDjHUmlFDFMXtBWMK38D57vwDCuV6kYDRZStvQ2GYWtbJRjVCRnHL+UTwMKaiG80WzCNrafigIztd4J9QAEhKRIzif/QAkKBXzlph9vdtpjNc3//+k7XNUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UFeVnkscL/WhswoMvEC9z5ioUAUych1M2PAJQb3ihdU=;
 b=ItpdprWWlS3CdU8jMNo06hosIMnhWpH55gr2qQNNlX7R2pcMYBMr03GBnJTMBiCwRaBEBTrttab5qYZwRtfriP0VIKUf68O+s3iM/heeYhrZF69bOLIO3N0OoEHkKO+ZgQSJHtqDD91W+il2P7fpU4Vc/XMwKJjo+7bEWVai3QUizJzO1wpH0TlVHNP/fZhTGNoA2GX9sTfqZpGB8u7vZk0KmAIgwSPBEsF9DG0ts4ynCZheYZYV5e0TLrb9/1PPXS5khilT4DO0Kk/wDLSKJtBfBJmSLYtnjKz//b9U5zQe62anlxpX8qkvn79+cd32v07V0RmHLZKL91x7MNLDqQ==
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=UFeVnkscL/WhswoMvEC9z5ioUAUych1M2PAJQb3ihdU=;
 b=tdZYndlwssMYZYAuV6yJ/QjbHptXDk9V1Izo4SMa6O4NDJRE6feZVV2MCt28+1fL9GqV43qpGJSgekfHnLJmvlngoPEKXx6Bvna3SZLZ+LcNkq0keGt3TBlfyhs6XPcnPUcxeqC8sll+8ec8UkPJCWvi7i2Y3X7dlRAVNxK8Wws=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 15:55:56 +0100
Message-ID: <DGAIO51BV4RA.1Y3G3VGPB3M1M@amd.com>
CC: <roger.pau@citrix.com>, <jbeulich@suse.com>, <andrew.cooper3@citrix.com>,
	<jason.andryuk@amd.com>
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Stefano Stabellini <stefano.stabellini@amd.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260206210554.126443-1-stefano.stabellini@amd.com>
In-Reply-To: <20260206210554.126443-1-stefano.stabellini@amd.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000252A0:EE_|PH7PR12MB6561:EE_
X-MS-Office365-Filtering-Correlation-Id: 17eaec58-efb4-4180-43ff-08de67eb5717
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?TUlQRWgvMW5waHlkOUNpalFXbjRySTRqSzBkMm1yRTdqMFdKUm50bUtnbWdm?=
 =?utf-8?B?aXNRWGtsTVNiNExqRk1UM0VQTWJHNDVUREx3SG5SRkUwQ1ZDVXoxc2FBeHpi?=
 =?utf-8?B?cFlvb2IxRlNtSmNyOTY4MDg5VzNJajlWUm5PekM0SzlyaHhxRkVUbDJnZmxU?=
 =?utf-8?B?NklINEswTDBoNmoxODlmTUh6eHVKakcwTHhzOVYrZkZYUHpYOVA3VTFwY3Fr?=
 =?utf-8?B?WER6YTZIcGV2eXIvSlBVTmlZY1NobFBlWHU5LzNEZXlKV3pEdGZCVENOYUxa?=
 =?utf-8?B?RXpNZjBvK2JUQjBabEQyYVh4Q1lPQ2c5VWFXUStYK3daSlVSdTBsb3M3MHIv?=
 =?utf-8?B?b08wbWc5dlhsNFo2RllWMlF5NE1zYndLTDU5OTJpbUZPVG9wOEdYTVA1TnRm?=
 =?utf-8?B?SnpXK0M0YUQwbURaN2JlR1RZN1BWM3pBQlZBT0l6VHdnSEoydTBhR1Z2UW9U?=
 =?utf-8?B?NUJlTEZBZmdVbFdacUUyakI0ZUJ1UzZaWGx6VGt5d3dzQ2FIbkJub3ZML0gw?=
 =?utf-8?B?bnMxYStjM3czaHBERitzQ2Ewa2VleFdzaUtqVFdGTUsrSE9aNTRVb3BEQVgy?=
 =?utf-8?B?cS9yL0g3WGdOb2FDOWNwNmw5YjBqVHhNK0tyUE9WeHlwMmswTnVPcGZRcXFI?=
 =?utf-8?B?cHc1RWwvbjNLdmQ0eDNNSDFYTWtnOUc5KzRYeWdLQkZ0N0xuMmgrcHdBeHZV?=
 =?utf-8?B?ZStVMDh1dnlrTnUyZmZ6Q3RJa1FiaTZyS0x5U2hNSjd4YzFtR29ZNjA5NnVQ?=
 =?utf-8?B?UUZDYm5HSGdFS2pqNll5c29URXVESmNVTDNibzh3OWVQcmsxWnpkdjhYVFJy?=
 =?utf-8?B?S09NL3hNb1kzcnZvM09mZjVTNWRkcURmamxwM25BQ3VENjVaQVFUU3Rrc0k0?=
 =?utf-8?B?RTZiSFJFUitMZE9SMmhHeHVPSXZyd2lybkRrS3AvaE9ITkdLN2F1SVFOUVRT?=
 =?utf-8?B?VHArWUU0UC82YzAxMUhIK3c3aEtTRTJ6Z1NSTk9oV3J6UEdUZ1ByV3VmSVMz?=
 =?utf-8?B?cy9ydGwya1BjbENwclRJck5RVnNIOFFmdTYvakNQK05FWGU4Qk1CYVpIdUM2?=
 =?utf-8?B?UmJyejlyRDQydVVLV1JsU0FvTVI5VmRtSXFzQlBkdlR2WkJuY3JiTzgxUmxk?=
 =?utf-8?B?cXphR1VrRGxHTFhRNHNxcGlISVZlMUJySVppbVpKQkVlUGg3dmUrcS96VEZp?=
 =?utf-8?B?QXZTOFZjdHBxaGxTTGN3VFRTd1prZkhvbFNuZ3VocEpCcnF1WEhLQWJLbkxO?=
 =?utf-8?B?N0xjMzBHeWpUV0dHVEQwRzNhajlreW1WTXg2ZXVLNGxJWkJHL2VZYmRDMHI4?=
 =?utf-8?B?cmdJdlBkcGxBYkYzVmYxWUZsdHQxMkh3WHNWc2htL2hSVWk2VlA1YnIyQ2Q5?=
 =?utf-8?B?RDdmcGVuMm15QXpzOUFORmtyRGRISXBGZ0hzTGpyV1RvSFVnNE1lRzdmSDhU?=
 =?utf-8?B?U1VJM095U3RLNmxyK25rbDBFbHJkc1g5a24vU3p0RWNLS3ZHNnZ3anAvWmtt?=
 =?utf-8?B?WFdxUWE1SVdjbW9YdmpWdmJGVzRISnZNV2JnZmhaRFViTC8rZTU1TDZOa05n?=
 =?utf-8?B?anRHU1V1YXV6dW1jMmtCWWxWVlI1NmwvSERiUlRyV2t4UHVUUno4NTF4UGZL?=
 =?utf-8?B?MnJFNnMxcXYrby9id0tDZGh1bXd5MUFrOW5Od285VlpRTFlaeTczcU93cGhZ?=
 =?utf-8?B?b3gyV3lwTFY3S3Q4aVI4NGxuekFvcUszVWlXSVRob2lXdk1kZnhIWGV2NC9j?=
 =?utf-8?B?WUllSGFiOE5DOW5kaDhDcjlaQ0k5UGgrakVxTTEralpYWnluN2pYZ3NTSW40?=
 =?utf-8?B?Mm5wakZCQUtzYmg3WnM0TjJRT0tJUFc4S2pFWUQ5S1R1WVlEL1VXRllPdjlV?=
 =?utf-8?B?UGJFZ2s0ZHFXUStWNnpaOUtocTJPdGhiNFY2dCtabElYSHRSZnBsVHNDWDVX?=
 =?utf-8?B?WTZYekRSR3VkZzl6ZkVncUM2OXZ5NU44YmpTdHNZdjh4bUs3UXdJQWFqRkRM?=
 =?utf-8?B?c2FHTzFzUy9ZTjlDa0dWWXlwdmtYZG9rUnBPcFFxbGRWZm1EaGVVRlhrMDZ3?=
 =?utf-8?B?ME5QUUtQcUs1dGF2d3A5bkp6R2dmSHdlS1JWZ1l3anQ4U3FuRGc0OGlSaEhs?=
 =?utf-8?B?Q1R5VU1UVzZPSUl4WVV5NlhFOFBKZGZyYmt4SnB5K0lRdytkYnhOb1ZyR2kz?=
 =?utf-8?B?bU9EV1hQaUFORGlDZVZiWUxKREFrdzIxdk5NYnZ5V08wTXNqb0ROUWdFYkxw?=
 =?utf-8?B?dXNmMU1oTitVQ3JKdG5Na0Q3NnJnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	keRYI0T8ocbdGdYgFsSUfytWmriaAPIAYv+Dlp/UL58MYQPje7+L+ttW/ynj2tNylP9kRAHWmP7Iy0Yp5DR1AWeYfbkwbG0EbMFmkSm9C5F+1pKXTLlpmfnT7/2d9UyiC9W14HkuOFytbZqDn524Us7/4eU8+zWl6305P5BK5KRuFeWf2MfjZ3kK6fFxdjOsrzVgRkWICSmBZNlZwuSO4XBzEEUbNG2zacuPFaDkTFBNqH01/rFC4bm4VwrFiXoGHKVqWgqMLVmah06OqviDDoUi1tpfsRikW66MoXQXZ20U8uAGkJK8ZlMwMR1p8NX6L/xhlhrh0xz/dxUVJpunU4VIk0/sIAgOqhh+ZoO/R93bh3vGjJG33VNz/LXgL0blW2x68Fgk2J0zTB7O+phmkrjso51WbAkqE2Z7e0To7xhszTn0kV7Jm+t5ORKVMXda
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:56:00.8699
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 17eaec58-efb4-4180-43ff-08de67eb5717
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000252A0.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6561

On Fri Feb 6, 2026 at 10:05 PM CET, Stefano Stabellini wrote:
> Introduce CONFIG_NESTED_VIRT (default y, requires EXPERT to disable)
> to allow nested virtualization support to be disabled at build time.
> This is useful for embedded or safety-focused deployments where
> nested virtualization is not needed, reducing code size and attack
> surface.
>
> When CONFIG_NESTED_VIRT=3Dn, the following source files are excluded:
> - arch/x86/hvm/nestedhvm.c
> - arch/x86/hvm/svm/nestedsvm.c
> - arch/x86/hvm/vmx/vvmx.c
> - arch/x86/mm/nested.c
> - arch/x86/mm/hap/nested_hap.c
> - arch/x86/mm/hap/nested_ept.c

Good riddance.

>
> Add inline stubs where needed in headers.

I'm fairly sure we can get rid much of this diff by curring off earlier.

>
> No functional change when CONFIG_NESTED_VIRT=3Dy.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> Changes in v2:
> - add ASSERT_UNREACHABLE
> - change default to N and remove EXPERT
> - don't compile nested_hap if not VMX
> - add XEN_SYSCTL_PHYSCAP_nestedhvm
> - add IS_ENABLED check in hvm_nested_virt_supported=20
> ---
>  xen/arch/x86/hvm/Kconfig                 | 10 ++++
>  xen/arch/x86/hvm/Makefile                |  2 +-
>  xen/arch/x86/hvm/svm/Makefile            |  2 +-
>  xen/arch/x86/hvm/svm/nestedhvm.h         | 60 +++++++++++++++++++++--
>  xen/arch/x86/hvm/svm/svm.c               |  6 +++
>  xen/arch/x86/hvm/vmx/Makefile            |  2 +-
>  xen/arch/x86/hvm/vmx/vmx.c               | 10 +++-
>  xen/arch/x86/include/asm/hvm/hvm.h       |  2 +-
>  xen/arch/x86/include/asm/hvm/nestedhvm.h | 52 ++++++++++++++++----
>  xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 62 ++++++++++++++++++++++++
>  xen/arch/x86/mm/Makefile                 |  2 +-
>  xen/arch/x86/mm/hap/Makefile             |  4 +-
>  xen/arch/x86/mm/p2m.h                    |  6 +++
>  xen/arch/x86/sysctl.c                    |  2 +
>  xen/include/public/sysctl.h              |  4 +-
>  15 files changed, 202 insertions(+), 24 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index f32bf5cbb7..133f19a063 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,14 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
> =20
> +config NESTED_VIRT
> +	bool "Nested virtualization support"
> +	depends on AMD_SVM || INTEL_VMX
> +	default n
> +	help
> +	  Enable nested virtualization, allowing guests to run their own
> +	  hypervisors. This requires hardware support.
> +
> +	  If unsure, say N.
> +
>  endif
> diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
> index f34fb03934..b8a0a68624 100644
> --- a/xen/arch/x86/hvm/Makefile
> +++ b/xen/arch/x86/hvm/Makefile
> @@ -18,7 +18,7 @@ obj-y +=3D irq.o
>  obj-y +=3D mmio.o
>  obj-$(CONFIG_VM_EVENT) +=3D monitor.o
>  obj-y +=3D mtrr.o
> -obj-y +=3D nestedhvm.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nestedhvm.o
>  obj-y +=3D pmtimer.o
>  obj-y +=3D quirks.o
>  obj-y +=3D rtc.o
> diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefil=
e
> index 8a072cafd5..92418e3444 100644
> --- a/xen/arch/x86/hvm/svm/Makefile
> +++ b/xen/arch/x86/hvm/svm/Makefile
> @@ -2,6 +2,6 @@ obj-y +=3D asid.o
>  obj-y +=3D emulate.o
>  obj-bin-y +=3D entry.o
>  obj-y +=3D intr.o
> -obj-y +=3D nestedsvm.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nestedsvm.o
>  obj-y +=3D svm.o
>  obj-y +=3D vmcb.o
> diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nest=
edhvm.h
> index 9bfed5ffd7..ed1aa847e5 100644
> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> @@ -26,6 +26,13 @@
>  #define nsvm_efer_svm_enabled(v) \
>      (!!((v)->arch.hvm.guest_efer & EFER_SVME))

This should be IS_ENABLED(CONFIG_NESTED_VIRT) && (!!((v)->arch.hvm.guest_ef=
er & EFER_SVME))

Then DCE removes all calls to the stubs you had to add, making the stubs
redundant. the stgi and clgi handlers need new helpers like those of VMRUN,=
 VMLOAD and
VMSAVE so that svm.c can dispatch #UD to the guest rather than relying on n=
estedsvm.c
doing so. Afterwards you endup with a cleaner nestedhvm.h with no stubs and
all logic removed by DCE.

> =20
>  /*
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 18ba837738..0234b57afb 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -46,6 +46,10 @@
> =20
>  void noreturn svm_asm_do_resume(void);
> =20
> +#ifndef CONFIG_NESTED_VIRT
> +void asmlinkage nsvm_vcpu_switch(void) { }
> +#endif

Rather than doing this, why not compile out the calls in entry.S?

While at it, there's the hunk about p2m stealing we can also get rid of:


	        cmp  %cl,VCPU_nsvm_hap_enabled(%rbx)
	UNLIKELY_START(ne, nsvm_hap)
	        cmp  %rcx,VCPU_nhvm_p2m(%rbx)
	        sete %al
	        test VCPU_nhvm_guestmode(%rbx),%al
	        UNLIKELY_DONE(z, nsvm_hap)
	        /*
	         * Someone shot down our nested p2m table; go round again
	         * and nsvm_vcpu_switch() will fix it for us.
	         */
	        sti
	        jmp  .Lsvm_do_resume
	__UNLIKELY_END(nsvm_hap)


> +
>  u32 svm_feature_flags;
> =20
>  /*
> @@ -2465,6 +2469,7 @@ static struct hvm_function_table __initdata_cf_clob=
ber svm_function_table =3D {
>      .set_rdtsc_exiting    =3D svm_set_rdtsc_exiting,
>      .get_insn_bytes       =3D svm_get_insn_bytes,
> =20
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise =3D nsvm_vcpu_initialise,
>      .nhvm_vcpu_destroy =3D nsvm_vcpu_destroy,
>      .nhvm_vcpu_reset =3D nsvm_vcpu_reset,
> @@ -2474,6 +2479,7 @@ static struct hvm_function_table __initdata_cf_clob=
ber svm_function_table =3D {
>      .nhvm_vmcx_hap_enabled =3D nsvm_vmcb_hap_enabled,
>      .nhvm_intr_blocked =3D nsvm_intr_blocked,
>      .nhvm_hap_walk_L1_p2m =3D nsvm_hap_walk_L1_p2m,
> +#endif
> =20
>      .get_reg =3D svm_get_reg,
>      .set_reg =3D svm_set_reg,
> diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makefil=
e
> index 04a29ce59d..902564b3e2 100644
> --- a/xen/arch/x86/hvm/vmx/Makefile
> +++ b/xen/arch/x86/hvm/vmx/Makefile
> @@ -3,4 +3,4 @@ obj-y +=3D intr.o
>  obj-y +=3D realmode.o
>  obj-y +=3D vmcs.o
>  obj-y +=3D vmx.o
> -obj-y +=3D vvmx.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D vvmx.o
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 82c55f49ae..252f27322b 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -55,6 +55,10 @@
>  #include <public/hvm/save.h>
>  #include <public/sched.h>
> =20
> +#ifndef CONFIG_NESTED_VIRT
> +void asmlinkage nvmx_switch_guest(void) { }
> +#endif

Same as for VMX. I didn't check the rest of it, but the same idea should ap=
ply.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:56:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:56:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225545.1532076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSgb-0000cY-1v; Mon, 09 Feb 2026 14:56:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225545.1532076; Mon, 09 Feb 2026 14:56: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 1vpSga-0000cR-V1; Mon, 09 Feb 2026 14:56:24 +0000
Received: by outflank-mailman (input) for mailman id 1225545;
 Mon, 09 Feb 2026 14:56: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpSga-0000bZ-4o
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:56:24 +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 800a714c-05c7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 15:56:23 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-4376c0bffc1so1002965f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 06:56:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b2ed9sm28162164f8f.5.2026.02.09.06.56.22
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 06:56:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 800a714c-05c7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770648982; x=1771253782; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y26jhaRzx60jKCYqInKUSytLMiqCKZuMl/G18nBCMPY=;
        b=RI8YeALdPZbWHXgBH428OJ6jnxni9LrN3/G075SCzCaoy8BgzdwGlCunJSzo5emFj4
         TrzYXkERSBAXSzEv7ig7tUQkOi9vuUT4AytvTRUNzRNZpNmxE32e3FtvCrtQoMxltm+P
         OyADJLkh0F/3TJYGeVeeOuPCnp2k4M8IlhIO0Sb+FCi8ovsZMaiTjhnhZHLUQSHyJ5Vn
         jFsbxdzJ0m0QqLwAh6t9t+nsAR4I7yIn2AKV7Prq6q01kVmJM2XfOhkWA56I+A2OdamN
         ju96QHm3TNQHLFnPe/tLRgsiM3lyAo/TDhoyMwSwGIDRU35iX7CpbUDDzRVRRuyG43P8
         aZ9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770648982; x=1771253782;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y26jhaRzx60jKCYqInKUSytLMiqCKZuMl/G18nBCMPY=;
        b=v0scS/m51w0A6wdy3vX4UlXcOh+yxPbSICKhu/VQ4AQBmpnS59r6JtMsc1VzrZ39H1
         ITAK8hJ9kEatGlX0eZerCwbLGvj521bN8PcW9fWwe9m20wPWuGjjUb+rLNvunrqpmlNk
         vk0voSnF2g5EydKKRjSZfEgqmfeutVqQIEiQzYaVTHmLZBQXZZ9bxtIJ9ew5DoiRWClI
         YyUdZTMO8D8VrYgmG80fpO28Hj4PcwjsFJ+d4+/EyEk1gHyMphV1FxoL6XG2KXopcanR
         mXY3szFHm0Q8V7AWw1FIQcreAfDt4IS/We/3nVT5ukFmjmhLNgRMnMUjHU/4lAH9A9pp
         EQ6Q==
X-Forwarded-Encrypted: i=1; AJvYcCXXDlePT2EkfLvR+QAvp9aMDmloo/xFd4NkqxCLlx4UJjydzbsoPi85TOq0js5s4PU8kZDdw4zK85Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyf89w3yVtZbQhUxopquIOMZHCjd9YcUyB0Ue2KVG2mDF7yH5Vb
	Hwc6DbTt3kOJJaKXpp4eT7BFWIXOmVP22hUIA1MdFWy6wGj5lsfOnDpG2akL0+ON7g==
X-Gm-Gg: AZuq6aJI0dJcXFqOyXs8UHkl4tqghalS4a7H9dfW/Eyjqd4A49jGiFNlVlyi+amhuIp
	aZ2hM5+WDvLBbfhReHabZR0Cvd3LjR+Au3Zi5biGHn7bL3MMCQbukZ2nWeYUavPpv+ddnCFZiWM
	H4OojxrzbHjZSGKipYpzMvRkikN0yQW6qKpGbSNjHGkoISy9KHySUfRh+M+dulapqf9BDavPww1
	mEDQ7kbGiVtVsGQLc/QRqQfIH/5wacZ89BZjRO8dsK6oP4FQxrvRL/stnrv+UhMUgX7S8cTGZTB
	Vz0cxL/0qXH1ULn+2hhbEUrEGoLXO1XuH9YtscRQ+VQ1/Hf6uFgea1mZWRWt4fv4JfAxgpMO5Jw
	UTQr/wyZ/j7Ek0+cWhvmtbBTQJev+5TL7s4W56BDjHvoBO87HNQKKAKG6aHA6NnHisUBe2fGcES
	Z6fkzt9VZEKdypWPaICK9GJ1zwdGdETOOkGoRfhz3Z5zmLpquYNTk0+Pgojka+5wOO2vdaZVFP7
	HY=
X-Received: by 2002:a05:6000:220f:b0:42f:bb4a:9989 with SMTP id ffacd0b85a97d-4362965faa7mr17197220f8f.28.1770648982463;
        Mon, 09 Feb 2026 06:56:22 -0800 (PST)
Message-ID: <0105370f-6b00-4174-9641-83c2e6d743b7@suse.com>
Date: Mon, 9 Feb 2026 15:56:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: short-circuit HVM shadow guest creation earlier
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20260209144049.86535-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: <20260209144049.86535-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 15:40, Roger Pau Monne wrote:
> If shadow paging has been compiled out short circuit the creation of HVM
> guests that attempt to use shadow paging at arch_sanitise_domain_config().
> There's no need to further build the domain when creation is doomed to fail
> later on.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 14:57:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 14:57:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225559.1532086 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSha-0001Mp-AB; Mon, 09 Feb 2026 14:57:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225559.1532086; Mon, 09 Feb 2026 14: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 1vpSha-0001Mi-7V; Mon, 09 Feb 2026 14:57:26 +0000
Received: by outflank-mailman (input) for mailman id 1225559;
 Mon, 09 Feb 2026 14: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpShY-0001MG-Nm
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 14:57:24 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a2eb7282-05c7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 15:57:22 +0100 (CET)
Received: from SA1P222CA0039.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2d0::12)
 by MN2PR12MB4437.namprd12.prod.outlook.com (2603:10b6:208:26f::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Mon, 9 Feb
 2026 14:57:16 +0000
Received: from SN1PEPF0002529E.namprd05.prod.outlook.com
 (2603:10b6:806:2d0:cafe::a2) by SA1P222CA0039.outlook.office365.com
 (2603:10b6:806:2d0::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 14:57:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF0002529E.mail.protection.outlook.com (10.167.242.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 14:57:15 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 08:57:14 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2eb7282-05c7-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JD45f10Qjxn1XpIaFNQknmAqeSA3ZAqH5HBTzg3Xxm7kKlY029Sl++wB955AVmq/snCtIv4ZLX1Bhchh7lgMkeD4PG9M+8B7LLBIwikFSv2O9wzHa4qqqSHO3JElPHWhr+fF3wV3muPqR6d43VE2AxPUUn63jMSkkQztI4NWHKWhCie77re7oyedQaPJQXdVzHMtaJUMPLU4KC5kt34FuUPSbV6zRIC6YKhdBmkSqEDkgBGFEacHtiJi83nDSKVxisGKCvKMY8isISS0lp2N3A5ClNO8drDIwyyY0TzgfWPKu29Jjz2CthTjd4AIlWLRR2cxERgmiwPMynkVgulmHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7MaOyptQHlRKwqMZqT+mE2C696UimjYruyVkbjwRA7k=;
 b=dtXbIG+0iyQKR/QsKi94MLGPUSDEqKQ9FT7qlsRMOWyPtNNfRlFmJ8mOYhAY2zi7w99YHVFmt5C/4jRGle3hAzIZUuFlR+9ZROfmebx/R6pw6ci5fhg+GelmdytgMlbtWMAG5qI28aUQwfV45PyUcrM52994xoqpWmVwGVHc57Llsgnws8Y9KpZyz1pzgCsxtZn5y2oNmRWpX5i7Ipc5KIdeSJPPMel2CTBPmC2LyPFlOnbgJ7vaHY5+RHJAK+8EJeNbSXlWdu5F0wOs8VxWegEy5qa7edMoTBDylrETEUslkp59n64GqSu6YraoeOuCvLZkkCVa36210oL8sDDcXg==
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=7MaOyptQHlRKwqMZqT+mE2C696UimjYruyVkbjwRA7k=;
 b=UY9C9tVAVfgfpvMr9ibId5YwKQP3bav/jEwZX79WqblEpXQFWgZEeJhnpUQ6AtLRGyQcS/5V9oKtzWPODsMg3cva1W0Imp5UXHzbOoXbvnkmm5HnFf4kBPeUWW6f8kxsnhIcrkRnm+5s3kTT6Y3jfsGKM3XHKBQeZw4Rsfkfanw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 15:57:12 +0100
Message-ID: <DGAIP3VHPCST.1K994JSQW3LXH@amd.com>
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>
Subject: Re: [PATCH] x86/kconfig: Reflow the SHADOW help message
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260209103339.6466-1-alejandro.garciavallejo@amd.com>
 <6779b2e3-c324-481b-ae20-20a40fb1eac4@suse.com>
In-Reply-To: <6779b2e3-c324-481b-ae20-20a40fb1eac4@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002529E:EE_|MN2PR12MB4437:EE_
X-MS-Office365-Filtering-Correlation-Id: cb2c20bb-a8a7-4b68-ce84-08de67eb83a8
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?OWIwazF0UUV6WEdRc3hydE9sNFF2SDdkRDVwTUh0RmhrWnoxMWlUOExmTGJR?=
 =?utf-8?B?OGl4bDQreWIrdmx4OUhqYVlBR1AvSmZKR1ZXM3N3OHcxaEFOUS9YNk1lbHdi?=
 =?utf-8?B?bkI1N21OeXh6aVJwRjh2eURXVEprOUNndWFvbTZzM1ZKVXdVNDZYcFpvTGR1?=
 =?utf-8?B?ckhwdkNkdko4YUdGZ0VmNjJtZmpyU0Zwb1NoaTV0N0pyRHZlV3FGaW1CYXRB?=
 =?utf-8?B?ZmdMSWMwb2tvVHZ6UGFMSEpFWXRGV1FRaHkxeTVNZ3VEaGErdzlFUzJpV3Qy?=
 =?utf-8?B?MW9zTTRzQ251TU10UHVDbmNSOVFHVVR4dVAxeFhVL01nd2pQZVd2dHMxcHZv?=
 =?utf-8?B?cTRIQTMwOEhzNUdnMnoyYXV3Ry9TdmxNMEdKdVoxZWJ1T3BYZ3BzZzVLRXYr?=
 =?utf-8?B?TlA4L253Ym50TGJVVm1Tam5oaDhoOVZPMUg0UjVuenkxcG5HNnM1eUgxLzN5?=
 =?utf-8?B?UkpmR2xkZkRPN20wWkVJU01wTU03aXdTTFFFNkJlaUQrb0hvUXV4NWxtekha?=
 =?utf-8?B?S2FncFh4YkE0RWxwRk9hbFlvczBEcGJBVTV0Y0lzeVFzQlVlOGhtK3pYL1Vt?=
 =?utf-8?B?NHdxL2hpZWVES3hPMUhTclpmeU1NVmJGWTlhdjA0VzR2YjFaeDZNVGFXYUxZ?=
 =?utf-8?B?RS94SnFGT1ZOMEVUZG1iL0JUOVBVQnhmZHlhbDV2NmIwMEZ5cWdVS1VIRW5p?=
 =?utf-8?B?ak9vdklmSzV0bFpablBFdDVFMjlMSTg2SkJ5aUdjRTlTQUFTY2c0LzZEZEEy?=
 =?utf-8?B?WVUwaEQweHB1bWdpOHNlbXJBNUt6Z3dIenIvMSt4SVBKNnBlTWpJMWxjdVps?=
 =?utf-8?B?ZTd5N2k4blhiNnlHQVRaMmc3WWR3aXF5VjFhckdhMzRZKzBCbHFnN0p2aFBT?=
 =?utf-8?B?aXJ3bnc2dUJVQ0dFajdab0l4MVRPVHpmUUhQc01SVmhpUVNRNHQ5c1o1WDBj?=
 =?utf-8?B?ckNjcGgzVDhOUUUraFhxeUljblVkMUZzbFo1REtyYzV1WlJRbitXS3JVQy8r?=
 =?utf-8?B?b3ZoMGp5Zlk0bGl0cm5LVngwNVRYS3FmMmlacy8xUHEwN0ZVVG84Wi9lR3Uy?=
 =?utf-8?B?ZHBlZW04VUlkR2t1U0lUcWxLYmNaeHhETXdCMm5sK24wajdSVDZCSVl0dnU2?=
 =?utf-8?B?NUwvUWlkKzd0TTBtejRrc0Y0akJsanBCaElCM1pXaStValpOSlpCeEg3VTdw?=
 =?utf-8?B?MDFQUXJ4SlF5S1duRUcwRTV4cnRIbFpIYURvVkRiMzJxSnRlNTg0UTdaSWxx?=
 =?utf-8?B?Kzd4YSswYUxUZ3VlYVZCd0VmSXJOZ2tkQWlZSnplK0M2SzYyT3h2RlpqRlg1?=
 =?utf-8?B?Y1Qva3hkY0hLSFE3MEVXQUh1OW52M1FUSlpQMHE4RzJYUkk5QldpZHorb0RP?=
 =?utf-8?B?QUhNMmozaE1xd2xHQnJ0b3RMRGZKNlFSd1VUOVhVZm0rbU9NTHlSeGppQzdu?=
 =?utf-8?B?QWFoWitONTMxSUppdFlnVnBzcEpBMGRWZkVQSFZTaGZvZkJnUGhQZHA0eHZr?=
 =?utf-8?B?b3hjbjRXVVYxNHNzczFGdWNGTDZ6ZFIrUFVwS3FvUlF4aDZyM1AzVzRmQUhB?=
 =?utf-8?B?UUx5SE8vVWVXNGhPeEtXRHNIeHMyTkdoZENoTXlxb0gxQjlBR1E2QVlwK0ZR?=
 =?utf-8?B?amlyRDUrVXJaUUZKaVovYnlxbUNaaGVJcFA4dEcvRnJFQXpoQVlGOW5reG5R?=
 =?utf-8?B?WVFEK2kyMTlJVC85dUFYRUd5Y1R0ekJWb2VUL01vL3JHRmhENHNaak45SnI0?=
 =?utf-8?B?VngyUVlzTzA0ak5wNFRDdkN5cUUxUnRaVTJZeFoxMlhSVUJBckpLL2p5UUQ4?=
 =?utf-8?B?dzJ3bXRrTVN0QUdsSUhHK2c4NnY3cGVrZldJWW5rczVTTXYzSlhVM2tUT2Z0?=
 =?utf-8?B?dEtNNzhjUFNoLzlscThaUk9uamtiWERyU3Z5MjJVenc0ak1oMkJHSUxrNGFC?=
 =?utf-8?B?b1pVS09PdjNTa2xmamkzSW5hN2FHSmV0a0ZMNk9ISVZNMzAwL2QwN1EzVEpD?=
 =?utf-8?B?S3dqMHJXRzg0bzU0YjZ1akx0dUJ3UzNwaEpzWmZVNGxBR3ZNT0JZckhscmpD?=
 =?utf-8?B?eWFURVo3SjBsK1hkQnJaeVNaTzcvVUZaSE9BYitWYTZrcWxLaXY3bDhCVlhT?=
 =?utf-8?B?YjE3SGJ3STExbTlhK3FtNFNGRjJ3bVM3QXplZkl0cmRpcW9kOG5KRU4xMDd3?=
 =?utf-8?B?UVF3d29GTXNseUdtdUZxZlJjZUhpTkoyeit5eG1zZlBleUFMME4zTzhYdGdH?=
 =?utf-8?B?ZUYya2R1eHBDQ2w0c0NFeTlkYkdnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	YmK+fe9HGD05wTRdPfF713/05PtbjxmFOqhdvbvxpJv5NUc1/GAa+EWUivmwUZ3SuEs0u+HdBR/phsmKp/ALEIaoeYeDdcJYPM/qXDDIu1J7Kns1Tilqu2SJMMJ80IThf76YRraskE1zy0ajNhPf9eCVxrSpsUl9CI+gVWXmcqjpVyiCbsZJVp8rVMsbTgXZfalLziL9Hs4+IVaojm6l8RzwbYJ9dg98fvjxmoM6Rc7BXbAwNOZQoEuQcAbQhX+8KbzfWmzhuLkXcluyKQq756Hi696mMKh9Z9C5Wly2E2SD64Owvm3S8FpHCPYEcqyQ1N1z68Lm/b5q4NW34HrnPMnCu3OFkour01N7UPstLtWzQqsUVz8uN8fjjg2hGDFkqW7+o2AuZuEyO7OqidVH2uNzObgEB9V7DlExjZBj60nRvugdlOJyJl3TPXRlANAa
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 14:57:15.6307
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cb2c20bb-a8a7-4b68-ce84-08de67eb83a8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002529E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4437

On Mon Feb 9, 2026 at 3:26 PM CET, Jan Beulich wrote:
> On 09.02.2026 11:33, Alejandro Vallejo wrote:
>> Wasn't following the tab+2 spaces convention throughout the rest of the =
file.
>>=20
>> Not a functional change.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>
> Largely:
> Acked-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
>> --- a/xen/arch/x86/Kconfig
>> +++ b/xen/arch/x86/Kconfig
>> @@ -148,20 +148,17 @@ config SHADOW_PAGING
>>  	default !PV_SHIM_EXCLUSIVE
>>  	depends on PV || HVM
>>  	help
>> +	  Shadow paging is a software alternative to hardware paging support
>> +	  (Intel EPT, AMD NPT).
>> =20
>> -          Shadow paging is a software alternative to hardware paging su=
pport
>> -          (Intel EPT, AMD NPT).
>> +	  It is required for:
>> +	  * Running HVM guests on hardware lacking hardware paging support
>> +	    (First-generation Intel VT-x or AMD SVM).
>> +	  * Live migration of PV guests.
>> +	  * L1TF sidechannel mitigation for PV guests.
>> =20
>> -          It is required for:
>> -            * Running HVM guests on hardware lacking hardware paging su=
pport
>> -              (First-generation Intel VT-x or AMD SVM).
>> -            * Live migration of PV guests.
>> -            * L1TF sidechannel mitigation for PV guests.
>> -
>> -          Under a small number of specific workloads, shadow paging may=
 be
>> -          deliberately used as a performance optimisation.
>> -
>> -          If unsure, say Y.
>
> I'm trying to establish (among the committers) whether we're indeed meani=
ng
> to drop this sentence from Kconfig help texts that we touch. If I wouldn'=
t
> get conclusive feedback, I'd likely put it back in.
>
> Jan

Sounds good to me either way.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:01:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:01:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225568.1532096 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSlG-0003N4-PN; Mon, 09 Feb 2026 15:01:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225568.1532096; Mon, 09 Feb 2026 15:01: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 1vpSlG-0003Mx-MU; Mon, 09 Feb 2026 15:01:14 +0000
Received: by outflank-mailman (input) for mailman id 1225568;
 Mon, 09 Feb 2026 15:01: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpSlF-0003Mr-HL
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:01:13 +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 2c718577-05c8-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:01:12 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-480142406b3so35224855e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 07:01:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b2d43sm26781845f8f.8.2026.02.09.07.01.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 07:01:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c718577-05c8-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770649272; x=1771254072; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=05IflmT3MvSCLWPWes/pi3jZH36fKu39C42fJw6xJbc=;
        b=GrCFVxOaxEcsBx8pEwCg5zijab2cmTIOaNyyYqFLe31FtyFoEdbSUijvSSZ0cP4Kux
         R95zZQU2tUBQ0E6t9RJweDeIh+NyxC6k8b2M0kO+1ML4SxlIoxEI05Kqh+xyGEgqAkAM
         tKyTXbPEkXJxXjBkw49VV6/uSI1ViMEPQ7zIzbo9k0w8Xj/45VCeP5j1hnhaTfnBafyj
         Fixsd587b9F8BIRFWFK5aP55rs3xMmlx5izUcRl3CfRmo3G4ntPIcJ2qqzOrKO1kcfhl
         MKYEr1AKKlvV3s2tqTroNvAdS7eXpN8L6KY9gCmc+DH0Onmn4Kd63jIy3uKW1XHZl9UT
         DY9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770649272; x=1771254072;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=05IflmT3MvSCLWPWes/pi3jZH36fKu39C42fJw6xJbc=;
        b=eEVLAFqW9H/kdo8w3AcRYSfxxamiNoxSbqqbm22SU2iuroN5YdqW3RAiVijhitEKuP
         M5BaToye2o5m+a84lIreSpcKF2nbqwf/23XDFVz5HhaYdzjVPsVI5xhZ7y88wf2bjUFo
         Uo8BhT+u8RADCLoSztu3GiiB651PaPYnrYo+QjCZtrfDzVSVKVnW49s9Dt4eghnIAgBh
         CxSN0LDiCarkhmrG1FASxCkJH1juCogGl0WndKEcGN9GqnM/axSBTBYoF6fUNxZy8oiU
         NPRKqDGDWOchsVyw+yLMwPU3y2rk06RPUeF0V3d65qutTqw1meGvGCML3Sfq4Fj1Qjfq
         akCw==
X-Forwarded-Encrypted: i=1; AJvYcCWIZ3hWsIwT2sMPwRPnsU1gjMGRo6A96s9iTBq72JEbe90FbpFfp43Gg87+VYZc3ei5p3UFIKdAJqE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw6bEbr7ppa11l0lyG1kVP+n33pTk4R7B/BIzl64cvBPpowTBWT
	bbdHNQ7uULEWOzbVW2EsR04YieV+OMbRvXj2EADjSbk65EJ5FbrJM2/obUpS/V6AGg==
X-Gm-Gg: AZuq6aKMYrUJeL4OKt5CKCHFVKfgnLj0/WfPx/HW6doFSI7UlCMmlo1iYL9UrsIWSt8
	jBAxxiwfqCdEmAzIpyR5eZ9C5jE3+JZ3L3UfbAR56xfc4u+JgenbKtHfPpcJOfY7k2FYbmtjfl8
	WZW2ma2SBwa46sPDy5tZt/VjBURyN/RwvRVjpBitxgQCXJBGRE2nVD9paXdgULfSqxnRrBw4YGo
	arH753wsRNBZCf8ppSlJrW4Ch3JI+z8KZxUsRd+v2J16G8yPchSnP9EJMqAWaO68VEYpcqOmW/p
	1B1A31v52GF+uEgHgyXgQc4moCs0wThSreJaAsNVwOTWT4zCStUYQiRPYUiwpHdGR7+/hnIM+US
	a5DJEZK0VFL3fgz1yGJMG4MAWFtK39cYDNUJhK0CrGKjn9fpjXGh6DKjnSUy3WJJtaYXuyZ4J36
	dX0GBdJ6EtN0xDnEILPKAZmDOYQyAGpYie6k3SS+qBvy/3G7wo8Q2QyZTn2gCoyQdKmQsWAvj7A
	B7JmMBViVxQMg==
X-Received: by 2002:a05:600c:a08:b0:480:4d37:e742 with SMTP id 5b1f17b1804b1-483201dd276mr154677845e9.10.1770649266316;
        Mon, 09 Feb 2026 07:01:06 -0800 (PST)
Message-ID: <13880b1a-fc99-4bc3-8c52-9e4d59354caf@suse.com>
Date: Mon, 9 Feb 2026 16:01:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Stefano Stabellini <stefano.stabellini@amd.com>
Cc: roger.pau@citrix.com, andrew.cooper3@citrix.com, jason.andryuk@amd.com,
 xen-devel@lists.xenproject.org
References: <20260206210554.126443-1-stefano.stabellini@amd.com>
 <DGAIO51BV4RA.1Y3G3VGPB3M1M@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: <DGAIO51BV4RA.1Y3G3VGPB3M1M@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 15:55, Alejandro Vallejo wrote:
> On Fri Feb 6, 2026 at 10:05 PM CET, Stefano Stabellini wrote:
>> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
>> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
>> @@ -26,6 +26,13 @@
>>  #define nsvm_efer_svm_enabled(v) \
>>      (!!((v)->arch.hvm.guest_efer & EFER_SVME))
> 
> This should be IS_ENABLED(CONFIG_NESTED_VIRT) && (!!((v)->arch.hvm.guest_efer & EFER_SVME))

And then, btw, the !! also dropped and the wrapping opening parenthesis moved.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:08:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:08:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225576.1532106 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSsI-0004CB-Ej; Mon, 09 Feb 2026 15:08:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225576.1532106; Mon, 09 Feb 2026 15:08:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSsI-0004C4-BN; Mon, 09 Feb 2026 15:08:30 +0000
Received: by outflank-mailman (input) for mailman id 1225576;
 Mon, 09 Feb 2026 15:08: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpSsG-0004Am-Dv
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:08:28 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2ede6946-05c9-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:08:26 +0100 (CET)
Received: from BY1P220CA0024.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:5c3::9)
 by MN2PR12MB4455.namprd12.prod.outlook.com (2603:10b6:208:265::23) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.13; Mon, 9 Feb
 2026 15:08:23 +0000
Received: from SJ1PEPF000023D0.namprd02.prod.outlook.com
 (2603:10b6:a03:5c3:cafe::f7) by BY1P220CA0024.outlook.office365.com
 (2603:10b6:a03:5c3::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 15:08:22 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000023D0.mail.protection.outlook.com (10.167.244.4) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 15:08:22 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 09:07:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ede6946-05c9-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AvugacQntXAb/QpydDpSMzW98Zl8mbWqji0AymP64+8L7xQuCcPFk/pU3oEQcuUv5fFuMi3J9JoUX18bwzHs1Dvc4mclGSLVEckBi08GnpXdsAg+DraRztKwbvH7nJUusWZWxzCrrUcHwSmr0nVLeea1XBckYE85hxZuqzq6oekY1VwAGck7JMMzbQBtHr1vUFWAaq73W9pflL5ZdmaNJlFMp+lKD59mxNKT+3Dqo1bKA5c0HTxcU3u7ZdY0GDKT75pz4N/0kTW1oSXQu0ATDA/oDQI55yf2gODxSG38r5lAq9irs8w7tUyvA1TXYo+wi0nna0q8wMlVS1PzO1MEVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZACJAMIXm9fqBihO1qHxx44lQPPNDIw2L15Y3Sh9xok=;
 b=A/RAdJH6ABD/adWj211XhNMMTiy6PwUwf0q4mW5iqVIsZsgklVhrSl9fhE6kmKYENxprWwRwie6OHPEVDiY1l87PHNjF8pheXY9AJxzxIMr861ON33dM1kSKf4b/IWq+cdqAJ3yPJ/JId7Cg127HsyEz5iMo6N5nAgwLmNjO77xn3W4vhEYDKqYk93DuN2yvnGS4fGBHdEj78/efG6U1MNLMezfwPqMd4E/v/YIoVZFZRM02mMMe+wXq+ZSrp0lkXyYVTPPUks3gSn6e8/LkQZDH/LZkCPeGDqr8cQgjcUF09MqvITujYEILIgCeUxIhu+RGO9DerMm4RhdxVCewKA==
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=ZACJAMIXm9fqBihO1qHxx44lQPPNDIw2L15Y3Sh9xok=;
 b=0VmroLvEj8PDovekTLkOz9OugzZ822fdxHL/P77q6aBwTo884u2aMoIQSEWEEPtlhNDk+ZzdwZEHYB+pWvhKSdOHRSmDF/Vg12tRbZSjfoBrw//3G/duOjs9u4MBkqH/urClIoOTZGNCfmFhO5M0IEksfd1voCrMs858FvYaXig=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 16:06:59 +0100
Message-ID: <DGAIWLL4CNGJ.22MBOK3KETJG0@amd.com>
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>, Tim Deegan
	<tim@xen.org>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <fcbdc4bf-249a-4495-b0fb-434c0e793484@suse.com>
In-Reply-To: <fcbdc4bf-249a-4495-b0fb-434c0e793484@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000023D0:EE_|MN2PR12MB4455:EE_
X-MS-Office365-Filtering-Correlation-Id: 78074416-145c-44a6-b7b1-08de67ed1119
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?UGhYbzJGY1BoSTB6YnlHUUp0aTNPYUc0RFhva2h1V1Z4Z2t6ZW1xbGxYUFBy?=
 =?utf-8?B?cFgvRmg0YmZRdm9Lb2FsYWZYMTJlL0ZPYjhyT1BSbnRCVFlFUnhjY3Z4Mndo?=
 =?utf-8?B?M0pEQTdDTVVzZXFRbndWNFhTY0I0YksvUmdmWTQrbzZkZ25ibDUyc3pxR0NS?=
 =?utf-8?B?S0pWRTlva0VtNTNudWppOUdOUitPT3pFYmI5eHlYdEUvcFpXSmE5ZVppVHlJ?=
 =?utf-8?B?ZTF4bGFWSUJLam5uNmVQOU01V1hobTNRdFJmMzEyZFk5L1JpWWlNTngyTFVZ?=
 =?utf-8?B?dmcydnVqL0JucFR1dlJYNmwzUFdRRVFHeW51MTYzOGlTVTFSV3VTN0l6RzhM?=
 =?utf-8?B?UDZYODE1a3pzS2pZRkhyMFo3OFNvb29PSjROM3RiaVF3ZlhuRTNCMTlFampY?=
 =?utf-8?B?Y1lCb3I5cmVOLzBqUDQ1b1YrRldvRUJnUUY3dTBoK1NGblUyYVRDb2RxMnN4?=
 =?utf-8?B?b1Rkd3FleXdvWnZ3NG5DQTVidG4zSUxLcmpaaUY5SHFxdmxGQk5PU2RreVZW?=
 =?utf-8?B?Z2VjbGdRc1BmeGxKdG1sU0pvd0ZNWTN5MWRlMTNpcnRXOEJ0cW9BZ1FhN1Fj?=
 =?utf-8?B?RVdyMExvUXJUTTBEMk13a3U2WnpBdEIrWnMyRmNkekFmL1J0SWdmVzNaMlhT?=
 =?utf-8?B?N2JBMlBsaHpocEVMY0VFcmpOcDZHRFpmNC84SkFmZHJxM2ZielB0VmxpckR5?=
 =?utf-8?B?VDdveHpWMS8rd1IyVlJpTjJnVjh5eU5JUk43b200NE5hUm9oL05VVUtvZk5v?=
 =?utf-8?B?UHBZNGxCRVA3cTNLQklneW1YTEJ6cVlESXRQWThWMTJMNlliRGI1MGl0cVFh?=
 =?utf-8?B?TW5ucVlNSGJiajIvR3pqK3dxMzRUZUNZaVVRSmp4Zzh5YUVCMXZXUHdlRDZt?=
 =?utf-8?B?TDB1ZHlHSEdBQUxmeEVNS0JyYnNTVWpOYmo4Ni9nK01NR0x2blBuVE15c1Rh?=
 =?utf-8?B?d3lkd093U1RENHBVOFMxUUVGWE9ISnNLQ3lyOFJiVFc2dVhEMkQvczlBaDBF?=
 =?utf-8?B?RExJZ0RCdHBtYkFzNGUvZGtQdjJka0dkK3NYUjlCYnhZbmhSYys2S0FZVlc2?=
 =?utf-8?B?VGhSYlMzc3NycUt1Y2FHK3M3NmRWYkZ5aVRLRTl0YTNwSUpQdUorbmd4cDRD?=
 =?utf-8?B?NUlCMDkvSm0vUUl1TVB2ZHp6Sy9MUUhsNjh4YVkzaVh4L05kTFJNMnlmbW82?=
 =?utf-8?B?ZUpTTnA0MURuQ1R1VHo2T1c1SVl1UHdpMUxsc3c0S2g2V3pvZTN4bVpOaE5Z?=
 =?utf-8?B?YllCanp6a3hWYUdKNENtaHhNOUpRVEpna3pLVmdTdHlGc3pSMG1paWZndEhj?=
 =?utf-8?B?Z3NzcllyWWhEZVhiUGsvTEpNNEtyWFgvMlR1dGFRam52SGY4NzBkMVZ2RHNI?=
 =?utf-8?B?cHdveTRvcUN4R0RFeVJ5dXp1ZDFpbjg1bnVmM1IxbHB4OERXRGwzOEdBU1oy?=
 =?utf-8?B?R1NDcndDZWxwNnlvRGtySW1UYnpsekZqaWM2bVAycjZZQ0lQTXA5bkgwMlR3?=
 =?utf-8?B?OHRpNVJqL1lBaWdHb2VsUkpSSU9FOXdtN0NTK1lPOXlxUEU0NjhUYyswT3VS?=
 =?utf-8?B?cW1rNEdDd3dTOXdieC9hSWxWOTl3NTNpUzZycFBnVUZyOHFhM1BDczc0SXpi?=
 =?utf-8?B?dVNMOVRPbitHamhsMitydTBMVjVPTGVPMmJ6Q0ZsUng4WjBBSldaald6Ujhn?=
 =?utf-8?B?S1Jqc1N4RnBsWFJRNDVFM2lXakpNanhobTRLUEtsYUxSemttRGs1am1qZkpP?=
 =?utf-8?B?TFpIVk5EVGkydDNpNFZwYmRaWEtYcEJrbXlRRkc5RFNXTWdBK3lkWFpZOHZJ?=
 =?utf-8?B?V3hIVlZ0MzlJK0R0b1N4TElBRlI1VEZqQ2M0bmI1VlQxMVFTQ0k3em44Q0JE?=
 =?utf-8?B?Y0p1Wi9IeTZhNm4yUmQvQVZkU3hHaEppNlBNNXdhMW1JRndsQ0RhN0lzWjRY?=
 =?utf-8?B?Ly85Vk9CcXdwNXZJRHczL21yZUtrc1crZ05obW9KMUlZTDBPWWVXakJnUnBI?=
 =?utf-8?B?V2JUaXhRWmFFMjdPUjNsZXdpUzlNbWxFWjVhcE9qa3Y5Rmp1YVV1aVpWOVln?=
 =?utf-8?B?d0ZueHhPeC9wMzQ2aXpXYnVrRGp6eEtSckpndWdPS3A1algyNitoRTIyTyth?=
 =?utf-8?B?T3dZamQzUGxWRjBtME1YWVFRZ1RuRG82dlhtM1VqL0NnNDJTVjR2eGo4djk3?=
 =?utf-8?B?WG5HSkRhaHBFSWhWZUc4K2hzbU9RVlB2bnFEaVFkYVBpUmJkNzhKUzRXWTBK?=
 =?utf-8?B?bE95cldEOWZBbnkzWTFCNUFZSGZRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	JufWAUGwlCjuhj7r5CvbfTRJyHGQgJaQR0qkPMcyojG+mlOv3YaeGzgmTykAihtLbOfRhCwCBGM3qclDpIW9L7kv8BZXfhdFH25tbipS0bwiRQRY97u8ufHO4q814rmD1cJ5A4xK5h47UM9rk+MTP307XIXCgEId7TUlXs5Z/XRS5mJo6eCJsEaOOw7IvqNATJHC84s2lp2XMEhDoEpghlVkze7EIGprPr1gYG4DfigripQyZqdM5HdtRcdMLi3WK546oTEgFlA5ZY0LTKAkzpbR1pDgv7YueqMlqZqrIsvFvDGV1f0dLzmLeg195P8lGKuEcO6L1RoK/+FRA9by9ism/nYnYvS1r0BKs0jTpEZgL8KEwz/VdLyH3rhGc4OX0x+YJVsSSzjonjZ1yfHnVeZo2lzq7iHvfP2dyL5Yy9TWwqZfvwl8HVHRS3ApXNRx
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 15:08:22.3895
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 78074416-145c-44a6-b7b1-08de67ed1119
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000023D0.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4455

On Mon Feb 9, 2026 at 3:36 PM CET, Jan Beulich wrote:
> On 09.02.2026 11:41, Alejandro Vallejo wrote:
>> It only has 2 callers, both of which can be conditionally removed.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> I'd be ok conditionalising the else branch on...
>>=20
>>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
>>=20
>> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-=
alejandro.garciavallejo@amd.com
>>=20
>> ... to avoid the danger of stale pointers, with required changes elsewhe=
re so
>> none.c is only compiled out in that case.
>
> I'm not sure I understand this remark. Is this about something in the oth=
er
> patch (which I haven't looked at yet), or ...
>
>> --- a/xen/arch/x86/mm/paging.c
>> +++ b/xen/arch/x86/mm/paging.c
>> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>>       */
>>      if ( hap_enabled(d) )
>>          hap_domain_init(d);
>> -    else
>> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>          rc =3D shadow_domain_init(d);
>> =20
>>      return rc;
>> @@ -645,7 +645,7 @@ void paging_vcpu_init(struct vcpu *v)
>>  {
>>      if ( hap_enabled(v->domain) )
>>          hap_vcpu_init(v);
>> -    else
>> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>          shadow_vcpu_init(v);
>>  }
>
> ... these two hunks? In this latter case, I don't think the bigger condit=
ional
> would be correct.

It'd be about these hunks and the inclusion condition for shadow/. I sugges=
t that
because...

>
>> --- a/xen/arch/x86/mm/shadow/none.c
>> +++ /dev/null
>> @@ -1,77 +0,0 @@
>> -#include <xen/mm.h>
>> -#include <asm/shadow.h>
>> -
>> -static int cf_check _toggle_log_dirty(struct domain *d)
>> -{
>> -    ASSERT(is_pv_domain(d));
>> -    return -EOPNOTSUPP;
>> -}
>> -
>> -static void cf_check _clean_dirty_bitmap(struct domain *d)
>> -{
>> -    ASSERT(is_pv_domain(d));
>> -}
>> -
>> -static void cf_check _update_paging_modes(struct vcpu *v)
>> -{
>> -    ASSERT_UNREACHABLE();
>> -}
>> -
>> -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 =3D {
>> -        .enable  =3D _toggle_log_dirty,
>> -        .disable =3D _toggle_log_dirty,
>> -        .clean   =3D _clean_dirty_bitmap,
>> -    };
>> -
>> -    paging_log_dirty_init(d, &sh_none_ops);
>
> How do you avoid d->arch.paging.log_dirty.ops remaining NULL with this
> removed?

... as you point out, the ops don't get initialised. Adding the log-dirty
condition ensures there's no uninitialised ops (even when unreachable).

>
>> -    d->arch.paging.update_paging_modes =3D _update_paging_modes;
>
> Same question for this function pointer.
>
>> -    return is_hvm_domain(d) ? -EOPNOTSUPP : 0;
>> -}

Oh. This was a hard miss, true that.

>> -
>> -static int cf_check _page_fault(
>> -    struct vcpu *v, unsigned long va, struct cpu_user_regs *regs)
>> -{
>> -    ASSERT_UNREACHABLE();
>> -    return 0;
>> -}
>> -
>> -static bool cf_check _invlpg(struct vcpu *v, unsigned long linear)
>> -{
>> -    ASSERT_UNREACHABLE();
>> -    return true;
>> -}
>> -
>> -#ifdef CONFIG_HVM
>> -static unsigned long cf_check _gva_to_gfn(
>> -    struct vcpu *v, struct p2m_domain *p2m, unsigned long va, uint32_t =
*pfec)
>> -{
>> -    ASSERT_UNREACHABLE();
>> -    return gfn_x(INVALID_GFN);
>> -}
>> -#endif
>> -
>> -static pagetable_t cf_check _update_cr3(struct vcpu *v, bool noflush)
>> -{
>> -    ASSERT_UNREACHABLE();
>> -    return pagetable_null();
>> -}
>> -
>> -static const struct paging_mode sh_paging_none =3D {
>> -    .page_fault                    =3D _page_fault,
>> -    .invlpg                        =3D _invlpg,
>> -#ifdef CONFIG_HVM
>> -    .gva_to_gfn                    =3D _gva_to_gfn,
>> -#endif
>> -    .update_cr3                    =3D _update_cr3,
>> -};
>> -
>> -void shadow_vcpu_init(struct vcpu *v)
>> -{
>> -    ASSERT(is_pv_vcpu(v));
>> -    v->arch.paging.mode =3D &sh_paging_none;
>
> And the same question yet again for this pointer.
>
> Jan

However, on the whole. Under what circumstances are these handlers invoked?

They are only compiled in for !CONFIG_SHADOW. But these are only applied wi=
th
HAP disabled. Are they for PV or something?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:09:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:09:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225582.1532115 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpStW-0004pJ-Q8; Mon, 09 Feb 2026 15:09:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225582.1532115; Mon, 09 Feb 2026 15:09:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpStW-0004pC-NG; Mon, 09 Feb 2026 15:09:46 +0000
Received: by outflank-mailman (input) for mailman id 1225582;
 Mon, 09 Feb 2026 15:09: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpStV-0004p1-EE
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:09:45 +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 5da4b886-05c9-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:09:44 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso46721035e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 07:09:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43629756bc3sm25515164f8f.39.2026.02.09.07.09.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 07:09:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5da4b886-05c9-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770649784; x=1771254584; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NFqhPU3ixu+cd/Sd0srCUcKhJb4WoHYVYY7p70lHgmI=;
        b=d2+HmAB7s7i78ijTwfLWmQR+YGJArnf4hjAD5/FC5lCeI6qPm9k52VJh3ISETLeaXi
         NwlhXMPd0hzip3ZITeVKwpq6wvaaEDsiyHZFeu6VfGei7fp0MYFyBFzO0/NPKouHfzPL
         8vzO3G7AZzPuJnAOIKHI8Id1io56XCuTqRlK5JDVl9RGAGn3p3i9PbOALhUDTwoje7Tc
         JoSHal81QhrH9IjnhcLZ4tv6lC0I9mYlJ4gn9QbBbIEXIuhrtUKzP0cbR0A37I6jXJRt
         ReRiz0DuigjL0jTTnG9vOA/Mkzy1Uu/x4HgL49Fw8atOAyQem4omCZij64yhOpMbB0BE
         pXHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770649784; x=1771254584;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NFqhPU3ixu+cd/Sd0srCUcKhJb4WoHYVYY7p70lHgmI=;
        b=T+DXawvGJ+DpYcqsTAhZLs95+mpz6dlkFOVv/wYV6YRW6Z8wCPsyX7Sx1YxAOt3Kva
         TkSfGSoUh2CHyMKZQ9l0JXMKqaQZCkIhfMYGML8x8n1PPg2MCwcqmb5BC922ALjDSXna
         +IatJox/XW1leUeBFJ2T7dITKQX33HKaEQo3TAbN5MxBb3xyLj2rk5Qj93ijCRvIY2BP
         uBVkJEk86Q2uaULsq/NMZGPGfuOZdaGNu/pIzPk0WVH7CzUaQ78iBpvEjFLA6ePstfHv
         TFn8w08G8oPEzUkKm+mYTSMgt3EPinInfypTbdopm7Ut4wR9RcuH7dWIp/NbHth008PW
         1kvQ==
X-Forwarded-Encrypted: i=1; AJvYcCWTsthpEBhfm/wKNTuJjuF06eNr4woAsgV6lAsCnHkkt3XXjn32rn0cccepPMWQuMfS85soH4ko74M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw5mc6VbYS594L8H12hjun7kFGr2Brd4RWved9AGybe8W9OAJh7
	Gea0d6mSTX4vNuocen1oOq65mRgTBujyl7Vhd3s+2aIfZeT6jdlJTd/IiAIicfNCLA==
X-Gm-Gg: AZuq6aIHFd8E+Lr6CzUfVoDcbZfPJI8PmOMMx05xiBOHsSh3YckjGpY4QKfrlq+RxBV
	CiBZUtT9Emp73SB5gmPYDywb6gg3LceXL+jVaC1SRmkNYJL1dkgKtBvDY/5LF8FOBvfR9AYf0dz
	QvLxS8ajg78AUUa5FTMl573bo8NFZSkPysBMQioTh4z1QZvaEgrZ97An0vPL+d6GvOAQKGELhY0
	e2U8L60lwgpVaL/zsIZcwp31pSoy9Yd7vIm0NErJegtSBqCqNu5ntDImmjRL2mULxGvQaOIdRZY
	gLzFG/QYKkdOQcMd4LQKn6ZLLMUzKbH8S3YoRxMtUKlEVCSH/hP2wOS4pQtgHL4aEvLridKExnl
	0recOD9VEghzZ8Jy5fQIjpVPGO6Z81WIZVCQsRbMwlw19L6rhc3s0rzWW2ouvEhiAPTAETcMM79
	vSPvUWH+dtPO401sFyOYC5EDAEUSsJZVtMXRCG2/sGWKfDlwLjKMTC7yvP20cCC4VX1WX7DR3Wb
	co=
X-Received: by 2002:a5d:494b:0:b0:437:71b2:6f23 with SMTP id ffacd0b85a97d-43771b270a0mr3178235f8f.5.1770649783763;
        Mon, 09 Feb 2026 07:09:43 -0800 (PST)
Message-ID: <7a3b72b4-23f9-410f-8d0d-08d9adaaf1a7@suse.com>
Date: Mon, 9 Feb 2026 16:09:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: roger.pau@citrix.com, andrew.cooper3@citrix.com, jason.andryuk@amd.com,
 alejandro.garciavallejo@amd.com, xen-devel@lists.xenproject.org
References: <20260206210554.126443-1-stefano.stabellini@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: <20260206210554.126443-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 22:05, Stefano Stabellini wrote:
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,14 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
>  
> +config NESTED_VIRT
> +	bool "Nested virtualization support"
> +	depends on AMD_SVM || INTEL_VMX

Should be HVM? Or else have separate NESTED_SVM and NESTED_VMX?

> +	default n

Please omit such a redundant line.

> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> @@ -26,6 +26,13 @@
>  #define nsvm_efer_svm_enabled(v) \
>      (!!((v)->arch.hvm.guest_efer & EFER_SVME))
>  
> +#define NSVM_INTR_NOTHANDLED     3
> +#define NSVM_INTR_NOTINTERCEPTED 2
> +#define NSVM_INTR_FORCEVMEXIT    1
> +#define NSVM_INTR_MASKED         0

It feels suspicious that all of these need moving ...

> +#ifdef CONFIG_NESTED_VIRT

... ahead of this.

> --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> @@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
>  /* Nested HVM on/off per domain */
>  static inline bool nestedhvm_enabled(const struct domain *d)
>  {
> -    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
> +           (d->options & XEN_DOMCTL_CDF_nested_virt);
>  }
>  
> +/* Nested paging */
> +#define NESTEDHVM_PAGEFAULT_DONE       0
> +#define NESTEDHVM_PAGEFAULT_INJECT     1
> +#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> +#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> +#define NESTEDHVM_PAGEFAULT_MMIO       4
> +#define NESTEDHVM_PAGEFAULT_RETRY      5
> +#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> +
> +#ifdef CONFIG_NESTED_VIRT

Same here.

> --- a/xen/arch/x86/mm/hap/Makefile
> +++ b/xen/arch/x86/mm/hap/Makefile
> @@ -2,5 +2,5 @@ obj-y += hap.o
>  obj-y += guest_walk_2.o
>  obj-y += guest_walk_3.o
>  obj-y += guest_walk_4.o
> -obj-y += nested_hap.o
> -obj-$(CONFIG_INTEL_VMX) += nested_ept.o
> +obj-$(CONFIG_NESTED_VIRT) += nested_hap.o
> +obj-$(filter $(CONFIG_NESTED_VIRT),$(CONFIG_INTEL_VMX)) += nested_ept.o

Maybe slightly easier to read as

nested-y := nested_hap.o
nested-$(CONFIG_INTEL_VMX) += nested_ept.o
obj-$(CONFIG_NESTED_VIRT) += $(nested-y)

> --- a/xen/arch/x86/sysctl.c
> +++ b/xen/arch/x86/sysctl.c
> @@ -103,6 +103,8 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>          pi->capabilities |= XEN_SYSCTL_PHYSCAP_hap;
>      if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>          pi->capabilities |= XEN_SYSCTL_PHYSCAP_shadow;
> +    if ( hvm_nested_virt_supported() )
> +        pi->capabilities |= XEN_SYSCTL_PHYSCAP_nestedhvm;
>  }
>  
>  long arch_do_sysctl(
> --- a/xen/include/public/sysctl.h
> +++ b/xen/include/public/sysctl.h
> @@ -100,9 +100,11 @@ struct xen_sysctl_tbuf_op {
>  /* Xen supports the Grant v1 and/or v2 ABIs. */
>  #define XEN_SYSCTL_PHYSCAP_gnttab_v1     (1u << 8)
>  #define XEN_SYSCTL_PHYSCAP_gnttab_v2     (1u << 9)
> +/* The platform supports nested HVM. */
> +#define XEN_SYSCTL_PHYSCAP_nestedhvm     (1u << 10)

Doesn't this want introducing up front, for the tool stack to make use of?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:11:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225589.1532126 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSvQ-0006Ja-59; Mon, 09 Feb 2026 15:11:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225589.1532126; Mon, 09 Feb 2026 15: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 1vpSvQ-0006JT-1b; Mon, 09 Feb 2026 15:11:44 +0000
Received: by outflank-mailman (input) for mailman id 1225589;
 Mon, 09 Feb 2026 15:11: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=r8oy=AN=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpSvO-0006J4-Rb
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:11:42 +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 a391536f-05c9-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:11:41 +0100 (CET)
Received: from DUZPR01CA0033.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:468::8) by AS8PR08MB8251.eurprd08.prod.outlook.com
 (2603:10a6:20b:53d::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.17; Mon, 9 Feb
 2026 15:11:33 +0000
Received: from DB1PEPF0003922F.eurprd03.prod.outlook.com
 (2603:10a6:10:468:cafe::e0) by DUZPR01CA0033.outlook.office365.com
 (2603:10a6:10:468::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.18 via Frontend Transport; Mon,
 9 Feb 2026 15:11:32 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF0003922F.mail.protection.outlook.com (10.167.8.102) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Mon, 9 Feb 2026 15:11:32 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS4PR08MB7504.eurprd08.prod.outlook.com (2603:10a6:20b:4e8::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Mon, 9 Feb
 2026 15:10:30 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 15:10: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: a391536f-05c9-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=yG5fMuYk5VcNKCtFaaSOZJB8ff7QOJ/gYbzPw2SwRV95d3sqsMT9X7e5MOCU5TIqx3MrnWNizwxr9j0e+/VNUhxldhlbR8iP+jwkqG5LjyvXdoP7B48U7exyCJbz3r4pcGYNLBKtpIX4w7b5Nk60XRAinPSHLvIu+UUNEro6cxjXE0F9lCX7uzo/nIewX4vCYs0wy5ivV4mA4ppCQEZHPDMXXZJgNxTx01zVaN25Z6DL/MhQo3DbmkcHmRIqmTxRBcI7e/UqVPJ+DP41tigw7Qdb3BmrpOkrujYZclfD3nQtZfKOITpNWw8qhnSeeX0ZEyzixH3tnGKCMWGk7bXSgA==
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=dSzZl7+l7g50NRkkwswd5H4TBwFmrQBYdzfeGfm9ilA=;
 b=gUvYo0FohOS6ArX0j+Mzaf0lsIBAddLgDRDI20DU61bFFjoI468wqDhCBRQOrMBvwrXjMAldlG80qlMb6a9+kNifoLo98aT/IM0tL8slHTXVYf2eeN6uDl5v1wCWBsRCn4CliZdABngL9qNsL0pUOkEdIG+AhNOy6XLmgkg8qguQR4rSFFfHGEVaaoaWmXvWFvZoYKKxsEia+HR4qNjbR5hlX6Uzxb535Z+tpHA1k6oxSdoAkMSb7amZanCOf1PAXP61IVfRk+iqJOEfRClBqPYcPvcXEVPk+JV/f8hFpVTQX7L9tl/+uJbD0Pl4oNSroPc3QzQ0ADvivr7k/fjWuA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dSzZl7+l7g50NRkkwswd5H4TBwFmrQBYdzfeGfm9ilA=;
 b=SnqwxzSl4lDJVsY1Bt/WDE42/wTtJLfIDf5O1W0nO4MvyTKq59/a/Gxoa4f3dGkg/Uzzu/UARA4SegBbXO0k6FmTNtgo0ChO+8AGtRDy5kVSH83giVhYNSHSNotNde7vgBNyMu71wQYCHvg0CHLUH+o0RBcBV4oiy+7BLRwU1Mw=
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=tlS72dkN1xQoOxmfFQLWN2ldrtcNjhf9GX1YRYe3vKjspdWefi+wnpmzTehwCIpytO7JzrqxBCpYfv2Uaozih5lkQAUmXD6LKIaa5AifqsAdRF9fJ7OXH+F01pesRAsfpN8cmnYIfb5o4NGDIQIjCZwEfRxIDB99+vst4kJs8XKEg7Fdpc9nApUnMBKbC93zeNORAiu8ODYz4t6hWv1W5SF3yFM7mv9mpgukeG7Fhai0ksE0wQok+QWq+oX9cxx5OKVThu6akcm7kkvW4OM3MFUqJmCj4oEOfMRj9OFUFuMgXJxBFIrtR7LCNWT1AtxCVgzhmb4z3CTJu/a7GhHG8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dSzZl7+l7g50NRkkwswd5H4TBwFmrQBYdzfeGfm9ilA=;
 b=cT6U407yMW48/pe5NcuOEs27yFLhx5XgEIGjktkrZa2JtU2DJPKs9OHiyrKr9Jc19Jx3PHYSiS7ju7XskitihBekFavkxgGG1zpUzKagbP6rnC+ovDRC96XEMuCR0C/ew089HXMXJ8Mt+U3KovS7L1rJlnQ/rKfO3MuGjTLRkwu9B2EmRaZAwy5r7GrDbpqn7qliyz8eIkp4dMCUuxXSDx0p7D2xKY8LTuJEesq+kDdk4+FODpfRiWtS/A2BM+kVk7E27/GTupsnGGOoWF7qwhGOEF1MBd8s4rOXM8UwK81EawNo0nyUgopbwYrGI5TgaZB1zlotz1kQ5z/eeQphNw==
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=dSzZl7+l7g50NRkkwswd5H4TBwFmrQBYdzfeGfm9ilA=;
 b=SnqwxzSl4lDJVsY1Bt/WDE42/wTtJLfIDf5O1W0nO4MvyTKq59/a/Gxoa4f3dGkg/Uzzu/UARA4SegBbXO0k6FmTNtgo0ChO+8AGtRDy5kVSH83giVhYNSHSNotNde7vgBNyMu71wQYCHvg0CHLUH+o0RBcBV4oiy+7BLRwU1Mw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 03/12] xen/arm: ffa: Harden shm page parsing
Thread-Topic: [PATCH 03/12] xen/arm: ffa: Harden shm page parsing
Thread-Index: AQHclTP8S4iGL6T7pUmD4E2SewFDhLV6I0SAgABSaACAAAxSAA==
Date: Mon, 9 Feb 2026 15:10:29 +0000
Message-ID: <0680A28E-E2A6-4A75-9C82-1348ACD17E2F@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <97a064c81ee5ea26774c189538f9f1e37dd3eebc.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44Ey=Ph_m8r933K5enqPJgFuyVgY+2Qhtj3pi+V_Fw4=6A@mail.gmail.com>
 <19C7C710-4447-42AC-AFF3-F3122606BC0C@arm.com>
In-Reply-To: <19C7C710-4447-42AC-AFF3-F3122606BC0C@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.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS4PR08MB7504:EE_|DB1PEPF0003922F:EE_|AS8PR08MB8251:EE_
X-MS-Office365-Filtering-Correlation-Id: c477c172-08db-4015-2ace-08de67ed8261
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?OWhxazBEdE12U2VndDdlcXpETDdlelpBMFNzMk1SeDFJNUt6NXRoMXVSN3Fn?=
 =?utf-8?B?dlpBelFkSVBYcyswR3puQkxpMzA4QkE4M2RzMi85eWw0azdWQVhFeEFMK3Y3?=
 =?utf-8?B?bUZWTzkyQ1EwTXNsUk9TZDBEeGRpRFVSTTRjMVhHUm9rcFpmMngyZEF4YUw2?=
 =?utf-8?B?bnM0TWZWZmh1VGxjQnN2N013YzRGMjZORnJaSFo1T0RxVG9hK0IwZVhBQlcz?=
 =?utf-8?B?bFl1bjFiN3NYZWlsOEdDcjUzRWtkZkxxTWcrand6czJsNTVOSktCbDU1Z0lE?=
 =?utf-8?B?ZUI5SHJUY0Q4bjNFVzdwYm9uejJFcGRKaXd0bXE4dmc3VWFTRzVHT3RTcFJO?=
 =?utf-8?B?TWVDRlcxWGRCUEZrRVVGbUFpOG4xTm9FU3RuSi9Hc21tL0VTYmU2SnhIZ05t?=
 =?utf-8?B?dDJML3pQSTRTWHFBRk9ocmF2dFQyblFsSWg4cTdDL24ya21ybkd1WVV6dDVl?=
 =?utf-8?B?VjVmOXNiQ3pnYTRzNytzeUdzVCtZaFFkODVjSG5xZ1Z4KzFmWUI2Y2drTk5R?=
 =?utf-8?B?R3B1elhNdlpZUng2NzlyemZPVURpSmFIQ0RiR2p6aFlpMXc3NWdmUldyWnNL?=
 =?utf-8?B?VmJJNjlZNC92b05VRFdsUExzZ3RtRmorbU9DTGdpaXdsRm5lZnFLWUZ0cjEx?=
 =?utf-8?B?djViUGNocWc2NVVQSGZTbXJpc1FFYWNMbVdlRjA0cDRrTUFnSDh4S0cvVTg2?=
 =?utf-8?B?VWxscndRejRIdGhRS0JJcE1vY0FyaUczVy85eXVxZmgwb3RuQ0ZsaU4xMGVJ?=
 =?utf-8?B?U3RLRHVaN1FNa2hVMXBZNzNuK1ZXWG00bDhwWmc4MUdiNFo4UEo0emxlb05C?=
 =?utf-8?B?cGhMY1VxeitlZFVQUHJ6M09WMmRZMGk0VDUrbFZVSHpudmlTakZDVWVwQklW?=
 =?utf-8?B?NUFScWJobHN2UWNDL21xTVZVUUdkejBEci9ETU9EK002MVhyaU5qMFVwd0tB?=
 =?utf-8?B?V0Z2ZEFPWTNzRlY3Q3ZOWlZxVDN2c0VuamdVUDMyMk5YenpoSzhIQXF2Vmdt?=
 =?utf-8?B?eUtOT1hSQTBlZnVuN0Q0SDRwVWhVcitKOCtjTTRtbUtLYzYyWmZxcE5xakda?=
 =?utf-8?B?aC9MdHUxNUxwSnQ5TkEyQTQ0d1BGOUh6eXgyQW56V0tKLzUxQW1iUVRyandz?=
 =?utf-8?B?NWQ3Y0J5eGxJNk82Q1dHM1BiR2FBZFhFS0lldS9qbm8rN3VBaWhHUnJGK3JP?=
 =?utf-8?B?WDlLby9wVndIdzJEOThKbmVCTmVzZTFlaituYkROOUNRZlVYdHVkdWllNTJz?=
 =?utf-8?B?a1MwM3BITlkwMEJ2ZW9DRUJVMTY5MkZnMSs4RXIwbWJCQXNVbDBJS0creXNz?=
 =?utf-8?B?bW1NS0t2UDl4ZlIwUnh3QUUxb1paRC9OTkI1U3BJVkk5cEFkRi9uWlpieGlO?=
 =?utf-8?B?bHhBc0RzTi9QOVNYdEhzMEQ4b3FOUDRkMHpoWG52TkREZmxsYjlUU0ptMG1S?=
 =?utf-8?B?Q3VreDFMeVRSOG1nRXRZYWptbEFXZVg5Nk53N1lOcDhqN3hkakZwaVFEY0Ur?=
 =?utf-8?B?Ulp0RVNvdTZaaFM3SXRjb3Q2OXVibWVyeEN5WUVySGhXdmFMU2ptd0dMNjFU?=
 =?utf-8?B?Yyt3cVF4WDlMZEJkMU43dlNVcmZlTGwvSFcxejk2WVU5aThZUVRnQ2hEOXpn?=
 =?utf-8?B?a1MyYUw3YXVGM3NWVWFRZXE5UHRtYnhQNlZTcUpSK0p6bkZkS3o4V2Q0dm45?=
 =?utf-8?B?YjlvY2FBZmxvV1kyRWZRdGVFUndDL25KS1hPVE5mbERCYXFtaGxURExPSS9Q?=
 =?utf-8?B?ZGtud1pXbCt2cm5HTW10cHNiRlUwSTZ4akdUalR6dmNWOWFZRHZvcnNkZjlW?=
 =?utf-8?B?Y1ZrbkR1Z1JDRUV1SzMwalh4RTRESkJVcy90bTlCM0JYaXJWZmFFdlNTNWFI?=
 =?utf-8?B?SFYyanBQVWtQMUVBR3NtNC92bytJT1V6dEhjYWVQSzFZZ3FIWWNYMXVkd3VI?=
 =?utf-8?B?MS92cmlXS0srZFFsNGhDNFFBZ0JQOWczRnp5OGdaVkJQOFpPbnJIWlc2N2pY?=
 =?utf-8?B?LzNOaVFiU1lTeXhlc3ZuaW4yeEl5RENoK2JQdnFwVWMweUt4K3dPSTgvaWp4?=
 =?utf-8?B?aFo2UWo5K1NSOGtya3BIWXhKanhYQkFldldBbjRvdU5wOE4zRjJsTXhxK1dJ?=
 =?utf-8?B?RG5Nd1Jqa21NL0VFRk80MHQ5ZGV6YjJCejRsbThBQ25OVW52NkxoN0RSZVVU?=
 =?utf-8?Q?X/90V0m1HiYCvnCD/vvOglQ=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <7AA0EC37025B1E41A8688E09128289A0@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7504
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF0003922F.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	15bab6b8-af7d-4c0f-852c-08de67ed5d23
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|36860700013|14060799003|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MVc5T29LUXZtZjlLMEhJcnFNODdxSEJWdk9UY215Z1BVOWhMM2FvdENGb2pu?=
 =?utf-8?B?Uzd1M1o1UGZ1cU8zYTUwYTU2TEdOS1pZN0lWV3U0Tko0NkVRZGhHU2UraDl2?=
 =?utf-8?B?am1pUjZ5UzBuSmhXa1gwbUlSL0g3T2liU1RwZ3RmNXRZTlVoVjV4Q3hVOW5B?=
 =?utf-8?B?eHhld2wzdWQveUdoUDBzLytva1FxL2VsV1pTRnVTSG0rL29MSzk1SUhLNnE2?=
 =?utf-8?B?WXlqMEFCcjRrbUlSN3B1TWM3R3AzTkVNdHFoVS9ydU5IaWNRYnloSGs4UHlo?=
 =?utf-8?B?VmtOMlNnWnYxak0zV3dNd1ZnNDUvOSswOGdncGZSSG5pVWFnWnovMnZHZlJR?=
 =?utf-8?B?eGtWOTBLZUJzQ1MrNVllL0lOYkhReStWYWZtTEpaMXFLQnkwcXZxSGdFUzQv?=
 =?utf-8?B?NVBadFZpZ3JmYzRPWHJNaUhzcW95N1oyR2FSNWlhaGx2dkk1cVNKcjJEQWhy?=
 =?utf-8?B?dXB0bHhNNzc1c05jUDR3NDZrUGxMYS9ENXdTUHkzSFF2eEEwTktuR0IyYUMr?=
 =?utf-8?B?c2ZBQkJtWkZPdzFzZUtKMmpRT1dnRjQ3ckxrQkVDb0tnU0U1aWdNcHBzT3ZC?=
 =?utf-8?B?VE9ERUxHRDhpeDVVQWNWWVdRdjZORnBvbmJ6VnhTT0h3R1Y2QzU4amd2anZ5?=
 =?utf-8?B?YURqNEZHNHBSd0VoV25zNUV6dEZQclZ3WVU3cmg5d21BK1BxNmxaYXVoZWV5?=
 =?utf-8?B?Q0ZxTENCKytuQW9kR0hPWWQ4bkpKR1E4amRIV1pjS0c1MUlvQjk1ZXRMVXJB?=
 =?utf-8?B?S1JIUUtpRUNiL3JWZjU5ZDRaM28xaDhkeTFCYzRNSkk3R2czVUlIZTNoaCt3?=
 =?utf-8?B?MkRKaDVzY3JEajZyaWNOSGdYQlhpOEtwN1l4c3F2aTJ4VGFXWWtYVEZIeEJQ?=
 =?utf-8?B?RzNVMHJJQ2N2M2NBNU9tb3dkYWRGK1lnd0o5cmtyRHJPaXAzTmpyTG1pZnFz?=
 =?utf-8?B?Y0dBNHoxOGdtV0kxYW9oU1hrZ1VLKzRPV3B1czRoVFUxS1Izc2p1Ky9wK3dC?=
 =?utf-8?B?RGpTM3hVVEdmaDRkOGwwaE9JREFjb2NmN3FNcXJaY2JaVVRSdGxhbVFONDRk?=
 =?utf-8?B?R3djZjZLdzV2dVc0QmlDN0dJaFNZZmZraGlOVW9IbEp0cEVXTXNJU2ZyM3ZR?=
 =?utf-8?B?bzhwTnZXWS9ZL3hyaDVacnhzUEt2b0RmRnpIcjN3dis4dG9nMURrdlpwRDRO?=
 =?utf-8?B?clFCVmpyQk9ZU0JpeU0yOUZ1b2pQd3o4dzIxMW9nNSs2QkJXZlErZFRHbWQz?=
 =?utf-8?B?Q010UWM4RUdFOTJ5Wk5zS2dOeklvNGQzalZTNmlLOWpiTUdHRE13U0E0aStw?=
 =?utf-8?B?QnJsSTZZV2toVnN4K0hoQTBJdmtSbW54WGVxRGNWQVBaeURGOS9tUXZWTWp5?=
 =?utf-8?B?VXpINnpWViswdjJCSWYyeFJlM2UwK3JUSFpyMGl3TC9XQno0Y2wrbEF4YlZQ?=
 =?utf-8?B?a045ejdWVG5wOUVsemVkL01lL1ozNmlKRUllbXNRaUNra2d4OUo2OFNlb1ZU?=
 =?utf-8?B?dmZndFdjajl2UzdLU3NjZG1VaWhFNFVJT0hmWFJuUnVIOVgxK2gxTElxSnp4?=
 =?utf-8?B?S3hVNDBhcno0dkh2Mm1tOCtuNzkzVWp4M2g5N05scSt5VFc4YnViL0t1QWha?=
 =?utf-8?B?RTZRWUFuT2pwblZoRUxIK2JRZm9nZ1E3ZU5NS3BZZkRsOHZ2NHFYNi84MlU2?=
 =?utf-8?B?YnJYR2VEMEVWNHdZMVdWVUhsZEZzSXFjRmFNUEo5cVR0VHJZQXhzdlZNTTBS?=
 =?utf-8?B?N1JJZU1WU2UyZTZNOXZ3VTczYTlVaTJyOEovTVlNc1VjSWlsb0FHZ09teEZK?=
 =?utf-8?B?bTdxSHg2N0F1ZFduYitPM3A4SHBpc1BOSklFMG5WWHBWVUhRY21qaVFKWndE?=
 =?utf-8?B?UWlocFlHMnJNTHoxWEoxY2dYWmx3YVBIWnFKSnRoRi8yOHNVazFBMXlyQ0tZ?=
 =?utf-8?B?Um5ZNWpGbnFQQlpLeCtoWlU5T1h4SVVmYVpHaXd4ZHRNZXNmQWZtQm9lYXJw?=
 =?utf-8?B?V2lLbDhMUVZqQkFZc2ZLL2E3N0FvUVIzeWlLUWpnVjQ0TkQ1ZGN0SHBrTE5T?=
 =?utf-8?B?ZEt4QzMwemR4VFJhNUFrZlo3Ukl0WUlmamJ5R29CSTdkczlhM2JzM08wSFJQ?=
 =?utf-8?B?bVRuUTBWY2k3Q0RyU0d4Z1dRZzlUemNURFYwWmhiZjY1aW55K095cGRXZHB2?=
 =?utf-8?B?aEVsNTQvdUJ4THRwVzNCcG9ZVW4wcUMwMHdzVVY1K1c0YlpjUXpOZ01XWG1l?=
 =?utf-8?B?dmU3WDg2ejFZMndHMzJ0OFJZU1ZnPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(35042699022)(36860700013)(14060799003)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	sLgaP9Lr4sGTs31WL8n+sfvD0BHcspqLaj0p7jvnzhWB/3F+YmR/4yTv0UMeaRN/THJhwRTgusjE/+XZXzkj1NP/y2dwBpF+LPK99GkSEvbexRjjRJi7hlgi4XzEvyxfhBuEbjSexSnHpZNcjqvMRODsAoSNjxKnSl3BuPioYhQGwaIQzUhC/j3NSMnZpVz6r6y4WJ9IkFD5PreOM0VtInPwwNBUoLDNzTNHYeA6sFepCa2ghR+ZXTTnhowm8Xwd3nArmPv7UjNePq4UKK2lVZkrpyM3cp/Lavz6PtkX/esjNAjPeyE6bA8MFPUjfELXDhKCOutODO4rmtRky31Uwc1Bl9MYWZ8IBaFXm/lHxtzypLc+9tHvRDlljWx/Jq6iq4h4AlWqgBoxjkuWDp4KR9mFueMruQYkTdLvv9fZyto+uubPa2w2aTVRx/NolsfE
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 15:11:32.4379
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c477c172-08db-4015-2ace-08de67ed8261
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:
	DB1PEPF0003922F.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8251

SGkgSmVucywNCg0KPiBPbiA5IEZlYiAyMDI2LCBhdCAxNToyNiwgQmVydHJhbmQgTWFycXVpcyA8
QmVydHJhbmQuTWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4gDQo+IEhpIEplbnMsDQo+IA0KPj4g
T24gOSBGZWIgMjAyNiwgYXQgMTA6MzEsIEplbnMgV2lrbGFuZGVyIDxqZW5zLndpa2xhbmRlckBs
aW5hcm8ub3JnPiB3cm90ZToNCj4+IA0KPj4gSGkgQmVydHJhbmQsDQo+PiANCj4+IE9uIFR1ZSwg
RmViIDMsIDIwMjYgYXQgNjozOOKAr1BNIEJlcnRyYW5kIE1hcnF1aXMNCj4+IDxiZXJ0cmFuZC5t
YXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4+IA0KPj4+IGdldF9zaG1fcGFnZXMoKSB1c2VzIHVu
Y2hlY2tlZCBhZGRyZXNzIGFyaXRobWV0aWMgYW5kIGRvZXMgbm90IGVuZm9yY2UNCj4+PiBhbGln
bm1lbnQsIHNvIG1hbGZvcm1lZCBkZXNjcmlwdG9ycyBjYW4gY2F1c2Ugb3ZlcmZsb3cgb3Igc2xp
cCB0aHJvdWdoDQo+Pj4gdmFsaWRhdGlvbi4gVGhlIHJlY2xhaW0gcGF0aCBhbHNvIHJlcGVhdHMg
aGFuZGxlLXRvLXNobS1tZW0gY29udmVyc2lvbg0KPj4+IGluIG11bHRpcGxlIHBsYWNlcywgZHVw
bGljYXRpbmcgZXJyb3IgaGFuZGxpbmcuDQo+Pj4gDQo+Pj4gSGFyZGVuIHBhZ2UgcGFyc2luZyBh
bmQgcmVjbGFpbSBoYW5kbGluZzoNCj4+PiAtIGFkZCBmZmFfc2FmZV9hZGRyX2FkZCgpIGFuZCB1
c2UgaXQgdG8gZGV0ZWN0IGFkZHJlc3Mgb3ZlcmZsb3dzDQo+Pj4gLSBlbmZvcmNlIGFsaWdubWVu
dCBjaGVja3MgaW4gZ2V0X3NobV9wYWdlcygpIGFuZCByZXR1cm4gRkYtQSBlcnJvcnMNCj4+PiAt
IGludHJvZHVjZSBmZmFfc2VjdXJlX3JlY2xhaW0oKSBhbmQgdXNlIGl0IGZvciBNRU1fUkVDTEFJ
TSBhbmQgdGVhcmRvd24NCj4+PiAtIHNpbXBsaWZ5IGZmYV9tZW1fc2hhcmUoKSBhcmd1bWVudCBo
YW5kbGluZyBhbmQgYWxsb3cgbWF4IHBhZ2UgY291bnQNCj4+PiANCj4+PiBGdW5jdGlvbmFsIGlt
cGFjdDogaW52YWxpZCBvciBtaXNhbGlnbmVkIG1lbW9yeSByYW5nZXMgbm93IGZhaWwgZWFybGll
cg0KPj4+IHdpdGggcHJvcGVyIGVycm9yIGNvZGVzOyBiZWhhdmlvciBmb3IgdmFsaWQgZGVzY3Jp
cHRvcnMgaXMgdW5jaGFuZ2VkLg0KPj4+IA0KPj4+IFNpZ25lZC1vZmYtYnk6IEJlcnRyYW5kIE1h
cnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+PiAtLS0NCj4+PiB4ZW4vYXJjaC9h
cm0vdGVlL2ZmYV9wcml2YXRlLmggfCAxMSArKysrKysrDQo+Pj4geGVuL2FyY2gvYXJtL3RlZS9m
ZmFfc2htLmMgICAgIHwgNTcgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQ0KPj4+
IDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pDQo+Pj4g
DQo+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaCBiL3hlbi9h
cmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4+IGluZGV4IGI2MjVmMWM3MjkxNC4uNTg1NjJk
OGU3MzNjIDEwMDY0NA0KPj4+IC0tLSBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0K
Pj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUuaA0KPj4+IEBAIC02MzIsNCAr
NjMyLDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBmZmFfdXVpZF9zZXQoc3RydWN0IGZmYV91dWlk
ICppZCwgdWludDMyX3QgdmFsMCwNCj4+PiAgICBpZC0+dmFsWzFdID0gKCh1aW50NjRfdCl2YWwz
IDw8IDMyVSkgfCB2YWwyOw0KPj4+IH0NCj4+PiANCj4+PiArLyoNCj4+PiArICogQ29tbW9uIG92
ZXJmbG93LXNhZmUgaGVscGVyIHRvIHZlcmlmeSB0aGF0IGFkZGluZyBhIG51bWJlciBvZiBwYWdl
cyB0byBhbg0KPj4+ICsgKiBhZGRyZXNzIHdpbGwgbm90IHdyYXAgYXJvdW5kLg0KPj4+ICsgKi8N
Cj4+PiArc3RhdGljIGlubGluZSBib29sIGZmYV9zYWZlX2FkZHJfYWRkKHVpbnQ2NF90IGFkZHIs
IHVpbnQ2NF90IHBhZ2VzKQ0KPj4+ICt7DQo+Pj4gKyAgICB1aW50NjRfdCBvZmYgPSBwYWdlcyAq
IEZGQV9QQUdFX1NJWkU7DQo+Pj4gKw0KPj4+ICsgICAgcmV0dXJuIChvZmYgLyBGRkFfUEFHRV9T
SVpFKSA9PSBwYWdlcyAmJiBhZGRyIDw9IFVJTlQ2NF9NQVggLSBvZmY7DQo+Pj4gK30NCj4+PiAr
DQo+Pj4gI2VuZGlmIC8qX19GRkFfUFJJVkFURV9IX18qLw0KPj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC9hcm0vdGVlL2ZmYV9zaG0uYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5jDQo+Pj4g
aW5kZXggOTA4MDBlNDRhODZhLi40YzBiNDVjZGU2ZWUgMTAwNjQ0DQo+Pj4gLS0tIGEveGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+PiArKysgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0u
Yw0KPj4+IEBAIC05NiwxNiArOTYsMTQgQEAgc3RydWN0IGZmYV9zaG1fbWVtIHsNCj4+PiAgICBz
dHJ1Y3QgcGFnZV9pbmZvICpwYWdlc1tdOw0KPj4+IH07DQo+Pj4gDQo+Pj4gLXN0YXRpYyBpbnQz
Ml90IGZmYV9tZW1fc2hhcmUodWludDMyX3QgdG90X2xlbiwgdWludDMyX3QgZnJhZ19sZW4sDQo+
Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCBhZGRyLCB1aW50MzJf
dCBwZ19jb3VudCwNCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAq
aGFuZGxlKQ0KPj4+ICtzdGF0aWMgaW50MzJfdCBmZmFfbWVtX3NoYXJlKHVpbnQzMl90IHRvdF9s
ZW4sIHVpbnQ2NF90ICpoYW5kbGUpDQo+Pj4gew0KPj4+ICAgIHN0cnVjdCBhcm1fc21jY2NfMV8y
X3JlZ3MgYXJnID0gew0KPj4+ICAgICAgICAuYTAgPSBGRkFfTUVNX1NIQVJFXzY0LA0KPj4+ICAg
ICAgICAuYTEgPSB0b3RfbGVuLA0KPj4+IC0gICAgICAgIC5hMiA9IGZyYWdfbGVuLA0KPj4+IC0g
ICAgICAgIC5hMyA9IGFkZHIsDQo+Pj4gLSAgICAgICAgLmE0ID0gcGdfY291bnQsDQo+Pj4gKyAg
ICAgICAgLmEyID0gdG90X2xlbiwNCj4+PiArICAgICAgICAuYTMgPSAwLA0KPj4+ICsgICAgICAg
IC5hNCA9IDAsDQo+Pj4gICAgfTsNCj4+PiAgICBzdHJ1Y3QgYXJtX3NtY2NjXzFfMl9yZWdzIHJl
c3A7DQo+Pj4gDQo+Pj4gQEAgLTEzMSwxMiArMTI5LDE2IEBAIHN0YXRpYyBpbnQzMl90IGZmYV9t
ZW1fc2hhcmUodWludDMyX3QgdG90X2xlbiwgdWludDMyX3QgZnJhZ19sZW4sDQo+Pj4gICAgfQ0K
Pj4+IH0NCj4+PiANCj4+PiAtc3RhdGljIGludDMyX3QgZmZhX21lbV9yZWNsYWltKHVpbnQzMl90
IGhhbmRsZV9sbywgdWludDMyX3QgaGFuZGxlX2hpLA0KPj4+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MpDQo+Pj4gK3N0YXRpYyBpbnQzMl90IGZmYV9zZWN1
cmVfcmVjbGFpbShzdHJ1Y3QgZmZhX3NobV9tZW0gKnNobSwgdWludDMyX3QgZmxhZ3MpDQo+PiAN
Cj4+IEkgYWdyZWUgd2l0aCBtb3ZpbmcgdGhlIHVpbnQ2NF90b19yZWdwYWlyKCkgY2FsbCBpbnRv
IHRoaXMgZnVuY3Rpb24sDQo+PiBidXQgSSdtIHB1enpsZWQgYnkgdGhlIG5ldyBuYW1lLiBXaGF0
J3Mgc2VjdXJlPw0KPiANCj4gVGhpcyBpcyB0byBkaXN0aW5ndWlzaCB3aXRoIHJlY2xhaW0gZm9y
IFZNIHRvIFZNIHNoYXJpbmcgaW4gdGhlIGZ1dHVyZSBhcyBoZXJlDQo+IHJlY2xhaW0gaXMgYXNr
ZWQgdG8gdGhlIHNlY3VyZSB3b3JsZC4NCj4gDQo+IEJ1dCBpbiBmYWN0IHRvIGJlIGNvaGVyZW50
IEkgc2hvdWxkIGFsc28gaGF2ZSByZW5hbWVkIGZmYV9tZW1fc2hhcmUgdG8gZmZhX3NlY3VyZV9z
aGFyZS4NCj4gDQo+IFdvdWxkIHlvdSBiZSBvayB3aXRoIHRoYXQgPw0KDQpMb29raW5nIGF0IHRo
aXMgYSBiaXQgbW9yZSwgd2UgYXJlIHVzdWFsbHkgdXNpbmcgc3BtYyBhbmQgbm90IHNlY3VyZS4N
Cg0KV291bGQgeW91IGJlIG9rIGlmIEkgcmVuYW1lIGJvdGggdGhvc2UgdG86DQpmZmFfc3BtY19z
aGFyZQ0KZmZhX3NwbWNfcmVjbGFpbQ0KDQpDaGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+PiANCj4+
PiB7DQo+Pj4gKyAgICByZWdpc3Rlcl90IGhhbmRsZV9oaTsNCj4+PiArICAgIHJlZ2lzdGVyX3Qg
aGFuZGxlX2xvOw0KPj4+ICsNCj4+PiAgICBpZiAoICFmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9N
RU1fUkVDTEFJTSkgKQ0KPj4+ICAgICAgICByZXR1cm4gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0K
Pj4+IA0KPj4+ICsgICAgdWludDY0X3RvX3JlZ3BhaXIoJmhhbmRsZV9oaSwgJmhhbmRsZV9sbywg
c2htLT5oYW5kbGUpOw0KPj4+ICsNCj4+PiAgICByZXR1cm4gZmZhX3NpbXBsZV9jYWxsKEZGQV9N
RU1fUkVDTEFJTSwgaGFuZGxlX2xvLCBoYW5kbGVfaGksIGZsYWdzLCAwKTsNCj4+PiB9DQo+Pj4g
DQo+Pj4gQEAgLTE0NSw3ICsxNDcsNyBAQCBzdGF0aWMgaW50MzJfdCBmZmFfbWVtX3JlY2xhaW0o
dWludDMyX3QgaGFuZGxlX2xvLCB1aW50MzJfdCBoYW5kbGVfaGksDQo+Pj4gKiB0aGlzIGZ1bmN0
aW9uIGZhaWxzIHRoZW4gdGhlIGNhbGxlciBpcyBzdGlsbCBleHBlY3RlZCB0byBjYWxsDQo+Pj4g
KiBwdXRfc2htX3BhZ2VzKCkgYXMgYSBjbGVhbnVwLg0KPj4+ICovDQo+Pj4gLXN0YXRpYyBpbnQg
Z2V0X3NobV9wYWdlcyhzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZmZhX3NobV9tZW0gKnNobSwN
Cj4+PiArc3RhdGljIGludDMyX3QgZ2V0X3NobV9wYWdlcyhzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1
Y3QgZmZhX3NobV9tZW0gKnNobSwNCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz
dHJ1Y3QgZmZhX2FkZHJlc3NfcmFuZ2UgKnJhbmdlLA0KPj4+ICAgICAgICAgICAgICAgICAgICAg
ICAgIHVpbnQzMl90IHJhbmdlX2NvdW50KQ0KPj4+IHsNCj4+PiBAQCAtMTU2LDE3ICsxNTgsMjYg
QEAgc3RhdGljIGludCBnZXRfc2htX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBmZmFf
c2htX21lbSAqc2htLA0KPj4+ICAgIHAybV90eXBlX3QgdDsNCj4+PiAgICB1aW50NjRfdCBhZGRy
Ow0KPj4+ICAgIHVpbnQ2NF90IHBhZ2VfY291bnQ7DQo+Pj4gKyAgICB1aW50NjRfdCBnYWRkcjsN
Cj4+PiANCj4+PiAgICBmb3IgKCBuID0gMDsgbiA8IHJhbmdlX2NvdW50OyBuKysgKQ0KPj4+ICAg
IHsNCj4+PiAgICAgICAgcGFnZV9jb3VudCA9IEFDQ0VTU19PTkNFKHJhbmdlW25dLnBhZ2VfY291
bnQpOw0KPj4+ICAgICAgICBhZGRyID0gQUNDRVNTX09OQ0UocmFuZ2Vbbl0uYWRkcmVzcyk7DQo+
Pj4gKw0KPj4+ICsgICAgICAgIGlmICggIUlTX0FMSUdORUQoYWRkciwgRkZBX1BBR0VfU0laRSkg
KQ0KPj4+ICsgICAgICAgICAgICByZXR1cm4gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+
Pj4gKw0KPj4+ICAgICAgICBmb3IgKCBtID0gMDsgbSA8IHBhZ2VfY291bnQ7IG0rKyApDQo+Pj4g
ICAgICAgIHsNCj4+PiAgICAgICAgICAgIGlmICggcGdfaWR4ID49IHNobS0+cGFnZV9jb3VudCAp
DQo+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0K
Pj4+IA0KPj4+IC0gICAgICAgICAgICBnZm4gPSBnYWRkcl90b19nZm4oYWRkciArIG0gKiBGRkFf
UEFHRV9TSVpFKTsNCj4+PiArICAgICAgICAgICAgaWYgKCAhZmZhX3NhZmVfYWRkcl9hZGQoYWRk
ciwgbSkgKQ0KPj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5WQUxJRF9QQVJB
TUVURVJTOw0KPj4+ICsNCj4+PiArICAgICAgICAgICAgZ2FkZHIgPSBhZGRyICsgbSAqIEZGQV9Q
QUdFX1NJWkU7DQo+Pj4gKyAgICAgICAgICAgIGdmbiA9IGdhZGRyX3RvX2dmbihnYWRkcik7DQo+
Pj4gICAgICAgICAgICBzaG0tPnBhZ2VzW3BnX2lkeF0gPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBn
Zm5feChnZm4pLCAmdCwNCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUDJNX0FMTE9DKTsNCj4+PiAgICAgICAgICAgIGlmICggIXNobS0+cGFnZXNb
cGdfaWR4XSApDQo+Pj4gQEAgLTE4MCw3ICsxOTEsNyBAQCBzdGF0aWMgaW50IGdldF9zaG1fcGFn
ZXMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGZmYV9zaG1fbWVtICpzaG0sDQo+Pj4gDQo+Pj4g
ICAgLyogVGhlIHJhbmdlcyBtdXN0IGFkZCB1cCAqLw0KPj4+ICAgIGlmICggcGdfaWR4IDwgc2ht
LT5wYWdlX2NvdW50ICkNCj4+PiAtICAgICAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5WQUxJRF9Q
QVJBTUVURVJTOw0KPj4+ICsgICAgICAgIHJldHVybiBGRkFfUkVUX0lOVkFMSURfUEFSQU1FVEVS
UzsNCj4+PiANCj4+PiAgICByZXR1cm4gRkZBX1JFVF9PSzsNCj4+PiB9DQo+Pj4gQEAgLTE5OCwx
NSArMjA5LDExIEBAIHN0YXRpYyB2b2lkIHB1dF9zaG1fcGFnZXMoc3RydWN0IGZmYV9zaG1fbWVt
ICpzaG0pDQo+Pj4gDQo+Pj4gc3RhdGljIGJvb2wgaW5jX2N0eF9zaG1fY291bnQoc3RydWN0IGRv
bWFpbiAqZCwgc3RydWN0IGZmYV9jdHggKmN0eCkNCj4+PiB7DQo+Pj4gLSAgICBib29sIHJldCA9
IHRydWU7DQo+Pj4gKyAgICBib29sIHJldCA9IGZhbHNlOw0KPj4+IA0KPj4+ICAgIHNwaW5fbG9j
aygmY3R4LT5sb2NrKTsNCj4+PiANCj4+PiAtICAgIGlmICggY3R4LT5zaG1fY291bnQgPj0gRkZB
X01BWF9TSE1fQ09VTlQgKQ0KPj4+IC0gICAgew0KPj4+IC0gICAgICAgIHJldCA9IGZhbHNlOw0K
Pj4+IC0gICAgfQ0KPj4+IC0gICAgZWxzZQ0KPj4+ICsgICAgaWYgKCBjdHgtPnNobV9jb3VudCA8
IEZGQV9NQVhfU0hNX0NPVU5UICkNCj4+PiAgICB7DQo+Pj4gICAgICAgIC8qDQo+Pj4gICAgICAg
ICAqIElmIHRoaXMgaXMgdGhlIGZpcnN0IHNobSBhZGRlZCwgaW5jcmVhc2UgdGhlIGRvbWFpbiBy
ZWZlcmVuY2UNCj4+PiBAQCAtMjE3LDYgKzIyNCw3IEBAIHN0YXRpYyBib29sIGluY19jdHhfc2ht
X2NvdW50KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBmZmFfY3R4ICpjdHgpDQo+Pj4gICAgICAg
ICAgICBnZXRfa25vd25hbGl2ZV9kb21haW4oZCk7DQo+Pj4gDQo+Pj4gICAgICAgIGN0eC0+c2ht
X2NvdW50Kys7DQo+Pj4gKyAgICAgICAgcmV0ID0gdHJ1ZTsNCj4+PiAgICB9DQo+Pj4gDQo+Pj4g
ICAgc3Bpbl91bmxvY2soJmN0eC0+bG9jayk7DQo+Pj4gQEAgLTI1MSw3ICsyNTksNyBAQCBzdGF0
aWMgc3RydWN0IGZmYV9zaG1fbWVtICphbGxvY19mZmFfc2htX21lbShzdHJ1Y3QgZG9tYWluICpk
LA0KPj4+ICAgIHN0cnVjdCBmZmFfY3R4ICpjdHggPSBkLT5hcmNoLnRlZTsNCj4+PiAgICBzdHJ1
Y3QgZmZhX3NobV9tZW0gKnNobTsNCj4+PiANCj4+PiAtICAgIGlmICggcGFnZV9jb3VudCA+PSBG
RkFfTUFYX1NITV9QQUdFX0NPVU5UICkNCj4+PiArICAgIGlmICggcGFnZV9jb3VudCA+IEZGQV9N
QVhfU0hNX1BBR0VfQ09VTlQgKQ0KPj4+ICAgICAgICByZXR1cm4gTlVMTDsNCj4+PiAgICBpZiAo
ICFpbmNfY3R4X3NobV9jb3VudChkLCBjdHgpICkNCj4+PiAgICAgICAgcmV0dXJuIE5VTEw7DQo+
Pj4gQEAgLTM2Nyw3ICszNzUsNyBAQCBzdGF0aWMgaW50IHNoYXJlX3NobShzdHJ1Y3QgZmZhX3No
bV9tZW0gKnNobSkNCj4+PiAgICAgICAgaW5pdF9yYW5nZShhZGRyX3JhbmdlLCBwYSk7DQo+Pj4g
ICAgfQ0KPj4+IA0KPj4+IC0gICAgcmV0ID0gZmZhX21lbV9zaGFyZSh0b3RfbGVuLCBmcmFnX2xl
biwgMCwgMCwgJnNobS0+aGFuZGxlKTsNCj4+IA0KPj4gUGxlYXNlIHJlbW92ZSBmcmFnX2xlbiBm
cm9tIHNoYXJlX3NobSgpIHNpbmNlIGl0J3Mgbm90IG5lZWRlZCBhbnkgbG9uZ2VyLg0KPiANCj4g
QWNrLCBJIHdpbGwgcmVtb3ZlIGl0IGluIHYyLg0KPiANCj4gQ2hlZXJzDQo+IEJlcnRyYW5kDQo+
IA0KPj4gDQo+PiBDaGVlcnMsDQo+PiBKZW5zDQo+PiANCj4+PiArICAgIHJldCA9IGZmYV9tZW1f
c2hhcmUodG90X2xlbiwgJnNobS0+aGFuZGxlKTsNCj4+PiANCj4+PiBvdXQ6DQo+Pj4gICAgZmZh
X3J4dHhfc3BtY190eF9yZWxlYXNlKCk7DQo+Pj4gQEAgLTYzNyw4ICs2NDUsNiBAQCBpbnQzMl90
IGZmYV9oYW5kbGVfbWVtX3JlY2xhaW0odWludDY0X3QgaGFuZGxlLCB1aW50MzJfdCBmbGFncykN
Cj4+PiAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOw0KPj4+ICAgIHN0cnVj
dCBmZmFfY3R4ICpjdHggPSBkLT5hcmNoLnRlZTsNCj4+PiAgICBzdHJ1Y3QgZmZhX3NobV9tZW0g
KnNobTsNCj4+PiAtICAgIHJlZ2lzdGVyX3QgaGFuZGxlX2hpOw0KPj4+IC0gICAgcmVnaXN0ZXJf
dCBoYW5kbGVfbG87DQo+Pj4gICAgaW50MzJfdCByZXQ7DQo+Pj4gDQo+Pj4gICAgaWYgKCAhZmZh
X2Z3X3N1cHBvcnRzX2ZpZChGRkFfTUVNX1JFQ0xBSU0pICkNCj4+PiBAQCAtNjUyLDggKzY1OCw3
IEBAIGludDMyX3QgZmZhX2hhbmRsZV9tZW1fcmVjbGFpbSh1aW50NjRfdCBoYW5kbGUsIHVpbnQz
Ml90IGZsYWdzKQ0KPj4+ICAgIGlmICggIXNobSApDQo+Pj4gICAgICAgIHJldHVybiBGRkFfUkVU
X0lOVkFMSURfUEFSQU1FVEVSUzsNCj4+PiANCj4+PiAtICAgIHVpbnQ2NF90b19yZWdwYWlyKCZo
YW5kbGVfaGksICZoYW5kbGVfbG8sIGhhbmRsZSk7DQo+Pj4gLSAgICByZXQgPSBmZmFfbWVtX3Jl
Y2xhaW0oaGFuZGxlX2xvLCBoYW5kbGVfaGksIGZsYWdzKTsNCj4+PiArICAgIHJldCA9IGZmYV9z
ZWN1cmVfcmVjbGFpbShzaG0sIGZsYWdzKTsNCj4+PiANCj4+PiAgICBpZiAoIHJldCApDQo+Pj4g
ICAgew0KPj4+IEBAIC02NzcsMTEgKzY4Miw3IEBAIGJvb2wgZmZhX3NobV9kb21haW5fZGVzdHJv
eShzdHJ1Y3QgZG9tYWluICpkKQ0KPj4+IA0KPj4+ICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm
ZShzaG0sIHRtcCwgJmN0eC0+c2htX2xpc3QsIGxpc3QpDQo+Pj4gICAgew0KPj4+IC0gICAgICAg
IHJlZ2lzdGVyX3QgaGFuZGxlX2hpOw0KPj4+IC0gICAgICAgIHJlZ2lzdGVyX3QgaGFuZGxlX2xv
Ow0KPj4+IC0NCj4+PiAtICAgICAgICB1aW50NjRfdG9fcmVncGFpcigmaGFuZGxlX2hpLCAmaGFu
ZGxlX2xvLCBzaG0tPmhhbmRsZSk7DQo+Pj4gLSAgICAgICAgcmVzID0gZmZhX21lbV9yZWNsYWlt
KGhhbmRsZV9sbywgaGFuZGxlX2hpLCAwKTsNCj4+PiArICAgICAgICByZXMgPSBmZmFfc2VjdXJl
X3JlY2xhaW0oc2htLCAwKTsNCj4+PiAgICAgICAgc3dpdGNoICggcmVzICkgew0KPj4+ICAgICAg
ICBjYXNlIEZGQV9SRVRfT0s6DQo+Pj4gICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcg
IiVwZDogZmZhOiBSZWNsYWltZWQgaGFuZGxlICUjbHhcbiIsDQo+Pj4gLS0NCj4+PiAyLjUwLjEg
KEFwcGxlIEdpdC0xNTUpDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:15:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:15:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225599.1532136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpSyN-0006u1-LY; Mon, 09 Feb 2026 15:14:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225599.1532136; Mon, 09 Feb 2026 15:14: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 1vpSyN-0006tu-Ij; Mon, 09 Feb 2026 15:14:47 +0000
Received: by outflank-mailman (input) for mailman id 1225599;
 Mon, 09 Feb 2026 15: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpSyM-0006tl-Mi
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:14:46 +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 0e916a6b-05ca-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 16:14:41 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-436e87589e8so1285936f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 07:14:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43629745f7asm24198696f8f.33.2026.02.09.07.14.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 07:14:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e916a6b-05ca-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770650081; x=1771254881; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Jw/e7qFA/uy55lgtUniJoilC/5fMrBjXrEN6CGnb1D4=;
        b=TxpZdCwS7vRjabqpJChZeU5lC4peVWF8EuADEPCnHU1MF8a2DIOlGTgD0VgNCyU/SB
         RKdQ1UaHUfEIoZ+aASZmS+yn8zhKtXh26HfKzdSthHsNM7aVGHwRkV6c0q+SRjj5Gm4l
         vDV8YcN3nyBVxvUYjd1ntEHRUdpQ7a8RrzBc8aaqmYFAgkquP5mjOpMv2bIt/qvyotvI
         vavFJ8qMZHXsjtNRjxReT+WR54QmyuBY3OgwpC7mmWEwL99yyNpDqFhEk9P2BzMLXrCL
         k3biTjyLCeLN2v/dYZSxsQs5OrggpLYrrheN6j/tk4zZ+IyiNlwXrjAVze2WryFiAj0I
         Pn4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770650081; x=1771254881;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Jw/e7qFA/uy55lgtUniJoilC/5fMrBjXrEN6CGnb1D4=;
        b=ZfJHVuTpL8TrEIFkyPMXsNX5l6zG9ktEmNB/Rv1lAtqCdb+vHZ33F8peZGNRE4t73r
         XV2yi8AC0GVnclKHIYHiWZZ2tHiDadoGpjZuqXqbnFtXrrbx5ysbxyPcp397l3Ib6Dyi
         2GdHA4azVrY1KTfjzqFrB4yoHcDD4gI4VJcPGRUD/Kn406okIKuLhVjEEVKqVmPs3Pht
         uyEnlVOwz+D8tl0ODdoeOcBU7zM0Eomfvt/5h5Ovp1GasPBgIO1S+f7JlBF0hiGgCL8b
         OAfpq4BE0e21+2PyP1GiOvl8YdGSnynf//AGdRvzy4N6Zkz6D2ulcoSWJREGqJsUj0sj
         CEJw==
X-Forwarded-Encrypted: i=1; AJvYcCVrgFqjlQ8jRYspl6i3wYYZDm74cMgv4clekmb2dvRBH0zr76H4oSef5WooFg6lGvrfOikUphVIIy0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCuvhClm2sKSJuA9No6EGH5kjU//SxPr1PeSGwsZe+RLxCdmPf
	qHQlj3VFwpEUjUjq55DeiyFYZdUzxra0pUpCV3ImAbJUlVH9nfdUpiU/EAOdIB9yqQ==
X-Gm-Gg: AZuq6aJOV/9srwBU2RSRP+CsgNcqXeNB4nkgNsMrI1aL9iR3qGyHirU9a7Sne4bqUyJ
	I0MIw+BtYv9H0DzgJcu5tBUs+E8Bi15bZBh+eGyILym1smWwRqSjeNBCC+OQW+5+NKdq1Gl71ph
	kV7BmwWITpa2TSlGwLK1fo67BLgLZAsF8UNPyCCO+TDQRYWjRrSjvjgOjDVdTCgXs+3qZB1bfvZ
	yOQgAXX9yjwj6O6nhjO5nDl5Ablu/Jm+BRErCGg38ie0WFtryrGFqnHkd1Ev6IHHkhqa9Foa4XK
	R5J1fyODoHySO3C40Oe3BUHnT1/XHiPd4YCyqYKHCP5Hy2omsm+FCO7ntwhK3fwKNALsJDDt6Qb
	on/QyMQLOKb0aXvRHBbb2gJmQRBucdtsvqAZ/PXKQiRKuTheRCnVmY2akwe4HjUQK1i8zphczTQ
	e1bfYXx9kKueCaC8FfN4z9XWJkPlUPpHJqe2L8yCmFPyjylbjVtNcFPRmxdJW0ovYhFEO601N3g
	Js=
X-Received: by 2002:a5d:588b:0:b0:431:32f:314d with SMTP id ffacd0b85a97d-43629341fc1mr17611286f8f.25.1770650080443;
        Mon, 09 Feb 2026 07:14:40 -0800 (PST)
Message-ID: <6caea7dd-24e0-467b-beb6-3888616aab2e@suse.com>
Date: Mon, 9 Feb 2026 16:14:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>, xen-devel@lists.xenproject.org
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <fcbdc4bf-249a-4495-b0fb-434c0e793484@suse.com>
 <DGAIWLL4CNGJ.22MBOK3KETJG0@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: <DGAIWLL4CNGJ.22MBOK3KETJG0@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 16:06, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 3:36 PM CET, Jan Beulich wrote:
>> On 09.02.2026 11:41, Alejandro Vallejo wrote:
>>> It only has 2 callers, both of which can be conditionally removed.
>>>
>>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>> ---
>>> I'd be ok conditionalising the else branch on...
>>>
>>>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
>>>
>>> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@amd.com
>>>
>>> ... to avoid the danger of stale pointers, with required changes elsewhere so
>>> none.c is only compiled out in that case.
>>
>> I'm not sure I understand this remark. Is this about something in the other
>> patch (which I haven't looked at yet), or ...
>>
>>> --- a/xen/arch/x86/mm/paging.c
>>> +++ b/xen/arch/x86/mm/paging.c
>>> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>>>       */
>>>      if ( hap_enabled(d) )
>>>          hap_domain_init(d);
>>> -    else
>>> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>>          rc = shadow_domain_init(d);
>>>  
>>>      return rc;
>>> @@ -645,7 +645,7 @@ void paging_vcpu_init(struct vcpu *v)
>>>  {
>>>      if ( hap_enabled(v->domain) )
>>>          hap_vcpu_init(v);
>>> -    else
>>> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>>          shadow_vcpu_init(v);
>>>  }
>>
>> ... these two hunks? In this latter case, I don't think the bigger conditional
>> would be correct.
> 
> It'd be about these hunks and the inclusion condition for shadow/. I suggest that
> because...
> 
>>
>>> --- a/xen/arch/x86/mm/shadow/none.c
>>> +++ /dev/null
>>> @@ -1,77 +0,0 @@
>>> -#include <xen/mm.h>
>>> -#include <asm/shadow.h>
>>> -
>>> -static int cf_check _toggle_log_dirty(struct domain *d)
>>> -{
>>> -    ASSERT(is_pv_domain(d));
>>> -    return -EOPNOTSUPP;
>>> -}
>>> -
>>> -static void cf_check _clean_dirty_bitmap(struct domain *d)
>>> -{
>>> -    ASSERT(is_pv_domain(d));
>>> -}
>>> -
>>> -static void cf_check _update_paging_modes(struct vcpu *v)
>>> -{
>>> -    ASSERT_UNREACHABLE();
>>> -}
>>> -
>>> -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 = {
>>> -        .enable  = _toggle_log_dirty,
>>> -        .disable = _toggle_log_dirty,
>>> -        .clean   = _clean_dirty_bitmap,
>>> -    };
>>> -
>>> -    paging_log_dirty_init(d, &sh_none_ops);
>>
>> How do you avoid d->arch.paging.log_dirty.ops remaining NULL with this
>> removed?
> 
> ... as you point out, the ops don't get initialised. Adding the log-dirty
> condition ensures there's no uninitialised ops (even when unreachable).

IOW the remark is kind of (but not quite) making that other change a prereq?
(See my remark there as to typing together SHADOW_PAGING and LOG_DIRTY.)

>>> -    d->arch.paging.update_paging_modes = _update_paging_modes;
>>
>> Same question for this function pointer.
>>
>>> -    return is_hvm_domain(d) ? -EOPNOTSUPP : 0;
>>> -}
> 
> Oh. This was a hard miss, true that.
> 
>>> -
>>> -static int cf_check _page_fault(
>>> -    struct vcpu *v, unsigned long va, struct cpu_user_regs *regs)
>>> -{
>>> -    ASSERT_UNREACHABLE();
>>> -    return 0;
>>> -}
>>> -
>>> -static bool cf_check _invlpg(struct vcpu *v, unsigned long linear)
>>> -{
>>> -    ASSERT_UNREACHABLE();
>>> -    return true;
>>> -}
>>> -
>>> -#ifdef CONFIG_HVM
>>> -static unsigned long cf_check _gva_to_gfn(
>>> -    struct vcpu *v, struct p2m_domain *p2m, unsigned long va, uint32_t *pfec)
>>> -{
>>> -    ASSERT_UNREACHABLE();
>>> -    return gfn_x(INVALID_GFN);
>>> -}
>>> -#endif
>>> -
>>> -static pagetable_t cf_check _update_cr3(struct vcpu *v, bool noflush)
>>> -{
>>> -    ASSERT_UNREACHABLE();
>>> -    return pagetable_null();
>>> -}
>>> -
>>> -static const struct paging_mode sh_paging_none = {
>>> -    .page_fault                    = _page_fault,
>>> -    .invlpg                        = _invlpg,
>>> -#ifdef CONFIG_HVM
>>> -    .gva_to_gfn                    = _gva_to_gfn,
>>> -#endif
>>> -    .update_cr3                    = _update_cr3,
>>> -};
>>> -
>>> -void shadow_vcpu_init(struct vcpu *v)
>>> -{
>>> -    ASSERT(is_pv_vcpu(v));
>>> -    v->arch.paging.mode = &sh_paging_none;
>>
>> And the same question yet again for this pointer.
> 
> However, on the whole. Under what circumstances are these handlers invoked?
> 
> They are only compiled in for !CONFIG_SHADOW. But these are only applied with
> HAP disabled. Are they for PV or something?

The .gva_to_gfn hook is clearly HVM-only. We still want to be sure to have no
NULL pointers around that we could stumble across, especially as long as PV=y.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:23:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:23:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225608.1532146 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpT6X-0000Md-Dp; Mon, 09 Feb 2026 15:23:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225608.1532146; Mon, 09 Feb 2026 15:23: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 1vpT6X-0000MW-AC; Mon, 09 Feb 2026 15:23:13 +0000
Received: by outflank-mailman (input) for mailman id 1225608;
 Mon, 09 Feb 2026 15: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=8Y/H=AN=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vpT6V-0000MN-Ou
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:23:11 +0000
Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com
 [2607:f8b0:4864:20::331])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 38b99d21-05cb-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:23:02 +0100 (CET)
Received: by mail-ot1-x331.google.com with SMTP id
 46e09a7af769-7d18dd2adf7so2720554a34.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 07:23:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38b99d21-05cb-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770650581; cv=none;
        d=google.com; s=arc-20240605;
        b=UIFU+BB/fLBt6SqBeIDA5BtCfbI0rJ2wBG2k7P2uMldqPVxr+Qn0Tp+vAHsG3rz/iE
         WL6M+BaHb5LMjsnCOMiFuUx+l/SzRAeHqElhtx292SXFvxT3rJFDRlOUymZ1/Xu1ToLm
         8O4X6BfQj2g96UC9lU5LjnhMrnfeEhYzhDDiVObLeTXGIYa9I5LH5VvPnoqsu0k3kt9e
         0LNb67ECUQT+eglhNLoCgdRC7H6Csv3gwTVlJHS0v2kizjAkCxGnqoKKc77cT8PtjGNw
         DBZPqPZcA9KzLIdmAIM8vWh2sZnUGNzv5xqEfDsWDDwWJ/5l0AlGBkHfrgNjY8qXs+g4
         QRgg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=mfdDFWL+0l2twDO+TgLnRaPXlODpXnZ3nrJFy445z+c=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=hVZcFItlIbZneOBgpVSFB+WR2/+bh1opGM05ni7+WKg+esVLE7QgDNssi3214emoi6
         et3CcALrVLABJVmqaEKqrpkd/Wgve/HbvYKXb+vTn/Li9EbCP8qyUa62l1+kbQ2UEMpQ
         BPkOMroQ6ymQSMBMUTvdjE6FV/NwDSNr/+nPCr4GSIcArHMwNASAt6jnxIGonXuWccao
         SbbF9jSuXd7iQYcCaEF6pnrQN6lWcsgqW76Ter7EuvcDrYTpebvzn70ppU1qhQJtviOS
         j2iuNHPNvG+hIp1WoR3Ygqvo3ycJQY5B1AQHHDYMhKTnrXCbvdSinETWUX12vmhHzcbc
         3jsQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770650581; x=1771255381; 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=mfdDFWL+0l2twDO+TgLnRaPXlODpXnZ3nrJFy445z+c=;
        b=d9vj/iKUr3PwHwUB17EAZrgjCN4xtNs1vOAUddy+Ahy/VCQfI1u+jwWdPfSMwxGfwF
         YlxfqmU7/3Ct9POimQYMVgpz9Zx+66Zj4VxnN8xDuHT7dOC6rDmvXdrRHhis8ujPyCMA
         LyzVyflql9auWEM7jhfYel+E+6sBsIo1QQ4547GZEuHahBVnP5mhS9TugmtHd5WMrKCN
         wU0XEpS7ehaxj2M5t1ngeuFdNHKyesrE4gCC5Wd7wmraeyqxgAdvIuIV6EZwkTlVdU0C
         mOif4TLAV5SZkfrXgXCk3a4Nmv3qxh4YdjsMYYMegILX30Ok4CgOuhrqEJdstWMEaiM+
         ykHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770650581; x=1771255381;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mfdDFWL+0l2twDO+TgLnRaPXlODpXnZ3nrJFy445z+c=;
        b=RfN+EBpP9M27luhNDf2NKetD5Pm1BpLYJpUdsQXgIJaOHbotjaA2Pr9bB/GHvG67Av
         X4HADYqZZa3kLkMTMQwkI9mmf8O24+CEevaVgZnMkFnUqQlW+tef9HDQ01K864esYgcm
         LYM7HDo1kvjWGxB7FOGoN5030/lf8hB/kNKUbcfKaMnEFEmSTHV3atAjAryOscrWSyND
         n+Qh1wMb+t9fgBEyWoVYMt7jVvBz8CGLUHp++mmX2a6W0qIyqhsmynE4AT09veTXubZ0
         FBblXJLRukrzOacg4fvBczaxH3uXEYeJY8JiBBoN3G8PerhJEvStPbXTkoB7fla5yxnE
         xcBA==
X-Gm-Message-State: AOJu0Yw3sQTgfllVh8HNJA86yDAh8qnQAGMUpkd15vAks3/lqSQGk7Px
	1yr5BHt8+n9LCmHLG3AbybDrVSD4DVZc6bWxXCn7Dqv6fDH8WmtUVSHW+4rWASb5MNzmMHtLkaw
	8xw342DK+6HPL82mZULimqv/Gg3mMUpjwQkDPXVcMjg==
X-Gm-Gg: AZuq6aIYerDhtpg6YN6aX+MqOSQ/Db3JVWkIu+2SFM4ukTIiM/A9C3Dpon6N32sRO0f
	oGVLsGKAkLk+nY0TtUl8CkvUdn3k7Vlwn4SoqrBDzNSYZSKHAwUtS+YWjDy21SyuWCPzR9Rw46b
	k7bXVl90tZxap5yxWvTVSo4J9XZhkLJcRHFkhs4uhuYc0oD+xZdMJGjT4CUIWDwh89F6lHOHzxt
	ILc+npvNKY3Jzq559UloA1Ki/GI2s8lvzXkztuA0imqHWe/j7n8KbvaJCMlLKxn2YI47fR2/jMt
	8mANnhl00aHx9hiVU2jSPZ92Qw==
X-Received: by 2002:a05:6820:80d:b0:668:d715:109c with SMTP id
 006d021491bc7-66d0c94e466mr5625709eaf.65.1770650580542; Mon, 09 Feb 2026
 07:23:00 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <97a064c81ee5ea26774c189538f9f1e37dd3eebc.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44Ey=Ph_m8r933K5enqPJgFuyVgY+2Qhtj3pi+V_Fw4=6A@mail.gmail.com>
 <19C7C710-4447-42AC-AFF3-F3122606BC0C@arm.com> <0680A28E-E2A6-4A75-9C82-1348ACD17E2F@arm.com>
In-Reply-To: <0680A28E-E2A6-4A75-9C82-1348ACD17E2F@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 9 Feb 2026 16:22:48 +0100
X-Gm-Features: AZwV_Qj6c6GxPDju0TvmjeWC8_BhN37-lHrOcYZ2w9bO9OIg8h6DUOPfBTHNqII
Message-ID: <CAHUa44H0Z9YWqKP_Dy8Va2L2GxhVJvOFrG+51+JhG+NukmV2yg@mail.gmail.com>
Subject: Re: [PATCH 03/12] xen/arm: ffa: Harden shm page parsing
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Feb 9, 2026 at 4:11=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 9 Feb 2026, at 15:26, Bertrand Marquis <Bertrand.Marquis@arm.com> wr=
ote:
> >
> > Hi Jens,
> >
> >> On 9 Feb 2026, at 10:31, Jens Wiklander <jens.wiklander@linaro.org> wr=
ote:
> >>
> >> Hi Bertrand,
> >>
> >> On Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
> >> <bertrand.marquis@arm.com> wrote:
> >>>
> >>> get_shm_pages() uses unchecked address arithmetic and does not enforc=
e
> >>> alignment, so malformed descriptors can cause overflow or slip throug=
h
> >>> validation. The reclaim path also repeats handle-to-shm-mem conversio=
n
> >>> in multiple places, duplicating error handling.
> >>>
> >>> Harden page parsing and reclaim handling:
> >>> - add ffa_safe_addr_add() and use it to detect address overflows
> >>> - enforce alignment checks in get_shm_pages() and return FF-A errors
> >>> - introduce ffa_secure_reclaim() and use it for MEM_RECLAIM and teard=
own
> >>> - simplify ffa_mem_share() argument handling and allow max page count
> >>>
> >>> Functional impact: invalid or misaligned memory ranges now fail earli=
er
> >>> with proper error codes; behavior for valid descriptors is unchanged.
> >>>
> >>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >>> ---
> >>> xen/arch/arm/tee/ffa_private.h | 11 +++++++
> >>> xen/arch/arm/tee/ffa_shm.c     | 57 +++++++++++++++++----------------=
-
> >>> 2 files changed, 40 insertions(+), 28 deletions(-)
> >>>
> >>> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_pr=
ivate.h
> >>> index b625f1c72914..58562d8e733c 100644
> >>> --- a/xen/arch/arm/tee/ffa_private.h
> >>> +++ b/xen/arch/arm/tee/ffa_private.h
> >>> @@ -632,4 +632,15 @@ static inline void ffa_uuid_set(struct ffa_uuid =
*id, uint32_t val0,
> >>>    id->val[1] =3D ((uint64_t)val3 << 32U) | val2;
> >>> }
> >>>
> >>> +/*
> >>> + * Common overflow-safe helper to verify that adding a number of pag=
es to an
> >>> + * address will not wrap around.
> >>> + */
> >>> +static inline bool ffa_safe_addr_add(uint64_t addr, uint64_t pages)
> >>> +{
> >>> +    uint64_t off =3D pages * FFA_PAGE_SIZE;
> >>> +
> >>> +    return (off / FFA_PAGE_SIZE) =3D=3D pages && addr <=3D UINT64_MA=
X - off;
> >>> +}
> >>> +
> >>> #endif /*__FFA_PRIVATE_H__*/
> >>> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> >>> index 90800e44a86a..4c0b45cde6ee 100644
> >>> --- a/xen/arch/arm/tee/ffa_shm.c
> >>> +++ b/xen/arch/arm/tee/ffa_shm.c
> >>> @@ -96,16 +96,14 @@ struct ffa_shm_mem {
> >>>    struct page_info *pages[];
> >>> };
> >>>
> >>> -static int32_t ffa_mem_share(uint32_t tot_len, uint32_t frag_len,
> >>> -                             register_t addr, uint32_t pg_count,
> >>> -                             uint64_t *handle)
> >>> +static int32_t ffa_mem_share(uint32_t tot_len, uint64_t *handle)
> >>> {
> >>>    struct arm_smccc_1_2_regs arg =3D {
> >>>        .a0 =3D FFA_MEM_SHARE_64,
> >>>        .a1 =3D tot_len,
> >>> -        .a2 =3D frag_len,
> >>> -        .a3 =3D addr,
> >>> -        .a4 =3D pg_count,
> >>> +        .a2 =3D tot_len,
> >>> +        .a3 =3D 0,
> >>> +        .a4 =3D 0,
> >>>    };
> >>>    struct arm_smccc_1_2_regs resp;
> >>>
> >>> @@ -131,12 +129,16 @@ static int32_t ffa_mem_share(uint32_t tot_len, =
uint32_t frag_len,
> >>>    }
> >>> }
> >>>
> >>> -static int32_t ffa_mem_reclaim(uint32_t handle_lo, uint32_t handle_h=
i,
> >>> -                               uint32_t flags)
> >>> +static int32_t ffa_secure_reclaim(struct ffa_shm_mem *shm, uint32_t =
flags)
> >>
> >> I agree with moving the uint64_to_regpair() call into this function,
> >> but I'm puzzled by the new name. What's secure?
> >
> > This is to distinguish with reclaim for VM to VM sharing in the future =
as here
> > reclaim is asked to the secure world.
> >
> > But in fact to be coherent I should also have renamed ffa_mem_share to =
ffa_secure_share.
> >
> > Would you be ok with that ?
>
> Looking at this a bit more, we are usually using spmc and not secure.
>
> Would you be ok if I rename both those to:
> ffa_spmc_share
> ffa_spmc_reclaim

Yes, that sounds good.

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:24:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:24:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225613.1532155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpT7z-0000uT-NX; Mon, 09 Feb 2026 15:24:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225613.1532155; Mon, 09 Feb 2026 15:24:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpT7z-0000uM-Jv; Mon, 09 Feb 2026 15:24:43 +0000
Received: by outflank-mailman (input) for mailman id 1225613;
 Mon, 09 Feb 2026 15:24: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpT7x-0000uE-L6
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:24:41 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 72fe64a3-05cb-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:24:40 +0100 (CET)
Received: from SA0PR13CA0001.namprd13.prod.outlook.com (2603:10b6:806:130::6)
 by SA1PR12MB6728.namprd12.prod.outlook.com (2603:10b6:806:257::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 15:24:29 +0000
Received: from SN1PEPF000397B2.namprd05.prod.outlook.com
 (2603:10b6:806:130:cafe::70) by SA0PR13CA0001.outlook.office365.com
 (2603:10b6:806:130::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.16 via Frontend Transport; Mon,
 9 Feb 2026 15:24:22 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 15:24:29 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 09:24:26 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 72fe64a3-05cb-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S/O6DFAOWGIhrYqF1tALyHQ+cZBAA+5ALyMv8ROqUU9I1YTBAGOAgtsxjoMWy1U0DGwIMuVC5IO9vdyjbbkcWp3iuuMT/d+mRLbURl5XtyRiIEEWzaw7hwjkumE2/axsRItsqXKO8I9AowRo/liODDZBCtDmzzR5bAo8EuGyzwvF+tpxGRpBNBYgaL9+rev3JRmuIwwfmeRtYz9IlD+TmPyUFtDY1Ad3Z1IIoEioaivotOc1m3kTy+g4ypF6O4VXaklZOSyV4RTmVw8+C02I6l4eEM69MY7bfasUt/gP3URK1ybELbw5AOFWfucxNwSEDDLUp9aLOZXZKvkAE9OHzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+fMWWQUBccgWkfSBLwgf2XCzwOW6dseuCIZp8QsjhLE=;
 b=b1EMDGci29mB5P7CV+m0vFEe/B6riM7zHcmSwNkv35opetH7QUOoqzHO5LqkK1R5rh+vXiD/ennhelzpunLHRovorrWKWVPT1/yKi/B2np8nOuk9XciEIN5G7ZEtieDSeNocXQeGQq+V0J2fpvwvPxenUE9aKL0KTLfXbUUwhXQIvzyxwqkVfqILJ1qhQVAspS8dU/yhFn5XqmAQ/5ZGTonnwJeeSlqGtMIbJPakx1DAGZELfYU3BuChqUGjLgDDmxmyOXi6krJ392sH4C0d0YrSY2zD0qjQRgR6z8stl16RWRq/QyflwpTL8sBY3YT9XQESo6Ldic7vlFmPaAxeeg==
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=+fMWWQUBccgWkfSBLwgf2XCzwOW6dseuCIZp8QsjhLE=;
 b=XoyiyOAecDDzJjbaBDGyVKnBwA71+uDx9SGd3HbHCFFBUeVFyOlnzo+n/m1JElEIl3sIhh9BB76sXoTTA2Boq//X3CdqgEXRE38Vgf3yZlZqxgmwJpoxn84uAuWimS2nNByxxs53Klicclyp1zdePy9ePlILnvYcPuJFjQmlBWw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 16:24:24 +0100
Message-ID: <DGAJ9XN03HPS.TC0OLO5PJN6H@amd.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>
Subject: Re: [PATCH] x86: Add Kconfig option for log-dirty tracking
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
 <c5a9075b-6ed0-4778-b3ad-fe6647dad8b7@suse.com>
In-Reply-To: <c5a9075b-6ed0-4778-b3ad-fe6647dad8b7@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF000397B2:EE_|SA1PR12MB6728:EE_
X-MS-Office365-Filtering-Correlation-Id: 98931d58-d674-4b54-c127-08de67ef5181
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?QVAyZTd6UmpZamQvVGpBVUFmZTIvbTNCMFhaaEtHdkZHaTA1bnNvK2ViL3Ey?=
 =?utf-8?B?UzdXUFVhNFJKZUlxdnZXa2dvS05Qd3RXZnkzL3dDQndBbHF3WkM4U2FFSjhl?=
 =?utf-8?B?S2pyV21TUEJ2N0VDNkJrVDUrR0hSYWM0UzNWVmF5YWw5NHBlaEgrTXVEUXly?=
 =?utf-8?B?cmRHdmhsSjdVcDlLSmdTdE5BSnJqYkxNTnkwc3N6QmdsUjZDcm05ejVISGNV?=
 =?utf-8?B?YTI0UzkxVmRWemtnVHIzWXNxcS9RUUZOZk5FL3dZU2hxU0puVEJqSVlhQUZq?=
 =?utf-8?B?NTBOSlVzRGNkZC8wWis2R0dIUmZocmh4V3VnUjM5amxJVkw0MjFSYUdnUFFR?=
 =?utf-8?B?NkVOTWZOVGF5VHJ5YUJvQkZ4Z3JvWko3SHRlOVFEd0U0dUgrTi9vRWZwTENN?=
 =?utf-8?B?UGM1emVtZjhyZERSbVk4TlMrWmpkYUdGSDBqUHB6SEhuQk0wUStJcW1lenA0?=
 =?utf-8?B?dXcrdlNaOTAyRHFaN0hVNzZtZ0lzWWxEZkJ0bXMrZ1ZCd1ZQeFFIdlQwNVA3?=
 =?utf-8?B?cW0vT01LVlduQmRxYzlFVUFvVHg5WFJVb0lCN3lwTjZlbi9qV1dOTittQUZO?=
 =?utf-8?B?T3hJNWhIckRLOHlCNDJoejFQZGh5cjB3TzJUemc3NE85UkhzMXlRZkVmeEs0?=
 =?utf-8?B?VkRmUGJiSHVxbkt0ci9uUzFoVUx0ZEpCeHFESVNWYXdFeDgrQlNJbGlXdWhQ?=
 =?utf-8?B?U3M1RWhPR3JnczZHK2ZYbE9MKzQvWVBtR21lMTRaOGNEbDN1cHNXUlNZUHRl?=
 =?utf-8?B?V1F5UHR6ZTBBdjh3aVViMDRHSloyVzZqZUxpRTUxLzVSVXh2U1FqUzJwQTdG?=
 =?utf-8?B?M05XRkc4dUhZUmNrL3JNcjRISkRJWUw0NEUrSVRjWU9aSEpoYmJvczhMTFY4?=
 =?utf-8?B?TzlweHphNDFNOGpLVWR1M25tMjBYWGRFcmxuM3RINmx0UWNQZWxod1JEeE51?=
 =?utf-8?B?TnU5ZG5NNXduN1E2MGEwcGpESk5ZMCtDUUtqVGZsQ01PdGttemJwWGhMeCtY?=
 =?utf-8?B?Sll2ejdWRmdybnNPMWVOKzRIckVORklxdFB0dXJkbXdUQVoxR1ArVHdBTlpp?=
 =?utf-8?B?UWpwS2lTNGc0K0FkNVFtNEJqaWdabzE1NTFrU1lIM3FYUXJRKzhCNFRqa2xv?=
 =?utf-8?B?T2dITk9ubmxIaDlXRVR0S1ZyOGZ1MjFzQXdZODNSS2J5cFdOblYweUNjNUxQ?=
 =?utf-8?B?V2RmNEx4NllteFJzYy9lL1d4QkdReEVVczBKbUJWdEpjeGN3QXJmS2NKcHgy?=
 =?utf-8?B?TzE2YjRyMDhERDIzcHR6dUdTRzdXUnY4T2F2MUtHc2FNQXdqV1RwT3FpM1d3?=
 =?utf-8?B?aWh2QkpyUlFWTHhKeG1rSko2bWJ6SnhEOFpKS1Bha0xyQTA3eUZBbERkd0hY?=
 =?utf-8?B?YVBVcGJwQzZrd1hkSkxBVldyOUZvOVNhcGJ4eTBNbkI2ajZMVWxKYWIra29Q?=
 =?utf-8?B?Z1JQRTlRQjRaeDZXbnMzVE1uV2owVUJ0WWhzYzBZemFjcW9XR3VEL1F1OWd0?=
 =?utf-8?B?ZzEvU2NiZTVZK2hGS0Q3d2tYZTFKOFdqQ2xHeWY3WTBHUGdpQWtQeU5YNEpn?=
 =?utf-8?B?enVCUE51dGxDejFoZEtFQWwrTHpSRVVOVDJ0VlpNQkc0YkpnM1JZcDN1TE5G?=
 =?utf-8?B?OEx0RzQvVnBBWXQwTG9DOElpMVU3UitvWFJHeFo3N01rZHJ3ZjViYkxaMUxp?=
 =?utf-8?B?YVRyWHd5QmZvUDBIQk5jVGc1NnZqNXVYZnVOMnZEbmpkSGhnSzlLTGlZNWRz?=
 =?utf-8?B?RVJweUE3OVI5UTFBeC95eHJKMFpGOFlDb1hRR2wxdlB1d3plZURndHNyYjhC?=
 =?utf-8?B?L3c0MzU0aWdWWHVXbEQ3NVdrbnkvY1lBT2RPR3dxKzVYVXRZdjhNS3paRHJT?=
 =?utf-8?B?YlVwTUVYVFNlK25pVEowYmVkelFiWExCYnlpN1FnVXI5TmtJWDAwNXRqczgz?=
 =?utf-8?B?QWdvMTJ2a2c2azJtRHFmSlIyUVF0R2cvTVVuR05BZzdPbmtYZjFIWkd1cHZx?=
 =?utf-8?B?MGlyK2FTaWdML0trZG85dVVBbVJGVzlBN1RvWndMZU9RY2NsMHNtZ0dWcG5o?=
 =?utf-8?B?b2U1aDVReVB5TGtiZDB1My8xZG5QSzI0TUVWa1FaWC83ZVc4b2gxNWFoK3F0?=
 =?utf-8?B?ajNYSjZOdCt2c1ltVEc5amZEUFp1aWg5QW8vRXJ6WDdIOHNxQlFiSUhsUllW?=
 =?utf-8?B?Rk9tdHVFd1hGRmdPdWFUejRYWlZCb3BYb3ViMjJCTW14cllCK3hhVjE3WkJF?=
 =?utf-8?B?QTVhbHh1aEJyNFI0RHhwcitvR0FnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	MhZX64HhAePVtQiqy67OywHncaHYpTnE74WKLy8gSJvJIqfqwpQFeOEe9VDnSYzYOoLIkPK49HCQ2pjrax10RMTj9sTD1O3Dh3NAxoanhuIn5htT34fNAZQvViJquuWyIGNR5uAuSKPqB6Hafp/75ZZ5bDgYIVzxsT0FJqnteveqgf/zQScJNRCgTK+wB4f3o954/DJx1Nq9w/6uA7UKfmqRkGBhRj677wEC07N4hmP1D5JKlQiGKjSzaHQxDkn7eWljkZ6sokdDtHyRYhcjL2ShjwPAhd0kYz3M+UuJIjTLChulKQ6ZlqlLOgOSnGUwDOAuFPlPx4vhI+lVKKemZpK4DkbIQrKl5HMtdgQhLy16Lu622oag1NDRDFoGNzUzeD1z424xmjgMyaWXwOfVobWgl45wS0dTrhqYBwtIfZ+9ndNnHV26w694wEy1AUfq
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 15:24:29.4892
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 98931d58-d674-4b54-c127-08de67ef5181
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF000397B2.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6728

On Mon Feb 9, 2026 at 3:48 PM CET, Jan Beulich wrote:
> On 09.02.2026 11:31, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/Kconfig
>> +++ b/xen/arch/x86/Kconfig
>> @@ -146,6 +146,7 @@ config XEN_IBT
>>  config SHADOW_PAGING
>>  	bool "Shadow Paging"
>>  	default !PV_SHIM_EXCLUSIVE
>> +	select LOG_DIRTY
>>  	depends on PV || HVM
>>  	help
>
> Why would this be? IOW why would shadow imply log-dirty, but HAP wouldn't=
?

The logic is rather opaque. I admit I'm a bit fuzzy on the uses of logdirty=
.

I know what it's for and I could navigate the code if a problem arose, but =
I'm
less clear about which other elements of the hypervisor rely on it (pod? ns=
vm?
vvmx? shadow? hap?).

If it's strictly toolstack/DM-driven maybe it'd be more apt to have a separ=
ate
LIVE_MIGRATION and SAVE_RESTORE configs where LM selects SAVE_RESTORE, whic=
h
selects LOG_DIRTY. That's also improve some defaults auto-downgraded from t=
he
max policy just in case a VM is migrated.

>
>> @@ -166,6 +167,14 @@ config SHADOW_PAGING
>>  config PAGING
>>  	def_bool HVM || SHADOW_PAGING
>> =20
>> +config LOG_DIRTY
>
> PAGING_LOG_DIRTY?

sure.

>
>> --- a/xen/arch/x86/domctl.c
>> +++ b/xen/arch/x86/domctl.c
>> @@ -220,15 +220,15 @@ long arch_do_domctl(
>>      {
>> =20
>>      case XEN_DOMCTL_shadow_op:
>> -#ifdef CONFIG_PAGING
>> +        ret =3D -EOPNOTSUPP;
>> +        if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
>> +            break;
>> +
>>          ret =3D paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0);
>>          if ( ret =3D=3D -ERESTART )
>>              return hypercall_create_continuation(
>>                         __HYPERVISOR_paging_domctl_cont, "h", u_domctl);
>>          copyback =3D true;
>> -#else
>> -        ret =3D -EOPNOTSUPP;
>> -#endif
>>          break;
>
> Can a HVM-only hypervisor create any guests with this? I simply fail to
> see how XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION would then make it through to
> hap_domctl().

xl doesn't seem to call it at all. hap_set_allocation() is implicitly calle=
d
through paging_enable() -> hap_enable() -> hap_set_allocation()

>
>> --- a/xen/arch/x86/include/asm/domain.h
>> +++ b/xen/arch/x86/include/asm/domain.h
>> @@ -226,7 +226,9 @@ struct paging_domain {
>>      unsigned int            p2m_pages;    /* number of pages allocated =
to p2m */
>> =20
>>      /* log dirty support */
>> +#ifdef CONFIG_LOG_DIRTY
>>      struct log_dirty_domain log_dirty;
>> +#endif /* CONFIG_LOG_DIRTY */
>
> Such an #ifdef can likely replace the comment? Or else the comment would
> better also live inside the #ifdef?

true.

>
>> --- a/xen/arch/x86/include/asm/paging.h
>> +++ b/xen/arch/x86/include/asm/paging.h
>> @@ -55,12 +55,9 @@
>>  #define PG_translate   0
>>  #define PG_external    0
>>  #endif
>> -#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>>  /* Enable log dirty mode */
>> -#define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_s=
hift)
>> -#else
>> -#define PG_log_dirty   0
>> -#endif
>> +#define PG_log_dirty   IS_ENABLED(CONFIG_LOG_DIRTY) * \
>> +                       (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_s=
hift)
>
> Need wrapping in parentheses then.

true.

>
>> --- a/xen/arch/x86/mm/hap/hap.c
>> +++ b/xen/arch/x86/mm/hap/hap.c
>> @@ -50,7 +50,7 @@ struct hap_dirty_vram {
>>   * calling p2m_log_dirty_range(), which interrogates each vram
>>   * page's p2m type looking for pages that have been made writable.
>>   */
>> -
>> +#ifdef CONFIG_LOG_DIRTY
>
> This wants to move further up.

sure

>
>> --- a/xen/include/hypercall-defs.c
>> +++ b/xen/include/hypercall-defs.c
>> @@ -194,7 +194,7 @@ 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
>> -#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV=
_SHIM_EXCLUSIVE)
>> +#if defined(CONFIG_LOG_DIRTY)
>>  paging_domctl_cont(xen_domctl_t *u_domctl)
>>  #endif
>>  #ifndef CONFIG_PV_SHIM_EXCLUSIVE
>> @@ -292,7 +292,7 @@ dm_op                              compat   do      =
 compat   do       do
>>  hypfs_op                           do       do       do       do       =
do
>>  #endif
>>  mca                                do       do       -        -        =
-
>> -#if defined(CONFIG_X86) && defined(CONFIG_PAGING) && !defined(CONFIG_PV=
_SHIM_EXCLUSIVE)
>> +#if defined(CONFIG_LOG_DIRTY)
>>  paging_domctl_cont                 do       do       do       do       =
-
>>  #endif
>
> The CONFIG_X86 part of the checking wants to remain: Another port may als=
o gain
> a setting of this name, without necessarily having this auxiliary hyperca=
ll.

Hmmm. Makes sense.

>
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:35:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:35:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225625.1532165 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTIM-0002r2-N6; Mon, 09 Feb 2026 15:35:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225625.1532165; Mon, 09 Feb 2026 15: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 1vpTIM-0002qv-KN; Mon, 09 Feb 2026 15:35:26 +0000
Received: by outflank-mailman (input) for mailman id 1225625;
 Mon, 09 Feb 2026 15:35: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpTIM-0002qp-8H
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:35:26 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f02a1dc2-05cc-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:35:20 +0100 (CET)
Received: from BN9PR03CA0387.namprd03.prod.outlook.com (2603:10b6:408:f7::32)
 by PH7PR12MB7987.namprd12.prod.outlook.com (2603:10b6:510:27c::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 15:35:13 +0000
Received: from BN2PEPF000044A4.namprd02.prod.outlook.com
 (2603:10b6:408:f7:cafe::7d) by BN9PR03CA0387.outlook.office365.com
 (2603:10b6:408:f7::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.18 via Frontend Transport; Mon,
 9 Feb 2026 15:34:43 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000044A4.mail.protection.outlook.com (10.167.243.155) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 15:35:12 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 09:35:11 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f02a1dc2-05cc-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f/Q14n78t+YsiK4DcB85dSUvRYoqSQgyZ6CYQs5PdLcSe1Ia+grMp+2iaxegQXoiLuanE1H+nAf0QI6YtaJ6r8SD42mT1aM0sAPo18HgEUcUU1Rg5eZz9XCLswoQ37Ou4R3a1YT9D8aqWSobJAC77Ql7Xz+bruyWGiztrnt4reyQyM0eve6nzMQyQXvhov9UuYulAgnXsTCEFA2N0xC5siO4uPLpeUXIsq6/2bqLTQcd4E8uUdumPENr8ibKm9nzLyUUlxqyhM7FYpB9q+cxY5ikrAdpndxsjuKlDNUJuz2hG2F18lXK1Pbdc7Z1+57241u9EQAgFihbG3Vk8eQDKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=98474JdQkV6HVWnwOuDmjpttYAaOW/uXN/Vxd1s/O5g=;
 b=vFg91qXN+KCbXjOp/DEeLRPf+KjhzoKPB6PXefGMU61QnfwqggUZpYAElVJWorRSbzZraDhp1yxqicBpQUuo5ZENGtbBC86hUh+EB8dpdJpt1Kq2xLBaOfRV+XF0PFAjyk7O+HSZj46AVbRm7BMZBo+E7kEFBVKIporIaB0I7NhgzlVa0giERJVrWSGAKotGElF0BvN/fV8HFY8DJaaNUA+KIkvjy8lgw2pAqgUTQ9ACU1gqwopyGFD2mPA7S1dt7wreohqQOVyAmYhfKzkfCqPdE5iHdUlHNCE8z6J6E4gmfuX+5AyizaeUcBndYUvunqrx6vr9xkR6Okoxi/ssAA==
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=98474JdQkV6HVWnwOuDmjpttYAaOW/uXN/Vxd1s/O5g=;
 b=PbH/W663rUMZArcZwbt1zp2FFfUcsKikc/pYnLW7miVNqJdSnlU0hsamOoaUhSbpXbP4844Pr5UfLYeuKcjnhoR7d7n3RiUUcbFAmnYMN4DFMlNEUnkjCWWn8Z/H3i5kRITe7e71uiSvs+46ENL9BIFP1XGu5kCJaR2MKOZtSvY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 16:35:04 +0100
Message-ID: <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
X-Mailer: aerc 0.20.1
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <aYnyY2MArv4vTXsY@Mac.lan>
In-Reply-To: <aYnyY2MArv4vTXsY@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044A4:EE_|PH7PR12MB7987:EE_
X-MS-Office365-Filtering-Correlation-Id: cbadc5fe-5907-46c3-ff53-08de67f0d0c5
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?S255aWh2S1F5cDdKa1E3Y25USXJpVHlGN1AxT25xMHdnQ2J6ckQ1R1R0ckda?=
 =?utf-8?B?SVlPQmV5RVl0YkV2cXM2SUs2aTZVNFRmRGxEMkgwOEVxcnEvbURzTDBudlJQ?=
 =?utf-8?B?Nk9BTk5ram5RZDZOUmhMbTBpRG5yNkFJVDJCazd6bmhkNWV3cjRCUU1MQ3F4?=
 =?utf-8?B?VEYwenlvTzZKRnVHUjZabWMrNFNxc2RLaUpjQWwrVEhWdjkrYndzMzhuL0ln?=
 =?utf-8?B?M241MHVmS1R6TW5hWHI3U21QMVRQQ0wrMFd1cExwMXpHNmdDcVJWTDB3d1Zv?=
 =?utf-8?B?T21zOThoVEFmRDBEWWpSeGh6N0hKZWdvaWNaQmsrWmhROVlDdG1EaEswV3dh?=
 =?utf-8?B?b2xHUDNnQ29KWEV1bVh6TUsxZHlFTzYwOEhvczFhQ3F4UmJpRUZrY2lEK2hO?=
 =?utf-8?B?ZmJrUnhzRFNuakZDc1hBOEp5ajEyaW85aERlaGkrRjV3NmJweS9CUzBab0Yv?=
 =?utf-8?B?KzVYMWovaVczMmtjOXZ2dzFKZXc5bmpsdGhITDMyMzVCK25vWjlWMzBKaURT?=
 =?utf-8?B?WGVYUzdYN2ZsZkVFeWNGVG56WCtvaDVZNU9PTFY0czFJOTIwazkxRi9pbnBz?=
 =?utf-8?B?Y09yR2ZjcjA1YkdjWW5kVmNxcjgyWGZLd1JnNlpRQkcyS2dzQWgzSzFaanJh?=
 =?utf-8?B?dE5HeExjR0xyNmZPZFdNTSs4b2Y4K3Q5akRlby9PaEo0bjU2UTZ2U3M0dGRS?=
 =?utf-8?B?aWdRM2xLclBqOG44dWxadGE3UStQZjhMejl2enF4ZVNUSFVHMXdBeDhRUFoz?=
 =?utf-8?B?UUxxRmh5dXljcFFTTWxRQUtrcUFocFJvQmhsbHYvSWFqRjlIbjkrdmZQM1Rs?=
 =?utf-8?B?YUlZMjU5SVdBMlQxQzBFNGpkeUw3aFBjWVg5S2UwWkRxRlNPM2diR1dTRk9F?=
 =?utf-8?B?YXJ6bmJiZm1lelM2ZG05blpTaDJLWjY1QTRxZ1BKR3BJYTdGUlk0UmI4Zy82?=
 =?utf-8?B?UmJqYTA2M2hKcVFYN2tLd1FGbkJZRitCd2dLZUpXaGZJTWFZOVRMTDRkb0I5?=
 =?utf-8?B?dUVnbnN3T0dPUjFHL2Ira2xyalYvVE1sWll4amc2amtBeEpyRTFjVlkwcEJl?=
 =?utf-8?B?QkZGR0c2dFppVlRXcnVld2oyR2hpcWZac1pQb1BGbkhqUytHTHlDQkROVGVW?=
 =?utf-8?B?QXduYmxiQUhMRWxTZllMZHByR0xHa2owdmsvQkk2VEk4enpydnlnNHB0d2Fp?=
 =?utf-8?B?T0MrL3E3dFZMZjIrbjFvc2ljM1QzU1lUbzBWaWV4NEQzQ2pMc2V4QzhZTGs4?=
 =?utf-8?B?L0hRMkdPZTVMZWQvMmZMdlRhTFBhYS9IbDU5LzgxMEdZRVNOdTc2emtNYUFB?=
 =?utf-8?B?cHlEOWVMSDJRaHVhVFUvT0JDNnBWeUJhRjdtTGZSdEVFYVk0N0xLM2h0YVhP?=
 =?utf-8?B?RVFKOHhuZVl1NDZ5SjdXZHlWdDV4NTZiUHRSQjgvV3NMZXVIeHJqckorZ3BV?=
 =?utf-8?B?VkRxQVNzNVpRdC9sSm5INU1tblBiQi9melRZeHF2UmYwbHhic3FiQk1BMG1N?=
 =?utf-8?B?S0RHWFFKWVRGalBtWFJieS9GeE5vaUVoWWFtSWU2ZXlkZm5oa0RDNTdMUllt?=
 =?utf-8?B?TlVjS1MycXBDaTkyb0R2NzExLzFHaDdIMnY5ZmRVUUVlbUJ0WGp2NFR3S082?=
 =?utf-8?B?enJtQ0dtVnRKcnFMVlR2RjZ4QktKQU8zbklyOHNoZzQ0ZFFLRG5XM3dWRWVq?=
 =?utf-8?B?UURTK09ZNjJmZkNzaDNBaE5laDM5Wmk0SEhaeTBYZGg5c04wSVUvTkpQTTlF?=
 =?utf-8?B?OUxxbjJmeFdsUWV4VXp2OG02bEdWZTFlWlZnSTV6dEpwNWQydkV0bVZDazBm?=
 =?utf-8?B?aGRKV3FIQzBzVDZhRllvcDBIV1N2TFVMbFUvUEZyY1VWMGVnS2VTVnlIQ003?=
 =?utf-8?B?a3A2RGVRUVJBQ2p5Z2RkaWx1Wlc0NGxwNkVXY0VVV2RFZmZlbWp6dFM0OWRx?=
 =?utf-8?B?UThudGc4cEdnUlJhR2U3SVgzNzBNd3VDSUQzbHRHRWhKQnRKQ2xzd09QakYx?=
 =?utf-8?B?bWx2QXJveFQzSVUvMXFXeUVLZkFJVnpNcU02V1V2NXcwaTFRQis0ci9kSENa?=
 =?utf-8?B?eWhkY05wUVFnWG5Dc2txdTJrNmJxKzUzeWZnaUJMM21aVlgyTUtqdmJ6cU5m?=
 =?utf-8?B?S29ramxxK3ZSZ05oNWNxbmRDRXZWQ3FvbWdkeTBOQzNGVE40Rm0wakZobmZF?=
 =?utf-8?B?K0JOTGFFLzV2NDMweWVnc2gwZFZZTUNhWlRFUmdsSTYwRVJvaHpNUEIwdm5P?=
 =?utf-8?Q?gnQuyCtDrdznvRwWrRExy2ULGFRaO1xdEZrGEsE89M=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	2c3msWI7kbslzs8l2VTZfvv++dKmxL2WsykYg0YleI3P5IyZnJpf5IaYToB8i/R8yHB7m8knaW6e+4CySPfdcqtZ2ppsAkfbtPms8ZBxSZKn+zm7+Go7vPacrc0B9Wt2eJe6RaM9YQ5BIP0t5STUZ+V3pu01y58HrDLG6eVggOrP91/CO32K3BxvcCALP6ZLm3PlNOvNSQmwBNiQTTkq7+Gd2XUVVC+Faw0cTLy49kW2L9KqnwKHAd7aNCIaoybl5t48GfG+pQ/At8In8eCXroSLxxXFAsrNDHkfqMEzs/gl+zmXR4UwkYeKqrw6OVwCuHCHlEXPvOsArtyWnefs/2DtLTamBGUE7r0J902m25xUf0SbF+WHSHDvSnZfn34fHg2Ocum5pWSzb5S3offxzxPBDlAhPznK/aFOEMRtpJ1nr9NgyvTPd4Jc3wkwvZfo
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 15:35:12.5196
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cbadc5fe-5907-46c3-ff53-08de67f0d0c5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A4.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7987

On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monn=C3=A9 wrote:
> On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
>> It only has 2 callers, both of which can be conditionally removed.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> I'd be ok conditionalising the else branch on...
>>=20
>>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
>>=20
>> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-=
alejandro.garciavallejo@amd.com
>>=20
>> ... to avoid the danger of stale pointers, with required changes elsewhe=
re so
>> none.c is only compiled out in that case.
>>=20
>> I'm not sure how much it matters seeing how they are all unreachable.
>> ---
>>  xen/arch/x86/mm/Makefile        |  2 +-
>>  xen/arch/x86/mm/paging.c        |  4 +-
>>  xen/arch/x86/mm/shadow/Makefile |  4 --
>>  xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
>>  4 files changed, 3 insertions(+), 84 deletions(-)
>>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
>>=20
>> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
>> index 960f6e8409..066c4caff3 100644
>> --- a/xen/arch/x86/mm/Makefile
>> +++ b/xen/arch/x86/mm/Makefile
>> @@ -1,4 +1,4 @@
>> -obj-y +=3D shadow/
>> +obj-$(CONFIG_SHADOW_PAGING) +=3D shadow/
>>  obj-$(CONFIG_HVM) +=3D hap/
>> =20
>>  obj-$(CONFIG_ALTP2M) +=3D altp2m.o
>> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
>> index 2396f81ad5..5f70254cec 100644
>> --- a/xen/arch/x86/mm/paging.c
>> +++ b/xen/arch/x86/mm/paging.c
>> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>>       */
>>      if ( hap_enabled(d) )
>>          hap_domain_init(d);
>> -    else
>> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>          rc =3D shadow_domain_init(d);
>
> If you want to go this route you will need to set rc =3D -EOPNOTSUPP;
> prior to the `if ... else if` on the HVM case.

Maybe this instead

    else
        rc =3D IS_ENABLED(PV) ? shadow_domain_init(d) : -EOPNOTSUPP;

And gate none.c on PV && !SHADOW_PAGING, which seems to be the only use.

It's a lot easier to see the safety on the HVM-only case, particularly with=
...

> is compiled out, and the toolstack has not specified the HAP flag at
> domain creation you will end up with a domain that doesn't have the
> paging operations initialized as paging_domain_init() would return 0
> with neither HAP nor shadow having been setup.  That's likely to
> trigger NULL pointer dereferences inside of Xen.
>
> Also, seeing the code in arch_sanitise_domain_config() we possibly
> want to return an error at that point if toolstack attempts to create
> an HVM guest without HAP enabled, and shadow is build time disabled.
> I've sent a patch to that end.

... this patch you meantion. Thanks.

I'm guessing it's still a hot potato in for non-shadow PV, which strongly h=
ints
at our being better off leaving it in that case. On HVM-only configurations=
 it
seems rather silly.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:44:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:44:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225632.1532176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTRB-0004lc-G9; Mon, 09 Feb 2026 15:44:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225632.1532176; Mon, 09 Feb 2026 15: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 1vpTRB-0004lV-DJ; Mon, 09 Feb 2026 15:44:33 +0000
Received: by outflank-mailman (input) for mailman id 1225632;
 Mon, 09 Feb 2026 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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpTRA-0004lP-LY
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:44:32 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 35a1d7c6-05ce-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 16:44:25 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BY5PR03MB5235.namprd03.prod.outlook.com (2603:10b6:a03:21b::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.17; Mon, 9 Feb
 2026 15:44:21 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 15:44: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: 35a1d7c6-05ce-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SXgA+PlsfihrCzbM5UjO+GY6DMu5qrITLopKbILD5PDg62EmZin58MzAPV5wm5eIw8CRWOTwDDDHLXEU29GObZiKkjsQfIW+FXNwyk3v0mrUJpZjBk39NW4zwh+xM97ZdvjLWulXETJXwQl6s74R1nQBYR59Jc/Z2CFYNYeLv1clKrANyGNblEd+1Tz+Z9ESQfUhLTE03+QJFa0ZQTdEOXDV322kxE98dnUgDvv7fegZXkKEv1zQN6VVYoul4C/hZ3cDzKKnBB3ZXSznLKmQMNugJO6QGYre7S4WDzLFd4S2YSIYMEgoGP9I9IrCHvwKHBBPqbbQ6CsWDK7Lw40c6w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=O59oFjuvaC9HBFP5ZpnnvoDpQgALaY4CbzGBT9sQFNU=;
 b=EPZXuOFsVFc1ofCiC5+4YbWvySVkj8bHu5emgdklr/io94Pq2dEvMJTknKEnh59q9H3kJnCPmnHsPrNAwL+LbyaVGV4IrDP64fzgW/svwqopYYP6g8WHAHC/g/JdswV+Vea2GtXSrtbtXrQTy9c7git7VQxdPkMlwQW/LzznY0preNfLkWUmvETeMpOGxqME1BxsqS298rN+jlpc2CZhEG4cpgaQtaZH19klaWOIgVJDncaC9kkoWIm0fG2fa8M0rUrhb0qJzQJanYBjF5EWICWwrawpDvJ84iAo6FKFV9xM2hLZpVis80bfo+G/fob79XKGsZjjdncw4GuKTwysyQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=O59oFjuvaC9HBFP5ZpnnvoDpQgALaY4CbzGBT9sQFNU=;
 b=HYqmPYE7Xnt/Y71fGeM5v+umAiYao3ihvqFCtMSqWSJK98x9OHX9XwimDvsjGWTKezfYXECt/HXcwCcUkLHPy9C+w3DmLw11Le1JnEt2CzPhFLO9KWtOWkjEE20pxz8Ji5k/4C/d2Cybc3oDGlLLO14y4E1VW2VJSOtSS5EBlNI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 16:44:18 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] x86: Add Kconfig option for log-dirty tracking
Message-ID: <aYoA0jgj99Ani0mF@Mac.lan>
References: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
X-ClientProxiedBy: MA2P292CA0019.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::17)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BY5PR03MB5235:EE_
X-MS-Office365-Filtering-Correlation-Id: 6d92cea6-3190-407f-e1f5-08de67f217bd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MVZmdzlOVkdnNzBuZWcrcG9VVmZ0dWhnMTVaNWZuWE53TFBtWDV4aEZOMk5Z?=
 =?utf-8?B?dDd0ODVrdWdVZjV4VWdkZFAxcWhtVmtDdmlsM1pzcVVQTU1ldjQxWFJmUEFJ?=
 =?utf-8?B?YzhIS2pOdHppeDRyQkwxMzdWTHNqaGV2aW8xR2FMQ3U2SWxwTXdiZTRqeEVy?=
 =?utf-8?B?RTZFNDRVMnFTc0daQkx2dzZDejA0Vk8wcUFLaWg4SFBkcHZLbDY2WWN4dmQ5?=
 =?utf-8?B?aURVWFppWUZCdnA1MEtiZTJYQzZXUDdlTllIVmlTOUQ3TGF4azRjWkM0VXEy?=
 =?utf-8?B?ak50dFB4RGlsS0NSNmpsYThNMWovME0wdzBCMi9vWERBTGVWQS9nUU1mMHBG?=
 =?utf-8?B?ZnI1cTJseHJKcDhBQmkyLzlIUzcxU1JOVG00dmpGTVE3R2JNM0VlbU51Rkxl?=
 =?utf-8?B?RnJhQzBDb1dqR20zb1oySDN1QnVHZ2VpUnBkTnA0ajUyQk1NZXhWUFpLQmtU?=
 =?utf-8?B?WWZBWXVDbjNoZlFiT3hRbTcvWkVEdStuUFNJdm9QWGVGaDRIOG96SXNoemtK?=
 =?utf-8?B?UHEwZlNrZTEyZ1RHUEJNdmFicEtxNmlqcXdyZ1pWOXFmblFBdlZ2djR2SU1Y?=
 =?utf-8?B?bG55T3RTd1lGUVk3TjVFYmxPZ3FHaStRKzlxeGxUZ1BnWlRnS3FPdmZDdUNV?=
 =?utf-8?B?d3pMcDJDMkpDRlpLeVNVWmVDNGQvb3AwcDlOYXozL3U4YkUrcnNGT1Z5U0RU?=
 =?utf-8?B?MTk5MUdOdjlhN0JWeXJ3Z1FBblFpN0JCVG4xQ1paZExRMysxcm16K05KQTQx?=
 =?utf-8?B?c3d4Ym56MEpONkZyOTB0T3ZTeEVrTlVaRlgxVWFRNlpRZ0lXV1hoQUxqNU01?=
 =?utf-8?B?TUhxTE9QQWtraEQzcjcyRGdFeUxPcW9KdnNYVW55bmJMSDhFZWIzclNvdTF6?=
 =?utf-8?B?YVQyakpMWjNQOUhobFVLbUdBbk5FZHgydld3MUI4bnhXNWU0Tm9aTStxL2sy?=
 =?utf-8?B?ZHFyd3h5b3cyS2tkWEw2Q09PTDlLRXBhcUFvRGpaVzU4Yy9BdEdSY2IwbFk0?=
 =?utf-8?B?TnhJb0Q4OFpteC9mUlEvcG1PZDd4anlmOS9vS0NyMlhhVitxcjFqSXpWRndV?=
 =?utf-8?B?WlFRUTdONW9Oc2FFUS84bzc2dzBoeGhBWGNOMWRZcEt3Y0dieTlDblhFaExK?=
 =?utf-8?B?UVdxWW9td3pQWE9QbFFTOUNlVzBDcjNhVDN5RWNXdmhPL2lpSFMxL2lvZDBx?=
 =?utf-8?B?TTlGSVZRelkyTmlQN1ExSjJ4K2F1V0hwcDVGSUhySkNydHhPRURQMCswTW5M?=
 =?utf-8?B?TTlSS25VdmlVeW9pNUJmVUZmbU1POHdwRk1TN0pnbVFKYSt4ZEJKUVhMQ2x4?=
 =?utf-8?B?dVlzRE1xSTlLVjJPaThmTmI1NjQ1WGtTS0twVWVndTBJU3NaQ0tmMGNodjRQ?=
 =?utf-8?B?TGhGQWNvaGhJMjd4NFZEZnBEMlg2OEl4ajlVaXlIUHFnNGdYWjdDUEJOQk4x?=
 =?utf-8?B?QkxPOEV3SDhHaU1KNVQ4N2JkUWtrdFUrRDBUQVVnLzBUR01wSVduL291a0pa?=
 =?utf-8?B?ZEJaOU5BaW03SHlTRFBsb0ZNKzBILzQzeFpiOUQ2RFJrcVhQbjBITG5iS0tE?=
 =?utf-8?B?dmpjR1RCSmtwMlljK2dFdnk2TUxNTCtKclliTWtSK2JaYVJ1K1VLR25iTVNv?=
 =?utf-8?B?V1l5cWllcFJ6S29KcnRjOXdhNjgxYzFmeDVJVzVEM1R5c0VlbkhZMmYvQ0tE?=
 =?utf-8?B?QnM1QTc1d21OaDduR2R4bk81dDRsT2QzNzBQYUxWVmZYK1NZUWU1MDdqTTVJ?=
 =?utf-8?B?TXBBSzJTRVhIbTMvSGFmZG50RjExNURkWkpPdTJqNkFPWjNzaTZtdHdTazFu?=
 =?utf-8?B?NUI4N1pVeE5QVVpzOVpzYkp4VVZ1LzI2RTkrZExDKzBRV2RsYmpBY21uMkJK?=
 =?utf-8?B?M3ZFS0lsMVRSazBqMHRzQlhkckE0ZU1qNUlKakI1cEh6bERpbitzcE9nWGZ6?=
 =?utf-8?B?dlBBbXlzNEs5SC9PQWNRcXRTbUdCVWRJN3kvU0MvaEZxekhDUGtMRUVWYW91?=
 =?utf-8?B?U3REWXpENkRCejkyczRpNU45Lzd3NGFjVzNoZC9RREt2ZzBYeXZSVkMvUGto?=
 =?utf-8?B?SnRnbFZiWUZLcDlpbTRjUVN2d2c1SE1YTzV6TitpaUx5dEhuMGQvVngwdWN1?=
 =?utf-8?Q?AfX4=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QkJQQkU0TElpc3FmZkZEUEd3M1YzUStwYW1zNCtIN3Ywc1pMNnQ0WGpBREpC?=
 =?utf-8?B?TytkVWp2d0swVFZyUlBLanY4WE1CVTV6NUZFTndEQThBaHJGanMxWVJVeUR5?=
 =?utf-8?B?SVlKVStUT3JQakxNdmtvTWJ5ZEQyTm90eWVmNUhqM001M3B5WVZhdDNjdTRi?=
 =?utf-8?B?a2FhRk5XVmlNaHNuRitkUzlBNDJPajNMKzg4bjdlNFQxZWlBOHRzOThoN2ov?=
 =?utf-8?B?TUpGdnlxYTlpR1o2ei9WdUZoSWlWOCtVRTVkUjZoalQ1Yk1zUUpadjkrN1Mw?=
 =?utf-8?B?VUtEemZEcmIyaHF3akVNOFY5c0VRVGZRM2YzYW9rOVZPN29JaUhYbDNDYlE5?=
 =?utf-8?B?YUE0djM4VCs2QzFKUC9mdWtqSDNnK1dRM3BpbUg4UHJTR3RnSFZlcjY3V1Q5?=
 =?utf-8?B?alU3Y0pIOEw4KzRmZmJNOHZUN3B1eVgrVnE2QlZPRmZvWUdnVk5EL3Z3eVYy?=
 =?utf-8?B?cTg4S2xPbE02Nk81amdGSkdhMmZuVHAxbXZiZldZYklxaUoyMXpnRGI2d2Y2?=
 =?utf-8?B?eVlIREl4SFE2K3FEajk1NFBiWGxZeWRlTVg0R3Y5a2w3NEV2Z0FkN3ZrdCtN?=
 =?utf-8?B?VENOUi9uVzB2MFFvbmY3cFFaTFgxSlJKakRjdTdFQzFvMXJxN0ZTU2NvZzBa?=
 =?utf-8?B?eFRmK2x0WFJEQ3VVeldWeEo1M3daa05YTmdqeS93WEtOa3h6anJLeEZYeThE?=
 =?utf-8?B?ZTcrTkxHTUprV01pRS9VamltdWpnQUMveVdISUs3RzBuQ1FTRk5HNVB2cjBS?=
 =?utf-8?B?ckJpRnJxZzNLdkltZldZQkJtN3MrbTZyelNucEJVYVcvdzVWWDVHTStHQU82?=
 =?utf-8?B?UTlhdUphSVJQUyt0d1N4dnovblZtb3FJOEt0czVOTDhVQ3RsK3EzUlBuNVY0?=
 =?utf-8?B?cGd4UkViSXBWaC9YOEN4YVBVRXVSSE43WGI5Ykx3KzlUSHd5T1hVaE91aXpG?=
 =?utf-8?B?WUtGZFFMdEE3ZzJzTkNWbmdBVzFPdDdEMGNibXVFZzJibEQwTW5kNGJqYkNo?=
 =?utf-8?B?aWU1SWJFRWpBU1o1Wm5xaGh1Q3daMW1abmZod0d3NUwrVzk1K2M1dktLRHNL?=
 =?utf-8?B?RzVrc1BUaDdicXhGQ2diMUJ1cmlmWTZMdEpGZ2RqYzZRUkxlVjY1YmdJaUNN?=
 =?utf-8?B?RTNwYXo5eWFjZlRLWmc2WTQxSmV6eUU0MEM2L0JjZ1l5NVVBVWYyVjlLQzRy?=
 =?utf-8?B?SkRmaTBNK0swem9DOForQ25kWVdtWFh6V0hjNTFLWXB6bTREUi9oTlpwOXZk?=
 =?utf-8?B?ZEgwN3FCNngyWC9XbWNzRFRvRitZUUVRRDZ6Z3c5a2cybXNxa1ZYYUdvSUUr?=
 =?utf-8?B?YS9LL2orNGFhUU5oSXozbjJUbFN2TEVBc2VTQkxDMFZyREZFY2hMakllUzlo?=
 =?utf-8?B?by92SmVaQWFqQlNRVFdCVDl6YVQrWHUyMHdVa2xVb3hySDNaRllVTkVWTytw?=
 =?utf-8?B?eGhSWFJYeUM5ZW5VRkpGaGZvZTV1amxHSVlWdkFwek8xQTlJeGF1cVc1eTlj?=
 =?utf-8?B?RFpTUW8yTTBneHFJTUVtSkhsM2pNdUtPejhOVjVsWjgzTjlTaWsreUtZWHB6?=
 =?utf-8?B?emRCQWZCNWdoR1lBblI2SzBqaVlHWng5bC9RT3ZQWE16MFFwR0JiYzNRU1F6?=
 =?utf-8?B?ZGpIV3Z6YzlIWjNFbDZ0SUNXOEMrUkVuMkUzSVBlN0FRWFpBU29JR0hMMVkz?=
 =?utf-8?B?bWJzR1YyNTdURHFUeVdCZWV0WWorekpPMngzb2NXekYrNzlobDhCbHNWSVpy?=
 =?utf-8?B?bmw5d1Nocjg0TDFGb0dqWStna0ZUUTRWcXNEU2p6Z3Z5SU5xMHBSQm1tS1Zq?=
 =?utf-8?B?NHBQbFhjbkxwblg4Qk41Y0IwVnp6VnoybFFhRFQxc2RSR0s1bDgrbEJBcW5S?=
 =?utf-8?B?V1A5WlRHdm11Q2VPT0JML0NXQzZCRC9aUUQySDN0TTRTWDR1enlGT0dXTnlw?=
 =?utf-8?B?MW5YUU5sZjd4QlZMTTNTcU5vdHRmZDBNeHk2QTlUTXhpZzZhUTN3R2oyakJR?=
 =?utf-8?B?bk4vMWFtbExtUWZ1QnQwemJVUlkvTGQxRFk3cEZ2Zm53R2tGWFVQUU5mMnRL?=
 =?utf-8?B?OW5SOU94aW9vWnN5NDE5SDFHMXdpUUs1UWg3eHQ5NzZTcnJ4QmlYVC83R01m?=
 =?utf-8?B?bWs5Y2tQb3ZWS1ZxSmJNQTlpYXRxNFA2QWpqSkpiRGQ5Z3oxcjFjQks3bGVC?=
 =?utf-8?B?T0hKcWRUb2wxWGRlRkJXbWZxU2hIay8yeVM1RmlOQUtpaDFqZE9qcTY3VG5r?=
 =?utf-8?B?b3V3NmlMNEtkRU8wcnYwNEc4MFZDdE9xclVGbGh3djFjME5wclZHajh0NzBW?=
 =?utf-8?B?LzBmcm9lbWN5Yk41Zmhqdmp1ZzJ2Vks0MGpIMHlBd080Vmh1OGtaQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d92cea6-3190-407f-e1f5-08de67f217bd
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 15:44:21.3628
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vFIqT65/kv/z4ghKKDYzzZ4JX5QWEU1iZOhdkMBlizStuJ1B/uzRht2cKSNxGnvELDzZw3tU5dBzFSR8AMG+Gw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5235

On Mon, Feb 09, 2026 at 11:31:15AM +0100, Alejandro Vallejo wrote:
> Creates a CONFIG_LOG_DIRTY Kconfig option with the following effects
> when disabled:
> 
>   * paging_domctl{,_cont} return -EOPNOTSUPP (XEN_DOMCTL_shadow_op).
>   * VRAM tracking via DMOP returns EOPNOTSUPP.
> 
> And compiles out all log-dirty tracking infra.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> RFC for the Kconfig help message.
> ---
>  xen/arch/x86/Kconfig              |  9 +++++++++
>  xen/arch/x86/domctl.c             |  8 ++++----
>  xen/arch/x86/hvm/dm.c             |  3 +++
>  xen/arch/x86/include/asm/domain.h |  2 ++
>  xen/arch/x86/include/asm/p2m.h    |  2 ++
>  xen/arch/x86/include/asm/paging.h |  8 +++-----
>  xen/arch/x86/mm/hap/hap.c         | 22 +++++++++++++---------
>  xen/arch/x86/mm/p2m.c             |  2 ++
>  xen/arch/x86/mm/paging.c          |  2 ++
>  xen/include/hypercall-defs.c      |  4 ++--
>  10 files changed, 42 insertions(+), 20 deletions(-)
> 
> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
> index 61f58aa829..fbf044aa4d 100644
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -146,6 +146,7 @@ config XEN_IBT
>  config SHADOW_PAGING
>  	bool "Shadow Paging"
>  	default !PV_SHIM_EXCLUSIVE
> +	select LOG_DIRTY

I think I'm missing something, why this dependency of shadow on log
dirty?  Isn't HAP equally dependent on it?

Oh, I see, You adjust HAP code to deal with the !CONFIG_LOG_DIRTY
scenario, but not the SHADOW counterpart, that still has a hard
dependency on LOG_DIRTY being enabled.

>  	depends on PV || HVM
>  	help
>  
> @@ -166,6 +167,14 @@ config SHADOW_PAGING
>  config PAGING
>  	def_bool HVM || SHADOW_PAGING
>  
> +config LOG_DIRTY
> +	bool "Log-dirty page tracking" if EXPERT
> +	depends on PAGING
> +	default !PV_SHIM_EXCLUSIVE
> +	help
> +	  Enable log-dirty infrastructure so Xen can track domain memory writes and
> +	  the dirty state of VRAM for device models and live migrations.
> +
>  config BIGMEM
>  	bool "big memory support"
>  	default n
> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index d9521808dc..61d43a21d0 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -220,15 +220,15 @@ long arch_do_domctl(
>      {
>  
>      case XEN_DOMCTL_shadow_op:
> -#ifdef CONFIG_PAGING
> +        ret = -EOPNOTSUPP;
> +        if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
> +            break;
> +
>          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:
> diff --git a/xen/arch/x86/hvm/dm.c b/xen/arch/x86/hvm/dm.c
> index 3b53471af0..94216aecc2 100644
> --- a/xen/arch/x86/hvm/dm.c
> +++ b/xen/arch/x86/hvm/dm.c
> @@ -48,6 +48,9 @@ static int track_dirty_vram(struct domain *d, xen_pfn_t first_pfn,
>                              unsigned int nr_frames,
>                              const struct xen_dm_op_buf *buf)
>  {
> +    if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
> +        return -EOPNOTSUPP;
> +
>      if ( nr_frames > (GB(1) >> PAGE_SHIFT) )
>          return -EINVAL;
>  
> diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
> index 94b0cf7f1d..f09c13909f 100644
> --- a/xen/arch/x86/include/asm/domain.h
> +++ b/xen/arch/x86/include/asm/domain.h
> @@ -226,7 +226,9 @@ struct paging_domain {
>      unsigned int            p2m_pages;    /* number of pages allocated to p2m */
>  
>      /* log dirty support */
> +#ifdef CONFIG_LOG_DIRTY
>      struct log_dirty_domain log_dirty;
> +#endif /* CONFIG_LOG_DIRTY */

Can also ifdef out the declaration of the log_dirty_domain struct, and
just provide a forward pointer declaration for it?  Would that satisfy
the paging_log_dirty_init() prototype?  Hm, I guess that won't work
with the usage in hap_domain_init().

>      /* preemption handling */
>      struct {
> diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
> index 9016e88411..3c2dcacfa5 100644
> --- a/xen/arch/x86/include/asm/p2m.h
> +++ b/xen/arch/x86/include/asm/p2m.h
> @@ -253,9 +253,11 @@ struct p2m_domain {
>                                      bool *sve);
>      int                (*recalc)(struct p2m_domain *p2m,
>                                   unsigned long gfn);
> +#ifdef CONFIG_LOG_DIRTY
>      void               (*enable_hardware_log_dirty)(struct p2m_domain *p2m);
>      void               (*disable_hardware_log_dirty)(struct p2m_domain *p2m);
>      void               (*flush_hardware_cached_dirty)(struct p2m_domain *p2m);
> +#endif /* CONFIG_LOG_DIRTY */

Will this build when VMX is enabled?  I think it's missing an
adjustment to ept_p2m_init() to not initialize those fields if
!CONFIG_LOG_DIRTY.

>      void               (*change_entry_type_global)(struct p2m_domain *p2m,
>                                                     p2m_type_t ot,
>                                                     p2m_type_t nt);
> diff --git a/xen/arch/x86/include/asm/paging.h b/xen/arch/x86/include/asm/paging.h
> index 291ab386e8..980cdfa455 100644
> --- a/xen/arch/x86/include/asm/paging.h
> +++ b/xen/arch/x86/include/asm/paging.h
> @@ -55,12 +55,9 @@
>  #define PG_translate   0
>  #define PG_external    0
>  #endif
> -#if defined(CONFIG_PAGING) && !defined(CONFIG_PV_SHIM_EXCLUSIVE)
>  /* Enable log dirty mode */
> -#define PG_log_dirty   (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
> -#else
> -#define PG_log_dirty   0
> -#endif
> +#define PG_log_dirty   IS_ENABLED(CONFIG_LOG_DIRTY) * \
> +                       (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)

You want an extra set of parentheses around this define I think, just
in case.

Quite a lot of the code is also protected using #if PG_log_dirty.  I
think if you introduce a CONFIG_LOG_DIRTY it would best to also guard
the logdirty code using that new define, so it's consistent (iow:
replace `#if PG_log_dirty` and similar usages).

>  
>  /* All paging modes. */
>  #define PG_MASK (PG_refcounts | PG_log_dirty | PG_translate | PG_external)
> @@ -174,6 +171,7 @@ static inline void paging_log_dirty_init(struct domain *d,
>                                           const struct log_dirty_ops *ops) {}
>  static inline void paging_mark_dirty(struct domain *d, mfn_t gmfn) {}
>  static inline void paging_mark_pfn_dirty(struct domain *d, pfn_t pfn) {}
> +static inline void paging_mark_pfn_clean(struct domain *d, pfn_t pfn) {}
>  static inline bool paging_mfn_is_dirty(struct domain *d, mfn_t gmfn) { return false; }
>  
>  #endif /* PG_log_dirty */
> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
> index a337752bf4..21672db011 100644
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -50,7 +50,7 @@ struct hap_dirty_vram {
>   * calling p2m_log_dirty_range(), which interrogates each vram
>   * page's p2m type looking for pages that have been made writable.
>   */
> -
> +#ifdef CONFIG_LOG_DIRTY

Nit: I would leave the newline as-is.

>  int hap_track_dirty_vram(struct domain *d,
>                           unsigned long begin_pfn,
>                           unsigned int nr_frames,
> @@ -161,6 +161,7 @@ out:
>  
>      return rc;
>  }
> +#endif /* CONFIG_LOG_DIRTY */
>  
>  /************************************************/
>  /*            HAP LOG DIRTY SUPPORT             */
> @@ -440,14 +441,17 @@ 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 = {
> -        .enable  = hap_enable_log_dirty,
> -        .disable = hap_disable_log_dirty,
> -        .clean   = hap_clean_dirty_bitmap,
> -    };
> -
> -    /* Use HAP logdirty mechanism. */
> -    paging_log_dirty_init(d, &hap_ops);
> +    if ( IS_ENABLED(CONFIG_LOG_DIRTY) )
> +    {
> +        static const struct log_dirty_ops hap_ops = {
> +            .enable  = hap_enable_log_dirty,
> +            .disable = hap_disable_log_dirty,
> +            .clean   = hap_clean_dirty_bitmap,
> +        };
> +
> +        /* Use HAP logdirty mechanism. */
> +        paging_log_dirty_init(d, &hap_ops);
> +    }
>  
>      d->arch.paging.update_paging_modes = hap_update_paging_modes;
>      d->arch.paging.flush_tlb           = flush_tlb;
> diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c
> index e915da26a8..373382c28c 100644
> --- a/xen/arch/x86/mm/p2m.c
> +++ b/xen/arch/x86/mm/p2m.c
> @@ -236,6 +236,7 @@ struct ioreq_server *p2m_get_ioreq_server(struct domain *d,
>      return s;
>  }
>  
> +#ifdef CONFIG_LOG_DIRTY
>  void p2m_enable_hardware_log_dirty(struct domain *d)
>  {
>      struct p2m_domain *p2m = p2m_get_hostp2m(d);
> @@ -263,6 +264,7 @@ void p2m_flush_hardware_cached_dirty(struct domain *d)
>          p2m_unlock(p2m);
>      }
>  }
> +#endif /* CONFIG_LOG_DIRTY */
>  
>  /*
>   * Force a synchronous P2M TLB flush if a deferred flush is pending.
> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
> index 2396f81ad5..13ee137db9 100644
> --- a/xen/arch/x86/mm/paging.c
> +++ b/xen/arch/x86/mm/paging.c
> @@ -623,10 +623,12 @@ int paging_domain_init(struct domain *d)
>      INIT_PAGE_LIST_HEAD(&d->arch.paging.freelist);
>      mm_lock_init(&d->arch.paging.lock);
>  
> +#ifdef CONFIG_LOG_DIRTY
>      /* This must be initialized separately from the rest of the
>       * log-dirty init code as that can be called more than once and we
>       * don't want to leak any active log-dirty bitmaps */
>      d->arch.paging.log_dirty.top = INVALID_MFN;
> +#endif /* CONFIG_LOG_DIRTY */

Could you possibly init this field from paging_log_dirty_init()?  As
to avoid having more ifdef churn in paging_domain_init().

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:56:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225642.1532195 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTcM-0006w8-PY; Mon, 09 Feb 2026 15:56:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225642.1532195; Mon, 09 Feb 2026 15: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 1vpTcM-0006w1-Mg; Mon, 09 Feb 2026 15:56:06 +0000
Received: by outflank-mailman (input) for mailman id 1225642;
 Mon, 09 Feb 2026 15:56: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpTcL-0006pv-BF
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:56:05 +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 d2414cf1-05cf-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:55:57 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-43767807da6so1130155f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 07:55:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376686130csm15300743f8f.1.2026.02.09.07.55.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 07:55:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2414cf1-05cf-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770652556; x=1771257356; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ugHtA7YKc9LJ7RGzKYW0Zgvr6ImA0BoAmJxsXtSlv2s=;
        b=B6v4dk5NW6mmvMUhcnzIGSfuNozO5QD7gubr5XIoaSQ96/DJjiJVmDLLf5Nc6NC8M4
         1lfpGX/gAGJ1tlnWbSsONDuOuk88Fq0FBtem5pBm8h6XehjWdlxniYKbdko15V1m39OW
         ukO6+9834VJnp2AtrdvanzeLpGSwN+elfuO5tTGjSso/xUu1hPNKernllL4V6qi+IwyE
         hYtYk/Zce+5XBQPN4k2NoACJzL5N9rlgz5Pa5+8jf+cRScUix2Is1RDabpr8sLSXZwbk
         YIbrlNEuuqYAJ7NJRBErq4OUB8v1PwqgdsnJfnHUROAGGxTfHEaHZmMwdqQuhW0F3ICg
         6PCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770652556; x=1771257356;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ugHtA7YKc9LJ7RGzKYW0Zgvr6ImA0BoAmJxsXtSlv2s=;
        b=eFd4VmWsaMzj5RVJXUUz/gCmU8+Zd+psYj8wqqOHAp+nxSXJ9y+tPnJqbZtglhBRhe
         0ZYyKstYD6UCydXM/rHaCeVBejT7LKBL8B2pOra+x2TPKLSqmtzrQIHUUYKrna5OTV0N
         tWGDb1VeSYSHlMyHYfPqGhPf6O5PX1ZzQKWYkDluCIQB/TSfBf2TMl8ymS90Rg3J7RK1
         YGaZDq+W89hL5Y3MZI7Qf5ulw31os+GbkQZFefIYCCybQr2+i1zPwqCKqb8C0Tjsal//
         +/bcN4KT4Vn231KMcqWeyFMhPLYnUmhjUkNc0aspek5YISWK0VCOH5L2ZSWzaExRQJH2
         z2kQ==
X-Forwarded-Encrypted: i=1; AJvYcCU0sfdkGzWy10Anl8Q86jJe48jBXvjsCV40OHlR918nEIf5T1i8NVeksdjihDmmHZbch8m8R8FT3IA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzECykaaK6xcdQGrRlIBqeLSbNG2nwWRlBylL6amIpQ9OCX0v+Q
	HlOLxJaC112eP86kOvsJJF6Rx7s+MrmkaYIFo4nQDJ2yGwxGz0AcDtDIIb3YCYgs4A==
X-Gm-Gg: AZuq6aLKT4DSP5XcfxQi9uxsspyNR8TTyKGkqfx93gdoy/CNGVRV3eF9r51cKck8O7t
	PnKcO+sNo9BLZ5pF/Nm5GCjbbIX7qkHystPTqbot7oJbCRTwGCvy4ItNEC7XxhkKGS18qQ9t5en
	b8Vmtq0f/yL6G7WAt/z3yPf5390TcJmgo7VtZKudWbO7fw218n6BNiZUPVbOPfegSURn3ll5tEZ
	duIvI0lIbUJiyU1NvYXhYaI+g5bMtDw8UIdDLlZMimDESkdbjJ67PmDKeKwQCawHkxpEgudmmRJ
	4BS+PKGWDorJMTELXidqJ1pjXxpYkRMLSunyEo1sX5kL50f0m5mhXX6mszXYEnkATcyGX7h9OmJ
	m5GTy9eXKU+hFHA+CjYV+ltf6ZpDXiuXu8v79/U8jJeGQxcGbafEQkKjqwZ25n1Yv7dWaw39kOk
	hd6BKM0gU17LiT/waBUbcts1iaZJ0PL9dUYNgU/iIgzQUNajzUOOswdOKLW9Vy+VyxM/Tu7IUNQ
	tolGyyrV7/iIQ==
X-Received: by 2002:a05:6000:2503:b0:437:6b73:ffb1 with SMTP id ffacd0b85a97d-4376b7404dcmr7022383f8f.30.1770652556328;
        Mon, 09 Feb 2026 07:55:56 -0800 (PST)
Message-ID: <1c33beef-f638-4e62-b38a-8b79575adf18@suse.com>
Date: Mon, 9 Feb 2026 16:55:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Add Kconfig option for log-dirty tracking
To: Alejandro Vallejo <alejandro.garciavallejo@amd.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
References: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
 <c5a9075b-6ed0-4778-b3ad-fe6647dad8b7@suse.com>
 <DGAJ9XN03HPS.TC0OLO5PJN6H@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: <DGAJ9XN03HPS.TC0OLO5PJN6H@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 16:24, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 3:48 PM CET, Jan Beulich wrote:
>> On 09.02.2026 11:31, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/Kconfig
>>> +++ b/xen/arch/x86/Kconfig
>>> @@ -146,6 +146,7 @@ config XEN_IBT
>>>  config SHADOW_PAGING
>>>  	bool "Shadow Paging"
>>>  	default !PV_SHIM_EXCLUSIVE
>>> +	select LOG_DIRTY
>>>  	depends on PV || HVM
>>>  	help
>>
>> Why would this be? IOW why would shadow imply log-dirty, but HAP wouldn't?
> 
> The logic is rather opaque. I admit I'm a bit fuzzy on the uses of logdirty.
> 
> I know what it's for and I could navigate the code if a problem arose, but I'm
> less clear about which other elements of the hypervisor rely on it (pod? nsvm?
> vvmx? shadow? hap?).
> 
> If it's strictly toolstack/DM-driven maybe it'd be more apt to have a separate
> LIVE_MIGRATION and SAVE_RESTORE configs where LM selects SAVE_RESTORE, which
> selects LOG_DIRTY. That's also improve some defaults auto-downgraded from the
> max policy just in case a VM is migrated.

It's save (not restore) for both PV and HVM, and VRAM dirty tracking for HVM
only. Ordinary HVM guests will want VRAM tracking, so compiling out support
for it will imo want mentioning in the Kconfig help text.

>>> --- a/xen/arch/x86/domctl.c
>>> +++ b/xen/arch/x86/domctl.c
>>> @@ -220,15 +220,15 @@ long arch_do_domctl(
>>>      {
>>>  
>>>      case XEN_DOMCTL_shadow_op:
>>> -#ifdef CONFIG_PAGING
>>> +        ret = -EOPNOTSUPP;
>>> +        if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
>>> +            break;
>>> +
>>>          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;
>>
>> Can a HVM-only hypervisor create any guests with this? I simply fail to
>> see how XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION would then make it through to
>> hap_domctl().
> 
> xl doesn't seem to call it at all. hap_set_allocation() is implicitly called
> through paging_enable() -> hap_enable() -> hap_set_allocation()

xl must be calling it, at least in the case where the paging pool size is
explicitly set in the guest config. The important point is - not all of
XEN_DOMCTL_shadow_op's sub-ops are log-dirty related.

It's also odd that you did make changes at the call site here, but then
left the called function (and its sibling paging_domctl_cont()) in place.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:56:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225641.1532187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTcK-0006iZ-KE; Mon, 09 Feb 2026 15:56:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225641.1532187; Mon, 09 Feb 2026 15: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 1vpTcK-0006iS-Fm; Mon, 09 Feb 2026 15:56:04 +0000
Received: by outflank-mailman (input) for mailman id 1225641;
 Mon, 09 Feb 2026 15:56: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpTcJ-0006iM-Gl
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:56:03 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d26b1d8e-05cf-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 16:55:58 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH8PR03MB8299.namprd03.prod.outlook.com (2603:10b6:610:2b9::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.11; Mon, 9 Feb
 2026 15:55:55 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 15:55: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: d26b1d8e-05cf-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UBznJWuB3bZr3MC8jsZtGvwAmvXIsFcyYYYEIIqlLxgiHoXdN79Tf0BV8nJPh4TvPGLk0KD8MHB9SZcePfTpu9sFV3qCfoaFE36LysLCygwPICzrhnEFenEN5e2FC/vrGL/TDp2BL1Q6VQDEYS/cWZls9vJlvYDi94q+VBH5Kd8L77bQ+bzaeVuKLh5K2KwPaiBZyT5XKntNCOfgZVbUglVrhXcYvrQvMRg3XnCy6crAuL5o2mKIrHnynVtSRkQ4/wO2BX6uv34G93y+h318kUQ06hG7h4A+9WFzmuEYfRKtSNM4cFrItPWLV5ibCNZQBNnANJBTEM/CR0zDJVegOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DUmUtqrFJl+6Lblsrb1Y7o/JDSK7vz8OWMK0YmbnBGo=;
 b=DXR1Rk3loJPjsqvBHUbBdeX/w+iKtnzLzAkmZpdTSR56hYS1Nbpr1YZEegr2dW5THAX5iu+IQYwdi82tY8LMI5qP6cocUFvYUe7QMOGbwFHdNFDp4VdYg6H781jj9PjbegCQbiezBtnVhGZDZdLzQRNTIEGduAasPBUDovX/KFxbq/nuuPDrGxeE6xmwY3b2GrYZmMGsk2AXtcAhYuDsTm5LIzNx45S/LejgjJXa1jRpwxGSh913wHG9W33qg1oqly1cR4wbYIRN2cl9/Qpx2nf+UEKc1U5EwLIISF7zRUULgZxIz0FY+ZfS4ZdWUJw8lu7B3BfmbC44ZQHALOf2Bw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DUmUtqrFJl+6Lblsrb1Y7o/JDSK7vz8OWMK0YmbnBGo=;
 b=pVmPFg5JynuJkHyZNp8FWo7DNjEI8OhLJglfo5uSU0rhUZI4RnYpeMnNymyhepyOseeHMBt6mI5AXg9tLm/ujmKWAAtk70kXeU+1Y0FfjaAS7vCAxgYdlhQeJCUcp2OCzSGq/30K1wpYIPRfDYY3RBgT0HSPFaTG1QNanvRoJSM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 16:55:52 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
Message-ID: <aYoDiDiJ4rRLxhmw@Mac.lan>
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <aYnyY2MArv4vTXsY@Mac.lan>
 <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
X-ClientProxiedBy: MA2P292CA0016.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::14)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH8PR03MB8299:EE_
X-MS-Office365-Filtering-Correlation-Id: 1c644381-f4e0-41d2-7205-08de67f3b548
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?clAzdTNqLy9QN2dvNEY5ZEc5ZlFTZFZmSmJGZFhOQmo2OCtwM3pkMXkrdUw5?=
 =?utf-8?B?NnRGQzBvbTlkaXQ4anVCQStDTm1yejVPZEZXdHpjdnpzSGt6UWxPS3ptY0Rz?=
 =?utf-8?B?UTR5MGd1MkdQQVh2SUVVeE1ibXNTVjR0ck1yUFVObzBVS2RvbUJsb1gxZVRp?=
 =?utf-8?B?UHVCbWg5bmxIT01UQnA4dGY0dmwzVVdkZ2RsRk9sMFNNRHBEOTUrU0xqODdn?=
 =?utf-8?B?TEdGeWRjQjkrRUpUdGlpci9zS3VJS0xKSkg0cjJEOXVqNTZLalF2cXZUWEEz?=
 =?utf-8?B?Y3U4NmZzdC9pbEtJWnBNMmhYMnhxdzZxM053OU0yUEtoVmxsMERSTXd6eWhh?=
 =?utf-8?B?a25veDh2ekZpejlQMnBnYzBXSFlMTVVZcyt2NCtTUjI3Q3ZRcGZnTmJXUjEz?=
 =?utf-8?B?bDRqQzJtclpkTHkvbnV5WnU0dEVCajRXejkzdHBMOEY3d0pmeTRPKy9oaFNw?=
 =?utf-8?B?RmVjUmJjRDhjaDJJcTFtR3F3Z2ZQSVIwOTJkYUkvdSsxTml2NTVIUHZmOFNB?=
 =?utf-8?B?dzZtSVYxNmFKUGQ4RnlZaG9xTDNmTWo0NFhuUFI4S1hhcVUzRjBGaXNTZnFZ?=
 =?utf-8?B?bFVkWHRRK1ZmYkQrOURUaFdQTGc1UHc1SmVwQVpnUE5MOUE5TDZOR2xzMStv?=
 =?utf-8?B?SXNYamxKODZmOExrRVU4SWJhQWNmdmRtRlNRZFY2TGVNdmxXbTVUS0dTTTNB?=
 =?utf-8?B?ekRZOCt6aDJtWnhNRkpWUzNyaXJwUDdQNjIrOEdQcVJPdTdrb1NUbXNaVFNH?=
 =?utf-8?B?d2dLeEJVZC9BeWNYNTlGZCsxZXF6RVViU1ZLbytyNWJBbVJtTE9WKyt6Zk0w?=
 =?utf-8?B?MlV3SnpUMHJ4OUtaZDlZMnZndjRycHBuelZrcHdZcmswNGRaMVNxelNGSmQ1?=
 =?utf-8?B?c25ZNHU3NFliOXVjcTc2anBvcXNLVDdUd3E2NkN6SUFvQ3lOUnM3QmZhQXUv?=
 =?utf-8?B?SW1jaWRNWlZxZVZBK3k5K2pPWnd2YmJYL1N5azdhVzg0aGw5cjEzd2loN05Y?=
 =?utf-8?B?ejJ1ajM1ajZCejNESW8wTmZ3VGRpTFJzdUVUOVc1Rmhxek5BeDg1ckttRFVE?=
 =?utf-8?B?amtuRnJaOHNWR2dtVVZoR2tHTWhCanBsMWVya1BvQzlMZUN0dTVyT3NhbTd6?=
 =?utf-8?B?S28zZXhzUEtxaG5rdFJ2b0tMMUhWM2FmSzZrckE1SDVkb2cxTFVlQ3A2bStj?=
 =?utf-8?B?bDY5UFFCWTBneUZLbE04S09YQVYzRmRCNE43ZGdib0lNTHAvdWY2VGRyMDBB?=
 =?utf-8?B?cS8yWWZaQzdBU0grRFRYVUJSK3h4Nkx4ajZUbDNHR1AzbEY0NGlKOEs1cHJD?=
 =?utf-8?B?RGx2Uk5kWGdNT3NEOTVkcnhMNWNqRnUwYXNPRURBdnZoZVBrRFFOWmhBV3po?=
 =?utf-8?B?bjVIellUNms3eDBvM0VycWd1UDZIOWxvWkxkcm5oaFN2VFhLd2p6RkZyOTNm?=
 =?utf-8?B?aUlEeVhxOVIrWmoveWs0ZHlJTTVOcm1tNkRhVVh3akcwWUxRckxKTEk5azRp?=
 =?utf-8?B?c2pSRXlUc1ZaYnJIeE9USnNDR05sYzRoRCswRHF5bUdvQ0JRMUhGMnVEeDVK?=
 =?utf-8?B?ajZEZDRIdlkzaW1ENklPRGZxVjBzc0JRd0tFWEdza0tqWjZLcGNyaUxPN3pF?=
 =?utf-8?B?NEdtU0NUK3NxL3g2VDEwYWxwY1ZRR0tXUXhYUjZWMmt0R3VjNFFzRnJhTmpY?=
 =?utf-8?B?WGJRcW5GdWlCUVhYZ2FMMmFHU3JDMHNVWGdZL3hyNk14ZVFqMGpIcHRNMDBN?=
 =?utf-8?B?OGFaRzJFdWJNWE5yTHRmYlBUZTNHY3RReU5PVTB1RllPZVdvTnd3WkJ0Znpk?=
 =?utf-8?B?MjVoYVN2c1Y0NzhVcUloRldTRmlQKzA1a2JOVDFPYTduVEk5bHlCLzlTMDFL?=
 =?utf-8?B?Qk9kRGoyVzhBR2FiNnRTV3QrdWlvYVc0OUNqL0ROOEk0czJoN0VZUSs4c2Zs?=
 =?utf-8?B?UFRzTU5RclBWNXMwY2pkNlJ4dy9VZURSa0JIWlkrcVVrcXFXakRvak9CRnBa?=
 =?utf-8?B?TGJhY3d0ckN3MDZRbHZNaEdkNDZjVmFoODZtTzJsUFJTc0hUcVNvQnpuNHhq?=
 =?utf-8?B?U1ltZTJpMjY2V1lqcGVrNlR4YVY1dWlrNHJEb2tDWmlwT3hzNEk0STBIN0FM?=
 =?utf-8?Q?DlGs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UTVmNmtEQjh2b1BiQXJFc1BxUk1ySHoxeHZuTHFZN1pEeFh6Q2ZBK2lLL0pN?=
 =?utf-8?B?YUR2R3BPRXpvNjYxbGZBVFhjditHQTMvbDdWQmpoNTVxbGh5aWV2U00zK3BK?=
 =?utf-8?B?cTJZL3RjdVBBT0orRjBNSFJ6dkNidnhJaDBleDg1OWkxMXlRZXhQNzM3REZD?=
 =?utf-8?B?aXd2TC9XRFI2SGwrQUx6czB6ekx2SG1BT3QxaEdHcFJsbXlmdGFOblFBWGxG?=
 =?utf-8?B?dVc5aFpQK1ovMUhtUWRaaUMralJ5ZmpIR1JVZm9hQVFVaHZkTWxhaDE0VEpL?=
 =?utf-8?B?bHRyaENwOUdrRkpDV1RSZVRVaVZSaWJVOTlNUllVUXdoZjV0WXN3OEtwNGFw?=
 =?utf-8?B?WFF3VGZEcm5mSG9iOTNzM3JackplK0NSazlBbXVJNGhpWXB0ZmdEcDlJTEpM?=
 =?utf-8?B?bnltaS82YXJETytDa2xQOVNmemp2VFVSdnlQbG83NkJoQ3VrT3hqY29jcWo4?=
 =?utf-8?B?aktMajFjY3VKaCthemlteHNQYU1YdkxsRjFocFNzM01XQUFXd2t3VjQ3RWpF?=
 =?utf-8?B?UTNrangyb1VqendrRkJNOVlKVGpGNWZBNWJ0M2lLOWI2bjhoMTE3VGczRk1i?=
 =?utf-8?B?TW5pZy93d2FlL3NncU9zMkUxcHdubVRzT1RJMWw5WTZIR1BxTVVWYUpRRGdj?=
 =?utf-8?B?NWhaYVJheEZvZFFrTTZ1cnlaOVJsVFhzMzB1UHRLY2VPandhVXJmbHFqQTky?=
 =?utf-8?B?Ukp4K2VuR1FEOW1VRllKRnA4Qm5BMHBnUnFYbFplTzRKUHRQcFZWeHNRZGVs?=
 =?utf-8?B?RkxPRWw5Z2ZxS3VOR3piSFRzdDBoZk9KRWNFMHhhYzJ0a1JYUlRjTUlMZitH?=
 =?utf-8?B?ZHdXUEtmcHd5NnJWc1dmeDdYMjdMTUVWN0RpTm8zREVONjZyM1ZOcVgyQjQ1?=
 =?utf-8?B?ZWh2VW1BUnZISXdycnVNKzVndlREYk9MeHdNZ1pVTzdocnlDODN5TnNwSC9U?=
 =?utf-8?B?a0FZMmlydXNjcTlzTDVLalViZDQrN21DNzJndGgzZCs0R2lRTDVDMzZYR0hZ?=
 =?utf-8?B?NzFXKzZ3S3ZJTnhrMjVSRUxWUXgxZlpiaS83T0Y3TDFKVzkxV0Q0ZHovUG1l?=
 =?utf-8?B?YmtjWXpXVCtyRElhdThmWnNBWTg5a0Zzb21iMXFjL1ZiOTlGUHlta25uaEw4?=
 =?utf-8?B?cnYrMHM4ajUvUTYrRHBQMWVlb2hqUVBhVkYweTJ1UCtKajgrelhVcVJtVC8z?=
 =?utf-8?B?U3ZGd0t1VFpyZTdVb2hzRGt6Q3B4OWxQOVg4U2VGSjJGSm9JWFNFT3Z6N0l2?=
 =?utf-8?B?em1Za1JxZmdzZkJ1U1hxb09KZ1FMNkNCL1ZvTHRGZTJrL0pEaldGSkhURXVT?=
 =?utf-8?B?YjN1MGZjeE1lcWZMdmhIUS90WHhFQTdXUGo0U25NTm9zZzJYV0RMQmhBVXVu?=
 =?utf-8?B?eFF1cWZENlpTTklWa091aiswRXhkd291UXVqdDBjU2dSbEllNEpPaHBEV0tC?=
 =?utf-8?B?VDJacVdNRHNYRFNETGFkNEpxRnllMWYvS1JFWUxjQ0svTURvamc4TFJYOFlz?=
 =?utf-8?B?ait3TkFjWVZScXZvSmd3ZWMrZks0V25zbzVrMHRURGNET2dxeUIvdnMvS3pE?=
 =?utf-8?B?b3pCTFE2RDJ4TUVRQjZXQ2pJL0hPTlJqYlRGb1FodHpIYVMxT0c1Nm9OeUtV?=
 =?utf-8?B?azNHOWxwbmNjTnlDTHlrS0FmcmwxUDRSTGE0NUp2eHQ3U2RWOWN3ZUQ5V2tM?=
 =?utf-8?B?Tm9Nb0V4WXBzQTkrZG9HMWdxaW5yNEFhN1RtUlN2QXVidmE3RHQ2d3I3VTNS?=
 =?utf-8?B?b0t1bGVxZWVIVDkxZ3lJbEhpZ1lYVWt4RS9KUlF1K1UwbXlrUW9WWTRCUGVF?=
 =?utf-8?B?ZTRubVJKcGdTRTAxcUdlayswTVd4d2EweXhtNW5YRVZMWEsraUtCcjQ5VzFt?=
 =?utf-8?B?VkRJUTdBTXMzYzhkRkZldFhrMWZXSEF0SHZwQUxMZDNYbTBFWjlwTlB3K3pa?=
 =?utf-8?B?eEF6YmJSK0xjK1Zhbkk4QUt3UkJhVjVldTVsTlRPdzc5SzRDOVhKc2RSZlVV?=
 =?utf-8?B?eXdNejh0a3NzbzM4S2JZS29BSFJzM3Z1NURqaEkwTE0wNjlBblhqQU5hWmM0?=
 =?utf-8?B?amU3SXljRk43RDRlTnJ2RE85VFJYcFBLY05pRmlJSDhZTE9QM0Jha09NSG5v?=
 =?utf-8?B?ZzNCUnJwRmlYekdaTGVFWGJvTC9yV3FCMDZDWnZWTzNkSUZxWW9Fb0ZOOGxP?=
 =?utf-8?B?NkhlTlJIeWpjM0dndi91Mm16U2VkZlUweElsZGNOQ0ZkbDNXK1FsQ29KR3hv?=
 =?utf-8?B?ZjI4THVpUUlaWnpPN09PV2JNTU5GY3pYWTlTY2VubEZqTzRVaHFldDBDM2dP?=
 =?utf-8?B?aDBtUG81UXdzS1FGWWhlOGFNUVR3YnkxNW1IOUYxcmxSYWlvVVhvZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c644381-f4e0-41d2-7205-08de67f3b548
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 15:55:55.2850
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: iX12jkt2lcL90StL+iLRgjHcGjRQKGelXaE1b7YWJlDDBtGswurO3+g7ywO+FCF6w3FtErgnW7ONL4aEHNH1wA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8299

On Mon, Feb 09, 2026 at 04:35:04PM +0100, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monné wrote:
> > On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
> >> It only has 2 callers, both of which can be conditionally removed.
> >> 
> >> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >> ---
> >> I'd be ok conditionalising the else branch on...
> >> 
> >>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
> >> 
> >> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@amd.com
> >> 
> >> ... to avoid the danger of stale pointers, with required changes elsewhere so
> >> none.c is only compiled out in that case.
> >> 
> >> I'm not sure how much it matters seeing how they are all unreachable.
> >> ---
> >>  xen/arch/x86/mm/Makefile        |  2 +-
> >>  xen/arch/x86/mm/paging.c        |  4 +-
> >>  xen/arch/x86/mm/shadow/Makefile |  4 --
> >>  xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
> >>  4 files changed, 3 insertions(+), 84 deletions(-)
> >>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
> >> 
> >> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> >> index 960f6e8409..066c4caff3 100644
> >> --- a/xen/arch/x86/mm/Makefile
> >> +++ b/xen/arch/x86/mm/Makefile
> >> @@ -1,4 +1,4 @@
> >> -obj-y += shadow/
> >> +obj-$(CONFIG_SHADOW_PAGING) += shadow/
> >>  obj-$(CONFIG_HVM) += hap/
> >>  
> >>  obj-$(CONFIG_ALTP2M) += altp2m.o
> >> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
> >> index 2396f81ad5..5f70254cec 100644
> >> --- a/xen/arch/x86/mm/paging.c
> >> +++ b/xen/arch/x86/mm/paging.c
> >> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
> >>       */
> >>      if ( hap_enabled(d) )
> >>          hap_domain_init(d);
> >> -    else
> >> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
> >>          rc = shadow_domain_init(d);
> >
> > If you want to go this route you will need to set rc = -EOPNOTSUPP;
> > prior to the `if ... else if` on the HVM case.
> 
> Maybe this instead
> 
>     else
>         rc = IS_ENABLED(PV) ? shadow_domain_init(d) : -EOPNOTSUPP;

But even for the PV case we cannot call shadow_domain_init() if shadow
is compiled out?  I think you want:

    if ( hap_enabled(d) )
        hap_domain_init(d);
    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
        rc = shadow_domain_init(d);
    else
        rc = is_hvm_domain(d) ? -EOPNOTSUPP : 0;

> And gate none.c on PV && !SHADOW_PAGING, which seems to be the only use.
> 
> It's a lot easier to see the safety on the HVM-only case, particularly with...
> 
> > is compiled out, and the toolstack has not specified the HAP flag at
> > domain creation you will end up with a domain that doesn't have the
> > paging operations initialized as paging_domain_init() would return 0
> > with neither HAP nor shadow having been setup.  That's likely to
> > trigger NULL pointer dereferences inside of Xen.
> >
> > Also, seeing the code in arch_sanitise_domain_config() we possibly
> > want to return an error at that point if toolstack attempts to create
> > an HVM guest without HAP enabled, and shadow is build time disabled.
> > I've sent a patch to that end.
> 
> ... this patch you meantion. Thanks.
> 
> I'm guessing it's still a hot potato in for non-shadow PV, which strongly hints
> at our being better off leaving it in that case. On HVM-only configurations it
> seems rather silly.

I'm not sure I follow exactly what you mean.  Some rants below which
might or might not be along the lines of what you suggest.

PV needs shadow for migration.  HVM can use shadow or HAP, and our
default is HAP.  For HVM only builds it could be possible to not
recommend enabling shadow.  Even for deployments where only dom0 is
using PV mode, it does still make sense to possible recommend not
enabling shadow for attack surface reduction.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 15:59:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 15:59:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225652.1532206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTfM-0007vg-82; Mon, 09 Feb 2026 15:59:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225652.1532206; Mon, 09 Feb 2026 15:59:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTfM-0007vZ-4K; Mon, 09 Feb 2026 15:59:12 +0000
Received: by outflank-mailman (input) for mailman id 1225652;
 Mon, 09 Feb 2026 15:59: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=8Y/H=AN=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vpTfK-0007vT-M9
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 15:59:10 +0000
Received: from mail-oa1-x33.google.com (mail-oa1-x33.google.com
 [2001:4860:4864:20::33])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3fb9b7fd-05d0-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 16:59:01 +0100 (CET)
Received: by mail-oa1-x33.google.com with SMTP id
 586e51a60fabf-409470ad5bbso1090178fac.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 07:59:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fb9b7fd-05d0-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770652740; cv=none;
        d=google.com; s=arc-20240605;
        b=cyVKPXdEdRmzombBCoPJcwFJrnpWkUru4dciuEkuYJHeG2ZSBORCu5gX4ithBTwppS
         FOf/yPBRe7JuZp9TIB7DE8uRw1zfAkM5Dq/YftAeEDMOHC5XRWpdfeB/YJXNZTAZDhFg
         gF2BAOKZIzvEbhm5zRNg+niM9wokohktMmNs3JG4rhAQNIoNY2ANdzcFuUdh41uQ7uko
         0hEsDsSoy1nXKJPYzzi+vpeJtUjuKqvAM4XAYQs9FjN4JFSJhtjH8POlgEAHcGXqKKXq
         /tOPE43CW5e3dIz5bdFA8qKC7I/kWyCfeILwxxOgxf5UD6jaOI4D6w/wJ+WTyl5gcQc2
         eTwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=cSa/Wv7wZ4Hlv0Oe1UZ8HrxPfw35imhD2B4tJvjAK6U=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=KrhpBrIay2DDr7uU8c5JXJmTu/4lqKgtH6+e92F0GdxTaYzT3+Cbf8mCX0nFOE827p
         0OUV1Btl3nEgE0q9LuJL8Qjp0etmkG5RXoXix+M/2FA4HhkYTXN6vKTTMoXf2Yim94o7
         lex19Ozq0E1NhJIT2aFpR3AHgvZjXLyn0gf4JIP0NC3KCFlh8Y9pcH1R4HiUGiyAOxf0
         ik0t3vXdXN3Gmx3iHgFVnhF1Jyd+RxtVGzhCmDJsvsxNNcL8Cw+Wh0nWROflz1tTAn2i
         Y+MNp0190iClJAofALXam3zGAwTI3XeEOyQnfkNaIbLqikhoEsXs6fzmd0Nvgl5mP7BV
         olZA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770652740; x=1771257540; 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=cSa/Wv7wZ4Hlv0Oe1UZ8HrxPfw35imhD2B4tJvjAK6U=;
        b=eXIIqx1gNADwmoComEbjP1gGZgWLIDsMV8uXnfyc0KFvQYO4BEGZ+sFt5Crq6By3r9
         wAwfQ3c7rE6EBCedQe/xuLpJJwxyUZKE1LzG/NFwOw25PNO/UWNCPBDWPmgN0j089oEI
         Hb244mxlFYYp3l+VQj7G8KffjLzwqQFFHT5Z8NgFYh5C7jSZ9xiyPFcClUPhymTNcYIn
         Yb8feJxmWBmRa29H8K2l5rC/BYRpLkq/Kfaa7bs8wqlK+sNB7Kqwf6zoagXjfn6qYCJ3
         iHzKeQdh+fegjWKFd1VfVAyyUtjTf284XncgYhew5I3/15xBqbYLW6uzKLlZYdvBzL2n
         BvXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770652740; x=1771257540;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=cSa/Wv7wZ4Hlv0Oe1UZ8HrxPfw35imhD2B4tJvjAK6U=;
        b=uKWgerMRb1dAERQI45D9OQMIQtXAPOXTHqfie6IXhS/lAO7L+eWE9TcXf5itkrOYa/
         eiuVcgUVnS/hzRSw9f99ec5SF+SY68x9Fpe8wYrJuXBoZDYKdgZd8WxyIm4K5hKQUp1w
         GQDu7cPNSEtVI1te6ct8pmbLacLjKP66QY3Gf/8OwDeRqeJp5MnQKYEx9jSRrmEiBYNn
         bHH3v0Qv7LuUioRDOfN3Xpk8TcJxHqt3iHjRcGX3uh2JSWqNGaoLGJz2i2q5j9KzR9gx
         jA2g5IvNgk4hJYFyNxqGMSL2tirVclm75vXbHtV2Ipp4uA11WXvzutVNCXQwGHyiKVop
         /5Dg==
X-Gm-Message-State: AOJu0YyMQ+lKayIIFyQNLsNzpQwOpsk21Pv0UmDK/X9d4fYCzRZz3YAk
	dkJJ4GtAkB109UHUz0+XAMnhRCFPJ3RqmMIS2i6a0rL2KdF3CZh4pYsaK0XfHHCnw9GT6rtR24u
	8xDmJWyQiH+n6oPnwrrnGYZY5ruYK8mLhahtjQ0zBfw==
X-Gm-Gg: AZuq6aIkIj6jf4D/9mg/8piv53YM+vNSAXiTezQQJE4C2qqCZdwTcCYYTOrwtusRVwx
	P+6MJe2LMi4mtlVGOTOeKOMWsPzlgshQfTCArBaG5K4frY5FOal+S3HtZlAIQSSt4sM2OgeGlkv
	LPGfY4LygsvGo6XMGJ9HFgR/xkrh3g+z9MP9OLlcYLSJ2GhunMBW8diFlq7N/xgrQj+DqLhGPjm
	zXxh6nLqXI4ZLWvmDwxJGdddgzd/X4h+twJU9mjLl643eYd0P6SaO2JPvqGsAabE+QRuNaj6mn0
	m7vuxWOCGdhD1tK3bjevpQX47A==
X-Received: by 2002:a05:6870:fb8f:b0:3ec:9c0c:283a with SMTP id
 586e51a60fabf-40a96cddaacmr6056897fac.24.1770652739582; Mon, 09 Feb 2026
 07:58:59 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <a8d316dbdbd00a7980c6d527038f9046bb895c69.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44HZ59JC2X1p0GWGN1TVAoGo9K1emVPrBQon4V0VT960YA@mail.gmail.com> <1A922065-D0DC-4930-806C-6C202B5A6957@arm.com>
In-Reply-To: <1A922065-D0DC-4930-806C-6C202B5A6957@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Mon, 9 Feb 2026 16:58:48 +0100
X-Gm-Features: AZwV_Qhc75scEaEIUlr-5KEopBKl8tD2-FV-XKlqVTAhyFrwLnljNOG3GWxGjn4
Message-ID: <CAHUa44E3zv0rNSv68vSkzzV7LQRfgHLq41YdOD5ZZXf+bhJoZQ@mail.gmail.com>
Subject: Re: [PATCH 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory access descriptors
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Mon, Feb 9, 2026 at 3:50=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 9 Feb 2026, at 11:57, Jens Wiklander <jens.wiklander@linaro.org> wro=
te:
> >
> > Hi Bertrand,
> >
> > On Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> FF-A 1.2 extends the endpoint memory access descriptor (EMAD) from
> >> 16 to 32 bytes, adding implementation-defined (IMPDEF) fields and
> >> reserved space. The MEM_SHARE path currently assumes the 1.1 EMAD
> >> size and rejects the 1.2 layout.
> >>
> >> Add FF-A 1.2 EMAD support to MEM_SHARE:
> >> - define ffa_mem_access_1_2 and store IMPDEF payload in ffa_shm_mem
> >> - emit 1.2 EMADs to the SPMC for FF-A 1.2 guests, forwarding IMPDEF
> >> - refactor header parsing into read_mem_transaction() for 1.0/1.1+
> >> - detect EMAD format by mem_access_size to allow 1.1 on 1.2 guests
> >>
> >> Functional impact: MEM_SHARE supports FF-A 1.2 EMADs.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa_shm.c | 108 +++++++++++++++++++++++++++++--------
> >> 1 file changed, 86 insertions(+), 22 deletions(-)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> >> index 4c0b45cde6ee..905a64e3db01 100644
> >> --- a/xen/arch/arm/tee/ffa_shm.c
> >> +++ b/xen/arch/arm/tee/ffa_shm.c
> >> @@ -30,6 +30,14 @@ struct ffa_mem_access {
> >>     uint64_t reserved;
> >> };
> >>
> >> +/* Endpoint memory access descriptor (FF-A 1.2) */
> >> +struct ffa_mem_access_1_2 {
> >> +    struct ffa_mem_access_perm access_perm;
> >> +    uint32_t region_offs;
> >> +    uint8_t impdef[16];
> >> +    uint8_t reserved[8];
> >> +};
> >> +
> >> /* Lend, donate or share memory transaction descriptor */
> >> struct ffa_mem_transaction_1_0 {
> >>     uint16_t sender_id;
> >> @@ -73,7 +81,7 @@ struct ffa_mem_transaction_1_1 {
> >> /*
> >>  * The parts needed from struct ffa_mem_transaction_1_0 or struct
> >>  * ffa_mem_transaction_1_1, used to provide an abstraction of differen=
ce in
> >> - * data structures between version 1.0 and 1.1. This is just an inter=
nal
> >> + * data structures between version 1.0 and 1.2. This is just an inter=
nal
> >>  * interface and can be changed without changing any ABI.
> >>  */
> >> struct ffa_mem_transaction_int {
> >> @@ -92,6 +100,8 @@ struct ffa_shm_mem {
> >>     uint16_t sender_id;
> >>     uint16_t ep_id;     /* endpoint, the one lending */
> >>     uint64_t handle;    /* FFA_HANDLE_INVALID if not set yet */
> >> +    /* Endpoint memory access descriptor IMPDEF value (FF-A 1.2). */
> >> +    uint64_t impdef[2];
> >>     unsigned int page_count;
> >>     struct page_info *pages[];
> >> };
> >> @@ -297,17 +307,21 @@ static void init_range(struct ffa_address_range =
*addr_range,
> >>  * This function uses the ffa_spmc tx buffer to transmit the memory tr=
ansaction
> >>  * descriptor.
> >>  */
> >> -static int share_shm(struct ffa_shm_mem *shm)
> >> +static int share_shm(struct ffa_shm_mem *shm, uint32_t ffa_vers)
> >> {
> >>     const uint32_t max_frag_len =3D FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZ=
E;
> >>     struct ffa_mem_access *mem_access_array;
> >> +    struct ffa_mem_access_1_2 *mem_access_array_1_2;
> >>     struct ffa_mem_transaction_1_1 *descr;
> >>     struct ffa_address_range *addr_range;
> >>     struct ffa_mem_region *region_descr;
> >> -    const unsigned int region_count =3D 1;
> >>     uint32_t frag_len;
> >>     uint32_t tot_len;
> >> +    uint32_t mem_access_size;
> >> +    uint32_t mem_access_offs;
> >> +    uint32_t region_offs;
> >>     paddr_t last_pa;
> >> +    uint32_t range_count;
> >>     unsigned int n;
> >>     paddr_t pa;
> >>     int32_t ret;
> >> @@ -326,16 +340,35 @@ static int share_shm(struct ffa_shm_mem *shm)
> >>     descr->handle =3D shm->handle;
> >>     descr->mem_reg_attr =3D FFA_NORMAL_MEM_REG_ATTR;
> >>     descr->mem_access_count =3D 1;
> >> -    descr->mem_access_size =3D sizeof(*mem_access_array);
> >> -    descr->mem_access_offs =3D MEM_ACCESS_OFFSET(0);
> >> +    if ( ffa_vers >=3D FFA_VERSION_1_2 )
> >> +        mem_access_size =3D sizeof(struct ffa_mem_access_1_2);
> >> +    else
> >> +        mem_access_size =3D sizeof(struct ffa_mem_access);
> >> +    mem_access_offs =3D sizeof(struct ffa_mem_transaction_1_1);
> >> +    region_offs =3D mem_access_offs + mem_access_size;
> >> +    descr->mem_access_size =3D mem_access_size;
> >> +    descr->mem_access_offs =3D mem_access_offs;
> >>
> >> -    mem_access_array =3D buf + descr->mem_access_offs;
> >> -    memset(mem_access_array, 0, sizeof(*mem_access_array));
> >> -    mem_access_array[0].access_perm.endpoint_id =3D shm->ep_id;
> >> -    mem_access_array[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> >> -    mem_access_array[0].region_offs =3D REGION_OFFSET(descr->mem_acce=
ss_count, 0);
> >> +    if ( ffa_vers >=3D FFA_VERSION_1_2 )
> >> +    {
> >> +        mem_access_array_1_2 =3D buf + mem_access_offs;
> >> +        memset(mem_access_array_1_2, 0, sizeof(*mem_access_array_1_2)=
);
> >> +        mem_access_array_1_2[0].access_perm.endpoint_id =3D shm->ep_i=
d;
> >> +        mem_access_array_1_2[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> >> +        mem_access_array_1_2[0].region_offs =3D region_offs;
> >> +        memcpy(mem_access_array_1_2[0].impdef, shm->impdef,
> >> +               sizeof(mem_access_array_1_2[0].impdef));
> >> +    }
> >> +    else
> >> +    {
> >> +        mem_access_array =3D buf + mem_access_offs;
> >> +        memset(mem_access_array, 0, sizeof(*mem_access_array));
> >> +        mem_access_array[0].access_perm.endpoint_id =3D shm->ep_id;
> >> +        mem_access_array[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> >> +        mem_access_array[0].region_offs =3D region_offs;
> >> +    }
> >>
> >> -    region_descr =3D buf + mem_access_array[0].region_offs;
> >> +    region_descr =3D buf + region_offs;
> >>     memset(region_descr, 0, sizeof(*region_descr));
> >>     region_descr->total_page_count =3D shm->page_count;
> >>
> >> @@ -349,8 +382,9 @@ static int share_shm(struct ffa_shm_mem *shm)
> >>         region_descr->address_range_count++;
> >>     }
> >>
> >> -    tot_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_cou=
nt,
> >> -                                region_descr->address_range_count);
> >
> > Please remove the unused ADDR_RANGE_OFFSET() macro and friends, as
> > they're no longer accurate.
>
> Very true, will remove them in v2.
>
> >
> >> +    range_count =3D region_descr->address_range_count;
> >> +    tot_len =3D region_offs + sizeof(*region_descr) +
> >> +              range_count * sizeof(struct ffa_address_range);
> >>     if ( tot_len > max_frag_len )
> >>     {
> >>         ret =3D FFA_RET_NOT_SUPPORTED;
> >> @@ -358,7 +392,7 @@ static int share_shm(struct ffa_shm_mem *shm)
> >>     }
> >>
> >>     addr_range =3D region_descr->address_range_array;
> >> -    frag_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_co=
unt, 1);
> >> +    frag_len =3D region_offs + sizeof(*region_descr) + sizeof(*addr_r=
ange);
> >>     last_pa =3D page_to_maddr(shm->pages[0]);
> >>     init_range(addr_range, last_pa);
> >>     for ( n =3D 1; n < shm->page_count; last_pa =3D pa, n++ )
> >> @@ -448,6 +482,12 @@ static int read_mem_transaction(uint32_t ffa_vers=
, const void *buf, size_t blen,
> >>     if ( size * count + offs > blen )
> >>         return FFA_RET_INVALID_PARAMETERS;
> >>
> >> +    if ( size < sizeof(struct ffa_mem_access) )
> >> +        return FFA_RET_INVALID_PARAMETERS;
> >
> > Implicitly, size should also be a multiple of 16. Don't you agree?
>
> The spec is giving some constraints on the offset but there is nothing ex=
plicit for the
> per mem access size. As we have no 64bit fields in it, I am not really se=
eing any
> implicit multiple of 16.

I was perhaps assuming too much. The offset is required to be a
multiple of 16, so it would make sense for all elements in the array
to be at a 16-byte aligned offset.

>
> I am checking the offset because it is enforced by the spec but for the s=
ize i would
> rather not put something as who knows what might be added in the future.

It's not important right now, since we only accept a single EMAD. But
once we accept more than one, the second EMAD might be accessed from
an unaligned address if we're not careful.

>
> >
> >> +
> >> +    if ( offs & 0xF )
> >> +        return FFA_RET_INVALID_PARAMETERS;
> >> +
> >>     trans->mem_reg_attr =3D mem_reg_attr;
> >>     trans->flags =3D flags;
> >>     trans->mem_access_size =3D size;
> >> @@ -464,7 +504,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *re=
gs)
> >>     uint64_t addr =3D get_user_reg(regs, 3);
> >>     uint32_t page_count =3D get_user_reg(regs, 4);
> >>     const struct ffa_mem_region *region_descr;
> >> -    const struct ffa_mem_access *mem_access;
> >> +    const struct ffa_mem_access_1_2 *mem_access;
> >>     struct ffa_mem_transaction_int trans;
> >>     struct domain *d =3D current->domain;
> >>     struct ffa_ctx *ctx =3D d->arch.tee;
> >> @@ -474,9 +514,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *r=
egs)
> >>     register_t handle_hi =3D 0;
> >>     register_t handle_lo =3D 0;
> >>     int ret =3D FFA_RET_DENIED;
> >> +    uint32_t ffa_vers;
> >>     uint32_t range_count;
> >>     uint32_t region_offs;
> >>     uint16_t dst_id;
> >> +    uint8_t perm;
> >> +    uint64_t impdef[2];
> >>
> >>     if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
> >>     {
> >> @@ -515,8 +558,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *re=
gs)
> >>     if ( frag_len > tx_size )
> >>         goto out_unlock;
> >>
> >> -    ret =3D read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), tx_buf=
,
> >> -                               frag_len, &trans);
> >> +    ffa_vers =3D ACCESS_ONCE(ctx->guest_vers);
> >> +    ret =3D read_mem_transaction(ffa_vers, tx_buf, frag_len, &trans);
> >>     if ( ret )
> >>         goto out_unlock;
> >>
> >> @@ -545,13 +588,35 @@ void ffa_handle_mem_share(struct cpu_user_regs *=
regs)
> >>         goto out_unlock;
> >>     }
> >>
> >> +    if ( trans.mem_access_size < sizeof(struct ffa_mem_access) )
> >> +    {
> >> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        goto out_unlock;
> >> +    }
> >> +
> >>     /* Check that it fits in the supplied data */
> >>     if ( trans.mem_access_offs + trans.mem_access_size > frag_len )
> >>         goto out_unlock;
> >>
> >>     mem_access =3D tx_buf + trans.mem_access_offs;
> >> -
> >>     dst_id =3D ACCESS_ONCE(mem_access->access_perm.endpoint_id);
> >> +    perm =3D ACCESS_ONCE(mem_access->access_perm.perm);
> >> +    region_offs =3D ACCESS_ONCE(mem_access->region_offs);
> >> +
> >> +    /*
> >> +     * FF-A 1.2 introduced an extended mem_access descriptor with imp=
def
> >> +     * fields, but guests can still use the 1.1 format if they don't =
need
> >> +     * implementation-defined data. Detect which format is used based=
 on
> >> +     * the mem_access_size field rather than the negotiated FF-A vers=
ion.
> >> +     */
> >> +    if ( trans.mem_access_size >=3D sizeof(struct ffa_mem_access_1_2)=
 )
> >> +        memcpy(impdef, mem_access->impdef, sizeof(impdef));
> >> +    else
> >> +    {
> >> +        impdef[0] =3D 0;
> >> +        impdef[1] =3D 0;
> >> +    }
> >> +
> >>     if ( !FFA_ID_IS_SECURE(dst_id) )
> >>     {
> >>         /* we do not support sharing with VMs */
> >> @@ -559,13 +624,11 @@ void ffa_handle_mem_share(struct cpu_user_regs *=
regs)
> >>         goto out_unlock;
> >>     }
> >>
> >> -    if ( ACCESS_ONCE(mem_access->access_perm.perm) !=3D FFA_MEM_ACC_R=
W )
> >> +    if ( perm !=3D FFA_MEM_ACC_RW )
> >>     {
> >>         ret =3D FFA_RET_NOT_SUPPORTED;
> >>         goto out_unlock;
> >>     }
> >> -
> >> -    region_offs =3D ACCESS_ONCE(mem_access->region_offs);
> >>     if ( sizeof(*region_descr) + region_offs > frag_len )
> >>     {
> >>         ret =3D FFA_RET_NOT_SUPPORTED;
> >> @@ -590,6 +653,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *re=
gs)
> >>     }
> >>     shm->sender_id =3D trans.sender_id;
> >>     shm->ep_id =3D dst_id;
> >> +    memcpy(shm->impdef, impdef, sizeof(shm->impdef));
> >>
> >>     /*
> >>      * Check that the Composite memory region descriptor fits.
> >> @@ -605,7 +669,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *re=
gs)
> >>     if ( ret )
> >>         goto out;
> >>
> >> -    ret =3D share_shm(shm);
> >> +    ret =3D share_shm(shm, ffa_vers);
> >
> > Shouldn't we rather use ffa_fw_version?
>
> Definitely yes.
>
> In fact i have done this in a follow up patch and i need to export the fw=
 version to be able to
> do that but I will bring that forward and do it here, that makes a lot mo=
re sense.

Sounds good.

Cheers,
Jens

>
> Cheers
> Bertrand
>
> >
> > Cheers,
> > Jens
> >
> >>     if ( ret )
> >>         goto out;
> >>
> >> --
> >> 2.50.1 (Apple Git-155)
>
>


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:00:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:00:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225661.1532216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTgX-0001S8-MZ; Mon, 09 Feb 2026 16:00:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225661.1532216; Mon, 09 Feb 2026 16: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 1vpTgX-0001S1-ID; Mon, 09 Feb 2026 16:00:25 +0000
Received: by outflank-mailman (input) for mailman id 1225661;
 Mon, 09 Feb 2026 16:00: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpTgW-0001Ru-TY
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:00:24 +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 70916f8d-05d0-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:00:22 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-436e87589e8so1322212f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:00:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b2facsm28076279f8f.9.2026.02.09.08.00.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 08:00:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70916f8d-05d0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770652822; x=1771257622; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QsQcnTvDD0fMCYRZAqWuqIi6lF3Ggl8vSR3JqaKNiUI=;
        b=J4q8WUaEAVqswwQ2rQ6khUnqwgtbuWpiysWw17Re0FHGbHvkq6jvtMpkbOVn3Z6uI/
         a2lqUNVA/aRrMa4XAiU9q4rcg8xAwqFm66+IWtcopUQmhaHPHbQBPpMd2lDTSuqhQOXS
         OFCRd89+Vr2nVe+E9eE4vQ38ZTZSWhhBhw5Gc7f9tXtSWpG4ggDERy8bmUSqCsNpxmIJ
         hBaq/dB5Zc19dWxJhGGICEpHALmIvPpGlSr2pRIXRosK8ekM+R4oq7N0L6eu0+50hgCj
         X5bml27kX/7eDgIr6sYND/4ksON8ZPhiAXJsx7Qb2vzJ7pxeR0X6Ncbcq9/HWoetzVNm
         QnRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770652822; x=1771257622;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QsQcnTvDD0fMCYRZAqWuqIi6lF3Ggl8vSR3JqaKNiUI=;
        b=hF1tHbt0ePNUTm+rgg47ImzlURk+ot1wUAiCorvs/rXI7CMijmA0UJIvJUuqmD3O99
         BSOAB7riuZW4rpW7vZvgzp9yyMisXtpCCvYf1jY23elgCr4gQul55B7xEu4DT63X2vnv
         QpXVXMQQpfV+iknJsYfEF9j+/z3MnFXNWdDvtHOC1XN5EJDFoa3sJzCezY7t5Pm5vgmh
         cMO2a1gcjWhZ5VK/EvEJLLX2rqvKKHZHcJEmwiAmbhKfEVZXufBv6FrFP6Y07K4iZpKd
         JuhOlKkZ+0Wr7rRQOaM5toHcXfMZ+LKKxfbRDdxDMYuQ3dBaABml8ds/wc04du+mLL4L
         +FRA==
X-Gm-Message-State: AOJu0YyrOenssLfODTT7A9DsGWnUmQnK4NZjzAs5o8h8emVglHzH0kop
	/PNhBo15GyMFfa+9clnV5R0BgWeRAAR+vZVsIsMILtMP3UFmlBtooLdlpRIFV1WiarIBwmRVB60
	2Xcc=
X-Gm-Gg: AZuq6aJZJKy3hckKNETkYFBnUh/9sSnh+CBaVcf3UDiLaPYcdnD7xlLux/kzht/J+Un
	yRqF5NsUklB2qulDXacY93sATjE0Ix4kO+4GGP8NIHJrCSI4RTIQFZtEVpK0kSCs/kgZY/RlW1M
	asHSMRTwPnMHUy2ciDFr0mkxmYNK4Ka3Ap7gxE3g6KWsu5i2tQ63Wleo0uKq0pkHxKN8p6r+t/w
	BXMr3RhaRAK8hSG6jMZ/eU12OSplIOsPSxpATB+ntifT9kOi6xp/THrzwyvvv/sJVDfbeQSxurk
	m91fblj5ccKzRXFaR4ANrk6CSwvrhzxSkdzzBwTbhJqU58DWVcCUKmGbA8BB36UC94/rExgjAvo
	gtWK1hiJclJB+ICpXBShy+U16/x/df8QTRs2GIU0UP/yqH8ROv4fiB4BnCpg1mjNk1KhgM4hXj/
	PelLRJkCAi7IARuWqJybwrXH3nw64UFbAYZOfzvqK/0VHxd8cR7hhSSoaNef/E/UKqV0mdYv3ci
	8E=
X-Received: by 2002:a05:6000:238a:b0:430:f59d:4dfc with SMTP id ffacd0b85a97d-4362933beffmr14537989f8f.9.1770652821926;
        Mon, 09 Feb 2026 08:00:21 -0800 (PST)
Message-ID: <e62b2f28-0b4b-44a9-84b7-c8f2d0313009@suse.com>
Date: Mon, 9 Feb 2026 17:00:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86: Add Kconfig option for log-dirty tracking
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>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
 <aYoA0jgj99Ani0mF@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: <aYoA0jgj99Ani0mF@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 16:44, Roger Pau Monné wrote:
> On Mon, Feb 09, 2026 at 11:31:15AM +0100, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/mm/paging.c
>> +++ b/xen/arch/x86/mm/paging.c
>> @@ -623,10 +623,12 @@ int paging_domain_init(struct domain *d)
>>      INIT_PAGE_LIST_HEAD(&d->arch.paging.freelist);
>>      mm_lock_init(&d->arch.paging.lock);
>>  
>> +#ifdef CONFIG_LOG_DIRTY
>>      /* This must be initialized separately from the rest of the
>>       * log-dirty init code as that can be called more than once and we
>>       * don't want to leak any active log-dirty bitmaps */
>>      d->arch.paging.log_dirty.top = INVALID_MFN;
>> +#endif /* CONFIG_LOG_DIRTY */
> 
> Could you possibly init this field from paging_log_dirty_init()?  As
> to avoid having more ifdef churn in paging_domain_init().

Hmm, I was wondering the same, but then trusted the comment. Looks like it
may be stale, though.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:02:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:02:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225672.1532227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTil-00026o-2T; Mon, 09 Feb 2026 16:02:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225672.1532227; Mon, 09 Feb 2026 16:02: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 1vpTik-00026h-UR; Mon, 09 Feb 2026 16:02:42 +0000
Received: by outflank-mailman (input) for mailman id 1225672;
 Mon, 09 Feb 2026 16:02: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpTij-00026U-GQ
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:02:41 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id be99829c-05d0-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:02:34 +0100 (CET)
Received: from BL1PR13CA0191.namprd13.prod.outlook.com (2603:10b6:208:2be::16)
 by IA1PR12MB6042.namprd12.prod.outlook.com (2603:10b6:208:3d6::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 16:02:30 +0000
Received: from BL02EPF00029927.namprd02.prod.outlook.com
 (2603:10b6:208:2be:cafe::6a) by BL1PR13CA0191.outlook.office365.com
 (2603:10b6:208:2be::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.17 via Frontend Transport; Mon,
 9 Feb 2026 16:02:32 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 16:02:30 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 10:02:28 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be99829c-05d0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MbiUSahR/cbZt0iZKLITNpm/wqbGnBoV3wXyTthQ8uronsReoyXvLZnSSWv5F+nAgtsbOBwIC0GtsitBlZumq7CZXCIprukjHuJzif9qUbKqGY2I4WwYwvA1N5S048/486FMozijzjAzkwmyOkV05g9P+pQNaLCIENwoGD5d7esmR3txha84+q2yu/JSBa7ijcEOy75MD/+aUrHz4BgLmVuTt1BGk3jYzaIdUTLS5ZE5YiiuzW5Zo/666t/WE/UHMyFLvyOCkpWO/z7buJrRerhFrEScxNYZD3VI+aLJbOnydxiybxNHNtWW/IiwHqiCW1XWw9bMAzIiLGMzS0y92Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ByCoykMzK4VS3lzYyWHsKf3tRgRTFBivPsHAMyIL+H4=;
 b=B3uL6KGwF7ej87FJG678k9Y5u1LzDTkP4tYfxtniUbOuoPKRS5tvzlHUlc20HtnDt4d/oF8Qb3N4eKNXiKV1Lf8pmhFwe1mxsLusEM2uWKMTvc5SDzCHo/J8hmZnS1GZiVXp3Yxu68Dp/o1LNaQ4SbPcecG4/L1Sfwd9Yct0auOIzi9Pv94E1uQhbuNdicMR5qgjothL0Hnut+Rt/wmutyXZmnmO6Qky3WZfqNgHoO6rh1PODMIvWwMSRZQCRvOms1NOqSyfynqXe308EWvuUIy1IV0VGiLjCo4Jt2FHbBScnQaYkcf4xzwurfHWFVv7eZ/ijC2gPLg5vyu7FneRaw==
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=ByCoykMzK4VS3lzYyWHsKf3tRgRTFBivPsHAMyIL+H4=;
 b=KQwhxRNBZILuWwjeozTThFotnQmkZgK9omq5KF9kPHM0YK2nqV4l3HKU4Psa6008lHDTq6XxXAda+dOlj0jBR10cGKxTsmjS0DhsB/5fbJWvHxJM6mnGZ5jbyGcE0Jp1/B7wFnWOVGTNZ/PA5BRatYImwXZvVaqPok+V3270wR0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 17:02:26 +0100
Message-ID: <DGAK325RDOQA.3QQFQYK6R0KWP@amd.com>
Subject: Re: [PATCH] x86/hvm: short-circuit HVM shadow guest creation
 earlier
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Roger Pau Monne <roger.pau@citrix.com>, <xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260209144049.86535-1-roger.pau@citrix.com>
In-Reply-To: <20260209144049.86535-1-roger.pau@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|IA1PR12MB6042:EE_
X-MS-Office365-Filtering-Correlation-Id: 71cf577b-4d1a-4aec-52e7-08de67f4a0eb
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?QkNaUFhyaEs3aXNSNnJSRXdyZjRFSXR2aER6NjNlakIzenVUQVdCcVBuc1Av?=
 =?utf-8?B?TUdSMjg4RzZMYThnNDNZanFodjA0aVhsUlNCZ1l2a0NtejRZN00xaHFGTnRX?=
 =?utf-8?B?MmtJVmhPNEd4Y1VBSld2ZTlkc3ErYVNyMHFMaXdDcXd1OS9qak1kZnI3YUh1?=
 =?utf-8?B?MGFqL3BjMytOYTA4UDRmWUZpcnlLWTJRTmg3VzdxVGJGZWlNekNKbnBlak80?=
 =?utf-8?B?WVhaRTNIRU1nc1VUQjBEeXlXOE9yalBBM05MdkpmTWZhU3EvUU1xNjlPMHVL?=
 =?utf-8?B?eFowNnVtUitsSDhqcjBJZTBnd3dKOHBXUUczOGpRSVhIMEVXSzlRb1l2RVVR?=
 =?utf-8?B?a2ZRTzJibGRHK2xTYVZTR3BGVGZTNFNWNUVqTXpCUjR6MXBDNUxoUjVxUHQ0?=
 =?utf-8?B?Rjdla0RTbVlIWnNOQklHUVBlVjZWaU5KZGVMRFNGT1BUUGdVU0IzRC9Pb25i?=
 =?utf-8?B?ek9QdENIbjF5TTVuaXJXc3d5RzNOQ0lEdUkxZFE2SlI3YjZnNFp6YkxqQnBB?=
 =?utf-8?B?cnp4VGdVVzNjWGVneURlVjVaRVFvc20wc1c2VzN2OFhHYWFkSzM5d2RsSVVv?=
 =?utf-8?B?RUR5Mk5LM1hVSGo1MVNkdndubERweE9pOWI4VW5ZeGN2K3JKZmZVS3pIcG5G?=
 =?utf-8?B?aTVlN255WERiK3NVcHVhbGYwQVNpVGVKZmxVVExiTmdGK2NHS0VRYkJYODUv?=
 =?utf-8?B?NmhDNlZ4ek95OTdPQ1RsaDlUeGZ4NnVad1E1RDdURnVYYm1HMWIxVkJ4ZzJQ?=
 =?utf-8?B?ZUIxR0pOanAzTnd1a0tMTjNjNVhUcS9ZT1NVSkYxLzFQQzlSaWZySlpWblg3?=
 =?utf-8?B?RG1jQ2E0YUUyZ3NZZnk3VFlBdDZMZThkNVNpUktEcktBYWdkeEhYSldiQUtq?=
 =?utf-8?B?RHlRT2RxeE5tYVkyYWYzV2tsaGJ6REl1S0lLRGw4TlFtYW5kM3Y4ai9DaC94?=
 =?utf-8?B?TExOLzRSWVhSYmdKNWpLblJjQ1dVc1pXdGdhRGNSRDNQdnozei8xcHZXMVVv?=
 =?utf-8?B?d3NVWndrWjYvVHJ2OWRLdm9tRUZ6RHZ6T1oybktFWEJKSzRZMEtkZnJZenBo?=
 =?utf-8?B?SDZCWGpkK2ZRMjdhS3VTODR2c0plY3RROVdaZlhCU0c0VldEdGh2amNYRmtT?=
 =?utf-8?B?QkkxbkczTnBDMGptOGppK1BJcmJGRm16RTNzMXZoS2VmUnhZanQvM0xaOWI3?=
 =?utf-8?B?Z1NDL29IRDU3Q0preHBBZnp5ZTBCTHQ0dlMwb1daUUh5Q1JsVmdwWmpOWjZR?=
 =?utf-8?B?emN4SVBtS0pvL2JzNTg2c1RxWkMwcnpqYnNIeEFNeVVGM1hMQytWZThtaFBK?=
 =?utf-8?B?MFNpYnl3ODZmN2E0c2k3T3czdmtUL0k0bHBOdHRmZTlIRGQrS2YydTRPYVg3?=
 =?utf-8?B?VkZ6QUV1SHJEOG1kQU41WWl5ZTVhNjhJbkZyQ2phaHVvVmttdDVuTUdWY29l?=
 =?utf-8?B?SVhXVHNLa0QwM0t4SytrQklFdnJJam52Q3lNamNzWWcvMHl3YkFDaEI3KzFF?=
 =?utf-8?B?K09NYUhwRGlKcFkzVWxqTkJ0N3liMHNFa1lDRG9JS0VGUUZvS1NLRW0wN2ZD?=
 =?utf-8?B?SFJ3UTFibmU1ZEdnaTE3ZVlRZ2NLdGNrNkpYL0dYUlZyblNJUkUzcWJidXll?=
 =?utf-8?B?RjdIMW1XQzlGMnFrOFozNTluNHRLaVBIT1JZb3hobkRKbUU4NVgxNlZDSUpo?=
 =?utf-8?B?R3lLeFlvVnFIYitiR3BDVnZwejA4NTJ5QS9BWWRJOGd0aGV6eGExZmZNSlVF?=
 =?utf-8?B?RUV1bjIzcFNlc0hPek9zS012Ni90MUhRMldHbkR5UEJBSnlXWGN6Y2RhbmVn?=
 =?utf-8?B?RXFoR2krVSt2VDgyS0hLcVhKQ2tRZ28zNFZNV2UwRlFiNG04ZGw4b3N2cmhQ?=
 =?utf-8?B?OGpxcm5kekw3Q29XVGlDSnFyZW13Mk42QkVBY2N3SWNodzBsU1N2d3lRekV6?=
 =?utf-8?B?RFpWajF4OXFZa3dadVNuUXhhU29LNWlscjEraFJlbitpa0M0VG1BMEZLZHQ3?=
 =?utf-8?B?QXJ6NDNtSEk5VFNxOEM3eWt4WDNiU21jVXZ6Nm5yd0VVczlFRVFabU4vcUI4?=
 =?utf-8?B?a3ptbUJhNTdpWDlHMHhqVUk4dTRINVI1UWtYZjNxanBmTmFSb2pKRjI5aTBH?=
 =?utf-8?B?V2tNVXhJbTFaNUh6ckFnNTFQZ2J6cStLU1lzMzIvK2QwdXBjOVVxYkJSVWpw?=
 =?utf-8?B?Q0dJREJnb3Ayc0hoalRPWGhFS05HaDUvNFMxREtsNkxucWxheW9DdTAvS1Z4?=
 =?utf-8?B?MmVsUDdRMXJTNEtiV2h3QWtLSE9BPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	tZz0Rm3FdDOUoRSYIJ6N2uYD4preNhPZ+ro9vN/nYfS1hJvcHdYbqwZDrXzcU2pCKyouJDPuYPrjkmukG13XEFRm/NIo/PFQTBelunPfse0TBs8MR4c/+ACq2ThL9Y+yrRH9n1h7n9L3jdVTGswVg0QBWQdnfzZI1xmNVfSNIqTt5e742Evmg4wqPY1NiWv0Hqo8n6zoq9ja6EFheRVKYTeSiIMya3k1ZlVbhPMFZx2ZijKDnCTo9rKbywsXD1v5tLQsBm5JJ9zcysEGJW02Ued3IxR5jsOxoFr/Ah7N/mK5SHheuHRC+nj++sk+939DR/8iHdxeBMEDx+NgMKOr2W00JHDy3Xo2qOSLs7p0GSCiScd5pUIc7/8kCiIRpuCLP8MYIlh9ZUaA8UNr055kYVN8Kzahxrp4TocX2NjrB3abdCu8lMqWgu1hoCCUhz4f
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 16:02:30.2201
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 71cf577b-4d1a-4aec-52e7-08de67f4a0eb
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00029927.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6042

On Mon Feb 9, 2026 at 3:40 PM CET, Roger Pau Monne wrote:
> If shadow paging has been compiled out short circuit the creation of HVM
> guests that attempt to use shadow paging at arch_sanitise_domain_config()=
.
> There's no need to further build the domain when creation is doomed to fa=
il
> later on.
>
> Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
> ---
>  xen/arch/x86/domain.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> index 8b2f33f1a06c..8eb1509782ef 100644
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -627,6 +627,12 @@ int arch_sanitise_domain_config(struct xen_domctl_cr=
eatedomain *config)
>          return -EINVAL;
>      }
> =20
> +    if ( hvm && !hap && !IS_ENABLED(CONFIG_SHADOW_PAGING) )
> +    {
> +        dprintk(XENLOG_INFO, "Shadow paging requested but not available\=
n");

nit: s/requested/required/, maybe?

Also, with this in place can't we get rid of the panic in create_dom0() tha=
t
checks an identical condition?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:04:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225681.1532241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTkv-0002ln-Ej; Mon, 09 Feb 2026 16:04:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225681.1532241; Mon, 09 Feb 2026 16: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 1vpTkv-0002lg-By; Mon, 09 Feb 2026 16:04:57 +0000
Received: by outflank-mailman (input) for mailman id 1225681;
 Mon, 09 Feb 2026 16:04: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpTkt-0002lZ-M2
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:04:55 +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 12ca6861-05d1-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:04:54 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-43284ed32a0so3137599f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:04:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4362974527fsm28866284f8f.31.2026.02.09.08.04.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 08:04:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12ca6861-05d1-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770653094; x=1771257894; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lNx3t7qTat4e7Ba7p52LVIoxXbsVTE0WxDMZbNg9lYE=;
        b=Ht4LmX8lgslsd72ium+cDVC0ZvmvblHzNVXs/jkDQCvDjTwKP+oHLKfdSiLKw0k16G
         Sh/ZDVvLuFtrVD28OfNzBa+8jZqfKlwXBaiKLJQYKPChHrvmtXh6HyutjSo3+FUGacK9
         ByTrvOgA/O9PF3DfKHiUMXEyR20n17KtQCQJjNXuzKZrB6kmhmhoWwvlEpfaoufVyp07
         uf6KRJzTtXakYcAynD3oYh7XqTUNlpxYpnBgJWyNLGzJUBkTEpASX9Yd6u5IDSlKq9Eh
         AlFy+KAhx1P4giExO5fl4c4b6ZCgdnMoR4ZXQGqydDNktj1VHsscbMwOAwY/CdPXZNh6
         Fmow==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770653094; x=1771257894;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lNx3t7qTat4e7Ba7p52LVIoxXbsVTE0WxDMZbNg9lYE=;
        b=fLFIOKs9gB1N50PbUCR5lNIyA4vaBAks8hwQWXmxnUiaLkH42nSG01uxkYg6DUBetq
         utI7CiEXA7WNQLYmS/wza6XatorD0yV47P8s26ZflXU18zTVELeYAAkmnsOMc23F60T4
         ua1VlDd/ek+VS++YRXyTY4zuou6z6fZqFTaQ+CZhW9wqQl5YrnSAxaU3zJVKjxwCQbxB
         7ne9V6MTWs6KNFDu0ABtNBFT7xC3xwwoefJwyU12KLT1WxJXI99tfqYLahpVcVJ/Wxf/
         Ub/83tO9rteNFMvGaDCxko5gryt2xSjCRksSvj0Ge2tltHOJAh6q+NqOtOo7HvfdcQhz
         2Wtg==
X-Gm-Message-State: AOJu0Yx0V/LZYb8OLg5xdCNLcBLx6O3lz4Wi+ZmMhkhrQk4a+b+KTsGZ
	Oz7bulgyig3RfWaw4aAtUxSjLq2Jx+NJVktE4nthP/Nmg3T51qSFltX2YqjP3MB5tQ==
X-Gm-Gg: AZuq6aIM7LwzL/4AqgY+3FbDBPvlsm78rbdVcRuAb+JsdQy590uvQCXAOeTfopDMNmV
	xr5EJLLzGMS4yEjs11SqsJFf5NIn3mMuhUsIn4o/Sk3wdIhxu3KFWlNZ2fDLK85PQCS9Mq8twLy
	IEkZbV0bkY7hdH5iWkNHenCxCOpZzl8bwEiMp8P//q19btCL8/YnHtQgRWN+pvnDpGggxjc76vV
	tk3VdnTKUBN2OpGxks1RFLH1bkm0negp1hSEK5mJImtA1gWHNSmirXDRDYmMNuOeIjcO667IaJM
	XV+447fsRxbiSQmR1LN0Y5GYRG+Znv2b9Yefvf70w8DotRU1CzEqz4b+3Vf9LawZ5UyeBf/MnuN
	LFOn7i1zW3WjeSyZ6pWVlZWg6ulbQCWL5JUQFoiKXAurLPuIom7Yot3GYfPQZ3KwRVJ8XvIrFCO
	FMS1Q6IvctHAoaWKOrTD6SkXm9wsJfNChaBzk9t/mQiZLgL/gv9f4IGsZx0dYrhSaP18r09tKuL
	Zw=
X-Received: by 2002:a05:6000:2311:b0:435:907f:e439 with SMTP id ffacd0b85a97d-436293422dfmr17885674f8f.18.1770653094024;
        Mon, 09 Feb 2026 08:04:54 -0800 (PST)
Message-ID: <f3474905-427a-4d0c-b087-38082bf7e2e6@suse.com>
Date: Mon, 9 Feb 2026 17:04:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
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>, Tim Deegan <tim@xen.org>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <aYnyY2MArv4vTXsY@Mac.lan> <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
 <aYoDiDiJ4rRLxhmw@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: <aYoDiDiJ4rRLxhmw@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 16:55, Roger Pau Monné wrote:
> On Mon, Feb 09, 2026 at 04:35:04PM +0100, Alejandro Vallejo wrote:
>> On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monné wrote:
>>> On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
>>>> It only has 2 callers, both of which can be conditionally removed.
>>>>
>>>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>>>> ---
>>>> I'd be ok conditionalising the else branch on...
>>>>
>>>>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
>>>>
>>>> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@amd.com
>>>>
>>>> ... to avoid the danger of stale pointers, with required changes elsewhere so
>>>> none.c is only compiled out in that case.
>>>>
>>>> I'm not sure how much it matters seeing how they are all unreachable.
>>>> ---
>>>>  xen/arch/x86/mm/Makefile        |  2 +-
>>>>  xen/arch/x86/mm/paging.c        |  4 +-
>>>>  xen/arch/x86/mm/shadow/Makefile |  4 --
>>>>  xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
>>>>  4 files changed, 3 insertions(+), 84 deletions(-)
>>>>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
>>>>
>>>> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
>>>> index 960f6e8409..066c4caff3 100644
>>>> --- a/xen/arch/x86/mm/Makefile
>>>> +++ b/xen/arch/x86/mm/Makefile
>>>> @@ -1,4 +1,4 @@
>>>> -obj-y += shadow/
>>>> +obj-$(CONFIG_SHADOW_PAGING) += shadow/
>>>>  obj-$(CONFIG_HVM) += hap/
>>>>  
>>>>  obj-$(CONFIG_ALTP2M) += altp2m.o
>>>> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
>>>> index 2396f81ad5..5f70254cec 100644
>>>> --- a/xen/arch/x86/mm/paging.c
>>>> +++ b/xen/arch/x86/mm/paging.c
>>>> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>>>>       */
>>>>      if ( hap_enabled(d) )
>>>>          hap_domain_init(d);
>>>> -    else
>>>> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>>>          rc = shadow_domain_init(d);
>>>
>>> If you want to go this route you will need to set rc = -EOPNOTSUPP;
>>> prior to the `if ... else if` on the HVM case.
>>
>> Maybe this instead
>>
>>     else
>>         rc = IS_ENABLED(PV) ? shadow_domain_init(d) : -EOPNOTSUPP;
> 
> But even for the PV case we cannot call shadow_domain_init() if shadow
> is compiled out?  I think you want:
> 
>     if ( hap_enabled(d) )
>         hap_domain_init(d);
>     else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>         rc = shadow_domain_init(d);
>     else
>         rc = is_hvm_domain(d) ? -EOPNOTSUPP : 0;

Wouldn't this still leave NULL pointers in places where they can be rather
dangerous with PV guests?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:11:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:11:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225693.1532251 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTrg-0004mh-4O; Mon, 09 Feb 2026 16:11:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225693.1532251; Mon, 09 Feb 2026 16: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 1vpTrg-0004ma-16; Mon, 09 Feb 2026 16:11:56 +0000
Received: by outflank-mailman (input) for mailman id 1225693;
 Mon, 09 Feb 2026 16: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpTre-0004mP-JQ
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:11:54 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 076dffaf-05d2-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:11:47 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA2PR03MB5769.namprd03.prod.outlook.com (2603:10b6:806:11b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 9 Feb
 2026 16:11:42 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 16:11: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: 076dffaf-05d2-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=adljMjxmt0DyS/B7G7Hlgt2fMF5KudK8aYiP8fmcCrMeyEmOl1vkpj4MBcNXlrnYf+P7LQNeW0TCPHn/HcXf3k2fnq8j1YDSnizxXEa1nYCtk55prhbWnOOeakLLR2w3B4bC95XgRwk/9oKiYsjZbXBWEpmthu2E6xjHkrGKwvCecOq5YBmFuRbZnM+q25zkePBkopYZbbxb559za51slfLp3W+tsNxYcb1NLjMbdn9E0pAuIDrx66piv8rIjV094qR+17+0ChfLtNPTz8nRDcmuuKzRIwDraaPQznnMiKod5kL543Ai+FgpAOQjfT/RsvyEJLZxsz50eCgc106HSg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=juaxaDOV+OxrdiiSgPwPEYogUGI/uPsWoWxdFfHSa5M=;
 b=UERKE7Mmv1gwKGW+Km4/NcGCrYLGTKPwDfrimzz9K4OkaTv7jlUvl868AtzXGGNImPTDh0YZIUviN0mew9/hFw0TJ7gTWw5W/+GHKkAOm8rfoGk2e1bUUEfhZYr/VGUUqrB1EmHlfjxhtAegFNVNyeDRI/g8eff/NQAp4FtGJzQKkkZLGMxty07mItgg1ZQGLUzJCjX9pZFPeuXXcx7Bo4JCKaJf8mnnIJ8aXd41WZW+Zu/DJnz6w1MiJ7xV0r1TrmFBb2G46IHfqfmgLKGit5Nfx4CkJeq8EH9hjlj/pIEiicPSKfmc62UOnjQa+7gDBqGtawNpCfL+HcB4cKULzg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=juaxaDOV+OxrdiiSgPwPEYogUGI/uPsWoWxdFfHSa5M=;
 b=fM1t9//5FI7fV76WkscsgNTxuQ3icsrFSkenh3Tr1NNhavN0xECG1Wn4x/N1Lm5WS/q7wAEYwepBTJtfj8/tBhNqd0Oo6A2Uv2SKTvXELUtFv+y3StgT2YUDuiTJ+KpkWGPSc9gYhrjvJU3dBun7VSAI3v+v6iRcozDZzPWViaY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 17:11:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvm: short-circuit HVM shadow guest creation earlier
Message-ID: <aYoHO2WDnVR4wIL5@Mac.lan>
References: <20260209144049.86535-1-roger.pau@citrix.com>
 <DGAK325RDOQA.3QQFQYK6R0KWP@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <DGAK325RDOQA.3QQFQYK6R0KWP@amd.com>
X-ClientProxiedBy: MA3P292CA0040.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA2PR03MB5769:EE_
X-MS-Office365-Filtering-Correlation-Id: 41a347c1-dce1-440f-ab84-08de67f5e9f6
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?d21qWkk2RjU0L2hhQmNicGpJOVBmcW42Zmtad2N6Qlorc2VKUjNyM05YUUht?=
 =?utf-8?B?YVFjT3RSWXFRck1aaE9SWHVwQThOWTVJWjdsY0dkc1U3VmhNMU5tRWN4aVZP?=
 =?utf-8?B?QS84cWRCOThvL3NIUU1McFgvOUJVOHA4bGg1dGxPNlBEVk12VURiaUZudmMv?=
 =?utf-8?B?cWZvY1VzWDhnZXlsS1lvNjh0bVhUbUdIZGh3enMrVGRSdndmUVZtcEtuM3Zh?=
 =?utf-8?B?QkdQY1U4VGxwUmJCanQ2UmM3WHJGeDZYU3RDY1BrOWRFQS9tSFhheVZwZGN6?=
 =?utf-8?B?RW9DK0p3MU5yTTcxYVFya2VZb2tHQUI5eGV2MW45N1BheU0yQWZsY3JZeWRi?=
 =?utf-8?B?VGJnY0dkbVhOaCtSblZyVy8xQUNab2lZVTNGb2t6bUsvTU9yTERDbnRKeHZ1?=
 =?utf-8?B?bE90c3BYekpxdzA0Ti9jL1dvNS93STJtS3RsZXZxUUEyTTdaVURoOGY1MUtR?=
 =?utf-8?B?TTFTSUZHK1dPVzFsclN5b2tTVjZJS0pIMWxITk1wRWRGSWQwQ2lHQ2hGNTRt?=
 =?utf-8?B?aTMrbzlNYUtjb3JPcHRPRFJ0eVNZNUZXem1UcVFtRWRpblJsL09uMXF6elhI?=
 =?utf-8?B?NkcyOXQ5a1dZMGNSakFDenZLVENtRWJPLzFEZzgxRFpLZDRKVUpPUllBYXpm?=
 =?utf-8?B?RDI4b1VvL0Z5bTZEV1VGZEJkTEYyM3NJM2RtUFRHcDE4bVZGS2xzNkVUbWhC?=
 =?utf-8?B?V1BIM0NPV0FNZXE1SGJHYU1GYWYrWmo0cjR3WGt5Wm1oc2hLZHUzSzNhMHdu?=
 =?utf-8?B?ekwyRTZiUlZiZlNmaStTUWYrMjZkb29vMnZzSFNLcUpqTXNIamhQd2hoOHBT?=
 =?utf-8?B?djFwRHRsYVhUTGlhV0llZzNobUJ0OGpNbGpTSnVlbjF2eDU0YkdOeGhZY0JE?=
 =?utf-8?B?NjYyRmlVK1dHYXQvbzRPSW55TVRiS05ybFRxZERIWWVSRTh6VVo1bW80VHRy?=
 =?utf-8?B?ZHR4cVpEVUtNbkJFZWJDVTYyV0d1Z3dXS2lwcGJKYjlkNllWUDVhdk9Sa1o0?=
 =?utf-8?B?TXJkTkFVZG0wcDNZdmE0RmR2NFRacUtjR1d4N2kySGFOMHlUbkZ5dGY3NStn?=
 =?utf-8?B?UFJmaC8vQTJLWk1rVmZHdUdYVGYwZGY5eTlSZi9lYVRZSGpSSmxvU2F0cGZZ?=
 =?utf-8?B?L0xSOXpwcngxZzlQTjZ1ZG9uSHQ3TjlrM2Vzc2JRczhsYjhYVVRKa1lqN3hG?=
 =?utf-8?B?YlkzaExKRjdhVUROR0JJRnhyLzU4Ny9UelhiT1R2QjNKSzNMMVJZbnRrY1dP?=
 =?utf-8?B?NmpuZ3Z1REx1V0xlM1NsdjlkT1RzejhDZi9Mc1dwOEwzQnBwTkZFOSt1ZnhQ?=
 =?utf-8?B?eDVKcnZnOVIyaDlkWWFVL1VxWE0wOXkxakxlTXpRWWlsa2ZNei9oTDZkdFU5?=
 =?utf-8?B?VXc1UDF6Z3p4VjNGNnAzZTd2ZFhsaHdKZUFlMHppc2ZtdkszMjAySUpMTnVu?=
 =?utf-8?B?UmxnQVA4WldtZXIyaEN3R2xValk0NnlDL09ORVZ1cnJHZm1sZi9qa0htaHRs?=
 =?utf-8?B?bmdnVG1tTVJSUXNxMFMxbWdrczlYNFI0UGk3bzlvYXBUMkxSMG96UUpvZUxP?=
 =?utf-8?B?cmFTWE1VWC9RWDRtU2hkbU1XT3A0RWRvVGxVTFEwdUFrYnNpNExiVnpxUXQr?=
 =?utf-8?B?QWFoYm15V1FtcjhFZ3VGWGpZNlBpOGdINk5NNGE5TmJnWXNXU1ZZenNXcGds?=
 =?utf-8?B?QitjMHN3K3FVbG42eE1nZ0xWcFMxVHhkdVcvUm1NUjlxcGY1Mm12RVNRbDcr?=
 =?utf-8?B?c2U2eGJmZ0lYWWJJMVJQUmlNRmZVem5hTnhSdHVPcmhyNjZyWEJoZmlmVk9D?=
 =?utf-8?B?ci9RdFhwQ1dhU0FlckcrSjhQQUdySWNwZGFDQjF4UjRieXpXTlNRVGlhOTNU?=
 =?utf-8?B?QkZFeVo0Vk9hVjEySXRYMVUrTHRBQTFuS1lVRVpBcDdHSHcxSHI2NGQweS9p?=
 =?utf-8?B?RGthUFJiOWwyNFVBSHRNSmVBaHgzLzRzWXcyOTlSWUlMK2I4dHhHYmY4MkNV?=
 =?utf-8?B?ZTQwNWZrTjhDVkNhWmtTTyswVzB3Y3JRSS9wT2Y1NG9sZUR6NVN5NW9EdlhB?=
 =?utf-8?B?SUFGZVFCZUV0MHRNZDhYbDk5UjFleFZYdmFYSlNTa3AvMmU2dUVBYlA2WUZp?=
 =?utf-8?Q?W7hI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SzJNUHlYUGhXb3pZMkdaWFlVempsOGxlOTFEeWVoK056ck9Fd1BRS1B2ZjRB?=
 =?utf-8?B?WU5EbTJJUkpRSHZHd2wxY0pEOWRnWGk2SUYzbXJ3UlZMdGRRUzVMRHlGcVd2?=
 =?utf-8?B?emZpaTA0OVVjTkdMZndmeTJHdzZFeWQxRjA2Nmg4NGNWbXR0Wk5IeGpQU1Bm?=
 =?utf-8?B?RmJTU29KeVVvVUp0S0ltR0o3TWhOeGNuS09iRFhjdTdzS3I5Kzgxb29LSzNh?=
 =?utf-8?B?SmFUVmx1L29jNm93aHdUL3Aya1lYcG9pOEZpNGxQK1NYOXFrT2g5R2pJZ0g5?=
 =?utf-8?B?WVpJOGJ1U0dVc2FuZWs0SmV6bkZpa3BaaW8wdlh5emw5eTdOR3JZSzN3VEpN?=
 =?utf-8?B?MDJ1SzNTVnc5bkhyZTFnMUZ4Tm5ZbnZ5cllzaFhoZW5ENlNGem5MYUg4VDJC?=
 =?utf-8?B?RUhZaEtaRkc5Tysya1NvUWNOdjBlQkhrM0pIOUR0bkM1WUYwMWFmbkJPekR3?=
 =?utf-8?B?M3I3U0F3Z21KNGtrN3paWER5V3hBV0VUUTZmbzZwT01yNGIrK0FxaW5ZaVdj?=
 =?utf-8?B?K0c5dzNSQWg5eG1UTVlGVkxTWE5UTlMwRjdwenF3TEJTc1ErNEJCUng5S2gw?=
 =?utf-8?B?MjMwallBai9vVUo2eHFtVnhVZS9SMDdsYkdHRU5kc3J2cHNxalFobWpKb0kr?=
 =?utf-8?B?dzZnb2tTaCtyOWwzZGNLU3ZHSGJ3cVVOOEZTcmlyWThwcTZOT2U4ekRhaUZr?=
 =?utf-8?B?S0VrTGhsWmF6QjNOM2l4MG5QYzJ6cUovcDM2NG1yUTRIT1dFY0JUWWF4OW5M?=
 =?utf-8?B?L3o1NUFMOGZONVJSMGQrUGNVT1FrVWhIakNMVndVbDI1S2hhb21jWW9WNng5?=
 =?utf-8?B?b1lVaUl4cWg3djl3Uk4zMHN4OGZ3LzlJR0RkelhBQWNtaUNCOGF6KzJDeUs3?=
 =?utf-8?B?WE94OGVrYU9XeTRlYTBoWFo3elFzV3U5akdTejMxQUMwei9RRHBWbnhmM1hY?=
 =?utf-8?B?ZkdKMGVQOGVaUmlmc1plYUZFZk9VakhsOURzcUxOV2h2TnBKMlZ2K0ZDLzVQ?=
 =?utf-8?B?V0IrOGlzdnIrNktDRnpjMHloUG1aTjk3NHo3ZnMxWVMrcHY5d0FFaStJOUVx?=
 =?utf-8?B?U08zRjRkTFBkUStSZzVuY2JnWTRoYWh2T0JqaDlaSCtvUHVlMEdzdHBCUVRY?=
 =?utf-8?B?MHloS1pNTDcrZlVmL1Q2YzMvYWxqMFo3SWVDMGVNV0VsbzNtQjdNT0FRQTFR?=
 =?utf-8?B?bldiUDB6WlJzd1hha1FDdHl6NU1OcGkxNFNnMlBDTHVzeERPZkNoYVM2ZHYv?=
 =?utf-8?B?eDcwTzUrMHNkRHRodFpaRzhvSmNNYWptaE9Yem51MWlnQzEwYnNlMndqOVJC?=
 =?utf-8?B?Tlp3SkQ1bGhvN1hqdzlvak5aeUwzdWdQbnUvRzl3MlhReDVhdUlKU1NMZ3VO?=
 =?utf-8?B?WXRoR25KRmJWOHhZM2Zab2RGWSs3WGZ2YytZbG5ZVEFlVE9kbU1lTThxOUdH?=
 =?utf-8?B?aTduQ0RyY3NZVWZvcmRDc05tSjhiamZQQWU5SnRpeENrTU9HamdYcFBiNy8r?=
 =?utf-8?B?N0ZiOHA5ZmthR1RKVzFYQzIvT1lubkcrMmFVWW1OOG1uSm5DV1MzOEtrdjFL?=
 =?utf-8?B?OTJWbUVTMkg0N0xiTSsrM0NXVThhYmJiY2dTTFdRdmZrN3JabGpTamVDVnFI?=
 =?utf-8?B?YnZzQ1p1S2t6anlma09ZWFRpRXhFOXV6cWRzakxsZE9kekJ6Q05KclBVU2xj?=
 =?utf-8?B?Tk9JMnh5MUtNWHJaKzE0YmhFY01IR0NEV00xSXZveGtOOVBXMnZMSXVncis4?=
 =?utf-8?B?dVg2MWNnQjNMOVNYb1dXWm5WZXlMWlV0WnhSTlBBSkF6dEtHL2pRMEJETzZp?=
 =?utf-8?B?YVg4WWV6U3VSdkZRdjBVNUFqczBWcE1CSDVrcFNZSzYrQzB1SkNqS0NWNEdM?=
 =?utf-8?B?ak0reWlId1ZxWUlnTkhWMzV2ZzlUMTlPY3pUd3ppODMvVVoxYjZKZjVINGpB?=
 =?utf-8?B?RGhPanNrUDJSYTFZKzB0c2VLS0JSbUN3b3pDYk13eWZZV3FQbVBMRlBYUVVi?=
 =?utf-8?B?OEl0MEJJRjJZamFjKzRtb05DUDNXRDVhUGpmTUl1RXNCdm9HWkQybTB6U3la?=
 =?utf-8?B?aUZmUXFkbzIrQkZ1M0pIYjdzdU8zK00wMEVOd0J1UDlidTBtc1dmS2Vua0R2?=
 =?utf-8?B?NzFSQngrQ0hGODU0clNLVHBHdkU4aGpmKzFtL3dxd013VndNWHNGaXM3WDQ2?=
 =?utf-8?B?bktyZ0doSWVsN1hSRzkzN21pUGNoU0xrY0Q3MzF3M1NQKzltaUhFSktBTjVh?=
 =?utf-8?B?OEJpKytaazJSaDFVVmtjanptOW9lb3VraXJnUXhpVGxNR2g5K1N0Q2dORklj?=
 =?utf-8?B?UzkxSktjWGd3RmlXZDVzL0Q5QnhYV2FRL0UyV2RYazY1QXhpb1p4Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 41a347c1-dce1-440f-ab84-08de67f5e9f6
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 16:11:42.5555
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vEGxwdQ24UGL6BoTMs/VneLKfLfP2vpgXFxC72JaMtQ5G0+bmFBQEANNwfG4fc5+WvfVdm3zgJe0Nglpv2hnKw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5769

On Mon, Feb 09, 2026 at 05:02:26PM +0100, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 3:40 PM CET, Roger Pau Monne wrote:
> > If shadow paging has been compiled out short circuit the creation of HVM
> > guests that attempt to use shadow paging at arch_sanitise_domain_config().
> > There's no need to further build the domain when creation is doomed to fail
> > later on.
> >
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> > ---
> >  xen/arch/x86/domain.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> > index 8b2f33f1a06c..8eb1509782ef 100644
> > --- a/xen/arch/x86/domain.c
> > +++ b/xen/arch/x86/domain.c
> > @@ -627,6 +627,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
> >          return -EINVAL;
> >      }
> >  
> > +    if ( hvm && !hap && !IS_ENABLED(CONFIG_SHADOW_PAGING) )
> > +    {
> > +        dprintk(XENLOG_INFO, "Shadow paging requested but not available\n");
> 
> nit: s/requested/required/, maybe?

The wording matches the rest of the messages in
arch_sanitise_domain_config().  I'm not saying that makes it correct,
but if we word this differently we should also change the others
IMO.

> Also, with this in place can't we get rid of the panic in create_dom0() that
> checks an identical condition?

Hm, I would possibly leave that one, as I think it's clearer for the
dom0 case.  Otherwise someone using a build without HAP or shadow and
attempting to boot in PVH mode will get a message saying: "Shadow
paging requested but not available", which is IMO less clear than
getting a "Neither HAP nor Shadow available for PVH domain" error
message.

Just my thinking, both checks achieve the same result, but the error
message in the create_dom0() instance is more helpful in the context
of dom0 creation.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:17:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:17:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225710.1532265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpTx4-0005dM-Sw; Mon, 09 Feb 2026 16:17:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225710.1532265; Mon, 09 Feb 2026 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 1vpTx4-0005dF-QR; Mon, 09 Feb 2026 16:17:30 +0000
Received: by outflank-mailman (input) for mailman id 1225710;
 Mon, 09 Feb 2026 16:17: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpTx3-0005c4-IL
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:17:29 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d360c615-05d2-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:17:28 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA2PR03MB5769.namprd03.prod.outlook.com (2603:10b6:806:11b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 9 Feb
 2026 16:17:24 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 16:17: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: d360c615-05d2-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=pFeK6NVp3fBk8psVoNhMu1K3zu3usMxjtgBGomXP3Whx/KPCYPrCVbUN1HS+4GtaCu9MH7SGqKjJ2tKR4dbj5GZ/rIB5NqJmi1qinNy6kDQl7inKuRBZg1MrW0SRZlLfjagtHzFHRbG+0V27Y4+joEJZ4pdGNy9qEPfL0OuefCCpX4vOK/zyhCzESkqVqRU8wrIppcXfitBM89kWjHvUMSZGy0+gNyv5gfxjJCLlJIzUBIO0wF03qSwBdmFYoW01fE97YvFq04DxV3ojJ1/RBWqu7gelibxjfc3v+bBlvzS5egpNEeZdDgeh6xIa++9dqDaPf6Hl9HyTji8+tX63qw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IOnfLe12kPtNLKugF0/TiGp+ruf3BZ0ElOg4zQzu4kg=;
 b=QDDeDCNAy2FjqOi2DjXrOkvKPjbnfVJLLVbWgxTgOou1mrQYCxYebOa/z48jnt7diQ+zqeheou2xwDnkwaEKaxLPdNzwqwFum0VI+aiJKoRAO4VRsYrtJs/oDkDKvWsjkiXt+tJlgi6LjAts2acJvILWpYp8B+Ac2auN9AkkV2SqlpqY+6+CjZtdxzISQLLBIu1RQOzJAElz7icSD4dkpr+v7RA5gj4g51Yztp6yV2kbezZMo5PXeHgxUVyT6HuHLLLsFJwbkqwUG/qbQSYzuTJXxGYktW3Rfi2oFfMs+9VsqT6LdS1qYtDmiZHtLu+OMY22l/uad+5oFxKj5S8R4A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IOnfLe12kPtNLKugF0/TiGp+ruf3BZ0ElOg4zQzu4kg=;
 b=KIUHz0HHHqERc/ycOm2BQpWJ5jQnH261NoYyO/jvvQrFHcxqdPFZ7ZzTv7EJJGHZx/255nE7dtRriAMfqm5NjIIraw++15PkpWx1SyT3CqBqNlVVhrM8JsfbUPhidt5LyoFtGpZtewVqI6mSaOwVyARPI0+cazAryLnQ0ALcpqU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 17:17:21 +0100
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>, Tim Deegan <tim@xen.org>,
	Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
Message-ID: <aYoIkTbcyU5ktEth@Mac.lan>
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <aYnyY2MArv4vTXsY@Mac.lan>
 <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
 <aYoDiDiJ4rRLxhmw@Mac.lan>
 <f3474905-427a-4d0c-b087-38082bf7e2e6@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <f3474905-427a-4d0c-b087-38082bf7e2e6@suse.com>
X-ClientProxiedBy: MR1P264CA0134.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:51::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA2PR03MB5769:EE_
X-MS-Office365-Filtering-Correlation-Id: 64806e5c-c1bb-4f8d-90e2-08de67f6b5d9
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?ZFR4VExOeVZyQTRNYitPVTk0amQ5aHU3TjFQbUI2QlZEOS9rcjFFTTZsZzZO?=
 =?utf-8?B?Ny96dE0xV0tNZjhHUkRaQ0V6di91L29paXZyYXQ3SkJOdGpPYmdWdFFmVTRU?=
 =?utf-8?B?UTBvQTkyaFhhdkNrQUxnL3daWnREbXNJVEE4TmFEZmxBOFgrYkwzZWJnUGpV?=
 =?utf-8?B?bElydUJMcmEzNjFEOTFnbmtvS2RzWlh2RXRJUE5icFNVSjJTV1didVNXZkpR?=
 =?utf-8?B?M0RJQ2Ztb1kzREFBVGgvL2luNVc5alkyRnNiNWhCRldPdEtvbnZBbmE1a1Z3?=
 =?utf-8?B?aHJrWXhTRWZEY1FHeGFGWUhvVWc5SkNWUzVmbk5RN0xpVmFrQWJ5dXoyR2Js?=
 =?utf-8?B?WUZwSnBNajVCbmM4MWY3OXcwcG82bzlLL09IZko1dlNGU1JpbGE2ZFBHRnE2?=
 =?utf-8?B?RTNrUkhxYjRQanFNRmVNMWhINVNaZjNBb0x1Z2ppUDc5ZmwrUVovaXMwemJ2?=
 =?utf-8?B?OWtmQmdVMzV3OHVFK1hDVFhRS2hQUlJrSmE0UnpJUEF5Nmw5M0Zldmw0K0RN?=
 =?utf-8?B?dC9MZEZGK2V6c1pWa2xwR3QxTDRjZHUrZnNLeXJObkpTc2tXYVZMdDI4UnVZ?=
 =?utf-8?B?SFo1K0RXbEVvVk42My9WOHVOQi94emdCZmZvS05hdXE1STk0ZXU1cnA3S29S?=
 =?utf-8?B?MFlWMU1Ib0s3WGRTY0d6dGFZV1VUaE12Z2Z2L2c3dzRrL0pPTHJWZXVVcnp0?=
 =?utf-8?B?NFQrMXFSN0NJTEJ0MzlCYXcveVE0ODVLYTlnU05VVmRGcUN2Y3FHazRiditr?=
 =?utf-8?B?OFVzc2dPM2tmLzFSL2lZbXRaRzVFaDFKN3Y0TXZDTEVYU0RzZDg5WVY1TUdH?=
 =?utf-8?B?WVBpSmpMQTJmaHFRYmQxcDNHelc3Y2lSMnpYb0NRbGdKVmErSkYrUC9Gemkx?=
 =?utf-8?B?UUdEbzdTRElGd1QrbWFHMWd6OGt1VUh2emsxZTZhRU9DSjNVbFg0WGZOa3k5?=
 =?utf-8?B?N1Y1VmUxUFgxaVhDWUYzWXJBM3N1YWdNS214OXVmdWtQdjMrUlF6ZVZyWTJK?=
 =?utf-8?B?Q0owZ2x3UDBPVklMQjlEQ0hpM2hKMEZDZXZLVXVHdG1wUVczOS9PbWU1WmJL?=
 =?utf-8?B?QU13T1NaOG9tcjZBN0NOOGQvMjQwV1Q5WmV4b01KZjVoSzMzWG1PV3JZWExY?=
 =?utf-8?B?bTE2blJrK3dTMldIWGMxUGhGYnBWSTlpUmtNcDdzUFMwT0ZWZXhPa1BiOUhC?=
 =?utf-8?B?aDd3UmZzUDlQN3dDeldjeWdHWURjaXVyZ0tlQU1HbjFhVjFpMDBVV3VENW1M?=
 =?utf-8?B?L2xwRTYyY1RwVlVTVWpDQWprZjhTZjV0VmZ2WXlUS0NFTEtuZ2xUcWJ0b2J3?=
 =?utf-8?B?bUNxa2Q0MkpFZ29IZjA4aDF3MzA3UThkcGM3N1laQ2VDRWNjSXZZTlR0TWps?=
 =?utf-8?B?S1hLU09lWkJlQlREaExSZHNONnU2NjlSZlFMUWxHQVdyOEMzdWk3REQ0KzAz?=
 =?utf-8?B?a2todHVqT1RQS2hXd2wzQWpPU2pNc2VNNlMxbnZwMFNTNmtYNlNKc0puZHE4?=
 =?utf-8?B?VXZyRDROem5ORi92dnNxeTdFUTZPNmlmYis5MmI0TW1XUG43dmJESS85Nmhw?=
 =?utf-8?B?VFVvRlZvbkw4aUFyaS9OSmJFYm5Eb2ovWGFTWFBaZGJzMkN4cU5Td3RJNEE3?=
 =?utf-8?B?c3htRmRLMkF6SkZXTkZ4TzBpcExZVW8xZnpuOUNQdndKUDNhZFozTzZmQUVY?=
 =?utf-8?B?Qnk3VFpHNFY0cEdtam1lc0RQQTh1eEpZdUJsTUl5WHFSazg4YnJINEdHYXBi?=
 =?utf-8?B?dGpzSGdvRkZGZEVLUUxQRDQvalVFaHFCZ0EwclhaTEdRK2E4V2l2dThLeUxy?=
 =?utf-8?B?MlljUWkzZm9yR3FNTlZoKzIzZXJBaCtPT0NsRHhSOHZ2R0RvRk91T1BDNlVI?=
 =?utf-8?B?ODF3b1U4R3JpbTRFNy9lTHhrRXllMGpJNUxYQitxQXpWbERCZEljS0p0YmN2?=
 =?utf-8?B?RWNlaXoxeHpOa0lZN3lOWlIxRUU1VEoxMUtMYXNuZjZaZE15aDlNdG5KcnNw?=
 =?utf-8?B?V0laRWw5aS96MVlWUHdLY1pXaGYzVWxsY1BZdVllNWFONnRHZy91WG9kaE11?=
 =?utf-8?B?b1hIeTJwS2lOalg4S0p0ZHBKaHI2TCtyNjFqUkQ4N2dOSmlCYXRHR2tkTGs4?=
 =?utf-8?Q?LQJo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cCtBVEczaUpQQzV0WTlnRWZsbXNGVTNjcGtRcGtWRng1VHd1aUMxZG9HUUxj?=
 =?utf-8?B?ZG93VkVpS0NXQ3RpUzlPVHBNa1FyaGxGVmdiMHFvMlAzeDVpMlBXRDhJdUJE?=
 =?utf-8?B?STRNV0VaM05IUGVWNW4yWjRzT0VKOE9TWUNUUWJ3WE1tdXdabVN1ekJJa1lV?=
 =?utf-8?B?OG85U0I1U05VTnMvaFpJVmFMcDc5cWZBNE9BUU42ampOaW8ybG81dStCOWZN?=
 =?utf-8?B?V1MvbWJwbmJ2K3NsQ05rNDFHQXN5ZnZ4cWZNbkt3T0hFVDJOeXFXNzVqNG1h?=
 =?utf-8?B?STlOaklhSm82cWVnVVRwbXNwR0tVSDcvSU1Lb2JkcGtTaXU1a0tKYml2UXU0?=
 =?utf-8?B?d2JwZ0RoOWwwS0x4dVhMNlJ1ZXB4NkJRVU9xUXg1c3BsVzRVb1ZjNEkveDA5?=
 =?utf-8?B?QXJPclZUZHVuN2JiYUVaSm1VV0ZFS29kQVVhMm1XcldydTRkRFFuTmROTzF5?=
 =?utf-8?B?SGF0T0Z4eUw1cllLV0RVUm16QUxJODNUK09GM0IxZVlJVUxXN2EzMHRRRHN5?=
 =?utf-8?B?cVhMQzVreWRDaDNIS0JJQlRUaFBXOVFTSGpSNjMxRlNTSXVIeDE5N2dmYk9P?=
 =?utf-8?B?cGJSNHNyUlZML2ZWRU9vcmxyWHgyOEU1YkV0N0lwZHBXcXdRN1FPUXRyY2tx?=
 =?utf-8?B?aW1adFFlK0gvVis2eDhNdVVkNTRzNUtsNFNMQ3IrSXFWZmUyVGI3WlpBTTBQ?=
 =?utf-8?B?YlR2eldtbWNqaXVOQkJ6emc4NEtnaTErQm8rWlNTRnZ2dG1tNi90VTVHZm43?=
 =?utf-8?B?MlBXYTg4R0NMakw1d21ydSt0a1lRUXZUejJlNFpwZVFpSUw3M1pHSHFhMVpQ?=
 =?utf-8?B?bWlxWGlGa3VoREFpdUM3dFRKTmwrME5hVkpGT2VjaThVOXU2dkdEQ1hHNFRu?=
 =?utf-8?B?bE9SZUJHSVpyYUM1dFA5YmdZMTY1NVFoMXh4OUNCbktqek9oSEZwRXpFdHRQ?=
 =?utf-8?B?M3pVZGpydVJ1L3M3cUZIaXorNFhFb3c1SmJXSUJWaXVqazdhWWxPRHpUalhp?=
 =?utf-8?B?V1RRMHV5Z2Y4NS8zaEt3dUQ3YTRKb1QwakY3UHowVW5HWjRuUUtCMUZEQ1BS?=
 =?utf-8?B?dDdDY212ZitIZnYwYXowY0lKeVcyTWlQWXoxdWlUamJRZThSUnNYSGVhNTZ0?=
 =?utf-8?B?YmJ4bjB1MWtkN1RiaTl5Y09RNzBTSXdSaGVNZjRkcFRKem9FdGdjN0dQYUh3?=
 =?utf-8?B?NmoxUXJtZjV1RXBVbGxnOUE2blovcCthd3pLckdPQ1lsUGxibW02VjNXS2pq?=
 =?utf-8?B?Q2dmSzR5TUFmQnM5RVpkUGlyZStaNE80SndYbnhHQUw0QjJmY1hjQ3VFbFd5?=
 =?utf-8?B?NWNCU2hmRXhzOEtNdDBFT3JwZzJLWEtiT292L2U1eEVxeWpZSXhiT2RvVEpo?=
 =?utf-8?B?ek1rSWNyQVJRQVVDWlNGcDV6RFYyd0pJVTBEb0FSN3FVcmh1RlBDTkJJZkNk?=
 =?utf-8?B?MkQwS0djUGxidkN5Tk1CU1oxcERSTFFjVFh2ek5zUUh5c01lanB4aXdaQms2?=
 =?utf-8?B?WVNScVlPZTg4NmgyZEYvcjByd0N4cURHb1NVRGRZQ0ZJd1U0aWIveWFkVXQv?=
 =?utf-8?B?R1A3M2tNTHJRNEJzOWdjR2JvZUplRi9iU2ZmTklVNklkejJEK0E3NmhFTXRK?=
 =?utf-8?B?cktTMzdjcWJvd044NjcwVFlCY3c3RG4raXN4Q0tpeWpuNnc5SnoyZE5KWHVZ?=
 =?utf-8?B?N0thZW5OOWswazMySFVkUmVPMHo4a1ptdzdaekM3S1F5NUhRemxJbUdVNUJq?=
 =?utf-8?B?Z3pJOVE1TnJJQTZTeFNjTTMyUWtjYjlDR0dGUmFGOUJiemIvRGRBRHkxMnI5?=
 =?utf-8?B?Q0E5NjE4NU1tUmtMVWRrVEVKMXpmRGc5OGJkZXQzVjJyZGVGUGJoWFBiSzZC?=
 =?utf-8?B?eDFCSjAyNWNORC9SZFlyM0QwNGI5MVI2TGxpTDRUaytjZEdOdytwcE94bFR6?=
 =?utf-8?B?YmFndVJMZW8xbWc1Q1plcUtwSlRsZTlJa3ZKQjVkcCtGaEswdWdMNVE4VHdz?=
 =?utf-8?B?Q1F4OXV6UW42bWYzQnFyK1FMV2t3K1hkaElicXQ1bi82SXUvY2c0K2hMOGZk?=
 =?utf-8?B?RS9EZFFsdDJobEJiREhDQzAyMTA3dk9UOEtzS2pZNGQ3dXRpY3d0SDJTWFUy?=
 =?utf-8?B?ZUptSTB0ZWF4T09XTmZsNGhUcEp0b2szSkRXN2xLSmQ2UXdpbDBDVlFDL1FJ?=
 =?utf-8?B?WiszbEpjUTA1Ykd3OThScTZwcTduYnhPem5OWHYzbUExZ2k1c1YzQTFtb3Bl?=
 =?utf-8?B?eVlwb3lDUTFJRy82TUk4U2FTR1BqZkxyNGhWNmlWZ0haTjdYRm1RbFVLT2RI?=
 =?utf-8?B?U0FQUVRMcExzdWhRaW5NNldKUmhNcUNDMGFIcFJCRWV6SW5ueERVZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 64806e5c-c1bb-4f8d-90e2-08de67f6b5d9
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 16:17:24.7535
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kNRrivDhG2UZ0aa/DyCJLgF4YajyVRDCUiPv9h45uA0aasq5OtJ8412LBPVcT/3htQGJgMk3qGFOu0qRZ7YYuQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5769

On Mon, Feb 09, 2026 at 05:04:55PM +0100, Jan Beulich wrote:
> On 09.02.2026 16:55, Roger Pau Monné wrote:
> > On Mon, Feb 09, 2026 at 04:35:04PM +0100, Alejandro Vallejo wrote:
> >> On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monné wrote:
> >>> On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
> >>>> It only has 2 callers, both of which can be conditionally removed.
> >>>>
> >>>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >>>> ---
> >>>> I'd be ok conditionalising the else branch on...
> >>>>
> >>>>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
> >>>>
> >>>> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@amd.com
> >>>>
> >>>> ... to avoid the danger of stale pointers, with required changes elsewhere so
> >>>> none.c is only compiled out in that case.
> >>>>
> >>>> I'm not sure how much it matters seeing how they are all unreachable.
> >>>> ---
> >>>>  xen/arch/x86/mm/Makefile        |  2 +-
> >>>>  xen/arch/x86/mm/paging.c        |  4 +-
> >>>>  xen/arch/x86/mm/shadow/Makefile |  4 --
> >>>>  xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
> >>>>  4 files changed, 3 insertions(+), 84 deletions(-)
> >>>>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
> >>>>
> >>>> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> >>>> index 960f6e8409..066c4caff3 100644
> >>>> --- a/xen/arch/x86/mm/Makefile
> >>>> +++ b/xen/arch/x86/mm/Makefile
> >>>> @@ -1,4 +1,4 @@
> >>>> -obj-y += shadow/
> >>>> +obj-$(CONFIG_SHADOW_PAGING) += shadow/
> >>>>  obj-$(CONFIG_HVM) += hap/
> >>>>  
> >>>>  obj-$(CONFIG_ALTP2M) += altp2m.o
> >>>> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
> >>>> index 2396f81ad5..5f70254cec 100644
> >>>> --- a/xen/arch/x86/mm/paging.c
> >>>> +++ b/xen/arch/x86/mm/paging.c
> >>>> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
> >>>>       */
> >>>>      if ( hap_enabled(d) )
> >>>>          hap_domain_init(d);
> >>>> -    else
> >>>> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
> >>>>          rc = shadow_domain_init(d);
> >>>
> >>> If you want to go this route you will need to set rc = -EOPNOTSUPP;
> >>> prior to the `if ... else if` on the HVM case.
> >>
> >> Maybe this instead
> >>
> >>     else
> >>         rc = IS_ENABLED(PV) ? shadow_domain_init(d) : -EOPNOTSUPP;
> > 
> > But even for the PV case we cannot call shadow_domain_init() if shadow
> > is compiled out?  I think you want:
> > 
> >     if ( hap_enabled(d) )
> >         hap_domain_init(d);
> >     else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
> >         rc = shadow_domain_init(d);
> >     else
> >         rc = is_hvm_domain(d) ? -EOPNOTSUPP : 0;
> 
> Wouldn't this still leave NULL pointers in places where they can be rather
> dangerous with PV guests?

Possibly, I didn't look much further on this patch, as returning rc ==
0 and not having initialized neither HAP nor shadow is likely to
already lead to NULL pointer dereferences.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:20:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:20:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225717.1532276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpU0M-0007X7-BF; Mon, 09 Feb 2026 16:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225717.1532276; Mon, 09 Feb 2026 16: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 1vpU0M-0007X0-7a; Mon, 09 Feb 2026 16:20:54 +0000
Received: by outflank-mailman (input) for mailman id 1225717;
 Mon, 09 Feb 2026 16:20: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpU0K-0007Wu-VL
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:20:52 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4c503942-05d3-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:20:51 +0100 (CET)
Received: from SA9PR03CA0003.namprd03.prod.outlook.com (2603:10b6:806:20::8)
 by DS0PR12MB7654.namprd12.prod.outlook.com (2603:10b6:8:11d::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 16:20:45 +0000
Received: from SA2PEPF00003F63.namprd04.prod.outlook.com
 (2603:10b6:806:20:cafe::e2) by SA9PR03CA0003.outlook.office365.com
 (2603:10b6:806:20::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 16:20:45 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00003F63.mail.protection.outlook.com (10.167.248.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 16:20:45 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 10:20:42 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c503942-05d3-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FEmzFPmU0J0J+7PSiQi7aW/5NPtEGaHEc7iaYoKvdBsHPsBYLKa2yJ/0KLa+cSGst9AKx717gADjjS57BZnylXSrsZsGopWxQr5ZvJyjZfT2IUHIVViL7/xrwzC451RDtWNglQYG1PR6IGmw1HKmt9g3kj5kVn9+HesBbzwXhPcFlP79BGy4Z69yIuEMIwrYWz6sQVq3zlKOFmdjUm9Zk5FdvasTynTBCCAGTw0PLRRrUe7Kxu276a2aFnbty0//Z4+IUC07qS1ydNCnTGRXjQouZB49FJLJcyS1QShWRY7xvtWV49sm8FluEi5PeXsUvtPXjnc6Zd+T+tHwIdBIbQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=odYkBrHhgmLyIEpIb0icSeEh36oiH3OQZicvnz2jtoA=;
 b=qGV/XmNeysoYaWn1rgWSghO+r+z384ziyifIy/Z+LDYCg/jKv2kZIEtn3ekIkKs++WOAGAn8OKn9i+NQ+S7qBj7Z21DWFx4oQI4Wr4RDQRcqlA6mFkq8z9ofjzkP9itzIBoRLIgSHc6Vb6lk3Xo7dfzG3heLZCZToOVCi2B67FEeLACowcKbkOFU7eFgamiRkLkEV6TTaRyePaVyQmGojJVK7gxxsrg84yFOgYnecoF8FlcoWUs/qiwj1l9lcmN/rxCJCYMpfuLDKlCwYIPcGSTOhGptWr8XkukmZomX7DFtSbhDKhgaQEql19NsOiMOm33MgAfUtVVcPIxKx/nf7g==
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=odYkBrHhgmLyIEpIb0icSeEh36oiH3OQZicvnz2jtoA=;
 b=X9qy7veBBJL6zWeLcq8isG310W6h/QHnCQl8rMZwZdJ34V8CLF7VQhEJEV1Q4xAhmR7JSa9VFaM3lqn15MIkylVnbKzzz4sSR3ydEMkecC0hPA5Jo1kH2zjw89jfyzofYORyH47jjavKv/48f/x/tZkmjYFGmfU8j+VZxkgewIE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 17:20:40 +0100
Message-ID: <DGAKH0QH3EG8.8GOWCPNH2Z79@amd.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
X-Mailer: aerc 0.20.1
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <aYnyY2MArv4vTXsY@Mac.lan> <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
 <aYoDiDiJ4rRLxhmw@Mac.lan>
In-Reply-To: <aYoDiDiJ4rRLxhmw@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003F63:EE_|DS0PR12MB7654:EE_
X-MS-Office365-Filtering-Correlation-Id: 688b8573-1564-4b72-f56d-08de67f72dbf
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?VTdyS2JRaXZ5aHhGQnl2UWN0K2J3RG1DTFF1RG9XNnEwU2pwT2s3K3JCSzAw?=
 =?utf-8?B?Zi9sbDRxRmNjcUdrVTAxTG1pNmpRa0lDbkxqeVVPUmRGK2tCZlJzdE1JMjFG?=
 =?utf-8?B?c0ZpVUVLcGg0WjJPUVdRaVhLL2IzSHRURE1WWXJ0VngrNDFNSWt6YXhnQ3FK?=
 =?utf-8?B?TEtwQWRON0ZPZ3VCd2hZdDZrNFBlTmlMVW05a1VzUm9XZkhldkl5am1QZnpI?=
 =?utf-8?B?WXRML3V2ZlJsYk0wYmRrYjhBN21hTTNqRWRFdlU5L2I0b0d6bWw4U1JTeDBX?=
 =?utf-8?B?WU4vUFBlTFBsblFqblZ2VlZVVThENEJ6ZnJYaWY4aTMyYnJkOHYrSzdmc0tQ?=
 =?utf-8?B?em13bGt1T1FJWlBHV21QNUYrVWtxWElueHBWYXMvMCt1TkJZdnoxbGV5eXQ4?=
 =?utf-8?B?eVM3c1Ewei9LUXNtWnh0OHhyQzRONHlnWWJCSllEVzJYR3J2UDY3OWVOcTJi?=
 =?utf-8?B?R2J6WkNJSmtXNzFYWGRBWG9OL3YxYU9SSFV0bWtleDRGYTV1Z1Q5NmszRzYw?=
 =?utf-8?B?OWZYemV6MkRhcm82Z1gvQlFkT1F2K1BBU3lmNHhSbzM4VkliRUc5TzdYWHRH?=
 =?utf-8?B?cnJUMHBhekFTREQxeGp4ZCtnelVNUi9YbU5meElJc0tLVDlRM2pMeFRPYnB2?=
 =?utf-8?B?Ym53eUdtWCsySlFkeW8vVTNoYlJzYWdTRUJWbjY2TXZMbnZpLzZZd2pxaFJ3?=
 =?utf-8?B?Mk1RYUpQN2JHdVpPN1p6Tzd4QTNzeitRN1ZTNG80ekhkOGs1ZkNrdFoxVEhv?=
 =?utf-8?B?S2dRUWNKMkpUbmRPSU41aWxxZHduZjZhMmNNZGZnZVdjeVVvTlMrd09Zblpl?=
 =?utf-8?B?NTUxVlpVK1Zoem1zVzdZZHdBWjNnRzVNOWZiK0p2eFdyQS8xYms5SjVDdkta?=
 =?utf-8?B?TEQ5THd0M2RBaWNLWmcwamVrV0tZU1VsZE5qdUFOVzAwTlBJdEx1M2xLMWRX?=
 =?utf-8?B?b0lqdUtOL1dkdTd6bFdjcDUydkQvWmpzMlMxTG4wYWtVWWFuaWpaZFNCdWRK?=
 =?utf-8?B?WCtOSHBjTjN4Ti90c2s4Y3p1eGhFcmN2V3FoaGpuZXJmZzVTcXkrd0dpaFRO?=
 =?utf-8?B?aXZ2V0UxQjlzdHZtU000RXZ4b3hvNEsvZTgzdXBLTnZyeXN0b3BEbnB0VHhv?=
 =?utf-8?B?M0tLZHZNK0dmejQ2NG9wMXNOeTgweDJYbjVvTi9hekIweHVwbVhlZnh1b3U2?=
 =?utf-8?B?V1Ewd01uQWRvVXNJMWNZS2RiVkNzZWRZUkUvYTJ1K2paM1pYRWw1Sndmb0Ux?=
 =?utf-8?B?MVNyUGNWVjVMT0JDR2lIdjVBNUcrQ0ZFbm95NVV6Y3lsQXF3cWlnWXVuRGt6?=
 =?utf-8?B?c0t6SkUzaXNVZ1k1anA4N0pHMFdBT2dSMTVOa2xWQ0U5dzZqY0g1Q2l0WE82?=
 =?utf-8?B?b0FzREUxc0RPb0NSenFSVWhnL3B5d0h3dFNNYWRnWXNCUmd0RmVIWWtYa3Ru?=
 =?utf-8?B?RlZJNEw1SzZoWk1NVzhyL0h2Y0svU0dTMzhqY09YYndXaXRycS93QnNocCtX?=
 =?utf-8?B?MWpGRGFqWkdpeVFudmFKQ2NJZHhSb0c3WGYwYmdheStLS2dVVksrUDA4eUNt?=
 =?utf-8?B?d09PZHpRa2NDSzd0WU80TzBJdjBCYnJSQitpbDVSNjUzRWVsMFFzdXMxNm8y?=
 =?utf-8?B?dDhGWml4aUEzdE9GUmExWEdJemNKdE1KWmYrbUg0dzFabnN6TFQxN2VTWHEr?=
 =?utf-8?B?NWY5czNsaGQ0UlNSV3BqVW1qSzRMUXY2em5FWkUraFdwTGpKM2NhS1VFeHIr?=
 =?utf-8?B?RE1pWHBlNWE0dkd2NVNFUTdsWFpzK2ZPRWs3UGYxMEgxQzFqNHBoQnJnL2dE?=
 =?utf-8?B?ZTRzenRiT1luMTRwQTUwc2FuQkZiMk9oZW5mdllMS3RjL0ZOeTNua1pEVDNY?=
 =?utf-8?B?dTB5Qk1Ya1VNcWdNMEVkZkExNFErK3lxOVVxRjQwR3BmWVVvVFdRcUJvTFRQ?=
 =?utf-8?B?WXlOSWRONDZETDhZN3o5RXlsUmpCb0FWOC9CQ25OOWxUSlIzL1crb0NKRzJh?=
 =?utf-8?B?VnU0RkNINXVZeGUzbEwxTEV2bE56aUI5Z2MzQ09sMlhiNU5NTE9ONnU1blJD?=
 =?utf-8?B?aVBHMmpwM2RhVTlYcERydityaWx5RXFXa1BFSTlQVHhBUmQzeU5vUGd4R3Rl?=
 =?utf-8?B?TkpNMUVvRUxMa3VUWGJ3aHV1Q2luYkZoVnhKMzRoRUNqWmV6QUJ6U1ZIRm9l?=
 =?utf-8?B?VzVrRDFNYUNTNUxWaCsraXoyTUhiWG5mOFIxRThrYmNpNFB0OTBJM3B3QmNX?=
 =?utf-8?B?ck1EekhZdm40MkhWbWNmSVV0VDZnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	pYOj5QY/FMhctV1WCLN14OPzqT7Qz8RovluPIT4g9nk8a8ml6LidzKg2ZA2nqBoU2rRTPKFuthkKXYYo+393Z9pKg2aeyDgw+XisH9mYzWDUynouid2Svez6Yk9KTom0tKN5Fa1F/yAXQbMwsNRL974LHcWcvI6PT9ljIJbBQE8VKvseyOAuuzwCRzeIbMbSOwqLPgXy4nQpyvbPr3JBm4Ci8y2KrJRf1V7NfWFuBKN034PSsc4oL1nYuJb6OAngp7PV3hKN38eeZRNJnIARJYAazQOjyx/L9rLZ6napXmd+vYnmM4/DeKkwJIligdmz7p4etYu210eSmYrIw2m2BxiEu3J7m3eVnWNL7McwGIaNVHiFCYVbB8XDWTovuo11ULXHtgf+hxODVUmfbtiZX9bXftdOqNVoh3CAEf48v334nErg6hleJi+0kljbcZBX
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 16:20:45.4589
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 688b8573-1564-4b72-f56d-08de67f72dbf
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F63.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7654

On Mon Feb 9, 2026 at 4:55 PM CET, Roger Pau Monn=C3=A9 wrote:
> On Mon, Feb 09, 2026 at 04:35:04PM +0100, Alejandro Vallejo wrote:
>> On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monn=C3=A9 wrote:
>> > On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
>> >> It only has 2 callers, both of which can be conditionally removed.
>> >>=20
>> >> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> >> ---
>> >> I'd be ok conditionalising the else branch on...
>> >>=20
>> >>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
>> >>=20
>> >> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885=
-1-alejandro.garciavallejo@amd.com
>> >>=20
>> >> ... to avoid the danger of stale pointers, with required changes else=
where so
>> >> none.c is only compiled out in that case.
>> >>=20
>> >> I'm not sure how much it matters seeing how they are all unreachable.
>> >> ---
>> >>  xen/arch/x86/mm/Makefile        |  2 +-
>> >>  xen/arch/x86/mm/paging.c        |  4 +-
>> >>  xen/arch/x86/mm/shadow/Makefile |  4 --
>> >>  xen/arch/x86/mm/shadow/none.c   | 77 -------------------------------=
--
>> >>  4 files changed, 3 insertions(+), 84 deletions(-)
>> >>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
>> >>=20
>> >> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
>> >> index 960f6e8409..066c4caff3 100644
>> >> --- a/xen/arch/x86/mm/Makefile
>> >> +++ b/xen/arch/x86/mm/Makefile
>> >> @@ -1,4 +1,4 @@
>> >> -obj-y +=3D shadow/
>> >> +obj-$(CONFIG_SHADOW_PAGING) +=3D shadow/
>> >>  obj-$(CONFIG_HVM) +=3D hap/
>> >> =20
>> >>  obj-$(CONFIG_ALTP2M) +=3D altp2m.o
>> >> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
>> >> index 2396f81ad5..5f70254cec 100644
>> >> --- a/xen/arch/x86/mm/paging.c
>> >> +++ b/xen/arch/x86/mm/paging.c
>> >> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>> >>       */
>> >>      if ( hap_enabled(d) )
>> >>          hap_domain_init(d);
>> >> -    else
>> >> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>> >>          rc =3D shadow_domain_init(d);
>> >
>> > If you want to go this route you will need to set rc =3D -EOPNOTSUPP;
>> > prior to the `if ... else if` on the HVM case.
>>=20
>> Maybe this instead
>>=20
>>     else
>>         rc =3D IS_ENABLED(PV) ? shadow_domain_init(d) : -EOPNOTSUPP;
>
> But even for the PV case we cannot call shadow_domain_init() if shadow
> is compiled out?  I think you want:
>
>     if ( hap_enabled(d) )
>         hap_domain_init(d);
>     else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>         rc =3D shadow_domain_init(d);
>     else
>         rc =3D is_hvm_domain(d) ? -EOPNOTSUPP : 0;
>

none.c would need to stay in PV for what I proposed. For what you proposed =
PV
would return 0, but all the hooks would be gone. And I really don't know if
they would be triggered or not.

>> And gate none.c on PV && !SHADOW_PAGING, which seems to be the only use.
>>=20
>> It's a lot easier to see the safety on the HVM-only case, particularly w=
ith...
>>=20
>> > is compiled out, and the toolstack has not specified the HAP flag at
>> > domain creation you will end up with a domain that doesn't have the
>> > paging operations initialized as paging_domain_init() would return 0
>> > with neither HAP nor shadow having been setup.  That's likely to
>> > trigger NULL pointer dereferences inside of Xen.
>> >
>> > Also, seeing the code in arch_sanitise_domain_config() we possibly
>> > want to return an error at that point if toolstack attempts to create
>> > an HVM guest without HAP enabled, and shadow is build time disabled.
>> > I've sent a patch to that end.
>>=20
>> ... this patch you meantion. Thanks.
>>=20
>> I'm guessing it's still a hot potato in for non-shadow PV, which strongl=
y hints
>> at our being better off leaving it in that case. On HVM-only configurati=
ons it
>> seems rather silly.
>
> I'm not sure I follow exactly what you mean.

I'm not sure _I_ follow exactly what I mean. Part of the confusion is the
overloaded use of "shadow" to mean "shadow paging" and "fault-and-track"
of logdirty behaviour.

> Some rants below which
> might or might not be along the lines of what you suggest.

Thanks.

>
> PV needs shadow for migration.

shadow in the sense of shadow paging? So PV-only + !SHADOW means migrations=
 are
impossible? Why can't Xen operate on the PV pagetables rather than using sh=
adow?

> HVM can use shadow or HAP, and our default is HAP.

For regular use or migrations?

> For HVM only builds it could be possible to not
> recommend enabling shadow.  Even for deployments where only dom0 is
> using PV mode, it does still make sense to possible recommend not
> enabling shadow for attack surface reduction.

What do you mean by "enabling shadow"? compiling it in? Running HVM without=
 HAP?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:23:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:23:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225723.1532285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpU2t-00082c-NA; Mon, 09 Feb 2026 16:23:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225723.1532285; Mon, 09 Feb 2026 16: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 1vpU2t-00082V-KK; Mon, 09 Feb 2026 16:23:31 +0000
Received: by outflank-mailman (input) for mailman id 1225723;
 Mon, 09 Feb 2026 16:23: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpU2s-00082M-7x
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:23:30 +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 aa2ac9d4-05d3-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:23:27 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4801d7c72a5so27099085e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:23:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5d77b3sm176865e9.2.2026.02.09.08.23.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 08:23:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa2ac9d4-05d3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770654207; x=1771259007; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WLZBlF7qRqVbL5N08knlrO7uAkOzZVVxD6CZc/XwX90=;
        b=VFOy4Z8QBxh+tTyu6U8vxLDeAxmMokK8XQ+450vRuGGWJj6wpHjceIlYZ3gPPjyU/M
         if77AUgc3YWADAAC4FV5ZYYyl4S4ZuEahPr7n+cftTUyNSTP1951klQ/ijmBo+E3hWx9
         Lz/SSeayk7vIhexZUD6OIKAUDfBbXv+I8yitHD79Tz2pfBQUel1UNai69u9KerHKjcw6
         sT5Ypdjg5Ao+1Jw1I4IeSB9giMPMRcQ6Czkc8VjhkT3IVg+YbynoHU1+BKVLlq0pec58
         WQ/VgeOSU0demQWOq8gberCdOUl0+Stgn+6LkFSuXnRoJBYg6OVfELtT2nFoz6uPKAdj
         wRXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770654207; x=1771259007;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WLZBlF7qRqVbL5N08knlrO7uAkOzZVVxD6CZc/XwX90=;
        b=i+VKc9rzKc1oFIeMensl8t6QTL88I+ExUqwP7tBFD+lgQaWw8375BsfAXUghSSnwq4
         WO53FzPddCu+rsOM/uRHLpQLOZbO08mILsOlb4T9rnQ4qtaEH4SdD0VSM/+vI9T9bJR7
         jiuAAAugGKtcD04wLj4Rg6KxU83k0Qx9lld8lCIqh5Q393R+rXpBDapctYn4JIIPld+w
         EVo71x7YN4w0ybnYJJQKVcbS6X3DBvBBPbyN5KFeE8s4TpKf/mcWkXyoKFxxQGi5zNJ4
         mHFLHkryWeReU8+bsrBnbkZ2sBFMCenFO6xTjsh8VFkFJhErvHnc15xk+KNoGkSJBlW9
         5yyQ==
X-Forwarded-Encrypted: i=1; AJvYcCWfBPXfsycga1GT1B7mpi3VnhSts/ZEQqbMn1wHzdN4uYWuKVEfU/TihOfVgNzwLF154mOgJcRi54g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwSJkzGHip2/KfpzN65/ZYDWcGe2cp07Xhdd7iXkj4LfquVBpjo
	DCFKB1CUzsYqta3u3gj9FfLbDuvjc8nj7bAIi/dTnIMmz5kpP9DzBPmMi4igkTZxaw==
X-Gm-Gg: AZuq6aKVZi3W+eyhNS3vPbsNqfA7ZToqx7rsW1NRPFlFqhEoc/G94tPVYNlAcqvCJIm
	P7G1kaFWJNOSKeNaUz4HFtoLqekpF47dOIfznoN0ii4UYA7zKM1C6kH0BaLYhv19dociRfPxFQ/
	AA0791nCUVLQRsm1/Duu7ZW1MXO+Iu5mtN6gYOPTPrZ9OhzknEFmgES7waSrJ5bk2eMjyD41+WV
	efZzQXZvLiQ1mQMw0KhBdy2PgTXwjbq2saeIb8wc+AQ5pxWs/5jbYeRLJXNEPu67zJSmGSxPww6
	T7Ljdo+bEYhdNCGEJrWKBFJiDzzDmBHdHza2yneHnmx8ZLGwPBNUAejNTbv5npF/pLn/co3TFu3
	ajlXvtf80mmQjY7DkUP8QpB3WRaoq1e8mkFQ8me/w90CVcCLMbMXa3Egq+PpN3mKxEfe2cnm17e
	BU3r0JRjWCaWEc0Lz7uqgXo9Pae2N2/2YTZih8hSq0DWFm9dX3o0j8rl6FLvqLSfaohWjADoRS3
	chGWSber6VThg==
X-Received: by 2002:a05:600c:1d01:b0:480:1a9a:e571 with SMTP id 5b1f17b1804b1-48320213a37mr177302595e9.22.1770654207090;
        Mon, 09 Feb 2026 08:23:27 -0800 (PST)
Message-ID: <42c248e7-9747-4281-9fca-1b9950a06bf8@suse.com>
Date: Mon, 9 Feb 2026 17:23:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, jason.andryuk@amd.com,
 alejandro.garciavallejo@amd.com, xen-devel@lists.xenproject.org
References: <20260206233005.417233-1-stefano.stabellini@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: <20260206233005.417233-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 07.02.2026 00:30, Stefano Stabellini wrote:> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -652,7 +652,7 @@ endmenu
>  
>  config PM_OP
>  	bool "Enable Performance Management Operation"
> -	depends on ACPI && HAS_CPUFREQ && SYSCTL
> +	depends on ACPI && CPUFREQ && SYSCTL
>  	default y
>  	help
>  	  This option shall enable userspace performance management control
> @@ -660,7 +660,7 @@ config PM_OP
>  
>  config PM_STATS
>  	bool "Enable Performance Management Statistics"
> -	depends on ACPI && HAS_CPUFREQ && SYSCTL
> +	depends on ACPI && CPUFREQ && SYSCTL
>  	default y
>  	help
>  	  Enable collection of performance management statistics to aid in

Is the original HAS_CPUFREQ misleading here? do_pm_op() (in pm-op.c) is also
doing some C-state related work. You may not compile that out just because of
CPUFREQ=n. Same for pmstat.c.

> --- a/xen/drivers/cpufreq/Kconfig
> +++ b/xen/drivers/cpufreq/Kconfig
> @@ -1,3 +1,17 @@
> -
>  config HAS_CPUFREQ
>  	bool
> +
> +config CPUFREQ
> +	bool "CPU Frequency scaling"
> +	default y
> +	depends on HAS_CPUFREQ
> +	help
> +	  Enable CPU frequency scaling and power management governors.
> +	  This allows Xen to dynamically adjust CPU P-states (performance
> +	  states) based on system load.
> +
> +	  Disabling this option removes all cpufreq governors and power
> +	  management interfaces. This is useful for real-time systems or
> +	  minimal hypervisor builds.
> +
> +	  If unsure, say Y.

Looks like we're trying to get rid of such re-stating of what the default
is.

> --- a/xen/include/acpi/cpufreq/cpufreq.h
> +++ b/xen/include/acpi/cpufreq/cpufreq.h
> @@ -381,8 +381,19 @@ int write_ondemand_up_threshold(unsigned int up_threshold);
>  
>  int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq);
>  
> +#ifdef CONFIG_CPUFREQ
> +int  cpufreq_add_cpu(unsigned int cpu);
> +int  cpufreq_del_cpu(unsigned int cpu);

If already you move these, please also get rid of the double blanks.

>  void cpufreq_dbs_timer_suspend(void);
>  void cpufreq_dbs_timer_resume(void);
> +#else
> +static inline int  cpufreq_add_cpu(unsigned int cpu) { return -ENOSYS; }
> +static inline int  cpufreq_del_cpu(unsigned int cpu) { return -ENOSYS; }

Here and below - no use of ENOSYS, please. EOPNOTSUPP it is everywhere else
(unless dating back very far).

> --- a/xen/include/xen/acpi.h
> +++ b/xen/include/xen/acpi.h
> @@ -185,8 +185,14 @@ static inline unsigned int acpi_get_csubstate_limit(void) { return 0; }
>  static inline void acpi_set_csubstate_limit(unsigned int new_limit) { return; }
>  #endif
>  
> -#ifdef XEN_GUEST_HANDLE

If you leave this as-is, ...

> +#if defined(XEN_GUEST_HANDLE) && defined(CONFIG_CPUFREQ)
>  int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32));
> +#elif defined(XEN_GUEST_HANDLE)
> +static inline int acpi_set_pdc_bits(unsigned int acpi_id,
> +                                    XEN_GUEST_HANDLE(uint32) pdc)
> +{
> +    return -ENOSYS;
> +}
>  #endif

... the overall result may be a tiny bit tidier.

> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -1255,9 +1255,14 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
>  extern bool sched_smt_power_savings;
>  extern bool sched_disable_smt_switching;
>  
> -extern enum cpufreq_controller {
> +enum cpufreq_controller {
>      FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
> -} cpufreq_controller;

This enum would better ...

> +};
> +#ifdef CONFIG_CPUFREQ
> +extern enum cpufreq_controller cpufreq_controller;

... stay inside here, then also making the split of type and var decl unnecessary.
The two affected platform-ops likely want compiling out, too.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:24:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:24:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225731.1532296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpU47-0000BQ-3p; Mon, 09 Feb 2026 16:24:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225731.1532296; Mon, 09 Feb 2026 16:24:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpU47-0000BJ-0H; Mon, 09 Feb 2026 16:24:47 +0000
Received: by outflank-mailman (input) for mailman id 1225731;
 Mon, 09 Feb 2026 16:24: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpU45-0000Az-TY
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:24:45 +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 d81f7ac5-05d3-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:24:45 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4834826e555so6182165e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:24:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483203d5ef7sm140940585e9.1.2026.02.09.08.24.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 08:24:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d81f7ac5-05d3-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770654284; x=1771259084; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=t3SkBfniM4CMpQmsE2OUcSyYgPlvgbiB4rgan/SixUg=;
        b=abz4L3vViBeUeIMY7tERJJUT+U7PxcA6sT9cbFk3sFx5KGEjPORSOQHunIq3L56J6T
         LvvSEcQ3cyz61eerxefll6TWbLEUGcX/7OST8czPAd2Yqn7z2o+3JbU8vUNfioUR/ulg
         h5izrzGeL0oI0zK3jXhhDpx+XIBqraHDsA+doNbtj94z3AeQ490FL2bm4p2P8wplsiHn
         y1a4dM74jTovtsFEpI0rryb6oCMcpV8+wfHN4LvoIUnWg+8ftIm+RTwTCOp5UPibF5lo
         fvDtg2VKlXm2/fJhKgakmfDKHMKxlvKx4b9IsDAIDoG8bGuCfm//bLoYssgyI8f6dTfg
         YBsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770654284; x=1771259084;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=t3SkBfniM4CMpQmsE2OUcSyYgPlvgbiB4rgan/SixUg=;
        b=m3vhSm5qxIjnTDb+9Re2WcAphQINUzYJeaBz4+Q8PFfdNbs5PSUtrzLU2Y97pQJgmD
         ikr3tF5daUNwrYltKR1P1vzKuoUsHLX4vXBKcGh5aDRMLrOybKTgdPMp/xk3by9kXRDV
         aqHwrwVJKINuRdMFCEa39s1UXjSevZsGxkW0bPwY/Tz+7en23eiZSJPZOApWDa/WyuGN
         BqdMTUsssXTBPqIe70EYvfc3ag67lQTDFMuZBwo7UeHmcNJdgpFyMN4rOyg7K0KtBnBn
         2aaNkQagNPiTtRDn/swpQPzozHHyF5rkdTj5WBQx8hgmMaaP5S0ZszRiBbHC9Gbnjuxr
         yzWg==
X-Gm-Message-State: AOJu0YzKe9Dr+p5bxpM5ZxMYp0fMi1pbLDuuVGlwuB5YxZ+SpWbvXj/D
	eDHVwqi7nyFajsFpMYYe35AhVbckkFGoGGiYKBPSUy5OExnPUPASx2XOE3dz7FpIIA==
X-Gm-Gg: AZuq6aIQnp/nds8CqRTijPrrp4y0vgeZBb8g8CfR/zZ07S0QElfRINw+0VI8sJHalEl
	gEQY5guhTZzS0Z0nxutTKyy3xhKWzHNXdh3VSkopi0bezyZ3VW3+ChKZ05o1Apid0rP95I78QCb
	a6kisNBlcKZyiGDhmkzimTbHFAdSSyLKUImhWhjG9nBXYH1cbi8fJPGQaZMMRsnDlhDlmP7Yc2q
	z7iEbeE8dfFss+60K1MWZ6m3CBKuAgy6xyYkoQeQxsPZ4L2ids8iBE79lrPMXMiQa92PNqd2UFt
	/t2eyruSNk3F66ek4XgWipaWrIy+Styxi+KkbWIuRHbZvIX8HE80KOTlGaKXAyOfH165/K/x5Hh
	SjV6YaeG5PMosoCGR6xmPaX81MrpnwlL63KBE/xyty9lUKQpx2XzsXOAA8fgx9UNt7Z9Ml55MWw
	UubIzlDeUaMScYHkNzSaot65ECLhsTfIPxZPJ0gJp4mUA+cyRibcGGxIXDDZmR01bIMSspUqCQl
	eAc4C56dOCPdWo=
X-Received: by 2002:a05:600c:3509:b0:47a:975b:e3e6 with SMTP id 5b1f17b1804b1-48320216069mr144133665e9.18.1770654284071;
        Mon, 09 Feb 2026 08:24:44 -0800 (PST)
Message-ID: <193c1ed0-75dd-4881-b6c4-9770cbb347d7@suse.com>
Date: Mon, 9 Feb 2026 17:24:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: short-circuit HVM shadow guest creation earlier
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel-bounces@lists.xenproject.org>
References: <20260209144049.86535-1-roger.pau@citrix.com>
 <DGAK325RDOQA.3QQFQYK6R0KWP@amd.com> <aYoHO2WDnVR4wIL5@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: <aYoHO2WDnVR4wIL5@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 17:11, Roger Pau Monné wrote:
> On Mon, Feb 09, 2026 at 05:02:26PM +0100, Alejandro Vallejo wrote:
>> On Mon Feb 9, 2026 at 3:40 PM CET, Roger Pau Monne wrote:
>>> If shadow paging has been compiled out short circuit the creation of HVM
>>> guests that attempt to use shadow paging at arch_sanitise_domain_config().
>>> There's no need to further build the domain when creation is doomed to fail
>>> later on.
>>>
>>> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
>>> ---
>>>  xen/arch/x86/domain.c | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>>> index 8b2f33f1a06c..8eb1509782ef 100644
>>> --- a/xen/arch/x86/domain.c
>>> +++ b/xen/arch/x86/domain.c
>>> @@ -627,6 +627,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>>>          return -EINVAL;
>>>      }
>>>  
>>> +    if ( hvm && !hap && !IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>> +    {
>>> +        dprintk(XENLOG_INFO, "Shadow paging requested but not available\n");
>>
>> nit: s/requested/required/, maybe?
> 
> The wording matches the rest of the messages in
> arch_sanitise_domain_config().  I'm not saying that makes it correct,
> but if we word this differently we should also change the others
> IMO.

+1

>> Also, with this in place can't we get rid of the panic in create_dom0() that
>> checks an identical condition?
> 
> Hm, I would possibly leave that one, as I think it's clearer for the
> dom0 case.  Otherwise someone using a build without HAP or shadow and
> attempting to boot in PVH mode will get a message saying: "Shadow
> paging requested but not available", which is IMO less clear than
> getting a "Neither HAP nor Shadow available for PVH domain" error
> message.
> 
> Just my thinking, both checks achieve the same result, but the error
> message in the create_dom0() instance is more helpful in the context
> of dom0 creation.

+1

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:27:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:27:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225741.1532305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpU6V-0000im-EQ; Mon, 09 Feb 2026 16:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225741.1532305; Mon, 09 Feb 2026 16:27: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 1vpU6V-0000if-Bp; Mon, 09 Feb 2026 16:27:15 +0000
Received: by outflank-mailman (input) for mailman id 1225741;
 Mon, 09 Feb 2026 16:27: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=EeIc=AN=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpU6U-0000iN-6P
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:27:14 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2df235dc-05d4-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:27:10 +0100 (CET)
Received: from SA1PR02CA0008.namprd02.prod.outlook.com (2603:10b6:806:2cf::13)
 by MW4PR12MB7168.namprd12.prod.outlook.com (2603:10b6:303:22d::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 16:27:00 +0000
Received: from SA2PEPF00001504.namprd04.prod.outlook.com
 (2603:10b6:806:2cf:cafe::2c) by SA1PR02CA0008.outlook.office365.com
 (2603:10b6:806:2cf::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Mon,
 9 Feb 2026 16:26:59 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.10 via Frontend Transport; Mon, 9 Feb 2026 16:26:59 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 9 Feb
 2026 10:26:56 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2df235dc-05d4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VwuDeEBFjZD1jOoSSiwMO2yI/Q6CpT5O0yCBa2PkOYjViBp73QqXfvexCj0qrttrbdzGTcqSq38lq/zN06XEiMV4+CaI3kpTL862kH1CBiSc7ukQZwgbSa29utfaX1ywJoX//165OYpYCOyxEhRHOZw1+iU8CWFEDmCyvXi6O75pwVm6wWFuF2GNHOaPJbyKXPTmN0x1uG+h57zTt1+OwsrIba/GaQUwXmqK6/hVLr35gun2hBKa4uXQX2oQjnDT09bFXDijU6B6jxW8jmDLx6HleIJTkr1oLmhB0idLf0jdKAE907Vr79mxA4gjkbu+9/ztpWNDJ/P9RkzE3ZEtsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I0lVqEgne2CCU604ZviDZqPCpqQufrPW3RonEOcw48o=;
 b=vlU2WPWNCCGdRv+QAREUPuQ6Wqcgfa6bZDCoqO+PIGDYIsQYqyoMEe/jQ9mrXaRPhM3DGx9JDUfUrkKgZnqvabKJCK7bEa7Q6vF2l4ZK+xR/6lhc7dW+0qSPDvollFcbWs1lMDAigVwsm7sZ7aGtt+j2TRuPJwnpHvSREb2/X7EQ/P3EbFeKFOFrCwxW2iZ/6Av8yqsbEx/zwk77snJjoMMdA5wlYgmk5c98wKzOw/VYYIUaACfrTASLTMIG+DuVTUpMTPPV86D6UUCHmeczKFx0xM+6hU3aXtAO0oKr/0cxxyEG5irW/dBeHNtqLOkdIp0BNa4xNv9W8cqqJlVqqg==
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=I0lVqEgne2CCU604ZviDZqPCpqQufrPW3RonEOcw48o=;
 b=wADm73/OPPxaP4VWOD42u6r/l0V5C8W7CyYyvv5Hn1JgwPV90XvQCxd5EA8KGqYosa4udZOHZb/EArk7jhbP0FhUH94+hTYx/kiEENHm/1XPSisInNnGytzEm05vEFspTtraSVndx13gkOofPMRYNEHUZhCAUxu352y+M7jIZFI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 9 Feb 2026 17:26:54 +0100
Message-ID: <DGAKLSGGUD3Z.36NW0SSYZ8ZW4@amd.com>
Subject: Re: [PATCH] x86/hvm: short-circuit HVM shadow guest creation
 earlier
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260209144049.86535-1-roger.pau@citrix.com>
 <DGAK325RDOQA.3QQFQYK6R0KWP@amd.com> <aYoHO2WDnVR4wIL5@Mac.lan>
In-Reply-To: <aYoHO2WDnVR4wIL5@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00001504:EE_|MW4PR12MB7168:EE_
X-MS-Office365-Filtering-Correlation-Id: d303d922-cfd0-449c-d8a6-08de67f80c97
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?VUk5eGY1Ujd4clNyTnJOYXBLNGx6L2JSRTVQcHhJY1lUajZndnRRV2lqWXFm?=
 =?utf-8?B?SkZvcDRaTzZTdkJUWDRzTXpkREVGSzEzeTJHZE00WUtZSVZTbmN2cXB1ajZG?=
 =?utf-8?B?ZUpvL2tIMlRxamRRRndsTVhkaTU1T25iTHlueTVORjAwcVlyb29ENndRTkN6?=
 =?utf-8?B?SzYxTDFEQlRvZ1pXbVZRQmVkVDA0bzF1L2lad3BmWDBNakl0S1lab2VlcVpF?=
 =?utf-8?B?eVdzeDEwaGxucGp1MFRDa0lRT3BrNnJsM1d4MnJzM1UveXI1TjZkV2NFRnho?=
 =?utf-8?B?UEdpTDQrNTc3Z3ZmUVlCdHRSZTJscURQOHJJT293eFkxU25kOExub2VhNm0z?=
 =?utf-8?B?c0VYME9VajQ4emJHd2xoZmxXa0RqQ2FzQlpoR3J0YlZDYzhxbU15N1ExWHFQ?=
 =?utf-8?B?WVBYa0pTbk5aQ2FhcWFLWVI5OEQ0K2M2Y2NUN1p2R05acXErYkZIdXhLRU1X?=
 =?utf-8?B?aUNNb2ttSVB3YkF0OElmU0hRMnhLL2MzOUtQTUVVOTBJN2xkcnBreUpEay9C?=
 =?utf-8?B?RmdQQSs3b2xFRm1rMVZQcVZEWk0zU3NZY0thRU1qRjV6Q1dUdkdFZ2hxWkgw?=
 =?utf-8?B?TkNmTE9CQS83WUVyNXVhRzErYTAxbDNoajVWd2ltcXFYREdvUFhlNkcrUUk3?=
 =?utf-8?B?emx2cGRrd3FDN2V6cUpmRzZpN01ia2tza1lDZE44MzZLOFE0T212UlVsZ0I5?=
 =?utf-8?B?N2NldW5TMjFCWlhBUmZISU5rdWtCRGgrTnZxcURzMm8vbnVzeWlHalVidlUx?=
 =?utf-8?B?MDh3SVFtaWhSL3dPcjBnVVlxV0tDLzRQWndhYUUvN3o1Z2lXMHdZTW4vM1pu?=
 =?utf-8?B?S2d6RGhjNytCWmtrdi94dzkrWUFqY0p1QjdpYkJZaHQ4bTh2dk5RamNCWks1?=
 =?utf-8?B?OGZtNVFnRHdkaWtWREdMbmh1ZFVLUDA2OW5jQ05ocDhwYlBDSkxvZi84aEV2?=
 =?utf-8?B?eGpoRjZEY3BUV0FUL01UU3NoZUZkcTFXdXRFZTA4TnduaURDOFExZVJya01S?=
 =?utf-8?B?dWs1WllpdU85cFJNNW83QjFjVnlub0pYWkVvNUpaZWpvcUJ4UVhRVDZxeC94?=
 =?utf-8?B?dXRPRCtyaWpkL3RVV0ovalN3VzNCWVMxeTVpNnhYT1I5eHZiZ3h1SzVCd0wx?=
 =?utf-8?B?ODNwM2xHNkFjT1oxdVVYcUptMXhqSTVGRSsrZ203UFlTZTR0MTNjSWV1S0cv?=
 =?utf-8?B?Qit3YlBraU5yV0ZiVGZyd0pyRzR5d0hvQ2VueFV1NW81Sk4vTU1tQ2FQOVQv?=
 =?utf-8?B?OGxGYUxuVXFScGcvRXRpd21iMllRb1JIMzBRYUVFNTlXTzBzQkdtTmgzdTZY?=
 =?utf-8?B?VmJOU2U5SjJDbk5kcTk4S3pUWm5uUnFmMFIxcmJoemhKSTJQVzdtSm41bDVL?=
 =?utf-8?B?VHI4c0JGUitjaDlJWGdUNitKNjVUVHg3N21DZXRiclpkcWd2WENGQnk0ZzBI?=
 =?utf-8?B?SmpMWGw2Qi9YSGtpc3c5QWlDUUt3MWhSRDlRSE1rY0dINWl5TDRXMzI4MkYw?=
 =?utf-8?B?cnF1MFZ5cHNhQk5wUTNCS3NxOStMaUFNUHlXM0RqdFZHWUZHaDZrbzZhVE4x?=
 =?utf-8?B?ZjJjWWZiMlQzL1pxbjJzRjhlT3RQc1p2QklMMlBBTVlMbTVBdXRyekZ0YnhP?=
 =?utf-8?B?Q1phMFVWa0xSeElnenR6bzMyVkpVUVROZnhsaDdBd3AwWlNSMENycFU0YTZp?=
 =?utf-8?B?Q0drdFNHMlE1U3p1YUYvSVNPSXczSklKT21nZkwzc3lvNGdpWk12WFQ0K2tL?=
 =?utf-8?B?R2VRTWsxUTBhMEVzd1RIQ1p3aFQxSHhvcklTN1F4K0JHdFc0Um1ZYnViUnRu?=
 =?utf-8?B?UHdkTkVEZ2NrU1pKcjBGaVAxUWNFcDBGR0lnS3RRUkJyeUxPWlltM1U5MlJD?=
 =?utf-8?B?VE5jL2VMdGw0K2FoMWJVdUZEcmNDS1NPNUJqeVkzbEJCS3hvN2hRaHRTMnZy?=
 =?utf-8?B?VC9nVkQrNk80dXhDcFBJR0lxSURFdTZDcXlaRTNkbDU0Z3MxWER1NlprVTFL?=
 =?utf-8?B?bmRKRkpTc2JncVBsd0I5Q1BwZVQ4RXdJM2NCdFY4Rmt6enF1dnpEM2hEekZj?=
 =?utf-8?B?dm0vK2txaVhWZ2lUR0EzS1pUK1F2NU5OMWV6b0NkMnR2NGp6L1FkR3BFRzlR?=
 =?utf-8?B?d1owcUJ3RDByV3ZjOVczVXlCUlF6UjI5TlZwL2QwY3lsSUJsNERjS1VNVlYv?=
 =?utf-8?B?VVBnNmNpMlJ4TnhCdUk2QUlRR3ZVYVIySXFPdDBDM01FbmRRZHh3aXR0YWJx?=
 =?utf-8?B?dmlZckdXV2dMOFYyVWhtbkxRbkNBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	HyyYZU19RrMBK4A4DwN67EMRTVdZIEB7zRyVEt5RFVJpC2yGxtuMSvtt/LH0XcPv6XwNki3anwyWywlTQuH9hKzrJqZ29g//aPiY/fxMoCznn7f6OVb+kp+77RqYId2WZArGaSPfPJ7oHoQoxEW/XYRVnfvqHWweFX0AVoxfQPvXCJH3PHWujmV5vkT83VZLta7EK4zCHedWm6vP4f3QpJjlTVcuXkP3hRBSzacuJxggRaJMzejUweDxwJYvvIy5QFEpjscGecE9xrJc+ji6la2P2XlOoolmTeqG6m7BUUt3w+InTBJj0n/KHqxigkTJ6BuLy+16rglz/5U3xyvY4jQA9h1DEfgD4ZoXuQiZCAQnWKjbLPDYKk4jHkhusmetBY8pgjXYNUR6rsX/mNWXSgjm+WAk4lh/eOBC2lNsOWOqAjsGShjD699gYmasPCcl
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 16:26:59.3370
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d303d922-cfd0-449c-d8a6-08de67f80c97
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001504.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7168

On Mon Feb 9, 2026 at 5:11 PM CET, Roger Pau Monn=C3=A9 wrote:
> On Mon, Feb 09, 2026 at 05:02:26PM +0100, Alejandro Vallejo wrote:
>> On Mon Feb 9, 2026 at 3:40 PM CET, Roger Pau Monne wrote:
>> > If shadow paging has been compiled out short circuit the creation of H=
VM
>> > guests that attempt to use shadow paging at arch_sanitise_domain_confi=
g().
>> > There's no need to further build the domain when creation is doomed to=
 fail
>> > later on.
>> >
>> > Signed-off-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>
>> > ---
>> >  xen/arch/x86/domain.c | 6 ++++++
>> >  1 file changed, 6 insertions(+)
>> >
>> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>> > index 8b2f33f1a06c..8eb1509782ef 100644
>> > --- a/xen/arch/x86/domain.c
>> > +++ b/xen/arch/x86/domain.c
>> > @@ -627,6 +627,12 @@ int arch_sanitise_domain_config(struct xen_domctl=
_createdomain *config)
>> >          return -EINVAL;
>> >      }
>> > =20
>> > +    if ( hvm && !hap && !IS_ENABLED(CONFIG_SHADOW_PAGING) )
>> > +    {
>> > +        dprintk(XENLOG_INFO, "Shadow paging requested but not availab=
le\n");
>>=20
>> nit: s/requested/required/, maybe?
>
> The wording matches the rest of the messages in
> arch_sanitise_domain_config().  I'm not saying that makes it correct,
> but if we word this differently we should also change the others
> IMO.

My point is rather that HAP, or relaxed MSRs, or other settings are activel=
y
requested via createdomain flags. Shadow is instead the consequence of not
setting HAP. You don't request shadow, you either requested something else =
or
you hit the error.

It's not terrible wording, just imprecise.

>> Also, with this in place can't we get rid of the panic in create_dom0() =
that
>> checks an identical condition?
>
> Hm, I would possibly leave that one, as I think it's clearer for the
> dom0 case.  Otherwise someone using a build without HAP or shadow and
> attempting to boot in PVH mode will get a message saying: "Shadow
> paging requested but not available", which is IMO less clear than
> getting a "Neither HAP nor Shadow available for PVH domain" error
> message.
>
> Just my thinking, both checks achieve the same result, but the error
> message in the create_dom0() instance is more helpful in the context
> of dom0 creation.

Fair enough. It doesn't matter much anyway. With or without the adjusted pr=
intk.

  Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:31:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:31:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225750.1532316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUAa-0002fH-V7; Mon, 09 Feb 2026 16:31:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225750.1532316; Mon, 09 Feb 2026 16: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 1vpUAa-0002fA-Rp; Mon, 09 Feb 2026 16:31:28 +0000
Received: by outflank-mailman (input) for mailman id 1225750;
 Mon, 09 Feb 2026 16:31: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpUAZ-0002f4-SH
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:31:27 +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 c6e34afd-05d4-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:31:25 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-47ee0291921so30564785e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:31:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5d77b3sm690845e9.2.2026.02.09.08.31.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 08:31:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6e34afd-05d4-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770654685; x=1771259485; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XYcLoq4Oc17WWFvApReP5TteRxaFCDVoh+pueH9sOJE=;
        b=XWlmklHBb4BdhLIjabonP8ZV9jNqH8oFZ7HHaLXeQDOywL4N0WfTbyT6pYQFiUNemc
         ZsWUdJP2mFFQiVZmZQbeUuYfKp45vxmkq7mRvGoch4KBCw+TcKwnIDxhzLSM9ind3TDy
         2QlCEWgTcj24T8Q/QDwQtAZ99JGTj79a4e26THwxzxo/TAu3eyA9jxKq3OArNZsD1Cf3
         GUVBGY17vWeHu/8wsbZXOOrNNVLTHZ/VvSH0MqCkaO7aD1M2j1pxaQxkTXYJFyQPEWBF
         D+6YVckrnUNKJPu6hrvXyJnoemNz4EtF0GDbBtQnHoijhqNjVSgPpSPdWYE6SrBYmJZH
         Ih8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770654685; x=1771259485;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XYcLoq4Oc17WWFvApReP5TteRxaFCDVoh+pueH9sOJE=;
        b=FTId2fky4t4OkaFUFrGYnTq0rNWEjSOwWiitr60WtqMl3Q4227/LzWikpKPVC0UU2T
         NxB4VW72XWj4HBhmoUht3Q/3fjKWv5T1W5oo5NhE8MPIqokG8Ft8To87iZyKIOf0fLKe
         bvx/FMel9Bq06IDPVWpb0gCwjHcOAeeV0fp21Xr7gVFHOoSSYHhNQCDO+5AJ69l7zeCB
         XppPKBi9D1Xh6+rL9jCY8gUX4qrUXunk7TjSkjZiEby8qSRlCZk8YI8acpopxql3hmV5
         /bYtMzqI8op75oZzpc18ofT9KZPDpAHFfWCtlC02QcI6dKD/3IK0aYU4mmUIxobYgBoy
         K+HQ==
X-Gm-Message-State: AOJu0YyOR48dONRl4n+5RQrahM8rCT2tDWmi41h/kTqi0p0rVydrnva6
	u9MS+UwCdq2iBepMi7REcFL/avkROk5GUmP7LIkFH/Saix4Ob1wcdPltDvDXKtTKyQ==
X-Gm-Gg: AZuq6aJtZYuAjDv2oCLKOghG12CzC2Fx4y7phOQB1ubnkSyMZ+2PzecblZXReJmXfqW
	bgk+3ice5Ixss/fu5kwn+rEv+k6QRGZ9z9KwLpVwSMkDKHLSBOFf041sCWSlLuPr+KBg/H3omHO
	K8cLwGKNnTCABKZsq+4pObdz2WHr4qGoUNDZnaNQVcRpngFMeQbhUakCK3TQGG2rAz0Kut9ju+q
	391fF9ypdluq5wrr/OK6V09KNF1FYeTl1J/FauPr6gQouhzAst4IQMQCsRUAoNmt1PtiUMlaxNf
	dv94BhrXQcWQBFYQR36hbUmxGC/3Zec9HnYTomCW0byNz9fJ9Y7+qPtAPu8mCwwVhJcNZEnUswJ
	oV2oOxVqrTPumfMUE4Hplo8QjWCFJO+NaB6lcQqXzlG/5AeHA4MNIvJHCTfsjDHSjeHq6WEjRMX
	aBGc+Dj/AiEZQImrW+wuB1rgR8E9/eJdmGB8Vqi8qbGKPs+iQiQHkpLU+3J1spHY7bOwaiuPrrm
	OA=
X-Received: by 2002:a05:600c:64c4:b0:475:de14:db1e with SMTP id 5b1f17b1804b1-483202139ecmr181053565e9.24.1770654684666;
        Mon, 09 Feb 2026 08:31:24 -0800 (PST)
Message-ID: <5b16020b-4ca0-4210-b8bf-d71f127dddfd@suse.com>
Date: Mon, 9 Feb 2026 17:31:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Andrew Cooper
 <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <aYnyY2MArv4vTXsY@Mac.lan> <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
 <aYoDiDiJ4rRLxhmw@Mac.lan> <DGAKH0QH3EG8.8GOWCPNH2Z79@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: <DGAKH0QH3EG8.8GOWCPNH2Z79@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 17:20, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 4:55 PM CET, Roger Pau Monné wrote:
>> On Mon, Feb 09, 2026 at 04:35:04PM +0100, Alejandro Vallejo wrote:
>>> On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monné wrote:
>>>> Also, seeing the code in arch_sanitise_domain_config() we possibly
>>>> want to return an error at that point if toolstack attempts to create
>>>> an HVM guest without HAP enabled, and shadow is build time disabled.
>>>> I've sent a patch to that end.
>>>
>>> ... this patch you meantion. Thanks.
>>>
>>> I'm guessing it's still a hot potato in for non-shadow PV, which strongly hints
>>> at our being better off leaving it in that case. On HVM-only configurations it
>>> seems rather silly.
>>
>> I'm not sure I follow exactly what you mean.
> 
> I'm not sure _I_ follow exactly what I mean. Part of the confusion is the
> overloaded use of "shadow" to mean "shadow paging" and "fault-and-track"
> of logdirty behaviour.

There's no such overload, I don't think. Shadow paging is _needed_ for certain
operations. E.g. to put a PV guest in log-dirty mode.

>> Some rants below which
>> might or might not be along the lines of what you suggest.
> 
> Thanks.
> 
>>
>> PV needs shadow for migration.
> 
> shadow in the sense of shadow paging? So PV-only + !SHADOW means migrations are
> impossible? Why can't Xen operate on the PV pagetables rather than using shadow?
> 
>> HVM can use shadow or HAP, and our default is HAP.
> 
> For regular use or migrations?

HVM guests always have paging enabled - either HAP or shadow. Hence this
distinction makes sense only for PV. However, the answer is still: Both.
Because besides for log-dirty tracking, shadow mode is also used there to
mitigate L1TF for guests not doing so on their own.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:35:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:35:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225757.1532327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUEL-0003DY-FW; Mon, 09 Feb 2026 16:35:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225757.1532327; Mon, 09 Feb 2026 16:35:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUEL-0003DR-Ay; Mon, 09 Feb 2026 16:35:21 +0000
Received: by outflank-mailman (input) for mailman id 1225757;
 Mon, 09 Feb 2026 16:35: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=gJZC=AN=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpUEK-0003DL-E3
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:35:20 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 51c68b3e-05d5-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:35:19 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB7011.namprd03.prod.outlook.com (2603:10b6:303:1a6::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 9 Feb
 2026 16:35:10 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 16:35: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: 51c68b3e-05d5-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=e2dIWzs5fZIw7sQbLS5PzbFBChVw3YyGGgaSP8tDu2c0wTGIyt0nqNVyewCg0F/LMtL/rIyWrJ+0fNMmeZN8fklFzM3wOVAqY+/53FxnuVO/oY2sXIt57Xxhu94dBIsKvOn3x0e3iu4nkEPggC1YBBo+NA6U0ND9iVQnPtX9uEHBMl2wYndZsSG4Q+2aUr0tjN7alSTEZ8chErWflWmhI5gmpDam5y4ZpMRzxBmOfcREJ/b6Y7VKLdPxSoVtn7uPbF1LipV6Yb8BOcTZ/m7zMitKyth6X3kZ4yoh7kNTXFq4vJlDayLFmLk5ibMbZcQT6QkI8cHSi7u6sxtILm8X9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Avsp/xRrx/MtHZ7kNuM1deClh1qD4+uYOu29z4wQuRI=;
 b=C5ZU7rkZ8QtC0rBkYRQXZi/ONa8x6R1KRjSvMS/bdWv9bE+4gAI4J770kXintUMkaw68VNzBErzPmAHWz5mQhxGUa9zsOi1YNKnTMqLjRGo+jzWSI5xdebOdipBUD86lTRegPX7dBx/R3CGPcLnGiZvMyedKl3FGa3HdUMtsbeu2yx9/AVQWmuCaW6MkcQGCrkA+ijdAnBtx81vPHxaHoQpmZ8VuKlgcqCvMNT9MBJKS4E2pbwl+EQGpWQy9ncIBaX2ZfloRlg6wqpO2m2NtOH88iNUJfip0nkPD3UU3K5u52clcHj4dU+ELxtb+Ol0s1ZcT/IoNzNaAYNLPORy+iQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Avsp/xRrx/MtHZ7kNuM1deClh1qD4+uYOu29z4wQuRI=;
 b=eip9JYplbpN02OB73597O+AHHcdE1JTMZQuQt9+QcDmgjKRwYSyYnryX0wrtQlSuey1mIBCB97CSmye+yZqlLa/RMtCsow+AVk/sWneN3fh/wzSyUUn48C0RmRgfl3rB9n0m54e6KqmgdVQJS2NEGUvydyR2TzU38wTcNI0SF7M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 9 Feb 2026 17:35:07 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
Message-ID: <aYoMuxwgWCcVUXEx@Mac.lan>
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <aYnyY2MArv4vTXsY@Mac.lan>
 <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
 <aYoDiDiJ4rRLxhmw@Mac.lan>
 <DGAKH0QH3EG8.8GOWCPNH2Z79@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <DGAKH0QH3EG8.8GOWCPNH2Z79@amd.com>
X-ClientProxiedBy: MA3P292CA0026.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB7011:EE_
X-MS-Office365-Filtering-Correlation-Id: 11d9d5dd-b37f-4f09-2082-08de67f93129
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eWo2WktQZ1p1Y1lxZTQwY3NmWmVERVRVMm1TamNOWUx2TnozdEJDUG11elZI?=
 =?utf-8?B?ZXRhOER4QnNTNDFQQVVKamlXQUp2WmkzRHNYUUtQRWRzenNCSnRPSllmdk1t?=
 =?utf-8?B?UzhTMkxuQ0l3eGZBNEVNTnM5MS9jRGpOWGk3Zk5TYWpWdkFVcWNrdWVEY3FX?=
 =?utf-8?B?dFpZL1o4M2R0U3JYUk9DZW53MVEzQzRRUzlyWVc5VHo1NWZQLzhWYk45c2xu?=
 =?utf-8?B?K3pITmp5YklXQm9sTU9XWE5hNnQ3NFZWclc5d3Z0OGtkZ3BQa0hmMTI1RlR3?=
 =?utf-8?B?Qkc0SmJKZWw2NFMydDZWdTU1VFhhZFNUbWxWUDRzczh3S1FZRHlGNWMvcWsy?=
 =?utf-8?B?TmRjanlxWTlqRWJ5OGJLVy9KN04zTURVbG1uWXNCRHNWRjVaOFF2c0FjRjJB?=
 =?utf-8?B?YzY0VDUvSDFmWG82RCs3TGliMEZLcGZpNmUvUXpIOVdGZ2lleU1xS3FKbmps?=
 =?utf-8?B?WU13RGpoNXk3ckl2S3lDd2RQRWZlQjhHTXdzVnZTTWNVTVpsMXNGWCtaUzJX?=
 =?utf-8?B?TTJoYW1WWVRxZHFlcjRsUm1tMTF4ejh3clluS25YY1NlZXNOd3VmeUEzWS9J?=
 =?utf-8?B?SUpSaGRqOXgyZUFnUnNnRjNwTU4rRmdIalVDS3o5STR6U0RrdldRSW1SdEwr?=
 =?utf-8?B?YWdLMEVQblh4RzJySDE2QUdBK2ROdVgrdmtOM1J3NG9IVFV0MWhSMzh2cmpQ?=
 =?utf-8?B?VHFZaDUwb3lVR2xsOVIzZjRjSFJOdlViMkZkVjRJV292NHBrMkh1MnVoOWZq?=
 =?utf-8?B?OGU5Q1NCeXRqc0ZkdnVYSTBNQjkrZWhaSTZ5TWxpRy8wd3lEb1RzNllmRnlR?=
 =?utf-8?B?VVJ0UWxLRG5QMWY3MEp1Wm4yYW1ucWpsbkJZY0x2aGZPMllobmpBQzFYaXM5?=
 =?utf-8?B?YzNmdjN3aS9lQ1ByalRicS93QnlyMWZ2Tk0xUmdIT0d3M3Q1VGpGc2dnNFFj?=
 =?utf-8?B?VUtnOW0wVllWUllyeVlxZzZFOXJTZ3Z4Szlrb3d1M1VnK0lDMHpzLzEwTXUw?=
 =?utf-8?B?TkpiMXBvSHBIaVF2WDVueUh3UUUxSW1weHpFT0dVTFFsNWZzdk12R0hjTnNo?=
 =?utf-8?B?cXloLzlWNFdwamdFc1ZMM0Z2bWRhZzROam85dXE1Z0pWcElyamtYLzhsU0Rp?=
 =?utf-8?B?TXBLUGpSbXhOYkxKMFAvOEVwTjlpTnpjUnVHUml6WHNjMksvSlpSQllUYjA0?=
 =?utf-8?B?TlFuc0ZWSTNxVnNJelcrWkZ3MElSWUg1c0JMcnhtWlFjQ05RVVVNb3RoQ0Nh?=
 =?utf-8?B?b21xdzNXdHluTUVTTE9zNTVuMk8wY0p6QUduZUs2TXB0bERXN29QSC84cGs2?=
 =?utf-8?B?UkEwL0UzbHZ0Q3BMUXNYK3ZQUEVEb0F1WDZOL3RMTWduYVNXc1J6ZGUvV0xl?=
 =?utf-8?B?WExlUFNSQTJ3SzFHUzZrcUhZdFpuM1k0RVN4eVZvYWRxNFFzWkdqd2hjS1Bx?=
 =?utf-8?B?TVRwNHJhdlNISEgzMzUxa1VJdWlzUHhNRFljd05aSW5ONURlL25HTVFyZ3FB?=
 =?utf-8?B?NnE3Szd5eWFGNFE5dmNSNWhWdWR2WDZMRDQ2RTRsUDhTd1cyQW9KNVdXRzBs?=
 =?utf-8?B?d29iSXdvbXArL2lONkRBbXBuM1pRaFhHQTZrdlB2VmgzcEtQVDBtQU5ZWGlX?=
 =?utf-8?B?QmZuOEJTSS9zcmhJT09IdnFTYzh0UWt4VFFoOENQOVQwVGFjbHdwNE91RlZJ?=
 =?utf-8?B?bzBvRjdpT1B1QkI2M3J0UEdOUVVnU0ZvM21icGNwdzBKbkdXMXN3YlJ5TzNw?=
 =?utf-8?B?aVVQaDBKdDJNSUk3amVJOXBmODFqVko5eno3cUdxQkt5NTFTMlQzcGQyWjZT?=
 =?utf-8?B?d3NhdThza0FHVXJ3ekVXdDc0bk1nV0xKZGpXWGNQeGpzYms5ekFNaHVLZnRk?=
 =?utf-8?B?OEVuck9mT250ckhpUFZWNFAwdU4va3BrbUZHenhScmhuR1UyMmVjZXNUczlZ?=
 =?utf-8?B?Tmgwbnlqc3NjQXZWR09IU1gvaXVQTER3Y2xUQVUxdFdsNXVNRUxTeDlkNHR2?=
 =?utf-8?B?Z0tyTC8wVlRIQ1pNUWY4VlJ1azZwNFVyV3I5cUQ4cU1XN0FMSTlrQTRJZlJF?=
 =?utf-8?B?bXZnMWV2QkU4WjYzTUxxM0F3Nk1IcSt6YnRyTWJzRWZJcndQNGR3dkZOZXdj?=
 =?utf-8?Q?CKQY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dTFrNjlDU1JweklQY2xSMUZldlpzdzZGem9VY3RzT3d4aFU0YnlEUzBBbTc1?=
 =?utf-8?B?RnBzKzUxNDNJNFVZMUhvOUtycDFnLy91UEIxNVo2Ky9qT0g2anVFRGJqUHRp?=
 =?utf-8?B?NnQ3YXZDU0FaTDF0MUFTbjJDQUY1RlMrZjNNVzdwbUVBK0ZuT0grVzM2K3dP?=
 =?utf-8?B?UUYxN3VQeGFidHFSRVViNW9Nbi9XaVluNFQxZFhORDk0eUc1YnBRQnlYYk9t?=
 =?utf-8?B?T3NhMTZ0eFVhNXJnMU1NV0xkcmh4TmQwdFBZem9OMndUUHhQM1VsYklKcU5h?=
 =?utf-8?B?RmlNK3V0Tld3Uy9ieWdwM25JaDlmeWdvZjJzY0FzdG9HaVhJbHBnL0M3b2pm?=
 =?utf-8?B?RHpQSEdnZjd0MnY5WGZsRG9ieHMvRnRPNCtPNDFZd2k5OEVlblZpaGxSM3RQ?=
 =?utf-8?B?Z1pNZjM3NWdwU1ZKMW1lMTk5dGVOSU5SZU5QYmxRek9xdFU1TTJPemx4bWpY?=
 =?utf-8?B?bGRhQzllRFo5WWw2c3hNN2Mwc0FsdVhiRzdFMG9sa1JwbW5OVExOQ0xSb2dH?=
 =?utf-8?B?YStwSmFWQ1I5aER4V01zeXMxRUhKWE5Nd0hxNXpMQlJ4WkwxcDNHUVZ4N0VQ?=
 =?utf-8?B?cG0zbWdFU280LzhVTEZBMndiSkVzTGNtbGZtVEJ3ZC9sSi9Na0dzTmtaaDdL?=
 =?utf-8?B?b3EzUUdhY3BYM3REMWE2WVE2UjBsNUtRVStDMDBIcjZFVG5vNkxJMjN5MFJD?=
 =?utf-8?B?cjFMbXFuTWlNcjhOemdLSENEcTRmQm9RZHlWMXNRR0g3QWRLeEdUTFhwVk9o?=
 =?utf-8?B?d0MwNFN1OE00bExJR1lEamV1Zkowa1NxWWZJMU9Kdy8rK0oxYnRrcEJvRmZk?=
 =?utf-8?B?aW0vejhmdys5b2hDajVIUlZwa0VqMjE1bnMvd011bXUwQ2tDS2hUc1RIRG5v?=
 =?utf-8?B?ZVc4bm9ha3psdGhLU2tJd1lHN1VFVFI2MkZjZWpIUW00UUdRLy9kRHI5dDFm?=
 =?utf-8?B?VE5hY3FaNjl0eUI3eTlWMzhOOFR4dWJLb3BYYUtxUXBkK2xEOFdEMk5OZ1U0?=
 =?utf-8?B?eWovTHgrUTVXYWdFeFFETHpkNytReUtuRlYrQm1UbzNaZG4zTnhHZXp3b0Mz?=
 =?utf-8?B?M1JRc3VQaFpEUXRZdnFwNEVtQUFmbVBDNnpvR1A4OWE1WTZEWG5VZGZPNDhx?=
 =?utf-8?B?QTRWUTl4aEoyYXJ0bXNSTDc2RTR6eXJoMENXL212VXJuVE1Cc2o0M1Y0UUpN?=
 =?utf-8?B?VFlONXF3NmMyMjFXQmJJekU4NG93cTRmeFNQeE9HSlgvcmRsaDZpVzV3RnlN?=
 =?utf-8?B?OHZLVDlqVjN3enZGeXV0eklHaTd2RHZaRmMxZFJpRUwxSXVzUzZ4SG8xODR4?=
 =?utf-8?B?L1YySnNKQ3ZsNFdIVWNsUGpHa3hTZlprSmUwVzdEYjcxYTdrTHhHbmk2MjEr?=
 =?utf-8?B?UThGNzlqTHE1b3RMRWRobHkwOTduRkRwcWE5emt4QjFqUGFCeDVMZDJ3MVhq?=
 =?utf-8?B?RStmUnNaRDlRYTZvZU9Jcnh6Z0tKMTdkY01jd0Rlc1V1Uzh1VCs2NzdCMVhD?=
 =?utf-8?B?bjY2U0V3WGlmN1VvWkNFbEhIYVdzOUlSeGZjclVmRnF4T0hTbEhpZlMxRTRm?=
 =?utf-8?B?RUYxYmNtSENmczB3RlJENmRaTUllUVhYSXdXSDVZUWpYOVV1SVFRVFQvaEtu?=
 =?utf-8?B?YXVMTnZ2dFRXeUR4Q21rNWNEcW9LZlBGcVMyZlNGUG9odFJ0aHZwNm0vT0to?=
 =?utf-8?B?cHh1SXNkTmh1ZE1MeWFKVEJwS2hrTVJEbFVXWGtLaklWYVFRSDY5Q3B3MHVa?=
 =?utf-8?B?cW5NSVYwai9kc2VSaVFabWRZSmJ4RkZoZFAyVld6dkFGb1lHVmphK1huS2RK?=
 =?utf-8?B?NjJKTUxFL0UrMDVPS2VHZW41b0dreldnek5nYm9RamE4Z28yZnJ3OEp6eksw?=
 =?utf-8?B?b25JU3lsUU9XL0xwUTYxOUdreTVyZUt6WFpiVSsxYWZoUDBreCtEL2JiR0ZT?=
 =?utf-8?B?UjhEU1g0MGVKMi8rdFpiLy9LVHpkU1RUVmRZTjlUL1A1OGlxUzJGSk5pVDRa?=
 =?utf-8?B?R2p1YWdnaGZqL2tZc1Y5SHMzeldaaGJ2VWttbklRbWlsOUsrVU05dTF4MzQ1?=
 =?utf-8?B?bGxneitiR281MjQ4NGg3OHJFRUZRRkoydGxaQThEeE1NQk5DRnlRVjc1aGp4?=
 =?utf-8?B?Mlo3bFF1dzczVkNwbTJzK1FpY0FxS0huYnNRREUvN3ZFRDF0SXdydDBsZm12?=
 =?utf-8?B?TG9ZZENpQ1pmNHhzdTV4WHFNOG5YV3B2Syt3OSt1NDEyQitDNVJYRDFCVkI4?=
 =?utf-8?B?WTNZL0pRRkRLYlNxZ3VSekViNW10VThIQ2RVRnNnYzlWRjU2by93WlB1R3hh?=
 =?utf-8?B?bVpoV0lHVFdtTExLRVRjQ2l2L3ZrV1lNZXpHT1NNenU1WmNHbVk3Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 11d9d5dd-b37f-4f09-2082-08de67f93129
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 16:35:10.5219
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rz1mR5BlNP/PrD7iT52Py0RYuSQdYHIb1xQzYiRAvdZBScgxLnW+mwPfBVmowgz5bR7LSa50rHaSUna/hqTgbw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB7011

On Mon, Feb 09, 2026 at 05:20:40PM +0100, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 4:55 PM CET, Roger Pau Monné wrote:
> > On Mon, Feb 09, 2026 at 04:35:04PM +0100, Alejandro Vallejo wrote:
> >> On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monné wrote:
> >> > On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
> >> >> It only has 2 callers, both of which can be conditionally removed.
> >> >> 
> >> >> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >> >> ---
> >> >> I'd be ok conditionalising the else branch on...
> >> >> 
> >> >>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
> >> >> 
> >> >> logdirty patch: https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@amd.com
> >> >> 
> >> >> ... to avoid the danger of stale pointers, with required changes elsewhere so
> >> >> none.c is only compiled out in that case.
> >> >> 
> >> >> I'm not sure how much it matters seeing how they are all unreachable.
> >> >> ---
> >> >>  xen/arch/x86/mm/Makefile        |  2 +-
> >> >>  xen/arch/x86/mm/paging.c        |  4 +-
> >> >>  xen/arch/x86/mm/shadow/Makefile |  4 --
> >> >>  xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
> >> >>  4 files changed, 3 insertions(+), 84 deletions(-)
> >> >>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
> >> >> 
> >> >> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> >> >> index 960f6e8409..066c4caff3 100644
> >> >> --- a/xen/arch/x86/mm/Makefile
> >> >> +++ b/xen/arch/x86/mm/Makefile
> >> >> @@ -1,4 +1,4 @@
> >> >> -obj-y += shadow/
> >> >> +obj-$(CONFIG_SHADOW_PAGING) += shadow/
> >> >>  obj-$(CONFIG_HVM) += hap/
> >> >>  
> >> >>  obj-$(CONFIG_ALTP2M) += altp2m.o
> >> >> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
> >> >> index 2396f81ad5..5f70254cec 100644
> >> >> --- a/xen/arch/x86/mm/paging.c
> >> >> +++ b/xen/arch/x86/mm/paging.c
> >> >> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
> >> >>       */
> >> >>      if ( hap_enabled(d) )
> >> >>          hap_domain_init(d);
> >> >> -    else
> >> >> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
> >> >>          rc = shadow_domain_init(d);
> >> >
> >> > If you want to go this route you will need to set rc = -EOPNOTSUPP;
> >> > prior to the `if ... else if` on the HVM case.
> >> 
> >> Maybe this instead
> >> 
> >>     else
> >>         rc = IS_ENABLED(PV) ? shadow_domain_init(d) : -EOPNOTSUPP;
> >
> > But even for the PV case we cannot call shadow_domain_init() if shadow
> > is compiled out?  I think you want:
> >
> >     if ( hap_enabled(d) )
> >         hap_domain_init(d);
> >     else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
> >         rc = shadow_domain_init(d);
> >     else
> >         rc = is_hvm_domain(d) ? -EOPNOTSUPP : 0;
> >
> 
> none.c would need to stay in PV for what I proposed. For what you proposed PV
> would return 0, but all the hooks would be gone. And I really don't know if
> they would be triggered or not.

Oh, OK, so that would already diverge form the current patch - in this
proposal you completely remove none.c.  I see at least two of the
hooks look to be reachable from PV seeing the ASSERTs in there, or at
least that was the expectation.

> >> And gate none.c on PV && !SHADOW_PAGING, which seems to be the only use.
> >> 
> >> It's a lot easier to see the safety on the HVM-only case, particularly with...
> >> 
> >> > is compiled out, and the toolstack has not specified the HAP flag at
> >> > domain creation you will end up with a domain that doesn't have the
> >> > paging operations initialized as paging_domain_init() would return 0
> >> > with neither HAP nor shadow having been setup.  That's likely to
> >> > trigger NULL pointer dereferences inside of Xen.
> >> >
> >> > Also, seeing the code in arch_sanitise_domain_config() we possibly
> >> > want to return an error at that point if toolstack attempts to create
> >> > an HVM guest without HAP enabled, and shadow is build time disabled.
> >> > I've sent a patch to that end.
> >> 
> >> ... this patch you meantion. Thanks.
> >> 
> >> I'm guessing it's still a hot potato in for non-shadow PV, which strongly hints
> >> at our being better off leaving it in that case. On HVM-only configurations it
> >> seems rather silly.
> >
> > I'm not sure I follow exactly what you mean.
> 
> I'm not sure _I_ follow exactly what I mean. Part of the confusion is the
> overloaded use of "shadow" to mean "shadow paging" and "fault-and-track"
> of logdirty behaviour.
> 
> > Some rants below which
> > might or might not be along the lines of what you suggest.
> 
> Thanks.
> 
> >
> > PV needs shadow for migration.
> 
> shadow in the sense of shadow paging? So PV-only + !SHADOW means migrations are
> impossible? Why can't Xen operate on the PV pagetables rather than using shadow?

At the time it was likely seen as easier to re-use the shadow code
rather than add more complexity to the PV one?

> > HVM can use shadow or HAP, and our default is HAP.
> 
> For regular use or migrations?

HAP doesn't need shadow to perform migrations, so in HVM there's no
dependency between HAP and shadow.

> > For HVM only builds it could be possible to not
> > recommend enabling shadow.  Even for deployments where only dom0 is
> > using PV mode, it does still make sense to possible recommend not
> > enabling shadow for attack surface reduction.
> 
> What do you mean by "enabling shadow"? compiling it in? Running HVM without HAP?

I meant not compiling it in.  If the only PV guest running on the
system is dom0, and the domUs are all HVM + HAP, you don't need
shadow for neither of them.  PV dom0 will never migrate, and HVM + HAP
domUs won't use the shadow code for migration (or anything).

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:38:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:38:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225767.1532335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUHZ-00047k-UR; Mon, 09 Feb 2026 16:38:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225767.1532335; Mon, 09 Feb 2026 16:38: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 1vpUHZ-00047d-Ru; Mon, 09 Feb 2026 16:38:41 +0000
Received: by outflank-mailman (input) for mailman id 1225767;
 Mon, 09 Feb 2026 16:38: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpUHZ-00047X-0C
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:38:41 +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 c75c2e33-05d5-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:38:35 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso44671855e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:38:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4832097d8dbsm152504515e9.4.2026.02.09.08.38.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 08:38:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c75c2e33-05d5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770655115; x=1771259915; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=KnfzY3d30COgPLQWwARwE+5Ep5LeTToKcCHBxWosXyg=;
        b=ImSN0H/GuVugwZvoLQOxGtRHFkgWRhOjnOwRQVv6XabSqftT6XDDSkS2QN4hwWgkf7
         lwkIta7xbZNns8bqOpTBtege/UDqiqOCevXjXwsZmv8oMvmwvqCCZrJVQ1Z9hJbRdicy
         CduFdLQNKyptXT6V/+sKHR18DXX7EhKuygObUu8KaUZpVi0F6pfLccNNPgfkx6cgtIiq
         wD/X4pgAQpvcnToCP/7h4P4tw1/CiZSsXDSgdCnJYrJR8LlZ3JI9uQz7V10nEDsh4eIs
         o/lj0079zNKuB8Q6IcpiK7yQNr6LTNZ6TRLSr+Vt7B1PpDjrAsdshTUagNDD+9rOeBa/
         N43Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655115; x=1771259915;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=KnfzY3d30COgPLQWwARwE+5Ep5LeTToKcCHBxWosXyg=;
        b=MQsbZZ+HU9gJgCS7PGiuI9mY7BLEqAE3oaDkvO6vMFCvOUBXmUHGP3jNl9Kas3tzhr
         zhYPnNRqQSrvnQyHAWNzFVxuX65TeE0xnWMiUE8H+DeMNOujHz34RywIxrY2zcdnEabo
         ip+pYtv5wiSLdvKN1TGWRJzd/DNP8rcYRtIljpixXSeLePfINs/7WXPO7r9zzKEZnP6R
         vU5yJbtx9WeMG8JPZKyrYBj+NwJ9DUq+dX4PA0VIBYovwYX3NjTvQXDR1r3RDulQQc5u
         oZIix/JEviP8RLheE4nf6jcHJuwNQ6S7xyk/stO/MB+SvIGG73l8vIy377S8qnHfr4yy
         VsxQ==
X-Forwarded-Encrypted: i=1; AJvYcCXFPr6C9eT/YH0cMWlFDA2LI5XpNd4s3Z3cMlPiHWhV5kdrtHxurr6M3Q12Hr6WTzm/aqZyIdnIl4A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykQOpYqrrwTOzWJTW4yR22lRUVhD9ILg8kfe6fIWnu5qMbkHZt
	u3RiqYXJuMeRsuREExroGXZpTiSNdvzyWXfbsbcd80Alr0aAKvnRLnDGQ9oS5pDIg3CsFgSoEK+
	xg/s=
X-Gm-Gg: AZuq6aLpUva6lIybBjVBbsgAnkpBTH9nRYlKpxC/MFyLn2uxKzSGoqqmZXrtQK0b5rZ
	UH5fJ1Smt68i5y9gE7hgsP2D5ibp6EkQWLR7RokKqcbCimpJkjwMokjZ6EvG/4I/aCAM8725Ud8
	kAox8I/OEDfGihu6c7FhIveO2rZii2vSZrPJ+VN/rV6AE2WvGkn9EpDuALB6IaRuJEObVGg9jJW
	HJiktMU8ccOOj2q5gt1hGhPXajKzDb8SFoib/mEMptM3VkIfXy3ZgWiiNlEdDxggenRiCSITM69
	3Esc2m5/Wq/TqrLKeAyklK3m+OKMV/SC9K8E3u8u+z3Ty3Ek8heAZPLqE+M43q7NpO3HALx2KIc
	y+vM3FB5OC7gZ3z7l//Xfw7AK1mOegXhjn9sexMTeJexAzfQ74omCCk5aH4aIzzGJMJyRrjRC5K
	Wa/GGXChQdSJCIlwdUmrrAmESnH1e0f4KG9b83qnUqF1DATmdPQAXQ8ifDc3ZWyVIqrTzjFP1hN
	cA=
X-Received: by 2002:a05:600d:6402:10b0:477:991c:a17c with SMTP id 5b1f17b1804b1-4834d7eb858mr430135e9.6.1770655115094;
        Mon, 09 Feb 2026 08:38:35 -0800 (PST)
Message-ID: <1579e081-b945-40b1-9a72-f6c5f7ed69ca@suse.com>
Date: Mon, 9 Feb 2026 17:38:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/6] xen/console: group conring code together
To: dmukhin@xen.org
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: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-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: <20260205013606.3384798-2-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 02:36, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Groups conring buffer management code in the console driver for ease of
> maintaining this code.
> 
> Not a functional change.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with one minimal adjustment:

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -126,17 +126,6 @@ static int cf_check parse_console_timestamps(const char *s);
>  custom_runtime_param("console_timestamps", parse_console_timestamps,
>                       con_timestamp_mode_upd);
>  
> -/* conring_size: allows a large console ring than default (16kB). */
> -static uint32_t __initdata opt_conring_size;
> -size_param("conring_size", opt_conring_size);
> -
> -#define _CONRING_SIZE 16384
> -#define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
> -static char __initdata _conring[_CONRING_SIZE];
> -static char *__read_mostly conring = _conring;
> -static uint32_t __read_mostly conring_size = _CONRING_SIZE;
> -static uint32_t conringc, conringp;
> -
>  static int __read_mostly sercon_handle = -1;
>  
>  #ifdef CONFIG_X86
> @@ -350,6 +339,17 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
>   * ********************************************************
>   */
>  
> +/* conring_size: allows a large console ring than default (16kB). */

As you move the comment, s/large/larger/. Will adjust while committing.

> +static uint32_t __initdata opt_conring_size;
> +size_param("conring_size", opt_conring_size);
> +
> +#define _CONRING_SIZE 16384
> +#define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
> +static char __initdata _conring[_CONRING_SIZE];
> +static char *__read_mostly conring = _conring;
> +static uint32_t __read_mostly conring_size = _CONRING_SIZE;
> +static uint32_t conringc, conringp;

There are several other tidying things to be done here, but I'm not going
to request that you take care of those, too.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:40:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:40:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225775.1532346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUJX-0005hG-9H; Mon, 09 Feb 2026 16:40:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225775.1532346; Mon, 09 Feb 2026 16: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 1vpUJX-0005h9-62; Mon, 09 Feb 2026 16:40:43 +0000
Received: by outflank-mailman (input) for mailman id 1225775;
 Mon, 09 Feb 2026 16: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpUJV-0005h1-EK
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:40:41 +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 0d564b8d-05d6-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:40:33 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-4362197d174so2700418f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:40:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b2facsm28295237f8f.9.2026.02.09.08.40.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 08:40:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d564b8d-05d6-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770655232; x=1771260032; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zxdl78zFgRanrjsBv8rgM0aFo9htNRT0OBLPTkd7KB0=;
        b=Uhumbi/AdRT8NqYQhzoPdbEQOBhFZgAsn/Je4hat03lfoqfe+sI/otYAnx5Vs9CYDd
         nb5281HzokpwZ4ElDyAi6AJ+wxEFrCGGetD0zWRP1MrH3YuzcVcd0cJ9KE0Fz+dHI+qy
         zH63nc603I4gEiq7NwVv1VMUohU/1kKLGx41i1QwSWV831M4Qbk0z/yr5md3bSKSE6lw
         xezrTdSVyl90TPq8j54QhIrlZ4VpUQtAvBfVjG0cBNcQD5fDpSvVP1qeAl6YJoaVelOg
         mz34TbM8kbmNu/FRVrY13hZbS6jc6QgarsyGHa8CEAgIAo/zQjVg13cZP2EgHdxcAWq/
         BM3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655232; x=1771260032;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zxdl78zFgRanrjsBv8rgM0aFo9htNRT0OBLPTkd7KB0=;
        b=s1fKfM9r80Ybn6CVm8n3x0CO12sgBVHrGYdSK8Csxcnj7KO0eX3xSvZdRCLbxAEyXc
         4Gc8a2jnOwIIn5QaZK8qK8TdCUKb0UZfBB48E98tRzndSy7f6y7rsXsgOm42FhiF1Fse
         +6h1rYx2KF5DuPEDyaehKF5mY/mAzsIExbTGfzzCq6MV7W1UZbGOX55ff7J0TLoISiSx
         27ifcWrbOHWnDmgc8MRbmEOqou333WjYofzU1Hxqe/IjucOlxNCZptZwjZcioPJ57GW+
         CS/WozEG183ZpiiXFs9QD+GO01ETDMSaS6HW6QfRuDTQqmaI5n5kzgW9735E6Yq5ZgQV
         7jdA==
X-Forwarded-Encrypted: i=1; AJvYcCVUoDZ5kXgyaRuAsmaVlmioLeTEaezainx0vColeM2Hr5q+bCE4rra6fF/oHAYrEVKKKk5jY1pe6r8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxpihBuEzglf/r8XEvN08xpOBrcN2Kre6A4RXYbu9mnqRx3ykXl
	uoDVpoYViCys4NqOLI1Th5w7PCv6HxthglEP4vHPOtRDY4ABCM7rte6Yu7T8Me7pIg==
X-Gm-Gg: AZuq6aJR8IU7REx9tuK2oCfB3mUfVGBAfSnz6/PIjNFQjUfTwOphnzj1eXoxb4BEkhi
	87FlS6cM/8C21YU61+4rSyyLMSI6kvyKAcxLffqLDAtYLUvwwh6Yz8kLhob+ATOnN1j5AWz/s+P
	UEeVbchirLziuBBLvVQzzIJg2LnpIrUtxzZD8B2UxpdX40cjwBIKSoQIIMDZVYRTk0lK3k+OLzN
	kYLVM0mUoblFo6kc3IumALhXfCK4sMLer2O/lSB4F8xxWJMmka8C4fu4OQhw7KzGEuRAkLJtgeG
	PPf4LSoSsUybJjbESHTJNusmNB4wil/nFDJZBX8yyfAw0ykEhpv/Mps0p1cZmgrjKVYC1o2jozK
	JtWu26nIPe2rkouj7Ysom57A1Mao34QId59P+YrrurOdUonQ3ew6q0MrbjfMOHp0+IrLzJ/M4P6
	OVfIwlHdiyD4XgQHSW2qdZAaHGUskdD17iEhzNA3UzhfiMB7n358KrHbY9IQsA8l45ruOeIkgdW
	/k=
X-Received: by 2002:a05:6000:200e:b0:436:10bc:d718 with SMTP id ffacd0b85a97d-43629385b22mr17326357f8f.57.1770655232309;
        Mon, 09 Feb 2026 08:40:32 -0800 (PST)
Message-ID: <3b452d1a-97c9-41d8-9687-36b702309f47@suse.com>
Date: Mon, 9 Feb 2026 17:40:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 3/6] xen/console: promote conring{,_size} to
 __ro_after_init
To: dmukhin@xen.org
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: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-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: <20260205013606.3384798-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 02:36, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Both conring{,_size} should be RO after initialization is completed.
> 
> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Ah yes, that's one of those things mentioned for patch 1.
Acked-by: Jan Beulich <jbeulich@suse.com>
preferably with ...

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -346,8 +346,8 @@ size_param("conring_size", opt_conring_size);
>  #define _CONRING_SIZE       (1U << CONFIG_CONRING_SHIFT)
>  #define CONRING_IDX_MASK(i) ((i) & (conring_size - 1))
>  static char __initdata _conring[_CONRING_SIZE];
> -static char *__read_mostly conring = _conring;
> -static uint32_t __read_mostly conring_size = _CONRING_SIZE;
> +static char *__ro_after_init conring = _conring;
> +static uint32_t __ro_after_init conring_size = _CONRING_SIZE;

... the type here also changed to unsigned int (as set forth by ./CODING_STYLE).
Happy to adjust while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225785.1532367 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUV9-0007nK-GD; Mon, 09 Feb 2026 16:52:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225785.1532367; Mon, 09 Feb 2026 16: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 1vpUV9-0007nC-Ax; Mon, 09 Feb 2026 16:52:43 +0000
Received: by outflank-mailman (input) for mailman id 1225785;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUV7-0007Zd-Fw
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:41 +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 be6d4348-05d7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:52:39 +0100 (CET)
Received: by mail-ej1-x633.google.com with SMTP id
 a640c23a62f3a-b884a84e622so812587766b.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:39 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: be6d4348-05d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655959; x=1771260759; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JMEwFKcyHIZZ4fXEejJ25YZMQb9FLhdSrVKjYgj/ce8=;
        b=d5CC6t6dB2t2c2BaoE5K0s8L6UrVhG/Kwx5yteQo7PJ+FPh0QdmppARh4W9A8GkCb9
         ZvFOm1CFK4aQNOEJEtWGavTdhgMNAOViCI64+hD7CNBnB1o22hIr9XWcmKZ/hBK8Oxa7
         WU5zK4rkp5KxKDMBL8gcxKBSeF55ZG2MPAh9vV1R24NbOcqsWonn8g5lwtQE7Wh82Wdw
         w3wxz0YA/3N1TloZMi4yWrk0KftlY+Qi5JEzJWejtaBeK7TPn/xJjiqLk/tZIrmM/QOO
         xGiyBglq/D4FVxdEsQsk+wbAbPgcJJoCDRtTZRsS4ePiXX6KxPKzCcb3au1LER45Vd0I
         dFog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655959; x=1771260759;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JMEwFKcyHIZZ4fXEejJ25YZMQb9FLhdSrVKjYgj/ce8=;
        b=sJdyJWRY0BxuA3LjCb7afPVeQkBdUXV4aTFCCpbZncniKRRo4I4g8iumq5s4JiBu6q
         XNo2Yam/aTrGW/nSidC2TmNoa6WOTTIo2Zh/gJECIrcltqBJBTeZ8ct2NWNf/JdbMEJe
         Irn1nvIo/+9bxklKyAgNpf25HQKiQKPVV4XHOC4JBsfsq21KIzR0KFAZy46ySyD3hhJG
         YNJ5UQMxSlht/fHq5q89eR3E3BuPJEsP6kZmfeXFuWozGeu3coF0kYlQOFPS4U7xD/HS
         HdKEyAXQTazRv6M+tCNovqi0TAZaocE7cxFnPfzYcwEJfsOIoXYHW8r0C0e78+Vqtxjc
         0dYw==
X-Gm-Message-State: AOJu0YwUdPPwX6KPx49NsiI5aZRJahLA2ynWwOSNAfg2CiQuqlZUvMFu
	PCC58Bst11vlCjV9OtBLL2o5vH91eSmBJ4MqsSgiuGnbY4/eUZCdT/BxSpUHWmq8
X-Gm-Gg: AZuq6aK6FVDU6F+HIzVNKNzARq+AL0J4AybsX+2N5MZnou0/cz6Zvp7txUehbQa8mQw
	1JFGamfp7onKW7zQoY3HaF2Kt+eVXNdf3qZ0SwHijN0HhfSkn5REk67XdUTeV7pOTDoqv1o/DRA
	U2OYWdrcgXBEX9YPpADZoAhVyW/63Rd5+2g+vfs3t+f9e7fSpxNLLLprnv8SIht0rmo+brujN5j
	mBoWzXv4+8rKbwLKioD0/9WAvYy8LA0ihEZ676fYnpdziG9zMWcD1j1fAl89Ix546VtQfiolwut
	5xkArmKLPhs/t0Dh+//CA4oFrHQlDUuMv+gF0BIY1bfm0GanM9sLIzQ+LqgCyQRwL5boO3D4rUs
	esxdkrqMpSeFqM2ZN3qEFDnmTizdKnMsBxaDO/UGGpyNrX0UZTq9Zd+j/2DayYfg7RgCti2P1nO
	oxb4PfifQEevnoXhjTljVNILA8RtQvJxITU/Q48l0YCturmZYeRluY8A==
X-Received: by 2002:a17:907:a44:b0:b8e:d0ec:c9e2 with SMTP id a640c23a62f3a-b8edf37ec3emr628174066b.53.1770655958667;
        Mon, 09 Feb 2026 08:52:38 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 01/16] xen/riscv: implement arch_vcpu_{create,destroy}()
Date: Mon,  9 Feb 2026 17:52:14 +0100
Message-ID: <d385b802054e0d55129da4cbba60d34b658992c2.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce architecture-specific functions to create and destroy VCPUs.
Note that arch_vcpu_create() currently returns -EOPNOTSUPP, as the virtual
timer and interrupt controller are not yet implemented.

Add calle-saved registers used to preserve Xen’s own execution context
when switching between vCPU stacks.
It is going to be used in the following way (pseudocode):
  context_switch(prev_vcpu, next_vcpu):
    ...

    /* Switch from previous stack to the next stack. */
    __context_switch(prev_vcpu, next_vcpu);

    ...
    schedule_tail(prev_vcpu):
        Save and restore vCPU's CSRs.
The Xen-saved context allows __context_switch() to switch execution
from the previous vCPU’s stack to the next vCPU’s stack and later resume
execution on the original stack when switching back.

During vCPU creation, the Xen-saved context is going to be initialized
with:
  - SP pointing to the newly allocated vCPU stack
  - RA pointing to a helper that performs final vCPU setup before
    transferring control to the guest
After the first execution of __context_switch(), RA naturally points to
the instruction following the call site, and the remaining callee-saved
registers contain the Xen register state at the time of the switch.

As part of this change, add continue_new_vcpu(), which will be used after
the first context_switch() of a new vCPU. Since this functionality is not
yet implemented, continue_new_vcpu() is currently provided as a stub.
The prev argument is going to be set by RISC-V ABI (prev will be stored in
a0) when __context_swtich() will be introduced and called from
context_switch().

Update the STACK_SIZE definition and introduce STACK_ORDER (to align with
other architectures) for allocating the vCPU stack.

Introduce struct cpu_info to store per-vCPU state that lives at the top
of the vCPU's stack.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Move declaration of xen_saved_context structure and cpu_info structure
   here as they are going to be used in this patch.
 - Drop separate zero-ing of arch.cpu_info as a memory for it is allocated
   by vzalloc().
 - Correct calculation of stack pointer in arch_vcpu_destroy() function.
---
Changes in v2:
 - Drop BUILD_BUG_ON() in arch_vcpu_create() as a check isn't very useful.
 - Use vzalloc() instead of alloc_xenheap_page() to use the larger domheap to
   allocate vCPU's stack.
 - Drop printk() inside arch_vcpu_create() to not have potential big noise
   in console as it could be that an amount of vCPUs is pretty big.
 - Use XVFREE() instead of free_xenheap_pages() as vCPU's stack allocation
   happens with a usage of vzalloc() now.
 - Drop stack field as it is enough to have only cpu_info as stack pointer
   could be calculated based on cpu_info.
 - Drop cast when v.arch.cpu_info is inialized as it is not necessary
        to have it.
 - Drop memset() for arch.cpu_info() as it is enough to have vzalloc().
---
 xen/arch/riscv/Makefile              |  1 +
 xen/arch/riscv/domain.c              | 58 ++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/config.h  |  3 +-
 xen/arch/riscv/include/asm/current.h |  6 +++
 xen/arch/riscv/include/asm/domain.h  | 24 ++++++++++++
 xen/arch/riscv/stubs.c               | 10 -----
 6 files changed, 91 insertions(+), 11 deletions(-)
 create mode 100644 xen/arch/riscv/domain.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 0df139b27423..868514c25006 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,5 +1,6 @@
 obj-y += aplic.o
 obj-y += cpufeature.o
+obj-y += domain.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-y += imsic.o
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
new file mode 100644
index 000000000000..d035b105c2cc
--- /dev/null
+++ b/xen/arch/riscv/domain.c
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <xen/mm.h>
+#include <xen/sched.h>
+#include <xen/vmap.h>
+
+static void continue_new_vcpu(struct vcpu *prev)
+{
+    BUG_ON("unimplemented\n");
+}
+
+static void __init __maybe_unused build_assertions(void)
+{
+    /*
+     * Enforce the requirement documented in struct cpu_info that
+     * guest_cpu_user_regs must be the first field.
+     */
+    BUILD_BUG_ON(offsetof(struct cpu_info, guest_cpu_user_regs) != 0);
+}
+
+int arch_vcpu_create(struct vcpu *v)
+{
+    int rc = 0;
+    void *stack = vzalloc(STACK_SIZE);
+
+    if ( !stack )
+        return -ENOMEM;
+
+    v->arch.cpu_info = stack + STACK_SIZE - sizeof(struct cpu_info);
+
+    v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
+    v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
+
+    /* Idle VCPUs don't need the rest of this setup */
+    if ( is_idle_vcpu(v) )
+        return rc;
+
+    /*
+     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * return an error.
+     *
+     * TODO: Drop this once the vtimer and IC are implemented.
+     */
+    rc = -EOPNOTSUPP;
+    goto fail;
+
+    return rc;
+
+ fail:
+    arch_vcpu_destroy(v);
+    return rc;
+}
+
+void arch_vcpu_destroy(struct vcpu *v)
+{
+    vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info) - STACK_SIZE);
+}
diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 1e08d3bf78be..86a95df018b5 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -143,7 +143,8 @@
 
 #define SMP_CACHE_BYTES (1 << 6)
 
-#define STACK_SIZE PAGE_SIZE
+#define STACK_ORDER 3
+#define STACK_SIZE (PAGE_SIZE << STACK_ORDER)
 
 #define IDENT_AREA_SIZE 64
 
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 0c3ea70c2ec8..58c9f1506b7c 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -21,6 +21,12 @@ struct pcpu_info {
 /* tp points to one of these */
 extern struct pcpu_info pcpu_info[NR_CPUS];
 
+/* Per-VCPU state that lives at the top of the stack */
+struct cpu_info {
+    /* This should be the first member. */
+    struct cpu_user_regs guest_cpu_user_regs;
+};
+
 #define set_processor_id(id)    do { \
     tp->processor_id = (id);         \
 } while (0)
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 316e7c6c8448..f78f145258d6 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -24,6 +24,30 @@ struct arch_vcpu_io {
 
 struct arch_vcpu {
     struct vcpu_vmid vmid;
+
+    /*
+     * Callee saved registers for Xen's state used to switch from
+     * prev's stack to the next's stack during context switch.
+     */
+    struct
+    {
+        register_t s0;
+        register_t s1;
+        register_t s2;
+        register_t s3;
+        register_t s4;
+        register_t s5;
+        register_t s6;
+        register_t s7;
+        register_t s8;
+        register_t s9;
+        register_t s10;
+        register_t s11;
+        register_t sp;
+        register_t ra;
+    } xen_saved_context;
+
+    struct cpu_info *cpu_info;
 };
 
 struct paging_domain {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index acbfde79b5a7..c5784a436574 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -116,16 +116,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-int arch_vcpu_create(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
-void arch_vcpu_destroy(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void vcpu_switch_to_aarch64_mode(struct vcpu *v)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225791.1532426 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVF-0000lk-H3; Mon, 09 Feb 2026 16:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225791.1532426; Mon, 09 Feb 2026 16: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 1vpUVF-0000ki-BC; Mon, 09 Feb 2026 16:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1225791;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVD-0007Zd-NA
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52: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 c2443fb1-05d7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:52:46 +0100 (CET)
Received: by mail-ej1-x62e.google.com with SMTP id
 a640c23a62f3a-b7cf4a975d2so626648566b.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:46 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c2443fb1-05d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655965; x=1771260765; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rogtIGkdjsiYuHIg+cB4eDpb8GAwkYYPz5C7nze5IWY=;
        b=Z/MCfMErKNZxhDZA1lKjhPNZsFYniq/YhHahD0zI5qnH/nwVER4+/pJm/XN8Mo1UGd
         ixA3Vx7JJPQXymj2aUTzEYJr+sH23RzIeJXRkHM5//27kLf6z6IA4VSz3EwiWRlZfBFY
         Zpoe372MGc8NVnjre9RemZ4Hw3NPqQT2cj+vnT+o2tZ3WxaL6v5/sB+mJAqVqvbDDuij
         coiiqZigAGbD3T5uXQuJAiLm2BdzIsErMdPXTir2te+mrRRYMn0re0/HGzp0BhoqfP4T
         P6IJwbfVcWXSqbDf0z40r+oNZCHtDr1t9rBTtlZxA7zhff3ObKP3kie2pV3T0KdiqDDj
         4sHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655965; x=1771260765;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rogtIGkdjsiYuHIg+cB4eDpb8GAwkYYPz5C7nze5IWY=;
        b=cU7QNVXpcC6caKbTsCHYWupMJyR8mzm3LYLYB7KtmQu/5AXE0m+7B4z7MkjdxnggpW
         /ttpweImYOq/2Whv+2BA6V5ji/nV0DlOxdL5r8gqDl3d7AxnjRIXY63A7/TkPv8r3p1N
         1P17wcF52pdwoAMtORrEbm/FJbmMXWwZgusg64LBNfFS73KS5VLXEssljjJwoflEc3CP
         twgz+lA/k9clG5SqcxssoE4cIk6QyjscQ8HMcLnQ36HAWZlcIcnzK5/xBBdrkPpW7/Ij
         wLiFkn4FgdN/14EypmQ4sPw+ysCwoXSMVeKT8n1/GDANbYXdd/gvEkVwoj+6eLdELQfG
         Aeyg==
X-Gm-Message-State: AOJu0Yz0zP8n9RrjSfXhVy4et2ZXTCAEOYY4EPt6ZGSURmgIf9FoWJBT
	N+qn1MN5wQ2G16vcCZFWIk+vnyFiBt4o9QK6o0936Deyy8kp8Cl/JMBQqBPK+Hmq
X-Gm-Gg: AZuq6aJB9N9XtBpdK1zm9Y9dwx00tACIqvmyaHBYkuxl3M9GiIPE/nS65qiHhDWhKVM
	EOzA9L20D1eA2ue/iZW5XeLMjai1f5fy2RbyBNAvi0lo3njsp7GDncIWvFo7P8nDQ/DxxDypjpw
	rq4QE5FnE0uuOJwMS7yRyhzvMa0h+p9PS4cgxJTVKv1WBI8/XPmFBfRwpk0iRRmymGKpTz27qx0
	uRvsyzfsa4Ky5rXgdDctvdLnxUs2r9JVHL0cCKNps0K7JWMbhhxEEPR3RtXqfYzs9jZr7CI4R3J
	d0z74a9GQ0nnLkbpcuNR0BFVlaW3pMmb7ZjeXIHxXeyNtsTRYy066YRAw7XgV9Q8QqJ2XDT5cgs
	0+YeopvF2F4WCqcyT3gBusMgfI7FwHUE1/l6j8WiC7DEMmeMOVz9Uexco1DTdJ7bg/UJyszAiF9
	OuBPd+kqyRKmRKJm/36EDmAqS7Y2U7aPJrK0/JqHo4fbabme1OLn/lYOIIk86KwPK3
X-Received: by 2002:a17:907:849:b0:b87:720c:f182 with SMTP id a640c23a62f3a-b8edf173b94mr602939866b.9.1770655965308;
        Mon, 09 Feb 2026 08:52:45 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v3 07/16] xen/time: move ticks<->ns helpers to common code
Date: Mon,  9 Feb 2026 17:52:20 +0100
Message-ID: <5c9644065978daa7d227713b2e2f83ee39b18a64.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

ticks_to_ns() and ns_to_ticks() are not architecture-specific, so provide a
common implementation that is more resilient to overflow than the historical
Arm version. This is not a practical issue for Arm, as the latest ARM ARM
that timer frequency should be fixed at 1 GHz and older platforms used much
lower rates, which is shy of 32-bit overflow. As the helpers are declared
as static inline, they should not affect x86, which does not use them.

On Arm, these helpers were historically implemented as out-of-line functions
because the counter frequency was originally defined as static and unavailable
to headers [1]. Later changes [2] removed this restriction, but the helpers
remained unchanged. Now they can be implemented as static inline without any
issues.

Centralising the helpers avoids duplication and removes subtle differences
between architectures while keeping the implementation simple.

Drop redundant <asm/time.h> includes where <xen/time.h> already pulls it in.

No functional change is intended.

[1] ddee56dc2994 arm: driver for the generic timer for ARMv7
[2] 096578b4e489 xen: move XEN_SYSCTL_physinfo, XEN_SYSCTL_numainfo and
                      XEN_SYSCTL_topologyinfo to common code

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3:
 - Add Reviewed-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Move ns_to_ticks() and ticks_to_ns() to common code.
---
 xen/arch/arm/include/asm/time.h   |  3 ---
 xen/arch/arm/time.c               | 11 -----------
 xen/arch/arm/vtimer.c             |  2 +-
 xen/arch/riscv/include/asm/time.h |  5 -----
 xen/arch/riscv/time.c             |  1 +
 xen/include/xen/time.h            | 11 +++++++++++
 6 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/time.h
index 49ad8c1a6d47..c194dbb9f52d 100644
--- a/xen/arch/arm/include/asm/time.h
+++ b/xen/arch/arm/include/asm/time.h
@@ -101,9 +101,6 @@ extern void init_timer_interrupt(void);
 /* Counter value at boot time */
 extern uint64_t boot_count;
 
-extern s_time_t ticks_to_ns(uint64_t ticks);
-extern uint64_t ns_to_ticks(s_time_t ns);
-
 void preinit_xen_time(void);
 
 void force_update_vcpu_system_time(struct vcpu *v);
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index cc3fcf47b66a..a12912a106a0 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -27,7 +27,6 @@
 #include <asm/cpufeature.h>
 #include <asm/platform.h>
 #include <asm/system.h>
-#include <asm/time.h>
 #include <asm/vgic.h>
 
 uint64_t __read_mostly boot_count;
@@ -47,16 +46,6 @@ unsigned int timer_get_irq(enum timer_ppi ppi)
     return timer_irq[ppi];
 }
 
-/*static inline*/ s_time_t ticks_to_ns(uint64_t ticks)
-{
-    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
-}
-
-/*static inline*/ uint64_t ns_to_ticks(s_time_t ns)
-{
-    return muldiv64(ns, 1000 * cpu_khz, SECONDS(1));
-}
-
 static __initdata struct dt_device_node *timer;
 
 #ifdef CONFIG_ACPI
diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c
index d2124b175521..2e85ff2b6e62 100644
--- a/xen/arch/arm/vtimer.c
+++ b/xen/arch/arm/vtimer.c
@@ -12,13 +12,13 @@
 #include <xen/lib.h>
 #include <xen/perfc.h>
 #include <xen/sched.h>
+#include <xen/time.h>
 #include <xen/timer.h>
 
 #include <asm/cpregs.h>
 #include <asm/div64.h>
 #include <asm/irq.h>
 #include <asm/regs.h>
-#include <asm/time.h>
 #include <asm/vgic.h>
 #include <asm/vreg.h>
 #include <asm/vtimer.h>
diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm/time.h
index 1e7801e2ea0e..be3875b9984e 100644
--- a/xen/arch/riscv/include/asm/time.h
+++ b/xen/arch/riscv/include/asm/time.h
@@ -24,11 +24,6 @@ static inline cycles_t get_cycles(void)
     return csr_read(CSR_TIME);
 }
 
-static inline s_time_t ticks_to_ns(uint64_t ticks)
-{
-    return muldiv64(ticks, MILLISECS(1), cpu_khz);
-}
-
 void preinit_xen_time(void);
 
 #endif /* ASM__RISCV__TIME_H */
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index e962f8518d78..2c7af0a5d63b 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -4,6 +4,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/sections.h>
+#include <xen/time.h>
 #include <xen/types.h>
 
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
diff --git a/xen/include/xen/time.h b/xen/include/xen/time.h
index fe0d7a578a99..2185dd26a439 100644
--- a/xen/include/xen/time.h
+++ b/xen/include/xen/time.h
@@ -8,6 +8,7 @@
 #ifndef __XEN_TIME_H__
 #define __XEN_TIME_H__
 
+#include <xen/muldiv64.h>
 #include <xen/types.h>
 #include <public/xen.h>
 
@@ -75,6 +76,16 @@ extern void send_timer_event(struct vcpu *v);
 
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds);
 
+static inline s_time_t ticks_to_ns(uint64_t ticks)
+{
+    return muldiv64(ticks, MILLISECS(1), cpu_khz);
+}
+
+static inline uint64_t ns_to_ticks(s_time_t ns)
+{
+    return muldiv64(ns, cpu_khz, MILLISECS(1));
+}
+
 #include <asm/time.h>
 
 #endif /* __XEN_TIME_H__ */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225792.1532430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVF-0000pf-U4; Mon, 09 Feb 2026 16:52:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225792.1532430; Mon, 09 Feb 2026 16: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 1vpUVF-0000o4-Jg; Mon, 09 Feb 2026 16:52:49 +0000
Received: by outflank-mailman (input) for mailman id 1225792;
 Mon, 09 Feb 2026 16: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVE-0007Zo-1D
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:48 +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 c311b7df-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:47 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b885e8c6700so780491166b.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:47 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c311b7df-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655966; x=1771260766; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ftXQlefZdbz0dncAwMVaBMfjTGZihapLiGK/88smptw=;
        b=B0Fl9Oikdm84wh+lWNu8SEQwSI3fs3ich86nX53CWPZZV6m4bOBw9QBOCHM/9I+6hm
         znXl9GJxzvFAkMlE+RceJeJtvozQUvMkYV/N640MbLk+NYn3zm3Dzo2xigdH45dCFhF2
         fLfl3xS8UNxeJrrHFBtxHSI0braQkUjUZciCBuV1POntaMrRi/wKHWydfTTZ/EQLMrRF
         4wvCove5+oyfM6RFr9pgrGzWzS34OVXq8elrtivle3c0G+AEacfmADXkmpdrOC0W4UUz
         gRB8nGk18BGWNq+8Rhfr6fum26WgNtrjIeGhXt8PJDr14JLGzE7Ie2geK/tauItqk7me
         g3Cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655966; x=1771260766;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ftXQlefZdbz0dncAwMVaBMfjTGZihapLiGK/88smptw=;
        b=Sk44xEyp8B90E6TraQOo2FUfvHfgOjt+t/0OeJancWyoiTJvCWGrXcOVDoEX0jccnS
         +YxI8c83BJGZ7/38HG76X498SDNY0/C59hDNSVO0FPIBRAm1x7dONqpX/oCOmTTSeamN
         JiVRqh/2NUuT2Lt/crx9jepQtz9IHQ4jhanGpdC1jJsgFTL74ChyARgPGH5olSxUUZKL
         iwukE/3VJtX4Qcu/lBxcaPuheSQCqng42mJLGPM/0AxoVQge8ezg00Sr0L6IGJGSSZUw
         G7QaJxkaEnbwO2hQVSQ58vclosblZocyXod2mjavl59pUvOCDlaHr0su6+CGvcoTCp3G
         nb2w==
X-Gm-Message-State: AOJu0Yxrqmcpd9ThMqG04GGEpysYeIUCeFTKuYbX5D05Cbfel72c40K2
	TVhFXULs/4iW/Ggn2FqRj7zdFUTE7cLqnA+muzaQnJ+HJfyl8KeMNJYzgselqcyE
X-Gm-Gg: AZuq6aLGheRZEpZk8n6RK+6UDWEeXXBIHooetrr15MzGL/ltH1AjWnb6rxxGGY3E7Wv
	mzB2HgelYDKPkmqT8Dofe/VuELBqSNVJgf6xKIwfqIZFITzVqjn80un27XzzrFyKpYelntwYMYs
	1W4tFKpGumaioHD8k4cQHU5ArYvVRd9XHpzaTBTHx21fTJdTJ+gcQWY0bW8Pfak3BteYOs1wFKW
	LR78oG8jLIrnejaQ/9BhRifZZICczaBgGx7Omnp9dLNe+cRjPoH/PuyT7u15RmglHrtnjHw/KVG
	0G8Mza1a6Idg5uG5XFEJdopdPw6sq/riJ1T5dGL1jW5s83hKLG0iUiJgIn5Bv+8yzkDFl5wsuzm
	ptWOtNuvrhspDmhQ75KoNbLMJjJ/DtHSXiuq97XnWj4UBH5ald7o093PFxJymya6CIRZMIPykOF
	2TBxg29IWQUC60+/0utSURLp76tHggaZC6BA0q3TfXYY0NJmGZ2hD1Mg==
X-Received: by 2002:a17:907:868f:b0:b87:fad:442b with SMTP id a640c23a62f3a-b8edf11f316mr720701766b.3.1770655966298;
        Mon, 09 Feb 2026 08:52:46 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 08/16] xen/riscv: introduce basic vtimer infrastructure for guests
Date: Mon,  9 Feb 2026 17:52:21 +0100
Message-ID: <792ea928d748e9ff7bd331b8e8b0262695a062e9.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Lay the groundwork for guest timer support by introducing a per-vCPU
virtual timer backed by Xen’s common timer infrastructure.

The virtual timer is programmed in response to the guest SBI
sbi_set_timer() call and injects a virtual supervisor timer interrupt
into the vCPU when it expires.

While a dedicated struct vtimer is not strictly required at present,
it is expected to become necessary once SSTC support is introduced.
In particular, it will need to carry additional state such as whether
SSTC is enabled, the next compare value (e.g. for the VSTIMECMP CSR)
to be saved and restored across context switches, and time delta state
(e.g. HTIMEDELTA) required for use cases such as migration. Introducing
struct vtimer now avoids a later refactoring.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - use one container_of() to get vcpu instead of two container_of()s.
---
Changes in v2:
 - Drop domain_vtimer_init() as it does nothing.
 - Drop "struct vcpu *v;" from struct vtimer as it could be taken
   from arch_vcpu using container_of().
 - Drop vtimer_initialized, use t->status == TIMER_STATUS_invalid
   instead to understand if timer was or wasn't initialized.
 - Drop inclusion of xen/domain.h as xen/sched.h already includes it.
 - s/ xen/time.h/ xen.timer.h in vtimer.c.
 - Drop ULL in if-conidtion in vtimer_set_timer() as with the cast
   it isn't necessary to have suffix ULL.
 - Add migrate timer to vtimer_set_timer() to be sure that vtimer
   will occur on pCPU it was ran, so the signalling to that vCPU
   will (commonly) be cheaper.
 - Check if the timeout has already expired and just inject the event
   in vtimer_vtimer_set_timer().
 - Drop const for ticks argument of vtimer_set_timer().
 - Merge two patches to one:
   - xen/riscv: introduce vtimer
   - xen/riscv: introduce vtimer_set_timer() and vtimer_expired()
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/domain.c             |  8 +++-
 xen/arch/riscv/include/asm/domain.h |  3 ++
 xen/arch/riscv/include/asm/vtimer.h | 20 ++++++++
 xen/arch/riscv/vtimer.c             | 71 +++++++++++++++++++++++++++++
 5 files changed, 101 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 868514c25006..7439d029cc45 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -22,6 +22,7 @@ obj-y += traps.o
 obj-y += vmid.o
 obj-y += vm_event.o
 obj-y += vsbi/
+obj-y += vtimer.o
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 67437912605a..3f4b062b6ce8 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -10,6 +10,7 @@
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
 #include <asm/setup.h>
+#include <asm/vtimer.h>
 
 #define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
                          BIT(CAUSE_FETCH_ACCESS, U) | \
@@ -105,11 +106,14 @@ int arch_vcpu_create(struct vcpu *v)
     if ( is_idle_vcpu(v) )
         return rc;
 
+    if ( (rc = vcpu_vtimer_init(v)) )
+        goto fail;
+
     /*
-     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * As interrupt controller (IC) is not yet implemented,
      * return an error.
      *
-     * TODO: Drop this once the vtimer and IC are implemented.
+     * TODO: Drop this once IC is implemented.
      */
     rc = -EOPNOTSUPP;
     goto fail;
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index de5aecb862b5..b5a8a9f711ac 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -8,6 +8,7 @@
 #include <public/hvm/params.h>
 
 #include <asm/p2m.h>
+#include <asm/vtimer.h>
 
 struct vcpu_vmid {
     uint64_t generation;
@@ -49,6 +50,8 @@ struct arch_vcpu {
 
     struct cpu_info *cpu_info;
 
+    struct vtimer vtimer;
+
     register_t hcounteren;
     register_t hedeleg;
     register_t henvcfg;
diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
new file mode 100644
index 000000000000..0d1555511755
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * (c) 2023-2024 Vates
+ */
+
+#ifndef ASM__RISCV__VTIMER_H
+#define ASM__RISCV__VTIMER_H
+
+#include <xen/timer.h>
+
+struct vtimer {
+    struct timer timer;
+};
+
+int vcpu_vtimer_init(struct vcpu *v);
+void vcpu_timer_destroy(struct vcpu *v);
+
+void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
+
+#endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
new file mode 100644
index 000000000000..32d142bcdfcd
--- /dev/null
+++ b/xen/arch/riscv/vtimer.c
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+#include <xen/timer.h>
+
+#include <asm/vtimer.h>
+
+static void vtimer_expired(void *data)
+{
+    struct vtimer *t = data;
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+
+    vcpu_set_interrupt(v, IRQ_VS_TIMER);
+}
+
+int vcpu_vtimer_init(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    init_timer(&t->timer, vtimer_expired, t, v->processor);
+
+    return 0;
+}
+
+void vcpu_timer_destroy(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    if ( t->timer.status == TIMER_STATUS_invalid )
+        return;
+
+    kill_timer(&v->arch.vtimer.timer);
+}
+
+void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
+{
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+    s_time_t expires = ticks_to_ns(ticks - boot_clock_cycles);
+
+    vcpu_unset_interrupt(v, IRQ_VS_TIMER);
+
+    /*
+     * According to the RISC-V sbi spec:
+     *   If the supervisor wishes to clear the timer interrupt without
+     *   scheduling the next timer event, it can either request a timer
+     *   interrupt infinitely far into the future (i.e., (uint64_t)-1),
+     *   or it can instead mask the timer interrupt by clearing sie.STIE CSR
+     *   bit.
+     */
+    if ( ticks == ((uint64_t)~0) )
+    {
+        stop_timer(&t->timer);
+
+        return;
+    }
+
+    if ( expires < NOW() )
+    {
+        /*
+         * Simplify the logic if the timeout has already expired and just
+         * inject the event.
+         */
+        stop_timer(&t->timer);
+        vcpu_set_interrupt(v, IRQ_VS_TIMER);
+
+        return;
+    }
+
+    migrate_timer(&t->timer, smp_processor_id());
+    set_timer(&t->timer, expires);
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225786.1532373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUV9-0007ty-RE; Mon, 09 Feb 2026 16:52:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225786.1532373; Mon, 09 Feb 2026 16: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 1vpUV9-0007tr-OI; Mon, 09 Feb 2026 16:52:43 +0000
Received: by outflank-mailman (input) for mailman id 1225786;
 Mon, 09 Feb 2026 16: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUV8-0007Zo-Ja
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:42 +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 bf2bce51-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:41 +0100 (CET)
Received: by mail-ed1-x530.google.com with SMTP id
 4fb4d7f45d1cf-64bea6c5819so6739199a12.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:40 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bf2bce51-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655960; x=1771260760; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q13SfGkfAmGOcNIHPBnLiB5Lf3crQ10q+6piREbgcus=;
        b=JJQcTvpghBmg+G46LfvQrwDma7uWBK3+q4Pxq/lcG3gVNxaqczJ3VfP6Z8mwWtw37U
         jlAzBJvmk0N6xIFy/qgRO76HtF+xiFpetH49DVA6X6//uxnHVtHA7PmNM5n3j5a7PxoS
         Jx15Ciighbk9yqoibGxJzt74KLqvI2UUtELXIC2vwAMMD71mBOy2Ph3WYEeZZFbC1Jcs
         mZ0skXEeEJi5MZZ7mnwNMHBe8jpU59VGB7yidMtDFh2Fg9FHgJcGw90R9StDPN5acbHv
         BhIxxtUSRCLMYNftWfGc9UcynKPGATb5iZwDU25utib48sLBpkAVHeqLnxQXAzLwRHp2
         fN6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655960; x=1771260760;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Q13SfGkfAmGOcNIHPBnLiB5Lf3crQ10q+6piREbgcus=;
        b=YCcfCG/2+ml9LKMTfrz1Rl0D53bETmpojrweadFBdx6iUKoxvy/JXruB9+ETzQUMFF
         t0XjuyrTUVez5I3eSKrUIqomIAp4kRmQzZbuxx3PU967UsonzQtHfpR+6tNttoTtfsRd
         hccal0RZWd4c5uZdms6B7mnVJQvIUC7TCOj2bFYR0DRrMz/d7OtJ0lupGqIbZY0ZXZJB
         fxXoRdEx/FZYlaNqg3nhuwhvc7LhJEO5EUuW4z8Zn0YC6rsvev37VwFg90GFbPfQgBlO
         7waksulpb/ybD4rN4tst6jWmmCSs4Z+1ihnAFOGxFxXPrKGhZXMbrxvTvaEdMDII//h5
         JQ6A==
X-Gm-Message-State: AOJu0YyELK+Fho2EmVEZYDUkcIkJ6DP1u7s9LZ+B8G7xgFpHsPy/poUk
	jWeKJNz7TeN7tqpdrXR6//r3LgNWmYIUsWZeGmB2An7djD7FUp8RaCElx7GrjBEp
X-Gm-Gg: AZuq6aKYlC1lZJrp5V2Hlku8T1nOAciE6C9IasOHenLy9DXVIgyWicEMFJqiDftmWd6
	DROh+AnYrDXb374Yt8e7a8c3qo28CorM4RqGJ0Pu9m3NapytWhMWZ/pt5wMcHIDDSDzCekfq46v
	UpKLis1ujJAHvsKNAjQEYGr/Lpd7g2wwawWnYvd9nLooP7enzpqXx60l5/sMNm03XpPLkIPvKEX
	+hO62a4ZZVnweqwLiVf+S/FAv2GcUHh+QkqqEQGnQalivScLMcnmZVtD7pxq+0cRhDwS0bIuTvx
	F+xeKYUDgistdydUBymZlf2NZRAIu5Qm9zR69hVr5BVMW6a+sVnOoYYpJC8kameILHnrzHdE7XK
	lBW5RB/W+cUm3ze4PyYZ9R8aJNnPoUv9vKMu1lXtvyEBUS6YaHX17XP1h4V0Ywd4bUxkm0fNvlj
	Co8HdPaj68toljlbrdSYzN4ZvHUl5FxCDW1PQU0WZE6ZCLKpArYBL6Ug==
X-Received: by 2002:a17:907:3d0c:b0:b8e:a1ae:8054 with SMTP id a640c23a62f3a-b8edf178627mr705971366b.2.1770655959738;
        Mon, 09 Feb 2026 08:52:39 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 02/16] xen/riscv: avoid reading hstateen0 when Smstateen is not implemented
Date: Mon,  9 Feb 2026 17:52:15 +0100
Message-ID: <d26b9103def3ff86524e1306c63cd84e217c8f11.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

If the Smstateen extension is not implemented, the hstateen0 CSR is
considered non-existent. Any attempt to access it will raise an
illegal-instruction exception.

Guard the hstateen0 dump with a runtime check for Smstateen support to
avoid triggering traps when dumping CSRs on systems that do not
implement this extension.

Fixes: 3babc8d2e546 ("xen/riscv: dump GPRs and CSRs on unexpected traps")
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - New patch
---
 xen/arch/riscv/cpufeature.c             | 1 +
 xen/arch/riscv/include/asm/cpufeature.h | 1 +
 xen/arch/riscv/traps.c                  | 8 +++++++-
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/cpufeature.c b/xen/arch/riscv/cpufeature.c
index 02b68aeaa49f..03e27b037be0 100644
--- a/xen/arch/riscv/cpufeature.c
+++ b/xen/arch/riscv/cpufeature.c
@@ -137,6 +137,7 @@ const struct riscv_isa_ext_data __initconst riscv_isa_ext[] = {
     RISCV_ISA_EXT_DATA(zbb),
     RISCV_ISA_EXT_DATA(zbs),
     RISCV_ISA_EXT_DATA(smaia),
+    RISCV_ISA_EXT_DATA(smstateen),
     RISCV_ISA_EXT_DATA(ssaia),
     RISCV_ISA_EXT_DATA(svade),
     RISCV_ISA_EXT_DATA(svpbmt),
diff --git a/xen/arch/riscv/include/asm/cpufeature.h b/xen/arch/riscv/include/asm/cpufeature.h
index b69616038888..ef02a3e26d2c 100644
--- a/xen/arch/riscv/include/asm/cpufeature.h
+++ b/xen/arch/riscv/include/asm/cpufeature.h
@@ -36,6 +36,7 @@ enum riscv_isa_ext_id {
     RISCV_ISA_EXT_zbb,
     RISCV_ISA_EXT_zbs,
     RISCV_ISA_EXT_smaia,
+    RISCV_ISA_EXT_smstateen,
     RISCV_ISA_EXT_ssaia,
     RISCV_ISA_EXT_svade,
     RISCV_ISA_EXT_svpbmt,
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 34920f4e5693..c81a4f79a0d2 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -11,6 +11,7 @@
 #include <xen/nospec.h>
 #include <xen/sched.h>
 
+#include <asm/cpufeature.h>
 #include <asm/intc.h>
 #include <asm/processor.h>
 #include <asm/riscv_encoding.h>
@@ -144,7 +145,12 @@ static void dump_csrs(const char *ctx)
       (v & HSTATUS_SPV)  ? " SPV"  : "",
       (v & HSTATUS_GVA)  ? " GVA"  : "");
     X(hgatp, CSR_HGATP, "\n");
-    X(hstateen0, CSR_HSTATEEN0, "\n");
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        X(hstateen0, CSR_HSTATEEN0, "\n");
+    }
+
     X(stvec, CSR_STVEC, " "); X(vstvec, CSR_VSTVEC, "\n");
     X(sepc, CSR_SEPC, " "); X(vsepc, CSR_VSEPC, "\n");
     X(stval, CSR_STVAL, " "); X(vstval, CSR_VSTVAL, "\n");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225784.1532356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUV8-0007Zw-79; Mon, 09 Feb 2026 16:52:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225784.1532356; Mon, 09 Feb 2026 16: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 1vpUV8-0007Zp-3y; Mon, 09 Feb 2026 16:52:42 +0000
Received: by outflank-mailman (input) for mailman id 1225784;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUV6-0007Zd-LK
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:40 +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 bdca6d60-05d7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:52:38 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b88593aa4dcso633197966b.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:38 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bdca6d60-05d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655958; x=1771260758; 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=dnVylvnipxBSPnDY8Wv0Go2z/QN4Eu6VSZZcaHP7YBw=;
        b=THYmgS6GFw4gjzIrOSkMYij4Izjp7HkxboVCcfgTtCwxGuwZsgI+WsThAMUynuo5wD
         tUrD/I/WV0yTw+WWE4Uz96qBxrnRWsX/w3SwbLl5rxUgdj4SlL6H6C2y4YUxJvo5ey1l
         bi5XF/OfflnhEIlhJDdlteICkHe6Yw9FebrTOmxS0GhsIXtbtm0yArurPY8zoljcotWn
         rQccl5rs/otCsrgF7sZmzVYnn1kVKsJxbuAZoO68LNzoO2zTXwEb2Zf75oASz5EfgGjP
         7gC7MfvEoEYmaWG7J5PKuLek1831bQmgawLXJhb1jFfP4buguaGXRbdRodEPJAki8A9R
         kqsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655958; x=1771260758;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dnVylvnipxBSPnDY8Wv0Go2z/QN4Eu6VSZZcaHP7YBw=;
        b=iVWgvdGfI0wqryUq8ssdzyyQ08iIdZA2v+GlqFEq7ZYglxxSIAzfjhc+7vkca5651h
         pYsFcV9ALsXe7UR1gMYQcy2u1gDOibF0ZkJdZugKd58x0pCImrMDEzG2RWwvLRT6k7QO
         TNUjeiYe2Tpuw840SDGUoHUo1OiOMFK7FlDuhcn3g7jUXqb5el7UGZ2+bf13tGhS/5Qj
         ljHgHvlEL7/bT4QsdvGWonTZ6/bmMbfOjW7p4v2XFvYMgBZgIVXXTRzCEt/mTfBIZTZC
         8gM5PFcxzoB7VT8vDVwI8WRUQj6996i+neRU2Ie0rhSBW7ZJ7SvPUp2jLEg5ObdcgHA9
         /z5g==
X-Gm-Message-State: AOJu0Yx9uJs7PXMqyDLz2KYjPybJBxe5pIRK7gsW8fzKvJKdieAp167t
	AkW4El2qRuFV++IL1EPMy2p8cDvz9bnLEzozG5rdMk94WPRkP8trNoLJ2yaLPeGc
X-Gm-Gg: AZuq6aKIlprdJzUJ8ib889X72PLMhTRWHx/auYowC7sfnp9fEMVW3yReSSVd83z/Cwf
	rYZOaJUMV3k65t4J8RiwVruBy9wq6Z8CBcxriln1FhNes/8axtDic62WrMcMbbQ7sa6tevBAhL7
	azf52/+34rf5iJI8WldtKp1ry1QCsCAcc9FtLLFUiY3gta2fNk4agnSD6W1T0uNEKxUwOmL/YYH
	5M6hSQckITfHd1+yWBemNJVK5WckgvKckrHZti20j5NcRXRpMxq1Ytl/xouJf4uwgF4gsxV3nxj
	TKalRY1ucyhVUsjo+ewRuyQzU768hg4BKH2vXthl3ShIzrHmbmyJLr0UYllpq7ZjhEm2LALnJGn
	8Izs6YgkMf0Icrh/IgTGr0g+V1x3WftYYBi10PfGqm7IkuOT+eWyqhKPSdwC8+N/E2h4s7UgnZ+
	FiZrsAZ0Oj+tdsiSc7TRHxdao3L8FPuwZ0B1sfY4sX2pwLMLBX/8t7UXuy4+HaGB3j
X-Received: by 2002:a17:907:728f:b0:b80:3fc4:37bd with SMTP id a640c23a62f3a-b8edf165f75mr613430866b.7.1770655957454;
        Mon, 09 Feb 2026 08:52:37 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v3 00/16] xen/riscv: introduce vtimer related things
Date: Mon,  9 Feb 2026 17:52:13 +0100
Message-ID: <cover.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch series introduces the components necessary to implement a virtual
timer (vtimer).

Since the SSTC extension is not supported by Xen, an emulated (SBI-based)
timer is required. To address this, a virtual timer built on Xen’s timer
infrastructure is introduced, with save/restore support and SBI-based
programming.

To provide full guest software–based timer support, the following components
are also introduced:
- arch_vcpu_{create,destroy}() to initialize the virtual timer and other
  vCPU-related state not directly tied to timer functionality. As part of this
  work, struct arch_vcpu is introduced to describe the internal state of a
  virtual CPU, along with vcpu_csr_init() to initialize the relevant CSR state.
- Support functions required by the virtual timer, including:
  - vcpu_kick(), and a stub implementation of smp_send_event_check_mask()
    (since SMP is not yet supported in Xen), which is used by vcpu_kick().
  - Support for guest timer programming via interception of the SBI legacy
    SET_TIMER call from guest.
  - Implement reprogram_timer() using introduced sbi_set_timer().
  - Initial lockless tracking of pending vCPU interrupts using atomic bitmaps.
- Handling of hypervisor timer interrupts and dispatch into Xen’s generic timer
  softirq.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2314656143

---
Changes in v3:
 - Squash patch "xen/riscv: introduce struct arch_vcpu" into other
   patches of the patch series.
 - Merged to staging:
   - xen/riscv: implement stub for smp_send_event_check_mask()
 - Address other comments from ML.
---
Changes in v2:
 - Add consumer part of tracking of pending vCPU interrupts.
 - Split patch "xen/riscv: init tasklet subsystem" to two.
 - Patches were acked:
   - xen/riscv: introduce vcpu_kick() implementation
   - xen/riscv: implement SBI legacy SET_TIMER support for guests
 - All other changes are patch-specific. Please check them.
---

Oleksii Kurochko (16):
  xen/riscv: implement arch_vcpu_{create,destroy}()
  xen/riscv: avoid reading hstateen0 when Smstateen is not implemented
  xen/riscv: detect and store supported hypervisor CSR bits at boot
  xen/riscv: implement vcpu_csr_init()
  xen/riscv: introduce tracking of pending vCPU interrupts, part 1
  xen/riscv: introduce tracking of pending vCPU interrupts, part 2
  xen/time: move ticks<->ns helpers to common code
  xen/riscv: introduce basic vtimer infrastructure for guests
  xen/riscv: introduce vcpu_kick() implementation
  xen/riscv: add vtimer context switch helpers
  xen/riscv: implement SBI legacy SET_TIMER support for guests
  xen/riscv: introduce sbi_set_timer()
  xen/riscv: implement reprogram_timer() via SBI
  xen/riscv: handle hypervisor timer interrupts
  xen/riscv: init tasklet subsystem
  xen/riscv: implement sync_vcpu_execstate()

 xen/arch/arm/include/asm/time.h             |   3 -
 xen/arch/arm/time.c                         |  11 -
 xen/arch/arm/vtimer.c                       |   2 +-
 xen/arch/riscv/Makefile                     |   2 +
 xen/arch/riscv/cpufeature.c                 |   1 +
 xen/arch/riscv/domain.c                     | 257 ++++++++++++++++++++
 xen/arch/riscv/include/asm/Makefile         |   1 -
 xen/arch/riscv/include/asm/config.h         |   3 +-
 xen/arch/riscv/include/asm/cpufeature.h     |   1 +
 xen/arch/riscv/include/asm/current.h        |   8 +
 xen/arch/riscv/include/asm/domain.h         |  58 +++++
 xen/arch/riscv/include/asm/perfc_defn.h     |   3 +
 xen/arch/riscv/include/asm/riscv_encoding.h |   2 +
 xen/arch/riscv/include/asm/sbi.h            |  18 ++
 xen/arch/riscv/include/asm/setup.h          |   9 +
 xen/arch/riscv/include/asm/time.h           |   5 -
 xen/arch/riscv/include/asm/vtimer.h         |  23 ++
 xen/arch/riscv/sbi.c                        |  40 ++-
 xen/arch/riscv/setup.c                      |  29 +++
 xen/arch/riscv/stubs.c                      |  30 ---
 xen/arch/riscv/time.c                       |  44 ++++
 xen/arch/riscv/traps.c                      |  32 ++-
 xen/arch/riscv/vsbi/legacy-extension.c      |   6 +
 xen/arch/riscv/vtimer.c                     |  86 +++++++
 xen/include/xen/time.h                      |  11 +
 25 files changed, 631 insertions(+), 54 deletions(-)
 create mode 100644 xen/arch/riscv/domain.c
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225787.1532380 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVA-0007yt-7o; Mon, 09 Feb 2026 16:52:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225787.1532380; Mon, 09 Feb 2026 16: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 1vpUVA-0007yY-0A; Mon, 09 Feb 2026 16:52:44 +0000
Received: by outflank-mailman (input) for mailman id 1225787;
 Mon, 09 Feb 2026 16: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUV8-0007Zo-Sv
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:42 +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 bfbf3b32-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:42 +0100 (CET)
Received: by mail-ej1-x635.google.com with SMTP id
 a640c23a62f3a-b885e8c6727so487877666b.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:41 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bfbf3b32-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655961; x=1771260761; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u33CKgrUFdgsGpUw8x9D4VJJRV1mttKFRSeG1+lahcw=;
        b=b8Nd+ojWbI8XN2n5eAKILcx6uqvdDJKfbggqnaTqo7ApKHvcDbPfx2MyFigUqmmyrz
         klTR7uMuoEO1VAEuiElllK/5ni1ezrnrhcwHsAnrqJSZZDVMFR2U+ZcM3Kwydhval5f9
         jH39wyueqqPpL+Hcypj4BXKsvIv2xOAsf7X2DqHw266UvUgNgHeI467n8cxpFeXPg6V0
         ieW1N46VeQGeq85Pn/AnW25N9w+bz3VvmfIt8kla9JvDvWPWxPCg5vuZ6SUJa1Kf7XHw
         ZYKhSZP04T1RNNWssE7e9YkkDzRbsZz1BDp6wn/dDNdZd71ZpVLNKFcSyveYaTkYpk9J
         tzrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655961; x=1771260761;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=u33CKgrUFdgsGpUw8x9D4VJJRV1mttKFRSeG1+lahcw=;
        b=AL6bGU+kKig8Mp7A/f0MUlhCiACxa4D4nxRUoltnbeE88LMFCD07f9+n7QNr6zQvlK
         EFRNY67ji+ELWndFN9zjybm+7CDFS8Y9BtWbBvp6zXKWAoCJj5OmKdU/Z4IqKX4iOhUV
         b61UODt3LtBGhefi7f7O9RZ02lows/Vz24+0CPp44+e+Ru2UTaYNrSi40SPkU0BSASFC
         g104SLKqEDuH7UMOz0B9u1FZIjXWGeZ/Y+dokY7GZ4r1AL2/YiQqmNu+vYPBAwgpUXMv
         6FUEELhHKBC7DAJDHTixREZRHt3UtxRmXFgbTnz5DvYX0ymxjVqrw+PE6cQBcwiFP0CP
         ERVA==
X-Gm-Message-State: AOJu0Yxd7ZzaX8x62qo4qEieZiOHrd2s+BmwDRW0A2C9fREeZcq0i4Vi
	C5wuPBM9W+KLPskwCMVzsxTaBfb5wq3S2d7VqPh9TOpfHUPhdbIUOLe+j2UoUos+
X-Gm-Gg: AZuq6aIaRyiaxM+dYFVfmw3aWvSxJW59v7a+BMAslgI27eaB1/D0KqVwzGDc8cunb/W
	vt5n7mWlNvY6/HmALj7rzRjZobHpJsImfQjew1PLUzBLVlZgzZjzsUB1e7bDmO9fSVbnA+AybA3
	BPQIbpN8g82dX1lvceuswHTs67en2a/vKPYr64pf4N5x3IbdVcYTj1d0qxW2OnJj9+Mwpz8Fq2I
	+o7JPwqUhEF0oJMka6FpxWsG58Evaq3Wo1dUJ+sZCHAEQLLCCCscIdysLUMc0tLbnDECcwkIFRP
	rwFALI+5v0gm8zDvkZ9KFqRcxNltC5QgxHugZGyRDwcHSGwy6SERhr3yLwxTCDxyWk1zHJd83wj
	frslqnH2beXk9QsyQ7oVathygRMPVbzdPzTGVdye5+JRNqe/uOswO/gtN3E5ROfmQW+UUdc0Amv
	tjoy9WuUr1SWWMkPHoXyrrduYJc4gGt3/VbkqDPsGjzFhGmC9K9fFIww==
X-Received: by 2002:a17:907:9409:b0:b88:5a61:5461 with SMTP id a640c23a62f3a-b8f4d34f084mr6259266b.2.1770655960777;
        Mon, 09 Feb 2026 08:52:40 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 03/16] xen/riscv: detect and store supported hypervisor CSR bits at boot
Date: Mon,  9 Feb 2026 17:52:16 +0100
Message-ID: <cfb2bd81ca9c43f29f5d77a918e1da7a8c55318e.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some hypervisor CSRs expose optional functionality and may not implement
all architectural bits. Writing unsupported bits can either be ignored
or raise an exception depending on the platform.

Detect the set of writable bits for selected hypervisor CSRs at boot and
store the resulting masks for later use. This allows safely programming
these CSRs during vCPU context switching and avoids relying on hardcoded
architectural assumptions.

Note that csr_set() is used instead of csr_write() to write all ones to
the mask, as the CSRRS instruction, according to the RISC-V specification,
sets only those bits that are writable:
    Any bit that is high in rs1 will cause the corresponding bit to be set
    in the CSR, if that CSR bit is writable.
In contrast, the CSRRW instruction does not take CSR bit writability into
account, which could lead to unintended side effects when writing all ones
to a CSR.

Masks are calculated at the moment only for hdeleg, henvcfg, hideleg,
hstateen0 registers as only them are going to be used in the follow up
patch.

If the Smstateen extension is not implemented, hstateen0 cannot be read
because the register is considered non-existent. Instructions that attempt
to access a CSR that is not implemented or not visible in the current mode
are reserved and will raise an illegal-instruction exception.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V3:
 - New patch.
---
 xen/arch/riscv/include/asm/setup.h |  9 +++++++++
 xen/arch/riscv/setup.c             | 26 ++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c9d69cdf5166..d54f6a2d1d29 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,15 @@
 
 #include <xen/types.h>
 
+struct csr_masks {
+    register_t hedeleg;
+    register_t henvcfg;
+    register_t hideleg;
+    register_t hstateen0;
+};
+
+extern struct csr_masks csr_masks;
+
 #define max_init_domid (0)
 
 void setup_mm(void);
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9b4835960d20..010489f0b713 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -32,6 +32,8 @@
 unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
     __aligned(STACK_SIZE);
 
+struct csr_masks __ro_after_init csr_masks;
+
 /**
  * copy_from_paddr - copy data from a physical address
  * @dst: destination virtual address
@@ -70,6 +72,28 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
     return fdt;
 }
 
+void __init init_csr_masks(void)
+{
+    register_t old;
+
+#define X(csr, field) \
+        old = csr_read(CSR_##csr); \
+        csr_set(CSR_##csr, ULONG_MAX); \
+        csr_masks.field = csr_read(CSR_##csr); \
+        csr_write(CSR_##csr, old)
+
+    X(HEDELEG, hedeleg);
+    X(HENVCFG, henvcfg);
+    X(HIDELEG, hideleg);
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        X(HSTATEEN0, hstateen0);
+    }
+
+#undef X
+}
+
 void __init noreturn start_xen(unsigned long bootcpu_id,
                                paddr_t dtb_addr)
 {
@@ -137,6 +161,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     riscv_fill_hwcap();
 
+    init_csr_masks();
+
     preinit_xen_time();
 
     intc_preinit();
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225790.1532411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVE-0000Lg-0r; Mon, 09 Feb 2026 16:52:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225790.1532411; Mon, 09 Feb 2026 16:52:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVD-0000LF-Oo; Mon, 09 Feb 2026 16:52:47 +0000
Received: by outflank-mailman (input) for mailman id 1225790;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVB-0007Zd-UZ
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:45 +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 c109f96a-05d7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:52:44 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b8871718b05so750093466b.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:44 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c109f96a-05d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655963; x=1771260763; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SzY4hdexyuBIJK3FnsuLFLVzhScz5N5GsSrSydDkBvI=;
        b=SbZrHIzIey+5pW5ALuvACrTCue2E67SCBmgQefYcjFBFlO3S2n89bkdRAoFD/vdRiM
         1LU1UiYTh1kCwoMVm4j5kV7Dj1uKv1zVY9h183nRwlSWIfYOSaxyT2RMwcwZB0nGeHro
         Ymir2PJD0yHO8InUrkiNXk9Thq7PvcP2Hu1ZiyF3gr+jkaSGaEBo6quMtONSDvDI5eCZ
         Y6sfOzSNZLHLhItfdPzjRIRMRFZaKCBwLF26POOrVy0LVsXinHDOft+gYo2eqkNigoB5
         NV5Jc8u6DbUIc/pu5ZCAwruBoYsk3kbMsf4EzRXWVeqiriS4DBdKRo5SmPUpVLHd3sN/
         kRyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655963; x=1771260763;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=SzY4hdexyuBIJK3FnsuLFLVzhScz5N5GsSrSydDkBvI=;
        b=VNdYFacGm3kqkV3sabQJeSEIE1NmxFLVNo16k5tNgaebF/oCblyNhkXmPqiJtiL0jD
         Utdq77yYVDqyDppDyLKpayKamnVJ4ELKg2kvHliN1hjIbJc2jjjnwBTustCs/XT2Rp20
         5QY3ZGnhqZN/paXjazCYbAUoC3E//l3rebIxMVAG7pJFO2H2Pq1PE+4iQKE6CbjdclIY
         h2KJz8VZdhUsX2q9uniE31Bsa4vkl5o9PNn4L6PWbuKb9N6aKSr8V/IVWw0f5iCasw69
         XyoUd4ihPZ6uIYRgG0k5vFQjzA9Hv3TCEtpdcm6+egHtDSlIz9uE4CF6DJqqyl8vft3U
         IT5A==
X-Gm-Message-State: AOJu0YyqGVcJtEr7EL3VRbnqqpEx6KxepkyguKIhjzoB0e5XqVYoEOVI
	m8t4qw52fSnllAWAXTspJbA/uxRAnSr413uAjYfWOJbtzqthi9lhe04W/FJO93LO
X-Gm-Gg: AZuq6aLbthQF4Z6K74gcG+mFzpXjO5iymuL2Hh2cSA+PBSmvd+60UDv602bFB6sxriN
	OxMzasQQf3WckcE81RefGJcRnLmhVBZqVJATmMBz5AnhS68qVJYH2h4y55gcsDvexFvnFYbKbZn
	X9it3HUjRODu+76m8xjGjw9BfQDxMjch79F5gSgJV8jB9/98x1B+D90Mz3h0gOov0iLSNe3s169
	SmmN7TKaSVbdzNuALCiw7RIQOyfJcgDcWH275/wdcciv8lkUBxeRCzkZ/myDUjcOJH0tjUWf4pM
	/R6i5TywPjBCDyQg3hz6Stxh3x7COZNemEi4p6Y9pZ1zOzBv3dInENIpo5bUU4uu08WndD/Ge4K
	2TTjV5JLWGTQLmQ4whYEURasXlzm7RQ0V1H5kIJMIPYu3sB/yA5Fe/wEo4R9KrLKYXFV1yFyokd
	mnitNlU3ziTyd9TeTY/RdsUY4qdRB9+JgtNXLWIXSwGfwFTbrjXbaLaQ==
X-Received: by 2002:a17:906:c154:b0:b87:6953:9d5e with SMTP id a640c23a62f3a-b8edf3411bdmr674611966b.33.1770655962985;
        Mon, 09 Feb 2026 08:52:42 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 05/16] xen/riscv: introduce tracking of pending vCPU interrupts, part 1
Date: Mon,  9 Feb 2026 17:52:18 +0100
Message-ID: <ced640968434a67c150eff90437f83d3b460a36c.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Based on Linux kernel v6.16.0.
Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
we want to guarantee that if a bit in irqs_pending_mask is obversable
that the correspondent bit in irqs_pending is observable too.

Add lockless tracking of pending vCPU interrupts using atomic bitops.
Two bitmaps are introduced:
 - irqs_pending — interrupts currently pending for the vCPU
 - irqs_pending_mask — bits that have changed in irqs_pending

The design follows a multi-producer, single-consumer model, where the
consumer is the vCPU itself. Producers may set bits in
irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
performed only by the consumer via xchg_acquire(). The consumer must not
write to irqs_pending and must not act on bits that are not set in the
mask. Otherwise, extra synchronization should be provided.

On RISC-V interrupts are not injected via guest registers, so pending
interrupts must be recorded in irqs_pending (using the new
vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
HVIP before returning control to the guest. The consumer side is
implemented in a follow-up patch.

A barrier between updating irqs_pending and setting the corresponding
mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
that if the consumer observes a mask bit set, the corresponding pending
bit is also visible. This prevents missed interrupts during the flush.

It is possible a guest could have pending bit not result in the hardware
register without to be marked pending in irq_pending bitmap as:
  According to the RISC-V ISA specification:
    Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
    interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
    is an alias (writable) of the same bit in hvip.
  Additionally:
    When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
    zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
    hie.VSSIE.
This means the guest may modify vsip.SSIP, which implicitly updates
hip.VSSIP and the bit being writable with 1 would also trigger an interrupt
as according to the RISC-V spec:
  These conditions for an interrupt trap to occur must be evaluated in a
  bounded   amount of time from when an interrupt becomes, or ceases to be,
  pending in sip,  and must also be evaluated immediately following the
  execution of an SRET  instruction or an explicit write to a CSR on which
  these interrupt trap conditions expressly depend (including sip, sie and
  sstatus).
What means that IRQ_VS_SOFT must be synchronized separately, what is done
in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
PMU isn't supported now.

For the remaining VS-level interrupt types (IRQ_VS_TIMER and
IRQ_VS_EXT), the specification states they cannot be modified by the guest
and are read-only:
  Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
  bits for VS-level external interrupts. VSEIP is read-only in hip, and is
  the logical-OR of these interrupt sources:
    • bit VSEIP of hvip;
    • the bit of hgeip selected by hstatus.VGEIN; and
    • any other platform-specific external interrupt signal directed to
      VS-level.
  Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
  bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
  logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
  signal directed to VS-level.
Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
and vcpu_unset_interrupt(), and flush them during the call of
vcpu_flush_interrupts() (which is introduced in follow up patch).

vcpu_sync_interrupts(), which is called just before entering the VM,
slightly bends the rule that the irqs_pending bit must be written
first, followed by updating the corresponding bit in irqs_pending_mask.
However, it still respects the core guarantee that the producer never
clears the mask and only writes to irqs_pending if it is the one that
flipped the corresponding mask bit from 0 to 1.
Moreover, since the consumer won't run concurrently because
vcpu_sync_interrupts() and the consumer path are going to be invoked
equentially immediately before VM entry, it is safe to slightly relax
this ordering rule in vcpu_sync_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Use smp_wb() instead of smp_mb__before_atomic().
 - Add explanation of the change above in the commit message.
 - Move vcpu_sync_interrupts() here to producers side.
 - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
   is called.
---
Changes in V2:
 - Move the patch before an introduction of vtimer.
 - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
   vcpu structure starts out all zeros.
 - Drop const for irq argument of vcpu_{un}set_interrupt().
 - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
   could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
 - Drop IRQ_LOCAL_MAX as there is no usage for it now.
---
 xen/arch/riscv/domain.c             | 70 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h | 24 ++++++++++
 xen/arch/riscv/traps.c              |  8 ++++
 3 files changed, 102 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index af9586a4eb0d..4513f778cdc4 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -5,6 +5,7 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/bitops.h>
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
@@ -124,3 +125,72 @@ void arch_vcpu_destroy(struct vcpu *v)
 {
     vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info) - STACK_SIZE);
 }
+
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
+{
+    /*
+     * We only allow VS-mode software, timer, and external
+     * interrupts when irq is one of the local interrupts
+     * defined by RISC-V privilege specification.
+     */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    set_bit(irq, v->arch.irqs_pending);
+    smp_wmb();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    vcpu_kick(v);
+
+    return 0;
+}
+
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
+{
+    /*
+     * We only allow VS-mode software, timer, external
+     * interrupts when irq is one of the local interrupts
+     * defined by RISC-V privilege specification.
+     */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    clear_bit(irq, v->arch.irqs_pending);
+    smp_wmb();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    return 0;
+}
+
+void vcpu_sync_interrupts(struct vcpu *v)
+{
+    unsigned long hvip;
+
+    /* Read current HVIP and VSIE CSRs */
+    v->arch.vsie = csr_read(CSR_VSIE);
+
+    /* Sync-up HVIP.VSSIP bit changes done by Guest */
+    hvip = csr_read(CSR_HVIP);
+    if ( (v->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL) &&
+         !test_and_set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending_mask) )
+    {
+        if ( hvip & BIT(IRQ_VS_SOFT, UL) )
+            set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
+        else
+            clear_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
+    }
+
+    /*
+     * Sync-up AIA high interrupts.
+     *
+     * It is necessary to do only for CONFIG_RISCV_32 which isn't supported
+     * now.
+     */
+#ifdef CONFIG_RISCV_32
+#   error "Update v->arch.vsieh"
+#endif
+}
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 6bb06a50c6ab..8d9432ec5a8b 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -54,6 +54,25 @@ struct arch_vcpu {
     register_t henvcfg;
     register_t hideleg;
     register_t hstateen0;
+    register_t hvip;
+
+    register_t vsie;
+
+    /*
+     * VCPU interrupts
+     *
+     * We have a lockless approach for tracking pending VCPU interrupts
+     * implemented using atomic bitops. The irqs_pending bitmap represent
+     * pending interrupts whereas irqs_pending_mask represent bits changed
+     * in irqs_pending. Our approach is modeled around multiple producer
+     * and single consumer problem where the consumer is the VCPU itself.
+     *
+     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
+     * on RV32 host.
+     */
+#define RISCV_VCPU_NR_IRQS 64
+    DECLARE_BITMAP(irqs_pending, RISCV_VCPU_NR_IRQS);
+    DECLARE_BITMAP(irqs_pending_mask, RISCV_VCPU_NR_IRQS);
 };
 
 struct paging_domain {
@@ -92,6 +111,11 @@ static inline void update_guest_memory_policy(struct vcpu *v,
 
 static inline void arch_vcpu_block(struct vcpu *v) {}
 
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
+
+void vcpu_sync_interrupts(struct vcpu *v);
+
 #endif /* ASM__RISCV__DOMAIN_H */
 
 /*
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index c81a4f79a0d2..82e1dc59cdea 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -169,6 +169,11 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
     die();
 }
 
+static void check_for_pcpu_work(void)
+{
+    vcpu_sync_interrupts(current);
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -222,6 +227,9 @@ void do_trap(struct cpu_user_regs *cpu_regs)
         do_unexpected_trap(cpu_regs);
         break;
     }
+
+    if ( cpu_regs->hstatus & HSTATUS_SPV )
+        check_for_pcpu_work();
 }
 
 void vcpu_show_execution_state(struct vcpu *v)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225788.1532396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVC-0008Th-9g; Mon, 09 Feb 2026 16:52:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225788.1532396; Mon, 09 Feb 2026 16: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 1vpUVC-0008TX-6P; Mon, 09 Feb 2026 16:52:46 +0000
Received: by outflank-mailman (input) for mailman id 1225788;
 Mon, 09 Feb 2026 16: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVA-0007Zd-Hm
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:44 +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 c03d163d-05d7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:52:42 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b884a84e655so678536366b.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:42 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c03d163d-05d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655962; x=1771260762; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EKSs5oLs7wKY5onKUxL0luWYu7wbrnabRL4F2MZ4aOo=;
        b=IKnlpJU8Rpx6G4T98OUGeQiHevEPOitBsq15/zwJF3DMqkinFf0vuOczod14ZWLFMZ
         uD3zzlDOlQ0MuvRn5aEMcYuF/zfHadks+SYWEpri+nJ0VX0LCpUdCetiZggqyKvkewIp
         YC5/+fh3RS3Z8sdhBv3fW2kHDM+vFZyPeouxy4xelqv+GVZwtQq1+zUToPreefYXDmTB
         JdaGx0g6Xsv+78hIO33qpoyVNQwxdUL3b+nuCBMywpw0OweqyADk1zMmcOB/euEW6QOU
         GTK0ZY2k+bQWJFycU7arJahriuLTRK1CGf2S1dOr2GGE0KSkEvwMeM+odfMUTZGWlg61
         NH1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655962; x=1771260762;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EKSs5oLs7wKY5onKUxL0luWYu7wbrnabRL4F2MZ4aOo=;
        b=PNrN4EfIEmzFNuuctVl6/TDLN9nMGyULLoDq4QaNYBubeb+g/WAfNuk+OxkewoRslK
         guMSkMDzrIJOiZCiWm2Z+UcGK9mk0nySxOLakhARi02yedY0eSDId5G8NM9Z2xgpIVzt
         RH6aiHh5JkOJm6fovmdW9xSulavdRnkbGA/ff0nU2BthICrwdJyI6hH8N1DgBLGyPn1w
         IU+q71DbsH5J72ZsFblsEYBCWnTkAxMlO9cAEWwfVSTkySP3K1/pbTvur0vvaAX9ZoN0
         fXdaQXNOznmiUf56ywVmf7MYuQSWyzNNKzw7NoBytjINqSIf09Ptpflz6+m1cA8uxptN
         sYwQ==
X-Gm-Message-State: AOJu0YyHByASxPQTGEBrL1AZqpqa+STJ5kg3SUwjKT5f3x8LwzJGP+EZ
	rnLheVT0YfmLe/5xrAPeqQSAKnZcu658CD9o8ISBDgYBHME7iyPCKCUXW1jdNeUL
X-Gm-Gg: AZuq6aIQcveX+epL76c55I8DDmIgxYmiiAhVrmQVEy1NLv6/XaKiT8ZimeH0SD5UJD2
	9cnwnzVa/I+ztCthYKVPQZikXi0wNNz73a2YBc81Aej4nNWmtJ0J9yiGcgan7RcxNCpMHNXfsT3
	xU559fJdCfZc8pKhzJtb8bVpE3eG87NO1bAfxbaMPxz5q/H85KRxpRe6oLJ2EkMZ52rYY+ILPY2
	ija62YUE7jOgMJifgkhitaPRdBdqm/CxvacwErJcZVRK1LxPOpYyo9uu6waFlpv53RkkLES7ZQn
	kP9v3zkhTtnlYU7/1J8W9wpvTt1HZkjtX8betnk1crAFyAOqj5YADayl4N2KcHX/Q5tEMz7nPJB
	rebN3PhjEZxtt5fix76cP8X6NQDYyaf2jv1aQhVGmIlhlSuesnlwLfGsXWdDzAAS2mmSz2tCL1q
	mWI5HgolOCcozZL8uUFR9k31km7SJo+KHKIOtopCnGAv1Ui2OaGc541w==
X-Received: by 2002:a17:907:a45:b0:b8e:a1ae:f96a with SMTP id a640c23a62f3a-b8edf38cbf3mr741790166b.46.1770655961769;
        Mon, 09 Feb 2026 08:52:41 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 04/16] xen/riscv: implement vcpu_csr_init()
Date: Mon,  9 Feb 2026 17:52:17 +0100
Message-ID: <212accf20032cc9cbe6c33752fa45de1c1284e3c.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vcpu_csr_init() to initialise hypervisor CSRs that control
vCPU execution and virtualization behaviour before the vCPU is first
scheduled.
The function configures trap and interrupt delegation to VS-mode by
setting the appropriate bits in the hedeleg and hideleg registers,
initializes hstatus so that execution enters VS-mode when control is
passed to the guest, and restricts guest access to hardware performance
counters by initializing hcounteren, as unrestricted access would
require additional handling in Xen.
When the Smstateen and SSAIA extensions are available, access to AIA
CSRs and IMSIC guest interrupt files is enabled by setting the
corresponding bits in hstateen0, avoiding unnecessary traps into Xen
(note that SVSLCT(Supervisor Virtual Select) name is used intead of
CSRIND as OpenSBI uses such name and riscv_encoding.h is mostly based
on it).
If the Svpbmt extension is supported, the PBMTE bit is set in
henvcfg to allow its use for VS-stage address translation. Guest
access to the ENVCFG CSR is also enabled by setting ENVCFG bit in
hstateen0, as a guest may need to control certain characteristics of
the U-mode (VU-mode when V=1) execution environment.

For CSRs that may contain read-only bits (e.g. hedeleg, hideleg,
hstateen0), to the written value a correspondent mask is applied to
avoid divergence between the software state and the actual CSR
contents.

As hstatus is not part of struct arch_vcpu (it already resides in
struct cpu_user_regs), introduce vcpu_guest_cpu_user_regs() to provide
a uniform way to access hstatus and other guest CPU user registers.

This establishes a consistent and well-defined initial CSR state for
vCPUs prior to their first context switch.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Add hypervisor register used to initalize vCPU state.
 - Apply masks introduced before instead of csr_write()/csr_read() pattern.
---
Changes in v2:
 - As hstatus isn't a part of arch_vcpu structure (as it is already a part of
   cpu_user_regs) introduce vcpu_guest_cpu_user_regs() to be able to access
   hstatus and other CPU user regs.
 - Sort hideleg bit setting by value. Drop a stray blank.
 - Drop | when the first initialization of hcounteren and hennvcfg happen.
 - Introduce HEDELEG_DEFAULT. Sort set bits by value and use BIT() macros
   instead of open-coding it.
 - Apply pattern csr_write() -> csr_read() for hedeleg and hideleg instead
   of direct bit setting in v->arch.h{i,e}deleg as it could be that for some
   reason some bits of hedeleg and hideleg are r/o.
   The similar patter is used for hstateen0 as some of the bits could be r/o.
 - Add check that SSAIA is avaialable before setting of SMSTATEEN0_AIA |
   SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT bits.
 - Drop local variables hstatus, hideleg and hedeleg as they aren't used
   anymore.
---
 xen/arch/riscv/domain.c                     | 68 +++++++++++++++++++++
 xen/arch/riscv/include/asm/current.h        |  2 +
 xen/arch/riscv/include/asm/domain.h         |  6 ++
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 +
 4 files changed, 78 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index d035b105c2cc..af9586a4eb0d 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -5,6 +5,72 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/cpufeature.h>
+#include <asm/csr.h>
+#include <asm/riscv_encoding.h>
+#include <asm/setup.h>
+
+#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
+                         BIT(CAUSE_FETCH_ACCESS, U) | \
+                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
+                         BIT(CAUSE_BREAKPOINT, U) | \
+                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
+                         BIT(CAUSE_LOAD_ACCESS, U) | \
+                         BIT(CAUSE_MISALIGNED_STORE, U) | \
+                         BIT(CAUSE_STORE_ACCESS, U) | \
+                         BIT(CAUSE_USER_ECALL, U) | \
+                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
+                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
+                         BIT(CAUSE_STORE_PAGE_FAULT, U))
+
+#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
+
+static void vcpu_csr_init(struct vcpu *v)
+{
+    register_t hstateen0;
+
+    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
+
+    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
+
+    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
+
+    /*
+     * VS should access only the time counter directly.
+     * Everything else should trap.
+     */
+    v->arch.hcounteren = HCOUNTEREN_TM;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
+        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+         if (riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia))
+            /*
+             * If the hypervisor extension is implemented, the same three
+             * bitsare defined also in hypervisor CSR hstateen0 but concern
+             * only the state potentially accessible to a virtual machine
+             * executing in privilege modes VS and VU:
+             *      bit 60 CSRs siselect and sireg (really vsiselect and
+             *             vsireg)
+             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
+             *             vsiph, vsieh, and vstopi)
+             *      bit 58 all state of IMSIC guest interrupt files, including
+             *             CSR stopei (really vstopei)
+             * If one of these bits is zero in hstateen0, and the same bit is
+             * one in mstateen0, then an attempt to access the corresponding
+             * state from VS or VU-mode raises a virtual instruction exception.
+             */
+            hstateen0 = SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
+
+        /* Allow guest to access CSR_ENVCFG */
+        hstateen0 |= SMSTATEEN0_HSENVCFG;
+
+        v->arch.hstateen0 = hstateen0 & csr_masks.hstateen0;
+    }
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
@@ -32,6 +98,8 @@ int arch_vcpu_create(struct vcpu *v)
     v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
     v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
 
+    vcpu_csr_init(v);
+
     /* Idle VCPUs don't need the rest of this setup */
     if ( is_idle_vcpu(v) )
         return rc;
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 58c9f1506b7c..5fbee8182caa 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -48,6 +48,8 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
 #define get_cpu_current(cpu)  per_cpu(curr_vcpu, cpu)
 
 #define guest_cpu_user_regs() ({ BUG_ON("unimplemented"); NULL; })
+#define vcpu_guest_cpu_user_regs(vcpu) \
+    (&(vcpu)->arch.cpu_info->guest_cpu_user_regs)
 
 #define switch_stack_and_jump(stack, fn) do {               \
     asm volatile (                                          \
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index f78f145258d6..6bb06a50c6ab 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -48,6 +48,12 @@ struct arch_vcpu {
     } xen_saved_context;
 
     struct cpu_info *cpu_info;
+
+    register_t hcounteren;
+    register_t hedeleg;
+    register_t henvcfg;
+    register_t hideleg;
+    register_t hstateen0;
 };
 
 struct paging_domain {
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index 1f7e612366f8..dd15731a86fa 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -228,6 +228,8 @@
 #define ENVCFG_CBIE_INV			_UL(0x3)
 #define ENVCFG_FIOM			_UL(0x1)
 
+#define HCOUNTEREN_TM BIT(1, U)
+
 /* ===== User-level CSRs ===== */
 
 /* User Trap Setup (N-extension) */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225789.1532406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVD-0000IQ-Jd; Mon, 09 Feb 2026 16:52:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225789.1532406; Mon, 09 Feb 2026 16:52:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVD-0000IA-Et; Mon, 09 Feb 2026 16:52:47 +0000
Received: by outflank-mailman (input) for mailman id 1225789;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVB-0007Zo-RU
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52: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 c1bcfd39-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:45 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b8871718b05so750097466b.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:45 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1bcfd39-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655964; x=1771260764; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y3eDIzczLgQjn9FFXjHOFuYc8YqhLVGUUTFDMX/MKvY=;
        b=F73EzOUl3QVOu6ZynsmuNdlkdZCBZ5WDsmxfdMhr/PMW++kfraRBFEfNaDN33N20tJ
         sD2xgLA2pRnyz6x1PaRmb4aBo/YilpbLFkQo5fdhkZqgmMyjw9NWupP2cckch8LaLRGV
         8aOUOUjR6Uk3D/yNsBNuL/ljUwRCZmJB63qlHxPJe6vRRiAUvp+16TmkZXByYQvI8UFr
         HHYX/EO7ePtBRCwCT5BLsQTCaQc0IljUDOFCEtq8zCIe6FZ0rdqinqe7d159V48NpSNl
         J3Bra+JzIMMUSAL4zlIaiFBJu2fdGVBq0BA8XOZd7OrK4WWWtEbfAc8cY6gkYtilKI+d
         e1cQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655964; x=1771260764;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Y3eDIzczLgQjn9FFXjHOFuYc8YqhLVGUUTFDMX/MKvY=;
        b=ON2ZK2z/VvEE1/z6FM3hMMvJ6dO807Ja1Xn4CRY4ics1ZOPkQwYsB+zWg/EGhb8HzE
         WiJujV/pAjfJQJc9SNEr9LRRwwuJ125kJ8+bQ4CPWSLiL7F/eo4UrfErd3sFZNAKVol9
         etNBDjgStP68wVrx5Co0tksIfx5np+YDp/TYsr8hBod566W9YGXGpsFsEZ201qebH6LO
         z6IxWjqUslawdakK988NmKXhz1IZbt5bEbzrmCiWem1SigxDBUFyTj/Ak4jafYso4bja
         5EW8M89MqWGltqPsW3gUJroKmINviC39UsrXxxq4VDbg83H6eaNi1xTPy4kwcRmTIakL
         cRug==
X-Gm-Message-State: AOJu0YxszFQ04loNBQit7bPERO1XV+hhKKT0beCTFC/avtfX5q68WxAz
	BWsRf7D/Led18G9D50AqOg5NBG834K2fLs09ArEkIq+nuT49WshJ7pNO8J1SBPmg
X-Gm-Gg: AZuq6aJlwpxdmqfA+LZHNEHfoyAUe3ERkzZgzpsZuQ+zojHfiw7aB+LsWDBkFoNOm6I
	wcB0U4q63NRvYKK3QPPTTnlAS8ngPidfMg4FVSxSIOCoCQvwr6JiDFawftI+3eU2SlsNlzc6JQH
	CEVaeSV+L1PEcsgf2pBw4K7FtBNOuh3qgg1jc2TuVR8+6a133O9bwxyUWX3vdwX3UT082O3ot2T
	M6DZQLGKLj8UjDYro8FOCV3GzNEvqMGG2vM1gSpqK4NN1ZxzZR/kX/o6DXagZF8mB1MmvSj/s/W
	NlAGpUvTpEQ9k0uf/g5mRL1PkUEg8rUo1TDxnZIrJc+AKb7+hgtWZvpSVc6kPEIIymKHT5qswp4
	I7YagQ/2y07Euvn7DEfAIpCzMZmF8xm/SleTNGkBemgZZp+hVqPCoaYQGUkQBV80KKf8DDAE9bi
	VQcGfAX3UmAkK34gksFsd7tcgaPr1PcX0vnfhg8h+a5iQY8mW4NuDmpA==
X-Received: by 2002:a17:907:1c9e:b0:b87:bb45:bd5c with SMTP id a640c23a62f3a-b8edf42c682mr810413966b.58.1770655964157;
        Mon, 09 Feb 2026 08:52:44 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 06/16] xen/riscv: introduce tracking of pending vCPU interrupts, part 2
Date: Mon,  9 Feb 2026 17:52:19 +0100
Message-ID: <a81d2873c901c825a08f817d962a8cef09167447.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch is based on Linux kernel 6.16.0.

Add the consumer side (vcpu_flush_interrupts()) of the lockless pending
interrupt tracking introduced in part 1 (for producers). According, to the
design only one consumer is possible, and it is vCPU itself.
vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due
to the lack of functionality) before the hypervisor returns control to the
guest.

Producers may set bits in irqs_pending_mask without a lock. Clearing bits in
irqs_pending_mask is performed only by the consumer via xchg() (with aquire &
release semantics). The consumer must not write to irqs_pending and must not
act on bits that are not set in the mask. Otherwise, extra synchronization
should be provided.
The worst thing which could happen with such approach is that a new pending
bit will be set to irqs_pending bitmap during update of hvip variable in
vcpu_flush_interrupt() but it isn't problem as the new pending bit won't
be lost and just be proceded during the next flush.

As AIA specs introduced hviph register which would want to be updated when
guest related AIA code vcpu_update_hvip() is introduced instead of just
open-code it in vcpu_flush_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Update the error message in case of RV32 from "hviph" to v->arch.hviph.
 - Make const argument of vcpu_update_hvip.
 - Move local variables mask and val inside if() in vcpu_flush_interrupts().
 - Call vcpu_flush_interrupts() in check_pcpu_work().
 - Move vcpu_update_hvip() inside if() in vcpu_flush_interrupts().
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c             | 33 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h |  1 +
 xen/arch/riscv/traps.c              |  2 ++
 3 files changed, 36 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 4513f778cdc4..67437912605a 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -194,3 +194,36 @@ void vcpu_sync_interrupts(struct vcpu *v)
 #   error "Update v->arch.vsieh"
 #endif
 }
+
+static void vcpu_update_hvip(const struct vcpu *v)
+{
+    csr_write(CSR_HVIP, v->arch.hvip);
+}
+
+void vcpu_flush_interrupts(struct vcpu *v)
+{
+    register_t *hvip = &v->arch.hvip;
+
+    if ( ACCESS_ONCE(v->arch.irqs_pending_mask[0]) )
+    {
+        unsigned long mask, val;
+
+        mask = xchg(&v->arch.irqs_pending_mask[0], 0UL);
+        val = ACCESS_ONCE(v->arch.irqs_pending[0]) & mask;
+
+        *hvip &= ~mask;
+        *hvip |= val;
+
+        /*
+         * Flush AIA high interrupts.
+         *
+         * It is necessary to do only for CONFIG_RISCV_32 which isn't
+         * supported now.
+         */
+#ifdef CONFIG_RISCV_32
+        #   error "Update v->arch.hviph"
+#endif
+
+        vcpu_update_hvip(v);
+    }
+}
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 8d9432ec5a8b..de5aecb862b5 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -115,6 +115,7 @@ int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
 int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
 
 void vcpu_sync_interrupts(struct vcpu *v);
+void vcpu_flush_interrupts(struct vcpu *v);
 
 #endif /* ASM__RISCV__DOMAIN_H */
 
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 82e1dc59cdea..676a2da55811 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -172,6 +172,8 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
 static void check_for_pcpu_work(void)
 {
     vcpu_sync_interrupts(current);
+
+    vcpu_flush_interrupts(current);
 }
 
 void do_trap(struct cpu_user_regs *cpu_regs)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225793.1532438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVG-00012U-MU; Mon, 09 Feb 2026 16:52:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225793.1532438; Mon, 09 Feb 2026 16: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 1vpUVG-00011Z-Bw; Mon, 09 Feb 2026 16:52:50 +0000
Received: by outflank-mailman (input) for mailman id 1225793;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVF-0007Zo-1S
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:49 +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 c3a33c6d-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:48 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b8838339fc6so424017066b.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:48 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3a33c6d-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655967; x=1771260767; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=im3bd0BlqxTSOv1iNEV5B1CvJvcf5KKLgXBheRE/42Y=;
        b=PJHtPXX6qJ0eRTAIywvaJmnSR1WAmdxWgRkeZAidTE2UVxnqNU3YWxn+qoO7gjTBIG
         xUwpcix/UqYkCnW1SmViUQK4L6Zf6gvcfuK3xgd+Kh9r97hjVPD24wOVLc/7SxXTqyhV
         /brfbiSUd/gjt7JVEif9JoTpulJ7fpjrccvoCpauMsNue4eDb3sb5BlHBzP1FHw4w4zn
         ZkM7cQ+pZZldcU9h446reJlKsjeGw68lMpadQfwVdQvvFpKW7tOQ467rfC5rXpEQIWyV
         /uM1+M2Y6rL7vNqTyeuQNJnl4Lxl/52jo01QD4sBMuq+/PbyAvt8dKQ8In1h0fIkGsjm
         U/rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655967; x=1771260767;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=im3bd0BlqxTSOv1iNEV5B1CvJvcf5KKLgXBheRE/42Y=;
        b=tvykNYZ05s1R4+Jegw9mOyed7jH+QmUYAnxo2ifrKsOJBapOvv5nC7lcm9cvbj7/ja
         cXIrReifSraYoGXt1P3M25YU/rj9HUxOP5yJSevk4XJsb6R7JNtqYxyQvSRw4H1tOfDV
         Cc8afVFctW+2Xt2QFrL7FzmoeGF6HX3bHCzt4CK/Xh7M/W7LD3MIW6KyhdYt92+/3Lb6
         gpqVpxXIkRP/ky/Y9q0wZleoY4sOLeE6sJXlDF42AR1LfL7MdX+Zfw2sdWRK96IflG57
         db6hevWIWUJb7gAMVY/EnFTLTtCq+o7a35HLuolzceSr0YZ0o1PAE7wVQJ8fth39sore
         //oQ==
X-Gm-Message-State: AOJu0YxbLSo5mQraKakH+am87n2eBtf9JeAy3KbCT0pWpUXrnEh+VORM
	4AL/HwTkoZHd7YPqGr5rG2DsfJn1a0H3uVZrh0G7+50ZxlnxXFlDsrCJpypi94Q2
X-Gm-Gg: AZuq6aIhDjNe+hO17dhYVdQ6oievestFi/dXgKFZpCdxcA8SrIcDuEioC88OeDXX6wQ
	IyDfdtUpGHLzHItOJXmp9NAQwV2KX+mZ0liy4+H/k1Dl91t19ed3bf43Cg2cXylXXBNSNx8brav
	zcFVGFIg72Whnzc/UItxpmCBMJUahcjsdiPCXiVrAg0id4cW8ojhC2DVaQV6kCiVwSo7DjDVmwb
	WKriYlNfa5ql30VnS2Kgd0t3t1ZSJ3YlIbKNtVjrMpOfHKfep1356/uSB7w0My/pMWmXMG4KgUv
	s7jlXjIIUpaS6VZcmMoHPBwIVtm9k3byjxT9r9VtcKfBr8ofHgEahvjrzeRJDd8AvaiOxPpBWU1
	wKWToFz7hmqoemu5U2mDTq6bKFqAlV7DyeX7g6cTbjMfjHDFKgqXuF1TWcoFMastW7XmoJtj8Cb
	rsEDP/GGU67AXHDqE5Z02XjhQ5/yg2o2icCbxfrx74LwgV8KVMbLoDcxcOkqlu0jOp
X-Received: by 2002:a17:907:94d3:b0:b88:4224:8168 with SMTP id a640c23a62f3a-b8f4d57e4aemr4055766b.22.1770655967365;
        Mon, 09 Feb 2026 08:52:47 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 09/16] xen/riscv: introduce vcpu_kick() implementation
Date: Mon,  9 Feb 2026 17:52:22 +0100
Message-ID: <f59a082c4ab600358db23e9f4cd12e89b5b2cef7.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a RISC-V implementation of vcpu_kick(), which unblocks the target
vCPU and sends an event check IPI if the vCPU was running on another
processor. This mirrors the behavior of Arm and enables proper vCPU
wakeup handling on RISC-V.

Remove the stub implementation from stubs.c, as it is now provided by
arch/riscv/domain.c.

Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
for example, by randconfig what will lead to CI build issues.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3:
 - Add asm/perfc_defn.h to provide vcpu_kick perfcoounter to cover
   the case when CONFIG_PERF_COUNTERS=y.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/domain.c                 | 14 ++++++++++++++
 xen/arch/riscv/include/asm/Makefile     |  1 -
 xen/arch/riscv/include/asm/perfc_defn.h |  3 +++
 xen/arch/riscv/stubs.c                  |  5 -----
 4 files changed, 17 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 3f4b062b6ce8..30a966f53c1d 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -1,8 +1,10 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/cpumask.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/sched.h>
+#include <xen/smp.h>
 #include <xen/vmap.h>
 
 #include <asm/bitops.h>
@@ -231,3 +233,15 @@ void vcpu_flush_interrupts(struct vcpu *v)
         vcpu_update_hvip(v);
     }
 }
+
+void vcpu_kick(struct vcpu *v)
+{
+    bool running = v->is_running;
+
+    vcpu_unblock(v);
+    if ( running && v != current )
+    {
+        perfc_incr(vcpu_kick);
+        smp_send_event_check_mask(cpumask_of(v->processor));
+    }
+}
diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index 3824f31c395c..86c56251d5d7 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -7,7 +7,6 @@ generic-y += hypercall.h
 generic-y += iocap.h
 generic-y += irq-dt.h
 generic-y += percpu.h
-generic-y += perfc_defn.h
 generic-y += random.h
 generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
new file mode 100644
index 000000000000..8a4b945df662
--- /dev/null
+++ b/xen/arch/riscv/include/asm/perfc_defn.h
@@ -0,0 +1,3 @@
+/* This file is intended to be included multiple times. */
+
+PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index c5784a436574..1f0add97b361 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -208,11 +208,6 @@ void vcpu_block_unless_event_pending(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-void vcpu_kick(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225795.1532456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVJ-0001ca-2k; Mon, 09 Feb 2026 16:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225795.1532456; Mon, 09 Feb 2026 16:52:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVI-0001bj-Nw; Mon, 09 Feb 2026 16:52:52 +0000
Received: by outflank-mailman (input) for mailman id 1225795;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVH-0007Zo-0t
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:51 +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 c457e3b0-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:49 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b8710c9cddbso366417966b.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:49 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c457e3b0-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655969; x=1771260769; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NpYDvQ6BAB6GpfLP621I0RKvGO5xaivkih7Lty/queI=;
        b=C7bkHyb1IODOZWStUacFDH5SOhQZOA75zj0sO9c3b8Ql6ZaAMfU1M9LeEQTF/facLE
         4N9Ym5tGJxFwA9v+xYGZMjfSebiHIEsOv4dzjC71mIRTivQcgSW1dSrFLJ2gy2X/w6tA
         ZteF+Lg9CRnlT40vzVwI7Ombp9vg5Ci3xMO+pX51ZVHrScZmtVo/4U42A26aaI+LaRlP
         ZiTEyuHyb1ht3HsvjC/L11WbMlinyhAVre9A5nRVpoj57Rp39xxCtIQcFWRABIidUnzf
         4uVaJhSpEZUjAOTdGMWRVM3aKk0uK6yzloe+hOewSZEDGb8QlWn3UJUokN/o9NbEyK1J
         W9Qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655969; x=1771260769;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=NpYDvQ6BAB6GpfLP621I0RKvGO5xaivkih7Lty/queI=;
        b=siJQYfeFpCPtV/60zdBFvyoHmjap9AjAzI/Kp+WwnuVcbrqgO56XgO17hII1CKKCUK
         AhuSpRatV5iTKhbAkLOwfp0eHU4qpKRuZGTYYyLLi6eh5IsbAx8xtlQNK191iSJ7bcGj
         cLH5UkO3TqBwrlz2CHamXdx1Jwu4Mu69JikYPgr2m88Be1LAQsg9vnU9AQQ6ldfWicY9
         /QU6fPR6BijhgZ09zohvaP2AJD09vq2tvASGl+bdhhN9S4t+BBSd+9RNIDyNyTxFv6e4
         W1633lE4oRKsQXdPVSsPxobXp2gyfjk+iafFaFkTvHqFuK7GcttpANkIv7/kR5vOSWB0
         jxsQ==
X-Gm-Message-State: AOJu0YxvVfT0pDEAIK5px4uooFAhZYxNLOEaQa8AumuZdAg4aQF/jWF4
	9PljHou+ls+hKkPCQersUBKX9R+wrcm/ttsEFBKPEvxpeNQxJupm4J+o3hOXPRlo
X-Gm-Gg: AZuq6aIym2gcC0RoaKw+Hzz1IhvhX1/wKUw45uZNYm7EVrQEeGFjUcI+YgtKQPbqE4t
	CmWgwCCh9vwrKwkXSm6Dhg4Lyt1VyWOwn0rcM8/H/cQDR5lpVp/VEr6dPZO8TZY6ROWHi0JyWia
	Yli3779BQl1nnYMrN2w5tYuGY2IlCQL6wmVKHONBsi4wH22TzKJxgwKSKexmUta9STW2yCOWu0C
	IwyCy/w7MfIDCpBTmIAS4SuPJv97wRL+VW2JNUMSsTkYnzvze4A7msyfX9X2KG+PxeGPXJxAnYw
	+k8a5rSoG2obhQGYDwfwGFSWp7+c9myuvg0RvRVF7DsM2x/S3MFEPjbPXRPaHN8hOeA5XPQP5Z9
	bkDiTODWiDoe1JH8VPm8uueAqzkxqIOALyK231Culy+uDk1xtiAHSClkEn2UfEnKsG3Kr7JLEZO
	e/Kamycws/J8vnH0w9aF9Pb+Sec3V1fRhip1sdIP44l8kuPeWGvSBUrA==
X-Received: by 2002:a17:907:9717:b0:b87:892:f440 with SMTP id a640c23a62f3a-b8edf2fa568mr606769466b.38.1770655968372;
        Mon, 09 Feb 2026 08:52:48 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 10/16] xen/riscv: add vtimer context switch helpers
Date: Mon,  9 Feb 2026 17:52:23 +0100
Message-ID: <a865da0ecfe02c68ed807682521108cb9e7d7a35.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vtimer_ctxt_switch_from() and vtimer_ctxt_switch_to() to handle
virtual timer state across vCPU context switches.

At present, vtimer_ctxt_switch_from() is a no-op because the RISC-V SSTC
extension, which provides a virtualization-aware timer, is not yet
supported. Xen therefore relies the virtual (SBI-based) timer.

The virtual timer uses Xen's internal timer infrastructure and must be
associated with the pCPU on which the vCPU is currently running so that
timer events can be delivered efficiently. As a result, vtimer_ctxt_switch_to()
migrates the timer to the target pCPU when a vCPU is scheduled in.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3:
 - s/vtimer_ctx_switch_to/vtimer_ctxt_switch_to
 - s/vtimer_ctx_switch_from/vtimer_ctxt_switch_from
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Align the parameters names for  vtimer_ctx_switch_from() and vtimer_ctx_switch_to() in
   declarations to match the ones in the defintions to make Misra happy.
 - s/vtimer_save/vtimer_ctx_switch_from.
 - s/vtimer_restore/vtimer_ctx_switch_to.
 - Update the commit message.
---
 xen/arch/riscv/include/asm/vtimer.h |  3 +++
 xen/arch/riscv/vtimer.c             | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
index 0d1555511755..c70b0226515e 100644
--- a/xen/arch/riscv/include/asm/vtimer.h
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -17,4 +17,7 @@ void vcpu_timer_destroy(struct vcpu *v);
 
 void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
 
+void vtimer_ctxt_switch_from(struct vcpu *p);
+void vtimer_ctxt_switch_to(struct vcpu *n);
+
 #endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index 32d142bcdfcd..afd8a53a7387 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/sched.h>
 #include <xen/timer.h>
 
@@ -69,3 +70,17 @@ void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
     migrate_timer(&t->timer, smp_processor_id());
     set_timer(&t->timer, expires);
 }
+
+void vtimer_ctxt_switch_from(struct vcpu *p)
+{
+    ASSERT(!is_idle_vcpu(p));
+
+    /* Nothing to do at the moment as SSTC isn't supported now. */
+}
+
+void vtimer_ctxt_switch_to(struct vcpu *n)
+{
+    ASSERT(!is_idle_vcpu(n));
+
+    migrate_timer(&n->arch.vtimer.timer, n->processor);
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225796.1532463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVJ-0001jY-UO; Mon, 09 Feb 2026 16:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225796.1532463; Mon, 09 Feb 2026 16: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 1vpUVJ-0001fl-A7; Mon, 09 Feb 2026 16:52:53 +0000
Received: by outflank-mailman (input) for mailman id 1225796;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVH-0007Zo-8z
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:51 +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 c4f42146-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:50 +0100 (CET)
Received: by mail-ej1-x632.google.com with SMTP id
 a640c23a62f3a-b8eafb515aeso553657466b.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:50 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4f42146-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655970; x=1771260770; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Hi3FnDG07OCkFyCy7UaZFSaTKT/2LCRxd2Xxk35QB18=;
        b=ejBeEvtEc4jh0Bds66dLiLpiJdqRE5/x7IGihF/HJGV8iUywTmgk++56bVHX/gQfGH
         fLwscUFTN4+MzQsIUaRJJ4Uai8LRtmscglmEDe3jS7YniVW79DCaQkH5Ps//HYMwDTWG
         Anw1+V/5M/tZFdVdJJ+gUatuGzdlyqneDeyOCLAf2O/YhqaVvZ+Vjhpmab5PoNUDlJqA
         RR74AWzyZnngFeSU4A/zfGkrM0EFrVwxizYuuMy994Qa2gAIt4+DQeccNDNJ/+tdOivv
         FWawK7+BV3OgszfDjGlLqlwQr9kJgTEGZH9jJF+wkPkaLNOOLcTvI1D4wKWYwQgo7jNZ
         8HbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655970; x=1771260770;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Hi3FnDG07OCkFyCy7UaZFSaTKT/2LCRxd2Xxk35QB18=;
        b=felipY+3AixRu/7wL+Wl4KLt6XpO5X1A+Hdv+pB4p02cnaOZb+0Salzbafom0GWzLh
         nSKn1AEFa8KJHtmNBDDLldGK8GSqEtpV4KPIhZxv+gLOGci/HJ+oXmjd8Rbh7i9w+cq8
         Pwd12kQBMYHNPczriRnvz/q3pFlOgb+as/964ehKDTV+H7pmk7O26+rOMYozkQwfM+9h
         BpLGBYWcHmn7z8biHGDiczktBhpmd9cLyfu32eIUCl8xWE2rlSPG8l5s+ecWUmRFAh7d
         LhE/Wgyz6EQELmH/JwQzaJrSIXO7y51TPerqK7s7vH+qukNjBcBdikJXroptutX2v2qx
         A+FA==
X-Gm-Message-State: AOJu0YzcLxbqd7PUqjvGmPZ7Duxs1g1iCod0zd4k0cbavy56ycugUDqR
	2R63bvk87pIfgY2T2YzAWtu+611ciUxVA1MSwDzxZ7HbfWm/nMbDoCbeQHOvueWK
X-Gm-Gg: AZuq6aKDTbertHkX+IKbd9Yy6cVLVfzMLJkjMUgOD43EGKiMA+N9+XDoMY9Zw4bjKDa
	UfcH0/7wFKE6/eRPGLsCIMwzPSizttvUuma4d4cabiY3te+JRZU2j4/0cOcW1hfWiQ7tqGcpbb0
	Zpq9aBMEE0ETIl2VkWVLbfNu3Fob5JulPHX8Y3SaeoomHxLr1w0DyPQ1zviFffK8F4QQufpZM0M
	Rs3KkQPfsucqUjlwB+v5M/hteHIQI9gqU+DddNtLbN+8v+nUHFoUmYBrR7+4WdzKeiCj5TTf+M+
	Ie4V1qJNuqHmSchXs4AsNABOEnjOv9nNSQRFi+VriykKXHQ4IH4U9Ou9+8V5pQaBtZ/Hhxr9oWG
	cs6xHuQydLUubsIJutZoHwUd6VWMstoxlQ+uDzanJMv1KSaItu4LpnkKD41hpRlQT1d96p3sYpn
	Ivx4HSz+OzzMZ3XRKFvR9UgUOWdC68KHDx4hYrd0DeKptVyq7RARSH0A==
X-Received: by 2002:a17:907:9451:b0:b83:1327:920d with SMTP id a640c23a62f3a-b8eded474b9mr601057966b.0.1770655969502;
        Mon, 09 Feb 2026 08:52:49 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 11/16] xen/riscv: implement SBI legacy SET_TIMER support for guests
Date: Mon,  9 Feb 2026 17:52:24 +0100
Message-ID: <0bc0547fe8ba97f66c9847cfc334d62add25504d.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add handling of the SBI_EXT_0_1_SET_TIMER function ID to the legacy
extension ecall handler. The handler now programs the vCPU’s virtual
timer via vtimer_set_timer() and returns SBI_SUCCESS.

This enables guests using the legacy SBI timer interface to schedule
timer events correctly.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3:
 - Nothing changed. Only rebase.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/vsbi/legacy-extension.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/riscv/vsbi/legacy-extension.c b/xen/arch/riscv/vsbi/legacy-extension.c
index 2e8df191c295..090c23440cea 100644
--- a/xen/arch/riscv/vsbi/legacy-extension.c
+++ b/xen/arch/riscv/vsbi/legacy-extension.c
@@ -7,6 +7,7 @@
 
 #include <asm/processor.h>
 #include <asm/vsbi.h>
+#include <asm/vtimer.h>
 
 static void vsbi_print_char(char c)
 {
@@ -44,6 +45,11 @@ static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
         ret = SBI_ERR_NOT_SUPPORTED;
         break;
 
+    case SBI_EXT_0_1_SET_TIMER:
+        vtimer_set_timer(&current->arch.vtimer, regs->a0);
+        regs->a0 = SBI_SUCCESS;
+        break;
+
     default:
         /*
          * TODO: domain_crash() is acceptable here while things are still under
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225798.1532471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVL-00022S-3W; Mon, 09 Feb 2026 16:52:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225798.1532471; Mon, 09 Feb 2026 16:52: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 1vpUVK-00020U-Sa; Mon, 09 Feb 2026 16:52:54 +0000
Received: by outflank-mailman (input) for mailman id 1225798;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVJ-0007Zo-3U
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:53 +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 c62d15db-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:52 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b88593aa4dcso633232466b.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:52 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c62d15db-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655972; x=1771260772; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cNbrlMqhuICu7ctpXyh9WGmkD3dnZmEYO+L7YJ0WFAc=;
        b=aI9cpupSblT1Z7mEaeSENuWULiI15LEQ/F89QTrUYS6Ws9zT6L3X+nkVmsaXhAsuL0
         LNAbnDQ63Khm74bSBSTpF5F34H3uOFvpj/L95iwXsXgv9jxu+xyUuNGBbAZFCqK8y/An
         mDJ+YODacm66iTu4gtyoCpaYfgMOGKJIewENLFz5fKT+c0yt7O7H2dSQr+gbGJgwx/Gm
         QkxmGbLYAPCmka51V25jDrd5gL7TYCX71CRNNxFUnoxsCeeI1uVu9VBqRaCLA0koAUdn
         JfjVXMrsri/9SQYGatkiSkdWR9AC2LU6x04udL6KBkH2OCQs68pF9qEylPgeRrHeHm64
         f2WA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655972; x=1771260772;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=cNbrlMqhuICu7ctpXyh9WGmkD3dnZmEYO+L7YJ0WFAc=;
        b=jLmvIrzqZeWpjNOSO2amS1wFw2XTTkkCUoZMaAhtX8+bDVVdRf+uneNaC/dQWhLwnL
         o32GYq0hmJASxGWw5D9HCCy1BKSnN/EL/HTJAaMrGi/mgx/9zpFIfflKKcLuMNEPFJtM
         +m+yeow5oPT/k7iPYbnluUqevJiTshnuqwqK3A6kZjxSLa8ijriZUuJcpasZi/gHDKZK
         1BQKBfsgEIevk/RPFd2XehvAZtcZeWxKFnvvqlOfc73uBW9mYao0v0uBhkIgcOkbY/2W
         arIWG0+4WubkhOKFYnsnAhzBYA8cYMYzCw8zSIIFrlGsFS7nslPMZIyFdathj6wA8dhq
         I85A==
X-Gm-Message-State: AOJu0Yzz3gFglC0tDkqk1vZayJUCmzgHTcvI5XKEjwQe6qConLlpLX4d
	t+1dyjuin0svHa1ygQ8rJZ9UeQKQQWvJ7nGgoDrW1xxe5q9vorj91isO8F1JFNlD
X-Gm-Gg: AZuq6aJO7v5HCW64ZSq1skfnAjzjcIU3KQPGxgys/fOwm3y0HKbsHo6AkeqbZSYyDx9
	r7BJ0cyT2ggMFCbVJRKAJRYgJVpRgWhnmqmUt/LLuwzMazOtnl5Bi2Dc71k2Mzr3Jap5jjYKplC
	dK336cby7BOIkJsCCyQTYPmtM05yJWzXsPFXevqFJxVDl3XWY6KUkjR/a51imhBXIsqgKgaHx3v
	IU+fx4V3DQFR8YIzp8D0Fghng3fV8YBEjIYiIftj1sXg0ukpOIPovP+2lwkLlBag30OxPMH3m1J
	dUtWEuDpTX4o9F5t5mnYLhWPDyqbSl7y3ZieTBhfW8siA4WL0F7jbUNehZpHNHtMz2f/aoW/s/S
	0NTHaLYIonEB2Olt1n7FAkLzY3PzpP0U20pjHszXGvn0o/SwoufdXtfJccfySDsMXgYliIN5T2/
	FMxTex/y5w05Vd1wLSCNc8vAMlDDB0ZbN0Us56/iq4axM6PDqgSDK7+w==
X-Received: by 2002:a17:906:4785:b0:b8e:9d66:f5fb with SMTP id a640c23a62f3a-b8eded5bf07mr685244766b.0.1770655971561;
        Mon, 09 Feb 2026 08:52:51 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 13/16] xen/riscv: implement reprogram_timer() via SBI
Date: Mon,  9 Feb 2026 17:52:26 +0100
Message-ID: <b1e39e0187fc44fd926f774e68a580077a278495.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement reprogram_timer() on RISC-V using the standard SBI timer call.

The privileged architecture only defines machine-mode timer interrupts
(using mtime/mtimecmp). Therefore, timer services for S/HS/VS mode must
be provided by M-mode via SBI calls. SSTC (Supervisor-mode Timer Control)
is optional and is not supported on the boards available to me, so the
only viable approach today is to program the timer through SBI.

reprogram_timer() enables/disables the supervisor timer interrupt and
programs the next timer deadline using sbi_set_timer(). If the SBI call
fails, the code panics, because sbi_set_timer() is expected to return
either 0 or -ENOSUPP (this has been stable from early OpenSBI versions to
the latest ones). The SBI spec does not define a standard negative error
code for this call, and without SSTC there is no alternative method to
program the timer, so the SBI timer call must be available.

reprogram_timer() currently returns int for compatibility with the
existing prototype. While it might be cleaner to return bool, keeping the
existing signature avoids premature changes in case sbi_set_timer() ever
needs to return other values (based on which we could try to avoid
panic-ing) in the future.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Correct the comments in reprogram_timer().
 - Move enablement of timer interrupt after sbi_set_timer() to avoid
   potentially receiving a timer interrupt between these 2 operations.
---
Changes in v2:
 - Add TODO comment above sbi_set_timer() call.
 - Update the commit message.
---
 xen/arch/riscv/stubs.c |  5 -----
 xen/arch/riscv/time.c  | 43 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 1f0add97b361..cb7546558b8e 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -21,11 +21,6 @@ nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* time.c */
 
-int reprogram_timer(s_time_t timeout)
-{
-    BUG_ON("unimplemented");
-}
-
 void send_timer_event(struct vcpu *v)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 2c7af0a5d63b..7efa76fdbcb1 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -7,6 +7,9 @@
 #include <xen/time.h>
 #include <xen/types.h>
 
+#include <asm/csr.h>
+#include <asm/sbi.h>
+
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
@@ -40,6 +43,46 @@ static void __init preinit_dt_xen_time(void)
     cpu_khz = rate / 1000;
 }
 
+int reprogram_timer(s_time_t timeout)
+{
+    uint64_t deadline, now;
+    int rc;
+
+    if ( timeout == 0 )
+    {
+        /* Disable timer interrupt */
+        csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+        return 1;
+    }
+
+    deadline = ns_to_ticks(timeout) + boot_clock_cycles;
+    now = get_cycles();
+    if ( deadline <= now )
+        return 0;
+
+    /*
+     * TODO: When the SSTC extension is supported, it would be preferable to
+     *       use the supervisor timer registers directly here for better
+     *       performance, since an SBI call and mode switch would no longer
+     *       be required.
+     *
+     *       This would also reduce reliance on a specific SBI implementation.
+     *       For example, it is not ideal to panic() if sbi_set_timer() returns
+     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
+     *       without SSTC we still need an implementation because only the
+     *       M-mode timer is available, and it can only be programmed in
+     *       M-mode.
+     */
+    if ( (rc = sbi_set_timer(deadline)) )
+        panic("%s: timer wasn't set because: %d\n", __func__, rc);
+
+    /* Enable timer interrupt */
+    csr_set(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    return 1;
+}
+
 void __init preinit_xen_time(void)
 {
     if ( acpi_disabled )
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225799.1532478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVL-00029y-RB; Mon, 09 Feb 2026 16:52:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225799.1532478; Mon, 09 Feb 2026 16:52: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 1vpUVL-00027E-Fa; Mon, 09 Feb 2026 16:52:55 +0000
Received: by outflank-mailman (input) for mailman id 1225799;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVJ-0007Zd-9A
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:53 +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 c579a60a-05d7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:52:51 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-6505cac9879so6220421a12.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:51 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c579a60a-05d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655971; x=1771260771; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rzoW6oI1pZTCczygZ2TeNSQR2mfIOIpFjPwj3JLnlaQ=;
        b=Hk+aZ0J3Jv4UOB6n36pTG71ju2agjyMRptihvIzxvER5KUv91tmXMRUM3htgcbHsGW
         Czjfin2/dxlM7/Px+IR4RRtX8On15tszrZZ2aBz4ll0b0w3SJxcjrRtyyD2srHiXrdqY
         iRVFbZbYnRWpJxgPoCfRoB28B1HCHcizGYn0j6l9xAOu8eXkO65/hum8eItjK+TADMYH
         8EzCALWx3LaU1gK0S6TPiESpaO/BhpeYt1YsP2PhOqycojMURTtFzvSIJPLd7aQBQ6se
         /ckyVg28sX55OErJZFwMDl9yoSU92wZ/w33FK68TlkpoKGEF8js+6hEh2yirvZZasR+N
         Robg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655971; x=1771260771;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=rzoW6oI1pZTCczygZ2TeNSQR2mfIOIpFjPwj3JLnlaQ=;
        b=i26V5HqftEpkWMnjuJrIn+hXuf3nBZRkZyQnDO+lMDUWKVQ53A0F1aKACoT5P7fd/8
         g8s/je7Oq24UO/MzVmvCbN0dVx1/J7nVSUb+eP1VVmar4MuMz5khKbrhAoEO1/61yBbA
         nnx8ukq/sJK3N8yQsjfFsC8cuT+wNDpdtH2T4BvGgl2M9TkrfkXqNt9iRPhkM6Fu0eOa
         SOj/jzRMX/qAjVbwt/xSmJaA/RCNJFGXvaqjNjYczcjx5oMaeWUuCexwdyf9y/nBYtOo
         iorPCENyBp6u5/0/sC64McnmwoeUdFRxeczvDmCiUTOPemuMctdUYsPjnHhSWbNaHRDs
         jKXw==
X-Gm-Message-State: AOJu0Ywod3471JMLq/BUO3hDOJ+eQIuEi4DXVW1+UCco7m8aNDI4C650
	DthJ9XqmwF75ziDlG6ZQOMOQuhXviyBI5dUw5ckVlOuv2EQU1wkOop6a9VSiQJCP
X-Gm-Gg: AZuq6aJbOCDP5UfWDk1JjLcTfUP+G+lexZcVbPkFB71wA7GXrAx0OKF9GF4K20giPKD
	mEgBxB3s3PLZXMOEIFe2iePlJmy1nX03XvGLEVQeJ7phDAky+9OK4v+DY5uIA1bodPIXoSVWW89
	5hWSDMzyNXCtvsi5LV1wAR1PZitHAwWnxwmDbEDnRtllv6Googg10KGSReTekbjUCcvtW3n67JM
	+vAj2ts5pXcGJ30XbiwseuTSdqcK5Yqm7BBqK+XgHQ8wXK1nVUTYhAUhdgkBJKl1CktqnNImX8a
	etmJj3t7vrALTLwGjyfQV/ncHGOL6ciYCM6eQ/AWVxqY3YOLIIDmTC8JXozsyxfYoFrqGoovdL6
	S1xZwb5lR1Y0agEw9mSYBgVWMoQXvYpJ9ssqSJOZ6qNRYJdr3rzRimv9fLKd237pcci1Ev34V6l
	nE6+YDqudn9mELB/tlo44x2P1LO9Ry41lcnW/a2nyYgHTMlayzyCVyGw==
X-Received: by 2002:a17:907:3dac:b0:b86:fed0:2b with SMTP id a640c23a62f3a-b8edf307a5emr669724566b.32.1770655970541;
        Mon, 09 Feb 2026 08:52:50 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 12/16] xen/riscv: introduce sbi_set_timer()
Date: Mon,  9 Feb 2026 17:52:25 +0100
Message-ID: <3b102fd2267c629e8505631277efc2eeae5a1a6a.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a function pointer for sbi_set_timer(), since different OpenSBI
versions may implement the TIME extension with different extension IDs
and/or function IDs.

If the TIME extension is not available, fall back to the legacy timer
mechanism. This is useful when Xen runs as a guest under another Xen,
because the TIME extension is not currently virtualised and therefore
will not appear as available.
Despite of the fact that sbi_set_timer_v01 is introduced and used as
fall back, SBI v0.1 still isn't fully supported (with the current SBI
calls usage, sbi_rfence_v01 should be introduced too), so panic()
in sbi_init() isn't removed.

The sbi_set_timer() pointer will be used by reprogram_timer() to program
Xen’s physical timer as without SSTC extension there is no any other
option except SBI call to do that as only M-timer is available for us.

Use dprintk() for all the cases to print that a speicifc SBI extension
is available as it isn't really necessary in case of release builds.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Init sbi_set_timer with sbi_set_timer_v01 as fallback value.
 - Sort SBI IDs in the same way as SBI EXT IDs are declared.
 - Add __ro_after_init for sbi_set_timer variable.
 - use dprintk instead of printk to print information if SBI ext is available.
---
Changes in v2:
 - Move up defintion of SBI_EXT_TIME_SET_TIMER and use the same padding as
   defintions around it.
 - Add an extra comment about stime_value granuality above declaration of
   sbi_set_timer function pointer.
 - Refactor implemetation of sbi_set_timer_v02().
 - Provide fallback for sbi_set_timer_v01().
 - Update the commit message.
---
 xen/arch/riscv/include/asm/sbi.h | 18 ++++++++++++++
 xen/arch/riscv/sbi.c             | 40 +++++++++++++++++++++++++++++++-
 2 files changed, 57 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 79f7ff5c5501..a237f8b1393c 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -29,6 +29,7 @@
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
+#define SBI_EXT_TIME                    0x54494D45
 
 /* SBI function IDs for BASE extension */
 #define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
@@ -48,6 +49,9 @@
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA       0x5
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID  0x6
 
+/* SBI function IDs for TIME extension */
+#define SBI_EXT_TIME_SET_TIMER          0x0
+
 #define SBI_SPEC_VERSION_MAJOR_MASK     0x7f000000
 #define SBI_SPEC_VERSION_MINOR_MASK     0x00ffffff
 
@@ -134,6 +138,20 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
 int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
                                 size_t size, unsigned long vmid);
 
+/*
+ * Programs the clock for next event after stime_value time. This function also
+ * clears the pending timer interrupt bit.
+ * If the supervisor wishes to clear the timer interrupt without scheduling the
+ * next timer event, it can either request a timer interrupt infinitely far
+ * into the future (i.e., (uint64_t)-1), or it can instead mask the timer
+ * interrupt by clearing sie.STIE CSR bit.
+ * The stime_value parameter represents absolute time measured in ticks.
+ *
+ * This SBI call returns 0 upon success or an implementation specific negative
+ * error code.
+ */
+extern int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
+
 /*
  * Initialize SBI library
  *
diff --git a/xen/arch/riscv/sbi.c b/xen/arch/riscv/sbi.c
index 425dce44c679..b4a7ae6940c1 100644
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -249,6 +249,38 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
                                           unsigned long arg4,
                                           unsigned long arg5);
 
+static int cf_check sbi_set_timer_v02(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+static int cf_check sbi_set_timer_v01(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_0_1_SET_TIMER, 0, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+int (* __ro_after_init sbi_set_timer)(uint64_t stime_value) = sbi_set_timer_v01;
+
 int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
                           size_t size)
 {
@@ -324,7 +356,13 @@ int __init sbi_init(void)
         if ( sbi_probe_extension(SBI_EXT_RFENCE) > 0 )
         {
             sbi_rfence = sbi_rfence_v02;
-            printk("SBI v0.2 RFENCE extension detected\n");
+            dprintk(XENLOG_INFO, "SBI v0.2 RFENCE extension detected\n");
+        }
+
+        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
+        {
+            sbi_set_timer = sbi_set_timer_v02;
+            dprintk(XENLOG_INFO, "SBI v0.2 TIME extension detected\n");
         }
     }
     else
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:52:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:52:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225802.1532497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVO-0002vM-UD; Mon, 09 Feb 2026 16:52:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225802.1532497; Mon, 09 Feb 2026 16:52:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUVO-0002tp-KE; Mon, 09 Feb 2026 16:52:58 +0000
Received: by outflank-mailman (input) for mailman id 1225802;
 Mon, 09 Feb 2026 16:52: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVM-0007Zd-7g
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:56 +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 c74ddf33-05d7-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:52:54 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b86ed375d37so551166166b.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:54 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c74ddf33-05d7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655974; x=1771260774; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=twQjmhb1zGscONCfiElutibwq+HGssUs2R5xhfNZcQQ=;
        b=I/x/SQUjwZA25OzPp9tKGqPIoJ4xmFqjuPQUs0VasVYIT/gSY4GWjKIuUsgDbFmkNg
         y9Wu7ybY0br0wJDljdus3PfUrFYJ8zNbMo0P6r5b7QtbaCIef4gOPq8hZ4WNSkyiROiQ
         +sh4hnriKmSjUWUKM1XY2e7/b69YND1JFYKRDqhNWd94xf7ljwcm5LDoAM7naO5GZzYa
         YOYYl9k2FV4HfhulqqYv/lqyyCBIaFXb40L78l1EJRAjDFKxfnO73c2RegeVfr47Bt9l
         lyloHKpKaBZCSk+4IGL/NjnHsYxwZAWNzAB7+TyX+fZI80zPtJtR0axNmpjxzSqVWEVf
         Tnsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655974; x=1771260774;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=twQjmhb1zGscONCfiElutibwq+HGssUs2R5xhfNZcQQ=;
        b=uHpqvtZa5xNKdC7lCRNDkHDDn2rhHM80byCbKO3RU8KwHYpzEUkEhCWKSn9AR9HraW
         R1SZEUH7Ocj8IY4KjjkA/DH9xPidDkUK6krlvf0SENZMIAhGdKeX3VaTKANo2s7cQ0QJ
         Rip8A7k3RVxyBrq0LCSq2gON7PMrmQEDzxKGBuxyFJ659liqNgWvUG5Gnxew1LyqjADe
         NlAG9FmHzXFr5TCj+P/XHfC7Fm9gGC3ll3vgTu+7NGzFulwWfIy89s5pwnsVY7+UgwPS
         MByFX0iGQC5/CALSk6DMgCA6nh2glAWvuBfBHtl4LypHOjDifVwF/eWR7rV/ubcs0ISC
         RGhg==
X-Gm-Message-State: AOJu0YzE8cEn7kzy2clyYveELdwC835+D5Pod+mv/zMW2jC2/NdDrerg
	GdzqSXvY67biDbR+Et1xj8zQEgqRIiLl5l/AGvoHTvhVn5GaKN9kAv1poes984Ex
X-Gm-Gg: AZuq6aLMhIOrvEvzXmm8UejQALI/X0Xy6Pm214+sh91mfCQxqjeAEMKQSwYccn652yx
	MeY8LU0yQwUj1+tiejRNTRzjsm+unIMU7WFI2TtQngJHAAoW0t20PJLcbbV5XMpdlpndisSzzeF
	d0WSZPwNoE3PxW6AEfVXGOAKMqMrwzAEBpwECKwXadaRfJ/iVXmZjXN6EwIhTR1+90JtZylsMZS
	VnaRHpDmBsgiefWOFCJShCErmJr5TdeHvNG43HkcQ2PhODIC6v+FhwYNLA7luaR0yqZ15JoosDJ
	LAQtYFN5oL4rL7vWZH+J8UWKrVi2AsGahOZkk9yO82e/2L70r/Q1lIA+nIZqQGC7IRCAEahhe6H
	SS0pH8d74pDmUkhZRgW4gP2Go+o/WILotkpIoc3easgUJxS80+TQXojn7azwmYchxBe7oTYnpfQ
	x0glGDoD5nECwh3rDRd9604nmBqnePH+lNkg6U1IL9+mVKBudZZ9w0NA/eokCbsLJx
X-Received: by 2002:a17:906:c10a:b0:b87:1839:2601 with SMTP id a640c23a62f3a-b8edf344219mr692780266b.40.1770655973617;
        Mon, 09 Feb 2026 08:52:53 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 15/16] xen/riscv: init tasklet subsystem
Date: Mon,  9 Feb 2026 17:52:28 +0100
Message-ID: <8a433116ed15cb52bd1e241960741963d287f592.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As the tasklet subsystem is now initialized, it is necessary to implement
sync_local_execstate(), since it is invoked when something calls
tasklet_softirq_action(), which is registered in tasklet_subsys_init().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Update the commit message.
 - Move implementation of sync_vcpu_execstate() to separate commit
   as it doesn't connect to tasklet subsystem.
---
 xen/arch/riscv/setup.c |  3 +++
 xen/arch/riscv/stubs.c | 10 ----------
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 010489f0b713..0cea1435ff32 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
+#include <xen/tasklet.h>
 #include <xen/timer.h>
 #include <xen/vmap.h>
 #include <xen/xvmalloc.h>
@@ -157,6 +158,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
         panic("Booting using ACPI isn't supported\n");
     }
 
+    tasklet_subsys_init();
+
     init_IRQ();
 
     riscv_fill_hwcap();
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index cb7546558b8e..26434166acc6 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -91,16 +91,6 @@ void continue_running(struct vcpu *same)
     BUG_ON("unimplemented");
 }
 
-void sync_local_execstate(void)
-{
-    BUG_ON("unimplemented");
-}
-
-void sync_vcpu_execstate(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void startup_cpu_idle_loop(void)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:56:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:56:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225866.1532507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUYz-0006p2-ED; Mon, 09 Feb 2026 16:56:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225866.1532507; Mon, 09 Feb 2026 16:56: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 1vpUYz-0006ov-9g; Mon, 09 Feb 2026 16:56:41 +0000
Received: by outflank-mailman (input) for mailman id 1225866;
 Mon, 09 Feb 2026 16:56: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpUYy-0006op-4C
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:56:40 +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 4c368811-05d8-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 17:56:37 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-47edd9024b1so40269025e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:56:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5e1a8esm1585715e9.5.2026.02.09.08.56.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 08:56:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4c368811-05d8-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770656197; x=1771260997; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X15l9HnPsTBSttFTrabWCg4OqYezi+YSqBk5OWjvacs=;
        b=W8Rr4eh7moFC8rqlKGRmAQUv7W0opwbAoj5FygCn/Qt0BE5dEN0QpTuZZ2J6vwqI4R
         FGXXwCZ0aqcDYioXV8otbQ3FjXJS0B3iXvVcJ4qFoz0mO40pDoteLy5m73pqnWaV1w5v
         NJrS4MjjU0R30Wd6RjrC8Hbbou9LjVZI92TKttfoIgcD+ow7sNI9VDDpMGOUMR56vCgr
         bl9ZVec8SfGbp71nBXOFYkhy6kuXFKDLFFP8t0yaz1K5IVx49byUyiJ1ak+pEfJx8Azg
         vfH6o7uRUdCK+osiavFgaiODqcSriFR/eSOMFQgb9PjmmeeEaogk96S/2JuG1VWlcRV2
         2r1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770656197; x=1771260997;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X15l9HnPsTBSttFTrabWCg4OqYezi+YSqBk5OWjvacs=;
        b=aO1l1LKgNPTLbyp1MOmcxN9/jhpM1F1wSUk2h55ESzjrt9PFXst2wYX5ubhdREG3x1
         QpjwQPn75Kf0WyL+KcANewV0b89//XnB7bl2azjeFaNR5+EJw+syVYyp1COlRaCOYAi4
         YcuSS+76MLOeU1gBJIMnmxSXyNFvR8Ewe+lzPN+Eizd4+rYUFVAGHgRXlbhvpKiprNuB
         DADvvIvs8cMUl9EaEU/uSs3FoKAzAaYgg/MCWcP1449jP5JzbOQOece1SMksQp2j0EKA
         SqO9oLxpIBjU3hViFgMfiC4eN7+Os1qJ3tDTv3Z4fm5DMeeCbQW7pJbAlvdPF3A/W1z3
         Bbqg==
X-Forwarded-Encrypted: i=1; AJvYcCXzP82SXEksluQ/ZS0jgUv1r0hFq8GWhBjSRFmvM8NYdrHHivFtoUmveUXQ15qOgRo7nB0K6Wvl71Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzydspV7Hhj6WW2Kk0X8gKtV2DqzorT0JGzMfPexUF6dLCBFCET
	gSWXeair94CfZdYqrhXbm8WcBvOdViWRzAhW96Vw4GZeBveGA+oe6FL/dWhJT+UIaA==
X-Gm-Gg: AZuq6aJpuwjwQ5Fo4KY6/+/qfk9B8ObRy+SAHmvAoBf1r1sQXLdJA0cjH0nr+aTojhv
	JZI7Sj6SRMxiCU3KyYPNVy3ZsbcfwzZZ9zxAJSxLRdDmVrJSiCm4IPxUx67h5Ai9Jp1ThCwV9/7
	+ulctbj90ajc8OFs446e90u34oF3MZ1lPf3fW6NMg2n3Y5xW673hwIHyGFeS7TWkGxUjklR/MuX
	piQ7b/U4VJZ3PDdDru5gHRcapmZiyzh6IEWSIIDbdN+OOA/Kf5UZUs+r8TearRBTsVOV6cbCcb/
	So1y66lpPwX32iYMgWn+1VMsDTqBkSmoFJ4dxO5CrkkuiEwsZbiyGm6IZtWpK0w0XMWFab9qa8h
	yr3kwqjRzQ/Ztz6vtg3Cgg3SrK6HDd8qw0EpiN0TwOYbP3mRzf3FH21blhVFE+/Ex/0V7lCHlMz
	DAI3zwBTLy24ltgxdZzXkLKUnnFAGX/koZ3+oZWqV+Upm/m4QqPIYWyUB13y481391WnIJCAx3J
	5U=
X-Received: by 2002:a05:600c:8116:b0:480:1c10:5633 with SMTP id 5b1f17b1804b1-4832021c74cmr179417865e9.26.1770656197019;
        Mon, 09 Feb 2026 08:56:37 -0800 (PST)
Message-ID: <7e8669d4-d1b6-47c7-ad08-da14f14fb4a4@suse.com>
Date: Mon, 9 Feb 2026 17:56:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 4/6] xen/console: use memcpy() in console_init_ring()
To: dmukhin@xen.org
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: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-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: <20260205013606.3384798-5-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 02:36, dmukhin@xen.org wrote:
> @@ -479,11 +479,23 @@ void __init console_init_ring(void)
>      opt_conring_size = PAGE_SIZE << order;
>  
>      nrspin_lock_irqsave(&console_lock, flags);
> -    for ( i = conringc ; i != conringp; i++ )
> -        ring[i & (opt_conring_size - 1)] = conring[i & (conring_size - 1)];
> +
> +    start = conringc & (conring_size - 1);
> +    size = min(conringp - conringc, conring_size);

Is this correct when the ring size actually shrinks? In such a case you want
to copy the tail of the ring if not all of the original contents fits in the
new one. But ...

> +    chunk = min(size, conring_size - start);
> +
> +    memcpy(&ring[0], &conring[start], chunk);

... you start at its head.

> +    if ( size > chunk )
> +        memcpy(&ring[chunk], &conring[0], size - chunk);
> +
> +    /* Data is moved to [0..size), re-position conring pointers. */
> +    conringc = 0;
> +    conringp = size;

Why this unrelated change, which the description also doesn't mention? Since
this is in an __init function, there's no race with read_console_ring(), but
a static analysis tool may still (validly) spot one. Yet then there's also
conring_flush(), which doesn't look to be using any locking either. Have you
excluded that this function can run in a racing manner?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:57:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:57:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225878.1532516 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUZs-0007TC-LU; Mon, 09 Feb 2026 16:57:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225878.1532516; Mon, 09 Feb 2026 16:57: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 1vpUZs-0007T5-IJ; Mon, 09 Feb 2026 16:57:36 +0000
Received: by outflank-mailman (input) for mailman id 1225878;
 Mon, 09 Feb 2026 16:57: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVL-0007Zo-3Y
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:55 +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 c6c7ab38-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:53 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-65815ec51d3so4896157a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:53 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6c7ab38-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655973; x=1771260773; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=imBk95+i3lrNZl16Fz7LHP6T5cVPwdF19P0a+Yv8HIE=;
        b=BiCJhWGliJdA44LISFmZOUGXwVeR5m2VhAPwWpOYct+tygrQbhJ40YsW3VQ5ShbhBE
         3P8SznbEmhCOIQcQKHHyntnT3DbXG9j5PLi53sG/tEZFp8MrgQpaaHco3ZWPgYvyWrGZ
         zLqlHygHR88oMjOQYWyfe0qD8O2KDQ7jGV564BwxOzhAH7rqUt0Wo3VGBpupMoyhTVws
         aVzPztwTlJuP82mzKUGWlrSRNwkmdRrHtzthdo8sSuCcKSZLEIrrO6IQ9zu5Jou4P0ZC
         JwWXayWhI+TMGfRWDbjFXFGilF7KdEm2HZk1BXDldJOtupsSmJOdKltpG8d35IYd4Xdk
         V+Ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655973; x=1771260773;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=imBk95+i3lrNZl16Fz7LHP6T5cVPwdF19P0a+Yv8HIE=;
        b=XQPV4nkgkCmUHlvl5imlSELlKgzNiqqxqcRNl5zMcyyEs/Bs8f3gRjkTgu/TemsDAI
         JpubQYQSe0uUaRZqqrJ0mG3NIGZMilYDHFOGcxVOrGY4rjJg53YpsR7G2JIZp/sRfsn9
         MLfv1RxGRdO8+lV7rqYtEOjxx+AJREUW4JlULTPah3LLBparsXgBnUATKLUDiNzUd30E
         azvgc7nzfn5BEeifIchSi9kyFqgBNSQnciw4RlQlcThxcJzyoW33q5yF6Fj1on8qJ/3H
         oOJDCUWG7w2qsdyA3ITj0u2KWvWRV/Bgq1g7fQC+tKVwssJFFF97k5t2K7VaRQDkBrx9
         UXGQ==
X-Gm-Message-State: AOJu0YwvlAfIWOfmf/UfzXeUyDQSnqCb5UY4qKAGeW4KY8g8zpsFeZ2Z
	u++9tNY6mYIeODNyeyx8ZD+mYsiJCfPA3IhDSMTJ/1XFD4byO5LOrsEkGIHf06DN
X-Gm-Gg: AZuq6aLVFPz2lsPPDbTQdk6eZDiKcrlPfqdk3HPUivL5tnAWNMEXmIJzbAIn44SgqVO
	c1dJdZxXACtX23R/OIG2DbY405EecEEyBAwH5+qwaSU3PfwRkcHXQxcDVG6H6h58+wFeKogUzYi
	IWNoRE7Olflf3MWjzI1xjlgOGjRZP0Mko5Fk9wpuZ2uvRofXQOCGyP7OG8KWnu2m3fc5D1/dlzL
	xFCNoDj5hNGALYTYwqMWQfaU/yga4TwuE4xz0WxnAXZW0UKTepE0dRMSYUatm61ITDWrXSkG1uz
	3bAI530CToG7ko2sINPf7Lynj5tXRCNRWn5GkKIOubrkm8UsXLkUtSuxyM0tHlJwsa65qib+NsP
	Bv48I+AWE2bKbzNq4mMpEXcEouUCblicoSWb3I5QJNKjXgeDBuaDJWWwNAm5Z6dEGkepKWiP64S
	EFWCEGSBEcRQBbpaH8TyD52P/iR5v0ukO2bZT8qVG/xrfEwd1Pa3rc+Y5hprKUnF0u
X-Received: by 2002:a17:907:9449:b0:b88:5ef6:17f9 with SMTP id a640c23a62f3a-b8edf15f695mr675946466b.7.1770655972552;
        Mon, 09 Feb 2026 08:52:52 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 14/16] xen/riscv: handle hypervisor timer interrupts
Date: Mon,  9 Feb 2026 17:52:27 +0100
Message-ID: <4658719da8639b382b122bd79124381235d27aaf.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce timer_interrupt() to process IRQ_S_TIMER interrupts.
The handler disables further timer interrupts by clearing
SIE.STIE and raises TIMER_SOFTIRQ so the generic timer subsystem
can perform its processing.

Update do_trap() to dispatch IRQ_S_TIMER to this new handler.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Drop cause argument of timer_interrupt() as it isn't used inside
   the function and anyway it is pretty clear what is the cause inside
   timer_interrupt().
---
 xen/arch/riscv/traps.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 676a2da55811..e8d9ca902d9c 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -10,6 +10,7 @@
 #include <xen/lib.h>
 #include <xen/nospec.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 
 #include <asm/cpufeature.h>
 #include <asm/intc.h>
@@ -176,6 +177,15 @@ static void check_for_pcpu_work(void)
     vcpu_flush_interrupts(current);
 }
 
+static void timer_interrupt(void)
+{
+    /* Disable the timer to avoid more interrupts */
+    csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    /* Signal the generic timer code to do its work */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -217,6 +227,10 @@ void do_trap(struct cpu_user_regs *cpu_regs)
                 intc_handle_external_irqs(cpu_regs);
                 break;
 
+            case IRQ_S_TIMER:
+                timer_interrupt();
+                break;
+
             default:
                 intr_handled = false;
                 break;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 16:59:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 16:59:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225910.1532525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUbB-0000Aj-21; Mon, 09 Feb 2026 16:58:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225910.1532525; Mon, 09 Feb 2026 16: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 1vpUbA-0000Ac-Vb; Mon, 09 Feb 2026 16:58:56 +0000
Received: by outflank-mailman (input) for mailman id 1225910;
 Mon, 09 Feb 2026 16:58: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=zC3u=AN=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpUVM-0007Zo-Bh
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 16:52:56 +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 c801b671-05d7-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 17:52:55 +0100 (CET)
Received: by mail-ed1-x534.google.com with SMTP id
 4fb4d7f45d1cf-65808bb859cso6855045a12.2
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 08:52:55 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8edacf1564sm415776866b.52.2026.02.09.08.52.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 09 Feb 2026 08:52:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c801b671-05d7-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770655975; x=1771260775; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HyJML4Sv6DfhXqyacLnIQ1gC+Bl4EUOQWOcTO9rdOdc=;
        b=f+EzXHzvTB6FHiyAY4+Jl2ixgu0bvHz0eloTerMjrqkHoybxObTysCkpnvCBsXTfSx
         hUxJQ8neBo2lHw3TrkpmMkvwY8NtGQbJ5qAV7AC/hplIA9KHRMzRCblskooj7rjHa9Ae
         uhei3rDtVw8WGYIetkknlnBbqtxc8EnFJhLQ7tUfLqYjm/PjXyZh0i2Xf3qYVhZYA0PH
         7pbNL0968h5C8n85H5bwAKwmFVPm29HTGLJbl2GtyY9JH4JBYV1RJxpEpsG0Y5x9+8MR
         B00Ph04BR/dKSSKtb+mzI06anrH0ZGqf93krNMFt66IzM1afNvSFrLTv3KW6svvZ5L9e
         CIkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770655975; x=1771260775;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=HyJML4Sv6DfhXqyacLnIQ1gC+Bl4EUOQWOcTO9rdOdc=;
        b=TbffzPfQN/4vrRWBNPtzqCpQxaVn8JitH/+lvuR2a1B7Lyr2PvkZofsNOnJ3N57s8p
         41CVb4vZUo6AuowcOLg/BUHBHkf4AG//W8R+ba3/fJiF8J7Nw/2ZpcYiRfd7krU2SoO8
         5qK9Ee4ZKCqUggXULBr949l5sz9xc6S+3Y8o0Yr9w/BRPfTqdeTu3D1wmX898gUTj84J
         +08o09lrTd5+FxXHZHwAEaEzdTmMTth5CAYrxubhTl39iRJ+OBLLZkPufUfhfxeg1bbE
         RKyhAuEGeu4f0hwderr0hZSDiT4ZUzEWRk7SxYiushDhWqPwqJeFwdZPIZnhywsUkede
         TU+g==
X-Gm-Message-State: AOJu0YzrGb3wvDfNQm5lrnLaOoJ0LYWwXP9sVggqoWCf+zA36HR7m4OX
	X+2dHfz3zEjQ4LgAsBpT5PEYHzG6fYHdJA4E44MHbKQGB7i1vfVwWicweTQDKdBD
X-Gm-Gg: AZuq6aJ9Y62KokdIu1dXVkLc3JzHI0s/Eg5XHfABmHbYy8ekM7+3HwkuSckZ9TaCaOO
	l0qW0Yk8bT9nLGm6J86WDTB7BoHzU99oybR0ZY9QwOqH+1l/FeDBvgSVlipeWpzwZj464Ac5L7l
	iq3RYHXdNuqRCkC67GlrPrrVzmDCE3zXc5ToI6JhM0XAuSjCZQCmVNc6wCYVebyNHczlxC6ceW/
	buGmYYkmpp9evLFfNV69NJ36T8rE35oUbdBSjAg80AtTmdhXrPyVfQehJqb6KQBIkxIu+AKw96Y
	zLRj6VlOzZMWocOVGslliETcYqUnSWkE2VVE7FOgk+fUUQVxRzl1oTApkKBBiQ8PJS8Ec0rURzu
	4G7JFhwTXDHijxGc27CUe72IDu7ZESYQz8221T9ibVdUcfmenEsSg9KQWrnu2q7Dyuqp0rwKtZy
	syC+QpPXCfG8QwAVeOYyFYAPB6lU+roF+0DC88Vq6pcprWmDX6VWexcFc+vw==
X-Received: by 2002:a17:906:6a18:b0:b8d:f859:d228 with SMTP id a640c23a62f3a-b8edf1a942amr632341966b.17.1770655974628;
        Mon, 09 Feb 2026 08:52:54 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3 16/16] xen/riscv: implement sync_vcpu_execstate()
Date: Mon,  9 Feb 2026 17:52:29 +0100
Message-ID: <b6df040691dcec56cd2f91699f0fa444cc0ef7ea.1770650552.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770650552.git.oleksii.kurochko@gmail.com>
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The scheduler may call this function to force synchronization of given
vCPU's state. RISC-V does not support lazy context switching, so nothing
is done in sync_vcpu_execstate() and sync_local_execstate().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
This patch is dependent on patch from ML:
  [PATCH] sched: move vCPU exec state barriers
---
Changes in v3:
 - Align sync_vcpu_execstate() with patch:
     [PATCH] sched: move vCPU exec state barriers
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 30a966f53c1d..ecb4ef8d0c89 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -245,3 +245,13 @@ void vcpu_kick(struct vcpu *v)
         smp_send_event_check_mask(cpumask_of(v->processor));
     }
 }
+
+void sync_local_execstate(void)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+    /* Nothing to do -- no lazy switching */
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 09 17:01:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 17:01:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225925.1532536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUdd-0001oO-Eh; Mon, 09 Feb 2026 17:01:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225925.1532536; Mon, 09 Feb 2026 17: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 1vpUdd-0001oH-By; Mon, 09 Feb 2026 17:01:29 +0000
Received: by outflank-mailman (input) for mailman id 1225925;
 Mon, 09 Feb 2026 17:01: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=/dId=AN=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpUdc-0001oB-4X
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 17:01:28 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f5b8ce1f-05d8-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 18:01:23 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5632.namprd03.prod.outlook.com (2603:10b6:a03:28a::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 17:01:20 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 17:01: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: f5b8ce1f-05d8-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OXyQo78R/nZmzHfi1Nl+DISAaA75A3p3G9dokMkWWWEjMfzh5zWYvDTzvVCsJHKs4JBResvBFo0I2VaXsU2SKTeAeHkOqTf6m+AMp+zwILuOKLYFUeWcoY4SLHyiil0myYci/DJ5gBie6lTZMw44VVw/wfWh3aHRARwhZ4xwyJ/nHNK+2ZTNpS9hpotlwR2g84GseHgThesr9wwPLtAgVaVJJhVU/htE/E9GrwZJXDMmDT/jTWF2dMfmLw0NjFA0x63+I+QeQlbYEJDJ56z1HzSvnw/v0y1e/Sfb/qJPS4T/9mP9zWIvdkMq/FLRfY1rKDjQHSm0ZADdQIWWyfEsMw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qkMLS06LOzOuAMlRKpcofuI3opLzojEgUC2Po7VbYYc=;
 b=xN3fkrz3Axrhn4vtT+S3eCujU+TTK/z37+ofG74x38wxXWza0d7e/YwycPa3FplfVTRsdDLQ5IAu7xnxOgwat8COUVJPPMbiCg4chEoo+gM/6cX90KJzJweIv1pxl/7KZv9GO9RKaO8/A9OaX/yc5G1vVebGY15r+Mgl+YIhcsB7nfE03o3+I0YQYzuRuIQhhT35Ro3leU2//B4A5RN3mFGhU934I0l6o61oYzavZxZIkVLoYa8ujshGMwTPTF0rCBb1wnrpeSEG3m5ejCz66VSaxOk730Gg9JQwBCLPOOVns5oD6ORoRoYUETmPHndg2YAA50brTIxE0mLCQRqdaw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qkMLS06LOzOuAMlRKpcofuI3opLzojEgUC2Po7VbYYc=;
 b=O/bVAS4ayzQ3R5fh7NbDpVai/XDZxAElYzM3C+I8oTzRuk6aDIMvBgXuqwWcgZRpCp9DFAou530XQpCCIw7oGUrikAERkSoPry548vMUN6EFuoMnBetggTVA2iiRadd2ma9iFJ1lPLh5Mk77uAariyn3fUTWStcr9PEwY6w6IHM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <5fcaa5f3-20de-43e9-9341-9c405ac34370@citrix.com>
Date: Mon, 9 Feb 2026 17:01:16 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
 Tim Deegan <tim@xen.org>
Subject: Re: [PATCH] x86/shadow: Delete the none.c dummy file
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
References: <20260209104104.7840-1-alejandro.garciavallejo@amd.com>
 <aYnyY2MArv4vTXsY@Mac.lan> <DGAJI3UYR98J.FU94VABOFZ5N@amd.com>
 <aYoDiDiJ4rRLxhmw@Mac.lan> <DGAKH0QH3EG8.8GOWCPNH2Z79@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <DGAKH0QH3EG8.8GOWCPNH2Z79@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0211.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:33a::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB5632:EE_
X-MS-Office365-Filtering-Correlation-Id: 7675fb3e-fdc7-4352-9960-08de67fcd89d
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?REpqQkxYZ2gwRDFMbzhKZ3dyWHJYM25EdmYrdy96clNCNDdBdnFiWm5kWFhl?=
 =?utf-8?B?UHU4b1hoL0lhV0NzZm1Lam5TNDVvTVBJYkVtVE5NekZSZTJiR1Q0Z2tDQ3lT?=
 =?utf-8?B?QllaUGNaQ1lWRGVMVVQ5OVd5UXh1OTZmMWJrQ2piSE1WUGcxRHA3OTFrbytW?=
 =?utf-8?B?dVZ2REgxdURKSXg0bExXWGhhVXB6MlpPWlhRR2wzVFY3WVVuak8rM1paUDg1?=
 =?utf-8?B?dkZ0K0Q5ZGc0R0Jjbmw3a3JhZXltSjVmeWx1cjZidWhSRDBnb1d6d2xzMlpO?=
 =?utf-8?B?RHMvd09jdncza2pKd0VkaHhQR1VtNXRSWkxlUEJzbWpZZGNrMGxsemkvQlN5?=
 =?utf-8?B?WWE5TVpia1BYUEROR0w1RGZBU2RQZTM1MENlOXk0TG8raDZrcWdSOURZWjM0?=
 =?utf-8?B?TWM5MzdOcldaSVVzWHV1a0FVbFdxcXFoSTNLYkt4MnZXV0V6Rk1vWDFWZVlr?=
 =?utf-8?B?ZlIyamhxbnZOTlVxckpFT3RHeWgxMHI5RkdEd3Ztdy95MXJrVTUzTmxzN0Yx?=
 =?utf-8?B?Q2hhdU1yY3JoczVJdTZ0Ly9JdU90NURGTDlDSjJJRmVHKzJlZlpOWVRRa3pK?=
 =?utf-8?B?cDZ5eWVaY2dBQlAvcyszWXF2Zk1HcmtQbTR6ZUY0aUorSVF6Y1g4NGRiRTlX?=
 =?utf-8?B?NjEzZFcvclZMbTNiQzFHTDBkYkxUM3NCdzhEZ0tNQ0ZlQmh6MTROV0RWZlNR?=
 =?utf-8?B?SmlKUDdEWXoyR2hGL3dJeGV3RFVxZFUvWi9WVlZUc3Z4cFNRNUU5UUp6aHpI?=
 =?utf-8?B?SlBvcGp6c2Z3eWw5VmxoY1dtbXo1TUdIRldJMjUwS0s3Vm1EUEd3Z20vUDhX?=
 =?utf-8?B?SFdmZkVXUzFPV2IyWkpQUHZKQ1ZEZ1MyQVd1Q2pDTnF5bFVZVjFlbHNVUCtG?=
 =?utf-8?B?NVBjckRwSWFxQUlsVEp4Z3FwM241dVFqdU9tbTFjQkVEM21RaVRsbkJPeEQ0?=
 =?utf-8?B?b1lUUGk2K2RhYldWbnM2VGZSbWF3T05Wd1lZYnd1TWRBYU10TkpxQXdUSU13?=
 =?utf-8?B?MTdmdlZsRXFFcW9lb3FCWGp4aW81UkRWMmZiQmZTMzhFNW4yMGhRS2RSL3pB?=
 =?utf-8?B?R2hPU213QzRPMm9jamUrcEZxdzBTbXp6bmVFK2JjZThNeXRLTVBnbDJseDR1?=
 =?utf-8?B?b2luSjFkK3ZQc2g1d0NyOWx1SFJvOXpHd3lZcmFmQUdPRTlaTUFnKzB0LzZs?=
 =?utf-8?B?TmY3RUJaQzUvbU1YK3ZOS2NESjlEK0ttYW1OQzdPR0JXdWZ2ZEZjZUFwdGNa?=
 =?utf-8?B?VkppMW44T0RoMHRZQnl5TDBvZXVDUVFVU2FFYlZiRXVHT29kRXQ0U0RoZXNo?=
 =?utf-8?B?ZlQwMGE3eHVCQXlOa0c1WlVKRHF0U3Rwd3o3VGpNdE8yKy8reElXUUZsS0J4?=
 =?utf-8?B?WXBXZGdxS2lSeDVBOVBVMjBTRE1qQW0vNDhBWW84aTVQN1lXYW9ML2tyT3dM?=
 =?utf-8?B?OXhHdHZtV0pTNmtFcWNjWk1ValFXODBoaS8wVmpJM0JudXJ2eitoU2dsR2Z2?=
 =?utf-8?B?WTZtQlpsalJjN05OSjFGVFNBSFdaZ2JRVHdJS0xmU1dzYkFwd1VrRXlFaHAv?=
 =?utf-8?B?YXhQZnVjbXlkeHhieDk1QVpVc00xWGFpM3BWT3pFc0pHcnh4eXA2cmRhVXV1?=
 =?utf-8?B?WU5TdmIwcjBsaGFSb3JrOTl0M2RTcW5xOW1EMU4yWU5QMzlWdlpMQ3V3TWMx?=
 =?utf-8?B?UngzWU51R0ttY05UcGxOYk9nZW55SUlKcVBlck9SRnNQbWVPWW9RZDFCQU95?=
 =?utf-8?B?MWlTdFJ4SmswQnJOckdXaWxlVHl6cDlyMC9rOHlydzJrc2lwUUFOdXFlREZu?=
 =?utf-8?B?Q2FXaFEvUFNPekdWRDE4S0FNbTExU2ZwT05LRzNtdldJUzZVSzdqdXVyekpY?=
 =?utf-8?B?TENGNzhLS0tISm5lZU1TZkNwdWJwakROdWZrdEplZkhOTGpTYU9HNWFNMWVt?=
 =?utf-8?B?Y1dFa0Fnd2JXZGVpODBQMGJXRS9sbnpQOGxJY09HSEw1R0pJM003TWc4Z2pX?=
 =?utf-8?B?WnQ4djZiS0VRQkQwZkkyRjZzTC9GTXpvanhuREpiUXdGbDkyRWJxNjJwS1lh?=
 =?utf-8?B?ZWFQbWNSQnoxQ2xtWnViMmxwVzFzeUpVWmVxWW4vUDBLOSt3OXJUdWIwc0Iv?=
 =?utf-8?Q?mvoI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MTdMMG5SaSsvNHZsV013dk1pREgwMjhpMkE4Vzd5alJSM2htUmpnQ08veDdi?=
 =?utf-8?B?YmF0UlAvTWVielZaSEpKSlZMQ3ZaNDdqdVhHK1dYVm9yWUtia2pUNlIwdHly?=
 =?utf-8?B?M2dRUG0vYmxOaE9EbTAzaEpEM0wwR3Q5TXVYK2xKb25wOGQ0R0dlOHhGeGhx?=
 =?utf-8?B?YndWQmkxOFo5d3FiSG1DS2Nva1dvbGxZd2N0Tm5YODZHN3dlYmIxZ2JYL09G?=
 =?utf-8?B?ZGE3Y1NzQkZRSVlIOFZ6dXZmbVNFMHluRzRUUmpyQllJSFNuV1ZzLzI5MWJD?=
 =?utf-8?B?OE5uK3ltU3pRdlF6L3dBU1l5UnJYczRQN3d1Q3B0aXphRkNmRkhPc2pNb2RK?=
 =?utf-8?B?UUlTQmhQUmJuTFZ6UkhYMWJQWFdidnp5K3BZcUVkL3FNcGVMaW1pYjlsSjI3?=
 =?utf-8?B?elJVYmJGY0FSL2UxM1kzL3NvSytlNFRzdW1PRDhVaWpQSXcvTUdjb3REd2Fr?=
 =?utf-8?B?QUdZMmJrOFlRdTVaNWw1bVY3cTNDVUlzSmJwN2hZOWFMclYxb21XOFRBaHk2?=
 =?utf-8?B?YWJUckNCemUxMHJnczlrdXl2UzNLeS9mcjlzZkpEL0FGN1gzMFppWTZRUTBB?=
 =?utf-8?B?d052blBGSlp5NjNkOEhSZ0I5MUVPMitFNlcwU0dyUzFzaXlsMll3ZW0wSEJG?=
 =?utf-8?B?YU9IMDRIWi91N3JRUjVFRU5YaGpRaHozeXozeE41b2hPL3Vpa1gzU2dZWXJr?=
 =?utf-8?B?ek9xTXVxUk01RUN3WDZWUUNlZUhaY01SNm4yU0pDUWlnUmlWZVhTbVFIYTMw?=
 =?utf-8?B?TWhCWUxCRjBQOUZmeVhRZE5Vd3BJcytaS215SFVsUG12NkVDMzN5U3o1Y1Q4?=
 =?utf-8?B?TEo1UnMwb25INEtRcWQ3WkQyZDcxRGZYY3dkOTVIOG9kNzY4enhvNjVoTHlH?=
 =?utf-8?B?c3NjQU5WNjBNRHVpd3NBUWQySXpUR2lSVnhGQ3NyOHRZcVZhWmIwaXFDSUl1?=
 =?utf-8?B?RUx0Y1JTUUtDR0Z0L2dFb29qUnliRk9rVllvem9KcmtMc09zTlFadTlqS01s?=
 =?utf-8?B?eUxJSjdVaWF2YzZFcmtPQ0xyNmF3Z1BTS1V4R1JWTWNVam1NVVJwUUhFVDVo?=
 =?utf-8?B?djl1SXhuejNmdmdXSnp3ZHJLQkJiTnlpaFQyR0E5UFdKZ0JPaWEwbnkzM0ZH?=
 =?utf-8?B?R0xGdWxITGRNOG9YL0FCOGM4aUFrSXF4TEIxMWhTbit3cGFuS2s4bkFhaFYz?=
 =?utf-8?B?bnpCN29LQVpnNE52M0pnVjA5d1V0Z2pHYnMwcHgzZnBob2syR092QkZhdE4z?=
 =?utf-8?B?R1BoNnV6VzFVMHdlNXZ4RlBJaTJZT2lhL3c2bWp1U2hDdzR1QXV2SndLK01L?=
 =?utf-8?B?dUdBdi9vcTFzZ1hFV0o1RVJ0RW9VbEd4Z2ZvNTd1T29ISWR4OHlWenYzS3N1?=
 =?utf-8?B?bDVnYmRaMlhCZlh5ckdZakdSTko3b0RWcjBVc2RpeEpHbk1VVTRXcUUxZjJt?=
 =?utf-8?B?YmFuMzhDZ1BuMHI4VTRDU0tTYlVvTzBWOXh3d0tBbGc0UlphRHk4WnR2T0l1?=
 =?utf-8?B?cjExM1pHbkFYa0U5Nnd2WDNRcVh0S0ZaQXVmbkRyV3cvZXI3YmF2V3FNM1V2?=
 =?utf-8?B?UDJiRjRJdzYyYkVZbUxmMEVqZjFDcjY3VWEyUEN6QjkrdnJqSFUzbGlWTDVW?=
 =?utf-8?B?VTR3L3BNaVJUS2YxSWRFZ1VXRGlvYytITnpXdk9PK0g2MzF6VmdRQlVySTR3?=
 =?utf-8?B?eWpZclkxbkIzOENyMDJsRU44YjlQY3Mya3FoaW9SU0tRTnp3b3BVM0c4cUor?=
 =?utf-8?B?eFFaZUZ6V29VZG1nRWQrM3BWY2dJSS84Y2dxNysya2pJbzVqcDdXcXRtTUtL?=
 =?utf-8?B?ODBGcGppc2dkMUNaRlZTeCtkdjh6Wmw0VHBtQXB6MmUwRmJKczdZdVBFU1VO?=
 =?utf-8?B?OHFkZUNtNFZYZlhITzFjbllCUlJBeXAvd2g5Y0pudXgzbFd2OEdKQU1YOUpi?=
 =?utf-8?B?cS85dFlPQzJlMG9RQTZncVFDNndNTy9ZMW5taS9OdTdLc3kzRWFHTWQxWnYy?=
 =?utf-8?B?OG5pTFM4bWJUMGVTU3l1bXVscTk5UzFjUXU4VVBFazFLMFIyZjRvcmxoMXF5?=
 =?utf-8?B?VUIzWUxVVWIrT25ScGw2dVI4NnAvTlF6WFY2aVpCQzAxRjQ5VHBIa1RQZXBo?=
 =?utf-8?B?YTFBdFRsT2pJN1BCQVVhWk9FTEN6OHcvbWlPR0FwdFh1MlFMNHR5WlU5UmRs?=
 =?utf-8?B?ditDMnk2ZHdTalRTMHlxemw5UWlMeE53NjR4TTg1eTJFUU5Ub0NGaUZTRStP?=
 =?utf-8?B?OU1DUWp3NktZQ1BNdFZ5RHVJTmdWWTJHb1ExeEk0ZU5DYzZLUUVSYXUzL0xL?=
 =?utf-8?B?Z3NuUW1LRUQ3a2RjMnczUWVoQUN0ZUN5Tm1UcFF2Tldib3NOZ2Ywdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7675fb3e-fdc7-4352-9960-08de67fcd89d
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 17:01:19.8501
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: oCuEzPNE6Pn5CHSy551iqEWah301ccZhvP+0xT/AwPKz2txvvzBbGkO9I7yk+6tclphpS/cKcLkrFevjl7JrM1EQpY/vtnU8vqMBUa4Le+s=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5632

On 09/02/2026 4:20 pm, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 4:55 PM CET, Roger Pau Monné wrote:
>> On Mon, Feb 09, 2026 at 04:35:04PM +0100, Alejandro Vallejo wrote:
>>> On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monné wrote:
>>>> PV needs shadow for migration.
>>> shadow in the sense of shadow paging? So PV-only + !SHADOW means migrations are
>>> impossible? Why can't Xen operate on the PV pagetables rather than using shadow?

This question doesn't appear to have been answered.

Because PV guests can read their own pagetabes, and need to not see an
absence of _PAGE_RW where it has a writeable page.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 17:02:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 17:02:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225932.1532546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUez-0002J0-OU; Mon, 09 Feb 2026 17:02:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225932.1532546; Mon, 09 Feb 2026 17:02: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 1vpUez-0002It-LC; Mon, 09 Feb 2026 17:02:53 +0000
Received: by outflank-mailman (input) for mailman id 1225932;
 Mon, 09 Feb 2026 17:02: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=bBDp=AN=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpUez-0002In-32
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 17:02:53 +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 2b37ddca-05d9-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 18:02:51 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47ee07570deso28621155e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 09:02:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5e0ed5sm1747805e9.5.2026.02.09.09.02.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 09:02:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b37ddca-05d9-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770656571; x=1771261371; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=P6c9fUbkxft9yNZeozSNHrFJI7c/+k2HI4137NH/B9o=;
        b=Lv8uMK7VrFFYI/gw3cSowgezLAeBEptoQHKAFUam4sjmYr6GyoDxZPY65x4Ra2THLD
         NMdra5/4SSn14NsJxxk275ZTIY7lI7cGavCNhV6B4NhQ5h6CFQ8yyIA2SoVoY/wNigy9
         h6keNgAHEQiX2SGrZyiyhfMl3+cWRMQnCGClNzl9tj/fcNvukPlbxRfMLyM4nzsPp4Dv
         OCrSAjMeQXft+Mo8oAM5/8H1HMtgRbg15EOdhedvGCD2FFXjY4x4Y5eBh97wy0nJIcmL
         b2ETx2rEoZbVoCM15OlQC5uCN3O2BEkx/CgNM8J7reiCBO6SUsgPqozm8rNSeHI1LMI6
         /AEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770656571; x=1771261371;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=P6c9fUbkxft9yNZeozSNHrFJI7c/+k2HI4137NH/B9o=;
        b=u/unoaRxmoWY9kABOSvH1V+KlbMcW3kLU8QJGUjuJmepOcHSsfSKpa24sgGKNxcpjT
         EANVw8lRiqpQT/vfhIDVwzu/L+NLjDrDYfAOHjkDytyvLTCSGd1kRCkKlaQBJG2cFdxq
         p5QVtrpEQx/TrnQBakWmPjsmdT0qyKdZXAPmWwgKHR1hGFB67Fa9kl+cbT8LTn9dQzQ+
         698XA9L5Wviaoq816zeHzZ+y17BOd7VErJMvFJa1s3yT8wkOqlDBLzMRv0Qm92iQpuol
         TltMSQp5lMSFna9+1Wow5yhhIfQ4YkyODhTPyU9vHsa0KhxDIL1yHhSk+7o6nKugzdKe
         mhtA==
X-Forwarded-Encrypted: i=1; AJvYcCXdodlNRbncSlMCF9YyWcgfgkzfONQy9JaNQyc2fB1xp3bJAIMA7n9gS4K8/ErN+jDOssDIv/rAFAI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwRnxN9scH3bvECa3UB9LLkH898dVI3abMrifmV3CUB6k2LzlP/
	GE2zkf/Na6oJjsyagn217knOcpFBsWtk8QEo13nyjJfkhx3Ivh+qNT7X3sGHhaA99g==
X-Gm-Gg: AZuq6aKDj41h2PoiZTCDH9hFubCAYJC8Lmf0ReKCck9Nzdr0iss2D0cConwcK/aHWfC
	rLY+RSOcgkrfbnBAsFfkXkK1nNHoERPub/oVNxejFJAmRrCjejN8n7rnepQTS1CgiIJuph1JJNc
	Wf9xcOl1OEDjyBgC7B8TAUxJDhKoushSmmSIvQHYlzaGmz3AUZFEhwsOfKCFX19KxSWU0V2Oo8r
	sTpSthbFkwbMxs3NR/z8AXxLnlkjBc2xgKK0Sk9O0MHw7k3H0JCidiOzro/+MCqf71U4cEB+jLH
	RqqAxexllfaNsEkY2Pp/Lrpgg8/1m8lON3G0RpYC80KBWf48LiBAvDOdYQgD1lp/SmtDsvWuZnh
	tkS2m/ERq9D4eUQt/0Phgu8XPLUeoDGNbrfkWx55KB+ZrHERBGOSaRi/Zqsxm21ejw+NibFJOIs
	1qt3qSQhMMNIQ2a3IGjfroJPETmd/mXQayaDLj1FHi/Saguh+C2Dv8ONfuGpi9+rqQ8trNaL9WI
	zQ=
X-Received: by 2002:a05:600c:4590:b0:480:4d38:7abc with SMTP id 5b1f17b1804b1-483201e25e3mr154032015e9.11.1770656570929;
        Mon, 09 Feb 2026 09:02:50 -0800 (PST)
Message-ID: <b5c89f74-cdaf-40a7-b32b-6c54610a5d9c@suse.com>
Date: Mon, 9 Feb 2026 18:02:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/6] xen/console: update conring memory allocation
To: dmukhin@xen.org
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: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-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: <20260205013606.3384798-6-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 02:36, dmukhin@xen.org wrote:
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -463,20 +463,34 @@ static void cf_check conring_dump_keyhandler(unsigned char key)
>  void __init console_init_ring(void)
>  {
>      char *ring;
> -    unsigned int start, size, chunk, order, memflags;
> +    unsigned int start, size, chunk;
>      unsigned long flags;
>  
>      if ( !opt_conring_size )
>          return;
>  
> -    order = get_order_from_bytes(max(opt_conring_size, conring_size));
> -    memflags = MEMF_bits(crashinfo_maxaddr_bits);
> -    while ( (ring = alloc_xenheap_pages(order, memflags)) == NULL )
> +    opt_conring_size = max(opt_conring_size, conring_size);
> +    size = ROUNDDOWN(opt_conring_size, PAGE_SIZE);
> +    if ( size != opt_conring_size )
>      {
> -        BUG_ON(order == 0);
> -        order--;
> +        opt_conring_size = size;
> +        printk(XENLOG_WARNING "Rounding down console ring size to multiple of %lu KiB.\n",
> +               PAGE_SIZE >> 10);
>      }
> -    opt_conring_size = PAGE_SIZE << order;
> +    if ( opt_conring_size >= GB(2) )
> +    {
> +        opt_conring_size = GB(2);
> +        printk(XENLOG_WARNING "Limiting user-configured console ring size.\n");
> +    }
> +    else if ( opt_conring_size < _CONRING_SIZE )
> +    {
> +        opt_conring_size = _CONRING_SIZE;
> +        printk(XENLOG_WARNING "Using compile-time console ring size.\n");
> +    }
> +
> +    /* Contiguous buffer; does not need to be naturally aligned. */
> +    ring = xmalloc_bytes(opt_conring_size);

I'm sorry, but I'm going to veto any new uses of xmalloc_bytes(). As per the
comment at the top of xvmalloc.h, the family of functions there should be used
in new code. That family deliberately doesn't include a counterpart of
xmalloc_bytes(). You're wanting a multiple of page size anyway, so perhaps it
is warranted here to actually use vmalloc() directly.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 17:22:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 17:22:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225944.1532556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpUxd-0006rR-9w; Mon, 09 Feb 2026 17:22:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225944.1532556; Mon, 09 Feb 2026 17: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 1vpUxd-0006rK-5d; Mon, 09 Feb 2026 17:22:09 +0000
Received: by outflank-mailman (input) for mailman id 1225944;
 Mon, 09 Feb 2026 17:22: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=/dId=AN=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpUxb-0006rE-K7
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 17:22:07 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d840ece7-05db-11f1-9ccf-f158ae23cfc8;
 Mon, 09 Feb 2026 18:22:02 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB4962.namprd03.prod.outlook.com (2603:10b6:408:7b::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Mon, 9 Feb
 2026 17:21:59 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 17:21: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: d840ece7-05db-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i/tu++OCsJpAoT9ktrFqMcVYrpmTPjvbLae/G+/r05mhfvBOerMnYPJAqxgOLDg9x17MiTBrQFiMba7Hfp4EC44SNiZlgHPD7eOykKt/xEoD1zt6fIhdrOREWxaWKjXGJvKXOshgV/mXRTssKYzmzTtWzfvKFAMD6NI7PB2wdFyND7j+I7E/zkaDzEc1KVpeUrVodr8wMCvmwVo5il60lNFlbjTBxmh3btIR5cYIE+oJCxEmZuOLzcnFOVACQeG0O6xjXzKSZL6Suo9oEbT5Kq2nETH2FX6/PDJiz2LB7VJhq1oPCzX3+HT8uBnL4m3yqb/xk9sx+G9JyaJbwWklsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HApS45dSd9cfOXWF5pJL07A/YdVE7EWdCUhex1T1wwU=;
 b=h0drqIPZFGjkcbVzgttDl3vFCa4my2jjxOmsvtEWu/FZMbSM9TmrmTZ4r6nvkDinfx3uRBosyoEJgOyU1Ngf/XpCBf7w5ybhXlgtiu26uOpIB1a7XjcbYkKVE91CVf/nxlX+HBkyUnZ2hm/ytcnqE2ZntoviCY5QS9OLi+PTB9fenBTLb0PXBQnxXpwtxONk9rT/Fx9nLBlr0NHCuD5VHqkpSiCL54iJbGtdKtRJdaBuBYwwEhsKsNlsLhsMl2TQUU1TMdTkpX0bUfdnG+SQvKGuNdsOYp1UKVTqsLoWEelVtGkUlFihtZLet8kKVn1Zwm0WrwcLUV1unUmVO2B//Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HApS45dSd9cfOXWF5pJL07A/YdVE7EWdCUhex1T1wwU=;
 b=s7rNDbzfIvgflVhWmXb6qrnDwugv5tpJ0B2jy8lJO4FyZZ5l20Tsd+n86Iq3yt7Hcgws0miM5DUBrs9UnIpN4N6MLYUZ5qQn6Ie0C+qTiyocf456+Qqjys3Hp0V97Xk7yHZdkL/cqsulnT/nRe0RsNlV/ZZwgobe6rEN6GLj2cc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <650406ae-37a2-4752-b539-cc66535c77af@citrix.com>
Date: Mon, 9 Feb 2026 17:21:55 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] x86/ioreq: Extend ioreq server to support multiple ioreq
 pages
To: Julian Vetter <julian.vetter@vates.tech>, xen-devel@lists.xenproject.org
References: <20260209123025.2628513-1-julian.vetter@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260209123025.2628513-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0074.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:190::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN8PR03MB4962:EE_
X-MS-Office365-Filtering-Correlation-Id: b2fcc7d1-6cb0-4b42-fdeb-08de67ffbb42
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?eDNEaXhBT0xDNzV4WXBHNlovazZ4RWg0clF5NiszN2ZCVm1qcFgyb2ZZMFdK?=
 =?utf-8?B?RUFhUWg5Y2wxc1lzelpaaGZ1Rm4rMjZld09TOWdZVFhwWHR0anc3cGNPUHlT?=
 =?utf-8?B?dnZVb2lpUTRzdUt0aWpuOENaQ1V6MTZlZStFR1NKY0xIOVBDYlFaTWIrUGV0?=
 =?utf-8?B?OU9IT0ptUmZYS2sxVFRxcEFxUmdoRG1uSDRsRmhxUWl4UkhuS2VONHZBQkZx?=
 =?utf-8?B?NmJoeTBMWFM3cnl2cTFVN0t3RUszODJtdmk4K0xCdFkzNUN1MFN3QVNIdTRq?=
 =?utf-8?B?SHRjeVBMTTVYRUZpN2FMazh6WWpmWkpTMEhVZWF6L002eGNQSXdHWVRVelFa?=
 =?utf-8?B?Rk0vSURPUGw3Kys5R01yeE5QRmVmK2tDQ05HZFFjUEVWd1ZRYlYwWHVPb2ZR?=
 =?utf-8?B?NWU0aXZzK0F2ckh4MjJMakc4M0xwaXVpVGdNQkNPOFBMUW1YTjFvQVQ1cDJX?=
 =?utf-8?B?ZGJZemJ6ZUtRZGFNd0hnVTFaelhRL0VkZFFYSmFxQjFQN3hFS3djaG1GdlZX?=
 =?utf-8?B?VkVnMTIzcG1sWVR0ZThBSVVVVjZUTGdOWDBkUnRjQjBZUnJyZnpINFJVa3BQ?=
 =?utf-8?B?U2p1Z21YK2VqMk00b0pQUWx4MHV5dEtWc1MrSC9FVTYvL3hEaHczQUJGbCtm?=
 =?utf-8?B?dTdUMFVzRitFVjZBeFUwTUhtMGZEM1ZpWWhsa0IyQnp6OXMvTm1jNDJrOE1B?=
 =?utf-8?B?QW9SZmc5eUFrYkYxNHNiMUZYWU9wcG1IWktnd2k1cGl2Vm5oakNqZmRWZ3Fx?=
 =?utf-8?B?bW1WV2QzL2tNdWlnZUpUaENZU280d2MxY1Z3MCsyU0krT2R2eTBPQkFZcWkx?=
 =?utf-8?B?YXg1TzV5ZUVEVmFTRmFnYStyam1MY1ArOUgwM1JtWlBQUDZaa01lR2VjcVlR?=
 =?utf-8?B?anZLL1VIaXFxMlFraTFzUDNCNzdXczRJSHFRajRQOU5pMGg1dm9CMHB2UUps?=
 =?utf-8?B?Snk0NEJzZEN1SHFDcnRpNXJBTW9PdU12eERsWXJhMzVIV1lyYWFydEh0Skl0?=
 =?utf-8?B?RlZ0NlduUDYwVUtkYUduQUVDQUVmd25yWkJsdnVnZG1qZ2FUeFdnMVNjNmpv?=
 =?utf-8?B?NUx0MTdmcWZjVkx4ZGFtQjZWQ0FZL3RUcnlhc1BXN2Y1UWY2dDhjMXJDOHhZ?=
 =?utf-8?B?U2REWDBhdlZzTHA1MFJxb0ZHQkdHMU4xdUdGb1NPb2hqeFVybGZPSmx1aTJw?=
 =?utf-8?B?Mm9GeUFPbXJzLy9JdUI1cVNJcUVGeEErU05rTU95bUF2T0lQa2dBUXkyb25r?=
 =?utf-8?B?NC9nK2FMMHEwaUp6cS9YL25VNjVvQktwaTFCRkNQbzRNRlo0Y1F4alcreDhZ?=
 =?utf-8?B?UUVibkVaK1F1cnpmOTdKSG0xMllkazVEenJNMEhXSWthZHY2T1YvcXQ1Z1Uy?=
 =?utf-8?B?UVY0amRNSjNlZHY0blZNMG1zVkM5bTBJQlpBS1drQUVqNmhiUlFRUFR2Q2RT?=
 =?utf-8?B?VWlJUTJtWkNmUHV3V3ZPejNHdzFBRm1IUUhsWVUwckUrNFNka3FiaW9yb0k5?=
 =?utf-8?B?K1QwbmxOVVJZVTBiUkFaRXhVNERZWXlaaEljQU9xMVB6b0h6ZnhWZEVBekZQ?=
 =?utf-8?B?ZFhLUm5XejBPVFBvc1lHTkVQZlB2ZWY1UmdLWWRHNXFDWTgyc0F6OGVLK2Jw?=
 =?utf-8?B?TDZQVlgzanNuNGRsUTk5RnNSRGdhaDlXZWtCOGN3SmF1ckdCMGUxRDBRdHcx?=
 =?utf-8?B?NjREc3oxQjBaVUdTcHhRMFQ2d2lzUzRKVW53b2ZsYVJIUncrMnpOS2dUeXJq?=
 =?utf-8?B?ZVFqUkpaT1BpWDl1eVdsei9sZHlGQmZnb1FiZHc2K2ErZUd1cW91VTdXZXFx?=
 =?utf-8?B?bFJMREJGUElvb0JCQlBvYStnZjdjNFBqaHRIVUpUTGRqYkE0d0VpSC92Zkkr?=
 =?utf-8?B?N1VIeTdNZUJadCtpVlNTVDlWblV3SXRFM1lpQnBGWHNoeHVYampuNEpYc21L?=
 =?utf-8?B?dlBvRklzQnZyRlcvdkI5OTd6cGp2U0JHZ01xd0ZST25Fa2NVbm5NYXRkSkQr?=
 =?utf-8?B?NXZBLy9KenhOQjFpNjdoR1hhTFJqUzN3dzA3YlhxL3FZZU56YmZYVHRlcW9Q?=
 =?utf-8?B?cFQwK0piSktwUEdTMVVIZEhaZ09NRkUyejFLRlJoWHdLMUhaQ3hLc2ZOYjNn?=
 =?utf-8?Q?VKSA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UXdTUGJTbEZndHBWNDVTZjRVOWVKOENhSTU4dEF0clpWWEtOMUxJR2NRWkZn?=
 =?utf-8?B?NURvSzhJZHkwbWdObm9KM0hyRC9BdFRXM0M2NWk1YURFbVcvRys1cVNZZjBn?=
 =?utf-8?B?RWZWZ205aVFyd2hudVVaWHREUXBCaWd6Y2hYaXMzM0FTWWlBajBTS3YwSjBx?=
 =?utf-8?B?Y3h1THJ0d0hzNHFmYXVISDZWVmtTanBXby9qSDF1MzBvYjhJcjVEbVB6dVB5?=
 =?utf-8?B?bHNpakpVVTA5cGcvVE1OT0dmbXdYUDMwUnhta0Y2UmRSRzN5R0hMajVxQzE4?=
 =?utf-8?B?TUNZS0svU1d2ZlVDOS8xcGdsQk1PUVRkdmxhb2xreEpVNFRrQWZQTGpPOEk4?=
 =?utf-8?B?MmRSb1E1ZWVNTFF2enlEbTZnZk90bGgzS1UyQitKUjkzRUtRaHNOZEVRVXdO?=
 =?utf-8?B?aTFKdHd5T0xaTGp5Qm9JWFJOb2JGRlhyTkVtSWlsRXVCOVFmVWNCc3pLUlYz?=
 =?utf-8?B?MUg3aEt1ZjA2eHI2OGFnbnQ0N1BrSjUzWXZxMkZNRDd2ZTdnNXA2ZllxOWIy?=
 =?utf-8?B?YzBEdnBZd3FWZGZWek5RSG9zbG14SXR3LzdsUVgrSktmVWc5dFpoSjJTM2FN?=
 =?utf-8?B?QVhUYzR5MlF3ZHk3dE1qR1RVSXlxNVlyYWN1TUZtY3V4NzZwWmZjVVRMSU5C?=
 =?utf-8?B?cUNhL2Z4b2l0L3pyMGNoZGVqSDc4QldLbzAzZDJPWm1Nb004Y2xIL1RvRnNo?=
 =?utf-8?B?QVdrVnh1d2RlSzBxYXpVL3MwMmo2b081eWY1MGRxSWlzdk5KZ2JLZEhaYVFx?=
 =?utf-8?B?OVdSU3FnUlFCYmFoWm5RdFV6ZzViaXFUUm1KZTJYdmdVSEJoSExkVFlZSzhO?=
 =?utf-8?B?RnFMcHdpQkxxL3J5VTlibUF4ZUVCVFloemtucjlHTTU0NFJvZm9FaTFMWStl?=
 =?utf-8?B?TlV4dFNHci8xYmJaQWtpTWhVY2hvbm5MOFZnaUg5NTRoL2EwUk1sWmpXTktO?=
 =?utf-8?B?MktqajY2a25kTk8zbTF5R0RxVU9BMFVRWC8veCs0OERIbXhFZjkyRnV0bm1T?=
 =?utf-8?B?YWpkRUhKNUhaYlRhVnc5V1Zxei95Y1dPbGE2OS9MQTJBaDZUSlB2SnNCZnZG?=
 =?utf-8?B?aFFFd2lQQTRaZGNGaEs2Y29BbndseHAxck9hdTBoNitqLzFYbEw0NEtxM3g1?=
 =?utf-8?B?Wm5KQjcwcjIxYVZCMjJsVmYzcTRWRnhuWkI4RGFmOGpTVU5WaFkvRzFmREdQ?=
 =?utf-8?B?QzREQXhYZXFobi85Z05ZSGxMeWdTSGlybVNlUEFKSGQ0WUFOK3dHZlNCS0dx?=
 =?utf-8?B?MlVackxweU4ra1RjWnVWRWtaNGlFUHRLK0dvZTFneWZkdW42SEJZdGdMUDc4?=
 =?utf-8?B?REdGRzByU2craHNkbVFSTExGWU9TaFpUWEZMQXRITU1iUVUyaktDMmlIVExi?=
 =?utf-8?B?SWN0TEEzejZjNzFvNDltd1VyYXNTd1piVk5XeE85a1h2VGxzYWNScmZOTHVM?=
 =?utf-8?B?djZVSFFRbzcyOEZFRDFuUTdhT3RwOWY2Z1ZxVmhwYjI1NXd5S2ZuVE5rNXd2?=
 =?utf-8?B?YjVCVGYxY2c1ZkV0MVc4QU1WaHcya0NRU2JXNVJkZzhKU0plMXRaR0M1ZWt3?=
 =?utf-8?B?QlVYTnUyeEpvQ3FLSWVFOFByZXU1YnZlYkZVZUhCZW5tQU1jQWhTTU5DNDVk?=
 =?utf-8?B?eGlPTHFoWGtINDVSSVpBU2FaQmpHaHN6Zm5ZS3U2RkkrY2tFQVhRWjhvd3BJ?=
 =?utf-8?B?N2VWRWdwcStrbzF1Y0RpSDdackdzeHBGUjhHR2NoRi95S0ZyZXh1c3lDWmxO?=
 =?utf-8?B?SlJXNHFIelFHUkJkbEZSd3JqcmdpandZUFRKNDhEZGpwdDBPbkFGbXlpODFq?=
 =?utf-8?B?Ky94eWR1dGRoYVVNdmRJMm9aUWdHV1g3ZUxuM3pIenhEVTJmamsyd3lGZU5K?=
 =?utf-8?B?aFFybmlESGJvZWlPS20rVzJRM1REUVBwZFJaS0MyNjlpanlMa0hsazZjb25w?=
 =?utf-8?B?K280VGdUWTBVOHlrT29Qblo4cEdkT3l1UW5NOUx0ZVBCZnhONVBBYlJrSncz?=
 =?utf-8?B?dXdKRTd3Qldrd2xVUXN4ZnNNdDAzcVNuT2diRzJPdHN4NERnTlZQcEM2eXhS?=
 =?utf-8?B?ZWNCdVVnY1FZa0pJUmNEUnBxWDIzK3ZUK1ZnRnBIS0NFMVVMVkR3ZkRYWUhp?=
 =?utf-8?B?ZXlid0piR1NjNUNSRmxNaHFGQW9RRjlSVGhmR1dYUVcvV1lJVlZCYmI4THRN?=
 =?utf-8?B?anI2VTU0ejVDSEdFMVN4c3ZyaWFudmlid0VKak00aU9KWlduQXRLMDFJSlFE?=
 =?utf-8?B?WmtucmFVMlo5Q0p0M0g5RVZDM21oT1lSWDFvR0gxRVJVS2Qvekt1bUU3TFJn?=
 =?utf-8?B?ZGtqWDczTjM1cFdOMGpVMTlKTWJ0VGlIY2tsZEVsSTlVcE44b3hsdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b2fcc7d1-6cb0-4b42-fdeb-08de67ffbb42
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 17:21:59.0200
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: DXDGIUEzDm8W2MWaUp9YjMN9AERjB5J3GIADbxPOX3yhEl46s80+p14e3s+HeYlGRdtvKlEnrENFSFCnUvpqOti57Hs265MDjiBsEp39s2I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB4962

On 09/02/2026 12:30 pm, Julian Vetter wrote:
> A single shared ioreq page provides PAGE_SIZE/sizeof(struct ioreq) = 128
> slots, limiting HVM guests to 128 vCPUs. To support more vCPUs, extend
> the ioreq server to allocate multiple contiguous ioreq pages based on
> the max number of vCPUs.

This statement about the upper bound is correct, but it doesn't appear
to be what you implement.

> diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
> index f5fd30ce12..13c638db53 100644
> --- a/xen/common/ioreq.c
> +++ b/xen/common/ioreq.c
> @@ -95,12 +95,15 @@ static struct ioreq_server *get_ioreq_server(const struct domain *d,
>  
>  static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
>  {
> -    shared_iopage_t *p = s->ioreq.va;
> +    unsigned int vcpu_id = v->vcpu_id;
> +    unsigned int page_idx = vcpu_id / IOREQS_PER_PAGE;
> +    unsigned int slot_idx = vcpu_id % IOREQS_PER_PAGE;
> +    shared_iopage_t *p = s->ioreqs.page[page_idx].va;
>  
>      ASSERT((v == current) || !vcpu_runnable(v));
>      ASSERT(p != NULL);
>  
> -    return &p->vcpu_ioreq[v->vcpu_id];
> +    return &p->vcpu_ioreq[slot_idx];

Use xvmalloc_array().  It gives you contiguous VAs in Xen even if the
underlying memory is non-contiguous.

Notably it means you don't need to store the intermediate VAs, and this
final line stays the same.

>  }
>  
>  /*
> @@ -260,84 +263,120 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
>  
>  static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>  {
> -    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
>      struct page_info *page;
> +    unsigned int i, j, nr_pages = buf ? 1 : NR_IOREQ_PAGES;

This NR_IOREQ_PAGES needs to not be a constant.  From below, it's:

    DIV_ROUND_UP(HVM_MAX_VCPUS, IOREQS_PER_PAGE)

but wants to be:

    DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE)

This way, small VMs only allocate one page, and only larger VMs allocate
more.

You probably want a predicate taking d as a parameter, to avoid
opencoding it everywhere.

>  
> -    if ( iorp->page )
> +    for ( i = 0; i < nr_pages; i++ )
>      {
> -        /*
> -         * If a guest frame has already been mapped (which may happen
> -         * on demand if ioreq_server_get_info() is called), then
> -         * allocating a page is not permitted.
> -         */
> -        if ( !gfn_eq(iorp->gfn, INVALID_GFN) )
> -            return -EPERM;
> +        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
>  
> -        return 0;
> -    }
> +        if ( iorp->page )
> +        {
> +            /*
> +             * If a guest frame has already been mapped (which may happen
> +             * on demand if ioreq_server_get_info() is called), then
> +             * allocating a page is not permitted.
> +             */
> +            if ( !gfn_eq(iorp->gfn, INVALID_GFN) )
> +                return -EPERM;
> +            continue;  /* Already allocated */

Allocation should be done in one location only, and should allocate
everything needed.

I suspect that most of this complexity will disappear when switching to
xvmalloc_array().

> +        }
>  
> -    page = alloc_domheap_page(s->target, MEMF_no_refcount);
> +        page = alloc_domheap_page(s->target, MEMF_no_refcount);
> +        if ( !page )
> +            goto fail;
>  
> -    if ( !page )
> -        return -ENOMEM;
> +        if ( !get_page_and_type(page, s->target, PGT_writable_page) )
> +        {
> +            /*
> +             * The domain can't possibly know about this page yet, so failure
> +             * here is a clear indication of something fishy going on.
> +             */
> +            put_page_alloc_ref(page);
> +            domain_crash(s->emulator);
> +            return -ENODATA;
> +        }
>  
> -    if ( !get_page_and_type(page, s->target, PGT_writable_page) )
> -    {
> -        /*
> -         * The domain can't possibly know about this page yet, so failure
> -         * here is a clear indication of something fishy going on.
> -         */
> -        domain_crash(s->emulator);
> -        return -ENODATA;
> -    }
> +        /* Assign early so cleanup can find it */
> +        iorp->page = page;
>  
> -    iorp->va = __map_domain_page_global(page);
> -    if ( !iorp->va )
> -        goto fail;
> +        iorp->va = __map_domain_page_global(page);
> +        if ( !iorp->va )
> +            goto fail;
> +
> +        clear_page(iorp->va);
> +    }

As a note for the future, if you are doing a bulk indent/deindent, it's
generally better to do that in a prep patch.  Such patches are trivial
to review (git diff --ignore-all-space returns empty), and it makes the
subsequent change in logic legible.

> - fail:
> -    put_page_alloc_ref(page);
> -    put_page_and_type(page);
> +fail:

For reasons of differing tooling, labels have a minimum of one space
before them.

> diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
> index e86f0869fa..8604311cb4 100644
> --- a/xen/include/xen/ioreq.h
> +++ b/xen/include/xen/ioreq.h
> @@ -19,9 +19,16 @@
>  #ifndef __XEN_IOREQ_H__
>  #define __XEN_IOREQ_H__
>  
> +#include <xen/lib.h>

xen/macros.h please.  We're trying to remove lib.h

>  #include <xen/sched.h>
>  
>  #include <public/hvm/dm_op.h>
> +#include <public/hvm/hvm_info_table.h>
> +#include <public/hvm/ioreq.h>

Why all 3?

> +
> +/* 4096 / 32 = 128 ioreq slots per page */
> +#define IOREQS_PER_PAGE  (PAGE_SIZE / sizeof(struct ioreq))
> +#define NR_IOREQ_PAGES   DIV_ROUND_UP(HVM_MAX_VCPUS, IOREQS_PER_PAGE)

IOERQS_PER_PAGE is fine to stay, but as indicated, NR_IOREQ_PAGES needs
adjusting.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 18:12:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 18:12:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225963.1532567 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpVk3-0006LE-3k; Mon, 09 Feb 2026 18:12:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225963.1532567; Mon, 09 Feb 2026 18: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 1vpVk2-0006L7-Ux; Mon, 09 Feb 2026 18:12:10 +0000
Received: by outflank-mailman (input) for mailman id 1225963;
 Mon, 09 Feb 2026 18:12: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=/dId=AN=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpVk1-0006L0-7Q
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 18:12:09 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d77f6b7f-05e2-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 19:12:07 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB5405.namprd03.prod.outlook.com (2603:10b6:a03:286::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 9 Feb
 2026 18:12:03 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Mon, 9 Feb 2026
 18:12: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: d77f6b7f-05e2-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OQg5vbAIWy9Ta1SoU+xCT8onvT5JV4Wkujpw2FrHkAlVwRLvZFY+dHkEP02iZHoa9FbBFMfOJUHWOoWEoXdPXoc9PD+aONELk2rlU84semjdb1/2/7Y7u+O5GDCmjv+ZAdhz6UG0cmecNULuR3XYN6iCuoP5XluGK82ZUCcYG3Gy56RrenQ+biBZbPB4F+Lh9qXcFN0ngey4EcGHp4lbQrFGQaF8InBBi6YPg0GrTO3uqF2QaD8HXGUMdvfS0EdJ76uI5CYxRIno5oxi5z4wh0EuQAZdBcbuYy7gNuoFd0Y3DwMJD0Dtdb23Ihu4bbcubEISPLqPIiLsD1RzVNsKhw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=29IhPBoDLG9pzMm2IF5Xg1IaTWeDQSx/ANhxSFXIjX4=;
 b=fiQwA1zY6fUqafl5hAngk0JPSY7uRLjIpUGkQjxroV32MFwl1BJwVQ4CDwPIh9aWvUp4ScagcFxI592ekEc/LevHMNdl6eP1TY2Ahv9JTdlAuCyhFW148O5xzJ4abv8ooL60/rPjaoUnxkKttLZ+kB6Y+tFqye82QEUHFZcDjZPOC/6K3KOwwFKsZSnRDZHWdA3VHRQApQgL7NZm5T+PgW+tcMWLWJs3n0IKbf+2dFYjVwwiitijDHhMIdzuOUyxuP8xq+Wr1XYTQe69uUnTHUMJr4Vb9Pqw7OEzx2WQEEl7FyzL2gITDAlB94MbuCsTMkiWqDtxUyXDe8XfoKwgkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=29IhPBoDLG9pzMm2IF5Xg1IaTWeDQSx/ANhxSFXIjX4=;
 b=foCFUIABm7u17bOtAo1yIht7Mrdv3uFnDyAkTXlyprrGo6ML86Iad/+lO+L772rJ9R6HF+x8t334mBTFOD8WGhV88sAISwCcHg3dyQ29fabYsb1YBSbRHL9uhWCmaBSkQTcE4ZzPs8uB+QoV+HETvQqjtbTyEHRk4LE987KNyl8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e492809b-214e-43b4-953c-ff21b3780429@citrix.com>
Date: Mon, 9 Feb 2026 18:11:59 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 0/3] Virtual NMI
To: abdelkareem.abdelsaamad@citrix.com, xen-devel@lists.xenproject.org
References: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P123CA0022.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:313::15) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB5405:EE_
X-MS-Office365-Filtering-Correlation-Id: 1ae9e7cf-d6c6-41c6-2abd-08de6806b9a8
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?cFE2RnJ2UHE0U1NBMzhudkhETE5PS1JYWTVmRGQvMEQwRDBMUXBFRVZlYkpj?=
 =?utf-8?B?TkJOS3Irc01RYnlkdnJ5bSs3ZnhKSXc2MmdDYUJIQjFGNkt1MkxYejBWcFdu?=
 =?utf-8?B?c3hKeFNFeDZ5UGRoZmdMVkJ0dGlUWitsVWJoZmh5ODdKMUU2VmUxSnlRNytj?=
 =?utf-8?B?MHJseWlhdXlyMFJ1eFRRemdsOHhrVzU1WTM4cEJpYkpDMVlaQkI0b0h6TVA2?=
 =?utf-8?B?blpUaE9WcTV1U2JYZXZVS3I2MEJkWDhZMlAxY25uTnZJUVlzZGgyVVpySytV?=
 =?utf-8?B?TksvbThZa0E3N0xvdXRrb0ZwckZtUkp4aFBqMjJkSnF1U0hqUUpxV3A2cDE2?=
 =?utf-8?B?bHdhWHVaTFJqaGRPZGp6REphSFRpK21Fa1dZdUx1UXhJczZNVTYwMlNMZmZa?=
 =?utf-8?B?dzNITEJnQW9lNGRFV2U5c2o3elF2V09BeExFR1Y1b0VwRXFNWjBtckh6ZXAz?=
 =?utf-8?B?R3VrT2FtdStoOEZxZDYvbVRYTkRIVkMrbXJmcTRaWkJpUHdPN2twY1FsQkRa?=
 =?utf-8?B?VWVLbFdpOEQrY3dGdWo1TTJyYXV3RzFhR1ZCbFdOM3RiTGx4NGRLeDJlMTQy?=
 =?utf-8?B?VXpVWEtoSXpqZStvRFdYTXZsUi82ayt2VHBwUHFmOGFiaWpqMmw0UGNEMmtm?=
 =?utf-8?B?MlN0cTYwL3V5V0I0R2tFL0xtZC83UHFqcEQyT1hreEZyZWR2cU1HSjJBY2t0?=
 =?utf-8?B?R1p1Tmg5UnR2ZFE2Q2UxcEpEc0VMQW55K1lid3dGUURLN28rS1kxUmtpWVZJ?=
 =?utf-8?B?aW40VXBsSHk3dXFGdGc1K3pWeXRSdWxlTDcvRy9VU2JINkRVcVRtRTJkcnRT?=
 =?utf-8?B?clFLenlBZ1ZoL2hZdXRGT0NYYnN0Nm9Ud09GVTc2YnRrY3cyVEFPVS95dHM2?=
 =?utf-8?B?dzJSaWhhU0QvRkp4Ny94SENWcVZTaERxdTNxbXJXSXY5cXA3Skx3VkpZRVll?=
 =?utf-8?B?dXRxbmM2TEo2VHVWcGFHSUo5MSs2T1NDb2poOGtlRURsMkxnTG1IV3BiS3Iz?=
 =?utf-8?B?K1VyNmZZT1RTMndDM0JEWUFrcmlRclVCcktSY2NwUUJDSjhFVWxTMVJ5bkxH?=
 =?utf-8?B?aUZoeEpMc1NNRVViNU5aalVEdFMzd2p3RW9nOVJkMnZmT203ZEVjclBiZFgv?=
 =?utf-8?B?WDdsMEN2SXN4T1JxZ2NIYzdSTzFQbGM5bzI0UFVuMUJ6Uk4ySnlCcUJYSTVs?=
 =?utf-8?B?OVVqbVBCV3VybDV0NXR6WGxlakRKK2dUMFl2RjZoRVhrSTNmKzFVR3FYSVlI?=
 =?utf-8?B?ZEx4Z2QwWEdXTUhvRm12eVhqNG16SllsN0JRWEprQmw0Z0w0ZEZBKzI1djZQ?=
 =?utf-8?B?SHdLT3ZHek80WEdGd3BjRXkzUC9oalRQVTJEQnRWaTNoUWZURVhBaWdDcWlX?=
 =?utf-8?B?QkhXYjh5eDJSdFFvV1F6cVJiUDZXL3U3UkgzUC9tcmxsK3pBTWFRbGg0elVq?=
 =?utf-8?B?Rk5sVDdaWjJnVGlpeFZ4a0pzK1pMaFJncHQ1ZDY1ZDJDbVJaUW0yeTlJWVFC?=
 =?utf-8?B?dnJOQ2JjUjRVUGYwckRZTSt4aXZleDRCWmZ5MW5vQ1lRTHRJb2xPNjRlM3NF?=
 =?utf-8?B?Z2EyMGhsS0ZkaUJVMHpvU2NFanc2RHlnYUl1akdYby9Lc0o4SHd4TytPWWhK?=
 =?utf-8?B?QWJPT2RPMjlNWWhFSElLSFNJeEhVS0dRYmNVRmhtUEtoZkRlUVdDUFFSUStR?=
 =?utf-8?B?Ty9CMWlKNVllNm1HMkt0a1p6cm9EU2lFeFpWWnB0MlM0ejkzZXZBNXNlcXV4?=
 =?utf-8?B?Z21YelJNb21DaFNyV0txbWdQY2wvcEx5ZU1weHJlQm9FelR2S0MvM1BuRm5T?=
 =?utf-8?B?WlpsUVY4OXRzaWZGRyt4UFFTRE9LMWxGc3F6R0ZHNEVqTU80eTNtaUZzZDYx?=
 =?utf-8?B?cUFtRUlKc2ZlNXVUWUhEV2Rhc3UwcXVtNVVleUdFZDhtUWZ4UDZORXRFT0dQ?=
 =?utf-8?B?YVRpSmxqbm54dDBlMjdNR0ZzbWtTelhIaEVQaUxVdDdrU3dDR3FCSDVqck9i?=
 =?utf-8?B?UjFISFBPNmt1YzE3em5keTgyMjNPOHVlcndwOEtiTU1UQTRzWmF5TjE1VnRk?=
 =?utf-8?B?ZjdVNXErWTAwOVNwQWQwRDEreTU0MzFJTDg2WURrcTIrWGhxZnQxOHllbnZJ?=
 =?utf-8?Q?wvoE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZlkrYTBvQ3dFbjRYQ0Y5aXQvUVNOaTM0MnY4NnJ2MjNOMUEyekNML0hKZDZk?=
 =?utf-8?B?dm5pKzlJcHVLNE1MYkpaWWhrT0J3amYwTmtXc3NyRDEwWHV3VDA2RjI3V2Ry?=
 =?utf-8?B?Skxpd0dmOUsyemVRQy9ua3BuZ3lqR0JXQUtYTFlXRTVjbEcvOG5QOFVCYlZw?=
 =?utf-8?B?Q3JBd2o3NmZtK2pKMW9SMWZpSUtFQWlJSURTbmQ2RzdtOTJjWHRsWU9TUFRV?=
 =?utf-8?B?OXk0VEZITENreG5sbGUwUXR1MXVYZ2JrYmc5Ym1XUU9pN3IzYzFWR1NaRzlC?=
 =?utf-8?B?WnlReXAzZ052azRDb1pVWDVmT3JsZWJVRTFZeDBqbDFNUDZMbUhUcEc2Q0lJ?=
 =?utf-8?B?L2RSUktzQWN6MEo5TGIyREJ5VnlTNHlUTm5zZEhSMDF5VGd0RkFNR2N4cmd5?=
 =?utf-8?B?cUp2dWdwN0dsblZ6cWlUOGZjQ29qczdTcndBVnc0VmovYWtJNmkwaTZEbXpa?=
 =?utf-8?B?S2psNlNJeWtuUks1MW1qVmxibXdBYkhZTHEzR0Q3TjZsbkVCMnVKM051U0NG?=
 =?utf-8?B?eWIyQllZZEY0alJRZkxFeGNzQ243NjlFZFhNZ2ZUYVFhVm5HWlE1OVBhQnJO?=
 =?utf-8?B?NFB4QXRBczVFOUcvWG5jNnFmV29jbG16UTdVUFZUWnZDUzg0VGRHS0VJT3BL?=
 =?utf-8?B?ZmtpaUhRK2ovTmE2OEVPNCtkQWlDWjZqbkFoem9mNWRaMUU4R244MzZtVmFk?=
 =?utf-8?B?aW5ocjRvTElXTDlwMUJFMWdHYkZJN1RRZzVhTmNwR1hPeHRWVmJ3Nm9WbC9Z?=
 =?utf-8?B?YmU0ZzRhWHFpK1ViRVdienFNQjRpS0FEZlRVK0xGdldJcFR0VU1yeGNuWmh6?=
 =?utf-8?B?clV2bW5LSlUzSTRQVnRPNU5OaUxGTDJoWDZjSUpnYTEzQ0lUYXp4RlZ1U3Zy?=
 =?utf-8?B?ZmFkNmJXczViRTFtUHVuWktEWk5JWW1ucVN0d3NaR25Ld2ZFdFJTc0hiNU5s?=
 =?utf-8?B?eUJLRm9MY1RPNHArcHNHZ1dlZlpRUGpzOG9lNThiRzdJQ1lIVFhQNUp1OVRq?=
 =?utf-8?B?K3JRRXM3dExKMzhkTmdVQ0RRLzdIM0FuOGZ3TVF4eTlRZU5HYnpvYmhGditX?=
 =?utf-8?B?M3pzQlBJaFpRRFcrNTdFdzc2VHlHVkE3REFWOWhVd25ZN2o5VmpIM1FTV3g3?=
 =?utf-8?B?Uzhxa2J0RnBqQmh2WDRzdzJIZVdXYW16Q0hJWmJoRllncGVuVnFKSUIzZHZt?=
 =?utf-8?B?NzU2UUc2dHd0R2xiSUFvS000c3NHaHR4dXFwYi9SNVN0S2dtMzNNb1RRUTRn?=
 =?utf-8?B?aUZMWEI1OW5kVXR6alVVbit4ejc0Y2FNWmtDTWNkNnRSY0oxcUZFUlpaNFRG?=
 =?utf-8?B?Mis3Q0dmamk5WEU0MjhwNmZGUzdTUmtJOWo5ejkzUTA0Z1dzQmFWcUJ3SlpV?=
 =?utf-8?B?RTcyakVXM3dJbnJtbndBYkRvdHBqVkl6QXphRlFqUWdVK3V0MVFxUVJlNGt5?=
 =?utf-8?B?Z1FINVJJb1pGMktROW92UEhDQ292dEdXUS81RDZhWjZleHdmaWEydS9LSXlB?=
 =?utf-8?B?QVpNREhnTk5Ba2NGVWNvcEVUTkJqSHM0VGRmZWtOUk1lV0VzSU1KQnRodzdX?=
 =?utf-8?B?WUlxM04rekFoVFYxYnMyRTN5L1BQV1liUi9OeUgrYUxpVTVlem9zcG1uRmVM?=
 =?utf-8?B?RUtWTlR4bUs2ZHd0eW9MbTBHY2oxOVNWdTV3eURiRlFXMjdYSG1uS2h3aGhE?=
 =?utf-8?B?M1NGeEdJci9tOTRCNWZ4ek9qYnYzMmVJL2NMQlBXaW9Lck81N3pxTlJCVDFa?=
 =?utf-8?B?aTRENElTblR5dnE3M2xpVENwb0FoalN0R2Y0RUVzMkdzRGdIOWdTZXBIOWJo?=
 =?utf-8?B?Z3ByQUVtK2hCKzhsa1lFUnRPT0loZ3U1TnA0MXZJZ2J1MCttblFOa3pPa01y?=
 =?utf-8?B?OVhjWU51OGNSNVFNcjg0WldrTldMRWlvOXNKS1F6WE16RWtleHl0UXBtdEsw?=
 =?utf-8?B?RTh2TDBNaXhaYzEyQndydElPakVRQjdCTEM1ZkhUSWZ3TFBaTDdHZUFadTN3?=
 =?utf-8?B?ODJRdFkyRkpkazFFWXFJRFBOYnl6T2RMVXRwTzc1eVJlK0NNTm92ZDFnNjRa?=
 =?utf-8?B?TWJBM2U2aW81enB4dXhrNEs3Y2VjaHpueTgwYXoxbUwxSGVZMUdWVythQ2Fw?=
 =?utf-8?B?MWpVaGxvc2lqM0g0MEU0Kzg3K202QmVobG95d1B6M2lWbXBsUmJNcitFTjE0?=
 =?utf-8?B?WWhIa3FLNkRIRGNES0p0SkEweUZ6UjduVndNVmtvQmRuVklBMkZZU1RDMDJz?=
 =?utf-8?B?UU5IUk5POXBQanlMRmwxTE00UkRGSVRVNlNacm9mTXBCMSs0amFNeEo3Mmla?=
 =?utf-8?B?Yk04NTg0SlZjd1UwZEQvblNnMVM0T0I4UHRicE5rZU1VWjNwRjMydz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1ae9e7cf-d6c6-41c6-2abd-08de6806b9a8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2026 18:12:02.8695
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uea398+L3Rp4o6wSyupVVZCaHCt4OSf/gH6bhxy8sBUXQL0sLuP8/hszIkSjUNA/yZktb/v7T8OzQMeuo9XRTawSDR4X9k9BI3o+yxNEJ68=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5405

On 06/02/2026 3:53 pm, Abdelkareem@tibco.com wrote:
> Abdelkareem Abdelsaamad (3):
>   svm/vnmi: introduce the vnmi bit support in the cpuid feature set
>   svm/vnmi: add the definitions for the svm vnmi management bits in the
>     VMCB
>   svm/vnmi: Add support for the SVM Virtual NMI
>
>  xen/arch/x86/hvm/hvm.c             | 29 +++++++++++++++++++++--------
>  xen/arch/x86/hvm/svm/intr.c        | 16 ++++++++++++++--
>  xen/arch/x86/hvm/svm/svm.c         | 25 ++++++++++++++++++++++++-
>  xen/arch/x86/hvm/svm/vmcb.c        |  3 +++
>  xen/arch/x86/hvm/svm/vmcb.h        | 12 ++++++++----
>  xen/arch/x86/include/asm/hvm/hvm.h | 12 +++++++++++-
>  xen/arch/x86/include/asm/hvm/svm.h |  2 ++
>  7 files changed, 83 insertions(+), 16 deletions(-)

Patches 1 and 2 want merging.  They're both enumerations and
configuration bits, although the very first hunk of patch 1 (the P())
wants delaying until the final patch; we shouldn't print out the
capability until it's being used.

The patch subjects want to be:

    x86/svm: Enumerations for virtual NMI
and
    x86/svm: Use virtual NMI when available


Everything here is local to SVM.  Notably there should be no edits to
hvm.c or hvm.h.  By introducing hvm_intblk_vnmi, you break NMI injection
in other cases.  vNMI is just a hardware-optimised way of handling the
hvm_intblk_nmi_iret case.



svm_inject_nmi() wants to gain a check to see whether vNMI is enabled,
and in the case that it is, simply set vnmi_pending.  You have this
partially, but it needs to be dependent on the VMCB vNMI setting, not
some global idea of enablement.

svm_get_interrupt_shadow() needs a similar adjustment to read
vnmi_blocked rather than unconditionally depending on INTERCEPT_IRET.

In construct_vmcb(), you need to check cpu_has_svm_vnmi.  I think this
change is simple enough to be enabled unconditionally.  (We'll need to
change this in due course, but that's going to take other infrastructure
which we don't have yet.)

I think that's everything that needs altering.


A couple of other minor notes:

In the vintr_t union, use an anonymous 3 bit field (literally "u64 :3;",
which is valid syntax) instead of renumbering the rsvd$N fields.  That
will shrink the diff.

Xen's style has spaces inside the outermost brackets for control
structures, and {'s on new lines.  For the functions you're modifying,
just copy the surrounding style.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 20:47:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 20:47:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1225997.1532576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpY9o-0006vS-CY; Mon, 09 Feb 2026 20:46:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1225997.1532576; Mon, 09 Feb 2026 20:46: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 1vpY9o-0006vL-99; Mon, 09 Feb 2026 20:46:56 +0000
Received: by outflank-mailman (input) for mailman id 1225997;
 Mon, 09 Feb 2026 20:46: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=/uJQ=AN=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vpY9m-0006uu-9l
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 20:46:54 +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 7587846e-05f8-11f1-b162-2bf370ae4941;
 Mon, 09 Feb 2026 21:46:51 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 341FFEC00AE;
 Mon,  9 Feb 2026 15:46:50 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-04.internal (MEProxy); Mon, 09 Feb 2026 15:46:50 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon,
 9 Feb 2026 15:46:48 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7587846e-05f8-11f1-b162-2bf370ae4941
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=1770670010;
	 x=1770756410; bh=KUf8dHESCwGRXDGc8BvIy9z73QNSXOuARFg+gAz4Mx4=; b=
	OiLuPVEIRij+SJAWrHqjDdRiCFIxlcP94+09Fuhn3wRU12D0hkf9zIpRNO4KMFv5
	Ix2nBTdlC9nBp+pfQjGcUPtXPm2GM/mi0r7d6Qnv1Za/bSdmHe2i96ND2a/78XnK
	rU6C0TmRl/miGd/KHZLGbkqOArephT2N7RwaA5jI2dmPUR8flivErxUXMmFoA15O
	j4/s/L9y16fzpMjGe0hN/15AOJmBA2Tzj0fyD6YkLZuQHJ4aL4GYbl+ozTmpmrKu
	WQRqfyyEdHOjAcZZD/FYRcZMtcpv5M6N6poEURF5hylErPbuiyy7EVO2HozIcgVA
	HBm7HmVa11bkSi7A8pqmag==
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=
	1770670010; x=1770756410; bh=KUf8dHESCwGRXDGc8BvIy9z73QNSXOuARFg
	+gAz4Mx4=; b=BsG9NwH2O2hsC3X3U8QSHYqcPIoAi6gQ6y7PyHaJpUCJLhuIZx8
	xo27d6Ie09nP/MEVUVaWHxIldNCmCqN4avwWDtrvWxUq883j77it1m4D0GUbsmc/
	xJfP4Kxr2rvQsNCNpIvFWNwQ8MUsVnJcl6t2j709kmlAYYeTTNIcf+QdT/knzTol
	zlx029vUZwJAaFcgFYZGC7+o+DDOzl4e2NTHUmywQSDIQwxBFhxi+o10Fn4SNixp
	DtQpzvoSGjdzxFgTmXk6nhzLIj+O+FZT2J1LShVikOjGisI0Y6NfMZkIcfoNbwh2
	RsAkQDOBPuRcCpbEHXSy3d2VgERXro1JM/A==
X-ME-Sender: <xms:uUeKabmjZYYwSUNIh1tHvDCFWkvS9Nd87L8WbmaOymjo1KFjEbhZsw>
    <xme:uUeKaa3posc17X-YabcThBjYvdIYOAof5t1XfiqegCle4QZjJBLNSPu91TM4ej_7n
    O9zbHVVigy6768Es7EY8i7Ybx4boH_O5cvvK1mxtcIivrm80g>
X-ME-Received: <xmr:uUeKaT09jlL3ZaIPj_7BE-oNROztHMALiJIXduNw1IKayjRLTdHt9fcPTGSweXbyBbf1l_CETof02WnK4hhkToDW8kS4DZ-nCgw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdduleejkeduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepvefhleei
    feejgfeiueeugeefvdekfeffjeetudehudeiudegfeelveelueeiueegnecuffhomhgrih
    hnpehkvghrnhgvlhdrohhrghdpghhithhhuhgsrdgtohhmpdhnvghtfihorhhkrdhphidp
    qhhusggvshdqohhsrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpe
    hmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgr
    sgdrtghomhdpnhgspghrtghpthhtohepkedpmhhouggvpehsmhhtphhouhhtpdhrtghpth
    htohepjhhgrhhoshhssehsuhhsvgdrtghomhdprhgtphhtthhopehlihhnuhigqdhkvghr
    nhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehsshhtrggsvghllh
    hinhhisehkvghrnhgvlhdrohhrghdprhgtphhtthhopeholhgvkhhsrghnughrpghthihs
    hhgthhgvnhhkohesvghprghmrdgtohhmpdhrtghpthhtohepjhhirghnghdrphgvnhhgle
    esiihtvgdrtghomhdrtghnpdhrtghpthhtoheptghhvghnqhhiuhhjiheiieeisehgmhgr
    ihhlrdgtohhmpdhrtghpthhtohepjhgrshhonhdrrghnughrhihukhesrghmugdrtghomh
    dprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdr
    ohhrgh
X-ME-Proxy: <xmx:uUeKaUrBhH7botie_RuVmuytTE0W-zbOOQO2bPmweelOn9OJC4Yxzw>
    <xmx:uUeKaXidhAfYIKbFOI7Hn3jw5GKoRe3GYG8T9OuIulYAC7FcbD9XWA>
    <xmx:uUeKaY-RHaHLguQmyiRTi8nuN6V98X0ZxTN7rMNfWUmlVkpBhgRGfQ>
    <xmx:uUeKabWjsd1rGIYrUWwwHK11LCKJHtcLGEl-rMGxwkEKwy2HU8c0Pw>
    <xmx:ukeKadJrH0yJqqHQWwFLLaxy8HA17Kd_fcxiBdwpud2EiIDughYsNAiw>
Feedback-ID: i1568416f:Fastmail
Date: Mon, 9 Feb 2026 21:46:46 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Peng Jiang <jiang.peng9@zte.com.cn>,
	Qiu-ji Chen <chenqiuji666@gmail.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"moderated list:XEN HYPERVISOR INTERFACE" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/xenbus: better handle backend crash
Message-ID: <aYpHth_TvtA8hg4J@mail-itl>
References: <20251102032105.772670-1-marmarek@invisiblethingslab.com>
 <e6ab32d7-b1eb-428b-95e8-a90f7b3be39c@suse.com>
 <261c3ced-7f40-4c2f-93da-0e020f9bcf3a@suse.com>
 <e1060ba2-7985-4e80-9d84-fb738758e3b3@suse.com>
 <aYYdgXMKnMCfXob7@mail-itl>
 <abd6f188-4c5e-4e56-9dbf-3bc942622b6f@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Wio1BjPJwyTU119d"
Content-Disposition: inline
In-Reply-To: <abd6f188-4c5e-4e56-9dbf-3bc942622b6f@suse.com>


--Wio1BjPJwyTU119d
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Mon, 9 Feb 2026 21:46:46 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: =?utf-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Peng Jiang <jiang.peng9@zte.com.cn>,
	Qiu-ji Chen <chenqiuji666@gmail.com>,
	Jason Andryuk <jason.andryuk@amd.com>,
	"moderated list:XEN HYPERVISOR INTERFACE" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/xenbus: better handle backend crash

On Mon, Feb 09, 2026 at 10:02:28AM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> On 06.02.26 17:57, Marek Marczykowski-G=C3=B3recki wrote:
> > On Thu, Jan 29, 2026 at 08:02:35AM +0100, J=C3=BCrgen Gro=C3=9F wrote:
> > > On 26.01.26 08:08, J=C3=BCrgen Gro=C3=9F wrote:
> > > > On 17.11.25 12:06, J=C3=BCrgen Gro=C3=9F wrote:
> > > > > On 02.11.25 04:20, Marek Marczykowski-G=C3=B3recki wrote:
> > > > > > When the backend domain crashes, coordinated device cleanup is =
not
> > > > > > possible (as it involves waiting for the backend state change).=
 In that
> > > > > > case, toolstack forcefully removes frontend xenstore entries.
> > > > > > xenbus_dev_changed() handles this case, and triggers device cle=
anup.
> > > > > > It's possible that toolstack manages to connect new device in t=
hat
> > > > > > place, before xenbus_dev_changed() notices the old one is missi=
ng. If
> > > > > > that happens, new one won't be probed and will forever remain in
> > > > > > XenbusStateInitialising.
> > > > > >=20
> > > > > > Fix this by checking backend-id and if it changes, consider it
> > > > > > unplug+plug operation. It's important that cleanup on such unpl=
ug
> > > > > > doesn't modify xenstore entries (especially the "state" key) as=
 it
> > > > > > belong to the new device to be probed - changing it would derail
> > > > > > establishing connection to the new backend (most likely, closin=
g the
> > > > > > device before it was even connected). Handle this case by setti=
ng new
> > > > > > xenbus_device->vanished flag to true, and check it before chang=
ing state
> > > > > > entry.
> > > > > >=20
> > > > > > And even if xenbus_dev_changed() correctly detects the device w=
as
> > > > > > forcefully removed, the cleanup handling is still racy. Since t=
his whole
> > > > > > handling doesn't happend in a single xenstore transaction, it's=
 possible
> > > > > > that toolstack might put a new device there already. Avoid re-c=
reating
> > > > > > the state key (which in the case of loosing the race would actu=
ally
> > > > > > close newly attached device).
> > > > > >=20
> > > > > > The problem does not apply to frontend domain crash, as this ca=
se
> > > > > > involves coordinated cleanup.
> > > > > >=20
> > > > > > Problem originally reported at
> > > > > > https://lore.kernel.org/xen-devel/aOZvivyZ9YhVWDLN@mail-itl/T/#=
t,
> > > > > > including reproduction steps.
> > > > > >=20
> > > > > > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisi=
blethingslab.com>
> > > > >=20
> > > > > Sorry I didn't get earlier to this.
> > > > >=20
> > > > > My main problem with this patch is that it is basically just pape=
ring over
> > > > > a more general problem.
> > > > >=20
> > > > > You are just making the problem much more improbable, but not imp=
ossible to
> > > > > occur again. In case the new driver domain has the same domid as =
the old one
> > > > > you can still have the same race.
> > > > >=20
> > > > > The clean way to handle that would be to add a unique Id in Xenst=
ore to each
> > > > > device on the backend side, which can be tested on the frontend s=
ide to
> > > > > match. In case it doesn't match, an old device with the same kind=
 and devid
> > > > > can be cleaned up.
> > > > >=20
> > > > > The unique Id would obviously need to be set by the Xen tools ins=
ide the
> > > > > transaction writing the initial backend Xenstore nodes, as doing =
that from
> > > > > the backend would add another potential ambiguity by the driver d=
omain
> > > > > choosing the same unique id as the previous one did.
> > > > >=20
> > > > > The question is whether something like your patch should be used =
as a
> > > > > fallback in case there is no unique Id on the backend side of the=
 device
> > > > > due to a too old Xen version.
> > > >=20
> > > > I think I have found a solution which is much more simple, as it do=
esn't
> > > > need any change of the protocol or any addition of new identifiers.
> > > >=20
> > > > When creating a new PV device, Xen tools will always write all gene=
ric
> > > > frontend- and backend-nodes. This includes the frontend state, whic=
h is
> > > > initialized as XenbusStateInitialising.
> > > >=20
> > > > The Linux kernel's xenbus driver is already storing the last known =
state
> > > > of a xenbus device in struct xenbus_device. When changing the state=
, the
> > > > xenbus driver is even reading the state from Xenstore (even if only=
 for
> > > > making sure the path is still existing). So all what is needed is t=
o check,
> > > > whether the read current state is matching the locally saved state.=
 If it
> > > > is not matching AND the read state is XenbusStateInitialising, you =
can be
> > > > sure that the backend has been replaced.
> > > >=20
> > > > Handling this will need to check the return value of xenbus_switch_=
state()
> > > > in all related drivers, but this is just a more or less mechanical =
change.
> > > >=20
> > > > I'll prepare a patch series for that.
> > >=20
> > > In the end the result is more like your patch, avoiding the need to m=
odify
> > > all drivers.
> > >=20
> > > I just added my idea to your patch and modified some of your code to =
be more
> > > simple. I _think_ I have covered all possible scenarios now, resultin=
g in
> > > the need to keep the backend id check in case the backend died during=
 the
> > > early init phase of the device.
> > >=20
> > > Could you please verify the attached patch is working for you?
> >=20
> > Thanks for the patch!
> >=20
> > I ran it through relevant tests, and I got inconsistent results.
> > Specifically, sometimes, the domU hangs (actually, just one vCPU spins
> > inside xenwatch thread). Last console messages are:
> >=20
> >      systemd[626]: Starting dconf.service - User preferences database...
> >      gnome-keyring-daemon[975]: =E2=90=9B[0;1;39mcouldn't access contro=
l socket: /run/user/1000/keyring/control: No such file or directory=E2=90=
=9B[0m
> >      gnome-keyring-daemon[975]: =E2=90=9B[0;1;38:5:185mdiscover_other_d=
aemon: 0=E2=90=9B[0m
> >      xen vif-0: xenbus: state reset occurred, reconnecting
> >      gnome-keyring-daemon[974]: =E2=90=9B[0;1;39mcouldn't access contro=
l socket: /run/user/1000/keyring/control: No such file or directory=E2=90=
=9B[0m
> >      gnome-keyring-daemon[976]: =E2=90=9B[0;1;39mcouldn't access contro=
l socket: /run/user/1000/keyring/control: No such file or directory=E2=90=
=9B[0m
> >      gnome-keyring-daemon[976]: =E2=90=9B[0;1;38:5:185mdiscover_other_d=
aemon: 0=E2=90=9B[0m
> >      gnome-keyring-daemon[974]: =E2=90=9B[0;1;38:5:185mdiscover_other_d=
aemon: 0=E2=90=9B[0m
> >      xen vif-0: xenbus: state reset occurred, reconnecting
> >      systemd[626]: Started dconf.service - User preferences database.
> >      xen_netfront: Initialising Xen virtual ethernet driver
> >      vif vif-0: xenbus: state reset occurred, reconnecting
> >=20
> > And the call trace of the spinning xenwatch thread is:
> >=20
> >      task:xenwatch        state:D stack:0     pid:64    tgid:64    ppid=
:2      task_flags:0x288040 flags:0x00080000
> >      Call Trace:
> >       <TASK>
> >       __schedule+0x2f3/0x780
> >       schedule+0x27/0x80
> >       xs_wait_for_reply+0xab/0x1f0
> >       ? __pfx_autoremove_wake_function+0x10/0x10
> >       xs_talkv+0xec/0x200
> >       xs_single+0x4a/0x70
> >       xenbus_gather+0xe4/0x1a0
> >       xenbus_read_driver_state+0x42/0x70
> >       xennet_bus_close+0x113/0x2c0 [xen_netfront]
> >       ? __pfx_autoremove_wake_function+0x10/0x10
> >       xennet_remove+0x16/0x80 [xen_netfront]
> >       xenbus_dev_remove+0x71/0xf0
> >       device_release_driver_internal+0x19c/0x200
> >       bus_remove_device+0xc6/0x130
> >       device_del+0x160/0x3e0
> >       device_unregister+0x17/0x60
> >       xenbus_dev_changed.cold+0x5e/0x6b
> >       ? __pfx_xenwatch_thread+0x10/0x10
> >       xenwatch_thread+0x92/0x1c0
> >       ? __pfx_autoremove_wake_function+0x10/0x10
> >       kthread+0xfc/0x240
> >       ? __pfx_kthread+0x10/0x10
> >       ret_from_fork+0xf5/0x110
> >       ? __pfx_kthread+0x10/0x10
> >       ret_from_fork_asm+0x1a/0x30
> >       </TASK>
> >      task:xenbus          state:S stack:0     pid:63    tgid:63    ppid=
:2      task_flags:0x208040 flags:0x00080000
> >      Call Trace:
> >       <TASK>
> >       __schedule+0x2f3/0x780
> >       ? __pfx_xenbus_thread+0x10/0x10
> >       schedule+0x27/0x80
> >       xenbus_thread+0x1a8/0x200
> >       ? __pfx_autoremove_wake_function+0x10/0x10
> >       kthread+0xfc/0x240
> >       ? __pfx_kthread+0x10/0x10
> >       ret_from_fork+0xf5/0x110
> >       ? __pfx_kthread+0x10/0x10
> >       ret_from_fork_asm+0x1a/0x30
> >       </TASK>
> >=20
> > (technically, `top` says it's the xenbus thread spinning, but it looks
> > like the actual issue is in xenwatch one)
> >=20
> > Note that other xenwatch actions in this domU are not executed, for
> > example `xl sysrq` does nothing. Not surprising, given xenwatch thread
> > is busy... Fortunately, it blocks only a single vCPU, so I'm able to
> > interact with the domU over console (to get the above traces).
> >=20
> > It isn't a reliable failure, in this test run it failed once, out of 4
> > related tests.
> >=20
> > The specific test is: https://github.com/QubesOS/qubes-core-admin/blob/=
main/qubes/tests/integ/network.py#L234
> > In short:
> > 1. Start a domU
> > 2. Pause it
> > 3. Attach network (backend is !=3D dom0)
> > 4. Unpause
> >=20
> > TBH, I'm not sure why the "state reset occurred" message is triggered at
> > all, I think it shouldn't be in this case...
> >=20
>=20
> Second try.

This time it's green: https://openqa.qubes-os.org/tests/166851 :)
You can treat it as T-by tag.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmKR7YACgkQ24/THMrX
1yx6Zwf/Vg7p6rojPha934MdDVbWbu9+dqgnuc8BcDish1Vk5IDYjJSXTPsdjCQh
C3ihtGcIRJFSyoxABnERRjSZ60lk4Nl4xsBrnWl/+4pIsAn6U8tEs87dYkK2RywS
BAxViQ7OPmEku+cyqWwQVXGN+j/s4nMCnLcmMTuk4PFbW4SkNln68MRTdiRw1i34
oSSL10uS/KihVLspBayzKPRKQQBYyMJURNw86bErv3xLoG0K2bNmH6HxJjh3DXQs
jsjTrfHScNUbNgX6Q+Pj8LS3e2B/ERIbk+p09LsfWwgqqf532EW+Ktlo0ZZil+U4
rq9G1pnidgnLyqSqTUDghINWA8y4Yg==
=TyC6
-----END PGP SIGNATURE-----

--Wio1BjPJwyTU119d--


From xen-devel-bounces@lists.xenproject.org Mon Feb 09 23:23:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 09 Feb 2026 23:23:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226024.1532586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpab8-0008VH-W5; Mon, 09 Feb 2026 23:23:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226024.1532586; Mon, 09 Feb 2026 23: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 1vpab8-0008V9-RJ; Mon, 09 Feb 2026 23:23:18 +0000
Received: by outflank-mailman (input) for mailman id 1226024;
 Mon, 09 Feb 2026 23:23: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=74qY=AN=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vpab7-0008V3-P6
 for xen-devel@lists.xenproject.org; Mon, 09 Feb 2026 23:23: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 4e025aff-060e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 00:23:14 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id C07E460008;
 Mon,  9 Feb 2026 23:23:12 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16A8BC116C6;
 Mon,  9 Feb 2026 23:23: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: 4e025aff-060e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770679392;
	bh=hN4f9pbOLQxB9dajd1xH/ubGDR3mYFCXUYLzi5PXPGY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=fM3Gx1E8Ch+SyrTuQ4FDSLA75Z6G9IJ4ZCWitj7MrrG9N2hOpa9rwCx1DsnqEgPvI
	 sVOPC5jvsXm9LUtySqbCRhvccYZuRLL+2t0r7YXLWNvhd9GBqU/YoE3xNy6E8GCgLZ
	 5kaPVgPypqQclnj723yWFac8DFa9sDk8HHIEiLvb7GvBKZX+8XDSC9+dCxW2PBqGCN
	 1x3J1zoFc+/ofX4fIJ/Bclu+dcYuty/jdvtnmBruVzziEhKjXGUcxRvFHiBwMwF5Al
	 j1VfdFdBQeQ+WltlIRfLs/BBKsD6fbmg4Za8E+H3g+s+GVGzZNaaBKcwv1AHm27b10
	 hEYz69WH6azcA==
Date: Mon, 9 Feb 2026 15:23:02 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    grygorii_strashko@epam.com, anthony.perard@vates.tech, 
    michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com, 
    jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com, 
    sstabellini@kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
In-Reply-To: <82c06e52-1db0-46e5-be9f-7ca0360ffc70@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602091520460.1134401@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop> <20260204233712.3396752-2-stefano.stabellini@amd.com> <82c06e52-1db0-46e5-be9f-7ca0360ffc70@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, 9 Feb 2026, Jan Beulich wrote:
> On 05.02.2026 00:37, Stefano Stabellini wrote:
> > Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
> > global to VIRQ_DOMAIN to allow other domains to bind to it.
> > 
> > Note that Linux silently falls back to polling when binding fails, which
> > masks the issue.
> > 
> > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> Technically this is an ABI change, and hence I'm uncertain it can go without
> that aspect being at least mentioned, perhaps even its implications properly
> discussed.

I am not sure if it qualifies as an ABI change or not but I am happy to
expand the commit message in any way you might suggest.

The jist of it is already in the commit message, really the key element
is that VIRQ_CONSOLE can be bound by multiple domains.

Aside from spelling out "this is an ABI change" what do you have in
mind?


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 02:05:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 02:05:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226048.1532596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpd7n-0001rs-FI; Tue, 10 Feb 2026 02:05:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226048.1532596; Tue, 10 Feb 2026 02:05:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpd7n-0001rk-9l; Tue, 10 Feb 2026 02:05:11 +0000
Received: by outflank-mailman (input) for mailman id 1226048;
 Tue, 10 Feb 2026 02:05: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=X/Er=AO=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vpd7l-0001re-9X
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 02:05:09 +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 e9130a1c-0624-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 03:05:03 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B05214359C;
 Tue, 10 Feb 2026 02:05:01 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0579C116C6;
 Tue, 10 Feb 2026 02:05: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: e9130a1c-0624-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770689101;
	bh=LM97bjY8qg88mpoRk8lwuPzp3ZS80JpbUdkIf7gS4+c=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=pPsjZsePw9LJ3opomhquxJ0dJddIhsilYKzPpejm2N2rrXmJf+dEhNa0lNsRwF9p4
	 5z/xnGojdSVqIhZZ2waQUiKd3JX8ZuQaMAxetOOfvrovPmXzyG1MhOc9r75m1JT4OV
	 pftOdwxMgo1vgVJ8gzIcPW/ObLR97K/QM4tZzguIelPs6bmIHbISM1Ghzjo6EAr7vr
	 97RAyQ8Uipe5ZmUPXQ7jMNyleITc38NCZ441K1bXZR2rG8/Y33VTuyxJ+PDLX1WhOe
	 ovIA7foxyBbjRU1POd/93srofk/yBgBM/UohYnayk1c+r5e0C3ZMj4IGCkX9qHUlgC
	 f1COcxU9EQ1gg==
Date: Mon, 9 Feb 2026 18:04:59 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, andrew.cooper3@citrix.com, 
    roger.pau@citrix.com, jason.andryuk@amd.com, 
    alejandro.garciavallejo@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
In-Reply-To: <42c248e7-9747-4281-9fca-1b9950a06bf8@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602091804541.1134401@ubuntu-linux-20-04-desktop>
References: <20260206233005.417233-1-stefano.stabellini@amd.com> <42c248e7-9747-4281-9fca-1b9950a06bf8@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, 9 Feb 2026, Jan Beulich wrote:
> On 07.02.2026 00:30, Stefano Stabellini wrote:> --- a/xen/common/Kconfig
> > +++ b/xen/common/Kconfig
> > @@ -652,7 +652,7 @@ endmenu
> >  
> >  config PM_OP
> >  	bool "Enable Performance Management Operation"
> > -	depends on ACPI && HAS_CPUFREQ && SYSCTL
> > +	depends on ACPI && CPUFREQ && SYSCTL
> >  	default y
> >  	help
> >  	  This option shall enable userspace performance management control
> > @@ -660,7 +660,7 @@ config PM_OP
> >  
> >  config PM_STATS
> >  	bool "Enable Performance Management Statistics"
> > -	depends on ACPI && HAS_CPUFREQ && SYSCTL
> > +	depends on ACPI && CPUFREQ && SYSCTL
> >  	default y
> >  	help
> >  	  Enable collection of performance management statistics to aid in
> 
> Is the original HAS_CPUFREQ misleading here? do_pm_op() (in pm-op.c) is also
> doing some C-state related work. You may not compile that out just because of
> CPUFREQ=n. Same for pmstat.c.

I managed to resolve this with little changes thanks to DCE


> > --- a/xen/drivers/cpufreq/Kconfig
> > +++ b/xen/drivers/cpufreq/Kconfig
> > @@ -1,3 +1,17 @@
> > -
> >  config HAS_CPUFREQ
> >  	bool
> > +
> > +config CPUFREQ
> > +	bool "CPU Frequency scaling"
> > +	default y
> > +	depends on HAS_CPUFREQ
> > +	help
> > +	  Enable CPU frequency scaling and power management governors.
> > +	  This allows Xen to dynamically adjust CPU P-states (performance
> > +	  states) based on system load.
> > +
> > +	  Disabling this option removes all cpufreq governors and power
> > +	  management interfaces. This is useful for real-time systems or
> > +	  minimal hypervisor builds.
> > +
> > +	  If unsure, say Y.
> 
> Looks like we're trying to get rid of such re-stating of what the default
> is.

OK


> > --- a/xen/include/acpi/cpufreq/cpufreq.h
> > +++ b/xen/include/acpi/cpufreq/cpufreq.h
> > @@ -381,8 +381,19 @@ int write_ondemand_up_threshold(unsigned int up_threshold);
> >  
> >  int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq);
> >  
> > +#ifdef CONFIG_CPUFREQ
> > +int  cpufreq_add_cpu(unsigned int cpu);
> > +int  cpufreq_del_cpu(unsigned int cpu);
> 
> If already you move these, please also get rid of the double blanks.

OK


> >  void cpufreq_dbs_timer_suspend(void);
> >  void cpufreq_dbs_timer_resume(void);
> > +#else
> > +static inline int  cpufreq_add_cpu(unsigned int cpu) { return -ENOSYS; }
> > +static inline int  cpufreq_del_cpu(unsigned int cpu) { return -ENOSYS; }
> 
> Here and below - no use of ENOSYS, please. EOPNOTSUPP it is everywhere else
> (unless dating back very far).

OK


> > --- a/xen/include/xen/acpi.h
> > +++ b/xen/include/xen/acpi.h
> > @@ -185,8 +185,14 @@ static inline unsigned int acpi_get_csubstate_limit(void) { return 0; }
> >  static inline void acpi_set_csubstate_limit(unsigned int new_limit) { return; }
> >  #endif
> >  
> > -#ifdef XEN_GUEST_HANDLE
> 
> If you leave this as-is, ...
> 
> > +#if defined(XEN_GUEST_HANDLE) && defined(CONFIG_CPUFREQ)
> >  int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32));
> > +#elif defined(XEN_GUEST_HANDLE)
> > +static inline int acpi_set_pdc_bits(unsigned int acpi_id,
> > +                                    XEN_GUEST_HANDLE(uint32) pdc)
> > +{
> > +    return -ENOSYS;
> > +}
> >  #endif
> 
> ... the overall result may be a tiny bit tidier.

OK


> > --- a/xen/include/xen/sched.h
> > +++ b/xen/include/xen/sched.h
> > @@ -1255,9 +1255,14 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
> >  extern bool sched_smt_power_savings;
> >  extern bool sched_disable_smt_switching;
> >  
> > -extern enum cpufreq_controller {
> > +enum cpufreq_controller {
> >      FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
> > -} cpufreq_controller;
> 
> This enum would better ...
> 
> > +};
> > +#ifdef CONFIG_CPUFREQ
> > +extern enum cpufreq_controller cpufreq_controller;
> 
> ... stay inside here, then also making the split of type and var decl unnecessary.
>
> The two affected platform-ops likely want compiling out, too.
 
I am not sure I understood your suggestion. If this is what you are
thinking about, it doesn't seem like an improvement.

diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1b431fc726..e8f5dfd473 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1255,13 +1255,15 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
 extern bool sched_smt_power_savings;
 extern bool sched_disable_smt_switching;
 
+#ifdef CONFIG_CPUFREQ
 enum cpufreq_controller {
     FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
 };
-#ifdef CONFIG_CPUFREQ
 extern enum cpufreq_controller cpufreq_controller;
 #else
-#define cpufreq_controller FREQCTL_none
+#define FREQCTL_none        0
+#define FREQCTL_dom0_kernel 1
+#define cpufreq_controller  FREQCTL_none
 #endif



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 05:09:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 05:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226065.1532606 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpfza-00067S-L6; Tue, 10 Feb 2026 05:08:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226065.1532606; Tue, 10 Feb 2026 05: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 1vpfza-00067J-Ff; Tue, 10 Feb 2026 05:08:54 +0000
Received: by outflank-mailman (input) for mailman id 1226065;
 Tue, 10 Feb 2026 05: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=wVxR=AO=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1vpfzZ-00066u-6k
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 05:08:53 +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 92d6c0b9-063e-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 06:08:45 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D4FA06013E;
 Tue, 10 Feb 2026 05:08:43 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B8DCC116C6;
 Tue, 10 Feb 2026 05:08:43 +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
 48168380AA5E; Tue, 10 Feb 2026 05:08: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: 92d6c0b9-063e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770700123;
	bh=EM6WIzd3Ikv4AEJNmBcx+mzXy3WzpK9Zspqs4PlJe9Q=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=V7nRWMEQ2FU1r3peQawqWqhbwzsWekeTV9PSjrF55AYkP04cwWDt97ENMZcp6+NTO
	 iSyoJEsbHY8UDdy6Ge0Yu7xM8JE4mWHgew7EV6cApfcni61buSxn9ELEXODQx9LHyV
	 DmRGyzg8rtKhaKNnhOMeZf6hvygYIxFpKnoxNKTX8FQiWn2Zckf+v4Yy8OSDHSoPkS
	 SB9WOMmlfWJ481o2SnzdEOX9a75voqtzqI+PPO/gSxzjSQbT+SQ1xVhDPKYHlQ9+RS
	 CgxWPdQdf+mMBIvIdslvRJQ9NktxV8d6iUx2fDTtwn6c7DQTTd1EaTv6bnCcMEjduc
	 hVDS1cvBa/+rQ==
Subject: Re: [GIT PULL] xen: branch for v7.0-rc1
From: pr-tracker-bot@kernel.org
In-Reply-To: <20260209065018.74473-1-jgross@suse.com>
References: <20260209065018.74473-1-jgross@suse.com>
X-PR-Tracked-List-Id: <linux-kernel.vger.kernel.org>
X-PR-Tracked-Message-Id: <20260209065018.74473-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc1-tag
X-PR-Tracked-Commit-Id: c307b6dc9c4f68d00524ec10899cdf21466b5c1e
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: 33120a2f8fc47f388506b7df1209bd5ac85dd584
Message-Id: <177070011886.3352335.14505383591657484674.pr-tracker-bot@kernel.org>
Date: Tue, 10 Feb 2026 05:08:38 +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 Mon,  9 Feb 2026 07:50:18 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc1-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/33120a2f8fc47f388506b7df1209bd5ac85dd584

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 07:48:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 07:48:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226076.1532615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpiTK-0008GX-Co; Tue, 10 Feb 2026 07:47:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226076.1532615; Tue, 10 Feb 2026 07:47: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 1vpiTK-0008GQ-9v; Tue, 10 Feb 2026 07:47:46 +0000
Received: by outflank-mailman (input) for mailman id 1226076;
 Tue, 10 Feb 2026 07:47: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpiTI-0008GJ-QR
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 07:47:44 +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 c6b53823-0654-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 08:47:40 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-47ee76e8656so7543705e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 09 Feb 2026 23:47:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b2ed9sm32667095f8f.5.2026.02.09.23.47.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 09 Feb 2026 23:47:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6b53823-0654-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770709660; x=1771314460; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Lj/kdMU95yIvIlb2e5Lipa6vut8jCioOSX3crbuoXFI=;
        b=CLYk8QIZUd3ipvpQMiMgBFMfm2C+tpWx5z7UQeLwN+eK9Bs7kBhWtXNFeYEsGAVb9K
         WQZa+nmIxiyp6bQZ7sHK/k1C+C5Rs+VqfQiiQfvsu90bWzGL596BUH2e8tk8oUCmNyDx
         guME/rxlS+Ry3u988OR29yv4m/egCeIH1tKMLIK8JCUVE/Ry4tf3J9AZH8JD1HXFMroL
         qAKK/iBSFAXERc+hZYB8tPygVCkuUt1rsFmUPafq3XZrcv4IaJYDb0zAsr/45DttqZqQ
         Mo4DcsVa6dri/scHFgTiVe/R2rdC2Dr4QVBEzQ+ulCT70P31svzK4whP6e2xup3KVVP4
         kQRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770709660; x=1771314460;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Lj/kdMU95yIvIlb2e5Lipa6vut8jCioOSX3crbuoXFI=;
        b=lvEJLRcwHmTUTj8NKdq6vscm9prdwm0ovFU4yqqnJuvQAQ3G44QKM374htXRUjJyyb
         7Lw2bKtv/5EGFy2FsrsoMQIlYLV/1RpbxzvlBuE6PS31zGPHHQCh7xoxNcnznWDY415M
         nFHPaXNZX4rOOW2W0ecWETBs0JVe1hlpPgZIYNHxxAEZUcrLB7j0TjhvE1j8CJfKAGHs
         GzgtUle8lLOTvLYw3DIoXB2kq8Zpp+xHiclXkflPgLAYRWDsCnzDgiijVuLUnFGUwRDW
         jqg93ucUdv5NpZ4OyZYxGhd1UBrsiMCpR4NiUcr7MpMbTCWYGHEgoUWoTOANUlmmJAsl
         HlOw==
X-Forwarded-Encrypted: i=1; AJvYcCUDuIK1V4OoNSE2D5PiRpsYMw8nRHlDxavDmNojadNkpmKNXNSmYAsGnt9fhY9raEPlPdX26Rn2Ahs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyCGyX1lIxfDVJ1XrBR2FB5rjfLmhNTZgpcE6SMNHLjdOITB/Kj
	wMY2fZl07xccGmyGbyLp62n20Hl9MM1QgQZ7/crfDfNdXDUWLkBf0f6EzBRunnOjFA==
X-Gm-Gg: AZuq6aIL2hxIVYBrogMWB+ysqieq1WozaHlznpzPTbhrIcEdH2ns7FhbUH9S+p74cYK
	8104ZCjJzjJYZdQk1u3gdqx/kAmSyOxEuzWixKxWkpm/7+W/+QvmDF1iKnhi3hGSpR+8d1XxeNX
	ut1VVGa/TALBI3hwX28/FDkhDisJ61KHu71FPn/gvW4VO/ejNxoEC5B4Rq/Hv8HlC/EqTSrJoPT
	qOB0WK5yUvW72CSX/N4ZDOPgcSEixU2i9sFei6Ze/MmKur/35SmzhbFUsHqO7YIuLAS0Png/2B1
	+hAd/7Lkear7LUbpGi4W5lWRAVgd6qlrQQhZiFKVKHu8zu0Ulc4c2QH6jPC5mOnZiz3Xl9NaVn2
	VDZ3StL9aApRrNnP//TTkNhdjSiXb3OTrbBdYGgjXkANIHX5U6j1oGIpqiY/JgFId6NB8inArXa
	SWGJCTuA6mweRVkLu6mGnp8VPO1PpOTozs5W7AUI34LCooyHSBaB5csnzDJynJ9uybJHAbp8tC9
	8lkZCMdnVtFTp9gGgAGO7VTAQ==
X-Received: by 2002:a05:600c:3590:b0:477:79c7:8994 with SMTP id 5b1f17b1804b1-48320236b01mr215371875e9.30.1770709660100;
        Mon, 09 Feb 2026 23:47:40 -0800 (PST)
Message-ID: <43e80ad6-7b42-42de-b36f-1a9079589912@suse.com>
Date: Tue, 10 Feb 2026 08:47:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
To: Stefano Stabellini <sstabellini@kernel.org>,
 Daniel Smith <dpsmith@apertussolutions.com>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 grygorii_strashko@epam.com, anthony.perard@vates.tech, michal.orzel@amd.com,
 julien@xen.org, roger.pau@citrix.com, jason.andryuk@amd.com,
 victorm.lira@amd.com, andrew.cooper3@citrix.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-2-stefano.stabellini@amd.com>
 <82c06e52-1db0-46e5-be9f-7ca0360ffc70@suse.com>
 <alpine.DEB.2.22.394.2602091520460.1134401@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.2602091520460.1134401@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.02.2026 00:23, Stefano Stabellini wrote:
> On Mon, 9 Feb 2026, Jan Beulich wrote:
>> On 05.02.2026 00:37, Stefano Stabellini wrote:
>>> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
>>> global to VIRQ_DOMAIN to allow other domains to bind to it.
>>>
>>> Note that Linux silently falls back to polling when binding fails, which
>>> masks the issue.
>>>
>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>
>> Technically this is an ABI change, and hence I'm uncertain it can go without
>> that aspect being at least mentioned, perhaps even its implications properly
>> discussed.
> 
> I am not sure if it qualifies as an ABI change or not but I am happy to
> expand the commit message in any way you might suggest.
> 
> The jist of it is already in the commit message, really the key element
> is that VIRQ_CONSOLE can be bound by multiple domains.
> 
> Aside from spelling out "this is an ABI change" what do you have in
> mind?

What I mean is discussion of the implications for domains using the vIRQ.
Previously most domains would have attempts to bind this vIRQ rejected.
Technically it is possible that kernels had code paths blindly doing the
binding, relying on it to work only when running as Dom0. And really, you
appear to break XEN_DOMCTL_set_virq_handler when used with VIRQ_CONSOLE,
without which its binding wasn't possible at all before (except for the
hardware domain, which get_global_virq_handler() falls back to when no
other domain is set). Or am I mis-reading things, as I can't spot any use
of VIRQ_CONSOLE under tools/, whereas I would have expected provisions
for (host) console handling to be delegated to a separate control or
console domain? Of course other toolstacks (the XAPI-based one for
example) might actually have such provisions.

And then there's the XSM question: XEN_DOMCTL_set_virq_handler obviously
is subject to XSM checking. The same isn't true for VIRQ_DOMAIN-type
vIRQ-s. Yet this vIRQ isn't supposed to be universally available to
every DomU. Instead the ->console->input_allowed checking is kind of
substituting such a check, which iirc Daniel said (in more general
context) shouldn't ever be done. IOW in patch 5 you're actually effecting
policy, which should be XSM's job aiui.

Bottom line: The patch may need to be more involved, but at the very
least the description would need updating to justify it being as simple
as it is right now.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 07:54:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 07:54:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226083.1532626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpiZo-0001Q7-1U; Tue, 10 Feb 2026 07:54:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226083.1532626; Tue, 10 Feb 2026 07: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 1vpiZn-0001Q0-V3; Tue, 10 Feb 2026 07:54:27 +0000
Received: by outflank-mailman (input) for mailman id 1226083;
 Tue, 10 Feb 2026 07:54: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpiZm-0001Pp-V1
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 07:54:26 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b4e8b62e-0655-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 08:54:20 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS2PR03MB8157.namprd03.prod.outlook.com (2603:10b6:8:27d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Tue, 10 Feb
 2026 07:54:16 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 07: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>
X-Inumbo-ID: b4e8b62e-0655-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dD9asLIROkRL8ESyZD7z2kSUDEdzMdLEVu2ZBRgKNHOOJmemH7KR3qtVfbFaOMvu3swpHiTajxRmzyxfogFeEQTXgNgWiNqlz42BDVeSfrleT7IIJDVUYaGb3YOfis8FKv0W+O1yhZTksPhPqrY0Gf6n1iWOmXQkbmK34/0DObKBYeeyeHK3xJpAcbgy+13fB8+RRL8iyiTlJPm1PbTP6YCmG6alTvpcSVNkbcQybpk7+vqU7yCEpLtMnBtE3yJElbJ19uwTBVPftJTNnsfi+dD+B7BP8g4I4s10TbFdCEklOLgHHayYytSlGO0ABpPAL1NtBAUZ+PZhMvylQpMCbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IScWUnGK8f5DidLI0ViOf/3bCFiDMjuKwWd7MGWjGl4=;
 b=AXrkBn5OdGt4/vwElXwXVuLFdQvb096lZ+qBizzFBYxX1bQR1DXp0p/8hl6A87C3vFW0TcfmwSSMao6GxtdxGrEzPzNTzvqaETNh7INU2LsSVYZUdAHUVEwN+Yi3YaPoNgqRSk42CaqvqY88rfi04uO/sx0DyvEbDSfH+yvt54NgZaLeZdIn8tkIINdjg49/xrsO03allkxiE+9k0OBvCxu3IGR1MKT0iSN/s0Ru7n37egfs6bZRhRqAPZJZxSTG/wqs2+mmU5rl/chNKrAgCngSSLfrGDacUfHbgVglRlhJujL3XtUqdfgEjPvLpZeFvlPA9RyPWTgusTfffD7B8Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IScWUnGK8f5DidLI0ViOf/3bCFiDMjuKwWd7MGWjGl4=;
 b=XFPugjAnQE5ZMLQl6fp734UgGgWKgztru287wiJvs8apFpaoykRBKoG8TBASRh1ZDiW0aQ37qjSg23jueUDXyuSXniXBRpm3JOrWMdKQ3ks8G6kmHAWmJQbDnnNkx+K888I6+aTGl4DDKlLqOsKKcZeLYnE+4kFDl69f0mhJDn0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 08:54:13 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvm: short-circuit HVM shadow guest creation earlier
Message-ID: <aYrkJZZd293bhSSZ@Mac.lan>
References: <20260209144049.86535-1-roger.pau@citrix.com>
 <DGAK325RDOQA.3QQFQYK6R0KWP@amd.com>
 <aYoHO2WDnVR4wIL5@Mac.lan>
 <DGAKLSGGUD3Z.36NW0SSYZ8ZW4@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <DGAKLSGGUD3Z.36NW0SSYZ8ZW4@amd.com>
X-ClientProxiedBy: MA2P292CA0018.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::8)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS2PR03MB8157:EE_
X-MS-Office365-Filtering-Correlation-Id: 2624e2c7-7493-4c77-6da1-08de687996e0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WFJDSzd5Nm5DWWpaS0oyN0w1RlhnMXY2MFhTMWRHUmxxZEVTNWozMUhjS1FX?=
 =?utf-8?B?Y2lGKzhOQmEvbUlZMjFZKzNTZytERUVJaHB2MnJmYWJXNHVuaUpIalpmVGE0?=
 =?utf-8?B?d1QxMDRqSnFzVWU5RVVUdXM5YlY5b056SUxJM3ZhYjNGOHhYblBHQi9ZNWtG?=
 =?utf-8?B?REwxR2J5UnBTNkcrU3UyZjJNSmt0T0gwQ0NqSzc5ZzlBRmtCcVFQSzhZdEEr?=
 =?utf-8?B?dU9DV0ZVUXJFMFAxVVkvVnF1ZDcxaXBpT3ZRLzBQWWNJR1ZXaUw2TjJQdHdv?=
 =?utf-8?B?VGRsL0w4b1l1T29MQUYwTkdnVzVNU2s3SkorU1RHNTdCYkF2cHdDUVFtZHR5?=
 =?utf-8?B?RzRkRGVxTGNLMjlmNkY5d3gxdjUycW5oK3hUZXJFRzVISjFDclMrYnVVTGo2?=
 =?utf-8?B?YlFNQnFWV2Y4ZFc4L2RiRGs0ZDlkakg3YXJ0NHN5Q29jQmMwWmF4LzVWcERH?=
 =?utf-8?B?b3Raa3h4bVFWK2JtTHg4djVoUUJEZ05wTHh2aGViWXhRYWpWeHZrTmI2UUlI?=
 =?utf-8?B?aGduWDQ2WDdMZ1lseUNidlZmTGcwL0pyVUp1RkZEQnZXWXVNcnhmQWtJQmxY?=
 =?utf-8?B?YjJDNkIwWFlEY2FtNUh1NXp2Q1l0WVVmRHZtSXM1WjNmRmk1NW5rS0Z5enhw?=
 =?utf-8?B?VEN0dHVlT2JRQ0UxV21mbWVQeTVZTVhaWVlOM0hoT2E5Um5SZmxSTXNoSFMr?=
 =?utf-8?B?V2h2eTF6ZW1sRzR0NitzWjhEbE9sYS9oSUZ6amx3YUlWdmF0Smd3TkplYm9H?=
 =?utf-8?B?aVRTTmsvcE5aa2d4d29QMWlrTGZqK1h6ZHRxRitaWEhrVzdCcXVET3orRE5P?=
 =?utf-8?B?YkZlVm8xSVRucFErNldhdzhrRUkyYmgwN281UW10ZGpPaktFQXI3MG1rbXNo?=
 =?utf-8?B?S09VMGd0Zjhzbmcvdlc5UnhZQW8yS2dISVNOSXpwSVFTbmJhK0RUL2FrK2Q5?=
 =?utf-8?B?MU5SWS9iSFluekFwem1HWHVYMXYwaUhzSFpKMWs2NnVZazJMV3hTTzhNczJI?=
 =?utf-8?B?SC9NamhaRENlcFZqaDJwdTl1T3N0ejd5RXJydmxYL2FIbHR0VHN1L3k1emcr?=
 =?utf-8?B?dnBmUzE2TzJNNXZOazB1eDZrZVhlRTdqamcxbS9Xa0R4ZHA4azFqTm9YSWQ4?=
 =?utf-8?B?RzQrTnJvYklvY0dSdnZwcDEzeGdwdTYxamRyayt0Um1LSXBiTGdzK2ZyaHJV?=
 =?utf-8?B?eWJNRFhFT2l2YWw1UWtlaFUva1A1YTdkcnBzbkpLWkJPeDRmTnYxeFV6WWdV?=
 =?utf-8?B?WlIySmxQdHhDWTdlZE02SlcwUXlNZ0NXcnNlYUVsZ1djWnh3R1cwSW5rRGZX?=
 =?utf-8?B?RHJGbnd2V0V0NU84NU1kN2x4KzlvODV4aHRxMnpUelBBb0tOVDlNUkZIbjJS?=
 =?utf-8?B?TjZIZ0tWak1iSFVqL1BQbExpYytIbEx2WTMwc1RFaWRVS0NEQXFPbk9Gb0p0?=
 =?utf-8?B?RVlaem5NVE1KTXNpMHJ5UmxUQlR5bkdEeW84Y1dKa1MxbVgyOGdTOXhBeUNF?=
 =?utf-8?B?cTI0eitJQWhrMHhKdTg3WVRVSWNkeFRwWGNRSmhoRmpiTVNNdllEUXdmVitC?=
 =?utf-8?B?S3NNMVRrck9VZGxVUG1TRWJ2SGZ0K2tBdk0rdHhpZzZiYlk5T0grTTgyYmFY?=
 =?utf-8?B?M09CZGpZd1cwWHJ4K2oxRUhQcGlQOVJJZXpzcFJmOWpkUjNJbUwvSmJ3NEFs?=
 =?utf-8?B?NGxEbyttSm9ObDlHa0I4MVpHYkJvMFdqUmhRVEJBeUlWVVRBaTl5N2ZMdXRZ?=
 =?utf-8?B?U3lYK1hPNmVOdlM1SGExWGJ0U1phZkpzeHNJRytjbEg5Nys1NFBmTUp0am9F?=
 =?utf-8?B?R0ozM2RjNUlVd1BmZWhJRlNZQllmNGp0VjlMTkx5clpWLzVKYkYwVHp6NWsz?=
 =?utf-8?B?a0FDcHdudlhTZlZNa21LQkhRc25WdjBlN1g0ZWxtejBjSnIwSUFPbTJtYndD?=
 =?utf-8?B?TTRYS2Rac3YyV2tJQUpkY3BETEczb1MxeFNYWEZvc0lBRXQ3dy8zQmNDOVJF?=
 =?utf-8?B?ckNybnR2czFzZDZmdVd1akVUbVgvc1FHN2htTG41MDl2cG80cy9GVEg1TlZB?=
 =?utf-8?B?TXV0OEJySXJsZWNqUTZvRHN6SktiQ0NORElRSGNhcEF5bXAzZGptYjFJUzhX?=
 =?utf-8?Q?yHbY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dWZqUTlxVi9TRDJyMWxUb3BGMmU3RFg1QkNIV0VpMUZaTzZ0bGJDb2tRVDRu?=
 =?utf-8?B?bVJXcUVzb2ZSUEtGYURtY0dob1VRck5XeWIzS0wwZ2U0YVY2Z1hWeEIySlAz?=
 =?utf-8?B?eXh2QTEzSjYwa2EwOHJRVHA5KzNUUHhZVmhRV1lxdGVNbURlRHVSK054aWRn?=
 =?utf-8?B?WlZYajVsTjZkb1FVTXF2cVNZY1RyR0l5TXFSUHIyWFQ3b0V5RFVudmhvRlFG?=
 =?utf-8?B?NUJKeEtkZTFINy93cHJTWFFMSC9QWWhUUWZaWjVTdnlCRDl1eVlETDhtRGp3?=
 =?utf-8?B?bE1XYVRuSjl3Nnhwd0NCbmJ6ekUvL1JJRkJlU2hhKzlSenFyYXg2K3NPVGQx?=
 =?utf-8?B?UlRGWXdyNkNhb0g2cUc1Mm5lUUZQSjg5YldOelo3RjNnUmFJTmxZWW9YMFlH?=
 =?utf-8?B?KzUvVzJQQXp6Mm5Zd3N5UFNnNFlVTm1ORDlPRkNlcU1oaUxtUVBPZkxhR1Ru?=
 =?utf-8?B?MVRIMVlNMUJMV2Y1NXNJc3E3REJ5dUJIOHl2SWs2SXJGdnJVa2JLVVI1MXpN?=
 =?utf-8?B?dUNZbmROZzdLZ1FCRk9xUXZEYzFjSWRDeW0rNEJrZDFxM3NiYkRTN29WSk5G?=
 =?utf-8?B?cVMwR21pWUw4R0ljcUVBUmoxQ0lpNFZTd1lET1NQYy9tTkFObFc4TW84aFZU?=
 =?utf-8?B?RmRITE5wQStuc2QzMW11TGxLODk2SXFhMHdHOTEyS1U3V0tnRmlpSUlKS3VE?=
 =?utf-8?B?S0JPbVVzNk04R2VwY2ZaVUFodExkR2toZU4xbjY2c1FwVFVKZHYyUFlqZU16?=
 =?utf-8?B?Q0llUmFlQ282WTFteVhvZHB0RFhzVXZuTlo1OXVKWE5maFhGK1Iyd1U0ZDVx?=
 =?utf-8?B?ZjZkT2t5NnpoQk5GdGZWaWhyVW9sRCthU3dvRitISVoybDZxUHYwbUtpRE1L?=
 =?utf-8?B?U3orVmF4V2FwRU9FdFM1U0NBQVV5RExqV1dJL1ZuQmFkc1owbE9wZ1B1MG1T?=
 =?utf-8?B?RDg2elFxQVViSFB1SFFOUEtxb3pjRkFRZEl4WmptdUJWNTBRU3pIdXVUYzlZ?=
 =?utf-8?B?Y3lFZll5VEVPOUE4cjF0TlczQTNzbXI3N0NaKzRLb1Z4YVhDTE5JUjJYL2hT?=
 =?utf-8?B?QytTNU5hbDF2dG5PeG4xMkVOQVRoV29OMnY2bFhuZWN3QXhwcE9kMCtzQ2pO?=
 =?utf-8?B?SXJBSTBsQjNLOXdpbFdpc2twWG5qMFBreHZUSm1lSG1hekwzYkI2L2p3WkhY?=
 =?utf-8?B?akdTK3V2QllyMStXOGFQajFpa2pwMHBwYXVHWTlTWmk2MS9IYkIvZ3EwZnI1?=
 =?utf-8?B?VEVKZU1NUkc1cXFEVTZpc2U5a0dEOWdEOWwybUErMmN2RFMvZnN1STlZOGVR?=
 =?utf-8?B?Y3FKNjJZQnZ5M241ZlRuNGRjTzdhdi8vSFVqaGRGNXVMNGU0dnZSWHRia2lF?=
 =?utf-8?B?Y0R6RkJWN0svWCt2WjhaVHIwWUZ2UWFMZHBlZlJCNVBCV1JBNWoyVGZoOGpP?=
 =?utf-8?B?alg3OVI3dEpJWld4cTJweHVQUGJDNDIvZGxLNkxtcHhPdWI4UWUyZVlUNnJ2?=
 =?utf-8?B?NFNNNktXVHZXek5KdmJ3eC9lR3l5TlJ2aDRYSHl2Zi83MVNJYVJXTCt2UHlP?=
 =?utf-8?B?dkdJY2M0ZzV0UjU4dzBBMXFnd3VQUTNRN3ZvRWRURkZsZTQ3TEdaRUpGMDRH?=
 =?utf-8?B?VmpxTjNQZHRpdlR4YjNvNThiZVM0UytlL1BHd1gyOGdHcmVYWDhqUWJXL2M1?=
 =?utf-8?B?a2dNQXRxLzhkSVhLV09ScndOcFJCZTFkbHpaa1lGUWJMUHdGenViK1dYUkhX?=
 =?utf-8?B?UGNaTjdDMlBpK3lBTTl5NHJuQmozcnRtRnVQdFZqb2xHS0cxaFpwUFNFT2dw?=
 =?utf-8?B?eHc5aXhraU9sR0RqcTd6NnVIVCtMdnd2My9mS1BRYXA3TS9Va3ZUdmhCdkhi?=
 =?utf-8?B?MVhmd1pGdmgwQ2ZDVnVuREl1S1p2UkJRRzJPdGhaamN3ZHZ5MkEyMzZyTFlI?=
 =?utf-8?B?VW9kNmhZejk2cXhDMjNLMGswNFVhLzQyeXQ5Nm5Gd0RpNWY3aWlsZDIvSzFE?=
 =?utf-8?B?dzNOTW9uTCtJRVVnYlcySFlTSnZjb1dXODdxUGVuTjBxN0ZRU09lMnBpbUJo?=
 =?utf-8?B?bEdhSmVpK3JLOGhZNG1mTXRTUW1wZzVkcUZOTVJEUTZHWlVacHk1NVI0MjJO?=
 =?utf-8?B?a2VnMnNzTDRpbFpNQS9zZ1pKWDFSR2FXek5nbTlDd0VkcWppQWRML2I3ZS9Q?=
 =?utf-8?B?VktBZ0Y1b2kvenFrRHhQS2VDMmlPMzNGTkdJSjlVSXZOZHNodStlczhkSjBN?=
 =?utf-8?B?aHR0bTBpUjRtY1YvS0F0N2RGM2o4UHdNaHdtS3dIOFNoQ1pzMFRSWDZzVVIz?=
 =?utf-8?B?cllNNXFxRlZNR0o2aWppdzNocUdxaWRlSXhUejVNS1BDazdqRkZHQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2624e2c7-7493-4c77-6da1-08de687996e0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 07:54:16.6305
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: w/M7C82gz3sY1o2XXPMkDyQvKbPSfrQprdmc9UGwBcKIYUGXsL4JZmu7RQR2RK+lHwDZcSRnsK+9HpKAlk1CaQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR03MB8157

On Mon, Feb 09, 2026 at 05:26:54PM +0100, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 5:11 PM CET, Roger Pau Monné wrote:
> > On Mon, Feb 09, 2026 at 05:02:26PM +0100, Alejandro Vallejo wrote:
> >> On Mon Feb 9, 2026 at 3:40 PM CET, Roger Pau Monne wrote:
> >> > If shadow paging has been compiled out short circuit the creation of HVM
> >> > guests that attempt to use shadow paging at arch_sanitise_domain_config().
> >> > There's no need to further build the domain when creation is doomed to fail
> >> > later on.
> >> >
> >> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> >> > ---
> >> >  xen/arch/x86/domain.c | 6 ++++++
> >> >  1 file changed, 6 insertions(+)
> >> >
> >> > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
> >> > index 8b2f33f1a06c..8eb1509782ef 100644
> >> > --- a/xen/arch/x86/domain.c
> >> > +++ b/xen/arch/x86/domain.c
> >> > @@ -627,6 +627,12 @@ int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
> >> >          return -EINVAL;
> >> >      }
> >> >  
> >> > +    if ( hvm && !hap && !IS_ENABLED(CONFIG_SHADOW_PAGING) )
> >> > +    {
> >> > +        dprintk(XENLOG_INFO, "Shadow paging requested but not available\n");
> >> 
> >> nit: s/requested/required/, maybe?
> >
> > The wording matches the rest of the messages in
> > arch_sanitise_domain_config().  I'm not saying that makes it correct,
> > but if we word this differently we should also change the others
> > IMO.
> 
> My point is rather that HAP, or relaxed MSRs, or other settings are actively
> requested via createdomain flags. Shadow is instead the consequence of not
> setting HAP. You don't request shadow, you either requested something else or
> you hit the error.
> 
> It's not terrible wording, just imprecise.

Hm, I see.  I've always considered not requesting HAP equivalent to
requesting shadow.  IOW: not setting XEN_DOMCTL_CDF_hap doesn't mean
"pick any possible option" but rather it's an explicit request to use
shadow paging on HVM.

The interface would possibly be cleaner if we had both a HAP and
Shadow flags, and lack of any being selected could mean for Xen to
pick the default one.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 08:06:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 08:06:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226104.1532636 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpikv-0003n2-BG; Tue, 10 Feb 2026 08:05:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226104.1532636; Tue, 10 Feb 2026 08:05: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 1vpikv-0003mv-7q; Tue, 10 Feb 2026 08:05:57 +0000
Received: by outflank-mailman (input) for mailman id 1226104;
 Tue, 10 Feb 2026 08:05: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpiku-0003mp-Kc
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 08:05:56 +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 51ed9ff3-0657-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 09:05:53 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-48329eb96a7so16891325e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 00:05:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376bd5a074sm14886098f8f.11.2026.02.10.00.05.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 00:05:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 51ed9ff3-0657-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770710753; x=1771315553; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MoELWRxTo+0VyFkl3O25tmfBjCXfSjyNW+/IfwJUA8w=;
        b=JDDOhzHLVA2Nsl/hPkAL0xywwjVwBHc7GFwg5GdAS48Ty02kK56P0rgyxbLC5n1feP
         8U45CAWmVOwl9+6gIspGx59JtjSCZqMQRqCsMAWUXGAawhrnuSjPyrDPfvh/INNnz0Gc
         0I/uNw5xvTX9hac/ePdzOqARqXVG/1v1fHU854aGIizuD8QBUoKWGiUVosQSMLX90PH5
         VKa9Kz1s5Vx9TArbizreO3IeDY0o388v4xHyI3Z+vmEQtUrpMtUbGJkt1bZhbC5Xr4bm
         s6WUa9xQv1ysjoUHj23RX0R9m3v3LbO/jRj0FJxg4uJSy3H8kyw4UCcpQ7JSs+Mkxw0/
         zr/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770710753; x=1771315553;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MoELWRxTo+0VyFkl3O25tmfBjCXfSjyNW+/IfwJUA8w=;
        b=LOPgzI9+i1evV0lO0NitMG+X7NLXBTKhmaNwmkAaB6vHNX7DNTjlHvdmQ3yjc2EATp
         w/qkrlIAwzwXBJgwx3QxnRZzLeUy+RceBI7Ie9/k668ObIpT9dtF+m1SfmtL3pFAwcvJ
         exP+BE4B5ijO7Fs2kFwm4CY2lk7yTChOmFKkMdwjS1Spp600PjHbfixzN0OGwlQrPW5u
         omE7KevTPyStdwrxtn2LR6++mFhZxI8D51YN62ofe1uUfoy0DEmyEI8LyVT5f59KCEC6
         i54y49d+iUt4fPZfqu/m/BOmEQqGYq633FN4ZJG9Rv4JH6DBhdkjMHwoWLRvzD4NoB4m
         Us8Q==
X-Forwarded-Encrypted: i=1; AJvYcCUHkoPza1sGpA+TeW4d9kI1qy9u9HYnJaCElATiBWG1mG/NuLjH2v2n/siQmT5rEhhtZXs3y6/nXt0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykoiBVqma8XFw7b1zxMNPerNg+6B28sAmwq6S/GAz6kXpa6SqY
	d9dovdvz3iUHN96b1DtQZJQny7sKIn5fZPUNzklNtORzUP1hlkj8ILEQXApREaRWyQ==
X-Gm-Gg: AZuq6aLWRvs1ua0Lq2L01Z2Fp1msKsTyTBTqibzS/4VR2TjU3kIsJz105TcpdWPN7v5
	HrZX7v3i8AatPDtmo2jCPeDieJrguuknBlimc/mu4dL5RS73tYXbS/msuR3gKKKatIM6P2BETgk
	DXCqJPvkemj0EM2VUGFycCZyqfb+jt3riiaM1ZN50o+lhqo8+CYp1Ie4DM2tJEa8/Khiq9jfeRJ
	+RUFYyJxWjXMBPrKyt3E6X8401qmoiyxzAco26MmEJTf9tZ6lGQfGr0TRe+P8I/lfs8VtG9cU5J
	p+8qxlj/FsvtuIGYZD7bAgryV1v7fW8f5XkorZrGH9lRtPOEwmvQ+Kfvszl0kD0Smlx1wg3KuxT
	jKz0nWLGsVz4G52uJ9v7UwIm3WQCbkVlk4+x2/mgJP0Vg3GRzGBaG3dqbggwVOwpCcyLnN+yyPn
	Lel8GD10/Li8AGtRfcoq8UCAqFtOw3HG6RaUbIKyrbsaw/2cKKr3qkUarXLzo1nAZaZmGpjYfcd
	aHwMWn1Ix1uLcAYOOPgPQzLXQ==
X-Received: by 2002:a05:600c:3b14:b0:47e:e72b:1fce with SMTP id 5b1f17b1804b1-483209d0f27mr170830795e9.37.1770710752603;
        Tue, 10 Feb 2026 00:05:52 -0800 (PST)
Message-ID: <6fc9864f-cd99-4649-a44d-520303571375@suse.com>
Date: Tue, 10 Feb 2026 09:05:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 andrew.cooper3@citrix.com, roger.pau@citrix.com, jason.andryuk@amd.com,
 alejandro.garciavallejo@amd.com, xen-devel@lists.xenproject.org
References: <20260206233005.417233-1-stefano.stabellini@amd.com>
 <42c248e7-9747-4281-9fca-1b9950a06bf8@suse.com>
 <alpine.DEB.2.22.394.2602091804541.1134401@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.2602091804541.1134401@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.02.2026 03:04, Stefano Stabellini wrote:
> On Mon, 9 Feb 2026, Jan Beulich wrote:
>> On 07.02.2026 00:30, Stefano Stabellini wrote:> --- a/xen/common/Kconfig
>>> --- a/xen/include/xen/sched.h
>>> +++ b/xen/include/xen/sched.h
>>> @@ -1255,9 +1255,14 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
>>>  extern bool sched_smt_power_savings;
>>>  extern bool sched_disable_smt_switching;
>>>  
>>> -extern enum cpufreq_controller {
>>> +enum cpufreq_controller {
>>>      FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
>>> -} cpufreq_controller;
>>
>> This enum would better ...
>>
>>> +};
>>> +#ifdef CONFIG_CPUFREQ
>>> +extern enum cpufreq_controller cpufreq_controller;
>>
>> ... stay inside here, then also making the split of type and var decl unnecessary.
>>
>> The two affected platform-ops likely want compiling out, too.
>  
> I am not sure I understood your suggestion. If this is what you are
> thinking about, it doesn't seem like an improvement.
> 
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -1255,13 +1255,15 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
>  extern bool sched_smt_power_savings;
>  extern bool sched_disable_smt_switching;
>  
> +#ifdef CONFIG_CPUFREQ
>  enum cpufreq_controller {
>      FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
>  };
> -#ifdef CONFIG_CPUFREQ
>  extern enum cpufreq_controller cpufreq_controller;
>  #else
> -#define cpufreq_controller FREQCTL_none
> +#define FREQCTL_none        0
> +#define FREQCTL_dom0_kernel 1
> +#define cpufreq_controller  FREQCTL_none
>  #endif

No. FREQCTL_* shouldn't need to be visible at all when CPUFREQ=n. Hence
the reference to the two platform-ops, where one (and cpufreq_controller)
is used. If those uses are also suitably compiled out, the #define-s
above shouldn't be necessary. That said, use of IS_ENABLED() there would
of course require the arrangement to stay as you had it originally.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 08:19:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 08:19:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226114.1532649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpiyB-0005q1-Fx; Tue, 10 Feb 2026 08:19:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226114.1532649; Tue, 10 Feb 2026 08: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 1vpiyB-0005pu-Cu; Tue, 10 Feb 2026 08:19:39 +0000
Received: by outflank-mailman (input) for mailman id 1226114;
 Tue, 10 Feb 2026 08:19: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpiy9-0005pl-Si
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 08:19:37 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 39997f3a-0659-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 09:19:32 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6499.namprd03.prod.outlook.com (2603:10b6:806:1c6::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 08:19:28 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 08:19: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: 39997f3a-0659-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=boXfZKtd2H6gf7c9PtV723ZqzjMvNamei7eWWuuNzQckMm0fjeIPJPA+ePYHDcGBvBjKBwCkgrmTpfo52nsOudwNxSysTSnjmq33aG7JAHm3qmDUlOE2U4wtZPjF/EBzVs3UR+fY2BcbQZ51J+1cCoXmIsIsGbTJ6xOn7MjD+QAsfM73q70LluxJ5p4qEywcn/tUVv177a3i9xx3gTEzsVbpEZ/m7Ve+qy/AimWVWhDM3zp988mCJStycsO5qTXvuefei2GLsTwcxt75n5d5GYazjKo4yigCgaRN0qUjICehmZwPiag0e0BafXHO/wakfQ0Q1/SpQq8V0Zvailmhqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=U6d7WkdiOukGoroYEDRoKFdd3u/gbnbCvVbVXG9ZfRg=;
 b=q0b1X34paX0X2PQcs/zAiKA+y2Q4J4b0EXah32+8yHrNVtKQeHj/Vdboh50o5nKgGmGgPvAYj9U3EAMMUYA7F7mKM8knbs+C5AY4WFIp4v4QivscPj/X9zVXTT3Jtc46qufnKqVBlTfEPGnHDxJtjQ1qotfAXQbaYLgKQlA0ECSodDfDEXMzO4lBQO5CQ6ZuNJPg9dxSC1qPcvIQDwanqMKV5aBP1T+xsFyrwAvS+xWmn2stul8R/90+TazFLRebPMzNtbpVNhjvuw0sEwesvqj2QJEBSmHRtsLx8gB3ITgcz/90LrGFHBDMYNNUOEDHVgLQ/++xj1JHGOXpgJjRlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=U6d7WkdiOukGoroYEDRoKFdd3u/gbnbCvVbVXG9ZfRg=;
 b=tY4nfUQVtAekxHfgqEQL53gh4BpzIw1g1YxgzKROIaQGZigQqHXDyW1IW7SclcyRX9Vz7av2DBUSgAXC1/po2N9w/DoCdgiEkk2IUc2eWT6M+pne+rw2t62jmQSA0qW+6u60zXvwTt7lr6wqP+syHKXnMTsvSajjNp6MNx9CSxc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 09:19:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 01/12] x86: Reject CPU policies with vendors other than
 the host's
Message-ID: <aYrqDLFGqEVYMyU1@Mac.lan>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260206161539.209922-2-alejandro.garciavallejo@amd.com>
X-ClientProxiedBy: MA2P292CA0029.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::19)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6499:EE_
X-MS-Office365-Filtering-Correlation-Id: 95b86cf3-a180-4af5-c822-08de687d1bc4
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Z3YzTTNERDh3a1d6Z2IrTFZ2MURuc0lrckpsMTJJYTJ3NHFxZitXejBrQXdt?=
 =?utf-8?B?UExURWRIZXNDZlBFMEtNa1llQTd4NlNNL2N4bWpYdFpUTjR3c0djUTRHK2l3?=
 =?utf-8?B?T285UkVlY2huUnhvaWdCL3h6bkhqdVNTb3hPaitYV01TZkZVeGdHeUtpbmtq?=
 =?utf-8?B?SUJSM3NwU0hmY2o2aXVMUFBFVjNOQU5vOXR2VkdoSlYySHI1QVEzREZuZ0cw?=
 =?utf-8?B?Vi9RbElYdGgwYk0ralVUTitKNXkraGlKak1ySzVHWWR0L2JTSlcvZlcwTHJx?=
 =?utf-8?B?Yzk0YlBEM3ZVWGRqSjdhcldxQzlCTEFYaE5DYmVMZlhPMFVET3RVM1FFSThu?=
 =?utf-8?B?dGxJSzlpdk9iU1lRNFduNG9kUHNQWENjaVY5SVlWalRQRkszdjZEc044TjB4?=
 =?utf-8?B?YnlGQ3ZxazdnR2dndjZJL2ZTYXkxZmsxNzFYRTNiOURPejladUdtOVNIZ0Rt?=
 =?utf-8?B?MTBERDRaN2ZQRVpjMGdqWEtBdEZCWWtJUGt0dG5kUUpHRTBub0FUTTRXSEtk?=
 =?utf-8?B?T3dLZ0RrbUVJaDk3ZHV4UmFtSndDUnNkR1FkY3haV0NhY3N4bGdCd3RCS3kz?=
 =?utf-8?B?bjRjUjNoeGNlLzc4QnNlc29zYUErVzRMQVJrODVNeXhCbTZiemxVTTNpbUEy?=
 =?utf-8?B?VVRaRDdnd0ZjZXFjcGtkZ2VUdmUzMlZ3WExDbisxb25GME1wRXF0U1Awc1RZ?=
 =?utf-8?B?Qy9yYm90UUI4bmN6cmJVamRMenpFc25YaVBKYXh1ZWJuSGUyclFVM1NPKzdR?=
 =?utf-8?B?TE9WVHhqQ0l4ZUdDV2ZFS08zWHVPYVRwRUx6ZHJxaHNuTm5BdDNvazd0dy9v?=
 =?utf-8?B?V3MwT3poTjFmVHlNSmpvVWRiUE9zYUZYdDV4ZzNHQ1ZYUWtENWptOXlxRTdH?=
 =?utf-8?B?TVNjSWpEWi90bkRNNW9CTHJWVXlSS3BmNVFLV29oaWY5TWo1VDZlcnBubGlh?=
 =?utf-8?B?VzVTVUczeEI0ZENORHNxTzRVUmNNbFJ3Tyt5V1AzdlkrNlhmVTIxaVl6WjYv?=
 =?utf-8?B?anE1ekN0bnZ2QnYxbVJRcjhVaGpyYlc2M3Vib1A2M0Q5RmNjNDFnZ21oakd1?=
 =?utf-8?B?ZTJpWFJ0VU1hZlEyYnh1dm02VWlrb0tRRTVLMENLa2h0ai8yMkRBSGtFeEw1?=
 =?utf-8?B?YXZERzN0a3JKYWlwVG1BR3hVOVg0RGhyNmVhMTl2dm1BMG1veVV3Sk90VnRU?=
 =?utf-8?B?RjlHQzFPcmExSVdTNG83YjZDSjc3TFdrdHJ5TWNHNTdCY1FPejJSOS9SQVpJ?=
 =?utf-8?B?c2V6SVVINGtUd3VoTG1hUzhNaU05MWZmSnN1ZW1mVEZId3M5Q3pqS1V4clFp?=
 =?utf-8?B?blBPMWQxTExXWDJMMVVtZVJiTHNveUsyZHhZY3hCM2QwZjVnblZHcmlnMmM1?=
 =?utf-8?B?WkJwOWJBaEEvSXZnOXdXTGNKR1p0UVR4ZC9OeVRNWVZTMHRLNnA5UEtDVTJD?=
 =?utf-8?B?SEx6eWhSVXZoci9wSThMN3JINzIxeEZISUY2MUdQVlB2MmxZTWFwNzdRbytw?=
 =?utf-8?B?WHNqYkFCWVNYeERVS21lYnQvUlJnaHpJc0RaRlVQMTdiYVhONlJWazVPNy8z?=
 =?utf-8?B?ZUlhSENqdGtBUFI2QVBJZG9xZHp2NjdIa3pvZ2phdEpqOEFJQ0VtVU5XNTVi?=
 =?utf-8?B?RUJlRnZ4VkZUczlJeEJ5WjRraXU2eUx5aFRMaFN3RTVlRDhzbTk5K3Z0RzRv?=
 =?utf-8?B?K1NxazBuM25HVDM3Y2tsdU5SaFVKTG01L3V4MFRSa1NWcHdDY0FVOHBaNjg2?=
 =?utf-8?B?eHhsOGlUVW5rbDF6OU9iVlZ2aWdIejRodDRhakVDbWJTN0dsK2dISE5ibEZ6?=
 =?utf-8?B?YjRmT05nOU5aWURpa2RQTlhCT3BiQjNsSSt4MGp3anVlTUsxQkZ5RXJZZWox?=
 =?utf-8?B?VTFuQjlEeTB5U0pKUlB5V0Zib3N4ZUROL09aSzFLTFdrZDBIRlU3eU4yVFNI?=
 =?utf-8?B?YzlPYit6cnZhRWNyaW9VQ09UNUNkV1pTdktLdXZtSHkzRXVGRlZtQjFvVlFF?=
 =?utf-8?B?bkhQRXFEck1JTDRVZE0wcDVrOXRGU05RYi9IZEdHSzY1anhqK3RVcVpKU3lS?=
 =?utf-8?B?NnJvRzZIWEFUZk1KZGMyTlV2SEkvdjl0dnUxTE9EbmhrR3U3Ukw5NUpoSWYy?=
 =?utf-8?Q?opHs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YXlKNGFvZE91U2ZGQjNtNzVrb2Vua0xPSlVhbGNQYU5nWjJQOGhvZ3VZMENZ?=
 =?utf-8?B?ZWpnR3V4NC9qaGNucG5DVVVvOFFsQzU5dTBocUFRQnVKZkpFVmZTclZWZVFK?=
 =?utf-8?B?Tmt2OEN6am9FSUdMbWROVjVQSmI2QXlTZ2JPdmo0bVU3L3ZrSWVIblgzY282?=
 =?utf-8?B?ZmRVR0IrdUYvVzN1WktldC9mcUJ3YnJENjMrOWtUbjFkajR6NzlXK3Z5OTlH?=
 =?utf-8?B?UUkxeDVVM3BLVVVZQzFyZWRlWlByRFcza0tlWkRNQlZkRlRmNUhnUURvR3Jo?=
 =?utf-8?B?TmdsUjA2aGRqNndxZENGVWxVa08yYXREVUwwcmVLeEJET2Y1a21VcUNQMGFu?=
 =?utf-8?B?bGN4TkhGcCt5VFBrUG1sd1pKN0xld2hDaC8wTEVnTUZwcDVyM2tUNlI2eGN4?=
 =?utf-8?B?RFhNWFRJUDRCdEszWU13WXJxVE5XZit0RTgzVXZhSUpHaVZDTXdhTklEUUpH?=
 =?utf-8?B?OHBzUUdIVG9jMUpmNjlkSitPZk1RRFFseVh0Qm05ZTFKYk96aGJ5dkRYYzBz?=
 =?utf-8?B?SU55eFVhK1cxRFp4UjJBSktzVElpODkrSkNzWCs0WXFkR2l0RC81L0JNZkpu?=
 =?utf-8?B?STd1RHBjVWNGVmVEd0ZQU2xBdWlidkxkQTZHTFlkWnh1WExzUWM1RHdlMTlp?=
 =?utf-8?B?V25EQnlUV2M2bFk3eEZHVk9ORWZkcGpwbmhkY3lJWlZCTTVLaWNGUU8xZWc0?=
 =?utf-8?B?L1owMmViSXArd0twL1dsbzdrcmViNWtFa081R1NLdEhXRmRpVmhDYXg2Nzl4?=
 =?utf-8?B?eXN4aW5zRkFXc0k4NTZYaEtQQmRmNGY4VldxV0hzV0luQ0lGcjNHamZTUThX?=
 =?utf-8?B?NWdJcDR2VWp4cHVJSk9TcElBcmZkVjN2L0lwY0FQSmNZcisxQjhvMkNZNFRX?=
 =?utf-8?B?TjhLb3dBYjNNY3REc3Q4N21VdkFReGgrYVBxVGFyb1pUejQ0ZmNQS20xc216?=
 =?utf-8?B?VHROYUl5OTVqQVg4b09GYWlvdERsWlIvM1NEWTF3NzlyRFU2MC85eC9sVWxu?=
 =?utf-8?B?QnBBVHptdk1wVjJNbkQ4TFljbmNGL3Z2WFhMSGJLUTQ2dDJjMjUydGZwb0tw?=
 =?utf-8?B?bnFPVkJGOEZFU1hYMHJuRUxySkhnbnVobGc5OFlNZjc2R3JzK29zQkthbnpk?=
 =?utf-8?B?eURHMXBJNVgwQ3R4YUcvbEVGUHNoeWtiTTl0QXhlOGxQVmN3cHZ0cEt4WkFV?=
 =?utf-8?B?K1JQbjJ2b3I5UlFjbG56Mm55b1hkaUZRNnlpM3Fjbk0zMkg2U1RVMzBrdnl1?=
 =?utf-8?B?eHNzckpJUGIwWHh4dzBtNlRkTlhaU0ZCS0ZCcEFsT0Z1cDQrZ21IMVBlUGJC?=
 =?utf-8?B?cEMvbWJoMHVnM1BJV2N6eHJScnlweGwweHZnZEtyOHJhKzUyZExLd3dBUEc4?=
 =?utf-8?B?SGRraDN5VWtKNW9xNE44a3hXRzR5VjAvVFlmd0YxbmRaT3kwWW5zZWljYUph?=
 =?utf-8?B?K2svZ2hCOTJYRzRYQXVDQmVWeUJmNkg4V2dEUUtuU0NYWkREK2ttZ3pPcmJv?=
 =?utf-8?B?bkt4UG9wYW51Q2g0UlZaaTdnTm1wdHJ5aWZONzRGcTRFTlRIN3dtTEFEUUEr?=
 =?utf-8?B?N1djZGd0ZXlpVElFZFBZUjZNMHBZa3NQZHZ3ODBKbmJsQkJZcE84NkFMMWpq?=
 =?utf-8?B?bExLT2d1c21PZlBSaU1wV1hLMk52TURpNCtWRTVHVjZrOHRYMEdZQXIwWUJq?=
 =?utf-8?B?djdzY2xneEdvSGV4bkR5SjJoTU1GdHM2VmgwM3ovUkpWVkxJSWgvMmszcU4v?=
 =?utf-8?B?aXVKOGtxdS9Gdy9rWjgxbDh3RUpFNTgySmRDRk10NEsvTERRUEdkb1V4NVhj?=
 =?utf-8?B?MDRaQzl4ZzJJbTFoVFFjRFBxRGZTTTFlL0dxYUN4ZjBpMU81dU9pNG4rbExr?=
 =?utf-8?B?NG1UMmNHM1lNN3h1Z29Cb2JnT3ZnY3NHdUhwYjlZNXZQVVpDWDQyREpZMDZm?=
 =?utf-8?B?bCtLUGdtRUl0SUNobnEzSnpKUU9jdDBYczRRNERzWWFUZE1tcEQxYXVLVVh1?=
 =?utf-8?B?VGZSSThiUFVQbXcra0dJVGs3NGMyaU1oU1AwQ2ZkeUxsSjlLRDVURjc0VkhF?=
 =?utf-8?B?K2hCbmFOS3ZXQW5sRVlUL0p0aVN1RHlETUt1RjFnNjFhenhHbjR4dS9LNjVJ?=
 =?utf-8?B?b2xhaVlJV0xvTlZnSkxHTTdIVG4ramtScVlBWU9GTTlIMFJheGFpRklNWUND?=
 =?utf-8?B?UVYyQmY3WTV5bzQzUnBxdndOS3FOL0kwVmozOE5QaUN0eXk1d1R2V1o2UUV1?=
 =?utf-8?B?Z3pzZ0c2WDIxdFVqVWRQNWJ3WFZNbkd2WnNYdUhFODBOeDdMMTk4YzRLV2tM?=
 =?utf-8?B?cGVFUDA3bjZTU1V2dGFRV3ZnZkpvU1RBYWsxczQvMVVDYmM2bVA1QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 95b86cf3-a180-4af5-c822-08de687d1bc4
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 08:19:28.1643
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0gjloRBUME058aZ86aQVqJ9aBXOImfKfB/awwEuNEAdeX3TLKSt9/EtbiLNKTBQNJLQ5PfRZYo2HPlOnlhx9cw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6499

On Fri, Feb 06, 2026 at 05:15:23PM +0100, Alejandro Vallejo wrote:
> While in principle it's possible to have a vendor virtualising another,
> this is fairly tricky in practice. Not doing so enables certain
> optimisations with regards to vendor checks in later patches.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> Patch 1 from the cross-vendor series. Do not merge here. It's simply for
> consistency.
> ---
>  xen/lib/x86/policy.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/lib/x86/policy.c b/xen/lib/x86/policy.c
> index f033d22785..079c42a29b 100644
> --- a/xen/lib/x86/policy.c
> +++ b/xen/lib/x86/policy.c
> @@ -15,7 +15,8 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
>  #define FAIL_MSR(m) \
>      do { e.msr = (m); goto out; } while ( 0 )
>  
> -    if ( guest->basic.max_leaf > host->basic.max_leaf )
> +    if ( (guest->x86_vendor     != host->x86_vendor) ||
> +         (guest->basic.max_leaf >  host->basic.max_leaf) )

You possibly want to expand test-cpu-policy.c to add a small test to
ensure this works as expected?  Not that it shouldn't, but it's
trivial to expand test_is_compatible_{success,failure}() to add a
small test for the vendor checking.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 08:26:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 08:26:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226122.1532660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpj4o-0007UP-5z; Tue, 10 Feb 2026 08:26:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226122.1532660; Tue, 10 Feb 2026 08:26: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 1vpj4o-0007UI-24; Tue, 10 Feb 2026 08:26:30 +0000
Received: by outflank-mailman (input) for mailman id 1226122;
 Tue, 10 Feb 2026 08:26: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpj4n-0007UC-66
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 08:26:29 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 31350a9e-065a-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 09:26:28 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5526.namprd03.prod.outlook.com (2603:10b6:5:2cb::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 08:26:24 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 08:26: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: 31350a9e-065a-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FN0dkTwHHaWhXp5T6AvjxO4HBgUrA6WBoIo0o0a0Lfwkx+dSDHz2TXL8FcKtNF8C+PYA4iDBr1ynxsvf//9smLRLb7jOp6gDBeY38VYQiwBxvvSUV2fuRvIuKxDAHQ9D34Grm7T4YTeFGaHsCVhGVosY9DVtLOLSu5rMZI+LNw70ArNum8ueI+Rjv1npXIdCso9wNQ+vOJv2xaruR8Cwha+IyaGm2WIobECmuSX1obPvvt4vz/FmoGpqSZzJYu5tDR55EutaEYPSHJBuJGkvoWD6HX45Z2eE8lDMnUvX9Rwgy2+uW/YgRiQ84L3+p/gJyImuPN8KF1/lbJcbveGAlA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CjSN/Rlu0A1f/HskoZbZyNfLTMUksjbEaTD7vOqqY/U=;
 b=yEVF2ooxszeRDy6Xvn902mt4+L9T6XotVs4QQ8mKQDWX/jA+/Rc0phwd0Z83Jjr6EchyY5gudoWl5TZIfzwjGi5+F3d79pPZhFVXrAzeWtxXNAekCwIDcVfPkuiBb9/YbMKPsFtZrPyFXpsFczTwOTfwehV42i/8zSPZx9aNM9LcK2MYg0YuZ8ByrsJzIt0CM0p3KIm7ND+1kClg0mqnQrMVNBk5ICAwPnhtr/W5qKyas36e1rU9gGU2XB3uF03/D/0HlGmQSumkd/Z+SkfGQkB2HIV1fyAw4qJEjsRHU7av3L3iCFE3ZO0UGPLMPlFnZoIh+LqmE5K+ntNn/fxkew==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CjSN/Rlu0A1f/HskoZbZyNfLTMUksjbEaTD7vOqqY/U=;
 b=NY7ezx536smHwTT/LO5kzKHn8pwQSJ9eTDq/J5oZL9mSZ1CC/lwuE1jh3rewjbdmzxMBK+le6MCxiFGyOEOjdVljcEJBGAGL9tsAYg8/JNS7sB50Pu807D0aEmJTuFZeE4QIUd99aZpXWaaNMlONaEwOk8sWwIcPi+fmOLbC/r8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 09:26:20 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 02/12] x86: Add more granularity to the vendors in Kconfig
Message-ID: <aYrrrLuDXuOffsgx@Mac.lan>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260206161539.209922-3-alejandro.garciavallejo@amd.com>
X-ClientProxiedBy: MA3P292CA0022.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5526:EE_
X-MS-Office365-Filtering-Correlation-Id: 8f792871-5b06-4b1a-1a39-08de687e1394
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q3RmZHRYY29rc0RYb1Z4SUcrUVYzQllyMUZTa1JFbHBFT3JsRzdnemFTcXM0?=
 =?utf-8?B?N1JlTE5rejQ2VC9hTWVVNHpia1pvL3lMQTVLTHhzR2d3SGJleGxnTUt4OUFr?=
 =?utf-8?B?OWVZU24vU1E4aVdNMzJJcnhsd2FLbC9qdjBDQXBXSVhTKy9WSDJqVkltTGpJ?=
 =?utf-8?B?bnVNRUQ4Z1BVZ0dONVBoLzVoQWV4aVplVFVEQldXZzAxY2JkMjBxdVlwU1c0?=
 =?utf-8?B?YmlQYzU4NHEyc1FwTzdjVDNlL1F1SWxQM0VPaG83Y094MDFuNlkzQnYyQlBY?=
 =?utf-8?B?dTNqV0RxVzNBU2ZVUUVKUVNsVTE2Z01XbVZIRW9IdE1neHRSVHJYU0lMVGZC?=
 =?utf-8?B?NEt3TkF6a05kdTAydk85Ym1OeDdoUC84YTRpWDhSaTg0UC9HWDJudnFWZHlM?=
 =?utf-8?B?cm94dWc4M2VWMzczc2kyc3dZNlc5K1Y0U3ZWVlhVSGtvcjlTdVlyVjYrdktU?=
 =?utf-8?B?VHJld3V5SVowaEZYOG9JNTJaSVpVelNpWURtUEpYR1ZaYlFTZDhVazJpcHJl?=
 =?utf-8?B?RTlmUTBhZjZoS1RTMnY2UjdYTTkrWHpVVFlscklSRVRKWDIxczVVZGI2L1Nw?=
 =?utf-8?B?cWpuMzhvcnk1VXI0NmlmRUlkRXRlb2JxWWJaZ3pUUGhXSFZxS2tSUlVSM1dM?=
 =?utf-8?B?VWo3MDQ3Yk4vclJ0WWRUUzdEdGFLTkFtZDdrTk9VL2lpWEZtb0JURDBISlor?=
 =?utf-8?B?S3FPam9JZy9yWVh3ZDBFSWx6SEZ6UmFkTmxJRTlLWTBXMUk0d1JaY2dmMHda?=
 =?utf-8?B?ZU1Pc282R1p4NFE5MzhJUm02OTQzcDd4dFBsN2lHVTdtMS9PcHZST1MrOHlv?=
 =?utf-8?B?dHJENHhsb1JXZisyVGlyUFlCZE5WczBXQ0orMVQxa25hM2x3bTdTT01VblN0?=
 =?utf-8?B?U0FVQTAxY2RqUHcwbERWZ2ZoNUlHTS9rMGFpSUpnaGYrVThWeDZhVkxTRDVs?=
 =?utf-8?B?UHZubDd6WTlGLzd2UGVhcVZ2UUpIcEswQTBRdkpLVGZTQ092dEE0Sk0yeUtJ?=
 =?utf-8?B?a3RHU0xEeG5pUE90UVJLS2pCQUREdEhNYUlFT1ZoYjFwQnFYbXNtT3hPTitW?=
 =?utf-8?B?U3dDYzcwbS9JOHdZSytqVFI3STM3M25GMEpiTTdha0JCeUxwaEZXQXVSWHJC?=
 =?utf-8?B?VFNwVHEyM0pZOXBZOGd5Z01HUFFaR2ZWZklRV2ZVMXFNelBrMU5JSXJOZ2Ns?=
 =?utf-8?B?N3lRb1Npc0NGOXIwSWJPRW01ZmU2ODBGdGRmdmtzZkhDSFhEWjFra0Robzl5?=
 =?utf-8?B?czNBQk1CQXZPUVdjdkc4Z0ZyeTZZdXNvOTBFc1ZyMVQ3NEVQL2xGQ3hDcFR0?=
 =?utf-8?B?ZHVDMkF4V1FVdUp1TlFOdWpldUp1YzBXUEUvaTUrcmoxY0NmN3NpQ2IxUC8w?=
 =?utf-8?B?c2dFa0p3aCtZbzhZdGtjYmRUYVpBdFQ1MlF0dmd5N0pxblBjWWxzU0FLQzc2?=
 =?utf-8?B?cjV3ZWJJV2NOZENReVlhY1BYWTlqS09WbHQ5dHFpTi9LVk41VU93M1ZUZVFZ?=
 =?utf-8?B?bjE0RzRob25UTSs0NlNEUW84b1g3UFJRY2tabXhVK28reWVWTHNLdlN1Y0M2?=
 =?utf-8?B?NUJQZmJyQmk2VDJ2UHl6UWkzWG16RGJXdmRWdDc2ajFsbnlSMllaYUdodmNz?=
 =?utf-8?B?Q3RVQzQ0aU9ybHgraFhEUjV3TEEyaWh3R0hkWjRWcHV6TzNBbEtXN0VkMVla?=
 =?utf-8?B?d2VKTm1kNDFHdDN0cVVYSFZIcDNIcVBBdzRSM3V0cnNGb083WFN5SU1Pb0ZB?=
 =?utf-8?B?cDg0YTFGb1JBYlNDTlQ3ZFMrenNQcXV3TXdkMzdoR21EVGZ4cEw1WGhMcm4r?=
 =?utf-8?B?R3ZGdHRWek5LczVGV3hhRTlSeXczYkNnSXFsS3F5YzN5ZmRhVXBad2hOUmxP?=
 =?utf-8?B?ejgrenpIUWV5TVhSOFUrckdpdS9uM2tpRTROdUlKT2lzSFZBWGZuaFA4SXFB?=
 =?utf-8?B?eXFvWUhMaGFLZEptUzNGTEJqV0FIdGt4T1lSUzN3L2ovYXZwY1hoc1JhRTBu?=
 =?utf-8?B?L1ZkVWZscEI2MFVyVmdxV1VNNzI4Rzg4c0xDK1lyY0VDZDlEK0xKMWE2SkxN?=
 =?utf-8?B?MzhNaGlVbUJGaHZwK0lDTnhNbVRYWWlRcWJUVFY5QVYxY2pxZ2NDRkZFL0d0?=
 =?utf-8?Q?yndo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cGhiTEkxTDdUcWpka1FMNlBpN24zMnJobXJUUllsNGtOemdVTTB5dWNWd1NH?=
 =?utf-8?B?VS8zK0JVRkNueEZTVCthVmxNNjljcnM1cnpmNXZEZ3A5SXN4NTlseFdUWXVZ?=
 =?utf-8?B?eDUyTVRHR2R2TDdwc1dkWE85YXZzQWM3d2pYblpkTHdHVVpiUlhzSFVBMHlu?=
 =?utf-8?B?Y2hXeUJxZzJsZzUyVXJkSERNTldRNVZ1dHRRWVhRTHNHYUpxOFpSTkxPR0xK?=
 =?utf-8?B?NUR6ZGo5NkdpdlFrU212YzR4STJnODRjWFFsSXl5RmVQbzlEZThDLzVaNjFF?=
 =?utf-8?B?L25vczlIU1ZycHkwTDRlMjh5aXhiSjZtK2RvbHF6VkQzWXBwd0ZtV1QrRVlS?=
 =?utf-8?B?cUlROVMwWnl4S01yR0JjSlhDSXVtLy85bVQ5QkRGMHF3STZiQ1h5Ny9KZlpv?=
 =?utf-8?B?VndXM2N2QjZHMmIvNUkvclBTWUExUTl3d2lxRXFvUUxVZGVhTExvb1cyS1BJ?=
 =?utf-8?B?bUJWblN5T29WQ0RrWG1mZEhIRzBZMnVEV012K1FySFJOakVuMkQyMkFFbnlE?=
 =?utf-8?B?ZUJUdlAvSmloMUxwSjdzOHNFVmJCOUxwTG5LOTlLS0x5dHZRaENTM21NbjdE?=
 =?utf-8?B?LzFBL1hBa1JZOGI5Tjc0MFAzK25KZGM0cHNOMDkyNk4xTmo5aTVoK0piRnFV?=
 =?utf-8?B?aUNkVTl2cm0xaEYxNnFtQ3YxYVFtelpKb2tUV0JFUmxyeDJ4TTBST3l3NGQ5?=
 =?utf-8?B?bHNEYldjN2xSVlo1ZEk3S2pyejd6WWYvRU9oYjc4cXk2eU5RQXMwUFE1MXFF?=
 =?utf-8?B?MkQzMkpIcFJ6M1o3REQ4WG5OOCtmd04zLzgxN2RaQ21ETFp2QzFuc1hBd3pD?=
 =?utf-8?B?Ykt1K2ZPZE01VDNRL2thMXZHZ1cvMlJ2Qmo2WFlJN1lNQUZpeXAvc0xlT3ZZ?=
 =?utf-8?B?T0ZDWXZVajYzRXVEWUhIT3A5VkZZNXN6QTlJOUNEN0dRRTZkTkZaVmJMQjIv?=
 =?utf-8?B?OHgxcVZvamRXMzk0MlJpYkNQTTNKcW0vcUR2a0lXblRBRFpkWlhDbXlHNGNq?=
 =?utf-8?B?NndhSGtjSTQ3dTVWMHdiTXgweHpJYWhpRTJ4RXE0ZmoxdSttdURoV3JlY3Zz?=
 =?utf-8?B?RmM4MFBIbHIxUGs1N0ZXUHY3clZHcjFrL3ZlYi84eVlPc2l5Yk8rbEdReU9a?=
 =?utf-8?B?emNlVGhadkJXTWdDUzVoekJhNkl3eC8yVjByMjU3K3krMWMwTkNHT3h1YTNh?=
 =?utf-8?B?WnVCSEdWSTFwcmtyQmdPM0tpdXZxcTJERENoSU81dmxRcDl2L3k3R0VsZnB2?=
 =?utf-8?B?K0xPQXg4eEZ5V3NyU1JCeXBOLzk0MVU4bmFucnBnbWRoem1VTjhLS1UrNk1T?=
 =?utf-8?B?MisvWmhmdUlzMGlGV1hTZXFiSnhaUlQwWGpzMnUyakswNkxJOTlvSVlwc1dN?=
 =?utf-8?B?OW1xVFJxeTFCbDFVWmROU3lhNlJKTytlSHhEQ2tiODFxWWk3VFM1SFpJK3Rj?=
 =?utf-8?B?SXFONjlBNXF4UlRjZmxnRFY2RURTbzVoeml3bGNYVU1vTGF5blBjaDVROXhI?=
 =?utf-8?B?V1VHTXkxV29Yc3FDV0hGWWxPVHpHTXdOT2pUc3FFYzV5eFhRbStKZmFUQ0F2?=
 =?utf-8?B?T1RuVUpMTHBjb05mUU1aK3Z1bHUyd1p1NHY3Nk8wVHBZa1FkcWU4MFFKYmFN?=
 =?utf-8?B?OWx5SDdQTGhSM3F5THB6VDJRV0h0SXpESkFoeUdHK3BKelkzcEFPNEN6ckJ2?=
 =?utf-8?B?U2Y1WWlBZVVtVVdreGNlTDZlZEZlQzQ1aGdQbG9oaXVBVkFzZjNrN0hvTFNQ?=
 =?utf-8?B?SmRZRkJuU0RHZFNQOFd0TDk1OXgwYk5NNVM2bEVPR3d3bkZTd0VGeFlhRlV6?=
 =?utf-8?B?dVpmOFVmL0h0SGtXM2pETVNaUFRSTEtBMGFSTnZiNzgrNmc1TTdzdHZNOWV6?=
 =?utf-8?B?RURPY29IQVFkNEdkM2p6cFlRcVVKc3U0QTVZZHRqTklaOFpxMFJodndrV0Jh?=
 =?utf-8?B?akhlY1hhKzdyc0ZHR08rUGxYMERLUytxSXFlNEZQMGVEMEVhOTViTzRXWDhK?=
 =?utf-8?B?anpvZmtVUzJScTZKTU9LRWVvYmw0SHNMcGYrM2w0MkZMT25YRm1FWldQQVlL?=
 =?utf-8?B?cFpCc2lpd1d6a2E1K0dDTHFtUnZQeGozaWtjS2FXMGlJWnREa1VNNjhiTVFH?=
 =?utf-8?B?cnA0eGdXQ2wxRi92QTA5eTBpRE9nRml2TzViemR0cUVYT0FSV0ltamV3RDBS?=
 =?utf-8?B?c3JUaHRsaDR2eUhoTGl0Y2s0Nk5PcE9OYjNiRWpFK2s3OXFYMEV6MElTc21D?=
 =?utf-8?B?ZEw3V2VrQUR4eHhaeEJ2bCtHQ1pYbWoyQjVQeEN3UFRpYXZMcEpEaEFsU1h0?=
 =?utf-8?B?QjAzemJYWUJHN1Arb3VFYTgrb0J3end0Mk1EazltakRKTjluYVZmQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8f792871-5b06-4b1a-1a39-08de687e1394
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 08:26:23.8578
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TZov2z+DjhBJZMVIjlOzgL/5cDsyvm3LSR7ATx1kmbJdziW9SG+kqTOg7IeHEzmRmtRHZBB/XU37z9U0gtRqOw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5526

On Fri, Feb 06, 2026 at 05:15:24PM +0100, Alejandro Vallejo wrote:
> This enables very aggressive DCE passes on single-vendor builds in later
> patches, as it will allow most vendor checks to become statically chosen
> branches. A lot of statics go away and a lot more inlining will be allowed.
> 
> A prerequisite for such optimisation is to expand Kconfig to have the
> full set of vendors. Adds Hygon, Centaur, Shanghai and the unknown-vendor
> path. Have Hygon select AMD, and Centaur|Shanghai select Intel.
> 
> Not a functional change.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> rfc -> v1:
>   * s/depends on/select/
>   * s/UNKNOWN_CPU/UNKNOWN_CPU_VENDOR/
>   * Removed "if unsure, say Y"
> ---
>  xen/arch/x86/Kconfig.cpu  | 43 +++++++++++++++++++++++++++++++++++++++
>  xen/arch/x86/cpu/Makefile |  6 +++---
>  2 files changed, 46 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/Kconfig.cpu b/xen/arch/x86/Kconfig.cpu
> index 5fb18db1aa..f895cfe97a 100644
> --- a/xen/arch/x86/Kconfig.cpu
> +++ b/xen/arch/x86/Kconfig.cpu
> @@ -19,4 +19,47 @@ config INTEL
>  	  May be turned off in builds targetting other vendors.  Otherwise,
>  	  must be enabled for Xen to work suitably on Intel platforms.
>  
> +config HYGON
> +	bool "Support Hygon CPUs"
> +	select AMD
> +	default y
> +	help
> +	  Detection, tunings and quirks for Hygon platforms.
> +
> +	  May be turned off in builds targetting other vendors.  Otherwise,
> +	  must be enabled for Xen to work suitably on Hygon platforms.
> +
> +
> +config CENTAUR
> +	bool "Support Centaur CPUs"
> +	select INTEL
> +	default y
> +	help
> +	  Detection, tunings and quirks for Centaur platforms.
> +
> +	  May be turned off in builds targetting other vendors.  Otherwise,
> +	  must be enabled for Xen to work suitably on Centaur platforms.
> +
> +config SHANGHAI
> +	bool "Support Shanghai CPUs"
> +	select INTEL
> +	default y
> +	help
> +	  Detection, tunings and quirks for Shanghai platforms.
> +
> +	  May be turned off in builds targetting other vendors.  Otherwise,
> +	  must be enabled for Xen to work suitably on Shanghai platforms.
> +
> +config UNKNOWN_CPU_VENDOR
> +	bool "Support unknown CPU vendors"
> +	default y
> +	help
> +	  This option prevents a panic on boot when the host CPU vendor isn't
> +	  supported by going into a legacy compatibility mode and not applying
> +	  any relevant tunings or quirks.
> +
> +	  Not selecting this options while selecting multiple vendors doesn't have
> +	  any major effect on code size, but selecting a single vendor with this
> +	  option cleared produces a much smaller build.
> +
>  endmenu
> diff --git a/xen/arch/x86/cpu/Makefile b/xen/arch/x86/cpu/Makefile
> index 7cfe28b7ec..84b060aa41 100644
> --- a/xen/arch/x86/cpu/Makefile
> +++ b/xen/arch/x86/cpu/Makefile
> @@ -3,13 +3,13 @@ obj-y += microcode/
>  obj-y += mtrr/
>  
>  obj-y += amd.o
> -obj-y += centaur.o
> +obj-$(CONFIG_CENTAUR) += centaur.o

Maybe I'm missing some context here, but I think this would break the
build?

cpu/centaur.c exports centaur_cpu_dev which is referenced from
cpu/common.c, and I don't see you making that reference in
cpu/common.c conditional to CONFIG_CENTAUR being defined?

I think the same applies to Hygon and Shanghai.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 08:46:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 08:46:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226131.1532671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpjO0-00027z-S9; Tue, 10 Feb 2026 08:46:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226131.1532671; Tue, 10 Feb 2026 08: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 1vpjO0-00027s-Ne; Tue, 10 Feb 2026 08:46:20 +0000
Received: by outflank-mailman (input) for mailman id 1226131;
 Tue, 10 Feb 2026 08: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpjNz-00027m-9y
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 08:46:19 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6b893f0-065c-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 09:46:18 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BL1PR03MB5989.namprd03.prod.outlook.com (2603:10b6:208:310::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Tue, 10 Feb
 2026 08:46:15 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 08:46: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: f6b893f0-065c-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HQBQe+0QnoqUhom5MGzsfYsxmR3WOVLpbtmGwJqFaybIevgZgHnG1WiD0GrjLpy3yg7VQstYqV6M1H3E+nLIrTJWL/iqhz+FGgqs6Ex7LIJigOAZRaL5NU2pBp2kC3+VCLUTzUCIvwZAXi8p7+gJDTDOPNPDQRKz8Z+TVgqzLs2O66hncP/GEoXAIkV4MCLfIVvgLGwG2JKBqdHsdnRKli7F3chpUZysDIyG7dH5X72zG0utc5jGQT0NTYnqaYcbMyxJcJ8F/R7BmZha0jd6vjTRo88lJeUatOwn8zZDL+BYz4Qi8R3kq30TyAJRFWup/1NGjWQqHWa+e+2ez5BmIg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WtrJmb+yUkl7dnB60ogjypBykGtGLQRUomR2oT0oPYg=;
 b=NaLl1ElAireOw9Cdj4Uw/SmKkppdXI4u5vCn/AAPR81XtS06knMuG6IyDASvdM143HyPzYkSrZF5c2EPHVmBkth7VyLw4gZtUqCSxPaY1OQbqDjmric0Jg28QNn3cYCFkjlDERuAfpKrgsOBzXrZ3428K2iLKlgwB6EfmekUah/8VQxQC5iBo9VzBah44Pdu3BaDpFfg1567dyEBym61xG4UckmkFmk6Rb6ACCPC0NH/ZzHOabcq3/FuT9LipgYTKIUIQe8jtRQChxVvLLse9d9/AmoS7dk6YyWmyyBrXHJxHgbcbbFIv9xZTy/jF/5wE3nAS4O63t7Z6EXtjrolYw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WtrJmb+yUkl7dnB60ogjypBykGtGLQRUomR2oT0oPYg=;
 b=Hw4dK4fUV34Bfmew9HvhMlfIwPue+0FthaxgbQh6cex9nkc2dUldkuOWxRHzzvsAtB+pSFqYvHlcfoekogdKpomF0QgWu49qVKQji8lvPrHfBMGjpmJ/8jFKRdvwoRVFuxUldEk0TyPbOeoIkDdTiRMSx52Oe0oWfPNCahDiURI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 09:46:10 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's
 CPU vendor
Message-ID: <aYrwUj1uaEgGL9hl@Mac.lan>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
X-ClientProxiedBy: MA3P292CA0022.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BL1PR03MB5989:EE_
X-MS-Office365-Filtering-Correlation-Id: c64ed4c4-1dc4-4978-2232-08de6880d987
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SU5IUWZPRDJxMnVtcVkzZjJCdDJpUmNFWk4zSkhtNmRCaElLYk5BbDh1Z0ZO?=
 =?utf-8?B?c0JpQzZwRXZ2Wmt1M0ZwVCt4eUVteG1OZUJ4eUg1TnZISFdzRnJ6bllIVmUr?=
 =?utf-8?B?ZkkyQWxMQkpqV2pYNEF6VHhKSDFHR3kwTGs0SlFLYUJBNjZUalJaMjZLOTZT?=
 =?utf-8?B?YUI3a2ljTzJtVDlFNnhQMnM0UTZCdk1jRXZPcFRrb1FVNmJBNHBLamRqVTNz?=
 =?utf-8?B?OWZWN3VFbU5QZm5aLytRbmkrZ3pZUEVtSk9nUVRhSmZyZk5TVTlXUmVMZFFv?=
 =?utf-8?B?OFJ5dGJ1MERuZlQvZVorL21UT2lyZlJEc2xKVFV0MGE2a2t3bE1WTHFJRzdF?=
 =?utf-8?B?eTZQWmpCclQ5UVZhY2pGejFBQXB2bXRUK1BrcmhvQUd1TkcrQkVmdGRlbWRp?=
 =?utf-8?B?c09VMEd3LysvcEZjZGNPdXd5MjJpamFRZTVDT1dPQU9PNmpRd1VHVTBLbnRR?=
 =?utf-8?B?b0JIYmpuWEU5WVpSajlXK0crejdLN2xIM3VRM2FIVVg4Mkdoamp3cUxOcTls?=
 =?utf-8?B?VTFMaHJURUVrSWp6R2VxZDlqOVVRWkJETGFDSExndzRyVlNwTDQvNEtnaWEx?=
 =?utf-8?B?Tk1hSE5tWk9qUDlMNytIeWhQUmpxaURDdXQ4Ym1Hc0xoalhoSUNHNHJ4RXcy?=
 =?utf-8?B?N2t1RXBwVzloczU0Mi9VUE81S08veVgzamcvMkFseHNUTW14QVRWMDU0R01T?=
 =?utf-8?B?ZnU2dFZ4MFNZQWh0b3FVU25jZytMYWFLNURmckF1by9vMUJnWk9udFRYZkhr?=
 =?utf-8?B?QnFrOEk3RmxrSGhUd01Ia1h2U1VPdEtZMmNvcjdla080UDR1L0FPczl4N2Ri?=
 =?utf-8?B?Z3RPblg0eGk3NFgzbTRaRUtiWTBlVDdnTXNKbTM0NFFEd0RRa0NzTWtGSTZi?=
 =?utf-8?B?SFJiUlVqNmxVaEdKTkM4c3g2SDVJd21MM3lkYVpzSGxubk9Cbm80RGVuNjFO?=
 =?utf-8?B?YmNJYS93dzUxdk41eVNyeW82Tk12SVg5SzJCckFhTitCUHVkUXY3UXI3cUZv?=
 =?utf-8?B?UG5GSE1aUDFmVFJSbGJ6dWlUQ3A5ZVd2SjFuc1JoU3RBUlhNUWsyVVF2VCt4?=
 =?utf-8?B?Y2QrQms1Um1Mb0EvbCtFak5wSnFESUUxZkQ0dnNQV1o3eVBsZlFNMTRDRzJu?=
 =?utf-8?B?cWdUR3RhWTNQSVFhYTQzcXd0Y1F3TW1NY1ZYNGF0SThKKzR4VUhEOHVVakE2?=
 =?utf-8?B?UmtoNjcwSWdoWVMzTmpOakgyazdvUUdlUmFLRWdzb2t4cEdrb2RocWpnVVVy?=
 =?utf-8?B?aDh5UXFMaTZpYWlneUlXZFkwMkFLR2h0TllGVEk4a05Odyt2Wng0M0Fma0JN?=
 =?utf-8?B?WHZ1TDJCNW9wV1FzVjFnamtFSW1TY2JGKysxb2N5L1hwU2lsVGRPazhreDNh?=
 =?utf-8?B?Q3ZOUDRTUWJaR0RJTWdBSkFFSDZwbUk4TCt0TEVKbnB4ZG9iV3VZWGZqd2FW?=
 =?utf-8?B?S3pyY3pKOWc3MjZrRmJpMmtaL2JydHA4QVREYk1oTVJPYkpHdXNuMWdLRmJW?=
 =?utf-8?B?ZGxHVE5RNEYzajZaM3dKYzhGTDFTYURxMjBIN2pmQ2I1MWNSR0lwbUEzeGli?=
 =?utf-8?B?aFZRZHJyV2RaT3IwVXhwZEdKWm5kck0yblF4ZHIrR3l0UXVpaWxWVTNZNjJj?=
 =?utf-8?B?azdIMXQ1UU9KYkhFWWRJSjZKQUFvN0dKV0xYck1YV3VIU0tIVkRvMzVHS1pk?=
 =?utf-8?B?UFR1YzZ0UDlYWTF0cFV3ZVMrdnNlK09meHlTRlljZzJiM3d3TEI2dXpFZ0Jl?=
 =?utf-8?B?L0lQS0VQVy9aTGF0N2dCOGk5MFBhNUN0TE1xTjVzYllodjNScGRjQzBpZlRZ?=
 =?utf-8?B?cjBvdDd6NGRxODFGWjYwM0s2eHNGZVlNenFHQUZDUHN5VlhwQVRYeFRzMFlx?=
 =?utf-8?B?Q2krbkYxWml1blkrQUdBVHhBSi9Va3RpaWtIeWNvREZSRThUQnhSUWdKckNj?=
 =?utf-8?B?aWNVTUhMbkRnQmtNdXVIZ20wODIya2U1UjhjNlllVkdtZ1lRN0thYkpwY2c5?=
 =?utf-8?B?UExHWHBVOWxmSTQvWGdwNmxCVFNpT1ZlODBURVdpWEtmaXVhZlk0STQyR3Zu?=
 =?utf-8?B?TDJCbVBLVW1KU2xlNHFvdTZoMWlGVnZCaHVZMm5QSkwra0g0bUZIZ2d4Qk5j?=
 =?utf-8?Q?KZVk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q0dHUFhUVlNMakU4OHhBUjFCNnhLY2dXTDYrbnFXL2p1Q3REbFVTTWFpYmVC?=
 =?utf-8?B?NmYrdDhTYnNHUVl4ci9YaFNyOXRxVk5UQ1NnL1pXV1E4R1ROT2JHMGxFeExT?=
 =?utf-8?B?MGxqZndlQWQ4QktPS1JKS04wMGE1QXBVRHpSNksyeWcxMWZXdHV3Z3VmbEpL?=
 =?utf-8?B?c1hvZGEwN1ZyZFN4dWUvdjBwZWVyeXE2WEpjRVhKVy9QanF1MWpuWHJOSUhl?=
 =?utf-8?B?UXRJYjN3eU05YTFOWE9RU28xeGNoYXJmbFBISG9SMCtvU0hQaEFwdTl3d3c3?=
 =?utf-8?B?SG1WNHYyRnl0SjFlNGk0UEJkMEQ1bjNKMjZrU2ExMlluMzhOeFIxcGRrMy93?=
 =?utf-8?B?RUExc2JDc2FXU1NHbmJrdGtYUEZHY3Q2Y2Z3bUlqaHFtTjRBeW9NUzlRNXhF?=
 =?utf-8?B?VHFNc1lEY29jb3B1QTJOM3FWU0Z0dUEzdTN0SXZmdkNRMDczQTlvdFppZ3lM?=
 =?utf-8?B?M2FaWXFWQzk4cHlDRXlZYTFLZEZQaURvejA1NVAxbW55YStiTDNhdTFISng1?=
 =?utf-8?B?RVM2MXZKbHFMSi92SVNrdW1Pb2FldkJ1RkhBcW1KdkZrZVhvdGJENXgvWHZT?=
 =?utf-8?B?bFJjWUF4WWtmWGI0WklrY09OTXU0STRlNE1WUnJDY01tekNRVk5YMUUvdWxi?=
 =?utf-8?B?cTE5WWNRQjFYSyt1OXk1RUNvakFnSWE4N3JNZkpiK3d5d01sdWNqeU04c2xZ?=
 =?utf-8?B?WHJCbHJ5aUFmVEU0WmFZVm11SGkwbWdBV2VkSmU1RmFlOGJpMjQvWUVRVXZY?=
 =?utf-8?B?WUFDSTFtbWx2REdqd3psVGx5Z0pKUmlraGtBT0dlOUN6NHFYMmNXdmc5Z0JS?=
 =?utf-8?B?eWxIbmpzWTUyeTJQeWhEaWJZWXlzVDJvTjlJaytUUEFIdTY0MFplN2RhRFFa?=
 =?utf-8?B?RUlYd2hsUmsrd0lYdzk4emJDSWN3SXcxcFphSmV2cUpJb3dyS3JWRDlQMEY2?=
 =?utf-8?B?OW80d3puTVJGTG5SdjhZU2dwMWxoN2dQeDlIb25BVjc2Q0VHYjRBUkw5OXpa?=
 =?utf-8?B?SHcyVktWZGJHMmVkUllMbGxuVHFxY3NMekFYenh5MDFKaWZjeVpzUlJIZXk4?=
 =?utf-8?B?QWsrelZScmxJTHNHTjBjQ2p6N3N6UTlJeTZpdjZuQjRqWmEwS1JlL3NzVGUr?=
 =?utf-8?B?cEFBb2RWY3hMN2NYSUVxdnk3UnF6N216cXZVL0NhLzdOWTJMR0tKMEVhbFdn?=
 =?utf-8?B?V0ZtL3lrL0tGb3ZzRnpzTVo2VHJZNVdBYUsvN2FLQkkvMFg4elhJdWl2Yjc3?=
 =?utf-8?B?T21QSmtjTDN6Q0NHUHRhZUdVaEd3dUZ3WHViSXkzdHZhZEx0MnpXQVdDaHUw?=
 =?utf-8?B?QW5jWUdRZjA0aXBmTlZ4bitQVW5CRTAwSkVnSDJMNVFnclJ6NzJnNk9rUTNW?=
 =?utf-8?B?NWltczhWb3RRbktaR25TV0VXWkpYSFA0MHNpVXg3ZWgvbXRJUDROWW1JMjBm?=
 =?utf-8?B?Y1FRMnJJY3E2Q3ZJZk1LcUg0UWIzcHBCMTBkZE14ZTdnTEdwcEl5Z1BGdndr?=
 =?utf-8?B?UVlhOHdqZHZiRmYrT25DQmxEOGppUlJIQnNzVGs2WGZUWWFRL1YrNngzd2Zt?=
 =?utf-8?B?dXJGaXkrY0JpNUhiVzk1YStSNlhLZUJqZ0N1NGpzRGdoRGFYNXlBeVg2SDEv?=
 =?utf-8?B?QllCSDJjRnBUaitKZFdhdUpWWEh0RHVqUVpVNms3cUZOdjVTbUxDTXNqUDBt?=
 =?utf-8?B?aHRvNkxaVTJHVW5jY3g2aGkrRkQzT1dLeGtuVFgxY0ZpVzAzMStUVWt0L01r?=
 =?utf-8?B?bzNZbFRvRjM1S2NOL3E3RURhR2FZdC9QUlpUcm1yUjVvNk8wMUVtMEd0d2RP?=
 =?utf-8?B?cnNhbXVyWEpGZU9sV0c2V1Z1VHMvVVJXM1laVVBuUUlPVUFzdkRVZkNqUWZz?=
 =?utf-8?B?MlViY3ZKem54SXZhcXBCSFE0ZFZ5ZU96eUo4N29VU0FFemtsMVhFb1VKZnI4?=
 =?utf-8?B?QkozQjVNdmJKaWRlN1dCbG8rRmxqaDEvWldBNjZIWjVqR2dscmt2ZDlHZVM0?=
 =?utf-8?B?MmJTQmtaQTY3eEJSSnczUk1BdlRtNy9ZRnhacFh4cGIxMTlLQ1lnL3VFMndO?=
 =?utf-8?B?R2pxM1J2UW10MVRhMjl5SWxuVVBwR3l3YnA1YkF2eU1ZcjRxQnovb1RnL3dF?=
 =?utf-8?B?cGkzTHNtNit3RzV2NlNLa0lmd0ZTamtxR2k0dTltRXIwMWRFa0ppMXJWVE9v?=
 =?utf-8?B?dThWeTlOLzRlUHpCZW5RczZsM243WlRHbTZXZ1NpVHVVYlk3Q05TZXVqNjA4?=
 =?utf-8?B?WkVvdEQ1cnNZVmJGd2J1S3k4S2g2Nmw5aGN5K0w1eHE2R0dHcnZEdHltWmdu?=
 =?utf-8?B?V2J2U2kyMXMyZHB6eUhORjBmeVE3Snl6MzNHd2dYY1J2YzRJTmtpdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c64ed4c4-1dc4-4978-2232-08de6880d987
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 08:46:14.9779
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ++m9tpYX92SZCe7JSlWutBbJAn5qcnq2fng0Vtvwji4yhaeKWwPT5Plq6xqYZYGqU3zNAkQUcYlT7kdXTOde7w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB5989

On Fri, Feb 06, 2026 at 05:15:25PM +0100, Alejandro Vallejo wrote:
> Introduces various optimisations that rely on constant folding, Value
> Range Propagation (VRP), and Dead Code Elimination (DCE) to aggressively
> eliminate code surrounding the uses of the function.
> 
>   * For single-vendor+no-unknown-vendor builds returns a compile-time
>     constant.

This is kind of misleading IMO. It will possibly allow such
optimization for Intel or AMD, but not for Hygon/Centaur/Shanghai, as
for those CPUs you will always end up selecting either Intel or AMD as
a requisite (so X86_ENABLED_VENDORS will never have only a single bit
set).

Not saying it's bad, but I think the comment above should be adjusted
a bit to notice that such compile time optimizations for single vendor
builds will only be applicable to Intel or AMD builds.

>   * For all other cases it ANDs the result with the mask of compiled
>     vendors, with the effect of performing DCE in switch cases, removing
>     dead conditionals, etc.
> 
> It's difficult to reason about codegen in general in a project this big,
> but in this case the ANDed constant combines with the values typically
> checked against, folding into a comparison against zero. Thus, it's better
> for codegen to AND its result with the desired compared-against vendor,
> rather than using (in)equality operators. That way the comparison is
> always against zero.
> 
>   "cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)"
> 
> turns into (cpu_vendor() & X86_VENDOR_AMD) in AMD-only builds (AND +
> cmp with zero). Whereas this...
> 
>   "cpu_vendor() == X86_VENDOR_AMD"
> 
> forces cpu_vendor() to be ANDed and then compared to a non-zero value.
> 
> Later patches take the opportunity and make this refactor as cpu_vendor()
> is introduced throughout the tree.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
>  xen/arch/x86/cpu/common.c             |  6 +++++-
>  xen/arch/x86/guest/xen/xen.c          |  4 ++++
>  xen/arch/x86/include/asm/cpufeature.h | 27 +++++++++++++++++++++++++++
>  3 files changed, 36 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index ebe2baf8b9..6f4e723172 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -328,7 +328,11 @@ void __init early_cpu_init(bool verbose)
>  	*(u32 *)&c->x86_vendor_id[4] = edx;
>  
>  	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
> -	switch (c->x86_vendor) {
> +	if ( c->x86_vendor != cpu_vendor() )
> +		panic("CPU vendor not compiled-in: %s",
> +		      x86_cpuid_vendor_to_str(c->x86_vendor));

I think you want to print both the current compiled in support plus
the host vendor as part of the panic message.

> +
> +	switch (cpu_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;
> diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
> index 77a3a8742a..ec558bcbdb 100644
> --- a/xen/arch/x86/guest/xen/xen.c
> +++ b/xen/arch/x86/guest/xen/xen.c
> @@ -57,6 +57,10 @@ void asmlinkage __init early_hypercall_setup(void)
>          cpuid(0, &eax, &ebx, &ecx, &edx);
>  
>          boot_cpu_data.x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
> +
> +        if ( cpu_vendor() != boot_cpu_data.x86_vendor )
> +            panic("CPU vendor not compiled-in: %s",
> +                  x86_cpuid_vendor_to_str(boot_cpu_data.x86_vendor));

Is this going to be useful?  I fear the panic here might happen even
before the console is setup, so a user won't get any output from Xen
at all.

Would it be fine to allow such mismatch in the hypercall setup, just
for the sake of getting the console page setup so that
early_cpu_init() can print a proper error message?

Allowing the vendor mismatch here won't require any extra code, it's
just the selection of the instruction to use to call into Xen when
running in guest/shim mode.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 09:07:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 09:07:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226148.1532680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpjiY-000590-F5; Tue, 10 Feb 2026 09:07:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226148.1532680; Tue, 10 Feb 2026 09:07:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpjiY-00058s-Bu; Tue, 10 Feb 2026 09:07:34 +0000
Received: by outflank-mailman (input) for mailman id 1226148;
 Tue, 10 Feb 2026 09:07: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpjiW-00057T-Ng
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 09:07:32 +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 ee44ae1a-065f-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 10:07:31 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4833115090dso5494695e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 01:07:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d835f6bsm41896715e9.14.2026.02.10.01.07.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 01:07:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee44ae1a-065f-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770714451; x=1771319251; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hi4PYIoEZLxbtf5syjsh0e/Gt9eKXMZnwU7/KBvLkzk=;
        b=Fy8HFW4J0C6JBv8rCpu3gbwy652f6gISjfacJuuzpz/3yHsevv+wqQeX/8cWC/Sd2F
         +W3UlmRkQlOPIVtK508TiE9JAWpnnJF3Yvg9L/eFwcHOoc0Mmi2t6WBgbPQhF1TPSIl8
         nXz1lRgLWb3iDF/k9lvkzBrhFN0s70IQqz91hEpteckvX4eVRJoPuiMS27tSp4WFzRgk
         LAdd4+5hiOqLqQl9ilwUIrBkh+/zcuc0Ec314PAYn30fGfhAaw89Cwa4N3XkB0cuIzd4
         wmF4kNcVqwzWEdeoHbAceuSMSd6fIrKcJPwTGmHU0H08WgHSthssoPgtOSKFqMSB7I28
         JQDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770714451; x=1771319251;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hi4PYIoEZLxbtf5syjsh0e/Gt9eKXMZnwU7/KBvLkzk=;
        b=QjUSfDGAto6x+A0gppCOpDuupqVTvW5IwFVQZh9XDemhN6F1nr8l/Mpzdywuv70qK7
         VN8tN9oX0AlDJECgQu3Zn5T9dSWHwwK32N9PhvCDHyJWC041JxDZo55zDoGGcowM133e
         Cds3gmb+/JzmS2SzTNVMfwL2/54A6UIgrFSpB0ILYInyBW6JkTvwtzAKZm6kOM48K3zu
         Yg93hbKG04Wud4x/xThXgWBhzr+1rsC9NMzxFrLk+mgGomluYlAtaBCNxz8z2ko9kQIY
         0jcJCN3M/ptTVwyJn8pJ2/SxMSguqEsV/ntjZ5Gf2UQ+rY+AO3+eJHdghPtw1foVJ51P
         FQ0g==
X-Forwarded-Encrypted: i=1; AJvYcCXERlIG1qBrfKNq6ngQomLD0FSYcms/R08Efa/bbgO7BHqIYqCBHOzKOrNZEwFnyOyaTtdjpnYMAXA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2PoTfdUQUdrhjCQ5qnZUoLWR8EpxthaNbpDRd6noV49xmg+93
	ZURR+SNUiIh8aynFogepJoagVbY9Ed0bkXFcdkfGVYuXVJnAZZIgir+M+vVPPfzlGA==
X-Gm-Gg: AZuq6aK3OvwNeRIj857VJHA9xQfiLCWIJaOXXgJ0MkQYPiqU5G6av8FBDNzn1hBD2FB
	0KhqOIG5sE6zWIo4iSQ4gq5Y2orfr48azUzA6LUB82RiCn3EjFSaeVh5mUIB5B7T/OcFLFjXS5B
	LYNO4D/4p1VXFfDF5onoi9Yj1Dqs/psgSoQVhrh9lI3nXCYRUqkzEJcoVe7IEB2RO5yZCMrbysD
	isF0wb5Q1OycbKkTZuI+EZfgqZn1UCsLIUOUAX/lcedc9/R00+64f6sbLQuk7ZfkzoaechCNIkg
	O8CfaxSDvU/eznrcANoWRoEBP2GF3X05/vM1fOmZrN9vDTOd58HzZT5klU6l+1UKaEwbVR/XGtz
	JcaMziIzJ+Ql4+GDknFvvVR5sWzJtNnBdRt6HOL4lyz4xa2cEoHKhqxuemx0ZXsTxyxe7QHWlWY
	/hUBCX7Fc3rjYZBtB+1GwiaL1CH7g9gxesixXkJYLs6aXR/CJ9Ge24BkTdD/qDBOKhqtINhJkQb
	FAbLH/kEh7SPrw=
X-Received: by 2002:a05:600c:8116:b0:480:3b26:82c3 with SMTP id 5b1f17b1804b1-4832021b549mr173449835e9.20.1770714450688;
        Tue, 10 Feb 2026 01:07:30 -0800 (PST)
Message-ID: <704f8923-6adc-457d-bde9-b1821b82ea79@suse.com>
Date: Tue, 10 Feb 2026 10:07:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ioreq: Extend ioreq server to support multiple ioreq
 pages
To: Julian Vetter <julian.vetter@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: <20260209123025.2628513-1-julian.vetter@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: <20260209123025.2628513-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 13:30, Julian Vetter wrote:
> --- a/xen/arch/x86/hvm/ioreq.c
> +++ b/xen/arch/x86/hvm/ioreq.c
> @@ -71,6 +71,38 @@ static gfn_t hvm_alloc_legacy_ioreq_gfn(struct ioreq_server *s)
>      return INVALID_GFN;
>  }
>  
> +static gfn_t hvm_alloc_ioreq_gfns(struct ioreq_server *s,
> +                                  unsigned int nr_pages)
> +{
> +    struct domain *d = s->target;
> +    unsigned long mask = d->arch.hvm.ioreq_gfn.mask;
> +    unsigned int i, run;
> +
> +    /* Find nr_pages consecutive set bits */
> +    for ( i = 0, run = 0; i < BITS_PER_LONG; i++ )
> +    {
> +        if ( test_bit(i, &mask) )
> +        {
> +            if ( ++run == nr_pages )
> +            {
> +                /* Found a run - clear all bits and return base GFN */
> +                unsigned int start = i - nr_pages + 1;
> +                for ( unsigned int j = start; j <= i; j++ )
> +                    clear_bit(j, &d->arch.hvm.ioreq_gfn.mask);
> +                return _gfn(d->arch.hvm.ioreq_gfn.base + start);
> +            }

We may want to gain a bitmap library function for this. Sadly
bitmap_find_free_region() is too special purpose for the needs here.
Otherwise I think ...

> +        }
> +        else
> +            run = 0;

... the construct as a whole would benefit from re-working into
if/else-if, as that'll reduce indentation by one level for the main
block of code.

Also, nit: Blank line please between declaration(s) and statement(s).

> @@ -121,52 +153,95 @@ static void hvm_free_ioreq_gfn(struct ioreq_server *s, gfn_t gfn)
>      }
>  }
>  
> +static void hvm_free_ioreq_gfns(struct ioreq_server *s, gfn_t gfn,
> +                                unsigned int nr_pages)
> +{
> +    unsigned int i;
> +
> +    for ( i = 0; i < nr_pages; i++ )
> +        hvm_free_ioreq_gfn(s, _gfn(gfn_x(gfn) + i));
> +}
> +
>  static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
>  {
> -    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
> +    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
>  
> -    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> -        return;
> +    for ( i = 0; i < nr_pages; i++ )
> +    {
> +        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
> +
> +        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> +            continue;
>  
> -    destroy_ring_for_helper(&iorp->va, iorp->page);
> -    iorp->page = NULL;
> +        destroy_ring_for_helper(&iorp->va, iorp->page);
> +        iorp->page = NULL;
>  
> -    hvm_free_ioreq_gfn(s, iorp->gfn);
> -    iorp->gfn = INVALID_GFN;
> +        hvm_free_ioreq_gfn(s, iorp->gfn);
> +        iorp->gfn = INVALID_GFN;
> +    }
>  }
>  
>  static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
>  {
>      struct domain *d = s->target;
> -    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
> +    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
> +    gfn_t base_gfn;
>      int rc;
>  
> -    if ( iorp->page )
> +    /* Check if already mapped */
> +    for ( i = 0; i < nr_pages; i++ )
>      {
> -        /*
> -         * If a page has already been allocated (which will happen on
> -         * demand if ioreq_server_get_frame() is called), then
> -         * mapping a guest frame is not permitted.
> -         */
> -        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> -            return -EPERM;
> +        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
>  
> -        return 0;
> +        if ( iorp->page )
> +        {
> +            /*
> +             * If a page has already been allocated (which will happen on
> +             * demand if ioreq_server_get_frame() is called), then
> +             * mapping a guest frame is not permitted.
> +             */
> +            if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> +                return -EPERM;
> +
> +            return 0;
> +        }

How can you simply return here when you found one page already mapped?
(This will likely solve itself when the data structure is changed; see
remark at the very bottom.)

> @@ -174,32 +249,43 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
>  static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
>  {
>      struct domain *d = s->target;
> -    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
> +    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
>  
> -    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> -        return;
> +    for ( i = 0; i < nr_pages; i++ )
> +    {
> +        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
> +
> +        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> +            continue;
>  
> -    if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
> -        domain_crash(d);
> -    clear_page(iorp->va);
> +        if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
> +            domain_crash(d);
> +        clear_page(iorp->va);
> +    }
>  }
>  
>  static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
>  {
>      struct domain *d = s->target;
> -    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
> +    unsigned int i, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
>      int rc;
>  
> -    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> -        return 0;
> +    for ( i = 0; i < nr_pages; i++ )
> +    {
> +        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
>  
> -    clear_page(iorp->va);
> +        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
> +            continue;
>  
> -    rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
> -    if ( rc == 0 )
> -        paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
> +        clear_page(iorp->va);
>  
> -    return rc;
> +        rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
> +        if ( rc )
> +            return rc;

No rolling back of what was successfully done before will want explaining
in a comment.

> @@ -260,84 +263,120 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
>  
>  static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>  {
> -    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
>      struct page_info *page;
> +    unsigned int i, j, nr_pages = buf ? 1 : NR_IOREQ_PAGES;
>  
> -    if ( iorp->page )
> +    for ( i = 0; i < nr_pages; i++ )
>      {
> -        /*
> -         * If a guest frame has already been mapped (which may happen
> -         * on demand if ioreq_server_get_info() is called), then
> -         * allocating a page is not permitted.
> -         */
> -        if ( !gfn_eq(iorp->gfn, INVALID_GFN) )
> -            return -EPERM;
> +        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[i];
>  
> -        return 0;
> -    }
> +        if ( iorp->page )
> +        {
> +            /*
> +             * If a guest frame has already been mapped (which may happen
> +             * on demand if ioreq_server_get_info() is called), then
> +             * allocating a page is not permitted.
> +             */
> +            if ( !gfn_eq(iorp->gfn, INVALID_GFN) )
> +                return -EPERM;
> +            continue;  /* Already allocated */
> +        }
>  
> -    page = alloc_domheap_page(s->target, MEMF_no_refcount);
> +        page = alloc_domheap_page(s->target, MEMF_no_refcount);
> +        if ( !page )
> +            goto fail;
>  
> -    if ( !page )
> -        return -ENOMEM;
> +        if ( !get_page_and_type(page, s->target, PGT_writable_page) )
> +        {
> +            /*
> +             * The domain can't possibly know about this page yet, so failure
> +             * here is a clear indication of something fishy going on.
> +             */
> +            put_page_alloc_ref(page);
> +            domain_crash(s->emulator);
> +            return -ENODATA;
> +        }
>  
> -    if ( !get_page_and_type(page, s->target, PGT_writable_page) )
> -    {
> -        /*
> -         * The domain can't possibly know about this page yet, so failure
> -         * here is a clear indication of something fishy going on.
> -         */
> -        domain_crash(s->emulator);
> -        return -ENODATA;
> -    }
> +        /* Assign early so cleanup can find it */
> +        iorp->page = page;
>  
> -    iorp->va = __map_domain_page_global(page);
> -    if ( !iorp->va )
> -        goto fail;
> +        iorp->va = __map_domain_page_global(page);
> +        if ( !iorp->va )
> +            goto fail;
> +
> +        clear_page(iorp->va);
> +    }
>  
> -    iorp->page = page;
> -    clear_page(iorp->va);
>      return 0;
>  
> - fail:
> -    put_page_alloc_ref(page);
> -    put_page_and_type(page);
> +fail:
> +    /* Free all previously allocated pages */
> +    for ( j = 0; j <= i; j++ )
> +    {
> +        struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreqs.page[j];
> +        if ( iorp->page )
> +        {
> +            if ( iorp->va )
> +                  unmap_domain_page_global(iorp->va);

Nit: Indentation.

> +            iorp->va = NULL;

Perhaps best to introduce and use UNMAP_DOMAIN_PAGE_GLOBAL(), paralleling
UNMAP_DOMAIN_PAGE().

> +            put_page_alloc_ref(iorp->page);
> +            put_page_and_type(iorp->page);
> +            iorp->page = NULL;

Maybe also PUT_PAGE_AND_TYPE().

> @@ -29,6 +36,10 @@ struct ioreq_page {
>      void *va;
>  };
>  
> +struct ioreq_pages {
> +    struct ioreq_page page[NR_IOREQ_PAGES];
> +};
> +
>  struct ioreq_vcpu {
>      struct list_head list_entry;
>      struct vcpu      *vcpu;
> @@ -45,7 +56,7 @@ struct ioreq_server {
>      /* Lock to serialize toolstack modifications */
>      spinlock_t             lock;
>  
> -    struct ioreq_page      ioreq;
> +    struct ioreq_pages     ioreqs;
>      struct list_head       ioreq_vcpu_list;
>      struct ioreq_page      bufioreq;

You allocate contiguous GFNs and you will, as per what Andrew requested, also
allocate contiguous VA space. No need to inflate the structure like this then?

Having reached the bottom - how's qemu going to know that multiple pages are
in use?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:04:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:04:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226166.1532689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpkbW-00047P-J7; Tue, 10 Feb 2026 10:04:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226166.1532689; Tue, 10 Feb 2026 10:04: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 1vpkbW-00047I-Fn; Tue, 10 Feb 2026 10:04:22 +0000
Received: by outflank-mailman (input) for mailman id 1226166;
 Tue, 10 Feb 2026 10:04: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpkbV-00047C-NX
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:04:21 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd46a32b-0667-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:04:19 +0100 (CET)
Received: from SN7PR04CA0110.namprd04.prod.outlook.com (2603:10b6:806:122::25)
 by CH3PR12MB9077.namprd12.prod.outlook.com (2603:10b6:610:1a2::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 10:04:11 +0000
Received: from SA2PEPF000015CC.namprd03.prod.outlook.com
 (2603:10b6:806:122:cafe::a1) by SN7PR04CA0110.outlook.office365.com
 (2603:10b6:806:122::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 10:04:10 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 10:04:11 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 04:04:09 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd46a32b-0667-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xtulc5X808Xq4tXnJx7wUDwMVOlzRPZNxynd0abYno4hAYTtjr3ZC8UZzYZqfcZG0EPlYxeEoApdSw3OO0d7/jjJ7ZehQ1YEA43J6yeTAiURUo6vSr+dSBhyuQfjR8dG9O6SA31SapKZxpBvVDMj4lt0/6b/Xge/tePSiBOUtZWjuB/9JA+ZDXnmty3dOR+Y7NB341rkrIVg2Se/8LlAgQK5Q7PT9qO4mq7jaErU9zJaoKyr9aEi7DuOtFXSLKQuVOIYe8SunM9hb9rz8Mk9kwoAqJLve3u3RYNDW6txUzRD5Ra4LCHPU/PIEZvDJzZhWTG1nDGmjJPUoNXN+42MTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WvhYazLK+71/kv/S3vQzET4ZVI5R2dafFeM/uDoiKnA=;
 b=bYBN+HGOeMvH7jEKEGwCfkTMCj/0sGdnGm5JgUU+8Lhz+PhVKyMPy18gHlLcBVtcTAbchfoYGK/D2sXxraqhiwe0qD3YLlepyi6FQBmRseqAsWIH4KsPhs9kpZAr1tflEBx4R/gJcX2i7QolQSss+JCKKY+JJ9Chc64iZTdra4+DoOi7lp8EV2n7MYhnL8ep+p4wTT3DTDUmFos+PxXUvp81tb8ZAMo1STnq+a6BrrJ1UNHs6vglUFsSd5rsy9TAdRxO+HvXuyz27ZrPBL64ATC43Pi1tZG3/78ODJjS4benVtsdSgTVrJVhlBe1tc9cY92O66L2hGRVrqWiIzp9/w==
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=WvhYazLK+71/kv/S3vQzET4ZVI5R2dafFeM/uDoiKnA=;
 b=bXaOL50OH2CCH5wvMp9DYanZ0IyuXkDgrMqo+BDWIZ/4zD9b5ST3k96FVcTVCGT2gjmm5Eesd7XUbokcDS2Svsq1ie7aOFkbcOw6NPZ6mb/zEjzfJpimlajGCvLECgGxq6tCGEH/lRd2f2zyflW1etV/YaSBCRROHDvcEuS0EMY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 10 Feb 2026 11:04:03 +0100
Message-ID: <DGB737H1X57K.W7JIW1QG8RX3@amd.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 02/12] x86: Add more granularity to the vendors in
 Kconfig
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-3-alejandro.garciavallejo@amd.com>
 <aYrrrLuDXuOffsgx@Mac.lan>
In-Reply-To: <aYrrrLuDXuOffsgx@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CC:EE_|CH3PR12MB9077:EE_
X-MS-Office365-Filtering-Correlation-Id: 4ddeb9b5-1f8a-4db0-91ea-08de688bbd20
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?Rkc5d2p5amlFdVFDeFRwZEhlRVBWdjR3dllMVVp4VkxuL2ZlSVRuQ0pKV2pC?=
 =?utf-8?B?QThONVpMMVpVbjE0aiswbjk2d3ByTzRRTUF3ZjVyLzlHRW9qSGdaVmtMOC83?=
 =?utf-8?B?SHo4R0NuVkQxcEp4MWx4bHZicmtwNmNDcENHYm94c3ZFRkw3Y1hCNDErRGhk?=
 =?utf-8?B?RXVRN3VPdDN5dTZGN3RSc3VvUEFNM3BPTHZjc1J1WGl0ZWs2N1Q5OC90SU51?=
 =?utf-8?B?eTdNV2p1VENVOXhuUHdjZ2pkdFRwN21QN1hhc29LV1BqdHNZUEVlMEFmMjUz?=
 =?utf-8?B?WEJWaThUQ3ZFVDhhRW1xaU9EVGdmL1JkbUJobE1rQ1pCTjVObXdMWGFWNjRl?=
 =?utf-8?B?d1RLZUdpdHV4bVNmU29HandqVGI4S2VxYlVEOE96b1VoTVNXRmxRN2ZWb3hU?=
 =?utf-8?B?MndKbE9DNGEzdy9XZWZTbzlrMFZPWStWRis4K0V0UE1rK0R6Q1ZjaTRIS1Nr?=
 =?utf-8?B?TmhZTWpaZStrU3VlSzdBaU9CRXJidkQySm5jNWdjRlo3a2hlbCtic0RVM1lT?=
 =?utf-8?B?bU01Zyt5Y0phWlR0UFVUdGRRNDJpZWZUMlZROEphaFJaeGkwREtnRlhiNXlr?=
 =?utf-8?B?Z1BIWkpWWmFDMnlvd3NVN2J6VVFkYmkxeGdqdXFseVBsaG81bkpNMlZIdmx6?=
 =?utf-8?B?ZlNiQW80c2Zqam9sb3E3d2ZOcmhlNnd0RTcyOGphVHhrZXpzVmZEOU1kd1hK?=
 =?utf-8?B?NUlmZkp0V2dqZTJVTnBIU1hXVnNibnBnOEd1dGpHZUVHN25aWVQxVjZ5SUJw?=
 =?utf-8?B?azA2YnJXcmhKTHU3ZXJBZm5IK2drMnVRRkNPKzFwUUZodWl6VENsUVF1K2JN?=
 =?utf-8?B?WGVKQVFOajdVVU1iRDVEdmc0NzNpVUFXN2piNFNOUXZWNFlzM0VOekEvMDgv?=
 =?utf-8?B?NEYrNjJLdGVIdGJkckVUamZhblhaOEtyaEJNYTRQRi9nSXg0bEs1U3RVK1Bq?=
 =?utf-8?B?RzkzSFJ5SlNzS1NmMWRhZlN6dHFUSytkK1VRSVVpNjdiT01DQXdvU25KOFdi?=
 =?utf-8?B?UGw5eTRkMS9tUWkzS3BPbzkwQ3FvV0ZxdkJEWlFibTBHTXRMdWFtenlURGh2?=
 =?utf-8?B?KzFCZWlqa2dVbkxkRnE2cm5wd2FQTmhqd2ZVUG1nRk5jb2U4S2N5RFNxcFp5?=
 =?utf-8?B?WFdyS2pXcHJhTitSdGp0ZmRxRm1KemdXTThRU0xLVEkyOUR4bjRYREVhZXB6?=
 =?utf-8?B?NTcyQzI1cE02ZHg4UXVmdGxsYitkbThsU3ZCRERXR2lJbk02NkpoVjBPOFNo?=
 =?utf-8?B?elhXMUJKL3NYWkErZTUwSWRNS0pjZ004QnBJcGVnb3FabEJyWFZacG1CdVdW?=
 =?utf-8?B?L3VQSG9IOHB2TGhuQ000RU5WdnpSUTJ2TUhCSTNZUlVUbDYybUtRcXhLUE5t?=
 =?utf-8?B?UHJNK0FGTW8yMk8wZThUYzk1bjBMU2pKc3NET1BZVjEvZUovSFV5WTYrci9j?=
 =?utf-8?B?ZW9SSW04Zm16RXA2b2RGMW80UzRnYzZPcnZ3elVvb0x5eUx5TjluL2xRV3Vo?=
 =?utf-8?B?TlJhR2FwdllGMGdZajVBM2dCM3QvM3Z1Z1ZnME1rakxteXJEUFJ0OTFlWUFT?=
 =?utf-8?B?UDh0WDcwZGhVaUpsMjBOUXNkeWNubE9CM3FCczdleEJrUzFxZldMYXZkVFRi?=
 =?utf-8?B?N1doYnFOOE1Pc21jSXB6SG9mYlUrQlo5QVFVOGdCdndYdjRFYXBqd2lGdXgz?=
 =?utf-8?B?azlMTmk3enlTZ2diVXNicENGNjJRSG0vOTAxS25qOFZPdEE5Y2drNENTQllB?=
 =?utf-8?B?M2N1V2VZMjg3UTAzWm9KVEVSdkM2dVJrMDd0c0dFSlozUEJ3T0xjZTExYkFL?=
 =?utf-8?B?RFUzaE0wV3NiSUVQMWt4ZlR2QXE0cFRoKy9Qd3UwdFkvem8vLzZML3dIVysz?=
 =?utf-8?B?OC9JWDZ0TjNzVDVoL2FCTUlHV2ptZlZweHJsUXBONzM5RklQYjdtZnNWeDdS?=
 =?utf-8?B?b0JiTXcyaDNYOXhiTGh1VjFYaWJ0ZlpVcE1MU3VaOEtNSHBBWGV2RGZON1NN?=
 =?utf-8?B?M1NhdXUvcFlGQ0dYaFVuQ2ZhNGRyYkJzUHE2REhxQjd0OTdpZzNsTklnMFE2?=
 =?utf-8?B?cFh2YXQ4aEZITWlLOExwVk1vKzFFMnNQNGNtdUg5TzRhM045U0sxS09Ob01G?=
 =?utf-8?B?aUlnL3JKcXo4bkRsVDhIa0NrQ2wvVXlveTNtZ2l1a2wyaDdvUElxWkNuTDFP?=
 =?utf-8?B?R3FUN0RhTzZ1UHVpaDNIVkFjNVZpLzNjeHFMS2QzeVBIYUN4UGhaUVFvSTdn?=
 =?utf-8?B?RWJ4RTN6WGJMemhXSDdLYmY0NkRBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	2/98/WrDAG4bZCv3YHuQrWlL4InmEPEGjI+9TwG/4nlUcGGERcxo53Q6Hcu3v3bfyDQ/ljFTSHJ9AGMxC72axnOvkNYUf+WF0J8gr4Ek+pXMwbseC+pUr2shPJDB9xoGVXEuVsPOrqeDsnK3ilr5Lt9B5xQ0t9i/3tZpc247ZiDw4D/rEy659glD0pdchzcvWoM0zFp3dsyKwvISjqi2gL2Dx35TTOPDB30y2FJOGngxUgrHLb1kItnttPnrirNIy/CzhFQ8jfDtotSwAD6l2Nu9m0BH4o2G9av5b1Kr0Z2PJsVks4oqVBLOCyzIcqjN2oWqg8/+IYjSdkzzm1DF4euLTLhRfWMzG9CjJipoEeVTMvN8/eTSxStGcNfBx+TzzGXSf0oZMTexNFLV5olyrUhbNXsZXuEzjJerYAPXdDdkCPmk32gcbbjY9am9HrN3
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 10:04:11.5347
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ddeb9b5-1f8a-4db0-91ea-08de688bbd20
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9077

On Tue Feb 10, 2026 at 9:26 AM CET, Roger Pau Monn=C3=A9 wrote:
> On Fri, Feb 06, 2026 at 05:15:24PM +0100, Alejandro Vallejo wrote:
>> This enables very aggressive DCE passes on single-vendor builds in later
>> patches, as it will allow most vendor checks to become statically chosen
>> branches. A lot of statics go away and a lot more inlining will be allow=
ed.
>>=20
>> A prerequisite for such optimisation is to expand Kconfig to have the
>> full set of vendors. Adds Hygon, Centaur, Shanghai and the unknown-vendo=
r
>> path. Have Hygon select AMD, and Centaur|Shanghai select Intel.
>>=20
>> Not a functional change.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> rfc -> v1:
>>   * s/depends on/select/
>>   * s/UNKNOWN_CPU/UNKNOWN_CPU_VENDOR/
>>   * Removed "if unsure, say Y"
>> ---
>>  xen/arch/x86/Kconfig.cpu  | 43 +++++++++++++++++++++++++++++++++++++++
>>  xen/arch/x86/cpu/Makefile |  6 +++---
>>  2 files changed, 46 insertions(+), 3 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/Kconfig.cpu b/xen/arch/x86/Kconfig.cpu
>> index 5fb18db1aa..f895cfe97a 100644
>> --- a/xen/arch/x86/Kconfig.cpu
>> +++ b/xen/arch/x86/Kconfig.cpu
>> @@ -19,4 +19,47 @@ config INTEL
>>  	  May be turned off in builds targetting other vendors.  Otherwise,
>>  	  must be enabled for Xen to work suitably on Intel platforms.
>> =20
>> +config HYGON
>> +	bool "Support Hygon CPUs"
>> +	select AMD
>> +	default y
>> +	help
>> +	  Detection, tunings and quirks for Hygon platforms.
>> +
>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>> +	  must be enabled for Xen to work suitably on Hygon platforms.
>> +
>> +
>> +config CENTAUR
>> +	bool "Support Centaur CPUs"
>> +	select INTEL
>> +	default y
>> +	help
>> +	  Detection, tunings and quirks for Centaur platforms.
>> +
>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>> +	  must be enabled for Xen to work suitably on Centaur platforms.
>> +
>> +config SHANGHAI
>> +	bool "Support Shanghai CPUs"
>> +	select INTEL
>> +	default y
>> +	help
>> +	  Detection, tunings and quirks for Shanghai platforms.
>> +
>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>> +	  must be enabled for Xen to work suitably on Shanghai platforms.
>> +
>> +config UNKNOWN_CPU_VENDOR
>> +	bool "Support unknown CPU vendors"
>> +	default y
>> +	help
>> +	  This option prevents a panic on boot when the host CPU vendor isn't
>> +	  supported by going into a legacy compatibility mode and not applying
>> +	  any relevant tunings or quirks.
>> +
>> +	  Not selecting this options while selecting multiple vendors doesn't =
have
>> +	  any major effect on code size, but selecting a single vendor with th=
is
>> +	  option cleared produces a much smaller build.
>> +
>>  endmenu
>> diff --git a/xen/arch/x86/cpu/Makefile b/xen/arch/x86/cpu/Makefile
>> index 7cfe28b7ec..84b060aa41 100644
>> --- a/xen/arch/x86/cpu/Makefile
>> +++ b/xen/arch/x86/cpu/Makefile
>> @@ -3,13 +3,13 @@ obj-y +=3D microcode/
>>  obj-y +=3D mtrr/
>> =20
>>  obj-y +=3D amd.o
>> -obj-y +=3D centaur.o
>> +obj-$(CONFIG_CENTAUR) +=3D centaur.o
>
> Maybe I'm missing some context here, but I think this would break the
> build?
>
> cpu/centaur.c exports centaur_cpu_dev which is referenced from
> cpu/common.c, and I don't see you making that reference in
> cpu/common.c conditional to CONFIG_CENTAUR being defined?
>
> I think the same applies to Hygon and Shanghai.
>
> Thanks, Roger.

Hmm. Yes, these hunks go on the following patch for bisectability. They wor=
k due
to the AND operation at the switch condition.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:05:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:05:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226172.1532700 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpkcA-0004YB-Rx; Tue, 10 Feb 2026 10:05:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226172.1532700; Tue, 10 Feb 2026 10:05: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 1vpkcA-0004Y4-OB; Tue, 10 Feb 2026 10:05:02 +0000
Received: by outflank-mailman (input) for mailman id 1226172;
 Tue, 10 Feb 2026 10: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpkc9-00047C-Ha
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:05:01 +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 f61e39b8-0667-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:05:00 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-43638a3330dso2145354f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 02:05:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376b62b835sm20189058f8f.12.2026.02.10.02.04.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 02:04:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f61e39b8-0667-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770717900; x=1771322700; 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=CeKEnQDPhdS5yYdYpv6E3pVYAeCRb63E7iwSFcUYya0=;
        b=FmTWnH4qMO0s90e68r7Nmylvgo9MzVDMlFaHr9ty56/LMnMKriPNVL6u55Z4R8VLQo
         4pT5YP4GIL8hVE1A60N7XFJI6gXbAwrEl7VdJARsnXVMmDCr02PMEJV5kMLsEH7Q8eNO
         qe0a3dtBRFHh6h4al0OjEGeuUtenrSaaRTavBfEnzV+v8NePzVfWtrNf2NB1kYHmRvic
         mxj9q3hZb4m7hYi+AE/R7s8NQE1+ii445S1bfIK7Sxf8pb0WD946+6xKTglwgIj9/DLM
         4hU650F+uUqr17OGTlDHRLSmiYwSja2pn43cqTgemmKM3UzVPyiJebfE3fHk8DCCIFUr
         ZQFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770717900; x=1771322700;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=CeKEnQDPhdS5yYdYpv6E3pVYAeCRb63E7iwSFcUYya0=;
        b=XIAP+qeWZx6rdKQ6dYclh5wQLN8WkcMBFmI8lFMgTW1kmacba7eiVgvWw1MxylCQ9n
         f7bEC0xn2+hru6CJf45RgjxfC7taoslu31gynubjiYWOPO3MJHVyaJpkNCdQ1nuD9cej
         kE+t7OJrAa3+UX4SuBQPFCJ55CQJoQ4EVthEqJZMhD2MIM+5OQjZoQRNRifyVehvFjf1
         AGV0v/YKtxeAKhxcdYdhkYcLAWSam3Y+uVGBVPuhiHS8sGo2qsUkY3ft6bfpcOVq062+
         e47fj0Tjzgrz5d9/hnBo0h0F/g1a+0UJoUeQOfU9ZUSJScS1yBkcOz+1KU3xET/ACFP3
         X6aA==
X-Gm-Message-State: AOJu0Yz5M4+9wmVeEsve1z+lrLY4yFZdR7UMVfRJ9uJqQ/x7qDcYQRxv
	N7i4r9K138jUQde2SWmGZu8oKIdga84+keWd8OKsq7kagpAvxuW8aIKSSjilQfBbjxylfwAQV1d
	Fxis=
X-Gm-Gg: AZuq6aJXGYpWcybhSaRsYYp8gaU+YpYBHly0ngOW3Ny0yIanM1Z/esZeiUBzlrxvIGW
	x4qfT6oVgqJK8IYLAN+ampRdoqOKDrlzRolDlhFiDQ895cDPxXmFjAXSofTwuWwDZlpV9o9huij
	Y345qThkO2KKbMBhFiFONRo8nOXexZOCD1NuqpFXUvY8ipQ++Yqiw9ePgqohVd3k8VEIw/i6Kv6
	6MtDYod+Gq8YTTV+P9fgelldNVxIK7MgkbkvQUrJ7Lykuf/9dVuf+uGEpDLCaTAB0w1euHTyjY8
	/00hQHGcVTOfCrI+8llRMJb9fDIqZcUNuCYd+VxavDk0GyuSijmzjUiy9iKj8KjzSA/8RhEozAa
	77jg82gwQhJ19ES6M6c0/NVbRdFgWWCpo3chqSHpxX3QZIA3I2AjQIhuDnMq1C2oA0s1NSIdAsQ
	J6w+ZCtqS7DhnTXArWhuhYFOpeTKGoE15RaHArpVwJpaAgzWPEZJoiFmxqBjVgdXrzgMU3r2uZW
	K3Do3qIPpogczs=
X-Received: by 2002:a05:6000:2411:b0:435:a4a9:6f79 with SMTP id ffacd0b85a97d-4362933bef4mr19281630f8f.8.1770717900039;
        Tue, 10 Feb 2026 02:05:00 -0800 (PST)
Message-ID: <f97bbfb5-389c-4845-84fb-e6f07ba0ade8@suse.com>
Date: Tue, 10 Feb 2026 11:04:59 +0100
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/time: adjust handling of negative delta in stime2tsc()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

When we cap negative values to 0 (see code comment as to why), going
through scale_delta() is pointless - it'll return 0 anyway. Therefore make
the call conditional (and then also the one to scale_reciprocal()), adding
a comment as to why there is this capping.

Modernize types used while there, and switch to usiong initializers for
the local variables.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Adding likely() to the conditional here does make a difference. Question
is whether to do so, seeing that there looks to be a possibility (of
unknown frequency) for the delta to be non-positive.

--- a/xen/arch/x86/time.c
+++ b/xen/arch/x86/time.c
@@ -1176,20 +1176,26 @@ uint64_t __init calibrate_apic_timer(voi
     return elapsed * CALIBRATE_FRAC;
 }
 
-u64 stime2tsc(s_time_t stime)
+uint64_t stime2tsc(s_time_t stime)
 {
-    struct cpu_time *t;
-    struct time_scale sys_to_tsc;
-    s_time_t stime_delta;
+    const struct cpu_time *t = &this_cpu(cpu_time);
+    s_time_t stime_delta = stime - t->stamp.local_stime;
+    int64_t delta = 0;
 
-    t = &this_cpu(cpu_time);
-    sys_to_tsc = scale_reciprocal(t->tsc_scale);
+    /*
+     * While for reprogram_timer() the capping at 0 isn't relevant (the returned
+     * value is likely in the past anyway then, by the time it is used), for
+     * cstate_restore_tsc() this is relevant: We need to avoid moving the TSC
+     * backwards (relative to when it may last have been read).
+     */
+    if ( stime_delta > 0 )
+    {
+        struct time_scale sys_to_tsc = scale_reciprocal(t->tsc_scale);
 
-    stime_delta = stime - t->stamp.local_stime;
-    if ( stime_delta < 0 )
-        stime_delta = 0;
+        delta = scale_delta(stime_delta, &sys_to_tsc);
+    }
 
-    return t->stamp.local_tsc + scale_delta(stime_delta, &sys_to_tsc);
+    return t->stamp.local_tsc + delta;
 }
 
 void cstate_restore_tsc(void)


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:11:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:11:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226181.1532710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpkiW-0006G1-Fy; Tue, 10 Feb 2026 10:11:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226181.1532710; Tue, 10 Feb 2026 10: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 1vpkiW-0006Fu-D8; Tue, 10 Feb 2026 10:11:36 +0000
Received: by outflank-mailman (input) for mailman id 1226181;
 Tue, 10 Feb 2026 10:11: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpkiV-0006Fn-8X
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:11:35 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id df64b4ca-0668-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:11:33 +0100 (CET)
Received: from BL0PR0102CA0019.prod.exchangelabs.com (2603:10b6:207:18::32) by
 DS0PR12MB9322.namprd12.prod.outlook.com (2603:10b6:8:1bd::14) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9587.12; Tue, 10 Feb 2026 10:11:28 +0000
Received: from BL02EPF00021F68.namprd02.prod.outlook.com
 (2603:10b6:207:18:cafe::c1) by BL0PR0102CA0019.outlook.office365.com
 (2603:10b6:207:18::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Tue,
 10 Feb 2026 10:11:28 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 10:11:27 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 04:11:26 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df64b4ca-0668-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TWxfiUqzB+0lbe+PX5K9pDlBSK6ZOEE+Lplp1FtfxaAJWTp+nFrl6bmYxwfi1YuB3rUXMaPeG1xLxQ3GH8w7ra1CLkVxAAPFIEhaUb7Moc4LL/g8pSm5ox0dalgpsNqBZJKkhzfeOFQoqLjLigESlwAFMTgfhe/y2J0Jw2W74d4hecJRndEIgBHDeFqIsGmcQPK/hQiC12CXQkewtZxCL2GTNU1nyqvUXoK+oE7kAibS3at0lsMIZ2rXybFRdvPujAS69whm8yoc3kecraGhc7+l8m6GPHTjGV2lpZQPOtqfuu2qYHKe2bAFPxVPZIqBf1zvOO1EqAlPvJ811ledQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LfIaAL9d2E0xKt3C1F/0Z4M4a1D2voeXJKTaSPKkyVc=;
 b=MWg4IPmulIbXm0zSCy8LX/h9nJmsMAxnTi5PwiKksQHtPCcBFM2d7khZQNMyNGmRWkacoK1YlG2UWZeKhkjS9ajsky+4g1raxkIkxvNtQ/fuCXYva8KDrfayTjr7KNd+UypJ6gOkaYlg3TczdWyCp8rYcUggJhS8l8HDVRN+sonEnenCCnADbWfWPv113kGIsNFaliNhbasoVJGMeawluCFt3gswhOO3LJA8Hr25mwU36xiwXh57pWLriuoTU4TfkmyzRiJJzmguTe8MfrhSVq0CfasyM19R47+1IvTj8tl9UwoozSNBgY5fzY9rDkj0sZNhupwYlLFhduY/rQDOeg==
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=LfIaAL9d2E0xKt3C1F/0Z4M4a1D2voeXJKTaSPKkyVc=;
 b=D3LddHupmS6JEclBEPLo0KecM/X3/RgFO54ZwBkXnLUHATiDWChg/jMx4SnekHCfOxmxVuvS8ctDuOvshMVwW0VQsdpK8mOScHnuj4m/mhoL40UdSVzI6mVux86oUkfQQJVjU8jVXa9RFZnhVKeMQQt0IeV0fjdKqfK1QHhP2xY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 10 Feb 2026 11:11:25 +0100
Message-ID: <DGB78UFCYSUN.3AGZ9BQ3901DA@amd.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 01/12] x86: Reject CPU policies with vendors other than
 the host's
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-2-alejandro.garciavallejo@amd.com>
 <aYrqDLFGqEVYMyU1@Mac.lan>
In-Reply-To: <aYrqDLFGqEVYMyU1@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F68:EE_|DS0PR12MB9322:EE_
X-MS-Office365-Filtering-Correlation-Id: da6e9da4-96f5-4641-69ca-08de688cc12c
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?SC9YcENSWUNoL2dxTmpTbzhFMmtiY3pMSDdHMlpydnZ0Q09OYkhGZmZLeXRG?=
 =?utf-8?B?ZUpoTmZQcS9mWjBMc2dGTUcyN1Q0K1pKajA0bWNXT3U3dHNiUTNzazNUdTRq?=
 =?utf-8?B?OCtkMUQzQTk5NVhTemphc1NXdXBJM29ZUXpMRXlVWGVuUytDeVMrUW5zZTU2?=
 =?utf-8?B?NUVxbkd3NllnTHViZWZOaWRoUWVDckxvOUN3MzZLalR5WGlrdzlzclYrQm1N?=
 =?utf-8?B?UHBqN3JLaGlEYlR5UmQ3a1YvU2F4bEpzT01mU0E2RXJnRnAwcWlPQXh0bVor?=
 =?utf-8?B?d3RqdTRkdCs2NDZobUFrd2lJaENVSVRYWmtoblpxUVlhdGMvd1NmaWlTckxX?=
 =?utf-8?B?b1pvemRRZzJ4SnRwK1JxdVFRTTNNMFZSa0MyVytheHlsU2NzWnI0K2NMazBO?=
 =?utf-8?B?Rmh6Y1BZaEY5cTV2YnptR2FyMTU3WlNGY1Q4citPNE9xc1YrKzNkRzdCSjdF?=
 =?utf-8?B?K2FrckpNUHVENlJTYWUyV3cvMmptcW5LdjFraWRGb2pEd01Sd09wVUVFaitz?=
 =?utf-8?B?YW5NdXFIWlc3dmNka1FWaXpCTUpPMkR0Y1daTmRBc3JwWXlyMXcyc1dWMnEx?=
 =?utf-8?B?RzE5RUVGa0hEbUhIWnFWUlREZklQMnVsNlpOSjNWeC9NMTJQY3BrcDFYbEFE?=
 =?utf-8?B?MEg5bHlISkRVZlN6YjY2S2dZcnpTU3FXZkdISnl0SVZiZ3ZHRXRVL01PN3ZT?=
 =?utf-8?B?b2FpREhsaGMxZjZWQ2NHY0FGbDZ1dC9UbWJrNXRkZ1ZyVzNIWmRteVEwanRu?=
 =?utf-8?B?OE1QT2FBWHZWWmZUSGd2OVUxQks0dFpWOVFkRFdtSFFVNVlWMTVPYmI1OU9S?=
 =?utf-8?B?WXRQUW5acUVlWStzRUlSQTdNOU5LMWo5NmZZQlBWZWVYSndvNUxpU0VGK2Nw?=
 =?utf-8?B?K3k2elEvdkdhd0xwT3V2c0dRWG5qTERSMGhKdXMxS0Q0eHprb3RINjBXYU45?=
 =?utf-8?B?Y3hQdkFzUndqVytrUlNTWjkxSDJMd29uTWJqRkhZTVEzVjZ1SE51SDNtc1A2?=
 =?utf-8?B?Y1ZURnRkT1Fqbk1NTGUyV1ZxeEpBOHRHN0xTYXROc25meVRkTStZb01KSk01?=
 =?utf-8?B?ME9EQlFBa2g4VzFKaCtvTXoxL29HR2FTTU4zM2FUVHVhMkdIQTR2cmk3Y1VG?=
 =?utf-8?B?djlOM2tZdDRaWEJndlBmRldFNGNabnZVL1lpcW9DTXI2TTVVUk9jditEWUFR?=
 =?utf-8?B?S0xtYng0M0dXa1F2a2ZDcUgyUlJUY05uSm40eVRrSC9lZmxFMGhza3VXa2dN?=
 =?utf-8?B?MTgwVGFHSFU5Q1YzbmpuQXBIOUQ0KzlaRndIM1JrSFR4K05RYkx3Vit3T2w1?=
 =?utf-8?B?OWRwMGVVeDVVL0VaaWFVWlozdEM4TmI4VVFiekt5NkpyaCtpbUVBTjhrbG82?=
 =?utf-8?B?aldQck5XUXZ1TTlyL2dVNVFubmM5eVU4NFZBRkx0cWxSVVZhVWdJQWVRelRL?=
 =?utf-8?B?VGt4TWRKbXpTVmN4SWVzWWtkcy9QVHpGbUM5VVJEOFNlOENtU25zQ212RGxR?=
 =?utf-8?B?RjVyNWZGQjhqaHlUOTN6TStPYUVNMHZicW05YkViU3Q1M0p5NjRNMUZydUc0?=
 =?utf-8?B?QUsvMFBKQUprYjE1ZG1uUEdreWlwcUhMREtrVlZETzJFNG9JbkduNm1IRWxy?=
 =?utf-8?B?YWJXc2lsTUljVUE2VVhVWEUzQ2ltZjhYUitJYnRGRy9LVTRBMldUYUN2Z1V2?=
 =?utf-8?B?YTZuMk9RK0l5WFpBK256WDVQWm10VGZZZVRjVUJETkJnL0VXdUZSWnRjbHlF?=
 =?utf-8?B?dHN0dE5FU3pXdW5aaTFKa0VBRlNNc21ORG5rTUpmbzVTQVozUXVISGpWTFFB?=
 =?utf-8?B?c1FNU1hMaGtod0tnbi9HcFIva3hPVEtJc1FLY3F0dzFaTCtZalBzRjhDeVJT?=
 =?utf-8?B?SFpwTy9VdDdtNDdENktGRTBMbkUvRjUrdzRjRG1IQlBPNGloQlh1VFc2Y01n?=
 =?utf-8?B?cXZtOWNTR084ZUtCMXUzNGFtQndjWmhZdjEvQTBjS1ByWW5kb2hsbjBzNzJU?=
 =?utf-8?B?dmEydzdIa1RuQi9LWGc2dCsweW5iN1Rma2FySktJcXAzMGZnYzQvSFFCNm9J?=
 =?utf-8?B?eExrZU9EV3MzajVSQnRrVTgzTFh4MDZ0elU4VXEzYVpuL2M0Yk9sL1dPL2JK?=
 =?utf-8?B?YUw4Qkd2WklSZ2cyZzRoSndWdzN6UFArdXlsZk1DMXhwaUhRQnF2QUp0d0Rw?=
 =?utf-8?B?eWhGU2FoODk2YjNzR0Jwd3NHQlVEWHVoRTQwY05BQkF4eEZEc29oTE14L2Ru?=
 =?utf-8?B?Y21CbTJZOHorUkR1YVJTbDBrUWxnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	lLvwscv4HVQdLqf3VHsIvZsH1hIpHXJkkilH1JEl6ApJzZwRBwLewqzhoamKFCalkGklUHIzMtAKREJE8VWyeAqEODUAcsbEl7FUl0ur51lQZOkFWbFQc5qmaWn3w/czcCJfIX3Aj/h09h1lmVhARKl1vij2Yq1DiXbkw6Jk0EkjmR9TEY0d5wFzAKZaXXrTTzqYEJSC9jnUUrZTZ8sK0MpX4q/uUTmwouUS3pyRkbLQHBXDzdLoBbolb/oYdon5MHsQ+61VS4XrTIJFmYUXuYeLVCTT5QSxfaUtoImOXfd1r0guyUP5knLqI3LNuOut3NG3HUHeh6MSNIP93SZmPxoAXdxvd7Mf/srLZBJmFsLJA98TzX6yHsP+emawbH/3quycfKVWY23S4+uV8MOl+gVB0gCugXfcy3pw9ubETnA3BT9Gfn4YfmwhML6bw329
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 10:11:27.8457
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: da6e9da4-96f5-4641-69ca-08de688cc12c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F68.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB9322

On Tue Feb 10, 2026 at 9:19 AM CET, Roger Pau Monn=C3=A9 wrote:
> On Fri, Feb 06, 2026 at 05:15:23PM +0100, Alejandro Vallejo wrote:
>> While in principle it's possible to have a vendor virtualising another,
>> this is fairly tricky in practice. Not doing so enables certain
>> optimisations with regards to vendor checks in later patches.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> Patch 1 from the cross-vendor series. Do not merge here. It's simply for
>> consistency.
>> ---
>>  xen/lib/x86/policy.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>=20
>> diff --git a/xen/lib/x86/policy.c b/xen/lib/x86/policy.c
>> index f033d22785..079c42a29b 100644
>> --- a/xen/lib/x86/policy.c
>> +++ b/xen/lib/x86/policy.c
>> @@ -15,7 +15,8 @@ int x86_cpu_policies_are_compatible(const struct cpu_p=
olicy *host,
>>  #define FAIL_MSR(m) \
>>      do { e.msr =3D (m); goto out; } while ( 0 )
>> =20
>> -    if ( guest->basic.max_leaf > host->basic.max_leaf )
>> +    if ( (guest->x86_vendor     !=3D host->x86_vendor) ||
>> +         (guest->basic.max_leaf >  host->basic.max_leaf) )
>
> You possibly want to expand test-cpu-policy.c to add a small test to
> ensure this works as expected?  Not that it shouldn't, but it's
> trivial to expand test_is_compatible_{success,failure}() to add a
> small test for the vendor checking.
>
> Thanks, Roger.

I didn't consider it. I guess I could. What I'm thinking also is that this
vendor check should probably check the encoded vendor (ebcx/ecx/edx) rather
than the decoded one.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:35:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:35:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226201.1532719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpl5f-0000pv-B5; Tue, 10 Feb 2026 10:35:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226201.1532719; Tue, 10 Feb 2026 10: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 1vpl5f-0000po-8S; Tue, 10 Feb 2026 10:35:31 +0000
Received: by outflank-mailman (input) for mailman id 1226201;
 Tue, 10 Feb 2026 10: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpl5d-0000pV-SY
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:35:30 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 372ed5dc-066c-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:35:28 +0100 (CET)
Received: from SA9PR11CA0030.namprd11.prod.outlook.com (2603:10b6:806:6e::35)
 by CY5PR12MB6273.namprd12.prod.outlook.com (2603:10b6:930:22::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 10:35:23 +0000
Received: from SA2PEPF000015C6.namprd03.prod.outlook.com
 (2603:10b6:806:6e:cafe::68) by SA9PR11CA0030.outlook.office365.com
 (2603:10b6:806:6e::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 10:35:23 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF000015C6.mail.protection.outlook.com (10.167.241.196) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 10:35:23 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 04:35:21 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 372ed5dc-066c-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BAkFUKbY5idR9Drc5nT695/sOjQzbURiurzU8erGaVKmchhaDqyjkr/a3YSgNYaY9gQyhWDwS5hMPH5wqNtZpzvdyTmfCmK/mvuNnC27cipamuZiUSV1213zINB0ppCuqdU/Qn8jZl+1+iTBOB23Gp6Co9cLamjDv4YCJ7Quanrcc5gMALDysV2ihO4dCO/zsnP66opT3opgldc6MrKkM1y8BX5Uta49cmu19CIpT2Nm+QGD5PF9C2GmJhgYkDqJoVpZuxvpr+XhSc24toYwSwLUbNy4eFEaKAX/CvmaAab/T1cInQwXW12tKYqqAYUv7NuGFdIxt6rVvR1sIOgbKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PNxsh5nfb/KB7K+12vjRkEyauWMl9fgwYWi2mdetMPE=;
 b=URc3ae0FsESjRUdSFXYtfY+iuuGpNMH1iINemCns8B2L3HK/0gan+5/xpirMFG5OghLy1iRTdMVPA6Skd2KaOR9v/PAu0f4AHTpCC1Cgsm8+ELhlKIkMArjNzLBDZwD/T/lap5Ruf3TJrIQvBh4oqXcOnyUelr43N4JnWODcgx3SgMNO5/GCPUWB1/0Q6qiHOZLDgxRgCsGLvXYTwulHHmEySlUQOMnY56gmkiZiaPKwC+wgQM4cXoZp87eXWueFbofFuVYlmlQNdjtxcIGgXlk6SYKgjjG5ed848oZD03XHktmMdvsaZhOUoC5rX60A6+ZTe4NRfC7DkQAA7VWNfg==
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=PNxsh5nfb/KB7K+12vjRkEyauWMl9fgwYWi2mdetMPE=;
 b=BU+WaBUL4s8ma95g1AiqQZYYYbv9HcUiBPUqc9YQqyyoMdAhE4f/28IPJL3mXzABKrsN3CmlKQfAG3DpYG/UgcfjFCPlOS8x2GSbd+JTdrmJdHx6eNgk22+Z4aOeo8GS5MmU2sEUhC84g2VxyDp93cRGXFaKr7cqZZCQ+uIxpVI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 10 Feb 2026 11:35:20 +0100
Message-ID: <DGB7R5PAW92W.390IRWRSC3QE9@amd.com>
Subject: Re: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's
 CPU vendor
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Jason Andryuk <jason.andryuk@amd.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
 <aYrwUj1uaEgGL9hl@Mac.lan>
In-Reply-To: <aYrwUj1uaEgGL9hl@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015C6:EE_|CY5PR12MB6273:EE_
X-MS-Office365-Filtering-Correlation-Id: bfc95a33-a3a3-401c-f317-08de6890189e
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?cjhrUTh1a0lZY3RlcW1KdDdtVjVZMWcyTERuQmx2TFJXYTJFNVArVFZxOEU2?=
 =?utf-8?B?M3JoeHVQcUJFQmxURitmT21rUDBvaHd4ZDYxcXRGTjBoM25PK0s5QUdob0Rl?=
 =?utf-8?B?WW5lTUxYYTdGNVVFMzJsL3VYQzJYUkdBc2phc3plaU9aU0g2Uk1nbUw1eTE1?=
 =?utf-8?B?WU53YVRzM2FnaDhNMHFkUmRqUEU3ZW52WkY4UnJHQmpNZlhGTjAyKzMvK0tW?=
 =?utf-8?B?SHQrODc1MVF2T3UrVGlhMWJhNmhKUXc3bEZkWjkvNW1JNDcwME91Y1RSVUF3?=
 =?utf-8?B?VUYwd0M2eHBLM0F6M3RoQkNyUVhFSUlmV3k3bENZSzU3ajlVUjZhMnUzRFVU?=
 =?utf-8?B?TTdXTVVyekgyL3gyNWdhc1V0S1NRWkNVOEVtMEUvSnlqR1c2bXdSa2Q4MGtk?=
 =?utf-8?B?NHZkaFh6REt6TEg1MjczZ1lJZVRNMmZURW5GZCtscG9aRm1wTjVRSnBnRHRi?=
 =?utf-8?B?Q1Rrb2lIMlFna2pVNU43MWo0anFEQStYZ3ZnTCtac09ob3VwdnlHRzVuVTcx?=
 =?utf-8?B?SERUV0xubENJVXFkYW9tUUR4aDZNRWNvMUI1S1VFWEdRdnFseVQ3Snp5RzNq?=
 =?utf-8?B?TGttNXBBUEdvQmVBUC9nN3ZQV0psTU9Rb01Pb3E1KzdHaWs1amhveS9nR1dB?=
 =?utf-8?B?c1B5VHFvbjFpYjhLSXpOdlliZjFYN2xjKzUrOUpnd043eVo4WFZHNmd6OHc5?=
 =?utf-8?B?VW43ZGZlcHZzSnZhMjFkKzd1UldUVjlwSDBNb0FPNkpGODllSExNcFMycENn?=
 =?utf-8?B?bXh3NmhEQXZRSWYwcWVkNWZUV0xvYTN0VVNBWkp3Sjh3NDk1OVI3aTF4THpx?=
 =?utf-8?B?bW5hSUVJZjFQL3pyd29kWjhFT09DcFQyT0p5UUVrS1pTZ3NvM1RBcUxLSFcx?=
 =?utf-8?B?NTZOYzVPN1VIYUNWVmY3ZFJXWEczZWk1MEE5a2lXdmtnWmJhYksveU4wZ0E1?=
 =?utf-8?B?M1hGZ2c2OWJvYlorVUF3OXBva25PNnV0MVFZeVUrdTM5RHJpbHAybkJzcGJt?=
 =?utf-8?B?VWRoUVRFOUxDNjhhemVmTVFzREJWdTM4a0pDSGgvSFBnV2J5YXVXb0N2VTlj?=
 =?utf-8?B?YjhUQ0k5WFNnV1FkcnpnVFZOUjMxeUQrVnR5MGE1WVB3L3hSWSt2L3ZhbWtP?=
 =?utf-8?B?Vk1BZ2QwMHErbnlCZDlKMERxNW1mSmJsNy8rRDUvc3lISDE2SzZEd3EvbjZ6?=
 =?utf-8?B?OGRFNmtqdEIxVHdHeWlldjZYVS9NYUx5Wng5M08ybTJWd1NvSmdpbUI4R2ht?=
 =?utf-8?B?ZWFyRUxMSTJ3L0E5VUVoN2d5MU92VVVtazcwSW8xWm4ybi9xTU9JU1JwWFgz?=
 =?utf-8?B?ZEo1b2d2NEZLMjBoSDR1YjM4TjFpVE9sRjhLbFFFUFhFc1VWS2cyNW9iTTk0?=
 =?utf-8?B?cWF5YS8xck4yd1pGSkhqQ05Wd1NkbE8vMzlmZlNIOThrNkhpK2JjQlNMS012?=
 =?utf-8?B?blc1Q1dvQVpuYTFzY21WQVBER3Y5UlV1NGRXOEdlMDdyM0h5eEJZNnZ5dk8x?=
 =?utf-8?B?dDJBRjM1VGkrRTBSWEZRS3lacFJYTWtRdG1mT2RSREMzWllhNS9zd1RaTHcz?=
 =?utf-8?B?TWNzUitWV3VNaFY1SWdNSWl5TXpONlVDVi9wOVBybjNMVnNCWDlrN0Zpb2Vh?=
 =?utf-8?B?OGc4RmFZZ0EwNWYwS08ySndFZnUrcGh5R1JodmZKSUUzRXNPS0FnMk16TE5D?=
 =?utf-8?B?dWNOczFsYmZiYjJRc1RlSWhEVnBadzZRenpEQTF0Sk1rc0ZYNXNFZzZjbW0r?=
 =?utf-8?B?dXdiYXZ0eVI0Rnh0b21aUE9xZUpQaTZHamdWMWFlcXRmSnNEdEhTMlUwUnhl?=
 =?utf-8?B?QnBLRm1vSEoxVmt0TDhnNC9lcksxeUs5LzIwRXIwU3FkOXBTbVEwL0V6WmhZ?=
 =?utf-8?B?Q0ptV3dvdStlU0lNMWs4bTBSK1ZTYThzUS93TG1WdjFqOElNU3ROaUwyRHZh?=
 =?utf-8?B?d291Yjl4VWtJODU0Nm5sV2FBdWpGMUhPdUIycGlZUWhYQnQ0UVAxTkoxcVd4?=
 =?utf-8?B?TWdxOVI5Q1BRb2kvaEtzaGw3OFQ3YUd5S0ozNmF1ei9wRWpmVThVQXJFcnIv?=
 =?utf-8?B?YTQ0TlNIMytuNE1mQWtKdDZKWGJ6eWltVU1BRGJ5MWxWdXRlMWE2cFpKKy8y?=
 =?utf-8?B?anZENlZJRDdEU21jOWhUTjVhZXpUU2Q5cmhGZUVDN1NBM2ExS1BPL2JlV2da?=
 =?utf-8?B?OXdpRm9HekhVNEJiY3BPenJ1RDZtUTNEcGVEL3dtYlkvZlY0QVlvZGVYYVNw?=
 =?utf-8?B?M0N5cHBOOTVZTHI0S2JFTkFhektnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	wujdDqd9A9HhxRfyM1CGMccvXv9e+4NlF+mMfcvYQh27N5PEqTiVSR4HUlyQPWv7i2n72sV3VATf7e+YN+VzVzKSQBMm2en8fG0jp6223k1n9EZCLO0LQA0KwtpRXofUcBUHJyPl1k6qXmzPzaAnh294cCTqiB9aml2+z5YRSQVY6N97/0dXcriUUvp4WSxa97pQb4IaLrWCh36b5+ZPyefWwDwcxrzJ4vY6jWAWY8W1zN4vT/7i8XjiGiADcK73WOzV1Ac3KloBNpWoNlltmOAQN5tmePkmnsI4+FjHV+xX8fH8inyu9NOR3LHAh0VXn3pRqsmJyTZw3QhFNRDagsSh03+5fT9wMwMMGe2HBpfSSzmihxI/OeZubG5ghwnfDfbVQBOOkTM5kKFTKVGeXD1Wlnsk9jQHtLa/SMR75+DvonnL8UYWE0eD5zC8eD87
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 10:35:23.0231
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bfc95a33-a3a3-401c-f317-08de6890189e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015C6.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6273

On Tue Feb 10, 2026 at 9:46 AM CET, Roger Pau Monn=C3=A9 wrote:
> On Fri, Feb 06, 2026 at 05:15:25PM +0100, Alejandro Vallejo wrote:
>> Introduces various optimisations that rely on constant folding, Value
>> Range Propagation (VRP), and Dead Code Elimination (DCE) to aggressively
>> eliminate code surrounding the uses of the function.
>>=20
>>   * For single-vendor+no-unknown-vendor builds returns a compile-time
>>     constant.
>
> This is kind of misleading IMO. It will possibly allow such
> optimization for Intel or AMD, but not for Hygon/Centaur/Shanghai, as
> for those CPUs you will always end up selecting either Intel or AMD as
> a requisite (so X86_ENABLED_VENDORS will never have only a single bit
> set).
>
> Not saying it's bad, but I think the comment above should be adjusted
> a bit to notice that such compile time optimizations for single vendor
> builds will only be applicable to Intel or AMD builds.

You can't build a Hygon-only hypervisor with these changes. I can rewrite t=
he
commit message to clearly state which vendors are subject to the optimisati=
on,
though I'd fully expect users to notice they just can't deselect AMD when
building for Hygon.

>
>>   * For all other cases it ANDs the result with the mask of compiled
>>     vendors, with the effect of performing DCE in switch cases, removing
>>     dead conditionals, etc.
>>=20
>> It's difficult to reason about codegen in general in a project this big,
>> but in this case the ANDed constant combines with the values typically
>> checked against, folding into a comparison against zero. Thus, it's bett=
er
>> for codegen to AND its result with the desired compared-against vendor,
>> rather than using (in)equality operators. That way the comparison is
>> always against zero.
>>=20
>>   "cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)"
>>=20
>> turns into (cpu_vendor() & X86_VENDOR_AMD) in AMD-only builds (AND +
>> cmp with zero). Whereas this...
>>=20
>>   "cpu_vendor() =3D=3D X86_VENDOR_AMD"
>>=20
>> forces cpu_vendor() to be ANDed and then compared to a non-zero value.
>>=20
>> Later patches take the opportunity and make this refactor as cpu_vendor(=
)
>> is introduced throughout the tree.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>>  xen/arch/x86/cpu/common.c             |  6 +++++-
>>  xen/arch/x86/guest/xen/xen.c          |  4 ++++
>>  xen/arch/x86/include/asm/cpufeature.h | 27 +++++++++++++++++++++++++++
>>  3 files changed, 36 insertions(+), 1 deletion(-)
>>=20
>> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
>> index ebe2baf8b9..6f4e723172 100644
>> --- a/xen/arch/x86/cpu/common.c
>> +++ b/xen/arch/x86/cpu/common.c
>> @@ -328,7 +328,11 @@ void __init early_cpu_init(bool verbose)
>>  	*(u32 *)&c->x86_vendor_id[4] =3D edx;
>> =20
>>  	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx);
>> -	switch (c->x86_vendor) {
>> +	if ( c->x86_vendor !=3D cpu_vendor() )
>> +		panic("CPU vendor not compiled-in: %s",
>> +		      x86_cpuid_vendor_to_str(c->x86_vendor));
>
> I think you want to print both the current compiled in support plus
> the host vendor as part of the panic message.

The mask of supported vendors, you mean? That could be helpful.

>
>> +
>> +	switch (cpu_vendor()) {
>>  	case X86_VENDOR_INTEL:    intel_unlock_cpuid_leaves(c);
>>  				  actual_cpu =3D intel_cpu_dev;    break;
>>  	case X86_VENDOR_AMD:      actual_cpu =3D amd_cpu_dev;      break;
>> diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
>> index 77a3a8742a..ec558bcbdb 100644
>> --- a/xen/arch/x86/guest/xen/xen.c
>> +++ b/xen/arch/x86/guest/xen/xen.c
>> @@ -57,6 +57,10 @@ void asmlinkage __init early_hypercall_setup(void)
>>          cpuid(0, &eax, &ebx, &ecx, &edx);
>> =20
>>          boot_cpu_data.x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, =
edx);
>> +
>> +        if ( cpu_vendor() !=3D boot_cpu_data.x86_vendor )
>> +            panic("CPU vendor not compiled-in: %s",
>> +                  x86_cpuid_vendor_to_str(boot_cpu_data.x86_vendor));
>
> Is this going to be useful?  I fear the panic here might happen even
> before the console is setup, so a user won't get any output from Xen
> at all.

It is true that early_cpu_init() is invoked immediately after serial is
set up, so any other vendor check ends up being fairly useless.

OTOH, thinking about it may stand to reason to have:

  1. A very early panic in assembly, like that of missing nx.
  2. Have this early hypercall setup nonsense present ONLY when INTEL && AM=
D
     are both enabled. It really makes no sense to probe when you have
     explilcitly compiled for a single vendor.

>
> Would it be fine to allow such mismatch in the hypercall setup, just
> for the sake of getting the console page setup so that
> early_cpu_init() can print a proper error message?
>
> Allowing the vendor mismatch here won't require any extra code, it's
> just the selection of the instruction to use to call into Xen when
> running in guest/shim mode.

It'd be fine, yes. Maybe with a comment noting we can use vm{m,}call whethe=
r
or not cpu_vendor() =3D=3D 0 because the instruction itself is supported by=
 HW.

OTOH, I could also fully drop the dynamic detection logic on AMDLIKE-only o=
r
INTELLIKE-only builds like I mentioned above.

I sort of like that second option, as it allows removing hypercall.S and
hook it to the real hypercall machinery, that at that point can have the
alternatives removed.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:46:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:46:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226218.1532746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vplGb-0002eX-Gd; Tue, 10 Feb 2026 10:46:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226218.1532746; Tue, 10 Feb 2026 10:46: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 1vplGb-0002eQ-CF; Tue, 10 Feb 2026 10:46:49 +0000
Received: by outflank-mailman (input) for mailman id 1226218;
 Tue, 10 Feb 2026 10:46: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vplGa-0002eK-Jj
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:46:48 +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 cb867c2d-066d-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 11:46:46 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso6986025e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 02:46:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7e74e5sm49625335e9.12.2026.02.10.02.46.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 02:46:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb867c2d-066d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770720406; x=1771325206; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XCGHS72CcA29OIJgn9KfwThbhpDXmEUfQlfG3Z0owk4=;
        b=RdGcUvsU17ubNj5lDq/wi4UA7f89xwyRwcf9IGOB921h2J2EApMoAmtJ08ScxXcH8+
         DmJ9FjrdXhQQ5Ky0OZCC3cN19aw0YMkmSMQuJ5lJzRISZRUhkennDVRh7wfFj/HB/Cjb
         5vL7ib72AGCAjnIYabfBLa83FtJl+X8S7QBa8Eb53Fw45jXKciWPpmtij8fs4fuX3N8y
         clTYyLHAmsTs81UMHrX0peKUtBoIShBfFNqoAsWsgpCjjJXEHtEgROQ/ble59fFqgiPb
         6N5zhLihL/KxiSQDST0cfcB81DTaqy62Lrp5yU36E1LdGfggKSa7U+fcITdY6BECowmo
         GLWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770720406; x=1771325206;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XCGHS72CcA29OIJgn9KfwThbhpDXmEUfQlfG3Z0owk4=;
        b=w8uWebHY//SxDVr5EmuG1iDVmsFi6fG26iJa3owUMxMjNBRr8ca6Emj+lSdFW7Wkzg
         FOZnxHw7fV/M7FgyWxWU4OheZIrdxvLdqn6fI/TqwcSh6IS9uqRpLlqtEmRD80FGvEOb
         7jThBD5Bu7NeQxfTSzEz2X9VJJk0VyHn89vNtjdBwJyqsNwC+mW2ybCRoBquMt2mt54f
         /vICqbkZDoDJRKnuNSjyt8jeZH1a5DcgsuPU+gSKb6yCPzRfpRshpPpm93U5zV+Bb7tK
         8XNTB5XJ1Z8AeJA3ObWWxnhKTDDsESyEZre6iDeRDQoosmczmFANXQzv7YjffIzfOJKo
         kfkQ==
X-Forwarded-Encrypted: i=1; AJvYcCUTbfqFXyKCr/2z2pPL5suMUCgEJo6KCFAtpIzHK1iN09bF91zl/Ww7wPgxLkrVt+GTgpaIdg6SG3I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzAPMub0Bj7TLOfhdJ8w/l8qJl2xEDxi1GO7d438uJNunNGDSmL
	JizZpAe+PGkY6PtPHaq1yHGEPbtOazk1mXh1LjgU4f3pdy/olBagvVWRwKtFV3ZQ8g==
X-Gm-Gg: AZuq6aJ590BhpIn6rpR7KvfcNg9EKaASlKN1JMK16TXwnBhFWYufnh1SMCUMmBynbMd
	mXSWL1KJOOnCc7L2D7q4MmlTeWpJXKOgqniWKoMudEEwz3Du4jcPo5w34I8eFnD4JIs3Ua+rPw8
	rT1faO9DVLunUoF9bY+EoDXtVk2xPA+yNb/TV+zIfvwo9cL44RCgxfKxIAPfozupyzv4BteMPj3
	XLpGoRIOQLTb3TjRzlOfHyLC0Y6TPOkdALMekzfP9F2GH2UYNopKDCAfNZBas7juPQHroeqrGX5
	wsBxhYAYPDlAfARdgVCQ9oXlMxXj5cQCNpS8HKIOW9miXFMnlQ8QwZBhgXZfAzcbXBHnoqysk9X
	OGSWdIBSokGvrv7Ji7c+EpI23Lp7UGm+Bqswu+DHqzyIkKLCf6qU79jKmSMTc0dy7H8ysZpYlw2
	fZnhhfZRPdl+TfyJutpqZc0rSNWXcJiDyRgZ0mFYP7kdrAETLxTnRKuT3W5imb0R2SyiKvYYwXf
	2egVauvXVNjvlA=
X-Received: by 2002:a05:600c:348a:b0:47a:7fd0:9eea with SMTP id 5b1f17b1804b1-48337ae7016mr112745205e9.3.1770720405531;
        Tue, 10 Feb 2026 02:46:45 -0800 (PST)
Message-ID: <d1baa448-962c-4c2a-9a79-cf334b860450@suse.com>
Date: Tue, 10 Feb 2026 11:46:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: Add Darwin.mk
To: Bertrand Marquis <bertrand.marquis@arm.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: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 11:46, Bertrand Marquis wrote:
> --- /dev/null
> +++ b/config/Darwin.mk
> @@ -0,0 +1,6 @@
> +# Use GNU tool definitions as the tools we are using are either GNU compatible
> +# or we only use features which are supported on Mac OS.
> +include $(XEN_ROOT)/config/StdGNU.mk
> +
> +# Cross compile on Mac OS, only hypervisor build has been tested, no tools
> +XEN_COMPILE_ARCH = unknow

While editing in the ABI aspect, it occurred to me to check what Apple has
to say regarding their ABI. For both aarch64 and x86-64 they say they use
the standard ABI with some modifications. We may want to evaluate whether
those modifications are actually compatible with what we need.

Talking of x86-64: Has building on an x86 Mac been tested as well?
Especially if that doesn't work, it may want mentioning.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:51:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:51:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226224.1532755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vplL9-0004Fi-VW; Tue, 10 Feb 2026 10:51:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226224.1532755; Tue, 10 Feb 2026 10:51: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 1vplL9-0004Fb-Sv; Tue, 10 Feb 2026 10:51:31 +0000
Received: by outflank-mailman (input) for mailman id 1226224;
 Tue, 10 Feb 2026 10: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vplL8-0004FT-Ui
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:51: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 747e9ffd-066e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:51:29 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4834826e555so16109755e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 02:51:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7e50casm48658195e9.8.2026.02.10.02.51.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 02:51:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 747e9ffd-066e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770720689; x=1771325489; 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=xpS7LLOGHKjrE+PB+/Sww3kE6fNrQyCx1OCS/07LOpA=;
        b=QOZ8ZG2Qg7lti5Z+pTCQQqdLRdzXM7/UsKhpZMI6JLYvo1zTCbAtBh9Zlfa0xJPB2j
         ZXMlN+/DRj/vB18NW+kQ2hEVKi7kHNe1yvNvIjOdVrVI5CaITs4E45/Nku2F7Sq8VHYo
         ibSpEu81QucOss1K4IJBeOfm3NI/Vl5jXfZ8xa5t1/40DK0+66xpbxePEeco9t9PgFxL
         fqeLTKXCIuFimjhs6XlTmdyEF6KSC12lo1FFQvtI7cTjVE5MjFWIEsBN7PHRVjO3kOT6
         K6E9nUIYjl4S+HY2QuDHuMtMWiIsiYTZHFEoslx74hfNjh104zeqSLdIB4RYzQCeQ2nI
         cP/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770720689; x=1771325489;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=xpS7LLOGHKjrE+PB+/Sww3kE6fNrQyCx1OCS/07LOpA=;
        b=Xv2ahtXvc2sZR4S8lRgTvPZpihQaoLeo9/GZyFycdX3pfJzBlM3fs42JKEdD6mFwsT
         JOCrHrpQuvJNvNLElF+gBMNQrXNgXzLjeX6+lmRcUmlgCpFnMFq8RdoOVSiOt/SVjii5
         IZo+qW3clJ1dhuZN7xpocCx9SdJXWvxfyjUvEtMLllGNAzZc2iPrSGrGCgOTZ47q38/Y
         lIZdlH3Jxxvx2JM9v/3pj+iQQlq3keoUVL1/QBy4TNcUYjnSXm6P/UPOi53FVC1mYRq7
         +ypwYPI9XY1YjsW9S1RhazHXhzOoqj5aQccC3pbWKNV+z86DzAliCSMZnyTDnHx/jBPP
         WgTA==
X-Gm-Message-State: AOJu0Yyzd9+673XhTgpa30cELP+cHz2438YsP3NZJhvLluc0hOzGZQcv
	aHGmnDH3IsCRxWmEYuLB2OZjnD7nsyb76O71KVQOd0+BSQvnxexPZAFu90hFBPs4ST2OUnFrCVM
	+1cQ=
X-Gm-Gg: AZuq6aJ9tWSVHGFdtOkAsN1StFoAg9yFoakx9HTwRJsUzZXDrDe1qZr0qTAeZvjL+8V
	jvsA+Vzj/JlB9VC8P+IZ6X4tcZ/KdAIKlTz/2R4/wKgCFdxIqfGlWyCLYZA6xMXDgV6aJ52eGX+
	jnHPvG3M9bYV/OEJtePKQPl0vkt6UNkZat9ABEVGrJagMhFfBudU3PkDIErf4g8z9IifOLQTVs0
	7SLJRvavrtV92YvLZHmfRrpn0w/Pl3t2VwFhVroB4Pyk12cQY8Jdy81WVsG17j/mr6SgyhaHRdN
	fdB2WnUx11V5WKZktKObofLEN6G0ELagMdcsubjZXNoQl3UAsWc2cDNXaKmAlTjC3sW8vhJoPgu
	6jUKHOe5gmg/HBIddC7K6rOSCnqU0fIvijGjHrkuOEUYoAXM0HIzoP80ABSASFtf4cTEAjfIlpZ
	xk0zfFLag87SpDheyiToUVorQn7qVSc6KTt2yfYXvzwczcHPBFTHmOrKcusPlGwa3m39D12TPvj
	PXJqhvfK1EuKRdiIRg6iBSJJg==
X-Received: by 2002:a05:600c:4fc8:b0:47b:de05:aa28 with SMTP id 5b1f17b1804b1-483201db08cmr215602275e9.2.1770720688896;
        Tue, 10 Feb 2026 02:51:28 -0800 (PST)
Message-ID: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
Date: Tue, 10 Feb 2026 11:51:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v4 0/5] (v)PCI: extended capability handling
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>, Stewart Hildebrand <stewart.hildebrand@amd.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

This is a follow-on to 'vPCI: avoid bogus "overlap in extended cap list"
warnings', addressing further issues noted there.

v4: Three new patches and some other re-work. See individual patches.

1: x86/PCI: avoid re-evaluation of extended config space accessibility
2: vPCI: introduce private header
3: vPCI: move vpci_init_capabilities() to a separate file
4: vPCI: move capability-list init
5: vPCI: re-init extended-capabilities when MMCFG availability changed

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:52:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:52:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226233.1532766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vplMT-0004ju-A2; Tue, 10 Feb 2026 10:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226233.1532766; Tue, 10 Feb 2026 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 1vplMT-0004jn-6v; Tue, 10 Feb 2026 10:52:53 +0000
Received: by outflank-mailman (input) for mailman id 1226233;
 Tue, 10 Feb 2026 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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vplMS-0004jf-8L
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:52:52 +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 a522676b-066e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:52:51 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-436e87589e8so1971499f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 02:52:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4362974b230sm37056571f8f.36.2026.02.10.02.52.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 02:52:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a522676b-066e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770720771; x=1771325571; 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=eJHKitDbZ1B8kzKIjRTpmb8+1aYuXto+6m6ltPFsdaA=;
        b=Jq1Fz/wgwMc8jbYcv5HMTV4DIwNX0sZUNSK1itQ4iVrIo0kHPNug2ZW/lOMjcApMyU
         w68ZpQPd/mzgHSpDzZzuTayJXdRffXvzc9nUe1S0AI2szGR4vtqQ0f2zAVaOJ/o5AsEY
         i1X0tKt+2SB5Ih8plYogqLCnzYWMbzZvPLkmGAiwSCH6mrYZZocMDafSVbmVAZf5yR/B
         OvRF//9FYrJKwQzT2ezWO7A8xoU6ZoWCmg+z6uhFQBrUxuLBgLS4+sq+amuD2yUkdBTz
         L+hXk4M75mOHR2AhKYnX8lEDDqk26HTFmSUXVle6aITcRIwNs7tC2PWG/DoZZWsQdqa+
         G8yg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770720771; x=1771325571;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eJHKitDbZ1B8kzKIjRTpmb8+1aYuXto+6m6ltPFsdaA=;
        b=AwHMoQi8VYDKRrYmtXsiMjukN9xBq6khM2mcQ/9NIvWyILx7FwyS64pOyoMJ0MdfGH
         OCbR6r+FpMdfDqljkF6FX0r5CfPZBCWdPNqxNk/L3b0bU2zxcjgODVBfM8pEjAQ+SBjb
         6Cv7wS7j2083fGeZGS3okxF+nQ1knL/iCwoYd46xTDRlrevc4E9HzXMaHiQulMwMS2Ee
         hHctB4nTxmkTBcPuBbd+gBBwclBuvfj6iIjFWQGCDhe66S3Iofv1I89+TgyoGEKSMbnH
         I+BOVp2ByrbHYdfpznQDzsFeixXhP4B5REZPf/V1CMbQYunxvuBa+AZ5D17MYodjsSau
         BszQ==
X-Gm-Message-State: AOJu0YxfWi8x4ZWj3vAzpquerkCWOQSasr0QyuGC3i2H49q4pRnr2vbM
	f5KalVZhrZY8FfwtEzWxHZUVcNzKCtWTCrsG8aZ5Q2KupEjaHs1vq83XJ6k1RjEOR8v4OcGRhL7
	/Ga0=
X-Gm-Gg: AZuq6aLKzEMOULbzYrEV7XeA46L43TBC8N/vznCs1WHUM6SLXacHHR4qXSlf52y/1xB
	N/ZvBcCY/etC++H+OfH7hpRVtUzsSPRkBmqwqRzhyD5Fhfp5kjwwlZokytVyOa+PQh8AsuQFLdx
	sl3p0hmu20QDykSEVbT7DaJVUVigrU+eONW4oUFTrl6rNClfGzHvGTrFhE0surpxUoWdnfojpOc
	JO0AeqRvl6wYFwgIWQG5qGrpoKyUw2tvrVrJs3rXbHe81SyqHuyP5JL4/oZgvy9pomVLtI/7mCH
	imx3QbzNA7k+A/UqaJFcZyQ3mR4x2FEPds1qrdr6DRvV/wrr2SjJCPOqRyQElvurnKmyqv58ujG
	e0GnqQsfIbmLHm0Qp/E72m1l+GzyqmsBkik8HPMFQivY+f2dtBJ1DZCzPKNSb3BVh3V6u75Ipwm
	cf4vymbkoRNApGaXBIJW+2q3ebv0D8fcxZKQuTUslBk+usBNE5+pgTQV0LveVK04oEVylj0Kl/x
	EWKdwaoz43J63Y=
X-Received: by 2002:a05:6000:144f:b0:431:9dd:2cca with SMTP id ffacd0b85a97d-4377a503d26mr2412970f8f.7.1770720770561;
        Tue, 10 Feb 2026 02:52:50 -0800 (PST)
Message-ID: <ff4b58f6-cf9d-48c5-9440-3288e20a51d7@suse.com>
Date: Tue, 10 Feb 2026 11:52:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 1/5] x86/PCI: avoid re-evaluation of extended config space
 accessibility
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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <25c65557-c97c-499c-a698-571e40cde563@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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

When, during boot, we have already correctly determined availability of
the MMCFG access method for a given bus range, there's then no need to
invoke pci_check_extcfg() again for every of the devices. This in
particular avoids ->ext_cfg to transiently indicate the wrong state.

Switch to using Xen style on lines being touched and immediately adjacent
ones.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
---
v4: Don't bypass mcfg_ioremap(cfg, idx, 0) in pci_mmcfg_arch_disable().
v3: New.

--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -528,6 +528,8 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
         if ( !ret )
             ret = pci_segment_iterate(info.segment, physdev_check_pci_extcfg,
                                       &info);
+        else if ( ret > 0 ) /* Indication of "no change". */
+            ret = 0;
 
         if ( !ret && has_vpci(currd) && (info.flags & XEN_PCI_MMCFG_RESERVED) )
         {
--- a/xen/arch/x86/x86_64/mmconfig.h
+++ b/xen/arch/x86/x86_64/mmconfig.h
@@ -74,6 +74,6 @@ int pci_mmcfg_reserved(uint64_t address,
                        unsigned int flags);
 int pci_mmcfg_arch_init(void);
 int pci_mmcfg_arch_enable(unsigned int idx);
-void pci_mmcfg_arch_disable(unsigned int idx);
+int pci_mmcfg_arch_disable(unsigned int idx);
 
 #endif /* X86_64_MMCONFIG_H */
--- a/xen/arch/x86/x86_64/mmconfig-shared.c
+++ b/xen/arch/x86/x86_64/mmconfig-shared.c
@@ -388,8 +388,9 @@ static bool __init pci_mmcfg_reject_brok
                (unsigned int)cfg->start_bus_number,
                (unsigned int)cfg->end_bus_number);
 
-        if (!is_mmconf_reserved(addr, size, i, cfg) ||
-            pci_mmcfg_arch_enable(i)) {
+        if ( !is_mmconf_reserved(addr, size, i, cfg) ||
+             pci_mmcfg_arch_enable(i) < 0 )
+        {
             pci_mmcfg_arch_disable(i);
             valid = 0;
         }
@@ -417,8 +418,8 @@ void __init acpi_mmcfg_init(void)
         unsigned int i;
 
         pci_mmcfg_arch_init();
-        for (i = 0; i < pci_mmcfg_config_num; ++i)
-            if (pci_mmcfg_arch_enable(i))
+        for ( i = 0; i < pci_mmcfg_config_num; ++i )
+            if ( pci_mmcfg_arch_enable(i) < 0 )
                 valid = 0;
     } else {
         acpi_table_parse(ACPI_SIG_MCFG, acpi_parse_mcfg);
@@ -458,10 +459,11 @@ int pci_mmcfg_reserved(uint64_t address,
                        segment, start_bus, end_bus, address, cfg->address);
                 return -EIO;
             }
-            if (flags & XEN_PCI_MMCFG_RESERVED)
+
+            if ( flags & XEN_PCI_MMCFG_RESERVED )
                 return pci_mmcfg_arch_enable(i);
-            pci_mmcfg_arch_disable(i);
-            return 0;
+
+            return pci_mmcfg_arch_disable(i);
         }
     }
 
--- a/xen/arch/x86/x86_64/mmconfig_64.c
+++ b/xen/arch/x86/x86_64/mmconfig_64.c
@@ -138,8 +138,9 @@ int pci_mmcfg_arch_enable(unsigned int i
     const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
     unsigned long start_mfn, end_mfn;
 
-    if (pci_mmcfg_virt[idx].virt)
-        return 0;
+    if ( pci_mmcfg_virt[idx].virt )
+        return 1;
+
     pci_mmcfg_virt[idx].virt = mcfg_ioremap(cfg, idx, PAGE_HYPERVISOR_UC);
     if (!pci_mmcfg_virt[idx].virt) {
         printk(KERN_ERR "PCI: Cannot map MCFG aperture for segment %04x\n",
@@ -160,9 +161,10 @@ int pci_mmcfg_arch_enable(unsigned int i
     return 0;
 }
 
-void pci_mmcfg_arch_disable(unsigned int idx)
+int pci_mmcfg_arch_disable(unsigned int idx)
 {
     const typeof(pci_mmcfg_config[0]) *cfg = pci_mmcfg_virt[idx].cfg;
+    int ret = !pci_mmcfg_virt[idx].virt;
 
     pci_mmcfg_virt[idx].virt = NULL;
     /*
@@ -173,6 +175,8 @@ void pci_mmcfg_arch_disable(unsigned int
     mcfg_ioremap(cfg, idx, 0);
     printk(KERN_WARNING "PCI: Not using MCFG for segment %04x bus %02x-%02x\n",
            cfg->pci_segment, cfg->start_bus_number, cfg->end_bus_number);
+
+    return ret;
 }
 
 bool pci_mmcfg_decode(unsigned long mfn, unsigned int *seg, unsigned int *bdf)



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:53:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:53:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226242.1532775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vplNT-0005IF-Lx; Tue, 10 Feb 2026 10:53:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226242.1532775; Tue, 10 Feb 2026 10: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 1vplNT-0005I8-Iw; Tue, 10 Feb 2026 10:53:55 +0000
Received: by outflank-mailman (input) for mailman id 1226242;
 Tue, 10 Feb 2026 10: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vplNS-0004jf-Ax
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:53: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 c9f9ac04-066e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:53:53 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-482f2599980so7818395e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 02:53:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43629754c62sm30715414f8f.38.2026.02.10.02.53.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 02:53:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c9f9ac04-066e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770720832; x=1771325632; 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=UqWY/OHj/E7vo6rEZ7e1xZN5PDQeyG/GwojCyOGrDlE=;
        b=QAeSFrOGJd1kWJpj7JYvhOu7M5OEaeiVZu+wx8Xj/D/4DhbBbRBECUdROlb8AbcZTz
         7Xsop8CUU2WqCzQV4B0z58N0k//WW1TrDbbYgxOa6B5xZ5RbzkaT1LPKaKVUDeRflf1O
         xKEWe4Q1J5UwkjM6l0teDY55kkiFr3YVfRLbJ0fqfbjSM5eWTBAogkF3egmNCkpbalxL
         BdI8tCss4WykSvz+h6r6lzuSMommUvSrEczv9W9SHnziJnO79W9hmBGcmLEQRDEEApJH
         FSzE8gGE7UtrGK8tVz23SeUON5MzJN/fqcYc9QwuzdhDAuKxGZl8ulFvqvULDKMCIlbQ
         PnjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770720832; x=1771325632;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UqWY/OHj/E7vo6rEZ7e1xZN5PDQeyG/GwojCyOGrDlE=;
        b=w81RlMG5S2neZTxFbwl05nfRUUhhVmYFsb6Hz9lnvtvY0hKi0SYLFkb2cB8XM5nxtB
         pGuIRVWOdli5SexV57oGVCJUcv6wMcHDI7rTIBv3r/uvQnAkyZu59DcDHTCICO2VnGVK
         DIZmNSkaeJIJr+A4Kov3NVkf+u8s4hK9MXLXo5ALCYHwVyg2hJi6PtVD4FItmVLRF2C0
         z8vVfZH5lQvD9vIGxIsTk8jf6Fy51k63E7fj0wBH6ORb0nE3vQSP9tc4XtItO2hZBxdL
         PiOVNNNOdrc6Ud9lkOsAcoSZAMP3GcVDq+Z+fzl7YQjjpcmkvsyI6Z5p7cpl4GHtqJ/E
         jBIg==
X-Gm-Message-State: AOJu0YwJDUBcTj+c7hojf1NqVl3+fxu5j54kTHlJgjA+WUBAMJzwKGmf
	PrbuCY8f2ZxMriWBK3eidCPjq9CPeVlnuMJz/3xnFnXLgNcvTO2AJl1T0A/w6X3iHUpSwtf+U/b
	Z3gY=
X-Gm-Gg: AZuq6aL1q04fjIvG17wcJCbqpaAlOOBY/uoXXIj338sx0XjuNsm5jVvAdATIzp3gaE0
	vDDCih3mQhjT5ZTs49J5ZXKJVXrpbchbn/e2hmt687JJfBcoIN5TbfR5e+FF/0Jpn79Qov6JavI
	r94LDZYrhDHeDTqu6agemPVwzfkpWKh0t1kpUbwUfIpIObpip/0+RI7oZLngn2H5aIpx44ouiZc
	5r2Qcgnyc6jbu9sbd2Lgw4OjvF4jLukffRCnnMkdnMLWv7m+3CPnm0FzIrdmxtyAxfyHRQ6QghS
	J+NXJyEa8cIV7rC5s7JEmiurm5iSUBNnE2br7JWkkATxXkmjbmaUGn5WFkP6jR1W4HK56jLQyMF
	2jnm4mcQYqcV10kfoJEeR5x3XdOX0baBBylJ9SQOL6hQeYLWIJYIY1mFrpieajXNQCWQgKoeo68
	/u1I0NjAgxPmoyRBwBbCn16g1c3Y74nKcq3fHBSDgl81T2QYf0MGWxpIk94wXtMnKAJ74MujFpn
	Bw2AsdeZBpFhSQFu1TQtvuf2A==
X-Received: by 2002:a05:600c:19c7:b0:477:9814:6882 with SMTP id 5b1f17b1804b1-483201dd0afmr188048785e9.5.1770720832284;
        Tue, 10 Feb 2026 02:53:52 -0800 (PST)
Message-ID: <4fda7acb-e1a4-4a24-982e-4cae90048018@suse.com>
Date: Tue, 10 Feb 2026 11:53:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 2/5] vPCI: introduce private header
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>, Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>
References: <25c65557-c97c-499c-a698-571e40cde563@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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Before adding more private stuff to xen/vpci.h, split it up. In order to
be able to include the private header first in a CU, the per-arch struct
decls also need to move (to new asm/vpci.h files).

While adjusting the test harness'es Makefile, also switch the pre-existing
header symlink-ing rule to a pattern one.

Apart from in the test harness code, things only move; no functional
change intended.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Subsequently, at least on x86 more stuff may want moving into asm/vpci.h.
---
v4: New.

--- a/tools/tests/vpci/Makefile
+++ b/tools/tests/vpci/Makefile
@@ -14,8 +14,8 @@ else
 	$(warning HOSTCC != CC, will not run test)
 endif
 
-$(TARGET): vpci.c vpci.h list.h main.c emul.h
-	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
+$(TARGET): vpci.c vpci.h list.h private.h main.c emul.h
+	$(CC) $(CFLAGS_xeninclude) -include emul.h -g -o $@ vpci.c main.c
 
 .PHONY: clean
 clean:
@@ -34,10 +34,10 @@ uninstall:
 	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
 
 vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
-	# Remove includes and add the test harness header
-	sed -e '/#include/d' -e '1s/^/#include "emul.h"/' <$< >$@
+	sed -e '/#include/d' <$< >$@
+
+private.h: %.h: $(XEN_ROOT)/xen/drivers/vpci/%.h
+	sed -e '/#include/d' <$< >$@
 
-list.h: $(XEN_ROOT)/xen/include/xen/list.h
-vpci.h: $(XEN_ROOT)/xen/include/xen/vpci.h
-list.h vpci.h:
+list.h vpci.h: %.h: $(XEN_ROOT)/xen/include/xen/%.h
 	sed -e '/#include/d' <$< >$@
--- a/tools/tests/vpci/emul.h
+++ b/tools/tests/vpci/emul.h
@@ -86,6 +86,7 @@ typedef union {
 
 #define CONFIG_HAS_VPCI
 #include "vpci.h"
+#include "private.h"
 
 #define __hwdom_init
 
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -31,14 +31,6 @@ struct arch_pci_dev {
     struct device dev;
 };
 
-/* Arch-specific MSI data for vPCI. */
-struct vpci_arch_msi {
-};
-
-/* Arch-specific MSI-X entry data for vPCI. */
-struct vpci_arch_msix_entry {
-};
-
 /*
  * Because of the header cross-dependencies, e.g. we need both
  * struct pci_dev and struct arch_pci_dev at the same time, this cannot be
--- /dev/null
+++ b/xen/arch/arm/include/asm/vpci.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef ARM_VPCI_H
+#define ARM_VPCI_H
+
+/* Arch-specific MSI data for vPCI. */
+struct vpci_arch_msi {
+};
+
+/* Arch-specific MSI-X entry data for vPCI. */
+struct vpci_arch_msix_entry {
+};
+
+#endif /* ARM_VPCI_H */
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -97,17 +97,6 @@ void msixtbl_init(struct domain *d);
 static inline void msixtbl_init(struct domain *d) {}
 #endif
 
-/* Arch-specific MSI data for vPCI. */
-struct vpci_arch_msi {
-    int pirq;
-    bool bound;
-};
-
-/* Arch-specific MSI-X entry data for vPCI. */
-struct vpci_arch_msix_entry {
-    int pirq;
-};
-
 void stdvga_init(struct domain *d);
 
 extern void hvm_dpci_msi_eoi(struct domain *d, int vector);
--- /dev/null
+++ b/xen/arch/x86/include/asm/vpci.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef X86_VPCI_H
+#define X86_VPCI_H
+
+#include <xen/stdbool.h>
+
+/* Arch-specific MSI data for vPCI. */
+struct vpci_arch_msi {
+    int pirq;
+    bool bound;
+};
+
+/* Arch-specific MSI-X entry data for vPCI. */
+struct vpci_arch_msix_entry {
+    int pirq;
+};
+
+#endif /* X86_VPCI_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -17,11 +17,12 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "private.h"
+
 #include <xen/iocap.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
 #include <xen/softirq.h>
-#include <xen/vpci.h>
 
 #include <xsm/xsm.h>
 
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -16,9 +16,10 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "private.h"
+
 #include <xen/sched.h>
 #include <xen/softirq.h>
-#include <xen/vpci.h>
 
 #include <asm/msi.h>
 
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -17,10 +17,11 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "private.h"
+
 #include <xen/io.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
-#include <xen/vpci.h>
 
 #include <asm/msi.h>
 #include <asm/p2m.h>
--- /dev/null
+++ b/xen/drivers/vpci/private.h
@@ -0,0 +1,124 @@
+#ifndef VPCI_PRIVATE_H
+#define VPCI_PRIVATE_H
+
+#include <xen/vpci.h>
+
+typedef uint32_t vpci_read_t(const struct pci_dev *pdev, unsigned int reg,
+                             void *data);
+
+typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
+                          uint32_t val, void *data);
+
+typedef struct {
+    unsigned int id;
+    bool is_ext;
+    int (* init)(struct pci_dev *pdev);
+    int (* cleanup)(const struct pci_dev *pdev, bool hide);
+} vpci_capability_t;
+
+#define REGISTER_VPCI_CAPABILITY(cap, name, finit, fclean, ext) \
+    static const vpci_capability_t name##_entry \
+        __used_section(".data.rel.ro.vpci") = { \
+        .id = (cap), \
+        .init = (finit), \
+        .cleanup = (fclean), \
+        .is_ext = (ext), \
+    }
+
+#define REGISTER_VPCI_CAP(name, finit, fclean) \
+    REGISTER_VPCI_CAPABILITY(PCI_CAP_ID_##name, name, finit, fclean, false)
+#define REGISTER_VPCI_EXTCAP(name, finit, fclean) \
+    REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
+
+/* Add/remove a register handler. */
+int __must_check vpci_add_register_mask(struct vpci *vpci,
+                                        vpci_read_t *read_handler,
+                                        vpci_write_t *write_handler,
+                                        unsigned int offset, unsigned int size,
+                                        void *data, uint32_t ro_mask,
+                                        uint32_t rw1c_mask, uint32_t rsvdp_mask,
+                                        uint32_t rsvdz_mask);
+int __must_check vpci_add_register(struct vpci *vpci,
+                                   vpci_read_t *read_handler,
+                                   vpci_write_t *write_handler,
+                                   unsigned int offset, unsigned int size,
+                                   void *data);
+
+int vpci_remove_registers(struct vpci *vpci, unsigned int start,
+                          unsigned int size);
+
+/* Helper to return the value passed in data. */
+uint32_t cf_check vpci_read_val(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+
+/* Passthrough handlers. */
+uint32_t cf_check vpci_hw_read8(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+uint32_t cf_check vpci_hw_read16(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+uint32_t cf_check vpci_hw_read32(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+void cf_check vpci_hw_write8(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
+void cf_check vpci_hw_write16(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
+
+#ifdef __XEN__
+/* Make sure there's a hole in the p2m for the MSIX mmio areas. */
+int vpci_make_msix_hole(const struct pci_dev *pdev);
+
+/*
+ * Helper functions to fetch MSIX related data. They are used by both the
+ * emulated MSIX code and the BAR handlers.
+ */
+static inline paddr_t vmsix_table_host_base(const struct vpci *vpci,
+                                            unsigned int nr)
+{
+    return vpci->header.bars[vpci->msix->tables[nr] & PCI_MSIX_BIRMASK].addr;
+}
+
+static inline paddr_t vmsix_table_host_addr(const struct vpci *vpci,
+                                            unsigned int nr)
+{
+    return vmsix_table_host_base(vpci, nr) +
+           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
+}
+
+static inline paddr_t vmsix_table_base(const struct vpci *vpci, unsigned int nr)
+{
+    return vpci->header.bars[vpci->msix->tables[nr] &
+                             PCI_MSIX_BIRMASK].guest_addr;
+}
+
+static inline paddr_t vmsix_table_addr(const struct vpci *vpci, unsigned int nr)
+{
+    return vmsix_table_base(vpci, nr) +
+           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
+}
+
+/*
+ * Note regarding the size calculation of the PBA: the spec mentions "The last
+ * QWORD will not necessarily be fully populated", so it implies that the PBA
+ * size is 64-bit aligned.
+ */
+static inline size_t vmsix_table_size(const struct vpci *vpci, unsigned int nr)
+{
+    return
+        (nr == VPCI_MSIX_TABLE) ? vpci->msix->max_entries * PCI_MSIX_ENTRY_SIZE
+                                : ROUNDUP(DIV_ROUND_UP(vpci->msix->max_entries,
+                                                       8), 8);
+}
+
+#endif /* __XEN__ */
+
+#endif /* VPCI_PRIVATE_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -5,8 +5,9 @@
  * Author: Jiqian Chen <Jiqian.Chen@amd.com>
  */
 
+#include "private.h"
+
 #include <xen/sched.h>
-#include <xen/vpci.h>
 
 static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
                                       unsigned int reg,
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -17,8 +17,9 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "private.h"
+
 #include <xen/sched.h>
-#include <xen/vpci.h>
 #include <xen/vmap.h>
 
 /* Internal struct to store the emulated PCI registers. */
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -7,18 +7,7 @@
 #include <xen/types.h>
 #include <xen/list.h>
 
-typedef uint32_t vpci_read_t(const struct pci_dev *pdev, unsigned int reg,
-                             void *data);
-
-typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
-                          uint32_t val, void *data);
-
-typedef struct {
-    unsigned int id;
-    bool is_ext;
-    int (* init)(struct pci_dev *pdev);
-    int (* cleanup)(const struct pci_dev *pdev, bool hide);
-} vpci_capability_t;
+#include <asm/vpci.h>
 
 #define VPCI_ECAM_BDF(addr)     (((addr) & 0x0ffff000) >> 12)
 
@@ -30,20 +19,6 @@ typedef struct {
  */
 #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
 
-#define REGISTER_VPCI_CAPABILITY(cap, name, finit, fclean, ext) \
-    static const vpci_capability_t name##_entry \
-        __used_section(".data.rel.ro.vpci") = { \
-        .id = (cap), \
-        .init = (finit), \
-        .cleanup = (fclean), \
-        .is_ext = (ext), \
-    }
-
-#define REGISTER_VPCI_CAP(name, finit, fclean) \
-    REGISTER_VPCI_CAPABILITY(PCI_CAP_ID_##name, name, finit, fclean, false)
-#define REGISTER_VPCI_EXTCAP(name, finit, fclean) \
-    REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
-
 int __must_check vpci_init_header(struct pci_dev *pdev);
 
 /* Assign vPCI to device by adding handlers. */
@@ -52,44 +27,11 @@ int __must_check vpci_assign_device(stru
 /* Remove all handlers and free vpci related structures. */
 void vpci_deassign_device(struct pci_dev *pdev);
 
-/* Add/remove a register handler. */
-int __must_check vpci_add_register_mask(struct vpci *vpci,
-                                        vpci_read_t *read_handler,
-                                        vpci_write_t *write_handler,
-                                        unsigned int offset, unsigned int size,
-                                        void *data, uint32_t ro_mask,
-                                        uint32_t rw1c_mask, uint32_t rsvdp_mask,
-                                        uint32_t rsvdz_mask);
-int __must_check vpci_add_register(struct vpci *vpci,
-                                   vpci_read_t *read_handler,
-                                   vpci_write_t *write_handler,
-                                   unsigned int offset, unsigned int size,
-                                   void *data);
-
-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);
 void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
                 uint32_t data);
 
-/* Helper to return the value passed in data. */
-uint32_t cf_check vpci_read_val(
-    const struct pci_dev *pdev, unsigned int reg, void *data);
-
-/* Passthrough handlers. */
-uint32_t cf_check vpci_hw_read8(
-    const struct pci_dev *pdev, unsigned int reg, void *data);
-uint32_t cf_check vpci_hw_read16(
-    const struct pci_dev *pdev, unsigned int reg, void *data);
-uint32_t cf_check vpci_hw_read32(
-    const struct pci_dev *pdev, unsigned int reg, void *data);
-void cf_check vpci_hw_write8(
-    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
-void cf_check vpci_hw_write16(
-    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
-
 /*
  * Check for pending vPCI operations on this vcpu. Returns true if the vcpu
  * should not run.
@@ -213,9 +155,6 @@ struct vpci_vcpu {
 #ifdef __XEN__
 void vpci_dump_msi(void);
 
-/* Make sure there's a hole in the p2m for the MSIX mmio areas. */
-int vpci_make_msix_hole(const struct pci_dev *pdev);
-
 /* Arch-specific vPCI MSI helpers. */
 void vpci_msi_arch_mask(struct vpci_msi *msi, const struct pci_dev *pdev,
                         unsigned int entry, bool mask);
@@ -238,48 +177,6 @@ int __must_check vpci_msix_arch_disable_
 void vpci_msix_arch_init_entry(struct vpci_msix_entry *entry);
 int vpci_msix_arch_print(const struct vpci_msix *msix);
 
-/*
- * Helper functions to fetch MSIX related data. They are used by both the
- * emulated MSIX code and the BAR handlers.
- */
-static inline paddr_t vmsix_table_host_base(const struct vpci *vpci,
-                                            unsigned int nr)
-{
-    return vpci->header.bars[vpci->msix->tables[nr] & PCI_MSIX_BIRMASK].addr;
-}
-
-static inline paddr_t vmsix_table_host_addr(const struct vpci *vpci,
-                                            unsigned int nr)
-{
-    return vmsix_table_host_base(vpci, nr) +
-           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
-}
-
-static inline paddr_t vmsix_table_base(const struct vpci *vpci, unsigned int nr)
-{
-    return vpci->header.bars[vpci->msix->tables[nr] &
-                             PCI_MSIX_BIRMASK].guest_addr;
-}
-
-static inline paddr_t vmsix_table_addr(const struct vpci *vpci, unsigned int nr)
-{
-    return vmsix_table_base(vpci, nr) +
-           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
-}
-
-/*
- * Note regarding the size calculation of the PBA: the spec mentions "The last
- * QWORD will not necessarily be fully populated", so it implies that the PBA
- * size is 64-bit aligned.
- */
-static inline size_t vmsix_table_size(const struct vpci *vpci, unsigned int nr)
-{
-    return
-        (nr == VPCI_MSIX_TABLE) ? vpci->msix->max_entries * PCI_MSIX_ENTRY_SIZE
-                                : ROUNDUP(DIV_ROUND_UP(vpci->msix->max_entries,
-                                                       8), 8);
-}
-
 static inline unsigned int vmsix_entry_nr(const struct vpci_msix *msix,
                                           const struct vpci_msix_entry *entry)
 {



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:54:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226249.1532786 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vplNv-0005mc-TV; Tue, 10 Feb 2026 10:54:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226249.1532786; Tue, 10 Feb 2026 10: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 1vplNv-0005mV-QV; Tue, 10 Feb 2026 10:54:23 +0000
Received: by outflank-mailman (input) for mailman id 1226249;
 Tue, 10 Feb 2026 10:54: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vplNt-0004jf-Kd
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:54:21 +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 da7965a1-066e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:54:20 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4801eb2c0a5so51890865e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 02:54:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4832096c438sm197308905e9.3.2026.02.10.02.54.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 02:54:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da7965a1-066e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770720860; x=1771325660; 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/dEX2kKzzmAnt1Zegeuwsix6l/RE3FSLEbF5w2fmL0=;
        b=GH1gfZAP6BIdiBmwRzePRkLmuMuCXtsTmnsZsT1pxgxKBrhqoJ1QShilf1K/CQb50R
         nAPOADpjC1138amQR5T1vYHsUxBxOG48orp+AxcdyG+XPjVxfK207qEkGyV1G9RTFC5m
         6QJrgZ7DjPrq7UMBLlFEbdDnNqAZbcVqVAPM4uNXlh8128Tzs1F3SjTVdyuhT+c1ksDA
         aPSMwzqAKIK+C02iRNoUoE+l+pwCld2hdjVgb3i+JCcPaoFk9Rttd7645dOTYl4S8AeV
         BMU1kxpep7GKWmShyBHa8rsnEPWTb9X6Dkkng7PqSPYo5CUHEXIzkSVRDTQdzlJ7puXX
         ZSHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770720860; x=1771325660;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j/dEX2kKzzmAnt1Zegeuwsix6l/RE3FSLEbF5w2fmL0=;
        b=Td9Cf8Gve6O8QCShTaJiIhER5ERgdSO3/RjiA8d3Q8ZjwstiB78zmLKy0xNMbqKseG
         4F2iySOltQfFjfsDM82NqSbYmTVQ4ai2QzRA40r3hbjN5qAnODwdIM8AQFgu+bCaPfth
         UQkXpNrliuHM+T+kmzcYiqg5NQrcVk5nEH6VWosCsel5sGhMoMWAf3sRtEDt4STe7KtH
         uXKMVBm2hQbGpZg2AC/a+Xves0OALAMLi1g8Ab77u1L/MF7YrVyqcAzJwHkQVcqCCJOe
         KhzOPKTw67h2U9wvyd7UOFx6+klYnJIuguvnxLfCPivqyKoApT+8AGzhEcqgV9brtbGl
         pvzA==
X-Gm-Message-State: AOJu0YwqIZsyvYBpfNdYACgmzRHn+uq3jgTWYcQds8PByqUSGvu25pf3
	Tg5HXjxa0dW4UzUuynekO+tasgTm4jr0d33wQSU6cJLQBk4wGTG5+gQgZUH6melhbfYCYROsyM/
	dBjI=
X-Gm-Gg: AZuq6aL6bkm5OQ9KebhLwzmNPSpXGokPha6dCoOPKRNJJn9uTpxJShZAkDu/KuTHPE5
	OQ/KvkjsowQvHxJzRLz7Qc8iymiT+aGAuqb4cihkeJl8TSJXsphnjoaDEolf9w/wQP6YzVHzwcX
	OOlttMcLE5r/S47X+jMnen8qJ+8YbatyUhw8NQ+p0hsK2M10D4hc+EfopwA/WxoCzKRxJzZe6sP
	gYR4WuVL1JRILWFpZ7ct1GjCngKaodRhIDMHM5Iwx0DtI9F5LmWUkWKf9wxB0jWnDMSzAnDYcdD
	UxyyaO37PgWvHuZEHaFDE2BD+KbkJyn/Xp3K5w+NwhMck5QI9LZ343f9yYaTvKX8JDoW9wpRDJG
	5JpzU807HZJ8DG5ShPynEXNNElaMm5EWDUFJsTTgcd4cSe87dA5uwmbGFRixtjQlEEmJE0j9mDu
	5VVYpf9lB07qmMCXLLpocjCdGElf4pkWkpDmndOrIRdhqm22EMoRWzaKoEzieO9azewxS0qotVv
	EUaI+NVWt4vXLg=
X-Received: by 2002:a05:600c:4e8b:b0:477:7bca:8b2b with SMTP id 5b1f17b1804b1-483507f2bb3mr22749045e9.15.1770720859895;
        Tue, 10 Feb 2026 02:54:19 -0800 (PST)
Message-ID: <c90890f0-2e6a-43d9-84f9-b0ea19a11d3d@suse.com>
Date: Tue, 10 Feb 2026 11:54:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 3/5] vPCI: move vpci_init_capabilities() to a separate file
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <25c65557-c97c-499c-a698-571e40cde563@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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Let's keep capability handling together. Start with moving
vpci_init_capabilities() and its helpers, plus splitting out of its
cleanup counterpart.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
vpci_get_register(), while now only used by cap.c, didn't look like it
would want moving there.
---
v4: New.

--- a/xen/drivers/vpci/Makefile
+++ b/xen/drivers/vpci/Makefile
@@ -1,2 +1,3 @@
+obj-y += cap.o
 obj-y += vpci.o header.o rebar.o
 obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o
--- /dev/null
+++ b/xen/drivers/vpci/cap.c
@@ -0,0 +1,252 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Capability handling for guest PCI configuration space.
+ */
+
+#include "private.h"
+
+#include <xen/sched.h>
+
+extern const vpci_capability_t __start_vpci_array[];
+extern const vpci_capability_t __end_vpci_array[];
+#define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
+
+static struct vpci_register *vpci_get_previous_cap_register(
+    const struct vpci *vpci, unsigned int offset)
+{
+    unsigned int next;
+    struct vpci_register *r;
+
+    if ( offset < 0x40 )
+    {
+        ASSERT_UNREACHABLE();
+        return NULL;
+    }
+
+    for ( r = vpci_get_register(vpci, PCI_CAPABILITY_LIST, 1); r;
+          r = next >= 0x40 ? vpci_get_register(vpci,
+                                               next + PCI_CAP_LIST_NEXT, 1)
+                           : NULL )
+    {
+        next = (unsigned int)(uintptr_t)r->private;
+        ASSERT(next == (uintptr_t)r->private);
+        if ( next == offset )
+            break;
+    }
+
+    return r;
+}
+
+static int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
+{
+    const unsigned int offset = pci_find_cap_offset(pdev->sbdf, cap);
+    struct vpci_register *prev_r, *next_r;
+    struct vpci *vpci = pdev->vpci;
+
+    if ( !offset )
+    {
+        ASSERT_UNREACHABLE();
+        return 0;
+    }
+
+    spin_lock(&vpci->lock);
+    prev_r = vpci_get_previous_cap_register(vpci, offset);
+    next_r = vpci_get_register(vpci, offset + PCI_CAP_LIST_NEXT, 1);
+    if ( !prev_r || !next_r )
+    {
+        spin_unlock(&vpci->lock);
+        return -ENODEV;
+    }
+
+    prev_r->private = next_r->private;
+    /*
+     * Not calling vpci_remove_registers() here is to avoid redoing
+     * the register search.
+     */
+    list_del(&next_r->node);
+    spin_unlock(&vpci->lock);
+    xfree(next_r);
+
+    if ( !is_hardware_domain(pdev->domain) )
+        return vpci_remove_registers(vpci, offset + PCI_CAP_LIST_ID, 1);
+
+    return 0;
+}
+
+static struct vpci_register *vpci_get_previous_ext_cap_register(
+    const struct vpci *vpci, unsigned int offset)
+{
+    unsigned int pos = PCI_CFG_SPACE_SIZE;
+    struct vpci_register *r;
+
+    if ( offset <= PCI_CFG_SPACE_SIZE )
+    {
+        ASSERT_UNREACHABLE();
+        return NULL;
+    }
+
+    for ( r = vpci_get_register(vpci, pos, 4); r;
+          r = pos > PCI_CFG_SPACE_SIZE ? vpci_get_register(vpci, pos, 4)
+                                       : NULL )
+    {
+        uint32_t header = (uint32_t)(uintptr_t)r->private;
+
+        ASSERT(header == (uintptr_t)r->private);
+
+        pos = PCI_EXT_CAP_NEXT(header);
+        if ( pos == offset )
+            break;
+    }
+
+    return r;
+}
+
+static int vpci_ext_capability_hide(
+    const struct pci_dev *pdev, unsigned int cap)
+{
+    const unsigned int offset = pci_find_ext_capability(pdev, cap);
+    struct vpci_register *r, *prev_r;
+    struct vpci *vpci = pdev->vpci;
+    uint32_t header, pre_header;
+
+    if ( offset < PCI_CFG_SPACE_SIZE )
+    {
+        ASSERT_UNREACHABLE();
+        return 0;
+    }
+
+    spin_lock(&vpci->lock);
+    r = vpci_get_register(vpci, offset, 4);
+    if ( !r )
+    {
+        spin_unlock(&vpci->lock);
+        return -ENODEV;
+    }
+
+    header = (uint32_t)(uintptr_t)r->private;
+    if ( offset == PCI_CFG_SPACE_SIZE )
+    {
+        if ( PCI_EXT_CAP_NEXT(header) <= PCI_CFG_SPACE_SIZE )
+            r->private = (void *)0;
+        else
+            /*
+             * The first extended capability (0x100) can not be removed from
+             * the linked list, so instead mask its capability ID to return 0
+             * hopefully forcing OSes to skip it.
+             */
+            r->private = (void *)(uintptr_t)(header & ~PCI_EXT_CAP_ID(header));
+
+        spin_unlock(&vpci->lock);
+        return 0;
+    }
+
+    prev_r = vpci_get_previous_ext_cap_register(vpci, offset);
+    if ( !prev_r )
+    {
+        spin_unlock(&vpci->lock);
+        return -ENODEV;
+    }
+
+    pre_header = (uint32_t)(uintptr_t)prev_r->private;
+    pre_header &= ~PCI_EXT_CAP_NEXT_MASK;
+    pre_header |= header & PCI_EXT_CAP_NEXT_MASK;
+    prev_r->private = (void *)(uintptr_t)pre_header;
+
+    list_del(&r->node);
+    spin_unlock(&vpci->lock);
+    xfree(r);
+
+    return 0;
+}
+
+int vpci_init_capabilities(struct pci_dev *pdev)
+{
+    for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
+    {
+        const vpci_capability_t *capability = &__start_vpci_array[i];
+        const unsigned int cap = capability->id;
+        const bool is_ext = capability->is_ext;
+        unsigned int pos = 0;
+        int rc;
+
+        if ( !is_ext )
+            pos = pci_find_cap_offset(pdev->sbdf, cap);
+        else if ( is_hardware_domain(pdev->domain) )
+            pos = pci_find_ext_capability(pdev, cap);
+
+        if ( !pos )
+            continue;
+
+        rc = capability->init(pdev);
+        if ( rc )
+        {
+            const char *type = is_ext ? "extended" : "legacy";
+
+            printk(XENLOG_WARNING
+                   "%pd %pp: init %s cap %u fail rc=%d, mask it\n",
+                   pdev->domain, &pdev->sbdf, type, cap, rc);
+
+            if ( capability->cleanup )
+            {
+                rc = capability->cleanup(pdev, true);
+                if ( rc )
+                {
+                    printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=%d\n",
+                           pdev->domain, &pdev->sbdf, type, cap, rc);
+                    if ( !is_hardware_domain(pdev->domain) )
+                        return rc;
+                }
+            }
+
+            if ( !is_ext )
+                rc = vpci_capability_hide(pdev, cap);
+            else
+                rc = vpci_ext_capability_hide(pdev, cap);
+            if ( rc )
+            {
+                printk(XENLOG_ERR "%pd %pp: hide %s cap %u fail rc=%d\n",
+                       pdev->domain, &pdev->sbdf, type, cap, rc);
+                return rc;
+            }
+        }
+    }
+
+    return 0;
+}
+
+void vpci_cleanup_capabilities(struct pci_dev *pdev)
+{
+    for ( unsigned int 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, 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);
+        }
+    }
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/drivers/vpci/private.h
+++ b/xen/drivers/vpci/private.h
@@ -9,6 +9,20 @@ typedef uint32_t vpci_read_t(const struc
 typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
                           uint32_t val, void *data);
 
+/* Internal struct to store the emulated PCI registers. */
+struct vpci_register {
+    vpci_read_t *read;
+    vpci_write_t *write;
+    unsigned int size;
+    unsigned int offset;
+    void *private;
+    struct list_head node;
+    uint32_t ro_mask;
+    uint32_t rw1c_mask;
+    uint32_t rsvdp_mask;
+    uint32_t rsvdz_mask;
+};
+
 typedef struct {
     unsigned int id;
     bool is_ext;
@@ -30,6 +44,9 @@ typedef struct {
 #define REGISTER_VPCI_EXTCAP(name, finit, fclean) \
     REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
 
+int vpci_init_capabilities(struct pci_dev *pdev);
+void vpci_cleanup_capabilities(struct pci_dev *pdev);
+
 /* Add/remove a register handler. */
 int __must_check vpci_add_register_mask(struct vpci *vpci,
                                         vpci_read_t *read_handler,
@@ -47,6 +64,10 @@ int __must_check vpci_add_register(struc
 int vpci_remove_registers(struct vpci *vpci, unsigned int start,
                           unsigned int size);
 
+struct vpci_register *vpci_get_register(const struct vpci *vpci,
+                                        unsigned int offset,
+                                        unsigned int size);
+
 /* Helper to return the value passed in data. */
 uint32_t cf_check vpci_read_val(
     const struct pci_dev *pdev, unsigned int reg, void *data);
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -22,24 +22,7 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
-/* Internal struct to store the emulated PCI registers. */
-struct vpci_register {
-    vpci_read_t *read;
-    vpci_write_t *write;
-    unsigned int size;
-    unsigned int offset;
-    void *private;
-    struct list_head node;
-    uint32_t ro_mask;
-    uint32_t rw1c_mask;
-    uint32_t rsvdp_mask;
-    uint32_t rsvdz_mask;
-};
-
 #ifdef __XEN__
-extern const vpci_capability_t __start_vpci_array[];
-extern const vpci_capability_t __end_vpci_array[];
-#define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
 
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
 static int assign_virtual_sbdf(struct pci_dev *pdev)
@@ -84,9 +67,9 @@ static int assign_virtual_sbdf(struct pc
 
 #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
 
-static struct vpci_register *vpci_get_register(const struct vpci *vpci,
-                                               unsigned int offset,
-                                               unsigned int size)
+struct vpci_register *vpci_get_register(const struct vpci *vpci,
+                                        unsigned int offset,
+                                        unsigned int size)
 {
     struct vpci_register *r;
 
@@ -104,209 +87,6 @@ static struct vpci_register *vpci_get_re
     return NULL;
 }
 
-static struct vpci_register *vpci_get_previous_cap_register(
-    const struct vpci *vpci, unsigned int offset)
-{
-    unsigned int next;
-    struct vpci_register *r;
-
-    if ( offset < 0x40 )
-    {
-        ASSERT_UNREACHABLE();
-        return NULL;
-    }
-
-    for ( r = vpci_get_register(vpci, PCI_CAPABILITY_LIST, 1); r;
-          r = next >= 0x40 ? vpci_get_register(vpci,
-                                               next + PCI_CAP_LIST_NEXT, 1)
-                           : NULL )
-    {
-        next = (unsigned int)(uintptr_t)r->private;
-        ASSERT(next == (uintptr_t)r->private);
-        if ( next == offset )
-            break;
-    }
-
-    return r;
-}
-
-static int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
-{
-    const unsigned int offset = pci_find_cap_offset(pdev->sbdf, cap);
-    struct vpci_register *prev_r, *next_r;
-    struct vpci *vpci = pdev->vpci;
-
-    if ( !offset )
-    {
-        ASSERT_UNREACHABLE();
-        return 0;
-    }
-
-    spin_lock(&vpci->lock);
-    prev_r = vpci_get_previous_cap_register(vpci, offset);
-    next_r = vpci_get_register(vpci, offset + PCI_CAP_LIST_NEXT, 1);
-    if ( !prev_r || !next_r )
-    {
-        spin_unlock(&vpci->lock);
-        return -ENODEV;
-    }
-
-    prev_r->private = next_r->private;
-    /*
-     * Not calling vpci_remove_registers() here is to avoid redoing
-     * the register search.
-     */
-    list_del(&next_r->node);
-    spin_unlock(&vpci->lock);
-    xfree(next_r);
-
-    if ( !is_hardware_domain(pdev->domain) )
-        return vpci_remove_registers(vpci, offset + PCI_CAP_LIST_ID, 1);
-
-    return 0;
-}
-
-static struct vpci_register *vpci_get_previous_ext_cap_register(
-    const struct vpci *vpci, unsigned int offset)
-{
-    unsigned int pos = PCI_CFG_SPACE_SIZE;
-    struct vpci_register *r;
-
-    if ( offset <= PCI_CFG_SPACE_SIZE )
-    {
-        ASSERT_UNREACHABLE();
-        return NULL;
-    }
-
-    for ( r = vpci_get_register(vpci, pos, 4); r;
-          r = pos > PCI_CFG_SPACE_SIZE ? vpci_get_register(vpci, pos, 4)
-                                       : NULL )
-    {
-        uint32_t header = (uint32_t)(uintptr_t)r->private;
-
-        ASSERT(header == (uintptr_t)r->private);
-
-        pos = PCI_EXT_CAP_NEXT(header);
-        if ( pos == offset )
-            break;
-    }
-
-    return r;
-}
-
-static int vpci_ext_capability_hide(
-    const struct pci_dev *pdev, unsigned int cap)
-{
-    const unsigned int offset = pci_find_ext_capability(pdev, cap);
-    struct vpci_register *r, *prev_r;
-    struct vpci *vpci = pdev->vpci;
-    uint32_t header, pre_header;
-
-    if ( offset < PCI_CFG_SPACE_SIZE )
-    {
-        ASSERT_UNREACHABLE();
-        return 0;
-    }
-
-    spin_lock(&vpci->lock);
-    r = vpci_get_register(vpci, offset, 4);
-    if ( !r )
-    {
-        spin_unlock(&vpci->lock);
-        return -ENODEV;
-    }
-
-    header = (uint32_t)(uintptr_t)r->private;
-    if ( offset == PCI_CFG_SPACE_SIZE )
-    {
-        if ( PCI_EXT_CAP_NEXT(header) <= PCI_CFG_SPACE_SIZE )
-            r->private = (void *)0;
-        else
-            /*
-             * The first extended capability (0x100) can not be removed from
-             * the linked list, so instead mask its capability ID to return 0
-             * hopefully forcing OSes to skip it.
-             */
-            r->private = (void *)(uintptr_t)(header & ~PCI_EXT_CAP_ID(header));
-
-        spin_unlock(&vpci->lock);
-        return 0;
-    }
-
-    prev_r = vpci_get_previous_ext_cap_register(vpci, offset);
-    if ( !prev_r )
-    {
-        spin_unlock(&vpci->lock);
-        return -ENODEV;
-    }
-
-    pre_header = (uint32_t)(uintptr_t)prev_r->private;
-    pre_header &= ~PCI_EXT_CAP_NEXT_MASK;
-    pre_header |= header & PCI_EXT_CAP_NEXT_MASK;
-    prev_r->private = (void *)(uintptr_t)pre_header;
-
-    list_del(&r->node);
-    spin_unlock(&vpci->lock);
-    xfree(r);
-
-    return 0;
-}
-
-static int vpci_init_capabilities(struct pci_dev *pdev)
-{
-    for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
-    {
-        const vpci_capability_t *capability = &__start_vpci_array[i];
-        const unsigned int cap = capability->id;
-        const bool is_ext = capability->is_ext;
-        unsigned int pos = 0;
-        int rc;
-
-        if ( !is_ext )
-            pos = pci_find_cap_offset(pdev->sbdf, cap);
-        else if ( is_hardware_domain(pdev->domain) )
-            pos = pci_find_ext_capability(pdev, cap);
-
-        if ( !pos )
-            continue;
-
-        rc = capability->init(pdev);
-        if ( rc )
-        {
-            const char *type = is_ext ? "extended" : "legacy";
-
-            printk(XENLOG_WARNING
-                   "%pd %pp: init %s cap %u fail rc=%d, mask it\n",
-                   pdev->domain, &pdev->sbdf, type, cap, rc);
-
-            if ( capability->cleanup )
-            {
-                rc = capability->cleanup(pdev, true);
-                if ( rc )
-                {
-                    printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=%d\n",
-                           pdev->domain, &pdev->sbdf, type, cap, rc);
-                    if ( !is_hardware_domain(pdev->domain) )
-                        return rc;
-                }
-            }
-
-            if ( !is_ext )
-                rc = vpci_capability_hide(pdev, cap);
-            else
-                rc = vpci_ext_capability_hide(pdev, cap);
-            if ( rc )
-            {
-                printk(XENLOG_ERR "%pd %pp: hide %s cap %u fail rc=%d\n",
-                       pdev->domain, &pdev->sbdf, type, cap, rc);
-                return rc;
-            }
-        }
-    }
-
-    return 0;
-}
-
 void vpci_deassign_device(struct pci_dev *pdev)
 {
     unsigned int i;
@@ -322,29 +102,7 @@ void vpci_deassign_device(struct pci_dev
                     &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, 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);
-        }
-    }
+    vpci_cleanup_capabilities(pdev);
 
     spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:54:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:54:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226256.1532796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vplOT-0006Kc-AX; Tue, 10 Feb 2026 10:54:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226256.1532796; Tue, 10 Feb 2026 10:54: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 1vplOT-0006KV-75; Tue, 10 Feb 2026 10:54:57 +0000
Received: by outflank-mailman (input) for mailman id 1226256;
 Tue, 10 Feb 2026 10:54: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vplOS-0004jf-J3
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:54:56 +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 ef32cb16-066e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:54:55 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-43622089851so636762f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 02:54:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296bd1c9sm32720398f8f.15.2026.02.10.02.54.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 02:54:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef32cb16-066e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770720895; x=1771325695; 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=FOSPNY7vKiGWPUFz/egRdpkAkGRnRZF4cn2NSZ0vM9g=;
        b=Su7M40oVbHSuUh/NHNx9in/JrTsjvJSkQg7hKFkhf2EEyqaY5OIRPLfkvEe98NSAh2
         e3ziVXO6mZSBVlhd2ZNYZXClEW9zl1kUAgod3CUTagBbbDAyzjocWXWYxT2QtZm1fmgA
         g2VJPdXhaYJlG5hSzy8h10ZNvuUoUyZuU7OwXhTiVm0Hq9XRiwGFtgdboXXzOVFE0ImU
         CkENHpLfSkESBxF315z69M+CEtYNIELOdTm4r2dB+tdPaoahRecvk8wzUkZMvQAo3PpL
         EPQ7qCib1bDHkTmdni8Yt/6rH8vEfNJrIm77ShWrl5yrZAwRC3cSzIfQYkxl2JIVCRLY
         nHfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770720895; x=1771325695;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FOSPNY7vKiGWPUFz/egRdpkAkGRnRZF4cn2NSZ0vM9g=;
        b=GqFJN2MSm0qdssUarFJzgw0Y2rCB01PPdrMeFSXHJevFEXZzHaiEG/dOW+IfquhBO+
         qfbVSe4fgvux9yFrQk3f09EXGpZGgvPNomy3XuLBFzJWiUCdTDMVlECcdNRHVLJ12sj2
         pHJdwKcGs7lAsggys4kTYVrjie7yFPAkfoRA4eCEDeKUh7p4fZmAPELl7uTY8FvB/F3s
         SZ1y4OpqYIfGU07ghpggkQk4NM1Jt1Dy/mtOexWEVi5Bs4/XwcQ5luOhlqtYhSwxwx7H
         MeF7x4Q/zO7NJk9MKpm3/krVy4srDArLshEQeqlpjKBBQ5tJPHN6QF7MXTA0Bo/k7aKX
         54rw==
X-Gm-Message-State: AOJu0YzLmPrXIK7Yvyb1gdw8zIt6LWTH9JMKvsGma6lnrUlk8z73JAN8
	PNl7dX9vbk0U1E07ZaWoHaRF4gI7ntrqwRxWnZkL8M7Ydv0xYZcFUWnWrI5GkEESnMkUHl30pEl
	flZQ=
X-Gm-Gg: AZuq6aLwXPjYGMl7R2J1Qox7TTudZOBKEx0tSgaR5U9xm7N7lFypQ88e8DP4DN/5IOt
	GeQymaVKVrh4QockLsCaxR4CXaIhCBCJXoGvZ7efpSY5RItyGhtDb+kGBHX5fdlY6XSf9m/VTjU
	Z7T8X74NsOo8ubc6UQIGCK2sP/MlZ6r6eWtVS563JntaAZjKJEilPtVo0jmF05sGI1tC4vU8MPi
	6jICzBIBPHicl9g/mhATfsPj6Cwf7y5L9MViXDC1Ja6egQ1kCmoVIa5FiyYr+I8fAFWCofGW3/9
	u2LlFo4/eBG1Ii8Gp/1NadDeSJP4mTFqZpK4i8tPzLekF0o4gdk+FABFRx2coDVI04MmTG7r85s
	I6miV4pnbtwgaWn6RYhvElLOv7KON/DlUZ5GZ71ayxlfNYY57eOZI6s6eF9fApTxgIn/SohqMNV
	5tL5ym+Iws4H69BxpqBf/MB9Rf5HOq8pPVo6/IN5MnslU3HItOr7GRXsxBA1fJnzx2I48B0RpR4
	bYLIQa5NiyiLaM=
X-Received: by 2002:a5d:5f88:0:b0:435:f29d:8c41 with SMTP id ffacd0b85a97d-436293a91aemr23179448f8f.62.1770720894688;
        Tue, 10 Feb 2026 02:54:54 -0800 (PST)
Message-ID: <b5030a1c-bb01-499c-b75d-27651a09490d@suse.com>
Date: Tue, 10 Feb 2026 11:54:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 4/5] vPCI: move capability-list init
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <25c65557-c97c-499c-a698-571e40cde563@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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... both for when the functions are invoked and where they live in source.
Don't invoke them directly in vpci_init_header(), but instead first thing
in vpci_init_capabilities().

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v4: New.

--- a/xen/drivers/vpci/cap.c
+++ b/xen/drivers/vpci/cap.c
@@ -159,15 +159,150 @@ static int vpci_ext_capability_hide(
     return 0;
 }
 
+static int vpci_init_capability_list(struct pci_dev *pdev)
+{
+    int rc;
+    bool mask_cap_list = false;
+    bool is_hwdom = is_hardware_domain(pdev->domain);
+
+    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
+    {
+        /* Only expose capabilities to the guest that vPCI can handle. */
+        unsigned int next, ttl = 48;
+        static const unsigned int supported_caps[] = {
+            PCI_CAP_ID_MSI,
+            PCI_CAP_ID_MSIX,
+        };
+        /*
+         * For dom0, we should expose all capabilities instead of a fixed
+         * capabilities array, so setting n to 0 here is to get the next
+         * capability position directly in pci_find_next_cap_ttl.
+         */
+        const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(supported_caps);
+
+        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
+                                     supported_caps, n, &ttl);
+
+        rc = vpci_add_register(pdev->vpci, vpci_read_val,
+                               is_hwdom ? vpci_hw_write8 : NULL,
+                               PCI_CAPABILITY_LIST, 1,
+                               (void *)(uintptr_t)next);
+        if ( rc )
+            return rc;
+
+        next &= ~3;
+
+        if ( !next && !is_hwdom )
+            /*
+             * If we don't have any supported capabilities to expose to the
+             * guest, mask the PCI_STATUS_CAP_LIST bit in the status
+             * register.
+             */
+            mask_cap_list = true;
+
+        while ( next && ttl )
+        {
+            unsigned int pos = next;
+
+            next = pci_find_next_cap_ttl(pdev->sbdf,
+                                         pos + PCI_CAP_LIST_NEXT,
+                                         supported_caps, n, &ttl);
+
+            if ( !is_hwdom )
+            {
+                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
+                                       pos + PCI_CAP_LIST_ID, 1, NULL);
+                if ( rc )
+                    return rc;
+            }
+
+            rc = vpci_add_register(pdev->vpci, vpci_read_val,
+                                   is_hwdom ? vpci_hw_write8 : NULL,
+                                   pos + PCI_CAP_LIST_NEXT, 1,
+                                   (void *)(uintptr_t)next);
+            if ( rc )
+                return rc;
+
+            next &= ~3;
+        }
+    }
+
+    /* Return early for the hw domain, no masking of PCI_STATUS. */
+    if ( is_hwdom )
+        return 0;
+
+    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
+    return vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
+                                  PCI_STATUS, 2, NULL,
+                                  PCI_STATUS_RO_MASK &
+                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
+                                  PCI_STATUS_RW1C_MASK,
+                                  mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
+                                  PCI_STATUS_RSVDZ_MASK);
+}
+
+static int vpci_init_ext_capability_list(const struct pci_dev *pdev)
+{
+    unsigned int pos = PCI_CFG_SPACE_SIZE;
+
+    if ( !pdev->ext_cfg )
+        return 0;
+
+    if ( !is_hardware_domain(pdev->domain) )
+        /* Extended capabilities read as zero, write ignore for DomU */
+        return vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                 pos, 4, (void *)0);
+
+    do
+    {
+        uint32_t header = pci_conf_read32(pdev->sbdf, pos);
+        int rc;
+
+        if ( header == 0xffffffffU )
+        {
+            printk(XENLOG_WARNING
+                   "%pd %pp: broken extended cap list, offset %#x\n",
+                   pdev->domain, &pdev->sbdf, pos);
+            return 0;
+        }
+
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                               pos, 4, (void *)(uintptr_t)header);
+        if ( rc == -EEXIST )
+        {
+            printk(XENLOG_WARNING
+                   "%pd %pp: overlap in extended cap list, offset %#x\n",
+                   pdev->domain, &pdev->sbdf, pos);
+            return 0;
+        }
+
+        if ( rc )
+            return rc;
+
+        pos = PCI_EXT_CAP_NEXT(header);
+    } while ( pos >= PCI_CFG_SPACE_SIZE );
+
+    return 0;
+}
+
 int vpci_init_capabilities(struct pci_dev *pdev)
 {
+    int rc;
+
+    rc = vpci_init_capability_list(pdev);
+    if ( rc )
+        return rc;
+
+    rc = vpci_init_ext_capability_list(pdev);
+    if ( rc )
+        return rc;
+
     for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
     {
         const vpci_capability_t *capability = &__start_vpci_array[i];
         const unsigned int cap = capability->id;
         const bool is_ext = capability->is_ext;
         unsigned int pos = 0;
-        int rc;
 
         if ( !is_ext )
             pos = pci_find_cap_offset(pdev->sbdf, cap);
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -744,132 +744,6 @@ static int bar_add_rangeset(const struct
     return !bar->mem ? -ENOMEM : 0;
 }
 
-static int vpci_init_capability_list(struct pci_dev *pdev)
-{
-    int rc;
-    bool mask_cap_list = false;
-    bool is_hwdom = is_hardware_domain(pdev->domain);
-
-    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
-    {
-        /* Only expose capabilities to the guest that vPCI can handle. */
-        unsigned int next, ttl = 48;
-        static const unsigned int supported_caps[] = {
-            PCI_CAP_ID_MSI,
-            PCI_CAP_ID_MSIX,
-        };
-        /*
-         * For dom0, we should expose all capabilities instead of a fixed
-         * capabilities array, so setting n to 0 here is to get the next
-         * capability position directly in pci_find_next_cap_ttl.
-         */
-        const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(supported_caps);
-
-        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
-                                     supported_caps, n, &ttl);
-
-        rc = vpci_add_register(pdev->vpci, vpci_read_val,
-                               is_hwdom ? vpci_hw_write8 : NULL,
-                               PCI_CAPABILITY_LIST, 1,
-                               (void *)(uintptr_t)next);
-        if ( rc )
-            return rc;
-
-        next &= ~3;
-
-        if ( !next && !is_hwdom )
-            /*
-             * If we don't have any supported capabilities to expose to the
-             * guest, mask the PCI_STATUS_CAP_LIST bit in the status
-             * register.
-             */
-            mask_cap_list = true;
-
-        while ( next && ttl )
-        {
-            unsigned int pos = next;
-
-            next = pci_find_next_cap_ttl(pdev->sbdf,
-                                         pos + PCI_CAP_LIST_NEXT,
-                                         supported_caps, n, &ttl);
-
-            if ( !is_hwdom )
-            {
-                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
-                                       pos + PCI_CAP_LIST_ID, 1, NULL);
-                if ( rc )
-                    return rc;
-            }
-
-            rc = vpci_add_register(pdev->vpci, vpci_read_val,
-                                   is_hwdom ? vpci_hw_write8 : NULL,
-                                   pos + PCI_CAP_LIST_NEXT, 1,
-                                   (void *)(uintptr_t)next);
-            if ( rc )
-                return rc;
-
-            next &= ~3;
-        }
-    }
-
-    /* Return early for the hw domain, no masking of PCI_STATUS. */
-    if ( is_hwdom )
-        return 0;
-
-    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
-    return vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
-                                  PCI_STATUS, 2, NULL,
-                                  PCI_STATUS_RO_MASK &
-                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
-                                  PCI_STATUS_RW1C_MASK,
-                                  mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
-                                  PCI_STATUS_RSVDZ_MASK);
-}
-
-static int vpci_init_ext_capability_list(const struct pci_dev *pdev)
-{
-    unsigned int pos = PCI_CFG_SPACE_SIZE;
-
-    if ( !pdev->ext_cfg )
-        return 0;
-
-    if ( !is_hardware_domain(pdev->domain) )
-        /* Extended capabilities read as zero, write ignore for DomU */
-        return vpci_add_register(pdev->vpci, vpci_read_val, NULL,
-                                 pos, 4, (void *)0);
-
-    do
-    {
-        uint32_t header = pci_conf_read32(pdev->sbdf, pos);
-        int rc;
-
-        if ( header == 0xffffffffU )
-        {
-            printk(XENLOG_WARNING
-                   "%pd %pp: broken extended cap list, offset %#x\n",
-                   pdev->domain, &pdev->sbdf, pos);
-            return 0;
-        }
-
-        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
-                               pos, 4, (void *)(uintptr_t)header);
-        if ( rc == -EEXIST )
-        {
-            printk(XENLOG_WARNING
-                   "%pd %pp: overlap in extended cap list, offset %#x\n",
-                   pdev->domain, &pdev->sbdf, pos);
-            return 0;
-        }
-
-        if ( rc )
-            return rc;
-
-        pos = PCI_EXT_CAP_NEXT(header);
-    } while ( pos >= PCI_CFG_SPACE_SIZE );
-
-    return 0;
-}
-
 int vpci_init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -918,14 +792,6 @@ int vpci_init_header(struct pci_dev *pde
     if ( rc )
         return rc;
 
-    rc = vpci_init_capability_list(pdev);
-    if ( rc )
-        return rc;
-
-    rc = vpci_init_ext_capability_list(pdev);
-    if ( rc )
-        return rc;
-
     if ( pdev->ignore_bars )
         return 0;
 



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:55:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:55:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226264.1532806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vplP8-0006pp-I8; Tue, 10 Feb 2026 10:55:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226264.1532806; Tue, 10 Feb 2026 10:55: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 1vplP8-0006pi-Ev; Tue, 10 Feb 2026 10:55:38 +0000
Received: by outflank-mailman (input) for mailman id 1226264;
 Tue, 10 Feb 2026 10:55: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vplP7-0006pN-7L
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:55:37 +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 078fcdc6-066f-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 11:55:36 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-4359a302794so2557449f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 02:55:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4362972fa4csm31979410f8f.26.2026.02.10.02.55.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 02:55:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 078fcdc6-066f-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770720936; x=1771325736; 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=GNpIj6jaNl2LxIucX2SnvqUjVuHy9Wt9ulv9NB3hNFo=;
        b=R25tQqfVaBK6/gSGqclZ2F0CFFT0IN4jd91VW/2nmRZ+eBe5JFC9AQlc+nciODVHD7
         D2EjTqud88xEU214WvyE2vWC4s+rH72i85JMsyrxLYqGBlUuE4tWwfm10Jsyfmwc1M24
         ezPmAACPKzlutbucBB0IV9+FcGxn5HzNiIRSyPpbgdCFolfk26L4Yp+Gt/IB5GOIRJ3k
         nSQ9v9ZzjqotzTCE+4voY+xQLIk0TVTOdVoSjpdmCHVovYyEOn+38RDj3R1vckCBf/Dp
         pqQv554SVKs9n4+IOIkyNxgAd8p47paTOS7aV4TOw1ykuYQHJo1UQ8CitcevDuB5nWjR
         NqBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770720936; x=1771325736;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GNpIj6jaNl2LxIucX2SnvqUjVuHy9Wt9ulv9NB3hNFo=;
        b=S3kSUNiY8ineFOUW7YtkbT9hxh23msphA+pwjqWlEMS01HAT/nW6LQeM0zou4HJy50
         bjc8stf0fljR/fCZiAZ48+xQJNyIgBVUQ0ggWaX4QR274iA/C8AQmUciYtQ3m7xxgjmE
         4w9H2WfQy/NePqYTQqQsVugyp0BasmycRomFtFkloKDUiXOPw/CS8NVUyCwJUrOTKpwS
         CKQ+SNgjyIVwj402/kpdLC7ZoxPTRqZwOin2sZtRTG7pKOOMW4J4BDK/59FFDiKcfJsd
         fF/cozb7t9ksAcy4XRqbIC6GGIU4jYrvKlNDmNsQGimr68yXEdPrvukoidD9uAK6DpNV
         boEg==
X-Gm-Message-State: AOJu0YzyfpX6LvVRqnb80A0ezYXJio3QvtwRSow+P4ta8K4c6pGs1zPG
	8ok+FbWU25eqQFZoNkE3/YPfgRBUKoFLYiQAy5s4EYp2pGHOBwVrRnzvpTxcYjC5dqnYGIW4VNE
	lIE0=
X-Gm-Gg: AZuq6aJWytdBwhLLTassQVLu3RnQ/6NRf1eGeTlal4UXH1MiDEoOs8Mt7jvpm6zs2fX
	YqOP3Hg+rXN8gCj+66kA+VP+a3qpdWmVlpXVrdEt/nWc10tKZyOMgoxUT1djWbvZSyULDFkcH3G
	x2sXSbVekV0Xx9GqbKbEl8TEApy34wGMPMqlaIp2eaK05SOpEyP5/ul852JqDc+sszBotz6e5TH
	y3E3BM8XA9eEzd+GWC525ldobF9bmhuRvKSHZ++Udbx+XMacXliOLzN9f6I3bfazeQnGe18ZNgi
	2QpmETpWRnxISe+y7SlUdflZNK7Ih/6cjVwzTblso6o6ZpH4615H0z7u2X5wc3+vmF6QGe7BWUq
	/yfxykZ+2qN5ozUJA/cvBMmME2i1WyZWjAuEsGr3ZdLThMKmIb+Kt2XhcHrcnWPUbLUaDtioZVI
	uuZQju8aQ2F+nRRkHEvomIu7kLv84W3Oa8wRwC8SI15el8M2Z4k2Hgp0+eEf2wFL5NOcawx3pOD
	FV04xsP4MHAJvE=
X-Received: by 2002:a05:6000:4012:b0:435:7154:2a7 with SMTP id ffacd0b85a97d-43629244890mr19756974f8f.6.1770720935719;
        Tue, 10 Feb 2026 02:55:35 -0800 (PST)
Message-ID: <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
Date: Tue, 10 Feb 2026 11:55:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v4 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <25c65557-c97c-499c-a698-571e40cde563@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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

When Dom0 informs us about MMCFG usability, this may change whether
extended capabilities are available (accessible) for devices. Zap what
might be on record, and re-initialize things.

No synchronization is added for the case where devices may already be in
use. That'll need sorting when (a) DomU support was added and (b) DomU-s
may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
vpci_reinit_ext_capabilities()'es return value isn't checked, as it
doesn't feel quite right to fail the hypercall because of this. At the
same time it also doesn't feel quite right to have the function return
"void". Thoughts?
---
v4: Make sure ->cleanup() and ->init() are invoked.
v3: New.

--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -8,6 +8,8 @@
 #include <xen/guest_access.h>
 #include <xen/iocap.h>
 #include <xen/serial.h>
+#include <xen/vpci.h>
+
 #include <asm/current.h>
 #include <asm/io_apic.h>
 #include <asm/msi.h>
@@ -169,7 +171,10 @@ int cf_check physdev_check_pci_extcfg(st
 
     ASSERT(pdev->seg == info->segment);
     if ( pdev->bus >= info->start_bus && pdev->bus <= info->end_bus )
+    {
         pci_check_extcfg(pdev);
+        vpci_reinit_ext_capabilities(pdev);
+    }
 
     return 0;
 }
--- a/xen/drivers/vpci/cap.c
+++ b/xen/drivers/vpci/cap.c
@@ -285,13 +285,16 @@ static int vpci_init_ext_capability_list
     return 0;
 }
 
-int vpci_init_capabilities(struct pci_dev *pdev)
+int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only)
 {
     int rc;
 
-    rc = vpci_init_capability_list(pdev);
-    if ( rc )
-        return rc;
+    if ( !ext_only )
+    {
+        rc = vpci_init_capability_list(pdev);
+        if ( rc )
+            return rc;
+    }
 
     rc = vpci_init_ext_capability_list(pdev);
     if ( rc )
@@ -305,7 +308,7 @@ int vpci_init_capabilities(struct pci_de
         unsigned int pos = 0;
 
         if ( !is_ext )
-            pos = pci_find_cap_offset(pdev->sbdf, cap);
+            pos = !ext_only ? pci_find_cap_offset(pdev->sbdf, cap) : 0;
         else if ( is_hardware_domain(pdev->domain) )
             pos = pci_find_ext_capability(pdev, cap);
 
@@ -349,7 +352,7 @@ int vpci_init_capabilities(struct pci_de
     return 0;
 }
 
-void vpci_cleanup_capabilities(struct pci_dev *pdev)
+void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
 {
     for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
     {
@@ -361,7 +364,7 @@ void vpci_cleanup_capabilities(struct pc
             continue;
 
         if ( !capability->is_ext )
-            pos = pci_find_cap_offset(pdev->sbdf, cap);
+            pos = !ext_only ? pci_find_cap_offset(pdev->sbdf, cap) : 0;
         else if ( is_hardware_domain(pdev->domain) )
             pos = pci_find_ext_capability(pdev, cap);
         if ( pos )
@@ -376,6 +379,20 @@ void vpci_cleanup_capabilities(struct pc
     }
 }
 
+int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
+{
+    if ( !pdev->vpci )
+        return 0;
+
+    vpci_cleanup_capabilities(pdev, true);
+
+    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
+                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
+        ASSERT_UNREACHABLE();
+
+    return vpci_init_capabilities(pdev, true);
+}
+
 /*
  * Local variables:
  * mode: C
--- a/xen/drivers/vpci/private.h
+++ b/xen/drivers/vpci/private.h
@@ -44,8 +44,8 @@ typedef struct {
 #define REGISTER_VPCI_EXTCAP(name, finit, fclean) \
     REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
 
-int vpci_init_capabilities(struct pci_dev *pdev);
-void vpci_cleanup_capabilities(struct pci_dev *pdev);
+int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only);
+void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only);
 
 /* Add/remove a register handler. */
 int __must_check vpci_add_register_mask(struct vpci *vpci,
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -102,7 +102,7 @@ void vpci_deassign_device(struct pci_dev
                     &pdev->domain->vpci_dev_assigned_map);
 #endif
 
-    vpci_cleanup_capabilities(pdev);
+    vpci_cleanup_capabilities(pdev, false);
 
     spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )
@@ -159,7 +159,7 @@ int vpci_assign_device(struct pci_dev *p
     if ( rc )
         goto out;
 
-    rc = vpci_init_capabilities(pdev);
+    rc = vpci_init_capabilities(pdev, false);
 
  out:
     if ( rc )
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -20,6 +20,7 @@
 #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
 
 int __must_check vpci_init_header(struct pci_dev *pdev);
+int vpci_reinit_ext_capabilities(struct pci_dev *pdev);
 
 /* Assign vPCI to device by adding handlers. */
 int __must_check vpci_assign_device(struct pci_dev *pdev);
@@ -197,6 +198,11 @@ bool vpci_ecam_read(pci_sbdf_t sbdf, uns
 #else /* !CONFIG_HAS_VPCI */
 struct vpci_vcpu {};
 
+static inline int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
+{
+    return 0;
+}
+
 static inline int vpci_assign_device(struct pci_dev *pdev)
 {
     return 0;



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 10:58:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 10:58:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226276.1532816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vplRY-0007cz-VT; Tue, 10 Feb 2026 10:58:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226276.1532816; Tue, 10 Feb 2026 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 1vplRY-0007cs-Rk; Tue, 10 Feb 2026 10:58:08 +0000
Received: by outflank-mailman (input) for mailman id 1226276;
 Tue, 10 Feb 2026 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=1KCy=AO=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vplRX-0007bQ-Bn
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 10:58:07 +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 5e0daa1b-066f-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 11:58:01 +0100 (CET)
Received: from AS4P189CA0068.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:659::23)
 by AS2PR08MB8808.eurprd08.prod.outlook.com (2603:10a6:20b:5f4::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.8; Tue, 10 Feb
 2026 10:57:56 +0000
Received: from AMS0EPF000001A2.eurprd05.prod.outlook.com
 (2603:10a6:20b:659:cafe::83) by AS4P189CA0068.outlook.office365.com
 (2603:10a6:20b:659::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 10:57:53 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001A2.mail.protection.outlook.com (10.167.16.235) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Tue, 10 Feb 2026 10:57:53 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA4PR08MB5982.eurprd08.prod.outlook.com (2603:10a6:102:eb::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 10:56:50 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 10:56: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: 5e0daa1b-066f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=HdHFyGXoimFLLl2JYhPektua9XaaZbQBtJzsZIwZPk+hIH5bZ94++uu3SCYZ7V9kqaxPdWGHMwSBfdjlJ8MITFPu/Jaj6nl57UZHWxZ4NL0pZqSsKqpzQvyiF/fRDW4nO/BuChU62Glehy6yesMW9P2Z03cste95iFe4+v07AmMsz8shKz9EMVwOCfrEi1oBMbpNjzjmnpBeBl7GSwH0Ac9PkUHMxpzKHuliCzL0Us1ZtKuD5SCItfsT0N4SycLoYFBWoSQY1I8a9OoG3FH6Q95Wq2VL4RoNVB5fk/L6KomahvYH4wNLqdXIBOSWeI33kjZMsX3n90hUEeyJwxyM2w==
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=3vSRvN6jQa18VAIu2UwbYv79xlVhe1ii3Iw0qDfTxEE=;
 b=gJY3TFBILI36O6d5WmKWjej3WpGEO4Kx70HjC3U1X6+fzQkvJtfc3M6Rsjzhho9A8fquaRNsQ0RmAkBoRTdHXqr286qGoBbaqxTdyvBaZ+IVHWY2Ud2HBfrXFuM0r2MY6ekUh2lXCAkF/pgVeEYJBDx+hHhJxIS73InXQl+Brh0CQtIht4Gx7YkQT4HooAzBNq484RJXzBtfMJbI+LXPqavDF3s9Shce6hVVkLbdWJtvHcRTOJBK5AvC93rooBUxj/yaLKBOzHJO6k2g1pN6uv23mJZAXWocDE/FshUkHbI9q46Q6y/CupQK7D2SFXnlfBmkOJWh6dZlvNJMTiaaFA==
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=3vSRvN6jQa18VAIu2UwbYv79xlVhe1ii3Iw0qDfTxEE=;
 b=qvo2LIQXJ6g69hMQvq1qRjY+eTkXyKJw35GCLrbHl+Lr2y62S45vFVe4++7N6A8xQCkX00Rm4JGJyO1O2VRJOIzxpK8hSXmGAUbSaLW3vLvxhtgsRBb1Ac1zj8swYxW+MCyIBk1IiUC/u8Lw9x/jRhvC1mUGnbae1CVsmMkflTk=
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=Se17rQP2Yq4UpZpOLRg+mWj3T4Wh1m2iIqcnRgaE6R6EOkWaRcQGzOR+pUlAqgL59GcBXhUYMkHeV4b0SlXE29qZrlOQJKoKYZ1W8uNyA2WwQOLjMWmJnUubJWtxHyFVEfNZnkN7eyM11cxKQhGax5eUubtJ/G0isPbe1RIhvJo5bdckL1OeeD1C6VfIUHBiIHqQfruSLdsFRok8EECtGhdGUrugwBFeEwlSFEvDZAPsOTzWJbeUjlgu2MX9tdgJ8E2aKplyKhyv7LxBz+oZlllyLyvwZXfEjOhAh/QwFb+g8QypFadWoryjwXLMujdPm7NMxQ5cJWWOwopL2H6l4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3vSRvN6jQa18VAIu2UwbYv79xlVhe1ii3Iw0qDfTxEE=;
 b=T4IEEOPIU3VRxUtboh/lRhil0P6FV5B2SYvqx/lMTsLq9waVlxhzqxhPKnwLPPwbbjfbeD6PDarUb/mlnzTN2toGb8KZoniiZJdH4OPodfiYqQGr7SXuz1BG/XIj1XBqwclmDYe96JpfcJhupRlwJwT9x4sAy2nSMmbv07Kj1/LEgt4D1/RsNc9ic4TBNTrWwwkpjG+EATdkAZb7lxaYr4GSbtUt8beVEy3o818ZGX7RY4u6zvtMs4h++mcAPnFozezp2b79qZYcL6TK0keiovvpKmyYsdr8g8WRVVrMT//Yt0fmYGFy5dUbAXLAijxFWWVGAn+0aklcaEwY3T+HlA==
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=3vSRvN6jQa18VAIu2UwbYv79xlVhe1ii3Iw0qDfTxEE=;
 b=qvo2LIQXJ6g69hMQvq1qRjY+eTkXyKJw35GCLrbHl+Lr2y62S45vFVe4++7N6A8xQCkX00Rm4JGJyO1O2VRJOIzxpK8hSXmGAUbSaLW3vLvxhtgsRBb1Ac1zj8swYxW+MCyIBk1IiUC/u8Lw9x/jRhvC1mUGnbae1CVsmMkflTk=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, =?iso-8859-1?Q?Roger_Pau_Monn=E9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v5] xen: Add Darwin.mk
Thread-Topic: [PATCH v5] xen: Add Darwin.mk
Thread-Index: AQHcmbF131JHt0VrQEG2yzDmCYz1i7V7wbUAgAACxAA=
Date: Tue, 10 Feb 2026 10:56:48 +0000
Message-ID: <E52B6D6A-3EE2-4739-B3E3-61F8E99545CD@arm.com>
References:
 <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <d1baa448-962c-4c2a-9a79-cf334b860450@suse.com>
In-Reply-To: <d1baa448-962c-4c2a-9a79-cf334b860450@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA4PR08MB5982:EE_|AMS0EPF000001A2:EE_|AS2PR08MB8808:EE_
X-MS-Office365-Filtering-Correlation-Id: 10e568d1-d716-475e-05bf-08de68933dca
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?iso-8859-1?Q?hR9GopA3hBGM4Ip2oD3IZ2uIsNFHB1e6V4BR/4VRrOGeFjBIPkvlJKHdEN?=
 =?iso-8859-1?Q?4KntHtZyKldfiGCoaigtvCvcq90IkNRA+I0mFT7cR6PjE0ORVd53ZqaCCz?=
 =?iso-8859-1?Q?v6QYj5BGAnV1zW8xfK6ox8xx3Bs7FE61EU5YgBACXssCkkAO/k9uQZsTIB?=
 =?iso-8859-1?Q?4acrKmyv2dKS5Lje/tMctSZsBD/sP5UNcFdAeGqfMAJClZEtfbYBFe9LV+?=
 =?iso-8859-1?Q?rb91ZQLIxHPmqDKLmbo5azmVU+6gqD7yUPVZV/oNDBUQYTZdixEzeIvuiJ?=
 =?iso-8859-1?Q?aKcH80PcJ1ZKHI7IsK7u6OkWNMIaUjWDLF7yP4Ddz1Xuo0/jyBVmgfbaj8?=
 =?iso-8859-1?Q?x58RHciDSlaT8DmBFRylSynDbQ9zdneKQRv+eSrDRKObnzFMNgr/yUEb+R?=
 =?iso-8859-1?Q?fdc3fQ9ddKeCFNs8eNw81ghcu62syARhIrdYqkPB3+TZAvbHE+MElIQ+9+?=
 =?iso-8859-1?Q?mABxJF5OfgE5bjC4QanXJ6b60p0naRf2cz/BeJusjYYI9SnyG28eUcXxeR?=
 =?iso-8859-1?Q?ROq+k6WvQPd2LPUcsTwJ8YSeF2dpV96159Oyqqd3LFf99ZFRtr9pM1O/Mx?=
 =?iso-8859-1?Q?GV6GFFXx/NxC9QcQmyb4sZRQ9O8MGmOR5xY9xXQI4qY8u+83qZp1Wjt3Iv?=
 =?iso-8859-1?Q?Iyk30GTgWGmX7epCg3W81YwOUqE4lj9FMHp+Queq7Np3Hig6E4swztvMnu?=
 =?iso-8859-1?Q?1f5j87OWXlpZ1XgT9WMZ2rILjG+IQXlZHVi/FPjzJge1maW2tkz3HyiUFy?=
 =?iso-8859-1?Q?uXCY/Iv/5wGLRHbIgIWIvlgcP4UK1AaLJnVDSAYiiCCz7u/hDVXQkuy0im?=
 =?iso-8859-1?Q?KhrKhxR2vLv+1AhJiQ7+2z3fcWxmfNw32FSUdZQnHivcYh0JJXr9965JBX?=
 =?iso-8859-1?Q?uaEN0drW6axBmk7hLliDOcABE55Uyi+zU0m/BESLuyBQef7IMoIGRFj1yA?=
 =?iso-8859-1?Q?BNsXnv7BJSeFsBFsF6J5Lor8WGaJ34dd35Pvl2P82Z5SzuS9C44S854kdh?=
 =?iso-8859-1?Q?MKUv7ZVxt0U3X2E8JwHAHMarQZ2Ma+nt6JPznMbkQPxTrikEhSSRNKjmL1?=
 =?iso-8859-1?Q?fUkQbI/4bnKWfcZTzGg+Fm4VUL8oe4q6lyuj2up71+e8e1KADkHxYA/HqD?=
 =?iso-8859-1?Q?eVBASmNMZRj3JmYPaJEaLpGH/vohjdRwA0IHQNqKfjb2A6tCmom/m86bww?=
 =?iso-8859-1?Q?SPTZfFIAt/rCYKDcipRMFumZAuj5GhZUUvNgOzZXWyeOxXkcFZ9bS3qk7h?=
 =?iso-8859-1?Q?oYGzohXGkZeroY61kdPOJTwRVN1eT+DMrAAR5iJ6e0I9LNAp01V83y/Y5Q?=
 =?iso-8859-1?Q?SXRpatEB7t3CvUkDVjqAaakdTnDUE0g48wgHvjd4j4TKqY/4eOPSPz1YzF?=
 =?iso-8859-1?Q?ZML68YK6RET3XOQUDPNNVAnMoRmSADioDvV20KvUsc1etbkp03N4O0bm56?=
 =?iso-8859-1?Q?YxGmXbnmmgGqm0+2KePeVO56qqbnOb6iennOae6xNswT4ET00mk+VUhKo4?=
 =?iso-8859-1?Q?ewreqxslhR35uarZQk9stE2RQi7hvhCV3B9hFNS9nwae72St7kbgEBnApE?=
 =?iso-8859-1?Q?Ac6hEPGfEamG9HGjdPIHuzKqqkOmZI6KrwDGSpooCHz8ijnYvLCZMX6/Os?=
 =?iso-8859-1?Q?14wMRzaTu478gi7XB7ECCdPZqw4lbBJEa8SaEes4yex1voj+R0LjiN9Cn4?=
 =?iso-8859-1?Q?gMoz3X/WPfVZUfMPZ9U=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <DA1374C21F6DB64E94364812644CBA16@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5982
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001A2.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a69801a2-2e18-4797-760d-08de689316f8
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|376014|36860700013|14060799003|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?iso-8859-1?Q?PbcynOZesTePkZ1mhFPVeqjP57bBxKT2YzN7JIzbUSyUrpBdVZIKZBIO3j?=
 =?iso-8859-1?Q?kKJfKYn7VGIkp4H9/QFpwESs3y389Q7aoSHW5nfgkB6L7RUQ9gtHCGlfav?=
 =?iso-8859-1?Q?9d4TiJR6eUw1ZPy2kP/SoLV90mP3Fa4IYcJzRK226DK2tpVkBqw4WFdO75?=
 =?iso-8859-1?Q?qfcFe6Zz9j9vjw3aTcGZe+vere1g07PxLYt0jaSolY4Qwpd4jrPZS8FYme?=
 =?iso-8859-1?Q?nO6JyzudtkuPkO+x1Z9ElHurR0yqH0nj3S2KlCzcHvvNAdrxNwmzZMD7hm?=
 =?iso-8859-1?Q?JGXWo1BtaTr91MwGLvuK2EU5Eknwo812r/B432k3ZaYk0RKhqcoc8fdF7w?=
 =?iso-8859-1?Q?sbnYdVT2txRSNSeU8khNgeli8+oaVVFSiV8P+fdCwoVpLTUzFM54X5Tq8b?=
 =?iso-8859-1?Q?uEy0AjVwKLCwUd/9izFqCrgPyaW0e8PMKdXcEtH57VrlT6nBmFAfpp74Xq?=
 =?iso-8859-1?Q?fGt/pNsrRnbhH6HkN8cZvSK7zHpduQcyUB/92TbYAMZ769D6gXUFqtWnix?=
 =?iso-8859-1?Q?UJ2P9MukIQirhJB/4/iuOybGWYYx8+hqWofjkKj50H90ECNe0qZ8pqK+ns?=
 =?iso-8859-1?Q?LWrDiw2Zk/562z1+0LyJUxjfbwdB9Pk0wwd25iHOOxaDycxzli6/PquXiR?=
 =?iso-8859-1?Q?+TXs74Wi6X3rCzkB1IWbmk50+i/BKa+xgZa/J5k08OL+A4Z8C+cxFSFGoH?=
 =?iso-8859-1?Q?y2sPyg7vatrPr2H2+esN0HlLt1YKPRluWd6GTBKizHc7wb9JR9zB6FzACS?=
 =?iso-8859-1?Q?QN4BebWveKpNAMViL0vpaYjY/xs2Q9O6LHiGTh6Q2R6EcfQXTD5AE6R92U?=
 =?iso-8859-1?Q?rHeA+rKIWFLNhb5dO2kXTIpCJcHFIvHAHWAwc1eLICgDUEgQuC8IPDprTA?=
 =?iso-8859-1?Q?Rn4YJUCIx6LAHxVQgUAMYKIrjST4G/31abqFs49IWjb9E3wBlc8xC5kTx7?=
 =?iso-8859-1?Q?5fIdACw8ELFffT5vvWkRsXq1cUCpX6u+2Jov9RvfOwZve0Eo1KaV3bvWEh?=
 =?iso-8859-1?Q?etDeWo8PcqFzfI4sVri8itrFb25w8xZxHA2/p9zv7F6B8pGqpZUTXOxwkY?=
 =?iso-8859-1?Q?1DeVvW+7VM525Aq2ew1vVY1KPkUv4AKZWo4BvBqaDGf68eIh2cTtu8NNAu?=
 =?iso-8859-1?Q?+HW8GRy+Dc1tUn8Y460SPQUX0I/4w0w10MDtHdHhIABw6/pC5bmReGvRfV?=
 =?iso-8859-1?Q?LvGnseEsToAm3525/r71OYOUm1FcjakaK7OP1KUD+Gt/xGox/MSySs9mO7?=
 =?iso-8859-1?Q?CalPLzjtJWEIc5X0OWNZfUDZEQMjVVjWOnIF2iy15WYlw6xf0gFipGfv3d?=
 =?iso-8859-1?Q?2DPsOSE3JdQYa/o5+ln3NO7DrAwbKHYszcBwoNBVOYQhAOAk5uvUxUbq9Q?=
 =?iso-8859-1?Q?n9zybMuJtqHbD5vmocdAgJw834rmQ3nXRLRBHQpoR+TxoK1sGs1HEvwgOO?=
 =?iso-8859-1?Q?OH7SU285QUtNBRR7DJMrXELivkXaYZbsQtS+2jyIhh5JzmL/QSrPY6PaZo?=
 =?iso-8859-1?Q?zuCSqJpa5ivgdsIphA8qDCkwzHapIIcE9w3jpKO4yVqqcuHTBGLWMdzNRg?=
 =?iso-8859-1?Q?XVLPGV/INF1BmcZnnIsqJ4V+yWAHh5Idt3D86AqBrSD4Hi64BvzVnppnlG?=
 =?iso-8859-1?Q?eKvRNV7p9xzPeaUN7S0Pakrotd2/Zvk3xOpNT2zXPP29yvma1+TjVVUjJs?=
 =?iso-8859-1?Q?mlynBx+A0eKQf/cdM75Hdwf04SF08Hk9TnbKvVndLX1pkrotu+Jfl8JlRF?=
 =?iso-8859-1?Q?2Jdw=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)(35042699022)(376014)(36860700013)(14060799003)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	apC9g/RNfuVlHGVX4UNZpuIkoW/KzEdxavfLgMjMW4iBLOfU1fVNECVowoR+rjER2LmfzRC4w0trGnD2A2f5ycFjAzxQcVBa+iGnoJmL52a0NtVDASM8MoYzYlqn2ai1i3SICgSXjwDs/v2hjtGA9rmAJ91WuqKu/Pg2XAAVPa6rHvXcEfVOhigpH3GMbVisMANIrsWbCt6VEKnpxEM9k7fFXKPvbqeaXP+748z6wdPg4mDFxnwcU58uc6CwpDU4xXNXs8nRlMybhJVXKbNG90JqbfOhikK4ygShqbTnN3AXXQ8zYXOTDHr8f5bJJX61flQKR4XJ0WqSGgwIz8pdhziWCOcfVMyTWnyPLZTjqmSsMuAafMz5BgpIroCGuW17e9LFB1nzrPhVDEgVcHHE6XNXydjSKVlTkt15T4qX4yau4GKMNyBeKmHe7ExDvzop
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 10:57:53.8503
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 10e568d1-d716-475e-05bf-08de68933dca
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:
	AMS0EPF000001A2.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8808

Hi Jan,

> On 10 Feb 2026, at 11:46, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 09.02.2026 11:46, Bertrand Marquis wrote:
>> --- /dev/null
>> +++ b/config/Darwin.mk
>> @@ -0,0 +1,6 @@
>> +# Use GNU tool definitions as the tools we are using are either GNU com=
patible
>> +# or we only use features which are supported on Mac OS.
>> +include $(XEN_ROOT)/config/StdGNU.mk
>> +
>> +# Cross compile on Mac OS, only hypervisor build has been tested, no to=
ols
>> +XEN_COMPILE_ARCH =3D unknow
>=20
> While editing in the ABI aspect, it occurred to me to check what Apple ha=
s
> to say regarding their ABI. For both aarch64 and x86-64 they say they use
> the standard ABI with some modifications. We may want to evaluate whether
> those modifications are actually compatible with what we need.
>=20
> Talking of x86-64: Has building on an x86 Mac been tested as well?

No i did not tested that (and i have no x86 mac i can use to do so).

> Especially if that doesn't work, it may want mentioning.

We might have to say that it was only tested on arm mac.

I would expect that it works on x86 mac but i cannot sign on that.

Cheers
Bertrand

>=20
> Jan



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 11:15:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 11:15:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226292.1532826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpliP-0002Bm-Dz; Tue, 10 Feb 2026 11:15:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226292.1532826; Tue, 10 Feb 2026 11:15: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 1vpliP-0002Bf-Ab; Tue, 10 Feb 2026 11:15:33 +0000
Received: by outflank-mailman (input) for mailman id 1226292;
 Tue, 10 Feb 2026 11:15: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=tYRw=AO=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpliN-0002BZ-71
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 11:15:31 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cbe6fde9-0671-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 12:15:24 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB5128.namprd03.prod.outlook.com (2603:10b6:a03:1f2::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 11:15:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 11:15: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: cbe6fde9-0671-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LjHTI9FLMDcvN46oEdSlc3VIxGMwpwjbqq8hNT1XpYuRHfk32FG+EbMjtNhbcn2yaGXP79gY8aF4Y4ymVFlaRxrZHCrkaBhemr61FPtj2wCQvTKYXcMD6acpMP0EC+APLP3inmgvcBJydWWlkaF++0EagprPB30cUy7jb8Po3EwrST9NpUklfzi8NcxBPTLvyzMyn4eq2aR5C/cT0XLhLbcHcKaMepkc/RJy0XFl5umnm18m5hSEDEdM/tKhN28PtvO0TkHjRGt/nMYiJD4kkut/EqqZt+X84CcJEa0y0CUDrPZ1uL1iCp1q3dv14uVynJCCwPnH1/OZqX5weKPNJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RFW+V4tlPkO41690Rx6DZso/o+PEWzlkq6pyciYOmcs=;
 b=AtyXtOO05x36PYoL5W8iuOafObtHrrY1OZK7w39/HErfU3bEkDgwanyv2hPGBq9U4x+vj2ZFCDVy6khAxMGeSgVNZVb/FGCDnLL9OjIOc8Oy487pNVJQfg4wtBC3RwgfMRR8iXHYeD0NYNNZigViW+ftmD/Fl6ggBhylkV5pEI9T0gVaAXgDyU9PkgJL+XAZoLHC3MvN6A45tKes0bzwz3wuFegLj6VV0j2n1jb2YW8syw8FeuOpLDeMWT77BS+db8+0/ZrKBX7hZ91MznHT3WHjwKgy1mB5IVBDe+87OoIeP3SwZulpf2xSVFK9YXlcGAIpYYbUPxV7AYmWnGFgjQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RFW+V4tlPkO41690Rx6DZso/o+PEWzlkq6pyciYOmcs=;
 b=MsovdwjERpOMM/c4qYcuPvDlCYSkb86piq7edr9hN+VM0LIar93noOgZfelcnTFcLZDUfqjs2VJXaWm+nK2mCQwQ+GpEiQcA2u7JHHQSLLgd+4Lf6j+FhrbIb4yWSg19n4nazeevZbuFq0jTXoANHR864nor+6yYSaGT/dKPpQw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6786174e-e00e-46fd-8b82-7eb823ad96a8@citrix.com>
Date: Tue, 10 Feb 2026 11:15:18 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH v3 07/22] x86/traps: Alter switch_stack_and_jump() for
 FRED mode
To: Jan Beulich <jbeulich@suse.com>
References: <20251003225334.2123667-1-andrew.cooper3@citrix.com>
 <20251003225334.2123667-8-andrew.cooper3@citrix.com>
 <e314d193-79f2-4d77-a2ed-1590375b4b96@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <e314d193-79f2-4d77-a2ed-1590375b4b96@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0024.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ae::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY5PR03MB5128:EE_
X-MS-Office365-Filtering-Correlation-Id: 75ca0e45-a68a-4a7c-fc29-08de6895ae2b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|366016|1800799024|376014|7053199007|7142099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?amtTaDhjS1l5ejdTOE1IQjJLdjMzejB0ZDhqaDJjVlZPcEZmYzlweHNhVWtW?=
 =?utf-8?B?Y2JnUnFNMGd6M1l1UkdHMWlHSnM5bFVQemZwU0ZnalpxZjMxanNxMER0ZjJ6?=
 =?utf-8?B?N0ZpQWNOYXoxc3ZKdlhLK3h4cmFCdnJZZFh5anRMU09iOXRFWXVsREJMMDRB?=
 =?utf-8?B?Snk3VmR4MlJRNVBaYkJyTm1SbmNJRFBmR1MyK05FSDdGUFI2V0VmbE15T3FC?=
 =?utf-8?B?OUN5aUt1aURIeGIzZTlmMDBneXozZUo3dE41TkdZbGdCcGpNZlkzNTQwV0JZ?=
 =?utf-8?B?KysreFgxMFhNZFMxaDhhRk9JTk1QejZxSnhyakRQc2llQ2hrVy9EQ09VdnNj?=
 =?utf-8?B?aW85enVwdWZpL0RQdzFjRUx2elE1TXBkT3JINkNFc3pONGhRbzdUUGw5aGs0?=
 =?utf-8?B?Y2RGTEN5QVNRbW1UNXhSUFRmems0aWtEa0gxdVhteEtsT3pnb3FGdkQyLzdz?=
 =?utf-8?B?TVNrZk95NHlQWHFFM0xNZE1VOTlXbkJBRW93eDJWZVpPUFB1eG5vUGhRNEdn?=
 =?utf-8?B?R3duSU1xWm1JN3VHQlpqTU1mbHF4ckVaclJxTzFiVzFkanY0UzQ0WjNaODI5?=
 =?utf-8?B?dnlJbGJLMjhESXRlWTVlS0ttOHVOUmVIQlV3NEYvY3ZYS0NvdkxibmwzUVlm?=
 =?utf-8?B?YnZhdHM0S3hlQzVuTExVR3p3Q0xQUGNOWDdMQUxXUWQycUVpbEhCUkdSR0NZ?=
 =?utf-8?B?dzkwZDIzMDMvSUVhVEJOUEx1TS80V0Z3S1pSNmxpRGtydHhqMW1nR21hTTEz?=
 =?utf-8?B?clVXMWYxTVNwKzd1MnNwa1oyWWVZVTBmODNyR0dpbVpkZ0NBNExYL3l2V0x1?=
 =?utf-8?B?dVpiVXFOTFpaUTBydE94U2dlWEpBcS9zNWl2UXF6MzZwV01GalJudmtFd3A5?=
 =?utf-8?B?c0UzdWxYMmEvc0NpUklocDFUSktVVFloRThra2RtU0NrckppVDhqRys0TExG?=
 =?utf-8?B?b0lJV1Bhd1p5RXY0ckZ2aDJuNUlmblpqRHFCcWNNSjY2dXJtdTlQSFhBUUZy?=
 =?utf-8?B?QUU3d2RMOG5lUHlDYVl3Tk9rN3kzWHlyTEVoMVZobkJibEZSZnpJdDU3NU0x?=
 =?utf-8?B?Ty9TQ2oxVjJqaWZwbVYyL0I4VHlBNE1zRGJIUWpxQVAydHlGRDQwaWRlRnRH?=
 =?utf-8?B?QmEyaXkzQW04UnIycEhPYWdzbDFDRC9LeVdSKzJGa2FaajdVbUpqRE5Jbk43?=
 =?utf-8?B?WUJqU3ZOb3greTdFQkVTOXNHckpjeVJOTWdDTVNrbGozTmhReFNJOUZxbzlh?=
 =?utf-8?B?WkxUV2M2VzBRTnZ6L2FBaDBvZDRGc043ZW9WWjVGVlhWUGVrRWFXVjJYRmNy?=
 =?utf-8?B?T1pnYmFtcEd2aHdvR0Q0WEVDTVpMSFlDU0VmZDJSMFdsckNFQndoWC96WGdD?=
 =?utf-8?B?RjJ6eDhDNEtLQmw3OHdwRUxzbStRdGtJc3Z5YUhyR3BidmZ4SWVrYTBSeEVh?=
 =?utf-8?B?dDdBSlNPVFZXNGtvRVBxbkdHdk9mUzlObjkvdFdDZDY4a1IvQWd1b0RKbk90?=
 =?utf-8?B?RzFEMmZ1MElLZ3hSOENrN0w5MEZwditiUVhlajRPY1NXWFlwR1JMblNSZFVX?=
 =?utf-8?B?SkNwek5KYmorOENmN3hQMWFsdFk0WTlLbVBDR3FQRWVjbU5aeUVZWllJSXBY?=
 =?utf-8?B?NFp2bVpBU3NvVHcrSU1VYk4remNFbDJKUzVKOUZVdm1QQW5OLzB6VHdYTFRN?=
 =?utf-8?B?a3RKVU9aSzFVRFlHdGJlVjR0NWxCMVlOYVZKd3dyYmptRGw2Mjd3cjExNkZH?=
 =?utf-8?B?YnJWcUJLZ2MrVUZIMGdDT0JJV05VWGYzMTFueHB3UksyT2s3Ym1FSlVUSHRV?=
 =?utf-8?B?cmxkL3puMTJYaWZ1S0YzdHY4bXFGV3JNNlU5OHRzc1l6MHVOUVlVREYvN2Vt?=
 =?utf-8?B?ZTNRRGplR0pFWXRaRVdDSFlGVjByMFNMelVoQllWV2FaNEFyeU5wZmVuWFls?=
 =?utf-8?B?T3g0YW5NKzJqOWhsTlR1dHB5cndrUUhBeW1pMi9jUlA0Z1BGVVByalVBZi9K?=
 =?utf-8?B?a2o0QU9VRFR1MlBXOFlHQSthaUlsMWV5SDlxTGVzQ2lCRnlrQjlOTzYzY0NC?=
 =?utf-8?B?Tkt1b1JDRzl2SEVueThCWnF6VEpaTm5WSWswOW1vZ281dk90WUVNRVhZMUNL?=
 =?utf-8?Q?dSJc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007)(7142099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?am5TTUJISHJocW05Z2d5SXg4SXhiNEZqcndFOUUwbUhsMnJGRG5pNXliYSts?=
 =?utf-8?B?a1RYS0pXdzVQVmRFbzNUUCtZSGsreFRQWlplaUhHaEVMUnJLT0xZVVdScDh2?=
 =?utf-8?B?cXJ5a0dRVHNoNlRyOG96SUhwY1hkcm4vdERNMmowb0ZSdVhxWnJ1OVc4RlBz?=
 =?utf-8?B?eGtFYkUrSldsVUc4elFnclpVKyswaytMRlJXZW9YWnFvWlBFRmdVRE5icXNV?=
 =?utf-8?B?dGN5eGRTckFPL1NpZkg3ZEw5c0JQeS9MZzdoOWR0cHZxUkpibzZCcTJmczdZ?=
 =?utf-8?B?RlBqTDMwdnFDTDFibEdmQmNlcldqblhTSWhsSmFmY29SbkZGMjFRdlZ2RVp5?=
 =?utf-8?B?S1lDZHdFOEZwVEcwZnVtbkszQ2xrTm91YkloL0QzbzA2YVNyRWRqMWpOeUZr?=
 =?utf-8?B?WXBzWTNsY0g0dmFEaERSaHNPNXpNakE1Slp3S2FTN3hmaEloRlJ0dkMrK1dn?=
 =?utf-8?B?TTlCZVk1TWR5cnBORG12THE3dDd2ckduK3Jra0YzQ2kzWFcxY0luc3dPcThn?=
 =?utf-8?B?UUJ6VkhMSjRaa0RiMzFyMUhzZms2WDF1amNqVEpIcGQwUGFpaDNYZ2lMWHVZ?=
 =?utf-8?B?dkRuOGlPMVVQMzJoUkdaZ3ZGRTJlTkdqUEJ2VisvdHlEdmFObEtQdmxZbTg0?=
 =?utf-8?B?N25CRXVKQnBhdjZPZmZlSWQvV1dSaUgyQ3dLajB6ME01ai9DVkU2LzVnL1JE?=
 =?utf-8?B?TVY5eUZJYm1Iclk0NnNHUzFWbitwMEZTck02WDlPeWpiV2JTNloyMSs0eVd2?=
 =?utf-8?B?K3pPQjM4UndteGZkUWlwUEN3OUVPYTdQeUlwRUVNMWJtK21WMVBIMVRVZ1ow?=
 =?utf-8?B?Nk9WRmcrYzZ2QXdycENiRHh0WE51bFVsdi93bFY4cDRzdlFNeld5SXJkRFlX?=
 =?utf-8?B?VzJVN0l4ZjFMSE5jeU1xaU91S3AzMkR4a2V3Snc0VGJDU0M1clYvSXVEQnZQ?=
 =?utf-8?B?UTBHaEZCSmZyM0x1Yk9zbURvdy8ra1NVUlVjNTFRZ3RYL3lDc2pwSDZMN0JJ?=
 =?utf-8?B?L2ROSmsrcVdHcmorWjhsczI3b2lHS3ZsdzBTWCtFNW52bUE0N3hUUnhCbXp5?=
 =?utf-8?B?cFJjMStVV2lwMG9uR0U3Zjh6SkN5QzZGTkI1K05RWlZzTENseTZZaCs2bE41?=
 =?utf-8?B?eU44ZEw2QkJkQXkrbVZRVTZYSHZGRDcyMVEvNGw1N3BXMzk3QTRWd2xNWTFK?=
 =?utf-8?B?OWdJM2FpZ1paZU5vTi96bDNQclI3ZnZJcXBFd2x5R2pDYjV0aWRjN0JpQXN6?=
 =?utf-8?B?VUt5OHROU3kvVmNST1VNczU5NWliUE52VjVpS3c1aURnemh1NUdCMjZyeVF6?=
 =?utf-8?B?MTBFc1BGMTVLTjJVUlk2TTNnOWQ4V0JWcTRvalJDNlBkZTFiVlJyZUt4eFda?=
 =?utf-8?B?MDBMNEQydHIvMEdoZmE1YUhkQ3QrMVo4aDk0ZVFDejhLSGppbFVZSmNzZlhS?=
 =?utf-8?B?V24xSFd2b2p6UG45TlF2cmZDRjZUdDY5UGNSSnlLUEw4RmR5dENxazFSNFA4?=
 =?utf-8?B?K2N1TFd0Sk4xQURtQTVYZ0loMWlSUEpPVkZKMUNWSkx2K2FjYWFiV0RFaXU3?=
 =?utf-8?B?aU9KODllZElOOW1GV0o0K3dBUlNmNllrL0ZYM2JrSS9LaXlqbFpCdFp3MXBQ?=
 =?utf-8?B?eUdJYzV5V0xHVkViLzgyMmRxZm4vOGRTZG0ycWJvVG9UTDJSZmRNSFlFd2g5?=
 =?utf-8?B?WFlXZzFSdjZ4b28rcVhhQlQ5QVE5R0JIMnE3VFJXYzRKSnVjV2diTExqNjBX?=
 =?utf-8?B?NlEwRXE4UDYzMjZVam5kU280ME5VWVcwckxmSkdqZGxuYnducXhoVit4RWhG?=
 =?utf-8?B?Vk1lbzFYeDd0UEUvVDcvNS9BS1phNkJtbVZuRXRtVHphc0VwbWdrdEgvREQ4?=
 =?utf-8?B?Y2h0dmdkZGRoOGw0cTl5bmVURXpmc0V1eENLQmxscUZ6bHFIMUNNZHRmRms3?=
 =?utf-8?B?OURQc0ttUWZqeTQvckJJMlYvWVdpNlBMSWlDUHo4QU9DMWs0c1p0ZllpdHZJ?=
 =?utf-8?B?SGxWc3daZktkbFZyUGlWb0VaZy9sdkV5NE1FZzE1a0tiUTg0SVBpL0V6OTFw?=
 =?utf-8?B?Z0owSEFnTEkzeEtFTm9MRHNHUXNrMWFWb3B1Z3NGTnBvZU9QUldzcFFDUDVk?=
 =?utf-8?B?a3pxc1FQOVNjSDdYMnVzT2VDdTFtem9sVmR2QTNKblprck9OTU4zTWlsRzZn?=
 =?utf-8?B?VDVuR0NURDR3TzI5cERSWWt5cGlaZkQ5NVZTTHlWVngwV0JEZm5IZkYvTjky?=
 =?utf-8?B?NUt4a2dnQnhySmxNVTJkSHd1K0RYWkVkc3QrV2xnL2VCU0NyZXRNYyttbUxM?=
 =?utf-8?B?ellreVc4TU9Xdi9YdVNJNTdjd2VOcWt1RitEaFJpakpxNHMxWVhMUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 75ca0e45-a68a-4a7c-fc29-08de6895ae2b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 11:15:21.6364
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OMjwIlDUuay7zdu8ZIfvr04D0U5jkI0pcPobWLCm2PZ/M0RUE3fPJrBz+E7FjCYnywK+nEc8SYDIni0deRBgcPmPwyi9aMBQLwV9B2v8AW8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5128

On 07/10/2025 4:58 pm, Jan Beulich wrote:
> On 04.10.2025 00:53, 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.
>>
>> Fix a typo in the parameter name, which should be shstk_base.
>>
>> 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>
>>
>> Leave as $%c.  Otherwise it doesn't assemble correctly presented with $$24568
>> to parse as an instruction immediate.
> I don't follow. Where would the 2nd $ come from if you write ...
>
>> --- 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[shstk_base], %[val];",                 \
>> +                "mov $%c[shstk_base] + 8, %[val];",             \
>> +                X86_FEATURE_XEN_FRED)                           \
>     ALTERNATIVE("mov %[shstk_base], %[val];",                   \
>                 "mov %[shstk_base] + 8, %[val];",               \
>                 X86_FEATURE_XEN_FRED)                           \

I find this feedback completely uncharacteristic.  You always goes out
of your way to hide % inside macros to prohibit non-register operands.

This is exactly the same, except to force an immediate operand, so the
length of the two instructions is the same.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 11:41:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 11:41:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226305.1532835 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpm7k-0006Z5-E5; Tue, 10 Feb 2026 11:41:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226305.1532835; Tue, 10 Feb 2026 11:41: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 1vpm7k-0006Yy-BM; Tue, 10 Feb 2026 11:41:44 +0000
Received: by outflank-mailman (input) for mailman id 1226305;
 Tue, 10 Feb 2026 11:41: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpm7j-0006Yr-DB
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 11:41:43 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 77a46ac3-0675-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 12:41:42 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH8PR03MB8227.namprd03.prod.outlook.com (2603:10b6:610:2be::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.8; Tue, 10 Feb
 2026 11:41:39 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 11:41: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: 77a46ac3-0675-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JCfY/ZlAJu0F+iDTWf/iF4lFdqCu6kECdSeNL/0/cZr4oYY7DOVMHc70xjjutCFUyQDgdlZgEK8BiiuG4kng7zNHjTdHsQEVZPBX39OWG1L8xAXuz7qpyPj2+fF5qau2w8AKuTDsToAWZAUcoR6Z8o9pT5euusOWc0MTjJSN0rlERady/djQyo2acdsP+DTLHUXaqs4vQqqWRvqNBqSjjMbLJiYkU4nQ+MjrZ1THKcxdGqVocS1xv/TjxTmSJ04GpK0Npmjoc0D+z7VB2RAlRLaFOa2T3i+MdJfmqVjuRnoYqwVKwUKlttWJ5B/NtrhvflAS3GSoATDiVrNu4Y4Xxw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tyyNimg/FtAfI4mzmHk4UbzX5jVzi6UKZgL2Iphirqs=;
 b=N1Bo7RnNb95jUIee35mY/9do8ld/5dDGAtGs3bLuYIxubuhoHzmqBKH0ku1g/nxXk1mSC7Y6WovflwR4w+sRarE3baMxl7OZdk+6VE4bJSPHxvl4PuX2neFAQ/5rWEyztnta1bpxwoGV+lK5kzSX6igVCV2OiK6RFgD07UZXYUu98kAnyP2X9Mte1jPXJZOwg5MGBPfezrB1Z8HbP8xoh2vQ4+vAEEb90ZxHdQUJqPMFyk7+Gnv3vU33AAlGHZVaDQ8Lc27Fe+eG0KpDwJXTM17oY9aqDpsUYZlJIu+U6eMwnBsukWQrEb7shtKjeBQaUPFvPk8ZdPE3XD+MTDAxvQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tyyNimg/FtAfI4mzmHk4UbzX5jVzi6UKZgL2Iphirqs=;
 b=OQghjBagF4t/ULUnrJAr/2Xmn2N57zC5kcPNK3o6qO8k/9/Jo1/AiGSW74g/RQoTDTpmwY1vCqmP+rSfXAo4IMIkYKhKYZcI95f+zStE/QPcnw+CXBkLda7NNDjATdenYUHinA5MmqQB6ztZSCZj6yIiksclX7KLpFKKTDn6ieE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 12:41:35 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Bertrand Marquis <bertrand.marquis@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5] xen: Add Darwin.mk
Message-ID: <aYsZb529xJvYSSRo@Mac.lan>
References: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <d1baa448-962c-4c2a-9a79-cf334b860450@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
In-Reply-To: <d1baa448-962c-4c2a-9a79-cf334b860450@suse.com>
X-ClientProxiedBy: MA2P292CA0015.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH8PR03MB8227:EE_
X-MS-Office365-Filtering-Correlation-Id: 8a4fe45a-7a2a-45cc-dd0d-08de68995a89
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QUZLeDlNUWMyMHhmRkVuL1FYN3VTT3JGV2hvQXkwWU9wZU91U01SQ2F4SVRn?=
 =?utf-8?B?cFZWcnZheHZCMFVJS21YbjRwa0o1cU9QdDZ3elUxZzFJc2VvYzRBaUNjdnZX?=
 =?utf-8?B?RlFwSDhPNzUrVTNxSDJkY3VuemRGNEcxRWhEMXEzWW1hcmRvbURUbmIvbmtj?=
 =?utf-8?B?U2NadjFuT0lIS3Jzb2N4bTNRdE1xTUY2T2lkMnZvVGVZVTB5TWJneE1HSnAv?=
 =?utf-8?B?YlJMbWwvODZvaTVtL0p3c0VoODZ2WEduQW9aR3pSWTl1eXk3RkZ1cXc4aGpw?=
 =?utf-8?B?Z3V5VllXb3kyWHdHQ2tNZFVyM211TU1lb2pPSUNiWmdob0x2ejBvbmhtcGxU?=
 =?utf-8?B?dzB4S0xvTFBiZkhmRk5va3FNczFhRmJRbCtpMkJaVEgrWTNWQlZnTG5MWHV1?=
 =?utf-8?B?QXBzY3ZWaDQ1ZnNsUUdDd3hDZUtHUm5EUEZFdDZwbXR4RDhyL0RSRGV2cVVM?=
 =?utf-8?B?NS80ZjJwR3l0SERLSlV5citBRGF3YmpUeHhqSE9YMzZSWmR6WktxS2ZEQ1gr?=
 =?utf-8?B?ckordFFtejdMRXpwWFV1NElaT3owNWx6SVZvc256ZWxtUHl5ZjE0NmpnZTVa?=
 =?utf-8?B?cHBSNFRzUnJKZmR1MjdEZzRhMjBCRnhPcFVzTUIvZTZKOGdHQkFMWCtDY0Rl?=
 =?utf-8?B?NmJ1dkN2UTQxdlNIbDFVODVrdjl5UFFGUW5ndlNYaUxCaVJxUjh0V0FDaml0?=
 =?utf-8?B?YXFBS2dtOUxxeEJhNDBiSnk0emhISzVkMHR3bHV3aTJlRXN3WWRNTC9SYTlV?=
 =?utf-8?B?QjcxemhGaHBlOG90QlpZNm4yVEZFejM4N1EwY1Y0ZThqMGNMNTl6VUdnN0tV?=
 =?utf-8?B?UmJTa1c0aGZhOFFvTEhIc2h5YklIL0p2aFpTZkNvQWZtQTdyQXhNNmxQSTh6?=
 =?utf-8?B?Y01LUWJyb1dVYU1rVTZ2dWVRck05alpTZzdpdGYvbGt2QkxLaFVJT3B1dmx4?=
 =?utf-8?B?OUEzaDNWM3BWdGJwOWQ2NGxPMWhQMm1CVmg4SWIxWHhpR0hIOGs1UzQyaUxZ?=
 =?utf-8?B?TWNhWkhxdGY4UkJOU2RpMWZ2d2crbHhmOXgra2pzTlI5bGdZbU9sd281cmVF?=
 =?utf-8?B?WGZRcytVdnRrbFpJcGRHTFo2cTV2MEdRNnV5RGNGb3RGVS9UQmNXT3BFK2s2?=
 =?utf-8?B?SWRmb2FmRDdncWNqYnlqUEhrZDBBOUllWFo4SmNaVWxNUFJVYnd1ZS82Z2N1?=
 =?utf-8?B?QXZGei9aZHMxMVozU2VIaktqNGZvRzhIYTQrWVhaWGpsZjJMV1h4VnV4VllW?=
 =?utf-8?B?ZUZaNmlxK3VoeW5abG5abDh4RkJGS0dYNk03dm9ZVlZMc0lFMExpSjN1V2Mx?=
 =?utf-8?B?Rk9RZ0RkbndwSU9SYm1oYzR1WE4vRXJHTEpBWm9sZkE1VnF3UnN0YVM1UkE0?=
 =?utf-8?B?WGs4Z0RhWU5CZVN4QXZYN2toTVc3eHdYRzlmbUhzTWdRbU1VMFRVRVY0Y0Z0?=
 =?utf-8?B?TENvZ2RFSEMvWDQvSkF4QU81eXF5QUdaaFZzMmNRWCt4WUhRV3hmNGxueUpQ?=
 =?utf-8?B?akZOemJrYk5ZaU1uZW05LzJsRDhGNi9pVnNBdk9OVVY2Ri9jOFZkYUZmL3da?=
 =?utf-8?B?a2srMDRvVytXWXpGOHFvekFGeW96VG4vLzlqS1FUenYrNE0wK1hHT1o5by9r?=
 =?utf-8?B?RW5UQ3grQisxWHBZMWVjcDhES1M3NnVsbXFkUGZONGZldzB5TWV3UXluVU5H?=
 =?utf-8?B?R3huYjdnRko5MnJjSER0Smo4dHhyQ3daNnpDcGczRVl2VEk0VnZqbXlmNC9M?=
 =?utf-8?B?cVdiSHlQY1NmUHZENi9iTHRnS2gxdzBwaTlJbEo0NDVQQnUzTmVSSzM3WERl?=
 =?utf-8?B?Y01nSjROSEc3OEszSG1hQm1Kam9BNlJEbEFJNGFuNlRxZ2NPa1F4Vng4ODZo?=
 =?utf-8?B?bTFHTFdFUVBUczA0Q0h6Z2NpOWdZSXlDSTE5UFFZVmd0K3pCSVo1VVRtSUlr?=
 =?utf-8?B?eXJ4dHBhWHhHQ3FzZG1keFdhN0tQQUFEcGtWclc2MjN0d2pWRTdxbE5DS2Nn?=
 =?utf-8?B?cTZnYVBYazBaMzdjZUdmeWNPWUx0dHgxMzc1dFZiSWtQWUFZQ29DUGExbERM?=
 =?utf-8?B?MmVrTjFpZkhxZzdUMlppT1dvZjU2cCtTQmtnWUtvL0VidmpoNDVOZm9CTjB0?=
 =?utf-8?Q?qaH4=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NE96RlE2T0drTlZaNkkyNWtxNUxsY3FscGZDZENOWnlJU21pTCtyZDk4WjQ1?=
 =?utf-8?B?WHBaejd2NDJjNkUyUkl6L1FEMnB1UjlsMHNHb081ZEdaQ3Byc3dCdkU4S2Y3?=
 =?utf-8?B?UGdxVXk2Y3dQRi9qZHBKSUloa05LaTk3ekdNRDR0UzJZMHVOcmhOWkhxalFh?=
 =?utf-8?B?N0hqMTN0azN3REpMZk56VlB3czFSTVNqZU9pVnNYQjFkdkplL2VHYk04aUtr?=
 =?utf-8?B?MVI2dzFNaDVDUlhSU0RVcFdXaEJoaVcyTjJPcGo5aldmenZXTW5USnVGV1lJ?=
 =?utf-8?B?Q3Z2NU5rT1JVczZuWFpUUjhJMEYwc1lXR2x4UVFCYWgzeU14R3NqajZ2Ulc4?=
 =?utf-8?B?azQ1c05jZ3N3TnFySEREdHRrdTRKUFlxZ3hwa1UxMmpHM2RyTjZSMTh1dStG?=
 =?utf-8?B?SlVjallRbXRrRW5wY1kxeG1QZzFiM2cxRGZNdW10d0RzOFh1d0Z4U2ZZdW0x?=
 =?utf-8?B?cjE3NkFZaUJDS055VjluNmpuZXNnZS8xRU16ZnlRLzZTeGpLRWpVWFVDb2Vn?=
 =?utf-8?B?WGJydHh5TlpTUm5jT0ZqWDdEZUVMMmxyNkdMY2FHaUZ5cjZML0hxQ2F0MGNR?=
 =?utf-8?B?MU9xZUVKL3lkNW8rbkQyZklRc1Jrc3BYN0VrNUFYTFBGWlBHT2JHeUtRTGsy?=
 =?utf-8?B?Z2Q5SExxTE0wZHQxQnpuVVlqTXRjS1p0c1Via2d6WnZta1JRNWNsU1Uwek16?=
 =?utf-8?B?YlZCK1JCRnBjVGd1bUxXSUZENHluLzMxcmpFRFRUVGtSeUNYU1lFVlhUazA5?=
 =?utf-8?B?MVhNbWtFT25jbm5hWHN5WWp2RXRwUUJUT2V3ZVBpUHh2WHV1RUdGd2k4aS9H?=
 =?utf-8?B?bzk2NEhiMGNMcyszd0dDd2s4bko1N0E0dzNBUTBhOHl4UTQ0VUZJMUkxMTA2?=
 =?utf-8?B?M1R3N3BrVFYwVnZRL0lMK0tnT1pJamhxR0ZCOWVnZ3BTcG5DUmJXSkxGTGRQ?=
 =?utf-8?B?YVZ2NUNOK0M1blo2aEhIOWpjUnozeEVMM25mNStVV1h1V0dxSTVGbWQrRjZw?=
 =?utf-8?B?ajZ3Qy9vb1UzZncrRmxBUnVIMmlTdDFMMDVJM005S1pWSFpNK0xHTnpLYnF2?=
 =?utf-8?B?enkxVUVZSCtDb2VHVUJZTTVEbjVIcVFBWUNUS25TVVk4OVArS09zZ3c3S0pO?=
 =?utf-8?B?V25sOTMrTmdFZHNvRW1Kc3ZudVdMMEhRbWNKV25Ya0hPaTZhM1hVekZRWFAz?=
 =?utf-8?B?dTNaWkYwcDB5MDA4Mm5GWEl3UjZlYnR0N3hiZzhoL3lsM1p3R0lhWXNHUjFq?=
 =?utf-8?B?emNYR2g3L245UGM3VTJLSEtDdlVEZ3U2SnFvS21RRUlYQjlScHlVSm1jVSt6?=
 =?utf-8?B?TDZLRFR3L29CT3NiNDV6Q1E0dXlXZ0ZJRWNyeTlLZmtjRkdscnZaU29hd2RH?=
 =?utf-8?B?V2V1M0tVd1BlN042dnV2SkhPcDVTRG5sNXNQbGtpUUNVUzlITnBpVk84U0tO?=
 =?utf-8?B?ZUY2NzNveldGbUJmRjFjS0V6d1VGZ0Z2a0RubGRYVy9SSVZMNWFCZ1hWQzVi?=
 =?utf-8?B?cUhsUEVsWnlaRUQ3UDE4dG9lSng1VkdkQXlYZXgxVGIzY05jMElKM0p5RXhx?=
 =?utf-8?B?c3J1UkpQTzYwMEk5TEsvVkp0S2dCSjlUcS9yZGJWcS9hZGc5TTFMay90eC9Z?=
 =?utf-8?B?Q2xnN2d0T0dIYzBEVVF3am9UenFrKzlyQ2lqQ0tZVS9PN2N4aUJFUEo5RUV6?=
 =?utf-8?B?WXhuZFdjeDdpTXRFa0QwempYdXIwUkpwenpmVWhpNUZwbmRNc0dCU3hWSS94?=
 =?utf-8?B?MVFVREZ4dmExTzIrZXhhRy9yYzFXcDlBbit0Sm5HdExZWkdqRG04WFQyVGVs?=
 =?utf-8?B?QkRYSHVwVUNQc1UzdXFUeDkrR1N1TWl1Nlc1QTRGbFVjK3NYdjFtR1FjOWh4?=
 =?utf-8?B?eHJySjVESkhRNFdCMWxCVkF6c1AycEFKYzAySENmZEVwVnpRT29XTmp6SG9p?=
 =?utf-8?B?NW5OQWVrWW5TWDdyTEZnNTZLUXUzMmdlZ3NyVTBqYlFPMXFtVTFxZ2NtNmV2?=
 =?utf-8?B?OWJxWWNpeTBjWFk3Sk44dE1oaERWUklGV050eWloM2gzQVNqSlhPazNlMThi?=
 =?utf-8?B?NXdWZk11dS9RQ1RmbEhqVzNiK3VRbSt3a0Zrd1BBbFRha0hPTDNtbkdBSzhp?=
 =?utf-8?B?UWVnMHVUVnd4QjVxNnNoVXg4c0Z3WXZybGFHdTd5WFJjSU5VVWFFQXA4ejdm?=
 =?utf-8?B?aGlOUWxNSnNKK0ZvWVJoSnI2Z1RjTW9waVp6cm5lalRPYk10U1FqdTRDc2RK?=
 =?utf-8?B?VU1scnUyaXgzenY3dEE4U3dyOGNKQlFGeTJKRlc1OUtjWHFSd01idXczYlBQ?=
 =?utf-8?B?VFNnL2VaYk1YWU1md3VPMG5oNkNGQ3BXY09nRVhoRTVtbUEyRjQwUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a4fe45a-7a2a-45cc-dd0d-08de68995a89
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 11:41:39.3821
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UiWjJQpoamNV/zGV7xIiYGeLTAHGCLrictyEMCyHoBIF1rlCwa8DZYY/XHAj4Y4Wg88pSWYDuh41dMiZQjhS6A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8227

On Tue, Feb 10, 2026 at 11:46:44AM +0100, Jan Beulich wrote:
> On 09.02.2026 11:46, Bertrand Marquis wrote:
> > --- /dev/null
> > +++ b/config/Darwin.mk
> > @@ -0,0 +1,6 @@
> > +# Use GNU tool definitions as the tools we are using are either GNU co=
mpatible
> > +# or we only use features which are supported on Mac OS.
> > +include $(XEN_ROOT)/config/StdGNU.mk
> > +
> > +# Cross compile on Mac OS, only hypervisor build has been tested, no t=
ools
> > +XEN_COMPILE_ARCH =3D unknow
>=20
> While editing in the ABI aspect, it occurred to me to check what Apple ha=
s
> to say regarding their ABI. For both aarch64 and x86-64 they say they use
> the standard ABI with some modifications. We may want to evaluate whether
> those modifications are actually compatible with what we need.
>=20
> Talking of x86-64: Has building on an x86 Mac been tested as well?
> Especially if that doesn't work, it may want mentioning.

I no longer have access to an x86 Mac, those are about to disappear.

FWIW, I build x86 on Mac using the Docker containers, just as the CI
does.  OSX Docker allows running x86 containers on arm64 using the
"Rosetta 2" binary translation layer.

I've attempted doing a cross-build from an arm64 Mac using the x86-elf
toolchain, but got the following error:

% make XEN_TARGET_ARCH=3Dx86_64 CROSS_COMPILE=3Dx86_64-elf- HOSTCC=3Dgcc -C=
 xen V=3D1
[...]
/Library/Developer/CommandLineTools/usr/bin/make -f ./Rules.mk obj=3Dcommon=
 need-builtin=3D1
  x86_64-elf-gcc -MMD -MP -MF common/.bitmap.o.d -m64 -DBUILD_ID -fno-stric=
t-aliasing -std=3Dgnu99 -Wall -Wstrict-prototypes -Wno-unused-but-set-varia=
ble -Wno-unused-local-typedefs   -O1 -fno-omit-frame-pointer -nostdinc -fno=
-builtin -fno-common -fzero-init-padding-bits=3Dall -Werror -Wredundant-dec=
ls -Wwrite-strings -Wno-pointer-arith -Wdeclaration-after-statement -Wunini=
tialized -Wvla -Wflex-array-member-not-at-end -Winit-self -pipe -D__XEN__ -=
include ./include/xen/config.h -Wa,--strip-local-absolute -ffunction-sectio=
ns -fdata-sections -g -malign-data=3Dabi -mindirect-branch=3Dthunk-extern -=
mindirect-branch-register -fno-jump-tables -mfunction-return=3Dthunk-extern=
 -Wa,-mx86-used-note=3Dno  -fno-stack-protector -I./include -I./arch/x86/in=
clude -I./arch/x86/include/generated -DXEN_IMG_OFFSET=3D0x200000 -msoft-flo=
at -fno-pie -fno-exceptions -fno-asynchronous-unwind-tables -Wnested-extern=
s -DHAVE_AS_QUOTED_SYM -DHAVE_AS_MOVDIR -DHAVE_AS_ENQCMD -DHAVE_AS_NOPS_DIR=
ECTIVE -mno-red-zone -fpic -mno-mmx -mno-sse -mskip-rax-setup -fcf-protecti=
on=3Dbranch -mmanual-endbr -fno-jump-tables -mmemcpy-strategy=3Dunrolled_lo=
op:16:noalign,libcall:-1:noalign -mmemset-strategy=3Dunrolled_loop:16:noali=
gn,libcall:-1:noalign -Wa,-I./include -Wa,-I./include '-D__OBJECT_LABEL__=
=3Dcommon/bitmap.o' -mpreferred-stack-boundary=3D3   -c common/bitmap.c -o =
common/.bitmap.o.tmp -MQ common/bitmap.o
./arch/x86/include/asm/bitops.h: Assembler messages:
./arch/x86/include/asm/bitops.h:511: Error: found '
', expected: ')'
./arch/x86/include/asm/bitops.h:511: Error: found '
', expected: ')'
./arch/x86/include/asm/bitops.h:511: Error: found '
', expected: ')'
./arch/x86/include/asm/bitops.h:511: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:20: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:20: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:21: Error: alternative feature outside of f=
eatureset range
./arch/x86/include/asm/nospec.h:20: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:20: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:21: Error: alternative feature outside of f=
eatureset range
./arch/x86/include/asm/nospec.h:28: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:28: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:29: Error: alternative feature outside of f=
eatureset range
./arch/x86/include/asm/nospec.h:28: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:28: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:29: Error: alternative feature outside of f=
eatureset range
./arch/x86/include/asm/nospec.h:28: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:28: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:29: Error: alternative feature outside of f=
eatureset range
./arch/x86/include/asm/nospec.h:20: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:20: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:21: Error: alternative feature outside of f=
eatureset range
./arch/x86/include/asm/nospec.h:20: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:20: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:21: Error: alternative feature outside of f=
eatureset range
./arch/x86/include/asm/nospec.h:28: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:28: Error: found '
', expected: ')'
./arch/x86/include/asm/nospec.h:29: Error: alternative feature outside of f=
eatureset range

I haven't investigated further.  Seems like some issue with
alternative and the uses of CPUID defines.  We probably want to
mention in the commit message that only arm64 builds have been tested
so far.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 11:42:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 11:42:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226307.1532845 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpm83-0006sR-LE; Tue, 10 Feb 2026 11:42:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226307.1532845; Tue, 10 Feb 2026 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 1vpm83-0006sK-Id; Tue, 10 Feb 2026 11:42:03 +0000
Received: by outflank-mailman (input) for mailman id 1226307;
 Tue, 10 Feb 2026 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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpm82-0006Yr-QL
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 11:42:02 +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 83e589fe-0675-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 12:42:02 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4834826e555so16775015e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 03:42:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d835f6bsm49106975e9.14.2026.02.10.03.42.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 03:42:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83e589fe-0675-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770723721; x=1771328521; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iGBjopm/fQWLDgBAA6SIJVEeq8SnXaq3tpyu0grrK3c=;
        b=KMPR1C/yE63lVFaINbOLtLmyLYd67WpZxctNQYrcA7c4YJ7hk66gwPM6m/XqBzhKo4
         KURT5i0k8Qr/25W4qduJnjoMPy4OA1xUzCYnHkP+1uUviQbD3va2jq2thSW3ElV3oycW
         H45h990rCWBRULlZyC+QYMsEux4WAnv6VfcuKKaO2xAzTifZlFWt6/OVgDj8rIevUVXj
         An37HBr0jntS9lXXcB2vUxEnBc1kYM2lGg9pFPvBBeAJb83lWIbKZ7it03q4b5CNOumC
         v6Y4/MKBkwjzK9wEqm0Vd5DfTcb3wm1SrdOsqr7sKIw3Fg27ePhUM6HMlYoBXns7cnJC
         vlnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770723721; x=1771328521;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iGBjopm/fQWLDgBAA6SIJVEeq8SnXaq3tpyu0grrK3c=;
        b=vF5AjDOZMi9NnNtTWHv+ZNfRSnO2y7QThQZfa6DoKdSp+2imPp3kLDbGxg5UUISA/+
         uG1MkwJY8o/eBvhra1UUZs7vlUmiFBgzQR1/HjxjubkY/aGYbathRfayUOkbpSIvR5ba
         dAGlTBX46tSKkYsRwLkYHJUxa7zEv+du8TYXGsbEQsEws7Oxi63ZAJameykt3VPehPug
         tJSZ0pw4szRg/vE+cHBLfg/SmjdTnmqyOgYJw8eVQqQiOH/OHXEl3Fey1v65bb4LeBxW
         UDblRZJMYD2ZTZNO+E34i9ic7FCvLdaN1mO935Vp/UOLgpwDHztl4u0n93FIt1EkF+5B
         IN4g==
X-Forwarded-Encrypted: i=1; AJvYcCUh7pWLr77gRZLUAhp8oPbG1AgUyvJt8WJS6Nn5qYoJ245ftGCEXBarh1/NJJ9X0aYt08byL74qRQY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YymUwPOEBFLf7IP8b+/1w/w38M2XlnwTHzGio1ER29fjb3NecoH
	MHJwiUdemUTftPrTy/65DB5gLsinyovlxh3i+zX6lQve32I4L97MNbvNJyn9GE3q/Q==
X-Gm-Gg: AZuq6aJeKS4DviPLISz7FwfBmNq4lPx185inCCNtMuRvTtusOZh5py7Al2q+3oySIJS
	ChVTn7jl3ZUxCR6TX6OA2th+jEO7EWwq9/9lH5hchjOu2Ne4Gv70prqp7v8v54sv31V7ohCi+fy
	R2D1QaC8rKsoARJBVybFYnM2h3AdI9P+ezq+Vl29JRYc/tZshiKihnNAH/c5XtnuaEq0bBhABJW
	Ne97PD2oRCY2GhlVHt9eYZvruN3YDnKWuHSW+JehsB/vJ18xn8CkyNksv1Y7FV/qCNeK8IlNV8q
	aQhGEKtyk2hm7Rc6YZ0OZW2q+ywGZadASvUfWTQLeZCeRo9MDbIHOMJ4h3Byo++OimY0JhDseUy
	WMoxJnr1K45AQ+Dq8inX7sWSCABcFLEGURGd8sZutwY0UoRNi+jm//egd2r1LgAKLSY7nFAr4il
	tMTlhppz0rXKOpywDEzLqKCsgONKfrTvHsNH9EPJCw1LvnJs8oMvgikfaQ5DcuO3W3KdHpcJkPq
	u02oBYEpuxlYac=
X-Received: by 2002:a05:600c:3d96:b0:47e:e946:3a72 with SMTP id 5b1f17b1804b1-4832021e86fmr216429165e9.27.1770723721354;
        Tue, 10 Feb 2026 03:42:01 -0800 (PST)
Message-ID: <9c7930ad-196a-419e-b81c-d87cba5973db@suse.com>
Date: Tue, 10 Feb 2026 12:42:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 07/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: <20251003225334.2123667-1-andrew.cooper3@citrix.com>
 <20251003225334.2123667-8-andrew.cooper3@citrix.com>
 <e314d193-79f2-4d77-a2ed-1590375b4b96@suse.com>
 <6786174e-e00e-46fd-8b82-7eb823ad96a8@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: <6786174e-e00e-46fd-8b82-7eb823ad96a8@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.02.2026 12:15, Andrew Cooper wrote:
> On 07/10/2025 4:58 pm, Jan Beulich wrote:
>> On 04.10.2025 00:53, 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.
>>>
>>> Fix a typo in the parameter name, which should be shstk_base.
>>>
>>> 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>
>>>
>>> Leave as $%c.  Otherwise it doesn't assemble correctly presented with $$24568
>>> to parse as an instruction immediate.
>> I don't follow. Where would the 2nd $ come from if you write ...
>>
>>> --- 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[shstk_base], %[val];",                 \
>>> +                "mov $%c[shstk_base] + 8, %[val];",             \
>>> +                X86_FEATURE_XEN_FRED)                           \
>>     ALTERNATIVE("mov %[shstk_base], %[val];",                   \
>>                 "mov %[shstk_base] + 8, %[val];",               \
>>                 X86_FEATURE_XEN_FRED)                           \
> 
> I find this feedback completely uncharacteristic.  You always goes out
> of your way to hide % inside macros to prohibit non-register operands.
> 
> This is exactly the same, except to force an immediate operand, so the
> length of the two instructions is the same.

Might there be some misunderstanding? $%c isn't what forces an immediate
operand. It's the constraint (not visible above) which does. What we see
above is only an elaborate form of a format string, requiring that
operands are already of appropriate type (arranged for by way of the
corresponding constraint). If a modifier character like 'c' doesn't apply
to the type of operand selected, the compiler may issue a diagnostic, may
ignore the modifier, or may emit code the assembler can't make sense of.
(Of course a particular modifier character could, in principle, also have
different meaning for different kinds of operands.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 11:55:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 11:55:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226333.1532876 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpmLJ-0000YI-5D; Tue, 10 Feb 2026 11:55:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226333.1532876; Tue, 10 Feb 2026 11:55: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 1vpmLJ-0000YB-1m; Tue, 10 Feb 2026 11:55:45 +0000
Received: by outflank-mailman (input) for mailman id 1226333;
 Tue, 10 Feb 2026 11:55: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpmLH-0000Y5-Hs
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 11:55:43 +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 6c379a01-0677-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 12:55:41 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-481188b7760so39321495e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 03:55:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7d6f3esm49150105e9.9.2026.02.10.03.55.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 03:55:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6c379a01-0677-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770724541; x=1771329341; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uCHdn05De+Ja3bVZEpQ+mQshmsiuK4zlWvBTJkJGEjA=;
        b=cDT30Gq3zo5A2BeVYLQX8n8STvkC//NIX8214XHC8AGl5egj9FR8Gxb7/UH3tJMiJM
         W2hzxOUpJdSQ2A4HgpaOZRAmIlnhWAr/sMJkXppdTErZBjFwPko70GAgxw1dMT5ESZj+
         +lsP9lP51H31yX4eKWmAyDVH23TmWMzDes7ZfTrzonqVBgIYj9eqkXapeyHyPNA8zYcs
         QRPXBij0AL1KaXQc5J8gF1WZpVM77WuSLiVvpRYD6wRuoGqtv5O+OrUXBnT7P2gGwbjB
         SxsEn0ko899X+ebBBS18lBNW8YV8xsger/1x5dxPnci+WAk4j7oc1GLrKjcOCfpIR33s
         Bbtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770724541; x=1771329341;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uCHdn05De+Ja3bVZEpQ+mQshmsiuK4zlWvBTJkJGEjA=;
        b=dXVdNbmHoh021zo1f92ki7dccM+y7BdiNvR9kvBqaIP/qiXP3efIzbnHJlIWGa+NKK
         5Hb8Gvajvi2j/WBpiaPB8PBb5K3m5GjgCVRw9U+fJ+qMSE80I9N1MGAzW7aITkM0z9jZ
         VZQF2CTU5yICkSGludPHRQ/uVqfPdTk13Qnq0WfAjoYh0P7WbkAHS8/3Q6IaXtWCK9cJ
         YqqNrlzfYjd4HuYxHAqLvyQoRz7olYXDRNreeXDbmoEgFsv125bkKXYnisYgtcrLt9jz
         6YgdGZ0n1B6gu2sXfDLOQkvc6DRGdGPtrbDesKqefY6we3dpTul79gsmFi0zr8AWreyW
         dpxg==
X-Forwarded-Encrypted: i=1; AJvYcCUDBhBYJnIVz6BGhbJpZxWyIPwf1Z3+/XLcU+8MjlPqXQ1BDrLRXczqf0qghReW8P3Lq+5BkoJzc/o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4jeaycbuzEQlMeu27exTygQi1CrQcBkXlOnhF3ZVXM4vK2vb7
	YuH1VGPV4+YUTa6JXLcJ1LAQ0VWy29oDY+LFIbFF7d2OIkgyuFsma60NP2VEalhjkA==
X-Gm-Gg: AZuq6aKaBa8Bu5I1tJvjcqErQBd3hDf8mRleC3oAKjScbBIEOuVWSdAtUyoTQ7q4FQo
	AKDr0Xp8P7ulW1/ipw0lhRMpwaEV9HzWnZdzRJBUOPkpiws98kLKE0+qQuHnaron4sZ00kxAfq/
	ItISvFl3rb84Btyny4m4Qvo9+SS6aVtqSHSU75LHIbm/y0q0peY7+HBiqHqNwMBwWRd8sKTT0tR
	UZrNOq8QdRviiU2Ox59qsGArhjhAkd393jQeZsJK7op52eZve0Irm5UdEDYR2Kv4AQukd5NqTiK
	2vI6+M9BPzqp0jDFUQ33UcWJYU/1Ri1oZHHn9p1UUYL3YDJ+6W0qvEUA6e0ZSkR6ejbWvyEk/Av
	eWP7cDjCX4mfggLGVoz50BjkgnATOSkxzi3180DV2tWfHZ999Ujp6j2g2SPQcn7x/w/xOZQ57uF
	ydZGgLnvIxequ/Qt74I2nMpC8uxUiiJ3csXJHXYYSw0Naq8cvdSjT+KLQ5BF+gHa9VoNKd2RRZL
	XTOhvFvzX1r/Pg=
X-Received: by 2002:a05:600c:1388:b0:483:a21:774c with SMTP id 5b1f17b1804b1-4832097808dmr203919415e9.25.1770724540667;
        Tue, 10 Feb 2026 03:55:40 -0800 (PST)
Message-ID: <82adaa8a-b7d9-40fa-b59b-0851776fb59b@suse.com>
Date: Tue, 10 Feb 2026 12:55:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 07/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: <20251003225334.2123667-1-andrew.cooper3@citrix.com>
 <20251003225334.2123667-8-andrew.cooper3@citrix.com>
 <e314d193-79f2-4d77-a2ed-1590375b4b96@suse.com>
 <6786174e-e00e-46fd-8b82-7eb823ad96a8@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: <6786174e-e00e-46fd-8b82-7eb823ad96a8@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.02.2026 12:15, Andrew Cooper wrote:
> On 07/10/2025 4:58 pm, Jan Beulich wrote:
>> On 04.10.2025 00:53, 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.
>>>
>>> Fix a typo in the parameter name, which should be shstk_base.
>>>
>>> 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>
>>>
>>> Leave as $%c.  Otherwise it doesn't assemble correctly presented with $$24568
>>> to parse as an instruction immediate.
>> I don't follow. Where would the 2nd $ come from if you write ...
>>
>>> --- 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[shstk_base], %[val];",                 \
>>> +                "mov $%c[shstk_base] + 8, %[val];",             \
>>> +                X86_FEATURE_XEN_FRED)                           \
>>     ALTERNATIVE("mov %[shstk_base], %[val];",                   \
>>                 "mov %[shstk_base] + 8, %[val];",               \
>>                 X86_FEATURE_XEN_FRED)                           \
> 
> I find this feedback completely uncharacteristic.  You always goes out
> of your way to hide % inside macros to prohibit non-register operands.
> 
> This is exactly the same, except to force an immediate operand, so the
> length of the two instructions is the same.

Thinking about it more, are you perhaps referring to assembler macros?
There indeed I prefer to have the % inside the macros; the same may go
for $ there, but I don't think we had the need so far. For inline
assembly the situation is different: The compiler emits the % (and also
the $), unless special modifiers are used. It wouldn't even occur to me
to ask that we use %%%V[val] for a register operand. That really is the
register equivalent of the $%c[val] that you use above.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 12:06:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 12:06:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226347.1532886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpmVy-0002LB-B4; Tue, 10 Feb 2026 12:06:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226347.1532886; Tue, 10 Feb 2026 12:06: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 1vpmVy-0002L4-8E; Tue, 10 Feb 2026 12:06:46 +0000
Received: by outflank-mailman (input) for mailman id 1226347;
 Tue, 10 Feb 2026 12:06: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpmVw-0002Ky-RT
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 12:06:44 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f6879f5b-0678-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 13:06:43 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by LV3PR03MB7610.namprd03.prod.outlook.com (2603:10b6:408:284::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 12:06:40 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 12:06: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: f6879f5b-0678-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TCxAQMUitVa3XgOiDK3DmsRUmrqmUtabtjzpgwIzIdGVczPqZGVqUCs3wm4YYiSciaVVN1fYR0QM8dz3IZDuitHqDEqCw8M6chRnILsGCePKBl204wiJQokmDw+eGc1kw5thyZwCz17VVygekqTwWs5L2R8MTTFwG5LlfiGwHxXnh2fyx8W2rVF8r46+0HL45iEhDOv+qQbZf9dSaq8aPrntvsNsqms3NRq3ujnaflhlVF3PXLBVN3ygvfB7wwYGJzYlDCTFCcQOVVPlDrSLYNsvPznQQvs1KowYN0yRQ+2DcCZJgg7FNwvW6qCSn+98a/YGPQa6+0R/LOWn5x7DWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=audc2GUtnsvMNydrjwYSDXe78K+2d8mcLp7KKS2jBEI=;
 b=KsJkkKP+o3Ayc/PxVU+19IQFp11o71ki5/F3PlNBxo3VHfRPd2i3sz+jsCFTk2EAquxEG3JuxfUfUr7TeKNSJ2usqD11/t6VhdMCuG+STW6juhz9mEqdXWJVPDV/MIzA9TJUFxHsZiH3sXv4sWzzHdpTYm94CX1+fwTAbekGCvB5SXoKBljPT8qQR06myEXn8x1+mFrT/eOCVRYZvq452GwwoQEXBEt4GIhYsgKQCVhIgREILs/ab6Ejk3vot21DmEiuB9kRJHBd+92imxgZcYrZObhWSzmvjEt8Nah0JuhttVSX7MgSGeio3Rk+ywlbqg49dHarCpKuX8ocEH92Bg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=audc2GUtnsvMNydrjwYSDXe78K+2d8mcLp7KKS2jBEI=;
 b=Zz7pp0Z61QMQyotcRmoajI3MhaTb3GLnJnwFwuw6k02hB7VAUSMj98vQ+uyszLd1HhLNRyZX81RuNk9Kn8scArrLjE9bEqDB65RUxfCROVgTGiX86hGoiKOcnNk3on5O5ALR3eo1tOGORXla7yVQ17DPqvyvgMwv0YOKRevC6Bk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 13:06:36 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's
 CPU vendor
Message-ID: <aYsfTHM_kV8t5Vqp@Mac.lan>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
 <aYrwUj1uaEgGL9hl@Mac.lan>
 <DGB7R5PAW92W.390IRWRSC3QE9@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <DGB7R5PAW92W.390IRWRSC3QE9@amd.com>
X-ClientProxiedBy: MR2P264CA0151.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:1::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|LV3PR03MB7610:EE_
X-MS-Office365-Filtering-Correlation-Id: d5ad4003-fd60-4afc-f856-08de689cd946
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aE1EN2RRM29MVFNMT20wdUlnK1dLQTV3bFhGVEFFek1WUFRBckU2NVZRdUlx?=
 =?utf-8?B?Rk01cmxVSXNlaFZVdjlyOFo0WkNtdEpFWEFlVTdKYTFmdlJDVGtReVI3SXl5?=
 =?utf-8?B?VkFRbW9nM3BIK0RBSUEvYW5FT3liQ0x5NnVtVGJkQkszMGRFeGNYKzcxUmI0?=
 =?utf-8?B?YVZPUVJ5Y21WTXY3RzRTcVFoRlFrQ2ZHOU10N2w5OGR5QnorRWMwQzZRT1pZ?=
 =?utf-8?B?RDdsRFJ3Z0JtWTR2WGJ4NmJQSWxFTXZmQ3hIWnFOREU2RW45UUVPUFVBRWVv?=
 =?utf-8?B?R3RuZDREYmlUY1ZtNUxMMXZIajRXTGkvZFYzMkJidWRBYTVFN1B1RFV1YnZV?=
 =?utf-8?B?Q1hQVFV2Wks1L3NJa2szc1cvaVAwenBJNHNDeTlZUVVsZmtDV3FsMVVJb2RD?=
 =?utf-8?B?VDBqdHBNcVhDc2JSNEdBdDJGNkRMSDIvNDMyZzMybnZMMUxHL0gxU0dWeVd0?=
 =?utf-8?B?ZXRPTW1Bd2lWOHEyRERxZVBXNy8wQXg5eXpjWFM5TVVqKy91N3dqWkFHRzEr?=
 =?utf-8?B?OUJTV2cwZUpiWmJxZExZMU5XMHBHZlZ2WW5YMnRpVHVrZ2ErTjA5bXZ2c1Bn?=
 =?utf-8?B?K0FNdkpGamFuNThNWmhQSmwrWG53WUhySDNiR0RKbzNYMit1MGp2dVVCcmV5?=
 =?utf-8?B?N0FNZGxIdWN6YmxuV1dMZVBFenZ6L3pnSEZJRWZITmRqYW5wRFY0UGZoOC9z?=
 =?utf-8?B?ZHZSRVM3YUNMZHZpVDdLRy9wTVhvdTZwT3hzck5rTWFIam5uQUtyenEwTUcx?=
 =?utf-8?B?VWxwa3V0Wm5YUUVTRG5DMUNxR1h4SXEzcEhEb2wrRnBJOTJhcnhvV1g4WUlF?=
 =?utf-8?B?bnZwR0tBT3QzRVJsR1JtRWVDSUpGVFZxWTY0ZEtvVVJ0d04wMFpLUy95RlNX?=
 =?utf-8?B?M0NkNW05Y0NGYm9hcFBEbHFzQll5ZVBSdFQ2L3IySDBTNXAyaG9SdlJZRjRu?=
 =?utf-8?B?elhjUnNRZCtIOUNzRW1uYUZKUFJwWFhjWWxBekwxVkxZWUEyM0RFL1ZNS1Ev?=
 =?utf-8?B?S3ZzMXdXN3VNYy9nUHErVHN3andLTzlZOWd1ekdwNk8rbEE3V3ZaUG5vUXVu?=
 =?utf-8?B?SWFXQnRYdHJJNVRDeWhkWE5Vb09UNmtDMVhDN3ZlSXdjR0hhVmViZWV0VjlB?=
 =?utf-8?B?cEpycjhzR1lLSWZhd3F2MGk2VEF4OVJYdTFNWG80WldWT0JyMjU1ZTNJeHlE?=
 =?utf-8?B?bUFiRE1UNnk0Z01HT2VzR3FFeEU4YzFORjNSTExMT1RXTzhwSVBSN3d5Zllx?=
 =?utf-8?B?b0YxMUY3aGt4SXdsb3FvT3Y5cmxsZlgvNDNRcERaUTZDVlo1eFVna2tWZ2ZM?=
 =?utf-8?B?VS9ZcEcrMS9IYmh1cjh5UGt1eVZZSzRBVkNwLzFybjFyZ2VUcXVsd0dOS3Fo?=
 =?utf-8?B?T3VOS2ZweE9vZittbzZVTGxmcUdudGpmVlFuaDNjT1F4NjFKdWljV1J1TDUy?=
 =?utf-8?B?ejFJUmV6UTZVVUFJMnZ0QlM1VHBYR2hzOVh6YmYzQjMwNldERjdHdHE1TkJm?=
 =?utf-8?B?ZnQ4NExaTFhCZFkyMEtBTjA0dzk3L0VXMWFmLyt5T0RqZVZwZ285Ykd5cFpv?=
 =?utf-8?B?d1hjTGRlZExiemRJRGlYMU81Mkl5UTRqREpXMXFmcHQrSUR0UG5rTVJ0LzYy?=
 =?utf-8?B?YUszM3NIdStCMXhpNWpyNmp4Z1JaOFRrSlcxQnNUbjRyOXE0UnZuYVRCb1Zx?=
 =?utf-8?B?SnUzNEFnTHpTcjJTSlNkeG5uZ0xUQ3lVbzZzL0JVb0o5QTg0UFgwbUFjYWhO?=
 =?utf-8?B?SVQ5aFhONUdmOXd4RHB5NGE0R2lsUnZwbHgyWm5XYmRsTmZxd2FoS2FjT2VB?=
 =?utf-8?B?NWVpakkzR2xqcHlRWStWak9jdjRVVTN2NHJTQUxYdG1kNTQ4L1dPTzNpVkVG?=
 =?utf-8?B?RTRwc0xpRVNvdWI4bkxrVXAyYUVya0twM3UxSkJBODJMbVpxenJwMkIvN2VY?=
 =?utf-8?B?S3Zad0sxZlFxSnFudjJ6NEFxc2tucUxEWGNoUThhSUtrVFpnMjV0Qkw0NDRy?=
 =?utf-8?B?TEppaG40aERDaDZXTjRnNm1WQWxBZStyNjNEU2hwYm1QNy9CMHJ6TWVLRWtF?=
 =?utf-8?B?cHNocXVYMW9ZZ1REZU5IaTBCR1lWZ1FqT1F6d0RpZDNMbTl0S1o5dnhIOHhZ?=
 =?utf-8?Q?Z7/I=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UDR5R3R5T1VxaFgvR3I2OEM1U01KVHZRbWVIZHlFdHRrTWdSbFZUYTFBd051?=
 =?utf-8?B?SEp0NVNvOVJieUgxa3N5MzRFSzFFZlpjN1I5QkIzZzZ2N1psb0U1RllXZ1dI?=
 =?utf-8?B?QWtBZmNRelpmVGxldU1CZUQreE9TVU5wNlJtbi9vZ29hamhhUzhxeFZjanJL?=
 =?utf-8?B?WnZ3cmVLSTdmbldHT1RhRFZtRDErMzBxTUsyVjJTUEtZOXN6Szg3ak8zbGhL?=
 =?utf-8?B?QkVrN0dmRmlES2ZMUG9qZ2FMNy9SazNwcG1HWmF4Z04yeUtxcTRnRUxJSlll?=
 =?utf-8?B?d0lKUUF1OWZSNTNWNCtMSWVqM1NJUldaVitQcTQwZUFHSDJncDBrNE5hY2Fj?=
 =?utf-8?B?ZU9pYVc5bVR2bXIyd1BWV2R6cUVoaW5tRGEzTEZnTE5UZFpuTkp6b2xZWmNr?=
 =?utf-8?B?dzVtSjVzSmlhbThSeCtVY1FZTjNPS2JhT3F0bTMwRjdLMzBlT05xRE5ydW0z?=
 =?utf-8?B?SWdHVnhyZmo3Z0MxSFpqYms4bGdRNGFmRmxZR0NWNTRPaHZkSFh5OGVEdFFa?=
 =?utf-8?B?N3VVd2dUT2E3enlINVZyYlpEcUZQUUhBdW0wSWxMNUN0MDBrNStLWnlEM012?=
 =?utf-8?B?bEhReWlTRUlScVZjemU0cjdHcnloNlprbGtKS0xoak1HV3pDZGlzUmhDUHQy?=
 =?utf-8?B?Y0VEUWJsOENRZzlVWHZ1eG4vQitIWG9ocE1uT2JkVFllZnd5ZXhwNXFXT3RG?=
 =?utf-8?B?T3cvYUxRK0tEVGZkT3l1YWlLRy9rYWF0d2VpK2RCUCtHNHdVL1pYNklhME5P?=
 =?utf-8?B?bE4veWVWTHBXYXZzSzQ5UmJiYlJrdDZHajZFQy8yTXFFRjN2SFhibjFsa2JD?=
 =?utf-8?B?ZTYvQ0ZlQThjY1BReTd6am95K1hXa3VIQm42eVEwUGI0d3k5VDlDYSt5TzFB?=
 =?utf-8?B?c3U3NlVJazZKRWFBTkE0OGdXZnhTaVZQZnJscUhkWHoyeUdnc3JqMkFQWFM1?=
 =?utf-8?B?eWxabW5Pc0JEQ3dwSVVZVS92cTZYZTVoT1MzcVJiYVNtUUR2c3l0T3NBMUxl?=
 =?utf-8?B?SHBqWTFJRFZ5Z0dUVlNFbVI2cEkxK3JGam81WDQ1OHV1d0EycmFUNm1QeExZ?=
 =?utf-8?B?Z2hKMXJIZ3pBSm1nZm1jWnVOVkdBRjFtR1duTkd4OUxWZm1rcnlyaWVncXBs?=
 =?utf-8?B?Rm81d1BJZitGTjZBaTlxM1kvMFgxa0NncjJ2OXBFZVNHVnNTd3dIckhnaTF0?=
 =?utf-8?B?cEhjTG5ldmFLZUljNGQ0cWZnNDRXMmVzS1dPUlo3cEhVaVNSNUxkVFlNeXd0?=
 =?utf-8?B?cy81anFLN3JrWDNlWWRHa0NWK1JoZk5TMER1VHZMWDdGOEZwd1RSOTAwdnZl?=
 =?utf-8?B?ejFnclRqT0RLSWNQRzNUOGxZY1JJbjVndUk4OTZKbWVvNXplMldWK2grS2R4?=
 =?utf-8?B?V1gzMWdhS3JqK3lqM0l4ZUI4T1k2a1M4dzRYOU1mK0NXUXpKOXFIUjdFQXAw?=
 =?utf-8?B?K3FXMHpLTnpEWCtRZi9yRE94aW84ejhzNjlOMEtvbEpaQ2wrSEs4UnlJby9j?=
 =?utf-8?B?Mk9JVWdGTjQyVFhYNWhqRHJ4WEMxaUlyb1dkTGZ2SmxqK3VJR3ROSmhOSis3?=
 =?utf-8?B?Zm1ybHF1YUpxYjdFWUZ0eVRPdGdoWWRYS3lTT2JCK05XWjBCMU4yQWt4M25F?=
 =?utf-8?B?V0FhMk1xZjRNN2pKRmpaYXNJOUZDRTBpRlNyZmxKM1FMeWpNV2w0SjlEaEJ1?=
 =?utf-8?B?L1ZsaVVpMXhZcEZUaldEbCtnV0ZOOFZhYk5rL2N1UUxvYkpyQlB6Z2c2SmMr?=
 =?utf-8?B?U2c2LzA3ZExkQlMrczhaWlczdk5CWTdmOUk0RlVkMGorYktISERDMHlGYVg2?=
 =?utf-8?B?R2tpclpSdStnMEthcE52eTdyaUJ2cE9vekxJZWo1Q2RkTnkzbHl6K3FVZ0Va?=
 =?utf-8?B?QWRSTG81QTlCNVVDSkNsZk1PT2I3cmVuUkRBM011UXNkQisva0piUndQK2Vk?=
 =?utf-8?B?Q3NJdGVoOWJlSXRZUW5zRzNpUXJ5ekFRZUdOZzRENHQxVk5WNVp2SEpTTGtL?=
 =?utf-8?B?ZGVqYk9lKzRjN0VkL3NxeVVCQU9TYkRhMWZZK3AzNXlTbjUvbWo2ekdyclkv?=
 =?utf-8?B?cG9oclYvSWIrcjVFTTlFYktYemVzRmNXdmlDZ3dhWWpSTlVKcjdVdUhIL2Nw?=
 =?utf-8?B?TEdYOEt6STRiMDIybm5MZEZwQXdyMk1OZldnTmVidW1vNHBqTmVBWFhhUXk1?=
 =?utf-8?B?Y3NpbUV3SkxDUkdCNXd1MENGeThKNUt3MlNHL0Z2NzBBRHQ5WHBZakJUOSs4?=
 =?utf-8?B?cE9ZclFwMjJlVnFZbURuWEE4cmFaWklBa0pBSGkzdm8rYzVnKzhkZ3dmOW5H?=
 =?utf-8?B?emhlQ0pBQ1ZFYWlpMnN0VW9yNjR6ajY1UFRtajJaVG96VHlHVTVnUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d5ad4003-fd60-4afc-f856-08de689cd946
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 12:06:40.4961
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7tXRzSTNh1mtwYi3djOjtmKqFk9h3zZValte+Pq5tdMki9zrj+oJzT9aKMZ3asf+1QMUBVNKSShJJsy18H96lQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7610

On Tue, Feb 10, 2026 at 11:35:20AM +0100, Alejandro Vallejo wrote:
> On Tue Feb 10, 2026 at 9:46 AM CET, Roger Pau Monné wrote:
> > On Fri, Feb 06, 2026 at 05:15:25PM +0100, Alejandro Vallejo wrote:
> >> Introduces various optimisations that rely on constant folding, Value
> >> Range Propagation (VRP), and Dead Code Elimination (DCE) to aggressively
> >> eliminate code surrounding the uses of the function.
> >> 
> >>   * For single-vendor+no-unknown-vendor builds returns a compile-time
> >>     constant.
> >
> > This is kind of misleading IMO. It will possibly allow such
> > optimization for Intel or AMD, but not for Hygon/Centaur/Shanghai, as
> > for those CPUs you will always end up selecting either Intel or AMD as
> > a requisite (so X86_ENABLED_VENDORS will never have only a single bit
> > set).
> >
> > Not saying it's bad, but I think the comment above should be adjusted
> > a bit to notice that such compile time optimizations for single vendor
> > builds will only be applicable to Intel or AMD builds.
> 
> You can't build a Hygon-only hypervisor with these changes. I can rewrite the
> commit message to clearly state which vendors are subject to the optimisation,
> though I'd fully expect users to notice they just can't deselect AMD when
> building for Hygon.

Yes, right, I guess someone would notice that right now it's not
possible to select just Hygon for example, and that it always pulls
AMD.

In theory it should be possible to decouple the set of supported CPUs
in X86_ENABLED_VENDORS from the set of support code that you build the
hypervisor with.  IOW: it should be possible to build an hypervisor
with CONFIG_AMD & CONFIG_HYGON that only has CONFIG_HYGON in
X86_ENABLED_VENDORS.  For the purpose of enabling secondary vendors
(like Hygon) to also take advantage of such build time
optimizations.

> >
> >>   * For all other cases it ANDs the result with the mask of compiled
> >>     vendors, with the effect of performing DCE in switch cases, removing
> >>     dead conditionals, etc.
> >> 
> >> It's difficult to reason about codegen in general in a project this big,
> >> but in this case the ANDed constant combines with the values typically
> >> checked against, folding into a comparison against zero. Thus, it's better
> >> for codegen to AND its result with the desired compared-against vendor,
> >> rather than using (in)equality operators. That way the comparison is
> >> always against zero.
> >> 
> >>   "cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)"
> >> 
> >> turns into (cpu_vendor() & X86_VENDOR_AMD) in AMD-only builds (AND +
> >> cmp with zero). Whereas this...
> >> 
> >>   "cpu_vendor() == X86_VENDOR_AMD"
> >> 
> >> forces cpu_vendor() to be ANDed and then compared to a non-zero value.
> >> 
> >> Later patches take the opportunity and make this refactor as cpu_vendor()
> >> is introduced throughout the tree.
> >> 
> >> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >> ---
> >>  xen/arch/x86/cpu/common.c             |  6 +++++-
> >>  xen/arch/x86/guest/xen/xen.c          |  4 ++++
> >>  xen/arch/x86/include/asm/cpufeature.h | 27 +++++++++++++++++++++++++++
> >>  3 files changed, 36 insertions(+), 1 deletion(-)
> >> 
> >> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> >> index ebe2baf8b9..6f4e723172 100644
> >> --- a/xen/arch/x86/cpu/common.c
> >> +++ b/xen/arch/x86/cpu/common.c
> >> @@ -328,7 +328,11 @@ void __init early_cpu_init(bool verbose)
> >>  	*(u32 *)&c->x86_vendor_id[4] = edx;
> >>  
> >>  	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
> >> -	switch (c->x86_vendor) {
> >> +	if ( c->x86_vendor != cpu_vendor() )
> >> +		panic("CPU vendor not compiled-in: %s",
> >> +		      x86_cpuid_vendor_to_str(c->x86_vendor));
> >
> > I think you want to print both the current compiled in support plus
> > the host vendor as part of the panic message.
> 
> The mask of supported vendors, you mean? That could be helpful.

Yes, print both c->x86_vendor and cpu_vendor() as part of the error
message.

> >
> >> +
> >> +	switch (cpu_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;
> >> diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
> >> index 77a3a8742a..ec558bcbdb 100644
> >> --- a/xen/arch/x86/guest/xen/xen.c
> >> +++ b/xen/arch/x86/guest/xen/xen.c
> >> @@ -57,6 +57,10 @@ void asmlinkage __init early_hypercall_setup(void)
> >>          cpuid(0, &eax, &ebx, &ecx, &edx);
> >>  
> >>          boot_cpu_data.x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
> >> +
> >> +        if ( cpu_vendor() != boot_cpu_data.x86_vendor )
> >> +            panic("CPU vendor not compiled-in: %s",
> >> +                  x86_cpuid_vendor_to_str(boot_cpu_data.x86_vendor));
> >
> > Is this going to be useful?  I fear the panic here might happen even
> > before the console is setup, so a user won't get any output from Xen
> > at all.
> 
> It is true that early_cpu_init() is invoked immediately after serial is
> set up, so any other vendor check ends up being fairly useless.
> 
> OTOH, thinking about it may stand to reason to have:
> 
>   1. A very early panic in assembly, like that of missing nx.
>   2. Have this early hypercall setup nonsense present ONLY when INTEL && AMD
>      are both enabled. It really makes no sense to probe when you have
>      explilcitly compiled for a single vendor.

If you don't probe at all, then yes, you would need an assembly-like
message.  However given the hypercall page initialization is likely to
be used mostly in pv-shim mode, not even the assembly message would
get out I'm afraid, as the code to print such message only outputs to
the VGA and the serial, but not to the Xen PV console provided in shim
mode.  pv-shim runs inside of a PVH container, that doesn't have
emulated serial or VGA.

You could implement early PV console support to print such message,
but it seems simpler to me to defer the panic until early_cpu_init()
for the sake of simplicity.

> 
> >
> > Would it be fine to allow such mismatch in the hypercall setup, just
> > for the sake of getting the console page setup so that
> > early_cpu_init() can print a proper error message?
> >
> > Allowing the vendor mismatch here won't require any extra code, it's
> > just the selection of the instruction to use to call into Xen when
> > running in guest/shim mode.
> 
> It'd be fine, yes. Maybe with a comment noting we can use vm{m,}call whether
> or not cpu_vendor() == 0 because the instruction itself is supported by HW.
> 
> OTOH, I could also fully drop the dynamic detection logic on AMDLIKE-only or
> INTELLIKE-only builds like I mentioned above.

That would still leave us in a difficult situation w.r.t printing
anything to warn the user in case of mismatch.

> I sort of like that second option, as it allows removing hypercall.S and
> hook it to the real hypercall machinery, that at that point can have the
> alternatives removed.

I think you possible need a way to cope with vendor mismatch in the
early hypercall setup, just enough so that you can get into
early_cpu_init() to panic and print an error message.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 12:41:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 12:41:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226367.1532895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpn3M-0007Ok-Qo; Tue, 10 Feb 2026 12:41:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226367.1532895; Tue, 10 Feb 2026 12:41:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpn3M-0007Od-O6; Tue, 10 Feb 2026 12:41:16 +0000
Received: by outflank-mailman (input) for mailman id 1226367;
 Tue, 10 Feb 2026 12:41: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=tYRw=AO=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpn3L-0007OX-EU
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 12:41:15 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c8c25483-067d-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 13:41:14 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CH5PR03MB7911.namprd03.prod.outlook.com (2603:10b6:610:216::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.17; Tue, 10 Feb
 2026 12:41:10 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 12:41:10 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8c25483-067d-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vBA3dAod8fysZ2ycGj6uAr3DSCW2N+wc2fMtHFf05mnBnSivb/ynSO7z7kn6q9Xs84gvieI170u3sdESr8M09wiBPtxjJESDV1zX46bWTDJlW053IwrjAXT2ACkKSsL4KEBHmZ9EwUA7uKcq5BXQjGr7rdYrBFEtNPbJL5YrS5tXEYIPXr61X4UDTiMukBJHHal6fBhBWyVX0Kmo92lu9e6NhGlJ4xWGLaGbIQHRdAO0fUFI57JHjZvCCxzr6zBzulN6VgbaZzzeAQSV+0AFRFsR+PS6HjuqlDsbtIS4vDZJNbMkfQjGdAqKTK5QGYSvbKZAVkfwW3QZcxrIIDcJsw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+c3Vo6K1nplnoVPLQhq8r6K31zwiP+dmss/NZ0iDDfc=;
 b=zO7rvjHFUJFnwiLNCQcql6YIHKLOl389Xo78tLOx5kQ3WVL8QNWPeOgPIs0GILsGpzBSMU14xMxZEVMghwK/PkuKGIgB6OtDU6EwzSUPRwK7E4ix+FVmDZRg7F9ClaHLxip2roEVJS1ZAIGnHN2WjaK3LZTmgjcKRXPcX1I57V/2IFhvMMwjecrVo5eIY2r+OVN0dX1mbTsVSbQ2upLjUYMw9hBqZoyFS2UPZefYPyj3/r6gp+Ulgy6sc0kMRQSdF4fDraGXmU9WXWLJt+GhCcMZMqIj69qXdXEaPj4BhyGRiAl1yEeJ4WFaI1eA6c/o9inWMHeYqT7Ewvt8pnarAw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+c3Vo6K1nplnoVPLQhq8r6K31zwiP+dmss/NZ0iDDfc=;
 b=Q9w6XCRY3Od5cs/PGAa9h6wIW3sSxcOgngSUuJ1AY/NIVuePFp+9nklMAsBu3jlbMTvmQ70W25uQE354d7HgdWsx7dCOfMlOBcBmjQ5+t95svHEoTa/RvyL/IPGmVjVvQpWNC1SdHgCOAm6N65AZq07xb00WePS1Mv2712b3BUE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e1080ebd-8e8a-4914-8979-95445e22e5c2@citrix.com>
Date: Tue, 10 Feb 2026 12:41:07 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH v3 19/22] x86/pv: Guest exception handling in FRED mode
To: Jan Beulich <jbeulich@suse.com>
References: <20251003225334.2123667-1-andrew.cooper3@citrix.com>
 <20251003225334.2123667-20-andrew.cooper3@citrix.com>
 <008cb741-26e2-4f28-9dd9-c88f9fbba743@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <008cb741-26e2-4f28-9dd9-c88f9fbba743@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0142.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:9f::34) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CH5PR03MB7911:EE_
X-MS-Office365-Filtering-Correlation-Id: c790bdb3-0ca4-4835-a112-08de68a1ab64
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b3lyQk9uYy9JTmtoeHRHdXdHclVPSHBhUDFZeWNJR25CbHAwajc0QWpQb2tD?=
 =?utf-8?B?TkpoWHdFKzBlWU5oZHRkbHorM2hza1c0ODYyaW5GZXB3dnRTdFZUYjlmU1V2?=
 =?utf-8?B?SmFtUTE4YS8yU3YxVm5WT00zSkxML201dEo3b2ZXTFl1SEFEdVcwOVI4RVNT?=
 =?utf-8?B?cGZDZUQ0RFdqMWh1SjFlcXVoQjdFUGFXQzhrY2lsSm5WWnJETWM0emU5YUN0?=
 =?utf-8?B?N1YyemhPMDdNcmt2L21hYllueThTYUh6dWhvclc2WmsvbjlYQjZUMDMxTXJP?=
 =?utf-8?B?elJZSDdjWVBBRStnMDhOTEwySDdnOTlMcmNxbWEzZXc4dHRmeDhRNkk0SnU1?=
 =?utf-8?B?RW1TYjJWZjRoUEw5RkZKMDZZV1JwVHg3S0lsOGdJd3dPc3k4QUpvZ2FrSW5B?=
 =?utf-8?B?OFQwd3BBNy9zTW9FVG9tTTVhdFdqSGJ3SU02UWdOcmtuK0xhTmRYVnlGTmIy?=
 =?utf-8?B?ampDTUtrSUVodzNMR3owNWdoVkh2bDNMbEJjbXRwYU1kc1B3VGg5VHZuYVls?=
 =?utf-8?B?a2dDWWxFYlJBc2ZCRnowbDM5TnQ3UVpxYzk4ajkrWjR5d2tMYkdtaWgzMTRM?=
 =?utf-8?B?dSswcDNFWFhhVTFGVHR4ZDlSUVZ5UTYwMXZYNEFCUlduVThCQnpsZWg4M25G?=
 =?utf-8?B?UUZDTjdoKzNXQjdqL0lOMm80R2JsTm9LbG5Bd01nTWttVEtibmd4S2VoNUFz?=
 =?utf-8?B?M3pFMSs4SVk2WTVFZE04K0dqbld6SDFaWXhid0ZFc3EwbXJ6bGdKZU1XNC9V?=
 =?utf-8?B?d01kZlNONi9kaDE2TWRXRU9BNUtESW92d1EwbXBSMjVoUHpVRDVEd00vUEp2?=
 =?utf-8?B?WGRMZDVNdmM3YWdLZ1YrSHRKMnJmRWhCZUo5N2syMWZLak5MRG1qNWEyVVhQ?=
 =?utf-8?B?Zkw1STNYSU9IbW4rTEczZUJkU2hiMWVoOU1XSEQ4TGRqQm94NG1pM2I4ZzRQ?=
 =?utf-8?B?ckxtaHVuN29PUmsvdFhOZC9hcW9hd096aG9FL0xub1BPeEhGOWF3UTdqTTlT?=
 =?utf-8?B?T21meXBFeFEySjlLYWhNSmsxNTZtNmVubmpvSC9UUnVzTkpmTCtTVlJrdFMr?=
 =?utf-8?B?ZldUWGZsNGNHRXJ3L1JFTlVpblVRcVk2d2d1aVYyL1pjOEtaOFBtY09mY3Fi?=
 =?utf-8?B?NGJUL01Yd1IwVWVHYnRwWDdKYTVhdm5mNnRqdEJQVUxiM2NmNnEvRnVwMXFO?=
 =?utf-8?B?STVmbTh0cW1wbTJIWUtnUnRKdTdkTGN4UGVhSlFLQ1ZSdUFOTXgyNDFzb3gx?=
 =?utf-8?B?OEhXNnJ4b0pyM3ZvQ3hBL01VaWt5LzFMS0lvT2lwekxOaDl2R1pHZjRSR0dE?=
 =?utf-8?B?R3ZJbHEwRGxGa2V6T2Y4VEI1NTNWRnZYbVliWCtuU1BCa1dBbXh6ME51dmxk?=
 =?utf-8?B?bnY3YXR3c1A0TjRNLytmUGNTT2Y3cDQ0czI1VDVnaXFiMFpsZlNDVnAwbEhs?=
 =?utf-8?B?U1M2SzF2N0lRdG8yem1tRTNzUCthZS9WaGxtZ3hRUUd3VXhQNDRaWVRORzdE?=
 =?utf-8?B?eUtuZEJvMHVjYXY1QXFyT0RuWXdBN21kbktVUC8vS3MwUiszNFpNMVczdDdl?=
 =?utf-8?B?czFmVVBmVDJaZCtiSHlmWVMwWmZuc1VEejhkYXpGdGxjcGx2WlRlQ3NzZjlP?=
 =?utf-8?B?V0FGTERWNlZpQTVqbVB6cUVuRHhXckZJMGpubFFiLzhrTGJvcVBNQXNKYmty?=
 =?utf-8?B?M3E1cUFTZ0tEWE9oNlJoVFMvSWxBMVdmU2VlMUxOOVdxeTNBc1lydW9LR2Q0?=
 =?utf-8?B?TWVnVmFqaUFGWmJ3RXRibTN0QXNoYTIrU25NWlk4a0VoZGp3R3JRNmUrNlFW?=
 =?utf-8?B?MTArVDR3TXZxSk1WREp0VkRoQjVVMWw0SEJReFRydHNEdHJOVTh6alNSd3M2?=
 =?utf-8?B?UVlCK1pJL2h6WEJ2Z2w3VHhIYVFxKzltVTZ0cDVtWm96cW9SWWFOdEJoOE42?=
 =?utf-8?B?Zm4xUnp2dHpxMFZJNnpKMlVvNGlVdUdIWUtrdHBLWEJtdUNmMmducGcwMlpS?=
 =?utf-8?B?bytrU0dIb2M0c1Rvb3Qvc3IvRDNoNjZ2TDFPRmZDQkpkaWpjR09nUFk0dGFJ?=
 =?utf-8?B?MUNFNFVYUDRTRisrM2JPTmQ5TmFQSmNCY3lUM2NESWx5cmxabUFTNFJvVGtn?=
 =?utf-8?Q?pTMU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WVFkTkZ4aXFla2FSeUtOWnQrTWQ3S1BIMkE1SGcrcUM3a0Q5Tm9tWVZJSVM2?=
 =?utf-8?B?RURjSUhVS1JLTUxSY1p4N0Vra1R1eEpsRTFlbUZIQVRwd1I5bllqVGt6L0tx?=
 =?utf-8?B?eUxXMi96OWEwUlhGQURkNkhsS2JwYzJjaDd4azl4UHJPaWhTK3JRNFl1TStG?=
 =?utf-8?B?WWNpY1NEVXppWWkzYUJGK1gyU1ZYQkpTVWJ2NkRuUzB4NE40Z3Y5aGQ2U0Qx?=
 =?utf-8?B?a3UwVTlpd2lmRWRpTm02RTJwcnAreDJISlRLZWVTQXo5SHRNNkV3cTltQzNi?=
 =?utf-8?B?bVZNUkxyMzhDbXI1RHEyZDArNTV1VDBwNHR3STFLZG55WUpYcEYrbkIxbEg0?=
 =?utf-8?B?V1YzbFdidXNJOUFnTVQ2NktUSTcvV0lwbEc5YUlUNzVEdGIxUkZPL2NKd3Qv?=
 =?utf-8?B?NzVtZWxhN0lPZWFERTcwNTREajlpcXRjcGNzVi9DNXdKeDB4UTkzMGtDUVN3?=
 =?utf-8?B?MjAvbXAwMFJITGcyNXNFNk1kN0svOURMOFd1Ymg3c3Nram5QVWpQbW5LTVdG?=
 =?utf-8?B?amVISUc3UnBmQ283aW1BK2lZb0ZURUl4YXVwQmI3TUhrbmJBemcwdWtkT1ZR?=
 =?utf-8?B?YUMzRmh1UlVxbFRBbEZiUWZuSm9WQkRCdDk3U1BxUUN6NFhYTlg5OFF1Zzd0?=
 =?utf-8?B?dXB6ektmK2l0dDBKS3dIQndrdk1TdW5tZHFSWC9WdEM2ZGJHaVlZMXd3QVpM?=
 =?utf-8?B?WmUzMWRsK3lkSGdIcktiTkpFeXBuOFpVWm1BanVTOVkxMkVWZjJZMXJaQytR?=
 =?utf-8?B?YkdVSlZ6ZlJackhucjZVYkxINHFtQ2RYOUlmSG5tRkJUSlN6cURRTjIrQmNm?=
 =?utf-8?B?KzBBMUMyd1B6VEdHOWdiYVBuRUd3THFySWhjRUd4Tm0xY0JzZkVldUpaVDNQ?=
 =?utf-8?B?dHZFbW9XWWczSGxia3htL3YrRDFpRXc2d1NLUVdKbm8yU2xwVDc3RkxJMTk3?=
 =?utf-8?B?VTVtL2VLUG9YK00vTE1QZnVtTGVjNHNUV0lvVStYMWFtT05CTXBEN3FrVG5s?=
 =?utf-8?B?VG1KcnJlcTl5S2NnYlJ6eTRFdG5sV01rc1BCWU9mVDFLMGhlbi81WkJhK2hu?=
 =?utf-8?B?UDIvc0lWbXhQejZOQmNNNUJxTmtkUVY0ZHRITE9oKytEalROZEhoSGN0dE1w?=
 =?utf-8?B?UHBKTWwyVlBwTTk4d1RVdWtEQ09BcDg4SEdsVFVWY0JGbng3RDNZblZJTHdB?=
 =?utf-8?B?N29XT3h4b2N4T2tKSW9SY3grMldRR1VRb085OHBWNzJkUDNmWVJnV1k3MG5t?=
 =?utf-8?B?bHM2WkYxTElobk95Zkg2TnJNVk5Kc1FOZ3VPQjVXUHRpdVdpckVSSFA5cjgx?=
 =?utf-8?B?Z0ltUkdzbUlaSHNSeHVUeEJxRUh3ZkU5bWhKbFNjcGk2Sm13VWJsTzlERmZs?=
 =?utf-8?B?dHBoZXNMUFRjNFFtZUloWWxsQ3RSNU9iMW9rQ2NWTk9Nb1NaMWw5VllzWGlm?=
 =?utf-8?B?UEtRdTlhNHV3N2I5T3FjT21JaHE4ai90UFRqWnFxd1dsa29UTUxrT24wdjlq?=
 =?utf-8?B?ZXZzbVVxYjYrTXlNWkJxTk1JZmNPM2pScVZHelJpOHh0RERNUk9kMlhrMXQ0?=
 =?utf-8?B?WXczY0wwcGZtNHZHbGpNckM4TnoyM2tNR3FJRlNqOUJBUU14WVVQY1FBMFA2?=
 =?utf-8?B?eGNpZEtrNkIrb1lhOXlCNmtnbUdqYVJzM1RnNmtRd0NWNzIxS3dqUUxtclpt?=
 =?utf-8?B?ZkxpMS8wOWc2MVZ6RUhCNEpjWnBKQ3BYbnNqODNsMS9SdzRpcWVoR3hnS1JX?=
 =?utf-8?B?eThLblJLMUtGTzZkd044SlpZZXdka1pxMElYVCtSWTdMSGI3eWhDQkJpZDBr?=
 =?utf-8?B?MVc0NWlyR3p5OXNtSWg1K0VGZVVJaWRoZys3cHg1eEgzYTIwVmtSdk9MWXVK?=
 =?utf-8?B?SWxLY1hhUUNYK3gya3VKajRWeGVXYW8yem83WmU2eFB4clkyQnp1ckxCaENL?=
 =?utf-8?B?aHdvZmZ3UC96WG5jOVBQdTNvUEtWT1lneGhDVDVlVEZMS3hCZGdvYUgwMjlV?=
 =?utf-8?B?cE5DNERsNVlYUGEvZVdyZ1ZQZzlNUnVYOGJTbW54V3pzYnkyd29hR0RMSW5L?=
 =?utf-8?B?RDRqcFdaQ0VlaUZBU1NqalZFclo1cXhidk8xNG5Ub1NYR29tMmFyYkpxU21H?=
 =?utf-8?B?dW41ajVzQnpjZjlYQnJBMlNneDI1NzdHVElPbTlFaXlqRGFOekZ1SFBxZHE0?=
 =?utf-8?B?OTBmZ1FPSktYN3dha2h6L1k3ejJqeVJoZDlLRU9BWnNNRzN5cUxLNFJoYjlu?=
 =?utf-8?B?QVYxOTlNelczcmduWVhHcUgwUUZZa09UTDArRHh6OXFycXBzN3QweHZpdWx1?=
 =?utf-8?B?K3pBZ21nSExvbGY1aVRDS09OWUUzYy9JNUpCMW1BeUh5WDNneDZBUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c790bdb3-0ca4-4835-a112-08de68a1ab64
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 12:41:10.8589
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1M+RE36fIr4fQvoOi6zIcn7xnnlWQZDagIxiasjAPOMTp06qUa/17GWhm2vA3K6MkB2r4SR9fVO9NSJxENBOou3CuOuHJtLPx6DDPXlxkP4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7911

On 08/10/2025 1:28 pm, Jan Beulich wrote:
> On 04.10.2025 00:53, Andrew Cooper wrote:
>> 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>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
> Nevertheless ...
>
>> --- a/xen/arch/x86/traps.c
>> +++ b/xen/arch/x86/traps.c
>> @@ -2266,9 +2266,82 @@ 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.  PV 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_CP:  do_entry_CP(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;
>>  
>> +        default:
>> +            goto fatal;
>> +        }
>> +        break;
>> +
>> +    default:
>> +        goto fatal;
>> +    }
>> +
>> +    return;
>> +
>> + fatal:
>>      fatal_trap(regs, false);
>>  }
> ... I'm still somewhat bothered by this almost entirely duplicating the
> other entry function, i.e. I continue to wonder if we wouldn't be better
> off by eliminating that duplication (say by way of an always_inline
> helper with a suitable extra parameter).

They are not sufficiently similar.

By the end of this series alone, they differ by IS_ENABLED(CONFIG_PV),
the condition for enabling local interrupts, the ERETU fixup, and the
SYSCALL/SYSENTER handling.

NMI handling is still an open question (deferred for now, because it
functions, albeit inefficiently) and adds a further difference.


>
>> --- 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
> I also continue to wonder if we wouldn't do a tiny bit better by using
>
>         ALTERNATIVE "mov VCPU_arch_msrs(%rbx), %rdx", \
>                     "jmp eretu_exit_to_guest", \
>                     X86_FEATURE_XEN_FRED
>
> Or by converting the few jumps to restore_all_guest to alternatives
> (duplicating the ASSERT_INTERRUPTS_DISABLED there).

I'm quite firmly against this.

Sure, we could save a 5 byte nop, but the cost of doing that is merging
two unrelated pieces of logic in a construct explicitly to signal two
related things.

The added complexity to follow the logic is not worth the 5 byte nop saving.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 12:58:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 12:58:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226380.1532906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpnJV-0000su-9W; Tue, 10 Feb 2026 12:57:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226380.1532906; Tue, 10 Feb 2026 12:57: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 1vpnJV-0000sn-6h; Tue, 10 Feb 2026 12:57:57 +0000
Received: by outflank-mailman (input) for mailman id 1226380;
 Tue, 10 Feb 2026 12:57: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=1KCy=AO=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpnJT-0000sg-6G
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 12:57:55 +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 1cb72d30-0680-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 13:57:53 +0100 (CET)
Received: from DUZPR01CA0170.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4b3::28) by AS8PR08MB9412.eurprd08.prod.outlook.com
 (2603:10a6:20b:5ab::11) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 12:57:48 +0000
Received: from DB1PEPF000509F3.eurprd02.prod.outlook.com
 (2603:10a6:10:4b3:cafe::b0) by DUZPR01CA0170.outlook.office365.com
 (2603:10a6:10:4b3::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 12:57:48 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509F3.mail.protection.outlook.com (10.167.242.149) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Tue, 10 Feb 2026 12:57:47 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAWPR08MB10974.eurprd08.prod.outlook.com (2603:10a6:102:46b::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Tue, 10 Feb
 2026 12:56:43 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 12:56: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: 1cb72d30-0680-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=V8+B5pjna9zhvmexlMEA58W95SNPoVa+FrzaKpta38WAl/+Wsp1bPMPANdEC6maFbdor/JkiKqonSsGeXz0eCEN8d0ZU5mC/o+tDgXNy1lOu2CeTUeEbWrpO9sShzai2ufbJQJAxBt1eQu3TNgGQV2WCh9oyh/FUqithIlR6macEG4DB9ZXsIXV/WWCHDiDxOMRqcvcnUaJ4y3BFlK34Lmu/JyXiCqbYGUMyNXvWrt0mCJFzeUXpJ1ZkyLf/vb23sDGceYHqDUlybk80SMn/UVpd2PKPDx4CTjIW/KT/ug7ZmJMjNmNCLhJsxqdROY1wYE5HkjHuXwwY5aAgEZ6Ihw==
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=LJnx4XfNJHMESMghr1QwrT2awZcglI5QGqVQ9GacbY0=;
 b=xviYF4aWiXJxh0CBLzMD8C6ehnfBsYowGdl6hP9QkC3LYv3/tHvEZGv9MzUIMyVSA6c8VeAOR9LxGl6zmc9POiXHxBaLvJtAQ2PMkPd5Vw4gobOkDKoUPgiUBGD9/k2OY7vit5xSLc1eBbWlsoj4fifyHZZTBWsFVH39vIhxqCFU1aLKhIQ+G3YyMH/PYxz6CSu+mwofiqkupBRDImMeCO1OLLLlQZVBEd/2PyqTTBUdlBbk9QWrSjh/D+aI6MTxKbHKIT9SvBBoCqNo7X4KdToB+7j1bxWrW/ClrqEPrGCWhzl/c5Ioi1rKL09gC1hq0sERa0JYF8vOy09I5NPJRQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LJnx4XfNJHMESMghr1QwrT2awZcglI5QGqVQ9GacbY0=;
 b=BjHjm7FxtUyOukN+m09RdJPpkaxHBAjCJUSkYtW/ly0WpqwY5ze/ipRXNftDg9FwPQDBEktbQ46QC4RLgyDJP5A2DKFRWrHZTWOvsRQ93NqHGOxcjjjFgbSvdP5YoYATBaqYIS3jfgfC7C4md8tbqzxQFPvaoyXShzyDl1EKWU0=
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=PWF0TcSima+9URiVJCkcqZV0Mvj1MzN7wmpbuc4xUl4MJI0ET1wwgfsT7ONYY6bCVwKHq32nH8UhyxS1fbIDgy/u3UwSCmzmcgJa52pwA1X6tvh8vE/eOlNHnmE5Tf1EU2boMPFoiz2Z2pRY1aQCLOxonmLg+ouhlTShwzK1QjKrpAQzsX0OPFp/DRUV7HejQ39Htuw4bnO3FJT1n9z69LVGnDJAJvK8mS28lY1ET0RD+lT4F62MSu965pvQpZNa8NO767i3u9AskzbhLi+z/b5zikBCogHvYlbOPquQfam4LYDpXOLpT2XcZi2ezKVe8uh8vwHlTJTYmT4aow8DSA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=LJnx4XfNJHMESMghr1QwrT2awZcglI5QGqVQ9GacbY0=;
 b=JWthQzKOEsh5QHNHbfkl0+NBmPT7bcs4p1gTeDrehXimM7aPN9cWC3voX61UokL+LyFtuJGGEhJmi9lHKGH0vx9KZVb8jSBVD908n/cZiUgdhcXnJ3YFvPKwvalUR85xe/goaeMol3vPjAoC70U1GKpoPirIOJXybjNcitoZ3DhCqSVoiwD7a94DV5cY7C1SoUpzMIvL9Av27odKmFY3wCZs3xsOGAgMV4lT0UggfS4jqOCdvZ9LKQCOK1+5GdDewI2LrNwFERecrQr9qyp5A5o/ui3cP4x4MLHsppoRqVACMdH/w+a/z/DnGrpjXmsCWN2Yc6YT9n5sOh2sAmPX/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass
 header.d=arm.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=LJnx4XfNJHMESMghr1QwrT2awZcglI5QGqVQ9GacbY0=;
 b=BjHjm7FxtUyOukN+m09RdJPpkaxHBAjCJUSkYtW/ly0WpqwY5ze/ipRXNftDg9FwPQDBEktbQ46QC4RLgyDJP5A2DKFRWrHZTWOvsRQ93NqHGOxcjjjFgbSvdP5YoYATBaqYIS3jfgfC7C4md8tbqzxQFPvaoyXShzyDl1EKWU0=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.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>, Stefano
 Stabellini <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v5] xen: Add Darwin.mk
Thread-Topic: [PATCH v5] xen: Add Darwin.mk
Thread-Index: AQHcmbF131JHt0VrQEG2yzDmCYz1i7V7wbUAgAAPU4CAABTygA==
Date: Tue, 10 Feb 2026 12:56:43 +0000
Message-ID: <02BCBE82-C7F1-4631-AC9E-4A4B2E6065A3@arm.com>
References:
 <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <d1baa448-962c-4c2a-9a79-cf334b860450@suse.com> <aYsZb529xJvYSSRo@Mac.lan>
In-Reply-To: <aYsZb529xJvYSSRo@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAWPR08MB10974:EE_|DB1PEPF000509F3:EE_|AS8PR08MB9412:EE_
X-MS-Office365-Filtering-Correlation-Id: 5cc46103-7740-44a4-ea25-08de68a3fdd9
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?TXpjWUtyNDljRk9xWTB3VGNPY0FVOUdUTnFabmJqVWJBb3VFTUFueUFKMndI?=
 =?utf-8?B?N3YxNFNOMTB5eS84MEx3RTJKY0J5MTRmZnkwSlcyR0lEODdlNGR2WTIyNDNG?=
 =?utf-8?B?MWlUd0JLbHhvYkI1czBOVEZNYk1WRFFDWGNTVSt3SlJYNGVNZ2tsUjVyRFkv?=
 =?utf-8?B?ajI0WkpnbHgxWTBvSFg2V3ZjNTJibGtOeHZyUTFrT0phRDhMUXVBc1pKNEpl?=
 =?utf-8?B?YVB6YmlrUHY5UHArSkVMNTBoMk1DZmJ0cEZMMk1uTG1tYk1VUnZvQ3JUWFpk?=
 =?utf-8?B?bFJMT1JIUDd2S2J1VlZWTDNMTE4rTE56QWNzRDU0SEx0YjVVd1htRlNKdjNp?=
 =?utf-8?B?YmlHQjVyM2lLblV4bWFOUHFDNkJMdmpPSEVmWjZpb3MvT0NTaGYrZEh1SnNk?=
 =?utf-8?B?ZTk4eG5tUG15cCtSVGE1VHplMWRvZXdWcnVMbElhQUF6dlNGenlpdW5FNHp2?=
 =?utf-8?B?NUI3aUMveVRLOEJWUlVGc1kvK3VkVmZYKyt2RzhuTFYwZ2xTVENGWHBUbDh6?=
 =?utf-8?B?Smk4SzFwWWpDYm9sOGtjc3BnSTFiS2ZkK2pmUGY1UUdNYUtmRVJZWmVOZERr?=
 =?utf-8?B?UkdzR0hnM2FXTWFKeDNURWRjT0d5b1JRTktDQ0daYllVdzBZYkE0ZlVPd3hq?=
 =?utf-8?B?eXZHUVVwdHNMUHhuVmxKdGxOV1VWVVM3MXRLNC9ld3lieTM2aEdvMUNxTHhK?=
 =?utf-8?B?OVlTQWlOdE5JcWU1a3VRUnp1di9NNTdzVTJ0K01lRkV3ZzhROFB3cXBES1NO?=
 =?utf-8?B?WXJIcG5SR2ZRQjh0dmRrcDJaaGs5M0lvb1NHa3FSZWppTVE2dVlaKzVJNmNo?=
 =?utf-8?B?WHM4RlFyZGR1ZFptODlpbE1tbWVNb09wQWRtK0pBMTluLzhYK0xoWVh5azdF?=
 =?utf-8?B?OHVQZTc0bnlMR2NwdUNqSm5YdFY1Y29RQ3QwaWhpRjNhRnVKWmhJN0tpOHNa?=
 =?utf-8?B?TSt1VFl1OUJqTk1jSE03RzBZY1EzU2VhbURYSFl5WkthZklMNDlJMGNZa0Qy?=
 =?utf-8?B?YWdaUjRDWUhxLzl3T01sWU4vTk1GRFBBMERuMVRvaFNib3BRcHAyeWFPS3dt?=
 =?utf-8?B?b2EyeUFuWGl6QklGWHViYjM4UUZwK2tGU2lmbzVJcU9RMnRRS0NIWEsvZncz?=
 =?utf-8?B?MXZzL1RoU016eXZOZzdTNVdpeWVaNHZ3T1JuM1h4Q1hLdlJGYWtsTU8rdDJF?=
 =?utf-8?B?bnpleFpmVmM3dGhkdnVzNU5CaGtuMnkveFdRTkQ0MEpEQW1mZG95cUhmS3N5?=
 =?utf-8?B?c3pJMmdHWGxBUVJIcTJjamhENUU0V2RuK2hlSmhPQmVLWktkcG9PNVFMbTFy?=
 =?utf-8?B?N3RPZFJKMVBUdDJDQ3htUXg4UEhsaGhwKzBGNTVjZVJhcHk5cnNJMk95dVcx?=
 =?utf-8?B?R2oyRkFzcVl2aDV4QUJwUnhGRUczSVJETU5OL1duZzQ5aXdHSUxzNnpRdWJQ?=
 =?utf-8?B?d2xvMGR0aGVNeGhXOWplWnZhNlhYTVV0THIwbTNBenFSQnpiektIWmtjVVRE?=
 =?utf-8?B?c1JHZ3hnaks2MjFlMWg0MW1ldFBsVDBYUjNSMlRSQlM0WUh2N2xXcFhxUkxM?=
 =?utf-8?B?MStaRUVVdnVZRWdZc0NIZ2hxc0NqUk96eTJ1NlFESEJNR055eGV2OVNxUlQr?=
 =?utf-8?B?VjVpZFdHS25BZDhUR0F3TVczRmQxU2J1TlExUi8vUXNIbXMzbjF2dzN4Z0RM?=
 =?utf-8?B?OHNxN1dGcGhNSnowSklDUWpFeFRIY0FsSDNLWWg1MUJDSzIyRVZxQnVJdzZm?=
 =?utf-8?B?SGFkMVNTN05VUUpZbDNINndlblp5ZXY2Z1hHc1FPNHhmRjlpTU5abFNieVJN?=
 =?utf-8?B?UDREWUV5WVp2eFZ3OXlsQlA4bENMRUN3M2RNL0ordnVyeU42Y21PNUhFNlJ6?=
 =?utf-8?B?TkppUkR4YTVaVnlmRXRaSlRURGZ5SCtHSDhySUhRQThsNjBPRTA1Z2N2RWpj?=
 =?utf-8?B?QzJDUlgyMjdtVUtDUEFMRHhHQ1E1M0dTbVFsNkgvN0J6NnJETnpqazBldGN1?=
 =?utf-8?B?c1JhT0l5c1lzK3RUMUxtQmtWQlpFUy9GdnJSZ3p4SmZxUFVpQXZRYlVmUUMx?=
 =?utf-8?B?VFhnTnhML3U3Wldjb3F6Ri9PaUVSdWdyNmFhdDhxQzV4cjc4RTJ3bFY3ZFl0?=
 =?utf-8?B?dnBicjh0SWFic3VmUk1UakJ3cmdTRGIvRVpzSERrNzcyQ3NkWUNYOUsrVlhM?=
 =?utf-8?Q?5cyNnNJk6TnpfwFzhb5Z7jw=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <C848CD37BA1F80468081B0376AD598BA@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10974
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509F3.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b36b0046-c3c5-4ff9-5be8-08de68a3d772
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|35042699022|14060799003|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?b3F6eENWZnphMXpKU1AxWEtZU0lsRkZJWVlpejZMVGNUbTdRcVF6cGI0UVpS?=
 =?utf-8?B?MzZ4WlNEaDlQVm4zQnl5eHdHUmc1aTNTeDU4VWJidzduZkZMQlJnTlEvd09y?=
 =?utf-8?B?c3lXQnU2Q3dZaWI4N3R5WTZKK0FmNitGWncyZUV4NUVwZzB0OUxsZytGa1Bi?=
 =?utf-8?B?QTk5ZUpNK2dtRjRQQ1pKMjhQRWgzOEkwek0xWFVTMkxMVFhMb090MHRFdkRM?=
 =?utf-8?B?d0o5OEczT3o4cysrUlJ0c3RBU3NLajJ0dEFhVFpLVUlDK0FuWi9heVpKUEto?=
 =?utf-8?B?TjhiSVRWeFhkc21tR2J0TTcrUzFtNERBTzVRbGJkQjYwNXh4aGY5S3VlNFRD?=
 =?utf-8?B?a2N1bUVCZ0hlYWdrZkhOd1UyUzBWNis1Wmh4bDJxSnlyMUtodWp3ODM5elpW?=
 =?utf-8?B?RDNubFdPZWFzS284dDd1RThkbzhad3BVVHhWZm5PMW1jZFBEeElBYm5rTFV2?=
 =?utf-8?B?c01KZE91L0x4UnlPcTNYMFhheDA3Z1A3aEpCR0pscWN5dFJVR2VDRmNubmMw?=
 =?utf-8?B?V0JwY2c4VnFRNkVVenFNSkpXeVhBdkw0OVhhQW1sczAxMXQ5OEtMT0l6QlM0?=
 =?utf-8?B?TEZabS9tWXY4bnVTRzNmT0xrTERpRWpIMjdnNE1tNFVLbmhRQm9YQ256MEVC?=
 =?utf-8?B?cEFuQndNeFJLdno4TGtCS3lOWXVNSUxOM2dKQjlpNHAyeFIwNjQ1U2YyY05U?=
 =?utf-8?B?TkR2eWdPZGx2QVovV051WWNhVzNRVndkM3MwQ1pITzQwdUVKNnhNWlhzSjVO?=
 =?utf-8?B?U2VaczIrRkVDM0VNcFh5c2xZVzFqSWI5ZjNqTHM5S3U1dFVVSnJadXgxNHRF?=
 =?utf-8?B?Z0pMNms3QzJEeEVVY0d5eWVUQ0xITkdEblB3Z0FmTGlGbU12UFBwaUJhZy9O?=
 =?utf-8?B?Mk9nMmxhcTNYSU9QOENIeSs1TnBUYWg0TjFieVdjTFV1aVZYaHZBRTVLRnpV?=
 =?utf-8?B?RXFrSzZPVENUVUVEbXBlUGIwbXdiNGRYamxQUUNmUFZGN3NKVVRpODE5ZnF0?=
 =?utf-8?B?L1NOUFB1bzFmZGhpc2NkMm8xU3NsdXNoeUZxYWcwWXFVc1oxUHBxSmYyaE41?=
 =?utf-8?B?Njc0cmwxYVlmbUtFUG5HRjdRdUNKc09xaElkSGwrcXNuSTRzazczdFl2QlNs?=
 =?utf-8?B?eEJQNDcyNGZLMHA1RU15U01XT1lrMStxYlNRZEtmMFd5bHRvOENnQ2xzVkJu?=
 =?utf-8?B?blpwaVdVYmQ2NGFabjBQcWEwVUVMU3QxbEJ1ZXhxYVgvZWJGa3BEM2tnWGE0?=
 =?utf-8?B?alJYanhXdllYQm1mUFlRa09UU29ycWxmRkVGaUhuK3h5KzE2WFVuU2xMT0lZ?=
 =?utf-8?B?QmVBN2l6bVc0KzJMclZJVzBtdk1VVXlwMHVFMktRL1BwSlVLQTVFa1lRQ25R?=
 =?utf-8?B?SGRwdHhkclJhdU5jNHIwTWNpTk1pRVFPdDdnNXlSZlU2aVVCenVYSW15Mi9i?=
 =?utf-8?B?QmREbjArTHBYQzZRWVFJYUZveitodG1SdGxMYTkybldyVzVnSVRQSVVKZXl3?=
 =?utf-8?B?OFovVE5TTjlWeE9TUFh5UTNPdmNEdXBITk02TGdWRHJuYW1lMjZJWUF6ZEZJ?=
 =?utf-8?B?eE1MU3U5TlVteDY0NnF6dmljMnE3ZTZ1VG1QT3pFRTdEWm9GSDJITTJGUlRo?=
 =?utf-8?B?VitDdzNEeE5uZFRsSUdQVm05TWtFVHdyRENSMUcwRER2RW0rMDM0Y1k3Z1Nz?=
 =?utf-8?B?OUpqelJ3a2liZWQrWXFFemRFZi9KSzJCWE85NjM0WEVYVjB3c016UjAxNVkz?=
 =?utf-8?B?ZU5nMEhSd1JESkxwVXA4RTlHQXRFOWY4OCtXTDhTUmk4S2kyM25UOEpramw5?=
 =?utf-8?B?NDB1STQxOWt2aWdVbnd1YWVTQXhaN0poUVJOYzJaQUkwbERFUm9KaExILzBF?=
 =?utf-8?B?WU82UlBJWUxUaXBaNXJZQU05RXhMUHJxZHdiRVhuNFU2ajJXaWZpTlMvRnJi?=
 =?utf-8?B?VlNmUkwyc3dWeWF0WnEwQzhsUkJzSlZVVitXMDFja2l1NVYzdTErTjY4UUt5?=
 =?utf-8?B?T3psLzZuVVQ4NHA4NTk2OFRiYTRPaHB4ZGdXOHQ5NnJHT2NLTFU2MjlabTdU?=
 =?utf-8?B?YnphNENLeWF4Tjk5cHRRSVRUajRhV2YyRnJ4dzU1YTlpSVBlSDRBQnBJeEVJ?=
 =?utf-8?B?YUlpeWVjWXFsbTJTZW1tNm1hdXkwOGNJTnhwZEhWa0lDRFYvYVNiS254SEJU?=
 =?utf-8?B?b0Y2ZU8rNUpxekZoSkt0VzVuMXJlVVpXVmZMTGRjT2E1NzhsUUUvUlJteE90?=
 =?utf-8?B?dzNXNGRkOUswaU44cWZPOGhwR2tRPT0=?=
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)(36860700013)(35042699022)(14060799003)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3c+ub8yQgXPfvi8eJsYsIiiRgWyuhW38KhljoOYqp7HF+EpkmDsYK7/JMQSmX7+sA56FS/KGEIpob1bYT1GZxbshAjseFKWKBkbX/MtS+zhZxABlO7T+AL4Gqe2DDaL4x7PqMyLXnqTmkYzJm+t32vs4LWxbKCfM+ds+JpiUYR0eI1XU+jGdnVz1kk3ByONihrmYdIBBEfDoIfoIm3fE2fLszuQ/ivHCpZ7m47lphCF/s2hwgp/Uvai7y20amURhNum0F+/ML2o0vSigXnoCmQb5xMBQo+gLUnTdalJwYuJNj0jYlhGx/mfL2apuwJKL40yqjMDl4e7o90WUj8eDgvW4DkFqsPVxTr5IAUKxlPJj8z969v4gAHFayIDCvzgDNP3bPLa0ChecTJ4V6F5SdC9S9BvUcok7ahbs+k1nr2KJ8EteNygET+RT+BgRIEbr
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 12:57:47.9917
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5cc46103-7740-44a4-ea25-08de68a3fdd9
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:
	DB1PEPF000509F3.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9412

SGkgUm9nZXIsDQoNCj4gT24gMTAgRmViIDIwMjYsIGF0IDEyOjQxLCBSb2dlciBQYXUgTW9ubsOp
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiBUdWUsIEZlYiAxMCwgMjAy
NiBhdCAxMTo0Njo0NEFNICswMTAwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4+IE9uIDA5LjAyLjIw
MjYgMTE6NDYsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+
ICsrKyBiL2NvbmZpZy9EYXJ3aW4ubWsNCj4+PiBAQCAtMCwwICsxLDYgQEANCj4+PiArIyBVc2Ug
R05VIHRvb2wgZGVmaW5pdGlvbnMgYXMgdGhlIHRvb2xzIHdlIGFyZSB1c2luZyBhcmUgZWl0aGVy
IEdOVSBjb21wYXRpYmxlDQo+Pj4gKyMgb3Igd2Ugb25seSB1c2UgZmVhdHVyZXMgd2hpY2ggYXJl
IHN1cHBvcnRlZCBvbiBNYWMgT1MuDQo+Pj4gK2luY2x1ZGUgJChYRU5fUk9PVCkvY29uZmlnL1N0
ZEdOVS5taw0KPj4+ICsNCj4+PiArIyBDcm9zcyBjb21waWxlIG9uIE1hYyBPUywgb25seSBoeXBl
cnZpc29yIGJ1aWxkIGhhcyBiZWVuIHRlc3RlZCwgbm8gdG9vbHMNCj4+PiArWEVOX0NPTVBJTEVf
QVJDSCA9IHVua25vdw0KPj4gDQo+PiBXaGlsZSBlZGl0aW5nIGluIHRoZSBBQkkgYXNwZWN0LCBp
dCBvY2N1cnJlZCB0byBtZSB0byBjaGVjayB3aGF0IEFwcGxlIGhhcw0KPj4gdG8gc2F5IHJlZ2Fy
ZGluZyB0aGVpciBBQkkuIEZvciBib3RoIGFhcmNoNjQgYW5kIHg4Ni02NCB0aGV5IHNheSB0aGV5
IHVzZQ0KPj4gdGhlIHN0YW5kYXJkIEFCSSB3aXRoIHNvbWUgbW9kaWZpY2F0aW9ucy4gV2UgbWF5
IHdhbnQgdG8gZXZhbHVhdGUgd2hldGhlcg0KPj4gdGhvc2UgbW9kaWZpY2F0aW9ucyBhcmUgYWN0
dWFsbHkgY29tcGF0aWJsZSB3aXRoIHdoYXQgd2UgbmVlZC4NCj4+IA0KPj4gVGFsa2luZyBvZiB4
ODYtNjQ6IEhhcyBidWlsZGluZyBvbiBhbiB4ODYgTWFjIGJlZW4gdGVzdGVkIGFzIHdlbGw/DQo+
PiBFc3BlY2lhbGx5IGlmIHRoYXQgZG9lc24ndCB3b3JrLCBpdCBtYXkgd2FudCBtZW50aW9uaW5n
Lg0KPiANCj4gSSBubyBsb25nZXIgaGF2ZSBhY2Nlc3MgdG8gYW4geDg2IE1hYywgdGhvc2UgYXJl
IGFib3V0IHRvIGRpc2FwcGVhci4NCj4gDQo+IEZXSVcsIEkgYnVpbGQgeDg2IG9uIE1hYyB1c2lu
ZyB0aGUgRG9ja2VyIGNvbnRhaW5lcnMsIGp1c3QgYXMgdGhlIENJDQo+IGRvZXMuICBPU1ggRG9j
a2VyIGFsbG93cyBydW5uaW5nIHg4NiBjb250YWluZXJzIG9uIGFybTY0IHVzaW5nIHRoZQ0KPiAi
Um9zZXR0YSAyIiBiaW5hcnkgdHJhbnNsYXRpb24gbGF5ZXIuDQo+IA0KPiBJJ3ZlIGF0dGVtcHRl
ZCBkb2luZyBhIGNyb3NzLWJ1aWxkIGZyb20gYW4gYXJtNjQgTWFjIHVzaW5nIHRoZSB4ODYtZWxm
DQo+IHRvb2xjaGFpbiwgYnV0IGdvdCB0aGUgZm9sbG93aW5nIGVycm9yOg0KPiANCj4gJSBtYWtl
IFhFTl9UQVJHRVRfQVJDSD14ODZfNjQgQ1JPU1NfQ09NUElMRT14ODZfNjQtZWxmLSBIT1NUQ0M9
Z2NjIC1DIHhlbiBWPTENCj4gWy4uLl0NCj4gL0xpYnJhcnkvRGV2ZWxvcGVyL0NvbW1hbmRMaW5l
VG9vbHMvdXNyL2Jpbi9tYWtlIC1mIC4vUnVsZXMubWsgb2JqPWNvbW1vbiBuZWVkLWJ1aWx0aW49
MQ0KPiAgeDg2XzY0LWVsZi1nY2MgLU1NRCAtTVAgLU1GIGNvbW1vbi8uYml0bWFwLm8uZCAtbTY0
IC1EQlVJTERfSUQgLWZuby1zdHJpY3QtYWxpYXNpbmcgLXN0ZD1nbnU5OSAtV2FsbCAtV3N0cmlj
dC1wcm90b3R5cGVzIC1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgLVduby11bnVzZWQtbG9j
YWwtdHlwZWRlZnMgICAtTzEgLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLW5vc3RkaW5jIC1mbm8t
YnVpbHRpbiAtZm5vLWNvbW1vbiAtZnplcm8taW5pdC1wYWRkaW5nLWJpdHM9YWxsIC1XZXJyb3Ig
LVdyZWR1bmRhbnQtZGVjbHMgLVd3cml0ZS1zdHJpbmdzIC1Xbm8tcG9pbnRlci1hcml0aCAtV2Rl
Y2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAtV3VuaW5pdGlhbGl6ZWQgLVd2bGEgLVdmbGV4LWFy
cmF5LW1lbWJlci1ub3QtYXQtZW5kIC1XaW5pdC1zZWxmIC1waXBlIC1EX19YRU5fXyAtaW5jbHVk
ZSAuL2luY2x1ZGUveGVuL2NvbmZpZy5oIC1XYSwtLXN0cmlwLWxvY2FsLWFic29sdXRlIC1mZnVu
Y3Rpb24tc2VjdGlvbnMgLWZkYXRhLXNlY3Rpb25zIC1nIC1tYWxpZ24tZGF0YT1hYmkgLW1pbmRp
cmVjdC1icmFuY2g9dGh1bmstZXh0ZXJuIC1taW5kaXJlY3QtYnJhbmNoLXJlZ2lzdGVyIC1mbm8t
anVtcC10YWJsZXMgLW1mdW5jdGlvbi1yZXR1cm49dGh1bmstZXh0ZXJuIC1XYSwtbXg4Ni11c2Vk
LW5vdGU9bm8gIC1mbm8tc3RhY2stcHJvdGVjdG9yIC1JLi9pbmNsdWRlIC1JLi9hcmNoL3g4Ni9p
bmNsdWRlIC1JLi9hcmNoL3g4Ni9pbmNsdWRlL2dlbmVyYXRlZCAtRFhFTl9JTUdfT0ZGU0VUPTB4
MjAwMDAwIC1tc29mdC1mbG9hdCAtZm5vLXBpZSAtZm5vLWV4Y2VwdGlvbnMgLWZuby1hc3luY2hy
b25vdXMtdW53aW5kLXRhYmxlcyAtV25lc3RlZC1leHRlcm5zIC1ESEFWRV9BU19RVU9URURfU1lN
IC1ESEFWRV9BU19NT1ZESVIgLURIQVZFX0FTX0VOUUNNRCAtREhBVkVfQVNfTk9QU19ESVJFQ1RJ
VkUgLW1uby1yZWQtem9uZSAtZnBpYyAtbW5vLW1teCAtbW5vLXNzZSAtbXNraXAtcmF4LXNldHVw
IC1mY2YtcHJvdGVjdGlvbj1icmFuY2ggLW1tYW51YWwtZW5kYnIgLWZuby1qdW1wLXRhYmxlcyAt
bW1lbWNweS1zdHJhdGVneT11bnJvbGxlZF9sb29wOjE2Om5vYWxpZ24sbGliY2FsbDotMTpub2Fs
aWduIC1tbWVtc2V0LXN0cmF0ZWd5PXVucm9sbGVkX2xvb3A6MTY6bm9hbGlnbixsaWJjYWxsOi0x
Om5vYWxpZ24gLVdhLC1JLi9pbmNsdWRlIC1XYSwtSS4vaW5jbHVkZSAnLURfX09CSkVDVF9MQUJF
TF9fPWNvbW1vbi9iaXRtYXAubycgLW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9MyAgIC1jIGNv
bW1vbi9iaXRtYXAuYyAtbyBjb21tb24vLmJpdG1hcC5vLnRtcCAtTVEgY29tbW9uL2JpdG1hcC5v
DQo+IC4vYXJjaC94ODYvaW5jbHVkZS9hc20vYml0b3BzLmg6IEFzc2VtYmxlciBtZXNzYWdlczoN
Cj4gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaDo1MTE6IEVycm9yOiBmb3VuZCAnDQo+
ICcsIGV4cGVjdGVkOiAnKScNCj4gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaDo1MTE6
IEVycm9yOiBmb3VuZCAnDQo+ICcsIGV4cGVjdGVkOiAnKScNCj4gLi9hcmNoL3g4Ni9pbmNsdWRl
L2FzbS9iaXRvcHMuaDo1MTE6IEVycm9yOiBmb3VuZCAnDQo+ICcsIGV4cGVjdGVkOiAnKScNCj4g
Li9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9iaXRvcHMuaDo1MTE6IEVycm9yOiBmb3VuZCAnDQo+ICcs
IGV4cGVjdGVkOiAnKScNCj4gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMuaDoyMDogRXJy
b3I6IGZvdW5kICcNCj4gJywgZXhwZWN0ZWQ6ICcpJw0KPiAuL2FyY2gveDg2L2luY2x1ZGUvYXNt
L25vc3BlYy5oOjIwOiBFcnJvcjogZm91bmQgJw0KPiAnLCBleHBlY3RlZDogJyknDQo+IC4vYXJj
aC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLmg6MjE6IEVycm9yOiBhbHRlcm5hdGl2ZSBmZWF0dXJl
IG91dHNpZGUgb2YgZmVhdHVyZXNldCByYW5nZQ0KPiAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25v
c3BlYy5oOjIwOiBFcnJvcjogZm91bmQgJw0KPiAnLCBleHBlY3RlZDogJyknDQo+IC4vYXJjaC94
ODYvaW5jbHVkZS9hc20vbm9zcGVjLmg6MjA6IEVycm9yOiBmb3VuZCAnDQo+ICcsIGV4cGVjdGVk
OiAnKScNCj4gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMuaDoyMTogRXJyb3I6IGFsdGVy
bmF0aXZlIGZlYXR1cmUgb3V0c2lkZSBvZiBmZWF0dXJlc2V0IHJhbmdlDQo+IC4vYXJjaC94ODYv
aW5jbHVkZS9hc20vbm9zcGVjLmg6Mjg6IEVycm9yOiBmb3VuZCAnDQo+ICcsIGV4cGVjdGVkOiAn
KScNCj4gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMuaDoyODogRXJyb3I6IGZvdW5kICcN
Cj4gJywgZXhwZWN0ZWQ6ICcpJw0KPiAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy5oOjI5
OiBFcnJvcjogYWx0ZXJuYXRpdmUgZmVhdHVyZSBvdXRzaWRlIG9mIGZlYXR1cmVzZXQgcmFuZ2UN
Cj4gLi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMuaDoyODogRXJyb3I6IGZvdW5kICcNCj4g
JywgZXhwZWN0ZWQ6ICcpJw0KPiAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy5oOjI4OiBF
cnJvcjogZm91bmQgJw0KPiAnLCBleHBlY3RlZDogJyknDQo+IC4vYXJjaC94ODYvaW5jbHVkZS9h
c20vbm9zcGVjLmg6Mjk6IEVycm9yOiBhbHRlcm5hdGl2ZSBmZWF0dXJlIG91dHNpZGUgb2YgZmVh
dHVyZXNldCByYW5nZQ0KPiAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy5oOjI4OiBFcnJv
cjogZm91bmQgJw0KPiAnLCBleHBlY3RlZDogJyknDQo+IC4vYXJjaC94ODYvaW5jbHVkZS9hc20v
bm9zcGVjLmg6Mjg6IEVycm9yOiBmb3VuZCAnDQo+ICcsIGV4cGVjdGVkOiAnKScNCj4gLi9hcmNo
L3g4Ni9pbmNsdWRlL2FzbS9ub3NwZWMuaDoyOTogRXJyb3I6IGFsdGVybmF0aXZlIGZlYXR1cmUg
b3V0c2lkZSBvZiBmZWF0dXJlc2V0IHJhbmdlDQo+IC4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9z
cGVjLmg6MjA6IEVycm9yOiBmb3VuZCAnDQo+ICcsIGV4cGVjdGVkOiAnKScNCj4gLi9hcmNoL3g4
Ni9pbmNsdWRlL2FzbS9ub3NwZWMuaDoyMDogRXJyb3I6IGZvdW5kICcNCj4gJywgZXhwZWN0ZWQ6
ICcpJw0KPiAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy5oOjIxOiBFcnJvcjogYWx0ZXJu
YXRpdmUgZmVhdHVyZSBvdXRzaWRlIG9mIGZlYXR1cmVzZXQgcmFuZ2UNCj4gLi9hcmNoL3g4Ni9p
bmNsdWRlL2FzbS9ub3NwZWMuaDoyMDogRXJyb3I6IGZvdW5kICcNCj4gJywgZXhwZWN0ZWQ6ICcp
Jw0KPiAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy5oOjIwOiBFcnJvcjogZm91bmQgJw0K
PiAnLCBleHBlY3RlZDogJyknDQo+IC4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLmg6MjE6
IEVycm9yOiBhbHRlcm5hdGl2ZSBmZWF0dXJlIG91dHNpZGUgb2YgZmVhdHVyZXNldCByYW5nZQ0K
PiAuL2FyY2gveDg2L2luY2x1ZGUvYXNtL25vc3BlYy5oOjI4OiBFcnJvcjogZm91bmQgJw0KPiAn
LCBleHBlY3RlZDogJyknDQo+IC4vYXJjaC94ODYvaW5jbHVkZS9hc20vbm9zcGVjLmg6Mjg6IEVy
cm9yOiBmb3VuZCAnDQo+ICcsIGV4cGVjdGVkOiAnKScNCj4gLi9hcmNoL3g4Ni9pbmNsdWRlL2Fz
bS9ub3NwZWMuaDoyOTogRXJyb3I6IGFsdGVybmF0aXZlIGZlYXR1cmUgb3V0c2lkZSBvZiBmZWF0
dXJlc2V0IHJhbmdlDQo+IA0KPiBJIGhhdmVuJ3QgaW52ZXN0aWdhdGVkIGZ1cnRoZXIuICBTZWVt
cyBsaWtlIHNvbWUgaXNzdWUgd2l0aA0KPiBhbHRlcm5hdGl2ZSBhbmQgdGhlIHVzZXMgb2YgQ1BV
SUQgZGVmaW5lcy4gIFdlIHByb2JhYmx5IHdhbnQgdG8NCj4gbWVudGlvbiBpbiB0aGUgY29tbWl0
IG1lc3NhZ2UgdGhhdCBvbmx5IGFybTY0IGJ1aWxkcyBoYXZlIGJlZW4gdGVzdGVkDQo+IHNvIGZh
ci4NCg0KSSBqdXN0IHRyaWVkIHRoZSBzYW1lIGFuZCBjb3VsZCByZXByb2R1Y2UgdGhhdC4NCg0K
VGhpcyBpcyBhcHBhcmVudGx5IG5vdCByZWxhdGVkIHRvIG1hYyBvcyBidXQgdG8gYmludXRpbHMg
KDIuNDUuMSBvbiBteSBzaWRlKQ0KDQpBZnRlciBzb21lIGRpZ2dpbmcgaSBmb3VuZCBvdXQgdGhh
dCB0aGlzIGNhbiBiZSB0cmlnZ2VyZWQgd2l0aCBhIHNpbXBsZSBhc3NlbWJsZXIgdGVzdCB3aGVy
ZQ0KLmlmICgyLzMyKSANCnRyaWdnZXJzIHRoZSBzYW1lIGVycm9yLCB3aGlsZQ0KLmlmIDIvMzIN
CmlzIGZpbmUgKGllIHBhcmVudGhlc2lzIGFyZSB0aGUgc291cmNlIG9mIHRoZSBpc3N1ZSkuDQoN
ClNvIHRoZSBzYW1lIGVycm9yIHdvdWxkIHByb2JhYmx5IG9jY3VyIHdpdGggdGhlIHNhbWUgYmlu
dXRpbHMgdmVyc2lvbiBpbiBsaW51eCBpIGd1ZXNzICh1bmxlc3MgaXQNCmJyZXcgc3BlY2lmaWMg
dmVyc2lvbiBvciBwYXRjaGVzIHdoaWNoIGFyZSBjcmVhdGluZyB0aGF0KS4NCg0KSSBkaWQgbm90
IGRpZyBmdXJ0aGVyIHRoYW4gdGhhdCBidXQgd2Ugc2hvdWxkIGtlZXAgdGhhdCBpbiBtaW5kIGlu
IGNhc2UgdGhpcyBjb21lcyBiYWNrIGluIG90aGVyDQpzY2VuYXJpb3MuDQoNCkNoZWVycw0KQmVy
dHJhbmQNCg0KPiANCj4gVGhhbmtzLCBSb2dlci4NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 13:14:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 13:14:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226394.1532916 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpnZ9-0003cl-JM; Tue, 10 Feb 2026 13:14:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226394.1532916; Tue, 10 Feb 2026 13: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 1vpnZ9-0003ce-Fp; Tue, 10 Feb 2026 13:14:07 +0000
Received: by outflank-mailman (input) for mailman id 1226394;
 Tue, 10 Feb 2026 13:14: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vpnZ8-0003cX-8S
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 13:14:06 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5ec94871-0682-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 14:14:04 +0100 (CET)
Received: from SJ0PR05CA0038.namprd05.prod.outlook.com (2603:10b6:a03:33f::13)
 by SJ2PR12MB8783.namprd12.prod.outlook.com (2603:10b6:a03:4d0::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 13:13:56 +0000
Received: from MWH0EPF000971E9.namprd02.prod.outlook.com
 (2603:10b6:a03:33f:cafe::5b) by SJ0PR05CA0038.outlook.office365.com
 (2603:10b6:a03:33f::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 13:13:41 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000971E9.mail.protection.outlook.com (10.167.243.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 13:13:56 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 07:13:54 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ec94871-0682-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lZ/GhgxNN+gZXKOUeS0+Pn3jDzj4zmy7gFjjffVutLPLRzfGj6o9bqlJuLuBUlR1nK45TbC4tr8lFc4UxwflrBa7kh6ziwx95V5jLK/dLLLJ615V4xOL4lTG9rHwEkH/6yQAh5kpBsO9CjhnBzY324/cgfjRE6p3itjpa4MMjj84hEZFU9JdJDyt/mYCuT+yKPQ9fjEPHqDZC4ldf+pGxcEcPjyOSXmr4almHzPK6d10JXn7KupTO7kUjAbqZnZRsw0gVGImMWyKJ8hX0UbO55cJ9x47HtJb0QGius0IW25A49kN4E8kd+uIrgGwrZ4rw7gZBlfwupQmbI/RSgDqsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KVC/1Nt6dIfIwr1rIFI/h9TRiDzbKb+lNLnMutHE8kI=;
 b=YEqSxPzfoq2eXyMQzxu+oeQPsNsybm7v/QYlc7mqLEVvDKfpPSwERBinHatWnWUMtF9OcREQ/yWkaQkk7MOk2LBidCPoKSzZ4Vzfuk49XmxZNKn5+uegNjsLuUdNpq8XN1W0EJhSjgiDrTMmFkP5sd+fD8Du52QqjXFgDgz0mLW+gu4mn5jW5Lm65V5q6Me1PM8BcaJAG7lSQ2W6HGnCkcAlZLoeR/2JFzTouPGR5elGE9KxKDychHqYcIdD0XPjv8RktPnr67ArXomyAna5x7sRLiaQReMrw+9jdR7Z+cnl+meQ0vrjnfGK3nKM6dS/VXGwY/Tj2VBlVxieVyd8qw==
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=KVC/1Nt6dIfIwr1rIFI/h9TRiDzbKb+lNLnMutHE8kI=;
 b=uZ03oGIspYP/XmxseOMiyodV4vv34VCmV7wtfBAMyn6W8NjSc2oQJF+k6FPImXak13yrocsW5cN4crLoZ4CIu9DctLjOt702cSz+crvOUy1wHXs1xP1TUEkxT7bsdG2LmK4oJ/1yfjBzGFPok1PsSG/6Thp/KPGjnkPO5mpP9MU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 10 Feb 2026 14:13:52 +0100
Message-ID: <DGBB4JCFAPUT.GTAWF68EZP9Q@amd.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>
Subject: Re: [PATCH] x86: Add Kconfig option for log-dirty tracking
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
 <c5a9075b-6ed0-4778-b3ad-fe6647dad8b7@suse.com>
 <DGAJ9XN03HPS.TC0OLO5PJN6H@amd.com>
 <1c33beef-f638-4e62-b38a-8b79575adf18@suse.com>
In-Reply-To: <1c33beef-f638-4e62-b38a-8b79575adf18@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000971E9:EE_|SJ2PR12MB8783:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e16ff74-259b-4ee3-c6d1-08de68a63f29
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?TjVINDhWVmhuL2llMURDTmtBdXNrNzh1SWVkbmczR0twbFkzaG9KTkVJem9P?=
 =?utf-8?B?UXVxOGQ2RFIwR0d5RFNROG5Ua29OMGZkY0FFcUI3WDJpS3N0eWJDRWtVZHY5?=
 =?utf-8?B?U2REcnVOYVpjNjRrYXVBZStKajFJaWgxMDhsbUZtR0ZlNyszQ0ttWjhpZ3pq?=
 =?utf-8?B?WjdlZENlTTF3ODZ1WXV3TG5iQnZIenhPMW1lRk0xenpIQm41V3lQN0dPWnFk?=
 =?utf-8?B?MjNaNkhrMWFYY3k3UHdsaHQ5UG9BRzhUakJpZ3A4UXpMZ0lxSG9Xa3h5WnlB?=
 =?utf-8?B?Ylorck1ja2hCWUdJeTBNbzBYRzVsMjZ1V29ZRlBzb2FIUzBlYVFpVnhBREpu?=
 =?utf-8?B?ZWJ3SHgrMGl5RTczbXBOdStGWGI3UTJITzF4QlQyclFHTC9EU0NyRFhlZzQ1?=
 =?utf-8?B?ZWNONHJ6M1c0NWZQR1BLbk9TK0NPZFMrOXpLUXQ0cnBpdkt4YjZNQXJjVVIy?=
 =?utf-8?B?VFA2RjVQT1Iya1JaOG94ejJLU3FCN3gvcmhLa0NKSVM3NksyVnViUGhsVnVD?=
 =?utf-8?B?bFFDMGlHaGpxQTIwNW05R0cwUldOKzBVQmx0cnp3eEdmOW9hc3ZHa2ZOQTlO?=
 =?utf-8?B?VHUwRVFVVlZOMm92Q3h6aHF6TTVidHFXMVp1OHF6V1NOTHFwMktPcmFPR3lJ?=
 =?utf-8?B?L1FQQnA3cW01eFpNbmtuNGIvUnhxYy9tbnBxVjZHUURYZVFYMTJqcjByTG9S?=
 =?utf-8?B?bkwyUTlCWlVlWkdSTnc3NklMc3E1d3JiYlJTVG9lWlREOHJaTGhXMnZ0VFlX?=
 =?utf-8?B?MXB0azJEdlkxa1hISmlPSjhzbmJkdXhtbENxTEVrSXN0SVlWSHJ6aUhPaXFC?=
 =?utf-8?B?NGZTRWpjV0pVcTRhV1pQcnluZUl5bmhkMXVDVHNwRUkwU1Q5UkcvbDhwZXRC?=
 =?utf-8?B?ZytpVjFmQjZpYmFVVEM4Y256dTRNYzV1WExlZmR5a1hoeCtuSE5BVXIxbk9I?=
 =?utf-8?B?dFlXS1JhUTRkS05sYmlONGt2QkxWT2JPaDVNckZvaHl4ZjNqQkRMTnN0RThv?=
 =?utf-8?B?bVd5ZnpUQzdNMkwyd0FDaDRwakUwMEZUY0lST0tjUnZVaVRRUVZzWjJRdVpv?=
 =?utf-8?B?dU1VaW52TEt6MlcwN0JEa0lqeHpNZmIyKzNXUWplVVZOTWxTVXJLQkR5bmZQ?=
 =?utf-8?B?dHZzenNBdThheUtmcjNyQWYvaTErOEVZQVVYMG1yVHRDQ2VJMlNGV0ZLZHFx?=
 =?utf-8?B?b0o1RGg0RGFMZjdrQkJpNXdCdjBSWTdrRHM1ZXVhMG95UElmYVBGVld5dVNI?=
 =?utf-8?B?WmMzWnlQU2k3QnVna2x5SzlDRzJCRUREM2tneHFlaG5jM1kyeklWSExyY1h0?=
 =?utf-8?B?dHdXcHRybFZNcXFmNVB4ZkxlMjc2dkc5aEtiUjc3am1TTUU2a2RpeldNSlZM?=
 =?utf-8?B?Wm1ORnRBZ2pzTmIwOExjZVJKYysrNnR5Vkt5L0FYOEJVS29MT0VWQ2ZvMHB1?=
 =?utf-8?B?K0dBT1o3T1l0RmVEYTBzdUlQUzVrcGtGckRsTVZLTGZOSFE4ZmNIcHA4WTJw?=
 =?utf-8?B?eUN6cS9kYkhJV0Z6Vm5iRUg4Y05mV0tmRmNMVGl3U1BwTHhVVDFOUmh6MnFC?=
 =?utf-8?B?ZzVqZXdFUHBSNDAwYUx0aUd5TFZKTkVkM1ZFTXZZVmZPaE1YVE1sdk8zSGJ6?=
 =?utf-8?B?cGxJT2hVRit5d3RQTTlWZ0oyaG8rSk9HR3p3UTdCQklnS3BVaTI1RmlsT0xC?=
 =?utf-8?B?QXJmaUhUaEhSSWZxVGczRnZJMDF4TXY4U1QvZmRBR21NZXNaSTR1TWF3SnRv?=
 =?utf-8?B?QU9EVTZSbXhVdGxmVXo3d20vdkFCVFJEQkUwVmpIM3dXOWZCbEVxMUFpOWdP?=
 =?utf-8?B?dlk5UTBValFLOXpSdVFpeDQwNTh5V2J5bkFodzRZOERkSHh0SHZMM2lyQlNr?=
 =?utf-8?B?Y3M1enBXc01USCswRklNRUJLVGM2VEdibi9YWWJxSFZEYnBFUm1TSXpVTlRz?=
 =?utf-8?B?Z3ZTbzY3QU9ZMStDVkozSmYyNyszZEx3NVBZVitWNmpwMVpqSExVdThQOG1v?=
 =?utf-8?B?M1BGemdNQjJKdTdPTXpzQ21LeGlGc0t4OXkybkhRcVFqRTRjSFNPckdRcWdP?=
 =?utf-8?B?cDN5UUNtVFYrSTVnNWVMd1pvQUpZUmRwakkrU1N4QnhCZ3ZXWWhicUQ1V0N1?=
 =?utf-8?B?K1FiYjRqMG0vR05uY1AvNVg3T2p3NHJUQkJ2czEwb1h1cVQzNWwyWHBReGln?=
 =?utf-8?B?NzA3SkZuVXVWWG0xRGRNb0QwWGNFcXc1ei8yK2tyQXhNYTBmV0RvaXJ2Q0lH?=
 =?utf-8?B?ZXNIdU5sazhtWnVRdmVGUEx1d3NnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	85HOe2OEfwpbyQTSzEbQ6oj125o3CrDZ0D68MYbJmZuZYH7ycKwGQLPHub3aO07ZUhXZ770X9t6k+yQIGeXtL/D2+HmYf1Ra7hsjFUo2Yu27bFMfcx0kVNfebkuzfXlUTScBut8Gy7XRzs3e8X7zhXPwrJvZxLJOZ9dyXtBTB/TpZT0sYJ4myNsvlqwwLtvxVOFbR2yyDYkpA3DC5DAQtEQpYvVJTDwjEchdMrDIi35oHu84bqOe71CJrYNP7Em4rrLiOKc06BpAfP58Yt7CXA3YASAQXZ0ywByHjdnIvjB7btDHmm1D/rwtsTitHdv1fpURf79eU0NBZI75/11kNQcj1d7VdI2G9FUZ5OWebroaYA4yu3BNtNFVXcmFHWPYZCMTnVkV6q+vPI+89f8QKaZS6OPvdZVMm9bpXimjZfrGlx0NB70kYkMzAk5KQWYy
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 13:13:56.5419
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e16ff74-259b-4ee3-c6d1-08de68a63f29
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E9.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8783

On Mon Feb 9, 2026 at 4:55 PM CET, Jan Beulich wrote:
> On 09.02.2026 16:24, Alejandro Vallejo wrote:
>> On Mon Feb 9, 2026 at 3:48 PM CET, Jan Beulich wrote:
>>> On 09.02.2026 11:31, Alejandro Vallejo wrote:
>>>> --- a/xen/arch/x86/Kconfig
>>>> +++ b/xen/arch/x86/Kconfig
>>>> @@ -146,6 +146,7 @@ config XEN_IBT
>>>>  config SHADOW_PAGING
>>>>  	bool "Shadow Paging"
>>>>  	default !PV_SHIM_EXCLUSIVE
>>>> +	select LOG_DIRTY
>>>>  	depends on PV || HVM
>>>>  	help
>>>
>>> Why would this be? IOW why would shadow imply log-dirty, but HAP wouldn=
't?
>>=20
>> The logic is rather opaque. I admit I'm a bit fuzzy on the uses of logdi=
rty.
>>=20
>> I know what it's for and I could navigate the code if a problem arose, b=
ut I'm
>> less clear about which other elements of the hypervisor rely on it (pod?=
 nsvm?
>> vvmx? shadow? hap?).
>>=20
>> If it's strictly toolstack/DM-driven maybe it'd be more apt to have a se=
parate
>> LIVE_MIGRATION and SAVE_RESTORE configs where LM selects SAVE_RESTORE, w=
hich
>> selects LOG_DIRTY. That's also improve some defaults auto-downgraded fro=
m the
>> max policy just in case a VM is migrated.
>
> It's save (not restore) for both PV and HVM, and VRAM dirty tracking for =
HVM
> only. Ordinary HVM guests will want VRAM tracking, so compiling out suppo=
rt
> for it will imo want mentioning in the Kconfig help text.

ack.

>
>>>> --- a/xen/arch/x86/domctl.c
>>>> +++ b/xen/arch/x86/domctl.c
>>>> @@ -220,15 +220,15 @@ long arch_do_domctl(
>>>>      {
>>>> =20
>>>>      case XEN_DOMCTL_shadow_op:
>>>> -#ifdef CONFIG_PAGING
>>>> +        ret =3D -EOPNOTSUPP;
>>>> +        if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
>>>> +            break;
>>>> +
>>>>          ret =3D paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0);
>>>>          if ( ret =3D=3D -ERESTART )
>>>>              return hypercall_create_continuation(
>>>>                         __HYPERVISOR_paging_domctl_cont, "h", u_domctl=
);
>>>>          copyback =3D true;
>>>> -#else
>>>> -        ret =3D -EOPNOTSUPP;
>>>> -#endif
>>>>          break;
>>>
>>> Can a HVM-only hypervisor create any guests with this? I simply fail to
>>> see how XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION would then make it through =
to
>>> hap_domctl().
>>=20
>> xl doesn't seem to call it at all. hap_set_allocation() is implicitly ca=
lled
>> through paging_enable() -> hap_enable() -> hap_set_allocation()
>
> xl must be calling it, at least in the case where the paging pool size is
> explicitly set in the guest config. The important point is - not all of
> XEN_DOMCTL_shadow_op's sub-ops are log-dirty related.
>
> It's also odd that you did make changes at the call site here, but then
> left the called function (and its sibling paging_domctl_cont()) in place.
>
> Jan

That goes through DOMCTL_set_paging_mempool_size. With identical behaviour
except it uses a different op. Blergh.

There are no uses for shadow ops other than logdirty that I can see.

libs/guest/xg_sr_save.c:    rc =3D xc_shadow_control(xch, ctx->domid,
libs/guest/xg_sr_save.c-                           XEN_DOMCTL_SHADOW_OP_ENA=
BLE_LOGDIRTY,
--
libs/guest/xg_sr_save.c:        rc =3D xc_shadow_control(xch, ctx->domid, X=
EN_DOMCTL_SHADOW_OP_OFF,
libs/guest/xg_sr_save.c-                               NULL, 0);
--
libs/guest/xg_sr_save.c:            rc =3D xc_shadow_control(xch, ctx->domi=
d,
libs/guest/xg_sr_save.c-                                   XEN_DOMCTL_SHADO=
W_OP_ENABLE_LOGDIRTY,
--
libs/guest/xg_sr_save.c:    xc_shadow_control(xch, ctx->domid, XEN_DOMCTL_S=
HADOW_OP_OFF,
libs/guest/xg_sr_save.c-                      NULL, 0);
--
libs/light/libxl_colo_restore.c:    if (xc_shadow_control(CTX->xch, domid,
libs/light/libxl_colo_restore.c-                          XEN_DOMCTL_SHADOW=
_OP_ENABLE_LOGDIRTY,
--
libs/light/libxl_colo_restore.c:    if (xc_shadow_control(CTX->xch, domid, =
XEN_DOMCTL_SHADOW_OP_OFF,
--
ocaml/libs/xc/xenctrl_stubs.c:  ret =3D xc_shadow_control(xch, Int_val(domi=
d),
ocaml/libs/xc/xenctrl_stubs.c-                          XEN_DOMCTL_SHADOW_O=
P_GET_ALLOCATION,
--
ocaml/libs/xc/xenctrl_stubs.c:  ret =3D xc_shadow_control(xch, Int_val(domi=
d),
ocaml/libs/xc/xenctrl_stubs.c-                          XEN_DOMCTL_SHADOW_O=
P_SET_ALLOCATION,

Not even for shadow, which seems=20

There's an ocaml stub, but I can't be bothered to check whether XAPI uses i=
t.

I'll leave around the domctl so XEN_DOMCTL_SHADOW_OP_OFF doesn't return
-EOPNOTSUPP, but set/get allocation should go away at some point before
stabilising the control interfaces.

I'll also remove the bad #if PG_log_dirty gating these, as it really just w=
ants
to be !PV_SHIM_EXCLUSIVE (that's why I originally got rid of it all).

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 13:22:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 13:22:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226403.1532926 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpngl-0005HQ-El; Tue, 10 Feb 2026 13:21:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226403.1532926; Tue, 10 Feb 2026 13: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 1vpngl-0005HJ-Bf; Tue, 10 Feb 2026 13:21:59 +0000
Received: by outflank-mailman (input) for mailman id 1226403;
 Tue, 10 Feb 2026 13: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=tYRw=AO=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpngk-0005Gu-5e
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 13:21:58 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78106fad-0683-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 14:21:56 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB4937.namprd03.prod.outlook.com (2603:10b6:5:1f1::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.8; Tue, 10 Feb
 2026 13:21:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 13:21: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: 78106fad-0683-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MUAj5nFAF4wlmaWhBMFp/AxwMouhB4ScJFNLwxQ9jXvT9+0dr/TC4r4snNCuNt+4oIfBR+VElAsPyX+lazxd9WrhSUw9oatpxuMfFZsx3OvXBy+eQJVwADmK77vE3EeoMK8uUhEtjma6NSP9IHPxnVbRxK4AV9BE43C+kT2ewr5JzJX7paE4R5LNzQJG3dx3gohuV33o4wtHOFuT0Wqi6XpM8R/WkIUMQhrN4+Ui22TK39Vezhus/t0F7vSwP77e3Dp793boBo17SIhjj0HnIbaETBWPeTB2wn+y4+g3fMt1qdLFKOUOpu8IPRbl6XMlcT60KBBQ2s7YgfkalI2B2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nMmK2gPcK1bTqKukorZZ6WFimKCpnQxihGzN3sKnAKg=;
 b=XXFyLzIUkIRtR1buO4MiDLyshJy7+scT5+Ab7zmJJNAusOO3LOpzifjpCBReBdnEE5sGOfNwHiW25hsGeqLFe15Bw8Iy3C3K7n64GQbWhFvGrf/wfz6yjZm19jb83w9Unlnwmdno9/lP2xrdD5Rw35Bxj09lZHfIestYZHAs9xg3pezeSpUJ30JpV8tb1lipeQRClCi4kHukhooCM9entDl50AursFxccs6oofhZdUroODTi8BEhl8AwMqTodYDZyCbKlT7en00jqdVZDCzAbsyuIa4QiJYS1B21VMrXOPCFPdVAuqrXBYoOJ4MjXdUrmC0v4p7kP2bSIAb719G4ng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nMmK2gPcK1bTqKukorZZ6WFimKCpnQxihGzN3sKnAKg=;
 b=hF7e1b4PC1X76QZL9CeACrjqVqj7Faw7RPZVQ65DV38wi8eWq40J8OBvug4YWgXE/fGbenGv20HNF4n4IubLlXNtZLa+NAvOf4MU3JYT8qJsJ/kGOP/H3rmPp3Ju4ClwzzfdpXTDTyRHVLJPZfawYUhc7hSjig3kekS+jeAxTSU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <71b236bc-beb9-4fec-ac33-6d877ce91dd2@citrix.com>
Date: Tue, 10 Feb 2026 13:21:47 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86: Add Kconfig option for log-dirty tracking
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
 Jan Beulich <jbeulich@suse.com>
References: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
 <c5a9075b-6ed0-4778-b3ad-fe6647dad8b7@suse.com>
 <DGAJ9XN03HPS.TC0OLO5PJN6H@amd.com>
 <1c33beef-f638-4e62-b38a-8b79575adf18@suse.com>
 <DGBB4JCFAPUT.GTAWF68EZP9Q@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <DGBB4JCFAPUT.GTAWF68EZP9Q@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0015.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:ba::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB4937:EE_
X-MS-Office365-Filtering-Correlation-Id: 49a71ee3-5eb0-46cd-81b3-08de68a759dc
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?c0dFRm1JVWZCZjE2NG05VnVUNDk4TFA3UmFrSFZ1SHZkVXlqQTlDSWVyRURt?=
 =?utf-8?B?eHFTZ3RTS1FCWVE1Uks2bGV5M3k2cHZId0Q0V1JsYU12dllVUjdxbHAvOTlF?=
 =?utf-8?B?ZTRGMG9Ga0tlK01panpHbHJINXZXVXp0NzR5Sy9GZUtFc1FsWlFwbmtRWUZs?=
 =?utf-8?B?ZnVZaHBKVE1rSk9iNzhNZTMyeWZuVlFLbjdmUGhrelBObm1RZktRK2FjVUlw?=
 =?utf-8?B?OVU5eHphZnpqTFpRVkhRQllUYW4wRkpac2pjcWtZZHd1cnUzbnZWbDRyWHo5?=
 =?utf-8?B?dk0vdUx1ZUQzRG1UUDVDMXRTZnYvdWxEVHQ1b1plNDJaZGFvUjM5Mng2Rld5?=
 =?utf-8?B?NXZ4STJWME1VUklhZFpFcGNKYjU3S2pUY2NoNlFtaVg2TUdHTEF1UmQ4a0or?=
 =?utf-8?B?anZuNWFsS1BNRHduNURXR3JGVFRVQmxGQjNPdDdFU2RJaUgwVTNZdUt3QWxl?=
 =?utf-8?B?TFJtYmNWOWFSeVZLYkNpVlZtNXVTcWRNbkVIeWlPcTFnMUljQ09qeGpRQVQz?=
 =?utf-8?B?OW83QXE2MFUxN2w3c0dlbTdxa3RJL1pVd2xvaGpzU1R3RzhwWC9GUVh6RTV2?=
 =?utf-8?B?UmE5Zm1Tckd6RUo1VlRzMGJqNHNxZzloR3ZvSXJZMVJ0eUdjbWlzVDdHQ2lm?=
 =?utf-8?B?bUJUNWZqWU1WWUR2dllEYlptdlkzS1NRRm8wTlBqOXJuekcvQmhkQU81d1Ex?=
 =?utf-8?B?RDdodUlXS1grM2xTMFZIdmZnZGhKN2p1cDJuckczandOVjRab0p0ZXRIKzZR?=
 =?utf-8?B?TWNFRHNIaTJabDhPc2cwMFJRTG52ZVZqc010TFBQVUxIRDB4dlpRR0I4UVlu?=
 =?utf-8?B?OXJSL3NrR3IzK2dTbHBNOVMxL1lVVTdnK0NqcVBSUUFCSnRKZVRCM04yZWRy?=
 =?utf-8?B?Q3JJd3ZlRGVYL25FN2luQ2hWY0c5NG16cVhvSVg5Z0xqWXBGZG9peVZuYXhH?=
 =?utf-8?B?TEp4cHViRXMzMlZGR3R1YjMyVi83M1VtVkc0VnRqQWg2T0JxcU5hYjVpUDRR?=
 =?utf-8?B?Tjh6cENhaEpIby96cWlWMnRxS3I5ZHVhMjR1TmRkYXd2YnlyRlZwUUR0eFVB?=
 =?utf-8?B?QnphbHRQMmJMbVZDRWlPNnFpbnRoWnBOS1ByOVMya29ZRXNWcm4rSVU4NFlX?=
 =?utf-8?B?QXd1Mlc3UHlYUEQxNUlUaHc2M3VPZUpGZys0b2YxN2N4NWhTUkdOdEl5Si9L?=
 =?utf-8?B?STFweXNIMktNTjdxTWVnS2FDUmVMUUxlb0lXMFpiMFErVVMrdVpLdXRkaVBm?=
 =?utf-8?B?ZVR6QmJUdGtpYUJKdzdyQXB5RWdEcVVLVDk0U0t0bUY3YVJKRFh0WVc1bTRs?=
 =?utf-8?B?OFhQdFhHZG1RZmVobFFmWkVPcW00NW9lWnU4WWdLQ0JHUzUwc2tsc3dGNE9U?=
 =?utf-8?B?amgvQ3dxYzRTTkwvYS9CWjZuNWRuVUI5dHZPYmRaR1FZV1VhUG9RU2RkMTAv?=
 =?utf-8?B?b3VaWkN6U0NYRVFza1BNUUROcC93S3AvYk1uT3loWUJXWGxiN2wxQmliLzRm?=
 =?utf-8?B?RnlwWVB0MUpKZjBqOUs1VUtzZEVaU0Nxd094Ymc0NTBSa3RoTy9ZR1ZQcStC?=
 =?utf-8?B?U0ZwUjF2SlJBQUJSZzhBSkQ4dnR5bUhId0dlcXNxWUZMeTRxSnZJRVRhSUNM?=
 =?utf-8?B?dmNnbmZIN2VLM05zMENlYUlER3l5aXBqZ2h1VEs1YlNQRHJzdnA4bnZFVXRZ?=
 =?utf-8?B?NGxBWEtybS9UTGRyMllRcjZ2NFQzUmZuZ3YxcC9qOTE0bkliUDFvWjJxMGJN?=
 =?utf-8?B?NWZ4ZVpZVEhSNWNEVXJMczhUUmZPYkxYV3YxbHFiOGRVRTM1UXFLci8zenNo?=
 =?utf-8?B?OGU5S3RHZDkvNnpqV0xGbVoyQllYOXZvc1Z4bFVQZnV6VGVlMzJQcmFId2ww?=
 =?utf-8?B?RFdLUUZ0MDZkb0xrY25vRVBsengxanp0UzJ2VVRFa285YjZDeS9Za0FndGpG?=
 =?utf-8?B?emduZlVRTjZTdE9QOTVVRHZJbGlaNFFlTFZ6RmlLZE1oNEJkeU5BTXJCckpp?=
 =?utf-8?B?N3M4eHFibGtQT2NYTC8yNEF4VVVPSEVTbzRWODVZS1FmNFQ3NEI2Q3RCNFhP?=
 =?utf-8?B?bDMraWp2UzQxcEE4d2hBVm5qa1k4K0g3UmIvWWk2VXM3b05hUmE4S2pkUEZQ?=
 =?utf-8?Q?f7AE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?M2VnN2RsOHFDS08xTU9SR1IyWmFJZy9DQzBGQTFnaDZYVkdpMXRCbG5lY1ZG?=
 =?utf-8?B?eXZOUE85V1pDOTR4a1RubmNIZExkbkw5UW5hL1h3YlZFODBEZndONXhSUVJG?=
 =?utf-8?B?amt0VmVHVTU2U0pTdS9oenhSdk8wYXZEUlAzZmhUeGt4SDZBWi82Mjl6NzlT?=
 =?utf-8?B?ZFQ1ZUxXZGNKWWY3ZThkYjF5cWRHdTFqNXdVN2xUZ3ZhakJBUHgwWHFyclVH?=
 =?utf-8?B?dTYyNlZLcnEwZFpmRGdJUFJGZDlpZEpWOW9FVjhycEdYVjVYRjZXYUpVUkpF?=
 =?utf-8?B?TlZuY2NHb09MM3RpYXVSbzBydnd6aUFTY0VGRXZraFdNb0thWUtuUGNMb3N4?=
 =?utf-8?B?YTZHbGJPL2RZQnlKMTZqWUMvaGw3L3l3T0h6czEvTldEejA1VzVYN3NqKzVa?=
 =?utf-8?B?RTByL295YW9IS0JNWDNQMGJDeDE0MFAwNm9tUkVyMnBmbGxGamZKRVVIekt0?=
 =?utf-8?B?dnpxSnNsTFJQNVRDOEk3RmNjL0dDb3E4NDZrcU9NVXBDNVZtelR0T0lyUmlY?=
 =?utf-8?B?aGdySGx3ZG5FSG54ZXQydmNvMHc1aERNclhVT0lqcnFIaXBLcG9iVlQ2eHV5?=
 =?utf-8?B?WUVhZHhhQ0QyeGhsRmZ3bEM3bjZwSGpZTmV6dnlQdGJxMWt3Z2Jic0VVUzgz?=
 =?utf-8?B?LzBJaWllUC9EWkZ6QmVvTTU0d1IrWGpiUWNRYWZOaFdtWjdTOTFmdUVDUTg4?=
 =?utf-8?B?RlRRdmFpKytmeHVNNnpnbmZ3dldhNnlTbk9QT2c4dDVYdFdPZk93eHFJVnBa?=
 =?utf-8?B?enFSdEZyc0h6b1c0S083LzJFdnp2dS94bWZ3ZXNEcHZPY25qanVlMFd3U1h4?=
 =?utf-8?B?aFZIc0RkNVVyK2ZqQjM0bys5bUppcjZjZFdiRkpGeTF4Qi9PZjMzR1VqbjJh?=
 =?utf-8?B?L2dEREZZY3daM0dGQmIyQzczM2YzaDVqNW82dk9LbURiR2puSHBzTk5CN2N1?=
 =?utf-8?B?ZVlpNEcycTNnOU1HenFCS3orU2NrdW1LWXRyN2wzSEUvK3lIRFF3OTVYcmND?=
 =?utf-8?B?bjJ6dmxSYUI3ZDhBL29QbE8xMm4rWGJ0WDlhT2N3QXRPRHVpbUJ2SWhRdlg0?=
 =?utf-8?B?UlZWWGlsRVBmMnBTK3paSTg0OXFHOUdFVEJQaUQ4UXhuOTVjdlpTeGZSc1Yv?=
 =?utf-8?B?bys1djIvVGpTSTl5U2ZUdi9yblFDL2ZYZUI4MTk2bGlDQWRYbjdGYjJQOTZ2?=
 =?utf-8?B?c04yUXBBaEJJdVFxbDdwVXRzQVhTY29NSlE2RjAxaE14TzNOcnB0L3RMQTB1?=
 =?utf-8?B?VUFxNHVXbDNQYS8xT29xU3M1Yk5ZSE1RaFc0OUdJTFJSMXBOcnVFSnV2bUNh?=
 =?utf-8?B?d0hucmVrMG1zZnFZdlFkSHZRR1U5RE9zdm5jelE5VUR6aG9mZnlUL01tUUY3?=
 =?utf-8?B?SkNiV0VUOU1RdEhFOWN0ODd6WDBGM3NkQlVPT2hSYTBQMTRhN095VlVzbENv?=
 =?utf-8?B?dFdtK2NJamV2Wm4yZm9Ybi8zQ2NEb291WHQxODZNem1nNHFweEd6dDhIUTRo?=
 =?utf-8?B?bnFVbnpsTUk2OWoyL0xrM3VSeE1aUGhEeFhoSWViK1NPdUczNFVMTFhsRnc0?=
 =?utf-8?B?ak1PZ29OYzN5SWJjdjdvdUVHS0VhMVFzZkcveDZrMU94bFQxZGk1K1pXTDlE?=
 =?utf-8?B?RVJvUEtuSUJuei9aanNMWWdYengzVm95NTh1TU94UmJUVkxlNWMzSWZOaUJI?=
 =?utf-8?B?Y2tRSzFZb3BJWE1vK1dXSXRmOWVIVk5EUlRDK01WODhvdENZdzZ3SnBkb1ov?=
 =?utf-8?B?cko4ek1RT1VvNjgzUUd2QWhad3NNZGFlRkpFZHR3ZWgzUWQvUTc4Y3lrcU9z?=
 =?utf-8?B?RkhwVk1sbW1Rc2RyV3IvNkY3NUtkT0dRK0hpaks5SkJ1SEJBSTdxMkN3VmV1?=
 =?utf-8?B?cDVpQ3lyYWhNMkZRZDFxNEJvMXRwYUgrVExqZTZINVdZODhGV1FqbE4vQmRm?=
 =?utf-8?B?TzFtQWVJUnZQUElINkJYeUs2bW5PYnBmenpBdDIvSU9RcHozRnhVYTZZOCtK?=
 =?utf-8?B?Ri9YMUEyVFZRTFdOTXR6ZmhwWUZGY2NvR3pBSzRqWDFKVnNEdUllSk5RaDU3?=
 =?utf-8?B?TzdWQjNsNlhOblNadGpZVXdjWTUzbENudCs5V2s3OVFBZEtqWXlyQ2VyVG9R?=
 =?utf-8?B?cUNmNE1BWnJyOEkyREc3NmVJUm8rYzJtMjdwM2xOaW51NWRFTkxCK0lMV0NF?=
 =?utf-8?B?RDI0R1ljRTRWblNycGVaY0g3SGRlR29pT1Y2ZGY1RldZNTBGb1RQR1NkOUU0?=
 =?utf-8?B?ODV6ZFd4d3VBUFB6Z3VYVUFoUzhsUTUwaTEzdTQ2eU1wNVFxQ1VaaWc5a0Nn?=
 =?utf-8?B?NG5nVXdkN05WZEQ3dGFZUjh1TUVVWDNIWlJ4bnQ2bXN6SHRzNWt6dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 49a71ee3-5eb0-46cd-81b3-08de68a759dc
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 13:21:51.0477
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cZdJYLTFMP8Kl3UguCUtyjxF/MBYnt1rPgqAlj2Klf9A/S6I8aSlULN/w0JN/IISWZLqUoaV/qbhbVin/l7AmNbsxh+sqgObnScCpHxhhvs=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4937

On 10/02/2026 1:13 pm, Alejandro Vallejo wrote:
> On Mon Feb 9, 2026 at 4:55 PM CET, Jan Beulich wrote:
>> On 09.02.2026 16:24, Alejandro Vallejo wrote:
>>> On Mon Feb 9, 2026 at 3:48 PM CET, Jan Beulich wrote:
>>>> On 09.02.2026 11:31, Alejandro Vallejo wrote:
>>>>> --- a/xen/arch/x86/Kconfig
>>>>> +++ b/xen/arch/x86/Kconfig
>>>>> @@ -146,6 +146,7 @@ config XEN_IBT
>>>>>  config SHADOW_PAGING
>>>>>  	bool "Shadow Paging"
>>>>>  	default !PV_SHIM_EXCLUSIVE
>>>>> +	select LOG_DIRTY
>>>>>  	depends on PV || HVM
>>>>>  	help
>>>> Why would this be? IOW why would shadow imply log-dirty, but HAP wouldn't?
>>> The logic is rather opaque. I admit I'm a bit fuzzy on the uses of logdirty.
>>>
>>> I know what it's for and I could navigate the code if a problem arose, but I'm
>>> less clear about which other elements of the hypervisor rely on it (pod? nsvm?
>>> vvmx? shadow? hap?).
>>>
>>> If it's strictly toolstack/DM-driven maybe it'd be more apt to have a separate
>>> LIVE_MIGRATION and SAVE_RESTORE configs where LM selects SAVE_RESTORE, which
>>> selects LOG_DIRTY. That's also improve some defaults auto-downgraded from the
>>> max policy just in case a VM is migrated.
>> It's save (not restore) for both PV and HVM, and VRAM dirty tracking for HVM
>> only. Ordinary HVM guests will want VRAM tracking, so compiling out support
>> for it will imo want mentioning in the Kconfig help text.
> ack.
>
>>>>> --- a/xen/arch/x86/domctl.c
>>>>> +++ b/xen/arch/x86/domctl.c
>>>>> @@ -220,15 +220,15 @@ long arch_do_domctl(
>>>>>      {
>>>>>  
>>>>>      case XEN_DOMCTL_shadow_op:
>>>>> -#ifdef CONFIG_PAGING
>>>>> +        ret = -EOPNOTSUPP;
>>>>> +        if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
>>>>> +            break;
>>>>> +
>>>>>          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;
>>>> Can a HVM-only hypervisor create any guests with this? I simply fail to
>>>> see how XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION would then make it through to
>>>> hap_domctl().
>>> xl doesn't seem to call it at all. hap_set_allocation() is implicitly called
>>> through paging_enable() -> hap_enable() -> hap_set_allocation()
>> xl must be calling it, at least in the case where the paging pool size is
>> explicitly set in the guest config. The important point is - not all of
>> XEN_DOMCTL_shadow_op's sub-ops are log-dirty related.
>>
>> It's also odd that you did make changes at the call site here, but then
>> left the called function (and its sibling paging_domctl_cont()) in place.
>>
>> Jan
> That goes through DOMCTL_set_paging_mempool_size.

This DOMCTL was added in an XSA because ARM needed the functionality,
hence no cleanup.

I didn't get around to cleaning up
XEN_DOMCTL_SHADOW_OP_{GET,SET}_ALLOCATION, but please do.  We should not
have multiple ways of configuring this, and it simplifies the your patch.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 13:46:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 13:46:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226415.1532937 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpo43-0008Jo-8z; Tue, 10 Feb 2026 13:46:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226415.1532937; Tue, 10 Feb 2026 13:46: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 1vpo43-0008Jh-3z; Tue, 10 Feb 2026 13:46:03 +0000
Received: by outflank-mailman (input) for mailman id 1226415;
 Tue, 10 Feb 2026 13:46: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpo42-0008Ja-I0
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 13:46:02 +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 d55640d3-0686-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 14:46:00 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-47edd9024b1so52355515e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 05:46:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48320961701sm224348085e9.5.2026.02.10.05.45.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 05:45:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d55640d3-0686-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770731159; x=1771335959; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cgHfPTC4z5bFFFA0fzSzUfKRnSub+sZaEkb14srSsMI=;
        b=AqiLePhhKVjj77JoetJgZd9qPfEyCWkBSYE3y2thef5RPGYn3uwIghj6b9x8L/qcKf
         UlEcJ3BeZnCfUMplOlFMtAu4hJGu/xXElV25uJutcC8/E8x/sGzAedV19UGKCp5ZWg57
         rpEVU9fTCX+cJKjy9mUgKIurKDsJznuzEX/rSYGHUJIBrd9Ky+l0KV2IRiBx3G4TJI4o
         gNmYgHSa9X/3+Cqb4E7h2ji3LGe0KzthZmzG9cUt3P9nj6DoWw/qQVLQID5nsRc7gwE4
         1H/7LJLj3v9d/abSXR56AG/N0WQGI6bes8vE3yKfOAXmhH03sFyXGNaCiyCafjVSadx7
         Y79Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770731159; x=1771335959;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cgHfPTC4z5bFFFA0fzSzUfKRnSub+sZaEkb14srSsMI=;
        b=bumVUTxFoUspKujB9EAGFpa0x9ESvyJW+zZeyYaPFT+YQcngPqDZ9Tf06G+ctFqzrM
         +4ZZwW930jO6OVuIVs5BNiNOnFeeVoeI6FFMI8XVqmZddO5a1sQP8MK3jX8zqNOE9hI5
         3pgb+eAzkKKkts3OHapD5iSOBU3CWZV5yeJ6wyMGgrqlGfGtVlEajIQllC5DrwMdc7Hc
         VpoRwQ9+m/Z+wF6QeM3YV9ns1eLGjcru/8rzd2Cyxa2MWbhnHt4PvN9eK3TFm2VjDT9g
         zSb7pSIH7SWrD+F3w+EeA82zIzE83E+vkenLvdJfTRVjsTMMJExRHZu7Ntc/HLYM7Ktm
         UYNQ==
X-Forwarded-Encrypted: i=1; AJvYcCWPWHvnoG176jVmSrwixK0WhrnnErHYw5Vd++LHFumwO0hfLmD2wF86EurtYSdAAYMbQb0wTgRqxYo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZEEfJx0P6R2OTns0oPdNScAirubOnHxS/MQeua/CdvOZAKAmC
	dwOjzKQAwnlMkFFJ59jd5UJGmfN3q/a4OsILncl8vMNGX0w0rfOdMMgx5CVn5+NAYQ==
X-Gm-Gg: AZuq6aJdvSDP9ahgAJDLYwNOiPC1UdOuCeQUvC+H/ENOT/X/kGpcZcnyuEOtVpKHchN
	TcgxJZ45ycj9jqOYdRbV4qTWRgbPpcWH7Ui/f9nZM05rCRq5n+UVgdmNCcKQ0mkHAtbmMJ6LRW/
	J7nJgpKCJokxfJ7Kgnk09L2GH540l6LCuAaObj5w2L2QDakSHRJwa9sRto9pGtFJmlWZ88f/Mm6
	25LKUH5Ev5JywYjabQV8wjA+Y3c8Q1SYrtqy9D0tP6zB6+OufMCxB0NWE6IhZ5sz7PaEvTRytdX
	udDcYJ0F1thq3bMPjWZeUNfMSTl+RoGf8bGKv5SMzw+I7dBQnSSVc+i42KPWPEbj77SBxHiloyn
	gTXjeN0Yli4a1YUsoCNl81zRwoiNzoPvf8d1ql/kkv++NOAbXahtakKfUZTeuk9u4wdjgtq3O8Z
	YH8NjwZ1wvKXeyJ5UXAKzlyHDTZC8z/IPQRHqrHJjgcsZHlqhmGjLliqQ2+a2wrzQr0cC/9TbHO
	fQrqmruLPlNRrQ=
X-Received: by 2002:a05:600c:4f8a:b0:477:63db:c718 with SMTP id 5b1f17b1804b1-483201eabf8mr247508225e9.16.1770731159462;
        Tue, 10 Feb 2026 05:45:59 -0800 (PST)
Message-ID: <4dbe4d2f-1f91-4c80-994e-86d42a9ad896@suse.com>
Date: Tue, 10 Feb 2026 14:45:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5] xen: Add Darwin.mk
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 =?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" <xen-devel@lists.xenproject.org>
References: <49c0bd388d45b6936bd852d99fbbc262fb078253.1770633598.git.bertrand.marquis@arm.com>
 <d1baa448-962c-4c2a-9a79-cf334b860450@suse.com> <aYsZb529xJvYSSRo@Mac.lan>
 <02BCBE82-C7F1-4631-AC9E-4A4B2E6065A3@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <02BCBE82-C7F1-4631-AC9E-4A4B2E6065A3@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 10.02.2026 13:56, Bertrand Marquis wrote:
> Hi Roger,
>=20
>> On 10 Feb 2026, at 12:41, Roger Pau Monn=C3=A9 <roger.pau@citrix.com> =
wrote:
>>
>> On Tue, Feb 10, 2026 at 11:46:44AM +0100, Jan Beulich wrote:
>>> On 09.02.2026 11:46, Bertrand Marquis wrote:
>>>> --- /dev/null
>>>> +++ b/config/Darwin.mk
>>>> @@ -0,0 +1,6 @@
>>>> +# Use GNU tool definitions as the tools we are using are either GNU=
 compatible
>>>> +# or we only use features which are supported on Mac OS.
>>>> +include $(XEN_ROOT)/config/StdGNU.mk
>>>> +
>>>> +# Cross compile on Mac OS, only hypervisor build has been tested, n=
o tools
>>>> +XEN_COMPILE_ARCH =3D unknow
>>>
>>> While editing in the ABI aspect, it occurred to me to check what Appl=
e has
>>> to say regarding their ABI. For both aarch64 and x86-64 they say they=
 use
>>> the standard ABI with some modifications. We may want to evaluate whe=
ther
>>> those modifications are actually compatible with what we need.
>>>
>>> Talking of x86-64: Has building on an x86 Mac been tested as well?
>>> Especially if that doesn't work, it may want mentioning.
>>
>> I no longer have access to an x86 Mac, those are about to disappear.
>>
>> FWIW, I build x86 on Mac using the Docker containers, just as the CI
>> does.  OSX Docker allows running x86 containers on arm64 using the
>> "Rosetta 2" binary translation layer.
>>
>> I've attempted doing a cross-build from an arm64 Mac using the x86-elf=

>> toolchain, but got the following error:

If it's really x86-elf (not x86-linux), then likely ...

>> % make XEN_TARGET_ARCH=3Dx86_64 CROSS_COMPILE=3Dx86_64-elf- HOSTCC=3Dg=
cc -C xen V=3D1
>> [...]
>> /Library/Developer/CommandLineTools/usr/bin/make -f ./Rules.mk obj=3Dc=
ommon need-builtin=3D1
>>  x86_64-elf-gcc -MMD -MP -MF common/.bitmap.o.d -m64 -DBUILD_ID -fno-s=
trict-aliasing -std=3Dgnu99 -Wall -Wstrict-prototypes -Wno-unused-but-set=
-variable -Wno-unused-local-typedefs   -O1 -fno-omit-frame-pointer -nostd=
inc -fno-builtin -fno-common -fzero-init-padding-bits=3Dall -Werror -Wred=
undant-decls -Wwrite-strings -Wno-pointer-arith -Wdeclaration-after-state=
ment -Wuninitialized -Wvla -Wflex-array-member-not-at-end -Winit-self -pi=
pe -D__XEN__ -include ./include/xen/config.h -Wa,--strip-local-absolute -=
ffunction-sections -fdata-sections -g -malign-data=3Dabi -mindirect-branc=
h=3Dthunk-extern -mindirect-branch-register -fno-jump-tables -mfunction-r=
eturn=3Dthunk-extern -Wa,-mx86-used-note=3Dno  -fno-stack-protector -I./i=
nclude -I./arch/x86/include -I./arch/x86/include/generated -DXEN_IMG_OFFS=
ET=3D0x200000 -msoft-float -fno-pie -fno-exceptions -fno-asynchronous-unw=
ind-tables -Wnested-externs -DHAVE_AS_QUOTED_SYM -DHAVE_AS_MOVDIR -DHAVE_=
AS_ENQCMD -DHAVE_AS_NOPS_DIRECTIVE -mno-red-zone -fpic -mno-mmx -mno-sse =
-mskip-rax-setup -fcf-protection=3Dbranch -mmanual-endbr -fno-jump-tables=
 -mmemcpy-strategy=3Dunrolled_loop:16:noalign,libcall:-1:noalign -mmemset=
-strategy=3Dunrolled_loop:16:noalign,libcall:-1:noalign -Wa,-I./include -=
Wa,-I./include '-D__OBJECT_LABEL__=3Dcommon/bitmap.o' -mpreferred-stack-b=
oundary=3D3   -c common/bitmap.c -o common/.bitmap.o.tmp -MQ common/bitma=
p.o
>> ./arch/x86/include/asm/bitops.h: Assembler messages:
>> ./arch/x86/include/asm/bitops.h:511: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/bitops.h:511: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/bitops.h:511: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/bitops.h:511: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:20: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:20: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:21: Error: alternative feature outside=
 of featureset range
>> ./arch/x86/include/asm/nospec.h:20: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:20: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:21: Error: alternative feature outside=
 of featureset range
>> ./arch/x86/include/asm/nospec.h:28: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:28: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:29: Error: alternative feature outside=
 of featureset range
>> ./arch/x86/include/asm/nospec.h:28: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:28: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:29: Error: alternative feature outside=
 of featureset range
>> ./arch/x86/include/asm/nospec.h:28: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:28: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:29: Error: alternative feature outside=
 of featureset range
>> ./arch/x86/include/asm/nospec.h:20: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:20: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:21: Error: alternative feature outside=
 of featureset range
>> ./arch/x86/include/asm/nospec.h:20: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:20: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:21: Error: alternative feature outside=
 of featureset range
>> ./arch/x86/include/asm/nospec.h:28: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:28: Error: found '
>> ', expected: ')'
>> ./arch/x86/include/asm/nospec.h:29: Error: alternative feature outside=
 of featureset range
>>
>> I haven't investigated further.  Seems like some issue with
>> alternative and the uses of CPUID defines.  We probably want to
>> mention in the commit message that only arm64 builds have been tested
>> so far.
>=20
> I just tried the same and could reproduce that.
>=20
> This is apparently not related to mac os but to binutils (2.45.1 on my =
side)
>=20
> After some digging i found out that this can be triggered with a simple=
 assembler test where
> .if (2/32)=20
> triggers the same error, while
> .if 2/32
> is fine (ie parenthesis are the source of the issue).

=2E.. the wrong conclusion is being drawn here. It's not the parenthesis =
then,
but the fact that '/' is a comment character there. Requires adding --div=
ide
to the command line options to have the character re-obtain its meaning a=
s
division operator. (GNU, Linux, FreeBSD, NetBSD, Haiku, and Dragonfly are=

the targets where '/' isn't a comment character by default, at present. Y=
es,
this is pretty confusing.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 14:38:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 14:38:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226439.1532945 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vposQ-0006NX-Ot; Tue, 10 Feb 2026 14:38:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226439.1532945; Tue, 10 Feb 2026 14: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 1vposQ-0006NQ-Lv; Tue, 10 Feb 2026 14:38:06 +0000
Received: by outflank-mailman (input) for mailman id 1226439;
 Tue, 10 Feb 2026 14: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vposP-0006NK-4L
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 14:38:05 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1aa8cbf8-068e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 15:38:04 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6514.namprd03.prod.outlook.com (2603:10b6:806:1c5::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.17; Tue, 10 Feb
 2026 14:37:59 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 14:37: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: 1aa8cbf8-068e-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UopzUhs2C61/d85CrChPBEpAwvZGDguHXxw1ysqaedRwE1OdQnkUTCB/CEfUAws5Aup2n4hlpmGvNvtudX64HloQB4cE65WIvEQZt/b/fD6WLEwX4IRmdfX02fJAbXGW23ZtL243eu8w/XfajRxfve5ikeCVWG/6xVXO/aw8rw3vxKshZpEUoImVS+ZCOSbMVTEiUaVMIHyXE1J9jPX3b2XgOWKRcJVnfZoa3YyytTFcmKfv9ZvevL9jTffL3cKhpK9rCAdtIuylIB9WYXqWPJUlhWRzmnm8eR5q8XsZgjh11r9XrrRUPyFB0vRopNOd7SXiKBJ09aZWrpq7vhjx1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Pz9cjut48Hq80XyhU1j02ksFnId54df0Cp/IRYYatGc=;
 b=uTK1o59za4FOIWBtLpcZ/RtWD3qirVDpFV5AFI2GiTveP8m0SiccxXHiOOk5qIEFuVky0FK0eOLyc1/Q/IvJdM4xkdBC+al4byCLHyl7VSzaLsKxZfqRDggpRIpiTM6SrfvHaLsdlikNn7vFxcISiM/L/PXAAvSG0o3Krp5u7dzmE2y8ZoSRMkeoVwQ9cdMjJRyPUAUD9Oy/eBwUrP3ZaHlV9xr+zGjMq+NPMonMV0eUZ8TYYKBjBYjJUi/rC51LfcJdIPMCRkEd/pH0DhFnJw1LuE0YyxukhNyEvSXfvFP7dykgkWTO3UGs94IRUmc4WxpCFBVnOJSL4NjUDGiMxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Pz9cjut48Hq80XyhU1j02ksFnId54df0Cp/IRYYatGc=;
 b=cQB4vBt1NVqYGAhD3TT6jJpM97PqWB6OyJGR1mtqSbB6hbT0H9oIZzuqjtAgsWADrK47L2ZrM/jlqJjKtk1hY0ra4tHiuRvd00117vnsmjuDJVP6/S/2eA9BVpA2O1fIbmh554dwEVbKOWS2Z/+LuG12az66EEUCyW8nHjgUcr4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 15:37:56 +0100
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>,
	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>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH] non-x86/symbols: check table sizes don't change between
 linking passes 2 and 3
Message-ID: <aYtCxOVsoLTd1fNc@Mac.lan>
References: <b61b7054-b27f-47fc-b268-f1dae3f1980d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b61b7054-b27f-47fc-b268-f1dae3f1980d@suse.com>
X-ClientProxiedBy: MA3P292CA0036.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::15) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6514:EE_
X-MS-Office365-Filtering-Correlation-Id: db22b715-15dc-4d98-4f2a-08de68b1fcd6
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:
	=?utf-8?B?bmJYdkRRMHdRNTRVTktFTThnbFU4VXk1QmNUQlRtY1pDQ0dYYllLSnVTTnlP?=
 =?utf-8?B?dU5rMEhvUXZzM1Rjb2lraldSaFFuU2ZTVlQ4bHk3VHBSN1B2NHRIMVhSOWxy?=
 =?utf-8?B?Z0k0eEhkRHIzS3BzSStVaFpTTUJqdjNqSE1vbkhjV0JBaXF6MFVLOXhrL0lt?=
 =?utf-8?B?SkV0ZjhDdFR3MVBvTHhTVm1ZUHF6a3hJb2VKT3RIMVo0RHRqMmhFdGM0SS9Z?=
 =?utf-8?B?ME01Q3hQTS9qZ0pXVGp6Sm5qTzJ3dzlIOHJYNGtNMDYyM0R1dDVobVFWRjhD?=
 =?utf-8?B?RVdHTDRFcUljNlMvVjNXTVdBV2ZVWmZTNWlrMUI2cmxGdDlNSGE4eXR4SjZZ?=
 =?utf-8?B?bTNDSWJqMGxBYWRGZnRVY3cxaVh2M1I1RkZRR2lMTGNOTHBEY1VsWHBOUGNy?=
 =?utf-8?B?a3IzR1Yxc2ZKd0RJZE5zejcxN2hBNlpmWWtWdWxCaGRJaGJyZDlRL1FRdnFG?=
 =?utf-8?B?TlhKcTdrQWNqdVU3RytaVkNhdVExeTFvWXExWUR6S1VrVXUwKy9acUF2UlRi?=
 =?utf-8?B?ZnhQS3dva01WQVdReXBSaHh5RWUyb1FNUjgzV1FCMFdNZWhJY0F2SGIwWXpY?=
 =?utf-8?B?d052UlptNDcrb2VpV3p4TWpSV1RaVU05VnVrYU94ZTFZYUN2ako3bmRiaGpw?=
 =?utf-8?B?ZCs2ZTF5ZHh5Tml2dWxWanlSUkpxZWdsdldtNFJuYXN1Q1lpU3BjUzdaY3JG?=
 =?utf-8?B?YjYzTDFBalhqTDVUYithUUxWWGlIa21xVUYrOEVHRDc3VTlVYXZncjRUWVhn?=
 =?utf-8?B?RXpHRWJkclhOZER1WXJXcjQ1WGpBVjJScDY3c3BiV2JBSW4zQ016M2lUL2JY?=
 =?utf-8?B?ZStpNHEzdGdWMVhJTHN5ZEJYcjdkMUdwKzJkNC9BczV6eFFqc05kYk9UVmJ6?=
 =?utf-8?B?bmwrZG5wWktZSzhtckx2aW5Sdmp3eFVubHRkOUhOU2t0WlZzWm83N3JwanVP?=
 =?utf-8?B?TFVGbThaN2dCZzd4WEl5UUIyK3BDeUFNeHlWS1U0a0hPSWFnVXI0Yk4rbU9s?=
 =?utf-8?B?TVlRNkt5a2VDcjVHQ05LemdBVTJFUHBraVZBZGtGRTdMVzgwcnJudERVOVpC?=
 =?utf-8?B?VGpvTTQ2OWZEV2FMNHVNbUptR1pvR1huWkh2cWYyY1NRSWNrRFA2R0pjTG9t?=
 =?utf-8?B?TkU2N20zdDg0NUVKZlNzZlQyaFRrQjdvSVFtSVU4Nkx2TjFHSXcyRkczZEdN?=
 =?utf-8?B?aUt1cCtIUGNNTWlVV1J0WUc0MEhITTltbTZDclNUOUs2eVJyTEJDeGw4dGpV?=
 =?utf-8?B?ZlArTEdvYmpJTm8rZmtjUThUT1pXS251LzIrYU84U2g1YVJvSUZPK3JwY3dt?=
 =?utf-8?B?N1dDdzI0S3czZ0lONDdZalNmb1MvT1FLVlRDN1FCZW1Ia2VhWWlua2xLcXlG?=
 =?utf-8?B?YTQwMCtUTzZvR3RTK0VSaG9aK0xPYkNBMzV6Zk04V1ljbnRNRlBxeG5QeWQv?=
 =?utf-8?B?UVpsUW4zUDI5bW53M1ZVQ3hRTXRicEpwREJZNm9FcFBEZWdRaUM2OUdEU0Yr?=
 =?utf-8?B?L3Jza1JiZXJiWTAwelVhUFJncXZjajVvVkRhT3RtNU5IQ3NzUjE4ZHFrY3dO?=
 =?utf-8?B?TUp4NDEvNVkwRzlGS1pYTkNSYlhCNFlEdGN2Qnl4WWVVVTdPVy9ZWVZuZnhL?=
 =?utf-8?B?ekNxZk0rdjZ6b2NBMXczZ2NZVVlkLzl1UkhlZUdOOXdBRmVBanc1bDZmRnJm?=
 =?utf-8?B?UjUxUWhSaXJjaE92REtBeEk4YVBob3NPa1p0RU9FRVo1ejJSRXRPYVExRVRr?=
 =?utf-8?B?c3NMVExzc3F1bU1lZGpWd01aTEpwR3pBenZRV0dEVG8wd25kVXFmSjg0YWZ1?=
 =?utf-8?B?eW9ObVd2OGFNcUsrTm1jdWRFbFlPUnArNFFrUFlpcUxDb1YxU1VkN09CQS9C?=
 =?utf-8?B?Qlk4WkVMTXVJL1NZblNYQXZwTDM1dnlza0xYbWN2RlR3UkpFc0U0UytpNkF1?=
 =?utf-8?B?U1cwVi9EMHdzRENveUk0dHpkb2k5VWtOMnVaRFRzUWtHNnRoRXp1ZnVndXpt?=
 =?utf-8?B?aW9oNmxyczZ1QmwvNmtpdVhKb0sxdzFRTVhxVkd5UVpETG8va29MMWRTdkkx?=
 =?utf-8?B?YUtYOEMvQ0hVaWdGeTk3dERVWkdoWHZEWUd2V3NaVUhMWmpBS2lLamVBQ2F0?=
 =?utf-8?Q?W1Y8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WEdHOTRUK2xxSXkvMk9GVmkxVGRXemNxWXdKTE16Q1l0N2J6YlBzZlEzS0Vi?=
 =?utf-8?B?RUxSSktXM05xMk03Z1NkckJkNWt2UkNnV0J2Yi9uQ3E1SHlvL3QvV0hQUVpV?=
 =?utf-8?B?bzB2V00yYXdkY25RNFpkcTdOMXNZNFhlV0IwNVFwR21KQ0ZmUW9VY2J4UlZS?=
 =?utf-8?B?TEErL0FkM2VlR08wQVF5b3o1WGp2a2ZCY3IxRE5VZTJ1NDh0Q3g1dGl4akkr?=
 =?utf-8?B?eklyV2V6NFZyTmViWDBZWUF6OTllK1FiTHNvUWVac1cyekdlVUh1ZTBYYklH?=
 =?utf-8?B?NXZyZklLZHZ2ZFMyd3VYSFlHOWUxOC9semhKemVON25KS1lKQnMvcnRrdEhD?=
 =?utf-8?B?WS8zbkVxL3d2Mjd6UDBlcyszcTQ4bUxDaUJWSi90cnJ4Q3hZL2F1cFc2LzE2?=
 =?utf-8?B?ZFFBZjN3c1JhYlRXYVR5WE52OTFCOHFVKzBBQ0VsdjlzUXRQek5Qakg4OTha?=
 =?utf-8?B?b0FrL1pnc1FYUU9ucXhENDZUTFoxQ2JzYzAzK3dwYkZJOVg4Y3UrUXB4Y3dF?=
 =?utf-8?B?SUU5VkZyUTlwdjRRbllLYmorYzlyMDNEZlhod2VqRjhQalVqcXFVa3g3SmFv?=
 =?utf-8?B?eGZvMEpXTFhzcWhVQ2VnMkZXQnNFSmpNM3hjcGE5L1BKWG10MnhNUmV0VlZD?=
 =?utf-8?B?Wk42eVFpbXhTZDBva2c3QlJENmxvZE1TZGM2UlhMSkltcGp1elhMeVd1aFRi?=
 =?utf-8?B?dDVZS3pzeFF1bTg1S2h6ZVF0ZnFUcjBxTEI2YjVVeEE4MlcyT09sVXEybGJk?=
 =?utf-8?B?K1dJZ3JnSysyYmVRN2FjOWIxZDQ5OUU5YzhONGovR29OcU0wN0tnaTl1aGU5?=
 =?utf-8?B?QWtZTW5LU0NZMm5yS0RUczUwdE9RV1FKRU9mbEFndS9RZUVydEhJRDZTVStB?=
 =?utf-8?B?bCsvVFowb1dkbm5BM1gweHZpUWZlWHJvK3JzVFV3dG83RGN0WHFPUVNhek9P?=
 =?utf-8?B?RFhRMHNyK2RIeGR0S21EUEM5Qlh3MFE1SUY1Wkx6NVNpR1k4d09CUFllbTBZ?=
 =?utf-8?B?MzNpdWJ4dDAvTTRjSklxSVh3eU1WY3l0YkRWNW8xQm4yQjBlajVvU2dWdUtK?=
 =?utf-8?B?ZDB3RnlqWS9TTFFSdUJTZzJ1dEdFZWJRbDVMWWFOT2FEbnQ1V01EWmI5NXZm?=
 =?utf-8?B?dExPSCtlQkRRazVPL2tJWWxMUkVjVERtZm1CeHQrSytIelJrakVtZkZiS0RW?=
 =?utf-8?B?VVBPQlN0QUh6cnh5MTNyWHU2aXpYclVLMUFPMWpJNHp4bFVXVnA1dXJ2NEMx?=
 =?utf-8?B?T2VkSXBMbTJ6WEFHODVLY0ZXbWFtK1pBT3JZTVdNWncySUkraUdUYVR6d2kv?=
 =?utf-8?B?cmF0Y2JhTmgwbjFOSkhYZlZiWjVCMHZQRVNLaWpWNitDVkFnT2t4cmVIWHJ5?=
 =?utf-8?B?S2NuNUpwYTM5aTVJMjUySzRTYTQ5OXNrZU5iM0N6SE5Xa0h0N3NaSzAxeTVp?=
 =?utf-8?B?c09HcDJwbkV2YkVSVnBHdXd5RU5JeWNRT1Z3Yzc3VkFHdXY0NUQvYk8xeGVl?=
 =?utf-8?B?eXNOeC9kaVVnbFlDZGtKdmxMd3lGYzI1TUk1VTZrakVLcEtSNC81YVBUaEhT?=
 =?utf-8?B?Q0o3a1RGY1ZacGpQMWNsMVI2enNXTWFQZ2l3SUlHTWtiT2x2dm9pWVpzWVZ4?=
 =?utf-8?B?SE84YW5uK01QdmJqTmFFVHY2SUZXeG1IK3kzSnh1ejdBNnptMXN6Um0zQVBS?=
 =?utf-8?B?dnBVa1dPbGhRT29oSEZQaUJrN3pzN3FpWHVzYlU3UndPcHQ3ZDM3TGZDN2Fx?=
 =?utf-8?B?TGNnZWNDaU40Tk9ScWRvdFZjNjdwWFpGejlFVjY1SEd1OE1udmlpcXdkTjFC?=
 =?utf-8?B?elc0QjFwOUtoS25qWDBPa3N5T1B3NnNxU2hVNXVKM2lUNHNjY0hvN212VlNE?=
 =?utf-8?B?MWJBMnozR3U3bHF5b0xic2NGdzMvSGJSNlVtTnpjM2RBc0UyenVxM3M3R3pw?=
 =?utf-8?B?bG9qdkhZYVNkVkRXMjM2Z0lWRTFWajRYOHNEcXh4SVp5cllobHZKcHdtZm1i?=
 =?utf-8?B?VjNjejZlcVc3dFlneUUwZjcwQVd0cDhhUWtjVWJOU1lISzBiQ3dwSHBFMXpV?=
 =?utf-8?B?LzhvYkRrQUtZZ3dTTWhFa3RJdzBXdWozMGdIN1hOUDd0Q2pqL3QzeFZOeWxs?=
 =?utf-8?B?dFlkNjFjejRyWkpPUDhWOVE0ZmFGaE0wVWxJSUd4VVJVdlNEbURpdWFxM2hs?=
 =?utf-8?B?ZE1VMk1hNXBmRFZ5YnlpYjdCdFZZN3VqS2Z5NWlqNUlaOEZPUDIxdTNQdzFs?=
 =?utf-8?B?dDduU1JWOG1WZG5HMlh0YWNiY3JoRTl4MURHWWZuME5NRDl0RWtpbVZrUmZa?=
 =?utf-8?B?ZlQ5YmVFT2ZDa3dRd3dIemNEaURLVzI1c1p4QnJ3OTc2bHhQZyt0UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: db22b715-15dc-4d98-4f2a-08de68b1fcd6
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 14:37:59.6449
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HXnzYMPqsa26fTAG8Fd6PxcmqqomFE99lnn1Tc+1hppPrIhvmoAry1afd0t9SlwARpH5hhFlKtAEpTtQ6oX93Q==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6514

On Mon, Feb 02, 2026 at 03:45:37PM +0100, Jan Beulich wrote:
> Extend commit 1df11ccceb1a ("symbols: check table sizes don't change
> between linking passes 2 and 3") to other ports as well.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Do you know whether the risc/ppc builds in the CI are OK after this?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 14:44:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 14:44:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226447.1532955 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpoy8-0007uK-Ek; Tue, 10 Feb 2026 14:44:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226447.1532955; Tue, 10 Feb 2026 14:44: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 1vpoy8-0007uD-C6; Tue, 10 Feb 2026 14:44:00 +0000
Received: by outflank-mailman (input) for mailman id 1226447;
 Tue, 10 Feb 2026 14:43: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpoy6-0007to-W7
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 14:43:58 +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 ee0ad15e-068e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 15:43:57 +0100 (CET)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-4806bf39419so41760175e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 06:43:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b2facsm35408334f8f.9.2026.02.10.06.43.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 06:43:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee0ad15e-068e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770734637; x=1771339437; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=OewjieWvu9HOAKX1qhL+XX6XHvbLCQZU38/WcrnIoqk=;
        b=Mf+sLkFMEUpDzgzDM2YvkuqrOgC1Vsj7+AEYu+VAqGokT8btvxP63LFtidsiEfXL00
         hAvh/WquytyJRbv5B9DUMjgieGC2vdIfFboWipSuec40mdpy0Yo0d2QHH5ntAyEMw6FV
         NmYuDV3Kf6bovS5SMpejb3Ys7PzzSOBSrSG8xfw0NV73ZtGld2HR6LYTre1IcecT1kAb
         BZJJIhb5ZHLDe+vZAOPL5taJuLudW3K4xiAIRvJMgMqVfNdyG7bOfm2jRJIPRYaX/zxT
         Yzhw6HwsLkt3K4bq4d9xJ8QpxImXRIO0rtrX+27PecV0xFtig3gHXvDVt+W/zmlUd5Gi
         Fmgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770734637; x=1771339437;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=OewjieWvu9HOAKX1qhL+XX6XHvbLCQZU38/WcrnIoqk=;
        b=SC3yf94pXM5TSP+mYMvZCZNRDutX8wgj5oacoKl7FdB7qYHnYvGMx0QkmjxtShbVJp
         kZLuojDZWGg4Qyn2mROTKkse1LbTxAsAF6vGwgdXmSD3E/QUcfrHHjE7DtHkCBi43H0p
         1YRnZWnO/yZKuDfy0tDdCggEalZ1e2P4Y9ZMmCBOJ0uXcygIguD5rRss/n856VkEVK5A
         0fNLwl0vnct43urgsNNEmrwT0a1YgzNxMWP6pXLnUmu1krZ1KTNRIulMKbshoGc6VRjf
         FFpsME8cZ2SSpo2RiSVXyu2alg/rU67/JYLRXZzGKX2SWuipvvW+aP6sQdXAt3XDnjcb
         AaWg==
X-Gm-Message-State: AOJu0YxkxvpjzCZN/JW6vfNcy8SLLJT7mMqfDK0o//f9QPYXR3U5GnTO
	iI7Cu5+q+9lg+16VSv9VOPa2c638yOZdkqVhdr9xElnl7IcaU+RM1r/fA6lo27SRNw==
X-Gm-Gg: AZuq6aKrXcpOZzsz4mSnEPltylAvsYE1BVAsmP1zx5uCEg8aHJLFn2FGtCvjcVqYruL
	HCTVkpYBDlQG9MVlhTeMA/WG5rzUjaPv1yQrAzVjTzXAagHwK7p4olnzTkam9xzzXUD16TK6VgI
	LDPQ61Npz8phqeTSfR3WiU1r6ouRRQgk/0An4O9UgYf+un7FnaRraLJeuat40K29k0aOrsqbtKl
	GsPktwFg7AED7JJwXnX+xonYx27UxQTcB7QT3uVteEbwF7rIL+YTIPcZBkklk7VwxitwkVC+l2F
	0tlV8sbR+0LgDeaS1/Nqanq1W62adVcQPO7/7CTJGp/D/1TIqXhWVIyFcENlfVAxw2joIzDU8qr
	RdG8iyiXaAAGxTG6emp34p1exZRftBoFlco5vSm10xq9mt78TB4b19M+dM2SneVNx/SsUQz2v3A
	GGqLW3hCPBlMyuMbawlxsRpBcwgWVqGPJiOhiAwd56qjW/dfvr701uax74rRMr9dbZFw4cT385s
	4EExDOHcaW1k98=
X-Received: by 2002:a05:600c:450f:b0:47e:e97e:11aa with SMTP id 5b1f17b1804b1-4834f6c154fmr39005795e9.4.1770734636928;
        Tue, 10 Feb 2026 06:43:56 -0800 (PST)
Message-ID: <350a6794-5117-49fd-8850-a34f83a2ab91@suse.com>
Date: Tue, 10 Feb 2026 15:43:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] non-x86/symbols: check table sizes don't change between
 linking passes 2 and 3
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 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>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
References: <b61b7054-b27f-47fc-b268-f1dae3f1980d@suse.com>
 <aYtCxOVsoLTd1fNc@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: <aYtCxOVsoLTd1fNc@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.02.2026 15:37, Roger Pau Monné wrote:
> On Mon, Feb 02, 2026 at 03:45:37PM +0100, Jan Beulich wrote:
>> Extend commit 1df11ccceb1a ("symbols: check table sizes don't change
>> between linking passes 2 and 3") to other ports as well.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

> Do you know whether the risc/ppc builds in the CI are OK after this?

Not yet, the pre-push testing will show. They are okay in my local builds.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 14:49:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 14:49:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226454.1532965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpp3E-00007P-0k; Tue, 10 Feb 2026 14:49:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226454.1532965; Tue, 10 Feb 2026 14:49:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpp3D-00007G-UA; Tue, 10 Feb 2026 14:49:15 +0000
Received: by outflank-mailman (input) for mailman id 1226454;
 Tue, 10 Feb 2026 14:49: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=zRf0=AO=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vpp3C-000077-1F
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 14:49:14 +0000
Received: from mail-oa1-x2d.google.com (mail-oa1-x2d.google.com
 [2001:4860:4864:20::2d])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a94a6065-068f-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 15:49:12 +0100 (CET)
Received: by mail-oa1-x2d.google.com with SMTP id
 586e51a60fabf-408199852c5so682987fac.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 06:49:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a94a6065-068f-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770734951; cv=none;
        d=google.com; s=arc-20240605;
        b=M5nUqntcgO9tuDJ+ZltjcPIMfdDbM3FCpzOdzoDbymLmQ4LpY7yR/e7xEoTpIgy2PX
         bVMYswEERQPc7ib5SC4VrZTZGScQEk5Wkc5zl1mcIWlanrVOUZNmYI3oe3QS517UjTJP
         GQZQTCW9DqoROilHKTRzQlj2wm7uTJTv2qQC/+YO/rohvgmZiRseP/tkqEa5SpSNivnf
         hxhGx+u6U2JVFxqcuhcHNX/tO17rTKrNeMuIVag2xYGp1jTTSkF3ASM9rsx5axZrtwjm
         z+ETrJx5dNNTeXtF6YaebWN0lab+DNvC5pTbavbHHM0GsKv3T7uTa4PLxfbUiDbXzPOn
         4hBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=h0g7N1VoLGCGCiWjMIUHM+ywsBKDW5F8EoGXdpjsxm4=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=Jjrxspr87rxkb2K9Ysz9mktjGBbfkId7SzKJxUdcy6UVQ2p7lZcsCHn6w7ucbgrBmj
         sGaE9FF7/QiJoOg/7OlHrcCPgPASuiM/yN7J0S8A7X+wwlSI2azppUsv/ThHy+wAaMrb
         nDEZxws77XsruZnyUt5ziKu1rzTxzByucxHXBQrwkt+zZ6+fCHHc9nRN7+RKWRQ0wTQ6
         559on1DOJ+EiVzpJzqIPrchfKM4xZVSP2l2KCQrfu/QrnXinzHwrH2yy/9vKGfGqLgRN
         kVL2lq/gBiPLBcpWuZJ7QaaVT4t9dGxSmiED9jqSaU7gGS9tMoY4hxkMguW7KqfN+hxy
         hNBw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770734951; x=1771339751; 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=h0g7N1VoLGCGCiWjMIUHM+ywsBKDW5F8EoGXdpjsxm4=;
        b=eJ3Gqhu/lCK++zTrdDYD6JxZZRxG2bRJBco7o0cSszzughqJvI5hVB7X1bYa9DkoLh
         pE+XM5ayN+y5C5syhv0oC35OGLuAzhY34o1o4S1QQpztc9Lcplb9Q7ceoaLaJcJwvwa7
         JPKxk75ZmIDNoiIjgiMVwmpRoU20dSgmlCfSVVMkH7oWQ7YupfLCuOpVTCyiOH3oUe5d
         aKeUN8Ylp14RW5w1KCOE3+5pg3YPcmdkhlSE9Q1mIppCW7Q7QgntMa1VX7vXD5Y+c7sU
         lrrHS7oAmqMCOe67lOK2sFcgmM6EnpjnN3EQHS8N7GVQEtTWAAe8ASx7zYlwSPsliUDT
         qJGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770734951; x=1771339751;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=h0g7N1VoLGCGCiWjMIUHM+ywsBKDW5F8EoGXdpjsxm4=;
        b=WaU28GkPEZ3oyEafLyoZiI6Wx7br03dXWAM1gLO9hJOrMw879sMnMZYtzk+0S+8RRk
         w5MC+wJ1JeNv3f3gciMacH/CxG8aOKRE8TaYQPPGkAFgPt4AIAQ1WVG/vROL9XqRqvNt
         y+Ag1Y/1DGcLGJ741hGdyrGFPYPeJhmrFlDnQcjJcnuekjJFRkh/n9ypa35/l0fim5wS
         /v0drSUvTxjgg3ApSUwYU21HFNjPZmYjtxV1BkEvOYKUC3T5wvQEltkO2hNC99jjAo0Y
         Y3BhMf90s55GnZnA4ZqYsSqJdIMuCTJ4JNfyxgN2mz1i1vjIwh50w2m1reoQrXAcm+8k
         LlOQ==
X-Gm-Message-State: AOJu0YwDUT8XtE1MEVfkL4Z18/M/Dukv5mqiifsfK+Q/hHpzIoTkzNsV
	95DzNQpHhW6/QOja60Ud1Oin41c7BoseNHgeBEj57RH22JZBfKVyBc/4wdeZuUS0JDGGMUMk/vE
	xFWbs4fI9Y69ttBQjvM/QckLJeY4lOhk55BpfIrEvdw==
X-Gm-Gg: AZuq6aKzl1dwMkkYphJ3LMGcXfc56dCpkrmKEhn7XP/4qnyXLJrJbmcaI7VRJg+I0EX
	MKFwNVMu+3mMAZeTiXjo+tMmtte43oPGGTGfW0P5/OqjdbruEYV4GaRvXMb+s/OSJJv9dneCvT/
	r4qrRyhs+gOmbgiJHqOQaNrirkOOewiSdqOAWEqnMBbjfhRDBE19CnWWXbs05t6eeuki2DayYPL
	oki+RxySEP4hlSS5M2eQPVe0TaLAxQ/ok5Lz5dUbuuqciO+lxLTIiVXJQXVNrM+xJe/TMoW4F3r
	x7eJ0KJZcgcBLNVpMhW9ebbFTlzl4umZq9e9gw==
X-Received: by 2002:a05:6870:960a:b0:409:68f6:569b with SMTP id
 586e51a60fabf-40a96c3f46emr7503833fac.12.1770734950917; Tue, 10 Feb 2026
 06:49:10 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <f6cbfbf8a30f7d9f4b4c86e663f10de578965c05.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <f6cbfbf8a30f7d9f4b4c86e663f10de578965c05.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Tue, 10 Feb 2026 15:48:59 +0100
X-Gm-Features: AZwV_QgkdyupUtA5YpS0SjbsQLiRA7KTwmaPzE3S-06pIrFXocnfHXQXPIfWct8
Message-ID: <CAHUa44H17k-i21LX0Q5YL2nCfxpHGMBcb6LFH3CC-LPGZKyJjQ@mail.gmail.com>
Subject: Re: [PATCH 06/12] xen/arm: ffa: Fix RX/TX map layout and errors
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FFA_RXTX_MAP builds a descriptor for the SPMC and the composite region
> offsets must be 8-byte aligned. Xen currently uses a 12-byte header
> size, which produces misaligned RX/TX offsets. Mapping failures also
> return INVALID_PARAMETERS even when the failure is due to resource
> exhaustion, which misreports the error condition.
>
> Round the descriptor header size up to 8 bytes before placing the RX
> region and derive the TX offset from the aligned RX offset. Return
> FFA_RET_NO_MEMORY when the TX or RX buffer mapping fails before the
> error paths unwind.
>
> Functional impact: RXTX_MAP now returns NO_MEMORY on mapping failures
> and the SPMC receives an aligned RX/TX descriptor layout.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_rxtx.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index 50758fb57cdf..eff95a7955d7 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -119,11 +119,17 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_=
t tx_addr,
>
>      tx =3D __map_domain_page_global(tx_pg);
>      if ( !tx )
> +    {
> +        ret =3D FFA_RET_NO_MEMORY;
>          goto err_put_rx_pg;
> +    }
>
>      rx =3D __map_domain_page_global(rx_pg);
>      if ( !rx )
> +    {
> +        ret =3D FFA_RET_NO_MEMORY;
>          goto err_unmap_tx;
> +    }
>
>      /*
>       * Transmit the RX/TX buffer information to the SPM if acquire is su=
pported
> @@ -136,7 +142,8 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>          struct ffa_mem_region *mem_reg;
>
>          /* All must fit in our TX buffer */
> -        BUILD_BUG_ON(sizeof(*rxtx_desc) + sizeof(*mem_reg) * 2 +
> +        BUILD_BUG_ON(ROUNDUP(sizeof(*rxtx_desc), 8) +
> +                     sizeof(*mem_reg) * 2 +
>                       sizeof(struct ffa_address_range) * 2 >
>                       FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
>
> @@ -153,8 +160,8 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t =
tx_addr,
>           */
>          rxtx_desc->sender_id =3D ffa_get_vm_id(d);
>          rxtx_desc->reserved =3D 0;
> -        rxtx_desc->rx_region_offs =3D sizeof(*rxtx_desc);
> -        rxtx_desc->tx_region_offs =3D sizeof(*rxtx_desc) +
> +        rxtx_desc->rx_region_offs =3D ROUNDUP(sizeof(*rxtx_desc), 8);
> +        rxtx_desc->tx_region_offs =3D rxtx_desc->rx_region_offs +
>                                      offsetof(struct ffa_mem_region,
>                                               address_range_array[1]);
>
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:08:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:08:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226474.1532979 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppLe-00032q-I9; Tue, 10 Feb 2026 15:08:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226474.1532979; Tue, 10 Feb 2026 15:08:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppLe-00032j-EF; Tue, 10 Feb 2026 15:08:18 +0000
Received: by outflank-mailman (input) for mailman id 1226474;
 Tue, 10 Feb 2026 15:08: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vppLe-00032d-1Q
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:08:18 +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 53205e91-0692-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 16:08:15 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47ee3a63300so11170915e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 07:08:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7e64b0sm80040255e9.11.2026.02.10.07.08.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 07:08:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53205e91-0692-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770736095; x=1771340895; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uqJ7H72ncEND5SnzB+zrdRm+07gCCGGs7+TXhIdV72U=;
        b=BzTVNhB5qENe74bb2h8ji/fpxyBmWFFsN9XDSeA/tt3JVyVy/eHpbZKi2lV+/IGJsd
         9wjUjGi7IPR3sTdZHRPIXykPAKHgP9N/+XY91nHlaCUxrq9aujwScd3hMiEJImVCZpbN
         rGRivx9qHdTDEQtmb2ycRlBL2+cHNjQkrItnVEVhR7CbId+hADuIopc1C9P/g1/KKbyN
         mL2zU+iJQJFcTxOTl0jzceG6lR93m7S0DgC01nPHt6G1xFBpSrfMF3E+sfIvJzz47Jyn
         dyu7HQ2dJHzZWlaKib4KdDXJL49YSbmjwCXulIHI9csmxgsw3h7Fw2IVpTOXqfaeYXU2
         YDzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770736095; x=1771340895;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uqJ7H72ncEND5SnzB+zrdRm+07gCCGGs7+TXhIdV72U=;
        b=JzvATfFCZ0tLUISyt9iZpdGWg6YpsQxtJG7ZHbaq8GwLplVhDx+6R63w5wvz9alT1G
         p9x8y58ZO2s1K/+gvOBgXNickll2AKciIPp6+KCC/aue9wv0Fb0i7a8cjzX4Vt7jxMw9
         6/HRQSkIyTVGGOYJL2LVtaS+PtABOA1yTCzhqMq4Rj/UH2C4UiCR6KXweqHCQ4+byvp8
         Ul/4BX8lwpKrVa6YBB7MIlO6UPKkS1gIz8vGMLs0UNVVC2tXcuH7xsm+Cw6l4sY9q3uU
         fMFQAmhP8TbQkDYtki+mU76sj8jcvQ7icjpKZf1EXL20BAgIQjlwGlDRL2ox3oJf39aE
         hxdg==
X-Forwarded-Encrypted: i=1; AJvYcCVn3RlQD038z45ZId/b/bQj1iFFv3Zj2OSFZaSKj7nCKHYOo2OAPW2AwH5/FJ4DEEngGKYpG7kFMBM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAY5yNMdhsnMz3qLcuXza902ro6GKmrpOQhus9aaRTbDFTwluZ
	nL/gB13D5VdhvmyboowV70EkeAxajUzFGproEJQANE5zxU+IjUoVLc0AK7eZzzRuiQ==
X-Gm-Gg: AZuq6aKzfRwkOTxEx0rNaJ0WqB1aHVtSGCj75GW73PfJy2exOiv9caA6xwaAt3vxcc3
	t3i+eXy3lhnu8cBHpqHc+4s57YA+qyUXF8l8WrfvAtEZuQTzLS/aMD9jSeT4/KS4DSmq+B8Ffit
	DWLIvxmFWrwPQwcF79YkUt7D9pDnKpAGgTjMdSucIxS+qKs0MD2DdQM2g/AMZqf7m0CGTgrEM2d
	Rpn5Q66zv+rNBKTYWAED+relJdRUpiF6f81YGxAryVdJibRWsEd6YUdt//F3Z5UGYxw0BboajoP
	67j4xS6uVBUaC7FgNtGOEYacKPkwD9io+KMjuqWDBNG3Dd3rOiFmXpxz9lyoMXi9vsS8BwbeEfE
	ay1m4WvNcmqofwfw9JcaW/9U8T9GWZFF17boGyAn5RACYmdqgyuyszVZfVqiTESBSdFTaabRC+w
	xYykttBEfhJTrxON4S/v02DkWhGK9qQQFBQNqUxAljWdQbsnwG6lj98vjjGoUBYPduT4RSo/igA
	Pgu7LrgldGkNSk=
X-Received: by 2002:a05:600c:6285:b0:47e:e87b:af8 with SMTP id 5b1f17b1804b1-48320231170mr228488825e9.21.1770736094968;
        Tue, 10 Feb 2026 07:08:14 -0800 (PST)
Message-ID: <869795f7-1bd8-4b4b-ae91-6876477115df@suse.com>
Date: Tue, 10 Feb 2026 16:08:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 5/6] xen/console: update conring memory allocation
To: dmukhin@xen.org
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: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-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: <20260205013606.3384798-6-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 02:36, dmukhin@xen.org wrote:
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -463,20 +463,34 @@ static void cf_check conring_dump_keyhandler(unsigned char key)
>  void __init console_init_ring(void)
>  {
>      char *ring;
> -    unsigned int start, size, chunk, order, memflags;
> +    unsigned int start, size, chunk;
>      unsigned long flags;
>  
>      if ( !opt_conring_size )
>          return;
>  
> -    order = get_order_from_bytes(max(opt_conring_size, conring_size));
> -    memflags = MEMF_bits(crashinfo_maxaddr_bits);
> -    while ( (ring = alloc_xenheap_pages(order, memflags)) == NULL )
> +    opt_conring_size = max(opt_conring_size, conring_size);
> +    size = ROUNDDOWN(opt_conring_size, PAGE_SIZE);
> +    if ( size != opt_conring_size )
>      {
> -        BUG_ON(order == 0);
> -        order--;
> +        opt_conring_size = size;
> +        printk(XENLOG_WARNING "Rounding down console ring size to multiple of %lu KiB.\n",
> +               PAGE_SIZE >> 10);
>      }
> -    opt_conring_size = PAGE_SIZE << order;

I've spotted this removal only while looking at patch 6: How does this
work? We require conring_size to be a power of 2, or else masking by
(conring_size - 1) isn't a valid thing to do. You even touch
CONRING_IDX_MASK() twice in this series, so you really should have
noticed.

> +    if ( opt_conring_size >= GB(2) )
> +    {
> +        opt_conring_size = GB(2);
> +        printk(XENLOG_WARNING "Limiting user-configured console ring size.\n");
> +    }
> +    else if ( opt_conring_size < _CONRING_SIZE )
> +    {
> +        opt_conring_size = _CONRING_SIZE;
> +        printk(XENLOG_WARNING "Using compile-time console ring size.\n");
> +    }
> +
> +    /* Contiguous buffer; does not need to be naturally aligned. */
> +    ring = xmalloc_bytes(opt_conring_size);
> +    BUG_ON(ring == NULL);
>  
>      nrspin_lock_irqsave(&console_lock, flags);
>  



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:10:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:10:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226479.1532989 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppNj-0004WD-T0; Tue, 10 Feb 2026 15:10:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226479.1532989; Tue, 10 Feb 2026 15:10: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 1vppNj-0004W6-PX; Tue, 10 Feb 2026 15:10:27 +0000
Received: by outflank-mailman (input) for mailman id 1226479;
 Tue, 10 Feb 2026 15:10: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vppNi-0004Vw-Vp
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:10:27 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9f6e0ca1-0692-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 16:10:24 +0100 (CET)
Received: from BL1PR13CA0292.namprd13.prod.outlook.com (2603:10b6:208:2bc::27)
 by LV2PR12MB999095.namprd12.prod.outlook.com (2603:10b6:408:353::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Tue, 10 Feb
 2026 15:10:20 +0000
Received: from BL02EPF0001A101.namprd05.prod.outlook.com
 (2603:10b6:208:2bc:cafe::2d) by BL1PR13CA0292.outlook.office365.com
 (2603:10b6:208:2bc::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.6 via Frontend Transport; Tue,
 10 Feb 2026 15:10:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0001A101.mail.protection.outlook.com (10.167.241.132) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 15:10:19 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 09:10:18 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f6e0ca1-0692-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fgOgGCHjAjL/ADprDYcQ+DgDWKYMjJ1j6VkuWUE/IvP9F13vlarRs3RuSWp7E1Zhs0kDa4RhAABI6j0Adn7JaqEmRUElfGNH92ecUre0qMz9LQxgGIOZ2EsJin5VF7GTScxYN6ow2/fhkDqZNWEgrXuwzyHWvj+u8KWKmH1UfUVHBMNru0CrZwCczf8paX8yxFIkGdn3umbD9wTSXCsjtPupL7Quc0vTO4skPaouHJ3evJ5TWpx4ZSMezSPUEExKVnk7E7erxZ13ydhoef6Eke0A1pQhD7htTmhzkgJwuIOoJhdEIHidG15d+UV/rJV4NVLFtOr5WoKyLfxriHV/Dw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=NIngIZTcnXGIxQjeT4SDwU/7/bqa+59yxS7k6+duN9A=;
 b=uXBWNk1wVTqKbwwzV/nXkQwDx+aa8af0SMY6X+sj5i8dXRwWSP+m1vqqQDR8IKwoFbpOS5HMxtm3HYBId7iPpKIEdppzB7BsVImcPFGcwS+H1nJmgoXZ8YHArWUrkXlVaqUPbw84TbREzdxerMGzd+rpBWrGLHCd0OTEm82JWK1DSD0uTPPW7jR/u8z/dR4iz0RPod4VbXaDE8RUk3+BZs7hCKPo831gROe7YeSb7PKU95raW3QU4Mqt/W6sOUeRYPaB/tzgRyiuhetaLiyHxJV7FItz+ni6GT+2Bty5IQVi1y4b67f35IZqLTX5MbKxBZ9gOui9oSvBKXlcYi7yXQ==
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=NIngIZTcnXGIxQjeT4SDwU/7/bqa+59yxS7k6+duN9A=;
 b=jMO0SupZvuyEPxEl2w/y5bG8D3lcz/HqmYBBpgoNvzWO32mj51feSbftOyWvSyzUivq5Rf+e7fDQYEl+cwysPoEeD20/P7k0vx4iCoLumj2v6G8YGXdMOM5OvkMnshQcY+Mr3994OV0FEnE/qOtRIE/yX0lOavRJ4iIPxH8v3S4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, 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/domctl: Conditionalise x86 domctl using DCE rather than ifdef
Date: Tue, 10 Feb 2026 16:10:06 +0100
Message-ID: <20260210151008.217830-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A101:EE_|LV2PR12MB999095:EE_
X-MS-Office365-Filtering-Correlation-Id: 2844fdea-5524-4c44-112d-08de68b68169
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?XGrnzxTa70FYbzyn7a1Fn4THfam5403BPsWvYJ7DM4SByzGDhaCMpHHWeyw0?=
 =?us-ascii?Q?2G4OGsf7JiFaqKmRTELZEZp4Rpodm1bBY7a34OyqwGazf3a8VrIRSZiCmrnb?=
 =?us-ascii?Q?riBSbQOrz8kTUdo/NUg444X9xefBZa3xRh/wBhGSLGq+44PP9FFBufgRJxuJ?=
 =?us-ascii?Q?0HYcFEGpSEityOckgsBWomRlBoYfVyef7/UJhOkBqUgh7qLcm9lloYJKPRC6?=
 =?us-ascii?Q?gC4JRAMAIrgFJGPoW30+H0lC82S5K4VlamjhnWe39UUAZ9X/w69olTsalG9I?=
 =?us-ascii?Q?UYFBHqcep+KNAL5QdupCovmCj8r+gRs8hobPhSTiTFX5ds7FbUCg+x0XzjqH?=
 =?us-ascii?Q?VGMnNYaGBBHCZIQJ17rqqfSVmCWBh1bTvtxSZ6yHSTG2zgVejfNUteHmqLg4?=
 =?us-ascii?Q?IPonWS2Lla5tY91I1y400EkTAMbPjvxCvN6UAB/EE/o+aDRid1mwH3/Tl3MM?=
 =?us-ascii?Q?FRwcDf7MT72mMwniKm17mxbRvIlosqV8LraZzdhYikJw+aDK5dgv/Rkk2CtX?=
 =?us-ascii?Q?Qs0GYT1BV4IftETJa8BxyastiYseTDzsJLMslzhgEEtV7FXRJYVUcZxv27Xg?=
 =?us-ascii?Q?/BZvGMtguNjRBRwZkk/ny58v3dFsPSvm0GIwXZwQhhLf6JHeaqV06YhYzB65?=
 =?us-ascii?Q?phBL8nS1xMcptXo2f18q9wVWsU92YzLJ2itXYa2mB4HdXC88JRsG2809ILJw?=
 =?us-ascii?Q?H2nxVhIZQiGnZMr4LPiFfw1OarOdjMwaFXFvha8yXtZySQhOV4FkXhNkAvKl?=
 =?us-ascii?Q?2xVowElSAs3GlThEPUhd7CCucopNPm3a+rHg77YT8DS/3/5f7LtZVweeecu/?=
 =?us-ascii?Q?ed54lWmfwJuzSj/Ntuo2wHbTg5To8kBGyRCaHan9Zt7TQ4r5OxODfj5Qbu6c?=
 =?us-ascii?Q?lydTQVkR5p2XtvbZnKaH2KmjNGo0Gwo+mY6cCcsaDdxHq0ioZLjMB0FEcsNM?=
 =?us-ascii?Q?DalRbQfeLccdzmT9BhSVwuxFFvtVw6QuVadeJjhbGZ7gXW4wVwwr9Rsilj2A?=
 =?us-ascii?Q?Ze2Vbezb/J+FJX6X2SttCs8K0iIkUIIwnlLBk4WG1bcOzsHNLErd1b9RBC1d?=
 =?us-ascii?Q?/pt3YBQnKjmijGUKZnXz74x2QLAlPpKoJCnU23P/TzoLl2qqZCj40diHsoYa?=
 =?us-ascii?Q?m6CS34+eHS63bajFFTM42MnvYi5hIqO/8mA4A536zb1RJjzW3Ff7SoWr360N?=
 =?us-ascii?Q?GC997YKf930O2yzV+/FGGHvjINaN+KHWya03rKmN7OTYaq0x7Oz20U+b6bA0?=
 =?us-ascii?Q?JbacxTUOr0YvlYkfq6o6YAj5z04YCNzySmMMXO36ZmloM91C7aTGjnhoxSS8?=
 =?us-ascii?Q?eSkCneJe9ngJTO42tiYAqIhhChHnQclYyvdjQVw+2sFTg47497IsUvln+nNf?=
 =?us-ascii?Q?O7fV78SBxvuFtgAzncU+IAASiAiwvmKF8WwL1GBZ6TUlI/hM2/laf5J/bcn5?=
 =?us-ascii?Q?INDRem3CJIKl0YoSGBYluXBxTZqYjbSBaLmassVbFPt3F9RMTaox5Sg+myah?=
 =?us-ascii?Q?1NWVnpdFbqVj/rsfIUOiLdh7CgHyPsT6feivVH3Job9jdwIwtYX20Tr18m76?=
 =?us-ascii?Q?pWxSJvWHzVfAo/4g6scIQu9EGMb0xkfczINZojNr5B3SYLx08jNAKsIRdga1?=
 =?us-ascii?Q?090f+yBJFfctFLzz/IHeI7NXEO6plkNyapwH2EHrBeJXhOVQAeuYxU9W8c8b?=
 =?us-ascii?Q?RegSkQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/nw2Jtud92ktsubnm4Au+o1Ffb7L6G+JWn2DBqDskVeohglOCjtEywjHFKq13ZoOEwv5h+ja0kU43uMd27uD6a71j13Z/tX/DMDmRN+2e9fr8nFzJzIJL+wfYiS79nXpcPL0CGDNWiMX0wLoavxCGGdGXhdAXgcznbPhxfnn2tvLkF5PxyCHZeQbqUTPdQs+wc2ILZ4wYgjX+XGzZIzOQDUQcNlu3SKW35K6fDbn/4gTNADq9Ku/OLa8avez8YR63BxENvWMI5okaPtA9qHrSMQXW+ABOt8gBFxBDm1RrUK6yPB3gEzYl/sdA/oWT43WklZX0XWKakHetn+/D3jjHRMTLq064JjvR1DAaLOsonRfRuyhzXuPAcAuTJXikzCTJ9p+yygDYE3YqJaMBVCWDAcVTuHRHps92Lhxt7C0MnWLAqZJT/T5NwbDFefLWnoW
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 15:10:19.7194
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2844fdea-5524-4c44-112d-08de68b68169
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A101.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB999095

Make them uniformly return EOPNOTSUPP when their dependent features
are absent. Otherwise the compiler loses context and they might return
ENOSYS instead.

debug_op, mem_sharing_op and psr_alloc change behaviour and return
EOPNOTSUPP when compiled out, rather than ENOSYS.

While at it, remove the public headers from mem_sharing.h (forward
declarations are fine) and add a missing xen/sched.h include (for
complete struct domain definition).

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/domctl.c                  | 27 +++++++++++++++-----------
 xen/arch/x86/include/asm/mem_sharing.h | 11 +++++++----
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index d9521808dc..7066a18735 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -220,15 +220,15 @@ long arch_do_domctl(
     {
 
     case XEN_DOMCTL_shadow_op:
-#ifdef CONFIG_PAGING
+        ret = -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_PAGING) )
+            break;
+
         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:
@@ -842,11 +842,14 @@ long arch_do_domctl(
         }
         break;
 
-#ifdef CONFIG_HVM
     case XEN_DOMCTL_debug_op:
     {
         struct vcpu *v;
 
+        ret = -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_HVM) )
+            break;
+
         ret = -EINVAL;
         if ( (domctl->u.debug_op.vcpu >= d->max_vcpus) ||
              ((v = d->vcpu[domctl->u.debug_op.vcpu]) == NULL) )
@@ -860,7 +863,6 @@ long arch_do_domctl(
         ret = hvm_debug_op(v, domctl->u.debug_op.op);
         break;
     }
-#endif
 
     case XEN_DOMCTL_gdbsx_guestmemio:
     case XEN_DOMCTL_gdbsx_pausevcpu:
@@ -1033,11 +1035,13 @@ long arch_do_domctl(
         break;
     }
 
-#ifdef CONFIG_MEM_SHARING
     case XEN_DOMCTL_mem_sharing_op:
+        ret = -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_MEM_SHARING) )
+            break;
+
         ret = mem_sharing_domctl(d, &domctl->u.mem_sharing_op);
         break;
-#endif
 
 #if P2M_AUDIT
     case XEN_DOMCTL_audit_p2m:
@@ -1240,9 +1244,12 @@ long arch_do_domctl(
         break;
 
     case XEN_DOMCTL_psr_alloc:
+        ret = -EOPNOTSUPP;
+        if ( IS_ENABLED(CONFIG_X86_PSR) )
+            break;
+
         switch ( domctl->u.psr_alloc.cmd )
         {
-#ifdef CONFIG_X86_PSR
         case XEN_DOMCTL_PSR_SET_L3_CBM:
             ret = psr_set_val(d, domctl->u.psr_alloc.target,
                               domctl->u.psr_alloc.data,
@@ -1305,8 +1312,6 @@ long arch_do_domctl(
 
 #undef domctl_psr_get_val
 
-#endif /* CONFIG_X86_PSR */
-
         default:
             ret = -EOPNOTSUPP;
             break;
diff --git a/xen/arch/x86/include/asm/mem_sharing.h b/xen/arch/x86/include/asm/mem_sharing.h
index 040962f690..7ee783fde8 100644
--- a/xen/arch/x86/include/asm/mem_sharing.h
+++ b/xen/arch/x86/include/asm/mem_sharing.h
@@ -9,8 +9,13 @@
 #ifndef __MEM_SHARING_H__
 #define __MEM_SHARING_H__
 
-#include <public/domctl.h>
-#include <public/memory.h>
+#include <xen/sched.h>
+
+struct xen_domctl_mem_sharing_op;
+struct xen_mem_sharing_op;
+
+int mem_sharing_domctl(struct domain *d,
+                       struct xen_domctl_mem_sharing_op *mec);
 
 #ifdef CONFIG_MEM_SHARING
 
@@ -92,8 +97,6 @@ int mem_sharing_fork_reset(struct domain *d, bool reset_state,
 int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn,
                               bool allow_sleep);
 int mem_sharing_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_sharing_op_t) arg);
-int mem_sharing_domctl(struct domain *d,
-                       struct xen_domctl_mem_sharing_op *mec);
 
 /*
  * Scans the p2m and relinquishes any shared pages, destroying

base-commit: 2fa468919c39aac189623b6c580ce4ff8592d799
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:10:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:10:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226481.1532999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppO2-0004qB-8d; Tue, 10 Feb 2026 15:10:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226481.1532999; Tue, 10 Feb 2026 15: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 1vppO2-0004q0-4b; Tue, 10 Feb 2026 15:10:46 +0000
Received: by outflank-mailman (input) for mailman id 1226481;
 Tue, 10 Feb 2026 15: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vppO1-0004Vw-7y
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:10:45 +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 abdd5e04-0692-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 16:10:44 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-436356740e6so3442971f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 07:10:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376b62b835sm22250788f8f.12.2026.02.10.07.10.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 07:10:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abdd5e04-0692-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770736244; x=1771341044; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=nVqPTEOVCLjdnU5LqwG1Y1chfSEJ/sb9yT3ftbtAuLw=;
        b=Et7jLlAGrAbiFnNw5SmMLdiNvFWVzE34iaMggonfYSO4XIT6mMnOF1BKwU/1pw1IXA
         HK8R12du0fBlPOWJ3fpIbjQ22kFnjr9+aLFf0Pf2LouT3bvjPe1pMrgJ3/PV0cunh9WA
         QVE8c9Goo75TfaLNEGNEwO8EdctCZcnkHSuR6+4Jx/vIpgt3y5g7roIzQ7stMQ4TsZa8
         Bb7/5wU2kRd/UvguDnhpPfLG2L00gtjXG5L3Bh0IUoFQf5NCeAqZ8hvRlVA+3e1wp1FP
         5Y2038jT6BG1B7ualFJmbT988aplJnG2VUAqJQiKRPyTWL9TYzqL9oytXCBNSf+BQdoQ
         +wqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770736244; x=1771341044;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=nVqPTEOVCLjdnU5LqwG1Y1chfSEJ/sb9yT3ftbtAuLw=;
        b=d/RFbpDKqT0M/b9ykbrQZk9DSzijSkacq3WxDUl9ocmE2OQ27R55JvrrjPaN6g8AUz
         qExW/UmYmx1gaHc+e4sRHR7TsefH0JSf3OrlF4Ry/daeyBPlWV9IXU4yBTyX7BN5YG2n
         hZR8X1041PypSPI0a6IkEnio+aBfiY5OXAIooZTIQnTLt+tHKAxjO2f8PxGb1Dhomaqt
         G/QL+x/n9kPmJ0zOvOz3A1Qv3aZTjU8rgzk/4NX3NqZr/VXcaxl8th4K4Jcawxsd8ybr
         SC7mQU7rv+SN0/STGpeRl2P0phursps6gK1HA/DsHtqkEEom1GqMw3wGfeOyK5Rb7QUC
         gIyA==
X-Forwarded-Encrypted: i=1; AJvYcCWtcnUMUC5lrzsd82oxTDLa9CdE8y4IuJdrarG/MIAehAUz4MYF4SDENOjvlWWKaL8SKKzejZbM5j0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3mof5sMo1FfN9m/KCoP5Exj22UadTOQo2aUPbqyjl7cvBC8eW
	5foKqMNSE8HXU3R8aKXJfR8jkhl3P+pmQYRlHBFASFVHngsd9CVX6oIT/th6hGrnRQ==
X-Gm-Gg: AZuq6aIxKcs3MdMCs9FQT5rUWbAKs/gTtokhYBYXj/tdqslU2+2Rz6VHBPw84yJDNZQ
	7qakzFarZss7U6DtWJAfPemcFCKj6R9xsehR7BW2BEjbOtConaKkcqoK7jVow2K7TVZHlRhAPvH
	idguwbpKeIQg9bIfnJi8ZoUV1ST8uoakvRrTlFMy7H9f4CkFV+uLV2qEAza0b3oyuUZzoZA1BtY
	ftnZbcb/t8mNWrDGdYd50thk3ESpL8qvXJzP13ovOXxKEJiCgictUHLKSJRvAV8Qiy89/9TfaNs
	K/77slf/mEeDx0/5bkmj6VTDtCM8tTV5R1CgUJmTC7aCQ3Q/t9BKR8lG83AA9uYGqQs1M3etSiA
	yZbSmWznNN8begCFtjdGP4tIMhI3togJeVvt0h1p3YpLRtGxDOHqj4kraVITOfQk5myUYuKY7ZE
	AlultXLXUtMgVuQAAwjxIsEiKZ7ZRmSb5y9Rs5ZkL7lZplY3bTj0SFDbboORG+lzGdrndkkYlth
	7nRUwws2npEN2s=
X-Received: by 2002:a5d:588b:0:b0:432:5b81:480 with SMTP id ffacd0b85a97d-43629341fdbmr23647342f8f.24.1770736243936;
        Tue, 10 Feb 2026 07:10:43 -0800 (PST)
Message-ID: <75df20e0-70f0-454c-9797-e62725f53b63@suse.com>
Date: Tue, 10 Feb 2026 16:10:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 6/6] xen/console: add conring buffer size alignment
 setting
To: dmukhin@xen.org
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: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-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: <20260205013606.3384798-7-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 02:36, dmukhin@xen.org wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce CONFIG_CONRING_ALIGN_PAGE_SIZE to control rounding down of the
> user-defined conring buffer size.

What's wrong with the rounding? The more that, with the original behavior
properly restored in patch 5, it'll be a power-of-2 multiple of PAGE_SIZE
anyway?

> Also, update the logline reporting the final conring buffer size to report
> bytes instead of kilobytes, since the user-defined size may not necessarily
> be kilobyte-alined.

Yet making the number harder to grok.

> Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>

Having talked to him, I don't think he meant what you're doing here. All he
apparently meant is to stop using alloc_*heap_pages(), which needlessly
supplies order-aligned memory.

> --- a/xen/drivers/char/Kconfig
> +++ b/xen/drivers/char/Kconfig
> @@ -95,6 +95,13 @@ config SERIAL_TX_BUFSIZE
>  
>  	  Default value is 32768 (32KiB).
>  
> +config CONRING_ALIGN_PAGE_SIZE
> +	bool
> +	default y

IOW "def_bool y". But what's the point of the option when there's no prompt?

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -470,12 +470,15 @@ void __init console_init_ring(void)
>          return;
>  
>      opt_conring_size = max(opt_conring_size, conring_size);
> -    size = ROUNDDOWN(opt_conring_size, PAGE_SIZE);
> -    if ( size != opt_conring_size )
> +    if ( IS_ENABLED(CONFIG_CONRING_ALIGN_PAGE_SIZE) )
>      {
> -        opt_conring_size = size;
> -        printk(XENLOG_WARNING "Rounding down console ring size to multiple of %lu KiB.\n",
> -               PAGE_SIZE >> 10);
> +        size = ROUNDDOWN(opt_conring_size, PAGE_SIZE);
> +        if ( size != opt_conring_size )
> +        {
> +            opt_conring_size = size;
> +            printk(XENLOG_WARNING "Rounding down console ring size to multiple of %lu KiB.\n",

This line wants splitting at the start of the string literal, and the full
stop wants removing if already it is being touched.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:11:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:11:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226495.1533009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppOo-0005Xd-Fn; Tue, 10 Feb 2026 15:11:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226495.1533009; Tue, 10 Feb 2026 15:11:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppOo-0005XW-Cq; Tue, 10 Feb 2026 15:11:34 +0000
Received: by outflank-mailman (input) for mailman id 1226495;
 Tue, 10 Feb 2026 15:11: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vppOm-0004ns-WF
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:11:33 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c555da55-0692-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 16:11:28 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH7PR03MB7955.namprd03.prod.outlook.com (2603:10b6:610:24e::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 15:11:23 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 15:11: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: c555da55-0692-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CmQLan/T42OyynObYDzX/IL55HyKfEnHGU1OAij7CDjaESjTJQ6WWl0AbJdpAlFNFk4EfkbKwo4iTGJjbDVTViGxnurwLhzzbpFGPSfEPJ7wEotrNQh6yb8UFAF0VCBMXNjoj3rWrYDWGdfNyOH50cEBLZVLGAkB8gezYPCNU68qfcwHSSIRLJURZpFkCPp531kzq6EcpQn+E50XfGQo0lQuv4hIPt+c52TTHdqjCQc6Cpr95uvkfK4zjiDsrkuNleC7H5pMFWyU7WfOVNADtJHcX2zxe5qKQCHwYZfvo+YGzCsNO9bfBYyvt0aaSDNNkMRVEmhKs6nY9MhVLAtbOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wsE9FTz/cjt2Wqol+CkTbLxLLvXw0H9d+61lnykmx0Y=;
 b=RRXGVmdiQeK5VVKltNHJuF/dX1igbEbIPgHrJWk8rZhqFAITzMwZ8O6ynGa4Z/1uviuUm0WvG9q4uenDWKElN2nLNDvTiDVLW5HwxUs9vaj+izKFoyFVDXOASZ5425bO94cr4nvEnDoJrsiVJrTYDGDGQ74x0GZohMCqFXRR7imrBbPVPt2C4gERLnst+El/zW4Xk+sWu3wJEWe0ee4V2bbtijrikWoxKSj+4LKXydI17AWPPbfHaSeWqU311/hGCxo3pxJ0ZpUw5ZjUs4W50v36tv9kTaebdkFnMDHXThRilovCt1cUBpM+bY7tSD3DpehsPvyj4TUBcsRznXosrw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wsE9FTz/cjt2Wqol+CkTbLxLLvXw0H9d+61lnykmx0Y=;
 b=jKnS4jqrePaerH9At5mY2RyC+RlA9xPeGfkiRM2x4qrO5e9i2b10XycgOU7vzi+JqXmDKelIKAiqAf3ezkHIYhXTc5/v92VZRk+y4O/nQipJONr+Dig1Is+CpFuL4jdDg6YSHWRC288l6AjV/j5cealXboRY60BG0Y/v9rFSspQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>,
	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] xen: always consider '/' as a division in assembly
Date: Tue, 10 Feb 2026 16:11:10 +0100
Message-ID: <20260210151110.26770-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0108.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::7) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH7PR03MB7955:EE_
X-MS-Office365-Filtering-Correlation-Id: 693dee01-a3f2-400c-1640-08de68b6a730
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?d3FXQkVTMy9wRUs2MkVvazkxcUtKUEtuT2ZPNDBqRW1IellRaWFseWtHbU9T?=
 =?utf-8?B?WFRFS2NwWW9mbWh1eWxrZzlZWVNnVERKSCtXVUpWK1JEYUhqS0hMNGtkUTlO?=
 =?utf-8?B?anFEWklHeFRxc01oT1F6TVBiMXVRM0hoU2FVSWRoNWpLYUJOSFVnM0M0bEpq?=
 =?utf-8?B?dVcwczVhMGFxQTNSbEk1NGs1eUlPZjk0V1dsbEpETHU4MEhjakZJUFd3RHVI?=
 =?utf-8?B?eklFWjVBNjZvdmQzcEg0cUJLaHQza0RmQW5zWTh4bG94czhaZkFRS3FrODhN?=
 =?utf-8?B?RlFSeStrRE5DbU9wZmVKZFZMOUZsZmh1L25BS0xXTkpBamhWcWhQMzdBMnhV?=
 =?utf-8?B?bkFSYUYxLzRuK1kwcG1EQ0grMUVYU0orZGsvN1hHRmEranlWbzJoUlRab3hK?=
 =?utf-8?B?Q3pyUzZBUlJoQ3ZFVTFyZ1dScWNjRlh0TktIOTlvV2R6bjU3VnlNOGRodkJC?=
 =?utf-8?B?bkVGQ3JFWCt5U090ME1XWjNJdlRTMW5NU250RTJtb3B2YXkzYWdZOGRpRnBw?=
 =?utf-8?B?d1N3TUoyeWpzak1NdjR4U1E5NEpmVW53amk0bkVXNGJDZ1NSYXJlbkxxNzhK?=
 =?utf-8?B?bm9wUHFxandqbGJJSHp0OHB2L0lDSHE5dVArbjlpMkVlWTdYUW45aUlBQ1B3?=
 =?utf-8?B?R1c1UEJBL1Q0NE11Y2RBWDAyOTdocytlcWM3ajNwYnNmQkRpNElDay8vWWIv?=
 =?utf-8?B?bTBBVll4U0NMMnNVVWVUVWtSRHBjME1ZVTJOY2JJWDhhUzNVa3ZidHNsc2Js?=
 =?utf-8?B?UEo3a1NjRUVwb1M1L2VOQ09GaVYzWTZkNDI3cWJOYVJxWHJqQXJQRW1EaEtS?=
 =?utf-8?B?RXhxNGhkMkkramVSdkJRSGxPamtHenVHdUx4TXNFeCsxU2hjbnljLzg3V3Er?=
 =?utf-8?B?a1UyZTRKOEJkZUVNaHpLcmtuREgxTVltK2QyYzlTWStpSlpLN0NJeC8rOTBP?=
 =?utf-8?B?WEpmVSthaHBnMnRhQUtRa3RYdWs5ckJPaklISklMZ0xrLzBOZlEyVVY5c0p5?=
 =?utf-8?B?NFBsTVFZQUtFVVVDT2ZIQ0NMOC9UdWtpMDJsQy9SbTBZY0RlampiTzJ3VGd6?=
 =?utf-8?B?WWhqUW1mdUk4ZWxOdCswZVhkV1BxTW9jSWJLQ0JxWVFPUmdEeU9yZXdjRVow?=
 =?utf-8?B?UStqR1lBeFNmd2ZkRHJnUjlrK2xDc3A1YVBLV05zZHBzWU0xY3F6NE0zYkZT?=
 =?utf-8?B?QlhWdERjVDFvVlRRbHQ4bDdLdyt4TndDb3p6WjBIQ29CdVVsc1J1eE1LZE1m?=
 =?utf-8?B?NEJ0cXNWYXdJKzdXbG9EZGl5dWg5em5ocmRFK1k0OEhoTFFJVGp2ci9xbzJR?=
 =?utf-8?B?d0V3OHNhV2xHUkkrVGJiV3p1RmhOdjZodHJSVjA2RnVlSFg4TXZ1Y3RaWmVE?=
 =?utf-8?B?TTBjdVB1YWVBcTJLS2djdmtrYUhYMFd1bUM3d3lISnVGd1JOeFBjV1FPQURx?=
 =?utf-8?B?dkRpM1FoVWRVMHNJUkhnTGZwRmNCNzNqdHFoWTJSQVk2ZU51S2ZFU1Z4Tk4r?=
 =?utf-8?B?SnFKSTJEcHA5blIyQ0FFR2Naa0dSSlBrL2tWSnQ0YWJwSGp1bHRYMnVYTEQw?=
 =?utf-8?B?VU4yOWM2M1ZxbjZPc24ybmFYUjE4d2cwVGUrUUtuUyttbEgrM0VvRDR2MXNZ?=
 =?utf-8?B?N3Nhb3BHZTU0bi9mRS90YTQzWUwrdE8wVDdtYUY1NmZwZEU3QTdnZGhtcng1?=
 =?utf-8?B?MGgwWVlXZ1JEM0VvWlFYcWFNaC96ZW9DSndFVmxESlVRMlJvRmRBTmtZbHc0?=
 =?utf-8?B?S3IvZnpFQXZDZ3JPeFBiOG1sdW1DZHRhcDVGMThnMzVxMlBzQk16MW1YWG83?=
 =?utf-8?B?aW1HdGIvUXNSazFYN2pKbjB3SW1US2YyTlBtbXVhUTVnTzhCaHoxU1ZhQldU?=
 =?utf-8?B?ZkJxaldmTHR6TTVCUEp5TWcrWTRWYmdXeEpIdUdvK3hRTXZUQmlRaHBmeTV4?=
 =?utf-8?B?aFpNd3J2SHlmUDJHR1RONUZsK0VSUkRiVnNJNVdHcTY5SEtJemVRMkd5bHdR?=
 =?utf-8?B?TG1Db0s0SXpMRUZJNFRwS21Cdk5nYys2K2ZJRTdxUEE5VzdJcFhSVnMvcVJC?=
 =?utf-8?B?a3UxWEFVejlmYmx6VlRrWEhsdStDSm1xRnlGcFBUSW1QZW5XbVpWSEVxNnF5?=
 =?utf-8?Q?kjRQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UVN1cU1yZmwySHVBOGJ2QzBZWFVDOVppM0hXV1hQNUVoMEd0OHllWlRET1lt?=
 =?utf-8?B?angzbHBySTMvUWFKSlFKVnJkQ0dUNTg5ZjVWK0gybU9DTkRqdCs2K1VFaFhI?=
 =?utf-8?B?RDJ6K3RLN0ExYlUyTGswVTU1VTRzczArempHekxoQ2xGTGZ4eVl3bEgzaUFW?=
 =?utf-8?B?K2NLOHNDNTZSSUw4VmxZakVrM3JNK1BJQW5FRlBQZ0pKNkI3M1dTeUZwRVRS?=
 =?utf-8?B?VGRqcUhaTmdFZ1hVUnRjUHBmU3BBRG9FbWZsa3JTYU1OQjNZNHdwR0VvMkxK?=
 =?utf-8?B?YkNEUm9vRHZxRFZKL2pOYkhjY25IL0VTcFUvdGZnandXYVhMeUkyZm9GSWZl?=
 =?utf-8?B?bFBMc0NoWS82L0NQTnU0NDcrdG44VFR3cjZLNnhMY3NyWkZmK3E0amNGbTZT?=
 =?utf-8?B?RzR5K1ZyUVVjcWRXZzVLVWkrMmFtVmFKbGRqSVlwbklXRmFXM2FrL083R2pa?=
 =?utf-8?B?a2Vwd2lqRDhKNis2L0FYTi9IRkFlR3JOZDhHOG5uODdBbzZjVHV5cDgwNFBa?=
 =?utf-8?B?b3BwZ0gyOGRIVUdNWW9XZyt6OWpTSWpCcGh0R3VJNElURjJ0aVY1RlYxeGd5?=
 =?utf-8?B?SUMwUVpkQk03dy9DOVcvTzI4S0hXSnFWV0tHbHZMYmVNSFpYMjNmcGFScW9Y?=
 =?utf-8?B?bkc0OURnWDJMbkYzbVNlSFA1Tjh0R1M4RjRyazNFbjYzQ2lvUEhpa3Z5RXZj?=
 =?utf-8?B?UnBZbXhpNEJXMDAzL0JRdyt6Yi9rU0pVMlNuRW9KWDBJRDR4dkUwWTFJV2JI?=
 =?utf-8?B?Q2twL3FRTGtOV1AvQWZwNFl0Vi95cWMrOGVsQ3lkR2JQcU8vMXV1b2g5Szc1?=
 =?utf-8?B?eDQrRFhPMnlZdkN2SEhaK0FBS0o4Z1lqOXVXemVvdE9oZDN4VlliUG5TVDJj?=
 =?utf-8?B?MkdnNnovclhTQ0tHWjREOVcvOGh2TjNMN0xTWXpWOSt6MDNJMjFmYmVrNDRQ?=
 =?utf-8?B?UlZCRVJPR2lXNE5jY0puT1V0eXBuQXlFVlg4Wlh3WTErYXhNNms3L3puWGRJ?=
 =?utf-8?B?M0lHaHovSFB0dCtrcm9UR3cwaGk0RmlxcmJNQjh6bm9ZYjZtQklvT3Z1WUo4?=
 =?utf-8?B?YzdDZ0JrNll3cDVYUG9qYlRQUGVYTFJyeTVEdWJiNUV2cmdiTUpjcTA2MURB?=
 =?utf-8?B?ZTRMbE5jRTRsK3ZTMUNvUnhWVzNkQ2liY1pUYUhwakNKTmhLN3M2NStIL1lM?=
 =?utf-8?B?ZGpNUi81SzRUMnh3eVBjbFBpUU10Ry9Qd015N0h6U1hwVUFtRWF5cnhWUXh1?=
 =?utf-8?B?VVZYTXp6K2VzQUF4ZzFjNVRVSXd4MEs1NVV3RGorVlhPc2lKQWl1WlE2YjhE?=
 =?utf-8?B?aytxcFE2blh3ZWRTc05wOHA4UlpsdzJZSEFya3A4M2l3Z29XYUJweXBDSVpq?=
 =?utf-8?B?SG54UC8zOFRka09PUm0ra29DQmc3THlFQk1oUW43b2JidVEweVByMHZGOFJU?=
 =?utf-8?B?WHJ0V2FreVBoTnQ3SCtLVnY5cXZ5TGpRL2x5TVZYZlhjNGplTXIrYzY1SFZx?=
 =?utf-8?B?WGpKQjVTejFMcW1IeXdOODVkSjhPMmVBWU5GaEZRcHB3WnF1SjFqck0rQkNV?=
 =?utf-8?B?WFRaWDhaRWttc0U1TEV0blZ1V3Nqd2llUWVEZHVCR2ZsUmU4aEdLY2lKQzZT?=
 =?utf-8?B?QTVwS0p3R2hlZG56aW1HZ280UXY2a2xQeTNTNHJvTXJqOXdJWXFyeEh1dWhl?=
 =?utf-8?B?Wkp5RnN6dmhpbnNiNG5uSmQxRmFvTEVxcDBaY0VZSEtFRjBud2JBNm9mVGtj?=
 =?utf-8?B?VEpzYk4wNysxZ3A4L011NmU1UmROWXRUNnUvSzAyWjdpNHpXdTJ0dXZBMFBQ?=
 =?utf-8?B?K2ZlMitLSlAyUnlRMTJGT0x6RGtXakdHZjI1cXZZbHNQaitkVDBxTHpGWkl2?=
 =?utf-8?B?WlUwcUR1SEhmdVFDZkN2UC9IMGpYOTVEK2U4R0JrWFN4ZkttbXVLSDJuRDAz?=
 =?utf-8?B?NTVVV1F0aVkxU293RzF5THQzYUorcDdVTGNZRVIvbDNUWUo0ZVM5V2hxN0xp?=
 =?utf-8?B?L2Z2V3lRY2FPZ2RucG8zRHFtQzc2MzA3bzk4S2VVZEhHb3liT2FvazZXNldx?=
 =?utf-8?B?V3p0c3ZJRzVuTmErL2RHRGszWUZTaVVyZWZpYnp2akE1ditNRkhBelVuNXhT?=
 =?utf-8?B?V1BmbVVrdHdaUUQ4VFQ3YTZRS2VvUVlXblFUZFpJN1I2WExhVTBGNFNZRi9i?=
 =?utf-8?B?UkRtLy9iMVhoZkI3UzZwYVJKa1ZqMnYxTTBObTdmMTJMYVV4Q1VkdkZ3di9j?=
 =?utf-8?B?dGVua1pQb2Q0MHZRRVdQWStIQkVZOS9PTGJlT1ZCUnhQV3d0QmJPczZKWEZZ?=
 =?utf-8?B?NUdLUHAySVdoN1Via2ZxNGVaMkhSN1NWT1FhWUkzMXdZUkM0cVhvZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 693dee01-a3f2-400c-1640-08de68b6a730
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 15:11:23.3934
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 42AxuKpvNXNJPMc96JFGVtLifNySImIWQVyp0L/PElslkbhBJllSYo0avbazhuGeDTuORVfVcPgTRfjo2ojSvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7955

GNU assembler will consider '/' as the start of comment marker on some
platforms.  This is incorrect with Xen's usage, which does use '/' in
assembly files as a mathematical operator.

The behavior of the assembler can be altered by passing the --divide
option; unconditionally pass this option when available to force the
expected behavior.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/Makefile | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/Makefile b/xen/Makefile
index 31352d4cd260..eee0262933a7 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -405,6 +405,11 @@ $(call cc-option-add,CFLAGS,CC,-Winit-self)
 CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h
 CFLAGS-$(CONFIG_DEBUG_INFO) += -g
 
+# The GNU assembler will interpret '/' as a comment start marker instead of a
+# divide on some platforms.  Pass --divide when when available to signal '/' is
+# always used as an operator in assembly.
+$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--divide)
+
 ifneq ($(CONFIG_CC_IS_CLANG),y)
 # Clang doesn't understand this command line argument, and doesn't appear to
 # have a suitable alternative.  The resulting compiled binary does function,
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:27:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:27:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226512.1533020 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppeL-0007Zk-Pg; Tue, 10 Feb 2026 15:27:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226512.1533020; Tue, 10 Feb 2026 15:27:37 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppeL-0007Zd-Lj; Tue, 10 Feb 2026 15:27:37 +0000
Received: by outflank-mailman (input) for mailman id 1226512;
 Tue, 10 Feb 2026 15:27: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vppeK-0007TH-0g
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:27:36 +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 0614ff16-0695-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 16:27:34 +0100 (CET)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-47ee0291921so41624295e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 07:27:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7f09e7sm71233705e9.14.2026.02.10.07.27.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 07:27:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0614ff16-0695-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770737254; x=1771342054; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Kw8PP5+zcNgh17HMGxYbPU+TEVxxfZufWgkan98Rhpc=;
        b=b7q22dlpmRB/nLRGORnb7lP/lluz03RtZEUO+3adYuGPlIqxm4/jkfWWw2V4tLxkVt
         OayiNJsl/jvEv1FH/8K+6KTRJJyx5LxgHZFf7L5x0QFKf6IzzSUP0WaZQUaWXM0N7hbX
         8wATAkpc9spYGVopLZxXm823oy5aqK5Nhe4isUF5UMYxSHWT2cVXlDPu73sGcSp6xVd+
         cTisqo3uoseSefttb4IqOvRt3P0uCNMwKyDeXw98qERuwCyLv4D4L122Bu9LvWf7n4sw
         qlf7LHDjpNCp9ih6NuEiJPyOP9zlhpLnBvKhik+zK8US6AUicx6qdSb5pxxCJfIbG/B4
         RwnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770737254; x=1771342054;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Kw8PP5+zcNgh17HMGxYbPU+TEVxxfZufWgkan98Rhpc=;
        b=savGsD9H9WoNVnDpBHDNHRTdDBv/gnoVurf63DEE4ghd0wTKLBfZAJGOivHdu6WnTd
         Y66dFQs9tYn31dG50lmYGR6K5WCYTGrw6hmvldd7Pbzd8fea56vdTKj3iWVHcJcCkIKY
         kU5lS6GuSUx5pI/DQ7fpImMBA9p7k8J34hokYR5vaNn0M6exZjOXoX+7ZCi8/ls3JiJn
         Q5QllAmzNckNMDxdp+MJrDOyY7vRnQse6F4VcI9o4saxP5Q6wkUWD2Tq/6j7/7AJdFW5
         J+98r8Hc4cPBWpyiGqTTpFhacPQ759hUZnUZj7zzSgpoR7a6SRO82PpZAJsF2wWWgA/n
         Z/Qw==
X-Forwarded-Encrypted: i=1; AJvYcCWEG4fkSTDymGztStgUriPQjen9fjUvH/1vE7Lvlh/uZXL3/20uKcDrsPEo3q7cJx9hUwKg7vtC0oA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YysYe3n7Mgegx9ahl9DDMX2v1FsCl27jez0RFSDUB7B+Bzu+4MU
	bRIMmgRXtJlh2dF4o2xqE0Jp9ZaEpbzbUWr54XWu3PY819JSChouGe9bRsca15xlwA==
X-Gm-Gg: AZuq6aKl1GEGNScNBomjVZzfh54bcC/AZs9RhIGMcZQPkdGHuasNviyYfk696wPZI73
	q7TWIsgvY401Yu/1G514Ptf6Vj2mQz0DdDwiXeqU73n1S6Y2IEESJTN+rKH/eQql9ljgeKIe0M9
	1QxApk9NR6D0hzZZz9cfgn5c4tV/gZdQla1KWB5JRLGntVNduWy8bRKyckOVGSyEna57SbN2nQF
	vM/dWQDnc6rUdhWNqBv9rzWSpFvutEKbf1zAVsfNYg697IMMyQx9QDSCO7z7edK034LIZvB962b
	FE5vU8LkdsPg5MglO8dsFYLK3FLarSkT/VWLTv3gzvfkeuSdLAJAuc7IJr5Sek9Lj0ZEyo6eUdG
	PxYt6J6pi9ZZNwgUOOdjnYCmONuaoKhtwwXbkaiwquj8Zeao3wvz5HcOzyNRi8G0R/IVFuf6G0F
	dECKQ5ThFtd2lXxllbUcHnwPmfYhJSl37QDrl+a0phEtatvkhricEInOWtXGVhZ1g/o2fkaFIoU
	a4lxAMdMSm3Wd75CNSU9+e0+g==
X-Received: by 2002:a05:600c:3553:b0:477:7b16:5f77 with SMTP id 5b1f17b1804b1-483201da2d6mr199025625e9.3.1770737254226;
        Tue, 10 Feb 2026 07:27:34 -0800 (PST)
Message-ID: <8bef9911-2f37-4cd1-bf18-29cca646fb09@suse.com>
Date: Tue, 10 Feb 2026 16:27:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Bertrand Marquis <Bertrand.Marquis@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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260210151110.26770-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: <20260210151110.26770-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.02.2026 16:11, Roger Pau Monne wrote:
> GNU assembler will consider '/' as the start of comment marker on some
> platforms.  This is incorrect with Xen's usage, which does use '/' in
> assembly files as a mathematical operator.
> 
> The behavior of the assembler can be altered by passing the --divide
> option; unconditionally pass this option when available to force the
> expected behavior.

I'm fine with this in principle, but I wonder: What about Clang? If it's
properly compatible, it ought to also take '/' as a comment char for
those same targets (in particular for the plain "x86_64-elf" one).
According to godbolt it can't deal with -Wa,--divide, yet there I also
can't control what exact target the toolchain supports (i.e. this may be
only a weak indication of lack of support / compatibility).

> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -405,6 +405,11 @@ $(call cc-option-add,CFLAGS,CC,-Winit-self)
>  CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h
>  CFLAGS-$(CONFIG_DEBUG_INFO) += -g
>  
> +# The GNU assembler will interpret '/' as a comment start marker instead of a
> +# divide on some platforms.

Could I talk you into s/on some platforms/for some ELF targets/ ?

A more fundamental question is: Do we really mean to support (allow)
building with arbitrary-target toolchains? There are other subtle
differences, which may be hard to evaluate as to them possibly affecting
the Xen build.

>  Pass --divide when when available to signal '/' is
> +# always used as an operator in assembly.
> +$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--divide)

I don't think this should be done here: --divide is an x86-specific
option.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:39:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:39:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226523.1533029 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpppk-0000vZ-Ot; Tue, 10 Feb 2026 15:39:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226523.1533029; Tue, 10 Feb 2026 15: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 1vpppk-0000vS-LQ; Tue, 10 Feb 2026 15:39:24 +0000
Received: by outflank-mailman (input) for mailman id 1226523;
 Tue, 10 Feb 2026 15: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpppj-0000td-ID
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:39:23 +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 ab7125a0-0696-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 16:39:21 +0100 (CET)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-4801d7c72a5so34890015e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 07:39:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7e63b9sm54983235e9.10.2026.02.10.07.39.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 07:39:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab7125a0-0696-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770737961; x=1771342761; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=d5lLfMPk4EU13e2OPZRochpap/eiKpVYr4FpeGwsrnI=;
        b=gJp5fBxvIyJv6Bfur1OS6NDs2VV6/bMwZe6A+XNAqox71COxtkLAbasalGtG5lWTEf
         7UZ+EUgMuLg8C8YoDj9m5NKYqv2n3OZ0hwsf1q6aGMusxAqa3lnE5lRgiMGv9ASUzWfc
         gTxxTxYfyar9YO9nMiymm8mfy83MxW2viCDfVvspplBNq9Lp0+H6tJaoAjg+rNr6zj0J
         yqyfGqkTZf/NJXRzW0BVLnc4Gc2vmW9MeOY+yiBqpHq4GbYlCJNDY5wiE+DIw9u/1DRS
         hb/LMjjOLmY7Avbq4TQ0/8yHVO+Dj7YMk8JPSm+YcdlAZ0zgy7jqEjcXCB+e0j8Yf21z
         xFgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770737961; x=1771342761;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d5lLfMPk4EU13e2OPZRochpap/eiKpVYr4FpeGwsrnI=;
        b=aFNtdtHd3hG0bkFNiCUsuU6nDgr6hAnmptzTUAuGwjq6SWv28fYuEY8ha0ASdhDg5M
         LnTU5bOiY5dR7/bo5uhfW87Mwor4komCfcTa6+mcJXhyKadXobblDT0cblMgs2R6wILu
         8Ylr/ArBE4ESJIJ+gSzfybXCoD22phTreAW0Go65kkaOUyhZ8FXtUYITiO3X7j8sz1OO
         44l+9Q0iAquryG9rMgXkgWrWrlcn+k38s2ZXB+3HSrupzXwPlluKyG8ntqnBLqaI06cs
         KXS8OlyEx9EN+1U8a+GE3qDyOc3zI+PdKBfFfRue0pd2Vrzeg+9f8JtE8GYWDWq4yBQT
         8s+Q==
X-Forwarded-Encrypted: i=1; AJvYcCXGS6qSP1TL+6OIDpyT8yK9eiJhfgrKFclPaOd20PzQ7bm7Gv0nBlFEzsagcjGWZvN1gUM+gZ/Y4EQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyvjSehSUJft4UbQ7zc+/SABhTFrKaReuHpEDTB+tDB47UvysiD
	cGdySMaXTnNw7bk91QiWNqLRVYxCgt7UghIwO9qD9WxYD5l8y6iOwINS5NsKzXey8g==
X-Gm-Gg: AZuq6aIbV1HGRaEv94z+L5gd//+JJnve8dveC7sGV/Xwbe+LPJEVDBlE7VWsV5rmJKE
	rd9z0PsuIf8g0COIzqbY7QkX/RLqHGnTAwWUxDqrZueuDEn7slhuQyIT8pKw1LmwQpuP628xa49
	2NrXkAX2x3ND5KGUW1DrIEEIql8Le2Q4VIUT90F+wM3s2A9wKhkOR/pVdQsWpvpvoDojpvRrKKh
	YM7WQ6zH4dgeCucRyWdY5Ckk7bRdLCJt5LsD0QxoerFozHUUMLsqjMjn/dC3SBhGlndtam7IYvY
	Q9oK2kPqgJCGUFMfVmIF2yH7lFQxMsfnW+HwLWsYnIDj1EVkxvJ+c2iN5YpPU7NR3uJETFCVsaP
	md6P3Ma5lJaMRaiIC6V+spISZpjKqu7Ec6t6n74dTzFWrGX0FuCGWdN6N2LInbQVWgQLisnjWXe
	Oz4WjAlnfoHXeQyx2eIW4rQ7RJsbeenKSwiEDV0QydGByLecDP2jj9AQGS53rYGih/dyt9onVe4
	3L8A592xSoYL1k=
X-Received: by 2002:a05:600c:470c:b0:477:7ae0:cd6e with SMTP id 5b1f17b1804b1-483201daa3amr197033005e9.5.1770737961135;
        Tue, 10 Feb 2026 07:39:21 -0800 (PST)
Message-ID: <6152fc3a-0169-4cbe-b1fb-a392901db34e@suse.com>
Date: Tue, 10 Feb 2026 16:39:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/domctl: Conditionalise x86 domctl using DCE rather
 than ifdef
To: Alejandro Vallejo <alejandro.garciavallejo@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
References: <20260210151008.217830-1-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260210151008.217830-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.02.2026 16:10, Alejandro Vallejo wrote:
> @@ -1033,11 +1035,13 @@ long arch_do_domctl(
>          break;
>      }
>  
> -#ifdef CONFIG_MEM_SHARING
>      case XEN_DOMCTL_mem_sharing_op:
> +        ret = -EOPNOTSUPP;
> +        if ( !IS_ENABLED(CONFIG_MEM_SHARING) )
> +            break;
> +
>          ret = mem_sharing_domctl(d, &domctl->u.mem_sharing_op);
>          break;
> -#endif
>  
>  #if P2M_AUDIT
>      case XEN_DOMCTL_audit_p2m:

What about this #if, though?

> --- a/xen/arch/x86/include/asm/mem_sharing.h
> +++ b/xen/arch/x86/include/asm/mem_sharing.h
> @@ -9,8 +9,13 @@
>  #ifndef __MEM_SHARING_H__
>  #define __MEM_SHARING_H__
>  
> -#include <public/domctl.h>
> -#include <public/memory.h>
> +#include <xen/sched.h>

As it looks this is for mem_sharing_is_fork(). Can this then please move ...

> +struct xen_domctl_mem_sharing_op;
> +struct xen_mem_sharing_op;
> +
> +int mem_sharing_domctl(struct domain *d,
> +                       struct xen_domctl_mem_sharing_op *mec);
>  
>  #ifdef CONFIG_MEM_SHARING

... inside this #ifdef? The mem_sharing_domctl() decl may then want moving to
the bottom of the file. Otoh I wonder whether supplying a stub wouldn't be
neater for the single use site.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:45:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:45:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226534.1533039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppvv-0002Wh-J0; Tue, 10 Feb 2026 15:45:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226534.1533039; Tue, 10 Feb 2026 15: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 1vppvv-0002Wa-Fh; Tue, 10 Feb 2026 15:45:47 +0000
Received: by outflank-mailman (input) for mailman id 1226534;
 Tue, 10 Feb 2026 15:45: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=1KCy=AO=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vppvu-0002WU-Cb
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:45: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 8f61f081-0697-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 16:45:44 +0100 (CET)
Received: from AS4PR10CA0021.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5d8::9)
 by DU0PR08MB7921.eurprd08.prod.outlook.com (2603:10a6:10:3c8::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 15:45:37 +0000
Received: from AMS0EPF000001B2.eurprd05.prod.outlook.com
 (2603:10a6:20b:5d8:cafe::42) by AS4PR10CA0021.outlook.office365.com
 (2603:10a6:20b:5d8::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 15:45:37 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF000001B2.mail.protection.outlook.com (10.167.16.166) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Tue, 10 Feb 2026 15:45:37 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by VI1PR08MB10148.eurprd08.prod.outlook.com (2603:10a6:800:1bc::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Tue, 10 Feb
 2026 15:44:33 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 15:44:33 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8f61f081-0697-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=NNPI3rVkbYTLdDkdQ2AFX20M8gmbFgwJB2HXWkci/UFPAX98asT4iX+NwnfqPM6Jl5K5sShmjJ6QhOZeojgtHuE9j862L12t6L2HIV7B/RSnvXRoIV1dLGz6Xak2KhqM30aFIBgBOInxTIzHjEy0wngrkg1mpXU95A92PYbBALOil0OfVG6/33u967KqmKNbDOYSF+iDRU8yLmYjf6q1fLLgus79Hrl4m3v/1sCVKm0MLiVD41NBMbK21LwFnxygALG9XwCkPw7M4EZ01bAqDdVa55dAl0VgqIeynBHXPrCgE33PQiwUdF1ppCdVPzo1Td28hKR52u4Oro/JhtDYNg==
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=vF6m0x9VN7V7vBQiJYweyuyAMDhdyN/JKcy16z90xZc=;
 b=UYA6418pvdnYtf9rvo8yWM8L3/hn4ifi/0aVpdza4uNe7lVahShKbqQP9KU2f3NuGBD1SXBz8JUGlTE33+aNQK1jPAnARzsDeUMeuxVNdL2AZbLEmKFqqglzJeBpX4oGyH5EOL9adfx7wjWJNQEZcKjWcf8XRKGMlthRFDEwggKvuqQ4vLDX2fHWxpmSml0l0H+62jVNbXF57SfhHFUqksgWjyU073wXKCQX9c6mf6AgL+suMboQo33e+9ELxtZzz3aIoERXD9O2Ls7EgtzCeZhyGPZzvGAFErx9fcDhNorVOCZWNi6aWxc+3U59Bx9V3japjrWorgWwrSC5hcdFGw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=vF6m0x9VN7V7vBQiJYweyuyAMDhdyN/JKcy16z90xZc=;
 b=RorBOIGaE3845moJkc55YJDdYISztfU68clutimSM3f/8BDmY4pTeWfL4HxwGUJv4vfnjusxJSM7u2VBTVSuBKl3kJZIeETx5GXnWMI6KRY8+4sWabGIFhIcnkqZvOSpJnJne9hRTmvm9PFKj9rKYn0Ya86gtwdsZiKOw63nPwU=
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=s0xHF6XjXMjy1CavU5KnYNoxKq6IOQXhiJd04rTxYYOjh5hQT0B/cC0KyKWXVQSoUgKMqZgWQBv6QtHL6pRQAnsVq2Ydrj+QoaQ8+7RJYBCQ9nEptLJd8vxIN5AgXzx9cQQAkweGBaZZz+uyrAqBN/mSglP5fD+sJD5tmVr49lkC0ArBkGMov6fac1wDqZ9kUm94FA8KGQiyJ5xFDTrS+1P23uN0m9YoCcYQdmpwW63sqAyxX6rSdRIHisw7RfGZBAzfJjB6P6Xo9hmb5Qg1N08iJpi/4b3WNlWvnQRsAp+6H5jJJ0XqbnevgJchKiTGqVlPgRrjcOfaDlihGiLywQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vF6m0x9VN7V7vBQiJYweyuyAMDhdyN/JKcy16z90xZc=;
 b=A4+6UmlxWd6OUZaBzaMyxQVr41Y2N0e2AhkVU4W6T+y/8a0HaHubmHzqKLo+ryJu8dNOW9cyHBpINh7abTtgInp3lKS4On0+O8hzxxxfPT3ga9ca+P0RcGsMUveF29oMKPfy7YnJPC+M+zEC0gmvph+ENF2zX7zrg9/THcK13RyEukLSJCe3EOY7xOEt1onOAaHTLc+JB86rB35FelHN41UuYTzDr1Dxkpsz+bixPLTKi5zbQ31kV+pZrB9TzecwHvllYID30U5+CPzWbc5aAQzjNnbnuNICNMZPlJx+DQkZZhyLMd36vi2uOpzIIhN+JxTAodmmMNjbp2K31lj5eg==
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=vF6m0x9VN7V7vBQiJYweyuyAMDhdyN/JKcy16z90xZc=;
 b=RorBOIGaE3845moJkc55YJDdYISztfU68clutimSM3f/8BDmY4pTeWfL4HxwGUJv4vfnjusxJSM7u2VBTVSuBKl3kJZIeETx5GXnWMI6KRY8+4sWabGIFhIcnkqZvOSpJnJne9hRTmvm9PFKj9rKYn0Ya86gtwdsZiKOw63nPwU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Roger Pau Monne <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>
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
Thread-Topic: [PATCH] xen: always consider '/' as a division in assembly
Thread-Index: AQHcmp+J15vvFrxtUEGxE7lRiZXN1rV8EwEA
Date: Tue, 10 Feb 2026 15:44:33 +0000
Message-ID: <FE2A96EE-5D99-4CD4-82AE-7538B94DBB0F@arm.com>
References: <20260210151110.26770-1-roger.pau@citrix.com>
In-Reply-To: <20260210151110.26770-1-roger.pau@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|VI1PR08MB10148:EE_|AMS0EPF000001B2:EE_|DU0PR08MB7921:EE_
X-MS-Office365-Filtering-Correlation-Id: 5e5b54cb-d345-4d92-3bda-08de68bb6fca
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?YzNiL1VsWjdjTWkwdlFoODMzWTBGTFNsb3JhN2VnVXhScE9OU2hrU1BBdzYz?=
 =?utf-8?B?Qzl0VDNiK25nQ1IrTUF2WU03VitvNStmSC8zVjllV1JWT1NweG9pOEZCVUlu?=
 =?utf-8?B?NXYwN2NzN0xTK0l4VmxxZGJzd3RLdGt3aE4wU3Q0SVhYVmQ4T2dzLzVWejIy?=
 =?utf-8?B?MkVqZDRNYm1OWVZ6TUtQMW5KYWN4OWtZZUVuejViTmwrRHZTU1hsQlplSDdy?=
 =?utf-8?B?VkIzd0dGOGpDOSt3em44bkdpMzVCTHV0MW9pTkRNVHNtK3AveEtmdGVpQkM1?=
 =?utf-8?B?TWo4ZE9GOFc0UG9aOHBKNmltK0hjRXVlQzE4VWZuSXo2Y3ZOWGkxd0dJNDFV?=
 =?utf-8?B?MjVhdjN5MVIwUEFKUEF3aUJmbjAzbDVDNE9MaUptWE91eHphSGhsRkZRa2tM?=
 =?utf-8?B?TUQwS05kNlZFdGtsK2N1ZGJ3ajdvSGVISDhOVm83RFZsclc4ZHI5RjJ6OThM?=
 =?utf-8?B?bzMyMVZUR2FrcTBIWk03ZkpMQlB0OVhmL25QU2E5cW1kdEFON09KUkJibTR2?=
 =?utf-8?B?QTVpaHZvdkhxQTYxUjV5MTNBME5JdHpNRUtYelowVTl3SDNGRFZILy9mNW1y?=
 =?utf-8?B?d0l5RWJWQmkzMFdOdm9RSHF5cU5uY0NsUDhjQ3RzOURtZ2Ixam1NdTVQV0Rv?=
 =?utf-8?B?M0xHMUg0MmdLb3h4WEV5a0hrTVJvU09uNTgxRFp0KzQrL3VvaXIzOHgrSEdq?=
 =?utf-8?B?SHJqUnJiamo1SkNaWFFQY0dISTVwWnU0a012bG45bFhTbUFCSWVIWEJwbUVV?=
 =?utf-8?B?LzBUcjAzK0ZEeEZ5YStRQW1lRnQ4N1dwWCtSRWJBbmtlMDZRV1RnZTh4Yks0?=
 =?utf-8?B?cmM0SzVXVkhpK210VnRRZWdoSHp2eitHZC9KUjd5Zmhmb2oxTkhmRUQ2aGlH?=
 =?utf-8?B?aVJjTXdyZjZSMGl5NFZPNE9BMWlKcmdtTkdBZmpkU2xhRFMwYUJDMGhYcU5S?=
 =?utf-8?B?algwZm9OSEJjRHNmV3JKWjNUUHJjS3lMQ3FMdFdrbFNDRFphcWxnUFd2NUd6?=
 =?utf-8?B?MXViV1pQb3VCMW9NbXN3TzR3bnIxTDIyUXlhWWkyc2Vzb1hXUnhzVEduZFpN?=
 =?utf-8?B?S2hRWE4rUDE3Z2oyNWVkQ3JKeGxnTzdCWmFXa0FidFdFZlhLNlM5ZGJqRFl2?=
 =?utf-8?B?bnZISU1tNXM2TllzdHFVamJrQ2doMjJEbnB6Qnk4alBRV09nWXoyOERkY2Fz?=
 =?utf-8?B?VUEzWlVqVUt3bUczc0xTcHYwVVQxVVg2QnQ0MGx4b21iUmJDWXFtTkJVbVpO?=
 =?utf-8?B?L3ZaSUd2R3RXU1hBcEZhT2ZGblJ1bGthWUlNTHhTYVRMR1ZyS2YxcHYvMEdp?=
 =?utf-8?B?dkR3NmNTcU11ZTNaV3I5SXd6NU1IbVE2bWlacVBveVZWVkdDbTNUdHN5VFc0?=
 =?utf-8?B?WGNkSkZYNWJhUTkxS2tzMFJJUHRTQkJmVlJYVkdSMU9BSXhxeHZYdUdCQThL?=
 =?utf-8?B?M2thai9RUU1ES1JXQmd0eHowa2loVVZIeGpRRGVwNHlOVjZNVzdkY1NoMmFC?=
 =?utf-8?B?clJ3YnNkZGdjdm4rSzB3QitJUWh5NUtoekMrQUlMS1YrQlBSSURGd0IrOWIx?=
 =?utf-8?B?MnpxaUw2UkREbWpVQVd3WHBUaURSOUl6bHEzSFVsUlZPNzlQUEdmY2JJVDJB?=
 =?utf-8?B?SWZvWnNUcVI4ckt2a3czZ1hSMTRVNkwzbXl2NmM0MmIwNnFnQ0dGRGZGY28y?=
 =?utf-8?B?V20yRDQzWk5lbmk3MXNtUnBaYzFHc1Myam45dVZCODFzRVBYdFlYcWt2dVEx?=
 =?utf-8?B?RnhTZ01wTGhWMUU1WHVSSnIyNTloZ2g3emdOakNkTHpYV255bWNTemtlNm9i?=
 =?utf-8?B?YzFOVlZ6aDB2S2Q1VnhKell4ejJmeUh3UVpvdEJKY3JLbUcrdDkvSkpQS2pt?=
 =?utf-8?B?bFNFUG55SU56cldZWXJHT1RjRWk2NjlFRWYwSnBqdFdSWXJlWXhocjhQQWRU?=
 =?utf-8?B?QTFIT0Rvcmc0Si9PaFBzQU5ZQjR6L1dWcTJocFdmYVhGTnBWUGt3TUVVVU4w?=
 =?utf-8?B?WGlxMlpzMktndzRqK0JLWVBMdlUyZnliYUxHV1pTb0VObmI5SE9VN3RIYk9x?=
 =?utf-8?B?OGIzQmJCZFBFUW5oYlZOVHF2Y2o2cEhGRE13bTJucFd6WEhRYTRiLzhEY09S?=
 =?utf-8?B?UzcvL3NLQTVZSFVwaDZDSjk0WDhBVUthUjBIbGo5L1JYbjcwWHJHbWFPWm1q?=
 =?utf-8?Q?bZw/9NACQuplXz0Lv/t256s=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <84F6B3D0CBA2384391E43112FF3A54B7@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10148
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF000001B2.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	34c1d1c5-58dd-4255-0ade-08de68bb49a0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|1800799024|36860700013|82310400026|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ankxeWMzRTJGY2w2bXA4UDRUQ2VxNEJ0cEt6VzRjNjI5cUxTaWRTWDVLUE5X?=
 =?utf-8?B?d0lJV2FjNEF1YnRESW1YcHdCTnVoam5WVTBuM3FHQ2hlTmw4bTREZndySnZz?=
 =?utf-8?B?cDVMNHpFQ1NaaU05QklBSmcvY1NpaUdHYzJRc0NJdlJKVlUrcEw2NitVUmx1?=
 =?utf-8?B?enlCeXBZdzc2K01tM2JvMWp2QzNOTURuVjFNR0g3RUV2Z1U3OCszTDlxdjRE?=
 =?utf-8?B?QnhrZE1lUmdmVHFlRzM1K09xS1lyY3VTSG0zZXlWRzlHV2xjMXhoNTJPNG5V?=
 =?utf-8?B?dDVpSFFEL1l5VnNLa3hVODFSOTZSTWIvNE5pMndnWFlnSzY4ZTAzMkJ5RFJK?=
 =?utf-8?B?dGhYb0tWc2lad2ltZ1lZZ1lHWnRUcDVkZDM4YVRtVFMzYlhpTHIvek5uVVdO?=
 =?utf-8?B?eVhjYm5SV0VSekZ5cm1MYnZSUkZZNTYxK281Q1VkV1B1eU0rSFZlUFhHSThF?=
 =?utf-8?B?UHlHbmdoR2Jib251R0tsT01yY1g3TnYwM1RnV2NNbmVtQ2JHTGJFVnp1cEdo?=
 =?utf-8?B?eTFvMGtWandOMmptdDVidkVjbGRuaUpQTldrWWdhajJ5UGdNRzh6RUVWcVph?=
 =?utf-8?B?YlFxK0YyQzRjUm1VT2p6NE44YXZFVGcybmtnZWlQdlgxQjc0Mml5L0puQ2ZT?=
 =?utf-8?B?TlB6TFZ6NDQ1dUJweThWM0R5TzBsN2JDT21qVi92WmV1WHZSSFNJeWNCVStO?=
 =?utf-8?B?OTdVY2Q2NVRHM01vUWxtdlZ5KzFha3cwNnZzemVKMXVra2ZZZHBRZUJsSGFX?=
 =?utf-8?B?SUNJV294QllBc3pDUXAzb1BaNEg2QlVkQjVvNnpLOEVNWmw4K0R2bk83RWF2?=
 =?utf-8?B?Y0Vuclc3ZGR3bUJrL0NvQmM5Wnl6dkZnN0VOVmkrTEhwRWVmTUtoZm1Dc2o4?=
 =?utf-8?B?d0JzK1FwdmNySjk1N0VqSXU1Y2IvWmc1ZTc5RUNFV0c5T1pEbU5od3ZCU25J?=
 =?utf-8?B?RG0xVEh6Q25lVURmL1NHL3dyOWliRit5bm1xZ1RRZ2RNQllRNUdJeGllM0FE?=
 =?utf-8?B?ZHN2MDFVbkFvSXNMRS9sMkk0SndFMnIrZlVzR1daeDhqM3VncWNVeUVGY0hh?=
 =?utf-8?B?c1Q3b2hUWEtERjZSVGhJRzBwVHgyUm1KSjhLdTlvcVJLeGFPQXVBVlVxSXhW?=
 =?utf-8?B?TU10Z3BxY1VRTkJ2VG5tQy9hb2RQNmlwZU1WUzN4a2VuY1p0THdKZGJweEIr?=
 =?utf-8?B?c2Z2ekxJLzR0VkZKWFJWeWlpY2ZDdnhNUmR2Z3RrM2JaMTA5THE3amhFeVhO?=
 =?utf-8?B?N1diVzV6eUM5aEUvZUFON3hVL0VDNUpJSVRDZEdBQmtVQzBXSzRhZjZralVw?=
 =?utf-8?B?ZGRsSVZnbUVkVyswbmszZmpFYVdDSUtyL0U5MXJHRFo3Z3NSUXlTbGRGZGgx?=
 =?utf-8?B?WjBmSzhEYWE3ZU1LR3ZIQVg0RFZYRGtLbko3MExhMUJvVFhhRS8wdFZRdjhZ?=
 =?utf-8?B?NERVTWxKbnpRUnptK1lZL2FCQ29WWE9pVUJsdnZqQ3ZNZWppdDlZd3hzWTU3?=
 =?utf-8?B?dkZnQi9QSEUzUERTQVZEVXZJUnJxcTJ4bDJjNXNiVEl6S2xaTGZoRUZ2cFhR?=
 =?utf-8?B?cWd4WlJlNkZuSW5sLzZPTDFBNTVjamd0K1RZT2RyWFFBeW03QjNuQ2s1MmhY?=
 =?utf-8?B?YXR1SWRLNXhVSHBsNHhEa2xLU0NscE5PYjJaL0ptNlExckJnTTgrS1BXYWQy?=
 =?utf-8?B?Z3l3aVNsQzBZMGRjV0ZpUVVrQzZSV2ZTV04zRFNrR3RkNWErdVBFajZ3VFdG?=
 =?utf-8?B?ZW5sTzRhUWRhb3ExYVRyWGdDUlZVOTdZRVZIZHpmekRKbTZaYXNBMnNIVHhm?=
 =?utf-8?B?Q0RCVFhZRXJxN3Uzc3ZOTVp4ZEU5QW5tcEtONUNBV3AvMVd5a3ZMaGROdUtU?=
 =?utf-8?B?K2ZWSjRJK0QwZTZWWnByN2dKSDl1d0ZXcjRNMytHbGNVbUFmWk5sbEJ6SVpt?=
 =?utf-8?B?ZkVrcmZtYWh3Y2F5TzZYdUhhOE9objl6Tk5WTytaemFGc1Zvb3BjT0MzRzVo?=
 =?utf-8?B?ZnhPVzJyQWlvZHBYZGpUNVpmNEgxRXBKbjVzZ24zZFpEbEE5U2JmS2Z2NlJu?=
 =?utf-8?B?TU1jbGhzZEUvdjhlUjFHZWNKSTRQK3V0Rlp2dE50NG9MTGNNcUN0Y2lGWXBV?=
 =?utf-8?B?bGxtNXZkZ3lzSGhrVjRyaXlSTUFRZThrVnVYUXN0MVV2NW9uK2o3aW9yUXFw?=
 =?utf-8?B?V2hjUDg0RVljZm93RUxzWHJuajBMNCtBUWhVaEcrR0xnZlFlYm9zZE8vTDl3?=
 =?utf-8?B?aFZvQjhyYkNOK3I4TFBXL0hYU0Z3PT0=?=
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)(1800799024)(36860700013)(82310400026)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	CqFPMChgGBRRgcLDVF68tN7i9v+NtWYXzsG68KDG4IaANch4HsxJ7ysjxFmHEatwZCZsmKJvQz5l2J/tK1Vhg9u6Ywa695deSbi4FbpftTZ3wLjc2hgymbTmkZriR5rcnG3DfgzckRDAOrPBYSLeV43C3bu/l52gAOBSuwEalndRe8HjFZtBw8KyEVcqVxlwTE3ijkVwMR3Fds+s/5eI3bkYY/xQbHBPmN1n7V3FWhxi6GlYR2tjoNkgdNvArcUge4bOMlqlU9kWfrRfL8oXgJ8nSBnIqss3PR8VnXo5pAII615rWddfPhUWB54/G6/J964Wq8D7Uo2fA5WYVYG9jyToGhhkuO1T8igA2ATQjNZDbVglX9baWmihGe+VtBoyY1+FuTwQ1WO6DygI9Pwh95J432mjJnF6gFIKrbyDi204ogBJxxgkphl/AtS8EUIF
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 15:45:37.5995
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5e5b54cb-d345-4d92-3bda-08de68bb6fca
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:
	AMS0EPF000001B2.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7921

SGkgUm9nZXIsDQoNCj4gT24gMTAgRmViIDIwMjYsIGF0IDE2OjExLCBSb2dlciBQYXUgTW9ubmUg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IEdOVSBhc3NlbWJsZXIgd2lsbCBj
b25zaWRlciAnLycgYXMgdGhlIHN0YXJ0IG9mIGNvbW1lbnQgbWFya2VyIG9uIHNvbWUNCj4gcGxh
dGZvcm1zLiAgVGhpcyBpcyBpbmNvcnJlY3Qgd2l0aCBYZW4ncyB1c2FnZSwgd2hpY2ggZG9lcyB1
c2UgJy8nIGluDQo+IGFzc2VtYmx5IGZpbGVzIGFzIGEgbWF0aGVtYXRpY2FsIG9wZXJhdG9yLg0K
PiANCj4gVGhlIGJlaGF2aW9yIG9mIHRoZSBhc3NlbWJsZXIgY2FuIGJlIGFsdGVyZWQgYnkgcGFz
c2luZyB0aGUgLS1kaXZpZGUNCj4gb3B0aW9uOyB1bmNvbmRpdGlvbmFsbHkgcGFzcyB0aGlzIG9w
dGlvbiB3aGVuIGF2YWlsYWJsZSB0byBmb3JjZSB0aGUNCj4gZXhwZWN0ZWQgYmVoYXZpb3IuDQoN
ClRoaXMgaXMgc29sdmluZyB0aGUgaXNzdWUgYW5kIEkgY2FuIGJ1aWxkIGZvciBhcm0gd2l0aCB3
aGF0IGFuZCBmdXJ0aGVyDQpmb3IgeDg2IG9uIG1hYyBvcyBidXQgaXQgZmFpbHMgb24gY2hlY2st
ZW5kYnIuc2g6DQoNCi9iaW4vc2ggLi4vdG9vbHMvY2hlY2stZW5kYnIuc2ggeGVuLXN5bXMNCnN0
YXQ6IGlsbGVnYWwgb3B0aW9uIC0tIGMNCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiBSZXBv
cnRlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBTaWduZWQtb2ZmLWJ5
OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCj4gLS0tDQo+IHhlbi9N
YWtlZmlsZSB8IDUgKysrKysNCj4gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQ0KPiAN
Cj4gZGlmZiAtLWdpdCBhL3hlbi9NYWtlZmlsZSBiL3hlbi9NYWtlZmlsZQ0KPiBpbmRleCAzMTM1
MmQ0Y2QyNjAuLmVlZTAyNjI5MzNhNyAxMDA2NDQNCj4gLS0tIGEveGVuL01ha2VmaWxlDQo+ICsr
KyBiL3hlbi9NYWtlZmlsZQ0KPiBAQCAtNDA1LDYgKzQwNSwxMSBAQCAkKGNhbGwgY2Mtb3B0aW9u
LWFkZCxDRkxBR1MsQ0MsLVdpbml0LXNlbGYpDQo+IENGTEFHUyArPSAtcGlwZSAtRF9fWEVOX18g
LWluY2x1ZGUgJChzcmN0cmVlKS9pbmNsdWRlL3hlbi9jb25maWcuaA0KPiBDRkxBR1MtJChDT05G
SUdfREVCVUdfSU5GTykgKz0gLWcNCj4gDQo+ICsjIFRoZSBHTlUgYXNzZW1ibGVyIHdpbGwgaW50
ZXJwcmV0ICcvJyBhcyBhIGNvbW1lbnQgc3RhcnQgbWFya2VyIGluc3RlYWQgb2YgYQ0KPiArIyBk
aXZpZGUgb24gc29tZSBwbGF0Zm9ybXMuICBQYXNzIC0tZGl2aWRlIHdoZW4gd2hlbiBhdmFpbGFi
bGUgdG8gc2lnbmFsICcvJyBpcw0KPiArIyBhbHdheXMgdXNlZCBhcyBhbiBvcGVyYXRvciBpbiBh
c3NlbWJseS4NCj4gKyQoY2FsbCBjYy1vcHRpb24tYWRkLENGTEFHUyxDQywtV2EkJChjb21tYSkt
LWRpdmlkZSkNCj4gKw0KPiBpZm5lcSAoJChDT05GSUdfQ0NfSVNfQ0xBTkcpLHkpDQo+ICMgQ2xh
bmcgZG9lc24ndCB1bmRlcnN0YW5kIHRoaXMgY29tbWFuZCBsaW5lIGFyZ3VtZW50LCBhbmQgZG9l
c24ndCBhcHBlYXIgdG8NCj4gIyBoYXZlIGEgc3VpdGFibGUgYWx0ZXJuYXRpdmUuICBUaGUgcmVz
dWx0aW5nIGNvbXBpbGVkIGJpbmFyeSBkb2VzIGZ1bmN0aW9uLA0KPiAtLSANCj4gMi41MS4wDQo+
IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:48:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:48:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226543.1533048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vppyw-0003H0-W7; Tue, 10 Feb 2026 15:48:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226543.1533048; Tue, 10 Feb 2026 15: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 1vppyw-0003Gt-TV; Tue, 10 Feb 2026 15:48:54 +0000
Received: by outflank-mailman (input) for mailman id 1226543;
 Tue, 10 Feb 2026 15:48: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vppyv-0003Gn-Qr
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:48:53 +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 ffb97a17-0697-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 16:48:52 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-47ee937ecf2so55009105e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 07:48:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4832097dbfbsm117831185e9.9.2026.02.10.07.48.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 07:48:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffb97a17-0697-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770738532; x=1771343332; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jyr1YYsnBv5GRzRKBwP4MFTxH4h0ZKxZ4dpToEnVMXA=;
        b=RPJTg6S1MW+Y8rW2hAtv8LkBdWcqoLsZbYpBQpOuKL2gE5whqPrgMWdrFrkjV0Ifq4
         DdSp8J/QeylhKDfas6mFJiEs6znsThrOJ434r+5YW+Fzbx+D+LQWBl/9VjdlcnBh7S9r
         nKTT5E5646NXHEhImqHG6DjcpwQSXp+U3gyRv37kmsIUTkoxmR5ut5F+fLEYdHJ6+e+s
         IQJOduImS4AJ++OGr9XTQfFNiA1R21RhDU1Af/LC1x0pAI4zd2moWxfmq+CLLZSrCTCJ
         bpBkcPiTiCScp1ivSsVVrbln3GLazFjEfDHVUWC7kkpXNYTrtCag6B/Kwsj6jSn8/c7T
         4yCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770738532; x=1771343332;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jyr1YYsnBv5GRzRKBwP4MFTxH4h0ZKxZ4dpToEnVMXA=;
        b=Ydga4tWMCsahotVaxOlZGYBw4ozdo2cKASQx/h6kzwnkSFpjtKLYw20pOWC/JsNs45
         L0piPMKLqboI2RAFa7YqwPPE8DSoq010Hvc0ozwk5xaWR31Reo9qWH4lTF5wTeYXYEbb
         OjZzMJ0DtQcXFiW+muh62m1QtD4M6RT74vgRz1V2hSIdtgwZ/GphKq8BjcfX9WhYTEA0
         HM8NbA8HClFP4C7+wSVs6+pTG/8YJh79ECda1xcgHMikrtXyF1PPVZiKULBtzjFDCLoG
         KM6BiOdUVSPH8bfDtRPitVIJn53cEl+K0pbySDUliE0AZAFWfOYct8Cfx9n1ygN28rxU
         M0Gw==
X-Forwarded-Encrypted: i=1; AJvYcCWI4q10PM4PAvMBzDNWtZ3wsbDVddw3g7y5NuEz14BOgH+dgDCGaP2+mu8jGlabNi3OIJW0NBsBJA8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwDM/GG7jQ/txnRPU42SyMbEWXHbgOyObb0CxyjnaunK6pO0hHt
	LQuQ+Tbd1xjE6Oxu2CvaPcIJvkt+gLKVw7TAmd393dagc9li7BYZePyh2s4dQMdIJQ==
X-Gm-Gg: AZuq6aJP769DyUDP1WlCbodt8/yC1SHMswHH1TnkEO/p/cwxsPnDfyAwo0GDGlh27Kc
	KmZPP9KEMjWnL656R6lbOq9Y15wPhOpNcz8lMe6RUbZymmHVfdBl9zUwCeGH9B9JaYztAvtddcp
	ImNzJPB+SBtl28NKTjr58tqqgMkzyG1PdCpZMfDfEpSoWquoBlSkj4+nSHhG2HinWPrwF1v04IP
	ERBsS0C29Jmc3zcRTa4wgFpONSRSKH6eOBEGTZEtQcnVV/kgOn9wF02IA1mSFp8rJYAgqkZB3Vb
	VBB4ev6uhG5Qb3LoUBoyXNy9kGo9PRqA/Z6Nq7C03B0T4X5Goo5MfX3Wh3pzl2iV94AAozsXJZp
	S61pj3YDfGeIy3kwwX2OPIQkOMKfMCapcfzFy5Hghm8THpU6gmHkahKEdxfUi+8sgZXeUfOPE8j
	845oxTieJG/v9dNUsV4iGFN1Nz0wGBegBH7Pt62s5bFg8qn7biep2S9XdBQXsK2UergUiAODeHS
	eYRtERKE9aDqkw=
X-Received: by 2002:a05:600c:820c:b0:47d:333d:99c with SMTP id 5b1f17b1804b1-4835054f3f4mr44076915e9.18.1770738532014;
        Tue, 10 Feb 2026 07:48:52 -0800 (PST)
Message-ID: <cc84a9c9-56e8-4cbe-908a-a39c8ed8e7c4@suse.com>
Date: Tue, 10 Feb 2026 16:48:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 3/5] xen/console: add locking for serial_rx ring
 buffer access
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: grygorii_strashko@epam.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-3-stefano.stabellini@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: <20260204233712.3396752-3-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 00:37, Stefano Stabellini wrote:
> Guard every mutation of serial_rx_cons/prod with console_lock so that
> cross-domain reads can't see stale data:

Cross-domain reads become a thing the earliest in the next patch, though?
You say something along these lines ...

> - In console_switch_input(): protect console_rx assignment with the lock
>   using irqsave/irqrestore variants since this can be called from
>   interrupt context
> 
> - In __serial_rx(): protect the ring buffer write operation when
>   delivering input to the hardware domain
> 
> - In do_console_io() CONSOLEIO_read: hold the lock around the entire
>   read loop, using a local buffer copy to avoid holding the lock during
>   copy_to_guest_offset()
> 
> This is preparatory work for allowing multiple domains to use the
> console_io hypercalls where proper synchronization is required.

... here, but I think that initial part also wants slightly re-phrasing.
At the very least insert "in the future".

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -553,10 +553,13 @@ static void console_switch_input(void)
>      {
>          domid_t domid;
>          struct domain *d;
> +        unsigned long flags;
>  
>          if ( next_rx++ >= max_console_rx )
>          {
> +            nrspin_lock_irqsave(&console_lock, flags);
>              ACCESS_ONCE(console_rx) = 0;
> +            nrspin_unlock_irqrestore(&console_lock, flags);
>              printk("*** Serial input to Xen");
>              break;
>          }
> @@ -576,7 +579,9 @@ static void console_switch_input(void)
>  
>              rcu_unlock_domain(d);
>  
> +            nrspin_lock_irqsave(&console_lock, flags);
>              ACCESS_ONCE(console_rx) = next_rx;
> +            nrspin_unlock_irqrestore(&console_lock, flags);
>              printk("*** Serial input to DOM%u", domid);
>              break;
>          }

In __serial_rx() and do_console_io() you guard more than the mere updating.
As said before, with this arrangement of locking next_rx can in principle
be stale by the time you use it for storing into console_rx. This
arrangement may be okay, but would then need commenting upon.

> @@ -796,6 +805,7 @@ long do_console_io(
>  {
>      long rc;
>      unsigned int idx, len;
> +    char kbuf[SERIAL_RX_SIZE];

Please can such live in the narrowest possible scope?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:54:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:54:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226553.1533059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpq42-0004nO-J1; Tue, 10 Feb 2026 15:54:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226553.1533059; Tue, 10 Feb 2026 15: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 1vpq42-0004nH-Fc; Tue, 10 Feb 2026 15:54:10 +0000
Received: by outflank-mailman (input) for mailman id 1226553;
 Tue, 10 Feb 2026 15:54: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpq40-0004nB-DC
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:54:08 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b7279fbe-0698-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 16:54:03 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH2PR03MB5175.namprd03.prod.outlook.com (2603:10b6:610:a1::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 15:53:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 15:53:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7279fbe-0698-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CadJeKJ3iLT0VdPcUaxaCrzW25RUdsQNJ+LwIVjsJxva9UiwmhnDuW3grF9RTAZPLrA/igVAIFrmSCEVvrS2FZOahdfUc955wGd+/2sLT9007QU39J6mqNl3eAd+40LfRx6nMT9D6Za6KT1TLwfIz4JOicsnMawQOhjvZMVViNt8ejc1AdZ61OgiI68dBv9jX9rRtSFRmBmZUnJwzBF/wW/lnYssnZZBEqUlRDOcifuNc/1N5Zy8M8iMAF+GrOsC4ZLvezOwzDdSWzyPcGCOvso8t4rYCz4VdaKvI54lsUmwmnsPqvtGGrpQOJYP52oeyvVfGxyQ0Dm3tCMWfxW9DQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DmEvUZ1QKiHEzh84BWVqPOTp3oiFgQGTjg0LCZbwrMU=;
 b=LuygTHrbv6zuD/93PotxiWqszMY4269E1aeSMhNDiNb5A9bNc+ekPZwljWO0g6isJvL0GQdulnhGufmGBC9imcnRM/2fWgakRtlG4ks9Gp98RJIYY9h6YOnU0Rd4tfI1AfIoWz5TXoD4QkFfmmxSsAwViuXh698U8r2ueoiUaqBRtTGfb6+gLGgf53N5HKLB+8Lhbiwo+vpuudFhTExqsw6UY+mSB8rcurG9YugxurEU8ZGrfzYa8lUyyglGykh8Ih93rGTGWdC/XmTXFBGeQXcmHrFEj21WK4kAUAZxFnHa4JEnuGCFsfndHwzqT9CTxvJtJaBfiNVQR4j7SRJVHA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DmEvUZ1QKiHEzh84BWVqPOTp3oiFgQGTjg0LCZbwrMU=;
 b=CmjQV/xB4IgTOHQRiijn47JP1zBMGlNvorDwZE+7+ygYNHlNN2K3M1ce4ZID+Kw7mQZJIewbZvjYbbQckeLEUXSrco/tkmtvfR5P38KHtPzxJ68rIF4gtwp8m6JRizMjilaGSaM4m2xIRTekgdZYuFLU4qb4j9hKbSUaFjb/3mg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 16:53:53 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Bertrand Marquis <Bertrand.Marquis@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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
Message-ID: <aYtUkeoX273I8ABq@Mac.lan>
References: <20260210151110.26770-1-roger.pau@citrix.com>
 <8bef9911-2f37-4cd1-bf18-29cca646fb09@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <8bef9911-2f37-4cd1-bf18-29cca646fb09@suse.com>
X-ClientProxiedBy: MR1P264CA0035.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2f::22) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH2PR03MB5175:EE_
X-MS-Office365-Filtering-Correlation-Id: 86237ae5-b383-4325-5dcb-08de68bc9974
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?QWZUaWlWZVEvQWdVdFlueGFVNkkxNHROQXovYlJZMTZNUUlraWlsdWF4aXBV?=
 =?utf-8?B?Tlp3bDJoWmptSWwwZTQrOWJaZExFOUd0aEowYWNMRXJWOTRIK2RsK3o4YzZI?=
 =?utf-8?B?Q2RHUkJkWnB2bzJJVitIekZ1MXZvSUd5alhVNzg2dEFId2J5ZHMvcGd1RGlI?=
 =?utf-8?B?OEhxNmhSdDgvdTNsbG1mNXNZc0Z2bWI3Ylh1WUpqS3dZc2VZTjc1ZDdqWmdp?=
 =?utf-8?B?ZVFGQzV6YzRuYk45U3crWTdSWFJDQTZNOC9uY2lqc2tWN1dwUnJnZE1PWndC?=
 =?utf-8?B?SXdTcm1pUm5pT2k3NGVCRUpoVGF2akZlb2J2V2RrdWZUd3c0cGR5TDN5Q0Nl?=
 =?utf-8?B?d1orSGRQVjNDV3JyOHFhRStpVldSemd3QWltTzJ6U2Y5dlhRcXhGREVILzhu?=
 =?utf-8?B?WTMzbjVUZG5qS0lJQ245Yy9JUjJUTExnME95NUd2bnV6MitQN21WSVJCcnpS?=
 =?utf-8?B?ZlVDNWNiZnpackNRN3lrelNlVHp6Mm1oQ1JjdVZIYjdndVRzU3NEaS9NVUhZ?=
 =?utf-8?B?MXBsd1VhN2pRQzgzSytPSGZ3c01rTG5rSlFwb2p6MjN3d2FDQWF1YmZoREVy?=
 =?utf-8?B?SEFYS09tOE9mSndUTU5rUDJqUGtKYTRWd0h4NUpsTGNEL0pwU3FKWlVJcCsz?=
 =?utf-8?B?bnhkMmdwcnlqMlhodkZFWlRYQ0QzWnQ3VjRTeE5VTGpwbmQxa2p4SmdJT0p3?=
 =?utf-8?B?TjZKZTdVSFFFbmhkc1lhdk53UTNVN0xKczFrOGFCY2t2ZTg0MG5BYkt5SnVI?=
 =?utf-8?B?UVA0Q1RkWldnWldNcSt6RDZHYlFnenFuV3lvRUtHRm5aSU9RSy9Yd1dON2d1?=
 =?utf-8?B?MjNlTkdBR3RSOHZsaEUyRXduWVVCRHE1Qm5lTHpodTVUVE9zQXRDbmk2aC9M?=
 =?utf-8?B?c2hhdnVnK3M4SU5CZFRBTGxVUlQwNmI4RXFuUHYyN1BQZXdiSllSaGNpRjNz?=
 =?utf-8?B?eDVPVGtTeXUyaEtKRjJhVm1UMW5zU3puWlp4amppVlJkbVRTckhhS0hVVVRi?=
 =?utf-8?B?SVBLK3IvYW0rMXJVTWZrZ0k4UHF6WG84em9HdXl4QW1WTklLV2JRQ1R1ZUg5?=
 =?utf-8?B?dUZVQXdpVm9mZE1oUENuUklKUkl4aWdNYUQ4M0dWMnRhUENPWEhlam15MW05?=
 =?utf-8?B?WHlCY1M0RXJOM281a2JJeHdDUWNlSmwzWGdOMG4wQmdjMXBYRVc4ZzdYSjcx?=
 =?utf-8?B?SVJ5TWo3aGc5TDdjZCtqeXI5a2FMT0xIVjdLbjlIS1AvUEprNDlBdlR5d0tE?=
 =?utf-8?B?aXB3WHhSYXBGMTEwMWgwVjJDU0Z3UWMyYlZhWDZoZlhUMzk5bThPTUtSMHVR?=
 =?utf-8?B?UkgwcWZyZE1GejlwRGVIZVlWY0pMYTR5OFcxSkErc2hBQzVTZXlSdzh4bFRG?=
 =?utf-8?B?Y3E4YzFqRW5ucTI3ZEJ6TzN4aXVvcnYybnpsUmRXeEtDZ0hodFZ3Z256MVVt?=
 =?utf-8?B?Rk1TN3Qxa0NPMHo4RHlTMHJmbWRkOFFnZk1GZWxyRkNTZW9jMzNFWDhDNFQ2?=
 =?utf-8?B?L24rMUEzcDBIbDJPUWVtRVRHcVBlYjJISjdEZEF0MllaRFo2QXpwdTVZL05F?=
 =?utf-8?B?aStOY1d0a2R3VkdGVWFiM1IrVlBZMndHa2xrY3g2dXBlUzRvdHgwU2RjNXBq?=
 =?utf-8?B?cmU1eHZZODhDMHR2bmVQeDZOck1NSmQrd2NhOWZkcWFIdUdVbEt6TDZheTBr?=
 =?utf-8?B?L3IvSmlGUlZZRTltckgxcUlSWEorbG9KNGxSbTg3VTA5SENNNnpueWJ0VTE3?=
 =?utf-8?B?anEwd2dQRWZyUHhGWVBNOE83dkpJWXVMMDNBQnFxNVFHV1hpbW9MbVRBeURC?=
 =?utf-8?B?NEswOUtPU1A5amg2ZlVYTENVekFUV2Y3R093WVRYOXBNNXNjWXFybWhFNHRT?=
 =?utf-8?B?d0VjLytiR0tTSkM5N0VEcXhiZlRaaVRPY3F0L0l6VGZYZzRmczlPNjVzWFYz?=
 =?utf-8?B?WjBRakhrQ2hYdkJCd0pya0lSNy9IQVY2RTdqeFQxNkxDWktUc1NnTzB4VHF6?=
 =?utf-8?B?TGJnT094NFhMT0ZmeHE2RXVucGdud2ZTR3VnTE8ycmNVQ1ErOXpZTEVZS2pS?=
 =?utf-8?B?T0ZJTTVyL2lIdm44dllJUzczaGxUQ2graUFtbHcyMTk3QVM3Vm5WVnBLQ0lz?=
 =?utf-8?Q?v8qY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Qk5xYnZXUitTRlI4d2lKOGwwR3ZaUHltSnc4WkRRYWJXQWg0UGZFRDZjcDRI?=
 =?utf-8?B?dFN5c1hIc0xJYTdEYWRUc0RZS2NYUjVDdjYxMDVzbHRpOEN2Uk4vWUFpTG1C?=
 =?utf-8?B?cWcxOHZ4NEo1cU1rMUNZYm5GckpldzNaZFN2aFlnd2lJUDZDQzRwYjFvWGpv?=
 =?utf-8?B?bWdQTWViYXZhOEhWZ0FsNlgvam9mdnowVzh0RjVLZDdWSUpxbVJIUjR0ZW1I?=
 =?utf-8?B?YmJ0aDlvWWo3aWFScGk2aGsxc3htSkdlaDlnTDUzcHdRSUlMY2lXZjRhdWxn?=
 =?utf-8?B?MndMUEFMT3VXVjJIRm9PUStYMnBrZUwrV0lFQ3A5QXVMRFk1NkFBRGV4VGk5?=
 =?utf-8?B?U3NBTDk3TTF5MytaaHZrYmRRcGxnUGE2ZjE1bzBTYWEwMTVDMTIzZnZXd2tZ?=
 =?utf-8?B?WFpybVFDUllSVW1sa2ErYU5pUDFmZWlNOTgybmlGVVVkZWRIR1g1Wno1dFhr?=
 =?utf-8?B?cDJJdlZQUHNXT2wwcFNRTlRsRGQxbEdCRmNsRno3M04xWTJGN1F1cUlHZHhI?=
 =?utf-8?B?eXdyUHhPUEh0VEd0MUl4WXR6VUQ0N3FWcmtyenl6OUVYS3QxTHE1QkhMMmZp?=
 =?utf-8?B?akhVQ1dZdFEyUXk5MFpnRnpsK2U4cmFYMnZiSHVTWm9pYU1IcjgxTzBKeWRR?=
 =?utf-8?B?NWc1eG9jYlNnV0NkKzhvOGZKWmwrMFJyT0djSFl2SjBNUUxBdzcvbUVuUlpV?=
 =?utf-8?B?ZmdxcGJ0SjBuZGZJVnZIallVNHBVSGZ4aTFOSFRFTmNLYkhNbEVWUnRmV0dB?=
 =?utf-8?B?Y2M3OU9tNTVXeUNyYVcxR3BCZG15eGFZZkRNaHRJNlRuaUdHMElQaHFFY0w4?=
 =?utf-8?B?V1ZQRm1uSmVPb0VHWDJod01kQ2NmQ01abXdYVWhhUXl0MWg0aFdTTklvMVpa?=
 =?utf-8?B?NzA5MDhxcTQ1QjNrS3FVZUlURGZFeGFsUlJRWkdHMmFyeDBaTWNmMldIejZZ?=
 =?utf-8?B?ek5ad2dvQXkvTUErcUROWlpQVlM2SHg4ZzU1YXp3Q2xsd1pNOUJmV0hwSFEz?=
 =?utf-8?B?TFVQL0lNVis1NjJEeTNTMjNacGo5R0c1TjNTemtxSUZpVklYKzdPNk5GRzlo?=
 =?utf-8?B?a1Q2RnVHNkVPSHlFTzUzbDYrSzBHZkVKTklvMWZGVTlkajNNU3JTa2FRblMr?=
 =?utf-8?B?MlM0SStYNlJFeitKY3JZNHhxZEVvMW1rMU53aDdReElvUU45TVpTbk8wcm42?=
 =?utf-8?B?Yzg1MUJsRkh6NHpxSmRSR0oxVUZLSlVERDVXS3NjVDJTVGdON1FhMWxZcXVB?=
 =?utf-8?B?Y0hHR3d2K0RSYjJuRFZpRTNYdzZZZVFRRWFHamVGaEtRYjVUcEpKMklNeS9V?=
 =?utf-8?B?bkdlNlVFMW5DaUNQMFc3UzBrWDNMSXZSQ2NGUDkxMmsyc1pORXl2dXN2UmRE?=
 =?utf-8?B?akxnS3hKSWxHdy9LNVk0NURoZEM2VVcyMEtPSGNtcW9GeTdqdWV3ZkxuMmVB?=
 =?utf-8?B?bWZSakVyM0FMekpEVXVZNkFpWFpKOGp4MGgvRXhkb0ViMDdHQS9MWmtSUWNy?=
 =?utf-8?B?NVh3QVRPU3B2YklubUQ4UWNTZlM3QVc3ZG1hNVdvOVczaThId3ZCeHI5cXBj?=
 =?utf-8?B?Wlpma2NiUnpnWE04b0oxdTdtTUdmcG1WZVRIa3RITmRTRlAxTEsyZzdyazB3?=
 =?utf-8?B?c0dIUmN3ZERzR3ArZTdyeEhhWU90WmVBWXY3ZFFpbFc5a0RTdHlEcGNBMms0?=
 =?utf-8?B?N0crVkM4cjV4L1hJcnJIeEFySjdNdzNYRWVxNEEzVWcrR0t2b3ZLYzk0bUVM?=
 =?utf-8?B?MExhTmIzUC9obTY1NWlnS3ZGMHQ2OTRUTWY3K285U2g0a2YxS2pFbENyK1Zu?=
 =?utf-8?B?ZWwzb0dCYjN0WHJEcElPNGZpcngxQ1BWVlE1c21tY2dDMm5Cdkt5UEMvb2pF?=
 =?utf-8?B?WTd1N0owV0EzcEFmWTdESXNPWlIxSE9jWlNlSGFKZjdNOUwvQ2svRUFIM0ZH?=
 =?utf-8?B?UUxKRHhCckhITXhvRVFGZENNZWhnWVJBZjJXSUlWSlpHSm5SWldsdlovN25w?=
 =?utf-8?B?cHlpWUV0amYzaWxBYkxZMXZTbi9YY2pUSWpVTGs5elZHMmVhS1FQMmNlcDY2?=
 =?utf-8?B?ckg4Q1lFZDRrQUdhMUtVTHVndGpYRmxTWVErTmg2aFBJNjFJcUVwU3orODQ4?=
 =?utf-8?B?SFJJQnoreFIvMyszdWdrcXBmMDJrM25wdlJ0cmc0M3dubVhES2c3azBQb3Nn?=
 =?utf-8?B?ZkVJRHpUZXp5enczSXhSZ2J6Vk1DeHVkaFpiRkliRTEreXlYTWdJQURBTkhE?=
 =?utf-8?B?disrd1hBRHFxTXdOZHQ0VXlWY0Y1RkgwaEY4ZVVUT3RJeU5aRUdYQjgvOUM3?=
 =?utf-8?B?SVlNZDNlb2ROSmRVd2FtSGxlQ0xrcC80ZGpwWHBUTmQra0lzV1dFZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 86237ae5-b383-4325-5dcb-08de68bc9974
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 15:53:57.3014
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xp9TYXDbrPw50AnECoeiG/Fca/UnexVWjbbuuE+/MXbUsd1K45xLlaDyP5T2AhlK/UFbhxAGWBFaS1Bcn4BeQQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5175

On Tue, Feb 10, 2026 at 04:27:33PM +0100, Jan Beulich wrote:
> On 10.02.2026 16:11, Roger Pau Monne wrote:
> > GNU assembler will consider '/' as the start of comment marker on some
> > platforms.  This is incorrect with Xen's usage, which does use '/' in
> > assembly files as a mathematical operator.
> > 
> > The behavior of the assembler can be altered by passing the --divide
> > option; unconditionally pass this option when available to force the
> > expected behavior.
> 
> I'm fine with this in principle, but I wonder: What about Clang? If it's
> properly compatible, it ought to also take '/' as a comment char for
> those same targets (in particular for the plain "x86_64-elf" one).
> According to godbolt it can't deal with -Wa,--divide, yet there I also
> can't control what exact target the toolchain supports (i.e. this may be
> only a weak indication of lack of support / compatibility).

Hm, I'm unsure I can get such a Clang build to properly test it.  Note
the checking for the presence of the option would also be done in
Clang.  I would like to think if Clang integrated assembler has this
behavior the option to select our expected behavior will also be
--divide.  I think that's the best I can do ATM.

> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -405,6 +405,11 @@ $(call cc-option-add,CFLAGS,CC,-Winit-self)
> >  CFLAGS += -pipe -D__XEN__ -include $(srctree)/include/xen/config.h
> >  CFLAGS-$(CONFIG_DEBUG_INFO) += -g
> >  
> > +# The GNU assembler will interpret '/' as a comment start marker instead of a
> > +# divide on some platforms.
> 
> Could I talk you into s/on some platforms/for some ELF targets/ ?

Yes, that's fine IMO.

> A more fundamental question is: Do we really mean to support (allow)
> building with arbitrary-target toolchains? There are other subtle
> differences, which may be hard to evaluate as to them possibly affecting
> the Xen build.

Hm, TBH I wasn't aware of such subtle and annoying differences until
today, so I'm not sure what to reply here.  I haven't tested the x86
image yet, as I'm still attempting to resolve some non-POSIX options
usage in check-endbr.sh.

We might want to state which ELF targets we do explicitly support for
production usage.  TBH I doubt anyone would use a Darwin build for
production.

> >  Pass --divide when when available to signal '/' is
> > +# always used as an operator in assembly.
> > +$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--divide)
> 
> I don't think this should be done here: --divide is an x86-specific
> option.

Oh, that wasn't clear from the output of as.  I can make it
x86-specific then.  However, is there any chance of this behavior
escaping outside of x86, and hence would we like to ensure this
behavior on all possible arches?

Or is it possible that other arches re-use the --divide option for
some other functionality?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:56:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:56:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226563.1533069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpq5o-0005Nk-2E; Tue, 10 Feb 2026 15:56:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226563.1533069; Tue, 10 Feb 2026 15: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 1vpq5n-0005Nd-Uz; Tue, 10 Feb 2026 15:55:59 +0000
Received: by outflank-mailman (input) for mailman id 1226563;
 Tue, 10 Feb 2026 15: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpq5n-0005NX-KE
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:55:59 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fc71c8b8-0698-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 16:55:57 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH2PR03MB5175.namprd03.prod.outlook.com (2603:10b6:610:a1::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 15:55:54 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 15:55: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: fc71c8b8-0698-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vi+j4kAP0EZ6lkKcEYZpFLHZ8VvurnKARfG/NDuSynQEV4+TCJqM9D/AeAH5f30FAWGQNRe2HCEa6JACJb2KNkc2r8b/0Y81iNUjsnDQ7cvbsGDBHNBavIiC72kQm+QCRPOliZKEsMOO3Tts4NWHiOe4YL7t505YR7WC5yDeGpO1hoQBH2DWLAGJy/OWyDMYSzaB71x1h7TSQ2r+jPgcPkag6Na2opzcA3iXLMK8KIhHv9JaNt/AMhpd74e0HpPXPkgZn1uYJxYd7mTtDn2nXfmb8+Bqp3lKoyUxJYHbSYM/KRG/6Hi25h9TziFDmrSp1Xxn09vJMcTnJcV0RhhFXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WU/OUTdKK3QclasN6C8ruoy+zrF4efU83FNzRvbIbTM=;
 b=lK11hSu/SuRQc4Krz/5TLn/qZN4g6k2UBmyekrMb/QA85dDY51n1TSnDYkWUKBUjaz9PmF0kukKTstKfWp2zldq4t2akamcuVZs2tdJXeOCYzKFAo8QVaYF9xfjQ061Kfk/RtGlMCWEJPBElXS+2VsLdoe/A/+jXd2IPk3+bW0lAPoqwSbyurnzbw0zG2FmYCxvM79Fk4Y8U74ApgERepVXeoEqDto6Yiyr5VwOqN/RcgTF2GHwlxUQ2IHpVwERZCLauZoJ3TYxUAuntA/kf+efZN9YtkP7pFyTj3wloTS47a57Y8hi/VNM1WJCRPYm2OSJgf8embxp1HU/Ign20iA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WU/OUTdKK3QclasN6C8ruoy+zrF4efU83FNzRvbIbTM=;
 b=cAM1wMXBhJEO6rcLUnkiqWpvxUI4gXJ86UQRgDLtmJ0a2SqJTu5lIBvaGNCFAAv8o7aIYa6RKcZhdf3CKZK7xQHla9W5NDEoeWZKZYTgewemtdtGg5i6RUxSaEcZX83UQVWSdfKFpWcvS/lXW206C9l+xSJQu82ugl5rqyvbgRc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 16:55:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.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>
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
Message-ID: <aYtVBuHVcfZE-L-a@Mac.lan>
References: <20260210151110.26770-1-roger.pau@citrix.com>
 <FE2A96EE-5D99-4CD4-82AE-7538B94DBB0F@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <FE2A96EE-5D99-4CD4-82AE-7538B94DBB0F@arm.com>
X-ClientProxiedBy: MR1P264CA0208.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:56::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH2PR03MB5175:EE_
X-MS-Office365-Filtering-Correlation-Id: 2fbdffb1-f07d-4277-f92f-08de68bcdf5a
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?RnZNWWVhSE5HSDh3a1daVEZNTTVLL0tSUlpDamxOdVdsQTNaKzlyNWNnMWtw?=
 =?utf-8?B?TTcyT2FyYTcvT1JacU9KdkdKZ1hXMmFzNEwwNzEzZlRCdUI3Mnp4U3pGTzJ4?=
 =?utf-8?B?dldqekdKY1k1Nm9RUVZsOG9qdDAvYmlidlloSWE1UFdCakpESGc5RG9RVjBG?=
 =?utf-8?B?ZCtXVnY5OHViRklrdTR4WjZjcHk5VEdTd0t4ZmQrRVFJZUlPZjQ3ajlVeFZl?=
 =?utf-8?B?NEIyTFRTdzQ1aWNuZmNhbHM0RllLNWViY01WMnpYODZnV0hUbWM1c3dOSWxv?=
 =?utf-8?B?SzVqZUFSWks4UUlQd1hqbUoycS9mTXB4b0F2R1ZzQ1ltUUFlaU92QS9Dckhp?=
 =?utf-8?B?U0hSVTB1bHhGWm5odHVBWlJlMVZZUTVmMEJnU2ZERkVDL3lmUlZQTHpkR2Jt?=
 =?utf-8?B?U0haSXlNQVBWQk9od1pLSUJQcjRoamQ4b0pxWXBHd29sSk04WTBvN0FxMWYz?=
 =?utf-8?B?V2t2dG8ybDloaUZHa0lXYktrOFdGOVhvS0ltbTdPQityc1pOY3owL3ZwQmRn?=
 =?utf-8?B?cUlmU2RlejFUN1pXK1ZZTVpZOXFJVG1DMGF1NE5LR0xQK3A5Q1AvOGZTeVBt?=
 =?utf-8?B?REFoVzNEbitmb2M1ZVRqNVVJTVVrR1BGMVJzZWZKMHRETEVPelY4eGVhTzQ3?=
 =?utf-8?B?MlNYYVJ5WGJPTWxZbEtIRjZtQ09oYm1weW5sSmRPU3JlNHlJVjFtL2N4aDF4?=
 =?utf-8?B?RjN6MitOd1phY1Q0UDZobld2YTkyVU9wcjdOb1RnVWJMVWFVRjZjdUZ6T1I4?=
 =?utf-8?B?Rll6NGFmbndKc3ZrbC9jODNqbEE3ZWpYU3UyR0dMWFgzQkxlVnlYTEZzVzcy?=
 =?utf-8?B?eS9Da3hmc1ZxanEyRWs2ZDVOVXFqWEJFVzdHNjBySjIrb3pRY0RVV3IwMmFV?=
 =?utf-8?B?SHQraG03a2ZseEFlVFliaFpVRnF5UVBnQXJzZDV0RllQMFVvbG1JTkwzbm1x?=
 =?utf-8?B?dkRZV3h4WjFKeFRtd2dXUmdHdktqYzRtbDN6N2w0RVlud28xODRjR0RCVnht?=
 =?utf-8?B?d1V5UWhGNWs5dEVkRE1QcUZaRFBvMW1nZlZMWDZYRVVrTWN2TnJTZS9mbi9T?=
 =?utf-8?B?cXQxTDRqaHJaNlJhTHptVDJDV1Z6dTBEbE1aSWNxdTZEKzV6OXNZeDdNbHN5?=
 =?utf-8?B?V3J2RDJnZTNUSHczK0xiNmwvNlIxWXRSRXNaSXYzQWxUeXJlOFNhMTBRU2hV?=
 =?utf-8?B?NDNTcGpQbFF2ZHRhbXlNVnNZMUVBMEpRaENFaERmK0JZdjdXTDRwZTVBUzhR?=
 =?utf-8?B?TlZLbStLeWVFWHVIRk5DeHlHOC9XNk44d1ArTytqZzNleHdjRlUzbURsYXZ2?=
 =?utf-8?B?amtHaUNTRi9udG5ONXdONE9Xb0UyMHJkNzhHZnF4SlJXckFVeC9BZVpmTkQw?=
 =?utf-8?B?MnE4NTNiNStWT2FBSWxncFdxZDNjN0hWTVk3aitBSnJvVkc1U3lsa2oyZEYw?=
 =?utf-8?B?bFFGOUUwYlU4RVJzcGF1eHlVdytCRjBuM3BndEJBSUN3cEM1MlpnT3l4YnBG?=
 =?utf-8?B?ekx6Z2NLak5YOTNIUW9jay9YbHU4YWo3S0h6NVNxT21ITGlrTjNLSTV6Smt2?=
 =?utf-8?B?L1RXLzNmc3RyaVFtTHlkc0Foamk2WkRCWjd1KzBXWTZ1eWFtUUtJaUdKZGIw?=
 =?utf-8?B?bUh6OVFSc3ZKZy9pdUpTVEc5QWhzajNzck52ZVo5aG9EWUZzME1MTndsZExS?=
 =?utf-8?B?bjcxMDNLbWdqTHdOMzNPRzZzNktSR3FoZElxczRGRUlBVHpXRWUySWsxYnhj?=
 =?utf-8?B?ajNKUk9BeUZnbHMvWlFyeDBpczNMcWE2K0JSUWRZZWtOZm5sbWY2R29oQkgz?=
 =?utf-8?B?b0dHU3pDSHc2MkdRcHEzWXdjZTNvVGtSaW8yWGI1QlFKbzYwZkRtYXpjejRM?=
 =?utf-8?B?Q3NqM0U5M1BWbGxGWHpidlJPWWRxZElwYjRMLzhid044ck14UTFTcTNjQ3Bk?=
 =?utf-8?B?dzRTc2ZQV0dFMk1QdWhJakZMbEppeWpYcy92TEdUc3BCQndyRVExNCtCUmlM?=
 =?utf-8?B?M0Q5dXJHdE8rRVNsMC84RW9JR2ZBNFdXcjhJeGZJNEVKOEgyNnVGeC9lWHhP?=
 =?utf-8?B?MWs5aGRpV3BiL2l3QmlHY3Z5QnNDK0Y1cmMwRWpFNlUxSkhFWnMvZ0NHWW5y?=
 =?utf-8?Q?zMhM=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WCtYSXF2VjlIdklyL0lIWUtCeGcvOHpmMWo2VzJOeHpTdExuQTZZS25McXc4?=
 =?utf-8?B?WDlLR1ZjRnE5OG03WGU2NktqWm1sQndGeHVJbXB1blQ5MS80ajNVbWlCQlRs?=
 =?utf-8?B?dlcxc0FTUVpEVlBjYTdDaXN4bnExaG1WUDJNdDQvS0p2ZVJ4cnFuc0FJNGRy?=
 =?utf-8?B?dTV5K2pnNXFiRVkrNGlkblB4RjlCNXZEblJlY2Zuczk4RFg3Tk4wbFM2ODF1?=
 =?utf-8?B?L1psNU5aVEtjOHJFQmZWQ2FudmYwb2lPWVdwaThXaU9RczdNb0hEREp4SGtx?=
 =?utf-8?B?WEQ1S0VCQ2E0aFdJbFN4K1J3Q2xDVjZNL3dOTDJqbjlIdzNEMmJndTQrbDFS?=
 =?utf-8?B?UDBHaXNkQ2Q1OUgyd04ramV1Y0RabmhlVU1qRWtDb0NVOVVwNlByY1ZkYXNZ?=
 =?utf-8?B?bnJ6TnNzUnNpYjZ5SGJsUmJGMDhqY2RPbDdpb08wR2d3citEUkUwYThtUDUr?=
 =?utf-8?B?N1lHRDhOM3BEdllocjRaaVd3UDg0ZkY0TWhGUHlvMVZLQ2RFdDVINnhIbjNw?=
 =?utf-8?B?RldFaFVzQ2RsUU9nMDEyaW0waU1nWC9FTWVzbU10SmI3Z0dlcHlqYXR5OEJX?=
 =?utf-8?B?QjY5MjFGcyt1ZlZ4U3RMMGthUHllNHBFanloanhtaDNXTGpmdGlDTllWN3dG?=
 =?utf-8?B?SXdqcU5JaEM2b0o0Uzh3T3dBbzBLd0dWYm1PdUQ4WUw2YWQ5TnpLdi9Hc2Fi?=
 =?utf-8?B?YUxEMGZyUFVKQ2hCdDlNeEpmNFBDR1NjUnBUWk9BeDBLWldub0dsM2NLUXRO?=
 =?utf-8?B?aHRYcHB1T0JWa2ZWek5WQ0U4cGJJSEVZck5idUpXZ0Z4SC91N1MydTVYcW9R?=
 =?utf-8?B?RTk0NkRLaUY0NktvZmJuanVNb084UnROMlNnSzlwZWNmZDhCbnMxUXI3Rk4v?=
 =?utf-8?B?dWIrWUFZeTc4TVdqV0FPTlovd0tRbVNJMFNZWG5OUDZ3NTVubmoxLzlhdGgz?=
 =?utf-8?B?dUVUSVpvVU00cEJ4VXp6cExPRnY5SkxMeS9seU9zRjRoUEpOWDBrY2ZwVW13?=
 =?utf-8?B?NzRheGYvUlQrQWtmcjZwS2pLakNibFN0SFhOSC9qSXNncmZ4R3hJRjFEMWxG?=
 =?utf-8?B?clM3ZzFPWlBrMEZNbmRIc2dJd3pHWTRyL01hUldhZzFtSTV3ckc2ZFJmK2kx?=
 =?utf-8?B?dG9EdldhU0RsbUc2MVBva2xjUjhrOFRvQVFtMWp5VmV2ZHU4SzR3eU5TTkJh?=
 =?utf-8?B?L1BxRWNBWGJLTGp3N3lVcWh6azNTRi9iZUpzK242amg3cUZBS1A0NVRKcHhS?=
 =?utf-8?B?QUt6YWJUWjFVZGFqWG9IN2pwanR2RGNPYlhRWS8xVFV3OUdyb0c3UmNwdFBm?=
 =?utf-8?B?UXJWY2JNT3lPNE5kZGxkQkVKQjJsYjE5czZCT2FFblFWYkM5QnNBN1FaV2sz?=
 =?utf-8?B?TUJHVlRlbnAyS2lSZVRyWFVHekpxWDUvM2JGQW82aSs3ZXlFdjVJc1NWM1JX?=
 =?utf-8?B?UEc2ODU4dENqdHZhNUEvVCtBZXpVckRva1h0TW5oSXU2RkpwbVpHTmdwM3hy?=
 =?utf-8?B?TEgzMHpBN1JwTlFiNUZxYTNGbVJZczZ2WHFoQTR1a3JyMVM0YnhVWFlMTzBF?=
 =?utf-8?B?UU0wWlZrWVVKSllMRjhJTEF2Y0hKeWtkcUlJa1NqOUhFVEJGVitEYTJ3akFH?=
 =?utf-8?B?WThQa05vblBlUHFiMWczTG9oRzh3U0cvSjRLNk9ZSGUxMWoxcFoxMTIxNFFx?=
 =?utf-8?B?QnJlU00ybzFUbTNhaUg4emNNT2wzNzdWMnJVbW91cWUzSkFESEpsYldPb0Mx?=
 =?utf-8?B?bjJSeGIyT1NsZ0lWMUVEazRITUpLRU5KclNYNTA0TjFPTzVEUENSVjdLMk4w?=
 =?utf-8?B?a3Y0dEpTeUhscEJQelhBa1pYRHM4SjdWRnZWODZzN244UmphenlrRDJ6cE5m?=
 =?utf-8?B?dkp4R1BQL0t5RUY0Z0FIa0hVQTFoOVJxbWFSMzl4b0I4Y0dUNUJrWittWkQv?=
 =?utf-8?B?T1FuRDQ3eFRCSlBoT0p3V2RuNVFqSmozRlRYdy9BcGJ6SUdtUXRwTitVKyt0?=
 =?utf-8?B?VWljeVhZbjYvUlgyUy9oZnl3d21PZHkreWEvMnlTL3A0aGkwMnJncE5rcXdr?=
 =?utf-8?B?N3NETmdWbVgrNXlQVVM5VC96cmtOZDhyUlExTnV1c1NlV2FOWUthalpWZ2F4?=
 =?utf-8?B?TDQ2ODUwSWg4MytndEFrbmZtZmNSSzBRbkZHY0xKU0gxQW5GMDdRS29ta3dF?=
 =?utf-8?B?VnpFNGxOdmlCS2E2N1U2Z0hsVjcwaVhQK1NzRVlUb2RTMnJ6aURwRTh5dEdr?=
 =?utf-8?B?VE5STTFnZ0VnRDFncmgwZEtaNzJuNTljcHZLdDE0SmZqUWExdkRyQkhtZ0di?=
 =?utf-8?B?d2poN3prNzBIS3hwYVFuNHRwTFJDRnJKNGVLWE9uQUN1NmtsOCtPdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2fbdffb1-f07d-4277-f92f-08de68bcdf5a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 15:55:54.5041
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Skz7yJ6ossYuWixWzbxEKNolESITqDdx5xHyS+Q5Fo84eV08tMPUjC3ZyirspHEKM3Lv/UGx1k5Hop8DmM5buQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5175

On Tue, Feb 10, 2026 at 03:44:33PM +0000, Bertrand Marquis wrote:
> Hi Roger,
> 
> > On 10 Feb 2026, at 16:11, Roger Pau Monne <roger.pau@citrix.com> wrote:
> > 
> > GNU assembler will consider '/' as the start of comment marker on some
> > platforms.  This is incorrect with Xen's usage, which does use '/' in
> > assembly files as a mathematical operator.
> > 
> > The behavior of the assembler can be altered by passing the --divide
> > option; unconditionally pass this option when available to force the
> > expected behavior.
> 
> This is solving the issue and I can build for arm with what and further
> for x86 on mac os but it fails on check-endbr.sh:
> 
> /bin/sh ../tools/check-endbr.sh xen-syms
> stat: illegal option -- c

Yeah, I know.  I've fixed the stat issue, but there's a further one
about an illegal bit sequence in grep.  I'm looking into that.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 15:58:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 15:58:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226571.1533078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpq8G-0006Al-Dz; Tue, 10 Feb 2026 15:58:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226571.1533078; Tue, 10 Feb 2026 15:58: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 1vpq8G-0006Ae-At; Tue, 10 Feb 2026 15:58:32 +0000
Received: by outflank-mailman (input) for mailman id 1226571;
 Tue, 10 Feb 2026 15:58: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=1KCy=AO=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpq8F-0006AY-5D
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 15:58:31 +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 552579c7-0699-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 16:58:25 +0100 (CET)
Received: from DU2PR04CA0082.eurprd04.prod.outlook.com (2603:10a6:10:232::27)
 by AM7PR08MB5479.eurprd08.prod.outlook.com (2603:10a6:20b:104::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 15:58:20 +0000
Received: from DB5PEPF00014B93.eurprd02.prod.outlook.com
 (2603:10a6:10:232:cafe::68) by DU2PR04CA0082.outlook.office365.com
 (2603:10a6:10:232::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 15:58:20 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B93.mail.protection.outlook.com (10.167.8.231) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Tue, 10 Feb 2026 15:58:20 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA4PR08MB6302.eurprd08.prod.outlook.com (2603:10a6:102:ed::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Tue, 10 Feb
 2026 15:57:17 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 15:57: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: 552579c7-0699-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=W1hcuvwzwuS1wybMpXpyUP/68mBZU8cXvrpGzizZUC7CWmdhWgQZJzVP4DyqZUrwmk50ruVars27MsoKpSIM1tnlOsiijkaKZZO9Jbt+7bMtA3oU0VlaRczyMcMA7vt/w7vYbc8catfru/3PBNPY0P+41YHWMXgMahODqVUgxdRQfAxMJw/vDvuyP0IShbL7XNZoztbLFOiVGM8yW0yt1NBXu7px+UZW7v0n32msJFzGZgfUliwV9pHMLfxenikRgHe2mVRGWX4o6WNnVwplcUwgW0lSc/ntX9dJvMn5uQOvSCp6KeYPoNPvAIfPSPcid4kSIRrksnn7xqQCFwqEdw==
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=fi4lepyvIgrMq0Tphww7nydOu/MHL4NuBQXKbDmxgaw=;
 b=mxGMXLcBUEjudVrCFT3JmWZBn/RKdKJmcWGGNwVH6iLMv4zdpAc/AQuIdgYGKiTJ6pz8oihDN9tIguuGg+duXzKVH9EJszoU8XvrJKAGbHWqbT6cbyj6ue1wCTz8grB+kg8VwC27RQiiHy/1KyCQGYzIdkR9y03fRqCQjg5+kLsiJh4l0M8X9Prs68/q2NAZYPTfuT5xh2YdNc0CaTv6D0dda5mUUFYwjtz/tlOnVM42Qqbz2yspFdFD312iVF5NWxQFBOzMEg/PcyOic1XOBxI97t+VzirjZjkEcNkHyVnXUjAhWxjdsP5Ic8O9qzwP0x6ar4ICk5sREcPTTlR2LA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fi4lepyvIgrMq0Tphww7nydOu/MHL4NuBQXKbDmxgaw=;
 b=jaXglsB4eZ3toGGRcgJM9ZmfrsONcGuL7EYtfAY/9VnDWEO90+J4mgodaVDFGc//FNcAJsrLRXL4OEjopwC7IyVk2IKewEpsUa8ly7hscolZh8BfHLAp+/3Dh70wSJilT8y3k2iuJ3HfBtXRFdQpWkQYuxeAAKsIKIwvXhGhpLc=
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=KRLxC3QnHBEmECcH///L/T3z605F03wUJi6xNo04b6OOu9IkPvfCRM7h8qiA2gWO63bHDTR9nNvbDcp79U9X9K1m5u8anDUp3UywAu3NLrSV7Mf1xaZ58rC5bB/ZaEhOWSEkKWQbji2cF/zm/j9yY0CFFnTadx0taO3betL6xwXIrWZCMrrrmJHc+mRr/IkLNfds+zWQKSeNOwDbsh4fAj2wJB4fMLGrgEbVFDr4ntHCHE0XuqM0wJP96FmURJlfDkyF7MtkNU201caLP6F6bN/SVQuIDSqBWRlTAdvvTFRUgzTkMz68qSMYKQ+KsIK31cBEbuYqHZz35Si9l2ruHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fi4lepyvIgrMq0Tphww7nydOu/MHL4NuBQXKbDmxgaw=;
 b=mSYkyGf477hE8sPGJzlPeafthZMwUr2CO2dzvlmJvmU0+vSpi/Ds7zmv5CgopkTkR3r3ui9EARTjbFw9md4Wjm9q7RfVs2dL1uGKg9agWF/poPPdZAHhCbBYnH++0F56Vx/819a46O2uoa1GHRKcjpB96AH3HOMXp+nrZXLseiKU9raKtFEGo0nXvRHCWPI80wc/5utnjx20tnUKGc3eLsKIit7BRQRpdOzjPSxOdZ9s7zvtwf/wDcWU7zDFExohQx5JdseGvKonoMRjUmHYk2pLmlLrdTaNP+AaG+JKTW1jTCqY80arYOmZKHMfvmooOxv/+yxg5ozphnpZzZO42A==
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=fi4lepyvIgrMq0Tphww7nydOu/MHL4NuBQXKbDmxgaw=;
 b=jaXglsB4eZ3toGGRcgJM9ZmfrsONcGuL7EYtfAY/9VnDWEO90+J4mgodaVDFGc//FNcAJsrLRXL4OEjopwC7IyVk2IKewEpsUa8ly7hscolZh8BfHLAp+/3Dh70wSJilT8y3k2iuJ3HfBtXRFdQpWkQYuxeAAKsIKIwvXhGhpLc=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
Thread-Topic: [PATCH] xen: always consider '/' as a division in assembly
Thread-Index: AQHcmp+J15vvFrxtUEGxE7lRiZXN1rV8EwEAgAADNACAAABcgA==
Date: Tue, 10 Feb 2026 15:57:17 +0000
Message-ID: <1115BE16-FE3E-4F9D-BB32-77064580D5E3@arm.com>
References: <20260210151110.26770-1-roger.pau@citrix.com>
 <FE2A96EE-5D99-4CD4-82AE-7538B94DBB0F@arm.com> <aYtVBuHVcfZE-L-a@Mac.lan>
In-Reply-To: <aYtVBuHVcfZE-L-a@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA4PR08MB6302:EE_|DB5PEPF00014B93:EE_|AM7PR08MB5479:EE_
X-MS-Office365-Filtering-Correlation-Id: b1f15304-e2e8-4138-d7aa-08de68bd3659
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?T1hqdlVUV1BES25Ld2c0WThhWE5TblhiUXZmQUVSWHBJNDBPMEZnL01ZcWw5?=
 =?utf-8?B?MFZwVkoxbDVuMG1pRkpDYXNVWU00L1VKRHAybnFRNEZBM1cxdGNvVTVhTUwy?=
 =?utf-8?B?NFNuOGQ4QXlmSENib3h6ajZzcTNHK0FSZ0UxWFZQY1VKQVVzVGlHMVNVejV1?=
 =?utf-8?B?SndOWWR4YXdEbjZjZ0gyWGlQczRueUJoWmNmTjJaRDdTYTJEamVpOGJnZ3lx?=
 =?utf-8?B?bk1URHdEZDlkbkFLMWNwTUNGYkFQUFFVTGdxVkdSQlNJaVMyM0tLS1g5Sm5o?=
 =?utf-8?B?Ym9wUTVMNVp2V003NFgyL1Bkbm9MZU5KSEN0Z0JhV2t2bDdtQnN3cVk4emRB?=
 =?utf-8?B?dVBWcU5BZlRCOFFydHJsQkxsWWhSSjkraGorbm41OElDNUNEYnh5QTRVYkxK?=
 =?utf-8?B?V25wUU44QnkyT2VWK2k5Yks0dGROc2FPNXY1V2Z3WCtJVUZQK1kwd1BFU0hp?=
 =?utf-8?B?alkzeXl1c1lNbmFFOURYY08zdXJ3QnFOcElVQjhwTWpxa1dML202cnZTZkZZ?=
 =?utf-8?B?MXJuVFNKVG90Z3VOSms0c1d1ZVJxSzV0MHI4b2lINFlDZ3N2YmpWNTZYT2E4?=
 =?utf-8?B?dXBSVlp0T05icjdDK29oL0NrM251aHlvY3BoQ3k0Q0N6UHNhakdUK0sybk5t?=
 =?utf-8?B?V3ZHUExXeU5FZjM5czY0Tnh5YTlYRUhmbEc1YTh1aEJqVkJDNG1WMHlSVHR0?=
 =?utf-8?B?dmxrdWJyck5rMVZrQXd3dmtyTERmUE9CS09LSExXTWJMeDNySVhYakp0YWFk?=
 =?utf-8?B?RFBwVURpdCs4UkczYy9hUDQ1WXMvaHBadjBBSkZuOGJDTVJJUzJOejlseTkv?=
 =?utf-8?B?Y0VZbDZ5a0JpNE5zYUVLL2RZR3VMV2FYdEx4MHJ1ZDlacTczdTdwMFNWaHJj?=
 =?utf-8?B?c2lQZHdIWkhNTDc0SjNVZ3I3Q3hDcTAweUlrUjJnK2wzLzRzMXhoR3RmeGJ5?=
 =?utf-8?B?OXpzZG1nMU13bVk1WVBScjJuUGRDcjlKcWdKUmlxNDdnYm5JNjVKRnd1OHRa?=
 =?utf-8?B?bWZnTGorTTVVRG9YbFJjemZtNi9OZkdXWDZYSjB2ZFo0eEx3Rm1FNWlDWDBl?=
 =?utf-8?B?aDJSdjNDU05sQkdtT2RDUHBlSE9BK0xmK2ZmaXFFMXNUZU03cHhzRzM1a292?=
 =?utf-8?B?aWhEbHZXZFVIQ1RrTXV3bVBjVlBUdml1NWt6QlBQMjNxQXkzM0dQSFVEQzAz?=
 =?utf-8?B?dWZYc21adUd5alp4cGdLS09QZUN5WEd1ZkgyTWhsOWJWUWFjMVNBSHVFcjZ6?=
 =?utf-8?B?cVpXZVhJUE1LQTl3M0RVOUhiYnc3RjNhc2xkbHN6MXVhdVIzNHFBOEtsNlNj?=
 =?utf-8?B?azhHWG9qMXlRQ0NITTlLV0hFV21BTi9VRTJLN2V3UFcxQ3dzdVNzMGlrOXNQ?=
 =?utf-8?B?UDhaVnFOMmJ2S0JHYzBsY3c0WU9BK1BudlE1NUduRTBCR00zV2FqWGx1aUpC?=
 =?utf-8?B?UkduUHlteTMwcVN1WUFQTWowNXR1K0NwZ1NMaXdpVWpORzVrU1lVTjFCdXNm?=
 =?utf-8?B?bzBKTmJGVDdjaFUycUpzanZzZ2szUEliZTIvZzBiakVrcTRNWFJlOFFUQ2pp?=
 =?utf-8?B?SkNPTmtiVUJuRGFlY0xUNUh2WC9TOFRvWkZtQStNcFFJUUVwUlZkd0YxU0JW?=
 =?utf-8?B?dlU0VXpza3YwL2ROVkQ0eUl1OFNWdHo0N3ZxQlNHNVpZUVkyWmphN1ZRZ1pZ?=
 =?utf-8?B?NHp3bnRLTWFTc1p4QjI0MGpmbkZTNStld0ppLzE1cW9EWDNvWXk3SU5pbEpw?=
 =?utf-8?B?R2FqM2pmNUVINE9SUnhMVXVDZ3lzTlVWbC9tWkdNMGhIR0t4ZnEyMEppMktL?=
 =?utf-8?B?aUo2ZkxvQlBLWTA4aVdDWks0a1RnWkhlcDBXd0V3bzFDMTdKOUQ1emtoTU4x?=
 =?utf-8?B?VmdaR2dvL3pkQ25YZldkM1hyRzEyQ1NxS0NDVVRXVmd0dTYrWTVLQkFIN2gz?=
 =?utf-8?B?ZFVwQnhzMjBPNE5SSHpuY1BUT2tWY054b1NXKzFtWjcwcVJSdEc4L0tiUlB0?=
 =?utf-8?B?elJUcW5TNW40aDNxb3pFOTdEajR0eFZiQWxOcjZYUXcyQ05uQmhxZ1V0MENT?=
 =?utf-8?B?RXFwbTloUHMxcjJ0ZU9MRm96VEM2elNKQzBxWHZZNnZqTnNhRUI4Q2w2aWpz?=
 =?utf-8?B?SWFrNGQ3STloUVQveGZCQ2ZFdUh0UHUvTFRCSGVZUTJObjF6M2FyVUdCNHQ4?=
 =?utf-8?Q?taH61OKNUW9lD8HOKlkvdm4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <401CEA7BB284FD4291B44107571DB7FB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6302
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B93.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	54a25e25-051e-4fb3-7f6d-08de68bd10c1
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|1800799024|376014|14060799003|82310400026|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?US9FdkNpdEROOGhLalJmMm80SVpRYlF6M0FlcE90bmVoTlhBOW9saUpXcjJS?=
 =?utf-8?B?YjNzZ0drU1BBWXExVU9xeFQ0SDAvY2FSWWFnR1pzLzc3YUdNRnNReGlwV0Nv?=
 =?utf-8?B?ZWRXUFpHbFgwWnlaRGdOWHNDWEYrMnNoVzM4LzJFSDJpaTdLZktwZXdYbmpC?=
 =?utf-8?B?dGNBVWJaRTVkUUV0TDBMQUR1OWkwV3NHbWpvVGxrVGR4Ri9BN1U0OWw1azNx?=
 =?utf-8?B?bHhiNXpPSEdJRklweHFWYU9Lc05qSWxRelhUR1ljc2Vrd3ZhMkU4c2xsM3Er?=
 =?utf-8?B?UjBIaVYrQmFJblZoZEZEZGhvOWlaV25hVi8yaUVOL1I5eHJyZ3dQc2JNT0hN?=
 =?utf-8?B?VDZ1NncvTUpMeUw4ZEJvTFpOSjhkTjhwRU5pb2NuTVFWWUNDZndiRGFwUHFB?=
 =?utf-8?B?MzV5QmxMY0pyL280a1NOOWlSTlhYN1YvMkMyanpXc1FnZjMyV0dLbVEzRDV0?=
 =?utf-8?B?dWVjdm1aWnFXZW9YckdvQjZOb2FCSllqVFRLbXhBT1BMVlp0Q3FDZVFocDNl?=
 =?utf-8?B?WCtCN2x3dWtKcVZaNGZDeHBERHFJSGswU1piNTNYOTFsY0l4MjMzTTV6Q0di?=
 =?utf-8?B?UnF2V3VnNGYvK21wa3grMjUvU2VuR1ZxNHlVc3pUNlVBbHo3TFJuWlBwWmsx?=
 =?utf-8?B?RTlyTW5oNUdROVVrbzhsOFVzSmFtdWIxa2xodHQwK1ZHZC9BSmRadi8zWkFX?=
 =?utf-8?B?b1VWcStyaDhLZ3dDVkRKa0FoWFNOVmFlS2MvRXNHaUdrdXRPM0hxWndlcEJi?=
 =?utf-8?B?UjFWaGQyMnRIMWhtQm4reDk2Qms5bVBzZjdsRUJFOTI1TmZvcVpseWtZeCtH?=
 =?utf-8?B?ZHdrcVR5VGlTYmZxYWhVMTVUSU5iQjUzR3ZSVWNzK2RoaHo4WDJTMVptemdu?=
 =?utf-8?B?bkkyMVRsYjhaWTI1SUJHZWM4SzJ2VFA0d2JhazVYclVIRUxXcjRrZjZPRDlV?=
 =?utf-8?B?a3RlVGZHenFzY2tTampXVEhpUWdhc0MxRkFkTmdqWnROWnRLdU1iUTN5UXhH?=
 =?utf-8?B?ZTB4MHhtRGJva3hObXdRKytJaENaTGFyMUR3Q3dyWUZZY2x4bVdHSUxUOXND?=
 =?utf-8?B?Mi9QaDB5WmVqNUVSTjlvOEltZndRRnFiNDRzTWU4dHplaDlYZ2ZRb1J6V2hQ?=
 =?utf-8?B?c21oY0VaWFRJbTZ0alR3bXQwVzJiVStWRHpWZVFjUkhnUTFWY3I3ay9aTUUw?=
 =?utf-8?B?NWQ1UjBBNVMvZVBuaVdSMW5HU1grUkhWYXFoMWRIRE1NckJneE5mNGVVYTV0?=
 =?utf-8?B?WVFuazAwOTluUFBmbzY1cEk4aXBhWlpOcVBmRTh2TVZobFd2dityU05Wcldr?=
 =?utf-8?B?VFBSM09TVVdBcVlYdjhoVEhlYjZtU2hVUG90V0dRaFJBR1dremtJTi94bmJZ?=
 =?utf-8?B?VEVuSjNOZVBNcjY5Y1EvM1RkMTY3RFBKaU9QdlFzMi84T0E1SHlzRXh3Nmh4?=
 =?utf-8?B?MUFwUEU0a2FLbjZBUjh2RGFrTlg2SmJhUTcwY0NObFg1MEoxOXM4WnZvN0xt?=
 =?utf-8?B?b1h1WXFQZGFhYTNhaUdqSW1ocjZhdWVIOHE2bGtMQWRDMFhsYzUwSEZhK2w0?=
 =?utf-8?B?UHpwN0p1QWIvcDEyMWxZVlM3NjgzSk00QlN5THp2c3hrclpGOVpoRzV1QWIy?=
 =?utf-8?B?YmxzbjU4ZG9YU3Q4aTA2c0h1SWxWN3Z5UWd5R3ljSVEvWm5nNVJmZmo4azRq?=
 =?utf-8?B?VUZUNldMNGVzUHZJK050UDFUMFlUMnQvZ1B1M0xDbFBYUjlMWk5HdGdVL3hM?=
 =?utf-8?B?ek5CVE5ORUVselZRSXZRL1hQWnB1eEtyYUlaT3duUTJNWHB0UTdEemIyL3BP?=
 =?utf-8?B?d2pBVzFqa0x1YnN4SFp4clBCdEEvUjRJM0hXUUV3VGdOYUtEclFMb3IvNDhI?=
 =?utf-8?B?dnh6ZnpDUWRiQmNOU2QrbTFrMzB0TEUvUjFmczFyUVd2WkRkc3NlZGdzQ3BC?=
 =?utf-8?B?ZlErSHdyWEZPQThDTStrU1dnKy83RkljalBieHdvWEwzMmZwejhvM3VhYnlW?=
 =?utf-8?B?dTljbEx0K0NKQUtNRExzT1RaVjd1VGc2VHJyN1RCa21YQmhRSzArUUIvT3NU?=
 =?utf-8?B?YW1Pck96bmFDeUdmMjBlYkYxL0kxT2xJQ0pYTlhVRFJuRWRyRElZaHVmODJr?=
 =?utf-8?B?TG5ZRnR0N0FhTTMrMThFNmo0YVR1S2hBd0FjUFVaTnUxSUltSlZsTFNnL1lw?=
 =?utf-8?B?UGR1TiszYU40NktGWTBSSURXdktFR3BNeEVGdDdER2lPMGpKMHl3V0RITFJN?=
 =?utf-8?B?QjFmcWkwVjVBV0tqQjRNRHQrWVRBPT0=?=
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)(1800799024)(376014)(14060799003)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	crWePFs9r2BTgkeeYpwPbCXD3nD6LOyQPOC7B1MiXRQZF4SSnx4Nt1ECq2z9iY1LNKEUdzZ32YphDSSKFj70J9/KMORadp8UznFTJKz2jzu8jVKCFQGRfQyeHj9Vbz3NnKKYPqpssgAcyjcXIPpt9XPlvgTH4PbmFWFRT2Ub+AiAdDjfl5/TABlaUqysRCgvhxBMGMGnTa/ayosa/SWQM0q4PPt1uvLF0TOtNq2T53WQeo4rh/zT6zgxNVuKsQ9ryc1oGZVS6oEK8ODUE+J4qjeRQZE1MerWIemAEUB/X04RoWl+vID/T+MHwxQknY2fP09OBEKVpue90zC8Ob88S8RXFEmekwBCmgNChDl3qsmgJCTRJUY/2jVA+nudfE6aZI5R9Y79a4mgr3QFgkRZw2VSESAVDbUMvgJ6qP7AL8ftk6PrjUpg6akzeWmrm0cm
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 15:58:20.2172
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b1f15304-e2e8-4138-d7aa-08de68bd3659
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:
	DB5PEPF00014B93.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5479

SGkgUm9nZXINCg0KPiBPbiAxMCBGZWIgMjAyNiwgYXQgMTY6NTUsIFJvZ2VyIFBhdSBNb25uw6kg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIFR1ZSwgRmViIDEwLCAyMDI2
IGF0IDAzOjQ0OjMzUE0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+PiBIaSBSb2dl
ciwNCj4+IA0KPj4+IE9uIDEwIEZlYiAyMDI2LCBhdCAxNjoxMSwgUm9nZXIgUGF1IE1vbm5lIDxy
b2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gR05VIGFzc2VtYmxlciB3aWxs
IGNvbnNpZGVyICcvJyBhcyB0aGUgc3RhcnQgb2YgY29tbWVudCBtYXJrZXIgb24gc29tZQ0KPj4+
IHBsYXRmb3Jtcy4gIFRoaXMgaXMgaW5jb3JyZWN0IHdpdGggWGVuJ3MgdXNhZ2UsIHdoaWNoIGRv
ZXMgdXNlICcvJyBpbg0KPj4+IGFzc2VtYmx5IGZpbGVzIGFzIGEgbWF0aGVtYXRpY2FsIG9wZXJh
dG9yLg0KPj4+IA0KPj4+IFRoZSBiZWhhdmlvciBvZiB0aGUgYXNzZW1ibGVyIGNhbiBiZSBhbHRl
cmVkIGJ5IHBhc3NpbmcgdGhlIC0tZGl2aWRlDQo+Pj4gb3B0aW9uOyB1bmNvbmRpdGlvbmFsbHkg
cGFzcyB0aGlzIG9wdGlvbiB3aGVuIGF2YWlsYWJsZSB0byBmb3JjZSB0aGUNCj4+PiBleHBlY3Rl
ZCBiZWhhdmlvci4NCj4+IA0KPj4gVGhpcyBpcyBzb2x2aW5nIHRoZSBpc3N1ZSBhbmQgSSBjYW4g
YnVpbGQgZm9yIGFybSB3aXRoIHdoYXQgYW5kIGZ1cnRoZXINCj4+IGZvciB4ODYgb24gbWFjIG9z
IGJ1dCBpdCBmYWlscyBvbiBjaGVjay1lbmRici5zaDoNCj4+IA0KPj4gL2Jpbi9zaCAuLi90b29s
cy9jaGVjay1lbmRici5zaCB4ZW4tc3ltcw0KPj4gc3RhdDogaWxsZWdhbCBvcHRpb24gLS0gYw0K
PiANCj4gWWVhaCwgSSBrbm93LiAgSSd2ZSBmaXhlZCB0aGUgc3RhdCBpc3N1ZSwgYnV0IHRoZXJl
J3MgYSBmdXJ0aGVyIG9uZQ0KPiBhYm91dCBhbiBpbGxlZ2FsIGJpdCBzZXF1ZW5jZSBpbiBncmVw
LiAgSSdtIGxvb2tpbmcgaW50byB0aGF0Lg0KDQpMQ19BTEw9QyBncmVwIGlzIGZpeGluZyB0aGF0
IG9uZSBvbiBteSBzaWRlDQoNCndpdGggdGhhdCBhbmQgc3RhdCAtYyByZXBsYWNlZCB3aXRoIHdj
IC1jIDwgeHggSSBjYW4gZnVsbHkgY29tcGlsZSB4ODYgb24gTWFjIG9zLg0KDQpDaGVlcnMNCkJl
cnRyYW5kDQoNCj4gDQo+IFRoYW5rcywgUm9nZXIuDQoNCg0K


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:00:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:00:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226578.1533089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpq9s-00085O-PG; Tue, 10 Feb 2026 16:00:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226578.1533089; Tue, 10 Feb 2026 16:00: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 1vpq9s-00085H-Lq; Tue, 10 Feb 2026 16:00:12 +0000
Received: by outflank-mailman (input) for mailman id 1226578;
 Tue, 10 Feb 2026 16:00: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=DECD=AO=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vpq9r-000859-KI
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:00:11 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92bc6e5d-0699-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 17:00:09 +0100 (CET)
Received: from PH8PR20CA0020.namprd20.prod.outlook.com (2603:10b6:510:23c::21)
 by MW4PR12MB8610.namprd12.prod.outlook.com (2603:10b6:303:1ef::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Tue, 10 Feb
 2026 16:00:03 +0000
Received: from CY4PEPF0000E9D6.namprd05.prod.outlook.com
 (2603:10b6:510:23c:cafe::2e) by PH8PR20CA0020.outlook.office365.com
 (2603:10b6:510:23c::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 16:00:00 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D6.mail.protection.outlook.com (10.167.241.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 16:00:01 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 10:00:00 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 10:00:00 -0600
Received: from [172.26.13.86] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 10 Feb 2026 09:59:59 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 92bc6e5d-0699-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lWG9mH2IsRfa058gI5k+1qn2t8ZUPxGyisKt2lr+Ays4BYP1PwOJEs7/oJWwGiAewfkBtmnZeMwkwJY0SPTbmNwz17NkYPJpy6R6+teX+OW370jeuVClE7Gay2ye1U5ILqIvoeJwll/ICI2omkXIYEp6IfOcvJrP/6YErbn0yXNMf8AVN9jGNIrkjuZXHNa5AylDrdNcE1DJTGP5NTMSBNcfEExH2wzDpv79PB98w4bSGGYGg7ic2CnuMKQxXnZm/OwviA2blFxjs7MLu3ZP8DM8hNHvUh+aT6sUt5mkoEO6obi6Jq3sZGWoBgqMLQT+zPlrWIptMZ3CA26T4GYyZw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=56GrrR10PcykWbVX708bvTGCH0yk3C6/IRZ+B6YShKA=;
 b=siXuZcYAtrflCzR5lhu4LfVl/tmYZfx0ZC1Nqjc5bHlxU0S0hAY3ZaXqbh+sFhIyDy20R/05jEd9Wx8i34z8L5IN8vh4WQKpa2u1D+QWzy7YGgp4gqt/rNs8n7PLrHuixTQ+8yKZXVsjZlDwUrIOPZLv0k/fwB568bSVuKQcmBwdJR1krCAgSP2RrMoc+Z5nb7kbcX1WAPBIXZBz1wCq+OVvfkWi97pW8LRDLen8VA28f/NvTRVZqggFxhtLD/00SBIK2nUsJoLZ3QHRqZv0VIiEKcG/3Cg7Sf000x3v7wf+eCRgl20ffqVcT1gHaTQC5nGhcjSxWdTg8l7r0fYHSA==
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=56GrrR10PcykWbVX708bvTGCH0yk3C6/IRZ+B6YShKA=;
 b=fHLlVQnzPfhlfDASvVGUwva9QOsgvky0aB6qCJIARfDBJapP3tSfAotzfIXXNlN4heGUqnxVT6jFdKHr9qNWU6f0UrvbYv2yj+75ImQe1eQg6UurwXR6PnGYb7dk+1kQA3K4bZZwEhJtXkFCe3Vs2zfHU7AWYaEcdo9lB+cHAjk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <1a25aad8-a4cc-45f2-bfa2-f96d7caccfc1@amd.com>
Date: Tue, 10 Feb 2026 10:59:58 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/5] x86/PCI: avoid re-evaluation of extended config
 space accessibility
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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <ff4b58f6-cf9d-48c5-9440-3288e20a51d7@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <ff4b58f6-cf9d-48c5-9440-3288e20a51d7@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D6:EE_|MW4PR12MB8610:EE_
X-MS-Office365-Filtering-Correlation-Id: b3f68536-9156-4d77-cbf1-08de68bd729e
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?Snp5SmJMbmtwN0ZzUjd6bFVSMWprbWlCcmxXUW00bUc2amhsa01DdDFPOVZl?=
 =?utf-8?B?SStSaGhrV2pFUE9MWDFETVl4Y3Y2MDJ2YTFobVJ0QTlRa01jRmpnMDFRWnBs?=
 =?utf-8?B?SW5CYzFYVmY0VGhydFErcnlpVW8zcm9wZlNicmNEb0lwUk9hbnFzOVpoRG9o?=
 =?utf-8?B?YmdxS2ZLTS9lQ09xdjl3NUtVK2pyZ2hWdXdsTEc5OUsxTGtzK09Kbm9hL2NF?=
 =?utf-8?B?eEhhallOVEI2VDBhUElzREhrNlBISkNYMDI2cHZBc2FaVlo3cUo0VmNGU2Jo?=
 =?utf-8?B?MitZa2Q0Ymt1MGRGa2M1TGw4T0I4K0hOOFZ2dm1hTkhjYUtSRGQ4MkJYcjdt?=
 =?utf-8?B?RVc3ZWZuRnlQd2dKZjRnTGoveGdFeWdvQkhHa0pwWVc0WnU3MFdXNkRFeWxR?=
 =?utf-8?B?YVNDQno4OXQvTkdWWnNTeUJaa1NDZ1pKdVIwaURKTWs4RjZ2TGtpWmFYUVhH?=
 =?utf-8?B?SnNqT08xVnRlcDJyL3M1ZVdNTmxEdVR0bGdvdVQ3K3ZlQ1pNUzgwQ3dBYkRm?=
 =?utf-8?B?V3VNL0VFOVl3SkJrUTduMGZJU1JOcEhvYWdPcW51cXdBVG1ZeGJVcmVqZmpZ?=
 =?utf-8?B?RXgzT2puVW80ckF2VHhqWjI0THI2aWpOUkVvQUhuZmphM0tyN1ZaQm5NKzRY?=
 =?utf-8?B?S0k0emVyYWVvQ2xOdTRYeU5Ic3hncjMxSTFwUVF2bGlLU3NOZjRBZzU5MHJp?=
 =?utf-8?B?ODZuL3BYQTlIeUpocmY5QkYrYk5ydUdyVlA0aEcxVnB3clgzaDlqNkFuZnZ0?=
 =?utf-8?B?WDlrRHVESUcxSWwzK3dqRUUzemxuRHJqSGVTdkcvODRWQ3BLb1pXdVJOczdO?=
 =?utf-8?B?Q0Jhempsdi8waHhzYi9oaThlZXJ3aXQ5WExKd0xMcnN5Nm44cVljem9KYkd0?=
 =?utf-8?B?S1ZhSmhWa2s3VmdvODFzU2tGSGpuVDhaNmJTS2NDSGlPcW5mM1FpMTFZZ3RE?=
 =?utf-8?B?by9LK1NDbkFnR0p4akhUUDhCRGcwcU9ZWWtxOXgrWFhMSnZrb2JUcStaeTE0?=
 =?utf-8?B?aGg5RWEwSWsydzd6aGlwQkh1cEdwV04xeDNwRUxJamR0QkNKQit3VEhLVUdh?=
 =?utf-8?B?R3dwS3VrRGpjb0ZjRi94TDE2ZmFncmxzc1JHSDFtT08rQlBBUEJmdS9zdlZI?=
 =?utf-8?B?MEdtWU5SVEJwTTFqbkJSVzZaUzJ3dzdYQXJNL3VYQ2FBbTRTelBKMytlbTBp?=
 =?utf-8?B?Um1hYSswdHZvQ2cxUkJjOFF2aGRnVlNNdEo2N3RjV2p6b2Z6K0FLODhnTEhz?=
 =?utf-8?B?bVB1ZHFZRjdYMUlOcW9mUzNHSTkyRkJtN00yWGtXbHh4di9ibHc3MDA0K0N4?=
 =?utf-8?B?R0RuUVpRdzluTlp4eHJYci9yOFhBdzdWb01Bd2Uzbno4TUlwZDJsTDgvV0FW?=
 =?utf-8?B?YVZHc2ZNcnJvRGs0aUNuTkUxK3YzcDBNdmdXWk90MXdqbUt2M3dHYW9xa2dR?=
 =?utf-8?B?enFicnFuY2tXZXk0eVF0TWw2alZjaGQzWXFqb1NibHlrZ0VDNi93QjV0a2lr?=
 =?utf-8?B?Z05sVlpBM3Ftb2dDM0Q3dlQreUxaNUtmazQrSVhMckVYbWVDaGZEZ2tZK2hw?=
 =?utf-8?B?SnN4UUdiOTBPUWY5bVVPOEV4T3kyc3NGbW8vdW53SnB3NkNHdlFSWHVzVldY?=
 =?utf-8?B?c1RsUyttdVZoUy8xSnZjaHRXbnNLMTBYd1k3V3JOQ3Bpck1vMDdrVlNmQlU3?=
 =?utf-8?B?bUdYZi96L0V2MGYrSDVVR1J4NUNjdUVxSDJoRWZVbWt3RVdINXpvUFJVZENs?=
 =?utf-8?B?ZjZFQVRObURxNGNTQWVmaUlGV05RTVRwQ1pFY1AxTndRR0RMSzBCT1JPUndz?=
 =?utf-8?B?NHZmVlNpK1RyU25LT3VsT3hOSXRFVXpRU2JJNnlXKzhrMjNWUk9EQm1GVWNJ?=
 =?utf-8?B?bWIyRnFtUXNGTFozUHY3b1BmNDRNaU5kSUZhLzE5a0h2WGMyazN4SGJzczVF?=
 =?utf-8?B?Q2dJMjk4YkdSRW9EZVVLVEFCSnYwSUZGMExQd1dZS256UXpkeVF4b1ZXQlBG?=
 =?utf-8?B?cFc1Y1VycjFwaWF1N29qOWZWWS9TVTQvWmtuNm81RnpzNndBei9yeVcyZUw2?=
 =?utf-8?B?endwQnNzWHYxK0dUMU1IWVc4QnBWMmo1MTlsL3I3aDdMMmFtcG5WZ1lSRENx?=
 =?utf-8?B?NEpGSlNxMnVtWlhFU28vM2o1VFZTMWFPM3Z1L3JVUGFKYS81OU5uQ1hOMXA4?=
 =?utf-8?B?UHFlV05nVUJLYXBXRkNXc0Z1enUzWWowV2NzQm5ta0JuSlJEMnQxSWlDQy80?=
 =?utf-8?B?cUxMZndOQmJrTGlLUjdrYkpvVER3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/pSxsImWprmM0lx58VfjAVggJW2ULKugY8W/2W4KAg3Vq8EqTWojs8AjQjCrNYiaoWLMvEYX8fVJxMubcZmZyMU22dNZZtHkJ7yMcjj2qlfdJChyy19AWqGN2c0uonbt02I3EztzY9WvEerwuMwawufHoJA/VwBRJgM47g9VEBun5bIB9hrAFgptYOtL86qPkdI7Aw4gKsIGS7DmjXgUaOntL+hX+6k8D85n35rQg3kehNigr5Shnr+7aZU/FdqQrC5Bcqo73ZuiDktoZnCCK1R+luWdM7iSSHrDOxpJd60TzhaM0kYEk0svpZ8e8P0W41UZS/91nkrsq1si2dGpruw9gjUL2GQXpz9xA477uTH2ond2u7slfjgNjJNTLSFqywPTmQpT7Mo0bkR599NrhdpfnfDWjVsxurL8WTY/iX68CiKW/KyHliEy7yZ4157T
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 16:00:01.3430
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b3f68536-9156-4d77-cbf1-08de68bd729e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D6.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB8610

On 2/10/26 05:52, Jan Beulich wrote:
> When, during boot, we have already correctly determined availability of
> the MMCFG access method for a given bus range, there's then no need to
> invoke pci_check_extcfg() again for every of the devices. This in
> particular avoids ->ext_cfg to transiently indicate the wrong state.
> 
> Switch to using Xen style on lines being touched and immediately adjacent
> ones.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:06:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:06:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226594.1533100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqFT-0000QS-Hy; Tue, 10 Feb 2026 16:05:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226594.1533100; Tue, 10 Feb 2026 16:05:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqFT-0000QL-EE; Tue, 10 Feb 2026 16:05:59 +0000
Received: by outflank-mailman (input) for mailman id 1226594;
 Tue, 10 Feb 2026 16:05: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpqFR-0000Q7-Eo
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:05:57 +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 5d34cfee-069a-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 17:05:48 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-43626796202so841214f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:05:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-436296b20fasm34510723f8f.6.2026.02.10.08.05.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 08:05:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d34cfee-069a-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770739548; x=1771344348; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kOda+iZgXgWFWM8jr1bazux9sl4/PGydZmej3NFNQgs=;
        b=IxLzNS3YmLQoIJCdMHvV930ucrssWrQS0aru7PJzbbU5xTx7ikxQSVOkXKs2Xl9nxw
         tz9ek5ogY3wgJETKRKhkou84A4QLSdzahQQP+1EOXc1FbiF7St3MfCckUqLQvw81pCqM
         260aqCETTa1CYqaC7rPadrStxQe53gh6H/Nv65VcV0svon1+SwbIkxqOSwuTTBjpx6pV
         rFRafDkQ/1/AQ3Hh6PLs3F89j7+lrxlDRxXqTXaq4mNDSgMwYbW6hzNgwvL9yRn2Ot7m
         ET1hFnoYk4L3uS/dGOyjtYgej1EdkIUjFQc8b6+ahwGOK7pWCSF3KRwV45ku3buWEEUG
         UnZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770739548; x=1771344348;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kOda+iZgXgWFWM8jr1bazux9sl4/PGydZmej3NFNQgs=;
        b=aUnRSOgBBm2Gi0o2Rz5XUubeBAu2euHoY1FCEub9ees88vX/8ZExFAUsrO3+1qhHt+
         AQKbT2DHYRCHVpihGtZ8jRvKzb6i4lWEMSn+sCeOBg+skR9bLL5TANMJtgY+BMNG1pQy
         NqBTbu/wyODz+vkM44xIWqRLEUIHmG34XYiI3fd5s1/pJ9aRA1Z9gzxWwlyLmTE4MOuC
         Vmqpo6Mp7Llg+A3fVXkdQd2n0OUWp+9SkL1HwQSsFziKYUHc/HOvbFweHjfgTZnq+Jty
         KsRa6p9txMIa4MddwSRc6fL5knyD1t5CJvy0WKWyq9P5m0VTP9eIt0e1uEcnmIqMFN0n
         AR6Q==
X-Forwarded-Encrypted: i=1; AJvYcCVIc0BWYMQ2NqYz50ESU6mDBID4z1h2CVs0aZN9Z/buOfh9/pOufk8ehT1Pd6dk/yMCapr/hl+BJpE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDLer5BcRro7+gOjg0U6AO0CTLjyxVdL/KrSSor4GLvv7xZoJ3
	c68BGC6/nm3b7lOcmE8143qEurSGE4POEAN9Brp/S4y/pfI8oPrhWWxiE64T/Ywrbw==
X-Gm-Gg: AZuq6aJ186UE4qj9g4yHtfF181ffAxe2TwQeFZonvAulxSSlh4OIiC5Xp5fKa5ZfnHI
	VgcGkKKRDDBO2xcmnS4CyAvMmyewofgkW8BZavqFAHMzZ3YeXJxFiE8wdz1fqSbgvNVVo/nos1p
	OjGLVVqST7qAtqapBceB7UGpFqC8NO6ATYuUHOw4v6eEHE+p3BUiFQiIanzGGA1q0lU2TDAn2tX
	yWH9+6XJhQnI+OenikTGdalfLsmSIie9jfshU3tRE/fNj1T9T8y5/5K7AIePlWsiUBnIB9jVKEX
	7oJ9S274duvgCwt9hAgA6Z62vVICuKCNujQ78VA4fe/yPuz6kP08cvEAdXXsKQze+ThoS3raPg3
	bBuA//66uhf/lEXZWOxpQvzQ2pZSODza8JUPWPh2QEhfFFKBy5wd0Y5/8Xa/iE/lGJiLYSGfWmi
	okS5MfXjwvq1JRYnlU2TMqXvwbHr9qPgVFs/TQ8BfbBmynEXEpTbxsHmQG4IBXBj8mQJL1lbKKB
	o0Pmzdzu7HjMVE=
X-Received: by 2002:a05:6000:2386:b0:433:2f55:7cab with SMTP id ffacd0b85a97d-4362934bff8mr23271162f8f.37.1770739547775;
        Tue, 10 Feb 2026 08:05:47 -0800 (PST)
Message-ID: <de176675-0676-4e96-adb3-1b07aae6f5f8@suse.com>
Date: Tue, 10 Feb 2026 17:05:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 4/5] xen/console: handle multiple domains using
 console_io hypercalls
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: grygorii_strashko@epam.com, anthony.perard@vates.tech,
 michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com,
 jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com,
 sstabellini@kernel.org, xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-4-stefano.stabellini@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: <20260204233712.3396752-4-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 05.02.2026 00:37, Stefano Stabellini wrote:
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -541,6 +541,12 @@ void console_put_domain(struct domain *d)
>          rcu_unlock_domain(d);
>  }
>  
> +static bool is_focus_domain(const struct domain *d)
> +{
> +    ASSERT(rspin_is_locked(&console_lock));
> +    return d != NULL && d->domain_id == console_rx - 1;
> +}

Just as a remark: You using only nrspin_*() further down and in patch 3,
using rspin_is_locked() here is slightly irritating. It looks to be
technically correct, but maybe a comment is warranted nevertheless?

> @@ -559,6 +565,7 @@ static void console_switch_input(void)
>          {
>              nrspin_lock_irqsave(&console_lock, flags);
>              ACCESS_ONCE(console_rx) = 0;
> +            serial_rx_cons = serial_rx_prod;

I think you want to have the same comment here as you put ...

> @@ -581,6 +588,8 @@ static void console_switch_input(void)
>  
>              nrspin_lock_irqsave(&console_lock, flags);
>              ACCESS_ONCE(console_rx) = next_rx;
> +            /* Don't let the next dom read the previous dom's unread data. */
> +            serial_rx_cons = serial_rx_prod;

... here.

> @@ -610,7 +619,7 @@ static void __serial_rx(char c)
>          unsigned long flags;
>  
>          /*
> -         * Deliver input to the hardware domain buffer, unless it is
> +         * Deliver input to the focus domain buffer, unless it is
>           * already full.
>           */
>          nrspin_lock_irqsave(&console_lock, flags);

The conditional ahead of this comment isn't changed here yet, so changing the
comment is premature. (I'm pretty sure I said so before.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:09:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:09:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226603.1533108 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqIn-0001Is-VA; Tue, 10 Feb 2026 16:09:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226603.1533108; Tue, 10 Feb 2026 16: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 1vpqIn-0001Il-Rw; Tue, 10 Feb 2026 16:09:25 +0000
Received: by outflank-mailman (input) for mailman id 1226603;
 Tue, 10 Feb 2026 16:09: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=gjf6=AO=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vpqIm-0001If-Bp
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:09:24 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dccf4f09-069a-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 17:09:23 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS2PR03MB8444.namprd03.prod.outlook.com (2603:10b6:8:331::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.14; Tue, 10 Feb
 2026 16:09:18 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 16: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: dccf4f09-069a-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TLrlqcmReKoP/ApAOW5Bhctqh7RuGXZ7V5HxFMxNkS2pnqSLJTyBxPNQJzA3qEO4e/8rDaTC/T/QVx0NJG99WzREMIoW/jAAZtSqUIKS+dKxF3mZJtjqc4FNwJVrMjaQqv4tOcrwY4l8eLvkTRENUHd/S6+8+94VcNE/5qqnTJL9GTZdoU4Bw2xHR4XUVG25NaAEB/HiRDgq97M7DPtrCdvhNHuSoqqGWHN9UMpFS19pKnbLww02gtZX9zPO88U1Ragf04D1KQsGhFdYlhnIBRdF35KMzGQFSD5hUkZ5e3Tgqh0Iia7u3rtAc47nTkRPYS4tKCTuxdAnEkTrL5Q3aQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wK31RsiUalQL7N9i71GiWC+3ugjqa5KY0q4sc7C5D7k=;
 b=T245PhiwpdfI9hU16jvXusxSsOPqOidbCk2CUJznyUdCajr7JPA5zTEv7Tt468T8VQIuAawLGwU8mMIqgWQ8uFp7XUnn4mk41rnNQ3as084OtIOMBjV3kywiPdEAehRJtCK6FkiGIjYcukKxeHI0VVga4zhjSLYklWgumTXGW4h70ZbT3J4CQa/izzY+gyo2vfkeXtMjGIeo4ocTPMlKGjNyltUZdrC7FWsbc62r/ggXB0YAGapfUCuNmexqa0nNTmN3+7FV1tkaEnzj6fB033DfQ7CoWy1GkzfRBYBTjh3xSo6GeHxPP2fHMPFK+w9gQHWaBcxmd6E66lB3EnxNpA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wK31RsiUalQL7N9i71GiWC+3ugjqa5KY0q4sc7C5D7k=;
 b=hygTGCfdmy0gIH1NavQMTlIjeuiwvOBlGys8BUkHenr6nyddG6uHZImDGJtt+EuBblbPx6doDfWZvSXbL/j98GyRJd41EVJU1FueB3DbD1cHGEPP4vHV9OJr5l688ijv7WG2OTHAJDW5tfnkYs+jNr3qv7f2iPPumuC4axLGweg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 10 Feb 2026 17:09:14 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Bertrand Marquis <Bertrand.Marquis@arm.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>
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
Message-ID: <aYtYKlcoVAFvn8jh@Mac.lan>
References: <20260210151110.26770-1-roger.pau@citrix.com>
 <FE2A96EE-5D99-4CD4-82AE-7538B94DBB0F@arm.com>
 <aYtVBuHVcfZE-L-a@Mac.lan>
 <1115BE16-FE3E-4F9D-BB32-77064580D5E3@arm.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1115BE16-FE3E-4F9D-BB32-77064580D5E3@arm.com>
X-ClientProxiedBy: MR1P264CA0147.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:54::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS2PR03MB8444:EE_
X-MS-Office365-Filtering-Correlation-Id: 9dff0c65-0201-483c-bdf7-08de68bebe94
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?ekFmNWtKMldVanRhbFpuSnpFdTd3TGZnbVRFSEUrV2xuMk9QeFQ3eFVVZ2Zu?=
 =?utf-8?B?bU94ZGRaZG1ZRjlWZHNuancwWk5rcUF4RW03QzA0WjV5WUlTY05zOFlBNEJD?=
 =?utf-8?B?YzQxaHZxTGtHcnNRRFlCVm9mdmo3VEVCV1JVbFNNZzBiZms3eU5RSVF5NVBB?=
 =?utf-8?B?aW5Db2NnQWN0TXB0NmgvQUFDemRveVNLWm9ybVJFaVhyU1dFVENIWGR0M0RR?=
 =?utf-8?B?OENUWjRzRmQwNVRpbkdHYXRib0srWk53YlJIQzBwVitBL0xoQUxFUkt3VU5F?=
 =?utf-8?B?a3NxdHRtMWJLMXF3TDNmZU1WN0lOUFIxOWZXQWtCeDZlVTNFblk5dmcxL1dF?=
 =?utf-8?B?eWlvd3RyRkx2dE1IVVlObUhJTlE3REtseUViOEs0L0NRMEhvUmhTbkYvNDRC?=
 =?utf-8?B?NHdjSVlzRTVTNkpibWR2VTNaMUdvaGJPeDJoN0JVSHRVS0hnU2JIeno2SDZ5?=
 =?utf-8?B?bGJpUDNha0VSUnlWaFhaeDB3d0lHRTlUM3E2b3ZVbU5SQitDdFJiTmYrcDNt?=
 =?utf-8?B?bW4yOGFPMWJDanJVelRZOHVISW04KytrdzFwQmcvZUdOeXZacEJGdG9VaXpV?=
 =?utf-8?B?UXdHTmNwZ1NEVmNjdkZEMHZ3aVp0Rk9GTXRDdWtVWm9ralhPYzgxOXVmdU9l?=
 =?utf-8?B?T3hnRjVWNzlmQ2JUeW1CMzFFUmxyTzAxakIrWGVIRFVIOFMyZ09DWWlnc3pP?=
 =?utf-8?B?Y0pCSXRCelBqWDNERnFVQkJjeGZTWS8rL3NCak9oWjVxQlBUN3lpQk96dkpx?=
 =?utf-8?B?OXY0VUkrMTlBd0txdm9KMlpWQWYzZHh1QzZCdUlRelRxajZYczJuNis5YkhJ?=
 =?utf-8?B?S25rSGx2a3VwOWxrTTBqQkE2emV5Vzdhc1REVG1OVDB5dGtpcGRUZnpTQkdF?=
 =?utf-8?B?ZHpVb25QWWcrSWJmSCtBTVJ3VklWZkZrZFN5MjM2SGJ2cy8zZHhVV2V2M0JM?=
 =?utf-8?B?NjFvcUZiSS9qUEVlSHMwRHdqTGQ2dndGM1dvSHFzczF2ZVVHbXV1amxjRUVQ?=
 =?utf-8?B?OFYrOWg4ODVYS1FtdnVRdHJxVEVNK3RrZStuYWxvZFR1eC80SVdjUzR4T1I3?=
 =?utf-8?B?UlRzTzdNVUsvcjQwaVdHeC80YmhLeEZ0UTVTUXlSdi8wak50YktjYzBnQWRY?=
 =?utf-8?B?SGVBSmlEM0VOK0c2S3B5UHdLZndrcUVpalFXTnd4L1BGd3R1TGFVeTNhQ0xZ?=
 =?utf-8?B?ZG1XSnVUd3h3aUdIdnZOMGlwOVRWWHA2amxydzhtWjRHcURsTnRoZHNWRHRr?=
 =?utf-8?B?TVBmRmlFemdMN3M5RFNZMTBCVFRPZTA0RmQzU1p1eU94Qzd3c2QwTEltbDlG?=
 =?utf-8?B?RWgwcUpxdFUxVzR3SGhzTTJSOEFweHBhQVI3dEtFTnJBenFWcE1qUXFaeGs3?=
 =?utf-8?B?YnZxREpVdDBDVGNsZzRVUm5GNUZDZkovKzBSMFI4WmJTc2IvRWk4R3gyN3Bs?=
 =?utf-8?B?Q09CZWlnZUNRekhsdmRNajMyMStacEhyWktFb2g4N21mVGc0VHduKytITVdF?=
 =?utf-8?B?b3pXdk00TEtlcXRheTd6K3JOMUluUm1UVFFxdWtLakRzeEU1ZHpKTEVKWTli?=
 =?utf-8?B?dXhUc0xoV0hpQk9sc0lHRG5peU1jdUh1N2ZMSGtmNE1Fa2d3VUhZZ2FEZlRT?=
 =?utf-8?B?My9pZVRCWWxoVzlJNjJqaTdPb0dmeXY1Mlk1UE4vYUY2SkFtYjhYdk9wUUlX?=
 =?utf-8?B?MEdxMGRlbldBbnloSVBZOGlyT3U2ZVBIQ1BNTmlTSUM0MkZrT3ZLOHVSN2M4?=
 =?utf-8?B?WkdyTXpnU0FaSzdvTDZuMERETUtKQ1RSQ3FOU01mRXlSYk9zQ21aQnYxd1Vl?=
 =?utf-8?B?OWYxTFBhTVE3empJbW9XRGJjSE5Zd2NaNUZSVFpheEJGMUxJa21sd0pZUHkz?=
 =?utf-8?B?cjFyeEJoZndqUk5WaUU3QTNXcVBnd1hMcThxU0h6N2FoS0ZRd0RMTWV6OGR3?=
 =?utf-8?B?YkZUenhqc2RNb280TnhPMytvWG9MbzVxL3NCMjRnUm5CMlQrQUtjUG5zbzQ3?=
 =?utf-8?B?YkFKWnIxUmZ0ZnMvVWgyTDhaN3N3eHI1QkZNcUlpc0NCNFdGZVVLdmRwVkdt?=
 =?utf-8?B?VU5NY2wvMUpuVFd4NHJNOXpEL1UxVjhoRmRDbUR5QWMzQlNsWUFLeEdaR0Yr?=
 =?utf-8?Q?C9UY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?c2dmSHV3SWh0QjdqWGl0Smg4TmhseTJkZEpLVkxaMXd5cWdHUm0vdzdxRUEy?=
 =?utf-8?B?YXVwM2RkWURvdElwYnVKT243bmp3OE1aQU9kOVhsY1FqSUJWMUtmbDZad2sx?=
 =?utf-8?B?dTR4eGVmYWJCM242bW5NVWVxRHpnOVpOOXVZYVh4ZlUxUTdjSmlnNkFoTTR5?=
 =?utf-8?B?aEVUTmJLYTNlN0xuR2I4QVN0T3crZUR5OVBoRG92MVFUd21LdFU5dGViZlJh?=
 =?utf-8?B?YTh2emc0UE1TMU90b0t6YXpESm9PMjk3NFRjWjVhUlFQMExKdGNieVE5Vm53?=
 =?utf-8?B?VXZhSk1XOFgzRHZSWnVQUHlNUE5lODFvSHU3NlBlaDRublVIME9xbUNFbTZa?=
 =?utf-8?B?ZXZqQ3lESDJUdlFPa2NnTzFPSUZRWnN1UjZESXptbVJtaVJEVzRWQWN5anp4?=
 =?utf-8?B?dFVZNEVNcHluYWI3SFJsR0dVai9VbjBCRVVaSnc2TFNtNVkwLzltTGh0YWto?=
 =?utf-8?B?YUxBaWU0M1dsQkJGVFI2WlZ3UngwY3M5eTlsNjVOMVZmK0RrODQzODFIVmJE?=
 =?utf-8?B?VnlvK0NkcnI0bEFLYWlPcVNsNDhLeWJLaGlxUUFSRUhOUSs0TmYxN24zN2Jk?=
 =?utf-8?B?UW15S0UvQTlBbEtxWmtwMThVRFo1Y3lmUjM5WkZUcUdYd2tkUkdxT2NMU3cx?=
 =?utf-8?B?MG1LeWZuL0xwM2hEcmNNL1BEL3VMckF5eStVWllVRVU2M2JDc3hWRGd2eERt?=
 =?utf-8?B?MllJMm5RWUZQRzZnOG0zWlJ0aHR3SzlDc0xSREtkOFNYMzZTenBmbFBFbVdl?=
 =?utf-8?B?V0d3TnZsVWlEdi82U0c2WmZyb3dQeXJhdVhma25sVndkSGtPeU1pdjM1UnRY?=
 =?utf-8?B?dktDUHZIU3hDR3ZwRlF3VjdKRkF2bVByWFg1QXh6UjUxVXloa0lXTENUeXlV?=
 =?utf-8?B?MEZCYmgwYTlGMUszUTBDa3lKWmpDc2pTWDNOSG5McVhNekdBcE91UkhySDNC?=
 =?utf-8?B?YzBFaXNPUkwrS0lFTHFlZnZRQkF3bzFaRXdJSC93bzdGMlF6a0xISmE0eG5M?=
 =?utf-8?B?bWh0ZVFlU1poTktoM0pIcTlESGxOWDUyaFBUUU9WR1AxQzZ2MGdxY2VxK044?=
 =?utf-8?B?Z2p5Qy9Za3FxdStWZnFaQk5nOTFMTzFFVjNBOE5sSkU3cmlITDV5US9Bb0hx?=
 =?utf-8?B?UzdGY0lBTGl6WmxESUpVRDZFQTJPd1JsbDZ5eG9RU002b2Z2NVpPTnNqRnlI?=
 =?utf-8?B?WTV1Z015OGFDaDhaRHJ1YTFwZ2NHNk1aU2dSR1dEM1JadG03M09JdDFXVU9n?=
 =?utf-8?B?VUZFSVZPVGhpUGFpUUw4M0hKMnk3ZjdzR1F4aVRBTnFLSDcvVHlVVFpnTGl2?=
 =?utf-8?B?cHRuRjBMWkZCNTVvWDM3aGZzSGdBcHVhSSt2UGZIQkZMc2dWS0lPNVhhZ045?=
 =?utf-8?B?RktxUDJKcTdsWjVpclZ2OTJSdUFHSituNWs1eHFYRkFlZkk3Nk9hYnUwUVdT?=
 =?utf-8?B?eStWZlVXTWRZY21nM1RwUnFQa2FETWlNUnZDNks0Z08yWjRJKy9DUXAwdW55?=
 =?utf-8?B?VmJxSkxNYUpGWFg4bk1UZXlkYTVqZEI3Rm5xbUZaK3N4djYrU0FyY2ZnSTF4?=
 =?utf-8?B?NmFmOFJuTkx2ampsTCtBQmNZSjBnYTlESjBQQWF1WEhsbm96ekFiWmUzRlFQ?=
 =?utf-8?B?cVJMLzRPemRmU3FQamUzUVhZRVFxSkxWVDJDbnMwWkZkeDhPc29vSE9iWFN2?=
 =?utf-8?B?N0hhTlg3Tk9xcU1oeEJmbVFVdkhQZm9RNnk3UkRsSGVDdERkT3BvME54bS9L?=
 =?utf-8?B?U2NibW5yWmhFV3FYTjVMbUJxdzdNUnJudGROeVFOQTdPbVBobUpuaEV4RVhS?=
 =?utf-8?B?Zy9RVWtFUUc0TmJIRkZPNUYyL0VocmhqakJmd3c4Z01vbFBpRlBUdDFzaWZw?=
 =?utf-8?B?Mk42eDI3TFN2MGxLalNCSzh5TGJSWWZ5UjEvV201enM1c29wbVNQMUJXYm5M?=
 =?utf-8?B?WllsR0g2T3ZhK2laVkZTaHFIUU52dzRrV0ZvS3Y4L3QwQTZxN1pyMkVEOFFN?=
 =?utf-8?B?QS9RS2ZuVFNRTjRvRW5mNWlvYUJMcmFneVZlekJCazdFYVMySkdXdzMwNVR6?=
 =?utf-8?B?Qkh4TnAxeGFrNE5IYnBqcUtxSkt2a1NtQTZpUXZ2TTV4bGdtYVdZeVlPR2FQ?=
 =?utf-8?B?SzZiMFNPSlpJQmNsMzVIMW5qSjhqcGZQbCtScDdKOE0zUCtrUU5VeG9TUkw4?=
 =?utf-8?B?QVhoYUlOeE5MTkpwRWZ6ZEVsbjI0RE1MRXA5RTE2eUZ5RU1NZGtsaS9rbFZw?=
 =?utf-8?B?TnBxU1RGdnFlOE5Na29MKzVKQmdkL2I0M1pCVTU2cjQ3ZEF5M1JWVENNSThV?=
 =?utf-8?B?NC9SZnNvMFVYR2hqczhYNlZqYzhPUjU3TFNRVVVwVFhEM3ZQaVpFZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9dff0c65-0201-483c-bdf7-08de68bebe94
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 16:09:18.6212
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7fGRsd9N/5UC7+Hg6Kg5sJV9lnrdvMC3FnYht5rFQgmkMYFW57yU3mnI31BoC0BKhcSWs0/Q+K/qvGWHAf1BPA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR03MB8444

On Tue, Feb 10, 2026 at 03:57:17PM +0000, Bertrand Marquis wrote:
> Hi Roger
> 
> > On 10 Feb 2026, at 16:55, Roger Pau Monné <roger.pau@citrix.com> wrote:
> > 
> > On Tue, Feb 10, 2026 at 03:44:33PM +0000, Bertrand Marquis wrote:
> >> Hi Roger,
> >> 
> >>> On 10 Feb 2026, at 16:11, Roger Pau Monne <roger.pau@citrix.com> wrote:
> >>> 
> >>> GNU assembler will consider '/' as the start of comment marker on some
> >>> platforms.  This is incorrect with Xen's usage, which does use '/' in
> >>> assembly files as a mathematical operator.
> >>> 
> >>> The behavior of the assembler can be altered by passing the --divide
> >>> option; unconditionally pass this option when available to force the
> >>> expected behavior.
> >> 
> >> This is solving the issue and I can build for arm with what and further
> >> for x86 on mac os but it fails on check-endbr.sh:
> >> 
> >> /bin/sh ../tools/check-endbr.sh xen-syms
> >> stat: illegal option -- c
> > 
> > Yeah, I know.  I've fixed the stat issue, but there's a further one
> > about an illegal bit sequence in grep.  I'm looking into that.
> 
> LC_ALL=C grep is fixing that one on my side

I haven't tested that one yet, but yes, might be a way to solve.
Would you like to send the fix for grep?

> with that and stat -c replaced with wc -c < xx I can fully compile x86 on Mac os.

Yeah, the problem with using wc is that you have to read the file.  I
prefer $(($(du <file> |cut -w -f1) << 9)) because that avoids reading
the actual data to count.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:09:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:09:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226606.1533118 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqJ4-0001bQ-5j; Tue, 10 Feb 2026 16:09:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226606.1533118; Tue, 10 Feb 2026 16:09: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 1vpqJ4-0001bJ-2p; Tue, 10 Feb 2026 16:09:42 +0000
Received: by outflank-mailman (input) for mailman id 1226606;
 Tue, 10 Feb 2026 16:09: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpqJ3-0001Zu-IA
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:09:41 +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 e230b209-069a-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:09:31 +0100 (CET)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso55688065e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:09:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5d78cfsm93973395e9.1.2026.02.10.08.09.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 08:09:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e230b209-069a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770739771; x=1771344571; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=RZ6QTADTxJ1Sm5PuJcs2ICjg9CNgXCtmQ/pc3kg99iY=;
        b=VdNbitNAQ+dirdZUMFBfyvMks8DtoX8rgud+CY0irPuv51K8CXFe/YaA+LLn+c/ur7
         zMt4UR2rHR5KcUQV4pxBlKUU8qEtMSATZaJLQhbM6c+bXsfeLkHN080KLw/bj7ikN/gB
         QP4K09mclfYhEV/GcRJjC+gASFQ2JFzXkRFuDiRqqw2ljtqEbss2XWMZCLOkzXtruPqm
         9Cm6Kiv5W5u99RZ4PWusszacdwLwFGreUoMXG2qSdMickN9cWPJyjBI8bN1ciG+jip4x
         gnIHaz3zaqoOkgTPZ44o2qTlQ0v9iAmfa0vh1qHkNkIsLqdcL5ZMAbiSpvd7ZwWyMiRt
         YauA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770739771; x=1771344571;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RZ6QTADTxJ1Sm5PuJcs2ICjg9CNgXCtmQ/pc3kg99iY=;
        b=njxYMcn1lt5U7JTOaxVUyOKmTbDmrv0g7geLKD77zRF1z9ewsLytfYu4BY7PJHJ1r7
         VaIbvTbWpCtwIgd8FPckc5PQlKnS0Ttk1LQTLLfB4HItZa9B6rXOhcnMRc6muWiB7WcH
         vw+MwpeI20Pnx8gKL5kT+aVqd3zYZgOOiv60O8HEn3nD0b5wUx8rkHZ7cKveMo3CQ5Fx
         k1LLK6oCDJsvwdJks9uOKPmkYa9GhjoVmOZJajfHpNHcTlaDtzG6WXYywv4H8T8pGJFo
         z1qJ8s8CEse0QTElA1BXRG0BBZ93DLourZBFy7JVhOHJudqVeWw7zgGeds9wDPQQKdig
         L3lw==
X-Forwarded-Encrypted: i=1; AJvYcCVy54k4EevQWMYgYaPJ+BixyuZe/cfwBZLVkG+Xt0PuIQj9u9HiB35zS8aqhNQmVcOt+u+bZA0HiWE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy4TiT2SPcnFEPpLGzvTnl4PRV5V83IbHnfmPsPqgFWs5eJWEOQ
	wTGtIAfJs7HPYsbYAFtCr79MKeHRZIt5Ag3WIHTVVUmhIHnSZgYXrcQj2sfxnU8wxZT7RPL+7tL
	WAwPu/Q==
X-Gm-Gg: AZuq6aIrQHoZaKXw51tJAp8+KO8oEj+KGbu9ucmVVLycAHbci65bq7qtev7krlY+iaN
	krWObBGzCSqIvsOwy+Nu6r3IqtZYgCtmxHT1komW35qdBZUAgqd8rlQA4wn25wCJJ54qQOwg7Yr
	cdj8KvmBYWXIHxhEE6NmtUHogdJTbtUvImofqaNdfGn99N2OsEvFE3nzT7i4PcCK82z/eyxvg85
	nyFVGS9IR1zzwOHC5P6Lr2050iuaTdpV0/q0DSOaCrJllU69ff5RxgGD43uGPxfmnM/GAXr0AKg
	TBpWmzrMPgQaQGGwcdN8yp2EgfH9cEptvfLtQq2KT9omHMtnyO1nrusamsnN/85AmhUrEzU/BFh
	TCaDickE7iUYVlEbMZm4fhM32ekPb3Q8RdB8T3MsdaWmBMn1Cu3hytn6HV2W0XBpPZZAb4geMxN
	7yQ8DHm16uo5zYUuagT2lcz6oZIofYtrJLv1S+HVQKEuerD4i12u1DEC9udukMxIJ0y3paOLmSr
	KSpm1xG0pCgZew=
X-Received: by 2002:a05:600c:45c6:b0:483:29f4:26b3 with SMTP id 5b1f17b1804b1-48350229208mr41822655e9.1.1770739770976;
        Tue, 10 Feb 2026 08:09:30 -0800 (PST)
Message-ID: <d9b768cd-6454-4fab-a0bb-e2543c68402a@suse.com>
Date: Tue, 10 Feb 2026 17:09:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Bertrand Marquis <Bertrand.Marquis@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>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <20260210151110.26770-1-roger.pau@citrix.com>
 <8bef9911-2f37-4cd1-bf18-29cca646fb09@suse.com> <aYtUkeoX273I8ABq@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: <aYtUkeoX273I8ABq@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.02.2026 16:53, Roger Pau Monné wrote:
> On Tue, Feb 10, 2026 at 04:27:33PM +0100, Jan Beulich wrote:
>> On 10.02.2026 16:11, Roger Pau Monne wrote:
>>>  Pass --divide when when available to signal '/' is
>>> +# always used as an operator in assembly.
>>> +$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--divide)
>>
>> I don't think this should be done here: --divide is an x86-specific
>> option.
> 
> Oh, that wasn't clear from the output of as.  I can make it
> x86-specific then.  However, is there any chance of this behavior
> escaping outside of x86, and hence would we like to ensure this
> behavior on all possible arches?
> 
> Or is it possible that other arches re-use the --divide option for
> some other functionality?

It is equally possible for that to happen (if some target needs to
support '/' as a comment char) as it is for such a target to then use
an entirely different command line option. Furthermore, --divide may
mean something else on another arch.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:15:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:15:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226624.1533130 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqOM-0003KV-PT; Tue, 10 Feb 2026 16:15:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226624.1533130; Tue, 10 Feb 2026 16:15: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 1vpqOM-0003KO-L1; Tue, 10 Feb 2026 16:15:10 +0000
Received: by outflank-mailman (input) for mailman id 1226624;
 Tue, 10 Feb 2026 16:15: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpqOL-0003KI-L0
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:15:09 +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 a7703144-069b-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:15:02 +0100 (CET)
Received: by mail-wm1-x344.google.com with SMTP id
 5b1f17b1804b1-47edd9024b1so54783765e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:15:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm77224785e9.6.2026.02.10.08.15.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 08:15:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7703144-069b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770740102; x=1771344902; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=83ANY+DBIX2r6a6PRfgcxJxSlFqL7AK/rkfUiGRD9fU=;
        b=AOZ1s2pBleS7AAMyf2lsT2d2IGheMzlHQXxgDNM1sL0Ia+U/XHRtDIgje21aCbiMsH
         qKs9aA2u0U8DUTEIJDbH7aPAlRf4YXbVmNaq7LAUBQa1U0fzzQjf+o36CJ2SfDRUMbd1
         ZKCSk5hQXBm4/dzSyCDGLGHsaIEzVnTLVCmfnJ6VLjnl0RkPAgUiqV+XypUwKFHPf66S
         T7lcCzC/sPZa0x3F/VXv0FbWLgnOjEUeOZIHUQawWyEG+14YjK/2fTobZJ8M3x3+6/2n
         zAPm8geWwNtz1+kmwtHsDA2fjFq6s1FzMpy5Jav8om2MZu6WNHsR7fCmWRKfg3BQjY/e
         o4gQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770740102; x=1771344902;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=83ANY+DBIX2r6a6PRfgcxJxSlFqL7AK/rkfUiGRD9fU=;
        b=mW5ifJLeeI06Wzg2+e6hpp3jST92bdxH+sZkrvl3CIcqAE9VvqRXd4evgREL0jPiRB
         5YUP91B4iE8eSujMhcGIgtLmzN5okwKot4qLFpABmuEo1Tk8/qgL8kSnSAmNXQfiWuW5
         iXNyAZitm3oilW2dIeyjfp+NoXahYmvzR6QtaWsI/nQC/sHDNPtR+21dR0TiCZ0wE6LO
         srTfkxQMah+1VqA1+sc6YKjnGb7zdCrSR83tAMlW6ZvLKaBFgJHN1Fjq9yLBym/I3Af2
         dQ3cSK6FeVuF2bCIuYFTLqnOh6aJuhyJ/tUMiHMDYuewZCeU1iClKq8+Xxd38ItLccMO
         CrtA==
X-Gm-Message-State: AOJu0Yw0m17GFd6Jw7aDZhW2DT13cy/LcHRogLrxraKRfnWyOWr1Aflt
	R3pdBHP3EWQbxkSz5c7n9VgQJkaes1lK5K+4aPOQZgwxY74FQOUOstjTvUWq565nUA==
X-Gm-Gg: AZuq6aKY3hv0mWqvQu64OjHlNrun9fZxo4B1eX+CF5+NhqB1FMbQCCrKCBeiy59S3QH
	fypzV7Jp1v69LPpd4H5rL3m3fcJGPgiilMIkUCmyCssREvKp5O2p8Xv7JHRO3D54+8uzb3t6Hgz
	4S/kD9R0nWXpCmG+5OElJG+ylBmctS/Sla7ORb7TAY4LCh+t+fdpU1c3cucsv6knhPLy1yEaXo7
	tdruYBWCT3DmXc0hcmIVG9Unpo4AkjpMwOD+KjvZz4uAEyLbsFp2L7KfXkOJXuLPlbbQrPSkZ44
	Uoe+pxcw1bPSwm94THp4jreNURZU2z3FjBV9EyTE+lO90XzapLKN23tJpgBBxQe3fxoDz2yhsWX
	pwYnYnyv+XXeNKdfRch1tm8Uz0K/49VNURsuseNTszIy6VAPeOSMrBwDUY067r0nHE41BdX8MYL
	4e80jZqXDcWWMxtJ1hww0gcpao+ZKHLTezDc0Zi/OxNmvZxI2dm0tC4UV+n4fxk0PuD6ezD+hqt
	0Ebj18uyceu0Tg=
X-Received: by 2002:a05:600c:1549:b0:477:582e:7a81 with SMTP id 5b1f17b1804b1-483201da21bmr212990905e9.4.1770740101938;
        Tue, 10 Feb 2026 08:15:01 -0800 (PST)
Message-ID: <5d656a16-467e-4603-b5c6-e388303ecd38@suse.com>
Date: Tue, 10 Feb 2026 17:15:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
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>,
 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>
References: <20260210151110.26770-1-roger.pau@citrix.com>
 <FE2A96EE-5D99-4CD4-82AE-7538B94DBB0F@arm.com> <aYtVBuHVcfZE-L-a@Mac.lan>
 <1115BE16-FE3E-4F9D-BB32-77064580D5E3@arm.com> <aYtYKlcoVAFvn8jh@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: <aYtYKlcoVAFvn8jh@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.02.2026 17:09, Roger Pau Monné wrote:
> On Tue, Feb 10, 2026 at 03:57:17PM +0000, Bertrand Marquis wrote:
>> Hi Roger
>>
>>> On 10 Feb 2026, at 16:55, Roger Pau Monné <roger.pau@citrix.com> wrote:
>>>
>>> On Tue, Feb 10, 2026 at 03:44:33PM +0000, Bertrand Marquis wrote:
>>>> Hi Roger,
>>>>
>>>>> On 10 Feb 2026, at 16:11, Roger Pau Monne <roger.pau@citrix.com> wrote:
>>>>>
>>>>> GNU assembler will consider '/' as the start of comment marker on some
>>>>> platforms.  This is incorrect with Xen's usage, which does use '/' in
>>>>> assembly files as a mathematical operator.
>>>>>
>>>>> The behavior of the assembler can be altered by passing the --divide
>>>>> option; unconditionally pass this option when available to force the
>>>>> expected behavior.
>>>>
>>>> This is solving the issue and I can build for arm with what and further
>>>> for x86 on mac os but it fails on check-endbr.sh:
>>>>
>>>> /bin/sh ../tools/check-endbr.sh xen-syms
>>>> stat: illegal option -- c
>>>
>>> Yeah, I know.  I've fixed the stat issue, but there's a further one
>>> about an illegal bit sequence in grep.  I'm looking into that.
>>
>> LC_ALL=C grep is fixing that one on my side
> 
> I haven't tested that one yet, but yes, might be a way to solve.
> Would you like to send the fix for grep?
> 
>> with that and stat -c replaced with wc -c < xx I can fully compile x86 on Mac os.
> 
> Yeah, the problem with using wc is that you have to read the file.  I
> prefer $(($(du <file> |cut -w -f1) << 9)) because that avoids reading
> the actual data to count.

But shifting by hardcoded 9 doesn't look very portable. The size not being
exact may be okay for the purposes here, but wouldn't it then be better to
use (standardized) ls output?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:20:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:20:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226634.1533138 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqTh-0005IM-E3; Tue, 10 Feb 2026 16:20:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226634.1533138; Tue, 10 Feb 2026 16:20:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqTh-0005IF-BN; Tue, 10 Feb 2026 16:20:41 +0000
Received: by outflank-mailman (input) for mailman id 1226634;
 Tue, 10 Feb 2026 16:20: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=1KCy=AO=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpqTg-0005I9-9d
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:20:40 +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 6bd06fc1-069c-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:20:32 +0100 (CET)
Received: from DUZPR01CA0309.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4ba::9) by DB9PR08MB8673.eurprd08.prod.outlook.com
 (2603:10a6:10:3d3::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 16:20:26 +0000
Received: from DU6PEPF0000A7DE.eurprd02.prod.outlook.com
 (2603:10a6:10:4ba:cafe::e6) by DUZPR01CA0309.outlook.office365.com
 (2603:10a6:10:4ba::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 16:20:25 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU6PEPF0000A7DE.mail.protection.outlook.com (10.167.8.38) with Microsoft SMTP
 Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via
 Frontend Transport; Tue, 10 Feb 2026 16:20:26 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DBBPR08MB10842.eurprd08.prod.outlook.com (2603:10a6:10:533::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.13; Tue, 10 Feb
 2026 16:19:22 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 16:19: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: 6bd06fc1-069c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=D6MiqnvQfmJGpWM6vXUf8OLaTbe3GNA/RKwIcakRU026BudyqCqh8x/ucqA+D7d6vRQBHBWgcsHfcBiDqBWDNQQGQZH9yVFqssfIxUfDs+a+aTXIkqgp9E54/xqHJ29UGh0NWF0u2pzYW4Tb/jj6fTTqQk8nHA33F3SqPmhEWvSG3wbE1XwuNOIw732W4L6MPzThrkN4zhjY2sKbTpAMxBmhwMShIkprq7loft4gSWS3LDBLo9AjudWvzwZGOcpjsfywnbJaj99iH75JcwkGM3UTq0AGYckMsf5S4HVxsOafi1CoJFeFaCa+If0IgGUVXd58MGRUouGbuzpB42ysrQ==
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=MuES9yc2kGEuLr8wj2cvtaI/4i6YVtbc9iDdEMJS0u0=;
 b=VHEga9XzI37sEsooTOzg4VRtDt7Ycp9xdyLI32rYS624wR70cUpgrXHEu74ToJTW9fy2EhMnM59tRkFKKvELIEsYMs5wubjpoSYmop6C1S5FBuWzQBIBC4z4UyW/nckFQQS8J+BBGqsKez38+Jp/6EIEiwMeCBMFhqEy+kqL+3jkRyFlSyvYxIz8wI42QB3NF13VHD9Z2t7XQ1ybeOBUsXl5mnnB15v8moAyaynfT8t2n6YVGXvaJpz5NlQGmJvCfTfvXVVudLTgP3f0xHdjmSJsLCztkdJyK38E0raMmdxyJ7scoUS5lRhcWZm8ucdcKBocjYbziQOIZFvhyXmVOQ==
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=MuES9yc2kGEuLr8wj2cvtaI/4i6YVtbc9iDdEMJS0u0=;
 b=Gg7bBT4rbRonWdoMsY2JO+sQ5R0z9KoFSTrmXFJboxNnBFb2uJ4yMAwu+y39us81zD/pRB7C5UAnojRH32jq3qgDixlySNhbYegp2qXaCqK6M621D/KPuXv1M+mtBMZktbuCO+YPgAPiuvyeLNIq7U2QnCypaITeZNaxjVUWxY4=
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=egINlBbaBtTGoYvnMtR889JOLWj4cnMFDNyzAvFahXsGJmAMQwkEEIGEJrdi+2Y2SzCArTjXrAa22GL6L+/i3gumDmKC+WrhPGqx8L1pWsRXqDwvxjy1czs/VpuabMRuDqX7cR6R2N2A1ktRT9tI8RIzvTRR+5jVLv+ZhI1ZSggHDFnB1tNqGCVpajsxbv0ZjO4CrBCRS2ASEldIomD+n6h94yxRr5UUSs1ULmsLoc5TYZNWCaUfbGQz7+ihHQic+hPdnkp5wSdygm1ra1eSoi2h1nHzZD03AObER52JZ5ihl5jF0UpknmxmTCGIZAMPotfsSfhT/zu+XOgcNMFuRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MuES9yc2kGEuLr8wj2cvtaI/4i6YVtbc9iDdEMJS0u0=;
 b=Il8BkqtqCihbm4+71G+GR4Rujb0wGUc5CyfvbEvp0X+1fsnYXBxx5pDSm+lTT1+kSwQvRcaaudccmQLdOOzCXa3KGyfLK3R3SZHcfgLkGvFIE3gAppGby9zOrDK5g3X9EVbaBbli8MRNJCXVbh0li7/7ad8+nC8EQmVbV62ttexOQTYJmV/4wF5jm+48smwK+CHO/rJaD9vvHaB4eMNRL/lz1jdjgllCJXFb1c6umgMMtxXI+CVtXtZoXwbAvjOr2UJjSbF2lyRmjb9r1LmioXd76VJN7t+bviU+g2XmeJ+xg9WWtB5rCbekEQlLL/yJLYNvmmsNJC/5Acd/7Ckxdg==
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=MuES9yc2kGEuLr8wj2cvtaI/4i6YVtbc9iDdEMJS0u0=;
 b=Gg7bBT4rbRonWdoMsY2JO+sQ5R0z9KoFSTrmXFJboxNnBFb2uJ4yMAwu+y39us81zD/pRB7C5UAnojRH32jq3qgDixlySNhbYegp2qXaCqK6M621D/KPuXv1M+mtBMZktbuCO+YPgAPiuvyeLNIq7U2QnCypaITeZNaxjVUWxY4=
From: Bertrand Marquis <Bertrand.Marquis@arm.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>, 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: Re: [PATCH] xen: always consider '/' as a division in assembly
Thread-Topic: [PATCH] xen: always consider '/' as a division in assembly
Thread-Index:
 AQHcmp+J15vvFrxtUEGxE7lRiZXN1rV8EwEAgAADNACAAABcgIAAA2IAgAABnQCAAAEsAA==
Date: Tue, 10 Feb 2026 16:19:22 +0000
Message-ID: <686F47A1-44EC-40C9-A766-909D90CD6356@arm.com>
References: <20260210151110.26770-1-roger.pau@citrix.com>
 <FE2A96EE-5D99-4CD4-82AE-7538B94DBB0F@arm.com> <aYtVBuHVcfZE-L-a@Mac.lan>
 <1115BE16-FE3E-4F9D-BB32-77064580D5E3@arm.com> <aYtYKlcoVAFvn8jh@Mac.lan>
 <5d656a16-467e-4603-b5c6-e388303ecd38@suse.com>
In-Reply-To: <5d656a16-467e-4603-b5c6-e388303ecd38@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DBBPR08MB10842:EE_|DU6PEPF0000A7DE:EE_|DB9PR08MB8673:EE_
X-MS-Office365-Filtering-Correlation-Id: f20d036f-ab32-495f-2775-08de68c04cc2
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?dzFmanVvcEt5d3pBRi90LzdZSGt1OHBrRG0vajdCZmhtQ3VHeHMzQUNoMDFh?=
 =?utf-8?B?ZmIvSmdyVGM4ZUF4YXpHS3lZNjFqUlZOTEcvK0xmWURDcGRYazBpTWxoakR3?=
 =?utf-8?B?OWdWMU8ydDlLTU1pcmY2N1VTZkpGd1orR2pzbE1HQXNCMjczSnZVOUduRDRm?=
 =?utf-8?B?dmYzNHBjeWh4N2F3ZDI4cjdjR0JUdnpoQ2pBQUZJTUl6L1lNQ0NONEpwYkVW?=
 =?utf-8?B?TjhlenJLRHVaN1A1WTM0OG15bG52cWNQVG1DcDI1TlV4cUc0ZVZ6SFRhOW1F?=
 =?utf-8?B?bXpJR29sZis5Zy82c21qdjFyME9OaTZEekNNUmlqVmVBYW1GT1JQTTREV242?=
 =?utf-8?B?UW1iWU4wUFJQMUlOM3dzTHR4U3Z3THQweFNGaXh4Y1pmbEVkOUlwTnVOdU9X?=
 =?utf-8?B?QVpDUU1vNjJTL254andTL0dsWllHVm1iMzdYem5MMzV3L05wSVFDZjdSb1E3?=
 =?utf-8?B?ZExvTG52dHo2NnR4YzMvSTVESmlyZGJyNGNVdnBCYXE4TGlSV0tGNFFmdUtK?=
 =?utf-8?B?M2Z5V25md2ZOdzBGV2NIKzNteExZSHFXSVcrRXJUSFptQXV6QjdDcHI0ZWxn?=
 =?utf-8?B?Mmk1eWcvc3pJY2lFV3Z0b0tSSng5V1hGWjBLOG9RUWE1a1FXY0NxVHRHeTlx?=
 =?utf-8?B?MG5UQ0ZLU09ac1BMWExkQ2lqTXgrcVNDczZaV2ozMEVublh3VG0zcHd2WUlE?=
 =?utf-8?B?MGJmZjBvOG01TkF4Q3BDcEFMNUFqcGQwVGxyTDRSbmZqWUIwNmZUT2hNODFp?=
 =?utf-8?B?MlU3WVVjcHQvZVppVmJxUS93dzgvaXpyRGF3SXd5TmZ5ejdCTU5VRDBFVm5O?=
 =?utf-8?B?TG5zUnhJQ3I1WWx3NWlLdE5ta1A4a0xpb2NROVhZK085THJHek1jRStaL2do?=
 =?utf-8?B?MWFwNHlGZkphTzlWa0hiRitJc28wUGxLUDdWbENCaUtZN29MU0NZL2ltSnRa?=
 =?utf-8?B?bGJmeThtdDh3RUZYN0pqSmMxaVU0UXJMS0E3K2JKSUd2c3daRjJZNTRqa203?=
 =?utf-8?B?TGh6RHNoS0g2elZBOXNMd09MOWFPc0FOOHExeTNWN25hcDZqNlhCZlkyWFdI?=
 =?utf-8?B?eVpYbEE3ZTBHQmFMdWFzU2VMNzRjTSsvYjlZRlZ5Q1VaQkZKd2J1MmlzUGZF?=
 =?utf-8?B?MTZrT2dCazk1MkpoN3ZBbFpXZW9YWjNDUndhYVFiajlNZys5T2VGeFZtYWpv?=
 =?utf-8?B?UEZRdkw1d2RMa1Y0Mncxd2o2bzlXbTBVeFZaSWU3dEJyR2F4REtubk4vS2RN?=
 =?utf-8?B?TDlvTit3VFN0eExSVzR1ekt0ZG9yZTRWTC9QL0ZGTys3M0RyVnA1OHNOa0N0?=
 =?utf-8?B?QmxkSGltazhDYUVJTFJQNE5DaStwVWJaU1JEMm5mRFB4cjU3ZGJBMWRLYUlY?=
 =?utf-8?B?ZmxtTUp3Mk83YllVQ255NGc3d2Ftc1dyb2ZYQWdHaGJXeURTRlcwc0YzVUV5?=
 =?utf-8?B?QW9jWHJqd3BlQi9DNHA5bzlqZExnRXNZYWV3OWNHa0M1OHdibmlCSngzWHl6?=
 =?utf-8?B?YlAyZCtOZEEwMG12SWYxWFRTVDJrKzR5bVNKZUtjeDlJMjBWS3lDVUdmVEhn?=
 =?utf-8?B?cXQ5NXVHWTVscWNBR2xEdDRSdnRpa3hPSWlKc2hyUGlTQU94L1llNW1DOGZY?=
 =?utf-8?B?aXpUcGlkcXFtQU5odEg2eTBtY2pBby9oUC91THM4Y0ZQYnNleHhINWlMRmdr?=
 =?utf-8?B?anBVbS9lYWNrOC9EdTFndVhQMzI2NkxNQ1o4N253ZEIyRlJPOE5VWHZrWmV3?=
 =?utf-8?B?T0J0QXBONEFnWTM5aHZ0dlJtOVBpR1dYTVZLaFdtM1dCbDJGamNFODMwWWs0?=
 =?utf-8?B?eWxGSW1tRWgvR2VQa2hlN3pob2xldGRyb0xZdUZ2dmJjM0NKc0FHR25EWmJI?=
 =?utf-8?B?MkZHbkowM044dTNySHRhSUREU3RLRzdxNkRqNlFYakJNNUJQK0VTb3YwUlFJ?=
 =?utf-8?B?S1c5TzRXejZobWtwUlUvNG1wM09iWjdDT0EyUG5JcUwwU2FEMWJBbnNpcmRm?=
 =?utf-8?B?TVdUZ01KWWVUVm9Na3hZVk1OUzRLWkdvVHIrSHJjK0kxcnNRMjJrbU9PS3Ry?=
 =?utf-8?B?V1RwTURaUGF6Q0t1Z2tXMDlDNEhWTkVqc2ZIc2NlV1Z4MzVDaHl4VWpyOTZs?=
 =?utf-8?B?N0lXVHZpTFBaUDN2ZGY1TGVZTHVoUlBJV0RRT0I4dWkyZTQxSTBIR1dkNXNL?=
 =?utf-8?Q?t1Kb8S8Njrc8RUuA5Io3UQM=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <921F515FF8C40F4EBCCE866B5673A503@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10842
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU6PEPF0000A7DE.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	74758086-9ee1-4289-367d-08de68c026a9
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|14060799003|1800799024|36860700013|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SXlhYlB2aytHOTBTOG9pMXhpOUN0N1BHMHhvSWRBRTk3UWNGaUZES3ZMTkZu?=
 =?utf-8?B?Z1AvMERENFNzOFI5bzY0VGUzaTRTMjVsZ3p4czEvUkZ3eWdvQ1AwL250Ty9p?=
 =?utf-8?B?RVczZnNLSjJidE5NclBiVU1ENFlKTUMzWi9kNTVMa09nT2hSZXMra0UvM0hu?=
 =?utf-8?B?dDY4TG9BQU0rSlJZZ0hsQnVSRWtqNDMxa0dQSlh4Sy9HV1RoekRsRVR0WERw?=
 =?utf-8?B?SUZscE9aS2RiWVFZQmlCc3hNVitNTnA3MWc4U3JrNUMyemwzbk5ENjMxWEE2?=
 =?utf-8?B?czNtSWpoV0R5SWMzMWRsbFM2enNNUjlNRmZNa2t6dFp6Mlc5MWtja25JalBj?=
 =?utf-8?B?QWl1SnV5RDE2bENxUFNNc012cVNwSXE1cElwVnJsUjFNT0xIRFMvY0R3aitC?=
 =?utf-8?B?S0twbWdhVFZDVDQ1R3JTUWRHMm8vYm9zUEF6NGtEb0R5RVpVSDZPa1BXTVdq?=
 =?utf-8?B?ZVZqbll2ZlJtK3RLOExMQWVlV3hMaE9ZOTlwSTNPY20wQWVoeDFtT1U1UE9i?=
 =?utf-8?B?NnpieEZjeTlNK3o2WlJMSUF1NVFsVnFMYlZZVDhvOS9qdFVpbyttU1o2bGF5?=
 =?utf-8?B?WHJ4U2VFcmVQT3FaVlpSK0Q5TkhXaGIzZGY2VlVaelVjeHI5bW9IQm9GeDhk?=
 =?utf-8?B?M0dPd3lKaEVzU0lnWXU2S2NnNjNTZkZpQjhQUlZYd1dFY1lnbm5mb2xld1p2?=
 =?utf-8?B?K1FPazRaMk1LdElSYjFzWWVERThHRTVJRElrNWhCaFN2bjlvSU8wRTVBTW1H?=
 =?utf-8?B?TzJHWDNaZjdNVXphYkVoaUhyUFRQd0w3QWp1dHdVT0Z6enZPcXd5VU5YZnFW?=
 =?utf-8?B?SHp2dzBEdEl0Yk1aS3p1c09Zckg1eGRuYlFEMEV4VVlUQVhZU2dybHRkcWZW?=
 =?utf-8?B?bW13UExKNktZbzRGNzh1MEpEVDEveE1FZFFHWVI5TGpQbmRLWTBKaGdrSHNI?=
 =?utf-8?B?WGFuUE44V1NQc3cwczBJQzIrNUJDd0ZCM0lyS2JxbFgwalZScFpPSGNpcFpB?=
 =?utf-8?B?K0FBT2hxbzg2aDAyQUx0aHFNRFA0ZXlsSEQrMnZxSElZZDRYek9LSFM5a1g3?=
 =?utf-8?B?b3Nhc29RSlpEQ1NTOEloK25ra2h1UUl4YzE5Nml0aUFRYk0vemxYSm5qY2dj?=
 =?utf-8?B?Y05LR3Z1QzdRY0FwZklZSStGTVNZTk1YSFM4aWFKVjNvdUNwNW9FZ0ZpTW9M?=
 =?utf-8?B?eHVnbU1lL3V2T2kxeENYSFVJSHFySDlSM1QwM1JuSkFqOGJFb3E0d0RaQVR3?=
 =?utf-8?B?ZGRIZEtLWkxhb1FVY3BXRXh2eTA5a3lVb0gvUjNqRVltdEpHamF2SHpuZlh6?=
 =?utf-8?B?Ty84bFZOMmxJWWRRdFhWdmFsclBUWXJKY2dieWd3SnAwWmdtSWRqaHVIMDIz?=
 =?utf-8?B?cUd6T3NMeHFoSHhzWi9od2d2OExhYzBJTU8zalhwVGFpQUUwbkhvdytIbTFM?=
 =?utf-8?B?VmwzYmhqWjAzZE5hVFpQcjduV3hCblpqYkViSkE5UWhQWXFTUUpCR3VDdjZI?=
 =?utf-8?B?TnQzUkdLcTRoMExyR3M5WU0rQkJhdGVWZ2dSNG9HSTdrSDVycnBib1E3Ni9V?=
 =?utf-8?B?d2JFMTZLeXpWUEF4QU5aMzgzaGNNbU92dGRSSnIvMk9iK0NlY2t6WXk2ZXpJ?=
 =?utf-8?B?dlRGTG12SVZRdjdWbWJUZk9jNk9KR3I3bUtTbEJZMUpGVG9JM08rdC9HcGV3?=
 =?utf-8?B?UFFIUGJHdEFIK2w3NmI4QUZWWDU3RU40ZjFyNnNvblJHMHZhWTh1NWdQekpX?=
 =?utf-8?B?L0ErQ2hTa3FuVVZoTXRxZ0EwdmN0MHlpQzhvWE15ZGdvdGM2TGhReDJFdVN6?=
 =?utf-8?B?UUJJd3Q5QW0xSXdWNGdFT20rRWUwYndWdHZYaGhZWDMvRCs1ZU9QZWZwc21G?=
 =?utf-8?B?ZjF1SEcxRC9yRXNtcnpROUdHSmNzUWVTNE1hN2N4eDlDcWJLeXNEUHlGc0M5?=
 =?utf-8?B?N0JUTmEvd1IyYnkrK0M5SEY3OFZONlV0Ukt0a0RFcFYrQkdhb215Z1hxVi9s?=
 =?utf-8?B?NmpHVWNLTCtGbXlFQ2RGZFh2MXBKcXZQMDlETTdOc1Y5SStpWXE0UjhLNHpF?=
 =?utf-8?B?QUhlVTRXWFh4NkoyS0dJNXJEMTZvalREc1hLaE1WK0tuUlpKbEhtY0pGeW56?=
 =?utf-8?B?VHlmN3hjRTBMc1dialVxclZPYlJPNCtIWEx1NThka1o2RGwyMDYwZkRYOFJm?=
 =?utf-8?B?RGZnMGxhbGlINjl4RmRtMmNKMlFpeGoxUS8ra0FOWlBnbGVBa2d5RThhemlV?=
 =?utf-8?B?aStKQlQ1dU9CejU1bk9ENDZXOCtRPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(14060799003)(1800799024)(36860700013)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1jtpxYQ8Ea355HVALZOnxXfvfyNrnr6hdWwqtUP23fQ/AyTBVYVfU86sfcaEyspiYk1CufLyCciJSsIyFeQ9uWDlX9xOmo3TC2AlhJPhymc2tdIyQTfhFxxwdxHk8H9+3oG/YVVqB71hkL0QgGlL2LMf9wuacgubO2RmwIm3PEV1Zj9euvkAIt2XC3595p8MT7KqH/umsmYEgbA+lM4ECNXjd9q5lIKDR1moSAHUI1vKxbUGHpO2syYiOrdBuKjAuFUlhCaktY6dt9Xv65fBDgXWlQtIzo33P2c3CQe2rtnuWMdUDpMKeRIe/eiQzhctRrtNsbi6WMFlulH4CHP/mfbq+64FwEZHIOo1DpNEq9IfutYB2SyzjI5x//8L1MOT2tAo/eWXnf1h2TBWl82VyrafEKWFzEv7Lj5mrArGXqmocfmh9DgAwO3GfDdHnIIe
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 16:20:26.3013
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f20d036f-ab32-495f-2775-08de68c04cc2
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:
	DU6PEPF0000A7DE.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8673

SGksDQoNCj4gT24gMTAgRmViIDIwMjYsIGF0IDE3OjE1LCBKYW4gQmV1bGljaCA8amJldWxpY2hA
c3VzZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMTAuMDIuMjAyNiAxNzowOSwgUm9nZXIgUGF1IE1v
bm7DqSB3cm90ZToNCj4+IE9uIFR1ZSwgRmViIDEwLCAyMDI2IGF0IDAzOjU3OjE3UE0gKzAwMDAs
IEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+Pj4gSGkgUm9nZXINCj4+PiANCj4+Pj4gT24gMTAg
RmViIDIwMjYsIGF0IDE2OjU1LCBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNv
bT4gd3JvdGU6DQo+Pj4+IA0KPj4+PiBPbiBUdWUsIEZlYiAxMCwgMjAyNiBhdCAwMzo0NDozM1BN
ICswMDAwLCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4+Pj4gSGkgUm9nZXIsDQo+Pj4+PiAN
Cj4+Pj4+PiBPbiAxMCBGZWIgMjAyNiwgYXQgMTY6MTEsIFJvZ2VyIFBhdSBNb25uZSA8cm9nZXIu
cGF1QGNpdHJpeC5jb20+IHdyb3RlOg0KPj4+Pj4+IA0KPj4+Pj4+IEdOVSBhc3NlbWJsZXIgd2ls
bCBjb25zaWRlciAnLycgYXMgdGhlIHN0YXJ0IG9mIGNvbW1lbnQgbWFya2VyIG9uIHNvbWUNCj4+
Pj4+PiBwbGF0Zm9ybXMuICBUaGlzIGlzIGluY29ycmVjdCB3aXRoIFhlbidzIHVzYWdlLCB3aGlj
aCBkb2VzIHVzZSAnLycgaW4NCj4+Pj4+PiBhc3NlbWJseSBmaWxlcyBhcyBhIG1hdGhlbWF0aWNh
bCBvcGVyYXRvci4NCj4+Pj4+PiANCj4+Pj4+PiBUaGUgYmVoYXZpb3Igb2YgdGhlIGFzc2VtYmxl
ciBjYW4gYmUgYWx0ZXJlZCBieSBwYXNzaW5nIHRoZSAtLWRpdmlkZQ0KPj4+Pj4+IG9wdGlvbjsg
dW5jb25kaXRpb25hbGx5IHBhc3MgdGhpcyBvcHRpb24gd2hlbiBhdmFpbGFibGUgdG8gZm9yY2Ug
dGhlDQo+Pj4+Pj4gZXhwZWN0ZWQgYmVoYXZpb3IuDQo+Pj4+PiANCj4+Pj4+IFRoaXMgaXMgc29s
dmluZyB0aGUgaXNzdWUgYW5kIEkgY2FuIGJ1aWxkIGZvciBhcm0gd2l0aCB3aGF0IGFuZCBmdXJ0
aGVyDQo+Pj4+PiBmb3IgeDg2IG9uIG1hYyBvcyBidXQgaXQgZmFpbHMgb24gY2hlY2stZW5kYnIu
c2g6DQo+Pj4+PiANCj4+Pj4+IC9iaW4vc2ggLi4vdG9vbHMvY2hlY2stZW5kYnIuc2ggeGVuLXN5
bXMNCj4+Pj4+IHN0YXQ6IGlsbGVnYWwgb3B0aW9uIC0tIGMNCj4+Pj4gDQo+Pj4+IFllYWgsIEkg
a25vdy4gIEkndmUgZml4ZWQgdGhlIHN0YXQgaXNzdWUsIGJ1dCB0aGVyZSdzIGEgZnVydGhlciBv
bmUNCj4+Pj4gYWJvdXQgYW4gaWxsZWdhbCBiaXQgc2VxdWVuY2UgaW4gZ3JlcC4gIEknbSBsb29r
aW5nIGludG8gdGhhdC4NCj4+PiANCj4+PiBMQ19BTEw9QyBncmVwIGlzIGZpeGluZyB0aGF0IG9u
ZSBvbiBteSBzaWRlDQo+PiANCj4+IEkgaGF2ZW4ndCB0ZXN0ZWQgdGhhdCBvbmUgeWV0LCBidXQg
eWVzLCBtaWdodCBiZSBhIHdheSB0byBzb2x2ZS4NCj4+IFdvdWxkIHlvdSBsaWtlIHRvIHNlbmQg
dGhlIGZpeCBmb3IgZ3JlcD8NCj4+IA0KPj4+IHdpdGggdGhhdCBhbmQgc3RhdCAtYyByZXBsYWNl
ZCB3aXRoIHdjIC1jIDwgeHggSSBjYW4gZnVsbHkgY29tcGlsZSB4ODYgb24gTWFjIG9zLg0KPj4g
DQo+PiBZZWFoLCB0aGUgcHJvYmxlbSB3aXRoIHVzaW5nIHdjIGlzIHRoYXQgeW91IGhhdmUgdG8g
cmVhZCB0aGUgZmlsZS4gIEkNCj4+IHByZWZlciAkKCgkKGR1IDxmaWxlPiB8Y3V0IC13IC1mMSkg
PDwgOSkpIGJlY2F1c2UgdGhhdCBhdm9pZHMgcmVhZGluZw0KPj4gdGhlIGFjdHVhbCBkYXRhIHRv
IGNvdW50Lg0KPiANCj4gQnV0IHNoaWZ0aW5nIGJ5IGhhcmRjb2RlZCA5IGRvZXNuJ3QgbG9vayB2
ZXJ5IHBvcnRhYmxlLiBUaGUgc2l6ZSBub3QgYmVpbmcNCj4gZXhhY3QgbWF5IGJlIG9rYXkgZm9y
IHRoZSBwdXJwb3NlcyBoZXJlLCBidXQgd291bGRuJ3QgaXQgdGhlbiBiZSBiZXR0ZXIgdG8NCj4g
dXNlIChzdGFuZGFyZGl6ZWQpIGxzIG91dHB1dD8NCg0KU3VnZ2VzdGluZyB0aGlzOg0Kd2MgLWMg
PCAiJFRFWFRfQklOIg0KDQpCZXJ0cmFuZA0KDQo=


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:21:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:21:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226641.1533150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqUR-0005kb-OK; Tue, 10 Feb 2026 16:21:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226641.1533150; Tue, 10 Feb 2026 16:21:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqUR-0005kU-J7; Tue, 10 Feb 2026 16:21:27 +0000
Received: by outflank-mailman (input) for mailman id 1226641;
 Tue, 10 Feb 2026 16:21: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=tYRw=AO=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpqUQ-0005kK-9X
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:21:26 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 88372a08-069c-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:21:21 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB6509.namprd03.prod.outlook.com (2603:10b6:510:b5::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.8; Tue, 10 Feb
 2026 16:21:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 16:21:17 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88372a08-069c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YRLQczpMOnOxj56Ap+loJbHD63oD4WLUgSBFQWURmDaO81S9P2nlWi/W5pDrbiO2iSDrBEFlVgl6w2DSnU/sImji/6efDloQaubMqroh4YCIUvv/gtEqQupEp1YwssxsKa70UKUDAKp8i0Y3ue10N7rJrMGnsb4uTlAvPgYDbg450IKPREtaZFS7QMZT3b+UtS21ezOljhQcnN+nViRIaY+GmQHeplzCbEWHTZoGLwo/REPL1TXBrBw/xkwWDlVXAPf+5qQHmc7M5urFnNGLGZKsyK7QBKj1JWjzaOiebqhz0KoYvL8JRinJk3NtfmRuu3OIm8ILTMpi+COF+OASLA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QIh6qFKQWXJZtftb2PcCVf8CVwO630hgrWNeo3m09Y8=;
 b=DZIfg9H8c9x1nLWLoWmHJHOk2KTbt5OYZcDnpACI3tHFo+Y1yL19VcKab1bq5jlWsRBItj4W/VKqUNlQWT6MHh/AM+806vxKYdKYK9O7ga60Be7tBnIQAXGN1ZSfr6BUu2t0u3bgvq1rtyvW4nn87GKsDjRypdpJxHTSV+Y4MqP3RH/7/rEBNqSwUMJzUGHJ2clJZ2X/t2MWTPvs8z+MlBSLAln1aZOfjyJH0wdaugR+mf+zxw0barqwyhQBMwJSrPa1TmS5K/VslPrlCI7SeWylcUerNKfPgLhThcxmmtJB3N3Urn1auzHOj0EfSA2tkJEdUypfRdZVj6bJKH2nmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QIh6qFKQWXJZtftb2PcCVf8CVwO630hgrWNeo3m09Y8=;
 b=m2mat6qJwKnrqwEiV5tqP27IEYmJYox8kz78u1Ka6OvfcpmQ8oamKK8lFTFO9nmpjsyNwWUf014Ir9lF3hq6RhsQp+HAWZV9/7VVQ1C/J13G9+uaSfjbUpgzgMPOSh0JxdMj1VHH61ZIF3LfEA/T8sMXM5lG3Vi7SJbNSbxAYmA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6a675aa8-ad41-4b09-b38e-562c5866149f@citrix.com>
Date: Tue, 10 Feb 2026 16:21:13 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH v3 07/22] x86/traps: Alter switch_stack_and_jump() for
 FRED mode
To: Jan Beulich <jbeulich@suse.com>
References: <20251003225334.2123667-1-andrew.cooper3@citrix.com>
 <20251003225334.2123667-8-andrew.cooper3@citrix.com>
 <e314d193-79f2-4d77-a2ed-1590375b4b96@suse.com>
 <6786174e-e00e-46fd-8b82-7eb823ad96a8@citrix.com>
 <82adaa8a-b7d9-40fa-b59b-0851776fb59b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <82adaa8a-b7d9-40fa-b59b-0851776fb59b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0001.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:a6::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB6509:EE_
X-MS-Office365-Filtering-Correlation-Id: c15d1fc6-78fa-40cc-0d38-08de68c06acc
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|366016|1800799024|7142099003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RGwrVmVwdXYydU5sZ1JzNTBxZjhjVTJVVFR0OWJuL2NlMXE0aUdKZW5kVzhO?=
 =?utf-8?B?UjhEb0UrUUtHN0xIY1dtYmtVNmZHeFlzMTZUT0hPVE1hdVNHMjlsZjdQQnBF?=
 =?utf-8?B?eDcwOWYwdzV2T0hSbFl1SFlLMDFqb1dpYitUTnQ3MEdKb3F0R29yblRhdVds?=
 =?utf-8?B?RU0vU3lSSnM4Z1pXMHA4SllWSVprY3YzYTczT0tzUkp0VlNrQStNNE9qalVa?=
 =?utf-8?B?aTBpc2hkanA5SitFRjIxa3lFUTZjOVBQbHA3Zi9VRDhTMEkxR0pBZUNJbVA1?=
 =?utf-8?B?enFsT2xNZzhZbEJReXFvTWNTanE0blB3d05pSGRkWnJNL0VDbXNFaFNpeU52?=
 =?utf-8?B?WUE5amxNS2hTRkVJSm1mRW96UlcrSWpRdFZoRHlqa0xhQmpwR2VrOFMvbVpQ?=
 =?utf-8?B?NW9TQkVqaTRJY2JaRE9TNGxFVVQwU2F3ekhpc3JHZStnTXVGQ0VzbEV2VlBH?=
 =?utf-8?B?YmxXdDMrZVYzUDNUUkJkTC9lM2V2M1BLZGI1TEhHUGtZTTRaalllK1FvUWtM?=
 =?utf-8?B?ampGMHNaMGl4cmttdHBMZVM2TTNDWFZ1V3JBbGVxL0xxMjFhVXlXTTVwUlMr?=
 =?utf-8?B?eW02b3owNkI5eGhWWm0ySjM5UjZIaDJBZUkrTG40ZzFLcW83a1JYNDZLWVNX?=
 =?utf-8?B?MWtCQ1JBT21QMTg4V2xUdHZySFVhR3lOUkpjejVxcVhqdkpGNjFMcUpCbVBo?=
 =?utf-8?B?SkxtdTBDYnNyb09MZHZvcllYYVhUdnU2d0tLaDBWdGVUNjU0OS9YUnhFVnRk?=
 =?utf-8?B?RXRuaWk5Nnp6ampKcTQwdXhRR09pcXAwR2UzaEtxL3l4OVdycnZ0SlZFT3pV?=
 =?utf-8?B?a2lJdUlJZnpqakpWMGNaWTBZZnR2WmE1dk43U1dFQ3J5VVRTcUw0K296MFRt?=
 =?utf-8?B?ZXhuelFrNWowY1FDcTQ1Mmc0UTNKNEppS1JNZUtyWUNYS1F0OTFkTUZWQW5K?=
 =?utf-8?B?S2FNTkRxME1tQ29selhNMWVreU5mVFBxQnZYOHRLRXBEZldaSnB0WGRpOG52?=
 =?utf-8?B?YWMwb1dSdW5tNTdhREtPQ0p1S3NQV2xuMVBBZDhyVDJrMHh4ZjV5TTVseXR5?=
 =?utf-8?B?b0pBekEwdGg3M3BGbldqdG1XYjFSSXB3QUl1OHl1d3JDaVdhb0ZPa1p3Y1pB?=
 =?utf-8?B?eHk5WEppb2lzbGVFeHU1L21sR1JFVzRva3poSTJUd3pSMVJ4MFBuOXpOcklF?=
 =?utf-8?B?U01WV0ExTkFBTmFpVmVmU1Vaa3dMK1M5K3JYZU9pQTk2MWR0TTIyckVrWDN2?=
 =?utf-8?B?V0tTenU0TE9FSWVvQ2lPaDBrQWZsRFdNWVhFTFVyMEdtZzBWN2NyK1NwU2Q0?=
 =?utf-8?B?bnFaUzB3MytEcjM2dkw4YktkZjVNUUdQVEtBcUIzY01kV2VYTnpaQm9sNTJK?=
 =?utf-8?B?UXBWRXpDRFREUG9IV1k1THRaL2dEbCtIS1MzdkhhRjBYQWpJT1RzS2FYZit3?=
 =?utf-8?B?UHBadnFDdlVDVUk1TUpDdlYrTHI4d0dSODBmNW9hWnZGNWdtc2h3VUxya0Vk?=
 =?utf-8?B?TWJQemVlODFWdmc5QUF0RmRKWUFkZWhoa3pHWGsyZURMcWU3cGRIbDVQdWRB?=
 =?utf-8?B?bDIyd1dSUTFsNTFzdUE3K25CZm01UkR6eFhvdjFWQjlKNGFodTNZbjNRcDk5?=
 =?utf-8?B?RUpYbmhlVTNnZ3VoR2JEZXZhM3h1cE8zRDIvV3E5b2xBbXF1MGcyaWw0ZkFZ?=
 =?utf-8?B?WldqbEFad1VLTEF0N2tyOUlSWDZ6aUJ0N2QzT1cwS2laS1lCZ3VXTGJCYUN0?=
 =?utf-8?B?cjF3RzlLZ3AyMStseHplK0R5cERHLzhNRlIwMjlTOFlZdTRVN3RGditLRXFx?=
 =?utf-8?B?alpSTjV1QSt6ai9OVEYwa1duMmZ2VmMycUNUb1NobERSS0xZS3JRTDlWUDFa?=
 =?utf-8?B?dWwrL3pzR2RqTkdOY1ZpQzM2TEV3SXRsRVNTQlhLbnBVR3pvNlNReVIxdENX?=
 =?utf-8?B?NHpoVXUxRUlUVWdYUnBIbDN2aU9YY2l4VkkwSHpZSE5PUzVmK2dBak1mZWlD?=
 =?utf-8?B?N3phaFQ4UkgreVkrVjYzczBGM0NWL2JXTWUxa1FpSmk2RGFGOVBNV1RTOEdC?=
 =?utf-8?B?cGhnbTViTjRnWFAxYXNxanZPRmlWR1JKN1RoNlduSThYMEtUbzFSVGpOb0pn?=
 =?utf-8?Q?2JXg=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7142099003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RFJzTDB2L1FGc2RwQlBmb2JZK1hRdVF0OUkreHhYRk5YREdJZUg0dC9VNGRP?=
 =?utf-8?B?bTBpU0ZHM0JvbDloUG9VWHUwMzhJSm9RNko4V3RFQmRGOGRGK0sreDk1NjRN?=
 =?utf-8?B?WEIxZFlXMStrbEtPdFFNcEtJRFpDZStsRmpxQWtPUkw0WUJRazdqdEJGeERu?=
 =?utf-8?B?aWFFSHVvRElUbjBQdEw0d21CK0pFOUY2aEUvMHduMk5jNk1WeFhzVXFWVkVy?=
 =?utf-8?B?cEhiTGRCZ3hrWXdROGtGdXp4TlM5cHJEaVZxaFN6Zk8rRmVKc1k4Mktkckkr?=
 =?utf-8?B?MmVvZVN5QjR3cFdSZWRMOWszY0h3WHdWMVVkRjdTMmlIR0huUDVvS3NtWlJ6?=
 =?utf-8?B?eVgvQ21NWE5lKzYxL2RMREczMmZNdDM4T0dFTU13eUp0cWRuLzhITHFrZy8z?=
 =?utf-8?B?ZStrQnkwT290K2tIc2xtb3A2MW4xekNVRGkvdlZHNko4SGNtU3IvNHZEYXJ1?=
 =?utf-8?B?MElhc3Q5Mkp4dHdGTTRmRkpTTWszcUIzQ1NzdjNpbml3Y21LT004T3hCN2Vk?=
 =?utf-8?B?eUowcFRpSU1NRktMUkhQem9xazk5NlN3bVBaWjFQUnlxd0o4TVM0dzhrWVl0?=
 =?utf-8?B?Qi9INzg1MElTR3l4aFZjSWJqRXJ1bUlrdVF5VENPSi9WN3YyNitEUHpsSEpJ?=
 =?utf-8?B?a2phVFAwSGliVFZoL2wrdVNFU1ByUVBDcUVWb3IzT0JFaG9CSHNIbFkxRHd0?=
 =?utf-8?B?bGZ6aEgwRVF5MnRHNldUSjdXTldtd2xjY09mUHJsNTdCb2J2NCtPSFNiT1Va?=
 =?utf-8?B?RXdCZ0hiMkU4aVFTTEpwSS9pV1dmNUlTZnk2c3pYSHM2czV5c1Z3WUd1NlV3?=
 =?utf-8?B?dm9ydHJGb1VTcWN6cDhnZjJBbVV2Szk0a0FqSzcxTjJnNE9Jaldjd0x3V0sy?=
 =?utf-8?B?M3Vyb3lDVnV3UnlQWnVEVnVhN095U21zOFc2ejNYblRKKzlwNC9kZEtBbnhh?=
 =?utf-8?B?cDlWcFR3dTZsYVlYdXhaaGVWcVZPeWFoZXBzNWV2Uk45V0FWNllUbDZPVVdx?=
 =?utf-8?B?SGtkN1pZdWZnWmdGaEdyTWp0NVpZYmx0WW5SMTdRTmM5THlNOU5sdEdZZUY0?=
 =?utf-8?B?SXQ4SGlDT0NHQmhFaGxIS3BmREdFMUJBVDBQaFg5b0dTYkhpY3JuUUs4N1ky?=
 =?utf-8?B?alFxWXEwaVIxby8xOWM3S0NRN083eFJqaUppWDJPdnFmNjQyUTBsdnUyVllK?=
 =?utf-8?B?eXJ2Zit3Rzd6anR2R2RoVURBU0JYeE93Q3gvQjY1WGNpZG1tVTJmcEJqN2xG?=
 =?utf-8?B?T1lJQ3ppOFUzczJEZ1VVRG8rZy9YRzlpajc2Q1I0aTczY3MybzVrYnBkU21n?=
 =?utf-8?B?TzIzcFFhM0dIY1IzeDdJTEJJQ2R1TzVUSVRJQUs4bGtocnFBWmp4VERCUlRw?=
 =?utf-8?B?WlF0WGRuZ20ya1hVb1lQZ0ZJc0o1ZGNudmxUMkVmdXhPcnJnWWcyYlFVKzM0?=
 =?utf-8?B?U1VuR01nVWIvbUZMQTVtdXNWTU5HcTYwRmJadmV2b0hoNXJaV1hlaTErWG5s?=
 =?utf-8?B?SjJEclRhZlNaY3Jmb1RvRHhpTEJBRm9ld01BOWNKSTI3R0FocFNwWUxkN3VZ?=
 =?utf-8?B?aUVkbk9id3lQYjRwdVBlOFMyWFJUSTUydTU2TkR2alhIWWpRaUcxeU9wSXhO?=
 =?utf-8?B?c2FMeDhXUXFiY2NFWm1wTUh1NCt0WVFIazFvRU9keEpnNlJ2VWlWRkgraUdr?=
 =?utf-8?B?OEpVNmNXelJCZExPVUZsTTVOWU1DcTBMUitNRmxnaGg1VlBKQTRLOWg1MlZY?=
 =?utf-8?B?eFpvblhUNFRjTk1zWDRPZ0tURzUxS0pxbDRNWFkySWhpUHhuaVlEZ1VacVU2?=
 =?utf-8?B?ay9XSDRldS8wNS93Y090a0xwRUt4MUQ4WURSRHprVzJJSThTZnd5bGJ0eXlE?=
 =?utf-8?B?aTg3cU9pOGg2aU1ndEZlMXQ0aE9remE0Z21OcWJ5WXRBWks2U0pKZkl6MEdG?=
 =?utf-8?B?VGVQT1FiZkJNdWVhd2dVT0JrRXVPZnNBWFc1d2xPcnNqZllzUTlmak5Zdjhz?=
 =?utf-8?B?V0F0ejVuOUVDVjFOczA2QmNUVXk2MERNSzBBa0daWkR2NGNsNCtrMFREMTZW?=
 =?utf-8?B?VmZKT1hjTHJoblQrY3lFbFQrS2w0aXRKemxuOGcvMnpHSkdNNkZycEViQ09S?=
 =?utf-8?B?Tkw1eHlkbjFNTE1XYW93Nm04cGIyVGUyUkNuVDdsN2tZQmpXemE1bkpOdklS?=
 =?utf-8?B?aE92cVZlaWVkUXBZajBMOGVqZHBNaG9MeXpZMU4xbmpqRmtrL3oxUWQyMysx?=
 =?utf-8?B?azZ6U3liMFlkcGdLYjRNZDRZKzFrQ1dDMDIrYjR2T2tOMFpQdTVXRG9pUjYr?=
 =?utf-8?B?UlhWSzdJUG15SzUvbjBMVm1WSi9La1hTMVd5aGM0K3FTSXhOOXlWdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c15d1fc6-78fa-40cc-0d38-08de68c06acc
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 16:21:16.9548
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Fdnx1ZXhmdROHStPrkBr+wFV/MFgTdgWJ/3O+9T/kufovp5X/JEGuSogwb0GfyjwYr/HGPx22FA4r3eKTMqV6RBthUYykqPQZl7/ApPkSOM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6509

On 10/02/2026 11:55 am, Jan Beulich wrote:
> On 10.02.2026 12:15, Andrew Cooper wrote:
>> On 07/10/2025 4:58 pm, Jan Beulich wrote:
>>> On 04.10.2025 00:53, 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.
>>>>
>>>> Fix a typo in the parameter name, which should be shstk_base.
>>>>
>>>> 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>
>>>>
>>>> Leave as $%c.  Otherwise it doesn't assemble correctly presented with $$24568
>>>> to parse as an instruction immediate.
>>> I don't follow. Where would the 2nd $ come from if you write ...
>>>
>>>> --- 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[shstk_base], %[val];",                 \
>>>> +                "mov $%c[shstk_base] + 8, %[val];",             \
>>>> +                X86_FEATURE_XEN_FRED)                           \
>>>     ALTERNATIVE("mov %[shstk_base], %[val];",                   \
>>>                 "mov %[shstk_base] + 8, %[val];",               \
>>>                 X86_FEATURE_XEN_FRED)                           \
>> I find this feedback completely uncharacteristic.  You always goes out
>> of your way to hide % inside macros to prohibit non-register operands.
>>
>> This is exactly the same, except to force an immediate operand, so the
>> length of the two instructions is the same.
> Thinking about it more, are you perhaps referring to assembler macros?
> There indeed I prefer to have the % inside the macros; the same may go
> for $ there, but I don't think we had the need so far. For inline
> assembly the situation is different: The compiler emits the % (and also
> the $), unless special modifiers are used. It wouldn't even occur to me
> to ask that we use %%%V[val] for a register operand. That really is the
> register equivalent of the $%c[val] that you use above.

We can't use %V anyway because it's not available in our toolchain baseline.

But, bottom line.  How insistent are you going to be here, because this
is the only thing holding up committing 6 patches.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:21:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:21:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226645.1533159 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqUo-0006AR-3A; Tue, 10 Feb 2026 16:21:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226645.1533159; Tue, 10 Feb 2026 16: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 1vpqUn-0006AK-W8; Tue, 10 Feb 2026 16:21:49 +0000
Received: by outflank-mailman (input) for mailman id 1226645;
 Tue, 10 Feb 2026 16:21: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=1KCy=AO=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vpqUm-00069o-QQ
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:21:48 +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 98ba3cb9-069c-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 17:21:47 +0100 (CET)
Received: from DUZP191CA0049.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4fa::24)
 by VI1PR08MB5501.eurprd08.prod.outlook.com (2603:10a6:803:138::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb
 2026 16:21:39 +0000
Received: from DB1PEPF00050A00.eurprd03.prod.outlook.com
 (2603:10a6:10:4fa:cafe::d9) by DUZP191CA0049.outlook.office365.com
 (2603:10a6:10:4fa::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 16:21:38 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF00050A00.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Tue, 10 Feb 2026 16:21:39 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by GV1PR08MB10402.eurprd08.prod.outlook.com (2603:10a6:150:15d::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Tue, 10 Feb
 2026 16:20:32 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Tue, 10 Feb 2026
 16:20: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: 98ba3cb9-069c-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=y0WLSR6trpH6mQj+hYCCYmfTyIZi5eOdmT65qzpiXVstDriuqH6Mo83tqWatUFGEQMDcahdV2TOgLXjIxx18kXvlSv8BEmuqcM/SuOgl8bxPuEtORnTWKmQnQhc3QIzhHyswzrbIOXnvcg5nRLTVAdB3o8NpNnO5kHrRxAI9AVvN3YhpjiHtIbuTPTpaMaF0kNMPmjXiR+wRt6oApYVjcjCtXiYydx+zIuXCb4hYQCw8bsdBIS1X7ZQgSqyDXSkxZm27k0iOpbxx/1VpT/Kn73bCZUiE8+5xJNf35XYCzPtU/Jvqz/Blcom91jm9VGv6fNZZA9xkWXvhQoUidrEODg==
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=AMdoimyC4nMbT+zUkxxxLe5Fsxq9SjQQ8ubcb2Hmxsk=;
 b=VRBoea16/JB9rIj6fpi6c9/oTu1oMLtXyG/FnuylmZFyQ/QE47fWoUvllwwq35rwuGepaPxSj8+TC+V2PZv3xWasAD3rVyp88Rp79c4LXuCNwYgKLNUq6jb9AisXyW+M86e8WcXiXDOpuhtirTfPN756RaWk76+g7OnBxTmHxinsxvsXCXnsFtcYPb5m3fnhjYu4hS77ckR9qtXimfhVZmx4kh8w9/8YqicHFRj9HUPG2YgU3RVd7QbkYfXsT01veRuOc+6ZFeWNc6BcOVTwIIlzJ0X83fbSfq4AZrhmQV2a4m+VAEZt8XZFwProwUpsdbzc3K+49uqQJ8H3M8J2Pw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AMdoimyC4nMbT+zUkxxxLe5Fsxq9SjQQ8ubcb2Hmxsk=;
 b=AemnQ8R06aSToAR//EZQz8Oise6QkIuCzD7KTmABRy7GWwIAegXYCPMaoqTI72tWlU1tY52/OjPgU0XJD5GTBilSBMSINmmbe2xKSo9CSJLU8uSUFA0M4okRjx1IpTWwrKltpCaXWkLyi8E8s3ETJb0wPlME9YZct/jMqGwkYag=
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=OIiMSrMl+3UqEHZ8Y2YL/N4i/AWeiS8rAUUwqXyNo7EJdioPOwDA3m1L3FOZNuaiIKl/fcUo1apBL68nCbzIc0QxyL2dKBYmIt8mLTinXK0wqu1AiVXUtl92PiXECRl8b9cPTgL/+Kw4dYsHVXiqVyYr7V6ztzWVM+p3VjEY1Vs8DXzvkGqzQQV77imV///8aEFQbDH1NZCCX/IwuvUiZHIemRnEF5Y8E64WfBiQPhdqhTOQS3owcAwC34O6HuK54H/vbHD7HJA2Jrm43DVqTL4WIYs+dUMzq3hwFw2W8KZbWg8cEJde5FEqhEJvniNJ7wz0aJIAJZ0AcryBaAiKig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AMdoimyC4nMbT+zUkxxxLe5Fsxq9SjQQ8ubcb2Hmxsk=;
 b=kXZXvvWGuUqC4qOmuUokXrcD54yY6LNSPDTUNAeVqy7Rr04uuJYnP0Rs41vG9t22KuOAS3T0x53dW2bh2bqcF3iRBEH5xdwn1RV52ZJCORE6SqfR0C6M9EOHm+inVv645Nmmpo8bqfL30UWK44ygAPkmZ0AQjDlq2AwvYemyJRsH5KQHwWj/Xd0OsRD6SDWvPNGiArejx1lCwAxp8DjA+I2Mv78GF+Z7LcxpNkos01NvDyVCJsi6IYX4p4GvrDqcS2SCGDH6bFMLLIveyWREgR2+YwNYbh+ex4Wc1Cu7K4J0TnYtUJwCBdlFIJgMAKMSMf+2Eu/TQj9yWab1ghVj4g==
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=AMdoimyC4nMbT+zUkxxxLe5Fsxq9SjQQ8ubcb2Hmxsk=;
 b=AemnQ8R06aSToAR//EZQz8Oise6QkIuCzD7KTmABRy7GWwIAegXYCPMaoqTI72tWlU1tY52/OjPgU0XJD5GTBilSBMSINmmbe2xKSo9CSJLU8uSUFA0M4okRjx1IpTWwrKltpCaXWkLyi8E8s3ETJb0wPlME9YZct/jMqGwkYag=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
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>
Subject: Re: [PATCH] xen: always consider '/' as a division in assembly
Thread-Topic: [PATCH] xen: always consider '/' as a division in assembly
Thread-Index: AQHcmp+J15vvFrxtUEGxE7lRiZXN1rV8EwEAgAADNACAAABcgIAAA2IAgAADHQA=
Date: Tue, 10 Feb 2026 16:20:32 +0000
Message-ID: <5A9C90C3-47B2-424E-A2CE-3B010DC5D8DB@arm.com>
References: <20260210151110.26770-1-roger.pau@citrix.com>
 <FE2A96EE-5D99-4CD4-82AE-7538B94DBB0F@arm.com> <aYtVBuHVcfZE-L-a@Mac.lan>
 <1115BE16-FE3E-4F9D-BB32-77064580D5E3@arm.com> <aYtYKlcoVAFvn8jh@Mac.lan>
In-Reply-To: <aYtYKlcoVAFvn8jh@Mac.lan>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|GV1PR08MB10402:EE_|DB1PEPF00050A00:EE_|VI1PR08MB5501:EE_
X-MS-Office365-Filtering-Correlation-Id: 450868ff-1c91-4535-9afd-08de68c0783a
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?WFpuWWcwNWxvanpibEZOeXg0dnQvcWRqcUdMdjBLcm1KbWErRjZvbEFlTG1a?=
 =?utf-8?B?ZzBMcGp0NWV3KzVPSGlpYlkwYmlud003eFd5dkV4eGFKeHFheFlhQyt5WndQ?=
 =?utf-8?B?ZnZkMHRiRHVBY3RaNnF6R2lHODhDaE5LMGdtOGZwMWc5RThycmdybEkrNGpK?=
 =?utf-8?B?M2o5eWFMazc5cFBFUStsUllPb1NjZEV2dVVQM0EvVEV4ay9zemVYbjJmaWN0?=
 =?utf-8?B?dTliOWZEbGJGZWlZdVIwSWNhNEJlS3NldHVoNzl3RjJRUC9ray9PTSs5S0dJ?=
 =?utf-8?B?Qm9NQ0V1am9UaGh3ZzEwMjllSHRWYllhd1hqWk5NTmQ0OTZaZ0tvVkdIblRz?=
 =?utf-8?B?blZsSm5qMWsrc3RyM1VxYUtIQU5iYVpraTFBRlJWZTVZSlc3c01wNUVORjJJ?=
 =?utf-8?B?ZGZXNnU1a0d0ZWFhMk5UbW5Cdm0vMm1MNm90SVRqeEpIM01kU2srK3ZKU2lj?=
 =?utf-8?B?dXozc05FQ0hVYXlrd29VNnl4QloxQjlrcEwzQWt0dytKYW41aTZhbWdneTRV?=
 =?utf-8?B?L0VGZWoxbmlYeC9QSGFJZGFoTFgxTkczYjk1M3BtYWJ1K3JCQUZwaHpHWnR0?=
 =?utf-8?B?Q1RzZ25TQ3pWSEhNVVVyVTI3Z2tJS1VnK0l0SC9mZFo4KzRQTGJpNVlyUGZP?=
 =?utf-8?B?UjVpcmswaDZ1TktnQUpZdUFiOGswOXIzeXY5d1gxSEp3T2Z1d2VHNE55bE9I?=
 =?utf-8?B?ZXRsQklqVWJnZmg0RDhZc1JBNkVrdnJRNHRzcmZKRnh1YmdwRmtrSTZ4UGdF?=
 =?utf-8?B?T0VpRHBBeTAxdSsvZjVTNmlCWFJUbktJQmY5V2NyUEJzTDZ2eUJuSEZiU1Rq?=
 =?utf-8?B?eDJSUFFtSHlWNlVzTjMyUW5JYmpkV1pGdTdpVnNJc3RINUFray94MW8wWlZ4?=
 =?utf-8?B?L01jQzM0S0diaXUvaEF5RHBiUHJaOC95NHhjS2ZVa2lKbXNveG93N3dkZk9q?=
 =?utf-8?B?SSsxVWJOQzduTFR5SWgzSEtwYTlDaEVvTTVLQXMyeFNVUXdsRTBDa1NpMjhv?=
 =?utf-8?B?QkFlSW9EWkFGNUkvelBuZVRocHh6eVR0bW5ReG5PelRUQ2h1cnZVbnNIUzFN?=
 =?utf-8?B?dmNleWRQTjlIOVRrVk1XSEp4QjY2S1B1WSt0YUg2R25EWXhUYXhYeDNOVlE4?=
 =?utf-8?B?T3FTYzNFY2lXWnYyMVh0Qk5qSDhyQ0p3ODIwM2JYbnNQekxrRGZFcytxQU00?=
 =?utf-8?B?QSszTnhyWm4vUW4ySEV0K3JJekJGTWxPM1ZXYlBoV2xnVFRUWVJORjJCYUpy?=
 =?utf-8?B?dGVqdndzaWY1MjlHdkwwQjF6N0xiYzFPOWkramVtaFdVU2xyMSs5TCtyMTk1?=
 =?utf-8?B?bmt2ZWpRcXFEQ1paZGlSK3JKQXNIeGlJTVVuU3VkNHAzMnhsbWs1VWhFVVpU?=
 =?utf-8?B?dnQ2cHZvbUlGaDA5cG1LaXJ4a3dkU25meWljU2dWMWhETW1xWEpGeXpaaXhI?=
 =?utf-8?B?V3Nhb05oYXVPZURnU0tzdEU1dno1eGZmSFA0U3pqRjFvRXhYZFE3K21XVitO?=
 =?utf-8?B?Y1FWNmpKZU4yVzVWUnNrY25GR2gydnVTQzcvcnRpNTJLS0p5eEpXaXoxWngr?=
 =?utf-8?B?WS82dFVOUVV2NGwxNEdsVHV1U0Z5U3hreDNPTXFGNWJuaVRWL3JHODBhWXNq?=
 =?utf-8?B?eHlka1hYZlJxQURlWDdBWEhuQkR4b2ZGdUl6QzZLTGpYL3JTRWkydU9FcGUz?=
 =?utf-8?B?TEhpVzVsanQwNElhOGZOSGxxS2tqZWFYcTgrZmcrajRyeXZaelM1YmREajVp?=
 =?utf-8?B?OWc0bTR5NjdnTXNQV1p6Qlk2MFF2NWpydUVNejlFa3UrR3ZkOHdBdWlVOFpI?=
 =?utf-8?B?bCsyOVEwNHdsS01JS2hEeUtlWURzUWJyc2xvZWZjU1dZci9tNnkrclNtYzQ3?=
 =?utf-8?B?NlYwU1JWcWN1b2pzOFJiajBCcUlyWVpIaXV5MUtSWFpWTTRESi83SFBmQkwy?=
 =?utf-8?B?Vmt4OU5wN1JhaTFGSGtLbnBOU3dRM0xKdFZzeFlDSGF2Rm9uNDlXQ0FxZ2RP?=
 =?utf-8?B?ang3YWZuTTlqZDVNdlZTcEk5TFFGcCtENisxcmt2TjV0ZFZNM1RGL2hVZjdo?=
 =?utf-8?B?RlFpdlBQcWtSbnRmVi9JWkIyYmRtdzMxS2x1Tnc5WlRLRGFaTW9VbTgxcHI0?=
 =?utf-8?B?eEcwRllMTzB1b3VlTzR1MUp2RCtJN3dxWncxbktpZ2grNG9pbUVwblhQSjg3?=
 =?utf-8?Q?9fTlYR+aELr4n+tlTeEcDd4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <441B117BB356254DA59F667672B890BC@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10402
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF00050A00.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	ca63bc61-2ac7-49bb-e994-08de68c05068
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|35042699022|376014|36860700013|14060799003|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MEdoczNWTjcyR3ZRS1hEckFuZllwZjJrNmtESkZFbXpqcDJ3K3VNS05aS1RE?=
 =?utf-8?B?MXVlL0dKMzhkVmV2MCs5UnRtK3lhU2pZUWZDVGMvTmhYc3Z5ZncrUkI3ckdj?=
 =?utf-8?B?VDBxWjM2NWdJU3FtU2IxcTFtZE1PeFpQTnU2cEhTSlgvT1J3Q2c2aFBobTgy?=
 =?utf-8?B?UUhsZThNdHlFVndUY0t5aTJ3dldnemxFYTZkdmZYOEIyK1NQQjZKUkthWTZz?=
 =?utf-8?B?UU0vYnJGYmVGcGliL0g2b1p0RENDazhqelBDa2lRWktJMzBZaVd1QUxwZHZO?=
 =?utf-8?B?NjUzZVNVVkdubHE3RmRuSlkyaVJ4alpSc1hDTkEzSlY3QmtDNUNxOEJuSHh3?=
 =?utf-8?B?Vm8wOTNlY1RNQWRhKzVQd2hyak9zVWpZUFU1ZmtHQ1hHZFVMU1VWTTFkVkFH?=
 =?utf-8?B?eklWTVVwN0ExU25tc3ZKbC9ISXhBUm5hWG9uaVdVWHdObHRoVFVHNkg0Z2pl?=
 =?utf-8?B?U1F5YVZaSG9QcGh6SUFzNUxiTjU5SmVpMXJQaURvTmgrTmwvaE42aVg5K05O?=
 =?utf-8?B?c1YrZXMySSt1ck1BRXVRcVFQZ0J6R0ZYZ1ZIT0xkNURodGU4NHVIVlJ6NUc5?=
 =?utf-8?B?WHkzZExTNWZtQU05Z2NXNkE5aEVkYUdOMTJqZHFFWFZ3UnROYXQvMnBsYTky?=
 =?utf-8?B?M0k4NlhmL2lHY0x5dTZHYk5hSHpmbzFOVktaM2Fod1VVZlp5cTNjKzJObU5W?=
 =?utf-8?B?c0hhUldGRlV0bmxVTmUzUnpTby9rbU83bkwzNWMxR2tuQXpRQnk4amZiTlh0?=
 =?utf-8?B?RGhvS2RMUkxDZmVKN0FDbldHTm41bklsSHA0WmpZeU45VHg4SEZkaGk1NkN5?=
 =?utf-8?B?eTIwd1lBcmV0dHRGOUhkZkptSUsxUzIxeTZhSmEwSHZ1YncwK0ZpMkF2dTBG?=
 =?utf-8?B?OEtsNklwdEk2cktNSitraFo4VlRFU3hWL240VUxGT1lQd2R6ZG5WbUFZaTR1?=
 =?utf-8?B?T1FZbnFNN0RlN1BxZmorZVpmZXZRajZpWktZbDcydjdHZzZDYTFOSDlpd2VO?=
 =?utf-8?B?dXhHRG9BQk9STU1tdVkzUldzSnp1WXhhUkZWSUIwVG9uckZiNjZ5Z2dkUnVZ?=
 =?utf-8?B?QllLNjI5RnZSSVpYVGJHTVFNV3crNnRXR0lWTVdNS2pHV3hkZ3RRV3VhR3BR?=
 =?utf-8?B?SUx3WkZIM2cwQXBsSFE3RU02RUVta2tFUjQ1cnlrWkNZSWFDajROSlc1VWpY?=
 =?utf-8?B?VlZVYmZnL2J4c1pySk1hV01LczFaeTZ5ZG8xeEJ5RmFFQWl4REZvZG9lL2p0?=
 =?utf-8?B?WkF4NVNiS0ZWbnhiLzRVYk9XWTZIczY1MkEycDcrUnd0bmlCTDFFQTBEam9U?=
 =?utf-8?B?K2pEczdGNTRGRHZHY0tTa3hKcTdHSm1DZit2NmdxblBGV2M4WDEwcXkxM0tx?=
 =?utf-8?B?aWsxZzg4cU9BcDl0eDgzd2N4enFxdkRBYlZ1Y0JrRk15Z1pxQjZEVjArclAx?=
 =?utf-8?B?Mk9lTHFYdm5pYWVYNmYrMG8wbnlFMzcvVVpZdk9MYVJpWlZLWGZVSEJiTXVG?=
 =?utf-8?B?WkQ0dUtDa3FSSmlnRnRheUFPTTZXVWg1R0JBYjVUV3BTU2x3d2czZjE2a1JH?=
 =?utf-8?B?TVNtU3plVDMrUllkTXZLcFZjQXM4N1VCSGdKdHhuS3JWRy9EVkMwNkVmSG11?=
 =?utf-8?B?UEowbW4xMW1zOVhUSTl5RFVnM0pDQUViVGxpWThOaWs5YW9ZTXNaTnB3TFNi?=
 =?utf-8?B?YVV4aU84L3NuelRGSjNISVRFUjBBL29xQlJPR2thMmw3QVJCOUV0VzNGU3Ft?=
 =?utf-8?B?ZDBraldvMWlHN0NYTXJzcVhWbDdpdTM2V2FnOEZKUDhpS2ZDWFJvUnZIY3hy?=
 =?utf-8?B?UmN4b0dvSTdyWnJFZ3daRVh1cE8yQXZSaGF4SFREdC9KemdkSlUvQnpabnBG?=
 =?utf-8?B?TWNCaGF1bVE0Sm9GbHZFY01IWnRkVVJqQU9FZHczTndKMmtmY3NabzU4NmY5?=
 =?utf-8?B?N1NkOVFXR1NVY01kcG9TaUdxSXpOT0U2RXRTeERkQWJUZGFrN2tzT0cwSU90?=
 =?utf-8?B?STgyWkc4VWtRZXQ5amdIY3F1R1UxY1d1MkVMTStnZXpsTVYxQUZQb0Vqb3I1?=
 =?utf-8?B?MVZ4YlV3enFYSWhxa1cvbXFKMTFaSVhySnNiOHZhSVdIMDBVRHY5bUVsdWVR?=
 =?utf-8?B?ZGRodXUwL0pKSzRWRUtlZzRlbVBCNjFUMk0ra0c1Z1gwd3VaYlU0WUVCT2tB?=
 =?utf-8?B?T2ltY2EzSWIxand4cTM1SnZ2NkhDL0p3TkN5Zm9WanlQY29Cb2FVMkFPVlUz?=
 =?utf-8?B?Q28vZVpIN3VOelJFNEdXWXZRcURnPT0=?=
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)(376014)(36860700013)(14060799003)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	geBby6BRLQn+rc+GLPjZSrmI7YxUCmoy/K6w96u8MfgkWbCZaAXizZ5JkqXIXqXGIQzVDGZr9lv9cJ+iXEuRS+aqqk97dKgTjc1bw73C9CXCNCjGzE68C1IN3+Bc5exleXkqsiM5VeBQq/PynCTmsjc9dKeaBc6ICgAnjsvE77Bm7tXs2bBNSkp6XAjgonhJjviHPYDyfProz94jvSj+rMFpl0KrRGSBSy5aDogAHLsH7M1ibPn/c6FkXEC5T0dalrZ2Iw262lOakyJ2mh78YdhcbESkLrHy0XEb82vT1OX97g4UojZxKJ610xqF+EMeZx+yCVqDNxVNLUaeI0Y1TLRTjlct5rxjWXz040RYaPFGpkMN1lQcJvMSSUN+VlTP9VjQuD53PUTqzULPXkWxc5V7dqhblIFu8r6DPOSSN+e4luPgJhW2nF+VZ/KuXIww
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 16:21:39.2338
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 450868ff-1c91-4535-9afd-08de68c0783a
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:
	DB1PEPF00050A00.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5501

SGkgUm9nZXIsDQoNCj4gT24gMTAgRmViIDIwMjYsIGF0IDE3OjA5LCBSb2dlciBQYXUgTW9ubsOp
IDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6DQo+IA0KPiBPbiBUdWUsIEZlYiAxMCwgMjAy
NiBhdCAwMzo1NzoxN1BNICswMDAwLCBCZXJ0cmFuZCBNYXJxdWlzIHdyb3RlOg0KPj4gSGkgUm9n
ZXINCj4+IA0KPj4+IE9uIDEwIEZlYiAyMDI2LCBhdCAxNjo1NSwgUm9nZXIgUGF1IE1vbm7DqSA8
cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOg0KPj4+IA0KPj4+IE9uIFR1ZSwgRmViIDEwLCAy
MDI2IGF0IDAzOjQ0OjMzUE0gKzAwMDAsIEJlcnRyYW5kIE1hcnF1aXMgd3JvdGU6DQo+Pj4+IEhp
IFJvZ2VyLA0KPj4+PiANCj4+Pj4+IE9uIDEwIEZlYiAyMDI2LCBhdCAxNjoxMSwgUm9nZXIgUGF1
IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+IEdOVSBh
c3NlbWJsZXIgd2lsbCBjb25zaWRlciAnLycgYXMgdGhlIHN0YXJ0IG9mIGNvbW1lbnQgbWFya2Vy
IG9uIHNvbWUNCj4+Pj4+IHBsYXRmb3Jtcy4gIFRoaXMgaXMgaW5jb3JyZWN0IHdpdGggWGVuJ3Mg
dXNhZ2UsIHdoaWNoIGRvZXMgdXNlICcvJyBpbg0KPj4+Pj4gYXNzZW1ibHkgZmlsZXMgYXMgYSBt
YXRoZW1hdGljYWwgb3BlcmF0b3IuDQo+Pj4+PiANCj4+Pj4+IFRoZSBiZWhhdmlvciBvZiB0aGUg
YXNzZW1ibGVyIGNhbiBiZSBhbHRlcmVkIGJ5IHBhc3NpbmcgdGhlIC0tZGl2aWRlDQo+Pj4+PiBv
cHRpb247IHVuY29uZGl0aW9uYWxseSBwYXNzIHRoaXMgb3B0aW9uIHdoZW4gYXZhaWxhYmxlIHRv
IGZvcmNlIHRoZQ0KPj4+Pj4gZXhwZWN0ZWQgYmVoYXZpb3IuDQo+Pj4+IA0KPj4+PiBUaGlzIGlz
IHNvbHZpbmcgdGhlIGlzc3VlIGFuZCBJIGNhbiBidWlsZCBmb3IgYXJtIHdpdGggd2hhdCBhbmQg
ZnVydGhlcg0KPj4+PiBmb3IgeDg2IG9uIG1hYyBvcyBidXQgaXQgZmFpbHMgb24gY2hlY2stZW5k
YnIuc2g6DQo+Pj4+IA0KPj4+PiAvYmluL3NoIC4uL3Rvb2xzL2NoZWNrLWVuZGJyLnNoIHhlbi1z
eW1zDQo+Pj4+IHN0YXQ6IGlsbGVnYWwgb3B0aW9uIC0tIGMNCj4+PiANCj4+PiBZZWFoLCBJIGtu
b3cuICBJJ3ZlIGZpeGVkIHRoZSBzdGF0IGlzc3VlLCBidXQgdGhlcmUncyBhIGZ1cnRoZXIgb25l
DQo+Pj4gYWJvdXQgYW4gaWxsZWdhbCBiaXQgc2VxdWVuY2UgaW4gZ3JlcC4gIEknbSBsb29raW5n
IGludG8gdGhhdC4NCj4+IA0KPj4gTENfQUxMPUMgZ3JlcCBpcyBmaXhpbmcgdGhhdCBvbmUgb24g
bXkgc2lkZQ0KPiANCj4gSSBoYXZlbid0IHRlc3RlZCB0aGF0IG9uZSB5ZXQsIGJ1dCB5ZXMsIG1p
Z2h0IGJlIGEgd2F5IHRvIHNvbHZlLg0KPiBXb3VsZCB5b3UgbGlrZSB0byBzZW5kIHRoZSBmaXgg
Zm9yIGdyZXA/DQo+IA0KPj4gd2l0aCB0aGF0IGFuZCBzdGF0IC1jIHJlcGxhY2VkIHdpdGggd2Mg
LWMgPCB4eCBJIGNhbiBmdWxseSBjb21waWxlIHg4NiBvbiBNYWMgb3MuDQo+IA0KPiBZZWFoLCB0
aGUgcHJvYmxlbSB3aXRoIHVzaW5nIHdjIGlzIHRoYXQgeW91IGhhdmUgdG8gcmVhZCB0aGUgZmls
ZS4gIEkNCj4gcHJlZmVyICQoKCQoZHUgPGZpbGU+IHxjdXQgLXcgLWYxKSA8PCA5KSkgYmVjYXVz
ZSB0aGF0IGF2b2lkcyByZWFkaW5nDQo+IHRoZSBhY3R1YWwgZGF0YSB0byBjb3VudC4NCg0KQm90
aCBmaXhlcyBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHNhbWUgcGF0Y2guDQoNCldpbGwgc3Vi
bWl0IG9uZSBvbmNlIHdlIGFncmVlIG9uIHRoZSBzb2x1dGlvbiBmb3Igc3RhdCAtYy4NCkkgc3Vn
Z2VzdGVkOg0Kd2MgLWMgPCAiJFRFWFRfQklOIg0KDQpUZWxsIG1lIGlmIHRoYXQgd29ya3MgZm9y
IHlvdS4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiBUaGFua3MsIFJvZ2VyLg0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:24:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:24:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226660.1533169 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqXo-0006tM-Hz; Tue, 10 Feb 2026 16:24:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226660.1533169; Tue, 10 Feb 2026 16:24:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqXo-0006tF-EX; Tue, 10 Feb 2026 16:24:56 +0000
Received: by outflank-mailman (input) for mailman id 1226660;
 Tue, 10 Feb 2026 16:24: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=5Z/2=AO=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vpqXn-0006t2-OR
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:24:55 +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 07e0bbe1-069d-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:24:53 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-483337aa225so13995735e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:24:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483203e37f9sm149826185e9.3.2026.02.10.08.24.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 08:24:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 07e0bbe1-069d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770740693; x=1771345493; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SaL0+o9g4/Tn85XvXalyK25IBZZ9P8myUXYH28ORna8=;
        b=RLOeO52x/DHADaNIGqq/VMkWEwS6UgfFOUu1Y/7/V3TOZGNvIiIHvI8pG1g75Faafc
         vDWh2uPb6DPhVzV4KC7SUcPJu30aZCbZDbgjz236czFMqx4wAnGrXHhyYy6osk9Vt385
         FXjNsQjq1EKsB1pDPU1QFmqugf/krzsFpomHCXpzGT9UhDuHkrC4OriA54iE91PVB8TF
         wxpOrHS8DYqd2mRaqlta40gv4gqqfPowBDmSITl0/2RXCmtF88TNAk7qv/pycCmQgTDp
         XxVf7FP7OPacE9E6S8izIkU7WreDCOSjX9ecpOh4uDRu8/cvOocOBic8ZJ9uO/nI+oPH
         MNVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770740693; x=1771345493;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SaL0+o9g4/Tn85XvXalyK25IBZZ9P8myUXYH28ORna8=;
        b=u7wQGkndVJEzkKErf7l2i8GLd10SauILqMCa8jsCQN5tiJE09hF+0gsyns7kQyXdqP
         6ci1HVVvmkSayw++86E0SBD8dVmdipIJlKSowgnMZ3YxZy33RjgTzrX0AYBVo8YR7F56
         rDfjnPgbLi9DS9R99+QuZW9JH+rujuvR4BR87KoOMMEtTz7OczB57GdDBv4snaVArNXa
         MfpcEj5+yxVWxJdakZSHj0cAYkCQNlD7f8nNKXyMlg8TR8bTNOeEwO3ASSKzBSsxW4p7
         wd4AhCrvALznYxJPLAGu9D5GyAconqHkigo/nZk090+PRtu2w9I8N19MAEmWAbGujmFF
         r+Wg==
X-Forwarded-Encrypted: i=1; AJvYcCUJnMdSz6PR+PgtuPnz4vr5ADEFzUvVc5vdoRFgZ3IXbLk5kgrou7hUXG1vnvlhtZgrlOY6tnO3jzw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwmtHbn/Ncbc16L/sZsUP0pbh/yRxMJ2hT87yxlCrV+uUOKm/h9
	C3BArVw2cLlK7exJNZMXmbps0mzL2+LJcqnT/tz+i2F+iZhn+gr3OwB1/ZjLnRK3lw==
X-Gm-Gg: AZuq6aIBaIgadm8M6ayfccTPUvkRwn/BJAuXvN1UlDL0349VJh6yV9Pb+Q+Qi/wxhDA
	JPQtH1GLbFrKyhrcGIN6uScVLWmoOzSPlY9J8ZWJAF4Q+/LJVCkK+MYNrG8OTF5KXUQ1edNHR6A
	J6vER6eMq7a3E4Eu5xpOMTM/Kiv2bj7lrTuEUlAPAGXskMgQMVHLzJbRzl79lWNv+lozOpQZNY0
	yuLi7/wgQxgG1ERpWeJ2RZXtNIP+XfGjDFQMGTE5ZmbjZtGxJpzxwpKjo0TdHK8sS6NzeDy8/61
	DU7fi4pi8i61LQJ/rIcapcTVbAW7HnmBSWyvbno7RDY2hWYpTnWGT1CHDOv1CrAb0KGXwhGW8yT
	Z2OPofNxY2s7EfuZPISvllS8omvwt0QJ5nuXJbDwFSamA9TT7t+cRan6zKiKfdZ7JzRmM2I1MUc
	GCA+0kUz2QmC4K9BhDZPNm3C2U0Hif9Qpjtu9JzNXtWr2S5VlXKXf9fItrB6kNDHcIfDMSpxsyl
	WZd1rzj3+H3Dwc=
X-Received: by 2002:a05:600c:4e8c:b0:46e:4586:57e4 with SMTP id 5b1f17b1804b1-48320212d56mr247175255e9.24.1770740693152;
        Tue, 10 Feb 2026 08:24:53 -0800 (PST)
Message-ID: <ac77999a-397a-42c4-8f45-7facbd42b8ba@suse.com>
Date: Tue, 10 Feb 2026 17:24:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 01/16] xen/riscv: implement
 arch_vcpu_{create,destroy}()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <d385b802054e0d55129da4cbba60d34b658992c2.1770650552.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: <d385b802054e0d55129da4cbba60d34b658992c2.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> Introduce architecture-specific functions to create and destroy VCPUs.
> Note that arch_vcpu_create() currently returns -EOPNOTSUPP, as the virtual
> timer and interrupt controller are not yet implemented.
> 
> Add calle-saved registers used to preserve Xen’s own execution context
> when switching between vCPU stacks.

"Add" is lacking context here: You don't add those to arch_vcpu_create(),
which is the context left from the earlier paragraph.

> It is going to be used in the following way (pseudocode):
>   context_switch(prev_vcpu, next_vcpu):
>     ...
> 
>     /* Switch from previous stack to the next stack. */
>     __context_switch(prev_vcpu, next_vcpu);
> 
>     ...
>     schedule_tail(prev_vcpu):
>         Save and restore vCPU's CSRs.
> The Xen-saved context allows __context_switch() to switch execution
> from the previous vCPU’s stack to the next vCPU’s stack and later resume
> execution on the original stack when switching back.
> 
> During vCPU creation, the Xen-saved context is going to be initialized
> with:
>   - SP pointing to the newly allocated vCPU stack
>   - RA pointing to a helper that performs final vCPU setup before
>     transferring control to the guest
> After the first execution of __context_switch(), RA naturally points to
> the instruction following the call site, and the remaining callee-saved
> registers contain the Xen register state at the time of the switch.

RA doesn't "naturally" point anywhere until you actually implement more
pieces. Please, again, can descriptions be written such that they make
sense at the point where the patch being described applies?

> --- /dev/null
> +++ b/xen/arch/riscv/domain.c
> @@ -0,0 +1,58 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/init.h>
> +#include <xen/mm.h>
> +#include <xen/sched.h>
> +#include <xen/vmap.h>
> +
> +static void continue_new_vcpu(struct vcpu *prev)
> +{
> +    BUG_ON("unimplemented\n");
> +}
> +
> +static void __init __maybe_unused build_assertions(void)
> +{
> +    /*
> +     * Enforce the requirement documented in struct cpu_info that
> +     * guest_cpu_user_regs must be the first field.
> +     */
> +    BUILD_BUG_ON(offsetof(struct cpu_info, guest_cpu_user_regs) != 0);
> +}
> +
> +int arch_vcpu_create(struct vcpu *v)
> +{
> +    int rc = 0;
> +    void *stack = vzalloc(STACK_SIZE);

Much like you use void * here, ...

> +    if ( !stack )
> +        return -ENOMEM;
> +
> +    v->arch.cpu_info = stack + STACK_SIZE - sizeof(struct cpu_info);
> +
> +    v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
> +    v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
> +
> +    /* Idle VCPUs don't need the rest of this setup */
> +    if ( is_idle_vcpu(v) )
> +        return rc;
> +
> +    /*
> +     * As the vtimer and interrupt controller (IC) are not yet implemented,
> +     * return an error.
> +     *
> +     * TODO: Drop this once the vtimer and IC are implemented.
> +     */
> +    rc = -EOPNOTSUPP;
> +    goto fail;
> +
> +    return rc;
> +
> + fail:
> +    arch_vcpu_destroy(v);
> +    return rc;
> +}
> +
> +void arch_vcpu_destroy(struct vcpu *v)
> +{
> +    vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info) - STACK_SIZE);

... you probably want to do so here as well. And btw, this can be shortened:

    vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:34:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:34:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226677.1533179 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqhP-0000Tt-Cy; Tue, 10 Feb 2026 16:34:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226677.1533179; Tue, 10 Feb 2026 16:34: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 1vpqhP-0000Tm-9z; Tue, 10 Feb 2026 16:34:51 +0000
Received: by outflank-mailman (input) for mailman id 1226677;
 Tue, 10 Feb 2026 16:34: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=x5eZ=AO=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vpqhN-0000TT-SN
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:34:49 +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 6ab98203-069e-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 17:34:49 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-43767807da6so751083f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:34:49 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4376b62b835sm22714448f8f.12.2026.02.10.08.34.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Feb 2026 08:34:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ab98203-069e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1770741288; x=1771346088; 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=x7nAeewFr31vBi9j3A96hFNs423wcP4z1XIUhPV3jTM=;
        b=pIbfzL2ZR1tJlqUmPhv2cYvoyvQM4+JV3D0y/Nc7lh639lUAgKIUlOs2YsBP0d2H6G
         oS3ewWXN8+3BHQ0IX88fmDmZUaf3Dsj+lOpgqpuZuGVFJnA6q9tJfeBNpNlYyeC/AKsH
         3e/qeH3dqWx0w+qUfKbKVSRSb7g562g/SdNys=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770741288; x=1771346088;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x7nAeewFr31vBi9j3A96hFNs423wcP4z1XIUhPV3jTM=;
        b=TF3K5HiVN/jZUeXX7drWfJliXz4wGsG8A36Vm9MzJh1xJZt64J/NlQgNmHxB1pD9Ui
         lioL7OxM3rZKKQ7V9DqzebYwpV4r/Zgy/HB0OnzBgbWWpK52LJecsSNsIY//qb/H1EM9
         WhZAprGjvsZBxz0O2pkpud8g9m402a0Os0ZVzdfwQIh39NHJOguCVTBWO7np5HKFQREu
         IAmSm40kYbP7CylsiMCFuboGOqn4VuoHw6UcKPZrzKqXe+tToVX+Ffv+sHFQDiBXCBp7
         kRF2f72eBwcSwHTG4utvCX6G90kymYdUBKVApIvVTt9htv3WRLLBuDEtxjyB4ddzsO8N
         OOjA==
X-Gm-Message-State: AOJu0YymyMR1EJ1xsVmcBk9evznlmGMkpSwE9StJH16ueZ/bcCWGSoqO
	v1dMWUH7NzLZXgyvqZAE3EEC7Cmp4fX71KBykXqGrkOyQoIjGkQaIB2zGKtcwygW9tRPf0tYQ28
	ZLKw1qKF3kw==
X-Gm-Gg: AZuq6aJW+IbUe8LjcxFQCZlJEbfliDpNbu1O5uQDlOBOo2bgxRupwpLlZcx5KdHSMU3
	T9DEEup8ZHxZIwH/LBOiwB9sORFoTcGVGSfpMQHDjbAzfauuE0lc5GSMVjERLjf4kJlRTHhx3BK
	WP13BQy3z5i8X0a3X6KJIPIafrc0bD5/2pruVtUPCTLw+Aek6vTOXrS3DGUQle17479Qd+hgb0g
	DDy4kSz/XwHFMUhWsvsy4JCkzgYH/42pD3c7K1J4uXZYJpf4sGhbOk93I16NxfCGsV+59tvUSJZ
	kN1/MaHxMAiGRPPVEV46aUlODOIpxuZFD9mSg5P/2wWiOYY1Yna5OBwqtSgSy7Htz85U2ej33zv
	EtUeVmPAVi/r2CUX7iJTpLprYdaNpk7rrDs51FxaSlQYNxZXKj4FU2O0VgEqIJrR8UoJZWZzrdT
	PiDSrAK2CRw7bPMFWkGLbFHBdlspo3e2f7rwM1hUDwuUeuY7HrYFGvvxUtZiam4LpjskDhZDU=
X-Received: by 2002:a05:6000:2303:b0:435:9612:2d24 with SMTP id ffacd0b85a97d-4362937e1d7mr26246844f8f.53.1770741288232;
        Tue, 10 Feb 2026 08:34:48 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Timothy Pearson <tpearson@raptorengineering.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] xen: Strip vcpu_switch_to_aarch64_mode() from PPC and RISC-V stubs
Date: Tue, 10 Feb 2026 16:34:45 +0000
Message-Id: <20260210163445.2796291-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 absolutely too much copy&paste from ARM.  All other stubs look
somewhat reasonable.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Timothy Pearson <tpearson@raptorengineering.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>
---
 xen/arch/ppc/stubs.c   | 5 -----
 xen/arch/riscv/stubs.c | 5 -----
 2 files changed, 10 deletions(-)

diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index f7f6e7ed97af..a333f06119a0 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -162,11 +162,6 @@ void arch_vcpu_destroy(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-void vcpu_switch_to_aarch64_mode(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index acbfde79b5a7..d071c8b86d07 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -126,11 +126,6 @@ void arch_vcpu_destroy(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-void vcpu_switch_to_aarch64_mode(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
 {
     BUG_ON("unimplemented");

base-commit: 2fa468919c39aac189623b6c580ce4ff8592d799
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:36:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:36:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226684.1533189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqjP-000132-RC; Tue, 10 Feb 2026 16:36:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226684.1533189; Tue, 10 Feb 2026 16:36: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 1vpqjP-00012v-O5; Tue, 10 Feb 2026 16:36:55 +0000
Received: by outflank-mailman (input) for mailman id 1226684;
 Tue, 10 Feb 2026 16: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=WUYk=AO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpqjO-00012i-ID
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:36:54 +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 b448e335-069e-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:36:52 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-47edd6111b4so85424775e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:36:52 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5e11f5sm64803255e9.4.2026.02.10.08.36.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Feb 2026 08:36:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b448e335-069e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770741412; x=1771346212; 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=ITsNzAFyOLMTMbt81OFpd5kCMwIAwHqAlWstam1L7pc=;
        b=k0/dkwoOBvrVVf4sgbRrLBLGpNU8VuTcMcKKS5yF/g2Pyg00XWl6vDsMHP7wHFu63M
         mprfBkV6Tc1LAoYLPIZKbI52/mnMwbmHqUCTkDwAOxyiaZ5EyccAcfeohKU5pT5n2p2L
         XMWt75ypSEuYN+Ie0ePyJvDNTo50H5zq6I/KgqlxI72nngKTlu59tBYJrXJ7tSyzem6p
         FUDkwgVDUaIBLXnIKie3kThxt+e7sGPBJFaxl1LCSojdvSlG89BJCTcPeA4bYlJbET6n
         xvJtpPhWeEbyctUebEUSSEKpXVQvUtCCswlu2RuvmatYnuBnT8VFXc9dKbx3Qxy9HGeC
         wdQg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770741412; x=1771346212;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ITsNzAFyOLMTMbt81OFpd5kCMwIAwHqAlWstam1L7pc=;
        b=B2l0rWOX3Iu4gctFg9BLySl/+nhmJJ3GWNyEMyIPmI+AJCXGBjlDDJUdNVCqgCyymC
         azjehiPptZbtfWM2LgRI/FFFSA52sPWNSDWOyXkihz5xqKt5fIC+1+SZP9E7xmfOSJvW
         SW9AOSIiqc7xIfeWsGs36rs340UYPhCFPL6LIUarlyxPmvEf+2EB3O2ZqQbSdE4BUNoK
         rhl2MGExDA2y/pipTsCMqGoAYRvvm6DdQaJd+IUAtrkhOuVAutC8ofuke9fCyH5fPimw
         IVzbonFV4StBrTKhmYjOTkbZ9Zbx6EWJ9nhHvvC5COUEQy9sMt1PMKJY6UFQjYrEKXVR
         E0JQ==
X-Gm-Message-State: AOJu0Yx9aeHVuNItov8BIPET27twIaWbxr7sQfkTmW4GJXQSK8YAaUOk
	/DNSkDGRrNd5UQzgfDHQjfPpvh8SEHt0UKghFHEAd6UTbfu1/LOiOSsDs2t5g5io
X-Gm-Gg: AZuq6aJ16O1i+I+X0SQGy0GIkj+HobUs3BFE1CoJyHr8OtiUMZYXDI6hazzNGSdmQsE
	A8Bp/bXMhq/6WWYk9umKt1GcOsPn/IY4Zs3WMcfxxG8hr6CcFkRAq5ywbAA2Ak/gZSonwgZYu+n
	zv3Vc2a0HIZBqS7isguBdQt23DM2mm+Pp+q4Sw3tillWbFDWMXSrE+uY7iEcDUALhQHu312UCmR
	ku9i2GJlhePzHsEWmS5edu3YeAl3nrK70182RiPwKzr+I2XwEAbevmoy7J/lsylyF5BgCfWAQzK
	nGCcUihxr+O1aILeYkjKmim6EEOeY9UDg2g9Zli/urcBUm1bra2grZUYRPcqgvBHdrr7ytIE+u5
	DAWSVOiM6fNYiy9QdEEQ0raxjBzjsEmFJf1X0KYwf85KZ1DLUywPzfFB2YbI2n6tOw5eYkQxun5
	gA4dWRXbFEnhlGZM9bfH1GJNeycYoCVoB4/YovevIbG2h9xHNkOa9YNVjpoGqcWcqCTDy1fw==
X-Received: by 2002:a05:600c:3487:b0:477:b0b9:3129 with SMTP id 5b1f17b1804b1-483507cff88mr40714345e9.3.1770741411577;
        Tue, 10 Feb 2026 08:36:51 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/2] RISC-V: p2m context switch
Date: Tue, 10 Feb 2026 17:36:39 +0100
Message-ID: <cover.1770739000.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce functions required to perform a p2m context switch during a vCPU
context switch.

Although this patch series is technically independent of [1], some merge
conflicts are still possible depending on which series is applied first.
For now, the series has been rebased on top of [1] but can go without [1].

[1] https://lore.kernel.org/xen-devel/cover.1770650552.git.oleksii.kurochko@gmail.com/T/#m5d8de24e5ee0eaf6f35f9f1437a00096e3574684

---
Changes in v2:
 - Drop patch "xen/riscv: introduce struct arch_vcpu", took only declaration of
   vsatp and squash it with the patch:
     xen/riscv: implement p2m_ctx_switch_{to,from}_state()
 - Other changes please look at specific patch.
 - CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2317277592
---


Oleksii Kurochko (2):
  xen/riscv: add support for local guest TLB flush using HFENCE.VVMA
  xen/riscv: add p2m context switch handling for VSATP and HGATP

 xen/arch/riscv/include/asm/domain.h    |   1 +
 xen/arch/riscv/include/asm/flushtlb.h  |   7 ++
 xen/arch/riscv/include/asm/insn-defs.h |  10 ++
 xen/arch/riscv/include/asm/p2m.h       |  11 +++
 xen/arch/riscv/p2m.c                   | 123 +++++++++++++++++++++++++
 xen/arch/riscv/traps.c                 |   2 +
 6 files changed, 154 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/insn-defs.h

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:36:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226685.1533199 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqjR-0001GX-2v; Tue, 10 Feb 2026 16:36:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226685.1533199; Tue, 10 Feb 2026 16:36: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 1vpqjQ-0001GH-UO; Tue, 10 Feb 2026 16:36:56 +0000
Received: by outflank-mailman (input) for mailman id 1226685;
 Tue, 10 Feb 2026 16:36: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=WUYk=AO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpqjP-00012i-HU
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:36:55 +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 b501d82f-069e-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:36:53 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso8989705e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:36:53 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5e11f5sm64803255e9.4.2026.02.10.08.36.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Feb 2026 08:36:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b501d82f-069e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770741413; x=1771346213; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i83rk6CF00DSCAs1v5+Cc7fqBYd21dNjMT+muRCPfCk=;
        b=by6uynguHIjGrWENp+I/1R6DpXqVCTlnN/CV3KRFqo3if36VMHFJBb2hZ0e2mvIW4M
         q6ScIe3mWSW8HpLX9qSslzHUU4h9yIAMfSh6AjpKQhjGr4AgR/WP4VrEPtlLAObwIu1m
         yMRdBm1vVv3IceZvwj25ZcNVb3rBm8oF0b4lN6tBFRSbWc2PSRpo65msu5uDCq2tUsw6
         pR/ZDshu7gpQW1gPjvvGWYpSosjIOm3K9AnLKa8LXwoZndyOU/ta1Z25PTjgmuS0QICg
         nbz/FgYEFEsCSQsuoqEj5w7Tzk5hPUfyrZaOIIbuWBGpCYP5Q7LEvRoxTawlnCkCDx9e
         +xTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770741413; x=1771346213;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=i83rk6CF00DSCAs1v5+Cc7fqBYd21dNjMT+muRCPfCk=;
        b=AQtPYQLZFjraQU1ZfdLnNeDZB8G09/8rFuH4BPZtVXts4/YqJUyiM5TZur49CctuQs
         B6iEmNDrzpP3C1fb63U1QYhf03pL2XZ4TBOY6uwMNTCy/oXkaSKA+IYpzOwrMrFURUAz
         /o6Z1nGYPt8+xtXxQKWvOasmR8KHcU3hdh+5t2Pc7oXFZE8tl82xXaAQHUTHDe6BtGif
         y+2J4M9tIFhhyPpkd6GYlbXiuFFc1UcnyCiAgdmhjwhqqmNnHOg87sJ1D1jcw8mSZgPu
         vjoVD0EH4pxN0cEQQyt1Hpk4KLgMlwldQx21SvYOkxnmCUqlF0lRUjk/PhSZF+zIpnh6
         U9EQ==
X-Gm-Message-State: AOJu0YxHCLQJd4ydzmoXyJmVbJVH2ml8EVGextLhmU6TmFCRzJ3Ib0XK
	3JUGP+czKPC3gZvDeVtrlsDFlOWzyIjk1Ca4JLePpzwCjWd1EMqLM+TsoJXY6ifk
X-Gm-Gg: AZuq6aJhjsrKNTw2Vkwa7ymnp+Ua4MwmMCBz+hltag6iEslEEW2WGafnYSKDjIKn+u5
	u6SQXZyplKfARFVIZlAQ/W585NNEfM5DnJhMrTTVFX9XFpIgQOfGa1LjL4JLiItXPJdvjALHw7T
	7/w6hFc2cSinD4dZun/wbrhAzSCaCF/TZYkvS5mCk3ypmcAN8ZxoBymYOv5nEu6PoT5ywqUWK8l
	JuFU7DQJPcS9PHnjB4L8YBAQwf6McROJNR9hk7SXabvhmePZqRaVqLS8L2Z3JbkLyXofIxavCxt
	MoxXn4UXMrmgOFvC2WPQJQfQ1Tw4J68BECORLHv7tWlJ8Hb2wRXf0/S8A4QZ1EWtG8U5N9reA/Q
	+NNrxMzvxtSj7pfqQCYOGR7uS/gHGIrr5GouGkbKzq98qLOVlz2mHk/7yUHfAzhMLMzznwGgoaz
	4ZMBdsRa+hBxoTC2RThkB0bnBDdeL5KH+xprR+dHIMdhrMV/5H2Pi3tEiX5cTPSIXlHFHufofBJ
	V8b
X-Received: by 2002:a05:600c:154b:b0:477:7925:f7fb with SMTP id 5b1f17b1804b1-483201e3e8amr206281615e9.10.1770741412614;
        Tue, 10 Feb 2026 08:36:52 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 1/2] xen/riscv: add support for local guest TLB flush using HFENCE.VVMA
Date: Tue, 10 Feb 2026 17:36:40 +0100
Message-ID: <af269cb7b5c03f0661982d41d3d7f1ddde761eeb.1770739000.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770739000.git.oleksii.kurochko@gmail.com>
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce flush_tlb_guest_local() to perform a local TLB flush of the guest's
address space for the current hart. This leverages the RISC-V HFENCE.VVMA
instruction, which is used to invalidate translations in the VS-stage of
address translation.

As for RISC-V binutils >= 2.39 is choosen, we can use hfence.vvma mnemonics
instead of defining hfence.vvma using .insn.

Although it would be possible to use sbi_remote_hfence_vvma() for this purpose,
it is unnecessary in this context since the flush is required only on the
local hart. Using the SBI call would introduce additional overhead without
benefit, resulting in unnecessary performance loss.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Add missed blanks in asm().
 - Add operand modifier "z" and "J" constraint to be sure that zero register
   will be used when 0 is passed to HFENCE_VVMA().
---
 xen/arch/riscv/include/asm/flushtlb.h  |  7 +++++++
 xen/arch/riscv/include/asm/insn-defs.h | 10 ++++++++++
 2 files changed, 17 insertions(+)
 create mode 100644 xen/arch/riscv/include/asm/insn-defs.h

diff --git a/xen/arch/riscv/include/asm/flushtlb.h b/xen/arch/riscv/include/asm/flushtlb.h
index 4f64f9757058..b0112d416dbe 100644
--- a/xen/arch/riscv/include/asm/flushtlb.h
+++ b/xen/arch/riscv/include/asm/flushtlb.h
@@ -5,6 +5,7 @@
 #include <xen/bug.h>
 #include <xen/cpumask.h>
 
+#include <asm/insn-defs.h>
 #include <asm/sbi.h>
 
 struct page_info;
@@ -14,6 +15,12 @@ static inline void local_hfence_gvma_all(void)
     asm volatile ( "hfence.gvma zero, zero" ::: "memory" );
 }
 
+/* Flush VS-stage TLB for current hart. */
+static inline void flush_tlb_guest_local(void)
+{
+    HFENCE_VVMA(0, 0);
+}
+
 /* Flush TLB of local processor for address va. */
 static inline void flush_tlb_one_local(vaddr_t va)
 {
diff --git a/xen/arch/riscv/include/asm/insn-defs.h b/xen/arch/riscv/include/asm/insn-defs.h
new file mode 100644
index 000000000000..61aaa202fd13
--- /dev/null
+++ b/xen/arch/riscv/include/asm/insn-defs.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM_RISCV_INSN_DEFS_H
+#define ASM_RISCV_INSN_DEFS_H
+
+#define HFENCE_VVMA(vaddr, asid) \
+    asm volatile ( "hfence.vvma %z0, %z1" \
+                  :: "rJ" (vaddr), "rJ" (asid) : "memory" )
+
+#endif /* ASM_RISCV_INSN_DEFS_H */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:36:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226686.1533204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqjR-0001J4-Da; Tue, 10 Feb 2026 16:36:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226686.1533204; Tue, 10 Feb 2026 16:36: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 1vpqjR-0001I3-5o; Tue, 10 Feb 2026 16:36:57 +0000
Received: by outflank-mailman (input) for mailman id 1226686;
 Tue, 10 Feb 2026 16:36: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=WUYk=AO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpqjQ-00012i-IX
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:36:56 +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 b5af66a5-069e-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:36:54 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso55972545e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:36:54 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5e11f5sm64803255e9.4.2026.02.10.08.36.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 10 Feb 2026 08:36:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5af66a5-069e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770741414; x=1771346214; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JjEc9mDWav/qoIa1ZW+EtUPB2mySUlmztw5R2P/dXKI=;
        b=OZjnZeza4HclH6dSK8itrSbvark5ZCYAJEJJOxF7lZv12mum2VdoesyoGR0vy4Wgwg
         cCBAr118XDvw7oHFIJaEjmRBX2QWxg9zabHyfqmz1adxB9W0/AYZkCIZIWbDGA/OCCAd
         90nGEhe/BY9Lf3oDYKYNucJkCjuDshzaBLPT7dltyNmTKKqGnr99rd21Cx1QLTKgyv2/
         3B5W2VHXDEpoFJ+hBduntz5n7QBgTG0Ekmt5d340Ggf24Rt5t9WdlXB0rG2cwE/R8HFv
         6mhvehcZoWxOFPA659wN4SXbf4VsjzjW8xDOVWdCzd8cl+pTkcLX+fdyYNoR8Q+nqwTr
         UZXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770741414; x=1771346214;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=JjEc9mDWav/qoIa1ZW+EtUPB2mySUlmztw5R2P/dXKI=;
        b=m5EVdcLIa+FI5rmVct/35lM3h1/n5A3wd4N9TqIDb0OzT9k2s/9GiCcavnPLi7AMPb
         5u1G1Sdcr+4zQUDXDFv3pX89X329gGqzWFS1FeOVwJss4gU9h8cQcasnLMtM1eDYPRAd
         u2OrXaileiqApFalb9J0kl8hZ7CyQbwiOztvyY6qgPmlBC+n5IFSzT7sdan5TZqQdGu9
         bUxmJO/cNLQPb6hNpavT0ZDhnPHuOCbU6k2vem9h+AHi7RmS5kLuj9kz4dMETJFSONN2
         DMwYimlvZBzaFRX+rMG8A+S02GJPJ/LYR3WIBLQi5z8vfzY9dAyC4gB6vHelPR5WFsZF
         4sXA==
X-Gm-Message-State: AOJu0YypVuxhTOOLSobodaeMW3D4ycrtC+p7b22BpBv4P6kbNHyD/0Jw
	tQXW3kAg+WJTWs3EJHHsXKb/HWeZLzhrLucmg/tjx8yPPjlGEK8R+QfpsirXjK6l
X-Gm-Gg: AZuq6aIARFjmvZX/iL/5sjAWDrMPjSCQhcR3/xz4kT+KReXHeCs0AVSpMGPIGerH4Le
	J5rtV+ak8oPA5X8b9pQdLw3DVc41DQMxFn/djYaSTXQGiGl9/8DPMyqeNK9SpmWMAMgOZ5NxR1B
	e54iZa3jIhvbl6otFHt+rNR5JwXbBIiU26JLDHKPOAWrFjbzLFQZOKgqbCaQqwGFOJGUUTpsDyV
	9Rz9tMYvR+Ck9e4xEWNfQ4FlCEWHeosxu/MyF/ecbaWaeokvO1f48y5EHQJJzyZfpRmew2r2LGf
	fNdSu8ze6GuIhSxY5WR9QNuG+p3FBgDt8nOlZNHZIpouATJDfdvk6PVqxdUHew+iTaYzBIp+URJ
	0tCBUpILP/ULvh3K2gLIIz1/duhYYvbH2skqCpB2jfoAXtG1F2ewqAS6IIcFn5m8P8VvlTN81yR
	jL5/Tco4ar5764BqeoxqdukG4usVHAi3Ttrab3G+06GRGTXyyAaPKBx4RDHw17uWQUb0wCgQ==
X-Received: by 2002:a05:600c:a59b:b0:471:793:e795 with SMTP id 5b1f17b1804b1-4834f38ff19mr24116555e9.0.1770741413865;
        Tue, 10 Feb 2026 08:36:53 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for VSATP and HGATP
Date: Tue, 10 Feb 2026 17:36:41 +0100
Message-ID: <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770739000.git.oleksii.kurochko@gmail.com>
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add helpers to safely update VS-stage and G-stage translation registers
during vCPU context switches.

Because VSATP and HGATP cannot be updated atomically, VSATP is cleared on
switch-out to prevent speculative VS-stage translations being cached under
an incorrect VMID. On VM entry, HGATP is reconstructed, VMID handling is
performed, and VSATP is restored.

This provides the necessary infrastructure for correct p2m context
switching on RISC-V.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v2:
 - Add vsatp field declaration to arch_vcpu.
 - s/p2m_ctx_switch_{from,to}/p2m_ctxt_switch_{from,to}.
 - Introduce p2m_handle_vmenter() for proper handling of VMID,
   hgatp and vsatp updates.
 - Introduce is_p2m_switch_finished and init it inisde
   p2m_ctx_switch_to() for furhter handling in p2m_handle_vmenter().
 - Code style fixes.
 - Add is_idle_vcpu() check in p2m_ctxt_switch_from().
 - use csr_swap() in p2m_ctxt_switch_from().
 - move flush_tlb_guest_local() to the end if p2m_handle_vmenter() and
   drop unnessary anymore comments.
 - Correct printk()'s arguments in p2m_handle_vmenter().
---
 xen/arch/riscv/include/asm/domain.h |   1 +
 xen/arch/riscv/include/asm/p2m.h    |  11 +++
 xen/arch/riscv/p2m.c                | 123 ++++++++++++++++++++++++++++
 xen/arch/riscv/traps.c              |   2 +
 4 files changed, 137 insertions(+)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index b5a8a9f711ac..c029e50b96fe 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -59,6 +59,7 @@ struct arch_vcpu {
     register_t hstateen0;
     register_t hvip;
 
+    register_t vsatp;
     register_t vsie;
 
     /*
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index f63b5dec99b1..0cdd3dc44683 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -90,6 +90,13 @@ struct p2m_domain {
      */
     bool clean_dcache;
 
+    /*
+     * Inidicate that context switch is fully finished. It is needed to
+     * detect in p2m_handle_vmenter() to undestand what to write to
+     * CSR_VSATP register.
+     */
+    bool is_ctxt_switch_finished;
+
     /* Highest guest frame that's ever been mapped in the p2m */
     gfn_t max_mapped_gfn;
 
@@ -255,6 +262,10 @@ static inline bool p2m_is_locked(const struct p2m_domain *p2m)
 struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
                                         p2m_type_t *t);
 
+void p2m_ctxt_switch_from(struct vcpu *p);
+void p2m_ctxt_switch_to(struct vcpu *n);
+void p2m_handle_vmenter(void);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 0abeb374c110..275c38020ae2 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
 
     return get_page(page, p2m->domain) ? page : NULL;
 }
+
+void p2m_ctxt_switch_from(struct vcpu *p)
+{
+    if ( is_idle_vcpu(p) )
+        return;
+
+    /*
+     * 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 what will be done in
+     * p2m_handle_vmenter().
+     */
+    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
+
+    /*
+     * Nothing to do with HGATP as it is constructed each time when
+     * p2m_handle_vmenter() is called.
+     */
+}
+
+void p2m_ctxt_switch_to(struct vcpu *n)
+{
+    if ( is_idle_vcpu(n) )
+        return;
+
+    n->domain->arch.p2m.is_ctxt_switch_finished = false;
+
+    /*
+     * Nothing to do with HGATP or VSATP, they will be set in
+     * p2_handle_vmenter()
+     */
+}
+
+void p2m_handle_vmenter(void)
+{
+    struct p2m_domain *p2m = &current->domain->arch.p2m;
+    struct vcpu_vmid *p_vmid = &current->arch.vmid;
+    uint16_t old_vmid, new_vmid;
+    bool need_flush;
+    register_t vsatp_old = 0;
+
+    BUG_ON(is_idle_vcpu(current));
+
+    /*
+     * 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
+     *
+     * CSR_VSATP is already set to 0 in p2m_ctxt_switch_from() in the
+     * case when n->arch.is_p2m_switch_finished = false. Also, there is
+     * BUG_ON() below to verify that.
+     */
+    if ( p2m->is_ctxt_switch_finished )
+        vsatp_old = csr_swap(CSR_VSATP, 0);
+
+    old_vmid = p_vmid->vmid;
+    need_flush = vmid_handle_vmenter(p_vmid);
+    new_vmid = p_vmid->vmid;
+
+#ifdef P2M_DEBUG
+    printk("%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
+           current, old_vmid, new_vmid, need_flush);
+#endif
+
+    csr_write(CSR_HGATP, construct_hgatp(p2m_get_hostp2m(current->domain),
+              new_vmid));
+
+    if ( unlikely(need_flush) )
+        local_hfence_gvma_all();
+
+    if ( p2m->is_ctxt_switch_finished )
+        csr_swap(CSR_VSATP, vsatp_old);
+        /*
+         * We are not coming from a context switch here, so the VSATP value is
+         * the same as it was before csr_swap() was executed at the start of
+         * this function. Since VSATP was set to 0, no speculation could occur,
+         * and the VS-stage TLB cannot be polluted.
+         * Therefore, no additional VS TLB flush is required.
+         */
+    else
+    {
+        vsatp_old = csr_swap(CSR_VSATP, current->arch.vsatp);
+
+        /*
+         * vsatp_old should be zero as in the case of context switch it was
+         * set to 0 in p2m_ctxt_switch_from().
+         */
+        BUG_ON(vsatp_old);
+
+        p2m->is_ctxt_switch_finished = true;
+
+        /*
+         * TODO: further investigation is needed here.
+         *
+         *       In my opinion, a VS-stage TLB flush is not always strictly
+         *       necessary.
+         *       If a context switch occurs and VSATP is set to 0 before any
+         *       context-switch-related operations begin, no speculation can
+         *       occur. Therefore, at the time this function executes, the
+         *       VS-stage TLB should not be polluted with incorrect entries
+         *       belonging to a previously running vCPU. Another one reason is
+         *       that about SATP register is mentioned the following in RISC-V
+         *       spec:
+         *         Changing satp.MODE from Bare to other modes and vice versa
+         *         also takes effect immediately, without the need to execute
+         *         an SFENCE.VMA instruction. Likewise, changes to satp.ASID
+         *         take effect immediately.
+         *       I expect the same for VSATP (as it is VS copy of SATP) but it
+         *       isn't mentioned explicitly in the spec.
+         *
+         *       The only case where a VS-stage TLB flush seems necessary is
+         *       when the VASID remains unchanged but VSATP is updated to point
+         *       to a different VS page table. In that case, flushing
+         *       guarantees that the guest observes a clean context switch
+         *       without any possibility of using stale TLB entries.
+         */
+        flush_tlb_guest_local();
+    }
+}
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index e8d9ca902d9c..d6543eac1390 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -175,6 +175,8 @@ static void check_for_pcpu_work(void)
     vcpu_sync_interrupts(current);
 
     vcpu_flush_interrupts(current);
+
+    p2m_handle_vmenter();
 }
 
 static void timer_interrupt(void)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:40:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:40:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226709.1533218 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqmY-0003yI-P6; Tue, 10 Feb 2026 16:40:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226709.1533218; Tue, 10 Feb 2026 16: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 1vpqmY-0003yB-MT; Tue, 10 Feb 2026 16:40:10 +0000
Received: by outflank-mailman (input) for mailman id 1226709;
 Tue, 10 Feb 2026 16: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=WUYk=AO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpqmX-0003y5-HF
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:40:09 +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 26743446-069f-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 17:40:04 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-43591b55727so3842821f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:40:04 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43629756bc3sm32676169f8f.39.2026.02.10.08.40.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 08:40:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26743446-069f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770741603; x=1771346403; 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=COrjMK8OEYgsjTwS51atPufdJANAHpQy+jQ5A3f66oI=;
        b=Dr/TkF3KeCn2okThI/iCowURGhgss0Imyre2Hr76Llf3NGDm4XcO01tTyNfn1mvwZ5
         nRFS012++cTcoe/9xdxotAGKLmhbSP+o2hpUANX5U63wAP0cKW42/SmIlvqMFpK/5tWd
         K5xHxSmcWfMO7XAgpCB24skEK3DYoIxeGG8NZ17xx9wr4cHkQQA8tJTh4elL01RGuNvV
         KXLTgk9bEB/mMPwlWQcnzlnXYSyt2mo7d2DG522lF2UaXZRiGQpkhThecBCidOhVGM+i
         BHf2DDWwC7FUYCms98n5ThCUcInw8pY7aO13zH2sXJARAAHobvzi0z371WkgRuhMhUt0
         CM4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770741603; x=1771346403;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=COrjMK8OEYgsjTwS51atPufdJANAHpQy+jQ5A3f66oI=;
        b=Cf+eAIpZp4oqD/H2ZyxtDAZ2hhN6XlHvVU6btUY9ziwW+NXX3IoLBCrKDUwGHcQGCJ
         yNf2qJsF+LMqpczquTx6vIHRozXGL+mX6FFNtuS8jErrhr7mQYJ8KzFvjGdvRpexUWMR
         9Tb+3gj7zqryEoRYp5eMI5664ccTZK6/yweFxJMdcZESWJpL/HBoFjByEVQsLRXcq5mp
         UcEMGTcyqHdiotJo4vAjowaHmMfltMhf2uIgBzKggVwf/e6vb/3y3hILjcqdZ6y8oUm5
         Mvdpw/X5WwpaFt7lrlA/a+jbmh9jcXe3s+pvPvtB78c+WGjMiz8L8mj+CN4HmtP9BUgz
         cZdQ==
X-Forwarded-Encrypted: i=1; AJvYcCXU2e10TGKPXQLNpRnLPeVwuRCYH2VTWGZ4JTlUf2YAhFSLiKIuJ7Gj1T+XvvftY4Fdu7QAsj64emQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxZZRJ1X+/iCb+RCM09zpZgN/B/UHxBiikRRGNO/8+Qsm8ukic1
	ZyYq3QUVOrU1PDzUJCqfyn8ZJN/u0YJ64pTmCLsCd/avtD6Gva0Rshwh
X-Gm-Gg: AZuq6aKEv46FCReVWdRod35I0EaJM8/GRjtCCDOFsdth3745fAK38G64LojVBRSsTYX
	kRG8r6ElUHFW5YR4644I9lqq8NiqJGmaDXhyquXhPl6zpyEqCuSrpmz+F8p4RhMCA/9M9d0AFiz
	6qJezOKMqzMOveH4AuRg2Lxylxd9ZwrOPmE9T9wNX2ZvqWMNkTBEvBToMmv7pxrbBpSytR6/21G
	3RGep228pyqrWsht7EO/0h3s+79LQdBYTdlobyq/gzjB51+j5kjgVNG7NPEjtVAUQ74+gFPbheu
	LZrnwNezTDmuDU1wfgMHRXt0vNallxlTth2OVJNH6bPs/gw5hAFmX2nQOYhQ7cuPqEeTYOmxl9n
	xBrgT66jltHaayNHCf/DK2X3Pc7cq7JdZ1jUbBBwQ65/c64krRhNJc/Jx3WTHWJ1Ng861tBmxib
	4kb6HoHTO9bNgCOoIlVSErv699kQ8Dxn/vKR/QvJ6zCO2JqxzOpgX9RhXKA4BB5OwlXtorlO0SC
	cA=
X-Received: by 2002:a5d:64c3:0:b0:437:677d:42d with SMTP id ffacd0b85a97d-437677d05edmr15758012f8f.63.1770741603380;
        Tue, 10 Feb 2026 08:40:03 -0800 (PST)
Message-ID: <9cfd188d-b515-4d5e-8268-3ad51ee6b7e4@gmail.com>
Date: Tue, 10 Feb 2026 17:40:02 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Strip vcpu_switch_to_aarch64_mode() from PPC and
 RISC-V stubs
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Timothy Pearson <tpearson@raptorengineering.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: <20260210163445.2796291-1-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <20260210163445.2796291-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/10/26 5:34 PM, Andrew Cooper wrote:
> This is absolutely too much copy&paste from ARM.  All other stubs look
> somewhat reasonable.
>
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> CC: Timothy Pearson <tpearson@raptorengineering.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>
> ---
>   xen/arch/ppc/stubs.c   | 5 -----
>   xen/arch/riscv/stubs.c | 5 -----
>   2 files changed, 10 deletions(-)
>
> diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
> index f7f6e7ed97af..a333f06119a0 100644
> --- a/xen/arch/ppc/stubs.c
> +++ b/xen/arch/ppc/stubs.c
> @@ -162,11 +162,6 @@ void arch_vcpu_destroy(struct vcpu *v)
>       BUG_ON("unimplemented");
>   }
>   
> -void vcpu_switch_to_aarch64_mode(struct vcpu *v)
> -{
> -    BUG_ON("unimplemented");
> -}
> -
>   int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
>   {
>       BUG_ON("unimplemented");
> diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
> index acbfde79b5a7..d071c8b86d07 100644
> --- a/xen/arch/riscv/stubs.c
> +++ b/xen/arch/riscv/stubs.c
> @@ -126,11 +126,6 @@ void arch_vcpu_destroy(struct vcpu *v)
>       BUG_ON("unimplemented");
>   }
>   
> -void vcpu_switch_to_aarch64_mode(struct vcpu *v)
> -{
> -    BUG_ON("unimplemented");
> -}
> -

These changes looks good to me:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks for cleaning it up.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 16:45:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 16:45:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226722.1533229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqrX-0004ay-Di; Tue, 10 Feb 2026 16:45:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226722.1533229; Tue, 10 Feb 2026 16:45:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpqrX-0004ar-Ai; Tue, 10 Feb 2026 16:45:19 +0000
Received: by outflank-mailman (input) for mailman id 1226722;
 Tue, 10 Feb 2026 16:45: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=WUYk=AO=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vpqrW-0004al-0F
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 16:45:18 +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 e0be8805-069f-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 17:45:16 +0100 (CET)
Received: by mail-wm1-x341.google.com with SMTP id
 5b1f17b1804b1-48329eb96a7so20226185e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 08:45:16 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d482480sm82355865e9.0.2026.02.10.08.45.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 08:45:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0be8805-069f-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770741916; x=1771346716; 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=SWVpA5H1nnjskT/qj0AhX2hWDuW8xmJhqVgcmisDcss=;
        b=lMG8hZ0BpEu6NQTQnNP/JVz/f/9VjPDLuVQyrz3lluXWsf1sj7wR/uedcdMZd87vFm
         NST6q7E/3kHFtX2IRS2FJ5h0jGjB6uOkBJRPamlBbxr9Mt1MtOJjG4Dt1VARrU+Lvb2x
         FzsDeb/WIDrYR/vr7Pm4EZy6vjMHOt+2NP7M7+HS7XuNd9lHJFtilEtjs4aXCw8mEJ8l
         IJZ166sVVb6Iy8eejS1G3sKRliyDDkK5+BAgpEECoW8PEPgFdO7C4Mb/in6PrQgO1oyX
         mQKWxXCA950TKU8i43/mPFuG74vanyeFYSotvgCEPopRh/zjpRWc57AOFNpEqafqU8yZ
         QriQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770741916; x=1771346716;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SWVpA5H1nnjskT/qj0AhX2hWDuW8xmJhqVgcmisDcss=;
        b=WeSw33q+3fDAnMDk9Mfb04axShEQ1L/KUjaRwHDeltObd+rhenBElttw0ScT5kXjJv
         FC+zkZXGMgHKoWDo5jhUjeys4iu7xX8WnPGr00HG2y9P9VSXT0zIUoeMhIBsaSdp0R13
         vd7J1T7qRsoAWa1FhMYh3zVu+DGxU45IBb4vKOrgV5N47sNCvFYMkx4kZkcoLQx7X+7j
         ra8o24WAWq2SU5PJe51eePEONBHCuk27bKkoySGtSjuC4JSl2rjzPWVen9wRaOe+KSG0
         aDwdJyqFiEO1ZnBSINl2spfIYle8JiW3HRrlpG9scWt5N3b2vEBSr5AzJR0LJUY3rbRR
         bHcw==
X-Forwarded-Encrypted: i=1; AJvYcCVf7MQKN6tvS+XdodcBgqHIrGgLKGgggKBnb5nSMoje7Qyc+NHX9t5R5ABu8xcPeGDXZzs5MJzfohI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyM4kui5eYhicXXe2hTmXLFTg4AAYwTvx1rJc+AacEmnSi4NXVZ
	xPQliddJixV2nQFky4XJVvb0IEmTLO8ehplrwpj/Rgj97hS0/GsU1PeT
X-Gm-Gg: AZuq6aKfy4/fgqZWAfvkaM2DPFzTCWOeU6DKr8IPizyYxN4tEXxjaHN5ZMRf2QUmpl1
	IHC5Dxv7XrMJVzjpIthOaP0CpI5ipR3Gd9hwkmrKKrdm+MnH91oFnz6r4/JsoCJCdnH02Vddwt8
	5UG+OZqco2S53lzQQdjvRRmVqA6IMHQSxDnx36BnKjxRz0UdeLOH5BrBFcjRGm4EguwWij1yBKR
	UvR9PUl9aao61wtVmUtoK7CYo2PJvZvKnPt8QKm6HQMvZ2iE9cKzWgEythHC+i6wLocTCQrAvJw
	CSbKrhoQoN21HfWc6s+ISUNFI4ocVxyAeVOKFZYX4kZnjWko/qlipSEEHJ9KIA2JCkOpts1KO/u
	d3tyVUtX8gvqPwr9bHKvhJDW4Y0+GqjPb9G4ubAhi6M8Pcwq63oiCN8DYHFkQTXyWYq79K/nc9D
	SR44pAyf5xmcGIMoJAfX5VV2qiaDQf0RF7Y91CQKxq3/nxJ1wMBWVOyO0zG9iWQwJ68vFujH71v
	2c=
X-Received: by 2002:a05:600c:3e0b:b0:47a:810f:1d06 with SMTP id 5b1f17b1804b1-483209291eamr221370045e9.4.1770741915915;
        Tue, 10 Feb 2026 08:45:15 -0800 (PST)
Message-ID: <a392074e-6003-4429-82ed-78e80fd3448d@gmail.com>
Date: Tue, 10 Feb 2026 17:45:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] non-x86/symbols: check table sizes don't change between
 linking passes 2 and 3
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>,
 Timothy Pearson <tpearson@raptorengineering.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>
References: <b61b7054-b27f-47fc-b268-f1dae3f1980d@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <b61b7054-b27f-47fc-b268-f1dae3f1980d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/2/26 3:45 PM, Jan Beulich wrote:
> Extend commit 1df11ccceb1a ("symbols: check table sizes don't change
> between linking passes 2 and 3") to other ports as well.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -99,6 +99,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>   		> $(dot-target).2.S
>   	$(MAKE) $(build)=$(@D) $(dot-target).2.o
> +	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>   	    $(dot-target).2.o -o $@
>   	$(NM) -pa --format=sysv $@ \
> --- a/xen/arch/ppc/Makefile
> +++ b/xen/arch/ppc/Makefile
> @@ -26,6 +26,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>   		> $(dot-target).2.S
>   	$(MAKE) $(build)=$(@D) $(dot-target).2.o
> +	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>   	    $(dot-target).2.o -o $@
>   	$(NM) -pa --format=sysv $@ \
> --- a/xen/arch/riscv/Makefile
> +++ b/xen/arch/riscv/Makefile
> @@ -40,6 +40,7 @@ $(TARGET)-syms: $(objtree)/prelink.o $(o
>   		| $(objtree)/tools/symbols $(all_symbols) --sysv --sort \
>   		> $(dot-target).2.S
>   	$(MAKE) $(build)=$(@D) $(dot-target).2.o
> +	$(call compare-symbol-tables, $(dot-target).1.o, $(dot-target).2.o)
>   	$(LD) $(XEN_LDFLAGS) -T $(obj)/xen.lds $< $(build_id_linker) \
>   	    $(dot-target).2.o -o $@
>   	$(NM) -pa --format=sysv $@ \

Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 17:11:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 17:11:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226749.1533240 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vprGV-0000WY-DA; Tue, 10 Feb 2026 17:11:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226749.1533240; Tue, 10 Feb 2026 17: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 1vprGV-0000WR-9L; Tue, 10 Feb 2026 17:11:07 +0000
Received: by outflank-mailman (input) for mailman id 1226749;
 Tue, 10 Feb 2026 17: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vprGT-0000WG-UJ
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 17:11:06 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7765d430-06a3-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 18:10:59 +0100 (CET)
Received: from MN0P220CA0015.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:52e::13)
 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.9587.17; Tue, 10 Feb
 2026 17:10:53 +0000
Received: from MN1PEPF0000F0E3.namprd04.prod.outlook.com
 (2603:10b6:208:52e:cafe::77) by MN0P220CA0015.outlook.office365.com
 (2603:10b6:208:52e::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 17:10:52 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E3.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 17:10:53 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 11:10:42 -0600
Received: from localhost (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_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 09:06:38 -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: 7765d430-06a3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bfWYo31uYAqXLWynwInYvtlNsXdZRJ6zYfepDQgmVFf08chtt3YfTduzhQ7WGsDL31cCRcdvdC26s23LSHPMrPAo6TP+XW+js3S/UCyVmnH2tZnUZ0VsgvZL8H9bbB7Hz42TEI4m1PU6OUz6WGjMRGAUNHs9VD1NLi9cGpFTLXOjZPSpMLI7UbY2t3zUEpD5yaHY70b4pr6SR6a6derQCArGhNBqVXPA3TUgeg4QcHunk+9R3l5w7+AHsFGrPZjAyjfu2FiWpMkG/xajn6RWYvkjtcYpjNQIy9hAweanubi7XLmtIo3zzSx7R45u17byF+2Piq89aiLLIx12uoHE/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=LsPgQMSQ/Ud3LiqV7TLiHwOqf0ZsclNkla8xSgflwro=;
 b=cLF2uW/kzwlMsxlSVxAagdjHlNA3lyp9QLwRClU7Fk8Zo0GIq0BfCfpvwgZmjmxNysfU2JccH65grVUtRW5C48oxlRkfQuEhHVtGaWIVx1ULHWkl1sj9cehMlgFpPvl3DX4VWwdbHA4vk27AdtmiUNdB1GCNV0WDKBje8hpZAC/YHieWzqWJtVqIfvFX5iPq6uVQtNGZMY8h1EttJG9u07Wsq0PE0xXM9opipVhwFUO+/lqZAXy+BQHPkZDpXiEoPYW78dlPSzhHyfaKLPM5ZiA8990vwuLzkhNKFZHYENi2d6zmfPMHObNuSPJVPdJuDr4ADcpqZ9he095o9sjt7w==
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=LsPgQMSQ/Ud3LiqV7TLiHwOqf0ZsclNkla8xSgflwro=;
 b=NZs4R1YXqnko3m6CiUQD1Z5CWWhPNsheBRu/Byjb4S3l4zBZ7dU3HQnDTiZ9l13t8mLb0kgh0FLD6XfWqrPkVMEKj6L/C2paeoocF15csE5mX1q0X7JiRopoLU0PLLBHafJZs8wz1oU2zLZ1tis1wWQlHK4/PF2yR9LU3GkpemU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 10 Feb 2026 18:06:36 +0100
Message-ID: <DGBG2QGWJQCR.KCWQYCR1R5BP@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>
Subject: Re: [PATCH] x86/domctl: Conditionalise x86 domctl using DCE rather
 than ifdef
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260210151008.217830-1-alejandro.garciavallejo@amd.com>
 <6152fc3a-0169-4cbe-b1fb-a392901db34e@suse.com>
In-Reply-To: <6152fc3a-0169-4cbe-b1fb-a392901db34e@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E3:EE_|MN0PR12MB5739:EE_
X-MS-Office365-Filtering-Correlation-Id: 6024214c-6d5d-48c0-82c7-08de68c75902
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?OEpaWHllMlJ0bVRZdWVrY1p2WHVOOWN0MHhuUWh5WWJBSFZ5ZDJKWG9sYVQ0?=
 =?utf-8?B?Y2tDdkN4T3U1Z1FzU0VPS0ZJcVNNL0huNmR0ZngyVFgvQlBBR3F6U2pWRlVI?=
 =?utf-8?B?WE1YbjUrWXNtdjdoV3FpWDZ4NnhPWFZDSHdHbWpwVGcvUE45eFYzTkxJY1BW?=
 =?utf-8?B?RG5DQ2dBM1pTWXppL3ZtdHVSYWkyOWQzSzhld3hESS94cUIwbE5PRWZZcktp?=
 =?utf-8?B?VmpBV0V1REFlQytNUlhQdmxpdStzbTh1dGlleWZ1WTYxL0ozSXpWWWdYZlY0?=
 =?utf-8?B?UVNrZU84ckRlV1lvcllyWm9zbXIzN0ppK3VBTWs2N1c1dmFxTWlpOEtmcXhP?=
 =?utf-8?B?OFU1STdSZm1kZG1yMUQ0M1ZGNXFnYm9yaW1zd3poR255Z0RJRUhCbzJQK0ti?=
 =?utf-8?B?cVdZSS9Lbm04M0NEYkFKZ3piMXo1L2V5enQ1VkdlMjdtTEVFSm5SV1M5b3lQ?=
 =?utf-8?B?QVVuRXFVZGtpd1YySnhYYzFPMHdSV0ExUlVjWmpnT0YvRDEyTmJqc1BXTmxS?=
 =?utf-8?B?N1lJZkd2SFlwUTlUOWlCZjY3RW94OVM0dkRBSzMzTFhVOUZHQkR6VnZqVEFn?=
 =?utf-8?B?c1JlYVIrdE9jcENnYnB2TjRVclAwYnNrNmhGZzRjSzdqbHIxdTBqblBZbEZS?=
 =?utf-8?B?YTRmckpzcHJpUnVhbVR5UHNkcXg2b2JSUU5ncUVXVDlPSEoybDZyTzRqWDJ2?=
 =?utf-8?B?ai9TMm02ZUs1K0FjUDUxT0MrUzd2bUo0MEhpeXpGeDl5d0JEMkxpaWFQOVdY?=
 =?utf-8?B?VTc4a3RCNS9mZVJnSisweHJBRUNuMkNneTdxdGNIVjVBZ092ZWYzTlM5TWl6?=
 =?utf-8?B?Tzl4Ni8yQ1BJK3NJd2FYVkIxb09pdTlBRzVRNjQvbTFwMExqci9UV2VBRnVy?=
 =?utf-8?B?aUtXUk1yRytkd25pVnhRd2QxRWExWVlod3haRHpieVpEQXZaRVRjbkV2aDh4?=
 =?utf-8?B?eG1uMkVSNDJ2MVkyVXhQUzR4RU9MVW9nc0VzN3QxSXpOMjRBRWZZTFV2Zkdw?=
 =?utf-8?B?LytYQXlGQ2d4YitHQzFxTmdpb0V6WHo4Sjk5b2VodjdqMGx0SlFrUUhzekJ5?=
 =?utf-8?B?cFMxMk5DbGQ3ZGhNZ0xKSmFnQlFBeVFrWVE0VFNQSkw5cmhCSzBpai9ZZE9r?=
 =?utf-8?B?SS9QNnY5bWt1MTRyQ2dFR20zcjBIdXE3Y1Badlp2SDBKOWxIa3cyc1ZzTHEx?=
 =?utf-8?B?Y0pJbnh5djFjMURxdGxjTi9aYW1aeWNVZUdNVVlzQjIyTXphVnd0WGN4VFpp?=
 =?utf-8?B?SXZUMFNJTENMREtUMzlMWWdwMTQxY2ZqWWFSZGtxRnBQMXRSNjJxQUFkaWh6?=
 =?utf-8?B?NVo5UzRleFg2L1oxTkpaa3dzYW9RNThQeU9UYTdKWGhrUDBFVGg1VVhGaDB4?=
 =?utf-8?B?V2FjZllSbzBXTzdhTFZXMWxJZURpUkVpWmJKd0pXUDZSeFJpeXdsOXFpd29m?=
 =?utf-8?B?Rm16WFI4VEdpTnRCL2g2Z05xZXcvby9QbFVyTWRXamozUVZWT1BjQ2JZVFpn?=
 =?utf-8?B?Um5wRThzNUZpOVY3cHhWSnpJcVQyOUdXcHFRbGViRFBoWjdpYkpPQ05VNlpw?=
 =?utf-8?B?TG5SQkhEOTRuOGNnWWJ2a2l4dDhOeVZWV084bkxCSDFRRW8zNzRzUUJNWjh1?=
 =?utf-8?B?cEhPUDRuY2FOekdGTVhNdnpuR2xtVEZQalljamFqNHl3bzA2cEJTb0t1R2Y2?=
 =?utf-8?B?ZjN0T3Bpc1ZwN1FsV3F3VitWRjd4V3NSRDYwR1NoMmdmbEo0ZEIyMW0zTllF?=
 =?utf-8?B?ZUdUbmlvZ0t2UnlOR1lGM21QWGNLZnVWVmd2aGxtbEh5L2JySHRUWEFlTHVJ?=
 =?utf-8?B?ZnFSeTBFbmUzTXp1VWxaaFBkWXI5dFNzZXQ5NGxnb3BLQkhUOFF5NlBvb0ox?=
 =?utf-8?B?N2RXbWk4VTloWllyUFltREdHdHN0Y0MzMzk4VjRXZklyMWI1TXNnR0ZTM2xT?=
 =?utf-8?B?dkRKNWNVbnRQYU5hUCs5UjVsLzZWMnlzTkZWMGxiQWNncXYreEdpUUV3Zkdm?=
 =?utf-8?B?Q3dOSnc5Z3lQTEx1a242cGRNTDE5bWV6SDdTQkNFYnFqNWFiZVNaNkJLZ09Y?=
 =?utf-8?B?Q3ZncUlSVi9ESGRvTUthUldPSldZZTVDdUNRaDN6aWlPRUxJbnFkWUg5ZVpU?=
 =?utf-8?B?NHl5ZFJ4YVJYZW9vQ1RwR3lUK0RkNUpKbmRxYTdHWklVdElIa1ZBRS92Sngw?=
 =?utf-8?B?RklvdFRPRXJhZG8yMGNYeG5QdjExOGV5WHRaQ3JSUTgvcGllWko5dlM1N0cw?=
 =?utf-8?B?WFhuTk93SnpyNkMxaC9tWDRaMHpnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	vKXhjF+5z4gxCnlwC4GwWZqVbmcxI8cxZRIKuRaOHGOjGSf/O9D+dheZkA6EMhFpsMlwfhgMUulPzzjiTcdwyLfn6+mh/lc1ESkW4SfytSCn/pA6K+isZ0+7rIIvyew/zqpf7AJJaBh6Rh0fc4rlflHNepHuW2GbXOyrAqBBSv1hXy5nZrIs+PzWUrbzi0IoLopOsTh19YuIKqLGTYyAsd03MRSFtmlrc7cXFYv9IyjoO5qM+6ZGf0L8KURKcHZV1ptvSXQIJ9NarBO+npTfeuRhJ6o1FkYY0EP+XkPU6toCI3dP2bzB8G1rvLo8+TJfTHZ66C0r7kiRdFQq2I5WED9LdbfSly3zDTU1paye7ar3IOYmmjtUW0MFCMDFBTp5ccPqa15NHL3mRJkf9w328jmJNbvG8uWKx12mr24wuxpylO0pHUT7eENgPwrwdfA8
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 17:10:53.3866
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6024214c-6d5d-48c0-82c7-08de68c75902
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E3.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5739

On Tue Feb 10, 2026 at 4:39 PM CET, Jan Beulich wrote:
> On 10.02.2026 16:10, Alejandro Vallejo wrote:
>> @@ -1033,11 +1035,13 @@ long arch_do_domctl(
>>          break;
>>      }
>> =20
>> -#ifdef CONFIG_MEM_SHARING
>>      case XEN_DOMCTL_mem_sharing_op:
>> +        ret =3D -EOPNOTSUPP;
>> +        if ( !IS_ENABLED(CONFIG_MEM_SHARING) )
>> +            break;
>> +
>>          ret =3D mem_sharing_domctl(d, &domctl->u.mem_sharing_op);
>>          break;
>> -#endif
>> =20
>>  #if P2M_AUDIT
>>      case XEN_DOMCTL_audit_p2m:
>
> What about this #if, though?

It missed the grep. Should've been changed too.

>
>> --- a/xen/arch/x86/include/asm/mem_sharing.h
>> +++ b/xen/arch/x86/include/asm/mem_sharing.h
>> @@ -9,8 +9,13 @@
>>  #ifndef __MEM_SHARING_H__
>>  #define __MEM_SHARING_H__
>> =20
>> -#include <public/domctl.h>
>> -#include <public/memory.h>
>> +#include <xen/sched.h>
>
> As it looks this is for mem_sharing_is_fork(). Can this then please move =
...
>
>> +struct xen_domctl_mem_sharing_op;
>> +struct xen_mem_sharing_op;
>> +
>> +int mem_sharing_domctl(struct domain *d,
>> +                       struct xen_domctl_mem_sharing_op *mec);
>> =20
>>  #ifdef CONFIG_MEM_SHARING
>
> ... inside this #ifdef? The mem_sharing_domctl() decl may then want movin=
g to
> the bottom of the file.

Sure.

> Otoh I wonder whether supplying a stub wouldn't be
> neater for the single use site.
>
> Jan

Stubs make it really awkward to read the headers. I'd rather not make an
already overcomplicated one worse.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 17:24:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 17:24:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226763.1533248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vprSz-0002IS-F6; Tue, 10 Feb 2026 17:24:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226763.1533248; Tue, 10 Feb 2026 17: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 1vprSz-0002IL-Bu; Tue, 10 Feb 2026 17:24:01 +0000
Received: by outflank-mailman (input) for mailman id 1226763;
 Tue, 10 Feb 2026 17: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vprSy-0002Hq-2m
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 17:24:00 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47743608-06a5-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 18:23:57 +0100 (CET)
Received: from PH8P221CA0041.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:346::13)
 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.9587.18; Tue, 10 Feb
 2026 17:23:53 +0000
Received: from CY4PEPF0000EDD2.namprd03.prod.outlook.com
 (2603:10b6:510:346:cafe::e1) by PH8P221CA0041.outlook.office365.com
 (2603:10b6:510:346::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 17:23:53 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000EDD2.mail.protection.outlook.com (10.167.241.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 17:23:52 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 11:23:50 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47743608-06a5-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iW7Aqw0NDV1qYK/ajsumP72m5KoCK53KJtQ8o6rbsaieSwHTz438lE7J34b5wRdeCfSle7pT9GP2Yinjzl7+G6JbSnj7eOphturXAc6cUdtEO4Em2qbSWRmFwcFCXk4/Idpyrv5fS2k5kFK+iHSVGGcFK02XrzC7Fwkotgxo8I2tma6A1EuMCzxUMH2Rw0hZLJxfpSrMA3f+nowMBv8X23j741BfmCSv1I/7XY+2tWxP6AusI+jy2tprdpvZMwsliKMBj6fzOwbWUcB570UNe7XMjtB/FnfX+zSNUXh/kLzq7t2G8d9t6/vBGW8W0RylxW599Rtf6ba8/PTO5ExgOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yzLf1HJy025YObr3l5sYuEY4ZZwt/s7E8Ls4LQGV/i8=;
 b=fQSIsqXjrr91+oOiIy0gM/e9WhkMIcRdjA5iWArOWQevtqTyEaqknav0gQBDJ1u6otIEeu+M/KnpW4P/YlfjRHMVE+2HOf6yh5rkIFUaMxqzfLztlsHvYmOITrn731PflCcu7O4yskEHj9oRArAjkTmfYXrYMQuiR/p2Kb0PkWb1m3d7PjZ9aJzMiws92lPQihTgp4aQfWbqYkIT0CUKearGN6+kz4YVkhcpbONIXyLDePwagXI4l+DXRr1oncwCwTKeadorLYcO8636uAVzVWP0xiwLza2o76tbgmKOvFlG6Zr4fIAd9qq0aSXV91YEgBrNRQQP210NDQUveIaM+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=yzLf1HJy025YObr3l5sYuEY4ZZwt/s7E8Ls4LQGV/i8=;
 b=XHLXA7y0AWiwDu6nSwS8DSMspPL3/X0JSTkyDBTqKZ/GxMxXC9M9q68fYzPDTSObiKkWvbxn0UIWDdXx33zmqJL0ezNCoX3AxsPphn+erwk/Gz93jRxDWwom4qZsZlTukiXL43pS/HObEstTwpDBA1lp4cry4pzCpX8iWTjF04w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 10 Feb 2026 18:23:48 +0100
Message-ID: <DGBGFWPXJZ0A.W820CAYMCWV9@amd.com>
CC: Jan Beulich <jbeulich@suse.com>, Andrew Cooper
	<andrew.cooper3@citrix.com>, =?utf-8?q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>
Subject: Re: [PATCH] x86/domctl: Conditionalise x86 domctl using DCE rather
 than ifdef
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260210151008.217830-1-alejandro.garciavallejo@amd.com>
In-Reply-To: <20260210151008.217830-1-alejandro.garciavallejo@amd.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD2:EE_|IA0PR12MB8648:EE_
X-MS-Office365-Filtering-Correlation-Id: 307f544f-baa4-40ef-cc3d-08de68c92980
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?UnlIVGgyUFhscnVITGtCeWZncmpWTm55cnhGcUQrZmpKTGlXNEMvcmcycnFS?=
 =?utf-8?B?aExGVVNHYTdLZzV0aVZUOXVFSC9WTTVWZ2htR1ovNitqUmJ5aGZmYkZhZGk2?=
 =?utf-8?B?Y2ZncS9uSEplTzVvS0hrZHcxRVErMHpvYUEvQWpJbFB1M3lMdWpINDl2VzdX?=
 =?utf-8?B?ZkpXRzRJL0hCS29OWmtGeEZvSTVQUnFRdDZjTlhvUjJnbEMxV0F0WUp2WjJx?=
 =?utf-8?B?NkhMb0RiWEpYYlFNTXJvNXhHN1JBVUcweUhNc290NjludGl0SWNKVDlHVTJT?=
 =?utf-8?B?cE9WbVFuSG9PL2N2WXJ0U0pORU9uNDdjbzN2SnIrSk1oajl5L1pQZWo3ZmZH?=
 =?utf-8?B?YU1sR1lWcUUvQ3o1YzJNVjNEeE42RHRJUTNEMG12dkROMTlyS2szNlIvbk9y?=
 =?utf-8?B?cTk4bmNYL0FVenVXM3dhRUZTeWw2bERpMmZ2NW05dmFpR0EwZ1lmMWQ5aGU0?=
 =?utf-8?B?Smk1OGh2dGdkZ3Q4M3YvZmlHcUNKYVNjRi9hNE9mNU90emRweVZKT2EzMGFh?=
 =?utf-8?B?enJQVzFhbTJIQzZwL29rS0grSU90Q1RWYkJRa0ZjRjJBeXZHa1Rqb041dVJK?=
 =?utf-8?B?MnhIRnpLUmNMRUlURmhCQlMzcmhMUlVBbjh6aUU1bzFnYW1JUXlmMXNFK0tK?=
 =?utf-8?B?Mk9UNll3Z1hld2dQNmFxV0k4MmVBR095YUNScHlOSUM4VTJzdEpNMVdLVnZR?=
 =?utf-8?B?a0ZvSnV1MmVQWHBFUDg3ZW1OQm9mUnJ2dVpTRU94bFhjUkJJeXhwOWIvTnBL?=
 =?utf-8?B?ZWdjSW1PeWY1MHlmcndDcUFVa0xQeTNDTWcxd3VSZlZnSUtNOU9JbW41ckZo?=
 =?utf-8?B?VEtRcUFCUnd0RjFTNFpocGsrVUQyeVk3ajh6azBNSTdtK2RYekJ6ZDNGdENO?=
 =?utf-8?B?a3ByRThCdktjYnpVMFE1UVVYUnFWVmJ1R041bjByZUE0dzhCbUx4WGxxZEpU?=
 =?utf-8?B?VVJzcFdiSWdtaUt4dkF0WGo3OU53V21VYlJlUUlzM0pzWHVCSnlrcmVoS3lX?=
 =?utf-8?B?YlVjSzBITHdWd3ZpdUZsMXNwd2FPTUlORk1BdndaY3c3V3RTSURJUUphK1Fu?=
 =?utf-8?B?L1BkeGpOR0dxa3dlSVdHVjFKZnNYUHR5NmdLSmVwTXZnTFYrUGlPU0VOZDZ5?=
 =?utf-8?B?UmVFRmlnUGlwbWdJeXJieXVmTUd0ckhudUFMNXIvQktJR3AxWEI4Y3daSEh5?=
 =?utf-8?B?Mk5BZm1Gc2VZZnZQQ1pLYlJuY1FDYUZLUkYzV2RaWUgzMStUdllKT21nS1hO?=
 =?utf-8?B?TzNySGZjb25qMk1wbzFsMThzbUhKeVJxU0FYODBlQXp1Y3lXS2hXWXNuOFVl?=
 =?utf-8?B?Q0pGU21NUHdSNHNTTTBEY2ZEbVhwaExJZFVpcEdQTndUZTBNcmtEMUhrbmlt?=
 =?utf-8?B?NCtXQ2NPMHF5bkVaVWRDMFloSms4RHZXNlF4K2RkMFM0QWx1NHlYUm9RV25a?=
 =?utf-8?B?eDJHVUVHQnp0Z1dvcDJjZkdXQXRuZ0RCTU1SYnhzMFpDWlV6YlI4ZUI0UUUv?=
 =?utf-8?B?NDl3QVFPWnhtaHZTaS9oUENnaTZxOUw3bWZWV1RENHdscVhZTjhtc3Z5V1BQ?=
 =?utf-8?B?OGQ1RkNSRlpGU003amVGcy9YdEY5ZmZtQUFIQkppRlU5WDBQTjlZeGpVc0lk?=
 =?utf-8?B?b0ZqYVNKSlpiUG8zdE16aE5mNUQraVB0anlMdW96VUFRMUpzUUNXamhjUlNZ?=
 =?utf-8?B?VGRqQy9qMUY4M2FJc3E0WjdJTkIrNXU0WmNaazh0SGFvQlZLK2REWXdpNldp?=
 =?utf-8?B?dVdmcjhZSVM4SEt2b0Z3V0tCTTRBZDFwRlRjaTgxUU1LbXZ0K2R2bWhhbFJ1?=
 =?utf-8?B?MlpXc0xHdFNxNDRtRzRQUS96aFp5WEtHZUNPN3FOdnlGSHNycGRWL2FnZWlQ?=
 =?utf-8?B?a3VtR0x1a2ttOXlrM3poejJHOVJVR2dDTzJIOG9iOG10ZmE1V0JqSFVMYXV3?=
 =?utf-8?B?dTFlb3lrUkxoUzBheHJhQ0J0MkFOZ1BFUzJpdElzRGZkQzFBeVMwb2xkZ2t1?=
 =?utf-8?B?RkZjOFhCdTludVNpZU4yS1B2T2pkWXFkLzI0Zk1LWFVIVHZHQ3NrTU5YR0J1?=
 =?utf-8?B?enVDdCtPNFkzUHc5SU13QS96Q1ZwYUZmNjVWNW9vM25zdEN3cE9PYkZ5dm5F?=
 =?utf-8?B?STNsREVuZG9JUGZnUk1GeTB3VVhublJYdG41SzNSM1grR0c4Y05yTVNrQ1RG?=
 =?utf-8?B?K0NiMjhleFoyTmo1RGxqb002ZzlIZERvaElPVXJ4QWlleVdMN3k2aWZTTUJM?=
 =?utf-8?B?Z202RkI4cTRkb2M1SC9JdEhPNmhRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	E2+z54T9uAQnMpNXtmcS3aJUpfllsHbNsceTVRcnjq00bs7V/ydK9svRcl/gHxryQ7LskRwxZvXahrOIzG1IxylDdnZT8Tr3xKeqz/6HO7wkQeRu1ZgtzBE9qc/4YocBlS3kdL3fzyNKdW+zXf04Ayb0WY1tr2lK0Rndo/cznHrj5oK4F1vTUjVP8HkEGA553NlczZx/ZNmreLaM23P5c82bdOIHVz5gfij0A8OvooVln8HqNEzVKJspDBKuyOzJPDuV2T9/oo2bO90O37VRpBg/PjgvBVihipBm9GRMvPZEMpYK9z/a+vx2qPRk1UupbWvxEJv44dVvC+Uvr3v6oBGcqHRJ/RKRPGk3PnbiB3ko8KMXC1WwxrUoAMdWBzTFD5I9GffCN+gDEF9+ORXO8Q2jjxXMiXjDnwTleylbMHmKnpExkabDa039JMEEsT4f
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 17:23:52.6339
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 307f544f-baa4-40ef-cc3d-08de68c92980
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EDD2.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8648

On Tue Feb 10, 2026 at 4:10 PM CET, Alejandro Vallejo wrote:
> Make them uniformly return EOPNOTSUPP when their dependent features
> are absent. Otherwise the compiler loses context and they might return
> ENOSYS instead.
>
> debug_op, mem_sharing_op and psr_alloc change behaviour and return
> EOPNOTSUPP when compiled out, rather than ENOSYS.
>
> While at it, remove the public headers from mem_sharing.h (forward
> declarations are fine) and add a missing xen/sched.h include (for
> complete struct domain definition).
>
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
>  xen/arch/x86/domctl.c                  | 27 +++++++++++++++-----------
>  xen/arch/x86/include/asm/mem_sharing.h | 11 +++++++----
>  2 files changed, 23 insertions(+), 15 deletions(-)
>
> diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
> index d9521808dc..7066a18735 100644
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c

[snip]

>      case XEN_DOMCTL_psr_alloc:
> +        ret =3D -EOPNOTSUPP;
> +        if ( IS_ENABLED(CONFIG_X86_PSR) )

This was supposed to be !IS_ENABLED(), obviously.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 17:30:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 17:30:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226773.1533260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vprZc-0003zt-4c; Tue, 10 Feb 2026 17:30:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226773.1533260; Tue, 10 Feb 2026 17:30: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 1vprZc-0003zm-0y; Tue, 10 Feb 2026 17:30:52 +0000
Received: by outflank-mailman (input) for mailman id 1226773;
 Tue, 10 Feb 2026 17:30: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vprZa-0003zg-Oj
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 17:30:50 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3b8fffec-06a6-11f1-9ccf-f158ae23cfc8;
 Tue, 10 Feb 2026 18:30:47 +0100 (CET)
Received: from SJ0PR03CA0169.namprd03.prod.outlook.com (2603:10b6:a03:338::24)
 by PH7PR12MB7817.namprd12.prod.outlook.com (2603:10b6:510:279::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Tue, 10 Feb
 2026 17:30:40 +0000
Received: from BY1PEPF0001AE16.namprd04.prod.outlook.com
 (2603:10b6:a03:338:cafe::f6) by SJ0PR03CA0169.outlook.office365.com
 (2603:10b6:a03:338::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9542.16 via Frontend Transport; Tue,
 10 Feb 2026 17:30:53 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 17:30:38 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 11:30:36 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b8fffec-06a6-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w29StFONBwonAaXArCwh+3XIHCAX6nj6ouohaQwG0EdaV7CYVscoQB/k9Da4I2Wc8fjMGMtkSkq04MJIGL/4sDctR2A7mSAiHoJDmFlHMuW9H3aep6a9spl4gnIJL2mMA2NeDW71WcGllQkOMXeMrsepfweX6zFGas5zn+XV86ugYL57Y/2SASWkyrid93xER6JXWGpEEUDPJT9G3HuSC4nkVDKJ1dnAArOq4bcU67FXMpbva5Q0PUsg0rZgivfoXd3ZEStCQZAWOVG4/LwczUw2MsqCJ19AFQFVNVoFci7cYMrbE7Ou/8gcCd8ypAIv5FowiCtkX0t0f5tg0049pA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=0CUBMuaEddQoAP0o8NpQt7SpZhElFiF6gbPVIufVpRA=;
 b=jkC4ErvAt6jQgGWx/ovCvdTmUuNVaoyR/dfS7zopJR54E3qcLjfWxnBmx7occwq2x47pL3fTC9Rpc3aQLuFz0gQou8Ft59L9ZyIKPFIH23Ez2l3nwRyWr9vSHZpOz1ncNO4jPeo7zdadsQPhR0g2EFrjObK10N0aN2zFQG708nILSJm2s/+ZgBxAQFSTTLCiw9HOcfHYSjtIltpjTIFZ2o6P9RQ6MtpQSNx9dzQA7fquPef6kiwdXIgBgOwXVK5B+encIZlKp1FqySHyOY4jaI2W5JKpfTSk3vFRhRWh4ZK16NbIpqrpBRM+rjljNWg/uticUwi0jUvcSXsjWRHhoQ==
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=0CUBMuaEddQoAP0o8NpQt7SpZhElFiF6gbPVIufVpRA=;
 b=ZpR8rn7h9Yf/JMrf05FOFCsAjrZ0YS+oRcyZaYGdXwm5S9haIDfuwRnlxC2SPdTAQLPwvNCN6vwhTdgT3o5uASGEcSEtHb2CTECttXh5UPrnFsowOUSnRatjYdTCI667M/CPJpSYLlmsEI9pISTaFWnb/d/ytK+WXsCSGMcX4Ew=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v2] x86/domctl: Conditionalise x86 domctl using DCE rather than ifdef
Date: Tue, 10 Feb 2026 18:30:21 +0100
Message-ID: <20260210173022.257030-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE16:EE_|PH7PR12MB7817:EE_
X-MS-Office365-Filtering-Correlation-Id: e9952b4d-8f74-4b68-3a41-08de68ca1ba8
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?3qaUirZn3Nslnan2rPNgCMTT2E6zwZoGj3H4QozxjXxjuwySQbM7hSxZybfR?=
 =?us-ascii?Q?C43RO7E600iJuXt7at9Wv2Pwg+ZCGKCyGTFytLcWEMYLrMedU+a2uzC0aPLA?=
 =?us-ascii?Q?QeJ5rNo4kMF95qxj3bR1fIBPuvIxl5HjHm2s/RyzRjR/DDaVMVpV8pHNeGlF?=
 =?us-ascii?Q?3Kanhc+D2wrdF3ZYVD0gn2AMkbjVzZmmj704UL/j7+9iZN3uJZ/sGcO/FiK3?=
 =?us-ascii?Q?Xi/JoERRBBTQ2E8j1iFA79hNIwyfNBQXvtV8j3/lpxb1gK3XxfGAHvhrSvK1?=
 =?us-ascii?Q?SBzJLs4Pys/FIttGJ/O3BJhT9+G3J7jNpzZZG7dO2j/uUNLUH6cUzwLq4CwH?=
 =?us-ascii?Q?k2jAIRmeqaThBeMV3XsOJcBx6E6BBdGsF34TVe6kgNBcVL8o2d3NbD4cPlaq?=
 =?us-ascii?Q?0fcqtNMOBkoxJTQPd+4zmqX5j0lkezpADSKaLNvkh9wg++N9KdVm73qQmkg1?=
 =?us-ascii?Q?2PcMjqA6JP7//6V7xJng3l/P7ko757B9PkralVtwTrehJwv/yIk25ECfkS6q?=
 =?us-ascii?Q?anoqR5qgrgTUOquzjoiSWXRARA+vpBINRXcSiST7yi0j5TmvghbN6NMGukMF?=
 =?us-ascii?Q?RixczyN0BHw7ziIKbgxA4eS7Lle0agGJ/65/2D3gTnwScZMDmrPUPgaJ99aP?=
 =?us-ascii?Q?q0vy3ikL6lOILhEjbqe024gtAuSkjjEhYglheleQsdQAj25yeKihowfg8WG+?=
 =?us-ascii?Q?kpX9kTpu0/6nqQjWQ2lV6E3WBug+xXiKvQLPMw1d+lKT8U//lTjS0r+WTOZr?=
 =?us-ascii?Q?ZmIpV38Edr5U2fjX6LbmvVwJqJiz+2klRLkfDlb/oHFR4xHpWug1XTxlAodj?=
 =?us-ascii?Q?VA6QTvwTnlwXgmZQEjiDugyFYuGHRLognVRd3hmvvCqZjDTgHrxVi8/pCiEu?=
 =?us-ascii?Q?9PnneFsiq3vNUFIBxWyoLXdcNavGvaEbh8CeJZxG/3Deu/CVhmahxzV1WoLE?=
 =?us-ascii?Q?gjUKPChWb0NU0O9eRdq7Y7NJRP0GF4e9keeSGH8tToVx4jDV43MLZj71+16N?=
 =?us-ascii?Q?ve3/N2McUfdxNLICoWEiOnZxgr4i+lpBfaAV3eCcrQEIc8IBwRWHWVYrwU/A?=
 =?us-ascii?Q?cQY6gFG7QqX+bB3tGdpSpOQbdedNnC+EXZngoXSLrHBzH/ta/85Dck8AuA7K?=
 =?us-ascii?Q?V7Bh6SEmWqTrLdkCO80BvqsC3wA9OL+5UwpC+eMBaqBYBeAR8U1f7o6HHrOX?=
 =?us-ascii?Q?Wpi+vi1cHXiVyyke0V4hYpUEREbEIH6zyUSCx8IsmSAjLqpr8IBnQT9jKja7?=
 =?us-ascii?Q?ir8l56n66tvwIC3MMcVDYrDedmVoz6f0pOfFD2ISTHqCPmrH07HaAmY3t5nx?=
 =?us-ascii?Q?wdPrYat4vbakyrwo+khihW0OfUCQuf0THCVMWzF6qwnFYLimectb6qiGlqNI?=
 =?us-ascii?Q?epQczr2+ynFfHUVJHHiFaDjiMpDOyClWoD3eYsiqqK5qmshiGT9p82dojVHR?=
 =?us-ascii?Q?KH/6FlLNVVED/kpNqYHAhzkD8DgE8RgSb8h0HHcPsIFw31RoaWLx/rD/5tWq?=
 =?us-ascii?Q?NM92c4orMoTy2UQETFcptEKGY+WMxlnRC1j9f4lUlcjboRNxCsfdvfOybeDV?=
 =?us-ascii?Q?ESELJepC5rNadFLygk0OWHdyMnGGGpJaXvouPHtupKNVpA3QCwD0ZIn7heLM?=
 =?us-ascii?Q?rChq2UfjeJYvaFBS9/KScmOjIdU4bdX79bCqsePJT6HezfPu92jBwfc5XC93?=
 =?us-ascii?Q?9WDL7A=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3AdaGVoOFPWouJJe19fIfXV/DpQZC4Xzz3/oN85tmjKWIVOWlgDa7zb0S/l4ani0Gs8d5I+WkLpXBbif/Y1w9sHLO++brSTZ0hXksdT8RVdzyaXln7trLF24Bjn+PrUd9O+n9T3wjIbcEX04+Yq6Q5HPS32FMPjwWXdvbfGCjfZYPC6W999jgsGrcQ6jWuIrxrZRVbNMugB62fAqMflDd+lk375ySrW4zKI6xvPlVlA+f885zy6y9FZumw5UsAvi69cgq64K9yJq+DSeDVzY2d4SO4xXCFNsLaVXS9jWzllgpPF8iL9ITI0JZ9EXX+xtNDAJA534ly7VVlbjCV4h0B0DBMO/o71DlvxJhzv6c9dfTKTcryfsZlvJBdjOZcox/sxZ6+ri5gck6o90ajy5pRE4uY48xHOjrAAICYRINMyseaRA1HzxrkPwxWiW86wM
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 17:30:38.8552
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e9952b4d-8f74-4b68-3a41-08de68ca1ba8
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE16.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7817

Make them uniformly return EOPNOTSUPP when their dependent features
are absent. Otherwise the compiler loses context and they might return
ENOSYS instead.

debug_op, mem_sharing_op, p2m_audit and psr_alloc change behaviour and
return EOPNOTSUPP when compiled out, rather than ENOSYS.

While at it, remove the public headers from mem_sharing.h (forward
declarations are fine) and add a missing xen/sched.h include (for
complete struct domain definition).

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
v2:
  * Also cover p2m_audit
  * in mem_sharing.h, restrict the xen/sched.h inclusion to the ifdef.
  * bugfix: make psr handler correctly exit early when !IS_ENABLED(...PSR)
---
 xen/arch/x86/domctl.c                  | 33 +++++++++++++++-----------
 xen/arch/x86/include/asm/mem_sharing.h | 12 ++++++----
 xen/arch/x86/include/asm/p2m.h         | 10 ++++----
 3 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
index d9521808dc..942f41c584 100644
--- a/xen/arch/x86/domctl.c
+++ b/xen/arch/x86/domctl.c
@@ -220,15 +220,15 @@ long arch_do_domctl(
     {
 
     case XEN_DOMCTL_shadow_op:
-#ifdef CONFIG_PAGING
+        ret = -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_PAGING) )
+            break;
+
         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:
@@ -842,11 +842,14 @@ long arch_do_domctl(
         }
         break;
 
-#ifdef CONFIG_HVM
     case XEN_DOMCTL_debug_op:
     {
         struct vcpu *v;
 
+        ret = -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_HVM) )
+            break;
+
         ret = -EINVAL;
         if ( (domctl->u.debug_op.vcpu >= d->max_vcpus) ||
              ((v = d->vcpu[domctl->u.debug_op.vcpu]) == NULL) )
@@ -860,7 +863,6 @@ long arch_do_domctl(
         ret = hvm_debug_op(v, domctl->u.debug_op.op);
         break;
     }
-#endif
 
     case XEN_DOMCTL_gdbsx_guestmemio:
     case XEN_DOMCTL_gdbsx_pausevcpu:
@@ -1033,15 +1035,18 @@ long arch_do_domctl(
         break;
     }
 
-#ifdef CONFIG_MEM_SHARING
     case XEN_DOMCTL_mem_sharing_op:
+        ret = -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_MEM_SHARING) )
+            break;
+
         ret = mem_sharing_domctl(d, &domctl->u.mem_sharing_op);
         break;
-#endif
 
-#if P2M_AUDIT
     case XEN_DOMCTL_audit_p2m:
-        if ( d == currd )
+        if ( !P2M_AUDIT )
+            ret = -EOPNOTSUPP;
+        else if ( d == currd )
             ret = -EPERM;
         else
         {
@@ -1052,7 +1057,6 @@ long arch_do_domctl(
             copyback = true;
         }
         break;
-#endif /* P2M_AUDIT */
 
     case XEN_DOMCTL_set_broken_page_p2m:
     {
@@ -1240,9 +1244,12 @@ long arch_do_domctl(
         break;
 
     case XEN_DOMCTL_psr_alloc:
+        ret = -EOPNOTSUPP;
+        if ( !IS_ENABLED(CONFIG_X86_PSR) )
+            break;
+
         switch ( domctl->u.psr_alloc.cmd )
         {
-#ifdef CONFIG_X86_PSR
         case XEN_DOMCTL_PSR_SET_L3_CBM:
             ret = psr_set_val(d, domctl->u.psr_alloc.target,
                               domctl->u.psr_alloc.data,
@@ -1305,8 +1312,6 @@ long arch_do_domctl(
 
 #undef domctl_psr_get_val
 
-#endif /* CONFIG_X86_PSR */
-
         default:
             ret = -EOPNOTSUPP;
             break;
diff --git a/xen/arch/x86/include/asm/mem_sharing.h b/xen/arch/x86/include/asm/mem_sharing.h
index 040962f690..c66cc912db 100644
--- a/xen/arch/x86/include/asm/mem_sharing.h
+++ b/xen/arch/x86/include/asm/mem_sharing.h
@@ -9,10 +9,12 @@
 #ifndef __MEM_SHARING_H__
 #define __MEM_SHARING_H__
 
-#include <public/domctl.h>
-#include <public/memory.h>
+struct xen_domctl_mem_sharing_op;
 
 #ifdef CONFIG_MEM_SHARING
+#include <xen/sched.h>
+
+struct xen_mem_sharing_op;
 
 #define mem_sharing_enabled(d) ((d)->arch.hvm.mem_sharing.enabled)
 
@@ -92,8 +94,6 @@ int mem_sharing_fork_reset(struct domain *d, bool reset_state,
 int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn,
                               bool allow_sleep);
 int mem_sharing_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_sharing_op_t) arg);
-int mem_sharing_domctl(struct domain *d,
-                       struct xen_domctl_mem_sharing_op *mec);
 
 /*
  * Scans the p2m and relinquishes any shared pages, destroying
@@ -103,6 +103,7 @@ int mem_sharing_domctl(struct domain *d,
 int relinquish_shared_pages(struct domain *d);
 
 #else
+struct domctl;
 
 #define mem_sharing_enabled(d) false
 
@@ -147,4 +148,7 @@ static inline int mem_sharing_fork_reset(struct domain *d, bool reset_state,
 
 #endif
 
+int mem_sharing_domctl(struct domain *d,
+                       struct xen_domctl_mem_sharing_op *mec);
+
 #endif /* __MEM_SHARING_H__ */
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index 9016e88411..b2721f8c11 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -806,12 +806,10 @@ static inline void p2m_pt_init(struct p2m_domain *p2m) {}
 void *map_domain_gfn(struct p2m_domain *p2m, gfn_t gfn, mfn_t *mfn,
                      p2m_query_t q, uint32_t *pfec);
 
-#if P2M_AUDIT
-extern void audit_p2m(struct domain *d,
-                      uint64_t *orphans,
-                      uint64_t *m2p_bad,
-                      uint64_t *p2m_bad);
-#endif /* P2M_AUDIT */
+void audit_p2m(struct domain *d,
+               uint64_t *orphans,
+               uint64_t *m2p_bad,
+               uint64_t *p2m_bad);
 
 /* Printouts */
 #define P2M_PRINTK(f, a...)                                \

base-commit: 2fa468919c39aac189623b6c580ce4ff8592d799
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 10 17:43:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 17:43:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226790.1533269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vprlW-0005nD-87; Tue, 10 Feb 2026 17:43:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226790.1533269; Tue, 10 Feb 2026 17:43:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vprlW-0005n6-5Q; Tue, 10 Feb 2026 17:43:10 +0000
Received: by outflank-mailman (input) for mailman id 1226790;
 Tue, 10 Feb 2026 17:43: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=iBUt=AO=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vprlV-0005n0-F7
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 17:43:09 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f367a497-06a7-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 18:43:04 +0100 (CET)
Received: from BN9PR03CA0791.namprd03.prod.outlook.com (2603:10b6:408:13f::16)
 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.9611.8; Tue, 10 Feb
 2026 17:42:57 +0000
Received: from BN2PEPF000044A6.namprd04.prod.outlook.com
 (2603:10b6:408:13f:cafe::7f) by BN9PR03CA0791.outlook.office365.com
 (2603:10b6:408:13f::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,
 10 Feb 2026 17:42:56 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000044A6.mail.protection.outlook.com (10.167.243.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 17:42:56 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 10 Feb
 2026 11:42:54 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f367a497-06a7-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JsnvWNQDIwEBRAC4oJVCUckhdsjuZIG/z8tHKzxciYiI5e5xxsziVWfuvA4mkhp6AJBhYtDY7LgjX771T7+iOwJU/9QFWYIqygy3x2ArVZ3hxT+mDJrrZ+7Jl3wC5j+4SDH/IdwzFwUQwyU078vOei8JHtCQhjDysMPK943K5tQn9vssQh6YKSCmDkI8beMYPIo5dmIZDqRxAXfIsXL0cZUOZ4QmU1XJVwYop7RoGxvMcORkv0tiKew0RrsK3XFPiubDrRkt/mGUQ6me03nUG8Z/r8noWIRcqjkvEVT6ql67dPyNiXTvEC/I6G+qRzL4gbyJtyKzlNwPSGqGRIevVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wnL1BC8U3rMzvorEm/ZD9bVsRk3dyobt9WUHgma9G18=;
 b=e7wIfLbRYWMXfcoxqTAV3I7Vk2/J4tsypwmcWPDPeNTve4HovXBqMSZ1wLB/iC66luZeeo21BJR6W8ExtFF42x+u5DXXRpeYtCN1NoUcYydnzCU5IkI/PPuaEtURYICHhBM1qrRi4x4pXMThMbP+C2l+1OxYutHWkGftp7IpG8X1ee1io0bdBtf1JS78emkGSD1B/TP23s9DanDaCdggOLXMCJuRb6AWhIJ+nWrA/xtwieKTfh2VYJdl0OUzVTHmuQkocPQsqd7sshTKQUmcB06jwCCBnZVfOYsd+SBucH7zWeQllg2XYQg8cSaP+7hF5MRntWtYi+i8UORlaOHqqw==
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=wnL1BC8U3rMzvorEm/ZD9bVsRk3dyobt9WUHgma9G18=;
 b=5tykJ+O8EV2IqPFx1TBggF+6k9j8dMGylrtSeOHQe4jmbeM0TqiPsi0QeA+OpMkh6NxFOVgHPwZ++vKdwbPvPvM/FoS8nQxHVqOrSF6u+NeDVcwagTqizj3ZOUH8MiuRvnFnhEgCIGpxtcrgl/PKyMWdtASJHX8bL6XRZ6ywQcY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 10 Feb 2026 18:42:53 +0100
Message-ID: <DGBGUIAF6Y1E.1G3GWLHDZ0Y26@amd.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>
Subject: Re: [PATCH] x86: Add Kconfig option for log-dirty tracking
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260209103118.5885-1-alejandro.garciavallejo@amd.com>
 <c5a9075b-6ed0-4778-b3ad-fe6647dad8b7@suse.com>
 <DGAJ9XN03HPS.TC0OLO5PJN6H@amd.com>
 <1c33beef-f638-4e62-b38a-8b79575adf18@suse.com>
 <DGBB4JCFAPUT.GTAWF68EZP9Q@amd.com>
 <71b236bc-beb9-4fec-ac33-6d877ce91dd2@citrix.com>
In-Reply-To: <71b236bc-beb9-4fec-ac33-6d877ce91dd2@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044A6:EE_|DM4PR12MB5915:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d872495-e911-4cad-5c9f-08de68cbd38a
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?ZEpsZWYwbDRMSDFXWkxRdlRzcENGOTNVQ2ZLYUlrU2w1bjh3ZU04QjB0Wjlq?=
 =?utf-8?B?YnlFSzZnRzRQQzNFaWpsT1d2YjJiZndpNVJqVUV2UUhnZjlYWTBzajRZdGh3?=
 =?utf-8?B?M1hsejREdk95RDJMRk8wUEtIdHV1NjBIeUJKTGR3N1dQSzZQNnpnWlpyT0dx?=
 =?utf-8?B?ckRSenBWeE9vSS91KzJrUzFUQ0lEaXlNZjYvRUk1cXFBN0FGRHVlQXpTSXlK?=
 =?utf-8?B?MG9rQlYyZjliZ3YzN2k3bHRJUHducTBLZWhKMWk0NHJ4dUhwTXFGWnNsWUMv?=
 =?utf-8?B?T2czRFNKdUFYV1IvZTVuRVRBWWo1VTRYTnhUQ2RIQy9VcWV0TmVCOUtkbGEz?=
 =?utf-8?B?UFcvZ0YrQXBwWGxTWW83TzBTL1pNV0cvbGtQS3RJSDFlSS9LNUExcURsU21i?=
 =?utf-8?B?bGhuL2FTOGJidUgxdFRoZkhvQS9yOElsMm5KQ3BvNitnWnVMNUVQMGtuUFVC?=
 =?utf-8?B?UGdZRVhYc2Rva3JSZjZKVjVWUjRMaFhBN3NmcnlJeXpyS1dXdnBhelBXNGtp?=
 =?utf-8?B?RTFQQkMwK2Q0Q1VXbm5uaFpxMVQvbUlCUjh6em9UcU9tVVhsazhGM1pGVDZH?=
 =?utf-8?B?cEE4Y1lXbWJIVnlzbmZEUDl0NzVXaERhZytwa2ErNmZBQ1o0QVY3ZGcxWG1K?=
 =?utf-8?B?MGdFYXpnVGJNNU92dHpGbVFqa3d1WDNFSWRnTnFjYW1sWUYzeWxaTnVoa3I2?=
 =?utf-8?B?WkZ2enk0Y3NGVFRNQmJrckpHL0h5TXlxWWE0R3FaUDFZd2VBMzIrK2lxOGpK?=
 =?utf-8?B?clNFQVlQVDJpcG5mVFRmbGZTUERVWk5PaytHT2pHRWhjV1ZZaktyRHRCcGYy?=
 =?utf-8?B?dFhQMHhvL0FqSnJJY3lBSTJ3VDkyNkI2OEE3VzVkY1NPVkxpanRKUFhKbDRi?=
 =?utf-8?B?T2Nla3VWV3E0dEh6QmtER2MxNDJGUi96RytxeTlTdUJIVTNxVWJjREpGTjRv?=
 =?utf-8?B?bElvTVZkT2RKMFY3K05RK3lXWFMxN1pZYmk5TVR6VWRNVm1JWGtpRng2VjZG?=
 =?utf-8?B?RnZqdGNWdGEybExKWnNsa0VBeTRWQWd4UEhBMWIydTdyUkFDZVJ0dkp4M1Za?=
 =?utf-8?B?eCtyYitJTC8yblRZUG11TURQS3ByTUxQSUU2MndkeGFMN3AxMGtxRmhQYmRQ?=
 =?utf-8?B?cDlTZ2oyQVg1ajc0K2V5bzNOMWVPaFVCY0FlTG1mUlhjTzNKMHA2Z3VjeHFD?=
 =?utf-8?B?Rmp6bVduWnQzOHBnVDY1d0JBUFc2SzV1WERpZ3BQZHBSLyt4NDRxci9JS0xl?=
 =?utf-8?B?YXArM1h4VjRsOWNzdjB4a3YvR09ZRWdWWTVJZ1ZDVWlwWGpYbTN2ZEg1OHlm?=
 =?utf-8?B?ZDIwM3JIbHhpcVRQMkFRM3N3aUoySzhyc0NBRml5RjBJZ0VVQ1hUT09uNEtq?=
 =?utf-8?B?akE4Y0o3emJORzBBWTNGV3BRa2RLbTdDUHRNckIzRU9zajQzUnVjOUlLaklm?=
 =?utf-8?B?eFJPWEM5UUV4MGwxNXk0cHQyd0ZXU2hJQXRwQ0pKTmM2N1hldVRSekgrSzJE?=
 =?utf-8?B?ZEdpSmp6Q0NSN2pxMFJ2TTM1eUQzSjY4NVBoT2U2U3dxdVZpQUhSWFJUMG9Q?=
 =?utf-8?B?dk5zRFBQMXpDVVRTK3F1ZGZJTHZnMDhWVzA5ajhnSXF4cEpxeWpQOGdFK3Rr?=
 =?utf-8?B?NFc3aXMxQjB2WHJiQ0pHTjN5cERuKzVZSWxZY2ZLM2ovQTVNNTUyVXljYUxI?=
 =?utf-8?B?MkJ0M3MvN0pnRkxybE5uWUhXUGZHZytQZUQzZjlOUEtaSDBlb3pmNUpSdUU3?=
 =?utf-8?B?Qzg1Q0FhTjZuL2ovTVhZUDJ2ekRjb3JpcGwvSUlUbW5NZXN3Tm1ibTBMOGdh?=
 =?utf-8?B?b080U3J2UTFWUmR4Wnh6R1dHY1hSR0xxalF3bmtIdmZPNkFzMG9HVVFETmVX?=
 =?utf-8?B?K3NnYnpiSEhOUGtoSWIzc2g4d3BHRC9TMVdOcHd2OVpQdWM2VHEyc01kMEpo?=
 =?utf-8?B?eGRIWFI5N2cvMktoY0pPcU9USDE5b3JwMCtvamtIaGdhd2Q5cW04R0VOeDBC?=
 =?utf-8?B?Q1VPaitMdUNtZ2JBQll5b0pETFZXZ0M0K2I1TXNJc1g2TWFycGlzUEpqNVdo?=
 =?utf-8?B?TVBNL0ozVElyTDF0ME5HSHAvV3lGb1UyZTVNV2JrQXBXZ04rSWdIQ2pxVmVj?=
 =?utf-8?B?MGQ4UnordG5pVC9Bc05wRVMyK1haRVJnU0F5eC9SQWtJb0lCV3NVVmFwRG4x?=
 =?utf-8?B?VFAvZWdCd3JlUTBvVnV3Uit0eTh1VHR5akNXNHR1a1IxWmZUaDBhK3ZISTgx?=
 =?utf-8?B?VE9kNkNVdWRhYmFjQ2gxeTdGRHZ3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mk07TQyFB1f04kEZL+7oRq7L1eTlLaGJiH35keKp5OtTcIo8eTuntVdLChadgUmJvhmaPxf97XCIXGsGoT5QdX2RMXv2pJnFf6FnIEW2pjgh5yFcDJlJZoSMxaAvyx/c7hd77h5NEc4vuqpEtFc/8RW1cmPpKeKXTSOaaDojSzUuijSVMl6ggm8jh1i7yqB3xJmEn5O7hhqkZaHHgU9AjAZ8J/o1bji1osCfZXgkRKRD9xV1s1Vk6wI5oN8fy6HRKiHEkRgUzwlO113wo/Webplk9yI+7rp+X07FdCn0ahvQ2H3tq8FQ9LWYbdb9yI2+bxiAmOSq23KgN89aL7igY27DseORjra+HrmGzWZY1GETpatoRxf7ejYABSpY9Pr6/Ku0uVtD9yhWDk8fn0UQ/gbwbvDKVH/HDlDBjwYkzXyyPoVtsWN8CVihOOYyr6UR
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2026 17:42:56.9477
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d872495-e911-4cad-5c9f-08de68cbd38a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A6.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5915

On Tue Feb 10, 2026 at 2:21 PM CET, Andrew Cooper wrote:
> On 10/02/2026 1:13 pm, Alejandro Vallejo wrote:
>> On Mon Feb 9, 2026 at 4:55 PM CET, Jan Beulich wrote:
>>> On 09.02.2026 16:24, Alejandro Vallejo wrote:
>>>> On Mon Feb 9, 2026 at 3:48 PM CET, Jan Beulich wrote:
>>>>> On 09.02.2026 11:31, Alejandro Vallejo wrote:
>>>>>> --- a/xen/arch/x86/Kconfig
>>>>>> +++ b/xen/arch/x86/Kconfig
>>>>>> @@ -146,6 +146,7 @@ config XEN_IBT
>>>>>>  config SHADOW_PAGING
>>>>>>  	bool "Shadow Paging"
>>>>>>  	default !PV_SHIM_EXCLUSIVE
>>>>>> +	select LOG_DIRTY
>>>>>>  	depends on PV || HVM
>>>>>>  	help
>>>>> Why would this be? IOW why would shadow imply log-dirty, but HAP woul=
dn't?
>>>> The logic is rather opaque. I admit I'm a bit fuzzy on the uses of log=
dirty.
>>>>
>>>> I know what it's for and I could navigate the code if a problem arose,=
 but I'm
>>>> less clear about which other elements of the hypervisor rely on it (po=
d? nsvm?
>>>> vvmx? shadow? hap?).
>>>>
>>>> If it's strictly toolstack/DM-driven maybe it'd be more apt to have a =
separate
>>>> LIVE_MIGRATION and SAVE_RESTORE configs where LM selects SAVE_RESTORE,=
 which
>>>> selects LOG_DIRTY. That's also improve some defaults auto-downgraded f=
rom the
>>>> max policy just in case a VM is migrated.
>>> It's save (not restore) for both PV and HVM, and VRAM dirty tracking fo=
r HVM
>>> only. Ordinary HVM guests will want VRAM tracking, so compiling out sup=
port
>>> for it will imo want mentioning in the Kconfig help text.
>> ack.
>>
>>>>>> --- a/xen/arch/x86/domctl.c
>>>>>> +++ b/xen/arch/x86/domctl.c
>>>>>> @@ -220,15 +220,15 @@ long arch_do_domctl(
>>>>>>      {
>>>>>> =20
>>>>>>      case XEN_DOMCTL_shadow_op:
>>>>>> -#ifdef CONFIG_PAGING
>>>>>> +        ret =3D -EOPNOTSUPP;
>>>>>> +        if ( !IS_ENABLED(CONFIG_LOG_DIRTY) )
>>>>>> +            break;
>>>>>> +
>>>>>>          ret =3D paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0)=
;
>>>>>>          if ( ret =3D=3D -ERESTART )
>>>>>>              return hypercall_create_continuation(
>>>>>>                         __HYPERVISOR_paging_domctl_cont, "h", u_domc=
tl);
>>>>>>          copyback =3D true;
>>>>>> -#else
>>>>>> -        ret =3D -EOPNOTSUPP;
>>>>>> -#endif
>>>>>>          break;
>>>>> Can a HVM-only hypervisor create any guests with this? I simply fail =
to
>>>>> see how XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION would then make it throug=
h to
>>>>> hap_domctl().
>>>> xl doesn't seem to call it at all. hap_set_allocation() is implicitly =
called
>>>> through paging_enable() -> hap_enable() -> hap_set_allocation()
>>> xl must be calling it, at least in the case where the paging pool size =
is
>>> explicitly set in the guest config. The important point is - not all of
>>> XEN_DOMCTL_shadow_op's sub-ops are log-dirty related.
>>>
>>> It's also odd that you did make changes at the call site here, but then
>>> left the called function (and its sibling paging_domctl_cont()) in plac=
e.
>>>
>>> Jan
>> That goes through DOMCTL_set_paging_mempool_size.
>
> This DOMCTL was added in an XSA because ARM needed the functionality,
> hence no cleanup.
>
> I didn't get around to cleaning up
> XEN_DOMCTL_SHADOW_OP_{GET,SET}_ALLOCATION, but please do.=C2=A0 We should=
 not
> have multiple ways of configuring this, and it simplifies the your patch.
>
> ~Andrew

I have a separate patch for that, but I won't add it here because it does n=
ot
simplify the patch at all. hap_domctl() ought to remain to return EINVAL on
unexpected ops anyway, and there's lots of loose ends to tie (python/ocaml
stubs).

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Tue Feb 10 18:06:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 10 Feb 2026 18:06:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226813.1533278 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vps84-0000S6-2k; Tue, 10 Feb 2026 18:06:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226813.1533278; Tue, 10 Feb 2026 18:06: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 1vps84-0000Rz-00; Tue, 10 Feb 2026 18:06:28 +0000
Received: by outflank-mailman (input) for mailman id 1226813;
 Tue, 10 Feb 2026 18:06: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=TS8X=AO=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vps82-0000Rl-AJ
 for xen-devel@lists.xenproject.org; Tue, 10 Feb 2026 18:06:26 +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 36003232-06ab-11f1-b162-2bf370ae4941;
 Tue, 10 Feb 2026 19:06:25 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 819477A012E;
 Tue, 10 Feb 2026 13:06:23 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Tue, 10 Feb 2026 13:06:23 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 10 Feb 2026 13:06:22 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36003232-06ab-11f1-b162-2bf370ae4941
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=1770746783; x=1770833183; bh=IA
	yJUHnpo3MFuH2KSk95NDd1cvwrmv1J4g+LIPw45tM=; b=jtcWvHN+G7QSpl3k31
	jKC6mwfoDscjayFNe2QfT4vjOpWEf3k5O+n70VzmlC081EU3y5JiiZZumairrA3b
	xeCuzHSYUtrDrfIXCfj1QBG8BcAZg8ev8UHg1aUpGNg9I45wDA2WBn4B5Egq8AXS
	9iMr0gGWTw6rQPGQiHp2RafVTRNefkBJkaO7gu/OCOB/wGlnSoshs6MW8jsTS5O1
	SAi4BkAfPN4R16ap/b0lyVRUcmcKM03oPYVBhcv+yi7e5I0YcYNN1gESi08i6RUH
	t5V/nkPiXxI/Hn0ooVvuLSbLKYu3FI8Iqb4plkE5O1+FZiHK63BQdRh99TyaNfY9
	x0xg==
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=1770746783; x=
	1770833183; bh=IAyJUHnpo3MFuH2KSk95NDd1cvwrmv1J4g+LIPw45tM=; b=M
	3mdhojk3iY6/jWgVYeuxC3naQxrGQDaHKMFVQql+JKZyXN8JJpBzykBn+go2ROXF
	5mN1x5BFyEf2fqdOxAuZyFSQcWaGJCxvDgPqQsAJzMnuoOzJEw9Rof/FHT3rG8Ea
	lDpNYWL1M0Hw42egdQf0ScP6wZJXKlycI8MkUi9ZyuKTrVuuSok5wYj5ZFo/YfDX
	FCXm9TUx4xXod9oWkBHow+DAcPrv/AOPuHIAIfBNu+NE6GHr/iJGbmeCC20DkZK9
	Yyk8E5XoVe60d72oFMJg5/qOA1UWrsJKmCUJ/LoVUvRkLJAjk+ijU5hxD6dF1NSq
	s/ou+q1YTzG6L2byODJjw==
X-ME-Sender: <xms:n3OLaZL6KfaXzVapoXGJtJL6y7oOp6VoKRxP7gGPUmE2q4p-Ha3mQA>
    <xme:n3OLaTElcUmTyKebrxC0RYQT9YiX2-37g_gyJYV8WvPp18aLOCVAlYkDgAxSJH10X
    u5pVo_vY1k40iHuzVcnBKM6SUGpebsiaDzM2uuzyoSyYtHK8g>
X-ME-Received: <xmr:n3OLaZRZiZ1RW6NcQMJ2lEAMGKpLneqr0Pndjfi57h6R6Mch88Bg4CMyjIuhk5azEE2aGIQdQtTCHEZ4XesR7qGagQs492LOpUs>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtddtfeehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucenucfjughrpeffhffvvefukfggtggusehgtderredttd
    ejnecuhfhrohhmpeforghrvghkucforghrtgiihihkohifshhkihdqifpkrhgvtghkihcu
    oehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrdgtohhmqeenuc
    ggtffrrghtthgvrhhnpefhffdvjeehiedthfelkefgkefhkeevtdehjeehudetjeeltdef
    ueehfeegfffhudenucffohhmrghinhepqhhusggvshdqohhsrdhorhhgpdhgihhthhhusg
    drtghomhdpfhhrvggvuggvshhkthhophdrohhrghenucevlhhushhtvghrufhiiigvpedt
    necurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvg
    hthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhp
    ohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvg
    gtthdrohhrghdprhgtphhtthhopehinhhtvghlqdigvgeslhhishhtshdrfhhrvggvuggv
    shhkthhophdrohhrgh
X-ME-Proxy: <xmx:n3OLaXEH_gP8Xa2gpEQJ32e9zgxIsoOn_lK_3CIA77bTwmx4_rDZ6Q>
    <xmx:n3OLad9jmaNWR2km-y35-hZm8R7r6-hlR6jfi218UcjHweUzeUI5Eg>
    <xmx:n3OLaZLXb52VWPUya8fn6RlD-tHe1Is4ZALVYAtj_LitBcjhlnwL1Q>
    <xmx:n3OLaYb9YQ_dsQsBpdLhk3lMyTfJuklpbKhCjJYFwgpErOdgyAgtPg>
    <xmx:n3OLaQdSZyrhB7QNfuXSG2ZZ3c-CWKcTOfpEyjH-t1YEz-2cvBseEn2C>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 10 Feb 2026 19:06:20 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: intel-xe@lists.freedesktop.org
Subject: Graphical glitches (not refreshing?) with Linux's xe driver + Xen
 4.19
Message-ID: <aYtznP_tT6xNPwf-@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="VP75K/iWhXkNFJA+"
Content-Disposition: inline


--VP75K/iWhXkNFJA+
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 10 Feb 2026 19:06:20 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: intel-xe@lists.freedesktop.org
Subject: Graphical glitches (not refreshing?) with Linux's xe driver + Xen
 4.19

Hi,

Recently I started testing compatibility with Intel Lunar Lake. This is
the first one that uses "xe" instead of "i915" Linux driver for iGPU.
I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
Linux 6.17.9 in this test.
The result is rather sad:
https://openqa.qubes-os.org/tests/166691#step/simple_gui_apps/30
or
https://openqa.qubes-os.org/tests/166700#step/desktop_linux_manager_config/=
42

The black windows are mapped from a domU (using grant tables). But if
you watch the video (in the "logs&assets" tab), login window of dom0 is
affected too (background is rendered significantly later than its text
and widgets).=20

I didn't found any relevant errors in kernel (or Xen) messages. Just in
case, full dumps:
https://openqa.qubes-os.org/tests/166700/file/desktop_linux_manager_config-=
journalctl.log
https://openqa.qubes-os.org/tests/166700/file/desktop_linux_manager_config-=
xl-dmesg.log

Some user reported similar issue with Intel Arc Pro B50, which also uses
"xe" driver:
https://github.com/QubesOS/qubes-issues/issues/10661

I tested also Linux 6.19-rc8, no improvements.

My previous tests of the xe driver on older systems (Meteor Lake, Raptor
Lake) resulted in similar behavior, while i915 works fine there. But there
I needed to use force_probe parameter, and blamed the issue on xe not
officially supporting those platforms. I wanted to compare with i915 on
LNL, but i915 doesn't support that model at all (and if I force it, I
get kernel panic in i915_pci_probe...).

Interestingly, it appears to work just fine on Qubes OS 4.2 (Xen 4.17.6,
same Linux dom0 version). I did not tested with Xen 4.21.

In both cases, our Xen has the patch to use Linux's PAT layout applied.
That's a workaround for
https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7648, which is
fixed now, but apparently similar bug is still present in a few other
drivers (including binary nvidia one...).

The same Linux kernel started without Xen works just fine.

Any ideas?

Having good and a bad version, I can try to bisect this one, but given
it requires rebuilding Xen toolstack each time too (due to bisection
across releases), I'd rather avoid it if possible...

I'm CC-ing also intel-xe list, maybe somebody there have some ideas how
to debug this.=20

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

--VP75K/iWhXkNFJA+
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmLc5wACgkQ24/THMrX
1yw9Owf+JkM97SAK2ek48Wh67U9zNqNtGDeAek2LesR4biLYu6M9NzVL/GsiilxJ
lirOwFwvfBR0vffsawvhpCKBOlICa3d7/vJgk4YvHHUSeBfDxkHp9xhRjzfVJBkQ
Yj6ZRqwcqg866HudQsa1Snd7Yuy92ymkpetTz55SIV4486Xw09026bxP8HN9MyJj
aS7c0uDbB8DOYzvOiCy7U183gImGhmTCJtWXY0F8EAJyJ3anP8AFdNqeDIst02lj
97BVgrzOkyrh/iuNMgHBTroeUnxV1BEhtCGqAAVRiWS5+WKTTyDKimoIhypolkwN
qa4GBeMUVhm/YSRhuJbljMGcLyjHPg==
=SRC/
-----END PGP SIGNATURE-----

--VP75K/iWhXkNFJA+--


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 00:17:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 00:17:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226922.1533289 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpxuu-0001jM-Mr; Wed, 11 Feb 2026 00:17:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226922.1533289; Wed, 11 Feb 2026 00: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 1vpxuu-0001jE-Hf; Wed, 11 Feb 2026 00:17:16 +0000
Received: by outflank-mailman (input) for mailman id 1226922;
 Wed, 11 Feb 2026 00:17: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=HiTc=AP=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vpxus-0001j8-LD
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 00:17:14 +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 01eae877-06df-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 01:17:11 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.stl.internal (Postfix) with ESMTP id 52A561D00071;
 Tue, 10 Feb 2026 19:17:10 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Tue, 10 Feb 2026 19:17:10 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 10 Feb 2026 19:17:08 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 01eae877-06df-11f1-b162-2bf370ae4941
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=1770769030; x=1770855430; bh=NNGrw/Lk4csgCTkIVJRy7t1JGaelexmk
	gu1xTW5pALU=; b=kC0fPw2zcuuW6GjFA9BTjDeV4+zb/RdtiPJycalqpc71q/h7
	+qOTHJ1LizwfMhayspYbG+YiwgJ8NCysYVgfiAsUE42ZpaEFy7HM5OAZvsW9kLHm
	DZpvan3r3dumnIAaGEUd94bEAQcTZIJFzvLHu/W2Sppwd0famOEQ9stx8aeYmyfW
	PS6TLXuRYhIC2QMv02ac7dx1H5LAIGf+i6JCBFcy+MhFrDemHAT6y1yO/6s8juzF
	6y8mQf+xGcy5rPmsA6NON0QZJ3G5XekWwMD5FYDXYYpfZDU0mURTafnBBJdJcCYC
	QfJQO4JmYgJn3fh0lo4td2KU5wnv9KnWZHivWw==
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=1770769030; x=1770855430; bh=NNGrw/Lk4csgCTkIVJRy7t1JGael
	exmkgu1xTW5pALU=; b=uFKApVA+tBIic7c8LfYu2QHJVj/DSgmkLlscSStU7dYV
	m3nJHZRNwpYWhNlZY6/0kKo31qxerX6ME8jmhSclumV1+D84ekDTiFumSdadICAF
	UAUiOnaK0W1W/DFZdqXSJZGMX0gKZJMG041nuYqIfsqevCAFUBbRUTKeCLCz3wLb
	hC2JICm7CI+nboOW4PV90Rra4HWVvaydRRuKrsyXTGwq+d18cubq8PG3vOwKqbPh
	BA79FGTRtHX9UsFxdZnmqEYREhoJqJ3aQxlSjG2jd1EZl3JzM/z2fEeI7KXLPpXL
	GfIgoiNZ9OQOPHHDeNgkSgzkGGLgOTVMyeggzQ2D+g==
X-ME-Sender: <xms:hcqLac60cjPJ58wOEsni326N-TVHosqRgTIArj03wVrT-g1xMdCYUg>
    <xme:hcqLaU7QXquu_fiyWvPpIyq8dxSsz0DZiwBMZvMGEPlU7B2vSYejT5QHQc9KLYWhA
    KAuVjSvEFQfnGJKILLnVCfKIJdPyX0LIgQGP9tVv3mCpgb7lB0>
X-ME-Received: <xmr:hcqLaQfTVkBwYzdPqVq5NQuVmr-KrkoNNrj4ul6hFdFepAhj6_jitRX346UtYThWnrwdfEQ8NL3s7MZhVA_rBYO4gKd6JpraxR0q1K-tEoI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtddutdekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelkefhudel
    teelleelteetveeffeetffekteetjeehlefggeekleeghefhtdehvdenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtohepughpshhmihhthhesrghp
    vghrthhushhsohhluhhtihhonhhsrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhse
    hsuhhsvgdrtghomh
X-ME-Proxy: <xmx:hcqLaQAyJNwZ4UVfdgGf7HyrT_7fUmCNRI8tQGJciQX7d7lRPhkiqA>
    <xmx:hcqLab9_lgVG9gUDLMaBn_eq8f5_1aLsNMlPwL7l-HgZAccDkleyWQ>
    <xmx:hcqLaTJMhEw6_HdNzLgp3xnvezl8hDcMNVKGsM3CpUVK8uAL4DwiiA>
    <xmx:hcqLachwzJIdTmohgy4JyMuWV7GQQ3uZtzXzloSsSdbzQKW-coAjtw>
    <xmx:hsqLaRZGDLuJ3hrL7ht_Z0TNP2c-12PLvQ2mjUHBniYmyu0i5pAaQgzb>
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>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] EFI: Fix relocating ESRT for dom0
Date: Wed, 11 Feb 2026 01:16:42 +0100
Message-ID: <20260211001650.1592239-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fix calculating the table size - it consists of a header + entries, not
just entries.
This bug caused the last entry to have garbage in its final fields,
including LowestSupportedFwVersion and CapsuleFlags, which (usually)
made fwupd to detect firmware update availability, but refuse actually
installing it.

Fixes: dc7da0874ba4 ("EFI: preserve the System Resource Table for dom0")
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 xen/common/efi/boot.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 5b84dbf26e5e..45015a0dd583 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -675,7 +675,8 @@ static size_t __init get_esrt_size(const EFI_MEMORY_DESCRIPTOR *desc)
     if ( esrt_ptr->FwResourceCount > available_len / sizeof(esrt_ptr->Entries[0]) )
         return 0;
 
-    return esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
+    return offsetof(EFI_SYSTEM_RESOURCE_TABLE, Entries) +
+        esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
 }
 
 static EFI_GUID __initdata esrt_guid = EFI_SYSTEM_RESOURCE_TABLE_GUID;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 00:58:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 00:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226930.1533298 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpyYy-0006ll-F1; Wed, 11 Feb 2026 00:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226930.1533298; Wed, 11 Feb 2026 00: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 1vpyYy-0006ld-C5; Wed, 11 Feb 2026 00:58:40 +0000
Received: by outflank-mailman (input) for mailman id 1226930;
 Wed, 11 Feb 2026 00:58: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=7Yav=AP=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vpyYw-0006lX-Lw
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 00:58:38 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c85779a6-06e4-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 01:58:32 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB5064.namprd03.prod.outlook.com (2603:10b6:a03:1e2::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 00:58:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 00:58:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c85779a6-06e4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ISoZcR//QdhEifX33laPmPu8aHkpX6q7E8JOyC1dKNt/ViyR1OK+vdlivyQad+m0JjYd97KLg+QhIbwBZeOTGdggV5IXDQ+T5CXQ3brMF9/nqGPDwMUQSzjEsAMHYm1rZfrjm9/YEaBtCVM/tCVLoQjqQNi+t/YZuLCXyWS0aIDiwui0Xh90oXr0X/2RgTy214DDzjoBRpUw0myk7p7sS2SGv2H/038y82xal2y45+SZCBVbks/I6kZcNEJdDsk63YheTwFc5C6HQetY6qSpPmNiZcyOwAaXJTlTnh7WBaiThYbEhrOdbE2wGa71QurMAqHyfIrt94z7T8g+HQuy/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=eLLcyqarVogVOK/76OmWLICUXJWTpS84dyt6ewkbiBw=;
 b=shdPgfsFtoupsanpNUFhJXnlwk4Dc9VYhQPBs//M/KzOFKhTitLGKU24aJrJ+s95KpgqVh/fHREp7jfPL6xUur8hqrbQr1YR3x5svbgX1n2EimsMBhMVbKnBI7iyQG4nC4A6HFUUIYw0HvtOimz60nxfGFe2nmGqZbZyUqTjUzfK2JtswzSHJN/osNS2r3Tp9kEI4wQ9SHqyTyD3EkYPfjReHzNCOirp4i713hUZxaVWcCe3mWeuAJbHBslrlV3RenaXiIJ4KRqMsGPjTr2qiL2gOSi20f9R9ZvWNzE/6447ExnC2jREZ3r2lmILvihjkk1CIyskmE1OiHu/LmE7sw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eLLcyqarVogVOK/76OmWLICUXJWTpS84dyt6ewkbiBw=;
 b=plTI1Tavf/HX8D14iMhooX5mdJFMRFUuMyiGOrIf+lVpeGAUQZh/S2aD9xe5aEAhHwZUv/VkoZ4SYobuAks5vBPszSL2cN229y/BR51RX6WRRRN9a/QI9wew13HOt2QmP5A5CLYH2rXv7GW7kggfY7GHyhnjgNInV6KMt01GlyM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <33667892-789a-4e94-ae0d-d240f7062b81@citrix.com>
Date: Wed, 11 Feb 2026 00:58:25 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] EFI: Fix relocating ESRT for dom0
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel@lists.xenproject.org
References: <20260211001650.1592239-1-marmarek@invisiblethingslab.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260211001650.1592239-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P265CA0010.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:339::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY5PR03MB5064:EE_
X-MS-Office365-Filtering-Correlation-Id: cb644ef3-f38e-4fab-18a0-08de6908ab0a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cG93QkwxV1dWS0Z0MHBEQ2Z5dmpNQlpnakVUS2JCY1IxYnV3S0Fmc3VUYmlU?=
 =?utf-8?B?K3RObHM5K3p2M014cjRVcExTYm9yendMZzJwUUJqcllmeFhBYUNSZk9ZWUxX?=
 =?utf-8?B?YVZ1VlhvVzVPZ0tNaXlIcm9tYTkxWWxFNVdVejZlK0dlZU5kMXB1ZnpFV0h6?=
 =?utf-8?B?UE1QUGRaRXpwdlNnZWp3UUxBeDI2bHhDNDdoZXBScE9ibGRpQnpqUzJXdTNT?=
 =?utf-8?B?RDJuTFp5WjRSZW5uU0N6UkNYdWJvWnd5dTdXZGZHNThFMUlTMjZTM3FzbVFB?=
 =?utf-8?B?N0loUmhmYUNZbUJEK0ZjMGFzWEV3MWZsdE44NENwL0pqdTNHcUl5U1NJQlQx?=
 =?utf-8?B?aWJVcEE0ZUoxMWk5dlNJbEdzNHp4VlBXSWd0N2JONW5yOTgyRDk2SFNRYVNi?=
 =?utf-8?B?eTFOakp5MmFOZDE2THRsbzdBZE1BMGZKWVB3NjMzeWE0WmlGZjJ4YmNWZDY3?=
 =?utf-8?B?VGNZdEpWMGRwb0V5SDVpRWROL2F3NjhRaTJtc2M5OXFlL0Vaa0tyRFdUQjh4?=
 =?utf-8?B?azh6WS9nR0JCMlJZbFlSeU1ZOVQ1SCt3UkdsQnFIS28wR3htTy91WHFvUkFz?=
 =?utf-8?B?M0YrSEtOcGFWcUJmMXdQVDRrOXpUNW5mSm10ZUFjQzFGaE9kMlRnSDFhTksr?=
 =?utf-8?B?TzZYUmFBT0NXTk1OamJvOGZvOVRKaUNJSGdEd3ZKY0syblZSTnpLYXRicWFS?=
 =?utf-8?B?VE5lWG16a2NGR0tNTzUrOWFyaGdTUVQxVTZTU3FYWXJzc0ltbXNDQ0t3bFdx?=
 =?utf-8?B?NFZnMEJIYk9vQS8rbHNKNCtVL3NzRHVXNEFiUDJHYXBrVFJVWnNwMUMvRUUy?=
 =?utf-8?B?Mi90ZDNOZGJMMnRlT09OeUd3T1hTREhqQ2ZwbXd2VkxybWE0a0dCQTN6dHN5?=
 =?utf-8?B?ek5WeFdsN1NmVURBQ0tLak40YnVzZjJORGVZblY0OTk0c004djd1M2hlY1JH?=
 =?utf-8?B?YzVTMlZkYVNmUm1KeDN3Z0ViUmh3TXNSWGQyRk5kdThxaURicUlFZFpDVnFZ?=
 =?utf-8?B?dzIxWkR4L09lVmUxbUs4ejUrUmRKZW4wVC9XV202VmRXMjkyVzVjRmFRWmJt?=
 =?utf-8?B?cjVyR044UkIybmlBTkdsSWtwTDA4aXBFUmV4ZzhyRXBEdlhjOXVvL1ZvM2Iv?=
 =?utf-8?B?Q3Y1aktsOThmNm1iSzVYM29VMXNxMWpuQTNlS1UvNEk5WTZUR1V5NEcraVF4?=
 =?utf-8?B?dmlvd3U1Z2JWSTlOSllvN1hvVFVJUDM3OURGb3lTa3V4eU5ucDNxdm90WWlI?=
 =?utf-8?B?WVBWTS9PWmkvSGoxV3gzMERGRnRHVUhySVRSTmR1S3dsUkRCaHRvMldWZG45?=
 =?utf-8?B?NE1JUEdLUVE0NWE4Znk1dE9nUHFLNWt6OGhzZ2F6aDJEWGFZQlNJUEJKVTA2?=
 =?utf-8?B?bXFyMFlkQTRqM2hOL0FUV0R1SVBNVEU3N2dvT215ZmVCakM5TUVEVHJjR3ho?=
 =?utf-8?B?WGxuZ2szWFdMTkdHS003ZDByMHVjYlArRmJZa3c3K1JKTlNtVTZBSHFNR3pH?=
 =?utf-8?B?N1JzYWl3SFRZOVRReFFWb2tRNmRJQVVMU1pDZ2NhUTFpNVVlc3FNM3p6RURa?=
 =?utf-8?B?NWVLZy96TzJLWGEyQ2tYZ2pWM3lxbUQxZVE2YjZVQytBa09wN00zeEQ0YTNF?=
 =?utf-8?B?VlpiT2lucUM1cVR5ZDR2QjdmZDBORnErZDNueTJJclFTMlI2ekZ2VnNRcldG?=
 =?utf-8?B?c3VObS9oRkpDVGREeXZrZzgzNmdrZlFvTUY2N3prNVhlZE1DWTd4Y0lFYzBV?=
 =?utf-8?B?ODBGZlZtWXhrNjQ4YUdSaks4Z3hWd3NvSk1lM3VOa0xIeHdkS1ZWOG4rVEJ0?=
 =?utf-8?B?aUhBOFZXYXFXSnIzSEdDbDJnVExzaE1YNVFuRG5lTzdVMzhtOEtNdmlZSWw1?=
 =?utf-8?B?QTJuNlgxSU5qNG1pZ0NRZzhFU1BpQ2RsaEt4SDRRb0VaRDVVelVHWkFsQ3Zr?=
 =?utf-8?B?cXNjWFdMVE5iN09US2RvWkUxTmlCbGk4WlJ6Nm5RQlYvdjQ5K2Q0SVA4T2tx?=
 =?utf-8?B?WnJRSmNoTHVySzRkTkh1UUVWU2hBbTA1cWJCN0JGb0VMZnFBWVpRaFdyT3o0?=
 =?utf-8?B?ZUtNR2luUStDMTJpU3kxMDZEU2FGR2NNak16YWJ6NjNHdkRsWGVnQWEyOXMw?=
 =?utf-8?Q?eygs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?T2ZuS2J3dU92NTRsN1ZoQ2JyWFpnUk55S3dFUlkxUThWaDJOSUhqWjltd3k2?=
 =?utf-8?B?TkxrSnBhUTd5K3pwZmVrblBPaU12TnMra29aYmZPY1NLdVdmaEkwM3ZWVmNv?=
 =?utf-8?B?VDRkN2wyTW9zaHdwc1FnQWpxS1d5ZStuejJpY0N3SndoTnVzUllxMGtrMSth?=
 =?utf-8?B?TlFBNjRhZnBFa2lnR01nYUVnbFBLQjViTWJDRVh2dnAxamdOYnl0SUF5OHdS?=
 =?utf-8?B?UGIyN0xOMEQxck1QUGJaMVlkV3lTUkF5Kzg1Z2NJVFpBdjJHV1lqbVBuZXdI?=
 =?utf-8?B?Tzh4aHd1Y0hHcTl0OGxqSVdNZlQza2V6aDQ5VmkrRVF0bGhON2d6VXBiWnRh?=
 =?utf-8?B?RWRlNUNHdlhscWZtTVR5c3ExQm1MUVE4aW0xR3VQYXNTNkkrS2JtaFZRaU9R?=
 =?utf-8?B?YWd0TVhVRUJWU1Y3NXhUS0VhRkg3TW14V3RGSG5zMXkyQjlVR0FOTXc1cEN5?=
 =?utf-8?B?bXhxb0xKMm9zNzB0ekZEckdFdU1idFRodEc1U1NjVEkzdTNHVVZtV0pUSkxw?=
 =?utf-8?B?ZUNqN01RUWlPMk1nbHRLWU1rOHVwN1pGRC9qWllkZzdGOTZjMVp6MGl4YjJI?=
 =?utf-8?B?RW82Y3JCbzVOWXFYWFF2NDNWZ1NqSUpvWlladjFSSFhiTXE4T0ZHeEkzRm0x?=
 =?utf-8?B?L0h1a2NVTXVsZGUvZ2J3NTM4dEVPTHZZN3FoZXZMMUtKM0c3ZURVbUVxdEdn?=
 =?utf-8?B?YWoxdXVwQUlYOFZGK0pvWE9kSFlodXBCdmdqaS9IOEU1V243bFRtUGdVR3Ja?=
 =?utf-8?B?OTJOR3FCZ0J0VmpPUEt4T2N1bkN2T2MxVjNJSGxKbzV5Mmh4NndLdGJCSCt1?=
 =?utf-8?B?dzJ0RWp3NDRTd3hFaW9xTjVQR0U2VXJlaG8vYXozOEowY0ZWcXdNUTMvUVFs?=
 =?utf-8?B?Zm96cEZFMndjQnN0VVlnMURtb3QyQzRCMGN6b2E1RUVrU29oYXhndStyb3F6?=
 =?utf-8?B?WEF1eWlQbkhRWEhVTFU4bThNZWIzMFVnT3V4TGRWTXdEdlE4NHMyb21GSGty?=
 =?utf-8?B?bEFXTHM2K0JxRFJMdWJoTmFDZjIxTzZRN05nbnpFdVhSalNWVEFMN2UzNHBw?=
 =?utf-8?B?aEllbENyUW1SeG91YnNsdVMxR29hK2FVbWNCbG5zMXlMT0VhSTQ2eWR5WTNR?=
 =?utf-8?B?aEJxT05VUSsvQnBDZ29QTVZYWG9jajA0amd3NHdyeU43Nklhd2pRSUI1TzZo?=
 =?utf-8?B?aUpGTnVFYjRyM3U4dG1JWEgrRXg2YWtGc1QxbGRSZ1JYWjdGdG9aTFN0WTk1?=
 =?utf-8?B?OGNNTEVMbU5FQVF0TkwyRTJjRFFXM1RxKzJoMjByNmhrTE15WVpoUEtYYXdF?=
 =?utf-8?B?VE1qMUs5bDlZamYzS2Rzb3lEWHI2MmtrVVdhWXduU0Y5YjdkUEl6eWxmOFZk?=
 =?utf-8?B?bzJNSWdXUldMazFJNEJRbXFrVGxPNkJDd0MvZEc1UXkvV0VhVEc3b3E3SE9o?=
 =?utf-8?B?Mkw0SE5RQTNEK1hYZ0JmYlpCNmlESWlpbi9YL1ZSZ2wxTGQybnI4UjVNZDUr?=
 =?utf-8?B?L2NXeUR2TldWUVF6SG1Wc1RObTZDTDl0VDBhK1lZb2JwbTJKN0pIV05lUUFW?=
 =?utf-8?B?d3FzaS9Bd0VXMDFZRDUwYy82OUQxeldqengza1ZHT3lDdmVLZlNnYktGODJI?=
 =?utf-8?B?cGRpOUhyYkNhdXJ1aE1YN2g4cENxL0l0UGo2bFd6aVlQd1Zvdm02ckwwck15?=
 =?utf-8?B?RDVoYnZONklUeW9aVUNsRWFSYUdxRnRKaFlEVkFvcTRkMHlMMGNiQ3ovUUsr?=
 =?utf-8?B?Qlk3NjJMb2tYY1JuS09wb3p1ZG9QSERuN0FHd3VEQWdaOVZuT2tsNm1HcVF5?=
 =?utf-8?B?Z0hBSUdhN0w4QnpTQ29VZkpyTzZWK1hNQ0M1UEduWXZFUzZVQzJUbWxnT05u?=
 =?utf-8?B?SjdxRGtrZWNtSENNeHVVY0hWUlkzNi9kREpadkd6WkJ2SXVkanRsOGZIMTB0?=
 =?utf-8?B?cC9FUG9GYy82MnNBZXRBNUlzejBBQ29CMG93T3Y5TkZDNWdsOUNreTJ1MW4w?=
 =?utf-8?B?d0djeUpWWGg0THdkWVhjMmRaVlAycGhxaml6NHN4TDJMaEpIOGs1ZEZFclNo?=
 =?utf-8?B?WXo4Z3NXTTdwVTZ1RG5SQzF1NGlDZ2E3QllqT2loUHhVVklSeVJMT0c0S1c4?=
 =?utf-8?B?MVVvakp2T1lRcnV5Q0lDWWRDaCt2ZndNeHFjWUpMNWpQb203b3hvK3h1SVVo?=
 =?utf-8?B?RUZ3Qld0Nm8zVGRsRmdKSFIxenNWbFhwejlpa2gxZmVxVE82QWJnSXFrT2l0?=
 =?utf-8?B?UlVvSkVmNEJjRWpQcXBYa3VjdTB2RXRhUGJQMjdVeDJJTmk0bG1oTUhreE5O?=
 =?utf-8?B?ZlIyVlRHQTdJWWJVQUI1enYzMlc4ek5hblNKVzljZmVTZWlLU0tEQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cb644ef3-f38e-4fab-18a0-08de6908ab0a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 00:58:28.4044
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: L4MQ68t63o75arjaD5upJDx2ACIaZUkiij4lQzs/82ScA4ahUhhzo7MDtDUawYiu2UewGKMc7Z7MH05mIU1p4yjLpz+IFST4nsiw0wGbZM0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB5064

On 11/02/2026 12:16 am, Marek Marczykowski-Górecki wrote:
> Fix calculating the table size - it consists of a header + entries, not
> just entries.
> This bug caused the last entry to have garbage in its final fields,
> including LowestSupportedFwVersion and CapsuleFlags, which (usually)
> made fwupd to detect firmware update availability, but refuse actually

"made fwupd able to"

> installing it.
>
> Fixes: dc7da0874ba4 ("EFI: preserve the System Resource Table for dom0")
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
>  xen/common/efi/boot.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> index 5b84dbf26e5e..45015a0dd583 100644
> --- a/xen/common/efi/boot.c
> +++ b/xen/common/efi/boot.c
> @@ -675,7 +675,8 @@ static size_t __init get_esrt_size(const EFI_MEMORY_DESCRIPTOR *desc)
>      if ( esrt_ptr->FwResourceCount > available_len / sizeof(esrt_ptr->Entries[0]) )
>          return 0;
>  
> -    return esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
> +    return offsetof(EFI_SYSTEM_RESOURCE_TABLE, Entries) +
> +        esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);

offsetof(EFI_SYSTEM_RESOURCE_TABLE, Entries[esrt_ptr->FwResourceCount])

is a shorter expression with the same answer, and a pattern we use
elsewhere.  I can fix on commit if you're happy.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 01:16:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 01:16:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226940.1533309 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vpyqS-0000Qe-1i; Wed, 11 Feb 2026 01:16:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226940.1533309; Wed, 11 Feb 2026 01: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 1vpyqR-0000QW-Tl; Wed, 11 Feb 2026 01:16:43 +0000
Received: by outflank-mailman (input) for mailman id 1226940;
 Wed, 11 Feb 2026 01: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=HiTc=AP=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vpyqQ-0000QQ-QZ
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 01:16:42 +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 4ef35cea-06e7-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 02:16:36 +0100 (CET)
Received: from phl-compute-08.internal (phl-compute-08.internal [10.202.2.48])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 1A4917A0194;
 Tue, 10 Feb 2026 20:16:35 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-08.internal (MEProxy); Tue, 10 Feb 2026 20:16:35 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 10 Feb 2026 20:16:33 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4ef35cea-06e7-11f1-9ccf-f158ae23cfc8
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=1770772594;
	 x=1770858994; bh=AnsFbD6A484dObcHy45DMWIYSo5yDnNHM1GpEvTgH5o=; b=
	KS15qKOufKbrMfFckdGORUHltcEmwCFGeMBdcnvmRAElmUEaqUF1cCYEcDhQcKYp
	oCyDCHjLXnj/YHblNbmFqnuKPMD0asmpXmyD/ug+8bj5ANn2vZmdLvUYQ45C9ht7
	+4bO45lGwOGmseGvl6wwAvkv0lVQCzUeDq4CfqTuP6a08tXKNzfOFziFHtHtcJ8J
	B6x8one/b7PNeVTkzdN56xc/EpCWk8Ujk6+HLijAEcFmYhysRpWqBgxbo/KqBVhm
	fVq7xu9pydB0XidSYd0iN9FtZ7tzbIlQ5ProSdl9Ij2qW0cJW6zQ0k+piKjHbmZz
	YLG+xK0UkS8lI30ahOgRAQ==
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=
	1770772594; x=1770858994; bh=AnsFbD6A484dObcHy45DMWIYSo5yDnNHM1G
	pEvTgH5o=; b=b3GgnLz1q1unOpn7qnE9EXrM6ZKdeLVckkvLPjgL1BoDIgdDf6K
	GYn2KvKibrhUX2UuQgAqt4/X1+/gyOj3fR5Q8j4gVPbJB7/S8kwlg4Nh/6yV235L
	TLoXxktvipFG3gsFJSZJNG0XllbMYhYX4ZykkBh3grsoyPbbspa1DEHCD0uM21nX
	IKD6KLNir/JXoFQhc/ptfD0Upe0W9cIIv9BXdnPMQGdgFYmy72xE2ex+yuGC90f8
	zU442sKo0ZcWP1ZQL3FMgQtP28lw7/cwvh0PRohcIUCBOYrosI4wmF/t9pf4HHHK
	ElgjW9F8wryhxqfRupsBItgAKxhEd/SRkJw==
X-ME-Sender: <xms:ctiLaTGzXofDv5PvJVhK-a4ES7mExZDX3Urv_cZfUFuYy8WHK2rhig>
    <xme:ctiLaXUSq8rAYMRNOvgvkuOHPK85keaT0vu_FeW4H8p8YAlnEXb3BNhoONG_m7oNL
    bGVjTgFn7bxd50LJblt0b3fjpxD1ZvBAIaM9BN6FxihJW1O2XY>
X-ME-Received: <xmr:ctiLaaIHMuW_sVdlf9IOORZS7xZzm0FuB4XaNM5ZAKPDj2ACMPLrmyWjQER9xm2yc2YtPfIY3-pi2r_nDbc0donhWC48LVQsqf4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdduvddtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegt
    ihhtrhhigidrtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvg
    hnphhrohhjvggtthdrohhrghdprhgtphhtthhopeguphhsmhhithhhsegrphgvrhhtuhhs
    shholhhuthhiohhnshdrtghomhdprhgtphhtthhopehjsggvuhhlihgthhesshhushgvrd
    gtohhm
X-ME-Proxy: <xmx:ctiLaf_ZoOftoWulth-rzWSAcqbfHqjYumpeborpqr9Zhn5Qf4rPbg>
    <xmx:ctiLaVIhrekL85DnWLIsd9kME2adEvfHAXVQFwyGMU7JQxxPcwd4fw>
    <xmx:ctiLackp1SxUPaZEq9kEIZ_mjtvmzpkkPh5wtuEwPxDcRnoixE2P2w>
    <xmx:ctiLaRN0hPU0DPfJRbKZwpvk9uJeAsSqCfkkK13YBEianqyUktEo3w>
    <xmx:ctiLaTcstnUKf9bp_mLBdqLWdqai7hnKllQnc-lbGpzZEnZ--Dpl6Kpj>
Feedback-ID: i1568416f:Fastmail
Date: Wed, 11 Feb 2026 02:16:31 +0100
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,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] EFI: Fix relocating ESRT for dom0
Message-ID: <aYvYb4KbMkVG12tD@mail-itl>
References: <20260211001650.1592239-1-marmarek@invisiblethingslab.com>
 <33667892-789a-4e94-ae0d-d240f7062b81@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="8c6GOirE1GocLifO"
Content-Disposition: inline
In-Reply-To: <33667892-789a-4e94-ae0d-d240f7062b81@citrix.com>


--8c6GOirE1GocLifO
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Wed, 11 Feb 2026 02:16:31 +0100
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,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] EFI: Fix relocating ESRT for dom0

On Wed, Feb 11, 2026 at 12:58:25AM +0000, Andrew Cooper wrote:
> On 11/02/2026 12:16 am, Marek Marczykowski-G=C3=B3recki wrote:
> > Fix calculating the table size - it consists of a header + entries, not
> > just entries.
> > This bug caused the last entry to have garbage in its final fields,
> > including LowestSupportedFwVersion and CapsuleFlags, which (usually)
> > made fwupd to detect firmware update availability, but refuse actually
>=20
> "made fwupd able to"
>=20
> > installing it.
> >
> > Fixes: dc7da0874ba4 ("EFI: preserve the System Resource Table for dom0")
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
> > ---
> >  xen/common/efi/boot.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> > index 5b84dbf26e5e..45015a0dd583 100644
> > --- a/xen/common/efi/boot.c
> > +++ b/xen/common/efi/boot.c
> > @@ -675,7 +675,8 @@ static size_t __init get_esrt_size(const EFI_MEMORY=
_DESCRIPTOR *desc)
> >      if ( esrt_ptr->FwResourceCount > available_len / sizeof(esrt_ptr->=
Entries[0]) )
> >          return 0;
> > =20
> > -    return esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
> > +    return offsetof(EFI_SYSTEM_RESOURCE_TABLE, Entries) +
> > +        esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
>=20
> offsetof(EFI_SYSTEM_RESOURCE_TABLE, Entries[esrt_ptr->FwResourceCount])
>=20
> is a shorter expression with the same answer, and a pattern we use
> elsewhere.=C2=A0 I can fix on commit if you're happy.

Fine with me, thanks.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmL2G8ACgkQ24/THMrX
1yz3qAf/RznelSPuVWAxlgyrC9YbfLl6G7CHr5AHFo/Tb2Vyv4bOQp4ewFJ6a4ve
nMek2vI3jozBwAc01LEd3zhT7ipXyRs4SH/91iuwMJ+LavS4DIJdoeUd0D0fQ1If
m+nJESKy+P+fDSU2ii1r6t5SE7l/WqFcR7d03y5hsgX08UweuBTiDFHgg65Fi9To
rdAYJ9MLpz7ACOtv78psUt9KME+DGEbIfitJZAMAANl2iTEnz7V5fmDR17QA1+5S
W9FEvFXtVvJZikhxnuQdX94bBVCAV0TQU9dilDzD+Vd+xN1aAd9eRCQANVp9Nv6V
GIGJJHJTvuz4xqE8pL24kxsZbrWdcw==
=aEe/
-----END PGP SIGNATURE-----

--8c6GOirE1GocLifO--


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 07:18:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 07:18:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226987.1533319 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq4Tt-0000To-Mz; Wed, 11 Feb 2026 07:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226987.1533319; Wed, 11 Feb 2026 07: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 1vq4Tt-0000Th-Ji; Wed, 11 Feb 2026 07:17:49 +0000
Received: by outflank-mailman (input) for mailman id 1226987;
 Wed, 11 Feb 2026 07: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq4Ts-0000Tb-IX
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 07:17:48 +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 c1351032-0719-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 08:17:42 +0100 (CET)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso14438845e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 23:17:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783dfc54csm2605958f8f.25.2026.02.10.23.17.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 23:17:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c1351032-0719-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770794262; x=1771399062; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Kvqal51klsUTBxjgyP6fqRaFPMmTg1kO9Zzg0fsxOzg=;
        b=bVglWuhmxdyhR0DZJi0fadmFKmuRJrpbv1WLHJvQQSbimI3eHQg7RSvPK8cfZ/dO+K
         mOnGcMdBl80dYJNrvJqWGcNKa/mNtOt/lQU9jgZEHrMsXHfeQ9NXTP/a4jl1OGorMnjk
         xYx/4voppiplLueAEKibVEWobrDI6EEJwvgFhKyiTmmVOafEjP9oK3/eEEHC9t6VOjhh
         5Ra7dYEMQ7SYR/sODkdChlVAWGrLc+3cjiQRdSHgspueo4XyHaC8A3ZAfs3T3RLRbHKA
         oJcAti05NZBeniLhr7jQny9pAoAriCzRjqb67q7GKghiEj4OTUZsyEqN/teLfrSejuRw
         5QZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770794262; x=1771399062;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Kvqal51klsUTBxjgyP6fqRaFPMmTg1kO9Zzg0fsxOzg=;
        b=uGbifAffDmi+y1pD7aJfOwPuwncFTyI92z4c2IYjDeYR/iJeddw8M62bbptQmUGmyC
         ia0eHMss6J0bUIzFzy805pU2DktAgbdnU4dS62ezNAOPjKwh1NFegvPSS1bSYLzdjSLW
         hHV/EyDQ0DVFg7NXQB/LSSb9fJUxavbVGLoDp9sxWSiBIJYL/ll26bKD0z4KIpMVeTUQ
         0jOEfUpWXgCZGONnWUY+cXG495ccLlf6TNAti/YwbR0tmVe3xAH93SiYpqXfBYuzFVQ7
         6zalRWgeS5BEFzIggRwiJLknrvfX6PKbjvgG00/I1X4BrSqda8NVE1ZjevtE2mCGPioD
         9I0w==
X-Forwarded-Encrypted: i=1; AJvYcCVvey1JMnoTxsaMhLhJt4BmopFZUIVS8hACxz9xh4sdosIAjEku71vRrKqYHfBUVJU0cbbvELoxAsE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyfNkX7eeymNMsaym+f7TEg07Nnrni0z79TAnM1WjU3q3MJm++4
	v0eWJLP1Q0aYWT+x3K42oiLRC39muqO8hPMo4W4XoF5cOqjawfPJnDUmfWXkYHruFg==
X-Gm-Gg: AZuq6aJoUQExYuo4eJgtzbOvj5Kih5d5/gQ5KxPZKIH0Mf4XNVUSgZ3L/s7aGBaA11T
	v1OjK6y+A/sKeafKjs/Qim3JPWjGog4ntz0e6jVBFhkvjqdTj8otyNGlOrlsg3CmA7dwLEdj84f
	iOqQ+8QJnez51djwxqaHeCj6oHQegQhjpkAy0TnGGQV/y4v4i8aKv+6aKRv492xoojedvBEKk+R
	oNxDUaEQlQ9mAalIST3s36/JrlX/N09BFELgmSb1znmBMo5+kg2nNRxAwuLMtO3Y8aaoU5oxqSz
	2i7+y2vcNt/uv/Aqm4wVTPGM01LuuXeUCEyKHFrtF9o5p7X6w9mpmq0wRMhtxuE48CKaqTZIQTi
	okUnHfLgNO5DfmYklvCNf3hiAWXEM2UzHBI3szwqpP9WXbsL1ryTqw2BPNQrhh0/qC3cQE1L3O/
	r5GlCWCYrdQKgq3251i9VGLtan0tVI5favfkNI4kjdLKgR2t13+M/n+CLX1KMS4xLAG+T7ikiGo
	1AvJJ/2zKKdcT0=
X-Received: by 2002:a05:600d:6405:10b0:480:3ad0:93c0 with SMTP id 5b1f17b1804b1-48320216155mr181204695e9.23.1770794261646;
        Tue, 10 Feb 2026 23:17:41 -0800 (PST)
Message-ID: <b210e7c0-ae2b-4d41-8690-b5af4261de3c@suse.com>
Date: Wed, 11 Feb 2026 08:17:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/domctl: Conditionalise x86 domctl using DCE rather
 than ifdef
To: Alejandro Vallejo <alejandro.garciavallejo@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, Tamas K Lengyel <tamas@tklengyel.com>
References: <20260210173022.257030-1-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260210173022.257030-1-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.02.2026 18:30, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/include/asm/mem_sharing.h
> +++ b/xen/arch/x86/include/asm/mem_sharing.h
> @@ -9,10 +9,12 @@
>  #ifndef __MEM_SHARING_H__
>  #define __MEM_SHARING_H__
>  
> -#include <public/domctl.h>
> -#include <public/memory.h>
> +struct xen_domctl_mem_sharing_op;
>  
>  #ifdef CONFIG_MEM_SHARING
> +#include <xen/sched.h>
> +
> +struct xen_mem_sharing_op;
>  
>  #define mem_sharing_enabled(d) ((d)->arch.hvm.mem_sharing.enabled)
>  
> @@ -92,8 +94,6 @@ int mem_sharing_fork_reset(struct domain *d, bool reset_state,
>  int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn,
>                                bool allow_sleep);
>  int mem_sharing_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_sharing_op_t) arg);
> -int mem_sharing_domctl(struct domain *d,
> -                       struct xen_domctl_mem_sharing_op *mec);
>  
>  /*
>   * Scans the p2m and relinquishes any shared pages, destroying
> @@ -103,6 +103,7 @@ int mem_sharing_domctl(struct domain *d,
>  int relinquish_shared_pages(struct domain *d);
>  
>  #else
> +struct domctl;

DYM struct domain? If so (can adjust while committing):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Cc-ing Tamas at least for awareness; I think ./MAINTAINERS should enumerate
this file in the X86 MEMORY SHARING section.

> --- a/xen/arch/x86/include/asm/p2m.h
> +++ b/xen/arch/x86/include/asm/p2m.h
> @@ -806,12 +806,10 @@ static inline void p2m_pt_init(struct p2m_domain *p2m) {}
>  void *map_domain_gfn(struct p2m_domain *p2m, gfn_t gfn, mfn_t *mfn,
>                       p2m_query_t q, uint32_t *pfec);
>  
> -#if P2M_AUDIT
> -extern void audit_p2m(struct domain *d,
> -                      uint64_t *orphans,
> -                      uint64_t *m2p_bad,
> -                      uint64_t *p2m_bad);
> -#endif /* P2M_AUDIT */
> +void audit_p2m(struct domain *d,
> +               uint64_t *orphans,
> +               uint64_t *m2p_bad,
> +               uint64_t *p2m_bad);

If already you adjust this beyond dropping the #ifdef, I think we also want to
make use of line length, to better match e.g. the other prototype in patch
context above. I'm likely to take the liberty of doing so while committing.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 07:23:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 07:23:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1226993.1533328 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq4Yy-0001zk-7t; Wed, 11 Feb 2026 07:23:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1226993.1533328; Wed, 11 Feb 2026 07:23: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 1vq4Yy-0001zd-4a; Wed, 11 Feb 2026 07:23:04 +0000
Received: by outflank-mailman (input) for mailman id 1226993;
 Wed, 11 Feb 2026 07:23: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq4Yw-0001zX-Ft
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 07:23:02 +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 7f26a9f7-071a-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 08:23:01 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4834826e555so26235435e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 23:23:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d82a4c4sm201525115e9.10.2026.02.10.23.22.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 23:23:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f26a9f7-071a-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770794580; x=1771399380; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SZpozOWmJ8KfTot1zodG+tnuaQ9zL8nqZQp1QUhuLg8=;
        b=VR8TOqnuA90RREk+vgFDubABX3C2XnMsayWQmgrug0XdWxJpBkxS7ebmrSIModY32a
         aKtuYZzbwNtIfnWLaNJf04sRSrIzZC+fpCtO8RznZH5SMMyHL2KIan5KNJcNZnF2qW4u
         Zz/y5F+s3JCVhmJRXe0AkaIfTC9qo7dFfHl1R4fqSX/xYDA6340s/Ly34LDOTXmFsO9M
         /G+Ud8hNPqv1RgRhCybmafULrTQjNAWOhYGAasybg22eNOE0EcKhOHFIU5NXrTV7Evh3
         kxg3vJ6jyZ09J8qgQ7nX+dZRq+ssLrGuKyF6ErsDOO+R0EI95ZFwXh1lhW6BzjRwzyUf
         j8TA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770794580; x=1771399380;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SZpozOWmJ8KfTot1zodG+tnuaQ9zL8nqZQp1QUhuLg8=;
        b=GB6Ymsw5MCF+Wm5iyBimg76WIYkaQWV7N7k2h2niy6JSqjPes4fflT3HiatEHUtxNu
         nDJBQ2ovFZu10HCC9z33ZOfVes2IDRlF4x+4/VEyCTib0lRxa7tvhSkoDvJTbRVO4VNZ
         s6aLmFR/k3Y0jBywKk9lTM6+fzI0zjCypiAozP+Nn07mgG+/KWsfAxBMPTkuX/wvG27g
         rVOc4gs8esVvMRo4spIA28wW7y3g9KfLbVtMk4jJlVNxjIIcVeRSQDV3neQEYt0aN1aI
         Cm6R/9rolfDeXCtaHGR1uPFGuJgbvIPUOXDSoM1bTFTvdfCsR0l5dvnwbQPy06lIrA2A
         BOkA==
X-Forwarded-Encrypted: i=1; AJvYcCWMQfvK9aZH7IEyNjcaiCPt4UwD+X3RdbrqNt5jTnbkHC0+VJc7mhpdkBTMoR7VHX8ewIjEXm5kceo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzQW6qZnTQiPXH5T8Xj+aaYUJnohCR6nCo1stLaVAKs6Mw+pYHO
	d3fyaMp8CIeatJFIjI/DmU9mBSxQgZp3fHVzaH4CnmTRfKtw8G3BdYtXKOOcBBrPqA==
X-Gm-Gg: AZuq6aL+nwoWF8PNIDVl6zDuqEUcUHtCG1VeJO/6xArPmN3iuH7CY2YTaYLfCbWtuZ2
	H9DV9QlUleGNquyiTf5rYAr2GCtiUOIgZtbmwzRdq5ZoAbmg9zAoTPfQkzYWOcN/FNWAxegLdXd
	cV9SFdDcBE99Hp+ajTtDtVdCH7aYA3BhC5U08tIn8phA9gEbdiRJ4vTZKUWSVNGZk49qp3dLKoj
	CfOUF8op0QMysj7rJtVMp9gulcm53ufxkG4J3uxk4lC4GCsY2TQuQf92UANFJgns9NVhXs6/No+
	kaAR6PLpxwz7e+wke5ELGdOltu5kI9BReZv+AmKTphAcT/Bk719oP0Z2+bkibFfB87kYYObiqp1
	0bJ0odHFEtDOph4f23Y3NzyWXOG0YY8sr6jbLkVSV51e9QByW4KnD/eTJN32zTZL29FQoLfK/UK
	6YqTa+o19lte47LMz6LxsFA/giZs3tAMZ4mFdmRBJaOFdBoFDwkP89oY/VedlYDv1D535eDtyQG
	TbPo76AjgPQCJtqUpjyaSbc9g==
X-Received: by 2002:a05:600c:1d0b:b0:47e:e20e:bbb2 with SMTP id 5b1f17b1804b1-4835b8f7e6amr21375485e9.7.1770794580421;
        Tue, 10 Feb 2026 23:23:00 -0800 (PST)
Message-ID: <e115459b-8f4b-4211-8259-7807765d8fec@suse.com>
Date: Wed, 11 Feb 2026 08:22:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/16] xen/riscv: avoid reading hstateen0 when
 Smstateen is not implemented
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <d26b9103def3ff86524e1306c63cd84e217c8f11.1770650552.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: <d26b9103def3ff86524e1306c63cd84e217c8f11.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> If the Smstateen extension is not implemented, the hstateen0 CSR is
> considered non-existent. Any attempt to access it will raise an
> illegal-instruction exception.
> 
> Guard the hstateen0 dump with a runtime check for Smstateen support to
> avoid triggering traps when dumping CSRs on systems that do not
> implement this extension.
> 
> Fixes: 3babc8d2e546 ("xen/riscv: dump GPRs and CSRs on unexpected traps")
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

It is, aiui, independent of patch 1 and hence can go in right away.

> @@ -144,7 +145,12 @@ static void dump_csrs(const char *ctx)
>        (v & HSTATUS_SPV)  ? " SPV"  : "",
>        (v & HSTATUS_GVA)  ? " GVA"  : "");
>      X(hgatp, CSR_HGATP, "\n");
> -    X(hstateen0, CSR_HSTATEEN0, "\n");
> +
> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
> +    {
> +        X(hstateen0, CSR_HSTATEEN0, "\n");
> +    }

I was going to ask for the braces to be dropped, but I notice they are
required as long as X() isn't properly adjusted. This is why even for
local use macros we should take a little more care when introducing
them, so they can be used without having to pay too close attention to
their actual implementation.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 07:39:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 07:39:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227003.1533339 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq4ou-0003pI-Gd; Wed, 11 Feb 2026 07:39:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227003.1533339; Wed, 11 Feb 2026 07:39:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq4ou-0003pB-Dw; Wed, 11 Feb 2026 07:39:32 +0000
Received: by outflank-mailman (input) for mailman id 1227003;
 Wed, 11 Feb 2026 07:39: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=wgMA=AP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vq4ot-0003p5-I4
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 07:39:31 +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 ca078ed7-071c-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 08:39:26 +0100 (CET)
Received: by mail-oa1-x34.google.com with SMTP id
 586e51a60fabf-409470ad5bbso1905260fac.0
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 23:39:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ca078ed7-071c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770795565; cv=none;
        d=google.com; s=arc-20240605;
        b=k9oFJOJoMBPglYv+4KoKVActD2cegbVonONPDbdz6vibdWxNG6b1lLoZ92bIT1T7D+
         pAdNaxSYvcFLZccOT46L+F8VWEBn0MNI0REaFuRzT1S3yo7Vy24NwCVTdxL+BZb1IlDS
         rYwzYDNZ1qK/6G/TfUYqMOXSLT5y+kDYH8/IGMbxL7vv2Uf4WxpCxi707GN3NSGNvnnp
         LiWnz6y+xuiCUOdeWldHrlH8KJ/mIR7AwOyZe6SpKnFsNiCmGdBdzj/BZIrG9VEoYzCD
         a0GqhbWdRg5Noxo0/DkoWP2QLYLj2w3epYmRO7Ofh+4Z+W19dNJ+ROK4UWadVoQrTMjM
         ftNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=hAOqMCJadlogczB7gZP3FZlkdp68ySmqKKAKzRWZ3Cc=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=YBbgRt7eBuHNstkVihPyQVPQKiexGSUyxbH09fqcJ7vcroOown3TOVTqo45YCGc63i
         0QfBls2xqCopOWPOlJp35DfB8rWrday2gYUKZQdrtpVoRjcPK+VMw8QXvlEvmZpccrK1
         y9Nqgd9Q+HPEW/c9g1MTi1mtstsZSTX8sp3iE3D4YBPfKRu8WJhMuF0BZDvxhDYi9Y/V
         g0GAh1QwQtxT5k+d5OxT7jMmutifkScLIm+Xv6+ry97h+YEbiIFgC14tHm81octGzu4M
         tinYWPZ0krM0PnOEsGXwVqSztw1TDycm3odBanp6hCL2n57HzindrvwSlls+BJxYOMmr
         I4vA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770795565; x=1771400365; 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=hAOqMCJadlogczB7gZP3FZlkdp68ySmqKKAKzRWZ3Cc=;
        b=DlbqmdKIhdhAAM5/tgsVP264+9YQI3BcpNt3Y0I59yTyyNwcVBGy0t8/mVZwa5oRbA
         yeArjcmAbX+Y09UAdhuts7P+xg7AxHE+AZbJd/Ik8krfbAxbh++OI8GI5hEeJZfnbJT0
         3gLt84fQ2I4uNvvaC6h6QOQ/n7D4dNo4Qp8kDARdZ7oiKpCVzaHzwZONN4DOMNb1D3/J
         NhL312d9v8unI0ptBJagBQZGOgN/H1mW55MmvX3iHeuvX4guv2bfEJsKy1yfCV2eqCnt
         aKAZYeo/f1zl5OxeOCC9WO2EKbGhUJPOWTg6/WXw7AwN1+M+euZdkHcKIkUjf7ng5G0G
         LwYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770795565; x=1771400365;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hAOqMCJadlogczB7gZP3FZlkdp68ySmqKKAKzRWZ3Cc=;
        b=jiJVrTczYlPrNy5MCmETZt2ZGV4isx4EwmvMjgn9a7vQYS2Md+hPV6MuUJpnsP0hBK
         2lIYJlKbKJ4YZiuvBtYFVqyEZmw7/C65QM6zZmvTYTm6i5JwSteXsXNREOy4j28nJlon
         KDTKNgv8LzeCpPsH0/5TaXuPnQQ/+I+xkGDKAVcr7aMILgBc/ILqL4I/l8Nb6hOaeQCm
         AGj1Otq+RdXzmQUKBS1WGkEsgKm90PDJYRWvMSmicRaRTEnGWu7+eW6gAqGLmBi4WYo5
         u5P6oKMMQY3kBdMHfcZM6BXtqVLHkMWszEPjmKQWH+YO58k8C+2cgOH2Fufn/ytlbH6j
         OK+w==
X-Gm-Message-State: AOJu0YzLhRj0aYzoDOI8AiOkKPkZVMxA8HbUv8D7T/NwkIvo1S0KqCXH
	KT5HMdeeoG2Y2AOT411hjlY01N4sCLKAknJ36S1J5c/jJUn7BmowWvYSk7V0jfJsAvvKuezUQzY
	ePti/TBlA0pegBuqXJyjxhIJPViBj5tD0mmSwgxaEf3J8huLZ7MmJ3MI=
X-Gm-Gg: AZuq6aIDS+gzEDrD8AgnU9NHpDDF925Di0yAJRuqFcf1I68XblpLJ09kwkyKfKht6kB
	i3CM28RzYk3ZwXkhaCFTs3RdacuxYQCigpSwPegDpKQ6jFRqskPSx9vz3sdFC1oh847wOlb8IlA
	G8LCACgxnsfQ1zuEvDM+Vw/oyFpnUFs/YE8B6Wu9Hk/nZnrUsMylsURF+bz5PwmGShreNHcULMy
	sLxnW1hpTBbTzEjoDLHwY0Gl20QbrplWxhxZ8UeJ5d3Qt4DlWEevzsOZjlUas4GqVB0oKkMF1XS
	OGbgclgcYUtKiWArlEGkn6drWwAmL6Lz/wrjHg==
X-Received: by 2002:a05:6870:e391:b0:3d9:5ec5:9168 with SMTP id
 586e51a60fabf-40ea937d68dmr1017618fac.1.1770795564849; Tue, 10 Feb 2026
 23:39:24 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <971bf27b9a2cafa0ed405a638a532b6fbbf51142.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <971bf27b9a2cafa0ed405a638a532b6fbbf51142.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 11 Feb 2026 08:39:13 +0100
X-Gm-Features: AZwV_QgDQKCi4OiQx0XmIgx2lycCVB8uWIjtbZ7LzBFjf_W0JhSSJjhf9apn2f4
Message-ID: <CAHUa44F9sSzTV-X9tKDffk9vWfT9=KZGmqp3EiR0rEo1nwd7Pg@mail.gmail.com>
Subject: Re: [PATCH 07/12] xen/arm: ffa: Fix RXTX_UNMAP ownership race
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> rxtx_unmap() checks RX ownership without holding the RX/TX locks and
> only enforces the ownership rule when FFA_RX_ACQUIRE is supported. This
> allows a vCPU to acquire RX between the check and unmap, and it lets
> RXTX_UNMAP proceed while RX is owned when buffers are not forwarded to
> firmware.
>
> Hold rx_lock/tx_lock across the ownership check and unmap, and deny
> RXTX_UNMAP whenever RX is owned, independent of RX_ACQUIRE support. For
> teardown, release RX ownership under the same lock window; use
> FFA_RX_RELEASE directly because rx_lock is held, and clear the local
> flag when the firmware path is unavailable.
>
> Functional impact: RXTX_UNMAP now reliably returns DENIED while RX is
> owned, and teardown releases/clears ownership without a race.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_rxtx.c | 36 +++++++++++++++++++++++++++++++++---
>  1 file changed, 33 insertions(+), 3 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index eff95a7955d7..450ce102cbdc 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -220,7 +220,7 @@ err_unlock_rxtx:
>      return ret;
>  }
>
> -static int32_t rxtx_unmap(struct domain *d)
> +static int32_t rxtx_unmap(struct domain *d, bool teardown)
>  {
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      int32_t ret =3D FFA_RET_OK;
> @@ -234,6 +234,36 @@ static int32_t rxtx_unmap(struct domain *d)
>          goto err_unlock_rxtx;
>      }
>
> +    if ( !ctx->rx_is_free )
> +    {
> +        if ( teardown )
> +        {
> +            if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
> +            {
> +                int32_t rel_ret;
> +
> +                /* Can't use ffa_rx_release() while holding rx_lock. */
> +                rel_ret =3D ffa_simple_call(FFA_RX_RELEASE, ctx->ffa_id,
> +                                          0, 0, 0);
> +                if ( rel_ret )
> +                    gdprintk(XENLOG_DEBUG,
> +                             "ffa: RX release during teardown failed: %d=
\n",
> +                             rel_ret);
> +                else
> +                    ctx->rx_is_free =3D true;

I don't see why this assignment is needed, or the one just below.

> +            }
> +            else
> +                ctx->rx_is_free =3D true;
> +        }
> +        else
> +        {
> +            gdprintk(XENLOG_DEBUG,
> +                     "ffa: RXTX_UNMAP denied, RX buffer owned by VM\n");
> +            ret =3D FFA_RET_DENIED;
> +            goto err_unlock_rxtx;
> +        }
> +    }
> +
>      if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
>      {
>          ret =3D ffa_rxtx_unmap(ffa_get_vm_id(d));
> @@ -261,7 +291,7 @@ err_unlock_rxtx:
>
>  int32_t ffa_handle_rxtx_unmap(void)
>  {
> -    return rxtx_unmap(current->domain);
> +    return rxtx_unmap(current->domain, false);
>  }
>
>  int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size=
)
> @@ -369,7 +399,7 @@ int32_t ffa_rxtx_domain_init(struct domain *d)
>
>  void ffa_rxtx_domain_destroy(struct domain *d)
>  {
> -    rxtx_unmap(d);
> +    rxtx_unmap(d, true);

How about adding a /* teardown */ just after true as a reminder of
what true is supposed to represent.

Adding such comments isn't very common, but we're doing it at a few
places in the source tree, and I think it helps when reading the code.

Cheers,
Jens

>  }
>
>  void *ffa_rxtx_spmc_rx_acquire(void)
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 07:50:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 07:50:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227016.1533348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq4yw-0005Yl-H1; Wed, 11 Feb 2026 07:49:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227016.1533348; Wed, 11 Feb 2026 07:49:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq4yw-0005Ye-EP; Wed, 11 Feb 2026 07:49:54 +0000
Received: by outflank-mailman (input) for mailman id 1227016;
 Wed, 11 Feb 2026 07:49: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq4yv-0005YY-Gr
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 07:49: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 3f62d9f9-071e-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 08:49:52 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-47edd9024b1so62770105e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 10 Feb 2026 23:49:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d482480sm127769205e9.0.2026.02.10.23.49.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 10 Feb 2026 23:49:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f62d9f9-071e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770796191; x=1771400991; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lJvCSMhHMkgd1TQ3KoQiUVH//7ztu4XOKSFT1sB6xJg=;
        b=NgpDpC83Z3llIIj6RJlJjpmIO0z5sgAsgE5Z0Ul7TvZGEELxSW5nX6+7ajymByGz95
         WRGhIAmuojc3DdV95lTydXnJ684WeAluv1laB8I44tcrILpdr7WiRGgP6r4QBgRf9EAy
         QT1BsuUc3UkoZTKtG1MNs+kMhrpYyWfuNZfBxLZJNaLg23xcO33qsfa6VxPpfFDljGmP
         965UolRYVVaUisikmp7G1d5A88mLozIGcHEdKhSd9ek67tYu/lmTwctRHkc5RiLjWdYu
         9lyU3kWJtMrDRWdA5fUQCMi5P7uIFEyAeEuXG5Q1E+L8sJd4rNUQxFpjQyTUNSpqBish
         nSqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770796191; x=1771400991;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lJvCSMhHMkgd1TQ3KoQiUVH//7ztu4XOKSFT1sB6xJg=;
        b=nagcMuw75yZh+iTV22NODXCQ8FEEr5b2vVtO8XZLccFA5djXpsXCs8/myBCt9jJblY
         znPfeBB+/u8V1bxkt8Xpi9PneybBeb8Nc7anxu8++UTh8P0LSpDp4Z87/PyGxTuauUjS
         ZX4QL9MEPfLRpF3oyrssCd86oMOIXcftJEJOlbEKuX30VDTWhBYsHlftT5eEvkW8rIzy
         5Ig6L8Nw4kiyMU4d3QeHckzFYIT+AWMJBcYKSyZoJYw3Fd1x0NIlh6CxU+zgJQmM+2x9
         pS8KmTAm2jTSMq5gUnf37CEjkcxm8mm5W+LNJKneWG317RGDrGvK5//5ogSJT27WWbCQ
         Vehw==
X-Forwarded-Encrypted: i=1; AJvYcCVSWOAmPvmXh4SwSX0fMX9uMZgfYX6BrK83DdUtjKyzymGdohV0kG2u+xNuYV6P3tFd701AslRlgnc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw1k+mWL4EBS5uSFDB/dy0BxHTmc2Bdwft4a8FqPI72QszJKhPy
	pFZQLK7BOIcbMCyPUsbxS9SQwYSccQsSGT+B1XS1iJxdwK90lEDXzkfS0YiGzkYTYQ==
X-Gm-Gg: AZuq6aIUet/tNibyxlE0wEpAZ06f6N/uqY9UyB4tpJFZr8fvXJQOjK5dW8zCq5EIs7/
	Pc6UHPlAupnKVrPZok4/+8bOzzpJVLyvJU/Q68FiQ/Xw394VpaY7Zf5NZDQapy9Pztpm0FU1yai
	REqpVTZYp9AOnjCYQAoO9BisEvU7mcKcqV1mmV0Na9uPz4HDocK6+VhYiHCdQHuWJXyD4tEW1ws
	65BaSEvI1OzyoHKlsn244OTcOFgfJbTyyAmRCraxqXSJmKsvZmGuLAfa1yrL70yx5IiXmxSs+gr
	doXI+ivaXjYx72QrgZUvgLO/A5fyhUxj47wcoSjmt7toUm2H0g1Hk48ag/8ZVlQJCe8jts10V5Z
	yoH2BYfdsz9xADdlB+kt5be38xS4TtShGQ4Z9aAhm8qXJLbLKGt+eKvGL2fkd6sI/pzFyF4I81+
	eprLGhNDP5yEq4psgFOQNoLzhqf8Pa67AzIDbaDqLhk06a8bX3qOZpt3rb9T6PzWydtNJ23R+7z
	p7IYWhu3zmzSlE=
X-Received: by 2002:a05:600c:34c5:b0:47d:885d:d2ff with SMTP id 5b1f17b1804b1-4835b96ecf7mr20333155e9.29.1770796191414;
        Tue, 10 Feb 2026 23:49:51 -0800 (PST)
Message-ID: <a660d245-0c63-409c-8609-ba767fff9e65@suse.com>
Date: Wed, 11 Feb 2026 08:49:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/16] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <cfb2bd81ca9c43f29f5d77a918e1da7a8c55318e.1770650552.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: <cfb2bd81ca9c43f29f5d77a918e1da7a8c55318e.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> Some hypervisor CSRs expose optional functionality and may not implement
> all architectural bits. Writing unsupported bits can either be ignored
> or raise an exception depending on the platform.
> 
> Detect the set of writable bits for selected hypervisor CSRs at boot and
> store the resulting masks for later use. This allows safely programming
> these CSRs during vCPU context switching and avoids relying on hardcoded
> architectural assumptions.
> 
> Note that csr_set() is used instead of csr_write() to write all ones to
> the mask, as the CSRRS instruction, according to the RISC-V specification,
> sets only those bits that are writable:
>     Any bit that is high in rs1 will cause the corresponding bit to be set
>     in the CSR, if that CSR bit is writable.
> In contrast, the CSRRW instruction does not take CSR bit writability into
> account, which could lead to unintended side effects when writing all ones
> to a CSR.

Hmm, I wonder in how far the wording there is precise. In a subsequent
paragraph there is:

"For both CSRRS and CSRRC, if rs1=x0, then the instruction will not write
 to the CSR at all, and so shall not cause any of the side effects that
 might otherwise occur on a CSR write, nor raise illegal-instruction
 exceptions on accesses to read-only CSRs."

To me, a read-only CSR is a CSR with all bits read-only. With this
interpretation, the two statements conflict with one another. Is this
interpretation ruled out somewhere?

> Masks are calculated at the moment only for hdeleg, henvcfg, hideleg,

Nit: First one is hedeleg.

> hstateen0 registers as only them are going to be used in the follow up
> patch.
> 
> If the Smstateen extension is not implemented, hstateen0 cannot be read
> because the register is considered non-existent. Instructions that attempt
> to access a CSR that is not implemented or not visible in the current mode
> are reserved and will raise an illegal-instruction exception.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V3:
>  - New patch.
> 
> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -32,6 +32,8 @@
>  unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
>      __aligned(STACK_SIZE);
>  
> +struct csr_masks __ro_after_init csr_masks;

setup.c would be nice to only have __init functions and __initdata data.
Really up to now that's the case, and I wonder why the makefile doesn't
leverage this by using setup.init.o in place of setup.o. This variable
would likely better live elsewhere anyway, imo: Somewhere it's actually
(going to be) used.

> @@ -70,6 +72,28 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
>      return fdt;
>  }
>  
> +void __init init_csr_masks(void)
> +{
> +    register_t old;
> +
> +#define X(csr, field) \
> +        old = csr_read(CSR_##csr); \
> +        csr_set(CSR_##csr, ULONG_MAX); \
> +        csr_masks.field = csr_read(CSR_##csr); \
> +        csr_write(CSR_##csr, old)

See my remark on the earlier patch regarding locally used macros. You
shouldn't ...

> +    X(HEDELEG, hedeleg);
> +    X(HENVCFG, henvcfg);
> +    X(HIDELEG, hideleg);
> +
> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
> +    {
> +        X(HSTATEEN0, hstateen0);
> +    }

... be required to put braces here. (Then I'd further recommend to make "old"
local to the macro's scope.)

I'm also inclined to recommend to avoid an inflation of X() macros. Give
each such macro a somewhat sensible (yet still short) name. This way you'll
avoid Misra rule 5.4 ("Macro identifiers shall be distinct") concerns, in
combination with rule 20.5 ("#undef should not be used"). Note that we
didn't accept the latter rule, hence why I'm only saying "concerns", not
"violations".

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 08:15:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 08:15:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227039.1533359 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5NT-0001dc-2e; Wed, 11 Feb 2026 08:15:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227039.1533359; Wed, 11 Feb 2026 08: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 1vq5NS-0001dV-VT; Wed, 11 Feb 2026 08:15:14 +0000
Received: by outflank-mailman (input) for mailman id 1227039;
 Wed, 11 Feb 2026 08:15: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq5NQ-0001dP-QI
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 08:15: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 c849ac4a-0721-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 09:15:10 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47ff94b46afso5956545e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 00:15:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dd0deeasm23714275e9.12.2026.02.11.00.15.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 00:15:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c849ac4a-0721-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770797709; x=1771402509; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BGJkZBnjHSznE6/u2MV2J/YHyTp7Lw1oq9mek2iejl4=;
        b=gmlTRkXU9z2AqHTzl7flGg6pYUK16Ib5BsvcRYmRZZHgTzBRp2LTg01ny6BNEW9vMI
         /oUqWAFMxAlbJX48gimkx39RoUeB8mILMYT/QPsq0cua7VoBAHtBMVvvdoh4f4EVi8no
         TWcME8lfLuldYDaX/kn6lq+NQg86uW+uzt5a9UCeT0ofAe5diFsaQmpr3TQxk7w0/miL
         luITb9JCjuMQeMVfigyGgHclwapXVQYSRS6Ht58niasd+0b25pAZk/QyBQsePZayMTh6
         MRG7oYn6+ORTWJ8MZdwGydXpbXJ606vWj/eLItTHyJEwiicPYsDlDQpAEBtlRX3PblQo
         URIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770797710; x=1771402510;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BGJkZBnjHSznE6/u2MV2J/YHyTp7Lw1oq9mek2iejl4=;
        b=KHxt8o0FXO+Ki7RW0kFAjYeWqewS95uF6M+HbLw6KwOKdIkRrEWbPOMr9+437GZmS5
         7gU0/DzV/ZHBu+HWEkajW7hljP8lGXeCPI9cnBLoFhQBpq7I4Mncq9dtWaNzsum20fKx
         OvhIh4KUtaDmXeZgEmGEBkMiAOyIkYkztOZ9VoM2rMKJ7ALifOt+Yjzh9KSwBLCg9M7K
         an5zo7R0j+Gc82ghD8ck1I23W1zPLQauIcueQxQ75r3qJvOVhzZ2LenmCr3+Gc2mQVBy
         SqzlQHuixkqbJ8l8CtvAio7Bn/A9zxuOa1TqxLM7Xs2h3bqXvdLCuC4XeeBzwWWLkFNs
         UdGw==
X-Forwarded-Encrypted: i=1; AJvYcCXAATv82eOcLugd79jS0zlkW+y5PiM9Nk4ZaUvgbcDLFNiGx2a77nP9rtwDsr4GhIGg2oQnPdr97wc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxQZFAWg+d+40dhlO4MgBAP/UGgfdgJ9nMEA+XtqYlYa01VcMd4
	tQIs+TM5wJElRGnB0bBg2ULBHGaa+eJQjsuxFxzIVwuHFa70Y/L3oUnifplt6iOj8A==
X-Gm-Gg: AZuq6aL/U1+xSn15LbC5xKvRFZ3RcPTwVIFdyFXs+7K8hdC7H4KcAa89r1T/3gZacX8
	amgef9QcjtX0/gcvBGMpj5cDMA1taOM6+L+zxttCGH8+5sIgTveUAeRxuVfyELJa0RdGzL8vUbM
	lVspZ5HRrrMYpmOOTcxqksC5MpIfNKrllfFMoOyakZmUaGu7qELL0RlYMJiyYJWE7mXXQRq8vmu
	sOMUvGodSWXBQCJLfP16SyeF+HQEybZUUTw6wcV6YhQLQwBKD47ZGn+qOs829WlTW79wtZm5Fkb
	k5jd8/VsqjPZLrYxlEIrnc1V92VKYzaIdS3K0dfkvS23OMNFzcFKJeftaV5kjzBrGPvZOrHTPTQ
	QTFKoQd2I0oz7f4F12ospOYe5YWN6wdhO+i8M+tX8ReDCSb5/GhRK0JGh7r1nFLcfK2O4G+AEhm
	EcClGvynkw6UJ67NuzgYrlYn2xTPzTbZ9BkLwfELBzs3BRgzzeIL8hTB9N5YSFkWIXX2YTfo00i
	ZAq3E6OV+TEAfQ=
X-Received: by 2002:a05:600c:8b42:b0:46e:59bd:f7e2 with SMTP id 5b1f17b1804b1-4835053c2a7mr71203175e9.11.1770797709569;
        Wed, 11 Feb 2026 00:15:09 -0800 (PST)
Message-ID: <e3329e87-76a5-474c-9415-7ab78c3a7ba6@suse.com>
Date: Wed, 11 Feb 2026 09:15:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 07/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: <20251003225334.2123667-1-andrew.cooper3@citrix.com>
 <20251003225334.2123667-8-andrew.cooper3@citrix.com>
 <e314d193-79f2-4d77-a2ed-1590375b4b96@suse.com>
 <6786174e-e00e-46fd-8b82-7eb823ad96a8@citrix.com>
 <82adaa8a-b7d9-40fa-b59b-0851776fb59b@suse.com>
 <6a675aa8-ad41-4b09-b38e-562c5866149f@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: <6a675aa8-ad41-4b09-b38e-562c5866149f@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.02.2026 17:21, Andrew Cooper wrote:
> On 10/02/2026 11:55 am, Jan Beulich wrote:
>> On 10.02.2026 12:15, Andrew Cooper wrote:
>>> On 07/10/2025 4:58 pm, Jan Beulich wrote:
>>>> On 04.10.2025 00:53, 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.
>>>>>
>>>>> Fix a typo in the parameter name, which should be shstk_base.
>>>>>
>>>>> 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>
>>>>>
>>>>> Leave as $%c.  Otherwise it doesn't assemble correctly presented with $$24568
>>>>> to parse as an instruction immediate.
>>>> I don't follow. Where would the 2nd $ come from if you write ...
>>>>
>>>>> --- 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[shstk_base], %[val];",                 \
>>>>> +                "mov $%c[shstk_base] + 8, %[val];",             \
>>>>> +                X86_FEATURE_XEN_FRED)                           \
>>>>     ALTERNATIVE("mov %[shstk_base], %[val];",                   \
>>>>                 "mov %[shstk_base] + 8, %[val];",               \
>>>>                 X86_FEATURE_XEN_FRED)                           \
>>> I find this feedback completely uncharacteristic.  You always goes out
>>> of your way to hide % inside macros to prohibit non-register operands.
>>>
>>> This is exactly the same, except to force an immediate operand, so the
>>> length of the two instructions is the same.
>> Thinking about it more, are you perhaps referring to assembler macros?
>> There indeed I prefer to have the % inside the macros; the same may go
>> for $ there, but I don't think we had the need so far. For inline
>> assembly the situation is different: The compiler emits the % (and also
>> the $), unless special modifiers are used. It wouldn't even occur to me
>> to ask that we use %%%V[val] for a register operand. That really is the
>> register equivalent of the $%c[val] that you use above.
> 
> We can't use %V anyway because it's not available in our toolchain baseline.

Sure, I used this to get my point across. Technically we could macro-ize
this to use plain % on older gcc and %%%V on ones recognizing the
modifier.

> But, bottom line.  How insistent are you going to be here, because this
> is the only thing holding up committing 6 patches.

The construct you use is technically correct, so it feels odd for me to
block this (hence the R-b I gave). Otoh I have to return the question: How
insistent are you on using a more complicated construct when a simpler one
will do (and will be correct as long as we get the constraint right)?

Jan

PS: As to the constraint, I wonder if it wouldn't better be "e". The
value used is small enough right now, but if whatever change led to it
becoming huge (e.g. an address instead of a size, as "shstk_base" may be
taken to imply), this would still assemble (to what - oddly - AT&T syntax
calls MOVABS). Yet we may want to be aware of such an encoding change.
Having said this, while things ought to assemble okay in that case, I'm
not as certain as to this also compiling successfully, due to our request
for PIC code. Yet that then ought to be the case regardless of "i" or "e",
and might then only work correctly with the new %cc modifier (which
obviously we can't use unconditionally anyway).


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 08:18:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 08:18:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227044.1533368 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5QA-0002Bj-F3; Wed, 11 Feb 2026 08:18:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227044.1533368; Wed, 11 Feb 2026 08: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 1vq5QA-0002Bc-CP; Wed, 11 Feb 2026 08:18:02 +0000
Received: by outflank-mailman (input) for mailman id 1227044;
 Wed, 11 Feb 2026 08:18: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=wgMA=AP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vq5Q9-0002BW-M0
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 08:18:01 +0000
Received: from mail-oi1-x229.google.com (mail-oi1-x229.google.com
 [2607:f8b0:4864:20::229])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2cec58b8-0722-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 09:17:59 +0100 (CET)
Received: by mail-oi1-x229.google.com with SMTP id
 5614622812f47-45c715116dbso1030790b6e.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 00:17:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2cec58b8-0722-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770797878; cv=none;
        d=google.com; s=arc-20240605;
        b=M3phq9/+dfUxcuXoXwSKQzUIY/hRc7st9K62fZcLz/xoyH1eusRk4VSeNX3pmsYX4q
         kwEDqv4FIDdQcxu7Ou6sVL/I/wq0MkXsChD3vTVQtej+Ij5hGp1/Hkz1vF/QGY8pZvW+
         ybeiC3e4Y4jsFS9h13VX5CJIe8lUTWsdtVKYY7adwGMexATbjy2+OasaaJ0+a752UliT
         ziKNUX40YTA9YNn/7lcZbvPkTx6WFyIwUKbH38gyswx1oWkEcXD4kUbdC/zAM2W7D0pr
         9LIRH/hesCaX/z/WqaVEVX2zno0JBsHuZR2U+5m2O8B4YL23JE3npY1OurBnheqq2z3R
         1/cQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=ZvwsY8t0d7Xd+Mem21a0yyFMKg8oqPUl/yzfR3i0ZWc=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=Kwi1aB8YZq9WSO+mS+gqFBDJk5AvA9tpzCTzOoounBubvfATm5OjAGps9P/t1v+jSQ
         WxAp66OqAqeV5r6n3gpWuM1VVsTExo8hAPlZbjpHH+z1OVpPO8VviQpTPOUYQF+PkyG7
         xADZzyPX2N8Nj6DbfTNUrm1Dm91uAUR03Gv/RdydsI06hJWSLP6kSxUMO7WXddXLAfnh
         1VtSL8x91LTciMPf0gj5AyI82SOqPfLS22heipumDFQblsXBWfzjWZKr/MUNVykeay3m
         x9oc8bnhnnyamafadS6sc0IO6aFEugmiIVETZdJIEym4+yUCfZCKTHoVSJ7k28oKvkd3
         b6fg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770797878; x=1771402678; 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=ZvwsY8t0d7Xd+Mem21a0yyFMKg8oqPUl/yzfR3i0ZWc=;
        b=GxOzyixVFtLRaIazy60bN8XsF8i+bCJ71U54o/5rUrXpKbjotboDsTDBizA3ssgQsX
         bOKtZksYqVdNW/YGTZQGC09E2jL0ZTF2GH0Orz/ZO+jMZlIkV8UmANWXdR88he05tFCJ
         MYuiCvONx5v5+lsD03FOZwpZgUjDj1rKy6xvL6NkQCehEsinzjK4y2qxFflDv7WdrM4k
         lwS5GOr3X5aMhRNi8psl3fgIjEN+si22MXgA7XlCnfS8GaqTzvUK92LGG+BX1tjPEHBu
         qC5YzjLRiodIFk3mR5KMqdcKCkS33JG7sCA6wNrR+RC3ECmTvZF9za08VbdEte32d34s
         8zdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770797878; x=1771402678;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZvwsY8t0d7Xd+Mem21a0yyFMKg8oqPUl/yzfR3i0ZWc=;
        b=MyBzjvuN0OqdezwNPjeM+wYjbOJUZjg04Ok414LKDta+GApWjAg016p/sGlHJmt2C1
         7Qp7I0Rfu7uCrDO2trBxsls4ehi9zco+H1sIKqtKKi7ZaKBECrN595tywxCERtHVy4PL
         zZ3fO8krO/WNUR/VFXru0c2+5A7W4MyJO39116yxShvVaARp1TFSak/QY2IMIMSsMpG/
         gUb0cB0n/f9oBUzpRtp1GYe2nbyMssASXAuQOXdBHrCgb1uxoEWfzUaaBIJ7dtOHCu3O
         Nf1V7Uh5Yt/GvM3NsMczHj2SSsC0BO+cu3UzTrMCj2NVNCiJLSo2ZNu/N08meI9OTvMA
         621Q==
X-Gm-Message-State: AOJu0Yy9LURN+7HgGLUyRLtY8Vx3A0xRnFjEi3NUQa9VMhvwHQoHdL1M
	1qYYmhmKJxMvvvNWhE9hD/I1mG8CjKJweJYxyZIOZ7rZfPfuw6vAK3G9N5eE7LoMGaj/nptoKZZ
	2OUQXf+CMK6fXkX0URcBrpY4pADLBrdQT27xAEsM3Vw==
X-Gm-Gg: AZuq6aJp7l+nycPUJhTkH3IjMEhYH0mOu0o8Vp+IPwZCIjIpSXwFhlqwQBz8UmNqKWY
	VD4Iigpk2CGjOUOjeZNEOase1gMqfn+B6QHVtyPiKVrVbLkRtzuK1Hy5xRhGbuW1nLNVYtPU1HI
	IdfjpF0A3xvemurc950fHBrTcgQqLonqA/KSbvE8TbReTTBmtQ2VQnG7jg62UMmyVXw9OZI72HF
	a83ouhMptKqZGzulOZu1JrIcM9TcX2IR4R2wv0oy1VRbITXfm+K1AU1622qiJ+GbcR9a3CWR9Yh
	GkE92+rH/6hdixRPVyX4xpdp5cC/2JdjKARE4Q==
X-Received: by 2002:a05:6808:238f:b0:450:a9d0:b790 with SMTP id
 5614622812f47-462fcb66cc5mr8365484b6e.46.1770797878205; Wed, 11 Feb 2026
 00:17:58 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <5331b33343441028d10c290b21b82acce295fff0.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <5331b33343441028d10c290b21b82acce295fff0.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 11 Feb 2026 09:17:46 +0100
X-Gm-Features: AZwV_QhE0gcct39M8TIW1-bQXxJYBmkPBkcr8-Z4pFs7iATDwX9jHErhRwWV-kg
Message-ID: <CAHUa44FWRepyAakwXLjObbA=8O_LMBR5jk0-WEAXZdgsQCsHOw@mail.gmail.com>
Subject: Re: [PATCH 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FFA_FEATURES currently accepts non-zero input properties (w2-w7) from
> guests and advertises several ABIs unconditionally, even when firmware
> support is missing or when the ABI is physical-instance-only. This can
> mislead guests about what Xen can actually provide and violates FF-A
> calling conventions. Some SPMCs (Hafnium v2.14 or earlier) also fail to
> report FFA_RX_ACQUIRE despite supporting it.
>
> Update FFA_FEATURES validation to match spec and firmware support:
> - reject non-zero w2-w7 input properties with INVALID_PARAMETERS
> - reject 64-bit calling conventions from 32-bit guests with NOT_SUPPORTED
> - return NOT_SUPPORTED for physical-instance-only ABIs
> (FFA_NOTIFICATION_BITMAP_{CREATE,DESTROY}, FFA_RX_ACQUIRE)
> - advertise FFA_INTERRUPT as supported
> - gate message ABIs on firmware support:
> - FFA_MSG_SEND_DIRECT_REQ_{32,64}
> - FFA_MSG_SEND_DIRECT_REQ2 (also requires FF-A 1.2 negotiation)
> - FFA_MSG_SEND2 (or VM-to-VM enabled)
> - report MEM_SHARE_{32,64} only when FFA_MEM_SHARE_64 is supported
> - stop advertising FFA_MSG_YIELD (not implemented)
>
> Update firmware probing: drop FFA_MEM_SHARE_32 checks (deprecated) and
> add FFA_RX_ACQUIRE to the probed set. If FFA_MSG_SEND2 is reported but
> FFA_RX_ACQUIRE is not, assume RX_ACQUIRE support and warn to work
> around the Hafnium bug.
>
> Functional impact: guests now see ABI support that reflects firmware
> capabilities and Xen implementation status. When SEND2 is present but
> RX_ACQUIRE is not reported, Xen assumes RX_ACQUIRE support.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c | 62 +++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 55 insertions(+), 7 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 6de2b9f8ac8e..e9e020bb0cb3 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -91,10 +91,10 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] =
=3D {
>      FW_ABI(FFA_PARTITION_INFO_GET),
>      FW_ABI(FFA_NOTIFICATION_INFO_GET_64),
>      FW_ABI(FFA_NOTIFICATION_GET),
> +    FW_ABI(FFA_RX_ACQUIRE),
>      FW_ABI(FFA_RX_RELEASE),
>      FW_ABI(FFA_RXTX_MAP_64),
>      FW_ABI(FFA_RXTX_UNMAP),
> -    FW_ABI(FFA_MEM_SHARE_32),
>      FW_ABI(FFA_MEM_SHARE_64),
>      FW_ABI(FFA_MEM_RECLAIM),
>      FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
> @@ -240,19 +240,39 @@ static void handle_features(struct cpu_user_regs *r=
egs)
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      unsigned int n;
>
> +    /*
> +     * Xen does not accept any non-zero FFA_FEATURES input properties fr=
om
> +     * VMs. The spec only defines w2 input properties for FFA_MEM_RETRIE=
VE_REQ
> +     * (NS-bit negotiation for SP/SPMC) and FFA_RXTX_MAP (buffer size an=
d
> +     * alignment), so w2 must be MBZ for our callers.
> +     */

The spec (version 1.2) lists them as SBZ, except for w2, which is MBZ,
for Feature IDs.
However, if we're to return an error, invalid parameters is a better choice=
.

Cheers,
Jens

>      for ( n =3D 2; n <=3D 7; n++ )
>      {
>          if ( get_user_reg(regs, n) )
>          {
> -            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +            ffa_set_regs_error(regs, FFA_RET_INVALID_PARAMETERS);
>              return;
>          }
>      }
>
> +    if ( !is_64bit_domain(d) && smccc_is_conv_64(a1) )
> +    {
> +        /* 32bit guests should only use 32bit convention calls */
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        return;
> +    }
> +
>      switch ( a1 )
>      {
> +    case FFA_NOTIFICATION_BITMAP_CREATE:
> +    case FFA_NOTIFICATION_BITMAP_DESTROY:
> +    case FFA_RX_ACQUIRE:
> +        /* Physical-instance-only ABIs are not exposed to VMs. */
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        break;
>      case FFA_ERROR:
>      case FFA_VERSION:
> +    case FFA_INTERRUPT:
>      case FFA_SUCCESS_32:
>      case FFA_SUCCESS_64:
>      case FFA_FEATURES:
> @@ -261,16 +281,25 @@ static void handle_features(struct cpu_user_regs *r=
egs)
>      case FFA_RXTX_UNMAP:
>      case FFA_MEM_RECLAIM:
>      case FFA_PARTITION_INFO_GET:
> +        ffa_set_regs_success(regs, 0, 0);
> +        break;
>      case FFA_MSG_SEND_DIRECT_REQ_32:
>      case FFA_MSG_SEND_DIRECT_REQ_64:
> -    case FFA_MSG_SEND2:
>      case FFA_RUN:
> -    case FFA_INTERRUPT:
> -    case FFA_MSG_YIELD:
> -        ffa_set_regs_success(regs, 0, 0);
> +        if ( ffa_fw_supports_fid(a1) )
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        break;
> +    case FFA_MSG_SEND2:
> +        if ( ffa_fw_supports_fid(a1) || IS_ENABLED(CONFIG_FFA_VM_TO_VM) =
)
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>          break;
>      case FFA_MSG_SEND_DIRECT_REQ2:
> -        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> +        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 &&
> +             ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ2) )
>          {
>              ffa_set_regs_success(regs, 0, 0);
>          }
> @@ -281,6 +310,11 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>          break;
>      case FFA_MEM_SHARE_64:
>      case FFA_MEM_SHARE_32:
> +        if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
> +        {
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +            break;
> +        }
>          /*
>           * We currently don't support dynamically allocated buffers. Rep=
ort
>           * that with 0 in bit[0] of w2.
> @@ -688,6 +722,20 @@ static bool ffa_probe_fw(void)
>                     ffa_fw_abi_needed[i].name);
>      }
>
> +    /*
> +     * Hafnium v2.14 or earlier does not report FFA_RX_ACQUIRE in
> +     * FFA_FEATURES even though it supports it.
> +     */
> +    if ( !ffa_fw_supports_fid(FFA_RX_ACQUIRE) &&
> +         ffa_fw_supports_fid(FFA_MSG_SEND2) )
> +    {
> +        printk(XENLOG_WARNING
> +               "ARM FF-A Firmware reports FFA_MSG_SEND2 without FFA_RX_A=
CQUIRE\n");
> +        printk(XENLOG_WARNING
> +               "ffa: assuming RX_ACQUIRE support (workaround)\n");
> +        set_bit(FFA_ABI_BITNUM(FFA_RX_ACQUIRE), ffa_fw_abi_supported);
> +    }
> +
>      if ( !ffa_rxtx_spmc_init() )
>      {
>          printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 08:28:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 08:28:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227057.1533378 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5aI-0003uI-F7; Wed, 11 Feb 2026 08:28:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227057.1533378; Wed, 11 Feb 2026 08: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 1vq5aI-0003uB-CE; Wed, 11 Feb 2026 08:28:30 +0000
Received: by outflank-mailman (input) for mailman id 1227057;
 Wed, 11 Feb 2026 08:28: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=Uigq=AP=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vq5aG-0003u2-MR
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 08:28:28 +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 a2fb0ea1-0723-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 09:28:26 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-59e4993e00aso1689064e87.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 00:28:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a2fb0ea1-0723-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770798506; cv=none;
        d=google.com; s=arc-20240605;
        b=AF2k+Bf+gIUR4wKc7/EFRRYrmKIR/zAyMJwzAMVfzPabYQIC/aEx0fSBw1WmeMsKO1
         NA2EWaJAMLWeKVVBcCmS53DXoBheNJNaJBSDyCFeOrJ4Dimfmthtw/UvmfC5ADx9VNVr
         QkHcO9VaV4mqVdd/WhVQBoiivjgMndCroVB5/rPThRxPaBLakJEbIiUpnZqx4c3DbEuA
         XWve6fs8BmsqPou2Gm8oGSfF/iZL87U/I2xi19QZ9E1MO6GTtkBmdnxQ0srfIn4qCu+k
         tn3iUbgeaYpm9NuDfVGN8MpzF41fWelHRmt9E9mxWK9qgUM0ZOFIHcuQr66+fi3Thf+U
         e9Ng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=G0mCF6gCW7FxARpUXdySi7kBsVPBEEF/j/OX0R90cB4=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=OlQMf+d01fl8Zramr3kxc5cSxDbNpuQ2vhM4/t20Y9J5blONBzwhvTi1Fksr6tvxj8
         nXV3Irfnbtum2sXMSgqWL7OMpZRmic2/p42XXqQEOmZvd2oz94LRsObsP7OlkTy34da5
         xeEc3w6Osgck0PM/Wy3FnXqLkFQRsnPRL18t6bq8UduDnYt+PfK2ZfaD3E52/JpmkOXR
         5xiqj2LvMAJ7TN7YRJfuqZWDXsyjmo6KTTe48WazqVYdui18akltb+/D1Jvv25EaglMM
         o9BYalCp4RdLK9/QhsEq0X7JIusWWHEbKTRSD1fItxeJro2ZBFvZhZDazNEFTMLrTvwT
         Q1TA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770798506; x=1771403306; 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=G0mCF6gCW7FxARpUXdySi7kBsVPBEEF/j/OX0R90cB4=;
        b=a7FCUGGOBHnbMfUS9CbiVF3JdGrJWGcYdUtyKxLPTKffK9ZSZCgy0UZGPgksgv6r5H
         KL/V2GUU9R8vpTzJXKgpAW6SDovLqbZ1brBFYBr4gNDnXm4HO296xh0S578xq+P20SNZ
         CDiSU15F/QG8nWBdL8dWkd3MQMbxbKKfdKRiSjZBcILBFvB9pqGWSZNVYtAGk2X9fAKR
         9vJXAO9oZANordZe3Nk6FgYOrxWKdwoT8wNzPdY4QKFngV9n3i0jaG4KA5pK2kCInnRQ
         5b4zfZTA8QxL+VcbtlNvhNzaCuiKIqeQeOuTddvxHrTXlOerVO8H4+SVC0YTyEQw+2Uy
         CNYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770798506; x=1771403306;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=G0mCF6gCW7FxARpUXdySi7kBsVPBEEF/j/OX0R90cB4=;
        b=bQe8kfngG9HsTzh+IN25fYUnMJkWWNNnkDjSJZvQjbPJA32zWrY/R59Lht2kTkYMPM
         8yh2GBPPzYulBeqjm0VL3jOqu2765qz5/HrBwCAliOKOYgdlJnnA/ZgDJ7OK8Dnk8nhD
         +daAVL3mHrI1PVuBnZyZ5WlYj+fMrxSjJpsIREhj+xNusXZ7/Ml3p2JIGztiH6zQ8nwS
         mrrhlkTTBWUnEiSy+XPY1kOE1SDV3ND77jdcV9H2+QaE1QQ5SY9JylIdgx+d7c2sSC8H
         l+oUlkh4mYzEfgn7izjRA+JVzt1VpyPKr4FvswPL81TIde0A0D+GfFKPW6kjgS4/2iUB
         c5tw==
X-Gm-Message-State: AOJu0Yx0bODncE5wk2MMLiPSdL3YMx3lgkYXYtnpmqlhTFOS+hFnTpeM
	MUdKFgYRpiFeYUQljyU7M6LBvJMy3ZLuKgF1IXLHMMhy0is5DEuNj6fb5/jwkWpzSoSHchDcfJt
	SprMrOuVsFzc9iIDmSZOJgmeWv6EjNYM=
X-Gm-Gg: AZuq6aLqbLHCR4rP7mnx0ipZ9CVIdDK7G1kWNtOp8LO5a14eI1lplTss3r5BBc0HUIK
	7kRTioE1VBopyr0x+BNJat5Y+Eran3OvvIyORV8uqvWOzz6ErJb51HlEDqThxyRdCdankVZspPp
	b684ARbysOpyZvj3l4VoPFfkQtfSZVsYbdQTqflr4l5jcgkRU7+6mmUxVPEYT5Zv8JbfVTi2U6B
	tQ9zLR5d77sU/TLziHwEUQa74J680IhFstA2EAZ3kSCcVm1TewGb1vFvgIaM6v4yg/rxZ8VlpeX
	G/l+
X-Received: by 2002:a05:6512:618b:b0:59e:407a:c8f7 with SMTP id
 2adb3069b0e04-59e45152d3fmr4858710e87.29.1770798505657; Wed, 11 Feb 2026
 00:28:25 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <21505d8f47bdabbf0f8e534eed937c5bf0a4ce02.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <21505d8f47bdabbf0f8e534eed937c5bf0a4ce02.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 11 Feb 2026 10:28:13 +0200
X-Gm-Features: AZwV_Qhf7Sk-3veq8pb7JP-KVFkxMtvofOqfn2KXzQJMJwrtBJMhdzS7avXhXbY
Message-ID: <CAGeoDV84Ys0Tqe8DGv7zC3-ExLZYqcBDkdVxEjNBUmQfDE+hYQ@mail.gmail.com>
Subject: Re: [RFC PATCH 01/19] arm/gicv4 add management structure definitions
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

Thank you for the contribution.

On Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Add GICv4 specific structures to be used in later patches.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/include/asm/vgic.h | 43 +++++++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
>
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 6f9ab1c98c..a874a02d70 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -127,6 +127,42 @@ struct vgic_irq_rank {
>      uint8_t vcpu[32];
>  };
>
> +#ifdef CONFIG_GICV4
> +struct its_vm {
> +    struct its_vpe **vpes;
> +    /* Number of VPE. */
> +    unsigned int nr_vpes;
> +    uint32_t *db_lpi_bases;
> +    unsigned int nr_db_lpis;
> +    /* Property table per VM. */
> +    void *vproptable;
> +};
> +
> +struct its_vpe {
> +    rwlock_t lock;
> +    uint32_t vpe_id;
> +    /* Pending table per VCPU. */
> +    void *vpendtable;
> +    uint32_t vpe_db_lpi;
> +    struct its_vm *its_vm;
> +    unsigned int col_idx;
> +    bool resident;
> +    /* Pending VLPIs on schedule out? */
> +    bool            pending_last;
> +    struct {
> +        /* Implementation Defined Area Invalid */
> +        bool idai;
> +        /* VPE proxy mapping */
> +        int vpe_proxy_event;
> +    };
> +    /*
> +     * Ensure mutual exclusion between affinity setting of the vPE
> +     * and vLPI operations using vpe->col_idx.
> +     */
> +    spinlock_t vpe_lock;
> +};
> +#endif
> +
>  struct vgic_dist {
>      /* Version of the vGIC */
>      enum gic_version version;
> @@ -193,6 +229,10 @@ struct vgic_dist {
>       */
>      bool rdists_enabled;                /* Is any redistributor enabled?=
 */
>      bool has_its;
> +#ifdef CONFIG_GICV4
> +    struct its_vm *its_vm;
> +#endif
> +    bool nassgireq;

nit: unused in this series


Best regards,
Mykola


>  #endif
>  };
>
> @@ -227,6 +267,9 @@ struct vgic_cpu {
>  #define VGIC_V3_RDIST_LAST      (1 << 0)        /* last vCPU of the rdis=
t */
>  #define VGIC_V3_LPIS_ENABLED    (1 << 1)
>      uint8_t flags;
> +#ifdef CONFIG_GICV4
> +    struct its_vpe *its_vpe;
> +#endif
>  };
>
>  struct sgi_target {
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 08:28:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 08:28:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227059.1533388 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5aU-0004B0-Mp; Wed, 11 Feb 2026 08:28:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227059.1533388; Wed, 11 Feb 2026 08: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 1vq5aU-0004Ar-KD; Wed, 11 Feb 2026 08:28:42 +0000
Received: by outflank-mailman (input) for mailman id 1227059;
 Wed, 11 Feb 2026 08: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=Uigq=AP=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vq5aS-0003u2-Sm
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 08:28:40 +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 aa8b7ab3-0723-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 09:28:39 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-382fb275271so49974221fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 00:28:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa8b7ab3-0723-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770798519; cv=none;
        d=google.com; s=arc-20240605;
        b=TWs30vC+irwc/h5ktAMjtaUWmcnvpltlT5FMGKCs15pWvZZ7qQf6iZn7J1tm/Syn0O
         WsA964epO3kKHPexhx4GgPh1ZKAZHsbA7M2wgJVuXXneate4pSXqN6qWKzlvGag7lsg4
         wp2DWMr+VZMt2faLJVfjvWSTt7cYAfdf8GuxxaKhMuJOYHZqFe30GgPig21Fkj/gbPrO
         4vYVzW0H9LYknz5++MciLLVsYym6RkZTXkXEhA8rBHOipEGsixi0ax5R7foma8RiPjRq
         BZ1xHY2eE+LQLHXD2O4gCuTLCJdliyHZ2BYjs5vR0r7k8/kj2bafqnD/NCuIrWi3c8VX
         8gAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Y5P0pA5ww1oZkDFmE53oeDu5lMmJYN+rkyRE56YrgrU=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=anHjhAAnguwcP/ro60uY0YvCWFEnh1ggmBXpxumQlxPWrpF7hDmp4PRc3b9BVAa20a
         +eZVB9sZH0Wy0UcuPcM0CVVao9L3NBpwKkjrwslfTTW+lYu/by6rsxEVSVREj8K98EEo
         iW8jLSjGuvJQ3rQMLaop94AA51GCa1a46axuZTsW25kSSoebvacEzSyzXUODZw4tgX4T
         +fQWPx7+KwkGlHjcG4hzYbGD/0yEo9/YFwKKHMrTISR4RVUnOSKew5FhD1WVbh+rh9DX
         9AowRuIgZmV1m2R66gwyQ8Wmkd96SDtONAITI6xXFNmVNneIXJLHbyUwAGmPVyPvl0hU
         JAdQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770798519; x=1771403319; 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=Y5P0pA5ww1oZkDFmE53oeDu5lMmJYN+rkyRE56YrgrU=;
        b=ZAbE7DiE1884uRwsrKiRtvqnoKy6YGJKrCj6AwbojoLFQPDoE5c9J3be6/mViwdBP+
         YHYNkEPoIuYAldBl/SItWkE3xukf/C7L0oDTdhlcy30uQazHBdBPU0tfoMixjVShB4zH
         jptXFx0HyFf2hEY1GaVrJqJk+robi7Mc6GzX5wicOCHXhi6qMNC9UuNv1ePAUPUygp/9
         fNyYxDzy2gRugLDe6lUTHsVr7pMnJj1OzoZTFaRhmP5rhIlXfHAnuxQI4AOsmknFeels
         ZRK1vn7K5Px4pmqGoXhvlxfl5SOwqPLxH/0wE8HOxgxrtd263kAGlr5OT1epYiHmdZUL
         R7PQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770798519; x=1771403319;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Y5P0pA5ww1oZkDFmE53oeDu5lMmJYN+rkyRE56YrgrU=;
        b=QN9kxDkwTCrVs28fmI692uJ5Tm5R3OzzPYm755EOk835vIPjcYqckAKwdgW/j9NeCn
         7dXemSv/qVymgmSBFhwKMucmuiJxChVKBlOdYUcUqEe1ROVaKFP1gCfAIP86GoptRlwa
         is+4Mmbs4oDSX7tnAO9h1ySSNEOv5w66qrsEuoJMci7a9yuFslLaNSIPRfGJZL+dpABV
         GB77gsIiDcVt4fqUgw5T+6siffHQyYXbNqlcjNxdxHG59FB19IEnCiV9itChf0oPBxDj
         CcI5jshfSD4ZBhxUf+fBWQrB6MJur+NeF6gu5f3wFKN1QIjcwIfecluaFq/ZGV0iXCGU
         7V6Q==
X-Gm-Message-State: AOJu0YzzxSXOHj1aSJ6XYENkebvrF4EEvGAcWOHr9qVgsA2oXQopufpc
	rcL6Gf6FYrn8midO4Xtq+eiO4/xEpDvsxXgpl88cGJ4laHm+eoWpROd4Ue/zrrzqnAgR09DzdgM
	xTdWGlGVJCuoaoFoHxHyHC5swahSk0NE=
X-Gm-Gg: AZuq6aKGa5xk3RB3kCtxpOENWzp0X8RSL7KmMkAUUrPZkpzO02uafg5dbIU15DiByIt
	Z9ZVz7ZSAGFJrw4hNNfe6ZUHNLiMZirKBvOZB7UQin42oWK9yCgOGnN+FBTzt0rfU50A9c090Hh
	QXkJL5l9GbP+4DW+gUme0S9kCzbDUCHeJyB90RpYKXOJKaz2oBfORArHz1050AIH57oXxQaZ3Ip
	vr5PBRZML5PucnOoptFpzN9ltQr+bNAZn/w0x7W17i6gqNQ7pGugCG3mZT4H5ICB0MWJRlJRIVz
	R1Bl
X-Received: by 2002:a05:651c:1545:b0:372:628b:5cb4 with SMTP id
 38308e7fff4ca-38703270c01mr5333651fa.45.1770798518314; Wed, 11 Feb 2026
 00:28:38 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <3eb1cea5fb870e01b86e964caef5ceb9b2a8ed75.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <3eb1cea5fb870e01b86e964caef5ceb9b2a8ed75.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 11 Feb 2026 10:28:25 +0200
X-Gm-Features: AZwV_QjfORdiQXQuveEv0skT_N_toFlsGm-8olRbDuLsRhGAxkr25F6n81Gezvg
Message-ID: <CAGeoDV-330_HnGCUH-qgVEM-3_=LL_iwnMgOvzRTgJisoi78vw@mail.gmail.com>
Subject: Re: [RFC PATCH 02/19] arm/gicv4-its: Add GICv4 ITS command definitions
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Add definitions for GICv4 specific ITS commands.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/include/asm/gic_v4_its.h | 41 +++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>  create mode 100644 xen/arch/arm/include/asm/gic_v4_its.h
>
> diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include=
/asm/gic_v4_its.h
> new file mode 100644
> index 0000000000..f48eae60ad
> --- /dev/null
> +++ b/xen/arch/arm/include/asm/gic_v4_its.h
> @@ -0,0 +1,41 @@
> +/*
> + * ARM GICv4 ITS support
> + *
> + * Penny Zheng <penny.zheng@arm.com>
> + * Copyright (c) 2023 ARM Ltd.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; under version 2 of the License.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#ifndef __ASM_ARM_GICV4_ITS_H__
> +#define __ASM_ARM_GICV4_ITS_H__
> +
> +#define GITS_CMD_VMOVI                   0x21
> +#define GITS_CMD_VMOVP                   0x22
> +#define GITS_CMD_VSGI                    0x23

nit: This looks unrelated to the changes in this series
      no vSGI handling in this series

Best regards,
Mykola


> +#define GITS_CMD_VSYNC                   0x25
> +#define GITS_CMD_VMAPP                   0x29
> +#define GITS_CMD_VMAPTI                  0x2a
> +#define GITS_CMD_VINVALL                 0x2d
> +#define GITS_CMD_INVDB                   0x2e
> +
> +#endif
> +
> +/*
> + * Local variables:
> + * mode: C
> + * c-file-style: "BSD"
> + * c-basic-offset: 4
> + * indent-tabs-mode: nil
> + * End:
> + */
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 08:32:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 08:32:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227071.1533399 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5dj-0005tQ-6C; Wed, 11 Feb 2026 08:32:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227071.1533399; Wed, 11 Feb 2026 08: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 1vq5dj-0005tJ-33; Wed, 11 Feb 2026 08:32:03 +0000
Received: by outflank-mailman (input) for mailman id 1227071;
 Wed, 11 Feb 2026 08:32: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=Uigq=AP=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vq5dh-0005tD-Cr
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 08:32:01 +0000
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com
 [2a00:1450:4864:20::130])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 21ff8645-0724-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 09:31:59 +0100 (CET)
Received: by mail-lf1-x130.google.com with SMTP id
 2adb3069b0e04-59de77e2e30so6858073e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 00:31:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 21ff8645-0724-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770798719; cv=none;
        d=google.com; s=arc-20240605;
        b=X2/aC4lHH5Do69NUHJlabSOOs25+gbzMKae3B9M1ERwHPpTwXB2k1N9g74eNQXo9ll
         biMoa/ET5e/Isbp2StJ5BLC2lY2TOZKHPTXvaczpZQzYncUsgRWdzVT5CDs2eGD67WyG
         t9g1MsEShdlzL12EfIJUKLfG5cNcxE9eduTH4vbuvTlL+5LltyXaKGd3zvywyiOpj4t6
         pLy39DSWTBXlMS+AFPqXEdy8XNmfUWELdZ68Wu6BeyF8us6kAZbWhIErMlX7804m39PO
         bQ5OM4dDszIGTJ5DdDxF/4dFOlAoObtXE/Ueoa5nAcv0rX3ph7fwA/raRzu7Pl7N0BS5
         FYTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=gziD7I6zNZ1668QO63Xo1tzH9/Hqg49593Cc+O40vWA=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=jyVqi1lBTgrKE1kpMniehQUJugI9gZ2RNZExrIBRHouf4JmaXuVdgofF46tVNk95oy
         HlJ/cLGjBmWNMQ85mTrpZ/SPdLftmBV1+MSP/Y0gCVo4u+qiZSxT+ip/FiqOifFcC2eY
         /6uhPFSXwqYk5vkr1RTjQDPsKV5km2fFe7N9aS2vHc07ifrSp4/dXzQkKQYceK+jT7sg
         GRIoMEYpDB3FkjUhfJjCRb+jcEWqfnVo6C5qzRl8xZqwMKJu2e1wcX0ItOUBbnew+U3I
         +OI0ti8Pript4f1Efny5PyMlJJmmV04uNyvc9Y17kmunMQpoDqr3uLWnQ8QAKWFpLZPF
         tmhw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770798719; x=1771403519; 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=gziD7I6zNZ1668QO63Xo1tzH9/Hqg49593Cc+O40vWA=;
        b=E9t7cm2prWrmTqS0RP+dDKNtDKUnUoW7PkL2spgcQ0tfywxzRN+B9eobPhkQadTAOH
         VIdCPztOZKNHkpDNlGVf7JHVmeaBVbAQCjfkIRtSGRovNiI6CJQTVitpYJ0MPI2K1IKb
         NzZm/IuKILGL5t5jmYWwC4PLmLeeUp/u//t8EAPDS5nbG3pAnjoNtSWp4otw+sd709zU
         yYicGYB4//0zGkPZL/AWKmjslgo+1aVH/ug47qljGz+cdg36UiF1MR1kH+QA/1FpCO4+
         KEmHiqT6uo/aqdNsGNxrm4ntzQBTyr+FGuhz0ro+RNuWSD+ghrgBozY6g6NBi3mpxzL1
         CDZw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770798719; x=1771403519;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=gziD7I6zNZ1668QO63Xo1tzH9/Hqg49593Cc+O40vWA=;
        b=GszZTZc9hgvgTP+q5hMCC4fxt1Hugjv8mjX5EMrRFs/AWit3HdK4WQ87XPrGZQkvly
         S6om6skcjapE3D5He6jCZntVtVP7BsewuBNEjzX55drgKw4TkbOWkrklgXIVaEtck6HY
         movovhr5Tz5gIURGMT0GxnWztR+96eL0zDw2wGaUK0hOYUdWL2FKio/gjN5MYAS5ZhSo
         h0iiAugeWllD7nPWHBN7CSN3SlHeDuzBpq+Wei7vzJ04X1skQaHlmaQE0X3sJij2eCl4
         /klUDhocrOuesGk7gcubxMfnUgtTGWV4MR4eY6wOwmL7QVTn+YOTEK7oPumBIm9ST2ce
         jVFg==
X-Gm-Message-State: AOJu0YxTWRT0vxrW8iGcpfYYadJTy1svUf4ZWUZMwdoIAZRIgM2z6sU/
	bfovlnFpaHA/+EIx+T01KCfOblaF3uxJey3lc0xm7kW4Z0+qf9Bk8j9A9Uc5lbkaJOPVWAcTg5T
	ZsyZXLZtiOC6tpdG/nTuNEi2aIftb6W8=
X-Gm-Gg: AZuq6aIgTP85tu9GW5Vam4xkL3eCbq1D89DKsFXl5mgQeKu/4+K9rReiWVzFUHc8/gq
	SvsNAp48PDl2nKgb2/zm5TsNeFqyWeaDFklBduQShXXopUSOkS+Mw8aXTdrWJR6gBMwB2g0MN9d
	NR374jaWtNI++eROpVEzdBg2gUqJFyPbAfkJvPAu7ZLI3iexEWItOIfbbHxeP4xITvguxqbFbLT
	SdeEyAftgRE8Eh3PK0Q1JrkzuMPLvwFQaKFR18KOywBSU7vZz2dG0BemdxD8jgWvIloRna3K6wi
	77wQ
X-Received: by 2002:a05:6512:39d3:b0:59d:d7d5:9026 with SMTP id
 2adb3069b0e04-59e5e23eae2mr436583e87.49.1770798718774; Wed, 11 Feb 2026
 00:31:58 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <a821c49c7ba01f777546b0f7ab161d969a653b8b.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <a821c49c7ba01f777546b0f7ab161d969a653b8b.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 11 Feb 2026 10:31:46 +0200
X-Gm-Features: AZwV_QjQu-ZwcX5v6NVPUuzSfVeGWjjym7tpXb48z3RX2grXHMh_D-uU27J7Ojs
Message-ID: <CAGeoDV8mUfRt3roKeWp3A=NugMszD_3wjp=jai-fuc+kN+r3RA@mail.gmail.com>
Subject: Re: [RFC PATCH 06/19] arm/gicv4-its: Add VLPI map/unmap operations
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> For VLPI to be injected into a guest, it needs to be mapped or moved to
> a corresponding VPE first. Add a struct to handle the info about the
> VLPI mapping and a flag indicating whether the IRQ is tied to a HW one.
>
> Implement mapping/unmapping of VLPIs to VPEs, also handle moving. Tie
> them to emulated MAPTI/MOVI/DISCARD commands.
>
> Add GIC_IRQ_GUEST_FORWARDED IRQ status flag to keep track of which LPIs
> are mapped to virtual ones.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v3-its.c             |  14 ++
>  xen/arch/arm/gic-v4-its.c             | 292 ++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/gic_v3_its.h |  20 ++
>  xen/arch/arm/include/asm/gic_v4_its.h |  20 ++
>  xen/arch/arm/include/asm/vgic.h       |   5 +
>  xen/arch/arm/vgic-v3-its.c            |  42 +++-
>  6 files changed, 387 insertions(+), 6 deletions(-)
>  create mode 100644 xen/arch/arm/gic-v4-its.c
>
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index 25c07eb861..25889445f5 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -315,6 +315,20 @@ int its_send_cmd_inv(struct host_its *its,
>      return its_send_command(its, cmd);
>  }
>
> +int its_send_cmd_discard(struct host_its *its, struct its_device *dev,
> +                         uint32_t eventid)
> +{
> +    uint64_t cmd[4];
> +    uint32_t deviceid =3D dev->host_devid;
> +
> +    cmd[0] =3D GITS_CMD_DISCARD | ((uint64_t)deviceid << 32);
> +    cmd[1] =3D (uint64_t)eventid;
> +    cmd[2] =3D 0x00;
> +    cmd[3] =3D 0x00;
> +
> +    return its_send_command(its, cmd);
> +}
> +
>  /* Set up the (1:1) collection mapping for the given host CPU. */
>  int gicv3_its_setup_collection(unsigned int cpu)
>  {
> diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
> new file mode 100644
> index 0000000000..9bbd0d96b7
> --- /dev/null
> +++ b/xen/arch/arm/gic-v4-its.c
> @@ -0,0 +1,292 @@
> +/*
> + * xen/arch/arm/gic-v4-its.c
> + *
> + * ARM Generic Interrupt Controller support v4 version
> + * based on xen/arch/arm/gic-v3-its.c and kernel GICv4 driver
> + *
> + * Copyright (C) 2023 - ARM Ltd
> + * Penny Zheng <penny.zheng@arm.com>, ARM Ltd ported to Xen
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + */
> +
> +#include <xen/errno.h>
> +#include <xen/sched.h>
> +#include <xen/spinlock.h>
> +#include <asm/gic_v3_defs.h>
> +#include <asm/gic_v3_its.h>
> +#include <asm/gic_v4_its.h>
> +#include <asm/vgic.h>
> +
> +
> +static int its_send_cmd_vsync(struct host_its *its, uint16_t vpeid)
> +{
> +    uint64_t cmd[4];
> +
> +    cmd[0] =3D GITS_CMD_VSYNC;
> +    cmd[1] =3D (uint64_t)vpeid << 32;
> +    cmd[2] =3D 0x00;
> +    cmd[3] =3D 0x00;
> +
> +    return its_send_command(its, cmd);
> +}
> +
> +static int its_send_cmd_vmapti(struct host_its *its, struct its_device *=
dev,
> +                               uint32_t eventid)
> +{
> +    uint64_t cmd[4];
> +    uint32_t deviceid =3D dev->host_devid;
> +    struct its_vlpi_map *map =3D &dev->event_map.vlpi_maps[eventid];
> +    uint16_t vpeid =3D map->vm->vpes[map->vpe_idx]->vpe_id;
> +    uint32_t vintid =3D map->vintid;
> +    uint32_t db_pintid;
> +
> +    if ( map->db_enabled )
> +        db_pintid =3D map->vm->vpes[map->vpe_idx]->vpe_db_lpi;
> +    else
> +        db_pintid =3D INVALID_LPI;

If we want to disable the doorbell, the VMAPTI encoding should use
Dbell_pINTID =3D 1023.

Arm IHI 0069H.b, section 5.3.20 VMAPTI states:
- If Dbell_pINTID is 1023, then no physical interrupt is generated.
- It is an error if Dbell_pINTID is not a valid doorbell INTID, where
a valid INTID is either:
  * 1023, or
  * within the supported range for LPIs.

So using 1023 is the architected way to represent =E2=80=9Cno doorbell=E2=
=80=9D.

> +
> +    cmd[0] =3D GITS_CMD_VMAPTI | ((uint64_t)deviceid << 32);
> +    cmd[1] =3D eventid | ((uint64_t)vpeid << 32);
> +    cmd[2] =3D vintid | ((uint64_t)db_pintid << 32);
> +    cmd[3] =3D 0x00;
> +
> +    return its_send_command(its, cmd);
> +}
> +
> +static bool pirq_is_forwarded_to_vcpu(struct pending_irq *pirq)
> +{
> +    ASSERT(pirq);
> +    return test_bit(GIC_IRQ_GUEST_FORWARDED, &pirq->status);
> +}
> +
> +bool event_is_forwarded_to_vcpu(struct its_device *dev, uint32_t eventid=
)
> +{
> +    struct pending_irq *pirq;
> +
> +    /* No vlpi maps at all ? */
> +    if ( !dev->event_map.vlpi_maps)
> +        return false;
> +
> +    pirq =3D dev->event_map.vlpi_maps[eventid].pirq;
> +    return pirq_is_forwarded_to_vcpu(pirq);
> +}
> +
> +static int its_send_cmd_vmovi(struct host_its *its, struct its_vlpi_map =
*map)
> +{
> +    uint64_t cmd[4];
> +    struct its_device *dev =3D map->dev;
> +    uint32_t eventid =3D map->eventid;
> +    uint32_t deviceid =3D dev->host_devid;
> +    uint16_t vpeid =3D map->vm->vpes[map->vpe_idx]->vpe_id;
> +    uint32_t db_pintid;
> +
> +    if ( map->db_enabled )
> +        db_pintid =3D map->vm->vpes[map->vpe_idx]->vpe_db_lpi;
> +    else
> +        db_pintid =3D INVALID_IRQ;

Same point as above: if the intention is =E2=80=9Cno doorbell=E2=80=9D, the=
 architected
encoding is Dbell_pINTID =3D 1023.

Per Arm IHI 0069H.b, section 5.3.21 VMOVI, an error is generated only when
D =3D=3D 1 and Dbell_pINTID is not a valid doorbell INTID (valid values are
1023 or an INTID within the supported LPI range). When D =3D=3D 0, Dbell_pI=
NTID
is ignored.

> +
> +    cmd[0] =3D GITS_CMD_VMOVI | ((uint64_t)deviceid << 32);
> +    cmd[1] =3D eventid | ((uint64_t)vpeid << 32);
> +    cmd[2] =3D (map->db_enabled ? 1UL : 0UL) | ((uint64_t)db_pintid << 3=
2);
> +    cmd[3] =3D 0x00;
> +
> +    return its_send_command(its, cmd);
> +}
> +
> +static int gicv4_its_vlpi_map(struct its_vlpi_map *map)
> +{
> +    struct its_device *dev;
> +    struct host_its *its;
> +    uint32_t eventid;
> +    int ret;
> +
> +    if ( !map )
> +        return -EINVAL;
> +    dev =3D map->dev;
> +    its =3D map->dev->hw_its;
> +    eventid =3D map->eventid;
> +
> +    spin_lock(&dev->event_map.vlpi_lock);
> +
> +    if ( !dev->event_map.vm )
> +    {
> +        struct its_vlpi_map *maps;
> +
> +        maps =3D xzalloc_array(struct its_vlpi_map, dev->event_map.nr_lp=
is);
> +        if ( !maps )
> +        {
> +            ret =3D -ENOMEM;
> +            goto err;

nit: goto out;

> +        }
> +
> +        dev->event_map.vm =3D map->vm;
> +        dev->event_map.vlpi_maps =3D maps;
> +    }
> +    else if ( dev->event_map.vm !=3D map->vm )
> +    {
> +        ret =3D -EINVAL;
> +        goto err;
> +    }
> +
> +    /* Get our private copy of the mapping information */
> +    dev->event_map.vlpi_maps[eventid] =3D *map;
> +
> +    if ( pirq_is_forwarded_to_vcpu(map->pirq) )
> +    {
> +        struct its_vlpi_map *old =3D &dev->event_map.vlpi_maps[eventid];
> +        uint32_t old_vpeid =3D old->vm->vpes[old->vpe_idx]->vpe_id;

Nit/bug?: old_vpeid is read after vlpi_maps[eventid] has been overwritten
with *map, so it=E2=80=99s not the old mapping anymore.
Should old_vpeid be captured before the assignment?

> +
> +        /* Already mapped, move it around */
> +        ret =3D its_send_cmd_vmovi(dev->hw_its, map);
> +        if ( ret )
> +            goto err;
> +
> +        /*
> +         * ARM spec says that If, after using VMOVI to move an interrupt=
 from
> +         * vPE A to vPE B, software moves the same interrupt again, a VS=
YNC
> +         * command must be issued to vPE A between the moves to ensure c=
orrect
> +         * behavior.
> +         * So each time we issue VMOVI, we VSYNC the old VPE for good me=
asure.
> +         */
> +        ret =3D its_send_cmd_vsync(dev->hw_its, old_vpeid);
> +    }
> +    else
> +    {
> +        /* Drop the original physical mapping firstly */
> +        ret =3D its_send_cmd_discard(its, dev, eventid);
> +        if ( ret )
> +            goto err;
> +
> +        /* Then install the virtual one */
> +        ret =3D its_send_cmd_vmapti(its, dev, eventid);
> +        if ( ret )
> +            goto err;
> +
> +        /* Increment the number of VLPIs */
> +        dev->event_map.nr_vlpis++;
> +    }
> +
> +    goto out;
> +
> + err:
> +    xfree(dev->event_map.vlpi_maps);

1. Bug?: unconditionally frees dev->event_map.vlpi_maps, but it=E2=80=99s o=
nly
newly allocated on the !dev->event_map.vm path. If called with an existing
vm/maps, this can free live state and cause UAF.
2. Prefer XFREE(dev->event_map.vlpi_maps); it frees and NULLs the pointer.

> + out:
> +    spin_unlock(&dev->event_map.vlpi_lock);
> +    return ret;
> +}

nit: add new line between functions

> +int gicv4_its_vlpi_unmap(struct pending_irq *pirq)
> +{
> +    struct its_vlpi_map *map =3D pirq->vlpi_map;
> +    struct its_device *dev =3D map->dev;
> +    int ret;
> +    uint32_t host_lpi;
> +
> +    spin_lock(&dev->event_map.vlpi_lock);
> +
> +    if ( !dev->event_map.vm || !pirq_is_tied_to_hw(pirq) )
> +    {
> +        ret =3D -EINVAL;
> +        goto out;
> +    }
> +
> +    /* Drop the virtual mapping */
> +    ret =3D its_send_cmd_discard(dev->hw_its, dev, map->eventid);
> +    if ( ret )
> +        goto out;
> +
> +    /* Restore the physical one */
> +    clear_bit(GIC_IRQ_GUEST_FORWARDED, &pirq->status);
> +    host_lpi =3D dev->host_lpi_blocks[map->eventid / LPI_BLOCK] +
> +               (map->eventid % LPI_BLOCK);
> +    /* Map every host LPI to host CPU 0 */
> +    ret =3D its_send_cmd_mapti(dev->hw_its, dev->host_devid, map->eventi=
d,
> +                             host_lpi, 0);
> +    if ( ret )
> +        goto out;
> +
> +    lpi_write_config(lpi_data.lpi_property, host_lpi, 0xff, LPI_PROP_ENA=
BLED);

Are we intentionally resetting host LPI priority here (same as allocation p=
ath)?
If yes, worth documenting.

> +
> +    ret =3D its_inv_lpi(dev->hw_its, dev, map->eventid, 0);
> +    if ( ret )
> +        goto out;
> +
> +    xfree(map);
> +    /*
> +     * Drop the refcount and make the device available again if
> +     * this was the last VLPI.
> +     */
> +    if ( !--dev->event_map.nr_vlpis )
> +    {
> +        dev->event_map.vm =3D NULL;
> +        xfree(dev->event_map.vlpi_maps);
> +    }
> +
> +out:
> +    spin_unlock(&dev->event_map.vlpi_lock);
> +    return ret;
> +}
> +
> +int gicv4_assign_guest_event(struct domain *d, paddr_t vdoorbell_address=
,
> +                             uint32_t vdevid, uint32_t eventid,
> +                             struct pending_irq *pirq)
> +
> +{
> +    int ret =3D ENODEV;
> +    struct its_vm *vm =3D d->arch.vgic.its_vm;
> +    struct its_vlpi_map *map;
> +    struct its_device *dev;
> +
> +    spin_lock(&d->arch.vgic.its_devices_lock);
> +    dev =3D get_its_device(d, vdoorbell_address, vdevid);
> +    if ( dev && eventid < dev->eventids )
> +    {
> +        /* Prepare the vlpi mapping info */
> +        map =3D xzalloc(struct its_vlpi_map);
> +        if ( !map )
> +            goto out;
> +        map->vm =3D vm;
> +        map->vintid =3D pirq->irq;
> +        map->db_enabled =3D true;
> +        map->vpe_idx =3D pirq->lpi_vcpu_id;
> +        map->properties =3D pirq->lpi_priority |
> +                          (test_bit(GIC_IRQ_GUEST_ENABLED, &pirq->status=
) ?
> +                          LPI_PROP_ENABLED : 0);
> +        map->pirq =3D pirq;
> +        map->dev =3D dev;
> +        map->eventid =3D eventid;
> +
> +        ret =3D gicv4_its_vlpi_map(map);
> +        if ( ret )
> +        {
> +            xfree(map);
> +            goto out;
> +        }
> +
> +        pirq->vlpi_map =3D map;
> +    }
> +
> + out:
> +    spin_unlock(&d->arch.vgic.its_devices_lock);
> +    return ret;
> +}
> +
> +int gicv4_its_vlpi_move(struct pending_irq *pirq, struct vcpu *vcpu)
> +{
> +    struct its_vlpi_map *map =3D pirq->vlpi_map;
> +    struct its_device *dev =3D map->dev;

map is dereferenced before it=E2=80=99s validated

> +
> +    if ( !dev->event_map.vm || !map )
> +        return -EINVAL;
> +
> +    map->vpe_idx =3D vcpu->vcpu_id;
> +    return gicv4_its_vlpi_map(map);
> +}
> diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include=
/asm/gic_v3_its.h
> index 9f0ea9ccb1..75c91c0426 100644
> --- a/xen/arch/arm/include/asm/gic_v3_its.h
> +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> @@ -116,6 +116,9 @@
>  /* We allocate LPIs on the hosts in chunks of 32 to reduce handling over=
head. */
>  #define LPI_BLOCK                       32U
>
> +#ifdef CONFIG_GICV4
> +#include <asm/gic_v4_its.h>
> +#endif
>  /*
>   * Describes a device which is using the ITS and is used by a guest.
>   * Since device IDs are per ITS (in contrast to vLPIs, which are per
> @@ -135,6 +138,9 @@ struct its_device {
>      uint32_t eventids;                  /* Number of event IDs (MSIs) */
>      uint32_t *host_lpi_blocks;          /* Which LPIs are used on the ho=
st */
>      struct pending_irq *pend_irqs;      /* One struct per event */
> +#ifdef CONFIG_GICV4
> +    struct event_vlpi_map event_map;
> +#endif
>  };
>
>  /* data structure for each hardware ITS */
> @@ -184,6 +190,8 @@ extern struct __lpi_data lpi_data;
>
>  extern struct list_head host_its_list;
>
> +int its_send_cmd_discard(struct host_its *its, struct its_device *dev,
> +                         uint32_t eventid);
>  int its_send_cmd_inv(struct host_its *its, uint32_t deviceid, uint32_t e=
ventid);
>  int its_send_cmd_clear(struct host_its *its, uint32_t deviceid, uint32_t=
 eventid);
>  int its_send_cmd_mapti(struct host_its *its, uint32_t deviceid,
> @@ -254,6 +262,18 @@ int its_send_command(struct host_its *hw_its, const =
void *its_cmd);
>
>  struct its_device *get_its_device(struct domain *d, paddr_t vdoorbell,
>                                    uint32_t vdevid);
> +/* GICv4 functions */
> +int gicv4_assign_guest_event(struct domain *d, paddr_t vdoorbell_address=
,
> +                             uint32_t vdevid, uint32_t eventid,
> +                             struct pending_irq *pirq);
> +int gicv4_its_vlpi_move(struct pending_irq *pirq, struct vcpu *vcpu);
> +#ifndef CONFIG_GICV4
> +#define event_is_forwarded_to_vcpu(dev, eventid) ((void)dev, (void)event=
id, false)
> +#else
> +bool event_is_forwarded_to_vcpu(struct its_device *dev, uint32_t eventid=
);
> +void its_vpe_mask_db(struct its_vpe *vpe);
> +#endif
> +int gicv4_its_vlpi_unmap(struct pending_irq *pirq);
>
>  /* ITS quirks handling. */
>  uint64_t gicv3_its_get_cacheability(void);
> diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include=
/asm/gic_v4_its.h
> index f48eae60ad..722247ec60 100644
> --- a/xen/arch/arm/include/asm/gic_v4_its.h
> +++ b/xen/arch/arm/include/asm/gic_v4_its.h
> @@ -29,6 +29,26 @@
>  #define GITS_CMD_VINVALL                 0x2d
>  #define GITS_CMD_INVDB                   0x2e
>
> +/* Describes the mapping of a VLPI */
> +struct its_vlpi_map {
> +    struct its_vm       *vm;
> +    unsigned int        vpe_idx;    /* Index of the VPE */
> +    uint32_t            vintid;     /* Virtual LPI number */
> +    bool                db_enabled; /* Is the VPE doorbell to be generat=
ed? */
> +    uint8_t             properties;
> +    struct pending_irq  *pirq;
> +    struct its_device   *dev;
> +    uint32_t            eventid;
> +};
> +
> +struct event_vlpi_map {
> +    unsigned int            nr_lpis;
> +    spinlock_t              vlpi_lock;
> +    struct its_vm           *vm;
> +    struct its_vlpi_map     *vlpi_maps;
> +    unsigned int            nr_vlpis;
> +};
> +
>  #endif
>
>  /*
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 77323b2584..360f8a968e 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -70,6 +70,7 @@ struct pending_irq
>       * LPI with the same number in an LR must be from an older LPI, whic=
h
>       * has been unmapped before.
>       *
> +     * GIC_IRQ_GUEST_FORWARDED: the IRQ is forwarded to a VCPU(GICv4 onl=
y)
>       */
>  #define GIC_IRQ_GUEST_QUEUED   0
>  #define GIC_IRQ_GUEST_ACTIVE   1
> @@ -77,6 +78,7 @@ struct pending_irq
>  #define GIC_IRQ_GUEST_ENABLED  3
>  #define GIC_IRQ_GUEST_MIGRATING   4
>  #define GIC_IRQ_GUEST_PRISTINE_LPI  5
> +#define GIC_IRQ_GUEST_FORWARDED     6
>      unsigned long status;
>      struct irq_desc *desc; /* only set if the irq corresponds to a physi=
cal irq */
>      unsigned int irq;
> @@ -95,6 +97,9 @@ struct pending_irq
>       * vgic lock is not going to be enough. */
>      struct list_head lr_queue;
>      bool hw;                    /* Tied to HW IRQ */
> +#ifdef CONFIG_GICV4
> +    struct its_vlpi_map *vlpi_map;
> +#endif
>  };
>
>  #define NR_INTERRUPT_PER_RANK   32
> diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
> index 576e7fd4b0..94f7dd7d90 100644
> --- a/xen/arch/arm/vgic-v3-its.c
> +++ b/xen/arch/arm/vgic-v3-its.c
> @@ -589,6 +589,14 @@ static int its_discard_event(struct virt_its *its,
>      if ( vlpi =3D=3D INVALID_LPI )
>          return -ENOENT;
>
> +    p =3D gicv3_its_get_event_pending_irq(its->d, its->doorbell_address,
> +                                        vdevid, vevid);
> +    if ( unlikely(!p) )
> +        return -EINVAL;
> +
> +    if ( pirq_is_tied_to_hw(p) )
> +        if ( gicv4_its_vlpi_unmap(p) )
> +            return -EINVAL;
>      /*
>       * TODO: This relies on the VCPU being correct in the ITS tables.
>       * This can be fixed by either using a per-IRQ lock or by using
> @@ -751,6 +759,27 @@ static int its_handle_mapti(struct virt_its *its, ui=
nt64_t *cmdptr)
>
>      vgic_init_pending_irq(pirq, intid, gic_is_gicv4());
>
> +    pirq->lpi_vcpu_id =3D vcpu->vcpu_id;

pirq->lpi_vcpu_id =3D vcpu->vcpu_id; is assigned twice (here and again belo=
w).
Can we drop the earlier assignment and keep only the one after the
mapping/setup, unless something in between relies on it?

> +
> +    if ( pirq_is_tied_to_hw(pirq) )
> +        /*
> +         * If on GICv4, we could let the VLPI being directly injected
> +         * to the guest. To achieve that, the VLPI must be mapped using
> +         * the VMAPTI command.
> +         */
> +        if ( gicv4_assign_guest_event(its->d, its->doorbell_address, dev=
id,
> +                                      eventid, pirq) )
> +            goto out_remove_mapping;

1. looks like we should jump to "out_remove_host_entry" here, to roll back
the host mapping created by gicv3_assign_guest_event().
2. missing GICv4 rollback on error path: need gicv4_its_vlpi_unmap() before
removing host mapping


Best regards,
Mykola


> +
> +    if ( pirq_is_tied_to_hw(pirq) )
> +        set_bit(GIC_IRQ_GUEST_FORWARDED, &pirq->status);
> +    else
> +        /*
> +         * Mark this LPI as new, so any older (now unmapped) LPI in any =
LR
> +         * can be easily recognised as such.
> +         */
> +        set_bit(GIC_IRQ_GUEST_PRISTINE_LPI, &pirq->status);
> +
>      /*
>       * Now read the guest's property table to initialize our cached stat=
e.
>       * We don't need the VGIC VCPU lock here, because the pending_irq is=
n't
> @@ -761,12 +790,6 @@ static int its_handle_mapti(struct virt_its *its, ui=
nt64_t *cmdptr)
>          goto out_remove_host_entry;
>
>      pirq->lpi_vcpu_id =3D vcpu->vcpu_id;
> -    /*
> -     * Mark this LPI as new, so any older (now unmapped) LPI in any LR
> -     * can be easily recognised as such.
> -     */
> -    set_bit(GIC_IRQ_GUEST_PRISTINE_LPI, &pirq->status);
> -
>      /*
>       * Now insert the pending_irq into the domain's LPI tree, so that
>       * it becomes live.
> @@ -824,6 +847,13 @@ static int its_handle_movi(struct virt_its *its, uin=
t64_t *cmdptr)
>      if ( unlikely(!p) )
>          goto out_unlock;
>
> +    if ( pirq_is_tied_to_hw(p) )
> +    {
> +        ret =3D gicv4_its_vlpi_move(p, nvcpu);
> +        if ( ret )
> +            goto out_unlock;
> +    }
> +
>      /*
>       * TODO: This relies on the VCPU being correct in the ITS tables.
>       * This can be fixed by either using a per-IRQ lock or by using
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 08:39:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 08:39:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227080.1533409 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5l6-0006ih-2Y; Wed, 11 Feb 2026 08:39:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227080.1533409; Wed, 11 Feb 2026 08: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 1vq5l5-0006ia-Ue; Wed, 11 Feb 2026 08:39:39 +0000
Received: by outflank-mailman (input) for mailman id 1227080;
 Wed, 11 Feb 2026 08: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=wgMA=AP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vq5l5-0006iU-Co
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 08:39:39 +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 329b38bb-0725-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 09:39:37 +0100 (CET)
Received: by mail-oa1-x34.google.com with SMTP id
 586e51a60fabf-4043b909ed4so4156135fac.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 00:39:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 329b38bb-0725-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770799176; cv=none;
        d=google.com; s=arc-20240605;
        b=IiMYz9TkNc4nvzon3tTrxIeFomcOSYajOFhcefZYWI03cihfVHzrNROWS8rXFXQ5JX
         X0ynFez7DYK10j3nFqVcVq9WFb/9u2X20IJA2ctHz4mLZLoH4K4Qa7EsUe1RwmAvNN3t
         5SKyHdp2omW+z4LDMgmsFSOWMWn2lD1wOwfLfDJ81I36TvVhIvLsNM0sOG1VhsqwVstw
         K9yRC6sZpMQ7NnzeIq6gcj9wqCGyuNClHKrf/EAAnf/J5ziVZfkD+mvznGhsoCdajQV3
         yB0ZqMEwOoTX6ulQso1kMRyefa4o/wXVLq7oZ2sKM05paKltwesBP0it5ZX4lLNY2N5O
         z7HA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=hw3pn4QmkM7nGCKINq+2aIC0VZdDLM5h7WXdH9RJr8g=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=NPcg/gAZd0GAhiDKt9bRYVzZ/NYBN0bKfZs75zWYR1VAd+ugCfrFL4Xf2hxXoP1dZX
         Kq4h+vHGr7c3CKIgClC1/4x3ejLisWABReo+xFPt5mgU2ygadaRY6z8gtlp5jw+D1f+W
         EvrdYx5kne83wqty4K40IyBbpWlk5pHbWbltoFzzO7EMA2Kuloqf686b1H74x5MCg4kP
         yNi79GA/zDmw5Ld/gwxDzqXdIn8i9dsXpknHJys7WTyVFo0qZFsKr3kMaWpeSdIcA83h
         0nplRHJBmkDNOzte9TbeVRmM8kX3pLUaVYPxvmQMsjHXhiSBAjMw8MyDXGCYBDK40oYF
         pemw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770799176; x=1771403976; 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=hw3pn4QmkM7nGCKINq+2aIC0VZdDLM5h7WXdH9RJr8g=;
        b=CG11UcWFaQE2cj/3pz/Y9J9kXoda7NRSCg0PfxSECfMLO6e6qmyWNGZ8DjFVl5oZ4m
         gi4GJ+5znFgybEbWg70viaZKo4RRHSC/n21N9bRYEa1cH0G7EaU8aJoE5ezf7e/kCk1n
         3Ta5kglEOobsFmi6qbJymbGQB97G/4MoQuZqw7rmzxLk7obHdP5ARyZiCJD+FzNbno8h
         8eb2CdR14HHOdjDRyYhR2Ctu5xWqBueC8ULSpA2Vj2HEu7ITS4FMzV6JeLtYovvBZIJc
         mdzTIv7+amqhg12KNiIQq+LPPBga794Dk3ab8ZYfVEIJimhktCPmh5V6+ymFzv2P2NkS
         PBog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770799176; x=1771403976;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=hw3pn4QmkM7nGCKINq+2aIC0VZdDLM5h7WXdH9RJr8g=;
        b=vJy0hkTCMnILZb5k1pbbRir7y4mUSefPOZXaTk6VNUamPWslM4B9BKOEdb+fUw7YKZ
         /wDvGrVkgPgr7UHhIelVfZSiS3XuI4y87TmDlDTGPFbga49Oujc449UghV0J9tAEZiTb
         Iyaoe/faGWPrmkEOp6ey0oYpNu5rEtK2sybb67WaQhGt/jaedLg7luv8YHETcpXV2HOY
         xiqefjEq5jt/gqhfDrGMsTUKuczjPxq4VNnbftKquYj2hxKunlOLkimXDAmOo3l6MDdX
         w76DxzKTxy3/iprihqECa4oJ3lmjDWUzFKbRuYM3KsQhIfjgGVneEf1Lu4dEe5dcghJ9
         nUrQ==
X-Gm-Message-State: AOJu0YzX3rEgML/19D00FT1VKq4FvJVofK2yWe2gnzaEpjEIgLMFKVC/
	hTnkBaqydXJIacKqorMD+4TJFRbQZaohoK1fq/lwh76LXzoOUc83Jv6MsxTSfDw/yOTw6ZrGSpW
	47zTW2XEH4jf1yu6RksUzPfBAWejRgilYFqUJvAFXMw==
X-Gm-Gg: AZuq6aIY9MAycuVjVkOkXq1i/kypvg0XUcl+1/e0aATX1zHM6F9fzQjThzcD8ZEWZRK
	SQf7N0CHmXZm3h6quCBLJldChSRAMfstRO5sb8khzekFmrZu6+pIvEedMrs1iWM06wcxdPWXQb+
	MTpzaXkpzyeBf6Cuz7CryVot3NUQrBe3dbyn5MzI9WCWZ4yPMzn8Ta/CaVPY7Dk9Z6Ie1QbHRvd
	fyegRO98zVq0+z7LWDi/jeCIf48Lqn11eI3A3zEsNqlHlPZlaiWI6J0qievsGypzPdVxnyDO9uV
	1+D919zxhwxxVbX3PZsx+Dm8g9cdEP+NO8DmfA==
X-Received: by 2002:a05:6870:31b6:b0:3d2:c24:30fc with SMTP id
 586e51a60fabf-40eaf933529mr515132fac.48.1770799176250; Wed, 11 Feb 2026
 00:39:36 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <9466059cffcae65acb96a6c3710778f2e9ebcbbd.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <9466059cffcae65acb96a6c3710778f2e9ebcbbd.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 11 Feb 2026 09:39:23 +0100
X-Gm-Features: AZwV_Qg9FbKHeIyDVqX75kroi9gPCtoEJ5GmC8F1o1EoakBir7J_C_lcS3a5yvs
Message-ID: <CAHUa44GM7Lu_iYXyu1RCL+-Ct0f8+gZqssa=OEHH-Wg1GFgFWw@mail.gmail.com>
Subject: Re: [PATCH 09/12] xen/arm: ffa: Fix SEND2 SP support gating
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Xen only maps a VM RX/TX buffer into the SPMC when firmware supports
> FFA_RX_ACQUIRE. Without that mapping, the SPMC cannot access the VM TX
> buffer to relay FFA_MSG_SEND2 to a secure partition.
>
> Advertise FFA_MSG_SEND2 to guests only when VM-to-VM is enabled or when
> the firmware supports both FFA_MSG_SEND2 and FFA_RX_ACQUIRE, and reject
> SEND2 to a secure partition otherwise. Add comments to document the
> mapping/ownership dependency.
>
> Functional impact: SEND2 to a secure partition is reported as
> NOT_SUPPORTED when FFA_RX_ACQUIRE is absent.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c     |  8 +++++++-
>  xen/arch/arm/tee/ffa_msg.c | 11 +++++++++++
>  2 files changed, 18 insertions(+), 1 deletion(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index e9e020bb0cb3..a46c6e5e67f1 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -292,7 +292,13 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>              ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>          break;
>      case FFA_MSG_SEND2:
> -        if ( ffa_fw_supports_fid(a1) || IS_ENABLED(CONFIG_FFA_VM_TO_VM) =
)
> +        /*
> +         * Forwarding SEND2 to an SP requires the SPMC to see the VM TX =
buffer.
> +         * We only map VM RX/TX into the SPMC when RX_ACQUIRE is support=
ed.
> +         */
> +        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) ||
> +             (ffa_fw_supports_fid(FFA_MSG_SEND2) &&
> +              ffa_fw_supports_fid(FFA_RX_ACQUIRE)) )
>              ffa_set_regs_success(regs, 0, 0);
>          else
>              ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index 10856fddcbc4..928f269f6c3a 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -274,6 +274,17 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *r=
egs)
>              ret =3D FFA_RET_NOT_SUPPORTED;
>              goto out;
>          }
> +        /*
> +         * The SPMC needs access to the VM TX buffer to relay SEND2.
> +         * We only map VM RX/TX into the SPMC when RX_ACQUIRE is support=
ed.
> +         */
> +        if ( !ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
> +        {
> +            ret =3D FFA_RET_NOT_SUPPORTED;
> +            gdprintk(XENLOG_DEBUG,
> +                     "ffa: msg_send2 to SP requires RX_ACQUIRE\n");
> +            goto out;
> +        }
>
>          ret =3D ffa_simple_call(FFA_MSG_SEND2,
>                                ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0,=
 0, 0);
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 08:45:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 08:45:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227088.1533419 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5qt-0008FP-KT; Wed, 11 Feb 2026 08:45:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227088.1533419; Wed, 11 Feb 2026 08:45: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 1vq5qt-0008FI-Ha; Wed, 11 Feb 2026 08:45:39 +0000
Received: by outflank-mailman (input) for mailman id 1227088;
 Wed, 11 Feb 2026 08:45: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=wIvg=AP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vq5qs-0008FC-QQ
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 08:45:38 +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 08f20b59-0726-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 09:45:36 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-480706554beso53413865e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 00:45:36 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d482480sm131629455e9.0.2026.02.11.00.45.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 00:45:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 08f20b59-0726-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770799536; x=1771404336; 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=jRZ3bJGCiGlj1zLoCw8NzW/TaLoGKdE8ol+Ywwjo9iE=;
        b=FyzxnGjSmrbn7ch+GT+q0kVbrvLK0ee4Z20cHPMH/n0WaVPu3xAq0UqWlbhlO0UbGo
         yVLW8VsJUi0ruI4vRnHDUBtY22iGhof0ZR95bVvflxjb6BmYIHzfvst4db/eyr2S4I7k
         8RGMHxt01DutvofMOzOaLws08EEQNfVYWGQ4HjE8mUVy0gTbu6vPJYvbgHz+INT/EeJp
         BPDf8JYRIrG1YFMqtFDaeZUCdwa3xdEpRmi8CQwISwsbmt3I/PEgwWZSQZ3p6D5jedDW
         TNVC7M0SJWYcUTSXJSjhYMM/ULgPxVltdQVw4ouJhAaX/fD4VB29cQb6Uvx2/MDdiMbQ
         yMSg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770799536; x=1771404336;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=jRZ3bJGCiGlj1zLoCw8NzW/TaLoGKdE8ol+Ywwjo9iE=;
        b=c5eHiCm6T2G3ZW4KgGuw8gx8M7vyX9X/Mg+S37h3/oxaJEUoz8OCrlrvRPZen8zuhj
         0pnRkGR3FLeJRYrIUDhKH3i84FR1EMUpQ+M7zC8iVBoQeWzrUuXDJOzUHJG1IjDrU4WI
         N7CmuUnm5m95BN0nsHB4eIHYzPZlwFJS+D8GcDtOcyawZwqEl4ATgSqMs/ZoFaalRkWi
         riyEWUPXLY2byXf7wHVMiuv4inBIwp9dlCaVl0stfzDkMvRbm3K9u6euSsoC5owYBk9e
         b24CZ+xlrHFvEb4afGSHYNx9UVsnYPnEnQxNcV5V7znMM5qD/63mlqc6oslBn2JYlVC0
         MYIA==
X-Forwarded-Encrypted: i=1; AJvYcCUxsGK8DYMoyOupitbIiUYSduy2LklXXetXLtzlwuz1T7Lqse0nJTAq/aWUJj+I5VTcIR58+Bvk90s=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw+SAz72lT2bfgvVMHA/Sye6j8oNbFHLCAl0sGaTlDXIo6m2AmC
	jgJvGVnEcSAFKPUONXvJC1njTkp8FaX4GKuWkzUHJFZcIchhRM6nMVG9
X-Gm-Gg: AZuq6aIQ4S6ZszR9oob4eQCayRiG2kiGR0l9RWpSatPZSOETmJbXqJwLmbgeVrADgvO
	zaVCyRDbbDR6y2yw+kLToYBhkNvM7x/U1xSqgfNJxGEZg0bRBQih/GtmdQBlJ12Q7rTu5FrArFK
	BnUaB1u6pxHl59dU2HXd+P8qZN8EGgA4xRPf9YqMVzGMg0YiPEfXXwnB2Oc+f2GS9+5ymHxaUAu
	8n/g/u91zQxUXA+mgLRlOZssif9yCRLj/Mzz7uNrtC8SIG1V4Pt6iK2wc38S3rgECf6d3/AKXFt
	50QCn2d5RxelEF/EMJijq3ZhnV1nw92en3fW2/SIhXv47PiYsF5mGlmnjK6TVL/dapqAE0+WI1F
	O0kJiN3BOEuZCWsL2Ib3CvMwhw9BVjs4iQ4OvRcAH9kiNplOPrKbvD1lSW7Z2gts7SMpkLKJhYp
	haBosNVZkCTwapImGcvs9uF223KIQk3QHx5QLT+26SLUERXQFz9TY7vbtMxWCS/ZGDz+TpQ1lAq
	naSPogsKzx/RQ==
X-Received: by 2002:a05:600c:83c4:b0:483:a21:7744 with SMTP id 5b1f17b1804b1-4835b965805mr24659425e9.26.1770799535901;
        Wed, 11 Feb 2026 00:45:35 -0800 (PST)
Message-ID: <69653793-d8b4-4ddc-bd7b-4f3c41449789@gmail.com>
Date: Wed, 11 Feb 2026 09:45:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 02/16] xen/riscv: avoid reading hstateen0 when
 Smstateen is not implemented
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <d26b9103def3ff86524e1306c63cd84e217c8f11.1770650552.git.oleksii.kurochko@gmail.com>
 <e115459b-8f4b-4211-8259-7807765d8fec@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <e115459b-8f4b-4211-8259-7807765d8fec@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/11/26 8:22 AM, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> If the Smstateen extension is not implemented, the hstateen0 CSR is
>> considered non-existent. Any attempt to access it will raise an
>> illegal-instruction exception.
>>
>> Guard the hstateen0 dump with a runtime check for Smstateen support to
>> avoid triggering traps when dumping CSRs on systems that do not
>> implement this extension.
>>
>> Fixes: 3babc8d2e546 ("xen/riscv: dump GPRs and CSRs on unexpected traps")
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks.

>
> It is, aiui, independent of patch 1 and hence can go in right away.

Yes, it is independent.

>
>> @@ -144,7 +145,12 @@ static void dump_csrs(const char *ctx)
>>         (v & HSTATUS_SPV)  ? " SPV"  : "",
>>         (v & HSTATUS_GVA)  ? " GVA"  : "");
>>       X(hgatp, CSR_HGATP, "\n");
>> -    X(hstateen0, CSR_HSTATEEN0, "\n");
>> +
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
>> +    {
>> +        X(hstateen0, CSR_HSTATEEN0, "\n");
>> +    }
> I was going to ask for the braces to be dropped, but I notice they are
> required as long as X() isn't properly adjusted. This is why even for
> local use macros we should take a little more care when introducing
> them, so they can be used without having to pay too close attention to
> their actual implementation.

It would be better to have do {...} while(0) in the definition of X macros.

I will add do {...} while(0) to one of the next patches where I have the same
case.

I don't mind to update X() in dump_csrs() in the next patch version to:
#define X(name, csr, fmt, ...) do { \
     v = csr_read(csr); \
     printk("%-10s: %016lx" fmt, #name, v, ##__VA_ARGS__); \
while(0)

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 08:53:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 08:53:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227098.1533430 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5y5-0001Xg-BL; Wed, 11 Feb 2026 08:53:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227098.1533430; Wed, 11 Feb 2026 08:53:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq5y5-0001XZ-7F; Wed, 11 Feb 2026 08:53:05 +0000
Received: by outflank-mailman (input) for mailman id 1227098;
 Wed, 11 Feb 2026 08:53: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=wgMA=AP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vq5y4-0001XT-8i
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 08:53:04 +0000
Received: from mail-oo1-xc2a.google.com (mail-oo1-xc2a.google.com
 [2607:f8b0:4864:20::c2a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f5f0630-0727-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 09:52:57 +0100 (CET)
Received: by mail-oo1-xc2a.google.com with SMTP id
 006d021491bc7-66e35b48d11so1897479eaf.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 00:52:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f5f0630-0727-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770799976; cv=none;
        d=google.com; s=arc-20240605;
        b=U5H+S/0YCDM+FGc/JRiENDVbFQY440jNdaLozF3TcLfrUZnLa2nGzDAMeszVBB1/vb
         ZkO9T7cEriaz8BCnbovZheDY3GFGjJcOg3mviWbpnnuxtFDYAItJHYRW3ks5uZr67emI
         CuNNFFsBW7iVQMwyJpq2jecJi7HoUp5d9ihyuoHFjWj0TgtWYwvzRuXbSCgp0EqTebnp
         mkdhRTGjU8LtVoYhxNVUqguuMcFcCEHsKWzopk0psgac1aDR9XeSnwnGvcHHeVTWfowu
         egM9Qxz7Ie6S9T4G0+OEZeAkzzi4H8+oLvSluvDZPWLNrSJ6wV4Yae8cCJDIBQJL8hXn
         g6jQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=9HIsXnI/DSGjRGPwKbwR9ku+eq4Z+ilVAJsxrveI3og=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=CT30lNxITqvUMSDWDNTNNL4+SdWqUcwtS4v2dr0K9Gda7X1j+GJ2KXZevaT/GvGmcJ
         7P9FH8lQn/ZAlcQa8EgfuIhWR4nEQn4UBjoZcrIB9yRwMkrNESDysXdwColC8WbfFM+a
         kptPZaCStA/NnuJBHr4XlByX16A8450JIoijCjlDf9eMbz4VTSRgnEie2EB0G0Tp4lyy
         MdhepYex0xDjTqUQRl180XLmg8KvsP4NMmvWCwo6MhwCrA7KaDT5w3OgfSyZrgs4Mo+B
         gBqK4js2RMATmb6pL0uzrT32Jdsdb+xnRebGkOxthUhBq1+2j/xZR8rW9Q8/2yclpxAK
         E50g==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770799976; x=1771404776; 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=9HIsXnI/DSGjRGPwKbwR9ku+eq4Z+ilVAJsxrveI3og=;
        b=S1+tEJJGg7pEkTuuia2FoheuLueWoFuzJ0KA93zXyiSKCb5aLa6fsWIeEqq0HatHqB
         PnFYdn9eLGzNga88EeYzLICzzW4OeQC5uxsto/1Rzl94UwowLZzbTgO0XGgYqhFPP/ze
         gXRoASFppJA3o1a7cEq/dQuAOLsg+Frjmjot3fLJFkwZu3Bt1BSCA8urfoDRXv5s4BpC
         xaYo5Pmy1Si9vcSMKf1K64Emrx34yF8kkN8SQXwXH84qXxQPExelkt81ZtMaKeN8HvOz
         f+q3YNVktt/MQKBi27SMrOMfyXz0nZUiS2NOMVRASmg8xWgcb869XiQZTUeEBMZS4oNr
         axNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770799976; x=1771404776;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9HIsXnI/DSGjRGPwKbwR9ku+eq4Z+ilVAJsxrveI3og=;
        b=R7JULJ5qB8rftodQHXuAG2tLJ5BS6PAMXsh5F3oI+lG6UELtXqujSRDe1Q4S8p1+Jk
         IFksv5FCaunl8VKIx6J/C5JTDIUWudyoOoz5bBeawe+HDZFVHTVC2iIkw+MrT8yp0tHo
         xhgKw0L897u/BLrc4y/SlYK97Ci3DyhxWPBFeqkW00NZ+CfHZGORHwIwHNSq3DP3XpZo
         a06Alz/siurKRvtL3rKwT9AXNrzcXrN5x4MQmeKGW5AHi6YDrskIqTJEtq4HFhOvPrB+
         EW6s26en4mZ6razqEzSh1y5ZGULJcpbhLvSLYgYr8sUDczYEnC/w1/PSxKg7a/RCllkL
         ISpA==
X-Gm-Message-State: AOJu0YxzpquAi+lMf09AhJwmHQEuJ8zkbwE9U7MX+BeBuO8+VFmP5gqF
	VZ7287N6UiNb3643cNnoOXGiVH3NScxp4kvMZBn9GIRQkVyvdG1QmF1MHOt+mXhErwQ5DSHBEmC
	QDkpDcdZTU6GCI30z/ZjJKb6DPwug7G+zyerCuOviYRg6cVFhgicsyr8=
X-Gm-Gg: AZuq6aKbdElQe7aAKufc3kX+3MxzcbZBx7AMrphxa44Es5uBDWmINcyTRaDxHxKGJg+
	vdNfZvztbC/rsxFilwYpeMX7J/BYAFXrbI5w5S5ckuLI2r7YLqgPr1O4EvIIbpn/zGXut0uALJB
	2risbtqxwPRSn7vXOCTzbUsQBd1Y5xzlRSTgLrepUZst93eKLyJvBBOWi/Hxg7durp6vPLQD5dA
	7k62oFvYUW2l5LVfRcreaIJ7iDec3RsezEJIzxLahZrjxAaSKJv919klsZCdjkaSfcwKceGbv7s
	jIEsuPoYX2eituEM/CiK7+cBmGph2qq7O7GHwg==
X-Received: by 2002:a05:6820:4a0c:b0:662:fb70:bcbf with SMTP id
 006d021491bc7-6743aa09771mr658547eaf.15.1770799975961; Wed, 11 Feb 2026
 00:52:55 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <38d71ac53abeeb4598d6ffb6bdab3717b3531334.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <38d71ac53abeeb4598d6ffb6bdab3717b3531334.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 11 Feb 2026 09:52:43 +0100
X-Gm-Features: AZwV_QiV4UmolsCRVma8gWNLgXZVjFGpG9XEnApvRoRtziub7bzhTn62EHVYBJo
Message-ID: <CAHUa44FR9FGnDd31d6wK_PiV=+JHKTsOWf=EgG2WOkH-x6ZVMw@mail.gmail.com>
Subject: Re: [PATCH 10/12] xen/arm: ffa: Reduce logging noise
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> Several FF-A paths log warnings for expected or recoverable conditions,
> leading to noisy logs during normal operation.
>
> Reduce log noise by:
> - demoting unhandled FID warnings to debug
> - ratelimiting notification and VM teardown failures
> - printing the bit-15 convention warning once per boot
> - adjusting log prefixes for hypervisor-only events
> - adding debug diagnostics for RX/TX acquire failures, with busy cases
>   ratelimited
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c          | 11 ++++++-----
>  xen/arch/arm/tee/ffa_notif.c    | 11 ++++++-----
>  xen/arch/arm/tee/ffa_partinfo.c | 15 ++++++++-------
>  xen/arch/arm/tee/ffa_rxtx.c     | 21 +++++++++++++++++++--
>  4 files changed, 39 insertions(+), 19 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index a46c6e5e67f1..d0b9c9f1ab2e 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -461,7 +461,7 @@ static bool ffa_handle_call(struct cpu_user_regs *reg=
s)
>          break;
>
>      default:
> -        gprintk(XENLOG_ERR, "ffa: unhandled fid 0x%x\n", fid);
> +        gdprintk(XENLOG_DEBUG, "ffa: unhandled fid 0x%x\n", fid);
>          e =3D FFA_RET_NOT_SUPPORTED;
>          break;
>      }
> @@ -581,7 +581,8 @@ static void ffa_domain_teardown_continue(struct ffa_c=
tx *ctx, bool first_time)
>
>      if ( retry )
>      {
> -        printk(XENLOG_G_INFO "%pd: ffa: Remaining cleanup, retrying\n", =
ctx->teardown_d);
> +        printk(XENLOG_G_DEBUG "%pd: ffa: Remaining cleanup, retrying\n",
> +               ctx->teardown_d);
>
>          ctx->teardown_expire =3D NOW() + FFA_CTX_TEARDOWN_DELAY;
>
> @@ -622,7 +623,7 @@ static void ffa_teardown_timer_callback(void *arg)
>      if ( ctx )
>          ffa_domain_teardown_continue(ctx, false /* !first_time */);
>      else
> -        printk(XENLOG_G_ERR "%s: teardown list is empty\n", __func__);
> +        printk(XENLOG_ERR "%s: teardown list is empty\n", __func__);
>  }
>
>  /* This function is supposed to undo what ffa_domain_init() has done */
> @@ -684,7 +685,7 @@ static bool ffa_probe_fw(void)
>
>      if ( !ffa_get_version(&vers) )
>      {
> -        gprintk(XENLOG_ERR, "Cannot retrieve the FFA version\n");
> +        printk(XENLOG_ERR "ffa: Cannot retrieve the FFA version\n");
>          goto err_no_fw;
>      }
>
> @@ -724,7 +725,7 @@ static bool ffa_probe_fw(void)
>              set_bit(FFA_ABI_BITNUM(ffa_fw_abi_needed[i].id),
>                      ffa_fw_abi_supported);
>          else
> -            printk(XENLOG_INFO "ARM FF-A Firmware does not support %s\n"=
,
> +            printk(XENLOG_WARNING "ARM FF-A Firmware does not support %s=
\n",
>                     ffa_fw_abi_needed[i].name);
>      }
>
> diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
> index 37b05747cd21..186e72641237 100644
> --- a/xen/arch/arm/tee/ffa_notif.c
> +++ b/xen/arch/arm/tee/ffa_notif.c
> @@ -292,8 +292,9 @@ static void notif_vm_pend_intr(uint16_t vm_id)
>              break;
>          }
>      }
> -    if ( !v )
> -        printk(XENLOG_ERR "ffa: can't inject NPI, all vCPUs offline\n");
> +    if ( !v && printk_ratelimit() )
> +        printk(XENLOG_G_DEBUG "%pd: ffa: can't inject NPI, all vCPUs off=
line\n",
> +               d);
>
>  out_unlock:
>      rcu_unlock_domain(d);
> @@ -316,9 +317,9 @@ static void notif_sri_action(void *unused)
>          res =3D ffa_get_ret_code(&resp);
>          if ( res )
>          {
> -            if ( res !=3D FFA_RET_NO_DATA )
> -                printk(XENLOG_ERR "ffa: notification info get failed: er=
ror %d\n",
> -                       res);
> +            if ( res !=3D FFA_RET_NO_DATA && printk_ratelimit() )
> +                printk(XENLOG_WARNING
> +                       "ffa: notification info get failed: error %d\n", =
res);
>              return;
>          }
>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index 6b01c4abe915..c9f186b3720c 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -461,9 +461,11 @@ static bool init_subscribers(void *buf, uint16_t cou=
nt, uint32_t fpi_size)
>           */
>          if ( !FFA_ID_IS_SECURE(fpi->id) )
>          {
> -            printk(XENLOG_ERR "ffa: Firmware is not using bit 15 convent=
ion for IDs !!\n"
> -                              "ffa: Secure partition with id 0x%04x cann=
ot be used\n",
> -                              fpi->id);
> +            printk_once(XENLOG_ERR
> +                        "ffa: Firmware is not using bit 15 convention fo=
r IDs !!\n");
> +            printk(XENLOG_ERR
> +                   "ffa: Secure partition with id 0x%04x cannot be used\=
n",
> +                   fpi->id);
>          }
>          else
>          {
> @@ -632,11 +634,10 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
>          res =3D ffa_direct_req_send_vm(subscr_vm_destroyed[n], ffa_get_v=
m_id(d),
>                                       FFA_MSG_SEND_VM_DESTROYED);
>
> -        if ( res )
> -        {
> -            printk(XENLOG_ERR "%pd: ffa: Failed to report destruction of=
 vm_id %u to %u: res %d\n",
> +        if ( res && printk_ratelimit() )
> +            printk(XENLOG_WARNING
> +                   "%pd: ffa: Failed to report destruction of vm_id %u t=
o %u: res %d\n",
>                     d, ffa_get_vm_id(d), subscr_vm_destroyed[n], res);
> -        }
>
>          /*
>           * For these two error codes the hypervisor is expected to resen=
d
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index 450ce102cbdc..3147aba21ddf 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -4,6 +4,7 @@
>   */
>
>  #include <xen/const.h>
> +#include <xen/lib.h>
>  #include <xen/domain_page.h>
>  #include <xen/mm.h>
>  #include <xen/sizes.h>
> @@ -82,8 +83,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx=
_addr,
>
>      if ( page_count > FFA_MAX_RXTX_PAGE_COUNT || !page_count )
>      {
> -        printk(XENLOG_ERR "ffa: RXTX_MAP: error: %u pages requested (lim=
it %u)\n",
> -               page_count, FFA_MAX_RXTX_PAGE_COUNT);
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: RXTX_MAP: error: %u pages requested (limit %u)\n"=
,
> +                 page_count, FFA_MAX_RXTX_PAGE_COUNT);
>          return FFA_RET_INVALID_PARAMETERS;
>      }
>
> @@ -303,12 +305,15 @@ int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **=
buf, size_t *buf_size)
>      if ( !ctx->page_count )
>      {
>          ret =3D FFA_RET_DENIED;
> +        gdprintk(XENLOG_DEBUG, "ffa: RX acquire denied, no RX/TX mapped\=
n");
>          goto out;
>      }
>
>      if ( !ctx->rx_is_free )
>      {
>          ret =3D FFA_RET_BUSY;
> +        if ( printk_ratelimit() )
> +            gdprintk(XENLOG_DEBUG, "ffa: RX acquire busy\n");
>          goto out;
>      }
>
> @@ -316,7 +321,10 @@ int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **b=
uf, size_t *buf_size)
>      {
>          ret =3D ffa_simple_call(FFA_RX_ACQUIRE, ctx->ffa_id, 0, 0, 0);
>          if ( ret !=3D FFA_RET_OK )
> +        {
> +            gdprintk(XENLOG_DEBUG, "ffa: RX acquire failed: %d\n", ret);
>              goto out;
> +        }
>      }
>      ctx->rx_is_free =3D false;
>      *buf =3D ctx->rx;
> @@ -355,13 +363,22 @@ int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const v=
oid **buf, size_t *buf_size)
>      int32_t ret =3D FFA_RET_DENIED;
>
>      if ( !spin_trylock(&ctx->tx_lock) )
> +    {
> +        gdprintk(XENLOG_DEBUG, "ffa: TX acquire busy\n");
>          return FFA_RET_BUSY;
> +    }
>
>      if ( !ctx->page_count )
> +    {
> +        gdprintk(XENLOG_DEBUG, "ffa: TX acquire denied, no RX/TX mapped\=
n");
>          goto err_unlock;
> +    }
>
>      if ( !ctx->tx )
> +    {
> +        gdprintk(XENLOG_DEBUG, "ffa: TX acquire denied, TX buffer missin=
g\n");
>          goto err_unlock;
> +    }
>
>      *buf =3D ctx->tx;
>      *buf_size =3D ctx->page_count * FFA_PAGE_SIZE;
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 09:34:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 09:34:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227113.1533442 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq6bb-0006wa-9E; Wed, 11 Feb 2026 09:33:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227113.1533442; Wed, 11 Feb 2026 09:33: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 1vq6bb-0006wT-5z; Wed, 11 Feb 2026 09:33:55 +0000
Received: by outflank-mailman (input) for mailman id 1227113;
 Wed, 11 Feb 2026 09: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=gWxp=AP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vq6ba-0006wA-2r
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 09:33:54 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c686c9df-072c-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 10:33:52 +0100 (CET)
Received: from BL0PR02CA0040.namprd02.prod.outlook.com (2603:10b6:207:3d::17)
 by BL1PR12MB5899.namprd12.prod.outlook.com (2603:10b6:208:397::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 09:33:48 +0000
Received: from MN1PEPF0000F0E1.namprd04.prod.outlook.com
 (2603:10b6:207:3d:cafe::df) by BL0PR02CA0040.outlook.office365.com
 (2603:10b6:207:3d::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed,
 11 Feb 2026 09:33:47 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MN1PEPF0000F0E1.mail.protection.outlook.com (10.167.242.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 09:33:48 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Feb
 2026 03:33:47 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c686c9df-072c-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Us6N8lX8HJMcZzTB6SqQZyWhFA/vqecnBvJ+ip27D0lMFxnVWRdzXX5shRTma2DGBQTEJcb0YdD8mMGrH2JFcjA0DWGd9e4UqejRDHM68EJFI7xXR8Bx2HexOEqJNvQ95Kfavb8tWJV/IWBBmQmYgxso9bMqp8Mi5pQlDIpXsaGf7Un46oJzo+pY9YwzPuNjyjCB+iZ8iGsoi8wzbHUq+zO/PIvsbZMmjA9RicNrNN5sEuXW/1didXAUj99b39KER3sbCxuDRqF4fzF1Zb0cEls8bw6PZMbCmBGFwJzym50o1x+yh9IokOQ+xPweUxlGXO2/L/iCXwoRLz7fqNpKuA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rUCLTSsLiTD19y3HdUTJnVOqun1ElPoSVVgAqf/qA3s=;
 b=lDCGfB/4vedVOBpFgQYSqUGDRnmaXmVUKQl2G8gkHgnJA5R5Inxa3wwE+USlKxd7lmq9AZbRFG+b44X81SlNDnkFANsKucwpWw0HJoFbnehE5fKFM23po87rNihuQvJAXBj+hOwU9z97aX8z8VsOY8tJU7ur1suwxl1USeHjJPxVOeQE413HkrhtoIyE27yFQx9pgfK8LYcfycxg6H4b8M2WE6cJ2oub8bcNOqgo/PC7pJ/DCZwO9GKCpit8Hj46lM3kO6WSJJyL9I7LvJKOku995y5XTN7ygvWrCuZLemv+GC4NcmZaMpqQYM2p3HEsdW9Ujj5RauGiVK8H41OCpQ==
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=rUCLTSsLiTD19y3HdUTJnVOqun1ElPoSVVgAqf/qA3s=;
 b=vTHWebvqX/GBKYsxEOCHEn7ITRC50eruyXUrSla8J/P0m0uhnWN3L6fRRhYZWmAgJf+MRp7Weo0aXB1C8UOThyG99bkCfSwyt7WHwoXD0QSvUBAnDIeG8IVTLmRppBlR41ywBhc1MHlARXq8jCgAyZyfTzuvCS5NbijcCHQfk20=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Feb 2026 10:33:45 +0100
Message-ID: <DGC12JYGSNYU.3IPSDEA7ONWLY@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>, Tamas K Lengyel <tamas@tklengyel.com>
Subject: Re: [PATCH v2] x86/domctl: Conditionalise x86 domctl using DCE
 rather than ifdef
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260210173022.257030-1-alejandro.garciavallejo@amd.com>
 <b210e7c0-ae2b-4d41-8690-b5af4261de3c@suse.com>
In-Reply-To: <b210e7c0-ae2b-4d41-8690-b5af4261de3c@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E1:EE_|BL1PR12MB5899:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b4253ea-6bf9-412d-cbee-08de6950a8ac
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?WW5yMGlmcHpBeG9aVTRkekhFWHI1VXVrV00xN2RrVW5JSVpkZVlpZWVya2tr?=
 =?utf-8?B?TlFDZzZlTjJ4b2pCN0haRkVkOEN1OFhwR3dxY2hBTDFEL2ZSQk81bmxJTWRJ?=
 =?utf-8?B?N0RKelZlTGdIV3Y2bWZLMEtqb3J3VUVZd2hhTlJYdE9ScHhMNFJZMWRPSU45?=
 =?utf-8?B?R3QvdUZaSzlyc3pib016V09JMFl0OGNhS3JXYzRZaWRDZk1ZZTdxV2JzdWZC?=
 =?utf-8?B?U2xrOU83aGZ6cHRmNzFRckFpYTBhVlZ1ZVFsUEYwWk9iTlE1VDJkU052Tml6?=
 =?utf-8?B?aFRySTlNdHRuZFcrd1pIOTkyOW5ZWGExdDZyeVpia25nRmI0UjU1OHJSbStl?=
 =?utf-8?B?VmVSdnRpb2E3QW01THNkVWx1RlhQYmtvUW95UjFMMTNzTmYwZGJnTXJ1cGY4?=
 =?utf-8?B?WjVtQ0xncWI3eFJQM042R2hMbVA3VzZ5Z1JQblNhYW9nMzBmRVExMndwbkRK?=
 =?utf-8?B?Q1F6ZVlCRFYrbEZmZjRQZ01xUlZiUFN6djlhL1UvK041UGVtN2FEc0UzeDZJ?=
 =?utf-8?B?NmMyZGhBUnM3RkxyNjNxNXZyK1lJbHFvbFZEcjFGOVpOSm5peHg5T2wwM05U?=
 =?utf-8?B?SHJZTWpURVZpTmdpVnpkeGRYczRud1djMXprUjFRcEdRRkFuYXNxYTJjTzFk?=
 =?utf-8?B?VTFRTG1iYXJtWWpranJqVmxGZWNoQjdaY043Qnhqak9aNVFLcG5ha1p0Y1o2?=
 =?utf-8?B?Z1JkWkRkR0IrMEcydmQxMnRHc2JWcFVYQnFHTFYwV3V5UTd0di9pTlBTa29i?=
 =?utf-8?B?VU56M0ZrYzNndHFLNzZUbTZNOEFYdnNDMGttK0dEOHVsUWEwWmdNbmpSMHo3?=
 =?utf-8?B?ZkVEcVoxVzk5blBlK1AwZkhSb3RxaWh0blg5dlpaVkVBODBISHZPck1SMXQy?=
 =?utf-8?B?U0hBRjVzb2hRam9tQWVZajVyaFJ4R2xvZDBiZGh2dVdseEsyc1VnTldvR291?=
 =?utf-8?B?TG8yRHpUUURPK1Qzd3FnWHlUV0tRanZwbDBhNlZvSldMMlA0OVVpK0VmNjBQ?=
 =?utf-8?B?YzN1cUlSSWQzaTR6VExON1FIQ0JlL09XbmtaMkN4enFxUDQ5V2lDcFNERVdR?=
 =?utf-8?B?VVhLaE9UeFNUWi9hOFFhbVlnQ2lIZnYyODRzQjVpZEVqREE2Y2FhYmxhVVdv?=
 =?utf-8?B?L0daUHg2ck8yT0lHM256emdFbXNlaWdLYmhIMmNJeEdTUUVNYkkycjNhRmxH?=
 =?utf-8?B?NENOZFV2VXJpYkNLdHlxQ0hLY3lZR0YxMkpMWW52clEzRzJjWG1XYksvR2p3?=
 =?utf-8?B?aU1BTXNNaGlrTkRETWkvd2dqQWQ1dFhMSWVqV1lROFYvdDJXNEtOMmpUWnRt?=
 =?utf-8?B?MmExTTNWOVVMZ0hTTTNvSFRlcDZjU2FUd2N0T3VLbXdmelpOek56N3lJaTdY?=
 =?utf-8?B?ekRGaXhVMXErT0JsYUNXOUFmVXI3Z3JpVmovUFVqMWZ2WFQyYitNYW9HSjAy?=
 =?utf-8?B?dytIMDVOQkhOTWdQTWQ5MHNvRGNmSmllWklhN1FLWGduTnJGTlZRdUVNcmRq?=
 =?utf-8?B?MXYzbTg2MjRCdFhDRmdpYng4aDNKS2FNbUdnbDIxbkpmaEJyUDhsWmxpVERs?=
 =?utf-8?B?Y2FtemNUd1lhZFlNRXN2bDRhZW9LRW1mZHhNbndYbXV2L1lqUUQwQ05PcnhM?=
 =?utf-8?B?VkVVTndkNnltc1djSFlDUmxUaTdwMk0xbEpzc2pHSUdzU3FmazZqQ0g4L2FV?=
 =?utf-8?B?RUpSMnlBaFY4VmRLQVZJcUcyKzA5ZndYTUd3dFpDN2xPS3dLSEZEbHNZcW83?=
 =?utf-8?B?NysvN3ZYN3dqenVnVlMwTzZUbTZzQXhOb1lkeFJIYTFTU1J1M1lta3JWWDRX?=
 =?utf-8?B?ZUluaDNMTU1OZExMNDhCQVV3ZUNFMzFQVHBKY1hHS1Rtc29kd2orTVpINkk4?=
 =?utf-8?B?bDhockJvQU8zcGZJTnBrTStmWW4zakQxTmtuRVkrc0xxQXdHK2p0OTI5WmR6?=
 =?utf-8?B?Z3FaTjM1emVzOXkxRHM0N3Y3ZVB4MTlCOHAyM1lNRk9WUE50bUxXRkpVd1Bq?=
 =?utf-8?B?RU0xQjJadUdxbUZ5QXNmbFRWbHpzUm8wekc2TytaKzBqdE5FaUFsUFI2QndO?=
 =?utf-8?B?dTRFWUZ6dHlUN1ZFRXdIbFZvcmRDdTlJZDRHM0MzMEMzSFFzRkgvZXhqOXp0?=
 =?utf-8?B?elNyVlFMNkxBV1EyS1Q2TTRVZ3NmNGUyQTRtaE04cnhQVThKVGNWdzRrY1Fs?=
 =?utf-8?B?M1V5aHdhN0lVQ01COWdCV0puOTN5TktTNUJzSkdPRm5Tck04aE45NUYwVkN1?=
 =?utf-8?B?ZDN1aWEwbkhRbUhiaXQ1OUVhOXV3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	3b5RZ/KHtF0RIAYoOF/qEDOrtZxikmxKaF/Q/QHYoLbNOnvhpZO6fdl6WldLAjmdPFouoFdmUfYEA47Yzl/90ESRcmC3hEVr84ZGhw9Lidr3LJhnYmUZ3QQDX7OujByS3wgbJQAoOwwHIcySh77Z82v1hf39YMNPvAfLOkaJigJyEplwIRqvC3n8E/TrH/17lDaWCGoW4bHiu+62YhnczFwtBa3+JwODQuEMVKAAl+gPyoydLJaVqUpcktJLq2Cvg9wQzQEh7Io2aQmloO/IM9ZF0wEBU4W38V82ceSDr9PSKyBxrJ1Isn416vpacEW76uOPLmq5BWbidVGWoKyo2sWH+8nMbl0ERMqB4P3N3CyrSzQP0OMOceLhPtA2aw06qzK1GWmGDhJpqjXrUj/CvAgaRG5Ik6W3xEYBcGVXz/HXxDJiOL0vh9eWh0Fsve4K
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 09:33:48.0948
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b4253ea-6bf9-412d-cbee-08de6950a8ac
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000F0E1.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5899

On Wed Feb 11, 2026 at 8:17 AM CET, Jan Beulich wrote:
> On 10.02.2026 18:30, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/include/asm/mem_sharing.h
>> +++ b/xen/arch/x86/include/asm/mem_sharing.h
>> @@ -9,10 +9,12 @@
>>  #ifndef __MEM_SHARING_H__
>>  #define __MEM_SHARING_H__
>> =20
>> -#include <public/domctl.h>
>> -#include <public/memory.h>
>> +struct xen_domctl_mem_sharing_op;
>> =20
>>  #ifdef CONFIG_MEM_SHARING
>> +#include <xen/sched.h>
>> +
>> +struct xen_mem_sharing_op;
>> =20
>>  #define mem_sharing_enabled(d) ((d)->arch.hvm.mem_sharing.enabled)
>> =20
>> @@ -92,8 +94,6 @@ int mem_sharing_fork_reset(struct domain *d, bool rese=
t_state,
>>  int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn,
>>                                bool allow_sleep);
>>  int mem_sharing_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_sharing_op_t) arg)=
;
>> -int mem_sharing_domctl(struct domain *d,
>> -                       struct xen_domctl_mem_sharing_op *mec);
>> =20
>>  /*
>>   * Scans the p2m and relinquishes any shared pages, destroying
>> @@ -103,6 +103,7 @@ int mem_sharing_domctl(struct domain *d,
>>  int relinquish_shared_pages(struct domain *d);
>> =20
>>  #else
>> +struct domctl;
>
> DYM struct domain? If so (can adjust while committing):
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

I did. Annoyingly I only recompiled on with mem_sharing enabled.

>
> Cc-ing Tamas at least for awareness; I think ./MAINTAINERS should enumera=
te
> this file in the X86 MEMORY SHARING section.
>
>> --- a/xen/arch/x86/include/asm/p2m.h
>> +++ b/xen/arch/x86/include/asm/p2m.h
>> @@ -806,12 +806,10 @@ static inline void p2m_pt_init(struct p2m_domain *=
p2m) {}
>>  void *map_domain_gfn(struct p2m_domain *p2m, gfn_t gfn, mfn_t *mfn,
>>                       p2m_query_t q, uint32_t *pfec);
>> =20
>> -#if P2M_AUDIT
>> -extern void audit_p2m(struct domain *d,
>> -                      uint64_t *orphans,
>> -                      uint64_t *m2p_bad,
>> -                      uint64_t *p2m_bad);
>> -#endif /* P2M_AUDIT */
>> +void audit_p2m(struct domain *d,
>> +               uint64_t *orphans,
>> +               uint64_t *m2p_bad,
>> +               uint64_t *p2m_bad);
>
> If already you adjust this beyond dropping the #ifdef, I think we also wa=
nt to
> make use of line length, to better match e.g. the other prototype in patc=
h
> context above. I'm likely to take the liberty of doing so while committin=
g.
>
> Jan

Thanks, Jan.

Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 09:45:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 09:45:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227122.1533452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq6mR-0000FQ-E9; Wed, 11 Feb 2026 09:45:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227122.1533452; Wed, 11 Feb 2026 09: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 1vq6mR-0000FJ-Az; Wed, 11 Feb 2026 09:45:07 +0000
Received: by outflank-mailman (input) for mailman id 1227122;
 Wed, 11 Feb 2026 09:45: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq6mQ-0000FD-Pw
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 09:45:06 +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 56ffc414-072e-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 10:45:03 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-48327b8350dso43591935e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 01:45:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835a5c0df8sm16549185e9.0.2026.02.11.01.45.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 01:45:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56ffc414-072e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770803103; x=1771407903; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D9vjWfWOxmMdY6iwXsJOHNNgCOOmWOZgjW8gWaCRK7A=;
        b=WR/dbQRiY5AZTR8W17ejTjuBJL6NzJEfTAGOYtRJJa0uqG9e4KN5NMKz7DZWd0Rp9o
         +FN55Iu9V9au9yWnVPHCXDkYvbA98Kt6II0jQ58ba8TYEhzYOlproJtLdw+o+uLwjT8Z
         mPIkh5y8y7TqAU9RQMNcV6JldF3CyrBhJQ/KPDW185rXKp1Le6Nu1ibUZ57Ag067LKlo
         O10P2+PqefYAK8cXW2LlcD3CktY5v2wRMJfszM9ZDowPQdCV54zmO6K4aVqfOu05jnnd
         GxcEkZovWfMTqJFFVU9QCu9T89UNjJxw2Z8B50RFI07gwGgFw2dQ2i7B4Na9QYrNklfV
         Sn3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770803103; x=1771407903;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D9vjWfWOxmMdY6iwXsJOHNNgCOOmWOZgjW8gWaCRK7A=;
        b=n6cytknmAeu48t3LfXnxPRVKow6GoUidjVjysqC7T3AuA69rx3fvvsRrabQ7WuVNx9
         Y9zxLMDzxy0NL3o/AuF5e1YcLrXaWlAm27TSniUHlM36xnoK17rcSqkkbFT6+Crk989c
         jSdKpLQgm45qx8WRy1Nt7ibw/FHvmyjicXl2aFFNYiXn3tp9ZZSoEi+VB69ra6UoyRkN
         4tKtgTotoBFlYGUvo4lZux6ES5jkVh28Wc7Xfpo2C1dhFSK39GPF5Vb1oTUFE4H1MChj
         zfhwy9N2cCIN+rqAZpc8SCduS8g2Ap1lPjvNPDAfMZJoCENeM4T+5hNSFMjoefiqVqng
         zDng==
X-Forwarded-Encrypted: i=1; AJvYcCVs0wmD6CDRaGaVwSp3uE9EhT5pnT9jrYxXGjR7CSv3U6eVXV8jhzD1LlVPNuNPwkXD01HjrtdoZlI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyu1OX8EEFYHXm3o//muPamyxUO5FixUmbp8WXRK0zRmYXk/3jJ
	BwpqqxTVrsSZP2oVb3ZLOU1bWr4qiJbFIk6c7a8WpCjD7+QiVSsvZWa4oZWhLan/0Q==
X-Gm-Gg: AZuq6aJDSpPV+Rkgu8jC3a+VJLx8GSFq2QBMuuGBOZWZn0j3HKm46zz+BdxnmdKc9Um
	FQUQ+0RisI+hCeLDgmZnc6Zzj7gQP8Q6j/nMVnL1LD5smLEbF/Oj+V1n4PejKZD34YWkEELOav3
	A+6K9u5JsMUe/eXLOaAeBGmkMhwvaG+TrdlZrRl31sm65ziuhnprhZj7NLutbwsxILG5fS3xm1B
	1j1VzTtmM4GO7Z7HTWwKnliYFSn3roi3eE546FJ791EVjqoMEWWmWblOIP1dJnKs4qdOL2RZT5d
	4Yal/HQum9kLDJ5dcjrB3RVN4aDBd+MKrqPSRVXBqKKDGPKTueY8nbEqI60n9kiACCLajPvsYO5
	Nvml5ET5RE/7ey9dK/ha6MaOBmDzDt3qekkkLjvEQSLR9XQ3cfnzfr/s8d2jn1faXBx4T4XKUcY
	lZhz/Q2Yf0diaWQbm6blNixIOWnoqpxmXAvaeGm+4r/vGin5nD/W1EoxCq3XRP9IqQn1btPOyZV
	dHHp2x6VZPKZ6I=
X-Received: by 2002:a05:600c:4e12:b0:483:54cc:cd97 with SMTP id 5b1f17b1804b1-4835b94a2cemr27715145e9.36.1770803102963;
        Wed, 11 Feb 2026 01:45:02 -0800 (PST)
Message-ID: <fa58fd77-b513-4704-8598-1209b55226a3@suse.com>
Date: Wed, 11 Feb 2026 10:44:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/16] xen/riscv: implement vcpu_csr_init()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <212accf20032cc9cbe6c33752fa45de1c1284e3c.1770650552.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: <212accf20032cc9cbe6c33752fa45de1c1284e3c.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -5,6 +5,72 @@
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/cpufeature.h>
> +#include <asm/csr.h>
> +#include <asm/riscv_encoding.h>
> +#include <asm/setup.h>
> +
> +#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
> +                         BIT(CAUSE_FETCH_ACCESS, U) | \
> +                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
> +                         BIT(CAUSE_BREAKPOINT, U) | \
> +                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
> +                         BIT(CAUSE_LOAD_ACCESS, U) | \
> +                         BIT(CAUSE_MISALIGNED_STORE, U) | \
> +                         BIT(CAUSE_STORE_ACCESS, U) | \
> +                         BIT(CAUSE_USER_ECALL, U) | \
> +                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
> +                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
> +                         BIT(CAUSE_STORE_PAGE_FAULT, U))
> +
> +#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
> +
> +static void vcpu_csr_init(struct vcpu *v)
> +{
> +    register_t hstateen0;

There not being an initializer here, ...

> +    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
> +
> +    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
> +
> +    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
> +
> +    /*
> +     * VS should access only the time counter directly.
> +     * Everything else should trap.
> +     */
> +    v->arch.hcounteren = HCOUNTEREN_TM;
> +
> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
> +        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
> +
> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
> +    {
> +         if (riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia))

(Nit: Style.)

> +            /*
> +             * If the hypervisor extension is implemented, the same three
> +             * bitsare defined also in hypervisor CSR hstateen0 but concern

(Nit: "bits are")

> +             * only the state potentially accessible to a virtual machine
> +             * executing in privilege modes VS and VU:
> +             *      bit 60 CSRs siselect and sireg (really vsiselect and
> +             *             vsireg)
> +             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
> +             *             vsiph, vsieh, and vstopi)
> +             *      bit 58 all state of IMSIC guest interrupt files, including
> +             *             CSR stopei (really vstopei)
> +             * If one of these bits is zero in hstateen0, and the same bit is
> +             * one in mstateen0, then an attempt to access the corresponding
> +             * state from VS or VU-mode raises a virtual instruction exception.
> +             */
> +            hstateen0 = SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
> +
> +        /* Allow guest to access CSR_ENVCFG */
> +        hstateen0 |= SMSTATEEN0_HSENVCFG;

... doesn't the compiler complain about the use of a possibly uninitialized
variable? The variable also wants to move to the more narrow scope.

> @@ -32,6 +98,8 @@ int arch_vcpu_create(struct vcpu *v)
>      v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
>      v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
>  
> +    vcpu_csr_init(v);
> +
>      /* Idle VCPUs don't need the rest of this setup */
>      if ( is_idle_vcpu(v) )
>          return rc;

Do idle vCPU-s really need to have vcpu_csr_init() called for them?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 09:47:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 09:47:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227128.1533461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq6ow-0000pY-Pk; Wed, 11 Feb 2026 09:47:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227128.1533461; Wed, 11 Feb 2026 09: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 1vq6ow-0000pR-N5; Wed, 11 Feb 2026 09:47:42 +0000
Received: by outflank-mailman (input) for mailman id 1227128;
 Wed, 11 Feb 2026 09: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=wIvg=AP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vq6ov-0000pL-LY
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 09:47:41 +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 b3e0c226-072e-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 10:47:39 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48329eb96a7so24601305e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 01:47:39 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835a610ce2sm19755445e9.1.2026.02.11.01.47.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 01:47:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3e0c226-072e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770803259; x=1771408059; 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=EYnD8wgs7frNdBuiftkMNMh392wHVUhVfUNHizVnTmc=;
        b=Qa5v/bf81BzTFutKurm8nSTP65SwRj6RldxsykSTjpBXE0Jp0BYv3CV7OgtzgqW7AN
         Q5V/VsSU4oXggq8r5T/gGWeTURZ6NTsaGGCFDiZpnenkkGdf9qkX+qc3+RJuVRKwuppC
         Uf1kPtM8uDlGhlIbF84xfPCuzvh41liVXI0n+dmiHp0y6lObEN4bLRRjw15Jnu2Zpq23
         MZXUcmjrt4LlTAXqmUFpxulpqyuqSGZHVl65S/i7vBX5tDqvHfhgb4nJICAG5tBNTAfb
         miWrAIFajSXjAb6HZZRU/oYCTkSmIXtXKF6umm6tVMLhFQC5abAz3+H06aZNEkYtw9+W
         Ua6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770803259; x=1771408059;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=EYnD8wgs7frNdBuiftkMNMh392wHVUhVfUNHizVnTmc=;
        b=BgXhgZtZbQByqyD8tXZC98Y9kaXsMDdUBHGvZ9e0Q34vH4norxd205EXOPJIV1Si/r
         UwwKALEar2i5E53WtchKjgy91Qb488nN4bUf7WhhhoZI9C5oRS2MmPht7zT4LQVJN52y
         YsMjcxq6CTSgoA+9W8az+Dmmj4wUIHPGIBlsSHwSbKFlEZmIW6Vr2V3xl5rcZMz6yy0B
         VaXt6EanE8HrrXyO3ehG52uWKb2WExg6yfqN9EYeGPAf9f8DBITGylgOTh34Bz7BXvXl
         GaF4FC42BmVPxUe9Wh/bw9HfG2J08DPlYTwEdurLbogkz7pvoSqwuuL1ZwmniZQNOyIW
         jiJQ==
X-Forwarded-Encrypted: i=1; AJvYcCUm7Vb5w3OcGihsdrTPFEOPb8QOFn73hFiaoDZt3HZfIoKbuYqm6kuyFVCclk2RrQ8w347q5xFRakA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxdu7KN878KnJYRMNgKM58ZvGUh9Kljjzfg7mNQ5t6KXBsZFp12
	d5HcZ3pW5dS646Ylv4PLqhSRkikjGoLxRDhv1j1Gpx0TlOSPUYduuI0i
X-Gm-Gg: AZuq6aL7X2mSiTJc423ryoRHpjc99UyA1OTW7BmYjOMHl5J14FEZpEtYwVZ3BhgYbHK
	6MAMHwjfWjSP4oQ31kM+n19gNBKcVS2WdXC3dy3Ghyi8ZrfL+IdDtBgH3gEnFtfdg4ZD8uyLLN+
	XK21GIekXvfe6Tfqg1PnAOjmO6PCazkqSgdB5o8qYLFfH6BYO0+mHa5RSVdSwhJ1OUCGXSjf3CY
	/r3UddJw4TxRrNk8Yg5/hbP+53eTc4wRTPJmtgpfUN14q++5rE1X0/YrVK1I5uoadKaLe4kqIX5
	2cKkjoiFS1Bn1HZCTkOgb6Hx5DeDgdSn+KT00NtlV8yRv+zvIaLQuEnSDNEHxvfMGRN+kEjpTIQ
	XAUuDGOdtOcy2E5XzHHXRMx07629wAoSTE9tS6IqzlUBjkXYMKglIwWroJNb0DWjRV0tyw3LBej
	y1j1ZILf9SBjIjOSZBrHjMR6OuhHxBLm4RxrNUc2nim7h5ZjlUshCAeX+Ptrn3V7+/qE+C2Ut8s
	Jo=
X-Received: by 2002:a05:600c:4f82:b0:480:4d39:84b3 with SMTP id 5b1f17b1804b1-4835ebecc40mr13040005e9.6.1770803258563;
        Wed, 11 Feb 2026 01:47:38 -0800 (PST)
Message-ID: <3650d684-f6c8-4f73-ad8b-3c6dd64c256c@gmail.com>
Date: Wed, 11 Feb 2026 10:47:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/16] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <cfb2bd81ca9c43f29f5d77a918e1da7a8c55318e.1770650552.git.oleksii.kurochko@gmail.com>
 <a660d245-0c63-409c-8609-ba767fff9e65@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a660d245-0c63-409c-8609-ba767fff9e65@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/11/26 8:49 AM, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> Some hypervisor CSRs expose optional functionality and may not implement
>> all architectural bits. Writing unsupported bits can either be ignored
>> or raise an exception depending on the platform.
>>
>> Detect the set of writable bits for selected hypervisor CSRs at boot and
>> store the resulting masks for later use. This allows safely programming
>> these CSRs during vCPU context switching and avoids relying on hardcoded
>> architectural assumptions.
>>
>> Note that csr_set() is used instead of csr_write() to write all ones to
>> the mask, as the CSRRS instruction, according to the RISC-V specification,
>> sets only those bits that are writable:
>>      Any bit that is high in rs1 will cause the corresponding bit to be set
>>      in the CSR, if that CSR bit is writable.
>> In contrast, the CSRRW instruction does not take CSR bit writability into
>> account, which could lead to unintended side effects when writing all ones
>> to a CSR.
> Hmm, I wonder in how far the wording there is precise. In a subsequent
> paragraph there is:
>
> "For both CSRRS and CSRRC, if rs1=x0, then the instruction will not write
>   to the CSR at all, and so shall not cause any of the side effects that
>   might otherwise occur on a CSR write, nor raise illegal-instruction
>   exceptions on accesses to read-only CSRs."
>
> To me, a read-only CSR is a CSR with all bits read-only. With this
> interpretation, the two statements conflict with one another. Is this
> interpretation ruled out somewhere?

Good question. Actually by read-only CSRs RISC-V spec means that a CSR is
read-only by its design:
   The standard RISC-V ISA sets aside a 12-bit encoding space (csr[11:0])
   for up to 4,096 CSRs. By convention, the upper 4 bits of the CSR address
   (csr[11:8]) are used to encode the read and write accessibility of the
   CSRs according to privilege level as shown in Table 3. The top two bits
   (csr[11:10]) indicate whether the register is read/write (00,01, or 10)
   or read-only (11).
But logically it seems like if CSR is read-only then technically all CSR
bits are read-only as anyway an exception will occur if CSR is read-only.

So CSRRW* can't be used for such read-only CSRs as write always happen
and it will lead to an exception.

I can add in the commit message that the quote about CSRRS considers only
not read-only CSRs if it makes sense as if CSR is read-only then we won't
calculate a mask for it.

>
>> Masks are calculated at the moment only for hdeleg, henvcfg, hideleg,
> Nit: First one is hedeleg.
>
>> hstateen0 registers as only them are going to be used in the follow up
>> patch.
>>
>> If the Smstateen extension is not implemented, hstateen0 cannot be read
>> because the register is considered non-existent. Instructions that attempt
>> to access a CSR that is not implemented or not visible in the current mode
>> are reserved and will raise an illegal-instruction exception.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in V3:
>>   - New patch.
>>
>> --- a/xen/arch/riscv/setup.c
>> +++ b/xen/arch/riscv/setup.c
>> @@ -32,6 +32,8 @@
>>   unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
>>       __aligned(STACK_SIZE);
>>   
>> +struct csr_masks __ro_after_init csr_masks;
> setup.c would be nice to only have __init functions and __initdata data.
> Really up to now that's the case, and I wonder why the makefile doesn't
> leverage this by using setup.init.o in place of setup.o. This variable
> would likely better live elsewhere anyway, imo: Somewhere it's actually
> (going to be) used.

I put it here as I wasn't able to find better place. If it is okay to have
it in domain.c then I'm okay to move this variable there.


>
>> @@ -70,6 +72,28 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
>>       return fdt;
>>   }
>>   
>> +void __init init_csr_masks(void)
>> +{
>> +    register_t old;
>> +
>> +#define X(csr, field) \
>> +        old = csr_read(CSR_##csr); \
>> +        csr_set(CSR_##csr, ULONG_MAX); \
>> +        csr_masks.field = csr_read(CSR_##csr); \
>> +        csr_write(CSR_##csr, old)
> See my remark on the earlier patch regarding locally used macros. You
> shouldn't ...
>
>> +    X(HEDELEG, hedeleg);
>> +    X(HENVCFG, henvcfg);
>> +    X(HIDELEG, hideleg);
>> +
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
>> +    {
>> +        X(HSTATEEN0, hstateen0);
>> +    }
> ... be required to put braces here. (Then I'd further recommend to make "old"
> local to the macro's scope.)
>
> I'm also inclined to recommend to avoid an inflation of X() macros. Give
> each such macro a somewhat sensible (yet still short) name. This way you'll
> avoid Misra rule 5.4 ("Macro identifiers shall be distinct") concerns, in
> combination with rule 20.5 ("#undef should not be used"). Note that we
> didn't accept the latter rule, hence why I'm only saying "concerns", not
> "violations".

Thanks for explanation MISRA stuff.

I will rename X() here to INIT_CSR_MASK() and add do {...} while(0) to deal
with if()'s brackets.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 09:51:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 09:51:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227138.1533473 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq6s6-0002LR-AB; Wed, 11 Feb 2026 09:50:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227138.1533473; Wed, 11 Feb 2026 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 1vq6s6-0002LK-4T; Wed, 11 Feb 2026 09:50:58 +0000
Received: by outflank-mailman (input) for mailman id 1227138;
 Wed, 11 Feb 2026 09:50: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq6s5-0002LE-DG
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 09:50:57 +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 292e89d1-072f-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 10:50:56 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-4359108fd24so4206791f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 01:50:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d46ec6sm3293250f8f.9.2026.02.11.01.50.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 01:50:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 292e89d1-072f-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770803456; x=1771408256; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=X/kawchlnkSpmu6Ejkn7qq2+TmbcVtzDhc43G8h7fdI=;
        b=MphAJi4yffNdzhitLHXbB5lLLwamSTPJ8sXg2p0Yfx2ataUgnTWuLyBMo6zjAgOn6a
         5Fjfdd/JasXIVtpGDHjQE26GXBujfeGaqyHrH1KjCZpx7To7sv6xBCLqkgIYRClStXTP
         z8Jp+FoqRblNicidxDVYm3qSOyFYhDxh00Qt+EBSvx8d1AoCcTV3oWS77KlI9RVGPjxa
         Apu75bZOWZoWhvHqX2aGNGUIMuvF1gH8aCDSLwKiPB3D9TvcuOqOQCaVSMYi1MyXzvD1
         ktKi7YrsOihGPDaBY94LnxyN4U+3F+eYsxtkFQ3DC2q8s7gR0+i4Q66fZ3dj2STSzAn4
         553A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770803456; x=1771408256;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=X/kawchlnkSpmu6Ejkn7qq2+TmbcVtzDhc43G8h7fdI=;
        b=I7a3F7hFJmP97TU+vBR0yLoG7UteEHrV5/Ic/BAhlpQaHt3Dr73qsJ/wrDHD0zzX9F
         BL2KydZlP3i9q/ih8S3/IFkcC8LFBrTed4t7v1IWcxGN3GTvEcep48GJOoMZh26ynjS8
         KEkaDsz2BCsErFTQPmZT4mOqKXucMtAnL4y3xrkOBXHnWSz8B+unZvFP/QE+h/lmxGUG
         vJyIx0ReYuEVUZpkiK0416EZiIVBrAZ1GqhNwm2M1UVfAj4YJZIaPFX/EuxceG5r34WZ
         sjB8fneo6OK0pHoPyOft1cSJ/F13BdCyxVQ9FUW+NMVYER7HYPSlGnQjBoXPptoutEOv
         N5qA==
X-Forwarded-Encrypted: i=1; AJvYcCWEBCC6Y+5RlUcHvFqPuhl6OH94wP1BAaOHfWuJqK89gqWhg7o92nUpETVoR7GkYALH6NkO4K+Pegw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzkxUDcmeM4hCszKfvfNGye3YdnezZp9x5fozNBw7dKBC6Lg7fE
	ZyKgxPQsbmyrq39Z9Kd82Nj2lPMz+/qG2PwoSBJhglOQXMTiVo/RybDdt0CEqzkCTQ==
X-Gm-Gg: AZuq6aJk4tE6xQVg2KL40r1U/gz2dqEnYITWqjvArud71Wo2lUrecg3B4qVVOvxUDEI
	P486+0sWQGHk/Ju1UXl7hC09jVXA8l30hr8dcq6pvMStTHu+QnN08GUH/He76YtTCPNhTfpt6nl
	Rm+5cRbxUAzCl+2ymKQRZdygybIToKYnXSOFpZ4Wxrs8bbA/jAUJch+K3Om1+tbf5dShKhhctZW
	guC76ZrBC6rWh4qEPz28EEDA9kyabnIORLeMmTOxl8D6hCOAUSSMcRyfaf8uj1Wa4x2f74x8HV4
	KlTQzQugd8v7p3vTR1qO+ZLVp6s3yMZpZd2+bm/dQXUBRmxw5IvrttbS99w+jhatf8ags0sP5UB
	PzitgBCy+Pispb90hOkEVvkW7iCHNSfi69Vx8dhk+bvcoxr7SkshQ7cDIPdChNlHNnDiNt98NJP
	8FQPMkPVgPKGMbCTRfh2TS2AoP72jr32yVmXp0p2mu0+KN5pwIWc2BziNoDrOi01cF73JTFDxxK
	PLw5jXLepC1tqU=
X-Received: by 2002:a05:6000:60f:b0:437:6625:d0d7 with SMTP id ffacd0b85a97d-43784599e40mr2168182f8f.42.1770803455567;
        Wed, 11 Feb 2026 01:50:55 -0800 (PST)
Message-ID: <6f170f0c-6d36-4ecc-b2c6-5b70aff8ed45@suse.com>
Date: Wed, 11 Feb 2026 10:50:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 03/16] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <cfb2bd81ca9c43f29f5d77a918e1da7a8c55318e.1770650552.git.oleksii.kurochko@gmail.com>
 <a660d245-0c63-409c-8609-ba767fff9e65@suse.com>
 <3650d684-f6c8-4f73-ad8b-3c6dd64c256c@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: <3650d684-f6c8-4f73-ad8b-3c6dd64c256c@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.02.2026 10:47, Oleksii Kurochko wrote:
> On 2/11/26 8:49 AM, Jan Beulich wrote:
>> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/setup.c
>>> +++ b/xen/arch/riscv/setup.c
>>> @@ -32,6 +32,8 @@
>>>   unsigned char __initdata cpu0_boot_stack[STACK_SIZE]
>>>       __aligned(STACK_SIZE);
>>>   
>>> +struct csr_masks __ro_after_init csr_masks;
>> setup.c would be nice to only have __init functions and __initdata data.
>> Really up to now that's the case, and I wonder why the makefile doesn't
>> leverage this by using setup.init.o in place of setup.o. This variable
>> would likely better live elsewhere anyway, imo: Somewhere it's actually
>> (going to be) used.
> 
> I put it here as I wasn't able to find better place. If it is okay to have
> it in domain.c then I'm okay to move this variable there.

If that's where it's going to be (mainly) used (as the next patch suggests),
I see nothing speaking against you doing so.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 09:53:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 09:53:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227145.1533483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq6uB-0002qq-KT; Wed, 11 Feb 2026 09:53:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227145.1533483; Wed, 11 Feb 2026 09:53:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq6uB-0002qj-Fi; Wed, 11 Feb 2026 09:53:07 +0000
Received: by outflank-mailman (input) for mailman id 1227145;
 Wed, 11 Feb 2026 09: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=wIvg=AP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vq6u9-0002qb-Rs
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 09:53:05 +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 752318d1-072f-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 10:53:03 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47ee3a63300so20652565e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 01:53:03 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d99497asm43207475e9.6.2026.02.11.01.53.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 01:53:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 752318d1-072f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770803583; x=1771408383; 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=93Gt2K4loBSrYHf5eCVNMdfs11JBUXF7r8yCMW6LFvo=;
        b=fuo6Z77Ho3O/DOw68cL/Sx03AaQCgRXYTUrXxsULncVK3Is3OLK1vhJ77YehYGaNKn
         MxoGAqlsj69Ro8mAgV8b/VAQyfeUoj5KDdfnBn+IRTftrraHkb4kkUsB0Csg/sbExExG
         Pk37t8cbYZ5xC/pGvu3oXUyOEJoIshX0ok0P8c6+wMIdsrytz4g29L/bw2CjYLzD5UiC
         kVldm4Coeu2Upbz9FB6+tzSjMQkmReTGQfK/3Ne/MtSlFWtgtCFC45TqGWCeeEjQk+LX
         4Eij9Ivc5POxq0GtYVBkNklYIz8ELYQhky81zDY4xR7rM0xIpO3ar8kjoI6RvC/TKGf/
         RtVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770803583; x=1771408383;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=93Gt2K4loBSrYHf5eCVNMdfs11JBUXF7r8yCMW6LFvo=;
        b=otKfKFH0ZAM7bBsmslnEijQ7BsoURS2KChKT784Z2yomz5avXKUalJRAJDg3KWdqTk
         +NwIdmwuZ0UYS8+V6UhzBxjopP9y2vr4qIbgt5fprFFaJWjVJUWG1l+7iO8sVgteYdxk
         M5rR8JZLs98Wt7TpxwMXog1+zHMsq1iw0txrLSb9JqhMNhEPY7qmP+Xu2OmQ1765igMc
         ElTM/vKoO0UGZ8FAzWuOYuVEJbxDsxTcE7nJMlsAzd/3fsPksvaYwML0rqUJB8vnxdwA
         xyPyTUxj1rpkYzarpF42Uhf6qnMKOAJZeWe9HIWcNgbmaMrStV56PZRWTvD7kr2mJtKF
         CVww==
X-Forwarded-Encrypted: i=1; AJvYcCWZuj/AXiCs0X31hKnZ2Q1T1KMl/hMzNl88itpcRcsjuvCb2RHmc9wuw+zxNwGQ+c/NRQ3bwVabYFg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMUtxVtkV+pMTr3NAzUFRd6NmT9ZuWzco7f3i+WqbrT4U9ofde
	cdEhwCXq6ZqI6IgXwVsZ6RoYqSYWvnbQVEXLhdcBS/HjFTFflVqVRc1Zmxl57AS1
X-Gm-Gg: AZuq6aIjlNdqSlMpgYmiywfxFB4olsNYaJndhfD/yrvdgoFGU8Sp+NWmtGxWEv8sd4A
	DV6JsLCUfFDJKx1cWitQyePvjQsZXOx3Ah6857X0IBH7FYY9k8xvjpwlcZROPEBKRRwiIpizFqC
	3vdro8x0Lwo7IYO6FD9hKqNfhr2uTuo+L1c1cxzD+61yJg44lZgG2Wb/Dhnm0x7u1EP3HOuVfC0
	Agz6+qrrvmicSduuyg0yvWrwFZ28FqhWEkPfoc0uy3UpDX4sskoqQTKc7+D2jJB6x7CicEjt4YJ
	19ghHGWNaA3tzJzYmnK6QwUpS7W9XlB2Z+M5nPeTlXxaBIfwy29alPF1wZPKcY8VczVRpa33v3H
	/tX1g6hGXttr1lRJjsbxyVXeVvFO3qXxUVxJUDNpw2+ikguDPlm/+j+uZKzZ3KhXz8FWvIrmN26
	coR2ywPIr+liiAEJTHIMR12+lNxsDh3klu33ZxwM5MY4iGhvgfPeqQC67Dlgi2pqDy5H53D+xq8
	Xkux6eT2ra8Yg==
X-Received: by 2002:a05:600c:3b83:b0:483:4a95:66da with SMTP id 5b1f17b1804b1-4834a956702mr102820995e9.13.1770803582984;
        Wed, 11 Feb 2026 01:53:02 -0800 (PST)
Message-ID: <e7475d33-a7ca-4095-9483-e23a8587850f@gmail.com>
Date: Wed, 11 Feb 2026 10:53:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 04/16] xen/riscv: implement vcpu_csr_init()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <212accf20032cc9cbe6c33752fa45de1c1284e3c.1770650552.git.oleksii.kurochko@gmail.com>
 <fa58fd77-b513-4704-8598-1209b55226a3@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <fa58fd77-b513-4704-8598-1209b55226a3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/11/26 10:44 AM, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -5,6 +5,72 @@
>>   #include <xen/sched.h>
>>   #include <xen/vmap.h>
>>   
>> +#include <asm/cpufeature.h>
>> +#include <asm/csr.h>
>> +#include <asm/riscv_encoding.h>
>> +#include <asm/setup.h>
>> +
>> +#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
>> +                         BIT(CAUSE_FETCH_ACCESS, U) | \
>> +                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
>> +                         BIT(CAUSE_BREAKPOINT, U) | \
>> +                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
>> +                         BIT(CAUSE_LOAD_ACCESS, U) | \
>> +                         BIT(CAUSE_MISALIGNED_STORE, U) | \
>> +                         BIT(CAUSE_STORE_ACCESS, U) | \
>> +                         BIT(CAUSE_USER_ECALL, U) | \
>> +                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
>> +                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
>> +                         BIT(CAUSE_STORE_PAGE_FAULT, U))
>> +
>> +#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
>> +
>> +static void vcpu_csr_init(struct vcpu *v)
>> +{
>> +    register_t hstateen0;
> There not being an initializer here, ...
>
>> +    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
>> +
>> +    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
>> +
>> +    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
>> +
>> +    /*
>> +     * VS should access only the time counter directly.
>> +     * Everything else should trap.
>> +     */
>> +    v->arch.hcounteren = HCOUNTEREN_TM;
>> +
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
>> +        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
>> +
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
>> +    {
>> +         if (riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia))
> (Nit: Style.)
>
>> +            /*
>> +             * If the hypervisor extension is implemented, the same three
>> +             * bitsare defined also in hypervisor CSR hstateen0 but concern
> (Nit: "bits are")
>
>> +             * only the state potentially accessible to a virtual machine
>> +             * executing in privilege modes VS and VU:
>> +             *      bit 60 CSRs siselect and sireg (really vsiselect and
>> +             *             vsireg)
>> +             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
>> +             *             vsiph, vsieh, and vstopi)
>> +             *      bit 58 all state of IMSIC guest interrupt files, including
>> +             *             CSR stopei (really vstopei)
>> +             * If one of these bits is zero in hstateen0, and the same bit is
>> +             * one in mstateen0, then an attempt to access the corresponding
>> +             * state from VS or VU-mode raises a virtual instruction exception.
>> +             */
>> +            hstateen0 = SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
>> +
>> +        /* Allow guest to access CSR_ENVCFG */
>> +        hstateen0 |= SMSTATEEN0_HSENVCFG;
> ... doesn't the compiler complain about the use of a possibly uninitialized
> variable? The variable also wants to move to the more narrow scope.

Hmm, for some reason it doesn't. Anyway, I agree that it would be better to move
it to a narrower scope, since `hstateen0` exists only when RISCV_ISA_EXT_smstateen
is supported.


>
>> @@ -32,6 +98,8 @@ int arch_vcpu_create(struct vcpu *v)
>>       v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
>>       v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
>>   
>> +    vcpu_csr_init(v);
>> +
>>       /* Idle VCPUs don't need the rest of this setup */
>>       if ( is_idle_vcpu(v) )
>>           return rc;
> Do idle vCPU-s really need to have vcpu_csr_init() called for them?

Agree, there is no any sense. I will move the call of vcpu_csr_init() after
is_idle_vcpu() check.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:08:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:08:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227167.1533503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq793-000547-4d; Wed, 11 Feb 2026 10:08:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227167.1533503; Wed, 11 Feb 2026 10:08: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 1vq793-000540-27; Wed, 11 Feb 2026 10:08:29 +0000
Received: by outflank-mailman (input) for mailman id 1227167;
 Wed, 11 Feb 2026 10:08: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=wgMA=AP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vq791-00053u-SJ
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:08:27 +0000
Received: from mail-oa1-x2e.google.com (mail-oa1-x2e.google.com
 [2001:4860:4864:20::2e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9a9ddf75-0731-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 11:08:26 +0100 (CET)
Received: by mail-oa1-x2e.google.com with SMTP id
 586e51a60fabf-409521ba360so1091671fac.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 02:08:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9a9ddf75-0731-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770804505; cv=none;
        d=google.com; s=arc-20240605;
        b=lH0nrhT+Zobz0NYUeAvQPGDXMnNSfmb8YOpwAsDGgNgAKO/ARsCy+Q6VPr1e5a1vQ2
         LcJH7sFIoYHJ+xpplKstkaU0gmT3uudQRTgVF7W7YU0QMWRFc8d4unhPsQ5FHszUnjeS
         699N4MZsMo5x/44pdidCE0q7NbRs7FItgwFACeZs2yflVTqj4P2UrW8X7ObLc9ftlDc1
         9NeL31RO3Uk/zQ/CwQEdheQK4vUGaNgZ1M87Mtvug6lRjE5wLIc7QgrcwhnXOLKeaBx0
         nKVPqvWcNo7PGjDFRAEq+dE024kYCQfcbJAYFER69sv1QwB/JFHWAc9yKjbd6QyWJbYV
         ZFWQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=fqM7RKB6quCku8tMvd8VdIKk5k371oawDTVd6sVsdV4=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=fdb1o4x6cLZcF1e3P+2QnDkKRl6wPEtS4x2rk7eZADjbhHXKmc0HGtHAFZ134NWAwc
         1rDuMOQpEflQh/PGZGGQiWkiWJDNJEydXJ9Zv6/+zlbiEiNd/igpOXweDH2uy9UgUKio
         eguA0F0edpmi+SyMeawJPxKeKxzt1Is5F7NnBysQsVfWS/yRrJCeBQFVUtotXy/cNhiE
         S8M40FRSpx9m2wVtDN6Z8bxe00lDBWffZGqFkYzb0MzeGcRZ7vuH5i4rk9M4soy2EQj+
         bgKqingISyU/cjrWb0Vo2PLil/4OEnmCO70WTvgpCJvOok+woXUi3A2gvSpL077aZnwP
         1BNQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770804505; x=1771409305; 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=fqM7RKB6quCku8tMvd8VdIKk5k371oawDTVd6sVsdV4=;
        b=FM/wttRLS7YHsXgsC4PiGtk1tQyNGayn1V3oa4nBm58C7O0j8+1XI063gTANz/LpsZ
         OLamR+SMqOH7OfjIo0+zUTH1D501HTN7xGSd5lwQXYpb6JxQScdR5hmz2qgksuNRLJM5
         e+0qc6NcDK7hoaIEIPrm9tR+QfBJ0K51xNmAhiy1fMWKjH08QrVM4/+Qmm2asGjzGvW4
         D/SpZMRIczwghpNCUhZTrCLlQWgcQNUT1iauh4ORCNr1chMMMimbewZVrgApn2zJ0UB/
         luwwa9weDnJ8SapZgza0o4cEBxh3lYS3RwVNXnl77EYMvPTwJPsp6ouEtx1Z5gYm/U5K
         JUJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770804505; x=1771409305;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=fqM7RKB6quCku8tMvd8VdIKk5k371oawDTVd6sVsdV4=;
        b=G6A3///G6IaDMxpT8geTUsbwlse+LxhE9cat2xSkQ2a5zxN2fnRirTVkW/VdEVTInh
         3EodgcV1mEL9NsNI6/WnP5qaooW4p7mO4IUNprEov508Hemko2paQfJ0mNneH3yP85IL
         lzifwErINGt1tHQ1Lbg7iynAGtkl5pGAwEeo1nwAIIoqjYcQYt9aH4kfQjIaMf/4zxZ6
         ydTiXSUUMQpr2w6Z2Zwkj66NjE6rpL/DtGnPmSeOffZYaoWwJXYciEIkLfO6v9uWZ1jF
         kQtP/p2WmJMwQM2eWiGsNLM+bzzlzQmuSDwO52/yIypMaPjYdopMDJzusV2MHnwPlstI
         WTyw==
X-Gm-Message-State: AOJu0YzGav+io2ZFCEnQUWUFFjmWdb/7144UehKv08Ii+BUTUz3VrxE3
	Bad3UuRsiEg7fKYsxRuZMkqAXAsMX78Te5YRuSUCOmptZLrYhcfBpKmOtVoKLP988UcVhVBJjXU
	m4NMIG5RF4Reh7HzW6HCM+1Cc58TmD+ZehaEdSaZItg==
X-Gm-Gg: AZuq6aK9PXdRVaMpzXhPr528r51/ihjCf4kUBiKO1FMNBF89ix2CBnYknO5sdEwQDB5
	/EOxejJtvfiR2rq6g9xi4exlJ7OOTTABY/2OTSrOAKBZatSafEJD3PxHQ4OUTghFG0jZSRWtCFm
	4+qWcfqQ8tRNQAP0qFwSei21Lbyv29HyKltl219S95qs/ptcV2jLNiiOoxhyaQvhpifiiqV4v8o
	MiOER+EyuwrMrqOuX84UmP7mkNablBzj1ToF9P6EreIFAAW2o3EEzxA8VhH1vvwx7j2x0AiprhR
	CmQTOs17NoJCa6SK5F4AkYxPWQZkF9fYzc2eWQ==
X-Received: by 2002:a05:6870:9e92:b0:409:4c35:a3ca with SMTP id
 586e51a60fabf-40a96c96a6amr9426993fac.15.1770804504660; Wed, 11 Feb 2026
 02:08:24 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <94e10f14d499d7e584fb0fbdd28d0288bb5831bd.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <94e10f14d499d7e584fb0fbdd28d0288bb5831bd.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 11 Feb 2026 11:08:11 +0100
X-Gm-Features: AZwV_Qitgxl6iN38jOoWc9xfa70pVbIFnz2caY86PLL3MRmbfLCo_xzbuaynqBs
Message-ID: <CAHUa44EN19q4NBteEY12g0w2TZE4apfo=a0Lu30ufjTDYr5DLw@mail.gmail.com>
Subject: Re: [PATCH 11/12] xen/arm: ffa: Add MEM_SHARE page diagnostics
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> MEM_SHARE failures in get_shm_pages() are silent, which makes malformed
> ranges and page mapping failures hard to diagnose.
>
> Add debug logging for page validation failures:
> - descriptor validation failures (unaligned, range short/overflow)
> - per-page mapping failures (unmapped GFN, wrong p2m type)
> - address overflow detection in range walks
>
> Ratelimit temporary reclaim failures and log permanent reclaim failures
> as errors.
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_shm.c | 73 ++++++++++++++++++++++++++++++++------
>  1 file changed, 63 insertions(+), 10 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index 905a64e3db01..89161753e922 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -169,6 +169,12 @@ static int32_t get_shm_pages(struct domain *d, struc=
t ffa_shm_mem *shm,
>      uint64_t addr;
>      uint64_t page_count;
>      uint64_t gaddr;
> +    int32_t ret =3D FFA_RET_OK;
> +    const char *reason =3D NULL;
> +    unsigned int bad_rg =3D 0;
> +    unsigned int bad_pg =3D 0;
> +    unsigned long bad_addr =3D 0;
> +    p2m_type_t bad_t =3D p2m_invalid;
>
>      for ( n =3D 0; n < range_count; n++ )
>      {
> @@ -176,34 +182,78 @@ static int32_t get_shm_pages(struct domain *d, stru=
ct ffa_shm_mem *shm,
>          addr =3D ACCESS_ONCE(range[n].address);
>
>          if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
> -            return FFA_RET_INVALID_PARAMETERS;
> +        {
> +            ret =3D FFA_RET_INVALID_PARAMETERS;
> +            reason =3D "unaligned";
> +            bad_rg =3D n;
> +            bad_addr =3D (unsigned long)addr;
> +            goto out;

The extra help variables clutter the code, and the debug message
requires one to read the code to understand it. I'd prefer separate
prints for each error location. For example:
gdprintk(XENLOG_DEBUG, "ffa: mem share pages invalid: unalinged range
%u address %#lx\n", ...)
return FFA_RET_INVALID_PARAMETERS;

It should result in fewer lines of code and clearer debug messages.

Cheers,
Jens

> +        }
>
>          for ( m =3D 0; m < page_count; m++ )
>          {
>              if ( pg_idx >=3D shm->page_count )
> -                return FFA_RET_INVALID_PARAMETERS;
> +            {
> +                ret =3D FFA_RET_INVALID_PARAMETERS;
> +                reason =3D "range overflow";
> +                bad_rg =3D n;
> +                bad_pg =3D m;
> +                goto out;
> +            }
>
>              if ( !ffa_safe_addr_add(addr, m) )
> -                return FFA_RET_INVALID_PARAMETERS;
> +            {
> +                ret =3D FFA_RET_INVALID_PARAMETERS;
> +                reason =3D "addr overflow";
> +                bad_rg =3D n;
> +                bad_pg =3D m;
> +                bad_addr =3D (unsigned long)addr;
> +                goto out;
> +            }
>
>              gaddr =3D addr + m * FFA_PAGE_SIZE;
>              gfn =3D gaddr_to_gfn(gaddr);
>              shm->pages[pg_idx] =3D get_page_from_gfn(d, gfn_x(gfn), &t,
>                                                    P2M_ALLOC);
>              if ( !shm->pages[pg_idx] )
> -                return FFA_RET_DENIED;
> +            {
> +                ret =3D FFA_RET_DENIED;
> +                reason =3D "gfn unmapped";
> +                bad_rg =3D n;
> +                bad_pg =3D m;
> +                bad_addr =3D (unsigned long)gaddr;
> +                goto out;
> +            }
>              /* Only normal RW RAM for now */
>              if ( t !=3D p2m_ram_rw )
> -                return FFA_RET_DENIED;
> +            {
> +                ret =3D FFA_RET_DENIED;
> +                reason =3D "p2m type";
> +                bad_rg =3D n;
> +                bad_pg =3D m;
> +                bad_addr =3D (unsigned long)gaddr;
> +                bad_t =3D t;
> +                goto out;
> +            }
>              pg_idx++;
>          }
>      }
>
>      /* The ranges must add up */
>      if ( pg_idx < shm->page_count )
> -        return FFA_RET_INVALID_PARAMETERS;
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        reason =3D "range short";
> +        bad_pg =3D pg_idx;
> +        goto out;
> +    }
>
> -    return FFA_RET_OK;
> +out:
> +    if ( ret )
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: mem share pages invalid: %s rg %u pg %u addr %#lx=
 p2m %u\n",
> +                 reason ? reason : "unknown", bad_rg, bad_pg, bad_addr, =
bad_t);
> +    return ret;
>  }
>
>  static void put_shm_pages(struct ffa_shm_mem *shm)
> @@ -759,8 +809,10 @@ bool ffa_shm_domain_destroy(struct domain *d)
>               * A temporary error that may get resolved a bit later, it's
>               * worth retrying.
>               */
> -            printk(XENLOG_G_INFO "%pd: ffa: Failed to reclaim handle %#l=
x : %d\n",
> -                   d, shm->handle, res);
> +            if ( printk_ratelimit() )
> +                printk(XENLOG_G_WARNING
> +                       "%pd: ffa: Failed to reclaim handle %#lx : %d\n",
> +                       d, shm->handle, res);
>              break; /* We will retry later */
>          default:
>              /*
> @@ -772,7 +824,8 @@ bool ffa_shm_domain_destroy(struct domain *d)
>               * FFA_RET_NO_MEMORY might be a temporary error as it it cou=
ld
>               * succeed if retried later, but treat it as permanent for n=
ow.
>               */
> -            printk(XENLOG_G_INFO "%pd: ffa: Permanent failure to reclaim=
 handle %#lx : %d\n",
> +            printk(XENLOG_G_ERR
> +                   "%pd: ffa: Permanent failure to reclaim handle %#lx :=
 %d\n",
>                     d, shm->handle, res);
>
>              /*
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:16:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:16:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227197.1533526 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7H6-0006oA-2Y; Wed, 11 Feb 2026 10:16:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227197.1533526; Wed, 11 Feb 2026 10: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 1vq7H5-0006o3-W3; Wed, 11 Feb 2026 10:16:47 +0000
Received: by outflank-mailman (input) for mailman id 1227197;
 Wed, 11 Feb 2026 10:16: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=wgMA=AP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vq7H5-0006nx-1K
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:16:47 +0000
Received: from mail-oo1-xc30.google.com (mail-oo1-xc30.google.com
 [2607:f8b0:4864:20::c30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c408716f-0732-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 11:16:45 +0100 (CET)
Received: by mail-oo1-xc30.google.com with SMTP id
 006d021491bc7-6740e0bd21bso329608eaf.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 02:16:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c408716f-0732-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770805004; cv=none;
        d=google.com; s=arc-20240605;
        b=Gp7d91ObsQDWy1Y1WysZNXQS8eknDP42F99LvuG6z58SpsdOjeNG7FPD2bXIACFi9M
         jdjCs68sIM1qosD1EQ+aXE6uBQKwpuOx2uKfBhcVOSWZ2uQBtaPw+O4nqhfmVCEdf6ry
         Nhvr7HrWKDiPW1OIPXjhAoLWSWmO8YfYKxO8LlGnxOc2vKNQ/Z77+/p3kLwU/jC1Pf4j
         1LhiqaCDhcUHbwzp2sbXFl7R1gYWpzxM2IXo7Nzr1p2+huty7/blaVZAuXssk/rFtLow
         o7yrwZpaOzn/4jMKjU5yjRXhMzXoIQGzmGE3psw/KpwQJj6TM+4CKcNHMgYdpod4grcx
         G5BA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=lBzEpI6yzSuiNuN55EcuEkswXj0DVLUl3gKhgokc9OU=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=iV4ZS8vB00NInEoZr9MGfh16FKo+/lpC+8s3v7A2t453CmQSVcNXCV9j/MbvKo1IEL
         /rWk4BHGMqDK8c/ZZmNTa/orGam46MA3f8RReOyoISNtT9/+JDDKLVmf75MGNnHWqYe0
         9biPnLmiecqKZRMU3PXB7QL7rVF0Pcm5D1l3a2qt6vXuEwaH2NwDwy/wB0SGt+gsRLaj
         TBt5LLpq8RHpbcvNtChmlvg8DgWyuacsJMlJjHP5u8uK2biildzhlfQdis5NEQes0feQ
         O5335ci32QpoG4/kmG/ML9q5UnmDj9WUuz7F9AjaqnCQBVPwfmJ1MGbHmghFLSziqPop
         EBGQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770805004; x=1771409804; 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=lBzEpI6yzSuiNuN55EcuEkswXj0DVLUl3gKhgokc9OU=;
        b=wEC7UBsnnTGljP+sXvsQgZpXbQk+O8VhyI5gNru7bNNsYVmpHz22J/EYjbVtnt1g97
         efEPE6QPVqR4N1Ud0PRg4bLnbjvTS1qkHgNGTZYGoPP8AngQZXI7Ukt6ElsLfPqmeiRS
         PsXykfwKNcXkO8Az8g277oClBBJKRCBFRCFJVV5Nr4C0pQjOtmdR9zFPGbHWUVPlj/3c
         8U/JWfB26vlfS8WrpuiDtNPMcuUK5NtiPdkjj2pEI61dnSqktFVoTixPYWeX0hHdC/jG
         QFCFNd2w85ZMT+slTXRQLejOb526I4uhnHKQmuGUM1/3wdEHu96DFXjgmyf0MQ88tz81
         /LYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770805004; x=1771409804;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=lBzEpI6yzSuiNuN55EcuEkswXj0DVLUl3gKhgokc9OU=;
        b=efnC8ADvtgIrvw3E+kP0oDWHndonsK5GTzIejhaW8k7wiIpA+lbVv3KFo2I9yoYQas
         /XY6MgYZerBrh21wPvIgpAENENVm3cD62xOt50DinjehBQg83kCGGdgQ78bXjsHSOpcL
         b7xtl7Ag3BFwHTAp/NKVUtEI8kgBChREhP5KXeWcA/sAH/Y/uOdTHlQIwLinDYbKSK2E
         CfBj+gJa1mzIRPNwcowAfTbikv77Wj8NnrgKMUS4TZuAIXprGMzAeNb3BnKP9ZR5NRM3
         Ds7zTsHi+woKF35Nvn+NpQXlerOM/P/8z0WByilaXpl/o24WlCzpSnicFZC7U6+dOb8O
         XGLA==
X-Gm-Message-State: AOJu0Yzy5vQ8pEFXrhgQEV8OQ63tNRveABivJhpQgqdw/F2d3aZB+mnS
	Ydi9obQqpM4LbYaJYLDmluvsNbRhWW4Lwnqe2FcIrqCpw/kKmMR/fbipiXnH/5xr2hr/z1HK7mD
	fjSoX/3SuzV5qGCBE3TWOtOKV8T4FwZ5MOel6sCbQOlNKGmvGVKyx
X-Gm-Gg: AZuq6aKifq7j4o5BLufO0SVKQR8Doqod6ZnIAhc+YrsiGkxo7YbqRnYAHGSR5x3C0M+
	NSB5wnD5AxUNbKql+AE8wRRFRmiCZjGIC77+5EiiSBSTQewO+SfphbUBHVscQkR//rm6mx24XQ/
	r4sni1QPPLZ4zamds+YSEzpHKCGAIKd2oFG1JMuv8xCjqVgBMV3MX60b+FMI9lG74iKMbbjcOx2
	Cq2aiK3mJ5Ube1K+3khiilkHpOkEeAEIMhAkLVGuRJoiCINo99WD/zTvtGQE9kpQhq0IEN/eEny
	RWSBZ1ENr4zzOkEULqDwgsuUzwsQ07X4YuDDDw==
X-Received: by 2002:a05:6820:210a:b0:663:a6e:49a7 with SMTP id
 006d021491bc7-6747f385ef7mr573545eaf.19.1770805003715; Wed, 11 Feb 2026
 02:16:43 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com> <209e5474e236737dd13e0f7ff8120b05cdb7eabe.1770115302.git.bertrand.marquis@arm.com>
In-Reply-To: <209e5474e236737dd13e0f7ff8120b05cdb7eabe.1770115302.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 11 Feb 2026 11:16:31 +0100
X-Gm-Features: AZwV_QipjR6ieZFOpUfyFCXBksh_L80RmeFuP26ja6kDoLgiLqXMLWph2x0RSdA
Message-ID: <CAHUa44Ebe03R2nTzUW9tDx5hPC6trZCWOdr94ApawFs20chdWw@mail.gmail.com>
Subject: Re: [PATCH 12/12] xen/arm: ffa: Add message parameter diagnostics
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 Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> MSG_SEND2 and direct request validation failures are silent, making it
> hard to diagnose invalid IDs, oversized messages, or unsupported
> destination types.
>
> Add debug logs for parameter validation failures:
> - invalid endpoint IDs
> - oversized messages
> - unsupported destination types
> - invalid sender/receiver combinations
> - ratelimit MSG_SEND2 busy failures to avoid log flooding
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_msg.c | 45 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 45 insertions(+)
>
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index 928f269f6c3a..cc273c9a8e80 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -4,6 +4,7 @@
>   */
>
>  #include <xen/const.h>
> +#include <xen/lib.h>
>  #include <xen/sizes.h>
>  #include <xen/types.h>
>
> @@ -100,6 +101,7 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_r=
egs *regs, uint32_t fid)
>      if ( !ffa_fw_supports_fid(fid) )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> +        gdprintk(XENLOG_DEBUG, "ffa: direct req fid %#x not supported\n"=
, fid);
>          goto out;
>      }
>
> @@ -108,6 +110,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_r=
egs *regs, uint32_t fid)
>           (src_dst & GENMASK(15,0)) =3D=3D ffa_get_vm_id(d) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: direct req invalid src/dst %#x\n",
> +                 (uint32_t)src_dst);
>          goto out;
>      }
>
> @@ -115,6 +120,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_r=
egs *regs, uint32_t fid)
>      if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: direct req to non-secure dst %#x\n",
> +                 (uint32_t)(src_dst & GENMASK(15, 0)));
>          goto out;
>      }
>
> @@ -166,7 +174,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, con=
st void *src_buf,
>      /* This is also checking that dest is not src */
>      ret =3D ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
>      if ( ret )
> +    {
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 lookup failed: dst %#x ret %d\n",
> +                 dst_id, ret);
>          return ret;
> +    }
>
>      /* This also checks that destination has set a Rx buffer */
>      ret =3D ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
> @@ -199,6 +212,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, con=
st void *src_buf,
>      /* receiver rx buffer will be released by the receiver*/
>
>  out_unlock:
> +    if ( ret )
> +    {
> +        if ( ret !=3D FFA_RET_BUSY || printk_ratelimit() )

Shouldn't this be && ?

Cheers,
Jens

> +            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to %#x failed: %d\n",
> +                     dst_id, ret);
> +    }
>      rcu_unlock_domain(dst_d);
>      if ( !ret )
>          ffa_raise_rx_buffer_full(dst_d);
> @@ -226,7 +245,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *r=
egs)
>
>      ret =3D ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
>      if ( ret !=3D FFA_RET_OK )
> +    {
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 TX acquire failed: %d\n", ret);
>          return ret;
> +    }
>
>      /* create a copy of the message header */
>      memcpy(&src_msg, tx_buf, sizeof(src_msg));
> @@ -238,6 +261,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>           dst_id =3D=3D ffa_get_vm_id(src_d) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 invalid src/dst src %#x dst %#x\n",
> +                 src_id, dst_id);
>          goto out;
>      }
>
> @@ -246,6 +272,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>          if (src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1))
>          {
>              ret =3D FFA_RET_INVALID_PARAMETERS;
> +            gdprintk(XENLOG_DEBUG,
> +                     "ffa: msg_send2 invalid msg_offset %u (v1.1)\n",
> +                     src_msg.msg_offset);
>              goto out;
>          }
>          /* Set uuid to Nil UUID for v1.1 guests */
> @@ -255,6 +284,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>      else if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_2) =
)
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 invalid msg_offset %u (v1.2)\n",
> +                 src_msg.msg_offset);
>          goto out;
>      }
>
> @@ -263,6 +295,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>              src_msg.msg_size > (tx_size - src_msg.msg_offset) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 invalid msg_size %u offset %u tx %zu\n"=
,
> +                 src_msg.msg_size, src_msg.msg_offset, tx_size);
>          goto out;
>      }
>
> @@ -272,6 +307,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>          if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
>          {
>              ret =3D FFA_RET_NOT_SUPPORTED;
> +            gdprintk(XENLOG_DEBUG,
> +                     "ffa: msg_send2 to SP not supported\n");
>              goto out;
>          }
>          /*
> @@ -288,6 +325,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>
>          ret =3D ffa_simple_call(FFA_MSG_SEND2,
>                                ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0,=
 0, 0);
> +        if ( ret )
> +            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to SP failed: %d\n", =
ret);
>      }
>      else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
> @@ -295,7 +334,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *r=
egs)
>          ret =3D ffa_msg_send2_vm(dst_id, tx_buf, &src_msg);
>      }
>      else
> +    {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 to VM disabled (dst %#x)\n", dst_id);
> +    }
>
>  out:
>      ffa_tx_release(src_ctx);
> @@ -311,6 +354,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, uint3=
2_t fid)
>      if ( !ffa_fw_supports_fid(fid) )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> +        gdprintk(XENLOG_DEBUG, "ffa: run fid %#x not supported\n", fid);
>          goto out;
>      }
>
> @@ -322,6 +366,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, uint3=
2_t fid)
>      if ( !FFA_ID_IS_SECURE(dst >> 16) )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> +        gdprintk(XENLOG_DEBUG, "ffa: run to non-secure dst %#x\n", dst);
>          goto out;
>      }
>
> --
> 2.50.1 (Apple Git-155)
>


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:47:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:47:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227220.1533549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7kN-0002hg-MI; Wed, 11 Feb 2026 10:47:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227220.1533549; Wed, 11 Feb 2026 10:47:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7kN-0002hZ-IW; Wed, 11 Feb 2026 10:47:03 +0000
Received: by outflank-mailman (input) for mailman id 1227220;
 Wed, 11 Feb 2026 10:47: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vq7kL-0002Tg-FQ
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:47:01 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fdfe9944-0736-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 11:46:59 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7844.namprd03.prod.outlook.com (2603:10b6:303:271::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 10:46:55 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 10:46: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: fdfe9944-0736-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c2JmdyeZs3AnSln0jDWwMWCZDyJgGpkntpGiQS8VzfIu2kH3qYyLkR/fPhs+L5WhFQsgPcJKCrZQaoKnz3xiZN80LeHahGRds1S77Qh6qRfnYz7bCPPeJOyqbg3CWfTgsCl/HW6QeDXPA1mbVnrtLoaNV0DbsoaGkfy5Dby8J40ngI3KAypMaUtmabDoWNcXAZ1QjO6bLtTHRKD43/H8BLlcmQwkENINaWKwOL9gsgHUtEelKrRIbPhk/SlKJwPIjMOkrp1b4cRsddtfjIuTSjITTv494UP5ufempN+s2OcTsPLBfjQIPrDbH0xah9jH3MqWyIpBPU7UdHQxjbe0TA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wFEnF/B/qAAmu6sYYVBneacC7PqpTZjrKWQURe561Zk=;
 b=GqJAKzafE8HvK4ztE6wm/cDwuFbJll9WW4/QWe34g9x1TMrDd8nA/iUXX0F+unX6YNYE0WrBxvSsdp3LrKVeiEZfMOngi0UXzop9yTYue+H5psRZkuSvRaw+uRnZFeaNvM7AyWHEOaxPGh1cad8V0T9cmt/4ADiyt3SRVn7SNYWKwbep8DzAi6nbqLjGjGz0RaOtgox02nyqh7ne232NfuKMkuTsXXsCK7TGWYlVO4Dh//O/YkcMZosNUB6NdG4Dim4BaSZQ0Bd8nIRs15Ca8gKPVKs/y6UnsY4mAyM48ZHW2TdRiCYQfLbywRVjwqK9KX7jmbxRKGWtbHuHlr015Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wFEnF/B/qAAmu6sYYVBneacC7PqpTZjrKWQURe561Zk=;
 b=wX+o51hyGgwnnxMVDia0XbWChJNzYhchTD3p3VshWLzduQwYpYIabU+IlISCe4Yla4voOWUUTXicDpbX3iPnG1wx1PzZS30Z/wUADIn7H1fHQHOGOWAd1lgYnzOc6ATNhxqI49gNg/Ws5X2T1dHsVViCqwmS6LvhnlSuHVEm/74=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 1/5] xen/x86: always consider '/' as a division in assembly
Date: Wed, 11 Feb 2026 11:46:34 +0100
Message-ID: <20260211104638.7938-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260211104638.7938-1-roger.pau@citrix.com>
References: <20260211104638.7938-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0028.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB7844:EE_
X-MS-Office365-Filtering-Correlation-Id: 426d5362-b009-448b-34cb-08de695adf4f
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?VnBVSG5Kbmw1R0hiWU41TGhMWDBZa0tSVVZSa3RKV2gyNzFUNlFveXY3K0Y0?=
 =?utf-8?B?S3pxVzhYaGE4alNBNVdLbzR0Q0xmSUxFaTVDQXhpamFpTUIzYnFad2tNdTVy?=
 =?utf-8?B?M2I5M09WN0Z3MC9xY0xSRmorQVJBdng5eVBVSmJSZmIzaVdNMHpxeVZQdE03?=
 =?utf-8?B?RlBHa3NjVHhnNDZPVEdJbVc4TEJBTFFMRjRnU2tiS09TaktiNzR2TmZxVktv?=
 =?utf-8?B?U1dMWnYwOVRYc0YvaEUvcHd4WjFXS0hvVzRqcFFFZERnNVJGVmVpcDdVcnda?=
 =?utf-8?B?MEdrdjNoYld6cHZiZnNVeGJwUUNtQTgrMmwzaXFncjVoNHpQdUpadU1LblVy?=
 =?utf-8?B?eDBhd202RmtwTVQ2UjRzUzdLTCt2bzB5TytYZWNuRU8zR0FPeExkU3MxeXBy?=
 =?utf-8?B?VXorL01pYjRwclcvK2YzMHlubDIxTnpVMi9TWW1yd3M5QndvTTNNWDRENXNB?=
 =?utf-8?B?TFVEd0U4UlNnTGNQRTR3VzNMbzFvTFl5c05DTEx5QWRhUlhpRjAxKzg3MGRJ?=
 =?utf-8?B?WDlyZGR5VnlkVG9XNjViazhlSXphNUhYZzlvTCtnZ3JqZDJISGhDcGZvSnBj?=
 =?utf-8?B?WDRqRVZlSlBCMExvNVI2dEswMk0ySU85dFRUZVgyTlY3eFhKdmxJbkwrdEVW?=
 =?utf-8?B?Q045ZEpCd1lUWUJzRFF6MkdXM0tJNkZqbUxVWitpY1JyOFNpemRzVjRLc3Jt?=
 =?utf-8?B?L09HeG5tODFGcG8rVXRsby9pWFIxOGFYQUJwKzd3SXd0ZkNPWWpSeEx3djRZ?=
 =?utf-8?B?emsxVFdUbFM1MFZyOC9JaGk5Yk8vNHo5UDdLbGJjWFpMWGdETndkbzFVU092?=
 =?utf-8?B?WUNZUEJwTFcyeE5zMis5dUZwelN3VEtNTlFkNUoyQWM0dzFZZ1J1c25MS3RM?=
 =?utf-8?B?VlVvU2tPSkVnWjVtb0g4SkNkUkhHOFZ5TmRaYW9GTmhNaXhhbjArS2ZpY2Mx?=
 =?utf-8?B?Q0dibHFPSDhSNElMN2hQekhlVVplYW83UkVxU1hQb3lPenpldTYvUnRYZ1ZW?=
 =?utf-8?B?RFgyTGd4UU5Rb0ZNemZsT29wZXNRNGpDSnJiME12dURTT1YrQzBZS3QvWUlt?=
 =?utf-8?B?MDJHaFdadkNNL0psR09JS2pRQ0h2L2N2RUxrVXlWM0pna2FSVFlCNmpkc2hV?=
 =?utf-8?B?U244TTlHN0lTUnZzRTBselRkSUtlZ2ZnSXZRai9XUXlKcS9EZEx2LzZTYnB0?=
 =?utf-8?B?OERHTHZzZXpJeUhiTWlhV1pwcU5naXo5WmNYUm1wUTJMaHI4K1ZJTTd5cUEz?=
 =?utf-8?B?c05yaDJWd21lRGp4MjNzVVlhRGMvRWN1eml1dEhvT1RYc001OEhHeGhlNEhh?=
 =?utf-8?B?RGpER2lHeGFxd1VJTi9PSklVRmtuUlZKVzV2SjdBUXdYYnhXMkNxK1E3aUNG?=
 =?utf-8?B?NDVsRGh3S2dadXVkWlo5Wi9kb082NWIzVlp6UGNzZDRoWTZSalRSRVVHNkoy?=
 =?utf-8?B?Y3RFS1lXSThmUGV3RnloWmNaV3dxS0JJQVVjVEtLa1R5V2ZEKy85Zy9tVDl3?=
 =?utf-8?B?ZWpXdEJXNXlDUEExdCt6a01qMkpialRpWXpSV0RlR2dwQUNtSGVHdlRZaHVF?=
 =?utf-8?B?dEVlclBDMmZEbWhTZFZTbm5DVDhxS0x0WGVzeTRtbEM5Y2ZtakxPdGRjaW1J?=
 =?utf-8?B?SmpJOVBORkVLOUxDdnFkNXgyVUFFYkwxUXlaVGl5S2kxcDhwTG5kbFRPbFNv?=
 =?utf-8?B?QzMrSEsyVkR1U1BSOUN5dUQvT2JySnNmck0zbUlIdTNIVGlLTzdrdjZid3BC?=
 =?utf-8?B?WS9PT3JoWlVtWlRxUzRLYkM1V3B6OWo0UWVVSUU1N3B3bWlsSFRtQlc4TnRV?=
 =?utf-8?B?RmUza3dnd2NWR3c3ODd6SnpFRjdsV2ZXUnZkc21tMGpVZVh1VHNjTGlKb0RU?=
 =?utf-8?B?QmJ5bEVSOU9XeitxUkZ5ZUJpYk9tTHQvdzFUaURybS9IK3VyQlRxRVNGZXFF?=
 =?utf-8?B?YnE1a1QzVUcrVC90RHBlWEVQbHlxL3o4eXkrcGZud1Q0VnN6aGhWcXdIeXJU?=
 =?utf-8?B?K2ZvMjhiZXU3UWk2dkVRMkMxNHdpSG5tdDE1N3F3NnNmaDdpd28rbXdOZE05?=
 =?utf-8?B?QTlFa0VXR1BPUExBRlY3ZkFkNmptZnV2ZDV1bHFncTNhR0lDSWhlQmlBcjB3?=
 =?utf-8?Q?UFZ0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QUZJdGdYb2NxWGVTMDN1WkVlYVhIamMwcThDU2s4VVNORlZTZUprK2ljZUhw?=
 =?utf-8?B?UUVvZ0dsejZ4b0tZT3c5QXFKZ3E2T2lPRDVlUXZjQ2xUYTR1ZlVJVlZkcG5Y?=
 =?utf-8?B?UWFiOTNwNzJOU0VWOGQ5UVIvZUVCeVZlTUpGRUxhYWJ1cmxHV0pyUnFYeTlU?=
 =?utf-8?B?S3YzNXk2VkxRLzdOT3ExN09BdnhYcWRMeFd0SUExUWdEUjVmTHNjMEpLQnpX?=
 =?utf-8?B?RFZtRE5oeUhFMnNNVDA0UjFoU0xpL1BGM3UzYzFkNm4zbXlld09jbXZSUXNY?=
 =?utf-8?B?ZExXWUNidU1SZ3krTEdETlBKaG5KOXEvV1hQdmQ0QnRPU0VpRE1YTWZ4TjVD?=
 =?utf-8?B?S1k0V2FvV0kxcEhXellNZ3VTVExlQlRVWmxuckFNQXFqejhRNzVSMURYNUZN?=
 =?utf-8?B?VmIxL0NUUEJWODRZU29KdDdrcFFoSEdGdkdtaTI1NURRd0laZjg5VVZCV0xT?=
 =?utf-8?B?OEt2OEJka2dXN3o2R2U2dlNYeCtrS3E1ME80VDNUaFhQMXdsQVVkdWk5eGZU?=
 =?utf-8?B?M28zTmg3c1RmcGRzVHRXblRrWGZXb05ORHZEQW5KVzYyZVZaQlYrd25XOVYy?=
 =?utf-8?B?d2plcWV3dGxSVlVaN0NpTFJSaHZaN250cjBqMHNzakZ2UjVHdno3T3JjU1ov?=
 =?utf-8?B?UlhUclpoc2RQdmh6SXc5UE96WXk3SWdSTCs2Zm9ta3lZUVFSaWdnZXg4aHZU?=
 =?utf-8?B?Zks2bnJQcGpCREcrU1o5THM0cDRQMUg4V2prL1Bpb2lDaDlNNmpxMHBzYW9E?=
 =?utf-8?B?SDRkRS9pcHBnYmNNNSswN2hHVzBITFJNcG9IL01Beml2SDBOUC9DL2hBdTZ4?=
 =?utf-8?B?NTNNTFprVTJYMy9QZVpzWmUxejJaYlZBV3RRQ00vdGxlNzVMM2h2US8rcTV0?=
 =?utf-8?B?K3A2WkhtTzRya205NGNGQ0Q5MXBzZGY3UnlrWW5CZHowMWQ1cGpFMTRNNjQ1?=
 =?utf-8?B?MEYvMlRYZU1kcjF1N3pDcVBUTURDbTNhL3lLQmdUeGdOZnlqOXF3V0VqREFr?=
 =?utf-8?B?TTBiRkdBV1BKWmdQNkpCMUE5Yjl1SUJEbXl5NDFqV29JY2pFUFkrUWZ1eWhQ?=
 =?utf-8?B?WVpkRXEwUWQwdWJKaHljaFRlYXlVUzV0RTBER3J6QmhtY1dMeGV0NmFtZjlP?=
 =?utf-8?B?RlJKVjBXbFEzOFNQSjZvbnBrdyticHhmZWpuWkpvdk1sbEtnRnVRTkV2Tm1T?=
 =?utf-8?B?cnFtNFpGWnIxWEJOYndqdGdYejJ0N0lveXlqcVYyYVEraE1yQnhOWVBjblBD?=
 =?utf-8?B?R0RGeDFqQnVheUVXNkJaM05hZnpJaUoxRHVEYURVVWVIb1NZenVTUmVTS3FP?=
 =?utf-8?B?clViZU83WW13bHlRcW5SZElGb0VINm9Cc052MUVTalBIOEtqZXFES3lIbmV2?=
 =?utf-8?B?TmJWSGtKRnBlWjY5dFcxQ3J0UnljTHhKUnQ0NG5YOW1tdWt5N3RBUnhaK2Iv?=
 =?utf-8?B?ckx3VkJEL01iZlBEM1pyWnM3Tll1NG1Pd0FUZGhjL1JjOTlza1B6Q012ZFJU?=
 =?utf-8?B?RHRFMWF4a0FsYW9mVDB1NFJWTDU2c1IyWHp2QlBza1hqV1RBdnhUZERnTEhW?=
 =?utf-8?B?WXFIVmg0K3lKTk1UbnZPa05zbmRFc2NZU28rRFNwTUEzcmdoZzRnL2JSdlc4?=
 =?utf-8?B?cTd6Ky96c0NPeGhCbGtYWkYxMWFlUE5yeFNiL0lZUWR1aWxjeUZEeGhId25H?=
 =?utf-8?B?aFhzbjRzeDlNbDBPQWxTYnRlT1hqN2VBS0R1azhiYzZPZjFKTVZ2K282Wm1Y?=
 =?utf-8?B?UExPU0dZSzRudzhxMzhOMVYvZ1VtM2ZuK2JHeDNQMW0xb2ZJNU12Sm8rMnRl?=
 =?utf-8?B?LzRHdDg4Y2I0N3NHWVp6U00wanBUd00vVVl2SXEwb0kyRGZOOVRTWlBYRkJY?=
 =?utf-8?B?WFV5ZnhLZEprdG5VbVZIa1pqMndEK0w2ZTFHZ1NwV05hOUsxOUF1czk1WDJh?=
 =?utf-8?B?UUpFODE3cTFVQTdLbXpycGl4WHEvZ0M5ZTNLREFud2FYaG5JMURVakxKTyti?=
 =?utf-8?B?ellDN1BHZDFrbCtaTU4xRzliV21haU1iQWtDZEIvUTVtNGxSY0tISVB3dTlN?=
 =?utf-8?B?TlROTWxsM0VtTDZHREgvNHZqdWNwenBCdFBMSWpudDNiMDZVbzEvR0ZJaS9Y?=
 =?utf-8?B?QnhSckVNRjNjckxpeml1Tkx1WDJDZm8rNDNDU1ZMeTl0UW5VVzlFdjBGNW1k?=
 =?utf-8?B?V3pzRDlOZ3c0TUVUa0QzOTFhck1TSDJlRjQrZGVncXk5bERTNnMwYXJOdnRh?=
 =?utf-8?B?VVEzS3NJQmFUdTVBQWhqeWNkcEpVS1Q1Y1ZBeWZyUndSWk55UlJlcU9pYjBo?=
 =?utf-8?B?bitPR0lyU3Z5dUp2TEdsVmZvdnkvSys4VmJiMUZUOVNmeUg3alRGQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 426d5362-b009-448b-34cb-08de695adf4f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 10:46:54.9623
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VaWqudgwtO2r26QdQgy0/cvJWMICQE7afgAZdUqs+ia/RDPN6rmtcVmq+p4iHLk/kapurHBiiLGrOYH+j3Ug0w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7844

On x86 GNU assembler will consider '/' as the start of comment marker for
some ELF targets.  This is incorrect with Xen's usage, which does use '/'
in assembly files as a mathematical operator.

The behavior of the assembler can be altered by passing the --divide
option; unconditionally pass this option when available to force the
expected behavior.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Guard option setting to x86 only.
 - Adjust comment.
---
 xen/Makefile | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/xen/Makefile b/xen/Makefile
index a054315fa4a2..4c83e2a46477 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -413,6 +413,13 @@ ifneq ($(CONFIG_CC_IS_CLANG),y)
 CFLAGS += -Wa,--strip-local-absolute
 endif
 
+ifeq ($(CONFIG_X86),y)
+# The GNU assembler will interpret '/' as a comment start marker instead of a
+# divide for some ELF targets.  Pass --divide when when available to signal '/'
+# is always used as an operator in assembly.
+$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--divide)
+endif
+
 $(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--noexecstack)
 
 LDFLAGS-$(call ld-option,--warn-rwx-segments) += --no-warn-rwx-segments
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:47:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:47:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227221.1533557 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7kO-0002kp-0A; Wed, 11 Feb 2026 10:47:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227221.1533557; Wed, 11 Feb 2026 10:47:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7kN-0002kI-QF; Wed, 11 Feb 2026 10:47:03 +0000
Received: by outflank-mailman (input) for mailman id 1227221;
 Wed, 11 Feb 2026 10:47: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vq7kN-0002Tg-7n
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:47:03 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff1a9dd2-0736-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 11:47:01 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7844.namprd03.prod.outlook.com (2603:10b6:303:271::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 10:46:58 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 10:46: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: ff1a9dd2-0736-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fs9WtW0tvnK1koeI6dGfVdZRs3pDIIg5t4lZ/84J8ZF604TMhjfCM2+CAfrWjL5YncJ7WOt99s482J44fEOMFGBhhntpLj1wvHwlnHDkCI1LEmyMxGIMNJDN4lefYVDqAQ3welepVwC5yC7lLQ0X1kPWTnh/uQ/7BbHA4Vc4bas1fNqyPs/+zrtUPioG0a9W/Ww+crxOJVJBxJWk7JQaxJR2tcXn5qXYSQLRhZgt9U2+lUGFgJfHS3ijSZNM8t3bb6ztg0/ODZN9JwFj7RlvSkqnWibYRHc73JqDcxINfggQLWDY5wStWhWlSiMINjhaSbSQfm04G20fccVMkW83CA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9pns87Gx8A+ohsVWJBKd5VQPd6Y2znuMXUnLwimLmow=;
 b=Vf7DHn796zwAGbEar5gHsTxQUlpF5/dfFYVnqpr5l1DQ/RBJrflXhnymAkXWo6h9xZ/K6C3rvjdKQRFAi0ritaOC6RvPNStSCo1DS24XKRdXYeWTXjGn81GSLw4IZQIrNPj8yj1MjGz4IIU2VUTGaJfApcbVijtSCHzHRg3mBEblEH9scRc+MDP0CHLo2UdCdILTqqsBAncNFlLilTowR3ko5njQevxJOINOsvq5CxXv1zpFkoWwtYWiEawXGlF28rFrANvarOePa5vCya+9wxVwwJzecOBuUlgdP/x9aKV5EIJTQxgu+fwvLGRI93pbA9jZJGmk9lUGfF8x/rUuUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9pns87Gx8A+ohsVWJBKd5VQPd6Y2znuMXUnLwimLmow=;
 b=ER/eliVzWxGyr0UDvCzAjXbDs4nGf893xU0GpyvGwGd3UQKaY7sMpgBA4fBJWeWjOVw3Vuk6yZzy1zDP0sN0PzwOvwhOkTuCyatrrVgOVGjkuQ+Z09nrqMlhmDCRqEmQ1qtdLd++vmgniQBUQsi98yRxUyaxvgrkZwUGjujxAVM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH 2/5] xen/tools: remove usages of `stat -s` in check-endbr.sh
Date: Wed, 11 Feb 2026 11:46:35 +0100
Message-ID: <20260211104638.7938-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260211104638.7938-1-roger.pau@citrix.com>
References: <20260211104638.7938-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0012.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB7844:EE_
X-MS-Office365-Filtering-Correlation-Id: 972d5a60-4c94-4baa-c040-08de695ae153
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?akQ0Nm5tUkRTYWdkUnRraDJLa1lmR1cycWhzRnhFK0lISkxMMloxY1RWLzNs?=
 =?utf-8?B?MlczaEtHcUdrSjRqeVlIQ1p2TVUrd3dJcGwxY1R2RHdhSU0yTWpOdVNQS3Q5?=
 =?utf-8?B?Vzc2WVV0dEZHVG03N21FWHo2aFBXRnAzdVlocTlkYTBRRk1veVd0VE1LZTdN?=
 =?utf-8?B?dXdvbmVoYWR4R0h2YzlmeGoxM0xLcHpqanYrbWFvazBUdXJWa1p4QXEzRGpG?=
 =?utf-8?B?M1pycFlUWVZUM0R5cFV1aENkeno0ZVRpTmtxSlQrK1h4SGtybjRRRWZCSkNm?=
 =?utf-8?B?Y3RYT0hmTnNHSW5VSUp1dlhQQUdvalhhWGQvYUR3SGxFZDliOEpwakplYmxT?=
 =?utf-8?B?MXZUK0R2MUFDd2ZIcGxyU0p1V1lkN0FVcS8rc2FZbzRXd2dJS2lCeUt3ZUVQ?=
 =?utf-8?B?L1AyQlhRT1JLNU1FS0RRUTdJMGJPa3lpYjh5REc0eFd4RkJzdlJJMGdXWlpU?=
 =?utf-8?B?d2tsSno5ZXhvdFE4VFdnNzFWREhJRVd0aFhXd25zWFpGdWh5RUNmeHZ4dW9x?=
 =?utf-8?B?NWVtRWtpOVJERDFzQjFGblBGM1NqNWJNUnBWVGh3U2tPMFcwQmhvdFFIakt2?=
 =?utf-8?B?bGJsb3N5NEdibHVWQkVyL2lKcEIrNW5CdUhzUWVDak5PRVhGNlh6QWM2bGk1?=
 =?utf-8?B?endFTHRaTGNFem14MHYxb1Ura3BYa1ppQmhXeFpEeWN5K3dWRzdqVlIxLy9n?=
 =?utf-8?B?Ri8ycDhaTlZIVFI2S3lNQW0rUDdIM1VsMTVOanJhbElSejRNNTRiT3R5dk5y?=
 =?utf-8?B?TzFEUDY1QkpXSmpJRVgzNko5NnF2M01HZndIcU5TRnh1d2ZoLzd1U3NMVFdB?=
 =?utf-8?B?TlJTdDh0YUkzU1RBdjNyR2tid09NNnVsZVN0WTRCT1VuWm1CaE5WSnZxYXBL?=
 =?utf-8?B?cTI0VEhwOG1nQVFJT0J6VEtqVEcwbmYzMjRDK2Y3cVFNRkk0eHczZjJtdzI3?=
 =?utf-8?B?S3RFZTU1d3RFcXhhZENGQUxMZ3BzaTM3MGRaTTdRek1JRXpsRG13MWpPYmlS?=
 =?utf-8?B?eDZOSzVab3NaWlo0a0ZGdllWRUVmSG9CQSs5a3V4bUhZNW5uSVhhc3hzRDdM?=
 =?utf-8?B?TW5EcWNGS0FtbEVMZ0VZMUxKQ1M1SWY2WjRGb2tMMkhER01pOU1weHJURzVU?=
 =?utf-8?B?RGthUEdIZVgrTGp4MFVpZ2dMV3B0VUErSStYSXFVODZEbUppZ1MwTHhBMzlB?=
 =?utf-8?B?Q0NybWlXd3dNTFA5b0xXY3ByMTJjUUpsMXV5RHBpcU9qMVU3YlBYSkNZbmxP?=
 =?utf-8?B?QVlmRGFXb3daelB2RUJmK1pES3RCU0hteEs1NS9kaUp1c0htS2xlS1JiNTdM?=
 =?utf-8?B?aWlBaFpRMDlTOTJjNHozZ2ZQVXJQSFE4Q0pHbWxqL1R0R2FIOVVqd1k1VUxF?=
 =?utf-8?B?a2RyOEJHMVI4dG5HTlB3OG5NVEpYdGE2aWlCN1FaUHV3aTFjSkRyNlZuaVo1?=
 =?utf-8?B?SVp3N2puSFN2aEhDVUxiTjBNZzc2RHJXdmJtS2J4cWJkUmVLOEFTR0NIcHJW?=
 =?utf-8?B?UVlveThEVUR0RDJ6ZHJpSks0T2lUb0d0Vy9KZnhSQUprKzFMYVg3cFFWTGV2?=
 =?utf-8?B?aFpVRGdnZ2FmY3NlZkN4dVo5NFo1UGg1bWNNN0xtbFJzYmFYSFprT1hmc3Mz?=
 =?utf-8?B?anZsUTVBWlhnbUxjaG5lYW5tZUkyUUw4UlIrM1psdEYvbGRva1BuSWVOU3FU?=
 =?utf-8?B?NjQvWjNPMkRRa1ZNOVl4NlpzZ3cyWjFMVnRvbDA3VDVwMHE1L0dHYmtmT0RG?=
 =?utf-8?B?WFNDWHJDNUU1bDBpK2dNTEpvSERVcGRjcUc0eitnNzF1ZnpHdEQ1WURFRTVN?=
 =?utf-8?B?Q1NwcWo1ek9sblhaVy9qWENCdFl2bjhUNTRTT05xWjhDdnorMWhVci92WU8y?=
 =?utf-8?B?bTVXV2E4bjRqSEprS3pTUEZwSzFlakNmeFNIaENxNTIwMzBkblNadUpOZWJD?=
 =?utf-8?B?bGRkRkdtRHVnVmpNTG1yQi9wT3dUTjlld2p5RkwvOWhkS0JNcWYxODBWeVc4?=
 =?utf-8?B?eVVXZnlhNHdyVUxNb3VuTXZlTlY0MEZ0dnl0MEpvZVlzQWlMa05sdGt3ZFE1?=
 =?utf-8?B?S1BPM2xxcTNpNHN1cjk0TDR2VkhzV1VEUm9GTGtSeVpkRmkzRUowU2dhZERU?=
 =?utf-8?Q?koxA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Mi9EMisvSWFlTFkzVWQ4YXVoUllHeWlJbVpqREpVVi9OMm9Ydm05b3JRNVMr?=
 =?utf-8?B?YitWWHdVMmNRQWxKQzB4NndHeHJTVXUrd1N4V2lDNUFVVEMrTlFOcU1ycEY1?=
 =?utf-8?B?aUJqV0lzZFMyZ1NTWGpyT09mQ2xaWnV2VVpRTnN6emhqOEtzczV1a2F5N204?=
 =?utf-8?B?SkpWNVNxUDJINU5vc000MVJFdHQzYnZVWGNBSGpnMDJlQzBiVXF5Y1ZETWtW?=
 =?utf-8?B?aVFNTTZLNG14YkY0TGVIN3huS1gvTlpVcS9SZHBPS3F5aHgvQlM1NGN0ckpv?=
 =?utf-8?B?eGFOMDJJSXRjd252d05UY1NxL1VrbHYzVlUyQnVSQ3BkYUl4V29OTTBWNm5U?=
 =?utf-8?B?dDUyc1pSbklQUEw3SjBYL3BuUlNxNGpvZWxyOXdXME9pMDZUMUZJbDBTRjVu?=
 =?utf-8?B?ZmdRU1ViekM5enlNb0FnRkdKY0h2bC9KSE45NW9YdE5uZCtmSnppUm9kVUJW?=
 =?utf-8?B?OWdDUmxSaGdGYkhuYWJTZXIwVVZvL3pWK3YxYmpOb1I3SmlBT1QyM2w2bzNq?=
 =?utf-8?B?T3dYTllUV3dqSkY1dld5eExJL0pQck1hUnRQN0w4RkVUZXNWNkZYaWRxRVp5?=
 =?utf-8?B?Qm1GemU0VEV2MjZzWnBaWDZ2TUtYVE5MS1FKYzJyODRIZ2lJYVZVZ291Umk0?=
 =?utf-8?B?SFRzYkZSdnZFaEVEVVZGZDdMSlJrM0h3VDhPZmRIeDB3UzY2czgyYUNxSWV4?=
 =?utf-8?B?RndMZFlpOGtKaWRXekxMQ1ZIcVJEa21tZ3NrdFhjektQckxEbW1zcXlKQzlw?=
 =?utf-8?B?OEFhclRFd3JTZGZFYzBuNTd5dklLcEN3MDJuOWd4S3JxODdWdWFBcXpNeG8y?=
 =?utf-8?B?cUE5YlJrS2gyVk9kenZyYko4aVpGQkp5MWtRL2JXTW9hT1JNc1dKRWd0bWdq?=
 =?utf-8?B?c2RwQXNsTGJwUVl0b0QvemRnSGdqR0k5dVBxT0duOUkva0d3aVhVRG5WM04r?=
 =?utf-8?B?Q0FDNy9uT0l3SHozYXlIQnBzZlF6M0d2UEUyR3dBdkVPSnZSdmhpMVEzL0JL?=
 =?utf-8?B?TWwrNk9pbkNqSlVvb1VRSWFNT1NSUHpDSk5CaHlCWVZlQzc5eGVOOFZaWHRu?=
 =?utf-8?B?QjlONmdJZzBYd010VGRrbXhXc0lJeGRlWEtwdTFleStMaXpQcGRrb2NDQi83?=
 =?utf-8?B?ZS84VFkxS0NLaXl3UFlDNDMrT0F6ZDgvb3d3R0x4Y25na3Z5NFJoYzkzVkMx?=
 =?utf-8?B?WXkxTnVJd2JnVnBJMmhFSlhGanR6TSsxbVhjQkswNWtzWGhWcTMzM0lIQUow?=
 =?utf-8?B?R0x0WXQ5YnpGYTRSOHFTV2txdjV5OW5ONHhITDNLWHl1V2pyMjhqVWFIMUVM?=
 =?utf-8?B?QzhoVnlmOHNoWGVsNW5XWFFJOUVuZ0lQTWNRV3U5a2FTTUo0RXdvL0xTTWJ3?=
 =?utf-8?B?aEJBYWJRN3o2V1IxcWRZNEhCeWRhMTB1b0c1WG1Xd0hXY3FIMkNHd3gzMVlK?=
 =?utf-8?B?a1pWUklUZVVZaEEvR3g0WFljc1hNbmdKQkZMRlZlUEVQT3BjL0QzUkFuWEt5?=
 =?utf-8?B?Z1lJSVN0cHEzbE9FbmFWMnJEUlhtVC9La0xYOHZFMEpJZWZBQzJvMFY3a3pT?=
 =?utf-8?B?TS9WY2NkSVFTeDIzdjY3Tk5FM3ZFTkVlMitIVDJ6cUhRdGFINnE1YkdWN0tn?=
 =?utf-8?B?SXhBbXBTSzNJYU5MUTR1MnJzWnFsWm04STZmZjdpd3VIc3l6TnFUL0ZsaUNR?=
 =?utf-8?B?T1lMd0ppcDRkUnN1bjdsRzk2b2xKblZYVGZBMWx6Y0gvakxUREVaNWxPaFor?=
 =?utf-8?B?MXp1SjF3NDlFdGE3eFlOOEk3V1lKTGR5NElvK3Nka2tIQWI5b2FvdHBaVndZ?=
 =?utf-8?B?UjdLcDlRVzhjblI0VVhjcXJMR0ZwdEN0Rzk3TGhBTFZtbm1uMkpPblhZQUZR?=
 =?utf-8?B?MnV4c2owSnlMdTU0bFVwdnNTNmNKVmVVTDhlL0gwWVV4bnYyRXIrU2FnVmZv?=
 =?utf-8?B?ai94V2hBUTF6RmwyK0JTM2VIZmd4QytkdW02SzlYY3FCWFBlUjJ1bWJwQWdt?=
 =?utf-8?B?S1BucDRNOHo0K29mUnZvRzNxODQ0UnhUbUtBZ0lJMDVNRDN6SWFocW1mSTJY?=
 =?utf-8?B?YlJHc3czM1lmaE81OXNqNE9iU1lMZENWNmowKzlFZ3UrMG1XcG1xRUUwenRR?=
 =?utf-8?B?c1pTRy9laWtYWUpvVnMvekVST0ViajJEUzI3TmFScy9DaldnTDAxdmlYcUJU?=
 =?utf-8?B?NlZmbE9meTdIdDlER3FhZmwxVThMeHVESDd2NXFDMDNrdTIyUUkzRW40aVdO?=
 =?utf-8?B?MFNDL2ZwcklQQ05aZnkyZUZERVVWN2dpSnhtY085eGZUY0wydFY5bXN5aC90?=
 =?utf-8?B?NUNxRTdvTUJNQWNnWVJWRmR6WVc3U0g3OEZpUnl2WmNjZzJjL3RmQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 972d5a60-4c94-4baa-c040-08de695ae153
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 10:46:58.3182
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5K8XwMACnLp51K79Bn2drxezldmE/+Mt3Hee7GBmavc6KD1X3VXJacGt+bO4TePfJYm4UODq5aocgVWSfHgiXA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7844

The `-s` option to stat is not POSIX compatible, and hence prevents the
check-endbr.sh script from running reliably.

The first instance of `stat -s` can be removed by fetching the section size
from the output of objdump itself, which the script already parses to get
the VMA values.

The other two instances can be replaced by counting the lines in the
respective files.  Those files contain list of addresses, so the size in
bytes is not strictly needed, we can count the number of lines instead.

Suggested-by: Bertrand Marquis <bertrand.marquis@arm.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/tools/check-endbr.sh | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/xen/tools/check-endbr.sh b/xen/tools/check-endbr.sh
index bf153a570db4..383d7e710a53 100755
--- a/xen/tools/check-endbr.sh
+++ b/xen/tools/check-endbr.sh
@@ -92,14 +92,15 @@ ${OBJDUMP} -j .text $1 -d -w | grep '	endbr64 *$' | cut -f 1 -d ':' > $VALID &
 #    check nevertheless.
 #
 eval $(${OBJDUMP} -j .text $1 -h |
-    $AWK '$2 == ".text" {printf "vma_hi=%s\nvma_lo=%s\n", substr($4, 1, 9), substr($4, 10, 16)}')
+    $AWK '$2 == ".text" {printf "bin_sz=%s\nvma_hi=%s\nvma_lo=%s\n", "0x" $3, substr($4, 1, 9), substr($4, 10, 16)}')
 
-${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
-
-bin_sz=$(stat -c '%s' $TEXT_BIN)
+# Convert objdump hex reported .text size to decimal
+bin_sz=$(printf %u $bin_sz)
 [ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&
     { echo "$MSG_PFX Error: .text offsets must not exceed 256M" >&2; exit 1; }
 
+${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
+
 # instruction:    hex:           oct:
 # endbr64         f3 0f 1e fa    363 017 036 372
 # endbr32         f3 0f 1e fb    363 017 036 373
@@ -116,8 +117,8 @@ fi | $AWK -F':' '{printf "%s%07x\n", "'$vma_hi'", int('$((0x$vma_lo))') + $1}' >
 wait
 
 # Sanity check $VALID and $ALL, in case the string parsing bitrots
-val_sz=$(stat -c '%s' $VALID)
-all_sz=$(stat -c '%s' $ALL)
+val_sz=$(wc -l < $VALID)
+all_sz=$(wc -l < $ALL)
 [ "$val_sz" -eq 0 ]         && { echo "$MSG_PFX Error: Empty valid-addrs" >&2; exit 1; }
 [ "$all_sz" -eq 0 ]         && { echo "$MSG_PFX Error: Empty all-addrs" >&2; exit 1; }
 [ "$all_sz" -lt "$val_sz" ] && { echo "$MSG_PFX Error: More valid-addrs than all-addrs" >&2; exit 1; }
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:47:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:47:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227219.1533540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7kL-0002Tt-AI; Wed, 11 Feb 2026 10:47:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227219.1533540; Wed, 11 Feb 2026 10: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 1vq7kL-0002Tm-7E; Wed, 11 Feb 2026 10:47:01 +0000
Received: by outflank-mailman (input) for mailman id 1227219;
 Wed, 11 Feb 2026 10:47: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vq7kK-0002Tg-0Z
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:47:00 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id fa44c4ca-0736-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 11:46:54 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7844.namprd03.prod.outlook.com (2603:10b6:303:271::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 10:46:51 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 10:46: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: fa44c4ca-0736-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PS0YHzjveyLBTGrzrYCR2JPVeOg/91ld5cSUGFJLGf3NdMfzaK1kOAmQST1ZKjjuU2ZFxa/+5jWtGrB1/9XHruoAGZH0DWCD3RaRl4je+s4NSTQl5VARgJBH+/pBpY/gWIAQ15TlOcSARkUPjXnV3UHG4C9cF4zitAOX225PKVtL8MtVAEu3OOAfIo0EXVa8Q99Va6tBmzFTEcyvCByDvMsDBiCbzbP8bZiW6/sJ6pba04HN00AF5ZpV/iNYIk9OPY6XHNKrcAtsZ4dvEy0wjosXM/X4AtyK8keZ+DGs7BKVp6yJj+9Ts22qiyeJG/r+Ady8MfVAjQFNAXu5nr48gw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/XjQW2o3i2U4ti/CXbbKXAB6tXROGqmcSjrDk3xleOQ=;
 b=qAfMlTFkMMLlznieNQPnhjfuvDaZFNI1oUJVzvDe9kczxr92KFz6HOe8/Fu4le+Q6wBYqAxxWUtgdVDrWJTHjcRrHE/SUlGjLNhWgI9yoLXYvVs1bjys2IDLd31lmG7dZXhkD78kj53cLfYgYsHy1nBh45BxN8oEd53R2L9KnDC6CCEASZlkhz/Mz6crL2+BtGeEvvD6geA8zKd1crfeH+hEoULpy3/6mVvsww6H0IjkwmHnHPPD8JC9Qr8nXEsqXKCXKxVXkKPOBuATOM5TDFlUXVIyBy/wmcrnQO4sGdz75NJeR2WLEAkaz0/IxrRUq5Jupmh4+JhVA3YqJfn2CA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/XjQW2o3i2U4ti/CXbbKXAB6tXROGqmcSjrDk3xleOQ=;
 b=Qh3YNo1CuCD3a/i00SW+gek848MF5rUife/zmYf95i5a4YupLWsbAICkr0L+GEDk7nr62S/NzwXN82GBgNj8nvTK7p2uVpL4a8ebB7TDlr/OAZSUuslNCZRIGZJdLLPMU8wtrzTHddj9iyEvQdfqfBHc/ybFS9OR2+c8r3IR9N8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/5] darwin: expand cross-builds to also support x86 and testing
Date: Wed, 11 Feb 2026 11:46:33 +0100
Message-ID: <20260211104638.7938-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0021.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::13)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB7844:EE_
X-MS-Office365-Filtering-Correlation-Id: b29e021b-c6fd-4510-7d0d-08de695adcfe
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?YVR6TjAzenNyWllsMk0yMjBwS2NNSHRuNnRvNUQ0NEZ6NDc5MFlXT1diSDdu?=
 =?utf-8?B?SEpaV0RZSlZOSzd1elU0YTBDci9teko4emVWaEpjemVMQ3Njb00wQWozT2hn?=
 =?utf-8?B?Y1hxcDNCU0RDQjZJNW1lTHlEb3d0YmdDY25RS2ZadWVkQXlxL2ZnSGgxbkFG?=
 =?utf-8?B?Z05tNGVBME52M0F5aitXQmdmY21WQUV0T25QS1ptL3hsU1ViZCs4dXJYNHhV?=
 =?utf-8?B?OEJVNzNqZWRTaDRuSW1YR3VLbzNta1N4QVRzbWJiMS9NVVVzNFMvUVRzQmJN?=
 =?utf-8?B?ay9lQktaZkNqRjVhdU1SSjJzWWVHdGRBS1pRMmRhSUJCSHBFWFcyS09mdTE2?=
 =?utf-8?B?R05NcVJnQUpERXRoMEhLcHR4ZjJINWRmamJ1RTVjdmUyZFUrczM1YlVPNXAx?=
 =?utf-8?B?RTl2VTdpdWdWb0JsUTN1d0FaUG1OVmRjb2p4RWpFMEc0TG9vQlBIQjJSU052?=
 =?utf-8?B?eVBHVlk0eWNCbGtFWGFCVGFIdnZWaFkrTHduVjJqUXorU3puMkNxUWJ3NkE4?=
 =?utf-8?B?bmlJcHJrRDZMMzZvYnZZejIwOFlpUWJrM1JXeXlHaU9ickJtVE8xTE1ZWHlY?=
 =?utf-8?B?OEZ6WlJwTmdnM3d3cC82Z3E0cS82RmlBeWJKckY1WjE1c0FGYkRzL1MxVW5p?=
 =?utf-8?B?WXJUYlF6Sm9GWkNHb1prYnJUV2NpN210MWowcnJSVkVyWVhtWTFTRlhQdGs3?=
 =?utf-8?B?Y3YwNzMwenNVTXFaT3QrdXR2bGRNMXNUYTlPSUREclpkUy8yMlc3UUZzcTVa?=
 =?utf-8?B?cjdMS0F0M3ZBSjRXRGxzaUJqYmFqeWRqOHNzQ3N3ckZNejU5K0VTWitoUlZN?=
 =?utf-8?B?cFJCQmFPRVZoZmdmK2tIRGppbGJZRFVBSWNSYlpZcVJwN3liRlhGS0ZSY3cx?=
 =?utf-8?B?eFkzakswcU9tNS9nUExXT2NySG9vMlJ1YVhOU3Z3NmJuaFVSTStPUWg1clBr?=
 =?utf-8?B?QWlpOWh6cVJHNlRneTlUdyt1NncwckJQMFgvRUtlKzE5VXJhaHpzc3ZhT1FW?=
 =?utf-8?B?YW1HcWlQaXBmREJ2MGVhVlMyOTYxNU5GT3VjQTRPaFhENmh0TkUvRXdGcFVW?=
 =?utf-8?B?MC9YeXd5anB0M2EwSkxkWnozbitPUlBsNXJ6dFMwczR4TTJyRERNd211eG9H?=
 =?utf-8?B?ajBGSk9LT1lKY0dxdXBpOWVZbisrZU1wOHZzZWRULzd0OGl6UUxITWJtN0FL?=
 =?utf-8?B?cHRqVTl2aUZtTnJzenVDUHB0Z2xpODNyVzhyUld0TDJ6OTk4R1dRc3JKZHhU?=
 =?utf-8?B?ZDlZSzVoYVpsYys0Y3pXN3MyK0RnTllEQ1F5Q2hxbGxpM1RhcmczSHFidzAz?=
 =?utf-8?B?YzBnQnNRNzlMbUJnTUFkczJsalhuSk91UGhna2R0ZExHYWdOME9sOElMMnVF?=
 =?utf-8?B?RlgvRjFXVmpwcVZER3IrNk05SXk3MXFoOG5wOGZ0TGo5YmU4V3ZaWmtHTS9V?=
 =?utf-8?B?bkIwaDh2aXpkazhqY2xtTjdQRXpNS0swb0Q4d0xzaGFORzl5ZUhNR2VCUjVn?=
 =?utf-8?B?bEpSZ0xNVVZTWnJER24wSDhCbWZ2ckgvRGtCTEpKcjkxaHlnVW9nK2JUSjJR?=
 =?utf-8?B?M0pNRzdocDFDQ2NIUmRqM2ZuSWM0dmxCd3lRRTRldytwYjk4amN4YTg0Sksr?=
 =?utf-8?B?RERDUmw3c1lOak44YkVGN2FKMmhkWUdrR0Fkcml4VXBqUUUxTStvOU5zNkNC?=
 =?utf-8?B?eGNnUkFrN2lyWlRQZTc0eTJvc1ovOXM5WmlRalIrU2o3SmpsVm9ZY3NUZkYw?=
 =?utf-8?B?SnBlWTFheC9GOVJadERsL0ZmUFcwV2hoYSt4d0lHcVlyL1BScm8yRGdjQVdY?=
 =?utf-8?B?WXdoLytqWWZXTlc5djRtTGVHanlWSGp4c0pQOUJKUG1BaXdVSTRCazB4Qmdp?=
 =?utf-8?B?TCs2SE9YMG85dmVmYngyNmhIRWJ1Wis1NFU4RzlYSy9lOGtxK0p3MWg2anl1?=
 =?utf-8?B?NC93MzFLalo0VXplWERCT3RLL2pDZFFsSGZOUFFIZlVxMVVDb3IvUEFHWUpl?=
 =?utf-8?B?NUc4R2pYVGpjSXBzb1BjSFlQemhpb09rQVM4UG1Kby9id3lyZmZ6c2Y5Ry9N?=
 =?utf-8?Q?J/bmMX?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QTlYNzZWUWMrY1F2WGc2bDhNRURscVg2UlE5emUySjI1TFFyblZnSlpRdXk2?=
 =?utf-8?B?OGt6L3JXZzh4WGtSc2RBaHIwaUR2RkxsZzF1VTNYRWZBaE9obW1FVlltdXM1?=
 =?utf-8?B?ZFRhbTV1cW16QTM0SHBHTnlFSlNWSjBPN1ZiT3lpZmpXSW9FZjNPZ0U5b1oy?=
 =?utf-8?B?M3hhZG8rTy92VlJ3TEwvRUsrMys2a2NTVE5LZXlvUHpnZ0hrOXdmbmFQeEdG?=
 =?utf-8?B?MWs1VmZHeFh5Q2F0YXI3TnhVY0pFMHBLbmFkd1JxbWJxNjVzTmNRSzNHS2o4?=
 =?utf-8?B?eDI0bHNGcXN3K1FXNGRKM3NkNFB4QURScmxoRk1MdGJlYWZBYnJSamhWd2lG?=
 =?utf-8?B?bWNHU3BMdTJoYzZNaU1ZRng5UFFNMjNwY2lKU2oxQlY5RTFVMmFaa2M4TlJn?=
 =?utf-8?B?Si81a2RHT1U3WEJya0Q1a2ExanR3NExVRFpJZVF1TE00OFdKVHZYNzJsTVVC?=
 =?utf-8?B?TW42SkNabHZmVHdXeE9zemtkaVNzVzZJWmhvN25XSDdrZXdOMmFva211aEpH?=
 =?utf-8?B?dmtBWnN2YWhFUFU1L0lGWTBJQ0FRU01vUE9TUFRSTVpVbTVGS2g4YUpiVEp4?=
 =?utf-8?B?bisxU3E1NG5Va0QyUlJ2V1ZueUpXcndhUk40TERPN1dLdHE5MnZ1OWtMM2Jz?=
 =?utf-8?B?bFdlbXNWT001ZXNuRDhmREJPY1JlUkdMUTJxdUJjVUhNcFQ0SnV3RHdSNXVD?=
 =?utf-8?B?RE9YU2w2RXI3VTV1TDVaN0xpcEM2QXFOelQ4TFh0ZkZPR1VOWCs5alNFOFUw?=
 =?utf-8?B?WkNSbmVFNmtROGtQSEFRcUVWR1VGSVdITzdKTjE3T0VCaVJ0NjVNVGNxdm5t?=
 =?utf-8?B?YVduK0lvTHI5MC9nWnVYcHl1dmp1bEhzZ3U2T29maFNtSmZOVjIyZ3lRVDV0?=
 =?utf-8?B?Z0lpUjdiRDlSZDFvS0lHNWtQRTUrQVhHWFFFdTJZNTZVTWFHc2drL1VqTEVk?=
 =?utf-8?B?K0k1WnU3dkZmUkMxVUdnVTZ0VGJLb2t5OFlPNzR0QjhDclBGVjhiZ1Z5c3Ru?=
 =?utf-8?B?TkVLS0RWUHY4TWNYNFMzVDRLeUxTTmc4bnZ6bittbTVBWWtvZFB4ejc0dDc5?=
 =?utf-8?B?UnZwQW9USHdpcDJvTXZyMkk0dHhDUHQ0cTlIT2NOTVRFdTVUd3B6ZFp4QVFY?=
 =?utf-8?B?YVNydzlNcDdKbyt0RFU4K2lkdlZ6RGVMTFRyTlZrc3Urb0ZVNkhwYXpHcVEy?=
 =?utf-8?B?bWFYdzlOZFBaRUhLZ1JvZEV1Q2U2VkxZOFRyZlJldEROblpJVTNrN29wUVZD?=
 =?utf-8?B?YkV2VkROZCtpM3h2ZkFyVDR0NGIyUkNSNnRuNXluSk9SYjgwQ2JDbTNjaHhv?=
 =?utf-8?B?Y1U5OGNCZHNCS0lGU1o4RmhoNmpOUWFieVlld1k1UjlSSEp2eWl4TFVjQXF1?=
 =?utf-8?B?UU1CZ25Qb3IrYWJpRXJma1RuUWNwWmVOalRsRXY2MzN6UW5vdElBRVg5bjI3?=
 =?utf-8?B?WXBVazBwMGlVYlZwUDBxZi92ekRaWTlPa3ZJWW1FcmdRenhtMjNrUlQyNlFF?=
 =?utf-8?B?ejlGKzd2eHdLMFBSMzRLOERNWmlmeG94K1VyT1Jqdmw3dzhyMjlqblJCdDlJ?=
 =?utf-8?B?Y0pYME84Vm5sWlc3NkJNT2VHWUZXWEkyMllUM3hDTUg4RnpCZXJQblRSN3lF?=
 =?utf-8?B?SnV5QjhhT0I3V1JqTGcxK2h6MUFES2FOaXdSeW5pZ2FsSzRvUDByUEsvOGNL?=
 =?utf-8?B?ZUlGMGs2YjVkL3FFdlI2TEF0SFd1Z1ROeXhnV0RyamJxSG83ZkI5L0RwNnlm?=
 =?utf-8?B?OE9XU1FIYjJtS3NDdWNubGI2VTFoeUlOWUk3eVFWYjFIckc5Q1ZxckgrTmFL?=
 =?utf-8?B?MmJsa0dUZ08rTkFzMjZxa3dUNnFMVDhmVmtlRzNTd3k4WHM4UTBlUC80cEhJ?=
 =?utf-8?B?cVRId3c2Vyt0NHlXVCtVYkxXWlZUZzdxYzBFS1A2K0JqRXFkeFVCUVpjcEhl?=
 =?utf-8?B?MEJVRVIxN0d1bytqTi9IVHM3V2FiNUIzYzRxbGpBN25kQUhmV1lFVlVoMUk0?=
 =?utf-8?B?UTduTW8yRm9relJla0tDamg0Y0FBdkJhTG1mOWk5dlNhSEN6QTlJNzNLRFUz?=
 =?utf-8?B?QlBaMkRXbFNoMGU0ZUpBRXMrK29yblcvWnd3SWErV0hJZE81M0pDUitPQWc5?=
 =?utf-8?B?Q04zWFhlVjM2RnBqMi9BaldDTlpGaTZDZm5uTS9LejZsek5wdzhxQmtaT2JR?=
 =?utf-8?B?WEJNcTg4a2YvTmxkUjQ0NnZaVHp6MU5Wb0g4NlFjRFlxMERYSFh2enA1YWdv?=
 =?utf-8?B?U29rRm03ZW1CNHJ3SCtHazBLKzBmeVJOZk1wcDZrQ2FFdGdrZnJLRG8wRjJ6?=
 =?utf-8?B?OXI0dkovb2ppWGg3SXZ4bGFTb3pySisxcVdWY0dNS1BWRUFtTVNSQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b29e021b-c6fd-4510-7d0d-08de695adcfe
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 10:46:51.1469
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nekY+Szb5mP+STY8TrMW0wm9m5Ch7Ei4p/QbCu0pcq6U4Dr0myMoZ94B/F3l2dYiu1MhbJ3bXACSPIW/+2YJzw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7844

Hello,

This series expands the recently introduced Darwin hypervisor build
support to also allow cross-building an x86 hypervisor, that's done in
patches 1 to 3.  Patches 4 and 5 introduce some Cirrus-CI testing to do
cross-builds from macOS, plus it also introduces some basic smoke
testing of the x86 builds using the XTF selftest, just like it's
currently done for the FreeBSD builds.

A result of the updated Cirrus-CI pipeline can be seen at:

https://cirrus-ci.com/build/6723050642604032

Thanks, Roger.

Roger Pau Monne (5):
  xen/x86: always consider '/' as a division in assembly
  xen/tools: remove usages of `stat -s` in check-endbr.sh
  xen/tools: fix grep reporting 'illegal byte sequence' in
    check-endbr.sh
  cirrus-ci: add x86 and arm64 macOS hypervisor builds
  cirrus-ci: add x86 XTF self-tests for macOS build

 .cirrus.yml              | 51 ++++++++++++++++++++++++++++++++++------
 xen/Makefile             |  7 ++++++
 xen/tools/check-endbr.sh | 18 +++++++-------
 3 files changed, 61 insertions(+), 15 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:47:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:47:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227222.1533570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7kQ-00039a-6l; Wed, 11 Feb 2026 10:47:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227222.1533570; Wed, 11 Feb 2026 10: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 1vq7kQ-00039R-3F; Wed, 11 Feb 2026 10:47:06 +0000
Received: by outflank-mailman (input) for mailman id 1227222;
 Wed, 11 Feb 2026 10:47: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vq7kO-0002Tg-UG
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:47:04 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 00276b77-0737-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 11:47:03 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7844.namprd03.prod.outlook.com (2603:10b6:303:271::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 10:47:01 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 10:47: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: 00276b77-0737-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tXvMrF1XN4c+YntWJDWobQ3OylDk1ojIiY6DJec6UvmS4YpuZ4IXN1rbu03GeN8AQlGeMQdCY9LLTZ10v/FkpIJivX3VZuocDgOQBx9f6J4GJVqcxbioY99YdvFO+SxWgG+mg9JQ5phmhaCKwUdjAL0XPdDnva7FlBKTaBKuYe6GbJX1asxv1pIFOi6JMhqyXfMmB9FvClPKVBF6SSvzRmCSxjsYKtsuOdO1J3ujLPsUWekAxdel7eMro9FNCYtAjydBc0zk+sBotl9VA/8jQ8miEyp7qN6zMIWJiDHEvs3XB0V9nWjZAI/soP8YeHmYcxHKz8v66zs0hYQ/AjuxSw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=o7XzdqwuGAV5YHCJRquaLBzI+WwKGfkVfdOG5E//3D4=;
 b=SvhULgMTdaNua61CIFHe2LqlQJnmcXJ4+OwCVnDpgQ+9knFDJz/IsieQ1cdkwaXo6waQMLAqUB6vcx4p8Nc4F+QZHtQe9S7hr+5lGnYGcwksGFAl8judJhjbkRh3vsHXMLrzdBUltbHZDpISNjAkk/GWnCcRCRSEXVoxRNWQPa7qJFqF8QxecuyGtbJfE09PFpD2EAgN5r/GlS/g0bbseDeg3iI4ncodoP/a8Qoimn7w0GuFom12VPX0hgUyVbXRWylnX66z4ldfQ1y7qmnzuYReamanPb+XeafRo7U3yn7KwcHU7sklk1EIGGs2DtiuuI09SRuXQ4+L7CXHFB7Otw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=o7XzdqwuGAV5YHCJRquaLBzI+WwKGfkVfdOG5E//3D4=;
 b=UeTK4PjUYBxp4BAm8qHGlPnC6E8ZHJthFwY1l3615GLCrsBk+FIsWXtq3r+5Z7liMzSThMCPNk5QS4xPsa+w8M8iwYu+InZxuffhOyiCNQxAIfBgt0gQC2ksSR/Bz9Euks7xSuAlkBM2tCPjkOSQfeJJ4rSTlQQykVB82z3rD8g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH 3/5] xen/tools: fix grep reporting 'illegal byte sequence' in check-endbr.sh
Date: Wed, 11 Feb 2026 11:46:36 +0100
Message-ID: <20260211104638.7938-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260211104638.7938-1-roger.pau@citrix.com>
References: <20260211104638.7938-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0062.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB7844:EE_
X-MS-Office365-Filtering-Correlation-Id: fafbc603-3b94-4732-38ac-08de695ae31f
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?U3VPU0piY2JUT29wYW5jaXBoenRkR2VZMEhQcWNNUVdyNVBWOXBQc3FnczU3?=
 =?utf-8?B?K3NSLzloZ3BubXVhVHVBT3JrSGhkS3JaMHRHTWZ3TjVKRlhSbUtrK2kwVE51?=
 =?utf-8?B?emU3SmtGdWRMVW90TXcxT0xOMUlBQTlNZlVncEtuU25GbzFPbDk4WHBITVBH?=
 =?utf-8?B?eHFDbkFUN2V5OG5sZElCRFZQZm9leEdVQUdrREEyRkJ0YnNqeVZKRWtZbGVp?=
 =?utf-8?B?QUhqTXVMODdXZXYzbkhrQlNaU3VIOGpRekFZSU1FKzVJRUN2MnlmUmtjZzBt?=
 =?utf-8?B?dmtsbE1ldUVLZVdUdk5yWUluejN4MWI0cHVoRWxxU2x3dEdKeW5lVHpacXVo?=
 =?utf-8?B?Zm15VFM2WHZrQ2dTc1cwZGR1N1cxcW11SFd0RkJkWnFBRkU4UnBpeWUxVzZS?=
 =?utf-8?B?N1BPZHJXMUhNRVk5S1ZwRXB1UTVBZms1NmdNZm9HRzBWbVErR0ZwRmxmamJ5?=
 =?utf-8?B?UVdpdC9XSDBGREVNVlVHQzhGQUR2L25DTmxOQ1diNnFQNWcyemZRd1hrSHVQ?=
 =?utf-8?B?SUVsNTNuZHhDdDJsQmVTUnQ2Q0E0QTQyK0RWd3FUdHhOYnVyMGtZWkxNUHBE?=
 =?utf-8?B?cG90U2tJVzNBaWI4bXZKM3BZVXAwY0lqM1YyMU9ObmhGd1ZhQ0daM1NOSjBl?=
 =?utf-8?B?RFVVeGU0cFZBYU5VdW9BQ0RZTEYwcnJMbVpJZ2EyLzc1MTBLZmRxSjk1R2FN?=
 =?utf-8?B?U0lnblZ3VFJTU3lrdEgxZnd0ZXQwL3FHY0JvV1FwbDZ2Vjh0RmQ1N1p6elkr?=
 =?utf-8?B?UWIvTVRZekd0cGlDQkRvMk5oSHhuZFVHb2dPQ1VKcEZmS0xYa2JoQjkvRFZo?=
 =?utf-8?B?eFVoZThJdWF6bDYvQzdqamdZcVJpTUpRdm16YVBKOEJpY05icHd2Yk9WM1Ra?=
 =?utf-8?B?aENnNllzY2tBZFRsQ0VRZ3JyMTJkU3NYaGVyaGJ6M3djTTNiRkNwVkVNenYw?=
 =?utf-8?B?SmpiVjYyWGU0OTlhVUQyUFM1MDQvb1VzWEsxTkhaa0d4TEQ1aGllNDNuS0NC?=
 =?utf-8?B?MzlNbSs0aEtmUER6QUhTZFY2cVBMcFNsZGRtc1BjalJmdXBhMFREdEdUcXZy?=
 =?utf-8?B?bzhxS2lraXVUVTExRmtIOVhMNXhIQXcrR2lhRUtRbXdJTW9uUFNyKzJ2NlZB?=
 =?utf-8?B?YUZZMUp6N2dUNG4zM2NSZzNMSEo4a0hFWjdoUnpwS1l1NllmRlBsUDVVWmlJ?=
 =?utf-8?B?eFAzS1paazJtQ2MwMWhhTEtZSTI4OGFRallXaWdhQ1VPUmlvN2FlR0FvQTRn?=
 =?utf-8?B?eSsycytzajFFclJIVnJXNjR0UU5uUDlzZzJ6OEF1SWVGNTBZYXM4dldFN0JK?=
 =?utf-8?B?TGMwaEEwV0RaaGI2UmZPMHQ0NlJPU1AvRGpVc0VDSCtCcFRldm4rVVpRNzEy?=
 =?utf-8?B?ZVFTWXBxL2U3aCtTaHdEOTc3VGRadDZGY0M5c0dRQlEvUWxoREhBM3Vpa25s?=
 =?utf-8?B?c05idndlS0kzRzhXY3VwdkQ2KzN5U25sekFaYmdqdmpjMlJSd0ZNZjhqZEc2?=
 =?utf-8?B?Z2tOSTdXdEx2eWtWQzNEbjNMUE1abjcxcWQzZnJJeHE3WDRGVitVNU5LRFBV?=
 =?utf-8?B?UWUzZ3FUblE1bWRjM0ltVkRkWDNmQUtEUEJjajFCU2paQVdrU1RobnZwdWR4?=
 =?utf-8?B?VlVoN1pObnljdnFyKzY0WUUyNElyNzFLZWpNSlJzUVkzOTZURHhqVEZ1WkVI?=
 =?utf-8?B?aU44SVFQWno1d0IyVDBxMGkvZjVFK3NvRVVORGowcEt3OHZPdXVSSDdNTXpr?=
 =?utf-8?B?b0VlcXNIWVdyUGd3RFJvVHlXME44MU9jZncxOWR6czBJTHdIQmF6UDdNbEZU?=
 =?utf-8?B?WXFDYUFHcDZrL1dyN3RmaW5VbTBQRDFGZ0lVN0FkVEJaRVlKUG56bmIybVQ3?=
 =?utf-8?B?SFIzWkNsQ1pPSVVnSHpHdko5SWlKSmcwWWpGMnk5UUZHSUVlYk9ZQ1JJTHAr?=
 =?utf-8?B?enZaMW1NdndEZ3FjSm55YStDMDluYW5VNmJSWUVYaVVPN2tyd3FaeElBMHln?=
 =?utf-8?B?TGNPWUUybWZyUkRYNzIxc281Tnc5b0FoalVDMWY0VVZUdmJ1aFAyMGladWxV?=
 =?utf-8?B?MG5WNndWSDJRVU1YakQ3K2wxemRGR1JqREQ4SlVvYnUraFBOMnZINFI5eHJw?=
 =?utf-8?Q?bDfg=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZXRUYUJJOURxaithczU4MWdoRGtBMzJTalJsanBlTjB2Tk1xRWNsZHdiWlFT?=
 =?utf-8?B?MCtoVkRqRit6VDVxZU5ERFJaaTdjZUUvQkk4VENGTThKbmNTVzc2a053ZEZI?=
 =?utf-8?B?aExSYURqRzZzdHJudGJYNTI5eU1nUlhvM0VDOVRKNC9wVzdtaHZVZDd1YTh5?=
 =?utf-8?B?TXhLTEFsc0I0a2FHVTlmaXBmdktBRndVaE43UkdnZHJuTjVIQXR5dXhzUE1F?=
 =?utf-8?B?WlhZRTZHQUZSTVRBSk5yc0N3WlJDUXAvY1R0cit0RG1sYVoxaTlGRGtTb3Zq?=
 =?utf-8?B?ZG4xbDhQSjBHTitrWFJPYnFrTzc0OUhETlVRM3VwTU5zUTFYL2E3WG16YVRy?=
 =?utf-8?B?R2NucEVoSVVTb1ZFSHZuY3I5WXpZR0xQWHU5aG0vK2xPSFJrTHY2TzRSNnVB?=
 =?utf-8?B?L3I0QjQrd0RPUXNpTXpOZVBwNEp1ZEtzOFV2U1IycDZzZC9XMmpjMS8zemhz?=
 =?utf-8?B?OUJ1bjM1a1UrVWZEVVdnVndnTnBoN2N3eTY3b01uQXRaU3NOWEU1VjNBd3NN?=
 =?utf-8?B?dDlBK01MV0c3Y00rRTZycDdxWUlTYnI1TVAwL3NLVnhlcFJ4N0haNElRazB1?=
 =?utf-8?B?WGJEM2VDa1BSUTlUckx2a2pTQXpNTmk1VjBZd3VlVllmVDJ0YXBZUWpDcWs1?=
 =?utf-8?B?Si93MXZSdkFwRWRkUnJYaCtDS2s2UlhCakZQZkY5NkVra1l1K0dnOFR5SnRD?=
 =?utf-8?B?RnNxRUFUMTl5RGRpT3VWZVMwcTk5cnQzeTI4OG9uZTFTSXozQTdOemZkdjd4?=
 =?utf-8?B?YXh5Tm1manMvd00ySUFnUzRDRG9ENXlNV2JJQ0R1VktmVm9qOENpTUtZSkJX?=
 =?utf-8?B?bVlaWVorNjA3Wjc4ZDdWOVNnL0U5MlBHTk1hSkM4QUQzRXFZaTl3VUkxbG4y?=
 =?utf-8?B?VjRwRmt3UUQzZW0vLzF3emdaelhGSWZhaFBaVTNjeGZhekIzRWtmR3ZBbDh0?=
 =?utf-8?B?SDlWK0lBNVByd1dxeVNEZW15MGtWTkFvRC9Ja1A1M05VTnZSa3MwS0tCTmJZ?=
 =?utf-8?B?NUwwYXRlak5iMEgxQjA4RVNMUEc0VEpEU1I0L25jZUxNRkcwd1EzTktmSjhK?=
 =?utf-8?B?dzM0YkdlSS8vUnJpbVUxQjRlUkRoY1RzZ0hNR2dEZEFCTFF6Ym1EK28rZnBs?=
 =?utf-8?B?MDh6b01sVWhXbkR6eGRqSTgyRDFhMHRPenFtT3ZoaG42TTJTek1yMGhzNkVH?=
 =?utf-8?B?VlNldUl3RndMQWU0QUhlNXpUWEc4aFRPNlo4YnB3cUxTalBqWE9FeUswU1kz?=
 =?utf-8?B?TjNzTHd4dTRVeUFPNm04MGEzcHVpbmZrZks0NHp0a29UWUp3eGxON3lkWEIw?=
 =?utf-8?B?dkJpWUVHalRyTnVMMDNVL2IxRnptRlEvLzRsV1FvSVh4Z2Q0QUgybjRGMEQy?=
 =?utf-8?B?VUphMUJtbWtPWnYrZ1BadHpRa2tqMWRBR3l2WGV1dklwUHM4WUNTa3NTOWFx?=
 =?utf-8?B?QUxobGRtR2tLY2hET285eEhNRGlDTVZzTVR2MHFrUTVGYmV2cmt5bS8yKzEz?=
 =?utf-8?B?WjFNZGlJckQ0TG9NNUxadzB5VTVYY04yd0xOZ3d1UWJaYVJwVnlKM0dKTEpC?=
 =?utf-8?B?bmZuQXRLRXFaVnZ0RjNZMG1nT1ZpbXlIbDVaWVN4VTJVWjVWdERiVkI0NFM4?=
 =?utf-8?B?T3BYZVMzcWNYNk4yeXZmMFo0dkVpVnhtVWxMRjBHRUsxNjFjdHNCQUZ3eXVY?=
 =?utf-8?B?MlBabE1qaVQ1N2lZS05UTnozZEhFclhPQzFBWUt6MkVLaFo4VTh2N1ZyYVBC?=
 =?utf-8?B?R3gxblROeXZLbEszUUpLOGRyUVoxVU5kb0N6bGc5dVk3aHQzdmJDMjZLOHNS?=
 =?utf-8?B?bkZFN1U5SmFnYVZCbnh1OVhjS01ydk5IaDJqdWFCRWJaWUQ5bVVWMmRiaHRi?=
 =?utf-8?B?U0RkU2s5V1JvVUo4VFVNL2ZPa1RPbFlVWXNUN1U1QXlHa09LOXVFTUpqM0Zo?=
 =?utf-8?B?OWVpWHgxVTZLQlFXY1ltZzhOYkJTeUoyK2k5N0V0c1k5YXdJbmJOd1ljQlUz?=
 =?utf-8?B?cGF1VHkwSFlFbnFhYkNYdXZHYTJSeWV2Z01OazQzZkxjQXVVTE1ocUVPN2tG?=
 =?utf-8?B?bFJzL3ZOMnc0Mmo3VVBpUUptRXlNZmtrVkhJMDRGeEhQaGErZkpDRjljZmFB?=
 =?utf-8?B?ZURqZ2tmekhNQ2xaMUNtZDA5YWJQTEdPUGFyYXBueHIwbjFxWVJrbXdXcDVs?=
 =?utf-8?B?MzRLSkFkd21tNGR0emJrVlN0NWtmVTg0SUs2bTE5QWVQaTRjWkpVQ0FJZ1Mv?=
 =?utf-8?B?NlpqRVBBbEdJL3luckI0UHdNcDlodHVWTW5qditpLzFqM0JNclovcXFDclgx?=
 =?utf-8?B?eTRuZlJFSTFtTEJwZjdYbkFtaE8vTzExT2xJc0FhYm05VmtSbVU1Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fafbc603-3b94-4732-38ac-08de695ae31f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 10:47:01.3343
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EAuyRiFBhyl+sufGPJuHmbNhtkQk6COI+LLGRgFEgrRMgnSX7NEcORQOJf7xVO/cBzVtcrv+LrkPQCYfq5/Jpw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7844

On macOS the default encoding is UTF-8.  The binary encoding used by the
grep matching pattern is not valid when processed as UTF-8.  Switch the
local to C just for the grep invocation to use the binary match pattern
correctly.

Suggested-by: Bertrand Marquis <bertrand.marquis@arm.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/tools/check-endbr.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/tools/check-endbr.sh b/xen/tools/check-endbr.sh
index 383d7e710a53..0be9986dd356 100755
--- a/xen/tools/check-endbr.sh
+++ b/xen/tools/check-endbr.sh
@@ -109,8 +109,9 @@ if $perl_re
 then
     LC_ALL=C grep -aobP '\xf3\x0f\x1e(\xfa|\xfb)|\x66\x0f\x1f\x01' $TEXT_BIN
 else
-    grep -aob -e "$(printf '\363\17\36\372')" -e "$(printf '\363\17\36\373')" \
-         -e "$(printf '\146\17\37\1')" $TEXT_BIN
+    LC_ALL=C grep -aob -e "$(printf '\363\17\36\372')" \
+                       -e "$(printf '\363\17\36\373')" \
+                       -e "$(printf '\146\17\37\1')" $TEXT_BIN
 fi | $AWK -F':' '{printf "%s%07x\n", "'$vma_hi'", int('$((0x$vma_lo))') + $1}' > $ALL
 
 # Wait for $VALID to become complete
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:47:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:47:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227223.1533579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7kU-0003Sb-Hm; Wed, 11 Feb 2026 10:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227223.1533579; Wed, 11 Feb 2026 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 1vq7kU-0003SS-Di; Wed, 11 Feb 2026 10:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1227223;
 Wed, 11 Feb 2026 10: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vq7kS-0003Ph-OS
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:47:08 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02038575-0737-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 11:47:07 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7844.namprd03.prod.outlook.com (2603:10b6:303:271::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 10:47:04 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 10:47: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: 02038575-0737-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NywdI0C5+006Uh03nJwN3KS+aPxwxcYZPDqwNh1qPyUNTIB6diSZfkGkcijwRUOHrZjDDj4LTKewbZqZ++RUOR4lZNKPpCsb1ZEeIMygH3y73bxVL4xR5O+q/T6VR6KwA4N9C0f7dBloSIheKWjCURgxa+m5iLyRAPKhYcL4MQPlIgqwmWAUEOlXIq5CqaH3nsSj7jdjMXyviJGI6FTr+GM9AVtJwcm4gOnS5yjsvhWV9MBoAH1UMOwXT0aBo8/JLirixGUfiif+JtjUuqYrE5NKeRgjumTDRbtTgFIJqursjtWTphSfoXkvkEv0h+nniUntv1I1NuJXsewExtvGJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Xl0n5YtzEuDOR9roRgv/CaNdsWXGPUlwSYblNz8/sOQ=;
 b=IgZKCb8oMsGXmHnlsJcSSEoWAZyvWv58fX15xLl25zm+t2L9p/ZOUB0rb9GqpbHoP9seNGyzZhYAdL4POZEjY0y3vZmG84Ytf2/G06z90W/JE5OKtQed7vVLjzTDTt++KceRg8z5YS4A/KB11Rgtaqzfsm3hDbU6eXaxV6/+f13UqNzDFwDO+pP3iyqFSMk5OSt5KDffRKNLBiGXsVKascU8KFuQsHw2XmIiPZPnWO7ZqoOcXRUYMAGndhtRStWbSDrlM5iTuLwm1lr9tC99uf4DRaJxHX7lTC/gaLhitzW4hxGruyEmWZ6lp4ARi5PavwNOykEbgx4XcoYDR9YzYw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Xl0n5YtzEuDOR9roRgv/CaNdsWXGPUlwSYblNz8/sOQ=;
 b=cgMn904VDUT4vkeZFE1iyhQeFUn1ZDhs1xXPcbmHpny9ecHoLPhV4Vzv2QtrP7bVcpYjeiGMtithzzAU6D1NIS2v1ZGwx1ZhjI8WWPGWKcA2tb7ALgBUeuNlhYOS9q9XQbsFxK/7pUt7v2+Jb4V7FmT+WcsxOcQycRUMZo+xMM4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 4/5] cirrus-ci: add x86 and arm64 macOS hypervisor builds
Date: Wed, 11 Feb 2026 11:46:37 +0100
Message-ID: <20260211104638.7938-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260211104638.7938-1-roger.pau@citrix.com>
References: <20260211104638.7938-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0044.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB7844:EE_
X-MS-Office365-Filtering-Correlation-Id: 1f10ce63-adf9-4819-2994-08de695ae4f2
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?cEs4dDhuTVZNUnFlOTBXc2xEaittV3ZLeExCK1JlblFLT2ZWa0FzVmJpckNv?=
 =?utf-8?B?KzBsWDkvOXRYZnJQR2ZTUHZubWlveENvd3pDNUpVc1ZqS0RTRTUzY2txVUhu?=
 =?utf-8?B?eUhJWUxLRHlJenZ1WXBoSDdqejdjb2VpZVZBcHJQRGVoeEFvUHlFcXQ5UEg1?=
 =?utf-8?B?b2FvUDhDam94R3lPdkdnV2pnYXF2NS9XdWtGNmFGbk1GVjBGY3l3R1lhaGpK?=
 =?utf-8?B?Q1AxZ2tKRnFGa004YjluRHdDSXVEd2U4MlZiSW5IVDUyeUJNY01SbERUYTBI?=
 =?utf-8?B?MmRJbGxzcDJTc2h4Vm9uY3NlTnRIWmRpZE11ckJmbnUxR0RaTFkzbXk5TmR4?=
 =?utf-8?B?ZzluYUxudm9ZbGVhWmJPK3psRE9ib1RUVFoyMk1tZ1BRSlNSSnhQK3FTRkQx?=
 =?utf-8?B?aUVkMmpBd1RUODhMTHBJaW4vYll1TW1GelFldzBhNTZoNURocXQ2b1NiWmNF?=
 =?utf-8?B?R01PU0lQd3BEUmZxQitBbTBMem1EK0tRODB4djY5MUNZY2tUV3R1SHQwZG5O?=
 =?utf-8?B?Z1NiVDNRdkhEQUJDeVVYZVZVRXVONE13U1JuY2lTZmJnZm1sOU1RZFluNGpU?=
 =?utf-8?B?L3lyN2w1bkhMaUZKRWp3ZngzWGJFdlM2amlMUnhWQXhwN2VPK3V5RGhzemth?=
 =?utf-8?B?OGp0T1h3a3NyVmtJdXpJbjhNSWlMd2laOVdQZ2ZZLzZFMU1ndm9kdFdrVmVJ?=
 =?utf-8?B?SU5pbFV6OXJrMy9zWkIwR0dweWhCYTRBOUZCOUJMYTNqeTkvSXVzaHFLVXBa?=
 =?utf-8?B?cnhqU09qcEdwZVZzUzZmNlJUc0xBak5VUVBlUDdpUEVmamJITnZwODdDWmZC?=
 =?utf-8?B?REN0aXJ5K09SS0kwOHJmbGNGQWxBcm1tanROVGU0SCtTUmJzWHVTbWVqZUdq?=
 =?utf-8?B?WEZnNUZPZE45Nmtab0dRa0xlcHZrR0UrQ2l6akszaG5Nd0x6ZjFidW52MmVO?=
 =?utf-8?B?dGdGVG52dEtMcWZTaUdwZ3RWeHBlejdNNE9jeDNHQkdGL083Tk1rYUg1ZGh2?=
 =?utf-8?B?TThlUjh4TGh5MXdGYzV2ak9lYlZ5L3dqcHJpNkVOek40dHZjZEp1TUxlSXNu?=
 =?utf-8?B?eWtVYURRU0V3YnR3RUgyejBYeVBSZHhQQm9FOXdmYU0rZlJIeU03Kzc2UVZv?=
 =?utf-8?B?NkpFTEQvWXRCdyt2YWJld1o5a2d2cnBQSytGS1NpZk1iMWVOc2Q4eWJDU2dV?=
 =?utf-8?B?dGZZc3FQUEljRkVnSVhZZmZmb0MwWVBmUTZ5aUhJTzFLLzQ4QUNqY0ZHT0hq?=
 =?utf-8?B?YTFlRkVENGxjcEJxVzVMQ2RrOTNXSjAxUE1tQzRNVkgxa1FLQWlKL0J6bzVX?=
 =?utf-8?B?SDRleEEvM3IvOVk0VU1LQjB4OC9qbkhUWWdVNXNVbFVvMkJGUnZwZU9aUlhw?=
 =?utf-8?B?WEFXcFlwZlk4d0JHeStBVWNITk9EUThVK0FrUXlmbFhnVjc5YTVlaU1VaXlj?=
 =?utf-8?B?b21pRFM4TkRxQVE2YVJ4WFNXaHp0c1ViQ3Vaakp0VzVLUlF4bXlZSHpFb0I2?=
 =?utf-8?B?Wk01Um52a2M0ZklWQkk1VUtaL0pEazNITzUyeXpZZGx6NDdkTlRKN1A4OTdl?=
 =?utf-8?B?TGpkNUYxbWIyNm40WW0zbm1qNWl0bU9HaS9EUU1rWkQzT3RQQ2VnQktQcXN5?=
 =?utf-8?B?UGFoVnRCTzJzQjlPMXRpZlgwT3NrdlluK3RLa3g4bHEycy9pc0N3MGlhUWZv?=
 =?utf-8?B?dXdnS3Nkc1RTWUk3a2tIS0ptQW5sYXJ4WGxVV04vbVBDd25keDR4d3lmVnVB?=
 =?utf-8?B?cnp0clZWRWNCWEIxNEtqd0Y3d2wyc20ybVZOa3BRbDNrTEhjVld6aHZ4S1VG?=
 =?utf-8?B?UmZldm1sMS9FWDJIVWRGS0cvNGU1TGFDSnNIazRzaWQ4MkpubXUvNER1Q05o?=
 =?utf-8?B?Q2VRMk5GcERMYTZoenVSaHgrWEFLb01MMDgwanNXVnpJR094Qmh2Sll1Tk9w?=
 =?utf-8?B?Zm4xYXBPd3RCMnMwTTBGcTJ4ZFFONjBUL1g2ZnVPS0hCT2dTOUJXYkhPaGk2?=
 =?utf-8?B?aVpjQVFYc2J1Z1A0dldoWnRLSWgwKzduT0xOU0IzQnBKZkJkQkZRdXhmS3RN?=
 =?utf-8?Q?EfaiwN?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dkEyd0cwakdVUnRtT1lYUVBneG9STmdVTEZaMDRlai9xNEFTRmp3akNkOGNn?=
 =?utf-8?B?cUZiOFhBblVMaU1MaXp4YlhJVEswMHpReHkvN2FZV1RuTi90eEhpNnlPL2xv?=
 =?utf-8?B?UWJ0VWl2VTBiZjVlWHc5c09ET1Fjd1h6Z3lXc2o4b1hucE4vdDF5M1FNc0o5?=
 =?utf-8?B?TDI4eTJROGtqMm41dmV3R2Y4aERZSDBnSDRjYnVuU0dkeFJGOTVOWXZNU1NI?=
 =?utf-8?B?MkJvc2ZSeHBYRW1jaHFDUFBQS21DZHVKNnVpc1BHMy9SbGE2QnZETzZ3bWNS?=
 =?utf-8?B?L0hUdkptZHhFV0xHQ3ZINEsxRGRaZFpNY1BBS2RMSlZ4Q3FLVjFuaVNkbksy?=
 =?utf-8?B?YmZ6Zm4rbE54MFNxQ1F2QTl0RkpKa1FXOWY2UFZIbU5YTFlRUmc5aWdTVytD?=
 =?utf-8?B?K1BaZkI4WTU1aG82cUdCNXoxRDQxaGQySlFNVzdSekNaR3F2cGJxUmxGeHYy?=
 =?utf-8?B?U29TSkhkRytGYXpaYW1pVGljZ20xZWJSMlhyQ2VtVFpaL1NLQWFuZWVuREdE?=
 =?utf-8?B?Z05JMmphZXN4aHgvN3FKbklkMnFlVTdSMVRhWFNtdDI3MlMvV2pwQnFiNThr?=
 =?utf-8?B?ZHBJVmpOTnIzd1hndkxVVEw3ckdHR1dDQUJGeHNPM0V0SkQrelczek10Zktu?=
 =?utf-8?B?aFNPRnY3SVZtdGc1cVRXSCtmeGZMcXpic3hMTHdFZHgzM1p3YjZoS25Sc0VR?=
 =?utf-8?B?djBpL0lwYjh1SDllZWlmRmZYdjI5LzhuTHZRVkx3YkhYRkVtMVdVdC9Da0ph?=
 =?utf-8?B?OWM2MHdRTmpEUndpOWZMWi80Vi8wQjIwbzhWK0Y5OGpNSnFqam5jN1JNTSs0?=
 =?utf-8?B?R2g5RUg4ZkNRVi8zeE1JSmpPWUt2WlBlOUNzV2dvTVlpSU5WdmRmUnhQUWJN?=
 =?utf-8?B?V0RvMFgwcEpCLzNEM0RHL1FzSTluVTBSdUZhN3dIbG13eHpTMVEvZGdtT1VB?=
 =?utf-8?B?eFhWTHZ4ZWRJRGlldVg1b0NXQVI3ZjdXODdwd2k3OTRLdVM5NnhreW1HT3VO?=
 =?utf-8?B?UWhzV2lmS3ZUM1JxcmFzZWM3NkNPTzRFVnZPdHY0R3ZGYnVDQXZPaTg3UEJp?=
 =?utf-8?B?VndqMlFYVXM2aTRLUGpWUmlUUnF6ZWRYRG5kOE9sZ21HNUYyeGl4RnV6a0VO?=
 =?utf-8?B?NlFiZGN1VmZGd3dLeDdqVFJQbi9Db2lIQjVjdFlyejBVTnRTcnFMcGc5TVhJ?=
 =?utf-8?B?WUptWC9hZ2Y2OEdFV012OGdqRVhVdkcvak9OVHk0Qld4TDdLYng5WWx2V1N2?=
 =?utf-8?B?cFlERloyREtseEJjUlBEWlliK3JEK2VpZmxhRm5UV3pTYmhEQmNQR25BSVVa?=
 =?utf-8?B?NlRjdytLeHhGS2E0azQ0V1g5SEJvYS9nR1Eza29Hd1YvUEFsL1AvdE5ZeVNm?=
 =?utf-8?B?bnM2R2I2T2dSdFJqNnZOWXorZXNMWVpnV1drZVB5ZUozRHhTaU5kTW8vT2Iz?=
 =?utf-8?B?MWVGWUR3VHVuV2t3aDBQd3hPNkpmUDVMRGtJUHU0WlRtUzZrQnpac3NDRHpV?=
 =?utf-8?B?Z2xKSkJ6Qit6ZlF1ZVBtejdPVzVoeG1OZTJWTmppbm04STkzVmwvZUR2ZnZO?=
 =?utf-8?B?YU5BSXUwZ3pIeUhDalNKT3dMc1BVSzlXQU1ma0NGQ3NuZ3J0bEl3d1dVdGQ1?=
 =?utf-8?B?RHQwTEhmUHFiWHVVS3dWZ0lkTndlTkYrTnlvdm95RzRzOGR6SWwyQmNUL0FW?=
 =?utf-8?B?aTZZd25GT2JubWVFTVdodU9GYU1IakNjZUw4RU9JbG5NcTNPaGZVVzc1SFNl?=
 =?utf-8?B?VTY1VS9TWkIvMEJWTkE1ek1UcmZJZEtjNWtSeTJXcnMyRUFqUTgwKzRzcVBC?=
 =?utf-8?B?a2RQcDBOektDak9pK0x5NFdPaTNocmJiK3AxUlZuZzlkd0FlQy9hc2VjdG9S?=
 =?utf-8?B?UGFQd1VhU1BQbklITGNWb0IwQjhQalE4RXA1T1RTUDBvYlZQTWZRK1hZR2Nw?=
 =?utf-8?B?Wm9lZXNtdzBOYVdwVXlZWDlQS2NBVjNxWGhPVkJuNFl6VmdZTW5PVFZGRmk2?=
 =?utf-8?B?Q0JFNkhZeTZSWGhZWE56M29DaE94TGNnaUxpVllId1V0M1pUQlVTMjNUZWQr?=
 =?utf-8?B?OE9lVG9rQllzUC9hcTQwNWxyWGtiWXZuQ3dNRUFtQmtOY2llZkpkYkxDdDRQ?=
 =?utf-8?B?ZDkrVHlxTFZNanlkSTVQbUhuT2JnM1pyZVhHT0o1WGlIak10dmhIYU9VNjA3?=
 =?utf-8?B?VGpPY0Fmd21Oc3Z0R3RYMzZFUjh0TjNPRVc4RzAyZmgrYW5rak9rZ3c2ajNP?=
 =?utf-8?B?K1ZPa0NRTkRQSytjYk1DVEhDVWRseUpjUzJTTGdYc1grbExkWFhDbWErK05R?=
 =?utf-8?B?ZUJJL2EzY2w1amczL1pFbVU1dktsc3N1RDkrNlBXRGVEVFFaa1Jwdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f10ce63-adf9-4819-2994-08de695ae4f2
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 10:47:04.3930
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BuM8Mz3GxKlW+7RLN3X4Gm2o7uL2tZenE/IhD81QSGuP9VJCxa0V2ClKVUqKai7XrOTb9OXgesAyNITWrqLBkg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7844

Introduce two new build that run on macOS Cirrus-CI instances.  Those build
the hypervisor using the elf cross-toolchain from Homebrew for both x86 and
arm64.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
I haven't added any randconfig jobs, we can consider adding those later on
if the builds are stable.
---
 .cirrus.yml | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index 7bbb4f1c5c6c..b9608e71cca7 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,3 +1,5 @@
+## FreeBSD Build Jobs
+
 # https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
 freebsd_versions: &FREEBSD_VERSIONS
   env:
@@ -122,7 +124,41 @@ task:
     path: xtf/tests/selftest/test-*-selftest
     type: application/octet-stream
 
-# Test jobs
+## macOS Build Jobs
+
+task:
+  name: 'macOS: hypervisor build'
+
+  env:
+    matrix:
+      ARCH: x86_64
+      ARCH: aarch64
+
+  alias: macos-$ARCH
+  macos_instance:
+    image: ghcr.io/cirruslabs/macos-runner:sonoma
+
+  environment:
+    CIRRUS_CLONE_DEPTH: 1
+    CIRRUS_LOG_TIMESTAMP: true
+
+  install_script:
+    - brew install $ARCH-elf-gcc $ARCH-elf-binutils
+
+  build_script:
+    - make -j`sysctl -n hw.ncpu`
+           XEN_TARGET_ARCH=`echo $ARCH | sed -e s/aarch64/arm64/`
+           CROSS_COMPILE=$ARCH-elf- HOSTCC=clang -C xen
+
+  xen_artifacts:
+    path: xen/xen
+    type: application/octet-stream
+
+  debug_artifacts:
+    path: xen/xen-syms
+    type: application/octet-stream
+
+## Test Jobs
 
 task:
   name: 'FreeBSD: XTF selftest'
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:47:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:47:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227224.1533590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7kW-0003l7-Px; Wed, 11 Feb 2026 10:47:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227224.1533590; Wed, 11 Feb 2026 10:47: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 1vq7kW-0003ks-MA; Wed, 11 Feb 2026 10:47:12 +0000
Received: by outflank-mailman (input) for mailman id 1227224;
 Wed, 11 Feb 2026 10:47: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vq7kV-0003Ph-1W
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:47:11 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03f3d044-0737-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 11:47:10 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7844.namprd03.prod.outlook.com (2603:10b6:303:271::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 10:47:07 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 10:47: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: 03f3d044-0737-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D7EnF9Oh2j9x4MuXQbBgRVLDz7MOIy1NFQn3hG/eDiarEEKzY4d4pThr3e747VkCGqtak5ev4jfQBvReWIB+Jl2eN0Fnbw81XxIXFPePsgaSssaP7oYprbFZ0F/emYNkA38JO8LLTpDatikmlgC7GC3F/xCedBln+hDJUjSFlBvDHQGMAISlYvt9L/ab+D920jNDQQDe+TPBJZz65PJxmvXcpcOpnYI9SBcZEN3Oxo0yA9b2vFMCR7A7OW92aykeC2cqHsHxFWB6R6tVtZCe/7tJil+TpMJaf2V+R4LmPcUQ/3M9i32qnJnVYdKpfkgVDX8SVGrtl5GpYETsGFqWag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3T8oymG73Snbnqn9O5cozXBum7bvjprNXvXR6x+JXf0=;
 b=q/4nozda7mArKdr7jujsb63ee3VblxZqXlw3BHqTDLJtYZrM8rBfeYtDC/LBIcuMfdwbJ9JPj7oPNd8+Ynt1YF7AmDxTeIPZPL4JwSHsEK0++MvibKedS8puW/DYGqlo4UQaNsHn4VX4wrK4W4j6tYHfW+kHFXSC8H8DXZ0S5qWDAvwjThCbtBPQRoT70ECYw5kfJ9NzBVVrvYLESH6Qicp4VEFMuQrNYk518sih336G2DMZ0HjiiazxPVmn2G7jT+njhxeKF+FoWr7cY1iDbDSyLfctf75Odhr6L0naA2uAJrXhKJRwQNTaRVrXb0SOvUdnddQVRhSZATEVdzReIw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3T8oymG73Snbnqn9O5cozXBum7bvjprNXvXR6x+JXf0=;
 b=njXDGfIzh9vPkEu/JXMi12WajodikqjaT3GeQkjxOgv2FfmhOTD6sSlRmvsz+ScaOqBcw81jphUW5+q1SlI+bXzMIREhPMCBQhUg6eYdSUZS75aHIaEzC1dO0eRXn3ziUnHy07XwJdcT4+jnjh1vtjptfeXWzfoOQuJOxkYrf9E=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 5/5] cirrus-ci: add x86 XTF self-tests for macOS build
Date: Wed, 11 Feb 2026 11:46:38 +0100
Message-ID: <20260211104638.7938-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260211104638.7938-1-roger.pau@citrix.com>
References: <20260211104638.7938-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA4P292CA0009.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB7844:EE_
X-MS-Office365-Filtering-Correlation-Id: 2264df8b-560a-4ab8-fb7b-08de695ae6d8
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?Q2RkZ0tGZWV2RnJ1ZE1CVkV4dUgvYnR5MGZVS1ZuMDlJcjMvR2xHa2pRVjJJ?=
 =?utf-8?B?Rko5MlBFbkwxdmxmbmRRUkg0Vy9pdFN5dzVpTHdOWjBYT3RncnpMemJFSVQ5?=
 =?utf-8?B?NURsK1V3YTRqM2Y3MllyNFNacStKNW1raTZrRE5ncGFUaS81elJBVmI2MWVX?=
 =?utf-8?B?UHpGS09RZnBPWXdROThyOGduWm50bFFldllla085d0I3akRkZy9FTnQxQnF3?=
 =?utf-8?B?WUNLZzlNRjJ2UTUzVGxSQ1kzWGFsY1J5S2ZPM2JQaGtCRzBzQU12ekIwZ1hs?=
 =?utf-8?B?anBCUDVCOHZhamtzZVF2NXRKd0xXMXpSVVBUUjNhd2M4NUwzQkVQU1VRQ01B?=
 =?utf-8?B?czJYMlZEUW5uc3RHRFNLMmxtWloxQXoyV3NLM1Z0QlgzeXRIZTRrd29LcmVV?=
 =?utf-8?B?N1BSOVpoSU5PN3p0NEFHMDE2aWN6ZEpHQ0pkN0hramNmV2RQRWkwNEY5ZVpD?=
 =?utf-8?B?bjU5NWVQZkltQlk2QjVxUWNKUTVPWUpHOEIwblRvc2FjaUFrbnMrU2NJMDlS?=
 =?utf-8?B?d3B3ckJ1U0o2TUQwVjRPeHhYcGxvSC9mWDNHNVMwdkx6aFU1VnJJWWV6TDhV?=
 =?utf-8?B?VHBLdzRLb0lMQUtQOUZvS0xmZG5YdEZUWFExS3NlVE5DYUpRbDVkMG5KMHpK?=
 =?utf-8?B?ZVdnRXFWZnloL1BXRVRTemRhTjVRdzVGcklkNEplQThQRHF3MXlocXV6QXU3?=
 =?utf-8?B?aEhOL3Y1VUdYTWlDcTZRMTNuNldsZWlzSkRUT1k5SVNnSGZLT3M0MHRLbnNT?=
 =?utf-8?B?T1JkSlRzVzFpcWNqMGVZS2V5ektnUS9rend3a0ZQWVpPajh4MnBBcWhDcHY5?=
 =?utf-8?B?NEhxdzFheWd3WnlZc1pqVkF0S0RqMHlxQmhVSkx3Nnl5NUFOQ3VtV2psaVF0?=
 =?utf-8?B?Y1ZhSi9zTGZPWHNnSGFjaW4yWkdPaWVESUJMY0Q4STZGMlNuTGRrMWRpS1hB?=
 =?utf-8?B?S0paMWRmcmkyMlFTUElCTnJ4OUN6ZkFRbnhkcWNkWXdaRjNIRURXd0VhWEVr?=
 =?utf-8?B?d0g4R2hSUE1DeEFiOFI5amhEUEJOcnVFcXFsaW51cFlMU1JYZUdjUXFaSGdY?=
 =?utf-8?B?WjIvZDdQeXU2VWNkdXk4ZEU1Q2FMUlB1RTZYUUtYd2FpODNYSHgyanBvODlp?=
 =?utf-8?B?K1E2ZkIya1BqazI0TlVRS2JyelZVWW40L2xtQjVnUGhwNFNhUjBtaVhmUHZw?=
 =?utf-8?B?MUNkR3gzdndrdXgxM3pXckxvSGVOemJ6TjVYUHpaV3FrdjNNbUtQN0ZFNldK?=
 =?utf-8?B?WW91b1FUNElOTnd0WDZveW0vYzVwWFM2ZE9GZncvWXdzL0Z5QlNMR3BzWDk5?=
 =?utf-8?B?Sm5CbTdmTzYyS3Jmam50TkhNVmlwVXNML2ZGR0dmUU03L2RNMzVCNktiVUxR?=
 =?utf-8?B?aGhzb1VVMWlxOXR4c1VRYktjQ2x0N3BEbnRNOXY5NmJDUStrWkswN2VmZENU?=
 =?utf-8?B?b3ZrbXBLOVpHRTg5dzVWYnVXdzZSZmVMeEZ1RGN3YnhaZ0wzQWp4aHdkb3RL?=
 =?utf-8?B?dEExekF6MTRRaXlpeFRRTkZoLzhmdmFhS0djTWZ6YkZoaENBREhZUStWL1d3?=
 =?utf-8?B?MHZ4N041dDRLU3NtTC9DL2p3Umw1ZGxRZTgxaDBDVjdYTHJkanVaNGx2WnZa?=
 =?utf-8?B?WEVVYzdxdjZjNDZMTDY0c3NMTXRCTVU1aGFZVHdvUW9uUEpHY1E0Snk5ejJZ?=
 =?utf-8?B?ZUs2eG1reDJUVzBhcjR0K0JOZ0hQM09lTmhSTmhyVmIzdjlRemhNVWhLMDkx?=
 =?utf-8?B?dGptQjJXeGFXZG94Yll3U3lxMndycHdEMzlLaU1WeHFrZzhnd05yb2c5UXVY?=
 =?utf-8?B?L0ZDVjFCbURSTzFITXpvSWpmNWdLTnhvcHZsNVBjYkpvd2dtNDFmM2wyL2N2?=
 =?utf-8?B?eG96YjE4ak9lM0VZNlJJY0NKMVlMUUptOWhnTmVySC9mTlMvNlp4N09wTnVw?=
 =?utf-8?B?akEzWDJ1Q3V5SUJod1UwTDFCa0pFbjhZUnNzSGZ3T0tBbHhiUGFYSzN3Q1Z6?=
 =?utf-8?B?ajJvQ2Uxbm5DdG9wTTQ0THg5N3ByaTE2cWlIQ2R1MnVlOENTNkdBVWNvRzQ3?=
 =?utf-8?Q?X6yR5X?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TmlrcVJTUWVSVHo0VSszcnJSZkFZbVhTaVViNzZVYWxNbE9zVUYyUnhLZVN2?=
 =?utf-8?B?a3hjQ2gweFlPdkxjMlNLa0hwNFRXNnM0dEsrVVoyK0N1MDY4N1lFYlRVKzI0?=
 =?utf-8?B?Yk1seWlnT3NSYnRtQ29XclhnaCtzNm5sNDRGSHlxSENZTmhVY1hDTS9OdDJC?=
 =?utf-8?B?ci9oU012MThXN2s5emx1dVRFNmUrY1BvOGsvZ2IvUUViaU1TanRNeldoTXdC?=
 =?utf-8?B?L3BLNkxTTjNnaVBDNURrdWpkbVRNUDZvU0U3V1ByMEhlSGo2aXpuN2FhZFBO?=
 =?utf-8?B?eUhaOUV2bmhlWFZ6NTkvSi9DLzlLTDJyUkNSd0hHZXE1VU50TG9VRzc2K1pj?=
 =?utf-8?B?TFZjQ2NCSG9jcFVrVmkxcTVoM1VLSlBvZk9FUTZaM3FLVGUycDFCTU51M3Nr?=
 =?utf-8?B?Y0VNSHBkTCtPcE9IcUIvRnpjTVIwSDVhOTUxLzlZV2lCdGhrSXlGelNZZkFC?=
 =?utf-8?B?aUh6Z09GZzVxRmZHUmpDYUpCVGxRVU80dWNjMUZpTUlPczFBSUxNQ2s0T0VE?=
 =?utf-8?B?VjQycHJuOTFldERrTFB5TXFDdzJKQkF3MEpkd1JidTBTdUJrR3NMTjlTVU1U?=
 =?utf-8?B?QVZURkNjd0dSMnI0WldLNHN0ZHBwKyt3NHlKK0p4RGdvSGlrTENyTjVWdlhG?=
 =?utf-8?B?cENVeW1SV0piZDFRVEVFVXJ6b0VvKzY3d1hBa2pWeHp1ckdIT0YvTjNVV3hR?=
 =?utf-8?B?WXZHOGdKbTFscjJJeWl4N1k4L01adEZFNjA0cXRGMWorMWxSN2VBMXhjbVdO?=
 =?utf-8?B?YnZEYmsySUlselBTZC9hSXJFVGhPdFNYTXZVc1RzUmFHQllFNzRUWkpCUk94?=
 =?utf-8?B?bmN3WVdCMnNzTFN0ajhpL2RucGZ4d2ViSmtIWGYvREhwcnFzOWhGMTRxNUcw?=
 =?utf-8?B?elk3QTA0TkQ1ZCs0dy9OL0ZIeW5CSE5pRklHMmFDL3cxWFoxSFJIUzhIZXEw?=
 =?utf-8?B?bDFmakNzK1ZWcmNHRWRwT0FGdzR2NUxOdEhHcjBPT3lHRXIzejFFWUFVQ2pT?=
 =?utf-8?B?d2xiRVNZZlVCUUsrV1dsc2MwTUFhVXhHRlhBS1RUbGNNLy96RGZOdUJaYzBZ?=
 =?utf-8?B?YjBVOU14eVlLOEdpeks5ZEttSmdGK1ZWR1hlQWVvK2YxU1ZBWTIrMzNtbk56?=
 =?utf-8?B?TElzeis1ODlUUlZpMzFZZDhaRzdlTktXaWJHNzRqckdSTHhpYmVCSjZrZmtM?=
 =?utf-8?B?YlpIa3czMkNUWm1Od0hMbExaOTZVQjd6VXU2eWxrMDJhTzFNVEhhc0MrVTRE?=
 =?utf-8?B?UXBFRmpQU3FWZHRud2J5RlhLNmxmWUV0WHViaGxNeGVxZUl0S2Z4STZKWGhh?=
 =?utf-8?B?eWRpRkdYZEJ4YVZjS25xcWhDKzd0bzhMSXI1NFdsaGNCYkpkb3IyZTIyazA2?=
 =?utf-8?B?WWF5dTRBTFYvSnRIZmVCQXpoQ01SMWtQV0phbjJUalZ4a0RLRW1UMllkRmtN?=
 =?utf-8?B?QmtnS3VUdExsb0xOK2ZhSlBoYUk3VGJQSDNZMHBYb1kycGhnM25yMzZDN3NI?=
 =?utf-8?B?eFZoY0xuQmt6L3NTWjhpTmVCdEg4Wlpzbndza05sQ1B1TitabC8zdGFjMFhD?=
 =?utf-8?B?NmZOZjZ5STg5QUdHZDlLREE2WUdmVE4vRlhUczRKWlFuR0hFYm9JRXFaV1Bk?=
 =?utf-8?B?TXNubFVMTHdhaDlqUE9lTjJBbnV1ZUxVM2R3bDBxd1EvQVFWUDZBd2NZWjFm?=
 =?utf-8?B?UFJhTXU5RkFFaG44L0sxRWNCU25TbElWTzFHd3Y3ZXdHU1R5STFXODd1Snc4?=
 =?utf-8?B?NHZncEhvUnFFOTY0U1BzNHludjBaNVBnZmduYStGR0tPQ2M0ZDJ4enhoeFlO?=
 =?utf-8?B?WnRBbk5wUEFWbEdyYnNWU1E2L0ZMK0RoSkxwMDlIK3hJQ3crWmpEWHY0c0oz?=
 =?utf-8?B?UkpKamZabXVWZzF2aGhNeU9YT0VUQllDdDVSQnJnQWN2a1NjaE5LNmlJTGJv?=
 =?utf-8?B?L1lwbWkyRTBYQUl6ZHJFOEMyMnlBVld5R21JNVd0WUx6ZFJRNXd1SVZ2ODJ0?=
 =?utf-8?B?QnJKVHQ3Q3paWDh5VzAreEpRZGtXUUJWSS9naTAraWJZSlY2Wk9KUTFuMEJO?=
 =?utf-8?B?YmJ6dCtjZ0pkOEVMd3dRM3BaTndkNTJVQnR5QXMvWmxzOHFvS0JKcFU2cC9s?=
 =?utf-8?B?dW0xbzFuTEFRdmFWeWozZWZtUnJrMUxHOG5nSEF1L2JIQzRTNXEvNWtwbTFj?=
 =?utf-8?B?Zm81aTRPbDB5dmtsVkxGL21RSjhqSldqS0xUTlpNdG9tUGxoRWV1a3BaS0Qv?=
 =?utf-8?B?UTgvbmJ1SjkxK1RmcHRtVjdWaVR6eU5WTmxTaHBST1REeWFGUVlvUEh0R0Nh?=
 =?utf-8?B?b3JhU2dVaFBKQ2lDRGhic3BLTUdUSUxoVldyUHFLR056Z2JtcThodz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2264df8b-560a-4ab8-fb7b-08de695ae6d8
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 10:47:07.5749
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VzDSlz6+/tOmVwgvV9DLiUMKWIU/t9Fq6LCoJFNMoetkoiQHN69yO21wLEA/LGaOtJNjJkulOB40937Gaz1crw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7844

Like we do for the FreeBSD builds, introduce some basic smoke testing of
the built binary using the XTF selftest image.

Note this is only done for the x86 build, there's no ARM support in XTF
yet.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 .cirrus.yml | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index b9608e71cca7..839c25149c9e 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -161,18 +161,19 @@ task:
 ## Test Jobs
 
 task:
-  name: 'FreeBSD: XTF selftest'
+  name: 'XTF selftest'
 
   << : *FREEBSD_ENV_PRODUCTION
 
   env:
     matrix:
-      FREEBSD_BUILD: $FREEBSD_LEGACY
-      FREEBSD_BUILD: $FREEBSD_PRODUCTION
-      FREEBSD_BUILD: $FREEBSD_CURRENT
+      BUILD: freebsd_full_$FREEBSD_LEGACY
+      BUILD: freebsd_full_$FREEBSD_PRODUCTION
+      BUILD: freebsd_full_$FREEBSD_CURRENT
+      BUILD: macos-x86_64
 
   depends_on:
-    - freebsd_full_$FREEBSD_BUILD
+    - $BUILD
     - xtf
 
   install_script: pkg install -y qemu-nox11 expect
@@ -187,7 +188,7 @@ task:
 
   fetch_script:
     - fetch https://api.cirrus-ci.com/v1/artifact/build/$CIRRUS_BUILD_ID/xtf/xtf.zip
-    - fetch https://api.cirrus-ci.com/v1/artifact/build/$CIRRUS_BUILD_ID/freebsd_full_$FREEBSD_BUILD/xen.zip
+    - fetch https://api.cirrus-ci.com/v1/artifact/build/$CIRRUS_BUILD_ID/$BUILD/xen.zip
     - unzip xtf.zip
     - unzip xen.zip
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:50:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:50:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227264.1533599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7nn-0006mD-Az; Wed, 11 Feb 2026 10:50:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227264.1533599; Wed, 11 Feb 2026 10: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 1vq7nn-0006m6-84; Wed, 11 Feb 2026 10:50:35 +0000
Received: by outflank-mailman (input) for mailman id 1227264;
 Wed, 11 Feb 2026 10: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=fnCX=AP=gmail.com=freddy77@srs-se1.protection.inumbo.net>)
 id 1vq7nm-0006m0-Qb
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:50:34 +0000
Received: from mail-yw1-x112f.google.com (mail-yw1-x112f.google.com
 [2607:f8b0:4864:20::112f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7d488dbf-0737-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 11:50:33 +0100 (CET)
Received: by mail-yw1-x112f.google.com with SMTP id
 00721157ae682-794fe698e36so19477857b3.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 02:50:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7d488dbf-0737-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770807032; cv=none;
        d=google.com; s=arc-20240605;
        b=J8GSdfDU2jG9TE93ILAtZzH4fasYm0pT+SNn9G3EyUYAAZ0MvBsDtRVsI/92Ihol48
         7EI+w+dRCa5ZYfkGa3I3PQwlv1GDzDV257DYEQJBcl+vG+AQAAXl8eVk0kw6RjYxzCws
         HLsLm3lhK4l4o7PoOxjrinNxRcqHTmfZjwPjPAkRrEcWY5IpBlcfpVEbY4FQJpnx9U+V
         f73nZvbUWAyVc0l5e7P1wL7o52/L2rLmshSia2ySZpQoDmhWe5vDTFmQcJ1h2muCvZvz
         CIxo6VTOemL8bNAet3H0KW7Dg6JIHE+H18vK+yG/ORhhODARSxtzi6DkPcAbseC7t2Zc
         JWzA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=BW2TUjdeeNfaM1vLqistjWuVCzgiBpJ8bBbK+pmeSoI=;
        fh=tPU8FCqh8oAm9Fkg76jOUCeHgLvvbwQJLfHhJlJtFT0=;
        b=i+oPA98U3cZd/KyQlfcXn/PWN6zo0tW2wY0+NYs1tYvVV9DK3UUP3RnE5DiCtqeX1A
         iqG+Zda6oQoq8Sr+NZU3ScUZDee+jBHwKMNW5sWGypQx6vbyHgYhO/nA14hCaw6sKD7i
         x+fRjk54D8DHuD8IqdwD/JprWvIdmmt0sfQQLDQH4MY8YCLwAdyTJXNAhUilyyI7ez1j
         WtQTQhNI7r7Y2yRSv/bTQ1qd1ejDKc3QxCbp4ee6dP2U1wOEs/5DGkJMNOahLJH5ifm1
         y1+cf6FYvqWm/nkB1u2A51WSWiBqOO1UWHNfAsoJwOjxh2fuyy5Fb14IVivpc+0DvglD
         0q4w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770807032; x=1771411832; 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=BW2TUjdeeNfaM1vLqistjWuVCzgiBpJ8bBbK+pmeSoI=;
        b=DEyTcBXCIYPXREVUZrWubZaUgdjZ/D7SAjnygXDlxiQEQaiuwL0a0sTX5eLKIwlpQ7
         tazZ3FuUMjki78rovC6T4vWNC3g5CUPcXLJmyyhPdZMfsFOX6oUvGLDE8tynXfd88gHU
         iPuBhG6JTX82Q789gAS5builHleex1na+JCr6LsxiDMMLF5vqYgebKc7HBWze4b7zMVl
         XUnkSLfix25emNVYXXH0D7RD/nZAOxdztDsrUq2aV5qDrkX7kPrVgjXF+g0pQbno/bfK
         SF9cPjUcglHHszJXSJ62sQEYZcf1k7aHI40oiOF0XtDikaBDTkZEUGE98AgYJuxZT6Q4
         my3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770807032; x=1771411832;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BW2TUjdeeNfaM1vLqistjWuVCzgiBpJ8bBbK+pmeSoI=;
        b=FFC2vBX8OgjZCS2nrLQakwWpRsmoqHJ2+Sygk0rmGtQIFe04Mnncvp1XcAJmDRxPON
         OsqBLDccCjCTMFvuTl5NJEeoOknPxjHxjokLu/godvSKNuD0k92XayPXLIiGf+jTWQqV
         VVtX6+flAGrQ9k1xjJ92dliubkxqLA/Sd2rThpIkU8VKRby1uKJ0QB2AJQxexlWhbEl9
         Iq2/r7ov6y9tApVb1TmUnM/BmI1SwvqDehQZyIiCZ9VqPpE6jCtwi7r+iK5BBLslPknr
         Oas1WoIyOp+zDJVN3S4DiBDs529IsHMMK5taAYRxneQMeHrnyb9QZOEjjdY0BGaETdjL
         q0HA==
X-Gm-Message-State: AOJu0Yz4rmgEYRK4BSVR9jD8k3TYvyQj/La6q2JPzcyCGFEXREoTNJ2P
	lxq9232SStfY1IHY5H58GtwXebrmVXi4OQahzgnhVA4BDMGzIZjWg37KftwrFaUhIJfdxu9Pd3Y
	C7V/4IJTiw8xlKsNwJDmggiW35RzprBhu9A==
X-Gm-Gg: AZuq6aJ6gDyg8PIrfEawtjxgpV5QwKjQfq2dgBur5HSeVoHon5K22JeqbcE+o7rvBTt
	QU2GzQZJePeVQcDbMrTWp6ilWRTKUMU/MC+eKPSBmlY2DChNse3slKSpdspvQJD4VdgOEYLN+d8
	OH/iVF00Nu/GvNbXtrAhLS8BULFF8hS9d8epWMKDqaNQODLtcFQHJQhqChlKfRDTeCHh1CJGz9R
	TC4+EuQ9CtSMPC2/XcbUWhmvFFGIc8uvDA47svsb069ROrjb6PUD3awViedvphc5Igsv1XzTuRB
	rZhHNtYV
X-Received: by 2002:a05:690c:112:b0:796:6da9:bf97 with SMTP id
 00721157ae682-7966da9c43fmr6696157b3.43.1770807032573; Wed, 11 Feb 2026
 02:50:32 -0800 (PST)
MIME-Version: 1.0
References: <CAHt6W4ejPT-A7bGfrZGW-8zEBxmQ__LVa91GRcXhYZO_3C1meg@mail.gmail.com>
 <CAHt6W4eQmiuXfBfwi-Wzpp+fzCzr-JAO45+OD3tc5PQXE-0WXw@mail.gmail.com>
In-Reply-To: <CAHt6W4eQmiuXfBfwi-Wzpp+fzCzr-JAO45+OD3tc5PQXE-0WXw@mail.gmail.com>
From: Frediano Ziglio <freddy77@gmail.com>
Date: Wed, 11 Feb 2026 10:50:21 +0000
X-Gm-Features: AZwV_Qgy91sD4U9cLiSdy8Be5d7GI5E8O9x6cSh-4G0Y7QGpGDC56SPPwUcttPI
Message-ID: <CAHt6W4egn8t2NKwPEquHG=p67C-kNzfCTrS9dg4K=Qjskntvyw@mail.gmail.com>
Subject: Re: [PATCH livepatch-build-tools v2] Treat constant sections as
 string sections
To: xen-devel <xen-devel@lists.xenproject.org>
Cc: Frediano Ziglio <frediano.ziglio@citrix.com>, Ross Lagerwall <ross.lagerwall@citrix.com>, 
	Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Content-Type: text/plain; charset="UTF-8"

On Tue, 13 Jan 2026 at 11:54, Frediano Ziglio <freddy77@gmail.com> wrote:
>
> On Tue, 18 Nov 2025 at 10:44, Frediano Ziglio <freddy77@gmail.com> wrote:
> >
> > > > Newer compiler can put some constant strings inside constant
> > > > sections (.rodata.cstXX) instead of string sections (.rodata.str1.XX).
> > > > This causes the produced live patch to not apply when such
> > > > strings are produced.
> > > > So treat the constant sections as string ones.
> > > >
> > > > Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
> > >
> > > Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> > >
> > > Thanks,
> > > Ross
> >
> > Hi,
> >   any update on this change? Could it be merged?
> >
>
> Any update?
>

This is the third time I ping this patch.
Can somebody at least give me a reason why this is still pending?

Regards,
  Frediano


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 10:51:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 10:51:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227273.1533609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7oY-0007JM-OM; Wed, 11 Feb 2026 10:51:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227273.1533609; Wed, 11 Feb 2026 10: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 1vq7oY-0007JF-Lh; Wed, 11 Feb 2026 10:51:22 +0000
Received: by outflank-mailman (input) for mailman id 1227273;
 Wed, 11 Feb 2026 10:51: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vq7oX-0007Av-1V
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 10:51:21 +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 983deb5c-0737-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 11:51:18 +0100 (CET)
Received: from AM0PR05CA0084.eurprd05.prod.outlook.com (2603:10a6:208:136::24)
 by DU2PR08MB7358.eurprd08.prod.outlook.com (2603:10a6:10:2f1::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.20; Wed, 11 Feb
 2026 10:51:14 +0000
Received: from AMS0EPF0000019B.eurprd05.prod.outlook.com
 (2603:10a6:208:136:cafe::4b) by AM0PR05CA0084.outlook.office365.com
 (2603:10a6:208:136::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed,
 11 Feb 2026 10:51:14 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF0000019B.mail.protection.outlook.com (10.167.16.247) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 10:51:13 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB9243.eurprd08.prod.outlook.com (2603:10a6:20b:5a2::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 10:50:07 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 10:50: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: 983deb5c-0737-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=oRq/knzzI90w1W3xcSnvUb8TSyRK3shSDgknn2/zk8jmgEoPM80Uocw6mjwrf+CTmlm14I4W9ZsrOrfx4933WcAk8KS3YEjoAk980+aOT/ehxyRkYhqJO9L+SjqVZEiD70HSVZceNCnHSUXE7XZo0+DQI/55MnfXLm/1Z3qw6GTb/NgQze8AMzQ3bah6e+BzZpvf51SyIHyVodswAp/BFWkNgijBMCXHM8vrfcmIQdRFUZDwYjB2LZCWVJakm5L43n8YDKr3/zMTBU8QCSi2sLxGEAh0l3QQytZ1F/GskwH9o73PMo0lL6KPITFY1Ab3wbU/rP8ii6fGd6//ZOsl+Q==
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=6rRZIxxlIJTUwcNVYlYSRiYc/S3lxzSgBWmsMURHLyA=;
 b=cPK9NOxdzReH7CPZfUr/EB5pD/I1oAPqVoIyFi596L5fyd4sFbBTYqCpzh6DanrwrbQbGDPpD0W3YlK6lhxRdGPApHTANhkJ4oHu2CVpZaXwnRq/8RES23HwhX4YlIPvf3i8vqL3EGw0nWfQZeMPZbhfe3DYatV9lyalMVtg+RpmCHWx/3pctyLh0WKsKpkFjR4nu+4NIvz0iC16moWP8r1tBnn8OE1Gg1SvIdZ4dGAjPKVnQPGu6QKC4z9AwG58DSgTXcrJYC6pVDd5bl7GvdKGD0nJRsc1aZZAvUBLrKanBFCZYxh1xO7ABKtc7799eXbhQsExeGhW9O79gnHAhQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6rRZIxxlIJTUwcNVYlYSRiYc/S3lxzSgBWmsMURHLyA=;
 b=SjPBSg1Vp6lBXLh6CuRbv62NAn3go6vIQbo/a3KgpWW9XCaGk3H5TinVxqBzcrVGjU9ZQ4uxrphtfY1FPcDP6wvVII1MQ3rwrKyCt4xOHvzqtNAiT40qZT7NRIG0VEHekH3jhcXAni2UcxLcme/y5JM/J+dBvnMUsGoWP5+oLKY=
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=Bsix+ojcXpoF3ayUqdsIoVdD4IQAbB4rRR0xytpIlAtXRRMmKQn+jvW6w0BLpzVGURm+umjKW7hdn6ogaGrn7+MuNVR1XE0APQzpSw4Xt3qIhtlwGxBCl2GPdeJYxK/7kvXYmaT0VsVUSTs3/X9dQsKbkOmt9GlAncxexOumhEuFYFYB3oVcliqEDywC3jKMNUMzv5Iqzhh3M8fcZHubG+SbHKd7ibDvhBDCG7INY9V7RVy00GAWhJO5azgL6EIcyI/6h7nT0P7k0GWiaBgYU2fDSykVDCAaDhlmm/MV02Df4S7EecBegekaFeJKehLCAlKzbvKwIM6+eTkOKoVA1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6rRZIxxlIJTUwcNVYlYSRiYc/S3lxzSgBWmsMURHLyA=;
 b=dDHumdEfkyIFRNuxe1ycjGS++p7hO2Ne+0RsT+cC0PRmRiEqDlKoXETQvDj9Cc9yYBzjtbILy8tznaKCnQSnccHMk75HzpeZuj2aE3RW/2TomcQSag2EOpnGTOO0WFzVXzMYiSmVNZKtprKvZd3BHGhsoN8aGYqvqZkYFG86Mb1Oeih1e78GxAnkYFOxfKZlecxHOS2kmRhb3iL7o0gJeqya2k7xhYRBYchdmbqXpAsIo3Tx7wj8SpapKI13riisa6en0figYjl4Rz7tEYI1y4T0Lu4uFmGgxA9AZy/uo1lFtX7uWhMTpHuLgBoYm3tJnFoRKUysksTwEXwXq2z7gw==
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=6rRZIxxlIJTUwcNVYlYSRiYc/S3lxzSgBWmsMURHLyA=;
 b=SjPBSg1Vp6lBXLh6CuRbv62NAn3go6vIQbo/a3KgpWW9XCaGk3H5TinVxqBzcrVGjU9ZQ4uxrphtfY1FPcDP6wvVII1MQ3rwrKyCt4xOHvzqtNAiT40qZT7NRIG0VEHekH3jhcXAni2UcxLcme/y5JM/J+dBvnMUsGoWP5+oLKY=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 07/12] xen/arm: ffa: Fix RXTX_UNMAP ownership race
Thread-Topic: [PATCH 07/12] xen/arm: ffa: Fix RXTX_UNMAP ownership race
Thread-Index: AQHclTQA4+TBlGja902+I8ruNzCv87V9KKCAgAA1SQA=
Date: Wed, 11 Feb 2026 10:50:06 +0000
Message-ID: <461493F2-BF47-4D8E-87B0-F2ABA90F0EF2@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <971bf27b9a2cafa0ed405a638a532b6fbbf51142.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44F9sSzTV-X9tKDffk9vWfT9=KZGmqp3EiR0rEo1nwd7Pg@mail.gmail.com>
In-Reply-To:
 <CAHUa44F9sSzTV-X9tKDffk9vWfT9=KZGmqp3EiR0rEo1nwd7Pg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB9243:EE_|AMS0EPF0000019B:EE_|DU2PR08MB7358:EE_
X-MS-Office365-Filtering-Correlation-Id: cbb97127-933f-475c-ab6a-08de695b79ab
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Sm5JTk90TW1MdWlSY2daY1VqRkpuZ1pFU1VjN25JdEh5ekJZVGw3aEYwS1RX?=
 =?utf-8?B?U1FTWVk2V0FXcVdGM3VsRE1WK3JCT2pibzZRN1FqTzJNMHR2elVhZUFNaHRr?=
 =?utf-8?B?OVQ2NXBPSzZudENSY005VFNlMzRQY2hhUnEzUkVvZ0NsOHdLNzRMSDZ6WitZ?=
 =?utf-8?B?NzJoNkVSNTZCY1pBWldidlphTlpmMVY5UXlWQnpRTUc2cy9zOEJjeUdvcC8z?=
 =?utf-8?B?RC93SkpZcVI4Q3V5bWxuVWRqWEFKZ1NyUDN6Nm5UcGhJaDY2ZUV2YVpXTmJ3?=
 =?utf-8?B?KzBSNkZuSkJHTWlja0NtVGtHL2tpMnZPR2hpTHljb3ZESzVuaW9kaHpZZ2Uz?=
 =?utf-8?B?cG1aVXNBTWw1aVJvdURkcFdHL09aZkZJbWJWSzR4OUc5bmtJbE14NkdDQ0I2?=
 =?utf-8?B?bE5SN2M0VXh3N1dmbFVwRDU2ZTZCYitwZEFrSnFxZytSWlcwVzU3SCtkTjBL?=
 =?utf-8?B?eEwxT3dDeHZqSndCRWRnVGNiamkwK2FqTDYxOUMvUm9mSkxBczhMdVBRZFFR?=
 =?utf-8?B?MkRocFY1ZmhYbkZPVUxDck9rMWc2TC93TzhNblNSSVd6S09nKzJONDIzdDVT?=
 =?utf-8?B?QlNyem1lWjluYlRMbzg2U3pjczQ2YjhPMVRGeXBpdmZFTDk3YWFleDJsdlN4?=
 =?utf-8?B?K0dBZW8xR0tJd3I0V24weGd6YWZoMEJjcnJ1VXZSOEN6d2xKek1sU1JmbVcz?=
 =?utf-8?B?ODZkMzRocm5CT0JBNDYybm1vTTRaR2RlZ0VFRUJOSFE5dHF6cVRiRjZNaktq?=
 =?utf-8?B?dWRqU215eStRVmFwbHFsem9lc1Q0alJsYlArbzFEdGJsNHJMWGlQcklRekoy?=
 =?utf-8?B?dlZNOUtDNXFsQVZRTjRFYmJRYTJycUFDYWhGQ3VtdnBwK1IydE5wZG9zMitm?=
 =?utf-8?B?RjRxOEQ0VWtjaE8zS1Jrd05ZRkxVNTFvSFoxbUZYNVNoQU5Qbk93MFJNUzNp?=
 =?utf-8?B?RjB1clR1WDJRYkl1czBmSzBoVWN1Nkx3UlgvelhDdS83YUNJR1pVOVZ5R2NB?=
 =?utf-8?B?U2JiT1RLeFoyY1RyaVQ5eWJvWEJnZ2tkb1k1Z0NOK3VDUGRaY1MvVEtuMmFW?=
 =?utf-8?B?RGN1eGpWVEVPSkVVWllKRnRBUkVVRzJKUGNGWHNmNU9Pd3RxUDVzZytLb1Jm?=
 =?utf-8?B?Z0NwdDdWTWJaR0g4dm1uY1hYcElwdTZGQlpUOUUyTlkySEdiaU0rbklmczJV?=
 =?utf-8?B?OHhPSlRZNHRpWkxZNVI4UXBoVytIeDg5OWk1QTdIUEg5NjU0SjdpU20reFhv?=
 =?utf-8?B?T2phZkl4ajlTZUxJc0hINXFtV1BDU1Jta09YblNrRzBHSFB4eEVHWmVSMUZh?=
 =?utf-8?B?L3YybHVSUUx6TTIwQlFFTUlxTzJUcHUzNFJaOXJ2UFRnaW9KaDkvUERWYXBQ?=
 =?utf-8?B?dFFBSjNaZDdZeHlXM2tNTFV1MTBKemQ5R0cxQlByWndLYVBva2hIeW5DSGJh?=
 =?utf-8?B?U2VPaEVzUkJjU0V1MWhTZXZUcjR3czF1SWFaWmRjaVc4UWpTS2UxbFhMR21M?=
 =?utf-8?B?dW92ZUgvd0V6QlVQdmo5YnE0TnRmUXUvaG1BeGJxeldDTTJVQUdKUXFmRUg1?=
 =?utf-8?B?eTZFSHA4S1pVRUdWc1duY0ljRnJsVnBjd1Fya09ZN3FXcDVkNWE0RVNFTmQ3?=
 =?utf-8?B?NzJ3Uk9nRDVCaEdZeXZFd1k1dGNSZ2g0WVFQT1ZrcTZRbGgvZjQyNEpnQm8y?=
 =?utf-8?B?WjFmZEhzZFhrejZJUVViYk9lVndrNi9HU1dUNmNiK3VKY2c3U3FJZWw0MzI5?=
 =?utf-8?B?V29TYXpNR01nZmF5d1lpYnU4ZjJSQzFPQlZYS1RsSDRvZ2E2OFQxZzhNblNQ?=
 =?utf-8?B?aGRSVitpVzJ2a1dKQXB3Und2Q2ZzaHVCSVBiT0FuTWN6bHlIYzl0UmhzMDBP?=
 =?utf-8?B?Sjl6UXVtb3p3Rk44VEN5eEFadnpFM1Y2UThydER0WTZuczlGYld0eUxuYjB1?=
 =?utf-8?B?aFhrU2xva2xITTZLdXhXemhoUC95Nk5sUG1BaHFmZU53VzltYyt5M0w2Mng3?=
 =?utf-8?B?S1lid2hiMjVpQTF0V1pvRWcrNmE5RXpvK1paYnlQMDVTMEwyenpVUUhCMysr?=
 =?utf-8?B?S1k2NDRXWk84Y3NocXdIc2NvSm5mMUNIRGNOMldNTTh6SVkrbkdNMWcrNE1y?=
 =?utf-8?B?OExpdHhSQ0ZCd0c1Rng3TGNyVmtsZEFaNnRiZmFzcGJvcTBuMGRCcDJYT1dV?=
 =?utf-8?Q?SBFmglvowuGeZA9kRKIemkA=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <408B2247771ABB469A3445A8EDD27EFB@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9243
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF0000019B.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	13cc3050-8847-482b-585d-08de695b51f0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|14060799003|35042699022|82310400026|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QTYrbUp5dldDdjF0Q2RDZ1QrQ3RYUnFNNk45ZUFub09JbXZCRjBPY1lvYURh?=
 =?utf-8?B?M09vdG5yeHBwR0JQRkErL09mMVcrQjZPSlNHbzRiaGh2WERWZ0xGcUhwRjlT?=
 =?utf-8?B?eWEyVTkxMTdqWTJsc1MzeTdZT3VlSFVWMTBnOGlIZ2RxcWtNay9NSXZKMWM4?=
 =?utf-8?B?dWlBanBFVnlMRTNlV21HVWl4NVhKV3ZmU0NnVjB2VmlHYjhWOUFCM2UzVFhI?=
 =?utf-8?B?bStoQ0h2VXZxNkVEZTV1UURvczhPTkVnelJ6YThQbDRNTEpxZ3d5dE1FNHRw?=
 =?utf-8?B?WmtFYWJnS0tlc3hjazA4U2ZKTmY2V2g2QnBFRWE4MHgvZk9kb2xIaW90dkxv?=
 =?utf-8?B?bmFvUjFqNmJ4S2thalhhdWpCTVVEQWgrYUxMQ2NJR0hVVVAvNTBDbjhqcUh3?=
 =?utf-8?B?U0l3QmUwb2FTR1BvQ0VvSDhGeTQ1YlFpVmhzNk8vdGV4VVFVcDYvb3ZBSzJH?=
 =?utf-8?B?RWlwSkM2bStXYytwNHNCRU9lSEdlcEtMbE5SemZXMk1DL1lhazAxaEFrZVF5?=
 =?utf-8?B?amhJNGRyS25hamV0Qzg5dVl6R0RoN21CT0sxSGxYN3RkYkdEUEpRWnpYRDF5?=
 =?utf-8?B?TUdISEEyRVk5YWYzY0M4aitMSzg4NXMvU256VEs4MVo4V1dQK0pzTUppYm1p?=
 =?utf-8?B?cVkvNTBLRHE0MUZ1dzlmOTB0UEhXTkkzbWhXWjFyclFidTVHT2I5UDhSRkZm?=
 =?utf-8?B?SXgvelB0MzRmcEx1OERLRnZnQS9oR1lsQ0VNU01KNHZKL1lRRzhTMjN2SFdm?=
 =?utf-8?B?MWdndkNhMm5senJ3RU9zak9ScjZzMzhDcmVXRmpKWG1PakV4SDJ0R2orb1BV?=
 =?utf-8?B?Y3dzNGdVaGIvMGJMNWY5NUVQQXdVZmNnSERrYnJvOTZtRU01V29vc0ZMUCsr?=
 =?utf-8?B?Y3ZPUU9NeGQ3OHhDOTErT0c4Q1p1azRWbDZKZlRHRFNjdFU5MlVIbDZVVmdl?=
 =?utf-8?B?SkZFOEZ3MUdmOFh5UzJVN2QrSlZhSk9WeHRrbHYzMm5wTkdTazFTWTZFZWtJ?=
 =?utf-8?B?bUhoNzYwaWlrMGMrWmExeWcyaThnWkxvU044M3ZxMkU4THRoRlVPNjl1MS9o?=
 =?utf-8?B?SHpCWHlBZkdZdVhDeUpKVkUvcDNKSEpoQk1EblNQZy9KWGI0U3JCN3gvamIr?=
 =?utf-8?B?TzlncVZEMXZIZ3FCdzNnL1JnVzUwTFhKYkRRazVDTkNJei9ya3N5WkQrT1hl?=
 =?utf-8?B?aER0M1JnN1RkQkpTZDFUOVhTYmM5SDVhL3NDcG1sYnplV3FEMDQ4dUlvdEUx?=
 =?utf-8?B?Z2kzQllJR21JVTZWaGk3VHZzNTRnb3Fodm52ZGUzQ3cxY0w0WTZOdWVaQVZ2?=
 =?utf-8?B?WTkzZGZqYXVwdW5DbFBVOVY4Y1lLN3dPYURJMjhucUdZQzVsQTZPTEtFcitZ?=
 =?utf-8?B?OGZ6TWlYVXAvVjNLRFdVZFJTVU1xc2owRHJQZnZiVkNjZ0F2ak9vclU3RVZ6?=
 =?utf-8?B?b0U0MG9hNHZMc1pNL2xrZTNaTThwTml3aXpESEpGSk5kNEdPSEgwNFliSjZZ?=
 =?utf-8?B?Yjd5aFo0d3VQZExlRFNtL1N4NitVK1Nad1VjRVdOZnFYNWRJUFpZcWlrVmpS?=
 =?utf-8?B?em93QXpuSkxjejRoYnFQd3BDQU1ET1RDRHlXZW1IT04xNTZWOU9TS2FlV0Fn?=
 =?utf-8?B?WWYzQ0FuWGZFZzZYRDUxek5ON21YazArYU44bFp0a1UycFNRWkNzVFNNYmVE?=
 =?utf-8?B?Y1EwUmJDemg0YS9wcXRiems5L0RIais1UXdiTHFuc25QdFJnbFZqcHJSUGFP?=
 =?utf-8?B?TTdkcXQ2b3ExRzhSTFcyQ3c5NFE5MkViNHhlelZVcU8zejdZeUgvY2dRWWpY?=
 =?utf-8?B?dmtHaEVUemtTUkxWWmVjRnRsMkhtRkIwYVFyR3NFb1hzcW9BK0VTNStWa0x2?=
 =?utf-8?B?SUhtS0hEcldNVnFFVE15RnRjZTVZbHlUcHBjaG0ydldmSlVHWjJWTjhBbGZZ?=
 =?utf-8?B?VEE4NHJKSjN2SHUraFo1SjhSZG9ZSkpGWGdWZEJYSGhvSUFqeDV1RVlMMlY3?=
 =?utf-8?B?RU9uek5uMUdaRERCWFVpazd1VTFsbE1tMkdWdTQ5aHRhdFgxWnRqUG5lR1Zp?=
 =?utf-8?B?SWpzMmhUSStldklNUEIwek4wUWVOVWNkT1hoM2pNbVUzcGtycHU5QVNwcDhP?=
 =?utf-8?B?dUEyYTl4d005RWNaQmJaWmhUUWQxNUtWejFVbnpxbGZsTTRhT1kwaUxkMk9T?=
 =?utf-8?B?bHJJOUwwcStqeDNZemo2VmQzWldsVEZrQklzYkV0Q0MwZlF3TVppeXhXMGlV?=
 =?utf-8?B?UFlhWVV2bGRFTitXbFFjcjhOTy9nPT0=?=
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)(1800799024)(14060799003)(35042699022)(82310400026)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ftY/EtzhpbEXxx9uVltGtPrcmOX/eDHgXOG1a1HYp0UvMSseiWMK435KbWTLJ+Kku0x9cDdjfI9TPGFjxP0o6da37fQI7Gwp9EHX05lWOQIePzkuW1mk1Lv0c6iCIjVRrrVViqntcZ6IUM4REg5VDyKEGDHsg871qkyYG7sPRPe8Voze+K2pcTJNMWrr7gj4J38BymMrM4sspPvINJjfEZscywAp4K/PgGugKiRFq3ft6D3/f62KKtmMpShcCpnJxqn3LjsesLULeRrHH2IlDzqRMC6vgUjkaCttlqkTgkd5OYc2KmKFXmehl1MFXTcZidvIpNpqxZrs3CqpszeKgLEF30pVTdgc/mDshJqjuB/GfQZa/Ey41LETHMtjXyOCod492BQwDuTY/IHKrATc09Kq3BzDIsbtLaAFRHk4wGKotjOz2lVBhuDTBwkcxSdz
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 10:51:13.6532
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cbb97127-933f-475c-ab6a-08de695b79ab
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:
	AMS0EPF0000019B.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB7358

SGkgSmVucywNCg0KPiBPbiAxMSBGZWIgMjAyNiwgYXQgMDg6MzksIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gVHVlLCBGZWIgMywgMjAyNiBhdCA2OjM44oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gcnh0eF91bm1hcCgpIGNo
ZWNrcyBSWCBvd25lcnNoaXAgd2l0aG91dCBob2xkaW5nIHRoZSBSWC9UWCBsb2NrcyBhbmQNCj4+
IG9ubHkgZW5mb3JjZXMgdGhlIG93bmVyc2hpcCBydWxlIHdoZW4gRkZBX1JYX0FDUVVJUkUgaXMg
c3VwcG9ydGVkLiBUaGlzDQo+PiBhbGxvd3MgYSB2Q1BVIHRvIGFjcXVpcmUgUlggYmV0d2VlbiB0
aGUgY2hlY2sgYW5kIHVubWFwLCBhbmQgaXQgbGV0cw0KPj4gUlhUWF9VTk1BUCBwcm9jZWVkIHdo
aWxlIFJYIGlzIG93bmVkIHdoZW4gYnVmZmVycyBhcmUgbm90IGZvcndhcmRlZCB0bw0KPj4gZmly
bXdhcmUuDQo+PiANCj4+IEhvbGQgcnhfbG9jay90eF9sb2NrIGFjcm9zcyB0aGUgb3duZXJzaGlw
IGNoZWNrIGFuZCB1bm1hcCwgYW5kIGRlbnkNCj4+IFJYVFhfVU5NQVAgd2hlbmV2ZXIgUlggaXMg
b3duZWQsIGluZGVwZW5kZW50IG9mIFJYX0FDUVVJUkUgc3VwcG9ydC4gRm9yDQo+PiB0ZWFyZG93
biwgcmVsZWFzZSBSWCBvd25lcnNoaXAgdW5kZXIgdGhlIHNhbWUgbG9jayB3aW5kb3c7IHVzZQ0K
Pj4gRkZBX1JYX1JFTEVBU0UgZGlyZWN0bHkgYmVjYXVzZSByeF9sb2NrIGlzIGhlbGQsIGFuZCBj
bGVhciB0aGUgbG9jYWwNCj4+IGZsYWcgd2hlbiB0aGUgZmlybXdhcmUgcGF0aCBpcyB1bmF2YWls
YWJsZS4NCj4+IA0KPj4gRnVuY3Rpb25hbCBpbXBhY3Q6IFJYVFhfVU5NQVAgbm93IHJlbGlhYmx5
IHJldHVybnMgREVOSUVEIHdoaWxlIFJYIGlzDQo+PiBvd25lZCwgYW5kIHRlYXJkb3duIHJlbGVh
c2VzL2NsZWFycyBvd25lcnNoaXAgd2l0aG91dCBhIHJhY2UuDQo+PiANCj4+IFNpZ25lZC1vZmYt
Ynk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+IC0tLQ0K
Pj4geGVuL2FyY2gvYXJtL3RlZS9mZmFfcnh0eC5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tDQo+PiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMyBk
ZWxldGlvbnMoLSkNCj4+IA0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3J4
dHguYyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3J4dHguYw0KPj4gaW5kZXggZWZmOTVhNzk1NWQ3
Li40NTBjZTEwMmNiZGMgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9yeHR4
LmMNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhX3J4dHguYw0KPj4gQEAgLTIyMCw3ICsy
MjAsNyBAQCBlcnJfdW5sb2NrX3J4dHg6DQo+PiAgICAgcmV0dXJuIHJldDsNCj4+IH0NCj4+IA0K
Pj4gLXN0YXRpYyBpbnQzMl90IHJ4dHhfdW5tYXAoc3RydWN0IGRvbWFpbiAqZCkNCj4+ICtzdGF0
aWMgaW50MzJfdCByeHR4X3VubWFwKHN0cnVjdCBkb21haW4gKmQsIGJvb2wgdGVhcmRvd24pDQo+
PiB7DQo+PiAgICAgc3RydWN0IGZmYV9jdHggKmN0eCA9IGQtPmFyY2gudGVlOw0KPj4gICAgIGlu
dDMyX3QgcmV0ID0gRkZBX1JFVF9PSzsNCj4+IEBAIC0yMzQsNiArMjM0LDM2IEBAIHN0YXRpYyBp
bnQzMl90IHJ4dHhfdW5tYXAoc3RydWN0IGRvbWFpbiAqZCkNCj4+ICAgICAgICAgZ290byBlcnJf
dW5sb2NrX3J4dHg7DQo+PiAgICAgfQ0KPj4gDQo+PiArICAgIGlmICggIWN0eC0+cnhfaXNfZnJl
ZSApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIGlmICggdGVhcmRvd24gKQ0KPj4gKyAgICAgICAg
ew0KPj4gKyAgICAgICAgICAgIGlmICggZmZhX2Z3X3N1cHBvcnRzX2ZpZChGRkFfUlhfQUNRVUlS
RSkgKQ0KPj4gKyAgICAgICAgICAgIHsNCj4+ICsgICAgICAgICAgICAgICAgaW50MzJfdCByZWxf
cmV0Ow0KPj4gKw0KPj4gKyAgICAgICAgICAgICAgICAvKiBDYW4ndCB1c2UgZmZhX3J4X3JlbGVh
c2UoKSB3aGlsZSBob2xkaW5nIHJ4X2xvY2suICovDQo+PiArICAgICAgICAgICAgICAgIHJlbF9y
ZXQgPSBmZmFfc2ltcGxlX2NhbGwoRkZBX1JYX1JFTEVBU0UsIGN0eC0+ZmZhX2lkLA0KPj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDApOw0KPj4gKyAg
ICAgICAgICAgICAgICBpZiAoIHJlbF9yZXQgKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgZ2Rw
cmludGsoWEVOTE9HX0RFQlVHLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZm
YTogUlggcmVsZWFzZSBkdXJpbmcgdGVhcmRvd24gZmFpbGVkOiAlZFxuIiwNCj4+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlbF9yZXQpOw0KPj4gKyAgICAgICAgICAgICAgICBlbHNl
DQo+PiArICAgICAgICAgICAgICAgICAgICBjdHgtPnJ4X2lzX2ZyZWUgPSB0cnVlOw0KPiANCj4g
SSBkb24ndCBzZWUgd2h5IHRoaXMgYXNzaWdubWVudCBpcyBuZWVkZWQsIG9yIHRoZSBvbmUganVz
dCBiZWxvdy4NCg0KVHJ1ZSwgaW4gdGhlIHRlYXJkb3duIGNhc2Ugd2UgZG8gbm90IGNhcmUgYXQg
YWxsLg0KSSB3aWxsIHJlbW92ZSB0aG9zZSAyLg0KDQo+IA0KPj4gKyAgICAgICAgICAgIH0NCj4+
ICsgICAgICAgICAgICBlbHNlDQo+PiArICAgICAgICAgICAgICAgIGN0eC0+cnhfaXNfZnJlZSA9
IHRydWU7DQo+PiArICAgICAgICB9DQo+PiArICAgICAgICBlbHNlDQo+PiArICAgICAgICB7DQo+
PiArICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0RFQlVHLA0KPj4gKyAgICAgICAgICAgICAg
ICAgICAgICJmZmE6IFJYVFhfVU5NQVAgZGVuaWVkLCBSWCBidWZmZXIgb3duZWQgYnkgVk1cbiIp
Ow0KPj4gKyAgICAgICAgICAgIHJldCA9IEZGQV9SRVRfREVOSUVEOw0KPj4gKyAgICAgICAgICAg
IGdvdG8gZXJyX3VubG9ja19yeHR4Ow0KPj4gKyAgICAgICAgfQ0KPj4gKyAgICB9DQo+PiArDQo+
PiAgICAgaWYgKCBmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9SWF9BQ1FVSVJFKSApDQo+PiAgICAg
ew0KPj4gICAgICAgICByZXQgPSBmZmFfcnh0eF91bm1hcChmZmFfZ2V0X3ZtX2lkKGQpKTsNCj4+
IEBAIC0yNjEsNyArMjkxLDcgQEAgZXJyX3VubG9ja19yeHR4Og0KPj4gDQo+PiBpbnQzMl90IGZm
YV9oYW5kbGVfcnh0eF91bm1hcCh2b2lkKQ0KPj4gew0KPj4gLSAgICByZXR1cm4gcnh0eF91bm1h
cChjdXJyZW50LT5kb21haW4pOw0KPj4gKyAgICByZXR1cm4gcnh0eF91bm1hcChjdXJyZW50LT5k
b21haW4sIGZhbHNlKTsNCj4+IH0NCj4+IA0KPj4gaW50MzJfdCBmZmFfcnhfYWNxdWlyZShzdHJ1
Y3QgZmZhX2N0eCAqY3R4LCB2b2lkICoqYnVmLCBzaXplX3QgKmJ1Zl9zaXplKQ0KPj4gQEAgLTM2
OSw3ICszOTksNyBAQCBpbnQzMl90IGZmYV9yeHR4X2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4g
KmQpDQo+PiANCj4+IHZvaWQgZmZhX3J4dHhfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAq
ZCkNCj4+IHsNCj4+IC0gICAgcnh0eF91bm1hcChkKTsNCj4+ICsgICAgcnh0eF91bm1hcChkLCB0
cnVlKTsNCj4gDQo+IEhvdyBhYm91dCBhZGRpbmcgYSAvKiB0ZWFyZG93biAqLyBqdXN0IGFmdGVy
IHRydWUgYXMgYSByZW1pbmRlciBvZg0KPiB3aGF0IHRydWUgaXMgc3VwcG9zZWQgdG8gcmVwcmVz
ZW50Lg0KPiANCj4gQWRkaW5nIHN1Y2ggY29tbWVudHMgaXNuJ3QgdmVyeSBjb21tb24sIGJ1dCB3
ZSdyZSBkb2luZyBpdCBhdCBhIGZldw0KPiBwbGFjZXMgaW4gdGhlIHNvdXJjZSB0cmVlLCBhbmQg
SSB0aGluayBpdCBoZWxwcyB3aGVuIHJlYWRpbmcgdGhlIGNvZGUuDQoNCkFncmVlIGkgd2lsbCBh
ZGQgLyogdGVhcmRvd24gKi8ganVzdCBhZnRlciB0cnVlIGhlcmUuDQoNCkNoZWVycw0KQmVydHJh
bmQNCg0K


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:02:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:02:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227292.1533635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq7zE-0000zL-Uq; Wed, 11 Feb 2026 11:02:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227292.1533635; Wed, 11 Feb 2026 11: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 1vq7zE-0000zE-Ri; Wed, 11 Feb 2026 11:02:24 +0000
Received: by outflank-mailman (input) for mailman id 1227292;
 Wed, 11 Feb 2026 11:02: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vq7zD-0000z8-6p
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:02:23 +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 231c1c25-0739-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 12:02:21 +0100 (CET)
Received: from AS9PR04CA0165.eurprd04.prod.outlook.com (2603:10a6:20b:530::25)
 by AS8PR08MB6376.eurprd08.prod.outlook.com (2603:10a6:20b:33e::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Wed, 11 Feb
 2026 11:02:16 +0000
Received: from AMS0EPF0000019B.eurprd05.prod.outlook.com
 (2603:10a6:20b:530:cafe::c7) by AS9PR04CA0165.outlook.office365.com
 (2603:10a6:20b:530::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 11:02:14 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS0EPF0000019B.mail.protection.outlook.com (10.167.16.247) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 11:02:16 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DBAPR08MB5685.eurprd08.prod.outlook.com (2603:10a6:10:1ad::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 11:01:13 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 11: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: 231c1c25-0739-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=rMKB+CcH4H5v0R2gVSsVVLQxbaJKt0OS4sy+lOiDUlgE6y5p2a6EF3dbDD0bVIEBP1wYKwMw9fm0ab3+x2hWR0aJmReRfK/YUJYSB0a6e5ece8HUa7JpMozR6trZgiHujAj3ilG/4Eh03DyZu8jzNlCn/6QSHCRs+Ttg6o6WHFCLVVasNAf1uSxL9/QYi+yDGy6Ji7MOrene6jSY/Lf/zd0FYk0Kie5nF7FxaoUt1rumQU/TGWU3LHPG4xq5WCGy6UFhCwSrUfF7Q4Ntyt2gqfD8hXsj/ngv+biBT8EwwBEEt8uQQ2kaJR9IUGlc/s/N7eEnrKnh7ACa2McgHvyMRQ==
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=KboDKz3+vXTC4i8lWnodIs3UqoGQ1nkdDkYcbc7kPDI=;
 b=dH0Hy45aMNGkB0/OcGs13a3YEZFM5R3PdgDerfz/LUV2ppiSwNZHoPUY/IjyqllqXUJzpWxtlUy+jaIQLWkkdD2vdr4RQlclUou4/2g+FAkQmh7lgflb1NzZFum6yI84Axoyz/S8K5LQ6pHPdRHgElixoYUWhjj2IxT73wSXZqOg5kiMQkft9tZ7ZfhtaoFCj0NoL74GSoaxCa9HZCI7BRH1fdKvYAh7eNjKeQvPU5lULdig9/kjvzYgj+UTwtuyEvfMw0HMWw4q5FXmgmA8uGInrHWj5JojqP0X4hzlY5revTffPVhDSo6WoPK01MWeWkYKNiL/i8ZI6l5EDdTXPw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KboDKz3+vXTC4i8lWnodIs3UqoGQ1nkdDkYcbc7kPDI=;
 b=Kl46mHKMkYJc7/WzgLET8dZ806XgofwlGvwPpMOMsBEq15W8OfRMgWqeP4Cc9rWWLh+tmbxDjBzT2zvhn4OM6JdJWG1EiuUYQ2TWCwNP4NfAiDnzEMyLj12wDId+1nnbIXiuJSQZzR35B4r36mC9EDUE0MsEb++KO4JCo0SZkJE=
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=Fet6GCTU42F0OjWjoK7SOby8JzIMD3360dhrgyC42GBJ00BkKJbSqQY9PtKv+jDC4gWGtfwYsj/AHMzG+2E1ARTtB10mNM3AG7yDdUDAmcmUVFC4TaaJ4UmndBAuLOnlhftBLovQn/DIaSnWK2DG4dpHmWY3ZGUkCJXH+080uz/1a0BqsUdk776aKhoRC2Y3VLCyNXxo2p6J3HbRzbh6oGpNnCllGGz7FW7FK4TrjqC1OOV0YDN6fARyz4ajwxPHNO5ypWd8E5RTCt0j+pFOMmzraQyBFLLIUbfDnE3vdghiq4PBonYB7YisDqt+ln0m34HHIxLLMaE4/AAhouQCqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KboDKz3+vXTC4i8lWnodIs3UqoGQ1nkdDkYcbc7kPDI=;
 b=j/aitXf22VU6+SSu7EnjXw/THW6mqETL2wMhlzrA3Gd1yzi8FSXvcMhQebjJae2FzuznwuTDvQNageohd4fg0oqr00bbos4t6ker7NsHnrrywT/vubAcBFPKxGmaJSOMDZ0pHIrugQ/UZTGlWefgrfCcD4Ulrw/wrkzJQbZJ9qB9U1hZsmRuOJKEhGPwUhwCoTip4gKzkvI0oezGaGMH8wtrDC+ru7qWEBoYGrxF1k43eUJ9N887y8kZc8k0TrtyewmTaiz5RBX6QMZbY0Gz4tafO7nT6LqQwUZacfAoFMFiKgUyvVbN3xIBq+zsZVDjRUS6+HRxVZQ3gsv+2ladgg==
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=KboDKz3+vXTC4i8lWnodIs3UqoGQ1nkdDkYcbc7kPDI=;
 b=Kl46mHKMkYJc7/WzgLET8dZ806XgofwlGvwPpMOMsBEq15W8OfRMgWqeP4Cc9rWWLh+tmbxDjBzT2zvhn4OM6JdJWG1EiuUYQ2TWCwNP4NfAiDnzEMyLj12wDId+1nnbIXiuJSQZzR35B4r36mC9EDUE0MsEb++KO4JCo0SZkJE=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Roger Pau Monne <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>
Subject: Re: [PATCH 1/5] xen/x86: always consider '/' as a division in
 assembly
Thread-Topic: [PATCH 1/5] xen/x86: always consider '/' as a division in
 assembly
Thread-Index: AQHcm0PRpWbQ66MnpUKRg8FXLXanDLV9VOKA
Date: Wed, 11 Feb 2026 11:01:11 +0000
Message-ID: <A8CC5B43-5E20-40E5-A55D-07C44851B18E@arm.com>
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-2-roger.pau@citrix.com>
In-Reply-To: <20260211104638.7938-2-roger.pau@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DBAPR08MB5685:EE_|AMS0EPF0000019B:EE_|AS8PR08MB6376:EE_
X-MS-Office365-Filtering-Correlation-Id: c7fc330e-0332-4b5a-8578-08de695d0498
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?R3ZoVkpwVENvT3FIdGdzOTM3U3dldHJRU1JnaUZod3BTSG9GVS93SmZEWU9u?=
 =?utf-8?B?MFVGU1gzRXdWYTJ1bmNoenhKYkJWUWZpUGNubzYwWlpMUk9ycGlMM094R0R5?=
 =?utf-8?B?YkFsdldTZHlnWkljb1lEK2FvZ3Y1VFFLZTU2dXRNTG9hU2Zlenh4d01mQkFE?=
 =?utf-8?B?QWl6Zm9RL2w0dS9jLzB1NVBGd1JndURCQ0lhOVZ0Y3YvbnZqZndFb3pEdHpt?=
 =?utf-8?B?THZzeTJHeG1mVFlSSzVMR0xySnFFQnRxblkxNDlTZTc5SE0rR3lOemVCc3lK?=
 =?utf-8?B?TWVFTGxVN2sydk5mVlFkd1FVcW9XdFIzS3V3Nit0YmF6T2FISHhjeVRCdVdG?=
 =?utf-8?B?K28rWk5GNS9tcmlMUmlnbkJlQ0VHMUVhV0FzUVdGNjI4MmVPMHFkOThGTnJv?=
 =?utf-8?B?eHlibVNLTHNkRGE4REc2R1ZWZWtCMTdGVlZJelBHTEtmYmlYbjVBNmtHZDJM?=
 =?utf-8?B?ZjA4RjRaZXJ0aklGcGl6Mlp1dWExTDYwYitBQ3NGa2pJUlAvUElCSFUvU2JV?=
 =?utf-8?B?NzV4RExnUXhmTnZxSjg4OUUyZmM0azVYL1JtT3BhZXBhNWNxazJwSUVVTnE2?=
 =?utf-8?B?V1ZLYVEwaHFSWnZHZk1FUzJOMVZIa3ZMUUMyTDZxWGdrRjlnYURIUDJLV0d2?=
 =?utf-8?B?bjhLVjJDWStGckhNUXU2bndaaHRDTnZzc0ZJWTlTaS9mTFZPOE9rRWNkY1dl?=
 =?utf-8?B?TU90emhubVRrcC9DWDJycHFMSHNtM0NzcE1xdEVYRWhXM2RoYWhXK0hibTNO?=
 =?utf-8?B?WDlQaU0vVEtSWHBzTUtTSVArem83TTlJN2R5QUlvNGJhWUNKSFFSM1JUYzNj?=
 =?utf-8?B?aVZHampMMlA0bm8zdDNuTm8va3lBR0pTeE1HcjFzdER2V0NBUlFMcnl3Tzdz?=
 =?utf-8?B?QWJLUVhmSkszbGorN1lHcmpBZ2xCcWw0MG1EN3NrQnpscWxXbk1wT2VkNjM4?=
 =?utf-8?B?d0pQN1hMc3RGbGs4Y0FNemdTcG8vSzU3YjRZdjBtb0M2alVzL0FMNXdRTzB5?=
 =?utf-8?B?TkYwWGV2QmdHTFAyVEZIS245Z2xpeDFsZkVzVy8xSDZPZ28rT1JxRXdCNzFp?=
 =?utf-8?B?THdpMkpQTDU2UmgyRXJLT2l0ZWZMUEw3NElwbnhtWnZ0cVBreHNDV3NSVmFm?=
 =?utf-8?B?cTRpWEtiMzRmTVY0OUVSOHlDUGNlTnhycUZMRFJUVnk5bGxacGM4Y1Z5K2VC?=
 =?utf-8?B?RmIrZG00Ky9qVXI4ZWJ3WW0vTFRHS1FtZGE1Nkpja05tcWI4WnA4cDArMmNl?=
 =?utf-8?B?dndtOWswbFdTaEtyd00vZDlrSkhyWW5vQnhvd0NwRzB3eWQ1ZCtTbHJySFhz?=
 =?utf-8?B?eUVhVEE3aWs0czc1NXZDUHcrbVlPd0IrMERYMEQyeVNPTTFjakRoLzZnTFVQ?=
 =?utf-8?B?VHl3a0FDMkVLSjM4dnVFdmZpUHNhNHhuRk8yelExNVJNSnZwSDI5UDJqZFFU?=
 =?utf-8?B?dUsvT1BiV1dSYW1YSEtGMjlZN2lob0hRUnFpZ1hvMmdhOHZMRnptcVpJS3dn?=
 =?utf-8?B?Nm02TGlLUEIrZEVuNGR0Q0IyUWdwakw3R1NaNnJPVTJoTXlwcU9YNEt4WlBS?=
 =?utf-8?B?a3hJSEFQcFFiam5PQWdmRFlteGRFTFl2VEV1WW5kakZnYU9BcHhWUWZLOTFm?=
 =?utf-8?B?ckwrbDVmVVhMWXdmeVE3Z0Uvb2dJOHR1QWJ3Z2NpaG15dkFJYTZLaEZOdk5o?=
 =?utf-8?B?S2hEK09udUM1NHJDTkprU3grS0VNa1U0S2ZYcVMvRlZrMFFjYThKbUFVVXRH?=
 =?utf-8?B?Qm5zMkJBYWttVEVvdWhveWExYkpzcEJrcjd3dFVMT3VJZCt1RjcwUXFIVXNI?=
 =?utf-8?B?YWtTZmUxS3FHY0x4TFdMWFBxbWlhMCtRdjBVamM2YUI3aW12OWdaZ3pqY2ZJ?=
 =?utf-8?B?U2ZwRTZ1TGhNd2VzcWY5bjQyVHQxWTR5ZEFQM3E4dkh3SmFHY2k3dEZUNGhK?=
 =?utf-8?B?NWt1ZGkvbWczVGs2clFpMHJmWXlORHNWS2RDOTAvemVFM000eFd6dVBWWDB3?=
 =?utf-8?B?Z1dMY3Q4Y0o0RlVsUUtvZEs3WlEzanN6bTRoZS84ZHl6eERTVEJwdEFKcGJh?=
 =?utf-8?B?c3dtZDVwKzNvbm80RC9LRHRqSHlRcTg3MlI0MlJMenAwUGxoN0FOS3VWdFl1?=
 =?utf-8?B?UzZVUEtISktybUJ5SmlRbkdiZWJnWFFCSm9QWkcvSUlVMExkanh1dThZWHJ2?=
 =?utf-8?Q?CEV2/yFMnokX+m8PNGbz1yI=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <8218C883F6AC384790EA11E70F58FB7C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5685
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS0EPF0000019B.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a578a867-9e5c-48ca-c7fe-08de695cde2e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|35042699022|376014|36860700013|14060799003|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OWkzL2NsaU1kZHcvWTdINWFkM0ZGOHJTaTAwWjFiWm1OcHB1OXluaFUzaXlo?=
 =?utf-8?B?c0hTVmMvcWIxZE9oZzVRcW5ubGl1Zld4amZiWGRZZFB5dG5CS3JHb0lkeGov?=
 =?utf-8?B?WDB2Vy9wTklGQ0hhNE9UdENWaVpYaE1BUlFFMDhOSXYxbkV0ZmQyWTNqemxT?=
 =?utf-8?B?SUsrVnJHaTVVam5GeWN4Q01WdjF6Q2FqT3RkSDgyOS94UTNZbmQ3T1c2cU1R?=
 =?utf-8?B?WThRUUcxVjFHYlZPR21mL1JLeXJESG81MS95Q0J4WHpXdlYxSjNLSGZpTjVm?=
 =?utf-8?B?ZWEzSGdabmxtcTlBM24zTDdOYVFhWURlL1pMdER4ZC9BWXB0bjdNVm9jdmM0?=
 =?utf-8?B?SFBiTnJrUWZmMXRUZHQwOHlFRVR1bU45a29aV1VKNGVtRG9WbWJseDNnRDhY?=
 =?utf-8?B?MVo4THd3QXhaanA1M0paZm5jSkd6TE9qSmRNU2lzYWlLYjRsZWx5Mk5od3NP?=
 =?utf-8?B?Sitwa01rUkR3SnduOFNrNFYwYVQvOFB6N1N2SzZPcklKYmdwWVpaMzBkV09m?=
 =?utf-8?B?SHgvamlLUkpzWWszNzdoMHNLYnpGWnk2eng0NVdPb2dVLy9RV3R3YVF6MERv?=
 =?utf-8?B?VytUQWpMZTBxODVpb29NMkw2MFBsYjZ1aXV4eVVzV0wrNjFUZ0RpNHAxdTdX?=
 =?utf-8?B?TnhGWlRCbzVDMG5WZ0kzOUVaaS8zR3VzWkt0cEZmK3M1Y1NsMGdGdXhQVC9J?=
 =?utf-8?B?SHNZMHJRYVdPU3ZRWTA4QWJodkVVanpMZ2NLZ3pDWG1lRE9IT1JsalhLSzVO?=
 =?utf-8?B?dGRDQ3U2NGQyNG9PR0NGSDdVWU1mZE9qRWgvQTA5RkoxR2taY3BpVXU5VDVw?=
 =?utf-8?B?dUNNM3ROTWExYjdDaVpjVHVxR1VnVWQweUhHQStCWjQ4OWJ6aG1wTE9OOXZp?=
 =?utf-8?B?Mm03MEh3QmRFbnRFQnBtK2tldjc1bHFRMVVUV3FNeDl4Y1k5UnBkVEUyNDkv?=
 =?utf-8?B?a2piWkJ5MkFob0E5VEs2MFN4U1NsMnVITjV3dTdTNDNDUzhZUFM1Zm5aVVBU?=
 =?utf-8?B?QUYxZjF5SjdDbCs3SmVyVW5qL2pWMFNTMmFGNWJ2WUlnbkxQN1F6MjlmbXNK?=
 =?utf-8?B?VmlIZHhGV0VkVUNhQ2ozd3QzZWVHMm0wdGlQNFpIQ2h0Mi9LWXVmMEdBYUpN?=
 =?utf-8?B?M1NQMnM1cVVIbEhqM2dWM3ZObUI4NWpJSGZneERuSWIyWVpFdFlYdW8rQzNQ?=
 =?utf-8?B?VWdOVmxsRTZKQjU4UzE4eEtzUzVMNEY4bGNqa3NtWEdpOWt3aHF0T0orNHBP?=
 =?utf-8?B?cHlPMURRM1A2aEs2QjJvU09WUjhKUDV6clBGajhkaW1NSWZ5bTNIZitneFNH?=
 =?utf-8?B?aFdldk55ZkRsNUMwRldRdmkxOHNHVWFESFR3NDkwU1BWVjlkbXlkNlZpbkFQ?=
 =?utf-8?B?dEkrVS9jQU5nVHovaGtjakl3d01YRm5zZUtoRWxKQWd5VkVTdDcrZkRrMys3?=
 =?utf-8?B?aE1tNWhSOGlUc1U5TndPb1V2TzAyT01FZHpzbEZQamVPSlc2Q1RBWFdvcnRn?=
 =?utf-8?B?MnkxV0JpbFpOVkNOWERlY05CbHBDODlMS1UrQk1Cd0R0NEE4bjk0QW0vNThI?=
 =?utf-8?B?WVNzRW85TzI5YzZ3UVJmbVBjeWMwRFBPcCs5emdkZStkOGdFL01vNGU4czhy?=
 =?utf-8?B?cGluYUJNa0RvRE01WnBUMVh1dmNEQS96UUFBZ1RPM1Bsa3ZhQ3RHdENWNTAr?=
 =?utf-8?B?ZDJLSXYzTkkzTmJtRVhObkR2bXhoZHVvZ3lUeXhBUlV1QXo3eTFXVnVWUEZx?=
 =?utf-8?B?SkR4QWJ3SGFodzArOVM4QVZZOGJjNlQrUVVRSFVOeDFKVmx6enJQUDhEL2RE?=
 =?utf-8?B?bEplVlFLRTMxTTBzZ21ZbktHOG0xMlhkQ3c3MWwwbmttVnZsT0FvU3lMR2pX?=
 =?utf-8?B?RlhvVGZ0YlZxZ2Ewc1dSSWFLdXdGT3p2Qy9UT1dHdk5rVjJienJrN1J5MDMw?=
 =?utf-8?B?dHJRb3RlZ0hpSzFvYmtiTk94VHN5THJjU2w0WEYrZlVlMTFxLzMxclhiVnls?=
 =?utf-8?B?RWt0cStBSnVYR3dSZHoyK25TWGduTFhzNUxjNjUya05iMHh4VUVhL2NCZmdK?=
 =?utf-8?B?a3ZjYmVKWHBCNW9rMjlxUlBUaXBSMUcwajg2a0xiYnBPS2xkTXpLM2wrR1gx?=
 =?utf-8?B?RGZ3M01UbUNtVEJJQXNENXF6UlBVRmpwNW5PMXMzVUJYOVUybVA5dkFEN3RC?=
 =?utf-8?B?UWxyeUI2am45dVNOWVJxRW8zSkpxd1JFWG1mZFZ3eDZZMU1sVHhMTm5XRXFX?=
 =?utf-8?B?d0RDVVNZUytoeVFWRlJ3R2dkN2xnPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(35042699022)(376014)(36860700013)(14060799003)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	XTacxbKjatqpxby8yqS3MVrjXNqeVZoEesLKEc8ohI5eLkKuIfhfGfshc27Ifibxz18yV+JUwkrEQRx1U/X/1Nuck+G3w1KYuAcE0fxNK7RnpcmfGjyc9uoeaaeBjeZbsOwd4iKH0F4U5/H6scbyL9KevBUglrPcNNAKn1x5K8SAlh228zTWPdnPzj8F1ruVTB/55a+iNWBJ/rteCAFjZfkomUv320v5EwTEiAtrpJ6o9iV7Bd9HPlpDSQkuoo+oVCR7Vap75h3k91VomegwqNgOIEpM2m85cBE8LzIprV9fxDZhRhyts2KSTXwb2qtLauzoL8w1CS/V9Dfsbhu5I4P6dxmpZCq7Qns/0wXgeLZ8pwLtIGc+/+Lv3dA2t7SbTmit266ukpJLJLfC2bkQwmEp1lD4By6AXDW5tXwX3p0s1Yf/YwDwMyRCpi+7F0vt
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 11:02:16.2231
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c7fc330e-0332-4b5a-8578-08de695d0498
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:
	AMS0EPF0000019B.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6376

SGkgUm9nZXIsDQoNCj4gT24gMTEgRmViIDIwMjYsIGF0IDExOjQ2LCBSb2dlciBQYXUgTW9ubmUg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIHg4NiBHTlUgYXNzZW1ibGVy
IHdpbGwgY29uc2lkZXIgJy8nIGFzIHRoZSBzdGFydCBvZiBjb21tZW50IG1hcmtlciBmb3INCj4g
c29tZSBFTEYgdGFyZ2V0cy4gIFRoaXMgaXMgaW5jb3JyZWN0IHdpdGggWGVuJ3MgdXNhZ2UsIHdo
aWNoIGRvZXMgdXNlICcvJw0KPiBpbiBhc3NlbWJseSBmaWxlcyBhcyBhIG1hdGhlbWF0aWNhbCBv
cGVyYXRvci4NCj4gDQo+IFRoZSBiZWhhdmlvciBvZiB0aGUgYXNzZW1ibGVyIGNhbiBiZSBhbHRl
cmVkIGJ5IHBhc3NpbmcgdGhlIC0tZGl2aWRlDQo+IG9wdGlvbjsgdW5jb25kaXRpb25hbGx5IHBh
c3MgdGhpcyBvcHRpb24gd2hlbiBhdmFpbGFibGUgdG8gZm9yY2UgdGhlDQo+IGV4cGVjdGVkIGJl
aGF2aW9yLg0KDQpXb3JrcyB0byBidWlsZCB4ODYgYW5kIGFybSBzdGlsbCB3b3JraW5nIG9uIE1h
YyBPUy4NCg0KPiANCj4gUmVwb3J0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv
bT4NCj4gU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+DQoNClJldmlld2VkLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFy
bS5jb20+DQoNCkNoZWVycw0KQmVydHJhbmQNCg0KPiAtLS0NCj4gQ2hhbmdlcyBzaW5jZSB2MToN
Cj4gLSBHdWFyZCBvcHRpb24gc2V0dGluZyB0byB4ODYgb25seS4NCj4gLSBBZGp1c3QgY29tbWVu
dC4NCj4gLS0tDQo+IHhlbi9NYWtlZmlsZSB8IDcgKysrKysrKw0KPiAxIGZpbGUgY2hhbmdlZCwg
NyBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL01ha2VmaWxlIGIveGVuL01h
a2VmaWxlDQo+IGluZGV4IGEwNTQzMTVmYTRhMi4uNGM4M2UyYTQ2NDc3IDEwMDY0NA0KPiAtLS0g
YS94ZW4vTWFrZWZpbGUNCj4gKysrIGIveGVuL01ha2VmaWxlDQo+IEBAIC00MTMsNiArNDEzLDEz
IEBAIGlmbmVxICgkKENPTkZJR19DQ19JU19DTEFORykseSkNCj4gQ0ZMQUdTICs9IC1XYSwtLXN0
cmlwLWxvY2FsLWFic29sdXRlDQo+IGVuZGlmDQo+IA0KPiAraWZlcSAoJChDT05GSUdfWDg2KSx5
KQ0KPiArIyBUaGUgR05VIGFzc2VtYmxlciB3aWxsIGludGVycHJldCAnLycgYXMgYSBjb21tZW50
IHN0YXJ0IG1hcmtlciBpbnN0ZWFkIG9mIGENCj4gKyMgZGl2aWRlIGZvciBzb21lIEVMRiB0YXJn
ZXRzLiAgUGFzcyAtLWRpdmlkZSB3aGVuIHdoZW4gYXZhaWxhYmxlIHRvIHNpZ25hbCAnLycNCj4g
KyMgaXMgYWx3YXlzIHVzZWQgYXMgYW4gb3BlcmF0b3IgaW4gYXNzZW1ibHkuDQo+ICskKGNhbGwg
Y2Mtb3B0aW9uLWFkZCxDRkxBR1MsQ0MsLVdhJCQoY29tbWEpLS1kaXZpZGUpDQo+ICtlbmRpZg0K
PiArDQo+ICQoY2FsbCBjYy1vcHRpb24tYWRkLEFGTEFHUyxDQywtV2EkJChjb21tYSktLW5vZXhl
Y3N0YWNrKQ0KPiANCj4gTERGTEFHUy0kKGNhbGwgbGQtb3B0aW9uLC0td2Fybi1yd3gtc2VnbWVu
dHMpICs9IC0tbm8td2Fybi1yd3gtc2VnbWVudHMNCj4gLS0gDQo+IDIuNTEuMA0KPiANCj4gDQoN
Cg==


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:09:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:09:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227303.1533646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq861-0001uo-O7; Wed, 11 Feb 2026 11:09:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227303.1533646; Wed, 11 Feb 2026 11: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 1vq861-0001uh-L4; Wed, 11 Feb 2026 11:09:25 +0000
Received: by outflank-mailman (input) for mailman id 1227303;
 Wed, 11 Feb 2026 11:09: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vq860-0001ub-J1
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:09: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 1ecb63c1-073a-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 12:09:23 +0100 (CET)
Received: from AS4PR09CA0023.eurprd09.prod.outlook.com (2603:10a6:20b:5d4::13)
 by VI1PR08MB10174.eurprd08.prod.outlook.com (2603:10a6:800:1ca::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 11:09:19 +0000
Received: from AM3PEPF0000A79C.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d4:cafe::fd) by AS4PR09CA0023.outlook.office365.com
 (2603:10a6:20b:5d4::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 11:09:18 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A79C.mail.protection.outlook.com (10.167.16.107) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 11:09:19 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB8734.eurprd08.prod.outlook.com (2603:10a6:20b:564::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 11:08:14 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 11:08: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: 1ecb63c1-073a-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=DZtO/PDlacwKc+7IGQoD1yMIMfvTwnVkD/1wWWwcDW8cfSp7GhcZBN7hjYmjElipoQRXZ2is21sKrrzUNKks+ANMZi8hp4ypwiPm+gevSDWz4fi76lT4HaEIs/F0b955716yGU9fLMIK/CEF42kWTrKV4zq1l0yJUaL3ijSZ/31/1DjsrCnQwfoF4OpVOkJfJnIL3KZsG/C5c6eO0eVMgKstHDcGsjqRsMAUgLqb9mG4bk1NEO456CNFGxi5N0kxop+IViiKaCGqpnRIVePJ13bC5sK1WtshFNPqwUHbNLr1qDlhAczP08CdEtH+c7ZQQWNov5ZEwh9KPa9T8JTnRQ==
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=omeW+HwHxjhhmMyqROUjTaoySPW34Najk1rGtQyUc/Y=;
 b=pmiZSi4G+t4PSRGRFiKxUBBCItNFGXUDlcQQo2uowuvhDGj2D+3HTj6XoVMT2vdc9M9QsUIlduPPJBi4SDrhuENDgSSHIY15KNjMRKUPatkkkPXYc2ODSAKyBxCnHZDZ6gb77pYgBR6YK3ucz9wEFaYPOkPSZoqTHDsjQqho8RSXKeDOYXvX7udeXZbs1n/pGpLWBF1JGkNzVYMPIAaGD25iFdh53QowVtaZCPkzPsKaXtFA8iFoWujhEVCjEzQyaqkj9TRaWAwOUkiKWt1zd+qD6/gxnEphA5TBlHr/7sq2tFuNu53oNndhVZVHjSkzPn0R0vFrlp8tWhsuP+UqWw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=omeW+HwHxjhhmMyqROUjTaoySPW34Najk1rGtQyUc/Y=;
 b=kX56Bo8S16Vj6NLj0IWqtGomyervQwYGh3mnD7stVhTS31GHrqrZ46RNnuCsrDsMM96ae/UjehSIO5wXdKAUmCYHP2bCQVxq4UguI/PGTkliL2czOfbQgUAXp7g7YbJLyrhZVBX1wR2UTa4M4OfV3BkDCT4/D8P8keX4oBRAMf0=
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=UwusZM5CdIqxeANoBcj1O5RCnt1aqF9PihynA0TS6JvLyAkH1xLpUL9PXWfqE9U0sLdMA4dWCg9mrfjTJ+gk9OpCjphrVbjsIRnO9yGvI3CtqjfCX6wpgLGyYrUZ3SMswSbFNiFFa7G5X7dAVRvLP7Kt9IHDw34C1kZ2ckU8frxGeDDYrRaS12HUOdiXP3q9/Egav/xMJV3jAYrZEd7ripdLNY+9kmtaprgCiQ/OsRjvG/QMc/E2qxipiZBpmpXZkMXO2VhNrpi7hnNfHc0NHQ/+0NRvHkjvsnzMquQj+QTEy9NIdGhcM9Dv/ogdcIj9Cp5zG1bSJ1yWP3Ug0rBwxQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=omeW+HwHxjhhmMyqROUjTaoySPW34Najk1rGtQyUc/Y=;
 b=T3Pi9gRb05FVV2izm0fj7eqHOix4dvuTSWibXJ6MLxBnyOVfJggaNd0UKm03xovfDwVlAuyCjpFUq6hqS11otmsXIOtpgswxzOPxEiW0QeIMEf7f+h9p+RdJv95h+gBtFPc3JjnVU+0lZpYWAgrBIPhgiS6uKM1P0eFAKjP8uVn6WpSbct/hfSFV7dG6eBGfkVlJUKKHGiXA85FwvkL7JCtzuqKzP/QKzvDWycanAGE7duruRlz/OsThyDNzJzaGZhNoufXji+WuZ/vuEjM1pYu2rRc2K3HOIKFq7piFZdA2/2HBrtBN3ck9Y8c5otK3H7bJmT1+BMCKOl16SXit+Q==
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=omeW+HwHxjhhmMyqROUjTaoySPW34Najk1rGtQyUc/Y=;
 b=kX56Bo8S16Vj6NLj0IWqtGomyervQwYGh3mnD7stVhTS31GHrqrZ46RNnuCsrDsMM96ae/UjehSIO5wXdKAUmCYHP2bCQVxq4UguI/PGTkliL2czOfbQgUAXp7g7YbJLyrhZVBX1wR2UTa4M4OfV3BkDCT4/D8P8keX4oBRAMf0=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Roger Pau Monne <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>
Subject: Re: [PATCH 2/5] xen/tools: remove usages of `stat -s` in
 check-endbr.sh
Thread-Topic: [PATCH 2/5] xen/tools: remove usages of `stat -s` in
 check-endbr.sh
Thread-Index: AQHcm0PEG2YcjpXtf0qy6VnbXjUrurV9VtsA
Date: Wed, 11 Feb 2026 11:08:14 +0000
Message-ID: <2F1AE4B8-3055-4953-9A8C-DB38E646B496@arm.com>
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-3-roger.pau@citrix.com>
In-Reply-To: <20260211104638.7938-3-roger.pau@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB8734:EE_|AM3PEPF0000A79C:EE_|VI1PR08MB10174:EE_
X-MS-Office365-Filtering-Correlation-Id: 3ea30bd4-08f0-404e-cc20-08de695e00cb
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?dEovMmZzMXBhRXR6TXJFNmMzTjFaRWpidkVnZGNlU2JGckpKRWNpZk5mMk04?=
 =?utf-8?B?UFh2UHFnSEFrVU5leXkyN0NwZTV1WGRXWGhjV1VlaEpxS0VlalJhbmZWaXJT?=
 =?utf-8?B?MzVxRmhXNGVITHlPK0kyR2dFZlZXcUNiM29PR0Z3bk0yUVhreWJINHB4ZzVY?=
 =?utf-8?B?QmlON3poSldPK2JuRFY0dVBNWmhkR3NNOWp5VDV0M21zazc0UFhlMm5xM3lJ?=
 =?utf-8?B?dms1Rjh0ZXB1Qm5KbDU1UHdlSGtUOHUwR2FUTDhKTEpYcmlKaDg3K2pHY2tD?=
 =?utf-8?B?ZFpBTldxU0gzZzBzNWJEL0FRbkEwTHFGMnhwcHVXbTNqWTlzSGJNYzB5eFRy?=
 =?utf-8?B?OThtZjhzem56MUMwdERCWXRKdm5oUHA0ZS9oYmJIWmZvWGE1NWRyZmNBT0Ro?=
 =?utf-8?B?eFFpdzhkL29PNjZ3NHI3b0dFamU5elpkZG9XbVd1MFNzU24wTmRKUERqYlZO?=
 =?utf-8?B?S2duZGpPeGJYQi9qek5VamhWb1krVkxmeVVaU0t3OFNBSUV5alFSSE9VM3Br?=
 =?utf-8?B?OGdkdkt2bUlEOElrQW9Rcnd3aWZxS1lyTjJaRytTdjkxOFNlYm1UbEVLQzlT?=
 =?utf-8?B?d2dibmlva2xuNE5xOHNyOVBjU0pLR0VWR2ZEVzI2eXlPRG43eTZuMDNZOTFa?=
 =?utf-8?B?TmxqSTFxek9YOVlCTnEyOWdwdUxiNEJJSHpQY2IyYUcvMGxKWkRmc281VU1l?=
 =?utf-8?B?bU4rb1F6VW9zait2SHpuQWZ6eHBVMlZ3MkRXMDhjbldieURXUVd0RW00dnhk?=
 =?utf-8?B?c3BLODM4SkVnbCtOWFNaNHRUVHVLcHp3ZXJJbk84eDVnM3VoaEhSczVQNUln?=
 =?utf-8?B?K1VWcnUvY01nb3dqRnlhVzlZN0d4eERvNE1RbkRPRTUyOUtJSlhlbVl0MzVl?=
 =?utf-8?B?RFF4MUZBVXVtUmFVdXFVUHA1SkcwSGQwVmdMWUtDM3k4dE1BVFpMUGwwVzIw?=
 =?utf-8?B?WG1CMGVwYkxVcXdNa0h5VVF5UVhpaGdFbWdDQjI2TGxRVjYxb2NDeHRIc0N1?=
 =?utf-8?B?VUFJUEViVDNEaHgzckxmUnF0c1lhZlU4dHZjZmt1NVoxcUpteVVIT0dEcXZu?=
 =?utf-8?B?OUcrbVY3cUNRbjlIT1R0UHdrTmNZU3Rha3JNa0QxTFZvbXJ1SjlvWnlXbC92?=
 =?utf-8?B?MFZOT0w4U3FTZ1Z2RGJ6K01rWGFzMzVBVTVtVmFDSks3TkJ5TWpYakozZy9p?=
 =?utf-8?B?bHRwMnNtaXd2TldCdnc1VTlLeUtJNXI2Y0oraUxLQTF6NFhYZUZFYTNPak1I?=
 =?utf-8?B?ZFMwbFlvNSt3RGlaRTd4VlhXN0wyNmlmNDZxSGdKMll5RzVaV1FxWlp1NHlr?=
 =?utf-8?B?V09QQjMvVCs1bk9wUmJsdGlDWGl5WVhteFhTTHlPaFJSaStGcHFCZ2NXK3Zy?=
 =?utf-8?B?elhPK2hGd2cvbWpKcGpxeXVYRXJ6OTNiQ2tKeVIrRTVEc0hCVGxLSjB3Q3Zh?=
 =?utf-8?B?R0ptak4waElicDFrK2ViV1ltZWEyWTc5OStFMHNtUkNoQ01pbWV4NHhrVWVX?=
 =?utf-8?B?YUhZNUxDU21IZTVCL0JadVMzLzh0Z3o5NngxZWg2NEJUK1NEeUFMT0x3ME5x?=
 =?utf-8?B?cE5OcmVoWVdsOXNla3NFQ2JRUEFpdkR5K2VKUjErdU9lUjFBNmN2R3ZZbHRu?=
 =?utf-8?B?MUx3ZnZZWkY2ZE5KdTFXcWlLUEZXNHFTUWV3emc2UnpoYnU0MlloeHhyWE5Y?=
 =?utf-8?B?WHoxbTFKaFVSaGJzOUpLV09saTVTRUVuNFNybnduM1JwZHk3S2I2UngrVUVm?=
 =?utf-8?B?bVJWRnpDOWlCRzdhSnR0SHZNQU1Rb1RENGlOMXkxTlZiR2hiTXlyVzdudlR3?=
 =?utf-8?B?RUhyNG92SnhDTmdKRHFpL2tOaW1HRXpJRlhMM2JwdTFUendXRy90d3JFd0FL?=
 =?utf-8?B?ZUkydzhETFBuVEUzZjVmdEdRc2h1SjZvYUVzTCszOEYxWmNJUmJ3UjNZMDA0?=
 =?utf-8?B?S0g1VldyWGFyc01mQW1QbnFjN2FIL1UvQ1I0U3FJUTBpKzFNcE05YWJSR2hq?=
 =?utf-8?B?SCtaY1pUbXVhR2l4Y1EyTFU2R1htb3dxenZlVHpubWM0MG1JaEwvdSt3SUM4?=
 =?utf-8?B?dFErOHFPNW5ZMUhhbVdwcXBqa1Avano4QzRKT0VuVHU5NjlRb0FBQnBZV3Bz?=
 =?utf-8?B?TDBzSzM0RHV6WEJKRzQzOXlMNyt4SmsyNGJGeFBMWGdRWEFndVdNNFBYUDlv?=
 =?utf-8?Q?nmbazI9tjKpzG3z+6VsadH0=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <1E1C1D406370C14289FF18616A344479@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8734
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A79C.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b0efb4a1-5dbb-463e-e3fc-08de695dda17
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|82310400026|35042699022|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RDZtd1BTWlZzSFE1NkFCSFFPd0Z3TFFNbVFGa0dpVk9HclA2YmtoZjZWby95?=
 =?utf-8?B?NDJmdjd4YXlKaTk4TFJERzJ6ZVRnaUN4cE9MWndKRUVOZldveEl0cmwxVmF2?=
 =?utf-8?B?REJ3QVhWTzI4elRDU05HblY5Wkw5SkJoUVJmb0NhMzlCMU9PS2xDQTJsb2JE?=
 =?utf-8?B?VEY0RG9EZFFZaWwvSnhRWkxQR2Y1RS82aFY5eWNMOTJ3L1RRUE1KWUpCOStH?=
 =?utf-8?B?ZEJiZTFBYzRZRVd1cnhNNlVKbjROaDBCMG16dlU2eStKMndoMENuQ3MwZFVl?=
 =?utf-8?B?L0M0emNjRmhSa1A0UUN0UkordGpDVUFvbndLWFdXMndlTHRnVXhmeUJweVh3?=
 =?utf-8?B?ZzE1M0xJWmtIMkJTdlVGNUN6V3QwR0hrdjFDY0d4UGh2MmNud3B2VjFYK2dJ?=
 =?utf-8?B?Vlg2UWVNZlorN0pVeFJINmRZNkhUemNNRTk1emhWUDdzc3gzdHNxRHFtQ0M5?=
 =?utf-8?B?UHV6QzZCODBLN2t5Z2IxenRkMmF0aVdXbktCanVPdm14MmdxSGMza2hwditZ?=
 =?utf-8?B?U2c1d1hMUFo1NXB3RTFNUHY4V0JKRDVrVlhOd3V3RXlJd1hoa0ZKampuOTJK?=
 =?utf-8?B?MkxFTmZ1RWV0ZkxXaDMyVkM2VWM5TmRtSllheVR0bjhEbDhOOCtLY21MVVIw?=
 =?utf-8?B?eFhEcC9mYjFTSC9sTFA3T1dxZlVWaUorV3g3dnRhVGFyc3AzSHVEK3MvMWJP?=
 =?utf-8?B?THBWQ2hRTWRISkQxdlFVR00rRkFRRmh1K1hzOXNpWGVsY3E0RndUU3BJVCtJ?=
 =?utf-8?B?VUtPSXdXckx0QWJTOXFEWGF4b0E0bDZnSmVPaDFBUEhwWm10dmVHcDFJMTIy?=
 =?utf-8?B?QXllcTJDRDQwL1FqbmI0ZUlzai9OT0ZJSXlRdkFmMjRlYzRIb0N2UWxsUUhh?=
 =?utf-8?B?eEVMNUl3MHBGZVlpMHZ5VTdxazFWNjZVQ2lTeXFIbzB1b1FrSG5ycDJ1VjY1?=
 =?utf-8?B?VlVYOGp3akNaMnA4MWtGV3AvYnV4OExuTzUwQUhkeGkzSGJZYWlaWmNJekVq?=
 =?utf-8?B?d1JleFkrR1pNcHY5cDVSRnNMOUxzNHNGS3Mxd3NqdXRCUEFQZEZMTGVDTUFO?=
 =?utf-8?B?MS9kLy9DdWRpUDFaMndkNFArdW85dkxMc1hwSmR5VjVBVXFEWTA3clViMktF?=
 =?utf-8?B?OEhzQjl1K0doUmdrTEtoVkIyNkI1VVdCS3hONExWSHZsMS9BZGJFaTRBamUy?=
 =?utf-8?B?L2xFVHRFcHVNZFpQdkM0czg5dDc0dzJlMzJXWEJMTThaYzJUdE94UHFxMVgx?=
 =?utf-8?B?ZFRYSHR0NGxoY1FBTmk3TUg2TkFmVEtZQzNwUysvT0JpT1FlenkzSDF6MzdP?=
 =?utf-8?B?N1lCRzIvNitjSjFXcHUxanFNNmhnVFh4K2trTUtOSEYyUW13UXpISExCY3d1?=
 =?utf-8?B?SVhWSjYwN1ppdFg4cnlaV3g2SGVFZkVqM2dXcElibkU2OVlVUlZWdE52Qk5X?=
 =?utf-8?B?WlpCbk82WWtUVXpVK0VnY3hvTGIzck1ScDZHZGpBMlN1b0daMFNNZDRWMmN0?=
 =?utf-8?B?RUhyaU11cmdqRTE1aFFlMkQxM2NaRG1NdW5tekNBWW4vUGJmVHBobEdXb3Vj?=
 =?utf-8?B?azNZNk9LM0dxN2lCS3JjR2FxZEgvbnErcmxIMVVhVU96Zm5WWjVNbHZmY1dr?=
 =?utf-8?B?SURHMDdxeDV2WXNiK0dQRFpQbjRMeCs3cWFaVmlSQVRhM3dRbGFObE5jSGRz?=
 =?utf-8?B?SjlxWVhHWEJKMXd1Mzg0T3pWeThPLy9id1M3K0NhWEN4b2pnZ3VyQXJQMHJY?=
 =?utf-8?B?bGxCeXNvMktGdE1tS0RrRGtiQUU2WU92U3pQdVk2VXlQWitjYWo4OXNsYlhZ?=
 =?utf-8?B?YUhETDhDSVZGMU9Qdk5KYktqYVVOWlVvT3BjcktSVDFOWkZuelhyeUtMYTVs?=
 =?utf-8?B?NkpHY3ZHdXIrSktCblVTcUxScnZRRnRtNTQxQ0g4bVVlYTloVUdjdU5TTXMy?=
 =?utf-8?B?NnpwdndlMTc2ZmcwakRpMUV0NFBRZ3BBQ2RLTlJYVmV2K0RvL2hPOGtYZVVN?=
 =?utf-8?B?UG1lOFlsNVBXclo4ZDQwa01aZDZNZzJrS0ExZ3crcE50SGV4WEhHKzRZSlMz?=
 =?utf-8?B?NU1jVDhMN1JQbWxnOWJhbGlZUTZKaFFKbkxRWnJzTUdjTktTVUVOODNlUkl4?=
 =?utf-8?B?Wjc2U25FU25qTk0rTGc3TWJEdWlOMDNTOFUrQjBqVlhlRlpEUm5Tdmp1azJp?=
 =?utf-8?Q?G8XhGAOVnsLCoUZzpK/c5gR/0bvhzr5Ky6xN+EWXR/Ys?=
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)(82310400026)(35042699022)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	R5Sp/F1+0uHbkBeyQtSBBdvYL84kVXRzGw/8I4QekNZbx5V9kygMELJW9F3jau+j420xWdFxKb9uI6Riearjvp6HpVAVWXhTHnhhsB9JvQycupBrKiMZuS7xWfuyTW+bA1+zI37EUmiDggb6c2OQCGQcB4vO1WliFekSsH4vM67gkfAeKHcvYKZNiF76CL0AfvFHIL5duLC5yveKIgYFhC+HK10I/s8kfqUJXFERuZ8YIpgb2/SIZ2uQDpsf61xMSEWvjQChfzBmwBYTzcGzAWuyABN2s+2lEq+LUcjfMuBJuJ83qGBDuf0uZPDcRkAjrcd6qHaxns4qgyJvVumgbRBwxvTRDYZs/TWklqi4XUv/va5RKKr8Y2hViYIpFmgx++cDbjIhzUhesKoc0cgM+n6/lySFu/HLvG/uT080QxzZTTkdh3Dt9lDyIhfww1hW
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 11:09:19.3517
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3ea30bd4-08f0-404e-cc20-08de695e00cb
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A79C.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10174

SGkgUm9nZXIsDQoNCj4gT24gMTEgRmViIDIwMjYsIGF0IDExOjQ2LCBSb2dlciBQYXUgTW9ubmUg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IFRoZSBgLXNgIG9wdGlvbiB0byBz
dGF0IGlzIG5vdCBQT1NJWCBjb21wYXRpYmxlLCBhbmQgaGVuY2UgcHJldmVudHMgdGhlDQo+IGNo
ZWNrLWVuZGJyLnNoIHNjcmlwdCBmcm9tIHJ1bm5pbmcgcmVsaWFibHkuDQo+IA0KPiBUaGUgZmly
c3QgaW5zdGFuY2Ugb2YgYHN0YXQgLXNgIGNhbiBiZSByZW1vdmVkIGJ5IGZldGNoaW5nIHRoZSBz
ZWN0aW9uIHNpemUNCj4gZnJvbSB0aGUgb3V0cHV0IG9mIG9iamR1bXAgaXRzZWxmLCB3aGljaCB0
aGUgc2NyaXB0IGFscmVhZHkgcGFyc2VzIHRvIGdldA0KPiB0aGUgVk1BIHZhbHVlcy4NCj4gDQo+
IFRoZSBvdGhlciB0d28gaW5zdGFuY2VzIGNhbiBiZSByZXBsYWNlZCBieSBjb3VudGluZyB0aGUg
bGluZXMgaW4gdGhlDQo+IHJlc3BlY3RpdmUgZmlsZXMuICBUaG9zZSBmaWxlcyBjb250YWluIGxp
c3Qgb2YgYWRkcmVzc2VzLCBzbyB0aGUgc2l6ZSBpbg0KPiBieXRlcyBpcyBub3Qgc3RyaWN0bHkg
bmVlZGVkLCB3ZSBjYW4gY291bnQgdGhlIG51bWJlciBvZiBsaW5lcyBpbnN0ZWFkLg0KDQpJIGNh
biBjb25maXJtIGNvbXBpbGF0aW9uIHdvcmtzIG9uIG15IHNpZGUgYW5kIGNoYW5nZXMgc2VlbSBj
b2hlcmVudA0KYnV0IGkgd291bGQgbGlrZSBhbiB4ODYgbWFpbnRhaW5lciB0byByZXZpZXcvYWNr
IHRoaXMgb25lIHRvIGNvbmZpcm0gdGhhdA0KZnVuY3Rpb25hbGx5IGl0IGlzIG9rLg0KDQo+IA0K
PiBTdWdnZXN0ZWQtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNv
bT4NCj4gU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5j
b20+DQoNCkFja2VkLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5j
b20+DQoNCkNoZWVycw0KQmVydHJhbmQNCg0KPiAtLS0NCj4geGVuL3Rvb2xzL2NoZWNrLWVuZGJy
LnNoIHwgMTMgKysrKysrKy0tLS0tLQ0KPiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp
LCA2IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi90b29scy9jaGVjay1lbmRi
ci5zaCBiL3hlbi90b29scy9jaGVjay1lbmRici5zaA0KPiBpbmRleCBiZjE1M2E1NzBkYjQuLjM4
M2Q3ZTcxMGE1MyAxMDA3NTUNCj4gLS0tIGEveGVuL3Rvb2xzL2NoZWNrLWVuZGJyLnNoDQo+ICsr
KyBiL3hlbi90b29scy9jaGVjay1lbmRici5zaA0KPiBAQCAtOTIsMTQgKzkyLDE1IEBAICR7T0JK
RFVNUH0gLWogLnRleHQgJDEgLWQgLXcgfCBncmVwICcgZW5kYnI2NCAqJCcgfCBjdXQgLWYgMSAt
ZCAnOicgPiAkVkFMSUQgJg0KPiAjICAgIGNoZWNrIG5ldmVydGhlbGVzcy4NCj4gIw0KPiBldmFs
ICQoJHtPQkpEVU1QfSAtaiAudGV4dCAkMSAtaCB8DQo+IC0gICAgJEFXSyAnJDIgPT0gIi50ZXh0
IiB7cHJpbnRmICJ2bWFfaGk9JXNcbnZtYV9sbz0lc1xuIiwgc3Vic3RyKCQ0LCAxLCA5KSwgc3Vi
c3RyKCQ0LCAxMCwgMTYpfScpDQo+ICsgICAgJEFXSyAnJDIgPT0gIi50ZXh0IiB7cHJpbnRmICJi
aW5fc3o9JXNcbnZtYV9oaT0lc1xudm1hX2xvPSVzXG4iLCAiMHgiICQzLCBzdWJzdHIoJDQsIDEs
IDkpLCBzdWJzdHIoJDQsIDEwLCAxNil9JykNCj4gDQo+IC0ke09CSkNPUFl9IC1qIC50ZXh0ICQx
IC1PIGJpbmFyeSAkVEVYVF9CSU4NCj4gLQ0KPiAtYmluX3N6PSQoc3RhdCAtYyAnJXMnICRURVhU
X0JJTikNCj4gKyMgQ29udmVydCBvYmpkdW1wIGhleCByZXBvcnRlZCAudGV4dCBzaXplIHRvIGRl
Y2ltYWwNCj4gK2Jpbl9zej0kKHByaW50ZiAldSAkYmluX3N6KQ0KPiBbICIkYmluX3N6IiAtZ2Ug
JCgoKDEgPDwgMjgpIC0gJHZtYV9sbykpIF0gJiYNCj4gICAgIHsgZWNobyAiJE1TR19QRlggRXJy
b3I6IC50ZXh0IG9mZnNldHMgbXVzdCBub3QgZXhjZWVkIDI1Nk0iID4mMjsgZXhpdCAxOyB9DQo+
IA0KPiArJHtPQkpDT1BZfSAtaiAudGV4dCAkMSAtTyBiaW5hcnkgJFRFWFRfQklODQo+ICsNCj4g
IyBpbnN0cnVjdGlvbjogICAgaGV4OiAgICAgICAgICAgb2N0Og0KPiAjIGVuZGJyNjQgICAgICAg
ICBmMyAwZiAxZSBmYSAgICAzNjMgMDE3IDAzNiAzNzINCj4gIyBlbmRicjMyICAgICAgICAgZjMg
MGYgMWUgZmIgICAgMzYzIDAxNyAwMzYgMzczDQo+IEBAIC0xMTYsOCArMTE3LDggQEAgZmkgfCAk
QVdLIC1GJzonICd7cHJpbnRmICIlcyUwN3hcbiIsICInJHZtYV9oaSciLCBpbnQoJyQoKDB4JHZt
YV9sbykpJykgKyAkMX0nID4NCj4gd2FpdA0KPiANCj4gIyBTYW5pdHkgY2hlY2sgJFZBTElEIGFu
ZCAkQUxMLCBpbiBjYXNlIHRoZSBzdHJpbmcgcGFyc2luZyBiaXRyb3RzDQo+IC12YWxfc3o9JChz
dGF0IC1jICclcycgJFZBTElEKQ0KPiAtYWxsX3N6PSQoc3RhdCAtYyAnJXMnICRBTEwpDQo+ICt2
YWxfc3o9JCh3YyAtbCA8ICRWQUxJRCkNCj4gK2FsbF9zej0kKHdjIC1sIDwgJEFMTCkNCj4gWyAi
JHZhbF9zeiIgLWVxIDAgXSAgICAgICAgICYmIHsgZWNobyAiJE1TR19QRlggRXJyb3I6IEVtcHR5
IHZhbGlkLWFkZHJzIiA+JjI7IGV4aXQgMTsgfQ0KPiBbICIkYWxsX3N6IiAtZXEgMCBdICAgICAg
ICAgJiYgeyBlY2hvICIkTVNHX1BGWCBFcnJvcjogRW1wdHkgYWxsLWFkZHJzIiA+JjI7IGV4aXQg
MTsgfQ0KPiBbICIkYWxsX3N6IiAtbHQgIiR2YWxfc3oiIF0gJiYgeyBlY2hvICIkTVNHX1BGWCBF
cnJvcjogTW9yZSB2YWxpZC1hZGRycyB0aGFuIGFsbC1hZGRycyIgPiYyOyBleGl0IDE7IH0NCj4g
LS0gDQo+IDIuNTEuMA0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:11:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:11:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227313.1533656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq87p-0003Qg-2f; Wed, 11 Feb 2026 11:11:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227313.1533656; Wed, 11 Feb 2026 11: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 1vq87o-0003QZ-WD; Wed, 11 Feb 2026 11:11:17 +0000
Received: by outflank-mailman (input) for mailman id 1227313;
 Wed, 11 Feb 2026 11:11: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vq87n-0003QT-Iw
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:11: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 6136e630-073a-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 12:11:14 +0100 (CET)
Received: from AM8P251CA0027.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:21b::32)
 by VI0PR08MB10426.eurprd08.prod.outlook.com (2603:10a6:800:20d::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Wed, 11 Feb
 2026 11:11:11 +0000
Received: from AMS1EPF00000047.eurprd04.prod.outlook.com
 (2603:10a6:20b:21b:cafe::28) by AM8P251CA0027.outlook.office365.com
 (2603:10a6:20b:21b::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.21 via Frontend Transport; Wed,
 11 Feb 2026 11:11:11 +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.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 11:11:10 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS8PR08MB8039.eurprd08.prod.outlook.com (2603:10a6:20b:549::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 11:10:08 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 11:10:08 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6136e630-073a-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=yQUQZxC1wIbZ3ki83efr98N7dMlRi/K45JT4Ok1hhR7LLhuP+fwIeqo1As9b+G4TC3FaNRRbJyJssToUG+GcNqf3zGrQf6MYsCI428qRXiQRuqNhvlY+JlgeWcKE7Fbr4znZioeg2JIr8IJ1eaOucW/a/PkQiBtV7pKOZSujIrGx2GtxmgoTL8sRUQvpCYPm8E2BhQjGGoqFY+N5AYWFoUO5TktGJkppiK+NMTaHVmOeede6Vf853FjI1cwvAdzueMzw99WXZiam+sfgVL7W2wEKeRggqNdRAM1ogT7WpI5bQ/BpjIcJGDlxaBYuXsGRSuPNxJZF6XwElqNlzlyE+g==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mqrd7dHyMuoz1ErKCQtcjAj5O9dkGWF9TMNVvZy/hvM=;
 b=MJeT4STwKQ3sloMT3I2nI1d2asdAjiAi32gd+7MoZvLFvGhSECY60fvwHVDs/a9YTS1tOX6G6IZSgMh+7ct3e6LXdtiDfFDuW2vbKm7MBsRw44iwlwLHAqX5Eyxg6fanDP2zcDExCMvn34+nNGBJAFAO5NKAyLKMzTqIkWO3ps5sEAfJOM9++OnYVyyepeqbibVidbeR8vSgZ50IxhCeUxPNs6bbY1oWnalFiDhh4t8TuHkW2r05gwBGDYOSO4ZBmPJE9go1lznH2U+q/s1UQiM5JVAk+UkkjS7I67862CodnEePdF0AJ8XDIpWp5UzqR0OA/TM/609ik5mo9HbR/Q==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mqrd7dHyMuoz1ErKCQtcjAj5O9dkGWF9TMNVvZy/hvM=;
 b=U96mCDh4Yfk8hK0oAbSoqZlDrb2/adbxXM9leWWU9QJ/DECQNMNsqedT2b5ew/lKYSAlD07nYWGvEwIGCVTkHG9JVJgYLw3Y9TKbqcTSnm77bON/PZDS8JxqKpJES9wCeeVHjKFWjefmhuNN1Z2jYe59ZcLBWbZ1DKr/NllX4wk=
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=M6nQwDGPgZJMNi3qBlEFRYCk9HHGUxVtyZQp7CcoICKDN9jWvBoLRKszGtA90ol9z5wqoQ0GxelQXLb9hFCl6z1uxlqVRZsP0xP6IDrFNeTjvuSGSGeo/yc9lTug2+YEMRee0iXDb7QOdtYlfoGOV3xXSeGnB11FoWICaovLrGVj2wftCKPuIN6OTy9zkhXxVa/0F5s/Qd3eNx5WxVSNC+faxRIdRwlkgfpp/wOSSElOzlFQNwbjGg/V+G2tgA3RxW56BtM6qBZO3QTPERzoB2ID2yHM7sQTCYyebYoJBvqnAay2fsKbcR6vUGPlJWLw63rRaZ0BggjdEB2aMX/xOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mqrd7dHyMuoz1ErKCQtcjAj5O9dkGWF9TMNVvZy/hvM=;
 b=IpvbUU+/L9iE4WPW4jqL5Q9n0Cma6y2v7MXtUrG6pYMpqh7RK1ba+s9w+psO35tSL9C063pGBKscEI0yaodfzgXL9MQrFqlV87OYXeu5lxzWqb5P2e2q9VZlKoslnL47R4lmtI3H9NyxDOrJAVPylpbBtM21g0mozGJvLy/f4xzzTMvavwhNpp70Co3gwge0v+RHQtcFCEeTKH6RXXNRQhre+CyTBC3tGxqTaimwMA8gGUrdDJIL4bnUDXHuJJioWhobCPesffnhBuBZplk1ZeI1SGV18oK+M0+F6JWchUNbPbGEwFZWCGKke1bdXeZ1KwAev5I4W0OSMjRzVqL45w==
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=mqrd7dHyMuoz1ErKCQtcjAj5O9dkGWF9TMNVvZy/hvM=;
 b=U96mCDh4Yfk8hK0oAbSoqZlDrb2/adbxXM9leWWU9QJ/DECQNMNsqedT2b5ew/lKYSAlD07nYWGvEwIGCVTkHG9JVJgYLw3Y9TKbqcTSnm77bON/PZDS8JxqKpJES9wCeeVHjKFWjefmhuNN1Z2jYe59ZcLBWbZ1DKr/NllX4wk=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Roger Pau Monne <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>
Subject: Re: [PATCH 3/5] xen/tools: fix grep reporting 'illegal byte sequence'
 in check-endbr.sh
Thread-Topic: [PATCH 3/5] xen/tools: fix grep reporting 'illegal byte
 sequence' in check-endbr.sh
Thread-Index: AQHcm0PFx+m8d43xIkWteImzrRY3yLV9V2MA
Date: Wed, 11 Feb 2026 11:10:08 +0000
Message-ID: <AEBC81DA-15DE-471C-A8B3-FC61F60ED656@arm.com>
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-4-roger.pau@citrix.com>
In-Reply-To: <20260211104638.7938-4-roger.pau@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS8PR08MB8039:EE_|AMS1EPF00000047:EE_|VI0PR08MB10426:EE_
X-MS-Office365-Filtering-Correlation-Id: 9869fc64-6515-45d7-bbc4-08de695e4345
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?Qy9RZXo5SG90TFlDN2xDRmpzeHQ1SXlOU21OcGtOUFQrc0s3c3Q4NGF3L2Ew?=
 =?utf-8?B?S0VUTlBrRFR6S0VCb3ZodjY5ZnJKSEx2dU9zRHJqRFV0WjkyMVVrL29pM0dm?=
 =?utf-8?B?UzFHM2YvVU54enJtTkNRdnNzUHhJK3FPNThlTzBZeW5qc2RBSWNjUXRuY1JD?=
 =?utf-8?B?TCtsQkFNMUcvWUwwRXRkWlVtRGhmRVprRUJWZFBIZnFqVGNOS00vV2lkR0FZ?=
 =?utf-8?B?SzZhWFZkWCtjYlFVM1NZYWZtRjRnUDlUUHRLekllK2VqSFRKWXJQd0pHSzBZ?=
 =?utf-8?B?OGF1dGpRNS9DMDNTMzJCWVZxOVhXbUdXUE94MjM4T1I4dXA4aEdSYWtPa0hS?=
 =?utf-8?B?Qm5SZ0RhR0Nzdm9QelVjWXdFQ3hmZFRvNDdsZXp2anZCd3hvQmw1U3JqNHhI?=
 =?utf-8?B?SDJGVkUzd3RZRERuZ1MvWFhJWXY0WlZ4b3R0NFVXNU9UbFJZVENmWm1vQTlo?=
 =?utf-8?B?NjE2Sk42ZGhUclpNOUtnbHRndC9STnNCZ0xOYjZDS3JXeUNFcjZSanlDS1Y3?=
 =?utf-8?B?QzVPaVZITzFSNlhYaGkrU3h4UVRMR3hHRDhEeVZWZ1V2bzlIUTdnNUczbGtq?=
 =?utf-8?B?cGprYmRzMDBSbE1nOHVRSHNCelIxdHFmVTgyN1lKaWFoL01RV1F4VDkydEVm?=
 =?utf-8?B?WkUvazE1VVhPL212YUFwWTEyclpFdWcyQlhHTEVkcktueFhScE5ZZWk0R05M?=
 =?utf-8?B?YUtQdkV3T0VSMUJXV3RWZXRIekwwSElQWHdBTnBqa09pdEwxbncybkZTUmZR?=
 =?utf-8?B?NDlnK2dEeU5rVE94Qkd4ZXgwVlhWTGFOSEpidGJXbzBRTEUvTFRzTDMwblA5?=
 =?utf-8?B?T1FpalpXSmhJTmJ3ZUE0YzlIMTViR2xyZkMvTDBRVmttbnBCNGZyOEtyanpl?=
 =?utf-8?B?VVppTHNhNjk0N1VvbThXa1lRSUZ2TDAzVFNOTFR1Q2JablBmeUwrVFF0TWtH?=
 =?utf-8?B?cGdDd1dDeC9Ob3ViR1hBVG5XTlZxYUtwTlBwb0F4TVJiM2tRS3l5a1hzdFUx?=
 =?utf-8?B?WkdmWXRwV3ZOdVhwTW5ZVC9FbmpkQ3FuMm81VytzUXA0Szg5bXloSWdwbndh?=
 =?utf-8?B?OGtGMmdhUG12STJ3TEtObGFoNDYvdkdyR2NYTlVxK3RTMGVmQTV0bmdaVUhX?=
 =?utf-8?B?MDVLdkg0aWVKalZtSHEzNjV2K0hKdUd3ZUd0VWxiSmN2UnE0UE8yYXNtS0Vj?=
 =?utf-8?B?VTBXbG1QR20zTXNhaWlFak82b2xCbVJraXFBSmdiZFpTZFREUzQ3b0NWMnZG?=
 =?utf-8?B?NDh2Y0FFMFp4NVJac05HUWZ6YldIOVpiQjJUZUNpbTZ5dHNQMTRtWGRVTXRO?=
 =?utf-8?B?MWhCNEpLdHVlRlhHaWN3aVZQL1VsbUlPYWkvLzNmOGFheTdLSzNrbEozWFk0?=
 =?utf-8?B?QjlMaUpxc3lyMitrakpUdWY4dTZSbUF5cHd1YkpuVnBBMlF4QlpRUXJnQnVB?=
 =?utf-8?B?WThPVUIxcDQzNDBUMHZTL0U0aEc1QjZ4MFcwMnQzN3gvc1NzMCtsa0xvN2Rt?=
 =?utf-8?B?NElDTVhDbmE0eGhSWW56a3lCNUhOdHgyRmJCcVp5aEZMMVNiMWlpcEExTFk2?=
 =?utf-8?B?V1dWNm43UjI3U2NJT0IrdVJrb1l2ZkxLdkdYOU1wSmRVd1NYaTN3OXd2NFU0?=
 =?utf-8?B?UXVBQkgvTmNmWmhZVDhpanMwMVdEVDBkL1JheGltL0JzWitBUVE5OHIrVTdx?=
 =?utf-8?B?RGVDbXRwdjJiSGpka2RCSy9RK3pBcldPMU8yL2ZwS1VYWXlsdVNubW1GbHZT?=
 =?utf-8?B?YmduSG9WdzlCdmVBVHFQMmVwVlhSUTQrVmhUWlQ2WTFuUU4xYWxHaEhjaG1j?=
 =?utf-8?B?dHN2am5BVnpDWDRJR1EvV2oxNXRJZ0lHUEtqd1Z1NXBtM2s3OHdPcTEvOVlY?=
 =?utf-8?B?ZEtObDNOWEYwdjk5SjlpaWFXMSsveU16b2R5UGVNWnNYaHdzTnB1MzFSTGZR?=
 =?utf-8?B?bFFRQks3Mnc0TlIvR3ZMdlVVTVRhajdzWlI2K2ZyMnNML3ROblpnb1d1MDVO?=
 =?utf-8?B?dDROSS9NQ2lVelY0MUoxaG5taFcrT2hCZlRoY28yaE5URmJyb1huZjB2OVhY?=
 =?utf-8?B?TmNpTElST1VST1BHaEVlWVg0c1d6bytQVkR1ejNjRFFhdTdJL0JtZ3BHVE5M?=
 =?utf-8?B?bGpxYkRSN2pSVkFBbm8zZFVMbWthRkZaay9xOFJacHVlOUFlbnlxaUZpSlU1?=
 =?utf-8?Q?yD1gZKKaJYqlGcvAQl0Hwmg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <230CCE929672454D8CD264D19FA94E5E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8039
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF00000047.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	cba88ff5-e675-4835-5010-08de695e1e0f
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|14060799003|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SityOXVXMkpKdkFYKzlEaHh0dElTM2thaXJkRndIODhkY1R1MnYvakdRNmJq?=
 =?utf-8?B?cGFFeiswVFNUQjNnREY0MjFIZ25qdUloNzFSVVRNR2xvS2gzaDFhTEl5Ymox?=
 =?utf-8?B?bDd5dUE2UmJqbUZYdUYxREsva1IyeUo0QTNYelAzcTBRUHEzQldHU2k4elE2?=
 =?utf-8?B?RVVJZGFlbkxxbHluaVlhakVMc0NyZnByM1BEWElMYm1IVlp1aGoxckNJWktF?=
 =?utf-8?B?Q3BkMmptMDJVNmx3ZkNOU2YvTU1QZFJSdkZlSXF1Q2U1WmJOSEZjMWJwWDNv?=
 =?utf-8?B?ejJUam4raVFTZ2dKcFZGTWttSnZBcHdBOGc2OFdGREh1L3NaMmx3bWFMa0E5?=
 =?utf-8?B?MUpqOFN3aDBLdEFoOTFnOFNOaGVSampNdWJCUmxvcnVocmZock0yUXpaYk90?=
 =?utf-8?B?c2JRYkNXN2VXWGpPSmk2ZXNnSHlZVnd3MFlrV0tiRUZzazJTd0pLek83U1Bt?=
 =?utf-8?B?QnBVMFlVZGZja0J3c1pTYmd0Q2VTQlNpcHBwSDJ3ZmtYR3lRaDdIWGJyeCtp?=
 =?utf-8?B?dWRLRk44YlIyanZuTmRNMHp2OGhMSFF1MWIwd0V6ajVjRWcvMEJ1NG1PWkxG?=
 =?utf-8?B?dnJ1VkhsUGdJSnViRW9Gd2tseFQ5NWNXZElBNmJ0aGw0aGgray9URDVMcFFC?=
 =?utf-8?B?S3N2cDk0dW55c0R2ZzdxazUvTGwrczlkcDdlNVppZ1QvRHdKY0FiYklxN2NY?=
 =?utf-8?B?MFAwYlhBa2dLQjBXNUk5RktYZTZUQk0zQ2V3dkFGOGR4RDVTYkg4V0hlblps?=
 =?utf-8?B?WDBhM3BPdU5QLzZRMm5iSHRSbHZyMGg4L0dxUm85TnJQRFcwRFZ2RlBGNTFQ?=
 =?utf-8?B?U0pvYXhyd1JPWHZMYjhVVGpmZHp4SVRSN203RjVGbUpaOGc1anZqbmFCc1Mr?=
 =?utf-8?B?aXdMNDN4Y0NTK2dBV25ZczMxRGtSR3RJNkVUNXZib1kzd05Zd2E2aVQzK201?=
 =?utf-8?B?NzFmUG1PMk1aRXRLcWJQZlMzTEpWRDRlMmVRSjYvMUZuM3lYVG9yLzc1OGww?=
 =?utf-8?B?b0NGZTZpNHMvcXI4VkxYM1R1MFBpZ1BLR2pJZXhiM3hyY3pmS1grcHl4TGxq?=
 =?utf-8?B?REVFcmFMWXVWWnN0RjcvKzRpVHJGRzZ0VVZQZk12ZFJGWjZ1emZlajBxckNt?=
 =?utf-8?B?TWludnhZM3h3TStrRG1YOUQrOHQrMkZMSVZicVdNR01YMy8xeTcwMXVEOXJF?=
 =?utf-8?B?OHEyZ2wxenYxaWFIc3JiMUxvMm1PVHN5MUovYVQyeU5VRFZWTU15cmtHQlJO?=
 =?utf-8?B?SkZXMy80dVg1WmxuQlRYNFNWeGMyNGtyb3BFeURyc0VyNS9wUGo1Nm5xcXBa?=
 =?utf-8?B?NlhIeW4rR1kyNjNrSmVKOU1yVGRxU3gwOG93emdnUHFZNmhpV2RiK1lFRXJa?=
 =?utf-8?B?Skhac1FEeG5BOHhuWnFDcGxHVkxnc0d2OGNKbG1WTjNNZHNJUGdmdzB2ZEhB?=
 =?utf-8?B?OVpzK2xVb2ZLYnBORjNUMVBPd25OeDUwVGlrbzJEeEpCNGYxNHl2N0J2V3NW?=
 =?utf-8?B?YWRGOHhoTlBkMDZHaWRnSkluTDNDeWVSVlhlVWZOa29GVDN3OWNuQ2pBMVk1?=
 =?utf-8?B?Vm5uaG83YXhNSWdKNGtOellHd1VpU3BBeXBxbEo0cmFkMCtZcGpFZ2JZdFBa?=
 =?utf-8?B?SVZUMmlCODVIbmw5YmhWVy9JOWtCOGdsWUVrMWQ1M3JMK2lFSldrSVFCZVBt?=
 =?utf-8?B?c3VRcTRURGtXZEh1Ky9rV3FjTnplL2pteTY2UjBwc3kzaC9icjFDc0p3dGkx?=
 =?utf-8?B?cFVrbm9ROVN0SDFUaFVxdkhHNm1NZEkrZEFOK1R2bEFBdlBKL2FjNitRQkJH?=
 =?utf-8?B?emJkNTBJQnJ6Qy85UE1FRU5sSVRJTThzZ1lCdHpydW1rWlVEMlh1OThRVzVG?=
 =?utf-8?B?MUplSElCZEFJeUt3M0NCdFFIOUV6VTlZT1UyMjJmVDZtMlBIYlZIR3I5d1p6?=
 =?utf-8?B?MS9aQ2JXNExSaTVrcnNwL25IOS8xUHgvNkc1dGNBcVQxOHVFOHFUdVJQUnVO?=
 =?utf-8?B?bVIrOUE4SVJqWVUxZVVtTDc3dFhmMzNUazBhbjB5Wm9vZnhXYkZHcHlQakJy?=
 =?utf-8?B?UlE0R1N2RWtYZ0FDS05KZzN0a3MvT3FKb1NrVWdPVnBST1N0ajdiTjJQQXJw?=
 =?utf-8?B?cnFQL1FQT3NiamlFcVd5YURnN2lDSmZIV2dXTTQ4ZFJIM3R0Q0xXZmFNbWhy?=
 =?utf-8?B?OWhSdjdpV20xSmpGMUVsdm8rbDIwR2Qxa2thSHhuRGF4Y2tSQktCeXVYQmNV?=
 =?utf-8?B?MklLalNFbHpwTWFZczh5dDJabDlBPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(35042699022)(14060799003)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	nBN+BUrL47a6mhxkqHlxfxo7m8CIhv0V9SykN18CgOlbPweP2nOG9nA6gOcnuBehXrBeSC1FglXw4KK5gSoHvhtwpKM2S5pMEJNM0LDX6xSNosckEv6TUa7QmcWxdc0tQm6cpdjxOYZgNZex1fhl59MJyso59IKulNIpMpdR4WGQG50weiKVvaNY2D7XsTg3mQFOOO3E7ke3GmeThh4KcKvZNHaVIfZ3wzDwpfLCMx9EtKrFK2dC/n489tzVJ17AECSsYD5bDQDaqqAiwU2TgKxna4DeRKR22zkJheQ3yMfc9OM/+18y4gTbJUzA3gmetsQrmaPP8WErTNwuN9S4ukUrA4+AKQUeEV5GQZg5dXxM8YW44HJOSsIZlPPXi+vwLnxFnOp22Vzwyfqt1hMXaCNNW3o5MEOjVVB8OhRcIdMw1YHtcQPRcrm2O4DCA/wm
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 11:11:10.8870
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9869fc64-6515-45d7-bbc4-08de695e4345
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: VI0PR08MB10426

SGkgUm9nZXIsDQoNCj4gT24gMTEgRmViIDIwMjYsIGF0IDExOjQ2LCBSb2dlciBQYXUgTW9ubmUg
PHJvZ2VyLnBhdUBjaXRyaXguY29tPiB3cm90ZToNCj4gDQo+IE9uIG1hY09TIHRoZSBkZWZhdWx0
IGVuY29kaW5nIGlzIFVURi04LiAgVGhlIGJpbmFyeSBlbmNvZGluZyB1c2VkIGJ5IHRoZQ0KPiBn
cmVwIG1hdGNoaW5nIHBhdHRlcm4gaXMgbm90IHZhbGlkIHdoZW4gcHJvY2Vzc2VkIGFzIFVURi04
LiAgU3dpdGNoIHRoZQ0KPiBsb2NhbCB0byBDIGp1c3QgZm9yIHRoZSBncmVwIGludm9jYXRpb24g
dG8gdXNlIHRoZSBiaW5hcnkgbWF0Y2ggcGF0dGVybg0KPiBjb3JyZWN0bHkuDQo+IA0KPiBTdWdn
ZXN0ZWQtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4g
U2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+DQoN
CldvcmtzIGFuZCBtYWtlcyBzZW5zZS4NCg0KUmV2aWV3ZWQtYnk6IEJlcnRyYW5kIE1hcnF1aXMg
PGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IC0tLQ0K
PiB4ZW4vdG9vbHMvY2hlY2stZW5kYnIuc2ggfCA1ICsrKy0tDQo+IDEgZmlsZSBjaGFuZ2VkLCAz
IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL3Rv
b2xzL2NoZWNrLWVuZGJyLnNoIGIveGVuL3Rvb2xzL2NoZWNrLWVuZGJyLnNoDQo+IGluZGV4IDM4
M2Q3ZTcxMGE1My4uMGJlOTk4NmRkMzU2IDEwMDc1NQ0KPiAtLS0gYS94ZW4vdG9vbHMvY2hlY2st
ZW5kYnIuc2gNCj4gKysrIGIveGVuL3Rvb2xzL2NoZWNrLWVuZGJyLnNoDQo+IEBAIC0xMDksOCAr
MTA5LDkgQEAgaWYgJHBlcmxfcmUNCj4gdGhlbg0KPiAgICAgTENfQUxMPUMgZ3JlcCAtYW9iUCAn
XHhmM1x4MGZceDFlKFx4ZmF8XHhmYil8XHg2Nlx4MGZceDFmXHgwMScgJFRFWFRfQklODQo+IGVs
c2UNCj4gLSAgICBncmVwIC1hb2IgLWUgIiQocHJpbnRmICdcMzYzXDE3XDM2XDM3MicpIiAtZSAi
JChwcmludGYgJ1wzNjNcMTdcMzZcMzczJykiIFwNCj4gLSAgICAgICAgIC1lICIkKHByaW50ZiAn
XDE0NlwxN1wzN1wxJykiICRURVhUX0JJTg0KPiArICAgIExDX0FMTD1DIGdyZXAgLWFvYiAtZSAi
JChwcmludGYgJ1wzNjNcMTdcMzZcMzcyJykiIFwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
LWUgIiQocHJpbnRmICdcMzYzXDE3XDM2XDM3MycpIiBcDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgIC1lICIkKHByaW50ZiAnXDE0NlwxN1wzN1wxJykiICRURVhUX0JJTg0KPiBmaSB8ICRBV0sg
LUYnOicgJ3twcmludGYgIiVzJTA3eFxuIiwgIickdm1hX2hpJyIsIGludCgnJCgoMHgkdm1hX2xv
KSknKSArICQxfScgPiAkQUxMDQo+IA0KPiAjIFdhaXQgZm9yICRWQUxJRCB0byBiZWNvbWUgY29t
cGxldGUNCj4gLS0gDQo+IDIuNTEuMA0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:11:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:11:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227319.1533667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq888-0003pK-EZ; Wed, 11 Feb 2026 11:11:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227319.1533667; Wed, 11 Feb 2026 11: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 1vq888-0003pD-A8; Wed, 11 Feb 2026 11:11:36 +0000
Received: by outflank-mailman (input) for mailman id 1227319;
 Wed, 11 Feb 2026 11:11: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq887-0003QT-IZ
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:11:35 +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 6d07e3ba-073a-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 12:11:34 +0100 (CET)
Received: by mail-wr1-x443.google.com with SMTP id
 ffacd0b85a97d-4327790c4e9so4219352f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 03:11:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783dfda66sm4120156f8f.22.2026.02.11.03.11.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 03:11:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d07e3ba-073a-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770808294; x=1771413094; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JDeUYhlKK/F6rFrMZHE2/V3YVxGSaaVWa6qx6Nv5b0Y=;
        b=ej0ioqGfucPgItD6P0loYDl6HZdap/0v9yDncZlY5gbFHRYB+e3T4d3fJwIvhMF7xh
         BO4c0jL2gjS0nPPMAtVI+OQyr7OYfxWC1hnl7p7u0wWfe7emrw2KopsbHJgSmkOkG/hI
         l8KgXxazo/joA3dEMkNW1SofGhysHyEhsQYMa2e6lOv2ZgYjkY1GJCP3WFQcgY2cWmJL
         CibGyxX4Li0E6OvtdSP5Xjn1EycK+//l0zXbMvcXfXTL6uc1VKBVLlxNB/MFy4ffb7/h
         jC6ggTRpinc1qezBbae5A88Hx4Bdt8Li4t9vXSDspjWMibLWdqfSoFsSP/YHEj5VsqAG
         Dd8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770808294; x=1771413094;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JDeUYhlKK/F6rFrMZHE2/V3YVxGSaaVWa6qx6Nv5b0Y=;
        b=eRynRWKL25bR+QsNj8dyfEEo+mNcWcyeL451AL06DItEZFIHTtTduvmgGSf9+aSg93
         BFGRjjg/0+jsKm53T+sADYWbZ3Uc9dAjJYhH4ID7XRHjLvlLJ6GmGT48Tw1l8TOptxHf
         JXvQ+CpVlqUMwImkmfl2H6nvsP2wkJLoQccLWLj3JmRRwRZhXynImYvioiGBzlp75ggE
         3xwGh3+GjAjaN/HTb14AYmK8337wCAzoQCe2+gk7dVlGfZE4C5/0c/NcY00KscQfsGgx
         u7ZuQdZ14whEOWZEtKKVUWbLcIsxRDkAg7lUGjyTJY+IyX0rWR/BdJlEeaXun5sc1lMe
         UfcQ==
X-Forwarded-Encrypted: i=1; AJvYcCXsZm1i7SmFqeZbasZZxZNxWR4DMct1Sijf7s/kvhZOcIUF3FtDnlvAO9SvxsJnqMHrrR8W3iRnWkw=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzy7e78fwlcDYdSXShLt9ZA2gmd769L555RE92kza5sJqviuV6D
	vT4YwjUqXgbmFBQbVYbois2i+WYTUK+aJEjdvod7tn77XV5eBj6iiosV1vNuA/SEvz0NOTT/m96
	NuHHVaA==
X-Gm-Gg: AZuq6aJm6QY56KfI4hl2XhslzJXwfV/6qggg9rivPSNTFt+AFxy0pT/7zqPMBszAx8I
	jQfUfAvzyLEPzcbNdonmrDB/05x+UJ05bmJvOYi6cZMq94aE6Rk6yRAx2Lx+TkTFy39EcIae/ju
	HdUGBP05jSyd8Py4A/XXnWkUBGCVCq0no+hZefeJCw3yfWuuxE5mRh0qXbpgeu+kxt/QAK9ey0w
	YfgS8/KXF2aTmjPDAJsa1QCN4q7Dh1yvBiVigMimabxdR52daol+C26YMvmaeUAxRI/Jr799/FN
	INDknZkZZmRc7NFO4dblLAtrHOrozEzhuxLYnOTGuc8tHXGd1lc7vJYGlpA5pqtVuELwMGPqM6Y
	0va5mnUKKgE9oFGfNq3ui46n9gyaucnjhDFkRgO/VWzSM4GEWIa/3572UqMiWLwJThC8onqsXWA
	WM+RjpmaHT/RqewN6BXgp0StS+GgiPM+egwplQuAXRJVdhAMDUEBnhIJPaoOOdKg1GX2LO1pBz6
	I1uXle054A+n6c=
X-Received: by 2002:a05:6000:2510:b0:437:6bcd:77f6 with SMTP id ffacd0b85a97d-4378455d709mr2587900f8f.26.1770808293932;
        Wed, 11 Feb 2026 03:11:33 -0800 (PST)
Message-ID: <124efc9a-b4f2-451f-8354-29ee78ac5bd5@suse.com>
Date: Wed, 11 Feb 2026 12:11:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] xen/x86: always consider '/' as a division in
 assembly
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: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-2-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260211104638.7938-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.02.2026 11:46, Roger Pau Monne wrote:
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -413,6 +413,13 @@ ifneq ($(CONFIG_CC_IS_CLANG),y)
>  CFLAGS += -Wa,--strip-local-absolute
>  endif
>  
> +ifeq ($(CONFIG_X86),y)
> +# The GNU assembler will interpret '/' as a comment start marker instead of a
> +# divide for some ELF targets.  Pass --divide when when available to signal '/'
> +# is always used as an operator in assembly.
> +$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--divide)
> +endif

As said before, I don't think this should be put here. Not even with the
new ifeq(,) around it. It should go in x86/arch.mk, or a reason should be
given why it can't.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:23:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:23:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227337.1533676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq8J8-0005wE-BZ; Wed, 11 Feb 2026 11:22:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227337.1533676; Wed, 11 Feb 2026 11: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 1vq8J8-0005w7-8k; Wed, 11 Feb 2026 11:22:58 +0000
Received: by outflank-mailman (input) for mailman id 1227337;
 Wed, 11 Feb 2026 11: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vq8J6-0005w1-Ny
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:22:56 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02a83105-073c-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 12:22:55 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH5PR03MB7886.namprd03.prod.outlook.com (2603:10b6:610:215::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 11:22:52 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 11:22: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: 02a83105-073c-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=l+Y2Aus9DfQz3W/uzdIPfzGNQkJ/TmN0oGpDS5kqv5llyv+t029ZoedI4q6Zsy50piKFg36sa6sqTydoclni18Khx2GsY0V1D/jLpnGr/WlSZ6kEf9H5/1fm5yu5Hnh2OeY4WJhpR624QCI/3b/2jIWtB7erF/gXylF9gxTHsG2SlLcxnXkFWRu4bDT2SLJqxmJ959eWIjBA0Dthb+Bn0mNid8mduhxHO8YQdJPciZWpIihfciJVFYPn12Rl/QOFJIs+HGni8jXb8y0mNBMOR+43V95GU1Zi70zExULXyLohSZRPEwYznJekYgIxpJBGzgTdRcdUwIsMPxSmibRt+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=fQZW8Xc8JjdHLtma+EsAndH3CmHFXSp1Ru2UaiqBp0A=;
 b=TWstfIWiP7CeUBINJXq3bTyYet38uLMJuwr5eB+9MhH3e4b3cqBYRE5nMAj7O25z97KDopTM/3v4Ki7/PTO4wkaDqRlirfMrGc4isjQ7YWRKKYJe/mOJ9gLia1wCIXVm6OYsIrfbA6Esr3c+XD23mhzp959umImLQayfn6Dy0GX1+jEMqL1wP7Hn24qiskId97FklTuXkrYloeq5oznkccAiGZHlXMCGBFx4B8eNx6sCTzGR30epj5exCwDCgk5arYvV19orUxHBK44Q6hN7e9n6DwkwxNGrBdvWcoMYQ2C+zx3t3ZhrTuxehcApGh6lZX0pe0aZCJ2u5tOqNESWRA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fQZW8Xc8JjdHLtma+EsAndH3CmHFXSp1Ru2UaiqBp0A=;
 b=TW7EOAIqP6ITQVGe83hF3s5z473zkNza9aw4XnC7RRDFZNci7GFfu3+EfUo5z/d/LD/ZT2MI4U39v4vJTke1uCkQdVfqI4WzCbR14L97qJO9Gk5efAj/dUgFfOpeFmkUn39p0CAJSnokyybUM4oITj3lkDOMfbIXiQjTDehFs08=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 11 Feb 2026 12:22:49 +0100
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 1/5] xen/x86: always consider '/' as a division in
 assembly
Message-ID: <aYxmiU0ks4Lzrwgs@Mac.lan>
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-2-roger.pau@citrix.com>
 <124efc9a-b4f2-451f-8354-29ee78ac5bd5@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <124efc9a-b4f2-451f-8354-29ee78ac5bd5@suse.com>
X-ClientProxiedBy: MA2P292CA0012.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH5PR03MB7886:EE_
X-MS-Office365-Filtering-Correlation-Id: e411d73f-5505-42f0-952e-08de695fe521
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WkNhdW9NNi93eExKSG1lUFdqcUFyWjBZT3ZUS3Z4bTczYldXSEZOVU4raDdS?=
 =?utf-8?B?QjlZeE1GSnFjQk9uSnY2dkhaN0NHN0cxbFB6QTU5ZlUrdWEzTjZIQkdqZlhv?=
 =?utf-8?B?dGdOWGcwZy9BSFEzV3FHUk5FTEc0aEdUUFArODZsSXNGRytUTXdNbHVXMDNT?=
 =?utf-8?B?aCtQSmRCS0sxbGpmMEdCS3BkZGRaanNxMHI1Nm1Say9FazdGRFlnK3NwRU5y?=
 =?utf-8?B?ZjZ2Nlo4YzFEVGM4OGFwV1RUOW9MWC8yb0F2MHlML0dwSC9TY21oczhUVmxr?=
 =?utf-8?B?b2Y0YkFZSWJoclczU3VmMkpoVlE5YmQyTnRYYjQySzdNUUIxR3g1bUVGbSt6?=
 =?utf-8?B?ZGNob0plY1RDNndWUlhveDQ4TVlFVG9kc1JxcThhblR2bzJvTmhmTXZ1RjVR?=
 =?utf-8?B?cDUyS0x5OGU2MVBIVHFJUng4VnYwN3ZDZjdybm5xYUNqTWdTajQzcVphVDVC?=
 =?utf-8?B?YlFJMzlpSW4yK3RLVHMrbnZkSmJWUk00bjhuYXBtamV5aUIwWHRIQnJyeWVX?=
 =?utf-8?B?RVovZ1RIVERJdmxjdEwxaEJGT0VOR3lEd3crcVB2cXg5Q2JyTWhsT2tsQWEz?=
 =?utf-8?B?LzVaaU55NVRmWG9xRk9ZNlYxQ08vMkdnVVdCRXFqYmlQSEFFY2lxWWdka29z?=
 =?utf-8?B?V2hJUzRYWGl6RDZENncyVTZObUk1YVZlVXpmbXpBUFdWNnJwYnc0di95NTFB?=
 =?utf-8?B?c0tmNzhhOFdkOW8veWtuOGFTeVFTZEhndHZkODAwVjNWTTkvRjdMVUJMOFlo?=
 =?utf-8?B?NkMwTjBhUGI4a1h3R2dLUlduYVYxL0RIUWdMNjVUek9ETU4xRVNUcDh4VDlI?=
 =?utf-8?B?cFMvMW9rR2tndHVJY05KMThCeWN2dXRiYkcxR2xIT2JUTGtBOWJ2cDRBVlRL?=
 =?utf-8?B?M1VDNlZDRE40Tk02MDNSTlNLTUFOMGtsK09rOUdkbTcvelNGclNsQnFkV0Jp?=
 =?utf-8?B?TjhqY0RDQlh1L1ZLZlorMG52WjEyK0tRMWw5K24zQUl6TTR0bUxjKzVSNkZ5?=
 =?utf-8?B?MmdyODlha1B6ako5TDJyWUtHSGNHYnBPLzNEZjBLb3FSVFpRN2hZYSt3aHVm?=
 =?utf-8?B?VjBWbzFBdG92ZmNLaDdDM1FVZ0x4OCtjaUdGSis3YUVzeXRxckJqdVhqSloz?=
 =?utf-8?B?SkdRb29FTGt6b2FlcWo1eHVCTXI2YkpFa0NpSUozMEJQWG1PV3ZIUzdGaVFD?=
 =?utf-8?B?NlRNYmVyRGRHcEdvOWtMYkNubWlSZ1hSNlNlQit5VEFGaTFuYklPS3lHT0hT?=
 =?utf-8?B?OGYyeTk3T3dXSGcvRzdObWloaXI2UEJQZ0RPY2l4MEVrdWJrTnRVWDBmR09Y?=
 =?utf-8?B?MW9YMUpKYWNMTG9aZTI0TElNNldLUElpbWhmcUlXTmsxS0haVjJCVFUzM3VU?=
 =?utf-8?B?SWhhaWpXYjYrUUhBMmpRWHhWVGRFS2lRdUQzV2wzNGZETSttak8zZm5waUln?=
 =?utf-8?B?cW5WbEJDZGtQeVlyaU9QQXRsRyt6S091YW1BbmNHbDJGRDJOSXpYMVY4Umtw?=
 =?utf-8?B?MzR1cjJEN2NaU0NrR0xSejk1c2VYM3gwak1jYTgrOU0yV1VVN3Nma2pXMEo2?=
 =?utf-8?B?UWZaSmlMT1ByTkhCNUtTZFpQSGFsYk9SVHAyT202UHpmdDZTd2hyejhrUnc2?=
 =?utf-8?B?ZCtqMkNSYnBHZUJ6T1BGQzRNd3hzQTM5WVZsNjJIa1ZrWm1Lc0hxTUY5TERR?=
 =?utf-8?B?V0JYRHErOXBXRmllNVc5UDVYVEFCSXpYNmJjTjF5UXRudnNSZEhlekt6TzNh?=
 =?utf-8?B?a3JzblRnVkljais1cEc1RnZOb2tMRkJST3pINVo1aXRwUU1OT2Q5Y0lTb0NR?=
 =?utf-8?B?WXp5KzlXKytKT0tndU05VXc5NXlyZFgya3hxLzhEL1hKVWtxK2Q4dnUyOXFK?=
 =?utf-8?B?UUlPMjg3TnB0QjBSbTNzQVpsNVVvUTM5MkUzVWpKTExZWjlXcjFaYWpOejlE?=
 =?utf-8?B?cDcyVnhLSzRVRFd0ZnZDOGJnZ2xqYk96SEh4bG5wcTBZdDFrUHRVa1BoTlVB?=
 =?utf-8?B?WVVNME5qc3RxOEdWaU5IM2F1UXN3aDJJWTcxbkh2S2oxbVArOHBRTE5CdnJG?=
 =?utf-8?B?cVIrSEUweWF6aHZraXQrZm8zeHRPd3YrME8zZmpuRWhkd3ZTUE9sUVVWVTJI?=
 =?utf-8?Q?yBWI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bHg0VmVEV3JGTkdwc0c0bWcwTXZWYjEyVlE5RVJZNGRGUGRyT2Vybk9zbW96?=
 =?utf-8?B?YkF0V0kvUVMvcFRCcERUZDZzNmxyM1hRRFU4TGh2RTgrbHpBUWtDUDhkTjZM?=
 =?utf-8?B?Z0pXVitSV2VCVXdvWUpnQ3pkT2hGWFBNZko0WGt6bDNTaTFzRC9Lb2RDUXc3?=
 =?utf-8?B?V1A3WjZ1WlhXSE1uaFN6TWJoY0t5RWJoc3oxRUt0V3JoaVdKVWlUNHE1ZmRz?=
 =?utf-8?B?Z3hCM09yWSthRGpBTHRROXkycmRYZU5uMC8zQUl1VXhkQmM0cFozeVliTmNQ?=
 =?utf-8?B?U09LMVpQMGIzRC9JZnUzdG5ZYnBlTWtNQ0VFa3kxYUNQemg2NmdneVBEV0xa?=
 =?utf-8?B?V0c1RW5SM1FJREFRbTZ2eFJndGx2UkMvYWdOcFBRay95R3N4UTNERHZkQWdG?=
 =?utf-8?B?bmZHRjVIZVVnZW15NTNNbUlET2hqbzYwS0RGR2NaMnBsdXVsUkQwbGs3dVdY?=
 =?utf-8?B?ZTRRTXk4TDl4ZHgzYlMvQ05lbVpWVXE4ZVJPOWd2M1REVTMzV284VHg4ZVhC?=
 =?utf-8?B?Q3R3cjJtMmxCLy9oL0ppckRvUmpYTmpNdjYwckNzZmg5T0wzdzFzc0Rjdk5K?=
 =?utf-8?B?UU5RN0JHbnlIVU55RXRUWmd6RS9kbkhCR0l2RW1SR3VRL1pTOHQ4ak5YV0V2?=
 =?utf-8?B?bktRbUJ6QzBFTDdEN045RWJGU1J1eVRjNk9ERDRBRGpXblJmeXFQZkg0Q3Mx?=
 =?utf-8?B?N2xyL1R1Syt2c1BpczQxRnNtc0p0SWVmR05EV0dzZDU2SEkxMG84cG9ZSUNx?=
 =?utf-8?B?K293N3JjVU55RnFCdG15ZFcwUFUrY3NuVDBkK01PNmFlTzBWT0lwOS9QVnJ3?=
 =?utf-8?B?dEpHeWR4cXFjUnNvTGlFdkxtOVZWelU3aWpqSjZMUjlGNjJHZFVkZ1htS2Rp?=
 =?utf-8?B?WjA1eW45bW9uZGZjOTVRS3l3WUtTWHVlZWx3VlFEQ1Z2TG9HcTAyVW5jcTJX?=
 =?utf-8?B?RUJnN3R4LzBrT1RsN1FyZzZUdDNJNkZabDJ5WnZZR1EvajlVb0F3YkxTVTYx?=
 =?utf-8?B?all1K0k1RXoyY01PaHZrV2pmN0ZKSEg3YkRPWWN5YmxFL0F2eGEwTDFYeUxE?=
 =?utf-8?B?WmFkcUtCTFNPVTNzb285RFZTRTdxOXBZMlVIYnlWRmxDRkdKYW5DRXdFN3V4?=
 =?utf-8?B?dWp1N3hCV0J1SHBXR3BzTHZLMnUwUWRlUUpMT09IVXN2cUVQSmtFRitkVTdH?=
 =?utf-8?B?Y01WdGpOV00zSmhERG1NamhWLzE2VDlPSGRCMEJleWRQaG1DdGd0V2pTS1pi?=
 =?utf-8?B?eDJSNXlOUU1najNIL1I2V002aG1mb1d5ZUxhZDRJdHpYaWVoMUMrQ1JaRjgw?=
 =?utf-8?B?eTZXN2JRRXg0a0U0aVBTQlNwc20vWUpPbWxGRUp6blI2ZUkwR1BJZy9FamFB?=
 =?utf-8?B?RExhUjh0RW5rSkMzcVV5ZTA1MDREUmVmUEtYTVA0REdPVXRZRGFtaTlzOXly?=
 =?utf-8?B?UFNOZW0zSTQwZjBsaGNIeHJmQURtVWhaRU9SNnFTQWE4QVI2aUNJSmRrOFBE?=
 =?utf-8?B?Z1FYOENPang4NE9sUjJuUE5aUEhFdE9TWnVYNk0rbmpxbmxDb0U2V2N6Slg4?=
 =?utf-8?B?MHhFcmE3anlwSGhKVlZ2cW1HdFhOMEp4T3E2MTZJc2g3dFFnN25vS2VqQzg1?=
 =?utf-8?B?SHRlOS81QlNIaDVycE1seHJGWlVnYzdnVGQ1U3JGeG44YjFDWC9FbkJsSzcr?=
 =?utf-8?B?TG5uRkNqY0Z3RGtUSkZCbEhLU2o5eSsyY2Q5S3BQb0o5eEZmSVNyU2hhTkFM?=
 =?utf-8?B?anZ3SjRwdjNyV0FyNWd4VjVpSXV0cEFJRTkzTitrVFJOd1Y4eXVNcFVxT0x4?=
 =?utf-8?B?Zm1CQmhVMWJVMURvdjBaNC9ISXBvdjJ5QlNINlZmei9XU1ErNnppcDFEWnk1?=
 =?utf-8?B?dU9ZRnFtRnkrbUNuc0JROGVHcXRPL3JBNFhOU1FOWFNEZHFRb2FQVlY0VU5u?=
 =?utf-8?B?RVNaQzBKM2FMa2xSUXlQY2oreElpREdraXVHd0x0YVBDQTNmQm5rbU1DVUhN?=
 =?utf-8?B?RDRPMzhCMWRZZTMxYVc2U1N5dFkreUZIYmJmRFhWRHBMZGM1SVpudmlGOVJI?=
 =?utf-8?B?WVJnR3hJRXJnRVE2Ni9TUUxNOTJIakQrZFo2Q2lCUXNLWnE5R25nditsaXBF?=
 =?utf-8?B?TEQ3bjMrMlAwaVVyakFHWmhsbFdmMVJyYUFHMmROLzFPRUdYRGpiMTJkcTJW?=
 =?utf-8?B?N2NnZ3hValJpUjRFSENlRk9mL3cvdHg0VTVBditaMk5kNFExYzFSWm9CVFlx?=
 =?utf-8?B?Qi9CeHA0ZnJOUTltMG9zdVFSLzR3M2ljeU5ENmJOakNrV3pxckJCeXoxakFN?=
 =?utf-8?B?LzJGbU02anNQU1N1UVRFSHpyUnZWRzJvZnJQSHhkUk52ODR6dm1uUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e411d73f-5505-42f0-952e-08de695fe521
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 11:22:52.2987
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nOwijXpJCL1ali9Zkc+CQBOjxjuwf/JIm+AtVC01A1b1Q0qVLugk6l3m/vToVOWA7+EWX/HZhVtdTdplRqirbA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7886

On Wed, Feb 11, 2026 at 12:11:32PM +0100, Jan Beulich wrote:
> On 11.02.2026 11:46, Roger Pau Monne wrote:
> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -413,6 +413,13 @@ ifneq ($(CONFIG_CC_IS_CLANG),y)
> >  CFLAGS += -Wa,--strip-local-absolute
> >  endif
> >  
> > +ifeq ($(CONFIG_X86),y)
> > +# The GNU assembler will interpret '/' as a comment start marker instead of a
> > +# divide for some ELF targets.  Pass --divide when when available to signal '/'
> > +# is always used as an operator in assembly.
> > +$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--divide)
> > +endif
> 
> As said before, I don't think this should be put here. Not even with the
> new ifeq(,) around it. It should go in x86/arch.mk, or a reason should be
> given why it can't.

My bad.  I've attempted to put it there but got complains from the
build in x86/boot/.  I think that was because I had leftover stale
objects in there, and nothing do to with the patch itself.  I can
confirm it works when the chunk is placed in x86/arch.mk.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:27:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:27:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227348.1533686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq8Ne-0006aI-Tf; Wed, 11 Feb 2026 11:27:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227348.1533686; Wed, 11 Feb 2026 11:27:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq8Ne-0006aB-QP; Wed, 11 Feb 2026 11:27:38 +0000
Received: by outflank-mailman (input) for mailman id 1227348;
 Wed, 11 Feb 2026 11:27: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vq8Nc-0006Yn-VF
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:27:37 +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 a896034c-073c-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 12:27:33 +0100 (CET)
Received: from AS4P189CA0018.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5db::19)
 by PAXPR08MB7317.eurprd08.prod.outlook.com (2603:10a6:102:230::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 11:27:31 +0000
Received: from AMS1EPF0000004E.eurprd04.prod.outlook.com
 (2603:10a6:20b:5db:cafe::96) by AS4P189CA0018.outlook.office365.com
 (2603:10a6:20b:5db::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 11:27:29 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AMS1EPF0000004E.mail.protection.outlook.com (10.167.16.139) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 11:27:30 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PAWPR08MB11066.eurprd08.prod.outlook.com (2603:10a6:102:46b::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Wed, 11 Feb
 2026 11:26:21 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 11: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>
X-Inumbo-ID: a896034c-073c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=alH4Db+YCAzufoH8lPw1R4Ch5xKkX5dOFJqAq1+CPxCZqSx9FWoPanhgg+u2ZyEH9RJZ3XnwvTqU6vAsreQn0NR4UBfmA/CHTJ5j2aODJBa++JSPmb+v0L6pSiTVHqBm9rVrfdxpWoWR7jqNTFtPRy99x3Kln3IKq4Qyro/kJUG5r5TQShk81lLW0b7qz+ZmIc5vWXNkCcZEh5XtUKiE+DDRsZQwabALjASBL1ADUPo1PPR8z15mSDk+9yBXiPz1tQhGews7RP5v0CD+F97ChV9VzXi87nfOEBG0A3gBxcc2T9g2aGM2EEZUqt0uK3BS8ToB6mcET6OhHGXBeERyWg==
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=Ucqx+nI1hwRHKmub3pZYl/QRigRHgYW7VbMw4rM2yWI=;
 b=nNSSiIfmgGrZqvU5LzbgTUH5QoOH/RkyLe7WzDaPo/+gGzjjfKPGTb96DZmFaZDzuuTqHHsT/Un1tkz14o0bkHnV+1+Q6dU4t5cd8SAcX1h/ai56roRw+fvvnObW6gcwcHDi4yUcf01K36eimJEr0cwRroODAtP6q9lzAt1adwk7ULeR7m/awimnQfov4cdA78M/mufWZvhaXA2j/V+esiferpOwDrMEvQOMCLx8ov7d6P7tv49/b3AOhywnn2nhD1mLbF5usV6FUqArPXKPw0Xtbwrcv2m+cduNDqNs0O9a4hIRKhsr3d9/rxXt2ylSKQTXjMy4EXE1Y6JIZc0nbA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ucqx+nI1hwRHKmub3pZYl/QRigRHgYW7VbMw4rM2yWI=;
 b=bnLltUeR45ILcIkHLDwEItR98ZlJeNeEtw0Lyi+2/ncK+Z1XT+a6zK/+wUXueeDaDW2vNkVlIs3/9iGy9Kda1KQ4Jt1H9ndIg6eKPL3Vb8wKc3PKu2bjfTTSrkWPjdlxv+INxSnc9f3SyfUSGeqgAoDX3zaDOToKCdBcXkTOEwU=
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=uQexQ1lPwncH0FDZkjuq8ZPEzYoIzYVBhI6QhXlAVwoiT8rISUQeJkD/KTwGe3W/u1PvH9nXcADpSzCAU00RNASXIyErC1+3cX7fy5NrfmQRvUo3yZvcLODqVbqnP/G4IjDcj51nT+vtVnXuac/lOYS0lFs3vLjvjNtUIKKOcogHQ51Gu6AVzU3BxX2rEbOVyfd2FBik+dEmPtbiKmcSjF4DP6M0SfJfXNzjGdn3uPgbBR/6jXIcsCONlamL+tUBFEM1mBIrAbHeQoyzOw29y1RMhKZQej0pux/0367M0/HWCUJbBd2PX2LC/2kG+0prcH4A7gTnGMIW1/Xlj68UEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ucqx+nI1hwRHKmub3pZYl/QRigRHgYW7VbMw4rM2yWI=;
 b=kCNqYek3M3y1e6kzVbueeD5XesK6tE3jm8ebP/+3IgJfXoO4BK3PqZFj8r21V4cn8a9k5OSypxObDxNsHnv+EBVoAQX5gJPAGObDLTfAyqrferwCjvAhrNBOShqA23mHlxnXKrrl3PtZamK4KWJERTx8ncjJDsg3P4JY+Xy14x05M7UV/RF7V5eVo2Fzt6t/748BIG2cOwwr7NK6NxegewImmjrpylJQqoPIehKubPi/V2e3dS9VcBCxAS/bo49N6JIBn0ScuQdfL+RHOdOJgg24z26tVoyfKGpi3BoYelseUE62NlZog1IpZmPQUhAOSnjm0d7HDCTcQAA4M3I2lQ==
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=Ucqx+nI1hwRHKmub3pZYl/QRigRHgYW7VbMw4rM2yWI=;
 b=bnLltUeR45ILcIkHLDwEItR98ZlJeNeEtw0Lyi+2/ncK+Z1XT+a6zK/+wUXueeDaDW2vNkVlIs3/9iGy9Kda1KQ4Jt1H9ndIg6eKPL3Vb8wKc3PKu2bjfTTSrkWPjdlxv+INxSnc9f3SyfUSGeqgAoDX3zaDOToKCdBcXkTOEwU=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
Thread-Topic: [PATCH 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
Thread-Index: AQHclTQCVYzQoM1PdEyfckgwmOVEyLV9M2UAgAA0pYA=
Date: Wed, 11 Feb 2026 11:26:21 +0000
Message-ID: <26A3747F-0313-437F-B461-F5C70CE1A4F1@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <5331b33343441028d10c290b21b82acce295fff0.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44FWRepyAakwXLjObbA=8O_LMBR5jk0-WEAXZdgsQCsHOw@mail.gmail.com>
In-Reply-To:
 <CAHUa44FWRepyAakwXLjObbA=8O_LMBR5jk0-WEAXZdgsQCsHOw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PAWPR08MB11066:EE_|AMS1EPF0000004E:EE_|PAXPR08MB7317:EE_
X-MS-Office365-Filtering-Correlation-Id: 8fa1ade6-6306-4f8b-94c2-08de69608b5b
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?YzFUbzY3bHlTNXU2eVVZd0p3SmNhTm1IVm8rVXBHUURKSHd4UDJHanlCT3Zp?=
 =?utf-8?B?UlJUY091Tkt2SmNFdkZhQmdWeTB2WGVoK0lsN2pFanNuUkMwZkhKalpjSWZJ?=
 =?utf-8?B?TGZpSEFpM0czQkVIQitkbDZoYWN5NSs2aFh0TTQ3LzBWVFpIdGg2eE1RY3Vq?=
 =?utf-8?B?dTRHK1JEQWp5VzU1MDZxVlV0S3owUFlRWW0yRTN3RWJzQ3g1ZEROajZnOHNG?=
 =?utf-8?B?ajBMR1VxRWp5bFhRaVFTbVI3WVF3aDg3MGZLNFdFM1psNHRwbFN1OTZOUmd3?=
 =?utf-8?B?dE13a2tpMFgxcW1HUXdjcHN1cmlWZDlCck51cUxJUGszcGFMUWIzcE5xaWZs?=
 =?utf-8?B?SUp4YkowbXZmVloxM1FMT2h1OGpMUEg0dHh5TzRYQXZyY3Jna2dnWVRUM1Fx?=
 =?utf-8?B?U1kyZ1ZkSWpENTNscmJBZGZUWkExcTVNY0NWOFQ5andqMEdoY0VHKy9sUHFT?=
 =?utf-8?B?K1I3ZnlaZ0xsWTMvZDkreVNaZEp1aHlIRnZuUUIwcEEyMlk3RFBGbWRhR0RR?=
 =?utf-8?B?RjJCdzNoZXlvTnpiV0xHQkQzSUtRRGhVakhlbndyWUtwTHg4YWpxK3hPOXFK?=
 =?utf-8?B?U0dSczJRRkg4RGJGYWhETkoybTR0aDRET2orNE1paTJ5WmU2eDBwOVhHdFBP?=
 =?utf-8?B?c0dTV01kOU9GK2lUOEs5VlBlOE15NWJ6UU1QNHV5N2ZFNzhLa0h3SDZ0eTJB?=
 =?utf-8?B?ejhqdWp1SHc1N2VMbVlUazY2enc1NC80UFNzd1NCSWo5S3Z2b0ZmLytUc2t5?=
 =?utf-8?B?ZmhkQmUvMlc3REN5N21mQ0dETXhQTzhKUTlLRDc5VkNYeE9KU0k1YWJJRU9I?=
 =?utf-8?B?OWZKc25UT1BjcW9hLzR3RllNcVFlaDFLVW9CbXdvSy9VaUN1L3A0Wk5TUnQ3?=
 =?utf-8?B?cjJwUThvNGRNRWtRemxteFNlNjhBWVMwQkhFdU41cVlTYzY0NWlseWhPa1Ns?=
 =?utf-8?B?OUtjWThQaTVIaERTUk1WY0RrVlVsYWpwTWRnNVRCUVBTVDRDcXY3OG9RR1Vh?=
 =?utf-8?B?N1E0VnZWRXBCYUxka1pzMDRocXhqQkMwR3hDcXF0djc1ZWEzTkRSWHpvOFN0?=
 =?utf-8?B?QXdqay9tOUhmV1UrUDhwRWl1dXFBTHd3aFUxeFFTNG1JZ2N4UkhoSkR3YTF1?=
 =?utf-8?B?b1dmeEhEMWtkVjVZbXdRbWNBWXcwWFpXME5iMmlHVE1DN2phNTNDZEZhSllk?=
 =?utf-8?B?NGIrdXBoU2NaYnBKcjhSZWFmZUdlREFidG0wUm1sN2J5UGNMbEpKSzRidUNK?=
 =?utf-8?B?ZytvSVBKZi9ManY5NkQ1eDBUNTRSVlgvSzNjTzh4aWpPVW9mV2UwVmdTcUFE?=
 =?utf-8?B?RDFvditldUwrNi9hczQ2M0NmNVhEaUJJcWJNTHNJdWczZFFUOUZ0RFdlc0M4?=
 =?utf-8?B?Y29Oc08zdDBuN0VHU2FJemRETno5OEdQYkVtc1JndXBqVnExUWFFMENmd2xx?=
 =?utf-8?B?Vy82aXdPSWx3TkZyU085eHR3VndIYTJROEZFVEU2NGZsTU9sR2lYSjhaNmVI?=
 =?utf-8?B?UUxXcHdyeUpybEJPM2wyVXRENmdWZThHSkJmOHJNUUdKN3pSTzdrNWpQdEZB?=
 =?utf-8?B?aXlOU3JwMDJNQjYxZk9WeE0vOVFrN3Y3VlpudSt0cWkyc05Cc1NHUXB2TzR0?=
 =?utf-8?B?eS91YUVNTFR6aTM2STMrNEJ2dE4wdXhGN0trTi9VYUprejk0a3IzM0hoVXkz?=
 =?utf-8?B?WU83QUY5cXZrZWxQWjFYUlhvTE9KK2xiYnpaQVdTamJoVmJjM0NFMmJTaVo0?=
 =?utf-8?B?ZkVENnowR1N1VCthS2trV1JFcGJRYUZOSlpYTHVGRGpVZVdhUmhmL1BheG5Q?=
 =?utf-8?B?Z0Fkb3ZTeVJHZ3RrTno4MFl6VHg3Ty92RkRUaWdVR3JtSmU3bzA2K0NyUnVX?=
 =?utf-8?B?ZHNwU01lbUJxWldMSVdVYmZYY2Z0UEczKzRsb0FJUlgvUVYzckJ0VWMrY3Vj?=
 =?utf-8?B?OUwxZ3NBVTl2SHJPLzJ3NjdQam12ay8wMi9aZ2ZPaXBTNnpWa0hnNjVuZk9H?=
 =?utf-8?B?VndiLzZtcFp4cm81VUZSVWtsRTV2a0NNRXVFc3p3SDJRamp0aXNrL2ZCY0VF?=
 =?utf-8?B?TXl4ZkIzMzZGVmZ1bDU4aVRRMzg0TWNON0NqZHdSTStyNU9HNWVQbU1rV2o2?=
 =?utf-8?B?TEdiNkM3SjBDZ3lKN2xVYlZvYVVqdFJlcDFjeHZXNkJGaEZocm04dU1aOFRk?=
 =?utf-8?Q?yPVBJgVixlgz+fLhfRj+3LE=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <D7E15ED79B5ED1448CFE5133615EE36E@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB11066
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AMS1EPF0000004E.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	79fb77a3-648c-4bac-1db7-08de69606207
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|14060799003|35042699022|376014|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?M09Pd0RsNU52UlJDa2FSUkwwWDRmZGRsbWZYRW41OGZwOCtITUMvMy85RU04?=
 =?utf-8?B?TENnbCtsQ1N0WWlFUUlad3F1WHpVQ0lkZUs0WmdLaEV2czhoaTltRWNjMnhZ?=
 =?utf-8?B?VCtrckszNzBCVjJuR0VIcGVjS0hxWkNuVlNib0NhNDdENGR1a29LZXdrNC9q?=
 =?utf-8?B?NCtkaG1WcFJZRno1THhqSUt3RTRTU0dVTEJkdjF5UkFxK054bnN3aGVNNzNu?=
 =?utf-8?B?VFdDeElRSmNCcnpXeTBERVU3NEhYY21Yd3NRWVZPWWhYcVBLcWRJWk5jY3pM?=
 =?utf-8?B?MW5CRnJlSEQrLzEvY0NEdFN6MVlMSUUyY3lRelpOc2xJcW82SWwzK0pyMTFR?=
 =?utf-8?B?NTBwUHlFMWk3b1JvU2dZZU5vTllCRjE2aTNicFhPNXNoVnZWTjZhMm9jY1pK?=
 =?utf-8?B?NTh4TktmQXpPYnJoQ01vVkFPOHI2R2t4dVBYZks2VGk5TytVMVZwNlQ2VFNG?=
 =?utf-8?B?UzN0eHJWdzRXSUpZQmtrbHNBSkxrbyt2U3NXeXp2SnNjcllYNWVKNS9uaDBq?=
 =?utf-8?B?TnFINmFGc3VYNDFKTWw0bHBYUUhHbVJtd2JEejlNNitKa1hWdGdsdzNsaEhL?=
 =?utf-8?B?MDVlalNOMWNwYm93LzlsVCtmNVBGVHIrcUxDRDAycGRBTWMwTTQ3TE1VSzBu?=
 =?utf-8?B?N1hLMTFnTmFCTXBMYzFUQTB2czBrcHc3bEFtSk1TdENCMXU4dzZ5VW9yUGZa?=
 =?utf-8?B?eVRWL0FIU2ZyVlhhNWgrNS9SZ1Z5cUJKMnlTekF0eWJpdytRUXM3T2czWGNP?=
 =?utf-8?B?QlhUMmN3TzRiMXhCUWFkUE8xSWpxSFdKWk1LamNWSDdoa1FIc01ENTlKSHY4?=
 =?utf-8?B?NUx1UnVSbXVNa2RXYXU4VC92UWkxb1U3enhram9Oa2VUUlozdVZoOTNrSDF6?=
 =?utf-8?B?TXBrYnpWV0xiVElKN1o2cFg0dnJ5bm94VXFXNWIxUGRkcGoyYUNReVZ0cXha?=
 =?utf-8?B?SHpEQTR0VWRCVnExbXRkcmJSbnUxbHR3SXA0bW9sd3E5eW9JVnpJWks3RXlw?=
 =?utf-8?B?d3dQMnh5STEycTlibHFQUjk1QmRZdjl4WWx3MjZvbEsyV0hnVXA0cVVzc2lG?=
 =?utf-8?B?MFd0MThEM3V0b3NpRE1Qd3RNbDFKOWFCNnhvalVmelNDK2tWc0QwRUJLS25R?=
 =?utf-8?B?c0hhcmlSSnE3anJVeXBtOGRnaVdLWHlNS3hRbzcvVGhCdFo1NEJ3RHZzSWFv?=
 =?utf-8?B?ZkRTK0dRaFYwdW8raUVjbnBRNDh6OFpZb1REeDU0YUNXbVhwbEhQaDdGUWU2?=
 =?utf-8?B?YXA4djNGODZxL1ZFbDF0bmJYZngyVUxDcGc4NW1xRk40MmVySEhSNnUrOWVG?=
 =?utf-8?B?Y3N6eTZ0Q0pTYWxWUllkZHJBa2VzWTRTQ2FFZzI0bm9MNFZXZ096NFZ3Q0Jt?=
 =?utf-8?B?WHBJVUN4cjI4anVmcmJudDlIZTNNa1MwSWVyNGJlVG9MZjBvSkx5anFMcG1N?=
 =?utf-8?B?V25jYVRPbkVFVXpsZ2p6b3FtUmZJdkVvMDBHTUR3c21zTU5qSThUcnpNUnJK?=
 =?utf-8?B?b0hTbFhhS0c2L0NuR3R0eDYwWk5PaGVGVGd3YitYblVwNXV5YXZya2lzdUFQ?=
 =?utf-8?B?NkdBTUJlTGYxOFI5bGZXeWhoZTlpYUtWVUM4ZkhnSzgxUm94OUl3K1YrZXlL?=
 =?utf-8?B?MGlYUnNxNnNwWmtvNENIN2FTUHY3clliVkQrd04zblFqaHdNT0FhZGJuSjd0?=
 =?utf-8?B?N01Cbmk5d2VDQ2VBZmhyS0p5QVRPYWFjRVEzbTQ5MzZPMWJ0WDJoWFNwenM5?=
 =?utf-8?B?bHQ0QlBFM3JMZDBwdnFOZGI0QkNqVkNzRFBxaUptSTVXR1lyNUhWeCs1SnpC?=
 =?utf-8?B?eGJRRkhKTTY2WVM1Qk5URENmbnpWc2FFMmRtMWZUNzI2d3VJbFNRb1Zta0s3?=
 =?utf-8?B?b2NpWGRMRDRxbmRYZ0tQcEs1RkxwZDQ5dFR4UGtRWFF0N0JzVDdPN1dOUHRW?=
 =?utf-8?B?UkR5UFZjbEdwZ1R4U0FlVXVzRkhnazhNVm9ESndHUGtIeWVxQ003SkVobzFU?=
 =?utf-8?B?d2h5enhXUTljSWdrVlhZVDIxK0RkanVhcFRsRUlIeU1jQmtEaE9rQzRqYVZw?=
 =?utf-8?B?aGZsWlk5SkpSSmVLT2UrR3hBQ1J6bGU0N1RUM1NJdENRQzdYMnVrUDE4cVUr?=
 =?utf-8?B?Rkp2T2ZiWGlFVjVjcDBpbCt2bFJtUkJYeTVHVEFQNy9WeWVPcDg4L3NnVG8z?=
 =?utf-8?B?MzJ0UzI5OWZ6Smh2d1FOamdmV2FEUEZRc25zeFRzTlZVNk5KcGhuUlF1bmR1?=
 =?utf-8?B?SEpOMS9kLzhKQXFBdDNrV1VuWUJnPT0=?=
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)(1800799024)(14060799003)(35042699022)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	b+VIOIWB13LksUmMM0esQnyBh2kP+TWQrFoSFgYdJsJA0K8FS/p8ijZC6QIZfBKRCO0L+Yey7inn+jXE61ehfl28akMSdSeH2Msn2nmUn0muLnr6eVsyhJdgmFekRs/BYCoA/Z/ShOW3xK4emnGO3/O05sJMZmHWwOvJKc7Tx8Zt35asKofB+RXuSkQnf1oNUkHS9flhMs2TQfQ+G0BI46HvRYLHpjC8n0rPujmiBv5tX0fzj8MB7lSIHECuzRgEik7XUOQR3+ODkg7SOmLXsscZE24upSWQbKC/CSXwC9wpy0OUCZo/+s/23Y/TtVS/0AxBrgQsWcmcSTwtkh+2x3f08maX60CU1LTLxKrpmmlPlKApY0fLo0xnO5jX09JIGSYJbUBKLil5OGRaLi+SBKH+hYxLuNqQJzXupsMOqY+JNSkFiBB84K2zQV28/7Ew
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 11:27:30.8070
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8fa1ade6-6306-4f8b-94c2-08de69608b5b
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AMS1EPF0000004E.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7317

SGkgSmVucywNCg0KPiBPbiAxMSBGZWIgMjAyNiwgYXQgMDk6MTcsIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gVHVlLCBGZWIgMywgMjAyNiBhdCA2OjM44oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gRkZBX0ZFQVRVUkVTIGN1
cnJlbnRseSBhY2NlcHRzIG5vbi16ZXJvIGlucHV0IHByb3BlcnRpZXMgKHcyLXc3KSBmcm9tDQo+
PiBndWVzdHMgYW5kIGFkdmVydGlzZXMgc2V2ZXJhbCBBQklzIHVuY29uZGl0aW9uYWxseSwgZXZl
biB3aGVuIGZpcm13YXJlDQo+PiBzdXBwb3J0IGlzIG1pc3Npbmcgb3Igd2hlbiB0aGUgQUJJIGlz
IHBoeXNpY2FsLWluc3RhbmNlLW9ubHkuIFRoaXMgY2FuDQo+PiBtaXNsZWFkIGd1ZXN0cyBhYm91
dCB3aGF0IFhlbiBjYW4gYWN0dWFsbHkgcHJvdmlkZSBhbmQgdmlvbGF0ZXMgRkYtQQ0KPj4gY2Fs
bGluZyBjb252ZW50aW9ucy4gU29tZSBTUE1DcyAoSGFmbml1bSB2Mi4xNCBvciBlYXJsaWVyKSBh
bHNvIGZhaWwgdG8NCj4+IHJlcG9ydCBGRkFfUlhfQUNRVUlSRSBkZXNwaXRlIHN1cHBvcnRpbmcg
aXQuDQo+PiANCj4+IFVwZGF0ZSBGRkFfRkVBVFVSRVMgdmFsaWRhdGlvbiB0byBtYXRjaCBzcGVj
IGFuZCBmaXJtd2FyZSBzdXBwb3J0Og0KPj4gLSByZWplY3Qgbm9uLXplcm8gdzItdzcgaW5wdXQg
cHJvcGVydGllcyB3aXRoIElOVkFMSURfUEFSQU1FVEVSUw0KPj4gLSByZWplY3QgNjQtYml0IGNh
bGxpbmcgY29udmVudGlvbnMgZnJvbSAzMi1iaXQgZ3Vlc3RzIHdpdGggTk9UX1NVUFBPUlRFRA0K
Pj4gLSByZXR1cm4gTk9UX1NVUFBPUlRFRCBmb3IgcGh5c2ljYWwtaW5zdGFuY2Utb25seSBBQklz
DQo+PiAoRkZBX05PVElGSUNBVElPTl9CSVRNQVBfe0NSRUFURSxERVNUUk9ZfSwgRkZBX1JYX0FD
UVVJUkUpDQo+PiAtIGFkdmVydGlzZSBGRkFfSU5URVJSVVBUIGFzIHN1cHBvcnRlZA0KPj4gLSBn
YXRlIG1lc3NhZ2UgQUJJcyBvbiBmaXJtd2FyZSBzdXBwb3J0Og0KPj4gLSBGRkFfTVNHX1NFTkRf
RElSRUNUX1JFUV97MzIsNjR9DQo+PiAtIEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVRMiAoYWxzbyBy
ZXF1aXJlcyBGRi1BIDEuMiBuZWdvdGlhdGlvbikNCj4+IC0gRkZBX01TR19TRU5EMiAob3IgVk0t
dG8tVk0gZW5hYmxlZCkNCj4+IC0gcmVwb3J0IE1FTV9TSEFSRV97MzIsNjR9IG9ubHkgd2hlbiBG
RkFfTUVNX1NIQVJFXzY0IGlzIHN1cHBvcnRlZA0KPj4gLSBzdG9wIGFkdmVydGlzaW5nIEZGQV9N
U0dfWUlFTEQgKG5vdCBpbXBsZW1lbnRlZCkNCj4+IA0KPj4gVXBkYXRlIGZpcm13YXJlIHByb2Jp
bmc6IGRyb3AgRkZBX01FTV9TSEFSRV8zMiBjaGVja3MgKGRlcHJlY2F0ZWQpIGFuZA0KPj4gYWRk
IEZGQV9SWF9BQ1FVSVJFIHRvIHRoZSBwcm9iZWQgc2V0LiBJZiBGRkFfTVNHX1NFTkQyIGlzIHJl
cG9ydGVkIGJ1dA0KPj4gRkZBX1JYX0FDUVVJUkUgaXMgbm90LCBhc3N1bWUgUlhfQUNRVUlSRSBz
dXBwb3J0IGFuZCB3YXJuIHRvIHdvcmsNCj4+IGFyb3VuZCB0aGUgSGFmbml1bSBidWcuDQo+PiAN
Cj4+IEZ1bmN0aW9uYWwgaW1wYWN0OiBndWVzdHMgbm93IHNlZSBBQkkgc3VwcG9ydCB0aGF0IHJl
ZmxlY3RzIGZpcm13YXJlDQo+PiBjYXBhYmlsaXRpZXMgYW5kIFhlbiBpbXBsZW1lbnRhdGlvbiBz
dGF0dXMuIFdoZW4gU0VORDIgaXMgcHJlc2VudCBidXQNCj4+IFJYX0FDUVVJUkUgaXMgbm90IHJl
cG9ydGVkLCBYZW4gYXNzdW1lcyBSWF9BQ1FVSVJFIHN1cHBvcnQuDQo+PiANCj4+IFNpZ25lZC1v
ZmYtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4+IC0t
LQ0KPj4geGVuL2FyY2gvYXJtL3RlZS9mZmEuYyB8IDYyICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKystLS0tLQ0KPj4gMSBmaWxlIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyks
IDcgZGVsZXRpb25zKC0pDQo+PiANCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL2Zm
YS5jIGIveGVuL2FyY2gvYXJtL3RlZS9mZmEuYw0KPj4gaW5kZXggNmRlMmI5ZjhhYzhlLi5lOWUw
MjBiYjBjYjMgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jDQo+PiArKysg
Yi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jDQo+PiBAQCAtOTEsMTAgKzkxLDEwIEBAIHN0YXRpYyBj
b25zdCBzdHJ1Y3QgZmZhX2Z3X2FiaSBmZmFfZndfYWJpX25lZWRlZFtdID0gew0KPj4gICAgIEZX
X0FCSShGRkFfUEFSVElUSU9OX0lORk9fR0VUKSwNCj4+ICAgICBGV19BQkkoRkZBX05PVElGSUNB
VElPTl9JTkZPX0dFVF82NCksDQo+PiAgICAgRldfQUJJKEZGQV9OT1RJRklDQVRJT05fR0VUKSwN
Cj4+ICsgICAgRldfQUJJKEZGQV9SWF9BQ1FVSVJFKSwNCj4+ICAgICBGV19BQkkoRkZBX1JYX1JF
TEVBU0UpLA0KPj4gICAgIEZXX0FCSShGRkFfUlhUWF9NQVBfNjQpLA0KPj4gICAgIEZXX0FCSShG
RkFfUlhUWF9VTk1BUCksDQo+PiAtICAgIEZXX0FCSShGRkFfTUVNX1NIQVJFXzMyKSwNCj4+ICAg
ICBGV19BQkkoRkZBX01FTV9TSEFSRV82NCksDQo+PiAgICAgRldfQUJJKEZGQV9NRU1fUkVDTEFJ
TSksDQo+PiAgICAgRldfQUJJKEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVRXzMyKSwNCj4+IEBAIC0y
NDAsMTkgKzI0MCwzOSBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfZmVhdHVyZXMoc3RydWN0IGNwdV91
c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgc3RydWN0IGZmYV9jdHggKmN0eCA9IGQtPmFyY2gudGVl
Ow0KPj4gICAgIHVuc2lnbmVkIGludCBuOw0KPj4gDQo+PiArICAgIC8qDQo+PiArICAgICAqIFhl
biBkb2VzIG5vdCBhY2NlcHQgYW55IG5vbi16ZXJvIEZGQV9GRUFUVVJFUyBpbnB1dCBwcm9wZXJ0
aWVzIGZyb20NCj4+ICsgICAgICogVk1zLiBUaGUgc3BlYyBvbmx5IGRlZmluZXMgdzIgaW5wdXQg
cHJvcGVydGllcyBmb3IgRkZBX01FTV9SRVRSSUVWRV9SRVENCj4+ICsgICAgICogKE5TLWJpdCBu
ZWdvdGlhdGlvbiBmb3IgU1AvU1BNQykgYW5kIEZGQV9SWFRYX01BUCAoYnVmZmVyIHNpemUgYW5k
DQo+PiArICAgICAqIGFsaWdubWVudCksIHNvIHcyIG11c3QgYmUgTUJaIGZvciBvdXIgY2FsbGVy
cy4NCj4+ICsgICAgICovDQo+IA0KPiBUaGUgc3BlYyAodmVyc2lvbiAxLjIpIGxpc3RzIHRoZW0g
YXMgU0JaLCBleGNlcHQgZm9yIHcyLCB3aGljaCBpcyBNQlosDQo+IGZvciBGZWF0dXJlIElEcy4N
Cg0KVmVyeSB0cnVlLCB0aGlzIHNob3VsZCBvbmx5IGNoZWNrIHcyIHdoaWNoIGlzIGFueXdheSBk
ZWZpbmVkIGFzIE1CWiB3aGVuDQpub3QgdXNlZC4NCnczLXc3IHdlcmUgTUJaIGluIHByZXZpb3Vz
IHZlcnNpb25zIG9mIEZGLUEgYnV0IGFyZSBpbiBmYWN0IFNCWiBpbiAxLjIgc28NCndlIHNob3Vs
ZCBpZ25vcmUgdGhlbQ0KDQo+IEhvd2V2ZXIsIGlmIHdlJ3JlIHRvIHJldHVybiBhbiBlcnJvciwg
aW52YWxpZCBwYXJhbWV0ZXJzIGlzIGEgYmV0dGVyIGNob2ljZS4NCg0KSW4gZmFjdCB0aGUgc3Bl
YyBpcyBhY3R1YWxseSBzYXlpbmcgdGhlIGZvbGxvd2luZzoNCklmIHRoZSBGRi1BIGludGVyZmFj
ZSBvciBmZWF0dXJlIHRoYXQgd2FzIHF1ZXJpZWQgaXMgbm90IGltcGxlbWVudGVkIG9yIGludmFs
aWQsDQp0aGUgY2FsbGVlIGNvbXBsZXRlcyB0aGlzIGNhbGwgd2l0aCBhbiBpbnZvY2F0aW9uIG9m
IHRoZSBGRkFfRVJST1IgaW50ZXJmYWNlDQp3aXRoIHRoZSBOT1RfU1VQUE9SVEVEIGVycm9yIGNv
ZGUuDQoNClNvIHRoZXJlIGlzIG5vIGNhc2UgZm9yIElOVkFMSURfUEFSQU1FVEVSLg0KDQpTbyBp
biBmYWN0IGkgc2hvdWxkOg0KLSByZXR1cm4gTk9UX1NVUFBPUlRFRCBpZiB3MiBpcyBub3QgMA0K
LSBpZ25vcmUgdzMtdzcNCg0KQ2FuIHlvdSBjb25maXJtIHRoYXQgeW91IGhhdmUgdGhlIHNhbWUg
cmVhZGluZyBvZiB0aGUgc3BlYyB0aGFuIG1lID8NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:41:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:41:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227388.1533780 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq8ae-0001oe-Vs; Wed, 11 Feb 2026 11:41:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227388.1533780; Wed, 11 Feb 2026 11: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 1vq8ae-0001oX-Sg; Wed, 11 Feb 2026 11:41:04 +0000
Received: by outflank-mailman (input) for mailman id 1227388;
 Wed, 11 Feb 2026 11: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq8ad-0001oR-F3
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:41:03 +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 89cc534e-073e-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 12:41:00 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-43638a33157so1610777f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 03:41:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e544e2sm4668103f8f.32.2026.02.11.03.40.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 03:40:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 89cc534e-073e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770810060; x=1771414860; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bv+YzuMU5uYAE7PhG4mt5S3suWk8wBewRlIb9clqRUY=;
        b=WfVIR1aXbkEWarehrmM8wx+cEYc95A/15gVAqPukNb8siE9w/rzoZequMv7vX+xfin
         bPWr+2MVdglv4j1JRumbre4oVt1Pok2wRSgr26902EipHQXT2kMo/WsswvWZ3ZU5XVkh
         27vF0HGDu6OWzdBVJ2go4mkK1k6JJq6e0NIPN+mfa6h4tDqpOSV15nYLOtleWFx11rxJ
         hpUUY3BM0zA0C93vUG3VopxJU/cj1kzHqxDaWZCYaKhLn+Y3MPTUIxDdldFiKauEIgXA
         RiRyQl9sFWjc2gRKOuiIytsn7X5STJoqakoQp56qm1xbGrqvvPRQOL2TE4j5SKHD3eqa
         cEmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770810060; x=1771414860;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bv+YzuMU5uYAE7PhG4mt5S3suWk8wBewRlIb9clqRUY=;
        b=LNIlwoC1iIEh86iU1mv/mXFVVB5Me8hB22hlVh4MIj78zLhYgzvr1Gz2oJhYuE0I+b
         ev2D/tjYAT1Vn9uHiR3sX/k4OxmCeihANQbIt2gA4OjUrw5hw1rXdyXRf2SXiEEmn56C
         31cVEIrl9or7AF9axnzWipKMpIcrm9K+vAeyuaTqT+jHgqkg80LNa9CA+VHRgIDcRI/c
         q8UhwvxBi2q6PNap0YyouRuEEKsobLvX7ZY3VKVixS4fkcYSWJG3C5AQCdy3UKX61glu
         DkYWo7eNoGOHpGkWBv5PxrJRKgMbmoSFcQVnhhXgYODA9rdZmgXZMZDWwWmGGypKESAM
         B/vQ==
X-Forwarded-Encrypted: i=1; AJvYcCWSwcmo+cbSdkQf90dsl0CYEvSQ5gf00F+Dfp00geZriItGD0SMalClwMl6CDMPls+8SIKgals/4n0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YweS1NHLHOb8rj+KvA02ATzaBIP4WyUoIVck1Py94XGEcM6Otk7
	qm/FFxUJJchjWcmGN2stXz3djNN9HHbms1fH1tg6vcRp+YVAeB1ISAy74b0wncMWaA==
X-Gm-Gg: AZuq6aL8RKIphiz9PeBKy1LPDoSlZZJ5hBQ5wOeyAZ+NzQtsN/m4Zj0vH4dq30sEN/i
	KCHTE5wEvqG5rfnIj0G6znscEBO3JBQSAo7YldMuOck0PpnXhzldzeLY0OLzd+WRqA0jwov0yIu
	Tr6gOweMizk/9MF5nSM24I8VavgTzD2AAzPqi/8mQNFhHsUUH39cFRydm1eIxjhb4hgmHgIET91
	p2biL8o/6XY0YtFp9DqKuW/G62VP50itxRf3Fp4q3TlmahkZ87On3S65U7dZF3eTA2xYKc7RThg
	K8qu5u/lNJDUzPcMRdgbLNdvP/YC58EHXNmIymqCJXosdSE3dbZirl+LF+6KiQCrh/dNxYPa2RG
	VYF2MwZcppGk2cIuAbkav3bemBMpPssgnidyajcpXFfhufrevRLps0zE/mpXjsyNlS3VgFgzRLe
	dIpczvfcog/5Zb4pEga4b3iWukVtwicuK6gL4qbcjs6P74eizkScSJ0xAgjkC9RTFXjoTOQDO5+
	AH5aqZNfrq7uVE=
X-Received: by 2002:a05:6000:26cb:b0:431:3a5:d9c1 with SMTP id ffacd0b85a97d-4362934c4efmr26822090f8f.30.1770810060160;
        Wed, 11 Feb 2026 03:41:00 -0800 (PST)
Message-ID: <35bdb10b-d39d-4e67-9ed8-c0b85ca5bd54@suse.com>
Date: Wed, 11 Feb 2026 12:40:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/tools: remove usages of `stat -s` in
 check-endbr.sh
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>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-3-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260211104638.7938-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.02.2026 11:46, Roger Pau Monne wrote:
> The `-s` option to stat is not POSIX compatible, and hence prevents the
> check-endbr.sh script from running reliably.
> 
> The first instance of `stat -s` can be removed by fetching the section size
> from the output of objdump itself, which the script already parses to get
> the VMA values.

In both paragraphs, s/-s/-c/ ?

> The other two instances can be replaced by counting the lines in the
> respective files.  Those files contain list of addresses, so the size in
> bytes is not strictly needed, we can count the number of lines instead.

Hmm, indeed, just that ...

> --- a/xen/tools/check-endbr.sh
> +++ b/xen/tools/check-endbr.sh
> @@ -92,14 +92,15 @@ ${OBJDUMP} -j .text $1 -d -w | grep '	endbr64 *$' | cut -f 1 -d ':' > $VALID &
>  #    check nevertheless.
>  #
>  eval $(${OBJDUMP} -j .text $1 -h |
> -    $AWK '$2 == ".text" {printf "vma_hi=%s\nvma_lo=%s\n", substr($4, 1, 9), substr($4, 10, 16)}')
> +    $AWK '$2 == ".text" {printf "bin_sz=%s\nvma_hi=%s\nvma_lo=%s\n", "0x" $3, substr($4, 1, 9), substr($4, 10, 16)}')
>  
> -${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
> -
> -bin_sz=$(stat -c '%s' $TEXT_BIN)
> +# Convert objdump hex reported .text size to decimal
> +bin_sz=$(printf %u $bin_sz)

(Alternatively without this line, but ...

>  [ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&

[ "$(($bin_sz))" -ge $(((1 << 28) - $vma_lo)) ] &&

?)

>      { echo "$MSG_PFX Error: .text offsets must not exceed 256M" >&2; exit 1; }
>  
> +${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
> +
>  # instruction:    hex:           oct:
>  # endbr64         f3 0f 1e fa    363 017 036 372
>  # endbr32         f3 0f 1e fb    363 017 036 373
> @@ -116,8 +117,8 @@ fi | $AWK -F':' '{printf "%s%07x\n", "'$vma_hi'", int('$((0x$vma_lo))') + $1}' >
>  wait
>  
>  # Sanity check $VALID and $ALL, in case the string parsing bitrots
> -val_sz=$(stat -c '%s' $VALID)
> -all_sz=$(stat -c '%s' $ALL)
> +val_sz=$(wc -l < $VALID)
> +all_sz=$(wc -l < $ALL)
>  [ "$val_sz" -eq 0 ]         && { echo "$MSG_PFX Error: Empty valid-addrs" >&2; exit 1; }
>  [ "$all_sz" -eq 0 ]         && { echo "$MSG_PFX Error: Empty all-addrs" >&2; exit 1; }
>  [ "$all_sz" -lt "$val_sz" ] && { echo "$MSG_PFX Error: More valid-addrs than all-addrs" >&2; exit 1; }

... the variables' _sz suffixes then end up a little misleading. Not sure
in how far we care. Perhaps not enough to warrant the bigger churn:
Reviewed-by: Jan Beulich <jbeulich@suse.com>
(with the description adjustment).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:44:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:44:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227398.1533790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq8dU-0002Kl-Cn; Wed, 11 Feb 2026 11:44:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227398.1533790; Wed, 11 Feb 2026 11:44: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 1vq8dU-0002Ke-9S; Wed, 11 Feb 2026 11:44:00 +0000
Received: by outflank-mailman (input) for mailman id 1227398;
 Wed, 11 Feb 2026 11:43: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vq8dS-0002KY-63
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:43:58 +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 f2dff251-073e-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 12:43:57 +0100 (CET)
Received: from DB8PR06CA0053.eurprd06.prod.outlook.com (2603:10a6:10:120::27)
 by AMDPR08MB11652.eurprd08.prod.outlook.com (2603:10a6:20b:73a::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.12; Wed, 11 Feb
 2026 11:43:53 +0000
Received: from DB3PEPF00008860.eurprd02.prod.outlook.com
 (2603:10a6:10:120:cafe::8) by DB8PR06CA0053.outlook.office365.com
 (2603:10a6:10:120::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed,
 11 Feb 2026 11:43:51 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB3PEPF00008860.mail.protection.outlook.com (10.167.242.11) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 11:43:52 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by GVXPR08MB10586.eurprd08.prod.outlook.com (2603:10a6:150:14f::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 11:42:47 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 11:42: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: f2dff251-073e-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=CczI03d6YX8vQLsCokRL3ANEvjx0jcWXpc1glbiiXN9pb7VPw+P1/hzPrIghdLMKiw4rStBpQSgG+bkfDxK9KRnl3pmfsWOdYOMv21K7hecsV2ZgHyK8KbFtjCnWtoaO5vqfqgORnSqCJKkZoLqjlvp9g00AOObjrbp2X+gYsBkw0m38F5aPzdofRYpCAfkcNR2nyZvCwofEG9ip9FFmuQN4/pFMlayGZXLl+rUd9avSc7RmjZwTv2+lvMU8NzP0GTddLzqg8gWow20EURATWvZXBYMl+rVVvanP0JlYfFSzchVE8lwpNDY6+F1K+NdhyqWzv5ZoYmxHwjRZRbV+Xw==
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=8rcBLi1aoRtywbZ/T93D9mrJrpvjzyhBIbhS4enMz4M=;
 b=S8wG+CAdE5Gjt6yFrZYZ/Mci3aDjb30eGzRrVgpINqore+9bYwvIb2i1ZCXI9LI2U3wGYv5cUIQFQUw9C136P+rpzNVMtzbfmrmky2De6w0zPLjJ66H9jiuKb+lJZ7PuZ3c4tjfdOOgZzPrjPe07te9fPbgnWyUrNoCF37xo6RSrfe7dQ6CKcNH3TbtOYCrEVuSjXdjcPxw+wHq+yHtLSx8zXXSoJ9cBz0ahOB/CfXpX5ugyOSnqcylkkOqzs9/OBabHn1tfdHX/hCs+BkZU7dfuAgXXGfiRCO3EP2U2XDPn4cMSz7KgSNC1k2UEL31jZtoA5W218MAq/Zp0iyYqVA==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=8rcBLi1aoRtywbZ/T93D9mrJrpvjzyhBIbhS4enMz4M=;
 b=X3YwnJejhhH43ixFG+wtlFhM5vLUMsnGkubuKxidtBzrlb8EOPxaZ/l9XT2anSasw/KEB9DQtLRl7sSp89VWkBQQAR0zny6v+m2dv/xnZlvLifGM9TKhjMhZ1hdUPFEV2pnbli5yAYnJ3pKqyqJ4EA2ePCx26cGsA+MwYOSE520=
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=WFrkiQSgkR8h1XwxmxKgJC/u/tTXdHbGVm2OeLMWUbRAWzYCVzEo985qTH5in6A9CykciU7XeiTtqxX03x4mk1sLF3+U9dA24swt/DK4D3t/2r2Q4D0Fp/JsKvIhoRo8gn+LP08xgxEFxK9cUlDf69nQAN1enNJ4669U3PfQg2NpENgv+rGH0vyddZIEfKjZIfZQmMdrWK0wZtPnWIdZ/MdWWnfhYTtIfpjrb3Zz5J1kw8wCrRW1yopxiNT8LGySUeat3HBdNsDzjIo4kCxtKPzq4uc5ceOlBllmIMx5vvkZ8LOb8CnvNfvPOwf+UsBrHrRAfQjaFtJN4BL+cLryHA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8rcBLi1aoRtywbZ/T93D9mrJrpvjzyhBIbhS4enMz4M=;
 b=IWeIEieYriL5JI4fpc9zgpKPlkZ1FcOjaCEWq2Cz2JL1umLUwtdl3eEChfJnm0x0rVvyb72bnXUjwGXXXSht5taO7XPJ0y8xQfqKPrEVE+K0rrwVeXQSQ/T/D2Ny3tSle5KJ/Ha4F9Ff5G2+dnjlWyONjWFsTTy8i1E34vrHAY0nRiyeMeF/UCHOuz1rBbPYtAlmVpCXQgIZkwkCIRmh6QMrDi6aUCJPeCHmmhQ5unwmHDIy/PwwyyDAMlHOAABCMl3eAqNthssAtAmCgSraxtG0nSSV9nDI+v5sNTDYp3WcWWbOc4UcDZyp7SfdgCn758TXNQqGH2xaHzWZQey6mA==
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=8rcBLi1aoRtywbZ/T93D9mrJrpvjzyhBIbhS4enMz4M=;
 b=X3YwnJejhhH43ixFG+wtlFhM5vLUMsnGkubuKxidtBzrlb8EOPxaZ/l9XT2anSasw/KEB9DQtLRl7sSp89VWkBQQAR0zny6v+m2dv/xnZlvLifGM9TKhjMhZ1hdUPFEV2pnbli5yAYnJ3pKqyqJ4EA2ePCx26cGsA+MwYOSE520=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 11/12] xen/arm: ffa: Add MEM_SHARE page diagnostics
Thread-Topic: [PATCH 11/12] xen/arm: ffa: Add MEM_SHARE page diagnostics
Thread-Index: AQHclTUyA7I1agGV+UuUfDON72XmkbV9Uj2AgAAaYQA=
Date: Wed, 11 Feb 2026 11:42:47 +0000
Message-ID: <7FFDFB40-DADA-448A-AFDD-16A108FBC70C@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <94e10f14d499d7e584fb0fbdd28d0288bb5831bd.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44EN19q4NBteEY12g0w2TZE4apfo=a0Lu30ufjTDYr5DLw@mail.gmail.com>
In-Reply-To:
 <CAHUa44EN19q4NBteEY12g0w2TZE4apfo=a0Lu30ufjTDYr5DLw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|GVXPR08MB10586:EE_|DB3PEPF00008860:EE_|AMDPR08MB11652:EE_
X-MS-Office365-Filtering-Correlation-Id: 7657292c-8660-409b-10aa-08de6962d4b3
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?ZDR2dThabDNqWmRzOUlFemY1Qk96QjFGcFRwc05aR0wyRDBTV1E1WHJ2cU1v?=
 =?utf-8?B?bUtHZjBuMGVmSE9BTnI2TktGRkd0dXlpYXA5VVpnZ1F0OWI2L2w1N1NyRWZN?=
 =?utf-8?B?WVpVN1NkeWVRRFVhZWU0NGtJZ29qa0Yxc0NTZi9PNGlLNXZpRXBpd0pFRERX?=
 =?utf-8?B?L2V3VGFBRlBpWUpnVkZpMjBDZGVvNTdtR0dIMmhJNjVHdGZtSWcxTGdla1JR?=
 =?utf-8?B?b0xubmFvbE8zQVprVzJUUkFZVEU2UnN2b1M0WjQ1RHUzWkNXMW52aCs5RUw4?=
 =?utf-8?B?NmpQWmdTbjgyV201cDhpOFZMZWw4TXVySUxpbXBIaVBpS3I3KzJGMmtYNTRh?=
 =?utf-8?B?WU9LSkY2Q1NQckFJYzBXcXRDL21MRjJzYloxa1RtaURnRmREcE9vZURiM1RV?=
 =?utf-8?B?My9OTzlzeFNPM0ZvcnRHaHU3WGp5QVU1Q3NUWEtwZndNbmhXZkt6RmZCN05t?=
 =?utf-8?B?RDFmUU1Oa25KbHBBNVpuK29VczFKdkIwZXNGdFVrTU5wYnhpUGhNRzh2ZFND?=
 =?utf-8?B?WmRRc2xpMmZ6OU1pNjVUK1dhK1dVRVF5UVYrbXlrTksxS0xVY3pCeDRVWStn?=
 =?utf-8?B?Qnd2ekloU2Q2ZUovSkJwZS9GVC9QNnp2eVZCaGxWMDluV2hTOFQ4VWtqQ3VX?=
 =?utf-8?B?ZWhEWFFuaGhwaUpPeVJvUVRZUmxPRFVTcWZrVVNJZmhxbis5a2NZV21DL1ht?=
 =?utf-8?B?clhRSlY3eXFVS29La3hkRnJ0UXZBWDlJc0V6N1RIWmFld1gwUk1wRkZ0bXcv?=
 =?utf-8?B?MXlPaXZmOTMrSzN3ejRJMjgrMHFqeUJXeXEvWk42ZlRyV0VpTFNOelpwWCtO?=
 =?utf-8?B?SGM0WFlqWEdtczhKUkxiUXB1RUlsMVQ3V1UrYjdRRmZRMmJMaTNRSlRmdDJm?=
 =?utf-8?B?d05IUjI0MkxRNUFjOGFVOWs4VFkzSFdYbGxYVUtUUHE5Qjh1bkUxVUwxYnhw?=
 =?utf-8?B?c3JXVk84ZWx6M3Bxb0dkTEpLNWtRVVdTdm5zdm0zQ21EbHlrL3VmU084cVBp?=
 =?utf-8?B?ajRybmN2R3JHWm9YZnVTc0lNamFaZjFrM1lObEU3ZlNkT1dSQnVxd1d0SW1V?=
 =?utf-8?B?R2E0RGI1aXVYeGY1SVViVXFqQkE4dkJSakc4THA4Nzhybkp6dncxdXUzZVp4?=
 =?utf-8?B?SitseFJ6bHRoQ010NnUvNUlxbUVmWDdSRnZNREZJT1dEUGlyRUdLZWdxck56?=
 =?utf-8?B?TUdkZXFmOGplbzBRcnA4SGRpdXBUb0d4WDRTNkNDSFVXcTVWRGtYWjlWNmg0?=
 =?utf-8?B?d05QV0hlTVdpcUx0T1NaaElGbUsrbjEyVHAwQ3M4MEFXOTFZZVlRZXR3ZHY3?=
 =?utf-8?B?aTNCN0UzeVVFS2JnVmZwUFY1QWhOM3hHU01HQ2ZUVkhJaVRnQjBFcHYwMXlr?=
 =?utf-8?B?WEtDVWJTc3dZck4wSUhiOVNxa0FyNlNpOFppdEVab2hxdW1mV2tHSjJmWS96?=
 =?utf-8?B?b3NaakY0d0JySkRieXNVVDBDWHRhdERXajM5eWNzbEpIYURETVpOWDRPTTNO?=
 =?utf-8?B?R1Jsckp2eVc3d1FYUHFDUVllcWxLWndobGlvZERFKzhRRllqK3hGMTdURy9T?=
 =?utf-8?B?WjR0bTByV2ozZVFqdlRZZ0JkYk5XOU4rRmo5MURCcGl5UlhVcVkvbGV5YmVh?=
 =?utf-8?B?akhlYWRHeGkySENXNC9SZkgzWGIrS21oT0wrQlZhRGgvUExXOFFYYTlRL28r?=
 =?utf-8?B?bmFka2VyY0w0aW5PUnZ2RTJDaVRmZzhPbFpJRkNKaVhMR05mN2dIbUtTSzBD?=
 =?utf-8?B?WEVxMTVrU3hRbFhFbWEwOW42L0pIc1AzYWxWMy8xWnVXcXc2RklXOWM1MGtx?=
 =?utf-8?B?ZlFXMnYxNEhjaWN5V0V6SGtSN0gyL2crYyt5Vnd4bEgzbDVzRHpzajNibEhl?=
 =?utf-8?B?K1ZaYm4wV1VPUUJOL2oxTEFEZlBUNFpKL0FwOEhOam8yYWhBRk1uamdmSkVv?=
 =?utf-8?B?RDI2aWJ0eWswMWFJQTE1S2YvMUYxeXZ3WmllcWYvQVNEWHlXQlJzd21OS2JX?=
 =?utf-8?B?S1ovQXQvN3VQOEwwRFg5enh3OWpXQ0ROdjYraUI2cUVTeWRtYkNsT1RlUjRO?=
 =?utf-8?B?VWRtbzBxRnk5MUVyVzhlUk44VHVFN0FFUUlRT2lINHd3N3VROHFwVW8zTmVj?=
 =?utf-8?B?YVM5aXlkakZWc2tZY2VIWFRERkRsckVOSW9xendkZFBYeG00S2dNczBSWkxs?=
 =?utf-8?Q?br0wQkoFLK3Mywvn81xJZu0=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <B8402831F3F18E4BA7DC87F04AED7047@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB10586
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB3PEPF00008860.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	b656a3fa-c8b2-46f5-d227-08de6962ad96
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|376014|36860700013|82310400026|1800799024|35042699022|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?OWJJR2xFOHFjSVh6dU11dnpxbC9tbUhxUE1CU3NXdDZSb2dIZ3RXcjhRZjhl?=
 =?utf-8?B?SDNLWExYT2ZkVi90RklnaGdnYksxWVJ2WHhndk8rZjlxaUMyVmpUeks0b3BR?=
 =?utf-8?B?RjVCQXhLb3l4WURvV1d6cDFxeFdZUjBCblRPQjQrZHoyQVh3VVJ6TjE2M250?=
 =?utf-8?B?dWxOQ0l4Yld6VFg2Z24vNFhFMEw0bmxqSVN5N2VRbERNeXVXMzJhakg2dHRz?=
 =?utf-8?B?OGVOOEpNZ0NXZkU1MmZYL0d0cDBMaFNLdDlMTENYZkdZdWZBSXZFQVdOMmFM?=
 =?utf-8?B?WmhyNnZDd2c3YTNzZWU3T0JWNmxMNDJtQmgyclBab0ptTjlJTStGTFdPTkdh?=
 =?utf-8?B?czVpUkEyZ3FDWlhlVWZOcjVReDRlWmJjMU9UaFdzdXZtcFBPVHVUdkVFQzJK?=
 =?utf-8?B?UUZZbmRIQmlGRlBsY3FZU1E5NnVOdjJiOTArMVl5bDQzU3lEU3VDZGRyY2I5?=
 =?utf-8?B?cG1WVFBoUVZ4TmJDT2tJeWh0aVRhQlhsT3p2MVZWWXl6Rnh2dzNSUVdVbStU?=
 =?utf-8?B?Rk00Ym9LeURtOG4zMnp6N3oxNk5EZGZzWmxYN0dtS0NZdC9Jb2k1MjVMcjJs?=
 =?utf-8?B?ZHV1SnpzOWdWU1VLOGcrS3RXejJCMmxZdHBDSFBveWYvUVVybjlXZkt2cWlh?=
 =?utf-8?B?OVZXTDlpajVoQjJwbUxGSE0yOXF4VnhnbmVmcVFCZmFEVVFHN3o0T3h6RVdI?=
 =?utf-8?B?cXFoY2NjVExDSG1id1JxQ3lTRHJISFdFU3d1UVlNYjIxdUNpdm5vbXFMNm1V?=
 =?utf-8?B?UDFaOHJrMUxGeFoyZmhNUmVyb1B4ZzRMMmwvRnFsYk9Hay9wa1VTOFVveE9Y?=
 =?utf-8?B?OE9CYUIvREVGaVRCTkNMUFhnaVdhaGduSm50K0Y5K0YxdFAvNCt0N2c4VkhC?=
 =?utf-8?B?SlRsaC9wVFIzajd4WXJsaUVKcGtoTG5zMytrM1BqNFBHWFp6eEVaSGFMTU84?=
 =?utf-8?B?SjlqQ3owcitiUytyTU5pQWZPdC80b1U2UThHMkQwTVZIdHZueVRraHhOTWRS?=
 =?utf-8?B?V1RaMkRUaElSWHkxdE9KTDlTbWFsd0VtN3B5Y3g5cFlLeGZSaDU4cHhsa3Ey?=
 =?utf-8?B?OHpUSDl4ZXF3UTh1Q0I0N01BakR3YndFRzhPekZLWUxXM0pub1VNTmkzY2hO?=
 =?utf-8?B?dHY3M0lKMzRYT1V1UHJQZk1tYU52RktHK2RLdkY3akt2V2FWMnROczdDa0tx?=
 =?utf-8?B?QzJYcDhYY2srdWs5aU50aHRwU1UzY2tYK3NzUHpZQi9FdkpYTjRzTTBQbytw?=
 =?utf-8?B?UlFJUmJiQlVaaHVlVXNETFlaOUpVc3ZwZ094QXAxeFlRSTFwTDB4VS9IVEYy?=
 =?utf-8?B?SE1HRnBiZUI5SVQ4eS9sWWdmV0FCUWJvVk1RMFgrckY5c0dtZVF4SGRCekpW?=
 =?utf-8?B?V3hCa2M1MXVCV3I3bFRscjJUMzhZRGJXZit6WmJJVEpiVGFZK0toTkJEczNa?=
 =?utf-8?B?eVk4TVVucU5mUkdMbHJ6MzRydnM5VGVlUWYrQnFiaWI4K2l1bEhqcW83NmdH?=
 =?utf-8?B?YU9HUlcxN1RhYjcyU014Z0ZuajlCT2lIc1pZTmdtbzE0bmFEdnpneUNWSDZ4?=
 =?utf-8?B?TmxSYW9QWEhFN1U1RjhzcXU1Q2tFdWRiWXFxZ0ZiVmU3SzhuSU1qWktWNmQ4?=
 =?utf-8?B?YWswdTB0c0tCdFBwdGl2eEs2SkVqYnRhVjllT2RodkZabHpKMDd0Rnl3c1Jw?=
 =?utf-8?B?VnA4ZTJiR1h1WjNpQmJsTlFNRFJNZ1E4VTRMQit1M24yc2daSUNUNFZzSDJ3?=
 =?utf-8?B?V3h2bUlpZ1Bmc1dHaGE4Y3RMc0FCZDVpWVMyZVM0VlVuSXNBeUZEeFo1NFZD?=
 =?utf-8?B?K1pDSExLVXZKL1RGaWd0Y2hQMHNnOUxsTzEzdTRZQjdtWTNqdUk0UUF4VlVq?=
 =?utf-8?B?K1dkYnRhUS8vTGROSXNzb0JKd1Q3czVTV1g4WEpHeXN4Umw0TFcwMHpPL0Qz?=
 =?utf-8?B?QTRmSjVaTVY4S085QTZTL0VFZzJKRXFPdC84Rk5VV0VhSGRpekFHUVM0dHdJ?=
 =?utf-8?B?MllCUWl2SlVRRFpCR3U3UkJFcVBibEF0a3p2N1psT09pZStRZHhzSU9CRjRV?=
 =?utf-8?B?T0EvT2pCdFN3MlRaREQrc015ME54LzZRNzBvNVF1R0RaTjloZUJNZFg5VjRm?=
 =?utf-8?B?WE9wUngyTHR1VCtxaEtEVjYxWW5uU0l2RjIzSmIwL2pITWYrUmR3ZzYvWVRx?=
 =?utf-8?B?b01xY1o2b0RrL0RYcE52WkZxam4zV3NoL1FUZFFiSnQ3eVdKaU9nRmgyN1Yx?=
 =?utf-8?B?RUZ2OThLWkhBZkt5dUV5UlJCRGh3PT0=?=
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)(36860700013)(82310400026)(1800799024)(35042699022)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	8CLeBzZs2LKX+SKeWpNYmSVzYw6zxcgTnn0wTEntXFJxNEkfhwN//UhLsgGikt+9D1QuHXTtunq731xXio9MidtrQ2XQuyB8we/7pg5TNaLlSYmSwwSzb/74WtbdGMTvG972neGpR5dMDZ56lsyCvlIyf+9FrwJwgQva6oWLgKdsdDQf/UBavQNI/bmTFdKjQJaoY6NaX/LCHc7Qh5FAkZAo1y6yG+Ooh9Mv8NrwIHPp1uRobAaPn6jItkvOwHB0Y3FFi4ZOeXBUm3c8kBJtElXmWVugcPmAKgLf7NN9OlGhAdFeHXKtyXI4PlnsWkwx4kGaz7yh1WQGFyMv2Ez1LQAJkWqLFssZysG4Bt7DQrykzCf+5lKTL4LXak9rlyjpUTNgAHhfLuz8vxSU9x5UHgztWMaa/3jApRCPSG8+E42P38SRBVY7X4ZbHH1q2S7C
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 11:43:52.8321
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7657292c-8660-409b-10aa-08de6962d4b3
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:
	DB3PEPF00008860.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11652

SGkgSmVucywNCg0KPiBPbiAxMSBGZWIgMjAyNiwgYXQgMTE6MDgsIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gVHVlLCBGZWIgMywgMjAyNiBhdCA2OjM44oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gTUVNX1NIQVJFIGZhaWx1
cmVzIGluIGdldF9zaG1fcGFnZXMoKSBhcmUgc2lsZW50LCB3aGljaCBtYWtlcyBtYWxmb3JtZWQN
Cj4+IHJhbmdlcyBhbmQgcGFnZSBtYXBwaW5nIGZhaWx1cmVzIGhhcmQgdG8gZGlhZ25vc2UuDQo+
PiANCj4+IEFkZCBkZWJ1ZyBsb2dnaW5nIGZvciBwYWdlIHZhbGlkYXRpb24gZmFpbHVyZXM6DQo+
PiAtIGRlc2NyaXB0b3IgdmFsaWRhdGlvbiBmYWlsdXJlcyAodW5hbGlnbmVkLCByYW5nZSBzaG9y
dC9vdmVyZmxvdykNCj4+IC0gcGVyLXBhZ2UgbWFwcGluZyBmYWlsdXJlcyAodW5tYXBwZWQgR0ZO
LCB3cm9uZyBwMm0gdHlwZSkNCj4+IC0gYWRkcmVzcyBvdmVyZmxvdyBkZXRlY3Rpb24gaW4gcmFu
Z2Ugd2Fsa3MNCj4+IA0KPj4gUmF0ZWxpbWl0IHRlbXBvcmFyeSByZWNsYWltIGZhaWx1cmVzIGFu
ZCBsb2cgcGVybWFuZW50IHJlY2xhaW0gZmFpbHVyZXMNCj4+IGFzIGVycm9ycy4NCj4+IA0KPj4g
Tm8gZnVuY3Rpb25hbCBjaGFuZ2VzLg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBN
YXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+PiAtLS0NCj4+IHhlbi9hcmNoL2Fy
bS90ZWUvZmZhX3NobS5jIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t
LS0NCj4+IDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkN
Cj4+IA0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvZmZhX3NobS5jIGIveGVuL2Fy
Y2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+IGluZGV4IDkwNWE2NGUzZGIwMS4uODkxNjE3NTNlOTIy
IDEwMDY0NA0KPj4gLS0tIGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfc2htLmMNCj4+ICsrKyBiL3hl
bi9hcmNoL2FybS90ZWUvZmZhX3NobS5jDQo+PiBAQCAtMTY5LDYgKzE2OSwxMiBAQCBzdGF0aWMg
aW50MzJfdCBnZXRfc2htX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBmZmFfc2htX21l
bSAqc2htLA0KPj4gICAgIHVpbnQ2NF90IGFkZHI7DQo+PiAgICAgdWludDY0X3QgcGFnZV9jb3Vu
dDsNCj4+ICAgICB1aW50NjRfdCBnYWRkcjsNCj4+ICsgICAgaW50MzJfdCByZXQgPSBGRkFfUkVU
X09LOw0KPj4gKyAgICBjb25zdCBjaGFyICpyZWFzb24gPSBOVUxMOw0KPj4gKyAgICB1bnNpZ25l
ZCBpbnQgYmFkX3JnID0gMDsNCj4+ICsgICAgdW5zaWduZWQgaW50IGJhZF9wZyA9IDA7DQo+PiAr
ICAgIHVuc2lnbmVkIGxvbmcgYmFkX2FkZHIgPSAwOw0KPj4gKyAgICBwMm1fdHlwZV90IGJhZF90
ID0gcDJtX2ludmFsaWQ7DQo+PiANCj4+ICAgICBmb3IgKCBuID0gMDsgbiA8IHJhbmdlX2NvdW50
OyBuKysgKQ0KPj4gICAgIHsNCj4+IEBAIC0xNzYsMzQgKzE4Miw3OCBAQCBzdGF0aWMgaW50MzJf
dCBnZXRfc2htX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBmZmFfc2htX21lbSAqc2ht
LA0KPj4gICAgICAgICBhZGRyID0gQUNDRVNTX09OQ0UocmFuZ2Vbbl0uYWRkcmVzcyk7DQo+PiAN
Cj4+ICAgICAgICAgaWYgKCAhSVNfQUxJR05FRChhZGRyLCBGRkFfUEFHRV9TSVpFKSApDQo+PiAt
ICAgICAgICAgICAgcmV0dXJuIEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4gKyAgICAg
ICAgew0KPj4gKyAgICAgICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0K
Pj4gKyAgICAgICAgICAgIHJlYXNvbiA9ICJ1bmFsaWduZWQiOw0KPj4gKyAgICAgICAgICAgIGJh
ZF9yZyA9IG47DQo+PiArICAgICAgICAgICAgYmFkX2FkZHIgPSAodW5zaWduZWQgbG9uZylhZGRy
Ow0KPj4gKyAgICAgICAgICAgIGdvdG8gb3V0Ow0KPiANCj4gVGhlIGV4dHJhIGhlbHAgdmFyaWFi
bGVzIGNsdXR0ZXIgdGhlIGNvZGUsIGFuZCB0aGUgZGVidWcgbWVzc2FnZQ0KPiByZXF1aXJlcyBv
bmUgdG8gcmVhZCB0aGUgY29kZSB0byB1bmRlcnN0YW5kIGl0LiBJJ2QgcHJlZmVyIHNlcGFyYXRl
DQo+IHByaW50cyBmb3IgZWFjaCBlcnJvciBsb2NhdGlvbi4gRm9yIGV4YW1wbGU6DQo+IGdkcHJp
bnRrKFhFTkxPR19ERUJVRywgImZmYTogbWVtIHNoYXJlIHBhZ2VzIGludmFsaWQ6IHVuYWxpbmdl
ZCByYW5nZQ0KPiAldSBhZGRyZXNzICUjbHhcbiIsIC4uLikNCj4gcmV0dXJuIEZGQV9SRVRfSU5W
QUxJRF9QQVJBTUVURVJTOw0KPiANCj4gSXQgc2hvdWxkIHJlc3VsdCBpbiBmZXdlciBsaW5lcyBv
ZiBjb2RlIGFuZCBjbGVhcmVyIGRlYnVnIG1lc3NhZ2VzLg0KDQpZZXMgeW91IGFyZSByaWdodCwg
c2luZ2xlIHByaW50cyBvbiBlYWNoIGNhc2Ugd2lsbCBiZSBlYXNpZXIgdG8gZmluZCBhbmQNCnJl
c3VsdCBpbiBsZXNzIGNvZGUuIFRoaXMgd2FzIGEgYml0IHVzZWxlc3MuDQoNCkkgd2lsbCByZXdv
cmsgaXQgbGlrZSB0aGF0IGluIHYyIHdoaWNoIHdpbGwgYWxzbyByZW1vdmUgdG8gZ290byA6LSkN
Cg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 11:48:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 11:48:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227406.1533799 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq8hP-0002yb-SG; Wed, 11 Feb 2026 11:48:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227406.1533799; Wed, 11 Feb 2026 11:48: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 1vq8hP-0002yU-PQ; Wed, 11 Feb 2026 11:48:03 +0000
Received: by outflank-mailman (input) for mailman id 1227406;
 Wed, 11 Feb 2026 11:48: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vq8hP-0002yO-5M
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 11:48:03 +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 84d2452d-073f-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 12:48:02 +0100 (CET)
Received: from AS4P189CA0045.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:5dd::17)
 by DU0PR08MB9656.eurprd08.prod.outlook.com (2603:10a6:10:446::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 11:47:57 +0000
Received: from AM2PEPF0001C716.eurprd05.prod.outlook.com
 (2603:10a6:20b:5dd:cafe::f7) by AS4P189CA0045.outlook.office365.com
 (2603:10a6:20b:5dd::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 11:47:56 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM2PEPF0001C716.mail.protection.outlook.com (10.167.16.186) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 11:47:57 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by VI0PR08MB11198.eurprd08.prod.outlook.com (2603:10a6:800:252::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 11:46:54 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 11:46: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: 84d2452d-073f-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=f+vjGm2kwfMvgTIXG/z9UJhC70/T7mabl1Ds/UE3ICUVzsEmo60n5x2DILJhYfJLabZ1Q1kutsHkwhTvADDuXPWBVrNgFWJ0iF50z6I4HuC2lBMFDxp3ea2t5GzQiXCAyjF1j/WGZ0VJJyRstJOVXtBmq1gPKyU11NMFXXhUEmS7WRcSTBlqd8vm18ZGVHIFlC+TwmJw2Hk0Ldp+udC09GXbv5dvw6hgeMjStrLMQsN7nAKneUEiHpcI+TAqQWXp6Mr+1RPB12VyOfNqHVPYdvv8fCLHHY9c9vA+7zab5A8fvjeSwqliQMySpf9sMTT1N9zjOTYcDsVCErQFfwxo2w==
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=y5sl5hAanQc1Llf+S+e+08YbBQeFoa9/3JncaIt3UEY=;
 b=hREuPqtsq5YNSlnuaEmqbFNfCrdPpgbz6EIJinHsWxO8/qX2uEAr6Wb6vyMzicB+oRFahWA7ELJgsxGx/Wp/nyfnieVI8pLl7oNAwgSnhyB/S04XMaKeFG5B54uoh3+aE0STo+oh6l4ggAQ+loOJvCLXIxE03hYKorxHK48dStphkoA040d8hjl+iUbvPuUJtHS46uzNS76gGSYyNkZpA2Et+3zu0MJBRCBMWHmHePNGg4Jy7VvGsKUu1o/V69wxn4eQM1t5vWfn2ql4h4HPCp8fqbdtiB6C3TxcW29+tFv80yqYroYVHcwi08IAHfm11jmV1J2ilVREFXLdu5SNCw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=y5sl5hAanQc1Llf+S+e+08YbBQeFoa9/3JncaIt3UEY=;
 b=DJEPQbW9m3nXlsApjU87c4lJnYjuyW78+1TJs1q+e37VmfITICf9uWPKAGmSlYG1NaaxFAAclrzlZA6ToyuR4uyKM3quQuMX+k3ajvPCBFS5yeyIXwCcdwtk130an2hGRe5HU5/2V6MANZ6vtTPdCb7pVZWYLzTZgPP1MjbTyww=
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=fejUP3THP+kDwVpZ0t6igyjc3UIvCvASoxBc7+fLs238Q3dCB4rJVh1oIMoMfUM9Ni59j99A+Rt5a1ONB08vlmpmakr38xxtYmr7V5VIsTO2/Pc1DQxlh7uKtVaEVabwdDo1Sk/NNGxvJe6jznIhuISsDpCYhccnY4TzRbdE3I6guheUexmSeWkox+PNTou9GMQcxfEK+4TJk1XZsysP6t0GnJB9LVNT4q8XTI9D1sdkLaLHcm68GvZU+Rx2C/75EAMo1V6rjMUcj4iFpiNweciqudi+SfkjwMC0HFGbLjwLYgJDpx9SRqUyWchZEHa4E7GxaBY+g/olmbGpmHwIjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=y5sl5hAanQc1Llf+S+e+08YbBQeFoa9/3JncaIt3UEY=;
 b=CV6pHLy9MK/EdwSaomB8pOLUpn4TeJ0BiDoX+5LotwRP9Av+W2QH6nTEHmIwXVUwoSvNo3D5FX+omkyWmMZDQlnKA9qe/hljZRRDOwy1necn16AWEkGqp+jalpbjhOFeh1vy84gxKgGc8IIrcMqnphAosOMC3PVUcHFoCyJbK7SiL2MiGhuYgKER2j0VoiC0N754EKPhaTiFBmlrlcxJUk2vOXQsvRVF7f7JV8V2Q0idConsD+45vB2taWgVzWpROylnQRiFNNJA4nuXh0pM+9RJXRYUBc/99yJlOQMbhPTyAde8Y1/t3CK4Xf/ogEVPkX5VifSqp2c+YYp2ollQlg==
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=y5sl5hAanQc1Llf+S+e+08YbBQeFoa9/3JncaIt3UEY=;
 b=DJEPQbW9m3nXlsApjU87c4lJnYjuyW78+1TJs1q+e37VmfITICf9uWPKAGmSlYG1NaaxFAAclrzlZA6ToyuR4uyKM3quQuMX+k3ajvPCBFS5yeyIXwCcdwtk130an2hGRe5HU5/2V6MANZ6vtTPdCb7pVZWYLzTZgPP1MjbTyww=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 12/12] xen/arm: ffa: Add message parameter diagnostics
Thread-Topic: [PATCH 12/12] xen/arm: ffa: Add message parameter diagnostics
Thread-Index: AQHclTU3ZJPDIpNYRUSOTYp5hfKcabV9VJGAgAAZM4A=
Date: Wed, 11 Feb 2026 11:46:53 +0000
Message-ID: <7B367F9A-37E3-4157-A7B2-3EA21EE9FE52@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <209e5474e236737dd13e0f7ff8120b05cdb7eabe.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44Ebe03R2nTzUW9tDx5hPC6trZCWOdr94ApawFs20chdWw@mail.gmail.com>
In-Reply-To:
 <CAHUa44Ebe03R2nTzUW9tDx5hPC6trZCWOdr94ApawFs20chdWw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|VI0PR08MB11198:EE_|AM2PEPF0001C716:EE_|DU0PR08MB9656:EE_
X-MS-Office365-Filtering-Correlation-Id: 95bb6456-1ff9-48dc-cdce-08de69636665
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?N0cwT1h0UmFEc0p3ZnFUMXhRQkZhaHhxWWJybU1vaGxEbFNBTm52MUEvekNK?=
 =?utf-8?B?YndiR0JMS1NlS1V1VUZIbkJsWnQ1M2xxVUZMc21pLzMyYzBwSm5STUdIeWNp?=
 =?utf-8?B?azdraWQ1LzFscjdqbXQ1NWdIeUNtcFRveEpFYXU1aWVXVnFxc2JPWVFTejNW?=
 =?utf-8?B?eXdnSmMzVXI5R3JHdjdDeVE0S29DQ3FCRjQwVmFlWjR1RW9BZ2dzZGZHZWsy?=
 =?utf-8?B?S3ZJazcvaDNaV1pVeGEyR2dlMEVUSGNpbXI0RUxQM2NFdldHWExCUTk1VFFE?=
 =?utf-8?B?elVCN0krM3VENXBJckZ3a2VITVNSNk9HNXR6aEJTOVdubmZJeTRmQmgxczc5?=
 =?utf-8?B?Q2VUNVhRNTBTM3lWQ3AySzNkd1h1NFZKbEttR0szZ3NLWVdNTWFreTZYOVV2?=
 =?utf-8?B?Y0NzMmNqRDVFSlQ0dXl6bEdveVBIU0w1LzFXZzB2R2NFc3NrYWE4YUJnQVBS?=
 =?utf-8?B?M2Frbm53MHk4VHVVSmR6cVVwQXFxSmlHcVlNMFBDRTF2QkhNeW9pbmxtQy94?=
 =?utf-8?B?N1BtYUlKWkpZZkZZWEw4WVZINTEyRDhPTHlZNTZTUlErTHhUb3ErS3luUmla?=
 =?utf-8?B?NkZhTktnZmhaQjEzMmJnT2R6SENmOHpOaWxzRUhkRVFFVytpREZsVncrZHlq?=
 =?utf-8?B?Zm9SZTRtSGNudnZhRExhVGt3UTlWUmFTc0w4N2dUclBOM2FXVUc2MkJ3Z1hy?=
 =?utf-8?B?cU44TGEwcFNjTjdnY3JoaktJTWVNQXFTMU93MUVZZ0xKQjBicFB5WkRPampr?=
 =?utf-8?B?VFB2L2FsWVdueWNabDZPRUxzOFVLa3RSQm40TUZsWkpVbVRzalBYN1dVK2F6?=
 =?utf-8?B?YXR6YWtUeTI5TW5PWWllMkt3T0VOQjdpYmlyczZEMzdybVJ6TzZsSEREdzhK?=
 =?utf-8?B?YmorVjA5NU1kVVF3U2FUWnhmRjJleSs0YW9TbjVSZnpSUGt2QlhJVnFIUlQ1?=
 =?utf-8?B?aFZnQjZJRG9GcHBRR2dwUjdMRmsvS0FMWFJXSmFWOHNDMzFTQ1BReTdmeTRI?=
 =?utf-8?B?d0RBYkZXN2o3VHFKYWt6dEZZZWhzMGhvQm5jUjI2Z0pqZHRTYlllUWV5VjQx?=
 =?utf-8?B?U0ROVXh1aG5SUzEycGtOQnRyT0tnRFhZUHNTRzVGd012Q2cwVTN4eG1JL3J1?=
 =?utf-8?B?WmlRN3Q2RHdENGFnQndwYURDYmVpTXRZb05NOFd3RS9KSExHYk1lRlhKQTJK?=
 =?utf-8?B?ZmhSQUJEUVpVS21VSkZqZmhsb3hDRGVoSXFFNmkybGkra01IK2FYcU5DTmNp?=
 =?utf-8?B?eVlQdkJ6OHBHYzkyWUFvN1Mvdk9KckVsa3orQkJpU1NCYkd3YThUVlYvdUJp?=
 =?utf-8?B?cUZqdXpNK09SbTJjQmVlL3Q2M0YyaGZlbTNoV2J3U1ZqQkV1ZDZWT040Q2Vi?=
 =?utf-8?B?UFc0dkJQUHZNc2RZK0pXbWd4MnhvOTZKeTRCQlZlc21wdndSTGVzeFNlNkor?=
 =?utf-8?B?eE04NTgyc2tWTHVIZ240UTF5eUp6bmJHa2Q4d09xZ1V6bEtQMlVMMERacEt0?=
 =?utf-8?B?NVVyTXU4VkdVNWhsWCtiNlN5SkpPbFdBdnBUK0Y2UEpYUVo1aG42MS95S2hI?=
 =?utf-8?B?SjBtbGZ4SlBock1VRkt3MnQyWDRrSlV6cm53MVFUanN5cHFpa0hQL1RwemNN?=
 =?utf-8?B?ZGVFUGxTandzRlMzeFpXRzZuYURDNm90V1pHSE1hbnNFRHAreHA3OUpjamJo?=
 =?utf-8?B?RFAzV1dzaFJvSGdKNk5raGxWU1oyUnhKd1IwcGlxTzJ6NVdncDJvT0czTDgr?=
 =?utf-8?B?Q0duK3liM0txTS9VYzZrWGxGcEtOUDFEWkpjL2VWSzZZU04xQWR4VFYvSDRU?=
 =?utf-8?B?QlExN1B6ZUxDbklXU2hJZmNQNDFSWGZ0di96QVFtZllUU2FEalc3blFLYndD?=
 =?utf-8?B?RGF2LzN6VG9wcnQyaFdlc0RhQVZ4bno0b1NsUU9iTFA1YzBQbTdQMExDMEht?=
 =?utf-8?B?QlV1T1piMktBc3llOVBqV0pGZzJXOFpuRnNIN0NGVFpLdHYxeXBiZnRkZmpj?=
 =?utf-8?B?d0ZoZndMQS9RTnhROEhGL1oyU0FsT0xJMXNPelMwZy9na2FQaHd1MkpuNE93?=
 =?utf-8?B?enNvdUtGMEhQU2E0K0JhdmwvM2JuYVRXck1Gdkt6dDRtWkM2SE1FZGN0NzRk?=
 =?utf-8?B?MGo3QVAvcExBRjJhTHhDY2lhNzJ3NWx3bmVCV3JEdEZ3SWJPelRuWmYyY1V6?=
 =?utf-8?Q?X1BBLYbqqo+dBvHm071zqgM=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <E09502FE814BFA4396C7985F37EF79D1@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11198
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM2PEPF0001C716.eurprd05.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	87de86c9-522d-4c8f-a6e9-08de696340a3
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|82310400026|14060799003|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d042VVZMVFNXTkZ5Y1lVUGVucjlwb1NOdGM3c2FGYUxnQmczZ0JpMFdJZzRS?=
 =?utf-8?B?MnQ2bi9HT2x2QkszMzd2NEd3RzR5TmIwZXVkRkY4cXJ4ZlBBMjBYQjVvNitl?=
 =?utf-8?B?U2xOc0hPS0lLL0RuZGg0S2RxSWh6MEloU1QzbDZVcWpmTk82bTNhaURBZVN5?=
 =?utf-8?B?d0hsM2R5c0g5aHhGUFhmeGhxUm8zcjRaWW1XZEFYeXlTdlBnODhpbC9BczZL?=
 =?utf-8?B?djd4eFh3YlFNREJHSEczVGJicE1OVytuTVphYU95aWExSGtHcUhLc0FFUytT?=
 =?utf-8?B?Tno5YklFd1RIWkhBWUxTVmh4bGZZYnF3K2hoZ0lRaE1QMURuVG82STliMGU2?=
 =?utf-8?B?bW9RSzNXVlpxREE5QTJVcmNDcUlneEFDMUtGdzJ2ejJFSUtoVS9FSXNaRVRT?=
 =?utf-8?B?WFpqb21QMm5tek9udkUxclp4cjdiRUZCaWlQd0tmSTBCL1l2dTl4SGo0UHZS?=
 =?utf-8?B?UC9adGFvcnpUZXI1OWh6K2I1UzJXTkczMmd3ckhRVGN2SFRqM25ZdHVWUUhx?=
 =?utf-8?B?NzgwRldiTkdPV3I2NXRMRmF1VWFBUElYMjVwTUlRSFMyWUlnMXFJVHN4d0pM?=
 =?utf-8?B?L3lvbnY2K215Wk0zbXBiMGFudEYyWjlvaGc2L0dlWDZaZElQM1NJeWd3MVRD?=
 =?utf-8?B?QzJPLzZZU1lEQUdQMHdOOXBIWHBLK2FUMk9NSXMwYmJmem04L0dRMU9wb0xr?=
 =?utf-8?B?THdYajRJMEtOczEwckI3ckZPNTArUlM0R2ZlaUpRbHBrTklRVVlXWVBvcEhP?=
 =?utf-8?B?cHp1WHp2clRuYndLYlVXZmYvWVh5eEJzMHNwWC9KM0V5NmhhVC9oQ2ppdmRo?=
 =?utf-8?B?aU9XNklIZTVId0lkaU40R3hQcmhTRm9ReEN2a3JXQlA1cXpDVVYvSGR5VGs2?=
 =?utf-8?B?cVM0NU1pTFo3MGpJOWt3b3huU05tbkZzSWhVVU84Q3N2RDhXQTduQUt3b1pt?=
 =?utf-8?B?R2l2QzFNVDYyWXErZzMxZGtxYmc1WmRtSmxteFppNEI4SUR5RVg1N2orYW1S?=
 =?utf-8?B?cE5ycVpCVWhPSW8yak1VcWdXS0tzemFRY0ZLQlIyTnEvS3JhNXJWVXZjUndx?=
 =?utf-8?B?dEZURUYxNUpvakFwM1ZnUHpQcEtaUDB4SjJBZU9ockZNT2VtclVPdXFPaUNy?=
 =?utf-8?B?YkVaOXFOclFta2pjdXBkVVEzcGpVNzBQNGM1Z3E3RmE4T2VqNVpmMWdHQVNr?=
 =?utf-8?B?a2xUVlMwL0tadmR1bDZlbnVtZWVyOUVLZ2Fmb3p3Uk90cGdpLzdKNHAyb29J?=
 =?utf-8?B?cWJkdzM1ampxSlNwcE9pcmpnREpFTzE4Sk9teDdKb01NeHV6dXRsYVp0ZzRY?=
 =?utf-8?B?Nkxpb0I2YmxYTkkvNVdGTGdsdWdhQnBISXp2aGhON1dWZzUvbks0K0o0U2Jk?=
 =?utf-8?B?ZGJEZndtUUxRQ1F4SDg3M3dhOElYT3BRT3g2N3VORXpCbnp4MEZQRW14OHQv?=
 =?utf-8?B?Wk02c3VLVFhZK1lQUTM2ZnFvU0x4TDh1R0hOVVcwRkpiSmJuRnlnWWpyRjRL?=
 =?utf-8?B?YWpjZzd6azloVlN1WGhCRk1wTnNFZU1xazFqVTJPS2JLcU0yUXdENU1GaDdy?=
 =?utf-8?B?aExjbGVnbGh5dXpDMzdhMWI2Zi9mYXZQSWhlSnBaclFDTWcxZlpnYXdtb3p6?=
 =?utf-8?B?aEpIbXBYbnFHcHBYTCs1c0k2dkl3UG5ObFBtb0tmY2FiVUhsV2x6WG93NlpW?=
 =?utf-8?B?cE5sVW1tMUVzbHFPZTdpQWlnSURkZG4vZUJZN2ZXemIzMkQ4UlFRa2wvOSti?=
 =?utf-8?B?a1ZWbmMwNkNWTWxaYmpMS2pkdGpGYnFRalpvdUlFMmhCaU5DZWx6dXlHbWlk?=
 =?utf-8?B?WDd2NnRZMUp3ajI3OFVwd0xpcU5BQ1U1ekpDRWozLy8vLzk5MmVUMm9vb01y?=
 =?utf-8?B?QlN2THlzUEJqQld0QmQxbkN2MUF5UGZUTW1QaFg2aDIwSkZaSzhyOVZYeUtw?=
 =?utf-8?B?bXlCSVg2a05WQUNVTTU2b3paZk1mSGRrdGVaOHFnWkIxN3ZUeE5oTVJYYlRy?=
 =?utf-8?B?djdKRXREZ1lTdTNnOUQvam9YMDdaS1hxOVc0ckk5STNpR3Zoc3gxWGZNRWEx?=
 =?utf-8?B?Tzh5d0RtQ2pmUUxVV3NaT1FjenF6ejZLT3pVTWxFOTNlVFFOMy9jOUJyb0ZG?=
 =?utf-8?B?TUdNeVdCZThlTWJLQ1ZYVUlHU2RJc2ZEWkIvbnk5bHRwc0ZiVHNtdlJWUzhy?=
 =?utf-8?B?d3RlYStYQjdzVHZJbUM3K3l2WkhVdmRPUzlyT2l6bEdKS0YvRHl1T0lKeTVT?=
 =?utf-8?B?QU9xLzlZUklaWDZWdWFQK1c5QmhnPT0=?=
X-Forefront-Antispam-Report:
	CIP:4.158.2.129;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:outbound-uk1.az.dlp.m.darktrace.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(35042699022)(82310400026)(14060799003)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1KGvlbdKciIT4YFZhuzuqZ2eIdvKE7060qzGR/SrKJrxJQ385x6y+ixNlAF5MN1Q1lZ5IDLwltG5qzUUMUrp7YxFFsg7B+Bgo/TP+GMqvudkKn1jM36FUSCQa9iW2UEimQw+bOWLZCb3Q3xsNu+UuFR9jaUNlyCunqoQj46N9q7PS5iW1VhDnOgW+IrUjQK+opmsV9BPrJUasqI0wTKVg13F+jvSzfRwJ9vW6wBPyRQfQgElHVpFFe7URz8JWrwFnBn8r8fb1HhmlDBsTWp8QA/Ja+6PxGXaXAaTg39CTMOe4/auCac0+WVmzJ6TVE2Hx7RW8566F4ta4h39BbjkFVJF1UZgqgDfzrXf+oHET/ZzvPRIWrMLHJqhY8bR/7vAhxOqpAp9RCTMouYYTdeRDX6aQS+O/IsdoxJd7nHJW7Atb6juhGTImZFSSSAL92cT
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 11:47:57.2891
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 95bb6456-1ff9-48dc-cdce-08de69636665
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:
	AM2PEPF0001C716.eurprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9656

SGkgSmVucywNCg0KPiBPbiAxMSBGZWIgMjAyNiwgYXQgMTE6MTYsIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gVHVlLCBGZWIgMywgMjAyNiBhdCA2OjM44oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPiA8
YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPiB3cm90ZToNCj4+IA0KPj4gTVNHX1NFTkQyIGFuZCBk
aXJlY3QgcmVxdWVzdCB2YWxpZGF0aW9uIGZhaWx1cmVzIGFyZSBzaWxlbnQsIG1ha2luZyBpdA0K
Pj4gaGFyZCB0byBkaWFnbm9zZSBpbnZhbGlkIElEcywgb3ZlcnNpemVkIG1lc3NhZ2VzLCBvciB1
bnN1cHBvcnRlZA0KPj4gZGVzdGluYXRpb24gdHlwZXMuDQo+PiANCj4+IEFkZCBkZWJ1ZyBsb2dz
IGZvciBwYXJhbWV0ZXIgdmFsaWRhdGlvbiBmYWlsdXJlczoNCj4+IC0gaW52YWxpZCBlbmRwb2lu
dCBJRHMNCj4+IC0gb3ZlcnNpemVkIG1lc3NhZ2VzDQo+PiAtIHVuc3VwcG9ydGVkIGRlc3RpbmF0
aW9uIHR5cGVzDQo+PiAtIGludmFsaWQgc2VuZGVyL3JlY2VpdmVyIGNvbWJpbmF0aW9ucw0KPj4g
LSByYXRlbGltaXQgTVNHX1NFTkQyIGJ1c3kgZmFpbHVyZXMgdG8gYXZvaWQgbG9nIGZsb29kaW5n
DQo+PiANCj4+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlcy4NCj4+IA0KPj4gU2lnbmVkLW9mZi1ieTog
QmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KPj4gLS0tDQo+PiB4
ZW4vYXJjaC9hcm0vdGVlL2ZmYV9tc2cuYyB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrDQo+PiAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKQ0KPj4gDQo+
PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9mZmFfbXNnLmMgYi94ZW4vYXJjaC9hcm0v
dGVlL2ZmYV9tc2cuYw0KPj4gaW5kZXggOTI4ZjI2OWY2YzNhLi5jYzI3M2M5YThlODAgMTAwNjQ0
DQo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9tc2cuYw0KPj4gKysrIGIveGVuL2FyY2gv
YXJtL3RlZS9mZmFfbXNnLmMNCj4+IEBAIC00LDYgKzQsNyBAQA0KPj4gICovDQo+PiANCj4+ICNp
bmNsdWRlIDx4ZW4vY29uc3QuaD4NCj4+ICsjaW5jbHVkZSA8eGVuL2xpYi5oPg0KPj4gI2luY2x1
ZGUgPHhlbi9zaXplcy5oPg0KPj4gI2luY2x1ZGUgPHhlbi90eXBlcy5oPg0KPj4gDQo+PiBAQCAt
MTAwLDYgKzEwMSw3IEBAIHZvaWQgZmZhX2hhbmRsZV9tc2dfc2VuZF9kaXJlY3RfcmVxKHN0cnVj
dCBjcHVfdXNlcl9yZWdzICpyZWdzLCB1aW50MzJfdCBmaWQpDQo+PiAgICAgaWYgKCAhZmZhX2Z3
X3N1cHBvcnRzX2ZpZChmaWQpICkNCj4+ICAgICB7DQo+PiAgICAgICAgIHJldCA9IEZGQV9SRVRf
Tk9UX1NVUFBPUlRFRDsNCj4+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywgImZmYTog
ZGlyZWN0IHJlcSBmaWQgJSN4IG5vdCBzdXBwb3J0ZWRcbiIsIGZpZCk7DQo+PiAgICAgICAgIGdv
dG8gb3V0Ow0KPj4gICAgIH0NCj4+IA0KPj4gQEAgLTEwOCw2ICsxMTAsOSBAQCB2b2lkIGZmYV9o
YW5kbGVfbXNnX3NlbmRfZGlyZWN0X3JlcShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdWlu
dDMyX3QgZmlkKQ0KPj4gICAgICAgICAgKHNyY19kc3QgJiBHRU5NQVNLKDE1LDApKSA9PSBmZmFf
Z2V0X3ZtX2lkKGQpICkNCj4+ICAgICB7DQo+PiAgICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJ
RF9QQVJBTUVURVJTOw0KPj4gKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0RFQlVHLA0KPj4gKyAg
ICAgICAgICAgICAgICAgImZmYTogZGlyZWN0IHJlcSBpbnZhbGlkIHNyYy9kc3QgJSN4XG4iLA0K
Pj4gKyAgICAgICAgICAgICAgICAgKHVpbnQzMl90KXNyY19kc3QpOw0KPj4gICAgICAgICBnb3Rv
IG91dDsNCj4+ICAgICB9DQo+PiANCj4+IEBAIC0xMTUsNiArMTIwLDkgQEAgdm9pZCBmZmFfaGFu
ZGxlX21zZ19zZW5kX2RpcmVjdF9yZXEoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVpbnQz
Ml90IGZpZCkNCj4+ICAgICBpZiAoICFGRkFfSURfSVNfU0VDVVJFKHNyY19kc3QgJiBHRU5NQVNL
KDE1LDApKSApDQo+PiAgICAgew0KPj4gICAgICAgICByZXQgPSBGRkFfUkVUX05PVF9TVVBQT1JU
RUQ7DQo+PiArICAgICAgICBnZHByaW50ayhYRU5MT0dfREVCVUcsDQo+PiArICAgICAgICAgICAg
ICAgICAiZmZhOiBkaXJlY3QgcmVxIHRvIG5vbi1zZWN1cmUgZHN0ICUjeFxuIiwNCj4+ICsgICAg
ICAgICAgICAgICAgICh1aW50MzJfdCkoc3JjX2RzdCAmIEdFTk1BU0soMTUsIDApKSk7DQo+PiAg
ICAgICAgIGdvdG8gb3V0Ow0KPj4gICAgIH0NCj4+IA0KPj4gQEAgLTE2Niw3ICsxNzQsMTIgQEAg
c3RhdGljIGludDMyX3QgZmZhX21zZ19zZW5kMl92bSh1aW50MTZfdCBkc3RfaWQsIGNvbnN0IHZv
aWQgKnNyY19idWYsDQo+PiAgICAgLyogVGhpcyBpcyBhbHNvIGNoZWNraW5nIHRoYXQgZGVzdCBp
cyBub3Qgc3JjICovDQo+PiAgICAgcmV0ID0gZmZhX2VuZHBvaW50X2RvbWFpbl9sb29rdXAoZHN0
X2lkLCAmZHN0X2QsICZkc3RfY3R4KTsNCj4+ICAgICBpZiAoIHJldCApDQo+PiArICAgIHsNCj4+
ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywNCj4+ICsgICAgICAgICAgICAgICAgICJm
ZmE6IG1zZ19zZW5kMiBsb29rdXAgZmFpbGVkOiBkc3QgJSN4IHJldCAlZFxuIiwNCj4+ICsgICAg
ICAgICAgICAgICAgIGRzdF9pZCwgcmV0KTsNCj4+ICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsg
ICAgfQ0KPj4gDQo+PiAgICAgLyogVGhpcyBhbHNvIGNoZWNrcyB0aGF0IGRlc3RpbmF0aW9uIGhh
cyBzZXQgYSBSeCBidWZmZXIgKi8NCj4+ICAgICByZXQgPSBmZmFfcnhfYWNxdWlyZShkc3RfY3R4
ICwgJnJ4X2J1ZiwgJnJ4X3NpemUpOw0KPj4gQEAgLTE5OSw2ICsyMTIsMTIgQEAgc3RhdGljIGlu
dDMyX3QgZmZhX21zZ19zZW5kMl92bSh1aW50MTZfdCBkc3RfaWQsIGNvbnN0IHZvaWQgKnNyY19i
dWYsDQo+PiAgICAgLyogcmVjZWl2ZXIgcnggYnVmZmVyIHdpbGwgYmUgcmVsZWFzZWQgYnkgdGhl
IHJlY2VpdmVyKi8NCj4+IA0KPj4gb3V0X3VubG9jazoNCj4+ICsgICAgaWYgKCByZXQgKQ0KPj4g
KyAgICB7DQo+PiArICAgICAgICBpZiAoIHJldCAhPSBGRkFfUkVUX0JVU1kgfHwgcHJpbnRrX3Jh
dGVsaW1pdCgpICkNCj4gDQo+IFNob3VsZG4ndCB0aGlzIGJlICYmID8NCg0KVGhlIGludGVudCBo
ZXJlIGlzIHRvIGxvZyBhbGwgbm9uIEJVU1kgZXJyb3JzIGJ1dCBvbmx5IGxvZyBCVVNZIHdoZW4g
cmF0ZWxpbWl0IGFsbG93cw0KdG8gcmVkdWNlIHRoZSBhbW91bnQgb2YgbG9ncyBpbiBjYXNlIG9m
IHNvbWVvbmUgcG9sbGluZyB3aGVuIHRoZSByZWNlaXZlciBSWCBidWZmZXINCmlzIGJ1c3kuDQoN
Ck1heWJlIEkgc2hvdWxkIGFkZCBhIGNvbW1lbnQgdG8gbWFrZSB0aGF0IGNsZWFyZXIgPw0KDQpD
aGVlcnMNCkJlcnRyYW5kDQoNCj4gDQo+IENoZWVycywNCj4gSmVucw0KPiANCj4+ICsgICAgICAg
ICAgICBnZHByaW50ayhYRU5MT0dfREVCVUcsICJmZmE6IG1zZ19zZW5kMiB0byAlI3ggZmFpbGVk
OiAlZFxuIiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICBkc3RfaWQsIHJldCk7DQo+PiArICAg
IH0NCj4+ICAgICByY3VfdW5sb2NrX2RvbWFpbihkc3RfZCk7DQo+PiAgICAgaWYgKCAhcmV0ICkN
Cj4+ICAgICAgICAgZmZhX3JhaXNlX3J4X2J1ZmZlcl9mdWxsKGRzdF9kKTsNCj4+IEBAIC0yMjYs
NyArMjQ1LDExIEBAIGludDMyX3QgZmZhX2hhbmRsZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91c2Vy
X3JlZ3MgKnJlZ3MpDQo+PiANCj4+ICAgICByZXQgPSBmZmFfdHhfYWNxdWlyZShzcmNfY3R4LCAm
dHhfYnVmLCAmdHhfc2l6ZSk7DQo+PiAgICAgaWYgKCByZXQgIT0gRkZBX1JFVF9PSyApDQo+PiAr
ICAgIHsNCj4+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywNCj4+ICsgICAgICAgICAg
ICAgICAgICJmZmE6IG1zZ19zZW5kMiBUWCBhY3F1aXJlIGZhaWxlZDogJWRcbiIsIHJldCk7DQo+
PiAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgIH0NCj4+IA0KPj4gICAgIC8qIGNyZWF0ZSBh
IGNvcHkgb2YgdGhlIG1lc3NhZ2UgaGVhZGVyICovDQo+PiAgICAgbWVtY3B5KCZzcmNfbXNnLCB0
eF9idWYsIHNpemVvZihzcmNfbXNnKSk7DQo+PiBAQCAtMjM4LDYgKzI2MSw5IEBAIGludDMyX3Qg
ZmZhX2hhbmRsZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAg
ICAgICBkc3RfaWQgPT0gZmZhX2dldF92bV9pZChzcmNfZCkgKQ0KPj4gICAgIHsNCj4+ICAgICAg
ICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFNRVRFUlM7DQo+PiArICAgICAgICBnZHByaW50
ayhYRU5MT0dfREVCVUcsDQo+PiArICAgICAgICAgICAgICAgICAiZmZhOiBtc2dfc2VuZDIgaW52
YWxpZCBzcmMvZHN0IHNyYyAlI3ggZHN0ICUjeFxuIiwNCj4+ICsgICAgICAgICAgICAgICAgIHNy
Y19pZCwgZHN0X2lkKTsNCj4+ICAgICAgICAgZ290byBvdXQ7DQo+PiAgICAgfQ0KPj4gDQo+PiBA
QCAtMjQ2LDYgKzI3Miw5IEBAIGludDMyX3QgZmZhX2hhbmRsZV9tc2dfc2VuZDIoc3RydWN0IGNw
dV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgICAgIGlmIChzcmNfbXNnLm1zZ19vZmZzZXQgPCBz
aXplb2Yoc3RydWN0IGZmYV9wYXJ0X21zZ19yeHR4XzFfMSkpDQo+PiAgICAgICAgIHsNCj4+ICAg
ICAgICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4gKyAgICAgICAg
ICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAiZmZh
OiBtc2dfc2VuZDIgaW52YWxpZCBtc2dfb2Zmc2V0ICV1ICh2MS4xKVxuIiwNCj4+ICsgICAgICAg
ICAgICAgICAgICAgICBzcmNfbXNnLm1zZ19vZmZzZXQpOw0KPj4gICAgICAgICAgICAgZ290byBv
dXQ7DQo+PiAgICAgICAgIH0NCj4+ICAgICAgICAgLyogU2V0IHV1aWQgdG8gTmlsIFVVSUQgZm9y
IHYxLjEgZ3Vlc3RzICovDQo+PiBAQCAtMjU1LDYgKzI4NCw5IEBAIGludDMyX3QgZmZhX2hhbmRs
ZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgZWxzZSBpZiAo
IHNyY19tc2cubXNnX29mZnNldCA8IHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHhfMV8y
KSApDQo+PiAgICAgew0KPj4gICAgICAgICByZXQgPSBGRkFfUkVUX0lOVkFMSURfUEFSQU1FVEVS
UzsNCj4+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywNCj4+ICsgICAgICAgICAgICAg
ICAgICJmZmE6IG1zZ19zZW5kMiBpbnZhbGlkIG1zZ19vZmZzZXQgJXUgKHYxLjIpXG4iLA0KPj4g
KyAgICAgICAgICAgICAgICAgc3JjX21zZy5tc2dfb2Zmc2V0KTsNCj4+ICAgICAgICAgZ290byBv
dXQ7DQo+PiAgICAgfQ0KPj4gDQo+PiBAQCAtMjYzLDYgKzI5NSw5IEBAIGludDMyX3QgZmZhX2hh
bmRsZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+PiAgICAgICAgICAg
ICBzcmNfbXNnLm1zZ19zaXplID4gKHR4X3NpemUgLSBzcmNfbXNnLm1zZ19vZmZzZXQpICkNCj4+
ICAgICB7DQo+PiAgICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4g
KyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0RFQlVHLA0KPj4gKyAgICAgICAgICAgICAgICAgImZm
YTogbXNnX3NlbmQyIGludmFsaWQgbXNnX3NpemUgJXUgb2Zmc2V0ICV1IHR4ICV6dVxuIiwNCj4+
ICsgICAgICAgICAgICAgICAgIHNyY19tc2cubXNnX3NpemUsIHNyY19tc2cubXNnX29mZnNldCwg
dHhfc2l6ZSk7DQo+PiAgICAgICAgIGdvdG8gb3V0Ow0KPj4gICAgIH0NCj4+IA0KPj4gQEAgLTI3
Miw2ICszMDcsOCBAQCBpbnQzMl90IGZmYV9oYW5kbGVfbXNnX3NlbmQyKHN0cnVjdCBjcHVfdXNl
cl9yZWdzICpyZWdzKQ0KPj4gICAgICAgICBpZiAoICFmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9N
U0dfU0VORDIpICkNCj4+ICAgICAgICAgew0KPj4gICAgICAgICAgICAgcmV0ID0gRkZBX1JFVF9O
T1RfU1VQUE9SVEVEOw0KPj4gKyAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywNCj4+
ICsgICAgICAgICAgICAgICAgICAgICAiZmZhOiBtc2dfc2VuZDIgdG8gU1Agbm90IHN1cHBvcnRl
ZFxuIik7DQo+PiAgICAgICAgICAgICBnb3RvIG91dDsNCj4+ICAgICAgICAgfQ0KPj4gICAgICAg
ICAvKg0KPj4gQEAgLTI4OCw2ICszMjUsOCBAQCBpbnQzMl90IGZmYV9oYW5kbGVfbXNnX3NlbmQy
KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gDQo+PiAgICAgICAgIHJldCA9IGZmYV9z
aW1wbGVfY2FsbChGRkFfTVNHX1NFTkQyLA0KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCh1aW50MzJfdClmZmFfZ2V0X3ZtX2lkKHNyY19kKSkgPDwgMTYsIDAsIDAsIDApOw0KPj4g
KyAgICAgICAgaWYgKCByZXQgKQ0KPj4gKyAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJV
RywgImZmYTogbXNnX3NlbmQyIHRvIFNQIGZhaWxlZDogJWRcbiIsIHJldCk7DQo+PiAgICAgfQ0K
Pj4gICAgIGVsc2UgaWYgKCBJU19FTkFCTEVEKENPTkZJR19GRkFfVk1fVE9fVk0pICkNCj4+ICAg
ICB7DQo+PiBAQCAtMjk1LDcgKzMzNCwxMSBAQCBpbnQzMl90IGZmYV9oYW5kbGVfbXNnX3NlbmQy
KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4gICAgICAgICByZXQgPSBmZmFfbXNnX3Nl
bmQyX3ZtKGRzdF9pZCwgdHhfYnVmLCAmc3JjX21zZyk7DQo+PiAgICAgfQ0KPj4gICAgIGVsc2UN
Cj4+ICsgICAgew0KPj4gICAgICAgICByZXQgPSBGRkFfUkVUX0lOVkFMSURfUEFSQU1FVEVSUzsN
Cj4+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywNCj4+ICsgICAgICAgICAgICAgICAg
ICJmZmE6IG1zZ19zZW5kMiB0byBWTSBkaXNhYmxlZCAoZHN0ICUjeClcbiIsIGRzdF9pZCk7DQo+
PiArICAgIH0NCj4+IA0KPj4gb3V0Og0KPj4gICAgIGZmYV90eF9yZWxlYXNlKHNyY19jdHgpOw0K
Pj4gQEAgLTMxMSw2ICszNTQsNyBAQCB2b2lkIGZmYV9oYW5kbGVfcnVuKHN0cnVjdCBjcHVfdXNl
cl9yZWdzICpyZWdzLCB1aW50MzJfdCBmaWQpDQo+PiAgICAgaWYgKCAhZmZhX2Z3X3N1cHBvcnRz
X2ZpZChmaWQpICkNCj4+ICAgICB7DQo+PiAgICAgICAgIHJldCA9IEZGQV9SRVRfTk9UX1NVUFBP
UlRFRDsNCj4+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywgImZmYTogcnVuIGZpZCAl
I3ggbm90IHN1cHBvcnRlZFxuIiwgZmlkKTsNCj4+ICAgICAgICAgZ290byBvdXQ7DQo+PiAgICAg
fQ0KPj4gDQo+PiBAQCAtMzIyLDYgKzM2Niw3IEBAIHZvaWQgZmZhX2hhbmRsZV9ydW4oc3RydWN0
IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVpbnQzMl90IGZpZCkNCj4+ICAgICBpZiAoICFGRkFfSURf
SVNfU0VDVVJFKGRzdCA+PiAxNikgKQ0KPj4gICAgIHsNCj4+ICAgICAgICAgcmV0ID0gRkZBX1JF
VF9OT1RfU1VQUE9SVEVEOw0KPj4gKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0RFQlVHLCAiZmZh
OiBydW4gdG8gbm9uLXNlY3VyZSBkc3QgJSN4XG4iLCBkc3QpOw0KPj4gICAgICAgICBnb3RvIG91
dDsNCj4+ICAgICB9DQo+PiANCj4+IC0tDQo+PiAyLjUwLjEgKEFwcGxlIEdpdC0xNTUpDQo+PiAN
Cg0K


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:24:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:24:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227433.1533818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9GX-0008WJ-QY; Wed, 11 Feb 2026 12:24:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227433.1533818; Wed, 11 Feb 2026 12:24: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 1vq9GX-0008WC-NZ; Wed, 11 Feb 2026 12:24:21 +0000
Received: by outflank-mailman (input) for mailman id 1227433;
 Wed, 11 Feb 2026 12:24: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vq9GW-0008W6-N6
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:24:20 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9574ae92-0744-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:24:18 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ2PR03MB7166.namprd03.prod.outlook.com (2603:10b6:a03:4f8::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Wed, 11 Feb
 2026 12:24:15 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 12: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: 9574ae92-0744-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M/3jnqMFdCMf/DzYtHEsQrCy7IVt772P6xvFreCf30OktWOJtXYI3bCMFeWF6FXhTbyzmqtVuqORt/rhXe1Bynf+cbWNb+ebEO/bO8/ZXlHQNVZf/uUlYqJkvBg0sX6HsIOtSoE+RDaSQCcqoBDCtiJzEJ3NzGgFRUZVG533dAdnkWikDlDNDn5XVqSFidypSCdOGPDykCWz9niYurMyVq7YxYEDkl+MouHmm7B5bPl8qkYQa0SzXMpfoQimcNEcLDim7+r30kqbQzckgncFfU1vqF/05PK9MJTCSeEBmQCx6/KFww+X4ccXuQHa434SOVTEomXAHGL+RVN0fgMkAQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oe8nDJkQ063EUuKX9Kgyms4o9znzSot29vNm7q0yrkI=;
 b=Udb20abHl74KMc5fsBfzCK/9dHJg1P+opt9qN2eGCgYlxxScvAL3gx85+LMAWgB9Mrd98nb5s6GUMsKfcy3pUmbnCpuKa6swDGk4z+gVcay8yAe7jp+Kbtw94CNsskDkW+Nal1Meb9sBTDaRiYgu7gOEhpiuZDa1h5yfAbQjnU+G9vKktTKg0Z1oi5qUb4e23PVGxuLMzSvLtqYctKUt2yiuj/xnXJPiFFn64MmIfFJX6RsSFkNE+WeVadxgvyFo+waDX+UYSqvySqRK7/7CGr/TpRae3WlwFnB1TXWbi/uuqR42SdTIliXl5i3T4UHMV+SVsnSTqCme0u6htHBHjg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oe8nDJkQ063EUuKX9Kgyms4o9znzSot29vNm7q0yrkI=;
 b=KXpir5ikOJOUtyZmT58jUDEr2YGUCSb+ktbTNWBSXR4Rr1cIS2jmkYP/pkznX4/dQ9mu8EmNW3llpzUvLkdgwMO09S9nYATOQNJAOjACakrtMJF647XAgDexx03ytPQlv+VebMzCBtBPKZc3T3ddD9QHP8opeMrvOXW7ha6AkJU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 11 Feb 2026 13:24:11 +0100
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>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/5] xen/tools: remove usages of `stat -s` in
 check-endbr.sh
Message-ID: <aYx064WIMMNmLAza@Mac.lan>
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-3-roger.pau@citrix.com>
 <35bdb10b-d39d-4e67-9ed8-c0b85ca5bd54@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <35bdb10b-d39d-4e67-9ed8-c0b85ca5bd54@suse.com>
X-ClientProxiedBy: MA3P292CA0008.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::8) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ2PR03MB7166:EE_
X-MS-Office365-Filtering-Correlation-Id: bd188171-c044-4916-76a4-08de6968782c
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?YzQxYXYyeHlpWmdJMFdRYllaZVdnUStpV2JwWURPK000ZTU5RGZBSHVobzJr?=
 =?utf-8?B?dk50c2pGUkFEbDJQcDFsa2pjbmE3RlNNbWlpMllXUkVKK2pOcWdqc0JXK3pn?=
 =?utf-8?B?TzNVc0hrS0FlV1JLVGtNSXFDTG4yU2d2cE12dUwrSFNoZU1ZQ05LVFpxWE8r?=
 =?utf-8?B?ZzNXbHU4cWkrZGRrc1UxdjcrYlJCSTFKalgvT1lxQXZRZnpnT3FOQWI4MnBD?=
 =?utf-8?B?NjF1bkJGeGJLQlNVM3JrSnpjVEFCR1B1STNIOVdBdmdXOExsQlowUmlkdmV2?=
 =?utf-8?B?Wi8yL01tTDFWbXo2TnNaaTBSOS90UE4vODB4cmhWN3NCNnA1T201N3pwZkow?=
 =?utf-8?B?UjBzOEJPV3E3QlY4cWpNb2RjRVRXbnVibFNRUzlBby9yK2RMVkd5UzNNN1BI?=
 =?utf-8?B?V2lJNzJ2UGVHdVdSdWF2TkZpTGNuYkFpdHQzMHZTZjErL3FBeFJLY0VERUpP?=
 =?utf-8?B?Y0N2K3RwL0loTVFUN0FkTFMwWnFPMEZMWnVaNjRXUndKdCs3MGh2dkFaVEpE?=
 =?utf-8?B?aUVJMlFQVmQwT3Q3a0R0WWRSN2ZpOHVSS21BTEd4TXN6STN5U2s4K3QxMHdN?=
 =?utf-8?B?N0I1bWNrYUo4WWhmVnBJdXNSWU9Yd1U1T2ozYURKWWdiN1NFNXJiZEsxcFJw?=
 =?utf-8?B?d09JdGQ3Zzd3UUNSWTZsSVNPcXlIaFQ3cTdrVEZxQXAwYkcybVlLS0xIZW5E?=
 =?utf-8?B?TksvaCtXWnlzdUJXOFl0Y2lqT0NzZFp3NlNSVmpJMno2a1NCcW1TYi8zR084?=
 =?utf-8?B?TmRCdDVrelJIYUVQVU45T1lERFFZU256bTRDNG16R3VZM3FiWVQzNzBTanFC?=
 =?utf-8?B?TEdhZXNGNE0wQ3BpTFpiZ0dha1lIMFJtaExGUVlHbXVtOHh4c3YySmptVkw0?=
 =?utf-8?B?RkNSaExKanI4c0JwTjdTK1dvNGc0M0tZRUdsNjA0eVQ5OHk0L3U5OUc5SWZP?=
 =?utf-8?B?RkRNWEhLSWJjcllFSW16TDJOeXdDRlZnUkNyeGZkMHordWZ6UDB3eFh1bTcz?=
 =?utf-8?B?WkFjdHU2ZjhjN1ZKalNXRXRkMm9sNk5WVWJLQXhJcEEyd0E5a2g1WXpteExP?=
 =?utf-8?B?cGJmcnJBR0JNUllZei9rSmRDSkhVNjk4MHVUT29pUDd4ek9sd210OGZOQmVK?=
 =?utf-8?B?SzlKTFp5d24zZzRWQUhjemt1Tmc5SWd3Z3dyRVloMjBOL2ZNWG9vMGY5QXhK?=
 =?utf-8?B?ZTVacWZzUHJWT1dZOG45UXhDenc4Tm5vTWV2VmpuV3VVV1k1eFhtRmVwd09L?=
 =?utf-8?B?YW9MWTNnekt1WFA1ZHZCWDJYd3ArbXhMQUd3MDk2OEdNMXpURXNJYjk4Zlhj?=
 =?utf-8?B?REpvWHU3enNwdEkvWmdYaDE5SklpWCtvUUlBcFN3VExGR29jZkpWYlB2cFhV?=
 =?utf-8?B?SnM3UmpZOGRjUVh3dlpNc3lTSEY2ckF3alJ4ZWt4d3VrVEQ2WUNXSTA2R0px?=
 =?utf-8?B?VU5UNzAvRnNIWDU1Qzl4Zk8vemhRalhWZ0NRZXBSWlJwVit6UUFGTXlLV2RB?=
 =?utf-8?B?c1hpeEZZczlmWXRHK0NwSzJnc2xhdHNlYjdFS1duQWZ5RUhOZUxNZVlwSFND?=
 =?utf-8?B?R0NPR25RZDlzRERWMTJLRVI0aGlDZysvSVNhRlR1bkpWeTM0ejF3Z09QRlhQ?=
 =?utf-8?B?V2UvUU9acENxczArRFdoVStlaVFjWGMxVXNMNUtMUW5HMWRoNDQydTg5UE1N?=
 =?utf-8?B?Z3o4M2R0UWFNNXlNcmc4d1ByalFvVFdGS1BGSEJUTitKbGpSSmw2UytRVTNZ?=
 =?utf-8?B?eVR2L0hqdlpvd0RjVkVEM3RIallRWXR1YURFdjA5ZmwyeGNPZzV4TFFDTWM0?=
 =?utf-8?B?dkFxMnA2cUtGSVRsR2FJQ0xDU1c1Y2tWYUpGOE1wdENqaWYxZGd3dStUamFF?=
 =?utf-8?B?U3puWW5nUmNqb2dDaVMvNyt6WDVLK0FGOGR1b2o0RzNaU2RIbFN0a1RUM0d6?=
 =?utf-8?B?bHJKN2taaXNjZkZpcmN4WnJWakxsVm91dEE0TWlNUTA2UWtjSzRseDlORDBI?=
 =?utf-8?B?YlBTa2J2VlZMSDVkeVI4cW5EdFc3UTdweS9SSU1reWw2eDR1OWlKS2lzSy9w?=
 =?utf-8?B?aDRBd2tvWHl6Q0VIM0ZEWVUvQzFDcDFVQ3ZwWklTdTBXZCtuRGxDcXh6SHZM?=
 =?utf-8?Q?qvx8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V1FZaDhjUkI4VDRHcUpkVWx5cGdqai9WMWVWdWY5S2k5UGtmTzRoMi9oZzBC?=
 =?utf-8?B?YUYreTNNUEdiM1g3MWxiejh0Mmo5MWRzTVNRdTFPVm1CcG1IaFZsNVR1N29G?=
 =?utf-8?B?TkU3aVFrdEpHcnhXczd3U0pDYlNLZUd1SUQ4bjNPY3JDbFVTVjI0aVAvdmpx?=
 =?utf-8?B?Myt2Q3ViVUxZcjhRYnV6U1orVFlnS2lXdEF1a2NNKytldTZFVW8wcXlhNnJp?=
 =?utf-8?B?SG4wcU0yd3lyY0lyYzY4VERXbUdnVVRKQ0pxR2RlenhqZllyQm5wRXAvb0Uz?=
 =?utf-8?B?ZGJMM091L1l2elNhUVdsOVpYM3Naa21uMmdSVHNIOU1NL3RVSkxKMHhCOHR6?=
 =?utf-8?B?UzVnNkg4cnhHSEIwSXZSVUVMR0pQSWEzT0FXZkp2NDQ1NW02U0M2NEhCYUZN?=
 =?utf-8?B?dnkzYXh1QkNWUUdKMGRVL3llWUpuNUJkTzRMcnNJalMxaG5oLzBla3A5eUJt?=
 =?utf-8?B?d1dDQzlaTnpPekJwdEZldTdKMndmZGNqNVVtZk5MVXdkbUdSYzQzZnRDWG9H?=
 =?utf-8?B?VjJFTGxBWmY1SzIrOGRMcjZGZkhrNzI1akZwU1VwNjhGWmthZWh3c2hlZnlU?=
 =?utf-8?B?b1lDanFrYjNOblplQlEvVjEyK1VUUEFnQjJoR1YwWlU3U1VpdnM1RnJOdnNq?=
 =?utf-8?B?OWErQnkrMy9Ra2dFTXJaNFRkMTFNdFBOVmh2L0VMc3UrbnlXV1lWaThTMTk2?=
 =?utf-8?B?clp3NlFBRHNtMWZSQXIzTmhQUWFoVmFKTk56ZjR1K0JkVG96N1Ria0hnZmNU?=
 =?utf-8?B?WFEzYXpIYi9ZYWJQOEpYVjZkeFNnNHRFU040NU5jZnVRcVF0c0RkaEV4bFVU?=
 =?utf-8?B?OUlMQlM5Y1pES3ppdUlhWEFab3dvd2x2b0pVaU0yNWdRNkpWSWxHdDNqd0Vt?=
 =?utf-8?B?emNZTzZmYVBJcUI0T2FPKzROSzRVNkltVkRXQ1B6bGIzTmxmbWh5eEVvNlFL?=
 =?utf-8?B?b0JENTdSWjdpbmk0R2lqY1AwWVR1TDBwYkEvUzJFMk92b1Z5NG1KczZLV21H?=
 =?utf-8?B?QkROc2NvNE1kVDVBTXNoM1NYNWZxQ1JvK2ZkbEpTdXJOVzc2ZDB6R3poakVJ?=
 =?utf-8?B?Tk4xMm4vM3BnKzRraEUySEF2NVF6NnNqUi9scER2V3AzQkVMS0ViMUJlL1JZ?=
 =?utf-8?B?TUxaaFJ1bU5xZ1IzcDJFUklNUm9tNm9RN0MvM09zTkttdi9HNTZrenZrU3ZK?=
 =?utf-8?B?Sys3OEh1N1hubkFxcUluU2ovaC9HMDlwOTJzWld6NVlXaVVhd1oyQStJeVV1?=
 =?utf-8?B?WnVDczhkTWdmM2JpMDZqTDhVamF2QXdEUXlmc21lbmtHaGIwKytCNitRWnJ1?=
 =?utf-8?B?ZmpoVndaN0xleTBBa0pyajJrd1ZoMUdTbTRTeGJIcGZzZEVXc2lVaGpmM0V1?=
 =?utf-8?B?SHRYNkp6OG1SREdscmJkVFhCclVWbU1LSzB2QWI0dENTSnJuTEd5UEIzMlFP?=
 =?utf-8?B?RXBUNjFJNVdxclVLWFhGSmUvUlZQdC81cWRyR2VHK0piQTAzZ1RmMUlPM3N4?=
 =?utf-8?B?bzQ0WlVrWWpCRkEwVXJJNFJuL01IMkYwRkZCRVNiY2thZGFsenRabzdrT0s0?=
 =?utf-8?B?d01zM1cwbVdWcnpjK2ppUXFUalBxUllyOWZPeEdXdWhSNi9lZU5hWDdLMXRm?=
 =?utf-8?B?RnlnQ2plcG5QL2tHN1NpVHEvcnJSa3hVYnpvdkZGSVlzU2NoVDFKUHJKenZQ?=
 =?utf-8?B?NGxiQnYyL3FTT0wzbFFpaGo2TmJ4bnJtYmJWYnZvL080WXdmcDFVSDBuSysz?=
 =?utf-8?B?MjRFaWxYZ08vamRNS1dlMFFLVzJBb1AwYzZLeHNWUnI4RkRNRWY4YXhzNm95?=
 =?utf-8?B?Ui8yVGcyaEQ5OUtkU1orbTBpdzFKYjAvd2xXcmNZYU1QN0ptREp6ZXVNV0JL?=
 =?utf-8?B?UnRIMG1GR2hpd0VEN0w1blBlMkNSeXVjeTVoaWdRQ2hjYmtId0VGNkFxNmFt?=
 =?utf-8?B?eGNVaGl2NTlTR1d4L3A3QkJnaEpHYmlYTHkzanRFTEN4eisxK0x0QjZPSElE?=
 =?utf-8?B?RVUxelVkSlR0dk5kQjdvUzhvdnNPN0dQTUFzdWZmQjVzUVF4eUx4Z3kxTURr?=
 =?utf-8?B?SlFCMTB6ejVJMTR5WnhyZkk2TzhQaXdJeDEzbGUyY2hKTlN0dEFxWE05dFpr?=
 =?utf-8?B?Ui8zeHRLb0tGL0Q0RVUrZDc1Z21KVkxpcmpwYS9ZdVhYOEQ0YkdJYzlWNGJ6?=
 =?utf-8?B?STYyM2c4b01MMlhZOWlmQjJWRmQ3Y2JZenpGc2dRNDdiaFpQMFJrelpYcVNH?=
 =?utf-8?B?dXBENnZyRlJDbDNOVFJRSTZUZzNWN2xPUldGUFBXS3ZObU53Vjc1bXdUY2ox?=
 =?utf-8?B?cVVWRVBacGh0OVJIOE16MmhVTk5RRWZPM1hrUjBxY3RCaTBmVmNsZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bd188171-c044-4916-76a4-08de6968782c
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 12:24:14.8585
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: a6MYDfg9Qt1jGDdOjirUgY99x/ZB6N6u7t5vxmGrikx8G416PJl1rgBarPEqINaOZLQ29BesJHehMy1+s1jPWw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7166

On Wed, Feb 11, 2026 at 12:40:58PM +0100, Jan Beulich wrote:
> On 11.02.2026 11:46, Roger Pau Monne wrote:
> > The `-s` option to stat is not POSIX compatible, and hence prevents the
> > check-endbr.sh script from running reliably.
> > 
> > The first instance of `stat -s` can be removed by fetching the section size
> > from the output of objdump itself, which the script already parses to get
> > the VMA values.
> 
> In both paragraphs, s/-s/-c/ ?

Bah, yes.

> > The other two instances can be replaced by counting the lines in the
> > respective files.  Those files contain list of addresses, so the size in
> > bytes is not strictly needed, we can count the number of lines instead.
> 
> Hmm, indeed, just that ...
> 
> > --- a/xen/tools/check-endbr.sh
> > +++ b/xen/tools/check-endbr.sh
> > @@ -92,14 +92,15 @@ ${OBJDUMP} -j .text $1 -d -w | grep '	endbr64 *$' | cut -f 1 -d ':' > $VALID &
> >  #    check nevertheless.
> >  #
> >  eval $(${OBJDUMP} -j .text $1 -h |
> > -    $AWK '$2 == ".text" {printf "vma_hi=%s\nvma_lo=%s\n", substr($4, 1, 9), substr($4, 10, 16)}')
> > +    $AWK '$2 == ".text" {printf "bin_sz=%s\nvma_hi=%s\nvma_lo=%s\n", "0x" $3, substr($4, 1, 9), substr($4, 10, 16)}')
> >  
> > -${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
> > -
> > -bin_sz=$(stat -c '%s' $TEXT_BIN)
> > +# Convert objdump hex reported .text size to decimal
> > +bin_sz=$(printf %u $bin_sz)
> 
> (Alternatively without this line, but ...
> 
> >  [ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&
> 
> [ "$(($bin_sz))" -ge $(((1 << 28) - $vma_lo)) ] &&
> 
> ?)

Isn't that bash-specific functionality?  The script interpreter is set
as /bin/sh.

> >      { echo "$MSG_PFX Error: .text offsets must not exceed 256M" >&2; exit 1; }
> >  
> > +${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
> > +
> >  # instruction:    hex:           oct:
> >  # endbr64         f3 0f 1e fa    363 017 036 372
> >  # endbr32         f3 0f 1e fb    363 017 036 373
> > @@ -116,8 +117,8 @@ fi | $AWK -F':' '{printf "%s%07x\n", "'$vma_hi'", int('$((0x$vma_lo))') + $1}' >
> >  wait
> >  
> >  # Sanity check $VALID and $ALL, in case the string parsing bitrots
> > -val_sz=$(stat -c '%s' $VALID)
> > -all_sz=$(stat -c '%s' $ALL)
> > +val_sz=$(wc -l < $VALID)
> > +all_sz=$(wc -l < $ALL)
> >  [ "$val_sz" -eq 0 ]         && { echo "$MSG_PFX Error: Empty valid-addrs" >&2; exit 1; }
> >  [ "$all_sz" -eq 0 ]         && { echo "$MSG_PFX Error: Empty all-addrs" >&2; exit 1; }
> >  [ "$all_sz" -lt "$val_sz" ] && { echo "$MSG_PFX Error: More valid-addrs than all-addrs" >&2; exit 1; }
> 
> ... the variables' _sz suffixes then end up a little misleading. Not sure
> in how far we care. Perhaps not enough to warrant the bigger churn:
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> (with the description adjustment).

I could rename to _lines or some such, but I didn't see much benefit.
If you don't have a strong opinion towards renaming I will leave
as-is.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:30:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:30:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227445.1533831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9MN-0001nx-En; Wed, 11 Feb 2026 12:30:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227445.1533831; Wed, 11 Feb 2026 12:30:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9MN-0001nq-C2; Wed, 11 Feb 2026 12:30:23 +0000
Received: by outflank-mailman (input) for mailman id 1227445;
 Wed, 11 Feb 2026 12: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9ML-0001nh-QF
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:30:21 +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 6ca6f490-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:30:19 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-373-31_9MFcgNwi-1OT-_RHVTg-1; Wed,
 11 Feb 2026 07:30:14 -0500
Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 6D5361800366; Wed, 11 Feb 2026 12:30:12 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id C076619560A3; Wed, 11 Feb 2026 12: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: 6ca6f490-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813018;
	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=kzn58S0lNfEjMqYO60adMvk7cCAhn0+RWpF0wuFs9kY=;
	b=H2FBtrXvoCOE51RxyId7/cIHCABPgYz8p6+CH54f6Ks8ZTfORimwjYST4vhn+FbfaDTOtA
	M+tYzdLSzhOEeml+ERTRbVtkRSQAxauJmPJd1CjxnxQaHm6d7GplyGMufWYrwhPIA/MCEv
	ZLugnt/BKiatdK9pn429+qixr+3RzRU=
X-MC-Unique: 31_9MFcgNwi-1OT-_RHVTg-1
X-Mimecast-MFC-AGG-ID: 31_9MFcgNwi-1OT-_RHVTg_1770813013
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>
Subject: [PULL 00/14] Char patches
Date: Wed, 11 Feb 2026 16:29:47 +0400
Message-ID: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12
X-Mimecast-MFC-PROC-ID: j0U4zGGTPhwc0D8JHgOUYas0o2a1c6YcOeAOtEfDIzI_1770813013
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

From: Marc-André Lureau <marcandre.lureau@redhat.com>

The following changes since commit 0b91040d23dc8820724a60c811223b777f3bc6b7:

  Merge tag 'pull-loongarch-20260210' of https://github.com/gaosong715/qemu into staging (2026-02-10 09:12:38 +0000)

are available in the Git repository at:

  https://gitlab.com/marcandre.lureau/qemu.git tags/char-pull-request

for you to fetch changes up to 72913e8b8ef10071965d43349516d0e7f19a959d:

  chardev: add logtimestamp option (2026-02-11 16:27:18 +0400)

----------------------------------------------------------------
chardev patches

----------------------------------------------------------------

Eric K (1):
  char-udp: Fix initial backend open status

Vladimir Sementsov-Ogievskiy (13):
  ui/spice: Require spice-server >= 0.15.0
  ui/spice: drop SPICE_HAS_ATTACHED_WORKER macro
  chardev: ChardevClass: consistent naming for handlers
  chardev: consistent naming for ChardevClass handlers implementations
  chardev: .chr_open(): drop be_opened parameter
  chardev: .chr_open(): add boolean return value
  chardev/char-pty: store pty_name into PtyChardev state
  chardev: introduce .chr_get_pty_name() handler
  chardev: rework filename handling
  chardev/char: qemu_char_open(): add return value
  char: qemu_chr_write_log() use qemu_write_full()
  error-report: make real_time_iso8601() public
  chardev: add logtimestamp option

 meson.build                                   |   2 +-
 qapi/char.json                                |   6 +-
 include/chardev/char.h                        |  23 ++-
 include/qemu/error-report.h                   |   6 +
 include/ui/qemu-spice.h                       |   6 -
 chardev/baum.c                                |  12 +-
 chardev/char-console.c                        |  10 +-
 chardev/char-fe.c                             |   8 +-
 chardev/char-file.c                           |  26 ++--
 chardev/char-hub.c                            |  27 ++--
 chardev/char-mux.c                            |  30 ++--
 chardev/char-null.c                           |   9 +-
 chardev/char-parallel.c                       |  41 +++---
 chardev/char-pipe.c                           |  30 ++--
 chardev/char-pty.c                            |  56 ++++---
 chardev/char-ringbuf.c                        |  20 +--
 chardev/char-serial.c                         |  39 ++---
 chardev/char-socket.c                         |  73 ++++------
 chardev/char-stdio.c                          |  30 ++--
 chardev/char-udp.c                            |  18 +--
 chardev/char-win-stdio.c                      |  25 ++--
 chardev/char.c                                | 137 ++++++++++++------
 chardev/msmouse.c                             |  13 +-
 chardev/spice.c                               |  52 +++----
 chardev/wctablet.c                            |  10 +-
 gdbstub/system.c                              |  12 +-
 hw/char/xen_console.c                         |   7 +-
 hw/display/qxl.c                              |  23 +--
 hw/misc/ivshmem-pci.c                         |   7 +-
 tests/unit/test-char.c                        |   2 +
 ui/console-vc.c                               |  12 +-
 ui/dbus-chardev.c                             |  16 +-
 ui/dbus.c                                     |   4 +-
 ui/gtk.c                                      |  14 +-
 ui/spice-app.c                                |  18 +--
 ui/spice-display.c                            |  19 +--
 ui/vdagent.c                                  |  17 +--
 util/error-report.c                           |   3 +-
 .../codeconverter/test_regexps.py             |   2 +-
 39 files changed, 437 insertions(+), 428 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:30:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:30:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227446.1533842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9MR-00022F-Kw; Wed, 11 Feb 2026 12:30:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227446.1533842; Wed, 11 Feb 2026 12: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 1vq9MR-000228-IG; Wed, 11 Feb 2026 12:30:27 +0000
Received: by outflank-mailman (input) for mailman id 1227446;
 Wed, 11 Feb 2026 12:30: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9MP-0001nh-QF
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:30:25 +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 7024e63f-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:30:25 +0100 (CET)
Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-65-AMhWbVJWNvKZZaJjRa3M1w-1; Wed,
 11 Feb 2026 07:30:20 -0500
Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 54D9918003FC; Wed, 11 Feb 2026 12:30:18 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id A0C611956056; Wed, 11 Feb 2026 12:30: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: 7024e63f-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813023;
	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=LGj9xk/Pm83KB03G6LVj5ElLZzoxkSGN+CQtNgApbDQ=;
	b=NTzxXaF/dqhF7rO7lTRBGTdc9cQth5htbc9b25uTkkiVJhpeTL2nTW2KZzjv1IIThXuK25
	Djcmaosh72zv+ctf47a+xu8CDYy2OGhB9eid5ybLygVDPWN+CyBLDho531zQVSludb7s+Z
	78UxVU6uBZ/rGb8/iuq4aFHezlSYjy4=
X-MC-Unique: AMhWbVJWNvKZZaJjRa3M1w-1
X-Mimecast-MFC-AGG-ID: AMhWbVJWNvKZZaJjRa3M1w_1770813018
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Eric K <erickra@cs.utexas.edu>
Subject: [PULL 01/14] char-udp: Fix initial backend open status
Date: Wed, 11 Feb 2026 16:29:48 +0400
Message-ID: <20260211123007.3569932-2-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17
X-Mimecast-MFC-PROC-ID: rQbXHHOJa2k9xHdIpfE5LbVHQ99WRIDPJ52gohL9nHo_1770813018
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Eric K <erickra@cs.utexas.edu>

This patch removes the `*be_opened = false` override for the UDP chardev
backend. Since UDP is connectionless it never sends a `CHR_EVENT_OPENED`
so it is never marked open. This causes some frontends (e.g. virtio-serial)
to never perform any operations on the socket.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2993
Signed-off-by: Eric K <erickra@cs.utexas.edu>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20251208225849.705554-1-erickra@cs.utexas.edu>
---
 chardev/char-udp.c     | 2 --
 tests/unit/test-char.c | 2 ++
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 572fab0ad13..1025f577a0d 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -215,8 +215,6 @@ static void qmp_chardev_open_udp(Chardev *chr,
     g_free(name);
 
     s->ioc = QIO_CHANNEL(sioc);
-    /* be isn't opened until we get a connection */
-    *be_opened = false;
 }
 
 static void char_udp_class_init(ObjectClass *oc, const void *data)
diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c
index 8a98e42cad0..2869c4e09df 100644
--- a/tests/unit/test-char.c
+++ b/tests/unit/test-char.c
@@ -1012,6 +1012,8 @@ static void char_udp_test_internal(Chardev *reuse_chr, int sock)
         qemu_chr_fe_init(fe, chr, &error_abort);
     }
 
+    g_assert(chr->be_open);
+
     d.chr = chr;
     qemu_chr_fe_set_handlers(fe, socket_can_read_hello, socket_read_hello,
                              NULL, NULL, &d, NULL, true);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:30:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:30:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227447.1533852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9MU-0002Ib-T8; Wed, 11 Feb 2026 12:30:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227447.1533852; Wed, 11 Feb 2026 12:30: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 1vq9MU-0002IL-PM; Wed, 11 Feb 2026 12:30:30 +0000
Received: by outflank-mailman (input) for mailman id 1227447;
 Wed, 11 Feb 2026 12:30: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9MT-0001nh-Kb
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:30:29 +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 721b9526-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:30:28 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-372-KX-bclq4MP2GmkzEZbJ6MA-1; Wed,
 11 Feb 2026 07:30:25 -0500
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id C3A5D180025C; Wed, 11 Feb 2026 12:30:23 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 4D1A3180066F; Wed, 11 Feb 2026 12:30: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: 721b9526-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813027;
	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=cGBq4qMkI/q12TmIhq+tbmp2Snz+Rz/20mUay39k8ag=;
	b=FHRdi0ClHZ5J9lxznEJoELYW/3/R3fJlQzdKwCiQyQm253TS1bCuWG6gRA1vkxspbg9lce
	IIcGyIc8jIQSuhvpuVLNzVe0UcCZBEAiJU01S63h9JFL7a3/jexGU2LFGqBv3TUFMs0nID
	RYJJOwuWZCZqYB2cGFgBOp2I0p/mwMQ=
X-MC-Unique: KX-bclq4MP2GmkzEZbJ6MA-1
X-Mimecast-MFC-AGG-ID: KX-bclq4MP2GmkzEZbJ6MA_1770813024
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 02/14] ui/spice: Require spice-server >= 0.15.0
Date: Wed, 11 Feb 2026 16:29:49 +0400
Message-ID: <20260211123007.3569932-3-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: VoCalRhe8zsb_DYcXXzNBMoSURMpIyTnQ_Lqv3Pf_68_1770813024
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

For major distributions we have now:

    Debian 13: 0.15.2
    Ubuntu 22.04: 0.15.0
    RHEL-9/CentOS Stream 9: SPICE is removed
    Fedora 42: 0.15.1
    OpenSUSE Leap 15.4: 0.15.0

Time to update the dependancy in QEMU and drop almost all
SPICE_SERVER_VERSION checks.

Suggested-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-2-vsementsov@yandex-team.ru>
---
 meson.build             |  2 +-
 include/ui/qemu-spice.h |  4 ----
 chardev/spice.c         |  6 ------
 hw/display/qxl.c        | 11 ++---------
 ui/spice-display.c      |  8 ++------
 5 files changed, 5 insertions(+), 26 deletions(-)

diff --git a/meson.build b/meson.build
index 2d114e90184..9c12e0db601 100644
--- a/meson.build
+++ b/meson.build
@@ -1320,7 +1320,7 @@ if get_option('spice') \
              .require(pixman.found(),
                       error_message: 'cannot enable SPICE if pixman is not available') \
              .allowed()
-  spice = dependency('spice-server', version: '>=0.14.0',
+  spice = dependency('spice-server', version: '>=0.15.0',
                      required: get_option('spice'),
                      method: 'pkg-config')
 endif
diff --git a/include/ui/qemu-spice.h b/include/ui/qemu-spice.h
index b7d493742c4..8e5e6b2a744 100644
--- a/include/ui/qemu-spice.h
+++ b/include/ui/qemu-spice.h
@@ -34,11 +34,7 @@ int qemu_spice_add_display_interface(QXLInstance *qxlin, QemuConsole *con);
 int qemu_spice_migrate_info(const char *hostname, int port, int tls_port,
                             const char *subject);
 
-#if SPICE_SERVER_VERSION >= 0x000f00 /* release 0.15.0 */
 #define SPICE_HAS_ATTACHED_WORKER 1
-#else
-#define SPICE_HAS_ATTACHED_WORKER 0
-#endif
 
 #else  /* CONFIG_SPICE */
 
diff --git a/chardev/spice.c b/chardev/spice.c
index db53b49da26..39b79d60fb4 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -278,12 +278,6 @@ static void qemu_chr_open_spice_vmc(Chardev *chr,
     }
 
     *be_opened = false;
-#if SPICE_SERVER_VERSION < 0x000e02
-    /* Spice < 0.14.2 doesn't explicitly open smartcard chardev */
-    if (strcmp(type, "smartcard") == 0) {
-        *be_opened = true;
-    }
-#endif
     chr_open(chr, type);
 }
 
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index f29b736722c..fbba02113f7 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -261,11 +261,6 @@ static void qxl_spice_monitors_config_async(PCIQXLDevice *qxl, int replay)
                     QXL_COOKIE_TYPE_POST_LOAD_MONITORS_CONFIG,
                     0));
     } else {
-#if SPICE_SERVER_VERSION < 0x000e02 /* release 0.14.2 */
-        if (qxl->max_outputs) {
-            spice_qxl_set_max_monitors(&qxl->ssd.qxl, qxl->max_outputs);
-        }
-#endif
         qxl->guest_monitors_config = qxl->ram->monitors_config;
         spice_qxl_monitors_config_async(&qxl->ssd.qxl,
                 qxl->ram->monitors_config,
@@ -2109,6 +2104,8 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
     uint8_t* config = qxl->pci.config;
     uint32_t pci_device_rev;
     uint32_t io_size;
+    Error *err = NULL;
+    char device_address[256] = "";
 
     qemu_spice_display_init_common(&qxl->ssd);
     qxl->mode = QXL_MODE_UNDEFINED;
@@ -2208,9 +2205,6 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
         return;
     }
 
-#if SPICE_SERVER_VERSION >= 0x000e02 /* release 0.14.2 */
-    Error *err = NULL;
-    char device_address[256] = "";
     if (qemu_console_fill_device_address(qxl->vga.con,
                                          device_address, sizeof(device_address),
                                          &err)) {
@@ -2221,7 +2215,6 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
     } else {
         error_report_err(err);
     }
-#endif
 
     qemu_add_vm_change_state_handler(qxl_vm_change_state_handler, qxl);
 
diff --git a/ui/spice-display.c b/ui/spice-display.c
index db71e866f89..f2304bb0ce2 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -689,13 +689,11 @@ static int interface_client_monitors_config(QXLInstance *sin,
     if (mc->num_of_monitors > head) {
         info.width  = mc->monitors[head].width;
         info.height = mc->monitors[head].height;
-#if SPICE_SERVER_VERSION >= 0x000e04 /* release 0.14.4 */
         if (mc->flags & VD_AGENT_CONFIG_MONITORS_FLAG_PHYSICAL_SIZE) {
             VDAgentMonitorMM *mm = (void *)&mc->monitors[mc->num_of_monitors];
             info.width_mm = mm[head].width;
             info.height_mm = mm[head].height;
         }
-#endif
     }
 
     trace_qemu_spice_ui_info(ssd->qxl.id, info.width, info.height);
@@ -1393,6 +1391,8 @@ static const DisplayGLCtxOps gl_ctx_ops = {
 static void qemu_spice_display_init_one(QemuConsole *con)
 {
     SimpleSpiceDisplay *ssd = g_new0(SimpleSpiceDisplay, 1);
+    Error *err = NULL;
+    char device_address[256] = "";
 
     qemu_spice_display_init_common(ssd);
 
@@ -1414,9 +1414,6 @@ static void qemu_spice_display_init_one(QemuConsole *con)
     ssd->qxl.base.sif = &dpy_interface.base;
     qemu_spice_add_display_interface(&ssd->qxl, con);
 
-#if SPICE_SERVER_VERSION >= 0x000e02 /* release 0.14.2 */
-    Error *err = NULL;
-    char device_address[256] = "";
     if (qemu_console_fill_device_address(con, device_address, 256, &err)) {
         spice_qxl_set_device_info(&ssd->qxl,
                                   device_address,
@@ -1425,7 +1422,6 @@ static void qemu_spice_display_init_one(QemuConsole *con)
     } else {
         error_report_err(err);
     }
-#endif
 
     qemu_spice_create_host_memslot(ssd);
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:30:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:30:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227451.1533862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Md-0002gf-C8; Wed, 11 Feb 2026 12:30:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227451.1533862; Wed, 11 Feb 2026 12: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 1vq9Md-0002gX-8R; Wed, 11 Feb 2026 12:30:39 +0000
Received: by outflank-mailman (input) for mailman id 1227451;
 Wed, 11 Feb 2026 12:30: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9Mb-00016c-U3
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:30:37 +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 76b4253e-0745-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 13:30:36 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-480-CFV2PrjpPRWNUIY43HdbbQ-1; Wed,
 11 Feb 2026 07:30:31 -0500
Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id A5ECE1800613; Wed, 11 Feb 2026 12:30:29 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id B359B19560A3; Wed, 11 Feb 2026 12:30: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: 76b4253e-0745-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813034;
	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=y3G7pz3JVMFqRvpJ05R+kBwpJ0ObSQg4ak0FyKLiTE8=;
	b=VvDhOnybq1ZVO7LCm/vinOPqPmTxt6NdMM58lr/hzBR8YzbXk1ikiUKtkbYGS7A09Deo66
	gkzek2z33VU0y1uKu9+a+8Jj//hNylZxdB1V4KnxCBNMnLBNG3n4Vn1yADBSK0hx7rS2RC
	JqgpBUniIz8QCcaLM7Z7M0FZPQ8Iju4=
X-MC-Unique: CFV2PrjpPRWNUIY43HdbbQ-1
X-Mimecast-MFC-AGG-ID: CFV2PrjpPRWNUIY43HdbbQ_1770813030
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 03/14] ui/spice: drop SPICE_HAS_ATTACHED_WORKER macro
Date: Wed, 11 Feb 2026 16:29:50 +0400
Message-ID: <20260211123007.3569932-4-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12
X-Mimecast-MFC-PROC-ID: -q37x9RyfgxChA-RHDLxik9_cW0YOs0SZRY4Sl8UhGs_1770813030
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Since previous commit it is always 1. Let's just drop it.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-3-vsementsov@yandex-team.ru>
---
 include/ui/qemu-spice.h |  2 --
 hw/display/qxl.c        | 12 ------------
 ui/spice-display.c      | 11 -----------
 3 files changed, 25 deletions(-)

diff --git a/include/ui/qemu-spice.h b/include/ui/qemu-spice.h
index 8e5e6b2a744..111a09ceca3 100644
--- a/include/ui/qemu-spice.h
+++ b/include/ui/qemu-spice.h
@@ -34,8 +34,6 @@ int qemu_spice_add_display_interface(QXLInstance *qxlin, QemuConsole *con);
 int qemu_spice_migrate_info(const char *hostname, int port, int tls_port,
                             const char *subject);
 
-#define SPICE_HAS_ATTACHED_WORKER 1
-
 #else  /* CONFIG_SPICE */
 
 #include "qemu/error-report.h"
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index fbba02113f7..0551b38230b 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -530,13 +530,6 @@ static void interface_attached_worker(QXLInstance *sin)
     trace_qxl_interface_attach_worker(qxl->id);
 }
 
-#if !(SPICE_HAS_ATTACHED_WORKER)
-static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker)
-{
-    interface_attached_worker(sin);
-}
-#endif
-
 static void interface_set_compression_level(QXLInstance *sin, int level)
 {
     PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
@@ -1131,12 +1124,7 @@ static const QXLInterface qxl_interface = {
     .base.major_version      = SPICE_INTERFACE_QXL_MAJOR,
     .base.minor_version      = SPICE_INTERFACE_QXL_MINOR,
 
-#if SPICE_HAS_ATTACHED_WORKER
     .attached_worker         = interface_attached_worker,
-#else
-    .attache_worker          = interface_attach_worker,
-#endif
-
     .set_compression_level   = interface_set_compression_level,
     .get_init_info           = interface_get_init_info,
 
diff --git a/ui/spice-display.c b/ui/spice-display.c
index f2304bb0ce2..28399f8a817 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -507,17 +507,10 @@ void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)
 
 /* spice display interface callbacks */
 
-#if SPICE_HAS_ATTACHED_WORKER
 static void interface_attached_worker(QXLInstance *sin)
 {
     /* nothing to do */
 }
-#else
-static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker)
-{
-    /* nothing to do */
-}
-#endif
 
 static void interface_set_compression_level(QXLInstance *sin, int level)
 {
@@ -707,11 +700,7 @@ static const QXLInterface dpy_interface = {
     .base.major_version      = SPICE_INTERFACE_QXL_MAJOR,
     .base.minor_version      = SPICE_INTERFACE_QXL_MINOR,
 
-#if SPICE_HAS_ATTACHED_WORKER
     .attached_worker         = interface_attached_worker,
-#else
-    .attache_worker          = interface_attach_worker,
-#endif
     .set_compression_level   = interface_set_compression_level,
     .get_init_info           = interface_get_init_info,
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:30:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:30:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227458.1533872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Mk-0003DU-Lp; Wed, 11 Feb 2026 12:30:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227458.1533872; Wed, 11 Feb 2026 12: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 1vq9Mk-0003DI-HG; Wed, 11 Feb 2026 12:30:46 +0000
Received: by outflank-mailman (input) for mailman id 1227458;
 Wed, 11 Feb 2026 12: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9Mi-0001nh-N2
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:30: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 7b48442a-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:30:43 +0100 (CET)
Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-152-9f3tISB3O9Sfw3hm94Ys_Q-1; Wed,
 11 Feb 2026 07:30:39 -0500
Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 5F12018002EB; Wed, 11 Feb 2026 12:30:37 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 5B8511800464; Wed, 11 Feb 2026 12:30: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: 7b48442a-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813042;
	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=K/EYv/wOL3z8Ia2Topl38iZZVA139L2JWNE4O9fOHA4=;
	b=h1LkKvU6O5Dl6QgcxGWy36IBF0xZpwGByIcoRBQ1qNRyXAiYGndE0JJvr4MbPeQFN05slB
	95x/MKx7H9wK12ReGbgMoPiUVGoItgGPonq8jZAL+eyvIQiQV6TRWOsrQ0eUitr6UxPhl4
	4q4CxaIdpMdT+lg389Hl+BMM2fZ4iQk=
X-MC-Unique: 9f3tISB3O9Sfw3hm94Ys_Q-1
X-Mimecast-MFC-AGG-ID: 9f3tISB3O9Sfw3hm94Ys_Q_1770813037
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 04/14] chardev: ChardevClass: consistent naming for handlers
Date: Wed, 11 Feb 2026 16:29:51 +0400
Message-ID: <20260211123007.3569932-5-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111
X-Mimecast-MFC-PROC-ID: y2z_rBTN_of1Yo9f7bEablhaXyvOchsCj89_W0_kFBo_1770813037
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Most handlers have name prefixed with "chr_". That's a good practice
which helps to grep them. Convert the rest: .parse, .open,
get/set_msgfds.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-4-vsementsov@yandex-team.ru>
---
 include/chardev/char.h                              | 8 ++++----
 chardev/baum.c                                      | 2 +-
 chardev/char-console.c                              | 2 +-
 chardev/char-fe.c                                   | 8 ++++----
 chardev/char-file.c                                 | 4 ++--
 chardev/char-hub.c                                  | 4 ++--
 chardev/char-mux.c                                  | 4 ++--
 chardev/char-null.c                                 | 2 +-
 chardev/char-parallel.c                             | 4 ++--
 chardev/char-pipe.c                                 | 4 ++--
 chardev/char-pty.c                                  | 4 ++--
 chardev/char-ringbuf.c                              | 4 ++--
 chardev/char-serial.c                               | 4 ++--
 chardev/char-socket.c                               | 8 ++++----
 chardev/char-stdio.c                                | 4 ++--
 chardev/char-udp.c                                  | 4 ++--
 chardev/char-win-stdio.c                            | 2 +-
 chardev/char.c                                      | 8 ++++----
 chardev/msmouse.c                                   | 2 +-
 chardev/spice.c                                     | 8 ++++----
 chardev/wctablet.c                                  | 2 +-
 gdbstub/system.c                                    | 2 +-
 ui/console-vc.c                                     | 4 ++--
 ui/dbus-chardev.c                                   | 8 ++++----
 ui/dbus.c                                           | 4 ++--
 ui/gtk.c                                            | 2 +-
 ui/spice-app.c                                      | 6 +++---
 ui/vdagent.c                                        | 4 ++--
 scripts/codeconverter/codeconverter/test_regexps.py | 2 +-
 29 files changed, 62 insertions(+), 62 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index 192cad67d41..d33833b6c02 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -257,10 +257,10 @@ struct ChardevClass {
     bool supports_yank;
 
     /* parse command line options and populate QAPI @backend */
-    void (*parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
+    void (*chr_parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
 
     /* called after construction, open/starts the backend */
-    void (*open)(Chardev *chr, ChardevBackend *backend,
+    void (*chr_open)(Chardev *chr, ChardevBackend *backend,
                  bool *be_opened, Error **errp);
 
     /* write buf to the backend */
@@ -282,10 +282,10 @@ struct ChardevClass {
     int (*chr_ioctl)(Chardev *s, int cmd, void *arg);
 
     /* get ancillary-received fds during last read */
-    int (*get_msgfds)(Chardev *s, int* fds, int num);
+    int (*chr_get_msgfds)(Chardev *s, int* fds, int num);
 
     /* set ancillary fds to be sent with next write */
-    int (*set_msgfds)(Chardev *s, int *fds, int num);
+    int (*chr_set_msgfds)(Chardev *s, int *fds, int num);
 
     /* accept the given fd */
     int (*chr_add_client)(Chardev *chr, int fd);
diff --git a/chardev/baum.c b/chardev/baum.c
index 157f8b95195..75e41965c11 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -676,7 +676,7 @@ static void char_braille_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = baum_chr_open;
+    cc->chr_open = baum_chr_open;
     cc->chr_write = baum_chr_write;
     cc->chr_accept_input = baum_chr_accept_input;
 }
diff --git a/chardev/char-console.c b/chardev/char-console.c
index 7e1bf642ebd..9a2e012d53f 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -38,7 +38,7 @@ static void char_console_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = qemu_chr_open_win_con;
+    cc->chr_open = qemu_chr_open_win_con;
 }
 
 static const TypeInfo char_console_type_info = {
diff --git a/chardev/char-fe.c b/chardev/char-fe.c
index 34b83fc1c4a..a44f2673731 100644
--- a/chardev/char-fe.c
+++ b/chardev/char-fe.c
@@ -130,8 +130,8 @@ int qemu_chr_fe_get_msgfds(CharFrontend *c, int *fds, int len)
         return -1;
     }
 
-    return CHARDEV_GET_CLASS(s)->get_msgfds ?
-        CHARDEV_GET_CLASS(s)->get_msgfds(s, fds, len) : -1;
+    return CHARDEV_GET_CLASS(s)->chr_get_msgfds ?
+        CHARDEV_GET_CLASS(s)->chr_get_msgfds(s, fds, len) : -1;
 }
 
 int qemu_chr_fe_set_msgfds(CharFrontend *c, int *fds, int num)
@@ -142,8 +142,8 @@ int qemu_chr_fe_set_msgfds(CharFrontend *c, int *fds, int num)
         return -1;
     }
 
-    return CHARDEV_GET_CLASS(s)->set_msgfds ?
-        CHARDEV_GET_CLASS(s)->set_msgfds(s, fds, num) : -1;
+    return CHARDEV_GET_CLASS(s)->chr_set_msgfds ?
+        CHARDEV_GET_CLASS(s)->chr_set_msgfds(s, fds, num) : -1;
 }
 
 void qemu_chr_fe_accept_input(CharFrontend *c)
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 1f7adf592ff..1e293e7054a 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -133,8 +133,8 @@ static void char_file_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_file_out;
-    cc->open = qmp_chardev_open_file;
+    cc->chr_parse = qemu_chr_parse_file_out;
+    cc->chr_open = qmp_chardev_open_file;
 }
 
 static const TypeInfo char_file_type_info = {
diff --git a/chardev/char-hub.c b/chardev/char-hub.c
index d0967c22336..082baa84ab8 100644
--- a/chardev/char-hub.c
+++ b/chardev/char-hub.c
@@ -276,8 +276,8 @@ static void char_hub_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_hub;
-    cc->open = qemu_chr_open_hub;
+    cc->chr_parse = qemu_chr_parse_hub;
+    cc->chr_open = qemu_chr_open_hub;
     cc->chr_write = hub_chr_write;
     cc->chr_add_watch = hub_chr_add_watch;
     /* We handle events from backends only */
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index db9e89f441d..c82c2da56dd 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -451,8 +451,8 @@ static void char_mux_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_mux;
-    cc->open = qemu_chr_open_mux;
+    cc->chr_parse = qemu_chr_parse_mux;
+    cc->chr_open = qemu_chr_open_mux;
     cc->chr_write = mux_chr_write;
     cc->chr_accept_input = mux_chr_accept_input;
     cc->chr_add_watch = mux_chr_add_watch;
diff --git a/chardev/char-null.c b/chardev/char-null.c
index 89cb85da792..674603b3807 100644
--- a/chardev/char-null.c
+++ b/chardev/char-null.c
@@ -38,7 +38,7 @@ static void char_null_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = null_chr_open;
+    cc->chr_open = null_chr_open;
 }
 
 static const TypeInfo char_null_type_info = {
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index 62a44b2f969..a0839b784b8 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -274,8 +274,8 @@ static void char_parallel_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_parallel;
-    cc->open = qmp_chardev_open_parallel;
+    cc->chr_parse = qemu_chr_parse_parallel;
+    cc->chr_open = qmp_chardev_open_parallel;
     cc->chr_ioctl = pp_ioctl;
 }
 
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index e9f3bb82904..a2cd322efe6 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -182,8 +182,8 @@ static void char_pipe_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_pipe;
-    cc->open = qemu_chr_open_pipe;
+    cc->chr_parse = qemu_chr_parse_pipe;
+    cc->chr_open = qemu_chr_open_pipe;
 }
 
 static const TypeInfo char_pipe_type_info = {
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 652b0bd9e73..1a15082b025 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -394,8 +394,8 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = char_pty_parse;
-    cc->open = char_pty_open;
+    cc->chr_parse = char_pty_parse;
+    cc->chr_open = char_pty_open;
     cc->chr_write = char_pty_chr_write;
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index 98aadb6acfb..6d5ba667bb4 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -227,8 +227,8 @@ static void char_ringbuf_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_ringbuf;
-    cc->open = qemu_chr_open_ringbuf;
+    cc->chr_parse = qemu_chr_parse_ringbuf;
+    cc->chr_open = qemu_chr_open_ringbuf;
     cc->chr_write = ringbuf_chr_write;
 }
 
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 4c6ca713eb1..97ed7adf736 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -305,8 +305,8 @@ static void char_serial_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_serial;
-    cc->open = qmp_chardev_open_serial;
+    cc->chr_parse = qemu_chr_parse_serial;
+    cc->chr_open = qmp_chardev_open_serial;
 #ifndef _WIN32
     cc->chr_ioctl = tty_serial_ioctl;
 #endif
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 3f45dd2ecdc..149a6d8cc15 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1585,14 +1585,14 @@ static void char_socket_class_init(ObjectClass *oc, const void *data)
 
     cc->supports_yank = true;
 
-    cc->parse = qemu_chr_parse_socket;
-    cc->open = qmp_chardev_open_socket;
+    cc->chr_parse = qemu_chr_parse_socket;
+    cc->chr_open = qmp_chardev_open_socket;
     cc->chr_wait_connected = tcp_chr_wait_connected;
     cc->chr_write = tcp_chr_write;
     cc->chr_sync_read = tcp_chr_sync_read;
     cc->chr_disconnect = tcp_chr_disconnect;
-    cc->get_msgfds = tcp_get_msgfds;
-    cc->set_msgfds = tcp_set_msgfds;
+    cc->chr_get_msgfds = tcp_get_msgfds;
+    cc->chr_set_msgfds = tcp_set_msgfds;
     cc->chr_add_client = tcp_chr_add_client;
     cc->chr_add_watch = tcp_chr_add_watch;
     cc->chr_update_read_handler = tcp_chr_update_read_handler;
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index 2568164a108..b7e9af1388f 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -142,9 +142,9 @@ static void char_stdio_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_stdio;
+    cc->chr_parse = qemu_chr_parse_stdio;
 #ifndef _WIN32
-    cc->open = qemu_chr_open_stdio;
+    cc->chr_open = qemu_chr_open_stdio;
     cc->chr_set_echo = qemu_chr_set_echo_stdio;
 #endif
 }
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 1025f577a0d..71b8d8b37df 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -221,8 +221,8 @@ static void char_udp_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_udp;
-    cc->open = qmp_chardev_open_udp;
+    cc->chr_parse = qemu_chr_parse_udp;
+    cc->chr_open = qmp_chardev_open_udp;
     cc->chr_write = udp_chr_write;
     cc->chr_update_read_handler = udp_chr_update_read_handler;
 }
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index fb802a00b13..26e67aef1ca 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -260,7 +260,7 @@ static void char_win_stdio_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = qemu_chr_open_stdio;
+    cc->chr_open = qemu_chr_open_stdio;
     cc->chr_write = win_stdio_write;
     cc->chr_set_echo = qemu_chr_set_echo_win_stdio;
 }
diff --git a/chardev/char.c b/chardev/char.c
index 3e432195a5a..df37d1df161 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -267,8 +267,8 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend,
         }
     }
 
-    if (cc->open) {
-        cc->open(chr, backend, be_opened, errp);
+    if (cc->chr_open) {
+        cc->chr_open(chr, backend, be_opened, errp);
     }
 }
 
@@ -604,8 +604,8 @@ ChardevBackend *qemu_chr_parse_opts(QemuOpts *opts, Error **errp)
     backend = g_new0(ChardevBackend, 1);
     backend->type = CHARDEV_BACKEND_KIND_NULL;
 
-    if (cc->parse) {
-        cc->parse(opts, backend, &local_err);
+    if (cc->chr_parse) {
+        cc->chr_parse(opts, backend, &local_err);
         if (local_err) {
             error_propagate(errp, local_err);
             qapi_free_ChardevBackend(backend);
diff --git a/chardev/msmouse.c b/chardev/msmouse.c
index 1a55755d397..84050164893 100644
--- a/chardev/msmouse.c
+++ b/chardev/msmouse.c
@@ -271,7 +271,7 @@ static void char_msmouse_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = msmouse_chr_open;
+    cc->chr_open = msmouse_chr_open;
     cc->chr_write = msmouse_chr_write;
     cc->chr_accept_input = msmouse_chr_accept_input;
     cc->chr_ioctl = msmouse_ioctl;
diff --git a/chardev/spice.c b/chardev/spice.c
index 39b79d60fb4..61caa6d0efe 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -364,8 +364,8 @@ static void char_spicevmc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_spice_vmc;
-    cc->open = qemu_chr_open_spice_vmc;
+    cc->chr_parse = qemu_chr_parse_spice_vmc;
+    cc->chr_open = qemu_chr_open_spice_vmc;
     cc->chr_set_fe_open = spice_vmc_set_fe_open;
 }
 
@@ -380,8 +380,8 @@ static void char_spiceport_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_spice_port;
-    cc->open = qemu_chr_open_spice_port;
+    cc->chr_parse = qemu_chr_parse_spice_port;
+    cc->chr_open = qemu_chr_open_spice_port;
     cc->chr_set_fe_open = spice_port_set_fe_open;
 }
 
diff --git a/chardev/wctablet.c b/chardev/wctablet.c
index 0dc6ef08f59..8285a56e7bc 100644
--- a/chardev/wctablet.c
+++ b/chardev/wctablet.c
@@ -346,7 +346,7 @@ static void wctablet_chr_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = wctablet_chr_open;
+    cc->chr_open = wctablet_chr_open;
     cc->chr_write = wctablet_chr_write;
     cc->chr_ioctl = wctablet_chr_ioctl;
     cc->chr_accept_input = wctablet_chr_accept_input;
diff --git a/gdbstub/system.c b/gdbstub/system.c
index 8ec8b7ea336..29b9e16a908 100644
--- a/gdbstub/system.c
+++ b/gdbstub/system.c
@@ -244,7 +244,7 @@ static void char_gdb_class_init(ObjectClass *oc, const void *data)
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
     cc->internal = true;
-    cc->open = gdb_monitor_open;
+    cc->chr_open = gdb_monitor_open;
     cc->chr_write = gdb_monitor_write;
 }
 
diff --git a/ui/console-vc.c b/ui/console-vc.c
index 830842064d6..931068d43ab 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -1185,8 +1185,8 @@ static void char_vc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = vc_chr_parse;
-    cc->open = vc_chr_open;
+    cc->chr_parse = vc_chr_parse;
+    cc->chr_open = vc_chr_open;
     cc->chr_write = vc_chr_write;
     cc->chr_accept_input = vc_chr_accept_input;
     cc->chr_set_echo = vc_chr_set_echo;
diff --git a/ui/dbus-chardev.c b/ui/dbus-chardev.c
index d05dddaf81b..f6c426e2209 100644
--- a/ui/dbus-chardev.c
+++ b/ui/dbus-chardev.c
@@ -205,12 +205,12 @@ dbus_chr_open(Chardev *chr, ChardevBackend *backend,
     opts = qemu_opts_create(qemu_find_opts("chardev"), NULL, 0, &error_abort);
     qemu_opt_set(opts, "server", "on", &error_abort);
     qemu_opt_set(opts, "wait", "off", &error_abort);
-    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->parse(
+    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_parse(
         opts, be, errp);
     if (*errp) {
         return;
     }
-    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->open(
+    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_open(
         chr, be, be_opened, errp);
 }
 
@@ -274,8 +274,8 @@ char_dbus_class_init(ObjectClass *oc, const void *data)
     DBusChardevClass *klass = DBUS_CHARDEV_CLASS(oc);
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = dbus_chr_parse;
-    cc->open = dbus_chr_open;
+    cc->chr_parse = dbus_chr_parse;
+    cc->chr_open = dbus_chr_open;
     cc->chr_set_fe_open = dbus_chr_set_fe_open;
     cc->chr_set_echo = dbus_chr_set_echo;
     klass->parent_chr_be_event = cc->chr_be_event;
diff --git a/ui/dbus.c b/ui/dbus.c
index d2dff332585..31f6eb1189f 100644
--- a/ui/dbus.c
+++ b/ui/dbus.c
@@ -451,8 +451,8 @@ dbus_vc_class_init(ObjectClass *oc, const void *data)
     DBusVCClass *klass = DBUS_VC_CLASS(oc);
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    klass->parent_parse = cc->parse;
-    cc->parse = dbus_vc_parse;
+    klass->parent_parse = cc->chr_parse;
+    cc->chr_parse = dbus_vc_parse;
 }
 
 static const TypeInfo dbus_vc_type_info = {
diff --git a/ui/gtk.c b/ui/gtk.c
index e83a3666258..6217e9552e3 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1985,7 +1985,7 @@ static void char_gd_vc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = gd_vc_open;
+    cc->chr_open = gd_vc_open;
     cc->chr_write = gd_vc_chr_write;
     cc->chr_accept_input = gd_vc_chr_accept_input;
     cc->chr_set_echo = gd_vc_chr_set_echo;
diff --git a/ui/spice-app.c b/ui/spice-app.c
index 24f78f305c4..ea0b62a22b7 100644
--- a/ui/spice-app.c
+++ b/ui/spice-app.c
@@ -106,10 +106,10 @@ static void char_vc_class_init(ObjectClass *oc, const void *data)
     VCChardevClass *vc = CHARDEV_VC_CLASS(oc);
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    vc->parent_open = cc->open;
+    vc->parent_open = cc->chr_open;
 
-    cc->parse = vc_chr_parse;
-    cc->open = vc_chr_open;
+    cc->chr_parse = vc_chr_parse;
+    cc->chr_open = vc_chr_open;
     cc->chr_set_echo = vc_chr_set_echo;
 }
 
diff --git a/ui/vdagent.c b/ui/vdagent.c
index 142a3691ac9..090771ab171 100644
--- a/ui/vdagent.c
+++ b/ui/vdagent.c
@@ -924,8 +924,8 @@ static void vdagent_chr_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse            = vdagent_chr_parse;
-    cc->open             = vdagent_chr_open;
+    cc->chr_parse        = vdagent_chr_parse;
+    cc->chr_open         = vdagent_chr_open;
     cc->chr_write        = vdagent_chr_write;
     cc->chr_set_fe_open  = vdagent_chr_set_fe_open;
     cc->chr_accept_input = vdagent_chr_accept_input;
diff --git a/scripts/codeconverter/codeconverter/test_regexps.py b/scripts/codeconverter/codeconverter/test_regexps.py
index b00e9ef15b2..d3a5cc3ad38 100644
--- a/scripts/codeconverter/codeconverter/test_regexps.py
+++ b/scripts/codeconverter/codeconverter/test_regexps.py
@@ -57,7 +57,7 @@ def fullmatch(regexp, s):
 
     print(RE_TYPEINFO_START)
     assert re.search(RE_TYPEINFO_START, r'''
-    cc->open = qmp_chardev_open_file;
+    cc->chr_open = qmp_chardev_open_file;
 }
 
 static const TypeInfo char_file_type_info = {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:30:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:30:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227468.1533882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Mp-0003cE-30; Wed, 11 Feb 2026 12:30:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227468.1533882; Wed, 11 Feb 2026 12: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 1vq9Mo-0003bz-VV; Wed, 11 Feb 2026 12:30:50 +0000
Received: by outflank-mailman (input) for mailman id 1227468;
 Wed, 11 Feb 2026 12: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9Mn-0001nh-Gb
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:30:49 +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 7e056fb0-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:30:48 +0100 (CET)
Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-696-zHKrClWFPBOizOCdyanCjA-1; Wed,
 11 Feb 2026 07:30:45 -0500
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 97CA3180034A; Wed, 11 Feb 2026 12:30:43 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 0AAFE1800671; Wed, 11 Feb 2026 12:30: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: 7e056fb0-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813047;
	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=6UIUvqKAVHmKYMD5HBaon7fRgToMxwvi5ehZIc//TG8=;
	b=FzfoXfEnlO8opgcPShRvpqQ9Q2xMUOGOz8X3Me3sYIU4/128sQyAagN+gxiiYhZjB6ZsPD
	ALu6lmxxUbjQb5MF/Yuxzd4KnR+Ys87HP66bwcFWvuvFBAkNxgrn6FBv/HOhTL7slhplEH
	NvLg2T/VOHOj4SrPYG/KQRLckZ8hisg=
X-MC-Unique: zHKrClWFPBOizOCdyanCjA-1
X-Mimecast-MFC-AGG-ID: zHKrClWFPBOizOCdyanCjA_1770813044
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 05/14] chardev: consistent naming for ChardevClass handlers implementations
Date: Wed, 11 Feb 2026 16:29:52 +0400
Message-ID: <20260211123007.3569932-6-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: 0BcZdT8t_rvHGJUwOwzpeb2gQKhqSJiEo8pQEgtOM00_1770813044
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Most handlers implementations has name like {unit_name}_{handler_name},
which is usual and well-recognized pattern. Convert the rest (especially
with useless qemu_ prefixes and misleading qmp_ prefixes) to the common
pattern.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-5-vsementsov@yandex-team.ru>
---
 chardev/char-console.c                        | 10 ++---
 chardev/char-file.c                           | 16 ++++----
 chardev/char-hub.c                            | 15 ++++---
 chardev/char-mux.c                            | 15 ++++---
 chardev/char-parallel.c                       | 28 ++++++-------
 chardev/char-pipe.c                           | 24 +++++------
 chardev/char-pty.c                            | 19 +++++----
 chardev/char-ringbuf.c                        | 16 ++++----
 chardev/char-serial.c                         | 28 ++++++-------
 chardev/char-socket.c                         | 25 ++++++------
 chardev/char-stdio.c                          | 22 +++++-----
 chardev/char-udp.c                            | 15 ++++---
 chardev/char-win-stdio.c                      | 20 +++++-----
 chardev/msmouse.c                             |  4 +-
 chardev/spice.c                               | 40 +++++++++----------
 gdbstub/system.c                              |  8 ++--
 ui/gtk.c                                      |  4 +-
 .../codeconverter/test_regexps.py             |  2 +-
 18 files changed, 153 insertions(+), 158 deletions(-)

diff --git a/chardev/char-console.c b/chardev/char-console.c
index 9a2e012d53f..f3ef1a7748c 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -26,10 +26,10 @@
 #include "chardev/char-win.h"
 #include "qemu/module.h"
 
-static void qemu_chr_open_win_con(Chardev *chr,
-                                  ChardevBackend *backend,
-                                  bool *be_opened,
-                                  Error **errp)
+static void console_chr_open(Chardev *chr,
+                             ChardevBackend *backend,
+                             bool *be_opened,
+                             Error **errp)
 {
     win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
 }
@@ -38,7 +38,7 @@ static void char_console_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_open = qemu_chr_open_win_con;
+    cc->chr_open = console_chr_open;
 }
 
 static const TypeInfo char_console_type_info = {
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 1e293e7054a..568600bb7c4 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -34,10 +34,10 @@
 #include "chardev/char-fd.h"
 #endif
 
-static void qmp_chardev_open_file(Chardev *chr,
-                                  ChardevBackend *backend,
-                                  bool *be_opened,
-                                  Error **errp)
+static void file_chr_open(Chardev *chr,
+                          ChardevBackend *backend,
+                          bool *be_opened,
+                          Error **errp)
 {
     ChardevFile *file = backend->u.file.data;
 #ifdef _WIN32
@@ -102,8 +102,8 @@ static void qmp_chardev_open_file(Chardev *chr,
 #endif
 }
 
-static void qemu_chr_parse_file_out(QemuOpts *opts, ChardevBackend *backend,
-                                    Error **errp)
+static void file_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                           Error **errp)
 {
     const char *path = qemu_opt_get(opts, "path");
     const char *inpath = qemu_opt_get(opts, "input-path");
@@ -133,8 +133,8 @@ static void char_file_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_file_out;
-    cc->chr_open = qmp_chardev_open_file;
+    cc->chr_parse = file_chr_parse;
+    cc->chr_open = file_chr_open;
 }
 
 static const TypeInfo char_file_type_info = {
diff --git a/chardev/char-hub.c b/chardev/char-hub.c
index 082baa84ab8..11556dfa72b 100644
--- a/chardev/char-hub.c
+++ b/chardev/char-hub.c
@@ -203,10 +203,10 @@ static void hub_chr_update_read_handlers(Chardev *chr)
     }
 }
 
-static void qemu_chr_open_hub(Chardev *chr,
-                                 ChardevBackend *backend,
-                                 bool *be_opened,
-                                 Error **errp)
+static void hub_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     ChardevHub *hub = backend->u.hub.data;
     HubChardev *d = HUB_CHARDEV(chr);
@@ -245,8 +245,7 @@ static void qemu_chr_open_hub(Chardev *chr,
     *be_opened = false;
 }
 
-static void qemu_chr_parse_hub(QemuOpts *opts, ChardevBackend *backend,
-                                  Error **errp)
+static void hub_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     ChardevHub *hub;
     strList **tail;
@@ -276,8 +275,8 @@ static void char_hub_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_hub;
-    cc->chr_open = qemu_chr_open_hub;
+    cc->chr_parse = hub_chr_parse;
+    cc->chr_open = hub_chr_open;
     cc->chr_write = hub_chr_write;
     cc->chr_add_watch = hub_chr_add_watch;
     /* We handle events from backends only */
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index c82c2da56dd..f38d66b21f1 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -361,10 +361,10 @@ void mux_set_focus(Chardev *chr, unsigned int focus)
     mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
 }
 
-static void qemu_chr_open_mux(Chardev *chr,
-                              ChardevBackend *backend,
-                              bool *be_opened,
-                              Error **errp)
+static void mux_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     ChardevMux *mux = backend->u.mux.data;
     Chardev *drv;
@@ -384,8 +384,7 @@ static void qemu_chr_open_mux(Chardev *chr,
     qemu_chr_fe_init(&d->chr, drv, errp);
 }
 
-static void qemu_chr_parse_mux(QemuOpts *opts, ChardevBackend *backend,
-                               Error **errp)
+static void mux_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     const char *chardev = qemu_opt_get(opts, "chardev");
     ChardevMux *mux;
@@ -451,8 +450,8 @@ static void char_mux_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_mux;
-    cc->chr_open = qemu_chr_open_mux;
+    cc->chr_parse = mux_chr_parse;
+    cc->chr_open = mux_chr_open;
     cc->chr_write = mux_chr_write;
     cc->chr_accept_input = mux_chr_accept_input;
     cc->chr_add_watch = mux_chr_add_watch;
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index a0839b784b8..1be1ef46292 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -70,7 +70,7 @@ static int pp_hw_mode(ParallelChardev *s, uint16_t mode)
     return 1;
 }
 
-static int pp_ioctl(Chardev *chr, int cmd, void *arg)
+static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
     int fd = drv->fd;
@@ -157,7 +157,7 @@ static int pp_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void qemu_chr_open_pp_fd(Chardev *chr,
+static void parallel_chr_open_fd(Chardev *chr,
                                 int fd,
                                 bool *be_opened,
                                 Error **errp)
@@ -185,7 +185,7 @@ typedef struct {
 #define PARALLEL_CHARDEV(obj)                                   \
     OBJECT_CHECK(ParallelChardev, (obj), TYPE_CHARDEV_PARALLEL)
 
-static int pp_ioctl(Chardev *chr, int cmd, void *arg)
+static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
     uint8_t b;
@@ -227,7 +227,7 @@ static int pp_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void qemu_chr_open_pp_fd(Chardev *chr,
+static void parallel_chr_open_fd(Chardev *chr,
                                 int fd,
                                 bool *be_opened,
                                 Error **errp)
@@ -239,10 +239,10 @@ static void qemu_chr_open_pp_fd(Chardev *chr,
 #endif
 
 #ifdef HAVE_CHARDEV_PARALLEL
-static void qmp_chardev_open_parallel(Chardev *chr,
-                                      ChardevBackend *backend,
-                                      bool *be_opened,
-                                      Error **errp)
+static void parallel_chr_open(Chardev *chr,
+                              ChardevBackend *backend,
+                              bool *be_opened,
+                              Error **errp)
 {
     ChardevHostdev *parallel = backend->u.parallel.data;
     int fd;
@@ -251,11 +251,11 @@ static void qmp_chardev_open_parallel(Chardev *chr,
     if (fd < 0) {
         return;
     }
-    qemu_chr_open_pp_fd(chr, fd, be_opened, errp);
+    parallel_chr_open_fd(chr, fd, be_opened, errp);
 }
 
-static void qemu_chr_parse_parallel(QemuOpts *opts, ChardevBackend *backend,
-                                    Error **errp)
+static void parallel_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                               Error **errp)
 {
     const char *device = qemu_opt_get(opts, "path");
     ChardevHostdev *parallel;
@@ -274,9 +274,9 @@ static void char_parallel_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_parallel;
-    cc->chr_open = qmp_chardev_open_parallel;
-    cc->chr_ioctl = pp_ioctl;
+    cc->chr_parse = parallel_chr_parse;
+    cc->chr_open = parallel_chr_open;
+    cc->chr_ioctl = parallel_chr_ioctl;
 }
 
 static void char_parallel_finalize(Object *obj)
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index a2cd322efe6..e84492d42b6 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -103,10 +103,10 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
     return -1;
 }
 
-static void qemu_chr_open_pipe(Chardev *chr,
-                               ChardevBackend *backend,
-                               bool *be_opened,
-                               Error **errp)
+static void pipe_chr_open(Chardev *chr,
+                          ChardevBackend *backend,
+                          bool *be_opened,
+                          Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     const char *filename = opts->device;
@@ -118,10 +118,10 @@ static void qemu_chr_open_pipe(Chardev *chr,
 
 #else
 
-static void qemu_chr_open_pipe(Chardev *chr,
-                               ChardevBackend *backend,
-                               bool *be_opened,
-                               Error **errp)
+static void pipe_chr_open(Chardev *chr,
+                          ChardevBackend *backend,
+                          bool *be_opened,
+                          Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     int fd_in, fd_out;
@@ -162,8 +162,8 @@ static void qemu_chr_open_pipe(Chardev *chr,
 
 #endif /* !_WIN32 */
 
-static void qemu_chr_parse_pipe(QemuOpts *opts, ChardevBackend *backend,
-                                Error **errp)
+static void pipe_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                           Error **errp)
 {
     const char *device = qemu_opt_get(opts, "path");
     ChardevHostdev *dev;
@@ -182,8 +182,8 @@ static void char_pipe_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_pipe;
-    cc->chr_open = qemu_chr_open_pipe;
+    cc->chr_parse = pipe_chr_parse;
+    cc->chr_open = pipe_chr_open;
 }
 
 static const TypeInfo char_pipe_type_info = {
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 1a15082b025..909ab01f5f2 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -105,7 +105,7 @@ static void pty_chr_update_read_handler(Chardev *chr)
     }
 }
 
-static int char_pty_chr_write(Chardev *chr, const uint8_t *buf, int len)
+static int pty_chr_write(Chardev *chr, const uint8_t *buf, int len)
 {
     PtyChardev *s = PTY_CHARDEV(chr);
     GPollFD pfd;
@@ -331,10 +331,10 @@ static int qemu_openpty_raw(int *aslave, char *pty_name)
     return amaster;
 }
 
-static void char_pty_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void pty_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     PtyChardev *s;
     int master_fd, slave_fd;
@@ -378,8 +378,7 @@ static void char_pty_open(Chardev *chr,
     }
 }
 
-static void char_pty_parse(QemuOpts *opts, ChardevBackend *backend,
-                           Error **errp)
+static void pty_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     const char *path = qemu_opt_get(opts, "path");
     ChardevPty *pty;
@@ -394,9 +393,9 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = char_pty_parse;
-    cc->chr_open = char_pty_open;
-    cc->chr_write = char_pty_chr_write;
+    cc->chr_parse = pty_chr_parse;
+    cc->chr_open = pty_chr_open;
+    cc->chr_write = pty_chr_write;
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
 }
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index 6d5ba667bb4..19652fe2b3a 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -92,10 +92,10 @@ static void char_ringbuf_finalize(Object *obj)
     g_free(d->cbuf);
 }
 
-static void qemu_chr_open_ringbuf(Chardev *chr,
-                                  ChardevBackend *backend,
-                                  bool *be_opened,
-                                  Error **errp)
+static void ringbuf_chr_open(Chardev *chr,
+                             ChardevBackend *backend,
+                             bool *be_opened,
+                             Error **errp)
 {
     ChardevRingbuf *opts = backend->u.ringbuf.data;
     RingBufChardev *d = RINGBUF_CHARDEV(chr);
@@ -206,8 +206,8 @@ char *qmp_ringbuf_read(const char *device, int64_t size,
     return data;
 }
 
-static void qemu_chr_parse_ringbuf(QemuOpts *opts, ChardevBackend *backend,
-                                   Error **errp)
+static void ringbuf_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                              Error **errp)
 {
     int val;
     ChardevRingbuf *ringbuf;
@@ -227,8 +227,8 @@ static void char_ringbuf_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_ringbuf;
-    cc->chr_open = qemu_chr_open_ringbuf;
+    cc->chr_parse = ringbuf_chr_parse;
+    cc->chr_open = ringbuf_chr_open;
     cc->chr_write = ringbuf_chr_write;
 }
 
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 97ed7adf736..54c2b3935cf 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -41,10 +41,10 @@
 
 #ifdef _WIN32
 
-static void qmp_chardev_open_serial(Chardev *chr,
-                                    ChardevBackend *backend,
-                                    bool *be_opened,
-                                    Error **errp)
+static void serial_chr_open(Chardev *chr,
+                            ChardevBackend *backend,
+                            bool *be_opened,
+                            Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
 
@@ -176,7 +176,7 @@ static void tty_serial_init(int fd, int speed,
     tcsetattr(fd, TCSANOW, &tty);
 }
 
-static int tty_serial_ioctl(Chardev *chr, int cmd, void *arg)
+static int serial_chr_ioctl(Chardev *chr, int cmd, void *arg)
 {
     FDChardev *s = FD_CHARDEV(chr);
     QIOChannelFile *fioc = QIO_CHANNEL_FILE(s->ioc_in);
@@ -258,10 +258,10 @@ static int tty_serial_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void qmp_chardev_open_serial(Chardev *chr,
-                                    ChardevBackend *backend,
-                                    bool *be_opened,
-                                    Error **errp)
+static void serial_chr_open(Chardev *chr,
+                            ChardevBackend *backend,
+                            bool *be_opened,
+                            Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
     int fd;
@@ -285,8 +285,8 @@ static void qmp_chardev_open_serial(Chardev *chr,
 #endif /* __linux__ || __sun__ */
 
 #ifdef HAVE_CHARDEV_SERIAL
-static void qemu_chr_parse_serial(QemuOpts *opts, ChardevBackend *backend,
-                                  Error **errp)
+static void serial_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                             Error **errp)
 {
     const char *device = qemu_opt_get(opts, "path");
     ChardevHostdev *serial;
@@ -305,10 +305,10 @@ static void char_serial_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_serial;
-    cc->chr_open = qmp_chardev_open_serial;
+    cc->chr_parse = serial_chr_parse;
+    cc->chr_open = serial_chr_open;
 #ifndef _WIN32
-    cc->chr_ioctl = tty_serial_ioctl;
+    cc->chr_ioctl = serial_chr_ioctl;
 #endif
 }
 
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 149a6d8cc15..a3203f2f97b 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -222,7 +222,7 @@ static void tcp_chr_process_IAC_bytes(Chardev *chr,
     *size = j;
 }
 
-static int tcp_get_msgfds(Chardev *chr, int *fds, int num)
+static int tcp_chr_get_msgfds(Chardev *chr, int *fds, int num)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
 
@@ -248,7 +248,7 @@ static int tcp_get_msgfds(Chardev *chr, int *fds, int num)
     return to_copy;
 }
 
-static int tcp_set_msgfds(Chardev *chr, int *fds, int num)
+static int tcp_chr_set_msgfds(Chardev *chr, int *fds, int num)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
 
@@ -367,7 +367,7 @@ static void tcp_chr_free_connection(Chardev *chr)
 
     remove_hup_source(s);
 
-    tcp_set_msgfds(chr, NULL, 0);
+    tcp_chr_set_msgfds(chr, NULL, 0);
     remove_fd_in_watch(chr);
     if (s->registered_yank &&
         (s->state == TCP_CHARDEV_STATE_CONNECTING
@@ -1365,10 +1365,10 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
 }
 
 
-static void qmp_chardev_open_socket(Chardev *chr,
-                                    ChardevBackend *backend,
-                                    bool *be_opened,
-                                    Error **errp)
+static void tcp_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
     ChardevSocket *sock = backend->u.socket.data;
@@ -1456,8 +1456,7 @@ static void qmp_chardev_open_socket(Chardev *chr,
     }
 }
 
-static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
-                                  Error **errp)
+static void tcp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     const char *path = qemu_opt_get(opts, "path");
     const char *host = qemu_opt_get(opts, "host");
@@ -1585,14 +1584,14 @@ static void char_socket_class_init(ObjectClass *oc, const void *data)
 
     cc->supports_yank = true;
 
-    cc->chr_parse = qemu_chr_parse_socket;
-    cc->chr_open = qmp_chardev_open_socket;
+    cc->chr_parse = tcp_chr_parse;
+    cc->chr_open = tcp_chr_open;
     cc->chr_wait_connected = tcp_chr_wait_connected;
     cc->chr_write = tcp_chr_write;
     cc->chr_sync_read = tcp_chr_sync_read;
     cc->chr_disconnect = tcp_chr_disconnect;
-    cc->chr_get_msgfds = tcp_get_msgfds;
-    cc->chr_set_msgfds = tcp_set_msgfds;
+    cc->chr_get_msgfds = tcp_chr_get_msgfds;
+    cc->chr_set_msgfds = tcp_chr_set_msgfds;
     cc->chr_add_client = tcp_chr_add_client;
     cc->chr_add_watch = tcp_chr_add_watch;
     cc->chr_update_read_handler = tcp_chr_update_read_handler;
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index b7e9af1388f..f0920a23faa 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -56,7 +56,7 @@ static void term_exit(void)
     }
 }
 
-static void qemu_chr_set_echo_stdio(Chardev *chr, bool echo)
+static void stdio_chr_set_echo(Chardev *chr, bool echo)
 {
     struct termios tty;
 
@@ -82,13 +82,13 @@ static void qemu_chr_set_echo_stdio(Chardev *chr, bool echo)
 static void term_stdio_handler(int sig)
 {
     /* restore echo after resume from suspend. */
-    qemu_chr_set_echo_stdio(NULL, stdio_echo_state);
+    stdio_chr_set_echo(NULL, stdio_echo_state);
 }
 
-static void qemu_chr_open_stdio(Chardev *chr,
-                                ChardevBackend *backend,
-                                bool *be_opened,
-                                Error **errp)
+static void stdio_chr_open(Chardev *chr,
+                           ChardevBackend *backend,
+                           bool *be_opened,
+                           Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
     struct sigaction act;
@@ -122,11 +122,11 @@ static void qemu_chr_open_stdio(Chardev *chr,
     sigaction(SIGCONT, &act, NULL);
 
     stdio_allow_signal = !opts->has_signal || opts->signal;
-    qemu_chr_set_echo_stdio(chr, false);
+    stdio_chr_set_echo(chr, false);
 }
 #endif
 
-static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
+static void stdio_chr_parse(QemuOpts *opts, ChardevBackend *backend,
                                  Error **errp)
 {
     ChardevStdio *stdio;
@@ -142,10 +142,10 @@ static void char_stdio_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_stdio;
+    cc->chr_parse = stdio_chr_parse;
 #ifndef _WIN32
-    cc->chr_open = qemu_chr_open_stdio;
-    cc->chr_set_echo = qemu_chr_set_echo_stdio;
+    cc->chr_open = stdio_chr_open;
+    cc->chr_set_echo = stdio_chr_set_echo;
 #endif
 }
 
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 71b8d8b37df..18f4322408a 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -131,8 +131,7 @@ static void char_udp_finalize(Object *obj)
     qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
 }
 
-static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
-                               Error **errp)
+static void udp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     const char *host = qemu_opt_get(opts, "host");
     const char *port = qemu_opt_get(opts, "port");
@@ -189,10 +188,10 @@ static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
     }
 }
 
-static void qmp_chardev_open_udp(Chardev *chr,
-                                 ChardevBackend *backend,
-                                 bool *be_opened,
-                                 Error **errp)
+static void upd_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     ChardevUdp *udp = backend->u.udp.data;
     SocketAddress *local_addr = socket_address_flatten(udp->local);
@@ -221,8 +220,8 @@ static void char_udp_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_udp;
-    cc->chr_open = qmp_chardev_open_udp;
+    cc->chr_parse = udp_chr_parse;
+    cc->chr_open = upd_chr_open;
     cc->chr_write = udp_chr_write;
     cc->chr_update_read_handler = udp_chr_update_read_handler;
 }
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index 26e67aef1ca..866f3a20398 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -128,7 +128,7 @@ static void win_stdio_thread_wait_func(void *opaque)
     SetEvent(stdio->hInputDoneEvent);
 }
 
-static void qemu_chr_set_echo_win_stdio(Chardev *chr, bool echo)
+static void win_stiod_chr_set_echo(Chardev *chr, bool echo)
 {
     WinStdioChardev *stdio = WIN_STDIO_CHARDEV(chr);
     DWORD              dwMode = 0;
@@ -142,10 +142,10 @@ static void qemu_chr_set_echo_win_stdio(Chardev *chr, bool echo)
     }
 }
 
-static void qemu_chr_open_stdio(Chardev *chr,
-                                ChardevBackend *backend,
-                                bool *be_opened,
-                                Error **errp)
+static void win_stdio_chr_open(Chardev *chr,
+                               ChardevBackend *backend,
+                               bool *be_opened,
+                               Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
     bool stdio_allow_signal = !opts->has_signal || opts->signal;
@@ -206,7 +206,7 @@ static void qemu_chr_open_stdio(Chardev *chr,
 
     SetConsoleMode(stdio->hStdIn, dwMode);
 
-    qemu_chr_set_echo_win_stdio(chr, false);
+    win_stiod_chr_set_echo(chr, false);
 
     return;
 
@@ -237,7 +237,7 @@ static void char_win_stdio_finalize(Object *obj)
     }
 }
 
-static int win_stdio_write(Chardev *chr, const uint8_t *buf, int len)
+static int win_stdio_chr_write(Chardev *chr, const uint8_t *buf, int len)
 {
     HANDLE  hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
     DWORD   dwSize;
@@ -260,9 +260,9 @@ static void char_win_stdio_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_open = qemu_chr_open_stdio;
-    cc->chr_write = win_stdio_write;
-    cc->chr_set_echo = qemu_chr_set_echo_win_stdio;
+    cc->chr_open = win_stdio_chr_open;
+    cc->chr_write = win_stdio_chr_write;
+    cc->chr_set_echo = win_stiod_chr_set_echo;
 }
 
 static const TypeInfo char_win_stdio_type_info = {
diff --git a/chardev/msmouse.c b/chardev/msmouse.c
index 84050164893..d07cd998cb5 100644
--- a/chardev/msmouse.c
+++ b/chardev/msmouse.c
@@ -178,7 +178,7 @@ static const QemuInputHandler msmouse_handler = {
     .sync  = msmouse_input_sync,
 };
 
-static int msmouse_ioctl(Chardev *chr, int cmd, void *arg)
+static int msmouse_chr_ioctl(Chardev *chr, int cmd, void *arg)
 {
     MouseChardev *mouse = MOUSE_CHARDEV(chr);
     int c, i, j;
@@ -274,7 +274,7 @@ static void char_msmouse_class_init(ObjectClass *oc, const void *data)
     cc->chr_open = msmouse_chr_open;
     cc->chr_write = msmouse_chr_write;
     cc->chr_accept_input = msmouse_chr_accept_input;
-    cc->chr_ioctl = msmouse_ioctl;
+    cc->chr_ioctl = msmouse_chr_ioctl;
 }
 
 static const TypeInfo char_msmouse_type_info = {
diff --git a/chardev/spice.c b/chardev/spice.c
index 61caa6d0efe..3ea25706653 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -215,7 +215,7 @@ static void char_spice_finalize(Object *obj)
     g_free((char *)s->sin.portname);
 }
 
-static void spice_vmc_set_fe_open(struct Chardev *chr, int fe_open)
+static void spice_vmc_chr_set_fe_open(struct Chardev *chr, int fe_open)
 {
     SpiceChardev *s = SPICE_CHARDEV(chr);
     if (fe_open) {
@@ -225,7 +225,7 @@ static void spice_vmc_set_fe_open(struct Chardev *chr, int fe_open)
     }
 }
 
-static void spice_port_set_fe_open(struct Chardev *chr, int fe_open)
+static void spice_port_chr_set_fe_open(struct Chardev *chr, int fe_open)
 {
     SpiceChardev *s = SPICE_CHARDEV(chr);
 
@@ -251,10 +251,10 @@ static void chr_open(Chardev *chr, const char *subtype)
     s->sin.subtype = g_strdup(subtype);
 }
 
-static void qemu_chr_open_spice_vmc(Chardev *chr,
-                                    ChardevBackend *backend,
-                                    bool *be_opened,
-                                    Error **errp)
+static void spice_vmc_chr_open(Chardev *chr,
+                               ChardevBackend *backend,
+                               bool *be_opened,
+                               Error **errp)
 {
     ChardevSpiceChannel *spicevmc = backend->u.spicevmc.data;
     const char *type = spicevmc->type;
@@ -281,10 +281,10 @@ static void qemu_chr_open_spice_vmc(Chardev *chr,
     chr_open(chr, type);
 }
 
-static void qemu_chr_open_spice_port(Chardev *chr,
-                                     ChardevBackend *backend,
-                                     bool *be_opened,
-                                     Error **errp)
+static void spice_port_chr_open(Chardev *chr,
+                                ChardevBackend *backend,
+                                bool *be_opened,
+                                Error **errp)
 {
     ChardevSpicePort *spiceport = backend->u.spiceport.data;
     const char *name = spiceport->fqdn;
@@ -309,8 +309,8 @@ static void qemu_chr_open_spice_port(Chardev *chr,
     vmc_register_interface(s);
 }
 
-static void qemu_chr_parse_spice_vmc(QemuOpts *opts, ChardevBackend *backend,
-                                     Error **errp)
+static void spice_vmc_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                                Error **errp)
 {
     const char *name = qemu_opt_get(opts, "name");
     ChardevSpiceChannel *spicevmc;
@@ -325,8 +325,8 @@ static void qemu_chr_parse_spice_vmc(QemuOpts *opts, ChardevBackend *backend,
     spicevmc->type = g_strdup(name);
 }
 
-static void qemu_chr_parse_spice_port(QemuOpts *opts, ChardevBackend *backend,
-                                      Error **errp)
+static void spice_port_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                                 Error **errp)
 {
     const char *name = qemu_opt_get(opts, "name");
     ChardevSpicePort *spiceport;
@@ -364,9 +364,9 @@ static void char_spicevmc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_spice_vmc;
-    cc->chr_open = qemu_chr_open_spice_vmc;
-    cc->chr_set_fe_open = spice_vmc_set_fe_open;
+    cc->chr_parse = spice_vmc_chr_parse;
+    cc->chr_open = spice_vmc_chr_open;
+    cc->chr_set_fe_open = spice_vmc_chr_set_fe_open;
 }
 
 static const TypeInfo char_spicevmc_type_info = {
@@ -380,9 +380,9 @@ static void char_spiceport_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_spice_port;
-    cc->chr_open = qemu_chr_open_spice_port;
-    cc->chr_set_fe_open = spice_port_set_fe_open;
+    cc->chr_parse = spice_port_chr_parse;
+    cc->chr_open = spice_port_chr_open;
+    cc->chr_set_fe_open = spice_port_chr_set_fe_open;
 }
 
 static const TypeInfo char_spiceport_type_info = {
diff --git a/gdbstub/system.c b/gdbstub/system.c
index 29b9e16a908..e161b14485b 100644
--- a/gdbstub/system.c
+++ b/gdbstub/system.c
@@ -225,7 +225,7 @@ static void gdb_sigterm_handler(int signal)
 }
 #endif
 
-static int gdb_monitor_write(Chardev *chr, const uint8_t *buf, int len)
+static int gdb_chr_write(Chardev *chr, const uint8_t *buf, int len)
 {
     g_autoptr(GString) hex_buf = g_string_new("O");
     gdb_memtohex(hex_buf, buf, len);
@@ -233,7 +233,7 @@ static int gdb_monitor_write(Chardev *chr, const uint8_t *buf, int len)
     return len;
 }
 
-static void gdb_monitor_open(Chardev *chr, ChardevBackend *backend,
+static void gdb_chr_open(Chardev *chr, ChardevBackend *backend,
                              bool *be_opened, Error **errp)
 {
     *be_opened = false;
@@ -244,8 +244,8 @@ static void char_gdb_class_init(ObjectClass *oc, const void *data)
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
     cc->internal = true;
-    cc->chr_open = gdb_monitor_open;
-    cc->chr_write = gdb_monitor_write;
+    cc->chr_open = gdb_chr_open;
+    cc->chr_write = gdb_chr_write;
 }
 
 #define TYPE_CHARDEV_GDB "chardev-gdb"
diff --git a/ui/gtk.c b/ui/gtk.c
index 6217e9552e3..acf55cdfce2 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1963,7 +1963,7 @@ static void gd_vc_chr_set_echo(Chardev *chr, bool echo)
 
 static int nb_vcs;
 static Chardev *vcs[MAX_VCS];
-static void gd_vc_open(Chardev *chr,
+static void gd_vc_chr_open(Chardev *chr,
                        ChardevBackend *backend,
                        bool *be_opened,
                        Error **errp)
@@ -1985,7 +1985,7 @@ static void char_gd_vc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_open = gd_vc_open;
+    cc->chr_open = gd_vc_chr_open;
     cc->chr_write = gd_vc_chr_write;
     cc->chr_accept_input = gd_vc_chr_accept_input;
     cc->chr_set_echo = gd_vc_chr_set_echo;
diff --git a/scripts/codeconverter/codeconverter/test_regexps.py b/scripts/codeconverter/codeconverter/test_regexps.py
index d3a5cc3ad38..2b9f5b80111 100644
--- a/scripts/codeconverter/codeconverter/test_regexps.py
+++ b/scripts/codeconverter/codeconverter/test_regexps.py
@@ -57,7 +57,7 @@ def fullmatch(regexp, s):
 
     print(RE_TYPEINFO_START)
     assert re.search(RE_TYPEINFO_START, r'''
-    cc->chr_open = qmp_chardev_open_file;
+    cc->chr_open = file_chr_open;
 }
 
 static const TypeInfo char_file_type_info = {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:30:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:30:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227474.1533892 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Mx-00045y-IG; Wed, 11 Feb 2026 12:30:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227474.1533892; Wed, 11 Feb 2026 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 1vq9Mx-00045o-FI; Wed, 11 Feb 2026 12:30:59 +0000
Received: by outflank-mailman (input) for mailman id 1227474;
 Wed, 11 Feb 2026 12:30: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9Mw-0001nh-8g
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:30:58 +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 83363f0b-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:30:57 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-210-8dzO44fAOkO8hgNBHIWcLA-1; Wed,
 11 Feb 2026 07:30:51 -0500
Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id D574E18005BC; Wed, 11 Feb 2026 12:30:49 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 4E1B21800465; Wed, 11 Feb 2026 12:30: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: 83363f0b-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813055;
	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=ARe11uBwUQtZK+r/LyMwdLX8qnRbouC5icUkGH7AqSA=;
	b=CTbha19rja44F9ru+Y6n2Oiyosw09I7YcgzswvgrKlE2AuVm405d25tB7PrisxL33/zLJA
	lqSDHSe7RQfhW9iMmbj9kbMgsl3cnZrLEmA3QBZjyqajB4Yd+fnBLYbKrclJEmqbUSNC+t
	EnQ9ieyn0ZWPnTf8eRbIfymOJEX1Tuw=
X-MC-Unique: 8dzO44fAOkO8hgNBHIWcLA-1
X-Mimecast-MFC-AGG-ID: 8dzO44fAOkO8hgNBHIWcLA_1770813050
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 06/14] chardev: .chr_open(): drop be_opened parameter
Date: Wed, 11 Feb 2026 16:29:53 +0400
Message-ID: <20260211123007.3569932-7-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111
X-Mimecast-MFC-PROC-ID: t0wGx4rLtFIMFGMXuZWD0ARFACVZCwh6a53Wk7oPHEc_1770813050
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

The logic around the parameter is rather tricky. Let's instead
explicitly send CHR_EVENT_OPENED in all backends where needed.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
[ Marc-André - add CHR_EVENT_OPENED in udp_chr_open() ]
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-6-vsementsov@yandex-team.ru>
---
 include/chardev/char.h   |  3 +--
 chardev/baum.c           |  7 +++----
 chardev/char-console.c   |  5 ++---
 chardev/char-file.c      |  7 +++----
 chardev/char-hub.c       | 11 +++++------
 chardev/char-mux.c       | 19 +++++++++++--------
 chardev/char-null.c      |  7 ++-----
 chardev/char-parallel.c  | 15 ++++-----------
 chardev/char-pipe.c      | 14 ++++++--------
 chardev/char-pty.c       |  6 +-----
 chardev/char-ringbuf.c   |  3 ++-
 chardev/char-serial.c    | 18 +++++++++---------
 chardev/char-socket.c    | 10 +++-------
 chardev/char-stdio.c     |  7 +++----
 chardev/char-udp.c       |  6 ++----
 chardev/char-win-stdio.c |  2 +-
 chardev/char.c           | 11 +++--------
 chardev/msmouse.c        |  4 ++--
 chardev/spice.c          | 10 ++--------
 chardev/wctablet.c       |  5 ++---
 gdbstub/system.c         |  5 ++---
 ui/console-vc.c          |  7 ++-----
 ui/dbus-chardev.c        |  6 ++----
 ui/gtk.c                 |  9 +++------
 ui/spice-app.c           | 10 +++-------
 ui/vdagent.c             |  3 +--
 26 files changed, 80 insertions(+), 130 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index d33833b6c02..aa42e01b8a3 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -260,8 +260,7 @@ struct ChardevClass {
     void (*chr_parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
 
     /* called after construction, open/starts the backend */
-    void (*chr_open)(Chardev *chr, ChardevBackend *backend,
-                 bool *be_opened, Error **errp);
+    void (*chr_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
 
     /* write buf to the backend */
     int (*chr_write)(Chardev *s, const uint8_t *buf, int len);
diff --git a/chardev/baum.c b/chardev/baum.c
index 75e41965c11..4b97d630ffb 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -642,10 +642,7 @@ static void char_braille_finalize(Object *obj)
     }
 }
 
-static void baum_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     BaumChardev *baum = BAUM_CHARDEV(chr);
     brlapi_handle_t *handle;
@@ -670,6 +667,8 @@ static void baum_chr_open(Chardev *chr,
      * as an integer, but in practice it seems to work
      */
     qemu_set_fd_handler(baum->brlapi_fd, baum_chr_read, NULL, baum);
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void char_braille_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-console.c b/chardev/char-console.c
index f3ef1a7748c..423f0f4cc4e 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -26,12 +26,11 @@
 #include "chardev/char-win.h"
 #include "qemu/module.h"
 
-static void console_chr_open(Chardev *chr,
-                             ChardevBackend *backend,
-                             bool *be_opened,
+static void console_chr_open(Chardev *chr, ChardevBackend *backend,
                              Error **errp)
 {
     win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void char_console_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 568600bb7c4..34ef386abc5 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -34,10 +34,7 @@
 #include "chardev/char-fd.h"
 #endif
 
-static void file_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevFile *file = backend->u.file.data;
 #ifdef _WIN32
@@ -100,6 +97,8 @@ static void file_chr_open(Chardev *chr,
         return;
     }
 #endif
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void file_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/char-hub.c b/chardev/char-hub.c
index 11556dfa72b..aa6058c2f6f 100644
--- a/chardev/char-hub.c
+++ b/chardev/char-hub.c
@@ -203,10 +203,7 @@ static void hub_chr_update_read_handlers(Chardev *chr)
     }
 }
 
-static void hub_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHub *hub = backend->u.hub.data;
     HubChardev *d = HUB_CHARDEV(chr);
@@ -241,8 +238,10 @@ static void hub_chr_open(Chardev *chr,
         list = list->next;
     }
 
-    /* Closed until an explicit event from backend */
-    *be_opened = false;
+    /*
+     * Closed until an explicit event from backend, so we don't
+     * send CHR_EVENT_OPENED now.
+     */
 }
 
 static void hub_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index f38d66b21f1..7210df431fc 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -361,10 +361,7 @@ void mux_set_focus(Chardev *chr, unsigned int focus)
     mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
 }
 
-static void mux_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevMux *mux = backend->u.mux.data;
     Chardev *drv;
@@ -377,11 +374,17 @@ static void mux_chr_open(Chardev *chr,
     }
 
     d->focus = -1;
-    /* only default to opened state if we've realized the initial
-     * set of muxes
+    if (!qemu_chr_fe_init(&d->chr, drv, errp)) {
+        return;
+    }
+
+    /*
+     * Only move to opened state if we've realized
+     * the initial set of muxes:
      */
-    *be_opened = muxes_opened;
-    qemu_chr_fe_init(&d->chr, drv, errp);
+    if (muxes_opened) {
+        qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    }
 }
 
 static void mux_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-null.c b/chardev/char-null.c
index 674603b3807..900b5febb6c 100644
--- a/chardev/char-null.c
+++ b/chardev/char-null.c
@@ -26,12 +26,9 @@
 #include "chardev/char.h"
 #include "qemu/module.h"
 
-static void null_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void null_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
-    *be_opened = false;
+    /* do not send CHR_EVENT_OPENED */
 }
 
 static void char_null_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index 1be1ef46292..359efa3c9c8 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -157,10 +157,7 @@ static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void parallel_chr_open_fd(Chardev *chr,
-                                int fd,
-                                bool *be_opened,
-                                Error **errp)
+static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
 
@@ -172,6 +169,7 @@ static void parallel_chr_open_fd(Chardev *chr,
     }
 
     drv->mode = IEEE1284_MODE_COMPAT;
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 #endif /* __linux__ */
 
@@ -227,21 +225,16 @@ static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void parallel_chr_open_fd(Chardev *chr,
-                                int fd,
-                                bool *be_opened,
-                                Error **errp)
+static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
     drv->fd = fd;
-    *be_opened = false;
 }
 #endif
 
 #ifdef HAVE_CHARDEV_PARALLEL
 static void parallel_chr_open(Chardev *chr,
                               ChardevBackend *backend,
-                              bool *be_opened,
                               Error **errp)
 {
     ChardevHostdev *parallel = backend->u.parallel.data;
@@ -251,7 +244,7 @@ static void parallel_chr_open(Chardev *chr,
     if (fd < 0) {
         return;
     }
-    parallel_chr_open_fd(chr, fd, be_opened, errp);
+    parallel_chr_open_fd(chr, fd, errp);
 }
 
 static void parallel_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index e84492d42b6..2f26372dfc9 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -103,10 +103,7 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
     return -1;
 }
 
-static void pipe_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     const char *filename = opts->device;
@@ -114,14 +111,13 @@ static void pipe_chr_open(Chardev *chr,
     if (win_chr_pipe_init(chr, filename, errp) < 0) {
         return;
     }
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 #else
 
-static void pipe_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     int fd_in, fd_out;
@@ -158,6 +154,8 @@ static void pipe_chr_open(Chardev *chr,
         }
         return;
     }
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 #endif /* !_WIN32 */
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 909ab01f5f2..d4d69a29a95 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -331,10 +331,7 @@ static int qemu_openpty_raw(int *aslave, char *pty_name)
     return amaster;
 }
 
-static void pty_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     PtyChardev *s;
     int master_fd, slave_fd;
@@ -364,7 +361,6 @@ static void pty_chr_open(Chardev *chr,
     qio_channel_set_name(s->ioc, name);
     g_free(name);
     s->timer_src = NULL;
-    *be_opened = false;
 
     /* create symbolic link */
     if (path) {
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index 19652fe2b3a..30b17a96d3a 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -94,7 +94,6 @@ static void char_ringbuf_finalize(Object *obj)
 
 static void ringbuf_chr_open(Chardev *chr,
                              ChardevBackend *backend,
-                             bool *be_opened,
                              Error **errp)
 {
     ChardevRingbuf *opts = backend->u.ringbuf.data;
@@ -111,6 +110,8 @@ static void ringbuf_chr_open(Chardev *chr,
     d->prod = 0;
     d->cons = 0;
     d->cbuf = g_malloc0(d->size);
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 void qmp_ringbuf_write(const char *device, const char *data,
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 54c2b3935cf..9995f184258 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -41,14 +41,15 @@
 
 #ifdef _WIN32
 
-static void serial_chr_open(Chardev *chr,
-                            ChardevBackend *backend,
-                            bool *be_opened,
-                            Error **errp)
+static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
+    int ret = win_chr_serial_init(chr, serial->device, errp);
+    if (ret < 0) {
+        return;
+    }
 
-    win_chr_serial_init(chr, serial->device, errp);
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)      \
@@ -258,10 +259,7 @@ static int serial_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void serial_chr_open(Chardev *chr,
-                            ChardevBackend *backend,
-                            bool *be_opened,
-                            Error **errp)
+static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
     int fd;
@@ -281,6 +279,8 @@ static void serial_chr_open(Chardev *chr,
         close(fd);
         return;
     }
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 #endif /* __linux__ || __sun__ */
 
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index a3203f2f97b..2951b2ec9be 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1365,10 +1365,7 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
 }
 
 
-static void tcp_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
     ChardevSocket *sock = backend->u.socket.data;
@@ -1439,9 +1436,6 @@ static void tcp_chr_open(Chardev *chr,
     }
     s->registered_yank = true;
 
-    /* be isn't opened until we get a connection */
-    *be_opened = false;
-
     update_disconnected_filename(s);
 
     if (s->is_listen) {
@@ -1454,6 +1448,8 @@ static void tcp_chr_open(Chardev *chr,
             return;
         }
     }
+
+    /* be isn't opened until we get a connection */
 }
 
 static void tcp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index f0920a23faa..534f6ed5658 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -85,10 +85,7 @@ static void term_stdio_handler(int sig)
     stdio_chr_set_echo(NULL, stdio_echo_state);
 }
 
-static void stdio_chr_open(Chardev *chr,
-                           ChardevBackend *backend,
-                           bool *be_opened,
-                           Error **errp)
+static void stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
     struct sigaction act;
@@ -123,6 +120,8 @@ static void stdio_chr_open(Chardev *chr,
 
     stdio_allow_signal = !opts->has_signal || opts->signal;
     stdio_chr_set_echo(chr, false);
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 #endif
 
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 18f4322408a..4c81c95e656 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -188,10 +188,7 @@ static void udp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
     }
 }
 
-static void upd_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevUdp *udp = backend->u.udp.data;
     SocketAddress *local_addr = socket_address_flatten(udp->local);
@@ -214,6 +211,7 @@ static void upd_chr_open(Chardev *chr,
     g_free(name);
 
     s->ioc = QIO_CHANNEL(sioc);
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void char_udp_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index 866f3a20398..0535960ff1b 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -144,7 +144,6 @@ static void win_stiod_chr_set_echo(Chardev *chr, bool echo)
 
 static void win_stdio_chr_open(Chardev *chr,
                                ChardevBackend *backend,
-                               bool *be_opened,
                                Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
@@ -208,6 +207,7 @@ static void win_stdio_chr_open(Chardev *chr,
 
     win_stiod_chr_set_echo(chr, false);
 
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
     return;
 
 err3:
diff --git a/chardev/char.c b/chardev/char.c
index df37d1df161..44bfed36272 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -246,8 +246,7 @@ int qemu_chr_add_client(Chardev *s, int fd)
         CHARDEV_GET_CLASS(s)->chr_add_client(s, fd) : -1;
 }
 
-static void qemu_char_open(Chardev *chr, ChardevBackend *backend,
-                           bool *be_opened, Error **errp)
+static void qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevClass *cc = CHARDEV_GET_CLASS(chr);
     /* Any ChardevCommon member would work */
@@ -268,7 +267,7 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend,
     }
 
     if (cc->chr_open) {
-        cc->chr_open(chr, backend, be_opened, errp);
+        cc->chr_open(chr, backend, errp);
     }
 }
 
@@ -1009,7 +1008,6 @@ static Chardev *chardev_new(const char *id, const char *typename,
     Object *obj;
     Chardev *chr = NULL;
     Error *local_err = NULL;
-    bool be_opened = true;
 
     assert(g_str_has_prefix(typename, "chardev-"));
     assert(id);
@@ -1020,7 +1018,7 @@ static Chardev *chardev_new(const char *id, const char *typename,
     chr->label = g_strdup(id);
     chr->gcontext = gcontext;
 
-    qemu_char_open(chr, backend, &be_opened, &local_err);
+    qemu_char_open(chr, backend, &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
         object_unref(obj);
@@ -1030,9 +1028,6 @@ static Chardev *chardev_new(const char *id, const char *typename,
     if (!chr->filename) {
         chr->filename = g_strdup(typename + 8);
     }
-    if (be_opened) {
-        qemu_chr_be_event(chr, CHR_EVENT_OPENED);
-    }
 
     return chr;
 }
diff --git a/chardev/msmouse.c b/chardev/msmouse.c
index d07cd998cb5..9dc04e3b3ec 100644
--- a/chardev/msmouse.c
+++ b/chardev/msmouse.c
@@ -255,16 +255,16 @@ static void char_msmouse_finalize(Object *obj)
 
 static void msmouse_chr_open(Chardev *chr,
                              ChardevBackend *backend,
-                             bool *be_opened,
                              Error **errp)
 {
     MouseChardev *mouse = MOUSE_CHARDEV(chr);
 
-    *be_opened = false;
     mouse->hs = qemu_input_handler_register((DeviceState *)mouse,
                                             &msmouse_handler);
     mouse->tiocm = 0;
     fifo8_create(&mouse->outbuf, MSMOUSE_BUF_SZ);
+
+    /* Never send CHR_EVENT_OPENED */
 }
 
 static void char_msmouse_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/spice.c b/chardev/spice.c
index 3ea25706653..f5b1f585eb1 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -251,9 +251,7 @@ static void chr_open(Chardev *chr, const char *subtype)
     s->sin.subtype = g_strdup(subtype);
 }
 
-static void spice_vmc_chr_open(Chardev *chr,
-                               ChardevBackend *backend,
-                               bool *be_opened,
+static void spice_vmc_chr_open(Chardev *chr, ChardevBackend *backend,
                                Error **errp)
 {
     ChardevSpiceChannel *spicevmc = backend->u.spicevmc.data;
@@ -277,13 +275,10 @@ static void spice_vmc_chr_open(Chardev *chr,
         return;
     }
 
-    *be_opened = false;
     chr_open(chr, type);
 }
 
-static void spice_port_chr_open(Chardev *chr,
-                                ChardevBackend *backend,
-                                bool *be_opened,
+static void spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
                                 Error **errp)
 {
     ChardevSpicePort *spiceport = backend->u.spiceport.data;
@@ -302,7 +297,6 @@ static void spice_port_chr_open(Chardev *chr,
 
     chr_open(chr, "port");
 
-    *be_opened = false;
     s = SPICE_CHARDEV(chr);
     s->sin.portname = g_strdup(name);
 
diff --git a/chardev/wctablet.c b/chardev/wctablet.c
index 8285a56e7bc..65b2ceb58c9 100644
--- a/chardev/wctablet.c
+++ b/chardev/wctablet.c
@@ -326,13 +326,10 @@ static void wctablet_chr_finalize(Object *obj)
 
 static void wctablet_chr_open(Chardev *chr,
                               ChardevBackend *backend,
-                              bool *be_opened,
                               Error **errp)
 {
     TabletChardev *tablet = WCTABLET_CHARDEV(chr);
 
-    *be_opened = true;
-
     /* init state machine */
     memcpy(tablet->outbuf, WC_FULL_CONFIG_STRING, WC_FULL_CONFIG_STRING_LENGTH);
     tablet->outlen = WC_FULL_CONFIG_STRING_LENGTH;
@@ -340,6 +337,8 @@ static void wctablet_chr_open(Chardev *chr,
 
     tablet->hs = qemu_input_handler_register((DeviceState *)tablet,
                                              &wctablet_handler);
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void wctablet_chr_class_init(ObjectClass *oc, const void *data)
diff --git a/gdbstub/system.c b/gdbstub/system.c
index e161b14485b..982857f314a 100644
--- a/gdbstub/system.c
+++ b/gdbstub/system.c
@@ -233,10 +233,9 @@ static int gdb_chr_write(Chardev *chr, const uint8_t *buf, int len)
     return len;
 }
 
-static void gdb_chr_open(Chardev *chr, ChardevBackend *backend,
-                             bool *be_opened, Error **errp)
+static void gdb_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
-    *be_opened = false;
+    /* Never send CHR_EVENT_OPENED */
 }
 
 static void char_gdb_class_init(ObjectClass *oc, const void *data)
diff --git a/ui/console-vc.c b/ui/console-vc.c
index 931068d43ab..4c8ea4c1485 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -1093,10 +1093,7 @@ void qemu_text_console_update_size(QemuTextConsole *c)
     dpy_text_resize(QEMU_CONSOLE(c), c->width, c->height);
 }
 
-static void vc_chr_open(Chardev *chr,
-                        ChardevBackend *backend,
-                        bool *be_opened,
-                        Error **errp)
+static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevVC *vc = backend->u.vc.data;
     VCChardev *drv = VC_CHARDEV(chr);
@@ -1144,7 +1141,7 @@ static void vc_chr_open(Chardev *chr,
         drv->t_attrib = TEXT_ATTRIBUTES_DEFAULT;
     }
 
-    *be_opened = true;
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void vc_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/ui/dbus-chardev.c b/ui/dbus-chardev.c
index f6c426e2209..3e471f84cd8 100644
--- a/ui/dbus-chardev.c
+++ b/ui/dbus-chardev.c
@@ -176,9 +176,7 @@ dbus_chr_send_break(
     return DBUS_METHOD_INVOCATION_HANDLED;
 }
 
-static void
-dbus_chr_open(Chardev *chr, ChardevBackend *backend,
-              bool *be_opened, Error **errp)
+static void dbus_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ERRP_GUARD();
 
@@ -211,7 +209,7 @@ dbus_chr_open(Chardev *chr, ChardevBackend *backend,
         return;
     }
     CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_open(
-        chr, be, be_opened, errp);
+        chr, be, errp);
 }
 
 static void
diff --git a/ui/gtk.c b/ui/gtk.c
index acf55cdfce2..44b2b868ec9 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1963,10 +1963,7 @@ static void gd_vc_chr_set_echo(Chardev *chr, bool echo)
 
 static int nb_vcs;
 static Chardev *vcs[MAX_VCS];
-static void gd_vc_chr_open(Chardev *chr,
-                       ChardevBackend *backend,
-                       bool *be_opened,
-                       Error **errp)
+static void gd_vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     if (nb_vcs == MAX_VCS) {
         error_setg(errp, "Maximum number of consoles reached");
@@ -1975,10 +1972,10 @@ static void gd_vc_chr_open(Chardev *chr,
 
     vcs[nb_vcs++] = chr;
 
-    /* console/chardev init sometimes completes elsewhere in a 2nd
+    /*
+     * console/chardev init sometimes completes elsewhere in a 2nd
      * stage, so defer OPENED events until they are fully initialized
      */
-    *be_opened = false;
 }
 
 static void char_gd_vc_class_init(ObjectClass *oc, const void *data)
diff --git a/ui/spice-app.c b/ui/spice-app.c
index ea0b62a22b7..7ac9ae4e78d 100644
--- a/ui/spice-app.c
+++ b/ui/spice-app.c
@@ -49,8 +49,7 @@ struct VCChardev {
 
 struct VCChardevClass {
     ChardevClass parent;
-    void (*parent_open)(Chardev *chr, ChardevBackend *backend,
-                        bool *be_opened, Error **errp);
+    void (*parent_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
 };
 
 #define TYPE_CHARDEV_VC "chardev-vc"
@@ -67,10 +66,7 @@ chr_spice_backend_new(void)
     return be;
 }
 
-static void vc_chr_open(Chardev *chr,
-                        ChardevBackend *backend,
-                        bool *be_opened,
-                        Error **errp)
+static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     VCChardevClass *vc = CHARDEV_VC_GET_CLASS(chr);
     ChardevBackend *be;
@@ -87,7 +83,7 @@ static void vc_chr_open(Chardev *chr,
     be = chr_spice_backend_new();
     be->u.spiceport.data->fqdn = fqdn ?
         g_strdup(fqdn) : g_strdup_printf("org.qemu.console.%s", chr->label);
-    vc->parent_open(chr, be, be_opened, errp);
+    vc->parent_open(chr, be, errp);
     qapi_free_ChardevBackend(be);
 }
 
diff --git a/ui/vdagent.c b/ui/vdagent.c
index 090771ab171..644e9acaaeb 100644
--- a/ui/vdagent.c
+++ b/ui/vdagent.c
@@ -662,7 +662,6 @@ static void vdagent_chr_recv_clipboard(VDAgentChardev *vd, VDAgentMessage *msg)
 
 static void vdagent_chr_open(Chardev *chr,
                              ChardevBackend *backend,
-                             bool *be_opened,
                              Error **errp)
 {
     VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(chr);
@@ -692,7 +691,7 @@ static void vdagent_chr_open(Chardev *chr,
                                                    &vdagent_mouse_handler);
     }
 
-    *be_opened = true;
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void vdagent_clipboard_peer_register(VDAgentChardev *vd)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:37:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:37:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227504.1533903 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9TQ-0005ey-EK; Wed, 11 Feb 2026 12:37:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227504.1533903; Wed, 11 Feb 2026 12:37: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 1vq9TQ-0005er-9y; Wed, 11 Feb 2026 12:37:40 +0000
Received: by outflank-mailman (input) for mailman id 1227504;
 Wed, 11 Feb 2026 12: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9NP-00016c-6a
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31:27 +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 93f57569-0745-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 13:31:25 +0100 (CET)
Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-581-YbVOGn9zNVSxTeUqeeVBow-1; Wed,
 11 Feb 2026 07:31:20 -0500
Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 1C26A1955F12; Wed, 11 Feb 2026 12:31:19 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 1B18930001A8; Wed, 11 Feb 2026 12:31: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: 93f57569-0745-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813083;
	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=4feRG+PIqLPyCpVStJ7uIxka6xWW9klU080X9xA3hKo=;
	b=LBoKkR0EsWq9Mm0w+fbbA0xQTuP/mu1+ePDG1naqDcz01Bb/dUklccHzDxssmJmi6/PW64
	p4Tkxlq9fF+7UI2pHJVz63xusb/1Vvgk1hSl0f3GySi7FnsRN382fc2Dd97cnTh+MgPKwB
	vHtuczOrgIYksIsDv79YalMDnY+EaX8=
X-MC-Unique: YbVOGn9zNVSxTeUqeeVBow-1
X-Mimecast-MFC-AGG-ID: YbVOGn9zNVSxTeUqeeVBow_1770813079
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 11/14] chardev/char: qemu_char_open(): add return value
Date: Wed, 11 Feb 2026 16:29:58 +0400
Message-ID: <20260211123007.3569932-12-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4
X-Mimecast-MFC-PROC-ID: XjVJwudVIUxpXEYycY1eSDMRMr489ItP4cqYDevW5D4_1770813079
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Accordingly with recommendations in include/qapi/error.h accompany
errp by boolean return value and get rid of error propagation.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-11-vsementsov@yandex-team.ru>
---
 chardev/char.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/chardev/char.c b/chardev/char.c
index 3373c9b61f8..5d00cac2f31 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -246,7 +246,7 @@ int qemu_chr_add_client(Chardev *s, int fd)
         CHARDEV_GET_CLASS(s)->chr_add_client(s, fd) : -1;
 }
 
-static void qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevClass *cc = CHARDEV_GET_CLASS(chr);
     /* Any ChardevCommon member would work */
@@ -262,13 +262,15 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         }
         chr->logfd = qemu_create(common->logfile, flags, 0666, errp);
         if (chr->logfd < 0) {
-            return;
+            return false;
         }
     }
 
-    if (cc->chr_open) {
-        cc->chr_open(chr, backend, errp);
+    if (!cc->chr_open) {
+        return true;
     }
+
+    return cc->chr_open(chr, backend, errp);
 }
 
 static void char_init(Object *obj)
@@ -1006,7 +1008,6 @@ static Chardev *chardev_new(const char *id, const char *typename,
 {
     Object *obj;
     Chardev *chr = NULL;
-    Error *local_err = NULL;
 
     assert(g_str_has_prefix(typename, "chardev-"));
     assert(id);
@@ -1017,9 +1018,7 @@ static Chardev *chardev_new(const char *id, const char *typename,
     chr->label = g_strdup(id);
     chr->gcontext = gcontext;
 
-    qemu_char_open(chr, backend, &local_err);
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!qemu_char_open(chr, backend, errp)) {
         object_unref(obj);
         return NULL;
     }
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:37:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:37:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227512.1533912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Th-000638-L3; Wed, 11 Feb 2026 12:37:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227512.1533912; Wed, 11 Feb 2026 12: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 1vq9Th-000631-Ha; Wed, 11 Feb 2026 12:37:57 +0000
Received: by outflank-mailman (input) for mailman id 1227512;
 Wed, 11 Feb 2026 12: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9N1-0001nh-Vc
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31: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 8697f043-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:31:02 +0100 (CET)
Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-639-30M7JcaDOLavjNI8Ti6E3A-1; Wed,
 11 Feb 2026 07:30:58 -0500
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 236821955E77; Wed, 11 Feb 2026 12:30:56 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 8EA3E180066A; Wed, 11 Feb 2026 12:30: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: 8697f043-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813061;
	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=dLHfC75X0gnITV5XgkytU+NTkgxXg1ikFTWZtIHy/IU=;
	b=NyluingiuhwKhURqUo5G68x1bWeqOHT5xVw/kbXZcspyvxEANtOvIWZZ39f962RlPhW1nB
	7kzBNc6bb556nMwicqmB4azZwVm9D6p5oLmiffR1+wAKTRhh1ku2OT7PgGxK/U6x1Z1Tf9
	JP8XCRXGsUf3qVAGCxAiZEd4ebZ/fPw=
X-MC-Unique: 30M7JcaDOLavjNI8Ti6E3A-1
X-Mimecast-MFC-AGG-ID: 30M7JcaDOLavjNI8Ti6E3A_1770813056
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 07/14] chardev: .chr_open(): add boolean return value
Date: Wed, 11 Feb 2026 16:29:54 +0400
Message-ID: <20260211123007.3569932-8-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: 9mSNiUQn0FChtVn4ABwZJCBzNdP_dhbctVNbcfFBah4_1770813056
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Add boolean return value to follow common recommendations for functions
with errrp in include/qapi/error.h

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-7-vsementsov@yandex-team.ru>
---
 include/chardev/char.h   |  2 +-
 chardev/baum.c           |  5 +++--
 chardev/char-console.c   |  1 +
 chardev/char-file.c      | 13 +++++++------
 chardev/char-hub.c       | 11 ++++++-----
 chardev/char-mux.c       |  8 +++++---
 chardev/char-null.c      |  4 ++--
 chardev/char-parallel.c  | 14 ++++++++------
 chardev/char-pipe.c      | 12 +++++++-----
 chardev/char-pty.c       |  9 ++++++---
 chardev/char-ringbuf.c   |  5 +++--
 chardev/char-serial.c    | 15 +++++++++------
 chardev/char-socket.c    | 17 +++++++++--------
 chardev/char-stdio.c     | 11 ++++++-----
 chardev/char-udp.c       |  5 +++--
 chardev/char-win-stdio.c |  7 ++++---
 chardev/msmouse.c        |  3 ++-
 chardev/spice.c          | 12 +++++++-----
 chardev/wctablet.c       |  3 ++-
 gdbstub/system.c         |  3 ++-
 ui/console-vc.c          |  3 ++-
 ui/dbus-chardev.c        |  6 +++---
 ui/gtk.c                 |  5 +++--
 ui/spice-app.c           | 10 ++++++----
 ui/vdagent.c             | 10 +++++-----
 25 files changed, 112 insertions(+), 82 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index aa42e01b8a3..e1bf97222b8 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -260,7 +260,7 @@ struct ChardevClass {
     void (*chr_parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
 
     /* called after construction, open/starts the backend */
-    void (*chr_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
+    bool (*chr_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
 
     /* write buf to the backend */
     int (*chr_write)(Chardev *s, const uint8_t *buf, int len);
diff --git a/chardev/baum.c b/chardev/baum.c
index 4b97d630ffb..1219963656b 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -642,7 +642,7 @@ static void char_braille_finalize(Object *obj)
     }
 }
 
-static void baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     BaumChardev *baum = BAUM_CHARDEV(chr);
     brlapi_handle_t *handle;
@@ -656,7 +656,7 @@ static void baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
                    brlapi_strerror(brlapi_error_location()));
         g_free(handle);
         baum->brlapi = NULL;
-        return;
+        return false;
     }
     baum->deferred_init = 0;
 
@@ -669,6 +669,7 @@ static void baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     qemu_set_fd_handler(baum->brlapi_fd, baum_chr_read, NULL, baum);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void char_braille_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-console.c b/chardev/char-console.c
index 423f0f4cc4e..c911cc62e3c 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -31,6 +31,7 @@ static void console_chr_open(Chardev *chr, ChardevBackend *backend,
 {
     win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void char_console_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 34ef386abc5..b0dd9d5f870 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -34,7 +34,7 @@
 #include "chardev/char-fd.h"
 #endif
 
-static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevFile *file = backend->u.file.data;
 #ifdef _WIN32
@@ -44,7 +44,7 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     if (file->in) {
         error_setg(errp, "input file not supported");
-        return;
+        return false;
     }
 
     if (file->has_append && file->append) {
@@ -61,7 +61,7 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
                      FILE_ATTRIBUTE_NORMAL, NULL);
     if (out == INVALID_HANDLE_VALUE) {
         error_setg(errp, "open %s failed", file->out);
-        return;
+        return false;
     }
 
     win_chr_set_file(chr, out, false);
@@ -77,7 +77,7 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     out = qmp_chardev_open_file_source(file->out, flags, errp);
     if (out < 0) {
-        return;
+        return false;
     }
 
     if (file->in) {
@@ -85,7 +85,7 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         in = qmp_chardev_open_file_source(file->in, flags, errp);
         if (in < 0) {
             qemu_close(out);
-            return;
+            return false;
         }
     }
 
@@ -94,11 +94,12 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (in >= 0) {
             qemu_close(in);
         }
-        return;
+        return false;
     }
 #endif
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void file_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/char-hub.c b/chardev/char-hub.c
index aa6058c2f6f..05cf722b5b0 100644
--- a/chardev/char-hub.c
+++ b/chardev/char-hub.c
@@ -203,7 +203,7 @@ static void hub_chr_update_read_handlers(Chardev *chr)
     }
 }
 
-static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHub *hub = backend->u.hub.data;
     HubChardev *d = HUB_CHARDEV(chr);
@@ -213,7 +213,7 @@ static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     if (list == NULL) {
         error_setg(errp, "hub: 'chardevs' list is not defined");
-        return;
+        return false;
     }
 
     while (list) {
@@ -223,17 +223,17 @@ static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (s == NULL) {
             error_setg(errp, "hub: chardev can't be found by id '%s'",
                        list->value);
-            return;
+            return false;
         }
         if (CHARDEV_IS_HUB(s) || CHARDEV_IS_MUX(s)) {
             error_setg(errp, "hub: multiplexers and hub devices can't be "
                        "stacked, check chardev '%s', chardev should not "
                        "be a hub device or have 'mux=on' enabled",
                        list->value);
-            return;
+            return false;
         }
         if (!hub_chr_attach_chardev(d, s, errp)) {
-            return;
+            return false;
         }
         list = list->next;
     }
@@ -242,6 +242,7 @@ static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
      * Closed until an explicit event from backend, so we don't
      * send CHR_EVENT_OPENED now.
      */
+    return true;
 }
 
 static void hub_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index 7210df431fc..881443d869d 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -361,7 +361,7 @@ void mux_set_focus(Chardev *chr, unsigned int focus)
     mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
 }
 
-static void mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevMux *mux = backend->u.mux.data;
     Chardev *drv;
@@ -370,12 +370,12 @@ static void mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     drv = qemu_chr_find(mux->chardev);
     if (drv == NULL) {
         error_setg(errp, "mux: base chardev %s not found", mux->chardev);
-        return;
+        return false;
     }
 
     d->focus = -1;
     if (!qemu_chr_fe_init(&d->chr, drv, errp)) {
-        return;
+        return false;
     }
 
     /*
@@ -385,6 +385,8 @@ static void mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     if (muxes_opened) {
         qemu_chr_be_event(chr, CHR_EVENT_OPENED);
     }
+
+    return true;
 }
 
 static void mux_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-null.c b/chardev/char-null.c
index 900b5febb6c..d5a101178bb 100644
--- a/chardev/char-null.c
+++ b/chardev/char-null.c
@@ -26,9 +26,9 @@
 #include "chardev/char.h"
 #include "qemu/module.h"
 
-static void null_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool null_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
-    /* do not send CHR_EVENT_OPENED */
+    return true;
 }
 
 static void char_null_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index 359efa3c9c8..cbf87e660da 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -157,7 +157,7 @@ static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
+static bool parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
 
@@ -165,11 +165,12 @@ static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 
     if (ioctl(fd, PPCLAIM) < 0) {
         error_setg_errno(errp, errno, "not a parallel port");
-        return;
+        return false;
     }
 
     drv->mode = IEEE1284_MODE_COMPAT;
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 #endif /* __linux__ */
 
@@ -225,15 +226,16 @@ static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
+static bool parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
     drv->fd = fd;
+    return true;
 }
 #endif
 
 #ifdef HAVE_CHARDEV_PARALLEL
-static void parallel_chr_open(Chardev *chr,
+static bool parallel_chr_open(Chardev *chr,
                               ChardevBackend *backend,
                               Error **errp)
 {
@@ -242,9 +244,9 @@ static void parallel_chr_open(Chardev *chr,
 
     fd = qmp_chardev_open_file_source(parallel->device, O_RDWR, errp);
     if (fd < 0) {
-        return;
+        return false;
     }
-    parallel_chr_open_fd(chr, fd, errp);
+    return parallel_chr_open_fd(chr, fd, errp);
 }
 
 static void parallel_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index 2f26372dfc9..472b3e0801f 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -103,21 +103,22 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
     return -1;
 }
 
-static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     const char *filename = opts->device;
 
     if (win_chr_pipe_init(chr, filename, errp) < 0) {
-        return;
+        return false;
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 #else
 
-static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     int fd_in, fd_out;
@@ -143,7 +144,7 @@ static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         );
         if (fd_in < 0) {
             error_setg_file_open(errp, errno, filename);
-            return;
+            return false;
         }
     }
 
@@ -152,10 +153,11 @@ static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (fd_out != fd_in) {
             close(fd_out);
         }
-        return;
+        return false;
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 #endif /* !_WIN32 */
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index d4d69a29a95..9e26e97baf5 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -331,7 +331,7 @@ static int qemu_openpty_raw(int *aslave, char *pty_name)
     return amaster;
 }
 
-static void pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     PtyChardev *s;
     int master_fd, slave_fd;
@@ -342,13 +342,13 @@ static void pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     master_fd = qemu_openpty_raw(&slave_fd, pty_name);
     if (master_fd < 0) {
         error_setg_errno(errp, errno, "Failed to create PTY");
-        return;
+        return false;
     }
 
     close(slave_fd);
     if (!qemu_set_blocking(master_fd, false, errp)) {
         close(master_fd);
-        return;
+        return false;
     }
 
     chr->filename = g_strdup_printf("pty:%s", pty_name);
@@ -368,10 +368,13 @@ static void pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
         if (res != 0) {
             error_setg_errno(errp, errno, "Failed to create PTY symlink");
+            return false;
         } else {
             s->path = g_strdup(path);
         }
     }
+
+    return true;
 }
 
 static void pty_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index 30b17a96d3a..8f998d26a49 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -92,7 +92,7 @@ static void char_ringbuf_finalize(Object *obj)
     g_free(d->cbuf);
 }
 
-static void ringbuf_chr_open(Chardev *chr,
+static bool ringbuf_chr_open(Chardev *chr,
                              ChardevBackend *backend,
                              Error **errp)
 {
@@ -104,7 +104,7 @@ static void ringbuf_chr_open(Chardev *chr,
     /* The size must be power of 2 */
     if (d->size & (d->size - 1)) {
         error_setg(errp, "size of ringbuf chardev must be power of two");
-        return;
+        return false;
     }
 
     d->prod = 0;
@@ -112,6 +112,7 @@ static void ringbuf_chr_open(Chardev *chr,
     d->cbuf = g_malloc0(d->size);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 void qmp_ringbuf_write(const char *device, const char *data,
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 9995f184258..0c73bafc545 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -41,15 +41,17 @@
 
 #ifdef _WIN32
 
-static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
     int ret = win_chr_serial_init(chr, serial->device, errp);
     if (ret < 0) {
-        return;
+        return false;
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+
+    return true;
 }
 
 #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)      \
@@ -259,7 +261,7 @@ static int serial_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
     int fd;
@@ -267,20 +269,21 @@ static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     fd = qmp_chardev_open_file_source(serial->device, O_RDWR | O_NONBLOCK,
                                       errp);
     if (fd < 0) {
-        return;
+        return false;
     }
     if (!qemu_set_blocking(fd, false, errp)) {
         close(fd);
-        return;
+        return false;
     }
     tty_serial_init(fd, 115200, 'N', 8, 1);
 
     if (!qemu_chr_open_fd(chr, fd, fd, errp)) {
         close(fd);
-        return;
+        return false;
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 #endif /* __linux__ || __sun__ */
 
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 2951b2ec9be..908bbdbc124 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1365,7 +1365,7 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
 }
 
 
-static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
     ChardevSocket *sock = backend->u.socket.data;
@@ -1390,7 +1390,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (!creds) {
             error_setg(errp, "No TLS credentials with id '%s'",
                        sock->tls_creds);
-            return;
+            return false;
         }
         s->tls_creds = (QCryptoTLSCreds *)
             object_dynamic_cast(creds,
@@ -1398,7 +1398,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (!s->tls_creds) {
             error_setg(errp, "Object with id '%s' is not TLS credentials",
                        sock->tls_creds);
-            return;
+            return false;
         }
         object_ref(OBJECT(s->tls_creds));
         if (!qcrypto_tls_creds_check_endpoint(s->tls_creds,
@@ -1406,7 +1406,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
                                           ? QCRYPTO_TLS_CREDS_ENDPOINT_SERVER
                                           : QCRYPTO_TLS_CREDS_ENDPOINT_CLIENT,
                                           errp)) {
-            return;
+            return false;
         }
     }
     s->tls_authz = g_strdup(sock->tls_authz);
@@ -1414,7 +1414,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     s->addr = addr = socket_address_flatten(sock->addr);
 
     if (!qmp_chardev_validate_socket(sock, addr, errp)) {
-        return;
+        return false;
     }
 
     qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_RECONNECTABLE);
@@ -1431,7 +1431,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
      */
     if (!chr->handover_yank_instance) {
         if (!yank_register_instance(CHARDEV_YANK_INSTANCE(chr->label), errp)) {
-            return;
+            return false;
         }
     }
     s->registered_yank = true;
@@ -1441,15 +1441,16 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     if (s->is_listen) {
         if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
                                            is_waitconnect, errp) < 0) {
-            return;
+            return false;
         }
     } else {
         if (qmp_chardev_open_socket_client(chr, reconnect_ms, errp) < 0) {
-            return;
+            return false;
         }
     }
 
     /* be isn't opened until we get a connection */
+    return true;
 }
 
 static void tcp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index 534f6ed5658..fe1cbb2d880 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -85,19 +85,19 @@ static void term_stdio_handler(int sig)
     stdio_chr_set_echo(NULL, stdio_echo_state);
 }
 
-static void stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
     struct sigaction act;
 
     if (is_daemonized()) {
         error_setg(errp, "cannot use stdio with -daemonize");
-        return;
+        return false;
     }
 
     if (stdio_in_use) {
         error_setg(errp, "cannot use stdio by multiple character devices");
-        return;
+        return false;
     }
 
     stdio_in_use = true;
@@ -105,11 +105,11 @@ static void stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     old_fd1_flags = fcntl(1, F_GETFL);
     tcgetattr(0, &oldtty);
     if (!qemu_set_blocking(0, false, errp)) {
-        return;
+        return false;
     }
 
     if (!qemu_chr_open_fd(chr, 0, 1, errp)) {
-        return;
+        return false;
     }
 
     atexit(term_exit);
@@ -122,6 +122,7 @@ static void stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     stdio_chr_set_echo(chr, false);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 #endif
 
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 4c81c95e656..423000832ff 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -188,7 +188,7 @@ static void udp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
     }
 }
 
-static void upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevUdp *udp = backend->u.udp.data;
     SocketAddress *local_addr = socket_address_flatten(udp->local);
@@ -203,7 +203,7 @@ static void upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     qapi_free_SocketAddress(remote_addr);
     if (ret < 0) {
         object_unref(OBJECT(sioc));
-        return;
+        return false;
     }
 
     name = g_strdup_printf("chardev-udp-%s", chr->label);
@@ -212,6 +212,7 @@ static void upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     s->ioc = QIO_CHANNEL(sioc);
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void char_udp_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index 0535960ff1b..bb9c195a8b1 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -142,7 +142,7 @@ static void win_stiod_chr_set_echo(Chardev *chr, bool echo)
     }
 }
 
-static void win_stdio_chr_open(Chardev *chr,
+static bool win_stdio_chr_open(Chardev *chr,
                                ChardevBackend *backend,
                                Error **errp)
 {
@@ -155,7 +155,7 @@ static void win_stdio_chr_open(Chardev *chr,
     stdio->hStdIn = GetStdHandle(STD_INPUT_HANDLE);
     if (stdio->hStdIn == INVALID_HANDLE_VALUE) {
         error_setg(errp, "cannot open stdio: invalid handle");
-        return;
+        return false;
     }
 
     is_console = GetConsoleMode(stdio->hStdIn, &dwMode) != 0;
@@ -208,7 +208,7 @@ static void win_stdio_chr_open(Chardev *chr,
     win_stiod_chr_set_echo(chr, false);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
-    return;
+    return true;
 
 err3:
     qemu_del_wait_object(stdio->hInputReadyEvent, NULL, NULL);
@@ -217,6 +217,7 @@ err2:
     CloseHandle(stdio->hInputDoneEvent);
 err1:
     qemu_del_wait_object(stdio->hStdIn, NULL, NULL);
+    return false;
 }
 
 static void char_win_stdio_finalize(Object *obj)
diff --git a/chardev/msmouse.c b/chardev/msmouse.c
index 9dc04e3b3ec..365f04546e9 100644
--- a/chardev/msmouse.c
+++ b/chardev/msmouse.c
@@ -253,7 +253,7 @@ static void char_msmouse_finalize(Object *obj)
     fifo8_destroy(&mouse->outbuf);
 }
 
-static void msmouse_chr_open(Chardev *chr,
+static bool msmouse_chr_open(Chardev *chr,
                              ChardevBackend *backend,
                              Error **errp)
 {
@@ -265,6 +265,7 @@ static void msmouse_chr_open(Chardev *chr,
     fifo8_create(&mouse->outbuf, MSMOUSE_BUF_SZ);
 
     /* Never send CHR_EVENT_OPENED */
+    return true;
 }
 
 static void char_msmouse_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/spice.c b/chardev/spice.c
index f5b1f585eb1..ad97d98ac6b 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -251,7 +251,7 @@ static void chr_open(Chardev *chr, const char *subtype)
     s->sin.subtype = g_strdup(subtype);
 }
 
-static void spice_vmc_chr_open(Chardev *chr, ChardevBackend *backend,
+static bool spice_vmc_chr_open(Chardev *chr, ChardevBackend *backend,
                                Error **errp)
 {
     ChardevSpiceChannel *spicevmc = backend->u.spicevmc.data;
@@ -272,13 +272,14 @@ static void spice_vmc_chr_open(Chardev *chr, ChardevBackend *backend,
                           subtypes);
 
         g_free(subtypes);
-        return;
+        return false;
     }
 
     chr_open(chr, type);
+    return true;
 }
 
-static void spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
+static bool spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
                                 Error **errp)
 {
     ChardevSpicePort *spiceport = backend->u.spiceport.data;
@@ -287,12 +288,12 @@ static void spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
 
     if (name == NULL) {
         error_setg(errp, "missing name parameter");
-        return;
+        return false;
     }
 
     if (!using_spice) {
         error_setg(errp, "spice not enabled");
-        return;
+        return false;
     }
 
     chr_open(chr, "port");
@@ -301,6 +302,7 @@ static void spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
     s->sin.portname = g_strdup(name);
 
     vmc_register_interface(s);
+    return true;
 }
 
 static void spice_vmc_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/wctablet.c b/chardev/wctablet.c
index 65b2ceb58c9..214d5ca2e28 100644
--- a/chardev/wctablet.c
+++ b/chardev/wctablet.c
@@ -324,7 +324,7 @@ static void wctablet_chr_finalize(Object *obj)
     }
 }
 
-static void wctablet_chr_open(Chardev *chr,
+static bool wctablet_chr_open(Chardev *chr,
                               ChardevBackend *backend,
                               Error **errp)
 {
@@ -339,6 +339,7 @@ static void wctablet_chr_open(Chardev *chr,
                                              &wctablet_handler);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void wctablet_chr_class_init(ObjectClass *oc, const void *data)
diff --git a/gdbstub/system.c b/gdbstub/system.c
index 982857f314a..e86c5870abc 100644
--- a/gdbstub/system.c
+++ b/gdbstub/system.c
@@ -233,9 +233,10 @@ static int gdb_chr_write(Chardev *chr, const uint8_t *buf, int len)
     return len;
 }
 
-static void gdb_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool gdb_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     /* Never send CHR_EVENT_OPENED */
+    return true;
 }
 
 static void char_gdb_class_init(ObjectClass *oc, const void *data)
diff --git a/ui/console-vc.c b/ui/console-vc.c
index 4c8ea4c1485..f22806fed79 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -1093,7 +1093,7 @@ void qemu_text_console_update_size(QemuTextConsole *c)
     dpy_text_resize(QEMU_CONSOLE(c), c->width, c->height);
 }
 
-static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevVC *vc = backend->u.vc.data;
     VCChardev *drv = VC_CHARDEV(chr);
@@ -1142,6 +1142,7 @@ static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void vc_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/ui/dbus-chardev.c b/ui/dbus-chardev.c
index 3e471f84cd8..9442b475517 100644
--- a/ui/dbus-chardev.c
+++ b/ui/dbus-chardev.c
@@ -176,7 +176,7 @@ dbus_chr_send_break(
     return DBUS_METHOD_INVOCATION_HANDLED;
 }
 
-static void dbus_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool dbus_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ERRP_GUARD();
 
@@ -206,9 +206,9 @@ static void dbus_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_parse(
         opts, be, errp);
     if (*errp) {
-        return;
+        return false;
     }
-    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_open(
+    return CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_open(
         chr, be, errp);
 }
 
diff --git a/ui/gtk.c b/ui/gtk.c
index 44b2b868ec9..9ebe7e8df0d 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1963,11 +1963,11 @@ static void gd_vc_chr_set_echo(Chardev *chr, bool echo)
 
 static int nb_vcs;
 static Chardev *vcs[MAX_VCS];
-static void gd_vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool gd_vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     if (nb_vcs == MAX_VCS) {
         error_setg(errp, "Maximum number of consoles reached");
-        return;
+        return false;
     }
 
     vcs[nb_vcs++] = chr;
@@ -1976,6 +1976,7 @@ static void gd_vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
      * console/chardev init sometimes completes elsewhere in a 2nd
      * stage, so defer OPENED events until they are fully initialized
      */
+    return true;
 }
 
 static void char_gd_vc_class_init(ObjectClass *oc, const void *data)
diff --git a/ui/spice-app.c b/ui/spice-app.c
index 7ac9ae4e78d..9e55f273715 100644
--- a/ui/spice-app.c
+++ b/ui/spice-app.c
@@ -49,7 +49,7 @@ struct VCChardev {
 
 struct VCChardevClass {
     ChardevClass parent;
-    void (*parent_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
+    bool (*parent_init)(Chardev *chr, ChardevBackend *backend, Error **errp);
 };
 
 #define TYPE_CHARDEV_VC "chardev-vc"
@@ -66,11 +66,12 @@ chr_spice_backend_new(void)
     return be;
 }
 
-static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     VCChardevClass *vc = CHARDEV_VC_GET_CLASS(chr);
     ChardevBackend *be;
     const char *fqdn = NULL;
+    bool ok;
 
     if (strstart(chr->label, "serial", NULL)) {
         fqdn = "org.qemu.console.serial.0";
@@ -83,8 +84,9 @@ static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     be = chr_spice_backend_new();
     be->u.spiceport.data->fqdn = fqdn ?
         g_strdup(fqdn) : g_strdup_printf("org.qemu.console.%s", chr->label);
-    vc->parent_open(chr, be, errp);
+    ok = vc->parent_init(chr, be, errp);
     qapi_free_ChardevBackend(be);
+    return ok;
 }
 
 static void vc_chr_set_echo(Chardev *chr, bool echo)
@@ -102,7 +104,7 @@ static void char_vc_class_init(ObjectClass *oc, const void *data)
     VCChardevClass *vc = CHARDEV_VC_CLASS(oc);
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    vc->parent_open = cc->chr_open;
+    vc->parent_init = cc->chr_open;
 
     cc->chr_parse = vc_chr_parse;
     cc->chr_open = vc_chr_open;
diff --git a/ui/vdagent.c b/ui/vdagent.c
index 644e9acaaeb..7ff0861f3e9 100644
--- a/ui/vdagent.c
+++ b/ui/vdagent.c
@@ -660,8 +660,7 @@ static void vdagent_chr_recv_clipboard(VDAgentChardev *vd, VDAgentMessage *msg)
 /* ------------------------------------------------------------------ */
 /* chardev backend                                                    */
 
-static void vdagent_chr_open(Chardev *chr,
-                             ChardevBackend *backend,
+static bool vdagent_chr_open(Chardev *chr, ChardevBackend *backend,
                              Error **errp)
 {
     VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(chr);
@@ -673,7 +672,7 @@ static void vdagent_chr_open(Chardev *chr,
      * so we have to byteswap everything on BE hosts.
      */
     error_setg(errp, "vdagent is not supported on bigendian hosts");
-    return;
+    return false;
 #endif
 
     vd->mouse = VDAGENT_MOUSE_DEFAULT;
@@ -692,6 +691,7 @@ static void vdagent_chr_open(Chardev *chr,
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void vdagent_clipboard_peer_register(VDAgentChardev *vd)
@@ -1074,7 +1074,7 @@ static const VMStateDescription vmstate_vdagent = {
     }
 };
 
-static void vdagent_chr_init(Object *obj)
+static void vdagent_chr_instance_init(Object *obj)
 {
     VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(obj);
 
@@ -1097,7 +1097,7 @@ static const TypeInfo vdagent_chr_type_info = {
     .name = TYPE_CHARDEV_QEMU_VDAGENT,
     .parent = TYPE_CHARDEV,
     .instance_size = sizeof(VDAgentChardev),
-    .instance_init = vdagent_chr_init,
+    .instance_init = vdagent_chr_instance_init,
     .instance_finalize = vdagent_chr_fini,
     .class_init = vdagent_chr_class_init,
 };
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:38:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:38:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227525.1533922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9UM-0006t9-1Z; Wed, 11 Feb 2026 12:38:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227525.1533922; Wed, 11 Feb 2026 12:38:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9UL-0006t2-Ut; Wed, 11 Feb 2026 12:38:37 +0000
Received: by outflank-mailman (input) for mailman id 1227525;
 Wed, 11 Feb 2026 12:38: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9NB-00016c-MI
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31:13 +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 8c0fe2a3-0745-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 13:31:11 +0100 (CET)
Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-389-qiGiuxj6PlqMG7wbownoNg-1; Wed,
 11 Feb 2026 07:31:09 -0500
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id A8B1619560A2; Wed, 11 Feb 2026 12:31:07 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 0EFB618004AD; Wed, 11 Feb 2026 12:31: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: 8c0fe2a3-0745-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813070;
	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=F4BORkMGuDDVLyTEyiaLb3JWHa0y/2ix01bD3RCQTgw=;
	b=Urc/cFFSlS+0b7lP7P8P7QckX8MoYVAIjTfZ46RWompBfKMUUGKdINzC1obsE9S1nfMx2J
	8QaYKt/dERgVa/McKblivwk6SPDwYDLuMsFJ+9JgQeH+NMcV3z7uITMH9EywWPfGM8OpTM
	nlVTl48spywIkQn0xlxnbdaL3CNdxB0=
X-MC-Unique: qiGiuxj6PlqMG7wbownoNg-1
X-Mimecast-MFC-AGG-ID: qiGiuxj6PlqMG7wbownoNg_1770813067
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 09/14] chardev: introduce .chr_get_pty_name() handler
Date: Wed, 11 Feb 2026 16:29:56 +0400
Message-ID: <20260211123007.3569932-10-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: 2wdgSEG2EszoSwDlsMDW-MhjCObKdsC2deyVHNLcFlU_1770813067
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Currently we do two wrong things:

1. Abuse s->filename to get pty_name from it

2. Violate layering with help of CHARDEV_IS_PTY()

Let's get rid of both, and introduce correct way to get pty name in
generic code, if available.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-9-vsementsov@yandex-team.ru>
---
 include/chardev/char.h |  7 +++++--
 chardev/char-pty.c     |  7 +++++++
 chardev/char.c         | 19 +++++++++++++------
 hw/char/xen_console.c  |  7 ++++---
 4 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index e1bf97222b8..ada5529fa6c 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -247,8 +247,6 @@ OBJECT_DECLARE_TYPE(Chardev, ChardevClass, CHARDEV)
 
 #define CHARDEV_IS_RINGBUF(chr) \
     object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_RINGBUF)
-#define CHARDEV_IS_PTY(chr) \
-    object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_PTY)
 
 struct ChardevClass {
     ObjectClass parent_class;
@@ -308,6 +306,9 @@ struct ChardevClass {
     void (*chr_be_event)(Chardev *s, QEMUChrEvent event);
 
     void (*chr_listener_cleanup)(Chardev *chr);
+
+    /* return PTY name if available */
+    char *(*chr_get_pty_name)(Chardev *s);
 };
 
 Chardev *qemu_chardev_new(const char *id, const char *typename,
@@ -322,4 +323,6 @@ GSource *qemu_chr_timeout_add_ms(Chardev *chr, guint ms,
 void suspend_mux_open(void);
 void resume_mux_open(void);
 
+char *qemu_chr_get_pty_name(Chardev *chr);
+
 #endif
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index a582aa7bc73..047aade09e5 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -387,6 +387,12 @@ static void pty_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
     pty->path = g_strdup(path);
 }
 
+static char *pty_chr_get_pty_name(Chardev *chr)
+{
+    PtyChardev *s = PTY_CHARDEV(chr);
+    return g_strdup(s->pty_name);
+}
+
 static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
@@ -396,6 +402,7 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
     cc->chr_write = pty_chr_write;
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
+    cc->chr_get_pty_name = pty_chr_get_pty_name;
 }
 
 static const TypeInfo char_pty_type_info = {
diff --git a/chardev/char.c b/chardev/char.c
index 44bfed36272..0dc792b88f7 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -1090,9 +1090,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend,
     }
 
     ret = g_new0(ChardevReturn, 1);
-    if (CHARDEV_IS_PTY(chr)) {
-        ret->pty = g_strdup(chr->filename + 4);
-    }
+    ret->pty = qemu_chr_get_pty_name(chr);
 
     return ret;
 
@@ -1101,6 +1099,17 @@ err:
     return NULL;
 }
 
+char *qemu_chr_get_pty_name(Chardev *chr)
+{
+    ChardevClass *cc = CHARDEV_GET_CLASS(chr);
+
+    if (cc->chr_get_pty_name) {
+        return cc->chr_get_pty_name(chr);
+    }
+
+    return NULL;
+}
+
 ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
                                   Error **errp)
 {
@@ -1192,9 +1201,7 @@ ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
     object_unref(OBJECT(chr_new));
 
     ret = g_new0(ChardevReturn, 1);
-    if (CHARDEV_IS_PTY(chr_new)) {
-        ret->pty = g_strdup(chr_new->filename + 4);
-    }
+    ret->pty = qemu_chr_get_pty_name(chr_new);
 
     return ret;
 }
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
index 8ee098d9ad4..bdeb76dc870 100644
--- a/hw/char/xen_console.c
+++ b/hw/char/xen_console.c
@@ -418,6 +418,7 @@ static void xen_console_realize(XenDevice *xendev, Error **errp)
     XenConsole *con = XEN_CONSOLE_DEVICE(xendev);
     Chardev *cs = qemu_chr_fe_get_driver(&con->chr);
     unsigned int u;
+    g_autofree char *pty_name = NULL;
 
     if (!cs) {
         error_setg(errp, "no backing character device");
@@ -450,9 +451,9 @@ static void xen_console_realize(XenDevice *xendev, Error **errp)
 
     trace_xen_console_realize(con->dev, object_get_typename(OBJECT(cs)));
 
-    if (CHARDEV_IS_PTY(cs)) {
-        /* Strip the leading 'pty:' */
-        xen_device_frontend_printf(xendev, "tty", "%s", cs->filename + 4);
+    pty_name = qemu_chr_get_pty_name(cs);
+    if (pty_name) {
+        xen_device_frontend_printf(xendev, "tty", "%s", pty_name);
     }
 
     /* No normal PV driver initialization for the primary console under Xen */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:38:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:38:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227526.1533932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9UT-0007C7-8d; Wed, 11 Feb 2026 12:38:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227526.1533932; Wed, 11 Feb 2026 12:38: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 1vq9UT-0007C0-63; Wed, 11 Feb 2026 12:38:45 +0000
Received: by outflank-mailman (input) for mailman id 1227526;
 Wed, 11 Feb 2026 12:38: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9N7-0001nh-F2
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31:09 +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 8a39594c-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:31:08 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-45-pzo26kLgOTqOlnqtBd77Iw-1; Wed,
 11 Feb 2026 07:31:04 -0500
Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id D4B261800282; Wed, 11 Feb 2026 12:31:01 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 5A08C1956056; Wed, 11 Feb 2026 12:30: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: 8a39594c-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813067;
	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=47+h7KsUk4pIeVRSrl5x3R/+mYPfTcUJPXIJdzZh/Nw=;
	b=MFaYlZbAwjD3Wk5zykf1DRFQ3U3spCBoJv+qMv9A7nwWIJR/q8TFqxVYtsbcOAn2giBMqN
	rRBtNIrO0yZEQ7qc/zukPoOZBAf+9MOHmn4Pa3pTK+DluZ2K2EPVxrwYHAa5y9U6j/GmCI
	995Z6fm+sOu6AYSz1HT8/3xjU/wJqjI=
X-MC-Unique: pzo26kLgOTqOlnqtBd77Iw-1
X-Mimecast-MFC-AGG-ID: pzo26kLgOTqOlnqtBd77Iw_1770813062
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 08/14] chardev/char-pty: store pty_name into PtyChardev state
Date: Wed, 11 Feb 2026 16:29:55 +0400
Message-ID: <20260211123007.3569932-9-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17
X-Mimecast-MFC-PROC-ID: vuGF1DX707vTfxUNMgM81DAZPeUC5vI5eVuXPjFZLEo_1770813062
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

We'll use it in following commit.

Note the bonus: stop use blind strcpy().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-8-vsementsov@yandex-team.ru>
---
 chardev/char-pty.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 9e26e97baf5..a582aa7bc73 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -43,6 +43,7 @@ struct PtyChardev {
     int connected;
     GSource *timer_src;
     char *path;
+    char *pty_name;
 };
 typedef struct PtyChardev PtyChardev;
 
@@ -303,7 +304,7 @@ static void cfmakeraw (struct termios *termios_p)
 #endif
 
 /* like openpty() but also makes it raw; return master fd */
-static int qemu_openpty_raw(int *aslave, char *pty_name)
+static int qemu_openpty_raw(int *aslave, char **pty_name)
 {
     int amaster;
     struct termios tty;
@@ -324,9 +325,7 @@ static int qemu_openpty_raw(int *aslave, char *pty_name)
     cfmakeraw(&tty);
     tcsetattr(*aslave, TCSAFLUSH, &tty);
 
-    if (pty_name) {
-        strcpy(pty_name, q_ptsname(amaster));
-    }
+    *pty_name = g_strdup(q_ptsname(amaster));
 
     return amaster;
 }
@@ -335,11 +334,12 @@ static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     PtyChardev *s;
     int master_fd, slave_fd;
-    char pty_name[PATH_MAX];
     char *name;
     char *path = backend->u.pty.data->path;
 
-    master_fd = qemu_openpty_raw(&slave_fd, pty_name);
+    s = PTY_CHARDEV(chr);
+
+    master_fd = qemu_openpty_raw(&slave_fd, &s->pty_name);
     if (master_fd < 0) {
         error_setg_errno(errp, errno, "Failed to create PTY");
         return false;
@@ -351,11 +351,10 @@ static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         return false;
     }
 
-    chr->filename = g_strdup_printf("pty:%s", pty_name);
+    chr->filename = g_strdup_printf("pty:%s", s->pty_name);
     qemu_printf("char device redirected to %s (label %s)\n",
-                pty_name, chr->label);
+                s->pty_name, chr->label);
 
-    s = PTY_CHARDEV(chr);
     s->ioc = QIO_CHANNEL(qio_channel_file_new_fd(master_fd));
     name = g_strdup_printf("chardev-pty-%s", chr->label);
     qio_channel_set_name(s->ioc, name);
@@ -364,7 +363,7 @@ static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     /* create symbolic link */
     if (path) {
-        int res = symlink(pty_name, path);
+        int res = symlink(s->pty_name, path);
 
         if (res != 0) {
             error_setg_errno(errp, errno, "Failed to create PTY symlink");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:38:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:38:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227527.1533938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9UT-0007FR-Jl; Wed, 11 Feb 2026 12:38:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227527.1533938; Wed, 11 Feb 2026 12:38: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 1vq9UT-0007Ew-Dd; Wed, 11 Feb 2026 12:38:45 +0000
Received: by outflank-mailman (input) for mailman id 1227527;
 Wed, 11 Feb 2026 12:38: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9NT-0001nh-7V
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31:31 +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 9726d49c-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:31:30 +0100 (CET)
Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-663-O6N5zASFObGpSC7yEto7wA-1; Wed,
 11 Feb 2026 07:31:26 -0500
Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 65CB419560A3; Wed, 11 Feb 2026 12:31:24 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 235A318003F6; Wed, 11 Feb 2026 12:31: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: 9726d49c-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813089;
	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=tpYjeot8p53E9hbudpSJPO+xYO8RwO13MoSHQweyb84=;
	b=JCG7WAJNXG042yyBVm5YVFFN/Z+jbzpOgc7zl+JEHtffvq0atvsh1G4ZDvXUCmReR0d11+
	sA5BsHCy2bqExEb3tXtISy/2gZCyEupkIa65AWpBIYQ7Y1XhbKfu4Lqh/wJFbTMYpoSskN
	NFE1OU75Ne+ii/MCHlW23UBkiIJYn00=
X-MC-Unique: O6N5zASFObGpSC7yEto7wA-1
X-Mimecast-MFC-AGG-ID: O6N5zASFObGpSC7yEto7wA_1770813084
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 12/14] char: qemu_chr_write_log() use qemu_write_full()
Date: Wed, 11 Feb 2026 16:29:59 +0400
Message-ID: <20260211123007.3569932-13-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111
X-Mimecast-MFC-PROC-ID: v9CM-dJxE4MCY49_nCw6IidR9wKR_S89aum6RIxiPi4_1770813084
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

logfd is blocking, so we don't need to care about EAGAIN.
Let's simply use qemu_write_full().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20260201173633.413934-2-vsementsov@yandex-team.ru>
---
 chardev/char.c | 22 +++++-----------------
 1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/chardev/char.c b/chardev/char.c
index 5d00cac2f31..4b285baf029 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -82,29 +82,17 @@ void qemu_chr_be_event(Chardev *s, QEMUChrEvent event)
     CHARDEV_GET_CLASS(s)->chr_be_event(s, event);
 }
 
-/* Not reporting errors from writing to logfile, as logs are
- * defined to be "best effort" only */
 static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
 {
-    size_t done = 0;
-    ssize_t ret;
-
     if (s->logfd < 0) {
         return;
     }
 
-    while (done < len) {
-    retry:
-        ret = write(s->logfd, buf + done, len - done);
-        if (ret == -1 && errno == EAGAIN) {
-            g_usleep(100);
-            goto retry;
-        }
-
-        if (ret <= 0) {
-            return;
-        }
-        done += ret;
+    if (qemu_write_full(s->logfd, buf, len) < len) {
+        /*
+         * qemu_write_full() is defined with G_GNUC_WARN_UNUSED_RESULT,
+         * but logging is best‑effort, we do ignore errors.
+         */
     }
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:38:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:38:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227533.1533951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Ub-0007px-Oz; Wed, 11 Feb 2026 12:38:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227533.1533951; Wed, 11 Feb 2026 12:38:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Ub-0007pm-M0; Wed, 11 Feb 2026 12:38:53 +0000
Received: by outflank-mailman (input) for mailman id 1227533;
 Wed, 11 Feb 2026 12:38: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9Nd-0001nh-NG
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31:41 +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 9d4dced9-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:31:41 +0100 (CET)
Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-68-WIujemrANsyyw5L1QkdvYg-1; Wed,
 11 Feb 2026 07:31:36 -0500
Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id C10951955F27; Wed, 11 Feb 2026 12:31:34 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 7D7B130001BF; Wed, 11 Feb 2026 12:31: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: 9d4dced9-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813099;
	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=oafPsMhhX2LYktt1mZytvPrd7reHuMI6cpisN3UVjHk=;
	b=aj445UeDgTtmkriiBG7dMmAJdELD6NkG3uNoUrYCkXLQeRhs/lu2oggiW//LVwmuDYX8yX
	s2uVXbaRM27ZmXdwLVlJWoxOBC+YZ2h2GJ3mTqXfwoQg/+fncAq2fneyq1de2EX0h0EVMQ
	B0L70j63ZFcaaIbKdoIWj0aQfzmc5iE=
X-MC-Unique: WIujemrANsyyw5L1QkdvYg-1
X-Mimecast-MFC-AGG-ID: WIujemrANsyyw5L1QkdvYg_1770813094
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 14/14] chardev: add logtimestamp option
Date: Wed, 11 Feb 2026 16:30:01 +0400
Message-ID: <20260211123007.3569932-15-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4
X-Mimecast-MFC-PROC-ID: dZjaz2DoEH78eRcqwCgXQ2BHDfDWB1jtulChYzIupms_1770813094
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Add an option to inject timestamps into serial log file.
That simplifies debugging a lot, when you can simply compare
QEMU logs with guest console logs.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20260201173633.413934-4-vsementsov@yandex-team.ru>
---
 qapi/char.json         |  6 +++-
 include/chardev/char.h |  2 ++
 chardev/char.c         | 63 ++++++++++++++++++++++++++++++++++++++----
 3 files changed, 65 insertions(+), 6 deletions(-)

diff --git a/qapi/char.json b/qapi/char.json
index 140614f82c3..a4abafa6803 100644
--- a/qapi/char.json
+++ b/qapi/char.json
@@ -197,11 +197,15 @@
 # @logappend: true to append instead of truncate (default to false to
 #     truncate)
 #
+# @logtimestamp: true to insert timestamps into logfile
+#     (default false) (since 11.0)
+#
 # Since: 2.6
 ##
 { 'struct': 'ChardevCommon',
   'data': { '*logfile': 'str',
-            '*logappend': 'bool' } }
+            '*logappend': 'bool',
+            '*logtimestamp': 'bool' } }
 
 ##
 # @ChardevFile:
diff --git a/include/chardev/char.h b/include/chardev/char.h
index 81bc0cbdf2a..c2c42e4b7a3 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -63,6 +63,8 @@ struct Chardev {
     CharFrontend *fe;
     char *label;
     int logfd;
+    bool logtimestamp;
+    bool log_line_start;
     int be_open;
     /* used to coordinate the chardev-change special-case: */
     bool handover_yank_instance;
diff --git a/chardev/char.c b/chardev/char.c
index 4b285baf029..48b326d57b9 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -82,12 +82,8 @@ void qemu_chr_be_event(Chardev *s, QEMUChrEvent event)
     CHARDEV_GET_CLASS(s)->chr_be_event(s, event);
 }
 
-static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
+static void do_write_log(Chardev *s, const uint8_t *buf, size_t len)
 {
-    if (s->logfd < 0) {
-        return;
-    }
-
     if (qemu_write_full(s->logfd, buf, len) < len) {
         /*
          * qemu_write_full() is defined with G_GNUC_WARN_UNUSED_RESULT,
@@ -96,6 +92,55 @@ static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
     }
 }
 
+static void do_write_log_timestamps(Chardev *s, const uint8_t *buf, size_t len)
+{
+    g_autofree char *timestr = NULL;
+
+    while (len) {
+        size_t i;
+
+        if (s->log_line_start) {
+            if (!timestr) {
+                timestr = real_time_iso8601();
+            }
+            do_write_log(s, (const uint8_t *)timestr, strlen(timestr));
+            do_write_log(s, (const uint8_t *)" ", 1);
+            s->log_line_start = false;
+        }
+
+        for (i = 0; i < len; i++) {
+            if (buf[i] == '\n') {
+                break;
+            }
+        }
+
+        if (i == len) {
+            /* not found \n */
+            do_write_log(s, buf, len);
+            return;
+        }
+
+        i += 1;
+        do_write_log(s, buf, i);
+        buf += i;
+        len -= i;
+        s->log_line_start = true;
+    }
+}
+
+static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
+{
+    if (s->logfd < 0) {
+        return;
+    }
+
+    if (s->logtimestamp) {
+        do_write_log_timestamps(s, buf, len);
+    } else {
+        do_write_log(s, buf, len);
+    }
+}
+
 static int qemu_chr_write_buffer(Chardev *s,
                                  const uint8_t *buf, int len,
                                  int *offset, bool write_all)
@@ -248,6 +293,7 @@ static bool qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         } else {
             flags |= O_TRUNC;
         }
+        chr->logtimestamp = common->has_logtimestamp && common->logtimestamp;
         chr->logfd = qemu_create(common->logfile, flags, 0666, errp);
         if (chr->logfd < 0) {
             return false;
@@ -267,6 +313,7 @@ static void char_init(Object *obj)
 
     chr->handover_yank_instance = false;
     chr->logfd = -1;
+    chr->log_line_start = true;
     qemu_mutex_init(&chr->chr_write_lock);
 
     /*
@@ -505,6 +552,9 @@ void qemu_chr_parse_common(QemuOpts *opts, ChardevCommon *backend)
     backend->logfile = g_strdup(logfile);
     backend->has_logappend = true;
     backend->logappend = qemu_opt_get_bool(opts, "logappend", false);
+
+    backend->has_logtimestamp = true;
+    backend->logtimestamp = qemu_opt_get_bool(opts, "logtimestamp", false);
 }
 
 static const ChardevClass *char_get_class(const char *driver, Error **errp)
@@ -956,6 +1006,9 @@ QemuOptsList qemu_chardev_opts = {
         },{
             .name = "logappend",
             .type = QEMU_OPT_BOOL,
+        },{
+            .name = "logtimestamp",
+            .type = QEMU_OPT_BOOL,
         },{
             .name = "mouse",
             .type = QEMU_OPT_BOOL,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:39:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:39:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227541.1533962 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Uj-0008LW-8q; Wed, 11 Feb 2026 12:39:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227541.1533962; Wed, 11 Feb 2026 12:39: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 1vq9Uj-0008LN-5C; Wed, 11 Feb 2026 12:39:01 +0000
Received: by outflank-mailman (input) for mailman id 1227541;
 Wed, 11 Feb 2026 12:39: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9NJ-0001nh-7Y
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31:21 +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 90f832f3-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:31:20 +0100 (CET)
Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-27-vuGe2ZcvOIGOm3x7YZ09mA-1; Wed,
 11 Feb 2026 07:31:15 -0500
Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id CCC011800454; Wed, 11 Feb 2026 12:31:13 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 738A330001A8; Wed, 11 Feb 2026 12:31: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: 90f832f3-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813078;
	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=NawPSV0+R7Z6iBTNYDG41PH3COFdnG/VW+iZ15ECL/g=;
	b=JZK+gZdIa7y5dr69Q073QF37R/hEdLi4fSXYoQcPO1Pc15qw3QNmqBjZCu7XufmwNLMsO2
	dRmvFtvEwU+FQJg8EnBYvCwGpxkMUn/KkTtg4gNjE0F7bbPF9QcPtWkSFs1L19PKwhN0QG
	grcnVbkQRyQcpqYvCAbcd1YXanuMRws=
X-MC-Unique: vuGe2ZcvOIGOm3x7YZ09mA-1
X-Mimecast-MFC-AGG-ID: vuGe2ZcvOIGOm3x7YZ09mA_1770813074
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 10/14] chardev: rework filename handling
Date: Wed, 11 Feb 2026 16:29:57 +0400
Message-ID: <20260211123007.3569932-11-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4
X-Mimecast-MFC-PROC-ID: c-_Sek1T2OdFJX7Kp4aPVImd5YgfiBwkExksSBCdhrc_1770813074
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Instead of checking, did backend set the filename state or not, let's
be stateless: filename is needed rarely, so, let's just have a generic
function (with optional implementation by backends) to get it.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
[ Marc-André - fix leak in ivshmem-pci.c ]
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-10-vsementsov@yandex-team.ru>
---
 include/chardev/char.h |  5 ++++-
 chardev/char-pty.c     |  8 +++++++-
 chardev/char-socket.c  | 31 ++++++++++++-------------------
 chardev/char.c         | 21 +++++++++++++++------
 hw/misc/ivshmem-pci.c  |  7 ++++---
 5 files changed, 42 insertions(+), 30 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index ada5529fa6c..81bc0cbdf2a 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -62,7 +62,6 @@ struct Chardev {
     QemuMutex chr_write_lock;
     CharFrontend *fe;
     char *label;
-    char *filename;
     int logfd;
     int be_open;
     /* used to coordinate the chardev-change special-case: */
@@ -309,6 +308,9 @@ struct ChardevClass {
 
     /* return PTY name if available */
     char *(*chr_get_pty_name)(Chardev *s);
+
+    /* get filename for reporting */
+    char *(*chr_get_filename)(Chardev *s);
 };
 
 Chardev *qemu_chardev_new(const char *id, const char *typename,
@@ -324,5 +326,6 @@ void suspend_mux_open(void);
 void resume_mux_open(void);
 
 char *qemu_chr_get_pty_name(Chardev *chr);
+char *qemu_chr_get_filename(Chardev *chr);
 
 #endif
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 047aade09e5..7e95132cdbb 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -351,7 +351,6 @@ static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         return false;
     }
 
-    chr->filename = g_strdup_printf("pty:%s", s->pty_name);
     qemu_printf("char device redirected to %s (label %s)\n",
                 s->pty_name, chr->label);
 
@@ -393,6 +392,12 @@ static char *pty_chr_get_pty_name(Chardev *chr)
     return g_strdup(s->pty_name);
 }
 
+static char *pty_chr_get_filename(Chardev *chr)
+{
+    PtyChardev *s = PTY_CHARDEV(chr);
+    return g_strdup_printf("pty:%s", s->pty_name);
+}
+
 static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
@@ -403,6 +408,7 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
     cc->chr_get_pty_name = pty_chr_get_pty_name;
+    cc->chr_get_filename = pty_chr_get_filename;
 }
 
 static const TypeInfo char_pty_type_info = {
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 908bbdbc124..5adeb908659 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -40,6 +40,7 @@
 
 static gboolean socket_reconnect_timeout(gpointer opaque);
 static void tcp_chr_telnet_init(Chardev *chr);
+static char *qemu_chr_compute_filename(SocketChardev *s);
 
 static void tcp_chr_change_state(SocketChardev *s, TCPChardevState state)
 {
@@ -384,8 +385,6 @@ static void tcp_chr_free_connection(Chardev *chr)
     s->sioc = NULL;
     object_unref(OBJECT(s->ioc));
     s->ioc = NULL;
-    g_free(chr->filename);
-    chr->filename = NULL;
     tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED);
 }
 
@@ -439,16 +438,17 @@ static char *qemu_chr_socket_address(SocketChardev *s, const char *prefix)
     }
 }
 
-static void update_disconnected_filename(SocketChardev *s)
+static char *tcp_chr_get_filename(Chardev *chr)
 {
-    Chardev *chr = CHARDEV(s);
+    SocketChardev *s = SOCKET_CHARDEV(chr);
 
-    g_free(chr->filename);
-    if (s->addr) {
-        chr->filename = qemu_chr_socket_address(s, "disconnected:");
-    } else {
-        chr->filename = g_strdup("disconnected:socket");
+    if (s->state == TCP_CHARDEV_STATE_CONNECTED) {
+        return qemu_chr_compute_filename(s);
+    } else if (s->addr) {
+        return qemu_chr_socket_address(s, "disconnected:");
     }
+
+    return g_strdup("disconnected:socket");
 }
 
 /* NB may be called even if tcp_chr_connect has not been
@@ -468,7 +468,6 @@ static void tcp_chr_disconnect_locked(Chardev *chr)
         qio_net_listener_set_client_func_full(s->listener, tcp_chr_accept,
                                               chr, NULL, chr->gcontext);
     }
-    update_disconnected_filename(s);
     if (emit_close) {
         qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
     }
@@ -639,9 +638,6 @@ static void tcp_chr_connect(void *opaque)
     Chardev *chr = CHARDEV(opaque);
     SocketChardev *s = SOCKET_CHARDEV(opaque);
 
-    g_free(chr->filename);
-    chr->filename = qemu_chr_compute_filename(s);
-
     tcp_chr_change_state(s, TCP_CHARDEV_STATE_CONNECTED);
     update_ioc_handlers(s);
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
@@ -1000,8 +996,8 @@ static void tcp_chr_accept_server_sync(Chardev *chr)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
     QIOChannelSocket *sioc;
-    info_report("QEMU waiting for connection on: %s",
-                chr->filename);
+    g_autofree char *filename = qemu_chr_get_filename(chr);
+    info_report("QEMU waiting for connection on: %s", filename);
     tcp_chr_change_state(s, TCP_CHARDEV_STATE_CONNECTING);
     sioc = qio_net_listener_wait_client(s->listener);
     tcp_chr_set_client_ioc_name(chr, sioc);
@@ -1258,8 +1254,6 @@ static int qmp_chardev_open_socket_server(Chardev *chr,
     s->addr = qio_net_listener_get_local_address(s->listener, 0, errp);
 
 skip_listen:
-    update_disconnected_filename(s);
-
     if (is_waitconnect) {
         tcp_chr_accept_server_sync(chr);
     } else {
@@ -1436,8 +1430,6 @@ static bool tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     }
     s->registered_yank = true;
 
-    update_disconnected_filename(s);
-
     if (s->is_listen) {
         if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
                                            is_waitconnect, errp) < 0) {
@@ -1593,6 +1585,7 @@ static void char_socket_class_init(ObjectClass *oc, const void *data)
     cc->chr_add_watch = tcp_chr_add_watch;
     cc->chr_update_read_handler = tcp_chr_update_read_handler;
     cc->chr_listener_cleanup = tcp_chr_listener_cleanup;
+    cc->chr_get_filename = tcp_chr_get_filename;
 
     object_class_property_add(oc, "addr", "SocketAddress",
                               char_socket_get_addr, NULL,
diff --git a/chardev/char.c b/chardev/char.c
index 0dc792b88f7..3373c9b61f8 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -309,7 +309,6 @@ static void char_finalize(Object *obj)
     if (chr->fe) {
         chr->fe->chr = NULL;
     }
-    g_free(chr->filename);
     g_free(chr->label);
     if (chr->logfd != -1) {
         close(chr->logfd);
@@ -796,7 +795,7 @@ static int qmp_query_chardev_foreach(Object *obj, void *data)
     ChardevInfo *value = g_malloc0(sizeof(*value));
 
     value->label = g_strdup(chr->label);
-    value->filename = g_strdup(chr->filename);
+    value->filename = qemu_chr_get_filename(chr);
     value->frontend_open = chr->fe && chr->fe->fe_is_open;
 
     QAPI_LIST_PREPEND(*list, value);
@@ -1025,10 +1024,6 @@ static Chardev *chardev_new(const char *id, const char *typename,
         return NULL;
     }
 
-    if (!chr->filename) {
-        chr->filename = g_strdup(typename + 8);
-    }
-
     return chr;
 }
 
@@ -1110,6 +1105,20 @@ char *qemu_chr_get_pty_name(Chardev *chr)
     return NULL;
 }
 
+char *qemu_chr_get_filename(Chardev *chr)
+{
+    ChardevClass *cc = CHARDEV_GET_CLASS(chr);
+    const char *typename;
+
+    if (cc->chr_get_filename) {
+        return cc->chr_get_filename(chr);
+    }
+
+    typename = object_get_typename(OBJECT(chr));
+    assert(g_str_has_prefix(typename, "chardev-"));
+    return g_strdup(typename + 8);
+}
+
 ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
                                   Error **errp)
 {
diff --git a/hw/misc/ivshmem-pci.c b/hw/misc/ivshmem-pci.c
index b9162589a02..a3a43f53bd1 100644
--- a/hw/misc/ivshmem-pci.c
+++ b/hw/misc/ivshmem-pci.c
@@ -873,10 +873,11 @@ static void ivshmem_common_realize(PCIDevice *dev, Error **errp)
         host_memory_backend_set_mapped(s->hostmem, true);
     } else {
         Chardev *chr = qemu_chr_fe_get_driver(&s->server_chr);
-        assert(chr);
+        g_autofree char *filename = NULL;
 
-        IVSHMEM_DPRINTF("using shared memory server (socket = %s)\n",
-                        chr->filename);
+        assert(chr);
+        filename = qemu_chr_get_filename(chr);
+        IVSHMEM_DPRINTF("using shared memory server (socket = %s)\n", filename);
 
         /* we allocate enough space for 16 peers and grow as needed */
         resize_peers(s, 16);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:39:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:39:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227555.1533973 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9Uy-0000l2-Ir; Wed, 11 Feb 2026 12:39:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227555.1533973; Wed, 11 Feb 2026 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 1vq9Uy-0000kt-D6; Wed, 11 Feb 2026 12:39:16 +0000
Received: by outflank-mailman (input) for mailman id 1227555;
 Wed, 11 Feb 2026 12:39: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=DopK=AP=kernel.org=sashal@srs-se1.protection.inumbo.net>)
 id 1vq9No-0001nh-6p
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31:52 +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 a3036b3f-0745-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 13:31:50 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 99D1D40299;
 Wed, 11 Feb 2026 12:31:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C97BBC19421;
 Wed, 11 Feb 2026 12:31: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: a3036b3f-0745-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1770813108;
	bh=W8TRYpIoLHSafIBZHOcM/I2GuwyMlNQIh5ra5DvldiQ=;
	h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
	b=Cb7kHJkpaJ+oF+1f0CI3Mnyrqme7h5dxui+DjsIxmnEZW7mTlF/jmxrWKSvqSB8bk
	 lm+UbBPnB/JSpWjVMpSA2B0R+LDMFuttB3WUSlm01BXlrJgo2otYjbK4Qrr068GnE/
	 bfyZybUW5fYfuhOS2tuKFjIW7ZwvE6/D8ExH+b55IJPMyILuCWwJNYa8ZRIRx+gB7t
	 7edcfcwwlWRh/ykHE2Hnm1NXwNxIozHhx8W5ulpXzaTs+8sOfoh7T1V2o4iUVqOh4i
	 arUg5WZuG2eChvLuYEf+kb7lXO8sz//PyK8vgEuWcHyP51ejBWQgJC62hNGZTIBusb
	 8C0+5IHM0A1IA==
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev,
	stable@vger.kernel.org
Cc: Hou Wenlong <houwenlong.hwl@antgroup.com>,
	Juergen Gross <jgross@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH AUTOSEL 6.19-5.10] x86/xen/pvh: Enable PAE mode for 32-bit guest only when CONFIG_X86_PAE is set
Date: Wed, 11 Feb 2026 07:30:28 -0500
Message-ID: <20260211123112.1330287-18-sashal@kernel.org>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260211123112.1330287-1-sashal@kernel.org>
References: <20260211123112.1330287-1-sashal@kernel.org>
MIME-Version: 1.0
X-stable: review
X-Patchwork-Hint: Ignore
X-stable-base: Linux 6.19
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Hou Wenlong <houwenlong.hwl@antgroup.com>

[ Upstream commit db9aded979b491a24871e1621cd4e8822dbca859 ]

The PVH entry is available for 32-bit KVM guests, and 32-bit KVM guests
do not depend on CONFIG_X86_PAE. However, mk_early_pgtbl_32() builds
different pagetables depending on whether CONFIG_X86_PAE is set.
Therefore, enabling PAE mode for 32-bit KVM guests without
CONFIG_X86_PAE being set would result in a boot failure during CR3
loading.

Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <d09ce9a134eb9cbc16928a5b316969f8ba606b81.1768017442.git.houwenlong.hwl@antgroup.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

Now I have all the information needed for a complete analysis.

---

## Detailed Analysis

### 1. Commit Message Analysis

The subject clearly states the problem: PAE mode is being
unconditionally enabled for all PVH guests, but for 32-bit guests it
should only be enabled when `CONFIG_X86_PAE` is set. The commit message
explicitly describes a **boot failure** scenario: loading CR3 fails when
the page table format doesn't match the CPU's paging mode expectation.

The commit is:
- Reviewed by Juergen Gross (Xen subsystem maintainer)
- Signed off by Juergen Gross (subsystem maintainer sign-off)

### 2. Code Change Analysis

**The Bug Mechanism:**

The PVH entry path in `arch/x86/platform/pvh/head.S` is the boot entry
point for PVH (Para-Virtualized Hardware) guests, used by Xen and KVM.
The flow is:

1. **Line 94-97** (before fix): PAE mode is unconditionally enabled in
   CR4:

```94:97:arch/x86/platform/pvh/head.S
        /* Enable PAE mode. */
        mov %cr4, %eax
        orl $X86_CR4_PAE, %eax
        mov %eax, %cr4
```

2. For **64-bit** guests (`CONFIG_X86_64`), this is correct — PAE is
   always needed as a prerequisite for long mode (line 99-104).

3. For **32-bit** guests (the `#else` path starting at line 196), the
   code calls `mk_early_pgtbl_32()` to build early page tables:

```196:205:arch/x86/platform/pvh/head.S
#else /* CONFIG_X86_64 */

        call mk_early_pgtbl_32

        mov $_pa(initial_page_table), %eax
        mov %eax, %cr3

        mov %cr0, %eax
        or $(X86_CR0_PG | X86_CR0_PE), %eax
        mov %eax, %cr0
```

4. `mk_early_pgtbl_32()` in `arch/x86/kernel/head32.c` builds
   **fundamentally different** page table structures depending on
   `CONFIG_X86_PAE`:

```95:103:arch/x86/kernel/head32.c
#ifdef CONFIG_X86_PAE
typedef pmd_t                   pl2_t;
#define pl2_base                initial_pg_pmd
#define SET_PL2(val)            { .pmd = (val), }
#else
typedef pgd_t                   pl2_t;
#define pl2_base                initial_page_table
#define SET_PL2(val)            { .pgd = (val), }
#endif
```

   - With `CONFIG_X86_PAE`: Builds **3-level PAE page tables**
     (PGDIR_SHIFT=30, uses PMDs + PDPTEs)
   - Without `CONFIG_X86_PAE`: Builds **2-level non-PAE page tables**
     (PGDIR_SHIFT=22, uses PGDs directly)

**The crash**: When PAE is enabled in CR4 but non-PAE page tables are
loaded into CR3, the CPU interprets the 2-level page directory as a PAE
PDPT (Page Directory Pointer Table). When paging is activated
(CR0.PG=1), the processor tries to load the PDPTE entries from the
address in CR3. The non-PAE page directory entries are completely
incompatible with PAE PDPTE format, causing a **#GP fault or triple
fault**, resulting in an immediate boot failure.

**The Fix:** Simply wrapping the PAE enablement with proper `#ifdef`
guards:

```asm
#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
        /* Enable PAE mode. */
        mov %cr4, %eax
        orl $X86_CR4_PAE, %eax
        mov %eax, %cr4
#endif
```

This ensures PAE is only enabled when:
- `CONFIG_X86_64` is set (64-bit always needs PAE for long mode), or
- `CONFIG_X86_PAE` is set (32-bit with PAE — page tables match)

Note that the 32-bit path at lines 212-220 already has code to disable
PAE before jumping to `startup_32`, which confirms the original author
was aware that PAE and non-PAE modes exist, but the initial enablement
was not properly guarded.

### 3. Classification

This is a **boot failure fix**. It's not a feature, cleanup, or
optimization. It fixes a configuration where a 32-bit PVH guest without
`CONFIG_X86_PAE` completely fails to boot.

### 4. Scope and Risk Assessment

- **Lines changed**: 2 lines added (`#if defined(...)` and `#endif`), 0
  lines removed
- **Files touched**: 1 (`arch/x86/platform/pvh/head.S`)
- **Complexity**: Minimal — conditional compilation guard
- **Risk**: Extremely low
  - For `CONFIG_X86_64`: No change (the `#if` is always true)
  - For `CONFIG_X86_32` with `CONFIG_X86_PAE`: No change (the `#if` is
    true)
  - For `CONFIG_X86_32` without `CONFIG_X86_PAE`: PAE is no longer
    enabled, matching the page table format — this is the bug fix
- **Regression potential**: Near zero. The only behavioral change is for
  the broken configuration that currently crashes.

### 5. User Impact

- **Who is affected**: Anyone running a 32-bit kernel without PAE as a
  PVH/KVM guest. This is a legitimate configuration since `config PVH`
  has no dependency on `CONFIG_X86_PAE` or `CONFIG_X86_64`.
- **Severity**: Complete boot failure — the system cannot boot at all
- **Workaround**: Users must enable `CONFIG_X86_PAE` for 32-bit PVH
  guests, which may not be obvious and adds unnecessary configuration
  constraints

### 6. Stability Indicators

- **Reviewed-by**: Juergen Gross (Xen subsystem maintainer) — very
  strong indicator
- **Signed-off-by**: Juergen Gross (accepted through the Xen tree)
- The fix is trivially correct by inspection — when `CONFIG_X86_PAE` is
  not set, enabling PAE in CR4 is wrong because the page tables aren't
  in PAE format

### 7. Dependency Check

- **No dependencies** on other patches — this is a completely self-
  contained fix
- The affected code (`pvh_start_xen` with the unconditional PAE
  enablement) exists in **all current stable trees** (confirmed present
  from v5.4 through v6.12)
- The fix context is slightly different in older stable trees (e.g.,
  `rep\n       movsl` vs `rep movsl`, PIC vs absolute addressing), so
  minor backport adjustments may be needed for older trees, but the fix
  itself (adding `#if`/`#endif` around the PAE lines) is trivial to
  adapt

### 8. Conclusion

This is a textbook stable kernel fix:
- **Fixes a real, severe bug**: Complete boot failure for a valid kernel
  configuration
- **Obviously correct**: The fix is a 2-line conditional compilation
  guard that makes PAE enablement match page table format
- **Small and contained**: 2 lines added to 1 file
- **No new features**: Just correctness fix
- **No risk of regression**: Only changes behavior for the currently-
  broken configuration
- **Present in all stable trees**: The bug has existed since the
  original PVH commit (v4.11, 2017)
- **Reviewed by subsystem maintainer**: Juergen Gross

**YES**

 arch/x86/platform/pvh/head.S | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/platform/pvh/head.S b/arch/x86/platform/pvh/head.S
index 344030c1a81d4..53ee2d53fcf8e 100644
--- a/arch/x86/platform/pvh/head.S
+++ b/arch/x86/platform/pvh/head.S
@@ -91,10 +91,12 @@ SYM_CODE_START(pvh_start_xen)
 
 	leal rva(early_stack_end)(%ebp), %esp
 
+#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
 	/* Enable PAE mode. */
 	mov %cr4, %eax
 	orl $X86_CR4_PAE, %eax
 	mov %eax, %cr4
+#endif
 
 #ifdef CONFIG_X86_64
 	/* Enable Long mode. */
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 12:39:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 12:39:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227568.1533982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9VD-0001Vh-Nx; Wed, 11 Feb 2026 12:39:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227568.1533982; Wed, 11 Feb 2026 12:39: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 1vq9VD-0001VY-L1; Wed, 11 Feb 2026 12:39:31 +0000
Received: by outflank-mailman (input) for mailman id 1227568;
 Wed, 11 Feb 2026 12:39: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=UZeC=AP=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vq9Nc-00016c-Eb
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 12:31:40 +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 9a39f093-0745-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 13:31:35 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-676-FYZ-7oebMfKy2oSzbnuHug-1; Wed,
 11 Feb 2026 07:31:31 -0500
Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 69E491800282; Wed, 11 Feb 2026 12:31:29 +0000 (UTC)
Received: from localhost (unknown [10.45.242.6])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 6BED718003F6; Wed, 11 Feb 2026 12:31: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: 9a39f093-0745-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770813094;
	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=jM55cKZhaLYd8jeB1eDli6p7CvLSuDmkHDqz2KhxR1g=;
	b=Z7IMSXpWHfPCAklRvbAXDGpqlE3WPHcKlTdLoAdhMGVjXTC5vuf0Skqeco+9BFVteyDHIj
	l3MRUVOWEcF+q7274Wwckr5uWAizJl0dliCbrCWYfLSh0xyGZUsXWYWxd7xUiEVVkppFUn
	FXPqVzBDCWDe/es0zo3diq3X5X+awb4=
X-MC-Unique: FYZ-7oebMfKy2oSzbnuHug-1
X-Mimecast-MFC-AGG-ID: FYZ-7oebMfKy2oSzbnuHug_1770813089
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Anthony PERARD <anthony@xenproject.org>,
	Eric Blake <eblake@redhat.com>,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	=?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL 13/14] error-report: make real_time_iso8601() public
Date: Wed, 11 Feb 2026 16:30:00 +0400
Message-ID: <20260211123007.3569932-14-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111
X-Mimecast-MFC-PROC-ID: A5TDt3lip-DGrywrDOD_YuOtJw35bjfLameypk1uEFI_1770813089
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

To be reused in the following commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20260201173633.413934-3-vsementsov@yandex-team.ru>
---
 include/qemu/error-report.h | 6 ++++++
 util/error-report.c         | 3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
index 3ae2357fda5..dc423d36071 100644
--- a/include/qemu/error-report.h
+++ b/include/qemu/error-report.h
@@ -74,4 +74,10 @@ extern bool message_with_timestamp;
 extern bool error_with_guestname;
 extern const char *error_guest_name;
 
+/*
+ * Return current datetime in ISO 8601 format.
+ * Caller is responsible to g_free() the returned string.
+ */
+char *real_time_iso8601(void);
+
 #endif
diff --git a/util/error-report.c b/util/error-report.c
index 1b17c11de19..d6b7448183a 100644
--- a/util/error-report.c
+++ b/util/error-report.c
@@ -169,8 +169,7 @@ static void print_loc(void)
     }
 }
 
-static char *
-real_time_iso8601(void)
+char *real_time_iso8601(void)
 {
     g_autoptr(GDateTime) dt = g_date_time_new_now_utc();
     return g_date_time_format_iso8601(dt);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 13:07:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 13:07:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227604.1533992 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vq9w8-0000KX-Q7; Wed, 11 Feb 2026 13:07:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227604.1533992; Wed, 11 Feb 2026 13:07: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 1vq9w8-0000KQ-NE; Wed, 11 Feb 2026 13:07:20 +0000
Received: by outflank-mailman (input) for mailman id 1227604;
 Wed, 11 Feb 2026 13:07: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vq9w6-0000KK-Uu
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 13:07: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 96af9854-074a-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 14:07:16 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso19113015e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 05:07:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d99e194sm35334155e9.8.2026.02.11.05.07.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 05:07:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96af9854-074a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770815236; x=1771420036; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eSHBXr8GkYYfTsEYs/TG8FluGNQdUJqEV4XOmrLk/ws=;
        b=g6Y5QgqSwmvb6gLGS8Zg9VPUnVSo2KaTR+qVdkdYm47/qc1Ixz4xpHkBxtg9iHaLIJ
         nY52BToFDXiN0GmBXGJMR2whp8YcBK9dMr/FKizPibx8fVeh52uUVDg0wXbBEBZYTb5M
         xtrWa1TVdVlY9SdeUSsqD4GQa2S1znNTALCym8hrRw22v8j0WiWqTVZAeQ5uEKTPOLpK
         jj6wVSdu6hBbnM7HRf9uPxrMcHHceOBMOTLXPg5CXPeR2mPfI4FWQU16dklfjUAizNr/
         a4kYpQhluS/TybN8t9iHItk0vLfowILWRW2Rsl60ETPeQ/LuusqACLpSanfmz9ni53Dl
         yiiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770815236; x=1771420036;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eSHBXr8GkYYfTsEYs/TG8FluGNQdUJqEV4XOmrLk/ws=;
        b=kp5i3KTDnjLK28qxfTU8wwZOXl+TYeU31x5l+lqKJPBcoNc4OhzSXGCAdP4obBtAJZ
         6QombjvKCOzpgm8fzlo5/us1c0EzsZNGP9ufLZqSI67Qfgd959JEGFL8zDI0fAz2uEmZ
         O5cdbnlIqtvGVmXzvZCob1QdxsFA7YA72xfsHbvynYC4q9gYNjx6Dd6oG6vYRj0yttXj
         koNfs9Y1Ux1T8/UQ0knnpSqzo26Xm90JjSUkiEDJ5S1f/hLX/saw2rbnhxK4AiyJ0WA0
         58PHuyZNmkLiytV+RSYQZLQzApfl7n5K6+rKrEDKQWG9cErPKJX6vITugkLXNDslrnOe
         M+mA==
X-Forwarded-Encrypted: i=1; AJvYcCXqK9yqJETNCpiUlJ+Ofi8AyCDtC05C0CSx+HjjfXDaDIPK+Hgnnb5yFqf4ClH0ZQEAt4k8aPlJJJM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzyGYDpfzZjvduzhlUeuSsyIq/nMuMGAjkHgf0s5z/u2op3Z7rz
	mwccPD6PBKRqW+PbkykOfTrOcQsbYcoOjKXVQmTWjXCM+APX4yNiTza0fcCkNSbfXQ==
X-Gm-Gg: AZuq6aJKcVRDN8c74Fb3d2NIt3FDoy4IxoaeVAuWjFUlSChr4l0t7p/DvP967iFokmN
	H9pQoTQMJq+3voQ6ThPrTcUy2/ZkBbo60+ec0wephLRWmMYxfKjWgU/CMY20+0ofupPRfn69epR
	Mfshg7Xw2vb/qXsd+JBD2Xe9aR1cXQqmv9LoI4QHDc84MvVI4QuMzx5v3lPrDE7+n5phaiWlQNX
	lEs5Nwh2H+kbYk4W+Ok499fQmid7KVrCKt3kfO2YmiaDzz/nqCB4E5groKVjyttgTfMafcyzhO8
	gI1zFBlE2sVpwxovEMdvbF7SK8Hum4j/E7qSgf6WKmUifw3FcKgB+Gyz8YN/PLvBO+72vtvoHE4
	bH2IDD+UuDLvspYHZd7T0EqZsl8Gaah5fq2T8a20lpyQ2+3GTzXOQNc+cabQnmFPddnmsW2csHL
	Mh2ooJf1FDbX7fmXQKXMrFse6isHzTD5YXkss1L6Ud1/ZHbIUOUVejjl0Xoo4ORXhdP2wG+aF9X
	PqncWWKLnKBweY=
X-Received: by 2002:a05:600c:3b23:b0:47f:8c05:786b with SMTP id 5b1f17b1804b1-4832021eae9mr256478535e9.28.1770815235550;
        Wed, 11 Feb 2026 05:07:15 -0800 (PST)
Message-ID: <3f1e043f-2cd1-43a3-9ec9-9323c133d8d1@suse.com>
Date: Wed, 11 Feb 2026 14:07:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/tools: remove usages of `stat -s` in
 check-endbr.sh
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>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-3-roger.pau@citrix.com>
 <35bdb10b-d39d-4e67-9ed8-c0b85ca5bd54@suse.com> <aYx064WIMMNmLAza@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: <aYx064WIMMNmLAza@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.02.2026 13:24, Roger Pau Monné wrote:
> On Wed, Feb 11, 2026 at 12:40:58PM +0100, Jan Beulich wrote:
>> On 11.02.2026 11:46, Roger Pau Monne wrote:
>>> --- a/xen/tools/check-endbr.sh
>>> +++ b/xen/tools/check-endbr.sh
>>> @@ -92,14 +92,15 @@ ${OBJDUMP} -j .text $1 -d -w | grep '	endbr64 *$' | cut -f 1 -d ':' > $VALID &
>>>  #    check nevertheless.
>>>  #
>>>  eval $(${OBJDUMP} -j .text $1 -h |
>>> -    $AWK '$2 == ".text" {printf "vma_hi=%s\nvma_lo=%s\n", substr($4, 1, 9), substr($4, 10, 16)}')
>>> +    $AWK '$2 == ".text" {printf "bin_sz=%s\nvma_hi=%s\nvma_lo=%s\n", "0x" $3, substr($4, 1, 9), substr($4, 10, 16)}')
>>>  
>>> -${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
>>> -
>>> -bin_sz=$(stat -c '%s' $TEXT_BIN)
>>> +# Convert objdump hex reported .text size to decimal
>>> +bin_sz=$(printf %u $bin_sz)
>>
>> (Alternatively without this line, but ...
>>
>>>  [ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&
>>
>> [ "$(($bin_sz))" -ge $(((1 << 28) - $vma_lo)) ] &&
>>
>> ?)
> 
> Isn't that bash-specific functionality?  The script interpreter is set
> as /bin/sh.

I, too, would have thought so, but then the rhs of the -ge already used $((...)).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 13:34:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 13:34:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227640.1534058 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqAMO-0000Qj-Hx; Wed, 11 Feb 2026 13:34:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227640.1534058; Wed, 11 Feb 2026 13:34:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqAMO-0000Qc-EI; Wed, 11 Feb 2026 13:34:28 +0000
Received: by outflank-mailman (input) for mailman id 1227640;
 Wed, 11 Feb 2026 13:34: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqAMN-0000QV-8E
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 13:34:27 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 60cad62c-074e-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 14:34:25 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH7PR03MB7367.namprd03.prod.outlook.com (2603:10b6:510:2f5::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.14; Wed, 11 Feb
 2026 13:34:18 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 13:34: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: 60cad62c-074e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H1XPxP3k7Y2aPth8+LihOv8PJ31NzXt/TSWxs20+WsaPI7zl3VqhLLpFzK0JlP+JATgqoqZ0lsTJlXYTK0sKRURexBTKBu2gHGUJhDYU6nWSA2oKihwW1CdSnEH6Ds0kG4RKuifgENO56eShFD9NRLPecGUhQKOmBgeJOHxscC5v9YIiCNO0ooZt4M5CzBF14g7mMpTlKYdg4jn6yHS94rt7af3kBpa4eJ6JWhLiZbkk/dQTGkxlWR0HGGnelIP+isr3VhA8Xkhv97zO3yrFUbAMwfrfwpTqWkSuxT0SvhMs2SKcMFPlYsI//Al/PvPc5eWI3DMhxaJXAlU4l4TWUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x1LG3wp6iwynYamW5A5tf/8u/hcbZBz25ZZeEB7jSAI=;
 b=dY0SwMstpS27PcgItBwLxZuS0mBgnAk9V2WbqTT0Cfcb8dI9vw5tjLFV3acrKuh6HOQTJMP8eCb/+FihQ5MSag+dq3YSYvvx7oiTUVXpuaR1ICXW+XdJzYuR1LiPYUSFVxa1MyZAESkiG0OqQaQNrMDu7eXxAfXEv7wk6iTXP/xIpYZxQ5UMuMrQAR5xD6GQm7gWb/OJ7ciJRG4FY1FPdb/mRMvySlk+5OLD/r2vR7X6K1bgLzZXXsxjlZlxj99BlQk1EJ5Ro/J9obKKSeWxGpJMeVGMWo+Gq4M5SeXnntr2WiPncwrmJfzS5CM4LS/bpa5ADBAmGJXp5zbVWMA2ZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=x1LG3wp6iwynYamW5A5tf/8u/hcbZBz25ZZeEB7jSAI=;
 b=yng6EB6dsRbE3QDQMQw17hn8/yDpfpf089/rkeFs5pQ8kSIPwzQcEahX8x+JhW7af7av5Lige0wBv02Og7ZlAeBZlsP1PdCLNRkqIoQcewk859nhgCqHHGzml9KeEEQk9CIMHTui8nsQK1ZxyJkD4Nn2u1uHwNB23ne7zFwb6WI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 11 Feb 2026 14:34:15 +0100
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>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/5] xen/tools: remove usages of `stat -s` in
 check-endbr.sh
Message-ID: <aYyFV9sIw_cAvruJ@Mac.lan>
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-3-roger.pau@citrix.com>
 <35bdb10b-d39d-4e67-9ed8-c0b85ca5bd54@suse.com>
 <aYx064WIMMNmLAza@Mac.lan>
 <3f1e043f-2cd1-43a3-9ec9-9323c133d8d1@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3f1e043f-2cd1-43a3-9ec9-9323c133d8d1@suse.com>
X-ClientProxiedBy: MA3P292CA0050.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH7PR03MB7367:EE_
X-MS-Office365-Filtering-Correlation-Id: f8a739b1-2027-4f44-713f-08de697241bb
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?S0hYcDJuQlU2ZmNyelhyQXV5RGFhY0wvRzRLU2FRdlQydTVwbGFQWjBzZDB6?=
 =?utf-8?B?cW1HRm9DcGozanBtSGpsbnRCU3VMcnJCY3BZYWMrazZhQVVDemhhQ0NPaS9l?=
 =?utf-8?B?RUV0akJPdzFOczFOczVRK0hBd0RUUnQ1c2pQalFQNEk4VmorR2p3aiswUk5Q?=
 =?utf-8?B?SGtKcHBjdXplTmRzVlNUc0s1ci96ZENicFdUN2cyblJVRVFtajl6RGJOSGtW?=
 =?utf-8?B?SnVYTVJGRitqcUwwYmV1bEVML2RBTHZQdllqZy9Lb0cveTVIak8xa2lOTHlo?=
 =?utf-8?B?dURHdVhIQ2p2c0RROGtLVTl3YVJ5K0ZPOXY4alJlY0ZBN3U4UUdSSXVQeTBN?=
 =?utf-8?B?a3dtR2xhcDJSMzJUZGtNelJuNU5vZzdvM0x1ci9DK2VFTUJlWUw2dko2WDFE?=
 =?utf-8?B?d2FaNzRhVnc0VHBXQjlpL2xXS1NkcFdkMG40N1JRVUlNR1A3dUxtVGVocmEw?=
 =?utf-8?B?ZzVMRmFFa0lQZDRNcExPZTNqUDRWYkEyRWRGRFU5Y0hoTTFHUHlkZXcwUlJF?=
 =?utf-8?B?WnVuYjlyR29PUTI4QXpucGJibGhhYzlycXpOUFRuOHpkWWZDVGRDbll1MHNM?=
 =?utf-8?B?eWFFc0JoSkpSRmpDcmlTSTZTOExnWHBIdkhGZDBuV3o5bmNMUFhoaTh5eEl6?=
 =?utf-8?B?enlycmM1K295aUlUSmFoT2owbzk4WkNwUFhRRXpycUxYSmI1ZGIvUmdOTTBG?=
 =?utf-8?B?cjhrZkttak1HT0lyMCtJZyttR2pOcG00N2hQU2puRVNDaTNFbVNoMk12eGdG?=
 =?utf-8?B?WTljcGsvZlBTaTdxZ3cwaS9ac2kydW1hNTZ0WVEwMFdRbDdmTmpqdjhHRXB0?=
 =?utf-8?B?Qnkyc0NhMnNnSHMyRkhWSW1heGtUc3ZVMFFVQ2tQVGtraExvMko1UnBWMlBM?=
 =?utf-8?B?UzNFc3hnNmc5TWw5czJCdSt6OU5ua2N0WjNDNGNDN04xbndKUmlXallObk5r?=
 =?utf-8?B?ZkpmMDNlNGgzWDFYeGs3ZjZRVVdiL2hWSUQ4cjkzWmEwNFVrZ1ZrNUdZRmdn?=
 =?utf-8?B?MGNaUVM3QXowVm45SE5GdzJLaU9mRWc1VHUvM3ZhTGxMUno3YUxXSkNONVd2?=
 =?utf-8?B?Z2RrR3VCdFFpNE5XQzFXRmlJTVVBMmRoQ21zeDNuZUROYzRCdlh2ejVRY3RM?=
 =?utf-8?B?QisvdExOS2JMTUJqN1dtdGpsMHY1eXN5UFBGZ2NYdHBON2hlbHgzZ2hIRjBZ?=
 =?utf-8?B?QzRKcHBNWEZQL2FVdG91ODlCMjdtODFhVUZ1NDlLdGJhcUtKQWZaS3dXR3hq?=
 =?utf-8?B?UVp3dWkxTmxNa05jRG05aENnSEt6ZzdRS3ZiS1R3UlorVXQ5WXpUM055V21Q?=
 =?utf-8?B?eHNxd0VmQzR0NEpoZW9YMFBWQ1R4azcwdU9GUXNrWHF4Rkp6b0FhaTNEaTZ1?=
 =?utf-8?B?TjArUEN6UlFwOCtEYjdlN05HdE12b1pncEY0dEd6bEFtUzFkdG13RzdtV2Mz?=
 =?utf-8?B?OE5HQWVyaVJ1ZmtYWVY3c1NCdk9hQnR5SGxQM0hEMnJDUGVqdlcwLyt1dVRU?=
 =?utf-8?B?Mm5EbEZEQTlzU2ZkRmlwbW9RMStFOVIyL3IwZVhzRkMyRyt5SUZOYU9JUU1t?=
 =?utf-8?B?NXRHSmMzcnpWcjNqR1h1UCtYVnlxc3BFbXRxcWlHcGZhWXdpUmJGQVZ6S2Ir?=
 =?utf-8?B?VGxoV2xZcDdoTjhDUGE2aWRhU1BGTHd3djUzcGYrelRHN2RSY1JlV1Y5TlFE?=
 =?utf-8?B?M3YzaXFIZ25wUHF2alBmcEMzUWFPSmo1UjRwa1J4QnN2MWFYaUtQaU9zOFBQ?=
 =?utf-8?B?eGJlVEZvYkZnMXpsQi9JZTJJNmpwdy80dURBVzF2b05YSVpVbDY3N1dlQXl1?=
 =?utf-8?B?b1hvT25FTkVOdDh2bEdTcXdWeXdQc3FNdjdLQ0h2YmxHQ2xMUi9SK0J0S0tP?=
 =?utf-8?B?NUFTYlYxKzNNa2JBQVRtaVdMb0FXSFl5TFRMYUhYOGY0SXUxSDJabEMrZnJw?=
 =?utf-8?B?cmY3WnN6aHhZamxGTUJ5aUFXVENlTDYwMlRGNnBYbE1QUUFxQmJ5OE4wbVYr?=
 =?utf-8?B?WG9vVFBxczBMMHRwdzczT2dJMUxncE9YRm92ZXphQzEwSDl1RzlXT3l3dVlq?=
 =?utf-8?B?cTlMQmhHTEZUMUl5WWY4cXdIeWdyM3BlNngxTHpKMjdSaUJES2cvMkJoZGZ3?=
 =?utf-8?Q?GbJ0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WUdNeS91YlB0NzZrZDJ0eHNxWmtRZlQrTHI5UTZzTU5adndMRFNmdTdBZUha?=
 =?utf-8?B?WEV5dUxXNThRT1ZzTGhwUG5KMGhvQXE1dFh6ampMdlFvdVVQVldXb3F1ZDNR?=
 =?utf-8?B?Tlc4V2R1R28zQ0ZtNktZNE9PcWZDQXprdGtqd2N1VVA4bktvV2pVOHlhT3lt?=
 =?utf-8?B?SGhuOW9OVVBIb2RQR0VpRXdwVTZaSlY5WHJna0I1MEtlaGMxcXREV25aV2Vv?=
 =?utf-8?B?dkltL3NLTEFlYlNoR3dsRm91M1oyZVBHVnF5UThKR25JenU4THZUM3pOREJU?=
 =?utf-8?B?VHFyVkQ5SEJ2cGFPaVJ6Yk0wOElGQ0hoUFRkaVhBR3VtZWpNT0hNbkg5SkFs?=
 =?utf-8?B?RE9PWm83dk9qTkFnSS8xT3FKZzk0dDdjT1A2N0l4S0xjYmxpSUFKRGtLMDlF?=
 =?utf-8?B?Q1l6SVgzSmowTnFQeUxzTnVKSUdWeHZ0M1ZnejRzZFpweFZOc1ZEclBnSjA3?=
 =?utf-8?B?V09PUVhRMHlqMVptWUVtUmtDbDVnamhYWFlsSkxrczVoanBScHR3MXc3Rndm?=
 =?utf-8?B?Tm9vR0hmdTRrVXFRQzgrYjNua2VPODlLd1J4ZW5DTHQ2bktJSHRFaU1vR21K?=
 =?utf-8?B?OEI5RkxORk02OXFUYncyWTZnSlVOV3d1ZUNzT0dveXUxU21ZWjE3NHcyQnFs?=
 =?utf-8?B?ZEVWbVVEZlRCR3ZaK2tzNHM5NWNCWkN0VThSQi9ueG43NmpGaWtGQmN5ZE9J?=
 =?utf-8?B?ZnNSZzVzQWErR0M3WmhwSVFVQmU2czNMVlBGcTFYYi8rcnlVSVZJaGk1czJj?=
 =?utf-8?B?WllsZ3Q4QWJZOU1JeVROY1FaVzN0YnU3YTNXTENiMTZ1ZHJzQnIxMGpXMy9o?=
 =?utf-8?B?alVud0ZhSEs0YmdUWHhFckVKQ0VLNFphUWJqcnc1SEp3VWxGMmpORTRnalNa?=
 =?utf-8?B?WHVuc0R5UVp0bXEwaENraXpqT01wYzVNWUtwbnpuWWY5SGVvUUFpNWl2bXdo?=
 =?utf-8?B?enlVSjFhQkhGYWNpS1VmZTBncnIzckhlaThNbjQ0UUNtWjh0OXRTWm9rRjBB?=
 =?utf-8?B?STVwYlIzak0xMEx1aUNXRkl1TmFyWG5SMEh2dzgzRHByK25pOEdidWhoV2Q5?=
 =?utf-8?B?VnpiR2xIeEtyK0Ria0kxUEZvZmxLb3p1aHNxUy80M0hNZDdLSUMyUGlac1Nk?=
 =?utf-8?B?NG42eUN1Y0hsRlRrOXhWTWFLSzZydE9kZ0plc2lUVjFPYmE4bjNabnJxbWdW?=
 =?utf-8?B?WHo4OExsaXQyZ0tVbGRka01GNzN0cHBTQVFwMHRnZUgyOGVoYVYzQ05ZL1Er?=
 =?utf-8?B?V200L2x2QksrQWszTWNDQXg5dUdqb3dUNEFhL0sySHBRMHcreGdOQWJHNXR3?=
 =?utf-8?B?YUVqNitWa0NFenFacG1BZ2IvYnh1Z3dDSGxOcGVCUXl1MDc3blJoc24yaXhK?=
 =?utf-8?B?U25GbFVFQ3hyZ3Rxa2hJaXFadkRJWXZVeHpjVU03ZVltcXRCWHFHK0VjT1c3?=
 =?utf-8?B?QVVncGlrZElqNXN6V0VpVDBBbjNWRThERGdHYVZUOVh0VEFhb0NUTEdmRWYz?=
 =?utf-8?B?dXB4Q3hXWll2VHVLNEdmWm15RTJSVGd4SThvbXNyNlNuSG1PVG10TzhqSG5y?=
 =?utf-8?B?WVFXVGtDaUk0L04vU0JTano2VDBhTHNldXNWL2h2ZFd3Vm1acFdMdmcwRllP?=
 =?utf-8?B?YXYyalVub2owVWk4NlArc3Rpd05DNlZvdVp4Rmh1QVBmbkxBTnY0andNVmJm?=
 =?utf-8?B?WUJQSllNQ0tobjhqMm9qWnJMUDlLN242d1lrQ1FXa3FvWFR1MWpsR2g4V1l1?=
 =?utf-8?B?Nk81TEliNSt5MFJ1L2hzY2gwblBHTitnYzBOekE2THdSZ3JRWUsrREs3d2Zz?=
 =?utf-8?B?TXE5QkE2S0gzalpPOVVVZU5wZVp6R0dTVXpUWVBoZWRPbTY4eGhYMVNhVDkv?=
 =?utf-8?B?dUpBRlg5VzJHSU9WZjR4WGxISEEreVdmZ1M3UmRTaHJJYVRsWmFyTWcvZG5W?=
 =?utf-8?B?VmJqT1JxVXozNE1zR29PdkRMUllkaWZEenh1Qy94b0IrNUQ2RmNrdDA4Tkk4?=
 =?utf-8?B?Y0k2b0F2UGhkSDNyVHR5bmtTa2tvMFQxTk82cFh4Y2FPc29sWU1kMGluaFJT?=
 =?utf-8?B?djNKNCtWSnBsdThtRThaQTNBVWVVcGMxVmQxeks4OStQTEdWYlRvRXU4QWx4?=
 =?utf-8?B?SFo5WXlSNHpPRUJkVG9WK04zK0JhUmNMWGgzQjA1Y1JHelZ0eHVjUUhUYThw?=
 =?utf-8?B?TjNNTmNVa1g3WkhYQml0YS9zRGN1VmFJeGVjUHVtU2gwWjdhd3Frc1RManlz?=
 =?utf-8?B?RVBEU2FObko2QUUwSW9RWkt1QjVVUU0rWW9rdnJPZm03amNSZEswSjFTN1Rn?=
 =?utf-8?B?bEd1WjZ5bGR3dHBzQlE2YWZUaGNBQlErSTJ4MEtaM0w1QW5mc003QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f8a739b1-2027-4f44-713f-08de697241bb
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 13:34:18.5875
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /2of2vos86ePlBDSqc4wMExuWq7XnZwlL92QOKl0KD/gYgR6K4gtEzrEqz/OJgyYH+trRDiS5x4O6jC2UIVRBQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7367

On Wed, Feb 11, 2026 at 02:07:13PM +0100, Jan Beulich wrote:
> On 11.02.2026 13:24, Roger Pau Monné wrote:
> > On Wed, Feb 11, 2026 at 12:40:58PM +0100, Jan Beulich wrote:
> >> On 11.02.2026 11:46, Roger Pau Monne wrote:
> >>> --- a/xen/tools/check-endbr.sh
> >>> +++ b/xen/tools/check-endbr.sh
> >>> @@ -92,14 +92,15 @@ ${OBJDUMP} -j .text $1 -d -w | grep '	endbr64 *$' | cut -f 1 -d ':' > $VALID &
> >>>  #    check nevertheless.
> >>>  #
> >>>  eval $(${OBJDUMP} -j .text $1 -h |
> >>> -    $AWK '$2 == ".text" {printf "vma_hi=%s\nvma_lo=%s\n", substr($4, 1, 9), substr($4, 10, 16)}')
> >>> +    $AWK '$2 == ".text" {printf "bin_sz=%s\nvma_hi=%s\nvma_lo=%s\n", "0x" $3, substr($4, 1, 9), substr($4, 10, 16)}')
> >>>  
> >>> -${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
> >>> -
> >>> -bin_sz=$(stat -c '%s' $TEXT_BIN)
> >>> +# Convert objdump hex reported .text size to decimal
> >>> +bin_sz=$(printf %u $bin_sz)
> >>
> >> (Alternatively without this line, but ...
> >>
> >>>  [ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&
> >>
> >> [ "$(($bin_sz))" -ge $(((1 << 28) - $vma_lo)) ] &&
> >>
> >> ?)
> > 
> > Isn't that bash-specific functionality?  The script interpreter is set
> > as /bin/sh.
> 
> I, too, would have thought so, but then the rhs of the -ge already used $((...)).

OK, yes, I didn't realize those existing usages.  Now that I look at
it it does seem to have a bunch of other bashisms, for example
parameter expansion.

I will adjust that plus the commit message and take your RB.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 13:34:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 13:34:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227642.1534068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqAMY-0000iy-Nn; Wed, 11 Feb 2026 13:34:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227642.1534068; Wed, 11 Feb 2026 13: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 1vqAMY-0000ir-LC; Wed, 11 Feb 2026 13:34:38 +0000
Received: by outflank-mailman (input) for mailman id 1227642;
 Wed, 11 Feb 2026 13: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=wgMA=AP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vqAMX-0000iM-Dv
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 13:34:37 +0000
Received: from mail-oa1-x30.google.com (mail-oa1-x30.google.com
 [2001:4860:4864:20::30])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 62ab86c9-074e-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 14:34:28 +0100 (CET)
Received: by mail-oa1-x30.google.com with SMTP id
 586e51a60fabf-40438a46d7cso3736076fac.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 05:34:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62ab86c9-074e-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770816866; cv=none;
        d=google.com; s=arc-20240605;
        b=Yighlu7npQni3HJx2ETBbsHQ+S2S/tUDLtKWutXvwcvRIDrUCaFvGDkHjwEhk5uY9g
         UGMPVMeT7rr4koFQ+YJR/NkTgrIIjDCczhBTH7/YX5bRTxL07WG/5I065rDYARLSvU/T
         RqPD2oqptFaWPsJMfixY+IzpM8MgGCMYcj4UI74wCUE9yaTNOuKY5Mg4wEY+IeUtIKTp
         KMddQYh0b12m1pzorzXqDkCrvYuqZiTjJRXYJbmV0Avw5+ACBaEl+8PGzfG5d8SQVp8f
         lQqTC9pUI53GOmERzZSQpXDUmiJZuA2Jw4eSsan0qZjZdKqJtB6kQawxCyEYXWTErEYu
         yKgw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Hgfd289/zgx6Zl5oglKYDFkbsqT/nQ39bBDEtorQe1s=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=hUv0OqVLuKeum+Y9rCojBA8StnXHhMt1r9drv9m3VYLnTzfFh2QLBx/E5I5Rxn14ZV
         6QtwD24ZX/hGu3tmo/SPS58USMkGl98S3ShnYbwEcBy7jR0TXibu72CmQ89qmAVJdFJp
         a1gmUEja08wydcnHwJHbGvfzobJViAVmElmMN20dBBKqVXbGQOwH/EIf1SrSuWof9w2I
         mawaHPNg0LaR1xi6VZ4fO6UKMgH85QxxkxD8A1y/s044Z5inRHo5i9tJT/ZKDhpx6pVJ
         Or49TfunPg8aj3WPXoQRGZ81UDBWWMKQG4f401wHEx/TT12rfDWUf4L3YX4QcmovR1Qj
         QbZA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770816866; x=1771421666; 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=Hgfd289/zgx6Zl5oglKYDFkbsqT/nQ39bBDEtorQe1s=;
        b=dnqSSkMWndIXZ2XdQHeaCwpAwDMOrvr019W0ea5/E8+4sgVOE7zC32eEdBdKrhTNP1
         ix1ayNDfhsHMHDSxkZFaOKYWrIVlk8Uxefamqhf2qomiXn93Z7NVKqlF2uUDSFwpnPOm
         7tWYBPGgWZKAf0qOky0EAYWkDO9PAxrKCKKPQSuaRB7kGLQReAwR8Sq1Jmlh9eBJl9YL
         jsIbozEjyvjBB0Qbie9y0eswizYHXka8YaxfwIusfMAX4nABaR2/+HXSEYV9jZ6TI7+n
         LbycJ5LkddtalLvDY5EsmbtnB4r3pZ/3Ec4VRrGCQKdcFHPWYdKDSCJh8QsmHHfBFbFn
         /56A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770816866; x=1771421666;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Hgfd289/zgx6Zl5oglKYDFkbsqT/nQ39bBDEtorQe1s=;
        b=OeKCG7UlwKTFckyHwJ9Ni6hV7Ry3lfq3Xtn3ap87wUsjgYfFQtI1QegGSkc0e7/tLK
         EGZlUiLDFU4h617GOtkkfFjBVEk3ggNXRXnsfGGFjxRJqNK6P6igBYbg70sWdqN5nYOs
         HtszedNhxQlUndRLZXTZyo+3ZBsZm+dAh9RCeogda3A84zjdh+YX20XjjGoXSmfm2Rpy
         LusIppDzhu84/BQ0XhsBXotpUimXoKn5T+UgFltXJtwk11qeCvhWHT5H1/HnTUjdevFi
         lv2GWo6LDarmSGxjs87neXVbFPjQn4BprEkc53eMR/Bp5J6jtr8tKbND4y63m23FHMEg
         9ZQQ==
X-Gm-Message-State: AOJu0Yy4Q5wKAFPhJjX+gqOvyUJ/ykxZb3jNPajWH8MC0jwGmLdVtotv
	DCGOg8fGZbd/5bhfr1aZ1oTOHfyUnyd+NiKmgInYXpPO9CqN1fB8AiPj6Kf28OFyoh7Mr5r6Ogn
	lPqCZC0lw4jLCgndkF/8Oq5coNI3XkcgGrCmhTzQbNg==
X-Gm-Gg: AZuq6aLMSIoAasj/oy184uBVfNqBF7/56NLucKUbwXlc2mpDMWII7yVvPOsChLsECu5
	A2Sl+r5ErB/c4FBKrNV/KxiUGkZbygmsSd9h2hxXnEeWMocqrZikyLHpRi6JDJPstcKvtG6OShP
	GWaQI+Op+141LXaugQwFMdu55QpvFleS4ARIVFwLXueN6eiV9yJp/D6g80hJuCUEzP83IUa4gSG
	YuOJqLDe1W++5gWOPJAhAsCVceFe3LUM5PKlkko6z1fmqsYpILTRJgdGWtpOlk20YoitnTNA0b3
	3HPZ3ORfzFyYPs8PD30kknbMNHSF5vI368WyTg==
X-Received: by 2002:a05:6871:1d6:b0:3e8:9747:f8f8 with SMTP id
 586e51a60fabf-40ea96535c0mr1675351fac.51.1770816866237; Wed, 11 Feb 2026
 05:34:26 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <5331b33343441028d10c290b21b82acce295fff0.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44FWRepyAakwXLjObbA=8O_LMBR5jk0-WEAXZdgsQCsHOw@mail.gmail.com> <26A3747F-0313-437F-B461-F5C70CE1A4F1@arm.com>
In-Reply-To: <26A3747F-0313-437F-B461-F5C70CE1A4F1@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 11 Feb 2026 14:34:14 +0100
X-Gm-Features: AZwV_Qh6FQSYvVJe-MQ-Zkout2bZDAegCvLXVbX6lQe7lBf9TNxTcIBHsJ7pfv8
Message-ID: <CAHUa44E9OUhmyGw-897RzgJmrxXMtg5RXrWKXHQueqY7zJ-dkA@mail.gmail.com>
Subject: Re: [PATCH 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Wed, Feb 11, 2026 at 12:27=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 11 Feb 2026, at 09:17, Jens Wiklander <jens.wiklander@linaro.org> wr=
ote:
> >
> > Hi Bertrand,
> >
> > On Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> FFA_FEATURES currently accepts non-zero input properties (w2-w7) from
> >> guests and advertises several ABIs unconditionally, even when firmware
> >> support is missing or when the ABI is physical-instance-only. This can
> >> mislead guests about what Xen can actually provide and violates FF-A
> >> calling conventions. Some SPMCs (Hafnium v2.14 or earlier) also fail t=
o
> >> report FFA_RX_ACQUIRE despite supporting it.
> >>
> >> Update FFA_FEATURES validation to match spec and firmware support:
> >> - reject non-zero w2-w7 input properties with INVALID_PARAMETERS
> >> - reject 64-bit calling conventions from 32-bit guests with NOT_SUPPOR=
TED
> >> - return NOT_SUPPORTED for physical-instance-only ABIs
> >> (FFA_NOTIFICATION_BITMAP_{CREATE,DESTROY}, FFA_RX_ACQUIRE)
> >> - advertise FFA_INTERRUPT as supported
> >> - gate message ABIs on firmware support:
> >> - FFA_MSG_SEND_DIRECT_REQ_{32,64}
> >> - FFA_MSG_SEND_DIRECT_REQ2 (also requires FF-A 1.2 negotiation)
> >> - FFA_MSG_SEND2 (or VM-to-VM enabled)
> >> - report MEM_SHARE_{32,64} only when FFA_MEM_SHARE_64 is supported
> >> - stop advertising FFA_MSG_YIELD (not implemented)
> >>
> >> Update firmware probing: drop FFA_MEM_SHARE_32 checks (deprecated) and
> >> add FFA_RX_ACQUIRE to the probed set. If FFA_MSG_SEND2 is reported but
> >> FFA_RX_ACQUIRE is not, assume RX_ACQUIRE support and warn to work
> >> around the Hafnium bug.
> >>
> >> Functional impact: guests now see ABI support that reflects firmware
> >> capabilities and Xen implementation status. When SEND2 is present but
> >> RX_ACQUIRE is not reported, Xen assumes RX_ACQUIRE support.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa.c | 62 +++++++++++++++++++++++++++++++++++++-----
> >> 1 file changed, 55 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> >> index 6de2b9f8ac8e..e9e020bb0cb3 100644
> >> --- a/xen/arch/arm/tee/ffa.c
> >> +++ b/xen/arch/arm/tee/ffa.c
> >> @@ -91,10 +91,10 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[]=
 =3D {
> >>     FW_ABI(FFA_PARTITION_INFO_GET),
> >>     FW_ABI(FFA_NOTIFICATION_INFO_GET_64),
> >>     FW_ABI(FFA_NOTIFICATION_GET),
> >> +    FW_ABI(FFA_RX_ACQUIRE),
> >>     FW_ABI(FFA_RX_RELEASE),
> >>     FW_ABI(FFA_RXTX_MAP_64),
> >>     FW_ABI(FFA_RXTX_UNMAP),
> >> -    FW_ABI(FFA_MEM_SHARE_32),
> >>     FW_ABI(FFA_MEM_SHARE_64),
> >>     FW_ABI(FFA_MEM_RECLAIM),
> >>     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
> >> @@ -240,19 +240,39 @@ static void handle_features(struct cpu_user_regs=
 *regs)
> >>     struct ffa_ctx *ctx =3D d->arch.tee;
> >>     unsigned int n;
> >>
> >> +    /*
> >> +     * Xen does not accept any non-zero FFA_FEATURES input properties=
 from
> >> +     * VMs. The spec only defines w2 input properties for FFA_MEM_RET=
RIEVE_REQ
> >> +     * (NS-bit negotiation for SP/SPMC) and FFA_RXTX_MAP (buffer size=
 and
> >> +     * alignment), so w2 must be MBZ for our callers.
> >> +     */
> >
> > The spec (version 1.2) lists them as SBZ, except for w2, which is MBZ,
> > for Feature IDs.
>
> Very true, this should only check w2 which is anyway defined as MBZ when
> not used.
> w3-w7 were MBZ in previous versions of FF-A but are in fact SBZ in 1.2 so
> we should ignore them
>
> > However, if we're to return an error, invalid parameters is a better ch=
oice.
>
> In fact the spec is actually saying the following:
> If the FF-A interface or feature that was queried is not implemented or i=
nvalid,
> the callee completes this call with an invocation of the FFA_ERROR interf=
ace
> with the NOT_SUPPORTED error code.
>
> So there is no case for INVALID_PARAMETER.

You're right.

>
> So in fact i should:
> - return NOT_SUPPORTED if w2 is not 0
> - ignore w3-w7
>
> Can you confirm that you have the same reading of the spec than me ?

The 1.2 spec only says this w2 is MBZ for Feature IDs, and that w2 is
SBZ for FFA_RXTX_MAP. The 1.3 spec says the same, except that in Table
13.14: Feature IDs and properties table, it lists w2 as SBZ.

Note that FFA_MEM_RETRIEVE_REQ has bits defined in w2, and the unknown
bits are SBZ.

Based on that, I'm inclined to keep it simple and ignore w2-w7.

Cheers,
Jens


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 13:36:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 13:36:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227653.1534078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqAOm-0001Yq-3z; Wed, 11 Feb 2026 13:36:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227653.1534078; Wed, 11 Feb 2026 13: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 1vqAOm-0001Yj-0e; Wed, 11 Feb 2026 13:36:56 +0000
Received: by outflank-mailman (input) for mailman id 1227653;
 Wed, 11 Feb 2026 13:36: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=wgMA=AP=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vqAOk-0001Yd-Qn
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 13:36:54 +0000
Received: from mail-oi1-x22e.google.com (mail-oi1-x22e.google.com
 [2607:f8b0:4864:20::22e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b9a59951-074e-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 14:36:53 +0100 (CET)
Received: by mail-oi1-x22e.google.com with SMTP id
 5614622812f47-45f053b7b90so1221067b6e.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 05:36:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9a59951-074e-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770817012; cv=none;
        d=google.com; s=arc-20240605;
        b=LULxaERMAmUdM5Ppw621PJuE+DuIfAXonx3OppHFidrvMVcsNhXO/A/T2W1stkRbQB
         Vls8C3SMlAyF9/gNSY6JMUcn81xSiBnfQr0ZtjVTeorD0FCyMaI9WmiGBA2/CN5WC5wM
         H//rEApvWveLtN/Q2q38hrtwcvabM6cXkyES4lXg2e6MXIimARw4jtfrkXGh73OIbAWp
         Ymar8BP1+mfCKlH8Ks8gm1fqS/HaN/e/Vdu+iaj3SZNiBb4c6Vep40/PvrqiDusiOZWJ
         3XF3QJ1avsfsnsygzljF+9pFlO0L3AX5AjW4Hw8AsBos0eJL/WANZeV35F44bypB2Y4p
         EvMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=bG9WsPv8wYxty0mQK/aZ5QkAuSixG25/fMBeMnhcRH8=;
        fh=wB0f5JGUSpWYejuxtnrl8SDqvqyWrEsEaWvC32LbdiU=;
        b=Id+oxA3yGQ+8kllKZC5i76DWrnXvWM/MnN8SYADvaDxYHAL2y6J365ydoyZ1/9hKeZ
         uXTYDKrIw77yPV/GICVBSiYpNJiuyRYlWAoi1k70St2XGTrHX4Tf8fA6e5I0DIBonE6a
         HEtynqERF8Hs4id8I77bXTuFrucvWB6WC4xnLevrd48dfc1TiYS9SfTaXACbNp1WwYy4
         VDBw0XJdXQN5ziHSTTO0ERwYgdiFGEc+ha12rTdiwIXPtKYn5Fgxg+gWgBCaiy86iNyD
         au45TSJLs28yRKco+y093gCJFpmKmAOPYFwtin4CHNl3iS7O43s0cMtNoQpvPjefcMvb
         jJTw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770817012; x=1771421812; 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=bG9WsPv8wYxty0mQK/aZ5QkAuSixG25/fMBeMnhcRH8=;
        b=JgzgeUeOH/3HEXqPvuhkwsABFN7trajSq3wx6GBlRJ22xrNSfmZFCZpo/z1uhnYUn5
         Q+TKObzgGN32t7k5/eKTEVyfO/Fp3NbG6hr6MbfVaq57lM3zuO1Jyb0oELGYT3+0VMRC
         vfZhHmnba/XrkHQCfkjUTR8Pp+CvS5yAQ5m/J1nFN5WUpY1JQvLmiqU/cACMQnumHj8/
         QKN0SRMaEPzeK/gVrvsHbCze5BQBrpreCnx7muSJdxM0SNaJdZB4flkTs/DOeLwhPf8L
         Cq/p7S3ClibUk8Vn1YaUyz5qdL1RDcI30dtuG69PVSWRto59xg0Ju7L96vO9XRYyoaHV
         /2ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770817012; x=1771421812;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=bG9WsPv8wYxty0mQK/aZ5QkAuSixG25/fMBeMnhcRH8=;
        b=eUAiCh2l3x2B1OOzVnL9BKHIqIwX7fivVM7qlwJlIprk2V1Fxr8HdxrM9ikaHiuzPx
         ZZ1ENfevt02oN781DcUj6OX29zXBYAzAPvgXmPAEkoJqc9bau9GBl4flGNzVVB19cAhe
         jlidp75YOrFcsbqgCOWlM9aPdKO8Rvwq+wEdnCzQ1R9Qv6HWkcXtkNtYW6ecFyuD8+MP
         fxaqnzH9EjLNUH56dg0CMAnAEmxw+KQbwElyl/uYW6N9NNCqXiB+hYN7BE5DICOVKqvJ
         a9Y2vCYnxGr8Gl9gCFblY+gnsSV+E0q2OG1ceODZX0N7UeqrQUzVKFvtqR857OTb8tzy
         tAQw==
X-Gm-Message-State: AOJu0Yw2sMY+OSqHr8zs/yO4UKSl95AaKJv88X78ktmBSrCHemWigQ3B
	ZnSjXGyf7zCXnj8oYKDzCTMaUeXc6hJOAU8T39XESjkvrNbBef17c55LeqN0wEeFJ5O33sTEvWT
	amXECHyeEVpFi62W9TRbdCaaQsx6HakDKZ2TAJ09p8w==
X-Gm-Gg: AZuq6aK6hmDwompYMJjjFnUB/quIlCJ1DYJEdbRSf2e2Iiyt3FzWLQRm1MFi3SjUpSr
	L5HXnfx23mLt1S+tYkjU78iF8K7KPjQvuG4rG20kHQZ9xrssGTyJuqc3QYuUJnBH7087a2OlGy7
	NbzABgR0QozazEM6aBYNoZoH/0WYza9jF7w3BNDq7uZVzD9KwcllhsS1z7Cy8KOyjvjikh4Bl82
	MKS27j5L5gIdkOjR6v7Z4cw3VRgfIOmyMzuDBA37vEbEJVnTeCZSeJotgp8Bwls77xgHpHqt/P5
	850FCH45AU+uArJDqnVmuRVTyOoKOkAscGUtDA==
X-Received: by 2002:a05:6808:c2ac:b0:459:b48b:d51e with SMTP id
 5614622812f47-462fcb63e03mr10677212b6e.24.1770817012145; Wed, 11 Feb 2026
 05:36:52 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <209e5474e236737dd13e0f7ff8120b05cdb7eabe.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44Ebe03R2nTzUW9tDx5hPC6trZCWOdr94ApawFs20chdWw@mail.gmail.com> <7B367F9A-37E3-4157-A7B2-3EA21EE9FE52@arm.com>
In-Reply-To: <7B367F9A-37E3-4157-A7B2-3EA21EE9FE52@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Wed, 11 Feb 2026 14:36:40 +0100
X-Gm-Features: AZwV_Qi1rarmLvovzI2gLCqmihj3DmnYP9NcRgKmqame8ZhWjjrETnPKLOweg5M
Message-ID: <CAHUa44HAtC=vwepiYg=gSvdr_xkwjSaBzS8FL_hnF_dF9RHi0w@mail.gmail.com>
Subject: Re: [PATCH 12/12] xen/arm: ffa: Add message parameter diagnostics
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini <sstabellini@kernel.org>, 
	Julien Grall <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Bertrand,

On Wed, Feb 11, 2026 at 12:48=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Jens,
>
> > On 11 Feb 2026, at 11:16, Jens Wiklander <jens.wiklander@linaro.org> wr=
ote:
> >
> > Hi Bertrand,
> >
> > On Tue, Feb 3, 2026 at 6:38=E2=80=AFPM Bertrand Marquis
> > <bertrand.marquis@arm.com> wrote:
> >>
> >> MSG_SEND2 and direct request validation failures are silent, making it
> >> hard to diagnose invalid IDs, oversized messages, or unsupported
> >> destination types.
> >>
> >> Add debug logs for parameter validation failures:
> >> - invalid endpoint IDs
> >> - oversized messages
> >> - unsupported destination types
> >> - invalid sender/receiver combinations
> >> - ratelimit MSG_SEND2 busy failures to avoid log flooding
> >>
> >> No functional changes.
> >>
> >> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> >> ---
> >> xen/arch/arm/tee/ffa_msg.c | 45 ++++++++++++++++++++++++++++++++++++++
> >> 1 file changed, 45 insertions(+)
> >>
> >> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> >> index 928f269f6c3a..cc273c9a8e80 100644
> >> --- a/xen/arch/arm/tee/ffa_msg.c
> >> +++ b/xen/arch/arm/tee/ffa_msg.c
> >> @@ -4,6 +4,7 @@
> >>  */
> >>
> >> #include <xen/const.h>
> >> +#include <xen/lib.h>
> >> #include <xen/sizes.h>
> >> #include <xen/types.h>
> >>
> >> @@ -100,6 +101,7 @@ void ffa_handle_msg_send_direct_req(struct cpu_use=
r_regs *regs, uint32_t fid)
> >>     if ( !ffa_fw_supports_fid(fid) )
> >>     {
> >>         ret =3D FFA_RET_NOT_SUPPORTED;
> >> +        gdprintk(XENLOG_DEBUG, "ffa: direct req fid %#x not supported=
\n", fid);
> >>         goto out;
> >>     }
> >>
> >> @@ -108,6 +110,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_use=
r_regs *regs, uint32_t fid)
> >>          (src_dst & GENMASK(15,0)) =3D=3D ffa_get_vm_id(d) )
> >>     {
> >>         ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        gdprintk(XENLOG_DEBUG,
> >> +                 "ffa: direct req invalid src/dst %#x\n",
> >> +                 (uint32_t)src_dst);
> >>         goto out;
> >>     }
> >>
> >> @@ -115,6 +120,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_use=
r_regs *regs, uint32_t fid)
> >>     if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
> >>     {
> >>         ret =3D FFA_RET_NOT_SUPPORTED;
> >> +        gdprintk(XENLOG_DEBUG,
> >> +                 "ffa: direct req to non-secure dst %#x\n",
> >> +                 (uint32_t)(src_dst & GENMASK(15, 0)));
> >>         goto out;
> >>     }
> >>
> >> @@ -166,7 +174,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, =
const void *src_buf,
> >>     /* This is also checking that dest is not src */
> >>     ret =3D ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
> >>     if ( ret )
> >> +    {
> >> +        gdprintk(XENLOG_DEBUG,
> >> +                 "ffa: msg_send2 lookup failed: dst %#x ret %d\n",
> >> +                 dst_id, ret);
> >>         return ret;
> >> +    }
> >>
> >>     /* This also checks that destination has set a Rx buffer */
> >>     ret =3D ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
> >> @@ -199,6 +212,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, =
const void *src_buf,
> >>     /* receiver rx buffer will be released by the receiver*/
> >>
> >> out_unlock:
> >> +    if ( ret )
> >> +    {
> >> +        if ( ret !=3D FFA_RET_BUSY || printk_ratelimit() )
> >
> > Shouldn't this be && ?
>
> The intent here is to log all non BUSY errors but only log BUSY when rate=
limit allows
> to reduce the amount of logs in case of someone polling when the receiver=
 RX buffer
> is busy.
>
> Maybe I should add a comment to make that clearer ?

Yes, please.

Cheers,
Jens

>
> Cheers
> Bertrand
>
> >
> > Cheers,
> > Jens
> >
> >> +            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to %#x failed: %d\=
n",
> >> +                     dst_id, ret);
> >> +    }
> >>     rcu_unlock_domain(dst_d);
> >>     if ( !ret )
> >>         ffa_raise_rx_buffer_full(dst_d);
> >> @@ -226,7 +245,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs=
 *regs)
> >>
> >>     ret =3D ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
> >>     if ( ret !=3D FFA_RET_OK )
> >> +    {
> >> +        gdprintk(XENLOG_DEBUG,
> >> +                 "ffa: msg_send2 TX acquire failed: %d\n", ret);
> >>         return ret;
> >> +    }
> >>
> >>     /* create a copy of the message header */
> >>     memcpy(&src_msg, tx_buf, sizeof(src_msg));
> >> @@ -238,6 +261,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs =
*regs)
> >>          dst_id =3D=3D ffa_get_vm_id(src_d) )
> >>     {
> >>         ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        gdprintk(XENLOG_DEBUG,
> >> +                 "ffa: msg_send2 invalid src/dst src %#x dst %#x\n",
> >> +                 src_id, dst_id);
> >>         goto out;
> >>     }
> >>
> >> @@ -246,6 +272,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs =
*regs)
> >>         if (src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1))
> >>         {
> >>             ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +            gdprintk(XENLOG_DEBUG,
> >> +                     "ffa: msg_send2 invalid msg_offset %u (v1.1)\n",
> >> +                     src_msg.msg_offset);
> >>             goto out;
> >>         }
> >>         /* Set uuid to Nil UUID for v1.1 guests */
> >> @@ -255,6 +284,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs =
*regs)
> >>     else if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_2=
) )
> >>     {
> >>         ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        gdprintk(XENLOG_DEBUG,
> >> +                 "ffa: msg_send2 invalid msg_offset %u (v1.2)\n",
> >> +                 src_msg.msg_offset);
> >>         goto out;
> >>     }
> >>
> >> @@ -263,6 +295,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs =
*regs)
> >>             src_msg.msg_size > (tx_size - src_msg.msg_offset) )
> >>     {
> >>         ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        gdprintk(XENLOG_DEBUG,
> >> +                 "ffa: msg_send2 invalid msg_size %u offset %u tx %zu=
\n",
> >> +                 src_msg.msg_size, src_msg.msg_offset, tx_size);
> >>         goto out;
> >>     }
> >>
> >> @@ -272,6 +307,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs =
*regs)
> >>         if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
> >>         {
> >>             ret =3D FFA_RET_NOT_SUPPORTED;
> >> +            gdprintk(XENLOG_DEBUG,
> >> +                     "ffa: msg_send2 to SP not supported\n");
> >>             goto out;
> >>         }
> >>         /*
> >> @@ -288,6 +325,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs =
*regs)
> >>
> >>         ret =3D ffa_simple_call(FFA_MSG_SEND2,
> >>                               ((uint32_t)ffa_get_vm_id(src_d)) << 16, =
0, 0, 0);
> >> +        if ( ret )
> >> +            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to SP failed: %d\n=
", ret);
> >>     }
> >>     else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> >>     {
> >> @@ -295,7 +334,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs=
 *regs)
> >>         ret =3D ffa_msg_send2_vm(dst_id, tx_buf, &src_msg);
> >>     }
> >>     else
> >> +    {
> >>         ret =3D FFA_RET_INVALID_PARAMETERS;
> >> +        gdprintk(XENLOG_DEBUG,
> >> +                 "ffa: msg_send2 to VM disabled (dst %#x)\n", dst_id)=
;
> >> +    }
> >>
> >> out:
> >>     ffa_tx_release(src_ctx);
> >> @@ -311,6 +354,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, ui=
nt32_t fid)
> >>     if ( !ffa_fw_supports_fid(fid) )
> >>     {
> >>         ret =3D FFA_RET_NOT_SUPPORTED;
> >> +        gdprintk(XENLOG_DEBUG, "ffa: run fid %#x not supported\n", fi=
d);
> >>         goto out;
> >>     }
> >>
> >> @@ -322,6 +366,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, ui=
nt32_t fid)
> >>     if ( !FFA_ID_IS_SECURE(dst >> 16) )
> >>     {
> >>         ret =3D FFA_RET_NOT_SUPPORTED;
> >> +        gdprintk(XENLOG_DEBUG, "ffa: run to non-secure dst %#x\n", ds=
t);
> >>         goto out;
> >>     }
> >>
> >> --
> >> 2.50.1 (Apple Git-155)
> >>
>


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 13:37:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 13:37:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227657.1534087 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqAP3-0001xO-GR; Wed, 11 Feb 2026 13:37:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227657.1534087; Wed, 11 Feb 2026 13: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 1vqAP3-0001xB-DH; Wed, 11 Feb 2026 13:37:13 +0000
Received: by outflank-mailman (input) for mailman id 1227657;
 Wed, 11 Feb 2026 13:37: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=lkCz=AP=redhat.com=mlureau@srs-se1.protection.inumbo.net>)
 id 1vqAP1-0001Yd-VK
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 13:37:11 +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 c38b7fd6-074e-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 14:37:10 +0100 (CET)
Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com
 [209.85.216.69]) by relay.mimecast.com with ESMTP with STARTTLS
 (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id
 us-mta-416-jAjlQM_xOkuukRqgi7Jbiw-1; Wed, 11 Feb 2026 08:37:07 -0500
Received: by mail-pj1-f69.google.com with SMTP id
 98e67ed59e1d1-3545dbb7ee6so1711942a91.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 05:37:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c38b7fd6-074e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770817029;
	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=Qd7nm8qxOkE+F9KPOP3qjaaC0X9mVSTZ4G3T8UhCNAU=;
	b=K0b8QwEpCL+Nb/MFTuuWCK9tGKx5jueKhY0XQFlqEGY3pXsMYqGzDfcuV0m2drfnfoVDZ6
	FzE8v64wJ4uzP1jrudoLNocUZR5rlU7k4aeY2SVfVyLNIxxxHsWr12fvdpRWS8RusD37My
	N9OArR2dAKUaJTkgRD92w3udVyFMwQ4=
X-MC-Unique: jAjlQM_xOkuukRqgi7Jbiw-1
X-Mimecast-MFC-AGG-ID: jAjlQM_xOkuukRqgi7Jbiw_1770817027
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770817026; x=1771421826;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Qd7nm8qxOkE+F9KPOP3qjaaC0X9mVSTZ4G3T8UhCNAU=;
        b=eanI+5hp9rekde5LxHvxZPwua+pvVaRKXyMe7a2+7ZPDyQNA7pzuUlV6LcmwvAe/3h
         fzxM+ZFQKC7/mUo9+irHhzOWnSsjJS47wx/41uJX3VjCo6GTgOrtfFBNuVboBknb4gai
         286JrKudJa1+Jvy+dGvtWjDdQITvoysX0LzW0NRhq6kY9VxVRjgDZaCyGgqfsQ8JBiu7
         MkoZn01dBapIHo9yHiQzTd6yIqEs7P1grCVLcyJRnKjqfRs1AkPPLem2Bq8qvi34rN2L
         ZpxWuXeVUN0rMmG/yDFhBm5W+9NwoLnVYe1t4T/HwVLYdSTuDrKT7SGnT9awKI4c4HJr
         wyOA==
X-Forwarded-Encrypted: i=1; AJvYcCUOyksqa54e4Xj4Md5t27Ds3yz9ToNblBhJ7nVXNuM5t1d0JRAQVJpvqy469DuEszARTgeZOrJLz1k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYdlHwLwW4UPr/pUojtVq7cUuQrYtQ30AE3qytOr1ni1Ya+l8d
	82A7YbsZIwC5QWzlBS1JnyO0PbWyd5rPxrTnIy+5DcgWKsNzUXCBFGd4zyYXtK1YOb9akh0S5G4
	fbYdaiQwEuFt/e5T6fUllVoNmROX7YsheO4l54Pw4Nz545SplXSTKY/P8JrWFTEspa8WW5cys4M
	f3qQJsOxL4jASMUFyGC3Z2Vavs9+h6UtECigagi9UbX94=
X-Gm-Gg: AZuq6aJXqW9vT27RutC9H4o1Oh7lssHiTewUx/9gFsk+vAcNChbQqSLXt1nNkAUoIHo
	Dp+MuTsq3bA+w/FiS66pM2CBHXo/vcNqfljd4PEJauN/BT6l9R63eZpF+68FW5X1f6j5sTyxXRD
	xfFkAif3j9DPwylQ1dovBlhH/pvKcNWPBRXyp1u4MWBaB7nFyBVAypzZhcVFEgp3lKfueWRPBc2
	dd5i4QZlq0nNdvMIKs1biwZSULSHAoy7T4KOQ==
X-Received: by 2002:a17:90b:4a08:b0:354:b2f6:b4e4 with SMTP id 98e67ed59e1d1-354b39da597mr13879213a91.0.1770817025651;
        Wed, 11 Feb 2026 05:37:05 -0800 (PST)
X-Received: by 2002:a17:90b:4a08:b0:354:b2f6:b4e4 with SMTP id
 98e67ed59e1d1-354b39da597mr13879193a91.0.1770817025223; Wed, 11 Feb 2026
 05:37:05 -0800 (PST)
MIME-Version: 1.0
References: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
In-Reply-To: <20260211123007.3569932-1-marcandre.lureau@redhat.com>
From: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= <marcandre.lureau@redhat.com>
Date: Wed, 11 Feb 2026 17:36:52 +0400
X-Gm-Features: AZwV_Qir2RaHBkpvZhNqpXRKdUvNAJhrkTkAMwaplDprCUWzZblhGrIatsOqekc
Message-ID: <CAMxuvay6yd0434Bv3id3gsKezxaX8C=s-RBHLR306hoE5B=SFw@mail.gmail.com>
Subject: Re: [PULL 00/14] Char patches
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <eduardo@habkost.net>, xen-devel@lists.xenproject.org, 
	=?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Markus Armbruster <armbru@redhat.com>, 
	Paolo Bonzini <pbonzini@redhat.com>, Anthony PERARD <anthony@xenproject.org>, 
	Eric Blake <eblake@redhat.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>, 
	=?UTF-8?B?QWxleCBCZW5uw6ll?= <alex.bennee@linaro.org>, 
	=?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Paul Durrant <paul@xen.org>
X-Mimecast-Spam-Score: 0
X-Mimecast-MFC-PROC-ID: 3XT4d9cc_cFuo7GiZlpoMMOJRPm20nyBMH4cXHzW594_1770817027
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi

On Wed, Feb 11, 2026 at 4:30=E2=80=AFPM <marcandre.lureau@redhat.com> wrote=
:
>
> From: Marc-Andr=C3=A9 Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit 0b91040d23dc8820724a60c811223b777f3bc6=
b7:
>
>   Merge tag 'pull-loongarch-20260210' of https://github.com/gaosong715/qe=
mu into staging (2026-02-10 09:12:38 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/marcandre.lureau/qemu.git tags/char-pull-request
>
> for you to fetch changes up to 72913e8b8ef10071965d43349516d0e7f19a959d:
>
>   chardev: add logtimestamp option (2026-02-11 16:27:18 +0400)
>
> ----------------------------------------------------------------
> chardev patches
>
> ----------------------------------------------------------------
>

self-nack, it failed win32 compilation:
https://gitlab.com/marcandre.lureau/qemu/-/jobs/13073244313

> Eric K (1):
>   char-udp: Fix initial backend open status
>
> Vladimir Sementsov-Ogievskiy (13):
>   ui/spice: Require spice-server >=3D 0.15.0
>   ui/spice: drop SPICE_HAS_ATTACHED_WORKER macro
>   chardev: ChardevClass: consistent naming for handlers
>   chardev: consistent naming for ChardevClass handlers implementations
>   chardev: .chr_open(): drop be_opened parameter
>   chardev: .chr_open(): add boolean return value
>   chardev/char-pty: store pty_name into PtyChardev state
>   chardev: introduce .chr_get_pty_name() handler
>   chardev: rework filename handling
>   chardev/char: qemu_char_open(): add return value
>   char: qemu_chr_write_log() use qemu_write_full()
>   error-report: make real_time_iso8601() public
>   chardev: add logtimestamp option
>
>  meson.build                                   |   2 +-
>  qapi/char.json                                |   6 +-
>  include/chardev/char.h                        |  23 ++-
>  include/qemu/error-report.h                   |   6 +
>  include/ui/qemu-spice.h                       |   6 -
>  chardev/baum.c                                |  12 +-
>  chardev/char-console.c                        |  10 +-
>  chardev/char-fe.c                             |   8 +-
>  chardev/char-file.c                           |  26 ++--
>  chardev/char-hub.c                            |  27 ++--
>  chardev/char-mux.c                            |  30 ++--
>  chardev/char-null.c                           |   9 +-
>  chardev/char-parallel.c                       |  41 +++---
>  chardev/char-pipe.c                           |  30 ++--
>  chardev/char-pty.c                            |  56 ++++---
>  chardev/char-ringbuf.c                        |  20 +--
>  chardev/char-serial.c                         |  39 ++---
>  chardev/char-socket.c                         |  73 ++++------
>  chardev/char-stdio.c                          |  30 ++--
>  chardev/char-udp.c                            |  18 +--
>  chardev/char-win-stdio.c                      |  25 ++--
>  chardev/char.c                                | 137 ++++++++++++------
>  chardev/msmouse.c                             |  13 +-
>  chardev/spice.c                               |  52 +++----
>  chardev/wctablet.c                            |  10 +-
>  gdbstub/system.c                              |  12 +-
>  hw/char/xen_console.c                         |   7 +-
>  hw/display/qxl.c                              |  23 +--
>  hw/misc/ivshmem-pci.c                         |   7 +-
>  tests/unit/test-char.c                        |   2 +
>  ui/console-vc.c                               |  12 +-
>  ui/dbus-chardev.c                             |  16 +-
>  ui/dbus.c                                     |   4 +-
>  ui/gtk.c                                      |  14 +-
>  ui/spice-app.c                                |  18 +--
>  ui/spice-display.c                            |  19 +--
>  ui/vdagent.c                                  |  17 +--
>  util/error-report.c                           |   3 +-
>  .../codeconverter/test_regexps.py             |   2 +-
>  39 files changed, 437 insertions(+), 428 deletions(-)
>
> --
> 2.52.0
>



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 13:43:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 13:43:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227677.1534097 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqAUw-0005Hf-3w; Wed, 11 Feb 2026 13:43:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227677.1534097; Wed, 11 Feb 2026 13: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 1vqAUw-0005HY-1E; Wed, 11 Feb 2026 13:43:18 +0000
Received: by outflank-mailman (input) for mailman id 1227677;
 Wed, 11 Feb 2026 13:43: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqAUu-0005HS-Ly
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 13:43:16 +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 9d9a41ad-074f-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 14:43:15 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-4359249bbacso635052f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 05:43:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e54d48sm4472000f8f.33.2026.02.11.05.43.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 05:43:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d9a41ad-074f-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770817395; x=1771422195; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PhtV26UQt/YzS/mJqsXNV6LpEVa5g2rjGL/eEqK64QA=;
        b=B6cPY7OKsZw440JDAjzCgUVPZmS0yk2e0bsqjwW1PJf+j79soX126KZ//0grGHxaiw
         LUZtCAlnSY2ai009AuErJTGYzPo6IgWKBiRtSl4QLljZetE3ZWW8Nr4EhYIF10u6aPHJ
         8XmNYxGisHGmMIc18sI6uMYM7V8lDda2Pk8mncDPL4tw8R93OLozs3b/Ln4iWjg+3niF
         V3BDxUTSvcVHl3+aa9/lrhYdrl8rAadq5JCV35OhzMXZjjKtaA2JQJTQAgJOTatxsAjX
         Zoar+VZK8kzKqPj48PwWGH7F4G9L5HiRn3Lo9MEUCpWAVoLKaLJ2Oa6+UXlipijWDLzD
         jNsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770817395; x=1771422195;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PhtV26UQt/YzS/mJqsXNV6LpEVa5g2rjGL/eEqK64QA=;
        b=qTIqki09mM51WLn7CcHqj3s/yoUDTwuPkr+dSjbxYPiGsP2m3w1DDwQTP/pog/rWG/
         dRJUctSF6XQv4CuIiffzWfBo2//yCOTOfSWU0yqhztP62qiKr81kr0tiidFo+gY+5eL9
         SdWOOvLFg8Kx7nXbyHXQX76Q9plHyi2jm6wON7rX4nvKGKycdMJFf6iNBo6bazJ3uYHg
         z2Eo1ni05+ZzOUPSultvyfgUxfmYmdmyEnpZ5DqxqBMmx4K/g/CxA2TYBdOXtfcDNVPP
         SjaEj5mq+06V/e2G6NRyHL6sXiHmmNTKh4q9KKexNMfDmsd5fFIwwTT3E3Iea4wLDRYK
         9RZw==
X-Forwarded-Encrypted: i=1; AJvYcCUYV89Z7Fw7cqqaRsTCvGExbHsKgexrQ8n3NKe6eCxGYpZ10X1OH9uTrRE4Pij2SikDtowqMJ8Afko=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy8TNNsDXPM7QMFxRDGSz6x4fxQhNbhdaij8+yhTJ1AOv/OfgU2
	JE1HHsbNwVhcxfVb1CuJIy0gM6BiTew2KiLVpirEcZOa8jfpvwg9YTZr3F1pEDUIjA==
X-Gm-Gg: AZuq6aKb15kmSmEa/yO4H+BY3WBA9BbewuU2YetoD/aG8vKdFThIQzeUa5RdLO2yb/8
	xzd3yoQghNneYWyxxpEOq9KA+KW5xukI+nKu3IE1yOXhU8rjazeVnXdxQedp18P4jqOSOw5F6nR
	wdHsCPW9zDcgyDpQRM4ky++LknbeANVE/t4k+6ck6ZNnzmaOMcjT+lTUtUPFE1lWQV6EmZP5g86
	WSTqsqt78fNtLnDmcC+gXc8kKy3Pl5urHhclf01DChbhTp7smqDGjy+qQxK+7g9CS01WjUg/cO8
	lraQ1HGelJaBNOo4dRKERw41TJXils4ldV7S7m58Mhb3jaMLhrOT6LTvOh37L6Sne2TGF2NF9Z/
	F6iNU2pYzCdQLrOK/jowPeeuwr/YFd45rCeO00WBCZXrzd2EdDyY/Psu+FwV6fur2w1MN3Fufte
	wqQf5jXz3Tn5w6z/9/7O+rMvnVtwTmAOsvzeKrFqWPI7zXa7TVrmTb9/kHTDXEnJNruyDQD5gMV
	ZxRHu1FZJLYhbw=
X-Received: by 2002:a5d:64e3:0:b0:431:c06:bc82 with SMTP id ffacd0b85a97d-43779e4e6bdmr11781480f8f.12.1770817394847;
        Wed, 11 Feb 2026 05:43:14 -0800 (PST)
Message-ID: <ab881c05-ffe1-499e-af3b-ba8c77c3c599@suse.com>
Date: Wed, 11 Feb 2026 14:43:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] xen/tools: remove usages of `stat -s` in
 check-endbr.sh
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>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <20260211104638.7938-1-roger.pau@citrix.com>
 <20260211104638.7938-3-roger.pau@citrix.com>
 <35bdb10b-d39d-4e67-9ed8-c0b85ca5bd54@suse.com> <aYx064WIMMNmLAza@Mac.lan>
 <3f1e043f-2cd1-43a3-9ec9-9323c133d8d1@suse.com> <aYyFV9sIw_cAvruJ@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: <aYyFV9sIw_cAvruJ@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.02.2026 14:34, Roger Pau Monné wrote:
> On Wed, Feb 11, 2026 at 02:07:13PM +0100, Jan Beulich wrote:
>> On 11.02.2026 13:24, Roger Pau Monné wrote:
>>> On Wed, Feb 11, 2026 at 12:40:58PM +0100, Jan Beulich wrote:
>>>> On 11.02.2026 11:46, Roger Pau Monne wrote:
>>>>> --- a/xen/tools/check-endbr.sh
>>>>> +++ b/xen/tools/check-endbr.sh
>>>>> @@ -92,14 +92,15 @@ ${OBJDUMP} -j .text $1 -d -w | grep '	endbr64 *$' | cut -f 1 -d ':' > $VALID &
>>>>>  #    check nevertheless.
>>>>>  #
>>>>>  eval $(${OBJDUMP} -j .text $1 -h |
>>>>> -    $AWK '$2 == ".text" {printf "vma_hi=%s\nvma_lo=%s\n", substr($4, 1, 9), substr($4, 10, 16)}')
>>>>> +    $AWK '$2 == ".text" {printf "bin_sz=%s\nvma_hi=%s\nvma_lo=%s\n", "0x" $3, substr($4, 1, 9), substr($4, 10, 16)}')
>>>>>  
>>>>> -${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
>>>>> -
>>>>> -bin_sz=$(stat -c '%s' $TEXT_BIN)
>>>>> +# Convert objdump hex reported .text size to decimal
>>>>> +bin_sz=$(printf %u $bin_sz)
>>>>
>>>> (Alternatively without this line, but ...
>>>>
>>>>>  [ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&
>>>>
>>>> [ "$(($bin_sz))" -ge $(((1 << 28) - $vma_lo)) ] &&
>>>>
>>>> ?)
>>>
>>> Isn't that bash-specific functionality?  The script interpreter is set
>>> as /bin/sh.
>>
>> I, too, would have thought so, but then the rhs of the -ge already used $((...)).
> 
> OK, yes, I didn't realize those existing usages.  Now that I look at
> it it does seem to have a bunch of other bashisms, for example
> parameter expansion.

Then perhaps in another patch we want to properly mark it as a bash script.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 14:17:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 14:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227702.1534136 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqB1X-0005Ui-Ss; Wed, 11 Feb 2026 14:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227702.1534136; Wed, 11 Feb 2026 14:16:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqB1X-0005Ub-ON; Wed, 11 Feb 2026 14:16:59 +0000
Received: by outflank-mailman (input) for mailman id 1227702;
 Wed, 11 Feb 2026 14:16: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqB1V-0005UV-Sw
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 14:16:58 +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 5227a5ec-0754-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 15:16:56 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-43622089851so1931108f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 06:16:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d325f7sm4955120f8f.8.2026.02.11.06.16.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 06:16:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5227a5ec-0754-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770819416; x=1771424216; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=C4vFL5KCpONqE19NIo9Oy16WwOLn2UXK02zwP2V/YCI=;
        b=GtPd923Gf8w4Sdd1nrxI+tW5b9aNfD96Fkw6/DPIChJ0irhTpTExFP18IbF4p4hyTp
         5YnDASjdl8AjtfyilfBEM/THuYemSRhKln/BqTWIn6qjUltjFS/zj4uNWwVN3c7PDBAx
         bSnUDJJTJj/darMxawk0x0kqNP+6ZvOjwrAyLcQPuL6ncgBpD1/zRnCYfvxkvyCezGhN
         bnulE3eE1cbCzEsnsIvmrQMMFFa0PMqiPKCToh4tJul9TC89KnF+KdVBRRiDt7EWRvaP
         qtoVeNNlx/Bv4LXNjceQptoWIO+LRlQloodqph9B3M5xCiEnjgu7Y868qmPP/Wxph4HB
         OFYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770819416; x=1771424216;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C4vFL5KCpONqE19NIo9Oy16WwOLn2UXK02zwP2V/YCI=;
        b=FXGU0nwr4AFYAKFdDxkUAcGUWiUoO2AxT/idT9mWj1eF+H4Y/tGYpKkuJPBcMcO3g6
         NbBv6UJx0f1/BmBodZ6kPXeUS+ytM+BFFIECqgdiWekEHAQbn1ph56VK7j7XZ8zvfMDF
         lavhHNAWKb5B89ysgtWC5ajF2pplTmkn8Nrc1S9B1Vlmkes20kxAeImkeEHHsTN2XQlg
         yiTAMogXgMw9YT9sU9e688jZyyYt2IwrOwZKr/rv9TZZVAH0PKNfyUkXJU2QylmeM4vn
         krgXavXtK7IaInTrZQRV4GydmErOOdMjnd33nR2qaTU9lkFDVVV0E0hpuFumvDrTNMCB
         0GwQ==
X-Forwarded-Encrypted: i=1; AJvYcCU0p78VDnOC+zN1gDDhSt+V0AnUC4E81pS0YA74i0fCvnOEamY+Zo5NkO1R2uMxozfE625DFPZdjbQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYpqJPw1Aq0RJB9K1GGYCwaZwLWxFJDBJmG26QYVcVkx/839CJ
	JFGXt4EYP2Zw65xPtQbM+M8s7mTAQ2DEe8OIZ6SPsSaHfm/Y4BE41qktxgioel6Pfw==
X-Gm-Gg: AZuq6aLcvIiW3MxHPp27dwfcOqOihqY+2z2UTL7SGEN92XHIhVjpLF1r0dKN/DIIzJW
	OMLjfrgks53bZp3o/d4zY2M8rDFEj/JpDZjT9TRzHWWQgaF23hsVOUnONn67psNDN8RYdGHWRKg
	a5OLSiyZbASjTnozj8MCh8bnPle3iWd94VGlazWGx6bkJnhaYWefJBqAfSSyfZ+hfTTWkIobNop
	XrsvAGCsV5oM3Tn9M093IlB3YOZ+QRj2gCazdtGiVZpiSOoPPYNdf6L+YqvKT0GQKFPwxIuq69W
	LK9KjIqaBdejQwq2D4bVFu56C7mKtQDbSqcB9w5RlubfGU8tPtnjpd05s8Qz7iZBNXHzt5zb0Zt
	hg4WP3l8n0oFGmE4phRPMSxHGckZWI8FybREfkyf85HvJdvSkCdAc4t+so2PHxsQuO/tuvjA/SS
	Xqyum/3jt38E1giMAH58mFva8nvbZk4jkvjJfnSe5Si/g3LsPlM0dMvxY2KrBWrRiD7T4eq/D7W
	KRHENIBaWykCkY=
X-Received: by 2002:a05:6000:2902:b0:435:a600:2601 with SMTP id ffacd0b85a97d-436293410dbmr28315894f8f.16.1770819415424;
        Wed, 11 Feb 2026 06:16:55 -0800 (PST)
Message-ID: <d73424e2-84f4-497b-a1f4-f3eea5cdeeb3@suse.com>
Date: Wed, 11 Feb 2026 15:16:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <ced640968434a67c150eff90437f83d3b460a36c.1770650552.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: <ced640968434a67c150eff90437f83d3b460a36c.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> Based on Linux kernel v6.16.0.
> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
> we want to guarantee that if a bit in irqs_pending_mask is obversable
> that the correspondent bit in irqs_pending is observable too.

And the counterpart of this barrier is the one encoded implicitly in
xchg()? Could do with making more explicit, e.g. by way of adding a
code comment there.

> Add lockless tracking of pending vCPU interrupts using atomic bitops.
> Two bitmaps are introduced:
>  - irqs_pending — interrupts currently pending for the vCPU
>  - irqs_pending_mask — bits that have changed in irqs_pending
> 
> The design follows a multi-producer, single-consumer model, where the
> consumer is the vCPU itself. Producers may set bits in
> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
> performed only by the consumer via xchg_acquire().

What is xchg_acquire() in Xen? I can't spot anything like this.

> The consumer must not
> write to irqs_pending and must not act on bits that are not set in the
> mask. Otherwise, extra synchronization should be provided.
> 
> On RISC-V interrupts are not injected via guest registers, so pending
> interrupts must be recorded in irqs_pending (using the new
> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
> HVIP before returning control to the guest. The consumer side is
> implemented in a follow-up patch.
> 
> A barrier between updating irqs_pending and setting the corresponding
> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
> that if the consumer observes a mask bit set, the corresponding pending
> bit is also visible. This prevents missed interrupts during the flush.
> 
> It is possible a guest could have pending bit not result in the hardware
> register without to be marked pending in irq_pending bitmap as:

Are there some words missing in this sentence? I find it hard to follow
the way it is.

>   According to the RISC-V ISA specification:
>     Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>     interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>     is an alias (writable) of the same bit in hvip.
>   Additionally:
>     When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>     zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>     hie.VSSIE.
> This means the guest may modify vsip.SSIP, which implicitly updates
> hip.VSSIP and the bit being writable with 1 would also trigger an interrupt

s/writable/written/ ?

> as according to the RISC-V spec:
>   These conditions for an interrupt trap to occur must be evaluated in a
>   bounded   amount of time from when an interrupt becomes, or ceases to be,
>   pending in sip,  and must also be evaluated immediately following the
>   execution of an SRET  instruction or an explicit write to a CSR on which
>   these interrupt trap conditions expressly depend (including sip, sie and
>   sstatus).
> What means that IRQ_VS_SOFT must be synchronized separately, what is done
> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
> PMU isn't supported now.
> 
> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
> IRQ_VS_EXT), the specification states they cannot be modified by the guest
> and are read-only:
>   Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>   bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>   the logical-OR of these interrupt sources:
>     • bit VSEIP of hvip;
>     • the bit of hgeip selected by hstatus.VGEIN; and
>     • any other platform-specific external interrupt signal directed to
>       VS-level.
>   Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>   bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>   logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>   signal directed to VS-level.

In what you quote there is something being said about bits being r/o in hip,
but I can't conclude the "cannot be modified by the guest" that is being said
ahead of the quotation.

> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
> and vcpu_unset_interrupt(), and flush them during the call of
> vcpu_flush_interrupts() (which is introduced in follow up patch).
> 
> vcpu_sync_interrupts(), which is called just before entering the VM,
> slightly bends the rule that the irqs_pending bit must be written
> first, followed by updating the corresponding bit in irqs_pending_mask.
> However, it still respects the core guarantee that the producer never
> clears the mask and only writes to irqs_pending if it is the one that
> flipped the corresponding mask bit from 0 to 1.
> Moreover, since the consumer won't run concurrently because
> vcpu_sync_interrupts() and the consumer path are going to be invoked
> equentially immediately before VM entry, it is safe to slightly relax
> this ordering rule in vcpu_sync_interrupts().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v3:
>  - Use smp_wb() instead of smp_mb__before_atomic().
>  - Add explanation of the change above in the commit message.
>  - Move vcpu_sync_interrupts() here to producers side.
>  - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
>    is called.
> ---
> Changes in V2:
>  - Move the patch before an introduction of vtimer.
>  - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
>    vcpu structure starts out all zeros.
>  - Drop const for irq argument of vcpu_{un}set_interrupt().
>  - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
>    could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
>  - Drop IRQ_LOCAL_MAX as there is no usage for it now.
> ---
>  xen/arch/riscv/domain.c             | 70 +++++++++++++++++++++++++++++
>  xen/arch/riscv/include/asm/domain.h | 24 ++++++++++
>  xen/arch/riscv/traps.c              |  8 ++++
>  3 files changed, 102 insertions(+)
> 
> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
> index af9586a4eb0d..4513f778cdc4 100644
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -5,6 +5,7 @@
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/bitops.h>
>  #include <asm/cpufeature.h>
>  #include <asm/csr.h>
>  #include <asm/riscv_encoding.h>
> @@ -124,3 +125,72 @@ void arch_vcpu_destroy(struct vcpu *v)
>  {
>      vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info) - STACK_SIZE);
>  }
> +
> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
> +{
> +    /*
> +     * We only allow VS-mode software, timer, and external
> +     * interrupts when irq is one of the local interrupts
> +     * defined by RISC-V privilege specification.
> +     */

What is "when irq is one ..." intended to be telling me? There's no ...

> +    if ( irq != IRQ_VS_SOFT &&
> +         irq != IRQ_VS_TIMER &&
> +         irq != IRQ_VS_EXT )
> +        return -EINVAL;

... corresponding code (anymore), afaict.

Further, who are the prospected callers of this function and its sibling
below? If they're all internal (i.e. not reachable via hypercalls or
emulation on behalf of the guest), this may want to be assertions.

> +    set_bit(irq, v->arch.irqs_pending);
> +    smp_wmb();
> +    set_bit(irq, v->arch.irqs_pending_mask);
> +
> +    vcpu_kick(v);

Shouldn't this be conditional upon the pending_mask bit going from 0 to
1?

> +void vcpu_sync_interrupts(struct vcpu *v)
> +{
> +    unsigned long hvip;
> +
> +    /* Read current HVIP and VSIE CSRs */
> +    v->arch.vsie = csr_read(CSR_VSIE);
> +
> +    /* Sync-up HVIP.VSSIP bit changes done by Guest */
> +    hvip = csr_read(CSR_HVIP);
> +    if ( (v->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL) &&

Nit: Parentheses please around an & expression when used in an &&
one.

> --- a/xen/arch/riscv/include/asm/domain.h
> +++ b/xen/arch/riscv/include/asm/domain.h
> @@ -54,6 +54,25 @@ struct arch_vcpu {
>      register_t henvcfg;
>      register_t hideleg;
>      register_t hstateen0;
> +    register_t hvip;
> +
> +    register_t vsie;
> +
> +    /*
> +     * VCPU interrupts
> +     *
> +     * We have a lockless approach for tracking pending VCPU interrupts
> +     * implemented using atomic bitops. The irqs_pending bitmap represent
> +     * pending interrupts whereas irqs_pending_mask represent bits changed
> +     * in irqs_pending. Our approach is modeled around multiple producer
> +     * and single consumer problem where the consumer is the VCPU itself.
> +     *
> +     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
> +     * on RV32 host.
> +     */
> +#define RISCV_VCPU_NR_IRQS 64

What is this 64 deriving from? IOW - can it be some kind of expression,
helping the reader?

> --- a/xen/arch/riscv/traps.c
> +++ b/xen/arch/riscv/traps.c
> @@ -169,6 +169,11 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
>      die();
>  }
>  
> +static void check_for_pcpu_work(void)
> +{
> +    vcpu_sync_interrupts(current);
> +}

Is this really a helpful wrapper? Or is there going to be more stuff in here
later on?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 14:27:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 14:27:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227717.1534145 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBBB-0008TQ-Qp; Wed, 11 Feb 2026 14:26:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227717.1534145; Wed, 11 Feb 2026 14: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 1vqBBB-0008TJ-OB; Wed, 11 Feb 2026 14:26:57 +0000
Received: by outflank-mailman (input) for mailman id 1227717;
 Wed, 11 Feb 2026 14: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqBBB-0008TD-2e
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 14:26:57 +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 b790b3f3-0755-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 15:26:56 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso18698175e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 06:26:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835bc6ddcbsm18613025e9.16.2026.02.11.06.26.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 06:26:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b790b3f3-0755-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770820015; x=1771424815; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u86qJZK/8TZNS6k6MRdcLV7wGkae6xtAu/qyMW+Eev0=;
        b=g4zjuwnNa4YfAiNTPUdmftpGA5gxkPu6CwoWs+j6euDGVITJVFV6c2a5+VTHih04rJ
         EH6hsU7/YMZm92zrvyN/Y118r1dqjpzAanSfC99rVFKpu9CBE5R2p3tLd2UrffVH+qzQ
         a8oikyWfgBGAXrBI1ev7IID4/VImh1/8JA+/qZDxPgFZMmx/V4Fih/u3LrOnvzemZG5g
         R56jhcOajR8bPnNglTr/AcRwJ9Wpi+l7WG5V0LduamzVAqdlMoBUXb3eCkVoptW9AUvF
         VY46MHaY++/19JTM20/Ue5UsP6BrLrxbVqbqv3Nit381paEu6ZX9EvjJfPWUbIlx2LrD
         pCXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770820015; x=1771424815;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u86qJZK/8TZNS6k6MRdcLV7wGkae6xtAu/qyMW+Eev0=;
        b=MiZ7wx64bQtfLspR8a3K+lUtt569A+w0soI+cMMO2SL7ScrkbRnlTVcJ/+AYGufsPj
         hPkLDMbSQyHH9CY4V/bTmFNnyg/iT4C7kJPKNXAUlji/lp8rQh1tQtMbjmFpTTD71sCS
         KGDK6TPRNBjCpnvWrf5js/Tsg8xptCs1x6m2YdZHz34bGVtp/g/cok0AEhEPzOZ1iWGr
         E97lcYB0Wjz6mdQNMOk55lvw5uE41u+bTmmX1kASqhQkq3wKY6bdV702s4nl0WVS/eDp
         uyqhFhfvk3k+Y1oRtZE27KlLiVK2uraNIAYUqGiFBmuiG8Jkp7/UziuJlgxuLtj/daTL
         zBuQ==
X-Forwarded-Encrypted: i=1; AJvYcCU4CNrnWJAbyBpYug6SJm/GkWweHq09MASmaxRkah7qHQceFXhtbZC5NkKgvLHwPNyu8E7V5J7FJX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyu8k0VmiMaKJwiRKef0MhQIZazP4Q5wBIs4ttKNtVnTGODVE3d
	pF1Y6VdIdWef13ne2oyjQNF5dAr/zGCkWtl6GNg1PJgDuoXbmmAPG7xzyd4IGcql1w==
X-Gm-Gg: AZuq6aLhVbyPNQyK+d58PYw5kmlCJ4Y5KeexX2GimU+4K8p5aiabCmbGfXxRJfNnkNI
	YMfnurlXTqwoSnbD0XBK+J7jLI+KnMtcVkWow4IuuiXX3ayg677Bp5IWVI11e9QlSfBFr3ZqHlx
	m/hvZEo5LSy9UXUr/Wm57p6UwMKhoAQ0VG7r/u08lBkoZWRrWB6R7fBhe1PsWwO+440sUePzaDg
	llN5V/SLsSCcUANctTaL8RmAg3EVZ73NP6b80dOFcynvUhlBsNKbzzx8K2JDgklzUbH0yUNtz+K
	kCxZKmvuxnlGsmGAoFW4N8JpudK/TplOkYBKZmVzkQbZ0MwACcgKMRmKSTO24w5OE+AD6xHLYVO
	qBGUGLWGkveNmQHxK+UUqOKizRzoGg2cO+IRUa0VPmGV/2OWXmmvq8UbSk24meoFcNf8pJ+/goR
	CrnJ/7z/AoCmD5zrPxnMczJr294g0FGyEO/+3FVb4+BC1SkIRYlRHvIRcoiuIhOwXFJPnuWf0u8
	YEs7lAx587HWRw=
X-Received: by 2002:a05:600c:3f08:b0:480:46c6:bf4b with SMTP id 5b1f17b1804b1-483201dadb6mr271014615e9.5.1770820015418;
        Wed, 11 Feb 2026 06:26:55 -0800 (PST)
Message-ID: <2f50ee9a-b2f3-4e33-a2a9-fbf066e93f8d@suse.com>
Date: Wed, 11 Feb 2026 15:26:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 2
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <a81d2873c901c825a08f817d962a8cef09167447.1770650552.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: <a81d2873c901c825a08f817d962a8cef09167447.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> This patch is based on Linux kernel 6.16.0.
> 
> Add the consumer side (vcpu_flush_interrupts()) of the lockless pending
> interrupt tracking introduced in part 1 (for producers). According, to the
> design only one consumer is possible, and it is vCPU itself.
> vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due
> to the lack of functionality) before the hypervisor returns control to the
> guest.
> 
> Producers may set bits in irqs_pending_mask without a lock. Clearing bits in
> irqs_pending_mask is performed only by the consumer via xchg() (with aquire &
> release semantics).

Where the release part isn't relevant here, aiui.

> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -194,3 +194,36 @@ void vcpu_sync_interrupts(struct vcpu *v)
>  #   error "Update v->arch.vsieh"
>  #endif
>  }
> +
> +static void vcpu_update_hvip(const struct vcpu *v)
> +{
> +    csr_write(CSR_HVIP, v->arch.hvip);
> +}
> +
> +void vcpu_flush_interrupts(struct vcpu *v)
> +{
> +    register_t *hvip = &v->arch.hvip;

Why not in the if()'s scope, when it's used only there?

> +    if ( ACCESS_ONCE(v->arch.irqs_pending_mask[0]) )
> +    {
> +        unsigned long mask, val;
> +
> +        mask = xchg(&v->arch.irqs_pending_mask[0], 0UL);
> +        val = ACCESS_ONCE(v->arch.irqs_pending[0]) & mask;

Make these the initializers of the variables?

> +        *hvip &= ~mask;
> +        *hvip |= val;
> +
> +        /*
> +         * Flush AIA high interrupts.
> +         *
> +         * It is necessary to do only for CONFIG_RISCV_32 which isn't
> +         * supported now.
> +         */
> +#ifdef CONFIG_RISCV_32
> +        #   error "Update v->arch.hviph"

Ehem. I really dislike having to give the same comment over and over again.
Please have the # of a pre-processor directive always in the first column.

Also, isn't this misplaced? The containing if() checks irqs_pending_mask[0],
yet aiui irqs_pending_mask[1] would be of interest for hviph?

> --- a/xen/arch/riscv/traps.c
> +++ b/xen/arch/riscv/traps.c
> @@ -172,6 +172,8 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
>  static void check_for_pcpu_work(void)
>  {
>      vcpu_sync_interrupts(current);
> +
> +    vcpu_flush_interrupts(current);
>  }

Ah, okay - here comes a 2nd call from this function. However, please latch
current into a local variable (already in the earlier patch perhaps); no
need to fetch it from per-CPU data twice (or yet more times, if further
stuff was going to appear here).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 14:28:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 14:28:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227726.1534156 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBCI-0000iG-40; Wed, 11 Feb 2026 14:28:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227726.1534156; Wed, 11 Feb 2026 14:28: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 1vqBCI-0000i9-0y; Wed, 11 Feb 2026 14:28:06 +0000
Received: by outflank-mailman (input) for mailman id 1227726;
 Wed, 11 Feb 2026 14:28: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vqBCG-0000i1-GN
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 14:28:04 +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 de73f19b-0755-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 15:28:01 +0100 (CET)
Received: from DB8P191CA0023.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::33)
 by GV1PR08MB11049.eurprd08.prod.outlook.com (2603:10a6:150:1f3::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 14:27:54 +0000
Received: from DU2PEPF00028D0E.eurprd03.prod.outlook.com
 (2603:10a6:10:130:cafe::90) by DB8P191CA0023.outlook.office365.com
 (2603:10a6:10:130::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed,
 11 Feb 2026 14:27:50 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D0E.mail.protection.outlook.com (10.167.242.22) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 14:27:53 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by PA1PR08MB11670.eurprd08.prod.outlook.com (2603:10a6:102:558::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Wed, 11 Feb
 2026 14:26:50 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 14:26: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: de73f19b-0755-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=gI52Auwl4rc0xbNcGCV5FIRWYu8zceqJLcXVvGLgBsg1A7eG18DFYh67vFzdTIHGs1+v0O7AYMLG+l/hgR/FCOdYtrFlRMdB01lqGLz34pJDIH7ZZmg2PnLwQ/ds1dIb6QMA97lVisFZmGa9J6QPwjQfvY4vKE9dk9yJYVRvEbL3inDJUdE0/giUddgCtmGeV4NoT0WJSiEj8w0uwoZREpARSHga0pFtCG77noLXBRaAiwiIDw5ikorgM9DCk38IRzb9wXnptQinudhWbZXuktjN4VpFON7lUP2ZXcGXDBLDP4ohivYvG3kNLiq/rnyeEjMnH1GAyzbXobFqkveNOg==
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=SU6Kecneh1kjo06iRHaR13oXWtvn5PqIMxgv4dUaEC4=;
 b=uXJUo9CM5pVndEW8Fb0qlkrnrwqlboD5T+n4kbkiJ1gEuGj2XLX2QQXwzr2h3L+C79U1ahS16b1OT/8m+Hv9UgoH/XeqFYepkPF9fIs3KPtG/igcNPcdbQt3kooIZAdthQAaiLrZl8Ud0YrimTFP6pu+Np4blCncEUYg+Ja43cGl3C1XKLIExF94eR0CrKd/DGgy3KYSux5Qh/BKdv355ISOvWeykl4wtfbkLLSKi/XdeHc9UNBAeWj46DIuwHRYrJoSmOoEDScRA4nQkCfEJmmjF/WrDLdTB6YnMeynKVIptpWe0nia8BmRcv8GEkImgECN02SpmGci08ZKfMtgZw==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SU6Kecneh1kjo06iRHaR13oXWtvn5PqIMxgv4dUaEC4=;
 b=D+buQaoRYiQ33l36uvAwuv/UAsB3UgHnuad+MPy6CTAVcBE01AJFlsY8PM7XXyAy1khJmS7huuCBGUbwEeUWGz+nUS7pcyq4C9LkmgyrRwgOzSb9/JOF7+iMEc1hB8b1aiNnBW0JxfWiZH55aWSEIcBejT7USnKcLkTBnMGZFEw=
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=A4bAgvI9QKBgJQioCzygnnUVL7TLP/mWEOjHYzrF754hzjmZyfwHLPJYgJzFdvSf6ojBOO6P41vQ64c22RkM94+E+iZhXZ5Mr75FEPptTFKWkPyHaQqF1MFGR5mR7j0OsCzmbTtCco/BLvcrkFYWCdBcchgwHVRKgz9VCaJeWxSc18MnS3JlouPWlCNO8y9Cts24T1XJNTWxQndgae6wzs1jxdc4JK7d1DWjPoD700RQqDfR34VpiYe28Ysu2LTSgsqGQ3+Wl/IisL0b1zRVRG/ebSmPZ9JXCXzp4AaWx0Rl9jvkmC0EcoxNbo00LVj760V1KD9NRVgHvSMjwPQfYQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SU6Kecneh1kjo06iRHaR13oXWtvn5PqIMxgv4dUaEC4=;
 b=HfEf6I3TNBR8vjVly+gPi56dgqmD0bgf0YbNWMxUxUxzOuftjsqC9esBlaBkOpHchlN4/lP7vbfoz0RzcsfAEfChfbLOVNtoF2zk/9pnvhkI5fbzFWRQNqPeJIKGFUzfI1Wk7CD4tMjSgVoUzZgNaKR5VjM44fK152YMXFKcG9d9us1Y1PsbXTVJKmDlLCZKPoxwMOLMkF7/Lo6axcMS+Wx+ucNExlYLJbLUmxr7qgtnvVOpQzUTNPzj3J0y+v6wzCKLUpCLxK42rnqSMuHl9WPWzZG9sdQWQfgdSLQZuC306kMnAC4HSVLnzthcfgqsDpdn1GhOh1vk7I2WVPVeGA==
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=SU6Kecneh1kjo06iRHaR13oXWtvn5PqIMxgv4dUaEC4=;
 b=D+buQaoRYiQ33l36uvAwuv/UAsB3UgHnuad+MPy6CTAVcBE01AJFlsY8PM7XXyAy1khJmS7huuCBGUbwEeUWGz+nUS7pcyq4C9LkmgyrRwgOzSb9/JOF7+iMEc1hB8b1aiNnBW0JxfWiZH55aWSEIcBejT7USnKcLkTBnMGZFEw=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 12/12] xen/arm: ffa: Add message parameter diagnostics
Thread-Topic: [PATCH 12/12] xen/arm: ffa: Add message parameter diagnostics
Thread-Index: AQHclTU3ZJPDIpNYRUSOTYp5hfKcabV9VJGAgAAZM4CAAB65AIAADfgA
Date: Wed, 11 Feb 2026 14:26:50 +0000
Message-ID: <ACF91F47-6878-4ED8-B3A9-4181731D917C@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <209e5474e236737dd13e0f7ff8120b05cdb7eabe.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44Ebe03R2nTzUW9tDx5hPC6trZCWOdr94ApawFs20chdWw@mail.gmail.com>
 <7B367F9A-37E3-4157-A7B2-3EA21EE9FE52@arm.com>
 <CAHUa44HAtC=vwepiYg=gSvdr_xkwjSaBzS8FL_hnF_dF9RHi0w@mail.gmail.com>
In-Reply-To:
 <CAHUa44HAtC=vwepiYg=gSvdr_xkwjSaBzS8FL_hnF_dF9RHi0w@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|PA1PR08MB11670:EE_|DU2PEPF00028D0E:EE_|GV1PR08MB11049:EE_
X-MS-Office365-Filtering-Correlation-Id: 99200dce-6e4e-4c1c-24b4-08de6979be69
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?YUdSd3JnR1pWMlBpWnltWGU2OW55SXZIWU9XdFBFSUZWTklIZzcwY1BaVnpC?=
 =?utf-8?B?cmx1WitPRTVNWkk1Z20wRU94V0V0UjdzTkZjS05jSjlOWkh1ckdoa3FOYW55?=
 =?utf-8?B?QTF4Nkx3b1JrTDgyZFdSakpYTGo5U1lRYlJsUXlxNjNZOVVDWk1jclJjdnBh?=
 =?utf-8?B?RTZ0bWplTFdHR2N5SzRaZUp1K3VZeXpoQTM5WXRIK1o4dVBLRjl5QVZLUjIz?=
 =?utf-8?B?dEF2YUZCY054K2RnUGYzMnRkSWdHNFdVUHAxVlI4WEt2aENabVM3bnJEd056?=
 =?utf-8?B?U0h4bHlSSksrWFVYTE8wdi9MRU4vR2c5SERKVHNuLzBFYWpjM2V4Z2lldkFo?=
 =?utf-8?B?Z1dZNWY2K2JiMU9lU1BEOGdmSmhJaEhnQmc4S1A2VDZCNkFXYUNrZnZsN29Z?=
 =?utf-8?B?c0ZTbHk0eHIrdVlyeGt6b0txdEJobGV3d1R2cGpXd0Z4S2pBbVZNK2Rjb0dB?=
 =?utf-8?B?eERiOVd2OW9GOUpzM1hOTW5GM1B6VkhrV1JNV3FOWkEzUkYzSFJMRXJBZE8v?=
 =?utf-8?B?V3hEZ2tjQ29wVE1WZHptTWg0cGNTUWxmYzVYVEhCZGx0YS83S291S2xYY2g0?=
 =?utf-8?B?ZWpCT1BoazBZUHBzVnhQMkhVamt2NllzWkgxNGlxYlMySWw1OVZYQmV0M1lo?=
 =?utf-8?B?YlB3Ykc1M09PYmx6R0JYTTgySXpJY1pieUhnM1B0VytDeXVRN3hKV242OVVj?=
 =?utf-8?B?UThLdTB2a0hlZTlCbEwyL3pVa2YwZ1c0cGhTVlN4dGR0VDJOT3Z4alFEdkgz?=
 =?utf-8?B?WGt2TnRKdEpJWHFKbzBYaUVNbW12NTJPdnF5ZWJ3V3d5aWY0OHNhcnVOeE1B?=
 =?utf-8?B?TVo3NjZxaUt2UlVkKzVrREp5Y2JIcFVmMjJmelVvcEd1aGdQQis4MDh6RXMr?=
 =?utf-8?B?RmtWM0dKNjdpMDc3TmF0eGNndmhZREdiOHBiK1Y4TnRxMnVMTjYwanE4QWZ2?=
 =?utf-8?B?NXZwS2l6QzJRaVAvaWowUlRIdWpMRnJWTHB0dkVnVE9SRW1RZy9KR3pJZWNH?=
 =?utf-8?B?M1RJVnA0eG0zcG5GUW1lUytnSWJUSi8vQWo4SzZMREZiVXFzZ0ZENjVLWDRu?=
 =?utf-8?B?WlA1TEVJM0JGUmlOalp1K2pDWFVDYXQ2b2ZnZ3o1YmxZL20zVFNlSXRRV29M?=
 =?utf-8?B?dmlzdy8zd0ZxM3hTbERoWGVIdTkxcHNib1U3SVVlUmtseEw4MzNLS1dlWDVE?=
 =?utf-8?B?UUxTalc3bElJd2N5bTNoSUhSaGxOZkRzZ0tvTy9INU5OV2dtTE9NYU5hRUw2?=
 =?utf-8?B?RHZkNG1XMWNjQWZSRFI3RlYwTlFXbE10d282SmFpbzhBZ3lDQUR6dGREZVVV?=
 =?utf-8?B?Wk4wZlFHVU9rek42MU9jbktxT2g3eGJBaWdLdm8vVG5hZFlLQnlVV3VSaEFm?=
 =?utf-8?B?SkYrUWZ5T2gvS2R6VEhTcVR6NXF3RzV5czZyTzNVeFB3TFd1Nmp3dVd3Skts?=
 =?utf-8?B?bkdUVEJiVm5kc0FDTi9hMnp2Q2c0YnRxNkhxcEtFOHh1VyszVGZzZGE5YkZS?=
 =?utf-8?B?Q1BySnlmSG0zNkY5QVl6N2J2NTRiV1pNeTl0THhZMGVOOUlIcUI4aUY3R0NE?=
 =?utf-8?B?Y0ZOWHVXbm15RzVIM0xJa0dhV0Vpbklmb3ZVSmlmTmhCVG1lSlplUUlyT01o?=
 =?utf-8?B?M2J3VnZ1YVNFQ2hZWGRuQS90UG5ndnI3MjJ5N21JNEoyaDlRUzRLU2pmbEw5?=
 =?utf-8?B?b0NGWDFiMjVLUEU5OS85bk5KQTZVVnBOZVBtSWNUVzhMVHIrZkJ3UldOSXFt?=
 =?utf-8?B?eDJJQ0Z0MHBDRFBUZ05FMjhoTFpFd2Q2Z3RrWHdYeC9UQjZHd3VwaXkzTmpZ?=
 =?utf-8?B?UCtjLzVpREV4eHRCa1AzekhCNlUreGRPYS9nR3R6Q2kzYlFTcmozNGVYaEhX?=
 =?utf-8?B?bnBrVUlzOGl0VWFWR2RYazBLNjVLZjVGb1hLVTNFSW5oeE5ueWRPN1Y3N1d5?=
 =?utf-8?B?RTlvd3ZpblFzczZEZDJPellUd0ZhbjYrUUwrVU4zaUxaRU1QaVVQeXhWcUpR?=
 =?utf-8?B?UG11aHFmWm8rcmh6b2gzYkcza09BVEpOaDU4NXBFWDVpR2tsK2FSbWZiTWV2?=
 =?utf-8?B?ZStBNVRTdGdNOVFKL243RUNxR1AzSDVHdzhpSmtDSi8yZW4xaGRhL2NFaHla?=
 =?utf-8?B?ZDg0ZTBBYnloNEQ3NFR5VDlGRXUxT3VrTjlUR3dPcmE2Q0RYb2NmVVlHMXVn?=
 =?utf-8?Q?rQtDt77QAOxrCmfjgoO92dU=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <3CB17A801ACD104BBE6E353E30637D74@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR08MB11670
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D0E.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	efe02ce3-382d-44d4-3cd4-08de697998a0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|14060799003|36860700013|1800799024|82310400026|35042699022|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V1ZRMHlGSGw5WGRxOFo0RXNiTVdIT2hhZmVkTno5UytDR1dTOFhLM09jdy9z?=
 =?utf-8?B?NDRmZ2s0TVZrazcxRUNTSnhzVHJKNUlNcmJDQ0NiWlRDdHZFbi9Ibi81SFdz?=
 =?utf-8?B?Q1Y5dUFIQjZWNWxKU2lJSDRQSk9ZZjhPTDVvU2JZNmlGTGR0QlpHS1I2c25p?=
 =?utf-8?B?YU9tUGFEdWFqVzMrbkFGdG9idFh5czY5bXNBVTRra045Ti9DOFNLOXZqaWFZ?=
 =?utf-8?B?RHh2ckdHT2RveGpVamxiSUpCRDJScDBjb0lVbVJZc29TOUlSVFUzY1JwRVJO?=
 =?utf-8?B?bEdjRXprYnU5dEk5L2dhRDVkaEVtZE5rRmFoaC95aUJXdmcyQTZtcEg2b0VE?=
 =?utf-8?B?L042bE1ZS21Sc0RCQ0xFU0R3WktKaU5kQTVlVzh0ZW16R3dGRjhuRjIrZXV4?=
 =?utf-8?B?Y3RQUW0yb1hxZWlIWi9IN0tJQVJkbTdZcVQ5NS9acEFDR3VUTWJmR1ZqcFl5?=
 =?utf-8?B?Mk8wdnJRWmVMbnJBbVo1TVZDa3RQajc2RHRoNnVDMnA3Y1N4YTcxVSt4OXNz?=
 =?utf-8?B?dVBLSHAzSHFoUVEyU0pnV05UOEJiVDU1K0pCL1M1dUZBajZ5c0dvTU1FOFVL?=
 =?utf-8?B?a25BOG8wYTVyZ25MN1Bwdm1uK1BuN1I0WE9OcDRUQS81TmN4c1RTRWhTY1NQ?=
 =?utf-8?B?SjNwZ20veGxkRURreDdVcmVrUnBlZGlLMUkrWDk4RWJyRDFUTTNZOThSd0VD?=
 =?utf-8?B?RzJDRnFvTVRmUGhQd2dpZnBEY2M3NmxzaVcwZG05VzBZQ3pwQnMveFM4ajNp?=
 =?utf-8?B?M0grNGhRNkhpSk1WQVY2bE1pc2hwYTIzTGgvMWZONUpwbVh3VTQ2WEhPb0kw?=
 =?utf-8?B?ekxlemR6cm0vZDQ4bW1yclU2QWFYR0RoODNCNGV4cFNRL2s2TzlRM0FPTXFO?=
 =?utf-8?B?SWZsUVVtdnpsNFkzRTNtK0pESXlCU0xXT0N4MkJUVWoweTVMSjF6a3JHZHRR?=
 =?utf-8?B?alU2L1QxajZ1NHVVT3dyenNtdnBwN3hMNndYZ2NsbWpOSDM5REtkdVRnV0pH?=
 =?utf-8?B?V3ZtT3NydVBVVm56ZHFvRXI0b3BDdkxiaHdkNjJTbHJrMDdidS9nWUFoUEhD?=
 =?utf-8?B?YnBSUE5TSXlpRy9HanMzR2dOdjVKMGF3RlVVSDhnK3RRVUtBWGppOUMzK2V1?=
 =?utf-8?B?SktBeXZYeEw1YTdJdmpxbXlPOUwyOWoxMWE2OEc4YmltWjlJRzlDZnFvajV5?=
 =?utf-8?B?ajFRb2pxVE5pZ3NiVGN1THlmWFYxcWJ3QXV5Ty83RVNQY3l1QW5NVGZQVStm?=
 =?utf-8?B?a1MyaW1LNXE2aXlrK0pvZ3lTZXNYeEI0eldPYUVycWhJNmsxb2dzYk9GT0hs?=
 =?utf-8?B?dHdseFo3d2ZHd2I0MGwrVk1xcG1SSktBaEdPUGZIcTBWYVVOSmhzYnFqRytF?=
 =?utf-8?B?MlhxOWJ3Vk5DVG16Mnk2VW1YSEhXT25RNlRBaSsrN1RpMkI5YmZMeGcxS1N4?=
 =?utf-8?B?bVFxcXZJc3JZZHlqR28wY0JMc0FDNUpMWmRmVG1FWldYWnl6SEc3eTJzb1ZL?=
 =?utf-8?B?ZWhBcjZDK2crbnhUWmxVdWRYN2thc2FrNkpBeG5lQ1VieWtLUUNGMTgxR1hi?=
 =?utf-8?B?VytwSE1aWkVZOWxKbFlmeXo3TENrOHI1M0NjVlVhUy8vaDhDVG9WcXZWektp?=
 =?utf-8?B?bmhMUlRHZGt4U1R3ZzRsRllkalFhNTVFdXZlR3pyMFVBZXREdmNRSjhGM0Ny?=
 =?utf-8?B?VEJQQWJCN3k5WDVya2kzMUlVZ3FESnhwUWg5eUtMWjZRYjQvVTBmcUdaaGRM?=
 =?utf-8?B?NUVXbkhDbmVYQVprVXhzMEJGem45RjNZODQvRWp5OXdMM3Y4dVdpMysvaE5k?=
 =?utf-8?B?b1ptNEJuV2VZY04vZW5mRE9iRGtYQzZaM1V4bGg2YmN0eWgxQ05OWW9WV0pz?=
 =?utf-8?B?VjVOcEtGZkhtckFEN3RBLy83SnMzMWdYUzRCaXpFb0wrdEpkc1lwSHJJMXVB?=
 =?utf-8?B?NlpHZXNoRTk5RkovZG4zOHRrNHFYbFFEcjBqc0pNKzFkb055Nm5zWDhrOFlP?=
 =?utf-8?B?VXp1QnpSd0RiSFdzKzg3bWVUcXcxYkFtUnFUTlJQdTRFcG5Wc0xYQXVNSmNH?=
 =?utf-8?B?MG9tYThDQ2RqYktkNUF6cnpPVzdSSUxnQUpOSi9vaFhYUG8xeUozdEFGQUVk?=
 =?utf-8?B?VmJFWDNOMk12NXMzTFVWaFRSdmtBWU03SUJtdDJXdTRWaXNqOEZRbnA2U0Jn?=
 =?utf-8?B?SUJuYS9SYi9vdXBpY29SYkhpdll0R3JrbVhNMS9abXlIVVord2tZbjA4VUdZ?=
 =?utf-8?B?bzhmVDNmOE0xM25NbFd5clhkUll3PT0=?=
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)(1800799024)(82310400026)(35042699022)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	GxCa1NffBhT7+mW7QDAelxt7boVfyZPfGYmVAbEqDIT37ZJnaYbbPD4+0PpnxOQKr+mb49EcmGw99oinEzADBXUFKUM8j0RuLjA0QuJvdH/t/FaAxu6QnxdfNbu593DUpoky9QPXPCBWmO484Zn/RCgl4hsF885pSG4UkypfqI1suj7r9pPYTAIDe1nqcMFvEY03JKRLPqshaIamb0A0+cC85DmfNGD94SuuQZ9TwhA2znUv7k5qkMUWh4H8xQ3/4Y1mZ7KqtCgCMIEpsvf/NntpRjMMrEgoDqCOhNA4FxnAT9ICwCocbSklAP2eZ9PjxomYBUzBiTpSANJ2GX/o0iFo2Y1M4OUSE9AqSpGQ593EvdaKVMI0ns+uRRhHTXLbgPhKPCTVmwfQVTRoCGho1HXU5Dd0vwvLfzu4oe7FTkgyUX7mpk2qRBpf7Cl9O7IA
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 14:27:53.8633
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 99200dce-6e4e-4c1c-24b4-08de6979be69
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:
	DU2PEPF00028D0E.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB11049

SGkgSmVucywNCg0KPiBPbiAxMSBGZWIgMjAyNiwgYXQgMTQ6MzYsIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gV2VkLCBGZWIgMTEsIDIwMjYgYXQgMTI6NDjigK9QTSBCZXJ0cmFuZCBNYXJxdWlzDQo+
IDxCZXJ0cmFuZC5NYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBIaSBKZW5zLA0KPj4g
DQo+Pj4gT24gMTEgRmViIDIwMjYsIGF0IDExOjE2LCBKZW5zIFdpa2xhbmRlciA8amVucy53aWts
YW5kZXJAbGluYXJvLm9yZz4gd3JvdGU6DQo+Pj4gDQo+Pj4gSGkgQmVydHJhbmQsDQo+Pj4gDQo+
Pj4gT24gVHVlLCBGZWIgMywgMjAyNiBhdCA2OjM44oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPj4+
IDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4+PiANCj4+Pj4gTVNHX1NFTkQy
IGFuZCBkaXJlY3QgcmVxdWVzdCB2YWxpZGF0aW9uIGZhaWx1cmVzIGFyZSBzaWxlbnQsIG1ha2lu
ZyBpdA0KPj4+PiBoYXJkIHRvIGRpYWdub3NlIGludmFsaWQgSURzLCBvdmVyc2l6ZWQgbWVzc2Fn
ZXMsIG9yIHVuc3VwcG9ydGVkDQo+Pj4+IGRlc3RpbmF0aW9uIHR5cGVzLg0KPj4+PiANCj4+Pj4g
QWRkIGRlYnVnIGxvZ3MgZm9yIHBhcmFtZXRlciB2YWxpZGF0aW9uIGZhaWx1cmVzOg0KPj4+PiAt
IGludmFsaWQgZW5kcG9pbnQgSURzDQo+Pj4+IC0gb3ZlcnNpemVkIG1lc3NhZ2VzDQo+Pj4+IC0g
dW5zdXBwb3J0ZWQgZGVzdGluYXRpb24gdHlwZXMNCj4+Pj4gLSBpbnZhbGlkIHNlbmRlci9yZWNl
aXZlciBjb21iaW5hdGlvbnMNCj4+Pj4gLSByYXRlbGltaXQgTVNHX1NFTkQyIGJ1c3kgZmFpbHVy
ZXMgdG8gYXZvaWQgbG9nIGZsb29kaW5nDQo+Pj4+IA0KPj4+PiBObyBmdW5jdGlvbmFsIGNoYW5n
ZXMuDQo+Pj4+IA0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFu
ZC5tYXJxdWlzQGFybS5jb20+DQo+Pj4+IC0tLQ0KPj4+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9t
c2cuYyB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+Pj4+IDEg
ZmlsZSBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspDQo+Pj4+IA0KPj4+PiBkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gvYXJtL3RlZS9mZmFfbXNnLmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYV9tc2cuYw0K
Pj4+PiBpbmRleCA5MjhmMjY5ZjZjM2EuLmNjMjczYzlhOGU4MCAxMDA2NDQNCj4+Pj4gLS0tIGEv
eGVuL2FyY2gvYXJtL3RlZS9mZmFfbXNnLmMNCj4+Pj4gKysrIGIveGVuL2FyY2gvYXJtL3RlZS9m
ZmFfbXNnLmMNCj4+Pj4gQEAgLTQsNiArNCw3IEBADQo+Pj4+ICovDQo+Pj4+IA0KPj4+PiAjaW5j
bHVkZSA8eGVuL2NvbnN0Lmg+DQo+Pj4+ICsjaW5jbHVkZSA8eGVuL2xpYi5oPg0KPj4+PiAjaW5j
bHVkZSA8eGVuL3NpemVzLmg+DQo+Pj4+ICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4NCj4+Pj4gDQo+
Pj4+IEBAIC0xMDAsNiArMTAxLDcgQEAgdm9pZCBmZmFfaGFuZGxlX21zZ19zZW5kX2RpcmVjdF9y
ZXEoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVpbnQzMl90IGZpZCkNCj4+Pj4gICAgaWYg
KCAhZmZhX2Z3X3N1cHBvcnRzX2ZpZChmaWQpICkNCj4+Pj4gICAgew0KPj4+PiAgICAgICAgcmV0
ID0gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4+PiArICAgICAgICBnZHByaW50ayhYRU5MT0df
REVCVUcsICJmZmE6IGRpcmVjdCByZXEgZmlkICUjeCBub3Qgc3VwcG9ydGVkXG4iLCBmaWQpOw0K
Pj4+PiAgICAgICAgZ290byBvdXQ7DQo+Pj4+ICAgIH0NCj4+Pj4gDQo+Pj4+IEBAIC0xMDgsNiAr
MTEwLDkgQEAgdm9pZCBmZmFfaGFuZGxlX21zZ19zZW5kX2RpcmVjdF9yZXEoc3RydWN0IGNwdV91
c2VyX3JlZ3MgKnJlZ3MsIHVpbnQzMl90IGZpZCkNCj4+Pj4gICAgICAgICAoc3JjX2RzdCAmIEdF
Tk1BU0soMTUsMCkpID09IGZmYV9nZXRfdm1faWQoZCkgKQ0KPj4+PiAgICB7DQo+Pj4+ICAgICAg
ICByZXQgPSBGRkFfUkVUX0lOVkFMSURfUEFSQU1FVEVSUzsNCj4+Pj4gKyAgICAgICAgZ2Rwcmlu
dGsoWEVOTE9HX0RFQlVHLA0KPj4+PiArICAgICAgICAgICAgICAgICAiZmZhOiBkaXJlY3QgcmVx
IGludmFsaWQgc3JjL2RzdCAlI3hcbiIsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICh1aW50MzJf
dClzcmNfZHN0KTsNCj4+Pj4gICAgICAgIGdvdG8gb3V0Ow0KPj4+PiAgICB9DQo+Pj4+IA0KPj4+
PiBAQCAtMTE1LDYgKzEyMCw5IEBAIHZvaWQgZmZhX2hhbmRsZV9tc2dfc2VuZF9kaXJlY3RfcmVx
KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCB1aW50MzJfdCBmaWQpDQo+Pj4+ICAgIGlmICgg
IUZGQV9JRF9JU19TRUNVUkUoc3JjX2RzdCAmIEdFTk1BU0soMTUsMCkpICkNCj4+Pj4gICAgew0K
Pj4+PiAgICAgICAgcmV0ID0gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4+PiArICAgICAgICBn
ZHByaW50ayhYRU5MT0dfREVCVUcsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICJmZmE6IGRpcmVj
dCByZXEgdG8gbm9uLXNlY3VyZSBkc3QgJSN4XG4iLA0KPj4+PiArICAgICAgICAgICAgICAgICAo
dWludDMyX3QpKHNyY19kc3QgJiBHRU5NQVNLKDE1LCAwKSkpOw0KPj4+PiAgICAgICAgZ290byBv
dXQ7DQo+Pj4+ICAgIH0NCj4+Pj4gDQo+Pj4+IEBAIC0xNjYsNyArMTc0LDEyIEBAIHN0YXRpYyBp
bnQzMl90IGZmYV9tc2dfc2VuZDJfdm0odWludDE2X3QgZHN0X2lkLCBjb25zdCB2b2lkICpzcmNf
YnVmLA0KPj4+PiAgICAvKiBUaGlzIGlzIGFsc28gY2hlY2tpbmcgdGhhdCBkZXN0IGlzIG5vdCBz
cmMgKi8NCj4+Pj4gICAgcmV0ID0gZmZhX2VuZHBvaW50X2RvbWFpbl9sb29rdXAoZHN0X2lkLCAm
ZHN0X2QsICZkc3RfY3R4KTsNCj4+Pj4gICAgaWYgKCByZXQgKQ0KPj4+PiArICAgIHsNCj4+Pj4g
KyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0RFQlVHLA0KPj4+PiArICAgICAgICAgICAgICAgICAi
ZmZhOiBtc2dfc2VuZDIgbG9va3VwIGZhaWxlZDogZHN0ICUjeCByZXQgJWRcbiIsDQo+Pj4+ICsg
ICAgICAgICAgICAgICAgIGRzdF9pZCwgcmV0KTsNCj4+Pj4gICAgICAgIHJldHVybiByZXQ7DQo+
Pj4+ICsgICAgfQ0KPj4+PiANCj4+Pj4gICAgLyogVGhpcyBhbHNvIGNoZWNrcyB0aGF0IGRlc3Rp
bmF0aW9uIGhhcyBzZXQgYSBSeCBidWZmZXIgKi8NCj4+Pj4gICAgcmV0ID0gZmZhX3J4X2FjcXVp
cmUoZHN0X2N0eCAsICZyeF9idWYsICZyeF9zaXplKTsNCj4+Pj4gQEAgLTE5OSw2ICsyMTIsMTIg
QEAgc3RhdGljIGludDMyX3QgZmZhX21zZ19zZW5kMl92bSh1aW50MTZfdCBkc3RfaWQsIGNvbnN0
IHZvaWQgKnNyY19idWYsDQo+Pj4+ICAgIC8qIHJlY2VpdmVyIHJ4IGJ1ZmZlciB3aWxsIGJlIHJl
bGVhc2VkIGJ5IHRoZSByZWNlaXZlciovDQo+Pj4+IA0KPj4+PiBvdXRfdW5sb2NrOg0KPj4+PiAr
ICAgIGlmICggcmV0ICkNCj4+Pj4gKyAgICB7DQo+Pj4+ICsgICAgICAgIGlmICggcmV0ICE9IEZG
QV9SRVRfQlVTWSB8fCBwcmludGtfcmF0ZWxpbWl0KCkgKQ0KPj4+IA0KPj4+IFNob3VsZG4ndCB0
aGlzIGJlICYmID8NCj4+IA0KPj4gVGhlIGludGVudCBoZXJlIGlzIHRvIGxvZyBhbGwgbm9uIEJV
U1kgZXJyb3JzIGJ1dCBvbmx5IGxvZyBCVVNZIHdoZW4gcmF0ZWxpbWl0IGFsbG93cw0KPj4gdG8g
cmVkdWNlIHRoZSBhbW91bnQgb2YgbG9ncyBpbiBjYXNlIG9mIHNvbWVvbmUgcG9sbGluZyB3aGVu
IHRoZSByZWNlaXZlciBSWCBidWZmZXINCj4+IGlzIGJ1c3kuDQo+PiANCj4+IE1heWJlIEkgc2hv
dWxkIGFkZCBhIGNvbW1lbnQgdG8gbWFrZSB0aGF0IGNsZWFyZXIgPw0KDQpJIHdpbGwgYWRkIGEg
Y29tbWVudCBpbiB2Mi4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IA0KPiBZZXMsIHBsZWFzZS4N
Cj4gDQo+IENoZWVycywNCj4gSmVucw0KPiANCj4+IA0KPj4gQ2hlZXJzDQo+PiBCZXJ0cmFuZA0K
Pj4gDQo+Pj4gDQo+Pj4gQ2hlZXJzLA0KPj4+IEplbnMNCj4+PiANCj4+Pj4gKyAgICAgICAgICAg
IGdkcHJpbnRrKFhFTkxPR19ERUJVRywgImZmYTogbXNnX3NlbmQyIHRvICUjeCBmYWlsZWQ6ICVk
XG4iLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgZHN0X2lkLCByZXQpOw0KPj4+PiArICAg
IH0NCj4+Pj4gICAgcmN1X3VubG9ja19kb21haW4oZHN0X2QpOw0KPj4+PiAgICBpZiAoICFyZXQg
KQ0KPj4+PiAgICAgICAgZmZhX3JhaXNlX3J4X2J1ZmZlcl9mdWxsKGRzdF9kKTsNCj4+Pj4gQEAg
LTIyNiw3ICsyNDUsMTEgQEAgaW50MzJfdCBmZmFfaGFuZGxlX21zZ19zZW5kMihzdHJ1Y3QgY3B1
X3VzZXJfcmVncyAqcmVncykNCj4+Pj4gDQo+Pj4+ICAgIHJldCA9IGZmYV90eF9hY3F1aXJlKHNy
Y19jdHgsICZ0eF9idWYsICZ0eF9zaXplKTsNCj4+Pj4gICAgaWYgKCByZXQgIT0gRkZBX1JFVF9P
SyApDQo+Pj4+ICsgICAgew0KPj4+PiArICAgICAgICBnZHByaW50ayhYRU5MT0dfREVCVUcsDQo+
Pj4+ICsgICAgICAgICAgICAgICAgICJmZmE6IG1zZ19zZW5kMiBUWCBhY3F1aXJlIGZhaWxlZDog
JWRcbiIsIHJldCk7DQo+Pj4+ICAgICAgICByZXR1cm4gcmV0Ow0KPj4+PiArICAgIH0NCj4+Pj4g
DQo+Pj4+ICAgIC8qIGNyZWF0ZSBhIGNvcHkgb2YgdGhlIG1lc3NhZ2UgaGVhZGVyICovDQo+Pj4+
ICAgIG1lbWNweSgmc3JjX21zZywgdHhfYnVmLCBzaXplb2Yoc3JjX21zZykpOw0KPj4+PiBAQCAt
MjM4LDYgKzI2MSw5IEBAIGludDMyX3QgZmZhX2hhbmRsZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91
c2VyX3JlZ3MgKnJlZ3MpDQo+Pj4+ICAgICAgICAgZHN0X2lkID09IGZmYV9nZXRfdm1faWQoc3Jj
X2QpICkNCj4+Pj4gICAgew0KPj4+PiAgICAgICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BBUkFN
RVRFUlM7DQo+Pj4+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywNCj4+Pj4gKyAgICAg
ICAgICAgICAgICAgImZmYTogbXNnX3NlbmQyIGludmFsaWQgc3JjL2RzdCBzcmMgJSN4IGRzdCAl
I3hcbiIsDQo+Pj4+ICsgICAgICAgICAgICAgICAgIHNyY19pZCwgZHN0X2lkKTsNCj4+Pj4gICAg
ICAgIGdvdG8gb3V0Ow0KPj4+PiAgICB9DQo+Pj4+IA0KPj4+PiBAQCAtMjQ2LDYgKzI3Miw5IEBA
IGludDMyX3QgZmZhX2hhbmRsZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp
DQo+Pj4+ICAgICAgICBpZiAoc3JjX21zZy5tc2dfb2Zmc2V0IDwgc2l6ZW9mKHN0cnVjdCBmZmFf
cGFydF9tc2dfcnh0eF8xXzEpKQ0KPj4+PiAgICAgICAgew0KPj4+PiAgICAgICAgICAgIHJldCA9
IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJTOw0KPj4+PiArICAgICAgICAgICAgZ2RwcmludGso
WEVOTE9HX0RFQlVHLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgImZmYTogbXNnX3NlbmQy
IGludmFsaWQgbXNnX29mZnNldCAldSAodjEuMSlcbiIsDQo+Pj4+ICsgICAgICAgICAgICAgICAg
ICAgICBzcmNfbXNnLm1zZ19vZmZzZXQpOw0KPj4+PiAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4+
PiAgICAgICAgfQ0KPj4+PiAgICAgICAgLyogU2V0IHV1aWQgdG8gTmlsIFVVSUQgZm9yIHYxLjEg
Z3Vlc3RzICovDQo+Pj4+IEBAIC0yNTUsNiArMjg0LDkgQEAgaW50MzJfdCBmZmFfaGFuZGxlX21z
Z19zZW5kMihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+Pj4gICAgZWxzZSBpZiAoIHNy
Y19tc2cubXNnX29mZnNldCA8IHNpemVvZihzdHJ1Y3QgZmZhX3BhcnRfbXNnX3J4dHhfMV8yKSAp
DQo+Pj4+ICAgIHsNCj4+Pj4gICAgICAgIHJldCA9IEZGQV9SRVRfSU5WQUxJRF9QQVJBTUVURVJT
Ow0KPj4+PiArICAgICAgICBnZHByaW50ayhYRU5MT0dfREVCVUcsDQo+Pj4+ICsgICAgICAgICAg
ICAgICAgICJmZmE6IG1zZ19zZW5kMiBpbnZhbGlkIG1zZ19vZmZzZXQgJXUgKHYxLjIpXG4iLA0K
Pj4+PiArICAgICAgICAgICAgICAgICBzcmNfbXNnLm1zZ19vZmZzZXQpOw0KPj4+PiAgICAgICAg
Z290byBvdXQ7DQo+Pj4+ICAgIH0NCj4+Pj4gDQo+Pj4+IEBAIC0yNjMsNiArMjk1LDkgQEAgaW50
MzJfdCBmZmFfaGFuZGxlX21zZ19zZW5kMihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykNCj4+
Pj4gICAgICAgICAgICBzcmNfbXNnLm1zZ19zaXplID4gKHR4X3NpemUgLSBzcmNfbXNnLm1zZ19v
ZmZzZXQpICkNCj4+Pj4gICAgew0KPj4+PiAgICAgICAgcmV0ID0gRkZBX1JFVF9JTlZBTElEX1BB
UkFNRVRFUlM7DQo+Pj4+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywNCj4+Pj4gKyAg
ICAgICAgICAgICAgICAgImZmYTogbXNnX3NlbmQyIGludmFsaWQgbXNnX3NpemUgJXUgb2Zmc2V0
ICV1IHR4ICV6dVxuIiwNCj4+Pj4gKyAgICAgICAgICAgICAgICAgc3JjX21zZy5tc2dfc2l6ZSwg
c3JjX21zZy5tc2dfb2Zmc2V0LCB0eF9zaXplKTsNCj4+Pj4gICAgICAgIGdvdG8gb3V0Ow0KPj4+
PiAgICB9DQo+Pj4+IA0KPj4+PiBAQCAtMjcyLDYgKzMwNyw4IEBAIGludDMyX3QgZmZhX2hhbmRs
ZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpDQo+Pj4+ICAgICAgICBpZiAo
ICFmZmFfZndfc3VwcG9ydHNfZmlkKEZGQV9NU0dfU0VORDIpICkNCj4+Pj4gICAgICAgIHsNCj4+
Pj4gICAgICAgICAgICByZXQgPSBGRkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+Pj4+ICsgICAgICAg
ICAgICBnZHByaW50ayhYRU5MT0dfREVCVUcsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAi
ZmZhOiBtc2dfc2VuZDIgdG8gU1Agbm90IHN1cHBvcnRlZFxuIik7DQo+Pj4+ICAgICAgICAgICAg
Z290byBvdXQ7DQo+Pj4+ICAgICAgICB9DQo+Pj4+ICAgICAgICAvKg0KPj4+PiBAQCAtMjg4LDYg
KzMyNSw4IEBAIGludDMyX3QgZmZhX2hhbmRsZV9tc2dfc2VuZDIoc3RydWN0IGNwdV91c2VyX3Jl
Z3MgKnJlZ3MpDQo+Pj4+IA0KPj4+PiAgICAgICAgcmV0ID0gZmZhX3NpbXBsZV9jYWxsKEZGQV9N
U0dfU0VORDIsDQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdClm
ZmFfZ2V0X3ZtX2lkKHNyY19kKSkgPDwgMTYsIDAsIDAsIDApOw0KPj4+PiArICAgICAgICBpZiAo
IHJldCApDQo+Pj4+ICsgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfREVCVUcsICJmZmE6IG1z
Z19zZW5kMiB0byBTUCBmYWlsZWQ6ICVkXG4iLCByZXQpOw0KPj4+PiAgICB9DQo+Pj4+ICAgIGVs
c2UgaWYgKCBJU19FTkFCTEVEKENPTkZJR19GRkFfVk1fVE9fVk0pICkNCj4+Pj4gICAgew0KPj4+
PiBAQCAtMjk1LDcgKzMzNCwxMSBAQCBpbnQzMl90IGZmYV9oYW5kbGVfbXNnX3NlbmQyKHN0cnVj
dCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0KPj4+PiAgICAgICAgcmV0ID0gZmZhX21zZ19zZW5kMl92
bShkc3RfaWQsIHR4X2J1ZiwgJnNyY19tc2cpOw0KPj4+PiAgICB9DQo+Pj4+ICAgIGVsc2UNCj4+
Pj4gKyAgICB7DQo+Pj4+ICAgICAgICByZXQgPSBGRkFfUkVUX0lOVkFMSURfUEFSQU1FVEVSUzsN
Cj4+Pj4gKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0RFQlVHLA0KPj4+PiArICAgICAgICAgICAg
ICAgICAiZmZhOiBtc2dfc2VuZDIgdG8gVk0gZGlzYWJsZWQgKGRzdCAlI3gpXG4iLCBkc3RfaWQp
Ow0KPj4+PiArICAgIH0NCj4+Pj4gDQo+Pj4+IG91dDoNCj4+Pj4gICAgZmZhX3R4X3JlbGVhc2Uo
c3JjX2N0eCk7DQo+Pj4+IEBAIC0zMTEsNiArMzU0LDcgQEAgdm9pZCBmZmFfaGFuZGxlX3J1bihz
dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgdWludDMyX3QgZmlkKQ0KPj4+PiAgICBpZiAoICFm
ZmFfZndfc3VwcG9ydHNfZmlkKGZpZCkgKQ0KPj4+PiAgICB7DQo+Pj4+ICAgICAgICByZXQgPSBG
RkFfUkVUX05PVF9TVVBQT1JURUQ7DQo+Pj4+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJV
RywgImZmYTogcnVuIGZpZCAlI3ggbm90IHN1cHBvcnRlZFxuIiwgZmlkKTsNCj4+Pj4gICAgICAg
IGdvdG8gb3V0Ow0KPj4+PiAgICB9DQo+Pj4+IA0KPj4+PiBAQCAtMzIyLDYgKzM2Niw3IEBAIHZv
aWQgZmZhX2hhbmRsZV9ydW4oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVpbnQzMl90IGZp
ZCkNCj4+Pj4gICAgaWYgKCAhRkZBX0lEX0lTX1NFQ1VSRShkc3QgPj4gMTYpICkNCj4+Pj4gICAg
ew0KPj4+PiAgICAgICAgcmV0ID0gRkZBX1JFVF9OT1RfU1VQUE9SVEVEOw0KPj4+PiArICAgICAg
ICBnZHByaW50ayhYRU5MT0dfREVCVUcsICJmZmE6IHJ1biB0byBub24tc2VjdXJlIGRzdCAlI3hc
biIsIGRzdCk7DQo+Pj4+ICAgICAgICBnb3RvIG91dDsNCj4+Pj4gICAgfQ0KPj4+PiANCj4+Pj4g
LS0NCj4+Pj4gMi41MC4xIChBcHBsZSBHaXQtMTU1KQ0KDQoNCg==


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 14:32:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 14:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227738.1534166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBGs-0003SZ-PW; Wed, 11 Feb 2026 14:32:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227738.1534166; Wed, 11 Feb 2026 14:32: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 1vqBGs-0003SS-Mh; Wed, 11 Feb 2026 14:32:50 +0000
Received: by outflank-mailman (input) for mailman id 1227738;
 Wed, 11 Feb 2026 14:32: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=cvfN=AP=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vqBGr-0003SM-FG
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 14:32: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 89af5191-0756-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 15:32:48 +0100 (CET)
Received: from DB8PR06CA0045.eurprd06.prod.outlook.com (2603:10a6:10:120::19)
 by GV1PR08MB10840.eurprd08.prod.outlook.com (2603:10a6:150:160::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 14:32:39 +0000
Received: from DB1PEPF00050A00.eurprd03.prod.outlook.com
 (2603:10a6:10:120:cafe::da) by DB8PR06CA0045.outlook.office365.com
 (2603:10a6:10:120::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed,
 11 Feb 2026 14:32:36 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF00050A00.mail.protection.outlook.com (10.167.242.42) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 14:32:38 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS4PR08MB7531.eurprd08.prod.outlook.com (2603:10a6:20b:4fa::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 14:31:35 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 14:31: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: 89af5191-0756-11f1-b162-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=yC269XZvyLirI2rn9kptghdSRClK8XjNA8Q2yKuBPKOJXMAxQ6lbQUg5zZ9fj1pJLiXRbbeaC3AXvYSCcW8OlcqydxC+Wk/HX2OWRA6XyEOCtxNOwuwSrx5U3aGjoHWRmePNCJvLj6qx4H3b3SLxOORwLp2RSJzP1y5i9dmiOCxm4muRBzgg2qKejH0xhnwsmNPQGPEZy9OqiNamg1YK++4dMBM+bfO6iXnfH4WS+YbZgCK68n66mG853bW7M6pYzv0877MUV8hObnnciLq9hVOXh2Yflxc2S8nwVPBz/H7BzYe4j6N+cg73sZAPa6svpN5zN9DkzRvLRGWw0sDcOw==
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=m+Gm0E3xfIwuIDuCNEAkeNWHgxwHcDpYnywo0MUdgyw=;
 b=K73O+IMy4xQ2lyFvQAVbRsje3++2ry+ClPHXjU0ifOHEsb3tl891Ffjlvx0twqTYzgJee8pc833ZfRkw2cAh6cC9pvkhQ4vuIzZ6l8MSIvZyfuDEeBTYjjGOgk80W8lHLFb4nyMQGdiVEZ79mSV7z4FyNBNDcLdQF3BV9WmBG9rFZ0eRT/5fTp2y19nnX83aRGJKPSI7phtHvL7g6+dSGKNORJWlXpJDev5HWgIdE51ew4owuVzxB8FaDfSD+vrlwNT4N728sU5v5rpONa0ifIm79DgWAx4lyG8pGB/sfb+l3v52JLCN2+BZiqkRoHffIqtQlZQPM7Pv0x6zh9yy7Q==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=m+Gm0E3xfIwuIDuCNEAkeNWHgxwHcDpYnywo0MUdgyw=;
 b=n3uSp2CxF/gP9Xd2teqQaH9raie94o/Fb7NjKf/q2H/gK8J3gA/gbJ6/RSq+9rd/LmAIppKAeWtRYgnoNXsLj5NhgynHBXegOmVgg8AOVCgAXjxsphK7SrEW6lTzwS9B0H1kSaqkCwmyxebt5xei+sZSiyEIEr0yC9ToYB6m55g=
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=PFSklOX9jxXz0mI5e1LrhsePg6bsVrJ3YA7Un3NYVNf4bULZ4MuXucliFkiVPO2CwFy0Us58trDGAYdnLZbTvoOoZ8soHaLQ9vcOKGPgwlEjbviVm7sKuM0MW6GiKji1v0/V3BDqOjRDdYxEiZ2Vg2J/LR/vvHw0lHPHjO41yqUDiF2umWBso4LqhQbyqJsGnl0ZSWKlq8LAkYhkLcOTVOev8/j2suVqQYPRZitmv+KOJCmA7Trus1bO5DCt7b8tvFbSHBycwNM4t1m5P3Ifh+I+LdTaRS76uDExmI718TE6NZBlQCcpVaUCaZ/E21d547IAYMFmivGbwRQPhQ38eQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+Gm0E3xfIwuIDuCNEAkeNWHgxwHcDpYnywo0MUdgyw=;
 b=uCxUXZ6Zw1OSyRsyTuLJzTkKk3Q5L63h36Ouf3r9tJ7ob4Iv7j/mMgd4cBShrxEt132h/zw4BKNYXXxaYeuI5xJH9wdm9QrYp3rHLygF/KRVu8shrQQE/W/1IwMoztvmfoEKdtpc8TZkZRy1sFUYzUdA4gUD+SWYkuEKlHnAkOiB6MJL6u6xCNnqT3TUH3J5x0HS3RL/UloKnkQYAWO0UVtG2sIs9z0v0TemII7Nez6sNVl0WixLAnwerHk4O7O+bPDJw59U5B6GFKHIF9DCXdBrZSIId0ppZSbNOFXNnC6vPgDRYdJCpWhoq85W9Bkt3UrrYaBuKhI7ppRDQnRN5A==
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=m+Gm0E3xfIwuIDuCNEAkeNWHgxwHcDpYnywo0MUdgyw=;
 b=n3uSp2CxF/gP9Xd2teqQaH9raie94o/Fb7NjKf/q2H/gK8J3gA/gbJ6/RSq+9rd/LmAIppKAeWtRYgnoNXsLj5NhgynHBXegOmVgg8AOVCgAXjxsphK7SrEW6lTzwS9B0H1kSaqkCwmyxebt5xei+sZSiyEIEr0yC9ToYB6m55g=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
Thread-Topic: [PATCH 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
Thread-Index: AQHclTQCVYzQoM1PdEyfckgwmOVEyLV9M2UAgAA0pYCAACPHAIAAD/qA
Date: Wed, 11 Feb 2026 14:31:35 +0000
Message-ID: <7E530111-37DD-4B4F-95FF-423FB8A3EC1D@arm.com>
References: <cover.1770115301.git.bertrand.marquis@arm.com>
 <5331b33343441028d10c290b21b82acce295fff0.1770115302.git.bertrand.marquis@arm.com>
 <CAHUa44FWRepyAakwXLjObbA=8O_LMBR5jk0-WEAXZdgsQCsHOw@mail.gmail.com>
 <26A3747F-0313-437F-B461-F5C70CE1A4F1@arm.com>
 <CAHUa44E9OUhmyGw-897RzgJmrxXMtg5RXrWKXHQueqY7zJ-dkA@mail.gmail.com>
In-Reply-To:
 <CAHUa44E9OUhmyGw-897RzgJmrxXMtg5RXrWKXHQueqY7zJ-dkA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS4PR08MB7531:EE_|DB1PEPF00050A00:EE_|GV1PR08MB10840:EE_
X-MS-Office365-Filtering-Correlation-Id: 2321c384-a8db-490f-b597-08de697a6828
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?ZzZYL1N0VE05UThTU1BOVllmZEp4d0dNa2pRanZXSFU4ZTFRYmZKWDZManRz?=
 =?utf-8?B?SFNib3Q3UVVzUC9tbk42SWhQeHZraDZXVUI4bHpFMTlncVJqMFAwenhhOUxi?=
 =?utf-8?B?VWt5S01uZXJMWWVmM2dDN2JYMDVtbDYrbUV2aldEa1doS0lSWW9Hc0x1WkZv?=
 =?utf-8?B?YisxTTd2WUFZbHhrUW5vUlBwdkJHeFgwYlY1T2RKRm1aUDNtbzI0WERsWjVo?=
 =?utf-8?B?Wk5JVXFFaEFmMVRxekZHN2p1dUxUcW9CK2hDMWt4ZnRBcW9Sa0R6Z0dwd2Y1?=
 =?utf-8?B?cE1EcFZEd3V5bFFFKzAveDVVWnArSDZhTHZiMFFoTmNOV3NBdFlyWENKREwr?=
 =?utf-8?B?VE0zb2RuZktMQy9LNGd6aUIxZzg4MkNPblVhWG1XUlNTbm1mRzdrdnVaaVpG?=
 =?utf-8?B?Mlp3b21XZHdSVGVaa3NqSm83MnNvNlgwaFlwK3Zzck85Ty94WnFMS1BEMEFK?=
 =?utf-8?B?anJsWDBwdUNtMDlXeWwrdTdXNDZGSllOQlFuRnF4aENFOXdvVTNKNUVrUmF2?=
 =?utf-8?B?d3phOU83a1BuV3VIbGdjdWVuWnQ0RFZhWmIzVFcxT2Y2ZllqckVRSDRBaVpw?=
 =?utf-8?B?cmxNUWVYY3gvQUZ2ZzBqS1NxSW9IWCt6anNqTFc4Z2lLckF3NVI1WjRBWk4v?=
 =?utf-8?B?S0duSDhTTDgwY29WTlFMZlI5SDJJUjVkTG9OQ0dPWC8rNEQ4V3lncEF6c2Z2?=
 =?utf-8?B?UVIyMGkxbFVadjdqMUhZWUFtakcybmkrdzNUY0lTYkJuTjViVHM4NHh5VWZY?=
 =?utf-8?B?UW9zUmh3Vy9wM3MwUFFQUmxLZ2JqREFCVTh1Q3FmbWZ2UWlpSHBNOVhmZ1B3?=
 =?utf-8?B?QnlxY21YdEJ1dFdkYXJ6M0orc0lQVU4yL2FJZllUcFhybnJ1NWhNakpTdmY4?=
 =?utf-8?B?MWNKZitSM3hIVU96em5qYnpOamp1eUNmZkR5Z2V2VEk4MUl0SG5mTlo2d2pi?=
 =?utf-8?B?NldJNXNrN1lQNGZiajE0YXhBbkhTakdhU0xrWjBqVlRkbTB1UCtUTEhFOERu?=
 =?utf-8?B?SnFkQTJ2dDFONjBLc1BlZUxPeUdjS3dtNXpZZEJhbDIxZit2anFkQUxMeXlL?=
 =?utf-8?B?ayt1bWM1K2lQOHBoUDZ4NFByNXphNDMxdmdOdDJ4RmVweXp3WW1pZjBsQ0lQ?=
 =?utf-8?B?ZElVK1BKNnp5SVozMTNXenlNM1BUQUloRlliYko4T1RBWGozMFZCZkhCZlEx?=
 =?utf-8?B?NHVIV0JMVitENzJtcWhqODVzZ2RldS9PbGxWUzI1cXJabmROaHZIQ09WVy9X?=
 =?utf-8?B?N0pQTXlJL3g3Z1JQZ3hxM29VUEY3ZjhjODYvNkRLc3lZRURhNXV6dWd5VlRB?=
 =?utf-8?B?TnVoYmJpcEZ5RU9XNzAvWExNSTJiczkvTkRWRWZuN0pyMFNXeFpOZmhqZkpW?=
 =?utf-8?B?akl5VENXbXBiUDRPQnNyZCtGOXhwalRpVFl0VElNUGU3dDh3YTRSdU0rcGxr?=
 =?utf-8?B?TFN6R3UrSlpCYUNmalJsSEgrb04zVnpKSmNMUmlTS0ViMEZpclNvU1JKZnBn?=
 =?utf-8?B?MHR6c0VFRDVic3lsSEdMMVBiMXgxckM4Wjh3Qld0d2NMRHdwcVBvUUMwaUp4?=
 =?utf-8?B?cHVrckROSDVBa2xHYzR5WDViL0VMQk92SHJaeE82OTRRQzRKeVJkWWQ4MHdl?=
 =?utf-8?B?YUxNOUhSTWZtdmk2OUl3ZTZZNURMYkVDMmxlbGszdndCcENCYzZuaC8wMi85?=
 =?utf-8?B?aWQ1NlNNR2F0am8wVTJ1cDRwNEgyeFpFMlpHcU1NdlpwdmhRbXBxci9EMm5u?=
 =?utf-8?B?NElkNnVlWFZpTGpSbk1wbktSTXlyOWpXNmNJcERleGhHTm9NZHN2MjZjNldC?=
 =?utf-8?B?ejZsN3pHTk16ZTYrUW5VSm52ckQ2WEN0dXFoZU42ck1veVczbFFNVTVob3ht?=
 =?utf-8?B?OC9lU2ZJNjN3U2xNUDk0U3pUMG4rRlRTSFlIa1hvT2dpVS9UNDQ1ZVlZSmlP?=
 =?utf-8?B?MjMwYWl2ZE5LZEF3R2p5VlB1ejdHbWFDOFpuVVVFQ1AyTVoxZ0Z2U2VTemNL?=
 =?utf-8?B?c0Qxb1dEQThPSVBob1ZMYjhLVWdMZW5XU3RiSVA1Z1p0eWt1NVBrU2tRdXBp?=
 =?utf-8?B?a0gvZnorZVB6SjdTRjk4dWgvNTFYWFpidjVuWnMvNEJ3RHdDdDJEMmdrK1lW?=
 =?utf-8?B?QlRhRlRqUU1lZWJ4c1c1Y1lzREV4V2ZLVjdlTldUU3ErSFFiV2Q3a0FpMjZD?=
 =?utf-8?Q?Umv+wDNVNUxkrXQbx86v3o4=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <E902D4E04750F84287CD4004EA79FD32@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7531
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF00050A00.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	93e7a3ec-9f64-48d9-d9be-08de697a427e
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|82310400026|36860700013|14060799003|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZUZBWWY5djc2M0QybWJjbmVzSE1yMEF1T3llZU5TNmVsbFlKTjN3QXAvRFla?=
 =?utf-8?B?clhyczNad3pxQTNDNXkxYmZYMUdydE9uWnE1M1pUYWh2T2J0L2JuWDV5eDV5?=
 =?utf-8?B?RlJHMFdHRURhZXN2aSt1dXA2TXVTbEh6WGpGQWM5UXpwSWttaGo0T1pjN3pG?=
 =?utf-8?B?V3dPNnRJY3EybnpDUzRNcXplNmFiZ0JOc1phRVFLT3ZIT1Y4SzNLTFhhRGo5?=
 =?utf-8?B?dVU0dWRJUmN5bUR2dHBDc2greEsrRVJiak5wc3hGOGdnb0U4UVE1SWNlWlhK?=
 =?utf-8?B?Y3RTTnA0V1pzQU56YURjQ2ZlMXl0a1R1RnJ6LzFqb0kyK3ZDbW1GTlB2czJV?=
 =?utf-8?B?dGZOWjBFVjFlRzRtZjNwSXFybzkyN1M0ZGxub3FSWTBsdXRMMzBndm1VcHYx?=
 =?utf-8?B?cG1XZ3k1V2hZOU9aM2ptSllOV1JDNU01RW5heXNCSFRUVkVVR05GRXV2bklH?=
 =?utf-8?B?Ym9IeERTcllPYnJnWlI1TS9TRm82akduc3RoUmFUWU5ONExnMW9ISHo1TjMy?=
 =?utf-8?B?N1dSOW84QXduM3dyNUwyZXdOeXE3UDR4a3AySHhlZFZpeWoyWEgrR2xLSWRu?=
 =?utf-8?B?U3hwYSt5OHNLVDIrTFdXOEVnTUJIVXZQelVWOUJ5cy9iYmc3YXd5bmt5WFZS?=
 =?utf-8?B?bmFITlhZMTdZdGxQMjVFUDUrNzF0N3p3KzJQSWpEZCtqUWJjV1BodFdnTzMv?=
 =?utf-8?B?bW96SkJKZjdoQ3gweUZ0UEFGcVdpYzdUdjd0YTVpaGV0WHlEL2o1Q2ljMjZU?=
 =?utf-8?B?dG1WazBCTzN5R2R0bjZhZFpEWVd3Ukg5Z2MraWt0amlZN1lXamNFc2lGcDNo?=
 =?utf-8?B?YWY5WVFXUmxIbzBtV3c0SU43S0RaTGMwV0pCeGQ3K1Q0UHEvdWZxTHhtOUNr?=
 =?utf-8?B?eUU5LytRcThCWlJBYURGdGU3OEdMa1hNSjZtU01JUGdwLzcrNUdiK3VqTGV4?=
 =?utf-8?B?OU02YnV2TnMyaDhCc21BdEdjUEtBVnF3cXk3bjFWSU15UEtzdE1ZdGdZdFRl?=
 =?utf-8?B?L0hReklTT3NSMnNPd0s4VUhVZlY5dFB6TXZKV2N1b0xIY1Q2YkVpR2dJN1B0?=
 =?utf-8?B?bGdCSjhmS21IYTZFcFdPbkVIM1VWeTZIWWdrRHFELzVqME5rWlZqMkJVcHcv?=
 =?utf-8?B?UW1sNkl1cWRVdkNSYVM3bnc3aG9PSkZZVml3UlNuOFIwQ2tPOU5BUmllOWFo?=
 =?utf-8?B?MTVMQ0ZNbC82YnZIZEFTSGgvQkpNbjBqaGlsSUhrMmxma0ZpNVNWSzYwRnIz?=
 =?utf-8?B?Z29TSjRGdWNkb3VmQXVrYk9zNWFpR2RlQUR2N0hPU1dFb1Jta1BQN3pkOFZz?=
 =?utf-8?B?M1owL0Z6QTdOZklkbWxJU0dEN091TDFSUFZUQ3g3dGFjSXZPam80ZHBIcTZP?=
 =?utf-8?B?MzNiZFZjVHJhZ3h3V21QTlcxVk1FWHU1UUVvN1JrUFlaMkFtRENKb3grZVU5?=
 =?utf-8?B?OFRVZ2FNL1RuMnBHZll3RHk4eDMrRTdoSi85MnN6Y2JtSkVmTkM4NEQxVTVq?=
 =?utf-8?B?RHJhaGpsVGlzbmNrNVkyUFduaGZ0QzRRd0FJSmw4eUdLR004K0twNnVYSzRl?=
 =?utf-8?B?L3k4ZlY4WmR6aFVpTGszSXM1V01NWS9vNTZJMWs4NGEwNHZOaytOMFBYMkt6?=
 =?utf-8?B?L2NGVjZYR1FlQlhBRGIxT3plaEtmTjltSTM3SjRoV2IxWVIyMUliZWZJRGZM?=
 =?utf-8?B?VDNIWXFESjNWQjdKb1BKVDNTT0hEN2l1eGhtdjMwbGNZaTA4ejJUKzN5czA5?=
 =?utf-8?B?RUpMTFJDa1FFN01jeGZ0Ry9wOFgyM0QyYndnaWw0SEVKcnZFUUVLLytncVNP?=
 =?utf-8?B?eDk5aDhFQmY1d2puNnF6WXVKTUZxTUVyaUVpdWZqWHVEeEVFdU1TOFZHUlkz?=
 =?utf-8?B?SWhsUmw5M3hoN3lxejhPR1gyeUFIbGs0aXpDcC9XVUg2ZlF3Rng3Y0U2L3RF?=
 =?utf-8?B?aEdsemtSRTBvNzdKV0xGTFZyMC9ZMFZQLzAwbVM2b2ZCY1JVUU5tQ2xacWJI?=
 =?utf-8?B?VUprdDh3bERtMFloT1BXS0JySjRDMjAwczFkbDlOUS9nTkUxLzM5ZFR5Z1Iy?=
 =?utf-8?B?dVE0djJvZzlqUjlOaWlmOWVJNDI5VTF5MUZ4alhlTDRRNkpxcmgyTjczeEx1?=
 =?utf-8?B?ZzZwN0NEQmxudW5Ta3BDdU5DWHhKV1dKcEhqN2tWYnR0dEFtQ3VvamJ5R29M?=
 =?utf-8?B?eEFGTlNBTG9OcTZRN0s0TGI1elBuNEN0OVg4blRaQzI2c1FHVC9DTzd3NUVr?=
 =?utf-8?B?NHVWQ1RvQUt1KzhQVE1UY09PMmJnPT0=?=
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)(14060799003)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	gBFG1/mDinCDXmIu6gVN3hsuxJ/DQIT0hsYndjpVnbD5jhPN8zEiuzWYCkI6vvoBNhjzI333vQr4UIvBZS1zONxZ7q5wSnE00X7uMlJkXSom3LUVm3ZUzaPgmn3AOcbQ9pcH0TEwA4LDgFt/qP+1Sl2WChtak6O5LJcvmx/ztYaPMIUWibPAJRa8v9GD6asHpvO/HZ/icMBicaAwhkfqp0uB9r/9cAh5wVqqpde2PAw1g1+kC69MxwN/ag3Zmhp1fqByAAcl+1H8TbUOyn0mn6Rqbrt+87fQmwdh+QQktqLKsEpSvV3WYjsmQECAqaEDi1XrnwE9ivU1xE57xSz9pUSHSty9Jjb9hKM7hm/yDId2fEev6Wtj8/O1EGwDt7HdsvTWR62oEcIL+3+sn4WrT+ZZID8KfuQf+hvBWHM3rdu+q/sGFzY/6ZTcPFTA8JbR
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 14:32:38.6351
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2321c384-a8db-490f-b597-08de697a6828
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:
	DB1PEPF00050A00.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB10840

SGkgSmVucywNCg0KPiBPbiAxMSBGZWIgMjAyNiwgYXQgMTQ6MzQsIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gV2VkLCBGZWIgMTEsIDIwMjYgYXQgMTI6MjfigK9QTSBCZXJ0cmFuZCBNYXJxdWlzDQo+
IDxCZXJ0cmFuZC5NYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4gDQo+PiBIaSBKZW5zLA0KPj4g
DQo+Pj4gT24gMTEgRmViIDIwMjYsIGF0IDA5OjE3LCBKZW5zIFdpa2xhbmRlciA8amVucy53aWts
YW5kZXJAbGluYXJvLm9yZz4gd3JvdGU6DQo+Pj4gDQo+Pj4gSGkgQmVydHJhbmQsDQo+Pj4gDQo+
Pj4gT24gVHVlLCBGZWIgMywgMjAyNiBhdCA2OjM44oCvUE0gQmVydHJhbmQgTWFycXVpcw0KPj4+
IDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+IHdyb3RlOg0KPj4+PiANCj4+Pj4gRkZBX0ZFQVRV
UkVTIGN1cnJlbnRseSBhY2NlcHRzIG5vbi16ZXJvIGlucHV0IHByb3BlcnRpZXMgKHcyLXc3KSBm
cm9tDQo+Pj4+IGd1ZXN0cyBhbmQgYWR2ZXJ0aXNlcyBzZXZlcmFsIEFCSXMgdW5jb25kaXRpb25h
bGx5LCBldmVuIHdoZW4gZmlybXdhcmUNCj4+Pj4gc3VwcG9ydCBpcyBtaXNzaW5nIG9yIHdoZW4g
dGhlIEFCSSBpcyBwaHlzaWNhbC1pbnN0YW5jZS1vbmx5LiBUaGlzIGNhbg0KPj4+PiBtaXNsZWFk
IGd1ZXN0cyBhYm91dCB3aGF0IFhlbiBjYW4gYWN0dWFsbHkgcHJvdmlkZSBhbmQgdmlvbGF0ZXMg
RkYtQQ0KPj4+PiBjYWxsaW5nIGNvbnZlbnRpb25zLiBTb21lIFNQTUNzIChIYWZuaXVtIHYyLjE0
IG9yIGVhcmxpZXIpIGFsc28gZmFpbCB0bw0KPj4+PiByZXBvcnQgRkZBX1JYX0FDUVVJUkUgZGVz
cGl0ZSBzdXBwb3J0aW5nIGl0Lg0KPj4+PiANCj4+Pj4gVXBkYXRlIEZGQV9GRUFUVVJFUyB2YWxp
ZGF0aW9uIHRvIG1hdGNoIHNwZWMgYW5kIGZpcm13YXJlIHN1cHBvcnQ6DQo+Pj4+IC0gcmVqZWN0
IG5vbi16ZXJvIHcyLXc3IGlucHV0IHByb3BlcnRpZXMgd2l0aCBJTlZBTElEX1BBUkFNRVRFUlMN
Cj4+Pj4gLSByZWplY3QgNjQtYml0IGNhbGxpbmcgY29udmVudGlvbnMgZnJvbSAzMi1iaXQgZ3Vl
c3RzIHdpdGggTk9UX1NVUFBPUlRFRA0KPj4+PiAtIHJldHVybiBOT1RfU1VQUE9SVEVEIGZvciBw
aHlzaWNhbC1pbnN0YW5jZS1vbmx5IEFCSXMNCj4+Pj4gKEZGQV9OT1RJRklDQVRJT05fQklUTUFQ
X3tDUkVBVEUsREVTVFJPWX0sIEZGQV9SWF9BQ1FVSVJFKQ0KPj4+PiAtIGFkdmVydGlzZSBGRkFf
SU5URVJSVVBUIGFzIHN1cHBvcnRlZA0KPj4+PiAtIGdhdGUgbWVzc2FnZSBBQklzIG9uIGZpcm13
YXJlIHN1cHBvcnQ6DQo+Pj4+IC0gRkZBX01TR19TRU5EX0RJUkVDVF9SRVFfezMyLDY0fQ0KPj4+
PiAtIEZGQV9NU0dfU0VORF9ESVJFQ1RfUkVRMiAoYWxzbyByZXF1aXJlcyBGRi1BIDEuMiBuZWdv
dGlhdGlvbikNCj4+Pj4gLSBGRkFfTVNHX1NFTkQyIChvciBWTS10by1WTSBlbmFibGVkKQ0KPj4+
PiAtIHJlcG9ydCBNRU1fU0hBUkVfezMyLDY0fSBvbmx5IHdoZW4gRkZBX01FTV9TSEFSRV82NCBp
cyBzdXBwb3J0ZWQNCj4+Pj4gLSBzdG9wIGFkdmVydGlzaW5nIEZGQV9NU0dfWUlFTEQgKG5vdCBp
bXBsZW1lbnRlZCkNCj4+Pj4gDQo+Pj4+IFVwZGF0ZSBmaXJtd2FyZSBwcm9iaW5nOiBkcm9wIEZG
QV9NRU1fU0hBUkVfMzIgY2hlY2tzIChkZXByZWNhdGVkKSBhbmQNCj4+Pj4gYWRkIEZGQV9SWF9B
Q1FVSVJFIHRvIHRoZSBwcm9iZWQgc2V0LiBJZiBGRkFfTVNHX1NFTkQyIGlzIHJlcG9ydGVkIGJ1
dA0KPj4+PiBGRkFfUlhfQUNRVUlSRSBpcyBub3QsIGFzc3VtZSBSWF9BQ1FVSVJFIHN1cHBvcnQg
YW5kIHdhcm4gdG8gd29yaw0KPj4+PiBhcm91bmQgdGhlIEhhZm5pdW0gYnVnLg0KPj4+PiANCj4+
Pj4gRnVuY3Rpb25hbCBpbXBhY3Q6IGd1ZXN0cyBub3cgc2VlIEFCSSBzdXBwb3J0IHRoYXQgcmVm
bGVjdHMgZmlybXdhcmUNCj4+Pj4gY2FwYWJpbGl0aWVzIGFuZCBYZW4gaW1wbGVtZW50YXRpb24g
c3RhdHVzLiBXaGVuIFNFTkQyIGlzIHByZXNlbnQgYnV0DQo+Pj4+IFJYX0FDUVVJUkUgaXMgbm90
IHJlcG9ydGVkLCBYZW4gYXNzdW1lcyBSWF9BQ1FVSVJFIHN1cHBvcnQuDQo+Pj4+IA0KPj4+PiBT
aWduZWQtb2ZmLWJ5OiBCZXJ0cmFuZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+
DQo+Pj4+IC0tLQ0KPj4+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jIHwgNjIgKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQo+Pj4+IDEgZmlsZSBjaGFuZ2VkLCA1NSBp
bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPj4+PiANCj4+Pj4gZGlmZiAtLWdpdCBhL3hl
bi9hcmNoL2FybS90ZWUvZmZhLmMgYi94ZW4vYXJjaC9hcm0vdGVlL2ZmYS5jDQo+Pj4+IGluZGV4
IDZkZTJiOWY4YWM4ZS4uZTllMDIwYmIwY2IzIDEwMDY0NA0KPj4+PiAtLS0gYS94ZW4vYXJjaC9h
cm0vdGVlL2ZmYS5jDQo+Pj4+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvZmZhLmMNCj4+Pj4gQEAg
LTkxLDEwICs5MSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZmYV9md19hYmkgZmZhX2Z3X2Fi
aV9uZWVkZWRbXSA9IHsNCj4+Pj4gICAgRldfQUJJKEZGQV9QQVJUSVRJT05fSU5GT19HRVQpLA0K
Pj4+PiAgICBGV19BQkkoRkZBX05PVElGSUNBVElPTl9JTkZPX0dFVF82NCksDQo+Pj4+ICAgIEZX
X0FCSShGRkFfTk9USUZJQ0FUSU9OX0dFVCksDQo+Pj4+ICsgICAgRldfQUJJKEZGQV9SWF9BQ1FV
SVJFKSwNCj4+Pj4gICAgRldfQUJJKEZGQV9SWF9SRUxFQVNFKSwNCj4+Pj4gICAgRldfQUJJKEZG
QV9SWFRYX01BUF82NCksDQo+Pj4+ICAgIEZXX0FCSShGRkFfUlhUWF9VTk1BUCksDQo+Pj4+IC0g
ICAgRldfQUJJKEZGQV9NRU1fU0hBUkVfMzIpLA0KPj4+PiAgICBGV19BQkkoRkZBX01FTV9TSEFS
RV82NCksDQo+Pj4+ICAgIEZXX0FCSShGRkFfTUVNX1JFQ0xBSU0pLA0KPj4+PiAgICBGV19BQkko
RkZBX01TR19TRU5EX0RJUkVDVF9SRVFfMzIpLA0KPj4+PiBAQCAtMjQwLDE5ICsyNDAsMzkgQEAg
c3RhdGljIHZvaWQgaGFuZGxlX2ZlYXR1cmVzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQ0K
Pj4+PiAgICBzdHJ1Y3QgZmZhX2N0eCAqY3R4ID0gZC0+YXJjaC50ZWU7DQo+Pj4+ICAgIHVuc2ln
bmVkIGludCBuOw0KPj4+PiANCj4+Pj4gKyAgICAvKg0KPj4+PiArICAgICAqIFhlbiBkb2VzIG5v
dCBhY2NlcHQgYW55IG5vbi16ZXJvIEZGQV9GRUFUVVJFUyBpbnB1dCBwcm9wZXJ0aWVzIGZyb20N
Cj4+Pj4gKyAgICAgKiBWTXMuIFRoZSBzcGVjIG9ubHkgZGVmaW5lcyB3MiBpbnB1dCBwcm9wZXJ0
aWVzIGZvciBGRkFfTUVNX1JFVFJJRVZFX1JFUQ0KPj4+PiArICAgICAqIChOUy1iaXQgbmVnb3Rp
YXRpb24gZm9yIFNQL1NQTUMpIGFuZCBGRkFfUlhUWF9NQVAgKGJ1ZmZlciBzaXplIGFuZA0KPj4+
PiArICAgICAqIGFsaWdubWVudCksIHNvIHcyIG11c3QgYmUgTUJaIGZvciBvdXIgY2FsbGVycy4N
Cj4+Pj4gKyAgICAgKi8NCj4+PiANCj4+PiBUaGUgc3BlYyAodmVyc2lvbiAxLjIpIGxpc3RzIHRo
ZW0gYXMgU0JaLCBleGNlcHQgZm9yIHcyLCB3aGljaCBpcyBNQlosDQo+Pj4gZm9yIEZlYXR1cmUg
SURzLg0KPj4gDQo+PiBWZXJ5IHRydWUsIHRoaXMgc2hvdWxkIG9ubHkgY2hlY2sgdzIgd2hpY2gg
aXMgYW55d2F5IGRlZmluZWQgYXMgTUJaIHdoZW4NCj4+IG5vdCB1c2VkLg0KPj4gdzMtdzcgd2Vy
ZSBNQlogaW4gcHJldmlvdXMgdmVyc2lvbnMgb2YgRkYtQSBidXQgYXJlIGluIGZhY3QgU0JaIGlu
IDEuMiBzbw0KPj4gd2Ugc2hvdWxkIGlnbm9yZSB0aGVtDQo+PiANCj4+PiBIb3dldmVyLCBpZiB3
ZSdyZSB0byByZXR1cm4gYW4gZXJyb3IsIGludmFsaWQgcGFyYW1ldGVycyBpcyBhIGJldHRlciBj
aG9pY2UuDQo+PiANCj4+IEluIGZhY3QgdGhlIHNwZWMgaXMgYWN0dWFsbHkgc2F5aW5nIHRoZSBm
b2xsb3dpbmc6DQo+PiBJZiB0aGUgRkYtQSBpbnRlcmZhY2Ugb3IgZmVhdHVyZSB0aGF0IHdhcyBx
dWVyaWVkIGlzIG5vdCBpbXBsZW1lbnRlZCBvciBpbnZhbGlkLA0KPj4gdGhlIGNhbGxlZSBjb21w
bGV0ZXMgdGhpcyBjYWxsIHdpdGggYW4gaW52b2NhdGlvbiBvZiB0aGUgRkZBX0VSUk9SIGludGVy
ZmFjZQ0KPj4gd2l0aCB0aGUgTk9UX1NVUFBPUlRFRCBlcnJvciBjb2RlLg0KPj4gDQo+PiBTbyB0
aGVyZSBpcyBubyBjYXNlIGZvciBJTlZBTElEX1BBUkFNRVRFUi4NCj4gDQo+IFlvdSdyZSByaWdo
dC4NCj4gDQo+PiANCj4+IFNvIGluIGZhY3QgaSBzaG91bGQ6DQo+PiAtIHJldHVybiBOT1RfU1VQ
UE9SVEVEIGlmIHcyIGlzIG5vdCAwDQo+PiAtIGlnbm9yZSB3My13Nw0KPj4gDQo+PiBDYW4geW91
IGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSB0aGUgc2FtZSByZWFkaW5nIG9mIHRoZSBzcGVjIHRoYW4g
bWUgPw0KPiANCj4gVGhlIDEuMiBzcGVjIG9ubHkgc2F5cyB0aGlzIHcyIGlzIE1CWiBmb3IgRmVh
dHVyZSBJRHMsIGFuZCB0aGF0IHcyIGlzDQo+IFNCWiBmb3IgRkZBX1JYVFhfTUFQLiBUaGUgMS4z
IHNwZWMgc2F5cyB0aGUgc2FtZSwgZXhjZXB0IHRoYXQgaW4gVGFibGUNCj4gMTMuMTQ6IEZlYXR1
cmUgSURzIGFuZCBwcm9wZXJ0aWVzIHRhYmxlLCBpdCBsaXN0cyB3MiBhcyBTQlouDQo+IA0KPiBO
b3RlIHRoYXQgRkZBX01FTV9SRVRSSUVWRV9SRVEgaGFzIGJpdHMgZGVmaW5lZCBpbiB3MiwgYW5k
IHRoZSB1bmtub3duDQo+IGJpdHMgYXJlIFNCWi4NCj4gDQo+IEJhc2VkIG9uIHRoYXQsIEknbSBp
bmNsaW5lZCB0byBrZWVwIGl0IHNpbXBsZSBhbmQgaWdub3JlIHcyLXc3Lg0KDQpUaGF0IHdvdWxk
IG1ha2Ugc2Vuc2UsIEkgYWdyZWUuDQpJIHdpbGwgY2hlY2sgd2h5IEZGLUEgQUNTIHdhcyBmYWls
aW5nIHdoZW4gaSBkaWQgbm90IGhhdmUgdGhpcyBhbmQgaWYgaXQgc3RpbGwgdGhlIGNhc2UNCmFu
ZCBjb21lIGJhY2sgdG8geW91IGlmIGlnbm9yaW5nIGlzIG5vdCBhY2NlcHRhYmxlICh3aXRoIGEg
cmVhc29uKS4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 14:51:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 14:51:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227748.1534176 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBYr-0000HR-8P; Wed, 11 Feb 2026 14:51:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227748.1534176; Wed, 11 Feb 2026 14: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 1vqBYr-0000HK-5F; Wed, 11 Feb 2026 14:51:25 +0000
Received: by outflank-mailman (input) for mailman id 1227748;
 Wed, 11 Feb 2026 14: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqBYp-0000HE-LU
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 14:51:23 +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 2165c84f-0759-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 15:51:22 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-436e87589e8so3145649f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 06:51:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d310c6sm5653952f8f.2.2026.02.11.06.51.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 06:51:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2165c84f-0759-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770821481; x=1771426281; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Rs1jFyCrmM241sPXkD/9ur1pKEAxpEw+pZsqx62VxIk=;
        b=aTSKDAWzLLWtcs0H0/cVelCDhVpW9x2f+mTMXHaPUdh7trYFKBeyY8jVaiL+1odkK3
         zg21IZwrfoA/DJm28QxwNISeEDCeN64WNAUbw+a96RGH5hVkPWozs17XYBlZQWq8ye0l
         Z2vxQZWqi6vXKe2OMh1JLn0w84sHSE8ZCvUMCcIugyRHeuFoxkfvEqVJDGnymbt/UwdB
         JamDFWu2V0mjM4vRiNhSKX8PySJzIEH73DBeeDjzXzi+LApqughK72UoH0pHG5eb7diO
         /zMc0HGdFlUs2D2FtHQUYNxGpKbNgnVOlAH429BWEcpKrcG0MLLrpOAwgPTPyVMbhPHH
         G0zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770821481; x=1771426281;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Rs1jFyCrmM241sPXkD/9ur1pKEAxpEw+pZsqx62VxIk=;
        b=SCFHwvorzeiIDa86Hyj3aXZBCmHEd3m1Tw686fic1bA60431NW29ZL4hlavOHT5cFP
         wcWol9XJBIYIAGnDVsq8p/30k9+s+LQJBvk8yOkbby9loUVdcG3vKyIkLr0x1x5c1GyH
         aLFKW/HlRj+KYW91EgASJhAgUM31/sB1u9JygIDcRGG3QpMJCMvhgY3UkXVypa7HCUDo
         s6tbg6YGbJO8DMokWxyL2d/wTe1QcO5CnuyNbX3QN85L+FSi5d2GROPQ9rfC1rI/BgeO
         y8REhjdd0AiX9mw6IYkSxvmpiA3+VI84ggQgmGm6CGO0fUM9NZvqcv80Giyqo6IMijSr
         VwfQ==
X-Forwarded-Encrypted: i=1; AJvYcCWTPvTAbVf0iM+7UtuESAq7xnJGU+Xy0/ms2ELfHZ0+TQ2Kacaqb5Js0K2re5FZhYTiFa7N34bRWuA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywph2ZKLA6QhK45UBY4CQxaHjD1AAExekiu9r/Hw4pN/FJlOyBR
	PCj+/rFjT4iNKSRgmTQhPMf/G23daW1X53ILOWCV4TPPbAT7NeCJIARbcMDGonCu6A==
X-Gm-Gg: AZuq6aIEBb/rCAYOwL8IIfSvAHRltfnP65cdTSkJlGSqGHGCW510lz+baKDXMaLDbf4
	eRHNmFcpNQlTnxKlG9ASKvQ0Nt3+4cs1EX0+1QPrutAvi8bG7G9xKg5zbGJ18IoG9ad+P5kzlXX
	YWC13NjhKK9l9u84ZUd2b0It5OpeNWXY6BlJ+5S+hvHea9nAnhCyfsAZRvQZ/fK8MSNTryhq4m3
	B7N3TvqEGABZmPioeHnC0rnDRsFUyqeIKE8i0xBaT1ecsBtfxTe+s+qm7nXqu4GSRSRBB4R6yHo
	isLIU8Fkgp1kEQsYR75m9BxaJvltnUDYHRWhJEFytQCti4g5pVdADMJ47GHHe4BfU9KP84o0Pj/
	80slbDr2iKa3B09ZpjLaHGsSTbvluwllgkMoA7xtOTTGUVjk0XV0/0Fs+ejJSYtjrj5qaO/p0T0
	HFbt9h5+9GSjNdZwmiKYnONgIcjXkecV9LogXO0m+S0anD7xPG6MGZJqCu300f7Rmsgmp/VUady
	LyroFHDn8LEoJs=
X-Received: by 2002:a05:6000:144c:b0:435:a0ca:bdce with SMTP id ffacd0b85a97d-4377a5bcd4cmr8685022f8f.63.1770821481320;
        Wed, 11 Feb 2026 06:51:21 -0800 (PST)
Message-ID: <75d70edc-b0f7-4d61-8da6-e783c57b4490@suse.com>
Date: Wed, 11 Feb 2026 15:51:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/16] xen/riscv: introduce basic vtimer infrastructure
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <792ea928d748e9ff7bd331b8e8b0262695a062e9.1770650552.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: <792ea928d748e9ff7bd331b8e8b0262695a062e9.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> @@ -105,11 +106,14 @@ int arch_vcpu_create(struct vcpu *v)
>      if ( is_idle_vcpu(v) )
>          return rc;
>  
> +    if ( (rc = vcpu_vtimer_init(v)) )
> +        goto fail;
> +
>      /*
> -     * As the vtimer and interrupt controller (IC) are not yet implemented,
> +     * As interrupt controller (IC) is not yet implemented,
>       * return an error.
>       *
> -     * TODO: Drop this once the vtimer and IC are implemented.
> +     * TODO: Drop this once IC is implemented.
>       */
>      rc = -EOPNOTSUPP;
>      goto fail;

Shouldn't you then also call vcpu_vtimer_destroy() from arch_vcpu_destroy()?

> --- /dev/null
> +++ b/xen/arch/riscv/vtimer.c
> @@ -0,0 +1,71 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/sched.h>
> +#include <xen/timer.h>
> +
> +#include <asm/vtimer.h>
> +
> +static void vtimer_expired(void *data)
> +{
> +    struct vtimer *t = data;
> +    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
> +
> +    vcpu_set_interrupt(v, IRQ_VS_TIMER);
> +}
> +
> +int vcpu_vtimer_init(struct vcpu *v)
> +{
> +    struct vtimer *t = &v->arch.vtimer;
> +
> +    init_timer(&t->timer, vtimer_expired, t, v->processor);
> +
> +    return 0;
> +}
> +
> +void vcpu_timer_destroy(struct vcpu *v)
> +{
> +    struct vtimer *t = &v->arch.vtimer;
> +
> +    if ( t->timer.status == TIMER_STATUS_invalid )
> +        return;
> +
> +    kill_timer(&v->arch.vtimer.timer);
> +}
> +
> +void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
> +{
> +    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
> +    s_time_t expires = ticks_to_ns(ticks - boot_clock_cycles);
> +
> +    vcpu_unset_interrupt(v, IRQ_VS_TIMER);
> +
> +    /*
> +     * According to the RISC-V sbi spec:
> +     *   If the supervisor wishes to clear the timer interrupt without
> +     *   scheduling the next timer event, it can either request a timer
> +     *   interrupt infinitely far into the future (i.e., (uint64_t)-1),
> +     *   or it can instead mask the timer interrupt by clearing sie.STIE CSR
> +     *   bit.
> +     */
> +    if ( ticks == ((uint64_t)~0) )

Btw, such a cast doesn't further need parenthesizing.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 14:53:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 14:53:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227761.1534187 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBb7-0000qu-Pj; Wed, 11 Feb 2026 14:53:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227761.1534187; Wed, 11 Feb 2026 14:53:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBb7-0000qn-L9; Wed, 11 Feb 2026 14:53:45 +0000
Received: by outflank-mailman (input) for mailman id 1227761;
 Wed, 11 Feb 2026 14:53: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqBb6-0000qh-NT
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 14:53:44 +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 75c885d8-0759-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 15:53:43 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-4359a316d89so1799705f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 06:53:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783dfc54csm5114630f8f.25.2026.02.11.06.53.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 06:53:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 75c885d8-0759-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770821623; x=1771426423; 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=PVLB1q7EISviKkx7eVoIwrYqQArt16a7JSdeDujZ43I=;
        b=cXdfrWH7LXF1ROgNAaWFvpe7HN0nfxhL2wlZCy6xg0dLpMCi0WY3jfR9cuLirgh7KA
         BDkZ5DZodBo9r1+ejA+z9t6bafpASUb2r5HXxA2b6LTFl/uaESYsIx+Qz1LZIglT4ojf
         IWtDU/fOtsnffk4jxjScLPQKbiIBzCYVsBVY6iL+YBOw+cZLIF5Y4ZnZz9AnQRAMCb9l
         QwJKfP45u88WXzghfDejxQJpmGFxwKy8D1gVzQDGkCAVI7brIdYWhqmPzY2SLTVPQ7Gb
         0/Q3PKNB3MQuhTLO3MdkUu1+WXJ6Ry4RkT0IBVfQ6k5/2eF2EePwb0DSMMHXMuQQ3wJb
         ZK+A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770821623; x=1771426423;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PVLB1q7EISviKkx7eVoIwrYqQArt16a7JSdeDujZ43I=;
        b=jmM32TiXt6Sn+k6CxAqOdGWCtd+gHu4ljOx+HgmUF0arEvLTjU6cxWYooc8CriNuyO
         aTSzSJ8/O2wWThSKniq4uci3Jotue+jBIamk6aYp/N/BphEwiMxU8JZ9tdrtgxYSMPKv
         KmcR5bLaqzhQ2RaSg7wngnL559ZxrgCHC2MhIB3Ze0CI5bLOOy0Z/CfOUg3J1rFJ6mOj
         8mYXP07RNt8zblTHxZHQ93DWXkJ8UvYBQgWY4UtwD25ycE54c4cMTDn8pBHPUfdO7w+X
         2asJjHIk5Sj2UE1Q0C+Qw5zY7dRIj2trP0z+btwYlaS1DlU4z7eQy4eAtzHN8iJwekCy
         iGVQ==
X-Forwarded-Encrypted: i=1; AJvYcCXfdzc4DzaNZWTsGKofU7HGEMpuOqZ0c0Hb6l+UQeOj2gX7+bNMmu+pVoKnX04IT5MNHxN6usseWnw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzmoxsSFY4HG9hXWsu66VepNO/o0eqZMmQPsy3IxgpoyBqaXw2j
	dqTltFaLvuPKFlVu2sXY1Ky+6yB8jgP3z6f9t58OGkBOHxGAaTJQs+OfxY4O2Ua5Yg==
X-Gm-Gg: AZuq6aJM+KUkypfpdYsK69ZLLXr7cEDsWm80UN0EdPFgbWexLMCMy6PFQDWJwF3OpjC
	pHfPj6iz00Z4+5Lnm8h66W5EJrToOndu1K/TrLn7J+MrdnqfVcfawr6afQjJ480QSNZGRUzlrq8
	+tNV9++s3ABqjkrhtM2NWQ2FvuKxAp+bQ1f+pwbFng/fhrKNCPQKrwAg5v2S+a5AaLoqaPa/fvL
	L7NaHiNSxlrqBj/HKcttSCDaRn1xY5sKg6r48EoqyJTKdyuuNWQzsjEyXcICM1xh7jOxdQrLOEr
	AOduWRRHeHTrveqKJM3/u0MvD5x4YFGXOOjZG/o8W+W3Aw7oxiULUOETEXiy/jdeIhpN1dThqfG
	NgBwjA+vQ+rplThvzL89ggLidftxcCsVThmeHm2ML41PMTbhsWZueeDWv1XBJUEyLQs4AjCNMU2
	1EBAvYPEASVnNK7lumwX90wLM9obsKoe/eCZf6LA5C/gRiwR02Ja20APsw/N28+F5LuXsCuVbfK
	au+igfW7WnEXaI=
X-Received: by 2002:a05:6000:24ca:b0:437:6806:994f with SMTP id ffacd0b85a97d-43768069f85mr20510678f8f.12.1770821623054;
        Wed, 11 Feb 2026 06:53:43 -0800 (PST)
Message-ID: <5d108b61-f46e-404d-ad03-18a0405fe44d@suse.com>
Date: Wed, 11 Feb 2026 15:53:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <ced640968434a67c150eff90437f83d3b460a36c.1770650552.git.oleksii.kurochko@gmail.com>
 <d73424e2-84f4-497b-a1f4-f3eea5cdeeb3@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: <d73424e2-84f4-497b-a1f4-f3eea5cdeeb3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.02.2026 15:16, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> @@ -124,3 +125,72 @@ void arch_vcpu_destroy(struct vcpu *v)
>>  {
>>      vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info) - STACK_SIZE);
>>  }
>> +
>> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
>> +{
>> +    /*
>> +     * We only allow VS-mode software, timer, and external
>> +     * interrupts when irq is one of the local interrupts
>> +     * defined by RISC-V privilege specification.
>> +     */
> 
> What is "when irq is one ..." intended to be telling me? There's no ...
> 
>> +    if ( irq != IRQ_VS_SOFT &&
>> +         irq != IRQ_VS_TIMER &&
>> +         irq != IRQ_VS_EXT )
>> +        return -EINVAL;
> 
> ... corresponding code (anymore), afaict.
> 
> Further, who are the prospected callers of this function and its sibling
> below? If they're all internal (i.e. not reachable via hypercalls or
> emulation on behalf of the guest), this may want to be assertions.

Having seen a use in patch 08, I should clarify the "reachable" part here:
It's not the "reachable" alone, but whether the guest has control over the
"irq" value passed. For the example in patch 08 this isn't the case.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 15:03:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 15:03:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227773.1534196 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBkp-0003Vi-Km; Wed, 11 Feb 2026 15:03:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227773.1534196; Wed, 11 Feb 2026 15:03:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBkp-0003Vb-HQ; Wed, 11 Feb 2026 15:03:47 +0000
Received: by outflank-mailman (input) for mailman id 1227773;
 Wed, 11 Feb 2026 15:03: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqBko-0003VP-AO
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 15:03:46 +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 dadf2cf5-075a-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 16:03:42 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-436234ef0f0so4174019f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 07:03:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d310c6sm5737724f8f.2.2026.02.11.07.03.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 07:03:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dadf2cf5-075a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770822222; x=1771427022; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ee64gM6DKzd1fjGKdjCsKO3cini/KSX8Hd367lvqUsg=;
        b=eRcje/UPVfcHOfF2oHI+Q2M6t6ZB97Lim6wzbcg3JeEElmOqdCWjA1axt4gT7LC1vE
         yAF/V6VduUDuA3GMoJ97ZLwNOWiLfiTOCvw7sHYYqeOE50kqeqSc14rEwi271EEZOpKd
         TtSgrPij1K97QeZZSVSlcDCErPKJMph9TuwkWN+iKYMq58qQ3LTUrXAeg9s5nZ8Twh8J
         uhPepLuuomnXt/7sSFSft9VOHn1WklNefD80r+hvJSzxS8QK0UAevyJMs4GOhp+MDuuM
         fz/00lKFHLQT+DdiCayISfQd9ya8YIpJ6FX8l/wTp6PqAMnIanXZS3FnVcSwh8SeAdlx
         0oqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770822222; x=1771427022;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ee64gM6DKzd1fjGKdjCsKO3cini/KSX8Hd367lvqUsg=;
        b=UtdCZnzeNRX+EsDLWmbZCsizPGU4RVrYZSpDbBFL8lsIji16q7/ZHFAnT7ZOe5M+iC
         yR1yZS/cLXfl3iAprZgs7Psmkx80xVpw3XiJfCRBrcGiDYieuJYm8jbNdsT46iwsjw7P
         BpJzeOc3zGxZpbsub3zcfPtn69JHP1BqaHZTxWgOjZG+pPPJpQurl6MxKV+MSTBP+QyL
         PYaE0ZCTol0BTC6nJHBk7Uke8gs2mcBY+6IvXGEEbXsJXmRml7js3dtBcaM6bIlM1IFg
         jYjX8mnUbJhnkXO8TC9VZKd1qsbgA+d5Nd72Dot6XP7zqMRBrK0xP6KnCqf1Hrd1tdK3
         7hJw==
X-Forwarded-Encrypted: i=1; AJvYcCUqnzxuOgrnwjugiRyXbzSZ4NuOI2V0etR9WHTsm7zBVORyjt6SklpOdIUBznyf0JFe0dpgnsBIMt8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuiQE3/qkjPH1+u/Gvrf7/Aaoa6TGfA9WahqOa3svOeJzCrXfW
	3wBGoEI/pjfwzSFgiFKhradeqxZtCmKPttrLHNnIaJ2wOghg4iiOj9eAxTGNpEAUqA==
X-Gm-Gg: AZuq6aIY6FpPR3eLozfuVHoy6svzcnkFVlzyDYBGLDqxHX8XfU60omQkHbTvZ8Ed4rk
	nATdMcBHovfUw4SCGppxKBQlWZ7nuq7kGBA2iVZvt4Xf1Xx0HbZsmeY0bp19yMb3478vJ5tuRSO
	QED8e4w7Ww976mtJraWJtJdWNyrwGx031wLmhbAKN+Xit8KmuJ5v1HaHkUtZ7ZI79xbptYFu1Ku
	btCKIKA4sQx0TRIoCWwHJhSVsUo4nVya8duYsskilo8WQNHcUBG/eUKgtpUUJou12pREs/jWg89
	Nnj/W76Vsb4rVabiR5F+P/0ax65tnPxxskkVtaCUvKSbtUPBXXHQ+pSQ8itEWDodzJ69bay2358
	Ch+xD5FI4mROGe6qq7ADfXgYOUuPpxnXbcC4DJJFabylijkIr4hmu9ysd/Ok1L2vpjvktUskv/P
	bPpoeV9t8ON7rCDk42CeO22fiqx8Sdwbk1RHI3zXbj0vGZPTRxiy+i8qEkqjzH98PLtt0HDP+Sc
	7MXkpMql+ZHrdI=
X-Received: by 2002:a05:6000:2c08:b0:437:67b5:9bab with SMTP id ffacd0b85a97d-437845b39ddmr3759433f8f.56.1770822222071;
        Wed, 11 Feb 2026 07:03:42 -0800 (PST)
Message-ID: <4304e4a5-c820-4673-8ff7-bbfdea54edf6@suse.com>
Date: Wed, 11 Feb 2026 16:03:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/16] xen/riscv: introduce sbi_set_timer()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <3b102fd2267c629e8505631277efc2eeae5a1a6a.1770650552.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: <3b102fd2267c629e8505631277efc2eeae5a1a6a.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> Introduce a function pointer for sbi_set_timer(), since different OpenSBI
> versions may implement the TIME extension with different extension IDs
> and/or function IDs.
> 
> If the TIME extension is not available, fall back to the legacy timer
> mechanism. This is useful when Xen runs as a guest under another Xen,
> because the TIME extension is not currently virtualised and therefore
> will not appear as available.
> Despite of the fact that sbi_set_timer_v01 is introduced and used as
> fall back, SBI v0.1 still isn't fully supported (with the current SBI
> calls usage, sbi_rfence_v01 should be introduced too), so panic()
> in sbi_init() isn't removed.
> 
> The sbi_set_timer() pointer will be used by reprogram_timer() to program
> Xen’s physical timer as without SSTC extension there is no any other
> option except SBI call to do that as only M-timer is available for us.
> 
> Use dprintk() for all the cases to print that a speicifc SBI extension
> is available as it isn't really necessary in case of release builds.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with one further request:

> @@ -134,6 +138,20 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
>  int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
>                                  size_t size, unsigned long vmid);
>  
> +/*
> + * Programs the clock for next event after stime_value time. This function also
> + * clears the pending timer interrupt bit.

"after stime_value time" reads as if this was a relative input, stime_value units
of time need to pass until the event. Iirc values passed are absolute, though.
Furthermore it was my understanding that the interrupt being raised is dependent
upon clock >= value, not clock > value (where the latter is what "after" means
when taken to apply to an absolute value).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 15:09:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 15:09:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227787.1534206 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBpu-0004kv-4a; Wed, 11 Feb 2026 15:09:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227787.1534206; Wed, 11 Feb 2026 15: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 1vqBpu-0004ko-1t; Wed, 11 Feb 2026 15:09:02 +0000
Received: by outflank-mailman (input) for mailman id 1227787;
 Wed, 11 Feb 2026 15:09: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=IPmF=AP=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vqBps-0004kc-KA
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 15:09:00 +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 93f5c1af-075b-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 16:08:54 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1770822527410693.8196586983516;
 Wed, 11 Feb 2026 07:08:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 93f5c1af-075b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770822531; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=k7pcYTGnbN799BoMgNeDWB8q4tr5fiAxeKOCPGfnNg3I3qkchi3vn9wpfu/TeR7eeWgzaZ0oD19gaBkYydAvmK5aNuFhioz3VK2b8GJs08ruuNIINTjErOxUTlTo7bufvL+kKp97fNiZCs/TbnYg2PN6fj0GBn4t7ftA6AtjiII=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1770822531; 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=1ahHpP31MwpRsY5QW3laABbm6TfJ8CRyHZKtBKrmJIc=; 
	b=UPAP6NghrVkB6N5V3OIBhnZa39KNEdxZdJXAKb3D+17pNQGXkaoPoadpQpKkJxQJoZDSbCCv84iAhNj1Tnz76AtXApnaR1ulekZggMJ9oOQB+bykWMqW5SOL0cniKA1vbyI0chYH1L/NOA5ni+kA7veU9qSbCqI/jxjfjwMpOZU=
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=1770822530;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=Date:Date:From:From:To:To:CC:Subject:Subject:In-Reply-To:References:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To:Cc;
	bh=1ahHpP31MwpRsY5QW3laABbm6TfJ8CRyHZKtBKrmJIc=;
	b=rUVc9HwNerWb/jtHebEAX/DDJ5CH891uIi49/3HGGE7RuC69AN1FP4+bc1i/qqMu
	NIY/ILRzUTswuLltz6zxCkmgWro0oE3mwZlU4K1xh2MrYU0IZ1sDyYQsoO0pkdtZ93R
	V+65KJtWft1c0xRR/djwpr5qMLs33kBOCqIB6GZM=
Date: Wed, 11 Feb 2026 09:55:05 -0500
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: =?ISO-8859-1?Q?Marek_Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>,
 xen-devel@lists.xenproject.org
CC: Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH] EFI: Fix relocating ESRT for dom0
User-Agent: Thunderbird for Android
In-Reply-To: <20260211001650.1592239-1-marmarek@invisiblethingslab.com>
References: <20260211001650.1592239-1-marmarek@invisiblethingslab.com>
Message-ID: <4BF5BA76-396A-473B-841E-29AA6DBAC9E7@apertussolutions.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-ZohoMailClient: External



On February 10, 2026 7:16:42 PM EST, "Marek Marczykowski-G=C3=B3recki" <ma=
rmarek@invisiblethingslab=2Ecom> wrote:
>Fix calculating the table size - it consists of a header + entries, not
>just entries=2E
>This bug caused the last entry to have garbage in its final fields,
>including LowestSupportedFwVersion and CapsuleFlags, which (usually)
>made fwupd to detect firmware update availability, but refuse actually
>installing it=2E
>
>Fixes: dc7da0874ba4 ("EFI: preserve the System Resource Table for dom0")
>Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab=2Ecom>
>---
> xen/common/efi/boot=2Ec | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
>diff --git a/xen/common/efi/boot=2Ec b/xen/common/efi/boot=2Ec
>index 5b84dbf26e5e=2E=2E45015a0dd583 100644
>--- a/xen/common/efi/boot=2Ec
>+++ b/xen/common/efi/boot=2Ec
>@@ -675,7 +675,8 @@ static size_t __init get_esrt_size(const EFI_MEMORY_D=
ESCRIPTOR *desc)
>     if ( esrt_ptr->FwResourceCount > available_len / sizeof(esrt_ptr->En=
tries[0]) )
>         return 0;
>=20
>-    return esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
>+    return offsetof(EFI_SYSTEM_RESOURCE_TABLE, Entries) +
>+        esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
> }
>=20
> static EFI_GUID __initdata esrt_guid =3D EFI_SYSTEM_RESOURCE_TABLE_GUID;


With Andy's suggestions,=20

Acked-by: Daniel P=2E Smith <dpsmith@apertussolutions=2Ecom>


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 15:12:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 15:12:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227796.1534216 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBsr-0006m1-In; Wed, 11 Feb 2026 15:12:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227796.1534216; Wed, 11 Feb 2026 15:12: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 1vqBsr-0006lu-Fs; Wed, 11 Feb 2026 15:12:05 +0000
Received: by outflank-mailman (input) for mailman id 1227796;
 Wed, 11 Feb 2026 15:12: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqBsp-0006gu-L3
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 15:12:03 +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 04e59c72-075c-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 16:12:02 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4376c0bffc1so2864945f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 07:12:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d50f3asm5587804f8f.13.2026.02.11.07.12.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 07:12:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 04e59c72-075c-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770822722; x=1771427522; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=yVuOkdB7rmc99GfP/XABLj+ccdJ9TARf5nUHNGW0POQ=;
        b=LAQVdubXIJaOtvgc4dhFQ+oOW4YIEnTGsi1xyv/rFD5r1KPQbU5WyAbXEC1Sf0plVZ
         8PLD9j4JAeNCO1NHOpEq0ZfQQDMA4N8MOxuuG0AOadVHa7TbznIr/akm7Cg+yYdVRC6A
         vLA9YzgKudUjvq6/EWiaDBIsX162sL9k5fLlq29SA/sKI6HM/Iaa307SQGAz8/JqTdJ6
         7C8ul7ED51knQSgK69Jdo8b+eHBeUideQLIChzsIUeQ3/cYQ92xYeGoSbo/Y5/h8clHN
         UKUP2pnAUnVG+8Ny2Fge+rNekw9fpHWDYSYHqrscNjA5TXdFOSI7+FYVFu9TsLbtOiEV
         R9Cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770822722; x=1771427522;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yVuOkdB7rmc99GfP/XABLj+ccdJ9TARf5nUHNGW0POQ=;
        b=VqaB7PvZiydO/BEMU1vc813tsem1Qbh8XMFojbAEJFfHPqoGgf3spVUh3HkkPaYTti
         fmkHn4M3l5OwZqsIacXsEHfh9pIsXeEiMQmZZCaqVanMusOFSmngcO+k+q/M3mOK8+8V
         HaBSQC2UUQz7QGetnHHOeFIr31H+4nD9qhCLyFmKCtMhJSLbB0jPEKhZGcINyT95PdQu
         MQWu7M1wXiM31cwPl/ydYIxgJ1BIX20/G2Lld2g6RzELKTLYTsOssLcFtBUGM45MayYY
         brUOKhuDu0Monn4Divs+WmKyuksuMnIakPmNsnLg87kDvg9G1/pSKV+eKog+jE2iMmn5
         rCgg==
X-Forwarded-Encrypted: i=1; AJvYcCXWA7V1M9nZzX4nMprzFsz2vPT5uNAjdRy0nx+p1FlE16BodMMh0OIFz3V1ElwCc3SXXIGjUaDoHhI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxBp3iaeXxmpwTD5O/FI+JGhNeEIBONgEkO8WjGVVvC0j8OS6x1
	Krm8rNgQ45mGCB5u6kywr2wea6kYawfXp4qzAvJdbb1zr1FZtL4h4RvYnqecE04+Pw==
X-Gm-Gg: AZuq6aKGOwKGSHsQCRug4CU/EIVk6k9aEKh12gg0MI5TSEIYBagNMOJKohgcjidAuGZ
	l4oVbdmnfBdTi3hchPcTdizHHIULa9ZZ01r6+bXCdpcDegtAl9o4/t2/B04eGco+LviN6BlWzeB
	UMExSUHDdfvMAvrgfFk78c0FQ3Os+LFLxBfZVyxXetKi6ydlASQvKMTYTkUWMAVvwIJBlxZTTRV
	192Q1tqYWbaRdk03EbL3luDcFJsBms8FNktLP67LTftMkUWgraMJLIguh0WSYDuqfFKvtyuvToe
	c+KuDC9Kh1umlCJtHuFqgUd+768fL8uwnmw5+JZOzQaqMZP8TKvPQa/Yvrs6F06emfTtnC6tsFF
	KcpSf7uxxjgF7N8URs8JX8VcNupipvRG9E3paEZSiJ8ytEyeG68HBfq8D++R4FjjjJnqXXYSN4X
	m8ff8MSsvE6gPVmLeVNuWTecjEsRk3ujSr+5S3zt83ypJ1C8ok/6mQmcfoyxWeUXX4m4c7CiBmo
	AknbrG8iACQTGw=
X-Received: by 2002:a05:6000:1842:b0:437:6de6:872c with SMTP id ffacd0b85a97d-43784521a51mr3649879f8f.3.1770822722083;
        Wed, 11 Feb 2026 07:12:02 -0800 (PST)
Message-ID: <3a584527-1c20-4774-b533-0ab802587f04@suse.com>
Date: Wed, 11 Feb 2026 16:12:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/16] xen/riscv: implement reprogram_timer() via SBI
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <b1e39e0187fc44fd926f774e68a580077a278495.1770650552.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: <b1e39e0187fc44fd926f774e68a580077a278495.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> Implement reprogram_timer() on RISC-V using the standard SBI timer call.
> 
> The privileged architecture only defines machine-mode timer interrupts
> (using mtime/mtimecmp). Therefore, timer services for S/HS/VS mode must
> be provided by M-mode via SBI calls. SSTC (Supervisor-mode Timer Control)
> is optional and is not supported on the boards available to me, so the
> only viable approach today is to program the timer through SBI.
> 
> reprogram_timer() enables/disables the supervisor timer interrupt and
> programs the next timer deadline using sbi_set_timer(). If the SBI call
> fails, the code panics, because sbi_set_timer() is expected to return
> either 0 or -ENOSUPP (this has been stable from early OpenSBI versions to
> the latest ones). The SBI spec does not define a standard negative error
> code for this call, and without SSTC there is no alternative method to
> program the timer, so the SBI timer call must be available.
> 
> reprogram_timer() currently returns int for compatibility with the
> existing prototype. While it might be cleaner to return bool, keeping the
> existing signature avoids premature changes in case sbi_set_timer() ever
> needs to return other values (based on which we could try to avoid
> panic-ing) in the future.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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

> ---
> Changes in v3:
>  - Correct the comments in reprogram_timer().
>  - Move enablement of timer interrupt after sbi_set_timer() to avoid
>    potentially receiving a timer interrupt between these 2 operations.

I'd like to mention that this is of only hypothetical concern, at least for
the sole caller in common code: That's doing the call with IRQs off, so
only the bit in SIP could become set too early, while no IRQ would surface
before timer_softirq_action() turns IRQs on again. (This isn't to say that
it wasn't a good thing to adjust the order.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 15:14:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 15:14:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227811.1534225 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBvV-0007f6-32; Wed, 11 Feb 2026 15:14:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227811.1534225; Wed, 11 Feb 2026 15:14: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 1vqBvV-0007ez-0J; Wed, 11 Feb 2026 15:14:49 +0000
Received: by outflank-mailman (input) for mailman id 1227811;
 Wed, 11 Feb 2026 15: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqBvT-0007et-QM
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 15:14:47 +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 65f3be57-075c-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 16:14:45 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso20469435e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 07:14:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4836131d48fsm8830195e9.24.2026.02.11.07.14.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 07:14:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65f3be57-075c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770822885; x=1771427685; 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=59iajAF1/4TtLdLruxP8QxmgkbDl3JTyuzwJDGSR6Eo=;
        b=HUHWyVFWSScgfedGeewUPRhjId3BaxgZ1X5V9UysyFudyqNqFvgRGjL80HM4BQRrAC
         c27obY+qAwkZM2U2fq7f+flrz7Nt/Yqn/tD6S5ZXUF5Sy4Bl1DNDZ9YLLyZ09WJFRogv
         Iujf5iK7SPbRTWJ8ws7NKCmTvrdPei8aW3Y9Nbh/tKdykvDoH9gz0dUYO1x4HYtN3gMh
         J21Z1fNzcePmjdxd6QeOreqgDwBIKQevwWpBfK3wYopBXdgnYB6g/VhOX2f4J4RaLacm
         oqsaDgwpVO2W1rfiKFEuMvzCnkG+nMKUn3NXGKrjrwtFOjnnRWqyjljho9HguUub+tKL
         nkOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770822885; x=1771427685;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=59iajAF1/4TtLdLruxP8QxmgkbDl3JTyuzwJDGSR6Eo=;
        b=uf/F6RHFPw134Gv7E+oeh1w+BIFTS+nZgMRnnAeJzzvdF1TNhOwsCPi+7g1M8jpV9y
         MM3xTjU1k+v+wXK72cJOx2SmjaT6smX9eUhWJcLMLn8w+fu3u9ps4TPFzQIEJkYN15tr
         vc2SQLKgyg8qgtWs2hvT4QOXYhYV6aATRRD37nauQEbLzQuMHrMQ0qIw9rDULb3kZFWb
         0vPmLw54sC52fUmR2YVLPrEcFbfQEnzp4B0aP/yEo7NTtvnI9wEUQFR2uS+qbQahVZtP
         QMYlHdTC0FkhLNyjlMwT8bME1gXjaLnttYx3vSnfIwFZd+HOBUnl+3s1WSfR/mAmvnpn
         cXqw==
X-Forwarded-Encrypted: i=1; AJvYcCWGB5Ik9JOCsi+jtpwI/WxJ51k4P+giFoiDJ1kHfFiTDAYUX+KxjFe6KQoeLAtjfn1qBlZ3+qrOMAY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyxRnGi3h876E2SNZduTm9eR+ziV/8q3/kQ8S1JVaYj0z5J5d7Y
	XCLeM5+VVFrrSa8nWkl8UYjvajbPuWblwchnqj6BEe0drODcyVdBaK6NXwgf5eUgkg==
X-Gm-Gg: AZuq6aLSe93hWsihKYRVLayGvpzD0AKMp4JHaabzT8U5qR7Kuu9CxnZ0CXEqPi2M7y1
	ikjZ/3VkJQlUjEvV2JJgB2IJC/R2oCMh/Vm7LRtAtMJ33JR1IEbMmHOKST+ApJRGE0Hj6KkV06b
	I89TmuciN5mr0pVhZCA1VT5kKUJvOHQnmsgFndKIuYFggQtamjsdmSB/RjC7h3f7Ab1aDTFm1q5
	qdgM1WKQWEjULS3NoV3U5E+xpAEJ+zYg+gE/wl6HoYtk5HDu5yFsu3uLjgbWcve60ak/4z+/Bya
	GUKBgJmemZkpqx3VlFfxpuNi2YwamGP9CB0ctp/abFx5CnN48SqThBpWlhT4X2W1W+GaNC/rQiL
	iD/8t9+207Eth1pfVPT5+uXvYsrjj2dU0WoNqmA3HFYiX6NQX5ruy71ksS15bl6jXPgrMO6D/KY
	98sDYPqUHAWrWstfCPFmzijRL/ybGPW4g+31xrfv64S4Ip+dLnabD8uP4bjlxZS8oq+luccggGp
	RUmde21lbzOF5A=
X-Received: by 2002:a05:600c:5253:b0:480:1e9e:f9b with SMTP id 5b1f17b1804b1-483201eead3mr318452165e9.16.1770822884914;
        Wed, 11 Feb 2026 07:14:44 -0800 (PST)
Message-ID: <a9228a24-c646-4bec-93c7-676ae433bc07@suse.com>
Date: Wed, 11 Feb 2026 16:14:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 13/16] xen/riscv: implement reprogram_timer() via SBI
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <b1e39e0187fc44fd926f774e68a580077a278495.1770650552.git.oleksii.kurochko@gmail.com>
 <3a584527-1c20-4774-b533-0ab802587f04@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: <3a584527-1c20-4774-b533-0ab802587f04@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.02.2026 16:12, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> Implement reprogram_timer() on RISC-V using the standard SBI timer call.
>>
>> The privileged architecture only defines machine-mode timer interrupts
>> (using mtime/mtimecmp). Therefore, timer services for S/HS/VS mode must
>> be provided by M-mode via SBI calls. SSTC (Supervisor-mode Timer Control)
>> is optional and is not supported on the boards available to me, so the
>> only viable approach today is to program the timer through SBI.
>>
>> reprogram_timer() enables/disables the supervisor timer interrupt and
>> programs the next timer deadline using sbi_set_timer(). If the SBI call
>> fails, the code panics, because sbi_set_timer() is expected to return
>> either 0 or -ENOSUPP (this has been stable from early OpenSBI versions to
>> the latest ones). The SBI spec does not define a standard negative error
>> code for this call, and without SSTC there is no alternative method to
>> program the timer, so the SBI timer call must be available.
>>
>> reprogram_timer() currently returns int for compatibility with the
>> existing prototype. While it might be cleaner to return bool, keeping the
>> existing signature avoids premature changes in case sbi_set_timer() ever
>> needs to return other values (based on which we could try to avoid
>> panic-ing) in the future.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
>> ---
>> Changes in v3:
>>  - Correct the comments in reprogram_timer().
>>  - Move enablement of timer interrupt after sbi_set_timer() to avoid
>>    potentially receiving a timer interrupt between these 2 operations.
> 
> I'd like to mention that this is of only hypothetical concern, at least for
> the sole caller in common code: That's doing the call with IRQs off, so
> only the bit in SIP could become set too early, while no IRQ would surface
> before timer_softirq_action() turns IRQs on again.

Actually, further to this: If IRQs were on, an IRQ could still surface
between the two operations, when the SIE bit was already sent upon entry
into the function (i.e. for example when a timeout is being moved earlier).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 15:17:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 15:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227819.1534236 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBxb-0008Au-Eo; Wed, 11 Feb 2026 15:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227819.1534236; Wed, 11 Feb 2026 15:16:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqBxb-0008An-CF; Wed, 11 Feb 2026 15:16:59 +0000
Received: by outflank-mailman (input) for mailman id 1227819;
 Wed, 11 Feb 2026 15:16: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqBxa-0008Ag-8o
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 15:16:58 +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 b4658ab9-075c-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 16:16:57 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4806bf39419so7241575e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 07:16:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835ba3024asm31427825e9.5.2026.02.11.07.16.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 07:16:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4658ab9-075c-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770823016; x=1771427816; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=buNWejGN2aABvi32BRa/t0i+eOiyQM9z/9XcXTzXrLI=;
        b=RNsKL60sJhYmx3+zc5DDfyXvkT1uqw9msNaNyIhT/ZXcUEfv+cqk//HwwYB/RVtFPA
         D5QB65ywlyseuQFg5rI2hUvRZZ9iX618v+AvAl2hhLeqkbZaSwOOpC1tO4D4eq+LYfGF
         EV1qgK76B4cYIg+Oj+oHPs4110O0PWH76N6k6A0RILNr7U8ZrTvF+esekZ05nW1NdR6J
         t7Q06qYj4eT4sESvUIlfRddJOoIyq02JV7sFzP08Acu9rYOcy2DTT6yV6+wJNwA6wjsw
         LuigrY4eMDZKefCUYhTAIkyp6CxV0T3Jv4u+fjVGeMc8qpaQ1HfVezX45U9+hWiWi59X
         vq+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770823016; x=1771427816;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=buNWejGN2aABvi32BRa/t0i+eOiyQM9z/9XcXTzXrLI=;
        b=xSXgHeEB1SdlVMwIqvTJCzDrC6Ytdeajo4HKT8j67S0k4SiGy3kBuXF5WYlLppxpyR
         2RrBHBv/J8+q9cyZwLTNyC6RAFGkl22nCPm/48Vgbbmne97HaAL8ckVYOXj01dPXUklO
         gX3eRQ6AgsyT/Sr/k1fyci01HR3FEQXlruRZm6ys8nM/Dz8RFgaT02hRhwQEQ12/lCAx
         yIUUmHr4JQ51depaaOVZy4G/glk5zvWCm+INi1FCVl277Qn+Wx8xyjlVikDledNpcMs+
         YrZ6kCsDxyFEcPhOQcN1ud14G65A9HNK25LK0NX47lDH3GPdagqEPAMtwspbE906/xhM
         fZ0Q==
X-Forwarded-Encrypted: i=1; AJvYcCVurU5+A2w/hX0Nmz4gFFI4ecacaiidFwfow9O60mTf49ZB5LX5HRwQgcpEt2AM2/BSvkGdjoldeCA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxwU6ff9mZV97m3menVLhORUBiNim3Kw2PUPutJA6FCou6B6R2R
	RYFGjDO2w4HOenFIM6qB0q02lncGYQ0avzbxy2VV5BRfAJ4DWMGYLOLRMkgkuAcwG0q1UTokbRK
	aDFg=
X-Gm-Gg: AZuq6aKbraI4az4it+F2UaKxxHW7hL/Sgvvhl0vz5gHgU2xWO3dfyHzqDarvf04XFEK
	Tso4f7cxEA/tJhDganTEvfRYI6bKSuQOeRSWHsD6VSBcuABuCVG5kaf1VfGf0GQIYeZOmNOMJ2y
	Uo2avxwMbMiFnVQ6rDGNVsmtZlAhaYcUX1DsV1fXZxzl/r85VvmkY9N08l9i4oxVU6Yq8anOpDA
	DdyKk1H9GHVnRf+kkIFoo25dtT6J5Xnx25OS43YhziJQZAKJVsvMjp/SDlIWP77neXkk2WO7ANV
	uoGNE2exFREGH0OGC4LZPuJIaZo5BmzlB2hm2SNDmg1ksAka29f8Dr5dJV3724oC53JJ+J1UQnx
	TTnlqsWAe3gP/4S5KK4IxynZxZTU4Z4vhrh8wmETXz8pIYSTryfMSLj+LIqtaBsI/bCQBYtQF3i
	LAYK2bnL/zHObLYcAwJnKWZqjuXF/9sXpTVDjQXegdRYiIkF4m32WGdjZtHur5PXScDOp7D0bYY
	YetISMXph/YwuI=
X-Received: by 2002:a7b:cd0e:0:b0:47d:52ef:c572 with SMTP id 5b1f17b1804b1-4834f6c1513mr65836805e9.1.1770823016559;
        Wed, 11 Feb 2026 07:16:56 -0800 (PST)
Message-ID: <64e0c923-dc1c-42c2-9b36-67f0a289e144@suse.com>
Date: Wed, 11 Feb 2026 16:16:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 16/16] xen/riscv: implement sync_vcpu_execstate()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <b6df040691dcec56cd2f91699f0fa444cc0ef7ea.1770650552.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: <b6df040691dcec56cd2f91699f0fa444cc0ef7ea.1770650552.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 09.02.2026 17:52, Oleksii Kurochko wrote:
> The scheduler may call this function to force synchronization of given
> vCPU's state. RISC-V does not support lazy context switching, so nothing
> is done in sync_vcpu_execstate() and sync_local_execstate().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 15:31:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 15:31:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227838.1534246 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqCBr-00050F-LG; Wed, 11 Feb 2026 15:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227838.1534246; Wed, 11 Feb 2026 15: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 1vqCBr-000508-Hg; Wed, 11 Feb 2026 15:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1227838;
 Wed, 11 Feb 2026 15: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=wIvg=AP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqCBq-000502-IR
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 15:31:42 +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 c3390796-075e-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 16:31:41 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-6594382a264so9872096a12.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 07:31:41 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65a3cf38c5dsm847122a12.22.2026.02.11.07.31.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 07:31:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3390796-075e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770823900; x=1771428700; 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=ioJjHzn+HTwu1HXk51oAA5u0CTuRCJ3J0Rgf3exiUYQ=;
        b=RQCFZUIYiftZNEdgBMrJthiemMOxSmskOgCGh7m2Tl3Bab+vhRZ7FJ02byeKhLDXKE
         Mx/1XAVI3XxJ5CaUzdQd25oXlyMJg8eRH1IJAeWj0koM8l2dqMdSANCnhVCPwpSdpcNk
         avy3tY6UPTr2zPMZj3ezXyRTOLkyVhz3VbUD/jBHlIqivPvJvnSRyhxnMCaT2fh2y8qD
         OCnnJtgo7Ik5orW5qDQURm4DAC3D0rNhXCSDRGDOi71edGkPqlHoLb/uMBwD+oAdepAn
         48EcqLZAf+ihy0cFh7kuZ2FloYfUTHeVaJQIYrDKooX1ouZBvc+TAhQQYzG1Ky4DXKks
         PtLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770823900; x=1771428700;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ioJjHzn+HTwu1HXk51oAA5u0CTuRCJ3J0Rgf3exiUYQ=;
        b=qBbmdAVjeqoOEINWxpcF6EIfttwGI655zJDbd7PahMEnt9V8Kli6SP8FQKO1+dh5Rk
         LF0doC85jgKnxE6e02j0qIQFonkMlhtFOgFgjQmYuSv+d7vznCyPxjC4V9rdNEd/4dQD
         yBw3F9aFiQJR9llZweR3PJnou+dgT1EuL9DlCpR5oAMKdPyRi9JqDTGLDmsEMHFLt9k6
         ZgRHknJHNQd/YN6GFpsjwFFPLgRb3w97u8rbukeV0XyNA8zJEcAQsEmH7KtVDcJSab6s
         8RyTQH37JWTvqg+d3OPpczngtl+4ZtH+TSyTlVFXdfhM79uMcnXllIRnLb4q8Jz3oJmK
         pJ5g==
X-Forwarded-Encrypted: i=1; AJvYcCVJB+pfzUN9OiX5chFLW11XA8EbwM5tpNfe8ii/VMHLqsUG6RKdpTFp1vhDo85AYcTUVFugngHaz1E=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx+AqaoXh6szHCabW+w0ECj7EBe+wc/mBKJWPVOo/CXu+zgpAlQ
	ZU4OdO5+ytG1+/J6S8v8JTALCYhfLJ+MXVEHcAVLOlP3bKgfjyVoWWLF
X-Gm-Gg: AZuq6aKoLwZVxctRoCQv32e5rZqMbquF74170i+dA8s3gpw40RZgnwCY+pnwlHyZKcG
	50do2Pl1QWGjnD+l7P4wX9z0OxHfuE/Niv9D7EbVwlctAyIyPhS2M7XTJeeiKQibl4G8lB6BPHu
	TAz/sEH4d4GXQeHxtAFR8UmlYev+Emx+quUlEHkIgGgPim8vPOjuL+HtSBAUXqUR6pPR2Ns7uTL
	rgDGoROuNi6qe3WE0u4/bVaGbHMhY7/vrsV5LDY4gp5KcIHx+cABJfKoeutQuaP6a9WuI12BFvL
	p4jUb/WnazVUh0jQ06tA2Sp8kkzu5XAj0hQ2t4VtGSVxWi5S3ru7yECjtfUxCl8m1f9PklC8Ur4
	BRHUtyHy2ptlxXHj+cZiVeUHD6QSPxkO9cdgqbE9f+wMehWOSJEJU9WD/6DFO5HyNH54hkUdEJk
	U6vh8RPPhtpQc5xMqRP86IT63hgI+GYUeREFyRlwNzfd7UNBNtCcYmlVJZBPVSLL5e3JHXJRTvn
	o8IMU4=
X-Received: by 2002:a05:6402:50d0:b0:640:e75a:f95d with SMTP id 4fb4d7f45d1cf-65a39b0377emr1640044a12.15.1770823900192;
        Wed, 11 Feb 2026 07:31:40 -0800 (PST)
Message-ID: <433e6170-e00e-4a69-9837-7d28f7e8ac44@gmail.com>
Date: Wed, 11 Feb 2026 16:31:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 08/16] xen/riscv: introduce basic vtimer infrastructure
 for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <792ea928d748e9ff7bd331b8e8b0262695a062e9.1770650552.git.oleksii.kurochko@gmail.com>
 <75d70edc-b0f7-4d61-8da6-e783c57b4490@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <75d70edc-b0f7-4d61-8da6-e783c57b4490@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/11/26 3:51 PM, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> @@ -105,11 +106,14 @@ int arch_vcpu_create(struct vcpu *v)
>>       if ( is_idle_vcpu(v) )
>>           return rc;
>>   
>> +    if ( (rc = vcpu_vtimer_init(v)) )
>> +        goto fail;
>> +
>>       /*
>> -     * As the vtimer and interrupt controller (IC) are not yet implemented,
>> +     * As interrupt controller (IC) is not yet implemented,
>>        * return an error.
>>        *
>> -     * TODO: Drop this once the vtimer and IC are implemented.
>> +     * TODO: Drop this once IC is implemented.
>>        */
>>       rc = -EOPNOTSUPP;
>>       goto fail;
> Shouldn't you then also call vcpu_vtimer_destroy() from arch_vcpu_destroy()?

Yes, it should be.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 15:38:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 15:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227855.1534256 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqCHm-0005is-7N; Wed, 11 Feb 2026 15:37:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227855.1534256; Wed, 11 Feb 2026 15: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 1vqCHm-0005il-4K; Wed, 11 Feb 2026 15:37:50 +0000
Received: by outflank-mailman (input) for mailman id 1227855;
 Wed, 11 Feb 2026 15:37: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=wIvg=AP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqCHl-0005if-64
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 15:37:49 +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 9cfdb26b-075f-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 16:37:46 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b8f86167d39so34139966b.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 07:37:46 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8f6e9e98ecsm72435266b.30.2026.02.11.07.37.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 07:37:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9cfdb26b-075f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770824266; x=1771429066; 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=UsWZxXDSoP0HHGKwmgpCs7TKIsCvDM/g8wB8y6XNHsk=;
        b=hny4bBgsIZII8I1gNUpZ87nnIbuEC3yWqE/2kuqWqqyS/2dIIGD6nooxcjxUYKe3ba
         pHQC2yy2j/LCDj2+Cz0jgSPykxwjk4LV0PpQr40vCVy2lqGqT+to+XC0l+f89mYbqjzK
         NGv5icSF3YK9rEQh3gEZsXLlgfP1NxNjyPThUE09jwt4IWXQtgfZo/t185ic6nwCcSgJ
         1ve4UVbkdSbF3n5txuOXKmwfrXMpX200M7MSkAFYTl97mf6lrwNTh1lYpoqUtOgXc5MA
         Ra6DDno4SUI771zFyZ7GQ9ZI3i9rXKTpZYlSBRBg7BX+12BrlkDTp5PIHxnQVClJyoSO
         Iw+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770824266; x=1771429066;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=UsWZxXDSoP0HHGKwmgpCs7TKIsCvDM/g8wB8y6XNHsk=;
        b=FVq/f7MP512F4T3O+0h/1Paz9zHuJJnwRQml8dvqbSpjtK3Y7l9EHDf0tFM6TJBSyX
         VLWKrxlihHHtzFY+Lett7wi+txHbfi9w1zXjKTKaCVrPxXtoigkUftLfqZIfEvYdJ4wM
         ecuqNdc4AqDKLLvtFDzVZav8fhxiqQqGe4ZWsTY/6viThRWnhsFbEseIthA8RHDYUenY
         315mKP0Zvbxj2rySBEPNKZmOjihRA8Ao/bHssp/4HMsYnWhUMiCAnYgeDoFkLllfRCz1
         EulI5orgUlFz3Zv2QJVItxZPsO4FnrQLhK/KC92fiDyfQfzcQxvA3Qy66qyNL4HYkMP7
         TipA==
X-Forwarded-Encrypted: i=1; AJvYcCUW9pznzle91Iegq/nK0kTIUkw0gvIsP7dO32HzsTIpxb1cxTmzoIDyEM+ub7teD2E9izlPRw49Uy0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw2v5SYoeS5qlL3ykWPvb6QM87e82LoVTq4b2JkuAQsElDdFblr
	/F5NMvbzYOytdlZF3n7oHXHUPYexEqLOzooeq5liPGUNqFaPDpPXhBmD
X-Gm-Gg: AZuq6aLrpQDyikeXyaIwa+dWtj9E0PCJe8Pe0qS7Kwl1np95tP2gZHDZwAB0L0Y8CEQ
	9v8pHjYE+8mUe5uqE3Tau/FtfidxzAT9mADi4NMkHzvGh1FTZZCSy6LSMWT1fiolfzWEdOyB7xG
	UKvaKi5oYBPQDBeDm0mc+33YJDThumJDjKjc3OOBm7z2OtsEF5/a0+0V8i6JbcNk8jPyUDsXBIc
	CYCgiH7EBLmjbwgNGu0gLAh1Bms2PUhyyIdYycPCo0O1b3V3od1cDkzJspDkPUJk9L5KaX9uDsk
	0Wn6V3T7Wq2ZkCgCxevBSbLLjTkhRov2AZtkdl8fF9Ueb+sETOBtr3CkjPBCXcmbv5ntNHnX8+L
	vzyRlsEubfAUAsVBkdDW1y6L0s1spPVA3Iz9J1ylkQWxMGG2tXHkH7BVaqACic/cACCyW6hAf/7
	Tt3WaSmBKhMXr9geppzXAFk5uxLp1RXv6+s4VlM9ZbTWv0zR7GIN2yQl698I92IxUrKOBN8RBer
	BRKVUGUjCW72w==
X-Received: by 2002:a17:907:1b17:b0:b87:d722:f824 with SMTP id a640c23a62f3a-b8edf460ee7mr1182437866b.63.1770824265457;
        Wed, 11 Feb 2026 07:37:45 -0800 (PST)
Message-ID: <c60a3908-660c-4fa2-af7b-2a24b6dc3e1a@gmail.com>
Date: Wed, 11 Feb 2026 16:37:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 12/16] xen/riscv: introduce sbi_set_timer()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <3b102fd2267c629e8505631277efc2eeae5a1a6a.1770650552.git.oleksii.kurochko@gmail.com>
 <4304e4a5-c820-4673-8ff7-bbfdea54edf6@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <4304e4a5-c820-4673-8ff7-bbfdea54edf6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/11/26 4:03 PM, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> Introduce a function pointer for sbi_set_timer(), since different OpenSBI
>> versions may implement the TIME extension with different extension IDs
>> and/or function IDs.
>>
>> If the TIME extension is not available, fall back to the legacy timer
>> mechanism. This is useful when Xen runs as a guest under another Xen,
>> because the TIME extension is not currently virtualised and therefore
>> will not appear as available.
>> Despite of the fact that sbi_set_timer_v01 is introduced and used as
>> fall back, SBI v0.1 still isn't fully supported (with the current SBI
>> calls usage, sbi_rfence_v01 should be introduced too), so panic()
>> in sbi_init() isn't removed.
>>
>> The sbi_set_timer() pointer will be used by reprogram_timer() to program
>> Xen’s physical timer as without SSTC extension there is no any other
>> option except SBI call to do that as only M-timer is available for us.
>>
>> Use dprintk() for all the cases to print that a speicifc SBI extension
>> is available as it isn't really necessary in case of release builds.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> with one further request:
>
>> @@ -134,6 +138,20 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
>>   int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
>>                                   size_t size, unsigned long vmid);
>>   
>> +/*
>> + * Programs the clock for next event after stime_value time. This function also
>> + * clears the pending timer interrupt bit.
> "after stime_value time" reads as if this was a relative input, stime_value units
> of time need to pass until the event. Iirc values passed are absolute, though.
> Furthermore it was my understanding that the interrupt being raised is dependent
> upon clock >= value, not clock > value (where the latter is what "after" means
> when taken to apply to an absolute value).

Interesting that sbi_set_timer() has different description for OpenSBI v0.1 and v0.2.
What you see in the comment it is what v0.1 tells, but v0.2 tells that:
   
   "Programs the clock for next event after stime_value time.*stime_value is in absolute time.* This function must clear the pending timer interrupt bit as well."

"stime_value is in absolute time" has been added in v0.2. I'll update the comment for
a clarity.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 15:41:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 15:41:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227866.1534266 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqCLZ-0008Jh-Lm; Wed, 11 Feb 2026 15:41:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227866.1534266; Wed, 11 Feb 2026 15:41: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 1vqCLZ-0008Ja-JD; Wed, 11 Feb 2026 15:41:45 +0000
Received: by outflank-mailman (input) for mailman id 1227866;
 Wed, 11 Feb 2026 15:41: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqCLX-0008JE-Sg
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 15:41:43 +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 298f7307-0760-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 16:41:42 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4327790c4e9so4451614f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 07:41:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783dfc2b0sm5105423f8f.21.2026.02.11.07.41.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 07:41:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 298f7307-0760-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770824502; x=1771429302; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zho2sPvM2XLY48r5wKdnYl/ks7Wtw7bJwUmQ2I4G+rA=;
        b=AC84uclCc5cpNRFL1C/oq42AhfdYHQNYohhFIxkmbYLLYDpgKFMfkCToX8HgLZNTJb
         RUYyhvW7TkIZlyAR0TiW111gDGPx7LFe3Mfc1nA2pfY3UiEwTrzfQnl8s5wZc1UYOSc+
         3tLQLMGO0wJ43xy2EyVIDuNDrNvdNyat98DegSqfuzpF/VwjHJ/GFx8GJSPfap4jlTvY
         j/g/J4uT0biits+rdNDnDitOv/6hNaT3tBxtRfy/IxqH9zm+immdXpLLvnkIfSKuoQrS
         qoEXuhP1lMl7IlfsJgbOLl7wVLOXaEl6Kg2FuDARsS6L0vd5TDl0Sb9n1GnHHuRICSLS
         yFRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770824502; x=1771429302;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zho2sPvM2XLY48r5wKdnYl/ks7Wtw7bJwUmQ2I4G+rA=;
        b=VR7WOyA9FNyn1nzi8jsFU3pA51qoRK3vW9XIVOja5LDrGFfvcHAGnUK+WsV8pf10u0
         L9BxsyWc/9JfTyyGy+vcz/5ijMZw6BheUkqtyccdEZ1AQqbbdpWFqXXgmrxsZH36F3xu
         G7aDZSq1Hn8fZ137SUovVWFqqLsPH15OHBuIMXmy2U30txEi7k8l0CXLvQfVvbDFTDAc
         6qMM3M4Iayd78Z1+bbg6COock677Hv8g58ocHu2MztjNXr2vJvA8MnXmOWWBnTQjuQRO
         WenbsV37Yj0HtvZjKLr1wiL87B3Q1Pvd6KGzE+4ISDmtMNkYu9Zkhh8gHLXbhvuQjNdr
         lTPw==
X-Forwarded-Encrypted: i=1; AJvYcCXC81RsfElibeERq70GSkGNcHB/+fCEaDmLuNT/ZFDP7vLf7caQWiH4WLRj55kmXQmvaOV9JP4uIGQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwagHjITs241aPmxqiFhsIknpA5+Jl9zqyiGz57TK+INpx4cBA6
	/wbVtWyMivhXXNAdg9/Siw0VNxsOVkXI5JBqPuCK52JtRxvfRCLbE0YRutK8c+aV5A==
X-Gm-Gg: AZuq6aJ+OI79N9X1wKBKOa0SX8t0s9m38DwBmUxmzOyeKXB+Zf+Jr7EMbraCTfftzhw
	Wn7hAHkgH4b8OIV2EWiqQhyXTPYJ5cvIhXcRngO+c0Y0DF01YdR257AH59otj+JnQBTOdFHMKas
	xwccDm+q+62AElw6aNEhvV/Lzqi1DcavIC9rg7BwJg0NsLzWd0QxcjNOR6izfk1nRPAZq5M7OGZ
	7Ns8PN5TRI5fQIKibtArW8T0iap3Vq5OKX31aGqxUMB5IGC+m7CbxkKNPo26r/JRITLPr3/jcQd
	eMxtPYYklC6RiGMukIwnH3PfAfuVEjUu0Hwqa3P9+GdQ9g5Z0NeATG6QxbSP0pYAelkbUy848wA
	+Al+hlzNok/5WsUSehYwACuXILZdfC80xmBRTDQ90pIVhfqhp08a8eA/bcqdnJtNTcxinpgocco
	rXfOwLVOGn/lljVNO1EZdNqRwvgfJfocmnymPqih/qkDMm9GBAte1BFOrNhO5vFGHj3ysTgYxfz
	Bg3TT+usBLATYs=
X-Received: by 2002:a5d:5d08:0:b0:429:c14f:5f7d with SMTP id ffacd0b85a97d-4378459167dmr4247135f8f.29.1770824501537;
        Wed, 11 Feb 2026 07:41:41 -0800 (PST)
Message-ID: <a20d3f93-2209-4035-bacd-8bd00fb12d77@suse.com>
Date: Wed, 11 Feb 2026 16:41:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/12] x86: Reject CPU policies with vendors other than
 the host's
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-2-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> --- a/xen/lib/x86/policy.c
> +++ b/xen/lib/x86/policy.c
> @@ -15,7 +15,8 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
>  #define FAIL_MSR(m) \
>      do { e.msr = (m); goto out; } while ( 0 )
>  
> -    if ( guest->basic.max_leaf > host->basic.max_leaf )
> +    if ( (guest->x86_vendor     != host->x86_vendor) ||

With the subsequent "unknown" discussion also in mind, I wonder: Should we
fail the request here when either side is "unknown"?

Jan

> +         (guest->basic.max_leaf >  host->basic.max_leaf) )
>          FAIL_CPUID(0, NA);
>  
>      if ( guest->feat.max_subleaf > host->feat.max_subleaf )



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 16:00:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 16:00:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227885.1534277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqCdH-0004YO-7l; Wed, 11 Feb 2026 16:00:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227885.1534277; Wed, 11 Feb 2026 16:00:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqCdH-0004Xp-2a; Wed, 11 Feb 2026 16:00:03 +0000
Received: by outflank-mailman (input) for mailman id 1227885;
 Wed, 11 Feb 2026 16:00: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=wIvg=AP=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqCdF-0003uS-Lv
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 16:00:01 +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 b7a0f76a-0762-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 16:59:59 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-43626796202so1851359f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 07:59:59 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d50f3asm5866202f8f.13.2026.02.11.07.59.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 07:59:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7a0f76a-0762-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770825599; x=1771430399; 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=C6i4aEP8+oXo63rtwPUnZ7BTesp7/vMVe/CIdHqtLl4=;
        b=CHggza3Gn41KIlXj3Ze4ShCsM6E20DyJ9mNhKNHYvFOzAp/9GiYropBNpz5S3meK89
         IM2HurvKoqBbfcNc0hD0A6qit2f337QXPlInEtsyQN2sGfYKjKeTC3UmTYPB87RGBajX
         5yV8pmMwSctTVLN1SRcKCLNvkHCdzZU4bD/4Q2JObhPFHU2o4+hvRDX0X+tO+D6mYKpe
         LvLqtDoJYTOvIHkr1jPDjHv5P9zSDS4H1q12lJLaVdhaWv8XI9ZL+bM+ogto2gh0gbgk
         5K1lEQlSLnaQKjwmwWy+0SlhbhusRN+HMS5wHdRmgKqpssjy716a3g1mGoq5y2seI+mI
         6I1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770825599; x=1771430399;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=C6i4aEP8+oXo63rtwPUnZ7BTesp7/vMVe/CIdHqtLl4=;
        b=oYSX74nGJ7TCcjnEUBwgTf97MaSU2VyHcwWoZl+5PXgvfYdiLEeETnARuYtqPWieb/
         wG6xBG3GDDn5kYG15jkNfjLM5WzFzbG17nvMZsW7UGgVTY5YYqA1CtCBPI7Ux2Umu9E0
         klhsoW9SFRuKKlMR2etwANOT6Xkrv+RnVfsiZZMgRF3SHJjWt69wx2TD9ZYC4wNMn0+C
         i79cBuB0anX5eFSoFukZEQyvijlIfrdm0vQ4iZuiRtOTj2a4EVh+l7SDkM6bfjjcNcI/
         UjCpla3yTdPUV7s3viDmbwaPqAVH2Agm4XOnc1bdi4++1nUvZoV4oTOD9Nn9l04oxjq+
         dCHw==
X-Forwarded-Encrypted: i=1; AJvYcCVDIEPvnmnalJk1dzZzeTOLS+OZWBxlxwiOiypl8u3wuzlp3yu6YFHYG8AYskw/W1/iYRaRZSoKOB8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yztu0DuXsXn8mrNpdMkzi1tO2si93S6l6erm8FBKhfaMOEPRI7P
	9v1K1RHAQhUPJ+ABiLfrsH3gSiumKf0Pptnrs9lTg9t48322x8BhrJRZ
X-Gm-Gg: AZuq6aIfuvHdn4Ys7hwiVmpWT+NAnl8kpfCX6OF3lRiUtklOzYrMNXDIE465LVWo2wW
	WzhjGgXnfHMctLpBY0+4Rk/6OD1b97gmFUReXfB/FcoCP7+f2Y6OR2IzwI159i1NXeUnsjIWuiQ
	MgHvxeJ9HI7ChAAvs9J4t3/OQyOD7Ib1zNjlUJxWprhbpQK+09cAYosrOQh42+IUC26FB20LNpP
	G7H5D3chS/+vWL5egwS4xScrI3E5yuLMkCZUpxyJrViCBB10HXqvzp5QtJqeO135MT6AcppWlva
	4P2I+X/7X3xuoxv4DdP2axWoBHnLZVle6q4UOzCW7isVJf4n3uu45/1CYsDuAKlwdoTQxKoCIxi
	ERg8YUCO8AzaMOEwHbNT/rJYUtScpT0+NLXCtWgxofIxYuCZN5iIguayYs3QdGERYkLTKlj5jFw
	J0N1hrcbsBMMrqDboGgmhcIZQHv18mVWASIXaV3+M2zyPC577knDbC3XmBypHVlU9i1TKPU4Av5
	14=
X-Received: by 2002:a05:6000:2408:b0:434:2569:275d with SMTP id ffacd0b85a97d-43629237803mr31846208f8f.26.1770825598761;
        Wed, 11 Feb 2026 07:59:58 -0800 (PST)
Message-ID: <af062ca5-ff11-4a09-8602-b6d073663886@gmail.com>
Date: Wed, 11 Feb 2026 16:59:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 2
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <a81d2873c901c825a08f817d962a8cef09167447.1770650552.git.oleksii.kurochko@gmail.com>
 <2f50ee9a-b2f3-4e33-a2a9-fbf066e93f8d@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <2f50ee9a-b2f3-4e33-a2a9-fbf066e93f8d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/11/26 3:26 PM, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> This patch is based on Linux kernel 6.16.0.
>>
>> Add the consumer side (vcpu_flush_interrupts()) of the lockless pending
>> interrupt tracking introduced in part 1 (for producers). According, to the
>> design only one consumer is possible, and it is vCPU itself.
>> vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due
>> to the lack of functionality) before the hypervisor returns control to the
>> guest.
>>
>> Producers may set bits in irqs_pending_mask without a lock. Clearing bits in
>> irqs_pending_mask is performed only by the consumer via xchg() (with aquire &
>> release semantics).
> Where the release part isn't relevant here, aiui.

Yes, only acquire part is relevant here. release mentioned here as xchg use .aqrl
prefix.


>
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -194,3 +194,36 @@ void vcpu_sync_interrupts(struct vcpu *v)
>>   #   error "Update v->arch.vsieh"
>>   #endif
>>   }
>> +
>> +static void vcpu_update_hvip(const struct vcpu *v)
>> +{
>> +    csr_write(CSR_HVIP, v->arch.hvip);
>> +}
>> +
>> +void vcpu_flush_interrupts(struct vcpu *v)
>> +{
>> +    register_t *hvip = &v->arch.hvip;
> Why not in the if()'s scope, when it's used only there?

Missed that during vcpu_update_hvip() inside if().

>
>> +    if ( ACCESS_ONCE(v->arch.irqs_pending_mask[0]) )
>> +    {
>> +        unsigned long mask, val;
>> +
>> +        mask = xchg(&v->arch.irqs_pending_mask[0], 0UL);
>> +        val = ACCESS_ONCE(v->arch.irqs_pending[0]) & mask;
> Make these the initializers of the variables?

Good point. I will do that.

>
>> +        *hvip &= ~mask;
>> +        *hvip |= val;
>> +
>> +        /*
>> +         * Flush AIA high interrupts.
>> +         *
>> +         * It is necessary to do only for CONFIG_RISCV_32 which isn't
>> +         * supported now.
>> +         */
>> +#ifdef CONFIG_RISCV_32
>> +        #   error "Update v->arch.hviph"
> Ehem. I really dislike having to give the same comment over and over again.
> Please have the # of a pre-processor directive always in the first column.
>
> Also, isn't this misplaced? The containing if() checks irqs_pending_mask[0],
> yet aiui irqs_pending_mask[1] would be of interest for hviph?

Agree, it would be more correct to have outside if().

>
>> --- a/xen/arch/riscv/traps.c
>> +++ b/xen/arch/riscv/traps.c
>> @@ -172,6 +172,8 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
>>   static void check_for_pcpu_work(void)
>>   {
>>       vcpu_sync_interrupts(current);
>> +
>> +    vcpu_flush_interrupts(current);
>>   }
> Ah, okay - here comes a 2nd call from this function. However, please latch
> current into a local variable (already in the earlier patch perhaps); no
> need to fetch it from per-CPU data twice (or yet more times, if further
> stuff was going to appear here).

It makes sense. Ill do that.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 16:04:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 16:04:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227895.1534285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqChm-0005zF-M5; Wed, 11 Feb 2026 16:04:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227895.1534285; Wed, 11 Feb 2026 16:04: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 1vqChm-0005z8-JO; Wed, 11 Feb 2026 16:04:42 +0000
Received: by outflank-mailman (input) for mailman id 1227895;
 Wed, 11 Feb 2026 16:04: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqChl-0005z2-UB
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 16:04: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 5e7eea73-0763-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 17:04:39 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-43284ed32a0so4792045f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 08:04:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e3a9acsm5278501f8f.30.2026.02.11.08.04.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 08:04:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e7eea73-0763-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770825879; x=1771430679; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=z1rSqZoB/cFftPttMYP3X84zlgx8fMHsh0AbjHx39Fo=;
        b=cMLyrch0c3wY2g0Xht1mi08WfbXOgSYsqOiFXyfxYJqoIL2KZvqHWvxdIjIARA58nW
         T9o0X/ZQNhVP1iiAqpXx2ri7lHaCb8iTWtkCpSgmoaU9IVGh7W8WFztSwztMuWVSehfV
         z8Hn2tZxqQSYMs9hTO8DjYWg+bWJ8xcLVLYdbT2YDcFn+8VMdok7H3UWVfsI39xQEUWZ
         Ldt82KrBZN+H95vgs0UNexGMBhJ5pKaBBaT6k7AtM8e72mB7pi/2LWrYj9ZExzByEQTQ
         yzyMmG1wMtvjiVryy1bDfVeNcm0KX2IcZYYzsM7JuPYdCVG8M7RSlsaMQNOMu9jqGheI
         ko0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770825879; x=1771430679;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z1rSqZoB/cFftPttMYP3X84zlgx8fMHsh0AbjHx39Fo=;
        b=calj7zwbj7MSecyY2Fk2xH+NrWhUVVyirO42Ek6+3JylOU63Rppmtzl+/kDUs1x8ya
         U+iONrFivDmoGBymI6KrlVj/4qCKCm43s4BX74zuUi5BIiQA1Z7tMh8t7dD/vw2qOYII
         /X6JAMRgPMo4Q2m5oluzvn+SzHu/hJ4xqEKJ8wjK3ntRQNXdZ2Zu7TaCld92dihtXnlv
         wndBe/yYzzTzGVG5A7om4VPeGe7brgPnBUCqTSx7DmbZAHPZqSze1F0x3aL5Jp/lV56y
         gIKaxHCPSfiFv8/HB9q6tWO0fhoXCl6bd73ORPHavAp0+4FzxYiAU3TiljmgoEp1gdwI
         oLKg==
X-Forwarded-Encrypted: i=1; AJvYcCU8KSggD8qwYththA8q/IoBvhq0Rvy8t+TQRU5Dyj+uY+72ny/Rb+aEwt+27kUTHOzEqcIWs1wTmco=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHNffwcHFdsN+AmC8POzdQCTP4ZdSRk5lZBlevx4siPJN0IiiO
	QBQ1FXJr4ahvHPVkl1ugf4BygyeDu+m9ykAHaib73Y2vvLRCzcKoB9GjlRf9mB3KtA==
X-Gm-Gg: AZuq6aKBzZZa+M+UgeymzL0liRPsZM1MVdqEEYn0BO2ZFBgOiZcQ0AUeSt0xeeGy/dy
	HskPwy/wu7YQNy0NGZjbFDRY/AfSW+R5p8u3ho4kTqt0su4QVWGd6zSZpXZnXX0XT48lwdTiNbK
	S+vbLxThy1jds5qNO4BDdNOVRbpdKsREYZ4bS9eDMKlNeRxrAxikRBT6UrACQ1MloAr4t8VJiGf
	rk4rb9/x6djPf+NuyG1pvqfuzmyeOm17L4wzmIaAlkUBMBiCGb+66399y2KQxXumAYYnQJLl0n1
	SY/wsh+xrDNogs8q/SuKHt5U04sNmPG3Jf8+TRFH79ZgCf5ib8GmYlQQaFDwZ1VzGkjWZbnbzb8
	JuKvcdz7bbiTsJeq1Blh4G2zJsLDC3qO5dlZKBAtwt1NzBttijlAdyhTwqQx4ZdDY+g1U7HFWlt
	yPm55hYQkKeg2zatc8m9AQHPhw5qktMwmO+j0vyi5x12Uzm66Gbxh6qaJ1ECroYgxAY8oVRMysr
	l3tKThGnSy/JwQ=
X-Received: by 2002:a05:6000:2885:b0:435:9d70:f299 with SMTP id ffacd0b85a97d-43784548b6amr3717848f8f.22.1770825878866;
        Wed, 11 Feb 2026 08:04:38 -0800 (PST)
Message-ID: <7eeb369d-04a9-4c17-983c-078e45b4679d@suse.com>
Date: Wed, 11 Feb 2026 17:04:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's
 CPU vendor
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -328,7 +328,11 @@ void __init early_cpu_init(bool verbose)
>  	*(u32 *)&c->x86_vendor_id[4] = edx;
>  
>  	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
> -	switch (c->x86_vendor) {
> +	if ( c->x86_vendor != cpu_vendor() )

When we introduce new functions to Linux-style files, nowadays we take
the liberty and make them Xen-style right away. In entirely Linux-
style functions the style should remain consistently Linux'es, though.

> +		panic("CPU vendor not compiled-in: %s",
> +		      x86_cpuid_vendor_to_str(c->x86_vendor));

This will be somewhat awkward when c->x86_vendor is UNKNOWN.

There'll also be a degenerate case, but I'll comment on that on the
earlier patch causing that.

> --- a/xen/arch/x86/include/asm/cpufeature.h
> +++ b/xen/arch/x86/include/asm/cpufeature.h
> @@ -14,6 +14,7 @@
>  #include <asm/cpu-policy.h>
>  #include <asm/cpuid.h>
>  #include <xen/lib/x86/cpu-policy.h>
> +#include <asm/x86-vendors.h>

Nit: Can the asm/-s please all stay together?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 16:06:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 16:06:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227903.1534295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqCjd-0006VR-21; Wed, 11 Feb 2026 16:06:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227903.1534295; Wed, 11 Feb 2026 16:06: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 1vqCjc-0006VK-Vd; Wed, 11 Feb 2026 16:06:36 +0000
Received: by outflank-mailman (input) for mailman id 1227903;
 Wed, 11 Feb 2026 16: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqCjb-0006VB-Iq
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 16:06:35 +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 a26bc90b-0763-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 17:06:33 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48039fdc8aeso14221875e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 08:06:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d30db4sm4993729f8f.4.2026.02.11.08.06.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 08:06:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a26bc90b-0763-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770825993; x=1771430793; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EzMd84pXabHt4f5/MHN6T1tOM//izFtZ6iLR8lHidKs=;
        b=SkNZ5WUJzSvG5DadeIzS4waIRyyJLiIRNcpnthz8RlTJOAhTogZrzshV9HHvuGFdGZ
         DziY4pq2FOkZKxZMGCfZQ9Aivx6vgJU2KVFEImKnlL3+5whqZzrABrkvtdK7te/Hm85A
         oPx7dinPJUJulptsYBTaWaUoTOKZzeaYm+Tt6DGlCfnDloH8ODHMwm7AjUHpG8tPKMoh
         tOSSt4mrElBVe0k6/DbY6LNoE0HmvKHjiLlitQG/EeT1D1fSGUC4GpvymcXWePEwlFjk
         QgfNKotNmPZyujZoZf7FZxf/JXXnnMLdSTitfk1fqPiK1MqQ4v96gJFe1PTIBSSwrwXc
         0Ltw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770825993; x=1771430793;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EzMd84pXabHt4f5/MHN6T1tOM//izFtZ6iLR8lHidKs=;
        b=lYfOiICJ5qGHz4X6g1qoKVYVV7qzOnOHCRWLiThFH9K2IpGQndeBT67IrSWDJgW24s
         DX5fOZw+3ald0mBn/CN6UxRCSBMCEXk5BcKgNHpNEfLJqgs8zK2dEyIKJatuUJPlmPCW
         OjnpKvwN5eOOOL9mqNX2oHc796Hwu8Rrmt/IPXyf4VIgWObHyFlkDXFKT97+8TzV5WM0
         TOvX/bcdg5T3prhpbNYXpx8QvdfYqgNWzQIgLVaovitrkTrsKVpufcmzLD5h3twuCM3Z
         O+ZvfZvGMWYs2yFSU0rIEl4GwhRkNDCzjR3q9VfeQPY/0I08qBOOQIlt9kdeNb8YxguQ
         xWDw==
X-Forwarded-Encrypted: i=1; AJvYcCWM4ogsIFDcsDu76yk1c7oL53S87E0GvWbcWbgUdo+n+4zFW2b0FRu+N5VTu1r5e4ba8IFpukAI+Ms=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwshR98XqASqSIPGcxXdVcnNNCyPyDdhi+CZAdEMC6eDxBHUCxX
	8A4fksNYbrl+GqvAUH61LBCJwAgLGF+l65uC6cCqm2xXU3Jejgr421Vdw8vamaP3Gg==
X-Gm-Gg: AZuq6aIDs/4HTmNEZXP/DEcbVfDu1ZGWFF9+hD7hASJE/5Ug7s8IVXhqRs51SOxbDiD
	jQjdE5BnUs6IR70uNgs8uc/AM36aUk9RLuWGYV9Iwc2bxDtXe8TkFUahZBGnfy8wLQzN/oBApjK
	siSkThGyfC7kcvGQy06D1M9RanhnIJcutBvE24HUCr9bzjFkrHlfBiLELCt6S5JDhuQee+k4lL1
	hpb1DS2veSLjy1hRaxcOD0+xNXHpgvmZ2lsL3qOgmH4QQakEm1kr01HxxhIOSUiinCaZ6l07+ky
	cqVXGUGamrxOY8F/Xv0SuE91j4gDJVZ8bNSBStoyB1CvqtRJmpw/bSqRFtb8Wf13NHeVqcubWO0
	SkYwz1+evEc4iPiLAXIYKizB9O6NCNP43+wMZPNdA9eePcrw9mgA0MCP8PjVm5sCSSA9/MJXGy1
	lw3ndQKC5lNrIdmDmi5/T+aJeqLcXuFLHook4hCSkJzsvwYBGAfCjNSN1XiEeDt7QfER1xGlD4+
	cfhh4b5gkAcdyo=
X-Received: by 2002:a05:600c:6209:b0:45d:d97c:236c with SMTP id 5b1f17b1804b1-483202160cemr266311075e9.21.1770825992862;
        Wed, 11 Feb 2026 08:06:32 -0800 (PST)
Message-ID: <b284e16c-cd99-4595-8fcf-264c378fc57d@suse.com>
Date: Wed, 11 Feb 2026 17:06:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86: Add more granularity to the vendors in Kconfig
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-3-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/Kconfig.cpu
> +++ b/xen/arch/x86/Kconfig.cpu
> @@ -19,4 +19,47 @@ config INTEL
>  	  May be turned off in builds targetting other vendors.  Otherwise,
>  	  must be enabled for Xen to work suitably on Intel platforms.
>  
> +config HYGON
> +	bool "Support Hygon CPUs"
> +	select AMD
> +	default y
> +	help
> +	  Detection, tunings and quirks for Hygon platforms.
> +
> +	  May be turned off in builds targetting other vendors.  Otherwise,
> +	  must be enabled for Xen to work suitably on Hygon platforms.
> +
> +
> +config CENTAUR
> +	bool "Support Centaur CPUs"
> +	select INTEL
> +	default y
> +	help
> +	  Detection, tunings and quirks for Centaur platforms.
> +
> +	  May be turned off in builds targetting other vendors.  Otherwise,
> +	  must be enabled for Xen to work suitably on Centaur platforms.
> +
> +config SHANGHAI
> +	bool "Support Shanghai CPUs"
> +	select INTEL
> +	default y
> +	help
> +	  Detection, tunings and quirks for Shanghai platforms.
> +
> +	  May be turned off in builds targetting other vendors.  Otherwise,
> +	  must be enabled for Xen to work suitably on Shanghai platforms.
> +
> +config UNKNOWN_CPU_VENDOR
> +	bool "Support unknown CPU vendors"
> +	default y
> +	help
> +	  This option prevents a panic on boot when the host CPU vendor isn't
> +	  supported by going into a legacy compatibility mode and not applying
> +	  any relevant tunings or quirks.
> +
> +	  Not selecting this options while selecting multiple vendors doesn't have
> +	  any major effect on code size, but selecting a single vendor with this
> +	  option cleared produces a much smaller build.

Shouldn't this option's prompt be suppressed when all other vendors were
selected off? Else the degenerate case can result that I mentioned in
reply to patch 03.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 16:15:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 16:15:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227917.1534305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqCsD-0000ki-Sg; Wed, 11 Feb 2026 16:15:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227917.1534305; Wed, 11 Feb 2026 16:15: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 1vqCsD-0000kb-Pj; Wed, 11 Feb 2026 16:15:29 +0000
Received: by outflank-mailman (input) for mailman id 1227917;
 Wed, 11 Feb 2026 16:15: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=0Hh8=AP=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqCsC-0000kV-Qy
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 16:15:28 +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 e03468a7-0764-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 17:15:26 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806e0f6b69so54306535e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 08:15:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835ba1670fsm35919105e9.4.2026.02.11.08.15.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 08:15:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e03468a7-0764-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770826526; x=1771431326; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mmb6FomwfN6gR6OPWswkwtS0FRF5fuWcj/337qYmjlc=;
        b=eq13CGGh5NxHNpo9ktOEh/xjaOovBduiflCI2J138KjmsfEucTk7YhqdMDtSpVMYva
         XaMf2+HQ8qZn2QKdOc1sA5NhfH0vZAh5WNio2gsuTb0dkp1ikGHGnwKNeQRAidJd56WO
         P1IZLLjpBIYQT3z6a+/Rr7PlzorjovR8pMEJKiIeJRjCAO3w1ATl+Mb5qZ9PYh4QzxTW
         EsEEUBvYuP3I1JWyxSMxGBP4of8vXhc5Y9+4X9X8K2AxXbNP6lrvRPq7LmDUjSk93oXt
         /6N9B7aJBYvS+lJmi1ISRW4Kmq5db3UFm+M5MGMc25dlg9HvSd1bIIgdyMw5hyeq5Fk4
         bojg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770826526; x=1771431326;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mmb6FomwfN6gR6OPWswkwtS0FRF5fuWcj/337qYmjlc=;
        b=xG5QClxeVbqPy3fXjHiqeO3tEi3eLLl1DeuTqUd/rI2tNnnttE6ipdMWaJbuW8tV6D
         Be68g4G77LJs2le3K/ygIwpGjENJ6yE4fjcAUv2L7LvHZQI+rxxTK4McNXg1Pn1ryX38
         e/xd56ciJvXpTGcKOETk29ThiWbxRoqTpRk/RTq2Ohkiot3TcNY/XBF9t0DpfzHZYKcc
         p6LZtutVtUq4I5drcIDum4loUr2g0md2iOvdCQoeqcZRVgmmICp1vMNa7wxUGMWpi7b9
         gWmH9Pg8YYAMo2+KM10XrWKo8TzJINE7BQ/xIRYf61mw/3wx9LEGb+IMRosX53x5F6XR
         5O8w==
X-Forwarded-Encrypted: i=1; AJvYcCUUlTt30I9jSW2krjVGZp0dA90jPdgYx4Tyh7JeElnCdIx7v+SA/zewk99L7dbQ0rZvbIFwZ3i7Ggs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzNznMByLQ9VMGf5Axkp9SPY6X5Z+Bcj5eMmjzicCB7XJCyZHEd
	0jLVbcb/djNxWuIP82kjnDFaHU6DuvLWWHQ+dPf0N7LdybRrNVEzBiPBg0l1rtkfSQ==
X-Gm-Gg: AZuq6aIfsLAoi4Q3URsWYgwanbMHpmPhoJun/Vwe+ue67r5qE1GPdggpMQo3UX2oJKz
	RpYN7ncamUinP9keQ6BAjuBXvh5QkRCwkZD4lir5FdxBiFiOkw+J/0oflT5d6ROL8URkTw2+xXv
	FsfJwQsi7RgaEZtFMrLo1ye9u2d88w6i/FtDWvoXf4curpo7OK6mXjEhgbzqcSFYmdKV4KI/VkE
	qFvUn/VZNYWsm6zXCPBOwz4d6wyy5/+SRTyg8gaHtxn/qh2F0giX9hPriSU4RugiRYPwjh2zCEv
	qrCHVJTTIJLbqoM/6xGGwY2qHakNoS5EZzuJTYW24mZoBw5CLPlULLOEVsCnI832KRdzaPhzIJW
	F9bBGI7NqLCdho1MjZTX4eE68QQ+B9l4lqrbfjDO21avDno2hKlkeShD77nyGbYbiz60wBacj30
	frrdRrrhuT/0w6SZVkL5IikT23Mr5gRyr6dJNOvdCQWytoqzprb33x4IWxoQxcAgcHzHV3u9XRv
	dH5v3sPGOKmRBuxfmrnASqPaw==
X-Received: by 2002:a05:600c:4fc2:b0:479:3a86:dc1f with SMTP id 5b1f17b1804b1-4835e2cf364mr34705115e9.37.1770826525943;
        Wed, 11 Feb 2026 08:15:25 -0800 (PST)
Message-ID: <0a77d849-37b6-4015-815c-a572527313d0@suse.com>
Date: Wed, 11 Feb 2026 17:15:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/12] x86: Migrate MSR handler vendor checks to
 cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-5-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-5-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> Many handlers are vendor-specific and are currently gated on runtime
> checks. If we migrate those to cpu_vendor() they will effectively
> cause the ellision of handling code for CPU vendors not compiled in.

This builds upon the still very new "cp->x86_vendor can't be different
from boot_cpu_data.vendor". This imo wants mentioning, not only for ...

> --- a/xen/arch/x86/msr.c
> +++ b/xen/arch/x86/msr.c
> @@ -157,8 +157,8 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
>           * The MSR has existed on all Intel parts since before the 64bit days,
>           * and is implemented by other vendors.
>           */
> -        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_CENTAUR |
> -                                 X86_VENDOR_SHANGHAI)) )
> +        if ( !(cpu_vendor() & (X86_VENDOR_INTEL | X86_VENDOR_CENTAUR |
> +                               X86_VENDOR_SHANGHAI)) )

... this kind of transformation, but even more so ...

> @@ -169,8 +169,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
>          break;
>  
>      case MSR_IA32_PLATFORM_ID:
> -        if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
> -             !(boot_cpu_data.x86_vendor & X86_VENDOR_INTEL) )
> +        if ( !(cpu_vendor() & X86_VENDOR_INTEL) )

... when two checks are folded into a single one.

Yet as mentioned earlier - the UNKNOWN case still will want settling on
from an abstract perspective. (This isn't because there would be an issue
here, but to have a clear understanding where we're heading.)

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 16:38:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 16:38:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227942.1534316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDEa-0005kx-Pj; Wed, 11 Feb 2026 16:38:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227942.1534316; Wed, 11 Feb 2026 16:38:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDEa-0005kq-Mw; Wed, 11 Feb 2026 16:38:36 +0000
Received: by outflank-mailman (input) for mailman id 1227942;
 Wed, 11 Feb 2026 16:38: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=5qg4=AP=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqDEZ-0005kk-1O
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 16:38:35 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 191d3bb7-0768-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 17:38:31 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS0PR03MB8016.namprd03.prod.outlook.com (2603:10b6:8:1fa::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 16:38:27 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 16:38: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: 191d3bb7-0768-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FbarvTXPK9ntBZ7nIreHepIFuRZQDgant3bNt/kv4wgAp2qiatC/rMBcUGlJ9Zq6CgUUcFxXOmPYlJ8OXEUzvd/h1SUGmGBMK26Wve1cVJzU6nf2zJzGtxCcYfHed2haRjsCBgnOF4ANIDs0GGU5YMjBSIf3sMNyFLFC+mK9vnzdQBVi1rC8jGBELjKEI1fPk3xiSYXKowVwAdn8t+fsQ8LYVVPw84oYvOpd5SN3SzfUwIHyjrMAJ9Q0ZxwDaYhrp1nhjiNdo/N4FbrTuS2BY5iOabUf6SlfP4DtknbW3N//SYdfAbCZkqfeznNS5t7jJpPXBYbrVqSw5SeXJexA9g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kSgH1rOR/UYO3qR//dXq798FVDGk5S2/nveeqKw9PYc=;
 b=DWwh3/LSUnHjXs+RHAG2RGbR/zdhHzXVkoQXLaREL16xJPYflwUAOvoRTApM3xk13mT8I7yAopMiEIdgW92gaRxXDC7V3u5da6mba8nAXKyrwZQL9pUDtoFm3k4X8TknKZhBW5OMMug3LdUf549Kd+4BBJ9vbE38U5l20IzUpM8lkkJVLD3Yc4WShHwnKFmYDj+q/VWG0yqpjCk7qyn/I4VxHgbKekxtCrVWnjIjVeD4utIi0s8n6gvRjcKw/qnxVbJeSdCFU3Rwzf1JqZjLKV+YrEox235HkLMPEMXOeKIFRsKjbNihhfcqYCc++WLqScPlkrP1dbfjpIaXPifn8A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kSgH1rOR/UYO3qR//dXq798FVDGk5S2/nveeqKw9PYc=;
 b=UwuA42lpZsuK9TOLofWV8+L2wymuA6GSIfmJYuC8v8Lm346NZLjivsWLKzIhpMRgxv+AJY3REfq8H0ZWjzDqbaRsVpmZiVm8jV3LeMe0ck3eYsCeTym0Q0KoiOHYhdNNMvPfbcTqZVjFINgJCWrj+roTUSn0Ndv+KvDH9F1l2Hg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Wed, 11 Feb 2026 17:38:24 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Frediano Ziglio <freddy77@gmail.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Frediano Ziglio <frediano.ziglio@citrix.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Subject: Re: [PATCH livepatch-build-tools v2] Treat constant sections as
 string sections
Message-ID: <aYywgMMoCqOH7hWb@Mac.lan>
References: <CAHt6W4ejPT-A7bGfrZGW-8zEBxmQ__LVa91GRcXhYZO_3C1meg@mail.gmail.com>
 <CAHt6W4eQmiuXfBfwi-Wzpp+fzCzr-JAO45+OD3tc5PQXE-0WXw@mail.gmail.com>
 <CAHt6W4egn8t2NKwPEquHG=p67C-kNzfCTrS9dg4K=Qjskntvyw@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <CAHt6W4egn8t2NKwPEquHG=p67C-kNzfCTrS9dg4K=Qjskntvyw@mail.gmail.com>
X-ClientProxiedBy: MN2PR10CA0007.namprd10.prod.outlook.com
 (2603:10b6:208:120::20) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS0PR03MB8016:EE_
X-MS-Office365-Filtering-Correlation-Id: 5c62659c-76e7-47c0-330f-08de698bfb66
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?eHBzT254aTJaek9SeEZLWGV5aTJtMHR1R2tMVWp5eVNScVU1M3ZGRWVYYVAz?=
 =?utf-8?B?WHhWTWNsZjRaUmxKd3JKVnBCUGxvOHlPc3pQaE53eFJqa2lSSWNoanRxYmpr?=
 =?utf-8?B?Tm9pYW95alNGcmNOclFXWjhDcmFjdlZKVFdVSEQ1UFFCL0hkeFBBRDlvYno0?=
 =?utf-8?B?dEMyZHVzcVZwclAwVENpdGo2cFhYdUIvSDZUWmV6cmFTM21qK2NyOFIrRGlH?=
 =?utf-8?B?djN2VXI0aW1pY0w3M043anUyNkF3ZE1QU2xOSFdsMDIvYXFGUEI1M21ETTJv?=
 =?utf-8?B?YmQ4OHNjWnh3YWtKVWM1ZW1mUzZORUZibDFORTNNS1JpNFpnVnpIUFNpelNR?=
 =?utf-8?B?QWNRRFJUYkxPRzVwRzA0N1BrNmxQRHpoaGpRa3FsYzFZNWFMcXREWmwzY3JH?=
 =?utf-8?B?MEwzZ3RCR0FVWmR2dy9BNjNicUJzQ2NoaktOTVpHM241bGFSRjkvOExnYUkv?=
 =?utf-8?B?R0EvMXNGZmlxYWJ4WWQ2SUNmZE45ZnJRZHprSk8xVVZHS1ljb2F0aERMR3RT?=
 =?utf-8?B?RVN1QUxCQU5CK0RtRGVSRHRoQ20vKzBwemc5QjdFdWYwUUpuRWk5TUNYZWVo?=
 =?utf-8?B?VjdLY2JNYUF4RlZib0o2RzZHdFlyc2RMY05DdmNRY0ZyNFN0M1BrVjVXbzBY?=
 =?utf-8?B?VE1ROGlKZmI1NGF6MW54bklCUzhKamNXclRCdkV5Vkcxc0l3ZUh4YlZHWnJ0?=
 =?utf-8?B?K0MzZ0tZQWFSTS9wcHZ6UUs5R201Y3BRdDYvQmxPdnlXM0hJdTNnaFg4VHl0?=
 =?utf-8?B?NTZFU25BcFJNdm9idmdNSjM3LzlmWHlpMXlLL1ZWSlp6eXFacDV4TDVLS0o0?=
 =?utf-8?B?RW5na1FwdFQwTGJ6YWY2RkJGd09ZVkpFTUU2N0pxYWd2c2J5Yk1TVEVTbUF2?=
 =?utf-8?B?SDBJUEJ5cDd6d0Yxb20vdTZraTdpbFZuV3ZqWTFEQUJFRTN4dUt0NkdXNkll?=
 =?utf-8?B?STRoQ2NMTDNBVzBiaTZXeWVKenBZR0IrMGVCemE1dFRRWlR4OXlHa1lBdWhS?=
 =?utf-8?B?QjkrSE12dzNKMHlFQ0pCc3lWT2ZiYzhYcWJaMlRDY21zemFVVWNjeEUyL2pv?=
 =?utf-8?B?Vmo1YWQ0V1U5dEFEbUZSSnQrUmo1UklFaVlvOHV5UEw0TUV6SzQ5OVFibndP?=
 =?utf-8?B?cGdFS284QU81WmV5QkVZZnJHZ21jL2U4UWJNUUdYa2M5SnExVDhqd2JqRHJY?=
 =?utf-8?B?VkJhbko4RUtyaEk4WDNEQUw4Nnh0SjhzcnJ1SFhvYloxZTZkMEhTMUEwc2xE?=
 =?utf-8?B?ZjRpdTJnRjJzUWRyNjJZRmF5VnV5ZENnazJqYk9TcEFZNHVYZlFzais1dmZC?=
 =?utf-8?B?V3hoaXZpRW54N3FHcEszV3Z4VklDR0FDRyttbG9uaDVtZGhNOUNCK29hNkpt?=
 =?utf-8?B?WDZqMFd2TVVETUg5VHNUZXBIbGZJaHlVQ2dzZlRLWTU4SWpJTXJlcmZCUXhm?=
 =?utf-8?B?MllJc3h6cDN5aHlETU1oN3pRZC9pSVdpUW0xdGlqbVZ1VHpGZDh6d09sOE1Q?=
 =?utf-8?B?cXFOZVYzWUJxQzJCUWF2WjREejFLRXM1Qmxabkw5dkNweFNPSExBQnVGUzYy?=
 =?utf-8?B?Z3U0ekk3UmpoUXNWS2szUlZaU0c1VGRpQkl0RkI5QkhMUmFpZG9FTENRVDV6?=
 =?utf-8?B?N1c3c3lGWnh0TWN5VmFTUEZBcW1BWEFPTDFZd0hqeEl5bld4cGV0YVZtUlM2?=
 =?utf-8?B?K1VyOEJmcUI1dHdhc1BneldWdytoR0s1MjQ0aHcrTGtSOUhSRUpWOGk5UW5U?=
 =?utf-8?B?dzRXMjNiYy9zazJPUzBKSFpyMlNxQVl4WUxlSDNTUWNJaGF3WjVmdFhXd1gv?=
 =?utf-8?B?Vnc4YzE4NkZMK3JWZWRydVpoZ3lKWENlOFVybHB6clNhMldvWEFoSjBrVUZM?=
 =?utf-8?B?Und1U2s3UDlhY1JGUExPTERHK3ozVjZ3V3NWU0EzWERkck5mcUhvOUVIOTEz?=
 =?utf-8?B?RW9mMHFBRkRqV2NNd3FabGw0blA1dWQwWS9OSForcE5rdXZsZjdkNmpQMWxs?=
 =?utf-8?B?SGVJS2VnQlRTeTA3c296eXArU3Ivc1JTcTJIMVhRZDJ4dDdRczJWby9UV0Rw?=
 =?utf-8?B?UjJwcStWT0pzWmV6aFRpZVg3dGY1dW9UdGM2KzYzUXA1R0I2NU1VSHVqWGdL?=
 =?utf-8?Q?tjF0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cHVEWkxib1ljbFphcnpuMnNoMGEzWjg4dERWRk5ncUNTLzZ0Q2srUGtzcTV2?=
 =?utf-8?B?MUNWcWZmMkdEQzJPL1NWSUk5N0ZzcWwyVlZScnNkckpPUEV2UUVibmcxZHJV?=
 =?utf-8?B?SVRDZ3ZaTnROSUl0UnkxczZ1OXkxeC8ybWE3bTV6eGhLNDJpZnd2WUdlTkd5?=
 =?utf-8?B?emwvZ1Rscm5Md09kRWYyQ2hyZEtrU0ZFaEJUZlFLMXRLZFIyU2ZpNERwZzgv?=
 =?utf-8?B?OEUzN3ZybHlCNkNpcFJ0K3FoNzB2d0tkRndpZUpXaG5NdUJ0a0JTMkNkSXpO?=
 =?utf-8?B?K1RBNVBka25HTE9GZjQvekdPRlNoSm5hSVRxdUk1RzNTdTdLMEc4YlZsSW9a?=
 =?utf-8?B?Mjl3RGg1VXhEemJrdXdoZWU3Y0hDaHFHNERtMXU2VTNndVVTL1BoWllqa1I0?=
 =?utf-8?B?dzJ5N1pJSXRUNkZVNmVITzV2M1Q5RXlseGtpNThaRmN3RThjUmZpOXJ0QkFx?=
 =?utf-8?B?eWltU1UyUExzUUsySTlsazhVU05OcnIzc1FrUTBpemt5cWJVaWNQQXltVzZY?=
 =?utf-8?B?OFdjTXFlVE9mbXQ1enMrbU55YUhnZEVXWTRhcU1SVHZ4UFlHRG1CQmY3cWVE?=
 =?utf-8?B?ek1YbTl5dzZ1SWNPVlpUaE05NVJoVm5YNFFQdzdMdFRpRTQ3QThGaFp6NjY2?=
 =?utf-8?B?dXNmK0o1cVlQRFlWUkRmZDRERDNJZE9FcHdjTWdqTWNBZEkwTEhmenhKYW9s?=
 =?utf-8?B?NDFFOVd0dHhaZFh0WjVwQVd6ZmRnUy9oVVlUR25VUjVQYXh0dFBVaUtwQmtk?=
 =?utf-8?B?MjBLRTBJczkwZlFZZ3BJSHhUS3MrY0kzKy9pZnZqcWlNN2xDVFhoQnRNR3dE?=
 =?utf-8?B?SFcxMEJQZE4xMVFoVmZQQlB5aFpqYlV2anFlM2VaV3ExdUxLQmFkZ0wvSVRi?=
 =?utf-8?B?OWlEZ1JTaEJtaktpbVR0ZjFDMnkzUzRLVGo2Y1F0a2lJeHA5bE9EakdCNUlm?=
 =?utf-8?B?R0M2NXhjeHY5UzI3VHVXOTlXMllJUmFvZTlSOU9HTlNES1dsNVNZM0d4TThx?=
 =?utf-8?B?S1FqT2MvUU5yd2djaHdSUXNJZEVvbFN5WlIvTzVTcEN4VFNVcTRLdjFaeVd5?=
 =?utf-8?B?STNyMWErV3VveEVpL1B5QThuMFBEcG9ndmlDVjgvNXJITEJVMTJKL2JtaDFB?=
 =?utf-8?B?dkltL0xZdHNtR3k5dlp1RHFqdmM2NUVoVGxxdWoyNUFLTTE1Zno4N2ltVlRG?=
 =?utf-8?B?YzhZL3FxWEpOWEZRdkpWdHk1SGJyUHM2eEs1MGYxY0ptQ2cyZDBNaVdCdWNC?=
 =?utf-8?B?RkFsa0REUmRxaWRPYzdxeDlNM0xENURKTlJpOFFPZ0kycFk2Qkg2b0N1WTZn?=
 =?utf-8?B?LzlPZHV4UThXb1l6YXlwYWpJYnEyY3hLK0EzU3FmQmpCWE15ZWxBQTlsaFcy?=
 =?utf-8?B?bVg3a0R3blNyenIwbVd5Tjl0ZTBvVGc3THNRQmtHTWhoZytCMGtac1FvNUJS?=
 =?utf-8?B?cURMZ3VNUGxNWU1rTm9oT2RhRUE3U21pZXZ2bkp2aWgyckRqejVWbzNzeGhk?=
 =?utf-8?B?bzBqeUZSYlpBdGo3VDBGbmg4MCs3TG5XRFZGQzIvSFVsaEswVjY0UzhidW9j?=
 =?utf-8?B?Tyt3Y2RQM21ka2hvZ1kwcjVWYzBsR0FOcmhpMFd4eUE3NDRPYUFSLzlIcmlq?=
 =?utf-8?B?NnQ5dStWeUVtbElHYkRqWU91Tmgxa2hqVDdkTERRZUZ6M2pSeGZwQnI1clhz?=
 =?utf-8?B?VWpRRG9tSkF3Ri9hanV0WTM1Z0hZQy9SQmhzOE51MWJaQnBuMjQwWHI2N3NU?=
 =?utf-8?B?T1BhTGNuR3JxaW1uN3RSQXhoamU1V0RZTnJjbXRKTGNFQ0dkYVBWeGhRWk1H?=
 =?utf-8?B?aXVVMFkxNTB2SDlHUEcyRDE2Y0NIT3VxU3lqZzlCeWVySTZ0MkNQeE1zUk52?=
 =?utf-8?B?dzBhaDluTElWUzNWSWNJYWlrMldmUTBaVWZ4ejVXbjlNUW9Db3o1cjRjVnZv?=
 =?utf-8?B?TWZreFN0SW9QK0JwcXlLU3BVdkZoRnpnQlUwTjRhWHM5d2JXS2ErZnV0MGZo?=
 =?utf-8?B?Q0JZQ21FcXdLWGJjcXBrcGNTVnQyaHd2VDB5c0NjT2dGUTV1ZEdwTkl2TGc0?=
 =?utf-8?B?Z1VBNjJMQStEeTVTdldxZ3NHY0dzY2paRDRsVkhqRTkzS1QrckFHTHAwdVdz?=
 =?utf-8?B?Q1BOa1hzVmxvMGYxejR1NEJnMkZiazZzTUhudndYK3RiMGhyQTk0V0FPTHVq?=
 =?utf-8?B?aTczVUtxbUhHY1ZVYWc1dUhnTVRwY3hUb0wwTzBZY003U2IxNzcvK3dBQ0k4?=
 =?utf-8?B?enVIalY5Z0x0Mkk5dk1UK0g1THAyVktBbXREQ1ZXa0lITmJlNDVTdUxibWZF?=
 =?utf-8?B?OEhEK1FDdVNPMk9vKzJjOUJCWGVkNVFydjlEVGxycWJrQkVMUlhWdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5c62659c-76e7-47c0-330f-08de698bfb66
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 16:38:27.5393
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: xypUaM+eY8+xRkWBGdbfJbgGk+zv/CxVTzja2KUipc3cclTHdgq9H+cymd7OssTJ68kW+G56+2cHigK5sDXqQw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB8016

On Wed, Feb 11, 2026 at 10:50:21AM +0000, Frediano Ziglio wrote:
> On Tue, 13 Jan 2026 at 11:54, Frediano Ziglio <freddy77@gmail.com> wrote:
> >
> > On Tue, 18 Nov 2025 at 10:44, Frediano Ziglio <freddy77@gmail.com> wrote:
> > >
> > > > > Newer compiler can put some constant strings inside constant
> > > > > sections (.rodata.cstXX) instead of string sections (.rodata.str1.XX).
> > > > > This causes the produced live patch to not apply when such
> > > > > strings are produced.
> > > > > So treat the constant sections as string ones.
> > > > >
> > > > > Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
> > > >
> > > > Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> > > >
> > > > Thanks,
> > > > Ross
> > >
> > > Hi,
> > >   any update on this change? Could it be merged?
> > >
> >
> > Any update?
> >
> 
> This is the third time I ping this patch.
> Can somebody at least give me a reason why this is still pending?

I've pushed this, but I'm not a maintainer of
livepatch-build-tools.git.  I was expecting Ross to push the change,
but maybe he is not able to push to xenbits?

I don't mind picking those up, but I wasn't aware I should be on the
hook for them.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 16:51:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 16:51:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227955.1534326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDQf-0000Qr-QC; Wed, 11 Feb 2026 16:51:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227955.1534326; Wed, 11 Feb 2026 16: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 1vqDQf-0000Qk-Nc; Wed, 11 Feb 2026 16:51:05 +0000
Received: by outflank-mailman (input) for mailman id 1227955;
 Wed, 11 Feb 2026 16:51:04 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1vqDQe-0000Qe-Fx
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 16:51:04 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <cody.zuschlag@xenproject.org>) id 1vqDQe-003YpK-1G
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 16:51:04 +0000
Received: from mail-vk1-f170.google.com ([209.85.221.170])
 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 1vqDQd-003WfJ-2u
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 16:51:04 +0000
Received: by mail-vk1-f170.google.com with SMTP id
 71dfb90a1353d-56739adfa1aso1468865e0c.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 08:51:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@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:Cc:To:Subject:Message-ID:
	Date:From:MIME-Version; bh=AN2WkJyjZxzrinD9uQ/yNy7nxYJlJXpKROwP0CR2fGU=; b=ln
	KBDt113XjtiF4R+S5lr8BTP2k9FJRm6F8YbQXX9Nu1v9DkR+6GO4qK99J0Ls7YBNZhQeudXFeP33+
	DiUqmVdWRh2bT6r3IpE+M+Tf2EU0R1nHVwEW9DgrFcW0c3EBZyiIyZV9w/qRRZr/Tj7CEl3YzamMa
	vyG0hq/pxfTQc+0=;
X-Gm-Message-State: AOJu0YyQtGKLcyuMJC4khCzc9uq770vDuVq9BsZlShjrLQAbQyV3UY+K
	b21xsrgibPiMeENLv/+P4BCUusdX2M/DNuu/LtUFvurDf+bTBRexotPkmtYaAniFKnzZOPzSw+b
	H5H5MhJ/d4VY12jL6MPtBA5ZstjX6LhI=
X-Received: by 2002:a05:6122:2c07:b0:567:4c2b:832 with SMTP id
 71dfb90a1353d-5674c2b0d9dmr646064e0c.7.1770828663746; Wed, 11 Feb 2026
 08:51:03 -0800 (PST)
MIME-Version: 1.0
From: Cody Zuschlag <cody.zuschlag@xenproject.org>
Date: Wed, 11 Feb 2026 17:50:52 +0100
X-Gmail-Original-Message-ID: <CAJbE=KwQft3ngvJVyqg2v7G-R99fsiYQZQUbajOWhXsQcDssuQ@mail.gmail.com>
X-Gm-Features: AZwV_QjGCrl7sIoiwcOqBUhfHs2Wjwqx--g4Yo2KguLhHsYJUxQuv_Gi25ihHW4
Message-ID: <CAJbE=KwQft3ngvJVyqg2v7G-R99fsiYQZQUbajOWhXsQcDssuQ@mail.gmail.com>
Subject: [ANNOUNCEMENT] Xen stable branch support extended to 5 years of
 security support
To: xen-devel@lists.xenproject.org
Cc: xen-announce@lists.xenprojet.org
Content-Type: multipart/alternative; boundary="00000000000075fb52064a8f2d53"

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

Statement from the Xen Committers and Core Maintainers

TL;DR: All Xen releases will now have long-term support, with up to five
years of security support.

The Xen Committers and Core Maintainers have agreed to update the Xen
Project stable branch support policy to better align with common industry
expectations for long-term security maintenance.

Across open source infrastructure projects, a five-year security support
window is increasingly the norm, particularly in embedded and automotive
environments. Xen is already a strong fit in these domains, and clearer
long-term guarantees help downstreams plan with confidence.

Historically, Xen releases have received approximately 1.5 years of full
support, followed by security-only support up to 3 years total. With this
change, we are extending:

- Full support to 3 years
- Security support to 5 years total for each release

Effective immediately, the support policy is as follows:

Xen 4.20 and later
- 3 years of full support (bug fixes and security fixes)
- Followed by 2 years of security-only support
- For a total of 5 years of security support

Xen 4.17 to 4.19
- Security-only support up to a total of 5 years from original release
- No general bug-fix backports

This policy is being adopted as a baseline, and we will actively monitor
its impact on the stable and security maintenance effort. If experience
shows this model to be unsustainable or otherwise unworkable, the
Committers and Core Maintainers reserve the ability to revise the policy
with minimal disruption.

Because all Xen releases follow the same support timelines, we
intentionally avoid introducing LTS-branded branches. While the motivation
aligns with traditional LTS goals, using LTS terminology can imply that
only selected releases receive extended support. Our aim is consistent,
predictable security support across all releases.

This update strengthens Xen=E2=80=99s position in embedded and automotive u=
se
cases, while keeping the stable and security maintenance effort sustainable
and avoiding changes to release cadence.

The Xen Project website and documentation will be updated to reflect this
policy.
Cross-posted to xen-devel and xen-announce.

Very best regards,


Cody Zuschlag
Xen Project - Community Manager

--00000000000075fb52064a8f2d53
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Statement from the Xen Committers and Core Maintainer=
s<br><br>TL;DR: All Xen releases will now have long-term support, with up t=
o five years of security support.<br><br>The Xen Committers and Core Mainta=
iners have agreed to update the Xen Project stable branch support policy to=
 better align with common industry expectations for long-term security main=
tenance.<br><br>Across open source infrastructure projects, a five-year sec=
urity support window is increasingly the norm, particularly in embedded and=
 automotive environments. Xen is already a strong fit in these domains, and=
 clearer long-term guarantees help downstreams plan with confidence.<br><br=
>Historically, Xen releases have received approximately 1.5 years of full s=
upport, followed by security-only support up to 3 years total. With this ch=
ange, we are extending:<br><br>- Full support to 3 years<br>- Security supp=
ort to 5 years total for each release<br><br>Effective immediately, the sup=
port policy is as follows:<br><br>Xen 4.20 and later<br>- 3 years of full s=
upport (bug fixes and security fixes)<br>- Followed by 2 years of security-=
only support<br>- For a total of 5 years of security support<br><br>Xen 4.1=
7 to 4.19<br>- Security-only support up to a total of 5 years from original=
 release<br>- No general bug-fix backports<br><br>This policy is being adop=
ted as a baseline, and we will actively monitor its impact on the stable an=
d security maintenance effort. If experience shows this model to be unsusta=
inable or otherwise unworkable, the Committers and Core Maintainers reserve=
 the ability to revise the policy with minimal disruption.<br><br>Because a=
ll Xen releases follow the same support timelines, we intentionally avoid i=
ntroducing LTS-branded branches. While the motivation aligns with tradition=
al LTS goals, using LTS terminology can imply that only selected releases r=
eceive extended support. Our aim is consistent, predictable security suppor=
t across all releases.<br><br>This update strengthens Xen=E2=80=99s positio=
n in embedded and automotive use cases, while keeping the stable and securi=
ty maintenance effort sustainable and avoiding changes to release cadence.<=
br><br>The Xen Project website and documentation will be updated to reflect=
 this policy.</div><div>Cross-posted to xen-devel and xen-announce.</div><d=
iv><br></div><div>Very best regards,</div><div><br></div><div><div dir=3D"l=
tr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div dir=
=3D"ltr"><img src=3D"https://ci3.googleusercontent.com/mail-sig/AIorK4x5nkR=
DCOFJDJAv9aMXdZ0mghItsp3D36JrwBCQtitBSW_0NeDS6mBmJ2F4vZVE2oBOqnY6IaJUrl12">=
<br><div>Cody Zuschlag</div><div>Xen Project - Community Manager</div></div=
></div></div></div>

--00000000000075fb52064a8f2d53--


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:02:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:02:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227969.1534336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDbX-0002OZ-OE; Wed, 11 Feb 2026 17:02:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227969.1534336; Wed, 11 Feb 2026 17:02:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDbX-0002OS-LG; Wed, 11 Feb 2026 17:02:19 +0000
Received: by outflank-mailman (input) for mailman id 1227969;
 Wed, 11 Feb 2026 17: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=ZNQR=AP=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vqDbW-0002OM-8N
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:02:18 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 69372e4c-076b-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:02:16 +0100 (CET)
Received: from SN7PR04CA0189.namprd04.prod.outlook.com (2603:10b6:806:126::14)
 by IA1PR12MB8223.namprd12.prod.outlook.com (2603:10b6:208:3f3::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb
 2026 17:02:11 +0000
Received: from SA2PEPF00003AEB.namprd02.prod.outlook.com
 (2603:10b6:806:126:cafe::b1) by SN7PR04CA0189.outlook.office365.com
 (2603:10b6:806:126::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 17:01:59 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF00003AEB.mail.protection.outlook.com (10.167.248.11) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 17:02:10 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Feb
 2026 11:01:29 -0600
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 11 Feb 2026 11:01:28 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69372e4c-076b-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o1StyCJfOu1e6q5hgWQ+UIbPayiZ3Xo5piyGi3t11iBi0ZDbGCwgB3izoW0HWr5uoRj0l7hjcA+tUCaqdY3naEkIc33IOylA7c6N44oPBKVV9GDubV+vKFlFpMpsHiyxECKAVmUUzlmKRwC3LsCpF5hOf07kuhIe3+Udnk7RyUeUkdbp4Mjroqp+1lWqCUfMTaD5SaTcxanqtLNqbsNxU6inNAw++7bI37L28qIvntgZfZIaec3/w9FBtoQi/mIxP7AWApHY2q98P5VpFSIYSssNQcczFqVSCnxp+he/2DTD85iR+9b4zVfwjZKQ76ZorBEOfCZV9yICMq0zSRnExg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/aCm1TpIJjYd0leIOhN0/WRlXUcOWnbPdDL9kCWTj40=;
 b=cZHEb2krm2hzqFI0+uo6kCoJk3zSSe6vJe73l9+KGJYwPgweJkqeP0VuoNEpnKDPAQCprKbpkFdAG5EIu4n7i1qqgdJD0Dys/AFhEajRO1O3ZQ3Z9v5fGA8PzP2WhdWGtHkEog1U+cTEWLiFY2VlxjyGQasSkbkWPcQclvMS4ZjFoyc7Lb5lBIKVg+EEu87QHdWieQ7hvShDNgpOdm0eO9GbAbQ/hXTirt34zNscAYwARk/DnNDFFM8NDOkI3dCgaGUAiSvwbfL5fKUM/VkI2wnKFpM0LeQlhDCSux+QZfNWUWC+AicbxVdCEAhHBpi/jw5XMhXK5MyAi1a1ScVqXQ==
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=/aCm1TpIJjYd0leIOhN0/WRlXUcOWnbPdDL9kCWTj40=;
 b=tUDMuEpHJpdA63DmdIWcqebmYUM2cSINmrtG7RXT3seGz9v2YzkGyY2l76Vye5btEyt8SDJfLwF7yBOJDP5gzDCOrKi6o+bOm2wbwrwaRC8lSBgJC0TuvBF+qE1iXL4/Oecr1oHC+eM2m08IIzfprkcHq0XJPZ6AZTn5ioAw4v8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, 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: Put wait.c behind CONFIG_WAIT
Date: Wed, 11 Feb 2026 12:01:18 -0500
Message-ID: <20260211170118.109946-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AEB:EE_|IA1PR12MB8223:EE_
X-MS-Office365-Filtering-Correlation-Id: 759226ef-2d4f-478b-0941-08de698f4ba3
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?x0NcQmx5NHD31xg68RntltIAsFlMPUB7+HgjgB724K/mJKLIqtk6bDVWz/1+?=
 =?us-ascii?Q?9lD9Y8HvfTev3b0S1Nz7nsnfLFBpmdvfOpbIirAdSVmMVktaDPRAelmF5MZ6?=
 =?us-ascii?Q?fadzQquMfgvGetEE6sxk66GYdpWhQN8M5FDX+0fB0/d45t3t0rQyl9aSZO8M?=
 =?us-ascii?Q?9DD0ciSRUGVXLdvsYOyxKiYYnyHh97wvjwtjGnY2FwaeHDsDmBlAkL6EnxeB?=
 =?us-ascii?Q?itSNh8sHN5W6eqtl2nCSDvW+h1D+3uVtMC8SdxWA9eg2FPKctT4RwOo8tY9S?=
 =?us-ascii?Q?YesXkjETl/GERMZ9d4u+je2WFgiZ67z3R7zwVGfwF4f5AxdoWnbbd7RmY78f?=
 =?us-ascii?Q?VYsuln+eyaKBn2LNWrZG7qfhNq6i/T6Can+v2MES0cJ0Pp2YhW+xv03dNfVl?=
 =?us-ascii?Q?0erM7WSiT2Xah42+ian1117IGuxbv1yjoqyenZ3+71c+RUW83zQoansDfKdS?=
 =?us-ascii?Q?JmTqW2d7zHs95X6QAvXAagar0I7htmiDMg14u9OJCg4J9aMYwY9UuGoKUmdo?=
 =?us-ascii?Q?yanxCoD+t4xwrm5br9bMlJYL0QRk+KZl0O8s4wtyVV1Lpb/9pMCYOK/ZhjEl?=
 =?us-ascii?Q?iZhDOD2ilFy6BdP7pA+Rn8B0LsJzM/rOj6Srr8YdW3s2E8ZkXxkR8ULr8vVv?=
 =?us-ascii?Q?MdK/ZY3vy0b2wyWROon5AkSgiZuVPmxTZxgNqpqKGqRlIVLGR41orgd2e6cI?=
 =?us-ascii?Q?1DXL2Wc+MCFbdIWQ4aHAcFrXVobZvKawAZRNHA9dOTbQSLR1c1rsSkjDJKg0?=
 =?us-ascii?Q?4hpZvgObD8UuVdwRDDsYaT6KkBsW00MUw1rIKxc+aI9uM3uwPeVvP4/1+xzB?=
 =?us-ascii?Q?IbyvthWl8KRBHEhgmHHeQrqeyw9LPCd9ZirktSFOyUoh53ZkKdqFp972u0na?=
 =?us-ascii?Q?o/bq7pY/ZEUtM1uzuf/G6asSwV2EuAbS4NpSxpeb442eBLKWe2o+G0nv452u?=
 =?us-ascii?Q?Uwt9TILoCIbDDDgiakg2RG2TQA6+y1U8kdahII3QGa1ebp6xLnoDYGCc2biO?=
 =?us-ascii?Q?xKhJ+qsei/bsH79PsjK3YqFVeAFbNiPrnkT3kTRmTZ2abGotVVw2dQTdVaoH?=
 =?us-ascii?Q?or7Ycig7G9bm9DnJY3G2TAU1mmMinBa9F3mGl2T+gYbmXR3JpWuSI8yUSuUA?=
 =?us-ascii?Q?W7NS6MF/71irVIx/zgWVMsKYZv/QZTXGI5vNAzFKInw9MXbutTfKqYE2QNFr?=
 =?us-ascii?Q?Td4XR1D1xaPYNSchKxP2hQVfoqjyuI51PI6zlZIHQ2Ik2O9xijl/CXlgH3cY?=
 =?us-ascii?Q?0Cwn6383kwRd5PM1hWjW49RQzp2rQAAJk0zGJtoPKbjUb/EeKDzOdxqe9uVi?=
 =?us-ascii?Q?6jgnynsteY+lIpDX+ywlwICQEwtH5Ca6Dplril4IH9pfKpRcd7MR6Hb9CeVE?=
 =?us-ascii?Q?uFRWrq3OT7KB/+CW4rCtB/9FgmzpjDBD5FPkrtUPBt7QPrn0znle6M7qSd/n?=
 =?us-ascii?Q?3T/uvWEJ7sO925+TlnYjSb4OheEnpFkhnddNtpT8+YjuRHhHqYEvOBJPOmlQ?=
 =?us-ascii?Q?u63nvEXVebQ6lHkj0s90CgtSN4KWC90k9P5f/dNyABBt/zyx5yQ1/rjUPSBf?=
 =?us-ascii?Q?HGRmu7M8OzOaROEmMMMcXB1uWNGObBo6/ZrrPrrmWuvIpA+X8BUaLoHnmV1G?=
 =?us-ascii?Q?tz1LUNOpyMN3mCgMP2Qe2V2tdw/DySavWzmzVgmAgW5mTebam0KTzKAti9CH?=
 =?us-ascii?Q?bTTJ5g=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	J5qjQ7Uog/EUic5aPU1i9twgRT2dFpjy1aUGrhbUId9udBPMJct8gxb+Rq89RegCA6DsikbYuazr1JutYMZrV1Jlcj8ZIxpCI1eMh+RzcHIjUvdKE5GJqp7108AmfNwV48zA1WrgjIwWeB4GgVtwIbmkklVIFM0rjfrXX0eV+SBMOdRTtleWA/qtlE4F5VA3urx/z4g2IzlzkLzFP2mzJIN7MKMN0w9V6u0LzWkAU2GSIWB1KboDj+/Ph8hQF2hGu+Dxjb90lskey7H+XVJOxQXoLOr6jpJLhdBu9JX3RFLRe9e0YzFvyf/k9LPkRF2xWbM84in96nZbNL84/pPgxq7Ps1pmHkM9JEMp3JOCdbF0Me7f/uBRHWXLIgg/vjhV71nuVoiFL6J3d/KwZT87qihMDMNHoaButjoEbc+ZBXvIVeS/KeqNLxVLIyd3TQll
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 17:02:10.2713
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 759226ef-2d4f-478b-0941-08de698f4ba3
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AEB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8223

wait.c is only used by vm_event.c.  Make CONFIG_VM_EVENT select
CONFIG_WAIT, and use CONFIG_WAIT to control building it.

Provide stubs of functions called from common code.  entry.S needs an
ifdef to hide the symbol from the assembly.

Also conditionalize .waitqueue_vcpu in struct vcpu to save space.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
 xen/arch/x86/x86_64/entry.S |  2 ++
 xen/common/Kconfig          |  4 ++++
 xen/common/Makefile         |  2 +-
 xen/include/xen/sched.h     |  2 ++
 xen/include/xen/wait.h      | 11 +++++++++--
 5 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index ca446c6ff0..adb570c07e 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -664,7 +664,9 @@ FUNC(continue_pv_domain)
         ALTERNATIVE "", "mov $2, %eax; incsspd %eax", X86_FEATURE_XEN_SHSTK
 #endif
 
+#ifdef CONFIG_WAIT
         call  check_wakeup_from_wait
+#endif
 ret_from_intr:
         GET_CURRENT(bx)
         testb $3, UREGS_cs(%rsp)
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index d7e79e752a..ab3f24cb4f 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -173,10 +173,14 @@ config HAS_VMAP
 config LIBFDT
 	bool
 
+config WAIT
+	bool
+
 config VM_EVENT
 	bool "Memory Access and VM events"
 	depends on HVM
 	default X86
+	select WAIT
 	help
 
 	  Framework to configure memory access types for guests and receive
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 4fc0c15088..ef2c5ddd4e 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -61,7 +61,7 @@ obj-y += virtual_region.o
 obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-$(CONFIG_HAS_VMAP) += vmap.o
 obj-y += vsprintf.o
-obj-y += wait.o
+obj-$(CONFIG_WAIT) += wait.o
 obj-bin-y += warning.init.o
 obj-y += xmalloc_tlsf.o
 
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1268632344..f232f2731e 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -293,7 +293,9 @@ struct vcpu
     /* Multicall information. */
     struct mc_state  mc_state;
 
+#ifdef CONFIG_WAIT
     struct waitqueue_vcpu *waitqueue_vcpu;
+#endif
 
     struct evtchn_fifo_vcpu *evtchn_fifo;
 
diff --git a/xen/include/xen/wait.h b/xen/include/xen/wait.h
index 1c68bc564b..d7d83adef1 100644
--- a/xen/include/xen/wait.h
+++ b/xen/include/xen/wait.h
@@ -49,11 +49,18 @@ do {                                            \
 } while (0)
 
 /* Private functions. */
-int init_waitqueue_vcpu(struct vcpu *v);
-void destroy_waitqueue_vcpu(struct vcpu *v);
 void prepare_to_wait(struct waitqueue_head *wq);
 void wait(void);
 void finish_wait(struct waitqueue_head *wq);
+
+#ifdef CONFIG_WAIT
+int init_waitqueue_vcpu(struct vcpu *v);
+void destroy_waitqueue_vcpu(struct vcpu *v);
 void check_wakeup_from_wait(void);
+#else
+static inline int init_waitqueue_vcpu(struct vcpu *v) { return 0; }
+static inline void destroy_waitqueue_vcpu(struct vcpu *v) {}
+static inline void check_wakeup_from_wait(void) {}
+#endif
 
 #endif /* __XEN_WAIT_H__ */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227991.1534345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDog-0004UH-3e; Wed, 11 Feb 2026 17:15:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227991.1534345; Wed, 11 Feb 2026 17: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 1vqDog-0004UA-0o; Wed, 11 Feb 2026 17:15:54 +0000
Received: by outflank-mailman (input) for mailman id 1227991;
 Wed, 11 Feb 2026 17:15: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDof-0004U4-3C
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:15:53 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 4e2adfb4-076d-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:15:47 +0100 (CET)
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 37D80339;
 Wed, 11 Feb 2026 09:15:40 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 775063F63F;
 Wed, 11 Feb 2026 09:15:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e2adfb4-076d-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 00/12] xen/arm: ffa: v1.2 improvements
Date: Wed, 11 Feb 2026 18:15:24 +0100
Message-ID: <cover.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series tightens Xen's FF-A mediator after the v1.2 enablement work,
focusing on correctness, validation, and diagnostics while keeping
existing v1.0/v1.1 guests working.

Hardening and validation (Patches 1-3):
  1) centralize endpoint lookup validation for messaging paths
  2) reject NS MEM_SHARE attributes and name normal memory encoding
  3) tighten MEM_SHARE page parsing with overflow/alignment checks

FF-A 1.2 support (Patch 4):
  4) accept 1.2 EMADs in MEM_SHARE and forward IMPDEF while allowing 1.1 layouts

Correctness fixes (Patches 5-9):
  5) avoid spurious SPMC RX releases on PARTINFO failures
  6) align RX/TX map descriptor layout and return NO_MEMORY on map failures
  7) deny RXTX_UNMAP while a VM owns the RX buffer and close the race
  8) validate FFA_FEATURES properties and gate ABIs, with RX_ACQUIRE workaround
  9) gate SEND2 SP support on RX_ACQUIRE

Code quality and diagnostics (Patches 10-12):
  10) reduce log noise and ratelimit expected failures
  11) add MEM_SHARE page diagnostics for malformed ranges and mapping issues
  12) add message parameter diagnostics for SEND2 and direct requests

Backward compatibility: v1.0/v1.1 guests continue to use their ABI unchanged;
v1.2 guests use EMADs and negotiated ABI features.

The implementation passes the FF-A Architecture Compliance Suite.

This serie was validated through gitlab-ci here:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/tree/ffa-v12-improve/v2
Build pipeline for the serie:
https://gitlab.com/xen-project/people/bmarquis/xen-ffa-research/-/pipelines/2319853458

Changes since v1:
- Handle review comments, details in each patch
- add Jens R-b on reviewed patches

Bertrand Marquis (12):
  xen/arm: ffa: Add endpoint lookup helper
  xen/arm: ffa: Fix MEM_SHARE NS attribute handling
  xen/arm: ffa: Harden shm page parsing
  xen/arm: ffa: Add FF-A 1.2 endpoint memory access descriptors
  xen/arm: ffa: Fix PARTINFO RX release errors
  xen/arm: ffa: Fix RX/TX map layout and errors
  xen/arm: ffa: Fix RXTX_UNMAP ownership race
  xen/arm: ffa: Fix FFA_FEATURES validation
  xen/arm: ffa: Fix SEND2 SP support gating
  xen/arm: ffa: Reduce logging noise
  xen/arm: ffa: Add MEM_SHARE page diagnostics
  xen/arm: ffa: Add message parameter diagnostics

 xen/arch/arm/tee/ffa.c          | 127 +++++++++++++++---
 xen/arch/arm/tee/ffa_msg.c      |  80 ++++++++---
 xen/arch/arm/tee/ffa_notif.c    |  11 +-
 xen/arch/arm/tee/ffa_partinfo.c |  29 ++--
 xen/arch/arm/tee/ffa_private.h  |  34 ++++-
 xen/arch/arm/tee/ffa_rxtx.c     |  80 +++++++++--
 xen/arch/arm/tee/ffa_shm.c      | 226 ++++++++++++++++++++++----------
 7 files changed, 450 insertions(+), 137 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227992.1534356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDon-0004jN-9s; Wed, 11 Feb 2026 17:16:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227992.1534356; Wed, 11 Feb 2026 17:16: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 1vqDon-0004jG-79; Wed, 11 Feb 2026 17:16:01 +0000
Received: by outflank-mailman (input) for mailman id 1227992;
 Wed, 11 Feb 2026 17:15: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDol-0004U4-TD
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:15:59 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 54b4f057-076d-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:15:58 +0100 (CET)
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 1DEE0339;
 Wed, 11 Feb 2026 09:15:51 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3A61E3F63F;
 Wed, 11 Feb 2026 09:15:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54b4f057-076d-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 01/12] xen/arm: ffa: Add endpoint lookup helper
Date: Wed, 11 Feb 2026 18:15:25 +0100
Message-ID: <6f3d7c8a34c5bf9c0b860bbc86859aa658a6bc92.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Direct messaging paths duplicate endpoint validation and RCU domain
lookup logic across multiple call sites, which makes the checks easy to
drift and complicates maintenance.

Introduce ffa_endpoint_domain_lookup() to centralize this logic. The
helper validates the endpoint ID (rejecting ID 0 for the hypervisor),
performs RCU domain lookup, ensures the domain is live and has an
initialized FF-A context with a negotiated version, and returns the
domain locked via RCU.

Switch ffa_msg_send2_vm() to use the helper, replacing its open-coded
validation sequence. This consolidates approximately 20 lines of
duplicated checks into a single call.

No functional changes.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- add Jens R-b
---
 xen/arch/arm/tee/ffa.c         | 45 ++++++++++++++++++++++++++++++++++
 xen/arch/arm/tee/ffa_msg.c     | 24 +++---------------
 xen/arch/arm/tee/ffa_private.h |  3 +++
 3 files changed, 51 insertions(+), 21 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index ed18e76080d0..6de2b9f8ac8e 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -433,6 +433,51 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     return true;
 }
 
+/*
+ * Look up a domain by its FF-A endpoint ID and validate it's ready for FF-A.
+ * Returns FFA_RET_OK on success with domain locked via RCU.
+ * Caller must call rcu_unlock_domain() when done.
+ *
+ * Validates:
+ * - endpoint_id is not 0 (the hypervisor)
+ * - domain exists and is live
+ * - domain has FF-A context initialized
+ * - domain has negotiated an FF-A version
+ */
+int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain **d_out,
+                                   struct ffa_ctx **ctx_out)
+{
+    struct domain *d;
+    struct ffa_ctx *ctx;
+    int err;
+
+    if ( endpoint_id == 0 )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    err = rcu_lock_live_remote_domain_by_id(endpoint_id - 1, &d);
+    if ( err )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    if ( !d->arch.tee )
+    {
+        rcu_unlock_domain(d);
+        return FFA_RET_INVALID_PARAMETERS;
+    }
+
+    ctx = d->arch.tee;
+    if ( !ACCESS_ONCE(ctx->guest_vers) )
+    {
+        rcu_unlock_domain(d);
+        return FFA_RET_INVALID_PARAMETERS;
+    }
+
+    *d_out = d;
+    if ( ctx_out )
+        *ctx_out = ctx;
+
+    return FFA_RET_OK;
+}
+
 static int ffa_domain_init(struct domain *d)
 {
     struct ffa_ctx *ctx;
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 4e26596461a9..10856fddcbc4 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -161,30 +161,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     struct ffa_part_msg_rxtx_1_2 *dst_msg;
     void *rx_buf;
     size_t rx_size;
-    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 ( !ACCESS_ONCE(dst_ctx->guest_vers) )
-    {
-        ret = FFA_RET_INVALID_PARAMETERS;
-        goto out_unlock;
-    }
+    ret = ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
+    if ( ret )
+        return ret;
 
     /* This also checks that destination has set a Rx buffer */
     ret = ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 282c105f3bce..cd7ecabc7eff 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -437,6 +437,9 @@ int32_t ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
 
+int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain **d_out,
+                                   struct ffa_ctx **ctx_out);
+
 bool ffa_rxtx_spmc_init(void);
 void ffa_rxtx_spmc_destroy(void);
 void *ffa_rxtx_spmc_rx_acquire(void);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227993.1534366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDop-0004yg-Gz; Wed, 11 Feb 2026 17:16:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227993.1534366; Wed, 11 Feb 2026 17:16:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDop-0004yP-DP; Wed, 11 Feb 2026 17:16:03 +0000
Received: by outflank-mailman (input) for mailman id 1227993;
 Wed, 11 Feb 2026 17:16: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDon-0004U4-AV
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:01 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 55995b5d-076d-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:15:59 +0100 (CET)
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 A21EB497;
 Wed, 11 Feb 2026 09:15:52 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BB1083F63F;
 Wed, 11 Feb 2026 09:15:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55995b5d-076d-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 02/12] xen/arm: ffa: Fix MEM_SHARE NS attribute handling
Date: Wed, 11 Feb 2026 18:15:26 +0100
Message-ID: <a1ad366eff0f0e41c8668ba13d42660c79405057.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The FF-A memory attribute encoding is currently a literal value (0x2f),
which makes reviews and validation harder. In addition, MEM_SHARE
accepts the NS (non-secure) attribute bit even though the normal world
must not set it according to FF-A specification.

Introduce named attribute bit masks and express FFA_NORMAL_MEM_REG_ATTR
in terms of them for clarity.

Reject MEM_SHARE descriptors with the NS bit set, returning
INVALID_PARAMETERS to match FF-A v1.1 rules that prohibit normal world
from setting this bit.

Functional impact: MEM_SHARE now rejects descriptors with NS bit set
with the right error code, INVALID_PARAMETER.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- Fix functional impact to mention the error code fix as the case was
  already filtered before but with a non spec compliant code
- Add Jens R-b
---
 xen/arch/arm/tee/ffa_private.h | 17 ++++++++++++++++-
 xen/arch/arm/tee/ffa_shm.c     |  6 ++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index cd7ecabc7eff..b625f1c72914 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -129,11 +129,26 @@
 #define FFA_HANDLE_HYP_FLAG             BIT(63, ULL)
 #define FFA_HANDLE_INVALID              0xffffffffffffffffULL
 
+/* NS attribute was introduced in v1.1 */
+#define FFA_MEM_ATTR_NS                 BIT(6, U)
+
+#define FFA_MEM_ATTR_TYPE_DEV           (1U << 3)
+#define FFA_MEM_ATTR_TYPE_MEM           (2U << 4)
+
+#define FFA_MEM_ATTR_NC                 (1U << 2)
+#define FFA_MEM_ATTR_WB                 (3U << 2)
+
+#define FFA_MEM_ATTR_NON_SHARE          (0U)
+#define FFA_MEM_ATTR_OUT_SHARE          (2U)
+#define FFA_MEM_ATTR_INN_SHARE          (3U)
+
 /*
  * Memory attributes: Normal memory, Write-Back cacheable, Inner shareable
  * Defined in FF-A-1.1-REL0 Table 10.18 at page 175.
  */
-#define FFA_NORMAL_MEM_REG_ATTR         0x2fU
+#define FFA_NORMAL_MEM_REG_ATTR         (FFA_MEM_ATTR_TYPE_MEM | \
+                                         FFA_MEM_ATTR_WB | \
+                                         FFA_MEM_ATTR_INN_SHARE)
 /*
  * Memory access permissions: Read-write
  * Defined in FF-A-1.1-REL0 Table 10.15 at page 168.
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 8282bacf85d3..90800e44a86a 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -512,6 +512,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( ret )
         goto out_unlock;
 
+    if ( trans.mem_reg_attr & FFA_MEM_ATTR_NS )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock;
+    }
+
     if ( trans.mem_reg_attr != FFA_NORMAL_MEM_REG_ATTR )
     {
         ret = FFA_RET_NOT_SUPPORTED;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227994.1534373 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDop-000528-Ui; Wed, 11 Feb 2026 17:16:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227994.1534373; Wed, 11 Feb 2026 17:16:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDop-00051c-MS; Wed, 11 Feb 2026 17:16:03 +0000
Received: by outflank-mailman (input) for mailman id 1227994;
 Wed, 11 Feb 2026 17:16: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDoo-0004tt-CH
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:02 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 56820d96-076d-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:16:01 +0100 (CET)
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 307D1339;
 Wed, 11 Feb 2026 09:15:54 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4BBCE3F63F;
 Wed, 11 Feb 2026 09:15:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56820d96-076d-11f1-b162-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 03/12] xen/arm: ffa: Harden shm page parsing
Date: Wed, 11 Feb 2026 18:15:27 +0100
Message-ID: <5189cce4272700616ff5a39870566abc72a1acd2.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

get_shm_pages() uses unchecked address arithmetic and does not enforce
alignment, so malformed descriptors can cause overflow or slip through
validation. The reclaim path also repeats handle-to-shm-mem conversion
in multiple places, duplicating error handling.

Harden page parsing and reclaim handling:
- add ffa_safe_addr_add() and use it to detect address overflows
- enforce alignment checks in get_shm_pages() and return FF-A errors
- introduce ffa_secure_reclaim() and use it for MEM_RECLAIM and teardown
- simplify ffa_mem_share() argument handling and allow max page count

While there rename ffa_mem_share to ffa_spmc_share and ffa_mem_reclaim
to ffa_spmc_reclaim to have coherent names with other parts of ffa
implementation for SMC wrappers to the SPMC.

Functional impact: invalid or misaligned memory ranges now fail earlier
with proper error codes; behavior for valid descriptors is unchanged.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- rename ffa_mem_share to ffa_spmc_share and ffa_mem_reclaim to
  ffa_spmc_reclaim
- remove unused frag_len
---
 xen/arch/arm/tee/ffa_private.h | 11 +++++++
 xen/arch/arm/tee/ffa_shm.c     | 60 ++++++++++++++++------------------
 2 files changed, 40 insertions(+), 31 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index b625f1c72914..58562d8e733c 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -632,4 +632,15 @@ static inline void ffa_uuid_set(struct ffa_uuid *id, uint32_t val0,
     id->val[1] = ((uint64_t)val3 << 32U) | val2;
 }
 
+/*
+ * Common overflow-safe helper to verify that adding a number of pages to an
+ * address will not wrap around.
+ */
+static inline bool ffa_safe_addr_add(uint64_t addr, uint64_t pages)
+{
+    uint64_t off = pages * FFA_PAGE_SIZE;
+
+    return (off / FFA_PAGE_SIZE) == pages && addr <= UINT64_MAX - off;
+}
+
 #endif /*__FFA_PRIVATE_H__*/
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 90800e44a86a..adc7e645a1c7 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -96,16 +96,14 @@ struct ffa_shm_mem {
     struct page_info *pages[];
 };
 
-static int32_t ffa_mem_share(uint32_t tot_len, uint32_t frag_len,
-                             register_t addr, uint32_t pg_count,
-                             uint64_t *handle)
+static int32_t ffa_spmc_share(uint32_t tot_len, uint64_t *handle)
 {
     struct arm_smccc_1_2_regs arg = {
         .a0 = FFA_MEM_SHARE_64,
         .a1 = tot_len,
-        .a2 = frag_len,
-        .a3 = addr,
-        .a4 = pg_count,
+        .a2 = tot_len,
+        .a3 = 0,
+        .a4 = 0,
     };
     struct arm_smccc_1_2_regs resp;
 
@@ -131,12 +129,16 @@ static int32_t ffa_mem_share(uint32_t tot_len, uint32_t frag_len,
     }
 }
 
-static int32_t ffa_mem_reclaim(uint32_t handle_lo, uint32_t handle_hi,
-                               uint32_t flags)
+static int32_t ffa_spmc_reclaim(struct ffa_shm_mem *shm, uint32_t flags)
 {
+    register_t handle_hi;
+    register_t handle_lo;
+
     if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
         return FFA_RET_NOT_SUPPORTED;
 
+    uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
+
     return ffa_simple_call(FFA_MEM_RECLAIM, handle_lo, handle_hi, flags, 0);
 }
 
@@ -145,7 +147,7 @@ static int32_t ffa_mem_reclaim(uint32_t handle_lo, uint32_t handle_hi,
  * this function fails then the caller is still expected to call
  * put_shm_pages() as a cleanup.
  */
-static int get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
+static int32_t get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
                          const struct ffa_address_range *range,
                          uint32_t range_count)
 {
@@ -156,17 +158,26 @@ static int get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
     p2m_type_t t;
     uint64_t addr;
     uint64_t page_count;
+    uint64_t gaddr;
 
     for ( n = 0; n < range_count; n++ )
     {
         page_count = ACCESS_ONCE(range[n].page_count);
         addr = ACCESS_ONCE(range[n].address);
+
+        if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
+            return FFA_RET_INVALID_PARAMETERS;
+
         for ( m = 0; m < page_count; m++ )
         {
             if ( pg_idx >= shm->page_count )
                 return FFA_RET_INVALID_PARAMETERS;
 
-            gfn = gaddr_to_gfn(addr + m * FFA_PAGE_SIZE);
+            if ( !ffa_safe_addr_add(addr, m) )
+                return FFA_RET_INVALID_PARAMETERS;
+
+            gaddr = addr + m * FFA_PAGE_SIZE;
+            gfn = gaddr_to_gfn(gaddr);
             shm->pages[pg_idx] = get_page_from_gfn(d, gfn_x(gfn), &t,
 						   P2M_ALLOC);
             if ( !shm->pages[pg_idx] )
@@ -180,7 +191,7 @@ static int get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
 
     /* The ranges must add up */
     if ( pg_idx < shm->page_count )
-            return FFA_RET_INVALID_PARAMETERS;
+        return FFA_RET_INVALID_PARAMETERS;
 
     return FFA_RET_OK;
 }
@@ -198,15 +209,11 @@ static void put_shm_pages(struct ffa_shm_mem *shm)
 
 static bool inc_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
 {
-    bool ret = true;
+    bool ret = false;
 
     spin_lock(&ctx->lock);
 
-    if ( ctx->shm_count >= FFA_MAX_SHM_COUNT )
-    {
-        ret = false;
-    }
-    else
+    if ( ctx->shm_count < FFA_MAX_SHM_COUNT )
     {
         /*
          * If this is the first shm added, increase the domain reference
@@ -217,6 +224,7 @@ static bool inc_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
             get_knownalive_domain(d);
 
         ctx->shm_count++;
+        ret = true;
     }
 
     spin_unlock(&ctx->lock);
@@ -251,7 +259,7 @@ static struct ffa_shm_mem *alloc_ffa_shm_mem(struct domain *d,
     struct ffa_ctx *ctx = d->arch.tee;
     struct ffa_shm_mem *shm;
 
-    if ( page_count >= FFA_MAX_SHM_PAGE_COUNT )
+    if ( page_count > FFA_MAX_SHM_PAGE_COUNT )
         return NULL;
     if ( !inc_ctx_shm_count(d, ctx) )
         return NULL;
@@ -297,7 +305,6 @@ static int share_shm(struct ffa_shm_mem *shm)
     struct ffa_address_range *addr_range;
     struct ffa_mem_region *region_descr;
     const unsigned int region_count = 1;
-    uint32_t frag_len;
     uint32_t tot_len;
     paddr_t last_pa;
     unsigned int n;
@@ -350,7 +357,6 @@ static int share_shm(struct ffa_shm_mem *shm)
     }
 
     addr_range = region_descr->address_range_array;
-    frag_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count, 1);
     last_pa = page_to_maddr(shm->pages[0]);
     init_range(addr_range, last_pa);
     for ( n = 1; n < shm->page_count; last_pa = pa, n++ )
@@ -362,12 +368,11 @@ static int share_shm(struct ffa_shm_mem *shm)
             continue;
         }
 
-        frag_len += sizeof(*addr_range);
         addr_range++;
         init_range(addr_range, pa);
     }
 
-    ret = ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
+    ret = ffa_spmc_share(tot_len, &shm->handle);
 
 out:
     ffa_rxtx_spmc_tx_release();
@@ -637,8 +642,6 @@ int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
     struct ffa_shm_mem *shm;
-    register_t handle_hi;
-    register_t handle_lo;
     int32_t ret;
 
     if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
@@ -652,8 +655,7 @@ int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
     if ( !shm )
         return FFA_RET_INVALID_PARAMETERS;
 
-    uint64_to_regpair(&handle_hi, &handle_lo, handle);
-    ret = ffa_mem_reclaim(handle_lo, handle_hi, flags);
+    ret = ffa_spmc_reclaim(shm, flags);
 
     if ( ret )
     {
@@ -677,11 +679,7 @@ bool ffa_shm_domain_destroy(struct domain *d)
 
     list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
     {
-        register_t handle_hi;
-        register_t handle_lo;
-
-        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
-        res = ffa_mem_reclaim(handle_lo, handle_hi, 0);
+        res = ffa_spmc_reclaim(shm, 0);
         switch ( res ) {
         case FFA_RET_OK:
             printk(XENLOG_G_DEBUG "%pd: ffa: Reclaimed handle %#lx\n",
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227996.1534386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDos-0005TZ-3a; Wed, 11 Feb 2026 17:16:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227996.1534386; Wed, 11 Feb 2026 17: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 1vqDos-0005TL-0k; Wed, 11 Feb 2026 17:16:06 +0000
Received: by outflank-mailman (input) for mailman id 1227996;
 Wed, 11 Feb 2026 17:16: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDoq-0004U4-JT
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:04 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 576c8058-076d-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:16:02 +0100 (CET)
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 BBD89497;
 Wed, 11 Feb 2026 09:15:55 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D0E933F63F;
 Wed, 11 Feb 2026 09:16:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 576c8058-076d-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory access descriptors
Date: Wed, 11 Feb 2026 18:15:28 +0100
Message-ID: <8ddb97095d8f7f4140e660d2ff13ec2ccc82cc62.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FF-A 1.2 extends the endpoint memory access descriptor (EMAD) from
16 to 32 bytes, adding implementation-defined (IMPDEF) fields and
reserved space. The MEM_SHARE path currently assumes the 1.1 EMAD
size and rejects the 1.2 layout.

Add FF-A 1.2 EMAD support to MEM_SHARE:
- define ffa_mem_access_1_2 and store IMPDEF payload in ffa_shm_mem
- emit 1.2 EMADs to the SPMC for FF-A 1.2 guests, forwarding IMPDEF
- refactor header parsing into read_mem_transaction() for 1.0/1.1+
- detect EMAD format by mem_access_size to allow 1.1 on 1.2 guests

Export ffa_fw_version to build memory descriptors according to the
firware version to relay share memory requests and remove unused offset
macros.

Functional impact: MEM_SHARE supports FF-A 1.2 EMADs.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- export ffa_fw_version and use it to construct descriptors according to
  firmware version
- remove unused offset macros
---
 xen/arch/arm/tee/ffa.c         |   2 +-
 xen/arch/arm/tee/ffa_private.h |   1 +
 xen/arch/arm/tee/ffa_shm.c     | 121 +++++++++++++++++++++++----------
 3 files changed, 87 insertions(+), 37 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 6de2b9f8ac8e..23e1f408485b 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -70,7 +70,7 @@
 #include "ffa_private.h"
 
 /* Negotiated FF-A version to use with the SPMC, 0 if not there or supported */
-static uint32_t __ro_after_init ffa_fw_version;
+uint32_t __ro_after_init ffa_fw_version;
 
 /* Features supported by the SPMC or secure world when present */
 DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 58562d8e733c..ccef2f7631f6 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -436,6 +436,7 @@ struct ffa_ctx {
 };
 
 extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
+extern uint32_t __ro_after_init ffa_fw_version;
 
 extern struct list_head ffa_ctx_head;
 extern rwlock_t ffa_ctx_list_rwlock;
diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index adc7e645a1c7..070babce9627 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -30,6 +30,14 @@ struct ffa_mem_access {
     uint64_t reserved;
 };
 
+/* Endpoint memory access descriptor (FF-A 1.2) */
+struct ffa_mem_access_1_2 {
+    struct ffa_mem_access_perm access_perm;
+    uint32_t region_offs;
+    uint8_t impdef[16];
+    uint8_t reserved[8];
+};
+
 /* Lend, donate or share memory transaction descriptor */
 struct ffa_mem_transaction_1_0 {
     uint16_t sender_id;
@@ -55,25 +63,10 @@ struct ffa_mem_transaction_1_1 {
     uint8_t reserved[12];
 };
 
-/* Calculate offset of struct ffa_mem_access from start of buffer */
-#define MEM_ACCESS_OFFSET(access_idx) \
-    ( sizeof(struct ffa_mem_transaction_1_1) + \
-      ( access_idx ) * sizeof(struct ffa_mem_access) )
-
-/* Calculate offset of struct ffa_mem_region from start of buffer */
-#define REGION_OFFSET(access_count, region_idx) \
-    ( MEM_ACCESS_OFFSET(access_count) + \
-      ( region_idx ) * sizeof(struct ffa_mem_region) )
-
-/* Calculate offset of struct ffa_address_range from start of buffer */
-#define ADDR_RANGE_OFFSET(access_count, region_count, range_idx) \
-    ( REGION_OFFSET(access_count, region_count) + \
-      ( range_idx ) * sizeof(struct ffa_address_range) )
-
 /*
  * The parts needed from struct ffa_mem_transaction_1_0 or struct
  * ffa_mem_transaction_1_1, used to provide an abstraction of difference in
- * data structures between version 1.0 and 1.1. This is just an internal
+ * data structures between version 1.0 and 1.2. This is just an internal
  * interface and can be changed without changing any ABI.
  */
 struct ffa_mem_transaction_int {
@@ -92,6 +85,8 @@ struct ffa_shm_mem {
     uint16_t sender_id;
     uint16_t ep_id;     /* endpoint, the one lending */
     uint64_t handle;    /* FFA_HANDLE_INVALID if not set yet */
+    /* Endpoint memory access descriptor IMPDEF value (FF-A 1.2). */
+    uint64_t impdef[2];
     unsigned int page_count;
     struct page_info *pages[];
 };
@@ -297,16 +292,20 @@ static void init_range(struct ffa_address_range *addr_range,
  * This function uses the ffa_spmc tx buffer to transmit the memory transaction
  * descriptor.
  */
-static int share_shm(struct ffa_shm_mem *shm)
+static int share_shm(struct ffa_shm_mem *shm, uint32_t ffa_vers)
 {
     const uint32_t max_frag_len = FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE;
     struct ffa_mem_access *mem_access_array;
+    struct ffa_mem_access_1_2 *mem_access_array_1_2;
     struct ffa_mem_transaction_1_1 *descr;
     struct ffa_address_range *addr_range;
     struct ffa_mem_region *region_descr;
-    const unsigned int region_count = 1;
     uint32_t tot_len;
+    uint32_t mem_access_size;
+    uint32_t mem_access_offs;
+    uint32_t region_offs;
     paddr_t last_pa;
+    uint32_t range_count;
     unsigned int n;
     paddr_t pa;
     int32_t ret;
@@ -325,16 +324,35 @@ static int share_shm(struct ffa_shm_mem *shm)
     descr->handle = shm->handle;
     descr->mem_reg_attr = FFA_NORMAL_MEM_REG_ATTR;
     descr->mem_access_count = 1;
-    descr->mem_access_size = sizeof(*mem_access_array);
-    descr->mem_access_offs = MEM_ACCESS_OFFSET(0);
+    if ( ffa_vers >= FFA_VERSION_1_2 )
+        mem_access_size = sizeof(struct ffa_mem_access_1_2);
+    else
+        mem_access_size = sizeof(struct ffa_mem_access);
+    mem_access_offs = sizeof(struct ffa_mem_transaction_1_1);
+    region_offs = mem_access_offs + mem_access_size;
+    descr->mem_access_size = mem_access_size;
+    descr->mem_access_offs = mem_access_offs;
 
-    mem_access_array = buf + descr->mem_access_offs;
-    memset(mem_access_array, 0, sizeof(*mem_access_array));
-    mem_access_array[0].access_perm.endpoint_id = shm->ep_id;
-    mem_access_array[0].access_perm.perm = FFA_MEM_ACC_RW;
-    mem_access_array[0].region_offs = REGION_OFFSET(descr->mem_access_count, 0);
+    if ( ffa_vers >= FFA_VERSION_1_2 )
+    {
+        mem_access_array_1_2 = buf + mem_access_offs;
+        memset(mem_access_array_1_2, 0, sizeof(*mem_access_array_1_2));
+        mem_access_array_1_2[0].access_perm.endpoint_id = shm->ep_id;
+        mem_access_array_1_2[0].access_perm.perm = FFA_MEM_ACC_RW;
+        mem_access_array_1_2[0].region_offs = region_offs;
+        memcpy(mem_access_array_1_2[0].impdef, shm->impdef,
+               sizeof(mem_access_array_1_2[0].impdef));
+    }
+    else
+    {
+        mem_access_array = buf + mem_access_offs;
+        memset(mem_access_array, 0, sizeof(*mem_access_array));
+        mem_access_array[0].access_perm.endpoint_id = shm->ep_id;
+        mem_access_array[0].access_perm.perm = FFA_MEM_ACC_RW;
+        mem_access_array[0].region_offs = region_offs;
+    }
 
-    region_descr = buf + mem_access_array[0].region_offs;
+    region_descr = buf + region_offs;
     memset(region_descr, 0, sizeof(*region_descr));
     region_descr->total_page_count = shm->page_count;
 
@@ -348,8 +366,9 @@ static int share_shm(struct ffa_shm_mem *shm)
         region_descr->address_range_count++;
     }
 
-    tot_len = ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
-                                region_descr->address_range_count);
+    range_count = region_descr->address_range_count;
+    tot_len = region_offs + sizeof(*region_descr) +
+              range_count * sizeof(struct ffa_address_range);
     if ( tot_len > max_frag_len )
     {
         ret = FFA_RET_NOT_SUPPORTED;
@@ -445,6 +464,12 @@ static int read_mem_transaction(uint32_t ffa_vers, const void *buf, size_t blen,
     if ( size * count + offs > blen )
         return FFA_RET_INVALID_PARAMETERS;
 
+    if ( size < sizeof(struct ffa_mem_access) )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    if ( offs & 0xF )
+        return FFA_RET_INVALID_PARAMETERS;
+
     trans->mem_reg_attr = mem_reg_attr;
     trans->flags = flags;
     trans->mem_access_size = size;
@@ -461,7 +486,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     uint64_t addr = get_user_reg(regs, 3);
     uint32_t page_count = get_user_reg(regs, 4);
     const struct ffa_mem_region *region_descr;
-    const struct ffa_mem_access *mem_access;
+    const struct ffa_mem_access_1_2 *mem_access;
     struct ffa_mem_transaction_int trans;
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
@@ -471,9 +496,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     register_t handle_hi = 0;
     register_t handle_lo = 0;
     int ret = FFA_RET_DENIED;
+    uint32_t ffa_vers;
     uint32_t range_count;
     uint32_t region_offs;
     uint16_t dst_id;
+    uint8_t perm;
+    uint64_t impdef[2];
 
     if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
     {
@@ -512,8 +540,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( frag_len > tx_size )
         goto out_unlock;
 
-    ret = read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), tx_buf,
-                               frag_len, &trans);
+    ffa_vers = ACCESS_ONCE(ctx->guest_vers);
+    ret = read_mem_transaction(ffa_vers, tx_buf, frag_len, &trans);
     if ( ret )
         goto out_unlock;
 
@@ -542,13 +570,35 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
     }
 
+    if ( trans.mem_access_size < sizeof(struct ffa_mem_access) )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out_unlock;
+    }
+
     /* Check that it fits in the supplied data */
     if ( trans.mem_access_offs + trans.mem_access_size > frag_len )
         goto out_unlock;
 
     mem_access = tx_buf + trans.mem_access_offs;
-
     dst_id = ACCESS_ONCE(mem_access->access_perm.endpoint_id);
+    perm = ACCESS_ONCE(mem_access->access_perm.perm);
+    region_offs = ACCESS_ONCE(mem_access->region_offs);
+
+    /*
+     * FF-A 1.2 introduced an extended mem_access descriptor with impdef
+     * fields, but guests can still use the 1.1 format if they don't need
+     * implementation-defined data. Detect which format is used based on
+     * the mem_access_size field rather than the negotiated FF-A version.
+     */
+    if ( trans.mem_access_size >= sizeof(struct ffa_mem_access_1_2) )
+        memcpy(impdef, mem_access->impdef, sizeof(impdef));
+    else
+    {
+        impdef[0] = 0;
+        impdef[1] = 0;
+    }
+
     if ( !FFA_ID_IS_SECURE(dst_id) )
     {
         /* we do not support sharing with VMs */
@@ -556,13 +606,11 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
         goto out_unlock;
     }
 
-    if ( ACCESS_ONCE(mem_access->access_perm.perm) != FFA_MEM_ACC_RW )
+    if ( perm != FFA_MEM_ACC_RW )
     {
         ret = FFA_RET_NOT_SUPPORTED;
         goto out_unlock;
     }
-
-    region_offs = ACCESS_ONCE(mem_access->region_offs);
     if ( sizeof(*region_descr) + region_offs > frag_len )
     {
         ret = FFA_RET_NOT_SUPPORTED;
@@ -587,6 +635,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     }
     shm->sender_id = trans.sender_id;
     shm->ep_id = dst_id;
+    memcpy(shm->impdef, impdef, sizeof(shm->impdef));
 
     /*
      * Check that the Composite memory region descriptor fits.
@@ -602,7 +651,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
     if ( ret )
         goto out;
 
-    ret = share_shm(shm);
+    ret = share_shm(shm, ffa_fw_version);
     if ( ret )
         goto out;
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227997.1534396 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDot-0005l5-H1; Wed, 11 Feb 2026 17:16:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227997.1534396; Wed, 11 Feb 2026 17: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 1vqDot-0005kL-Ch; Wed, 11 Feb 2026 17:16:07 +0000
Received: by outflank-mailman (input) for mailman id 1227997;
 Wed, 11 Feb 2026 17: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDoq-0004tt-My
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:04 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 583ec24c-076d-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:16:04 +0100 (CET)
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 1F660339;
 Wed, 11 Feb 2026 09:15:57 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 63DC63F63F;
 Wed, 11 Feb 2026 09:16:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 583ec24c-076d-11f1-b162-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 05/12] xen/arm: ffa: Fix PARTINFO RX release errors
Date: Wed, 11 Feb 2026 18:15:29 +0100
Message-ID: <bbeacc8812adc7ebffe58d7d7a3b0434b13da7c4.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

On PARTITION_INFO_GET error paths, Xen unconditionally called
FFA_RX_RELEASE for the SPMC RX buffer. If the SPMC didn't grant RX
ownership (i.e., the call failed early), this issues a spurious release
that returns DENIED and produces warnings.

Modify ffa_rxtx_spmc_rx_release() to return the release status and let
callers choose whether to log it. Only issue FFA_RX_RELEASE after a
successful PARTINFO SMC, while always releasing the local RX lock to
avoid deadlocks.

Update handle_partition_info_get() to only release the SPMC RX buffer
after successful fw_ret checks, and ignore release errors during the
error path.

Functional impact: eliminates spurious FFA_RX_RELEASE calls and
associated DENIED warnings when PARTITION_INFO_GET fails before
obtaining SPMC RX buffer ownership.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- Rename spmc_ok to notify_fw
- Add Jens R-b
---
 xen/arch/arm/tee/ffa_partinfo.c | 14 ++++++++++++--
 xen/arch/arm/tee/ffa_private.h  |  2 +-
 xen/arch/arm/tee/ffa_rxtx.c     | 14 +++++++++-----
 3 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index bf906ed0c88f..015097bd4d2a 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -92,9 +92,11 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
                                    uint32_t dst_size)
 {
     int32_t ret;
+    int32_t release_ret;
     uint32_t src_size, real_sp_count;
     void *src_buf;
     uint32_t count = 0;
+    bool notify_fw = false;
 
     /* We need to use the RX buffer to receive the list */
     src_buf = ffa_rxtx_spmc_rx_acquire();
@@ -104,6 +106,7 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
     ret = ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
     if ( ret )
         goto out;
+    notify_fw = true;
 
     /* Validate the src_size we got */
     if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
@@ -157,7 +160,10 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
     *sp_count = count;
 
 out:
-    ffa_rxtx_spmc_rx_release();
+    release_ret = ffa_rxtx_spmc_rx_release(notify_fw);
+    if ( release_ret )
+        gprintk(XENLOG_WARNING,
+                "ffa: Error releasing SPMC RX buffer: %d\n", release_ret);
     return ret;
 }
 
@@ -507,6 +513,7 @@ bool ffa_partinfo_init(void)
     int32_t e;
     void *spmc_rx;
     struct ffa_uuid nil_uuid = { .val = { 0ULL, 0ULL } };
+    bool notify_fw = false;
 
     if ( !ffa_fw_supports_fid(FFA_PARTITION_INFO_GET) ||
          !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32))
@@ -522,6 +529,7 @@ bool ffa_partinfo_init(void)
         printk(XENLOG_ERR "ffa: Failed to get list of SPs: %d\n", e);
         goto out;
     }
+    notify_fw = true;
 
     if ( count >= FFA_MAX_NUM_SP )
     {
@@ -533,7 +541,9 @@ bool ffa_partinfo_init(void)
     ret = init_subscribers(spmc_rx, count, fpi_size);
 
 out:
-    ffa_rxtx_spmc_rx_release();
+    e = ffa_rxtx_spmc_rx_release(notify_fw);
+    if ( e )
+        printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n", e);
     return ret;
 }
 
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index ccef2f7631f6..1a632983c860 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -459,7 +459,7 @@ int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain **d_out,
 bool ffa_rxtx_spmc_init(void);
 void ffa_rxtx_spmc_destroy(void);
 void *ffa_rxtx_spmc_rx_acquire(void);
-void ffa_rxtx_spmc_rx_release(void);
+int32_t ffa_rxtx_spmc_rx_release(bool notify_fw);
 void *ffa_rxtx_spmc_tx_acquire(void);
 void ffa_rxtx_spmc_tx_release(void);
 
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 7d8bb4f4d031..50758fb57cdf 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -375,18 +375,22 @@ void *ffa_rxtx_spmc_rx_acquire(void)
     return NULL;
 }
 
-void ffa_rxtx_spmc_rx_release(void)
+int32_t ffa_rxtx_spmc_rx_release(bool notify_fw)
 {
     int32_t ret;
 
     ASSERT(spin_is_locked(&ffa_spmc_rx_lock));
 
-    /* Inform the SPMC that we are done with our RX buffer */
-    ret = ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
-    if ( ret != FFA_RET_OK )
-        printk(XENLOG_DEBUG "Error releasing SPMC RX buffer: %d\n", ret);
+    if ( notify_fw )
+    {
+        /* Inform the SPMC that we are done with our RX buffer */
+        ret = ffa_simple_call(FFA_RX_RELEASE, 0, 0, 0, 0);
+    }
+    else
+        ret = FFA_RET_OK;
 
     spin_unlock(&ffa_spmc_rx_lock);
+    return ret;
 }
 
 void *ffa_rxtx_spmc_tx_acquire(void)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227998.1534406 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDou-00061R-RU; Wed, 11 Feb 2026 17:16:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227998.1534406; Wed, 11 Feb 2026 17:16: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 1vqDou-0005zv-MQ; Wed, 11 Feb 2026 17:16:08 +0000
Received: by outflank-mailman (input) for mailman id 1227998;
 Wed, 11 Feb 2026 17:16: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDot-0004U4-1Z
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 590bddd8-076d-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:16:05 +0100 (CET)
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 7DD33143D;
 Wed, 11 Feb 2026 09:15:58 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CC05D3F63F;
 Wed, 11 Feb 2026 09:16:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 590bddd8-076d-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 06/12] xen/arm: ffa: Fix RX/TX map layout and errors
Date: Wed, 11 Feb 2026 18:15:30 +0100
Message-ID: <c4a807f6de112e25f71ef6230079d5061f82a627.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FFA_RXTX_MAP builds a descriptor for the SPMC and the composite region
offsets must be 8-byte aligned. Xen currently uses a 12-byte header
size, which produces misaligned RX/TX offsets. Mapping failures also
return INVALID_PARAMETERS even when the failure is due to resource
exhaustion, which misreports the error condition.

Round the descriptor header size up to 8 bytes before placing the RX
region and derive the TX offset from the aligned RX offset. Return
FFA_RET_NO_MEMORY when the TX or RX buffer mapping fails before the
error paths unwind.

Functional impact: RXTX_MAP now returns NO_MEMORY on mapping failures
and the SPMC receives an aligned RX/TX descriptor layout.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- add Jens R-b
---
 xen/arch/arm/tee/ffa_rxtx.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index 50758fb57cdf..eff95a7955d7 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -119,11 +119,17 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 
     tx = __map_domain_page_global(tx_pg);
     if ( !tx )
+    {
+        ret = FFA_RET_NO_MEMORY;
         goto err_put_rx_pg;
+    }
 
     rx = __map_domain_page_global(rx_pg);
     if ( !rx )
+    {
+        ret = FFA_RET_NO_MEMORY;
         goto err_unmap_tx;
+    }
 
     /*
      * Transmit the RX/TX buffer information to the SPM if acquire is supported
@@ -136,7 +142,8 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
         struct ffa_mem_region *mem_reg;
 
         /* All must fit in our TX buffer */
-        BUILD_BUG_ON(sizeof(*rxtx_desc) + sizeof(*mem_reg) * 2 +
+        BUILD_BUG_ON(ROUNDUP(sizeof(*rxtx_desc), 8) +
+                     sizeof(*mem_reg) * 2 +
                      sizeof(struct ffa_address_range) * 2 >
                      FFA_MAX_RXTX_PAGE_COUNT * FFA_PAGE_SIZE);
 
@@ -153,8 +160,8 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
          */
         rxtx_desc->sender_id = ffa_get_vm_id(d);
         rxtx_desc->reserved = 0;
-        rxtx_desc->rx_region_offs = sizeof(*rxtx_desc);
-        rxtx_desc->tx_region_offs = sizeof(*rxtx_desc) +
+        rxtx_desc->rx_region_offs = ROUNDUP(sizeof(*rxtx_desc), 8);
+        rxtx_desc->tx_region_offs = rxtx_desc->rx_region_offs +
                                     offsetof(struct ffa_mem_region,
                                              address_range_array[1]);
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1227999.1534411 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDov-00065O-6i; Wed, 11 Feb 2026 17:16:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1227999.1534411; Wed, 11 Feb 2026 17:16: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 1vqDou-00063n-Us; Wed, 11 Feb 2026 17:16:08 +0000
Received: by outflank-mailman (input) for mailman id 1227999;
 Wed, 11 Feb 2026 17:16: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDot-0004tt-Jc
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:07 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 59f2c27a-076d-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:16:06 +0100 (CET)
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 030DF339;
 Wed, 11 Feb 2026 09:16:00 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2857D3F63F;
 Wed, 11 Feb 2026 09:16:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 59f2c27a-076d-11f1-b162-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 07/12] xen/arm: ffa: Fix RXTX_UNMAP ownership race
Date: Wed, 11 Feb 2026 18:15:31 +0100
Message-ID: <cbe45740ea22b7d49fbaf45585acc6a8cc8866d8.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

rxtx_unmap() checks RX ownership without holding the RX/TX locks and
only enforces the ownership rule when FFA_RX_ACQUIRE is supported. This
allows a vCPU to acquire RX between the check and unmap, and it lets
RXTX_UNMAP proceed while RX is owned when buffers are not forwarded to
firmware.

Hold rx_lock/tx_lock across the ownership check and unmap, and deny
RXTX_UNMAP whenever RX is owned, independent of RX_ACQUIRE support. For
teardown, release RX ownership under the same lock window; use
FFA_RX_RELEASE directly because rx_lock is held, and clear the local
flag when the firmware path is unavailable.

Functional impact: RXTX_UNMAP now reliably returns DENIED while RX is
owned, and teardown releases/clears ownership without a race.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- Remove marking rx buffer as free during teardown as it is useless
- Add a comment when calling rxtx_unmap during teardown to remind code
  readers that true is for teardown mode
---
 xen/arch/arm/tee/ffa_rxtx.c | 32 +++++++++++++++++++++++++++++---
 1 file changed, 29 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index eff95a7955d7..c4fc4c4934af 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -220,7 +220,7 @@ err_unlock_rxtx:
     return ret;
 }
 
-static int32_t rxtx_unmap(struct domain *d)
+static int32_t rxtx_unmap(struct domain *d, bool teardown)
 {
     struct ffa_ctx *ctx = d->arch.tee;
     int32_t ret = FFA_RET_OK;
@@ -234,6 +234,32 @@ static int32_t rxtx_unmap(struct domain *d)
         goto err_unlock_rxtx;
     }
 
+    if ( !ctx->rx_is_free )
+    {
+        if ( teardown )
+        {
+            if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
+            {
+                int32_t rel_ret;
+
+                /* Can't use ffa_rx_release() while holding rx_lock. */
+                rel_ret = ffa_simple_call(FFA_RX_RELEASE, ctx->ffa_id,
+                                          0, 0, 0);
+                if ( rel_ret )
+                    gdprintk(XENLOG_DEBUG,
+                             "ffa: RX release during teardown failed: %d\n",
+                             rel_ret);
+            }
+        }
+        else
+        {
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: RXTX_UNMAP denied, RX buffer owned by VM\n");
+            ret = FFA_RET_DENIED;
+            goto err_unlock_rxtx;
+        }
+    }
+
     if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
     {
         ret = ffa_rxtx_unmap(ffa_get_vm_id(d));
@@ -261,7 +287,7 @@ err_unlock_rxtx:
 
 int32_t ffa_handle_rxtx_unmap(void)
 {
-    return rxtx_unmap(current->domain);
+    return rxtx_unmap(current->domain, false);
 }
 
 int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
@@ -369,7 +395,7 @@ int32_t ffa_rxtx_domain_init(struct domain *d)
 
 void ffa_rxtx_domain_destroy(struct domain *d)
 {
-    rxtx_unmap(d);
+    rxtx_unmap(d, true /* teardown */);
 }
 
 void *ffa_rxtx_spmc_rx_acquire(void)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228001.1534424 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDow-0006TW-Jn; Wed, 11 Feb 2026 17:16:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228001.1534424; Wed, 11 Feb 2026 17:16: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 1vqDow-0006T2-Fd; Wed, 11 Feb 2026 17:16:10 +0000
Received: by outflank-mailman (input) for mailman id 1228001;
 Wed, 11 Feb 2026 17:16: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDov-0004tt-KN
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:09 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5aecf9a9-076d-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:16:08 +0100 (CET)
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 88A52143D;
 Wed, 11 Feb 2026 09:16:01 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A31B43F63F;
 Wed, 11 Feb 2026 09:16:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5aecf9a9-076d-11f1-b162-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
Date: Wed, 11 Feb 2026 18:15:32 +0100
Message-ID: <d76dceb237df9fec6f27b7860959b6910351ab1e.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FFA_FEATURES advertises several ABIs unconditionally, even when firmware
support is missing or when the ABI is physical-instance-only. This can
mislead guests about what Xen can actually provide and violates FF-A
calling conventions. Some SPMCs (Hafnium v2.14 or earlier) also fail to
report FFA_RX_ACQUIRE despite supporting it.

Update FFA_FEATURES validation to match spec and firmware support:
- do no check w2-w7 input registers during FFA_FEATURES as they are
  flagged Should Be Zero by the FF-A specification or are not used by
  the calls we support.
- reject 64-bit calling conventions from 32-bit guests with NOT_SUPPORTED
- return NOT_SUPPORTED for physical-instance-only ABIs
(FFA_NOTIFICATION_BITMAP_{CREATE,DESTROY}, FFA_RX_ACQUIRE)
- advertise FFA_INTERRUPT as supported
- gate message ABIs on firmware support:
- FFA_MSG_SEND_DIRECT_REQ_{32,64}
- FFA_MSG_SEND_DIRECT_REQ2 (also requires FF-A 1.2 negotiation)
- FFA_MSG_SEND2 (or VM-to-VM enabled)
- report MEM_SHARE_{32,64} only when FFA_MEM_SHARE_64 is supported
- stop advertising FFA_MSG_YIELD (not implemented)

Update firmware probing: drop FFA_MEM_SHARE_32 checks (deprecated) and
add FFA_RX_ACQUIRE to the probed set. If FFA_MSG_SEND2 is reported but
FFA_RX_ACQUIRE is not, assume RX_ACQUIRE support and warn to work
around the Hafnium bug.

Functional impact: guests now see ABI support that reflects firmware
capabilities and Xen implementation status. When SEND2 is present but
RX_ACQUIRE is not reported, Xen assumes RX_ACQUIRE support.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- remove completely w2-w7 checking as those are SBZ in the spec or
  unused by xen
---
 xen/arch/arm/tee/ffa.c | 63 +++++++++++++++++++++++++++++++++---------
 1 file changed, 50 insertions(+), 13 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index 23e1f408485b..cb8cd95fdafa 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -91,10 +91,10 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] = {
     FW_ABI(FFA_PARTITION_INFO_GET),
     FW_ABI(FFA_NOTIFICATION_INFO_GET_64),
     FW_ABI(FFA_NOTIFICATION_GET),
+    FW_ABI(FFA_RX_ACQUIRE),
     FW_ABI(FFA_RX_RELEASE),
     FW_ABI(FFA_RXTX_MAP_64),
     FW_ABI(FFA_RXTX_UNMAP),
-    FW_ABI(FFA_MEM_SHARE_32),
     FW_ABI(FFA_MEM_SHARE_64),
     FW_ABI(FFA_MEM_RECLAIM),
     FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
@@ -238,21 +238,30 @@ static void handle_features(struct cpu_user_regs *regs)
     uint32_t a1 = get_user_reg(regs, 1);
     struct domain *d = current->domain;
     struct ffa_ctx *ctx = d->arch.tee;
-    unsigned int n;
 
-    for ( n = 2; n <= 7; n++ )
+    /*
+     * FFA_FEATURES defines w2 as input properties only for specific
+     * function IDs and reserves w3-w7 as SBZ. Xen does not currently
+     * implement any feature that consumes w2, so ignore extra inputs.
+     */
+    if ( !is_64bit_domain(d) && smccc_is_conv_64(a1) )
     {
-        if ( get_user_reg(regs, n) )
-        {
-            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
-            return;
-        }
+        /* 32bit guests should only use 32bit convention calls */
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        return;
     }
 
     switch ( a1 )
     {
+    case FFA_NOTIFICATION_BITMAP_CREATE:
+    case FFA_NOTIFICATION_BITMAP_DESTROY:
+    case FFA_RX_ACQUIRE:
+        /* Physical-instance-only ABIs are not exposed to VMs. */
+        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        break;
     case FFA_ERROR:
     case FFA_VERSION:
+    case FFA_INTERRUPT:
     case FFA_SUCCESS_32:
     case FFA_SUCCESS_64:
     case FFA_FEATURES:
@@ -261,16 +270,25 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_RXTX_UNMAP:
     case FFA_MEM_RECLAIM:
     case FFA_PARTITION_INFO_GET:
+        ffa_set_regs_success(regs, 0, 0);
+        break;
     case FFA_MSG_SEND_DIRECT_REQ_32:
     case FFA_MSG_SEND_DIRECT_REQ_64:
-    case FFA_MSG_SEND2:
     case FFA_RUN:
-    case FFA_INTERRUPT:
-    case FFA_MSG_YIELD:
-        ffa_set_regs_success(regs, 0, 0);
+        if ( ffa_fw_supports_fid(a1) )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        break;
+    case FFA_MSG_SEND2:
+        if ( ffa_fw_supports_fid(a1) || IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
         break;
     case FFA_MSG_SEND_DIRECT_REQ2:
-        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 )
+        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 &&
+             ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ2) )
         {
             ffa_set_regs_success(regs, 0, 0);
         }
@@ -281,6 +299,11 @@ static void handle_features(struct cpu_user_regs *regs)
         break;
     case FFA_MEM_SHARE_64:
     case FFA_MEM_SHARE_32:
+        if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
+        {
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+            break;
+        }
         /*
          * We currently don't support dynamically allocated buffers. Report
          * that with 0 in bit[0] of w2.
@@ -688,6 +711,20 @@ static bool ffa_probe_fw(void)
                    ffa_fw_abi_needed[i].name);
     }
 
+    /*
+     * Hafnium v2.14 or earlier does not report FFA_RX_ACQUIRE in
+     * FFA_FEATURES even though it supports it.
+     */
+    if ( !ffa_fw_supports_fid(FFA_RX_ACQUIRE) &&
+         ffa_fw_supports_fid(FFA_MSG_SEND2) )
+    {
+        printk(XENLOG_WARNING
+               "ARM FF-A Firmware reports FFA_MSG_SEND2 without FFA_RX_ACQUIRE\n");
+        printk(XENLOG_WARNING
+               "ffa: assuming RX_ACQUIRE support (workaround)\n");
+        set_bit(FFA_ABI_BITNUM(FFA_RX_ACQUIRE), ffa_fw_abi_supported);
+    }
+
     if ( !ffa_rxtx_spmc_init() )
     {
         printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228002.1534435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDoy-0006pk-1C; Wed, 11 Feb 2026 17:16:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228002.1534435; Wed, 11 Feb 2026 17:16: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 1vqDox-0006of-Sb; Wed, 11 Feb 2026 17:16:11 +0000
Received: by outflank-mailman (input) for mailman id 1228002;
 Wed, 11 Feb 2026 17:16: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDow-0004tt-K6
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:10 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5bcb4448-076d-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:16:10 +0100 (CET)
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 17284339;
 Wed, 11 Feb 2026 09:16:03 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 455793F63F;
 Wed, 11 Feb 2026 09:16:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5bcb4448-076d-11f1-b162-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 09/12] xen/arm: ffa: Fix SEND2 SP support gating
Date: Wed, 11 Feb 2026 18:15:33 +0100
Message-ID: <f5907ab2d57e2ed6742b31fe398a8051dfc7cc1a.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Xen only maps a VM RX/TX buffer into the SPMC when firmware supports
FFA_RX_ACQUIRE. Without that mapping, the SPMC cannot access the VM TX
buffer to relay FFA_MSG_SEND2 to a secure partition.

Advertise FFA_MSG_SEND2 to guests only when VM-to-VM is enabled or when
the firmware supports both FFA_MSG_SEND2 and FFA_RX_ACQUIRE, and reject
SEND2 to a secure partition otherwise. Add comments to document the
mapping/ownership dependency.

Functional impact: SEND2 to a secure partition is reported as
NOT_SUPPORTED when FFA_RX_ACQUIRE is absent.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- Add Jens R-b
---
 xen/arch/arm/tee/ffa.c     |  8 +++++++-
 xen/arch/arm/tee/ffa_msg.c | 11 +++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index cb8cd95fdafa..ab02eafdb376 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -281,7 +281,13 @@ static void handle_features(struct cpu_user_regs *regs)
             ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
         break;
     case FFA_MSG_SEND2:
-        if ( ffa_fw_supports_fid(a1) || IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        /*
+         * Forwarding SEND2 to an SP requires the SPMC to see the VM TX buffer.
+         * We only map VM RX/TX into the SPMC when RX_ACQUIRE is supported.
+         */
+        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) ||
+             (ffa_fw_supports_fid(FFA_MSG_SEND2) &&
+              ffa_fw_supports_fid(FFA_RX_ACQUIRE)) )
             ffa_set_regs_success(regs, 0, 0);
         else
             ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 10856fddcbc4..928f269f6c3a 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -274,6 +274,17 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
             ret = FFA_RET_NOT_SUPPORTED;
             goto out;
         }
+        /*
+         * The SPMC needs access to the VM TX buffer to relay SEND2.
+         * We only map VM RX/TX into the SPMC when RX_ACQUIRE is supported.
+         */
+        if ( !ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
+        {
+            ret = FFA_RET_NOT_SUPPORTED;
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: msg_send2 to SP requires RX_ACQUIRE\n");
+            goto out;
+        }
 
         ret = ffa_simple_call(FFA_MSG_SEND2,
                               ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, 0);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:16:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:16:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228006.1534446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDp0-0007JR-MD; Wed, 11 Feb 2026 17:16:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228006.1534446; Wed, 11 Feb 2026 17:16: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 1vqDp0-0007J7-I1; Wed, 11 Feb 2026 17:16:14 +0000
Received: by outflank-mailman (input) for mailman id 1228006;
 Wed, 11 Feb 2026 17:16: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDoz-0004U4-Au
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:13 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 5c99d597-076d-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:16:11 +0100 (CET)
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 65924497;
 Wed, 11 Feb 2026 09:16:04 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B11743F63F;
 Wed, 11 Feb 2026 09:16:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5c99d597-076d-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 10/12] xen/arm: ffa: Reduce logging noise
Date: Wed, 11 Feb 2026 18:15:34 +0100
Message-ID: <95e4051cbf4f3e1ba1a23273521407da5733a174.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Several FF-A paths log warnings for expected or recoverable conditions,
leading to noisy logs during normal operation.

Reduce log noise by:
- demoting unhandled FID warnings to debug
- ratelimiting notification and VM teardown failures
- printing the bit-15 convention warning once per boot
- adjusting log prefixes for hypervisor-only events
- adding debug diagnostics for RX/TX acquire failures, with busy cases
  ratelimited

No functional changes.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- Add Jens R-b
---
 xen/arch/arm/tee/ffa.c          | 11 ++++++-----
 xen/arch/arm/tee/ffa_notif.c    | 11 ++++++-----
 xen/arch/arm/tee/ffa_partinfo.c | 15 ++++++++-------
 xen/arch/arm/tee/ffa_rxtx.c     | 21 +++++++++++++++++++--
 4 files changed, 39 insertions(+), 19 deletions(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index ab02eafdb376..aa43ae2595d7 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -450,7 +450,7 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
         break;
 
     default:
-        gprintk(XENLOG_ERR, "ffa: unhandled fid 0x%x\n", fid);
+        gdprintk(XENLOG_DEBUG, "ffa: unhandled fid 0x%x\n", fid);
         e = FFA_RET_NOT_SUPPORTED;
         break;
     }
@@ -570,7 +570,8 @@ static void ffa_domain_teardown_continue(struct ffa_ctx *ctx, bool first_time)
 
     if ( retry )
     {
-        printk(XENLOG_G_INFO "%pd: ffa: Remaining cleanup, retrying\n", ctx->teardown_d);
+        printk(XENLOG_G_DEBUG "%pd: ffa: Remaining cleanup, retrying\n",
+               ctx->teardown_d);
 
         ctx->teardown_expire = NOW() + FFA_CTX_TEARDOWN_DELAY;
 
@@ -611,7 +612,7 @@ static void ffa_teardown_timer_callback(void *arg)
     if ( ctx )
         ffa_domain_teardown_continue(ctx, false /* !first_time */);
     else
-        printk(XENLOG_G_ERR "%s: teardown list is empty\n", __func__);
+        printk(XENLOG_ERR "%s: teardown list is empty\n", __func__);
 }
 
 /* This function is supposed to undo what ffa_domain_init() has done */
@@ -673,7 +674,7 @@ static bool ffa_probe_fw(void)
 
     if ( !ffa_get_version(&vers) )
     {
-        gprintk(XENLOG_ERR, "Cannot retrieve the FFA version\n");
+        printk(XENLOG_ERR "ffa: Cannot retrieve the FFA version\n");
         goto err_no_fw;
     }
 
@@ -713,7 +714,7 @@ static bool ffa_probe_fw(void)
             set_bit(FFA_ABI_BITNUM(ffa_fw_abi_needed[i].id),
                     ffa_fw_abi_supported);
         else
-            printk(XENLOG_INFO "ARM FF-A Firmware does not support %s\n",
+            printk(XENLOG_WARNING "ARM FF-A Firmware does not support %s\n",
                    ffa_fw_abi_needed[i].name);
     }
 
diff --git a/xen/arch/arm/tee/ffa_notif.c b/xen/arch/arm/tee/ffa_notif.c
index 37b05747cd21..186e72641237 100644
--- a/xen/arch/arm/tee/ffa_notif.c
+++ b/xen/arch/arm/tee/ffa_notif.c
@@ -292,8 +292,9 @@ static void notif_vm_pend_intr(uint16_t vm_id)
             break;
         }
     }
-    if ( !v )
-        printk(XENLOG_ERR "ffa: can't inject NPI, all vCPUs offline\n");
+    if ( !v && printk_ratelimit() )
+        printk(XENLOG_G_DEBUG "%pd: ffa: can't inject NPI, all vCPUs offline\n",
+               d);
 
 out_unlock:
     rcu_unlock_domain(d);
@@ -316,9 +317,9 @@ static void notif_sri_action(void *unused)
         res = ffa_get_ret_code(&resp);
         if ( res )
         {
-            if ( res != FFA_RET_NO_DATA )
-                printk(XENLOG_ERR "ffa: notification info get failed: error %d\n",
-                       res);
+            if ( res != FFA_RET_NO_DATA && printk_ratelimit() )
+                printk(XENLOG_WARNING
+                       "ffa: notification info get failed: error %d\n", res);
             return;
         }
 
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 015097bd4d2a..fdb03dae9a0c 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -461,9 +461,11 @@ static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
          */
         if ( !FFA_ID_IS_SECURE(fpi->id) )
         {
-            printk(XENLOG_ERR "ffa: Firmware is not using bit 15 convention for IDs !!\n"
-                              "ffa: Secure partition with id 0x%04x cannot be used\n",
-                              fpi->id);
+            printk_once(XENLOG_ERR
+                        "ffa: Firmware is not using bit 15 convention for IDs !!\n");
+            printk(XENLOG_ERR
+                   "ffa: Secure partition with id 0x%04x cannot be used\n",
+                   fpi->id);
         }
         else
         {
@@ -632,11 +634,10 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
         res = ffa_direct_req_send_vm(subscr_vm_destroyed[n], ffa_get_vm_id(d),
                                      FFA_MSG_SEND_VM_DESTROYED);
 
-        if ( res )
-        {
-            printk(XENLOG_ERR "%pd: ffa: Failed to report destruction of vm_id %u to %u: res %d\n",
+        if ( res && printk_ratelimit() )
+            printk(XENLOG_WARNING
+                   "%pd: ffa: Failed to report destruction of vm_id %u to %u: res %d\n",
                    d, ffa_get_vm_id(d), subscr_vm_destroyed[n], res);
-        }
 
         /*
          * For these two error codes the hypervisor is expected to resend
diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
index c4fc4c4934af..26a04f056f7b 100644
--- a/xen/arch/arm/tee/ffa_rxtx.c
+++ b/xen/arch/arm/tee/ffa_rxtx.c
@@ -4,6 +4,7 @@
  */
 
 #include <xen/const.h>
+#include <xen/lib.h>
 #include <xen/domain_page.h>
 #include <xen/mm.h>
 #include <xen/sizes.h>
@@ -82,8 +83,9 @@ int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,
 
     if ( page_count > FFA_MAX_RXTX_PAGE_COUNT || !page_count )
     {
-        printk(XENLOG_ERR "ffa: RXTX_MAP: error: %u pages requested (limit %u)\n",
-               page_count, FFA_MAX_RXTX_PAGE_COUNT);
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: RXTX_MAP: error: %u pages requested (limit %u)\n",
+                 page_count, FFA_MAX_RXTX_PAGE_COUNT);
         return FFA_RET_INVALID_PARAMETERS;
     }
 
@@ -299,12 +301,15 @@ int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
     if ( !ctx->page_count )
     {
         ret = FFA_RET_DENIED;
+        gdprintk(XENLOG_DEBUG, "ffa: RX acquire denied, no RX/TX mapped\n");
         goto out;
     }
 
     if ( !ctx->rx_is_free )
     {
         ret = FFA_RET_BUSY;
+        if ( printk_ratelimit() )
+            gdprintk(XENLOG_DEBUG, "ffa: RX acquire busy\n");
         goto out;
     }
 
@@ -312,7 +317,10 @@ int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
     {
         ret = ffa_simple_call(FFA_RX_ACQUIRE, ctx->ffa_id, 0, 0, 0);
         if ( ret != FFA_RET_OK )
+        {
+            gdprintk(XENLOG_DEBUG, "ffa: RX acquire failed: %d\n", ret);
             goto out;
+        }
     }
     ctx->rx_is_free = false;
     *buf = ctx->rx;
@@ -351,13 +359,22 @@ int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t *buf_size)
     int32_t ret = FFA_RET_DENIED;
 
     if ( !spin_trylock(&ctx->tx_lock) )
+    {
+        gdprintk(XENLOG_DEBUG, "ffa: TX acquire busy\n");
         return FFA_RET_BUSY;
+    }
 
     if ( !ctx->page_count )
+    {
+        gdprintk(XENLOG_DEBUG, "ffa: TX acquire denied, no RX/TX mapped\n");
         goto err_unlock;
+    }
 
     if ( !ctx->tx )
+    {
+        gdprintk(XENLOG_DEBUG, "ffa: TX acquire denied, TX buffer missing\n");
         goto err_unlock;
+    }
 
     *buf = ctx->tx;
     *buf_size = ctx->page_count * FFA_PAGE_SIZE;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:17:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228066.1534456 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDqD-0001hZ-0C; Wed, 11 Feb 2026 17:17:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228066.1534456; Wed, 11 Feb 2026 17: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 1vqDqC-0001hS-SP; Wed, 11 Feb 2026 17:17:28 +0000
Received: by outflank-mailman (input) for mailman id 1228066;
 Wed, 11 Feb 2026 17:17: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDp1-0004tt-Lr
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:15 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5d6d71a8-076d-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:16:12 +0100 (CET)
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 BA4F0339;
 Wed, 11 Feb 2026 09:16:05 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 12D563F63F;
 Wed, 11 Feb 2026 09:16:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5d6d71a8-076d-11f1-b162-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 11/12] xen/arm: ffa: Add MEM_SHARE page diagnostics
Date: Wed, 11 Feb 2026 18:15:35 +0100
Message-ID: <4fa6736cbe35b060cf34b2978bbf9b3481d9266a.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MEM_SHARE failures in get_shm_pages() are silent, which makes malformed
ranges and page mapping failures hard to diagnose.

Add debug logging for page validation failures:
- descriptor validation failures (unaligned, range short/overflow)
- per-page mapping failures (unmapped GFN, wrong p2m type)
- address overflow detection in range walks

Ratelimit temporary reclaim failures and log permanent reclaim failures
as errors.

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- use one print per error case instead of the previous system using
  variables to classify and a single print site.
---
 xen/arch/arm/tee/ffa_shm.c | 39 +++++++++++++++++++++++++++++++++++---
 1 file changed, 36 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
index 070babce9627..3d61caaeba78 100644
--- a/xen/arch/arm/tee/ffa_shm.c
+++ b/xen/arch/arm/tee/ffa_shm.c
@@ -161,32 +161,62 @@ static int32_t get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
         addr = ACCESS_ONCE(range[n].address);
 
         if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
+        {
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: mem share pages invalid: unaligned range %u address %#lx\n",
+                     n, (unsigned long)addr);
             return FFA_RET_INVALID_PARAMETERS;
+        }
 
         for ( m = 0; m < page_count; m++ )
         {
             if ( pg_idx >= shm->page_count )
+            {
+                gdprintk(XENLOG_DEBUG,
+                         "ffa: mem share pages invalid: range overflow rg %u pg %u\n",
+                         n, m);
                 return FFA_RET_INVALID_PARAMETERS;
+            }
 
             if ( !ffa_safe_addr_add(addr, m) )
+            {
+                gdprintk(XENLOG_DEBUG,
+                         "ffa: mem share pages invalid: addr overflow rg %u pg %u base %#lx\n",
+                         n, m, (unsigned long)addr);
                 return FFA_RET_INVALID_PARAMETERS;
+            }
 
             gaddr = addr + m * FFA_PAGE_SIZE;
             gfn = gaddr_to_gfn(gaddr);
             shm->pages[pg_idx] = get_page_from_gfn(d, gfn_x(gfn), &t,
 						   P2M_ALLOC);
             if ( !shm->pages[pg_idx] )
+            {
+                gdprintk(XENLOG_DEBUG,
+                         "ffa: mem share pages invalid: gfn unmapped rg %u pg %u addr %#lx\n",
+                         n, m, (unsigned long)gaddr);
                 return FFA_RET_DENIED;
+            }
             /* Only normal RW RAM for now */
             if ( t != p2m_ram_rw )
+            {
+                gdprintk(XENLOG_DEBUG,
+                         "ffa: mem share pages invalid: p2m type %u rg %u pg %u addr %#lx\n",
+                         t, n, m, (unsigned long)gaddr);
                 return FFA_RET_DENIED;
+            }
             pg_idx++;
         }
     }
 
     /* The ranges must add up */
     if ( pg_idx < shm->page_count )
+    {
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: mem share pages invalid: range short pg %u\n",
+                 pg_idx);
         return FFA_RET_INVALID_PARAMETERS;
+    }
 
     return FFA_RET_OK;
 }
@@ -741,8 +771,10 @@ bool ffa_shm_domain_destroy(struct domain *d)
              * A temporary error that may get resolved a bit later, it's
              * worth retrying.
              */
-            printk(XENLOG_G_INFO "%pd: ffa: Failed to reclaim handle %#lx : %d\n",
-                   d, shm->handle, res);
+            if ( printk_ratelimit() )
+                printk(XENLOG_G_WARNING
+                       "%pd: ffa: Failed to reclaim handle %#lx : %d\n",
+                       d, shm->handle, res);
             break; /* We will retry later */
         default:
             /*
@@ -754,7 +786,8 @@ bool ffa_shm_domain_destroy(struct domain *d)
              * FFA_RET_NO_MEMORY might be a temporary error as it it could
              * succeed if retried later, but treat it as permanent for now.
              */
-            printk(XENLOG_G_INFO "%pd: ffa: Permanent failure to reclaim handle %#lx : %d\n",
+            printk(XENLOG_G_ERR
+                   "%pd: ffa: Permanent failure to reclaim handle %#lx : %d\n",
                    d, shm->handle, res);
 
             /*
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:17:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228068.1534463 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqDqD-0001km-A4; Wed, 11 Feb 2026 17:17:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228068.1534463; Wed, 11 Feb 2026 17: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 1vqDqD-0001kd-4H; Wed, 11 Feb 2026 17:17:29 +0000
Received: by outflank-mailman (input) for mailman id 1228068;
 Wed, 11 Feb 2026 17: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=cvfN=AP=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vqDp4-0004tt-MH
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:16:18 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 5e4c111b-076d-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:16:14 +0100 (CET)
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 4C73E497;
 Wed, 11 Feb 2026 09:16:07 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.53.46])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 67B8C3F63F;
 Wed, 11 Feb 2026 09:16:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e4c111b-076d-11f1-b162-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH v2 12/12] xen/arm: ffa: Add message parameter diagnostics
Date: Wed, 11 Feb 2026 18:15:36 +0100
Message-ID: <ee4ae1ba137aca30b9e6e53e6a2a07f84fac9c56.1770826406.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770826406.git.bertrand.marquis@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

MSG_SEND2 and direct request validation failures are silent, making it
hard to diagnose invalid IDs, oversized messages, or unsupported
destination types.

Add debug logs for parameter validation failures:
- invalid endpoint IDs
- oversized messages
- unsupported destination types
- invalid sender/receiver combinations
- ratelimit MSG_SEND2 busy failures to avoid log flooding

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
- add a comment to explain ratelimit for BUSY in send2
---
 xen/arch/arm/tee/ffa_msg.c | 49 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
index 928f269f6c3a..1eadc62870f2 100644
--- a/xen/arch/arm/tee/ffa_msg.c
+++ b/xen/arch/arm/tee/ffa_msg.c
@@ -4,6 +4,7 @@
  */
 
 #include <xen/const.h>
+#include <xen/lib.h>
 #include <xen/sizes.h>
 #include <xen/types.h>
 
@@ -100,6 +101,7 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     if ( !ffa_fw_supports_fid(fid) )
     {
         ret = FFA_RET_NOT_SUPPORTED;
+        gdprintk(XENLOG_DEBUG, "ffa: direct req fid %#x not supported\n", fid);
         goto out;
     }
 
@@ -108,6 +110,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
          (src_dst & GENMASK(15,0)) == ffa_get_vm_id(d) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: direct req invalid src/dst %#x\n",
+                 (uint32_t)src_dst);
         goto out;
     }
 
@@ -115,6 +120,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t fid)
     if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
     {
         ret = FFA_RET_NOT_SUPPORTED;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: direct req to non-secure dst %#x\n",
+                 (uint32_t)(src_dst & GENMASK(15, 0)));
         goto out;
     }
 
@@ -166,7 +174,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     /* This is also checking that dest is not src */
     ret = ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
     if ( ret )
+    {
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 lookup failed: dst %#x ret %d\n",
+                 dst_id, ret);
         return ret;
+    }
 
     /* This also checks that destination has set a Rx buffer */
     ret = ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
@@ -199,6 +212,16 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,
     /* receiver rx buffer will be released by the receiver*/
 
 out_unlock:
+    if ( ret )
+    {
+        /**
+         * Always print other errors than BUSY but ratelimit BUSY prints
+         * to prevent large number of prints when sender retries on BUSY.
+         */
+        if ( ret != FFA_RET_BUSY || printk_ratelimit() )
+            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to %#x failed: %d\n",
+                     dst_id, ret);
+    }
     rcu_unlock_domain(dst_d);
     if ( !ret )
         ffa_raise_rx_buffer_full(dst_d);
@@ -226,7 +249,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 
     ret = ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
     if ( ret != FFA_RET_OK )
+    {
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 TX acquire failed: %d\n", ret);
         return ret;
+    }
 
     /* create a copy of the message header */
     memcpy(&src_msg, tx_buf, sizeof(src_msg));
@@ -238,6 +265,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
          dst_id == ffa_get_vm_id(src_d) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 invalid src/dst src %#x dst %#x\n",
+                 src_id, dst_id);
         goto out;
     }
 
@@ -246,6 +276,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
         if (src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1))
         {
             ret = FFA_RET_INVALID_PARAMETERS;
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: msg_send2 invalid msg_offset %u (v1.1)\n",
+                     src_msg.msg_offset);
             goto out;
         }
         /* Set uuid to Nil UUID for v1.1 guests */
@@ -255,6 +288,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
     else if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_2) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 invalid msg_offset %u (v1.2)\n",
+                 src_msg.msg_offset);
         goto out;
     }
 
@@ -263,6 +299,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
             src_msg.msg_size > (tx_size - src_msg.msg_offset) )
     {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 invalid msg_size %u offset %u tx %zu\n",
+                 src_msg.msg_size, src_msg.msg_offset, tx_size);
         goto out;
     }
 
@@ -272,6 +311,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
         if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
         {
             ret = FFA_RET_NOT_SUPPORTED;
+            gdprintk(XENLOG_DEBUG,
+                     "ffa: msg_send2 to SP not supported\n");
             goto out;
         }
         /*
@@ -288,6 +329,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
 
         ret = ffa_simple_call(FFA_MSG_SEND2,
                               ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0, 0, 0);
+        if ( ret )
+            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to SP failed: %d\n", ret);
     }
     else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
     {
@@ -295,7 +338,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
         ret = ffa_msg_send2_vm(dst_id, tx_buf, &src_msg);
     }
     else
+    {
         ret = FFA_RET_INVALID_PARAMETERS;
+        gdprintk(XENLOG_DEBUG,
+                 "ffa: msg_send2 to VM disabled (dst %#x)\n", dst_id);
+    }
 
 out:
     ffa_tx_release(src_ctx);
@@ -311,6 +358,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
     if ( !ffa_fw_supports_fid(fid) )
     {
         ret = FFA_RET_NOT_SUPPORTED;
+        gdprintk(XENLOG_DEBUG, "ffa: run fid %#x not supported\n", fid);
         goto out;
     }
 
@@ -322,6 +370,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
     if ( !FFA_ID_IS_SECURE(dst >> 16) )
     {
         ret = FFA_RET_NOT_SUPPORTED;
+        gdprintk(XENLOG_DEBUG, "ffa: run to non-secure dst %#x\n", dst);
         goto out;
     }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:30:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:30:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228109.1534475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqE2a-0005Ou-AG; Wed, 11 Feb 2026 17:30:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228109.1534475; Wed, 11 Feb 2026 17:30: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 1vqE2a-0005On-7j; Wed, 11 Feb 2026 17:30:16 +0000
Received: by outflank-mailman (input) for mailman id 1228109;
 Wed, 11 Feb 2026 17:30: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=7Yav=AP=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqE2Y-0004Qt-Mz
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:30:14 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4fa98f40-076f-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:30:09 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ2PR03MB7110.namprd03.prod.outlook.com (2603:10b6:a03:4fd::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 17:30:05 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.008; Wed, 11 Feb 2026
 17:30: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: 4fa98f40-076f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V6UTkI0D9ta533DQr0MbijxhH1QbeVV8i3TLvWwtSJpI0QjxsfR6LLwHkNLOYJFy/ClSWb3CE/xIQAHMczp6rX2rr0d8K2GWfdB8yqOZNL1D7VVfd0EeiV+KuRosY+GPggtxeQWeDFtp9tFfW7glGaOBMoSINPJ3w7iDb4hHX0kfeYKneWPzkI9AsyFPBrsOu1Z/SRmso95ljRJI1sJvgS2Fw5DdhgNZsPPWZ2Y5VWCRGjVK+xiRSwJEOvM5M9WsneAHIJxRPvb2Ye/p3X3RkV3brFKaq5uj0tP2OQ2FSbkEbSCYICbQLT2o0ryrld2p73DCAlUXNtSjcEUeF3us0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bvRxHCINeB4XDe+8d5WxbCNOUpRrpeTIRs5E9YuaGlI=;
 b=ibN4zLMo50C2fMWNOOtWg3kyR6LAOLdKouCjJTaS2YiFewWg60n5q9kZ9L8ZULUg/PAG2ONrjXdDEar0VMTOsqFUoIu8dKFPnja3xcMOpaiKVVPa4aUk0atKrYfok/E8F+70AcbcS1fm4Scm1ghMqCP6KDy3I8O373OskXLft7Y0LsSh8Y+ckl/QSE4J4O6ozgkCfJ/I5YTvmPPrg0K27LA7z/pLGNCtAMxz1wQLLH90iW56AB6QWT5cIAkgIv9FXvpNESDO9oRDsDbUnzin2+k7ci/RmEo/PnjEbyzQDU8kTTwhB/MzRvLL0y30+aAdHQEuvQhk9QVKnt42gVcUgg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bvRxHCINeB4XDe+8d5WxbCNOUpRrpeTIRs5E9YuaGlI=;
 b=DomNuV7O1QLHlXsRnVHrcB7QHMQuKr+X/ro2Uoi0SW8MjztlWeGlwx6Nwh5wfUcUMIqSou3j7Jo2/9BFFjK83tMiLbZ8c+gxsePfgssJMOPa1wkSf6GTp8gEkYDMYjhrD+476JY+mFFJIXBlEeFvr7YTQbVQLhw+vPTg4QNCnf8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <73bf621d-0795-4fbe-b926-71be3525b4c7@citrix.com>
Date: Wed, 11 Feb 2026 17:30:02 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] xen: Put wait.c behind CONFIG_WAIT
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260211170118.109946-1-jason.andryuk@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260211170118.109946-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0351.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18d::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ2PR03MB7110:EE_
X-MS-Office365-Filtering-Correlation-Id: b8c93250-fb78-4d63-b36f-08de69933213
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N09Kb01LMzh3OHNqajlCclhmNlNTdDAzdzJaN1RhSk1XYUlkeE8zVTB5Q0M0?=
 =?utf-8?B?U2JyNDFhNzlLVEFHZHRZMzVFRVhmRGtoNTRWNDEwNzBnc01iUFJZOFZQVThw?=
 =?utf-8?B?L0J6SUhIamgzNjBuLzhlb3Nnd1dtRXRvM3R2UDN4M1JYcnNsNlZnSlhyNXU0?=
 =?utf-8?B?UllPL1ZZR2trMGlhUkJwT0RRejcxUFdiL0dqNHA1aG1mU2QxVDE3WW1DbU1Q?=
 =?utf-8?B?MnhKdGJvTnhBRHpIcHNpYmVEbVNjeDlzbXQxeTVFVklhTGJXVis0ZFNTeXVy?=
 =?utf-8?B?WjAvZ1V1UFlyK2JWSG5Gck1MVGZhbXFLRTBSZU03bkRjakJDODl6cWZDM3hR?=
 =?utf-8?B?NHVmMWorYkFPWjVHS3lzUHF4QUhWeXZFc2lUL1VKUnFxa3VLSnp2VVRkamsr?=
 =?utf-8?B?Q1FyOEZ1WFhZeWdGV0VDbE9iZXJ5RE04aklBU0krT3l5RFNON0NHaCtaMGRI?=
 =?utf-8?B?QXdBeWIrdW8zSmZMUDlzb2xlQnhIV29zeFoxc0JRUUlpUTRkM2QwZDRwTDJY?=
 =?utf-8?B?MEM3eEE3N3lOMjFiN2FTRUgwdFVHNXVHbkFHMFdLbFdVdXJROWdvaXBmeGt4?=
 =?utf-8?B?RmplZ0p5MWF0dURmVVlLaCtjcDYyV1p2RytRMjMvU0NTR05sVjRYMUZSS3Js?=
 =?utf-8?B?REhPWURWMUpMa3NxZU1xUWxOL1BDTXRzUllMcDM2ako3YzhBTjZpUk5ib2pW?=
 =?utf-8?B?SUlyblJGUnA5dG0xR3dqZmppa1F4QlNmWUJFTlJjTEcxREpDdWJDc1ArblZ4?=
 =?utf-8?B?Um8zdGVISms1UTZiTFAzc0g2eE44NUM1TXlWZmV5NmtjS1NGMU5mdUJPVWhi?=
 =?utf-8?B?MWdjZk9xUllNUy9HY1p3Y29INndvL05pNU1aYjZmMGFBVVdLN1BVMzZBc08z?=
 =?utf-8?B?a0Y4WXkzR05WVlJXNlBoK1Y3ckJVd1daMitmRHpDNGpUS2taZnhneWYvWUcv?=
 =?utf-8?B?bWt0TnZaRlZmVkhPTFY4dHdaMG9LK2ZnYWE1NVVrNS9MUFJkOExjMVV1ZVJ1?=
 =?utf-8?B?MTAvYVA0VHNwRXp3UmVSU1ZmSlJuNVJoR2tEL3JSeFZydE94bDVYS1VlMUl4?=
 =?utf-8?B?TTA4U3EzTVZhVXNDM0pNeXRqNDlFdzFPNVdadHNZS2M3bENsVDJHakFIdHhJ?=
 =?utf-8?B?bGNsNzVPOFQxcEdQY3lIek9TY2NSYy9lNjRGd2QzWk9YblcvZUc5ZUF1K0xQ?=
 =?utf-8?B?YzBXd2xnU3BvNWlpZk1CTVlnaEVHK0ZhZk9yc0w2SkpOZzJTblJKb0hhSmxr?=
 =?utf-8?B?MjVRZm5kdDduSUo0bUc0SE1qMFVaT0NjdjhKdVVGSHVsdU9RUW14NDEyVWpm?=
 =?utf-8?B?RWtYWUNPOWdEV2pWZTNwVXlXMFA3WmJ4T20xejREV3YxS1lzd0tJUnZ3c3Rs?=
 =?utf-8?B?R2NhS1dNQXBBVGVLcVlIWk9YNDh6ODlEbm9IeVF2ZklNOGhZdGVLRUdiV0kx?=
 =?utf-8?B?Y2VDTnNtTjFPcWtCRFNzMFk3Q2hhU0Y1bTI4WWRXam5JZUltcDhXcmp5TmZI?=
 =?utf-8?B?OVFDUFBIYzkxc3drUVVLZ3NGU05LaUxxNm9kVmZPQmkzN0ZoVEdmcUtLQk5U?=
 =?utf-8?B?QjM0MDdhd2dnWFAvdDlGeEhkZHBNc2xZSndVdGMrR0lrSUcrT25oY0Yvc3dM?=
 =?utf-8?B?VTNXcFRudUFwVDZnQ1pHdVE3V0o2ZUpsK05JaEdJOTBueVlGS3ZCbHltWDFQ?=
 =?utf-8?B?Y2phUVVlY0lodnhpWVEyQ0pmK0FnRmZrMlE1OEhjVzF5ejJhM1p4Z0pqYXd5?=
 =?utf-8?B?cnEvZDBIbEZLTmpoR3B3cm51dWlVV2dsZUgvRzY1cG91bHNEMENaTEV3Nmcx?=
 =?utf-8?B?NUNySXhQWFQzb0VNSWNYL01QbitOb0FXbzU0amluTjdmUmF1RzJFaTc2VEkx?=
 =?utf-8?B?ekpUY2NubC9aOTIwd0dPRUVLNGxqVGNCc3FvSTAwTjFWaDY5UDRHYTIyYXFQ?=
 =?utf-8?B?T3hFN3F1SXExQVlhQUZSbzRoZCtDaGE0dnluTUJSUVFCTFk4VlpMT0k0UlNw?=
 =?utf-8?B?RlAyak0yWUJBSGRwaGlvQ0daY2NUYWQxVTFjSDA3U1l0N0xyV2VmMjFVT1R4?=
 =?utf-8?B?ZWpXbjJSRW5lMjJicHJDT1ZybFQ5VTVyM3hDc1piczNqVWZJRTZZM0drRlhW?=
 =?utf-8?Q?c5Gw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MnU1RHZlclZjMDRkQkFmRURHaElQKzlaSGRtWWZrYitZK0xQUlRwQ2xsdWJD?=
 =?utf-8?B?b1c5OU1pMDRhN2puNTZDMWEwbkZvVXFMMU12VDBMVllXbzU4aXFNSzM1V2Ju?=
 =?utf-8?B?b29PUWdlSE1aeHBEeDVSbjdpS0t5V25vUExobzlDNk1VRzNYK2VKZHEvUDk4?=
 =?utf-8?B?eDlzY2RYK2hKZU9HVk5qZHJVSDNIdzdOeDdRNURnYU1RbGVGUEcwVWJZY3JS?=
 =?utf-8?B?VnB3eDhWM0IwMHc3QWovd3o3VG5ZYUFBY1Q4Zk4xUVcwUmU3YUppR0xXZkxj?=
 =?utf-8?B?b3d0T0hCakFNMlpFdDNxcUVpYktSTUR2UHFXaFMyV2U4cS80S0pzMDgxR01w?=
 =?utf-8?B?b09kang5U1JObHNpaE5CQkR1ODNlaGZTUTEyblJ2ZkVJd1NYUTE3QlZDOUJN?=
 =?utf-8?B?VmNJSnFKUnNsV0RFMm5rUTlvUkNucUxaVTBMRFNrc0F6OTQyOXhtODhXSjY4?=
 =?utf-8?B?cnE0b3F2bzZJdy91VDdtb0VTaUZsWWRrYWtBNCtHVVNxOHFDV0pIOG1XbUFG?=
 =?utf-8?B?b2xhOTFnMDFpVk0wdHlpcmRQUnBJcko2cDhsbDRzYjV5blp6SS9LUEJwOUly?=
 =?utf-8?B?dTJwZVFCTWpxeTNUM3l2eUV1RlphakNWTXBIWkRlNTYrb3ozb0RVLy9pbXk1?=
 =?utf-8?B?Y1hlWi91RmcveWQ5YityZFVGMUkwd2tnOGYwa1B4YUVxaWNndEZxSnNPUkFl?=
 =?utf-8?B?UW43c0lGa2lSYVIybHFHRmw3MUZpRXl2OXV5MzFYQ1IvNko5bnFFek1tQ3hC?=
 =?utf-8?B?Vjl6K0hER1I1bHk3eVd6TE1EVHEvQzhEelg2NFVWZzR4eE80anVScXBnSXFs?=
 =?utf-8?B?WFhEbmEvbE9HUXcwVFpod1loanhpdjFRUFJ6T1R5em4wV3Y0OHFQdTJlR2dM?=
 =?utf-8?B?QU5kTUg2VXZTTFZCZU5XM0lPeTM3dkhqVjZFYUhncTdyQjRUQjRNTTQ3azJ3?=
 =?utf-8?B?YytRM09hU2RYelRxN0dpdys0TjBST2RhbC92SzNRam1JUGZHTnNZU0o4Z3Nu?=
 =?utf-8?B?QllUU1JYZ21xZkplZkg3dXNqdDd4bmlNWnRaUmw3Y1hPNWpSTXNiREhFTnRD?=
 =?utf-8?B?a2V1Q0VaNTdjR1FqbmpZc1FUek5EWXJHUmFUYUZpcVRhM2tTZlU5NXJpSlVB?=
 =?utf-8?B?dDMxZDlBWi91eXN6TmZqQzJOL2FMWVdNRlhqSlU0NzNydlUveUtBWjRETERr?=
 =?utf-8?B?Sm4xeUp5Q0phb1JMN0ozUnZQTlFnZk9TYVBLZm5UMXJuYmdKVFIrMGgxR3Bm?=
 =?utf-8?B?VHRIazBCdW1zSU5FZDl0Y0VIU04wUDlta2tiVjBxcU95c2ZyS29oZXpyVThI?=
 =?utf-8?B?UERXaERsZkgwNGdNL1FSZG91b1lYOGFwaFNmUVNFSGlVK0U3TnVNWUl2aWFw?=
 =?utf-8?B?NFMwWDJSNDgzMGNpWGc3Q2lHQnVOYXFhVjJFRHBOK29FUEVDbzFRSE10RFQ5?=
 =?utf-8?B?amZkbElhQXQ2Rms4alBxZncyT1ZzRXdaa0t6NmVjKzBmUUFEY2tucUEvSTR1?=
 =?utf-8?B?ak5JS0VUWE9PWjcyeVdqRzliVmM0aDdsL1JFU1RCMzZINDNvVmxwTG1oVTBk?=
 =?utf-8?B?alJBUVFudHp3TzJhNEluRm9pWUtOZTZ1ZGl5SFUrUUE1ZlNzUGVUdFcwVGN5?=
 =?utf-8?B?ZS9nZEpXQ0trTFJSMXp1ZldSdmFsbTdrVjB3MVJUYy9rdEgySlk1TEpxeW5J?=
 =?utf-8?B?ZDFWUm14NEhrVlRXSDVKU1NSN1FNNDdXdGJRSzZVZk5hN1k4YmRoR3pERlBQ?=
 =?utf-8?B?QWNOVkFIZzVhdVZHZE50T1hvNzJxTTFCay81WldoTE5hT0JvbXJTYllVYkJS?=
 =?utf-8?B?SkdtR3AvbXlkR3cwMTNhUkJ5ank1R2toM2xTZWEwdHM0aDJYK2RuVXNXdkNl?=
 =?utf-8?B?NEhEYi9KNVpqMFgwajlOTG9VZzJWdWl5QnB3dzV1RFY5djNFTHBjWXlDbHRR?=
 =?utf-8?B?cjVkdmV6aUJaMy9IdWNXVTBqeTQ0c2hnU3A3eXVWUDEyZHN5bWNxUk9zQmRQ?=
 =?utf-8?B?ZkROSXRQcWxlNWVnSW1WRWdtZEx0c0NjT0d1MUNlL2lMTFRDa2FNQWx4VkRL?=
 =?utf-8?B?K05UTzV6bWw0QjBJMU8yOW5EaW80WktCeHJTUFV3WjR5a3l4K1d2MlAxWDhj?=
 =?utf-8?B?OWI2eXh6ZWR6STUxUURZQmY2MmFLcGdsZjB2cTlGVGJaSzgxRGd4SzdJbE5U?=
 =?utf-8?B?SVl6UFR0RWF5MVpId1pvRlFFazRVL1RrV1RJWjdZUzM3SkdEUVlwVmhSbDRL?=
 =?utf-8?B?ZjdsUkk3dk1qQW5LMjBVZ3JDSGZVdXJhbjJ5S2lkK2E1SFlLaHJ2TGxhM2tl?=
 =?utf-8?B?YmJGd2lxMTBBdi9Tc1ZOeWFjYTIzcUVZZDVNZW8zait5OURLcmtPZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b8c93250-fb78-4d63-b36f-08de69933213
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 17:30:05.5382
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bZLyZ08V7vIzFvGDBnZ4a45PcWH25wUGFpVTAop0B9dnVQYXwOhyxyPorK4nObqtfleRbcPMEE7ossbm1FzZKv9EVD6hK9ZuI+yRitVzaEA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7110

On 11/02/2026 5:01 pm, Jason Andryuk wrote:
> wait.c is only used by vm_event.c.  Make CONFIG_VM_EVENT select
> CONFIG_WAIT, and use CONFIG_WAIT to control building it.
>
> Provide stubs of functions called from common code.  entry.S needs an
> ifdef to hide the symbol from the assembly.
>
> Also conditionalize .waitqueue_vcpu in struct vcpu to save space.
>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

I'd really rather see the API/ABI changes required to purge wait.c
entirely, but I guess this will do in the short term.

Two things want further thought.

First, because ARM uses per-vCPU stacks not per-pCPU stacks, it doesn't
need this infrastructure in the first place, but it looks like it's
still compiled in and half wired up.  I suppose you don't notice because
you compile out VM_EVENT on ARM too?

Second CONFIG_WAIT isn't great name because there are many things it
could be.  I'd be tempted to just reuse CONFIG_VM_EVENT and go without
CONFIG_WAIT.  I do not want to see any new users of wait.c, and it will
disappear at some point.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:35:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:35:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228125.1534486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqE7m-00061v-2A; Wed, 11 Feb 2026 17:35:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228125.1534486; Wed, 11 Feb 2026 17: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 1vqE7l-00061o-VJ; Wed, 11 Feb 2026 17:35:37 +0000
Received: by outflank-mailman (input) for mailman id 1228125;
 Wed, 11 Feb 2026 17:35: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=gWxp=AP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqE7k-00061G-Tl
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:35:36 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11221ab1-0770-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:35:34 +0100 (CET)
Received: from BN9PR03CA0750.namprd03.prod.outlook.com (2603:10b6:408:110::35)
 by BY5PR12MB4098.namprd12.prod.outlook.com (2603:10b6:a03:205::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 17:35:26 +0000
Received: from BN1PEPF0000468A.namprd05.prod.outlook.com
 (2603:10b6:408:110:cafe::61) by BN9PR03CA0750.outlook.office365.com
 (2603:10b6:408:110::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.9 via Frontend Transport; Wed,
 11 Feb 2026 17:35:19 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN1PEPF0000468A.mail.protection.outlook.com (10.167.243.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 17:35:26 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Feb
 2026 11:35:24 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11221ab1-0770-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oqO/W0FyJLKsciwW5IwXjaMZUBhUa5+aWWJXQaVyeyUx988S5HovybMbQUHCCv4b87thZIHnjgwYEYCbYxGWWk/YoNCxRRC0QBT8EnLooNIltClVdrIRIh//SZ+I4UPBmWNhxvbS2zGO4/bZGf1ZWDFWVLtsJWSacI9oBgLhLClFkZY1FPjpVl9EnUQCXvwYY3CJrUsRuzDT4v9BGqlTafCck8DcrfCrPWlMwgrm78QX+tcX5uaqhQBVW9AYsIAqE/XvvOG4FWziDxe2tIFYQ2qXMGPtzmjcTRpUuo7glq8uxjVZsPwAVfGyr42kPj0G4tK2OnctPOxepknYb/uRjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=TQg2kVAQ/UBnCswUHj3GLICgMNPTRKpRChp8eE7X0z0=;
 b=l0/UPcesh+Kg1CTglzZMVIUgFoJW/mCmQhTSO+dxagiHdr8FxXhg2pzXm2G6y0HNKlgoydB7kWMjeP3WNtvWRCuLA4/YP5PAPNXZTFYy3NwhgiDpXUGEVZ1Sf2Xfjb+187itqX/YJS2H2iwiC3VIICKHK7yc2/Hd2jFjQ4Xo7RWdDZKfSe+9Z/5dWkItEp12Ad17jBN3THKjnuApa+qQtow3TcIhOLlN2tol3bGhPrGqv5iVuBfEUDjgelYSuBrpAeppCR1OxTsTuSdmLbkCd2xWT/tbLDOLalA31a0q51FnF58VwWITpRg/yRVLAzwIm9Jf/w9BVkHsP43H0Cpq3A==
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=TQg2kVAQ/UBnCswUHj3GLICgMNPTRKpRChp8eE7X0z0=;
 b=EmnfRVFLJrEuJCJlNh8c6xQN/N1fAtXk8eCYwO6As9U/6ztaU3Vl8qJNkpg7/HBUUr9Wh9hXa0VMQS0S9908t3OqX095Z2j4wk2Q2P25jaq+Hc34OuWwjrhe87I2rFC24PvSucvV05lLwWRCmH5PC9tPNqQ4jsZJXX5KifdP8hk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Feb 2026 18:35:18 +0100
Message-ID: <DGCBB98OUVTU.1771D50B4INHI@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's
 CPU vendor
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
 <7eeb369d-04a9-4c17-983c-078e45b4679d@suse.com>
In-Reply-To: <7eeb369d-04a9-4c17-983c-078e45b4679d@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF0000468A:EE_|BY5PR12MB4098:EE_
X-MS-Office365-Filtering-Correlation-Id: 14c946f9-3354-4ad6-f827-08de6993f132
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?enR1Tlh1NUxsSis4dE5Hc0IrOTVrWTFyRms1UDQ3UCt5TXpPY1NpczRiTzFX?=
 =?utf-8?B?aDFJT0c3T1k1ZlhUSmp1MkVlcDRRTlIwUTRUc2YyVWJuMXI3bU1oU08rZ0VT?=
 =?utf-8?B?RHprRWc0bVJUS2VnNFJGbGlaWElRNVk4QUsxN0JCM2NUWTFML1lhc2htazFO?=
 =?utf-8?B?MGVzUGZ2V3M4cGFLZkpyTTJTc2JpQ00vNnEvbHh3Tzh2S2NmNzVLQXFaM0xZ?=
 =?utf-8?B?N0RkWEs3czhCYjN2VC80cllRZGhyM3RMNmFFNnVkUHFNMFM5N3o2MkQ1Ujc0?=
 =?utf-8?B?RTRiOGthSHRscWdTNG9ZeVoxb3gyRFVydUNmNEthdXIxNUZGekZqNDhYYUNy?=
 =?utf-8?B?dGFYRTFhdjNFZklpRzN1KzMvWjlpNHhkdlh0b3gvSFFCZ0xROVZUandDTTlO?=
 =?utf-8?B?ZDJtVlZHbVV4bm5kbXo2bE1UMTVObk9KbXFQNUJzYkNiUGZKNFRvUDBUMjZz?=
 =?utf-8?B?VzlMVWFFL1kxRHJLN3VHSEJqd2lnY0pIdG0xY0w2cWs4aUY3UE52NEtaSUxM?=
 =?utf-8?B?RlZkZG1KK1pHdkloeUlsYzdBUFRxMU4wQjV4K054VjYrM2lJZXFtWEJZdmU3?=
 =?utf-8?B?SzJib3dlYTRzUjJzSzNncDNzSkRwNFIxOWJZajQ3Q1FQTmdpa1NoNDBRVjRn?=
 =?utf-8?B?VzU2ME1TejFraWVJZnArOGg2MFlPb3ZBZXY1a251SXdBYnVacEJzdUx1U2Jv?=
 =?utf-8?B?dXQ1MW10eGxaamZFaGdNSzdxdzEzNldiN3h0WG9JNlZXdnN4RzY0ZTBTaFNz?=
 =?utf-8?B?aHU5anh3MkFDODVlTWlmMU9uc2dBS3pmVTJUcU1tamQvQzdRQjB2THlUZU9F?=
 =?utf-8?B?KzJOYTkxZmpZc1ZmeDduK05xQ3BxcXJMek9KNWtrVmIwcHRRVmY3NlUvY0xQ?=
 =?utf-8?B?VzdXQ08yNWpwbjRHTW5aOE5UM2Z3VUtidlY2QzNPODdYTGhBOW9JR3ZSTXE2?=
 =?utf-8?B?NGRxenQ2MEJ1KzBIOUtiMWFQdlUvZ0p4RXlLZ084THZNajRZRnlUdWx3UVIv?=
 =?utf-8?B?enFGSkplZHZIb1RVQTlydXoyVVRJWk9lVTArdG85cEJHU08rNGxva0R6RlRh?=
 =?utf-8?B?NU9tbTNQM3R2bG1tcFIrRmJTQWp3S1UwY2kxN2U5czR6RExHUGJFRmxSdGxG?=
 =?utf-8?B?SzFlNHUwNEZ0QmRmMzZTZWl1MEp1dENXMTBrNGs2bXhhQnA3YWdUYy9oODFT?=
 =?utf-8?B?a1MyWWhPR0d1WUNldGxKUXVaaHFSMGIrTGRXSHpXK2FuZXUvT0ZtSUJ6KzV4?=
 =?utf-8?B?SCtYWExSeE1UVU45aFlUYklkU0FUNHFabTdyNWdSUkFxcDlId0NsZUhTV3J4?=
 =?utf-8?B?VkFLUFJzMUJ5K0hweHFPUEJXZEdMTHZwRWZQN3AzTjNudmwzQyt3cjJ5NzRB?=
 =?utf-8?B?Q093WjQ4bVIwQklWclpVclA5ZVFVeU15QUVJRDgvVnpyVktzblBqVS9BUnNI?=
 =?utf-8?B?MjhCY1QrL3JEUG96a1l6eGFvUGV1Wis1cmJsclN1VXFTL0w3M2IxdDZkZ25L?=
 =?utf-8?B?dW5Hb1oybVcxUDhhckQ4SVhYeGhmYmw2TWtJT3RSSC8vblBqT0t2KzhqUGZz?=
 =?utf-8?B?UXBVY0VKUzR2NkNuSkhQclc2MzA2WEptZkxESVE3cWJEZ3FPY2psd2xTZ2g1?=
 =?utf-8?B?STRYZW1pQ25TVVdJRVZZNE11NytPTEcvK2ZlZDliUzNOdmE3MEJsODdrUzJQ?=
 =?utf-8?B?dHdpNjJMNisybkZzNGlUVGtxZ3ZPWmV3a2RQVHQ4RHJXb1d5Zm9iZEVMTkY1?=
 =?utf-8?B?cGFUUjFHMHZiUk9VcHZKRFZRSCtEVEYydm1pelBvV3FaMzdlbWx1SlV2bW9L?=
 =?utf-8?B?TGdUNGFsREREZVExRGwySFA4a0ZjS2JsQmRuRWtIcFpaZGlzbHdBSURwWVNn?=
 =?utf-8?B?aHN5TGVDRVZKZjZVNFFvSmhBYllkQ3JtVWxsTEhFWGJYYy9rMTFXeFg4K3hK?=
 =?utf-8?B?aWhpc1NBMmRTcFJWampkcWFTMHlZNVFhNzBNRUJST1lJWUgvbHF0bXRDRE51?=
 =?utf-8?B?VENGb2FPdERyUUdGbFExdll2aE95Z0VoMitqamRKK2h6Y005Qm1pZkwxS1V2?=
 =?utf-8?B?TVVJU3lsVkdCQnFUT3JPeHVTK2lSTmIwTHFGbkJGZkFadFMwSjhrNndnZDFI?=
 =?utf-8?B?Ny9Uc0UrRUozVXlienFvRUtRcHBHYXZ4WlhlbW5HdktQWGxhVytxQWI1MFVw?=
 =?utf-8?B?VzdlQ3ozQ1c3U1FlSkdJYzZpNCthQzZHWFRNM0ZHK0VmbW83Ti83RDlTNUIx?=
 =?utf-8?B?d1FLTkJFR3A5eXFiSFllL1FGWER3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	60+g9tzT2chkD9t3UUPuxZLaqelDCqgbo7Qj1HaY+OEggt6LoUqZ6+bCTxPAftAGnEimU2IQRLlMObCSGhg8zb/YJp+wuG2a7bIwwAseexiC6w/6jZuxYtu5s7zST5raeFihFcWP/CnknHhcKNxpqkziPpY0tVLMAZxdC+4dChQU/ySFaPpsdRq17e+WGn6a6XUh8c4FIrcLvP+vLXi+Tfxafi5fQy0ppr1ZWPQOtHYJ09jk3NRafWDH6lLTdRCLri2omEgAOfT4fvf5MQaWgBCys87f+D32dsLto+PYkbSNXoy+y9Bs+wjgWGNLrpG2Zy1HZ7rq0hJUksl4BoAUpcE88D6sJ0eFHFtq3buatd7OVINYtXRGZT/uGw5IZtrCAGEUhiX9O6sUgXzNvNf4NNJOZaE5aEssrVt1MtdPB7Su6LE9UziGhjBIRejLwldP
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 17:35:26.0367
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 14c946f9-3354-4ad6-f827-08de6993f132
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF0000468A.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4098

On Wed Feb 11, 2026 at 5:04 PM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/cpu/common.c
>> +++ b/xen/arch/x86/cpu/common.c
>> @@ -328,7 +328,11 @@ void __init early_cpu_init(bool verbose)
>>  	*(u32 *)&c->x86_vendor_id[4] =3D edx;
>> =20
>>  	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx);
>> -	switch (c->x86_vendor) {
>> +	if ( c->x86_vendor !=3D cpu_vendor() )
>
> When we introduce new functions to Linux-style files, nowadays we take
> the liberty and make them Xen-style right away. In entirely Linux-
> style functions the style should remain consistently Linux'es, though.
>

Seeing how I added the tabs I did intend to do that.

Muscle memory and all. Will correct on the next one.

>> +		panic("CPU vendor not compiled-in: %s",
>> +		      x86_cpuid_vendor_to_str(c->x86_vendor));
>
> This will be somewhat awkward when c->x86_vendor is UNKNOWN.

Which only happens on virtualised or imaginary CPUs. In either case you kno=
w
what you're running on and the information is not particularly useful. The
important part is the "this hypervisor cannot run on your vendor. Enable it
there".

>
> There'll also be a degenerate case, but I'll comment on that on the
> earlier patch causing that.
>
>> --- a/xen/arch/x86/include/asm/cpufeature.h
>> +++ b/xen/arch/x86/include/asm/cpufeature.h
>> @@ -14,6 +14,7 @@
>>  #include <asm/cpu-policy.h>
>>  #include <asm/cpuid.h>
>>  #include <xen/lib/x86/cpu-policy.h>
>> +#include <asm/x86-vendors.h>
>
> Nit: Can the asm/-s please all stay together?

Sure, I didn't notice the xen/ because of the lack of a blank line.

>
> Jan



From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:42:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:42:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228139.1534497 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqEE8-0007pT-NQ; Wed, 11 Feb 2026 17:42:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228139.1534497; Wed, 11 Feb 2026 17: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 1vqEE8-0007pM-Ja; Wed, 11 Feb 2026 17:42:12 +0000
Received: by outflank-mailman (input) for mailman id 1228139;
 Wed, 11 Feb 2026 17:42: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=gWxp=AP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqEE7-0007pG-Rs
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:42:11 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fcd283c1-0770-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 18:42:09 +0100 (CET)
Received: from PH8PR22CA0003.namprd22.prod.outlook.com (2603:10b6:510:2d1::6)
 by DM4PR12MB6109.namprd12.prod.outlook.com (2603:10b6:8:ae::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 17:42:03 +0000
Received: from CO1PEPF000044F8.namprd21.prod.outlook.com
 (2603:10b6:510:2d1:cafe::e7) by PH8PR22CA0003.outlook.office365.com
 (2603:10b6:510:2d1::6) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 17:42:02 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000044F8.mail.protection.outlook.com (10.167.241.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.0 via Frontend Transport; Wed, 11 Feb 2026 17:42:02 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Feb
 2026 11:41:49 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fcd283c1-0770-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eUwERUnadp0LZE8owYAhc+XB8r+O7D6CvJDWr43QVTQGn+H1FZn0eAmbipzxUtqK6rX8GfnTgMiWH/Nau0FDwFd924MK+i/TwX7S0o3pNp9ltmqYQzGtcXUdkSD31IQPGQ/ymBKU5DLp8ccS1zpgAF41GYaHi5dawU1Kc5JYRgKxELwPDi2nINYhQiAxf+p7FkGpe5BrrHgtDgko1Wdz7YrhnAoMH0nmeXlMA6U/me1pg1otXKNC6/vTL4MAM1akiouVyfbRp+ptdFT9LC+9TxRodQOwmCDSPhnxg0049gsPYiox/208P64edYsRYFWu2Jbhh2bm25rhEb7qpupUyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7s+q3xsik3zSUdvoW+sB/pYMv9Mah5Pivq6sXERP4ck=;
 b=gKcvwh20KdshPW8nBxdmbKu/bouNV0vgCyyrRKNU7/a4hHFjgUI1Qv75J+Ugnq14fUyN/BrT0pNYR8JQVJgXbFOM7rROipupwsnqK8iMGvAaYXJUiH18Eqvp8pLHUVzPoOVqesazMEhdAtKn+2y1r8d+ldGhjA98q9FfF8kAHgT2QaoTqE8tRiFXM2j059kLgNN61bg4wifRp3jlmmSlJfpSkwp9BuWAmwXqeYfHuZJCU+JnJvN51ineAugsldggyaYGYMDcKewSQwzql06MhZIv+g2F/xGvdszAC/HQbVvMxLuCzqtxpgFdEohse3sS/HqMUevAXB/HeSZCL/loqA==
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=7s+q3xsik3zSUdvoW+sB/pYMv9Mah5Pivq6sXERP4ck=;
 b=ohG5zuMWOCnhPqEnVbh9nxrgLhIjp8GX2Sf/beCbtHBLrGy+wnH/gAGOh0RoUIx+o28pZLIaecCsIkXR84xej3THUJaO/YU2lX5LBbnavjOOJwK5FRCJSC9IPSTvymSsRHRyjpantYTFxfl2xsMPEj7DJ1Jdr1B9eyvUW29NB8s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Feb 2026 18:41:48 +0100
Message-ID: <DGCBG8493YBL.17QYWCVX62YDQ@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 01/12] x86: Reject CPU policies with vendors other than
 the host's
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-2-alejandro.garciavallejo@amd.com>
 <a20d3f93-2209-4035-bacd-8bd00fb12d77@suse.com>
In-Reply-To: <a20d3f93-2209-4035-bacd-8bd00fb12d77@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000044F8:EE_|DM4PR12MB6109:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b98156e-98f6-4159-26d6-08de6994ddb5
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?VzJHZ3V2eDV2bUVqZUlObXVVQm1iYWtZWjVpemtYMFNhT3Mxa1FwRWd4Ym16?=
 =?utf-8?B?MWk4YmM1SndTSzAwalhVY0I2V3VhMzlDenZBR0hJYmE5RmtmS0MyamFOZjNk?=
 =?utf-8?B?Z3l5MmpBN1M0UkI2aTlZcVQyNDJ6cXpjRE1SZ3gwdU9qR0RkRE0vYWdXV3Ra?=
 =?utf-8?B?c2ZJQTRqdkI4ZmcxaEZ0NGVVeC9TMlA1V3UxMllib1VjODRvb1E0eEEzOUtL?=
 =?utf-8?B?SDdiRmhMYU54MWpXUEsxaDdsN0Z0ZS9vR3RsMU1LRUdKMUJlN2hnT05RRkNT?=
 =?utf-8?B?TnFicEIxWG9PTHY2RkpIVzZCRUdLblJ4c2JiR0YyNkFGTFRzZ3lIZnFreDJE?=
 =?utf-8?B?dnE2ekVWMkJLM1Nac3pHUVFvdXVGUzBMSTg3NG9RaTluWlk2emtEM25lbEw5?=
 =?utf-8?B?bW9UWHlSenpicHNSZmdZZldBa1lHb2JPTnF3SCtDWHhwTzlwZWRjd25qaDM5?=
 =?utf-8?B?MWJXckFVZU5tMjVraG5wdDB3WVViQURUV1dQSnJmeFJsNG1FaWo0VHRZY041?=
 =?utf-8?B?aTVpdXo4RURqTWlTM3diTk1IMXpFWGw3Ry90ZldSRktGdHJsQU9LbFJwbUtL?=
 =?utf-8?B?U1czcWdBK1dpTDdxdjU5UGpWMEc3VkdSUXZ1dFNwUGVzaXV6QjVBSDVpMlN4?=
 =?utf-8?B?LzhPNXk1WHlDT0FzV0ZlNEhLd0o4bGFWaHJTMDRDVVg2ak9udW1ObGxnNVpX?=
 =?utf-8?B?L09iYkROMlNuMW1hYU53eVNDNC9PbVQ3UCtSeTRUdFpiMkJnd2oyQVVXczQv?=
 =?utf-8?B?bEVQMmZMcjNtR2l0RUFlclpueFNMckk3ZTVCbWRSczB1OWFCaTBHZVJqNC90?=
 =?utf-8?B?OE9BUUlWa1pqUXM5M0ZoazNSNW1DSVBOZzZrcFh2NlJGa3ZwNWg4K3NqZUJ6?=
 =?utf-8?B?L3NlTzFNcHluQWJpbW1iVSszaXdDelhYTlQ4OVp0NkNCZEVQY1MyS09ubjQw?=
 =?utf-8?B?UVBTc0hya0RrYW9ZVjRDc1FQMzJ4ck1KeVNtYUpZRURIRG96Yks2K2pmYVVU?=
 =?utf-8?B?UkZuQmVLWlhEeS9sdDR0UXVIWFFuMkxxaHVLYXFWMVoxZ2xhTk1zc2dhY3ps?=
 =?utf-8?B?c0NxbEh6U0t2aUpEZXZPbXR4Vnl2RGd6WXp2N2VtaHh6a2tXb0VqV2xMQWdq?=
 =?utf-8?B?ZFlvTjhuS0pvQ3hxNzJ3SytjUGZaRW5uOUpBNVFxQ295eGRnM1orSmFpRXJF?=
 =?utf-8?B?dW5ac2NBbjNmUWZVdHBPbUN5QkYyNUx6dkpic2tGZWdyRnI1WFcrUVN1L3Q0?=
 =?utf-8?B?NHNuTjJ2b3llc2NxTHlHaktTS1NZaDRJalF6eUlzd0xERGh2TkNnaXdBcEZk?=
 =?utf-8?B?MDl2WEliQlRxM2h4VDZ4dXRNWVdvd2d6M2Y0N0JjbUZFZTRwNlhXdUtIaStu?=
 =?utf-8?B?OERtNUtWTXRCUWZSK3ZVU251MVRzTFR2Nm1kS3ZQU1VlMkphSkFRbDdUOE1n?=
 =?utf-8?B?WE1mZlFtNDlxdENLakYvd0hmdEJPMmlxS0RDNHh6SHBXMXlsQnhuUWR1dERT?=
 =?utf-8?B?TzY2bGx6OS9ZMU1NMDNwN3lvaWpDVGJEbE5iTUttUmVybEg0N0RoN2Nadm1P?=
 =?utf-8?B?Z1BxeHpvMGxCUnlnbDI0VTdacUZEWHU4VHJ2Mlk1YkxZTG5vNSszK1BrRkVh?=
 =?utf-8?B?dFNTc3owTmJncWVBV1NsYUdjZHYzYXlJR3pjZVZrMndWOGhVZFAvUUZpbGVI?=
 =?utf-8?B?NzRNdXhUbFEzazNlVEYwM2E4cks0UUQ3SGgwZUx1U1Q0SWl1OWVnejhobXQ2?=
 =?utf-8?B?K1NsMXp3L3ROOWkwSVdzRzdIdjhpWFJIajZ5eGRydmozTUpEZktmMTFDWW1W?=
 =?utf-8?B?TVBNZWE1SzVhVEFvSXFGa2hHcFNZVnVSZjNya2xYbUh1ZGJuT3l5dm5jamtN?=
 =?utf-8?B?QXhEdEZjMHZlSFVmM1Mzd1BGdTJrcCtmeGp0c2xoaGdUOW1ncDZ0V2F4Z01Z?=
 =?utf-8?B?U0V4eEdIVDVZWEs4RFBWS29YQ3pCU0JpTlFWWnQ2Uk1nYjF5M3RiOXQzLzZB?=
 =?utf-8?B?UUJrSnlnaG5mOUdLUFBQZXREL21Bay9sRkpOTzVHTnlZTk1FaXdmNlJRdE9k?=
 =?utf-8?B?OU80WEdteTU1cmNXQzVUVFZUdUpBaDN5K0trRWNqOHJJcTFXVDh3Q0pOWWt3?=
 =?utf-8?B?cytrc25QRGxPNmREVVFaTTRhcWNJNHRVZHhWS245VVZRQU8yeWM2OC9DSHI1?=
 =?utf-8?B?WWM3YnlleXJBVmU1N1BmNmpjdFExODBLRU4yR2JVZlR5VEQyOWFSWmR2NWs3?=
 =?utf-8?B?VTNOU2ZIQkcwY3lHU3hPTi9GcnlRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	TxWvzka+AcHt8++BqvqPSwT4TQF7DdltrcrMK8Phpj+ie0sKy+aaY/3JP+B6rIooG76sufSkhlmwWjYVBnUiUt1vGrpyNZwwknihNvPZ27RgQ+4B7bMNik4Y3pUmnmfKQ6Hgi3TH5l2WBwcAtsyJXjIqn1bleW1dSEmQgglbkQxQT7I76wKdzVcdrgljM9CDmxPwa19W2yxRQpoJXIr47giNoh4GfpFJz6627JoOZTN7Fwk142KNQUIbEFLQ8UPxYorUfUhNr57FA7GITaYx0fth+7lEQ+PNFEh8XgyJLqxnThUqTlfEEqoq9bDYpae4YhVgkpFdbO9Lk2JGTD2IDkHJV8cQqYvBcmXbYuUkaTYnMDSlhWdwLQXn3ZyMSYQ875C8BaM7qDxFX2m+2MpTI4ALK8h4x8k3q1wuJ6dCskLEo0HQ/khygQLSKWKhHKyH
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 17:42:02.8101
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b98156e-98f6-4159-26d6-08de6994ddb5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000044F8.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6109

On Wed Feb 11, 2026 at 4:41 PM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> --- a/xen/lib/x86/policy.c
>> +++ b/xen/lib/x86/policy.c
>> @@ -15,7 +15,8 @@ int x86_cpu_policies_are_compatible(const struct cpu_p=
olicy *host,
>>  #define FAIL_MSR(m) \
>>      do { e.msr =3D (m); goto out; } while ( 0 )
>> =20
>> -    if ( guest->basic.max_leaf > host->basic.max_leaf )
>> +    if ( (guest->x86_vendor     !=3D host->x86_vendor) ||
>
> With the subsequent "unknown" discussion also in mind, I wonder: Should w=
e
> fail the request here when either side is "unknown"?

That'd preclude the creation of VMs on new vendors. At that point, might as
well drop support for unknown vendors altogether. I wouldn't mind that.

I was thinking of comparing the x86_vendor_id bytes instead, as I answered
to Roger. Then the invariant that only $VENDOR VMs run on $VENDOR hosts is
preserved even if we don't know about them.

Cheers,
Alejandro.


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:52:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:52:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228166.1534507 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqENZ-0001L1-JO; Wed, 11 Feb 2026 17:51:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228166.1534507; Wed, 11 Feb 2026 17:51:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqENZ-0001Ku-En; Wed, 11 Feb 2026 17:51:57 +0000
Received: by outflank-mailman (input) for mailman id 1228166;
 Wed, 11 Feb 2026 17:51: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=gWxp=AP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqENY-0001Ko-1O
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:51:56 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 58e545c5-0772-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:51:53 +0100 (CET)
Received: from BL1P221CA0040.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:5b5::15)
 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.9611.10; Wed, 11 Feb 2026 17:51:46 +0000
Received: from BL02EPF0001A0FC.namprd03.prod.outlook.com
 (2603:10b6:208:5b5:cafe::ea) by BL1P221CA0040.outlook.office365.com
 (2603:10b6:208:5b5::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 17:51:51 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0001A0FC.mail.protection.outlook.com (10.167.242.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 17:51:45 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Feb
 2026 11:51:44 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58e545c5-0772-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uxHgZyPqfnFUCu8wxhECOJLkTVG82Hw46b3XxSLz9zYk90mAjIGcqbWGRIgz7fYym35tMs1kOLx8eeJHsooEKbQulUFiPL29oklvLhbWH41mPqdnojgF9iIFbvhiXJrEIw6b0HESDl1mToCSwhQWnX9w5F1F1bMHPm2QIWOSIaDW7B4RtSBYhazT9GWxcurVoyXSaCWdjQoSBw+5xAmQtdCYLTnN1KJkaFoPAeipnFVhOCP+yMgFh30OP9kTRRaknXBBLJWaWwNIjlM4ZCMlfIzSzs4S+ymxSYhkQynbR0VqYEcFqLdHR2dLEF1QHRV/9I710FQQrUp5vtRgonQJTw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IyUdysUO+/Aj6zW6ycXlJSe1qFojlP8/6o7CifbAs9M=;
 b=SdYoy0o4Zgl6qBwQbE2RCsMcDO8N8WRN2xpLwAr9V4+eGJqdCzp3M47DG88u8ZyH2uZYC8AeW40Am5TQZXcyWdk3M0QvHSCRe33R86WBgIV2cYdsctMVZVRtm77PVbSYZ63B8yv6yNy5oPLLnN9pXZHr+5ybf5xG08JLdiAOTe3TeObevLW+JksynukpMWzR3/mgY19U9lyORMoTRYPDssfRGtawTV2XhtFxOaQhrxyortDkGog1IpwBw0UIgZBd8BRJGp7j4S8SSuticBP/d+wADFYP+H5ImpVQg1xtUeAGQziqiXld00EXFyuQazIZG+1/H2Hu2Yk8kjNYXlye0w==
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=IyUdysUO+/Aj6zW6ycXlJSe1qFojlP8/6o7CifbAs9M=;
 b=gJS1/NUx6WnTeg8skrIlgY2U0pXgYDNl7zsd5oRQXy/f3qJLbNWXBJTWAoHdmfTaau0YzEbNAIOpZ/pz4DzyQ6fIyKEKjEL54Yq570Cif7x//kljVcXhMRPbkM+jcWQnLgoBhq5/Hc0ncMwZfP9Tbpg6j37whHTuEEp3SxO6BAk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Feb 2026 18:51:43 +0100
Message-ID: <DGCBNTE7OB2D.3M7278B98EYPZ@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 02/12] x86: Add more granularity to the vendors in
 Kconfig
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-3-alejandro.garciavallejo@amd.com>
 <b284e16c-cd99-4595-8fcf-264c378fc57d@suse.com>
In-Reply-To: <b284e16c-cd99-4595-8fcf-264c378fc57d@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FC:EE_|DS0PR12MB8344:EE_
X-MS-Office365-Filtering-Correlation-Id: 08f868fc-744a-43ad-1dac-08de6996392a
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?M1pob1o0NDlDbkprd2V2czlCOFFiTENPUm5MVks0R0tvMnNyWUczcU00WGhB?=
 =?utf-8?B?L01VV3dvQWN3NzhDTU45bDJjR1hOSkpQSWdXSlA4WGVRSndZbEY3cWVBRVNW?=
 =?utf-8?B?SnRzL1Npd1Q4NVIvcjBKV2lSMWJUTzVHT3pLMGx2bjZSQTRaZDdxQmFVZmdJ?=
 =?utf-8?B?MHp4eStxUWNwdEIvbndrRmxxeXMrWktCRU03YVE3Qkx1VndnSXVydHJRN3l0?=
 =?utf-8?B?S0ltV2lWV1p6a0JQR1hwNTJkRVlQT1FIM01meTAzVXVmUG5PZVZHSFF0Smgx?=
 =?utf-8?B?QWZZT0RZZFNVV2lzNTdOdVBjaFJUY3BHb2NDeEpTSDdIcTRUdEtyTmMrY3JQ?=
 =?utf-8?B?QjZzYlNhWXhPUW52TVNBVnFkekgwSGNNM2NpNXBPV0lXbnRjT1FwZmVCeXZM?=
 =?utf-8?B?eHJkOXpoZ05kZ3l3SUFCKzdGOVEwTlRUdGZYemlsNTZ0eE1waWw1SW9aNkdn?=
 =?utf-8?B?QTBPNzQza0Iyd2piWnFGRURlNnNUQ3FEVVZxV05Dc3FFb1B2aTRKeGpuRmxh?=
 =?utf-8?B?WFBDbnErRXJxdEpiQzhLbEdKaFFXMklmM2FvcERTenQyZkovWC80WnQzL3oy?=
 =?utf-8?B?K0FvU01JWDl0MjNDMTZOZHZrcSt6bmVOZ3Bna0Y4ZzF4ODEvU2pTTElwMG5M?=
 =?utf-8?B?dVhKcEhlODFhWTVWUzdDT1c0R2FoR0ZxV2hDSUxyaUtRc3F3ekpLQmpoUVl4?=
 =?utf-8?B?aGFpNWxrRDlHMVdXVjJpUUVzSW5meGQ4Q1dRUHJTRmowclpWcW9ObkhmWTBR?=
 =?utf-8?B?Q1RUUk9LeUIwNHB2SUZXdGc0RzZBVUwrdERhMnpuUmpTZWhaa0ZyUWRjamV4?=
 =?utf-8?B?WmkyWENqRlFuSXUwcTN0RzY5QW1PNlExanpoQlhtVGI5eUZSanJ3bmNKUTdo?=
 =?utf-8?B?anNENm1mSnNBNUNKQWN6YjEyekNQVmw4UHlGc0d6S1Q2aGRlNzlmakNNS1Zo?=
 =?utf-8?B?WjdEZEdDbmlVWCtXTHpVSTEzUEt2VVEyZkZaZWlpNnlwb3JoTFFNelFNcFBa?=
 =?utf-8?B?cHRtMnR1L3BUc0IwNUlsWmtaeVdCTG5RdENCWFh0VWpreDNPaWhjdVp4ZUdX?=
 =?utf-8?B?cWgxaDV4ZUdxbHdHQk10SHJQeXV1bXFsb0MxZGJxR21oaUprblFidGs0RnN4?=
 =?utf-8?B?V1BQV2NSdjlYc21yKzlzK1V2RThnbldDSHBZWktFN2M4MU5HRmtLNFpUK0pD?=
 =?utf-8?B?VnZrTW50TENHdDRBTkNMVlF2VGUzMkNYSmNnOWk4L1lOQk9oUHBnaFIrT0lJ?=
 =?utf-8?B?WGtWVjB2Y1VBS3FPRnBtYUpVaDQ4T3RQcFpZWWxpK0VjeDdGdDFFWE9XQjI3?=
 =?utf-8?B?Uk9waFZ4SWdxOFZ0eEx4bVBqVjNBczVXNDNlaVVrL3hrV1hHWHFLaUxmdkpz?=
 =?utf-8?B?OWFXV0F0bzJmQmVaRkM1VThaNldCdm9XN1VEc2ZTT0RaYk9wYzk5djErWVpR?=
 =?utf-8?B?R3JrVG5Zd0IrK0pIZWVTa1ZKZWgza2tjUWFPMTlOU0gwcStkbXVnaHBESTZh?=
 =?utf-8?B?cTlXeGVyMFI3N2xqUnd0MTA0LzdRSzc3Mmw1RHpabzZXTGFabStOZGE0UUpP?=
 =?utf-8?B?eXhIOHdIZG5UUStoWmdScmJsRGZ2M0o5TG80NVJPOWRIQ3JuM1ZJTTJkZ282?=
 =?utf-8?B?TW9PMHZ6L09jMFFXMDlFU0xiVU9VQ0lCTnN4QlVqeC9pczNnNGlzWGtxcVF6?=
 =?utf-8?B?S0pmRUF4UUt1c0x5elVPWjZ1RlJ5LzR3dTFib0k0bzh1L0VUdDRlb0gvb0tR?=
 =?utf-8?B?SUZTcmNOU1kxdnhGZklxNEdaZzZNa1B2TkJ0dTg3QmhxSjduS0dNaWFVOXhS?=
 =?utf-8?B?T1hpVElDb3VHQ1AvNmF2azlhTDZyRHl0eXFHQ0paNkJXZUJhT2ZZZk9RQmhl?=
 =?utf-8?B?bUxYdmUrbzJSc2syV0puTjBleHdJN1dFc1VNZng5UlB5ZVE5YlBMd29lVnRU?=
 =?utf-8?B?OHpxTVdWRVVOMCthd1lEVmIwVmJJdWNGZGY4TExYZW5CNWZVNlZvNEVxUFhJ?=
 =?utf-8?B?VllDUUVOZmd0RUlyc1ZwdEFaR0xmSXdNWnZpNWJUV0NHWTY5emFJZHFBbzVh?=
 =?utf-8?B?Nm5uL0JoNXQ4K3VXUlpZcVpMcXJpaE1KMVhkVTR4d3J4d0MzblB3ZDVHZ09a?=
 =?utf-8?B?aG1nUlkrVkRmSUZRdTQ2a2dhQU9ZaWRRY1pMV3N5SWtUY20vYVdyeHRDQ1dp?=
 =?utf-8?B?TDkwT2pJZk9YRVBONDlEWHJheUVpTE9EVDBOVm13QS8rWWNWM1QwMUtSRzlS?=
 =?utf-8?B?cXYyTkN6WDlENjN4OEMzSEVMZFN3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	pFbh4tTB/lxnIaYPHpbCoKby2i+3Z+JaIKDoXD13AegDGX6KCXQzNvfFiFB3E75A3k2oYHEOnx+o8doHwYj/6U2zKFTCrFZ5vhjh3QsySlzVhvm/NeOKMO7+3+k8NC1ZbpSUbPBScX6Q3gGrgUkSv82Mb0bYYWrm4gEUCh63pDbGX1ac6cBRiogMtpg+Pd6yf+WjtBtByKViCuGTEiXqRXvLa2IBVjQ0hbnzYfrMCIkfnD5yDa1f1CT7q+08kf06XtDHK0LyO+PWRXiW/oBE33Dd8fQqPTevJfntj6ewRGxjHzC/DXvX7RayIheRCyCRYixYcl3bRaqbpBY/esjj28OfOJ4dZj4JRATcEU19u/wd2VIXxaP481hsaLIinhjPeFa0ekDieA/y0yRkR56h+K9QnD1lKaurJa85jEWIxEwyBD/LMaVVjk2e4StLIxSU
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 17:51:45.7832
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 08f868fc-744a-43ad-1dac-08de6996392a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8344

On Wed Feb 11, 2026 at 5:06 PM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/Kconfig.cpu
>> +++ b/xen/arch/x86/Kconfig.cpu
>> @@ -19,4 +19,47 @@ config INTEL
>>  	  May be turned off in builds targetting other vendors.  Otherwise,
>>  	  must be enabled for Xen to work suitably on Intel platforms.
>> =20
>> +config HYGON
>> +	bool "Support Hygon CPUs"
>> +	select AMD
>> +	default y
>> +	help
>> +	  Detection, tunings and quirks for Hygon platforms.
>> +
>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>> +	  must be enabled for Xen to work suitably on Hygon platforms.
>> +
>> +
>> +config CENTAUR
>> +	bool "Support Centaur CPUs"
>> +	select INTEL
>> +	default y
>> +	help
>> +	  Detection, tunings and quirks for Centaur platforms.
>> +
>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>> +	  must be enabled for Xen to work suitably on Centaur platforms.
>> +
>> +config SHANGHAI
>> +	bool "Support Shanghai CPUs"
>> +	select INTEL
>> +	default y
>> +	help
>> +	  Detection, tunings and quirks for Shanghai platforms.
>> +
>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>> +	  must be enabled for Xen to work suitably on Shanghai platforms.
>> +
>> +config UNKNOWN_CPU_VENDOR
>> +	bool "Support unknown CPU vendors"
>> +	default y
>> +	help
>> +	  This option prevents a panic on boot when the host CPU vendor isn't
>> +	  supported by going into a legacy compatibility mode and not applying
>> +	  any relevant tunings or quirks.
>> +
>> +	  Not selecting this options while selecting multiple vendors doesn't =
have
>> +	  any major effect on code size, but selecting a single vendor with th=
is
>> +	  option cleared produces a much smaller build.
>
> Shouldn't this option's prompt be suppressed when all other vendors were
> selected off? Else the degenerate case can result that I mentioned in
> reply to patch 03.
>
> Jan

You mean having the option disappear when any explicit vendor is enabled?

I guess we could. It wouldn't be very obvious to the user this can be toggl=
ed,
but now again, if they are unticking vendors they would end up noticing.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:58:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:58:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228181.1534515 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqETM-00029z-9G; Wed, 11 Feb 2026 17:57:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228181.1534515; Wed, 11 Feb 2026 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 1vqETM-00029s-6P; Wed, 11 Feb 2026 17:57:56 +0000
Received: by outflank-mailman (input) for mailman id 1228181;
 Wed, 11 Feb 2026 17:57: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=gWxp=AP=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqETK-00026u-Kn
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:57:54 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2d713005-0773-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:57:50 +0100 (CET)
Received: from CH5P223CA0022.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:1f3::12)
 by LV2PR12MB5966.namprd12.prod.outlook.com (2603:10b6:408:171::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Wed, 11 Feb
 2026 17:57:43 +0000
Received: from DS2PEPF0000343D.namprd02.prod.outlook.com
 (2603:10b6:610:1f3:cafe::3c) by CH5P223CA0022.outlook.office365.com
 (2603:10b6:610:1f3::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 17:57:40 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 17:57:43 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Feb
 2026 11:57:41 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d713005-0773-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=h291TU6/vOtrQC/eoLHSFaSpY7CLIxhx8IkG+ot7f4nZyrLgs62N0h56zMjvLDiwEVGleSI8NSNXu/xhNMtO4/hGM8zVujEnajCmwjM0DLadUTBbW9uYTOo7KYUmIuBOElX7y5LDbWHsgNPIfC8+q8gmqGFcqupPqvDOzk4aOyRsiGV6CwZ6B47OxpnE4LRLPycbJEBx2XsAqVHvpzv5IDChYFIqjKZhz/X0ogL69XAyNstZSgzVrxdA+Sz4RA656g720cVYpRJfuxuKh7V0tVqoxSUOuIP1EiqOAQdyIrU2ovG84vn5g0FlUZ3yEOofoTT80rIPliklCVawZ1C2Ig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nWihIsOMir/QyGHelVxwovWm2/FXSR3+lVaRuDFLVjY=;
 b=jp+jujHeLRa4Yvrc3oNNotGNacWdVI3cBe6BiYS58NoaqRS+YvzuiYOTfmjcHqQ+NEJm94fNx7pXBsIOBSHhvbazdRQrffYky6xAc/9+kFsrWBbXczL+06Nvoev1dEjAIzUaY7jWiKySPDSSETH4H0ZAVOFzGYheNngLdU60LlbM5TAbkpNPPUh3Qykf+L8ZjbdzIHjgaG5Us+b8HK89fhzdhyM3+uZHDqK1SMRRmxjBL3vMqzWA6v0pNaRCUx4IpEgM5WlW9955HMp8wfwiZe3SYQFYVym5qoiutpm9M2ry2Xclz8YBWwqfyh6FuVJIL4M6uA7mM+asF/QTaKgmKg==
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=nWihIsOMir/QyGHelVxwovWm2/FXSR3+lVaRuDFLVjY=;
 b=CKs4AzOwKObOuKWNSb3BDOBWRlW1cIs8DjaN1XFC/gSMadyZYwUdIJKpo7x473nQLe5QI9OMu9W/eJpiwLLpxC9+QLDDd+VmSfc6Mk2R2b4XoO4t8485/A06eNZZM7IEQA0jkv6pxTBLmZtIGHj4ZgQXkEgIlCqjd2wmXDlx33Y=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Wed, 11 Feb 2026 18:57:40 +0100
Message-ID: <DGCBSDMNRRR6.79ZDO4FVP8D0@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's
 CPU vendor
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
 <7eeb369d-04a9-4c17-983c-078e45b4679d@suse.com>
 <DGCBB98OUVTU.1771D50B4INHI@amd.com>
In-Reply-To: <DGCBB98OUVTU.1771D50B4INHI@amd.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS2PEPF0000343D:EE_|LV2PR12MB5966:EE_
X-MS-Office365-Filtering-Correlation-Id: 19519af5-ec61-46f8-25bf-08de69970e27
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?T1Aybk82bGxOeEZJZlBaSitNeWhJTUdYOFFMWjBHTDFYUno3SnJZMXl5ZFVR?=
 =?utf-8?B?bWwzcnQyUFNDVCtKdGNsOVEzT25wWWRtUmVxVmNSZTdqVnJQVm84WXR3T2lt?=
 =?utf-8?B?ZW9hWEROanpaVFlLV2VBNEFRTnFLWFM1Y1c4aGFtdVhnYUFTYVVud1FEUEFn?=
 =?utf-8?B?TnNYNWxoeWxTeXorK2dSODYwaXBWdndoeHNoYmtZUlZqbWZTdlBGOGlITkEy?=
 =?utf-8?B?eTd6ZGtSbkM4QVFRd1BHN0Q3Wm03ckZBMUw4b1k3alV2bUNYS0R5Zlc2ZDZK?=
 =?utf-8?B?NW90UEVFdmFuWEFNRFIzMGs1WCtPcDlKeVRzdDdiSFdkMkhZaERDelVNUTF6?=
 =?utf-8?B?U1d1TGNmcVRXN1psSmVYV3pHTkljSW1oUHVNRmRmUkgrai84ZGh4MGpMWGc1?=
 =?utf-8?B?QW95cDMxWi9Nck1PTlZVNXREZ2trYUtHYjlnaDVURW43Y3o3WFV3eWw4a0dR?=
 =?utf-8?B?aVArejZrTENzUlpkQkpDckgzZmxMS09PZkRYbHNNZXo4cVZBdFZvU0RDdzRl?=
 =?utf-8?B?elVseEhuK1VCb0tpUkc2UitDMjRMcURGOCt4dG5CeXQ4TFlCbUpkRm5DZWhr?=
 =?utf-8?B?STZVWnZ6STZ4dkdXN0FSR1ArczZiRjQ0cUpkM04wUFNrc1lsQURtOXpZdUhG?=
 =?utf-8?B?K1dtclMvQktEeERQK2Q5NTNObGtRbVl6S2tJY214R2djVmVZVlpWUE5zV0NT?=
 =?utf-8?B?TE84ZVJSUFNaL0FoZlVzWjJGb05yaFgyMWpnR2IyMFEvMG9HMkRzRnRDeDMw?=
 =?utf-8?B?MVR4a3BGS2h3Z0Q2SGlyV1dCeGVkRnZXUjlYT2xSc3pjT2JWZG1hVnMwcnV6?=
 =?utf-8?B?eDNjdktsbjdtWWczd05OamdiZGhrTkNPUGwzR2pYazRXOVJZeEIxOFZkeG5i?=
 =?utf-8?B?dGFLcDlkQ3FTdXg5aDFyT1BqcVVBc3ZIZFliYTVvMzROMEgvRzBhbEJmQWdu?=
 =?utf-8?B?T0tUSGdhQWprMXJzUEpxajlPSlNQU2k1L0VNWGN0RVQ0YituVEhIRzJjWkRi?=
 =?utf-8?B?eWpwaEZKa21JMHJuZnAwWm9MeTVpSUcvVmdUUHdkcEsvUDFSK2NKSVJySHJD?=
 =?utf-8?B?UjJFcDBpek9uM3NzbnhLc2VrclpiR2QrVEdvS3VwVUs3NXJWT21RUEhqTitX?=
 =?utf-8?B?WTlwVUNFcnY0bDJ3RExKSXNldDZ3U1JpM09HUUdCSGxnN2pkYUlpOWI5TTd1?=
 =?utf-8?B?c25XK1RIcEhBa1JOQW0ramhBcTB3M0JkbVA3RjVoR29hZVAwVGZSaW0zcGFa?=
 =?utf-8?B?NHdrTVhPQkR6UmhQOW1KNzV1OURtbURWZ29mN1JyWEZGNnZlSWRPTzFNaUNW?=
 =?utf-8?B?WjF4eHRhM1Ftd3Qzc1dQQkdPcDZocTlCOXBVZEpXM3o5VVZvZGZVQWJQd1pN?=
 =?utf-8?B?c0ZvdXJaUW1Bam5yWk5iN0R6ZmJVZmd0S0NGNG5ucGY4MXJlcTk1cm9Sd21D?=
 =?utf-8?B?VU41WVhJVytWd00yNWpWdHBJa25mVXlpWmxOeEQ3M1cvLzBrL09KWlI5aWY2?=
 =?utf-8?B?OTNVQVZ5Y01YQjNUMHhTZEhDczdWNTRhNGZiMXBCMEF1ZkU2M1BMNGVadnV3?=
 =?utf-8?B?cllMSkZSc0I2U0drQnFabDhQaDEyd0tWZmpuTkdlNTlCMkZHaHZFRlM5cXJW?=
 =?utf-8?B?QmdGdVJoZkUvNitYTjhrWDk2T0hMdWtqRkhLdlNDNnhGNmVnVU4rcmlPQkx2?=
 =?utf-8?B?c1JDV000TlUvTmdqb0pyYU1YdEI4NzNSMzJDQlpaSVZmb1RkaHZQeFlnWWZT?=
 =?utf-8?B?ekRQcVErOFgrd2pnY1E2VjBJY1J4ZDJMdng3TmhwMU9jeWRqWEYxb1ppVUtS?=
 =?utf-8?B?eTkzTlVGN1hOWXZRVWtRNTVrZ1VQeWlwQXNjZnd3K2M4WGFyUmhzWFlZcGlE?=
 =?utf-8?B?OWZVTmtlQUNQYXYwQU13YlhHMGMrR0RJTVFaZ05PQm9SSlFHS041dktkZWJr?=
 =?utf-8?B?emtVY2pzc2NYclVYVXlSTXJtam1haDlBTERBUW9NNWVCZzZlQU1IMnZYQjR4?=
 =?utf-8?B?bDkzMU02dGJ2NHZQTDJ5MCtYaUk1elcyMlB2OVpLZmNhY1p4cWlBZkprWWZX?=
 =?utf-8?B?MS9vdysrb0QwMlRtYUVSMkxpK0V0YlovRy95Nlo5UnZwYmRua1A0a0J1cS9T?=
 =?utf-8?B?bE9lRTNzbFN4QTY0aWNBZnZGamhsVm5sL1dXSkQ3SG5PWmtEZUFva2N0cmdO?=
 =?utf-8?B?UDJBMkpqTURJVG1rcDNNWHF2T3VvWFZUK3JGcTBjcU44MWc5QnBZNmNTUmxp?=
 =?utf-8?B?WnlBZ0MreE5tN0twZEhuTkNRMEV3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	KLarjczLkguzCnaiDdfEDmKN8/QGHfvaetbVfNzTkA8iMrx8McgubH7T1z3H48TsikDPqPumdZWwaxUJ3zfsfvUcjtjWCq/T4ZWOCJaykWULECvd7Yx6DCzHbjRxHVKMGSeC/PkqvtpTZJIdso3T3N/uXqb7dqCV5Iwb5zDymrdSGFY7tht9woWf6cbofZZyQqqTGssYiMIzK+mk90H/Nzu6bVccqV0BaSry0Ph675cnFyzlnhWd31bK9rGv81wtp8FO4XXHOe19pp/N87DPqCz3fwySWmj6AwhPGjPRQuO8cJ5URr4BWzknCWGDkpbq2BmpYvF2kRzI70APjDnuarLvskT3JO0k7WSidMoKAoRT0Q9mCmlbdCZgOrDPYP8X8QKd4VwQkxVduz+KZsyoUEtAQO0lSPWqLSXU3nVGfjH3chDHdsuG5A6Fmd0wLyQl
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 17:57:43.1165
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 19519af5-ec61-46f8-25bf-08de69970e27
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS2PEPF0000343D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5966

On Wed Feb 11, 2026 at 6:35 PM CET, Alejandro Vallejo wrote:
> On Wed Feb 11, 2026 at 5:04 PM CET, Jan Beulich wrote:
>> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/cpu/common.c
>>> +++ b/xen/arch/x86/cpu/common.c
>>> @@ -328,7 +328,11 @@ void __init early_cpu_init(bool verbose)
>>>  	*(u32 *)&c->x86_vendor_id[4] =3D edx;
>>> =20
>>>  	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx);
>>> -	switch (c->x86_vendor) {
>>> +	if ( c->x86_vendor !=3D cpu_vendor() )
>>
>> When we introduce new functions to Linux-style files, nowadays we take
>> the liberty and make them Xen-style right away. In entirely Linux-
>> style functions the style should remain consistently Linux'es, though.
>>
>
> Seeing how I added the tabs I did intend to do that.
>
> Muscle memory and all. Will correct on the next one.
>
>>> +		panic("CPU vendor not compiled-in: %s",
>>> +		      x86_cpuid_vendor_to_str(c->x86_vendor));
>>
>> This will be somewhat awkward when c->x86_vendor is UNKNOWN.
>
> Which only happens on virtualised or imaginary CPUs. In either case you k=
now
> what you're running on and the information is not particularly useful. Th=
e
> important part is the "this hypervisor cannot run on your vendor. Enable =
it
> there".

Oh, wait. You meant when we run on an unknown CPU and the unknown path was
disabled? Yes, that's missing in the condition.

  if ((c->x86_vendor !=3D cpu_vendor()) ||
      (!IS_ENABLED(CONFIG_UNKNOWN_CPU_VENDORS) && !c->x86_vendor))

A hunk got missed in refactors in the default case so that default_cpu got
dropped when the unknown vendor was missing. That was present originally in=
 the
RFC.

Alejandro


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 17:58:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 17:58:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228183.1534525 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqETZ-0002UT-Fs; Wed, 11 Feb 2026 17:58:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228183.1534525; Wed, 11 Feb 2026 17: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 1vqETZ-0002UL-D5; Wed, 11 Feb 2026 17:58:09 +0000
Received: by outflank-mailman (input) for mailman id 1228183;
 Wed, 11 Feb 2026 17: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=ZNQR=AP=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vqETX-00026u-FI
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 17:58:07 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 36e7e5cc-0773-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 18:58:05 +0100 (CET)
Received: from SJ0PR03CA0185.namprd03.prod.outlook.com (2603:10b6:a03:2ef::10)
 by DS0PR12MB7745.namprd12.prod.outlook.com (2603:10b6:8:13c::8) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 17:57:59 +0000
Received: from BY1PEPF0001AE18.namprd04.prod.outlook.com
 (2603:10b6:a03:2ef:cafe::1b) by SJ0PR03CA0185.outlook.office365.com
 (2603:10b6:a03:2ef::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 17:57:50 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BY1PEPF0001AE18.mail.protection.outlook.com (10.167.242.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 17:57:58 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Feb
 2026 11:57:58 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 11 Feb
 2026 09:57:58 -0800
Received: from [172.25.238.194] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 11 Feb 2026 11:57:57 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36e7e5cc-0773-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=S/fBXw6PfKklBYCO1j1D7UW6W3aG57pk7l0RpnZpn0Ej9trTnesy+G/J/O/TMU1oqrZfbaUpjOIacXhnzRVTw+q7p7/swXmfr2s+ohj1/uzguSKiuxKnsCjhLZThh6jPtCBXysD9S6d5xps64VFFlwc1ziYQwAjGAyadDppEd3FSjY2gO7qSYzGjuOkGQ2h9eSSxgBajy/LwvcOY2NZyV2+3Pqi4HUTHAHKevon2ob1DT9a2JV71YTFv2PhrpBZC/v35i39EpS28lZB4MEunLqV6HCcPy4Tj9F5SV2Rvr88DTcEumKLDa0Z+GfsKPbUuD5TC8ysqHrP5GYcc82lsQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cuxChwQnYs1S+LdwdTX/HlOeyWPTe+gDwEfHWFxVZys=;
 b=MtH0MkSn0T0RgDTPtGL101Yqn3VWRr3P+XLRrp8ODzJ8XQPZbQQv2SV3MyCjIBgFgCZxywVnS/65rnR0KUolzF2BuJ/ixcxARKy67L5dKmpbB8wG6D92P89dc1+MvKmM/DVrn8e3+AZyMOyfyFYSrrc2Wrcg0Z2tVhO64VMYkIwEF59AA8ZxnUTw6Mn48JEsFGbqJ0Y51rCw4Z3Af0WQYKau4rhkihCxtepg3b0+CLL8tKJqWIpKEHEm5ukKRBFbS1PO8MOGzlysS9xY53ZcYp5CoEzv5wvUyT6cUPPpZm92bOHUX5skF6iEgfGCoMfc8Q8LxEHD//87mabiUYyAgQ==
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=cuxChwQnYs1S+LdwdTX/HlOeyWPTe+gDwEfHWFxVZys=;
 b=cZ7OWEj5ruOMi3n4xNpUwWshqCi2TelMAup8yAN85pdcWVvc/VY74AfWz77tRXIXMWz4/0Nk/AhfyJlM512M2IHc4KPly1nenvm6uHl8BaMERVziRRdjldhhj82Zp0JD18KHEK2Ml0RoFBn14UsrHWJW4KijqFodIn21q9TRcKk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <8fb08e1f-a0d4-45b5-ac7f-3b14db81b8a3@amd.com>
Date: Wed, 11 Feb 2026 12:57:53 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Put wait.c behind CONFIG_WAIT
To: Andrew Cooper <andrew.cooper3@citrix.com>,
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>, "Michal
 Orzel" <michal.orzel@amd.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>
References: <20260211170118.109946-1-jason.andryuk@amd.com>
 <73bf621d-0795-4fbe-b926-71be3525b4c7@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <73bf621d-0795-4fbe-b926-71be3525b4c7@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE18:EE_|DS0PR12MB7745:EE_
X-MS-Office365-Filtering-Correlation-Id: ae6b61b5-6639-4b13-1d4a-08de69971798
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?UGlGanNlSWJDWDBXdE9CN3l4bFhYb2xpZ0NDcnpZNC9TTCt3SVdCNmFrMC85?=
 =?utf-8?B?MFFGRFRyTU8rZDgxMzFZTlR4bUdibk1pckhMd0VOY1MrRDc5WFpwQ1BQTS9G?=
 =?utf-8?B?VmFHS05yMDFSVURTV3JWUjJoa1BSbWxaNEFiUmZtRlQwT2VzNzlzbEtuVTFM?=
 =?utf-8?B?cFJrV1dsNWR2OXV1eGQwaG5DNnBUTVJvK0xoNUlNZkp6K0Vnb3JiaXE4T2Fa?=
 =?utf-8?B?cUVlQjRZdHBRT0doK01IbTFYYjV4dWpRVjJFb0ZOZ2ZSM1pKWmdZdHFOUXVv?=
 =?utf-8?B?TW8wUWh4NW5LN2FrMHZ6SVpoRFZQQ0tsa25KU3BzQ25JV2FHMFNxQ2xvWHEr?=
 =?utf-8?B?QmNuZ1pFc0F3TWQ4Qmx3WnVZbTNBTm5QOEUwTU8wbGJZcEIyazYraXhHQkNH?=
 =?utf-8?B?andyUlVkaEo1bExiMUhPZ3J0b01zVVhSd1p0VjFsdjRvYXpMR1VwK3I4bkJu?=
 =?utf-8?B?dTBrbWRGZ2czNTdVbm5CRGUzV2I5dXhWdzVESy9BZHpVM3JUdjErSld2UUZN?=
 =?utf-8?B?eGdWRDFKWEVZRDVzd1NXOEthNjNnckFWTFRvWEtpSmNWemhZWDIwNWZLdXBG?=
 =?utf-8?B?bkEzdTdrVTcwR0pYQVBtVHU2a1N2SG9abjhPSW5UWmFkUkJicDlJZ0x1VWdx?=
 =?utf-8?B?M3gzUVAyWjJBVUFpeDlZN3UxSjBvU2VMVDcrVC9LakJUN2NZWi8vNWlOY0tU?=
 =?utf-8?B?eUhTVmtBTGh0Z3lIamQ4NXYybXUxSmJGQ3pac1liOWFnN1p2K085Y2ZSY2Vl?=
 =?utf-8?B?THR2R2NKeVhGRlpaN1pzSHZ4VUFDVEJlT29aNm1FVUhnWnlkWHYzOVF6eUw0?=
 =?utf-8?B?N1BoTExNb1dqM3gvQkdQaGpUOFMyQ2Nnby9NeGhJNkMrV2hqZGhubUk3K0Z4?=
 =?utf-8?B?V25DVXI5UTM2QkIzVU9DMWJBOVNOeDBYLzdiS3A3VmFqTEljRjExNVQzdVM5?=
 =?utf-8?B?d1VtTStSRTM4TFRVbmtZZzg3RHJ5ZFFCTkdmMjNvTEhML054NkQ2WXFvOG5F?=
 =?utf-8?B?MEFlUVU4K21GY1RWMWJwZEl6VmdOQWxqay82eGJxbTNmcDIwem9ubngrRVhx?=
 =?utf-8?B?QWZ0eFFYd2s1SnEra0lOMm44SE12Uit0em1qQ2NERXJ6NEZnTGttQW9kTE9r?=
 =?utf-8?B?MXFHWmZrOTZwUi9YMEdkTWwxTjlwbkR2Sk9TRkJoRjZmU2hOQTlyNmlFdGp0?=
 =?utf-8?B?R2hNNU45b29RY1k1MjU0cnVidUJDV3B6RGxieC91ck1meFlaY1NkNHhYTlNY?=
 =?utf-8?B?ZGNsQmJNNk1oSEFNOWsxTHlnOGdVSkRlYzFXSTJtZlFNbjkrbTFtSzI4OWxr?=
 =?utf-8?B?ZlBtalRuTWN2UDZON29qR1BIY2k0Uy95MmRNMGV3UW9nTURFdDBRS0FyQWFl?=
 =?utf-8?B?ZzdadmhXbGpJSk9KTFYzcmQ1RHY2Q0F3TUhkYUZzYm9hMFJSMVhlN082ZUc5?=
 =?utf-8?B?VFZYTFhNbGJkSFBQQTAvNm1OS3k1akdjdlNZMkVIZVV2cVJzazNjTmlWU2N3?=
 =?utf-8?B?WUgwWWZjSktCVUl4NkU4b3NzamM3MmRvL3NpT0JSdXNVdzNaeUNXR2dqeTBI?=
 =?utf-8?B?S1FZNDA4cm9pK1dvb2ZPVkg2cXIydmt4YkdyYk84b3prY3g0VVNVTFFMOStm?=
 =?utf-8?B?dFVoSzlpY012NXh6UUFRdi8xSGFic2JtTkN5Z0RuSUtaWS80Q3Y5YllZY0x2?=
 =?utf-8?B?MEVwbCtOYnZBT1h5YW9pNGtOSW01MkcxVmg2S3RDeG5WMlNyWjBpbDRuSmF1?=
 =?utf-8?B?cVdmaGtYc0NzZU5kVXRVWjZBL1NBRWVaRDVYdlA0eUxsRDNlbzllRTZlekth?=
 =?utf-8?B?UnpWcVJGcGREaGJCMDRvWFQ5ajZDeUc5ZExJb2dYL3NPRE92bUgrWTRxU2xC?=
 =?utf-8?B?VDl5WVc5NC8rbkhQaSsxaE0reGpFbnFrT0hnbURlNk9sY0lzQ1gybTVvajNx?=
 =?utf-8?B?ZVpUZENaRU5BRndYaWZPOVhIcHpERFlJMElKR0dXbUpRR2VxSGMyOHVwVFQ2?=
 =?utf-8?B?YlJWYmlxL1Z2MjJQcnZsK2hpbG9nQi9OWGt6bytlTjQ2MlArcDdCaUhNb3hR?=
 =?utf-8?B?Ukhad2REd0dkVVZrbFAxUTREc0g1bDlFVjlmN3B5TG81bGZCRWdkTE4xaWZn?=
 =?utf-8?B?SHVERFJhWnkvWDJBUjBObTA5NWphMHllbUdWTnFsZzlKSHNUeXBMOEZyNlpH?=
 =?utf-8?B?a1JQSlBLOU5yeGVOYzZFNWJEVnBXcXZsOFJ1eStjM0NRbXNzeWF3V1M2NFBN?=
 =?utf-8?B?MlR1eTZwMUc5dTk2Q204cmV5MXhnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZbKVMAqpkGWLsTKwt0MA3Q5BrwzlEYBcoBXCJ8r1KlfbSINRzIkABNoEa+QOhfoavV2a9mBT5hAP04zT8wGnzcdzR8fFN12b8xeTr05QhjN920PMCxPxGp/TMJ9aekDFTlid6/a7+86U2U5DCkmYsKUNj3NvEQ/xAV5LksZ7GzVtO9JyPp/fCaj9MxE/OGfDI0Vm0XTAnIHR8cMBMBhyLY1Kca5MkgF8PUprIBVPvplbUjt2apWE4U5t+bD437iqLhurxZv9TyVT8zIoJiY6tnG2wfwaod3wTOqs05QfJqMOBkiNrU3pxk3YLns7ik8JwqYdgUUM8mWWyGCKXy4zRRjvDPNhJgGVgueuFDieW1E+s/QjzGfMVdcpn0+A41t90oBSlhLPUibexOWwAEXQQoJcaRgkOy+YzooWBF493di32Cu1/Fn0AFy+F6ZfABlu
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 17:57:58.8673
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ae6b61b5-6639-4b13-1d4a-08de69971798
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE18.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7745

On 2026-02-11 12:30, Andrew Cooper wrote:
> On 11/02/2026 5:01 pm, Jason Andryuk wrote:
>> wait.c is only used by vm_event.c.  Make CONFIG_VM_EVENT select
>> CONFIG_WAIT, and use CONFIG_WAIT to control building it.
>>
>> Provide stubs of functions called from common code.  entry.S needs an
>> ifdef to hide the symbol from the assembly.
>>
>> Also conditionalize .waitqueue_vcpu in struct vcpu to save space.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> I'd really rather see the API/ABI changes required to purge wait.c
> entirely, but I guess this will do in the short term.
> 
> Two things want further thought.
> 
> First, because ARM uses per-vCPU stacks not per-pCPU stacks, it doesn't
> need this infrastructure in the first place, but it looks like it's
> still compiled in and half wired up.  I suppose you don't notice because
> you compile out VM_EVENT on ARM too?
I was focused on x86, and didn't realize this was used by ARM.  I think 
I noticed the lack of check_wakeup_from_wait() calls on ARM.  What did I 
not notice?  Are you saying wait.c should only be built for x86?

> Second CONFIG_WAIT isn't great name because there are many things it
> could be.  I'd be tempted to just reuse CONFIG_VM_EVENT and go without
> CONFIG_WAIT.  I do not want to see any new users of wait.c, and it will
> disappear at some point.

Yes.  I used CONFIG_WAIT since it matched wait.c.  I considered 
CONFIG_WAITQUEUE, but went with the shorter option.  Re-using 
CONFIG_VM_EVENT would be fine with me.  I didn't use it in this 
submission since the waitqueue functionality is more generic.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 19:47:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 19:47:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228272.1534536 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqGBD-0007rA-WE; Wed, 11 Feb 2026 19:47:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228272.1534536; Wed, 11 Feb 2026 19:47: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 1vqGBD-0007r3-SE; Wed, 11 Feb 2026 19:47:19 +0000
Received: by outflank-mailman (input) for mailman id 1228272;
 Wed, 11 Feb 2026 19:47: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=vAzU=AP=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqGBB-0007qX-3v
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 19:47:18 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 726435b7-0782-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 20:47:08 +0100 (CET)
Received: from pps.filterd (m0367124.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61BGR77N1797839
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 19:47:06 GMT
Received: from sj2pr03cu001.outbound.protection.outlook.com
 (mail-westusazon11012003.outbound.protection.outlook.com [52.101.43.3])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c8wa6a73k-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 19:47:06 +0000 (GMT)
Received: from BN1PR13CA0008.namprd13.prod.outlook.com (2603:10b6:408:e2::13)
 by DM4PR16MB5244.namprd16.prod.outlook.com (2603:10b6:8:184::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 19:47:04 +0000
Received: from BN3PEPF0000B069.namprd21.prod.outlook.com
 (2603:10b6:408:e2:cafe::a0) by BN1PR13CA0008.outlook.office365.com
 (2603:10b6:408:e2::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed,
 11 Feb 2026 19:47:00 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BN3PEPF0000B069.mail.protection.outlook.com (10.167.243.68) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.0
 via Frontend Transport; Wed, 11 Feb 2026 19:47:03 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61BGwVUC3520465
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 14:47:02 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c6nag3xea-10
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 14:47:02 -0500 (EST)
Received: from localhost ([19.12.92.221]) by cmsmtp with ESMTPSA
 id qGAuv6CIFlOqbqGAvvfoBX; Wed, 11 Feb 2026 19:47: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: 726435b7-0782-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=GpIQQ6bCAyIOe0v2lqNVhTFut6j
	+5NmBUBFSqPI8/mk=; b=YVXLdKTmqTBlD3le4z9GCGT/invT1qvjLQ8nTQsDEZ+
	6zBZjJ7waEfZzMsOU7bB/UX4rHoy/PQSvbmzgkJJ0lstx31xy0bVotInVbs6og3v
	zFZwuVXAMk3M2Z5Z6riUIzS9iyAsnAGSgxFET0YxMonwNKbLhrEFWGlfldAe8180
	s6BdMfyHqSdmzz3n1yDMEl1tQw5QiGorNbEY4s7DVir/FIRS6mllOd1YinvKqfKk
	2dHS/FRSpOgIko0EIh5A0HHXY3op38RM05EBTn6AmtVS7LNXvccvPQvITMmcPVTl
	djPwId0ne0/g/s0Tw3nDTAIC92qtGCVbW8kuZirlOZw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HuhRaxgDC2RzEcr45JbIMx8mIpehwPIra18UGexbej2i+oac/4MvyFvjQkVPGYfUzzzyEM23Z3VW0YI+4sOtTcA0Klb/uhZkq2JI/0cw7j09+oTRNyZGboDxySx/DOXNLZ/6rMrhEtY6JfOLhP40q1+JYMEmPJ4iXsH5Wpd0n6LBe9mezeytOPssBoKJsNCT1eAt4IgIOuHmLM4xTS9/6damgQiwizTXDPX+uCzHuzp6xfe9YY0rgc6cbA3kZ69PUE6J6PSnE9BkxMeludN282Mzv/f2yYBWv3rYH4B6iwdKKEHe/CtxgqGl2R9XoDQrFHFAZ/LgISo3Gw3DUznR8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GpIQQ6bCAyIOe0v2lqNVhTFut6j+5NmBUBFSqPI8/mk=;
 b=SM8LaWwsavmsnNSaR8E3olj/5RSIzSXc7H/4RzPqylt9UB6Eg3WEZrM43qhLqiXCZUIlfeh8kh2HBbBEEMp8Je6ygaFMIWcT3dBb7NeL9iyrdGkUsXtGC+dmFwQJuxHdj2wvxeGPDy8HXCUrpqDvy4KbZGXkn4OQqRHsd/NEiNIpidFUmGyLt6c4B7EqxQzkfMl+yZ32zMNYaBxuyJhmGCAGRonJ//VXlxPmubB1/PmRXozK3GAmGIY0tOXebmf3ux47GMBkPLZFKATPCoFkqxNFryvPf1PKu4LVuVuHTFSbGmf3cWde9dcX1qcT2O9c8x00lKV0HyFTKdis2/WNPQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GpIQQ6bCAyIOe0v2lqNVhTFut6j+5NmBUBFSqPI8/mk=;
 b=dcBYTbd/yM/beXVIF/orpOaMOmiQz3n25Ij5R5OkERAiC3Ol2d906LUlpo3H5KBmo9dLZerAQk4kwXR9+R4GWvlXa8gkSFYlszVYwtai1gUo9uxp7TUNYbqxEMVMeCJqCiXzOOf3Ko4v+OY6omT6ielsGg4y7mBsv+1cmyR2Uio=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=GpIQQ6bCAyIOe0v2lqNVhTFut6j+5NmBUBFSqPI8/mk=; b=YVpwogSApwSV
	JNUjIc/UHI5G7HBlQFRUxps66afpvtOxf3au6H35jn/WrsTABs0TKOj9VR9+xNIz
	kKqfAnbNTOz+D3v1vTyS9D1jirXR9WbpekFBHacIF3y6H34mG3Hq6f1S2YmInD9K
	E5z6OfYg9Lp5Iy6BO5noJXJ7Rc3DEdSuz8GTjjGany1nxMBTU6Muomyuv0/Tev+b
	nsoVlhQ87o1x+CjNvQk9egaUbnUz4oHBlQB8KPQLP4mIwaKCTmMQI1CuR2LhLsPb
	EE+SQzCA1/wkbrxy/KNdw3PdxHQZDp1ndVLbDISgUJ/vTXgZN2G99ee5J9TI0666
	IVoBpjeE4A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=GpIQQ6bCAyIOe0v2lqNV
	hTFut6j+5NmBUBFSqPI8/mk=; b=UB18aucuiBWZtL11W8y0oodJNNbugaOFPpoO
	RVg52hXEYrPAWQq7dAwFkAW6YOmfrmXbxG7V5BDJSogDOqtjs/7ZP+SNVtDn7z2z
	ZBTS0OjjOnEnimwrid1RJ97jJpUtCNynPM62AI5Cq25XpdGea40IBazgtx3ZTXLP
	OI6ssAWXQw9ACGTl4ytGpMddKtjM6UofkPbjfIn/+j0sODPhLPdy9ZF1GuS9JvN7
	atbbX8/RI32gThMp8Fr1GtWp6mfxRJpxj2usAIdndQRje2GKzcHzn7SQSNZiK+TS
	MaTXgl5RRWMv9bPk7fQaEiXgt9tBctFR1IjzjMgpzXPOstMrjA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qGAuv6CIFlOqbqGAvvfoBX
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Wed, 11 Feb 2026 11:47:00 -0800
To: Jan Beulich <jbeulich@suse.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 1/6] xen/console: group conring code together
Message-ID: <aYzctC3xcH1vYq3S@kraken>
References: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-2-dmukhin@ford.com>
 <1579e081-b945-40b1-9a72-f6c5f7ed69ca@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1579e081-b945-40b1-9a72-f6c5f7ed69ca@suse.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-11_02,2026-02-11_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602110153
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B069:EE_|DM4PR16MB5244:EE_
X-MS-Office365-Filtering-Correlation-Id: 4f5523c8-72c3-494e-b413-08de69a654a8
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?owYIuZYmFdogGiEYr/T6mg8ULW0C5SRmirNANPa4k1Zb6USxZr0b6mLtcct/?=
 =?us-ascii?Q?8bW0sJ7bypIh4g3pmENdzWAeUat/A7b94dk583+yd2a3rPIkSVZGlF02psV7?=
 =?us-ascii?Q?H66YSzSVokIyXnppkS7OrXEAW9DnTgIRtJIOLvbyfxMVcf4Ci/HVMCNgHtDS?=
 =?us-ascii?Q?BVDm1o1goBivy0jet/yobeF6IjeaesnGmaQe6tlqt8h2J3ZxWXq5ChrNT+Xt?=
 =?us-ascii?Q?OACkUjOu76mxF03CmzZeFPthFpY/kX4qjD7TqpEVtoXxkx+jJ/M0QhhoZgxW?=
 =?us-ascii?Q?sdhj47fypOmrtRb7Zqri0VJtMpyadZl/Fp5vWukVrRP73xy//KRUhWPsG1AH?=
 =?us-ascii?Q?5OAHZvhAoDLKefHpcLa+54PUck+gJscC7HJGUF09FzS1SVXZSRLYCaaYzNQL?=
 =?us-ascii?Q?Z1kKUWBTWxhLQLd1pOsBExYZaSnx5Lw6GeBvt4s+Fb14mvAxSemXwnqRFTNK?=
 =?us-ascii?Q?jyplTu74f9UlmbPsVcqbOrw9i8jptvCYQoRTXTFsZPW2eQcW2GHLeqLBGZBD?=
 =?us-ascii?Q?RbN/QPFVbcaKzp6Fcei5TPuupnI06eQ2S5ZlOaeWapBvezkvOhbbb9xAu2BY?=
 =?us-ascii?Q?HwHirqeTUt5gLkMF57Myc92SkLSB7zGNuhPCWK5VJWhW/7jprdDiHAdj2GnH?=
 =?us-ascii?Q?tzGQogeFhaqpkUCESIecGfAkf7jJbaeobzT78HSwqeoSvdUyROU8c7aNGO4f?=
 =?us-ascii?Q?XKFum+iaoTYr5Ndv4YwJ5qZR9TKzigXX7lrPb4wAUYYL/QHzsHB2I7yGM9pt?=
 =?us-ascii?Q?mjuy7ywNQpXGg5njJpMVZL15UYsDAuIcqxdYpjVW+b3tM7Yba7yOzILZrdVb?=
 =?us-ascii?Q?TXgkeWBFNe6jQFtSogFA7qaVJjxja9O0oQNIoPJ3EaGdc12/0EiHyec7cpOG?=
 =?us-ascii?Q?Zp2y6soOBJUgT7Yxdl2AZWmgUiQ00hhsEYkf0rITn5uummyfyov7XqnTB/HX?=
 =?us-ascii?Q?SDXpQzJ3nVKpRK1z8WomMKmbwzgynvLSw/cq6kH9/cL6cl31pAsoCY9LsKJO?=
 =?us-ascii?Q?xYOsbpvwUh3OEDNodG6vjLS5aF7q+HxIx0S1mDYZFNtkFS7+iqMIa9Bga0jF?=
 =?us-ascii?Q?KjpxUeWoxC7gRaM/O1aJh1XzTVGkhhbftWJ4WXNQ6bXpXYslV0iZzCfN3bhl?=
 =?us-ascii?Q?TR5nGOFYkmpr35a5i9S3ysKpIapn41YxBojUXV7GBDyq3QMTs+afsoe4UeQ6?=
 =?us-ascii?Q?apwR6YBEnc+bWmmzGwUwuNlr+5QwXEH1rKI8M8dLXmJbZ1Y5nCMBc5DJYCYp?=
 =?us-ascii?Q?vP+KndkwNkLVqq03k3mXQT5iQ8FS8jVbEdLevRUtNmrPxEJbcj4J62WsexLz?=
 =?us-ascii?Q?D9YcEXyxUPmKEGSbFnza/CIvXhrVk4eM3VgmxHv34DacRBLfKVL3PXrvPMKe?=
 =?us-ascii?Q?UJaVeqCW/gajJXUnfWdbAfg+gQBAvzYLt0hYa7JvmGcBrqkTr43qIV/1JYUt?=
 =?us-ascii?Q?FfM7CDQDVwfZsz9Y9klQ36Xj/ih4KkjPC13exTDRc+88SzaA6Jj5+Y1H2MST?=
 =?us-ascii?Q?DmxYA6jESBDGA7FPquvACuHX9MQFv1OoX3wJzAH/4dvaWT2GYQBrKpqGRlVF?=
 =?us-ascii?Q?TvBs6S3AvQjWhCjgdNxyVu5QNIrhNTGwmVfkpsPB5rRk9iNFzPFPnSs1GFdd?=
 =?us-ascii?Q?7IA6qGesddipVZ1Dzlu5QA3qPrjgPTT0okHb9VhdGnJY?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	6MxeqAqk2S9egb8x1BUJc6of5B9OPr0YuMFIvrfoN3Hvqm0HML/T6YIhFUg9xKNoz9wvnwXHVaithxQ64Skx8teAOdIZfDhzkhhxTETmUKLz9NI/ONt0al1snQ5Ir4PHSncekhuAhit+qqxbkgNArKomqghGQXwzxCVv30ge5oZpSGddTj22futki+XijZyJaAYNHKjNCVAD5bRIvkku7LR1yMV2cREAOsmertC1t/EcDdvZTjIypuQqY4FebmpbB/CtdN0ZAM/iRGbAFMznDn2LD/g5buOc2sxtK3beLFqWDvgt+nmFNMWwmJVuHfLCtK2aGLGquAYSZY0hhgEbzmM1Ln+O5M/8FHAuKKOu23R/e97mr9WPO4Cy20oZ2UvDnW58JMEs86tg7QGSNVBmSeXqv0gSSZqQjGyK3IyhXKkCgiJjPC8iGEAkarxDas12
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	c0lXM40PpqeBDhM0G6xcXatDKFtr5Yn5gioRg8ooPoyGcGcnRlgM8CJzHzJ6f30xPgv0c/M2gWu8hbkg/GHBQ8eT5a63lb+mlFT2Xa64/WyR+gIYcVRrGRv+u7qCXShANA7gklar6bxqwd7+VIxGbaLuTI/YMLC8eK020GBvTN5iKmBGz5ivMHTRA2ToWqqcilIIHwj6g/MmjHFcOo/ym/4oZHJu3wVr7aaH7BjUDAV/x15H7W+4mc4t3JFaLTNtIqm8XXcWLuv8n/DR0XLb/UxSw8UJn7oYCuckTXJvt3OmYLT4+cxj6NzfV5yoT8rfAqOgOB+i1vQ1Nti+gieBHtmIlohVZG1kUkxfi0RqkpOXgr5g5vzehAZf2Kw2+T6APDPx0jnlygj2GqpRGYqr6OUEj12uYwl9hqJ6AbmT5xGVohv681sAAjNqStvje9641exGIPunQSZNu8c3jRvKKgwAmH+YUp2DOSxWyI2wRsuPXQCTJheAACMVtmsFTAozJPoCcdw1OstHWrsCAHF7pMAYBJCo1p+TmcVR8rCd8uwx8xT0JrWEcwqg72vk+OgxefAMVpErz6eB5/3Mv1ig2sRxcMW94qRlf0Vm/H3PkiMcpAB1LuBp7196jhGegjfsFPmup6u6SueA/i2fs12jlQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 19:47:03.8017
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f5523c8-72c3-494e-b413-08de69a654a8
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B069.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR16MB5244
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjExMDE1MyBTYWx0ZWRfX+l/EIkGiFUHW
 5NR3knIFOkRF5VJq4d0nfU6jYyHRn9wlmNZo6FLgiGZwuEHHz4xBoHCzJaqRJ3II22Um+ccvJZR
 YHn3es9XtuviOF+3pmLi7HLPwMOmus5hUWJNKwzRBrvRPruxHCT3twPKMX1sMYMsBFEvxK5Jxos
 JP+ZIdPNh95aycK660DLgVMab8kUZHoEB2VUEoTkwj1kfG4XomCBGF7BKwSXd7sUFYPLV0Zr0qH
 cL3YhMTCBns1zGZpeFVboTQRv6RE/xnqLcG9DxwiGVRG3dJcDelHXcAmPjU1WND1+o3qb14bMLG
 TbEPRferSqP8+QDV5tRk7BtHFoj5lzQLwODa9tEU2G3bNGQnHm1+xET5YyxmADvu4cYe/qpdZQb
 FAeDF9a5feqhBdix4fh/20pYIJI2OjDg3SDL5Ir0Fix6+g+PXU1XUDMeGvMI5mWoSjcEQVnEi30
 xo69R6EGdSjfu3VDSGA==
X-Proofpoint-GUID: rIqtbVNiGdShPyW_Hp_Jl80kXi6ylGXp
X-Authority-Analysis: v=2.4 cv=etXSD4pX c=1 sm=1 tr=0 ts=698cdcba cx=c_pps
 a=ayBBURk7jZ4GzqZFlR2IhQ==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22
 a=mLnsDVdbAAAA:8 a=cbNQJ9GKAAAA:8 a=iox4zFpeAAAA:8 a=qZaStkxjBf0flXYCaZkA:9
 a=CjuIK1q_8ugA:10 a=G69WFyCBNqGPyalROSdv:22 a=xnp1pY6zelCj5OLna2To:22
 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-ORIG-GUID: rIqtbVNiGdShPyW_Hp_Jl80kXi6ylGXp
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-11_02,2026-02-11_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 priorityscore=1501 clxscore=1015 bulkscore=0 phishscore=0 adultscore=0
 impostorscore=0 suspectscore=0 lowpriorityscore=0 malwarescore=0 spamscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602110153

On Mon, Feb 09, 2026 at 05:38:36PM +0100, Jan Beulich wrote:
> On 05.02.2026 02:36, dmukhin@xen.org wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Groups conring buffer management code in the console driver for ease of
> > maintaining this code.
> > 
> > Not a functional change.
> > 
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> Acked-by: Jan Beulich <jbeulich@suse.com>
> with one minimal adjustment:
> 
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -126,17 +126,6 @@ static int cf_check parse_console_timestamps(const char *s);
> >  custom_runtime_param("console_timestamps", parse_console_timestamps,
> >                       con_timestamp_mode_upd);
> >  
> > -/* conring_size: allows a large console ring than default (16kB). */
> > -static uint32_t __initdata opt_conring_size;
> > -size_param("conring_size", opt_conring_size);
> > -
> > -#define _CONRING_SIZE 16384
> > -#define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
> > -static char __initdata _conring[_CONRING_SIZE];
> > -static char *__read_mostly conring = _conring;
> > -static uint32_t __read_mostly conring_size = _CONRING_SIZE;
> > -static uint32_t conringc, conringp;
> > -
> >  static int __read_mostly sercon_handle = -1;
> >  
> >  #ifdef CONFIG_X86
> > @@ -350,6 +339,17 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
> >   * ********************************************************
> >   */
> >  
> > +/* conring_size: allows a large console ring than default (16kB). */
> 
> As you move the comment, s/large/larger/. Will adjust while committing.

Thanks!

> 
> > +static uint32_t __initdata opt_conring_size;
> > +size_param("conring_size", opt_conring_size);
> > +
> > +#define _CONRING_SIZE 16384
> > +#define CONRING_IDX_MASK(i) ((i)&(conring_size-1))
> > +static char __initdata _conring[_CONRING_SIZE];
> > +static char *__read_mostly conring = _conring;
> > +static uint32_t __read_mostly conring_size = _CONRING_SIZE;
> > +static uint32_t conringc, conringp;
> 
> There are several other tidying things to be done here, but I'm not going
> to request that you take care of those, too.
> 
> Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 19:48:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 19:48:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228280.1534546 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqGBw-0008LJ-Cs; Wed, 11 Feb 2026 19:48:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228280.1534546; Wed, 11 Feb 2026 19: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 1vqGBw-0008LC-9q; Wed, 11 Feb 2026 19:48:04 +0000
Received: by outflank-mailman (input) for mailman id 1228280;
 Wed, 11 Feb 2026 19:48: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=vAzU=AP=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqGBv-00087L-7X
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 19:48:03 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 92ac59ba-0782-11f1-b162-2bf370ae4941;
 Wed, 11 Feb 2026 20:48:02 +0100 (CET)
Received: from pps.filterd (m0367127.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61BGWC6t2717325
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 19:48:01 GMT
Received: from sn4pr0501cu005.outbound.protection.outlook.com
 (mail-southcentralusazon11011056.outbound.protection.outlook.com
 [40.93.194.56])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c8wchstcu-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 19:48:00 +0000 (GMT)
Received: from BN9PR03CA0291.namprd03.prod.outlook.com (2603:10b6:408:f5::26)
 by DM4PR16MB5457.namprd16.prod.outlook.com (2603:10b6:8:18c::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 19:47:52 +0000
Received: from BN1PEPF00004682.namprd03.prod.outlook.com
 (2603:10b6:408:f5:cafe::2d) by BN9PR03CA0291.outlook.office365.com
 (2603:10b6:408:f5::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed,
 11 Feb 2026 19:47:42 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BN1PEPF00004682.mail.protection.outlook.com (10.167.243.88) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Wed, 11 Feb 2026 19:47:51 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61BGnfOX2547620
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 14:47:50 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c6nag3xf7-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 14:47:50 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id qGBfv8HSlkQ6qqGBgvrczh; Wed, 11 Feb 2026 19:47: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: 92ac59ba-0782-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppford; bh=1Fc7YYKQH/W+qCuZFYaTeuymKye
	TP2jh3pYNCJSfMnE=; b=r21WcoEF/cSVRIzzYtzxxd4ERaDrlGajGfi8/kben2u
	q5PP3QramA7MmpAovGBfnYYk71O9LdF5gRo0BTC4zKwC9FW5u+3NYBCwRIVBNczq
	BrHaijhoZcoDNG/QKJ7f4OYa/+M9hUIH4/7bjGaNrs0IOde3diKTiuRQp2tEbXsV
	iOg0Jf1w9Tyhr0REBcFMLxAhpli9FCtaMtv3jwgJNtJtAn4ZSUEnc9Hg47neqb0o
	K/X8aclTXdyZMnQvf6BDzaNciKyzfm88ysEj/GS7Oah14VVTmc2WwY87/jO00NPH
	zp9ApE4BZJfJH8+h8X7yzT0QHBMFsg6YIWcEmvArdTA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CKSJ1avyjJlcyithas5JxiodILgZvZmsTmxCDz5sA5yqPRtvMaxESn5dXJqV4XpwJxHFvGWbt0eTvZ+GCzRGFfAhGFv8oclZEUpDWoONESlNVBpyaW+X05K6V5NFYjONcMfio4WInFeKgDscHq9EY5tP7BDnN0VKfMD5hSXHjX1DmYGUN2tgj3vzgrC1Nig1ipov26Mgz0iW9B4ho1b51xJQJnCeM5qoz9PB5jcsLYbDC7tp6Dv+FBz8/N7tgR4Zu3PQBFTIGcz6WVyiYhZuB/7EcWlL8oTb1Fi/fQaJ757LJqpfBjU0kEIJmORajCbi2U++0sHCVY9LVm2+KAKriw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=1Fc7YYKQH/W+qCuZFYaTeuymKyeTP2jh3pYNCJSfMnE=;
 b=q6OjOMOXf5mx4wfeMXTSijCJtDZmqWZTZ4J55hOcTmLWbvuFT5qo5KxG6M3daDMb1r0sI2UwAKvY+sUCopuM9G9WmZOyZFtEDJn3TY6xOMFSbsk/SVJNF8BOhgOPbqIf/8mSFJrKykO8yIJFl8Y6XtrNjBP0Lel8iLt6GguzABjQeCgEJeJQgoBN1QgAPl8oA179H6z5iI78OMJcyA/k0uTzLWKw48DePPVgJ3DZfioBokyEm2Q7YcStA033QL9m+NmnQcgJqswRoKS8GLMTGzgl00B44ZlKBlZJ+sdYjJOpjv9N8ZXC+XKLVQVRKhKamvWLFu2eS/30oh4M2yi38A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=1Fc7YYKQH/W+qCuZFYaTeuymKyeTP2jh3pYNCJSfMnE=;
 b=KaAm7Q4R93lHjAEBpCp1KJFcJx86oBaTSgt/yPq4v1XKGwoKfTHEthcunKH/6kvC1k6npZyen8H3cy+F9bmKNpGvEbnahtRCDN0T+T891rk6xdNvmS2evFWGHMyIe/05Qs2moQYrFttaHnyiWFd3ERIV1bZ8lI3fFV47zybyBso=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppserprodsaar;
	 bh=1Fc7YYKQH/W+qCuZFYaTeuymKyeTP2jh3pYNCJSfMnE=; b=MhJz5ZmSBu8a
	jpVcgaoQJGLCJUH2tdqkJR/oTRcY1oob1xrv8/XQ1U4G0xfL57ITZDoYNYTyIizH
	8nB30+SQ55rREV0djUxGz5+gwPmGoMXuhRb7gH00BfHq4yAxor9kD/gooaVQHwxI
	BG/p7hO2qfimy2+BvnyzQBSmiVrb1IDztUKVTCtZuJfcH0klH7UmDXJlBgorLcCL
	AZBBYWmRejkfd+YlWM2SJ45bGF/f090PNBLgall6jnTKtUanqTuMYTj0ZK8LJNT7
	YUHJaAsyvxcvblHMtUDRo1pxANjTE41gVHN+z0Rtk6oLdnS1He0J7vN3wJ0DWefZ
	dmF5FF2Y6Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-type:date:from:in-reply-to:message-id:mime-version
	:references:subject:to; s=ppfserpocford; bh=1Fc7YYKQH/W+qCuZFYaT
	euymKyeTP2jh3pYNCJSfMnE=; b=gij3Y1Lrovz/29U7Rt8rOg8UJLj5RIXvIxfQ
	x0ml22R633uGugzvM204RH1D8J4DhEQ3sKZ/5iL91JlE5ZWBp7CCCyWKK3oCEgIG
	i9+AkotriKSB2LAq1cLsO+e4jEd1ad9mO9LMV3GCOISrAIuISdMMNeOnvCquqnoL
	SkEWImjvnmjzgIrlMocJTORnBHQFStKmwLNVLhJN57quV4joRnvFL2la4i+VBPUt
	Yzsw9jvsD1ipfhDNcdCTk1ru7nvpSPhsVqb7jAp+sOhrBdHZuNeryMD9gYLB38Bk
	6hJe+l3lAKt0ZOEbJ+s2lEyCPHuuDR3AY+Lz4UUqZk4x4AlQkg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qGBfv8HSlkQ6qqGBgvrczh
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
Date: Wed, 11 Feb 2026 11:47:47 -0800
To: Jan Beulich <jbeulich@suse.com>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
        michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
        dmukhin@ford.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v5 3/6] xen/console: promote conring{,_size} to
 __ro_after_init
Message-ID: <aYzc44P8hRaIc+29@kraken>
References: <20260205013606.3384798-1-dmukhin@ford.com>
 <20260205013606.3384798-4-dmukhin@ford.com>
 <3b452d1a-97c9-41d8-9687-36b702309f47@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3b452d1a-97c9-41d8-9687-36b702309f47@suse.com>
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-11_02,2026-02-11_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602110153
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004682:EE_|DM4PR16MB5457:EE_
X-MS-Office365-Filtering-Correlation-Id: 82a48b3e-9447-451c-bcc0-08de69a670db
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?ewY5BouPxxxUU1lpt9bHo7xp3wPCMfxx7r2Zfw7WKgtP5BlXmmsqcYPD2gMQ?=
 =?us-ascii?Q?fGb/bWjHCU7A+XrexlZwdAWg0WAWwkHpf869pmFxEM55h6psir1ZCd+7HJnj?=
 =?us-ascii?Q?IJAd4DCaGrt153pnjH9yTxjgLCp6bD2Xohiq5cjxAb3bbtk9G8IupKuXEIsB?=
 =?us-ascii?Q?IHu+uZwa4VXjWAJHw7yCMRm3I6q/xJKOcoFsdj3NkWVjjR+926+DPoKXvdF9?=
 =?us-ascii?Q?Q4QHpVkR7O11W6ZkrQ0WSdyKM17vylc4aGQSs22aDya95mRpD3bEi/PCVsLf?=
 =?us-ascii?Q?od4h9o5OKlMpME2BecO80NQ+YXauTaqSDa7OGllj8xBiBTyhoVYJTvbbNIwf?=
 =?us-ascii?Q?yMV9a2eHnmwvfWtr2/rU4yxqGN6hmqCxZmzYYnbN6O6ywVK8U/QtvfhqMHQJ?=
 =?us-ascii?Q?IYebjhkt3OttGCDBLbbSFjt9FzyAmMhvICCLmRNVQTdlV++SA1SrN9ObkZCY?=
 =?us-ascii?Q?go4IyfLO0zrNWVK8QQgws4DMW+a7mRCO9teDHPWyC0zc28Y8Y6hzcrNK4ZVT?=
 =?us-ascii?Q?Oz1BdEcnOpAqBnNGu7ga8j1CY/eJgyXmzQw+XeaGkUBqCis+FW/jMI3i/gRo?=
 =?us-ascii?Q?lyFtDugqf05O97ZMkz44MgkrTIOfXM+iIdxMCKZxloJFAqeTfh7aPivKsUqL?=
 =?us-ascii?Q?MDYZSfpo12NZMviGvlo7+lf6ROL4zVNjl0SfnBjNIDYf7xSCpD7FDgUY9DXW?=
 =?us-ascii?Q?EmlLCPHdrvRdKO2/7MzpXwh3se2DHpkADbfcrRLqLxn3/WBG7DC532qEyyM/?=
 =?us-ascii?Q?nhsOFpX0Q/eKJaV1nAyJNa/iajMtkefZqOd1JnzPIS5J3M0T/v61+Igq3ywE?=
 =?us-ascii?Q?PrVsNv6wY1ZS1uPil1suRcqhN0JExf1cW3wf/JCO4uT7q9ZR/8oFq4k5kHOw?=
 =?us-ascii?Q?NsFSjmM1Wy21GTsNv56mUebPt2ndtwObdUIa0EzxsaBhJvgBHLmPKKvuhZ3O?=
 =?us-ascii?Q?zKd8pEGlFU+gh+ofcKPRsyye42XrXK3KJ7Sh3dNhv/FbDAuMBMlxOtsUS6cV?=
 =?us-ascii?Q?pbT1ZqmtbN4GluJH6Nq+tatln81JgmVw2qHtS7z1Ymy8bckDNNyjdjJG5v0q?=
 =?us-ascii?Q?0HdmHK7nnNhtayOohEdLo/WF7pXc6T37V96XM+2fjNJZ1HitrCpsnCd34OKB?=
 =?us-ascii?Q?6LG1qm9dvp0ND14T9Bukrltuy9n99/nRdQ8hISVX8sQTzgc6QdTebGHpm0VM?=
 =?us-ascii?Q?UDdeKu5fwR0Ev7l6k0bAcBW6oj35JObPy1QW7Jufoz+/rCvL0F2bVI2q23jm?=
 =?us-ascii?Q?THLPYCZYZ8jO9t5JK+o+E1VLyd3DCGCoMvS0ItGbPtl4g6+8mu7ksLYHktmm?=
 =?us-ascii?Q?H1QTHyPRMKuyqOU7gqo+soSfql3z2WpDgGpT0Zr5rwU8RfJRAOoN3kkPVEta?=
 =?us-ascii?Q?WBOE/+0ypbcbBmciIon1GdQ529m6EibQLrHtE2Xf9LihR6AmQv/m+OvYjBlf?=
 =?us-ascii?Q?FiD3SAaiKQ9gv/UIb2Zh+PfrhzwZNntLu/RRz0xfLtsH9xv/Z84prThqXFL/?=
 =?us-ascii?Q?F4ZBotrdsyk70atgSHknMEWOMMosd8GLXE9JN6b3bAVI6uKT6NPvQSoEXg5F?=
 =?us-ascii?Q?e6dxr3Tq3dmzydR4pkx27JudjRauJpURG90X9aT6ZiSedQkTLqz/d8GOmD+t?=
 =?us-ascii?Q?rPa2Q6q6vDkcR7deOKlCCpMcNpzuXifoMc91rgaVCnm5r6VAdIfSShJtOEHq?=
 =?us-ascii?Q?Ayh5Cg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	oqwaflMmW7R/mFwWHVaDDZz4VQxp8quTTcRlLiTztRO8wR05YFRX1tZDiE/gq/q8i0hZM8WBLh022UXWHtwogih5qfqw+VlEr+V4bgeh2mlUWD8lCgJOCgn2XQvbVg6dfIF4t6LZTUcAHZw8dXcoPnsB054FcWc5Jjb9diSVxcaHMuUXS3E1K21eewdyhUWJSB6CkYMGZUEdHhQPhRu16YX6LuUkg0+02fPIHp/lRmW0JbnGpu94YpaxCL2h7wrOsudEoJnOs93LOe4rzFfKwWxW0Ng8J++yLmMkcT/HeRSQ6mc07qBElvjaQ2aeFVuwmZBBw41nn4RxSBxzU2uijqv3OdHP6bD1Wgx72nTz7s5UulJuxoNzotqp8v7lRS9H4bSj0DcnkrtJvJltZDOX+15ZNZn34yR3AtYsOps7nX0qJkQWfj+cNS90Pib3sgkd
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	5JOnKsscGnv4zmcXtQLfBxRp2wiFzzzZMW+x1OOptuiBnZvzsH7GVJTjHANPe5usDjbiARtyNt8zZdQpQ/xNgOwF5WJ2L0KFjw2eRaIqaveOv4CCpmHFTpTPoQQhVsSyqEr+o6NDRufcxrTQovlzQA15F8Ghwb50/O3ZMPH/ou2mV+zXOEA+kgtRjpPSlgVjC8laxO+TbTu7XHG8vY7rIYaBQDWvAbdzoXDGroS2exbIugs8RBNPqetq/5kVlDwhDOdtBpO6VpHxQJjT8danpxn00wXVAhGg00UB3vSNHM9yxsL8u7oy1sHwj4uw9Kmnd6R7JCjJwr/VQfFUBgTS+S9nAwA//WFT9m64DVRtazRNnsiLppIwf7DLDB16pCDxHsI3g1/4qo2vFESKQNvx3xsiR5BqntaulH23yiUPVSJe0KXJ37XF6wmfaWjf92sraoTyxN5o2ujO7DqDz381OFlx7AtEtMGDaXyoUOjZ17CbifwsEhDZYuPRAqX1yC+S3DL+zhd97oeXOPBUaUz7FQvAOF72FJDQCciraJMMmhpI8ydJ1Ntw5yyGl3HaUdoSAPuEqLGwj5G7/RgFXwHqtvKfXQOoq8sw/D7/n8yso971QdNfNp05eM1CG9lYeMc5qnH9pZBKTRbDQrMxoX4Jng==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 19:47:51.1115
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 82a48b3e-9447-451c-bcc0-08de69a670db
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004682.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR16MB5457
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjExMDE1MyBTYWx0ZWRfX6jGGmuHNxy1i
 lNif9ae+6ErAeDpU1+YH00jo5jqNiXjtnfHjGyYqjRIntxz7wlBCAGbIk9kSrNcfdrmQLYZLODj
 gyn220ETcBOPlSdoAaO9rLEKhCxEQ1lnI8LffeaicXK8ogWsSKcrDNN3Tw3/sFRNZ7FmPz2Xn0H
 NRHnkd/g0mPN4Oi3KKKJvxMynL1fAIGDPYGBAp873xeQTRHL+5ca6ot5qftwQpB3MfQ79BC4G0m
 WmXKedb3CSKmd4wZ7BubD+G6+3q5kFfcDc1kAQ6xo8f8DVPnSO7OC2V/6tNq5iHeLb/N/4J4Pxx
 U8PSTa7ODfNxTRy8ArUx4jMFC3RW2NSyr5QQTaq6/d4vPvXWwXo3m8psXRkUamPyRf/PaiAq3af
 Nk559//dEPBIiZoCnBwLUiiPlw+rsrlyyGzFH3F71p5LrwCGE8zejrKPDmS/55OjbZ3wxItsHWR
 MaH5shLfdelRoZIBCBw==
X-Proofpoint-GUID: HvbE6ffkUA1fKl0gXI5PL_uJJxhRUFgU
X-Authority-Analysis: v=2.4 cv=KtZAGGWN c=1 sm=1 tr=0 ts=698cdcf0 cx=c_pps
 a=RvZuBu0Sq3F4hQe2CiMyvA==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=kj9zAlcOel0A:10 a=HzLeVaNsDn8A:10
 a=3PXLN80vpJUA:10 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10
 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22
 a=mLnsDVdbAAAA:8 a=cbNQJ9GKAAAA:8 a=tHz9FfFoAAAA:8 a=iox4zFpeAAAA:8
 a=lkgXPdtCH77cg12V8HkA:9 a=CjuIK1q_8ugA:10 a=DqJYxgmhk6moR-_7_KoZ:22
 a=xnp1pY6zelCj5OLna2To:22 a=WzC6qhA0u3u7Ye7llzcV:22
X-Proofpoint-ORIG-GUID: HvbE6ffkUA1fKl0gXI5PL_uJJxhRUFgU
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-11_02,2026-02-11_04,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0
 lowpriorityscore=0 priorityscore=1501 clxscore=1015 bulkscore=0
 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602110153

On Mon, Feb 09, 2026 at 05:40:33PM +0100, Jan Beulich wrote:
> On 05.02.2026 02:36, dmukhin@xen.org wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Both conring{,_size} should be RO after initialization is completed.
> > 
> > Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> Ah yes, that's one of those things mentioned for patch 1.
> Acked-by: Jan Beulich <jbeulich@suse.com>
> preferably with ...
> 
> > --- a/xen/drivers/char/console.c
> > +++ b/xen/drivers/char/console.c
> > @@ -346,8 +346,8 @@ size_param("conring_size", opt_conring_size);
> >  #define _CONRING_SIZE       (1U << CONFIG_CONRING_SHIFT)
> >  #define CONRING_IDX_MASK(i) ((i) & (conring_size - 1))
> >  static char __initdata _conring[_CONRING_SIZE];
> > -static char *__read_mostly conring = _conring;
> > -static uint32_t __read_mostly conring_size = _CONRING_SIZE;
> > +static char *__ro_after_init conring = _conring;
> > +static uint32_t __ro_after_init conring_size = _CONRING_SIZE;
> 
> ... the type here also changed to unsigned int (as set forth by ./CODING_STYLE).
> Happy to adjust while committing.

Will appreciate help here.
Thanks!

> 
> Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 11 20:07:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 11 Feb 2026 20:07:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228305.1534556 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqGUG-0002tm-0p; Wed, 11 Feb 2026 20:07:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228305.1534556; Wed, 11 Feb 2026 20:06:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqGUF-0002tf-TE; Wed, 11 Feb 2026 20:06:59 +0000
Received: by outflank-mailman (input) for mailman id 1228305;
 Wed, 11 Feb 2026 20:06: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=+DlF=AP=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqGUD-0002tZ-L8
 for xen-devel@lists.xenproject.org; Wed, 11 Feb 2026 20:06:57 +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 36800932-0785-11f1-9ccf-f158ae23cfc8;
 Wed, 11 Feb 2026 21:06:55 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by PR3PR03MB6457.eurprd03.prod.outlook.com (2603:10a6:102:5e::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb
 2026 20:06:38 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9587.017; Wed, 11 Feb 2026
 20: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: 36800932-0785-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Si94cu/AIUue9mLgPa19Tj/xbWVXrzNOn1MB1l/wXKhPImXimTFudYkzu8u6i7UeaIAWJH+ZWCffTUTpdivBUpKsZkHQIDgqUr5D88Em3s8hrx/lOIJoR50ScyHHm0moiAFwwQFkg1Nv79n+oip51J+40hJSwWt4cZx86avecK+gra15fB48UHt3rRbN4oyTXCPz4iu/uttjT8nPISXkpyPlV6Oou/DEXpF2Mq6KipE0lOtHH9K92lJWlVwed6XNekFyal2MsiPefo6jRboeU+ROgs+r+UtvCqDL7sWWWqeXqTuA4+yJ9vPecRTD2jWj7sBWu7anvsJL/aACr+7q2w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WiJWuBylrWqCFmxMrM4WcdZqeGTbK2V/qTNuqolFFqo=;
 b=m8n4MxHuJ45PbPTLDeMTgYN9mztNvZubWUevNf+poCDFA2ptmzWpI7wdvzO7cjKNGij31/qPahEgl2enLszojHDPWalO3s2nA3VvrWW/6qQ8yK2bUl+WFuVgeH1g/2Mo63gp1Ii3Df/NiFFtM2SpMoWtkj2nL9ov90XSQnbuYPZvX+VX27IK+SapaSOqja0eDoN7W9aoKTDs3ZYXN25xB4Cb5D6iNym/I9gRqVr0dZFEoSBFXi3G/dojAiRdnw44eSw4HrYny0p2R6EkUNv+x05ZSWi4Z5Mmjg4moeWztKjjInT0ev7/jHc4JpiES5VtGk0a+YrkWSqhOx3MlQyS+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=WiJWuBylrWqCFmxMrM4WcdZqeGTbK2V/qTNuqolFFqo=;
 b=ed+EZSWQahnI7WcE8I/z2qGBC28VlnV+K3mElOOIHkovYxpsrH8DZbHfj5emzCC+YbB/GGGThzMgZBJBR8qATJttQR5PsRMp3PE9rNcMhMOPaC0cofK7W4ghF8fQA65MGSYK7n4BFui4NvEzgxPECy2jv2l+MB1JJciO5AYn2CzQHjL5bl7pIWZsf+WtSgTnL+Wty37Ygd3LkprvYMX+2uBScXb2EvPmZ6EYTjyS8OpZ7l+brKPvyb7MHLolB7DBbXE44X6RsxjJD60VZRW3UV/RAUvegE0TVkdbbgpj3BAT+GMrBeTNyxEWE9x2/Pb33ej4YzJAFw/hfNH+cMwElA==
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 v9 4/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 driver
Thread-Topic: [PATCH v9 4/5] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 driver
Thread-Index: AQHckSnscogayWOoV0WYwtG2zZFEPrVp19AAgBQptQA=
Date: Wed, 11 Feb 2026 20:06:38 +0000
Message-ID: <05335f27-6a47-4113-abd4-5d152503993d@epam.com>
References: <cover.1769696107.git.oleksii_moisieiev@epam.com>
 <3a5ff98b9c46c393e856c2e9a645b2cb1509d5c4.1769696107.git.oleksii_moisieiev@epam.com>
 <alpine.DEB.2.22.394.2601291537210.2238666@ubuntu-linux-20-04-desktop>
In-Reply-To:
 <alpine.DEB.2.22.394.2601291537210.2238666@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_|PR3PR03MB6457:EE_
x-ms-office365-filtering-correlation-id: ead3fa14-95b4-4adc-2e82-08de69a910a0
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|7416014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?VjhCOCtOclJPZURBcE11MEZHa0lkdjZDU3JoSTVFRWpXa05mNDBaT1ZNZHNW?=
 =?utf-8?B?UE5PdjNDTWg2WWpyZkhucUo5b0ZjVkdDOUVJTzVZd21pR3B1R2s5b3dFU2hP?=
 =?utf-8?B?WloxbC9YUjRyQm9BTUJsMTJUVExHbDNyN2FFbTVjQXkvNlJxanZ3NFUvUlp5?=
 =?utf-8?B?YjFkSDVYcGZJLzI5YWdxdDhwLzRyM2VjWENUQmdFdXo4OEFvL2Z2OGdUUkFu?=
 =?utf-8?B?MElQWExCZE54WkJZdUJ1M2tRR2U2WlRIMVpXZDY5NVFBclN0OXFwemk4RWpX?=
 =?utf-8?B?MUFVdFVtT0JsSzkrUkYyWTk1NGYyeEt6OWk3VmxyQ2FlL2h5WW5kY1piOEk2?=
 =?utf-8?B?T1pNendjQVlQZ3liYlVzSWRibXNLV1RqVDJicU94ZjF6WklqT2h5Z0pzTCsy?=
 =?utf-8?B?Z3ZSbHVYaEE5QWhUOWhURlZzVjRpN2tMMnhYVnNTVlJwVVpBTnE2Q0pBUkkx?=
 =?utf-8?B?aXZVUm1jU3kwb2hjWWJXMk5ieGZJY0tIREd4cFhWSFMreDduY3JqVXZUSkNW?=
 =?utf-8?B?K1BQWGtzZFdwb3dsenRxdkFCY1cyb0tpalIrOEtXaW9BWCtZOHUzajV2UEE5?=
 =?utf-8?B?WUIzM1EzempvMnJjblpwMzdMcC81Y1JubVErZTk2U0crWlJObzNweGQvMmY3?=
 =?utf-8?B?bjZjaHNCSzVzTXNLKzFEMS82eG4wTSsrdnMwOEthTmpGZEs1OVZUZlBjQm5i?=
 =?utf-8?B?SVhKRUlYNDY3eXRhTDExelBBY2QzSDl4ZjVBVHVneHNuNXlXb082WEprNnpu?=
 =?utf-8?B?WUsveitFVkdSK29oS2U4cHlHbFFDTnJLaFlTb1NjL29Va0NhaXhoZHRZeCty?=
 =?utf-8?B?ZjlKWE9zWHBXWUFZczFmc0NjNE9vYVhyUlJqR3Z4Y3ZqZmQ0ejBFLzV4dyt5?=
 =?utf-8?B?cWpjQ1o5byt4MzNDS2xxUVJ3WjFRZ1VlY3BFdlBjUXdLZzcybzQxZjQ1d0hk?=
 =?utf-8?B?ZUdGcjNoRjJQV3Jic1pvRmZRWjBGK1UvMTh3SXRsL0RmTGEzKy9lM0VPQVRj?=
 =?utf-8?B?S0U2UlYzVTlHMEl5bmZEWmtDdGxKeDBDT0V0a3VTbmtaajVHSlFHbFQxYVFN?=
 =?utf-8?B?cFBRSEV5NER5WllORTJPaGtIZHlLTHVUUVB4QWowNFc0QjJnZVFLYytZMzdj?=
 =?utf-8?B?M1lmOWVnS3BjQmNMdXg4QmZHQjFubWFUQWg4VVFwREsvVStIWUxKd2VjMDZR?=
 =?utf-8?B?dThGYmxlejQ5QWkxd1pPL2l0clJJemlHVE4rS2NORTlBM05qQkVpaWRlS2Rl?=
 =?utf-8?B?MkxCbnY1dlZKZE4zRzRxUERMS3RqL25SZ0pUcWh0Z2JsN0RQSE5lYk9CdGp1?=
 =?utf-8?B?NTNDZ3A1ZThCdEN5K0F0Mi9wWXhIMzh2MlBOZ2dwVDRJbXNWVWhIN3JYWHo2?=
 =?utf-8?B?dURybGtVeUYwM210UTZYd1RETHFEZVFDeVcwNVZRQ2dwRDBoOU5ORVQ5ZzZo?=
 =?utf-8?B?eHVzL2UyVjRjbTBVdGd0Ri9mRXpEUjdqZW1PZ0sxTUZaMDdDWGx1SXZsUFdZ?=
 =?utf-8?B?Sng2UzFzUmwzNWRvcnFFMENyMG5RdWJIeU1qbVBaM3RWT2EyTEVLVzM2M0lP?=
 =?utf-8?B?YkM2QXNRYUw0QnNZMHIrMCt2alNETVBDOGtobSt0QW9PWTUyS0doZnI5UTVK?=
 =?utf-8?B?Mmh3OFZQcWtlMjB4NDF6R1AwTUllWEpaSmQwejk0YXRVZDhiODRCVUdFS28z?=
 =?utf-8?B?akpPZjJQTDBkN3AvVXQrMkp1YTZOa05HVS82amVVcTZGWThaWERYWDZia0U2?=
 =?utf-8?B?MndHaXQ1NENTTkQzaUZ6cTkzV0ZKY0dnd0lERFBwWnhYRWFRWlo4ZTREODF5?=
 =?utf-8?B?aFN4K2NtcWN1MGVoTFpMMlAxK3BSKzRxVDhrNHk2V1ZvWTNHZmlLVjMrTDAv?=
 =?utf-8?B?bDg3SUR6UlhFUVFWeW55M3Ywd0hNUlQ0ejkzREgyemZCbi9sNm5UYkhQcXpr?=
 =?utf-8?B?cGtvVG02d3NqdjJwODFwRWF5Ry8vcUxPS2xKWklsdURKOUNCamtyaXY1cU1F?=
 =?utf-8?B?ZUUzU1E5bVlkdWVwTlhWRGNnd3FSV2I4eit4SjA0bWxiRExkUDhxQTBQYlVh?=
 =?utf-8?B?L0dGT2F5dkRDTXRLL0wvZTBHdFl6a1I3RTI4ZUl1RXFnVHc3R044MGJQNFhn?=
 =?utf-8?B?d2VCYkIzUjlmcWhKU0tMclBJTU1kdkxxMDVqMnF6eDRaTTZ4SDVqdnpyc3Fy?=
 =?utf-8?Q?Z58gXEAltVXUN6t7m8Qgkvg=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)(366016)(376014)(7416014)(1800799024)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NEFIOHZ6cWVuTFg1WXRaZ1RYYjdYOFFweUhNT0FtRE5SaWJvVndoYkdyQ1Z0?=
 =?utf-8?B?cW1sbmtMUkJYWlluTjc0c3dudFZPcUVHSmxQejNxK1IwVERORklpNHl5OFhU?=
 =?utf-8?B?Rjd6NDI0T0llZTRMVEVOQzVxd3VPWHc2ejFCRjV0STF5Qzl4OWdwT3JKUWtu?=
 =?utf-8?B?dFFpVGpWc3RPNnZma3RXcjNBendJT3RmRmJJSFh2OVhXVldNL3Z6U2YzRmpG?=
 =?utf-8?B?RlRpTG5wQWkyeE5hcUdkdkpHUVhFaHNTV29rS3QwYUFrbFhCZ3RWY3UyUE8y?=
 =?utf-8?B?dDVJNUY2NitQUnY3ZnplM1hNOVBOdVZMUWtOd3RMREZwRTJlK2tPalExeStv?=
 =?utf-8?B?Q1AwbjB0UEt1TWdWZTNLQmcvM1FJL1FpK1IvNzAyaGxvYUt4SFlCNVNWZk1q?=
 =?utf-8?B?NHhnVzlsUVU0K3R3azh1bjV6REtiSTU0dUk2TVpIWjgvNnlnVTV6ckR1S0x0?=
 =?utf-8?B?Y2VnTHlOYnJTT21mVkhHUU5RVVdFdWZvYSsxdW9wMGRvSEI0TmVuTnNzM1N1?=
 =?utf-8?B?UXN1RUo0cGFWaXlnVU4wNWRycWNLZ29TS3MrQ3ZzZSs3cGpsdDl5L2JFbUt5?=
 =?utf-8?B?Q0dGMitTRDFFZEozc2pSdGJCSEpCWk5IdUdKdlRFeGluZHBHZU5TK2tqc2hw?=
 =?utf-8?B?ckNDVUptc29lWGtIYlNhN216L0dnYkZnUUM0bHVmcDZmRWZYOEQ2dXJLN05s?=
 =?utf-8?B?cnRDNVRZd2JIdWdSUmJhMTcySlZmMWxSRm9ad1Nsd2ZvdDQwZUF2VStveDFu?=
 =?utf-8?B?TmlkRlpzakRBeDRML3RZUEVra3B0MlFvZWljV2xwTnlOUmk5MnpsRUlzTHlx?=
 =?utf-8?B?eUZOekRTa2gxWU1VUkM2d1kxMU45bkFqVzdLS2dZMGpsV3plc3RqZERVaE5D?=
 =?utf-8?B?anhXN2pIemoxdlE1bVBlSHVnV0F1cHBhb0JzeGRYUzVNWEZwWXBwU3R5cXVM?=
 =?utf-8?B?cEFuKytrZUZvR2RWS0JrTnBaMGlrMDRGbDRIWmRTMkxESndqeTZkK0tkaU5R?=
 =?utf-8?B?bVU3QmoxSTd0aGtDV1VlUzd4MEFwZ2pkSVhibjQ4TEMwRDBqbTNUZkErTWRs?=
 =?utf-8?B?bUJkTU1zbFNqbU1hOERxcWVzZy9va1ZEQi81UHMra0dNOGhWd3pBb25WNlJy?=
 =?utf-8?B?cEVNSmJVcGpSWTNpQ05BNTNiUHByWVBGVUJnT1hTNmhlMVhycUlaSlp6cUg5?=
 =?utf-8?B?QUN5SC8xVXU5elJvMkFXQndKNThibldLNk5PZU5BMkx6UWhvUHY3UlVVelhF?=
 =?utf-8?B?VFhNZ2Fva05VVHBWV2dWekZ1OWI0dEVGOUk1Q25HWEZ5MVZEOW4xTUFPTXMv?=
 =?utf-8?B?Mm1NcG85aTN6d2d6ZmZ0NWlNcE11QmhEY0M0cytGcWJiUlRSejYycEJEbVZS?=
 =?utf-8?B?dm0venZzdVhPZG5HRE9uRFRnNnltU1lkUDk2Q21oVUNoRHZBVEVTV0ZnRkd4?=
 =?utf-8?B?N0cyL1J2ZFpUVFErdUc0Z0hVZVpJZW5vRkI0R01zeUVGK2I4bWk4bXFxN3Nw?=
 =?utf-8?B?Wk1OM24yVW5MS1UwYkZvbk5kOXZ2K01OUzY4c3I3dEJGYkorRDNvZGM2b3VR?=
 =?utf-8?B?QkRUK3BMZWNhMk9WSWVRSEtGZGUzYXU4bWhpWDVINEEwbGlySkRKZzZ2K0Ur?=
 =?utf-8?B?Ym53emgyWVd2bXA3SitWMXhPcXVuTkFBRnRqTkliRDVmREh6S280WU51bW1D?=
 =?utf-8?B?amFzaG9VTHllUDF6TkRkb3NyVFZya0s4cnpoT29uM29QaHJzU1JaZCt6L2pG?=
 =?utf-8?B?VytOa3MvMEI2R1p5TW5MV2NWUW9GS3Z3VTNocndJbVRjcnpmbUpFSlF0cE9H?=
 =?utf-8?B?UXBmQkJYU3pCZjV3dVZJSE0va3RkQ1pmWTA1eStRRENsRnNlVG1wbDVnMnZW?=
 =?utf-8?B?ODBwYUxtcWN1WXd1UmRpWUdSSnJ0a1N4STJlMjlJRkxuYm91Y2ozeDdBZ3p0?=
 =?utf-8?B?WWlwVmxwVWxXWmJqQ3RPdHFtR1F1aEVkOXlEMURCRzBCVFI0WHlaTXRMc1Zw?=
 =?utf-8?B?UERaNVdCL3VoL3lIZXF2MUJSTFlwcytkVWJudEY3bW1MMHU5Q3E3a1hLcFhl?=
 =?utf-8?B?RC9nN3AremljSUIxcmtCQlZ3K3gycDArZ3VmNlNJeUE4anlMdndWUTdnTUJN?=
 =?utf-8?B?eGxPdExSN3ZLSVNkalY5NE9ZazByakpTcC9Banl4c3BtS1JiU0FHeE1VMXdH?=
 =?utf-8?B?NHNGQWordzJPc1NkTHhUaWNJTWNNN0kwNVh0OEFORHUyUTRpQjZwT0N1WmNT?=
 =?utf-8?B?aTJqa3RqTFNpcnVXN3FWTTRpQjFqUWZ1UnA2STI2SDFmWTQxQ3F0Y2lkaW5m?=
 =?utf-8?B?OFN2bVR4ZEQ1aVl2T0VQVGprTStGL1NUQ0ZXY3M0dUVIamhhZW5GbHhxZitM?=
 =?utf-8?Q?8VHwV+/oQ/eHdrJ4=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <71648FEDF530E74AAF6ACE69EA35D412@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: ead3fa14-95b4-4adc-2e82-08de69a910a0
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Feb 2026 20:06:38.1737
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pHNRAZIhP7fWxMgvoQJbWOmPAai9SZ5gRLT2V8DkiMK2tJkJaQQkQRLZVWQ2m0LAewcy9LQjScEoNNWydPVrXgIOPvry/vT6dGTki3ipWK8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR03MB6457

SGkgU3RlZmFubywNCg0KVGhhbmsgeW91IGZvciBhIGRlZXAgcmV2aWV3Lg0KSSdtIG9uIHRoZSBm
aW5pc2hpbmcgbGluZSBwcmVwYXJpbmcgdGhlIG5leHQgdmVyc2lvbi4NCkp1c3QgYSBzbWFsbCBj
bGFyaWZpY2F0aW9ucyBiZWZvcmUgSSB3aWxsIHNlbmQgdGhlIG5ldyBwYXRjaCB2ZXJzaW9uLg0K
UGxlYXNlIHNlZSBiZWxvdy4NCg0KT24gMzAvMDEvMjAyNiAwMjoxMiwgU3RlZmFubyBTdGFiZWxs
aW5pIHdyb3RlOg0KPiBPbiBUaHUsIDI5IEphbiAyMDI2LCBPbGVrc2lpIE1vaXNpZWlldiB3cm90
ZToNCj4+IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBTQ0kgZHJpdmVyIHRvIHN1cHBvcnQgZm9yIEFS
TSBFTDMgVHJ1c3RlZCBGaXJtd2FyZS1BDQo+PiAoVEYtQSkgd2hpY2ggcHJvdmlkZXMgU0NNSSBp
bnRlcmZhY2Ugd2l0aCBtdWx0aS1hZ2VudCBzdXBwb3J0LCBhcyBzaG93bg0KPj4gYmVsb3cuDQo+
Pg0KPj4gICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPj4g
ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPj4gICAgfCBF
TDMgVEYtQSBTQ01JICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPj4gICAgKy0tLS0tLS0r
LS0rLS0tLS0tLSstLSstLS0tLS0tKy0tKy0tLS0tLS0rKw0KPj4gICAgfHNobWVtMSB8ICB8c2ht
ZW0wIHwgIHxzaG1lbTIgfCAgfHNobWVtWCB8DQo+PiAgICArLS0tLS0rLSsgICstLS0rLS0tKyAg
Ky0tKy0tLS0rICArLS0tKy0tLSsNCj4+IHNtYy1pZDEgfCAgICAgICAgfCAgICAgICAgIHwgICAg
ICAgICAgIHwNCj4+IGFnZW50MSAgfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwNCj4+
ICAgICstLS0tLXYtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLSsNCj4+ICAgIHwg
ICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgIHwNCj4+ICAgIHwgICAgICAg
ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgIHwNCj4+ICAgICstLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLSsNCj4+ICAgICAgICAgICBzbWMtaWQwIHwgIHNt
Yy1pZDJ8ICAgIHNtYy1pZFh8DQo+PiAgICAgICAgICAgYWdlbnQwICB8ICBhZ2VudDIgfCAgICBh
Z2VudFggfA0KPj4gICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwNCj4+
ICAgICAgICAgICAgICArLS0tLXYtLS0rICArLS12LS0tLS0rICArLS12LS0tLS0rDQo+PiAgICAg
ICAgICAgICAgfCAgICAgICAgfCAgfCAgICAgICAgfCAgfCAgICAgICAgfA0KPj4gICAgICAgICAg
ICAgIHwgRG9tMCAgIHwgIHwgRG9tMSAgIHwgIHwgRG9tWCAgIHwNCj4+ICAgICAgICAgICAgICB8
ICAgICAgICB8ICB8ICAgICAgICB8ICB8ICAgICAgICB8DQo+PiAgICAgICAgICAgICAgfCAgICAg
ICAgfCAgfCAgICAgICAgfCAgfCAgICAgICAgfA0KPj4gICAgICAgICAgICAgICstLS0tLS0tLSsg
ICstLS0tLS0tLSsgICstLS0tLS0tLSsNCj4+DQo+PiBUaGUgRUwzIFNDTUkgbXVsdGktYWdlbnQg
ZmlybXdhcmUgaXMgZXhwZWN0ZWQgdG8gcHJvdmlkZSBTQ01JIFNNQyBzaGFyZWQNCj4+IG1lbW9y
eSB0cmFuc3BvcnQgZm9yIGV2ZXJ5IEFnZW50IGluIHRoZSBzeXN0ZW0uDQo+Pg0KPj4gVGhlIFND
TUkgQWdlbnQgdHJhbnNwb3J0IGNoYW5uZWwgZGVmaW5lZCBieSBwYWlyOg0KPj4gICAtIHNtYy1p
ZDogU01DIGlkIHVzZWQgZm9yIERvb3JiZWxsDQo+PiAgIC0gc2htZW06IHNoYXJlZCBtZW1vcnkg
Zm9yIG1lc3NhZ2VzIHRyYW5zZmVyLCBYZW4gcGFnZQ0KPj4gICBhbGlnbmVkLiBTaGFyZWQgbWVt
b3J0IGlzIG1hcHBlZCB3aXRoIHRoZSBmb2xsb3dpbmcgZmxhZ3M6DQo+PiAgIE1UX0RFVklDRV9u
R25SRS4NCj4+DQo+PiBUaGUgZm9sbHdvaW5nIFNDTUkgQWdlbnRzIGFyZSBleHBlY3RlZCB0byBi
ZSBkZWZpbmVkIGJ5IFNDTUkgRlcgdG8gZW5hYmxlIFNDTUkNCj4+IG11bHRpLWFnZW50IGZ1bmN0
aW9uYWxpdHkgdW5kZXIgWGVuOg0KPj4gLSBYZW4gbWFuYWdlbWVudCBhZ2VudDogdHJ1c3RlZCBh
Z2VudHMgdGhhdCBhY2Nlc3NlcyB0byB0aGUgQmFzZSBQcm90b2NvbA0KPj4gY29tbWFuZHMgdG8g
Y29uZmlndXJlIGFnZW50IHNwZWNpZmljIHBlcm1pc3Npb25zDQo+PiAtIE9TUE0gVk0gYWdlbnRz
OiBub24tdHJ1c3RlZCBhZ2VudCwgb25lIGZvciBlYWNoIEd1ZXN0IGRvbWFpbiB3aGljaCBpcw0K
Pj4gICAgYWxsb3dlZCBkaXJlY3QgSFcgYWNjZXNzLiBBdCBsZWFzdCBvbmUgT1NQTSBWTSBhZ2Vu
dCBoYXMgdG8gYmUgcHJvdmlkZWQNCj4+ICAgIGJ5IEZXIGlmIEhXIGlzIGhhbmRsZWQgb25seSBi
eSBEb20wIG9yIERyaXZlciBEb21haW4uDQo+Pg0KPj4gVGhlIEVMMyBTQ01JIEZXIGlzIGV4cGVj
dGVkIHRvIGltcGxlbWVudCBmb2xsb3dpbmcgQmFzZSBwcm90b2NvbCBtZXNzYWdlczoNCj4+IC0g
QkFTRV9ESVNDT1ZFUl9BR0VOVCAob3B0aW9uYWwgaWYgYWdlbnRfaWQgd2FzIHByb3ZpZGVkKQ0K
Pj4gLSBCQVNFX1JFU0VUX0FHRU5UX0NPTkZJR1VSQVRJT04gKG9wdGlvbmFsKQ0KPj4gLSBCQVNF
X1NFVF9ERVZJQ0VfUEVSTUlTU0lPTlMgKG9wdGlvbmFsKQ0KPj4NCj4+IFRoZSBTQ0kgU0NNSSBT
TUMgbXVsdGktYWdlbnQgZHJpdmVyIGltcGxlbWVudHMgZm9sbG93aW5nDQo+PiBmdW5jdGlvbmFs
aXR5Og0KPj4gLSBUaGUgZHJpdmVyIGlzIGluaXRpYWxpemVkIGZyb20gdGhlIFhlbiBTQ01JIGNv
bnRhaW5lciBgYHhlbl9zY21pX2NvbmZpZ2BgDQo+PiAgICAoY29tcGF0aWJsZSBgYHhlbixzY2lg
YCkgcGxhY2VkIHVuZGVyIGBgL2Nob3Nlbi94ZW5gYC4gT25seSB0aGUNCj4+ICAgIGBgYXJtLHNj
bWktc21jYGAgbm9kZSB0aGF0IGlzIGEgY2hpbGQgb2YgdGhpcyBjb250YWluZXIgd2lsbCBiaW5k
IHRvIFhlbjsNCj4+ICAgIG90aGVyIFNDTUkgbm9kZXMgKGZvciBleGFtcGxlIHVuZGVyIGBgL2Zp
cm13YXJlYGApIGFyZSBpZ25vcmVkIHRvIGF2b2lkDQo+PiAgICBzdGVhbGluZyB0aGUgaG9zdCBP
U1BNIGluc3RhbmNlLg0KPj4NCj4+IHNjbWlfc2htXzE6IHNyYW1ANDdmZjEwMDAgew0KPj4gICAg
ICAgICAgICBjb21wYXRpYmxlID0gImFybSxzY21pLXNobWVtIjsNCj4+ICAgICAgICAgICAgcmVn
ID0gPDB4MCAweDQ3ZmYxMDAwIDB4MCAweDEwMDA+Ow0KPj4gfTsNCj4+IHNjbWlfeGVuOiBzY21p
IHsNCj4+ICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJtLHNjbWktc21jIjsNCj4+ICAgICAgICAg
IGFybSxzbWMtaWQgPSA8MHg4MjAwMDAwMz47IDwtLS0gWGVuIG1hbmFnZW1lbnQgYWdlbnQgc21j
LWlkDQo+PiAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwgMT47DQo+PiAgICAgICAgICAjc2l6
ZS1jZWxscyA9IDwgMD47DQo+PiAgICAgICAgICAjYWNjZXNzLWNvbnRyb2xsZXItY2VsbHMgPSA8
IDE+Ow0KPj4gICAgICAgICAgc2htZW0gPSA8JnNjbWlfc2htXzE+OyA8LS0tIFhlbiBtYW5hZ2Vt
ZW50IGFnZW50IHNobWVtDQo+PiB9Ow0KPj4NCj4+IC0gVGhlIGRyaXZlciBvYnRhaW5zIFhlbiBz
cGVjaWZpYyBTQ01JIEFnZW50J3MgY29uZmlndXJhdGlvbiBmcm9tIHRoZQ0KPj4gICAgSG9zdCBE
VCwgcHJvYmVzIEFnZW50cyBhbmQgYnVpbGRzIFNDTUkgQWdlbnRzIGxpc3QuIFRoZSBBZ2VudHMN
Cj4+ICAgIGNvbmZpZ3VyYXRpb24gaXMgdGFrZW4gZnJvbSAic2NtaS1zZWNvbmRhcnktYWdlbnRz
IiBwcm9wZXJ0eSB3aGVyZQ0KPj4gICAgZmlyc3QgaXRlbSBpcyAiYXJtLHNtYy1pZCIsIHNlY29u
ZCAtICJhcm0sc2NtaS1zaG1lbSIgcGhhbmRsZSBhbmQNCj4+ICAgIHRoaXJkIGlzIG9wdGlvbmFs
ICJhZ2VudF9pZCI6DQo+Pg0KPj4gLyB7DQo+PiAgICBjaG9zZW4gew0KPj4gICAgICB4ZW4gew0K
Pj4gICAgICAgIHJhbmdlczsNCj4+ICAgICAgICB4ZW5fc2NtaV9jb25maWcgew0KPj4gICAgICAg
ICAgY29tcGF0aWJsZSA9ICJ4ZW4sc2NpIjsNCj4+ICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0g
PDI+Ow0KPj4gICAgICAgICAgI3NpemUtY2VsbHMgPSA8Mj47DQo+PiAgICAgICAgICByYW5nZXM7
DQo+Pg0KPj4gICAgICAgICAgc2NtaV9zaG1fMDogc3JhbUA0N2ZmMDAwMCB7DQo+PiAgICAgICAg
ICAgIGNvbXBhdGlibGUgPSAiYXJtLHNjbWktc2htZW0iOw0KPj4gICAgICAgICAgICByZWcgPSA8
MHgwIDB4NDdmZjAwMDAgMHgwIDB4MTAwMD47DQo+PiAgICAgICAgICB9Ow0KPj4NCj4+ICAgICAg
ICAgIC8qIFhlbiBTQ01JIG1hbmFnZW1lbnQgY2hhbm5lbCAqLw0KPj4gICAgICAgICAgc2NtaV9z
aG1fMTogc3JhbUA0N2ZmMTAwMCB7DQo+PiAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJtLHNj
bWktc2htZW0iOw0KPj4gICAgICAgICAgICByZWcgPSA8MHgwIDB4NDdmZjEwMDAgMHgwIDB4MTAw
MD47DQo+PiAgICAgICAgICB9Ow0KPj4NCj4+ICAgICAgICAgIHNjbWlfc2htXzI6IHNyYW1ANDdm
ZjIwMDAgew0KPj4gICAgICAgICAgICBjb21wYXRpYmxlID0gImFybSxzY21pLXNobWVtIjsNCj4+
ICAgICAgICAgICAgcmVnID0gPDB4MCAweDQ3ZmYyMDAwIDB4MCAweDEwMDA+Ow0KPj4gICAgICAg
ICAgfTsNCj4+DQo+PiAgICAgICAgICBzY21pX3NobV8zOiBzcmFtQDQ3ZmYzMDAwIHsNCj4+ICAg
ICAgICAgICAgY29tcGF0aWJsZSA9ICJhcm0sc2NtaS1zaG1lbSI7DQo+PiAgICAgICAgICAgIHJl
ZyA9IDwweDAgMHg0N2ZmMzAwMCAweDAgMHgxMDAwPjsNCj4+ICAgICAgICAgIH07DQo+Pg0KPj4g
ICAgICAgICAgc2NtaS1zZWNvbmRhcnktYWdlbnRzID0gPA0KPj4gICAgICAgICAgICAweDgyMDAw
MDAyICZzY21pX3NobV8wIDANCj4+ICAgICAgICAgICAgMHg4MjAwMDAwNCAmc2NtaV9zaG1fMiAy
DQo+PiAgICAgICAgICAgIDB4ODIwMDAwMDUgJnNjbWlfc2htXzMgMz47IDwtLS0gZnVuY19pZCwg
c2htZW0sIGFnZW50X2lkDQo+PiAgICAgICAgICAjc2NtaS1zZWNvbmRhcnktYWdlbnRzLWNlbGxz
ID0gPDM+Ow0KPj4gCXhlbixkb20wLXNjaS1hZ2VudC1pZCA9IDwwPjsNCj4+DQo+PiAgICAgICAg
ICBzY21pX3hlbjogc2NtaSB7DQo+PiAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiYXJtLHNjbWkt
c21jIjsNCj4+ICAgICAgICAgICAgYXJtLHNtYy1pZCA9IDwweDgyMDAwMDAzPjsgPC0tLSBYZW4g
bWFuYWdlbWVudCBhZ2VudCBmdW5jX2lkDQo+PiAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0g
PDE+Ow0KPj4gICAgICAgICAgICAjc2l6ZS1jZWxscyA9IDwwPjsNCj4+ICAgICAgICAgICAgI2Fj
Y2Vzcy1jb250cm9sbGVyLWNlbGxzID0gPDE+Ow0KPj4gICAgICAgICAgICBzaG1lbSA9IDwmc2Nt
aV9zaG1fMT47IDwtLS0gWGVuIG1hbmFnZW1lbnQgYWdlbnQgc2htZW0NCj4+ICAgICAgICAgIH07
DQo+PiAgICAgICAgfTsNCj4+ICAgICAgfTsNCj4+ICAgIH07DQo+PiB9Ow0KPj4NCj4+IC8gew0K
Pj4gICAgICAvKg0KPj4gICAgICAgKiBIb3N0IFNDTUkgT1NQTSBjaGFubmVsIC0gcHJvdmlkZWQg
dG8gdGhlIERvbTAgYXMgaXMgaWYgU0NNSQ0KPj4gICAgICAgKiBlbmFibGVkIGZvciBpdCwgaWdu
b3JlZCBieSBYZW4gbXVsdGktYWdlbnQgbWVkaWF0b3INCj4+ICAgICAgICovDQo+PiAgICAgIHNj
bWlfc2htOiBzcmFtQDQ3ZmYwMDAwIHsNCj4+ICAgICAgICAgICAgICBjb21wYXRpYmxlID0gImFy
bSxzY21pLXNobWVtIjsNCj4+ICAgICAgICAgICAgICByZWcgPSA8MHgwIDB4NDdmZjAwMDAgMHgw
IDB4MTAwMD47DQo+PiAgICAgIH07DQo+Pg0KPj4gICAgICBmaXJtd2FyZSB7DQo+PiAgICAgICAg
c2NtaTogc2NtaSB7DQo+PiAgICAgICAgICBjb21wYXRpYmxlID0gImFybSxzY21pLXNtYyI7DQo+
PiAgICAgICAgICBhcm0sc21jLWlkID0gPDB4ODIwMDAwMDI+OyA8LS0tIEhvc3QgT1NQTSBhZ2Vu
dCBzbWMtaWQNCj4+ICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gPCAxPjsNCj4+ICAgICAgICAg
ICNzaXplLWNlbGxzID0gPCAwPjsNCj4+ICAgICAgICAgIHNobWVtID0gPCZzY21pX3NobT47IDwt
LS0gSG9zdCBPU1BNIGFnZW50IHNobWVtDQo+Pg0KPj4gICAgICAgICAgcHJvdG9jb2xAWHsNCj4+
ICAgICAgICAgIH07DQo+PiAgICAgICAgfTsNCj4+ICAgICB9Ow0KPj4gfTsNCj4+DQpbc25pcF0N
Cj4+IC0tLSBhL3hlbi9hcmNoL2FybS9maXJtd2FyZS9NYWtlZmlsZQ0KPj4gKysrIGIveGVuL2Fy
Y2gvYXJtL2Zpcm13YXJlL01ha2VmaWxlDQo+PiBAQCAtMSwyICsxLDMgQEANCj4+ICAgb2JqLSQo
Q09ORklHX0FSTV9TQ0kpICs9IHNjaS5vDQo+PiAgIG9iai0kKENPTkZJR19TQ01JX1NNQykgKz0g
c2NtaS1zbWMubw0KPj4gK29iai0kKENPTkZJR19TQ01JX1NNQ19NQSkgKz0gc2NtaS1zaG1lbS5v
IHNjbWktc21jLW11bHRpYWdlbnQubw0KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9maXJt
d2FyZS9zY21pLXByb3RvLmggYi94ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NtaS1wcm90by5oDQo+
PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uNDlmNjNjZmMwYQ0K
Pj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktcHJv
dG8uaA0KPj4gQEAgLTAsMCArMSwxNjQgQEANCj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll
cjogR1BMLTIuMC1vbmx5ICovDQo+PiArLyoNCj4+ICsgKiBBcm0gU3lzdGVtIENvbnRyb2wgYW5k
IE1hbmFnZW1lbnQgSW50ZXJmYWNlIGRlZmluaXRpb25zDQo+PiArICogVmVyc2lvbiAzLjAgKERF
TjAwNTZDKQ0KPj4gKyAqDQo+PiArICogQ29weXJpZ2h0IChjKSAyMDI1IEVQQU0gU3lzdGVtcw0K
Pj4gKyAqLw0KPj4gKw0KPj4gKyNpZm5kZWYgQVJNX0ZJUk1XQVJFX1NDTUlfUFJPVE9fSF8NCj4+
ICsjZGVmaW5lIEFSTV9GSVJNV0FSRV9TQ01JX1BST1RPX0hfDQo+PiArDQo+PiArI2luY2x1ZGUg
PHhlbi9zdGRpbnQuaD4NCj4+ICsNCj4+ICsjZGVmaW5lIFNDTUlfU0hPUlRfTkFNRV9NQVhfU0la
RSAxNg0KPj4gKw0KPj4gKy8qIFNDTUkgc3RhdHVzIGNvZGVzLiBTZWUgc2VjdGlvbiA0LjEuNCAq
Lw0KPj4gKyNkZWZpbmUgU0NNSV9TVUNDRVNTICAgICAgICAgICAgICAwDQo+PiArI2RlZmluZSBT
Q01JX05PVF9TVVBQT1JURUQgICAgICAoLTEpDQo+PiArI2RlZmluZSBTQ01JX0lOVkFMSURfUEFS
QU1FVEVSUyAoLTIpDQo+PiArI2RlZmluZSBTQ01JX0RFTklFRCAgICAgICAgICAgICAoLTMpDQo+
PiArI2RlZmluZSBTQ01JX05PVF9GT1VORCAgICAgICAgICAoLTQpDQo+PiArI2RlZmluZSBTQ01J
X09VVF9PRl9SQU5HRSAgICAgICAoLTUpDQo+PiArI2RlZmluZSBTQ01JX0JVU1kgICAgICAgICAg
ICAgICAoLTYpDQo+PiArI2RlZmluZSBTQ01JX0NPTU1TX0VSUk9SICAgICAgICAoLTcpDQo+PiAr
I2RlZmluZSBTQ01JX0dFTkVSSUNfRVJST1IgICAgICAoLTgpDQo+PiArI2RlZmluZSBTQ01JX0hB
UkRXQVJFX0VSUk9SICAgICAoLTkpDQo+PiArI2RlZmluZSBTQ01JX1BST1RPQ09MX0VSUk9SICAg
ICAoLTEwKQ0KPj4gKw0KPj4gKy8qIFByb3RvY29sIElEcyAqLw0KPj4gKyNkZWZpbmUgU0NNSV9C
QVNFX1BST1RPQ09MIDB4MTANCj4+ICsNCj4+ICsvKiBCYXNlIHByb3RvY29sIG1lc3NhZ2UgSURz
ICovDQo+PiArI2RlZmluZSBTQ01JX0JBU0VfUFJPVE9DT0xfVkVSU0lPTiAgICAgICAgICAgIDB4
MA0KPj4gKyNkZWZpbmUgU0NNSV9CQVNFX1BST1RPQ09MX0FUVElCVVRFUyAgICAgICAgICAweDEN
Cj4+ICsjZGVmaW5lIFNDTUlfQkFTRV9QUk9UT0NPTF9NRVNTQUdFX0FUVFJJQlVURVMgMHgyDQo+
PiArI2RlZmluZSBTQ01JX0JBU0VfRElTQ09WRVJfQUdFTlQgICAgICAgICAgICAgIDB4Nw0KPj4g
KyNkZWZpbmUgU0NNSV9CQVNFX1NFVF9ERVZJQ0VfUEVSTUlTU0lPTlMgICAgICAweDkNCj4+ICsj
ZGVmaW5lIFNDTUlfQkFTRV9SRVNFVF9BR0VOVF9DT05GSUdVUkFUSU9OICAgMHhCDQo+PiArDQo+
PiArdHlwZWRlZiBzdHJ1Y3Qgc2NtaV9tc2dfaGVhZGVyIHsNCj4+ICsgICAgdWludDhfdCBpZDsN
Cj4+ICsgICAgdWludDhfdCB0eXBlOw0KPj4gKyAgICB1aW50OF90IHByb3RvY29sOw0KPj4gKyAg
ICB1aW50MzJfdCBzdGF0dXM7DQo+PiArfSBzY21pX21zZ19oZWFkZXJfdDsNCj4+DQo+IFNob3Vs
ZCB0aGlzIGJlIF9fcGFja2VkIG9yIGlzIHRoZXJlIHBhZGRpbmcgaW4gaGVyZT8NCk5vIGJlY2F1
c2UgaXQnbGwgYmUgcHJvY2Vzc2VkIGJ5IHBhY2tfc2NtaV9oZWFkZXIoKSBmdW5jdGlvbi4NCj4+
ICsvKiBUYWJsZSAyIE1lc3NhZ2UgaGVhZGVyIGZvcm1hdCAqLw0KPj4gKyNkZWZpbmUgU0NNSV9I
RFJfSUQgICAgR0VOTUFTSyg3LCAwKQ0KPj4gKyNkZWZpbmUgU0NNSV9IRFJfVFlQRSAgR0VOTUFT
Syg5LCA4KQ0KPj4gKyNkZWZpbmUgU0NNSV9IRFJfUFJPVE8gR0VOTUFTSygxNywgMTApDQo+PiAr
DQo+PiArI2RlZmluZSBTQ01JX0ZJRUxEX0dFVChfbWFzaywgX3JlZykgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4+ICsgICAgKCh0eXBlb2YoX21hc2spKSgo
KF9yZWcpICYgKF9tYXNrKSkgPj4gKGZmczY0KF9tYXNrKSAtIDEpKSkNCj4+ICsjZGVmaW5lIFND
TUlfRklFTERfUFJFUChfbWFzaywgX3ZhbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KPj4gKyAgICAoKCh0eXBlb2YoX21hc2spKShfdmFsKSA8PCAoZmZzNjQo
X21hc2spIC0gMSkpICYgKF9tYXNrKSkNCj4+ICsNCj4+ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90
IHBhY2tfc2NtaV9oZWFkZXIoc2NtaV9tc2dfaGVhZGVyX3QgKmhkcikNCj4+ICt7DQo+PiArICAg
IHJldHVybiBTQ01JX0ZJRUxEX1BSRVAoU0NNSV9IRFJfSUQsIGhkci0+aWQpIHwNCj4+ICsgICAg
ICAgICAgIFNDTUlfRklFTERfUFJFUChTQ01JX0hEUl9UWVBFLCBoZHItPnR5cGUpIHwNCj4+ICsg
ICAgICAgICAgIFNDTUlfRklFTERfUFJFUChTQ01JX0hEUl9QUk9UTywgaGRyLT5wcm90b2NvbCk7
DQo+PiArfQ0KPj4gKw0KW3NuaXBdDQo+Pg0KPj4NCj4+ICsjaW5jbHVkZSA8eGVuL2Vyci5oPg0K
Pj4gKyNpbmNsdWRlIDx4ZW4vaW8uaD4NCj4+ICsjaW5jbHVkZSA8YXNtL2lvLmg+DQo+PiArDQo+
PiArI2luY2x1ZGUgInNjbWktcHJvdG8uaCINCj4+ICsjaW5jbHVkZSAic2NtaS1zaG1lbS5oIg0K
Pj4gKw0KPj4gK3N0YXRpYyBpbmxpbmUgaW50DQo+PiArc2htZW1fY2hhbm5lbF9pc19mcmVlKGNv
bnN0IHZvbGF0aWxlIHN0cnVjdCBzY21pX3NoYXJlZF9tZW0gX19pb21lbSAqc2htZW0pDQo+PiAr
ew0KPj4gKyAgICByZXR1cm4gKHJlYWRsKCZzaG1lbS0+Y2hhbm5lbF9zdGF0dXMpICYNCj4+ICsg
ICAgICAgICAgICBTQ01JX1NITUVNX0NIQU5fU1RBVF9DSEFOTkVMX0ZSRUUpID8gMCA6IC1FQlVT
WTsNCj4gVGhpcyByZXR1cm4gemVybyB3aGVuIGl0IGlzIGZyZWUgYnV0IHRoZSBmdW5jdGlvbiBp
cyBjYWxsZWQNCj4gInNobWVtX2NoYW5uZWxfaXNfZnJlZSIsIHdoaWNoIHR5cGljYWxseSB5b3Ug
d291bGQgZXhwZWN0IHJldHVybnMgdHJ1ZQ0KPiBvbiBzdWNjZXNzIGFuZCBmYWxzZSBvbiBmYWls
dXJlDQo+DQpGYWlyIGVub3VnaC4gd2lsbCByZW5hbWUgdG8gc2htZW1fY2hhbm5lbF9zdGF0dXMN
Cj4+ICt9DQo+PiArDQo+PiAraW50IHNobWVtX3B1dF9tZXNzYWdlKHZvbGF0aWxlIHN0cnVjdCBz
Y21pX3NoYXJlZF9tZW0gX19pb21lbSAqc2htZW0sDQo+PiArICAgICAgICAgICAgICAgICAgICAg
IHNjbWlfbXNnX2hlYWRlcl90ICpoZHIsIHZvaWQgKmRhdGEsIGludCBsZW4pDQo+PiArew0KPj4g
KyAgICBpbnQgcmV0Ow0KPj4gKw0KPj4gKyAgICBpZiAoIChsZW4gKyBvZmZzZXRvZihzdHJ1Y3Qg
c2NtaV9zaGFyZWRfbWVtLCBtc2dfcGF5bG9hZCkpID4NCj4gc2hvdWxkIGxlbiBiZSB1bnNpZ25l
ZD8NCj4NCj4NCj4+ICsgICAgICAgICBTQ01JX1NITUVNX01BUFBFRF9TSVpFICkNCj4+ICsgICAg
ew0KPj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgInNjbWk6IFdyb25nIHNpemUgb2Ygc21j
IG1lc3NhZ2UuIERhdGEgaXMgaW52YWxpZFxuIik7DQo+PiArICAgICAgICByZXR1cm4gLUVJTlZB
TDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICByZXQgPSBzaG1lbV9jaGFubmVsX2lzX2ZyZWUo
c2htZW0pOw0KPj4gKyAgICBpZiAoIHJldCApDQo+PiArICAgICAgICByZXR1cm4gcmV0Ow0KPj4g
Kw0KPj4gKyAgICB3cml0ZWxfcmVsYXhlZCgweDAsICZzaG1lbS0+Y2hhbm5lbF9zdGF0dXMpOw0K
Pj4gKyAgICAvKiBXcml0aW5nIDB4MCByaWdodCBub3csIGJ1dCAic2htZW0iX0ZMQUdfSU5UUl9F
TkFCTEVEIGNhbiBiZSBzZXQgKi8NCj4+ICsgICAgd3JpdGVsX3JlbGF4ZWQoMHgwLCAmc2htZW0t
PmZsYWdzKTsNCj4+ICsgICAgd3JpdGVsX3JlbGF4ZWQoc2l6ZW9mKHNobWVtLT5tc2dfaGVhZGVy
KSArIGxlbiwgJnNobWVtLT5sZW5ndGgpOw0KPj4gKyAgICB3cml0ZWwocGFja19zY21pX2hlYWRl
cihoZHIpLCAmc2htZW0tPm1zZ19oZWFkZXIpOw0KPj4gKw0KPj4gKyAgICBpZiAoIGxlbiA+IDAg
JiYgZGF0YSApDQo+PiArICAgICAgICBtZW1jcHlfdG9pbyhzaG1lbS0+bXNnX3BheWxvYWQsIGRh
dGEsIGxlbik7DQo+PiArDQo+PiArICAgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICtpbnQg
c2htZW1fZ2V0X3Jlc3BvbnNlKGNvbnN0IHZvbGF0aWxlIHN0cnVjdCBzY21pX3NoYXJlZF9tZW0g
X19pb21lbSAqc2htZW0sDQo+PiArICAgICAgICAgICAgICAgICAgICAgICBzY21pX21zZ19oZWFk
ZXJfdCAqaGRyLCB2b2lkICpkYXRhLCBpbnQgbGVuKQ0KPj4gK3sNCj4+ICsgICAgaW50IHJlY3Zf
bGVuOw0KPj4gKyAgICBpbnQgcmV0Ow0KPj4gKyAgICBpbnQgcGFkID0gc2l6ZW9mKGhkci0+c3Rh
dHVzKTsNCj4gdGhpcyBkZXNlcnZlcyBhIGNvbW1lbnQNClRoYW5rcy4gQWRkZWQgYSBjb21tZW50
LiBXZSBza2lwIHN0YXR1cyAoY29tbW9uIGZpZWxkKSBhbmQgcmV0dXJuIG9ubHkgDQpwcm90b2Nv
bCBzcGVjaWZpYyBpbmZvLg0KU3RhdHVzIGlzIHByb2Nlc3NlZCBzZXBhcmF0ZWx5IGluIHRoaXMg
ZnVuYy4NCj4NCj4+ICsgICAgaWYgKCBsZW4gPj0gU0NNSV9TSE1FTV9NQVBQRURfU0laRSAtDQo+
PiArICAgICAgICAgb2Zmc2V0b2Yoc3RydWN0IHNjbWlfc2hhcmVkX21lbSwgbXNnX3BheWxvYWQp
ICkNCj4+ICsgICAgew0KPj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlINCj4+ICsgICAgICAg
ICAgICAgICAic2NtaTogV3Jvbmcgc2l6ZSBvZiBpbnB1dCBzbWMgbWVzc2FnZS4gRGF0YSBtYXkg
YmUgaW52YWxpZFxuIik7DQo+PiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAgfQ0K
Pj4gKw0KPj4gKyAgICByZXQgPSBzaG1lbV9jaGFubmVsX2lzX2ZyZWUoc2htZW0pOw0KPj4gKyAg
ICBpZiAoIHJldCApDQo+PiArICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKw0KPj4gKyAgICByZWN2
X2xlbiA9IHJlYWRsKCZzaG1lbS0+bGVuZ3RoKSAtIHNpemVvZihzaG1lbS0+bXNnX2hlYWRlcik7
DQo+PiArDQo+PiArICAgIGlmICggcmVjdl9sZW4gPCAwICkNCj4+ICsgICAgew0KPj4gKyAgICAg
ICAgcHJpbnRrKFhFTkxPR19FUlINCj4+ICsgICAgICAgICAgICAgICAic2NtaTogV3Jvbmcgc2l6
ZSBvZiBzbWMgbWVzc2FnZS4gRGF0YSBtYXkgYmUgaW52YWxpZFxuIik7DQo+PiArICAgICAgICBy
ZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICB1bnBhY2tfc2NtaV9oZWFk
ZXIocmVhZGwoJnNobWVtLT5tc2dfaGVhZGVyKSwgaGRyKTsNCj4+ICsNCj4+ICsgICAgaGRyLT5z
dGF0dXMgPSByZWFkbCgmc2htZW0tPm1zZ19wYXlsb2FkKTsNCj4+ICsgICAgcmVjdl9sZW4gPSBy
ZWN2X2xlbiA+IHBhZCA/IHJlY3ZfbGVuIC0gcGFkIDogMDsNCj4+ICsNCj4+ICsgICAgcmV0ID0g
c2NtaV90b194ZW5fZXJybm8oaGRyLT5zdGF0dXMpOw0KPj4gKyAgICBpZiAoIHJldCApDQo+PiAr
ICAgIHsNCj4+ICsgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgInNjbWk6IEVycm9yIHJlY2Vp
dmVkOiAlZFxuIiwgcmV0KTsNCj4+ICsgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgIH0NCj4+
ICsNCj4+ICsgICAgaWYgKCByZWN2X2xlbiA+IGxlbiApDQo+PiArICAgIHsNCj4+ICsgICAgICAg
IHByaW50ayhYRU5MT0dfRVJSDQo+PiArICAgICAgICAgICAgICAgInNjbWk6IE5vdCBlbm91Z2gg
YnVmZmVyIGZvciBtZXNzYWdlICVkLCBleHBlY3RpbmcgJWRcbiIsDQo+PiArICAgICAgICAgICAg
ICAgcmVjdl9sZW4sIGxlbik7DQo+PiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsgICAg
fQ0KPj4gKw0KPj4gKyAgICBpZiAoIHJlY3ZfbGVuID4gMCApDQo+PiArICAgICAgICBtZW1jcHlf
ZnJvbWlvKGRhdGEsIHNobWVtLT5tc2dfcGF5bG9hZCArIHBhZCwgcmVjdl9sZW4pOw0KPj4gKw0K
Pj4gKyAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArLyoNCj4+ICsgKiBMb2NhbCB2YXJp
YWJsZXM6DQo+PiArICogbW9kZTogQw0KPj4gKyAqIGMtZmlsZS1zdHlsZTogIkJTRCINCj4+ICsg
KiBjLWJhc2ljLW9mZnNldDogNA0KPj4gKyAqIHRhYi13aWR0aDogNA0KPj4gKyAqIGluZGVudC10
YWJzLW1vZGU6IG5pbA0KPj4gKyAqIEVuZDoNCj4+ICsgKi8NCj4+IGRpZmYgLS1naXQgYS94ZW4v
YXJjaC9hcm0vZmlybXdhcmUvc2NtaS1zaG1lbS5oIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3Nj
bWktc2htZW0uaA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAu
LjczMTNjYjZiMjYNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9maXJt
d2FyZS9zY21pLXNobWVtLmgNCj4+IEBAIC0wLDAgKzEsNDUgQEANCj4+ICsvKiBTUERYLUxpY2Vu
c2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovDQo+PiArLyoNCj4+ICsgKiBBcm0gU3lzdGVt
IENvbnRyb2wgYW5kIE1hbmFnZW1lbnQgSW50ZXJmYWNlIGRlZmluaXRpb25zDQo+PiArICogVmVy
c2lvbiAzLjAgKERFTjAwNTZDKQ0KPj4gKyAqIFNoYXJlZCBNZW1vcnkgYmFzZWQgVHJhbnNwb3J0
DQo+PiArICoNCj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjQgRVBBTSBTeXN0ZW1zDQo+PiArICov
DQo+PiArDQo+PiArI2lmbmRlZiBBUk1fRklSTVdBUkVfU0NNSV9TSE1FTV9IXw0KPj4gKyNkZWZp
bmUgQVJNX0ZJUk1XQVJFX1NDTUlfU0hNRU1fSF8NCj4+ICsNCj4+ICsjaW5jbHVkZSA8eGVuL3N0
ZGludC5oPg0KPj4gKw0KPj4gKyNkZWZpbmUgU0NNSV9TSE1FTV9DSEFOX1NUQVRfQ0hBTk5FTF9G
UkVFICBCSVQoMCwgVUwpDQo+PiArI2RlZmluZSBTQ01JX1NITUVNX0NIQU5fU1RBVF9DSEFOTkVM
X0VSUk9SIEJJVCgxLCBVTCkNCj4+ICsNCj4+ICtzdHJ1Y3Qgc2NtaV9zaGFyZWRfbWVtIHsNCj4+
ICsgICAgdWludDMyX3QgcmVzZXJ2ZWQ7DQo+PiArICAgIHVpbnQzMl90IGNoYW5uZWxfc3RhdHVz
Ow0KPj4gKyAgICB1aW50MzJfdCByZXNlcnZlZDFbMl07DQo+PiArICAgIHVpbnQzMl90IGZsYWdz
Ow0KPj4gKyAgICB1aW50MzJfdCBsZW5ndGg7DQo+PiArICAgIHVpbnQzMl90IG1zZ19oZWFkZXI7
DQo+PiArICAgIHVpbnQ4X3QgbXNnX3BheWxvYWRbXTsNCj4+ICt9Ow0KPj4gKw0KPj4gKyNkZWZp
bmUgU0NNSV9TSE1FTV9NQVBQRURfU0laRSBQQUdFX1NJWkUNCj4+ICsNCj4+ICtpbnQgc2htZW1f
cHV0X21lc3NhZ2Uodm9sYXRpbGUgc3RydWN0IHNjbWlfc2hhcmVkX21lbSBfX2lvbWVtICpzaG1l
bSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgc2NtaV9tc2dfaGVhZGVyX3QgKmhkciwgdm9p
ZCAqZGF0YSwgaW50IGxlbik7DQo+PiArDQo+PiAraW50IHNobWVtX2dldF9yZXNwb25zZShjb25z
dCB2b2xhdGlsZSBzdHJ1Y3Qgc2NtaV9zaGFyZWRfbWVtIF9faW9tZW0gKnNobWVtLA0KPj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgc2NtaV9tc2dfaGVhZGVyX3QgKmhkciwgdm9pZCAqZGF0YSwg
aW50IGxlbik7DQo+PiArI2VuZGlmIC8qIEFSTV9GSVJNV0FSRV9TQ01JX1NITUVNX0hfICovDQo+
PiArDQo+PiArLyoNCj4+ICsgKiBMb2NhbCB2YXJpYWJsZXM6DQo+PiArICogbW9kZTogQw0KPj4g
KyAqIGMtZmlsZS1zdHlsZTogIkJTRCINCj4+ICsgKiBjLWJhc2ljLW9mZnNldDogNA0KPj4gKyAq
IHRhYi13aWR0aDogNA0KPj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbA0KPj4gKyAqIEVuZDoN
Cj4+ICsgKi8NCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NtaS1zbWMt
bXVsdGlhZ2VudC5jIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc21jLW11bHRpYWdlbnQu
Yw0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAuLjMzOWM0NWYy
ODUNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9maXJtd2FyZS9zY21p
LXNtYy1tdWx0aWFnZW50LmMNCj4+IEBAIC0wLDAgKzEsODE4IEBADQo+PiArLyogU1BEWC1MaWNl
bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLw0KPj4gKy8qDQo+PiArICogU0NJIFNDTUkg
bXVsdGktYWdlbnQgZHJpdmVyLCB1c2luZyBTTUMvSFZDIHNobWVtIGFzIHRyYW5zcG9ydC4NCj4+
ICsgKg0KPj4gKyAqIE9sZWtzaWkgTW9pc2llaWV2IDxvbGVrc2lpX21vaXNpZWlldkBlcGFtLmNv
bT4NCj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjUgRVBBTSBTeXN0ZW1zDQo+PiArICovDQo+PiAr
DQo+PiArI2luY2x1ZGUgPHhlbi9hY3BpLmg+DQo+PiArDQo+PiArI2luY2x1ZGUgPHhlbi9kZXZp
Y2VfdHJlZS5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4vaW5pdC5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4v
aW9jYXAuaD4NCj4+ICsjaW5jbHVkZSA8eGVuL2Vyci5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4vbGli
ZmR0L2xpYmZkdC5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4vc3RyaW5nLmg+DQo+PiArI2luY2x1ZGUg
PHhlbi9wYXJhbS5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4NCj4+ICsjaW5jbHVkZSA8
eGVuL3ZtYXAuaD4NCj4+ICsNCj4+ICsjaW5jbHVkZSA8YXNtL2Zpcm13YXJlL3NjaS5oPg0KPj4g
KyNpbmNsdWRlIDxhc20vc21jY2MuaD4NCj4+ICsNCj4+ICsjaW5jbHVkZSAic2NtaS1wcm90by5o
Ig0KPj4gKyNpbmNsdWRlICJzY21pLXNobWVtLmgiDQo+PiArDQo+PiArI2RlZmluZSBTQ01JX1NF
Q09OREFSWV9BR0VOVFMgInNjbWktc2Vjb25kYXJ5LWFnZW50cyINCj4+ICsNCj4+ICtzdHJ1Y3Qg
c2NtaV9jaGFubmVsIHsNCj4+ICsgICAgdWludDMyX3QgYWdlbnRfaWQ7DQo+PiArICAgIHVpbnQz
Ml90IGZ1bmNfaWQ7DQo+PiArICAgIGRvbWlkX3QgZG9tYWluX2lkOw0KPj4gKyAgICB1aW50NjRf
dCBwYWRkcjsNCj4+ICsgICAgc3RydWN0IHNjbWlfc2hhcmVkX21lbSBfX2lvbWVtICpzaG1lbTsN
Cj4+ICsgICAgc3BpbmxvY2tfdCBsb2NrOw0KPj4gKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7
DQo+PiArfTsNCj4+ICsNCj4+ICtzdHJ1Y3Qgc2NtaV9kYXRhIHsNCj4+ICsgICAgc3RydWN0IGxp
c3RfaGVhZCBjaGFubmVsX2xpc3Q7DQo+PiArICAgIHNwaW5sb2NrX3QgY2hhbm5lbF9saXN0X2xv
Y2s7DQo+PiArICAgIHVpbnQzMl90IGZ1bmNfaWQ7DQo+PiArICAgIGJvb2wgaW5pdGlhbGl6ZWQ7
DQo+PiArICAgIHVpbnQzMl90IHNobWVtX3BoYW5kbGU7DQo+PiArICAgIHVpbnQzMl90IGh5cF9j
aGFubmVsX2FnZW50X2lkOw0KPj4gKyAgICBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmR0X2RldjsN
Cj4+ICt9Ow0KPj4gKw0KPj4gK3N0YXRpYyBzdHJ1Y3Qgc2NtaV9kYXRhIHNjbWlfZGF0YTsNCj4+
ICsNCj4+ICtzdGF0aWMgYm9vbCBzY21pX2lzX3VuZGVyX3hlbl9zY2koY29uc3Qgc3RydWN0IGR0
X2RldmljZV9ub2RlICpub2RlKQ0KPj4gK3sNCj4+ICsgICAgY29uc3Qgc3RydWN0IGR0X2Rldmlj
ZV9ub2RlICpwOw0KPj4gKw0KPj4gKyAgICBmb3IgKCBwID0gbm9kZS0+cGFyZW50OyBwOyBwID0g
cC0+cGFyZW50ICkNCj4+ICsgICAgICAgIGlmICggZHRfZGV2aWNlX2lzX2NvbXBhdGlibGUocCwg
InhlbixzY2kiKSApDQo+PiArICAgICAgICAgICAgcmV0dXJuIHRydWU7DQo+PiArDQo+PiArICAg
IHJldHVybiBmYWxzZTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBzZW5kX3NtY19tZXNz
YWdlKHN0cnVjdCBzY21pX2NoYW5uZWwgKmNoYW5faW5mbywNCj4+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2NtaV9tc2dfaGVhZGVyX3QgKmhkciwgdm9pZCAqZGF0YSwgaW50IGxlbikN
Cj4+ICt7DQo+PiArICAgIHN0cnVjdCBhcm1fc21jY2NfcmVzIHJlc3A7DQo+PiArICAgIGludCBy
ZXQ7DQo+PiArDQo+PiArICAgIHJldCA9IHNobWVtX3B1dF9tZXNzYWdlKGNoYW5faW5mby0+c2ht
ZW0sIGhkciwgZGF0YSwgbGVuKTsNCj4+ICsgICAgaWYgKCByZXQgKQ0KPj4gKyAgICAgICAgcmV0
dXJuIHJldDsNCj4+ICsNCj4+ICsgICAgYXJtX3NtY2NjXzFfMV9zbWMoY2hhbl9pbmZvLT5mdW5j
X2lkLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAmcmVzcCk7DQo+PiArDQo+PiArICAgIGlmICggcmVz
cC5hMCA9PSBBUk1fU01DQ0NfSU5WQUxJRF9QQVJBTUVURVIgKQ0KPiBqdXN0IG5vdGluZyB0aGF0
IGEwIGlzIHVuc2lnbmVkIGxvbmcgYW5kIEFSTV9TTUNDQ19JTlZBTElEX1BBUkFNRVRFUiBpcw0K
PiAoLTMpLiBNYXliZSBhdCBsZWFzdCBhbiBleHBsaWNpdCBjYXN0Pw0KPg0KSSdtIHJldXNpbmcg
ZGVmYXVsdCBpbnRlcmZhY2UuIGFkZGVkIGV4cGxpY2l0IGNhc3QuDQo+PiArICAgICAgICByZXR1
cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsgICAgaWYgKCByZXNwLmEwICkNCj4+ICsgICAgICAgIHJl
dHVybiAtRU9QTk9UU1VQUDsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0K
Pj4gK3N0YXRpYyBpbnQgZG9fc21jX3hmZXIoc3RydWN0IHNjbWlfY2hhbm5lbCAqY2hhbl9pbmZv
LCBzY21pX21zZ19oZWFkZXJfdCAqaGRyLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgdm9p
ZCAqdHhfZGF0YSwgaW50IHR4X3NpemUsIHZvaWQgKnJ4X2RhdGEsIGludCByeF9zaXplKQ0KPj4g
K3sNCj4+ICsgICAgaW50IHJldCA9IDA7DQo+PiArDQo+PiArICAgIEFTU0VSVChjaGFuX2luZm8g
JiYgY2hhbl9pbmZvLT5zaG1lbSk7DQo+PiArDQo+PiArICAgIGlmICggIWhkciApDQo+PiArICAg
ICAgICByZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsgICAgc3Bpbl9sb2NrKCZjaGFuX2luZm8t
PmxvY2spOw0KPj4gKw0KPj4gKyAgICBwcmludGsoWEVOTE9HX0RFQlVHDQo+PiArICAgICAgICAg
ICAic2NtaTogYWdlbnRfaWQgPSAlZCBtc2dfaWQgPSAleCB0eXBlID0gJWQsIHByb3RvID0gJXhc
biIsDQo+PiArICAgICAgICAgICBjaGFuX2luZm8tPmFnZW50X2lkLCBoZHItPmlkLCBoZHItPnR5
cGUsIGhkci0+cHJvdG9jb2wpOw0KPj4gKw0KPj4gKyAgICByZXQgPSBzZW5kX3NtY19tZXNzYWdl
KGNoYW5faW5mbywgaGRyLCB0eF9kYXRhLCB0eF9zaXplKTsNCj4+ICsgICAgaWYgKCByZXQgKQ0K
Pj4gKyAgICAgICAgZ290byBjbGVhbjsNCj4+ICsNCj4+ICsgICAgcmV0ID0gc2htZW1fZ2V0X3Jl
c3BvbnNlKGNoYW5faW5mby0+c2htZW0sIGhkciwgcnhfZGF0YSwgcnhfc2l6ZSk7DQo+PiArDQo+
PiArY2xlYW46DQo+PiArICAgIHByaW50ayhYRU5MT0dfREVCVUcNCj4+ICsgICAgICAgICAgICJz
Y21pOiBnZXQgc21jIHJlc3BvbnNlIGFnZW50X2lkID0gJWQgbXNnX2lkID0gJXggcHJvdG8gPSAl
eCByZXM9JWRcbiIsDQo+PiArICAgICAgICAgICBjaGFuX2luZm8tPmFnZW50X2lkLCBoZHItPmlk
LCBoZHItPnByb3RvY29sLCByZXQpOw0KPj4gKw0KPj4gKyAgICBzcGluX3VubG9jaygmY2hhbl9p
bmZvLT5sb2NrKTsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIHJldDsNCj4+ICt9DQo+PiArDQo+PiAr
c3RhdGljIHN0cnVjdCBzY21pX2NoYW5uZWwgKmdldF9jaGFubmVsX2J5X2lkKHVpbnQzMl90IGFn
ZW50X2lkKQ0KPj4gK3sNCj4+ICsgICAgc3RydWN0IHNjbWlfY2hhbm5lbCAqY3VycjsNCj4+ICsg
ICAgYm9vbCBmb3VuZCA9IGZhbHNlOw0KPj4gKw0KPj4gKyAgICBzcGluX2xvY2soJnNjbWlfZGF0
YS5jaGFubmVsX2xpc3RfbG9jayk7DQo+PiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoY3Vyciwg
JnNjbWlfZGF0YS5jaGFubmVsX2xpc3QsIGxpc3QpDQo+PiArICAgIHsNCj4+ICsgICAgICAgIGlm
ICggY3Vyci0+YWdlbnRfaWQgPT0gYWdlbnRfaWQgKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAg
ICAgICAgIGZvdW5kID0gdHJ1ZTsNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+ICsgICAgICAg
IH0NCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBzcGluX3VubG9jaygmc2NtaV9kYXRhLmNoYW5u
ZWxfbGlzdF9sb2NrKTsNCj4+ICsgICAgaWYgKCBmb3VuZCApDQo+PiArICAgICAgICByZXR1cm4g
Y3VycjsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIE5VTEw7DQo+PiArfQ0KPj4gKw0KW3NuaXBdDQo+
PiArDQo+PiArc3RhdGljIGludCBjb2xsZWN0X2FnZW50X2lkKHN0cnVjdCBzY21pX2NoYW5uZWwg
KmFnZW50X2NoYW5uZWwpDQo+PiArew0KPj4gKyAgICBpbnQgcmV0Ow0KPj4gKyAgICBzY21pX21z
Z19oZWFkZXJfdCBoZHI7DQo+PiArICAgIHN0cnVjdCBzY21pX21zZ19iYXNlX2Rpc2NvdmVyX2Fn
ZW50X3AyYSBkYV9yeDsNCj4+ICsgICAgc3RydWN0IHNjbWlfbXNnX2Jhc2VfZGlzY292ZXJfYWdl
bnRfYTJwIGRhX3R4Ow0KPj4gKw0KPj4gKyAgICByZXQgPSBtYXBfY2hhbm5lbF9tZW1vcnkoYWdl
bnRfY2hhbm5lbCk7DQo+PiArICAgIGlmICggcmV0ICkNCj4+ICsgICAgICAgIHJldHVybiByZXQ7
DQo+PiArDQo+PiArICAgIGhkci5pZCA9IFNDTUlfQkFTRV9ESVNDT1ZFUl9BR0VOVDsNCj4+ICsg
ICAgaGRyLnR5cGUgPSAwOw0KPj4gKyAgICBoZHIucHJvdG9jb2wgPSBTQ01JX0JBU0VfUFJPVE9D
T0w7DQo+PiArDQo+PiArICAgIGRhX3R4LmFnZW50X2lkID0gYWdlbnRfY2hhbm5lbC0+YWdlbnRf
aWQ7DQo+PiArDQo+PiArICAgIHJldCA9IGRvX3NtY194ZmVyKGFnZW50X2NoYW5uZWwsICZoZHIs
ICZkYV90eCwgc2l6ZW9mKGRhX3R4KSwgJmRhX3J4LA0KPj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVvZihkYV9yeCkpOw0KPj4gKyAgICBpZiAoIGFnZW50X2NoYW5uZWwtPmRvbWFpbl9p
ZCAhPSBET01JRF9YRU4gKQ0KPj4gKyAgICAgICAgdW5tYXBfY2hhbm5lbF9tZW1vcnkoYWdlbnRf
Y2hhbm5lbCk7DQo+PiArICAgIGlmICggcmV0ICkNCj4+ICsgICAgICAgIHJldHVybiByZXQ7DQo+
Pg0KPiBPbiBlcnJvciAocmV0ICE9IDApIHNob3VsZCB3ZSBjYWxsIHVubWFwX2NoYW5uZWxfbWVt
b3J5ID8NCj4NCmZvciBET01JRF9YRU4gaXQgc2hvdWxkIGJlIGNhbGxlZCBsYXRlci4NCj4+ICsg
ICAgcHJpbnRrKFhFTkxPR19ERUJVRyAiaWQ9MHgleCBuYW1lPSVzXG4iLCBkYV9yeC5hZ2VudF9p
ZCwgZGFfcngubmFtZSk7DQo+PiArICAgIGFnZW50X2NoYW5uZWwtPmFnZW50X2lkID0gZGFfcngu
YWdlbnRfaWQ7DQo+PiArICAgIHJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgX19p
bml0IGludCBjb2xsZWN0X2FnZW50cyhzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKnNjbWlfbm9kZSkN
Cj4+ICt7DQo+PiArICAgIGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqY29uZmlnX25vZGU7
DQo+PiArICAgIGNvbnN0IF9fYmUzMiAqcHJvcDsNCj4+DQpbc25pcF0=


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 03:24:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 03:24:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228371.1534566 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqNIx-0003Xf-FS; Thu, 12 Feb 2026 03:23:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228371.1534566; Thu, 12 Feb 2026 03:23:47 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqNIx-0003XW-AK; Thu, 12 Feb 2026 03:23:47 +0000
Received: by outflank-mailman (input) for mailman id 1228371;
 Thu, 12 Feb 2026 03:23: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=BHzL=AQ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vqNIv-0003XQ-LD
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 03:23:45 +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 3b252689-07c2-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 04:23:43 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfout.phl.internal (Postfix) with ESMTP id CDF5AEC0728;
 Wed, 11 Feb 2026 22:23:41 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-05.internal (MEProxy); Wed, 11 Feb 2026 22:23:41 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 11 Feb 2026 22:23:40 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b252689-07c2-11f1-b162-2bf370ae4941
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=1770866621; x=1770953021; bh=4nBuasMp4wez6QdaFSI7hhv6Ad2Ix+lQ
	QS0JYwcUwYw=; b=meNN13aQFaYuGgxoVX4MAy7s3F0TA+K4lTkrdR3bLFC0I3wp
	+HmeS89FyZowV1cfuwdl5CXj5odUCA2lC9CTN2uYoU2B98cCkE/yShgD1EnrdH0J
	0LubKUzZFH5Dro4v/50Ywl+plpskQOkRwSJPYKrCJuWiUiHDxFab92BbyvVoc1vL
	3Nw6E4nhaYW66LmkAO1d4QoxNxgyGpBoG3ezzoLa3m79MT9Wg+YKsVyQxlqPXBmn
	dRcdPFWjhZ0s0EVBcyeVn1Yq51y8Bj6t/ekLdBULLe8/oIzjLoC1uTIImRRiQrEN
	kS8LXpPEk7I3YnTEZQQqyQiPSnvHnTH97NpMCQ==
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=1770866621; x=1770953021; bh=4nBuasMp4wez6QdaFSI7hhv6Ad2I
	x+lQQS0JYwcUwYw=; b=vAPaZbPl4YgySEGWl7tcW2c999PIidousiRP+MBck41c
	JZJl7SSFYaUlY0pxtJn7h97CYJhK3e5r5PEZIYqSjIMzHvuirqRkADKgWO6ACCYo
	BQ2XMTg9hP4q6BEy/DJrzhgzt0W92WQpWetZSd4ePT35htLN50N70fX69ZWFO1r9
	OkBkAs8xdTF0ZOtg6RHkg8g7i88F/4is5nPTTEhPqKF/hO4R+VbqCMO0dUMdLApn
	tgjGcanqaovs5gFKlC/j6DSFWwLS32dQlfdj7Ci1/hhGPVxUeaP3Nw65IJKe4/1s
	01P+NVz1doV+6RSSw+BMxpgjSFRGm5cf0L7lU/8Gdw==
X-ME-Sender: <xms:vUeNaXXmuiPGSJbkvvo2tmE0V2P8YnXSMWLvayFof1ytyAnwfay3Cg>
    <xme:vUeNaWn-q24jwjAe0x95KCpIsK_IGiK_IAv4dawX49-pbqYTz-k62kQJN2UDP7EsN
    MajTwr3t-Sk8yjM3AtBvTQL5kPwmQ4IePRRtobqmP6KCpKSxA>
X-ME-Received: <xmr:vUeNaYa2g6oH8LC2qRnFmRS4mfu1KIUCPinqGoKrwi0IjYq3XUZOqGd7cg5mNoDfVpxP4YJ_jR6e7R9sBl1jwpOrZHaPimyQKppkuZiCKDM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdegfedtucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelkefhudel
    teelleelteetveeffeetffekteetjeehlefggeekleeghefhtdehvdenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheprghnthhhohhnhidrphgv
    rhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopehjghhrohhsshesshhushgvrd
    gtohhm
X-ME-Proxy: <xmx:vUeNaRMpuUCb9-cTSfjoPEebVZOf2N3wGUGV1fzxjLp8HxPsR7E7Kw>
    <xmx:vUeNadbEgu4r8SDOfC3zWOZTIGMg4ccMo3e7JKA3tthVkChWK_eXnw>
    <xmx:vUeNaf1gZGIL2m-IQv-qRMpz3Ku5fcuO1fv1lu2FDlHyGQ21JunEWA>
    <xmx:vUeNaTetB2tsfNKxnxdH5h-JjdIZ-H01s8_i4s2HDI70XHZbZmfcJg>
    <xmx:vUeNaUA8ZWni6oXYonKopKvK7uWJ-LqBXWQ36UZ4cw87Ih7LrRTVGQJN>
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH] libxl: constify some local variables to appease gcc 15.2.1
Date: Thu, 12 Feb 2026 04:23:00 +0100
Message-ID: <20260212032334.1696248-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Archlinux just updated gcc to 15.2.1+r604+g0b99615a8aef-1 and that
complains about libxl:

    libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
    libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      447 |         endptr = strchr(str, '=');
          |                ^
    libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      452 |         endptr = strchr(str, ',');
          |                ^
    libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      454 |             endptr = strchr(str, 0);
          |                    ^
    libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
    libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      447 |         endptr = strchr(str, '=');
          |                ^
    libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      452 |         endptr = strchr(str, ',');
          |                ^
    libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      454 |             endptr = strchr(str, 0);
          |                    ^
    cc1: all warnings being treated as errors

Add missing consts. Note in libxl_cpuid_parse_config_xend() non-const
endptr still is needed, to be compatible with the second argument to
strtoul(). Add second variable for this reason.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
When I say "just updated" I really mean it. The update hit me between my
CI saying "ok" and release build few hours later. I guess Xen's CI will
see that only after next refresh of the Arch container (next week?).
---
 tools/libs/light/libxl_cpuid.c    | 19 ++++++++++---------
 tools/libs/light/libxl_internal.c |  2 +-
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/tools/libs/light/libxl_cpuid.c b/tools/libs/light/libxl_cpuid.c
index 8420b2465f39..5fb580113d80 100644
--- a/tools/libs/light/libxl_cpuid.c
+++ b/tools/libs/light/libxl_cpuid.c
@@ -415,6 +415,7 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *policy,
                                   const char* str)
 {
     char *endptr;
+    const char *endptrc;
     unsigned long value;
     uint32_t leaf, subleaf = XEN_CPUID_INPUT_UNUSED;
     struct xc_xend_cpuid *entry;
@@ -444,25 +445,25 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *policy,
             return 4;
         }
         value = str[1] - 'a';
-        endptr = strchr(str, '=');
-        if (value > 3 || endptr == NULL) {
+        endptrc = strchr(str, '=');
+        if (value > 3 || endptrc == NULL) {
             return 4;
         }
-        str = endptr + 1;
-        endptr = strchr(str, ',');
-        if (endptr == NULL) {
-            endptr = strchr(str, 0);
+        str = endptrc + 1;
+        endptrc = strchr(str, ',');
+        if (endptrc == NULL) {
+            endptrc = strchr(str, 0);
         }
-        if (endptr - str != 32) {
+        if (endptrc - str != 32) {
             return 5;
         }
         entry->policy[value] = calloc(32 + 1, 1);
         strncpy(entry->policy[value], str, 32);
         entry->policy[value][32] = 0;
-        if (*endptr == 0) {
+        if (*endptrc == 0) {
             break;
         }
-        for (str = endptr + 1; *str == ' ' || *str == '\n'; str++);
+        for (str = endptrc + 1; *str == ' ' || *str == '\n'; str++);
     }
     return 0;
 }
diff --git a/tools/libs/light/libxl_internal.c b/tools/libs/light/libxl_internal.c
index 2941ca0bbd0e..d70cfed7d88f 100644
--- a/tools/libs/light/libxl_internal.c
+++ b/tools/libs/light/libxl_internal.c
@@ -204,7 +204,7 @@ char *libxl__strndup(libxl__gc *gc, const char *c, size_t n)
 
 char *libxl__dirname(libxl__gc *gc, const char *s)
 {
-    char *c = strrchr(s, '/');
+    const char *c = strrchr(s, '/');
 
     if (!c)
         return NULL;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 07:00:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 07:00:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228399.1534576 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqQgZ-00040v-W5; Thu, 12 Feb 2026 07:00:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228399.1534576; Thu, 12 Feb 2026 07:00: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 1vqQgZ-00040b-Qe; Thu, 12 Feb 2026 07:00:23 +0000
Received: by outflank-mailman (input) for mailman id 1228399;
 Thu, 12 Feb 2026 07:00: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=5O3t=AQ=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vqQgY-000403-MV
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 07:00:22 +0000
Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com
 [2a00:1450:4864:20::232])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7eadf16d-07e0-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 08:00:20 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-3870cbd6c40so10671861fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 23:00:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7eadf16d-07e0-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770879620; cv=none;
        d=google.com; s=arc-20240605;
        b=Wssv3nUY28sMmmFYDK1ZHIqSPzVEvsEpzGx6WN6P/sG4r2a/6eix8pP2w3wQerBCPs
         LQNI65NXrkrbm7eFn+L/b+8Rokehya8er50t2yI/94xYe1/0OwuZgSAyXq+XQiKSp5zQ
         TpWfzKhTweNsGOJ4wuotLG7p6kF9ZP+RYOVuCEeHZJDxkTLEQgtFin78+BPSilLpqn0a
         ItvEPDCQpShu3CJA3s7AAQOvMxBGMV31OougNqS49LnohGpDBKO8ZHrx+wvtKVX5bo8A
         7Md8a0f8DjCDxk0J/hdVCXkR/tZ6HqHhZ+wGDFt5ZGGSD8oK8WYduNmQhYD24uu1tui6
         gI3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=1rlXMFCHPokxGDykZFjevkec0zeDy42tWXHLcUNUvFE=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=Ll37S09WNG3jo/D1O5KsXrxOcKV9IsUptiJ7UehBsBlCk9tJqzEIuVrhKBMe8fsM+B
         +EPZQzMm05jhHe+f9Eftn7Csiw4XRiVGQfn9P7IdJHr9HAkNBtTTcgQf/pg5qec1yJNY
         gmM6QPRL22hDJRFYfUrkir38kRZMN3wuey0Bi2Qrkb0oXvYnB2wExLCUj4ikICjVqF9Q
         YNOyG2RKpQ+wcvbQjUr84ZtYoN7jKDbKPo4937m/ctvb+B4flWb3XmHaZ62LcQE2+siO
         g1paWvQJBqpkvhRwTfUsL6fdZ2xx9vyughr8kYLG2l9qsQvPDhq215clGCmjghzZ17At
         DDSA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770879620; x=1771484420; 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=1rlXMFCHPokxGDykZFjevkec0zeDy42tWXHLcUNUvFE=;
        b=caPHOziiF9U5ojXKcE7ABsTcwXnxw1a8uBoSCMCYb+aUqp5Ym90N0t9ptN7o+hHaOb
         sE2HII4wkyad1Fb4GVet4oQeJRbzzmpMWEyDNlikJRYR9KB/RTHLPxqPdpm+7p8sPXoC
         j5EgoCLdKg493WZcE1dABPHFSCXLG9CoYSucqz/TwpYLnYVLhYKApvnbWbSTna1X0fmX
         7L+lssOgSZQJl2cwu+YtVXK3UOQQ/S4QrPc+8SVNmB4gRepzE48krWG8GqyjE5+lUr9r
         YcSo90cLPKMvyPDjs7lrc89uIBWK8DF3CECpvRiC3vV3EwIsb+G/DqZaKwFaIxMXVP5a
         P2OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770879620; x=1771484420;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=1rlXMFCHPokxGDykZFjevkec0zeDy42tWXHLcUNUvFE=;
        b=nLzhsf3u4g7PyjnoWKP0MSGa6/qfZnqD5oCJGdAuxJJcHWhI2t0fasuENz0RWWh+zM
         TTp58E0huCvsVUYND2m/bf5HRdS+ZnYA8EHcdjxZ1EKqZaxE1KOx0z/4Xwdy0+WueTxP
         RdzzjKADkht3l+Gf12n4shRLynWZjxlstzQAOR7AtDJFK4s0lV2IpDT1keKajR498r8N
         61z+Zr6+ah9xon80kUuswUhbCOOC5H5hHMqEoUciTZSWCL3kItV4Pez48H0S49rJOkd0
         bE42eKtMQMLRtgJ1GKEI6DILWOF+Kv+AcPeEqqqRp+/zzx1z0ZLcCgOzbp6abcWLkTSf
         vdyw==
X-Gm-Message-State: AOJu0YwjVX9q0o45nN3hPbFGlLx9akKcgf5HIlw5y4xpI/Gdb7mg6gx+
	RkASotT0TtOmBmpkmpnNdTBvwDupnf2c4uukHqWgL/LskmQLbLONRsJw2GyYqtsWiSJkm9lpwyU
	VOHKSk7uNY2EiAfDO/3YFjFxJvBdWsiE=
X-Gm-Gg: AZuq6aLF66Wb1dtQLMvcqwSSaprcNK75lfEi7J46Z8FADbg08eUI5wMrpbsjrfSG+HG
	fN9Zijk6MLeWGL3iRhUl4U+nyblmxkDS1QVY0a/7Pol/8otl7mSOrzwNNiRbKU+c7Udaa4/UBa5
	ivQK9oy8FOPQf0D0fcRbwKnAfoMnTIMfWlESvnmeO9MsZzfachY2sOcONWE1RQRrRb8DiOuC1m0
	56nxuzf3ZRY3THYVLJ0fOIPnsDhJvOsyW6MPq694MoCQdS5ekl+owGsrZvTTAfgUXR9jI/+ZnlM
	BTKgNg==
X-Received: by 2002:a2e:a80f:0:b0:385:da34:5182 with SMTP id
 38308e7fff4ca-38710f42be6mr5317481fa.13.1770879619465; Wed, 11 Feb 2026
 23:00:19 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <2687fa1a798f002b3126cdc851812be86c4cd8f1.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <2687fa1a798f002b3126cdc851812be86c4cd8f1.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 12 Feb 2026 09:00:00 +0200
X-Gm-Features: AZwV_QgeVlFkLrWgYdX-KzHFARPfMqKPD07LMryFaSJAlC-ZHvN6vB6_p-TDU5U
Message-ID: <CAGeoDV9kNdi7kPnp4cXjEkpysVRP62TOrTkQZdSs0pX9Szpa8g@mail.gmail.com>
Subject: Re: [RFC PATCH 08/19] arm/gic: Keep track of GIC features
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Different versions of GICv4 may support different features. Record them
> and provide functions to check for their availability.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v3.c                  | 175 ++++++++++++++++++++-----
>  xen/arch/arm/include/asm/gic.h         |   2 +
>  xen/arch/arm/include/asm/gic_v3_defs.h |   9 ++
>  xen/arch/arm/include/asm/vgic.h        |   9 ++
>  4 files changed, 162 insertions(+), 33 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 9b8b87078b..14852d18c2 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -100,6 +100,38 @@ static struct {
>
>  static struct gic_info gicv3_info;
>
> +#ifdef CONFIG_GICV4
> +/* Global state */
> +static struct {
> +    bool has_vlpis;
> +    bool has_direct_lpi;
> +    bool has_vpend_valid_dirty;
> +    bool has_rvpeid;
> +} gicv4 =3D { .has_vlpis =3D true, .has_direct_lpi =3D true,
> +            .has_vpend_valid_dirty =3D true, .has_rvpeid =3D true, };
> +
> +
> +bool gic_support_directLPI(void)
> +{
> +    return gicv4.has_direct_lpi;
> +}
> +
> +bool gic_support_vptValidDirty(void)
> +{
> +    return gicv4.has_vpend_valid_dirty;
> +}
> +
> +bool gic_has_v4_1_extension(void)
> +{
> +    return gicv4.has_rvpeid;
> +}
> +
> +bool gic_is_gicv4(void)
> +{
> +    return gicv4.has_vlpis;

gicv4.has_vlpis indicates vLPI/direct-injection support, not the GIC
architecture revision. A GICv4 implementation may have no vLPIs (only
pLPIs), so gic_is_gicv4() can return a false negative. If the intent
is to check the arch version, please use GICD_PIDR2/GICR_PIDR2.ArchRev
(e.g. ArchRev=3D=3D4).

> +}
> +#endif
> +
>  /* per-cpu re-distributor base */
>  static DEFINE_PER_CPU(void __iomem*, rbase);
>
> @@ -914,7 +946,8 @@ static bool gicv3_enable_lpis(void)
>      return true;
>  }
>
> -static int __init gicv3_populate_rdist(void)
> +static int __init gic_iterate_rdists(int (*fn)(struct rdist_region *,
> +                                               void __iomem *))
>  {
>      int i;
>      uint32_t aff;
> @@ -958,40 +991,16 @@ static int __init gicv3_populate_rdist(void)
>
>              if ( (typer >> 32) =3D=3D aff )
>              {
> +                int ret;
> +
>                  this_cpu(rbase) =3D ptr;
>
> -                if ( typer & GICR_TYPER_PLPIS )
> -                {
> -                    paddr_t rdist_addr;
> -                    unsigned int procnum;
> -                    int ret;
> -
> -                    /*
> -                     * The ITS refers to redistributors either by their =
physical
> -                     * address or by their ID. Which one to use is an IT=
S
> -                     * choice. So determine those two values here (which=
 we
> -                     * can do only here in GICv3 code) and tell the
> -                     * ITS code about it, so it can use them later to be=
 able
> -                     * to address those redistributors accordingly.
> -                     */
> -                    rdist_addr =3D gicv3.rdist_regions[i].base;
> -                    rdist_addr +=3D ptr - gicv3.rdist_regions[i].map_bas=
e;
> -                    procnum =3D (typer & GICR_TYPER_PROC_NUM_MASK);
> -                    procnum >>=3D GICR_TYPER_PROC_NUM_SHIFT;
> -
> -                    gicv3_set_redist_address(rdist_addr, procnum);
> -
> -                    ret =3D gicv3_lpi_init_rdist(ptr);
> -                    if ( ret && ret !=3D -ENODEV )
> -                    {
> -                        printk("GICv3: CPU%d: Cannot initialize LPIs: %u=
\n",
> -                               smp_processor_id(), ret);
> -                        break;
> -                    }
> -                }

nit: if we call the v4 capability update here we can avoid the extra
RD iteration and most of the diff
#ifdef CONFIG_GICV4
    gicv4_update_lpi_properties()
#endif

> -
> -                printk("GICv3: CPU%d: Found redistributor in region %d @=
%p\n",
> -                        smp_processor_id(), i, ptr);
> +                ret =3D fn(gicv3.rdist_regions + i, ptr);
> +                if ( ret )
> +                    return ret;
> +
> +                printk("GICv3: CPU%d: Found redistributor @%p\n",

nit: maybe better to print correct version of GIC
      the same applies to other prints

> +                       smp_processor_id(), ptr);
>                  return 0;
>              }
>
> @@ -1010,11 +1019,107 @@ static int __init gicv3_populate_rdist(void)
>          } while ( !(typer & GICR_TYPER_LAST) );
>      }
>
> +    return -ENODEV;
> +}
> +
> +static int __init __gicv3_populate_rdist(struct rdist_region *region,
> +                                         void __iomem *ptr)
> +{
> +    uint64_t typer;
> +
> +    typer =3D readq_relaxed(ptr + GICR_TYPER);
> +    if ( typer & GICR_TYPER_PLPIS )
> +    {
> +        paddr_t rdist_addr;
> +        unsigned int procnum;
> +        int ret;
> +
> +        /*
> +         * The ITS refers to redistributors either by their physical
> +         * address or by their ID. Which one to use is an ITS
> +         * choice. So determine those two values here (which we
> +         * can do only here in GICv3 code) and tell the
> +         * ITS code about it, so it can use them later to be able
> +         * to address those redistributors accordingly.
> +         */
> +        rdist_addr =3D region->base;
> +        rdist_addr +=3D ptr - region->map_base;
> +        procnum =3D (typer & GICR_TYPER_PROC_NUM_MASK);
> +        procnum >>=3D GICR_TYPER_PROC_NUM_SHIFT;
> +
> +        gicv3_set_redist_address(rdist_addr, procnum);
> +
> +        ret =3D gicv3_lpi_init_rdist(ptr);
> +        if ( ret && ret !=3D -ENODEV )
> +        {
> +            printk("GICv3: CPU%d: Cannot initialize LPIs: %d\n",
> +                   smp_processor_id(), ret);
> +            printk("%s %d\n", __func__, __LINE__);
> +            return ret;
> +        }
> +    }
> +
> +    return 0;
> +}
> +
> +static int __init gicv3_populate_rdist(void)
> +{
> +    int ret =3D gic_iterate_rdists(__gicv3_populate_rdist);
> +    if ( ret =3D=3D 0)
> +        return 0;
> +
>      dprintk(XENLOG_ERR, "GICv3: CPU%d: mpidr 0x%"PRIregister" has no re-=
distributor!\n",
>              smp_processor_id(), cpu_logical_map(smp_processor_id()));
> +    return -ENODEV;
> +}
> +
> +#ifdef CONFIG_GICV4
> +static int __init __gicv4_update_vlpi_properties(struct rdist_region *re=
gion,

nit: the function updates more than vLPI properties (it also sets
has_direct_lpi),
     so maybe rename it to include =E2=80=9Clpi=E2=80=9D rather than =E2=80=
=9Cvlpi=E2=80=9D.

> +                                                 void __iomem *ptr)
> +{
> +    uint64_t typer;
> +
> +    typer =3D readq_relaxed(ptr + GICR_TYPER);
> +    gicv4.has_vlpis &=3D !!(typer & GICR_TYPER_VLPIS);

Might be worth documenting that we treat these RD capabilities as global:
if any Redistributor lacks a feature, we disable it system-wide.

> +    gicv4.has_rvpeid &=3D !!(typer & GICR_TYPER_RVPEID);
> +    /* RVPEID implies some form of DirectLPI. */
> +    gicv4.has_direct_lpi &=3D (!!(typer & GICR_TYPER_DirectLPIS) ||

It was not clear to me from the comment above why we use RVPEID here:

> +                             !!(typer & GICR_TYPER_RVPEID));

Looking at Arm IHI 0069H.b, the invalidate/sync registers are mandatory not
only when GICR_TYPER.Direct* is set, but also when GICR_CTLR.IR =3D=3D 1, a=
nd
also whenever GICv4.1 is implemented. See 12.11.20 *GICR_INVLPIR*,
=E2=80=9CAccessing the GICR_INVLPIR=E2=80=9D.

RVPEID is a GICv4.1-only field, and it does not directly describe the
presence of the DirectLPI/invalidate registers. My understanding from the
GICR_VPENDBASER layout is that the v4.1 encoding uses a vPEID field, while
the v4.0 encoding uses a VPT physical address. If that interpretation is
correct, then RVPEID would always be set when GICv4.1 is present, which
makes the current check somewhat redundant (and it would be good to explain
that in the comment).

For reference, the GIC-700 / GIC-700AE TRMs describe RVPEID as indicating
whether GICR_VPENDBASER records the index (vPEID) into the vPE configuratio=
n
table (i.e. whether GICv4.1 support is present).

Given the above, I think it would be better to also include GICR_CTLR.IR
here (as the Linux kernel does), and add a short comment explaining the use
of RVPEID.
---

nit: we can just use gicv4.has_rvpeid here

> +    gicv4.has_vpend_valid_dirty &=3D !!(typer & GICR_TYPER_DIRTY);
> +
> +    /* Detect non-sensical configurations */
> +    if ( gicv4.has_rvpeid && !gicv4.has_vlpis )
> +    {
> +        gicv4.has_direct_lpi =3D false;
> +        gicv4.has_vlpis =3D false;

nit: 'gicv4.has_vlpis =3D false' is redundant here since the condition
already has '!gicv4.has_vlpis'

> +        gicv4.has_rvpeid =3D false;
> +    }
> +
> +    printk("GICv4: CPU%d: %sVLPI support, %sdirect LPI support, %sValid+=
Dirty support, %sRVPEID support\n",

nit: Xen may run on GICv3 even with CONFIG_GICV4 code enabled; please
avoid hardcoding "GICv4"

> +           smp_processor_id(), !!(typer & GICR_TYPER_VLPIS) ? "" : "no "=
,
> +           (!!(typer & GICR_TYPER_DirectLPIS) ||
> +            !!(typer & GICR_TYPER_RVPEID)) ? "" : "no ",
> +           !!(typer & GICR_TYPER_DIRTY) ? "" : "no ",
> +           !!(typer & GICR_TYPER_RVPEID) ? "" : "no ");
> +
> +    return 0;
> +}
> +
> +static int __init gicv4_update_vlpi_properties(void)
> +{
> +    int ret =3D gic_iterate_rdists(__gicv4_update_vlpi_properties);
> +
> +    if ( ret =3D=3D 0 )
> +        return 0;
>
>      return -ENODEV;
>  }
> +#else
> +static int __init gicv4_update_vlpi_properties(void)
> +{
> +    return 0;
> +}
> +#endif
>
>  static int gicv3_cpu_init(void)
>  {
> @@ -1024,6 +1129,10 @@ static int gicv3_cpu_init(void)
>      if ( gicv3_populate_rdist() )
>          return -ENODEV;
>
> +    ret =3D gicv4_update_vlpi_properties();
> +    if ( ret )
> +        return ret;
> +
>      if ( gicv3_enable_redist() )
>          return -ENODEV;
>
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gi=
c.h
> index 8e713aa477..afb1cc3751 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -235,6 +235,8 @@ enum gic_version {
>      GIC_INVALID =3D 0,    /* the default until explicitly set up */
>      GIC_V2,
>      GIC_V3,
> +    GIC_V4,
> +    GIC_V4_1,
>  };
>
>  DECLARE_PER_CPU(uint64_t, lr_mask);
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/includ=
e/asm/gic_v3_defs.h
> index c373b94d19..3a7d18ef59 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -93,6 +93,12 @@
>
>  #define GICD_TYPE_LPIS               (1U << 17)
>
> +#define GICD_TYPER2                  0x000c
> +
> +#define GICD_TYPER2_VIL              (1U << 7)
> +#define GICD_TYPER2_VID              GENMASK(4, 0)
> +#define GICD_TYPER2_nASSGIcap        (1U << 8)
> +

nit: GICD_TYPER2 and related bit definitions are not used anywhere in this
     series.


Best regards,
Mykola

>  #define GICD_CTLR_RWP                (1UL << 31)
>  #define GICD_CTLR_ARE_NS             (1U << 4)
>  #define GICD_CTLR_ENABLE_G1A         (1U << 1)
> @@ -149,7 +155,10 @@
>
>  #define GICR_TYPER_PLPIS             (1U << 0)
>  #define GICR_TYPER_VLPIS             (1U << 1)
> +#define GICR_TYPER_DIRTY             (1U << 2)
> +#define GICR_TYPER_DirectLPIS        (1U << 3)
>  #define GICR_TYPER_LAST              (1U << 4)
> +#define GICR_TYPER_RVPEID            (1U << 7)
>  #define GICR_TYPER_PROC_NUM_SHIFT    8
>  #define GICR_TYPER_PROC_NUM_MASK     (0xffff << GICR_TYPER_PROC_NUM_SHIF=
T)
>
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 360f8a968e..f12d736808 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -405,6 +405,15 @@ extern bool vgic_migrate_irq(struct vcpu *old, struc=
t vcpu *new, unsigned int ir
>  extern void vgic_check_inflight_irqs_pending(struct vcpu *v,
>                                               unsigned int rank, uint32_t=
 r);
>
> +/* GICV4 functions */
> +#ifdef CONFIG_GICV4
> +bool gic_support_vptValidDirty(void);
> +bool gic_is_gicv4(void);
> +#else
> +#define gic_support_vptValidDirty() (false)
> +#define gic_is_gicv4() (false)
> +#endif
> +
>  #endif /* !CONFIG_NEW_VGIC */
>
>  /*** Common VGIC functions used by Xen arch code ****/
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 07:16:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 07:16:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228409.1534585 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqQwC-0005lG-5x; Thu, 12 Feb 2026 07:16:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228409.1534585; Thu, 12 Feb 2026 07: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 1vqQwC-0005l9-3F; Thu, 12 Feb 2026 07:16:32 +0000
Received: by outflank-mailman (input) for mailman id 1228409;
 Thu, 12 Feb 2026 07:16: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqQwB-0005l3-9P
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 07:16: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 bd861207-07e2-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 08:16:25 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-47edd9024b1so77555565e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 23:16:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4836d44b6cbsm349775e9.25.2026.02.11.23.16.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 23:16:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd861207-07e2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770880584; x=1771485384; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1OCYbi/fUSmn5RApnFHWxuMLnmJU5dyiFcyROJnALf8=;
        b=VbSAdxfQDjXy+8oaw0ueig7djdyTZdbLr2Dw0DesmmUVWbk2Xn0tAXIXKOhkiuQ2Mk
         9eVuvs/NKcD4W8sPiUNifQGCYs9v+XoWfauKADjAQCP/LAL0ipwJHRopwnja/s4UqOsH
         tHdtGSy655Oo4uxlR15v+twilDkKtuIlMoiq6I8ejKOMv5mMLweujgn2gXuA9p8gInkU
         B0ob4KmNlQYulTGb43Jhfe9dKwyOrzvqjqqvpAbruaq8BxkqSIGLHlCofCmQ173sjduZ
         b3QKUyJQeluQrL7pmIwhGjbrAL2lZGr89DLagy1/HGwQiwiEBPnxmivKoHyf93hXUc11
         7Kqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770880584; x=1771485384;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1OCYbi/fUSmn5RApnFHWxuMLnmJU5dyiFcyROJnALf8=;
        b=Vvc9b+cIAoTqagg93g8eunmdTex78ES7ctJTOwKYit4UKxLa7qTLlkrdeEZW7Lkk9i
         ++8L4/UD2NDKDCGBfZJynskIkxeBViJGWkUhGCa3ZbcL+6ypM6i6klm1EoqIbM6nUCsU
         oJL8xaIETmZRZN392bbVkPZf8NQUH5+Iowjvgizr0IIPyDeALEu25QHcJk/jOPh8a6mi
         79+KQlYeaYYlCOPGIW5gEZnUegkMs936eelTvOogUI5fVUQGx3UreNbrBpE86EKxo8ye
         GkwldUge4lDF0s+OmkyFAihE2tc9hRe8e2msoCnMPlaJtEYvYx2OLElueFD1FTPVMF5B
         waNA==
X-Forwarded-Encrypted: i=1; AJvYcCU2xuq0jhFnbzNQtz7p58+6E2sBWdBQ2vUpwJqFCY4km+N0Uf1BV7uNzo1yqsFPgVCNkNesulBbAyc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPlkmMu/vU89WENFXPoLDPzGNJgsEPZyqeE0Kesizf8z5x+dpi
	gU63ZlVhadJsIHUcz9fQBzIvbg2bFvQipAfOuSVNMMkrQvxWwvBz07G0VVhp+FwQ1g==
X-Gm-Gg: AZuq6aJCz2ZOadXr14kIHMAf9z6hDRKM05GMWC+bAIdsQh5MUto7XAlavOzHf4LAt81
	4SrpP/X1kbgz0fyijWVORnVhrX2EpDcE/me8Vww/vD0hilJcX8GwSHVT6YLe0nUloVJnjz5KvcE
	Id7DXEtsh3LxLp3H7ToCaWdyludQvTV7AjHV5GHKd7LiOqblNlOPGaEsaxm+FYpXB4UXseP36S0
	m5zK7tEpWB4C2mPHnmKHdrn0mtlWPjiFL1QaY4WcZDBy/P/cWS2j38va3SD64vmCDJxK6e2Slpj
	XOaRj7NbZ6x0WuoPaObOGdYj7p4xSZ3eKne7YYcBOs7O5878AUzWJ8GAbrDz5HxPK1x5BtcSt8Q
	DYR8qQC4xeXmbH692BEUG+/vmKksRdzKjwF0EynaJJU+a9I7m4rkMGqslFa2TE2dAtJR5v4cTEn
	0mS4HAfQjcz1Ll52xhkfesj/y8OliSFNa/zOwCr4+iVtwe5hKp9pYIYiTVBsTVAdL+Pik27nrwj
	KI1bW2wtkOKWuqRBsblRf9/0Q==
X-Received: by 2002:a05:600c:19ca:b0:482:dbd7:a1c1 with SMTP id 5b1f17b1804b1-48365720147mr21883535e9.34.1770880584344;
        Wed, 11 Feb 2026 23:16:24 -0800 (PST)
Message-ID: <ae3719e6-a0f0-48d7-861d-8733976b9761@suse.com>
Date: Thu, 12 Feb 2026 08:16:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/12] x86: Reject CPU policies with vendors other than
 the host's
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-2-alejandro.garciavallejo@amd.com>
 <a20d3f93-2209-4035-bacd-8bd00fb12d77@suse.com>
 <DGCBG8493YBL.17QYWCVX62YDQ@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: <DGCBG8493YBL.17QYWCVX62YDQ@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.02.2026 18:41, Alejandro Vallejo wrote:
> On Wed Feb 11, 2026 at 4:41 PM CET, Jan Beulich wrote:
>> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>>> --- a/xen/lib/x86/policy.c
>>> +++ b/xen/lib/x86/policy.c
>>> @@ -15,7 +15,8 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
>>>  #define FAIL_MSR(m) \
>>>      do { e.msr = (m); goto out; } while ( 0 )
>>>  
>>> -    if ( guest->basic.max_leaf > host->basic.max_leaf )
>>> +    if ( (guest->x86_vendor     != host->x86_vendor) ||
>>
>> With the subsequent "unknown" discussion also in mind, I wonder: Should we
>> fail the request here when either side is "unknown"?
> 
> That'd preclude the creation of VMs on new vendors. At that point, might as
> well drop support for unknown vendors altogether. I wouldn't mind that.
> 
> I was thinking of comparing the x86_vendor_id bytes instead, as I answered
> to Roger. Then the invariant that only $VENDOR VMs run on $VENDOR hosts is
> preserved even if we don't know about them.

This would be okay with me.

I wonder though if we aren't getting too restrictive here at the same
time (even with the above check): Hygon (Fam18) can likely run AMD Fam17
guests quite fine, for example. I wonder what Andrew's considerations
here are.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 07:24:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 07:24:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228420.1534595 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqR3V-0007RD-VZ; Thu, 12 Feb 2026 07:24:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228420.1534595; Thu, 12 Feb 2026 07:24: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 1vqR3V-0007R6-Sy; Thu, 12 Feb 2026 07:24:05 +0000
Received: by outflank-mailman (input) for mailman id 1228420;
 Thu, 12 Feb 2026 07:24: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqR3U-0007Qz-Gq
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 07:24:04 +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 ce9c4e19-07e3-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 08:24:03 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4806bf39419so11486105e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 23:24:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d99e194sm77244195e9.8.2026.02.11.23.24.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 23:24:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce9c4e19-07e3-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770881042; x=1771485842; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jOpneSJBbwAN6aS6wQfFmE03qDcmY636ojL93q89KbM=;
        b=KN9gUBKb+e0NSJW8wGxs47ZlYCUh3JXauwHii0Lf7tcf8OFbpfdOsvxHPIZMp8Sxga
         /ezIskVRf929gVJ2BZKreyBjY5AkvDivkCh6JfblcvNdzF4plQzMTUrfukLUXCQAVaW3
         +UI5xHMjJwpwcsEbdvG831tfa6hPW/5XgsGCGvVAiIcn063brdJ6DUWRyE1FzgYw+6Nj
         bVyg5V4QVbezILeMg82MEAbx50GharZLrX9Niy+DAXHAeHyFMBXw4nEb15GLV0OHvrSW
         zMeArZ7EOobAkaodwf5l6vErXsGSGRicRoN9JCFBbSbvVxAcGrvHqPzlKLpPCAUJzfK0
         WP8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770881042; x=1771485842;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jOpneSJBbwAN6aS6wQfFmE03qDcmY636ojL93q89KbM=;
        b=SHfNwrFDJHSvBwiYMH0iIJ3Gz7mEkoq5ieqVTc3X8fMjodg3CzgT2+ED1HbVT+xeTW
         0twju0lGqI+vy4pqaydF9W7YSEmSnuXYXkdGUr1xvHa0GK8DO9Sh/lCfNiiCULFcj4BD
         VL1d3ACErHPk1CQRZB4k2fNWZzSjgl9qz9XKPdD6i0J/1DUKHfLaw0oaMRCkGqHncpB0
         LVnVtXhJdr3rUeMczA60yM+k8TN8vrCfRZAv7ySt2LkVtYrSt3uTK9LkGlLr/HV0FyGc
         BZNpAFJmkXGvKd3fttRkih3lOKMgWei9w4yCHqlsnpsOFX7VuD/eey1dl2svmlhnP/KJ
         dZWw==
X-Forwarded-Encrypted: i=1; AJvYcCWh0dxtgHkkdKS7BHxQNryyAXJTyzSrgYwJzP6Mm/Y1G8FFg26in28qgEnfnX8xyYh4GEMCKnCyF5o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDaVWfwwvk/lUENVtMgwH08tunOwnLoq0c2vf7skeuOllQUHj/
	LmCAEUKbRG4b8fLdForJapxev7OgTxapaRaBPytYvjhb7J1f1jR572k22oXFAo+zQA==
X-Gm-Gg: AZuq6aKI31Jgpt7NwH956EdpZKS79g27tRxKII2uZxgkR7nATSPSsx8AHUbqwQCQ/sA
	5omOFhDOMkb60Ad2JHK+JJJ/ZlSvGMR6aXNuvGi1UhByQACxAT40CY/fMpXGCsqlFgW0cGKSSMa
	FjDN6f+Cx98ERbW+EAuYhOzd5sTtuS2PCU7/o2yMsQ0nMtpllkqZNDnDHo9hWeba7V44l61xfnK
	nHggIHbO5C1OqCnIt7Pc/0mlAqqQfVHnqmk3J04pgK5YDNoRfN6bxoFddhvnHghoMl2N1I/zu4p
	7bzaRPogPEj6sa9cVgEC1/I3aCPPrspvyIWGAIGxjQkeLilXckUzd7DHKEF+IP7KmtnMojDMdnV
	GwKE0mxEkxM+Nuv9/NmjAFICi0iRVA0cnEiaOvZrzsAnVybPo2DaG8vMOWMWpMV58NAZVlFWAQv
	YKPMEJ6gU2q6p6rqLau+LvtYzUGO0Y6lAyZquatYclJdN+ttR/rZ3Xt0nX4NC+h5scY2CeLNcn+
	3GDZx1BH8pq3XA=
X-Received: by 2002:a05:600c:a4a:b0:47e:e59c:67c5 with SMTP id 5b1f17b1804b1-4836600801dmr21828595e9.8.1770881042509;
        Wed, 11 Feb 2026 23:24:02 -0800 (PST)
Message-ID: <08f676da-69c7-41a0-8f73-0dfad1054c4f@suse.com>
Date: Thu, 12 Feb 2026 08:24:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] x86: Add more granularity to the vendors in Kconfig
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-3-alejandro.garciavallejo@amd.com>
 <b284e16c-cd99-4595-8fcf-264c378fc57d@suse.com>
 <DGCBNTE7OB2D.3M7278B98EYPZ@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: <DGCBNTE7OB2D.3M7278B98EYPZ@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 11.02.2026 18:51, Alejandro Vallejo wrote:
> On Wed Feb 11, 2026 at 5:06 PM CET, Jan Beulich wrote:
>> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/Kconfig.cpu
>>> +++ b/xen/arch/x86/Kconfig.cpu
>>> @@ -19,4 +19,47 @@ config INTEL
>>>  	  May be turned off in builds targetting other vendors.  Otherwise,
>>>  	  must be enabled for Xen to work suitably on Intel platforms.
>>>  
>>> +config HYGON
>>> +	bool "Support Hygon CPUs"
>>> +	select AMD
>>> +	default y
>>> +	help
>>> +	  Detection, tunings and quirks for Hygon platforms.
>>> +
>>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>>> +	  must be enabled for Xen to work suitably on Hygon platforms.
>>> +
>>> +
>>> +config CENTAUR
>>> +	bool "Support Centaur CPUs"
>>> +	select INTEL
>>> +	default y
>>> +	help
>>> +	  Detection, tunings and quirks for Centaur platforms.
>>> +
>>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>>> +	  must be enabled for Xen to work suitably on Centaur platforms.
>>> +
>>> +config SHANGHAI
>>> +	bool "Support Shanghai CPUs"
>>> +	select INTEL
>>> +	default y
>>> +	help
>>> +	  Detection, tunings and quirks for Shanghai platforms.
>>> +
>>> +	  May be turned off in builds targetting other vendors.  Otherwise,
>>> +	  must be enabled for Xen to work suitably on Shanghai platforms.
>>> +
>>> +config UNKNOWN_CPU_VENDOR
>>> +	bool "Support unknown CPU vendors"
>>> +	default y
>>> +	help
>>> +	  This option prevents a panic on boot when the host CPU vendor isn't
>>> +	  supported by going into a legacy compatibility mode and not applying
>>> +	  any relevant tunings or quirks.
>>> +
>>> +	  Not selecting this options while selecting multiple vendors doesn't have
>>> +	  any major effect on code size, but selecting a single vendor with this
>>> +	  option cleared produces a much smaller build.
>>
>> Shouldn't this option's prompt be suppressed when all other vendors were
>> selected off? Else the degenerate case can result that I mentioned in
>> reply to patch 03.
> 
> You mean having the option disappear when any explicit vendor is enabled?

No, I mean the prompt (not the option) to disappear when _no_ explicit
vendor is enabled. Because of the select-s above, that could effectively
be as simple as

config UNKNOWN_CPU_VENDOR
	bool "Support unknown CPU vendors" if INTEL || AMD
	default y

Otherwise, as indicated, the conditional around the panic() in patch 03
degenerates: The panic() would be skipped despite UNKNOWN_CPU_VENDOR=n,
as with X86_ENABLED_VENDORS being 0, cpu_vendor() can't tell
UNKNOWN_CPU_VENDOR=n from UNKNOWN_CPU_VENDOR=y.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 07:38:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 07:38:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228428.1534607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqRHO-0000oP-4q; Thu, 12 Feb 2026 07:38:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228428.1534607; Thu, 12 Feb 2026 07:38: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 1vqRHO-0000oI-0X; Thu, 12 Feb 2026 07:38:26 +0000
Received: by outflank-mailman (input) for mailman id 1228428;
 Thu, 12 Feb 2026 07:38: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+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqRHM-0000oB-Vv
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 07:38: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 ceb64f83-07e5-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 08:38:22 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-43770c94dfaso3036511f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 23:38:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835ba69160sm36310695e9.8.2026.02.11.23.38.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 23:38:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ceb64f83-07e5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770881902; x=1771486702; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EcldGGRbfTtZTWazZegixBdoikoRC7VdgToN8CwQU8A=;
        b=flDIvAi4iIIvadOTDe6kBYeyo4VW8JRFJpsrVJYNC+5kW96W50zKVMrm3gmn9co9IO
         sUvTIH8qmXrKjkntqgHnkD8baKIK0Z2Mu6at2fE1yBOyCoNF+R6Ge0uKncr64KOhd8w6
         d0fQOQKLUoU/cjNALSiWP+XzVj7kxcIaTyJMRkfnzTHJWibmkcwMjU7QUmcXRZJvhKIy
         WWBjMmq2ta62mvAlzTPXkINwOu849tFnF0MHR3dXt1075KHrzQWKulL5Q7C27QXTJWs9
         lmnnADIm5PMf/OGoTOhs+vmDuE0ZqoDGNNTV7kV9wiztz5odXvBmm4JfWPyPAYzsgBes
         KpMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770881902; x=1771486702;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EcldGGRbfTtZTWazZegixBdoikoRC7VdgToN8CwQU8A=;
        b=oX5XLuoxlBzRtSaBhf6pv8NVgAOhT6GFG9gbcVHLZd03yY8n/uGwCQb50wmq6yLS8k
         Im5gOtLJg5+GR50VeonWreGOHxwf+2MwQqdyMUWPLRo6ZCVUSw7un6U/L9u14CwLlVu8
         s4zbs54bX7KOPVUDcqaT5GP1jyIcMd14+j6iCY9oBuNEmVoSozdy4Pw+f1Xp9lkx/1MP
         WHXHowZFYXK/Z8Tl8dBEh0coDBnTxwK82bp4YJ2cvXIA3R36y/BFubyWAnvnshFFTzw4
         vh2osPDFnDPQ8o38hTU15/U2MyYxc2Re4DeOc/6Xo7CVGyfWQ5MPA11x7ZkTP3fTe0Zy
         pqVw==
X-Forwarded-Encrypted: i=1; AJvYcCXkUDjMLONk+QMl2V3X9w9GHepPGH4tyse0bRJhoodkuFiIiQ9eEZ1XLVLU59Q0rJ65wFK1PRRU7iw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPqxh8esujylEr4gsNsCrXPbPYy/92tsYhD3epV6SoIres8oPK
	Z+CbNf2SkhF9pKDMZOlKZb8EcFf7GSiv7j8kyukXjcChzEFOzCzQRnEhDHump6ekTA==
X-Gm-Gg: AZuq6aKFFalGeuiS3QAeNjWjjG9tyYkOUS2oAt5cqiHrSDIiAoi2FXZbfhifU1FAlpg
	VfhfTrS9j/8FQdVYmrAJH7axHu+KAiXKArkpKSUCoMQ1ZGMiXk3peCncSI2ZsUh0FVH4zapJvnJ
	CFoJpnE8kwlCLKjKJBAw67MM/Gpb5aaRhUrWMOBad8RD+X5BcFke/EWkJsu71DQ7F1nU27xvBOT
	ogK8B3KDCvHJHyinzSEUqKX0WRp9Vcibjm9Vxmuvs9r9Klo3QRCZ5SoqNTADTVQnUNv4cDIiowj
	WDKPn0LYqYp6DrEY17YRzAwnLwmJBh/GyEW+keWO6vP2aZzjh4EdySuA/vs2mbt5mOxzyQVaD9a
	7q3VKnoxcjNRRUdpGg4S37K4bSTF3tOOQlDdKc28xU6GGq0321zPRnCLBeHzimQF9MVCfJqnm18
	iBaqEpJ0BJb8odp2MSyNUhtp88JrJ7pUjnY1fpncPRFux6KGEVwgI5g1NzvmfA0bfUL2CUc4hNM
	82aGDBn0pAMLjA=
X-Received: by 2002:a05:600c:5252:b0:480:20f1:7aa6 with SMTP id 5b1f17b1804b1-4836715a470mr16831405e9.21.1770881901661;
        Wed, 11 Feb 2026 23:38:21 -0800 (PST)
Message-ID: <cb5da09b-66c2-4dee-8cc1-f67f596a3c18@suse.com>
Date: Thu, 12 Feb 2026 08:38:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Put wait.c behind CONFIG_WAIT
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,
 Jason Andryuk <jason.andryuk@amd.com>
References: <20260211170118.109946-1-jason.andryuk@amd.com>
 <73bf621d-0795-4fbe-b926-71be3525b4c7@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: <73bf621d-0795-4fbe-b926-71be3525b4c7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 11.02.2026 18:30, Andrew Cooper wrote:
> On 11/02/2026 5:01 pm, Jason Andryuk wrote:
>> wait.c is only used by vm_event.c.  Make CONFIG_VM_EVENT select
>> CONFIG_WAIT, and use CONFIG_WAIT to control building it.
>>
>> Provide stubs of functions called from common code.  entry.S needs an
>> ifdef to hide the symbol from the assembly.
>>
>> Also conditionalize .waitqueue_vcpu in struct vcpu to save space.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> I'd really rather see the API/ABI changes required to purge wait.c
> entirely, but I guess this will do in the short term.
> 
> Two things want further thought.
> 
> First, because ARM uses per-vCPU stacks not per-pCPU stacks, it doesn't
> need this infrastructure in the first place, but it looks like it's
> still compiled in and half wired up.  I suppose you don't notice because
> you compile out VM_EVENT on ARM too?

But if we want it compiled out altogether on Arm, ...

> Second CONFIG_WAIT isn't great name because there are many things it
> could be.  I'd be tempted to just reuse CONFIG_VM_EVENT and go without
> CONFIG_WAIT.  I do not want to see any new users of wait.c, and it will
> disappear at some point.

... don't we need a separate kconfig control, for it to be selected only
on x86 (or for it to be dependent on x86, and then imply-ed)? Imo
CONFIG_WAITQUEUE would be okay, as long as it won't have a prompt. We'd
then simply want to prevent further select-s / imply-s to appear.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 07:47:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 07:47:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228438.1534616 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqRPe-0002Q0-SX; Thu, 12 Feb 2026 07:46:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228438.1534616; Thu, 12 Feb 2026 07:46:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqRPe-0002Pt-Pj; Thu, 12 Feb 2026 07:46:58 +0000
Received: by outflank-mailman (input) for mailman id 1228438;
 Thu, 12 Feb 2026 07:46: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqRPd-0002Pm-Jt
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 07:46:57 +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 009bea05-07e7-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 08:46:55 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48039fdc8aeso17936995e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 23:46:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d482480sm208790145e9.0.2026.02.11.23.46.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 11 Feb 2026 23:46:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 009bea05-07e7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770882415; x=1771487215; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1N1gylRJjoEAV9Cpm/NewIJkcvqgPrpavRbUsM4il4A=;
        b=ZhUEXAIzAjKdGJ0I+mQdJsEPJbvJNdSjiIdfrle47fb7xNdFJf0owgOXBIvSCwaovg
         Fv1p7KDbnMSzMMkFaQ7r2mMmGiO4Ecx+nhxhQhD41whkgmhZjItIJnAp2x4fecBR5NFJ
         5Z7Iutq83xPnyQAmeF/6H9ZXHgu1dx7c5O5vQ74Qb6mjju+JthxMSAPfOoNmf0PyCNZQ
         BIGZ5UqffqXB1CrIr1/PVl/UitQ3nyzJQwvSci0uQfDwWNq/VC8MoEko9O9oARKZn1C2
         /6HIM5ztpgPZLXInA5P2ToY8n968HetdcGwmgcZeXxp0W16duKHbL0wgJeB84X0gDZ6/
         cujA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770882415; x=1771487215;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1N1gylRJjoEAV9Cpm/NewIJkcvqgPrpavRbUsM4il4A=;
        b=CPzVEluLNC5QfKGGgG2KtJSjkmp0c6jXcedHfVodGkX6gdXhhBSxb1U9tWI7u9HDaY
         D9trUgRHhMNL4e4clfeiSzuB62XFz1/yduKm3dsdfDrS9fwJ907W8YdoVPqjM3zbkP7j
         s8Vuz0rLfBjuCU1FaumAEZz2UXNdMwp5PAsLEghuDEq+eZad7L8yC/1MlsTU/PPqrhky
         9fGMLjgK6hRBv3S/Qu8t3d29wgKWa94eIq05+ytqbfE8UTBUcSgxZIZBiYoMyRdk31u3
         cOzVCu2OVY17seyEJCadJVlbGZI0xZ2qJ3Ttqp0O08TFbsmRl4QV6IUH3znoZKiLtEpA
         a3qQ==
X-Forwarded-Encrypted: i=1; AJvYcCVYkH8kYSA6ubH9Q12cuYlIjHTaps7uRHWPBPxuGxYnkw96voJ7aYb3EerHitkpyH1Y5kwFgSt2KTc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxefdBMgzOyaKEehw04Np/dOW56TeBaebXdrH5nrn1eIrHJ4A/Y
	Ied3Kr6oDq2zAjifGt+kl91F4MNGYThKiDva0oRTi6XMMELOTgcKAx9MjCfhcyfkfp0hzgmVIVN
	CdNs=
X-Gm-Gg: AZuq6aJYSmPX5CXf/kAD2xR1ZaJh93F8LIHY7koTpj9HtoGAJpjfBIm7To0rUQ31mKr
	9ehKF+gvN9e6t06BFhUwSZ+Lg6QrZn1+aIKajlx5aD8tKeeYwO6zqbATo6+7ruK6TtQUbkqeUHn
	1ju80mal/duF4uIg6q4nCnn0TIaXhGkFLCmaOKkrn0w4KDPLOSeMfR3DiwIl6sonoFq8aHvEK9/
	h3FbC4Kvt0l4AqNBOcofk2xW3yKYqD8D04ONuWglAUxfVdc/woIgAKHrotZ9s5fLrHrNgsV6VHd
	gAvR7DuFSBgqNIlSgS7PapBG4q4u0rnftzEAYHRNV/mD2NDXSouLKcS8gVVEBDHek2os94ql81f
	xZubNHkba3If4rhwBRbg4JJRvjjcmJ4KUO0a2N8U/unyTImCepSDNzOArTCkn8aMMlVgNg4AlV1
	wz7YnPb1IJi/S0ubtBU/RPXedGYdJY2HmVaCYBZoJPtEh8bv2lb8Ihl8cA31rnbAgT+SXNNOV3l
	pSyuWQillwIcIA=
X-Received: by 2002:a05:600c:8216:b0:480:690e:f14a with SMTP id 5b1f17b1804b1-48367128f99mr14367915e9.14.1770882414861;
        Wed, 11 Feb 2026 23:46:54 -0800 (PST)
Message-ID: <308aa058-73aa-42fb-a68d-ff03ee979820@suse.com>
Date: Thu, 12 Feb 2026 08:46:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] libxl: constify some local variables to appease gcc
 15.2.1
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Anthony PERARD <anthony.perard@vates.tech>
Cc: Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260212032334.1696248-1-marmarek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260212032334.1696248-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 04:23, Marek Marczykowski-Górecki wrote:
> Archlinux just updated gcc to 15.2.1+r604+g0b99615a8aef-1 and that
> complains about libxl:
> 
>     libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
>     libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       447 |         endptr = strchr(str, '=');
>           |                ^
>     libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       452 |         endptr = strchr(str, ',');
>           |                ^
>     libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       454 |             endptr = strchr(str, 0);
>           |                    ^
>     libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
>     libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       447 |         endptr = strchr(str, '=');
>           |                ^
>     libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       452 |         endptr = strchr(str, ',');
>           |                ^
>     libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       454 |             endptr = strchr(str, 0);
>           |                    ^
>     cc1: all warnings being treated as errors

That's supposed to be happening in C23 mode only, isn't it? Looks like under
tools/ we don't set the mode we want to compile in.

> Add missing consts. Note in libxl_cpuid_parse_config_xend() non-const
> endptr still is needed, to be compatible with the second argument to
> strtoul(). Add second variable for this reason.
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> When I say "just updated" I really mean it. The update hit me between my
> CI saying "ok" and release build few hours later. I guess Xen's CI will
> see that only after next refresh of the Arch container (next week?).

Hmm, and that would then affect not only stable trees, but also security-
only ones. In particular there I'd wonder whether enforcing mode (to be e.g.
C99) wouldn't be more appropriate. Anthony?

> --- a/tools/libs/light/libxl_cpuid.c
> +++ b/tools/libs/light/libxl_cpuid.c
> @@ -415,6 +415,7 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *policy,
>                                    const char* str)
>  {
>      char *endptr;
> +    const char *endptrc;

Don't know what the (perhaps unwritten) policy in libxl is, but in the
hypervisor I'd ask for the variable to be declared in the more narrow scope
it's solely used in.

> @@ -444,25 +445,25 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *policy,
>              return 4;
>          }
>          value = str[1] - 'a';
> -        endptr = strchr(str, '=');
> -        if (value > 3 || endptr == NULL) {
> +        endptrc = strchr(str, '=');
> +        if (value > 3 || endptrc == NULL) {
>              return 4;
>          }
> -        str = endptr + 1;
> -        endptr = strchr(str, ',');
> -        if (endptr == NULL) {
> -            endptr = strchr(str, 0);
> +        str = endptrc + 1;
> +        endptrc = strchr(str, ',');
> +        if (endptrc == NULL) {
> +            endptrc = strchr(str, 0);
>          }
> -        if (endptr - str != 32) {
> +        if (endptrc - str != 32) {
>              return 5;
>          }
>          entry->policy[value] = calloc(32 + 1, 1);
>          strncpy(entry->policy[value], str, 32);
>          entry->policy[value][32] = 0;
> -        if (*endptr == 0) {
> +        if (*endptrc == 0) {
>              break;
>          }
> -        for (str = endptr + 1; *str == ' ' || *str == '\n'; str++);
> +        for (str = endptrc + 1; *str == ' ' || *str == '\n'; str++);

I'd further ask for the semicolon to be moved to its own line.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 07:53:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 07:53:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228446.1534625 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqRVN-00044o-Fi; Thu, 12 Feb 2026 07:52:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228446.1534625; Thu, 12 Feb 2026 07: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 1vqRVN-00044h-Ci; Thu, 12 Feb 2026 07:52:53 +0000
Received: by outflank-mailman (input) for mailman id 1228446;
 Thu, 12 Feb 2026 07: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=5O3t=AQ=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vqRVM-00044Z-9T
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 07:52:52 +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 d3d5aa62-07e7-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 08:52:49 +0100 (CET)
Received: by mail-lf1-x12d.google.com with SMTP id
 2adb3069b0e04-59e64657f0cso574264e87.2
 for <xen-devel@lists.xenproject.org>; Wed, 11 Feb 2026 23:52:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d3d5aa62-07e7-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770882769; cv=none;
        d=google.com; s=arc-20240605;
        b=JIZRc7EjkkJhuJrKKGkoHo5+0omaGK/JA9HCZuQyb21K7Hd9XKcb2vPJHMMSD2v9Xg
         ArvsExScxGC0/CI7x9DamJOOTLtugUbcAV1sJ32rJ/Quj5WUXTuMoJs7jAhYIr/IBy89
         VIBkS/43rEufoRtb7R5lnsvkPPmUIMCzZ93y2vu7ett70vI4rlOpJvMBxtVuWzr/2Lzx
         6GKqYWztSF+hIGOVX7i+wApUmFUus7a/OqIUuYrDHJe9kPnLT1qFlnHGdw3efDZ6s6Uu
         6tdiHci8LfJvyszHisT9yG+g4ZvMNQwuMor2Nl1fPIlU5tJF+MdydBkRuAV36KLkaXWK
         wS1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=oQxLgOT+6uVtcmlP+XfYaCm8tOIv/Xb7o58kWfnpXUU=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=Itj1XXeX6jLjq63lcek01cu9MAJwT8D63ICldf/7xgdDxC2QG7fYAmSa/YHnrA9jk0
         LlmMWjkyNM1vG+B+q6AT6BP33zNEW/BC0mG71NYz2SvI/ICAP2e69yWUeNICAWaZa1ux
         1hZbTmYuZ8WEKIwxOfTgsYRQeu+8Vx5ST6dBg83Li5CgftxhPOD/h+wlPSNJd5EbAJG7
         fMou9u2ITc27pANvTNhPM6OHoiT9wIUSiHKsKzhYIb4yxbAoryiwcBH55qMCUyskSvM1
         U2pYwTGdAC3/GhN5MV2pqklDdmQXHXSwLN+q6wWCnDsToDw8/Xuj5H+k+/aU9wAiWx+J
         oyZA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770882769; x=1771487569; 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=oQxLgOT+6uVtcmlP+XfYaCm8tOIv/Xb7o58kWfnpXUU=;
        b=EP30ggJ3sAmOHLxIxRgCyysy419YHDfFG92Ba78bkYiV/A0hA798wxee/nMudOyVBz
         wu4zTweos4BVdldS2gkJubLkslMpxCgzFfyLmZnEL1uI/4Cwq5SZVNW7GZZqATO+8IGK
         DfdHE8vuHyiOFPcpjHLSl37b8CDMgOA1hYgESakKY1l9pucztclmrrD6tExkzQAxU06m
         jc9J9eJmI4RzOAW1owLXTKwyO32IBJhwbPPmt7qAE26MqJ2ue59OSiUa6vKuCiOqdSOP
         EgdvD4jq50NMrUmOhXyMeKQn8wU1dBGeb30zCX6oTCxzwLErnTH+Eoa33UM+V5wG7z4L
         9tuA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770882769; x=1771487569;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=oQxLgOT+6uVtcmlP+XfYaCm8tOIv/Xb7o58kWfnpXUU=;
        b=RbLjnl6KmI/T9e0b5B0qBtp/je5omXoyTjlLJClZlH9NBudhVURjWQPx/ODZPZH8nf
         coJHsvluY65Al3lUCRvTRt16BQ4O253GqTaWcatAy/OAj+ofaoShzybGEUvMTO1rHxd/
         4k/gLEXwL6ZGpM1dnfuFsCstZaEH0qIn0O2Pa+kpM48V20S+ns8otmhwC00oo+ZtlLAS
         Cjxqqe6s6AjADcjFj2eVNrp+2T7gg3NXETXil+ii42UYSi38XcKQfFQDnL8m1wp4U8K+
         WLNe4oXYqUNxH3IAb0e3/aJBGmPP5rV6xQLU7nohLuRfJvDyjbKGUtJI9ZweCAhTzLWd
         S89Q==
X-Gm-Message-State: AOJu0YxHMgNwlVIzJWbnPPUll7amZbU8X11WoMCkeWydLO09Qk01F8X6
	pO9M6la5+lIp8lnRh2bQHBWd4HJfV60XtBvBWXy8yBaxo4igXpDSFxgLd81p3QHOvTzfbwetMw6
	/L60OunEbkFBI29zDJBTd2Cpr/T734xU=
X-Gm-Gg: AZuq6aIlOC+/o/spZSUnHkYWld5+V7OWMWBESbvzcUXagNfrZoHUVL0ouyUnZGZ3PNF
	TxFSfQ1ZFGTMgwwCuXR39NMqfVf1kceFntb5ABIIGn8H0c0n5VJ0gbtO/aFNT1d8rL6/jSWQeFN
	q+X7tCRCl75PF3g2ua8nUZg4h/UXiueyzp4cnevv1QWwKt+Ro8aKioQyvmD9SeUG0SxcSYhuEJE
	vuvzMYIXJh/m4ueirLXJinWhU1L86j9CyJBJv/ARDgWom25V5LzbGZLtWUICd0hk1Ae8kg0a40I
	qEbMVQ==
X-Received: by 2002:a05:6512:1590:b0:59d:dd44:37ee with SMTP id
 2adb3069b0e04-59e64149382mr656626e87.43.1770882768928; Wed, 11 Feb 2026
 23:52:48 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <cc8390af73d86c72d5274e6cc3c314fe018a2c8d.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <cc8390af73d86c72d5274e6cc3c314fe018a2c8d.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 12 Feb 2026 09:52:37 +0200
X-Gm-Features: AZwV_QhdvtBl7ySu8yV3DEgJhAblkdhJSLqMQafMSzc0Ci4YFtmE13DSegyI3uE
Message-ID: <CAGeoDV8OeCcEvMhqJhoRMAu8AQpwtFgRLPf_NE9eFyezLqKHtw@mail.gmail.com>
Subject: Re: [RFC PATCH 10/19] arm/its: Keep track of BASER regs
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Keep all the info about BASER regs in host_its structure to be able to ea=
sily
> access it later.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v3-its.c             | 36 +++++++++++++++++++++------
>  xen/arch/arm/include/asm/gic_v3_its.h | 14 +++++++++++
>  2 files changed, 43 insertions(+), 7 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index c628959f42..2328595a85 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -430,16 +430,32 @@ static void *its_map_cbaser(struct host_its *its)
>  /* The ITS BASE registers work with page sizes of 4K, 16K or 64K. */
>  #define BASER_PAGE_BITS(sz) ((sz) * 2 + 12)
>
> +struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type)
> +{
> +    unsigned int i;
> +
> +    for ( i =3D 0; i < GITS_BASER_NR_REGS; i++ )
> +    {
> +        if (GITS_BASER_TYPE(hw_its->tables[i].val) =3D=3D type)
> +            return &hw_its->tables[i];
> +    }
> +
> +    return NULL;
> +}
> +
>  static int its_map_baser(void __iomem *basereg, uint64_t regc,
> -                         unsigned int nr_items)
> +                         unsigned int nr_items, struct its_baser *baser)
>  {
>      uint64_t attr, reg;
>      unsigned int entry_size =3D GITS_BASER_ENTRY_SIZE(regc);
> -    unsigned int pagesz =3D 2;    /* try 64K pages first, then go down. =
*/
> +    unsigned int page_size[4] =3D {SZ_4K, SZ_16K, SZ_64K, SZ_64K};
> +    unsigned int pagesz =3D 0;    /* try 64K pages first, then go down. =
*/

pagesz=3D0 looks like test leftover

>      unsigned int table_size;
>      unsigned int order;
>      void *buffer;
> +    uint32_t type;
>
> +    type =3D GITS_BASER_TYPE(regc);

nit: unused

>      attr  =3D gicv3_its_get_shareability() << GITS_BASER_SHAREABILITY_SH=
IFT;
>      attr |=3D GIC_BASER_CACHE_SameAsInner << GITS_BASER_OUTER_CACHEABILI=
TY_SHIFT;
>      attr |=3D gicv3_its_get_cacheability() << GITS_BASER_INNER_CACHEABIL=
ITY_SHIFT;
> @@ -479,6 +495,11 @@ retry:
>      writeq_relaxed(reg, basereg);
>      regc =3D readq_relaxed(basereg);
>
> +    baser->val =3D regc;
> +    baser->base =3D buffer;
> +    baser->table_size =3D table_size;
> +    baser->pagesz =3D page_size[pagesz];
> +
>      /* The host didn't like our attributes, just use what it returned. *=
/
>      if ( (regc & BASER_ATTR_MASK) !=3D attr )
>      {
> @@ -490,7 +511,7 @@ retry:
>          }
>          attr =3D regc & BASER_ATTR_MASK;
>      }
> -    if ( (regc & GITS_BASER_INNER_CACHEABILITY_MASK) <=3D GIC_BASER_CACH=
E_nC )
> +    if ( gicv3_its_get_cacheability() <=3D GIC_BASER_CACHE_nC )
>          clean_and_invalidate_dcache_va_range(buffer, table_size);
>
>      /* If the host accepted our page size, we are done. */
> @@ -568,26 +589,27 @@ static int gicv3_its_init_single_its(struct host_it=
s *hw_its)
>      {
>          void __iomem *basereg =3D hw_its->its_base + GITS_BASER0 + i * 8=
;
>          unsigned int type;
> +        struct its_baser *baser =3D hw_its->tables + i;
>
>          reg =3D readq_relaxed(basereg);
> -        type =3D (reg & GITS_BASER_TYPE_MASK) >> GITS_BASER_TYPE_SHIFT;
> +        type =3D GITS_BASER_TYPE(reg);
>          switch ( type )
>          {
>          case GITS_BASER_TYPE_NONE:
>              continue;
>          case GITS_BASER_TYPE_DEVICE:
> -            ret =3D its_map_baser(basereg, reg, BIT(hw_its->devid_bits, =
UL));
> +            ret =3D its_map_baser(basereg, reg, BIT(hw_its->devid_bits, =
UL), baser);
>              if ( ret )
>                  return ret;
>              break;
>          case GITS_BASER_TYPE_COLLECTION:
> -            ret =3D its_map_baser(basereg, reg, num_possible_cpus());
> +            ret =3D its_map_baser(basereg, reg, num_possible_cpus(), bas=
er);
>              if ( ret )
>                  return ret;
>              break;
>          /* In case this is a GICv4, provide a (dummy) vPE table as well.=
 */
>          case GITS_BASER_TYPE_VCPU:
> -            ret =3D its_map_baser(basereg, reg, 1);
> +            ret =3D its_map_baser(basereg, reg, 32, baser);

Since MAX_VPEID is introduced later in the series, could you use it here
instead of the hardcoded 32 (or reorder the patches so it=E2=80=99s availab=
le)?

Also, if the BASER ends up indirect, the L1 sizing should be recalculated
from MAX_VPEID.


Best regards,
Mykola

>              if ( ret )
>                  return ret;
>              break;
> diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include=
/asm/gic_v3_its.h
> index 973ca6acdd..bd2696f354 100644
> --- a/xen/arch/arm/include/asm/gic_v3_its.h
> +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> @@ -64,6 +64,7 @@
>  #define GITS_BASER_INNER_CACHEABILITY_SHIFT        59
>  #define GITS_BASER_TYPE_SHIFT           56
>  #define GITS_BASER_TYPE_MASK            (7ULL << GITS_BASER_TYPE_SHIFT)
> +#define GITS_BASER_TYPE(reg)            ((reg & GITS_BASER_TYPE_MASK) >>=
 GITS_BASER_TYPE_SHIFT)
>  #define GITS_BASER_OUTER_CACHEABILITY_SHIFT        53
>  #define GITS_BASER_TYPE_NONE            0UL
>  #define GITS_BASER_TYPE_DEVICE          1UL
> @@ -143,6 +144,17 @@ struct its_device {
>  #endif
>  };
>
> +/*
> + * The ITS_BASER structure - contains memory information, cached
> + * value of BASER register configuration.
> + */
> +struct its_baser {
> +    void            *base;
> +    uint64_t        val;
> +    unsigned int    table_size;
> +    unsigned int    pagesz;
> +};
> +
>  /* data structure for each hardware ITS */
>  struct host_its {
>      struct list_head entry;
> @@ -156,6 +168,7 @@ struct host_its {
>      spinlock_t cmd_lock;
>      void *cmd_buf;
>      unsigned int flags;
> +    struct its_baser tables[GITS_BASER_NR_REGS];
>  };
>
>  /* Map a collection for this host CPU to each host ITS. */
> @@ -259,6 +272,7 @@ struct pending_irq *gicv3_assign_guest_event(struct d=
omain *d,
>                                               uint32_t virt_lpi);
>  void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
>                                   uint32_t virt_lpi);
> +struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type);
>  void lpi_write_config(uint8_t *prop_table, uint32_t lpi, uint8_t clr,
>                        uint8_t set);
>  int its_send_command(struct host_its *hw_its, const void *its_cmd);
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 08:38:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 08:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228478.1534635 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqSDZ-0001nx-83; Thu, 12 Feb 2026 08:38:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228478.1534635; Thu, 12 Feb 2026 08:38: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 1vqSDZ-0001nq-5J; Thu, 12 Feb 2026 08:38:33 +0000
Received: by outflank-mailman (input) for mailman id 1228478;
 Thu, 12 Feb 2026 08:38: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=lKKS=AQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vqSDX-0001nf-93
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 08:38:31 +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 34f07b7a-07ee-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 09:38:29 +0100 (CET)
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 633153E6C2;
 Thu, 12 Feb 2026 08:38:29 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id E95C63EA62;
 Thu, 12 Feb 2026 08:38:28 +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 I/3JN4SRjWkRMgAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Feb 2026 08:38: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: 34f07b7a-07ee-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770885509; 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=Cg0lfHNLzOa86C9goVRT4Xy+ihFyb7RvSBqibZQ3pAc=;
	b=lzyphsLO0wfPGC/c7CNXE8WJNAh+YzVpYhWXqpX5zPZGahN1cMVeBrhCH0LRCxj4NOqlws
	7TIYX5K+G0U2OjVHhxkXh1GDuPcV84YGSPTJZm7CXOXH+JX4+dcToQgqFH2SIzfFev7u68
	SkWA3wJSFbnKiYDvU5Txh8Go5e5z3oE=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770885509; 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=Cg0lfHNLzOa86C9goVRT4Xy+ihFyb7RvSBqibZQ3pAc=;
	b=lzyphsLO0wfPGC/c7CNXE8WJNAh+YzVpYhWXqpX5zPZGahN1cMVeBrhCH0LRCxj4NOqlws
	7TIYX5K+G0U2OjVHhxkXh1GDuPcV84YGSPTJZm7CXOXH+JX4+dcToQgqFH2SIzfFev7u68
	SkWA3wJSFbnKiYDvU5Txh8Go5e5z3oE=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-pci@vger.kernel.org,
	linux-scsi@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH 0/2] xen/xenbus: better handle backend crash
Date: Thu, 12 Feb 2026 09:38:24 +0100
Message-ID: <20260212083826.136221-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-1.80 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	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];
	URIBL_BLOCKED(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[16];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[netdev];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -1.80
X-Spam-Level: 

This small series fixes PV-device frontend side handling in case the
backend crashed and has come up again.

The old device will be discarded and the replacement can be used
instead. 

Juergen Gross (2):
  xenbus: add xenbus_device parameter to xenbus_read_driver_state()
  xen/xenbus: better handle backend crash

 drivers/net/xen-netfront.c                 | 34 +++++++++---------
 drivers/pci/xen-pcifront.c                 |  8 ++---
 drivers/scsi/xen-scsifront.c               |  2 +-
 drivers/xen/xen-pciback/xenbus.c           | 10 +++---
 drivers/xen/xenbus/xenbus_client.c         | 16 +++++++--
 drivers/xen/xenbus/xenbus_probe.c          | 42 ++++++++++++++++++++--
 drivers/xen/xenbus/xenbus_probe_frontend.c |  2 +-
 include/xen/xenbus.h                       |  4 ++-
 8 files changed, 83 insertions(+), 35 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 08:38:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 08:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228479.1534646 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqSDf-00022C-Ev; Thu, 12 Feb 2026 08:38:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228479.1534646; Thu, 12 Feb 2026 08:38: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 1vqSDf-000225-C0; Thu, 12 Feb 2026 08:38:39 +0000
Received: by outflank-mailman (input) for mailman id 1228479;
 Thu, 12 Feb 2026 08:38: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=lKKS=AQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vqSDe-00021U-05
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 08:38:38 +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 385a8e97-07ee-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 09:38:35 +0100 (CET)
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 1B1C33E6E8;
 Thu, 12 Feb 2026 08:38:35 +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 A551A3EA62;
 Thu, 12 Feb 2026 08:38:34 +0000 (UTC)
Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])
 by imap1.dmz-prg2.suse.org with ESMTPSA id +qE3J4qRjWmJMwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Feb 2026 08:38:34 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 385a8e97-07ee-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770885515; 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=/ASzH9qE0mBRibU9uWHl4KojtE+mVdpgEGiVGmw5TkI=;
	b=Gn6GWT0tpFD4Wj0aIBXIADPNbMyqxnarB7G6+MOUb7r55zoH19ifoS/6oYN98O3iKcRraw
	9/gjSCt246xTx4r9GkhCsE063MzrrvxyeGrIY20vFRLxt6LIR4BvoDSJ0VCcO4dLRLaU/Z
	kwxe3FAh1YLhI3NjeVZLnZSoQpjmJsc=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770885515; 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=/ASzH9qE0mBRibU9uWHl4KojtE+mVdpgEGiVGmw5TkI=;
	b=Gn6GWT0tpFD4Wj0aIBXIADPNbMyqxnarB7G6+MOUb7r55zoH19ifoS/6oYN98O3iKcRraw
	9/gjSCt246xTx4r9GkhCsE063MzrrvxyeGrIY20vFRLxt6LIR4BvoDSJ0VCcO4dLRLaU/Z
	kwxe3FAh1YLhI3NjeVZLnZSoQpjmJsc=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-pci@vger.kernel.org,
	linux-scsi@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 1/2] xenbus: add xenbus_device parameter to xenbus_read_driver_state()
Date: Thu, 12 Feb 2026 09:38:25 +0100
Message-ID: <20260212083826.136221-2-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260212083826.136221-1-jgross@suse.com>
References: <20260212083826.136221-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-5.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	URIBL_BLOCKED(0.00)[invisiblethingslab.com:email,imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[17];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	TO_DN_SOME(0.00)[];
	TAGGED_RCPT(0.00)[netdev];
	R_RATELIMIT(0.00)[to_ip_from(RLsote1drt81dzioaq3931x19g)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -5.80
X-Spam-Level: 

In order to prepare checking the xenbus device status in
xenbus_read_driver_state(), add the pointer to struct xenbus_device
as a parameter.

Signed-off-by: Juergen Gross <jgross@suse.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 drivers/net/xen-netfront.c                 | 34 +++++++++++-----------
 drivers/pci/xen-pcifront.c                 |  8 ++---
 drivers/scsi/xen-scsifront.c               |  2 +-
 drivers/xen/xen-pciback/xenbus.c           | 10 +++----
 drivers/xen/xenbus/xenbus_client.c         |  3 +-
 drivers/xen/xenbus/xenbus_probe.c          |  6 ++--
 drivers/xen/xenbus/xenbus_probe_frontend.c |  2 +-
 include/xen/xenbus.h                       |  3 +-
 8 files changed, 35 insertions(+), 33 deletions(-)

diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 0969d5c9f6b7..2c414b77dd0f 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1646,7 +1646,7 @@ static int xennet_xdp_set(struct net_device *dev, struct bpf_prog *prog,
 
 	/* avoid the race with XDP headroom adjustment */
 	wait_event(module_wq,
-		   xenbus_read_driver_state(np->xbdev->otherend) ==
+		   xenbus_read_driver_state(np->xbdev, np->xbdev->otherend) ==
 		   XenbusStateReconfigured);
 	np->netfront_xdp_enabled = true;
 
@@ -1764,9 +1764,9 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev)
 	do {
 		xenbus_switch_state(dev, XenbusStateInitialising);
 		err = wait_event_timeout(module_wq,
-				 xenbus_read_driver_state(dev->otherend) !=
+				 xenbus_read_driver_state(dev, dev->otherend) !=
 				 XenbusStateClosed &&
-				 xenbus_read_driver_state(dev->otherend) !=
+				 xenbus_read_driver_state(dev, dev->otherend) !=
 				 XenbusStateUnknown, XENNET_TIMEOUT);
 	} while (!err);
 
@@ -2627,31 +2627,31 @@ static void xennet_bus_close(struct xenbus_device *dev)
 {
 	int ret;
 
-	if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)
+	if (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed)
 		return;
 	do {
 		xenbus_switch_state(dev, XenbusStateClosing);
 		ret = wait_event_timeout(module_wq,
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateClosing ||
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateClosed ||
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateUnknown,
-				   XENNET_TIMEOUT);
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateClosing ||
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateClosed ||
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateUnknown,
+				XENNET_TIMEOUT);
 	} while (!ret);
 
-	if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)
+	if (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed)
 		return;
 
 	do {
 		xenbus_switch_state(dev, XenbusStateClosed);
 		ret = wait_event_timeout(module_wq,
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateClosed ||
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateUnknown,
-				   XENNET_TIMEOUT);
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateClosed ||
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateUnknown,
+				XENNET_TIMEOUT);
 	} while (!ret);
 }
 
diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c
index 11636634ae51..cd22bf984024 100644
--- a/drivers/pci/xen-pcifront.c
+++ b/drivers/pci/xen-pcifront.c
@@ -856,7 +856,7 @@ static void pcifront_try_connect(struct pcifront_device *pdev)
 	int err;
 
 	/* Only connect once */
-	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
 	    XenbusStateInitialised)
 		return;
 
@@ -876,7 +876,7 @@ static int pcifront_try_disconnect(struct pcifront_device *pdev)
 	enum xenbus_state prev_state;
 
 
-	prev_state = xenbus_read_driver_state(pdev->xdev->nodename);
+	prev_state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename);
 
 	if (prev_state >= XenbusStateClosing)
 		goto out;
@@ -895,7 +895,7 @@ static int pcifront_try_disconnect(struct pcifront_device *pdev)
 
 static void pcifront_attach_devices(struct pcifront_device *pdev)
 {
-	if (xenbus_read_driver_state(pdev->xdev->nodename) ==
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) ==
 	    XenbusStateReconfiguring)
 		pcifront_connect(pdev);
 }
@@ -909,7 +909,7 @@ static int pcifront_detach_devices(struct pcifront_device *pdev)
 	struct pci_dev *pci_dev;
 	char str[64];
 
-	state = xenbus_read_driver_state(pdev->xdev->nodename);
+	state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename);
 	if (state == XenbusStateInitialised) {
 		dev_dbg(&pdev->xdev->dev, "Handle skipped connect.\n");
 		/* We missed Connected and need to initialize. */
diff --git a/drivers/scsi/xen-scsifront.c b/drivers/scsi/xen-scsifront.c
index 924025305753..ef74d4da5ab0 100644
--- a/drivers/scsi/xen-scsifront.c
+++ b/drivers/scsi/xen-scsifront.c
@@ -1175,7 +1175,7 @@ static void scsifront_backend_changed(struct xenbus_device *dev,
 			return;
 		}
 
-		if (xenbus_read_driver_state(dev->nodename) ==
+		if (xenbus_read_driver_state(dev, dev->nodename) ==
 		    XenbusStateInitialised)
 			scsifront_do_lun_hotplug(info, VSCSIFRONT_OP_ADD_LUN);
 
diff --git a/drivers/xen/xen-pciback/xenbus.c b/drivers/xen/xen-pciback/xenbus.c
index b11e401f1b1e..4bd1c7a8957e 100644
--- a/drivers/xen/xen-pciback/xenbus.c
+++ b/drivers/xen/xen-pciback/xenbus.c
@@ -149,12 +149,12 @@ static int xen_pcibk_attach(struct xen_pcibk_device *pdev)
 
 	mutex_lock(&pdev->dev_lock);
 	/* Make sure we only do this setup once */
-	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
 	    XenbusStateInitialised)
 		goto out;
 
 	/* Wait for frontend to state that it has published the configuration */
-	if (xenbus_read_driver_state(pdev->xdev->otherend) !=
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->otherend) !=
 	    XenbusStateInitialised)
 		goto out;
 
@@ -374,7 +374,7 @@ static int xen_pcibk_reconfigure(struct xen_pcibk_device *pdev,
 	dev_dbg(&pdev->xdev->dev, "Reconfiguring device ...\n");
 
 	mutex_lock(&pdev->dev_lock);
-	if (xenbus_read_driver_state(pdev->xdev->nodename) != state)
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) != state)
 		goto out;
 
 	err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, "num_devs", "%d",
@@ -572,7 +572,7 @@ static int xen_pcibk_setup_backend(struct xen_pcibk_device *pdev)
 	/* It's possible we could get the call to setup twice, so make sure
 	 * we're not already connected.
 	 */
-	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
 	    XenbusStateInitWait)
 		goto out;
 
@@ -662,7 +662,7 @@ static void xen_pcibk_be_watch(struct xenbus_watch *watch,
 	struct xen_pcibk_device *pdev =
 	    container_of(watch, struct xen_pcibk_device, be_watch);
 
-	switch (xenbus_read_driver_state(pdev->xdev->nodename)) {
+	switch (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename)) {
 	case XenbusStateInitWait:
 		xen_pcibk_setup_backend(pdev);
 		break;
diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index 2dc874fb5506..6ed0cd8e9676 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -936,7 +936,8 @@ static int xenbus_unmap_ring_hvm(struct xenbus_device *dev, void *vaddr)
  * Returns: the state of the driver rooted at the given store path, or
  * XenbusStateUnknown if no state can be read.
  */
-enum xenbus_state xenbus_read_driver_state(const char *path)
+enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,
+					   const char *path)
 {
 	enum xenbus_state result;
 	int err = xenbus_gather(XBT_NIL, path, "state", "%d", &result, NULL);
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 9f9011cd7447..2eed06ba5d38 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -191,7 +191,7 @@ void xenbus_otherend_changed(struct xenbus_watch *watch,
 		return;
 	}
 
-	state = xenbus_read_driver_state(dev->otherend);
+	state = xenbus_read_driver_state(dev, dev->otherend);
 
 	dev_dbg(&dev->dev, "state is %d, (%s), %s, %s\n",
 		state, xenbus_strstate(state), dev->otherend_watch.node, path);
@@ -364,7 +364,7 @@ void xenbus_dev_remove(struct device *_dev)
 	 * closed.
 	 */
 	if (!drv->allow_rebind ||
-	    xenbus_read_driver_state(dev->nodename) == XenbusStateClosing)
+	    xenbus_read_driver_state(dev, dev->nodename) == XenbusStateClosing)
 		xenbus_switch_state(dev, XenbusStateClosed);
 }
 EXPORT_SYMBOL_GPL(xenbus_dev_remove);
@@ -514,7 +514,7 @@ int xenbus_probe_node(struct xen_bus_type *bus,
 	size_t stringlen;
 	char *tmpstring;
 
-	enum xenbus_state state = xenbus_read_driver_state(nodename);
+	enum xenbus_state state = xenbus_read_driver_state(NULL, nodename);
 
 	if (state != XenbusStateInitialising) {
 		/* Device is not new, so ignore it.  This can happen if a
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index f04707d1f667..ca04609730df 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -253,7 +253,7 @@ static int print_device_status(struct device *dev, void *data)
 	} else if (xendev->state < XenbusStateConnected) {
 		enum xenbus_state rstate = XenbusStateUnknown;
 		if (xendev->otherend)
-			rstate = xenbus_read_driver_state(xendev->otherend);
+			rstate = xenbus_read_driver_state(xendev, xendev->otherend);
 		pr_warn("Timeout connecting to device: %s (local state %d, remote state %d)\n",
 			xendev->nodename, xendev->state, rstate);
 	}
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index c94caf852aea..15319da65b7f 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -228,7 +228,8 @@ int xenbus_unmap_ring_vfree(struct xenbus_device *dev, void *vaddr);
 int xenbus_alloc_evtchn(struct xenbus_device *dev, evtchn_port_t *port);
 int xenbus_free_evtchn(struct xenbus_device *dev, evtchn_port_t port);
 
-enum xenbus_state xenbus_read_driver_state(const char *path);
+enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,
+					   const char *path);
 
 __printf(3, 4)
 void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt, ...);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 08:38:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 08:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228480.1534656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqSDi-0002HU-M5; Thu, 12 Feb 2026 08:38:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228480.1534656; Thu, 12 Feb 2026 08: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 1vqSDi-0002HN-Ii; Thu, 12 Feb 2026 08:38:42 +0000
Received: by outflank-mailman (input) for mailman id 1228480;
 Thu, 12 Feb 2026 08: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=lKKS=AQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vqSDh-0001nf-Gy
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 08:38:41 +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 3b9505da-07ee-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 09:38:41 +0100 (CET)
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 914313E712;
 Thu, 12 Feb 2026 08:38:40 +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 5BC243EA62;
 Thu, 12 Feb 2026 08:38:40 +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 C1VBFZCRjWkDNQAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Feb 2026 08:38: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: 3b9505da-07ee-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770885520; 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=1mlAVWzzcX0ZcZSFFrXG692dbDlkJVV7Kxyt0Z92TRw=;
	b=BN0UQfcyL7Zi3637xHsF1/JE1ZOSjUDVXc71w6UrBirRWa93yd39XKuXPoU0cOccDiHE5z
	okzWaPeZUp0d6SUGz9agL10B9OPnHNnjaE3rWihiwxXFqaatNO84VIcbUssc+hpsNcfFbg
	LpDmohx9iJiyaj7nTeUjVp3wL893mns=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770885520; 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=1mlAVWzzcX0ZcZSFFrXG692dbDlkJVV7Kxyt0Z92TRw=;
	b=BN0UQfcyL7Zi3637xHsF1/JE1ZOSjUDVXc71w6UrBirRWa93yd39XKuXPoU0cOccDiHE5z
	okzWaPeZUp0d6SUGz9agL10B9OPnHNnjaE3rWihiwxXFqaatNO84VIcbUssc+hpsNcfFbg
	LpDmohx9iJiyaj7nTeUjVp3wL893mns=
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,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH 2/2] xen/xenbus: better handle backend crash
Date: Thu, 12 Feb 2026 09:38:26 +0100
Message-ID: <20260212083826.136221-3-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260212083826.136221-1-jgross@suse.com>
References: <20260212083826.136221-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-7.30 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	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];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	ARC_NA(0.00)[];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	URIBL_BLOCKED(0.00)[imap1.dmz-prg2.suse.org:helo,invisiblethingslab.com:email,suse.com:mid,suse.com:email,info.dev:url];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[6];
	FROM_EQ_ENVFROM(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email]
X-Spam-Flag: NO
X-Spam-Score: -7.30
X-Spam-Level: 

When the backend domain crashes, coordinated device cleanup is not
possible (as it involves waiting for the backend state change). In that
case, toolstack forcefully removes frontend xenstore entries.
xenbus_dev_changed() handles this case, and triggers device cleanup.
It's possible that toolstack manages to connect new device in that
place, before xenbus_dev_changed() notices the old one is missing. If
that happens, new one won't be probed and will forever remain in
XenbusStateInitialising.

Fix this by checking the frontend's state in Xenstore. In case it has
been reset to XenbusStateInitialising by Xen tools, consider this
being the result of an unplug+plug operation.

It's important that cleanup on such unplug doesn't modify Xenstore
entries (especially the "state" key) as it belong to the new device
to be probed - changing it would derail establishing connection to the
new backend (most likely, closing the device before it was even
connected). Handle this case by setting new xenbus_device->vanished
flag to true, and check it before changing state entry.

And even if xenbus_dev_changed() correctly detects the device was
forcefully removed, the cleanup handling is still racy. Since this whole
handling doesn't happened in a single Xenstore transaction, it's possible
that toolstack might put a new device there already. Avoid re-creating
the state key (which in the case of loosing the race would actually
close newly attached device).

The problem does not apply to frontend domain crash, as this case
involves coordinated cleanup.

Problem originally reported at
https://lore.kernel.org/xen-devel/aOZvivyZ9YhVWDLN@mail-itl/T/#t,
including reproduction steps.

Based-on-patch-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 drivers/xen/xenbus/xenbus_client.c | 13 +++++++++--
 drivers/xen/xenbus/xenbus_probe.c  | 36 ++++++++++++++++++++++++++++++
 include/xen/xenbus.h               |  1 +
 3 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index 6ed0cd8e9676..00ee8f62c28c 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -226,8 +226,9 @@ __xenbus_switch_state(struct xenbus_device *dev,
 	struct xenbus_transaction xbt;
 	int current_state;
 	int err, abort;
+	bool vanished = false;
 
-	if (state == dev->state)
+	if (state == dev->state || dev->vanished)
 		return 0;
 
 again:
@@ -242,6 +243,10 @@ __xenbus_switch_state(struct xenbus_device *dev,
 	err = xenbus_scanf(xbt, dev->nodename, "state", "%d", &current_state);
 	if (err != 1)
 		goto abort;
+	if (current_state != dev->state && current_state == XenbusStateInitialising) {
+		vanished = true;
+		goto abort;
+	}
 
 	err = xenbus_printf(xbt, dev->nodename, "state", "%d", state);
 	if (err) {
@@ -256,7 +261,7 @@ __xenbus_switch_state(struct xenbus_device *dev,
 		if (err == -EAGAIN && !abort)
 			goto again;
 		xenbus_switch_fatal(dev, depth, err, "ending transaction");
-	} else
+	} else if (!vanished)
 		dev->state = state;
 
 	return 0;
@@ -940,6 +945,10 @@ enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,
 					   const char *path)
 {
 	enum xenbus_state result;
+
+	if (dev && dev->vanished)
+		return XenbusStateUnknown;
+
 	int err = xenbus_gather(XBT_NIL, path, "state", "%d", &result, NULL);
 	if (err)
 		result = XenbusStateUnknown;
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 2eed06ba5d38..eb260eceb4d2 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -444,6 +444,9 @@ static void xenbus_cleanup_devices(const char *path, struct bus_type *bus)
 		info.dev = NULL;
 		bus_for_each_dev(bus, NULL, &info, cleanup_dev);
 		if (info.dev) {
+			dev_warn(&info.dev->dev,
+				 "device forcefully removed from xenstore\n");
+			info.dev->vanished = true;
 			device_unregister(&info.dev->dev);
 			put_device(&info.dev->dev);
 		}
@@ -659,6 +662,39 @@ void xenbus_dev_changed(const char *node, struct xen_bus_type *bus)
 		return;
 
 	dev = xenbus_device_find(root, &bus->bus);
+	/*
+	 * Backend domain crash results in not coordinated frontend removal,
+	 * without going through XenbusStateClosing. If this is a new instance
+	 * of the same device Xen tools will have reset the state to
+	 * XenbusStateInitializing.
+	 * It might be that the backend crashed early during the init phase of
+	 * device setup, in which case the known state would have been
+	 * XenbusStateInitializing. So test the backend domid to match the
+	 * saved one. In case the new backend happens to have the same domid as
+	 * the old one, we can just carry on, as there is no inconsistency
+	 * resulting in this case.
+	 */
+	if (dev && !strcmp(bus->root, "device")) {
+		enum xenbus_state state = xenbus_read_driver_state(dev, dev->nodename);
+		unsigned int backend = xenbus_read_unsigned(root, "backend-id",
+							    dev->otherend_id);
+
+		if (state == XenbusStateInitialising &&
+		    (state != dev->state || backend != dev->otherend_id)) {
+			/*
+			 * State has been reset, assume the old one vanished
+			 * and new one needs to be probed.
+			 */
+			dev_warn(&dev->dev,
+				 "state reset occurred, reconnecting\n");
+			dev->vanished = true;
+		}
+		if (dev->vanished) {
+			device_unregister(&dev->dev);
+			put_device(&dev->dev);
+			dev = NULL;
+		}
+	}
 	if (!dev)
 		xenbus_probe_node(bus, type, root);
 	else
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index 15319da65b7f..8ca15743af7f 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -80,6 +80,7 @@ struct xenbus_device {
 	const char *devicetype;
 	const char *nodename;
 	const char *otherend;
+	bool vanished;
 	int otherend_id;
 	struct xenbus_watch otherend_watch;
 	struct device dev;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 09:25:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 09:25:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228523.1534665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqSwS-0000vI-6H; Thu, 12 Feb 2026 09:24:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228523.1534665; Thu, 12 Feb 2026 09:24:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqSwS-0000vB-3f; Thu, 12 Feb 2026 09:24:56 +0000
Received: by outflank-mailman (input) for mailman id 1228523;
 Thu, 12 Feb 2026 09:24: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqSwQ-0000uP-LK
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 09:24:54 +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 afa38f32-07f4-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 10:24:52 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so30378795e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 01:24:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d99e194sm83196165e9.8.2026.02.12.01.24.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 01:24:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: afa38f32-07f4-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770888292; x=1771493092; 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=84uSx/VQGm/ibGpJzOmVAPW2ZtBCAufv5feK/NjWluM=;
        b=IhxwwS20IwaLCPaJvUqAsOMQQqjzfJrBcX2YvGh6AAN8Ydy3rppSV74WSNEnMjshn9
         dQ6vFBUW+nQ6M/eT65Jyp8PVhgOoLLKh7rGvajdDCupdoQMJ8QDpGB5xq5n5U9OPddNA
         jYBJESBRUiJV2vCCqarpEIqoPGx95wJYwsDvv6ggfB8sfW+kFunIBdQUc+kJ2Srp65ls
         mNZg1gc+I4MFfonk3plOnXieB9LWOj1/TERip5xak3Cd7eqQI0UC2xvYWow4D9j7MZ+O
         63bV8g8v/PSKndVbIZPU77qKnvc5xegALqRGgAm8Qi09enSns/FiW3rBztZv9Qnh7Dhu
         3hdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770888292; x=1771493092;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=84uSx/VQGm/ibGpJzOmVAPW2ZtBCAufv5feK/NjWluM=;
        b=qHK2m9d/wxPSFHYQLWKYqTjmx7B2YkOi0UJVEUJJbhmva6WXTRqUzVQqqZb7dKUUQQ
         4JHleT/F649W/y7aXPYhhs/bG0Al+DaVk9LPWPm/rRY2R82guSw6YUGj6i78T4kLojNt
         0t9GAL3F5t0exuY1JFSnekOsyA9kycjoflRq1nRGV9g/UwYhNBoO+gcSWUzJN9GLlPq7
         hShJYXkaEOlb+feonDl1iExIS+HOjuHJJNgdgPxvVeA5XtS1t7/ilagP247EhqYZVcyc
         s/EUXeZivijXUZQidZMc48q9Gaa5uH34+Q/3eMLjNefHg4w62ybGkypplVxxNCC8TXpN
         ulNw==
X-Gm-Message-State: AOJu0YwaC3VlUcpGHTNmhJoHfj8YfYQ2e76EWWbwR9Ltq9jbJug6TOOe
	kK9+uf2ihOcn9+sqrbwVREfsb1zIn1FKE/Zxk5MLwb6tN46Yqpy3wUw/S/KxSoUcR+m8O7q25JL
	FbiA=
X-Gm-Gg: AZuq6aJs+IOZN6Dk/vHNNmalcgLwjMlfxczCsJAe14UhdJdtEHfJ1JiYkZTsYs8EeHB
	Lb17R1wiqSR9H8Zlhh2o3tzj19xWJzBJRAca72GDTUqJ+NBb4REDGmNw67BRIV2D9QKXC6mAJWA
	ZoeEI0hdHy/tYVQU6D9uyzb3TZMxZPC6DiDDY2zMDRItAVZCQBVe//kkY+eZ4u5/6k7CAyXWZ29
	Ve1MgO6/nc1hjMn5v1993Yurb17auWo2sQi/x35ru+CRAXQlDmZPSthoziMr8y9kGZg/hkCWs9u
	CrrkgzHNQCKRFS4/xfLOBTa/BGxh9t59WYue4TqaEiDt6DSSs2QpbzK6zbzW/LlgONJuacBDgZq
	eZBe7rcgLjGhaxgq/vyfzzdXBnMwk0OJPh2xuZl4JDAP5MM70ChAUd6zjWK3mBPo8UNFfddYlTP
	maGW/fMpfjl7TVVv59z/7ahsXTR0wsfwCN5bhBSWn8dbWCpW5QtXPA3FCz5/9LgIUN66uOrB3CJ
	X1ebg3N9C/TPxY=
X-Received: by 2002:a05:600c:34d0:b0:471:13dd:bae7 with SMTP id 5b1f17b1804b1-48367162f3cmr22104965e9.30.1770888292011;
        Thu, 12 Feb 2026 01:24:52 -0800 (PST)
Message-ID: <96f8028e-bdc1-4d8e-9fa8-55f209a5c7b9@suse.com>
Date: Thu, 12 Feb 2026 10:24:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "community.manager@xenproject.org" <community.manager@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>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.21] SUPPORT.md: extend "lifetime"
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

As per
https://lists.xen.org/archives/html/xen-devel/2026-02/msg00630.html.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I would have preferred to reference the xen-announce@ posting, but the
mail may still be stuck in moderation there.

--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -11,8 +11,8 @@
 
     Xen-Version: 4.21
     Initial-Release: 2025-11-19
-    Supported-Until: 2027-05-19
-    Security-Support-Until: 2028-11-19
+    Supported-Until: 2028-11-19
+    Security-Support-Until: 2030-11-19
 
 Release Notes
 : <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.21_Release_Notes">RN</a>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 09:27:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 09:27:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228533.1534675 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqSyX-0001QV-Gs; Thu, 12 Feb 2026 09:27:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228533.1534675; Thu, 12 Feb 2026 09:27: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 1vqSyX-0001QO-E5; Thu, 12 Feb 2026 09:27:05 +0000
Received: by outflank-mailman (input) for mailman id 1228533;
 Thu, 12 Feb 2026 09:27: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqSyW-0001QG-61
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 09:27:04 +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 fd1f6fee-07f4-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 10:27:02 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-43622089851so2727617f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 01:27:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d30d9csm10083373f8f.1.2026.02.12.01.27.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 01:27:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fd1f6fee-07f4-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770888422; x=1771493222; 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=MHDrVncJbhMbEdu5PTplUAZkgHCPM4SFU7nH7X5cza0=;
        b=ThxHT9r7wS0jkLU6cZ0Eoazz+HyWo5POo4vQgkDCy0+sDbI/n80p33u1lNEaTNhLph
         6KP+fGL3U9LPAMSKhqWBXOaG55L9x7tm9HzHjLdrftqYNFgyZ05/8YNSKgNhsZQ62lxQ
         +RXoSq1ua/BSdzLG1iYs01695OIg8NLbZNeCXW8zDS9O4AQACSL7vDiyM2RUo1qiVRNg
         MgDNzKIdNtIplJzsjs2aiFcTdo1+1JaTZBhOzm1TJqSLfx08Z+uqRpjVIqDmzdNyII3m
         n7mmF6pgXeT6xFgm2d5hEOZtLY6ep5sVSikKkDEJIqbGLm60Y/Cm7y7dlncwstVVldxa
         7cJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770888422; x=1771493222;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=MHDrVncJbhMbEdu5PTplUAZkgHCPM4SFU7nH7X5cza0=;
        b=l5oufv/ve/rZhlgpEiI+1LgFUIcVpRKPt5lKu0pgDHOiCocamXTJzIJiNUf5mOLqMw
         t7NvYaxePfsix5Q5GjD9iH4zsZn528kx5FQur2jTjpdTU1wNCWCSxo8qOz4R8XXBBMEZ
         8+bfAugPKc29Iai1MlsnLGkiLBV1Q69LrmgBDQkNzAyJuH4+pi2iEz1qX/0aSSNK2pal
         JmOpbH9N+Te0/2DkfbLwctv2TiZsM8VBWz4xwZv+hQ9RH9kLFuU+yE+iZmetbeIlcLTA
         6j0xyv+GTuFF+xsaO2jvmCIEBTNqqnTFCEMyq9MolRhV+tAT8Bfv2N4OzSV5BmLkEo5d
         XtJA==
X-Gm-Message-State: AOJu0YzSJlUhWN9QqNWxTyIU9p3FREwW2dC74CkEKC15fLvVzXvxdzK9
	GGHRCvX5FWI42dZhShSEcVGv3v4CsuZy7+yM8TS/ExrsIONWfxCyDqtMjA9KELDs+jx8+Z5KlDI
	L6hE=
X-Gm-Gg: AZuq6aKkiSO3MQ+tjA0xUZb5E5zDThEOjK0bCnefKH5lUhAca6PkMzaoCbrT+DDS1lN
	D/0V5285CKMYGFaF+OViIDaO5G+Mrb9Ow1eE9nJyAqJ9ZmHuvCtrKUyJN9g/yadM/zD9s6k1i7K
	SmMyPBVpwclqcjEqbjPGEqNrPvHExQMXD87fbcngRND//cAZfXaiP2cB+QVKissYdrkJwarejm5
	sG6+chG0AGryvRR5jt3vht6qtP9LuZKs7hqHstpkbiGLOW32om0Mhb6EKAOQoCbvRYPGyAMISwz
	SJG8lZAmp5Is+FAwdC04QowTojZCtTByJ1qiAIKsphwYieKZbyunyzjIWh9FrVFXUdoBkkhUy6D
	T/zYy5ISvKxO53jaqfI/G8aLU4OeXO3uyQir92P6fIESJJgK1hztIKgEYeF6nFrLMk5KwbvurC4
	ugXHrSS08fEl/kYlY34FJuTeZvUl/eh4lPts3O2DWh+WiCteoCGvggY21yaeLzv8qAd20Wudplb
	D/f/T/j3QRDiR0=
X-Received: by 2002:a05:6000:220d:b0:436:216:98d8 with SMTP id ffacd0b85a97d-4378f1051aamr2510327f8f.12.1770888422002;
        Thu, 12 Feb 2026 01:27:02 -0800 (PST)
Message-ID: <b2d6108d-0035-4187-b83e-b63519d5cbac@suse.com>
Date: Thu, 12 Feb 2026 10:26:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.20] SUPPORT.md: extend "lifetime"
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "community.manager@xenproject.org" <community.manager@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>
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

As per
https://lists.xen.org/archives/html/xen-devel/2026-02/msg00630.html.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I would have preferred to reference the xen-announce@ posting, but the
mail may still be stuck in moderation there.

--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -11,8 +11,8 @@
 
     Xen-Version: 4.20
     Initial-Release: 2025-03-05
-    Supported-Until: 2026-09-05
-    Security-Support-Until: 2028-03-05
+    Supported-Until: 2028-03-05
+    Security-Support-Until: 2030-03-05
 
 Release Notes
 : <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.20_Release_Notes">RN</a>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 09:30:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 09:30:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228543.1534686 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqT1f-00030S-Uv; Thu, 12 Feb 2026 09:30:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228543.1534686; Thu, 12 Feb 2026 09:30: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 1vqT1f-00030L-RA; Thu, 12 Feb 2026 09:30:19 +0000
Received: by outflank-mailman (input) for mailman id 1228543;
 Thu, 12 Feb 2026 09:30: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+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqT1e-00030E-66
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 09:30:18 +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 70ee290e-07f5-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 10:30:17 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4805ef35864so65495345e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 01:30:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835ba506cesm50646885e9.6.2026.02.12.01.30.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 01:30:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70ee290e-07f5-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770888616; x=1771493416; 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=RKD3wn7kJjNvMSd2tMowir8wdXG0wEPfR9zOOXR/l8I=;
        b=GH4wm2LAXXqiYSUiUpmnJoFco7CTI08usTVdyVt1fayjX1vu6O30IJDpSPvjuaoY7J
         SB8dJzjohBwmLILa/e017Q+CK6FT+L7Wewr3dBT8bzx3yn0ZLSTxj1wYWPI6JQ33/+Sl
         y+4f714t0mn9ISZMhL5WqM3ynUiFKzVQWkcNS+sSJ7lqr0lMnjjdBdMPBmkFwm0wROZD
         SCB3UaK2utwXXKHQ6dB4jQjhTX56LnKGa5tREUuztLOQR+Ka9KuE0DFxm4g/d+LiuKkg
         RkUpM8ZEav8ikS+OL0l0067gcN2E5Ko2ntmVBKBdd/ZD9sJHqecjKnBtfVb+FFmACQHO
         2ipg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770888616; x=1771493416;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=RKD3wn7kJjNvMSd2tMowir8wdXG0wEPfR9zOOXR/l8I=;
        b=mg+uIY7V+9k1jkRVrghC+7D+UHGQoeqUOFWCoZL7CYbMr86XSyQgcDMFcwI0bFXqfR
         jvpujMMNL0guav+N8A4nX2hpMmz/XEHYJW6qX6BIy7HF1mdW4uWq9Mb5V3A8ziHuLzcp
         oJK3Jsqsnp0TTglIajgZ1R074bU/AaUtAPZyygdy9QOQWpqg6iDu79iYX5I2uwgJm8ju
         wHODYzj+bv/XcbneKqrnquALxlxL0FdxydSz/inXWzhoB4/HMIEkSHRpCBYVDnZVu6ke
         VPzaE9JTvNJmhmJgfqOuZwAYYVem3UKCSRvSKAgK7rV6h73nFsFFU53FtttfhQ4ie2Yv
         XWXA==
X-Gm-Message-State: AOJu0YzbNzxEuOHhD7k34/eM6Zs6zUQGEaoa+AiYUybZst0pjO8hiVzn
	jjNcFeNs2iwTorXr9tkERFGSpQrnilOOXhNELSaW4ocwWQG4uoV97F2r+A9Ms4G2Mp7W4WWaoLu
	74uU=
X-Gm-Gg: AZuq6aJC0CpU1yYup7v8zQrP/s72YV0kq9/ZKSZgHVexu8Y+nlF7zZYo77BblyoEMXF
	RNu+LNJU02iwZ1w+wcrO0iIsfZXNFJwHTpPr20RptIEw2X5hiZXjNBY8YEQtD5WoM6Qzb3bXHEu
	LlR57bFQGEkOW7X1LrxWlrDvw4aMdoeE5qOPHc67mJ8cI2qw8iLoDX3PuoO5Ro28spDTQd8Q531
	nQVk/PZG6Azu8OFMo/gJJB4+Y1vCBF6P989PTS00JQgqePyFtRg6zHhKRQH76pbK1b4ckLU/InR
	T+FT4uuRqe1MuXw86PZ3fXze4xiJKGKYiGl8iHCNKcFsuq5zHoMaN7jYVMFpo9YsBlftcNuZL9B
	FlYN3oMlgykP1GrB1a+kBc8km56t4jYFdrdcsZVmqwl+JhqVqXWWwLpcNtQvS2W+Uw6n4DmKx2O
	SZtRIVT0+tbfOhegMn2T4O3HCK6i//9mJryZh9lZ3M9gE3XPxLkgG79nGjrNpZXDGXATnqu8Q6p
	aBl4zT81jO+w6Y=
X-Received: by 2002:a05:600c:c0c3:20b0:482:eec4:772 with SMTP id 5b1f17b1804b1-48365716447mr19738075e9.32.1770888616282;
        Thu, 12 Feb 2026 01:30:16 -0800 (PST)
Message-ID: <916b8eaa-f5d3-4255-a7df-95f66fa79780@suse.com>
Date: Thu, 12 Feb 2026 10:30:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.19] SUPPORT.md: extend security support "lifetime"
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "community.manager@xenproject.org" <community.manager@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>
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

As per
https://lists.xen.org/archives/html/xen-devel/2026-02/msg00630.html.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I would have preferred to reference the xen-announce@ posting, but the
mail may still be stuck in moderation there.

--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -12,7 +12,7 @@
     Xen-Version: 4.19
     Initial-Release: 2024-07-29
     Supported-Until: 2026-01-29
-    Security-Support-Until: 2027-07-29
+    Security-Support-Until: 2029-07-29
 
 Release Notes
 : <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.19_Release_Notes">RN</a>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 09:32:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 09:32:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228550.1534695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqT3H-0003UF-8u; Thu, 12 Feb 2026 09:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228550.1534695; Thu, 12 Feb 2026 09: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 1vqT3H-0003U8-6A; Thu, 12 Feb 2026 09:31:59 +0000
Received: by outflank-mailman (input) for mailman id 1228550;
 Thu, 12 Feb 2026 09:31: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqT3G-0003U2-Bd
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 09:31:58 +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 acb3d512-07f5-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 10:31:57 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-483487335c2so35007885e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 01:31:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dd0e327sm105334135e9.14.2026.02.12.01.31.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 01:31:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: acb3d512-07f5-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770888717; x=1771493517; 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=KCYwcaPoR0SB+xwJMtpULTUrUYR0d3UfXYKV9gTVzAk=;
        b=Fg4xBuPD2trXJhW1yXDd5Dn6Fnrf3HQDexziQJpAiMQkflFaIfVp0v40uqYXm0G9fL
         Y4ZIaqG6amiabneApZnUTAGbJYYBFzv+Po7YwVGmYH6MW8ccN6G8iva1BswpbJMlfqZG
         PrhUA+g1vXNS6lGAFNU9iGqvywUPnjjOIkTApitxEoPyuS+7MYURU0eCBTDrjQYcPHxv
         FpSKg7pDqagOQVVLib/JiB/OHbqLTvBcrhtdXrcEtwE5RwcPUgGGGge6VcaPz+LIgQBe
         8xcJ+kHS13QP2ud7efJf+JL6q5TXwVUNVh+qqqoKaimaKOVpvoXxzzLz4j5hmhUYOb2W
         9SPg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770888717; x=1771493517;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=KCYwcaPoR0SB+xwJMtpULTUrUYR0d3UfXYKV9gTVzAk=;
        b=mt+uFtaCn87Jvjb3JAI2NDQH9P5lyVaB1dyKLM7X/vdA5MSqM44cJhtGi/6FD/qkji
         TO1aZ9DshQK+6tdH3CmrxW1UoZPR8uzKzuv87Ww4c9CZKxYcazK90PFq16OD6Ujlz5Rv
         vCWYMkbKw5TofP+Zt6naJxoxzwX5E0YmFPKQEaEUkQ3XEDucW1zWpRh7t3lDLbIv42OC
         dU184/yVWs1qul2GYT6pMLSkQ4B9ecoRlV4ArqquJSs3zT1lDj5s0t01tellUSi6+G5I
         +b2K9LoU7ZKwhNXgpqZwE/gnY3O/OeSBtG9VtnOeZdhm8ggfyRY+AIR1VCFslRWup4wO
         G64Q==
X-Gm-Message-State: AOJu0YzrWxQNQ3VrR6YqsXS3ASFFgoV0f168vAbJd+hn9qhDR9f2EYog
	+c9siQFwpDoEArCc5OEsTI9osQWgCMt7BvFJ2HsM7hdskoyU+cRrS0SA9yOwtQrrpJQqO002PNH
	6PXY=
X-Gm-Gg: AZuq6aKItM6aSoPiJrgdmXi3T8Wr6aZRlUolc+RG3BiyLZyR2wwcj97M8tuW4YSRc4W
	KOV0koahwPZ7vBG0L7aoY2WfLWa3UiS8WPFpxoKCZgfKnPMAobkQRFLcNHQQhypqtlDBXzBTv2h
	BHNLeGYnz45N+oBA2dd979bkuwMmPCZ+N61tOc1mrDGxilwGRqFissedJilBrjNA3h8kfnRQsej
	af4QtzYWgMp80XK1DxvZJO82V+RSxIFYcyWDQt4R0SGS93N8sQTDkS8SCyJEXO10TWODIr8Kauj
	J4UT1QpMMuA2gSgoMRzGz+gdt3znOW8PN73SDUtYSkvjy8nfUyGThBG6WA/C8j1ZH3IkpYqZNpV
	DD1jOdjLs3o+9askHpWsUWpt5B+Ru0saMhbbiyCDAmlTLrFVEsCakIF3avhgxIAU8DFG8/6jq6q
	FB6h0ycUZ5ZSFyLK1QaaAEsUYLPeSaseoqXZqz7yXlsUbIC6i9+8FoSerHP8RYbTIeZJID59DKq
	V1yIWfFIICFJRc=
X-Received: by 2002:a05:600c:3f1b:b0:46e:32dd:1b1a with SMTP id 5b1f17b1804b1-483656b08e1mr26805005e9.7.1770888716477;
        Thu, 12 Feb 2026 01:31:56 -0800 (PST)
Message-ID: <eaac7ea8-08d9-4e60-b991-c76ee3f3e9af@suse.com>
Date: Thu, 12 Feb 2026 10:31:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.18] SUPPORT.md: extend security support "lifetime"
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "community.manager@xenproject.org" <community.manager@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>
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

As per
https://lists.xen.org/archives/html/xen-devel/2026-02/msg00630.html.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I would have preferred to reference the xen-announce@ posting, but the
mail may still be stuck in moderation there.

--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -12,7 +12,7 @@
     Xen-Version: 4.18
     Initial-Release: 2023-11-16
     Supported-Until: 2025-05-16
-    Security-Support-Until: 2026-11-16
+    Security-Support-Until: 2028-11-16
 
 Release Notes
 : <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.18_Release_Notes">RN</a>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 09:36:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 09:36:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228559.1534706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqT7i-00046B-PW; Thu, 12 Feb 2026 09:36:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228559.1534706; Thu, 12 Feb 2026 09:36: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 1vqT7i-000464-MM; Thu, 12 Feb 2026 09:36:34 +0000
Received: by outflank-mailman (input) for mailman id 1228559;
 Thu, 12 Feb 2026 09: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqT7i-00045y-4p
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 09:36:34 +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 4e9c4ade-07f6-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 10:36:28 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so1101245e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 01:36:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dcfb28dsm105214395e9.11.2026.02.12.01.36.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 01:36:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e9c4ade-07f6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770888988; x=1771493788; 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=cpm2UV73PIh7YE9HQcdTh15v/sd/mpsYbkiZZZ395GU=;
        b=E3rLXARAjwQCxLZiBmOokvXd23cnuehKu9BA6Yih09V+Ic9BpGdBEGc/5EAMuZMvXy
         wSbQ1nJAOF59taUQA75m9Gla6O9B7tUxQ8z+ri/mC1bpQjg1pfAA8+gld8nFsijbKyoh
         7/lUWUz5ge/o+QQkPaxa+oPfa1rNGfUXt5i0BSGa2rCdvgSn/Bw3sx1wLmf4nUc7r007
         BK8tSU5OaMC4Sx6akFEwlFYpyFrgLWq8hiP9pgRb5oPi1gu0FPRXi5X3EfUY6I3dToZS
         n2q4o9ifK0Emj7zjBvdWwj0Uv89GFTTAy4Uvci2rKPgx+DhTgtR2uKeu7XlFwN77qsnB
         88gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770888988; x=1771493788;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=cpm2UV73PIh7YE9HQcdTh15v/sd/mpsYbkiZZZ395GU=;
        b=NIoegNZXjG6z9jPGV/fNxBpJ72VZ+2vPkdFQhBUaYKeBSzpivH3R/nI7oWCczvc1Uw
         De/gzvoPsPU2m/R+q7YGoFRpTthg5tsh9yhru8Mo09b5Wfg8lpjaOwe7eCbp4Dg12PmO
         ww+oZEpcg7RryWblffUyFgFJg4w503zr1e4+vLXkNqqET4uwd5WPPmgQSSj3eyJux+bT
         RlNwLUzuireKqci30hrKRAy41arneffx3Dojhn5scla+Qphu1RqKDWp+8l2KA2eCNmRE
         ++q7mtoOt7p8a7KKsT5psfFxw5HTStvqT+W8Xeud8jHL+PjWlHmxAw7SZVgxPblEB+Wx
         3DsA==
X-Gm-Message-State: AOJu0YzXkZGUjuVyrOiZdoMD/p38UcdetFKKH3nXJwvdwNQtrIeGFpGn
	kjYJuNMA6RFy1VARf20UP37oZZCdLT2Kw/UjIur9H1qtvMhpdn7Fshi1TgQYkkkyToPvyd3EHiu
	wNWA=
X-Gm-Gg: AZuq6aI+FxYqq6DVuAqaVqvYC1U4G3sZfPG2NMP6oQNc0JGAQL0XlP5d+zxVu75w9+z
	dVMA1PgGX0CoVh+qBZjKjlpnJm1aYcmBv+S2XrSjsknB6NzNlxRRIUVfT8hxvo5UBbklvn07sAH
	IbH/F8AFI9aYZ9oFTMPUL7RQSBb/xqmEuOmFUvaVwrDHSxF0x4nRe7zsC5hGCKNC6DNdYcNcngU
	hk+mBWWOVrKCYSlKfC7Qop8HsYK4b2Z40DsrAvpoADjG19Vut/RJvK5ynMVDybr1WVhGztRbELq
	BY4GBGZlVbHuVevmlJRBlv8fQ5LksxPCjb/C0wZICeTNQbviAzOpICxVRR0aquF8X7t6oq/kVsO
	1l1xfiUB1c4tqsKT92AmhYsBUvTQV0ofziRtFwrsALWHjb4nFqRSU5/PeDOu4Hklhsyd01e2yy/
	2hikA92qQVSzR7uCektar+lAHHosBaP4reuG26afegtAlZa9eneaII6QXotrPVoXtb63u1We7y6
	F1MxMe1Wco8ZaLHK2727siaEw==
X-Received: by 2002:a05:600c:354c:b0:480:3b4e:41b8 with SMTP id 5b1f17b1804b1-4836571d53emr23829025e9.33.1770888988120;
        Thu, 12 Feb 2026 01:36:28 -0800 (PST)
Message-ID: <df668fb3-b3b9-4f37-920f-b1aa653a35de@suse.com>
Date: Thu, 12 Feb 2026 10:36:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH for-4.17] SUPPORT.md: revive for extended security support
 "lifetime"
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "community.manager@xenproject.org" <community.manager@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>
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

As per
https://lists.xen.org/archives/html/xen-devel/2026-02/msg00630.html.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I would have preferred to reference the xen-announce@ posting, but the
mail may still be stuck in moderation there.

--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -12,7 +12,7 @@
     Xen-Version: 4.17
     Initial-Release: 2022-12-12
     Supported-Until: 2024-06-12
-    Security-Support-Until: 2025-12-12
+    Security-Support-Until: 2027-12-12
 
 Release Notes
 : <a href="https://wiki.xenproject.org/wiki/Xen_Project_4.17_Release_Notes">RN</a>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 09:37:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 09:37:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228569.1534715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqT8o-0004o1-6B; Thu, 12 Feb 2026 09:37:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228569.1534715; Thu, 12 Feb 2026 09:37: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 1vqT8o-0004nu-3U; Thu, 12 Feb 2026 09:37:42 +0000
Received: by outflank-mailman (input) for mailman id 1228569;
 Thu, 12 Feb 2026 09:37: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqT8m-0004nl-SU
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 09:37:41 +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 789cd9d0-07f6-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 10:37:39 +0100 (CET)
Received: by mail-ej1-x62b.google.com with SMTP id
 a640c23a62f3a-b8f7a30515aso194770166b.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 01:37:39 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8f6f96573dsm137202566b.2.2026.02.12.01.37.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 01:37:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 789cd9d0-07f6-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770889059; x=1771493859; darn=lists.xenproject.org;
        h=content-transfer-encoding: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=Lti3Q4mDJraMDDpMeyfq2mxrj3EjYc2hjF2kVPl2KgM=;
        b=irQWK0H/enAF5GfwdgggeLskgy9GMNaSCKaJpbkNul1QxFoYWVKwZYjcqw7UbXlCUk
         xlTviS7HQFpk2ItJDXnthIvpF6eVRsj4fsehseOKh4YZcWsniaMtVXqnw5Ziak3DoeU3
         mZQk5nGJplHksxrTZ5tzK017Spk9IAyKC0xJ7gWv8igAnbkOMcy10hrdDor29+uAAYhx
         lusmX69BqDnkI/oVKwyqLD0jiEa8lxLYe6ZhyjXKDt9dYT631RPFdTrO+uLmkjSOVBuj
         ECruvrpfPfiPKlAFZKqIVgvjBdQ+Rjo08+VrKSyxJww50PtXjpa3HaxUZXUwtCEsl3+P
         rVxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770889059; x=1771493859;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Lti3Q4mDJraMDDpMeyfq2mxrj3EjYc2hjF2kVPl2KgM=;
        b=vynph9tTOpIw1yWRsqMyRFpibSL1p8jxQ4AoiQ7TIaPLo9BCFH7LkYrBTxajMJML5w
         UCfBrlbsNHgzCEQmIhQVecjIJN5ugm2KcLVc0ZmBPVD1bgfKKh7lrfN8CKcuarGZaQfh
         wWLKalRYNkkc4OKjiSsGG3tchtDAULAtPDn6651gFCg1YlSeGFmG8eJT1MFuxl3q8kwu
         Jw+oPbBUbmHz3OatwD5FZm2s49esZ3/XCQt6UH05gFeaolVA3yM6HbRxs+EdLdY1mihq
         Nq8LMzfL6RbTf8wm64PTrvYBj8/JzimWRjNsIyYlj5AdcuIuJ5S7a6GmcUOerSU6z0Nh
         UitA==
X-Forwarded-Encrypted: i=1; AJvYcCWdvSW/7HKvnSd/rVu4KCxknSCikTcerG3U2IjwwrcbpD8+owIN8uKkpVJCtkFwi7Z8sAtJq5T9FDc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtyrnhK9g66Z4hrE2b+cqbS5D2OEAaSkUqRD9hzWhFwuS9DDp3
	MqUVED7SrrSL2Xnor8oqn2tpmyJzRHDDp1QahTM26+VcAlH/yvIB3ii6vTJKe22t
X-Gm-Gg: AZuq6aLwYDbV/HKFLZK8Cep5BtEswW51O2cdfLccg6wbQhxKT5Dp1+Mcm5EUZ11z5vV
	KUyH1dJUY0rJfhfbY4stmEqnh/RKY+H6w3zsDskCF5XE9LXawfG2K6G0Wp2mKmlDufVPd1AMVgS
	l61OgBmak/aziYIX150ap91yZXKu/8I6By4BslWvUiRX2Qw6ibE5SuT5uJoIl996yo81k4IP7pO
	LS+xTWPO/rfB+FS7KkLzYVezeu0tjpblCxmO0UYOr1tlY7JvOddtKGuK1NKMT4BHMPcJHUFgffK
	ghRlsoacHgnlRalazDPTS7gr63wlXyhO7SOLqsyU1OFy52nW/CLN7+Wc/pgGjZFUx6itVnYLh1n
	yGhfWKGQiJ+ML1SJ2YOq+81WXd+4juNioCRzXYWIo4UyJy3M0i5EGWHK3PRgt6EK7dVpyez8U9s
	Ao+v7t9cji8+jLJ4ZCG9dNwWXPB0DZ/FK+khlE3V90QsEVew9lfaA78MDSmi6xkIE5L4JJ33uTZ
	bw=
X-Received: by 2002:a17:906:c147:b0:b87:25a7:3ea0 with SMTP id a640c23a62f3a-b8f8f3ce302mr125774266b.25.1770889058170;
        Thu, 12 Feb 2026 01:37:38 -0800 (PST)
Message-ID: <f012a5f5-7526-4d41-b8eb-6f1208991b71@gmail.com>
Date: Thu, 12 Feb 2026 10:37:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v3 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <ced640968434a67c150eff90437f83d3b460a36c.1770650552.git.oleksii.kurochko@gmail.com>
 <d73424e2-84f4-497b-a1f4-f3eea5cdeeb3@suse.com>
Content-Language: en-US
In-Reply-To: <d73424e2-84f4-497b-a1f4-f3eea5cdeeb3@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/11/26 3:16 PM, Jan Beulich wrote:
> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>> Based on Linux kernel v6.16.0.
>> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
>> we want to guarantee that if a bit in irqs_pending_mask is obversable
>> that the correspondent bit in irqs_pending is observable too.
> And the counterpart of this barrier is the one encoded implicitly in
> xchg()? Could do with making more explicit, e.g. by way of adding a
> code comment there.

I thought it would be clear from the paragraph below where xchng_acquire()
is mentioned. I'll update the comment to make it more explicit.

>> Add lockless tracking of pending vCPU interrupts using atomic bitops.
>> Two bitmaps are introduced:
>>   - irqs_pending — interrupts currently pending for the vCPU
>>   - irqs_pending_mask — bits that have changed in irqs_pending
>>
>> The design follows a multi-producer, single-consumer model, where the
>> consumer is the vCPU itself. Producers may set bits in
>> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
>> performed only by the consumer via xchg_acquire().
> What is xchg_acquire() in Xen? I can't spot anything like this.

Rudiment from Linux. I'll change to xchng().

>> The consumer must not
>> write to irqs_pending and must not act on bits that are not set in the
>> mask. Otherwise, extra synchronization should be provided.
>>
>> On RISC-V interrupts are not injected via guest registers, so pending
>> interrupts must be recorded in irqs_pending (using the new
>> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
>> HVIP before returning control to the guest. The consumer side is
>> implemented in a follow-up patch.
>>
>> A barrier between updating irqs_pending and setting the corresponding
>> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
>> that if the consumer observes a mask bit set, the corresponding pending
>> bit is also visible. This prevents missed interrupts during the flush.
>>
>> It is possible a guest could have pending bit not result in the hardware
>> register without to be marked pending in irq_pending bitmap as:
> Are there some words missing in this sentence? I find it hard to follow
> the way it is.

Agree, something is wrong with this sentence. I'll rephrase it to:
   It is  possible that a guest could have pending bit in the hardware register
   without being marked pending in irq_pending bitmap as:
   ...


>>    According to the RISC-V ISA specification:
>>      Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>>      interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>>      is an alias (writable) of the same bit in hvip.
>>    Additionally:
>>      When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>>      zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>>      hie.VSSIE.
>> This means the guest may modify vsip.SSIP, which implicitly updates
>> hip.VSSIP and the bit being writable with 1 would also trigger an interrupt
> s/writable/written/ ?
>
>> as according to the RISC-V spec:
>>    These conditions for an interrupt trap to occur must be evaluated in a
>>    bounded   amount of time from when an interrupt becomes, or ceases to be,
>>    pending in sip,  and must also be evaluated immediately following the
>>    execution of an SRET  instruction or an explicit write to a CSR on which
>>    these interrupt trap conditions expressly depend (including sip, sie and
>>    sstatus).
>> What means that IRQ_VS_SOFT must be synchronized separately, what is done
>> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
>> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
>> PMU isn't supported now.
>>
>> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
>> IRQ_VS_EXT), the specification states they cannot be modified by the guest
>> and are read-only:
>>    Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>>    bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>>    the logical-OR of these interrupt sources:
>>      • bit VSEIP of hvip;
>>      • the bit of hgeip selected by hstatus.VGEIN; and
>>      • any other platform-specific external interrupt signal directed to
>>        VS-level.
>>    Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>>    bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>>    logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>>    signal directed to VS-level.
> In what you quote there is something being said about bits being r/o in hip,
> but I can't conclude the "cannot be modified by the guest" that is being said
> ahead of the quotation.

I think it would be good then to add:
   When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
   Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.

   When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
   Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
As they are aliases VS* counterparts can't be writable and also:
   Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
   bits for supervisor-level external interrupts. If implemented, SEIP is
   read-only in sip, and is set and cleared by the execution environment,
   typically through a platform-specific interrupt controller.

   Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
   bits for supervisor-level timer interrupts. If implemented, STIP is
   read-only in sip, and is set and cleared by the execution environment

as SIP = VSIP for guest then guest can't update these bits too.

I will update the comment with extra information.

>> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
>> and vcpu_unset_interrupt(), and flush them during the call of
>> vcpu_flush_interrupts() (which is introduced in follow up patch).
>>
>> vcpu_sync_interrupts(), which is called just before entering the VM,
>> slightly bends the rule that the irqs_pending bit must be written
>> first, followed by updating the corresponding bit in irqs_pending_mask.
>> However, it still respects the core guarantee that the producer never
>> clears the mask and only writes to irqs_pending if it is the one that
>> flipped the corresponding mask bit from 0 to 1.
>> Moreover, since the consumer won't run concurrently because
>> vcpu_sync_interrupts() and the consumer path are going to be invoked
>> equentially immediately before VM entry, it is safe to slightly relax
>> this ordering rule in vcpu_sync_interrupts().
>>
>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> ---
>> Changes in v3:
>>   - Use smp_wb() instead of smp_mb__before_atomic().
>>   - Add explanation of the change above in the commit message.
>>   - Move vcpu_sync_interrupts() here to producers side.
>>   - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
>>     is called.
>> ---
>> Changes in V2:
>>   - Move the patch before an introduction of vtimer.
>>   - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
>>     vcpu structure starts out all zeros.
>>   - Drop const for irq argument of vcpu_{un}set_interrupt().
>>   - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
>>     could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
>>   - Drop IRQ_LOCAL_MAX as there is no usage for it now.
>> ---
>>   xen/arch/riscv/domain.c             | 70 +++++++++++++++++++++++++++++
>>   xen/arch/riscv/include/asm/domain.h | 24 ++++++++++
>>   xen/arch/riscv/traps.c              |  8 ++++
>>   3 files changed, 102 insertions(+)
>>
>> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
>> index af9586a4eb0d..4513f778cdc4 100644
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -5,6 +5,7 @@
>>   #include <xen/sched.h>
>>   #include <xen/vmap.h>
>>   
>> +#include <asm/bitops.h>
>>   #include <asm/cpufeature.h>
>>   #include <asm/csr.h>
>>   #include <asm/riscv_encoding.h>
>> @@ -124,3 +125,72 @@ void arch_vcpu_destroy(struct vcpu *v)
>>   {
>>       vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info) - STACK_SIZE);
>>   }
>> +
>> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
>> +{
>> +    /*
>> +     * We only allow VS-mode software, timer, and external
>> +     * interrupts when irq is one of the local interrupts
>> +     * defined by RISC-V privilege specification.
>> +     */
> What is "when irq is one ..." intended to be telling me? There's no ...
>
>> +    if ( irq != IRQ_VS_SOFT &&
>> +         irq != IRQ_VS_TIMER &&
>> +         irq != IRQ_VS_EXT )
>> +        return -EINVAL;
> ... corresponding code (anymore), afaict.

That part should be removed, there is no any sense for it anymore.

> Further, who are the prospected callers of this function and its sibling
> below? If they're all internal (i.e. not reachable via hypercalls or
> emulation on behalf of the guest), this may want to be assertions.

Considering your further reply:
   Having seen a use in patch 08, I should clarify the "reachable" part here:
   It's not the "reachable" alone, but whether the guest has control over the
   "irq" value passed. For the example in patch 08 this isn't the case.

I think I did not fully understand the part about “the guest has control over
the ‘irq’ value passed”, but at the moment I do not have any plans for the guest
to pass the irq value directly. (Do you have any examples where it should be
needed?).
All the use cases I have in mind are similar to the vtimer case: intercepting
the SBI call and then, inside the handler, calling vcpu_(un)set_interrupt().

>> +    set_bit(irq, v->arch.irqs_pending);
>> +    smp_wmb();
>> +    set_bit(irq, v->arch.irqs_pending_mask);
>> +
>> +    vcpu_kick(v);
> Shouldn't this be conditional upon the pending_mask bit going from 0 to
> 1?

It makes sense to do. I will do that in the following way:
   if ( !test_and_set_bit(irq, v->arch.irqs_pending_mask) )
       vcpu_kick(v);

>
>> +void vcpu_sync_interrupts(struct vcpu *v)
>> +{
>> +    unsigned long hvip;
>> +
>> +    /* Read current HVIP and VSIE CSRs */
>> +    v->arch.vsie = csr_read(CSR_VSIE);
>> +
>> +    /* Sync-up HVIP.VSSIP bit changes done by Guest */
>> +    hvip = csr_read(CSR_HVIP);
>> +    if ( (v->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL) &&
> Nit: Parentheses please around an & expression when used in an &&
> one.
>
>> --- a/xen/arch/riscv/include/asm/domain.h
>> +++ b/xen/arch/riscv/include/asm/domain.h
>> @@ -54,6 +54,25 @@ struct arch_vcpu {
>>       register_t henvcfg;
>>       register_t hideleg;
>>       register_t hstateen0;
>> +    register_t hvip;
>> +
>> +    register_t vsie;
>> +
>> +    /*
>> +     * VCPU interrupts
>> +     *
>> +     * We have a lockless approach for tracking pending VCPU interrupts
>> +     * implemented using atomic bitops. The irqs_pending bitmap represent
>> +     * pending interrupts whereas irqs_pending_mask represent bits changed
>> +     * in irqs_pending. Our approach is modeled around multiple producer
>> +     * and single consumer problem where the consumer is the VCPU itself.
>> +     *
>> +     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
>> +     * on RV32 host.
>> +     */
>> +#define RISCV_VCPU_NR_IRQS 64
> What is this 64 deriving from? IOW - can it be some kind of expression,
> helping the reader?

Originally it derives from the width of mideleg, mie, mvien, mvip, and mip (and
their counterpars for other modes) what means that RV32 will have no more then
32 local interrutps, but considering that RISC-V AIA spec tells ...:

   Table 2.1 lists both the CSRs added for machine level and existing machine-level
   CSRs whose size is changed by the Advanced Interrupt Architecture. Existing CSRs
   mie, mip, and mideleg are widended to 64 bits to support a total of 64 interrupt
   causes.
   For RV32, the high-half CSRs listed in the table allow access to the upper 32
   bits of registers mideleg, mie, mvien, mvip, and mip. The Advanced Interrupt
   Architecture requires that these high-half CSRs exist for RV32, but the bits they
   access may all be merely read-only zeros.

... that for RV32 it was widened to 64, so 64 appears here. I haven't used some AIA
specific name for constant 64 as in case if AIA isn't used it is more then enough
to cover PLIC case, for example.

>> --- a/xen/arch/riscv/traps.c
>> +++ b/xen/arch/riscv/traps.c
>> @@ -169,6 +169,11 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
>>       die();
>>   }
>>   
>> +static void check_for_pcpu_work(void)
>> +{
>> +    vcpu_sync_interrupts(current);
>> +}
> Is this really a helpful wrapper? Or is there going to be more stuff in here
> later on?

Yes, as you noticed in the further patches vcpu_sync_interrupts() won't be the only one
stuff to be called in it.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 09:40:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 09:40:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228578.1534725 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTAr-0005Q8-Ho; Thu, 12 Feb 2026 09:39:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228578.1534725; Thu, 12 Feb 2026 09:39: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 1vqTAr-0005Q1-F0; Thu, 12 Feb 2026 09:39:49 +0000
Received: by outflank-mailman (input) for mailman id 1228578;
 Thu, 12 Feb 2026 09:39: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqTAq-0005Pv-AS
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 09:39: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 c478b830-07f6-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 10:39:46 +0100 (CET)
Received: by mail-ed1-x535.google.com with SMTP id
 4fb4d7f45d1cf-6581234d208so10591802a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 01:39:46 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65a3cf50e38sm1526324a12.33.2026.02.12.01.39.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 01:39:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c478b830-07f6-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770889186; x=1771493986; 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=apUhlxAvd4x8zuB7ub7Bs0AjAqJPi31qMLk+fS6Pepk=;
        b=QTj5QUA4rIpVzVqaNTHwL3Zk7g7oqlj8To1eQMnh7fy23DuhsCQXS0N+PDFtjLQJLr
         TGaYaFpLauOB/OyxKvdmHVRq3ulcDUvKJr8JA9eLJ7wM1zOEtDf30u8cmA3JYjeDU6x0
         t6b0pOhe4Go11N/Tl/2OVIjgsaotpz1qC7YrJF15C+G6a3yezW1b4TtjaaIzQMXGX5ly
         M92Fl6n+oGZrZgUENqJo5SNiHg4AwRlAn2P8xqKIEbRxhxGgcuJfZFxSabZfWvVHS6AW
         IbGDn18VSvvU3WVhxjwJMMTnQ9sfjZdIlvyEoJgB8UwRkvydraUNRh3s27SoSiqIRYmP
         rRGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770889186; x=1771493986;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=apUhlxAvd4x8zuB7ub7Bs0AjAqJPi31qMLk+fS6Pepk=;
        b=nTqUlkuWMqnZKMldXgVoDEO1s8OE5gjbbeyIeFEVyYophpJHD8DkxT+/arYA8ByLzk
         clmrqaHd6TX0m98pXh1f4lqY3T1k2XAoRQ6fJpajabj2/LoGzs2eCwJZ4CR6ALrlJgWd
         iHeKs6x4ntoWEHOqAtW4aDBJD/xykCGxauJkliZqVBShr7J2OhSitQVutcZ3xzQ6z6/k
         ptoN+TVoU9mVmK7xogwZUEjx/opC3nvgHIh0UDgdvXnCUQC4ZOLMpONh4EwjbkZAX5bC
         B+PhAubujJ5qDvK2W7maY0N0mq3Po0GcLjNN9Q2wBisBnYdwbG42NhCsj6Nvldx7ZWRC
         L7ag==
X-Forwarded-Encrypted: i=1; AJvYcCVCNHnPe2DUdW9SpIkIyXr2MwzchBAXxZfl36wRAKjbLqum/jFZMuxzAJo2Kc80o8f7bM02fQ0aDkM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy2Jtw1HGP5M7t54X855LD9U9i1EKWiJ1XZ1ufFZ0yiEVsAPIuG
	9VuoWUjhAdBZ/RAmP31yNLaTjIP2oYt7jQ2e970fPBqYhnFq6IS788vo
X-Gm-Gg: AZuq6aKLXojCNxrpjyoyiazHMixqtGhlNDJW5I+p4b4stRKUw20CrPAZFhzqX/smiOI
	E8AWXh+Awt7pwoXg46cLfcR2J3VRTB35yQs1w2ckiNoXuLWMjLJYIQ7wkHSBvXUi3wNP+o84PEo
	YxpIJH4WfopHEwxiOi3lSrh6Owqg8btTHFv72kk80y52CXmTF6bYWtZnr1cBIDg6vo2w9ICfvZ8
	pNTqoy431gzQ1RT/sATSiBgky+l7htmHXcsr0i1JtLIcxfmh4/JOaoj1Y4RSJuHwMshAzMAMI4+
	el1mpGEn2OO1OAj/LPWkTImcv4KFbzBNgqkp2NXAp8cPtjlBFvx/rgAc3iLeDIR+MtEMN/kP7gH
	LBapB6uMnxw9/nboTkjV9HFPK7SSf2N/3LUwqVdI/AFFEULpqXRdpGRDuQzd4u3jtfGypultDkZ
	LL2pWcRMhjy1ZDU0j2n8PVCczq+b0eq67do/yO1PW5S7Wn/8O+5V0/lZj0VdpZwVDy985IV8Iuz
	5mEwe+N2tPTf+IQlg==
X-Received: by 2002:a05:6402:50ca:b0:64c:e9b6:14d7 with SMTP id 4fb4d7f45d1cf-65b96def65bmr1176917a12.24.1770889185818;
        Thu, 12 Feb 2026 01:39:45 -0800 (PST)
Message-ID: <972837f3-fa50-4ec8-ac4f-4b6edabb42bf@gmail.com>
Date: Thu, 12 Feb 2026 10:39:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: move vCPU exec state barriers
To: Jan Beulich <jbeulich@suse.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>, Juergen Gross <jgross@suse.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
 <1beb7c04-5c21-4ba2-a74e-467f659224e5@gmail.com>
 <436bb64f-39d9-4b01-9f50-7a734f3e6764@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <436bb64f-39d9-4b01-9f50-7a734f3e6764@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/6/26 4:02 PM, Jan Beulich wrote:
> On 06.02.2026 13:57, Oleksii Kurochko wrote:
>> On 2/5/26 12:33 PM, Jan Beulich wrote:
>>> The barrier in vcpu_context_saved() is specifically about the clearing of
>>> ->is_running. It isn't needed when we don't clear the flag.
>>>
>>> Furthermore, one side of the barrier being in common code, the other would
>>> better be, too. This way, all architectures are covered (beyond any
>>> specific needs they may have).
>> Don't we want then move ...
>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> --- a/xen/arch/arm/domain.c
>>> +++ b/xen/arch/arm/domain.c
>>> @@ -333,17 +333,7 @@ void sync_local_execstate(void)
>>>    
>>>    void sync_vcpu_execstate(struct vcpu *v)
>>>    {
>>> -    /*
>>> -     * We don't support lazy switching.
>>> -     *
>>> -     * However the context may have been saved from a remote pCPU so we
>>> -     * need a barrier to ensure it is observed before continuing.
>>> -     *
>>> -     * Per vcpu_context_saved(), the context can be observed when
>>> -     * v->is_running is false (the caller should check it before calling
>>> -     * this function).
>>> -     */
>>> -    smp_rmb();
>>> +    /* Nothing to do -- no lazy switching */
>>>    }
>> ... to common code with ability to re-define sync_vcpu_execstate() by arch
>> as only x86 does something inside this function?
> Indeed this was considered already, as a possible next step.

Oh, I missed that you wrote that in Arm-connected patch. Sorry for the noise
then.

Then this patch looks good to me:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 09:54:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 09:54:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228593.1534735 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTP9-0008Ke-Nc; Thu, 12 Feb 2026 09:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228593.1534735; Thu, 12 Feb 2026 09:54: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 1vqTP9-0008KX-Kw; Thu, 12 Feb 2026 09:54:35 +0000
Received: by outflank-mailman (input) for mailman id 1228593;
 Thu, 12 Feb 2026 09: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=lKKS=AQ=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vqTP7-0008KQ-UE
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 09:54:33 +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 d3fbcfd0-07f8-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 10:54:31 +0100 (CET)
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 ED0A43E715;
 Thu, 12 Feb 2026 09:54:30 +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 C0AC13EA62;
 Thu, 12 Feb 2026 09:54:30 +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 /jLiLVajjWmdfwAAD6G6ig
 (envelope-from <jgross@suse.com>); Thu, 12 Feb 2026 09: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: d3fbcfd0-07f8-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770890071; 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=LxtsReFboMwCCMbjgL/hhFV3riAXKanj5BA7Uy+zhpg=;
	b=OOr0cC+XJGEuuIfgEy5BMDZ6STxBtSoworJyUPlmRlmjRGcPRxrFzGdIDG0I+trzSJbwbJ
	DofxZZLrmZDgdJVX7jruqpymOB7eS1q30vFOdgJ+EH9AwIanOKTHgITa50TlQh7lU4nCL4
	rNOPD42yLkPRNi/27DwYSJpV0Wb4M5M=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=gvaVZe6t
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1770890070; 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=LxtsReFboMwCCMbjgL/hhFV3riAXKanj5BA7Uy+zhpg=;
	b=gvaVZe6tODZ2wr19weMpOjL3cUzDZPhSg+4Dw2HqKQ72yLXSTYScpmH9VGYqon8TMff13q
	u8rZ7qv+wBf4R36Y66bARP9gQLY6pNWWCj7KvUxe3llJ8ui67yVaJUrGgvy3JEDf/+DTnJ
	AxN0ja5a8HsbSnRT4jr5rcGqF2jtYd8=
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 live update
Date: Thu, 12 Feb 2026 10:54:27 +0100
Message-ID: <20260212095427.143177-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	TO_DN_SOME(0.00)[];
	MIME_TRACE(0.00)[0:+];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	URIBL_BLOCKED(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns,suse.com:mid,suse.com:dkim,suse.com:email];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from,2a07:de40:b281:106:10:150:64:167:received];
	FROM_EQ_ENVFROM(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:dkim,suse.com:email,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Rspamd-Queue-Id: ED0A43E715
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spam-Level: 

Commit e5b0a940557 ("tools/xenstored: Auto-introduce domains") broke
xenstored live update, as init_domains() will be skipped when live
update is detected to have happened. This will leave priv_domid and
store_domid set as invalid.

Fix that by calling init_domains() in live update case, too. In case
of live update skip introducing any found domains, as this will be done
when reading the live update state.

Fixes: e5b0a940557 ("tools/xenstored: Auto-introduce domains")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 tools/xenstored/core.c   |  3 ++-
 tools/xenstored/domain.c | 20 +++++++++++++-------
 tools/xenstored/domain.h |  2 +-
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/tools/xenstored/core.c b/tools/xenstored/core.c
index 64c478a801..d509736c32 100644
--- a/tools/xenstored/core.c
+++ b/tools/xenstored/core.c
@@ -2763,7 +2763,7 @@ int main(int argc, char *argv[])
 	/* Listen to hypervisor. */
 	if (!live_update) {
 		domain_init(-1);
-		init_domains();
+		init_domains(false);
 	}
 
 	/* redirect to /dev/null now we're ready to accept connections */
@@ -3109,6 +3109,7 @@ void read_state_global(const void *ctx, const void *state)
 	set_socket_fd(glb->socket_fd);
 
 	domain_init(glb->evtchn_fd);
+	init_domains(true);
 }
 
 static void add_buffered_data(struct buffered_data *bdata,
diff --git a/tools/xenstored/domain.c b/tools/xenstored/domain.c
index 10ac1c1a8f..e453b3061f 100644
--- a/tools/xenstored/domain.c
+++ b/tools/xenstored/domain.c
@@ -1344,7 +1344,7 @@ static bool init_domain(unsigned int domid)
 
 	return true;
 }
-void init_domains(void)
+void init_domains(bool live_update)
 {
 	unsigned int *domids = NULL;
 	unsigned int nr_domids = 0;
@@ -1356,12 +1356,15 @@ void init_domains(void)
 
 	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 (!live_update) {
+			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) {
 			/*
@@ -1397,6 +1400,9 @@ void init_domains(void)
 	snprintf(store_domain_path, sizeof(store_domain_path),
 		 "/local/domain/%u", store_domid);
 
+	if (live_update)
+		return;
+
 	/*
 	 * Privileged domid must be first to setup structures for firing the
 	 * special watches.
diff --git a/tools/xenstored/domain.h b/tools/xenstored/domain.h
index 3b1fce74cf..28186ccac0 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 init_domains(void);
+void init_domains(bool live_update);
 void stubdom_init(bool live_update);
 void domain_deinit(void);
 void ignore_connection(struct connection *conn, unsigned int err);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 10:00:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 10:00:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228608.1534745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTV2-0001o2-E3; Thu, 12 Feb 2026 10:00:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228608.1534745; Thu, 12 Feb 2026 10: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 1vqTV2-0001nv-BF; Thu, 12 Feb 2026 10:00:40 +0000
Received: by outflank-mailman (input) for mailman id 1228608;
 Thu, 12 Feb 2026 10:00: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 1vqTV1-0001np-Gj
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 10:00: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 1vqTV0-00582X-0d;
 Thu, 12 Feb 2026 10:00:38 +0000
Received: from [2a02:8012:3a1:0:d806:4714:c0a1:503]
 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 1vqTUz-004Zzw-1p;
 Thu, 12 Feb 2026 10:00: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=LAraM9FbaqgpzVLu/F2xQuDHOm+Kipv9M4WRzVzuWL0=; b=jUVqgnCDl06dM6joor4HOpFwQ0
	25guDIgnWY40UUtuiFMBIaUXfQvPkMSu7vyV+1VR2Ha1N/kTgpGNaSVWEM65jHCyoO5s3Yskmec/N
	I9KHfjkp+txJk7tZf2HpHtS9OJuds5ITbHJ218reJHTghUf49z0UA/eaFw2Uwn/bYEsM=;
Message-ID: <eacaca01-e43c-4ee0-8c7c-8225ff98f59a@xen.org>
Date: Thu, 12 Feb 2026 10:00:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] sched: move vCPU exec state barriers
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>, Juergen Gross <jgross@suse.com>,
 Dario Faggioli <dfaggioli@suse.com>, George Dunlap <gwd@xenproject.org>
References: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <1e2df446-b116-4861-a396-b87895a96c67@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Jan,

On 05/02/2026 11:33, Jan Beulich wrote:
> The barrier in vcpu_context_saved() is specifically about the clearing of
> ->is_running. It isn't needed when we don't clear the flag.
> 
> Furthermore, one side of the barrier being in common code, the other would
> better be, too. This way, all architectures are covered (beyond any
> specific needs they may have).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Julien Grall <julien@xen.org>

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 10:03:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 10:03:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228616.1534755 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTXv-0002Kj-RT; Thu, 12 Feb 2026 10:03:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228616.1534755; Thu, 12 Feb 2026 10:03: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 1vqTXv-0002Kc-Ob; Thu, 12 Feb 2026 10:03:39 +0000
Received: by outflank-mailman (input) for mailman id 1228616;
 Thu, 12 Feb 2026 10:03: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+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqTXu-0002KV-9r
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 10:03:38 +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 189936f4-07fa-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 11:03:36 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4806cc07ce7so29136185e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 02:03:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7e50casm178976155e9.8.2026.02.12.02.03.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 02:03:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 189936f4-07fa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770890616; x=1771495416; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MRrpqk0bOHKc46TE0OkHA5qgeh7iecJtY+B0HOhlW1A=;
        b=C+ll9VeciQ/o7nun1KDY9jTCnBCp8UPQyNyTnlaEntoE3AUsM1CGaVqlPe1PFt1x/o
         8CBLS2pnzkr3ir0sqtBpWJUCm6S1SVYu893aHCTFfdwhsPFQNMSqsahmLF9qAmzz9e/B
         pjTSDvvfDzYnpmVYtjVWjEJb6VWmV/TUS0F4r/Qps4Ff7aE8w9xPZfVi1AMCC7bw0fAH
         xE9UL64+DJ9pkqjhR505KJEUYJXDceXf62/+e70gTXFdAUQ6De3yo6QQKPAlO+K8A9CF
         E6WzseEAbdle/nYUg0GN7NddqRIDm6w/m8YRSpzrgauE/9k6Rdx2MgFzXSKOyZwx5fvL
         tw8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770890616; x=1771495416;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MRrpqk0bOHKc46TE0OkHA5qgeh7iecJtY+B0HOhlW1A=;
        b=eg8gWPqqGAfDB0WQV4Wo6j93ISB5bacdbTwJqczqM13Its9/0pAdWxwTBhGYFh/M6+
         Z5HqZLsIQWEtZ//IfMn5OYC6qVjRvBY1VQvc8Sn654cegGslQmuBd+HhW7u7hsCgMOs0
         7XiDeIc5tQqqrbJXnowd5OzFn8boDnKpRBbUy3T3z5XajCtlIKOeFEBa+wb4KZ9wR+3P
         zKUqOM0zRMYKN6SHw2rAClhIlQhCnvFElr3FW2PFrk3gsHqKdvD19GFkhR57SQKP+k5x
         GlUKxcH2retITQ+Qy0ovUgOjb7GbQsoRG0kTR8KL/qGsgeNOaGpIGfAQF3zzgYEyTpSR
         tghg==
X-Forwarded-Encrypted: i=1; AJvYcCVRm7+TnChxm6krXO8KK3yfJZWMcj8Qy5Ei8Is7T6G7XAeeOu5omkDSa7OqNw6G6b0Vy/MC4nojqPw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxJEmpLHKHABp5JZ/luOda2NXmgTTAiKccUoqLjXrJssyzysTrL
	obDr4Qjvd5HAvdRM/5+0pZkaQuZ5wO9un2z2CrIQ4Z+8UyIch3MrO94WQxFg9+yxcA==
X-Gm-Gg: AZuq6aKzDdFgfb8NDmbotgBZxFrCSxbmBp9XwbmzDaVVUb0woWvg+nnt7P0gMmf+6Z6
	qgM5mrArWJCvir9a7zVsm31Sw0NHz46kZnYMZ5uW2pSZhEOrvvyBFs9+3IWquLiCGKGcUzTCnjN
	haINd+LEjnSMWHee/0/JIBTntAgajhVFHXKHCh8SSqG58wgUgC2wBI2Ldx55w7avEjf974IflcI
	XK6jBi+/8BpxGgf7RamfypzgSlQTPlGSQl+JS0+G5y/xNQn+DojTmc93NwBd2M2zkAJslVMp1iS
	AyzQOfcs+6cWf1IRN5EGgyKqZPllvtQ4wos+o2x6LD5mtEbLCdneve9ZkseuqP0275uZz09HxRG
	gehg/8knH5zzqFHOfj7oxr4t12Ucv4Cv+12fOU73+t8nn1qRuS92f5XLydbiC2Z8k55QhNdkPsK
	r+9I6RlzD1iwfn7G5qGhNFhm5W7Ccawt7AZCnIt3KWSzpMGgw2tok8ATealPCz3aKK9eHBqBodp
	FlV04oCU6p993Y=
X-Received: by 2002:a05:600c:3b12:b0:477:9814:6882 with SMTP id 5b1f17b1804b1-483670fac0fmr22352875e9.5.1770890615552;
        Thu, 12 Feb 2026 02:03:35 -0800 (PST)
Message-ID: <f0f6b292-1f8f-4991-a76f-fd4a1359199e@suse.com>
Date: Thu, 12 Feb 2026 11:03:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] xen/riscv: add support for local guest TLB flush
 using HFENCE.VVMA
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <af269cb7b5c03f0661982d41d3d7f1ddde761eeb.1770739000.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: <af269cb7b5c03f0661982d41d3d7f1ddde761eeb.1770739000.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 10.02.2026 17:36, Oleksii Kurochko wrote:
> Introduce flush_tlb_guest_local() to perform a local TLB flush of the guest's
> address space for the current hart. This leverages the RISC-V HFENCE.VVMA
> instruction, which is used to invalidate translations in the VS-stage of
> address translation.
> 
> As for RISC-V binutils >= 2.39 is choosen, we can use hfence.vvma mnemonics
> instead of defining hfence.vvma using .insn.
> 
> Although it would be possible to use sbi_remote_hfence_vvma() for this purpose,
> it is unnecessary in this context since the flush is required only on the
> local hart. Using the SBI call would introduce additional overhead without
> benefit, resulting in unnecessary performance loss.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 10:17:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 10:17:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228634.1534765 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTkl-0004HZ-Vk; Thu, 12 Feb 2026 10:16:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228634.1534765; Thu, 12 Feb 2026 10:16: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 1vqTkl-0004HS-T9; Thu, 12 Feb 2026 10:16:55 +0000
Received: by outflank-mailman (input) for mailman id 1228634;
 Thu, 12 Feb 2026 10:16: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqTkk-0004HM-Rg
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 10:16:54 +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 f3d65157-07fb-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 11:16:53 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4801eb2c0a5so73668675e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 02:16:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4836e39045asm975515e9.9.2026.02.12.02.16.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 02:16:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f3d65157-07fb-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770891413; x=1771496213; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cz+gS7ZUxNvzf0vV8oCfJuohUBZImTA4b86eHwj3jnI=;
        b=TpByGYNGmHSvtkzs6jP4DS2PmA3ga3S/qZWIMiqUg5ltGZr+VKiT2JbuCjuRRDpC5j
         EoVo7Ge2sk+OITkem9M29NY9WQhJ8SLSHS5uwc2YkiRyCwWUu5nD9WXo4xgbbT26/aTB
         VmaiIRvBCmsZPgx4NNFjmMzaji4WR3Hy4GmEL7/6fXUN/H+1bvi7mU4KE2kU9BDuonW8
         okSA5Hk4tLAs9V/R7dLOHay+A5SPm2Ih1XSLIe6z/Alr9mwkpSpFDwuWu97HSeE+QvJc
         rySu0/R6qaKikXOBzV++LIezIrZveU/H7ww6OSmak6ye0riJi9Hrn3+T5MSDqOL7TpDD
         p8UQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770891413; x=1771496213;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cz+gS7ZUxNvzf0vV8oCfJuohUBZImTA4b86eHwj3jnI=;
        b=Kyyr9Qwlag0m+8l4W1ZqUU3kL8fpI24BO6qvNKce9Nvde+DIAmjtjeMpaPOqWXuzfb
         dEAuPw/DEIp7EShO7GyjO8dibUldsWseFebBqKZVBXrxyVBryZGARjKQJB5TBjlxXF8v
         BhGEP6d2Yrdkx9VRm9fU4fBpKtoOELUHcwijK8K+/VWUg1yh3fAk2sk/tYUlqG1GOzzo
         vrtxMGvactqYnt9KRXKnFu7LvxrGxJDkzvCZ/pXHr51GZqS1UkWwoHgHaYqaG0Ct6xLK
         Hez6GVX1nTGaTbfkasAg8XYRhSgAGcDXtaiIZG26xZCsa4H/AvRJLUBLoAuduR0ML7Kz
         RZtA==
X-Forwarded-Encrypted: i=1; AJvYcCXodUUxS9X/Ljr6nSKeARtCWRG2W2owCy6vUtKughhfvZ/TWJARzq5gy41PrkWia833JfTvzcrob/E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzajXWeb8HqIqkz3lONR32D4CgLIr05UXT7pbu8Kcc9wE99D7vY
	YmMkeEHfmjqz6coTF2PHsqFM1jmxjFgKknLYhBYSKY7AuyKd4fgE0vm3Cd8t/UWQGA==
X-Gm-Gg: AZuq6aJnsG6CXA6h89cDYBBib2mK7mz7zrnd+1YqCuSot7nZMsPv3B1yUD7gRqULi0Y
	hePp89EFHu8IqAnCIoRNR1pfEiVY9vAW3uqhhGf62+16gGvM0No5D1IqMgfC/u2HpeJU+W+H/UL
	wY9+fmKUsjXIngjLMNQ0rCoEQgtd+LjzPe73hevzq8qYvyyP8Mvu8TltvmOvlbHY4fc3WP7D3OC
	CnflVK8lhPMGQpo/FREpPm2lvfyz8JJ4c0TFnELC4lEqO8ozBnLleo0/3IXqFSEUk9LN95MSVpV
	Sgy4b8Zl+hIT1EMSAoYN73VHINg//KNxu5WmXuLnPkg3FVSBBxUcmbwTvWg5JTzD5iNwupllQve
	ojA0OP1J7BBGce80sG2bkD9hoFVldfqoVHszKaz4oEOYidNz7Cq4oQ8MYoIJYp/ljUeMxTRJ0Mf
	2y+gjGowUZjqdE05B4J3B1FH1+tAKX9vlf26XmDpMmxZ0I/W1iJAJPPVef1qqMnYAwmfFmX/m0v
	r1YLW/8c+64Ra8=
X-Received: by 2002:a05:600c:4ecf:b0:47d:6856:9bd9 with SMTP id 5b1f17b1804b1-4836570d0camr28457715e9.23.1770891412814;
        Thu, 12 Feb 2026 02:16:52 -0800 (PST)
Message-ID: <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
Date: Thu, 12 Feb 2026 11:16:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for
 VSATP and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.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: <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 10.02.2026 17:36, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>  
>      return get_page(page, p2m->domain) ? page : NULL;
>  }
> +
> +void p2m_ctxt_switch_from(struct vcpu *p)
> +{
> +    if ( is_idle_vcpu(p) )
> +        return;
> +
> +    /*
> +     * 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 what will be done in
> +     * p2m_handle_vmenter().
> +     */
> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
> +
> +    /*
> +     * Nothing to do with HGATP as it is constructed each time when
> +     * p2m_handle_vmenter() is called.
> +     */
> +}
> +
> +void p2m_ctxt_switch_to(struct vcpu *n)
> +{
> +    if ( is_idle_vcpu(n) )
> +        return;
> +
> +    n->domain->arch.p2m.is_ctxt_switch_finished = false;

How can the context switch of a vCPU affect domain-wide state?

> +    /*
> +     * Nothing to do with HGATP or VSATP, they will be set in
> +     * p2_handle_vmenter()
> +     */

Why can this not be done here?

> +}
> +
> +void p2m_handle_vmenter(void)
> +{
> +    struct p2m_domain *p2m = &current->domain->arch.p2m;

To save yourself (or others) future work, please never open-code p2m_get_hostp2m()
(applies further up as well, as I notice only now).

> +    struct vcpu_vmid *p_vmid = &current->arch.vmid;
> +    uint16_t old_vmid, new_vmid;
> +    bool need_flush;
> +    register_t vsatp_old = 0;
> +
> +    BUG_ON(is_idle_vcpu(current));

This is the 3rd use of current - latch into a local variable?

> +    /*
> +     * 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
> +     *
> +     * CSR_VSATP is already set to 0 in p2m_ctxt_switch_from() in the
> +     * case when n->arch.is_p2m_switch_finished = false. Also, there is
> +     * BUG_ON() below to verify that.
> +     */
> +    if ( p2m->is_ctxt_switch_finished )
> +        vsatp_old = csr_swap(CSR_VSATP, 0);

This shouldn't be needed when ...

> +    old_vmid = p_vmid->vmid;
> +    need_flush = vmid_handle_vmenter(p_vmid);
> +    new_vmid = p_vmid->vmid;

... the VMID doesn't change. Imo you want to drop is_ctxt_switch_finished
again, handle things normally in p2m_ctxt_switch_to(), and deal with merely
a changing VMID here.

> +#ifdef P2M_DEBUG
> +    printk("%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
> +           current, old_vmid, new_vmid, need_flush);
> +#endif
> +
> +    csr_write(CSR_HGATP, construct_hgatp(p2m_get_hostp2m(current->domain),
> +              new_vmid));

Bad indentation - new_vmid isn't an argument to csr_write().

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 10:19:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 10:19:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228643.1534776 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTnM-00051g-Bx; Thu, 12 Feb 2026 10:19:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228643.1534776; Thu, 12 Feb 2026 10:19:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTnM-00051Z-8r; Thu, 12 Feb 2026 10:19:36 +0000
Received: by outflank-mailman (input) for mailman id 1228643;
 Thu, 12 Feb 2026 10:19: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=dPsv=AQ=bounce.vates.tech=bounce-md_30504962.698da927.v1-4effd200d4e64029b1b1b96a0c77e9ae@srs-se1.protection.inumbo.net>)
 id 1vqTnK-00051S-9u
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 10:19:34 +0000
Received: from mail132-5.atl131.mandrillapp.com
 (mail132-5.atl131.mandrillapp.com [198.2.132.5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4b9d01d7-07fc-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 11:19:21 +0100 (CET)
Received: from pmta09.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail132-5.atl131.mandrillapp.com (Mailchimp) with ESMTP id
 4fBWVv5fM0zG0CJtv
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 10:19:19 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 4effd200d4e64029b1b1b96a0c77e9ae; Thu, 12 Feb 2026 10:19: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: 4b9d01d7-07fc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770891559; x=1771161559;
	bh=OAK8E+uWN2N6eP/o8FIa5Egn7ZKGqrRAkCdePJxkJlI=;
	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=ADsUKPBkIfXpf/LA5yCiBF4HUMSBwajPGyV2MT2scwTsH0oXRz/H4pvKuJLK2HQqD
	 xPyOLsfhS30eoeZefs588ENSXvIe3318CSn0mXKSxkKU9ZM5TnsxN0EsRgL/10h6CV
	 xGlOrDYgn35miWW39PnPCFYcIaO89YikZtRoyx18hLmYH4XbVycZJlXTnZaOaHbZ0X
	 U5Aw8a1rra8iVKyiKeMiEw+XxS1hP+ViRLkB1smoJ6z60IX+ryOdlfqr1ZfnLEhvDm
	 sEP8n5meQP4tpz+oc1UG3rXPehlczVoLAmhQU2SOWukZ8in1q54r8n35lNfQ70HDDk
	 SMe94Qjbym/Gg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770891559; x=1771152059; i=teddy.astie@vates.tech;
	bh=OAK8E+uWN2N6eP/o8FIa5Egn7ZKGqrRAkCdePJxkJlI=;
	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=FCqv1SxF5ebM52kJDAlHNcNFDTjYDS0cIUkXN9BdQ5nhHybjyj5ZVSYiF4tLX30yx
	 N6/IH8vvWJFW9azBBJbwJHyoaiPtd1de+M329LSb4tT207kBUoXxEGhszJteZJgBJO
	 sFma/bJ99ey8SC2E6pCVK5cxT9XMaTzAIdrCRBgD8c0kcb3MR/ThdKzeGA6nU2SI50
	 XyCb1CsmadTyV6HkXML4vasnNggl7O3W7JlYwuGQ/gjl2WqmCsBUk9pX2y8ZLyZYYf
	 rIkk/lx4cX4jkMWADQ8bB/qL6i9uh5xGvwbteH6IgQxW/omsX6GdD75uGFKP8bXP/V
	 i5X7+l1zAgBEg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v6]=20xenpm:=20Add=20get-intel-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770891558847
Message-Id: <f2a9028f-6bc6-40f8-a9ef-26800c9e4c59@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <489a4decf4367a9983a63fb4987d8c5f6267ed9f.1770632848.git.teddy.astie@vates.tech> <7064136b-38f1-4bbe-9ff4-14774c88f016@suse.com>
In-Reply-To: <7064136b-38f1-4bbe-9ff4-14774c88f016@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.4effd200d4e64029b1b1b96a0c77e9ae?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260212:md
Date: Thu, 12 Feb 2026 10:19:19 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 09/02/2026 =C3=A0 15:21, Jan Beulich a =C3=A9crit=C2=A0:
> On 09.02.2026 11:31, Teddy Astie wrote:
>> @@ -93,6 +96,7 @@ void show_help(void)
>>               "                                           units default =
to \"us\" if unspecified.\n"
>>               "                                           truncates un-r=
epresentable values.\n"
>>               "                                           0 lets the har=
dware decide.\n"
>> +            " get-intel-temp        [cpuid]       get Intel CPU tempera=
ture of <cpuid> or all\n"
> 
> Sorry, thinking about it only now: Do we really want to build in the vend=
or
> name to a command? "get-temp" would allow for adding an AMD implementatio=
n
> later on?
> 

AMD CPUs expose a PCI device that can be interacted with to get 
temperatures; which is then exposed in hwmon interface of Linux. That 
wouldn't be practical to implement hwmon interfaces in xenpm.

>> @@ -1354,6 +1358,131 @@ void enable_turbo_mode(int argc, char *argv[])
>>                   errno, strerror(errno));
>>   }
>>   
>> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package=
, int *temp)
>> +{
>> +    xc_resource_entry_t entries[] =3D {
>> +        { .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_=
STATUS },
>> +        { .idx =3D MSR_TEMPERATURE_TARGET },
>> +    };
>> +    struct xc_resource_op ops =3D {
>> +        .cpu =3D cpu,
>> +        .entries =3D entries,
>> +        .nr_entries =3D ARRAY_SIZE(entries),
>> +    };
>> +    int tjmax;
>> +
>> +    int ret =3D xc_resource_op(xch, 1, &ops);
>> +
>> +    switch ( ret )
>> +    {
>> +    case -1:
>> +        /* xc_resource_op returns -1 in out of memory scenarios */
>> +        errno =3D -ENOMEM;
> 
> And xc_resource_op() doesn't itself set / inherit a properly set errno?
> We don't want to override what the C library may have set.
> 

I'm not sure what to do then. I guess we want to reset errno before 
entering xc_resource_op (so we won't report stale errno), but we would 
still need to consider cases where xc_resource_op returns failure 
without errno having being set ?

>> +        return -1;
>> +
>> +    case 0:
>> +        /* This CPU isn't online or can't query this MSR */
>> +        errno =3D -ENODATA;
>> +        return -1;
> 
> Here we "synthesize" an error, so errno indeed needs setting. However,
> doesn't errno want setting to positive E... values?
> 

Ah right, I overlooked that

>> +    case 1:
>> +    {
>> +        /*
>> +         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it=
's 100
>> +         * which is correct aside a few selected Atom CPUs. Check Linux
>> +         * kernel's coretemp.c for more information.
>> +         */
>> +        static bool has_reported_once =3D false;
>> +
>> +        if ( !has_reported_once )
>> +        {
>> +            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, a=
ssume "
>> +                            "tjmax =3D 100, readings may be incorrect.\=
n");
>> +            has_reported_once =3D true;
>> +        }
>> +
>> +        tjmax =3D 100;
>> +        break;
>> +    }
>> +
>> +    case 2:
>> +        tjmax =3D (entries[1].val >> 16) & 0xff;
>> +        break;
>> +
>> +    default:
>> +        if ( ret > 0 )
>> +        {
>> +            fprintf(stderr, "Got unexpected xc_resource_op return value=
: %d", ret);
>> +            errno =3D -EINVAL;
>> +        }
>> +        else
>> +            errno =3D ret;
> 
> Why would this be? How do you know "ret" holds a value suitable for putti=
ng
> in errno?
> 

Aside -1 in out of memory situations when xc_resource_op returns -1, in 
other failure cases, it returns a hypercall (e.g multicall_op) return 
code, which is supposed to match a errno.

But actually here, it would want to be -ret (due to errno wanting to be 
positive, and ret being negative)

> 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 Feb 12 10:24:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 10:24:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228653.1534785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTrn-0006Wk-Ro; Thu, 12 Feb 2026 10:24:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228653.1534785; Thu, 12 Feb 2026 10: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 1vqTrn-0006Wd-Ot; Thu, 12 Feb 2026 10:24:11 +0000
Received: by outflank-mailman (input) for mailman id 1228653;
 Thu, 12 Feb 2026 10:24: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqTrl-0006WV-OU
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 10:24:09 +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 f6deba8d-07fc-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 11:24:08 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso25941995e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 02:24:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4836cd7af87sm16973005e9.1.2026.02.12.02.24.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 02:24:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6deba8d-07fc-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770891847; x=1771496647; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=e04RPgEbBdiebFGDneJyTDWrjfgBLMwlPZQ6/CCKWmw=;
        b=VIV7F4tLuy4kt925xb6pf6OriBu4ZQa7JxJp6hXHcqKNkWm4nb5qJmzyINVGHiJFP/
         49huFlfhblxcYRzmDG3VvtawepJOSbAa6xQ3B/TSI6Ve3dDGD9dNIkeaY1na721hJpkP
         oFqw+iwi379WtlVo0g+xW75EeMU32C4QDhNzLh/z9eFy19UxDgEH1bnUI3xE4yyZOSqU
         TBqaOj+RdDRqHwd0ICm7II5PhQHvyw1fqJFLr3eYHAoiNip1GBrzEBXST5jK4Mz6Odzi
         W/AxtzI2VtP4Ca9IvOP+9L5IvJ7sXAGyokvb9J21be4YyKjPNxuKhWM7O3NVgjmrMMgP
         3/RA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770891847; x=1771496647;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e04RPgEbBdiebFGDneJyTDWrjfgBLMwlPZQ6/CCKWmw=;
        b=QOUVZ9AVY6qTgBQzAowb3c6kDyr06iJylSROOL2f2xpvFh39nyJ5iKFMr+4g7W97Da
         EL24JE/dsMHvjx2pcScefMzOuiSpDVI5qj81wQTZfcOqqhvyAwOhcVQHDLyz73qQgm30
         9OnHo8DA+kpZUAz/3dGKrIFAULjWZDcxdy9HrYqnWGYaZNHFLq08I1zkET8xLRrmCLCe
         vrAIL3exWW9NnH56CWVnhOIQawyVjtyOGTB1iDkcGN8ifPaeqyILQXVaG11szGKhHNRD
         UdebHARo+rnmpXjaeq74EzoaGndL7K0FeFJkuWR1eiCT1aOKv8g1jp6SLNXsxwO2v+Xx
         Pplw==
X-Forwarded-Encrypted: i=1; AJvYcCVwZQjCabGafHJN26hpAM/HCkAstGdPE3Aq2LFo/hvzOuLcUMmkxuz6pONCeWQXz3kY0i6YwlHTGh0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDFdyjPwJL8eP4qS7vZFeDrTefu+qKcxzFv/6EAsiX6cEexxKV
	jag6o/KbJdDsYzcN/4WFj+apo2EbWDFr6DIlDQRwiyYC7O4JuvL4n6jHtkXaDiEI+g==
X-Gm-Gg: AZuq6aL/DsEbk4oeul+VPImWZlozh9Sq64HnTY4K5O13uZTjSwpmHlCr2IXeLFZG0kR
	V/X+/7G7pmQgJys1nZzGNWFmqmjZmpRScmaOISdgOz9AbzlB9X/04ExxzzIZs60bPbJ/KgKcysf
	F4j6lSp0R0Di91JcK+V2UObGPt9t61iV3meD39ma1l6B4UzIG/tsKG+S1jR1ADRQjAZ+u5d72zz
	TEQGDeq3l5Y+c1Y36DESUs1f8D9uu6EuNYB7o5Oy4Ws6xwjZelcIPgQ2W6+w0ZNCEG5Ccn48Tnn
	R6svIbSih/ZKZEWtPA/5/frxf4ddi4Fdughd7wkzJpNMStz6KvlZd0qy8f92SQp2+5Zcf5Ke75P
	GWRHYiXNF/wUFdnJV/rFmMGhpnI3rnDBOzCamQQHslNLikf41kL9r1mhfZFRk9QlZoIpwHd56mV
	IraOr+yRkdZU0vURyMKXkJRZakcwmSDZ3lOGp9n914QjwkkGSZ5zGdLgx0L3pKcIAFZTF5nyjKv
	Y01Xtt5qQAZyRY=
X-Received: by 2002:a05:600c:c174:b0:483:3380:ca11 with SMTP id 5b1f17b1804b1-4836717eba9mr22623355e9.33.1770891847559;
        Thu, 12 Feb 2026 02:24:07 -0800 (PST)
Message-ID: <276d4b09-bf67-423e-b824-467405c5866d@suse.com>
Date: Thu, 12 Feb 2026 11:24:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <ced640968434a67c150eff90437f83d3b460a36c.1770650552.git.oleksii.kurochko@gmail.com>
 <d73424e2-84f4-497b-a1f4-f3eea5cdeeb3@suse.com>
 <f012a5f5-7526-4d41-b8eb-6f1208991b71@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: <f012a5f5-7526-4d41-b8eb-6f1208991b71@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 10:37, Oleksii Kurochko wrote:
> On 2/11/26 3:16 PM, Jan Beulich wrote:
>> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>>> Based on Linux kernel v6.16.0.
>>> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
>>> we want to guarantee that if a bit in irqs_pending_mask is obversable
>>> that the correspondent bit in irqs_pending is observable too.
>> And the counterpart of this barrier is the one encoded implicitly in
>> xchg()? Could do with making more explicit, e.g. by way of adding a
>> code comment there.
> 
> I thought it would be clear from the paragraph below where xchng_acquire()
> is mentioned. I'll update the comment to make it more explicit.

I'm confused. The (bogus) mentioning of xchg_acquire() is in the patch
description, whereas I suggested a code comment.

>>> @@ -124,3 +125,72 @@ void arch_vcpu_destroy(struct vcpu *v)
>>>   {
>>>       vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info) - STACK_SIZE);
>>>   }
>>> +
>>> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
>>> +{
>>> +    /*
>>> +     * We only allow VS-mode software, timer, and external
>>> +     * interrupts when irq is one of the local interrupts
>>> +     * defined by RISC-V privilege specification.
>>> +     */
>> What is "when irq is one ..." intended to be telling me? There's no ...
>>
>>> +    if ( irq != IRQ_VS_SOFT &&
>>> +         irq != IRQ_VS_TIMER &&
>>> +         irq != IRQ_VS_EXT )
>>> +        return -EINVAL;
>> ... corresponding code (anymore), afaict.
> 
> That part should be removed, there is no any sense for it anymore.
> 
>> Further, who are the prospected callers of this function and its sibling
>> below? If they're all internal (i.e. not reachable via hypercalls or
>> emulation on behalf of the guest), this may want to be assertions.
> 
> Considering your further reply:
>    Having seen a use in patch 08, I should clarify the "reachable" part here:
>    It's not the "reachable" alone, but whether the guest has control over the
>    "irq" value passed. For the example in patch 08 this isn't the case.
> 
> I think I did not fully understand the part about “the guest has control over
> the ‘irq’ value passed”, but at the moment I do not have any plans for the guest
> to pass the irq value directly. (Do you have any examples where it should be
> needed?).

No, I don't. This is all for you to sort out.

>>> --- a/xen/arch/riscv/include/asm/domain.h
>>> +++ b/xen/arch/riscv/include/asm/domain.h
>>> @@ -54,6 +54,25 @@ struct arch_vcpu {
>>>       register_t henvcfg;
>>>       register_t hideleg;
>>>       register_t hstateen0;
>>> +    register_t hvip;
>>> +
>>> +    register_t vsie;
>>> +
>>> +    /*
>>> +     * VCPU interrupts
>>> +     *
>>> +     * We have a lockless approach for tracking pending VCPU interrupts
>>> +     * implemented using atomic bitops. The irqs_pending bitmap represent
>>> +     * pending interrupts whereas irqs_pending_mask represent bits changed
>>> +     * in irqs_pending. Our approach is modeled around multiple producer
>>> +     * and single consumer problem where the consumer is the VCPU itself.
>>> +     *
>>> +     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
>>> +     * on RV32 host.
>>> +     */
>>> +#define RISCV_VCPU_NR_IRQS 64
>> What is this 64 deriving from? IOW - can it be some kind of expression,
>> helping the reader?
> 
> Originally it derives from the width of mideleg, mie, mvien, mvip, and mip (and
> their counterpars for other modes) what means that RV32 will have no more then
> 32 local interrutps, but considering that RISC-V AIA spec tells ...:
> 
>    Table 2.1 lists both the CSRs added for machine level and existing machine-level
>    CSRs whose size is changed by the Advanced Interrupt Architecture. Existing CSRs
>    mie, mip, and mideleg are widended to 64 bits to support a total of 64 interrupt
>    causes.
>    For RV32, the high-half CSRs listed in the table allow access to the upper 32
>    bits of registers mideleg, mie, mvien, mvip, and mip. The Advanced Interrupt
>    Architecture requires that these high-half CSRs exist for RV32, but the bits they
>    access may all be merely read-only zeros.
> 
> ... that for RV32 it was widened to 64, so 64 appears here. I haven't used some AIA
> specific name for constant 64 as in case if AIA isn't used it is more then enough
> to cover PLIC case, for example.

Thing is that with RV128 in mind I wonder whether 64 is correct, or whether it
e.g. wants to be max(BITS_PER_LONG, 64).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 10:28:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 10:28:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228667.1534797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqTvx-0007KC-Gl; Thu, 12 Feb 2026 10:28:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228667.1534797; Thu, 12 Feb 2026 10: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 1vqTvx-0007K5-D9; Thu, 12 Feb 2026 10:28:29 +0000
Received: by outflank-mailman (input) for mailman id 1228667;
 Thu, 12 Feb 2026 10:28: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+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqTvw-0007Jw-L0
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 10:28: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 8ef45edb-07fd-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 11:28:23 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4801c2fae63so63824465e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 02:28:23 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835a62baa9sm41657895e9.4.2026.02.12.02.28.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 02:28:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ef45edb-07fd-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770892103; x=1771496903; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3FxlkjXuUjHfcIQiUMXxWlveiC5EBc+kN39xSwxCdVo=;
        b=V/bQ8MsMv/Zu0wNAtMLM5947KLT6yI+EqqZ0cTR3alQjvWdUWjz0NFtvOP72z2HChc
         ygGDHIwHUOGqJWcDvTtp8GvVoCdq3goV4qe3o2LVIr3R6WrYKOjWhWc+MibJ4Qg+tC+y
         D2ajDC0+8kfOFjp4ookymjiTaHUT/Ltt0WWIuRAHl030M32JsLRP53ZFizZ1E26sQtpL
         Nl7YrSbHjxfqWuMOwwpOmoB4S5j6+AIXfajTNiPFTSMxvh5R/3mn7r1DvZwIK+AlSZIU
         fL8n0SVprGjoXviZbefaFK2Cx62O1vlGbQlXMB3Up9jLHa+Itkm0XtvA54RiK7VDnGjM
         mcaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770892103; x=1771496903;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3FxlkjXuUjHfcIQiUMXxWlveiC5EBc+kN39xSwxCdVo=;
        b=b/sIjzTPCjKi3zXsYf+Ge5yK2kPYzKu9nIkMnh6WlBhD4q6vsLNsdnORqNZ4UlnI1N
         D15HLNxk4ZcAVCkMnnJpFpEa+RmuHwX9crg+rdlJ8vDuajYz5AvCOO6KN1HPj8FGz/0q
         VOIH3TiRo6Qc1OnY8/ULTU/Rz+d0xjqKtIMOP9B9JUgTbpVWfaV6rYJVi9w5GQT+PNcA
         x3KJOA4FWWl4VCH0AUuWWeo9zXicbHKTxvxSlecoPOyLx1EBEEvpO8enhp3osO7bUFAG
         1nMqT5c60PXUawiXxoIuBlrSRqwBmyO1Olcq4Ita32+y4sjBTTolGH2RgRmwyTAQMKfJ
         djSg==
X-Forwarded-Encrypted: i=1; AJvYcCWJ1BKLGUv0qa1yYO4GVCBN5pSOKZFeAIrGPWQk2044gx4ejfeTk/lLmstMFYSKnGtu0/XRY/0jQNo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBJuJ1oDDVII5bvodOAN9p6CJ8OAaNN4TwilGcfu7G/5lT2gmH
	W3SYyBp/EHAoJ31L8a4jZ5i/PqJ7Iz+t88nfhbNosnbAJVHg2hLO7m7MDpN2FH0YNw==
X-Gm-Gg: AZuq6aKVVMaeycOlpxmF5NibuGixQDE9+BxGg4Uut/kwm4eZznI/jLvcsnMlULg+Eb6
	V4DbE5JgsFQItp+/XO64ynWKPPplXQfFyXA8Ny6EbXi7bkoNJsgx/04KvWjUXSm6DuIfj0QtF26
	4+2aMFGCopoauSevMTHiJTD2MRHZN79yp6afOKZTPFs0pqt++dUyRo8EraykOzs/7ZLt2Jje8Qf
	RQz//Y9YBn8pbyhZ6EqERc66zsXwOljAg7GFGCr4WMbdzz+dFbKrvRRUhwNyV+LbXb3woJS1KNW
	TH9qDvLtGftFMDa/xycJi6HcNPuNazTkTk8q8hM0K0yIWn1zK9Gqe+G2mCtPgOoXCGkYpxZsp4R
	JpcOaFzazICbqAqaVZSg9+KBphkmunIJ2NITc6U0RaxzckgNatJeJlC9LyxB+1SERAqI5ciBbkO
	NLmOsMgB6jcyeyCEeSTo6uVNd25HiTjeslfYrTRmwSwHHWZvmabjBB0nBu/7L19t1lKwhi4/EpA
	CMwi4dYV+reTCA=
X-Received: by 2002:a05:600c:5294:b0:477:6d96:b3c8 with SMTP id 5b1f17b1804b1-4836570e316mr27255695e9.23.1770892102696;
        Thu, 12 Feb 2026 02:28:22 -0800 (PST)
Message-ID: <4553d4f8-89a9-4ef0-9b56-f3a04d8d7d67@suse.com>
Date: Thu, 12 Feb 2026 11:28:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v6] xenpm: Add get-intel-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <489a4decf4367a9983a63fb4987d8c5f6267ed9f.1770632848.git.teddy.astie@vates.tech>
 <7064136b-38f1-4bbe-9ff4-14774c88f016@suse.com>
 <f2a9028f-6bc6-40f8-a9ef-26800c9e4c59@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: <f2a9028f-6bc6-40f8-a9ef-26800c9e4c59@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 11:19, Teddy Astie wrote:
> Le 09/02/2026 à 15:21, Jan Beulich a écrit :
>> On 09.02.2026 11:31, Teddy Astie wrote:
>>> @@ -93,6 +96,7 @@ void show_help(void)
>>>               "                                           units default to \"us\" if unspecified.\n"
>>>               "                                           truncates un-representable values.\n"
>>>               "                                           0 lets the hardware decide.\n"
>>> +            " get-intel-temp        [cpuid]       get Intel CPU temperature of <cpuid> or all\n"
>>
>> Sorry, thinking about it only now: Do we really want to build in the vendor
>> name to a command? "get-temp" would allow for adding an AMD implementation
>> later on?
> 
> AMD CPUs expose a PCI device that can be interacted with to get 
> temperatures; which is then exposed in hwmon interface of Linux. That 
> wouldn't be practical to implement hwmon interfaces in xenpm.

You understand though that AMD only was an example (the most natural one)?

>>> @@ -1354,6 +1358,131 @@ void enable_turbo_mode(int argc, char *argv[])
>>>                   errno, strerror(errno));
>>>   }
>>>   
>>> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *temp)
>>> +{
>>> +    xc_resource_entry_t entries[] = {
>>> +        { .idx = package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STATUS },
>>> +        { .idx = MSR_TEMPERATURE_TARGET },
>>> +    };
>>> +    struct xc_resource_op ops = {
>>> +        .cpu = cpu,
>>> +        .entries = entries,
>>> +        .nr_entries = ARRAY_SIZE(entries),
>>> +    };
>>> +    int tjmax;
>>> +
>>> +    int ret = xc_resource_op(xch, 1, &ops);
>>> +
>>> +    switch ( ret )
>>> +    {
>>> +    case -1:
>>> +        /* xc_resource_op returns -1 in out of memory scenarios */
>>> +        errno = -ENOMEM;
>>
>> And xc_resource_op() doesn't itself set / inherit a properly set errno?
>> We don't want to override what the C library may have set.
> 
> I'm not sure what to do then. I guess we want to reset errno before 
> entering xc_resource_op (so we won't report stale errno), but we would 
> still need to consider cases where xc_resource_op returns failure 
> without errno having being set ?

Should xc_resource_op() perhaps better be corrected to behave consistently
wrt the setting of errno?

>>> +    case 1:
>>> +    {
>>> +        /*
>>> +         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's 100
>>> +         * which is correct aside a few selected Atom CPUs. Check Linux
>>> +         * kernel's coretemp.c for more information.
>>> +         */
>>> +        static bool has_reported_once = false;
>>> +
>>> +        if ( !has_reported_once )
>>> +        {
>>> +            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assume "
>>> +                            "tjmax = 100, readings may be incorrect.\n");
>>> +            has_reported_once = true;
>>> +        }
>>> +
>>> +        tjmax = 100;
>>> +        break;
>>> +    }
>>> +
>>> +    case 2:
>>> +        tjmax = (entries[1].val >> 16) & 0xff;
>>> +        break;
>>> +
>>> +    default:
>>> +        if ( ret > 0 )
>>> +        {
>>> +            fprintf(stderr, "Got unexpected xc_resource_op return value: %d", ret);
>>> +            errno = -EINVAL;
>>> +        }
>>> +        else
>>> +            errno = ret;
>>
>> Why would this be? How do you know "ret" holds a value suitable for putting
>> in errno?
> 
> Aside -1 in out of memory situations when xc_resource_op returns -1, in 
> other failure cases, it returns a hypercall (e.g multicall_op) return 
> code, which is supposed to match a errno.

As above - generally all layers want to deal with errno in a consistent
manner. If bugs in lower layers are too intrusive to fix right away, such
workarounds will at least want commenting upon (so it is easy to determine
at what point they can be removed again).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 10:50:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 10:50:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228685.1534807 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUGa-0001u1-5g; Thu, 12 Feb 2026 10:49:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228685.1534807; Thu, 12 Feb 2026 10: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 1vqUGa-0001tu-1i; Thu, 12 Feb 2026 10:49:48 +0000
Received: by outflank-mailman (input) for mailman id 1228685;
 Thu, 12 Feb 2026 10: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqUGY-0001to-KX
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 10:49:46 +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 8b1f4ff4-0800-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 11:49:45 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-4358fb60802so1323388f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 02:49:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4378e72c203sm4608456f8f.2.2026.02.12.02.49.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 02:49:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b1f4ff4-0800-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770893385; x=1771498185; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aTCFlvMSW0aAhCcRWoGU8lmHxXHbSnVMK6eqpmXtma0=;
        b=YHNQITdzh563KBdCPqRPHJgmlMKOh1d/J8d7UvvWJk/0xDTfA3H/qg2+axwygD3KyN
         p7eAKIL/b1xmVpVUTp8zm6OIEmWkhZFrwE5KDeBy+nlJNsIWpavVTpiDtMmB21pDRDFM
         ugMA+0FRL82uX0dBdvvC3z7H3E2K7IisZQT/cYAd0mzEBDTaTwlibJjJJcIXGe6L4Wug
         cc+/JAr+/EIYZ+l7K8XtuTRlPb9PKyLqv1NSntj98z5lGHafeyX0dkkXhK4+m/pxu6TY
         lQEuCU51p0zxZCcDF8y0hibdCcB0A2OjbNxDcDPC7wJ8TxqkIQ1fB1nJdSC13od6y/KN
         k0qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770893385; x=1771498185;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aTCFlvMSW0aAhCcRWoGU8lmHxXHbSnVMK6eqpmXtma0=;
        b=RyXH4g2b7PldKR4eL9XiN9NPMWJHDVhvNwGQWKK6Iyl6rpR+fqYFgHDTMWJ27zm4rl
         uORLRXIj0WfzgBk4V4Rd9kQNvpIDlsCHcIHkZYKPBeh9DfPmSv5I7l6e6gu+YAjdpIs0
         onJ/ql1pwu+84iaHZUvRwgMY+uxSam0VOz+QZf8oNTWMECGta84WoInfbekNlpwMOe5/
         UYAgxtt9E4XadCHwIK+kRkQkAoG0IYfYlPCsw8IqvZa5hNaHeTsWlZ0K2ycFJO70y1l1
         MU1EqJ1orfaMWslwXwOGShsqD/kSxWoBAy47Uu4IDHQHqxzybWNpjgnJnc1TE03Zo57u
         4FwA==
X-Forwarded-Encrypted: i=1; AJvYcCWdiYpOq742+srA1kfe2SU0qL0Pl9hZkWLSBXpN1U+L5PHnkcAFCUVKVYvkprokQTtQpDCNvQV/0VQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzuJweVWYN6JezDZju1wHPNLEJcUeH4VHHH27/4vhu3FiHr2xVl
	9e9SQfZc/xMM5P0aoHboEpypz30ksYJYv6n8aBH0KJp6fzmxDY2p9XwCyZO0jKL7PQ==
X-Gm-Gg: AZuq6aLqZ24vmjhTR4bFggOuHUC1+0O8bysUAI44yFqCXnVQ6r4N8TaafINfb0fAq5b
	rybF+9uE60Qp3zDX2zVGrdsWaEwJdnsi8kKQRBOIrgzK8LmV4P9eDGNjofB85tOYRtc9Qk4DF2f
	YMOgJqaquMamt15jNsNIZuXbXmnSYWFGA/KZfye7sHa+AXfXZqj1/FIewZ+2cS2Ziu+CVuBTDQx
	EndcudHD0yWbd8L//aVKT4PE41uRpKNLVB1L+KvciSOIvyhQti/4L5yPKwLOnlOwV/NGY/PpyzW
	pWMGd/XbEUUlqV1dSzBc4xcJRik1ZSPBH4YjpQKGeuCkC8BPUodzojKR4l+A8cZLCQ4kneTE7W3
	HUv6+iOnpB/m9NCyAW/JfmEYSSq3GBJ9OpoaKg7BW/lb9v9kfys9nH7P0pOaDMBRS+4h22iKlFV
	fnY2iEE3W1UzCMb95gsRayN8wkehjwimTqBsBOg8FkIrgG6HsyJ09BC8Uj5Rj0wql0quREIRZNi
	cWxsorZaNnGkOU=
X-Received: by 2002:a05:6000:2c08:b0:435:924e:3d6d with SMTP id ffacd0b85a97d-4378e72a239mr2748911f8f.26.1770893384638;
        Thu, 12 Feb 2026 02:49:44 -0800 (PST)
Message-ID: <109c3379-7066-4ad9-93aa-57e87deba81f@suse.com>
Date: Thu, 12 Feb 2026 11:49:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/12] x86: Migrate spec_ctrl vendor checks to
 cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-6-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-6-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> @@ -738,11 +738,10 @@ static bool __init retpoline_calculations(void)
>      unsigned int ucode_rev = this_cpu(cpu_sig).rev;
>      bool safe = false;
>  
> -    if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
> +    if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
>          return true;
>  
> -    if ( boot_cpu_data.vendor != X86_VENDOR_INTEL ||
> -         boot_cpu_data.family != 6 )
> +    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family != 6 )
>          return false;

At the example of this (applies throughout this patch): With the panic() in
patch 03 the transformation looks correct. Without that panic(), or without
being explicitly aware of it, this gives the impression of explicitly doing
an unsafe thing: Even though by way of boot_cpu_data.vendor we know what
vendor's CPU we're on, we're acting as if we didn't know. I'm really
uncertain whether such changes are worth it with the mere goal of reducing
code size. Even beyond the concern raised, this feels like it might be
increasing the risk of introducing subtle bugs.

I wonder what Andrew and Roger think in this regard.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 10:52:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 10:52:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228693.1534816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUJL-0003Mw-Gs; Thu, 12 Feb 2026 10:52:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228693.1534816; Thu, 12 Feb 2026 10:52: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 1vqUJL-0003Mp-E9; Thu, 12 Feb 2026 10:52:39 +0000
Received: by outflank-mailman (input) for mailman id 1228693;
 Thu, 12 Feb 2026 10:52: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqUJK-0003Me-4J
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 10:52:38 +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 f10fab12-0800-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 11:52:36 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-43767807cf3so3365094f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 02:52:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783dfda71sm11800619f8f.18.2026.02.12.02.52.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 02:52:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f10fab12-0800-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770893556; x=1771498356; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FDhD9KucPe7IZ7detfcPqHrcIF02/rztaSW6Y9t6xIM=;
        b=T3yXQ3YQMaqVr+NXTJRifdZxuCnAgaiEjGKaAlKiYhekr53rC3mlI0gYBAn0geW5Gw
         cqfJSI2V8BEZoqBC0EvCUbtbH3kDAyOyurD0vXnj07qJnpuE/ARdspzZFi313FAXTPQ7
         giOtamp8TCYW9cLLlwAYHIY/7xrvie1noYpPt74Od+oHwYoObN2DeSx/wXH5r2LyyMpK
         v/umljwXpkmw6d72lJ/03CLVFEdwi15zn0+E27DoLMUekzgxq0NmBtpEzTIW5mIMFutq
         zX/2vFydr4RSP7P0e499cgGWwdXpr2y3bvMN2NP76orC4MSEu8AdeAPQnKL0cCiHfrrP
         ubTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770893556; x=1771498356;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FDhD9KucPe7IZ7detfcPqHrcIF02/rztaSW6Y9t6xIM=;
        b=ZIzXoonM4r8ImiWLKUYu8DUslxltAt76wHJXTEbDkbdD7QknJoVgg7okWhqvoyshJU
         YtLUu7OdQRWuKTdL/xY+m95UfXoes51z9mHBYOikTtgvuiazjxIIl9dhTrxKp2hh4MKS
         e7TMxVz3oIQ67G5jgvrCGYP5doHhf0eTr3be8wNGFVVWLvhthkVercL/GFQ9H4oMx/7Q
         bCqXy1B5t7LfBUVpqAIC7Fw3+V79EKFNarXYIx4Kjc5gGKBrXyxRW1R4k2F2CowWhgKD
         SKSnMK+/EDSZo/iL8U/BiA9XzeyJ9uU1IIGtEYgvvgS5yGx3AaNyuzfeqyyL1WuDGP48
         XSog==
X-Forwarded-Encrypted: i=1; AJvYcCWOw1fOoF45dtFpx/IrDLtiNQxptIvsi3IbT2rcu3J+BW7Wz17O17GRk1PrEjefNVDChp+029E1drE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwIgqYYmoRd+DyOQihcO5HDZSKfpFhbdvEdGF9q9hk9wAevfWMv
	FVbrwg7SlcwOZ7Nll8XwVl7MQRGXlXgX9byetn5ZmXcMxOxjf1TO7mulLNRa8lIB6w==
X-Gm-Gg: AZuq6aLg8Q0RxaAlQG8iyU7Z6odOwpTAsDhXlFkQli+vsPHwldupHCIhm1H/Ll0hOqX
	JHiTX7uNp1ZJrnODIbeyJxVL6VEKK0YfctlzujSL+GSHBuZqRqzS1sT5OZ79D6RrZOcgdQdJG5F
	D2fxmvF9f54WHNuPKv85n5ozBcuh3Q0FeVMDGK6S/2a3BxWsjfv6PMh7zXwp77KW/fMUAtxIG+1
	8CzycxsV65fsbSbx8UQhw7hYv/ztYOrZJRkAoFJ6W0zsEH+5du1cW0NY21aEgy92uLvMxkDLht2
	6UoqV1t9VxH6QmeubXPhVlDrjReKEfE70YB7bPqAAWy33D4gBlopJmF4OQORrcyasp99qu7Ywpz
	2t18DlxeOxhcN/LX4EMwfICfkEXr5QNP8u4FnDHJr1ZXiiedA9V7WatGQKgrz1DZXv3TufrmIMs
	X4XjyI+0aLP5/WGdS2i/RVahz22yU5jaf7UeD4Mgwj50qQk0EETNcQFEdk0KSSg/KZG1legwcBU
	B1RnNm+CxgbGKw=
X-Received: by 2002:a05:6000:2486:b0:435:b068:d3be with SMTP id ffacd0b85a97d-4378ac82bafmr3984164f8f.41.1770893555720;
        Thu, 12 Feb 2026 02:52:35 -0800 (PST)
Message-ID: <b861972e-1f31-4685-b83c-27670e561332@suse.com>
Date: Thu, 12 Feb 2026 11:52:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's
 CPU vendor
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> Introduces various optimisations that rely on constant folding, Value
> Range Propagation (VRP), and Dead Code Elimination (DCE) to aggressively
> eliminate code surrounding the uses of the function.
> 
>   * For single-vendor+no-unknown-vendor builds returns a compile-time
>     constant.
>   * For all other cases it ANDs the result with the mask of compiled
>     vendors, with the effect of performing DCE in switch cases, removing
>     dead conditionals, etc.
> 
> It's difficult to reason about codegen in general in a project this big,
> but in this case the ANDed constant combines with the values typically
> checked against, folding into a comparison against zero. Thus, it's better
> for codegen to AND its result with the desired compared-against vendor,
> rather than using (in)equality operators. That way the comparison is
> always against zero.
> 
>   "cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)"
> 
> turns into (cpu_vendor() & X86_VENDOR_AMD) in AMD-only builds (AND +
> cmp with zero). Whereas this...
> 
>   "cpu_vendor() == X86_VENDOR_AMD"
> 
> forces cpu_vendor() to be ANDed and then compared to a non-zero value.

Coming back to this: How does the value compared against being zero or
non-zero matter here? As long as cpu_vendor() yields a compile-time
constant, the compiler should be able to leverage that for DCE? And
even if it's not a compile time constant, bits masked off in principle
allow the compiler to leverage that, too. It may of course be that
even up-to-date compilers fall short of doing so.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:03:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:03:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228707.1534826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUU2-00057Q-EO; Thu, 12 Feb 2026 11:03:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228707.1534826; Thu, 12 Feb 2026 11: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 1vqUU2-00057J-B8; Thu, 12 Feb 2026 11:03:42 +0000
Received: by outflank-mailman (input) for mailman id 1228707;
 Thu, 12 Feb 2026 11:03: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=Z4gJ=AQ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqUU0-00057B-EL
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:03:40 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7ae1b248-0802-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 12:03:37 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA5PR03MB8401.namprd03.prod.outlook.com (2603:10b6:806:475::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Thu, 12 Feb
 2026 11:03:35 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9611.008; Thu, 12 Feb 2026
 11:03: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: 7ae1b248-0802-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=cKjXFlj3crRyKLsXmCp6LN/tr/RxpFWAXjbz2OzW1FCc99DAyNOJNu+4341q5QxFxrZjJP08njB360FCeYsNBkKNM9SI+aqAL9xkkmRQ44mjOOHonAONO5WtWN7U6cCutDdLh8Z8SWZC8cRvwSilKxByIpQ7YGincRO225JzMW7ZliCIpsGwvIT39Va7iL7oafzfLB3/GD9hG4R+xbYJsprJ7jERiCYmziON1pSjNH7OZknnW6Q4T7LzdCX1FSprDiiki9/R8oj8J4a3yMiWUVfXPM4487rFDhoumaf0ARN1IQM2+SRHG+tjl3JPHdIrFMGkxFgleiEQmyL+PjBArw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sZ9vqlzKsWfB66IRh58Pg4K+KG5EjeD89rukrp7KXuY=;
 b=CCzi1prgvKfg+Jakc2UJ7XGNtowCQSTY14tQq2OX53Cu6CLwrDY0BDawlq1JD4xEl6q5e9nhlHOI/2wjdxjiYupbeVSsi32YyhRsjswfjl1khj3J3mZPcK0Z2Cvh69IWVzIJprIhHHWVEXx47irpWtAxkQ1ZAprTtmFklvV0DL69xCZXsy7g9VFdliqqR2OF2OCkvC+IHl1AKkw9yIAwIlJJrXPTgfWGqx4YVpXbSUyrFhxHtiv8CAAvr/lnxdMhOaQhxloz3c2+q60ucf+3flJd0iHM+m4gf/OOIn0nwrxPXzjpsIasdzu+bCIJQQljdUN9KVAvAbErj8092+3RUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sZ9vqlzKsWfB66IRh58Pg4K+KG5EjeD89rukrp7KXuY=;
 b=gz9/I8eKQSf83vnlkozZXyzcWkvA0VYBKzf7gE7NcDrY9ulKIKavkH8T8eBalz/4X/E8nT7aRskDfw8nwujGAsdyXCSnxJUJEM1BdADRalnItTHDjwQvxFwdMx56ACo9Td60iXTHdOu4TuB1cQ/aNORyV+TH7N/SFI/bjsT76zA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d49da49a-e12b-4978-9512-3305615b0389@citrix.com>
Date: Thu, 12 Feb 2026 11:03:31 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>,
 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 for-4.21] SUPPORT.md: extend "lifetime"
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <96f8028e-bdc1-4d8e-9fa8-55f209a5c7b9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <96f8028e-bdc1-4d8e-9fa8-55f209a5c7b9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0398.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:f::26) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA5PR03MB8401:EE_
X-MS-Office365-Filtering-Correlation-Id: 94b97709-9310-4203-f9c2-08de6a265dc3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bnc4MThGWXRoUjIzNUt0MUhFR2VHVG1xZGQrU0lpdE95aVpiNTBCTVA0UjYx?=
 =?utf-8?B?NUV4OGtxeW1qTjZXd3NPRjNwMXF4V2NDeFhzNld0Y1lTc2lxMHJKaks1VWNB?=
 =?utf-8?B?bCtZZVhyQWxBbEpjQkdDS3A4NlZ3cW9qSFVZVFhSQnpSMW5UNEZJZTd3WitV?=
 =?utf-8?B?REFtaU8vZjk1V25CZ2Yzb2lwV29OOFNkRUZCS2RHR3NaWnl5dGhkOGFHbmQw?=
 =?utf-8?B?bjlUZUVVdFJUNTVUNVBDODJTV3JaNUswKzZ5TTdRN3FKTGNLdUdNMnF0cUFO?=
 =?utf-8?B?OEk2Tm5POW5DaFRQRG0zRnpFSG9CeXVaMFdWSEM1YkNHRVlQMGVtNTJCdmtQ?=
 =?utf-8?B?RXhtdFRmUnpCOS82NDdVWExRbVdkQ3JmWG5PL2ErMGQycjdidlJZYm1qWkZN?=
 =?utf-8?B?UUU0WFFqUGtGVFN0VGt1dHliQXY1em1rTi9LNUJDcEtSQ1ZCd295NHo5NDEw?=
 =?utf-8?B?eTZsQm1kaFRCek1mNTljSmVoNUFGaG9BSzVmU1hOT2dYYkU5TU8xYkFnbmFQ?=
 =?utf-8?B?ampmcUx2VDdvdkRLbEdINmFxWTJqVVo0SnpFMkd0cnlKbXlXOHhZOWt4RmRF?=
 =?utf-8?B?ejBGVGZsZllMeWIxZlFvYVVBZUtseUI5eFR0MWF6RXk2ZXVjeExyaDhWQWZH?=
 =?utf-8?B?cXZhbVJwS0dlbGJnQU1sZDZQUVJzNVNkdDFnUnlGV2NBNWN1UlQxTzduNjRu?=
 =?utf-8?B?V29VcUVvUVB1aS8yUVdpa1ZiSEZJVTZrSVZiVTYzUzZ5V1NNRFVSbHB0Ylht?=
 =?utf-8?B?a0FzSmpZSnFaTVVPUytZVzE1VGlTNUh1UXlVanQ3T0pvR1diOWtEQmhhcHVq?=
 =?utf-8?B?TmNuc2ZrZlp3eXJmdm9DbVRtMjhVanlTQkdzYURMVnloVk9jYjl6aUJ3L24r?=
 =?utf-8?B?dGpycXlCZWk4ZTR3WmRYY1NXbEpybytVSVdWcis0c1phaEd4ODQ2cjREcHJM?=
 =?utf-8?B?UkR6TE56cTFxUlVzY3hDd2NCUVRlZjEzNExod3lRT3NiTEJNVlVVSENJK3B6?=
 =?utf-8?B?ZUpKNGR4ZmhUUVNqZWRQTVhNNjlKMGpqS2t4ekNYSnUvSm9DZlJjY3AxMVNy?=
 =?utf-8?B?cnlQTS9ib0sydm1XeS9KNFJzQ1RXTGVqTnh0UXF5UWlxcXA5aUNmY0tUSGhK?=
 =?utf-8?B?QXhaYmpHVkpFUG9zeDNMdlo5bHVVaG5KYmxnaWVvVGhWYmJ5eEtKcnBTZnVK?=
 =?utf-8?B?blRScjFtZ09FMzQ4YjRBT0NjamdpV2UxbTc5UWN3U1pjdStsMnFvZEo1WStK?=
 =?utf-8?B?aGFDL1M2UVZoVzBuWmVPc21MN3JUa01Oc2YrSjYraC8ybDN6R3VkVnkwLzFW?=
 =?utf-8?B?T2xvMkRNVHA4cWwyU1VBYUREQ2x3enEyeDVGcEdpdnNxRTV0UHNlRy9FRmlC?=
 =?utf-8?B?SGVFMWUvekh0T3R1R3huR2UzZDQwZzdSbks4VVZLUDZTTGVOMCsxb1lBeUVr?=
 =?utf-8?B?QXBoSHVhUlZhalBzNldCM3RVTmtDYVV3WXgyTW5FZnV3bThCaHBXQlRsWitI?=
 =?utf-8?B?dUhQOXlpb1k4Z1IvUndIYStHRVRERHIxRnl2M2ZxcStWa3IvbXhLam9RVGJJ?=
 =?utf-8?B?a3ptZ2pWdXdiaUF6WVFCbUxCTW15K2ZVOTFocHB0b2xHM29TSlBFMEtwbFNU?=
 =?utf-8?B?YzBqenprc01nT1lIaGpRNU1BdkYwVXRoQmlVcDdiVEQ3bnMvY3IxSWR5blRt?=
 =?utf-8?B?RjV0T0lhdU85UDUrVjZrSXNzVjlOZEo1dnBKdFdweWw2OStuejk1T0NpR3ZQ?=
 =?utf-8?B?Z1VyVkY2RVhmWE1LTllDRHRucUlKdzc4Nk0wR3RKeU16NGljTnFMZGRuVm1V?=
 =?utf-8?B?VmVUaEhudHpJR3g2NU5QQTJLeHc3Q2JibDV5bFhOd3lIQWJwbmkrblFrazZy?=
 =?utf-8?B?NUVOejNCQVZpcDB3WFFKM1JPcGhSUUpUZFk3bnNsbWtQdHNvV0txL2xOa3NU?=
 =?utf-8?B?ZDdjQzBkLzVSMHZZSzFJb2Irb3d2OFI5eDhMY2ZaYStlSTJGUVNzWDF4eEty?=
 =?utf-8?B?TVV1c0lRZis1NHpvR3VRVmQ3dVBXL0p1a3VQMkZjLzBSM0F3WmVQRUFRQTFS?=
 =?utf-8?B?eDVzT1F0ZUxxVWVlS2FEUUFneENMV1Jtbk1kWlppbmZ1QzlnWmdmME5vcFZn?=
 =?utf-8?Q?JrfY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NzlkSlcxYjhhdkhEZ1JFMDAvdW8wZWxTRFZvVGp4ZGNsc3R6NUY3RkhWUTgy?=
 =?utf-8?B?YUFDRGlaOEZFTGdLeE5wZWJFRjdycTU4VGdDZ2hIR0lGUlpmSmtJQWJFOERj?=
 =?utf-8?B?RHdwL1lkYlVSYmh4aGlDdmd0cGpZNk4rUnd3OFJBNzRWRk9PK3dDQzNYaGV1?=
 =?utf-8?B?STM5cjVyMVJlUVFjOFpSY1MzZFF4VDFEZEg5djQ3OFA0Z2ZNblV4aWdNb2tD?=
 =?utf-8?B?alNmL1FZYjQ5U3hHYzh5UXVWT1lFSmhNb1JwK0RsNFNRR2lpeHdBUmx4QTJz?=
 =?utf-8?B?K2ZYbU0vNk42dk1qOFViVE5SNDZjUXYxN3REK0puVGNGRVpmLzk4TTJJMmo0?=
 =?utf-8?B?NzJ6dUY5eVFWNlROaUZseUJlMFlXQ0dzaFNCYTZXWFd3WEV1QU1KTjcvUVNv?=
 =?utf-8?B?cnNLVDRvZjJxUFpiRm5EY2VsQ1R2eVZzOWQ1c0VMUzk1N0RDVXpXeExHUmh2?=
 =?utf-8?B?RFh1b3BobjF3TWZ3b2JITW04SFMwRGhHd1Y1bHpPQlRuWVc4ZzFlSHhUbDUx?=
 =?utf-8?B?RTdvclE2ekR6QXRtM0JsK1B4TUFrc25KSjRFQTVNWXdZQ0tYM1dTQkJaQXg0?=
 =?utf-8?B?VGlWYlRRVW53VksxcHlHeHpOYkM5TkRDL29XOXE3K0lZVUV4UmdhYTRyS3kx?=
 =?utf-8?B?S2NpeENseWYvMFJ3ejlNVTdRdDQvdjdRSGs0Q1l3bGplS2xLeWNBa0NYYzBY?=
 =?utf-8?B?cVNKcWVETDBxaVNEZ3BmNkI1aGNuWVdWNm1LSmF6eXhWVG1FSkxwQm5NRERx?=
 =?utf-8?B?WEhWSzNhc2lhTlF0QWZIc0pqT2tsVE5NNzljdWlCcHRMSW1WSTVnSURJZXl0?=
 =?utf-8?B?K1FDTlBESWQxcDd0MUFnS2VVOUdsbjhUL1dNcVcwNE5zWng3dEx2VW1DYkFo?=
 =?utf-8?B?MmJ0RnZGNENLWlNwNDI3alBEZUozNEVJUVB4Nzl5TXg5cUZHREhTNmN5YXkv?=
 =?utf-8?B?c3JZNDR2V3RVd1FRSmg4VDk5TXlaK291WVNPZm84V0s3ZWh1RHppcDBPaGoz?=
 =?utf-8?B?eERST21ObW00ZWJQOVFGTGpici9CMndqWW5jWlJWaXByTEVsZFpZR3RGNU1F?=
 =?utf-8?B?L3VaT2xTTE44L1QvbStpb2pMRmZpVEhwaVNlbHdQNG91ZmVSQXdwcEs5dmxG?=
 =?utf-8?B?ZmNFRTQ0QjFZYkcveE16UFZud094TjV0d0JzMHVYdGFkcnpuRlhIV1d5OUNE?=
 =?utf-8?B?SklEVFNYa3ltMFRrbEtTTVcxRHBObE1lN2hHQUd3YUp3NWxkM3ltN0p6eEtE?=
 =?utf-8?B?SEJDcjF3QmJmS1d4aGxQUTRBV2R4ZDg2Y1JnV2pUdzEyN00ya2lwTUxOUCtY?=
 =?utf-8?B?OFBmb3VnOFZvNTFUU3ppUUNuaG8zUnJMU051M3pCaWV5K2liQTF6bGZhcUY0?=
 =?utf-8?B?WENyRkM1bjFCNVBvYU9jTE91L0lta0tBd3o2QkcvWEJycDNVbHFHT1pqT2xk?=
 =?utf-8?B?OERmOHQya3lMNWlTbGRNNTdMVHU3M0FYOS9FeXJwL015UmI5MDdKd0dGbDlH?=
 =?utf-8?B?ay9mMU1vczFxRmY2c0J0SVlxYTVYanlXaTdzaTVpQytwZFlqUlJlK21Bb2NN?=
 =?utf-8?B?aWw2Rjh2MUZoNTVwUTkrdll4dTVYV1ZRZE0rZzZKSmo2Ujk5WkYxby9CMEl6?=
 =?utf-8?B?U1p3QjlBS3JCVHVDaVJlTW9sTFNCQ3ZPd2lxWjFHQ0x4cElWanhsNTAvYTVv?=
 =?utf-8?B?bW9hejdsNzc3alI5SnpvbTIxVm9FMmh4REJDY2Ivc0ZBS1BVZVJjd1VKQzU4?=
 =?utf-8?B?NmlMOVl5aHlrUm1UTkFIZEtDWVVhZ21OYTNtVVNxcDIxNW52SUNiZkQ2MGcy?=
 =?utf-8?B?RlpHM3RkMjMxOHZHRnlxcktrUVBBVnJSUlFMTzMrajRsbjhTVVp4SVJBK3Nn?=
 =?utf-8?B?a215WUVoUnVHVWxaNGdvd2UyaTVYSGUxV0Q2dFZVUDgwd3pjNFRTVDg5ZnZZ?=
 =?utf-8?B?ZHBDelZicUxKalRUcFlUem5VNUliamFCZ3ZCYVBjc0hwcmw3T2tlVS9WaDVi?=
 =?utf-8?B?eEJHRTI2Ny9rMnV5U3pOODcxVGhTOHpJLzNmdk5OdW9CYnRsU1FQdHhDVW4y?=
 =?utf-8?B?Wk9SSHRiMCt1VHZpMmd4eDlxT2lBVk9SWWFGb1oyb3p1UUY0d0dwMi9NRkFL?=
 =?utf-8?B?RGVYSFJwQ2lWNEQ3S1NrbnlDWEtDanBob2RyMXFzclBydExYRTVFeXExbmhZ?=
 =?utf-8?B?T20wWE1va3d0MjZOK2hCR1REYTFzZDd4dlVLdGxiTjNTVGFDT2JvZnRITVR5?=
 =?utf-8?B?SUY3VXJrWHdLWFVHNUR5a29iNmFBOTFSWnpjelZhU0hzVzZwdE5iSktUdkdR?=
 =?utf-8?B?UUd0bG1RbEhiTkhUZzN2dVFiMkwwekFPRHJieDZnMFpmYnlpaWdwUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 94b97709-9310-4203-f9c2-08de6a265dc3
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 11:03:34.9040
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wPnjFKyJFwsrNVDBlllBplxEKrFOy26vjTBgFDG127sToBELdLhDl0dxOlcghxZ01not1hQrj5+dNmQeBo8yhlosowNp7rbMMG1xLZkF5uA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8401

On 12/02/2026 9:24 am, Jan Beulich wrote:
> As per
> https://lists.xen.org/archives/html/xen-devel/2026-02/msg00630.html.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> I would have preferred to reference the xen-announce@ posting, but the
> mail may still be stuck in moderation there.
>
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -11,8 +11,8 @@
>  
>      Xen-Version: 4.21
>      Initial-Release: 2025-11-19
> -    Supported-Until: 2027-05-19
> -    Security-Support-Until: 2028-11-19
> +    Supported-Until: 2028-11-19
> +    Security-Support-Until: 2030-11-19

A useful consequence of the 3/5 years is that it's now trivial to set
these dates.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:04:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:04:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228713.1534837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUUg-0005c8-Qe; Thu, 12 Feb 2026 11:04:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228713.1534837; Thu, 12 Feb 2026 11:04: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 1vqUUg-0005c0-M4; Thu, 12 Feb 2026 11:04:22 +0000
Received: by outflank-mailman (input) for mailman id 1228713;
 Thu, 12 Feb 2026 11:04: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=Z4gJ=AQ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqUUe-00057B-Ks
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:04:20 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92e9efaa-0802-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 12:04:18 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA5PR03MB8401.namprd03.prod.outlook.com (2603:10b6:806:475::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Thu, 12 Feb
 2026 11:04:15 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9611.008; Thu, 12 Feb 2026
 11:04: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: 92e9efaa-0802-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HASgR8rxUQxOLf13m2q5S5lOUkM8JFFVKnXUxXMMD1y54CtQEw8pgSN5Jc6H5kQtmIuGCenqBuVFcz5+uaDL94HBHgu5f/uX9HbUjA1wLMc42u4EUrwX5FwB70Y1+0r3/MxpWicthd8P/m8G4wZZFobh1yv/aINVRkzzuoDo4Yo+yo9K4vu85tRgNEWCck+PoH6BwXdBAHdBkg/fha7IvyrhXJFPqLmXrW8wMA2tckRcatFY4/ijYQzIOu+B7TgHdkBeFzZs5QLgMXR652qZ0JSL3mQUdUT8diw8jIX4Adr4ZQHjlQZDjc8gwglAvSpe2QxCxTDXBY05fmTv7OKNXA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cqeU0iPf9kCYSr1Hu2Mtctw8FqSiO8/7mGSvdgUwPWE=;
 b=VafbCQoJOURns5uhWCpttoq/+X0ZTmVIB01wfelnKh1ZYnBndjV0CILktr+h7h69UwhKl8f/RUw1hut5J8jg7/KUx66YRiYUOWvWgSAt6P/gAg9PlID29t9C/5I7gOwqlQ5fbiG89vNX38yhEBXAhHcMuCKMvNvwqiybg2r53YkQHhoxCpe7b4zApgz8c2HG4CoortuyEgxIePDbMvvnOcQ4uNSEsziacLsg5VZ/XWd0hk6qxbcwuJGsDrLLsu+B523xwdR6MRqM8nXsUep7PB89y+53VQpMES6vFDtD32dQQybB0Jneg+4477LQvz57q8k9L4fMYZw7o9/mFbcz5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cqeU0iPf9kCYSr1Hu2Mtctw8FqSiO8/7mGSvdgUwPWE=;
 b=hDwNw+47ejXg3lrambM5VVwiRS6koXUiqPGyWyo/+43s8u1mbW2gvtgye7nEJ/R2IXbtrD9oJaof9/9YxKgOeTSiqHevIkyfxH+o23kozUnBX9buNmUSb1Q0jFj0OB+m+mWTvjc8xSuq8/PYQnmQRFfWehxuDrtRxEoQjChgXb8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <840e8d6a-d0bf-4ef1-b66d-e009ea0df877@citrix.com>
Date: Thu, 12 Feb 2026 11:04:11 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>,
 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 for-4.20] SUPPORT.md: extend "lifetime"
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <b2d6108d-0035-4187-b83e-b63519d5cbac@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b2d6108d-0035-4187-b83e-b63519d5cbac@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0400.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:f::28) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA5PR03MB8401:EE_
X-MS-Office365-Filtering-Correlation-Id: 7517660e-cd40-48d0-49d3-08de6a2675dc
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?VFJmcWR0MmNGby9SNnNJWFV0M3ZESWVWNFljdjlBSUc2ZWpkUkl4Wkp5RVNq?=
 =?utf-8?B?cEdmaTBtMlg4dVdNSUl2QVB0Z0R1bUZwQm5CV0k3cVorYlpnZWdBRG5Xck9R?=
 =?utf-8?B?TjNBZm9NNnRldDd1dXlKa25wd21tcUNsNDJiOWsvbE1pZnZZS1FOWlVkVE9n?=
 =?utf-8?B?cmM2TnhndGpNSFNZek1EZXBtQ0dLOTNCQ0dvOEk0SVpaTlhJUUdrUTNBUUJT?=
 =?utf-8?B?NHFRU2FWZW9hdlZ3OFFjTTBUbVRJYTRaNjl5UHFXSFpCUjNhcVhjRXU1TDRS?=
 =?utf-8?B?WTYxd01nY1VZdS9HNTM4aU8xYSt5UUFDTnFFZkR2eHBJbVdHb3NuTXlnNG1h?=
 =?utf-8?B?ekhzVlBQeXZEdHFxTkpXQnVFU0VTQmZXM2trQmdqSFpRRWg5OVA3YXBSQnpC?=
 =?utf-8?B?K3V3aWJCc1d0aDVPZGRBU1owQm1UZlhjYmZZbXd5NS9CWUtDNnE0bkVRQnZI?=
 =?utf-8?B?UVR1Vi95dzd6cWg0UlpYUDdMYVp1T1JUWEljNm5aMkZjQTFDSWZHbWd4YSt6?=
 =?utf-8?B?MldremFBdkgxVVZXSmNhSCsvNTFHK0JJRkhIRzI4UHV4bTAyQ1pxODRBMGty?=
 =?utf-8?B?cjBkSlZkemF1NU1ueGlINVVYZVdRakM0WGd0Q0R6VjArV0VLdDBoRW9Bd2Fk?=
 =?utf-8?B?ODBycEMxQTZKRU9rMGpYSDNkYngzNkhuSEl5SDdmR01lZ2taQkMxV0pwcEJ4?=
 =?utf-8?B?KzdYQ2JrcnBMUDRua2pEMFdYb2RxbWkzUmFZUmxIdExOZU4xRXN5eU1tS1hB?=
 =?utf-8?B?S1E2eDZYTTg2UFpzc3NiN25YWUVZZ0x5cHYwT0x4czVrWk1xNDY0N0dFbWY4?=
 =?utf-8?B?OHFSMjd1Y0cwWDNyTFFESzJYUGZ4MGI2Zjk1MkhSYlJEVjdCUUdYRXhadFlj?=
 =?utf-8?B?UExac3VXNCthbU0vZnJFbXk5K2RkMkpibG1iRVE5RndLWE9pUnhLTCswUzAw?=
 =?utf-8?B?WUxvSGJVQkRnRXk4ODZoRWhMczlZSHF5cWdTWldQTTVHQUVhOTRMVFRBRU1T?=
 =?utf-8?B?dk5LZWhzajQrWUdGLzFoa1A0ZkQ0RExDaEdrcFkzWDRNOS9RTlJUQ01Ta25s?=
 =?utf-8?B?ZWtTMUNDZ0tYNzM1T1VDc0YrRWxQYnQ2bmNNYm9Jb3FwNjZSb3NYbzdxeXE3?=
 =?utf-8?B?dTlUWmhTTDZoZzJrS3VpZ0JRbDdzRjFZUjVPTnZEM1Q0OWxpSGVrdUlVQnZr?=
 =?utf-8?B?ZlRXQURlcXFJV0JLZ3pnd0cvdVZhOEcxRnVGVWhKVWhoeXBYUThNbTRhalpM?=
 =?utf-8?B?OE0rWWd1eGZEQVRDY2tZclRxM3cwTnVjZVVhYUpwZlhsa2hUdkNPaEJiYjRF?=
 =?utf-8?B?bzROeVBGckZPdWlreHlxZEpyUDFDalpGUm5mSzNjbjluT2k4SHpJcHBHOC9F?=
 =?utf-8?B?SzQ4UlZkY3RqcEZzVmZUMDNFeHVKYlQzWDhFV0JqVkxmQk11WEljeUdub1lm?=
 =?utf-8?B?UGkrQmpyTk8vWi9ZMnhnWStxUllyQTNGeGdmQnVSSVZlRWY3RnNibmtmUGlo?=
 =?utf-8?B?M0NRdlNHbkhaWXFINDBJUHJUS1I0N1FEdVpRRVJLNCs1YlN3NElaMnpNWm5R?=
 =?utf-8?B?ak5rNU9UcVNkMFBvVVVrdGtZMEVkNGpPLy9TRHFSemlpOElkQlVYOW9odDFt?=
 =?utf-8?B?RW56MERMWU5hUS9HOVZJKzJHUWVXU3ZuWnV6U0xIUTVPVnFGMzlNMzdzRzFH?=
 =?utf-8?B?YnJrUGNaVE8wa0RmYjkrVFhlR1IwbDRFRHBXcDcrckE2Z1U1cDliaktsM2NX?=
 =?utf-8?B?bzdxN0ZSODBFcGJVSzgzVklHMmpFVldjWFNOcVJhRW81ckVkL0JLQlc0ZXdM?=
 =?utf-8?B?WFlhL2Y2YnNOWS84OHNDZnVlMklXUEUxQ0F4M3JuL0srRWM1c0xUbDlZZFBN?=
 =?utf-8?B?Z2Q1Q29JVTYwM2psdmNJdkxLQlVmUGhtczlKc0EzT3BVRWV6VWlQL0x6T1A0?=
 =?utf-8?B?T2pvb3dxNmNPVDd0VTFNdFQ5cXNic1orcFo5d2h2QXpoN2xGclE5V2ttc2tP?=
 =?utf-8?B?MGtLTUlxc3V0Zmk4d2crSlBQeFRmMzg2ejQ1U1BDN09YdG83YnY3R0FQc084?=
 =?utf-8?B?OWp6RXJGdTNaRjNmKzM5YXlqQ0pOSTdmek9mTGVTVElUZmF1SDNNMWlpbDFh?=
 =?utf-8?Q?dyqo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dTVoY0xQM3ExTU9YREdTYVBYalJ6UzFBblhFWkF6bVJXbkhTOVZNN0EweDg0?=
 =?utf-8?B?ajVYZS9uaHBLMVlPaTJaZ0dTZTNnSVRPYTlMcnhiK0VnVzBzdEhZZDFNREVN?=
 =?utf-8?B?WDdFZkdqL0FLOWdYOXkzMWVIRHVKdTVnN0ZCMFl5RFl5OFFKak11b0dJQ3VJ?=
 =?utf-8?B?SkFPZlpJdXd4djMydzNaeXpPYnRpK3AyN0hKRi9HNnoxRWREM2R0M0ZtNVFX?=
 =?utf-8?B?SG1HYWFxNEY0eGs1V0U3dGwrbmpSRFBxNXhHeExLN2dpdVNHV0lLYVhiK080?=
 =?utf-8?B?SElTNnptZ0ljL1lnRzMzbmJFRnpnaU9YeWljd1ZQdkJwbE9DSFR6ODF3RFY1?=
 =?utf-8?B?OXdzUEFHMzV2QkRUL3A2dVpjMlhqaUJKdGJhSEVucnJlOWM5ZEZpV0J2K2dl?=
 =?utf-8?B?VWpsNE5TRVhvTFJHeVh5OXA3d1U4d04veCtEU3NhbWZITVRqVWN5eDNScGxw?=
 =?utf-8?B?OE53bEJSMVpjRFZhMSs3U3hqbGVOY0dsT3FVR1M4SEdGejhZelFQNVFoTGhL?=
 =?utf-8?B?U2xLbU93Yk9wOWp1K0dUWEZ6clg5SDFreU9Fbk1RTmxDWFAybHNWMWduRzFW?=
 =?utf-8?B?TXVoR0QvbVZ0aUVBZEtNa0EyV2owYmNpK2QxY0VDR01vUmEvTGFoRWxRSWJO?=
 =?utf-8?B?dDhZQjY3WUowR2FFanhaV3V5blhucEJ4V3haeG9BSFJPNWJDN0pBQk44VEF1?=
 =?utf-8?B?bjErbEh4bGMwd0liQzg0dzRoN3pIWmxYT2doVDRhWGZjMmkrY3hrSHR5blVL?=
 =?utf-8?B?WW1SaVdjZ1c2N3lvWFhZZ2N0R2JkdnlERHN6cXFOYjdmUk9DQUFZRzlpclRx?=
 =?utf-8?B?TmpTR2NXL0hjYnV2andIYUdxd2NtR2Jzcmxjcyswb0VVTjNxUUNaV3Z2Vzkv?=
 =?utf-8?B?VzRublk2cjIxdGx2U2tTa2w3ajBIZVp0aU1hU3pSQ2FYa21BWElKaHNmdmNH?=
 =?utf-8?B?ZWE0WStndWFudnRaYWVsTm9FZDg1bUFCMStYeFJCOVRZamxHNEwxV2thZU1P?=
 =?utf-8?B?Wnh4cUxZeWEvUnNuS0JSN0lEWDF6K3QvVVV5Tm92T0xCWGhHRmJwa2VtQjE4?=
 =?utf-8?B?eWF1eFZIaWYyd2w1RW9uVDloWDNzZEVtd2UreURUUHUzb1dPQjcrbUZNenpv?=
 =?utf-8?B?K1R1OGF3NHRsczhzVXB3Zi85cHI1ek1JU016LzJCa0lieHZvSnFqeGJRanR4?=
 =?utf-8?B?UUtUTS9LcVlBaG5SdkVWc1NqUzJzT0NQazNVeVg4c3RnQmNXeHBScTNKd0Mw?=
 =?utf-8?B?MkZQUHFMbnlWL01nQm96S2JyLzUwYmNzdldJdkl4dnErUTVlUTNHdXdGRFVR?=
 =?utf-8?B?am42VFRvZk56TnZhMkd1L25pZCtXVS9HYmdhc0tiVUQ4ZWRHSHUxOHpoV2M4?=
 =?utf-8?B?Q0tEbGRXaklWN2pvM3F6N09OSEhkNHhoSFNJNVQ5M2tQNU44QnFkbi9HNXJN?=
 =?utf-8?B?Nm1xUXN5SzJDSEdYNlZiV0JMRWdTRWd3ZHpkRUpGK3hkb1FCcFBnaVFibUo1?=
 =?utf-8?B?dzN1RjllNTZ1aHQ1bVgrdk9sRmNtcHRjYjBkU0hHVDJOUVZPUHVtdDZDRW55?=
 =?utf-8?B?cEhGM3VCeGU0amVOdmg4VXlXamZjMDYvUitLV2lmUjFwNDN3NDgvWGpCb3hR?=
 =?utf-8?B?bnI4b0wvcXk3ZTg0RjJ2N01veGI2MGhDNGxQdmVHWEx4YW5QSXpmdGJRMlBi?=
 =?utf-8?B?MkhDdWZTVXJtVXRydHpqYjZzVWVLLyt5cGtHa291WmJEbm52WTZ3WXFNeTQ5?=
 =?utf-8?B?NU5NalE0S01ZMGlFWnpIckx5RFRNd2g0QkpTaEVNamZwRVNkV1I3cW9qWmZP?=
 =?utf-8?B?Z2FTaGpocno4SitnYjdKZXFyTXlnRlZvaDVUZGZyeWtpY2dDWlJHWEpTTlk2?=
 =?utf-8?B?VXJiSFhmN0pGTUVBK1lKK3k1cHRDeUdlTmZVOFBueFFYc0MzYlRBVFZMWmZB?=
 =?utf-8?B?SEJqR05MbTFFcW9FREdFMVB4UWh4V0RjK3M0ODRYaU5WL1BLZHk0TVh5VG5I?=
 =?utf-8?B?bjJBN1lCSGtRNWQ3czJmR0RkTE8vNU5qZmZJb3VidnhBVGdScUFpYVI4ZnVU?=
 =?utf-8?B?Q0Vtc3MrMUdoR2NDOEFLMmNQYzdLcU80RjEzRGVLN2lSNUthdDBadlF2ajJw?=
 =?utf-8?B?OEUxOXRCVUVsV1ZFM210VDBuZ3o3Q0l2K1ZYandkZ3M3TDdTaVFGS0lvM2Ni?=
 =?utf-8?B?Q3pjam9SRjNaNGVJeWJ6VnAreDdiMGM3eStCNEVWNllwU0ZiWXFhU0s0SE52?=
 =?utf-8?B?dkFNTWR0S244RDdSaks4MGJYck9JcWdNVGFrTjVHL01mdVZJMWN4dTk2VlUw?=
 =?utf-8?B?d3FrUmo2MGJ5NDZZZURUaVp0ekVJY0NPMWlIS2ZRMEhoYnVoKzFKUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7517660e-cd40-48d0-49d3-08de6a2675dc
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 11:04:15.2391
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: FA7gp+8rGv6R42wIBlvW/lF9vm8v3cNSQuZnm/QQEjfGRGuCk1ImgVZYSf1Sdv20SXSKBLnah/6Skx3NnP23tAcY8zo2R+A6tQrdggYrFbo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8401

On 12/02/2026 9:26 am, Jan Beulich wrote:
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -11,8 +11,8 @@
>  
>      Xen-Version: 4.20
>      Initial-Release: 2025-03-05
> -    Supported-Until: 2026-09-05
> -    Security-Support-Until: 2028-03-05
> +    Supported-Until: 2028-03-05
> +    Security-Support-Until: 2030-03-05

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:04:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:04:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228722.1534846 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUVD-00067o-1U; Thu, 12 Feb 2026 11:04:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228722.1534846; Thu, 12 Feb 2026 11:04: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 1vqUVC-00067h-UH; Thu, 12 Feb 2026 11:04:54 +0000
Received: by outflank-mailman (input) for mailman id 1228722;
 Thu, 12 Feb 2026 11:04: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=Z4gJ=AQ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqUVC-0005P4-1g
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:04:54 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a86dc6a9-0802-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 12:04:53 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA5PR03MB8401.namprd03.prod.outlook.com (2603:10b6:806:475::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Thu, 12 Feb
 2026 11:04:51 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9611.008; Thu, 12 Feb 2026
 11:04: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: a86dc6a9-0802-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iUoKT7CB9VsMZJXVxwt877NEZqzLY0ygwES5k8mP4s+fnj1Ki6ka2X/b7u8mn9zup5QFJSkImS+tbpDyJ5cMtfxNTYYko9feuTaK/jfay7cpAq/xHSLebvioWaIH+Nyf7ONxvANyDoI/GTHKsu4QKnNfRuqAEixfdRjXhpWxn/Y0UDdsRNH1rejdsTEQo45w1ZKJ4f8E35UrhNh8ZILh7oUW/qbv6loj0AkyydnbyBO47gyxQk5fvixiXX/IdcQ6OaxEGu5Q5RyFXlLXRg4l1T5Hhbs22ApSE+W2YSH861g3MMonjCa3Du8ZX/45h4jpR7IDyOSQs7aBCXOCTO9J5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=k9rIqwlrFxbq2KZIPCbzqUkfAOmnqPZlX21nZrtelDY=;
 b=IU54mxn8qS4a1u6El8GAspnd2YsJsCGhHlzvtjGYr17qdI5bXpx5C1yCegz0b9XPpvvWyAeV2da1wrq+d4gLhS1EFqfmPYqjJtcGeGQsyoU+ASyHuoRhNVCVJYgnKvNNQyD+0+Fds4CSsDSpg8w+HflR6nnI8Dw64WfWaVguxglCmIUQrlkhJsdkceofYOMzJ7c1ayoNP0l/luHRkE9dJ4Hub8xPRoHj0pEMoiNsx4x9y/a8G7fUo8uTMlay2dFkD3jFh9plzbO5bKV089xqDCxnXnXtWMjyfLYXJDSNQcF+ApDUrr2NKkQmN6XiAL2HC37xCRP9nMqGWz9z/lxlcg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=k9rIqwlrFxbq2KZIPCbzqUkfAOmnqPZlX21nZrtelDY=;
 b=JMJmUb9bebEabGCC+X7Z6oXT8CqF+/+DKZNRXhhU5ryCJem7f/tJrTOuxBo8Aa9bgyu5rUGwuqlKX3PR+q7leAjrCRcngCs1Olq6T4qDSnHSmTDxjH6T+l2gP8pmlPHI0JK8AcJp6+MbLyg6cN+i9pDZ9cldV1st091rOiqPepQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f95c3123-48f0-45ca-9583-5628a35de907@citrix.com>
Date: Thu, 12 Feb 2026 11:04:47 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>,
 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 for-4.19] SUPPORT.md: extend security support "lifetime"
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <916b8eaa-f5d3-4255-a7df-95f66fa79780@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <916b8eaa-f5d3-4255-a7df-95f66fa79780@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0399.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:f::27) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA5PR03MB8401:EE_
X-MS-Office365-Filtering-Correlation-Id: bd5d21d4-6e13-4c09-ac21-08de6a268b0f
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?ODJoUmJNL0VxWlhWSVlUQjI4QVhSQiszb0Q0NGhrUTlLaitZeHNFcXRPc2Mw?=
 =?utf-8?B?RDNzcVd0Vmc2TWhCMFViaEl5Zk9MTlNvSHBXdnhodTJnMHhoYTIyaUV4QUlJ?=
 =?utf-8?B?WXhaMVJocnUxWXp6Ny9qL0FDOUh4M1RXdTJlVWNwTFVGUGJMQUFXYnF6d3R6?=
 =?utf-8?B?RXFnWEswMjloNlppWGNCa1ZtSTQwcGpsVVVpNVNnamRQNkpaUjFZU01EWEZP?=
 =?utf-8?B?OEhSRmRGdk0yRkszeFlGNGFEZTFQVEVEME1UVngwOVZhcFRsNElMYUYvQ2Nq?=
 =?utf-8?B?RVBValFUS0lRZytOSmV5WWE4WUxrcUptRURRNHF3WTFFcVYrcFZnOHhFcXU3?=
 =?utf-8?B?TEE1bGpZcTdHVlZSUXp2citWeW5hN1F4djZYQ3lIWURlYW0xakNjUFRqbnla?=
 =?utf-8?B?RWFydkY5d3dVd0tTV0Z2amd4bVR0TzJBVTRicEtDNTBhdjRybXB2OUJZNHlC?=
 =?utf-8?B?UTMzQXI1NEdjenpZN2tLWWRvcXY2UEdrWjRPb2hNT25acnRJQ2lzYWdndFBW?=
 =?utf-8?B?b0RrWmU1NnRzSkJ5dmdUbFZpQ2YvRTQyWXNVamdWNHJlVHROSjFiYUZ0K1Qz?=
 =?utf-8?B?UE9LeXA0ZENsZzhtVWhHS1pMY3FXa3NrWGhCZjg3MXpIYUU0WnAxaklKL2tO?=
 =?utf-8?B?SmloV2Z2QlpGY1ZaRklwVUNZQTFCbnhjUXA2RE0raTNPYmhQZWNYTzc0VzNz?=
 =?utf-8?B?bVBLQlg2bTRIdlNvU0pVQitKeTNUVE9heEF3UXlLU3ZKL0ZJK2xRcGhUT2Fv?=
 =?utf-8?B?MGYrU1Z3MlhsYmo5Z2JzUjVHdUM4aVd4WG5FZXdDVCtsa0xqUHo2ZWRVQXNw?=
 =?utf-8?B?QmRrWWxjWGt1V3h3bDRQa3VCM0kwam1mN0locXpXcXBHTzM1aVExaG91UURT?=
 =?utf-8?B?bWhoM1UrMzFFQ2xrRXdzQ0o1Y3BnYWZwUExEV0E5ckFHQjVVNVlFQ2J2QjV3?=
 =?utf-8?B?N3h5S1lsd3Bhc1l4Vjdtc2RFU0NJYXc0ZlNwNHBGMHhGeUxoTnBFL3VZdkpB?=
 =?utf-8?B?SXpVZC8vOWhDVFNnSTVTTXFubm93b1paYlNrQkNLRzVDNnl3cjRnbDlLSzJP?=
 =?utf-8?B?SUVXVVc0VnJnUVQwdVYwV2JkL1FuNlFiR2lwTWlDTGc3L2h2OHBsYmxXSHk5?=
 =?utf-8?B?OHVBYXZaVXlEVVlhL1FBK1Rkd1pmL0h4WUhtMisxT25YVjVnc2xJWlNTcVZp?=
 =?utf-8?B?ZTNBdUF5aTcwNjBtdlltZGZZQ1MrTktNZFZRWFhlaWUwbG5aNGZzYW1iOWsv?=
 =?utf-8?B?NVRQMmsxK3BJcWJ6ZitWc1J5ejVnK1c3R3oxVEt5Wk01YVl3NFNacFdDT2tI?=
 =?utf-8?B?VHlBTFk2RVJOTGpCZGNkaVloU0N2eGNYdDJ5bjRaaXdXbWtzYy9jajlDTmZp?=
 =?utf-8?B?eGdpeGZHeDVnaTlUTVRMeS8vVCtHbC9tbVhzOTllaFpmN2VmZVZMbjUzUUxu?=
 =?utf-8?B?SDA0ZXJrNVluV0sxYkUvcVFCaUppSWVpMEc1clJzN1c2ZVpOSnRYa29KNzBp?=
 =?utf-8?B?UkNralRsbUZTUXRlNTVYdVhoeExwU3VzTEl3UzV5N2FYNi9VMFptcmo1d21G?=
 =?utf-8?B?MUlBcC9qT3lESEpVZERxYm5XeGJVbWlPNWgwakVzc3h5OUZ4UE55SzBTK2p5?=
 =?utf-8?B?ek9sQ3YvZnFoQVJXVjZobUJZRHdIK29XRkZGSUV2Q3U1KzRKaG84cXlmcHpj?=
 =?utf-8?B?Nmh4REllNjAvMjRVUnlrWXdXM1hjblNDblRITTcvK243d2xPZCtsWkNYemo2?=
 =?utf-8?B?R3J1Q05NRStod3pDQkh5UDc2aFlmaUxYSDRZTldHTUMvRTdMSDFNMnVTdk4v?=
 =?utf-8?B?WHRGREZJZGQ2L0U4RUNVWS85cVplUk9aRWNzNm5vY2M2ekZWWWkxYkVCbU4v?=
 =?utf-8?B?MUhKdXJqRmtrajdHek9jc1hDSkhkTmZYaGtyOXlKWGNRYnp2R2ZVcFM4UFh2?=
 =?utf-8?B?WDhaVVZXMVhhck11dllKekFyeWVrbjhVMFJ5MG9aeHpYREo5bGQyaUFKUEp0?=
 =?utf-8?B?N21UMnVLRm9rMzFnSm1zU2tHOHhJbzJYRzdJRUx0Z0xvTHU1QkJrOHBsL2Rt?=
 =?utf-8?B?U1E3TjZ2aEFqVlZFNVhrc3B0WXplcUdpcUZHM1VvVUt4d1orMHRaYjdwYy81?=
 =?utf-8?Q?vgT0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q2ZaTGNSa2xhelJDeVZJYXVrTUtvZGpicFFGbWJYMmxjQis0RThQd2grUVJV?=
 =?utf-8?B?QXRML0ROclE4a2o4bE5MV0d0TUZqY1JuLzdWZXcvK0hGKytMMkRnV1VGUzA0?=
 =?utf-8?B?YnhmalF0R0R4SVZYL2NVa2dzaWZYZStxWFVyNjc5MDNhdERVOFVHTjlqQ0RX?=
 =?utf-8?B?RUtDTUNjQ2Vrb1RLNUgxZlk0RThPQTIvNTVKdkZzS0Y0TWJUMElLRG01Qkhw?=
 =?utf-8?B?cU5YMmc1TzJrSklFbHNJOHo5bFhQcWd1RjI4MDRkUXNZeHAzOEtoWm5SalpW?=
 =?utf-8?B?a2ZXSXRUMjFGcWF4ZnE1OG1hcDFYNnBnRjNCaWVXODdJdFZZRjByaTdiQVg3?=
 =?utf-8?B?ckw1dktITTZxdmhyb0E1blMybTZxTnd6VEpzY1BqUm9JUHBHWWNuNld2a1NJ?=
 =?utf-8?B?a2ptUmlJa2Q3OVo1MHN2allJKzN4QktVUGhvWk8wOUNndU9GSGZkNGFpcjkz?=
 =?utf-8?B?b2lZVHdBTUZwZTNEQW1SYUw4ZEZBb2E2anVUL0hDSkhRTmU0bDVjZUlpVmRP?=
 =?utf-8?B?SVU1aEs5cDhZSUlZeU1FbDQwMUFUQ0xnZk4zVVJob011dXlFSmYwQlVYWloy?=
 =?utf-8?B?RkY0bHdJYVlrR3prSzFPNzRyTVA3am1rd0N1dlNUeVNndnN5aEVObVd0SkQ2?=
 =?utf-8?B?VVFyNDFXY01ydXZWbWR2REZIV0hGc3ZaMlRhMllYVkFWZitIci9sY2NwTTdE?=
 =?utf-8?B?WmlLSzhwZ1JPVnpqRW1vVHRQNFVqdGRTUTFjbk1mWUxGTis2R2YzOEVlS1M4?=
 =?utf-8?B?VzhMMnR6WTdMRnhxSGQ1RUF3TUJSdmI0aEdwMVJ1UDN5SHVETGhDeHdaV3F1?=
 =?utf-8?B?Q2N2OXpaVkp6cXB3RjZYMmdjMTk0SVkrRHdNZFpnejRwL3ZvUERFWHEyZC93?=
 =?utf-8?B?ckZvZHpRd1d5bGdJbVZXcXMra3ZmRzNxTjhtN3RiNUoxYWNNdmtYVmFtdHZs?=
 =?utf-8?B?VmtnbTh2STdxWlRENHBjaE5kUXV1N0IzSkxielJ6amNmWk1QVWRpSWhtaDhC?=
 =?utf-8?B?UWV0cStEcm44K0dzalY1emptZklRYzN1QnRNdkpGenJNTmtueWdyODJ0YjFu?=
 =?utf-8?B?N0J0Uy96ZS9VUHMyZ1pLWkRLWlh1c2dGS1Q1U1N2KzlZbUxwV3hPMkx5eGRM?=
 =?utf-8?B?ZUZEZmRZbkhxWGxMTi91ZXVmNDc1Y1BqQndPRHBhSnRybDk0ZnQ4Ym5WcExo?=
 =?utf-8?B?VEpPeDBWWFRqSHNGRVVqendBUkNVMW85ekRFYUxwK0QzcUVGQ05Rb0tRR3Nq?=
 =?utf-8?B?cEsvd1U2NjBCWUl3MkRaa054cHlWQ1Rjc1Y4SXV0dmY0d1ZXSnUwbFl0TnVp?=
 =?utf-8?B?aGRhdW05akd3VklyaDlJUmxtdTVLMGd4MUdxOVpVWE9RSDlNWGppT25yVTZW?=
 =?utf-8?B?VDZyaDNTQzVmclZtc3lFa28ycWluMUtTRDVBOHdSOGpXb3FXT0V6TGQwWlMz?=
 =?utf-8?B?ejdvY2FhSDlxS0Rwc0JPVW8vd0lTZnBzbWFSeDczLzloRkh2bU1EejFQN1Z4?=
 =?utf-8?B?c2VNRTl1eG5ZTTEvV05ZSjhieE5ac0RZdUpqUWdtSlhpUHhPb3JmSFdjWENU?=
 =?utf-8?B?U2k4Q0c0TndhUk1Qa1hnU0dYRDJCMHdrZ1cydmRjNFJXSlJOOS9md0VrdmZh?=
 =?utf-8?B?SlNTMi9TNlZWUlorWDcvUUNYajV2US9QWGQvT01OcnZaMGplSEpqMlpvc2xh?=
 =?utf-8?B?QjRYMC8xRTlWR1B2emFobzRkOXBlVExMSENlUW9xZVdMUTRHUFpDSXN2MXhx?=
 =?utf-8?B?aU9xYTZKNmlwQklEOHgzVUtsTzVndWJtWlQrbmQ5bVdDNjBUekZsNUhMNVVF?=
 =?utf-8?B?ZVZKd1poUEZkYmx0UkVod2lqMStJakdDeGdYOU9vMDlxc1VEd1hSM2VxUDUr?=
 =?utf-8?B?TitRcGh5b0tPUFpwZDhMbklDKzFtRnI0ZmtLZGZWclBCMGh5MjcvUmp6L0Z2?=
 =?utf-8?B?bU5mK00yaVQxemEzaGU4YldwdjVCMGFDR1F5LzlVbWU3SVlGeDZ1NFUwMjU2?=
 =?utf-8?B?eU9NZlMwSFJBejVXRU11T04zbnZqK21SNnpRS01GdG5YNVBOdzl2WWREdlFT?=
 =?utf-8?B?c1lmcmZYRW4yL25wR0d2bjdGeUJtdGpwbWpYTkpLSnJYalZOWkpGT044UU52?=
 =?utf-8?B?dXQ1TE04YWZ0Q1F0OGdML2x0WFkwcTkxQzJqNktJZHZaTDlrTlNwbU5kQnlo?=
 =?utf-8?B?RUtwNFdZcWtVWVQ5cWZTYmVBd0w4eWJsQmNLblUyOTlBVHBZZTVQbWhRbUtZ?=
 =?utf-8?B?ZXg3alc0bzM3SmtOSHBMNmVUY01Qd1Z6ckJMdjFCZnFsUGM0WEVGRWVoSzhh?=
 =?utf-8?B?K1RJMTF2eDNmSUdnWW9lVWwzSmhCRmpyeTVWZWkyTVA1OFVtenNUZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bd5d21d4-6e13-4c09-ac21-08de6a268b0f
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 11:04:50.9269
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wxp/SG8GX1UXL22pwcsfCajPnUOTxzwTP4pZF9pxugEE1+AzavUbjUsJ+yMqNgozLM6cOj441lpRskiw2ZSTKh52qeIwTB36OHkXGORKSSI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8401

On 12/02/2026 9:30 am, Jan Beulich wrote:
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -12,7 +12,7 @@
>      Xen-Version: 4.19
>      Initial-Release: 2024-07-29
>      Supported-Until: 2026-01-29
> -    Security-Support-Until: 2027-07-29
> +    Security-Support-Until: 2029-07-29

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:05:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:05:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228728.1534856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUVl-0006ZT-8O; Thu, 12 Feb 2026 11:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228728.1534856; Thu, 12 Feb 2026 11: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 1vqUVl-0006ZM-5O; Thu, 12 Feb 2026 11:05:29 +0000
Received: by outflank-mailman (input) for mailman id 1228728;
 Thu, 12 Feb 2026 11:05: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=Z4gJ=AQ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqUVk-0005P4-0Q
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:05:28 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bc4ef35e-0802-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 12:05:27 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA5PR03MB8401.namprd03.prod.outlook.com (2603:10b6:806:475::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Thu, 12 Feb
 2026 11:05:25 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9611.008; Thu, 12 Feb 2026
 11: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: bc4ef35e-0802-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ayNAulJ58Qh/rcoptWv3H4j+yGrbOCLqA6V0BlvX0NDCQM0OA5DwPnr9DCBMRv8NGh+LZyfODTxH+eusTjljhYkbjtPWnhXuTOsQVc/MUXQA2vKTZeI4MLlXZhWDAEA8nZI7GNEVwamudzu+lOrg25Hf1O4v63AfSq436vTwq5iE1wVikoERCjA5RFv8AUhaDvBRXH+aJdrMKC3K4HJx8JTnNoEoFeq8k9CTuJR/jU1uuGouxR6JElC543jX0kBDu1BuQDTJvuIYroOyrnZrrIXd2X8NVxgjtpDSAIn5IVof7o7QrEApzKAYHvWIfPZllki0xn+jz/YhnuArbROJng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oA5AyRN4H8sBFsKz48Xm0baCgvzqXPpzJoj8jMb+ylE=;
 b=B7qDmPQPvXzeMxMyG0AHpnw4GLBk0Aek6/BznoRvOg8LjnjgYB52PKMv5vrUnlSK5ACLK7KLJItJDsf8R1GPahgp4V68Icp4ib1dxkwOTUJMduqlA/X379LYbt3uCBr6qCi9mkcXJKM1PGwJgzSSrISoTs32CwtQEbyh3KiynZbcP3nWdgGbflOpM4QxKTUV3z6t01QX4f1nEoagF2myNrTXVipc9V5r8EYQU//ovIUsU/46b+DoSoM8AM9psLEawgiTar1X+sM/KkVppDxIahvKSRjCjlCkYqfwImVlswWRNEfCCMmEVPZNwWAmpKiIEaCSkdc7IXRhQ7MZlSKYFg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oA5AyRN4H8sBFsKz48Xm0baCgvzqXPpzJoj8jMb+ylE=;
 b=uiGJwAKjpacqG+pR4ditQitFpyU3F0xl1uvpGhPd8aOBkm1P9cenWgNsLxmDtCL1OLya9WIinR3n2kAkXkbPG4pV+a7hPdB8IOKIzt/jLSMXCci2Ov8Du6mBXvifhxx6WlQsUnKYECGsKh2nIzXVvL+5EhPlfWhr4JoZxuLl0qk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <6719f603-6d96-45aa-98b3-e069d9be68b7@citrix.com>
Date: Thu, 12 Feb 2026 11:05:21 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>,
 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 for-4.18] SUPPORT.md: extend security support "lifetime"
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <eaac7ea8-08d9-4e60-b991-c76ee3f3e9af@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <eaac7ea8-08d9-4e60-b991-c76ee3f3e9af@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P123CA0046.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:310::8) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA5PR03MB8401:EE_
X-MS-Office365-Filtering-Correlation-Id: 6ceb53df-11ae-4fc7-1797-08de6a269f87
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?bkt0YTltcTFiSEN0ZHpmUG9WcjNod01ROVp2dVcwMi9HUzl5NmY0M0Q0WnVn?=
 =?utf-8?B?WUFKU1JaQ0lHSkVIUHltOTNyMGRKTjRuUmNhRVlSZ1NrYkI4dHRRYnRVRjZC?=
 =?utf-8?B?M1c0SlNiUjhza2JwSEFlNGpOYmd5K3pZUXhybitoTGU0VFpyMFViSnJhbWp6?=
 =?utf-8?B?V3pQUlp5eWlieVkzMnJhb3NGMVdkTnJ4SkYrbTB5NEo0WDl6K1NsWkgwQnhZ?=
 =?utf-8?B?dWczMEhKUlJBU3VBYWZoY0ZONWdMd3VlaXlMY0Zia2lwRU5UejBkSi9OTzlh?=
 =?utf-8?B?OEVLcUFhVktyT0loakh1aU54SHk0UGF3MmxNdVBiSEdkT3RnbGVHemlqN1Mr?=
 =?utf-8?B?eVh5ZCtUVXpta0hpZU5lZ1ZBSGVKZUNFUkFzbTd0MlhuZjVlMVdqYjZVRDM5?=
 =?utf-8?B?cmJWZWJPWGFhTkd1Ujk1RXRrWG5pY09MM2hUanBpcmUzajljNFcwSVErclBn?=
 =?utf-8?B?MmhOcE45NVhCT0dmTzYzUDNaVEFFdlhpVUdmM2s0b1hrb0c2aFVDZXNoemwz?=
 =?utf-8?B?TVNnaTVlSVdhbFdRcDBPbVpaN1g3SGt4aEQvN21KemEycEdkMzk0VWJPOG9w?=
 =?utf-8?B?QUdzYmlBN0lCLy9DMFdjWENFV0ZpQzJQLytMem5QUkIvejYrMVliUzc0WEx3?=
 =?utf-8?B?NGFDS05MQkxBU2xJRjBtZHNaTUxnNHNRcnplQjJQNndGSHp0SFM4WVdhNEFs?=
 =?utf-8?B?WFQySDVzUDcxcDNQalZBNGEzd092NWFOSGxPRk9Cc2trZkxRQkRIR3ZTSzdK?=
 =?utf-8?B?Mm8xT3VuNUF5SlMvbjFMUU5nT2FyWjNDZ3dJQ1hxZ0YzVnZ1bHdiekVKWEE3?=
 =?utf-8?B?b25EMkRYdE5IcFB0SUZvZnQxYktqWGdRdGN3VVZHMzE5Y2huNTlOdXl6cE03?=
 =?utf-8?B?ak5MTmV6bGdsd2wyQ2NOYzRWMDNnb2daMlR0dnVISXZ4ditzZ0Z6MjdISld0?=
 =?utf-8?B?QStseDAycFROZ0NTQ3JVM3hjQlN5QVBoeElCL2EzQjRFd2Q4aUhiNzY5MDFm?=
 =?utf-8?B?WWxmYmFNbHprSWcwUUU4NkZRWlR1aHhTaktxY2Q1Z2lLZDB2M0p3c010V2d1?=
 =?utf-8?B?QitOZkhKb2MyTSswTFlRVEg3OGNiS2M4SlN1WVlYYTZURXRoQytlU0tjNnor?=
 =?utf-8?B?UDhqaWJmQzRmRHVTMTZFZmtlNGpGUnJXREE2cysrYU5Ubmk2OW05RWZQUVJ3?=
 =?utf-8?B?Q1lsMHE2Y0xENUtZU3E3YkYyc005S09LTzNoZDZlc3o4dk81Mk9XV0tqR1lm?=
 =?utf-8?B?Uk1UZXh3V3dRR0NhVWN3SXhEVzc0V2RLdGRpSlNGZXBjbENlbUJ4MFU1TmhF?=
 =?utf-8?B?NGNsZk1yZXFYUHc2NCtaMFp3V3hWZTN6Q3djeERWd3N4b3pBTjJMRjk4TGRq?=
 =?utf-8?B?eHlEYk5iTE5FVHJXZHZTc2VSQ1NxSDJBS1hpZmgzbTJLTXAyeTdWaW9Ma0JO?=
 =?utf-8?B?MTBxRDAxcHdvSExIbWl6MUNxSWw5ZEpoMFh2VUU0TGVENkJ2VStjaHhvMGpF?=
 =?utf-8?B?NHN6YTdORUhxUU05TmdXZThwcFN0ZHlpM2UybmJaZDJpMmFSYWRxRXBwTFV3?=
 =?utf-8?B?c3ltcG1LMW5QNU1qNEJvSEYxVmxUQWhtVzlKZGo4NVNVUUdKQXhKOEVrbHl5?=
 =?utf-8?B?YUo0ME54MXhHYjVQRHFYWUIxaTRnazd6UjdSS2FEczc4bWpkeDd2ak1Gc1Rt?=
 =?utf-8?B?b1dqWWhXRWo1bmo1alRnSStSeVQ1M24vbkxSQTBZczdVRDcvUEwyRmgxTFRG?=
 =?utf-8?B?cFkwSjlQVVFPR3Z6UXNDeGV3Q1JIUGFMNmlsaE04bFdQblQ1N2RiRWdka3FQ?=
 =?utf-8?B?VGNYNmZXV3N2YnJWMGtwS2ppSTRSOXNnbWpzWE9mVjZhUzFpVzVwQXNSRzA2?=
 =?utf-8?B?S09kQWVOcGxQbGovd3RVa0hEWW9VVVRNOGh1WkhMUG81bXRFRUtBOVdDemRl?=
 =?utf-8?B?SnZNWDU1UDlWL0hQNGxUZFdNOFlhZ3UyT2NJQ0t2MUtyZWY2VEJhSTEvdTJq?=
 =?utf-8?B?VE5EK09jRUhZNml1aHNmczRFdTd3aTlDNTdkQllRN0RhcmE4amFlNXo1MHlR?=
 =?utf-8?B?ZWxrdUFtZUhJamNBRXA5SXNYKzUyUit5WWJSVFVJSi9Bdytjek8vcDRjaTFs?=
 =?utf-8?Q?Sl9o=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Ynh1L045ZEhma2tWdkJwd2ozZncxcnVaVjBHZ1p6RE5SeVpUckgxM0g2S0hQ?=
 =?utf-8?B?VHU0RmFzT0M5L1dQVTZyNU1xS3lQQy9ZSGxkQkJIZXA1QXFFQW5Cc2o4UFBv?=
 =?utf-8?B?L1BFeVpzWTlCNWdwNm1YbFh4ejRIOVJFdW1IVFNLMjk0ZlZxMnJWazUxdGt0?=
 =?utf-8?B?MWFOR0xvOE43ekJTQ2pNY3QwTGs4SmhNOFRvaFBnZmZ3eXA3dG51bExVTjdh?=
 =?utf-8?B?MzlOWnhsYTcrL3BpRjV4Y3VLNWdvTEVxZzhRbUJ2c0Z6RlBvaytZOUdDSnRm?=
 =?utf-8?B?L3FNNk4zODhTZktTRTNZaENUajJLVGQ0RzhGWlplNTNUR3lCOTY2UHcvVkpS?=
 =?utf-8?B?QTl2YmFjeXppQXh3OUtOUUc2VDlIV05JVmlpVGtZMXdpdDBzRE5FR3dad3hh?=
 =?utf-8?B?bFI2RGlyTjgvbmpHeG1TcE1VYkEweXdvS2I0VHduTFovRFNPLy8wQnJ4aml2?=
 =?utf-8?B?b2thUHdLcG1BR2hHNEtIbVZzTDlERFhBWVR3TlZ3M0x6bGFxOVNUMzN3cG5N?=
 =?utf-8?B?S2V6MHE2RUpFQmd5SmZGZXEyWHBVS3B1RENJVHF3WkhCd0IvUTdZUnJyUEkr?=
 =?utf-8?B?Q3kvRiswaUltRmEzMkFsNDRRYndkL2FPVXhUSXpOY2w1aFh2S3VSQlJkbUx5?=
 =?utf-8?B?THkwRlZUcUlOSTlGTEliN1Vodzl2R3dCK3RMN2l6bXN2RUI1eVB2T3B2aGhk?=
 =?utf-8?B?M2txMVBSR3hzOEFtcnlKazNxQTJpWXVoNjdlWVRMYUFtYjNYdHN4VU9JaFJr?=
 =?utf-8?B?MzlhQzl2d29hK3VQUEgvN0dCaFJTUnlIQ28wcUJmS0dnZVM4ckNHRGhTUWJi?=
 =?utf-8?B?aS9QVitNZXZLRE9Qd0RlSDFTMnRyNVgzamRHQno5VlhIVWRzNlc1YXdpd1VT?=
 =?utf-8?B?cHdOcU02d2pLYVoyME16UVk0dU00VnhYQU5KeEhVZDBjcnROaDJvM1RSRWlo?=
 =?utf-8?B?cHBVRzdHKy83M0NvcVg4Rm0wZEIzaHNmM1E3aVFUMDVRTXJZc0VLSlVRMXR5?=
 =?utf-8?B?TnAxV3ZTbEMrU2FEWlhTS3ltT28vYkNqbWhPRzFHcUxQKytLNEZXbUQ4cktB?=
 =?utf-8?B?U1JIeENPSXFpd21Vd0xnQ2dNa01ZOGpHSW0xQjQ1MUZBMGRqcmp2RjRPdk5O?=
 =?utf-8?B?Y01PRnpCcDVqb29GS3ZDWnVkTEJYY2crZEtUaVBMYTdjcGpwdFlyZ3lYbXRv?=
 =?utf-8?B?ZXE3NWRFNHlaNVVoRDJROGlEdll6Q2YyKzlJaVpHMkxabC9XYngzRHZIaFc3?=
 =?utf-8?B?Y0tiaEI3ZlpLaWQrVmRQNDZ5bnZtVnMxa1JpekQ2TzEwQndpZzdJYy95Y1ZX?=
 =?utf-8?B?WnpvRi9rRTdlT2tpQzYyWWZnUGRWdCs5OWcwSWRwMW5TUXljaGlheUd1b0dE?=
 =?utf-8?B?Y0taakVRTTl2ZWMyeUgwamFBdkZCRm9aTDlhMGY1QVUzVkNBZVhZN2IxZE9F?=
 =?utf-8?B?QVZwdjNYTm5jMVNuN1RUenk5bC82UUVxY3NiZzhwaTVkVWhmSmVOMXZpczZQ?=
 =?utf-8?B?SlhjUmdmTzB4QjlkK3FMR2NaZThxbkp6UkJCaEh0OENGaXE2N2R4TEJWZHBI?=
 =?utf-8?B?anlkRGI0amk3OCs2TnF5WndFMEN1Y0I5VGpjZ0V1RlVZY0VheE1adGNtVzl0?=
 =?utf-8?B?bEhnZCt0dW9SN0h2akhIMmcybndiMksrckxubUx4UTF4b0grWko1d0F3bzJZ?=
 =?utf-8?B?aU9qM3dwc0pMTENOeFU3RzQwTUkrV09IRkgraFFnakpRcE1iMm1mWVg4cE5E?=
 =?utf-8?B?WDJLN0oxdDJ0RDk2c0pmUHFNZ2dwUHYyTVFacVc4Q0dGUHU2TGtjdGpCVHFU?=
 =?utf-8?B?K0FVSmJkWFBsNmlueHpoVWlFM2Q3NUFUQUUvYkVsMm5JZFZodGQ4NTlLYUxo?=
 =?utf-8?B?T2s2bG1uYUFZVUxTQnJzOGJuVkdKbnZzQmVsQk1oRDV1NzFTTEgycWpLc09G?=
 =?utf-8?B?SldhUkpVdWN2SUhHL25IeHlKNUw0T2g2UERFOVlWWit5QVcrcVZqelpMdFRw?=
 =?utf-8?B?Wm1XbStaNGhCUlB4a1ZkY01ZMjlEQWxLaHFaV2p3UjdVUko2RkNHUmRBM0ly?=
 =?utf-8?B?SHp0WkpLU3FmeW5mcW1SNzcxVUVNKzJUak9UZ0ZxQkNoWEZOWGFsTmp0WjdM?=
 =?utf-8?B?TmlGcjR2WnZwVXpqaXZIek4wdVB6Mm1VQlBXS2psSjg5aWtDcXNZM0RRdnVn?=
 =?utf-8?B?WkdqcFFUa1ZNN2VkbGcwZExNeVR4MUIzZHpJWWM0Tll3YXZXTkwzN2JvRHBU?=
 =?utf-8?B?OEhtVWxkdEh4QithU0FmdE93a3RGWStRc3ZDTVZDV0UxbkZqVEZUTHlPOWI3?=
 =?utf-8?B?VVR0US9Od0RyUzc1SC91aHptcXdSOXVFSm9BZ1pOY1VjeVR5MWFqUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6ceb53df-11ae-4fc7-1797-08de6a269f87
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 11:05:25.2720
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5cr+ppiakorasvMSdosICz1xhxvSqby0yzyf6xDAVC80LDSNy4IOZlrghd+eoNqBHm4uxYQ/6eDWxSv7AkomZg5B2GFdHquVu/n/LWsVvwI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8401

On 12/02/2026 9:31 am, Jan Beulich wrote:
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -12,7 +12,7 @@
>      Xen-Version: 4.18
>      Initial-Release: 2023-11-16
>      Supported-Until: 2025-05-16
> -    Security-Support-Until: 2026-11-16
> +    Security-Support-Until: 2028-11-16

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:06:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:06:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228741.1534865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUWL-0007CT-KC; Thu, 12 Feb 2026 11:06:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228741.1534865; Thu, 12 Feb 2026 11: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 1vqUWL-0007CM-He; Thu, 12 Feb 2026 11:06:05 +0000
Received: by outflank-mailman (input) for mailman id 1228741;
 Thu, 12 Feb 2026 11: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=Z4gJ=AQ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqUWK-0005P4-7a
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:06:04 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d181926b-0802-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 12:06:03 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA5PR03MB8401.namprd03.prod.outlook.com (2603:10b6:806:475::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Thu, 12 Feb
 2026 11:06:00 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9611.008; Thu, 12 Feb 2026
 11:06: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: d181926b-0802-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=M3t/t6g/xq9XiR3qISzopgQFAqAWm10d1fp1y35zXA0KnN9LSQRDXf2jyH1AYBgh15i5DMybmJDDpEIJgfeJp5LQL7Lj9lKeJJXR7HrM2GdXphR/Nd7IO+yleO+39yomBbg2TjcY0w4dmUj7RJMos4POcBmLP6UBILcG78tLHyG/srBEgRch1jkoPCMmKOq02q2A+4aezIN4NYEUMnU4oeTsg3BJuZwbbpTxSzU+dpD6ocg3H50tFwjo8FBy2G16mtl2FoCEUUu/huhhGMT9I5TjlxeXlmzjI8Dd6qFd0iUMoUt+DPYQ1c/SlXQuNY6d142fGnI8NCfyDZukK2HU5A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lG/BICPoF3FogZ+K7gnh8sUVzKfYmKdMfZkDtj5g4pI=;
 b=g3CU+YN3BkT1y4FV7EpjnZSbllrSSfO+fApDlKMlZ2jckR5b7DQllDlgBzpdooOM0G2l192kBWnWzV5i5yOLZWns0tuA7m1dZf3T/E/tdYGqQTr2Uw+HWOmbTVIdqlZncSEW31Hm2Wn7/OUcnNGF/EzUWyFi/shMdAc4MLHgBP48L8mFam6aTew28Mvkuw+T5ZPzAzhnILwTtqr4rpyOXx7uOxUlxA4WNorp7qC06tEAketOZdmCgQ3bUtjLXsiVBSkOrQNkP1Z9OUy21XTNH47kgX7K9QRsZVWJUuC4nlXrpUL853+0jzgU0k2GHlaKrOsLBXTakDOzJxhG2QgPow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lG/BICPoF3FogZ+K7gnh8sUVzKfYmKdMfZkDtj5g4pI=;
 b=JKK33xOa+c98WUPCI3gjNJp8EtRRp6Ru9cWNH70nlbCiHV3WEYlElK0Dt2S1zHW3iCEiR8uWOpEAL/RiWmApszu9dJEjYUDq2XV1048Zg1+Xbmm80kDOtjjwkKg4oSCDBf351qONnl7GzNLYwpoO5LVKeyRf5Jf6f8pdZ9wdqpM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <64c6d982-9bdb-40b7-96f4-01c2536b5922@citrix.com>
Date: Thu, 12 Feb 2026 11:05:56 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "community.manager@xenproject.org" <community.manager@xenproject.org>,
 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 for-4.17] SUPPORT.md: revive for extended security support
 "lifetime"
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <df668fb3-b3b9-4f37-920f-b1aa653a35de@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <df668fb3-b3b9-4f37-920f-b1aa653a35de@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P123CA0052.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:310::10) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA5PR03MB8401:EE_
X-MS-Office365-Filtering-Correlation-Id: cc076426-dc93-4ca0-769e-08de6a26b4c1
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?RGdrcFV1cXpwZnZuTUFNblJVMzBkeWZGSldQQjEwN0orcXB0VVFWM2xvTmZM?=
 =?utf-8?B?SmZyeERicmtHSlFaUjV2a3VUc2pQdVh5NVdzTE5UN1libXhJTTUrTmJiSjQ4?=
 =?utf-8?B?anJTS1JqdGZwRG90QXF3ajJNNjRvdXppTk9rVnc1Nk1qVE1xQ2ZicGZONzJI?=
 =?utf-8?B?MnB5Ym9QeTJzL2VIaFBMOGQ2cXhUT3ltVVdZdHNIREk4RjhzTkQvWlUweGlt?=
 =?utf-8?B?alBIQVIzd2hIVWI0dS9maXhxemVjWi9YNXRzTTNlTFU0R2NMQTFRMWMxbWM4?=
 =?utf-8?B?NlU4NHd5RTNTdmw5NEFQR0JMTzJBMkNuYnptTVlXTStoUzUxMG5LNHBtanFS?=
 =?utf-8?B?blpFY25qdDhPYTBxQTFvandPNllYeS9DdURBdU93dE5lMlF3MHRuTWsyaUhZ?=
 =?utf-8?B?cFZPNmx2K0lrQ3d6SExXNlVWZlcxTVd5Qmd4WnZNcDgycUlqZ2RzOGJqcXVk?=
 =?utf-8?B?YlNGLzViVElObTJWOHBhckp1KzJHL2dCRnk0MG80eEpQdnFEVDNLTk9vMUVI?=
 =?utf-8?B?bXVoclZDTVZNd2ZUc2I0dW5TVXM5S3ZLSzA0cEpWeTFZWUZTRDlITnA4ekRl?=
 =?utf-8?B?dGlqUnlrMGpVRWFIdmZ6clFTQnlMbDM4YytxMDZudkY5aXlCQUE2dTYvU2w5?=
 =?utf-8?B?R2xCOXhwTFNCdDFoOGdOWTZYOXl4eDArUUdiTEZWRkljR2tpY0VxdjFqYmZG?=
 =?utf-8?B?TVlJWmczUjNrOFEvWURDdXNtNGR6S29CeUw1M2JFQzlmajZZMVBLenptUXY4?=
 =?utf-8?B?NVJKZVI1WjljcUpqb3V4Nm52U2NVaXZxanpoY3hjdE9ERjZ5c1JxQlZ6R3k3?=
 =?utf-8?B?eG5ZY3ZWK3gwaWhpU0lEcWNCNVBoaWZMZ1VieDFlN3ROZmRxNGRrTUJVQXFE?=
 =?utf-8?B?bjhCRm5seCtWaXdRTTZPaWRVditHU2x4WjJ5NnRVN3N5empFdHRXZ3gyMGpy?=
 =?utf-8?B?alNCa0ltU2k5RnQ5ZWFHbGRUSUVVRW51T0p3NEtRV1VScmdRUGFuQkhJbEl3?=
 =?utf-8?B?bTl0cEtkMWFQTHNDMFM1Y2dhenlBWEtvQzNXS1FQaXYyVThSNTFZOStPcEVn?=
 =?utf-8?B?amQrNkpBZzRWNmZmM0JlNWxOOHhaQWxFZGRyZUd2RklWSW10Nk1JVFZlTjhM?=
 =?utf-8?B?d0tzeDRzR0dJc3lOeWZFZFJ4RExxZWgyR2xEa3BvNkZoZkxaQW1qTTU3SVYz?=
 =?utf-8?B?cFBUYklrbitkb2h4YkFFVWZwREw5YSs0MjF2TXRxKy90TDJyWVdxZm14aE5Y?=
 =?utf-8?B?R21qZmxncUVLTnB4K1JlM3poc1p6QUFCeGxZUTR2OUNlKzZJNldlT3V5NjBB?=
 =?utf-8?B?V05UL0pLanNSOXl6TlgrcE9kMXhrcElnNDNNR2pybU1VOVFnRFYxUVI3WWxk?=
 =?utf-8?B?dkpNZzVzTVQrZkNzN0RHazVqNlVHV0tLcnVockJtMzM1M3VUMG5qUU1SMjZu?=
 =?utf-8?B?ZnZod1BwTzkwSmsxUmxBWmJaMnhPVW1JMW5ieVV3aENxMk9GRGEzdWNpa0lq?=
 =?utf-8?B?S1VJNm5zK092Tm94a3B1ZUZxM3VrWVZxMWV2MnV6RnpnWWlhUTNoZWM0MmQy?=
 =?utf-8?B?RVNodkozdnIzOFlNNlFTU1ZNU1BtMHBVRjJOY0hEQlUrOWNkb0ZualN0MjZJ?=
 =?utf-8?B?TmFLa29zZCtic1ZoZWRwUVNQalVrTUlZb09GRzUwYnd1RytxTW54aFpEMXIy?=
 =?utf-8?B?M083SEdFaUtXeE9vb0xrUXE0elJxanJ2MWI5Q3hzUDR2M0dRY3huTDl0enFi?=
 =?utf-8?B?SHhpNmVsdFBFRGloRjRZb2l3M3pNTnR2d2tVOE5kNHA2aUZkL2Fzd3RWZXgv?=
 =?utf-8?B?MXNtdXZTMm9JeVQ0RTNEelZha3habVdlK2FLbi9OWUJFOWh2bFR3Sk5RTGFz?=
 =?utf-8?B?aW90M0ZrdmoxRmhEVE0yQU4zRU13ZjdIWXcvcVMxWVh3M1J6TVZxWDYyZWhY?=
 =?utf-8?B?d3pYRGFkUzVBU01hSTlpeTZMbU5xN3g4bjg4VHpJdHFEcEJhUVhKM0ZwRnBx?=
 =?utf-8?B?WlNmWmpaTFMrNjcwM0RjQ3pJQmJyRUhUbE9TM1VZdVdnMDJOWlpyQ3ZObTlv?=
 =?utf-8?B?dCtlcGdWTEl3d0RpNlYwNGI3elhTVXZGb0RNVDdnMFl6dHpWV0hUbmNVTEV5?=
 =?utf-8?Q?ctQw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WkFEY0lFYXd3ZXRvcXlIOWNyQ1FUZXNGN3pHWU1WQStJZFNEWmhoTjR1VW5L?=
 =?utf-8?B?NWhlbUFYL1hCUDBObmtCNVRqQmlKMVJ1WkEzWE5mSS9iQWpZM2FYbW9lM3Ri?=
 =?utf-8?B?bnNhOUE5T0FWNFIvSjVBc2FiQzFDdWZxWlIzZS93L2ZPeWpiU2kra1BzWjNw?=
 =?utf-8?B?cWxmaVRHeUFFeEtHK3ErTGl2T2pWRjNnVWlCYjlCbkJjQ05xdS9YV2x0bmdh?=
 =?utf-8?B?Qkt0NGpZVkphMm1BZTc0YVJHSnB0TW1kLzEzditwUGZldHlFVjVHVlcwOHZF?=
 =?utf-8?B?QVY0bTBXTmo0bUZBbWdwenhYY2c1akRuY05udFVHYjRUTUZnSFo4bDlBWmxz?=
 =?utf-8?B?TU9pMXkvTkErdld5c1p4UWxESUNOcFJzeEkvS01uZlVBdjJOQzlPVGdVb3hG?=
 =?utf-8?B?eC9XN0hucm9iK1JmM0R4eEpKV1VGNEM3WmhrbzE3MTd3by9TekZ1MVNpOXFP?=
 =?utf-8?B?Wk1BY0tOa0dmY1pFL1lXRXQ5b3BUL1BHZ0F1WGRRTDl0QkpjTEkrNDV1YWlq?=
 =?utf-8?B?ODdXdDhWcGg2MnVrU05ralN2UE54NjFZSUJWUGlZNEhCYmZVQ09wbjdLMkw5?=
 =?utf-8?B?WSttdUVGMEc5N2ZGQzZjK05XcmhHeVhQKzRhMVdCcFVRWWVRQ1VvVHFGV3lm?=
 =?utf-8?B?V3hocG5MTlVpaW0wYVovNVNpaTlUaGttVnVqNUo3dEVlcXRiOEh6QUpXQ09I?=
 =?utf-8?B?VGM1RGxuNlVKVWNBU0QwSzRRbThwb3RGak1qd2p3ei9LbCtEZDZFUnR5RzQ3?=
 =?utf-8?B?ZHRZd1FuS1crVlluWXJNSmNId3JJRnBYSEVwbXltV0lJSGVPWWQwR3BISkYr?=
 =?utf-8?B?aEhPdmZneXZVQlZpSzB3KzVxbm8yNDhDQkcxZ3l2WndvUTlzbGxvdGZoQXpC?=
 =?utf-8?B?Y1RoL2djdTd4WnR2UEo2QXZJeVlzcDh4eXYrSmlpV0lFUGRRNTZRT3NVL0p5?=
 =?utf-8?B?Tm95cUpYV1o3ay91akVVblF1RTVkaGh3bUgyd3drVUxxV2NjS3lnbjNlR0dW?=
 =?utf-8?B?cW1GMk1NMzFtbWlSUFgrdUdKT3VOVmJMcksyUU84NE5sOFdCaXVxN1JzOEZL?=
 =?utf-8?B?VDByQ2pFbGx4K0dsU1Nva2MyVHFnSXRIdnEvYmdGRFdVMUswUDM0OHRJZUMx?=
 =?utf-8?B?VE0vK28rVThPeTNTNnlzMFhtNnlmODhVbFB4MHF4c2RTeU5xam5tMnRrSnhD?=
 =?utf-8?B?R3dYellKc2ZRdjRLTldUQ2hVVXRPeklzSm1BazljcVY0TnZvek0wWWIvdDBU?=
 =?utf-8?B?SkowTFozNy9ab3RqZ2trNkdGZlIwL1prejRnREdrbXJmeW1UaU5JTTdnL2hF?=
 =?utf-8?B?VFpCanR6VWsxdW5oeGJyT08zNDBlOHJXNHloaVBjby9xTHBaVDR3Q2M5alhI?=
 =?utf-8?B?L2oxNzBPWnJPRUc1ODlKOEdHRG9IL1N1NWM0UmRDL2FSS2N3K0l1NWhXcUFC?=
 =?utf-8?B?eit3UjRvSXZPeXNPUEtEc21zMUJQM3QzT1F0aWlyZFZwZ2Z4RXppNm5CSEdi?=
 =?utf-8?B?V1hEUFVwNWFNVlUyeUdnYURHSEtMYlBjN05keVNTMVBzWmxoeWdIM0poa3dH?=
 =?utf-8?B?S1pTYnZ2V2VmNi8xb3VNejM3Ymh6Y3NaSVNJbGMwZnRHamt2OVJQNWhCMi9Y?=
 =?utf-8?B?citQbHVoSVBSKzhScTk5VStCRk45bWlxVGR1QngzSUVNU0FMTkNPQXRNTjlu?=
 =?utf-8?B?ZzFDZFVGYUVpTlFQMDA5WjhvQ29scXlXeEcrSmlQdytReWZRMG1CbmNhbXJn?=
 =?utf-8?B?UVpaZWhDaXdDTGRvTE5reVV2SnBtK3JGajRhaGFpTFloU3o0ZVpvd0htL3Nx?=
 =?utf-8?B?a211RllMOVF4REVCUDFUTEY5ckhpUitMeUhyU1FONFIvYVB2czhJdEY0Wlk2?=
 =?utf-8?B?dk1vUmx2KzlMZHNROEhCM0ZFK0psRzZBQ3BxWUVqWDhLMXV2QkZhYklUc3pj?=
 =?utf-8?B?QWpDbFB3amVRbGZ1bUZTMERzMjRtOHJSa3VIR1ZwNXZZcHNCcmY1Z0xQNzRi?=
 =?utf-8?B?VmJnYkRyWDBNSFc1eUpUL0NuWWI5bUVtaWltYTdpamJSVDNxaklRTDlnTlhE?=
 =?utf-8?B?REl4K0pCT3VQZzM0NFphZklYU1pBTE1TMktvTDZhakZ1a2tEQy9hZnRPU3dO?=
 =?utf-8?B?US9wa2xERStFNGUrOEpZRWhSRVlNZDFvbWRDTlJ6RjhoclRQdlREbXBLaWZW?=
 =?utf-8?B?TDFFTWNBK2JHTjdackdTZStWSkV0QUF6MDd5QlRzdUlHd2Q4ZjVTQU93TkIz?=
 =?utf-8?B?OWQvYUM3bmdMK2plaEVJaXVmNk1NQTZBWTB6aG5jVVJoc3VNc1dCRFNNc0N2?=
 =?utf-8?B?eURuYU4xOWc5Q3lDeEo2L2wwYW9pV0tLbEVXbFVLVkhlMlE1R3Fodz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cc076426-dc93-4ca0-769e-08de6a26b4c1
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 11:06:00.7581
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: PehOzqlNNwZ690rB/ma3LI65v7mRMLYUitEfhKWwbn1Md47mRiUIL9JbhQBBVOb7EtgpGA8T9hLNbwX9HAmzkh8TIE4XkSuh0fZ5qLJD70A=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8401

On 12/02/2026 9:36 am, Jan Beulich wrote:
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -12,7 +12,7 @@
>      Xen-Version: 4.17
>      Initial-Release: 2022-12-12
>      Supported-Until: 2024-06-12
> -    Security-Support-Until: 2025-12-12
> +    Security-Support-Until: 2027-12-12

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:07:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:07:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228750.1534875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUXI-0007jm-TT; Thu, 12 Feb 2026 11:07:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228750.1534875; Thu, 12 Feb 2026 11: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 1vqUXI-0007jf-Qs; Thu, 12 Feb 2026 11:07:04 +0000
Received: by outflank-mailman (input) for mailman id 1228750;
 Thu, 12 Feb 2026 11: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqUXH-0007iP-SD
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:07:03 +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 f4d86285-0802-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 12:07:01 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4834826e555so41035215e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 03:07:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d930902sm163406635e9.15.2026.02.12.03.07.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 03:07:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4d86285-0802-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770894421; x=1771499221; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FDo8r25CrlKnFiqlK3BapE7vDtmMPvTDiE/pA/GmLCs=;
        b=dFJ0VltYsXwYHrFq5f8o3dZBtdpbZXOjVFKelx6vBFese7/bUIH6k1Viv+hemo3kW0
         Zoueg32YhwZ/YZhh9/+u6bE3dsqw4s63rNw3gCEGOBbde3XHG2UP7ROLyMiA16r3/Q3u
         H+uq710fjrcJHDzv99JJ2OolvFyMl4EKFfHqRVpJiXLQJpml/am1JBCgR7g5Riz7idv6
         dd8dcJ0PFoC1ee20fEbVsdTez3QUsbTuP9dQkwZlRVXaLQZ1Q7DjLFKqcQ8zTuCPRU8J
         qby18Mu7zsH4hF3DdfY/zdzPTbR7+LE0V+vAo0JavJAuHY1a82bGKzUo+bQRqrsPo1YK
         DFIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770894421; x=1771499221;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FDo8r25CrlKnFiqlK3BapE7vDtmMPvTDiE/pA/GmLCs=;
        b=JD05DINRpj7Ev/7pHPgeuufna/nnGDGZLcnNWasnGw+G4KxCb/DbF39vtHISxB36/f
         iNt9KtgYJlNb0jeypSbkbOLNqNMIzYc/sTO7ld+COs+rRagq+a3K7zaURI9NtMBBmLJo
         J6JgsH34DT9U2wbfi4VntIUOeB9eum5weYbSOcX20AK7CjU6VT5I5skIgmpR49yG+82U
         bvFcZuqh3+DWEAVnOrFHHYPKdfk+ToXwp5ESBaZrc691nYbk97AxN0QquGpPwhmaFOq4
         rmXpoV82unBGD1pMlfBSnStnFgr7ITj8eAzGSyogdPPgBZ1gAYHITlFur00nfWC1nyLk
         Ed5w==
X-Forwarded-Encrypted: i=1; AJvYcCWV+cukP4nD1+rOp2LfEbZk7CIPeSKBfN18gwahfLAjOrgCUL1LwePP8k5/bXufBHBtBL0bSlcmpH0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyFF36M8kpLksjlI3ThkrhkLJL8HoPNoyD+dYZhDAkO0WCfhzxY
	2gLxLjVzzGo5H3CAU4mFlV+hAWNtcbVh765bn/ey/jaFiCSCZItId7Cb1I38LxKpag==
X-Gm-Gg: AZuq6aJwTMYeuYe/0MA9yhWhndG26wgIBwsetEWSYBKCpMMpqhbphfgHUbAa/h+zjq+
	As/8mqGhr9f2ctN5ZeTwloDC3tkU1qDf66GNnj1I8hsqfj40VEpJku6+yZ1ZYWFpKC6hQou+/kF
	RFzjtYfV7cLOS0wz8/JsxYZlrtz8muLGXf2Z2NZ0SoeYQdcr/EV+MvE0sOllly71Hsh0tykwbe6
	OU8QCtCKnUO5/u/pnlVt1p4Dk3Zf/7Mfu2BzHD+mSrLp3P2eCNJcT2yuXUg42ULes7v2JQFE5s7
	E2vJ6Ewy65QF1x66GkqecwiRZh1OUYgnMpeG1k+yLA6K4mKSrS5MKYY+urSLgvxN0ku2H6yBtwG
	JP/WDOFXeWpNO+pQXfppMk1Qleo+mZRt4q3eH0gjUlSo265voqBAeCURYtjRlgXKSS3c3tvqE9d
	FAf3eF0aW03RihUuLRPH7eKWJJuYPKvvyFB/pAWAxn+a9NIAqFEX5bp5l5nCGavYhgzM6BTmhyl
	qVSmtXny4I0t8g=
X-Received: by 2002:a05:600c:4751:b0:482:f564:d613 with SMTP id 5b1f17b1804b1-483656c7d98mr32971135e9.15.1770894421078;
        Thu, 12 Feb 2026 03:07:01 -0800 (PST)
Message-ID: <dea3752f-1926-4fb4-b0df-305ebbea4aa2@suse.com>
Date: Thu, 12 Feb 2026 12:06:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] x86: Migrate switch vendor checks to cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-7-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-7-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
> @@ -133,7 +133,7 @@ static int __init cf_check cpufreq_driver_init(void)
>  
>          ret = -ENOENT;
>  
> -        switch ( boot_cpu_data.x86_vendor )
> +        switch( cpu_vendor() )

Nit: Please avoid screwing up style.

> @@ -141,12 +141,10 @@ static int __init cf_check cpufreq_driver_init(void)
>                  switch ( cpufreq_xen_opts[i] )
>                  {
>                  case CPUFREQ_xen:
> -                    ret = IS_ENABLED(CONFIG_INTEL) ?
> -                          acpi_cpufreq_register() : -ENODEV;
> +                    ret = acpi_cpufreq_register();
>                      break;
>                  case CPUFREQ_hwp:
> -                    ret = IS_ENABLED(CONFIG_INTEL) ?
> -                          hwp_register_driver() : -ENODEV;
> +                    ret = hwp_register_driver();
>                      break;
>                  case CPUFREQ_none:
>                      ret = 0;

This of course is a neat (side) effect.

> @@ -165,7 +163,6 @@ static int __init cf_check cpufreq_driver_init(void)
>  
>          case X86_VENDOR_AMD:
>          case X86_VENDOR_HYGON:
> -#ifdef CONFIG_AMD
>              for ( i = 0; i < cpufreq_xen_cnt; i++ )
>              {
>                  switch ( cpufreq_xen_opts[i] )
> @@ -191,9 +188,6 @@ static int __init cf_check cpufreq_driver_init(void)
>                  if ( !ret || ret == -EBUSY )
>                      break;
>              }
> -#else
> -            ret = -ENODEV;
> -#endif /* CONFIG_AMD */
>              break;
>  
>          default:

There's a change to the function's return value, though: When reaching default:,
-ENOENT will result, when previously -ENODEV would have been returned for
compiled-out cases. It may well be that there is a dependency somewhere on the
particular return value - did you thoroughly check that?

Of course this may well apply elsewhere as well; I did not go through and check
every of the switch()es you alter.

> --- a/xen/arch/x86/cpu/mcheck/mce.h
> +++ b/xen/arch/x86/cpu/mcheck/mce.h
> @@ -137,7 +137,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 (cpu_vendor()) {

Would be nice if style was updated while touching such.

> --- a/xen/arch/x86/cpu/vpmu.c
> +++ b/xen/arch/x86/cpu/vpmu.c
> @@ -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 = cpu_vendor();

It is only seeing the plain int here that I notice that cpu_vendor() returns
uint8_t. I don't think that's necessary, and hence as per ./CODING_STYLE it
should rather be unsigned int. Which is then waht would want using here as
well.

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -319,7 +319,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( cpu_vendor() )
>              {
>              case X86_VENDOR_INTEL:
>                  /*
> @@ -427,7 +427,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( cpu_vendor() )
As they recur, I wonder where these bogus style adjustments are coming from.
It's not like ...

> --- a/xen/arch/x86/guest/xen/xen.c
> +++ b/xen/arch/x86/guest/xen/xen.c
> @@ -63,7 +63,7 @@ void asmlinkage __init early_hypercall_setup(void)
>                    x86_cpuid_vendor_to_str(boot_cpu_data.x86_vendor));
>      }
>  
> -    switch ( boot_cpu_data.x86_vendor )
> +    switch ( cpu_vendor() )

... you would have used a bad sed pattern globally, as here style remains
intact. Further down it breaks again.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:23:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:23:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228780.1534885 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUn2-0002YQ-6Z; Thu, 12 Feb 2026 11:23:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228780.1534885; Thu, 12 Feb 2026 11:23: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 1vqUn2-0002YJ-3a; Thu, 12 Feb 2026 11:23:20 +0000
Received: by outflank-mailman (input) for mailman id 1228780;
 Thu, 12 Feb 2026 11:23: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqUn0-0002Y8-Ex
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:23:18 +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 39f1cf1c-0805-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 12:23:16 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-65a3c6f587cso2407539a12.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 03:23:16 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65a3cf38c6asm1645441a12.20.2026.02.12.03.23.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 03:23:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 39f1cf1c-0805-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770895396; x=1771500196; 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=HUUH0+kVvIv35l5bX6rXtsDFhd85ZqWzs2pLGznf1RI=;
        b=PzY6psfjGrOMv1fz7qTYQkf+nzoQO0YqCGnb6PFkqaxy2zB8l3G+m21AJfWGrk2wWo
         2u6Xnwk+Wd1TuqY/qxiWaRzzVgeuwIXiEnTz088v2C6cZTog/2yBQuNGSZaIG3MqLOGs
         DVZnchNLj+AMgb5yoiu39ZCoIrlaBUQ7ztLxFVhE0WAxSvfPluaxFR6uPDMNGLsWur/H
         Wt+FjbyKMnScS3cNdb4jk4ROIK0brNorn7JWYjdJYf6lBayOY1U5qbHBIDu+nng+KF7y
         ivbsawKUpwJrb2/YgZDRv9GYKUO2evcAeccV2vnkx1aVwy4jPngMFeWdLr9K8+PfOnHB
         2H8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770895396; x=1771500196;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=HUUH0+kVvIv35l5bX6rXtsDFhd85ZqWzs2pLGznf1RI=;
        b=IcvPv1njpP1qkwHPAulG2mnoGi4q5l+rz41dPc5WtYWH+nji/Ik38OEb8Z6kcyA47v
         tbJPxXEhugxLmwMaOWN7ElB03qzsZRSjwme3dZ9iFOrKd0a8imsyhp8IJ9rggcKuBBY1
         JPommRuFy5OBxgtf0Wtm6fUplbLIjGzdE6M9utwq4gheoxp8Jg5FKqaxSMuBmL/B/dUc
         hh94LcP6rXWxTzCuwTi/Q4udfT2kRdAMcGsXQOnnbu4JNY/yGGc6KhQD5bmS+Y5J3uo9
         gDE+ZqUQjzuTrcqyws2ByoWHgc9HrJ6RpRBuKwZNOerBPiDEFL7jwN/TWzy78z3yj8vr
         y0yQ==
X-Forwarded-Encrypted: i=1; AJvYcCVb1/nCYi4rCL/GthqoPTwEBn0+TS6qXd5eqVuEkLoNr8jaECFqlTDu6GVpBzX7qjjtZ8cCSpwjI9I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzixMIvTlIYoDxOiwYhHGm+wZPoOHsWCgLlEu1DCMsq+8wzL4ua
	mr09EKUXr8jSOwGSUjCsKGZvCNUMYpK71mJhnHB0IqAMPEOsnLQtSVTM
X-Gm-Gg: AZuq6aLYvT6rZ8jityeeyvgCywReTyvC0gJMVMGi18gnyiIf66CYXLBiZnEC6proNUk
	8yJJfWijf17sknngCXeT8QIlh+SZx4ywjxrFR1J9Ewg7G/R+FHBpWM+BtUMACr9uML9TmLsYcFd
	nYQTz/Bp0acIweExqNIvBJKhHxXAagP/T4VChUtD8WOJi/+wte5cNOAtjXvqYjUplEjAjtDnCYq
	JR2fsB67q12O6T1uIzcpsm35dCurRJJ+uKM1padiqWs/+NjUObwCgU8TrWXxR4QHzFDhWolvfei
	Y4mJJtKGTrhzSvzCqI3NCSaZtieJtLNIUnhOhvFSP+5tpBX/NV8oYv/LDfLT+0cbXBAFSWcFEbq
	C4weklDtAZfa+/2oGDo2uhX+XUufWeaMUvcdLZsM4z38kfUxdzl5Ql1la2wkfPzm1Zk5pKE1l2o
	m3SuDLZ7ssHsCXhIrn364m9qxsPA1ZuOTCQGGYhwdU2TgtqodO5Aw0SAV4sKZiZ2urMRadma+Nm
	2w=
X-Received: by 2002:a17:907:5ca:b0:b87:d722:f824 with SMTP id a640c23a62f3a-b8f92df2499mr109779366b.63.1770895395648;
        Thu, 12 Feb 2026 03:23:15 -0800 (PST)
Message-ID: <e46a6473-8fce-4979-90af-eee7fd7bbbe5@gmail.com>
Date: Thu, 12 Feb 2026 12:23:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770650552.git.oleksii.kurochko@gmail.com>
 <ced640968434a67c150eff90437f83d3b460a36c.1770650552.git.oleksii.kurochko@gmail.com>
 <d73424e2-84f4-497b-a1f4-f3eea5cdeeb3@suse.com>
 <f012a5f5-7526-4d41-b8eb-6f1208991b71@gmail.com>
 <276d4b09-bf67-423e-b824-467405c5866d@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <276d4b09-bf67-423e-b824-467405c5866d@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/12/26 11:24 AM, Jan Beulich wrote:
> On 12.02.2026 10:37, Oleksii Kurochko wrote:
>> On 2/11/26 3:16 PM, Jan Beulich wrote:
>>> On 09.02.2026 17:52, Oleksii Kurochko wrote:
>>>> Based on Linux kernel v6.16.0.
>>>> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
>>>> we want to guarantee that if a bit in irqs_pending_mask is obversable
>>>> that the correspondent bit in irqs_pending is observable too.
>>> And the counterpart of this barrier is the one encoded implicitly in
>>> xchg()? Could do with making more explicit, e.g. by way of adding a
>>> code comment there.
>> I thought it would be clear from the paragraph below where xchng_acquire()
>> is mentioned. I'll update the comment to make it more explicit.
> I'm confused. The (bogus) mentioning of xchg_acquire() is in the patch
> description, whereas I suggested a code comment.

Oh, I see. I'll add the a code comment.


>
>>>> @@ -124,3 +125,72 @@ void arch_vcpu_destroy(struct vcpu *v)
>>>>    {
>>>>        vfree((char *)v->arch.cpu_info + sizeof(struct cpu_info) - STACK_SIZE);
>>>>    }
>>>> +
>>>> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
>>>> +{
>>>> +    /*
>>>> +     * We only allow VS-mode software, timer, and external
>>>> +     * interrupts when irq is one of the local interrupts
>>>> +     * defined by RISC-V privilege specification.
>>>> +     */
>>> What is "when irq is one ..." intended to be telling me? There's no ...
>>>
>>>> +    if ( irq != IRQ_VS_SOFT &&
>>>> +         irq != IRQ_VS_TIMER &&
>>>> +         irq != IRQ_VS_EXT )
>>>> +        return -EINVAL;
>>> ... corresponding code (anymore), afaict.
>> That part should be removed, there is no any sense for it anymore.
>>
>>> Further, who are the prospected callers of this function and its sibling
>>> below? If they're all internal (i.e. not reachable via hypercalls or
>>> emulation on behalf of the guest), this may want to be assertions.
>> Considering your further reply:
>>     Having seen a use in patch 08, I should clarify the "reachable" part here:
>>     It's not the "reachable" alone, but whether the guest has control over the
>>     "irq" value passed. For the example in patch 08 this isn't the case.
>>
>> I think I did not fully understand the part about “the guest has control over
>> the ‘irq’ value passed”, but at the moment I do not have any plans for the guest
>> to pass the irq value directly. (Do you have any examples where it should be
>> needed?).
> No, I don't. This is all for you to sort out.
>
>>>> --- a/xen/arch/riscv/include/asm/domain.h
>>>> +++ b/xen/arch/riscv/include/asm/domain.h
>>>> @@ -54,6 +54,25 @@ struct arch_vcpu {
>>>>        register_t henvcfg;
>>>>        register_t hideleg;
>>>>        register_t hstateen0;
>>>> +    register_t hvip;
>>>> +
>>>> +    register_t vsie;
>>>> +
>>>> +    /*
>>>> +     * VCPU interrupts
>>>> +     *
>>>> +     * We have a lockless approach for tracking pending VCPU interrupts
>>>> +     * implemented using atomic bitops. The irqs_pending bitmap represent
>>>> +     * pending interrupts whereas irqs_pending_mask represent bits changed
>>>> +     * in irqs_pending. Our approach is modeled around multiple producer
>>>> +     * and single consumer problem where the consumer is the VCPU itself.
>>>> +     *
>>>> +     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
>>>> +     * on RV32 host.
>>>> +     */
>>>> +#define RISCV_VCPU_NR_IRQS 64
>>> What is this 64 deriving from? IOW - can it be some kind of expression,
>>> helping the reader?
>> Originally it derives from the width of mideleg, mie, mvien, mvip, and mip (and
>> their counterpars for other modes) what means that RV32 will have no more then
>> 32 local interrutps, but considering that RISC-V AIA spec tells ...:
>>
>>     Table 2.1 lists both the CSRs added for machine level and existing machine-level
>>     CSRs whose size is changed by the Advanced Interrupt Architecture. Existing CSRs
>>     mie, mip, and mideleg are widended to 64 bits to support a total of 64 interrupt
>>     causes.
>>     For RV32, the high-half CSRs listed in the table allow access to the upper 32
>>     bits of registers mideleg, mie, mvien, mvip, and mip. The Advanced Interrupt
>>     Architecture requires that these high-half CSRs exist for RV32, but the bits they
>>     access may all be merely read-only zeros.
>>
>> ... that for RV32 it was widened to 64, so 64 appears here. I haven't used some AIA
>> specific name for constant 64 as in case if AIA isn't used it is more then enough
>> to cover PLIC case, for example.
> Thing is that with RV128 in mind I wonder whether 64 is correct, or whether it
> e.g. wants to be max(BITS_PER_LONG, 64).

If to look at registers which are used now in hypervisor [1][Table 3] and are connected
to the bitmask (or their counterparts mentioned in the quote [2][Table 1]) are
hard-coded to 64 and it doesn't dependent on architecture bit-ness. And this is true
for AIA.

But on the other hand in RISC-V privilege spec the length of hvip is defined as
HSXLEN which could be 128 in the case of RV128 and to not depend only on AIA spec
likely it would be better to use suggested by you way to define RISCV_VCPU_NR_IRQS.

[1] https://github.com/riscv/riscv-aia/blob/main/src/CSRs.adoc#hypervisor-and-vs-csrs
[2] https://github.com/riscv/riscv-aia/blob/main/src/CSRs.adoc#machine-level-csrs

Thanks.

~ Oleksii


>
> Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:26:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:26:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228794.1534897 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUqK-0003AP-R5; Thu, 12 Feb 2026 11:26:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228794.1534897; Thu, 12 Feb 2026 11: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 1vqUqK-0003AI-Mr; Thu, 12 Feb 2026 11:26:44 +0000
Received: by outflank-mailman (input) for mailman id 1228794;
 Thu, 12 Feb 2026 11:26: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqUqJ-0003AC-Q7
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:26:43 +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 b3ffc496-0805-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 12:26:41 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-43622089851so2847337f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 03:26:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783d30f6dsm10659698f8f.3.2026.02.12.03.26.40
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 03:26:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3ffc496-0805-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770895601; x=1771500401; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=bJgMNSyfVxMOJ5zA27aLzggAh0duDDgQYh/XvNClOII=;
        b=FLCQxdiWTEn9caeNfK4gv7iVBk0450DkLquHGQNcvIgkn2bZgJEReU7nXmymAMbbWO
         eQdn/5Z38cCQsqrwJr4P7w0u65A+tYeQsyfrzmSK5xR7dU/qXWnOwP2d7W3nOwm3X8Pv
         id42DbQe+k1a+X6j25BEgjjORg3RNbha7FO6/UgmXOjOGAc/LCDQuQtaYaJ803bXw4Ea
         TaSla6t88tHDIQqauuX2YY0NqRonjhk2i527aUmgbQPv3U1mZDetVoZeXASgQWuaRdM0
         jV1UCYqnlyIE1uJa7HTRlcV9sXKlP/QN1Zze60w36tPHF8JKAFQWMiqDnyHwqvHhVS1V
         HmRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770895601; x=1771500401;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=bJgMNSyfVxMOJ5zA27aLzggAh0duDDgQYh/XvNClOII=;
        b=R4Hmhi+G5LkEBeGkRhxY03wQi8RxEyvfdjsdR8JWrtNieZMs8iG/FYRFC4kRiKgFJi
         ubHVVfDs1BVHnE8VWuRgifNhJa+fDG3OGfF8FOVqDMNPz55ws26c6G3Inz2sODNXBh08
         8ZG6zGb66U0PJgI1o5H731Ds34F7cXScwHqf7Z74ewrIMEGYb+C1wSYbTyZMSHy96/rY
         BmRnJDOfHdcjY5B6RfaYOf6LJtutA+rw+Lau5W2W1xaqyq8Lj/zBLDzNMLnaocWgqe8V
         iLetro5MzpRi2nn11naLdRrAF8/GE5Nbtufmhiw4w7hPV7LOHGtUxlJ+0rWGOXBHuFnR
         AR0A==
X-Forwarded-Encrypted: i=1; AJvYcCWEllwgosx2rkzVGqPQlvs2WSIprAda+dQkO88rOshC3zEM5gQhUVX98BlTFWWP3gDTMeFbO7Nx9cs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwuncWktGhvSZXPXMj4ArcvTJ1bfsWBWoC0SdeztZQ0XqfbiTIO
	gXfoMjlN/N65PH+OxaIn03dQXs8TwEl4pdNQZGEgO96RH6NHQi3HGjvpCbHO6vJLDA==
X-Gm-Gg: AZuq6aJm0J8O3r2Sv0a7FONyGCHjcPbywJNZegDiYwNIh+mrm85mU0c0unVOqdp/BPq
	Mk4VsR5/pUXcbh4Pu3Rh5v9/KXJO+q/ViHy6AlYEY0x9VpfBQIVVnm6yq3wYfeZyxQipxcNcpgJ
	BZ5JaMEDOyT56O6Sj52cwyEbEoMakdfPG/3GXDsHh6chDEWKrO5jOEhu9/cy5sGe51+8/0X+TeE
	E8Sknm6bJ9Ka1brwnh3CNmI2z0YWlWFgZmWJNa+1WMGVlwskp0tg/gDaujyUzNrJCVXhJRFIEkS
	ZKO52RO89GIsBRkGzCpankgai8d7EgIM/cYeu+QqEC3NOLETMuS4bRp31+EdzW4WIBztCJpPoK4
	nsqFVUD2n9Rt0w0H1k3wggu7XC8KEP3NY/WKgvsdvG86eIfDOzS+XTWTfMGH/c90MO2r42xlctB
	xl3B2v+PfHLETPBMXtoSmPzahaf7ogrPXnVA/9MS9ry4go4ZQZc89ZRlRAAtBYh1smG/bgf9xVL
	ISPJP2Ksb0OUOc=
X-Received: by 2002:a05:6000:18a3:b0:432:dfea:1fa8 with SMTP id ffacd0b85a97d-4378f167793mr3666159f8f.45.1770895600788;
        Thu, 12 Feb 2026 03:26:40 -0800 (PST)
Message-ID: <100f63bf-cc79-43c3-a0f6-147d2dff080d@suse.com>
Date: Thu, 12 Feb 2026 12:26:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/12] x86: Have x86_emulate/ implement the single-vendor
 optimisation
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-8-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-8-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> Open code the vendor check through the policy as a one-off. The emulator
> embeds amd_like() in macros and is called in MANY places. Using a
> local variable (cp->x86_vendor) makes it a lot smaller (300-400 bytes
> smaller). So treat this as the exception it is and let it use the policy
> rather than boot_cpu_data.

As elsewhere you mainly discuss benefits for the single-vendor case, is the
above about the opposite situation? Else why would codegen suffer this much
here?

Using cp also is preferable for test and fuzzing harnesses, which don't
even know boot_cpu_data.

> @@ -30,8 +31,15 @@ void BUG(void);
>  #  define X86EMUL_NO_SIMD
>  # endif
>  
> +/* intentionally avoid cpu_vendor(), as it produces much worse codegen */

Nit (style): Capital letter wanted at the start.

> +# define x86emul_cpu(cp) ((X86_ENABLED_VENDORS ==            \
> +                           ISOLATE_LSB(X86_ENABLED_VENDORS)) \
> +                               ? X86_ENABLED_VENDORS         \
> +                               : ((cp)->x86_vendor & X86_ENABLED_VENDORS))

Nit: Indentation. The ? and : want to align with the controlling expression.

Further, is this a good name, without "vendor" in it?

And then I'm of two minds here as to the use of the macro parameter: On one
hand we can be pretty certain what is passed in won't have side effects.
Otoh in a hypothetical odd case (seeing that this lives in a header file,
not local to an isolated piece of code) where there would be one, the
argument being evaluated unreliably could cause an unpleasant surprise.
The more ...

>  #else /* !__XEN__ */
>  # include "x86-emulate.h"
> +# define x86emul_cpu(cp) ((cp)->x86_vendor)

... that the same wouldn't be observable in the fuzzing or test harnesses.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:31:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:31:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228802.1534906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqUug-0004uI-BF; Thu, 12 Feb 2026 11:31:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228802.1534906; Thu, 12 Feb 2026 11: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 1vqUug-0004uB-72; Thu, 12 Feb 2026 11:31:14 +0000
Received: by outflank-mailman (input) for mailman id 1228802;
 Thu, 12 Feb 2026 11:31: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqUuf-0004u5-6o
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:31: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 553abd5b-0806-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 12:31:11 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-480142406b3so62590125e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 03:31:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d82a1c2sm278835535e9.9.2026.02.12.03.31.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 03:31:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 553abd5b-0806-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770895871; x=1771500671; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=J8HmZNx9218iZkLjU9tX+tOBAqyhFCsnxlPaW64ulcc=;
        b=ZSR7X6CEBk+nsbAMfzV7rDPh9mMgo4lHSK/eTUUgMpKGMU94PvkGtPKKX3EnVOQ5QA
         EcYr8ZckelMt8fQN51vMDYuFrb9MZ2KKffF3Y5DPvAmpCd3OL68AvIC8x00GVfSFRrYG
         3w+frGieI2VDC0bldlhUExD7rt3yQxRIIAX5it4spyFLuGN34ASuX9oN9Okvu0hwZ17x
         pielTLuRlzXa6qPcTPvN9w0X+xQ/AM6p8/FNDC8aIBMfcGaMh925Ve60HA9y/BFXD7l5
         58TsVwwBDB0g/+K2JcAHilx9/fcE/Gk4aEN7hl/EuC8KhKDmoH5000TRQCOZfO5tbbYw
         A5cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770895871; x=1771500671;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J8HmZNx9218iZkLjU9tX+tOBAqyhFCsnxlPaW64ulcc=;
        b=vFkBm9oCe+0K/OdtqAmfje1aRfhLBz279cx5TcZOv68IbY9ygQSJWRAfL/an86yXQ3
         qY2/RzM81Efm1xeIyxwspW8Fu8Yfwvw1JPFkhm2BuSo75fwOEu/b2RZv889kCu/LeXpH
         40qZY1XvwswXr4HxI+Nb/AhyTZSsSqaksJMUXE4lo7WAToqeKKUO/YPu+Ec39l1Vnev7
         WNQD1zn3PXrDltCxecjVNAtUVDI/AMn78wAQSin8/+ftbTMxXQbgLjfr8wCkF+j973UP
         Dbss1wFjFsr18noDn0S8fPEJ2V7H5yzauarZn/O5DKXRm0tBy3SPsoYniZYiVly7as5u
         LDpg==
X-Forwarded-Encrypted: i=1; AJvYcCUAPaj+PWzpkcABeRUfTt72ZKM6Fqq30wfxoUm8PB4nX41OLzlyC+KBE8SDeaUrP2A7KrV1A06A1dk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzNIhIwt1X2nb7N7Xh8MjPozaUWt3eQHGzP26UmhPNqLptoHmS
	sYRiQqnHGWozg3pm3q1RH9jYGiE92Ux1E0h4QmyF2E4l82NNlApwfwVeHbypMSDVaA==
X-Gm-Gg: AZuq6aJolZhN0t9M3oD/PESUOpohX/ZcMIX1elOnRpitkqXP6sgpdeMpVWROlHcvHys
	HPV3Jf2WCQrrAcaQb1rMjNDAqByilOsa1N1KNsv0KR0+e0tpNBIMAf5AeUb3ZfU7UhhEDoPGQzD
	pF6LfSBvDVpQ7lhiZDnSX+TIdF4uKIhYvv/nZb7/yZobVORmGyvLYFsjtfK6qf69QjpoMBebxLE
	HxIxEnyMSvO8WRfAsIxecxL0pgU0sItgJI1SXAlQTSXkDp030FzKThlNQYiHY537KIUXK/Pt7ga
	2O/a1au+GQdEBGF9RruExCe0x5236/M4dgpQ8wvVpKOyc0uU+WHLl4OapPGG0EdWRajeega+Njw
	gAprW9q81+y1R/82U62L/pv8Z+4SrF0QGCF4YgsVRqEm+APdKNqJVnzpHkKFppFeFeqXJ67jaYl
	g3Gq7OagLaly5E0qOMSyfH4Fra222ZNby3KUK920Z+Liv/L1xLT1nzGGxyU8pCzNLO8VSGSMGho
	WrH/h0q+xKzqMg=
X-Received: by 2002:a05:600c:4749:b0:47e:e20e:bb9c with SMTP id 5b1f17b1804b1-483656ae4b0mr34168865e9.8.1770895871238;
        Thu, 12 Feb 2026 03:31:11 -0800 (PST)
Message-ID: <f2abd192-27c7-4011-95a3-848e1c4e1427@suse.com>
Date: Thu, 12 Feb 2026 12:31:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/12] x86: Migrate x86_emulate/ to use cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-9-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-9-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> ... but keep the current behaviour of using the policy vendor when
> compiled for userspace, where cross-vendor configurations are expected.
> 
> Not a functional change.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>

Hmm, ...

> --- a/xen/arch/x86/x86_emulate/private.h
> +++ b/xen/arch/x86/x86_emulate/private.h
> @@ -15,6 +15,7 @@
>  # include <xen/kernel.h>
>  
>  # include <asm/cpu-user-regs.h>
> +# include <asm/cpufeature.h>
>  # include <asm/endbr.h>
>  # include <asm/msr-index.h>
>  # include <asm/stubs.h>
> @@ -30,8 +31,11 @@ void BUG(void);
>  #  define X86EMUL_NO_SIMD
>  # endif
>  
> +# define x86emul_cpu(cp) ({ (void)(cp); cpu_vendor(); })
> +
>  #else /* !__XEN__ */
>  # include "x86-emulate.h"
> +# define x86emul_cpu(cp) ((cp)->x86_vendor)
>  #endif

... this looked familiar, yet different at the same time. It was only after
some eyebrow raising that I noticed that patch 07/12 appears twice in the
series, with different titles.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:52:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:52:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228829.1534915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqVFE-0007sf-UV; Thu, 12 Feb 2026 11:52:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228829.1534915; Thu, 12 Feb 2026 11: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 1vqVFE-0007sY-Rr; Thu, 12 Feb 2026 11:52:28 +0000
Received: by outflank-mailman (input) for mailman id 1228829;
 Thu, 12 Feb 2026 11:52: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqVFE-0007sS-24
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:52:28 +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 4cf5b5a0-0809-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 12:52:26 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-480706554beso69248085e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 03:52:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835a5c7c4csm145257255e9.0.2026.02.12.03.52.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 03:52:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4cf5b5a0-0809-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770897146; x=1771501946; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=I8axo7fTHnUIbKoSLf+JOuNTZoT3vuiGKJ61JVxoPqM=;
        b=dK2y8VcQxAzvkjJqr/39A+Ebr3R0s75N3iQWsZtvBJMFcYrEVRWGMHXjYhVaWA0x4u
         M8YxXvewEZPDYxpKUfL3XySapTAw2kFheJd3dczRvQ74RwRYR+rKmoaIq7v4RYaEpgKG
         lMxztUyc1iAJ1UNlNDEPn4YTvLCH8OAjbCOudvOn7Y6QJRAm8ilo5djtIM1zadbC+hbi
         0SvPj9juik+z7f9q8Q6qkE9wyTX8PxW12J3sJQ3vGiL3zBGmq8U8TS1RJbD9EbskN0Dj
         XlIDlTDgyD2Ma4fAESkZRvlN7X0Xpt2rZ2ahtpF20oB3X+wR+YX5sjNGMdWSD+if5WZq
         WmMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770897146; x=1771501946;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=I8axo7fTHnUIbKoSLf+JOuNTZoT3vuiGKJ61JVxoPqM=;
        b=HRNewdMjSDHKNdl+TkiXjyhY10DQ77SEENcPpyQKcqHA9Pnql++sOd6sQGqkO3gbbC
         NWvz0rTj7SBvrbxiEcIoufMZhGiUIGbRyl907/UZ+vBNw5eXnacUEKZfqL1OckQ3K+1l
         9TBOpkCFTGzBHI7HOEdhj0scnigGJsg39pTg0Frpc1hLFWNwkowV7pDs0K6xNGq4Tp/u
         WLwiRy9w2dlXQ25vkX0NjBZXo718iivvcU22nql0nHJ2wO6L/DrycfiXT3tdMoXCjugn
         6aKZQqz9ujHOwvqRCwLv4SBp7MRHYe72Pj2Rvw/tpchs+GzxSupyYrAp35ROsDx4Tqdk
         H4Kw==
X-Forwarded-Encrypted: i=1; AJvYcCVYu48CSGXR6O0sIvY8/YahmctYA1l3C2Ys25F/rQIa/+diseahvWa6jdgD3Ilundje1SKJwhPnRAQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywkst46aVM+2bwEl7MwwgmD0Lht2itB9c2lge/oACSIs1BcKtC3
	lXj6Ipve2qUcX68EH4Ir8v79LF4b+pf2RolKfKSlqMIeO8OTcUEsI/K1RhShrIDkDQ==
X-Gm-Gg: AZuq6aIbG4y8LAHnFm/MuwSjdUkhLRsagOa81WsAyX+CuWnB/l2qSyszwToQCLmPOPb
	2ybl3L4meLb+dZJkI183vxo0XThyH5Sfy6ryWytgbFXnvBC3lXAW1WFJ0ZpNoKtAoY0dadCpDbn
	8JWFn8pVs7iQK59ybRo7sCIa3VN/26LssJ8lapWYOg5sJUCv9rSrX1DWicB1YnJLpmwCWXO962L
	GJM3LWJPFbyKZ3jlVXfRLAQftQnhikk7LUdpv+kG9E/bih0zx0usj3tpa9GDuehZd0bg3jSJgG4
	mgkepo+U+4YZvwDbG0kNwes6uqUfE+8mcHZ0NXBHen76gCwHSza36QidMVenvXH7LkF2PIReKds
	PZF+0oisK/RcWi+j7cm/U50akQ4qDyiho7phyWSmiX8w/ZdnQ4Q7e+LzEyTYtOGlUijFddzFiKQ
	4Kp31MuleHlEz9RmxBBlvNFLZK2GBJyuVZek6SpyxB1vOkob8FT0QeG+yEhPjn05qx0i1hlniW1
	l2xSYBj197wj98=
X-Received: by 2002:a05:600c:6095:b0:47d:3ffa:5f03 with SMTP id 5b1f17b1804b1-4836570e7ddmr35302695e9.21.1770897145878;
        Thu, 12 Feb 2026 03:52:25 -0800 (PST)
Message-ID: <3504e0eb-973c-427f-98ac-27801819e175@suse.com>
Date: Thu, 12 Feb 2026 12:52:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/acpi: Migrate vendor checks to cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-10-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-10-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/acpi/cpu_idle.c
> +++ b/xen/arch/x86/acpi/cpu_idle.c
> @@ -178,7 +178,7 @@ 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 ( !(cpu_vendor() & X86_VENDOR_INTEL) || c->x86 != 6 )
>          return;
>  
>      switch ( c->x86_model )
> @@ -915,8 +915,7 @@ void cf_check acpi_dead_idle(void)
>              mwait(cx->address, 0);
>          }
>      }
> -    else if ( (current_cpu_data.x86_vendor &
> -               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
> +    else if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) &&

While we certainly make that assumption, shouldn't you add explicit checks
that APs' vendors match the BSP's, in order to be able to also replace
current_cpu_data uses? Or do we have such a check, and I'm merely overlooking
it?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 11:57:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 11:57:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228842.1534941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqVJx-00008g-Kz; Thu, 12 Feb 2026 11:57:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228842.1534941; Thu, 12 Feb 2026 11:57:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqVJx-00008Z-IC; Thu, 12 Feb 2026 11:57:21 +0000
Received: by outflank-mailman (input) for mailman id 1228842;
 Thu, 12 Feb 2026 11:57: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqVJw-00008S-FV
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 11:57:20 +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 fb57a497-0809-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 12:57:19 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-65a1974d3dfso4531352a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 03:57:19 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65a3cf50e38sm1625712a12.33.2026.02.12.03.57.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 03:57:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fb57a497-0809-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770897438; x=1771502238; 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=99v7fTC8rCn+pjBz3eOiv07Ui8LgZ1kj0Qxl4XK7dcw=;
        b=aUmzpxQqGRyB9mJB2irI7l0qHm4U0Xw39kwZ2U3XlKvxDru9nGzYQwkdluJirStJiW
         pErreBzc2XKC8kgOvXPKhPLNrJ+3CArqBvnG5B+tfM0/ldaXm1XKR+Jh17W4rkKhYi8n
         /x00uZzB1Xjt8LxM0qf9eHRMPxYqXJTggpVtvH6u6OQswJEIVY7GJEvVsc+Rpo4D1jyc
         Y/aT7CX1mPVR8aA5MNQnK0+itj+frTJjovIXqth9vBA6ng1/rXRJ6+Rm4Ck2DlL5d2QO
         vaUI1RPw4ZbrI2htri788nRP22UhRJjzfr0dIsFXOqmFFt9O8v9EXAJzuV0mb3+8uApG
         vUsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770897438; x=1771502238;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=99v7fTC8rCn+pjBz3eOiv07Ui8LgZ1kj0Qxl4XK7dcw=;
        b=tS4CQAAWLeyFYHweOekl3YhSJt9SkqXh438OR9lazttuL5GKulp3Md05FloTLKah+F
         HrTP3IIt0KK0OtPLzEBhei7PuvF1X6vK4KuqkrMx1JYaVkC104dODpl5vhAD3MZkg1mf
         rByzEI3/3GaICQhG07iWv+Af7NTjtAV+TAzXOgzGRvizVgHTmxqOIIJSLZZ9SgAxk49H
         b1vSZ7jJgop+czqWGa2WmlfiJLZfFB5fS86IwsZu1oY/Mf13Ot/erjO+crlUvRrNWg7s
         IWGmwJEzyzXJrwkylZ1BEA8DQA+O7k1BJQZhZ6A8WsptI+a0HdgvJKMKgYEfbnfBIthf
         uykA==
X-Forwarded-Encrypted: i=1; AJvYcCUrW16cK+Oi9c9zgFZwDu3R6UaoDJ6fRDmc/wFqy+RygUwTolcLLasR3hSlCAzIyGK+PK0CyS+O4cI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTjuV7TuUD8V4/pVDaN5a8+6snaS4XYqUrDBfXoYBAatfOtH0e
	S075eWbkLDDgaIsMtJVkoqZ1Fv/l2pjZUb/cp4ft0o/ukpR76HdTsetU
X-Gm-Gg: AZuq6aKrYs1Ng1vAEKayaH8UeJqhFRzp5uwtta3bLaFXuEKGxbDXTBhQcvODp78Pxri
	tdD94Dy5PcyFfl9TCow1oQIuIj5oh0AxbQZi3vNpv11rjYEf8wsi3WinhUcyICF2FUtdjJtuzoF
	o33sOWg18bJVU7vJhr+nMl1BYlBfLRWlO0PH3HF+/1Z7tqrXcwzTgIzBQafSJX/ml9pM3CmG/i1
	MFOSE4v98PYqRlFyTp7xVthzt7kVlsIYH4ggoKDIsx6EOr4CGCHso03pGuIlmmmQS1ZrAvWknMQ
	mtpA2G9oDiaJZij/6P/YsNUb1OPRMxKTlDAApqet+9hXkx1e7OAiuDo9dvNQ8UoReBuyYFN373P
	JsD8QpuB8dJ3iwMmZoJL6Ykvgw5E8yPqcU/UFV2nmBmgVxTpdVCyQIYCe7GzvxJhbP3YnZsrZsf
	57ciwGgL+borLf0Nq5lhHggBAUr7yRdVPy36dSmJzqVa5z1ZtHZQy/Ng73RWIXnw5vjzBR4xs0R
	JM=
X-Received: by 2002:a05:6402:5249:b0:659:4b76:74f4 with SMTP id 4fb4d7f45d1cf-65b96de8661mr1397346a12.16.1770897438092;
        Thu, 12 Feb 2026 03:57:18 -0800 (PST)
Message-ID: <099768df-ec44-454f-8a9e-4897d81309f9@gmail.com>
Date: Thu, 12 Feb 2026 12:57:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for
 VSATP and HGATP
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
 <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/12/26 11:16 AM, Jan Beulich wrote:
> On 10.02.2026 17:36, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>   
>>       return get_page(page, p2m->domain) ? page : NULL;
>>   }
>> +
>> +void p2m_ctxt_switch_from(struct vcpu *p)
>> +{
>> +    if ( is_idle_vcpu(p) )
>> +        return;
>> +
>> +    /*
>> +     * 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 what will be done in
>> +     * p2m_handle_vmenter().
>> +     */
>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>> +
>> +    /*
>> +     * Nothing to do with HGATP as it is constructed each time when
>> +     * p2m_handle_vmenter() is called.
>> +     */
>> +}
>> +
>> +void p2m_ctxt_switch_to(struct vcpu *n)
>> +{
>> +    if ( is_idle_vcpu(n) )
>> +        return;
>> +
>> +    n->domain->arch.p2m.is_ctxt_switch_finished = false;
> How can the context switch of a vCPU affect domain-wide state?

It is wrong to have is_ctxt_switch_finished per domain, it should be
vCPU field.

>
>> +    /*
>> +     * Nothing to do with HGATP or VSATP, they will be set in
>> +     * p2_handle_vmenter()
>> +     */
> Why can this not be done here?

As VMID should be calculated on VM enter.

We can update HGATP and VSATP here with VMID stored before in p2m_ctxt_switch_from(),
but then it is possible when vmid_handle_vmenter() will be called before VM entry
VMID could be changed and it will be needed again to update HGATP and VSATP what
will lead to flushing of VS TLB twice (one in p2m_ctxt_switch_to() and another one
in p2m_handle_vmenter()).

This is also an answer to ...

>
>> +}
>> +
>> +void p2m_handle_vmenter(void)
>> +{
>> +    struct p2m_domain *p2m = &current->domain->arch.p2m;
> To save yourself (or others) future work, please never open-code p2m_get_hostp2m()
> (applies further up as well, as I notice only now).
>
>> +    struct vcpu_vmid *p_vmid = &current->arch.vmid;
>> +    uint16_t old_vmid, new_vmid;
>> +    bool need_flush;
>> +    register_t vsatp_old = 0;
>> +
>> +    BUG_ON(is_idle_vcpu(current));
> This is the 3rd use of current - latch into a local variable?
>
>> +    /*
>> +     * 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
>> +     *
>> +     * CSR_VSATP is already set to 0 in p2m_ctxt_switch_from() in the
>> +     * case when n->arch.is_p2m_switch_finished = false. Also, there is
>> +     * BUG_ON() below to verify that.
>> +     */
>> +    if ( p2m->is_ctxt_switch_finished )
>> +        vsatp_old = csr_swap(CSR_VSATP, 0);
> This shouldn't be needed when ...
>
>> +    old_vmid = p_vmid->vmid;
>> +    need_flush = vmid_handle_vmenter(p_vmid);
>> +    new_vmid = p_vmid->vmid;
> ... the VMID doesn't change. Imo you want to drop is_ctxt_switch_finished
> again, handle things normally in p2m_ctxt_switch_to(), and deal with merely
> a changing VMID here.

... (check the answer above)

If it is okay to have potential double VS TLB flush and double update of
HGATP and VSATP when old_vmid != new_vmid then we can do in this way.

>
>> +#ifdef P2M_DEBUG
>> +    printk("%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
>> +           current, old_vmid, new_vmid, need_flush);
>> +#endif
>> +
>> +    csr_write(CSR_HGATP, construct_hgatp(p2m_get_hostp2m(current->domain),
>> +              new_vmid));
> Bad indentation - new_vmid isn't an argument to csr_write().

Oh, sure, I will update that.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 12:03:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 12:03:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228856.1534953 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqVPS-0001t8-Fb; Thu, 12 Feb 2026 12:03:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228856.1534953; Thu, 12 Feb 2026 12:03: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 1vqVPS-0001t1-B2; Thu, 12 Feb 2026 12:03:02 +0000
Received: by outflank-mailman (input) for mailman id 1228856;
 Thu, 12 Feb 2026 12:03: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqVPR-0001sv-0z
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 12:03:01 +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 c5bbbfe3-080a-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 13:02:58 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4806e0f6b69so61517665e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 04:02:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d82a4c4sm340949365e9.10.2026.02.12.04.02.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 04:02:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c5bbbfe3-080a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770897778; x=1771502578; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iajob/+tfoDiEKMChXYK7m57uKeGQVz0mx/ongfv1Xc=;
        b=H38V49A9isskTNKOh+4pIn8qfbjJEcot3OLoGI/2kiHEcjuQ2abP2UfMtTWgxOdi0+
         MQOWzgOt4hD7Z8+iLKaB6//NhrXpd93l1+4k7bjWF6WU7cn5UFbvk0Z6XtV+iGkMQJej
         Mu4+TpPorLH4Tmxm2lK6NBv5UHaRmIyyEIUGWQHd9MVVj83mdNZocFQu9xVejNimakrb
         c/SLDmjcZGeaJSDG/0mXiGfMimCE7v7kmHlJM0Brdpj2j7GzBuAh2yHg2CeYdNgxI6pL
         6+XOUCivSqkRooLF9Q3XS7xbrQDj+4D9XI+rA82YE2D+KRKf7yPBhFiNRfJbpEqevC9r
         im/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770897778; x=1771502578;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iajob/+tfoDiEKMChXYK7m57uKeGQVz0mx/ongfv1Xc=;
        b=umi6S/uRAu1ik11tVHxjw2uZX+mphtU/J1al9AoRqHByQLGm9Rn5pFcL1Kvg4O5RIv
         15d+NEpMg6V6GoUnbmEWh0J3jvzsIltv1pKjJSwoXAyGeFm266orpz4+yA+D+KTO8rMv
         BpPpJ7+wO9agHS8rrQUq59LZsGFGNLJK5J9CeX/iJvYogb5mUk5JnqCRU5m8j3QBHv7Z
         gE96enFqpRh0arDnEK+cZ+tARa8pZ80k1/D6+7azgDALaF7xW9LuNcWLZbaEKvePcZQ3
         rNxDXjFTbJYztPlSoTpxPlV9MrEmq5BvpCRlUuXyUl8Gck71Qz4QT9VKwLHO+sZ+2Zx4
         qJZw==
X-Forwarded-Encrypted: i=1; AJvYcCUPDrHF8ccHgofqp3qp/jKlzP1TWyEGwjfrMyOaxxv1A/jw1bqQumb1K2PJwCR3BaO2VkMsYFZoBmc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFwEFtoVAJAMmG4AH+8PEv6mOhm2gzCRcgq85HEtcTVSb9AQpK
	Mx95xjxtl7VcTErUa8HAwib0mmPBWMlw8APmOX3pamwaGYGya4PFS1h7zbPPTPBfCg==
X-Gm-Gg: AZuq6aJbi4x64NXfx+8VQErXblFIdJ5H7fBxBetu9G7Gs+OD7/50yz/cpahY3Kz3ZQW
	yJc1jEr/Nmc4BCQQVEaL2wkT6QKlhtc2lIvWob0lRqugJ0VU2/9iw6psS7RwSfKMSViG6YJDUNm
	GnuV2Nuyjh20M4+3Fpc0y2dJV/by12mKT8Oivbq4ugCsn5E4e/7swpZh2cd22S4AZPexoAaIYyJ
	9K+/euoCKhkoTYYgqBJrocT/1fFVXMFGVt3fKV2jKc5DyyQ8hKAkTn/5b8w94myGLdaSBzy138p
	G/PsFpehWgV0KjKFSU5naYilhLuEEJ2/joXW6fnWuv3ZFcmpFB9rtpApIFmwZPaQFgjvw3aWI48
	p803KF8QuROaPwuMdhD1anj9YpO0JYh507r/EZvslKbw9zVVqAh0d+iR8Z9QLOcsb4yjyyOIHgu
	kzptbmxDzcjhcqrsRecxP4G55FVoVJGmpMoi3BYZgy58fXTMEna2kXiz9Oh2GXfdrxXR81saGZR
	kDwdvLcD6bBEfw=
X-Received: by 2002:a05:600c:4e91:b0:483:ea6:8767 with SMTP id 5b1f17b1804b1-4836571fe86mr38921825e9.36.1770897778012;
        Thu, 12 Feb 2026 04:02:58 -0800 (PST)
Message-ID: <18795ddc-c558-4a51-9b61-717e96bf5150@suse.com>
Date: Thu, 12 Feb 2026 13:02:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/12] x86/mcheck: Migrate vendor checks to use
 cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-12-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-12-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> @@ -862,7 +861,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 = cpu_vendor();
>      m.cpuid = cpuid_eax(1);
>      m.socketid = mc_global->mc_socketid;
>      m.apicid = mc_global->mc_apicid;
> @@ -964,7 +963,7 @@ static void cf_check __maybe_unused do_mc_get_cpu_info(void *v)
>                          &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_vendor = cpu_vendor();
>      xcp->mc_model = c->x86_model;
>      xcp->mc_step = c->x86_mask;
>      xcp->mc_cache_size = c->x86_cache_size;

What we do internally is one thing. But what we report to the outside shouldn't
be inaccurate, imo.

> @@ -1122,7 +1121,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 ( (cpu_vendor() & X86_VENDOR_AMD) )

Nit: No need for the extra parentheses here.

> --- a/xen/arch/x86/cpu/mcheck/mce_amd.c
> +++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
> @@ -160,7 +160,7 @@ mcequirk_lookup_amd_quirkdata(const struct cpuinfo_x86 *c)
>  {
>      unsigned int i;
>  
> -    BUG_ON(c->x86_vendor != X86_VENDOR_AMD);
> +    BUG_ON(!(cpu_vendor() & X86_VENDOR_AMD));
>  
>      for ( i = 0; i < ARRAY_SIZE(mce_amd_quirks); i++ )
>      {
> @@ -291,7 +291,7 @@ 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 ( !(cpu_vendor() & X86_VENDOR_HYGON) )
>          quirkflag = mcequirk_lookup_amd_quirkdata(c);

I wonder if this wasn't better switched to the positive for (checking for AMD).
This would the render the BUG_ON() above useless.

> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c
> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
> @@ -711,8 +711,8 @@ 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 ( (cpu_vendor() & X86_VENDOR_INTEL) &&
> +         c->x86 == 6 && c->x86_model >= 0xe )

Nit: Why the re-wrapping of lines?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 12:21:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 12:21:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228879.1534961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqVh8-0004rP-RH; Thu, 12 Feb 2026 12:21:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228879.1534961; Thu, 12 Feb 2026 12:21:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqVh8-0004rI-O9; Thu, 12 Feb 2026 12:21:18 +0000
Received: by outflank-mailman (input) for mailman id 1228879;
 Thu, 12 Feb 2026 12:21: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+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqVh8-0004rC-3j
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 12:21:18 +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 537fcf23-080d-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 13:21:15 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-4359249bbacso1382415f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 04:21:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783dfda71sm12320198f8f.18.2026.02.12.04.21.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 04:21:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 537fcf23-080d-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770898875; x=1771503675; 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=zkg5vJhcnBz0LY6S63OSzCHQNrKJ7chF4k9jV5aFnG0=;
        b=ZVZddvdEv/bDf6Y/9dVBQhLiHmPTp1OjVVpVZ7wgS7SHP5LUXklYxkAmgcbLdO0uib
         9tcLbOCXCu/qlsb9TGRYcbwfOF53T6Jag810m7WDwx8fdqoCDLk4421SXlQ6aW4qST1H
         NFeD15HF70+r9VZfhMxQfF8uzRA3t99eDwLznKTayeJ+sjO+UhV6otZ6I4GzcFQhSZx6
         XFdrKklnP9sQ3bmPJim898vZenmjuX8gquC2IcNvRKqg2PAYZqmF5gjMD4wxwmegGjfN
         Os8TjrD0W2xEQK5P4ZYNsNpPwKbSEEGskfW/vRVkLmTqLCBg/oiudCiQx5gg2JsLxK4a
         Tq3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770898875; x=1771503675;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zkg5vJhcnBz0LY6S63OSzCHQNrKJ7chF4k9jV5aFnG0=;
        b=dZAWonjRSQg1J7qibjmz+N4Vj5AbvRw6I71SF6Pgg+n5xHhiYKSmv923PqGOEvB2x9
         0Vtk2KU6M9t5XwnF1NSptGbYBuj8ihWRDX2kceIT/CMgmwp/8CrYfT2MSidfooa3YTGm
         hSinhIOaYn62ehYaVh02VRtvfWODwza4XUfhvMZviJ5fEp4uE0XdR7tdYQbSEieNrkla
         GkZKjv7kONa/WzZHrAN40q0JxtJnWzRtcqR2BRzm4Voy6wIJ83ZUpknD3cGST0SECf8f
         X+Ul/sawKpseaTeKRnYtE70z5u08ArnRCDnrqv/Lnh3oG8LLFTxv3fO+Z/1THwetY2bg
         A2/g==
X-Forwarded-Encrypted: i=1; AJvYcCWjVC/eh56rsAmevydK0y2wWyUn2oH/Di5whOPZpnKR8c/DfWiojTuPMo+RKXo5JM5MnSrY3y7HvVo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIv6l7jipfZu7ktxZX5arkpULdYPPcquBm1JNzmmiSrAdhKutJ
	s75xha1bPIPdKbfQmljcPMa8W+T8MZRWpqwn/BLyp7yQ/pMYn0+93GUCcfDIX+V9Pw==
X-Gm-Gg: AZuq6aLDiopTApHhPKE+Rf19oxIXvV6BNiFj05nrQen7UoXV5OgKvG4bKX1UyAm7b/c
	J6+uhiwAw53Jld9XyzWCzxOedREy4bm7K9Dg1xMkIReNxAOyV4O8WtrRMzqzxy4CymIvFgdZXTs
	QBWxF+qXr5MVb7Tetii5PSkO/Az5tm3luqMAPje35kpKUu3a2yuylUjadxpkJ+ysTTqwMYmKiq4
	3k9p8/jk0bht9QdYTXyDwEWVFev8DD5E3epfYZip4Pq0Er2z/KmiDaylSQ4o1mhFfhoLT6LFd0i
	/qGPWYSYFmQ20hD8q0498gFZJbegmarf5uh1VspmT2TSO0MF27kSYBP5h9nG2SqVQmEiaK1g8jX
	VbcEqiwekjkI2OJHbfIngS5eZG7LpWqAGpoL9K2On5n2YHjdY0z3qpxr0aKL6rDNzdDDqs7d647
	Ebkvsy3YU6OPhe5cVbwb75egghD7Hf9klLs0GiZ+19awZ4FWkjjjsUvsEovUAwzPpIO2X8WseNG
	4JNUZ3uf8MwYaA=
X-Received: by 2002:a05:6000:420d:b0:437:6c0c:346c with SMTP id ffacd0b85a97d-4378e73b090mr4290471f8f.28.1770898874863;
        Thu, 12 Feb 2026 04:21:14 -0800 (PST)
Message-ID: <38288209-7344-4982-872f-01684bbecb94@suse.com>
Date: Thu, 12 Feb 2026 13:21:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/12] x86/mcheck: Migrate vendor checks to use
 cpu_vendor()
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-12-alejandro.garciavallejo@amd.com>
 <18795ddc-c558-4a51-9b61-717e96bf5150@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: <18795ddc-c558-4a51-9b61-717e96bf5150@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 13:02, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> @@ -862,7 +861,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 = cpu_vendor();
>>      m.cpuid = cpuid_eax(1);
>>      m.socketid = mc_global->mc_socketid;
>>      m.apicid = mc_global->mc_apicid;
>> @@ -964,7 +963,7 @@ static void cf_check __maybe_unused do_mc_get_cpu_info(void *v)
>>                          &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_vendor = cpu_vendor();
>>      xcp->mc_model = c->x86_model;
>>      xcp->mc_step = c->x86_mask;
>>      xcp->mc_cache_size = c->x86_cache_size;
> 
> What we do internally is one thing. But what we report to the outside shouldn't
> be inaccurate, imo.

There may be an underlying issue here: For the former case, struct mce is an
entirely private definition, having in particular:

    uint8_t  cpuvendor;        /* cpu vendor as encoded in system.h */

which pretty clearly was inherited from Linux, and hence was broken when we
disconnected our X86_VENDOR_* values from Linux'es (in 4.9).

For the latter case, xen_mc_logical_cpu_t is part of the Xen ABI, and hence
it got screwed not only as per above, but another time when we converted
X86_VENDOR_* values from enumeration-like to bitfield-like (in 4.13).

Question of course is - if there were any consumers, they may have followed
our breaking of things. So it's hard to tell whether fixing might do more
bad than good. (I'll make a fix nevertheless, just in case).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 12:57:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 12:57:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228921.1534987 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqWFT-0000ki-ES; Thu, 12 Feb 2026 12:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228921.1534987; Thu, 12 Feb 2026 12: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 1vqWFT-0000kb-Bp; Thu, 12 Feb 2026 12:56:47 +0000
Received: by outflank-mailman (input) for mailman id 1228921;
 Thu, 12 Feb 2026 12:56: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqWFR-0000kO-L9
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 12:56: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 480986e1-0812-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 13:56:43 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4801bc32725so48666395e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 04:56:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4836cd7af87sm24982885e9.1.2026.02.12.04.56.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 04:56:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 480986e1-0812-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770901003; x=1771505803; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gutz9gHyQftychG/V5j1emZkoWQn85qndlHYdrxJUEc=;
        b=g4+4NE/gLKs/3kfZHMvNTJjOBBbNZOBtYCIrso/EG+z5KiXkUw5QhdW18flvY8OQTA
         gowtmFxdJwTOgTsL3A8T2hKpMH85ncFMPIe91yCquq8hBMfFJNNp8vdDV1x4tzooXHNq
         69TUeo2NSsb67iUNXnicQ8z1lLNg+mExFMqcvEYZufh9N7ysF+HvCWMfKer/+TBa/E/x
         5FhqB3N0rtdY8TWQaqtFcudWOdKb6w3mFQoSqEurjh1Phz9HmkoyqNbT4n1i8xImmn4U
         G46qaBoETAzUR6UJ6qPQWUbpXxN/JUUWfkDYKty7KtqAQNOgAjgmafVQ7Ot7/uShmceG
         LHlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770901003; x=1771505803;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gutz9gHyQftychG/V5j1emZkoWQn85qndlHYdrxJUEc=;
        b=sRcEQ5Gn1N+Q/VYnVjfYUz2E0BIVg+hE2PSpy+Hq9tXbcbm5Xd100X+IqksaGn9Bn3
         lGueWMCuPteHZZKGGAn4XsIgz0CmdJ7YQjl35dCAbHww8C/scpXD2uBLYvs/nzzUr+vO
         gicWNOYDNVinJLtU1AvYymBy04BsxfsdS441sQ3q8MemNlnPXK9hjVV4StPitQ3UE+vN
         8URPVxvThgNEC+wK6VXaFvfGAuCxRzUoln7drMq3w2mwo0dUo/5JTphyP1TEa7EuT2pY
         fuqRKIFErJV4iYJemgyx/ZAmJhoOwCGIRTxsH5KEx4qmWo1eyvHzBHvZCNUQpIUc0Or+
         QtAA==
X-Forwarded-Encrypted: i=1; AJvYcCUVBsvR+kaIpzlNFDPAzEbk/SKI3bmmzPE8Yvm4gWvtUtLJVAnZFiYh9gM/8N8FEJuXstL+Z+1LF30=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygBI60cHYxr9xI5nCDAizTT9Wk+aTURB/HbA+9v2g4mzBK2EnN
	T2bjP1XZ9tKsJp1/bvsqaIASdCslPXFVpfbvDc9/4yfVhZwQtdsFmv6Mal0qSXGWNQ==
X-Gm-Gg: AZuq6aK224n3/c4O+HY2S/kqLIE/lnq4qWMmM63QC60roODq38GSQs7KXF5QrVC+q7W
	4vuVkeD9Z9NFuzO208mm3BVQ5ZxKYM515QLri6CW8OcQtQJxh9e+QBeY5X7NWNgkf3JAzw/XNxo
	LkchUJxmPvgP2l4nR/wrQfUh3iSOs4uB3fz2xsPcNZwnD0J4QbB+qHHWKJ7+KknZ3hiopg6qPgy
	Ej2/hRIibRCbfizDTu77iUm3NKEtd5wUIrtB4e49TKiRFAiaM0wyo975kLSj5BCdlT+x0owb1MD
	FwKNiShGKZf6vp9QvNAZovIn8qd+Op7MvikvyRtUFshmIx9btUTp4VohpAOeZ1NQd3Sn3Uq+n8U
	ODnl+hFc+UcqWYmQj5FE2Vt+de7a7k9sSJbocSLXBRUPDGdkFCPuELgUYaFCgZeRUGXD+9yMKfH
	XwbM9JrWWe6xS9zSWTdxbpfKT2oyTx4/ZNtTQhlyomMJf+7Rx0cBtAYoDioWYgtOAy4n15nwp+G
	gRjajAKdE/MhE8=
X-Received: by 2002:a05:600c:3e0d:b0:477:63a4:88fe with SMTP id 5b1f17b1804b1-483656ae349mr37071205e9.2.1770901003130;
        Thu, 12 Feb 2026 04:56:43 -0800 (PST)
Message-ID: <ba48bef0-551e-4ea7-8d9a-fb54b9b85da6@suse.com>
Date: Thu, 12 Feb 2026 13:56:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for
 VSATP and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
 <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
 <099768df-ec44-454f-8a9e-4897d81309f9@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: <099768df-ec44-454f-8a9e-4897d81309f9@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 12:57, Oleksii Kurochko wrote:
> On 2/12/26 11:16 AM, Jan Beulich wrote:
>> On 10.02.2026 17:36, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>   
>>>       return get_page(page, p2m->domain) ? page : NULL;
>>>   }
>>> +
>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>> +{
>>> +    if ( is_idle_vcpu(p) )
>>> +        return;
>>> +
>>> +    /*
>>> +     * 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 what will be done in
>>> +     * p2m_handle_vmenter().
>>> +     */
>>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>>> +
>>> +    /*
>>> +     * Nothing to do with HGATP as it is constructed each time when
>>> +     * p2m_handle_vmenter() is called.
>>> +     */
>>> +}
>>> +
>>> +void p2m_ctxt_switch_to(struct vcpu *n)
>>> +{
>>> +    if ( is_idle_vcpu(n) )
>>> +        return;
>>> +
>>> +    n->domain->arch.p2m.is_ctxt_switch_finished = false;
>> How can the context switch of a vCPU affect domain-wide state?
> 
> It is wrong to have is_ctxt_switch_finished per domain, it should be
> vCPU field.
> 
>>
>>> +    /*
>>> +     * Nothing to do with HGATP or VSATP, they will be set in
>>> +     * p2_handle_vmenter()
>>> +     */
>> Why can this not be done here?
> 
> As VMID should be calculated on VM enter.

And I didn't suggest to calculate a new one here.

> We can update HGATP and VSATP here with VMID stored before in p2m_ctxt_switch_from(),
> but then it is possible when vmid_handle_vmenter() will be called before VM entry
> VMID could be changed and it will be needed again to update HGATP and VSATP what
> will lead to flushing of VS TLB twice (one in p2m_ctxt_switch_to() and another one
> in p2m_handle_vmenter()).

Is this a concern resulting from particular logic you expect to appear
in the window between context switch and entering the guest, or is this
merely an abstract concern?

> This is also an answer to ...
> 
>>
>>> +}
>>> +
>>> +void p2m_handle_vmenter(void)
>>> +{
>>> +    struct p2m_domain *p2m = &current->domain->arch.p2m;
>> To save yourself (or others) future work, please never open-code p2m_get_hostp2m()
>> (applies further up as well, as I notice only now).
>>
>>> +    struct vcpu_vmid *p_vmid = &current->arch.vmid;
>>> +    uint16_t old_vmid, new_vmid;
>>> +    bool need_flush;
>>> +    register_t vsatp_old = 0;
>>> +
>>> +    BUG_ON(is_idle_vcpu(current));
>> This is the 3rd use of current - latch into a local variable?
>>
>>> +    /*
>>> +     * 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
>>> +     *
>>> +     * CSR_VSATP is already set to 0 in p2m_ctxt_switch_from() in the
>>> +     * case when n->arch.is_p2m_switch_finished = false. Also, there is
>>> +     * BUG_ON() below to verify that.
>>> +     */
>>> +    if ( p2m->is_ctxt_switch_finished )
>>> +        vsatp_old = csr_swap(CSR_VSATP, 0);
>> This shouldn't be needed when ...
>>
>>> +    old_vmid = p_vmid->vmid;
>>> +    need_flush = vmid_handle_vmenter(p_vmid);
>>> +    new_vmid = p_vmid->vmid;
>> ... the VMID doesn't change. Imo you want to drop is_ctxt_switch_finished
>> again, handle things normally in p2m_ctxt_switch_to(), and deal with merely
>> a changing VMID here.
> 
> ... (check the answer above)
> 
> If it is okay to have potential double VS TLB flush and double update of
> HGATP and VSATP when old_vmid != new_vmid then we can do in this way.

I think the simpler, straightforward approach should be used initially,
with improvements made once a performance issue was actually determined, or
once a less ugly (sorry) approach was found. For example, assuming CSR
reads aren't overly expensive, it looks to me as if during VM entry
- vsatp only needs writing when vsatp.MODE is zero,
- hgatp only needs writing when vsatp.MODE is zero or when the VMID needs
  updating.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 13:17:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 13:17:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228947.1535030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqWZL-0003yc-Ap; Thu, 12 Feb 2026 13:17:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228947.1535030; Thu, 12 Feb 2026 13:17: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 1vqWZL-0003yV-7v; Thu, 12 Feb 2026 13:17:19 +0000
Received: by outflank-mailman (input) for mailman id 1228947;
 Thu, 12 Feb 2026 13:17: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqWZK-0003yP-Qo
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 13:17:18 +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 26afc2d1-0815-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 14:17:16 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4836e3288cdso1958295e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 05:17:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d92267bsm160534295e9.0.2026.02.12.05.17.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 05:17:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 26afc2d1-0815-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770902236; x=1771507036; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4OEoz62PZzisdY26JBIeslB/E2Uqz1a3eDC/xKQQ4t4=;
        b=EnWv9NdGDR67kbn/CI6/ILeXbGlQE079n8QQgHHiZGCSmqy4fZcdut05uOXzvwDmsh
         0k+jbtjvVOlwzJRfuKIhMxA/2TS8wLvcb7TAaH0zzpKSdo4GXr2SlkQ6AlUx6VZ7CivV
         QskXPqTkAA3Uq9UxgcKL8tf433he6A3evDuoYrPV38B4mNkbkjvw9eV6mlGpMiSPZbs9
         BlK+jCVH9NTZYdQluWznOR9aTZeGJ15Cqd0P715tjIPilQAaTmyeNpniT6eJaCl2UWdY
         78Yrz2wC5MwNVo560kz9kdQzNMNNYnu5WvFig3EYQLDHGPcuHAGMRL64+mKlo747RmQ2
         BGTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770902236; x=1771507036;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4OEoz62PZzisdY26JBIeslB/E2Uqz1a3eDC/xKQQ4t4=;
        b=SilCsjre1TtZxK5Mimb5qtxo5sN7/tYYGALK/tJxpFR2NJzb0WmKo8tBmpxyrwKiMl
         FIE+udjJS4w3skZXKAG/pgPvY+Mh1EyHk7A+7znCvweIQFh8/+KV//30MazZcQ5mXxCW
         4XztO9FDs+N91qBoFUJAR8Av0uU0tyB9HHvrmGr+LnYufpYAIeldVoNwTcIFjr061Lx7
         WLMyzC6DSBvwBCGOE8N5D1CkDGEAUwx7YcgqogTrwTGXiyJ3m9ieePbKcNJrV3FmZppU
         Z5oKfIM9UVBmXVoEVip2SzoBwA3Xxe1YYU/jMxQ0ez80Z59KGqb5oyyN/y88QHJ4sj5e
         F/ZQ==
X-Forwarded-Encrypted: i=1; AJvYcCVoOpz40AZjN8LUBZKSLU+aK2LLNdvtxgfg76XcIlr/rS526ObI00Jhxyb4oRcv76AvPCU3ZHF4Rno=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyjWo/X/y5p9yLpTp+UBEiwdnW0D616x6G5bfpMi6azve3a2W+0
	+zxADDhx/96FZaeh8xxgxKhYdkH3n1xgsLxNJQYWfM5S8fKwo0YUWhwnsWoLJvJODA==
X-Gm-Gg: AZuq6aIolMg03YkeL4bQ3d7oLawfoZRYCePSJpvFSF1Js5njPeCwTV1PQaSb2QN6LBQ
	wDyNTBcnLrLya1evhKlM88MlVdKCJmXE/LgzKZEqkeKyOntViriGLq1lI7qPg8u7JlHAvqzlKGm
	8VJoRDUUHrcPB3bmeHRhV1UqpAzNkeLbvRrVWyD/qKpZ9tujVc4wX4COwb5I9Ea57FGG+oPbYSi
	pAy0bh7A7pKaHHeRNF02BaRlhJxI8JkrxBUzfAS9VhD9qzeo3zw+XWEq35jsDuiLK07zy2stw4Y
	QRKThFJCouFRMeRI/nikucUTNkX4tWo3/XCjudMdfLqauabEVH6ihKuAtUdALZ097JEOIqdocJ0
	lrxKWl8PbsKiGqEtZGIHYeFuKyxdZ0FfKPo8z/EWSmxH8M1jn41nI7nqoiZpXlz4ANSPw8DVan5
	aYr0vmlU9eoOZoD2K3Hesl/Cxyb5a5PquVuwSHjtbEzDrhKNufrfqtWnNay6RC2JcrQsIVZzYCR
	SvUDkhtBPun/KI=
X-Received: by 2002:a05:600c:2e4a:b0:483:fbe:23dd with SMTP id 5b1f17b1804b1-48366021eb9mr26796265e9.12.1770902235551;
        Thu, 12 Feb 2026 05:17:15 -0800 (PST)
Message-ID: <2401ecf5-132b-41ac-b288-68c31db8c906@suse.com>
Date: Thu, 12 Feb 2026 14:17:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/12] x86/cpu: Migrate vendor checks to use cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-13-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-13-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> --- a/xen/arch/x86/cpu/intel_cacheinfo.c
> +++ b/xen/arch/x86/cpu/intel_cacheinfo.c
> @@ -168,9 +168,8 @@ 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->x86 == 15) && c->cpuid_level > 1) &&
> +	    (!(cpu_vendor() & X86_VENDOR_SHANGHAI))) {

Nit: Again, no need for the extra parentheses (here: around the !()). Nor do
I see a need to alter the first line at all.

> --- a/xen/arch/x86/cpu/mtrr/generic.c
> +++ b/xen/arch/x86/cpu/mtrr/generic.c
> @@ -218,9 +218,8 @@ 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 (((cpu_vendor() & X86_VENDOR_AMD) && boot_cpu_data.x86 >= 0xf) ||
> +	    (cpu_vendor() & X86_VENDOR_HYGON)) {

Perhaps easier as

	if ((cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
	    boot_cpu_data.x86 >= 0xf) {

, seeing that there's no Hygon hardware lower than Fam18?

> --- a/xen/arch/x86/cpu/vpmu.c
> +++ b/xen/arch/x86/cpu/vpmu.c
> @@ -398,7 +398,6 @@ 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;
>      int ret;
>  
>      BUILD_BUG_ON(sizeof(struct xen_pmu_intel_ctxt) > XENPMU_CTXT_PAD_SZ);
> @@ -418,7 +417,7 @@ static int vpmu_arch_initialise(struct vcpu *v)
>          if ( vpmu_mode != XENPMU_MODE_OFF )
>          {
>              printk(XENLOG_G_WARNING "VPMU: Unknown CPU vendor %d. "
> -                   "Disabling VPMU\n", vendor);
> +                   "Disabling VPMU\n", cpu_vendor());

Why would you want to make the log message less useful?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 13:29:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 13:29:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1228977.1535040 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqWlL-0005xR-GB; Thu, 12 Feb 2026 13:29:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1228977.1535040; Thu, 12 Feb 2026 13:29: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 1vqWlL-0005xK-Cx; Thu, 12 Feb 2026 13:29:43 +0000
Received: by outflank-mailman (input) for mailman id 1228977;
 Thu, 12 Feb 2026 13:29: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqWlK-0005xE-3Y
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 13:29: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 e1bd2900-0816-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 14:29:39 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-4359108fd24so5167934f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 05:29:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e59c19sm11645137f8f.34.2026.02.12.05.29.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 05:29:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e1bd2900-0816-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770902979; x=1771507779; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=9Fz93Y3WSiu8unf0rKniKSu90JpiEdagtnmKOkaOfPo=;
        b=Hzjdm0JmOM4xCUmiTWrN3iBkYGMz/hUm5MLCN8GikPVYIE6Qv6O0ncK3p0stgkMgd5
         NCQXWH0wwR6ZMSvSPQC5Iwlwioo42iySNFqmSXPgwdFhY96tBfLBYIgV2pFppX7sw12P
         Yk/wPRT36HFy0jDqsSZqT9kMPmTbCzn2+zD1l3DR8Qj9gnEKg0ZDzmW4Nlfe1jdfE3lZ
         vGONVWUKJFVet7eA05ZIkCLlgnq/URj/H2V39PAWwi0gB6VBaqP7jql58DI7SH5yDvkF
         J//qkfTwI7dnBYOpwRUzwsW1buEnYYR4TnhEHU7wauV0iMjPy8yYRCdPNI1rybWsLqpu
         GAqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770902979; x=1771507779;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9Fz93Y3WSiu8unf0rKniKSu90JpiEdagtnmKOkaOfPo=;
        b=Odn9LVFcUDaTRPnUIeKnjLNh4OESlxC3mWIycyN+klTrxkIPyLRn/tTFqjA0tuW5qr
         g7/ToB7+HIMXTrU2c62+zfp/UOy0Ru4ff+0nX9ub3vegkPUAdMsBaZt4xxVTgAFe4Euu
         8UPZhout7hnXRk5CmQDAOAdjiMRrzSjtOOaTkkjeOpu+fNDw2gN35P5eyaBpQNJpYAEU
         wMxa85VHlZyA0J0Nev/KhXha3xOP8ypjKljPXYViL6i/dfB6SGXzwp+w9BkZiYl6d5sD
         2IU9JjPU6jeJVw1b3SvcqR1Tkb+1Mrd6gVJ+PQUPWkHxKb3zKnipUxAjupOd253yqrXl
         fCHw==
X-Forwarded-Encrypted: i=1; AJvYcCWClnKVwEdzuP3oR7bsLNDcvk9XAnuFiJRB5Q3m2DYixaQzjjd8Kg1bJ/k90BLWX8bmqSedlq9TBrY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz+msPr2yKHA7yx1SI//7qO4pX/DbbeuzpD7xQPW1lplyfsqv4E
	MZEqF6zDDaCrvm/ec0fvWknmmPaCTGSCIHbuH4zE7XVRW5fE+Elxx50CtTTO+fmx8A==
X-Gm-Gg: AZuq6aJiVROXIqi5hq+CinY/B8jFk5eGUSr6ste15o25gxQJQ/lVePZPaGr6TR/arSO
	+QZglStEoapoSBPM2z2yAv9o5Lc6FWoVZEUqYXRDVl8KQbWtj0wnA1AB2lOzA8ZKuQANyhsH2U4
	73SBp3e6SrYGELm3tuBzc5WTnPacW5WktWZBX1DGR8+euz0nEwWHdO/mjQeQPZsI7vgjmLmDwBf
	UQ3yiyh+J6KN0FdKhDzUqeNtFlz39x9qEwKDKDzeJrRFlgyqf6NkpgSFMqqGqF11cYoWdhedo5d
	kv701h2pFlrJ0eYBz6i56gPExlP65xOw10nHwYM6swqq/TzvD+BteX2fOZNcSqSmK+AutNYbP36
	lXrCxUTYlGZC8M9DbV1C8+BzOMhST4DEYAKLjvs8sngGlOuHMooqL2C8HSHgkI4qMc3hcU0iCUK
	N0I5tk7EcK2dXfu+DuzfjOEiKqsFUNjqnCoO4luoXBXs3SBFbCfnGygnu6eT09BCtBKSPd5D84y
	/eIE04b9zkSZ8kgsNBUnT2A+Q==
X-Received: by 2002:a05:6000:1acb:b0:437:6fcc:f648 with SMTP id ffacd0b85a97d-4378ac891f6mr5867271f8f.53.1770902978993;
        Thu, 12 Feb 2026 05:29:38 -0800 (PST)
Message-ID: <c723c1d7-264b-4fcc-ab38-922f8ede3c4f@suse.com>
Date: Thu, 12 Feb 2026 14:29:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 12/12] x86: Migrate every remaining raw vendor check to
 cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-14-alejandro.garciavallejo@amd.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260206161539.209922-14-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 17:15, Alejandro Vallejo wrote:
> @@ -424,7 +423,7 @@ void domain_cpu_policy_changed(struct domain *d)
>               * If not emulating AMD or Hygon, clear the duplicated features
>               * in e1d.
>               */
> -            if ( !(p->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) )
> +            if ( cpu_vendor() & ~(X86_VENDOR_AMD | X86_VENDOR_HYGON) )
>                  edx &= ~CPUID_COMMON_1D_FEATURES;

The usual transformation here would have been to simply replace p->x86_vendor
by cpu_vendor(). Such an unusual pattern, if indeed necessary, imo wants
explaining in the description.

As this is entirely unexpected, I now wonder whether I overlooked any other
unmentioned unusual transformations.

> --- 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 = cpu_vendor() == X86_VENDOR_INTEL;

Unexpectedly retaining == here?

> --- a/xen/arch/x86/i8259.c
> +++ b/xen/arch/x86/i8259.c
> @@ -419,9 +419,8 @@ void __init init_IRQ(void)
>           * the interrupt.
>           */
>          cpumask_copy(desc->arch.cpu_mask,
> -                     (boot_cpu_data.x86_vendor &
> -                      (X86_VENDOR_AMD | X86_VENDOR_HYGON) ? &cpumask_all
> -                                                          : cpumask_of(cpu)));
> +                     ((cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON))
> +                          ? &cpumask_all : cpumask_of(cpu)));

Nit: Indentation again, and apparently also excess parentheses.

> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -2011,8 +2011,7 @@ 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))) &&
> +                    cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&

Whereas here parentheses look to be missing (to isolate from the || not visible
in context).

> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1406,8 +1406,7 @@ void asmlinkage __init noreturn __start_xen(void)
>           * CPUs with this addressed enumerate CET-SSS to indicate that
>           * supervisor shadow stacks are now safe to use.
>           */
> -        bool cpu_has_bug_shstk_fracture =
> -            boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
> +        bool cpu_has_bug_shstk_fracture = (cpu_vendor() & X86_VENDOR_INTEL) &&
>              !boot_cpu_has(X86_FEATURE_CET_SSS);

I think retaining the prior wrapping would be better here. When done like you
do, really it should become

        bool cpu_has_bug_shstk_fracture = (cpu_vendor() & X86_VENDOR_INTEL) &&
                                          !boot_cpu_has(X86_FEATURE_CET_SSS);

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:05:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:05:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229033.1535069 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXJI-0002tv-8O; Thu, 12 Feb 2026 14:04:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229033.1535069; Thu, 12 Feb 2026 14:04:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXJI-0002to-5k; Thu, 12 Feb 2026 14:04:48 +0000
Received: by outflank-mailman (input) for mailman id 1229033;
 Thu, 12 Feb 2026 14:04: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=ry7C=AQ=intel.com=lkp@srs-se1.protection.inumbo.net>)
 id 1vqXJG-0002sv-DN
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:04:46 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c70d5595-081b-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:04:43 +0100 (CET)
Received: from orviesa003.jf.intel.com ([10.64.159.143])
 by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 Feb 2026 06:04:40 -0800
Received: from igk-lkp-server01.igk.intel.com (HELO e5404a91d123)
 ([10.211.93.152])
 by orviesa003.jf.intel.com with ESMTP; 12 Feb 2026 06:04:37 -0800
Received: from kbuild by e5404a91d123 with local (Exim 4.98.2)
 (envelope-from <lkp@intel.com>) id 1vqXJ4-000000001Kr-2rHR;
 Thu, 12 Feb 2026 14:04: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: c70d5595-081b-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770905084; x=1802441084;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=hC83cy9I+QvOHq44fYtXM6qMN9P2fhKYqhqqNyaPhiw=;
  b=Lie3jEI5jY4FJqeqtEdunHEoQc+iZq2K5A7IN6gDD/n8sg2XSjOs/4Px
   oI1Li9P1cRaNV7cgiQeaq8YWE+I4k7LS6iMdas4DmjTFF+wmVa+9C8KDU
   A/7Uj6rPDK6U2Wvx6rNOY5hzqHaD8rhsAyVcJ3bjKCX0ZgTlx5UnjkONy
   40Wqs0TWYoDRj7f89sWlPcRJpEexp0g/63oo7g+/QgxujDqOEmAOC2w8X
   LTLX1iQGg4m4I5fw1hqC/w4xx3YZ7yDXH4W1oREdiDCVLoPzRDIgS8gPv
   2ED05nmk5r2z8uvwd7pIBkz2rff0A/jZtB2aKT04tb/In5ixdQCCenoHY
   w==;
X-CSE-ConnectionGUID: hjFT8ebsSdyv09SIaZiwHQ==
X-CSE-MsgGUID: K/ALXR6JT62AoEObuW8rDw==
X-IronPort-AV: E=McAfee;i="6800,10657,11699"; a="83443606"
X-IronPort-AV: E=Sophos;i="6.21,286,1763452800"; 
   d="scan'208";a="83443606"
X-CSE-ConnectionGUID: TUgDl26jTP25Gm4vGa+Q2g==
X-CSE-MsgGUID: TXT8PHAFRqu/SXTEK+WepQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,286,1763452800"; 
   d="scan'208";a="216763664"
Date: Thu, 12 Feb 2026 15:04:02 +0100
From: kernel test robot <lkp@intel.com>
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-scsi@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Bjorn Helgaas <helgaas@kernel.org>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	xen-devel@lists.xenproject.org,
	Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH 1/2] xenbus: add xenbus_device parameter to
 xenbus_read_driver_state()
Message-ID: <202602121525.xsMivuEv-lkp@intel.com>
References: <20260212083826.136221-2-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260212083826.136221-2-jgross@suse.com>

Hi Juergen,

kernel test robot noticed the following build warnings:

[auto build test WARNING on xen-tip/linux-next]
[also build test WARNING on linus/master v6.19 next-20260211]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Juergen-Gross/xenbus-add-xenbus_device-parameter-to-xenbus_read_driver_state/20260212-164134
base:   https://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git linux-next
patch link:    https://lore.kernel.org/r/20260212083826.136221-2-jgross%40suse.com
patch subject: [PATCH 1/2] xenbus: add xenbus_device parameter to xenbus_read_driver_state()
config: x86_64-rhel-9.4-ltp (https://download.01.org/0day-ci/archive/20260212/202602121525.xsMivuEv-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260212/202602121525.xsMivuEv-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602121525.xsMivuEv-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> Warning: drivers/xen/xenbus/xenbus_client.c:940 function parameter 'dev' not described in 'xenbus_read_driver_state'
>> Warning: drivers/xen/xenbus/xenbus_client.c:940 function parameter 'dev' not described in 'xenbus_read_driver_state'

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:22:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:22:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229064.1535080 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXZt-0005gm-L4; Thu, 12 Feb 2026 14:21:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229064.1535080; Thu, 12 Feb 2026 14:21: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 1vqXZt-0005gf-Gz; Thu, 12 Feb 2026 14:21:57 +0000
Received: by outflank-mailman (input) for mailman id 1229064;
 Thu, 12 Feb 2026 14:21: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=Yal/=AQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vqXZs-0005gZ-Bs
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:21:56 +0000
Received: from mail-oa1-x31.google.com (mail-oa1-x31.google.com
 [2001:4860:4864:20::31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2bb67295-081e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 15:21:50 +0100 (CET)
Received: by mail-oa1-x31.google.com with SMTP id
 586e51a60fabf-40ee196dd78so109013fac.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 06:21:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bb67295-081e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770906109; cv=none;
        d=google.com; s=arc-20240605;
        b=WTj2CZkfVXN7mP6UPkS1Cumm7f5sD5mekO6+vt+iUfeIeVft39yI4L4uNx9GwPpDkn
         dRhJKj0SLLCNDEGrlPVMIWulDmQi7TiE/7f/7AhfT8rp/CiB+/Pgv2ghdazCZwhaoqO1
         Yp1NGcXEQjfJdWYfRCRzcGHMg9bd0KQx3OifMTd2gZb8kesYN+B65DSC05jws2hIvWQ3
         9S+tw/geZ26lnBHfAkABG2hmonPwUQ+Vmyect0UooEt5h2hRKP5/gky4WSfu03xu75aC
         oCcHG+FFpONNoRdfPpOI3r4JyK4DYACbITCif+yH25U8K96jXvqZzO8yFL8RcA47AIJT
         pT0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=kLYIz9zueWt1IEe9/Rwa8pHPWMoKFKCSivYWzBo0ARc=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=LnC6M79n6JwWEKXRJ4eiTuGYwq1e1G//eWlMM/Zppho+b59AuOJK17QQmUniB70xx4
         p26xlftXP7FgQzPBJFNwoCxx3CaD925cuMcF9fRJOVDZwmYIVu8GBvGz6yzct9KdV21D
         u7PDSPSEfUj8SRlkPpIyZLWXGQlNN4hQX2+bg05HHsB5L8OEfWSpAbKJLKEHMrYyc+B5
         j0/qv5d10KLuP4e110McGASfQaI5qNWQ12b7kIob6z68qeJP3Aw8y4wJRo3rePQXA/T4
         CtKOk+85k2XqJnbHFu6+Lmv6wNmYa6qKWKg6Sr0sf6VEEjhfq1FMmcTa0rqobN5KQYqh
         EkTw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770906109; x=1771510909; 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=kLYIz9zueWt1IEe9/Rwa8pHPWMoKFKCSivYWzBo0ARc=;
        b=T0LCOSAyZWTDDCB+A/zmcRdcRURMF3ryxGF4l0JTocwRmY+Vb+xmrzmNaZr6wZr8t1
         M2pyOgsIUMMR8Gj0F+ZTF/lChImKsg3FXnC9/wDX57pPBDHIjkdLAvEOT3coxxtadgrT
         UHe95H6swR5E20obsbFCCOHrY4umrJP83DjD04f4+M5qhEtw7BKQe2M0JN5/+zEqCbwK
         1XtRxUEBnVvMOF+ELt/fHbkbpJaQ856MkmOCtd8n0ys7bxb0Rt4SY6SfT5EDioSu3VqM
         Y6gI/fc5ycxFjhwz5/4OXax9kHGs7Ks2GX0xnMLqjXmi+YlZ7tA2u3Ws70GTqrggtHAF
         Hj5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770906109; x=1771510909;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=kLYIz9zueWt1IEe9/Rwa8pHPWMoKFKCSivYWzBo0ARc=;
        b=p09s7R/6s6rC2gnVv24ltQezfgz4tis/iJogZxeAKrELegvexyU44Apt3u3+jAE8W7
         DPUN7YeEoSTDOebVh73wXeuhudx8XEH3VRmEz+u0glWXiLBTzOS3ho7CRG/Cmi+e781+
         qzywk+W8wlzZ317OKpYEyIk/iMce2CTjqbU0l/gRM0JSFUyys6DmRHoAtsxMOSqNuMNe
         NGGO5UPQ6xTKzdYqk+PJgTu+Ajcv2h7ozgQjk87WGrh4kotdLR9NLmHBKimN/t9DDLhA
         AWwh9eDseWD4rU0rrpIPpuRVlLrGbmQvF9rnGb68wlbpODVFoNqftrSNCT/bScvRJDB3
         B2zA==
X-Gm-Message-State: AOJu0YyUMEFOxrf3482c0CG7ptmReeyI2ItdsAek2f4fHMxdaEkh8+sM
	rzgsQKf+fXj9lAQ+3mpxlMGf/sYqFDB1jKTORJpiM65jYC8XL6e1TCzoJ4HM5UgVm5aDIVhh//m
	+mOnbd5I5xPeYSdr1u/5FH3RSLvNnK/h1KQOn0OdZGQ==
X-Gm-Gg: AZuq6aIbzpzA8zuWfvdphmvIanwwdda1AvwOuKLN8VD3vkmrsEsMbGOd1JQ0paDJVwD
	DRsAiQnLjbfq/bvCmwPUL6DY1GZU14lOeUdX23dblv6rh7U+GYfZgtFp/KjY8UfnsYvJ0AS3i/a
	aTqS7GkfL7cLgHuKiOf6imMpcUKk0ikzKP14uA3FM133CZ5RjQW0RNjPhihLb2ypz1kp8uBLYZA
	eFGGecinWBEJNftwABhYN1aoV+QJ0IG63AkkHFsf4bk/HVH1I67mNTLeARLrSE0+YXqxCmcn+2w
	NMV7miQ4Yf634n1qzIySoDlmWe1R3wcguDs5xA==
X-Received: by 2002:a05:6870:700b:b0:409:6ddb:10fc with SMTP id
 586e51a60fabf-40ec8819e62mr1376475fac.7.1770906109113; Thu, 12 Feb 2026
 06:21:49 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770826406.git.bertrand.marquis@arm.com> <5189cce4272700616ff5a39870566abc72a1acd2.1770826406.git.bertrand.marquis@arm.com>
In-Reply-To: <5189cce4272700616ff5a39870566abc72a1acd2.1770826406.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Thu, 12 Feb 2026 15:21:37 +0100
X-Gm-Features: AZwV_QjVAk-V_PvYUdiIzB30hBZsiWN4A82btvhLaiZ12FBzJDPJj7YphZzSoDk
Message-ID: <CAHUa44FMnUMUYv=c__xznhyHYC8mGQk6fz2buNtBdTOuvKX_6g@mail.gmail.com>
Subject: Re: [PATCH v2 03/12] xen/arm: ffa: Harden shm page parsing
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 Wed, Feb 11, 2026 at 6:16=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> get_shm_pages() uses unchecked address arithmetic and does not enforce
> alignment, so malformed descriptors can cause overflow or slip through
> validation. The reclaim path also repeats handle-to-shm-mem conversion
> in multiple places, duplicating error handling.
>
> Harden page parsing and reclaim handling:
> - add ffa_safe_addr_add() and use it to detect address overflows
> - enforce alignment checks in get_shm_pages() and return FF-A errors
> - introduce ffa_secure_reclaim() and use it for MEM_RECLAIM and teardown
> - simplify ffa_mem_share() argument handling and allow max page count
>
> While there rename ffa_mem_share to ffa_spmc_share and ffa_mem_reclaim
> to ffa_spmc_reclaim to have coherent names with other parts of ffa
> implementation for SMC wrappers to the SPMC.
>
> Functional impact: invalid or misaligned memory ranges now fail earlier
> with proper error codes; behavior for valid descriptors is unchanged.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - rename ffa_mem_share to ffa_spmc_share and ffa_mem_reclaim to
>   ffa_spmc_reclaim
> - remove unused frag_len
> ---
>  xen/arch/arm/tee/ffa_private.h | 11 +++++++
>  xen/arch/arm/tee/ffa_shm.c     | 60 ++++++++++++++++------------------
>  2 files changed, 40 insertions(+), 31 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index b625f1c72914..58562d8e733c 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -632,4 +632,15 @@ static inline void ffa_uuid_set(struct ffa_uuid *id,=
 uint32_t val0,
>      id->val[1] =3D ((uint64_t)val3 << 32U) | val2;
>  }
>
> +/*
> + * Common overflow-safe helper to verify that adding a number of pages t=
o an
> + * address will not wrap around.
> + */
> +static inline bool ffa_safe_addr_add(uint64_t addr, uint64_t pages)
> +{
> +    uint64_t off =3D pages * FFA_PAGE_SIZE;
> +
> +    return (off / FFA_PAGE_SIZE) =3D=3D pages && addr <=3D UINT64_MAX - =
off;
> +}
> +
>  #endif /*__FFA_PRIVATE_H__*/
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index 90800e44a86a..adc7e645a1c7 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -96,16 +96,14 @@ struct ffa_shm_mem {
>      struct page_info *pages[];
>  };
>
> -static int32_t ffa_mem_share(uint32_t tot_len, uint32_t frag_len,
> -                             register_t addr, uint32_t pg_count,
> -                             uint64_t *handle)
> +static int32_t ffa_spmc_share(uint32_t tot_len, uint64_t *handle)
>  {
>      struct arm_smccc_1_2_regs arg =3D {
>          .a0 =3D FFA_MEM_SHARE_64,
>          .a1 =3D tot_len,
> -        .a2 =3D frag_len,
> -        .a3 =3D addr,
> -        .a4 =3D pg_count,
> +        .a2 =3D tot_len,
> +        .a3 =3D 0,
> +        .a4 =3D 0,
>      };
>      struct arm_smccc_1_2_regs resp;
>
> @@ -131,12 +129,16 @@ static int32_t ffa_mem_share(uint32_t tot_len, uint=
32_t frag_len,
>      }
>  }
>
> -static int32_t ffa_mem_reclaim(uint32_t handle_lo, uint32_t handle_hi,
> -                               uint32_t flags)
> +static int32_t ffa_spmc_reclaim(struct ffa_shm_mem *shm, uint32_t flags)
>  {
> +    register_t handle_hi;
> +    register_t handle_lo;
> +
>      if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
>          return FFA_RET_NOT_SUPPORTED;
>
> +    uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
> +
>      return ffa_simple_call(FFA_MEM_RECLAIM, handle_lo, handle_hi, flags,=
 0);
>  }
>
> @@ -145,7 +147,7 @@ static int32_t ffa_mem_reclaim(uint32_t handle_lo, ui=
nt32_t handle_hi,
>   * this function fails then the caller is still expected to call
>   * put_shm_pages() as a cleanup.
>   */
> -static int get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
> +static int32_t get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,
>                           const struct ffa_address_range *range,
>                           uint32_t range_count)
>  {
> @@ -156,17 +158,26 @@ static int get_shm_pages(struct domain *d, struct f=
fa_shm_mem *shm,
>      p2m_type_t t;
>      uint64_t addr;
>      uint64_t page_count;
> +    uint64_t gaddr;
>
>      for ( n =3D 0; n < range_count; n++ )
>      {
>          page_count =3D ACCESS_ONCE(range[n].page_count);
>          addr =3D ACCESS_ONCE(range[n].address);
> +
> +        if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
> +            return FFA_RET_INVALID_PARAMETERS;
> +
>          for ( m =3D 0; m < page_count; m++ )
>          {
>              if ( pg_idx >=3D shm->page_count )
>                  return FFA_RET_INVALID_PARAMETERS;
>
> -            gfn =3D gaddr_to_gfn(addr + m * FFA_PAGE_SIZE);
> +            if ( !ffa_safe_addr_add(addr, m) )
> +                return FFA_RET_INVALID_PARAMETERS;
> +
> +            gaddr =3D addr + m * FFA_PAGE_SIZE;
> +            gfn =3D gaddr_to_gfn(gaddr);
>              shm->pages[pg_idx] =3D get_page_from_gfn(d, gfn_x(gfn), &t,
>                                                    P2M_ALLOC);
>              if ( !shm->pages[pg_idx] )
> @@ -180,7 +191,7 @@ static int get_shm_pages(struct domain *d, struct ffa=
_shm_mem *shm,
>
>      /* The ranges must add up */
>      if ( pg_idx < shm->page_count )
> -            return FFA_RET_INVALID_PARAMETERS;
> +        return FFA_RET_INVALID_PARAMETERS;
>
>      return FFA_RET_OK;
>  }
> @@ -198,15 +209,11 @@ static void put_shm_pages(struct ffa_shm_mem *shm)
>
>  static bool inc_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
>  {
> -    bool ret =3D true;
> +    bool ret =3D false;
>
>      spin_lock(&ctx->lock);
>
> -    if ( ctx->shm_count >=3D FFA_MAX_SHM_COUNT )
> -    {
> -        ret =3D false;
> -    }
> -    else
> +    if ( ctx->shm_count < FFA_MAX_SHM_COUNT )
>      {
>          /*
>           * If this is the first shm added, increase the domain reference
> @@ -217,6 +224,7 @@ static bool inc_ctx_shm_count(struct domain *d, struc=
t ffa_ctx *ctx)
>              get_knownalive_domain(d);
>
>          ctx->shm_count++;
> +        ret =3D true;
>      }
>
>      spin_unlock(&ctx->lock);
> @@ -251,7 +259,7 @@ static struct ffa_shm_mem *alloc_ffa_shm_mem(struct d=
omain *d,
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      struct ffa_shm_mem *shm;
>
> -    if ( page_count >=3D FFA_MAX_SHM_PAGE_COUNT )
> +    if ( page_count > FFA_MAX_SHM_PAGE_COUNT )
>          return NULL;
>      if ( !inc_ctx_shm_count(d, ctx) )
>          return NULL;
> @@ -297,7 +305,6 @@ static int share_shm(struct ffa_shm_mem *shm)
>      struct ffa_address_range *addr_range;
>      struct ffa_mem_region *region_descr;
>      const unsigned int region_count =3D 1;
> -    uint32_t frag_len;
>      uint32_t tot_len;
>      paddr_t last_pa;
>      unsigned int n;
> @@ -350,7 +357,6 @@ static int share_shm(struct ffa_shm_mem *shm)
>      }
>
>      addr_range =3D region_descr->address_range_array;
> -    frag_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count=
, 1);
>      last_pa =3D page_to_maddr(shm->pages[0]);
>      init_range(addr_range, last_pa);
>      for ( n =3D 1; n < shm->page_count; last_pa =3D pa, n++ )
> @@ -362,12 +368,11 @@ static int share_shm(struct ffa_shm_mem *shm)
>              continue;
>          }
>
> -        frag_len +=3D sizeof(*addr_range);
>          addr_range++;
>          init_range(addr_range, pa);
>      }
>
> -    ret =3D ffa_mem_share(tot_len, frag_len, 0, 0, &shm->handle);
> +    ret =3D ffa_spmc_share(tot_len, &shm->handle);
>
>  out:
>      ffa_rxtx_spmc_tx_release();
> @@ -637,8 +642,6 @@ int32_t ffa_handle_mem_reclaim(uint64_t handle, uint3=
2_t flags)
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      struct ffa_shm_mem *shm;
> -    register_t handle_hi;
> -    register_t handle_lo;
>      int32_t ret;
>
>      if ( !ffa_fw_supports_fid(FFA_MEM_RECLAIM) )
> @@ -652,8 +655,7 @@ int32_t ffa_handle_mem_reclaim(uint64_t handle, uint3=
2_t flags)
>      if ( !shm )
>          return FFA_RET_INVALID_PARAMETERS;
>
> -    uint64_to_regpair(&handle_hi, &handle_lo, handle);
> -    ret =3D ffa_mem_reclaim(handle_lo, handle_hi, flags);
> +    ret =3D ffa_spmc_reclaim(shm, flags);
>
>      if ( ret )
>      {
> @@ -677,11 +679,7 @@ bool ffa_shm_domain_destroy(struct domain *d)
>
>      list_for_each_entry_safe(shm, tmp, &ctx->shm_list, list)
>      {
> -        register_t handle_hi;
> -        register_t handle_lo;
> -
> -        uint64_to_regpair(&handle_hi, &handle_lo, shm->handle);
> -        res =3D ffa_mem_reclaim(handle_lo, handle_hi, 0);
> +        res =3D ffa_spmc_reclaim(shm, 0);
>          switch ( res ) {
>          case FFA_RET_OK:
>              printk(XENLOG_G_DEBUG "%pd: ffa: Reclaimed handle %#lx\n",
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:33:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:33:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229080.1535090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXky-0007MH-JD; Thu, 12 Feb 2026 14:33:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229080.1535090; Thu, 12 Feb 2026 14: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 1vqXky-0007MA-Fk; Thu, 12 Feb 2026 14:33:24 +0000
Received: by outflank-mailman (input) for mailman id 1229080;
 Thu, 12 Feb 2026 14: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=sHDP=AQ=intel.com=rodrigo.vivi@srs-se1.protection.inumbo.net>)
 id 1vqXkx-0007M4-43
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:33:23 +0000
Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3cc76ba-081f-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 15:33:16 +0100 (CET)
Received: from fmviesa007.fm.intel.com ([10.60.135.147])
 by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 Feb 2026 06:33:14 -0800
Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23])
 by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 12 Feb 2026 06:33:13 -0800
Received: from ORSMSX903.amr.corp.intel.com (10.22.229.25) 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.35; Thu, 12 Feb 2026 06:33:13 -0800
Received: from ORSEDG903.ED.cps.intel.com (10.7.248.13) by
 ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35 via Frontend Transport; Thu, 12 Feb 2026 06:33:13 -0800
Received: from MW6PR02CU001.outbound.protection.outlook.com (52.101.48.47) by
 edgegateway.intel.com (134.134.137.113) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.2562.35; Thu, 12 Feb 2026 06:33:12 -0800
Received: from CYYPR11MB8430.namprd11.prod.outlook.com (2603:10b6:930:c6::19)
 by SN7PR11MB6653.namprd11.prod.outlook.com (2603:10b6:806:26f::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Thu, 12 Feb
 2026 14:33:10 +0000
Received: from CYYPR11MB8430.namprd11.prod.outlook.com
 ([fe80::1d86:a34:519a:3b0d]) by CYYPR11MB8430.namprd11.prod.outlook.com
 ([fe80::1d86:a34:519a:3b0d%5]) with mapi id 15.20.9611.008; Thu, 12 Feb 2026
 14:33: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: c3cc76ba-081f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
  t=1770906797; x=1802442797;
  h=date:from:to:cc:subject:message-id:references:
   content-transfer-encoding:in-reply-to:mime-version;
  bh=UCar5YiqRe9mtbR2usQPHf7wKSZfmQKyOa9UKWi0+7M=;
  b=HoCOIZrvMtY7t6wPYh5KeMEkQcWNsCiHVV3RI31PepfqVI4cw0p0bxCB
   Ub1jMT7f5VZ2DMhwSXGI+bWOc5x9aeJhj3JH2M72k371e2Q7OY3u6CEnP
   x9gA9/rGNTzOsBBm3AvGu1iUk3o27zdjQihTatqKw9LYPhb5DqI3yUjFj
   E2cqyT24zEcqbyMFfah+qjEPykWS+5k6kmwA0MbqZ620QYoTQSp5o8B75
   lCWGrsbIcy8SJSc2zV09buzVZEcqRBCJoihKJh6ovq8+VWBnYb2dwkF9b
   93FZXUeL6GwwFznG4m4iSt7dUxiw/s061dImQljUWw0qZin6caLlkIYAC
   w==;
X-CSE-ConnectionGUID: q/y2dkOGS6Gf7bC8Gmp0hQ==
X-CSE-MsgGUID: Ax4X9ta5QeKds14oVxm/TA==
X-IronPort-AV: E=McAfee;i="6800,10657,11699"; a="97536556"
X-IronPort-AV: E=Sophos;i="6.21,286,1763452800"; 
   d="scan'208";a="97536556"
X-CSE-ConnectionGUID: u1m5op/rTzelOb2KdP5ueQ==
X-CSE-MsgGUID: k+t2JSSLRaq4mYtAUpgujg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.21,286,1763452800"; 
   d="scan'208";a="211573418"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gSCc7MymPriPzYW914ImeVMdnz4v3WV21l5Cg6UydgqRn/PhB5Gj7mO6ZWgGW1t0Lhqe6UmwPY8d1v1eWLcMcOO1+LzUh93Kh2fY161X556AgsbVAdo0bg1vsVdHI+bLOlNV0AWYUExydV/EGcpC+uq3SK4ARTSD5oqP7t9iix3nc9YtotfXVGSSnbKhXLe4X38qb7X+Fm82EGmKBLsg48kOi9baNfoFMgEentMaCoSPDPnpAPD9VxgO/mMOTYniAFA04MQ1Hk4ok99Ek/K9KqGTGifcdCMBLVOmNgJqANDemn40DGcJRnh0ERm678fO8PoaLl3GVux1oO1I+xEWNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WC706wJgFR6kmhhlbMyWb+pzgV63UshtaQeMKU7hFVs=;
 b=IHkm95DeGWn95tizfBRlcIzuJS43R/dxijtc0ls8GDT/EjFsfn5myxyKYn0SNonE/V2gLYaoA3jkUM+05auTpP40Dqdb/S5d8fwC9l+VAukoUKSgB7opJeB7fInpIQFdvRPWYDPNO50ikjXkT8LMHmc6xcfOQjQejCBjCrL8QHyuXjscywLOx6qymHQZCyvMeCk3ZVQkP/sRWqhL+qwcC9pQRMIvyfwYMmGbQQ+XUSe8sd0wQJQP9afPT2eWIB0ZVbgNgXTxE6BVmCmlCzi+ceFIU2PozY2Jw5AIuFauCeNTTEh5qdCl7Lx84VcMlIDLCYCzZXeWaNCAlDaEupWGrQ==
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;
Date: Thu, 12 Feb 2026 09:33:04 -0500
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Marek =?iso-8859-1?Q?Marczykowski-G=F3recki?=
	<marmarek@invisiblethingslab.com>
CC: xen-devel <xen-devel@lists.xenproject.org>,
	<intel-xe@lists.freedesktop.org>
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aY3koH9v0spVmiJA@intel.com>
References: <aYtznP_tT6xNPwf-@mail-itl>
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aYtznP_tT6xNPwf-@mail-itl>
X-ClientProxiedBy: BYAPR07CA0079.namprd07.prod.outlook.com
 (2603:10b6:a03:12b::20) To CYYPR11MB8430.namprd11.prod.outlook.com
 (2603:10b6:930:c6::19)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CYYPR11MB8430:EE_|SN7PR11MB6653:EE_
X-MS-Office365-Filtering-Correlation-Id: 0a5dbb9b-9a7d-447a-27da-08de6a43a537
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: =?iso-8859-1?Q?pvYqhAqmFGNqnQxtNUDZO5nOE0jzu2x36ZaeyeD/EvK7jCKA3xVlckqEyj?=
 =?iso-8859-1?Q?9eeabVXa3FsiR8PefHJ4FWRnkOmaE/C3kkq9K9XGDMoA7lD5oIqVtN/5Lb?=
 =?iso-8859-1?Q?n8vnj8g+WP4vHV6hhHzvc8zcZtmtUqREBVxW2m+xOScmGvWDHrt/8dbLPq?=
 =?iso-8859-1?Q?PJi9Se4Sg9t7mJOecKExNfwQJzacHsmIuOk9Akht+2p2ZxsoaKuBhmhcyX?=
 =?iso-8859-1?Q?nmYUm30AfMAWIeLMdQGehUgfNCKqQP9eylTO1NmvxwrDfyUgfq+jFBPAl2?=
 =?iso-8859-1?Q?pXT9tUnWkd7XNZuIvep9iZnKp/c2zpll6IV275C/zK0o0fMhWytOan0aLV?=
 =?iso-8859-1?Q?vYoGHFjJ4GgJj8HYkTIrh2dxuKdwhReSofLbuQTL9Wd4RQ9eT6aal8ci7l?=
 =?iso-8859-1?Q?SZVdHwfqwwewZj8o2fwfNw55+afHZLNZFpaEgftKyEKOvdQoNJfUukz9sq?=
 =?iso-8859-1?Q?Hq9/MFhHKRMezlqLkCcVj3I7gvvQhJUmSvoGgCFLjrFOOO1eV5K7feemiA?=
 =?iso-8859-1?Q?mVc4Z/HcHJn2lFHjbOnTR4crS7ilu5Q7qwT8kuXQwWCNJemoIa9N2pUfyb?=
 =?iso-8859-1?Q?3WoXK8V1GQP55UBmbw30UwZyiKtgRyT+GsAbkCobgOeMZsrxMI3beuMoCC?=
 =?iso-8859-1?Q?WSfmDfqk1gZFKmcMNM/rQ+Tg08m7HZggCQnBXCuKWIyPR9U1EdKvX4dwrI?=
 =?iso-8859-1?Q?SfUyfYvKQyt6hf62VbOmbZafnkemDAPR5uyPMpkXbqwSO2LbP2wOILTSt+?=
 =?iso-8859-1?Q?oRB3YoZIa6DRHmVoBnJOKaVFsRa5thjgjCUV9+OPpHwm7CbCVCMNhExcNi?=
 =?iso-8859-1?Q?kzPO4foGAExknIIQ5aOY5Z9GsQLfUid922GkjWBr4oVPBCG2ZWVXQOgeR+?=
 =?iso-8859-1?Q?bSDX2OLs583bu9XCkWBH/D+YvCtPevrbRl+8XmCtKXvXr1Qdzk454A/XcG?=
 =?iso-8859-1?Q?6k+ZNYnYOnM0JjrfvcBnKGi/HxZITCrtQTFqKgmZJ9ojTIMRBBIp/3LWM8?=
 =?iso-8859-1?Q?vc14QWXYinj9C+Foss7lSY9xTepYeIiL4fEryUN9bS28IiyUzWGIbryUY1?=
 =?iso-8859-1?Q?e6QIGdpR/sJGLO1+MlzI0MeYLJsgkyqMMgOLAdkb2eem15+4IkAxeRZ2Lk?=
 =?iso-8859-1?Q?5GMrtI2AlM5MWH6Q1KqB6S/fgNAejH95VmqAo8N7b/6EgFWCbj4fyiVZOj?=
 =?iso-8859-1?Q?Xtv2b/toFx3XkhiB0hX96Ng6v5Ldwv9qFWYKJShKp5m+EXR7d0XmGmvblZ?=
 =?iso-8859-1?Q?v6O7xWGDPoxSPRpTs3zDwC4VDHPfLZFl35DjTANSEa96wN9LxJU3YGMI+F?=
 =?iso-8859-1?Q?YX3u3wKxIAQA/7Sn+9xMC/1dvRCZs6znxEJVvxftfiP94Nu6JX3t8mkDRN?=
 =?iso-8859-1?Q?37c8XkxxX+Z1/i2Obcd9mjJVxwrQygJMGhUQXorrMzO2wVtuwUmNP62ke9?=
 =?iso-8859-1?Q?lV76NR+vrDLmuD8MSfLFZjHD6aZ9Nb6k6cm5bb579t55Oz5RfJ0CEteHg2?=
 =?iso-8859-1?Q?cmt2XDX3f1aqR7mSqBmRxpc4qs1ZqPFbUicj2KlJ2GoQ3OUgrQ5v14WEMI?=
 =?iso-8859-1?Q?fW7YC7ApRMEyqWzjQuIHPwpI9Gbn?=
X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CYYPR11MB8430.namprd11.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: =?iso-8859-1?Q?NMyXjBJ3mAlGuSt0SjMDDjS9Y0hCTcXFhuFjNk5fx6z7V5iWETkRq67R6h?=
 =?iso-8859-1?Q?qitEFUSPk5N5YyYG5ANKpoXEL+Xv08F9MYQNW8lxZGfa+fLEqaaPwXtjeZ?=
 =?iso-8859-1?Q?WA5+hCP9jmDUiUxpAi5m44bEvYljpnUeOOjJpWeGw0bG7DwEM2M20UwOXP?=
 =?iso-8859-1?Q?TVmbM1W/rDV0latBzCBD8f8ssjYizxzJRGTfWoSKJyPygJTEuzweWUchG8?=
 =?iso-8859-1?Q?VT0Jdp9qQgjzY3ZsObqnmk+uaP1BJ8lhNeuWq+81cHhDfd4BR6tX/TrvrZ?=
 =?iso-8859-1?Q?Y/+7r10R54YJjw5SPpsgYLY+AU777jjT7bKTbkdXU8PsfGL0JaNB0+IDF8?=
 =?iso-8859-1?Q?tTXjS64/0gSuq8qhZSCVQ8f9vcEKdF5gVkr7DUOjJ4PCBeAhvMyADi9nUw?=
 =?iso-8859-1?Q?2M+8mgv/zL0M9FEzvFQDM8gi8BuiP6x0Knr4UiscQ8OZ+uwJ+lBHBG+MY5?=
 =?iso-8859-1?Q?NeRK636arGkk3oPazQBv3VTE72nW0Y2gw9M60KBSWXZLZoz/0poECJRY9Z?=
 =?iso-8859-1?Q?VkMOZVwlonrPvhEyBGdV7RyMk/LSiWBni1CE1kKm4VWs20wvyMIP4HmM8z?=
 =?iso-8859-1?Q?QVoF1eAiYP+HzZwlYxpI8L2shQVXFP3T/eW3keDmgNxrOnR1U73QbUwzuI?=
 =?iso-8859-1?Q?CziXCMVM31BqdXIBB3j0urGt/k1fdnw+e1uPEZ7sJA/igtqCYmsDhgcswC?=
 =?iso-8859-1?Q?h6fjIu9PjigSMbOJXYhFJEZm0TC7rKJMJwXEaJ1b1Kx0tr6/jrvv1D1J0g?=
 =?iso-8859-1?Q?5zDp8s9aRxYJHXh502/TaYPW0O1gol15+XAPjks5+BavE6oeOHKl2zdbN4?=
 =?iso-8859-1?Q?LKpypSHWo51q1Get7obxlDC63x4+TnuujU/C8ieu/r6ROCdDpM6gB0gGY3?=
 =?iso-8859-1?Q?TBL3TJ1/TZZho+IKsG3QTax+7Lec0eVVHOxbzBWirsjlAl3W6yRtGiFy6o?=
 =?iso-8859-1?Q?EIiumEfaYk/P7/kG4GfpUIP1zTB/MqyTmWHj6ig9eiGpG77Rzya64Tzuo6?=
 =?iso-8859-1?Q?UDIb1oE6N6fYxKH1rId+E+4w3S9j0paT+pU6r+qj95NAvpcCP05L2r3fxs?=
 =?iso-8859-1?Q?FiJFxmLKB2dHqScoghRPLmvFZNOWixwel1QerAqxAVWbt+sIdfK6/7elPn?=
 =?iso-8859-1?Q?0cdJ9B3u8HdHIHkx5H7Vpwo6YInVGkk9B8IPuo1GoTYpIBE07Du9IWXG4/?=
 =?iso-8859-1?Q?t132jw47BtOol79d8N6SHxfo3Vow0E54VuQSOXoZRyhQi6MYfsmsapycDN?=
 =?iso-8859-1?Q?2e3RHhGZQIyeN1ubiBPflF8Z6fp9P808s7ITPsWyRLUyKEjYHzVkqzyLWo?=
 =?iso-8859-1?Q?9vax0xEXcePHl/h2C7Udid8ImKU0Kuzcd7+2WmZj8fqhw+zj7M8JiHgj18?=
 =?iso-8859-1?Q?ohPgPRFEg7jPIk1YI+3ivQgxB0jVIOM9+W5+lLJO3mIfGNHjq/as/2o/iO?=
 =?iso-8859-1?Q?XvCYdOzLdCqEr9AIihi85opFo7PA+lsDiu0NNt7/IrBne0QCrsZ5+mbUz9?=
 =?iso-8859-1?Q?xy98WDZEsI0X672RML10vmeGFtyb/5ELZoacjVNTavpOEVkQ2nDCk80yhB?=
 =?iso-8859-1?Q?y1vTzKSiFwFYrrbvC6D0pxjdE+lNQjHGs9/9lRYwR5lXFzyJCQkdzY29MR?=
 =?iso-8859-1?Q?9Vstww8npfsDnhSC8+nASPlpECvlM5Wepritpoq05lQL05+blRV+NHhW9B?=
 =?iso-8859-1?Q?nOBcgHnF8wQoZ8symMeaCNXqfdtl6+pxtlNJGrIp7jReZ/MJw3nFL+3tjk?=
 =?iso-8859-1?Q?7aecKKneLBxOKIcQDWAWic2oMASfLulY5pZ0VcFOkMJuCvPvhc25q3xH+x?=
 =?iso-8859-1?Q?hdaIFFV9zw=3D=3D?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 0a5dbb9b-9a7d-447a-27da-08de6a43a537
X-MS-Exchange-CrossTenant-AuthSource: CYYPR11MB8430.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:33:10.3709
 (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: Ac7L3aQLnyObjDzOhJzHM+idJk8jLd62lbQmlrZWZ+UPXONw2q/PqJjf+LvaVyJVNoItm+z4Z8lsDdPWvJhMPg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6653
X-OriginatorOrg: intel.com

On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-Grecki wrote:
> Hi,
> 
> Recently I started testing compatibility with Intel Lunar Lake. This is
> the first one that uses "xe" instead of "i915" Linux driver for iGPU.
> I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
> Linux 6.17.9 in this test.
> The result is rather sad:
> https://openqa.qubes-os.org/tests/166691#step/simple_gui_apps/30
> or
> https://openqa.qubes-os.org/tests/166700#step/desktop_linux_manager_config/42
> 
> The black windows are mapped from a domU (using grant tables). But if
> you watch the video (in the "logs&assets" tab), login window of dom0 is
> affected too (background is rendered significantly later than its text
> and widgets). 
> 
> I didn't found any relevant errors in kernel (or Xen) messages. Just in
> case, full dumps:
> https://openqa.qubes-os.org/tests/166700/file/desktop_linux_manager_config-journalctl.log
> https://openqa.qubes-os.org/tests/166700/file/desktop_linux_manager_config-xl-dmesg.log
> 
> Some user reported similar issue with Intel Arc Pro B50, which also uses
> "xe" driver:
> https://github.com/QubesOS/qubes-issues/issues/10661
> 
> I tested also Linux 6.19-rc8, no improvements.
> 
> My previous tests of the xe driver on older systems (Meteor Lake, Raptor
> Lake) resulted in similar behavior, while i915 works fine there. But there
> I needed to use force_probe parameter, and blamed the issue on xe not
> officially supporting those platforms. I wanted to compare with i915 on
> LNL, but i915 doesn't support that model at all (and if I force it, I
> get kernel panic in i915_pci_probe...).
> 
> Interestingly, it appears to work just fine on Qubes OS 4.2 (Xen 4.17.6,
> same Linux dom0 version). I did not tested with Xen 4.21.
> 
> In both cases, our Xen has the patch to use Linux's PAT layout applied.
> That's a workaround for
> https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7648, which is
> fixed now, but apparently similar bug is still present in a few other
> drivers (including binary nvidia one...).
> 
> The same Linux kernel started without Xen works just fine.
> 
> Any ideas?
> 
> Having good and a bad version, I can try to bisect this one, but given
> it requires rebuilding Xen toolstack each time too (due to bisection
> across releases), I'd rather avoid it if possible...
> 
> I'm CC-ing also intel-xe list, maybe somebody there have some ideas how
> to debug this. 

Unfortunately I'm afraid we don't have any good advice here.

First I thought about trying to isolate Mesa version in the Qubes OS
version, but the fact that it works in bare metal makes this a silly
option.

It looks more a cache management indeed, and I'm afraid we will
only find the definite spot after the bisect :(

> 
> -- 
> Best Regards,
> Marek Marczykowski-Grecki
> Invisible Things Lab




From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:36:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:36:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229095.1535100 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXnp-00080N-4V; Thu, 12 Feb 2026 14:36:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229095.1535100; Thu, 12 Feb 2026 14:36: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 1vqXnp-00080G-1Q; Thu, 12 Feb 2026 14:36:21 +0000
Received: by outflank-mailman (input) for mailman id 1229095;
 Thu, 12 Feb 2026 14:36: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=zRx/=AQ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqXnn-00080A-Nl
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:36:19 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 309ad7c7-0820-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:36:17 +0100 (CET)
Received: from PH8P220CA0005.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:345::25)
 by CH1PR12MB9670.namprd12.prod.outlook.com (2603:10b6:610:2af::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 14:36:08 +0000
Received: from CY4PEPF0000E9D5.namprd05.prod.outlook.com
 (2603:10b6:510:345:cafe::45) by PH8P220CA0005.outlook.office365.com
 (2603:10b6:510:345::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.12 via Frontend Transport; Thu,
 12 Feb 2026 14:36:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D5.mail.protection.outlook.com (10.167.241.68) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 14:36:07 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 08:36:06 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 309ad7c7-0820-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fgl71IUI0ZhytNqOAA5HCSpTD3i5RRi2tXPF9DKG4xVGuuE0tcnL6zL68BDkvPLdeYrwredRHiXg+NZ5tKZY25FSQEA3nDqeewkAynPbLyYfAS6LPftV5QOb2hqUVlmezJvH77jPLBYK1BKJsnPBVE5icUdTnPQqGJNKvPMjb8X+bI21iFn8KugmvP15g2oA+OXgLGdYxomYVnKmUrFchayzCCWbjtYNThiQusUew9z5XkmcEVUrXQTg9gX240JZ+JfrHSszy14J2tH4Yo8U1jLwOz64cfwLoN6EItdtOxqCcduLIojXjYC7e+m3Wcj+/+4nVDP5RJcIQWKnTRjuGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uOil5cli+5dIUAJBekbnUD34gjeGCHSwpdVoZDgwE6c=;
 b=Haq1I9uToA4i/g+306VG+OJ4F13RLnib9PjBTo1VeuXWYGziLjVGTiuoDF0SeZoiE2lo3kstxSNEU5O6VGSQLMf2KlejULNCTECvl72qHfxoItBBFrfnqBDRBIs2Far0805owjwtxL7EQnvmv+XAwgkOqeVc5ypwuY8Fqm7PZTxvwqf7p32MCOzsapATNoB3dJQWbW6GTXQ9JOLBD89adTv8urGDz0Ea9cZqiCIpaxVVqj83p+QcD+xKpkCpNtguWZ8L2+iQFKZYU3lFEfRz7U+UUUP+DtWGj5mLFBu/3+Mux1BZ9Ky5aYSrdfRFwgVHDt3CQJvJxLIKdKrP8SnG0A==
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=uOil5cli+5dIUAJBekbnUD34gjeGCHSwpdVoZDgwE6c=;
 b=lFoWtNKvAl40nYp0PuH0ZlfFqbSwsi6IYu15sbn1x4MA15lDfZF9yPNtEotVGydDhuDdHixQooNWCKVrEGcBoLA9lNJXBqqeauA5R1DYL68zZBxuNXKqGFslfMgJy1Mv5zVau0HxvSienF+43pyc+SKmtg/m+ZsMNjepB65syWQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Feb 2026 15:36:05 +0100
Message-ID: <DGD24KNB0MQ8.3NT48B5EP011P@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 03/12] x86: Add cpu_vendor() as a wrapper for the host's
 CPU vendor
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-4-alejandro.garciavallejo@amd.com>
 <b861972e-1f31-4685-b83c-27670e561332@suse.com>
In-Reply-To: <b861972e-1f31-4685-b83c-27670e561332@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D5:EE_|CH1PR12MB9670:EE_
X-MS-Office365-Filtering-Correlation-Id: 8c0c829b-3a6d-4927-0187-08de6a440f4a
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?TlNiNm93b0g2QkpNZmMwaUwxVDBXOFBDdFdBeDJHUG85dXlZZmh1RGJuTzJW?=
 =?utf-8?B?NVJvWjdDbEVBWXFySHpwaTIvYVVNU1N0SjlDNTdBa1MyM0hJOUxpUUF6Qmg5?=
 =?utf-8?B?OUIvUGlDdmZ6eHFEWFJTTnE0eCtXUUxNYURWbHd4SlBvOUJOSCt0MVBjb0dJ?=
 =?utf-8?B?R0UxbzRNS1RjejVmbUFsbURjUXpXcWVMNkxPZ2h0RjVKamk1WnQ4M2hwNXQ1?=
 =?utf-8?B?bjMxY0ZiVlpCUVpueCsxOVFyVTVZdzJZYTQvcE1XMmI0UlhZUHBKY1RZV0d5?=
 =?utf-8?B?ajBTaHJhaCt3REcyNzJPSG1kWEMyRjd1dDhXaVFmZkdCUXpwUzJXS1poSzEz?=
 =?utf-8?B?U0lUMnZUSmRidlV5azI2ekYvaXZjaWttM05NaDNjT0lHZzRHV1prVzNWSUFO?=
 =?utf-8?B?NDJGdjAwR0Mza0FCWExTYk9hM1BhUkxFV0FtM1dkYmdUT2UrRi9xVjFDbkJT?=
 =?utf-8?B?SEw2TVJ0Z0xjd0RETE9FdCtWUUgvTUtxd0d1djg4b1Y1NWlTUStRVG04ZXRm?=
 =?utf-8?B?NUQrTlV0cWRxdGFtdUd0NXRTZVNoQ2VobTBObFNsVjRadmVQOU9ZdFFSRGQy?=
 =?utf-8?B?SklYMnAwV0JvcWVtcklZWnlZV1E5VWJTem4zYXZMeWZLTlZpWk14T0pneWhR?=
 =?utf-8?B?cEZoWUxkQSt1eExNWTZNTXBRM2MrVDhmZmNtRlk0NW0xaGxZOG1qUXpCRlZ0?=
 =?utf-8?B?cmYwTnAvMjNTOGtFU1hDQ2IyaW9JMWpqL1pNWHFOQzlZQWN0WXZJb2xDa2lt?=
 =?utf-8?B?K1NSaktOc3B1OElCTzZsQTZPYlJUTE45WDc4aDNvNDBSbEN5UkdQQkR1NjZl?=
 =?utf-8?B?eDZ2czVDcm1MWjFyaXlBN3hhZTB1c1FBL1gxQmEyd1hETm05V1FXR2NBcXg4?=
 =?utf-8?B?TEhwcTd2RlJaL2FLOWxTc3NBNU9YRlU2WXB1TFVNRkJzbHVkRGpmNEhqT1Q1?=
 =?utf-8?B?bU1wV0Z6bkFXd1F0djE3RnQyNEtXaGpNYkRScXJJTkpKVHZ6cUlidDhwdU9W?=
 =?utf-8?B?c0ZNT1NtaHJ0QVhFWUY1S2tVK0s4OHNTOFY4T3Y4Q1F6dG1GRUZrWHUyWWhD?=
 =?utf-8?B?bm9WaDBMRHIvRmtiejJkWkxoejF0cFVxcUdVRDBlZmY1YVVaaU9wZU5zQ3hm?=
 =?utf-8?B?TUtkYVpvNFVQM3Rha3BkMzZGd3Q0amE3UDd4YmQ3cUNibU54V1pBcTJuMnBI?=
 =?utf-8?B?TjQxSk1QTkxPUVFVemVsZGs3RCtCalpIVVJuM0JYMHdBdi9JcGlJZElRejNH?=
 =?utf-8?B?TFZEc0l4K0tHYW1DQXREemRsRGo2M0lONXJiTkVhQzdBV2lNSmVXdjgySGF1?=
 =?utf-8?B?S1hGWjY4eExEMERPUC9ycjZoQWhBWnZJblUreTNTTEM5YnFpNUFwSHhKRVV6?=
 =?utf-8?B?ZjA2WCt2YWNnRVA3ZlZyME8vVlFuZW4wZDAvV3htdTZTV0lQcmhUaHRQUVN0?=
 =?utf-8?B?MGdOSXpxWGI0b1lyUHprYUY0WDNlMWU0ckxVUlNHRnV1UnRrNEcxd0VIUjhr?=
 =?utf-8?B?Z3JpN0tXaVo3QkpWd0FPa3NmVVYwd2xJK0x3MW4yUFVnc3g5YzF0M2tSN00r?=
 =?utf-8?B?cEpHbkVacXVvRTRTWW82Rk16SHNzL0VhZmRFUDhueENIVjVLK2tvSThVWFBl?=
 =?utf-8?B?OWtlL2U1NDNmT1dNSzJ6N0RuL2pGQVdzSzFGbFg3VFliSjlMTlZKR1c3ZjhW?=
 =?utf-8?B?MUVuTHdrck5NZWpyK25pbTNtZmg0Y21ZYUI4bHlvbzB0cDVObTRoRHljaHQ1?=
 =?utf-8?B?ZDVQQlB5VEV2Wjd4NHlneGF0elpTeEp0UFBaTTZGMW84aElXSjIwN1dBWnk4?=
 =?utf-8?B?R3N4SVNyQTV6bmY5cG5vSSttSVlzMVo2bXVpSTJtQ29RcEM4SnAzeWV4TFFx?=
 =?utf-8?B?dlR1Uzg5TVV2cWlvR0FNL3VPczFOM2tVMm9SeFF1ZXFYdGhRY2htUTM0UUpP?=
 =?utf-8?B?OEFQTyt4STZwVXFOaDRZckxYMGRLcjh2SFdPcDZmS09nT29aL2NpT0Z2Y2Nq?=
 =?utf-8?B?K0JidENDNW52WXlVT3o5dGhnajNZT0F4bjQvcUptNUEwak1RRE5BZ1RMbWdY?=
 =?utf-8?B?cTYybmtYNElmamg0OXhndzg2enVXcjVyVitIK0NNTWFzLzAwWWtWQ2cvRkJr?=
 =?utf-8?B?cHc1RUVMUE9WSVg3WktDeG45dzhKYmNlcTV5bkZGTG9Jem9qUjNlQ3M5QXRQ?=
 =?utf-8?B?NUZtMVJBMDk4a2Ura0JQRjlIWStlVHpuWjdCd3V2czNnVlFTaHBGZGlDL3RR?=
 =?utf-8?B?WFdycFhmTFlnK0ZVd1lHcTNicmRnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	4vS9YXpMm3w7trPJOaVqDgu4c4qOBI7JMRSNhsTsqMwSHJ7RogBAJ5IavUGxBjmtu6lcixdgfjY6yVAntKzAVCR27ioqN3mlNCluJpwWXRJUECqAj6NkgkJgNnL7TEN3QcDNZjpU/PNFdDGx1xn8EXaChNs7HS6+lW2PYUpqxc2Sf7omPs4wenA2mrRu2d8/aP5i+sHMwiMsWnVu7aTM0vcGK1VdZO1jyjnDz2QRJucZXlhCZgDY7RR5BOFeCsGj58354riJoiJBCXDMHH5dZbG5aeN37H6YCSfeteh/CU3M8QN94WjLfebCsBlzUlgwZKESxjM6DN9tAhNWN/1zi3JE33g7YAy6f0twv+oLbOgjRGSme7IOIvezut+nthrdn8+DgQgZfmDFVHOz5HCKoCIdTcd2gA4RUZzDYPDocffL9kSoADKQfhS/V+VRFM+5
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:36:07.9140
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c0c829b-3a6d-4927-0187-08de6a440f4a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D5.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9670

On Thu Feb 12, 2026 at 11:52 AM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> Introduces various optimisations that rely on constant folding, Value
>> Range Propagation (VRP), and Dead Code Elimination (DCE) to aggressively
>> eliminate code surrounding the uses of the function.
>>=20
>>   * For single-vendor+no-unknown-vendor builds returns a compile-time
>>     constant.
>>   * For all other cases it ANDs the result with the mask of compiled
>>     vendors, with the effect of performing DCE in switch cases, removing
>>     dead conditionals, etc.
>>=20
>> It's difficult to reason about codegen in general in a project this big,
>> but in this case the ANDed constant combines with the values typically
>> checked against, folding into a comparison against zero. Thus, it's bett=
er
>> for codegen to AND its result with the desired compared-against vendor,
>> rather than using (in)equality operators. That way the comparison is
>> always against zero.
>>=20
>>   "cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON)"
>>=20
>> turns into (cpu_vendor() & X86_VENDOR_AMD) in AMD-only builds (AND +
>> cmp with zero). Whereas this...
>>=20
>>   "cpu_vendor() =3D=3D X86_VENDOR_AMD"
>>=20
>> forces cpu_vendor() to be ANDed and then compared to a non-zero value.
>
> Coming back to this: How does the value compared against being zero or
> non-zero matter here? As long as cpu_vendor() yields a compile-time
> constant, the compiler should be able to leverage that for DCE? And

Yes, for true single-vendor cases it doesn't matter. It matters on multiven=
dor
cases where some vendors are off and cpu_vendor() is not a constant.

> even if it's not a compile time constant, bits masked off in principle
> allow the compiler to leverage that, too. It may of course be that
> even up-to-date compilers fall short of doing so.

There might be some of that, but there's also a non-avoidable codegen hurdl=
e
unless you can tell the compiler your variable is a power of 2 or 0 in
multivendor cases.

cpu_vendor() =3D=3D X86_VENDOR_AMD, which expands to
(boot_cpu_data.vendor & X86_ENABLED_VENDORS) =3D=3D X86_VENDOR_AMD, which e=
xpands to
(boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_INTEL) =3D=3D X86_VEND=
OR_AMD

which produces a lot worse codegen, because now the compiler must AND the
variable with the AMD|INTEL mask, and then compare to the AMD mask, whereas
having & instead of =3D=3D means the compiler can simply do a comparison wi=
th zero
and call it a day (due to the masks being folded together).

I tried creating unreachable paths in cpu_vendor() to assist the VRP pass
in noticing the variable invariant, but it just doesn't. It doesn't seem to
be sufficiently aggressive in range tracking. Bummer, because VRP is a very
unobstrusive technique for DCE that could be great if we could reliably tea=
ch it
invariants we know are held by certain variables as part of their accessors=
..

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:37:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:37:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229104.1535111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXpI-00004u-IV; Thu, 12 Feb 2026 14:37:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229104.1535111; Thu, 12 Feb 2026 14: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 1vqXpI-0008WQ-CM; Thu, 12 Feb 2026 14:37:52 +0000
Received: by outflank-mailman (input) for mailman id 1229104;
 Thu, 12 Feb 2026 14:37: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=Yal/=AQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vqXpG-0008WI-F8
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:37:50 +0000
Received: from mail-oa1-x2b.google.com (mail-oa1-x2b.google.com
 [2001:4860:4864:20::2b])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 61837e0e-0820-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 15:37:40 +0100 (CET)
Received: by mail-oa1-x2b.google.com with SMTP id
 586e51a60fabf-4094d7d71a9so2148744fac.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 06:37:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61837e0e-0820-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770907059; cv=none;
        d=google.com; s=arc-20240605;
        b=cgn+VpBgA1zFN267gVAus5QYA5NL9IRabgtijbrH3slOvLqrPWiqzrS/1dDqB+V/gI
         I0Xsj/we8ZcmvvQUVJDvaGDIDZzXYxs+xMUaZvfJJV4NL8VeQTMSERY2UGDyLZPTzdh6
         hOIKZhyvAW5YZovaBms+aIPbEt41ZsU7jncLonKxw8PhCAKEPxAQOt9tR9m6MsrnapIt
         Yi8HWE9ax9sGxsHURX+ptEWYVFWtZRxy/CnKeW74pMGzJRZDCRDiYPGlxb40MPEhthwV
         c8+sfjW6EY9ecqvaBQ33Kdp7KnuXC/ViV6alFE5kt/1QTmuOkq9tSZP87q+1PrNH7oGO
         6wFQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=mabh2nObHMsaLbzi66GrhWaFHQzF5Ocs+HqxXhDR+q4=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=LyzgUxPsecCAe8Ukl1elubcG5yJ7gRLhY25476wqSDw9ROfcPkC5fYHJEbYGfkUwRt
         Ol2SpTn2LYeWqTYEU8wfr5l3j/J1zr3NWQSazsxwKVZwVFoOywM1afob0S62d8Zuj7j/
         NO8ewr8ADWd8/vsdLJTbQ5Z3UheFTuz9wnvJSUc1NGu5nlLV0jMHTJt3PPUH6QsE/m9c
         IekefvB8xsk87h7m7G8Ly9ycfIfRVGue4K2iv0g3njF8pQ6xD32eRAQ6YI5zjTGwxjAk
         inCGAOEV7pOYE0zxn2ty8glrZlwItgJYopHfN2CCJVngBsIr2pegDPcFn8DE15HlzCt2
         4zGA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770907059; x=1771511859; 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=mabh2nObHMsaLbzi66GrhWaFHQzF5Ocs+HqxXhDR+q4=;
        b=fBmRqQFHZyf6d9gfkv4t/TIC0KOM1JYaMzrS4WgBgcyX0oDkpq2EcJv+oXfqHuXy7W
         eOqo7HX7qtUY8MT/DsTVdeKsH5MdGtLAOPdtFoeqShIJVXsSwKp2PUZgVl/9JLI/wowN
         Ft6SOhWFIpCuPDcfrgYp4rxdZO4SdnNIx+VCz4FTU37W0k40PQqfB5UuW3hzGyMOM7VG
         fIC7tBxhyy4UKVvbY4dKDyHW5+szs7zcDTp+7m881mTEvZ9NZ1+QSGaQLki84rC87xBA
         SMmjSjr1Jzso8kMuR1FVktJfxAam233Fy84J5iKE7/BBPXwiNGiApppN13tTjhXtakXr
         OmDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770907059; x=1771511859;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mabh2nObHMsaLbzi66GrhWaFHQzF5Ocs+HqxXhDR+q4=;
        b=dcb+341t2dmVyrGHvR7jYlZKM1QrxxRdGwkwwduZrzkFJhU3o3kOlEPS8OkiEsiHNy
         eR+xyfyiVVW6vn5xXiM1inus36XwkwBmY3W/JV+dIhHpgSNRE+VYzW1D7eOIvc1+q7LT
         TqZE9PLaOgPNUXk382Yj7tyOaGLXw3n87/R2N2xMDy+8elNB098ZDFo8r97O1qDSpUE/
         55AmxupAHKTu0BexPVldN7wvgCWmOn+LnBtz0wKxnZGRmMX3CL3PjQovVFK/V/iKzWgO
         AkFpKPLq8ek2l7FPVlB+EcFjqtEq7/7sRKnvaWf3PURrZJDjUgkL79rPj8OKdVXUTu4z
         Nnqw==
X-Gm-Message-State: AOJu0YyRPbcfzlejgqYhJ/hOlr/QPW/6780LjjiNT35Az4QjCuZBPNsm
	UiSd+j9YO4kJnGOQUgKENtiXQGn7ns2m/VelyKcKDawO3N/O9jOcTw99/cbrYkByXXpB4HjTMQ3
	Ka+WQXze4w2vZZtroXSTFGeMOZXoahcIrvBpddPzw2g==
X-Gm-Gg: AZuq6aKVxBh0BHyx3VOZILAa0BnprMM+3OnN2ujqsyTG+E+YsgHFYgppsQF6bYWrNVz
	SGnUUNM4MaAuY8XKQBb6o8gtEWx+GxwpBeNcaltNEZ31i50b/N3xjxd7BcYsFDWp5+UT8OsCZ8b
	Mzxg2gSB76fwmIS4oea94ZB+2+ObE7RloSkgNkSL3oUFvOHu++cIfQaL16/u939VSvPX87SUOC6
	ku18CbU1MHWy9IqLQ4LZC99lCr/6howUgWrNGzzZwEvcrWZqxfLBMhWsQKMy/Jtjl2lqoFVWz4M
	gXrlmzJNFCMuyxXeLSOKMFmQjPq0xsRYovQsFP1ct/k3c/uy
X-Received: by 2002:a05:6870:c14b:b0:404:2fe7:e184 with SMTP id
 586e51a60fabf-40ec71ccbdbmr1356894fac.43.1770907058512; Thu, 12 Feb 2026
 06:37:38 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770826406.git.bertrand.marquis@arm.com> <8ddb97095d8f7f4140e660d2ff13ec2ccc82cc62.1770826406.git.bertrand.marquis@arm.com>
In-Reply-To: <8ddb97095d8f7f4140e660d2ff13ec2ccc82cc62.1770826406.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Thu, 12 Feb 2026 15:37:26 +0100
X-Gm-Features: AZwV_QhoAEZFgArmZCSkiRmg19U5O9SyYZ7iGDtS4Y4Q7uEda3KUzxIT8lCehoY
Message-ID: <CAHUa44FMMVN2qR9f0AdbUguoWWJEyEY93YnCcGynHdpHLwqT1Q@mail.gmail.com>
Subject: Re: [PATCH v2 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory
 access descriptors
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 Wed, Feb 11, 2026 at 6:16=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FF-A 1.2 extends the endpoint memory access descriptor (EMAD) from
> 16 to 32 bytes, adding implementation-defined (IMPDEF) fields and
> reserved space. The MEM_SHARE path currently assumes the 1.1 EMAD
> size and rejects the 1.2 layout.
>
> Add FF-A 1.2 EMAD support to MEM_SHARE:
> - define ffa_mem_access_1_2 and store IMPDEF payload in ffa_shm_mem
> - emit 1.2 EMADs to the SPMC for FF-A 1.2 guests, forwarding IMPDEF
> - refactor header parsing into read_mem_transaction() for 1.0/1.1+
> - detect EMAD format by mem_access_size to allow 1.1 on 1.2 guests
>
> Export ffa_fw_version to build memory descriptors according to the
> firware version to relay share memory requests and remove unused offset

firmware

> macros.
>
> Functional impact: MEM_SHARE supports FF-A 1.2 EMADs.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - export ffa_fw_version and use it to construct descriptors according to
>   firmware version
> - remove unused offset macros
> ---
>  xen/arch/arm/tee/ffa.c         |   2 +-
>  xen/arch/arm/tee/ffa_private.h |   1 +
>  xen/arch/arm/tee/ffa_shm.c     | 121 +++++++++++++++++++++++----------
>  3 files changed, 87 insertions(+), 37 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 6de2b9f8ac8e..23e1f408485b 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -70,7 +70,7 @@
>  #include "ffa_private.h"
>
>  /* Negotiated FF-A version to use with the SPMC, 0 if not there or suppo=
rted */
> -static uint32_t __ro_after_init ffa_fw_version;
> +uint32_t __ro_after_init ffa_fw_version;
>
>  /* Features supported by the SPMC or secure world when present */
>  DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 58562d8e733c..ccef2f7631f6 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -436,6 +436,7 @@ struct ffa_ctx {
>  };
>
>  extern DECLARE_BITMAP(ffa_fw_abi_supported, FFA_ABI_BITMAP_SIZE);
> +extern uint32_t __ro_after_init ffa_fw_version;
>
>  extern struct list_head ffa_ctx_head;
>  extern rwlock_t ffa_ctx_list_rwlock;
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index adc7e645a1c7..070babce9627 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -30,6 +30,14 @@ struct ffa_mem_access {
>      uint64_t reserved;
>  };
>
> +/* Endpoint memory access descriptor (FF-A 1.2) */
> +struct ffa_mem_access_1_2 {
> +    struct ffa_mem_access_perm access_perm;
> +    uint32_t region_offs;
> +    uint8_t impdef[16];
> +    uint8_t reserved[8];
> +};
> +
>  /* Lend, donate or share memory transaction descriptor */
>  struct ffa_mem_transaction_1_0 {
>      uint16_t sender_id;
> @@ -55,25 +63,10 @@ struct ffa_mem_transaction_1_1 {
>      uint8_t reserved[12];
>  };
>
> -/* Calculate offset of struct ffa_mem_access from start of buffer */
> -#define MEM_ACCESS_OFFSET(access_idx) \
> -    ( sizeof(struct ffa_mem_transaction_1_1) + \
> -      ( access_idx ) * sizeof(struct ffa_mem_access) )
> -
> -/* Calculate offset of struct ffa_mem_region from start of buffer */
> -#define REGION_OFFSET(access_count, region_idx) \
> -    ( MEM_ACCESS_OFFSET(access_count) + \
> -      ( region_idx ) * sizeof(struct ffa_mem_region) )
> -
> -/* Calculate offset of struct ffa_address_range from start of buffer */
> -#define ADDR_RANGE_OFFSET(access_count, region_count, range_idx) \
> -    ( REGION_OFFSET(access_count, region_count) + \
> -      ( range_idx ) * sizeof(struct ffa_address_range) )
> -
>  /*
>   * The parts needed from struct ffa_mem_transaction_1_0 or struct
>   * ffa_mem_transaction_1_1, used to provide an abstraction of difference=
 in
> - * data structures between version 1.0 and 1.1. This is just an internal
> + * data structures between version 1.0 and 1.2. This is just an internal
>   * interface and can be changed without changing any ABI.
>   */
>  struct ffa_mem_transaction_int {
> @@ -92,6 +85,8 @@ struct ffa_shm_mem {
>      uint16_t sender_id;
>      uint16_t ep_id;     /* endpoint, the one lending */
>      uint64_t handle;    /* FFA_HANDLE_INVALID if not set yet */
> +    /* Endpoint memory access descriptor IMPDEF value (FF-A 1.2). */
> +    uint64_t impdef[2];
>      unsigned int page_count;
>      struct page_info *pages[];
>  };
> @@ -297,16 +292,20 @@ static void init_range(struct ffa_address_range *ad=
dr_range,
>   * This function uses the ffa_spmc tx buffer to transmit the memory tran=
saction
>   * descriptor.
>   */
> -static int share_shm(struct ffa_shm_mem *shm)
> +static int share_shm(struct ffa_shm_mem *shm, uint32_t ffa_vers)
>  {
>      const uint32_t max_frag_len =3D FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE;
>      struct ffa_mem_access *mem_access_array;
> +    struct ffa_mem_access_1_2 *mem_access_array_1_2;
>      struct ffa_mem_transaction_1_1 *descr;
>      struct ffa_address_range *addr_range;
>      struct ffa_mem_region *region_descr;
> -    const unsigned int region_count =3D 1;
>      uint32_t tot_len;
> +    uint32_t mem_access_size;
> +    uint32_t mem_access_offs;
> +    uint32_t region_offs;
>      paddr_t last_pa;
> +    uint32_t range_count;
>      unsigned int n;
>      paddr_t pa;
>      int32_t ret;
> @@ -325,16 +324,35 @@ static int share_shm(struct ffa_shm_mem *shm)
>      descr->handle =3D shm->handle;
>      descr->mem_reg_attr =3D FFA_NORMAL_MEM_REG_ATTR;
>      descr->mem_access_count =3D 1;
> -    descr->mem_access_size =3D sizeof(*mem_access_array);
> -    descr->mem_access_offs =3D MEM_ACCESS_OFFSET(0);
> +    if ( ffa_vers >=3D FFA_VERSION_1_2 )
> +        mem_access_size =3D sizeof(struct ffa_mem_access_1_2);
> +    else
> +        mem_access_size =3D sizeof(struct ffa_mem_access);
> +    mem_access_offs =3D sizeof(struct ffa_mem_transaction_1_1);
> +    region_offs =3D mem_access_offs + mem_access_size;
> +    descr->mem_access_size =3D mem_access_size;
> +    descr->mem_access_offs =3D mem_access_offs;
>
> -    mem_access_array =3D buf + descr->mem_access_offs;
> -    memset(mem_access_array, 0, sizeof(*mem_access_array));
> -    mem_access_array[0].access_perm.endpoint_id =3D shm->ep_id;
> -    mem_access_array[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> -    mem_access_array[0].region_offs =3D REGION_OFFSET(descr->mem_access_=
count, 0);
> +    if ( ffa_vers >=3D FFA_VERSION_1_2 )
> +    {
> +        mem_access_array_1_2 =3D buf + mem_access_offs;
> +        memset(mem_access_array_1_2, 0, sizeof(*mem_access_array_1_2));
> +        mem_access_array_1_2[0].access_perm.endpoint_id =3D shm->ep_id;
> +        mem_access_array_1_2[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> +        mem_access_array_1_2[0].region_offs =3D region_offs;
> +        memcpy(mem_access_array_1_2[0].impdef, shm->impdef,
> +               sizeof(mem_access_array_1_2[0].impdef));
> +    }
> +    else
> +    {
> +        mem_access_array =3D buf + mem_access_offs;
> +        memset(mem_access_array, 0, sizeof(*mem_access_array));
> +        mem_access_array[0].access_perm.endpoint_id =3D shm->ep_id;
> +        mem_access_array[0].access_perm.perm =3D FFA_MEM_ACC_RW;
> +        mem_access_array[0].region_offs =3D region_offs;
> +    }
>
> -    region_descr =3D buf + mem_access_array[0].region_offs;
> +    region_descr =3D buf + region_offs;
>      memset(region_descr, 0, sizeof(*region_descr));
>      region_descr->total_page_count =3D shm->page_count;
>
> @@ -348,8 +366,9 @@ static int share_shm(struct ffa_shm_mem *shm)
>          region_descr->address_range_count++;
>      }
>
> -    tot_len =3D ADDR_RANGE_OFFSET(descr->mem_access_count, region_count,
> -                                region_descr->address_range_count);
> +    range_count =3D region_descr->address_range_count;
> +    tot_len =3D region_offs + sizeof(*region_descr) +
> +              range_count * sizeof(struct ffa_address_range);
>      if ( tot_len > max_frag_len )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> @@ -445,6 +464,12 @@ static int read_mem_transaction(uint32_t ffa_vers, c=
onst void *buf, size_t blen,
>      if ( size * count + offs > blen )
>          return FFA_RET_INVALID_PARAMETERS;
>
> +    if ( size < sizeof(struct ffa_mem_access) )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    if ( offs & 0xF )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
>      trans->mem_reg_attr =3D mem_reg_attr;
>      trans->flags =3D flags;
>      trans->mem_access_size =3D size;
> @@ -461,7 +486,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      uint64_t addr =3D get_user_reg(regs, 3);
>      uint32_t page_count =3D get_user_reg(regs, 4);
>      const struct ffa_mem_region *region_descr;
> -    const struct ffa_mem_access *mem_access;
> +    const struct ffa_mem_access_1_2 *mem_access;
>      struct ffa_mem_transaction_int trans;
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> @@ -471,9 +496,12 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs=
)
>      register_t handle_hi =3D 0;
>      register_t handle_lo =3D 0;
>      int ret =3D FFA_RET_DENIED;
> +    uint32_t ffa_vers;
>      uint32_t range_count;
>      uint32_t region_offs;
>      uint16_t dst_id;
> +    uint8_t perm;
> +    uint64_t impdef[2];
>
>      if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
>      {
> @@ -512,8 +540,8 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      if ( frag_len > tx_size )
>          goto out_unlock;
>
> -    ret =3D read_mem_transaction(ACCESS_ONCE(ctx->guest_vers), tx_buf,
> -                               frag_len, &trans);
> +    ffa_vers =3D ACCESS_ONCE(ctx->guest_vers);
> +    ret =3D read_mem_transaction(ffa_vers, tx_buf, frag_len, &trans);
>      if ( ret )
>          goto out_unlock;
>
> @@ -542,13 +570,35 @@ void ffa_handle_mem_share(struct cpu_user_regs *reg=
s)
>          goto out_unlock;
>      }
>
> +    if ( trans.mem_access_size < sizeof(struct ffa_mem_access) )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out_unlock;
> +    }
> +
>      /* Check that it fits in the supplied data */
>      if ( trans.mem_access_offs + trans.mem_access_size > frag_len )
>          goto out_unlock;
>
>      mem_access =3D tx_buf + trans.mem_access_offs;
> -
>      dst_id =3D ACCESS_ONCE(mem_access->access_perm.endpoint_id);
> +    perm =3D ACCESS_ONCE(mem_access->access_perm.perm);
> +    region_offs =3D ACCESS_ONCE(mem_access->region_offs);
> +
> +    /*
> +     * FF-A 1.2 introduced an extended mem_access descriptor with impdef
> +     * fields, but guests can still use the 1.1 format if they don't nee=
d
> +     * implementation-defined data. Detect which format is used based on
> +     * the mem_access_size field rather than the negotiated FF-A version=
.
> +     */
> +    if ( trans.mem_access_size >=3D sizeof(struct ffa_mem_access_1_2) )
> +        memcpy(impdef, mem_access->impdef, sizeof(impdef));
> +    else
> +    {
> +        impdef[0] =3D 0;
> +        impdef[1] =3D 0;
> +    }
> +
>      if ( !FFA_ID_IS_SECURE(dst_id) )
>      {
>          /* we do not support sharing with VMs */
> @@ -556,13 +606,11 @@ void ffa_handle_mem_share(struct cpu_user_regs *reg=
s)
>          goto out_unlock;
>      }
>
> -    if ( ACCESS_ONCE(mem_access->access_perm.perm) !=3D FFA_MEM_ACC_RW )
> +    if ( perm !=3D FFA_MEM_ACC_RW )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
>          goto out_unlock;
>      }
> -
> -    region_offs =3D ACCESS_ONCE(mem_access->region_offs);
>      if ( sizeof(*region_descr) + region_offs > frag_len )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> @@ -587,6 +635,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      }
>      shm->sender_id =3D trans.sender_id;
>      shm->ep_id =3D dst_id;
> +    memcpy(shm->impdef, impdef, sizeof(shm->impdef));
>
>      /*
>       * Check that the Composite memory region descriptor fits.
> @@ -602,7 +651,7 @@ void ffa_handle_mem_share(struct cpu_user_regs *regs)
>      if ( ret )
>          goto out;
>
> -    ret =3D share_shm(shm);
> +    ret =3D share_shm(shm, ffa_fw_version);
>      if ( ret )
>          goto out;
>
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:40:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:40:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229115.1535121 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXrT-0001da-2p; Thu, 12 Feb 2026 14:40:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229115.1535121; Thu, 12 Feb 2026 14: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 1vqXrS-0001dT-U7; Thu, 12 Feb 2026 14:40:06 +0000
Received: by outflank-mailman (input) for mailman id 1229115;
 Thu, 12 Feb 2026 14: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=Yal/=AQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vqXrS-0000kc-54
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:40:06 +0000
Received: from mail-oi1-x230.google.com (mail-oi1-x230.google.com
 [2607:f8b0:4864:20::230])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b824f950-0820-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:40:05 +0100 (CET)
Received: by mail-oi1-x230.google.com with SMTP id
 5614622812f47-45f0c1f1b54so4803172b6e.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 06:40:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b824f950-0820-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770907204; cv=none;
        d=google.com; s=arc-20240605;
        b=JAnDMZnJWpzO7tSt/LiWFa9inaKQdTNw1gPwoA0HbH5Kn0PheVSbFlkRgcJC7X/fvO
         I/DIlgaSvCkSIup7Zz/Trq78h9Q2Ou0P55AVgjxtUgSHl8fs+pm7PHVZOaRXMRs2KpGV
         7rLY6gtFCePN+nuYvQA7y+eJrQqsQUT4+uu+IACEfl6/QQ4OMr649+YeTl74oQOy/Bvr
         LosU073ytw8vsPAYjOByB/ba0VRPuN3kiFSr636Ft3nT9XZwTyf1isd3URtlEKT8+6XG
         gCmIJZuBNLd/CmiGaB3vgYajcl2Ba2iumXk4U1XyheV5Wvg9PceSArXnWVtRDHz4sapA
         CtJQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Yn2zkDk6FP6Yc0FCN+IL9bgNIWDmfWx9UBf0hazkhSM=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=j7PHmZhHdnhWGvy/QQwxAUrEl90bEPl1NbEDyXTfgBdRUjI6HTJqik8dJDIo6GGXUw
         axxdk8JsEeR4Mbhf3nRshBYT56kflQ28qE0dtkh8bpZAzvC7xHWHLYmtFJ+zO/w/1hGB
         pp0gi9QkiZQrq3iUFQn5OGAEbEmlyN9VX3pNZ75ktegpeW9w2p4r3Z6j8sMXb2VfNbii
         jVgKtWgNdyZBTwbrdg7PDXC55Aiz+2StiTSbr2vx00i5hV+dDmX7UoUxJ5T76jz7zNT2
         /uOGl4fFZ6EVW7V3QUukKJ7nXqmjgSBE7brkr6TNbz0+8Rhpl5T+OXSXk02mVX2EnWcS
         Inqg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770907204; x=1771512004; 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=Yn2zkDk6FP6Yc0FCN+IL9bgNIWDmfWx9UBf0hazkhSM=;
        b=VHS1moepifN6nIdK5EYGor5vWKfRGh/cn3Kk5DpSPgGXCR6jpqKRB5tGsWIqRSaBd4
         da6DjBAr1x8AuIRvK7CzWPRCSc8un+REgvDWLzX9+cSCMsuy5urFytFzZNaKeCHBjSW5
         t76GtE0A9IVLlj+wpRFQ5V/ZysRfyYjjp80YZl2GQV2VJzr2Gi2/fPS1Vf442w0USveR
         uFE4XjOQlpeo34mhX9iIjwzxTIgaVsplfUAuZTjfGuHJQenTj+5wJ+s3xmD8H/6g20zT
         v6ZYcDILzdKHEjAdQpN2yqmfe7J1fD3+7MylHFktpf5ln6SsaoI1QL+uXiWwftmgD6cV
         aN5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770907204; x=1771512004;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Yn2zkDk6FP6Yc0FCN+IL9bgNIWDmfWx9UBf0hazkhSM=;
        b=peNkndCn5S90rAk+zxobF+HadGVJFOt06RgBG2LWWTt81dg01rS7PnTnzfgzx/Kx9b
         LNyhYCxOfN8PbGlRi6E0cN3V4jbK7UZYOVhyR90f9C2ZuhM1q/1rwH4YBkjuRQvmBxlU
         7ppjf4RVaxZL0kVNU5nr46VrHZGBC1nsdH3fDUk8uQaY50yGHpbuFXLsMfJaowRH030k
         uJknLkhJh/sdEAAjgglvUr79OGv7FjHTZU9OT9Od0Cw8WrNNR8/0/G3w512QYt039+Vk
         BHuEy6x4pdyHnahawnMa9JPE3oQD4qh5I3I4/5YyviptlvpVzMfvJPRRkwcuZGY09cvk
         4btQ==
X-Gm-Message-State: AOJu0YzsgQePKB12yV3I28SgcT1c8Xuv6k5x6b8DKVOQl1WCnRc5hh4A
	gF5BI8PJDFdxu4q+iWfn0Wyt72XWdlYldcdhTUO3jrxykHkcnOfM+DTOEW18TsplfUucyY7qu9G
	BQFieTpRW0YbZUX94EpcnLMaSDSvPl2SbPAnb3guoTA==
X-Gm-Gg: AZuq6aI+e2tizBzQpzRyDi2qhTMiC1IzcPzr3cIjlq/0hJcjuOFWwCcuf5irpLNFrGF
	I4n+9I4L/ihJFNljhgQxFBm6TTcyTUJjChlbhljqJYs2PWbCGXIxULbV5qk8uXfv/m6kbFsY8G3
	yZ8vECvalY+g010B+Z7bmPoXg/Ju9Nn5+YgE76ukq/2Iid6KLJbNXP5UoRu9FTkgeU6AGlw8wl3
	kbYIYxsR9oDa94A0fdSEPnDSqGQg9foiITMYiGpTGff7L8e05gMdNQebuNp46e54MeHDyw4EgeQ
	5aV3aHFDOM5QDIqQGuWXm9m8jcGcKkbjiiogBQ==
X-Received: by 2002:a05:6808:4fc9:b0:45e:a501:750c with SMTP id
 5614622812f47-4637b947270mr1304278b6e.62.1770907203773; Thu, 12 Feb 2026
 06:40:03 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770826406.git.bertrand.marquis@arm.com> <cbe45740ea22b7d49fbaf45585acc6a8cc8866d8.1770826406.git.bertrand.marquis@arm.com>
In-Reply-To: <cbe45740ea22b7d49fbaf45585acc6a8cc8866d8.1770826406.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Thu, 12 Feb 2026 15:39:51 +0100
X-Gm-Features: AZwV_QgI9DMUe8oOKn84WovEZj87WwTVaaQmHE3bYBcWwG5w8FoXjOz2U_773Jc
Message-ID: <CAHUa44E+7ADF1pg1Zq0NimFxrcqN4W9tzFd9pZBUiAbOpm-h7g@mail.gmail.com>
Subject: Re: [PATCH v2 07/12] xen/arm: ffa: Fix RXTX_UNMAP ownership race
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 Wed, Feb 11, 2026 at 6:16=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> rxtx_unmap() checks RX ownership without holding the RX/TX locks and
> only enforces the ownership rule when FFA_RX_ACQUIRE is supported. This
> allows a vCPU to acquire RX between the check and unmap, and it lets
> RXTX_UNMAP proceed while RX is owned when buffers are not forwarded to
> firmware.
>
> Hold rx_lock/tx_lock across the ownership check and unmap, and deny
> RXTX_UNMAP whenever RX is owned, independent of RX_ACQUIRE support. For
> teardown, release RX ownership under the same lock window; use
> FFA_RX_RELEASE directly because rx_lock is held, and clear the local
> flag when the firmware path is unavailable.
>
> Functional impact: RXTX_UNMAP now reliably returns DENIED while RX is
> owned, and teardown releases/clears ownership without a race.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - Remove marking rx buffer as free during teardown as it is useless
> - Add a comment when calling rxtx_unmap during teardown to remind code
>   readers that true is for teardown mode
> ---
>  xen/arch/arm/tee/ffa_rxtx.c | 32 +++++++++++++++++++++++++++++---
>  1 file changed, 29 insertions(+), 3 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_rxtx.c b/xen/arch/arm/tee/ffa_rxtx.c
> index eff95a7955d7..c4fc4c4934af 100644
> --- a/xen/arch/arm/tee/ffa_rxtx.c
> +++ b/xen/arch/arm/tee/ffa_rxtx.c
> @@ -220,7 +220,7 @@ err_unlock_rxtx:
>      return ret;
>  }
>
> -static int32_t rxtx_unmap(struct domain *d)
> +static int32_t rxtx_unmap(struct domain *d, bool teardown)
>  {
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      int32_t ret =3D FFA_RET_OK;
> @@ -234,6 +234,32 @@ static int32_t rxtx_unmap(struct domain *d)
>          goto err_unlock_rxtx;
>      }
>
> +    if ( !ctx->rx_is_free )
> +    {
> +        if ( teardown )
> +        {
> +            if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
> +            {
> +                int32_t rel_ret;
> +
> +                /* Can't use ffa_rx_release() while holding rx_lock. */
> +                rel_ret =3D ffa_simple_call(FFA_RX_RELEASE, ctx->ffa_id,
> +                                          0, 0, 0);
> +                if ( rel_ret )
> +                    gdprintk(XENLOG_DEBUG,
> +                             "ffa: RX release during teardown failed: %d=
\n",
> +                             rel_ret);
> +            }
> +        }
> +        else
> +        {
> +            gdprintk(XENLOG_DEBUG,
> +                     "ffa: RXTX_UNMAP denied, RX buffer owned by VM\n");
> +            ret =3D FFA_RET_DENIED;
> +            goto err_unlock_rxtx;
> +        }
> +    }
> +
>      if ( ffa_fw_supports_fid(FFA_RX_ACQUIRE) )
>      {
>          ret =3D ffa_rxtx_unmap(ffa_get_vm_id(d));
> @@ -261,7 +287,7 @@ err_unlock_rxtx:
>
>  int32_t ffa_handle_rxtx_unmap(void)
>  {
> -    return rxtx_unmap(current->domain);
> +    return rxtx_unmap(current->domain, false);
>  }
>
>  int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size=
)
> @@ -369,7 +395,7 @@ int32_t ffa_rxtx_domain_init(struct domain *d)
>
>  void ffa_rxtx_domain_destroy(struct domain *d)
>  {
> -    rxtx_unmap(d);
> +    rxtx_unmap(d, true /* teardown */);
>  }
>
>  void *ffa_rxtx_spmc_rx_acquire(void)
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:43:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:43:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229127.1535129 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXuO-0002GK-E0; Thu, 12 Feb 2026 14:43:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229127.1535129; Thu, 12 Feb 2026 14: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 1vqXuO-0002GC-BB; Thu, 12 Feb 2026 14:43:08 +0000
Received: by outflank-mailman (input) for mailman id 1229127;
 Thu, 12 Feb 2026 14:43: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=Yal/=AQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vqXuN-0002G6-G8
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:43:07 +0000
Received: from mail-oa1-x2f.google.com (mail-oa1-x2f.google.com
 [2001:4860:4864:20::2f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23537684-0821-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 15:43:05 +0100 (CET)
Received: by mail-oa1-x2f.google.com with SMTP id
 586e51a60fabf-40ea36b56b7so1896787fac.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 06:43:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23537684-0821-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770907384; cv=none;
        d=google.com; s=arc-20240605;
        b=JOS3+mMbhh2Z4KA/izPPzhX107UEQlsz+HSTZ11ou55J9rJqlwY7L/idnHEebDmvF1
         hMY1M/dx3Tla/QNC8ioacblDlQDXj5MSvhzo+3fQhXtHpyvbxsiU975mmbbHcXIF7U95
         lZIwkjUKqG31HR951xCL67qku3FwAtbe9H4ngGg/KOl/AYA4dG7rsemAcKLAlhm6Vwyr
         qInDwyYJMWA21zNyPrCVaIzq3mZHHWE/DqvDsXfguL4xXv5XveWWBxzf50Egbsube8YZ
         /M8Q06GuSHxJR77VH96J5KAxMujIr/RdcuSuuqHsK+6nGFLFp/KgG1sabZAxt7hHvEk0
         A8wA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=fmsGaSKF5EXtyoY37xtT1UIgrvDD2BADzoVe0lfSOe4=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=S/xeuassQH/JaRGGBfttMisg9oKaJ+G8fjiMvx9VtL7YdNLvKyW3NYnq0AgHmf3iQ1
         ZgYAfo1NNXGaz+7ZMnxrYQbd5M+5nzXv8JBa4uw2f5+jwPwP3c98CWVQrp3kx5ivLnp6
         SqV+FdB/1585Km8CQMdLr2hAnnJ6VfVZi3Suk5zdVLvI0uMbjsPVHNHVH0D4mw4SAWUe
         VvFz1sz6jflhKy3vchiENlBJ7BIfn468wZ56c1w/xX/nKb4Dr610NT+HeJg2A+55Jp8k
         QaAoD3jRaOS1UWgCjlpXLP7VlOMdA90FDKKrQNoBu9PS9Pkl6USZGA8DsoFk/DGNVjAt
         RxQQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770907384; x=1771512184; 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=fmsGaSKF5EXtyoY37xtT1UIgrvDD2BADzoVe0lfSOe4=;
        b=oQB41mCVEAG2oi7e9gJefOWkzkXL7Q7fpZM73+Yi8RlAJjR6LsuqmjLnNJfysmCdyY
         i6g9uhJMT6kzOPqu9/j1zW1Dfzq2HtKPD9G6JSqc5eRXdKqaihXeIiXAkEaT1P++MRxJ
         TOccq0cLcpw4sukwPDtbG4iqSY1cuQPHzgW/6R3x+b6CMT6raBHldlwN7NlrS6wJQUpp
         4gyBYnm7f4lROBE/ki9w47vHChaCTT4RdyfM0uuR2/ULsaf9uitbd8/JmtP3L9pfYzpF
         PBPoIbHmk5vtLlvHTYMKOEAGk0ezxSMBxxLpluKNM6TkrftpzaP9EtcmVDeR3CxmMpfv
         5QKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770907384; x=1771512184;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=fmsGaSKF5EXtyoY37xtT1UIgrvDD2BADzoVe0lfSOe4=;
        b=KmTTfSPuB7u3gLcAr7y19Tj0T32zJI9MmdUylLMNXSj5sfFS6FH0tafUs3o13OXAQD
         giuoNQ4BUNGxvdKAIcsAJ58RvQ+RbwvdbAzQ7XsCA2C9ox21A++6NLl1+HD8Czz3zEhn
         pI+h6UXIN8IE3MoQ4sSahYqu9ETucahiE9QNSQNKgaE1M9dAeYj/RhpERY7w5CfdiLOO
         bvtgLq+5SrO4ZtX035w1lQQrCwDQ8fMyIdjwcg10owkqZ6i7zXEenpP909Du1t8tQtet
         msd3A02RMBgsostf5QVXpDPZkSFBTAEuSMEp7vJDeDvz4DQWQvEa49y5WUxh2y/rjbh+
         Mhcw==
X-Gm-Message-State: AOJu0Yy3I0CKO/wGLlNzx420mX4L4Uo6Zs+SYeelk/+8xu6Zqf5cyOCc
	ls8OQQ+hsu7aXNgzYrVHg1JqPDH4V57cxpyOpSnmvFvTbWgP5eGNzBrgnqdAGP15BLBp4fWu2Bd
	lTAKDxLSLLLViaUyd45CQMre9PuPOMBksNSE0holtSA==
X-Gm-Gg: AZuq6aJw7hyLfvTon/q06V+oTMGC89QJgoGbG2iPHfsZ6b5R7NpJadB5OopjUNWRj0Y
	QfGGgRwQ2LwornDK9CUGJZJeO8gCO9zwXeQHGrf1DxCEc8BgFGkJ1VRrSMAKN1o6sfnWkiOBDk/
	LDvkx4UfEJ3U4GfMLMv1ye2RZD1qwpV5GCTVPat1sRnVCxwt2Ooz57/w7GiniY1ni/QGnsbUj0o
	GKra6sCNlt5HXCtm6n2DuuKYz+OPPKim74oZT+P8QWigqYfqgVJ1KYU+ct1CZywKH+vWYZ+MVZi
	HyCxbCh4o7o+UpZQwTvEXAh8CL6SJ8cmqYEVWw==
X-Received: by 2002:a05:6870:d61e:b0:36c:abe0:83d3 with SMTP id
 586e51a60fabf-40eca2fbfaamr1205801fac.39.1770907383709; Thu, 12 Feb 2026
 06:43:03 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770826406.git.bertrand.marquis@arm.com> <d76dceb237df9fec6f27b7860959b6910351ab1e.1770826406.git.bertrand.marquis@arm.com>
In-Reply-To: <d76dceb237df9fec6f27b7860959b6910351ab1e.1770826406.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Thu, 12 Feb 2026 15:42:52 +0100
X-Gm-Features: AZwV_Qg1llTUgkAa7Rqj4ful2P_gxsUqKr43vL-NKJaZbYr_RswNIAUV5FJG3eM
Message-ID: <CAHUa44EHTByK-9eDp6x8q07k7n9PPqqO6gNqHqdNbRRbuoR3Gg@mail.gmail.com>
Subject: Re: [PATCH v2 08/12] xen/arm: ffa: Fix FFA_FEATURES validation
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 Wed, Feb 11, 2026 at 6:16=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FFA_FEATURES advertises several ABIs unconditionally, even when firmware
> support is missing or when the ABI is physical-instance-only. This can
> mislead guests about what Xen can actually provide and violates FF-A
> calling conventions. Some SPMCs (Hafnium v2.14 or earlier) also fail to
> report FFA_RX_ACQUIRE despite supporting it.
>
> Update FFA_FEATURES validation to match spec and firmware support:
> - do no check w2-w7 input registers during FFA_FEATURES as they are
>   flagged Should Be Zero by the FF-A specification or are not used by
>   the calls we support.
> - reject 64-bit calling conventions from 32-bit guests with NOT_SUPPORTED
> - return NOT_SUPPORTED for physical-instance-only ABIs
> (FFA_NOTIFICATION_BITMAP_{CREATE,DESTROY}, FFA_RX_ACQUIRE)
> - advertise FFA_INTERRUPT as supported
> - gate message ABIs on firmware support:
> - FFA_MSG_SEND_DIRECT_REQ_{32,64}
> - FFA_MSG_SEND_DIRECT_REQ2 (also requires FF-A 1.2 negotiation)
> - FFA_MSG_SEND2 (or VM-to-VM enabled)
> - report MEM_SHARE_{32,64} only when FFA_MEM_SHARE_64 is supported
> - stop advertising FFA_MSG_YIELD (not implemented)
>
> Update firmware probing: drop FFA_MEM_SHARE_32 checks (deprecated) and
> add FFA_RX_ACQUIRE to the probed set. If FFA_MSG_SEND2 is reported but
> FFA_RX_ACQUIRE is not, assume RX_ACQUIRE support and warn to work
> around the Hafnium bug.
>
> Functional impact: guests now see ABI support that reflects firmware
> capabilities and Xen implementation status. When SEND2 is present but
> RX_ACQUIRE is not reported, Xen assumes RX_ACQUIRE support.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - remove completely w2-w7 checking as those are SBZ in the spec or
>   unused by xen
> ---
>  xen/arch/arm/tee/ffa.c | 63 +++++++++++++++++++++++++++++++++---------
>  1 file changed, 50 insertions(+), 13 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index 23e1f408485b..cb8cd95fdafa 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -91,10 +91,10 @@ static const struct ffa_fw_abi ffa_fw_abi_needed[] =
=3D {
>      FW_ABI(FFA_PARTITION_INFO_GET),
>      FW_ABI(FFA_NOTIFICATION_INFO_GET_64),
>      FW_ABI(FFA_NOTIFICATION_GET),
> +    FW_ABI(FFA_RX_ACQUIRE),
>      FW_ABI(FFA_RX_RELEASE),
>      FW_ABI(FFA_RXTX_MAP_64),
>      FW_ABI(FFA_RXTX_UNMAP),
> -    FW_ABI(FFA_MEM_SHARE_32),
>      FW_ABI(FFA_MEM_SHARE_64),
>      FW_ABI(FFA_MEM_RECLAIM),
>      FW_ABI(FFA_MSG_SEND_DIRECT_REQ_32),
> @@ -238,21 +238,30 @@ static void handle_features(struct cpu_user_regs *r=
egs)
>      uint32_t a1 =3D get_user_reg(regs, 1);
>      struct domain *d =3D current->domain;
>      struct ffa_ctx *ctx =3D d->arch.tee;
> -    unsigned int n;
>
> -    for ( n =3D 2; n <=3D 7; n++ )
> +    /*
> +     * FFA_FEATURES defines w2 as input properties only for specific
> +     * function IDs and reserves w3-w7 as SBZ. Xen does not currently
> +     * implement any feature that consumes w2, so ignore extra inputs.
> +     */
> +    if ( !is_64bit_domain(d) && smccc_is_conv_64(a1) )
>      {
> -        if ( get_user_reg(regs, n) )
> -        {
> -            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> -            return;
> -        }
> +        /* 32bit guests should only use 32bit convention calls */
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        return;
>      }
>
>      switch ( a1 )
>      {
> +    case FFA_NOTIFICATION_BITMAP_CREATE:
> +    case FFA_NOTIFICATION_BITMAP_DESTROY:
> +    case FFA_RX_ACQUIRE:
> +        /* Physical-instance-only ABIs are not exposed to VMs. */
> +        ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        break;
>      case FFA_ERROR:
>      case FFA_VERSION:
> +    case FFA_INTERRUPT:
>      case FFA_SUCCESS_32:
>      case FFA_SUCCESS_64:
>      case FFA_FEATURES:
> @@ -261,16 +270,25 @@ static void handle_features(struct cpu_user_regs *r=
egs)
>      case FFA_RXTX_UNMAP:
>      case FFA_MEM_RECLAIM:
>      case FFA_PARTITION_INFO_GET:
> +        ffa_set_regs_success(regs, 0, 0);
> +        break;
>      case FFA_MSG_SEND_DIRECT_REQ_32:
>      case FFA_MSG_SEND_DIRECT_REQ_64:
> -    case FFA_MSG_SEND2:
>      case FFA_RUN:
> -    case FFA_INTERRUPT:
> -    case FFA_MSG_YIELD:
> -        ffa_set_regs_success(regs, 0, 0);
> +        if ( ffa_fw_supports_fid(a1) )
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        break;
> +    case FFA_MSG_SEND2:
> +        if ( ffa_fw_supports_fid(a1) || IS_ENABLED(CONFIG_FFA_VM_TO_VM) =
)
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
>          break;
>      case FFA_MSG_SEND_DIRECT_REQ2:
> -        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> +        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 &&
> +             ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ2) )
>          {
>              ffa_set_regs_success(regs, 0, 0);
>          }
> @@ -281,6 +299,11 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>          break;
>      case FFA_MEM_SHARE_64:
>      case FFA_MEM_SHARE_32:
> +        if ( !ffa_fw_supports_fid(FFA_MEM_SHARE_64) )
> +        {
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +            break;
> +        }
>          /*
>           * We currently don't support dynamically allocated buffers. Rep=
ort
>           * that with 0 in bit[0] of w2.
> @@ -688,6 +711,20 @@ static bool ffa_probe_fw(void)
>                     ffa_fw_abi_needed[i].name);
>      }
>
> +    /*
> +     * Hafnium v2.14 or earlier does not report FFA_RX_ACQUIRE in
> +     * FFA_FEATURES even though it supports it.
> +     */
> +    if ( !ffa_fw_supports_fid(FFA_RX_ACQUIRE) &&
> +         ffa_fw_supports_fid(FFA_MSG_SEND2) )
> +    {
> +        printk(XENLOG_WARNING
> +               "ARM FF-A Firmware reports FFA_MSG_SEND2 without FFA_RX_A=
CQUIRE\n");
> +        printk(XENLOG_WARNING
> +               "ffa: assuming RX_ACQUIRE support (workaround)\n");
> +        set_bit(FFA_ABI_BITNUM(FFA_RX_ACQUIRE), ffa_fw_abi_supported);
> +    }
> +
>      if ( !ffa_rxtx_spmc_init() )
>      {
>          printk(XENLOG_ERR "ffa: Error during RXTX buffer init\n");
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:45:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:45:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229137.1535140 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXwe-0002oH-RW; Thu, 12 Feb 2026 14:45:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229137.1535140; Thu, 12 Feb 2026 14: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 1vqXwe-0002oA-Nf; Thu, 12 Feb 2026 14:45:28 +0000
Received: by outflank-mailman (input) for mailman id 1229137;
 Thu, 12 Feb 2026 14:45: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=Yal/=AQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vqXwd-0002nh-Ix
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:45:27 +0000
Received: from mail-oa1-x31.google.com (mail-oa1-x31.google.com
 [2001:4860:4864:20::31])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 770de5e7-0821-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 15:45:25 +0100 (CET)
Received: by mail-oa1-x31.google.com with SMTP id
 586e51a60fabf-40970f97638so1884208fac.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 06:45:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 770de5e7-0821-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770907524; cv=none;
        d=google.com; s=arc-20240605;
        b=Czp0WyfHA6in3WWXojMyRKkYHF8LoiSPWqbKSCWe4/yRQTzHE7ttyTXZxHBFoIJHxx
         V5YBViXkzU/axc5Q1tUO8Pa41evS4F+Av91yzcjVWWI5AXhzOUH9HVZd4RzaVH1n50My
         hwcLmMQ6Xw4mqhCG5GKPJf1Fo3OABOw6NnXWAUmff8XzpwuR3q6ZoCtu7JuaY227AgfB
         S63WIMzZwmvDtgwhNiByxRUBqRharfR5t+0K+o3umCC+xxCwA1eeVCuzH1woZvslPQPY
         fbQv9M4H+mKlQfp8hOGpq8mT5d787hwqktNBntDzJklRqXSj+fNrrEk3ZCVXanMFOb2i
         uN9A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=g1SdNkbfBqxDqNzv7rl3msqZw+ALt97QHJL2xmSJB4s=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=Om78r335v3nhE7ZRs3gVM/S4mAzDFSahQv0+s+aql4ztfo+eop1jZWmEmhMdkgXMWn
         tkdKuKkGTa2RVD8i6EEVUsW736gKF408ulyRLQsbG/mI/1Be/B5SBqRfQYqOs0luR36S
         t27N3UL3ZJMg15S7+sH1XcnaB59BhydeYltVYKZjpGDJenxSxA7zT85q0ENE6c/ybCCq
         V0ZQKWefcCSiUrzbDGFlu2KJN/iGqTiBrFb/M0SHHYhVBRc7wh5YR5hAWodlsi6rRsAs
         yQjbIjzK1V8vN/cBS67iZLtxrxNFe4IxwrELyAvD9oWv2mFWWygeXOCXmC0zJMlLkf9A
         8ifw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770907524; x=1771512324; 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=g1SdNkbfBqxDqNzv7rl3msqZw+ALt97QHJL2xmSJB4s=;
        b=qw9zHejEJ6Cnw7cc/mGJOrh3lnf+nxg+MSP/9wa9kbUyKus8Zrq02UY0hzBcNEMKdY
         BtQdWTvSSoWN3DpvsCKO/5YDmDtoGNXCI3sO5NN9a42ll7raNPZ7Y7E99KOuG7l9popA
         kMhrGtgKk+S/+wOzsbl8FLKWcBolt+OZyrrwZvCThpTnTYERU9zhQgub4qtVQDi0eNJa
         9JqVpdCGI+HfrT2IvNBygNTIekpKN8X5Mwmn66bfEQ2vvscaiAH7vLBKFmOwvZOv3h11
         f2s84H4bAZ+nkF+znT4m1WVwLcnERBGFq9eKbLaXhgWkWR3N9n6GU2yibW6mQ2pHDDMo
         gd0w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770907524; x=1771512324;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=g1SdNkbfBqxDqNzv7rl3msqZw+ALt97QHJL2xmSJB4s=;
        b=KuyonAEHwnapLelAwH948lghw/Gb6AJuJGotMm/i0i1Vts+a1YKK33QEJGziVBVU00
         FgX60kMFCrAnu83HLlhtRl+3U8TZryqRbadC2GBlJsmfNpLPl6o3yCjobawL7SmtfFkK
         JNLrS+zDGC00mYlOXsldOrkOwlx/eMxj+ttyRu5qka3bPPIVwPjqbLm8RjBUgtn3SuTr
         YuZtjX404LojrFqSFY1NoWRIiT9QkT915jWRfogxM0Mm6uM+Ka7L9dHESf//+mC8k4y9
         ohQcsxVQPuAuZfTlgbyoon8Khj7qHnNC0awkC9QRxLaQM2qXfeLW7v6DpvCTAGGAxTQc
         ky2g==
X-Gm-Message-State: AOJu0YwOqM4poSt0JaMMUosVGp+irz8r31BWIQSCxsDykOurdW666obV
	Pk/OnBpfOveN1PbURn5xjjaIRx4R3QY2hsvq3dI+ulM8de5+c8onEJC9K4sdT61J3DVQRGU1o6X
	JzIghd1tkaeQXEwSmo07lDo9POh0TSuh9pX1N3JJtsA==
X-Gm-Gg: AZuq6aK4kbvdjybnj0jzL1KWTBvZczk29Z0NfynFuji0dFAx+5ORkgz+T+sklDLBYX7
	jAxoyBuaqUgxqiR+NIS/hVgcWEYpLKS06oRyDEVYRa0zLpqcoBIwZaVYhR9pWJXyoY4k4qf0qjF
	74G08CugIot+Me7QWlpvSxf1IFwbwfIMy4I05oePWoXyPVuRgGa/u4azyJtPNy85ZiX8Fq9t9DG
	eEbLJR2Z7CR66X8tIG6HV6lsFAho4bfb9MMAbCK5qWxvKGZrjedv70FpRPcKX2HN6v5oP7zT/aE
	UrnYv68Sy/PJi09io264IB4IifdbokeLn4TgbA==
X-Received: by 2002:a05:6870:3288:b0:409:bd2b:91a3 with SMTP id
 586e51a60fabf-40eca1fd9f0mr1255487fac.32.1770907524234; Thu, 12 Feb 2026
 06:45:24 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770826406.git.bertrand.marquis@arm.com> <4fa6736cbe35b060cf34b2978bbf9b3481d9266a.1770826406.git.bertrand.marquis@arm.com>
In-Reply-To: <4fa6736cbe35b060cf34b2978bbf9b3481d9266a.1770826406.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Thu, 12 Feb 2026 15:45:12 +0100
X-Gm-Features: AZwV_QgOut5rCLJNUhhFg5tR5m71EHGai87vMWyWZN1fOx7VKE5YuNQZWPVD29o
Message-ID: <CAHUa44F5-XQKc2TBH=KbOPXcpv_w_hm3CwHR-o0=ROQ9Upj5nw@mail.gmail.com>
Subject: Re: [PATCH v2 11/12] xen/arm: ffa: Add MEM_SHARE page diagnostics
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 Wed, Feb 11, 2026 at 6:16=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> MEM_SHARE failures in get_shm_pages() are silent, which makes malformed
> ranges and page mapping failures hard to diagnose.
>
> Add debug logging for page validation failures:
> - descriptor validation failures (unaligned, range short/overflow)
> - per-page mapping failures (unmapped GFN, wrong p2m type)
> - address overflow detection in range walks
>
> Ratelimit temporary reclaim failures and log permanent reclaim failures
> as errors.
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - use one print per error case instead of the previous system using
>   variables to classify and a single print site.
> ---
>  xen/arch/arm/tee/ffa_shm.c | 39 +++++++++++++++++++++++++++++++++++---
>  1 file changed, 36 insertions(+), 3 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
> index 070babce9627..3d61caaeba78 100644
> --- a/xen/arch/arm/tee/ffa_shm.c
> +++ b/xen/arch/arm/tee/ffa_shm.c
> @@ -161,32 +161,62 @@ static int32_t get_shm_pages(struct domain *d, stru=
ct ffa_shm_mem *shm,
>          addr =3D ACCESS_ONCE(range[n].address);
>
>          if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
> +        {
> +            gdprintk(XENLOG_DEBUG,
> +                     "ffa: mem share pages invalid: unaligned range %u a=
ddress %#lx\n",
> +                     n, (unsigned long)addr);
>              return FFA_RET_INVALID_PARAMETERS;
> +        }
>
>          for ( m =3D 0; m < page_count; m++ )
>          {
>              if ( pg_idx >=3D shm->page_count )
> +            {
> +                gdprintk(XENLOG_DEBUG,
> +                         "ffa: mem share pages invalid: range overflow r=
g %u pg %u\n",
> +                         n, m);
>                  return FFA_RET_INVALID_PARAMETERS;
> +            }
>
>              if ( !ffa_safe_addr_add(addr, m) )
> +            {
> +                gdprintk(XENLOG_DEBUG,
> +                         "ffa: mem share pages invalid: addr overflow rg=
 %u pg %u base %#lx\n",
> +                         n, m, (unsigned long)addr);
>                  return FFA_RET_INVALID_PARAMETERS;
> +            }
>
>              gaddr =3D addr + m * FFA_PAGE_SIZE;
>              gfn =3D gaddr_to_gfn(gaddr);
>              shm->pages[pg_idx] =3D get_page_from_gfn(d, gfn_x(gfn), &t,
>                                                    P2M_ALLOC);
>              if ( !shm->pages[pg_idx] )
> +            {
> +                gdprintk(XENLOG_DEBUG,
> +                         "ffa: mem share pages invalid: gfn unmapped rg =
%u pg %u addr %#lx\n",
> +                         n, m, (unsigned long)gaddr);
>                  return FFA_RET_DENIED;
> +            }
>              /* Only normal RW RAM for now */
>              if ( t !=3D p2m_ram_rw )
> +            {
> +                gdprintk(XENLOG_DEBUG,
> +                         "ffa: mem share pages invalid: p2m type %u rg %=
u pg %u addr %#lx\n",
> +                         t, n, m, (unsigned long)gaddr);
>                  return FFA_RET_DENIED;
> +            }
>              pg_idx++;
>          }
>      }
>
>      /* The ranges must add up */
>      if ( pg_idx < shm->page_count )
> +    {
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: mem share pages invalid: range short pg %u\n",
> +                 pg_idx);
>          return FFA_RET_INVALID_PARAMETERS;
> +    }
>
>      return FFA_RET_OK;
>  }
> @@ -741,8 +771,10 @@ bool ffa_shm_domain_destroy(struct domain *d)
>               * A temporary error that may get resolved a bit later, it's
>               * worth retrying.
>               */
> -            printk(XENLOG_G_INFO "%pd: ffa: Failed to reclaim handle %#l=
x : %d\n",
> -                   d, shm->handle, res);
> +            if ( printk_ratelimit() )
> +                printk(XENLOG_G_WARNING
> +                       "%pd: ffa: Failed to reclaim handle %#lx : %d\n",
> +                       d, shm->handle, res);
>              break; /* We will retry later */
>          default:
>              /*
> @@ -754,7 +786,8 @@ bool ffa_shm_domain_destroy(struct domain *d)
>               * FFA_RET_NO_MEMORY might be a temporary error as it it cou=
ld
>               * succeed if retried later, but treat it as permanent for n=
ow.
>               */
> -            printk(XENLOG_G_INFO "%pd: ffa: Permanent failure to reclaim=
 handle %#lx : %d\n",
> +            printk(XENLOG_G_ERR
> +                   "%pd: ffa: Permanent failure to reclaim handle %#lx :=
 %d\n",
>                     d, shm->handle, res);
>
>              /*
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:46:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:46:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229151.1535150 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXxd-0003Lc-7l; Thu, 12 Feb 2026 14:46:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229151.1535150; Thu, 12 Feb 2026 14: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 1vqXxd-0003LV-4a; Thu, 12 Feb 2026 14:46:29 +0000
Received: by outflank-mailman (input) for mailman id 1229151;
 Thu, 12 Feb 2026 14:46: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqXxb-0003LH-BZ
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:46:27 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9b919311-0821-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:46:26 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH5PR03MB7838.namprd03.prod.outlook.com (2603:10b6:610:216::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 14:46:23 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 14:46: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: 9b919311-0821-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Yep6waRSrAL8Y+l0hvQxhnPU7z2AhQ//zWParBUFdMtXWKbz5rpx0G/1YGRck4EnQ7O4oP+YfncgnuwIseODEtqfGhOMPvYWVPEHo1SHJ0x9alDD0y3BvgKcOhNwmqvooQjPoWk89E7MYCFABYpfinP3CdSE7ln+oiwhAYir73doMF6HejsMHis3dbuTCE1RRa00q3z8qtzFEPgtJ5P4QeLCcpjJXkUcciCe6UO7jXwgNFVmM99rvjbHWCKqKnhIi+/nsInyH/W7CBulGoPBl3xXFNVCvctiYnZ2FcP6cVLbtlg7Fk6M0tA1WeF7o8GNOabiV+6r9K9LKRmSCHjtEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UW6B+9cYW4G5mCYCzNimGpYVsiMYj4lwqwsPF+7T8EQ=;
 b=PJDeAOS0tjU40da7vDHlT7lnOSjBWlRk9Hato8h2lsYSncZl/7svd/hnLv+D+PqQBEIaqAeVZ765xop+6peIBMoZyuN8PaDm6Wxgmdg88EZ7JGVjusW/3bCymOo7SmgnzSTM4uHTsPCSB+87nOgb1IS5KL7rF34yhW58ZwtROxCymGt9HjcI7iaqxTOtaUOSKUFt3yJVVFwA4RDzxZb3pYFfRcFLhYp1/Jr0T32PiJLsyRjMdPweXtLQvk9diAbtSzcHFV0jbT/0/dOc9zTFQzn8+we8dbvpwtQPIdgMMxaW59z9ovJ6Nj+8sxYLqwpfObLdX35vcCN9YezrSnfjFQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UW6B+9cYW4G5mCYCzNimGpYVsiMYj4lwqwsPF+7T8EQ=;
 b=yRAbvg5ccdWaS1L6w0cptk5/m2MAi9bchJjjoft1t1ox9BmjI5YFJYwaQpCQldk2Yq6GZcmeCTCK0EySfg0gC75yxyzOATNkzBGlaT30EYqGjLhDoKZA/luWG9+1UXm+Wln3f2Joftta54mxG6ZdQcBwDMkWnfr/dof9kJsn5us=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 0/5] darwin: expand cross-builds to also support x86 and testing
Date: Thu, 12 Feb 2026 15:46:13 +0100
Message-ID: <20260212144618.43200-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0020.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::10)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH5PR03MB7838:EE_
X-MS-Office365-Filtering-Correlation-Id: 09bcdf6f-2692-4519-5edf-08de6a457dfd
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?OHpERWRUdzdrSDh4UG9pUU1OazFBZmFDSHVqcC9HNWZkMlpLQnhxem9IQ21D?=
 =?utf-8?B?TUFwclk0NCsweGRmbFY0dGZEL2w0TytKWUFGRFZjd1RQNnpJanpveEJvT0o2?=
 =?utf-8?B?Wjlkdzhsc2dWWjYyMTAvT0k3MjZYZG9rSDl2VUV1NFFJL3IxUGwrTk80Rlow?=
 =?utf-8?B?aWlleUI3WUtUOEFnZSs3bWMzZ054UUt3cy9rTlMwUGZYdWlCRFFFamVWd3Vx?=
 =?utf-8?B?UXEwU2Qvak9oYkdJdGdvNlV4SmZuSjhPM1E0aUJVTWpHWkZGVFV1bUZjVE1P?=
 =?utf-8?B?bnlRZjMrTnVma0sweE93RkNxaEw1RGZtY0FoOUx2VndsNU1ZWktQbWlRdC9B?=
 =?utf-8?B?dE5OTktzZFRFWE52TVdkL2VwK2xydTVyY0tMZko5ek5qWUYwUnBCRHlleU5H?=
 =?utf-8?B?WWNNRjgwNkRGd0h6VkNNZmNZeTVLZjR1RDhRZVVaL3U2RG01Rmd5eDN0SE1G?=
 =?utf-8?B?bmpxVk1kdDVxUG84WG9Za3UyMUVHVjhsNzdMNmZiY2VuWnZaWEpuT2dtNUV3?=
 =?utf-8?B?WXA4azdQc1F4d1FaSExSam85VkhudFVIazRXMVd6a0VQZWlIbkRNV2F1RVdn?=
 =?utf-8?B?VlVGUTd2cW9tYWxEd0wvV0Y0NWpWTFlsYlV5V1dmNi9xVVBPcmlaSWhjYmkr?=
 =?utf-8?B?RFZrUXZnbnNOeXdJQko2ZEtiaVlGZmxWWlREdXl2WjBwTGg4RXp6K21JcFcv?=
 =?utf-8?B?K25DRTlhM2lPbm9vNWw0VWNQdWU2VVB6ZnVVQTZORWc4QkU1cWRIS21aNW15?=
 =?utf-8?B?OTJUd2l4UGpuY1JIOU1NWVdWTTR4cWpLWVlLL2FUcXJiVllveEZlUGY1YlFW?=
 =?utf-8?B?TnFMNDZTSWZ0VFhZN1BkYVJ0bHBmbDIydWk4clVIb2x5MnA0TkNSc0Rnb2ZD?=
 =?utf-8?B?aGNHcDRPcy9EUjNKRUwxRW1YbkFvY2FQbzRGVkpLd0dLbXdoVWRBT2xhOTN4?=
 =?utf-8?B?a1UrcUViSkFJVlBUbVJhblF1MmZCUVNUd0FqR0V2UUI3NDY4REQ3Y1BRU29R?=
 =?utf-8?B?MkpQRC9XZ2hVenpDWnc3enNPRGZPUndJYWRZbzE2a0dLTE1KTC9nVnpwUlBT?=
 =?utf-8?B?cW90VnZUWUNCeUdMd05KY3IrNzlMczBhMlprdlZYbERGSFc2WERXRmhhZzV2?=
 =?utf-8?B?QXZQZXZsK1E0Y2pIK2tWWkVFQWlrUys1Wk1EN0ptYXRxQVI4QW9EL25WanZr?=
 =?utf-8?B?N081bDFYRFdGeGhOemVaOVQxNG9GVkQ2alFxMjdRQzluV25SZ1NzMGJRWVJ4?=
 =?utf-8?B?R1lDSjkyRkpEdGUrakdKWXpRdzAzTzkzNGpxTXVSZ2xIZGdES3c3emNtU3dl?=
 =?utf-8?B?VTRZeE5RZ0VMaFNrQUlxcjdvYlJFRlZMbFZOU3JqMExtMHh3NzhLTDRTcXJz?=
 =?utf-8?B?SXh4MlBRb04zMHgwNmN1Ny9TdjZ1YlU5YlM5a2RRSmhLZkFhWnVxcjkxd21n?=
 =?utf-8?B?ckhDR0N6RFhxVUoyd0YreFoxZUVjb3ltYUo2QkZuc3FPZ2xlZGFCUWNBaHFy?=
 =?utf-8?B?eXhyQ0NucGVCSE02TFJRYkFsbnNzei9NNE5aelBQQ29naVZvbkY4czJXWVIw?=
 =?utf-8?B?dDU2aWF3WURVL08vMWlUZmNxL0NlWVBkb0N1cEcvc0ovL211MDlFcndyRnZR?=
 =?utf-8?B?ck9CamVIdW5abzJoR1NpS2FLUytXaVFIdTJwYngzZjQ4c2RRa3dZRk1rdXpS?=
 =?utf-8?B?QS92MEhUcnNaRHVpZFI2bTBvbXp3YU0wQ3ppeHBkUG10WnhZd0k4aXhzb2VO?=
 =?utf-8?B?NW0rZUZIVWhDNUhZMWFObEpNNThxVFFLYVl6MlhGRVVZbnRGamNnMnJDNlJL?=
 =?utf-8?B?eUY5bGV3T1laVHZNSXUrT3VlaW1SbVZPMHNjQ09ZU1YrdXJNVjYyVmhWd2VV?=
 =?utf-8?B?VFdkNkZkNEQwMDdzazgxVEdoSCtQMk1JdGorZ280NzZJT2hhbU1mUzRSUVZn?=
 =?utf-8?B?dXRWWFphelZvQWYxRktFeVkrajJ6K3NWRG0wcHpBZ3NhdTVGRGRkWE9qRVhq?=
 =?utf-8?B?enpzajFpWDdqckFaZ0pGZXFXTGdvMWMxeFJ6bC9GWldzbDVwaUN3bUxzbnV3?=
 =?utf-8?Q?lRmG9m?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bmxJUEtSRHJUTk9jWHdaclJleVhST2V6aDA4UmtnNFBuUVRHZlRRcU0wQU5Y?=
 =?utf-8?B?bm1QMENtb2FnaGxRcHV2ZENxRkN4a1pBcHJ3OTAxOTlkNjlMbFlUeEc0dXpR?=
 =?utf-8?B?eDZTdGV3VlNpeWV4endDWTB5NFJ5WVdJSGpaQUZ3SmxpeUF6RFhxTmZRS1hR?=
 =?utf-8?B?bjkvU3B3eVN1WmtaWmxDVDJxMGdacEhLM2F2c0V1VnNtWi9zNFVLYnd0MHVq?=
 =?utf-8?B?bkVtQ1A2V0RHazVKVkNSUUhRelFPZ0o5UFk4ZjIrbWFwRGRLbXNNazNOalFG?=
 =?utf-8?B?QkQ1SktHa1FsdWJtZTZvajhkNkt4Y3JjTkdRZ1VFbEZnVGdidFBnd3RhWkNt?=
 =?utf-8?B?cFdyWlFIeWRmNkFnWXRhV3BuQ2FsS1pzSVM1cU9EZitwTm5Eby9ZR1Z0Snc4?=
 =?utf-8?B?ckQ1K1FyMkFmd0hNbS96Y1U5ZWs4eTV2RFVaZk9wMVBBd2Y2QWhxOVR1Tkg1?=
 =?utf-8?B?NnVCaW9hRll3NDdzTk8yblFiOUZuN3QxQjlMRk5zUDNUeXJXQTYyVm1qb2Vu?=
 =?utf-8?B?VXprMkNCODdqMWU2VTUyV1JzWXFRN1dNZ0VHUEN1OVg3dDBZaTFiVmNSbkYx?=
 =?utf-8?B?U3kwdTB6RkdTS2VZS3RDSzBlNUNwVXNZdWg1akxnT253WmRhRUgvR1RKSkVi?=
 =?utf-8?B?V0VEb2RRYmlHaThLREtMNFdDZlIwQ1NldW1xYVVNTVJRWm13UVpFRWxHMXpS?=
 =?utf-8?B?dk5ab2t1MXd4STlzaGNhVFE1TG5CTVZEbU9LZE9vOTJDRjBLc3pQV2ExdUtU?=
 =?utf-8?B?ZGZVYm5oVWhSaHJ6U2FiTkpSZU1nWEc4Mm9xc2lvSXRzZXRRYm5xbUhEZ3p5?=
 =?utf-8?B?UENVZHFGaXhlbUI4VThBWWJHMlg0Z0JsVERCamYwSEsyMmRYcWNvLzVnSXp6?=
 =?utf-8?B?S0lBV052RVByQWpGVzFYT1QxMlo1WDZNUlpPZm9zTXlmYjFxK2lodWhoaEdx?=
 =?utf-8?B?eUpPSjZ3SGlEZzQvVjhJRDdCRStPdEs2K3pnNndWYmVSb2U0MGRsZU05ME03?=
 =?utf-8?B?MGl2VmpZOFpnUGtQMnFrRW05YVRGM2xmeUk2L3p6ZW9rbENOUE9LTzREM1RY?=
 =?utf-8?B?T1NrSVZIUjNodHViZnEycjNWZFh1bjBxbUtraDdoVk1HSFhBd1NNbGxFZ1Nm?=
 =?utf-8?B?eWMrR0J0dVFmbW9KTENEMGRJOXVQYXJaSWQxVWRXQVNTQ2VCN3B2ZmZsU2Qx?=
 =?utf-8?B?ZnZFZkpSYy92UFVzcnliclhUZ0xjWGN3WXlUTXVET0VzK0VkbjdWczJqNktV?=
 =?utf-8?B?ZUdrQlNSb2d0ZEpWcCtacmtNVWJHb29sUDNOQ0hkSStLTDhhMVJsb0UwdTRT?=
 =?utf-8?B?T3JiVWFxTDJzRlYyUGxwQXhMSmlHeWhzQXRhQ2FWQ3Y1RDNHRExqRE5yRnBl?=
 =?utf-8?B?MS9KNjRxR0pzdDZ0bU9sRmwycjZkaWRpeDlOWXBIbERJUnp6NUMxNHRkcjJS?=
 =?utf-8?B?K0R0Mkd3M3FRaGgvSUhUY0Z5SFBuM3kvcjNHNU9WLzBSNmpwOVhWbE9lL0ln?=
 =?utf-8?B?RDZwN05WeTlNaVQwUStkM1FURVhMNi9nbkFqM29FNmEzSDVnMFJtbXphRGZ4?=
 =?utf-8?B?TzdYdmF4WXJRYm1PRXg1NlBDM1NRWmZySEFyeWVRb1ZqbEUwK3JreXpzYkpy?=
 =?utf-8?B?dnJjWW1VTm80K2ZHRm9BYVcxMHgySERKT0lVZmdqNzRDNDc3WWFrVS9mdlpT?=
 =?utf-8?B?KzhXa0NGaTV2L2UyZkhUQ0hYTEtyU3JPNHRvbkJCU2lLR1BKOVhDSmUrUnN0?=
 =?utf-8?B?VnN5eU5GRU1rclM0SEpTVWZ1dVp3MlZoLzhUYzh1ZG9NRFlKRUFFYzhkbHRT?=
 =?utf-8?B?NzlHNnNVS2FsaThldW1LMUhaWk1uL2cxQ2NPdk8yUHVDT0J0MTRlSzBNM0hU?=
 =?utf-8?B?elZ2NFBxUlRwcWZSN3FwbzBERktlMzdJazBTVkJZOGdGRXRKMXdtYmpqdnBH?=
 =?utf-8?B?am96TlB1SVg2UjFRRDBva1UvV0ZuRWNXVWdBWVFqbE85OXhGQTFRUWNyODd6?=
 =?utf-8?B?a09oSGRNY09mMzU4TG5wWjlIM2JaN1hid0drSjZ4WnJlRUo5azJrZW81NmJR?=
 =?utf-8?B?OVVhOUFlRDRkbytnN21QQzludG9LRTRHK2YwS2h5QUVlN0tQS0h0TElmR0tI?=
 =?utf-8?B?WW9wdjJQWlpmVzRBUnRXMktyaElNS3FmQ014c1hBaWV3Qnp0cGFvVXpPZ0FE?=
 =?utf-8?B?VnY4YTl0ejRja1VWK3JwT1lkMW1JUmtRczRWTWZObi8weVc0NWdxbGFPWVBE?=
 =?utf-8?B?YXJvbmVramY0bG5wZXJ2alVQV1ZDQVgzdndBaUhpNERxeTU0SXlzdUlZNUk3?=
 =?utf-8?B?UDJVbC9JOWVoM1kyakFBcEVub2xKZFIzaTg1WlpEdEkzaTV6Tk1IQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 09bcdf6f-2692-4519-5edf-08de6a457dfd
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:46:23.3694
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +tlPZwusdPVG5Bhq9barvQfEC51Xw7TjFmM+aj3TspcI8e+D9E44bhdy/nJf+h5bZFYMOBuqCyLzUyckUHT3LA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7838

Hello,

This series expands the recently introduced Darwin hypervisor build
support to also allow cross-building an x86 hypervisor, that's done in
patches 1 to 3.  Patches 4 and 5 introduce some Cirrus-CI testing to do
cross-builds from macOS, plus it also introduces some basic smoke
testing of the x86 builds using the XTF selftest, just like it's
currently done for the FreeBSD builds.

A result of the updated Cirrus-CI pipeline can be seen at:

https://cirrus-ci.com/build/6723050642604032

Thanks, Roger.

Roger Pau Monne (5):
  xen/x86: always consider '/' as a division in assembly
  xen/tools: remove usages of `stat -c` in check-endbr.sh
  xen/tools: fix grep reporting 'illegal byte sequence' in
    check-endbr.sh
  cirrus-ci: add x86 and arm64 macOS hypervisor builds
  cirrus-ci: add x86 XTF self-tests for macOS build

 .cirrus.yml              | 51 ++++++++++++++++++++++++++++++++++------
 xen/arch/x86/arch.mk     |  5 ++++
 xen/tools/check-endbr.sh | 18 +++++++-------
 3 files changed, 58 insertions(+), 16 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:46:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229152.1535160 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXxf-0003ad-F1; Thu, 12 Feb 2026 14:46:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229152.1535160; Thu, 12 Feb 2026 14: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 1vqXxf-0003aV-C1; Thu, 12 Feb 2026 14:46:31 +0000
Received: by outflank-mailman (input) for mailman id 1229152;
 Thu, 12 Feb 2026 14:46: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqXxd-0003LH-A3
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:46:29 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9cba75b3-0821-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:46:29 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH5PR03MB7838.namprd03.prod.outlook.com (2603:10b6:610:216::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 14:46:26 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 14: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>
X-Inumbo-ID: 9cba75b3-0821-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GISd4GFEL8vXLf5v/9lSvKn2tmQMUWogRTAISxdIdyC/zZWa/f0gVWMsCl4zRv+7BHC+h8OQhDIvdRpDYjEM2yNDRnB4Zey+QKc7xV/HRqIbdPddSA2EdN2vZioMCH9Ji8jAKWGbwD9DZBwmtJ1smGcfmv2AP1lKLMKjB0zYmKhhUUTX5dtOW9LBBYMswU62Xj/GYdU6+zejy2r79GPAFdbQGOnCJ8VM71YHhTFO0Dddjni9Pr4qhr4cPxmdkRk7rCePw7RZD7FHauabbDoCpED4S37WXCypZE7pUFzHQW6PeEZs4plzWGk8iMfizWVk100VEtO+J6q4nbgDh1fxOw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=wh320IbJQxO6ze/dPB0WWfdclKSpmzsopc5TM88YTsA=;
 b=Aq1ujrfnF7KWsZdCI+HeIHMfnfjc+TcAuNo65xbpf1+9nZ/CZDsOuHt/62S73rvijItD8r4/W/J3DEan8uiXskkhmlqVGu3kfVhyn2nYBRo70glpJHU4RP7sqbrbRsYDnglXie4PjMh2xnjy4u15p/VwTyvX2cUQv+CVjKaRD6vOV0uTqc6Gn7m2RSpKtp2E374laireH6/BXF2qvn+Fkl3kWS6ctQvJJ0jdp3+3FBfMXRayHQYy909j+kGXdngKKMtFi4iLe+xILgY2iOj12sypKDszD3n9KOhdLfWKSML2p3LxkR/7Ij79XBBBK1ADPYpRvqXGUXzUMmN6UwIH2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wh320IbJQxO6ze/dPB0WWfdclKSpmzsopc5TM88YTsA=;
 b=vsP8R8hzPglWWZwS2aD2QzmkW0GS9gaus9uVj7Hjh+S0SLI05ve3e/cdbWxZFdGpIcpaKOyXgMhzh7o6q+wKKPn/88X8FkfpnD+Fv4AYAkh/pfgaBVSmmOF0wyYNIotMYMlxPsOMAsNC1fwCmu2fbCxanbsKTvZvGgwlItJ/kqA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH v2 1/5] xen/x86: always consider '/' as a division in assembly
Date: Thu, 12 Feb 2026 15:46:14 +0100
Message-ID: <20260212144618.43200-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260212144618.43200-1-roger.pau@citrix.com>
References: <20260212144618.43200-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0029.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH5PR03MB7838:EE_
X-MS-Office365-Filtering-Correlation-Id: 3adfb911-633b-44f0-8a4e-08de6a457fbb
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?aWF4Q2NsbXpocmk0NklDSm9XVFlHanVrS2cvSlhXcWVoNGRoY25ZVUJhMEU5?=
 =?utf-8?B?QnZ5TWExTi85Sm1yU1ArNjJXekIyK2NCY3A0SmthWDZuMGo4Q1dPZlNkU2Vo?=
 =?utf-8?B?bXA4MW4yRVhYSFBFT0l3N3NTeC8zN09LYU5wS0hSZllqTHRkN3pQSFQ0bVA1?=
 =?utf-8?B?NUFSOE50d3VNT0tYNW5GV0hiYVoxeFZkd2dWSE9UOStJa0lOc3hNaHFzSFdY?=
 =?utf-8?B?bVpkSTFjNXlwYkVwbWdxcm43d1JBZ1RnZFFIYVF1N3ZvVDNyTndJSS9xM0JY?=
 =?utf-8?B?VjgxY09HQ3hORmh2ZFZzeUwxNHBqUm9Nc0FaRXV5TnViZ29lTVpNTHZWOHhT?=
 =?utf-8?B?NXJuOGEyTnRiRTZ2TWRqUElKTERKT05Ia2xDZWtwZGhlN3ZBZ3hUS0gzVXk4?=
 =?utf-8?B?QkRUU1ZveEdXTkF4K2VSSGFRZGRqUDdldmhaY3pzdlFNSVNjQ2tMekRLK0lS?=
 =?utf-8?B?TFJuK2U3b2dvdklkNFZUcXZOYXNEdEY2dmlBSmt0S3lWQ25aZ3BZR3pkK0ZE?=
 =?utf-8?B?c0tYL0V0cWhHVFE5aHRRVXRibzB1a2dFM09FQzFJOGpNSGt1anNMWGlyb1ZW?=
 =?utf-8?B?NEtTQ1NiSkdHZWR3S3g3UENsRnVvUFFqazlvWEUzS2wyd2FVSHZoL28vT1o4?=
 =?utf-8?B?eWd0RFQyYlFib2lpS000ZHdLMzBQR3pvZGZ4NzBZWTdqL0d3K0orZUpETkJh?=
 =?utf-8?B?TnQxR1Q1Y3FpckZvY3krNVE1TEhnYkRiMUl6STY4Y3VNeW4zOEdQYUlGRkVU?=
 =?utf-8?B?RHFRa3c2VVdhNVpMMlZUcStxU25RQS9sMWV0UDFVSUMzeWxwZGNKSkI0NUJk?=
 =?utf-8?B?WmhJUnRRdktuRUQ3ZG5VWjMzL2lWNmVPbkJGQ2d4Y01lQkQ2MFI2QnNSQWxu?=
 =?utf-8?B?N3QvekNxYTlkR3JEc2FsSkZGQys1eTZ4bnppbm9LekV2dGs2STdwdHBPZjF5?=
 =?utf-8?B?ckN5SEpCU01KNkl5MDJKckRBZWhyMXBBVFNUaUJaUmMzeTNWRmlkRFBrdUN4?=
 =?utf-8?B?YW14dkVPUlNNdjVPN0JPS0Z0MVVyd29yUkxaK3FNalNJYzY2LzBEMzk5WTVx?=
 =?utf-8?B?VDNNWGRBbGk0ZnFXckExUUVEQmw5dDJrMGxOK0ZhZkZzRE5OL1VwUDIzWEVI?=
 =?utf-8?B?ZU1TK1FUZXVianRHeldsN3NzMDFseHFBZnBMVnQxU0pKTXk2citTQmxNeXN3?=
 =?utf-8?B?Ulh0VWlzdkJ1N1NGVHo5cUQ1K2I4WGg0bjAzdnRtZU52RllUUU8vVnQwYlFG?=
 =?utf-8?B?dU1CQ0VGUjI2bFFwelRHdkR6cGZuSVFheGFWQzNpVzd1Ukc1a2tBZFRiR0lE?=
 =?utf-8?B?QWNLV3M1aXZ2ZGRZTnFqZ2VzNjlycTFoV05CcjU0QlhrWVdFcHBvSHZ2dGRC?=
 =?utf-8?B?NFJ4ajhMUG9qVnpDSkJ4ZVJkZXN1dzNxcjhZL21yT2UyOVduOTdrQ2NJQ1FH?=
 =?utf-8?B?bnRkdVpjcGVXVFlJYUg4MURrWWFnbmpCdUFpenpKWWFVcXpkNjkxckVNb3gr?=
 =?utf-8?B?b0JHTjZteUcwZkJpZXdjNVUvOWhZUXlFaUY5MUhjSFEyL1ZqMTdBOE9JTWhs?=
 =?utf-8?B?YzJtNU9OSCtWT0FydDYwUk40NjdWUFNlcm8vYzBnOVlQaTRDQi9nN1pBeWVm?=
 =?utf-8?B?Mkd0QldyQWFMdmtsdFB2WDR3eFFoZUR5SUpRU1JzR3FIZkZ2QllqSEhNUmc3?=
 =?utf-8?B?QzJrTmJKQ3I3S25vbmV6bHVPNi9CZWhrRG1RSkNxUmYrNk1OcGJEWGJnVE5Z?=
 =?utf-8?B?VEcyd1NOS2hMTm1PeDFEaDhWbzczNlhsQjk4SU1kMUlDT2ExeXIvMkk0MGpB?=
 =?utf-8?B?cU5LWWg0R3pQMlorZUV2eW1oL0V2MFZiejRGeU4veHlUaWhTYjVZNy85Ri8v?=
 =?utf-8?B?ZFVnb2pBZVNJSUQvMUY1WTM4QTBHaEw2dTJvVjIzeFJqVlhsUXZhZGtyUnZJ?=
 =?utf-8?B?aWVCY0kwQk1xWS9jYUZlajllY0pBMjVhTy93Wk8vWjR3YnJkYkE5OFlTSHZy?=
 =?utf-8?B?cTRWZmlWQnFnMExrYnRUMDhJK2MzVzIzZjluVm5lQXBjNHR1a3pqOTcyUHJa?=
 =?utf-8?B?NDU4bVZQOGNZUy95RzZkcGcweVNhUkJiQVhweHBzZTNGT2h2UnNPTlQrNld0?=
 =?utf-8?Q?ZVIk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZURZSVRIYUx1K3RmOFUwdUJYS0pBNEYwV21GaWxTTVV5MkxNbjZWbDFBeUh0?=
 =?utf-8?B?aTZGaFh2cU5aT2x0UGs2THl5VStxVGxFVlpRanZyZHRRU1k0QlRvQUNaQkxH?=
 =?utf-8?B?bmRpblJNZytHTk84ZTlhZ1BnbERTM3l1WHdPdk43S2k2TThMNE1SSlVKYWVk?=
 =?utf-8?B?cXU5TGZVRS96UENqVHlENCtudkRJQ0o0VUh2RFgxMDlFNkdZVGkwaXRHbjJu?=
 =?utf-8?B?YUFmZE1iczBwSWtEeFFIczRja2w1bVZ3djMrY0srVEt6WHovVzZBaXFYelRL?=
 =?utf-8?B?Tkh3cDV4SjYwbGRvWVV5MkxsNTJPRmpITUZBNW9xbG02QTdRKzE0UmVPbkdJ?=
 =?utf-8?B?eXNrV29hZG01RVZzRWx3T0xKQlMzTjg3ODlIbUFNNDlQalBNRFFOV1Q2Y2lM?=
 =?utf-8?B?S2NGcUVjSGdvNDgxYnp2ek1QcWJLMHViZ2g0YngvazB2M1pDZ00zMVRHVUN1?=
 =?utf-8?B?R1Y1c2cxLys0YnN4VFRlbWcvaG5vZXhtNTQyZTUySWFzMEp3SVdqRnFLZ291?=
 =?utf-8?B?Mk50eTF4ZktlZkVRTUVlQStjdjFOYnpuYzRhb2tPTTNsRmtyRkxTVkpxYTFZ?=
 =?utf-8?B?b2w2b01JWk1mOTBzNVVJQjdTOE9aUm92di9lckJCSVF0R1p1UGhrOG1mUXp2?=
 =?utf-8?B?WlZGUTAvRlBPUHEvUllES2tzUXR1U2RVaTMvRjE2VG5ac3pNVWFXK2lxb1lS?=
 =?utf-8?B?SjVMUXJhdklxZG4xVytncjljSmFSTjc2bXFlZndFbStGNXE2NE9pSFE1TkFn?=
 =?utf-8?B?Vm9OZjJFTnVndXZXQkJKUTBkTzZWN1hBV3ltZ1VrN0VoZ2tCemhaNVN2SVFU?=
 =?utf-8?B?SkJXT2x5cWhEZ0ZCV2lBeEhiQkxUNDBwZjQrcDVIdXpEaElsTkhjZWZ6TW14?=
 =?utf-8?B?NDF2dXlBV0N6YXBUdGZ5NzlObmh3dlJtLzEvWVpZWDJ5SG9TUm85MEJZd0tO?=
 =?utf-8?B?R3BlUmMrMWdzb1c5Nkp6STdZWGc2WXpMTHNvaE1MM2Q5a09EdWJrUUJ6Y1ZM?=
 =?utf-8?B?T3laZ0NLMkc1aXFXeEFPdFFUZ1AwK1pxdUlGY1FDcDZwZ2RranRPNUZTcmpF?=
 =?utf-8?B?cnEwYUlld2o5dlE4cnN6Q01oSFUvUEF5SysvZGlzbU54ZE5XWjdMaVJ3Q0Qz?=
 =?utf-8?B?ZnZDRWR5WE1zQVlyNGF6ak9XTmNoUXBoMXVuVWo3cnhBSklEckF0UW8rRzUw?=
 =?utf-8?B?YmVHQ2V1L3o2YXpYMGl2Y1JQT1JEd3ZwMVhpbmVjNWZBOWtIQ013TzE4aDhi?=
 =?utf-8?B?c3V2QlAwRDRiVjVlUWpPUTh6cnhRRVk1VnN2cVVGRFY1V1YwRGxxd3F5QXJv?=
 =?utf-8?B?UEErTHZjYnd4QUcvYUJNLzhDZDdnaHZtYnBETmpKdlpVcks4MzJnbDNzWkc4?=
 =?utf-8?B?aHA5R1JxMTFzWWdidjI0Vk83ZGxKbDZoazhEckgwYVBuMEs5bEdWL21vSi9L?=
 =?utf-8?B?ZkdTYm44MWF5U0xVdmZTTHJyalcxWTBTbGJVWVpHU253L0N2cjI3S3MranZL?=
 =?utf-8?B?ZG5OVDBpYXZFUmJGSnVqYWc2WG93c0ZBWldBTGpCdkQ5aUJyTW5EUUR0MVZC?=
 =?utf-8?B?blpWclR6SGNNVDhIY0hSSC95WWhVWWpiR1NMcHlDWHJPNFpGRWlGRStzVys1?=
 =?utf-8?B?bkVRVVFXemdiSXFzeGNGbHhOcW1WaUM1Z3FUc0ExRStwNDM3LzMvUWxmb01V?=
 =?utf-8?B?bzdwRURZQy9Vc2k4Nmtpbk1UVUVNOWRoRTZPYWVxN296QmN2WXJucWJOMjBC?=
 =?utf-8?B?ZUNFOU5GZEFtVm5OMnJnNWMzTW0zUU10TjBGTERWWGFRV1FKbWNIS1pVeGJk?=
 =?utf-8?B?Nm1DTFVkM0d0dUszTmJ2aDk3WUxINENGV2xkMitQT3RiSXNYZjVXTzJ0VEpW?=
 =?utf-8?B?Q1E0ODdtYlBKNjRsWm9oNW96b1FvYTRRb05sVkhuUmdramtqTUttTUMvTFph?=
 =?utf-8?B?cGg2RWlkVFFxTU1hNWtma3U2VVBSUHZZc0dvSnhIK1V4MUQ5VjJnRlU5Wkc4?=
 =?utf-8?B?MWV0SGgxRzlGSkJrNE5HQjZ0Z0pFaGthMjBZbWxCR1lZWGJqSWRJVm9YNG9v?=
 =?utf-8?B?WFpHVFZiYlV6R2NJZG1Ta3M0RThBb2VtSGZwandlajJWQ200V052RzN1aDkr?=
 =?utf-8?B?dWpQRWs1S21hUkJFVUoveVZVTmFjSXZiWkpIVjNTUS9xZEZUalZvMUNCSjhT?=
 =?utf-8?B?ZWJuajIzd0hmSUtOMFFqbkdtOWxST1dHK1BZNHJVdEhtWjJtdHJVT2diS0lW?=
 =?utf-8?B?TXk2SDh6MGJPL3lncDFzSW1Sa0wxYU5WNGEyWWtuQkpPRGI0b1Z3T3pwdHp5?=
 =?utf-8?B?ZnV4cE9QbU9iSUQyZ0ZrL3M0Uk9qV0NYTkhDL1czTmlueHo4aEtoUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3adfb911-633b-44f0-8a4e-08de6a457fbb
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:46:26.3622
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +UcHvQq8NeRiqVRtRYumavcULybVQFgkEBG4Q68okwSWoo+SsI0JlknUwrbsyQKNuMXqFKHNN9HrCfstIDZuvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7838

On x86 GNU assembler will consider '/' as the start of comment marker for
some ELF targets.  This is incorrect with Xen's usage, which does use '/'
in assembly files as a mathematical operator.

The behavior of the assembler can be altered by passing the --divide
option; unconditionally pass this option when available to force the
expected behavior.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v1:
 - Move option add to x86 specific makefile.
---
 xen/arch/x86/arch.mk | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 0203138a819a..2e06ae2582dc 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -123,3 +123,8 @@ endif
 
 # Set up the assembler include path properly for older toolchains.
 CFLAGS += -Wa,-I$(objtree)/include -Wa,-I$(srctree)/include
+
+# The GNU assembler will interpret '/' as a comment start marker instead of a
+# divide for some ELF targets.  Pass --divide when when available to signal '/'
+# is always used as an operator in assembly.
+$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--divide)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:46:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:46:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229153.1535170 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXxg-0003oq-OB; Thu, 12 Feb 2026 14:46:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229153.1535170; Thu, 12 Feb 2026 14:46: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 1vqXxg-0003of-KD; Thu, 12 Feb 2026 14:46:32 +0000
Received: by outflank-mailman (input) for mailman id 1229153;
 Thu, 12 Feb 2026 14:46: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqXxf-0003LH-Vk
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:46:31 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e482e60-0821-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:46:31 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH5PR03MB7838.namprd03.prod.outlook.com (2603:10b6:610:216::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 14:46:29 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 14:46: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: 9e482e60-0821-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HDEt8Nkys8WGkSI+raz67/GydavdObuct+rVESTwMqv9FQIP4bDiBXp17kc3Vpa2q0gQpo+g9V5OYi7dsnBmhn0JUi4E9Cqc0uAdw2WrbAEXK0xavr0PHlD5vVLPtOTMtfPu8QSExF7TrV/lTk7w9ifbvps1ssKELv5uayywsbTE1RZ1kf0mS/7las+sm5xiQU90Vb3H8idUmeP+U6U+suzUZZEHTS/dJjoD0M7d+zSifeiW7rFVPVeprFcfR6r4Oc+v27KCnvZ8acWal33Qx3xTQZrJNC1BKUr24ALrq0AkrAzX4n3BIiwIfKFNmnbMK/m4AkJNsp9Fn4FYJJaZQw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/Neh6QaVEtW9q3mlfrOk5GxOs2RNXIp81nmsab9QjLs=;
 b=eqYtf+vbxHd4cnxYgatZZsALnR6LjA92tnj5JFnyjXBPV3JPbS+hWcs9tuiRciTjGVK1hdsnJYk9d0DsTZpGbmA6+R4Rf0LaGHXa3zVH6ufqA4XSC1i1x2jRetp/GpPhixcfMw4Um06eYIy9tRhQxBOyfcLHeRTglkpm8swHRBjshurTQC8GCkKMEwgxxNyxj0ryygOJP24X4sU7AmrfZ1umpO9hvV0Somtpjk1Nd7/fwQj5Xy+KaXrECiFqDGh/pqYbQ3bko+1Dm1usH2iktEi6jdJhfxGWsnpn0wSOH+idwxvlxpqvQ22r0JcAtMRfggT9znIpX5lukTe+muCeMg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/Neh6QaVEtW9q3mlfrOk5GxOs2RNXIp81nmsab9QjLs=;
 b=iHAuGoPwCLPoXenWgigi2WM2oaF3g6eYhXNwdMh+/BpNY/fsY3EgKIl11bEqJv74H7jC1P/OWnNwPTjQYiJ0MeC/QVWRfkRaht8cuvAAcl0S74nciVPc641cyfvckhmOTkGEmqWdw3KzX8fDRs4S9swzmir80ZSaQ+YjPNFHiec=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v2 2/5] xen/tools: remove usages of `stat -c` in check-endbr.sh
Date: Thu, 12 Feb 2026 15:46:15 +0100
Message-ID: <20260212144618.43200-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260212144618.43200-1-roger.pau@citrix.com>
References: <20260212144618.43200-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0064.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH5PR03MB7838:EE_
X-MS-Office365-Filtering-Correlation-Id: f1db19b6-8a8d-493f-1122-08de6a45818a
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?YjAwRk4yTFptWnBXTmVHY0RrUWU0aDkvcFk0Q2RtMHJ0a2F2Wk1saU56Z2sv?=
 =?utf-8?B?WFhYZmVNaHBMTWwrWW1EQTVpWnJJNGlCb1Rya2oyTGtKcnJNd1pqZDdFV1hx?=
 =?utf-8?B?b2h2ZDdsSnBkUkJuZVhxN1JjNzhTTVZSUGN6cnRTejNtNmY3M21kbmJjc1Ri?=
 =?utf-8?B?bW5JbGxhVnVQYXRyRU1MT3lWMEJxck9wSU0xL3NzOEdaY2JORUcyY20wOUNk?=
 =?utf-8?B?V2lic1FmQXY4UWxsczBsUzVTZVFRemtLaGlkVktFNUorUjVWR3pKVWptS0xv?=
 =?utf-8?B?RWlJWDk2a01rcTFHWnRCWTI4Mm5HUWZYd1Z4Z0M5RjdTdHBaZ2dUWW56OWZM?=
 =?utf-8?B?MzhJWXk5ZzNienJoQkRsay9IcHVxZ2hMcEUzMlgyUjhRNHB0ZkJycmQrZFln?=
 =?utf-8?B?QWRob0R5b2ZucFlwU3ROSlpDbGFzRVBGQkxvVEYwT2prOGk1TGM2czRSM3dq?=
 =?utf-8?B?VHhKZ05WMVhNSk9MS05PMW9YbjBFZWVKNlpheUdsQUR2U1NCZTBzUWtRL2lw?=
 =?utf-8?B?VmllMDY0RjlQWVUyMnZZaEVqdjNFZk1JV3M0UUMrMmQvNEx0OVJ4UVRnMTZi?=
 =?utf-8?B?dUhKYVY2L2ZvYURsU1FneDgyR3NkbFhlUSsxZTE1MVhoanFTNlFXRmRvcGRj?=
 =?utf-8?B?RkxrMytnM1hKaER0b0xJL3IxUXV0NXB0WVFac1M3UTVHUnBwZmpFUmdCaHha?=
 =?utf-8?B?VmVEVDZ6T1JVQzhieERlQ0xlNTFiTUlSY0R5TllVVUpDTG1GN1F4bmF6WUpy?=
 =?utf-8?B?dEp1MmdFYjNYOGVIdkV5TkZhcXliZWNGV2JzZkNiUzdldmtpSjltTzBMdnZk?=
 =?utf-8?B?TVpuYzg3MnNUQXlxKzlFUWN2NjB2ZGdDOXRrbDdzOWcrTVlyZ2hYWXJ5eDVo?=
 =?utf-8?B?N0owM2huTjljSTFuUFJ1M0RtVmRnYTMyWStFaERnaUpHWHBwc29EMjNQV29a?=
 =?utf-8?B?VzRNWXR1Vk02dC9jcEtVeHpsd1Ixc1NjdlY1RDJnN0FiY0cyN0RuREpYcnN0?=
 =?utf-8?B?MjkyQTIvTUtac01LSXl4WE9IQkkzdExZRXhqeDQ1aTNJZENMM1lVZ3VKS1Jz?=
 =?utf-8?B?S0VGNFhsWTFhWWVVeVdjM2xqTTFQd2FFTkZ2eG9IR1BkOC9tMmRad2duL3Bj?=
 =?utf-8?B?UGxNbmRBUjQwUlMxY3VxRE4rRU9LWjdoK1dXK0xhc0xLdUxCcXpQdFBMaXcx?=
 =?utf-8?B?YkFoeGlWT0tCU24vQ2NWV1g5YVl3ajVKVEJreDdid2dvUk1NbkFOSzNxQ2NJ?=
 =?utf-8?B?YURTQjdDSzArWUlWRzZDSDhkY2JCQ25lUklJMmJHVHFiaVlCc3VWVFc4R0pY?=
 =?utf-8?B?SjRIbXc5RVZ6aFk1RyszNFcwUStiaFFPRUJqTWxvR2hHY3dIK2ZDWEpLTDE0?=
 =?utf-8?B?SnU0d1c3QzBSQ1Jibk1IaHkzeUo1U3dHS0tORzlMdXVETWF6bTk1OEZheGxt?=
 =?utf-8?B?Mi9YVm0ySlVWZUNIejJVNks2TmpnME05T0xpQ1FoQ3JmYTc5dXZGdXQ5VHEr?=
 =?utf-8?B?cWEydEVROW1wb21LQ1VQWmdHWkZWb2lQSklJckxMaVZ2d0lxdWIzazVMUE9l?=
 =?utf-8?B?THhhYTNkdkJuVVUySUhZTzdJRmhjbFNOaXpyU1NOMHcwSWtDdEZWdnhIMmJR?=
 =?utf-8?B?dHcrYi9ZQ2F3amdqMndhYVloaHZPbXdqN0ZEM3FXQUI5eU1KbzNDRmpwRmJE?=
 =?utf-8?B?SmE1YmRBanJLMmkwZXhCZG9VdjAyZWM4S3puTmJxbWViUU1ySncrZGt5Yml5?=
 =?utf-8?B?dHNoc085bXdtcVo3SjY3bzh5K0IrejlDMW01a0h3WjFjeVFxTUs4VE01K245?=
 =?utf-8?B?Z1k0UlRZaTBDTlFranFKVk9mTHdiZUdhdG1sTkp0V2dXc0xYYkdPcjg1R0hK?=
 =?utf-8?B?THlKcXl6VHU0QnpvY0Q4KzFHWWpBc21oZllSTnVoRENkR1dFcFc2d2R1Z08z?=
 =?utf-8?B?L1dUWS9xYm14elN3MkJCQ1lWUXNEL0VyUUc4bEpKelh5U0s4ZlFiYi9reUV4?=
 =?utf-8?B?OEI4bGdUZytDZFlOYnd4Y1hxSnp3MTFUWXZJK3RxYVVkWXR3dlNhRVJMVW1Z?=
 =?utf-8?B?b1pwZ0laZDZPMXRPUVlHMExYZ0Q1RjBsQ3kxdU8weGZZQ2ZqZHRYRmMvVmYy?=
 =?utf-8?Q?GHPs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QjloTHV1QXM2MCticThkK2k4Q0JqbEdKa3dTbjM2aWt6REtDR0EyNEFNUHd4?=
 =?utf-8?B?eThVMjExSSt5TXRBUVZhbGY5OWxlR1AzNy9rRDFHZzVSd0hSQXdlTHRVVXlx?=
 =?utf-8?B?ZkdXVkttL1dQUGVhRTVWbWc1MkVzQzNjMHhtT2NVTXlVWnVaWG5ldjZ3QTRY?=
 =?utf-8?B?YWMvOEhEWDJhOElBVmZUUjhKdDQrTlBVYWRhR3VLMDROT0xTTDVkMGJ5dEkw?=
 =?utf-8?B?R25YRUlJcTNySEdNTVBTNGhjYUF6OVhhQW04OUhQd0VrZ1lGcU56cTlCdGhw?=
 =?utf-8?B?dWZPTVMxTGpVejBaYVZGdkQza1N4NCtQVHZURERPN2xIbzJRNmEwWHhlbGlG?=
 =?utf-8?B?c3hZZXBRNThmMWM0K0ZWdTlXWUdNeGN5Yk1KRHFFamYzN2xmLy82QWw4S1Jm?=
 =?utf-8?B?d1N0NzhCUWhub3RVUFg0V3FUbnFFRU9PVVp3bzFyU3F0TnI4ZDRwUlRkSU9i?=
 =?utf-8?B?THhSeDV3U1FOR1kzWGcxQ0F0YmJVZUpFZG12QzRiSmxrNUo5T2M0ZEpaTXYw?=
 =?utf-8?B?SWM5K0xUbUZCMDh4RmZJYVNReVFwSngzdEJUZG42ZWo0KzBQN2hYVlRjZzV3?=
 =?utf-8?B?dHFpTWk2NTVQYTgySVAzM0E0L3pWakszcmZ1T0pTWXovc2sraWNGWnJ0dVlK?=
 =?utf-8?B?LzZONUZMRnZEMkZVYnlMVXFSVW0zQ1JKUlE5VFhzdUVicVZicTAyRjFwYTY1?=
 =?utf-8?B?R3lReFoxMHlvSnBsQ2IwTmx3UkJncFZoU0w3T3EvWUg1eUpiTGE1WmVYYXJz?=
 =?utf-8?B?YmhSblljVE95TGNjeFRMRWVCTVNQempCM0hkcFFVajlyRTJ1NEtZU0MvblRk?=
 =?utf-8?B?Wm14OEpxUnVweGVaSUhmNmdIR2lhYmJEbGZMTVFoSm8wWDdaM0FxWWZncDcy?=
 =?utf-8?B?MEorUGZsODdNTWw3ZGJlVHhhUXI4QTlLNWpnV1h2b2RSMC9SdkFMQW9lNFdw?=
 =?utf-8?B?WmlpdEZCM0xwWnd2NnYvcDFyMGlEMTJzZGhOWEZsUnArWDd5c29GaWtxd3Rk?=
 =?utf-8?B?eFZPVEJ3NGJsWkpEcUZ4bVl3am01WS8yb3dVV1dBV1JqNE04Mks0bmIrOFpt?=
 =?utf-8?B?emNRdXMxZERoaG11NTl2dlU0N2J3QktyUWsxMnA3QXloZllRcm9GdmRpWXhu?=
 =?utf-8?B?cWRWdEV3NnA3Nm02clZkQVFsb3pYVFpad0lDMitVQ3FvWGExVGtCd2FlQzZw?=
 =?utf-8?B?bEpGZ3ZHREZxY1FYbXJhcFpDdWpYWUEvck1FeDBadHF0WGZ2bmk2cTdOOUEx?=
 =?utf-8?B?NnA4dnBZZXM4c2d1cG1lalU0bHp4UW02QUNXcnZMT3ArbGJsRGhkL3Z6TVEv?=
 =?utf-8?B?NSs3dkVWUHEwY3NhRkFqQk1kcmU2NUFBcEgybUVGQTFuelFjLzRmOGlZclVw?=
 =?utf-8?B?Vy9ldlpKRW5LY3A3OHNqckQzdWl6UytTOEFnYnNmakgrNGNNTVlEOXFLUXgy?=
 =?utf-8?B?bDMvdURuZVBnZ2RVOG00QUE2Z1ZIWHZya2RsbWJJQWg3c2RYS0ZoallkY3Zp?=
 =?utf-8?B?UzdhY1FuYVRJZmlvSisyM3FTaDF4a2k4RlNPMkNVeGJ1MTJlK0hUUmxrbUVx?=
 =?utf-8?B?enRHcXhkMzlxOEdaeG9xZmhMeTFvc3lrKzJHdmREVENKQVRUUnd3bHFIbldt?=
 =?utf-8?B?OFFoMWZaRTdJb0d3TWJreW9WdkV2UDFtSE93TDMwbGpzNGhlN3pmUktSd1dk?=
 =?utf-8?B?YTN1VWdWR1dnRDZneUhISHZBZ3ZKRUxUMjhEQlorVmFONDFkSG51RTE0allw?=
 =?utf-8?B?SWFDOHVJZU5YelhTOFRMSDk3ejVpTE53dGc0bUM3VjJGS3Z2QlVCbUg0bzky?=
 =?utf-8?B?NFN4Tkk5MjZpQVd2ZG5wTEVzQ213V1pDbVhpQUtjcWlBZ2tTYlNBbVQvNG1x?=
 =?utf-8?B?a3RuUDZMQnlJWW5BY21YUzBVbzJJYUM4SDBPY0JjcGZTMzZnd3U4SU5WV0lP?=
 =?utf-8?B?NkVUT1NGS3NQbU0xMCsvdTNncjJ1ZjlaZDJlVkI5WlhyVWJEU0dNR0tnUzNJ?=
 =?utf-8?B?M0wzNmhzazZhYXVqRjR0YkhVUjl0MFdlcnhQQUY4Y3B4TVFkMitxRWpWNFIw?=
 =?utf-8?B?R2huVVE4dnE4RTFRdWxaTkRuZjQreEtYUkpSOHdWOXhaYzF6b3B4UDJ1dEgv?=
 =?utf-8?B?NVg2K0NONStyc0pVNHc5SXBlL0FPdHJoOVFyWWlVeHN4Wm5PVzEzZ0l2RkJW?=
 =?utf-8?B?cnpqanY0YUJHelRydHc3eHp1UHlTMEpCL2tTRUZFY0ZSd0JBZ0k1bGNYSWFE?=
 =?utf-8?B?UDNPSHl4VDg3bU1LenV5RUVJQTZtN1lkVi9iNk9WcktiWjNRQzdiVDQ2MzE2?=
 =?utf-8?B?dVRtZURyMHk5LzJWbVM4WTVGdk1VWmZwMk1GN3p3MThFT2pnb0UzQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f1db19b6-8a8d-493f-1122-08de6a45818a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:46:29.3609
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0kV0+RZxbT1Nvgqw06j+X6HdOY1DGmE89Iv2r97V++6nh+D1DfFdmsHHAG4cr+gGfwuMY14++GabTE80WFjQHw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7838

The `-c` option to stat is not POSIX compatible, and hence prevents the
check-endbr.sh script from running reliably.

The first instance of `stat -c` can be removed by fetching the section size
from the output of objdump itself, which the script already parses to get
the VMA values.

The other two instances can be replaced by counting the lines in the
respective files.  Those files contain list of addresses, so the size in
bytes is not strictly needed, we can count the number of lines instead.

Suggested-by: Bertrand Marquis <bertrand.marquis@arm.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
Changes since v1:
 - Use $(()) to convert from hex to decimal.
---
 xen/tools/check-endbr.sh | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/xen/tools/check-endbr.sh b/xen/tools/check-endbr.sh
index bf153a570db4..aaaa9ebe6bd7 100755
--- a/xen/tools/check-endbr.sh
+++ b/xen/tools/check-endbr.sh
@@ -92,14 +92,13 @@ ${OBJDUMP} -j .text $1 -d -w | grep '	endbr64 *$' | cut -f 1 -d ':' > $VALID &
 #    check nevertheless.
 #
 eval $(${OBJDUMP} -j .text $1 -h |
-    $AWK '$2 == ".text" {printf "vma_hi=%s\nvma_lo=%s\n", substr($4, 1, 9), substr($4, 10, 16)}')
+    $AWK '$2 == ".text" {printf "bin_sz=%s\nvma_hi=%s\nvma_lo=%s\n", "0x" $3, substr($4, 1, 9), substr($4, 10, 16)}')
 
-${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
-
-bin_sz=$(stat -c '%s' $TEXT_BIN)
-[ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&
+[ "$(($bin_sz))" -ge $(((1 << 28) - $vma_lo)) ] &&
     { echo "$MSG_PFX Error: .text offsets must not exceed 256M" >&2; exit 1; }
 
+${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
+
 # instruction:    hex:           oct:
 # endbr64         f3 0f 1e fa    363 017 036 372
 # endbr32         f3 0f 1e fb    363 017 036 373
@@ -116,8 +115,8 @@ fi | $AWK -F':' '{printf "%s%07x\n", "'$vma_hi'", int('$((0x$vma_lo))') + $1}' >
 wait
 
 # Sanity check $VALID and $ALL, in case the string parsing bitrots
-val_sz=$(stat -c '%s' $VALID)
-all_sz=$(stat -c '%s' $ALL)
+val_sz=$(wc -l < $VALID)
+all_sz=$(wc -l < $ALL)
 [ "$val_sz" -eq 0 ]         && { echo "$MSG_PFX Error: Empty valid-addrs" >&2; exit 1; }
 [ "$all_sz" -eq 0 ]         && { echo "$MSG_PFX Error: Empty all-addrs" >&2; exit 1; }
 [ "$all_sz" -lt "$val_sz" ] && { echo "$MSG_PFX Error: More valid-addrs than all-addrs" >&2; exit 1; }
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:46:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:46:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229154.1535181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXxm-00049R-5U; Thu, 12 Feb 2026 14:46:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229154.1535181; Thu, 12 Feb 2026 14:46: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 1vqXxm-00049I-00; Thu, 12 Feb 2026 14:46:38 +0000
Received: by outflank-mailman (input) for mailman id 1229154;
 Thu, 12 Feb 2026 14:46: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqXxk-0003LH-Pc
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:46:36 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0efb225-0821-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:46:36 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH5PR03MB7838.namprd03.prod.outlook.com (2603:10b6:610:216::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 14:46:32 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 14: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>
X-Inumbo-ID: a0efb225-0821-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=anTxAp4C4+ud2BAcKYPF+Da+FRy3CmaniMVsxffPZt29QxqgNay+FTHdjFRJNq9UvzhZlRlx27LRcf8dDCGXF+qLy3oaPhUHgFxtZ++ck5zW4eGwrEMAsnF+cb5537VOkqVjdRdh3h+0O+JCRYQlpHddoEr7X4/MAm5HUOh3qSaBUDoDFG4lSQ0HimKqGc+IJJgbxRHTe9B/R2TkdH8rD5K8AABg5bL3Bz0uDDdCQAJCWe+XLqvuLHLYLYk6/1ykKwNjd2TogV4fUGbdtDjUBUJhleWKemX2Pl1E8irHRg90ffwniNC/QaYc5ARHgI5ZLPWLMOkuFcIGQdJoUhivkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ueHdDOHV4edNRfS5FCg5d5jf3XY0BH0ITR6fmeHzau4=;
 b=O0bGccRrT4VS3ZaDqOfdyi4ykuBB23fyXFkW9LZT4fNpkmVVRXqUWTw66pvZzXLtybrn4aLJ2uei6e+iTKqmK/5IxY+ZASwAHT7RlCWdwNBl3cNpe/ElRV5MbRENe05YCcOrNi8jhuqivN7jxbgIOsMwGcsH4f6irmpNAU8aukJqpywq7zVVcBhajyqVBa4qVlNNbywLagfUmc2B5nBgIAF+63ggMIl4Buw9WK68HK6TMds9qAjTTkrpNq8CVTmB6P9QHlXvpSpx560ukq8H/4fHg0oeX3aYgIOzBxHiDJjjNeViUKN7bGC6nG4k93D7SEH8zNhvPunmTuR+Yx3/PA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ueHdDOHV4edNRfS5FCg5d5jf3XY0BH0ITR6fmeHzau4=;
 b=R6RlbxCkvjcQrG199D3gVDtk7eBvydkpokIj6XGbLjlURUJ41ZaOwr48SzjC01rwtMOeLrazijPOzMuv4Ima2yqBhICy8jLQtlN850GHpLAo9a10BekY3qVdfZPYIas3Whuay3AJjG9ZlqsSJjgkLM4TaVj4De4b5+5Bsozz/Bo=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>
Subject: [PATCH v2 3/5] xen/tools: fix grep reporting 'illegal byte sequence' in check-endbr.sh
Date: Thu, 12 Feb 2026 15:46:16 +0100
Message-ID: <20260212144618.43200-4-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260212144618.43200-1-roger.pau@citrix.com>
References: <20260212144618.43200-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0031.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH5PR03MB7838:EE_
X-MS-Office365-Filtering-Correlation-Id: 7ded081f-96c3-4afb-df24-08de6a458327
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?YmtFNXVacjZEVmJqMUJqVXZJN1N6OWtKUE53V1N6cEV0ZktiT1pDUnhWc1Qy?=
 =?utf-8?B?ZXZlN0pxTlcxRHpOREpFa3l3Z1hUUG1yWXRkRXl2eGlFVCtQQktsN1M4bEQw?=
 =?utf-8?B?WVk2cnZET1VHbGZLdmF4UXJjbnpIeVVIR0txZGxWc1J0OW8vOXNvSGtqLzdo?=
 =?utf-8?B?RU1PZ2tncERMY3J4OWlzN3lVNHkrcWR4aWZmSUNPUXpHTDUyWWlQbCtpS1Er?=
 =?utf-8?B?MmlkeE9rdzFNeGt1OGFyK2dDaDZVUGNjZ1FhTjR4UHBmWk1CYWx1eUlML2pX?=
 =?utf-8?B?aGVVT0E3cm1uUXRkN2JicDRXS01GcVVkSG1vbk9nR1lBM2JSZVI0cWV5OThE?=
 =?utf-8?B?TDNqSGszczVTZUVMTDdubmYzMWtxaitXOTJOcEhSZkd1THNPekpMRFdUSE9P?=
 =?utf-8?B?VjEzY0tha1B4UFRJejl6VWV1cVVPK29Ga0FuM3I1RDY3RmZRaXE0dE44NHhG?=
 =?utf-8?B?bUlrQVBXUFVieVVSb0l3Q2lqc0ZBWE04UE9PbTNmL0dva1kxa01iZ0tVOFdM?=
 =?utf-8?B?Wk04a1cxSzV5cU9iek9rVkZmNTBXTDFBRytkZ3JPb2x4dTFKRHhwMXBhRXND?=
 =?utf-8?B?Y2psdEVRZTNLQnRrSVA5dFhaUnBDK3JtZ2Qwd0RmL0trRllMSWNVS2JGcXda?=
 =?utf-8?B?RC90RjBnT3pKNFAzd3I4YVpWcWZLekEyN2p5bmNRKzhaVGlXYkg4cktCdXli?=
 =?utf-8?B?NWVVcGZ0T0xCa0hvVzA5ZTVIM2lQRFh0ZVB4eTNsNkU2K3cvY3ljUkwrMFMx?=
 =?utf-8?B?ZWgvQkRYSThkRm1sc0E5aW0yWk02UlFFV1FuWUE1YU9qZmUyaERMYy9oOWRx?=
 =?utf-8?B?YitDNk9GRkRORCtZWGd2ME9vNnExZHdQbUQ4WVhzUWl3NE5aWGFESmdEM3Va?=
 =?utf-8?B?NlBWVlRrY3k4R0NTSVp4d01IbGQ1RmdURjBlV0JWRkNvaGZCT0hMdjByT3JV?=
 =?utf-8?B?bnd5NXlaem1GTW9QblR2ek9QeE1XN05YTVhCdWJZWDFUamdFVkpmNGNYSkZG?=
 =?utf-8?B?MGJET2pUNjVCaTViLzIzQ3A2eHJZTmgySEZQczZ5OUQ2QVVXYStTNkpxS2JK?=
 =?utf-8?B?SUVRcFFubEJ1eDR4dDdqNi9udnJKcHd1c0dZK3NDQVhnMHczQUpPMGlwMWMy?=
 =?utf-8?B?L25aa0FMeWxKQnZ1bEFITXRRdFdJaklxTktSQlpWYzVBY1ZSa2ZGNGx0WFFK?=
 =?utf-8?B?OU5iZ0FwNVl0M01jRVU5am51NGRTbSs1bDY0bHh4S0oraFJkTXBrUTFHZlAw?=
 =?utf-8?B?b1NoMTRuZW9WRDljRWNTSFFaSW1RMUNLQ2hrcWpBRSt1Q1RxWU1Pc3F6TkJE?=
 =?utf-8?B?azZ4T1J3d3pqUy9HaU9paCtzczNjNG5HbkRIQVNQVjZnV0ZuNTI3bFNnZFRW?=
 =?utf-8?B?eE9LZFlqZ1hld1RRUkJJREVsbUNSOUNTamE3RWh0bzZhZzJHQW5wOTNLaGdj?=
 =?utf-8?B?dUhCanhNNE1mUzliUVZrU2NSSkF5YWZLSmEvQ0NoK2MzNGxJK0p5SzNDcXdW?=
 =?utf-8?B?TmdpOTlPY1AyYzBnY00va0JUenc3R3laeURWZnpZRHBLNEpPWVQ2bklTTncy?=
 =?utf-8?B?eUNjVHFSRWlSSyt5KzZJYjZjUzBPdmYxQjJOL0k5YWdneTF3WXphYy9rWTJY?=
 =?utf-8?B?Ly9lc3hvbTFZRlBheEtOZkdRNStMZkF5ZGNYektXbDkzMTA5dFArWWhBWS8w?=
 =?utf-8?B?U0k1bUZNbHBQV01oRUtEWHdpYjViNlFxZ0VLK1V2M3NhclQ3LzFScTl6dHMx?=
 =?utf-8?B?QjhqWWF3RUhmdFFRVWgyNEV1c0lLNmFtdlEveGw2M2cwU3V4aXhFcnNqZW1n?=
 =?utf-8?B?aTc0OEE5VFJ0TWpjVDZHQ0NSVVRoVC9TbTFLNTV4aHJkemJ3ejVIa0tqMUNU?=
 =?utf-8?B?MDl0SS9Mc2hzajA5S3lhc3V4QlN4bmp5R2NoNHZIYldPWlBIakhiMVV6V01W?=
 =?utf-8?B?UWQzcGNtbHJLMjVoNDF0RHNkdzJZYXc5NHR1cHk3UDA3cGVXbHB4SkN1N2Jo?=
 =?utf-8?B?azBvaG4vK0ZaMFRWTjB3ajdoWFUxU1hEa2hycCtrVzBEdk14YlE2bVg4YkRv?=
 =?utf-8?B?Q1V0ZUJWS0NoZnIwMGhNYmxVdlA3eWpoQ0U0bGtkMy9USzF3eEpPa0VqemNt?=
 =?utf-8?Q?Sxtg=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dWdkWHpOZkZwd2RBL29JZi9LSVQ3ZzVEYnpiYVNtMERhV1NteTlLdHZGRmJh?=
 =?utf-8?B?ZEdFMFQ3OSt4dk9ZemhabDZaRzNqbmZRNGNmNHFsRFd1T3E2WjUwUk5UV1A5?=
 =?utf-8?B?T0ZCT0FMNHNFeWdFYVZJbE1kUzdiVjVKWm9JdVUrUHc4aGR4U01tMTNKK2Q2?=
 =?utf-8?B?cmtRLzFwVnVWMXJRV0tGU0ZLU2JUd1lSRkZJVnR3UE1VcUVteDNEeDRjendX?=
 =?utf-8?B?VXlkWkRINU15Unc2T1JmUFRGWEJpcDhkSHNRT0ZuM3UvL1hLN2FnQmxyWEVO?=
 =?utf-8?B?TzJETXNRTllIenEyaVdxVU5KRWc0bVc0Qm4xbENIMVpPSzFFWmxsbmNXNHIx?=
 =?utf-8?B?ckdDMzR5VVdVQ256SlVKSFBha2tSRHl0N29uNmFPbUszWHRaQmpJeXl3dFBT?=
 =?utf-8?B?NGgzWGRCckRCakExK2JtazZEdzhwVkNxdlZwdUV6Q1ZiODRTSUoyK25HMmZr?=
 =?utf-8?B?T0NEZjhncGpvS1VCanZBNW41ZjlteUZJRXpEMThGVHhvWDlZdVgxd3dpNFlu?=
 =?utf-8?B?ZEhSY1h2RzlIWE9tZUpVUTZMUW1nNUNVQlYydDVkQ2p0ak5Bb1VIN1VZY3Z5?=
 =?utf-8?B?OXNtTWlWR21uOHFIVEZ2RENNcVA4NStDcDBJdFE1V1VGSEdCL04xeFhlMFpz?=
 =?utf-8?B?czJ6V1pBb0p5cXpHSEVQY0thcWlPSTE1d3Q3eUZtUk8yN28yRUNKQW1TeldL?=
 =?utf-8?B?R0loZnl6QXcrOHVCTUkzZGUyVDdzU0xlb25iS1V5NFVuUWQwdCtQNDF2dXdS?=
 =?utf-8?B?YzJtbW5CaUxLdldlWHU2aDVSZ3ZyQ0xyUG8zazVncGw4azNMNTkxUWRnUlQ1?=
 =?utf-8?B?dHJTK0l1U1JHRHBsUjc3eTZVOVNwSW8wTDV4cHFZNm8yMTZsWDB2b05vUTN4?=
 =?utf-8?B?ekFPczR1ZEF4STRZbmFUOVdRdnprMDBFbTRtOWZjSGdyM2g3YW8vU3RGMWox?=
 =?utf-8?B?aGFtbnlWcmJ6WVo1SkwwV2s0cklud3VIOXBGL0gycmJnejZOWjQwYmJNK3Fs?=
 =?utf-8?B?NUxHMWI1L3hodmQ2ZjVMWHlTRWF6UGtBbmtKcVRiNEd2VnJUUDFXTXNoTHF2?=
 =?utf-8?B?b21HZ1FMRWE2a1U4SFUyV2srRkhEbC9Da0pXTUp1dmc2b3pacmY0cWYxNERB?=
 =?utf-8?B?c3BNSzNwemZodUxoeFI4Q05qUXFvMlpOVTVyZ2dYSEtONitiUzUzakQ2WFJl?=
 =?utf-8?B?SmZjWlEvMmVULzRJVXphcmRaQmZzTzIwcjFIOENDdG1yNEFGYU5US0NqWThF?=
 =?utf-8?B?c0hiRGg5TC9XY1psU3JVbXNUK2dMNVhsYThSQWs4Mm9nc0FUalIwdHJaMUh3?=
 =?utf-8?B?MnkxRzFwN1JUNUQzelMvZnJLb1pSUUlZRzcxVk1pZmQ2b2F3WUFzNGZ1YUVm?=
 =?utf-8?B?eTV6d25SNm80Z3hFQWtsNml5NktQWG5OSEFFR0p3VGdSeU84SWRDVWNOdk1j?=
 =?utf-8?B?T3VhQTM3SG93MWozQ0Q4VEJaWEcwY3pmWXN4d0VEb0xhMlNYM3M4ZGlJZE9t?=
 =?utf-8?B?c003VWJKeVhOOFJlSk5lSGY0RUdZMk1kYU45SFhmSGlvdk1kMkp3VFdmdjI5?=
 =?utf-8?B?RkpFRE10TEVGUkp4MHBaZW9IUFEybVQzeW0vcG1jc1BWQm9OQzRMU0wyMzBh?=
 =?utf-8?B?WjJ3V1BmY00rbDVJT0FPOTE0cmhQeVBZY1R6bnoreXdJRmJ2bWFZM2dSUDc4?=
 =?utf-8?B?YVpyWVhpK3EzK1hmb042QVBsTWJHeG5YSWpWRE5JNllpSHU4NGpoamlCUmJr?=
 =?utf-8?B?RkJ1T3dueHIzM1pSbDc1NEtHWGNSWUVZYWZZdXpkS3hML0ZzbUNEYXlVMWkz?=
 =?utf-8?B?Z2UvN3c1TC9lUkMzWGt0SCtyM0NJRnJMdjlyTnJyTE16MUJRK2xibXpKYWhx?=
 =?utf-8?B?SEtKSFloTXRvaS8xNllNYWtvQVJRZk9ubVVhK3FLbGhGVGl1SzQ1WFk2S3hk?=
 =?utf-8?B?S3JNSGJldFJyWW5Lb1c1b3UxZlQydnBBcm00NVRwZmZQd1haNVBOY2w0T0Rp?=
 =?utf-8?B?NnpmVDl1emQ3NEd4ekR6aEY3ODJ0UlFDUlF3ekdkK2MySUY3Z0dVSG91aXV3?=
 =?utf-8?B?VTl1NWdja2p4cS9pYkJlYk0rMC8xUmRUenRBczhNS3RCalJUaEZsUDloVGVP?=
 =?utf-8?B?Tm1nQ2tKejZBeURSWEhFYm5ydVdjekcwYzUwSUE5THIySXR2NTN0M0oycFFk?=
 =?utf-8?B?UDh3WmlQb3BlY3RjVEdoOEZqdGdoaUFsaW45OHFVaEhLcFBmVEZFWDlHSC9E?=
 =?utf-8?B?RFVrZDhRbEhwTFU5RkJ3ZUtlM2dTYVMyeXF0bHNUT0FmQjVlblc5UEV4anU4?=
 =?utf-8?B?Umk4NFBDT3E3Q0hlSW9Ka2hHcVh3eWZtaVdleXNnSDZTcmw1UzliZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7ded081f-96c3-4afb-df24-08de6a458327
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:46:32.1076
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jMgvK9npSMWYHALEk/JWMp2eDEhwUfiMk0hCWZzmSBK0Zti6ZOfXtOX8LDG34z08X8P+MUvMb2QaoeGhb3B91w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7838

On macOS the default encoding is UTF-8.  The binary encoding used by the
grep matching pattern is not valid when processed as UTF-8.  Switch the
local to C just for the grep invocation to use the binary match pattern
correctly.

Suggested-by: Bertrand Marquis <bertrand.marquis@arm.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/tools/check-endbr.sh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/tools/check-endbr.sh b/xen/tools/check-endbr.sh
index aaaa9ebe6bd7..9346fe95c791 100755
--- a/xen/tools/check-endbr.sh
+++ b/xen/tools/check-endbr.sh
@@ -107,8 +107,9 @@ if $perl_re
 then
     LC_ALL=C grep -aobP '\xf3\x0f\x1e(\xfa|\xfb)|\x66\x0f\x1f\x01' $TEXT_BIN
 else
-    grep -aob -e "$(printf '\363\17\36\372')" -e "$(printf '\363\17\36\373')" \
-         -e "$(printf '\146\17\37\1')" $TEXT_BIN
+    LC_ALL=C grep -aob -e "$(printf '\363\17\36\372')" \
+                       -e "$(printf '\363\17\36\373')" \
+                       -e "$(printf '\146\17\37\1')" $TEXT_BIN
 fi | $AWK -F':' '{printf "%s%07x\n", "'$vma_hi'", int('$((0x$vma_lo))') + $1}' > $ALL
 
 # Wait for $VALID to become complete
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:46:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:46:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229155.1535189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXxn-0004OO-Bz; Thu, 12 Feb 2026 14:46:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229155.1535189; Thu, 12 Feb 2026 14:46: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 1vqXxn-0004OF-8F; Thu, 12 Feb 2026 14:46:39 +0000
Received: by outflank-mailman (input) for mailman id 1229155;
 Thu, 12 Feb 2026 14:46: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=Yal/=AQ=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vqXxl-0002nh-IF
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:46:37 +0000
Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com
 [2607:f8b0:4864:20::32d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a0b02eb6-0821-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 15:46:35 +0100 (CET)
Received: by mail-ot1-x32d.google.com with SMTP id
 46e09a7af769-7d44b2df00aso3284567a34.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 06:46:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0b02eb6-0821-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770907594; cv=none;
        d=google.com; s=arc-20240605;
        b=a5w+epA7rWy4VBQNuzfm34M+2iVslC7X7Sx3Jjw/OC8CY0TCOPNN/xZOBYzAK6BA3x
         ZbSSw04XRAw5KEUYW2zTin+8igwuOx7EzIOEf8XL+MrDu6sNVnfMODJFwQKR9t2CeDkf
         h0HM6y0IuVh79AQ4BcFLmy+LLCZhsyXEScZuo+CZoRL5Gh9e9o7E/uJPfglYFPeMDvXH
         BD7FIv3ufn7eQju9IepK7ao334j9fJ7qfA+rjMKtYV/cn9xFKej7CRBmxGTyUKYnZ5Jm
         jbhf6BlkpNEXWOI/8K1X7235EciEXvZp/6eRCPs7h3TgVedKwOzAHAPjeFhpCxQ6NPBY
         c7mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=zrDF7xqizXAwJ8veOYffIQY4VqbAAu4CVWWB5hv0DxI=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=LzBSGUd83wYmLKaMRl0rSCnFjZNkly6+a8MF6Y4SGtaANW0DYKhK0822VE5QflxOaC
         J2POG3A2KvfCD5hsPLwmrshytgwJBA2sHVUr3CQOGUg3fmXr385zHZ2n3Riap+8VfDQq
         R4Wclz+vrJ8GjcEiFp2dnmulJeR/HpuMKq2jE7fQp3UYTGckRrkRKU46gne8KfTgU/be
         VPOrxkI2v+9dvuNdnmalpuqmb09QAVqj2kqTqojFaI74nyecuCVYDb3nkMA+3Zj60ikN
         e6qDUTtouhaDAWDx2/b03JnYYvFx1sCxbG1N3ZW+KinbqNCjWPwpoDl2j8O6BnshFmN4
         7m6Q==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770907594; x=1771512394; 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=zrDF7xqizXAwJ8veOYffIQY4VqbAAu4CVWWB5hv0DxI=;
        b=RMSObuzXuDcNLNN1w6OejAXZOFf1LLbycXAf4gAtO7c4WfJdKRLssPC4P6JQTd9gZa
         0qsWh/fCqxRXCLK/fA49Z3xofujpGGbMhK1WP61kw1ShmDbvTSBwk6JpPQ48lAp3wNzf
         f0qtp7A9lb1k117S/dwsNZX0SO8MIfuVrd4jPCWbFxKgxLgIu+XM2ZdsGbQM1JAE4P+2
         N3+Fw8aH0bXuTBDQo7S+V5PMjCr/xHe7mlcW+AicfeMF/8YwnpBqAFH2SiDpJ46RrjCB
         xco2Z8I7mDMAvWEUMgnpEM6eTthjgUPOrcW5hUOnWmq9w6lYIlOIqMFc7GNCVGnmXtXe
         mZmA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770907594; x=1771512394;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=zrDF7xqizXAwJ8veOYffIQY4VqbAAu4CVWWB5hv0DxI=;
        b=V28XsRipNWHErQ3noAN/x8OEX2CUkzf4aTTqs2154JAZVqiVibd8BjbvxYoULdwmM0
         swz7ZOey1eY7AbUsBMemAPOM1qKaK2GYzbfJl40e3Op686Jwr37lZGuSvRX8DSXIPMgY
         uxmxaiSlCH5d5seh+jvBpMdyOXKxs5u5RkXQfTccn8HPSjILr6l+jQIdwttnoYtUYqub
         Nz9RLYZP/hrAQxYPwCbXv83zgNoVIqJMexHmujnCew/JC33EMYL+dOWV/yjyhaw6A4py
         Bh9zhahw5Com5AF7xXKnkkVNR8MQj2IaytT2lJtOYCP1oLOu/c2EQgyIDB3seH5G/NdE
         6awg==
X-Gm-Message-State: AOJu0YzEHGQ1s9dULmvZ/HqXNnHt2Em9HeFG1SUEJgfd7/E/uSznPWpm
	y3VixL9piazfZtlBYynxksAcv5tnZQD8+lHeqlEfI1fUbEwh7OYDAZSrD9PET5IqAt0S0h/VPBD
	w/K77BstQWjKR5ZbwOYJp4BfQpAHTsKXTGe+SYbvgnA==
X-Gm-Gg: AZuq6aIz6yAFRWyvWvrE2TcQ1DogViTXI6iGAZdtQHFx3GbyMXPlfmREw/KSx3pKrwW
	1I+2PL7bSewUaG62Mq61qEV481hbRz/l391pM1LK7k6mEEx3k0hp1Qw2gbQdB0gW7Npjyd3rfSY
	oplyQ1NfBSAb/bf9VxMdy8N7k1nqsXVslkZYFbayrXVXFVouaZD0Uq+CERBphrntCDB1VRAwoVf
	QWOyxOpKRA5DNWsZ1K6yINLfnrAjaq7cVmpMJz00CxnQtFiXPgtPhYpGy0yIOk7zYiNbv6vKOXN
	nE3Q9GIy4nfFPcotmAU3+HuOSMweZrCWtp4LtQ==
X-Received: by 2002:a05:6820:1ca5:b0:66e:7aaa:be64 with SMTP id
 006d021491bc7-6759b9b445amr1400449eaf.55.1770907593967; Thu, 12 Feb 2026
 06:46:33 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770826406.git.bertrand.marquis@arm.com> <ee4ae1ba137aca30b9e6e53e6a2a07f84fac9c56.1770826406.git.bertrand.marquis@arm.com>
In-Reply-To: <ee4ae1ba137aca30b9e6e53e6a2a07f84fac9c56.1770826406.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Thu, 12 Feb 2026 15:46:21 +0100
X-Gm-Features: AZwV_QjEdI2-za8UIiLcMsNddFXfzchzJxx4MlgMROAMdBQ_0PUzMzl7tXN62_8
Message-ID: <CAHUa44F2fAwg+bUUTaYNjBMtvnT1z3xAeDAN9wjcYLdb9dUpYQ@mail.gmail.com>
Subject: Re: [PATCH v2 12/12] xen/arm: ffa: Add message parameter diagnostics
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 Wed, Feb 11, 2026 at 6:16=E2=80=AFPM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> MSG_SEND2 and direct request validation failures are silent, making it
> hard to diagnose invalid IDs, oversized messages, or unsupported
> destination types.
>
> Add debug logs for parameter validation failures:
> - invalid endpoint IDs
> - oversized messages
> - unsupported destination types
> - invalid sender/receiver combinations
> - ratelimit MSG_SEND2 busy failures to avoid log flooding
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
> Changes since v1:
> - add a comment to explain ratelimit for BUSY in send2
> ---
>  xen/arch/arm/tee/ffa_msg.c | 49 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_msg.c b/xen/arch/arm/tee/ffa_msg.c
> index 928f269f6c3a..1eadc62870f2 100644
> --- a/xen/arch/arm/tee/ffa_msg.c
> +++ b/xen/arch/arm/tee/ffa_msg.c
> @@ -4,6 +4,7 @@
>   */
>
>  #include <xen/const.h>
> +#include <xen/lib.h>
>  #include <xen/sizes.h>
>  #include <xen/types.h>
>
> @@ -100,6 +101,7 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_r=
egs *regs, uint32_t fid)
>      if ( !ffa_fw_supports_fid(fid) )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> +        gdprintk(XENLOG_DEBUG, "ffa: direct req fid %#x not supported\n"=
, fid);
>          goto out;
>      }
>
> @@ -108,6 +110,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_r=
egs *regs, uint32_t fid)
>           (src_dst & GENMASK(15,0)) =3D=3D ffa_get_vm_id(d) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: direct req invalid src/dst %#x\n",
> +                 (uint32_t)src_dst);
>          goto out;
>      }
>
> @@ -115,6 +120,9 @@ void ffa_handle_msg_send_direct_req(struct cpu_user_r=
egs *regs, uint32_t fid)
>      if ( !FFA_ID_IS_SECURE(src_dst & GENMASK(15,0)) )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: direct req to non-secure dst %#x\n",
> +                 (uint32_t)(src_dst & GENMASK(15, 0)));
>          goto out;
>      }
>
> @@ -166,7 +174,12 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, con=
st void *src_buf,
>      /* This is also checking that dest is not src */
>      ret =3D ffa_endpoint_domain_lookup(dst_id, &dst_d, &dst_ctx);
>      if ( ret )
> +    {
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 lookup failed: dst %#x ret %d\n",
> +                 dst_id, ret);
>          return ret;
> +    }
>
>      /* This also checks that destination has set a Rx buffer */
>      ret =3D ffa_rx_acquire(dst_ctx , &rx_buf, &rx_size);
> @@ -199,6 +212,16 @@ static int32_t ffa_msg_send2_vm(uint16_t dst_id, con=
st void *src_buf,
>      /* receiver rx buffer will be released by the receiver*/
>
>  out_unlock:
> +    if ( ret )
> +    {
> +        /**
> +         * Always print other errors than BUSY but ratelimit BUSY prints
> +         * to prevent large number of prints when sender retries on BUSY=
.
> +         */
> +        if ( ret !=3D FFA_RET_BUSY || printk_ratelimit() )
> +            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to %#x failed: %d\n",
> +                     dst_id, ret);
> +    }
>      rcu_unlock_domain(dst_d);
>      if ( !ret )
>          ffa_raise_rx_buffer_full(dst_d);
> @@ -226,7 +249,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *r=
egs)
>
>      ret =3D ffa_tx_acquire(src_ctx, &tx_buf, &tx_size);
>      if ( ret !=3D FFA_RET_OK )
> +    {
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 TX acquire failed: %d\n", ret);
>          return ret;
> +    }
>
>      /* create a copy of the message header */
>      memcpy(&src_msg, tx_buf, sizeof(src_msg));
> @@ -238,6 +265,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>           dst_id =3D=3D ffa_get_vm_id(src_d) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 invalid src/dst src %#x dst %#x\n",
> +                 src_id, dst_id);
>          goto out;
>      }
>
> @@ -246,6 +276,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>          if (src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_1))
>          {
>              ret =3D FFA_RET_INVALID_PARAMETERS;
> +            gdprintk(XENLOG_DEBUG,
> +                     "ffa: msg_send2 invalid msg_offset %u (v1.1)\n",
> +                     src_msg.msg_offset);
>              goto out;
>          }
>          /* Set uuid to Nil UUID for v1.1 guests */
> @@ -255,6 +288,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>      else if ( src_msg.msg_offset < sizeof(struct ffa_part_msg_rxtx_1_2) =
)
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 invalid msg_offset %u (v1.2)\n",
> +                 src_msg.msg_offset);
>          goto out;
>      }
>
> @@ -263,6 +299,9 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>              src_msg.msg_size > (tx_size - src_msg.msg_offset) )
>      {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 invalid msg_size %u offset %u tx %zu\n"=
,
> +                 src_msg.msg_size, src_msg.msg_offset, tx_size);
>          goto out;
>      }
>
> @@ -272,6 +311,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>          if ( !ffa_fw_supports_fid(FFA_MSG_SEND2) )
>          {
>              ret =3D FFA_RET_NOT_SUPPORTED;
> +            gdprintk(XENLOG_DEBUG,
> +                     "ffa: msg_send2 to SP not supported\n");
>              goto out;
>          }
>          /*
> @@ -288,6 +329,8 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *re=
gs)
>
>          ret =3D ffa_simple_call(FFA_MSG_SEND2,
>                                ((uint32_t)ffa_get_vm_id(src_d)) << 16, 0,=
 0, 0);
> +        if ( ret )
> +            gdprintk(XENLOG_DEBUG, "ffa: msg_send2 to SP failed: %d\n", =
ret);
>      }
>      else if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
>      {
> @@ -295,7 +338,11 @@ int32_t ffa_handle_msg_send2(struct cpu_user_regs *r=
egs)
>          ret =3D ffa_msg_send2_vm(dst_id, tx_buf, &src_msg);
>      }
>      else
> +    {
>          ret =3D FFA_RET_INVALID_PARAMETERS;
> +        gdprintk(XENLOG_DEBUG,
> +                 "ffa: msg_send2 to VM disabled (dst %#x)\n", dst_id);
> +    }
>
>  out:
>      ffa_tx_release(src_ctx);
> @@ -311,6 +358,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, uint3=
2_t fid)
>      if ( !ffa_fw_supports_fid(fid) )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> +        gdprintk(XENLOG_DEBUG, "ffa: run fid %#x not supported\n", fid);
>          goto out;
>      }
>
> @@ -322,6 +370,7 @@ void ffa_handle_run(struct cpu_user_regs *regs, uint3=
2_t fid)
>      if ( !FFA_ID_IS_SECURE(dst >> 16) )
>      {
>          ret =3D FFA_RET_NOT_SUPPORTED;
> +        gdprintk(XENLOG_DEBUG, "ffa: run to non-secure dst %#x\n", dst);
>          goto out;
>      }
>
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:46:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:46:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229157.1535200 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXxp-0004g5-Jh; Thu, 12 Feb 2026 14:46:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229157.1535200; Thu, 12 Feb 2026 14:46:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXxp-0004fu-GU; Thu, 12 Feb 2026 14:46:41 +0000
Received: by outflank-mailman (input) for mailman id 1229157;
 Thu, 12 Feb 2026 14:46: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqXxo-0003LH-1j
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:46:40 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a36cd323-0821-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:46:39 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BL1PR03MB6200.namprd03.prod.outlook.com (2603:10b6:208:319::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Thu, 12 Feb
 2026 14:46:36 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 14:46: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: a36cd323-0821-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MCmtimCwdiISnyQrMTgGs4Zett2/SiDrzt2Xw4DarOKL8e5SBJwBDRTldnauUrbDFafWUGzu0GAuR3NukcJ6yMkAs54jzjM3xaJy9P2+9NhudxWMr5KuloWA+Ud7lWqZYUmtEFd0Dwx6zDiFGiNaQcJ20iwpgcFKb2Ac58U7lHQ68bsGEOjCYVRmOkofc0Q1KdjhpoyOU91uwCJHSJheWJvPoOsgpTiFeZBQ5OYKEvKGEQ8X3TJ0PByTGTVTfJmAdwqrXWXOUf/NX9hkCy2YFEDwzQpDbqWzmMO80rSYvModiWog/0ukMg/vqP7P7kC+k6VQOEO7IWOSSv4Jq3dmzQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Xl0n5YtzEuDOR9roRgv/CaNdsWXGPUlwSYblNz8/sOQ=;
 b=ux07suoiVIQ8TJqH5Q64tE/iiU05PaX2H7qJ5YE4/mzUCowls/UZC7SzcHpdzHxyq9zEUuGidP2KvW+zTz9F5E1NPT3F9XQSY4IscQdz5UlFE0af6n+hRFxWL4ne9JMSAMTkUkduR1HrsGTqUkifvgshUTx4DXvin70M93Eolx4rXhyuhteaqx67RMSUBoUbHuPym9Y2af86sicX/OLomm8VWjLMz682rmoyEKEfFcHMXzf3enGhHclDUNXOxfHRNZWw4SpDlIWUFTF4w4yCCh+OIap+4fUCEn/GdN5nRdfn6FxU1lV8w7CpQKIGreXz0OGtbb99kynMvWJRR3uF2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Xl0n5YtzEuDOR9roRgv/CaNdsWXGPUlwSYblNz8/sOQ=;
 b=vO76XArxidnmaGthgMBQ4JhQAczNo6DQHROcBm9n1csXbe+yLoDSdf5m9Qp3wmm7EtBsN0vcP26WsxwYCaCyYazrFx0hMJAhVJwIq4NoFH/vEZJlljawkzC3rQiRZmnVuzMIM6YSmer8nOwjzbeUkAueRAiBAGXn+DsqupBCx6M=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 4/5] cirrus-ci: add x86 and arm64 macOS hypervisor builds
Date: Thu, 12 Feb 2026 15:46:17 +0100
Message-ID: <20260212144618.43200-5-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260212144618.43200-1-roger.pau@citrix.com>
References: <20260212144618.43200-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0170.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BL1PR03MB6200:EE_
X-MS-Office365-Filtering-Correlation-Id: 2383acab-0a46-4faa-2e15-08de6a458568
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?RkxWWXhtS0h6bHRJTEcyZlYzeTBQNGpWSjZXZE5wbHNZWUFQQnlQbDJQaVc1?=
 =?utf-8?B?NkFOSnlKL1RUVmRWMm9HVG9vZW5ld0FiQXlZVjFmd2RER3ZSN1B5UTJud1Vn?=
 =?utf-8?B?MDI2YThyNFJUaDNXbHhKa1ZtSDM5dEFQUnJsTnBiamthZHJwSmtoM2lCSkF1?=
 =?utf-8?B?OUM3V28rN1YwMXI2aFlwYVZ5NG9SR0dSNjNrUmNGUkJUck1HLzFDa3EzS3ox?=
 =?utf-8?B?M0swOW1ITWxEb2JzeW1hM0dYalJVQWFRQ0ZkNG5UMmdKalU1UnRON3l5bHlo?=
 =?utf-8?B?ZWViMU5vbFhJeWtlR2dHZVl5R2NhWWxXSjVMWnQzTGg5RWxHdXRWQVZUWENX?=
 =?utf-8?B?Zm5aNUcwVFB3RURyWUZnemtmUVVDTUZOdmNiV0hkU1NLUmRvazFwZGc3Vjc2?=
 =?utf-8?B?QXpTNDkxN2xYVm5iYk9ESGFzdkNzWHJjdWdEU21UWkdpVDhWM0J2YjBlMlJM?=
 =?utf-8?B?eFlCdzFHbFJkbXhEVnlBeHQrRktqOUtUS2FndzRJRmgyRHgwamREWDNFSUlX?=
 =?utf-8?B?dE9IS2k4VDRPNXFBcWRiRW1PZkUrckhPZ0ZvMW13RkxPcVhjZXFiS2xwdVd3?=
 =?utf-8?B?T1MrRGdzWlh1QkpYV3ZRcjdmRWhWY1AybjVvaC83TCtFMFhBMFZVNUZneVRC?=
 =?utf-8?B?ZFRwbjFxWStITnhUaVVrcE1aUTF5MzdSazlmWm5CRmxPY0V6NEJtUWQyT0tP?=
 =?utf-8?B?L1BTUnlEOWk4MXhDajBEUFZFZWpETlZySHhjZDJRWkpvSnlZTWx6cmVFdTNz?=
 =?utf-8?B?YkxIM0dMTWpGbDBocmYrdDB0aDI5OER5WmVSS01pZDB1UmZ3UW0xaS8rV0Zs?=
 =?utf-8?B?YmlHNko2M3RPbnhPanpOMWVIdytXRmt3VXFYNGE1MDg5bWJlTXV4d3BEN0Ir?=
 =?utf-8?B?dWZHdDIxWmZTRHVHT3BUVm56ZXNjK1FXVEhweTJXWDNUU3Voa3pDbW1YVTdh?=
 =?utf-8?B?ekVINk5zU0xJMEw1am9GSlF2bEFaSEJuVnRCelA1cUE0cXM2UVEycks5V2gr?=
 =?utf-8?B?dWNoYkNxOTZSVWQvOHhDNlUybnQvTm04b0FpNEF1WCtmNSt6N2ZQeHU1UERa?=
 =?utf-8?B?Si9sdUVpN3VWUDhabDZ6STh4bUUwSkVYSTFHd0JCS21NczVkbkJBTzU4K01L?=
 =?utf-8?B?dEZwdzg5ZnVGWVJ2T08wOGkxemVYdE0xTUFZbVFCV2NJT2lKeW41VklvU3lo?=
 =?utf-8?B?WWpUTzNCeXpDRms1dDdwTW05ZHlwWllpUGJvM1ZWTGhGc0cweFVCQS95TFdz?=
 =?utf-8?B?QUQxMlZvbFhDOXJmVmdiZ3duVHBaMXFYcGhRTTVLYUlWQ0tBYVU0ZDJFNVFC?=
 =?utf-8?B?ZU4xYXBzMlFtdjFXaDc4Q0Ura21uTHA1ejVvZlYwN3Z5dkJWNnNZNDhQZkk1?=
 =?utf-8?B?SGo4dTRuemFaNlpGa0pxempJNkRxNmdKU0Jzcm5FYnFZTGxwN0lmZjJzRnJJ?=
 =?utf-8?B?bDFhcmZsQ1JzamdGZUpMd056eUdwaWlEY3hCZzNySU1Hd3ArQ0w4ZzJqVFRP?=
 =?utf-8?B?elhlVXNSN3RNNHdPcE4xVEVZemROUTZFU29KOERGQWR6Mnl4djdkM1RidGJF?=
 =?utf-8?B?akcyajE4NmVTWFkyZ1MrbFVSZUpVTWFVYTdmUTBtSjNCNVBoUEYwekJYRk9S?=
 =?utf-8?B?QkJFR1FHRy9BK1ZmMEZvQnRxckIxRWhWcU5FbERua20zd3hwSktrOTN4VXRa?=
 =?utf-8?B?UkZybkFYZUNpd3QrcnFobXlwUkFqb1Y0Vnd4anRhMm15Uld1TU4rY285ZENW?=
 =?utf-8?B?YStRdG1sTGtzS2pjSTM1ZlhoWjhUVzZBdERzNy9xTzcvYlFwSGtZTWpGb2FV?=
 =?utf-8?B?VTJzSGRoamxnNGVSb3UzK28wckxrNlBjVkYySnA2UW9KcWR5SWVWMWtrY3U2?=
 =?utf-8?B?cWxwWHNyL3gxTncwS1k3a2c3WXhzM1M2MEtpTHp5QXM0YTJMREpmSkJiNFNF?=
 =?utf-8?B?N2x4d2VRVzB2STFpMHRlcUFXdWtaYkwxZDcrYzdXa1dDVUdZZ3hvb1Y4dHdN?=
 =?utf-8?B?aUhUbVVrSGlIYmliblJ5UWpIbEdML2NDRTFSVktPb0pheC9OOFRrcERRVkU4?=
 =?utf-8?Q?2NzZTO?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UVFjSWQ0ZHdiMVFRT3dVU0dhN0FqNDdZL1BQSnFGakRROEM3L3FhMGsrVVhv?=
 =?utf-8?B?SHl0OXpMbk93SjBZU3NpR0hsdzBCSzZPMUVtOW01clkvejNsaktUTmUvTmJQ?=
 =?utf-8?B?ZHMzeno0U3F4YXBTUlRQdXZZNTIrZ1ZKRWFMK0R6dG03c3V2RW5XMHRmakg5?=
 =?utf-8?B?cnhTcUhMdnp2SUNtS1pYbUcwNWMxU0k5T3JUZlBZMDNPTlozckpGR1FvSGln?=
 =?utf-8?B?eXI3TEMrWmZLdXJmT0YzSkZDQTU0cm96SXVmcVVUb0RJYzlwMEZXUUdCaENI?=
 =?utf-8?B?TS9hcUNkYkVMbjVMd09sa0NiT1lHZnVIWFZVZm1NUTlTQysvck5RV3BsS1Z3?=
 =?utf-8?B?VzFlTGZhOTlCTzNpNElZTkdaM2VrWUVyUHdhYVNLUnZBdCttOVZvTXdqOUlV?=
 =?utf-8?B?ME1NMzFSUnVSdGdhbktIdzFJTjNvN2t4ZEN1VHpFVVIxUFVVZlVnZk92eWpT?=
 =?utf-8?B?eEYzZEV5Tk1XUDhmNXUyNEw2TU4vYVRWVFlQZHo0RzZTU09BVW5rMysvREor?=
 =?utf-8?B?WHA2NCtxSnlkd2FVUUFJSDZvRHhMR3lCZmZnN1kzU0VPUlgzNERhMGpvZ1Zk?=
 =?utf-8?B?KytpbXUwd1BQdnRxZ3VOeXMvdUI0cndhMEVrQ3YyYThlM1V3dStqOWtXOE5u?=
 =?utf-8?B?YWZZTTZaUG9uMWw5K0ZtMHVaMEtkSkhFeDEzVGFxMURFSGRLK3Q2L0JaSmg4?=
 =?utf-8?B?a3h2RlkrdnRaSERlNWFKSzBXNkIrdjVNUytLVkc3cVBOUDk4eEp2enl4SFp6?=
 =?utf-8?B?SmVKcCtsV3pUMk5STTViS3h6UXIzWjlQU1lueFY5U1ViNllmN01CTkU4MHJV?=
 =?utf-8?B?WVFjbmNsaHZVU203V1hjcEJOV21WcW9mTnBpTVhuSjhReGRUTEhKbmd6N0li?=
 =?utf-8?B?MnI1VkIzK0lCb3pRbHJDV2V3TGNPWUpTT2VIaEVpQWpXWWd3TEhjdFJPUUR4?=
 =?utf-8?B?UkdleHVtU1RzTzFyeFFNNkhNVisxWEJMNURORzlDKzl0L05QeUd2VUNRT0lJ?=
 =?utf-8?B?L1lxS0pIY0FnOHVQejFGUE1ETjBjYmYvWmNjWk9CRktUNVEycEVjSU5OT25t?=
 =?utf-8?B?ZllnVnJQZUhobVYvT0ZzS1FWVC9XRkVmVmxrbU44bjZVMkZubm94cG1rdFQx?=
 =?utf-8?B?MFNyV0o5aDE0dWxIYzhnZU54cStXeXBjakFuZ1d2UTJqZzZwTnhwejhqQkh6?=
 =?utf-8?B?VG1BcU93S09xcUE3MlNEZlBlNnpBckYwS3plT0Z0OWdVR2lnVHdWbWZJQUtW?=
 =?utf-8?B?aWJDZUdNdnc0S3cxSmg0Z2xYZDVqUFRTTmFxTWpxeURMSlJWZ1VPMmV6QmZK?=
 =?utf-8?B?OUpjWGY0bkJMQm5YcW4xSHY5QmFDTUpjMmR4dTM4akxUSy95YkdHellLS3Jr?=
 =?utf-8?B?NUNaZlBFbDRtaSsrN1g2eG9YeVI0NzgvbkFmWDR6NDMwOExueVVhL0tnbHBo?=
 =?utf-8?B?TGU1NXUvd2tYQ0xuVlFsdzBlT1Bzejg5ckdJdHhmV3hkSmJLeThSRGFPSlpj?=
 =?utf-8?B?cWNIRVh4Z3JtRVp4L0dDc1E1TGdmaWRBbCtaZDUxeHV3MFRSZ3ZNUGJDb3Fw?=
 =?utf-8?B?cVNqZGN4eUkrbUF4bXJkQXVWRktkbzNtSU0xQ2lTRU9LbkEyVXBNUWpFNFRl?=
 =?utf-8?B?am5VOUwrWUhEdldsaG8xMHYvajV6MVBabmVNN1RodjdGTmk0UGYzalh2MEpo?=
 =?utf-8?B?bHVNbi9nRXgzc3pJOGpsQ09rRFI3blFPb1hTVmc2L1V5TnJVcWdPOGl0WUdQ?=
 =?utf-8?B?ZG9taW5rcWhvT0JiaEJ6bERqdG11S3FpKzBURkZBOEN6cCtwV1BpRDB0cXhz?=
 =?utf-8?B?cGFwTEk4UHFKak90MndDRi8wZ3F0cFBMOTJtek1rMlhLQTB3eWVSb095eHQ4?=
 =?utf-8?B?QjVMU1dKSkZhS2ZVYURyZ1d2SFhtZ2dnRmh4WFdRK295K01UNzBFSGllOFJw?=
 =?utf-8?B?bUp4VzdNSW1rVnFzQ2M0MXBsNzZaV3c0MkcvWk9xWnEyQ21hWGJnYWtoNDE3?=
 =?utf-8?B?UnZYMkdGQzh3SUY2VTJiMnJLTlpUeWNmSzRRZ3EvN1RwQWFSUzZLZ2N5ZXF3?=
 =?utf-8?B?UGV6UUp5WGdaVFhURVJHVytzeFhoZmVUWG5KR2N0YVJBaVB5SXltMzZVbUtD?=
 =?utf-8?B?bXg2bzNmYWR6NWhlNUZCdFQzRU8rdGVLbWl4UlAyS2ZaVmwzSmR0UUJTay9I?=
 =?utf-8?B?TExQejlsTEsxaUVRZEFudzY5MWtxMHplV3h4d3NWTXdjWEVVME5nL3dYNjdw?=
 =?utf-8?B?ZzFkbGVXVXBtZzBmZ1QydVVYTmRyRlJiL01FK2IyaElueUtuOEVReGZHVmcr?=
 =?utf-8?B?dHJRRWc0SGlVL2dsTzNoS2IyOHVFR1ZpTnJCcUhHNUYrcktlcVhnUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2383acab-0a46-4faa-2e15-08de6a458568
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:46:35.8518
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: VjtllcW1++dsRKVeZrBSuiqx+/UNrusYzyUTMoGfiBSgaA4SgJ+Q3ZJwN7wao33HNcVoX7cZe9QmK3CDN3Qh0A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6200

Introduce two new build that run on macOS Cirrus-CI instances.  Those build
the hypervisor using the elf cross-toolchain from Homebrew for both x86 and
arm64.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
I haven't added any randconfig jobs, we can consider adding those later on
if the builds are stable.
---
 .cirrus.yml | 38 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index 7bbb4f1c5c6c..b9608e71cca7 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,3 +1,5 @@
+## FreeBSD Build Jobs
+
 # https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
 freebsd_versions: &FREEBSD_VERSIONS
   env:
@@ -122,7 +124,41 @@ task:
     path: xtf/tests/selftest/test-*-selftest
     type: application/octet-stream
 
-# Test jobs
+## macOS Build Jobs
+
+task:
+  name: 'macOS: hypervisor build'
+
+  env:
+    matrix:
+      ARCH: x86_64
+      ARCH: aarch64
+
+  alias: macos-$ARCH
+  macos_instance:
+    image: ghcr.io/cirruslabs/macos-runner:sonoma
+
+  environment:
+    CIRRUS_CLONE_DEPTH: 1
+    CIRRUS_LOG_TIMESTAMP: true
+
+  install_script:
+    - brew install $ARCH-elf-gcc $ARCH-elf-binutils
+
+  build_script:
+    - make -j`sysctl -n hw.ncpu`
+           XEN_TARGET_ARCH=`echo $ARCH | sed -e s/aarch64/arm64/`
+           CROSS_COMPILE=$ARCH-elf- HOSTCC=clang -C xen
+
+  xen_artifacts:
+    path: xen/xen
+    type: application/octet-stream
+
+  debug_artifacts:
+    path: xen/xen-syms
+    type: application/octet-stream
+
+## Test Jobs
 
 task:
   name: 'FreeBSD: XTF selftest'
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:46:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:46:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229158.1535210 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqXxs-0004yl-4r; Thu, 12 Feb 2026 14:46:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229158.1535210; Thu, 12 Feb 2026 14: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 1vqXxs-0004ya-0R; Thu, 12 Feb 2026 14:46:44 +0000
Received: by outflank-mailman (input) for mailman id 1229158;
 Thu, 12 Feb 2026 14:46: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqXxr-0003LH-5m
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:46:43 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a504881a-0821-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:46:42 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BL1PR03MB6200.namprd03.prod.outlook.com (2603:10b6:208:319::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Thu, 12 Feb
 2026 14:46:39 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 14: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: a504881a-0821-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GrUbWAJgicB/4fCo9ltBjrJPVCFw/q5qRY5jl2uLYM/BYV54QqT8+HmMcXhd4vu39jH5Ebu4/5gHZAre5/M3SNMXMJnSW5eI4wfDiuY8LgQy1uSPkIhjsarcC3EtsMSjh1FjakHioxPBocfEfiPaaysDVyQHJnIEZ9kDJWt/atdufLGZe1XPrrpTcHSyDVCiW8DgoxryIxyzik+Q1IPSy9rT+wXKIuC7blJb2StL63X7iYDWBx1sQjtRSQqf8nsGkfp7HIvMryFzFX6r2ir78VAXUMcWbj5hJgqzHEXwy4hOjUXwG0hDYmb82l9VizyNhHrursJTy9ZD5gO/k/17ig==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3T8oymG73Snbnqn9O5cozXBum7bvjprNXvXR6x+JXf0=;
 b=KR8rh4oiZCdk/EAHKnBJyvy+vNhCrjmkGeFbiNE+5LzPqUmb/Ja8wXcbulb8M2j76rNpT2Tr2506WzPklWllFA3ucxFu9poYdgrNL7yUV0aoFEabmeWJ3LgnaV7M4XZPVONS8q2Qrw23k1qw5cYJARGGuNQ2QBskwyiuFqNUCl939uhWNV4IowPZBxSgtHWB5Vfk0EgwkqAe9uyXibkw92mC8Tuehsn5eZlOmsYiAQKQMg5ILeN/KuCHDq8ZSDc20c2tOmkNW0lvRHBf7hcruqV3BnyTcL9YOCQ0YSBX//hmmb3dd8PgKHhdmWhgGoyUSof7KuWmDjBZz2UQi1kgag==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3T8oymG73Snbnqn9O5cozXBum7bvjprNXvXR6x+JXf0=;
 b=rY3/7yIguFN/rghPXIRk8ViKn/BXa6l1Sk+eIVnQBEUOM6LrM8QV6MM/O4OmxSNhSSy3XEA9cwGjscSQWK6oE2uBmanD4blvKyo22yq4zQgi5qa6MXkPrQz0D3y7btJOxxbC/eG3m2u17IpHWH1kz9xeOYzQahdY6KWzk4zW5No=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2 5/5] cirrus-ci: add x86 XTF self-tests for macOS build
Date: Thu, 12 Feb 2026 15:46:18 +0100
Message-ID: <20260212144618.43200-6-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260212144618.43200-1-roger.pau@citrix.com>
References: <20260212144618.43200-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MR1P264CA0080.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::26) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BL1PR03MB6200:EE_
X-MS-Office365-Filtering-Correlation-Id: c7779b5e-b4ae-4541-8d32-08de6a458751
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?MmJJaHBKc3R6M0JHWFYzd1NydVZuaElNY252Z0N0NW1hMVMzcHk1aUUrKzFl?=
 =?utf-8?B?dWd4eDVXb0lERFI4SmNLSU5Cc0wrdSt4UHh4WUIwLyt6cjI0c0RKd2xYU3Rv?=
 =?utf-8?B?b2tXM0tOdnEwajI5Z3lrZzZEeFFLbEdZc25GdkZGU1kzSjU2aTl6L3pQVk54?=
 =?utf-8?B?aGdibld2ZExka2RlcUlPaXJSdkdlYVRrRXNFQUV0ZXFWNmFKWWUvVHdXRmxs?=
 =?utf-8?B?NXp4T0dmM1RDeFN5SGg5bHVLSlFUY3Y3QjV5K09FWTVBaUZ0bjFBTjFCUnMv?=
 =?utf-8?B?a21meDQ0QThWNzdVclh4cWtpZnFQLzA2M21Lbm4vMmdkakQ3cDFZeWhxWWt4?=
 =?utf-8?B?b0dqWC9DQy82L2pLYTlheTRONURHWEYyWkVmYmdZcWFyWHJadUJOS1lvK0h1?=
 =?utf-8?B?MEVvZ3M0S0o4UUtTNHl0RHlhWXlxaHd1cWdHdXR3SDFRY1drOWVac0xoY3Qv?=
 =?utf-8?B?Z3FzaDBSVk0rZ24xU0ZZc0t1ZmIwcmtCQ1RVQWFxM0hhU2VpSDkvNmgwdytj?=
 =?utf-8?B?N3QwQjdseXFmVzQvRkdUeVBQekVDQzU2aDJCanRGaSszQWN3MUVsbTRWcjlP?=
 =?utf-8?B?YnB3Z1l4Tk1ZWUI1K0pkUzBYQWIzVk0yK25yV1ZET0N2dE9nVDNGZU92V0xC?=
 =?utf-8?B?WmkxM2prN0FsYXdCMi92K295eWF1b2R6ZDE1dHI3LzdXdWhmMkc5bm10a3Nq?=
 =?utf-8?B?cjlpRWIzTWRGQmRwUWxCZEw5aGlIL3lCa2dMRlUxZWovSjVHL2NCc09tMGdX?=
 =?utf-8?B?NHgwdGJucTZwdlUxdzM1RVpiQmxsYXNNL3FIZmFya2pYR2V2MWg0Q0wwUGps?=
 =?utf-8?B?dldDdzZBMUZjVVc1NUlGQVhVbXJqNVpnK2Uxc3VQKzdhN3ZUUm1MdVBWTUNm?=
 =?utf-8?B?OHdZRkU4K09iMHZsTStxbi9jaFlvMDVVTHpjY1BudFpIS3ZsSDdqUXNTWDcz?=
 =?utf-8?B?UkxVUWVLK1RtRlEyUVlPWEV4UFVxS0g4MlorMzFPQ2hHT2N2cFpNbXNlTnJp?=
 =?utf-8?B?ODR0QjVUTVBiKytCT2xoam5saHNNQU1mZU5MeSswUXdmQk5KT3c2MlJhUGo1?=
 =?utf-8?B?QXZHdU5PS3hQZGFjZm1nNFB3Wk1yc2FUMlJ4aDRzRFBiMHpyTUUzQUZzK1Fi?=
 =?utf-8?B?MzNUdm92dFFLTS9jNjNhb01WSDFpR2hMa3ZKYkRVaXVQbEZSMnhWY3drTXhX?=
 =?utf-8?B?aHdsM25nL1BTT21TR0JiaVFTZ3BDVVZlRHRQSFlnYUpUQ0NlMWk3bU0waSsv?=
 =?utf-8?B?MkxIa2Y1OVl0SzE2T2lJS3I4aXFDMXU2MkR3NXQyRTUrRHNSZDZ3R29RMVRs?=
 =?utf-8?B?amJESmZraDVoM3VKV3c5U3ZQNkdLUzVPeDRIc0h1ZTdtdWVlM25PSjlFVWJU?=
 =?utf-8?B?WC9CNElhRVc3dm51ek5UUXBKNk5BWXVTdkpteXBLU1lvYXpLZ2k0Uk91RTNC?=
 =?utf-8?B?UTlPZ3IyalBNSVNoNXZnTlZYdFR4VW9jdGxTS2V2U1lYRnFFb1JWdnpOVG8v?=
 =?utf-8?B?SmxsRTZua2pyNUQ2TTd4SHB6QmZ4bExldlErN2NmeExyTlhmV205TU9UbFcw?=
 =?utf-8?B?UDF5T04rNHJsTk0vdEc4UFBFeGZ2TDY2clU5N2FkRmJnK2RLVk40UG10ZGo1?=
 =?utf-8?B?ZFAxbWNTNGhCdTU2UThQOU8xNlY5cWp6NG5sTTRWMzRzTzRaTDJhcFExclJ3?=
 =?utf-8?B?WjNZemIzdFl1ZDk2NXJGZjAwTkNWR01ESTV6d3dwUDk3T2lQNFRxekprTUJa?=
 =?utf-8?B?dTJqSUgvRmppM1ZVd1JCVERQbUxtSkZQcjhDSy85K1RHNU1tVmpuZE9JcEta?=
 =?utf-8?B?NVJpSkxrMURmSll6Q1ZZVXJ4ZUJHRmIxc3RFazYzWjFFSmxIb3djNE9HV3R6?=
 =?utf-8?B?WHBWTDVndDYvelJlOGF3NnRDTVoxd2ZHK00vazZzYlpQUkVnc0RCZkxyNW9X?=
 =?utf-8?B?NlhMVWJxZkNuS3dlVHlKMlovMW01ZWdIZUdRRzB0ekJWc2o1bVZFZDJwWW9r?=
 =?utf-8?B?WEs5ZGFFbVVYUkVGcXRrYzA1WEd1ZHpLVWU3UHFRVm9abzNLc1dlYlhTRE1p?=
 =?utf-8?Q?JL4kve?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RTFGVEpqaEhVMGJ6WjEzYmpiaFZ2c0pmNTFWL2xLd0N4dWN0VTkzMkgvMG5h?=
 =?utf-8?B?R1dybk9mb2E0OWZRWEdGYjRPdmhweCtSaUJRSVJVOS94bElsTHRUaE9JZmJN?=
 =?utf-8?B?RUc1MTdlNzFjMWRCZllGQnlEK1pjTUJtdFdjWTZwU2dTcHZYdk5vN3AvbTFL?=
 =?utf-8?B?QWpLa2RHVVZhTlhHK1NmVFpuVnJkbnJHbHFCUW8xdTgyRklyQTZYWmlsRTlY?=
 =?utf-8?B?VUdpL09DMlVqNldHZzB3cVUvUyt4bUNmMGVscEhydVdORnZGT3lCeVNxOGRs?=
 =?utf-8?B?clM0SUZncU1uVDlHU0dtZG9EWmJ6MjNtNnBYaHRCSnlWK1VlRzIydEFMc0NC?=
 =?utf-8?B?a0RvSGtycktPVGRIYjVMVWZjTjhKdnRTRUlLcDlSWVBhUE82LzRPVXJLbXFl?=
 =?utf-8?B?OVNFMGlOY3ZEUGswdkhwTjhGQ1NJOVRXKzlmcjlsMXFMdCtaRUVhSTZ6Y1VP?=
 =?utf-8?B?YXY3RlRFSUd1ZUFyblNsNU40N1Z1MElBZFRkUCtRRDBOK05iTSsxdUJPSnU5?=
 =?utf-8?B?UlRuNUp5TGd2a25MemI4MW5LQmxpbEttbUdLWTNQYmJuY1Iyb0pocXBDQ2t5?=
 =?utf-8?B?WEZPVFZvU1ZGeTJUZE5rMDNOR3NZSWR6U3dHaGtFVVo3Nmg4bGVNWjByYklN?=
 =?utf-8?B?b1MyZTc1MlVkUzhqcVBKbU9mWExjSFRWaGJIMWR3enBQZXpDUVFJTTY0aDJ0?=
 =?utf-8?B?cEd1Y0pHc0phdUlTTm1OUjVIYVllUXAvaFFvR1FBcEJIRks5SmFtZEh1OFRz?=
 =?utf-8?B?OGlGVEtrWktqcFNuNEJvRWMzK0VLT3FOMzE4M1hvYStUbGxQYUtuaW4xV1Jy?=
 =?utf-8?B?clIrS1dxMFdFMS90dlNmNzNEa3dUVnlOc1RBY2s0TDJOK3ltZ3BrUjJpVDds?=
 =?utf-8?B?NFZNTi9vWFp4blFpTGtnVzZydWVFNWpKcm40aUpKdkswQ2x0WjFNQ3N1QXo4?=
 =?utf-8?B?Q1V4cjRKUTJ1aXk5akRvWnlUS2pSUmQwbkRPMkxmZFo5TFV1aTdRcEFTTzI5?=
 =?utf-8?B?dzROQnJLejZ6MVU0T2oxZGVHdVUwcm9lNjNJR2h2U1Rsc1MrbVBXTDhLMFdH?=
 =?utf-8?B?Tk11dFJTMzVJV01vdDVnaHFTcXMyTHByL0twU1BGcWVnd2xrZWpSRmhvR2Nm?=
 =?utf-8?B?Wm11ZXdPOGxPY2dDaEloZW02NGlsMWVncFIwRGxRUnJLa0tSSndFa3NDSVFR?=
 =?utf-8?B?S1ZlZDgrVzkzeVYvRklzNXpmSmxFa1JiaVFRdTFuLzFrQWdRNjd2bXBZUEc3?=
 =?utf-8?B?UnR4OExFWjVINkVVQXV3UDdFVURSaGYzdEdNK3ZDRS9vc3Nqd1prQ3I0cm1s?=
 =?utf-8?B?YVZsUTZSMjAyeXZXYlRuc29heDZ4ZXB3eDQzYUVMbDBNQnBQWWMrNTJUMnc5?=
 =?utf-8?B?WlJFREMvY3RERldHNmUwSGdxV3JQWjdTR1VkU2tXSDBwNEpFUk9wSXZHTGxY?=
 =?utf-8?B?RWhwQkpJRUU0NUFTcHphMkVqakpkcDAzWldpdnEvLzhtQUtPWG4vajNBNkRa?=
 =?utf-8?B?aXd6R1NHSzhCOWNGWk8zZFYrV24rVmJUUjBXYVRuN3M2em4xMXZBYUhHaTlC?=
 =?utf-8?B?blhnVEFmYmNGNU9ubFI3azYvU2s0ampvN08xNnBNKzBxRkkrZHNLUEtlTGll?=
 =?utf-8?B?TTNLY2hReGpmYy8wbGN0LzBIKzdtRElhNHNicDIraDQzd0gyYnliTUx2dDN3?=
 =?utf-8?B?S0x2eXZFSU1lc2FkRVhWaFgrWkVVcHdNMGo2N0V3eVF0eFFJOFlKK1EyYVFI?=
 =?utf-8?B?SzR0YXp2Z2F2REV6S0hJMzdEZlBjVXVlamNTZXFySGZkTFVVRit1WFR5TU5l?=
 =?utf-8?B?bUVKaHJSclVUV0VOY3pjWWllNU5lcFk0Nnh1SjRhRFIrZyt1SVl6TzFYNUVp?=
 =?utf-8?B?Q2lRVnAzaW1zQWVrTEhpQ1RLMTZlS3l6aVJ5NGVXZm9ZVSszbnlnK2NkTnl1?=
 =?utf-8?B?V3lBYUVVRzJuYVAvazVIUlRlRjk5K3orZnBhRHZaOFBUNVgvUVRaSVVhdDln?=
 =?utf-8?B?dm9nZVFRMG9RNzlCZ3NCeEwwR29ZUnVndmltRTJnaFQyMUlnMHVEVEF6WWsz?=
 =?utf-8?B?Zzh4L0ZuT3hFMHpYMFlEcVVhSUdBbFBFUmZ5cmwxclgvWUhiMkVnTFhWVzBY?=
 =?utf-8?B?TFJkVGNocUtJMlFlaXBQYlN0Uk5lMDZXZjRWcDhDMGo5VWxIYU80ckhRUURq?=
 =?utf-8?B?cTRqWXUxQStSMFhlMXRyNVdQVjhZWnpOcHVnd2hPaWJQeG9OcUE2Q0R5S29T?=
 =?utf-8?B?eVUvY3kzMTJOaFFGYnFvdS9zLzJDZFFkbjgrUnF2UU9vMFpFWDRzUlN2dHRw?=
 =?utf-8?B?dmVDL1BOVTF5dFlVQWhVSXE2dmJteTlxZnptbnhkb2FlYm1OQXIrZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c7779b5e-b4ae-4541-8d32-08de6a458751
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:46:39.1216
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: aZa7ZEH3lIehzsgfRiVN//I9B+Xh99n5TPMPEXYgFqeoPnpBU+4KppYSSxu5qnzgKqTH/GkABo29R5e7FYc8Ng==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6200

Like we do for the FreeBSD builds, introduce some basic smoke testing of
the built binary using the XTF selftest image.

Note this is only done for the x86 build, there's no ARM support in XTF
yet.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 .cirrus.yml | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index b9608e71cca7..839c25149c9e 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -161,18 +161,19 @@ task:
 ## Test Jobs
 
 task:
-  name: 'FreeBSD: XTF selftest'
+  name: 'XTF selftest'
 
   << : *FREEBSD_ENV_PRODUCTION
 
   env:
     matrix:
-      FREEBSD_BUILD: $FREEBSD_LEGACY
-      FREEBSD_BUILD: $FREEBSD_PRODUCTION
-      FREEBSD_BUILD: $FREEBSD_CURRENT
+      BUILD: freebsd_full_$FREEBSD_LEGACY
+      BUILD: freebsd_full_$FREEBSD_PRODUCTION
+      BUILD: freebsd_full_$FREEBSD_CURRENT
+      BUILD: macos-x86_64
 
   depends_on:
-    - freebsd_full_$FREEBSD_BUILD
+    - $BUILD
     - xtf
 
   install_script: pkg install -y qemu-nox11 expect
@@ -187,7 +188,7 @@ task:
 
   fetch_script:
     - fetch https://api.cirrus-ci.com/v1/artifact/build/$CIRRUS_BUILD_ID/xtf/xtf.zip
-    - fetch https://api.cirrus-ci.com/v1/artifact/build/$CIRRUS_BUILD_ID/freebsd_full_$FREEBSD_BUILD/xen.zip
+    - fetch https://api.cirrus-ci.com/v1/artifact/build/$CIRRUS_BUILD_ID/$BUILD/xen.zip
     - unzip xtf.zip
     - unzip xen.zip
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:56:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:56:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229227.1535220 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqY6z-00006c-VA; Thu, 12 Feb 2026 14:56:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229227.1535220; Thu, 12 Feb 2026 14:56:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqY6z-00006V-Rc; Thu, 12 Feb 2026 14:56:09 +0000
Received: by outflank-mailman (input) for mailman id 1229227;
 Thu, 12 Feb 2026 14:56: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=zRx/=AQ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqY6y-00006I-6s
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:56:08 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f433b533-0822-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:56:05 +0100 (CET)
Received: from PH7PR10CA0023.namprd10.prod.outlook.com (2603:10b6:510:23d::21)
 by MN2PR12MB4079.namprd12.prod.outlook.com (2603:10b6:208:1d5::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Thu, 12 Feb
 2026 14:56:01 +0000
Received: from CY4PEPF0000EE3E.namprd03.prod.outlook.com
 (2603:10b6:510:23d:cafe::28) by PH7PR10CA0023.outlook.office365.com
 (2603:10b6:510:23d::21) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.12 via Frontend Transport; Thu,
 12 Feb 2026 14:55:57 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000EE3E.mail.protection.outlook.com (10.167.242.16) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 14:56:00 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 08:55:59 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f433b533-0822-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=TxaBUmsUjy8eBAu5zQH4FfeaHyyBTGHkwjqWAAqOo9mbMbwnRMJCK/VIBhe+wvoqsb+zhgTeIouyiixDprgTh1gG+Fv22CH0gMYAZ0wmqvZ1kmkS1/0a0lLhaYQ3D9ma/fS/gAdOvW8+7AQfqYRX0AiMobhnWDBPIDXI276hcrdMuqAjN5PyG0bbPINPKD1fc9LhS61+RYY76zWV4CR867/qCmxRKacZyZK/jMh7MBUFibPfzixJdYYWlWvAG3KdgOwU9sixDpjSXU3bUtg1CROY7+7LwQ6oO0Idv1wbk94TFOr4hzU4Zsw+scib7418SW4vtgWGFqKWUpvqdp6Dow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=upTvwB/xKG0YJKqZ73mCz/e9Bc+WguMxroxZZwUkvk4=;
 b=pSYccwNqDsxdA6LABsXfUGhBJpMDN+FlhoaXh6EhkB2ltRjXFZwhIhLpTMfSl6yoQLYFdArbcVtyP11ss0zfueELLjQKd8WpE+yoGnNBTVtjRPFSsmJtLTgTlr0Pqpga+KFiNAhftyVG52xJbWb5A4APLWcwERDo8uuyZ0ZYnllq+vsGO+vP6sGlXYG1IylifjhJKv2TjPy/RAVv3UakNzyQOxEl5jEPlDNXEowqB2vNqYdB2+wjkV94nG8o9piEmFmhvXmTfLrLtf9PPF8eO8NDUxU8yaHrwNYgf2iECcMJG5EoN2tUEU7pQ9Tpre/+sGtaUAWjFWIYG6bEXnzQOw==
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=upTvwB/xKG0YJKqZ73mCz/e9Bc+WguMxroxZZwUkvk4=;
 b=ShhRNZ9/A4ZL9T5Q+bErEbpnx/yaIS5LvtQNPqx3DBGAAIIOUu1ghmJdiSP4y09vXIgOxcxx5cwM7o8iqsoIKoC9YuONYGzAtEkFdjw4onE3UHvb7tR8husNZV/btHukpe0ULuLk0fX4fbTJb4cuBctSDw45T1SwHRPZWJZRmO0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Feb 2026 15:55:58 +0100
Message-ID: <DGD2JSOV312K.1NZML3WGZBQ58@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 05/12] x86: Migrate spec_ctrl vendor checks to
 cpu_vendor()
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-6-alejandro.garciavallejo@amd.com>
 <109c3379-7066-4ad9-93aa-57e87deba81f@suse.com>
In-Reply-To: <109c3379-7066-4ad9-93aa-57e87deba81f@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3E:EE_|MN2PR12MB4079:EE_
X-MS-Office365-Filtering-Correlation-Id: 66037592-3c73-4911-98c2-08de6a46d61c
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?Y1NyeE9IRDkxZ3lwVUl6c1c1Q3BIR3NIVTgvYy9hUW5nQXBMNTE2dlRuM1VV?=
 =?utf-8?B?Rmx0N3hrL3JlNmd2cVBDSkNaTzZ5ejJIQmw4ZTgwcEs4ZjBGb2hPTEd3d3Vy?=
 =?utf-8?B?US9ka2ovVzk1WWtLbjVST1FXSkhZOUhTRmE5SFFKL0MxclhhRFpVZzdTSlM4?=
 =?utf-8?B?NVM5ZlhtbkE2dlplRUtSZytwaHlQOUJjUDIrcDI5QUZpSUliNGRvYXptaHhx?=
 =?utf-8?B?Zk9NZWFYK2tPelN2UzNZdEM0QmQ5WHBoUWZOaUhqVUJSdEpJWWNuNkhmQ01n?=
 =?utf-8?B?YUhCU2lXRGc3MzB1OGhKZHczOEpLYXdndy9DN0hPMUFJeURTQ25TaHJhSDhK?=
 =?utf-8?B?Q29xc0FRc0VIbHVCVGt0NnFtSXJXa3VlRHR4OEFDTndKVmM0cUl2WHduMWN1?=
 =?utf-8?B?TXpyU1V5S2JVamlDd2FiREZhVHFtTFFTeXZ3eEYrSEd3ZW53TVg3VmhZRWFz?=
 =?utf-8?B?dFhRWDFWOFNscHE3MmdFeTlBWkVPbFpEUHQ5N2FYRTZ2U0w0eWhOVkkyenU1?=
 =?utf-8?B?dFV4alRDRmtpaFNNUkZhYlptTG1YUDlrdEJ4dDltYXVONFlwQnErZDhjZlA1?=
 =?utf-8?B?bTFjYjl1NVBZTnpJQjAxbFhCb202Q2RXZUhpYmlsbmtjT3UyYVlHQWZiRW1Y?=
 =?utf-8?B?TCtGZnVaWW9QM0JxTmxtbnJPdFdJTXFpKzJ2K2ovOXdsdXdkU3QwbjNSVzJ5?=
 =?utf-8?B?OWk1a0tXdzNhcW1ra3dHRllRZm9rcnp0UEpiSkt6Sk9qR2lKeWMzeEl5YlFK?=
 =?utf-8?B?UUlpZnVjQmpVdUxZWCtRUkpXanNxT1Urc3hTb1RUTmRqcWNJdTJIdE5TdGZq?=
 =?utf-8?B?bDBBRGxnVnNNSVFkL0pzWlhXZHBocWUzOGhrcmt4d0tiVW9NTkplQ1AwVHJL?=
 =?utf-8?B?RnNaY1RUcVlRRHRxSU9PZTEyei8wYTRwekR0aStoOVRkNW1YTVlmRyt1MzJW?=
 =?utf-8?B?NTZJaE5QNUxwSys3NUU2Y1Z1UWxnNHlySGNST3BKaElZYzBHeUthZEZLMlpw?=
 =?utf-8?B?NitZbC9xVWJ5emtSUkl0TnNpQzdxMmZIV3pQeTcwWDRobTJ2R0QzdTE3TU81?=
 =?utf-8?B?WDNFR3NCYklaK05GY0pZWnJ5Skc4VmFTejc5K0NmRUxLc3VxOVA5SUZlU2do?=
 =?utf-8?B?T3dyYk9pWm1tVXM0akE2czZsZFpPYW8xMkZVMkRQWU5uNjZnQ2JYWEQ5bkMy?=
 =?utf-8?B?WjlUYm5pWnRnMzJhRHJNUkw3NkFFdDhrdnZFSmhpUHlGYlFuS3VnakJVUll2?=
 =?utf-8?B?YUl0UEhpeXovcGdlU1pRdGFFbEorWU1SSG1EZFU5dFFiTVJsb0t5bTE2ckVQ?=
 =?utf-8?B?eEFaL3J0NWdFT2hqWkJ1dTEzZVVpbU9ybTFKLzZMdVJROEkwV3pLVFlxazcz?=
 =?utf-8?B?a0hnSVVhTXlrWDVxcW5hZ0FFOU5qVmNaalZYaEk0dHplOU9oTXVLeDh1VzZZ?=
 =?utf-8?B?bW9Wb2M0YTdQc1VpQWhXWEdLaWZvNjVkRDNOdEpYUnQyZVkrZldROTBCM0x6?=
 =?utf-8?B?OTY4aUkwcEY0bXMraTVNc1ZBMEpHS0lGSmZINkVKSEJGbVJzb3JxV3RXUEpm?=
 =?utf-8?B?SWl6U3pOcUsrenIyK2IxQ0owMkwyOENTVkl5b3pWNmdsUlFuQURtTmE5enZ2?=
 =?utf-8?B?Q2x0aHhFdTAvajZJSGJjQXVaazJQYmdhb3NDY1E3dmo1cVRyWGtlcGZaU0Z0?=
 =?utf-8?B?N3RMOUVsZnJCMXl2U1dqcmlheHhSdGlRNTBXWmttVFRSSU9UZmhXUDdWNlhV?=
 =?utf-8?B?d1lyNjR1a1RHSkw2a3V2QldQZEtMeE1MZjlVQ2V4Sk8ranVyemphb3Vjc2Rn?=
 =?utf-8?B?TXplY3lZK1REQVJCaVJPc3p4eGRwRE1EVVhYZUtSNmR6cUF3SHpLaTZ2M1hl?=
 =?utf-8?B?THBGbUVtSFpDYXNUemNBVlUxZ1QrK0Q0c0YxaENHbEhmbDZZMzBrcElQNGpC?=
 =?utf-8?B?R09QaXRUcGMvL21uQ3NBeWZJdjczT0VTR0NVYyswZW1FaG5HbGowa3JEa09F?=
 =?utf-8?B?Wm8wYmlySzY0SDJRcmo5RG1iR0djbFV1T0dqRmh0MUtZSVNoclJSOXJCcUVh?=
 =?utf-8?B?K1lJOGZlcEZ6c0hTWjB5WWdQbmdxeUl2WVdPaDZZYXhkSEdmYjFCdEJuS2Qv?=
 =?utf-8?B?bnZOT042OHQ5eWlBMk5qQWt5cTNHMjdpVkk5ZUdrN1E4aXNLN0NFczlzWG0w?=
 =?utf-8?B?eEErNjRFZTMxY3RET1VlZHlnZEFZd3NJQUdaSEdhcUFmNEFPMjRmRGRNazVn?=
 =?utf-8?B?aGc5SVY3c3RkcVQ4WGpQMU5VNEtnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	rDiotymAFtt/W5dC/iqt+paUAHGjcz/j4Bg5UTnAsXcNZPgeKrvWUjL1g3D09UeeUuOErWo96VT0vf/9aBe9roS2t2/w7Ub/+TZmZPYu3JQYe+OH1XHzEd8/KA3xcaAdWrC/ko6iz6KW0zwfAvi/LZQxsduMNTeJYKLF9axoRb+q6Lx1JrCrepvyccQKKy7nsCE5d+IADn9BdXF+jeRLkkjSA/F9/hMGkmyq5EoAPjf0hyaQT1DN6rX8FgNgJ3/ndy5/R+2ufaH6LSF785Pgmdq8N9kWw4uyTwaGPoo4OQf+5WZelcED5y7Z6rhVQ7Q/ud3UerOUod4QeZBzU2+yL86Dpcg6VsSjkWnE1WnPx4n0M/H7eB8XECZwkye3dU2kVxSC+36+RrEWS+131Mfz+EVhcy2AF8gARIyZT0JTbxy7DqTnj3aYutG5TjZY78qE
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 14:56:00.5006
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 66037592-3c73-4911-98c2-08de6a46d61c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE3E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4079

On Thu Feb 12, 2026 at 11:49 AM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> @@ -738,11 +738,10 @@ static bool __init retpoline_calculations(void)
>>      unsigned int ucode_rev =3D this_cpu(cpu_sig).rev;
>>      bool safe =3D false;
>> =20
>> -    if ( boot_cpu_data.vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
>> +    if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) )
>>          return true;
>> =20
>> -    if ( boot_cpu_data.vendor !=3D X86_VENDOR_INTEL ||
>> -         boot_cpu_data.family !=3D 6 )
>> +    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || boot_cpu_data.family !=
=3D 6 )
>>          return false;
>
> At the example of this (applies throughout this patch): With the panic() =
in
> patch 03 the transformation looks correct. Without that panic(), or witho=
ut
> being explicitly aware of it, this gives the impression of explicitly doi=
ng
> an unsafe thing:

These patches wouldn't be functional changes without the X86_ENABLED_VENDOR=
S
mask at cpu_vendor() or the single-vendor optimisation. I could split it th=
at
way. Introduce the cpu_vendor() macro early. Transform the entire tree, and=
 then
apply the optimisations.

> being explicitly aware of it, this gives the impression of explicitly doi=
ng
> an unsafe thing:

Without the panic, it'd indeed be (intentionally) doing an unsafe thing.
Removing the panic can't be safe, it's not just a matter of features missin=
g.
It'd imply printing a banner saying the current configuration is unsupporte=
d.

> Even though by way of boot_cpu_data.vendor we know what
> vendor's CPU we're on, we're acting as if we didn't know.

Not with the panic in place, which is partially why I put it there.

> I'm really
> uncertain whether such changes are worth it with the mere goal of reducin=
g
> code size.

It is unreachable code, and in a safety context every line of unreachable c=
ode
must be either removed or justified. And justifications cost time, effort a=
nd
are difficult to maintain.

> Even beyond the concern raised, this feels like it might be
> increasing the risk of introducing subtle bugs.

I would've agreed with you with x86_vendor_is(), which is why for v1 I took=
 a
step back to make cpu_vendor(). That macro was complex. Too complex and it =
took
many trial and errors to fine tune it. cpu_vendor() is comparatively trivia=
l and
relies on the compiler doing the heavy lifting. In the single-vendor case i=
t's
a constant and it's hopefully uncontroversially fine to remove unreachable =
code
then.

In the multivendor case, the complexity amounts to a mask of available vend=
ors.

I don't think there's an inherent danger in removing unreachable code, so l=
ong
as we can prove at boot time the reachability preconditions can't be met.

>
> I wonder what Andrew and Roger think in this regard.

+1

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 14:57:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 14:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229239.1535229 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqY8h-0000nD-96; Thu, 12 Feb 2026 14:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229239.1535229; Thu, 12 Feb 2026 14:57:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqY8h-0000n6-6V; Thu, 12 Feb 2026 14:57:55 +0000
Received: by outflank-mailman (input) for mailman id 1229239;
 Thu, 12 Feb 2026 14:57: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqXyc-0003LH-IS
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 14:47:30 +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 c16f0aff-0821-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 15:47:29 +0100 (CET)
Received: by mail-ej1-x630.google.com with SMTP id
 a640c23a62f3a-b885e8c6700so1295979866b.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 06:47:29 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8f9561f722sm61485966b.10.2026.02.12.06.47.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 06:47:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c16f0aff-0821-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770907649; x=1771512449; 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=KhmKvOCFr03n94/Oog9YHNmUDMvOXW/QHi6iRkXV/To=;
        b=Dev1MkKFsa6LihJd4guLaQwNzPtYbqSGjJCZ5qGs6z0JV+JsCzD6b+X/QgfA0AgVlV
         D5NBdFSS04KMQMvH2LcH0YgEDsTrj5asEH2Fl6mChv9+hjV3bTwChhur3F+sjS47b0Lh
         sIFUyt8PPptAs9ErYgfJCtqTaDhZYqoDUToPaPa91JAdh9dGT3gKkBZSB4A48mz+g+Yx
         l+Suko/CW/7IKb+lYfrcWoqQbua3oCYrMr3QPwbQ8mOSfwt/ahs+PS5ePQO3PLS88j9l
         EQ3H1pumdxwmlvpwZlXZ57XM0CRf19PVeH05AukWYk5WMwBx65o3TKyx5w5jEjyaF2Iv
         APGw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770907649; x=1771512449;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KhmKvOCFr03n94/Oog9YHNmUDMvOXW/QHi6iRkXV/To=;
        b=OT0M0mrS3t6oZ8MtLzEN4WMs99yUbXxxUcYIwwMt83+LAdmoxQ2cbaJ94zInJYEos5
         TBbSnfKsc3N3ud8F/cLllOrdvDHGaa1EFKwWGYBs3NCRTgkv8yAb1Hf8UlLJCiTX6AtT
         rplh+V4PtopMWQv1hapnWk8f0Za2SEgJGcNhlhGZJkWNUqrsJwwRDkyMFDYgHErWlrj3
         cbqttBnCBMZhpbMeZqRa48TBYIU2ln1ffsmEAGy1fwXlKfK9eGqZ5/ycF/BUmThXwT02
         Y5rdSXE4PXkkM1krxFJTOZYjqRjIqm0Lc+uDPT/gg27H03ISp+JZw4MI14FfOzAIgmtf
         I0KA==
X-Forwarded-Encrypted: i=1; AJvYcCXHOebqoXjUwpm7Y48nKLnE+9xuYpOWBy0VywzquqYBp/o0+T/cZG+i9QsIy+tmsSN5dsuLwqZw94k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyI9tnkRJskQxLssWVKC0xtyjiVDAebn2mqRj0ykGDLvLQCjk2z
	LD2NS6RKkO3MOPwIvIzfyRadc2wixfaWNk0kmONA3R0gTNVxfd3r5nxc
X-Gm-Gg: AZuq6aJuyNd6AHrdEu2AQpoxrZBFAZ7rG3DV6GIJoI4Y3o3MvroX1Zd6QyG5TqD6K2/
	X+mKeq0MR7GHec4xnOq737MYZ4Q8I1YQeo8iWbD9iFDV1JeqQIAjxgW/rMa95wVA2XYJv5mh+Bb
	NHNbrDU2n9g+H4xfogfR8G2vL5NaMzrd9DCIpHJhw/aYJjas9/n85kvh+PjB5692hpthbA78/LP
	aCEun3WdFSyTl1Xt/YKqikfpHgKZadCfGsMZw9HweysRiKvKb695wPRxS2a5xlHVvCgl1FGYFf5
	sr0Jt2q21JgsI0Zvnh1Pjkd8arRCjCoXWpAfZilbdL77UoKwnOYt1247vTL3nt6WnaPXepJe3TS
	h0xZ5XBAeWmaMTQB7DpPyWpSDl2r2eAuKGaplqLXm2XZTbm33tUqbHf8A417w4LGxxaI+Q9MlN0
	1qTYxQ3r2Xsw53BqGNBT9B+rdF6lUxD1DfOG0PW0HMrhyeMBpgY0mRJ2jQ8d2aaRG+yGKoYxJAN
	NM=
X-Received: by 2002:a17:907:a07:b0:b87:173f:630 with SMTP id a640c23a62f3a-b8f8f60eb4dmr186348266b.40.1770907648995;
        Thu, 12 Feb 2026 06:47:28 -0800 (PST)
Message-ID: <4f9953ae-8722-4971-a214-6c40f7f5859a@gmail.com>
Date: Thu, 12 Feb 2026 15:47:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for
 VSATP and HGATP
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
 <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
 <099768df-ec44-454f-8a9e-4897d81309f9@gmail.com>
 <ba48bef0-551e-4ea7-8d9a-fb54b9b85da6@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <ba48bef0-551e-4ea7-8d9a-fb54b9b85da6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/12/26 1:56 PM, Jan Beulich wrote:
> On 12.02.2026 12:57, Oleksii Kurochko wrote:
>> On 2/12/26 11:16 AM, Jan Beulich wrote:
>>> On 10.02.2026 17:36, Oleksii Kurochko wrote:
>>>> --- a/xen/arch/riscv/p2m.c
>>>> +++ b/xen/arch/riscv/p2m.c
>>>> @@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>>    
>>>>        return get_page(page, p2m->domain) ? page : NULL;
>>>>    }
>>>> +
>>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>>> +{
>>>> +    if ( is_idle_vcpu(p) )
>>>> +        return;
>>>> +
>>>> +    /*
>>>> +     * 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 what will be done in
>>>> +     * p2m_handle_vmenter().
>>>> +     */
>>>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>>>> +
>>>> +    /*
>>>> +     * Nothing to do with HGATP as it is constructed each time when
>>>> +     * p2m_handle_vmenter() is called.
>>>> +     */
>>>> +}
>>>> +
>>>> +void p2m_ctxt_switch_to(struct vcpu *n)
>>>> +{
>>>> +    if ( is_idle_vcpu(n) )
>>>> +        return;
>>>> +
>>>> +    n->domain->arch.p2m.is_ctxt_switch_finished = false;
>>> How can the context switch of a vCPU affect domain-wide state?
>> It is wrong to have is_ctxt_switch_finished per domain, it should be
>> vCPU field.
>>
>>>> +    /*
>>>> +     * Nothing to do with HGATP or VSATP, they will be set in
>>>> +     * p2_handle_vmenter()
>>>> +     */
>>> Why can this not be done here?
>> As VMID should be calculated on VM enter.
> And I didn't suggest to calculate a new one here.
>
>> We can update HGATP and VSATP here with VMID stored before in p2m_ctxt_switch_from(),
>> but then it is possible when vmid_handle_vmenter() will be called before VM entry
>> VMID could be changed and it will be needed again to update HGATP and VSATP what
>> will lead to flushing of VS TLB twice (one in p2m_ctxt_switch_to() and another one
>> in p2m_handle_vmenter()).
> Is this a concern resulting from particular logic you expect to appear
> in the window between context switch and entering the guest, or is this
> merely an abstract concern?

If we will have VS TLB flush unconditionally in VM entry then it is merely an
abstract concern. Otherwise, considering that speculation could happen between
context switch and VM entry what could lead to that some entries were added to
VS TLB flush with old VMID in the case if then in VM entry vCPU might receive new
VMID.

>
>> This is also an answer to ...
>>
>>>> +}
>>>> +
>>>> +void p2m_handle_vmenter(void)
>>>> +{
>>>> +    struct p2m_domain *p2m = &current->domain->arch.p2m;
>>> To save yourself (or others) future work, please never open-code p2m_get_hostp2m()
>>> (applies further up as well, as I notice only now).
>>>
>>>> +    struct vcpu_vmid *p_vmid = &current->arch.vmid;
>>>> +    uint16_t old_vmid, new_vmid;
>>>> +    bool need_flush;
>>>> +    register_t vsatp_old = 0;
>>>> +
>>>> +    BUG_ON(is_idle_vcpu(current));
>>> This is the 3rd use of current - latch into a local variable?
>>>
>>>> +    /*
>>>> +     * 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
>>>> +     *
>>>> +     * CSR_VSATP is already set to 0 in p2m_ctxt_switch_from() in the
>>>> +     * case when n->arch.is_p2m_switch_finished = false. Also, there is
>>>> +     * BUG_ON() below to verify that.
>>>> +     */
>>>> +    if ( p2m->is_ctxt_switch_finished )
>>>> +        vsatp_old = csr_swap(CSR_VSATP, 0);
>>> This shouldn't be needed when ...
>>>
>>>> +    old_vmid = p_vmid->vmid;
>>>> +    need_flush = vmid_handle_vmenter(p_vmid);
>>>> +    new_vmid = p_vmid->vmid;
>>> ... the VMID doesn't change. Imo you want to drop is_ctxt_switch_finished
>>> again, handle things normally in p2m_ctxt_switch_to(), and deal with merely
>>> a changing VMID here.
>> ... (check the answer above)
>>
>> If it is okay to have potential double VS TLB flush and double update of
>> HGATP and VSATP when old_vmid != new_vmid then we can do in this way.
> I think the simpler, straightforward approach should be used initially,
> with improvements made once a performance issue was actually determined, or
> once a less ugly (sorry) approach was found. For example, assuming CSR
> reads aren't overly expensive, it looks to me as if during VM entry
> - vsatp only needs writing when vsatp.MODE is zero,
> - hgatp only needs writing when vsatp.MODE is zero or when the VMID needs
>    updating.

Do you mean to do that only in p2m_handle_vmenter() and having
p2m_ctxt_switch_to() does nothing (or just dropped)?
If yes then it could be an option.

I thought about such approach but decided to go with an introduction
of is_ctxt_switch_finished as it looked to me that it is better for
potential TLB flushing optimization.
But I am okay to start with suggested way and re-work it once a
performance issue will be actually determined.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:07:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:07:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229260.1535239 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYHG-0002kV-8N; Thu, 12 Feb 2026 15:06:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229260.1535239; Thu, 12 Feb 2026 15:06: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 1vqYHG-0002kO-5q; Thu, 12 Feb 2026 15:06:46 +0000
Received: by outflank-mailman (input) for mailman id 1229260;
 Thu, 12 Feb 2026 15:06: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=zRx/=AQ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqYHF-0002jg-MY
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:06:45 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 70c7262a-0824-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 16:06:44 +0100 (CET)
Received: from CH0PR03CA0310.namprd03.prod.outlook.com (2603:10b6:610:118::33)
 by DS0PR12MB7557.namprd12.prod.outlook.com (2603:10b6:8:130::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 15:06:39 +0000
Received: from CH3PEPF0000000D.namprd04.prod.outlook.com
 (2603:10b6:610:118:cafe::64) by CH0PR03CA0310.outlook.office365.com
 (2603:10b6:610:118::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Thu,
 12 Feb 2026 15:06:26 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH3PEPF0000000D.mail.protection.outlook.com (10.167.244.43) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 15:06:39 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 09:06:38 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 70c7262a-0824-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XEqcSYiqUrnc5bLthVvi4riYJY9bfvshFx6YUTUoPkuM/RmoFbSuT7BTN/iht7P8ygVQ3+mrgAexXkO5nbdO3PP8SKlUTZuNeCqFtvlyV2hXSSiTwtrUHMUAG/nTFPHVck9RxWkMk+dAhhUZEn+vbDwijkNBe2B9omKMmOoFF4VOfCh9CB8DfCSNaWpGxP9Q7/gaGbwS7KjU8kSYFd2HgB8NPSSMy8SVgvpngol9NrxGW2QF7qDltOaR7nR+gGlO2/cmS22QwcAc0etIJT09AZ+mmLp8IdlpgkRpBAqWpmW66FY9n2pnzbwUIwsLhktRQP2aDYN8L8PZCTUW4P6J+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=CViXR9wDyIBVwA1N+AzkjLIJmHoN8bTgbQtlPLtNqOk=;
 b=yhsyXUfXETo9N2XtKnhcOfv+lfKCS8WaINZYRAMRyNr0NESOdKNcN9rsukedySbuw3sPqe794u3hyZPWjErnNLFC9ofx28xoggdGFDt0A/tPtrB/FI76MOO7ylfAouGb0D7TZF5LAACHOkIpsXsyoB9Y/EF3tc1+pIa9YH4mZEuw/HdWaWurO/pAMAP6tCvcL8Ixk/RgEq2eOTJNCm6WNYDyJMMn74iYb3u0lKX+BnN4uwggDkvoVlvjKnyuRzSThAbZEQX/ZgKcVInCRYnCaC6vdtAEdys+Ysnkexj59cjHsZ7i7Dn0i55us/Vz5C1MsiltAACdHLE9UJhZd0ZicA==
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=CViXR9wDyIBVwA1N+AzkjLIJmHoN8bTgbQtlPLtNqOk=;
 b=dFBYTdhlqvszvHLqdiF3Tl/p1CafZu6gNe2us5jKua7apgPMILAdPqxbYIJtj7QYiKwOAmuG1Bej1xUpmINwp/mghmAEktgfl33d2e2iFA/NH6Zk8uOM3UA/Kuyu8cAqkXS3hFqrpRphlEb3/k2u7H7dz/j+bRG7A0B6TgxWYA4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Feb 2026 16:06:37 +0100
Message-ID: <DGD2RYDMNWSJ.2JIIPRX6WYWJE@amd.com>
Subject: Re: [PATCH 06/12] x86: Migrate switch vendor checks to cpu_vendor()
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-7-alejandro.garciavallejo@amd.com>
 <dea3752f-1926-4fb4-b0df-305ebbea4aa2@suse.com>
In-Reply-To: <dea3752f-1926-4fb4-b0df-305ebbea4aa2@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000D:EE_|DS0PR12MB7557:EE_
X-MS-Office365-Filtering-Correlation-Id: d683e7dc-97de-4c3c-6844-08de6a48531a
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?M2dZbTE0NGZZWUs4MjUvRjJ5b3hsRDZBb0w4dTBCb3JZVTdFaGJ4cDJiWVAy?=
 =?utf-8?B?ejBXeVpYM29aajNQTmkrb2RzcmNQS29ub2ZrejcwUlhlS3BDQkllZVZ0VC9J?=
 =?utf-8?B?anZHQXNEdE1iem9kaGpTUC9UT3RDZDhjSDdnNkZCTmlYOEZpZFRoVERqbm5j?=
 =?utf-8?B?Z2k0ZEh3b3MvLzl4OWcvbXpDbnNyTkFWR3cybE5GR1lyWWpUenBydVo5S24y?=
 =?utf-8?B?OGdWTDVYaFVKTzBFVDkzL2dtVzdtS3QzOUg2OGUyNzk0SWNYbzdvNUFOYVdr?=
 =?utf-8?B?cHBVcnI4U1JpVFpFR1JRTmpOQkNmMlpOc1pyeTdzbDM1ZEF1MVV0MzZ4Q0hh?=
 =?utf-8?B?d3dhOFlYRGozMmJmd0U3bHhHYkFFOW42RENjUUFYcDJrSEU1ZXJJM0xYWmp0?=
 =?utf-8?B?LzVoN0tESnA3aUdQSG5XZFZydEdvb3FMQkJFSGdPalRYMGZ3RUNIQXRqMXpL?=
 =?utf-8?B?a0FRbms4alowUGpEN1QwVTQ1citFM044RGtjSHdLMjhSZWIvcFAxekhNRW5q?=
 =?utf-8?B?anlRSEdrSU5CbG01NlVzRWE2cE9KM2FIRnNqUk5vZTFUdXEybzZ4QlBFV29v?=
 =?utf-8?B?eDNqeEhCUjJuMjRKZTZXY1pad2Q2NStVWFdTckZ4MGc1YVloZnV5TG9uUFZs?=
 =?utf-8?B?YzdQblhUOWJGSVExSE04NUtzdExGeTFOOVJwbzRVYXlISDlpc3RmcktPa2xF?=
 =?utf-8?B?TnE4OEpuZ0VkUnk0Zjc2d1hMOWIwVW4zeGVNTktUSVRaOERSWEN0TnVkYUVP?=
 =?utf-8?B?aFRzdWVaRUN6ano1S0xmVEF3OWNMY3hwTE1XNHd6alJrR3FTSzNTZXU5TG5y?=
 =?utf-8?B?djJRMzNGeGNscitZdkVPY0ZqT1p5NDJVZ0Z3VFMzVjRoNDZLRllMZk42WjN1?=
 =?utf-8?B?anhsZmpLbFlRUStCb0RBOHk0Y2RTQVBqa3pXWEQwM0psQmhxQ2QrRENuVnVU?=
 =?utf-8?B?TU9KaGQ1NHBSWVdaZGxycTNOZjZiTjAvd2dhaEJRdEc4azl4aytsakZ2dlk5?=
 =?utf-8?B?dGVXUCtzWk9qZEZ0Y0ZtLzlBN3FBTEQzRkxkaW9vUVE5ZVlQNnZiYTBhdVBG?=
 =?utf-8?B?WlkxOXdjVVoxTVh3STFsNmRiNkZvVHRFMnVXczNBRVg4K1JibmhHdHFFdWVV?=
 =?utf-8?B?MGxscTFyNjR5djhQNEhoRWpFazBobDJlWWhmbFNkOHNYMkJlcnBMb2ExOWFY?=
 =?utf-8?B?Q29BTUc5Tnd5OHRGZGU4d0oyNFJSbVhzUzBjYVZ0cDBBcHAwYm9qbDdEck45?=
 =?utf-8?B?QnBTK3lkWWdwbmVIMFhWMHZwbjhPcHFyTW9JUytUeThxOUxubFBVMUVlNVdK?=
 =?utf-8?B?bHNBcDQ1TU95YTV4cHNTeUFpRi9VU0dUd0llaC9EZ1JXZHhtMkE2dGFJU3cx?=
 =?utf-8?B?Q1B5V3UrMUVQYjRoWCtDSjZsMlR3d0ErdTVWNUdPOVZ3OHNLQStOSmNQYXZj?=
 =?utf-8?B?SWtXSDBEcHJMMzh5b29WaWlncjlyVjFJQnlibExXakJiUWxFOW5FSzFHNTNB?=
 =?utf-8?B?Q1FRZGJoVXU3MDZMNWZiUlQ1WmRaV0VjU0x2MDlHd2hMcUZ5aS80di90TUhw?=
 =?utf-8?B?d3VRNjdaUVl0VVdCWkdNR29EREJ0WFMrZVdsb01rMHE1UThzLzhSZWF2YTFv?=
 =?utf-8?B?T00zaEJ0N3V1dEVYdG1tSTJvenQraHU0MEFWaDZ5N3VoNWZaYzhuQ2g4YnAz?=
 =?utf-8?B?WUw4TnRrd3FlMTkxQmpoT00wZjlocjU0L09GK2gydldIU0NPMlVwRHVnTy9s?=
 =?utf-8?B?aTVDOTRwdUIrc1o2cWhtOEtmN1J5MUJTazVFVEx3b241RGVZMkhaZGtqanBy?=
 =?utf-8?B?bGxObGo0R2dQY1VnelVBaWdjajVFa0xhOGpYQ0l6bDRBQUhISFVOSUtHVzR5?=
 =?utf-8?B?ZHhWLzdnWm1wWFNVT2NDMkNOM1FWQlVWQkc3Q0x4N2E2clMybTk0c3lnZUxF?=
 =?utf-8?B?WkVoZjNwUGp2alk4TlRYbUJXbkpRZHFuV2JwNXBuaWRZWXZhbEE2REFSNlpv?=
 =?utf-8?B?a2dNdTZDbi85alZrSmxLb1VXaDI0dWY1VEZZMk1UdFdhU1ROVDJJOW9jQ1Zr?=
 =?utf-8?B?cVlFTlJSN1l4MVc3eHRaWWlueWdrY1ljNGJEYzFrSzNYanhDWWlSWlg3cnlX?=
 =?utf-8?B?SG9UeW5STSsrekc5d2szSDNXMzhiRGQybDN1azljN0ZmTGZFUXZvM3VDYWsw?=
 =?utf-8?B?ZFpJTUhFOUxmSWpRUEE3NXVHZmRBUWNnVWc5cmorYnIwUXorRmtNVHZLUnJh?=
 =?utf-8?B?VkcrTzRBM3BrVTByczBxS3A2ejR3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	jnz87LzrstBU9XnBUXhZuAOJnDJbh6XY8si3Bqu/1hjyyLeT3H3gfBdmMOgrao+h5LhXmeBtfNGrXp9N0r+jyvBYnq3ayIJMkdan30hwtPJb1zjArThxvsJsvudAm5b6EEvbtx9PX+o1fMvgUKZ25Ppj0hMizynMQKmAI1Qd/qBxXtnVw38Ip96Bfl73n/O9ceS17rZHzIefZ6Kr3fs81b2ZDnHEhsRPB0H38d6Tmc+wBAsEyDgL+Hjwv6W3Mk3EF27AVxhlwEM78QFfJMMwNd5IJCm31Xctdfxk9y9JzYujkonON37Nl15lsdQ4Bzy6uvq8K4UxwVJeqd1gyxpYHTa+OrLsoAFXFK+OP41UsMN5ucMssLuBi7N28y6+uKJ3rVq5+kZzEAgVgvRzDjnQDw0dwK0GiPhgxHiNFI7L5h6rT+A1sjBp+wDW3jwqOzhW
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 15:06:39.7079
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d683e7dc-97de-4c3c-6844-08de6a48531a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000D.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7557

On Thu Feb 12, 2026 at 12:06 PM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/acpi/cpufreq/cpufreq.c
>> +++ b/xen/arch/x86/acpi/cpufreq/cpufreq.c
>> @@ -133,7 +133,7 @@ static int __init cf_check cpufreq_driver_init(void)
>> =20
>>          ret =3D -ENOENT;
>> =20
>> -        switch ( boot_cpu_data.x86_vendor )
>> +        switch( cpu_vendor() )
>
> Nit: Please avoid screwing up style.

bah, yes.

>
>> @@ -141,12 +141,10 @@ static int __init cf_check cpufreq_driver_init(voi=
d)
>>                  switch ( cpufreq_xen_opts[i] )
>>                  {
>>                  case CPUFREQ_xen:
>> -                    ret =3D IS_ENABLED(CONFIG_INTEL) ?
>> -                          acpi_cpufreq_register() : -ENODEV;
>> +                    ret =3D acpi_cpufreq_register();
>>                      break;
>>                  case CPUFREQ_hwp:
>> -                    ret =3D IS_ENABLED(CONFIG_INTEL) ?
>> -                          hwp_register_driver() : -ENODEV;
>> +                    ret =3D hwp_register_driver();
>>                      break;
>>                  case CPUFREQ_none:
>>                      ret =3D 0;
>
> This of course is a neat (side) effect.
>
>> @@ -165,7 +163,6 @@ static int __init cf_check cpufreq_driver_init(void)
>> =20
>>          case X86_VENDOR_AMD:
>>          case X86_VENDOR_HYGON:
>> -#ifdef CONFIG_AMD
>>              for ( i =3D 0; i < cpufreq_xen_cnt; i++ )
>>              {
>>                  switch ( cpufreq_xen_opts[i] )
>> @@ -191,9 +188,6 @@ static int __init cf_check cpufreq_driver_init(void)
>>                  if ( !ret || ret =3D=3D -EBUSY )
>>                      break;
>>              }
>> -#else
>> -            ret =3D -ENODEV;
>> -#endif /* CONFIG_AMD */
>>              break;
>> =20
>>          default:
>
> There's a change to the function's return value, though: When reaching de=
fault:,
> -ENOENT will result, when previously -ENODEV would have been returned for
> compiled-out cases. It may well be that there is a dependency somewhere o=
n the
> particular return value - did you thoroughly check that?

It's a presmp_initcall. The specific ret value is inconsequential.

>
> Of course this may well apply elsewhere as well; I did not go through and=
 check
> every of the switch()es you alter.

It may. I did check, but that doesn't mean I didn't miss any.

>
>> --- a/xen/arch/x86/cpu/mcheck/mce.h
>> +++ b/xen/arch/x86/cpu/mcheck/mce.h
>> @@ -137,7 +137,7 @@ void x86_mcinfo_dump(struct mc_info *mi);
>> =20
>>  static inline int mce_vendor_bank_msr(const struct vcpu *v, uint32_t ms=
r)
>>  {
>> -    switch (boot_cpu_data.x86_vendor) {
>> +    switch (cpu_vendor()) {
>
> Would be nice if style was updated while touching such.

sure.

>
>> --- a/xen/arch/x86/cpu/vpmu.c
>> +++ b/xen/arch/x86/cpu/vpmu.c
>> @@ -815,7 +815,7 @@ static struct notifier_block cpu_nfb =3D {
>> =20
>>  static int __init cf_check vpmu_init(void)
>>  {
>> -    int vendor =3D current_cpu_data.x86_vendor;
>> +    int vendor =3D cpu_vendor();
>
> It is only seeing the plain int here that I notice that cpu_vendor() retu=
rns
> uint8_t. I don't think that's necessary, and hence as per ./CODING_STYLE =
it
> should rather be unsigned int. Which is then waht would want using here a=
s
> well.

Hmm, I need to check whether it affects codegen. Probably not seeing how it=
s
all inline. Will do unless it has terrible side effects.

>
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -319,7 +319,7 @@ void domain_cpu_policy_changed(struct domain *d)
>>              if ( cpu_has_htt )
>>                  edx |=3D cpufeat_mask(X86_FEATURE_HTT);
>> =20
>> -            switch ( boot_cpu_data.x86_vendor )
>> +            switch( cpu_vendor() )
>>              {
>>              case X86_VENDOR_INTEL:
>>                  /*
>> @@ -427,7 +427,7 @@ void domain_cpu_policy_changed(struct domain *d)
>>              if ( !(p->x86_vendor & (X86_VENDOR_AMD | X86_VENDOR_HYGON))=
 )
>>                  edx &=3D ~CPUID_COMMON_1D_FEATURES;
>> =20
>> -            switch ( boot_cpu_data.x86_vendor )
>> +            switch( cpu_vendor() )
> As they recur, I wonder where these bogus style adjustments are coming fr=
om.
> It's not like ...
>
>> --- a/xen/arch/x86/guest/xen/xen.c
>> +++ b/xen/arch/x86/guest/xen/xen.c
>> @@ -63,7 +63,7 @@ void asmlinkage __init early_hypercall_setup(void)
>>                    x86_cpuid_vendor_to_str(boot_cpu_data.x86_vendor));
>>      }
>> =20
>> -    switch ( boot_cpu_data.x86_vendor )
>> +    switch ( cpu_vendor() )
>
> ... you would have used a bad sed pattern globally, as here style remains
> intact. Further down it breaks again.

This patch used to be several. One of the primordial commits seems to suffe=
r
from this. Will fix globally. Thanks.

Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:12:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:12:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229270.1535249 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYMI-0004YF-Q3; Thu, 12 Feb 2026 15:11:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229270.1535249; Thu, 12 Feb 2026 15:11: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 1vqYMI-0004Y8-NM; Thu, 12 Feb 2026 15:11:58 +0000
Received: by outflank-mailman (input) for mailman id 1229270;
 Thu, 12 Feb 2026 15:11: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqYMI-0004Y2-51
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:11:58 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2b5e80df-0825-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 16:11:57 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS0PR03MB7227.namprd03.prod.outlook.com (2603:10b6:8:125::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 15:11:53 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 15:11: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: 2b5e80df-0825-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=md8HXiQqMiQJF10CezDmKItSPRlDxFIpfGQNhJPCcylb+2tEb3tpDvACteNN62Qb2o5i9bI1O3ADqM064+qL+QjSr/7kEUEyREnkJxC/tslRER1HatFEJTsM226ckamfTx0MGA78++Zy3/nlvNHlQ202JccHzKu5MFKDrwaHVqAzw+e5CXp8ql/b0tO8OzPZ3wvnte5WZz8K3JY68g+Yasgnky4W8HgJNkoDXVf/QCxLL6/XtcaZk51icOvGbP05M46fJs0uyNbuQlZ46HVb+7vXcF06eNgLnf5pc9FLtCHq9aNhfW3eDkG+qSHZTGRqvUNCNsx+Gc8aZTTKaes6aA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W8WvqIiDbpSzSZbP8fpwg9152H/0Tnqn9QFxuYy2cEA=;
 b=sVdsdWKaIwXiGhzj0Rp5pZOGNSdtpDAPb43lJZJXGFdYp4UWQEJAN0/q//qRYO9RxA/0KL4+t+4FFabyxER65oz1pwL0K1TqdOZJwKHPCDwySDrCjAx1mUhMXfknqMBlqIiLrPAm+Q2tSSPgMng8KWLdyM0ZSXJ4gMq23AIlBeXs6y7GGmFEX+FDEsDAo3kAaxOSNcchbnZ4UdwZDNZiDibqjtRQTHjJB9hbFPPwTB+6G4KtcxCklvvRl/qJ8jzMWOwHp+ps3Qhy11UQXC6Tw8lhqaQO5evLu7uLMGObrVjwYNGRj34/spZA/Q0oTAdAnEhpumRjASOiGqYMgSp+XA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=W8WvqIiDbpSzSZbP8fpwg9152H/0Tnqn9QFxuYy2cEA=;
 b=fqbSSMKHt7I1Y2rwMBHZLXHzMAkHp5Tw/9I42Sq+vaPLo9nS4uxK5g5HBuaG3X4wxPyOQkjBIeA8PWy7/dSUeA2PXsWMPBf0MhHNQ3wv//F33sSNCWDTJ4dXwts8YG55u/sPZHbDO/Sk+TUNjHmLRBBGH99qQHUC2ASR9BACFjM=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 12 Feb 2026 16:11:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aY3ttvtxGCPTNgsj@Mac.lan>
References: <aYtznP_tT6xNPwf-@mail-itl>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aYtznP_tT6xNPwf-@mail-itl>
X-ClientProxiedBy: MN0P220CA0001.NAMP220.PROD.OUTLOOK.COM
 (2603:10b6:208:52e::29) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS0PR03MB7227:EE_
X-MS-Office365-Filtering-Correlation-Id: 76feb553-3252-42f1-7f73-08de6a490da7
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?eFpWTzlsVlpjNkpMWE11RjhPMzZzOERrMXpvYklyZDRDOHdLYmM3N1JHc1k5?=
 =?utf-8?B?YVFQYjNya2FLb1pRWHh2dTcwMTJCT0grdmJzY2QwQU1SakN0QkZ6TjJ1WlE0?=
 =?utf-8?B?ZlZWVXY4N28rUkJpdWFoTnA2R3psdlRjYnh5TGFPYnRlSjhmZzZMZHhwaE9S?=
 =?utf-8?B?SWlkL09pby9DejhvUUZuTFBCVUdGU1Vxdzd4UlVFaWJvcStpSkpCSndvNTdV?=
 =?utf-8?B?dEdjNFAxMStTODN5RlhpdTdicXBRa0tYdTN0RnIzZmNrNzV1cTlPU3RXWVdK?=
 =?utf-8?B?Z1phL1hmc0Jib05UdmZ2Sm9TcUxPVi93aDdnSml1cVFtTENqdHBPNVNPQXBL?=
 =?utf-8?B?NHZTcmY0N3ZhYkVTeWdoaXcrbUgvd2ZGRytWTWxhcU93VlZkMEFUNzkvSG8x?=
 =?utf-8?B?NDNyaUdUalVDamw0MGJYVnRKQUZhUzhocy9kMlRqdnlFbjdVell3SWQyOWxQ?=
 =?utf-8?B?UXpMQ1FaNXJMWFVkQzNqc3hhTi80YXMzSnZhK1NaZ0F0RUpoeS95V2g5VExR?=
 =?utf-8?B?dGYwemdBNkdZVFZmV2NjODFpQVdHcERNR0pxNkplcHIvUjRhYmUyNHdmRlov?=
 =?utf-8?B?VEs4RlRnemFIaGU5VW9QcFF4QUVNc04wWWkzZEdIM3lCNmEwaDMydDI1aUJY?=
 =?utf-8?B?VG96OERZKzlua2doRUVTQ2xIZ3ZWUlZSbGsydHdDQ2orNmw2bGhrLzQxd3Ar?=
 =?utf-8?B?dS9KRHlXQzN6ZkxXT0xnT2dJMUZrWUNGTk1vOW9XVDdJT1EybTZFd3ZmWUNL?=
 =?utf-8?B?N0RqNkZZV3RhSDZOYW1jZjMydUNhR0FTYTRwcjhXSCtxYit3ejZobHoyR05D?=
 =?utf-8?B?YkdaSkUwcHZPd0oraW1CZFpxenNCY0U5b3ZRdFpEeHpwS2Fpa3ZVNkpWK20y?=
 =?utf-8?B?TlYxS0lJZkpENTF5aW50djFraHRjaDNOSklwUGlsekFRbE5uUVh3L3YzOXl2?=
 =?utf-8?B?QU4zamtreU13OFRUZ0VCUlgrS3hhNHdsYVpFMXJUS2xRd01nK0psdFRCQk82?=
 =?utf-8?B?bkM2c0hmUTh4eG1EeE9BNGxMV1ZPb09SanNzck1NRUlTVXVQaEh6NnBjd0lz?=
 =?utf-8?B?WGUra3FPNUNqenZRSld3RkxhQ0xvODNTZ2UxZFZ5ckxuLzY4bUFSanU0dHBO?=
 =?utf-8?B?YnFOVnl4VHJCbU1ic1cwNG0zbmtzWVZMaGlLZ25DNEJzekNQTTZnUUF4TE85?=
 =?utf-8?B?ZHhQajlMSyszbzMwWEFNbm5zNnh1dWlNYW1NdHQzUkxybzBqT1FjNDgwV2Yx?=
 =?utf-8?B?eEduN3VJMUhJR1FqaUUyNUJmb2JqTUs4UGxCZ1ViNkNZV05Fa2kvZ1BVa0xU?=
 =?utf-8?B?VjdNbmpOZ0dkZCtIMy9jWGtHUXN0Z3dqSzhFMGZCVFcvcUl1WVQxb3AwZWVK?=
 =?utf-8?B?cEtvMXkvT2JsQmpzakVmNEZVVzEyUTc4ZC96ekhDY1NQQm5Nb2hYZ2tFRkhO?=
 =?utf-8?B?Z2xBdlkzMVFOQXhqTk1uaTVlOElPVGNES3JCc1l0NVhhMTcxV2w4N3RFblZ4?=
 =?utf-8?B?SDFLcEgvY0JBcUdSQnN6eHRhQ3grU3puNXBONzRNQkpmRWV3M0Z3SHJ5dG1h?=
 =?utf-8?B?N1RoWjZRQkw3TlN0aFdMM0Z2QXV6UzU1UmdBdUJ1NUtQMy8zSzgxck1RWjA5?=
 =?utf-8?B?ajVUNjNtTXdiZncvZ1dnZTB0aFE4aXRYZFBxbWhQaXl4UThoVnBCR3AwVXM5?=
 =?utf-8?B?aDJOVFBJaEFzTE13MWdNTEZDMzY3K1ltaXB5SHRTWjNHUUtoT3crdjVZQTlE?=
 =?utf-8?B?SXRHVWxXVHl6Wk9EOEMxQXozc1B6c2JVN1dFSTQvS0NobE5hVkFlZnpxbllP?=
 =?utf-8?B?c09NV1NneG5leDMyUHdST2FBajl0cGF2UHVmTlZjZkgwZEVNbUJaWnpReUlY?=
 =?utf-8?B?MlZkdjl2dXFzYjdrSzRIYk55eW4yWCszTUNhV0prMjlHdU5YbldFY3NGbmhQ?=
 =?utf-8?B?UHZGY2ZxQVEvckFKVG1pWnJPUlZ2TjlCazVjeElUcElPdytmZ0V2cXZ3SEY0?=
 =?utf-8?B?ZmVrVEJ3RDdJMFlEcW9QVjRSeTgyWkxydGJzb0tmaVdwNGVQSFJwazJLblBB?=
 =?utf-8?B?cWVNc0Zxdy9wQVo4Znp4SzdhclF6UTF5c1ZCOGFyc3ZVVitRbWlyOE4xVGZL?=
 =?utf-8?Q?y+P8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UDVhRzVkVWNJd0lhOXJUM2o4bUNWeitWV0c5OWlWblVmNGlWajBYSGx4N1k3?=
 =?utf-8?B?aE52QmwzTVRYZ0VQa3g5UEkzeEw2RFJzWmJHZlJwdlozQzZoRm4xMVRIQTJ2?=
 =?utf-8?B?MWlWaG10UXkvV1R0YTB0bUY4RXZjTEpTdUh3WnUzZEpBK2swRGpMUFhsWlFU?=
 =?utf-8?B?NDVUcnVoaXFpWVMvNXI3WmRoY2Nwd2FhUDVuM3hjYW9EYXVMU3pRSjNza3dl?=
 =?utf-8?B?aWlsWDVoT1dTdFh6T1FOTGw0Z3QzMU9uQ3QvTXBTK3d1Nko1QzZCQTVHZWw1?=
 =?utf-8?B?dUZzWWNsNVdobnA5WlJ2NUdaVVFxbmsrYmFwUzFudFRwbVVFNWxRcEZJY25x?=
 =?utf-8?B?NC9aTHArZ2FUeEx2b0hFcStzbXZHaVZtZjQraXRyZHgyblFZbEx5aFBHRk15?=
 =?utf-8?B?Y0FNdXg5cnJqSHN3ZW5kT2xxdzFZY3dYa2hkRU96VnJtTG04TUpCRHgvVVJX?=
 =?utf-8?B?SjNrR1pQOWExVHZZSHpURW03Vmx3VXlFYkg3Y1FtUHhONEpFNjF2dFdCSHRl?=
 =?utf-8?B?eGl0NUNyNnpTdjVJOHl5OTJiS1c1OTRJN0NYcWhTL1VrZ1IxbXF5emkvUVFV?=
 =?utf-8?B?bEl1R0cyZnlrQkRGa0szKytkMXI5ZjRhMm45Y2JEYmI0NlMyY3AxUnphcVB5?=
 =?utf-8?B?UGM1eno1anNNM240WVpubGdSbUs2QlRtclM5dGwrS1JMenIvSUtnWGZ4ZjVM?=
 =?utf-8?B?RGNLRGVEakpzeitVVFQ2Mmg4V0VkQlFTQWxncnliaGxSK1AvS1ZJaExpMEth?=
 =?utf-8?B?NGY4NzU5TjJib3BRNHl5ZE9VaitLSStiQXVyaE05NHJ5amduS3dCK2hpZWdU?=
 =?utf-8?B?a3FmcjBMN3BtaXZhZGFUUGQ1a0ZOZC90cjI3MkdJNUJFQkZkVm5TUHdNZ0hh?=
 =?utf-8?B?M3d3dkNzeDY0L0IzcE5WdDVjV3VRUnJzVk1aRUZCRmEwMWNhMWVVaDNwV1Fz?=
 =?utf-8?B?ZnBYMEhBUis4R1R6YW5MQitIbkVCUFY2MHU0MnQ3TzRpNXd2bHgweE9xR1BZ?=
 =?utf-8?B?emhZNXdDcXMzSDJhZnlSdExrNVhQVWFMMGJuS0Nadk9IZWN1aHplS3FPcWJl?=
 =?utf-8?B?KzI1MzJYQncyMTd6MU1HU0xteTljcFpFdUtqc0xkeFhQSkI0bE05bUJmTmNL?=
 =?utf-8?B?U2JuQnpvOGkxRks1eGV0YW14S1dtRkUzWWZHU1JEblgrTVBDUTJheWx3QXZ2?=
 =?utf-8?B?UXVxQlZCajNycVZYSmFtMHhROEpwNWVVZmd1ZVFVbXhMTXI3QzZKMHdBd0Mz?=
 =?utf-8?B?UDh4ZkVJTmpqV0ErYW5uOEc4VHc4VGlnMUc0WFZXdEY0RzRzdVNkaXBpa1BO?=
 =?utf-8?B?bnZtcHUyc0lFTGI1cktIbmw3czA0bmxpUktCaE14TDFqYkwwUjNuUDQrbzJz?=
 =?utf-8?B?TG43UlloRVpvcGlmSGVPaFVJK1QvRnAyNUxwcmpjU1lHZVZLY3hOUittZDZM?=
 =?utf-8?B?ckdCeTYySE9XQWd6UHBzTjVjNVd6UGZ4RE93YjlBeHR3cmhrMkZwZ1Q1OTFm?=
 =?utf-8?B?WU1oWkxvRkUzcVY1QjdPMHd3a2JNRDFYWDdVVTRMa29zOWt6ZEVIK0NGMEFp?=
 =?utf-8?B?TTQ0SmEvNjMvTlROa2cyc2N5c09TY29GWmxPZ0oyM09meEJTNEZMRzlDQlIx?=
 =?utf-8?B?R2xOckVhR2k4dGZBcVNRQzNZOXRTdUQyWHJPMDdsTk1UbFBpYjV1dDNja3Fk?=
 =?utf-8?B?SzFvaDJlY3N6VDQxS0Izb0xsdE1LT3JNTDcvMTVVYTZ4WXc5NE5zaGtSSkFo?=
 =?utf-8?B?clM2ZFFQR0ZZY1pkRzM1V1F1NkQzRjNBa0szc1hWd09RWmFIWlVPMHNTQmQ4?=
 =?utf-8?B?U0VXOENNQWdmVStHNmtqMzh5VzBFS3g2RUZkb2F6SExKU2JUTDJJNmJqRm40?=
 =?utf-8?B?bmxXMGlRYmJrY2s2aXc2My9CbmJTMTh3eDNrdW8wZ2Npa3pmbHdWbkNJdmVT?=
 =?utf-8?B?dnF1US91RkhMSDNvQm5yNkVxMVZHZWIzOXBicUw5UGR1UHlJS25HZWV1OTdF?=
 =?utf-8?B?QzhFSHpvNEdqblNYM2lRcG9DK0RabGUrQ25FUW1tVnZ6K3ArWTQySnFxWWlx?=
 =?utf-8?B?bWh1MmpYUk51eGRodVBCVUl0Y2t0VUpkaS9Ed1N1c1g5U0NUMXhTOElnd3hr?=
 =?utf-8?B?THhEK2dnLzZKQnNnSlh2VTJtZHlJbjFvTTJZc3l5dEJ4SXFFTGxTMStudzJy?=
 =?utf-8?B?YXlQd0QrNDJUWkRUZGgrK1dhcjNLV3pvQUNqMDBFckN0dlZqZlFWcnJaQWl6?=
 =?utf-8?B?S1EvRWNqTWYrNnJEWkZTSVRTLzNJVVJCYm4yY3pLV2RVTmxTUVYwOExoRFhq?=
 =?utf-8?B?NnkyQVJsTEcwN0grWHh1eTc0UzBGVlFRcG5IWU1BRGZmd1NyTG9zUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 76feb553-3252-42f1-7f73-08de6a490da7
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 15:11:52.9430
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ocz9kk1JvKJCZUzFLRtH3dgBR9KQdz+rZpjGWiNc/055Nok0eQ57kK1MSeCsdMqRMBzq66qQj1XLU13cBuM5hw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB7227

On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-Górecki wrote:
> Hi,
> 
> Recently I started testing compatibility with Intel Lunar Lake. This is
> the first one that uses "xe" instead of "i915" Linux driver for iGPU.
> I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
> Linux 6.17.9 in this test.

Not sure it's going to help a lot, but does using a PVH dom0 make any
difference?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:29:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:29:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229297.1535260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYdJ-0006b6-6F; Thu, 12 Feb 2026 15:29:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229297.1535260; Thu, 12 Feb 2026 15:29: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 1vqYdJ-0006az-2c; Thu, 12 Feb 2026 15:29:33 +0000
Received: by outflank-mailman (input) for mailman id 1229297;
 Thu, 12 Feb 2026 15:29: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=zRx/=AQ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqYdI-0006at-7o
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:29:32 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9d6cc0d1-0827-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 16:29:26 +0100 (CET)
Received: from BN9PR03CA0776.namprd03.prod.outlook.com (2603:10b6:408:13a::31)
 by MW6PR12MB7072.namprd12.prod.outlook.com (2603:10b6:303:238::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Thu, 12 Feb
 2026 15:29:19 +0000
Received: from BN3PEPF0000B077.namprd04.prod.outlook.com
 (2603:10b6:408:13a:cafe::9e) by BN9PR03CA0776.outlook.office365.com
 (2603:10b6:408:13a::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Thu,
 12 Feb 2026 15:29:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B077.mail.protection.outlook.com (10.167.243.122) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 15:29:19 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 09:29:18 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d6cc0d1-0827-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BlKJxYAWr5ed9D7SsyImVkeODMJOIHB6yxRG2OC2wpy9vNr/9fXqoDu/uOuleu1KoJm3q4ZqkWFMNErp5RzwH0qO5yOVzE8wauebAmWBQ0X/czGaK/GmTZs3YsSXv6xqw5H7sW0dmPawV2gKW0YmthwOXhLb4hkiFLd8ClT2zcI/0lLFBu8i2TXz5b/0JtlXm/JRjzLGqy7jdwnjUWgAt2VysuNtRSJ4Uz9zILOgHB0UMc0MtnPBn4VS3aSdgw8x9TUlzC6jX/ssPXOYyHwf5tDeQjIrxBd/vJZdg9D3pkD1zmXuciO3m88eYHCveZ9ANAH0jmcybQUlynihSVIJuA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sw5ygoxVKiT+AAE2mVV5SNuh5d1fTHTcz39e3luENq4=;
 b=X6uBbkixlnVaPCeNMY0qM+JREe4u/0CLlUk95U1/e8gPjRh6a/K/uTEa/jy+gEXW5w/NTBv895p6SyFIk9JxfBiLIbhGnSFB16XfTVioRn7kj8kS9tb5VDlf7Nz+NCo+6ejaej1zbBVpvaBvObINYiJGqOmc30RhSwlpwHR8T11qFYeOofX8nj4IEHr2DQ6NUgWKFFQSYPMW/ZFaU8xYtbHRNANI5Up8/z2AEjcFIQ2B2NTPRUAsbnnbdJk8/dkLcvF/OlTNgoDnLX40OBnUwIKM3p4czdK3R/oqHApI7CPg0x+5dn/njzc/bxXYVpIAuIu9J6LYKh7zp5DJQQPw4A==
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=sw5ygoxVKiT+AAE2mVV5SNuh5d1fTHTcz39e3luENq4=;
 b=gFza4miggg2wCbKT8XOr97VqSvyiVyppqDF3NbxMGqdRJHzFNoX509i6hyIS0FtAnyzfUSuIkoJp5cUjezIuUhWa1gDpVOL9BEiKFZ8JhCbTTJnMR83K6qk5vlQ7Rm/L0SueQA6f8J7JW0l5J3ef98X3tRYTmoOVWWJxwTNa940=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Feb 2026 16:29:16 +0100
Message-ID: <DGD39B00LVPV.1XCP36GGDSF4U@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 07/12] x86: Have x86_emulate/ implement the
 single-vendor optimisation
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-8-alejandro.garciavallejo@amd.com>
 <100f63bf-cc79-43c3-a0f6-147d2dff080d@suse.com>
In-Reply-To: <100f63bf-cc79-43c3-a0f6-147d2dff080d@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B077:EE_|MW6PR12MB7072:EE_
X-MS-Office365-Filtering-Correlation-Id: 900b0578-414d-4fd2-a787-08de6a4b7d8e
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?amlyRWVNRFlpci84TGlEdnNIWG5UczFPdEJpZ2xROGVOSEo1NGl6YlhpRUN6?=
 =?utf-8?B?QVVLRlQyMU9qWVE4TUdjWkZyRTBXWEExcW5VaW9aTzFjNXVFUnMyUjRORlFF?=
 =?utf-8?B?azcvbHhyV0dzeDNqbXZubEJhMjF5TEdtNlVBUjUwcytFdkJnWlg3elpraEtH?=
 =?utf-8?B?TVVUSHNCR3pGOENtNjVxVmlqVjhWMGh6dWNWUDFvQk40U3NHaUhkMlRPVlNr?=
 =?utf-8?B?blMyaWhoa2dxekF3eGNFNzJXRDIyNGhoMWFjekovcjNBSWtWQnJIbEhrSTBr?=
 =?utf-8?B?b1ovSkRlaUxHcmVOZTJJT2xWUW9PTHZ2TVF4L21zNFRvK0FKZGcvQUN3dXRR?=
 =?utf-8?B?OS9rRVNhOTdGdXVaRUEzdzRSeWFmdWxiTzc2aG9QNXphTEJ3dWFxK1IxcEpB?=
 =?utf-8?B?OWV0dmVNY0hYWStOQ0JzVTdnTVdRR2NSVUF1MWJ5ajZjR2VCelRaVmo1allT?=
 =?utf-8?B?KzlXQmc0UmtrQ1BHN3l6K3NpV1JnRDk2QTJTRmp3U3pMR3pjRjJTVmlnSE5q?=
 =?utf-8?B?Uk5mQmk2QThsT1VBcGxmaURLdTkwQjY5M21WU2JkZFNLb3JnSUw1YmYrYzFV?=
 =?utf-8?B?UEFKWTNPVXRHa2JXK2drTEdDVHFCMnh0OGVsSkJGeDZSOGlZcGFrR0ZwQ3Zr?=
 =?utf-8?B?RDQrcS9qZHQ3akJyNUZ6cGZ1RjBDQ1lCT1NXSWk0dXhnSzVJbG1jd3BPUktj?=
 =?utf-8?B?YTlndE1ycmlGNGs0Y1hlNUdKekQxV0ZmOGNOWEprUWY3U3lPQW5vdTd6dmlM?=
 =?utf-8?B?UlFZd0lyZGNidlZCaTBBclkySjM0M2UvUkVXRGJUOEhuWGIwZ0UwQ1JteDJ2?=
 =?utf-8?B?TWxPL1JXWVpiUmllOWkrMVhwblRzOWtjdmZ3ZGxnbkdYYzliWURZWm80cFZX?=
 =?utf-8?B?Y1lsTEw1THNNNGdGS1F0d0h3ZGZRTXEzV29ETnF4NjV4NVRlcE1PUGNMN1BL?=
 =?utf-8?B?cjNjVGI5SVJreWxuSGFlY2RzcEd0U2JZcTIxd2l5eHB5eFJ6dE5rdzc4NnZU?=
 =?utf-8?B?em5Oa2lUbk9NQzhnSWs2c01la1E0OUg1aEJJaU9PM1JEalZXenM3QWdRSmR3?=
 =?utf-8?B?R2xCSmN5bndpYldRUzhYekFFWnllOWNGc3gxeTlhY1MyNWkybVJXSU4rNEF2?=
 =?utf-8?B?dURFYS85Wk5ZeGYyY21TNnhIb01Eb09Jc0t3Z3JZNWdpK2p5WExBTm90OGxF?=
 =?utf-8?B?UTRMS1dZaTJrMVJQdFRqUWZnMStNaXhmeVllaFc4ODk0b3BBVi9TV1ZTNkdU?=
 =?utf-8?B?U0tlc3FoQjZrQmlXZXlYc0kzVDFEcUhFbDVNUzJKV01uV3JUcjNObXVTRStB?=
 =?utf-8?B?c3czUEljMEEzdS9pR3h5QjVhNCtLOHJWM1BCTzBHSXFoMDI4WHBPWDVXNkJM?=
 =?utf-8?B?ZG5wbllWbUlOcVlkU2NXc084QTNSRXducEpqYm4zZDYza1pBQ09TdHVtek9S?=
 =?utf-8?B?b0VaMWpsaXM3RHFwYTB1ODUyZUVEWFpDWGYzMUllSzRKczZtS3NLaTBTUVNZ?=
 =?utf-8?B?M1kveURFYk5Ib0ZiTjZuMGVOZkhhVGhybU54SzZhQlBYTHV6WkZ5bXE5dnZq?=
 =?utf-8?B?bTVsS2c1WlhzQUlxdEYxM1A1ZkVkM3B3N0lmdWNKK29mVFo3aTYvYnpMcnJG?=
 =?utf-8?B?MDdabXA4TzdmV2FoUWtBTjh4dTdieC84NGc4Mnl0ZUR1QjZNSy8ySCs0ZktQ?=
 =?utf-8?B?VXBlcFJVSlZ1enlSYlQ1M2VqNWdRZmlmWHljM2d2MmxhUU00TTFpdjkyeWdU?=
 =?utf-8?B?SVhwbzNKbWJsU2tWMGpNaWNGWUFzb3JQdGpFRUFYY3VWUE90YVp0WnF1QkY4?=
 =?utf-8?B?WGwwTEMxRXQ0ZjdVYjFNKzNoV0t0L2wrc2owaEpsK0RRa0U5cWQzZXl2Mk9p?=
 =?utf-8?B?bGtvM2NXdkhqbC9oZFByZmsvcWZid1d2NzBHTVhKdEQ3MDBFVTRyOHd0ZTZC?=
 =?utf-8?B?ZGJiSUR4ZU03cHZ1REp1RTZEbThwNGl2R2ZCRSsxd3k4OWwwR2VpZTh4ekVU?=
 =?utf-8?B?cmxXVEhsWU1NYnRxV3VPbm5scTRmQVNybVFKRXpLZDZQelRELzdZaldsZW5K?=
 =?utf-8?B?ZmtDcksvUUViSkV0MVcvNGFEeTNON3pQR0VQWi9Nd0dlMENHcFRybk4xNG4z?=
 =?utf-8?B?a0EyNUx5WG9oYW05SXpNVGlITUVKSnBETDNnM040Q2JDWHFkalVDZVZTRWNC?=
 =?utf-8?B?cnVpbkJXMmttOGlDR1hySHFsVE1WNWRyc2k3ZlQrdmppZ203T3lQb1hMWGpC?=
 =?utf-8?B?aDFqQW1NWTZkbm96VXI3bU9ERTNnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	68g1ex/LTSr/oMJeRY/iBmY9CEzYmUUT3lX9TvsKeOQWpZxuv4sz5mlDEvOc3BnJozCw3y2BMxoThqNz3dnRtC4wN7ixi/fRnkMGgT9N7vQ/4AI2OYXUHcox3aBP6iBJT97HoDQKGqm1F4XYY57Ter5b9jttoEnhV97SNaVNjKZflptsz1/7x0xiaEkT6+VeXEv7vMtXUQPPJfmqnr6khQu8JnHMJinEYtSFgc7zN2WStDPVIUbPRyyyoOt6b5k4k/ipW6A7tQ6xUeamD1VnSSU83bxlnF2brYHcQAgMkShHKttgAznM9xAe+T1GzOCrqt+E2N1Fg0Xs81aZSGyvn6MefyVujmzuetvLcCm+FSGiopazzHre8TUTGwaPvdIYtDvM3E2p9Yy2rbJSRz4lZWz7eiTFfcDZ5HS1duXdX76QZk1cBUn9FjoKAWbWtZLI
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 15:29:19.4349
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 900b0578-414d-4fd2-a787-08de6a4b7d8e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B077.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB7072

On Thu Feb 12, 2026 at 12:26 PM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> Open code the vendor check through the policy as a one-off. The emulator
>> embeds amd_like() in macros and is called in MANY places. Using a
>> local variable (cp->x86_vendor) makes it a lot smaller (300-400 bytes
>> smaller). So treat this as the exception it is and let it use the policy
>> rather than boot_cpu_data.
>
> As elsewhere you mainly discuss benefits for the single-vendor case, is t=
he
> above about the opposite situation? Else why would codegen suffer this mu=
ch
> here?

In single-vendor it doesn't matter. A constant is a constant. It matters in
multivendor. And it matters for 2 reasons.

  1. The x86_emulate() function is HUGE.
  2. The x86_emulate() function has LOTS of amd_like() invocations.

When amd_like() uses the policy it has an advantage over using the global.
Namely, the policy is already cached in a register, so codegen simply has t=
o
pull the vendor from an offset into a register. When we go for a global var=
iable
we need to reach out and pull the variable from its 64bit address (because =
we
compile with model=3Dlarge). It normally evens out with the codegen reducti=
ons
cpu_vendor() encourages you to have, but in here it just doesn't. There's w=
ay
too many accesses to global state and .text suffers.

The fix for this is caching the vendor somewhere else. A "bool amd_like" in=
 a
local variable would shrink code substantially (by having rsp-relative acce=
ss to
the solution of the question amd_like() asks, and by avoiding the masking).=
 This
optimisation is worth doing with or without this patch in place.

Alas, I didn't test that, because this series was sufficiently complicated
as-is.

>
> Using cp also is preferable for test and fuzzing harnesses, which don't
> even know boot_cpu_data.

They don't now, which is why I made the x86emul_cpu() macro. New subsystems
added to a userlevel testing ground could simply have a boot_cpu_data with =
the
desired policy as part of their harness' global state.

>
>> @@ -30,8 +31,15 @@ void BUG(void);
>>  #  define X86EMUL_NO_SIMD
>>  # endif
>> =20
>> +/* intentionally avoid cpu_vendor(), as it produces much worse codegen =
*/
>
> Nit (style): Capital letter wanted at the start.
>
>> +# define x86emul_cpu(cp) ((X86_ENABLED_VENDORS =3D=3D            \
>> +                           ISOLATE_LSB(X86_ENABLED_VENDORS)) \
>> +                               ? X86_ENABLED_VENDORS         \
>> +                               : ((cp)->x86_vendor & X86_ENABLED_VENDOR=
S))
>
> Nit: Indentation. The ? and : want to align with the controlling expressi=
on.

sure.

>
> Further, is this a good name, without "vendor" in it?

x86emul_cpu_vendor() is fine with me too.

>
> And then I'm of two minds here as to the use of the macro parameter: On o=
ne
> hand we can be pretty certain what is passed in won't have side effects.
> Otoh in a hypothetical odd case (seeing that this lives in a header file,
> not local to an isolated piece of code) where there would be one, the
> argument being evaluated unreliably could cause an unpleasant surprise.
> The more ...
>
>>  #else /* !__XEN__ */
>>  # include "x86-emulate.h"
>> +# define x86emul_cpu(cp) ((cp)->x86_vendor)
>
> ... that the same wouldn't be observable in the fuzzing or test harnesses=
.

I can turn this into a static inline to avoid such worries.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:30:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:30:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229307.1535269 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYeY-00086j-JM; Thu, 12 Feb 2026 15:30:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229307.1535269; Thu, 12 Feb 2026 15:30:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYeY-00086Z-GM; Thu, 12 Feb 2026 15:30:50 +0000
Received: by outflank-mailman (input) for mailman id 1229307;
 Thu, 12 Feb 2026 15:30: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=zRx/=AQ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqYeW-00085h-OA
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:30:48 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cd698df8-0827-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 16:30:47 +0100 (CET)
Received: from BN9PR03CA0148.namprd03.prod.outlook.com (2603:10b6:408:fe::33)
 by MN2PR12MB4094.namprd12.prod.outlook.com (2603:10b6:208:15f::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.12; Thu, 12 Feb
 2026 15:30:44 +0000
Received: from BN3PEPF0000B076.namprd04.prod.outlook.com
 (2603:10b6:408:fe:cafe::17) by BN9PR03CA0148.outlook.office365.com
 (2603:10b6:408:fe::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Thu,
 12 Feb 2026 15:30:34 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B076.mail.protection.outlook.com (10.167.243.121) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 15:30:43 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 09:30:42 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd698df8-0827-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IizX33aNwiYnphUScEe1gQw+aBVQS7jSrbAIW73Ni6ZTugtepGQ+GuBSjdcM4zCacs6etkT4/F5L/lgDedw9u+G7fpbxl0aCgQgV9pAVCCHzqgSmJMkwnndmvlAFrxNV/K8UudP++jcfHVk4ZVdSpbC21j5sqhKCAltHrdHqZ2p+9OWB5RYyMDhkS340YTtU1F6OMhvpkdYgW0elYGAbgP+fEabnxQOB/J5GrnTOgrmzT6IGlbA0Djm9oQqp/dTk2PFBzNjI6odyy1qrvxjOBq10T6ZPAXEfH4gN7jY1BHZ985KcwmnqdDAFUBwNP0AtoLvO9g38bXpaIAurjoRP0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6cDebRGkm34pd9mJO+KNI2LAX1ZOpM1ipc+be2TXkAg=;
 b=USx/+QD38o9C7scDj11frxeGRK7saLHpSsRcA+agMReSxIfIl3uW+PrJoyIG6xDday+/KT1YxiLUZn5YdVIqEaxBxQKC8rFP1gyIIA0L8YpzkriafI0PI5sEAUBK2OYm+dYqM9XqiWEcMCaCM/FIDd55iRhkR77+gKZ8dyl66szVTgP7DReOjfrn6l5h8Egr2glOUOnS86LxP4RAzjKF1o6ZJZnSixG/Gh1IX0PdDbERqV+3g9Ring64nkwUzTduI85P4viWEcwzItUox74YXbOfgX+pOxB9xnLVlEo7OZpHPhtjBjeAZdCoWjYvp1r72mOrfRWkwbfQszrNYBRlIA==
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=6cDebRGkm34pd9mJO+KNI2LAX1ZOpM1ipc+be2TXkAg=;
 b=pvV7PJvVEg68out2JBIoPfbLdS649nDYhCHTAUQPW1zskCYtRlGecblwjatTuP1QdgYAEgZj5QbGCBsiEowjHwr8UpLjhi0mqD+LtelHK9KITacUXacMh7mL/xYnr/j5iZ2Z6qHcFbVcTCTak1vUu/AD13dMAb95JPXIDmsBFkw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Feb 2026 16:30:41 +0100
Message-ID: <DGD3ADTLUYLG.21O7BF43L408X@amd.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 07/12] x86: Migrate x86_emulate/ to use cpu_vendor()
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-9-alejandro.garciavallejo@amd.com>
 <f2abd192-27c7-4011-95a3-848e1c4e1427@suse.com>
In-Reply-To: <f2abd192-27c7-4011-95a3-848e1c4e1427@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B076:EE_|MN2PR12MB4094:EE_
X-MS-Office365-Filtering-Correlation-Id: 8c35425b-8fb3-4089-0eec-08de6a4bafea
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?OStVODJlaG9YbENqcVFDSk1wVkxmNlM0UUdmVjlTVFFKYWx1dVZVMFViZG12?=
 =?utf-8?B?N2RRakt4bVN3ZHZxMWpDWDRVMWpCVTk0M3FXZlJKZmdHYkhpY3RLOG5MYmNY?=
 =?utf-8?B?NTVZZDUzeFE5T1BXVW9vTGpTVXRTZGc2Q1dkNGpQMzVQejBsUFNOSlYwbTV4?=
 =?utf-8?B?R250dEJ0NDVtbjU3M09GalJOalBYUzl0VEo5V2MzKzNqck02VVVtT0kwalJy?=
 =?utf-8?B?Y0UxOTkyOGRpNE9MS2owcTFCNFRwUmJ1ZElXS0lrZVZiNlYvSFdBajFzb3BZ?=
 =?utf-8?B?R3VGZzdDZDg1SHlzekY4SzVwWUtkdkZzc3BVMzc3Yzh2ZUVrS05PTTBNalp0?=
 =?utf-8?B?RjAvVFh1UnRrQ0ROWXdKRzBsUG9jcVZ4bjlPK0RUQldDdWMyQlA5NE5kQlp3?=
 =?utf-8?B?MkdpNS9xUGRwQ2VNWDlUWmZlWEtEVmR2QzRtQTNVQ292dmtjTTJPM3IwQk14?=
 =?utf-8?B?ZkhaT09ydEJVdVBwUm81WXJhWEVBVXlDVVJDdEtlbndjWURKRzdTUHJSeTF1?=
 =?utf-8?B?Zmc4UklkR0wwN0Z6Vjg5OG5sMnZueEI1dDVTYWtSZEJWYVFuTzFlOXhDVUxT?=
 =?utf-8?B?QVVFMG1ZVW5Nd0x6VHU5bUJwbCtma01ybWthK2VlYVR5elNORHB1c0NxZWVG?=
 =?utf-8?B?akxFTEdLdGVWNUFpYmhuaGd2MlM1VE5PV3B4cytCeGl0NEc4QmIyZ2JJb0pM?=
 =?utf-8?B?RkVhMjRMQVFUQ1JvY2g4QjBwcEtIbVFJSGJiU2lwYjFtVjFHSlhjdHpadGU2?=
 =?utf-8?B?TDVYakN6VnRleFlBMGcyNHZiVnN0c29qN1JHQ3oxU1c5UDlmMGp1eHdGMHl4?=
 =?utf-8?B?SGNOa2dNeFAzejBFMU9XTGFFVmVmbHp6OTlSaVZkaWxkTFRLTE02cldSc2ow?=
 =?utf-8?B?R0YwUW5rczF1QzY3bGpFSVpUZjVSb2EwQkFwdlFtcGdGNHBYdkJSQy9vTlFX?=
 =?utf-8?B?ZFJwUGRpT2ZaMGZiN1hBQXVqeVBTNkVpSWVHVUlPRHhCREFvOW9QdmFMSXBu?=
 =?utf-8?B?Tlp6cVpFd2lZOTc4Q2lFdUFjVTJvUlNTa2d6eWNBZ1VsSlhyb2xIZjVmZSt4?=
 =?utf-8?B?cEs1QlJSamwrRThPYWp2R2Zzb1BPK1diRHRPUWY4akFlYWRHNVlGUEsvcklC?=
 =?utf-8?B?b1hRdXBWTTYrVkVRdWZqSVRhTHIwSHNudC9kaFQyUWw4UFpkZm56T3krMFYw?=
 =?utf-8?B?OGZCWjVRWnhnUjBCTVZxdFNRcC90Qy9kWmgzZXRyazVIcjlYRTVyeUZDYkZy?=
 =?utf-8?B?OFpSVkN5Mkl1ZG1lenBZTlhiUS9iVi9YTm1PL0dEaXNCUVd5a2FPb2E3S2dx?=
 =?utf-8?B?RzB0cEVkK2srYkhVVWJSczZBaUVwZy8xdHZiY0hPZXQwN2N3N2lXRUNsTDcy?=
 =?utf-8?B?dGNoQTdaNlZNWFg4U3g0U3VjemJRUG9JdVJQS1pnWFhlKzd6aGRzNU9PSnk1?=
 =?utf-8?B?OWFkTnlGSzNOKzRwbldLUEpOUi9SaXZMWjd5YVhZbldTYTYzNzRORDAwbVlU?=
 =?utf-8?B?Z1B5c3NYMWZDOVJqMmFYdHBYQjFGenVPSjJqMk5LWGVaMVNWVVRvaUk4RHFr?=
 =?utf-8?B?UXlMNnY2VkgzUXQxTkZPUnc5Q0FrRG4xWCtBd0JRVThVRUNWeFkvSmZQcEZj?=
 =?utf-8?B?ZW11L1pyTFZIZVo1OHVZMFFSa3lsb256elhPa05Nc1NCTy9neTN3Wm8yUm9R?=
 =?utf-8?B?ZEdueU1ZNVR2ZTdPYW96MDYycS9PUlRRU1FDckEybzVCUnFQclFENm5yYTR3?=
 =?utf-8?B?ajJrTWJBMXEvaXZ6aHJNb3kwZkJ3cExtQjRIYkYyeFZJZEs2dUVmblV6aUUx?=
 =?utf-8?B?RWw4V2pQMHIvTElFQnh0ZDNieG5XNmRyM0lVVkgzMTkxOVhiZE9oUFNYQWhY?=
 =?utf-8?B?eVdGeFEyZVZnSTFOSERlYWhUR0tjb2UxWkMvK0xQY1VybjRjbDF5amllY2JL?=
 =?utf-8?B?RmVobmJuUk4xRlNpaThSSWdpUUVJSDNaN0pMY1daTjVZdmF2NGZwbWd6cnZU?=
 =?utf-8?B?Z2J3Wmp1TUw4bzRlSkV1WXA1Q0Jxbkl1RW1MbGthSktkWGttNHZGMzd3U1dj?=
 =?utf-8?B?WUk2VjQ2Mm12Q0x0emw2cVV5M0JYc1ZNbEYzYlkxdHRVcTZCQ0xxdHNoZHk1?=
 =?utf-8?B?RUlQSjF4bnhxZ1dDYVpNd0hEYk1YNHg4ejFGcUl0UFVyYlJ4MHBKZExXK1Ey?=
 =?utf-8?B?eEd6LzN3VUtMRUdNUk5pcW1XOVl2QnRzakU1RTd4WUUxV3ZHcjZzaWVUTnMw?=
 =?utf-8?B?dHpCZ2hSL3JYVTZkZ1ZqWjVBZTNnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	CQICf4Epo80p+5+lSWkI88QMX4W64pNCYHNVv+6qC+mcf/z7fOELVAyo2dqcprBSdjvenzQRj18MCo/MeOrfqASfe5oEkfXNNWz8hIaSjkx8FX8ZnsiSlofmFrvEtYJKaM5GwCEB5xovitBrXF9iy3qgCYDiGZeRKjgSYKQPgUllTH6Bc2hM7LyyZVzxlV9Nq/ftEKWceTddwlltM47v03N73Ac8/s0Svpz08lneYnMqrEctQj6A14I65oPWdlLZxarvQTgiXDgz09KVOBAh1GdOh1p6S5GPeqyXGmtS2jRZ2wKp24z2wNCRzz1XLLMKvR9tzyVE+hQt04bHT7F6sOR5n1flFVVPt5ZBfxqHFdOpPhtYzC9EemGpMzUMPyfB6J7ii3AXBtj1Yp6k2ivDG1T4tp7Qmtk4rwlISgvEpJV1xmyHJBYB8P1uw1cFwLgY
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 15:30:43.7508
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8c35425b-8fb3-4089-0eec-08de6a4bafea
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B076.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4094

On Thu Feb 12, 2026 at 12:31 PM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> ... but keep the current behaviour of using the policy vendor when
>> compiled for userspace, where cross-vendor configurations are expected.
>>=20
>> Not a functional change.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>
> Hmm, ...
>
>> --- a/xen/arch/x86/x86_emulate/private.h
>> +++ b/xen/arch/x86/x86_emulate/private.h
>> @@ -15,6 +15,7 @@
>>  # include <xen/kernel.h>
>> =20
>>  # include <asm/cpu-user-regs.h>
>> +# include <asm/cpufeature.h>
>>  # include <asm/endbr.h>
>>  # include <asm/msr-index.h>
>>  # include <asm/stubs.h>
>> @@ -30,8 +31,11 @@ void BUG(void);
>>  #  define X86EMUL_NO_SIMD
>>  # endif
>> =20
>> +# define x86emul_cpu(cp) ({ (void)(cp); cpu_vendor(); })
>> +
>>  #else /* !__XEN__ */
>>  # include "x86-emulate.h"
>> +# define x86emul_cpu(cp) ((cp)->x86_vendor)
>>  #endif
>
> ... this looked familiar, yet different at the same time. It was only aft=
er
> some eyebrow raising that I noticed that patch 07/12 appears twice in the
> series, with different titles.
>
> Jan

Arg. Leftover patch in my patches folder. Please, ignore this patch, and
apologies.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:33:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:33:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229316.1535280 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYgj-0000Cf-0l; Thu, 12 Feb 2026 15:33:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229316.1535280; Thu, 12 Feb 2026 15:33: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 1vqYgi-0000CY-TA; Thu, 12 Feb 2026 15:33:04 +0000
Received: by outflank-mailman (input) for mailman id 1229316;
 Thu, 12 Feb 2026 15:33: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=BHzL=AQ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vqYgh-0000CR-34
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:33:03 +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 1cada1ec-0828-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 16:33:01 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 4E9CE7A0087;
 Thu, 12 Feb 2026 10:32:59 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-03.internal (MEProxy); Thu, 12 Feb 2026 10:32:59 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 12 Feb 2026 10:32:58 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1cada1ec-0828-11f1-b162-2bf370ae4941
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=1770910379;
	 x=1770996779; bh=pzE9KKW6qafWHwPYCp/i7IiR/YM3KW7UQdsEwQKUmS8=; b=
	RfRQL2c5ZgjDgxF6+X5wPK+KDnZVtt7x8F7sn+L3jmyhGYq5vZ0Nj4NnqVhcBeXz
	3b3ZL3GlRS4RLWjw8xOBoQKo7Zus2rNqiWhXgZzov3WlafFUK3GQOmfa40L0spZ/
	wLcwMr9P2UAjtl08vtSUDkTrhnBi0ipOHRi/s2AhzzOKGvFVqDYzE12KFf0uBKjm
	qhRQrySBcYhg8zSwZifS4sj6tw0tPaUagQleu1cWn9B2v49LOrIHtVp3wHWCxZDI
	tgjkPhjwYsp5/9/htXKiXl3PVbdJX6nL3wCaPM1nNvo7vG1h7OlCEo31MkpJ/0uJ
	voiS3batfyjsip3F1wqcyQ==
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=
	1770910379; x=1770996779; bh=pzE9KKW6qafWHwPYCp/i7IiR/YM3KW7UQds
	EwQKUmS8=; b=k/YJier428BKIWUIKaTE1jGxgEiyoNTJ1m/OLB06XTXad9qVakj
	i9X07Xe0kd5b+wjZfiKRSVJri/nEoO+VN/FCkFCMUkjOYZAu7i8mD5Mazq97TSGq
	MSAMqvTBzEKo12TzElaOTQj5nIl+HNPmGcBsd6nQY1sc4FM4U2XDnW32bRKAVrXw
	/DsAkIZFAls6l6ZEbOMkhnL4ib6oLSbOauKF/zr1wY8ICVp+5+l/oknioshVI2Ue
	HWkGEf0c2cs567xjX1RKNqAg70jP5vkVecLJDNLOwmDhnixA8LE0Ja+mOGKlwkVj
	1JbPuVMliZqo5D83EoQjkJsrQ9azRZXjuyA==
X-ME-Sender: <xms:qvKNabg2ZyWCBbMOojXR5MSrzhPRbhBuB9VjyxUnYOTVea3mYmXCzA>
    <xme:qvKNafwfhpKv22dPbOag1ORwTDYT1PD-cKnIMM9K9kLVTKexRgfS92RJiQq2wjVDo
    XHEuDoNXj_7dCxjXmBqomfy9eyhTcjTOaQl7pYYJaCr6qzzaA>
X-ME-Received: <xmr:qvKNaeKBiVLR1UlBJpP0znOkVEjQYHqakWWYlO6WA9y7U2SIbw5Dw7wc7U_jw8y7x6xT9uoBJ_Se-PU20YmRMqGFaogExIWwFJk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdehjeegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihig
    rdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojh
    gvtghtrdhorhhgpdhrtghpthhtohepihhnthgvlhdqgigvsehlihhsthhsrdhfrhgvvggu
    vghskhhtohhprdhorhhg
X-ME-Proxy: <xmx:qvKNaWTaJnIu7td7tTrWxMsFwcNNNFEuFoP7MF0RmjvuxxZHZAV_6g>
    <xmx:qvKNaWrew_yWRZvXbXOSJjhOirLuQQgN7n3MF78-1QgLSb7_RmuPCw>
    <xmx:qvKNabqvH_JWvWFqooDybznYqw1CEyCelmOt1PYT-kiekrEM0jtlVA>
    <xmx:qvKNaQP8wEjJQ5WULMsNQpDrj2Z0g_SOvzlFVZXnYuLfINddiV378A>
    <xmx:q_KNad37uCiWeRSuB-JhMmzXvpbu3C8YJq2e5WZbNSp2glKt-nNv3iBF>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 12 Feb 2026 16:32:56 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aY3yqOTn9EQfO4rF@mail-itl>
References: <aYtznP_tT6xNPwf-@mail-itl>
 <aY3ttvtxGCPTNgsj@Mac.lan>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="vmipi+t4vizlqmlG"
Content-Disposition: inline
In-Reply-To: <aY3ttvtxGCPTNgsj@Mac.lan>


--vmipi+t4vizlqmlG
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 12 Feb 2026 16:32:56 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19

On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monn=C3=A9 wrote:
> On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > Hi,
> >=20
> > Recently I started testing compatibility with Intel Lunar Lake. This is
> > the first one that uses "xe" instead of "i915" Linux driver for iGPU.
> > I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
> > Linux 6.17.9 in this test.
>=20
> Not sure it's going to help a lot, but does using a PVH dom0 make any
> difference?

Yes, it makes a difference. I end up with black screen as soon as dom0
starts... And due to unrelated bug (in xhci console code?), I don't have
kernel messages :/

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

--vmipi+t4vizlqmlG
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmN8qgACgkQ24/THMrX
1yzIigf8DClXXn/Ct3Uin0Vtdqw1ArhHRlBp17Xrhbde9xjRAMtiof9tkY8P+Fd8
/bDr68vAmiMoUQhIQXEuO8gwC9aYa+j4U3oArcf56dxInnH2T5HCEnC/YA/WVmn5
rp3NK/m7pTeUiWxuISi18zi9du+ifpR+BclQcAOq/zJft3OhpxWxknFs7Z4rpN7B
KiCSpHYPAZmi9Pevh/ewooN5Zw5FWAXmX15M+zNArIBTu+R2LhzDN6lhEHF5SBZw
mWlUK5ad18B1LJEAMhD17V5mxPlD1Msh4dJqtB2Zd/vGv6ExA7E8QKCY6QcF1Vm/
CylDBDUSU/eQtzGvCk/kgwfOKxf/tw==
=zCHo
-----END PGP SIGNATURE-----

--vmipi+t4vizlqmlG--


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:34:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:34:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229326.1535290 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYiS-0000kU-C5; Thu, 12 Feb 2026 15:34:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229326.1535290; Thu, 12 Feb 2026 15:34:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYiS-0000kN-8I; Thu, 12 Feb 2026 15:34:52 +0000
Received: by outflank-mailman (input) for mailman id 1229326;
 Thu, 12 Feb 2026 15:34: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqYiR-0000kF-Ou
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:34:51 +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 5e0f75a9-0828-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 16:34:49 +0100 (CET)
Received: by mail-wr1-x443.google.com with SMTP id
 ffacd0b85a97d-4362197d174so2237410f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 07:34:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e5c93asm11647843f8f.39.2026.02.12.07.34.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 07:34:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e0f75a9-0828-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770910489; x=1771515289; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AHHi+BFTnw/nY32XVCZXrg3zNla4VkYQkAeyFL00fwg=;
        b=KelP33lbvs6fd7bgTLW9q/r1OK/D2mPqi8EBt4NvHM3nV16or6YiY8d258zqidvqJN
         H4jpPOnmLqBf9xvTvOvdDdM8jte5S1KV9QVH++1eUcsC7ciXL2eM3L5wPNdpZfKnMTqq
         Kl6GyT3K2UazD0fTE7zRHLO+7avrYs3NVzta2jFFeo0ckNmzyH8gRUhTRMdvwgXeBK7Z
         PDLQFkKpcVjmFjEaI8Tl2n+IsIclZoDb0tZNzvfTApTzKjyf+l7UlFZvTov7A0iM3NAK
         I8jNt0+IzWlHEgi/hncD8OkVWDSBzbxaFTqaqfaEKD7ggKAmBabBc8xMS7evDfJBJxDR
         0jEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770910489; x=1771515289;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AHHi+BFTnw/nY32XVCZXrg3zNla4VkYQkAeyFL00fwg=;
        b=hvM15rTDBq1eN4Kzo2tpOg4tVdNp5mrmPdv8rYKWqYQEXS8NlgSzP8FbX1WS2/i21G
         LVqw/bhMONz720ZV3alNUvAI/BXyps85X4kArOhz/zuPlHd/y9Yjtm91g4FLxA/3x3z2
         uTg8GZKJ2GC62QJJ9lLmZkGgH/URAOWo2GJlNk0gI5ynH7avE2vSoZjIsE/TIhcUUikD
         XVnBwL4sYvOz2a4Znq6zv9wKPzfpIUz868wHW2W1tFZA+Pd2kqJ68kWJYZoJ6pgQCxTR
         vtk5hLgLZeX19GhhlqbDZ7sCbUmiYuj5JLD4ECnOSrMtoRBpJ5bWKOqoqoXPmD2epUNh
         iVbw==
X-Forwarded-Encrypted: i=1; AJvYcCWCtUoWV+OGx/eOOQZ/8zYfsaArzHpL2U461feXzKePNc6UwNpMzrE5RK74aGwMv09QfmYqNB5M8Fc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPP311ipFeURfNN1cRuGj4YY0+wwVUNsqJVcJV0wXIJgU6ybPV
	2XJga0TZ9vmLDzjrNmlS4YhQhUWvYaB9iXei9x3EEvd06S2+LyBpcN4LsMa7zt/syQ==
X-Gm-Gg: AZuq6aIxZ6uwwB+P/qN7bJAtAD7BqQSrs43BwsRY1695T+5o5ZbfL6pmxA/v+cs0EfY
	XrKazqPXBfA2VqXTwDhqYtVS0JP6QziftDDDJhF+G4qV1isELOnV34EWAiFa7Fjhb3WzqgvYuFz
	I+sct3toswqP/1Z7aeK/d34TU2S00JsQOg4KogJstNbz2lEEROmZwqXi/0kW4FUWRxn41FRBZQS
	rBFlIskR04/73SRQvTJorrkVV9WO0ruQNJqRobuFEEk+y2plzf7x0/73OBHvvSNkoBikWqO2gPT
	/wsK1jbozPDjc0tpeOUkmXxTYp6S87ON5HxDUEfQf0cSpfLLNovBIBg+00DXXoYzEzhZwPonxyX
	jDgkZxNGK1BQPoXMxSaq3HUtb8qyqfdOteGcaU8XLxEcJwzp3Zte/eSWDapa3yO90awX3UiF+xz
	cS8rBGFI1gz+YSxR6WDtR6MeQBnRjLisr5AS7NUp+o5eRbJ4r5UT4To9VqPnExVE5Hz0eE2Y3Y2
	o6u2QJshOzGoVI=
X-Received: by 2002:a05:6000:2586:b0:436:1a4b:de36 with SMTP id ffacd0b85a97d-4378f11f142mr4946185f8f.22.1770910488940;
        Thu, 12 Feb 2026 07:34:48 -0800 (PST)
Message-ID: <2e0d0b4f-cc5d-4ab1-9132-04ab84a222f5@suse.com>
Date: Thu, 12 Feb 2026 16:34:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/5] xen/x86: always consider '/' as a division in
 assembly
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20260212144618.43200-1-roger.pau@citrix.com>
 <20260212144618.43200-2-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260212144618.43200-2-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 15:46, Roger Pau Monne wrote:
> On x86 GNU assembler will consider '/' as the start of comment marker for
> some ELF targets.  This is incorrect with Xen's usage, which does use '/'
> in assembly files as a mathematical operator.
> 
> The behavior of the assembler can be altered by passing the --divide
> option; unconditionally pass this option when available to force the
> expected behavior.
> 
> Reported-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:35:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:35:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229327.1535300 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYia-00010Z-In; Thu, 12 Feb 2026 15:35:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229327.1535300; Thu, 12 Feb 2026 15: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 1vqYia-00010S-FC; Thu, 12 Feb 2026 15:35:00 +0000
Received: by outflank-mailman (input) for mailman id 1229327;
 Thu, 12 Feb 2026 15:34: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=zRx/=AQ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqYiZ-0000kF-Hl
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:34:59 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6341d878-0828-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 16:34:58 +0100 (CET)
Received: from BL0PR01CA0030.prod.exchangelabs.com (2603:10b6:208:71::43) by
 IA0PR12MB7673.namprd12.prod.outlook.com (2603:10b6:208:435::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 15:34:49 +0000
Received: from BL02EPF00021F68.namprd02.prod.outlook.com
 (2603:10b6:208:71:cafe::c2) by BL0PR01CA0030.outlook.office365.com
 (2603:10b6:208:71::43) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Thu,
 12 Feb 2026 15:34:41 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 15:34:44 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 09:34:41 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6341d878-0828-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=V+cftdzfPAp4XdOZxZ9x3QFh/ksThVaZWR5Olzt5FHJv7NqM832N9XpNlK99+tmmdvg3YMl2RAHsejsppH2MXcmtP0m/APvRAAtKTsNi4HFoPDwdx5VvfHXqZLfRfw44NFN/T13XPHLjCFIZOEdPBHqlXLUFJ/csr3JwWTC12OGj7pWCpk/PaumQVpiA3QWx3FJi8kcKZmVKIBCeQetrcUQxERuun/wseW/tdzOcs+mdtG0V6IJNNJcxGIveDq6NXiObPqIOlHd4KaxSVUjrbrw0aapANZ+6SaOO4MVRqK01me397wIEi3+T3y2AfrktxjZ8P1Er1xXf3JvAI8Rj8g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MeB3jl45216Tb9wmhjc1qsJK8CK25FqNZlvx38O8AIg=;
 b=bvup8b4p8PwKvqZwgtLNhdNaDmCM5d8s5xRl7rLkr9KrD3Yr07OmlmZoo00kfVXeV6HSWYz0AJyVmUrORZsOWKdQqRnYKX7v+6XBSd1swj7L5xmVhRuPt4RQ+ZDZPc0hjJB71lRydPTBz2xqUBjOHCiSBSZQhLDUq+4iBW60+yK+Xy22n0vYfDb6QRLZyULZbLzNcLij/F4UROqIda4FDr5L3on8fClg9LOTD8JvReN2mPHW3Ylp9O5SP+QeO/WnZ96GrN0AU01ygOOsIU3Q6Lj62IszPl5+b8FWCTbp3yTtVAXnDlgH/bSYhKQxaK7ANzGXeSf3uakRtM7Dgqkspw==
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=MeB3jl45216Tb9wmhjc1qsJK8CK25FqNZlvx38O8AIg=;
 b=bdNzpIp5PLuNEK4FckkFwYLwXz5eF0fgcd/aYKXzcs4/ihn/BA1WttRV7XVdgvzPJcRC+P96Mp9UfYVzXio2M7NUcd9ZiPhf2ihkQdirkCUsp65eZcsSsbsZv8yc+7J9ZmEGfeFMetxwhn2eYDEY3ZhGqKn4ml9dkF3LwLWEjZ8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Feb 2026 16:34:40 +0100
Message-ID: <DGD3DFQLJI17.2Y9ML8QC93NOU@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 08/12] x86/acpi: Migrate vendor checks to cpu_vendor()
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-10-alejandro.garciavallejo@amd.com>
 <3504e0eb-973c-427f-98ac-27801819e175@suse.com>
In-Reply-To: <3504e0eb-973c-427f-98ac-27801819e175@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F68:EE_|IA0PR12MB7673:EE_
X-MS-Office365-Filtering-Correlation-Id: cc402a00-004b-4520-d021-08de6a4c3f19
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?cDZMeVBWbnpSeUwxek05SjJlOE40SzFYNndMQWlrL21QWEJWeW05L1Jza2FJ?=
 =?utf-8?B?NFFhYTRlajlOUGxBY3Q4RHZzVFV4SnVCak90cjFubi8yOXNzVUNhNzJKc2Fj?=
 =?utf-8?B?aUF5czE1aFpsdU42ck5nL1dPVzhQQ0ZTUVBueVJBbmFDTDk5VklJUlFUdmZj?=
 =?utf-8?B?dFJTTDRlUS9qUEVOYTY5NWN5SCtxTzNzeWhxMmg2TlFBeXN3Y3hERVJoNnhJ?=
 =?utf-8?B?SnVvVUordTh1a0dMQ2lMZGlWb0srOEJGNnFaaTJIVGMrN014dXN2MGY3SFlk?=
 =?utf-8?B?bklSckM3QXBkL2VYb21FbXJiNzVNdFUzOGdtdDN4MmNyakJPMk9SME9PMkph?=
 =?utf-8?B?TjJwNjQ5aFcyU3A2Z2UwKzRxLy9GaHYrL3cwM2JGSWs2bXhIZkc0S0I1OFBI?=
 =?utf-8?B?a00yMU9rejVhOXM4dmxSeW0rbmNKbmw0V2dRVmRqMWZpQlh5RFZHbmdaNEIy?=
 =?utf-8?B?czRkQXBRaWgyQ0VWaTFTNjBMN2JNb1p0RmxHZ2N0TUxsbC9TVkRMTkt3WEtj?=
 =?utf-8?B?WTdnM0haWFFtTGxDRU4xVTlzdlVBL040RFJLN0liRnIzblovcVBudWw5eU5p?=
 =?utf-8?B?dENMVlFRTS82UHV0SDErc1VUb0lhTm9kaWsvRkY4alh2eUVoeTVNeS8xMlpY?=
 =?utf-8?B?bEtmOWI5YkVuakRKcGNMc0hxVjdCMGFDNmNKNnBJSzUrWGU1MlBGT2tRbndL?=
 =?utf-8?B?WXIwckV2YlFYY01mK1ppbnhhTlVqeWdCd1FEdXhXMW5rY3NNZFRPdlQ4dVo4?=
 =?utf-8?B?MTl3a2RBM0s1Sk41NHFXdVNhR3B1RjEzRHNDNkxTWXcxT0phNjgvY0hyNHlv?=
 =?utf-8?B?cFJUNFEzOGV0UXU0cmVCRS9ibjdPYUhITnJmVkgrdjVCZDRhUUxkUUlNdFBC?=
 =?utf-8?B?SnJsL0hQSFBlV1JEeEtvdkp4M09oVURkampIKzJNNTRVL091Z3QwV2pIb3pB?=
 =?utf-8?B?YmdPeFVVT1I3VDQrYjIzQjdQVUJ6YVhZWUN1VUZlR1JhUXRBYXN4NC9VZFRJ?=
 =?utf-8?B?alpldmM2MlVDdGF0TUQ1a09oZkpUb3RBRXVsb3pHNVA0WGh1TjJWVUJsaEs3?=
 =?utf-8?B?NVFTYldXRk1PZVBiL2JoVEYrb2RqMk1ZbnJNN3dYUW90eTVqZ1U4cU9iYXM3?=
 =?utf-8?B?Tm5BTUZHVERlYmF2d2liZGVxa3NJYkRWYlppRGxMRG50SGpiSzN5Mjl6RzFE?=
 =?utf-8?B?U2pnQ09LT1FBNDdRb3FSTTV0bjZvYXBTQXltbXRjNy8wNzNBR0J4RTVOTkRz?=
 =?utf-8?B?Zmc3dlRDM3hVSWhYZ1VQK1NQcm9hSEhmamlCeGJKMFFXbjdaUHFDNmprNVVp?=
 =?utf-8?B?V3htdk8rVHlucjZpTUwyY2drL1Y1Q3hCNDJ0RDR1YzFNUW90U3pOQ2g5WEUz?=
 =?utf-8?B?V0lEYmEwNXA0Qyt1TlhISzJ0Mk5vV20wNGNFNWk0S0JncGNkRWtZSzlWczc4?=
 =?utf-8?B?aURPRkpZRjFZK3pVYlFnaG9VWlJIbVhKcTNpeFN3L1VieGxJNnFLNXI5RXZk?=
 =?utf-8?B?N0VvZ0hFanpGLzQ4KzhZRVBkbm55bWpjU3FnQk1hWFhxUDZpNHBRcGdrWGtJ?=
 =?utf-8?B?R3VDUmN1QkRMd3U3OWhNczhkU2hTZjd0d2NHUzBQZUtZdEFPc2tBOHpPQzhy?=
 =?utf-8?B?ZGMzQk10MjNyMUM3bEk4dU5PbkNpMXUyd0lPZmliSWlWRmNjV294N0h3Ny9Q?=
 =?utf-8?B?anlNQWk5eXZIdFZTelQ1UWVmSGx6dkJKRUt0R2lyTDJRQko0OVluckdjaDM3?=
 =?utf-8?B?Q2YwYnNObjJMUEhVWk4veE9iNjd5OFBaWnNvVFQraUJHaDFnZlhqeW1pUVYv?=
 =?utf-8?B?a1dqbFNMaEZqQmZpcjArMWk0N2l5L3c3UThXamk2aVlPV2JpUVgyeGx6a1ZZ?=
 =?utf-8?B?UUdnT3krTHJLOUYyRVV2UzBqNU5uU3hHNlBLOW9sNUxrNWZPaWtvRHNVQWdC?=
 =?utf-8?B?d2VYcUZKSlpJUGpsdEVwWGM3WGx3Kzk2UWVVZVBwVm82bG55RXg1ZjhpZUdx?=
 =?utf-8?B?TW9CeVdjZktZMERaMEk3Slo5YTEyT1hjVG1vRSs0NmJ4NG5DMmc0VkRTSE1P?=
 =?utf-8?B?bTJGcmhoN0FvRmZteVlrc0RyZHhYUHpZNWNkUE9wUHVBOHphSDd5L3doQkpR?=
 =?utf-8?B?cVBMR2txV2hxTlFGbDY3UEZjdnJySHJtdm4xTkEwYlFzNTlNN0VCeHh5QUpT?=
 =?utf-8?B?eXVHSTBiQytYYlBFekNwSVcyUlJRaXZNWFplNEtDOFViK1VYcklxK2NsUFRG?=
 =?utf-8?B?Mm9pTUhxTXhNNWtvVnFaSDd5LzlnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Zc5cCPFlS9iZudKhUu+WC8ZG2hm0gHBo75+RohcYbhtxnz2viukv+U4tP0H84xAm/fnH61oxtPmgrKFij92vsWuYkUzP2sbTFNlPmjAqCxmrXY0TKIqvGKe0wCQpdL4GEw4mmQRP7Jh1vqQhNOrorD6Xz+uLZ7vyj3U8oWp43xoLD3ctj65oAfo6hLstD8qcRU6fzu9tw/mAh1ABXnyQ4rUXIHhojEkqa4AfJF+WOIbbGeWzVCTOotdvkcsS3mHmGzYDSy7widMi0pbQ2uc7rVLiLyFxRRHxlsY5E7sNVNKZTxX+nnWopp1Hq7Rilw3Mxl8dIypJ7OjyxFQHkSMpDz3+UTy5lTW0F/PyocdLbFbBEV2wMBAWwuY0kkZHyKNBlUSPkYZC4XXumiKw7WhBf3J881PfJsBN91fHk55xBRwutgtjDIofebeLfF/JW9MF
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 15:34:44.1469
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: cc402a00-004b-4520-d021-08de6a4c3f19
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F68.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7673

On Thu Feb 12, 2026 at 12:52 PM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> --- a/xen/arch/x86/acpi/cpu_idle.c
>> +++ b/xen/arch/x86/acpi/cpu_idle.c
>> @@ -178,7 +178,7 @@ static void cf_check do_get_hw_residencies(void *arg=
)
>>      struct cpuinfo_x86 *c =3D &current_cpu_data;
>>      struct hw_residencies *hw_res =3D arg;
>> =20
>> -    if ( c->x86_vendor !=3D X86_VENDOR_INTEL || c->x86 !=3D 6 )
>> +    if ( !(cpu_vendor() & X86_VENDOR_INTEL) || c->x86 !=3D 6 )
>>          return;
>> =20
>>      switch ( c->x86_model )
>> @@ -915,8 +915,7 @@ void cf_check acpi_dead_idle(void)
>>              mwait(cx->address, 0);
>>          }
>>      }
>> -    else if ( (current_cpu_data.x86_vendor &
>> -               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
>> +    else if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) &&
>
> While we certainly make that assumption, shouldn't you add explicit check=
s
> that APs' vendors match the BSP's, in order to be able to also replace
> current_cpu_data uses? Or do we have such a check, and I'm merely overloo=
king
> it?
>
> Jan

In generic_identify()

	c->x86_vendor =3D x86_cpuid_lookup_vendor(ebx, ecx, edx);
	if (boot_cpu_data.x86_vendor !=3D c->x86_vendor)
		printk(XENLOG_ERR "CPU%u vendor %u mismatch against BSP %u\n",
		       smp_processor_id(), c->x86_vendor,
		       boot_cpu_data.x86_vendor);

But I'm not sure why this is not a panic() (I thought it was). Such check
triggering can only mean a Hypervisor bug and a security hole.

Do you see a problem with s/printk/panic/ here?

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:37:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:37:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229345.1535310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYkk-0001oP-17; Thu, 12 Feb 2026 15:37:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229345.1535310; Thu, 12 Feb 2026 15:37: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 1vqYkj-0001oI-Uf; Thu, 12 Feb 2026 15:37:13 +0000
Received: by outflank-mailman (input) for mailman id 1229345;
 Thu, 12 Feb 2026 15:37: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqYki-0001oA-QW
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:37:12 +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 b281e31e-0828-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 16:37:11 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4836f363d0dso3314835e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 07:37:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd34sm213405025e9.7.2026.02.12.07.37.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 07:37:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b281e31e-0828-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770910631; x=1771515431; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lWYbQ/yqgZFytVfQ7qtrWV2fwXV/DRrCkwiuNx0fBaM=;
        b=Gj0hne20+RH3Hd9YNQin457hfqY8Ku1JuZTJMfJh0lBuC1BfASpkrtvyIRq5RvoaOc
         hDPr9jVGavtI8UWsDosTAV6mshlgCkIeFzWGJ2Ebjusqt3qQhvx3NM99WRbVbSK89tXa
         KTONyfgw9USffGuTsZKYgIXdUG+wa8JPCYkaXPwTW1MbbbHxHvPZlL4RbBz/lUDg4ZEc
         VBG2y0jIjb5l+XzL3tIWGhaiw7gDfSty5nEQ1wij1tQaOyJhO91FDYj5oEfU/9VbM/6G
         qwAhwK1L9tiBULQX0szZSARnoW3DayDQxSUbNnyxBc7h6pn33qK1/kJc5TphzBhRS11J
         nEnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770910631; x=1771515431;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lWYbQ/yqgZFytVfQ7qtrWV2fwXV/DRrCkwiuNx0fBaM=;
        b=A2/MPk91s0PgUsxKvrKKyO9sP3rRuzBo7g8xAdSwfof9cw8yIlpEivQo+iz7b93i3o
         +Igmqhw3Bii562gtAMRfDLNg1q/7CZn6uHdfdLaPPgkIw8WU482joVkJeyUt3zS5UUwg
         vpKFmALTMQpw/vLeMdNAYQqINVie/xu2A/BT4zwrx7Ixt6FBxy//edn5fLMMRg+fEAzm
         07HNcGHFJT+gKDt74Kr3uwSXJCdpYC60IdZHODdTGrMkqHRhvoeqBmjpzAmWcWH2Whbe
         WCk34Bj/C2y0U1g3Zx6VDRwdWZ5ZFSHf8nPCZvD1CBjUvxKOEbDoeFEw4H0Txk4hFUxY
         ahiw==
X-Forwarded-Encrypted: i=1; AJvYcCUmaV58dTgfJ/CYXupkrzNmnp3mmuKD0F/Od62ZTtfJEkTdMnSiaYzB6Fsjtnsa2RlsiACDMZqf/gA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoRjxaRraNWeqRmTsXxBVIjiFsKKEG40v8LBWCqLvAaAwVjyo4
	Zm1nJPmFpbQ8p2yrQ+Dwawn4qeuO3o+vvfPEeGKAfMMot6lhVjwpRyyhegPnY27Jww==
X-Gm-Gg: AZuq6aLbAvXDURXEQmoZghRm/pgJtmNTDH5Tl++6a2HEgxh9ZbmOdU9vGATrW0EVyHH
	co/AuExQMIyn1kQrMFixBk9RC1jFkJk5CWeWyxqPX+7szcXWAu1KVwdFj9WgwgecicUApOpUahh
	5cX+BN+xvkhJ9Bgah03keTfKDqdB5xUVTbvOVOcJ4ltZ0f+udh6jCohNNB+KHpOBjQS93yLbPfE
	xFsqUa18QJ7M3Z9JgwUNw1Er0gznSvhbbuw4xQYSTrCm0g4NZIt7S+/CsB+4/uQnKKQpeOGmtxR
	JMqN1PhSFJj9uhykFWMxmLoHBPpJxPzXmo36EhQ0KlkJpH76QEJHfa5I7B+k1wh/TsXjQWfjWy4
	FV7WmMjJb3oiqY317IBPbNuiMMy6irCR3EHbvhghNbR6/das7upwQ4ViPGrXQOaDpxFxwHpsw73
	Kx63Qe4fUScgaXYc7MqVMJ+Tt4gw16/mk8AW5QOMVdPN9PsZkdd/f7f934u/FZLIky9YtQHs+pB
	o6Yp8wIMYwfddVHQc8rpdLZoA==
X-Received: by 2002:a05:600c:8b2f:b0:46e:4586:57e4 with SMTP id 5b1f17b1804b1-4836570e519mr47787435e9.24.1770910630703;
        Thu, 12 Feb 2026 07:37:10 -0800 (PST)
Message-ID: <534c2e55-e5ec-4045-b08e-26916a18366e@suse.com>
Date: Thu, 12 Feb 2026 16:37:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/5] xen/tools: remove usages of `stat -c` in
 check-endbr.sh
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>,
 Bertrand Marquis <bertrand.marquis@arm.com>, xen-devel@lists.xenproject.org
References: <20260212144618.43200-1-roger.pau@citrix.com>
 <20260212144618.43200-3-roger.pau@citrix.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260212144618.43200-3-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 15:46, Roger Pau Monne wrote:
> The `-c` option to stat is not POSIX compatible, and hence prevents the
> check-endbr.sh script from running reliably.
> 
> The first instance of `stat -c` can be removed by fetching the section size
> from the output of objdump itself, which the script already parses to get
> the VMA values.
> 
> The other two instances can be replaced by counting the lines in the
> respective files.  Those files contain list of addresses, so the size in
> bytes is not strictly needed, we can count the number of lines instead.
> 
> Suggested-by: Bertrand Marquis <bertrand.marquis@arm.com>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Acked-by: Bertrand Marquis <bertrand.marquis@arm.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:43:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:43:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229360.1535320 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYqE-0003dd-KO; Thu, 12 Feb 2026 15:42:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229360.1535320; Thu, 12 Feb 2026 15:42: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 1vqYqE-0003dW-Gr; Thu, 12 Feb 2026 15:42:54 +0000
Received: by outflank-mailman (input) for mailman id 1229360;
 Thu, 12 Feb 2026 15:42: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqYqD-0003dQ-Jv
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:42:53 +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 7b4bdcb3-0829-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 16:42:48 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-43638a3330dso13311f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 07:42:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e3b829sm12841976f8f.27.2026.02.12.07.42.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 07:42:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b4bdcb3-0829-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770910967; x=1771515767; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=atGR2jKSqkvBxetSUxHWF94yjyiTNXxj/CcgYuQJmL0=;
        b=M0NQORXLxAF7xKulbJp6NO1SB2cw6ijetxjD83P94HwOk0qpZqlPaE2fM2IVRuQ9Af
         9yM0UN4BDkIPDOReTkMeYsSfrREfFXXXaipINgOyvH5l2q9MXlIQdo8j9kQK/reNaT0a
         s/qVbGLdSaEA6HIROrLV1KusDR0iylVWYAPYTH6DDCf4ZpnQuSiSS+L6KiwHU+78SYTL
         FMMM2D5oJdslXQBj7m+p7pKnP7MoeiH41DYvjgoJKSo6I4x92SwiGMSgygUjfnPl+0QB
         7dcZtnlEB0YSWHxUyajU0aAhbtb6zVreaiiwg2tfRyMHyrOO3qtWuI5oE2o/PkmedWQj
         f28Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770910967; x=1771515767;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=atGR2jKSqkvBxetSUxHWF94yjyiTNXxj/CcgYuQJmL0=;
        b=vxxDRZYCuw/NrZhAofEBFXlqZWlf72tK5VMnLjJqeIFSgZBCV1U+yD3mDpZ4lyUpSX
         ladabuiIRX0woGYFs97KzxoK8R4kFYefkJfGqwyy/V/vYd/18HcW08cM/HyMh8rNxi2S
         bKh+SnSnehakHOZ74Ckvqvx7AL5x7xYqD4rkdyruEa+p2bDcQSJMBmEhPyyOqv3gCZ8q
         1CKYvJt2NirJbfYxB3/pNfB5rjDJZjECRdWSxR1/0eZJZNYVgWbQq+ijG9OkgczpCEyz
         Gt/q47seKswdyeC7s6XS49KCvx/Y3nI+FOTYYEru94HegiKekOgpHsIWk8zkcgGE9bX7
         nOpg==
X-Forwarded-Encrypted: i=1; AJvYcCVrg8z0bHgmoQVja8gm0f/qaOctIUmp13NDsQlOZnJY6kTAerluAuPBzhe3Tt0n8PkAEt2dF8rc4UQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzvF0t959UHxirJAWONknNUNxNMFQw+s+SI7Xdjtr8hOe3Agwd3
	cG9qPMPl+Z9yFenADXtvGFuTEyE7Ni6v3ozaV57wMMhni0NMtTCYAoCMmqLhjx3JsA==
X-Gm-Gg: AZuq6aJPZ2/+QgKf5aa6VaUncivqSmOBotJeSdofruefMYZNNsziYD5jfHrhtz4Wv3+
	/KMm0S1OnoJ7dHL9LR3FD0IwOdeYva4r3kpCNC24ZDhZchqRkU1vl5akRODvrDwo/SuyKWY8KH7
	GwC3+Eh3xOiFI7bodoMHIFLaOS51aW5NQcd/ZC/sEUVZnE/SO08imGs9Nq2f3S4jt64zsc44unr
	XS+8RbALqm68/uWfkaySxmefoCUTNCPXG33NCns70P40Viz2+X6nhASHVJQT6YE081NSYMagvF8
	0Y2hPDkYRHgrueVSUB/rBsyG6zqovMH336XZypedClRnd9rSZQlGN0ziS21ONmQ3mNjyj26kHUi
	cEiDIAOagrwoSaWSLoxRhUmuNnpEALXRCAIpkBIxUhdhiAA3DCmh34PFcsWFlJudy2xYw1niepD
	7++RkTBa41Fi3sRUK8zhFHvXa3Rg7SAzz2761v6ir0rVc0qm2ysfdvr5dvn1a7XV7/iDG11iSb+
	K5+3dMZ8uVleSU=
X-Received: by 2002:a5d:5f93:0:b0:435:729a:eb6f with SMTP id ffacd0b85a97d-4378aa0973bmr5644591f8f.19.1770910967443;
        Thu, 12 Feb 2026 07:42:47 -0800 (PST)
Message-ID: <45e8aa5a-842b-49d0-8744-71295cf0a0b6@suse.com>
Date: Thu, 12 Feb 2026 16:42:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for
 VSATP and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
 <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
 <099768df-ec44-454f-8a9e-4897d81309f9@gmail.com>
 <ba48bef0-551e-4ea7-8d9a-fb54b9b85da6@suse.com>
 <4f9953ae-8722-4971-a214-6c40f7f5859a@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: <4f9953ae-8722-4971-a214-6c40f7f5859a@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 15:47, Oleksii Kurochko wrote:
> 
> On 2/12/26 1:56 PM, Jan Beulich wrote:
>> On 12.02.2026 12:57, Oleksii Kurochko wrote:
>>> On 2/12/26 11:16 AM, Jan Beulich wrote:
>>>> On 10.02.2026 17:36, Oleksii Kurochko wrote:
>>>>> --- a/xen/arch/riscv/p2m.c
>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>> @@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>>>    
>>>>>        return get_page(page, p2m->domain) ? page : NULL;
>>>>>    }
>>>>> +
>>>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>>>> +{
>>>>> +    if ( is_idle_vcpu(p) )
>>>>> +        return;
>>>>> +
>>>>> +    /*
>>>>> +     * 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 what will be done in
>>>>> +     * p2m_handle_vmenter().
>>>>> +     */
>>>>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>>>>> +
>>>>> +    /*
>>>>> +     * Nothing to do with HGATP as it is constructed each time when
>>>>> +     * p2m_handle_vmenter() is called.
>>>>> +     */
>>>>> +}
>>>>> +
>>>>> +void p2m_ctxt_switch_to(struct vcpu *n)
>>>>> +{
>>>>> +    if ( is_idle_vcpu(n) )
>>>>> +        return;
>>>>> +
>>>>> +    n->domain->arch.p2m.is_ctxt_switch_finished = false;
>>>> How can the context switch of a vCPU affect domain-wide state?
>>> It is wrong to have is_ctxt_switch_finished per domain, it should be
>>> vCPU field.
>>>
>>>>> +    /*
>>>>> +     * Nothing to do with HGATP or VSATP, they will be set in
>>>>> +     * p2_handle_vmenter()
>>>>> +     */
>>>> Why can this not be done here?
>>> As VMID should be calculated on VM enter.
>> And I didn't suggest to calculate a new one here.
>>
>>> We can update HGATP and VSATP here with VMID stored before in p2m_ctxt_switch_from(),
>>> but then it is possible when vmid_handle_vmenter() will be called before VM entry
>>> VMID could be changed and it will be needed again to update HGATP and VSATP what
>>> will lead to flushing of VS TLB twice (one in p2m_ctxt_switch_to() and another one
>>> in p2m_handle_vmenter()).
>> Is this a concern resulting from particular logic you expect to appear
>> in the window between context switch and entering the guest, or is this
>> merely an abstract concern?
> 
> If we will have VS TLB flush unconditionally in VM entry then it is merely an
> abstract concern.

Why would we want to flush unconditionally?

> Otherwise, considering that speculation could happen between
> context switch and VM entry what could lead to that some entries were added to
> VS TLB flush with old VMID in the case if then in VM entry vCPU might receive new
> VMID.

I don't understand: Context switch leaves vsatp.MODE at zero. Nothing can end
up in the VS TLB in that case, aiui.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:44:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:44:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229370.1535338 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYrl-0004Dz-2u; Thu, 12 Feb 2026 15:44:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229370.1535338; Thu, 12 Feb 2026 15:44: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 1vqYrk-0004Ds-V9; Thu, 12 Feb 2026 15:44:28 +0000
Received: by outflank-mailman (input) for mailman id 1229370;
 Thu, 12 Feb 2026 15:44: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=m8H5=AQ=bounce.vates.tech=bounce-md_30504962.698df554.v1-fc5e567fc2294e1f9457945a1f3e5574@srs-se1.protection.inumbo.net>)
 id 1vqYrj-0004Dm-P4
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:44:27 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2e3915f-0829-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 16:44:22 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fBfjw4qZQzPm0pyQ
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 15:44:20 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 fc5e567fc2294e1f9457945a1f3e5574; Thu, 12 Feb 2026 15:44:20 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2e3915f-0829-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770911060; x=1771181060;
	bh=Q5ghv+I1XhWpNNj+huOmGZQuMdeAGane7kLnRjHTz8w=;
	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=U3a8NcsBvA89mA7G4i8+I1PhLPlfMLY90Gi+US2gM/l1diZdpOibbpLKIeZdP5Zbj
	 P++Ux8F4pN0BRv7plHwCv3+LmXblnh9AXKL72PF5IhGiu9GLpnvukjQDf5LGWVeyql
	 FKi/R4p/skwRgnPgbzS6MZ6C2zlbyxRAkFM23TmvgcZt9phqGNYCbaMccvs99XvIG7
	 e14Wjx1jC8xrGH4hftWr1y+vzYXFVxAU/ReMtT9YKyVSawjFDz2dwgM6lbR9svao0O
	 36eXsKEWZI3tc//LQvQv8oMmopkSNB00sWdsG7nivsZZ2YXpTeAp10KKO8bNqgErtw
	 dzi+p3PyDAMOQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770911060; x=1771171560; i=teddy.astie@vates.tech;
	bh=Q5ghv+I1XhWpNNj+huOmGZQuMdeAGane7kLnRjHTz8w=;
	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=EPNGfiVnFpaHnuOmbeiCbRb4F7E5OstOnJxi5NvNHj5aMXzxq+a+yUXpdeCEqnzU4
	 16A6EoafxsaempndyL3atNuryExGWbWgnWz346NsPOyx54c0qBbYAyedBGWIVmUt98
	 y7NHXAoxR9dUqgU9kVBlxlLfOdP3cgN5IpNfcXUgmvBQWDBa6juEE9/aEai69F8G88
	 JezMVCFmb0gZiRMzAudTKFIY8HhYdnrKr2HuhwANBF+tMorYn5dHimjTz2JvwYo52L
	 9pAleSHsxvXNIEcBcLNdo/2CYCAcoxFKTXmpYwTlB4QSYMKvqF5G+9laTZkmhsmD9V
	 do/4HqI2AxIAg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v6]=20xenpm:=20Add=20get-intel-temp=20subcommand?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770911059944
Message-Id: <6f0d897a-2e65-47ec-a97e-24b8c19b19fc@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Oleksii Kurochko" <oleksii.kurochko@gmail.com>, "Community Manager" <community.manager@xenproject.org>, "Anthony PERARD" <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <489a4decf4367a9983a63fb4987d8c5f6267ed9f.1770632848.git.teddy.astie@vates.tech> <7064136b-38f1-4bbe-9ff4-14774c88f016@suse.com> <f2a9028f-6bc6-40f8-a9ef-26800c9e4c59@vates.tech> <4553d4f8-89a9-4ef0-9b56-f3a04d8d7d67@suse.com>
In-Reply-To: <4553d4f8-89a9-4ef0-9b56-f3a04d8d7d67@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.fc5e567fc2294e1f9457945a1f3e5574?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260212:md
Date: Thu, 12 Feb 2026 15:44:20 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 12/02/2026 =C3=A0 11:30, Jan Beulich a =C3=A9crit=C2=A0:
> On 12.02.2026 11:19, Teddy Astie wrote:
>> Le 09/02/2026 =C3=A0 15:21, Jan Beulich a =C3=A9crit=C2=A0:
>>> On 09.02.2026 11:31, Teddy Astie wrote:
>>>> @@ -93,6 +96,7 @@ void show_help(void)
>>>>                "                                           units defau=
lt to \"us\" if unspecified.\n"
>>>>                "                                           truncates u=
n-representable values.\n"
>>>>                "                                           0 lets the =
hardware decide.\n"
>>>> +            " get-intel-temp        [cpuid]       get Intel CPU tempe=
rature of <cpuid> or all\n"
>>>
>>> Sorry, thinking about it only now: Do we really want to build in the ve=
ndor
>>> name to a command? "get-temp" would allow for adding an AMD implementat=
ion
>>> later on?
>>
>> AMD CPUs expose a PCI device that can be interacted with to get
>> temperatures; which is then exposed in hwmon interface of Linux. That
>> wouldn't be practical to implement hwmon interfaces in xenpm.
> 
> You understand though that AMD only was an example (the most natural one)=
?
> 

Yes, though having a generic name (e.g get-cpu-temp) could suggest that 
it is expected to work for all vendors; while it will here only work for 
Intel.

>>>> @@ -1354,6 +1358,131 @@ void enable_turbo_mode(int argc, char *argv[])
>>>>                    errno, strerror(errno));
>>>>    }
>>>>    
>>>> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool packa=
ge, int *temp)
>>>> +{
>>>> +    xc_resource_entry_t entries[] =3D {
>>>> +        { .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THER=
M_STATUS },
>>>> +        { .idx =3D MSR_TEMPERATURE_TARGET },
>>>> +    };
>>>> +    struct xc_resource_op ops =3D {
>>>> +        .cpu =3D cpu,
>>>> +        .entries =3D entries,
>>>> +        .nr_entries =3D ARRAY_SIZE(entries),
>>>> +    };
>>>> +    int tjmax;
>>>> +
>>>> +    int ret =3D xc_resource_op(xch, 1, &ops);
>>>> +
>>>> +    switch ( ret )
>>>> +    {
>>>> +    case -1:
>>>> +        /* xc_resource_op returns -1 in out of memory scenarios */
>>>> +        errno =3D -ENOMEM;
>>>
>>> And xc_resource_op() doesn't itself set / inherit a properly set errno?
>>> We don't want to override what the C library may have set.
>>
>> I'm not sure what to do then. I guess we want to reset errno before
>> entering xc_resource_op (so we won't report stale errno), but we would
>> still need to consider cases where xc_resource_op returns failure
>> without errno having being set ?
> 
> Should xc_resource_op() perhaps better be corrected to behave consistentl=
y
> wrt the setting of errno?
> 

that could be something to consider

>>>> +    case 1:
>>>> +    {
>>>> +        /*
>>>> +         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume =
it's 100
>>>> +         * which is correct aside a few selected Atom CPUs. Check Lin=
ux
>>>> +         * kernel's coretemp.c for more information.
>>>> +         */
>>>> +        static bool has_reported_once =3D false;
>>>> +
>>>> +        if ( !has_reported_once )
>>>> +        {
>>>> +            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported,=
 assume "
>>>> +                            "tjmax =3D 100, readings may be incorrect=
.\n");
>>>> +            has_reported_once =3D true;
>>>> +        }
>>>> +
>>>> +        tjmax =3D 100;
>>>> +        break;
>>>> +    }
>>>> +
>>>> +    case 2:
>>>> +        tjmax =3D (entries[1].val >> 16) & 0xff;
>>>> +        break;
>>>> +
>>>> +    default:
>>>> +        if ( ret > 0 )
>>>> +        {
>>>> +            fprintf(stderr, "Got unexpected xc_resource_op return val=
ue: %d", ret);
>>>> +            errno =3D -EINVAL;
>>>> +        }
>>>> +        else
>>>> +            errno =3D ret;
>>>
>>> Why would this be? How do you know "ret" holds a value suitable for put=
ting
>>> in errno?
>>
>> Aside -1 in out of memory situations when xc_resource_op returns -1, in
>> other failure cases, it returns a hypercall (e.g multicall_op) return
>> code, which is supposed to match a errno.
> 
> As above - generally all layers want to deal with errno in a consistent
> manner. If bugs in lower layers are too intrusive to fix right away, such
> workarounds will at least want commenting upon (so it is easy to determin=
e
> at what point they can be removed again).
> 

I think once xc_resource_op returns consistent values, things would be 
simpler to deal with here.

> 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 Feb 12 15:47:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:47:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229378.1535348 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYu7-0004mY-IV; Thu, 12 Feb 2026 15:46:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229378.1535348; Thu, 12 Feb 2026 15:46: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 1vqYu7-0004mR-DM; Thu, 12 Feb 2026 15:46:55 +0000
Received: by outflank-mailman (input) for mailman id 1229378;
 Thu, 12 Feb 2026 15:46: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=zRx/=AQ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqYu5-0004mL-UW
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:46:54 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0ba1de22-082a-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 16:46:50 +0100 (CET)
Received: from BN9PR03CA0087.namprd03.prod.outlook.com (2603:10b6:408:fc::32)
 by BL1PR12MB5780.namprd12.prod.outlook.com (2603:10b6:208:393::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 15:46:47 +0000
Received: from BN3PEPF0000B06E.namprd21.prod.outlook.com
 (2603:10b6:408:fc:cafe::5f) by BN9PR03CA0087.outlook.office365.com
 (2603:10b6:408:fc::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Thu,
 12 Feb 2026 15:46:42 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B06E.mail.protection.outlook.com (10.167.243.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.0 via Frontend Transport; Thu, 12 Feb 2026 15:46:47 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 09:46:45 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ba1de22-082a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Tc8BkgMzle81Queu9MGc1MeQUqauFzoATgM4UX8uOXum+CcVg/lIj55oBi3M7avP9fL7tts1VlVv+QVd8cy2RuQKLF5dxYxq5E3Aa08Q/l9NAufM9GM7ETkz0FzSawZiuDHpBmAgBt/3GhsYYyIvLu4CJvznsJSgFUhLuUDTgdWS1Ht6h3e7HG4IJXMNH5PMknjZ0bKPIBPaKk5PcGbcGtLzytot+dQggZg3GEmZQ+swkFH3+trbmvVFgBiCeB8nx6wdZfloqndDjkwfEbUKyKiVi8X87djMOWseypWMMT5+J2iYC/C0wthqhot3vrXCik/ej1a3oglYaSG+Ll3Uqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=W+61SZlI0ufxy97zKkBt+DLY0apk1WU8TXSyRaADQhc=;
 b=Ke7/dknUqyhJUvcD8qFeeTNJjqbTAkVPqJn4/+rmZcTFSMKuQDhTSD6stA2Fx5Y08xuAx+UiBu2WoAhEKjNrvzYXnVJl7lmeyf58WcPpDP3Thrpyu3MiP9lEKpGUayjub+498HYlJMd/lpd2VOGFCdPYWkmYa9qAZAJzRI6NLtDZUVbi9vOWUwSpCIjqTDmDf3hzsyjxdzXB+LM0cvD8vkcznf3WCuUx+kG7fDzNUKtvidF/I0YA7pJ0nxxpCREUwMayiBWs0svuNiyfhRmDeuFyvwdHDojDn9MFKQQak9Gemeql6vwxNzscKpxHv8+d2HPkrTpqgkyufQcyZU7Hpg==
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=W+61SZlI0ufxy97zKkBt+DLY0apk1WU8TXSyRaADQhc=;
 b=HS4sqx9b/S6/A99i/Htm+jSFgnQ97L2aL3ScgEkPR1kNplWjQ1Jx/E0pSL/4QogCa1TUezhmx5Kgd9KaI8JJnwYT93pzKK/LTJ0eE2xC0Okt3sWDsKTej+cGEAbkHAJs4+JDe9+2lQgSH9ZAa2nDe2abSS5vGY709DMtlpXA7z4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Feb 2026 16:46:43 +0100
Message-ID: <DGD3MNWTMG1O.GMQFJ5MS7BG9@amd.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>,
	=?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 10/12] x86/mcheck: Migrate vendor checks to use
 cpu_vendor()
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-12-alejandro.garciavallejo@amd.com>
 <18795ddc-c558-4a51-9b61-717e96bf5150@suse.com>
In-Reply-To: <18795ddc-c558-4a51-9b61-717e96bf5150@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06E:EE_|BL1PR12MB5780:EE_
X-MS-Office365-Filtering-Correlation-Id: 55848d6d-4b97-4c7b-b741-08de6a4dee0b
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?VHNwK0QydngwMkYwamFHRldoSEdBMWRtVU1JSHhORW1YTE9qMlJTWGRabzdO?=
 =?utf-8?B?d3g1WWJSYXU3VHVmaTBBaXBLaWxuaXhzNnBSMlVyYmJsMTYvazlKUXVGMDVy?=
 =?utf-8?B?blJwQjRVM09RckdNcnM5eEU0c212dVh3djVpdzJmNUk2aldTZ3FuTkgwdkJV?=
 =?utf-8?B?YklFV0xKNktHS2NZcWF3bWh5ajdqZDNDdksxRk8vZkVvQVNWa1l4aXlGWUdU?=
 =?utf-8?B?VlhoN3NNUEVMd3VZQTZsYnI0aXdxaVd4dkw3LzBXRXRHZDk0a0Y0RzZCcWZZ?=
 =?utf-8?B?TGVRZHRUenA4MWRoaHNlTUNuSE5ScThodkZMQTRHQXl2bXZnazF1TTc1OHZP?=
 =?utf-8?B?dzRweWw0RnZ5NEVpcHM4RTV1djA1TkZmeTNib0E0YUhlcktCZGFLK0dYcDJa?=
 =?utf-8?B?QzFlQ3F1WWd0YTIzZlMvUVN3TkhOb2plT2RST3h6NktGU2t6RTdkR085SXFs?=
 =?utf-8?B?OFV1c1JxTTl1L2RJNVlDN3dpSFpQKzB0bDNXam1UeU5UTlRxQzlnYUwxWmpy?=
 =?utf-8?B?Y0dJVnQyd1JtU3N2YkhVdjVQWEVoOUtwQ2FqaXlWTW5PUmJaeFUwTlNrcU1T?=
 =?utf-8?B?ZDdpdjc3bmNqNUNHOStyMzNkWUtZb3E3OWpLdjlUNGVBb0VRVUFkOW1hdDJR?=
 =?utf-8?B?VlYrZ21CUW9ueGpYKzhaS3J4WFV0VzdRNGo1MzkyS2dkaU0rK0ZqKzIwWXg5?=
 =?utf-8?B?M3NTUFAyNVRCTzlQTFU2REl1TzZLbTRTUnh6aTB1dkFQa0t1ajduZVNFeXFI?=
 =?utf-8?B?eWI0MVEwa0NtQjNPa3dHNmUraEFuTkM0N1R3ejFSUmtmVFlIVEp0QitaU21O?=
 =?utf-8?B?bGpURUV4ZXVMbmJjVEVldnk3WDhkcWJMRUI4OVcvYko4bnQwMXQrZXVMWGQy?=
 =?utf-8?B?SVBhMTUvOUswQ05NY0theitZM3lGdWR5TmE0Rk1zMWgrZzBzTUNqUXM5Tlhz?=
 =?utf-8?B?SmNvMCtkZzB3M08xSlNqT3c4dkk1QlUrMkthczA4RW9JaGxBT3hwVmlzbGk2?=
 =?utf-8?B?eGo5YkRPeDhXQm1zWmo2aExVU3lhWnkxV1V1V3pOOGd3NmhMdVJKQjgxQlZ6?=
 =?utf-8?B?alV4WGVMbFNHYjU0Z21MVk13WG9ZNURjS0ZJSHdqL2s3VUY1Ung3YjZwbzE0?=
 =?utf-8?B?YlZBSUpSY0grcW5TUTVOQkVUWDI3ay8vcTJqQ0VEK1Y1aVozUTN4QVhjNm5W?=
 =?utf-8?B?RFZxcDM1VjFHS05YYzcybHhsVGp3aWduYS9JSWo5OTh6enl2RlZWY3U0a3Bo?=
 =?utf-8?B?T25zRGlHWjFENHN4c0lJRDhPWDlmNG9Oa0VoZUpudTJuUEkvSWwraGU0RE9C?=
 =?utf-8?B?UCtIUWtmQ0VUeEZzbEtTbmkxcHpWemdZb3UyQXRkVkFEVk1lM3BKN2FRSkF2?=
 =?utf-8?B?ejh6cnpMc0JTeDRXOEpTUGlxWEJBSS91OWZ4aDRiWFpqTG1LZWFGeWNTYnJ0?=
 =?utf-8?B?Zm5tL1A1UUh1Yy8wbXZlZUZua3dxSHp4MVI0QUZYOUdQdmlWR2dzM0VYOHBy?=
 =?utf-8?B?U3IzbHpVVFdJRlFXUWFTbDN3TlhiSUF0cDU4WDlTMjBMOEJnRXYxMHp6MmZn?=
 =?utf-8?B?OS94eDNqRG9zeVZYY1lUdU9Yd3RicnIvdXppWkFJWTNBNi9wWW9TZEhuSGxk?=
 =?utf-8?B?OUxHTjlPbThSQjJXY3VRZDR0M0RrRXUvVUE3QnR3VWZtb28rQkpxTGw3TXJN?=
 =?utf-8?B?VjErc1NZZlF4amZzTXVaYnVWVnVxNTM4MjhBRWI5UUN4OXcvWnNadHZEVHpt?=
 =?utf-8?B?WHFqdFNucjhtSFVwdEYrVU1xNnpYUktEZVhscC8xeEpTL3FKVEhhRTBqMU9K?=
 =?utf-8?B?OU0rbnNOQ2JXVnBaNDFHenNFd1JYVTVkZml3Q25DZkIvYk81QldJUHNqOHpm?=
 =?utf-8?B?MFA0N1Rsamp0RlBtTUJLRW1NZ01JZWFTU3luclhLUFlMc2tMWUQ2NkdTMnlF?=
 =?utf-8?B?SmdoL21sRHI0bFpYSDJpR3RYL21lRFkxVGFMa0RqUFh2VXJzWXJVSHgzU2pi?=
 =?utf-8?B?U29kS0QxNzNzR0RpYmIvT0h4bUtEdlRjTVZ2ZWE4VWZ3OXdvME5JbnhncWox?=
 =?utf-8?B?RUhnbVRRamlpaTAzaC9EOUFsc0lkZ1ZZamdLaFdWZGttR0owQmZlaDh2NThQ?=
 =?utf-8?B?NTRVVllCS051ZUxNUFdUVVIralBXK2Z6WkxGdVdKWkpha3NJRlBaVEx3SDJV?=
 =?utf-8?B?ckkreUFvQVcyRnRCR1k5VjV0TUQ5aUV5SGNtV2pDQlNvelRrVzlJVzF5UTFG?=
 =?utf-8?B?VFJWWDdlbW9WSURWZVFacG5ITGt3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Vxh1TZT8s/f+YGlQuFDUJZXiON2YcIQsno4/sQQcICwb2RJLibQs/cX7dgG0X+Fz7FkefqRrgkYP3tkmgVJqjPULGq0HIS70xXgbneMQpZ01QBV/mXb3R+zDPSfVV1Nt91AHEEDzYq5o++zDAntAVDWAEF1vVJAYK6URURTLhUtaHlvJjPYDmZFTUdtZMMaOY3NmJXaOmIfryojn007C8dJ618lsxLJDIygAcm4gRvy2GrrGVdm3iC6oHFB9ziWwq6gnX68DlMWz+nZLr3OpTItnW5uktOpokYQIF7xpX1cEYfRqaWPwHYBuvKjFRz+yba6znshmmfFSbFRDhlsBVutDUiiFUlGbRXviu7Dr/dcilwVu1CxaD2eyhV+MBOqKJg+Z9ocTTSGJYZML3xFonBJjeplbR6Api+MyYe+il67gJGMCpOevV1PkOXEmNckl
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 15:46:47.1592
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 55848d6d-4b97-4c7b-b741-08de6a4dee0b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06E.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5780

On Thu Feb 12, 2026 at 1:02 PM CET, Jan Beulich wrote:
> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>> @@ -862,7 +861,7 @@ static void x86_mcinfo_apei_save(
>>      memset(&m, 0, sizeof(struct mce));
>> =20
>>      m.cpu =3D mc_global->mc_coreid;
>> -    m.cpuvendor =3D boot_cpu_data.x86_vendor;
>> +    m.cpuvendor =3D cpu_vendor();
>>      m.cpuid =3D cpuid_eax(1);
>>      m.socketid =3D mc_global->mc_socketid;
>>      m.apicid =3D mc_global->mc_apicid;
>> @@ -964,7 +963,7 @@ static void cf_check __maybe_unused do_mc_get_cpu_in=
fo(void *v)
>>                          &xcp->mc_ncores_active, &xcp->mc_nthreads);
>>      xcp->mc_cpuid_level =3D c->cpuid_level;
>>      xcp->mc_family =3D c->x86;
>> -    xcp->mc_vendor =3D c->x86_vendor;
>> +    xcp->mc_vendor =3D cpu_vendor();
>>      xcp->mc_model =3D c->x86_model;
>>      xcp->mc_step =3D c->x86_mask;
>>      xcp->mc_cache_size =3D c->x86_cache_size;
>
> What we do internally is one thing. But what we report to the outside sho=
uldn't
> be inaccurate, imo.

I agree. There's also zero benefit.

>
>> @@ -1122,7 +1121,7 @@ static bool __maybe_unused x86_mc_msrinject_verify=
(struct xen_mc_msrinject *mci)
>> =20
>>          if ( IS_MCA_BANKREG(reg, mci->mcinj_cpunr) )
>>          {
>> -            if ( c->x86_vendor =3D=3D X86_VENDOR_AMD )
>> +            if ( (cpu_vendor() & X86_VENDOR_AMD) )
>
> Nit: No need for the extra parentheses here.

ack.

>
>> --- a/xen/arch/x86/cpu/mcheck/mce_amd.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce_amd.c
>> @@ -160,7 +160,7 @@ mcequirk_lookup_amd_quirkdata(const struct cpuinfo_x=
86 *c)
>>  {
>>      unsigned int i;
>> =20
>> -    BUG_ON(c->x86_vendor !=3D X86_VENDOR_AMD);
>> +    BUG_ON(!(cpu_vendor() & X86_VENDOR_AMD));
>> =20
>>      for ( i =3D 0; i < ARRAY_SIZE(mce_amd_quirks); i++ )
>>      {
>> @@ -291,7 +291,7 @@ amd_mcheck_init(const struct cpuinfo_x86 *c, bool bs=
p)
>>      uint32_t i;
>>      enum mcequirk_amd_flags quirkflag =3D 0;
>> =20
>> -    if ( c->x86_vendor !=3D X86_VENDOR_HYGON )
>> +    if ( !(cpu_vendor() & X86_VENDOR_HYGON) )
>>          quirkflag =3D mcequirk_lookup_amd_quirkdata(c);
>
> I wonder if this wasn't better switched to the positive for (checking for=
 AMD).
> This would the render the BUG_ON() above useless.
>
>> --- a/xen/arch/x86/cpu/mcheck/mce_intel.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
>> @@ -711,8 +711,8 @@ 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 syste=
m
>>       */
>> -    if ( c->x86_vendor =3D=3D X86_VENDOR_INTEL && c->x86 =3D=3D 6 &&
>> -         c->x86_model >=3D 0xe )
>> +    if ( (cpu_vendor() & X86_VENDOR_INTEL) &&
>> +         c->x86 =3D=3D 6 && c->x86_model >=3D 0xe )
>
> Nit: Why the re-wrapping of lines?

No good reason. I find it marginally easier to read. I can restore it's pre=
vious
state.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 15:53:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 15:53:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229392.1535358 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYzx-0006oF-DJ; Thu, 12 Feb 2026 15:52:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229392.1535358; Thu, 12 Feb 2026 15:52:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqYzx-0006o8-A1; Thu, 12 Feb 2026 15:52:57 +0000
Received: by outflank-mailman (input) for mailman id 1229392;
 Thu, 12 Feb 2026 15:52: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqYzv-0006nz-Oz
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 15:52:55 +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 e4116610-082a-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 16:52:53 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4359a302794so10780f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 07:52:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783dfc55dsm12757517f8f.20.2026.02.12.07.52.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 07:52:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e4116610-082a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770911573; x=1771516373; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=TVU4LvAFto0AsoBWVrkvW779D6IJdLhue9W/0fGfHog=;
        b=Sm3RUdrqVjvm5dAXOPPytsPv7AJvkxl39TLcN0ePaX7Iz9+F1x/TXSYHtfkDKoIvNX
         o+goP7MCb6w16M0F6JBfk1kwLAN9JrWsmDxMQe3TDMxzjWDgjIHVTzSvkpRUp3PETjfh
         4l3hcxj5ZZXQumRkprw/T3MmL6jFooOH4zDabMV2Z/O2hQQxAa6Ok4LNmePS1eFAeK24
         lMVvK6HrFNjSb8xmeL7hdZLOwsILYQKPZM979MMrRrSAXJeoi+ntVL2YAg3QHugrqid4
         fRwcxYoYlegig+fE2MwDVeCCXXcYx1D1LYNM9Y+veKMkWkIqLm2yPweD0ETaRWghlWQU
         amDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770911573; x=1771516373;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TVU4LvAFto0AsoBWVrkvW779D6IJdLhue9W/0fGfHog=;
        b=dbeoe5fzvZd/erSYWKdyi1QLvPAM92OM4d0zMBWM9HWzn0KCUl/z7qSAy0vNU5odj4
         S952jZo12imS16sqgswGZuzohVN1Q31Uk5XlFbfi5WraymQPzgxMVdMO/Uv31zoq9Zwy
         wEqU9jsu3eBbMvQHYpVnZuoJ4eohTstIcFpmfpeB2Wfx9dlk2F3jZxQiUEHnTOogG6cg
         gp+PK2ghVG0l8wc+q0DOsVVGd6MYdpqTtiNjv0rs6ihg3EdyTRJ/kZg8zi8vFO3qoWhQ
         aJNp0jLvYXvncqkafaVnqGLdLU6hHpLT7m03PMfD2Rg2+0/3fWHAGDg20pDy6Pv98Ipr
         qH7A==
X-Forwarded-Encrypted: i=1; AJvYcCXw837Kw+fJ7CgusNVfcofpsIcRGcNBHCY/aOFsJSZ8Ht1CTsO8/GwfvFup6YhKlg89ye/x6eIcKm4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy93hc2geve8WMOZqFqVRf/Tn2pAlFzTqsP/P+SRkY3TjhL6M9O
	YwHu57ixcURBI9saT2InRe0fPcPM3432t3H7FxwsQEdQZCCQdRkWUhC6hTTRiDBWQg==
X-Gm-Gg: AZuq6aKIOXIr7Yxo1xTwEm0PeFC8FVxyqMrHxilCJkSFZI/Wyp79ksYbCH+zMqaekmJ
	2dR0FbUIpSe2UkY5Ym9DZFlrAr2qd7w8/7z+WGG0VQX62NCQmECdTfimwWt4vR2TGPoCv7FCv9A
	S7ArGUoILV7/l3uKfGoBTcrYkukICuKEVmGgRAkrewpCB3xtaGls/8JoLzLPwK+rXc8oro1QHwp
	fhagZNJkQtdkUvUBST8mvNscl2jbs03o3NXz1nCJcBXfXeHT4AR7HnQQZ15BWLaGtf5oHPp9Uy2
	WwgAJgJSn7PhhzyGL5otraZ5fClWBS734uDRqNl6xfgBrgFRMQhqIoJAjn5ezt7KOKXfOwTW90M
	0wUUbr9N76EA1IZqy8BpVdKW6FgZaUDHLAyKE0PJRYLDtgA5Wdjq21ooM04urlUrl2sFk4zL/9Z
	yHjYmSxAGPuoTl0qNB5VDr/4L0T2CzrbrnvCzfBjw+Ysh9SzxAbNlPbicmryeI+oZfyHf9xgnsa
	JVvY2USkcbLT2pUouXHIJYzFQ==
X-Received: by 2002:a05:6000:1883:b0:436:1989:46b7 with SMTP id ffacd0b85a97d-4378acad908mr5778052f8f.15.1770911572829;
        Thu, 12 Feb 2026 07:52:52 -0800 (PST)
Message-ID: <36d3244d-c1cb-4b55-ae7e-9dfa7c632a43@suse.com>
Date: Thu, 12 Feb 2026 16:52:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] x86/acpi: Migrate vendor checks to cpu_vendor()
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260206161539.209922-1-alejandro.garciavallejo@amd.com>
 <20260206161539.209922-10-alejandro.garciavallejo@amd.com>
 <3504e0eb-973c-427f-98ac-27801819e175@suse.com>
 <DGD3DFQLJI17.2Y9ML8QC93NOU@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: <DGD3DFQLJI17.2Y9ML8QC93NOU@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 16:34, Alejandro Vallejo wrote:
> On Thu Feb 12, 2026 at 12:52 PM CET, Jan Beulich wrote:
>> On 06.02.2026 17:15, Alejandro Vallejo wrote:
>>> --- a/xen/arch/x86/acpi/cpu_idle.c
>>> +++ b/xen/arch/x86/acpi/cpu_idle.c
>>> @@ -178,7 +178,7 @@ 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 ( !(cpu_vendor() & X86_VENDOR_INTEL) || c->x86 != 6 )
>>>          return;
>>>  
>>>      switch ( c->x86_model )
>>> @@ -915,8 +915,7 @@ void cf_check acpi_dead_idle(void)
>>>              mwait(cx->address, 0);
>>>          }
>>>      }
>>> -    else if ( (current_cpu_data.x86_vendor &
>>> -               (X86_VENDOR_AMD | X86_VENDOR_HYGON)) &&
>>> +    else if ( cpu_vendor() & (X86_VENDOR_AMD | X86_VENDOR_HYGON) &&
>>
>> While we certainly make that assumption, shouldn't you add explicit checks
>> that APs' vendors match the BSP's, in order to be able to also replace
>> current_cpu_data uses? Or do we have such a check, and I'm merely overlooking
>> it?
> 
> In generic_identify()
> 
> 	c->x86_vendor = x86_cpuid_lookup_vendor(ebx, ecx, edx);
> 	if (boot_cpu_data.x86_vendor != c->x86_vendor)
> 		printk(XENLOG_ERR "CPU%u vendor %u mismatch against BSP %u\n",
> 		       smp_processor_id(), c->x86_vendor,
> 		       boot_cpu_data.x86_vendor);
> 
> But I'm not sure why this is not a panic() (I thought it was). Such check
> triggering can only mean a Hypervisor bug and a security hole.
> 
> Do you see a problem with s/printk/panic/ here?

Well, yes and no. If we settle on the other panic() to remain, maybe this one
would be okay-ish, too. Otoh anything in AP bringup would better not panic,
but simply fail onlining that particular CPU.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:12:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:12:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229424.1535372 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZIp-0002Hi-Tk; Thu, 12 Feb 2026 16:12:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229424.1535372; Thu, 12 Feb 2026 16:12:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZIp-0002Hb-Qq; Thu, 12 Feb 2026 16:12:27 +0000
Received: by outflank-mailman (input) for mailman id 1229424;
 Thu, 12 Feb 2026 16:12: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=Krcj=AQ=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vqZIn-0002HQ-KE
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:12:25 +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 9b905d9f-082d-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 17:12:20 +0100 (CET)
Received: from DUZPR01CA0094.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:4bb::20) by AS8PR08MB5879.eurprd08.prod.outlook.com
 (2603:10a6:20b:293::17) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Thu, 12 Feb
 2026 16:12:16 +0000
Received: from DB5PEPF00014B9A.eurprd02.prod.outlook.com
 (2603:10a6:10:4bb:cafe::ca) by DUZPR01CA0094.outlook.office365.com
 (2603:10a6:10:4bb::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Thu,
 12 Feb 2026 16:12:12 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB5PEPF00014B9A.mail.protection.outlook.com (10.167.8.167) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Thu, 12 Feb 2026 16:12:16 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by AS2PR08MB8878.eurprd08.prod.outlook.com (2603:10a6:20b:5f0::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 16:11:13 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 16:11: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: 9b905d9f-082d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=TSE+vUfG0epM7M+K4168Rilf9x9XPWBDDOYoFthTIWnbRdFPJB8nIc+Jl21Os7ss7M2rEwTDB+jplDm6/6UGJrQHhLE7bVNDpnGSDnxpAimdxUX1zQ+Am1IeKaNUkkHxxL2MiyLiwJnJlqwr3DW/3Qs4SS7GsJcfhNAQp9xmQw4gcaTNyq2W20YOqtiy5OPv6NArR0yxo6RN2dxZp00EAyVD5uLVNN7OgUhJ1vKlwbKU0rQ5eq0X3LubOKrYJXwBJUEtV3Sf3hThU1rjKAGbSJ8f8hNBrFe6kCVSvJKHof7/3Dnabh87I7q2oUGctoi/3emT3nZ2+TzxxLCR7Uq+DQ==
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=GdeApeURvFvT/CvvTI4dLgaDQqmGRGBGTQ0aOhn9Tbg=;
 b=HgBPDVE579WzzePHFA1GOu2J4UavTUylhc35xHcwNeh5/tSfRWZtENrreOug/3VauiI0XXn0vLgzUsfQ9eNdhzzBdr72I5FZs2FTozt7/oLvykclXGik5kaA6EzvVPqsbNknkUuSmqGRPBT/vGN4iQekXpCBE2AAAhUlZ3csrMmlNejMDW8rFvdpMIYyjD1xdm+SYLVVYYfPCJci019W/VrXEj+187S2mnbNfVuRVWRaWz5o2NIwFsuwsj9cK8NMNU4WV1xrw1IJKGeFGjkDjZFfNCaaBkE2OZ796ne+zhAvRfwjt3XpNKXOlAJ1PV0sqWPPo/GPLGB4Nqrz7DbkMQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=GdeApeURvFvT/CvvTI4dLgaDQqmGRGBGTQ0aOhn9Tbg=;
 b=Td1yX5MsIqh+oFCDjja6T4X96ulTskfo97WD3GbUMO6ZWjJO0rPGgdLUnD1PvI2KiikDoPb+B3NxQWEiNDBH9Onz8EQDJjJi3AoySk29rusou0RQIxZG7qyHxsGatGlhK1XpWo+gXDJiyaaVxiifJJgKl0AVs/5P0nx6xGbFRso=
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=J87XbuBv+SR2JdE2R5p/VaB8VVZRoIVaUw5XNWAqe/AvAx77jTzKDd8aDgHwLin9ncTIbQc+7T4xLXWAy0jO4TLErstpYKOeMj6OpYj66/+IMPVr51knyujHcYUpnuUpQSd8bCclxMFkfWnxyUJlAJNCTyT5cVA72SJYdmGazkU8UHSZbNYv3i2nvA3y07cJbrbTv3svoXbyBUn/HgAld1sFD/4nxWdcWBiZ2pMwAtlBzRuMhZguyAVhQLCORzDttZK7doxwIty6pzAi68imyy8Tt94zNXq++HU4Da6oEpbkSvgu50JkOXgXedS/FLC2sHAyWKBWfuwL0/P9+qcMMw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GdeApeURvFvT/CvvTI4dLgaDQqmGRGBGTQ0aOhn9Tbg=;
 b=meZ+sF6csGsSOCxDIAP92+VqVXaD9V0VGgpo/U0DO7CQX7X/hvgNp7M95FDZeDpOcLJ6Vq8kzuXW67PQGURHEEtXzzZ9NT2SPufz7PgHg3es+8wtHI8tQj6Bakb6C5u7wsfXamGzP539kpMuWfDTRQNMDws0Anv80/jb+cwW8s2o6ekUubwT7TQzmzPUpj+JwDp9R5RtUzO+1mM7Lz0oM2GIJI7gVcxMto44Eib7k+emxFq8Umv9NhsUmqsK+3GDTHI0ppbHhU2pHWm5PDIuSuRMYf7YbMlo7TmR9OIhuElThutgkn1Dgx5QUamgy6jVt76ANRwGS9SeJh4MZyw1Bw==
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=GdeApeURvFvT/CvvTI4dLgaDQqmGRGBGTQ0aOhn9Tbg=;
 b=Td1yX5MsIqh+oFCDjja6T4X96ulTskfo97WD3GbUMO6ZWjJO0rPGgdLUnD1PvI2KiikDoPb+B3NxQWEiNDBH9Onz8EQDJjJi3AoySk29rusou0RQIxZG7qyHxsGatGlhK1XpWo+gXDJiyaaVxiifJJgKl0AVs/5P0nx6xGbFRso=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jens Wiklander <jens.wiklander@linaro.org>
CC: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Volodymyr Babchuk <volodymyr_babchuk@epam.com>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
Subject: Re: [PATCH v2 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory
 access descriptors
Thread-Topic: [PATCH v2 04/12] xen/arm: ffa: Add FF-A 1.2 endpoint memory
 access descriptors
Thread-Index: AQHcm3onha9BQEHE3UKvQ02zO96nTrV/I0IAgAAaJwA=
Date: Thu, 12 Feb 2026 16:11:13 +0000
Message-ID: <F4DB0616-EEAD-4CC8-982B-7E139E4AE2CB@arm.com>
References: <cover.1770826406.git.bertrand.marquis@arm.com>
 <8ddb97095d8f7f4140e660d2ff13ec2ccc82cc62.1770826406.git.bertrand.marquis@arm.com>
 <CAHUa44FMMVN2qR9f0AdbUguoWWJEyEY93YnCcGynHdpHLwqT1Q@mail.gmail.com>
In-Reply-To:
 <CAHUa44FMMVN2qR9f0AdbUguoWWJEyEY93YnCcGynHdpHLwqT1Q@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|AS2PR08MB8878:EE_|DB5PEPF00014B9A:EE_|AS8PR08MB5879:EE_
X-MS-Office365-Filtering-Correlation-Id: bb012ca8-ed5a-40be-9c95-08de6a517d78
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?dGl4NmxFcC9wMU9Ba2VFR0VSQ2lDOHdtL01WKyt5YzA4aDhOd0JXZTFhUWR1?=
 =?utf-8?B?aEdjQWlvRi9YWVpyWnYyd1FLdHpxZzlXWTU1RStseWlqNG5KREEyeVNDMzRy?=
 =?utf-8?B?b0FKTUIyNXFncU9Gd0tPU1BrQUkraGVWRGJObnFUWjkwTDNPbnorMWpZeS9Q?=
 =?utf-8?B?R0xnK2ROT0duZGhzYXJjT0d5SXVmY096UGJUWUtGTEx2dkpuanM4S1Fpb3lL?=
 =?utf-8?B?bEduZ3JjTzlSYkVwMU1sL1NNbWdRSTljaW9QNDNua1lSQ1YxcXFiZW1QcTZS?=
 =?utf-8?B?UDdYSERrWWRoYys0Zlg4L043akJmOVNTZ0M3elF4Ky9rdVZ6c0t3UnBTOFJF?=
 =?utf-8?B?dzRvbmFBQURDai82bzIraktTckNnOXNydWpOTElwRi9XeTNBTDQyelRSWWN1?=
 =?utf-8?B?T3lpV0RaK2tXd3o5N005QU9kZWt6Z1RwMlNIQ0JVbHppQzVtczVzQUxJUjlY?=
 =?utf-8?B?R3ducHllU2NyalE3YmhuV3RmMDJKL1dlOFoxTVRPSWcyVXQwdm92NG5CQ2RZ?=
 =?utf-8?B?eUtXT1dyWG9lTkc5Mm94Z0hhbS84M2NZQ1ZBb242RlpaVFhSTXB2c1JYVDZB?=
 =?utf-8?B?R1FxQ2ZDbWxaNHB5ZjlOSGsraTd1VDNDd0RhemtCL1R5OXFISUNQSGpvZTRH?=
 =?utf-8?B?T3JYUDBYT2ZzU2ZDM3V2aUoveUhIMDQ0aGpEQmc1K2gwb3p4NEE1RHU1UzNP?=
 =?utf-8?B?RFBPQis4MUlVTWJtTVNmNm9ObnZEdEVSNVdJNHBNNW5UeFR1M0NoVmRoMGpV?=
 =?utf-8?B?cDJGYkFRTU0ySGpaRFd3dUwxaVpBZGVzUmp4RGhCSkowMzREdU93Rk0zeldw?=
 =?utf-8?B?aHFyRCt3VS93eXFQZjBIbzJUU2NXQUlrQ3h3RE9xWWhMa0JwY1hIR3E1RjZk?=
 =?utf-8?B?ZHdBakJNVkl5QXhFU2ZHakY0RWNTemsvZEw1TW1UNXQzSTB5VmxtMWMrM2Z1?=
 =?utf-8?B?VldNS2czRnBMMXZ4aVlubTBGanROUkZyS2U4TC95SUtrdjlpMmxrVzRiNzdw?=
 =?utf-8?B?YmNRKytHdHFOekZHdUg2d3ZaL3RlL2krVlZzSW5uZXVDeklSS3ZHbEVjMzlD?=
 =?utf-8?B?cXdlMEI1cVJnOUZ4MU1zZ3lKSmtxbWZTS3MvT0VzS3UzZWdFS0hDN01uRitD?=
 =?utf-8?B?WXd0VDY2bCtjUGtCRVFtb2NjcnVXNFNPbkpkSWpweTJxdDkxbHQ0aldCbm5F?=
 =?utf-8?B?Y1g5YzVXelU3a2tIME5OY1BOa0xDZkxMdGJFL1pwdmxTTDJYZkFZeHBhRDE2?=
 =?utf-8?B?SWhpdG0zcHV5MmN0ci9uT0toS0dzb1pxSmJCVkZsZHpNT0pORG5tSzU4S1N0?=
 =?utf-8?B?LzVYMnAwK0QrYnAvb2VBclhCVEk2ZUlNQ3Z5cExESGUxV2lYbmN0TGc1bjJM?=
 =?utf-8?B?dDE5d3dwVUlYUHJyNGo1aUJRRXAyRTFCcDFQMSt3aTJHaFpnSnQrOHhmYzUr?=
 =?utf-8?B?K3VyUTJueXhsdWFiVC9yQjlxcklOK2FkSkMwMTlDZjdFWjJRR0FNMEdETDVL?=
 =?utf-8?B?WEhNRUV4T05Pcmk0ay95QXk5aElsdGlBWktsdnFnUkgzelRRWEZkbTViR21i?=
 =?utf-8?B?VE5pSTl2NHY1RVRSOHVuRkd4VXVtQWpORzdFbEY1SXBFTkY2TVN0SFNhUG1k?=
 =?utf-8?B?eVFHZHRTODhjZVF6VVdZcVdaRmQ2RFU1NERBTFg2VS81b1BMQ1VjTVJDaEYy?=
 =?utf-8?B?WXN2eUJMZnFJVGF0RzZaQ08xWUhjbDBHMWxheWFmdnFnNWJxQThzOUQvQ1RT?=
 =?utf-8?B?dHUxMHkzWm1hdWZiRC9yTU1VM2RRVThEai9pRWU0TW5ZRko5UlI3T0lsU2h6?=
 =?utf-8?B?TW4rcUpEYmNaWitmTWxJTjQxRXVaZXlCTHdGb1U2T1JxMFRYZUlLWE5VejI3?=
 =?utf-8?B?ZE4wSWk4TkdRN0dZRFQ5bEF1NmJjSTAxOTZvYVJHREVkWmVCZkFYOXBDc1Jt?=
 =?utf-8?B?ZlRma05SaVk1a2lTYlZEQzBSL0JlbFlLcnRtS3pCOXhMV2hCNWMwcEkvLzRa?=
 =?utf-8?B?Q2VKTFIvR0lFRTZzWDI0RFdQT09DelJvam5wOEZwcmtOS1FCYjhFZ1NBRnVo?=
 =?utf-8?B?RGhBbWVXYW42NUtVd1d2REJpaWZEbUZEb3hKanYrRVN6ek1DRXQ2N0VtY3pT?=
 =?utf-8?B?cGFZc1F1NFZ5enhLZHhnVWFsb3BOQ2s2N0tVZHZHZ2NaWFY5NERCdkYrMHZs?=
 =?utf-8?Q?Fv1GkSWlJKg/0LGRuTsnsYQ=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <28234C1F9CC1CE42B1B85B7F43837E68@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8878
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB5PEPF00014B9A.eurprd02.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a82cd6ee-2194-4cbd-e7dd-08de6a515813
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|35042699022|36860700013|14060799003|376014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d200WEM0d3FKN0ZmcGY1cm43bDBrY1JUdUh2ZkdabXdjT0ZleFVmMXRBcnIy?=
 =?utf-8?B?TWhPZWo2anNkbnFCR2RqUFR1azV3MERteHp6VldrWGs1MFIvVE0zTm9jRXND?=
 =?utf-8?B?OWdlMG9reHZsWEVEdU44STFVR21POVVpR0JYOThqa2FRc3JRMWp4cWFLcDYv?=
 =?utf-8?B?M0ZIS0VIQTZyd1ZTbDlNZisrY3dleWh2VzZRSXVyTWxmQzMrcUp4ZnFMNWFS?=
 =?utf-8?B?UWg5bW5WaE5pSDhyYjVIam9XZ3MyWGN1dGk0cUt0UHdzejYrWEpkcWUzVW5w?=
 =?utf-8?B?S1R0VFM3TTF0NDBaZm5lL012QUFhd2J4cENlaUo4UVJoR2s5QTlBTFdOd0tT?=
 =?utf-8?B?aVZrU3kzaXBud01wNDczRGtXUzFmN0l4bWlJdFdDSGpjS0hoQm90RVNKMnFB?=
 =?utf-8?B?WXJBZDF0US9ma3NTZXNvQTZNZDhkUm94T2UxN3pmTms0emJmNGNGYXY4a0lX?=
 =?utf-8?B?dXc1dG02SzlZKzZFSCs4cS91WjdnL2xsR0hrTGhKcmZkVGNDN04wNS8rcVRw?=
 =?utf-8?B?QW80SEh3a2h4WVZmSHJWOWwyMmxYSEhVdE92L08vZUJOakxmUVdSUk5JcTlU?=
 =?utf-8?B?TVBFQTY4Qk93eWhIY1BseWtDbHlrT3JqKzgvMW8vQzBUYmx4aDlKeGJ0R0JK?=
 =?utf-8?B?OFRkMHo4c2VySDdsaFBTT2dGTTNsTnFnTnNXNzBlVm91allKUnQvbTh2Qm9u?=
 =?utf-8?B?TGlITkxNOUZsR2Q3R2ZpYXY0S0p0dkZnYmk5OFZVTUE5M2F6MXlVOHpDV0F6?=
 =?utf-8?B?Y3pITTRzMGpoblRHa05sZ3M5QnVzTVRXU3V0MTkwdU8vdEZpbFlzVWRjalFK?=
 =?utf-8?B?dktXcVgzN3I2Rlk1YUlSY3h6MGdIbk9CZkhqT1czRWxyWG0vZEoyUUp6WFlX?=
 =?utf-8?B?ZkJ1ZU10V0N6N2FGNHZRNGpEeXVyNUc4dmlHSjdHZjVtUEJrSXNRcWZTWFgx?=
 =?utf-8?B?b3JXK3I0QTl2M3RlcUlyYnZRbUxxSkp6UUJhdnVwY3ZrZTZBNGwwVURvWHE4?=
 =?utf-8?B?RWdpcmtWaTRuQ2hsK0FreHRoeDdLUUtnZVA2NG4xcDUwUXBDTWFlMVBVckZ2?=
 =?utf-8?B?MEFJUTEvZXNCVlZpSUdPc1ZBVUNxTDBkQ3Z4eklVeS9EOXM2cldObndGclpO?=
 =?utf-8?B?OTNCek05VG0xUGdOTDE1aElhdkhNUk1qSmNMV2Z5S1RGTnRmb1VZZzRzNUFZ?=
 =?utf-8?B?N2NSb2p5OGMxcExuK20vZEEvbGMxR2wySS96VFVxdjBpdWdqYXJWTHpFQ2F0?=
 =?utf-8?B?RUZYdHRudEQ1RGpuWVZJMWx2WFZBQkJpRU9wNE12V01ab3hnUHpmTjdRYlhO?=
 =?utf-8?B?UFdZMW4xa3dkVWx6R2dxeHYxdlFpZ0R3RWFnZTZTSGpEVVIyRVptRmZKVVNG?=
 =?utf-8?B?UTZod1NOamxjUTJvOSsweCt1V0lKZTlKckFKVnJUTHI0cW0yYm5hQ283OGlz?=
 =?utf-8?B?UStISytQOFBwZXRuSzNMOU5xUnBBNDRuSEJYZDAyTlVDY1ZlbEhNOXdSRVlW?=
 =?utf-8?B?OWFuOHVMSDNYZWtrS3d3d3NXdmlySVQ5T2dudmxIQjJITTB3OTh2bkxuWDM0?=
 =?utf-8?B?eDEyRHovaVJHVitQdUxtUmhqM2VFbU1teHI2SitUTWZ6L0E5TFhRTjR6Mlh2?=
 =?utf-8?B?dXBWdG1oZFZsYmVJUjE1czhIQXVQdmFhNlU1SzZuYVU0TG1hdjRlWWpZM2ZB?=
 =?utf-8?B?aUUzV0sxRnByOVJiY2dyN3NSWmxyL3RmZDFMREg3KzN1WG5lb01KTUROVVNl?=
 =?utf-8?B?bTc1cFdBRUIvcWNTb1l0UGZGcXAvdlY4SjlwTTV5ODlnWlBackwwZTUxK1l0?=
 =?utf-8?B?VWFKZG1qeDBySmg0V0JpUUVGWWo3aUxvVFk5ZHBVbkRRWnk3N0tvWkRVL2ov?=
 =?utf-8?B?b0NBdUxqNDRxZFIzdkdVM3NOTU54U1JkaXpZbDd4MTArdGozb2k5UDh6ay9D?=
 =?utf-8?B?RGJ5UzlmK0xtWkV6Zk53K2Fyb0toTEJPQTB2WXZob0c2WnVraStPcGtFS3lG?=
 =?utf-8?B?QW5SNU8vUkE4MDRwYXVLU0VxV1owa3BCOHlTd3V6ZEFMUEZUZVNSTDFoUDRn?=
 =?utf-8?B?VlJTNzhBTS8veEx3TWdTREZmM293ZjhCeVhuRm1TL1FTN3Z6ZFJFOXNsVTNj?=
 =?utf-8?B?ejVIem5Yd2xKMUFtcFZtTXJvaXljNUQ2R0VoZEhZWUVVRkdqcU5lelNDVXh2?=
 =?utf-8?B?YlNlWXhpZTQvWFdudTdETENiMjduSTZpdXpUU01RQXh3dHgzT0NMbTZhTE9n?=
 =?utf-8?B?Q3pBYnBkSGpsbDY4OTRUTEFwcVJnPT0=?=
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)(14060799003)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	TdNfNFqEiUwjq6BHiP9uzvVSm0EW4zYX6LIR0kkZh4f7v+UjIZqhe1/U8fUoRhf1Zvd2hrnQUakSfiG0rIzzafa7Fmg/GtYePSxv6geVFIkRV8j63WAKuHD02U7FaHLOkUjc1BDzanviJdYHK4Uur+MsOT+2KrZcbpRT0r992TcTihzXqucK987HWp1cTSDFtFEDmzJhgCO/XU17F1kNNye7tGQd6c/FpRknQUOeCXN5ezOLHvb8ZHEKW/4FvlO3rdOx2rLif+W16K1SLnF11D/vInteSZwWa0amVHaWrjpFSxVM7cSdEENatdy43+3VUadqrNerxPhuyMNsWkQ7a3WQ2g+4eWAIJZDvEQ4zgoAKTPI1RKdT+B5PZ3GL2PNpqJE+AVaJUGCcQitafTWTQhkU1FTZkNwl+v0Diqt6ixwHYjh+YEseXWV44XaxmPkC
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 16:12:16.2137
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bb012ca8-ed5a-40be-9c95-08de6a517d78
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:
	DB5PEPF00014B9A.eurprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB5879

SGkgSmVucywNCg0KPiBPbiAxMiBGZWIgMjAyNiwgYXQgMTU6MzcsIEplbnMgV2lrbGFuZGVyIDxq
ZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPiB3cm90ZToNCj4gDQo+IEhpIEJlcnRyYW5kLA0KPiAN
Cj4gT24gV2VkLCBGZWIgMTEsIDIwMjYgYXQgNjoxNuKAr1BNIEJlcnRyYW5kIE1hcnF1aXMNCj4g
PGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4gd3JvdGU6DQo+PiANCj4+IEZGLUEgMS4yIGV4dGVu
ZHMgdGhlIGVuZHBvaW50IG1lbW9yeSBhY2Nlc3MgZGVzY3JpcHRvciAoRU1BRCkgZnJvbQ0KPj4g
MTYgdG8gMzIgYnl0ZXMsIGFkZGluZyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIChJTVBERUYpIGZp
ZWxkcyBhbmQNCj4+IHJlc2VydmVkIHNwYWNlLiBUaGUgTUVNX1NIQVJFIHBhdGggY3VycmVudGx5
IGFzc3VtZXMgdGhlIDEuMSBFTUFEDQo+PiBzaXplIGFuZCByZWplY3RzIHRoZSAxLjIgbGF5b3V0
Lg0KPj4gDQo+PiBBZGQgRkYtQSAxLjIgRU1BRCBzdXBwb3J0IHRvIE1FTV9TSEFSRToNCj4+IC0g
ZGVmaW5lIGZmYV9tZW1fYWNjZXNzXzFfMiBhbmQgc3RvcmUgSU1QREVGIHBheWxvYWQgaW4gZmZh
X3NobV9tZW0NCj4+IC0gZW1pdCAxLjIgRU1BRHMgdG8gdGhlIFNQTUMgZm9yIEZGLUEgMS4yIGd1
ZXN0cywgZm9yd2FyZGluZyBJTVBERUYNCj4+IC0gcmVmYWN0b3IgaGVhZGVyIHBhcnNpbmcgaW50
byByZWFkX21lbV90cmFuc2FjdGlvbigpIGZvciAxLjAvMS4xKw0KPj4gLSBkZXRlY3QgRU1BRCBm
b3JtYXQgYnkgbWVtX2FjY2Vzc19zaXplIHRvIGFsbG93IDEuMSBvbiAxLjIgZ3Vlc3RzDQo+PiAN
Cj4+IEV4cG9ydCBmZmFfZndfdmVyc2lvbiB0byBidWlsZCBtZW1vcnkgZGVzY3JpcHRvcnMgYWNj
b3JkaW5nIHRvIHRoZQ0KPj4gZmlyd2FyZSB2ZXJzaW9uIHRvIHJlbGF5IHNoYXJlIG1lbW9yeSBy
ZXF1ZXN0cyBhbmQgcmVtb3ZlIHVudXNlZCBvZmZzZXQNCj4gDQo+IGZpcm13YXJlDQoNClJpZ2h0
LA0KDQo+IA0KPj4gbWFjcm9zLg0KPj4gDQo+PiBGdW5jdGlvbmFsIGltcGFjdDogTUVNX1NIQVJF
IHN1cHBvcnRzIEZGLUEgMS4yIEVNQURzLg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBCZXJ0cmFu
ZCBNYXJxdWlzIDxiZXJ0cmFuZC5tYXJxdWlzQGFybS5jb20+DQo+PiAtLS0NCj4+IENoYW5nZXMg
c2luY2UgdjE6DQo+PiAtIGV4cG9ydCBmZmFfZndfdmVyc2lvbiBhbmQgdXNlIGl0IHRvIGNvbnN0
cnVjdCBkZXNjcmlwdG9ycyBhY2NvcmRpbmcgdG8NCj4+ICBmaXJtd2FyZSB2ZXJzaW9uDQo+PiAt
IHJlbW92ZSB1bnVzZWQgb2Zmc2V0IG1hY3Jvcw0KPj4gLS0tDQo+PiB4ZW4vYXJjaC9hcm0vdGVl
L2ZmYS5jICAgICAgICAgfCAgIDIgKy0NCj4+IHhlbi9hcmNoL2FybS90ZWUvZmZhX3ByaXZhdGUu
aCB8ICAgMSArDQo+PiB4ZW4vYXJjaC9hcm0vdGVlL2ZmYV9zaG0uYyAgICAgfCAxMjEgKysrKysr
KysrKysrKysrKysrKysrKystLS0tLS0tLS0tDQo+PiAzIGZpbGVzIGNoYW5nZWQsIDg3IGluc2Vy
dGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQ0KPiANCj4gTG9va3MgZ29vZDoNCj4gUmV2aWV3ZWQt
Ynk6IEplbnMgV2lrbGFuZGVyIDxqZW5zLndpa2xhbmRlckBsaW5hcm8ub3JnPg0KDQpUaGFua3Mu
DQoNCk1heWJlIHRoYXQgb25lIGNhbiBiZSBmaXhlZCBvbiBjb21taXQuDQoNCkNoZWVycw0KQmVy
dHJhbmQNCg0K


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:16:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:16:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229435.1535382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZMv-0002rb-DI; Thu, 12 Feb 2026 16:16:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229435.1535382; Thu, 12 Feb 2026 16:16:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZMv-0002rU-A3; Thu, 12 Feb 2026 16:16:41 +0000
Received: by outflank-mailman (input) for mailman id 1229435;
 Thu, 12 Feb 2026 16:16: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZMt-0002rO-VR
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:16:40 +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 358fe4b7-082e-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:16:38 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48069a48629so191345e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:16:38 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d99497asm194211995e9.6.2026.02.12.08.16.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 08:16:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 358fe4b7-082e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770912998; x=1771517798; 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=uN40rx4rGlPLwnhhxYNLkE2u+9FnasYUc+/ZaURu7vo=;
        b=LrsfIRQT9ZoAtLFFVaQWShoOTjLRbmGt6tbfJxOgK3sNw5DjnyCv2V+vzpI57LgYSY
         CLNEQQROStnDJe9f5PtPepfPWnKuc5TiZVAR4zBz9NCh8xZqLKdlhCqBkSuWiOdaUAUG
         mOBYcaRsBCF//jX8ajTiTZwzE8NQTe3sDTaKlguz/pgwURwTFBasQCVWKuZjQBPfv4di
         dJ3bICnt+0uc/VwpR9ARX1lqf0CrNj0mRERrUZMs49lEoJmCFdvyJzwV/IP4w4GTRvlC
         hNYDU8K6pCezxJQYqLW/OrqobkcUaw1+TK96GBMXjSudKThD9YzfcNzaL4jeQX+zvDX5
         lHEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770912998; x=1771517798;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=uN40rx4rGlPLwnhhxYNLkE2u+9FnasYUc+/ZaURu7vo=;
        b=stFNNTW15J6j8sFwP803fgNUxWRNS30SjWZormw6H/govTygf8Lq5G5LZRe3rsj5U2
         Pu/qGhLe0V47FfMbbmFx2LZ9jtIYtuf1jIcLUO2HfObBBwMTu9W1Aachu0YtYasIaqLG
         7NQ0xf3RfN/eSY0oQuB1LPC5pp1SdZYroVRronayGQVjuxrgJ3NMH/QVxG0N7m7LHnMe
         wOgq/vYrDG/TdePQ7CukZsd2NgWd0F/I8/YirmrNlvBJX06kXl68ok9YBbJORqDsZ960
         fcyZa2JNSVxkmzxc5K2qJJLMbSA1zJBoCsfo01wUh1gzOq9w9/kfiHH/tutKp1Geg4Mc
         imtg==
X-Forwarded-Encrypted: i=1; AJvYcCXcco45WF54+HJAvtQtfkToM8GhtdJDFY0YthhbM9+4CsAmoXpXj5pbQ1jm8F5UsU9pHZ1ZzE0iz6U=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxSin23JLVFplH2ECMklSHULpwclkIkfwLejjS7kMoUelJTsmNv
	fg2nCgnuG9XLee86ctCB9OC3YnbMYjpJg9AUDrwEGsGs5Ns2lhvRzvKz
X-Gm-Gg: AZuq6aKroqGdBINrbMSf58qL29lhjTrCtNFHihSLsrWIZNUxeohpiftK5GfAFpEkmq7
	tZBt5ugO5r2B/KwgKXO63r4hQRbFzo6HbvNwgO0xn78K8k+z2EjUQu7bPf4d/tIdFz/opi6+2vl
	/w21FGp+nNJ30hIwc6fzLdLrOXYt3F4Zq58/wfliyEpu4NTqtnXkLp6bwyeWKenG3Y4r2liSjjI
	zBcCE9rikE6vla6V61lW+FXNMLUwIF1yTBP2EZi2mLyUDxfmE9lpYp3JuSEHUPFuAGE9trlgsI+
	s5cZfETdrY2Mh3mCaThURFQ21ZjQaNg3F2X8BuGCpaUPviAoumnw4QxFxDrjt62cxit4yeExwIQ
	5yH1F7F8BsVq0OuzggAIINjFjNmxf1cq2bzh0nxe8QeRdDKbENEzB8Al4zLc/UmLSSI8wXd+lKz
	YMfan2B21LweIrV2NVAk+XirApcXg3FVYhjpPZdq0O36+Dlt9wgRIOtt0z3fFQmSB/1kOqDIazL
	3vARN9wyJqGwA==
X-Received: by 2002:a05:600c:34c5:b0:477:63b5:7148 with SMTP id 5b1f17b1804b1-483656ab45fmr55784205e9.6.1770912997640;
        Thu, 12 Feb 2026 08:16:37 -0800 (PST)
Message-ID: <909969c1-1d75-4f45-a96b-54c1c28839df@gmail.com>
Date: Thu, 12 Feb 2026 17:16:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for
 VSATP and HGATP
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
 <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
 <099768df-ec44-454f-8a9e-4897d81309f9@gmail.com>
 <ba48bef0-551e-4ea7-8d9a-fb54b9b85da6@suse.com>
 <4f9953ae-8722-4971-a214-6c40f7f5859a@gmail.com>
 <45e8aa5a-842b-49d0-8744-71295cf0a0b6@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <45e8aa5a-842b-49d0-8744-71295cf0a0b6@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/12/26 4:42 PM, Jan Beulich wrote:
> On 12.02.2026 15:47, Oleksii Kurochko wrote:
>> On 2/12/26 1:56 PM, Jan Beulich wrote:
>>> On 12.02.2026 12:57, Oleksii Kurochko wrote:
>>>> On 2/12/26 11:16 AM, Jan Beulich wrote:
>>>>> On 10.02.2026 17:36, Oleksii Kurochko wrote:
>>>>>> --- a/xen/arch/riscv/p2m.c
>>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>>> @@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>>>>     
>>>>>>         return get_page(page, p2m->domain) ? page : NULL;
>>>>>>     }
>>>>>> +
>>>>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>>>>> +{
>>>>>> +    if ( is_idle_vcpu(p) )
>>>>>> +        return;
>>>>>> +
>>>>>> +    /*
>>>>>> +     * 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 what will be done in
>>>>>> +     * p2m_handle_vmenter().
>>>>>> +     */
>>>>>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>>>>>> +
>>>>>> +    /*
>>>>>> +     * Nothing to do with HGATP as it is constructed each time when
>>>>>> +     * p2m_handle_vmenter() is called.
>>>>>> +     */
>>>>>> +}
>>>>>> +
>>>>>> +void p2m_ctxt_switch_to(struct vcpu *n)
>>>>>> +{
>>>>>> +    if ( is_idle_vcpu(n) )
>>>>>> +        return;
>>>>>> +
>>>>>> +    n->domain->arch.p2m.is_ctxt_switch_finished = false;
>>>>> How can the context switch of a vCPU affect domain-wide state?
>>>> It is wrong to have is_ctxt_switch_finished per domain, it should be
>>>> vCPU field.
>>>>
>>>>>> +    /*
>>>>>> +     * Nothing to do with HGATP or VSATP, they will be set in
>>>>>> +     * p2_handle_vmenter()
>>>>>> +     */
>>>>> Why can this not be done here?
>>>> As VMID should be calculated on VM enter.
>>> And I didn't suggest to calculate a new one here.
>>>
>>>> We can update HGATP and VSATP here with VMID stored before in p2m_ctxt_switch_from(),
>>>> but then it is possible when vmid_handle_vmenter() will be called before VM entry
>>>> VMID could be changed and it will be needed again to update HGATP and VSATP what
>>>> will lead to flushing of VS TLB twice (one in p2m_ctxt_switch_to() and another one
>>>> in p2m_handle_vmenter()).
>>> Is this a concern resulting from particular logic you expect to appear
>>> in the window between context switch and entering the guest, or is this
>>> merely an abstract concern?
>> If we will have VS TLB flush unconditionally in VM entry then it is merely an
>> abstract concern.
> Why would we want to flush unconditionally?

To guarantee that a guest sees a clean switch with no possibilities of 
using a stale entry. For example, if VMID changed between context switch 
and VM entry we want to have flush, but considering your reply here ...

>
>> Otherwise, considering that speculation could happen between
>> context switch and VM entry what could lead to that some entries were added to
>> VS TLB flush with old VMID in the case if then in VM entry vCPU might receive new
>> VMID.
> I don't understand: Context switch leaves vsatp.MODE at zero. Nothing can end
> up in the VS TLB in that case, aiui

... we just have different implementation in mind for p2m_ctxt_switch_to().

I thought that your suggestion is to set both HGATP and VSATP in p2m_ctx_switch_to()
while calculate VMID in p2m_handle_vmenter() (with potential update of HGATP and VSATP
if needed) and with such approach VSATP won't be zero after p2m_ctx_switch_to() and
speculation could happen between context switch and VM entry.

So just to clarify your expectations are:
1. p2m_ctxt_switch_from(p):
       p.vsatp = VSATP
       VSATP = 0

2. p2m_ctxt_swith_to(n):
       HGATP = construct_hgatp(...)

3. p2m_handle_vmenter(n):
       update VMID if necessary
       
       recalculate HGATP if necessary
       
       (c) update VSATP with n.VSATP if we here from context switch
           or with hardware VSATP if it wasn't context switch.
        
       do necessary flushes

And at step (c) we can't base on that if VSATP is zero or not to understand that
it is from context switch as it could that guest at the moment of trap (lets say
some SBI call was requested by guest and Xen just handles it and return back
to guest) also had VSTAP = 0.
So it is needed to distinguish if context switch happened or not to properly deal
with VSATP (and it was one of the reson to have introduced in this patch
is_ctxt_switch_finished).

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:16:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:16:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229436.1535392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZN7-0003AU-TY; Thu, 12 Feb 2026 16:16:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229436.1535392; Thu, 12 Feb 2026 16:16:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZN7-0003AM-OS; Thu, 12 Feb 2026 16:16:53 +0000
Received: by outflank-mailman (input) for mailman id 1229436;
 Thu, 12 Feb 2026 16:16: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqZN6-0002rO-Cb
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:16:52 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3cc5f240-082e-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:16:51 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BL4PR03MB8051.namprd03.prod.outlook.com (2603:10b6:208:58d::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Thu, 12 Feb
 2026 16:16:48 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 16:16: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: 3cc5f240-082e-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PMdq7FXsLkb3z2t+xvfVTCwmxBrmidoVwZzry81W/3x8AN9Yb+2kHPQ6QHaYOP3RpYk2hR39bWKguW7Zc20aQn0KJF8mJS8hWvQQ8EM6773TRH8pgvWJXTTLB5sJ9NRwn1ipq1p0Wz1eQ2sUPZxQOHzAB8hoJVeVEYSqUDz8Pvu/tRH8ave85MCMoOf0gdoFsVNbRRsmD54AZsIDZKIGHM8P89/eCjS+THobYvHwzhQT58jRm5I47Zdfch0FuKfnQMpcGHt2MVttjv17BmVljmJRzgWhu+mymCGmHCu6Ipjz75eF02RYwo5y92B+e1kA6pyPUdqMe055EkmEWEPQEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=R0jguUPo+nKp4awdLbsHjz2jc9ep9thbAfAS2GeKoK0=;
 b=tJR9gq6LFGi+9qlLgpvwhjA1OoPJprf5tIV251RYxa8tZ9NShReGwNIfDRNIhKQGfVdpb4lcleaLSKSx6yrtHTlf/Bh07Sf2SEtOAB6aza1bgneBzjQS/NXp8Ykn8iVmjLO00dpgZPBXRlUijg2LFqqhgJr/RLEiYvtpaH0uSp/aBjzwiqNSMSzfE9ljCXa8Lkivf9/K8TjJYARJoSumDagRCGEOJxeT+PH1Ac6qRZ7XRz41DNwbzl9qv58ur8WOnkB0VSR6QCyOKYLXSGyZY8xNicj6X9YSKL3PXslILXe8HtxGMCbZJnB3Q/HUjmv5hoth28Y6ZL3OQOucOuSzZg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=R0jguUPo+nKp4awdLbsHjz2jc9ep9thbAfAS2GeKoK0=;
 b=G09El7T214hqoADq3+ggURzHd+15T8g9OrVapgQhFIaQWIiGNoNVjsM+tQKn5J9KuglOnvzSBsJbU112wROcD+kIQWOl/4Sfsx2XHj1UmP1LOr+M3wUXNXKlWl7+Lil/MPZ0sFKPM7RCeq35b7zmBYUVq5ZLKQva1nUDhCZx3CY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 12 Feb 2026 17:16:45 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aY387XuhCEZ0JNTN@Mac.lan>
References: <aYtznP_tT6xNPwf-@mail-itl>
 <aY3ttvtxGCPTNgsj@Mac.lan>
 <aY3yqOTn9EQfO4rF@mail-itl>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aY3yqOTn9EQfO4rF@mail-itl>
X-ClientProxiedBy: MR1P264CA0195.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::7) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BL4PR03MB8051:EE_
X-MS-Office365-Filtering-Correlation-Id: 7826a4e9-7ce3-4ce9-c1ac-08de6a521fbd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Wk9kZWloZVc1RnAxQS9mcERrbnk0WGU4ZmZsa0h0c29oenFBRnBuNktXRmJ3?=
 =?utf-8?B?cGJ4QTVENzRhUjBDLy9YVzl0KzJOeVFJRDcrOFdNVFd1d2VjUFJtNUZBZk4y?=
 =?utf-8?B?UHAzdnVJQ01hQnJvWVd2bTdtT050bExLVE9MTzMwNVhjSk5aNmpFZjVBNnIw?=
 =?utf-8?B?QytRTWxTT255V3BlOWpJQ3JpM0tqTStBM2ozNXlMbEJjbENIbnBVTnFGWXBa?=
 =?utf-8?B?dGJBZDRnTmIxbDdCWko5SmNDNTNPekYvaVZ4S3JBWDljcG9GVjRVdlo3Sldp?=
 =?utf-8?B?dWVSYk5NdjcvWkFJK0JkZi90NENybU04enQ1RUUreitsdktuc1VQaGhBT1Fw?=
 =?utf-8?B?TXFVS0VYZEh0dmhSbTBXNE0xMUQxaWhxVkZTOFE1eWpYS0NBbU1pQ0VQR0xH?=
 =?utf-8?B?NXAvSVJIdW80K2VxMVFzVlZZMktXV1dvTVRBLzlYWXZRcE1IL2QwMmlGZWp1?=
 =?utf-8?B?TW4rZ2lFMlhySUFuQVNuZUZpQ01NUzZ2N0J1L3RLVkt2Y0pjRnJnZkZrSWhi?=
 =?utf-8?B?TjlMMWNPa05hT083b2c3RkR3OVhlV3NGcFkrYjV6MjlGNnFiOHMzd1c5bXFY?=
 =?utf-8?B?ODVzTGNZSTZqSE5UejFjbUVSOWpjRjQ4bnZMQUhVQ2g1bXFCOXd1dWZ5Q0RY?=
 =?utf-8?B?dXRNUzh6Q1ZIeGozYW5Hd0pIdXQyVHNrNnJOZUplRGdrcm1DaGtpU3A4WVBH?=
 =?utf-8?B?dVFMUnl6NWVjNUR5Nkh4RmM3bG5HYnl4YXU0eXpmMzF5cHIvRWFHZFVjWXMx?=
 =?utf-8?B?TzI2eHNzeFhZV1lkRzhXL2ZOeGJvUCtBaTdEYUNlMUQ2aXIzeXdRN0JtVXpB?=
 =?utf-8?B?Y3RjaC9OOGU0UkJTQUplYVFOUWdDZzJVeGRsQ0I2N3hxdzJPZXZnRmpvRTN3?=
 =?utf-8?B?UEFEemdiWm5BZ3hOQjNjTk51dHhNSDFqc1JZeTJsQUpNZjArUFFtT2xNeUlN?=
 =?utf-8?B?a3VJS1lWcExJbTN5OG5XZEhMdFJMNm5tWWZPS1hYK3M4S2t5K0I4VjlsUFpF?=
 =?utf-8?B?MzBRUUViRjM3b0ROUlhOUEVqbVBGaDlYOEZ4NWM2YUpVK0xxQVlHajkvZWxu?=
 =?utf-8?B?a1hLVllQYnMwQVlrUkhndDBodXI3Yi9oUHE5ZC8zaFVrbkw5NUJpdWQyNS95?=
 =?utf-8?B?VWNUaU9uS29DY0h6MDE5K2E3QVZocElHRG1YYXRFRU0vOGpXVWJCZHJZQzVL?=
 =?utf-8?B?OXV2YTZnV2o1Wk1ma1ZRelM0YnVPWDBwcDZicHV4RUF3TWhyVlR1dXI3NldS?=
 =?utf-8?B?UjFxeFh0NEZsK2ZaaE85VVRER29uM2FVNmJLZGZZM0N3eXRlOWtFSlZmaGlW?=
 =?utf-8?B?bVExemxqeEVKOU05QjIzalFRbXNnMmVaNDJYeVlFU3N1TGUySFVET2J3MDM0?=
 =?utf-8?B?Rno2Wk03ckkvNlNkem9hNUwyWGpIS0M4SlJnQUFzQ3h3OWhQay80b3dqME4w?=
 =?utf-8?B?WEtBcGlWNUR2NjdxZVR5WVZoRTBlaEE2dkVkSUhPT2lyMFJmdGZCSmQ2eVZr?=
 =?utf-8?B?WEFtdGpyNVg4dFFLd3VMR3p6RUd3MENKekdCaDNUYWRRMGhzZUdTaU1ZRzhx?=
 =?utf-8?B?dkFmNE1kQTlXcjgvUjBvUzl0dmRMc2NjU0taNkJtT3RKdEpvcWZ3Sk5nNkl2?=
 =?utf-8?B?cVl5UnVreDJnQ21GS0JWRVBPWVJYcjhhK2ZTcGE0M3hmNFJ0TzNpcUdlSDlw?=
 =?utf-8?B?UXpFTE05T3FxYzlvTzJBMk4yM0VLaUE5Z0NIR0tQN3lGaVRaaG82SC96SUMx?=
 =?utf-8?B?dHYyWXNZRytwckw0UjhyYWVWL0RqVHJMbTdHTG13QnVGcU1LOS9wVlp0SUpD?=
 =?utf-8?B?Ulk5NmNGa3VNVW1YOG9mY2FGNDdBVkZOQyt4dElxLzRVd21MdTZhSWxnb0tM?=
 =?utf-8?B?d2pRcmZ3aE5hVXUvYzV3eUJFcWl6MzJUVU1uNlgzVkZkdStRVXkza24rcW4y?=
 =?utf-8?B?cDd0SXkvOVhlazIvazl1Wm1sUkJ2T2FDSzVGTGVJZTduY1RRM1JZUHBmUG13?=
 =?utf-8?B?YU9KNFB0QVliZ050OTlzeGhsR21tclRQQzFkTTE0L2YweUdSRVNsSk1OODR6?=
 =?utf-8?B?M0NWaGhLcDZObmRIUVY5TWZCNlRjVWFzbnhGTFEyYTU2R1g3R083aGZza3NC?=
 =?utf-8?Q?ApEE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b1djRkZjWnRqZit6MWpzVFRrM2JIQlZCcmJITzVtZHVxWW9ud1laK1gyZ2FQ?=
 =?utf-8?B?UkRmZWxrTk5IdGdReHorNVdaY1lUblcweTUvQWpFaytXOGhpbjNwbU1nZHQ5?=
 =?utf-8?B?cjdIMVdPRWxWUHhjMzhuQVhxVG4wclhNK3UrNXVyRmxMQ0NJdFFNWWJPWTJh?=
 =?utf-8?B?VFZLN1NvVFlIUVNJZTI5Ukt5WXJDdHRzYmpsMEtuek43WExmVEljK0NObmVh?=
 =?utf-8?B?V212YjJqUkM3bFlCaTVILzMrRTk0TE9tWWhmSlFKYlZQWUhIeHlTeGNQaThW?=
 =?utf-8?B?bS9DRzVpdDBqWjMvUzRIMUtVQ3Jmb2t1Q0NmNGFQdzNBdFo4NHVvSGMybndT?=
 =?utf-8?B?UWhEMzQxd2JWa0ZONEFBZjRuclRVODcvd2pnTVJjUFlEL20xR0pEQ2VkYlVR?=
 =?utf-8?B?UWJ4V203M3N5VkNZdURPWE5QMEJiQzVOYUQ2c3hRQVovSXJyZkpXRGZlek5U?=
 =?utf-8?B?SkFNMUhWYmZuYUtBT2xlZzZubG9zcEljOVJjREpPUlF2bU45Q09GUTVsb1NS?=
 =?utf-8?B?N3RrYSt3QXc1WWltZi9SK0tiUGd4Z1ZxbDErKzlKYW1zUit3S29tdFJmU2I3?=
 =?utf-8?B?OStJL0VaRkZvdFBhYUJSSUxDK1dlMXZKSERueUJTY2YvSStLR2oxTlJuSXhS?=
 =?utf-8?B?OGg3emN2a3UyQzE3aDN3bFdyMVFrd3FUb2MzaUx2bzB6NnlyWVpzOWpPR2dM?=
 =?utf-8?B?YUdhVmlORE11NStLY1pVMUZrdXdZeEtaZitkNWE0S2NiT1orS3EzRHEvbmp4?=
 =?utf-8?B?YWZKbVNEREtNMWNBOEtTakRJQVdRcTdZSHpvMEd1UFJFeW16MnZsaUt3TEhp?=
 =?utf-8?B?V21nOFVSZlYrQXNNYTlGZEtSMXdaNWRwck14T3dLOVJrUTNKWEpDa1ZpdmN2?=
 =?utf-8?B?dkRGd2NUOW9jdytpOVRSbUtxekdYOHBRRkNsN25JREd2aUJsWDJYSi9lQ25s?=
 =?utf-8?B?d0lWcjIzelAvTnRyMnJVN1AzdjVzdFFpUWFWQ2pmaTdxdmt6MlZEQjZ2ckM1?=
 =?utf-8?B?UTBpdS9sZVRIUEsxUDlFdGJOUjJvVFNRS1pxZHZ5SGFuRkx5N25jKzVhYWlM?=
 =?utf-8?B?SEVTOFlQUVhBWnR3M2RyOWhnL3FUMXVWVWRjRUQ5OVNGT3haN0t6eHYyVEll?=
 =?utf-8?B?OHd5TmhVN1hPWUc2OWsrVzFKZnAxaFYrdnJ2QUFvaE52OW81dFJpSWlZMGtv?=
 =?utf-8?B?WSttbEFJc0FkeFl0d09xSHV6WXpodWVVUTJkd0lYVUh2WkpqZHdxa3gvRlpV?=
 =?utf-8?B?TEJKdVY4YlFRWjlETk5zS053WEEzYjJwSVFGZWQza2UvaGJ4UzBOVVA0bU5V?=
 =?utf-8?B?MEdNb3lSWHFGL01IRXptV1NUQWJwQkYrcUFHeEJYQXdyZGF3VkFxMzVLSnQx?=
 =?utf-8?B?N2dBUVhSQnFIQmxsUWc0aU5zMkp0WXNhNXRjak1jbllsOHhieHVCNktNTmFH?=
 =?utf-8?B?cXV3cGhnTGpodXhZWW80QXdvdmt3TDdaZ1dvT29EbzZGRkNjK3NvN3JFbzBi?=
 =?utf-8?B?TWYrdzFKVkd3N1NjdUYvN3g0dStka0VWZFVyWmdtUFlqbXVJZ2FmVUZocTRP?=
 =?utf-8?B?NHozcDFtTFlhNGNqZlFIRnNMaHJBWFNwU3ZzWXgrQWFNQnJrcDU2L0F4RVNR?=
 =?utf-8?B?SGNMUHdFV0E0TVpuTGFsK09xYTNaZ2tCUGkyS2FWNmxISW9oQjFFbytCVXV3?=
 =?utf-8?B?MjVhamdhSS9oejZSdTl2dFFtdFgrb05NbVR4ZSttaXEvcVo0NWgyMCtNbU15?=
 =?utf-8?B?Ui9GakZEaDNITUsxWVZlY3JSYlQyb1VHWFJqN2hRdFNldG5yajRSNExYVDJB?=
 =?utf-8?B?UTNmUjR0TlhISXRzMTdzd0Q3bXFNL3JGVHcwb2ZtdmJTQnp0UC9qZFdOZktj?=
 =?utf-8?B?eVUrcldQUk1ZVzBTTE91OEt5QVd1enRLK1RvUmpEUnkvd1FNQVRxNmFNeHh2?=
 =?utf-8?B?dk5CNjJjc3VKa2hBcHJueUZwZGtqbTlMbEhuZHNHN3p6MHhPb2JjQTdMVko5?=
 =?utf-8?B?R0t3bGxEWjlOemJpN2xHZDBaS1U0Mjc0UGxJSnlCWnllYTFwZW42U2d1M3BQ?=
 =?utf-8?B?aFRkUzdBNHVKazZ0OStMK213YmRSaXdqVFREOVUyVm0weWpnbEZSemZaZVU2?=
 =?utf-8?B?dFpEZVFROThFMnZ4Yy9HTmFVOFdRNHEvc1JaNnV4YUNYMUY2bTFsQXMzVmFZ?=
 =?utf-8?B?VGhMVFdhQk43M1Z5M2QvS2U1Zk9KcTE3alFNRm9JWXgybkQxZTd4OHFnM2NM?=
 =?utf-8?B?VEtVRWluRkhUWHdNVmFEbFFYMysyZUV1T0lwb29FdWlyWEhVakFsQko1TFg3?=
 =?utf-8?B?UE9ockFERG9Pb1hndUVFeHg1anN0SmlOZlFhZjUvQUZUeUYvYWhSdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7826a4e9-7ce3-4ce9-c1ac-08de6a521fbd
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 16:16:48.8815
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 7+67td1amFfgRNCrj6jHYheX6doCSXLhF7mXbRTkJ1bHbb/9jPC235eZyu+wAZ7jXOCyYbhOKs2364EBt8Z8Mw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR03MB8051

On Thu, Feb 12, 2026 at 04:32:56PM +0100, Marek Marczykowski-Górecki wrote:
> On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monné wrote:
> > On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-Górecki wrote:
> > > Hi,
> > > 
> > > Recently I started testing compatibility with Intel Lunar Lake. This is
> > > the first one that uses "xe" instead of "i915" Linux driver for iGPU.
> > > I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
> > > Linux 6.17.9 in this test.
> > 
> > Not sure it's going to help a lot, but does using a PVH dom0 make any
> > difference?
> 
> Yes, it makes a difference. I end up with black screen as soon as dom0
> starts... And due to unrelated bug (in xhci console code?), I don't have
> kernel messages :/

Hm, that's ... very helpful.  We should fix the xhci stuff so we know
what's going on there.  Is the xhci bug also PVH only, or PV is
equally affected?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:17:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:17:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229443.1535401 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZNS-0003dq-2z; Thu, 12 Feb 2026 16:17:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229443.1535401; Thu, 12 Feb 2026 16:17:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZNS-0003dj-0M; Thu, 12 Feb 2026 16:17:14 +0000
Received: by outflank-mailman (input) for mailman id 1229443;
 Thu, 12 Feb 2026 16:17: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=Wwql=AQ=bounce.vates.tech=bounce-md_30504962.698dfd05.v1-61d738ca8a0c4527adf5a44c6489444c@srs-se1.protection.inumbo.net>)
 id 1vqZNQ-0002rO-Lq
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:17:12 +0000
Received: from mail145-20.atl61.mandrillapp.com
 (mail145-20.atl61.mandrillapp.com [198.2.145.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 48b1ac74-082e-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:17:11 +0100 (CET)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-20.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4fBgRn51QqzCf9RlL
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 16:17:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 61d738ca8a0c4527adf5a44c6489444c; Thu, 12 Feb 2026 16:17:09 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 48b1ac74-082e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1770913029; x=1771183029;
	bh=RvnTYXu3DgG7UhKJGem5f0CYTeaphpS9JGOHjURlsz0=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=j40j2jQjy8tvKdEuQeYFU5qDZOTdAIw/8vz9GvP3OZv7iUPg8IioLAOgPLccuHT+V
	 wP0P8hppBX5oyR8b+l6caAaazZuAkhN428Uvts247/yheZu02nP7k4tan5wSw61nNp
	 ISlJSPiC7EUjw5YWtmJHPAdKq0CVytwmssJ8vU2RhczSUHLymOtlWSJ2OgTDMpUa9W
	 Uco9XVAkj4EhQIK56pP5RIzYO+IyHo8WZ4yHRJ69nOJpFzciFnYlHVpduqFr1odg2Q
	 qWD09ajLYBC8U7G+w1J8zuXgUpKXEdpaxuC2mmXUWWmpNC8f2VX/EGZqDnH1haQ0Rs
	 JXWKtn/hveE2g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1770913029; x=1771173529; i=anthony.perard@vates.tech;
	bh=RvnTYXu3DgG7UhKJGem5f0CYTeaphpS9JGOHjURlsz0=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=wzEbBRR596oEjsVnW0ldvf8Khol7NmEjd0x/aasDqOkN3ytcfmOHuH6EH0FIsqBJE
	 K64kMxLEYEtiQBpeUr151NirPHhNyEVz9t6pxdt3OOfHdIjkcpGiefVaz+JfazquBR
	 gDtvwq9/j0BbQz7UoAfd4bHOsL0Oh+qvDYSFBxPbyZ5wSNOscydPSVdzOz1IRb3yV7
	 gnBL/pzarF9MGM0bIzZIuxtLYexZp3ZgxDxPkE2DV8B69qDtLaQFMA/vE3wtGvgD+a
	 ua6aI6S3rwTI5XWx3Z+M/+VXokKK+yZbCZw3dWRFhC40255iraKGt5tMr6MEg2xlzl
	 jYpyuNnd94i/Q==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?[XEN=20PATCH]=20libxl:=20Use=20fdset=20to=20provide=20migration=20saved=20state=20file?=
X-Mailer: git-send-email 2.47.3
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1770913029109
To: xen-devel@lists.xenproject.org
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
Message-Id: <20260212161700.35472-1-anthony.perard@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.61d738ca8a0c4527adf5a44c6489444c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260212:md
Date: Thu, 12 Feb 2026 16:17:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Since QEMU 11.0, `-incoming fd:` doesn't accept file descriptors of
plain file, only sockets and pipe are accepted. This has been
deprecated since QEMU 9.1

Instead, switch to use `-incoming file:` with an fdset.

`incoming file:` schema seems to have been only introduced in QEMU
8.2. And `-incoming` isn't present in `query-command-line-options` QMP
command output, so we'll use a check based on QEMU version instead.

QEMU keep the FD open when added as a fdset, so close it in
postconfig. And now we have two optional set QMP command to run after
starting QEMU, for VNC and for migration.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 tools/libs/light/libxl_dm.c       | 98 ++++++++++++++++++++++++++++---
 tools/libs/light/libxl_internal.h |  1 +
 2 files changed, 90 insertions(+), 9 deletions(-)

diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c
index 511ec76a65..0fdeded92b 100644
--- a/tools/libs/light/libxl_dm.c
+++ b/tools/libs/light/libxl_dm.c
@@ -24,6 +24,8 @@
 #include <pwd.h>
 #include <grp.h>
 
+#define QEMU_FDSET_SAVED_STATE 1
+
 static const char *libxl_tapif_script(libxl__gc *gc)
 {
 #if defined(__linux__) || defined(__FreeBSD__)
@@ -1546,8 +1548,21 @@ static int libxl__build_device_model_args_new(libxl__gc *gc,
         } else {
             /* This file descriptor is meant to be used by QEMU */
             *dm_state_fd = open(state->saved_state, O_RDONLY);
-            flexarray_append(dm_args, "-incoming");
-            flexarray_append(dm_args, GCSPRINTF("fd:%d",*dm_state_fd));
+            if (qemu_opts->use_incoming_file) {
+                flexarray_append_pair(dm_args, "-add-fd",
+                     GCSPRINTF("fd=%d,set="STR(QEMU_FDSET_SAVED_STATE)
+                               ",opaque=\"saved_state\"",
+                               *dm_state_fd));
+                flexarray_append_pair(dm_args, "-incoming",
+                                      "file:/dev/fdset/1");
+            } else {
+                /*
+                 * Passing a file descriptor of a plain file to `fd:` has
+                 * been deprecated in QEMU 9.1.
+                 */
+                flexarray_append(dm_args, "-incoming");
+                flexarray_append(dm_args, GCSPRINTF("fd:%d", *dm_state_fd));
+            }
         }
     }
     for (i = 0; b_info->extra && b_info->extra[i] != NULL; i++)
@@ -2631,6 +2646,12 @@ static void device_model_launch(libxl__egc *egc,
     libxl__dm_spawn_state *dmss, int rc);
 static void device_model_postconfig_chardev(libxl__egc *egc,
     libxl__ev_qmp *qmp, const libxl__json_object *response, int rc);
+static void device_model_postconfig_do_remove_fdset(libxl__egc *egc,
+    libxl__ev_qmp *qmp, int rc);
+static void device_model_postconfig_removed_fdset(libxl__egc *egc,
+    libxl__ev_qmp *qmp, const libxl__json_object *response, int rc);
+static void device_model_postconfig_do_vnc(libxl__egc *egc,
+    libxl__ev_qmp *qmp, int rc);
 static void device_model_postconfig_vnc(libxl__egc *egc,
     libxl__ev_qmp *qmp, const libxl__json_object *response, int rc);
 static void device_model_postconfig_vnc_passwd(libxl__egc *egc,
@@ -2832,6 +2853,13 @@ static void device_model_probe_cmdline(libxl__egc *egc,
         }
     }
 
+    /*
+     * Other checks based on QEMU's version
+     */
+    if (libxl__qmp_ev_qemu_compare_version(qmp, 9, 1, 0) >= 0) {
+        dmss->qemu_opts.use_incoming_file = true;
+    }
+
     qmp->callback = device_model_probe_quit;
     rc = libxl__ev_qmp_send(egc, qmp, "quit", NULL);
     if (rc) goto out;
@@ -3152,7 +3180,6 @@ static void device_model_postconfig_chardev(libxl__egc *egc,
 {
     EGC_GC;
     libxl__dm_spawn_state *dmss = CONTAINER_OF(qmp, *dmss, qmp);
-    const libxl_vnc_info *vnc = libxl__dm_vnc(dmss->guest_config);
     const libxl__json_object *item = NULL;
     const libxl__json_object *o = NULL;
     int i = 0;
@@ -3210,12 +3237,7 @@ static void device_model_postconfig_chardev(libxl__egc *egc,
         if (rc) goto out;
     }
 
-    if (!vnc)
-        goto out;
-
-    qmp->callback = device_model_postconfig_vnc;
-    rc = libxl__ev_qmp_send(egc, qmp, "query-vnc", NULL);
-    if (rc) goto out;
+    device_model_postconfig_do_remove_fdset(egc, qmp, rc); /* must be last */
     return;
 
 protocol_error:
@@ -3227,6 +3249,64 @@ static void device_model_postconfig_chardev(libxl__egc *egc,
     device_model_postconfig_done(egc, dmss, rc); /* must be last */
 }
 
+static void device_model_postconfig_do_remove_fdset(libxl__egc *egc,
+    libxl__ev_qmp *qmp, int rc)
+{
+    EGC_GC;
+    libxl__dm_spawn_state *dmss = CONTAINER_OF(qmp, *dmss, qmp);
+
+    /*
+     * If we used -add-fd for the `saved_state`, ask QEMU to close it.
+     */
+    if (dmss->qemu_opts.use_incoming_file && dmss->build_state->saved_state) {
+        libxl__json_object *args = NULL;
+        qmp->callback = device_model_postconfig_removed_fdset;
+        libxl__qmp_param_add_integer(gc, &args, "fdset-id",
+                                     QEMU_FDSET_SAVED_STATE);
+        rc = libxl__ev_qmp_send(egc, qmp, "remove-fd", args);
+        if (rc) goto out;
+        return;
+    }
+
+    device_model_postconfig_do_vnc(egc, qmp, rc); /* must be last */
+    return;
+
+out:
+    device_model_postconfig_done(egc, dmss, rc); /* must be last */
+}
+
+static void device_model_postconfig_removed_fdset(libxl__egc *egc,
+    libxl__ev_qmp *qmp, const libxl__json_object *response, int rc)
+{
+    libxl__dm_spawn_state *dmss = CONTAINER_OF(qmp, *dmss, qmp);
+
+    if (rc) goto out;
+
+    device_model_postconfig_do_vnc(egc, qmp, rc); /* must be last */
+    return;
+
+out:
+    device_model_postconfig_done(egc, dmss, rc); /* must be last */
+}
+
+static void device_model_postconfig_do_vnc(libxl__egc *egc,
+    libxl__ev_qmp *qmp, int rc)
+{
+    EGC_GC;
+    libxl__dm_spawn_state *dmss = CONTAINER_OF(qmp, *dmss, qmp);
+    const libxl_vnc_info *vnc = libxl__dm_vnc(dmss->guest_config);
+
+    if (vnc) {
+        qmp->callback = device_model_postconfig_vnc;
+        rc = libxl__ev_qmp_send(egc, qmp, "query-vnc", NULL);
+        if (rc) goto out;
+        return;
+    }
+
+out:
+    device_model_postconfig_done(egc, dmss, rc); /* must be last */
+}
+
 static void device_model_postconfig_vnc(libxl__egc *egc,
     libxl__ev_qmp *qmp, const libxl__json_object *response, int rc)
 {
diff --git a/tools/libs/light/libxl_internal.h b/tools/libs/light/libxl_internal.h
index b65e0064b9..7d916ee64a 100644
--- a/tools/libs/light/libxl_internal.h
+++ b/tools/libs/light/libxl_internal.h
@@ -4094,6 +4094,7 @@ typedef struct libxl__qemu_available_opts libxl__qemu_available_opts;
 struct libxl__qemu_available_opts {
     bool have_runwith_chroot;
     bool have_runwith_user;
+    bool use_incoming_file;
 };
 
 typedef void libxl__dm_spawn_cb(libxl__egc *egc, libxl__dm_spawn_state*,
-- 
Anthony PERARD



--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:20:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:20:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229463.1535412 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZQf-0005ji-GI; Thu, 12 Feb 2026 16:20:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229463.1535412; Thu, 12 Feb 2026 16:20: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 1vqZQf-0005jb-DU; Thu, 12 Feb 2026 16:20:33 +0000
Received: by outflank-mailman (input) for mailman id 1229463;
 Thu, 12 Feb 2026 16:20: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqZQe-0005jV-Dk
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:20:32 +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 c0121be9-082e-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:20:31 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso232465e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:20:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5d77f9sm219650805e9.3.2026.02.12.08.20.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 08:20:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0121be9-082e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770913230; x=1771518030; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=C6rrhsPITDsUSVZEhZsJX5a0QCs3ERvgjcNOvq9cGWE=;
        b=JafXh7hy8fPRg6KgdiqyDd4fhZ0qpVBfZQvclSqgo8KYrf/XsZKjf9d97xXxNTIkgh
         1eDUTBIEGiJ750gR9lrbdSwXY+CYa8hxfsC0oerkWkRoCIrMQI4hmUy0vIUBxM6L18e4
         V6jYiY7VrX5g79IAzOkdORc2S9bDEGbvODpVC6CW/LD40YIRcXQEZdQ0IaNJiUboJxBu
         2y8oPRqIm0IaM6nki/i6hI/OF1FwDUnvmLSEvttD24XTCJ37PDQmeHUNF0fsel4LKpYU
         AuwcWGLytipb6G6vjCcdvi1sfmgG4quu5Ubv1JA8x4NMfCUwHAZDgMnIH3rkd4YYC9aZ
         Qhsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770913230; x=1771518030;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=C6rrhsPITDsUSVZEhZsJX5a0QCs3ERvgjcNOvq9cGWE=;
        b=e8kmmDAQxHZeIpfsUEsZj54EloEzXEuqV1/BZ7LqJ7P06vLdl0KbpTALogjdBKpbqc
         N2COIlWuoYHbX/Wu0BUE+0nb9JgZGVXyUoPNupvNTdmt4DxZgUChcGlyV3r7xbfi4xp/
         TgPR2fUSaCGRv0XiWilmFXuoGWcBcb6Q15vwUXFzoxhvVaBJnvXrkrhpOLVOcQvtY8Wf
         Bgnw0TgB23Oa9rMgFbC3vgaL+b9C5xO1Fle6nQxAuvMBQYsekflAj7IBbP5fSTwM2O/T
         VW9cVK7JO0hcffUGi2uMiCH29MuvjYlWZzWmYUGSup/46xZkBrKekvhzqNmJOitLaclR
         7eWw==
X-Forwarded-Encrypted: i=1; AJvYcCWzfJ1umqgzQYS9v/jkcKEpCvEmCnzJals1eMtaSphQDxfHCxzjBySIrJdaBQzYqkILSuSfSntqxts=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwivdgypD+cArO8jj49NEtOf2fhGVKzq9MjkjFsUC2jxW6pxIs7
	CdBwoRFi7Ba15xd6ooMyM+qqs/GOrs3s4LzCrQyvm4Adu8SoIdK6f4XLoFhzqs2QkQ==
X-Gm-Gg: AZuq6aL+4UxnOZ8b7HgxcezsfTaqJAN7i22BCiEa6Gf5yHYlO6Wzn2P6RiGbopkL/d4
	B2SV1HWK90agb6Vxko4LaUo99K8SsApmw5vdyhzqLNTd5njb1qf6fw3KvdE1Jdefo6a7jARP3ts
	6O+WIxVqY52+d68X7c1G1xucWEsG0Ihx2UU4wI7du7k6F2tVjbJ8jKjFBSCofAGt+QiHWzDoRE/
	EoRQyMsEshzceKk9c9QaprRMLu9o5+6omflzKsLZZrIj6Fn4QM+Y1INKNHqbkOIotZ4g5VBoEKf
	pzsMBxDUQACrLIwTZ17R1oOdfOZuEZzzddDsx4kK5a6kgyoj9qPNvuJldERYi4/tut2bS9rTthp
	NwBcEj0zmlwIk5J/MgJNU0R0DXlOKtccE7T7K9YMK21nOqvNhGMV03uSaVvb0i0v+QmkJSci6D0
	vfPoRD4xfeEH/3qokNperx1u1XttY2a5/Na+armlVKOVFuufm8UtQRih3y+nBn8DsWqBFr3aSMZ
	YdYGC7BVdeVjVGQd008ehLpaA==
X-Received: by 2002:a05:600c:870e:b0:47b:e2a9:2bd7 with SMTP id 5b1f17b1804b1-48367165ac8mr37523355e9.19.1770913230385;
        Thu, 12 Feb 2026 08:20:30 -0800 (PST)
Message-ID: <67e6cdb3-33d1-44aa-94ea-8e26def9f8e8@suse.com>
Date: Thu, 12 Feb 2026 17:20:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for
 VSATP and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
 <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
 <099768df-ec44-454f-8a9e-4897d81309f9@gmail.com>
 <ba48bef0-551e-4ea7-8d9a-fb54b9b85da6@suse.com>
 <4f9953ae-8722-4971-a214-6c40f7f5859a@gmail.com>
 <45e8aa5a-842b-49d0-8744-71295cf0a0b6@suse.com>
 <909969c1-1d75-4f45-a96b-54c1c28839df@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: <909969c1-1d75-4f45-a96b-54c1c28839df@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 17:16, Oleksii Kurochko wrote:
> 
> On 2/12/26 4:42 PM, Jan Beulich wrote:
>> On 12.02.2026 15:47, Oleksii Kurochko wrote:
>>> On 2/12/26 1:56 PM, Jan Beulich wrote:
>>>> On 12.02.2026 12:57, Oleksii Kurochko wrote:
>>>>> On 2/12/26 11:16 AM, Jan Beulich wrote:
>>>>>> On 10.02.2026 17:36, Oleksii Kurochko wrote:
>>>>>>> --- a/xen/arch/riscv/p2m.c
>>>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>>>> @@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>>>>>     
>>>>>>>         return get_page(page, p2m->domain) ? page : NULL;
>>>>>>>     }
>>>>>>> +
>>>>>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>>>>>> +{
>>>>>>> +    if ( is_idle_vcpu(p) )
>>>>>>> +        return;
>>>>>>> +
>>>>>>> +    /*
>>>>>>> +     * 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 what will be done in
>>>>>>> +     * p2m_handle_vmenter().
>>>>>>> +     */
>>>>>>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>>>>>>> +
>>>>>>> +    /*
>>>>>>> +     * Nothing to do with HGATP as it is constructed each time when
>>>>>>> +     * p2m_handle_vmenter() is called.
>>>>>>> +     */
>>>>>>> +}
>>>>>>> +
>>>>>>> +void p2m_ctxt_switch_to(struct vcpu *n)
>>>>>>> +{
>>>>>>> +    if ( is_idle_vcpu(n) )
>>>>>>> +        return;
>>>>>>> +
>>>>>>> +    n->domain->arch.p2m.is_ctxt_switch_finished = false;
>>>>>> How can the context switch of a vCPU affect domain-wide state?
>>>>> It is wrong to have is_ctxt_switch_finished per domain, it should be
>>>>> vCPU field.
>>>>>
>>>>>>> +    /*
>>>>>>> +     * Nothing to do with HGATP or VSATP, they will be set in
>>>>>>> +     * p2_handle_vmenter()
>>>>>>> +     */
>>>>>> Why can this not be done here?
>>>>> As VMID should be calculated on VM enter.
>>>> And I didn't suggest to calculate a new one here.
>>>>
>>>>> We can update HGATP and VSATP here with VMID stored before in p2m_ctxt_switch_from(),
>>>>> but then it is possible when vmid_handle_vmenter() will be called before VM entry
>>>>> VMID could be changed and it will be needed again to update HGATP and VSATP what
>>>>> will lead to flushing of VS TLB twice (one in p2m_ctxt_switch_to() and another one
>>>>> in p2m_handle_vmenter()).
>>>> Is this a concern resulting from particular logic you expect to appear
>>>> in the window between context switch and entering the guest, or is this
>>>> merely an abstract concern?
>>> If we will have VS TLB flush unconditionally in VM entry then it is merely an
>>> abstract concern.
>> Why would we want to flush unconditionally?
> 
> To guarantee that a guest sees a clean switch with no possibilities of 
> using a stale entry. For example, if VMID changed between context switch 
> and VM entry we want to have flush, but considering your reply here ...
> 
>>
>>> Otherwise, considering that speculation could happen between
>>> context switch and VM entry what could lead to that some entries were added to
>>> VS TLB flush with old VMID in the case if then in VM entry vCPU might receive new
>>> VMID.
>> I don't understand: Context switch leaves vsatp.MODE at zero. Nothing can end
>> up in the VS TLB in that case, aiui
> 
> ... we just have different implementation in mind for p2m_ctxt_switch_to().
> 
> I thought that your suggestion is to set both HGATP and VSATP in p2m_ctx_switch_to()
> while calculate VMID in p2m_handle_vmenter() (with potential update of HGATP and VSATP
> if needed) and with such approach VSATP won't be zero after p2m_ctx_switch_to() and
> speculation could happen between context switch and VM entry.
> 
> So just to clarify your expectations are:

So just to clarify from my side that I don't have any expectations; I
merely want to suggest to start with as simple a model as possible,
for its correctness to be easy to prove.

Jan

> 1. p2m_ctxt_switch_from(p):
>        p.vsatp = VSATP
>        VSATP = 0
> 
> 2. p2m_ctxt_swith_to(n):
>        HGATP = construct_hgatp(...)
> 
> 3. p2m_handle_vmenter(n):
>        update VMID if necessary
>        
>        recalculate HGATP if necessary
>        
>        (c) update VSATP with n.VSATP if we here from context switch
>            or with hardware VSATP if it wasn't context switch.
>         
>        do necessary flushes
> 
> And at step (c) we can't base on that if VSATP is zero or not to understand that
> it is from context switch as it could that guest at the moment of trap (lets say
> some SBI call was requested by guest and Xen just handles it and return back
> to guest) also had VSTAP = 0.
> So it is needed to distinguish if context switch happened or not to properly deal
> with VSATP (and it was one of the reson to have introduced in this patch
> is_ctxt_switch_finished).
> 
> ~ Oleksii
> 



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:21:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:21:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229473.1535422 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZRQ-0006GG-TA; Thu, 12 Feb 2026 16:21:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229473.1535422; Thu, 12 Feb 2026 16:21:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZRQ-0006G8-OE; Thu, 12 Feb 2026 16:21:20 +0000
Received: by outflank-mailman (input) for mailman id 1229473;
 Thu, 12 Feb 2026 16:21: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZRO-0006Fi-O2
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:21:18 +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 db408425-082e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 17:21:16 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-4376acce52eso35131f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:21:16 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e5c635sm13938426f8f.37.2026.02.12.08.21.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Feb 2026 08:21:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db408425-082e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770913276; x=1771518076; 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=S+RDwcZ52Pc0XIKzkhWeYooteWh5Au4849rOoBLYTrs=;
        b=RSugHp3Ra4Vd+t/5xMcevkKQbme2DFy3/CweYTAyoMJm15CpzT1QyTOS39fbR+scch
         R1YyVMpBsW5zdfRy78zvyxb8ve3EZCegPJZxijCSkIsJn4syJdOfyhY1NtG61VqeXxRT
         ttabVgr1Q/N3HRwbBL5ZrTTi2pkXDrkh6S9uS1ZRGvPDLPJtUbwauK+Su8JlsRhUi8vz
         AnzEFzgBaVolHiKN9UL+ZKNZVhIDaHdSk+pGJeLC3QRGMq8RmmaZ8+6oLmi2kLd/GrsW
         zzC2XGU/WMOGz9xLAPK63s+zJtubSMw9//VYRcd2HGx4ZU/bwlhZ8U3NypcHh32aoE8D
         u+Qg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770913276; x=1771518076;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S+RDwcZ52Pc0XIKzkhWeYooteWh5Au4849rOoBLYTrs=;
        b=ZSsPtdlQlrS34Ca0ogShYBPg62pywoFCxl2YzxFhKcrpkK2UF7/kFxuHqLIRi0sSLD
         MR3z1dtGrlg+4Qh69PYNuNtY4UV8DdsixuSxua3GW1cSqQYFHihgbSyFZ0IW1/S96YN0
         MQfmbpmzLzLZvlAYTtRTHGeGhRZCDTJgR2pqLZ5Qvs3zQ5mZ2wPlOiQrswvCiax73JQU
         JZlQfZ01lpzossvmAyG85zK1TmyfI7flNH5L1QgSi1p+VxEtvxLrh1n6yKfHspn/FozT
         bJ7jM8C/Ih1teh1NqhDnou5TNIrvnNhUBsIb4t6n4Lk255Zh0lNGndjbjmsswNRXoXoV
         9gQQ==
X-Gm-Message-State: AOJu0Yx262THOM0W1EGHYdXJN9D8eacvJk/GVXiG85OQBvaIA4/6D76V
	C73AOExEyAjTfsNCyA46W9LcnuZ4fiS9AoB1vRsxAyZxVAAW16Y37uywYmW0qVdk
X-Gm-Gg: AZuq6aIS52vL0GunvUByEUzEO6TFxVlKIkVSgQxjhzqEVe8s6HIO3J5etLtdURIdKcx
	Xfk0+JLJWR7w5kdy/mQb36nZaXIWPNDxvrK3ifx+tUV1yxZDKbqwBdIwsHVBnssAKmQc4Uksjya
	pbi7Wgdh3KrI+tFpoA2ws6MkWc43QRXo7MeiBeS/jFPF5eBRg5EhdjX4sNhgy8oBGMhcrgxby6T
	f3Rws7abhDte+uQ2wrAEk7siahwt/HXSk3D7oANwztAmPoRHL01wVN2hI2Gk7ylcWltjAOThwOQ
	JvutAWjXEHG+V3AWzXxcAVecffnNhvqZTiJk7fOrCPJbyg6A2N+l9BAqS58U4SYS1MpGkhGeHrn
	kpr3K6kIWKFbMlAE6BJS6yyOPtTgvS4DDlftfCIFT6EWVVwmfaV7PXcS9L6gaiHlousmu7GLIya
	L/XgsUfXMPB5Wh242Y1DGKvnDtbDGfe9OIdO/xMfdBtYpUOkCiogGw/vwK1laf8akKJg==
X-Received: by 2002:a05:6000:220d:b0:430:fd84:3175 with SMTP id ffacd0b85a97d-4378f165d49mr5348442f8f.38.1770913275672;
        Thu, 12 Feb 2026 08:21:15 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v1 0/6] RISCV: enable DOMAIN_BUILD_HELPERS
Date: Thu, 12 Feb 2026 17:21:01 +0100
Message-ID: <cover.1770821989.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce necessary things to enable DOMAIN_BUILD_HELPERS config for RISC-V.

Generally it is indepenent patch series from [1] and [2] but depends on which
patches will go first it could be some merge conflicts.

At the moment, patch series is rebased on top of [2]:
  staging -> [1] -> [2] -> current patch series.

[1] https://lore.kernel.org/xen-devel/cover.1770650552.git.oleksii.kurochko@gmail.com/T/#t
[2] https://lore.kernel.org/xen-devel/cover.1770739000.git.oleksii.kurochko@gmail.com/T/#t

Oleksii Kurochko (6):
  xen/riscv: implement get_page_from_gfn()
  xen/riscv: implement copy_to_guest_phys()
  xen/riscv: add zImage kernel loading support
  xen: move declaration of fw_unreserved_regions() to common header
  xen: move domain_use_host_layout() to common header
  xen/riscv: enable DOMAIN_BUILD_HELPERS

 xen/arch/arm/include/asm/domain.h         |  14 --
 xen/arch/arm/include/asm/setup.h          |   3 -
 xen/arch/riscv/Kconfig                    |   1 +
 xen/arch/riscv/Makefile                   |   2 +
 xen/arch/riscv/guestcopy.c                | 112 ++++++++++++++++
 xen/arch/riscv/include/asm/config.h       |  13 ++
 xen/arch/riscv/include/asm/guest_access.h |   7 +
 xen/arch/riscv/include/asm/p2m.h          |  11 +-
 xen/arch/riscv/kernel.c                   | 156 ++++++++++++++++++++++
 xen/arch/riscv/p2m.c                      |  34 +++++
 xen/include/public/arch-riscv.h           |   8 ++
 xen/include/xen/bootinfo.h                |   4 +
 xen/include/xen/domain.h                  |  16 +++
 13 files changed, 358 insertions(+), 23 deletions(-)
 create mode 100644 xen/arch/riscv/guestcopy.c
 create mode 100644 xen/arch/riscv/kernel.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:21:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:21:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229474.1535427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZRR-0006ID-4V; Thu, 12 Feb 2026 16:21:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229474.1535427; Thu, 12 Feb 2026 16:21: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 1vqZRQ-0006Gx-Vf; Thu, 12 Feb 2026 16:21:20 +0000
Received: by outflank-mailman (input) for mailman id 1229474;
 Thu, 12 Feb 2026 16:21: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZRP-0006Fi-Dy
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:21:19 +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 dbe61651-082e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 17:21:17 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-4359108fd24so27355f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:21:17 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e5c635sm13938426f8f.37.2026.02.12.08.21.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Feb 2026 08:21:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbe61651-082e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770913277; x=1771518077; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=756p0sgqElUf/O7m5v8k7wVt+/PfhKAVifuQ4bDjN4Q=;
        b=kyw34+E7slAVZfUbtJhcKV+vlYckGky3hgXGk2+r+fa15vnfFxxoUl6VdeUNGqrii7
         XVmVl/nWvrjEkObDUjimkpaawuEBtrMSyEVuln09OGMH8ENlBMsny/DRIr4UOejFmC8U
         +Mnn6GAppPExM4RAZXZbE3/6kiGvPGIQ9DaeJcuzslRarpvqFUY25MeCd1qPc6s9dmva
         L6nGXctZqNZxTLyxfqfU+/3GL8VTcaTIjbnyJgeIB8QNz+292PfW2rWeqwHceY/zj9Iq
         OYsMORPKiD4+vTBqjf+qWkEJE17D+tpj62AB2FE/M+1COnIIY9T4dKsOICDOefyHmu7J
         +bOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770913277; x=1771518077;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=756p0sgqElUf/O7m5v8k7wVt+/PfhKAVifuQ4bDjN4Q=;
        b=cJPcuKFBnEqtZnKLmr8R2v2G8d/4AG6De4twy7uL29w3Clg9Xefl/ZWMSULJ6IyVZc
         VXEDSQoiEZ4dSN5Ot6WVVwRCofwSNTnY92R4DVgLdmApSyEkCBXLAv4zhz7bghpXeFY3
         6J0bnvGrkkV63M2FO7HblZqMmvqU4YCJF5Mq8fWA7OUa7xjKbANn6Xdzm4MZ3UjWxwtW
         zF/rsVmJDGELOjW445w4aH6/R1yDrx4pU0HYC/m7NEMMc/oSM7fcURq+j8B4n13J/JB8
         TixyqUzqsgmTrs6a1Y6jJB5TH/P/kXvrJT8WFYp1cKRFQr0A/frZadPvehT/vd96uR0Q
         AwMQ==
X-Gm-Message-State: AOJu0YyWUsIZTcroBztzcIrbuXABGp8+gWMZwWt9ISd9W6U1C2uCvnj+
	oeb5V1kQtQAnsogVx5OmHkd07TcW4aa1YtnagkZe/wOZT+mFwh64P9E9P6nACDWW
X-Gm-Gg: AZuq6aKMkIlVn1fLdHrq9ZLmUXZC2u1lCktekrkchfrXd0ddE+s3YHE6KSIZDIBoq14
	g8KavzYmEuGGGk3uLpg9vg0wblmsLLkel3E/JcW0UUMSxXLy4N9jmZhhFeJw2f4CF93c8BHnUyV
	a4ZHV6nNtY7fIGB9pG3aYJfgXxPSJnF3Li5cHgJrl2CHVzaDMKzbpAyS7SF3L/RumAb2V0VzqdM
	tHwIZSWZFoOJl78HQJNFTZX0sRicyuAVxiUzMfDwx5aMz7zMW4Z5rkqGJccocjgiAudJQFzF42p
	uXFdmb4AGhGAPDHhbBP471lsFAK/3HbvIPVBC2FgKrk9aerYlWM9bs4HxfM0OYg0/RSS/w39Ndi
	oqFyIhTBs+lb8bx06QZKg6a6FYV1f+f2L5WpbRuulsQS+RZlhDtjFrMcNnSbRxbJdw+aMScgFgI
	zgPuA/mKhVWpBoB3lt5lSEWvaS+i5d9krfpMm6d5bKYvM7CsOTDppUofhqYsO1xvYnAiBHfTWrH
	J6hKE3b
X-Received: by 2002:a5d:5f55:0:b0:437:712a:fac9 with SMTP id ffacd0b85a97d-4378aa04146mr6020186f8f.23.1770913276791;
        Thu, 12 Feb 2026 08:21:16 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 1/6] xen/riscv: implement get_page_from_gfn()
Date: Thu, 12 Feb 2026 17:21:02 +0100
Message-ID: <04eee3ae5e8aadf8c7f0b873ba24ce38220e8fa2.1770821989.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770821989.git.oleksii.kurochko@gmail.com>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Provide a RISC-V implementation of get_page_from_gfn(), matching the
semantics used by other architectures.

For translated guests, this is implemented as a wrapper around
p2m_get_page_from_gfn(). For DOMID_XEN, which is not auto-translated,
provide a 1:1 RAM/MMIO mapping and perform the required validation and
reference counting.

The function is implemented out-of-line rather than as a static inline,
to avoid header ordering issues where struct domain is incomplete when
asm/p2m.h is included, leading to build failures:
  In file included from ./arch/riscv/include/asm/domain.h:10,
                   from ./include/xen/domain.h:16,
                   from ./include/xen/sched.h:11,
                   from ./include/xen/event.h:12,
                   from common/cpu.c:3:
  ./arch/riscv/include/asm/p2m.h: In function 'get_page_from_gfn':
  ./arch/riscv/include/asm/p2m.h:50:33: error: invalid use of undefined type 'struct domain'
     50 | #define p2m_get_hostp2m(d) (&(d)->arch.p2m)
        |                                 ^~
  ./arch/riscv/include/asm/p2m.h:180:38: note: in expansion of macro 'p2m_get_hostp2m'
    180 |         return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
        |                                      ^~~~~~~~~~~~~~~
  make[2]: *** [Rules.mk:253: common/cpu.o] Error 1
  make[1]: *** [build.mk:72: common] Error 2
  make: *** [Makefile:623: xen] Error 2

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Does it make sense to make this function almost fully generic?

It looks like most of the logic here is architecture-independent and identical
across architectures, except for the following points:

1. ```
   if ( likely(d != dom_xen) )
   ```

   This could be made generic by introducing paging_mode_translate() for ARM
   and defining it as `(d != dom_xen)` there.

2. ```
   if ( t )
       *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
   ```

   Here, only `p2m_mmio_direct_io` appears to be architecture-specific. This
   could be abstracted via a helper such as `dom_io_p2m_type()` and used here
   instead.
---
---
 xen/arch/riscv/include/asm/p2m.h |  8 ++------
 xen/arch/riscv/p2m.c             | 28 ++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index 0cdd3dc44683..c68494593fd9 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -171,12 +171,8 @@ typedef unsigned int p2m_query_t;
 #define P2M_ALLOC    (1u<<0)   /* Populate PoD and paged-out entries */
 #define P2M_UNSHARE  (1u<<1)   /* Break CoW sharing */
 
-static inline struct page_info *get_page_from_gfn(
-    struct domain *d, unsigned long gfn, p2m_type_t *t, p2m_query_t q)
-{
-    BUG_ON("unimplemented");
-    return NULL;
-}
+struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
+                                    p2m_type_t *t, p2m_query_t q);
 
 static inline void memory_type_changed(struct domain *d)
 {
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 275c38020ae2..f5b03e1e3264 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1557,3 +1557,31 @@ void p2m_handle_vmenter(void)
         flush_tlb_guest_local();
     }
 }
+
+struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
+                                    p2m_type_t *t, p2m_query_t q)
+{
+    struct page_info *page;
+
+    /*
+     * Special case for DOMID_XEN as it is the only domain so far that is
+     * not auto-translated.
+     */
+    if ( likely(d != dom_xen) )
+        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
+
+    /* Non-translated guests see 1-1 RAM / MMIO mappings everywhere */
+
+    if ( t )
+        *t = p2m_invalid;
+
+    page = mfn_to_page(_mfn(gfn));
+
+    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
+        return NULL;
+
+    if ( t )
+        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
+
+    return page;
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:21:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:21:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229475.1535433 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZRR-0006MV-EP; Thu, 12 Feb 2026 16:21:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229475.1535433; Thu, 12 Feb 2026 16:21: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 1vqZRR-0006Ku-60; Thu, 12 Feb 2026 16:21:21 +0000
Received: by outflank-mailman (input) for mailman id 1229475;
 Thu, 12 Feb 2026 16:21: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZRQ-0006Fi-Kf
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:21:20 +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 dc8a1bbe-082e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 17:21:18 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so32425e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:21:18 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e5c635sm13938426f8f.37.2026.02.12.08.21.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Feb 2026 08:21:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc8a1bbe-082e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770913278; x=1771518078; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PELzgBrkYoFU28QGxSaV7T34+uk+b3op31q7VDuVJfM=;
        b=N4TqEt1QE/B8pYIP+hQ+7eFD2X+6KEctSsdPp4P8HWs9uKANviylSh3QnWZDkBUFfm
         afd2WRuCFtrCcqsvvB2n6tE7PbKWuTjxWnk6EnfKWQIMlY/5OpAUIAnU+FydfGCZWGII
         hmN3fHWqWey4cvex2Wubsea/fog+ol6bNGaIk/PfgEYfhbiFrbONdMOZ1D4PJ8ICv14Y
         lOyK1a8ifrEZu3ZDqwmlDZAgP5a9ewIptJSKBaroFAvji2j4Kv5YdwPcHpePJxYRXlWT
         wUtK7r3JQfHw/30+9WdeT7E9adgXS+UZrAoa6GtaAWs6M6/5aHM7E9XIOQe2klKfe8/d
         PSnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770913278; x=1771518078;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=PELzgBrkYoFU28QGxSaV7T34+uk+b3op31q7VDuVJfM=;
        b=CIGbO3TRJmSlurtGHefyM8a5rdM2TGgbN3taVDDm/LQjfq59k/fDJmVzljtikWfXRu
         8CuChyWVZudA+MJ7ETjWKndhnHkIHWtGxEoF2p+AJrShLrm/uF2Z2uzNHe6nH87Hp2xV
         0oJo14A4t6WreIIFBghGa9W1SclSeDeLD0MWetY/eHQ0KLlditiskUzAItOeB7eIv0lL
         HK2V9cPYl5awAWcjSpMa02NMTbMrt4wTQJm7H1NEGqGz//Y+NNiA3CJftj7zG3I16GyD
         GV1f93GvMLB+bZl7V+8w65Zv7Z0ED0TDhzwAWXE7cSIvZfDuT29q2gnSGsiqmYuzRvx0
         IUVQ==
X-Gm-Message-State: AOJu0Yya6P0ZF14serfLv2+UOZlz56avLDldAV4mKd7ipseQynNmo6qt
	k2LJrj6G/0tQsYvcb5pHZLhAfeoykiXw130GjZ7wr6FrWkVsFlsqovODcH/oOfqZ
X-Gm-Gg: AZuq6aJ7ueKKyTx+ng3EdeawZgbtqANs6uC3sw0z9+QMNe+q3Hlacau/GKpwjPEbrBz
	1kgKHtThonjWnftSNy2gVsh/ISvJgpAmIX0PMyoskjj7/QgJYNtTki/E2Dn251nNcAfJ+gZN8tb
	mGjk69m2KTLw/dXWeu/qTgtvtaSuBgmcPEhPRRl1k+xQE901loBl+ZflMcVTQsZLLbfJUoGA0X0
	8I+BzskUO40f4QbFzYQ59RDUn55cGLFpjqqljSCLuBygAiUJOKVio6uxJhX2059c8J81t5JW9Vu
	GIXC/+ZtPMTOd+sSZGQyCPzHY/kNDeDmA9X3kgfLN/iBCLYiDNqiV2lwxAnB990OHIxeRUbZt0d
	8Qq3aq0ntPduqNc3jMmPBZbIlGXdnucIBAjmGbi9xQvlC5gdDct2s7dJEHnJ6YurM9+e+0xkJtc
	g5cOyPrKkeWBQ93K8+c+94NGtRq+umuMJRYjY7gTqE3qG1boYD5plPCG1fAWE057bDtA==
X-Received: by 2002:a05:600c:6285:b0:482:eec4:76d with SMTP id 5b1f17b1804b1-4836715979emr46166525e9.17.1770913277874;
        Thu, 12 Feb 2026 08:21:17 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 2/6] xen/riscv: implement copy_to_guest_phys()
Date: Thu, 12 Feb 2026 17:21:03 +0100
Message-ID: <cb50d76c627cb666317b23ae136ca43bfbfd04c5.1770821989.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770821989.git.oleksii.kurochko@gmail.com>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce copy_to_guest_phys() for RISC-V, based on the Arm implementation.

Add a generic copy_guest() helper for copying to and from guest physical
(and potentially virtual addresses in the future), and implement
translate_get_page() to translate a guest physical address into a struct
page_info via the domain p2m.

Compared to the Arm code:
- Drop COPY_flush_dcache(), as no such use cases exist on RISC-V.
- Do not implement the linear mapping case, which is currently unused.
- Use PAGE_OFFSET() to initialize the local offset variable in copy_guest().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile                   |   1 +
 xen/arch/riscv/guestcopy.c                | 112 ++++++++++++++++++++++
 xen/arch/riscv/include/asm/guest_access.h |   7 ++
 3 files changed, 120 insertions(+)
 create mode 100644 xen/arch/riscv/guestcopy.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 7439d029cc45..90210799e038 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -3,6 +3,7 @@ obj-y += cpufeature.o
 obj-y += domain.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
+obj-y += guestcopy.o
 obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
diff --git a/xen/arch/riscv/guestcopy.c b/xen/arch/riscv/guestcopy.c
new file mode 100644
index 000000000000..19b681c30b1b
--- /dev/null
+++ b/xen/arch/riscv/guestcopy.c
@@ -0,0 +1,112 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/domain_page.h>
+#include <xen/page-size.h>
+#include <xen/sched.h>
+#include <xen/string.h>
+
+#include <asm/guest_access.h>
+
+#define COPY_from_guest     (0U << 0)
+#define COPY_to_guest       (1U << 0)
+#define COPY_ipa            (0U << 1)
+#define COPY_linear         (1U << 1)
+
+typedef union
+{
+    struct
+    {
+        struct vcpu *v;
+    } gva;
+
+    struct
+    {
+        struct domain *d;
+    } gpa;
+} copy_info_t;
+
+#define GVA_INFO(vcpu) ((copy_info_t) { .gva = { vcpu } })
+#define GPA_INFO(domain) ((copy_info_t) { .gpa = { domain } })
+
+static struct page_info *translate_get_page(copy_info_t info, uint64_t addr,
+                                            bool linear, bool write)
+{
+    p2m_type_t p2mt;
+    struct page_info *page;
+
+    if ( linear )
+        BUG_ON("unimplemeted\n");
+
+    page = get_page_from_gfn(info.gpa.d, paddr_to_pfn(addr), &p2mt, P2M_ALLOC);
+
+    if ( !page )
+        return NULL;
+
+    if ( !p2m_is_ram(p2mt) )
+    {
+        put_page(page);
+        return NULL;
+    }
+
+    return page;
+}
+
+static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
+                                copy_info_t info, unsigned int flags)
+{
+    unsigned int offset = PAGE_OFFSET(addr);
+
+    BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t));
+    BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t));
+
+    while ( len )
+    {
+        void *p;
+        unsigned int size = min(len, (unsigned int)PAGE_SIZE - offset);
+        struct page_info *page;
+
+        page = translate_get_page(info, addr, flags & COPY_linear,
+                                  flags & COPY_to_guest);
+        if ( page == NULL )
+            return len;
+
+        p = __map_domain_page(page);
+        p += offset;
+        if ( flags & COPY_to_guest )
+        {
+            /*
+             * buf will be NULL when the caller request to zero the
+             * guest memory.
+             */
+            if ( buf )
+                memcpy(p, buf, size);
+            else
+                memset(p, 0, size);
+        }
+        else
+            memcpy(buf, p, size);
+
+        unmap_domain_page(p - offset);
+        put_page(page);
+        len -= size;
+        buf += size;
+        addr += size;
+
+        /*
+         * After the first iteration, guest virtual address is correctly
+         * aligned to PAGE_SIZE.
+         */
+        offset = 0;
+    }
+
+    return 0;
+}
+
+unsigned long copy_to_guest_phys(struct domain *d,
+                                 paddr_t gpa,
+                                 void *buf,
+                                 unsigned int len)
+{
+    return copy_guest(buf, gpa, len, GPA_INFO(d),
+                      COPY_to_guest | COPY_ipa);
+}
diff --git a/xen/arch/riscv/include/asm/guest_access.h b/xen/arch/riscv/include/asm/guest_access.h
index 7cd51fbbdead..024e29b4c9f9 100644
--- a/xen/arch/riscv/include/asm/guest_access.h
+++ b/xen/arch/riscv/include/asm/guest_access.h
@@ -2,6 +2,10 @@
 #ifndef ASM__RISCV__GUEST_ACCESS_H
 #define ASM__RISCV__GUEST_ACCESS_H
 
+#include <xen/types.h>
+
+struct domain;
+
 unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len);
 unsigned long raw_copy_from_guest(void *to, const void *from, unsigned len);
 unsigned long raw_clear_guest(void *to, unsigned int len);
@@ -18,6 +22,9 @@ unsigned long raw_clear_guest(void *to, unsigned int len);
 #define guest_handle_okay(hnd, nr) (1)
 #define guest_handle_subrange_okay(hnd, first, last) (1)
 
+unsigned long copy_to_guest_phys(struct domain *d, paddr_t gpa, void *buf,
+                                 unsigned int len);
+
 #endif /* ASM__RISCV__GUEST_ACCESS_H */
 /*
  * Local variables:
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:21:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:21:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229476.1535450 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZRS-0006rv-In; Thu, 12 Feb 2026 16:21:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229476.1535450; Thu, 12 Feb 2026 16: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 1vqZRS-0006pv-FD; Thu, 12 Feb 2026 16:21:22 +0000
Received: by outflank-mailman (input) for mailman id 1229476;
 Thu, 12 Feb 2026 16:21: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZRQ-0005jV-PO
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:21:20 +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 dd4090f0-082e-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:21:20 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-483337aa225so23765e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:21:20 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e5c635sm13938426f8f.37.2026.02.12.08.21.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Feb 2026 08:21:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd4090f0-082e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770913279; x=1771518079; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uZVTmyjQ+cfxWV4H5phu2iSv8MlikEWciPmm+cING7w=;
        b=mGB4J1ukpJXKn/SE8tfC/OH2RlYPGzz3CgXzDysajvgU7PFByVsBppUYMmvbydeHRE
         QUtU0tRlSLqo3r8mdmeA+o2qmfHChj06KZLy5mgP8cFTEs8J77PiWb8H5iipFC/5HyG6
         OfZp4nGbd6nRRaWTH9wie7cBaBhzIrXrhjEIbaEftHmWZYIBo+wJSLOaOC8gnNXZsbQU
         5afFTUqyGPSgGYJ0Oj5FxP0ky9v3xbEiadf4ygbi64fBoSaUOhZ3V16P9JwMo872wy9P
         IUKLM6sO59JuQ73BUYVMIucP0bXgYnGUSQZHqvboYWoPLOOSIaGfiebUnaYh21AzfYL7
         CFIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770913279; x=1771518079;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=uZVTmyjQ+cfxWV4H5phu2iSv8MlikEWciPmm+cING7w=;
        b=jawL4XaYggIpdgV4D6NGdVQU4H+lcjkbXA7zrfQUNfp5tpyAZnM2VFrExc3e3QeQx1
         UJto1/42m6odPQo+2L8NGfopL3QgvBRCYLlC0ijiwGj7QFza/OmNHmgX/1fr5wVm8gVU
         IfKFgg3AD9MxpZIypsrB+pC5HK2Wy7Z+4qYM3D1y+ZixaEgoh+D4bBKFC/f3/zC/pMQ8
         VwF1VW60oX1W3kQrdezu69F+Xr71tfOkRzZZc/7wt8Lyuz+2KTVcjTgWVk7jEI4jvJy1
         g//lwuMEQVKVjPAxosJVBpZee7Bk3CbNwv+RcCJeDTPL3UsDsWtJvCipNwEA3sav1/X9
         7ciA==
X-Gm-Message-State: AOJu0YwsrVtfL+OTIzeXfoJjayExBR8pvLF3SWL1ZUhP4CEOwN6IVX5Q
	iSCSkrxxtKzlzFkxhxvTIMjRdKvb+CUqkbWqa9VNoVuOFLqS0KUsvWZqDRlNpQar
X-Gm-Gg: AZuq6aILfi1pU5GfgQPqhYe7ivUxDdKMewDnW3rT4PzKBbjbcPtmCZyDvAFbpPZ2UxJ
	d6tQAlxfmWbiLsHh7YQyVEZyAZyNlulLm2lThOHUqhCxq91Qx5kbGBwOkDbRgQnuZqSuEXLh9Y6
	cpwDw5f4Zmfg0+Muxn1Dizwv5N7pHG0wguvvJcpSyPBWuT/0awzuS0ZfJy+z25rUIpuAOwg9jiP
	aA7kCQAisI9WY/i4bb2FzUJCMscGDN19K+tGK1kBuIoTbQdkZrsH3n/INdoE1feFjHKFAcCiCGS
	D4mPquzmSd6P2D5dQarOyEB2xqideO69elpXAPIgOahDMcyhgKvWp7j6u7EErbk9P2Ss3op5HIt
	892zxT6iil8BnwnKGdOl0JXkPAW5loKdwKBhVB3BCJN99c5yfBasVjjKGxfKiiHLD542mDO6U4N
	qa3ESSk7FTzp2sc9hCIys/eanR0mOYnnk0fAjVWPuMKUW/WvGH1In0t0EebFH7oGNwVA==
X-Received: by 2002:a05:600c:83c8:b0:46e:4a13:e6c6 with SMTP id 5b1f17b1804b1-4836570ec0cmr40317005e9.19.1770913278999;
        Thu, 12 Feb 2026 08:21:18 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 3/6] xen/riscv: add zImage kernel loading support
Date: Thu, 12 Feb 2026 17:21:04 +0100
Message-ID: <308c5bc1de15b23c643d48f975799739f44dde8d.1770821989.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770821989.git.oleksii.kurochko@gmail.com>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce support for loading a Linux zImage kernel on RISC-V.

Note that if panic() is used instead of returning an error as common code
doesn't expect to have return code and it is something that should be
done separately.

This prepares the RISC-V port for booting Linux guests using the common
domain build infrastructure.

The code is based on Xen Arm code.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Makefile             |   1 +
 xen/arch/riscv/include/asm/config.h |  13 +++
 xen/arch/riscv/kernel.c             | 156 ++++++++++++++++++++++++++++
 3 files changed, 170 insertions(+)
 create mode 100644 xen/arch/riscv/kernel.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 90210799e038..2e15f894fdd4 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -7,6 +7,7 @@ obj-y += guestcopy.o
 obj-y += imsic.o
 obj-y += intc.o
 obj-y += irq.o
+obj-y += kernel.o
 obj-y += mm.o
 obj-y += p2m.o
 obj-y += paging.o
diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 86a95df018b5..d24b54d656b8 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -152,6 +152,19 @@
 extern unsigned long phys_offset; /* = load_start - XEN_VIRT_START */
 #endif
 
+/*
+ * KERNEL_LOAD_ADDR_ALIGNMENT is defined based on paragraph of
+ * "Kernel location" of boot.rst:
+ * https://docs.kernel.org/arch/riscv/boot.html#kernel-location
+ */
+#if defined(CONFIG_RISCV_32)
+#define KERNEL_LOAD_ADDR_ALIGNMENT MB(4)
+#elif defined(CONFIG_RISCV_64)
+#define KERNEL_LOAD_ADDR_ALIGNMENT MB(2)
+#else
+#error "Define KERNEL_LOAD_ADDR_ALIGNMENT"
+#endif
+
 #endif /* ASM__RISCV__CONFIG_H */
 /*
  * Local variables:
diff --git a/xen/arch/riscv/kernel.c b/xen/arch/riscv/kernel.c
new file mode 100644
index 000000000000..f91e9ada8a9c
--- /dev/null
+++ b/xen/arch/riscv/kernel.c
@@ -0,0 +1,156 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include <xen/bug.h>
+#include <xen/compiler.h>
+#include <xen/errno.h>
+#include <xen/fdt-kernel.h>
+#include <xen/guest_access.h>
+#include <xen/init.h>
+#include <xen/libfdt/libfdt.h>
+#include <xen/mm.h>
+#include <xen/types.h>
+#include <xen/vmap.h>
+
+#include <asm/setup.h>
+
+#define ZIMAGE64_MAGIC_V2 0x05435352 /* Magic number 2, le, "RSC\x05" */
+
+static void __init place_modules(struct kernel_info *info, paddr_t kernbase,
+                                 paddr_t kernend)
+{
+    const struct boot_module *mod = info->bd.initrd;
+
+    const paddr_t initrd_len = ROUNDUP(mod ? mod->size : 0, MB(2));
+    const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt), MB(2));
+    const paddr_t modsize = initrd_len + dtb_len;
+
+    const paddr_t ramsize = info->mem.bank[0].size;
+    const paddr_t kernsize = ROUNDUP(kernend, MB(2)) - kernbase;
+
+    if ( modsize + kernsize > ramsize )
+        panic("Not enough memory in the first bank for the kernel+dtb+initrd\n");
+
+    info->dtb_paddr = ROUNDUP(kernend, MB(2));
+
+    info->initrd_paddr = info->dtb_paddr + dtb_len;
+}
+
+static paddr_t __init kernel_zimage_place(struct kernel_info *info)
+{
+    paddr_t load_addr;
+
+    /*
+     * At the moment, RISC-V's Linux kernel should be always position
+     * independent based on "Per-MMU execution" of boot.rst:
+     *   https://docs.kernel.org/arch/riscv/boot.html#pre-mmu-execution
+     *
+     * But just for the case when RISC-V's Linux kernel isn't position
+     * indepenet it is needed to take load address from
+     * info->zimage.start.
+     *
+     * If `start` is zero, the zImage is position independent. */
+    if ( likely(!info->zimage.start) )
+        /*
+         * According to boot.rst kernel load address should be properly
+         * aligned:
+         *   https://docs.kernel.org/arch/riscv/boot.html#kernel-location
+         */
+        load_addr = ROUNDUP(info->mem.bank[0].start, KERNEL_LOAD_ADDR_ALIGNMENT);
+    else
+        load_addr = info->zimage.start;
+
+    return load_addr;
+}
+
+static void __init kernel_zimage_load(struct kernel_info *info)
+{
+    int rc;
+    paddr_t load_addr = kernel_zimage_place(info);
+    paddr_t paddr = info->zimage.kernel_addr;
+    paddr_t len = info->zimage.len;
+    void *kernel;
+
+    info->entry = load_addr;
+
+    place_modules(info, load_addr, load_addr + len);
+
+    printk("Loading zImage from %"PRIpaddr" to %"PRIpaddr"-%"PRIpaddr"\n",
+            paddr, load_addr, load_addr + len);
+
+    kernel = ioremap_wc(paddr, len);
+
+    if ( !kernel )
+        panic("Unable to map kernel\n");
+
+    /* Move kernel to proper location in guest phys map */
+    rc = copy_to_guest_phys(info->bd.d, load_addr, kernel, len);
+
+    if ( rc )
+        panic("Unable to copy kernel to proper guest location\n");
+
+    iounmap(kernel);
+}
+
+/* Check if the image is a 64-bit Image */
+static int __init kernel_zimage64_probe(struct kernel_info *info,
+                                        paddr_t addr, paddr_t size)
+{
+    /* riscv/boot-image-header.rst */
+    struct {
+        u32 code0;		  /* Executable code */
+        u32 code1;		  /* Executable code */
+        u64 text_offset;  /* Image load offset, little endian */
+        u64 image_size;	  /* Effective Image size, little endian */
+        u64 flags;		  /* kernel flags, little endian */
+        u32 version;	  /* Version of this header */
+        u32 res1;		  /* Reserved */
+        u64 res2;		  /* Reserved */
+        u64 magic;        /* Deprecated: Magic number, little endian, "RISCV" */
+        u32 magic2;       /* Magic number 2, little endian, "RSC\x05" */
+        u32 res3;		  /* Reserved for PE COFF offset */
+    } zimage;
+    uint64_t start, end;
+
+    if ( size < sizeof(zimage) )
+        return -EINVAL;
+
+    copy_from_paddr(&zimage, addr, sizeof(zimage));
+
+    /* Magic v1 is deprecated and may be removed.  Only use v2 */
+    if ( zimage.magic2 != ZIMAGE64_MAGIC_V2 )
+        return -EINVAL;
+
+    /* Currently there is no length in the header, so just use the size */
+    start = 0;
+    end = size;
+
+    /*
+     * Given the above this check is a bit pointless, but leave it
+     * here in case someone adds a length field in the future.
+     */
+    if ( (end - start) > size )
+        return -EINVAL;
+
+    info->zimage.kernel_addr = addr;
+    info->zimage.len = end - start;
+    info->zimage.text_offset = zimage.text_offset;
+    info->zimage.start = 0;
+
+    info->load = kernel_zimage_load;
+
+    return 0;
+}
+
+int __init kernel_zimage_probe(struct kernel_info *info, paddr_t addr,
+                               paddr_t size)
+{
+    int rc;
+
+#ifdef CONFIG_RISCV_64
+    rc = kernel_zimage64_probe(info, addr, size);
+    if (rc < 0)
+#endif
+        panic("only RISC-V 64 is supported\n");
+
+    return rc;
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:21:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:21:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229477.1535462 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZRU-0007DA-8q; Thu, 12 Feb 2026 16:21:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229477.1535462; Thu, 12 Feb 2026 16:21: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 1vqZRU-0007D3-3K; Thu, 12 Feb 2026 16:21:24 +0000
Received: by outflank-mailman (input) for mailman id 1229477;
 Thu, 12 Feb 2026 16: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZRR-0005jV-QO
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:21:21 +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 dded50a9-082e-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:21:21 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4376de3f128so41886f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:21:21 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e5c635sm13938426f8f.37.2026.02.12.08.21.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Feb 2026 08:21:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dded50a9-082e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770913280; x=1771518080; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CRkNJBibaLYU3bMR9lUWo949I9MQDI6fqJ8QTLnRMOI=;
        b=S9rG2hX1diD8RiAFb4TVsRd/ECXYFtnsrWHKlTPZOfkcz2QXMIx70WwlLFKz8PNw7a
         Fs4+sYYT/qKvC3QPxDLYbTPNyNNjlulrmz+YLxP7iZ2V2jdsDlBH3ljWxEqDDq05+IZf
         Jv9TLzM8cr5eFid15PzzifW03olMo0lMkLIljGEELXmiK6/Gj3GtyqZGMptQzIx5wz+f
         iVQqI0K0CETuCPssekfDp7reblKtdrhummCrBOeZ7aFP6fc2V0uLJKRi1wcJkl954JX0
         CxN52jWBDkdMGhX6IB+C7S/Nki7FmVlEVK1rtyee5mA3Rqgs8C14ydh0QaVDJ8+PT6A8
         P6dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770913280; x=1771518080;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CRkNJBibaLYU3bMR9lUWo949I9MQDI6fqJ8QTLnRMOI=;
        b=THcZ9rXfS/RiFrAT0wqjxU8IY5s/YJDulKJYeya8xHI25zft0uaQzg1OIVOv7WqRj9
         CoCdtcx2akhTUo3Ah2zpC7PzLs3C6vhFwh66wInmpdAvmKhltWarVsrt9yeWraPi1I/N
         4kcmJZhoKT0YJ6+IQp52Yu2Ldg3dCIkotdbiXtncOTyE06O4BIOS8FN2LLtbzRNdU43t
         Avfh/U1M853wzxR176syBK76PpPvTIoFBT2g+y/ydQzR6Wr3uCjQEwYiHHPR6Krm8RXh
         idQBjFdmxEVihWWo6s4kt+ZUFnt8CGqBELlWp8JM1/N8zSckmiS9On8U8UHAEmsF/ZUH
         ESPA==
X-Gm-Message-State: AOJu0YzGYtNTYUuiCzJHsv/tdJ/osyczivxJdeJeQV/EQdM5Nj/JJJvG
	Q+vh+XEagOSjzyWODnm29qurgxvRBLKhhrLG4p/BmD+V9qRSrDdblYobxdBKm3Qp
X-Gm-Gg: AZuq6aJPOT2Dbdkr8t45E3gma04b+HJacSOtnc4uHQA4wEf0lISapcvUyCTPJmINY6L
	+A4lMzgNZnr353GpOiz5yCM525m54vevBmVXJ+8sARehum5OYC9AwpTP3wKQc0Sw9ZHcxhxvnmr
	bvz1bEWB3sKczZ0JH5MYuAnkJXN8Tm/QuIMMV7/s4xzPWj9TSGg3AoV9QjbaT4DCF+G/JX4HW9z
	Am+0VVwHThBrK8kyn/33ADIU6FuzX/EWZNED5r5MiXkgnH9LFZVdO8uvAweA8gT/VZ+rfXTJ//o
	4m74N4MggyIh5SE52mrB0NSILGb7iAI4IiI2VuPeLo3n4G3dSAA2+8bAqFdzbjrqgGd2HR41RbI
	6ZOriJlJtNOYs2ysSd8HiQD4raHVjnCThyFP3h1oNhAd8CNZXw4VxuBmdrc3CuJ30jWduunuzx6
	ThHxA9J/zNE7hgIoibjCZjkRKhm+fBsd06ZHMHdec+ItoDj7wsroXdynCKGSW++qA7WQ==
X-Received: by 2002:a05:6000:1acb:b0:437:681e:cbc3 with SMTP id ffacd0b85a97d-4378ac92470mr6296018f8f.13.1770913280269;
        Thu, 12 Feb 2026 08:21:20 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 4/6] xen: move declaration of fw_unreserved_regions() to common header
Date: Thu, 12 Feb 2026 17:21:05 +0100
Message-ID: <bbc6731f40adec155249ac32f8b87af72f9eef51.1770821989.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770821989.git.oleksii.kurochko@gmail.com>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Since the implementation of fw_unreserved_regions() is in common code, move
its declaration to xen/bootinfo.h.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/arm/include/asm/setup.h | 3 ---
 xen/include/xen/bootinfo.h       | 4 ++++
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/xen/arch/arm/include/asm/setup.h b/xen/arch/arm/include/asm/setup.h
index 899e33925ca4..0d29b46ea52b 100644
--- a/xen/arch/arm/include/asm/setup.h
+++ b/xen/arch/arm/include/asm/setup.h
@@ -43,9 +43,6 @@ int acpi_make_efi_nodes(void *fdt, struct membank tbl_add[]);
 void create_dom0(void);
 
 void discard_initial_modules(void);
-void fw_unreserved_regions(paddr_t s, paddr_t e,
-                           void (*cb)(paddr_t ps, paddr_t pe),
-                           unsigned int first);
 
 void init_pdx(void);
 void setup_mm(void);
diff --git a/xen/include/xen/bootinfo.h b/xen/include/xen/bootinfo.h
index f834f1957155..dbf492c2e36e 100644
--- a/xen/include/xen/bootinfo.h
+++ b/xen/include/xen/bootinfo.h
@@ -210,4 +210,8 @@ static inline struct membanks *membanks_xzalloc(unsigned int nr,
     return banks;
 }
 
+void fw_unreserved_regions(paddr_t s, paddr_t e,
+                           void (*cb)(paddr_t ps, paddr_t pe),
+                           unsigned int first);
+
 #endif /* XEN_BOOTINFO_H */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:21:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:21:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229478.1535466 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZRU-0007Ef-HJ; Thu, 12 Feb 2026 16:21:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229478.1535466; Thu, 12 Feb 2026 16:21: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 1vqZRU-0007E5-Bf; Thu, 12 Feb 2026 16:21:24 +0000
Received: by outflank-mailman (input) for mailman id 1229478;
 Thu, 12 Feb 2026 16:21: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZRT-0006Fi-Su
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:21:23 +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 de98d959-082e-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 17:21:22 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4834826e555so63095e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:21:22 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e5c635sm13938426f8f.37.2026.02.12.08.21.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Feb 2026 08:21:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: de98d959-082e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770913281; x=1771518081; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iqkKpGyCtGDJtDlBv21kLuTz5YLX6vjY9zkGw/p3/7Q=;
        b=i25PJeX/McznYKr9yMEgnKbH1u+cqRNWLOkqGkPsceVqbIQgPa4o46zjQSPLWFX43F
         WkpgpYM+vFHzapHp8mRdbNNpSTXWfjs7V/3SFHkiS+67kkFU5tWrVPE1tNO+yc+awaPv
         cCb6kVzz8DvWX+b3fNLaoZ+2H7Ca+fffaD2RVEBgaECgtxwaXmJUzohvN/AQv+cBLLgb
         mwkN3aJOKgAf0k18p07JWRjsNHzGdduqrbJbEgyjDcHT2/xD20AZSBct+rZDiv7EvvDY
         WZuyMWFHsnvcEgPE61A4/tyZm4pgYDWiZ8AhrLVJzWPUo/k7CYT/kHeT2zmmcOegJvKK
         UBQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770913281; x=1771518081;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=iqkKpGyCtGDJtDlBv21kLuTz5YLX6vjY9zkGw/p3/7Q=;
        b=HwLyu9iPaT71gfKRGjUwAfk+qfgzDeO8Tr2MExis3cLHdTbpYV3YfY8q7DgJe5K4JI
         UouN7lDylYRzEdL4y10PWVaUJVFNeacuIJRhcvm9A/wKS6cn91Ox//AcXJZGGRKitUZ2
         PLHYgCYgUohXv5hghautU3eVnFzVbiexBzEYA/nLPvqujSknS/gmf8ANOC+ivUJzsrnI
         VLICQCeYuXWsIfpEOF+TbC3+F12Uc0IS2mNzSMVPOq200d6n4tgnns4gwiEf14MOMILL
         +qihmNAwnPrEUhkVKSoWdKwaZ0uGVnPRiVrHuCxK8bf61auOhHfQEnMmQyixoCH429sT
         zmaQ==
X-Gm-Message-State: AOJu0YzZCqiLjUzpJD2jUOWM3Lbu2kkwJuUVk0/kFTewcLUMzMLFsL2f
	LIKd5FISyAAoduZFaGs8VXSb5f0NR9BamVdBxDp47zbKLlChwL13+sT8F9U48ilw
X-Gm-Gg: AZuq6aJQ8edQSgwM4LJfKb/q/I7SM02W+tadraHigiUoDZMBQThUEXUwmKGEDl+mdiF
	IfXFLaSjgwqLDnO7rWtPNE+pF8U4K0gIkkvD7CU/f8Hdm0xGaEAbzum4VIg41rg5FH9efxAiReU
	R++PoPo5RuWD/h4oPgw+I+LeM1Vy2XAF58nmBJB8j0ySAmokdLYAqJXST4BOMdMKmrGiNhAXpjd
	mq6OtEc7FsqGqHQXjeCSCbUkDsu3eO8iZvPMDOOccc+Dq3gjT78Xkzg1QCXTKr4dNlC/Aau3AW4
	RQNEfM3mpPtqgzFh4mgQuKh3wALkb/RWdUpN950+MOORz3VW7InklmK7o5M6U2MT8cpL8vZsAhY
	A70DDikhaPSHRfJPHbuSJKCZsS8Xi2yzJD0RMUxatvVG1dBrTt1fjvxKVSuHyUXmkjDYAjOPkbz
	EMikPwadcr1nU5QmKg9QezVHRowASoBQwuVG+ig2lLRWbyGlrpbF8exSHY0lb9zrohiw==
X-Received: by 2002:a05:600c:35c9:b0:483:43da:6c87 with SMTP id 5b1f17b1804b1-4836571fd5emr54435805e9.33.1770913281356;
        Thu, 12 Feb 2026 08:21:21 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
Subject: [PATCH v1 5/6] xen: move domain_use_host_layout() to common header
Date: Thu, 12 Feb 2026 17:21:06 +0100
Message-ID: <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770821989.git.oleksii.kurochko@gmail.com>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

domain_use_host_layout() is generic enough to be moved to the
common header xen/domain.h.

Wrap domain_use_host_layout() with "#ifndef domain_use_host_layout"
to allow architectures to override it if needed.

No functional change.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/arm/include/asm/domain.h | 14 --------------
 xen/include/xen/domain.h          | 16 ++++++++++++++++
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
index 758ad807e461..1a04fe658c97 100644
--- a/xen/arch/arm/include/asm/domain.h
+++ b/xen/arch/arm/include/asm/domain.h
@@ -29,20 +29,6 @@ enum domain_type {
 #define is_64bit_domain(d) (0)
 #endif
 
-/*
- * Is the domain using the host memory layout?
- *
- * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
- * To avoid any trouble finding space, it is easier to force using the
- * host memory layout.
- *
- * The hardware domain will use the host layout regardless of
- * direct-mapped because some OS may rely on a specific address ranges
- * for the devices.
- */
-#define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
-                                   is_hardware_domain(d))
-
 struct vtimer {
     struct vcpu *v;
     int irq;
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 93c0fd00c1d7..40487825ad91 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -62,6 +62,22 @@ void domid_free(domid_t domid);
 #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
 #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
 
+/*
+ * Is the domain using the host memory layout?
+ *
+ * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
+ * To avoid any trouble finding space, it is easier to force using the
+ * host memory layout.
+ *
+ * The hardware domain will use the host layout regardless of
+ * direct-mapped because some OS may rely on a specific address ranges
+ * for the devices.
+ */
+#ifndef domain_use_host_layout
+# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
+                                    is_hardware_domain(d))
+#endif
+
 /*
  * Arch-specifics.
  */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:21:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:21:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229479.1535481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZRV-0007dM-QV; Thu, 12 Feb 2026 16:21:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229479.1535481; Thu, 12 Feb 2026 16: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 1vqZRV-0007ce-Lh; Thu, 12 Feb 2026 16:21:25 +0000
Received: by outflank-mailman (input) for mailman id 1229479;
 Thu, 12 Feb 2026 16:21: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZRU-0005jV-1g
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:21:24 +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 df39c846-082e-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:21:23 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-4359a16a400so40458f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:21:23 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783e5c635sm13938426f8f.37.2026.02.12.08.21.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Feb 2026 08:21:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: df39c846-082e-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770913282; x=1771518082; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=boVLzqeW8TB014ODFlHRq6lW2fSrAobM0ZB96ecUZjQ=;
        b=YhKYtxRHG6R5fVNwC1+ZSp1sWgFvijRu81Nvhx3JxTN6mC3olsA4TK2uwBJC3btsOp
         vSqTySyl9A9cajYipCRYQS+FlBPkYQdvI8KaNXtAcd/+5xxs0uAx6nTc19i/Z1Sd5dLB
         xzwnLBhFqdLgKuH48oLHxJzRSWnWWn7WZRL1Z2h6rdPF/ZD863dyqTVCCku6vaMVE/Ad
         BD4Oa09xgmoE/Or8TYiwrE0YEy+MggzXdi8cPl39I5+bEk1FORw3pndAdqLZ/Yukons7
         CggRiFEdCVqpF1KxrQsINUBlmQyqIURpZxHjhPXDArZpOHWQJn6O4F9pwdotjtUgEAkR
         kzjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770913282; x=1771518082;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=boVLzqeW8TB014ODFlHRq6lW2fSrAobM0ZB96ecUZjQ=;
        b=gxPlZBDVsvL67LBff53g9AvO1Qzxhi2RnbUubvqKqGCgL16b1DAxXeNfYqUYkx4/zf
         w8PtRF5FsRUkPiw7XB6/9OxrgbDSkx1VvRKyFyxnr+lGlTuLuxhMEjvycZzA983dh6q6
         kOnwW022brsAvQaOtxriIOBPgLd1KGfj5Se3Jw+kmMGHeVI2F3UG29TmxImZAJ1dbYoP
         lfDrT2TG8L+M/UU1oVchhBTQINAWQO3kclHfknz7HW9pLk4neAUWEjEyBRWpSO1Q+Qvt
         7UAc+YH8mqm5f93UASFSBXFxKzLZwdY4agSmbEQ1fTq+TqoEAVTWLkzGnmXeVU/tbHjx
         Z9bw==
X-Gm-Message-State: AOJu0YxHaF3TYkuO6smXdj6DoQtzrvjbU+IyRa26auFfXoUcCi1hJTHU
	K+qtL+chfSId9G4QQcMcMHm5f/snslOBOC73hOFStSYwGZxC97Dyqt7XmZEGzklR
X-Gm-Gg: AZuq6aKMjh8m0hcXrpX0i5UL/fFjlykWpPX2wIYVfd8DTryMejky9g+OF2klZrXgs0S
	q7bPcS9ztiILJvOKueMhc/4QhrUDJuwmtc6Lhn6KfyATyoRjAtcJktb48ZYEsGxpQQTkbIjcu8T
	SdVSHs6cPb2nLIHEpi1oF2ctSZD1lRF2P3msx8RX8PuagZbgU9cWff0q6UTGuM0yKTkIZhENKCD
	vJw/xlJAzhu9ZbpXWV3FHmidqR8nZIyeumAS26/SfyQU4LKz6WmdYRF91shVabha/z4tiSqGGiB
	DaA18GDYIx/Tu8YpqqW5C/xd36ix63okGIUvJNZxPG63PPBK5c1sgW4+BtAEgm2p85je3wVoqKg
	nWQrQWQtcU7oMWZ5ilW/vJUxVYR9CXpphggzvqPHtfP5Xy3wmLigZ/teGCfxZK/gHU4odSsBOfw
	f0mECVVi7cv2ZfJ3B5+XljxlVQJxw1OJ2FmJXEHApulefolKeFiPsUygOtzgsjze95j3Mx3mIeo
	e8I
X-Received: by 2002:a5d:5d8a:0:b0:436:3732:cfa6 with SMTP id ffacd0b85a97d-4378f16d7ffmr5166470f8f.53.1770913282360;
        Thu, 12 Feb 2026 08:21:22 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
Date: Thu, 12 Feb 2026 17:21:07 +0100
Message-ID: <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770821989.git.oleksii.kurochko@gmail.com>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

To enable DOMAIN_BUILD_HELPERS for RISC-V the following is introduced:
- Add a global p2m_ipa_bits variable, initialized to PADDR_BITS, to
  represent the maximum supported IPA size as find_unallocated_memory()
  requires it.
- Define default guest RAM layout parameters in the public RISC-V
  header as it is required by allocate_memory().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 xen/arch/riscv/Kconfig           | 1 +
 xen/arch/riscv/include/asm/p2m.h | 3 +++
 xen/arch/riscv/p2m.c             | 6 ++++++
 xen/include/public/arch-riscv.h  | 8 ++++++++
 4 files changed, 18 insertions(+)

diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig
index 89876b32175d..12b337365f1f 100644
--- a/xen/arch/riscv/Kconfig
+++ b/xen/arch/riscv/Kconfig
@@ -1,5 +1,6 @@
 config RISCV
 	def_bool y
+	select DOMAIN_BUILD_HELPERS
 	select FUNCTION_ALIGNMENT_16B
 	select GENERIC_BUG_FRAME
 	select GENERIC_UART_INIT
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index c68494593fd9..083549ef9640 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -44,6 +44,9 @@
 #define P2M_LEVEL_MASK(p2m, lvl) \
     (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
 
+/* Holds the bit size of IPAs in p2m tables */
+extern unsigned int p2m_ipa_bits;
+
 #define paddr_bits PADDR_BITS
 
 /* Get host p2m table */
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index f5b03e1e3264..62bd8a2f602f 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -51,6 +51,12 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
     .name = "Bare",
 };
 
+/*
+ * Set to the maximum configured support for IPA bits, so the number of IPA bits can be
+ * restricted by external entity (e.g. IOMMU).
+ */
+unsigned int __read_mostly p2m_ipa_bits = PADDR_BITS;
+
 static void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg);
 
 static inline void p2m_free_metadata_page(struct p2m_domain *p2m,
diff --git a/xen/include/public/arch-riscv.h b/xen/include/public/arch-riscv.h
index 360d8e6871ba..91cee3096041 100644
--- a/xen/include/public/arch-riscv.h
+++ b/xen/include/public/arch-riscv.h
@@ -50,6 +50,14 @@ typedef uint64_t xen_ulong_t;
 
 #if defined(__XEN__) || defined(__XEN_TOOLS__)
 
+#define GUEST_RAM_BANKS   1
+
+#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
+#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
+
+#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
+#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
+
 struct vcpu_guest_context {
 };
 typedef struct vcpu_guest_context vcpu_guest_context_t;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:22:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:22:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229520.1535492 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZSk-0001LS-8v; Thu, 12 Feb 2026 16:22:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229520.1535492; Thu, 12 Feb 2026 16:22:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZSk-0001LL-5E; Thu, 12 Feb 2026 16:22:42 +0000
Received: by outflank-mailman (input) for mailman id 1229520;
 Thu, 12 Feb 2026 16: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=BHzL=AQ=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vqZSi-0001Kw-Or
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:22:40 +0000
Received: from fhigh-b4-smtp.messagingengine.com
 (fhigh-b4-smtp.messagingengine.com [202.12.124.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0bf0cd58-082f-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:22:39 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id A688E7A0141;
 Thu, 12 Feb 2026 11:22:37 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Thu, 12 Feb 2026 11:22:37 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 12 Feb 2026 11:22:36 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0bf0cd58-082f-11f1-b162-2bf370ae4941
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=1770913357;
	 x=1770999757; bh=H9S1pcMvMufgeBBtWQu0pbw6BL9Wiszq/p8h/oHXstg=; b=
	O1QSHMbFFcbUhIzmS4TfzwmG2mM2eKs2OCt61diAXvDglb+pCQrvywEKUxEo5pnD
	J7ZSh/TwDBn9ixxSW1XyL1ZqQQuxucbtY6tCoy2E1A8HoPoWicba5Zekt8zO+zGG
	GlDGYCVTOD9gltcrx218Y+paDw1kft16B8YXAMyQF89d9ZGi3ne1nzanPzGJlHG2
	KQc1RT6ZAKVV/jrlHoXJuFTzylPfFZXjJEyU200Qz0BMiEriWvwNZ+0UjhzItBTi
	jUBJh1y57z9FaY6lg4+QclY9sG7CtvTLOnNyC43QCK1GVYkvuLhW8uQUzbpCZVDl
	RavbKXtIcR7XFcCPBHPzfQ==
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=
	1770913357; x=1770999757; bh=H9S1pcMvMufgeBBtWQu0pbw6BL9Wiszq/p8
	h/oHXstg=; b=Y8YHu7SDI1SHVhK2t8WVwKVWc7K9W27/sWPE9jAR13k4y6d9G1H
	BLpdC2N2hjWIKcGr9UV1FQWbYJ9IRoCZRdmxkVeATUsenb/F5LuHu2Fbmo4KGofv
	wyvmPEvjAAN/TmLqOfTLX6CQOUC+6Z08O33iNHITz8S9ZCexDd+crNCAfZw+llDz
	0orndii4MSw/0vYK0Bl+WPHxMhA5Z1o6VkyoyMWgDv65DTfzj+4hBeEx+tDcz7h6
	4Nxn8QYRhopXHnh57N1AZ7otmFhhA3KixnzJLXKl6AMzgOwhtaGAwU8YwI47/PZF
	ZfspqI6FH6M3lTAeqK0OVKBVvQUXXZWufJA==
X-ME-Sender: <xms:Tf6NaTjTTpwdFbARAnwe9Z-sRe3F0kNVj_Na5jDL5rEfXdJjuZea_Q>
    <xme:Tf6NaXzCvo-YEzZ9ZpzQx8UvhBJb141EMJcQdkkLi0nYZmlX6AlU-FMhPgz6pHxuu
    1RvyRoaiho9cs29HbdWD7CDEhcQYC-z9f3YSYwaZPmOPzlK3A>
X-ME-Received: <xmr:Tf6NaWKypdPi4yqtd-uK0EANWwCpkZXygvukWEMmPyPr3ZQ7ig9yZ1BArns0WnQmwtpOEKCydH1-3nb2TIOT_sPwgEMPYjjRu1g>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdehkeegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihig
    rdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojh
    gvtghtrdhorhhgpdhrtghpthhtohepihhnthgvlhdqgigvsehlihhsthhsrdhfrhgvvggu
    vghskhhtohhprdhorhhg
X-ME-Proxy: <xmx:Tf6NaeSAunQ_o63VFXOaoOPYYvFtNpM5EJ8YSH64wXf2AmsxhZSWdA>
    <xmx:Tf6NaerCODtp3qkPOrUNno-XAc81ETB9ZdjpHqWrbG1iCUM4GB5kYQ>
    <xmx:Tf6NaTr6LzU_cLIkcgdKqmUgte3D0y8aFdHl7yH3WTtFQZPRUI6MaA>
    <xmx:Tf6NaYO0nyeeGlCk_hhSh17HNhp8l4FVQEZEGiiuTKahF_2rcBmZmg>
    <xmx:Tf6NaV1O8CsYsr0XQSWu0wZ-KPmwxdk-3KrIPKI5jgbWtiD6NrtbmKOI>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 12 Feb 2026 17:22:34 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aY3-Shto7px4M1RK@mail-itl>
References: <aYtznP_tT6xNPwf-@mail-itl>
 <aY3ttvtxGCPTNgsj@Mac.lan>
 <aY3yqOTn9EQfO4rF@mail-itl>
 <aY387XuhCEZ0JNTN@Mac.lan>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="jRRBc1ZgOtYQSbU+"
Content-Disposition: inline
In-Reply-To: <aY387XuhCEZ0JNTN@Mac.lan>


--jRRBc1ZgOtYQSbU+
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 12 Feb 2026 17:22:34 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19

On Thu, Feb 12, 2026 at 05:16:45PM +0100, Roger Pau Monn=C3=A9 wrote:
> On Thu, Feb 12, 2026 at 04:32:56PM +0100, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monn=C3=A9 wrote:
> > > On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-G=C3=B3r=
ecki wrote:
> > > > Hi,
> > > >=20
> > > > Recently I started testing compatibility with Intel Lunar Lake. Thi=
s is
> > > > the first one that uses "xe" instead of "i915" Linux driver for iGP=
U.
> > > > I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 runn=
ing
> > > > Linux 6.17.9 in this test.
> > >=20
> > > Not sure it's going to help a lot, but does using a PVH dom0 make any
> > > difference?
> >=20
> > Yes, it makes a difference. I end up with black screen as soon as dom0
> > starts... And due to unrelated bug (in xhci console code?), I don't have
> > kernel messages :/
>=20
> Hm, that's ... very helpful.  We should fix the xhci stuff so we know
> what's going on there.  Is the xhci bug also PVH only, or PV is
> equally affected?

XHCI console works just fine with PV dom0. But I just noticed I had
older Xen binary there today, will re-test on the same 4.19.4 again. And
then will submit separate bug report (even if that's likely be me fixing
it anyway).

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmN/koACgkQ24/THMrX
1yx49wf+NBy2A+DagwA6RfHlLXBvuP5r2FQy2upo0kdOI6l/8Tr45/jVBb0i7QNj
UBqM2W+itJigC+a8e/2CsOZZOH8KzEB6zesumNG64EMvP8p4a64Y2x/yqRxj3/My
Hvuq27dKpCSoLNsKHDr+kuXPGni0TbZxA/Hp2+qjhzlMy9GhKhl4GmwtWyFVKWD3
k5X9TDN2G51ajwcGLDV100UqYqhg0VH1uWPNS4Z2OzZRahv0uWHyf1Xzm4P04lrP
yvQsgL7SEDCxr1H6hodnIblaERsyu3AhERIMqJ8jl7IeYOjDE2Xsd7hWGt65FZhI
Vim+as2uFZmL2+Lp9GIoIa8c85NeOQ==
=zQiG
-----END PGP SIGNATURE-----

--jRRBc1ZgOtYQSbU+--


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:35:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:35:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229571.1535503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZf0-0003c1-Bt; Thu, 12 Feb 2026 16:35:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229571.1535503; Thu, 12 Feb 2026 16:35:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZf0-0003bu-89; Thu, 12 Feb 2026 16:35:22 +0000
Received: by outflank-mailman (input) for mailman id 1229571;
 Thu, 12 Feb 2026 16:35: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=hp9h=AQ=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqZez-0003bo-UJ
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:35:21 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf511082-0830-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 17:35:16 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5356.namprd03.prod.outlook.com (2603:10b6:5:22b::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Thu, 12 Feb
 2026 16:35:09 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Thu, 12 Feb 2026
 16:35: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>
X-Inumbo-ID: cf511082-0830-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CFOu+HqZ7yrkf7amgGWQCYsMe/3IbLOkn8sVoiGxSlH4nqDCfl2aCZoKCSjmbulso7kp0+2BrUItBnA51gxTGesTMTm+njVJgvsp09cRDSJSnC9YRy/F/ou9N+QYg6/hLE0E16cjlrYDyqkdiJiZ8PuxK5a5ZhAw4fHH+gipEhbo0nRW8hDlITaGDtBTgzKtaIpQbmgL21B4BhZ9YazAWELZcm6fwV8bo1Fuc28/oOwv1fz9MQRl6g/Wpy4QPzI21aEguJV03L37hPOSsam0bKTnDBGbEksjHf5bnsTR/JTUmxwPJim+QT7YL1sleLXscdP+k3Dh9Ha4MAj54/NRJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dCo101kDg7QTbWvKuNiizEsZ79yuIBWy+2mrLikWKIA=;
 b=WGJX6y02yx0sAcQhWEltjMK1QJfvxEvd8+8ClbUT5t3RGNdm9FJ/ikiD2k/9XAhN30GZ5Y6FblbX59Wdu3WpJZzsZLLG94Wn8skadr+A4oEiktpWf8iDPXHvclOU5qBgaL25ggTYqkAwaoNtMSVdhvHbF6y2OjHh5E1xo8yfmV+Xw8xhQlUGRu3/QGihS/1RaZk/cfxfoUoXTwqZ4zAdFAEgfqjacT8sv6TH3GEX3vgTKprzjLP5eOZ58rD13zlS5FbHt3IYPmKCISQax9L8eQ7+p3+jJKuzyRRi9fXPokm1l5nkI8kYKH9yCnsjf9h7q0a/3cnjK+gSIMPz1ESegQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dCo101kDg7QTbWvKuNiizEsZ79yuIBWy+2mrLikWKIA=;
 b=RIGLhmljapDUdmPhRGGmaxkwfCd/AHzr5w/M6bVhMTgcjzfgGcDr3OTiVJZtSe9KYxZI4vjTtVFegW+Jq/dwxrbkLwHw0xZorSd4qwTkT0bquxjjL9CnnHUIk4md/uFkX+4YWZ9cIWMQ9E1CzDajJM3ggtUM4wHTFUKYsXOQ9NQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Thu, 12 Feb 2026 17:35:05 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aY4BOQxRatBcNCKD@Mac.lan>
References: <aYtznP_tT6xNPwf-@mail-itl>
 <aY3ttvtxGCPTNgsj@Mac.lan>
 <aY3yqOTn9EQfO4rF@mail-itl>
 <aY387XuhCEZ0JNTN@Mac.lan>
 <aY3-Shto7px4M1RK@mail-itl>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aY3-Shto7px4M1RK@mail-itl>
X-ClientProxiedBy: MR1P264CA0110.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM6PR03MB5356:EE_
X-MS-Office365-Filtering-Correlation-Id: be445fad-fa01-4265-9eb4-08de6a54afd0
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?alpkbGgyNFB0cnBBR25YVWprSHFVQU54Mk9RdExBWkIxSEM0WElmNUgwUzMy?=
 =?utf-8?B?VThCMFRSTFB6amoveXUyVnk2Sy9wVG93QjlRUERjUjFJZU02dXVlekZScDFC?=
 =?utf-8?B?M3duWXJCZXdxajF0Q1M1a1liclZCOXU0OGdZS1l2NDhyRWtRVThUemIrYWdu?=
 =?utf-8?B?bXN0V0hZdGJuVEFzK1BkUmUrNVNuK1pwWEwxWnRvMG1Ld0RBdytMVlBtdEhl?=
 =?utf-8?B?aDNIR29GMGhsSEdsN01WRVkvMU1EWmR6RkxVQlZiVFI1YW5Kbi9pNThmOWVH?=
 =?utf-8?B?ekthQWFydWwzOUk1NWlnYXlZbm5sYXQxVkcxdkJVUjlOVHA4R0VhUmVXL3FH?=
 =?utf-8?B?NEZUT2JNUHI5VUxpUVR3UU8wWUNxcElXS0hpK0RtSm9uTXJlSDAvNk9sODRL?=
 =?utf-8?B?d0UrVnNlNEZJa253K1hZZ0xMVk1ZU1dHdGxRVU1aZldwekdkamltdDlEMXFP?=
 =?utf-8?B?dkp2VEJNRmdZa3dqSG1tTnp5MHlLakFRNVVKYkFsc3VOM2dBQ0tvcVRQZlY1?=
 =?utf-8?B?MTYyMlp6VFB3MHVmM0RDRTVyYWpCQ0xTK3dhV0FXaytYSjdXaXhDL0VZZ3B6?=
 =?utf-8?B?bzc0MG1XVThOZCsyNmQ1VHVEVUUxOHdXeG1laUcrQ2xLcE4rckptNFpONkty?=
 =?utf-8?B?S3M1UzZzaEtVRmdwVlYzS1UreHAwWjZEOGtWNzg3TDNuS2ZPT2V5ZlphSFJK?=
 =?utf-8?B?QUxuRWVDWTRudFhJMUlyU0dFWUpJR2dyM1ArbjZkL0dLeG5tWi90bWVYYlor?=
 =?utf-8?B?Tk03Mk1MaUcyZFhwT1JUb2FiQjVmOEhSank0NzZvRXVPVXpGTW5tRFUzbjVa?=
 =?utf-8?B?Y2RZOU9VdVcrWG0xOXFnUllSR2FpcG9qNC8rSkVOcFVvN0dmTms1NVBHMGpL?=
 =?utf-8?B?REpzcmFkZjUzR2V0d2xlYldxdEg2NTIwdmt0TE8zVlBrbWZ5MnBUMEtvcU8r?=
 =?utf-8?B?a0FxelpQNG95N2tzU3daTURNZm9aSWE3d0c1QXJWR2tqSERZdCs3bUNmUk5K?=
 =?utf-8?B?ZWkvR1lMSmRGVHcxUTJ2ZEVhQ2d6NlBwbHhlRTRhd0UwUll0QkNNSFhMYXFJ?=
 =?utf-8?B?em44UUdoMXpteHN0Y0kyN3pGRms5a3lCTDlWNU1EUDdLbW10RWhhRnVqWFRL?=
 =?utf-8?B?MzFmaVZiWklOd2dqdE5XSEVxSGJLMVlRbUJqTGxZTUhrdUtyejk1dlE1NWZo?=
 =?utf-8?B?L3gxZTkyT0VMY1ZtNzVzQi9STU9hcStVaXNFajlSL2lsYlJzNlNOSzZER0JF?=
 =?utf-8?B?WThNY25XSnZDbU94N292TDZGS016cmsxY2pZcnJwbWlyVjdmTXVVa0hYelBD?=
 =?utf-8?B?NjVVU1VCd2NiaGIwdWo4Qm9UYzJia2FCYWFLTVVtdjZBZFFta3Exb3FtT3li?=
 =?utf-8?B?b2UyYVhsVTFlNGtraGUwOGlGcFVhK0hqOHZOM0tJeXFpYVhRaG5aZy9nMjVz?=
 =?utf-8?B?S1NzcWIwRitWaFNFWU1DZUdWRDNmR2pJc2kxKzdtcnZGaFh5eTlYUExQSCtv?=
 =?utf-8?B?Tmt6WmFIK1JZQ0wvbzVKWFhwTStSbmJMemhzM2ZGQWpvcytvTTBPclpJR3RI?=
 =?utf-8?B?dlJicUxxblhKeWpkVnJJS2wyMlpVUmk0cjd3QXdmWDBmSW93b0xwS2JHcVYz?=
 =?utf-8?B?YkZpYkRDLzZjOGtaajVQUXU5bWZhWFB4R0RsZERLUVpmejJFSWtWOERrdWVE?=
 =?utf-8?B?VVZmUGNaWWxhSEZXZVpWYklFcnMyNlN3ZktabXBqZ1RHSXY0Qy9vdVBjODBo?=
 =?utf-8?B?MjBTQkJTVms4Zms3b0lsQUExelA5NDRuelQ0VE1ETUthZHhZN2lhZUp2bVFu?=
 =?utf-8?B?cUJSZkdEcS9rdXlRT3VCU3pidDd3VkZoTDJHQVoyTTY4aWRsbjEyY1Rsalhw?=
 =?utf-8?B?a2xTbTZIeDhKM2lFWTA0NDNNOERoMHJiODFyV0hDcUtueG1IZjRTSHJBdWY3?=
 =?utf-8?B?cCsza05sYnk0RGlFZ3paSGNrTGFnSm1UcW5LMFFtLzc4U2lDYkNBd1NCYVIr?=
 =?utf-8?B?U3BiNTlxa3AvL254ZHcvYjFVbTd0Nm5jU1FsQllQS1VuUDV6N1BJWXJlazZ3?=
 =?utf-8?B?YTJhZHpMZW1DUnVFSnVYa3JpSmNCcjYyWjl5SG5sVDdYeGN0ZFFNMjZhQmlD?=
 =?utf-8?Q?1KpE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eWI0WnVNbW5YTDNIeGJ2UUdmQnlMMVMycjBBWDEwMlVORE92cWRJMXFOWlJN?=
 =?utf-8?B?TVI2RXJYUlI3WDJhU3I2RUNtc01VQXY1NlVBZ2MrK2k0MEY1N0ZxLy9Qd3BV?=
 =?utf-8?B?MGFxK0dQckFqaHZJNTJocTA2cFRFNlNWK2IwTm5EQ0F1UXMybnA5WjM5Nzkr?=
 =?utf-8?B?MEVydkhoZFpIdVNMc1k5VVRSOStwWGUrV2g5a2x2VGpSQXhKOS9MMkxVSDkv?=
 =?utf-8?B?bm90eHN4WUllOWtVQ0FKSUQ2K1VwU1RVVFZHaWk1U3ZldWIvVmczUzBHeEQ0?=
 =?utf-8?B?SzRacWV0Rm96RFkzSmJqMWp6bi9yRnBnbDM2RWRVdEoxYVk3QXArZ0RoWDIw?=
 =?utf-8?B?VmNsZm1hTSsyZzltT2NLcUZZMnRxc0NOZk1BbnZZS05PODVFZnlqYm1XRUhY?=
 =?utf-8?B?d2d3dzNCSk9udlAwQ0UzdVZ6WEZLUjhYOWVacXVYMzd6YzVOZHJmdEY0MWtW?=
 =?utf-8?B?WkVOY25yVjd6VHdOeEJaV1V1N2ZrZG1sZ1c0K2w1eS9JK2taMEM2djhBMHhR?=
 =?utf-8?B?c1pZdEdra09yUnBmb2VQaUs3OUxrbUxzekYwZ2psUFpnY2k3ZFQ5WFVUZGFu?=
 =?utf-8?B?NlhBMG5OcGw2V2tjaXV5QzR5bXk2WTlXbG8reDNWRDJUcTU5cTdIS3NReWNC?=
 =?utf-8?B?bWJrMmR2OFV1eDR2bDhOdG9FSmdIOHA1aVJBRURrNk1jOUJKY21ZY0JrZmpX?=
 =?utf-8?B?bjdTZkJrK1dMNU1obXM1Zm5tSnk5SGJsK2RQZURjZkpodk42cUVQWWNUU3JY?=
 =?utf-8?B?WHZSV2UwNDZFN0JrMHdRcmNiVVJXTnhJeGUrWk5VNys4ZzBkd0RmaGdNclov?=
 =?utf-8?B?SXRpaTJWdmx0U0NYQ3pOaHRnL2NhZy8zQyt0K2c3b3l3cjdyQ2x6STJ1S1VL?=
 =?utf-8?B?anNxN01LQmZMTVpYNDl5dFI1cUpacTN0dlBNbDN5ZzlvR2RBNHRZaUlMWnRq?=
 =?utf-8?B?b1A3ZFNnL2E5MzhXQnZYU0IzdlgvbWt5aEsrSFhrOEUzZDMrd2lKOXhlZFc0?=
 =?utf-8?B?QlhrMUtsRUFpeEhFYjlTeWpxYXZIellaelk4K0xXVFhHYS96YUUvVEJJK3ZO?=
 =?utf-8?B?RDhqa1hCSVFpV2k4amdzc0o2V3YvVUlxK3YveEJYK1RveEUwSHZZS2FvY1VZ?=
 =?utf-8?B?NVR4TnhCK0NnVTJxTTBLOU95b0JmdFMyc0U0WXYreTR3VURBQmFEUHZ5TzVJ?=
 =?utf-8?B?T01wOUo0ZGxEUC9pNkZ1c2FUMlNGczZvSkR0Z3FPZ0g0Nk94cXR5QTRIL3pE?=
 =?utf-8?B?eUhENFJmTlVDdzlJOFBmQklIRnRpQTNsMzNEaFRzZ1libUtCblBqR2NjSkU1?=
 =?utf-8?B?UzZPdDRldWI5VDRyblE4eWN5UEl3MjllWnU3SFQ5ZXA1ZTN1UmVyUStlMmM2?=
 =?utf-8?B?ZXEvZFB3VFlwekNobjcxUFR3ZHAyQm9adjM3YVJ3ckNSMEpSMVExSm5IK3pY?=
 =?utf-8?B?Y20zeXRnN1ZBS1VaRU1kTkRVUEZMa2dGSzNIbjdNUWVUaWpjL1NRZUVaVnhx?=
 =?utf-8?B?ZGkrQ2pnM1UzU2JVNkwxRnhuZTQ1YXIxdFliTCt4ZDhWa2hWMFRORDB6MUEv?=
 =?utf-8?B?SUlkMGFDVlpsbGxyUjlqYzJESTFkSnljcExhTFc2a0wvNi8xZlZCeGdkTTZn?=
 =?utf-8?B?NHRUeEdtY2xJRjBRMVJ2bVJYdWp5aWRnOWp6VjJCZTZBN2ZsMm83clNEMnRX?=
 =?utf-8?B?RXJUT1JkcS9tTU9VdkxMNGttc2hXaWpJQi9IcHU0QjVsU09ZY00xaVBXRFd1?=
 =?utf-8?B?VExFK3d6VVdwRlpoNnRaSXZ2emx6aDh5WnJONENuRE9iZVdZWTBLZW5QUmlR?=
 =?utf-8?B?UG9YbFRpMVR4ZHB2RDVxd2dLb1I4ZlpCcUI4ZmJwUkZNQjgxVWpRYjl4VzQ3?=
 =?utf-8?B?dHZDWW9tT3FvZkVicm1zRmpWbWV1UVNUS09PbVhRa283aEROam93akFNWk51?=
 =?utf-8?B?d0RJTTdzc29OMGRUZEh0aVMxa2ZUNkRMU0h5bDJYSVJ0Q3pkTkVVcG5jVWJn?=
 =?utf-8?B?MlRCd2N6bEM3OTZCaEZXb1J1ZklSeStJNVY1LzBwNmJGU0Jrd1JuWmFjTWtH?=
 =?utf-8?B?c0hwckFkbEkyTzU5WEZmLzFzeW9Da05oUVhxaHVNZ0JLV2JicjRMZkxzTGZr?=
 =?utf-8?B?dllnMWwvUHBPTDhHZ015QlhZWWxBUjh2QXczdUVsVGxzamJxRU1DeXljbnBo?=
 =?utf-8?B?RVJYSnBGblN4ck9zOGNidHdHOWxLOGJzYm5Vd2U3MlQ3ZEhqUStFKzArU2Vu?=
 =?utf-8?B?Q21zR2RNKzJaQ2cxN3ViOTg5NzUxd1piM3ZtWm5NSUp2NFMvTWlUcHJ4UW1h?=
 =?utf-8?B?dGN3dk1QVThFZ29GVEVtc3JzVzVKbXBTY0d3UjNxQ0RFMkN2OEp4Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: be445fad-fa01-4265-9eb4-08de6a54afd0
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 16:35:09.5261
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SE5S/eoFZcuUK1KaW+bp4CwXCr9v0RLMaVVvRLuTaufnF0WkG//xOYOjxnpBGWN3UPTqgDnUm0B6DfL+wx8Fyw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5356

On Thu, Feb 12, 2026 at 05:22:34PM +0100, Marek Marczykowski-Górecki wrote:
> On Thu, Feb 12, 2026 at 05:16:45PM +0100, Roger Pau Monné wrote:
> > On Thu, Feb 12, 2026 at 04:32:56PM +0100, Marek Marczykowski-Górecki wrote:
> > > On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monné wrote:
> > > > On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-Górecki wrote:
> > > > > Hi,
> > > > > 
> > > > > Recently I started testing compatibility with Intel Lunar Lake. This is
> > > > > the first one that uses "xe" instead of "i915" Linux driver for iGPU.
> > > > > I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
> > > > > Linux 6.17.9 in this test.
> > > > 
> > > > Not sure it's going to help a lot, but does using a PVH dom0 make any
> > > > difference?
> > > 
> > > Yes, it makes a difference. I end up with black screen as soon as dom0
> > > starts... And due to unrelated bug (in xhci console code?), I don't have
> > > kernel messages :/
> > 
> > Hm, that's ... very helpful.  We should fix the xhci stuff so we know
> > what's going on there.  Is the xhci bug also PVH only, or PV is
> > equally affected?
> 
> XHCI console works just fine with PV dom0. But I just noticed I had
> older Xen binary there today, will re-test on the same 4.19.4 again. And
> then will submit separate bug report (even if that's likely be me fixing
> it anyway).

OK, could you also post whatever output you get when using a PVH dom0
with `sync_console` added to the Xen command line?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:39:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:39:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229583.1535512 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZiq-0004cd-UM; Thu, 12 Feb 2026 16:39:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229583.1535512; Thu, 12 Feb 2026 16: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 1vqZiq-0004cW-Rk; Thu, 12 Feb 2026 16:39:20 +0000
Received: by outflank-mailman (input) for mailman id 1229583;
 Thu, 12 Feb 2026 16:39: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=x+We=AQ=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqZip-0004cQ-L2
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:39:19 +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 5fff04d0-0831-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 17:39:18 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4805ef35864so330155e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:39:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dd0e15bsm108286995e9.13.2026.02.12.08.39.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 08:39:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fff04d0-0831-11f1-b162-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770914358; x=1771519158; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/ZWqf1vFlUsMu2hMwJo3KsQQAIdjpGWh1C3SAdxuFZo=;
        b=RJi9FMG6UpV7PWPV1odjl83UIjjrwBWlAzQKUFNwdnGkF4Rxf8IYwrm+MmYQ9CVV5z
         tTfp5BGtZtCW6OKqnygWORyyYjFkLFUMQKNUKgbl6dyqf5ZLf6hlyRER+7DeSS6jRzVT
         hjY5e5QVZXiwfkBG8G5jjsl3C4K2pLmdBQECmqa9Ga7Zf6VK9/w2EWm/YJY58sEmt1ls
         yBFx6SD+VaoLaPsu9lfc1B3k2fummy6oamTYUZ0NmFd1G7o1l7dQwa3T8Lu4QHS/6YP0
         CqecOt5lnR+dstrvJC5KoRRwPoD14Kh20GfFQQXWDPmNV7LuiiRDcnH1pNYURDzK/dpE
         sQ4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770914358; x=1771519158;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/ZWqf1vFlUsMu2hMwJo3KsQQAIdjpGWh1C3SAdxuFZo=;
        b=Wb7tRl5zDBrJMyoa2vlZaGSKiRjxQGQgqSquAUJ1Ge8ISahuONH6YcXOkgwlWGwV7n
         d0hDDnxM6yDdpzprp9h+JCUQO28nY/SJYtZEEPZZ6p0FxrIcnwDJ1HyhWDzqGdW3QXhU
         XvX4Swpq+KNP5t9dc3MPoomK+VMKMBgX52WK4iFPxn+2Kv8g+u3Cw7AYzdYleiZi6k00
         MCA2xSUw1EG9P07VEK7tnJl9rt6W3+ow9Qp5rAEbEq6ROlxeKQI8Z/k3I8qwbkogcTFt
         n4TpvhrZLl/ayyGxqaBuWLacwjkrHBrAbdMHNfkaFXyRJh5Ric6jXT2bXPuwwhp0V6d5
         pBng==
X-Forwarded-Encrypted: i=1; AJvYcCXb1A8+x0HLb8PmC5bA7KBAgeaqfW95ggmRvbvHxQBjq/azq6BuxBpW6Fu7GJIs8GMx+qlQb8etNw4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzj6PHB4SJZpAhsmkhp1j4oq5JifOzHkDhB1FPVtNeFBXsLXyEp
	j0tWaBNb2c6OAuPXK/K2uTyeMRQRwu9PxcVuHtghCIGYigusa1heSTAjiH5UPU3eNA==
X-Gm-Gg: AZuq6aIL/7o6kl2dNDwA9JbdYYtlf1xo4KWDHZOglY+SYWKnvXpJ6ROBMNAdQ/8fWAx
	08YLijswJjQRTy1tqxVQzQ9EBICFRVB0ASaHkTMSIkvFBuGfy40CMcHyogHMdeYBCRGRFchnvF0
	ZIIsuBcACRx7VrJ9hRWXTEmBDdZrtXZWG47AF3ClMmjlumO9am2841ta+KSlBODdJUl7/5b4DeZ
	Lj/72Gla8t9lalMkwnHPleE1/yg9I2dJdE8bcz6T/X3J7acyjDMSkIst+9pJ4Ip6dyywtwYgosK
	U+OYGLePGEfE9XYKUlJuJ+7l45nym4Umomh5dtxrp1nbRkXVkE0+k4RhEWSedxWExM57RabJgcO
	zuGQ6UGgRcqs4GSZaBKAydgzOu6Vjkz30TZofw8JHo+lEQDeBTKiqcsGtNZoAl+tTBSS/F6xORE
	B7Urs8IADCr/KfQ2bCqqXOUyYQnz44KnTrFKm6PVhuu8EdQPnW0LpNzdHW89kl9ZcDJ1tIoqPbP
	Owmqp9rSgOfhfI=
X-Received: by 2002:a05:600c:83c8:b0:47e:f481:24b7 with SMTP id 5b1f17b1804b1-4836570e26bmr49282605e9.17.1770914357729;
        Thu, 12 Feb 2026 08:39:17 -0800 (PST)
Message-ID: <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
Date: Thu, 12 Feb 2026 17:39:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.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: <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 17:21, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -44,6 +44,9 @@
>  #define P2M_LEVEL_MASK(p2m, lvl) \
>      (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
>  
> +/* Holds the bit size of IPAs in p2m tables */
> +extern unsigned int p2m_ipa_bits;

Hmm, I can spot a declaration and ...

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -51,6 +51,12 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
>      .name = "Bare",
>  };
>  
> +/*
> + * Set to the maximum configured support for IPA bits, so the number of IPA bits can be
> + * restricted by external entity (e.g. IOMMU).
> + */
> +unsigned int __read_mostly p2m_ipa_bits = PADDR_BITS;

... a definition, but neither a use nor a place where the variable would
be set. Hmm, yes, I see common/device-tree/domain-build.c uses it. Then
the following questions arise:
- What does "ipa" stand for? Is this a term sensible in RISC-V context at
  all? Judging from the comment at the decl, isn't it PPN width (plus
  PAGE_SHIFT) that it describes?
- With there not being anyone writing to the variable, why is it not
  const (or even a #define), or at the very least __ro_after_init?
And no, "Arm has it like this" doesn't count as an answer. Considering
all the review comments you've got so far you should know by now that you
shouldn't copy things blindly.

> --- a/xen/include/public/arch-riscv.h
> +++ b/xen/include/public/arch-riscv.h
> @@ -50,6 +50,14 @@ typedef uint64_t xen_ulong_t;
>  
>  #if defined(__XEN__) || defined(__XEN_TOOLS__)
>  
> +#define GUEST_RAM_BANKS   1
> +
> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
> +
> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }

Hmm, does RISC-V really want to go with compile-time constants here? And
if so, why would guests be limited to just 2 Gb? That may more efficiently
be RV32 guests then, with perhaps just an RV32 hypervisor.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 16:49:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 16:49:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229596.1535521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZt3-0006an-Rq; Thu, 12 Feb 2026 16:49:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229596.1535521; Thu, 12 Feb 2026 16:49:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqZt3-0006ag-P8; Thu, 12 Feb 2026 16:49:53 +0000
Received: by outflank-mailman (input) for mailman id 1229596;
 Thu, 12 Feb 2026 16:49: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=XV9D=AQ=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqZt2-0006aa-7n
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 16:49:52 +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 d82e42ab-0832-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 17:49:49 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-43621bf67ceso48102f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 08:49:49 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43783dfc54csm12599378f8f.25.2026.02.12.08.49.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 08:49:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d82e42ab-0832-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770914989; x=1771519789; 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=byoUb3vfnpNgaaIhdP9vNrdOMnRvfJw//ARcxtXrocI=;
        b=e7h6tDq2Va6ShU3j+bYeVMHfHY8CsxCV8HVkspquMjJOMnJqqdRNQ4OeHNcwpuVKVf
         0GGwFiDoFTfJqZSREOtWH/nAr0M92dmPh5Bp3P0CawlYREBCR99JPsMrvOKxJQpsxKk3
         M84LJN1ySvZWGp1SANvEh17oPtsxa2oB4HNGCGnlVeZkaPAioDxNZir502UsKg9Y684z
         1TFkpxryS6kIB5550Ib8aP3vVvm2p1gUdv6rGiPQjSFRVeYJnpfmZEpWdLHh01+h0DBa
         rO27VSuP/4ftcmuIkp8tIJzeUpCiaAO1DRiYs8abyhbNcGybdEUfTMHQzi5UmOUBRh5n
         qXdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770914989; x=1771519789;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=byoUb3vfnpNgaaIhdP9vNrdOMnRvfJw//ARcxtXrocI=;
        b=WKcgD7X8eUkIqAzTU1dCtPFRavKHicwvX62sQGOtrAZtIgfmopqU2cKIpCxW8V1rSK
         3uE8VxssS5ptPfu4mzs32p8fzxwYBI5gYVtAWEbf8wjLIZWF3b+50oFw53LQWZoA4EIJ
         I9oDgOBYJRvlCRW90NG/lnTm171qHJivl+ZWRDyGX8OATCGNPO0h90IxOBgXyNYRHAE2
         tZjBoiDyIATjqMqqq0wOPnCcXbbQK+WMjWofhRMP+5/akInOSVlnII76rfFFLo1++lpU
         0xcSkVCot2gTfjqvHlA3wdI5E9KOqFcH3VPw2JtzB/lh3kSlv4cQ3q3R2c/iuvMSVVBU
         AZ2g==
X-Forwarded-Encrypted: i=1; AJvYcCU3yRsuLuulTI6W7F5/iQ5oritG30TpA93jWSi2/VjSqhzwIm2tiPUG6jIU7JobYt2b42VngR/rHJs=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz436H1aQ4BMJd0D6wT+C2tGUlMJTXaFQQg5ulZSj5C6DDhsV4g
	p3mU3l5cKTFSu14wqgWL4FLmobc4BQaRWc6o+lvN/IBumsuVGMG+w81P
X-Gm-Gg: AZuq6aLlmmKV5UkKGRigvf/UdLqOUCwb5RsMK8wm3IIpfsaMItP6ShmAuj6eeooTOpW
	07IBfwmCSIMtLVe3OsApNK7FTn+03kfJZMOaMN3tII7E45bRlXmdDl2x8PCx+hYYM77D82v7Ldr
	sMI/yaoqvRcse/Kj6R8GMpw+w1gJTn93NghYmKzSnlTLpkipiIRjQrhBbkM1vTc2P0F88xthji6
	15oVUP2RzLG9/N6lyeackQEvuQ+Hk5vexpio+SX0yHAcpsSznDAxMI77DrCDgNKTbx0suFMFdyP
	dXeA0yTGFpUtuzT8KhsyMEUzqM18YtlQmRqEZXZaliLIbuvRews/1ZgR9ofUaF7K10s0x3KfO2V
	ICk1mhHkw0wlbFBq3IoSkZWto1IbF2lcYbV92jMDMeZH1cmSUypNcqAIcjazsHESjysRGGXsnRQ
	3Obxb28ppwqg5WTaN1qHFMAwsFnRYFdSKO6gbCtOi+euQW5erJ6972QaaPojmk70+vY+wWvsB58
	Po=
X-Received: by 2002:a05:6000:18a4:b0:435:e448:2ce5 with SMTP id ffacd0b85a97d-4378ac9c6efmr6699890f8f.48.1770914988774;
        Thu, 12 Feb 2026 08:49:48 -0800 (PST)
Message-ID: <4ff03584-d0ce-4740-b10f-5b009aaaebca@gmail.com>
Date: Thu, 12 Feb 2026 17:49:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/2] xen/riscv: add p2m context switch handling for
 VSATP and HGATP
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770739000.git.oleksii.kurochko@gmail.com>
 <0e6f450d64ce17f504d73c3429c8e8a9ced0cf06.1770739000.git.oleksii.kurochko@gmail.com>
 <7cec918c-bd58-4013-9ec2-d43ff7afcd7c@suse.com>
 <099768df-ec44-454f-8a9e-4897d81309f9@gmail.com>
 <ba48bef0-551e-4ea7-8d9a-fb54b9b85da6@suse.com>
 <4f9953ae-8722-4971-a214-6c40f7f5859a@gmail.com>
 <45e8aa5a-842b-49d0-8744-71295cf0a0b6@suse.com>
 <909969c1-1d75-4f45-a96b-54c1c28839df@gmail.com>
 <67e6cdb3-33d1-44aa-94ea-8e26def9f8e8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <67e6cdb3-33d1-44aa-94ea-8e26def9f8e8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/12/26 5:20 PM, Jan Beulich wrote:
> On 12.02.2026 17:16, Oleksii Kurochko wrote:
>> On 2/12/26 4:42 PM, Jan Beulich wrote:
>>> On 12.02.2026 15:47, Oleksii Kurochko wrote:
>>>> On 2/12/26 1:56 PM, Jan Beulich wrote:
>>>>> On 12.02.2026 12:57, Oleksii Kurochko wrote:
>>>>>> On 2/12/26 11:16 AM, Jan Beulich wrote:
>>>>>>> On 10.02.2026 17:36, Oleksii Kurochko wrote:
>>>>>>>> --- a/xen/arch/riscv/p2m.c
>>>>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>>>>> @@ -1434,3 +1434,126 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>>>>>>      
>>>>>>>>          return get_page(page, p2m->domain) ? page : NULL;
>>>>>>>>      }
>>>>>>>> +
>>>>>>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>>>>>>> +{
>>>>>>>> +    if ( is_idle_vcpu(p) )
>>>>>>>> +        return;
>>>>>>>> +
>>>>>>>> +    /*
>>>>>>>> +     * 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 what will be done in
>>>>>>>> +     * p2m_handle_vmenter().
>>>>>>>> +     */
>>>>>>>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>>>>>>>> +
>>>>>>>> +    /*
>>>>>>>> +     * Nothing to do with HGATP as it is constructed each time when
>>>>>>>> +     * p2m_handle_vmenter() is called.
>>>>>>>> +     */
>>>>>>>> +}
>>>>>>>> +
>>>>>>>> +void p2m_ctxt_switch_to(struct vcpu *n)
>>>>>>>> +{
>>>>>>>> +    if ( is_idle_vcpu(n) )
>>>>>>>> +        return;
>>>>>>>> +
>>>>>>>> +    n->domain->arch.p2m.is_ctxt_switch_finished = false;
>>>>>>> How can the context switch of a vCPU affect domain-wide state?
>>>>>> It is wrong to have is_ctxt_switch_finished per domain, it should be
>>>>>> vCPU field.
>>>>>>
>>>>>>>> +    /*
>>>>>>>> +     * Nothing to do with HGATP or VSATP, they will be set in
>>>>>>>> +     * p2_handle_vmenter()
>>>>>>>> +     */
>>>>>>> Why can this not be done here?
>>>>>> As VMID should be calculated on VM enter.
>>>>> And I didn't suggest to calculate a new one here.
>>>>>
>>>>>> We can update HGATP and VSATP here with VMID stored before in p2m_ctxt_switch_from(),
>>>>>> but then it is possible when vmid_handle_vmenter() will be called before VM entry
>>>>>> VMID could be changed and it will be needed again to update HGATP and VSATP what
>>>>>> will lead to flushing of VS TLB twice (one in p2m_ctxt_switch_to() and another one
>>>>>> in p2m_handle_vmenter()).
>>>>> Is this a concern resulting from particular logic you expect to appear
>>>>> in the window between context switch and entering the guest, or is this
>>>>> merely an abstract concern?
>>>> If we will have VS TLB flush unconditionally in VM entry then it is merely an
>>>> abstract concern.
>>> Why would we want to flush unconditionally?
>> To guarantee that a guest sees a clean switch with no possibilities of
>> using a stale entry. For example, if VMID changed between context switch
>> and VM entry we want to have flush, but considering your reply here ...
>>
>>>> Otherwise, considering that speculation could happen between
>>>> context switch and VM entry what could lead to that some entries were added to
>>>> VS TLB flush with old VMID in the case if then in VM entry vCPU might receive new
>>>> VMID.
>>> I don't understand: Context switch leaves vsatp.MODE at zero. Nothing can end
>>> up in the VS TLB in that case, aiui
>> ... we just have different implementation in mind for p2m_ctxt_switch_to().
>>
>> I thought that your suggestion is to set both HGATP and VSATP in p2m_ctx_switch_to()
>> while calculate VMID in p2m_handle_vmenter() (with potential update of HGATP and VSATP
>> if needed) and with such approach VSATP won't be zero after p2m_ctx_switch_to() and
>> speculation could happen between context switch and VM entry.
>>
>> So just to clarify your expectations are:
> So just to clarify from my side that I don't have any expectations; I
> merely want to suggest to start with as simple a model as possible,
> for its correctness to be easy to prove.

Got you. Then it seems like the easiest approach is to follow what is in this
patch until ...

>> 1. p2m_ctxt_switch_from(p):
>>         p.vsatp = VSATP
>>         VSATP = 0
>>
>> 2. p2m_ctxt_swith_to(n):
>>         HGATP = construct_hgatp(...)
>>
>> 3. p2m_handle_vmenter(n):
>>         update VMID if necessary
>>         
>>         recalculate HGATP if necessary
>>         
>>         (c) update VSATP with n.VSATP if we here from context switch
>>             or with hardware VSATP if it wasn't context switch.
>>          
>>         do necessary flushes
>>
>> And at step (c) we can't base on that if VSATP is zero or not to understand that
>> it is from context switch as it could that guest at the moment of trap (lets say
>> some SBI call was requested by guest and Xen just handles it and return back
>> to guest) also had VSTAP = 0.
>> So it is needed to distinguish if context switch happened or not to properly deal
>> with VSATP (and it was one of the reson to have introduced in this patch
>> is_ctxt_switch_finished).

... we could find a better way to detect if context switch happened before entering
VM entry path or not without introduction of its ugly bool variable
is_ctxt_switch_finished as I mentioned above it seems to me it is not enough just to
check if VSATP is zero or not as guest could had VSATP equal to 0 before trap.

That is why the approach suggested earlier:
   For example, assuming CSR
   reads aren't overly expensive, it looks to me as if during VM entry
   - vsatp only needs writing when vsatp.MODE is zero,
   - hgatp only needs writing when vsatp.MODE is zero or when the VMID needs
     updating.

as it isn't clear with what should be updated vsatp (vsatp only needs writing when vsatp.MODE is zero)
with what it was written before we were in a guest or with what ve saved in vcpu->arch.vsatp during
context switch.

Am I missing something obvious?

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 17:38:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 17:38:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229680.1535532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqadf-0004m6-Bd; Thu, 12 Feb 2026 17:38:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229680.1535532; Thu, 12 Feb 2026 17: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 1vqadf-0004lz-8i; Thu, 12 Feb 2026 17:38:03 +0000
Received: by outflank-mailman (input) for mailman id 1229680;
 Thu, 12 Feb 2026 17: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=jZje=AQ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vqadd-0004lt-Jj
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 17:38:01 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 926097dc-0839-11f1-b162-2bf370ae4941;
 Thu, 12 Feb 2026 18:37:59 +0100 (CET)
Received: from SN6PR04CA0100.namprd04.prod.outlook.com (2603:10b6:805:f2::41)
 by SJ2PR12MB9113.namprd12.prod.outlook.com (2603:10b6:a03:560::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Thu, 12 Feb
 2026 17:37:37 +0000
Received: from SA2PEPF00001505.namprd04.prod.outlook.com
 (2603:10b6:805:f2:cafe::89) by SN6PR04CA0100.outlook.office365.com
 (2603:10b6:805:f2::41) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Thu,
 12 Feb 2026 17:37:36 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF00001505.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 17:37:36 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 11:37:36 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 11:37:35 -0600
Received: from [10.71.192.120] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 12 Feb 2026 11:37:34 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 926097dc-0839-11f1-b162-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YCoBXoRzwZzxL2CLKKwGuFmOamj8H7L1dqvKe3XOG+T/g+juqk+8qUo1YdAGydZ/nbEpmj1DWxcMUVUK89aZSL1+9iTlYiI9frUVMaOrt6NrF1wIr+NUirwgAO/axjfTO2rE0nntftbl4kZxpXTpgWctYcukL4SxUD+cCOXAAxk8E8AR9GEiB9ZCJee9gU7k/IJ2i0mQ5Cm23VqO+UXLqIInJ4oIwLhMLtkjSNB/tNu86rklJlKLK8JNFaDrY0ObGDPYUqNF79CHoa08jc/xgbKl2+C3Uv8waZH7cfn3bv59hUW1/UuprTjWcDGChKovTavwj/qQsv7mQSgRtvIR1w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8t6XMCdTR5iZ3qYPmxu3R/vEW9YqOPPKcBp/9qLY1nQ=;
 b=lk93FnIebtYjJOlzFG8rfSELI8qc8SwWOLwydCQF0hYKxdfVg1up75aZG6sV1BvR+3VhP4eSC4q8Y/utnoiPpcCWpeB7mhxuXeBtyFmsPprtksglVix7VaV7hLQPkbRi09fE0jC7osmxn489X9mG+Y2fWuPIkHJNzqEimNwihtcMUWB8Xl9SAXaOv6FfPw9yy7fVZNGtmjYj99fjZ10lTKR+Zj2rMnep6HqTP1H0Z0tHBG6CrigVdjpcFnAxXQnsnvb/FTDUGrqd+zqWm1idBFj2GXMDA/PnA40d7sI2DZrwhKZJ0kzWqBtVBfEIOTkTiPh0Fc+UFoNhWDWQ9ydUzQ==
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=8t6XMCdTR5iZ3qYPmxu3R/vEW9YqOPPKcBp/9qLY1nQ=;
 b=v/6P45kmTqcal6+yNtcZR06vIffq28TopY85uAtDOLyMQk+WIzMHnYrTHCDEp9y7PVhNaP1EDeEOxg+KjQD0gapmW81iqIvqYSqPMTqh0VpGrprW/u+wlrHXQW7zJVL04yUhllo1LitRSY5/VWrgeNa2WQjPjO89A2Y+rLpOmgM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <49fd6b8c-5a6e-4914-a3e4-80ede233ac93@amd.com>
Date: Thu, 12 Feb 2026 17:37:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] arm/mpu: implement setup_virt_paging for MPU system
To: Harry Ramsey <harry.ramsey@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>, "Wei Chen"
	<wei.chen@arm.com>, Hari Limaye <hari.limaye@arm.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-2-harry.ramsey@arm.com>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <20260206090155.68466-2-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00001505:EE_|SJ2PR12MB9113:EE_
X-MS-Office365-Filtering-Correlation-Id: 9e1b4cd6-94b9-4d51-2c79-08de6a5d697e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|7416014|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZWxhSDI2V3VxemlNK3VaWVZlWlVSNXFpNThZcnBPSDhDb0FvR2pQZEZKTUpI?=
 =?utf-8?B?OGU3UUpqR1FYZGJkbzY5OXZoMVBNMWs4ZzdvWkRSSTJ0eVJuNC9haEJNYTBl?=
 =?utf-8?B?UjlLVTVVT3FGZVhrb25reS8xbXk4czhITnFabmZLaFc2MGp2M0E1Uk83c3Bo?=
 =?utf-8?B?SEt3VldOcXlmZ2NkRmpMZDVlM1VKemdXNk44dWxOZUY1b1NZOWNQWE1NamJW?=
 =?utf-8?B?UVFtbDZob0lXWlJIVHFIcWtEcTdvdDdpUFdCcm4yVDR1a2Y1cko4a3grSDdt?=
 =?utf-8?B?UEJQVVBySmFhMXF0YnZQdVRMazJpT1dKZ3pLSnNqNm1ZVFFRUjhLcmdsdXNM?=
 =?utf-8?B?WlpRZVFtdE5IUjBCS29HVGpMZGh3bFFLdjA2ellLK3VGUm1QY1dzcStaenNt?=
 =?utf-8?B?VVVpS0x2VnlobHpRQ0FMMTlFWTN2NjB3b2Y3V3VoNE5uMHhxeW1QOHZmRG52?=
 =?utf-8?B?d0V2dEF4M3ovcXI0dU8zSCtQT0FybkQwMyt2MzlkQitoNno0WWZ3Z0ZGeWNa?=
 =?utf-8?B?b0FISTZPamZtR2hkT250WE5nR3ZFeEE5OEtCbFVWRVJZZnZtRzZHZDZuNHB5?=
 =?utf-8?B?MXIreTlyUG1VUGNCREYrZkVuQzB3a3hodk9CM1FSWldNam5MUU52SEtCOTJR?=
 =?utf-8?B?Y3J0SWJxdFcwWjB3azlQODFjTldpSjhXUk5mZjRNT2x1WDRUZlZOQ2FjVzBy?=
 =?utf-8?B?SkZGc0dxYmpFcTFkOHNPT1I0S05hOGt3RmtxZVFpMVFVT2ZMOTIyNWxKRWxp?=
 =?utf-8?B?UDhEeGtEbzlocXloeU9SWFQrNElIQ2RieTU0bE8vYi96TWN6cldMYTlwSVJ6?=
 =?utf-8?B?Vnk3dTRQaVFud0xWWm1DS3NWOVhPY3VVRlVVQU9Id3lDTlgvUXVMZ3BxVkdB?=
 =?utf-8?B?b2I2UUtOaElGYlI2WDlvRzNOSFJ6SmNSZWlYQ3VISEhGSDhJOUIwTjBkTzNt?=
 =?utf-8?B?dTh4c25BRHovRWk2TGJHcGJXMHdvVE95bWw5VWRwOVg1eVJlOThrdzdkUmd2?=
 =?utf-8?B?N05neUNVZm54ZXNtZU9jR3g0ZXU0NDRpd2NMRit0Q0JHdmFSWU1kc0VFOFRQ?=
 =?utf-8?B?NExnRUJkYklsL3dNRE1oUHFXeDVFbkpEOUU0b0pLRWtnWHFOanp5QVd5Q2Er?=
 =?utf-8?B?RHFmSnliUCs4WHliQm5pTTR2bjVQN3hWTUFsMWdPbTA3bmZqMmtydzhTa2Rw?=
 =?utf-8?B?TE1vUkNxYU5rZlh1L1M2am56ZlNWWXo1UFo0RjExVEJZZTN4S2dDTDNRVCta?=
 =?utf-8?B?RkowS2p3cCtmdmdSeUNoR29FY3lTQ1M3czRNaGs1aFM5TmxIK3RyckV4L3Vy?=
 =?utf-8?B?QVVPWFhrSnJDRVk3R1ZBMkgyZWtBV3JYdDNpa3N2eDlRVjNlTGpZeFlwcHdJ?=
 =?utf-8?B?M0dOM3k4ZjJoQ3lBeUFmZ3k3Uy9ia3IvV2pDSkNLaFlpR0dKK3liWkJlT0lG?=
 =?utf-8?B?dzl2SFpyZnlaVTh1NVN3TlJOTTdraldkWFh4OXFuSHppM2l4MnJ1M0swK0o0?=
 =?utf-8?B?eU9QUEVNYjlyYTZNNkFNWHFiZGNyWFJMcCttakNTWW10eXlycm5ySHFBcCtv?=
 =?utf-8?B?U05nQ1dpVkFIR2J2djd0ckpkTEd0YS9uVlVwZG9lUStQOWxrZ0dzQzJkdzYr?=
 =?utf-8?B?aFlmb0FaZWtUODFkdDBybmFWeVVVdkphNUM1VnM2RWd1NzF4bWRSVzFZb3VE?=
 =?utf-8?B?d2JmUVltWFVESytWeGVPSW9QaXNzRzkzLzI5cVJnd29Ydis3ck9LQjVOWUp1?=
 =?utf-8?B?OHFyT0ZBWUZuaXJ0aFhkRTVoWW1Cdnd2K3ZNaDUvK3BaUCtjVDA4YXp0Z2RS?=
 =?utf-8?B?Qnl5WW0vY2dxM2hhOXhhL0xuTU9KSWNkZW43SGVrTWJPM3F0S1R6TlFhMmt4?=
 =?utf-8?B?UlpYMHE4dWJMeFF6UEptWUJUY1JLdmx2SzZtYjdEa3FJU1lLWmVGRUk2a2ZJ?=
 =?utf-8?B?NG54LzU4bWlkM3QrclFHMTVIQmsrWkJ4eXptODBEMWQzOUtyMXdYekt0UDhy?=
 =?utf-8?B?Y00zQlNxdld3andZdEZId082d0VRMjRVUVlZL1JmdzVvM3VnSkdmTjg3V0do?=
 =?utf-8?B?aUJOaitNaXMzOG1US2F3dHhvZTNvSmJIN3c0eHlYb1YyVmxDVEliSVE1MitV?=
 =?utf-8?B?dmtyVTdhS280WTNMdUhZQzViOWRjQ3ZiUS9vTVdWZzFpV2dMS3BmQVNZVDhM?=
 =?utf-8?B?aFVEVW11b0lzMnA5UGprQWhVQVlGK3huazk3akpHYUVKZnJ6cWhHaVFXTlBV?=
 =?utf-8?B?OXZyMXdHYi81WTVuUmN1LzNXN1JRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(7416014)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QfTJAdHi8+M6pBWDCw3obvzUMO9N3d9w4QnCTfwqV80+42Cdt9Gh/WGg5wGLmISASV0SAwPWoJlmgdhsEMeLRJQlFxlgVr9ow4VictWUJxo6iTHZ1j2RQ7Iu3QB+KlGcgbzu89oJglmYUwXzfoe6A6c+gOuluPn3aa6iDO48/K6iPFlQz41ZW/J0ZWc/k9ib9TkcK/GsmqQpruG6S810aDICPUYEJsUITF8cE1Ps+8hD48rehCyw/atZtknoMDAgWK2hM3CWFZaNqMihKxr3bKFSNFX3NZGmomv+KMUL60b6iRuX/XWeD+BSQKjG/frdmtOOlL3DgGDrWukRTropEMdIkkpP3Vp9wr7NACff23XJ8XjFhdLlyspLKE0oEnTC0pmduKPBhwXrWxsEcWdi7k/7DBwNXl29vbqenf1vIFfjmmkipqmtXHJV/e+hs8rj
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 17:37:36.6814
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e1b4cd6-94b9-4d51-2c79-08de6a5d697e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001505.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9113

Hi Harry,

On 06/02/2026 09:01, Harry Ramsey wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
>
> For MMU system, setup_virt_paging is used to configure stage 2 address
> translation regime, like IPA bits, VMID allocator set up, etc.
> Some could be inherited in MPU system, like VMID allocator set up, etc.
>
> For MPU system, we could have the following memory translation regime:
> - PMSAv8-64 at both EL1/EL0 and EL2 (default)
> - VMSAv8-64 at EL1/EL0 and PMSAv8-64 at EL2 (enabled with device tree
>    proprty v8r_el1_msa)
>
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Wei Chen <wei.chen@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>   xen/arch/arm/arm64/mpu/p2m.c             | 67 +++++++++++++++++++++++-
>   xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
>   xen/arch/arm/include/asm/cpufeature.h    | 13 +++--
>   xen/arch/arm/include/asm/mpu/p2m.h       | 12 +++++
>   xen/arch/arm/include/asm/p2m.h           |  5 ++
>   xen/arch/arm/include/asm/processor.h     | 11 ++++
>   6 files changed, 108 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/arm/arm64/mpu/p2m.c b/xen/arch/arm/arm64/mpu/p2m.c
> index b6d8b2777b..da8f0553c1 100644
> --- a/xen/arch/arm/arm64/mpu/p2m.c
> +++ b/xen/arch/arm/arm64/mpu/p2m.c
> @@ -2,11 +2,76 @@
>   
>   #include <xen/bug.h>
>   #include <xen/init.h>
> +#include <xen/warning.h>
>   #include <asm/p2m.h>
>   
>   void __init setup_virt_paging(void)
>   {
> -    BUG_ON("unimplemented");
> +    uint64_t vtcr_el2 = READ_SYSREG(VTCR_EL2),

I think this register is redefined for R82 . See

https://developer.arm.com/documentation/102670/0301/AArch64-registers/AArch64-register-descriptions/AArch64-Generic-System-control-register-description/VTCR-EL2--Virtualization-Translation-Control-Register?lang=en . 
So

>   vstcr_el2 = READ_SYSREG(VSTCR_EL2);
> +
> +    /* PA size */
> +    const unsigned int pa_range_info[] = {32, 36, 40, 42, 44, 48, 52, 0,
> +                                          /* Invalid */};
> +
> +    /*
> +     * Restrict "p2m_ipa_bits" if needed. As P2M table is always configured
> +     * with IPA bits == PA bits, compare against "pabits".
> +     */
> +    if ( pa_range_info[system_cpuinfo.mm64.pa_range] < p2m_ipa_bits )
> +        p2m_ipa_bits = pa_range_info[system_cpuinfo.mm64.pa_range];
> +
> +    /*
> +     * Clear VTCR_EL2.NSA bit to configure non-secure stage 2 translation output
> +     * address space to access the Secure PA space as Armv8r only implements
> +     * secure state.
> +     */
> +    vtcr_el2 &= ~VTCR_NSA;

But the TRM says this

This bit behaves as 1 for all purposes other than reading back the value 
of the bit when the value of AArch64-VSTCR_EL2.SA is 1.

So shouldn't we keep it as 1.

> +
> +    /*
> +     * The MSA and MSA_frac fields in the ID_AA64MMFR0_EL1 register identify the
> +     * memory system configurations supported. In Armv8-R AArch64, the
> +     * only permitted value for ID_AA64MMFR0_EL1.MSA is 0b1111.
> +     */
> +    if ( system_cpuinfo.mm64.msa != MM64_MSA_PMSA_SUPPORT )
> +        goto fault;
> +
> +    /* Permitted values for ID_AA64MMFR0_EL1.MSA_frac are 0b0001 and 0b0010. */
> +    if ( system_cpuinfo.mm64.msa_frac == MM64_MSA_FRAC_NONE_SUPPORT )
> +        goto fault;
> +
> +    /*
> +     * cpuinfo sanitization makes sure we support 16bits VMID only if all cores
> +     * are supporting it.
> +     */
> +    if ( system_cpuinfo.mm64.vmid_bits == MM64_VMID_16_BITS_SUPPORT )
> +        max_vmid = MAX_VMID_16_BIT;
> +
> +    /* Set the VS bit only if 16 bit VMID is supported. */
> +    if ( max_vmid == MAX_VMID_16_BIT )
> +        vtcr_el2 |= VTCR_VS;
this field does not exist.
> +
> +    p2m_vmid_allocator_init();
> +
> +    WRITE_SYSREG(vtcr_el2, VTCR_EL2);
> +
> +    /*
> +     * VSTCR_EL2.SA defines secure stage 2 translation output address space.
> +     * To make sure that all stage 2 translations for the Secure PA space access
> +     * the Secure PA space, we keep SA bit as 0.
> +     *
> +     * VSTCR_EL2.SC is NS check enable bit. To make sure that Stage 2 NS
> +     * configuration is checked against stage 1 NS configuration in EL1&0
> +     * translation regime for the given address, and generates a fault if they
> +     * are different, we set SC bit 1.
> +     */
> +    vstcr_el2 &= ~VSTCR_EL2_SA;
> +    vstcr_el2 |= VSTCR_EL2_SC;
> +    WRITE_SYSREG(vstcr_el2, VSTCR_EL2);
> +
> +    return;
> +
> + fault:
> +    panic("Hardware with no PMSAv8-64 support in any translation regime\n");
>   }
>   
>   /*
> diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
> index 19d409d3eb..a4b6eef181 100644
> --- a/xen/arch/arm/include/asm/arm64/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm64/sysregs.h
> @@ -462,6 +462,10 @@
>   #define ZCR_ELx_LEN_SIZE             9
>   #define ZCR_ELx_LEN_MASK             0x1ff
>   
> +/* Virtualization Secure Translation Control Register */
> +#define VSTCR_EL2_SA                 (_AC(0x1,UL)<<30)
> +#define VSTCR_EL2_SC                 (_AC(0x1,UL)<<20)
> +
>   #ifdef CONFIG_MPU
>   /*
>    * The Armv8-R AArch64 architecture always executes code in Secure
> diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
> index 13353c8e1a..bf902a3970 100644
> --- a/xen/arch/arm/include/asm/cpufeature.h
> +++ b/xen/arch/arm/include/asm/cpufeature.h
> @@ -248,6 +248,12 @@ struct cpuinfo_arm {
>               unsigned long tgranule_16K:4;
>               unsigned long tgranule_64K:4;
>               unsigned long tgranule_4K:4;
> +#ifdef CONFIG_MPU
> +            unsigned long __res0:16;
> +            unsigned long msa:4;
> +            unsigned long msa_frac:4;
> +            unsigned long __res1:8;
> +#else
>               unsigned long tgranule_16k_2:4;
>               unsigned long tgranule_64k_2:4;
>               unsigned long tgranule_4k_2:4;
> @@ -255,6 +261,7 @@ struct cpuinfo_arm {
>               unsigned long __res0:8;
>               unsigned long fgt:4;
>               unsigned long ecv:4;
> +#endif
>   
>               /* MMFR1 */
>               unsigned long hafdbs:4;
> @@ -267,13 +274,13 @@ struct cpuinfo_arm {
>               unsigned long xnx:4;
>               unsigned long twed:4;
>               unsigned long ets:4;
> -            unsigned long __res1:4;
> +            unsigned long __res2:4;
>               unsigned long afp:4;
> -            unsigned long __res2:12;
> +            unsigned long __res3:12;
>               unsigned long ecbhb:4;
>   
>               /* MMFR2 */
> -            unsigned long __res3:64;
> +            unsigned long __res4:64;
>           };
>       } mm64;
>   
> diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
> index e46d9e757a..d165585d4e 100644
> --- a/xen/arch/arm/include/asm/mpu/p2m.h
> +++ b/xen/arch/arm/include/asm/mpu/p2m.h
> @@ -5,6 +5,18 @@
>   
>   struct p2m_domain;
>   
> +/*
> + * The architecture allows at most 255 EL2 MPU memory regions. The size of the
> + * MPU structure entry (pr_t) is 32 Bytes on AArch64 (requiring two 4KB pages)
> + * and 16 bytes on AArch32 (requiring one 4KB page).
> + */
> +#ifdef CONFIG_ARM_64
> +#define P2M_ROOT_ORDER 1
> +#else
> +#define P2M_ROOT_ORDER 0
> +#endif
> +
> +/* Not used on MPU system */
>   static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
>   
>   static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
> index 010ce8c9eb..ed1b6dd40f 100644
> --- a/xen/arch/arm/include/asm/p2m.h
> +++ b/xen/arch/arm/include/asm/p2m.h
> @@ -48,8 +48,13 @@ struct p2m_domain {
>       /* Current VMID in use */
>       uint16_t vmid;
>   
> +#ifdef CONFIG_MMU
>       /* Current Translation Table Base Register for the p2m */
>       uint64_t vttbr;
> +#else
> +    /* Current Virtualization System Control Register for the p2m */
> +    register_t vsctlr;
This exist only for Arm64 MPU. Should we enclose this in ARM_64  ?
> +#endif
>   
>       /* Highest guest frame that's ever been mapped in the p2m */
>       gfn_t max_mapped_gfn;
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 1a48c9ff3b..7344aa094b 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -403,6 +403,10 @@
>   
>   #define VTCR_RES1       (_AC(1,UL)<<31)
>   
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +#define VTCR_NSA        (_AC(0x1,UL)<<30)
> +#endif
> +
>   /* HCPTR Hyp. Coprocessor Trap Register */
>   #define HCPTR_TAM       ((_AC(1,U)<<30))
>   #define HCPTR_TTA       ((_AC(1,U)<<20))        /* Trap trace registers */
> @@ -464,6 +468,13 @@
>   #define MM64_VMID_16_BITS_SUPPORT   0x2
>   #endif
>   
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +#define MM64_MSA_PMSA_SUPPORT       0xf
> +#define MM64_MSA_FRAC_NONE_SUPPORT  0x0
> +#define MM64_MSA_FRAC_PMSA_SUPPORT  0x1
> +#define MM64_MSA_FRAC_VMSA_SUPPORT  0x2
> +#endif
> +
>   #ifndef __ASSEMBLER__
>   
>   extern register_t __cpu_logical_map[];

Rest LGTM

- Ayan



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 17:48:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 17:48:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229694.1535542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqanQ-0006Td-Cb; Thu, 12 Feb 2026 17:48:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229694.1535542; Thu, 12 Feb 2026 17: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 1vqanQ-0006TW-9x; Thu, 12 Feb 2026 17:48:08 +0000
Received: by outflank-mailman (input) for mailman id 1229694;
 Thu, 12 Feb 2026 17:48: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=cIml=AQ=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vqanP-0006TQ-Es
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 17:48:07 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f91c8df3-083a-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 18:48:01 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by SA5PR03MB8452.namprd03.prod.outlook.com (2603:10b6:806:474::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.16; Thu, 12 Feb
 2026 17:47:58 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%2]) with mapi id 15.20.9587.013; Thu, 12 Feb 2026
 17:47: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: f91c8df3-083a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sEU4W4vk7kJITe7tQtcmi7VPg6/lnRii1SbbD448S1UWn+wC8IqnUH6KVygqLsjf3aDCpvXhf7+FEvxi3m4PEsCybYWHFP3b1zp2owfxg+6E433i4XCed4JOJde1EdhpzA5XWMVYBcLyXy11tox5q9vktAHU/rGxqvCNlQ8jZ/giNYlyDPa6FMLYDLZ88XD7aU7NJe7LEF4qz+ZxRGgBzxIUX5AmzVv7V1CLLOwTp4lJ3SeEuhvM/4Y6VsdZqBVbKMaz7xR3T+iEpO3Q3O+5I90Cb9vLAigL027XAqZIa/nJrOQo8ZvuxlMePjvIVS7Zp9flzMm8FKRnO/7kiGrd2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nindylR6gt5IUWAulANTZohw8zNKiYcYVxeL92GrJPU=;
 b=Nk+8ZA+BrIb6wTG6bmzOHfNf0K7mPqXW1WViV/MW4EX86EDK1RPXh2eMb2XGNQnI0FGARS9Fr2A4aMWY+4ZQIT1UQORWvDg718WQ0sACda1VTpePr6p+1Pk1y5akZTEAU3owKElDkVg2/jMdMyz5vbNzuL/VVTdZevUNKMbdpRXNsiE5DZDx1b0ISnsS25Js6BZHRO2nvlQrsixaCohyqHQNgtLmMc8n7C+2HJrqEhFNF4miFBBDRuJMRyh2NDbOY6bpH7MHz8/WIHDAZeIF75PiBdCBcguKTIVG8k7VnmiLP13mU58gMX0KOUJAvRZaXBY0D4q6y22446ZZRAvNHw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nindylR6gt5IUWAulANTZohw8zNKiYcYVxeL92GrJPU=;
 b=D/l3Ou3m5mDAShlL+3iRc7uEA6+cmH7IQrswErMJFWXRpR16BH4IQ1Ifi/DzEBPMX0/gMrpJ2WfRAQLxkeyDyLCwS6ewrEPKQBogylWUjSbbSKwM8X3CpMR2kyXeBBDmAYiBTZHv+umgaGJvHAZQvMZ+lSfonXvyArRJWqzXJxo=
From: Edwin Torok <edwin.torok@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
CC: Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: RFC: unmap_page_range optimisation (avoiding emulation faults during
 VM migration)
Thread-Topic: RFC: unmap_page_range optimisation (avoiding emulation faults
 during VM migration)
Thread-Index: AQHcnEe5W7o/9c8i6Ei0IwBnD48R1Q==
Date: Thu, 12 Feb 2026 17:47:58 +0000
Message-ID: <16133EFF-88FF-467F-B78F-E96EB148C3A5@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|SA5PR03MB8452:EE_
x-ms-office365-filtering-correlation-id: ed5ec43a-5fb7-4b2d-801c-08de6a5edc08
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?NmFoSGdFczRwOEluZ09KOHJsS01mSkFlaGRUYTRUdmFCRWtmdWkwNmZBbitJ?=
 =?utf-8?B?RzdFVGJOb0RsTWxNN2FpcEN3TVlxVVlraGd0RXpTOG8yZTYwdnlSZkZwcllB?=
 =?utf-8?B?UEhtWXNXOEw0cXhwMHY2QTh2OHNYMWxMZThCRllLb3lxaC80ZERFWCtJdFNB?=
 =?utf-8?B?Z094amVXSTg3aTV3cDZWVG56QWNuc1NvbXVjcFZMR081cW5CVldIRi9WTHZE?=
 =?utf-8?B?SllUekUreGYrSXFKdURJYU1uNUNSenVuSkFwUHVtTmF2WHVLRGFVcEpJUkFw?=
 =?utf-8?B?TEpMQ2cyQVAzcHF4eFpsTC9EUVU0OHZxclRISEZyTlNEV1hyMlN5cmQ4RUNt?=
 =?utf-8?B?RXVMbzFDS0ErOFYxeTdUcnJHNFgvOHNteEIraDVYQlNncVhQZ21XREIzQjRE?=
 =?utf-8?B?ZHdWRnFxRzVNbGxHUll0ZU5hckVoUTltY3JFcHFQMkxJdzRVSFFvMFRhcGJY?=
 =?utf-8?B?eDd3WTlHNDQ4NGxQSDRWaHNmUEtkS0hPUGJYa29iaFNEU2plUllQWVlqd3ZJ?=
 =?utf-8?B?WnNCS09yNDZ3dVJVMjJUbUdmZHhkNnF3cHp2aUZNcm9sajcrWTN0bDEyOE0y?=
 =?utf-8?B?TEc1ZDhOWjdYWXJkcEdEY3Q5dFJEWFdoOHl5OW8rMUdZTVNkdlliRmpOeTg2?=
 =?utf-8?B?N2ZndkxHcDdaMWVvSFBxSGVkaHRhWm5OaEVnZmxTMDJ0ZXQ4eWVhcHJSTGx1?=
 =?utf-8?B?UTljVVNJWHhQY3ZHbGVaZlN0TGZGYSsvSTlXYkRldW5UdzZuOTBIc0kyRUxY?=
 =?utf-8?B?NUwxMlA5K2g0NWFFVWlvNThGejRoUHV1ZWpHUFJVTDQ1czNYaXA4Q1FHdXRk?=
 =?utf-8?B?N0gyUUk1MG8xSWdUSkRiTHBKR3NzNGZOYUNSNkorZWtMRkM1eEoybTRic3Ny?=
 =?utf-8?B?cXdPMllSVENzNTF6NHFUaG9xWDczYzBNSjRqei9KSDJYbnVMMGFnYmdOT0U3?=
 =?utf-8?B?ZTdDZXhUUHh0b2k5S3hoUFZlZmZrclRvT2FkQ0VmOUNMVFVHVmFFS0NNbTlS?=
 =?utf-8?B?OW5YZjFvV0U0bUxqbkJSbEgvVi83bGR0aEhhM1h5YjBXbFNadkVCT2xIVmFI?=
 =?utf-8?B?WHdvM0h1eDl1bXlldHAvWlcrclRFRnRndzltVzRGUlBLd3duT0F2NEhYaDN1?=
 =?utf-8?B?NkRTMHA3bUtkTTVFYnhFSUF2RE13Y2FvSW5USVJtUE5mS1hkOXp4UlphMGhM?=
 =?utf-8?B?Sm9PSVFLek9TV3pBWndKenZNN3FGbGhVK2cxTVF5b1J1UEt5OG1aaGdDMENh?=
 =?utf-8?B?bGVHRTlVcjZVakJ6UUloWGdtQ0tYRS81bGdLeG9Qb1kxMVZTMUlaRnBROWd5?=
 =?utf-8?B?VWNrNitRMnNlTThRMEJkMGYzZFpQWGtvOGx3T1FRWlNJVkQ2enU5cDdpZGF4?=
 =?utf-8?B?aVlaa3dXaE5XRWxjZUhLaTBWeUJleVdOSjYyNzBqQzFBaU5mS2dvQkcvYTRS?=
 =?utf-8?B?NnBxcWVZODRGcFJLL1FqYVkxQVhnbkp5bU95VDdCT2VQd2x0Q2FJdnZIS3FP?=
 =?utf-8?B?Yk5hVzQ3ZGJOeXZWR1p2djJ2QTFkTjVrR1JZc0dJQkJValVycnArVXVOMEtn?=
 =?utf-8?B?NjhUZXNRWHVJVE1ZR2VkZHFrcG9Qbi84cjdQVGNhd042NW1vRU5tVWszSDlD?=
 =?utf-8?B?YVU4akFtay9Xd2RWcVFKMGxidUpYeFF4eXdpenNtb0tCdThTMGNWdjc5UTQr?=
 =?utf-8?B?WDNDdlBjYkdaSTE2TU5vZmtRbVRveFZ5YTdMUG1kc2ZLNXZhYTFtenNYOXFY?=
 =?utf-8?B?N3FJejUybmM4WmYwZWQ0UkhoSUdIdXJsVjNXZks4ck5MdmdBVW5LOXFqU2lP?=
 =?utf-8?B?WXN3OFdLdGJNWkljN21VM1JVWjVXU1dWUmhqWEJhK01YNTlmbmxWZStlb2h2?=
 =?utf-8?B?RGJDUnFXMjYrMzd3bktnaXV3VE1KaEJBYTdEbGM3elYyOWVkd2VCMEUxSmIw?=
 =?utf-8?B?NUU0bkQrR3JLdVdKbWZNS05sR0FZTkQ5MzM5MmJZWXlna0gza3hmWmNVUjhD?=
 =?utf-8?B?VDhvb0RoVjZZSGgyL1I4UGJGT21GTTBFVFZPc3VOMkMzdmRVcWxqQmZYOEhk?=
 =?utf-8?B?QURWMW5IeXcraFZ0WWFyc2JMa2Y0NmRVWDZTNkVFQUN2bnk5YlBGZUlwYnk2?=
 =?utf-8?Q?DI0E=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?NmN5eGk2QnVaT0dvaHRkNmdKMEMxZ2ZVTkhtaEtrQktYcnBLUXNyUzdpdXlN?=
 =?utf-8?B?cEFwVHBlcEMveVJUSVF2cWlLcWhEbnBzdHFTbGVJaUJ5enRybmpVR2liOXV2?=
 =?utf-8?B?TW9XMTE1UDh5M2xnQ3VFSEk3NnhNYXlhcDg3ckdpZm1nTXlTOVdueEF0UVVO?=
 =?utf-8?B?V2lkM3FIQ011SHNQYVVaKzU3M3Z4UmFZWWpLMnRUZDRVYUd4TTBWTzg5WTRY?=
 =?utf-8?B?K2JnYktBNTJzRUpIR3lQMjRWOFY0cXNwdWdCVEFRcU1qUkpLdDZRZ3B3aE1r?=
 =?utf-8?B?OHlnam11eVJlRTVDTFFuclR5TnorL2FRZjZnamcvLzhiQ0ZPSkVLNHlKTytj?=
 =?utf-8?B?QlZTT1k5bHNrK3dmSDJ0MXNHZFRjNVA4UkE1cElwMWJJRWxZQ1R3RG1yREdC?=
 =?utf-8?B?emoxVnQ0L1BvVVNmcVFLbDRTY2oxQTZORmNPaWV1MkpiZnJ1R3NRU2NIeHdQ?=
 =?utf-8?B?U0Z4ZDdEeXg5b2d3T295bklDbXJOa3lwWXpCcjM0WGZyVmtkMlZtdWt5TXNG?=
 =?utf-8?B?WUlkaVdqdE5RQjJNZ0pGUllDaHFaNDVoeWMwazZ6S2c3eUU4bnJqMEp5NGpw?=
 =?utf-8?B?RS90cUYwM2MrRU15eXlQTGRHVUsyM3JQaTRHN1ZIYVpGblE1d3UvVFVUeVp2?=
 =?utf-8?B?WlFVclFnbkt1QXVraWx5dGw4WHp0d2dqQWhKMDlNT05hd3AvVGJDZ3hJYS9n?=
 =?utf-8?B?dVRXcVZMSXNOeWhuN3gxTERBZE5ZSEVrVnBYTEVKTEk0MFdjNkFXeStuQWdN?=
 =?utf-8?B?aGNZdmtJY3R1TUFVQXAzWFViOHpBc2pERU1hTURJdlNiTk9LMEsrQ21vRXg3?=
 =?utf-8?B?MC9XbnhJQk9GRm9oMmdxZ0FxSDFxVjlVK051dWY5d1VzcHNBUVBlU1R4RUZS?=
 =?utf-8?B?K0s0TlhOUnFBTjdGWVJxNW83d1A2VldLYjFTRVJ0RGNRU1NmdEhMclkraFpi?=
 =?utf-8?B?ZTB3eEhlSk1ySVhEMTUwekozU29sd1pQdVMrZVo4a2hqRUNIcmU5OWMvSE1h?=
 =?utf-8?B?QjRXdjFRVlYzTmJVeDVva09wdFlaU2duMGdPUlJhcFN2MXExOUlwaGVpTmt1?=
 =?utf-8?B?cDRneDQrcnh1OUMxVW9HU3plNkRteXVHS1F6RDJtY3JCYU9QWHh5RERHMXRh?=
 =?utf-8?B?d0tackhoUDh3dmI5Wk5DVTRHbGFrNmFLeHVjYmJzSElCYUdYZW9WV1ZzdnRO?=
 =?utf-8?B?cEZuYzFaUnpLcWhXNTROOCt3aW9OUmpPdWFiS0Y0Rk1QQmlNNzJZd2dtRkpr?=
 =?utf-8?B?RU9lK0VFV2FBaDhNZUVuVUpqQXgwWFFNUll4bFRNVnowUklabUgrQ1NEa3pX?=
 =?utf-8?B?YkEvZUs2U1BqKzhyekVZVHd5SW8ybHBDdmpXandTbmo3a3ZHVzFkOE5pTlFl?=
 =?utf-8?B?SkpoWldNbmNQbEhMN0U3U2pXUExtaFNndnI4WFVhaVBFZFpEaHM4aFBPV08v?=
 =?utf-8?B?d0l0U1NyaStGcFZ0Y2RDWXdhSlMwUFFxTlBCbWdVL2VNM1hnNmdkSkl1Wm9Q?=
 =?utf-8?B?ekNLWktPOXNsK3ArTkowaUpVeVk4cFlBWWVKT3RKWXAwLzBvbTh5SGR4bkVP?=
 =?utf-8?B?Wm1QbHlIc0ptL1d6aTlQZjhySDBNWkVVbnQyT2lOaGMwbzc1TnIySVdmRCtP?=
 =?utf-8?B?ZktBNng2RDlxQjhkQTRSTUlJS3FnOVNLNXBiRDNBd0JsOUdKNmhyQS9YeW9h?=
 =?utf-8?B?SDdZK0wvY0Vld2JNWTBHOXVxWElGOW1RM0d5MytVVGozY0t0dktJc0p2UWpS?=
 =?utf-8?B?RTIwNlNETVAzd1ROL0VUTWpuNUQ5NmdRcHVOWlFTb3YxeDJ1TGVlNllMMXJB?=
 =?utf-8?B?SDN3UEZ3N2w5azhoVXZvaGgwRy9DY2prVGh5Z3YyTDlNcmtGTjVFTmlIZnMw?=
 =?utf-8?B?d2FFa2FxSVI1VVdIUWk2bGJ4cTYwWFk1RWVDa3FoVTY0ci9VLzlNVEVJYkxp?=
 =?utf-8?B?Uno1cEpVc3hlTW5VODhXb2c0TUpnV1luT1JNNW9jaldOeUNkek1ia28wc0Ew?=
 =?utf-8?B?MHFwRDRSV1p1am5LUEVmV2pKdFdpU043MUdXS3ZONnlyUFFEUlZVVy8vZW5a?=
 =?utf-8?B?WmplSUhKR2JXSkt3bjRkS3I4cTg4b1dqOUt2OG05eENmTGxPRDJOWHNnVlFR?=
 =?utf-8?B?YURvRWxjL1prREdQV0dNWTFrTVNCdXpiUms4YlU3enEzRlhtd2RYS2ZabFBI?=
 =?utf-8?B?TGUyVnkrZXFneTRXRXFUSVZzeHZzaXZ5UjU1cC9za01xTGpZak1XaGUxR0x4?=
 =?utf-8?B?SXlRUEZlc1VwenZreVNQcUhOVEZueTI3S2x0dyt3aGQ2NFkwY1NiQkFRNlhW?=
 =?utf-8?B?UXlMMDREb0M5YVN3YkVzZDdKdktNQTIraC9ZWEpmcVgrMTFZd3B4TEFtWm9u?=
 =?utf-8?Q?BTT+fU6wR53YzuBE=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <E5DA4A7884AAC54EB78B80E3D9CF0311@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed5ec43a-5fb7-4b2d-801c-08de6a5edc08
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2026 17:47:58.3747
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pRU2YpGJlhtCTG8RukGHF5eTENJ8ZpjgNLzDc+rzP0JoxB1Iscmb9hb5E4j9Hp1S/9acCpZU5v241V0xQkGcDg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8452

SGksDQoNCldoZW4gcHJvZmlsaW5nIGEgVk0gbWlncmF0aW9uIEkgbm90aWNlZCB0aGF0IG9uIHRo
ZSBzZW5kZXIgc2lkZSBhIHNpZ25pZmljYW50ICh+NDUlKSB0aW1lIGlzIHNwZW50IGluIFBWIERv
bTAgTGludXggdGFraW5nIGFuIGVtdWxhdGlvbiBmYXVsdCBpbiB1bm1hcF9wYWdlX3JhbmdlIFsx
XToNCg0KVGhlIGNhbGwgY29tZXMgZnJvbSB6YXBfcHRlX3JhbmdlIChwZ3RhYmxlXzY0LmgsIGlu
bGluZWQpOg0KIHB0ZW50ID0gcHRlcF9nZXRfYW5kX2NsZWFyX2Z1bGwobW0sIGFkZHIsIHB0ZSwg
dGxiLT5mdWxsbW0pOw0KDQpUaGlzIGhhcyAyIGltcGxlbWVudGF0aW9uczogbmF0aXZlIGFuZCBh
IGdlbmVyaWMgb25lIHdoZXJlIHB0ZV9jbGVhciBpcyBpbXBsZW1lbnRlZCB1c2luZyBzZXRfcHRl
X2F0IHdpdGggYSBYZW4gcHZvcC4NCg0KQXMgYSBwcm9vZiBvZiBjb25jZXB0IEnigJl2ZSBkZWxl
dGVkIHRoZSBuYXRpdmUgaW1wbGVtZW50YXRpb24gWzJdLCB3aGljaCBtYWtlcyBpdCBmYWxsIGJh
Y2sgdG8gdGhlIGdlbmVyaWMgaW1wbGVtZW50YXRpb24gWzNdLg0KVGhpcyBpcyBub3QgbmVjZXNz
YXJpbHkgc2FmZSBvbiBTTVAgKGl0IHJlYWRzIGFuZCBjbGVhcnMgYXMgMiBzZXBhcmF0ZSBzdGVw
cyksIGJ1dCBzaG93cyB0aGF0IGEgcGFyYXZpcnQgb3AgaXMgZmFzdGVyIHRoYW4gZW11bGF0aW9u
Lg0KDQpUbyBmaXggdGhpcyB3ZSBtYXkgbmVlZCB0byBwYXJ0aWFsbHkgcmV2ZXJ0ICBodHRwczov
L2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC5n
aXQvY29tbWl0Lz9pZD00Y2RkOWM4OTMxNzY3ZTFjNTZhNTFhMTA3OGQzM2E4YzM0MGY0NDA1DQoN
ClRvIHRlc3QgdGhpcyBtb3JlIGVhc2lseSBJ4oCZdmUgd3JpdHRlbiBhIHNtYWxsIHRlc3QgcHJv
Z3JhbSB0aGF0IG1hcHMvdW5tYXBzIHBhZ2VzIGZyb20gYSBkb21haW4gaW4gRG9tMCBbNF0uDQpC
ZWZvcmU6IDMuMjY5MzIgKy0gMC4wMDUwMyBzZWNvbmRzIHRpbWUgZWxhcHNlZCAgKCArLSAgMC4x
NSUgKQ0KQWZ0ZXI6IDAuNzU2NDIgKy0gMC4wMDIwMiBzZWNvbmRzIHRpbWUgZWxhcHNlZCAgKCAr
LSAgMC4yNyUgKQ0KDQpJdCBpcyBtb3JlIHRoYW4gNHggZmFzdGVyIHRvIHVzZSB0aGUgcGFyYXZp
cnQgb3BzIHRoYW4gdHJhcHBpbmcgYW5kIGVtdWxhdGluZy4NCkZyb20gYSBmdW5jdGlvbmFsIHBv
aW50IG9mIHZpZXcgdGhlIGFib3ZlIGNvbW1pdCBpcyBjb3JyZWN0LCBYZW4gZG9lc27igJl0IG5l
ZWQgYSBkZWRpY2F0ZWQgUFYgb3BlcmF0aW9uOiB0cmFwIGFuZCBlbXVsYXRpb24gd29ya3MuDQpC
dXQgZnJvbSBhIHBlcmZvcm1hbmNlIHBvaW50IG9mIHZpZXcgSeKAmWQgc2F5IHRoYXQgWGVuIGRv
ZXMgbmVlZCBpdC4gVGhpcyBpcyBhIGhvdC1wYXRoIGR1cmluZyBtaWdyYXRpb24sIGFuZCBpdOKA
mWQgYmUgd29ydGh3aGlsZSB0byBvcHRpbWlzZSBpdC4NCg0KSnVzdCBkZWxldGluZyB0aGUgbmF0
aXZlIGltcGxlbWVudGF0aW9uIGlzIHByb2JhYmx5IG5vdCB0aGUgc29sdXRpb24sIHNpbmNlIHdl
IGFsc28gd2FudCBhIHZhbHVlIHJldHVybmVkLCBhbmQgdGhlIGV4aXN0aW5nIFBWIG9wZXJhdGlv
biBpcyB2b2lkLg0KSXQgcHJvYmFibHkgbmVlZHMgYSBuZXcgUFYgb3BlcmF0aW9uIChyZSlpbnRy
b2R1Y2VkIHdpdGggdGhlIGRlc2lyZWQgc2VtYW50aWNzPw0KDQpCZXN0IHJlZ2FyZHMsDQotLUVk
d2luDQoNClsxXTogaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL2Vkd2ludG9yb2sveGVuQHBt
dXN0YWNrLWNvdmVybGV0dGVyL2RvY3MvdG1wL21pZ3JhdGUtc2VuZC5zdmc/eD05NTAuNiZ5PTIx
OTcNCg0KWzJdOg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGUuaCBi
L2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGUuaA0KaW5kZXggNjkwYzAzMDdhZmVkLi5hYjYz
MThiYjU2NzYgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgNCisr
KyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGUuaA0KQEAgLTEwOTcsMTMgKzEwOTcsOSBA
QCBleHRlcm4gaW50IHB0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmcoc3RydWN0IHZtX2FyZWFfc3Ry
dWN0ICp2bWEsDQogZXh0ZXJuIGludCBwdGVwX2NsZWFyX2ZsdXNoX3lvdW5nKHN0cnVjdCB2bV9h
cmVhX3N0cnVjdCAqdm1hLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGxvbmcgYWRkcmVzcywgcHRlX3QgKnB0ZXApOw0KDQotI2RlZmluZSBfX0hBVkVfQVJDSF9Q
VEVQX0dFVF9BTkRfQ0xFQVINCi1zdGF0aWMgaW5saW5lIHB0ZV90IHB0ZXBfZ2V0X2FuZF9jbGVh
cihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLA0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRlX3QgKnB0ZXApDQotew0KLSAgICAgICBwdGVf
dCBwdGUgPSBuYXRpdmVfcHRlcF9nZXRfYW5kX2NsZWFyKHB0ZXApOw0KLSAgICAgICByZXR1cm4g
cHRlOw0KLX0NCitzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZXBfZ2V0X2FuZF9jbGVhcihzdHJ1Y3Qg
bW1fc3RydWN0ICptbSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGxvbmcgYWRkcmVzcywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB0ZV90ICpwdGVwKTsNCg0KICNkZWZpbmUgX19IQVZFX0FSQ0hfUFRFUF9HRVRfQU5EX0NM
RUFSX0ZVTEwNCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZXBfZ2V0X2FuZF9jbGVhcl9mdWxsKHN0
cnVjdCBtbV9zdHJ1Y3QgKm1tLA0KDQpbM106IA0KI2lmbmRlZiBfX0hBVkVfQVJDSF9QVEVQX0dF
VF9BTkRfQ0xFQVINCnN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlcF9nZXRfYW5kX2NsZWFyKHN0cnVj
dCBtbV9zdHJ1Y3QgKm1tLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBhZGRyZXNzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHRlX3QgKnB0ZXApDQp7DQogICAgICAgIHB0ZV90IHB0ZSA9ICpwdGVwOw0KICAgICAg
ICBwdGVfY2xlYXIobW0sIGFkZHJlc3MsIHB0ZXApOw0KICAgICAgICByZXR1cm4gcHRlOw0KfQ0K
I2VuZGlmDQpzdGF0aWMgaW5saW5lIHZvaWQgcHRlX2NsZWFyKHN0cnVjdCBtbV9zdHJ1Y3QgKm1t
LCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKSB7IHNldF9wdGVfYXQobW0sIGFkZHIs
IHB0ZXAsIF9fcHRlKDApKTsgfQ0KDQpbNF06DQokIGNhdCA+bWFpbi5jIDw8RU9GDQojaW5jbHVk
ZSA8YXNzZXJ0Lmg+DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4NCiNp
bmNsdWRlIDxzeXMvbW1hbi5oPg0KI2luY2x1ZGUgPHhlbmN0cmwuaD4NCiNpbmNsdWRlIDx4ZW5m
b3JlaWdubWVtb3J5Lmg+DQoNCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsNCiAg
aWYgKGFyZ2MgIT0gMykgew0KICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6ICVzIDxkb21pZD4g
PGJhdGNoc2l6ZT5cbiIsIGFyZ3ZbMF0pOw0KICAgIHJldHVybiAxOw0KICB9DQogIHVpbnQzMl90
IGRvbWlkID0gYXRvaShhcmd2WzFdKTsNCiAgdWludDMyX3QgYmF0Y2hfc2l6ZSA9IGF0b2koYXJn
dlsyXSk7DQoNCiAgaWYgKCFkb21pZCB8fCAhYmF0Y2hfc2l6ZSkgew0KICAgIGZwcmludGYoc3Rk
ZXJyLCAiSW52YWxpZCBhcmd1bWVudHMsIGV4cGVjdGVkIDIgaW50ZWdlcnMiKTsNCiAgICByZXR1
cm4gMjsNCiAgfQ0KDQogIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpoYW5kbGUgPSB4ZW5mb3Jl
aWdubWVtb3J5X29wZW4oTlVMTCwgMCk7DQogIGlmICghaGFuZGxlKQ0KICAgIHJldHVybiAzOw0K
DQogIHhjX2ludGVyZmFjZSAqeGMgPSB4Y19pbnRlcmZhY2Vfb3BlbihOVUxMLCBOVUxMLCAwKTsN
CiAgaWYgKCF4YykNCiAgICByZXR1cm4gNDsNCg0KICB4ZW5fcGZuX3QgbnJfcGZuczsNCiAgaWYg
KHhjX2RvbWFpbl9ucl9ncGZucyh4YywgZG9taWQsICZucl9wZm5zKSA8IDApDQogICAgcmV0dXJu
IDU7DQoNCiAgdW5zaWduZWQgbWFwcGluZ3Nfc2l6ZSA9IG5yX3BmbnMgLyBiYXRjaF9zaXplICsg
MTsNCiAgdm9pZCAqKm1hcHBpbmdzID0gY2FsbG9jKG1hcHBpbmdzX3NpemUsIHNpemVvZih2b2lk
ICopKTsNCiAgaWYgKCFtYXBwaW5ncykgew0KICAgIHBlcnJvcigiY2FsbG9jIik7DQogICAgcmV0
dXJuIDY7DQogIH0NCg0KICBmb3IgKHhlbl9wZm5fdCBpID0gMDsgaSA8IG5yX3BmbnM7IGkgKz0g
YmF0Y2hfc2l6ZSkgew0KICAgIHhlbl9wZm5fdCBhcnJbYmF0Y2hfc2l6ZV07DQogICAgaW50IGVy
cltiYXRjaF9zaXplXTsNCg0KICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBiYXRjaF9zaXpl
OyBqKyspDQogICAgICBhcnJbal0gPSBpICsgajsNCg0KICAgIHVuc2lnbmVkIGxvbmcgaWR4ID0g
aSAvIGJhdGNoX3NpemU7DQogICAgYXNzZXJ0KGlkeCA8IG1hcHBpbmdzX3NpemUpOw0KICAgIG1h
cHBpbmdzW2lkeF0gPSB4ZW5mb3JlaWdubWVtb3J5X21hcCgNCiAgICAgICAgaGFuZGxlLCBkb21p
ZCwgUFJPVF9SRUFELCBzaXplb2YoYXJyKSAvIHNpemVvZihhcnJbMF0pLCBhcnIsIGVycik7DQog
ICAgaWYgKCFtYXBwaW5nc1tpZHhdKQ0KICAgICAgcmV0dXJuIDc7DQogIH0NCg0KICBmb3IgKHhl
bl9wZm5fdCBpID0gMDsgaSA8IG5yX3BmbnM7IGkgKz0gYmF0Y2hfc2l6ZSkgew0KICAgIHVuc2ln
bmVkIGxvbmcgaWR4ID0gaSAvIGJhdGNoX3NpemU7DQogICAgYXNzZXJ0KGlkeCA8IG1hcHBpbmdz
X3NpemUpOw0KICAgIGlmICh4ZW5mb3JlaWdubWVtb3J5X3VubWFwKGhhbmRsZSwgbWFwcGluZ3Nb
aWR4XSwgYmF0Y2hfc2l6ZSkpDQogICAgICByZXR1cm4gODsNCiAgfQ0KDQogIGZyZWUobWFwcGlu
Z3MpOw0KICB4Y19pbnRlcmZhY2VfY2xvc2UoeGMpOw0KICB4ZW5mb3JlaWdubWVtb3J5X2Nsb3Nl
KGhhbmRsZSk7DQoNCiAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsNCn0NCkVPRg0KDQokIGNhdCA+bWVz
b24uYnVpbGQgPDxFT0YNCnByb2plY3QoJ3hmbV9zY2FsZScsICdjJywgZGVmYXVsdF9vcHRpb25z
OlsnY19zdGQ9Z251MTEnXSkNCnhmbSA9IGRlcGVuZGVuY3koJ3hlbmZvcmVpZ25tZW1vcnknKQ0K
eGMgPSBkZXBlbmRlbmN5KCd4ZW5jb250cm9s4oCZKQ0KZXhlY3V0YWJsZSgneGZtX3NjYWxlJywg
J21haW4uYycsIGRlcGVuZGVuY2llczogW3hmbSwgeGNdKQ0KRU9G


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 17:58:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 17:58:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229710.1535552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqaxO-00087T-9C; Thu, 12 Feb 2026 17:58:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229710.1535552; Thu, 12 Feb 2026 17:58:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqaxO-00087M-5h; Thu, 12 Feb 2026 17:58:26 +0000
Received: by outflank-mailman (input) for mailman id 1229710;
 Thu, 12 Feb 2026 17:58: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=Z4gJ=AQ=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqaxN-00087G-Nt
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 17:58:25 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 69f272ca-083c-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 18:58:20 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB7002.namprd03.prod.outlook.com (2603:10b6:510:12d::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 17:58:16 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.012; Thu, 12 Feb 2026
 17: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: 69f272ca-083c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=D0LW2MjlVG0vJCttgm9hThXnWno6zv1N0AuJU9cti+n8Ai61EDiMP8OykuBT+qS+7BeW5bwfGc33bjCip4fMuFZoyE9pLtXqQTVh2zhonRFxINYTVOP4yT5AdJdQaS/aRmDm+b/LipwlkOnYdC5GMFvPQYpVRQYTgwDnrAKnlZL0Hp5TkjD0Klk5mXNPBhTph7VjRpXb1vaHb/CHeuPQ9HcPFaHROvfET5oE71IthkzIXCUZj5Pc+LtDZLyVTlZYkxLLx5hUA7tYpWvlUN+LGEZXKcD5LvQegfFsET8gwFoaTlyB/+wuOP2mihiO+k5fhluYnPLFG0SItjbYA0fqmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WvBd3QlpmlG1B8gHvEVeTSxvG7fazAu1yCJxhWhLSoM=;
 b=gtkTRsbXyLQ8j2f5o9QxvBcsufrzjJnrTlQpzbCAHywz5pNoWUXg7/+48aWxrR0Ex2n8jGcXV2Ja/JIPcvw4hXocbIYgUmSmRCZsYRI2+oLG0yau1hC6dv7NlTrrUMcCoT3U2WltftOeSSzNLZyjnxFpcIFjayrJQcJH+xczm0kLWQkPtRa4iq39hkg3+SCmMQFcRPml1xVr5cQb5s0ck1vE03Mn9/zp6l9i0TS6Cr4SVs9X6o0nVRhUVfLx2T7gYrN0VDi92PZWsvqgaeKg2b2MdlA6cc07VgQyxjgLMvkE1JgLzRnTm7Qr8i/JHZBVvuhJpAvkuQLwLF8zpMUAtA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WvBd3QlpmlG1B8gHvEVeTSxvG7fazAu1yCJxhWhLSoM=;
 b=HTg8aPTo3pefQ7WBzJzW+QiheFQFO5nFPrC1ShJNaUIAPvCOacPUQz4AITfayhOW9ED7qAniTPtQwXBjh3wPlIHgdVD2PKXc6fMDedHmiVTfHKahhadY6Qokq1j68jYcakloNAEDos1zygRX4mu4doF2fme7za/M9C7L7F7+ly0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <61a3f852-915c-4d9f-8dde-01d000aa4fe7@citrix.com>
Date: Thu, 12 Feb 2026 17:58:13 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.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 0/5] darwin: expand cross-builds to also support x86
 and testing
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260212144618.43200-1-roger.pau@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260212144618.43200-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P265CA0008.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:bb::13) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH7PR03MB7002:EE_
X-MS-Office365-Filtering-Correlation-Id: 25e24695-4e8f-40c4-8ce9-08de6a604c83
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?bjBncGxCRWprU3RwUkpYT2FrdnhzV2pEaWErdXI3S3d3Tng5TGZxSmZmaXFZ?=
 =?utf-8?B?Y01Rc3BvYk1WUnVtdUZEY1RSVkNQYjd1VlNkemdSVkhTVDhxZ3p0N2tYeGRS?=
 =?utf-8?B?d0doVHIxQ1kxU2w2VVNzRXU4akMyc1dqMTNlRkFmMjRlWjdtS0YxeVdrbUpn?=
 =?utf-8?B?RjZaUzRJd2orNFVHUE9WUVc5V0UyemVFUXR3ZlptOEQ1UFFmbUVobGNFUjFZ?=
 =?utf-8?B?MXhZMnlYNjRPVjlrSEM1QlpLSitXaTZWVFJrYTMzTmRxZWFhY2ZyK01wTXVP?=
 =?utf-8?B?L0tvSXFmT3k2MkdESlY4RmFaTWtZTmx2c09EUTVqckZWcGRja3BZb3ROSE9I?=
 =?utf-8?B?UjVIMG16ZGpMM1BrZC85K01LQmQ0VmNJVnFwb1RjanhWSUVyeGhDWkY1ZUpY?=
 =?utf-8?B?ZFU5UEpQRHIxTSswM0s2SVdaQXEweGFacEpaa2FVb3lDaEJlM1hnV3JneU45?=
 =?utf-8?B?MmxtUHhUSXNScll6NFlBVkZ6d1lldWl6eEdtZWx3ckdBbmloNVpWVHl1blJj?=
 =?utf-8?B?OUpBb3lHV2pzelgwTnhPRFQ4dkRIc0hVbFUzMVZzcmFNV21rd2dkaU14VjJB?=
 =?utf-8?B?TmI5eWx3bGRVWUhPNzNFYm42YmhtT0RCYXdHTjNWaE9Pa3c5bm5NU01UaktT?=
 =?utf-8?B?cVFNbmJlU210dFA0M3lEbDV5NzNuMkJlWTIraEc3NXZrUUh4VkRpTFBqcWUr?=
 =?utf-8?B?SWRoQVRqOWtSalBMR0lkL1RiWnJDSFJxTTJjKytaclZhVW84WW5sd1Y4MzRZ?=
 =?utf-8?B?eXFKYmZta1JCTk9WV1ArSXFRZVRHWE51NHBFYW9QUlYvZC9mK2QxV0p2VkNC?=
 =?utf-8?B?Q2I2VU95L045YkR0Q2ZFcXZmTHF5bGpMczV2SWI0SGZ5cEZvNk5USnJFNG9Q?=
 =?utf-8?B?dzJUU0Q1UUVjTnZPL3lkQmVOV0ZjMEdpT3k2bCt3R3c1cHVjdENBNHJuWlBy?=
 =?utf-8?B?aTJoY09yQWdJU244bUo3VnZOOThKTDdXQis5RmQ0djFabUN6Y1Y3cllmVjFB?=
 =?utf-8?B?dGR2d2NLaHhYenhzUllWampHZUo3L0doN3VhV3ZHSklhSklEMktBLzRRczA5?=
 =?utf-8?B?aWV1MjlER3o4djFUdXBoOWF1NmZjekplbTF5aTFrZVU3SEFFK2JBNUVWanRR?=
 =?utf-8?B?Rno1dVBOSUJtWkhtNjY4a0FYdlJZUW1ORC9SS0o1aGJNUHVMN1ZQdlY0Qk9E?=
 =?utf-8?B?VDFtZzNjVG8ySTF2STZtejdaZGI1MzJGM3I5cDNrYnBIVnlnM3FaNGpBamNH?=
 =?utf-8?B?dzVoRnZBVDQvRjNQRkNFZyt4bFJzY2hoWGw2ZFVXM1lxamZISmY4c1lMWkUx?=
 =?utf-8?B?N21DRkwxVUMwRDVVa1dxQzE5SFRHVFJ3WnQ4d2ovR1dmb05SUEgxQjRmZzJU?=
 =?utf-8?B?ditZZTBiS1VHREVpcHJyR3NEZTNqeFRlWFg4bmhaZTA2WUg4TUhOd2NtNk11?=
 =?utf-8?B?SVVTMWVoNHFrU2R2U1gxbC9FajFpV0hWNktJelJBV2w0bzI2QUtaRjlUSUc3?=
 =?utf-8?B?L3M2MlMzanZMQTIyUVFFU1ZqZFFDQ0Jxamw4Q3MwcmJHMUN0ZXhrTVU3dlBs?=
 =?utf-8?B?ZFlscjhJOTIvUXpmRllGSlhQRU01WXdlQzZGcUlFRXVpeWF3NGthYS83bU9S?=
 =?utf-8?B?VnhCdUtldVlLYTNrUXg0M3lqbkNvY3VyUmZSWUIwM1FOL2w5TnhDZ3RlZ0lj?=
 =?utf-8?B?bERHTXZrUXBaeXJhRWh6SnRkZHlFKzBSaFovQVFPRFJvOTQyQ3RQN1V0b1M4?=
 =?utf-8?B?a2pML3RHcnh0emVxWW1RUWpvWEFMQlNjSGc4amRhYVVmVFNLMWNGT3I3Y213?=
 =?utf-8?B?NlJCcElUL0R3ZFRwMld0dTVRbkxUNzRSeVFibUJuckt3bHZCY3dTVmRnL0lN?=
 =?utf-8?B?VllzNVJZK0xrLzZTQjN4RUlzdHhEVm9Qa2NCdUNjQ2t1aytHRlY1Q3E0V2lN?=
 =?utf-8?B?QktTQjRWcTBPVlR5TEpLRytNVE9sTTZXZ0s0VnVKRm43ZlpOa3A1SGxYbUFH?=
 =?utf-8?B?MUt3bStLOGlnVlUrWGc0L0VKd1p4aTNvR3BiSjAzUElPcVRYZ0tKZ29Dbzli?=
 =?utf-8?Q?hT4K1J?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?eVhSVmI4aHhoMENuUDBqaktva052MEx6ZWt2WUdMMlF3dElZZzVZd0lRRGJM?=
 =?utf-8?B?eWlpVjdXTXU2QXZ6VWxGOWZBSyt4MVRWVDM1bVNrRk9iU2VEQXdEbWlXaGc4?=
 =?utf-8?B?aFJlYmNRMitmS0xuMDA1VENhTW9GQUNSMWlxRHkrdWNKdnJRVmpMZVdBc2Nk?=
 =?utf-8?B?ZER6TzQwRDhseVRNNytTNlpHTStINFVEcitOSGllTXZBQUdjRTdUTFRsdmlo?=
 =?utf-8?B?V3NPTGU5cFR2NzZTV3FZRU5YNDZ1M1N5bXdyVEVDZ0NSaGE1RE05c1JLTHBk?=
 =?utf-8?B?MFVKRDVBRjduSittNFVFbVozTW00UHRIbmVHcm9Wd3dscWZSUnVTUEs4Ukdn?=
 =?utf-8?B?NFFNUmdEcjlGTHVKd2RQKzR0YVNESUo2amxpWjFKUEViREdRcTg5b3FSRk5S?=
 =?utf-8?B?cnlYOFlwOCs5YitLbjVOWlhOUEpWOXZkaFo0K3g1MjU2RUdyNDhxY2RkWGhq?=
 =?utf-8?B?UUVFaGRWQ0NRb2lPeEs2VzNIN1RySFpLK3ZoelpWQU13QkxGRGJ5WDdySmRC?=
 =?utf-8?B?MVI5TGdONFVUbElIT2VMSzA3dFBLbGkvTW01Yi9LcmF0REZrOFhyZ01NWWJ0?=
 =?utf-8?B?MFQyZnY3VHlUdWtHSmJ1bTlEa0lSbmpRelRZcUpDUHNFdFpxMkRQZWxNbUNl?=
 =?utf-8?B?UEx3ZjNhS0FicUxvenVIb01nN1NzY244NmZjNnZpYUl0M1dObnpBaVpOd3dt?=
 =?utf-8?B?d0I2VFlQN21lRjN2R005d0ZiVGtFU1A2Q1ZMNkQrKzBFM1dza0ZkNFdFUUtY?=
 =?utf-8?B?ZWM1SUdiRE9ZNlhCYlpEQVVKdVhra1dGYWZUVSt3QVo0Y1BoYVdLU0ozNEd4?=
 =?utf-8?B?U2h6RlRQZE1EMyt5QlZzNHdDb1gwc0F4UHoxYzdIWnBFSzNibVBQc2ROK2po?=
 =?utf-8?B?MjZuWmNYY3p1NlNVNFRyOEdqRDFWTVNJYTBrZG5IMThYbGtlaDZncnpKZ3hY?=
 =?utf-8?B?WkZvaFgwbkxDcVdpdVo2U0l5UCtwaUk4ejhhem1XTFJrSUMyZWhiZEJDdFA0?=
 =?utf-8?B?b0F1dXhDd09qcFFRRUtYVWY0TmxLSmRiTkpoSmVkK2NhQ3RxT2NPOGVicW4r?=
 =?utf-8?B?N2NlUEtvVEQ3aDgxSmJrQWJuOEhnMjlLWUk1RDAvOEVNOHJqdmg3SWhsV01o?=
 =?utf-8?B?ZE14TXNvckFRM3phbE9TUG9JWmV6ak5id0tQbCt4andlRll4dnpMVjlnZU5Z?=
 =?utf-8?B?Vkl3VU4yaXhraGZvVWFvN3pDWVZkcVl2a3lDZlhCcmRrQ0JSbmdhbkJKbjRX?=
 =?utf-8?B?U1I0QTcvclg2WkpZWnFqY2xsdGhaZXE5SmJPVGNSSTlYRStpeGZ5L0txc3Fh?=
 =?utf-8?B?bFpPR0lGVjIrQzJDeE5JYk1INEI3S1JqSjc2QnZwc1FLZERvb2RLY29oTXRy?=
 =?utf-8?B?YjQ3Y3pFbm85dUJMRnZZRm9oU2tIb1d6eXlBSTlHbkNwaGRSaDFlS0tkVk1s?=
 =?utf-8?B?cHl5MW80V25xY2RKU2Vnc3ljTzI1MnR0K2wrcGV6UzIvNGJjOXErZ3lZTlhj?=
 =?utf-8?B?ejNkL2xtbVZibURRQnlLNnM2YWRFcTY4eVIrNmdXSWhpKzF3VXA4Y2h0aVNP?=
 =?utf-8?B?c2tNOFYrWElhSG1JZDdaMzM5cmkwOUNuMjJQcm9Ra2VVaDdabVhZU3ZCcFN0?=
 =?utf-8?B?SHRjS3RsR2VYT0psMzd6YjU0WXF6akFvWTZHS2paTXV4dGtmMTB6UlM3VDhI?=
 =?utf-8?B?TmtiWUczZU04R0U2RFZTdmZLc3hIR3RVcmxhUURieWhlQjFqOW56REpEaklh?=
 =?utf-8?B?NUY5VjkvbC9IMTNKMVJlUzZxZ1R3YlZuSUY4UG1xN3lCL3JZOVNIZkVycWQ0?=
 =?utf-8?B?VVhnalBlZzZ3dEQwb2d5NkE1UENXZ0FpeUtuaVRnQWtXTmlITkhWZEVLczZG?=
 =?utf-8?B?STBxMkJiSFZXRHZxRUZDd2FSYld5NEhNcnZicjI1bXYwSlZDL3lieUZBVHls?=
 =?utf-8?B?S3FzRmxSM0RQb2hYbFFCb2FhZVRtajg4RTdRa2Z2VUc1cEhHS0Z4a1NmNEs2?=
 =?utf-8?B?ZndVOWhjTU5tYThINXVXTWU5WmtOcEtNa09PcEFMcjk0OVRHK2RvVUhuSDds?=
 =?utf-8?B?WWxYNlZMQk1RN3QrNFNQMHg5VEFHVGZCNlZjRnJTQTVINTM1NHlvcE0yelBY?=
 =?utf-8?B?Z2FqUG42cDE0ckZxZVMxajYvMXQycWR3Tm9RL3Jhb0EraXhCV0JtNm1ad0FZ?=
 =?utf-8?B?ZFE5ZVpRUENacUtwbW12cWJQL1pGbkNvbHdwdXJOVGlNdWFwOWJPVjdWY3Fi?=
 =?utf-8?B?ZHl2TUFmbWtacnlmS2VxbEpQYkhHOERvNGtSdmxhZXNqOW9wYk4wRjRsWFZs?=
 =?utf-8?B?OVY5ejlzRi9DUUxEeDZOMEM0U2drU1p5MHJ3L1g3Rnd3UTQ4OU5yUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 25e24695-4e8f-40c4-8ce9-08de6a604c83
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 17:58:16.7059
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: S3sAztED5wt+fJ8yRGL8LtltXM1mcwmrT4em2XYQPCQgiCQeoZGVAMQhZEgrOHbblbsrfnroZVJDqfTlqNYlvnl24c93vGgXNC5UMV9eQyQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7002

On 12/02/2026 2:46 pm, Roger Pau Monne wrote:
> Hello,
>
> This series expands the recently introduced Darwin hypervisor build
> support to also allow cross-building an x86 hypervisor, that's done in
> patches 1 to 3.  Patches 4 and 5 introduce some Cirrus-CI testing to do
> cross-builds from macOS, plus it also introduces some basic smoke
> testing of the x86 builds using the XTF selftest, just like it's
> currently done for the FreeBSD builds.
>
> A result of the updated Cirrus-CI pipeline can be seen at:
>
> https://cirrus-ci.com/build/6723050642604032
>
> Thanks, Roger.
>
> Roger Pau Monne (5):
>   xen/x86: always consider '/' as a division in assembly
>   xen/tools: remove usages of `stat -c` in check-endbr.sh
>   xen/tools: fix grep reporting 'illegal byte sequence' in
>     check-endbr.sh
>   cirrus-ci: add x86 and arm64 macOS hypervisor builds
>   cirrus-ci: add x86 XTF self-tests for macOS build

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

The CI tests passing makes this a fairly obvious one to take.

But, some further observations from
https://cirrus-ci.com/task/4903778798796800

[10:09:34.952]   INIT_O  arch/x86/acpi/boot.init.o
[10:09:34.971]   LD      arch/x86/acpi/built_in.o
[10:09:34.975] x86_64-elf-ld: warning: arch/x86/acpi/boot.init.o: missing .note.GNU-stack section implies executable stack
[10:09:34.975] x86_64-elf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
...
[10:09:35.720]   LD      arch/x86/boot/built_in.o
[10:09:35.724]   CC      common/hypfs.o
[10:09:35.727] x86_64-elf-ld: warning: arch/x86/boot/reloc-trampoline.o: missing .note.GNU-stack section implies executable stack
[10:09:35.727] x86_64-elf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
...
[10:09:40.836]   LD      arch/x86/hvm/svm/built_in.o
[10:09:40.840] x86_64-elf-ld: warning: arch/x86/hvm/svm/vmcb.o: missing .note.GNU-stack section implies executable stack
[10:09:40.840] x86_64-elf-ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker


and various other examples too.  The warning comes when linking
built_in.o's, and while I could believe there's something weird about
*.init.o and/or reloc-trampoline.o, the complaint about vmcb.o is weird
because that's just a plain C file.

The other impacted (non built_in.o) objects look to be:

arch/x86/hvm/vmx/vvmx.o
arch/x86/pv/dom0_build.init.o
arch/x86/x86_64/cpufreq.o
common/unzstd.init.o

and it's not obvious what these have in common to be the (only) objects
lacking .note.GNU-stack.


Also, during the final link steps for xen.efi, we twice get:

[10:09:57.995] Warning: relocation to r/o section .text:00000048
[10:09:57.995] Warning: relocation to r/o section .text:00000090

which smells like the multiboot header.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 18:00:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 18:00:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229720.1535562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqazl-0001KZ-Nr; Thu, 12 Feb 2026 18:00:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229720.1535562; Thu, 12 Feb 2026 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 1vqazl-0001KS-L3; Thu, 12 Feb 2026 18:00:53 +0000
Received: by outflank-mailman (input) for mailman id 1229720;
 Thu, 12 Feb 2026 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=jZje=AQ=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vqazk-0001KM-Mv
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 18:00:52 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c129ac7c-083c-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 19:00:47 +0100 (CET)
Received: from BN1PR14CA0014.namprd14.prod.outlook.com (2603:10b6:408:e3::19)
 by BY5PR12MB4257.namprd12.prod.outlook.com (2603:10b6:a03:20f::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 18:00:38 +0000
Received: from BN3PEPF0000B06E.namprd21.prod.outlook.com
 (2603:10b6:408:e3:cafe::36) by BN1PR14CA0014.outlook.office365.com
 (2603:10b6:408:e3::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.12 via Frontend Transport; Thu,
 12 Feb 2026 18:00:36 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN3PEPF0000B06E.mail.protection.outlook.com (10.167.243.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.0 via Frontend Transport; Thu, 12 Feb 2026 18:00:37 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 12:00:36 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 12:00:36 -0600
Received: from [10.71.192.120] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 12 Feb 2026 12:00:35 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c129ac7c-083c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aKoCr/DnsFUmBGy1dJA45l8MGpmcs7yxnTvaRmiKdOQdo0PV2lVB5WbgIs1hUWZsiwh/UoSU1IakZXE0zrrBocpB1OwldnjEZJbZZh3YGxyAHi3MnslRmtgT4hiZlG+TOTpgEeturuIbbrYndBeP5sWT5/PHLWFVd/3IwLXI21g7oCO2o95Vqxc2u7Yr8EYcBV7co0Yeul+asNBsweknPIDDoddsZd6pD/kEiG40xBcLX0gCyc4QlqX4y+YAMiHoYUdZ1e7WdC0ZSbZneyTVrSeoCzXQK5WokYUAyOKZk2YxKaD42k1C6LAAbnQ9LRQ9EZh26pFS9sVc9ZKCwbbT4Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DCQGq7fHnJ0PSyP4nuF7erMJjxZuAxfPNw4GKvaiNT0=;
 b=liuVQ2O9ylcO91FbRs4JKJdqkSPF1m+VezcNL9rZLR2ydRyMuXXt+X5O3/tvzcDd0SVXY0aR1qacxx6WgkHVXqYwYygrQKnrXFKGJ2DUl/lGSUUnmP4c2LmVnK2r2j87P8bxvfypkkng7u+946enCxU8KMhGjQAOnwghEGcxGa+JF0hyacpTMJ02nmabkWTZUSOd+tkJOZX0+gjdySt/Weknaz2v87OLVeh+FRT5HhEFTyNndesNMxRYyFOb7EHQ3L2rcX5bLNde2HEP+WD41e/laBGgr5QRFSjqL8qJKJFLOLA6BdXie2SmecqKvqdQM4k6INk0f9VJET2TotxKVA==
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=DCQGq7fHnJ0PSyP4nuF7erMJjxZuAxfPNw4GKvaiNT0=;
 b=M/w0Ra54kvwJhx8rKfv+BebVLNvO/WXzKvlVdN34PMjVib0k8V/MH/z79DL6kkkc1UB/zY+gAmXml+BKn8iOaL8mCj2Fibv7bjUYd94x0dXeOKMzJ9Gm0F0NRkQ913Bg2RFknhlZnt9Duq8NQW2dbNrmJ1FLboO8A+4sLfHMwNE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <a5318e5e-3082-4cd4-96cb-98d8dc27ae65@amd.com>
Date: Thu, 12 Feb 2026 18:00:34 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree property
 for domains
To: Harry Ramsey <harry.ramsey@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: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-3-harry.ramsey@arm.com>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <20260206090155.68466-3-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06E:EE_|BY5PR12MB4257:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e3ccb43-7b96-489b-51fb-08de6a60a061
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?OXdBRXZpbXF4dk0vK1NFSVFFd3dOL1dIeUF0QzRic05CUU1OYit0clNUQW9a?=
 =?utf-8?B?Y0JFMDAzRW1DRkhPM3hlNU8vOXdMRmRON0RmUE1obnNCSjFzQ1RrSHR5amR4?=
 =?utf-8?B?YkpSRU44cFRkMXRFT1c4NWc5TnZTdlFqM1VXNlk4YXZXMjVOdzBWeS83cnY4?=
 =?utf-8?B?MWkrSnQxajFONnVSRzlyMi81WHJHZDRvQXhGTG5xZmUydy9UcWdVRTVJTEVY?=
 =?utf-8?B?RVhrUjY1RzJxdFdIK0M5WEUveGFqd1MxUHBKWHBZaVgzY1Y3dzZaVndBMG80?=
 =?utf-8?B?alVyRmR5ZWZINEk5MGFnK28zTjJRRkdvT0pnc1FRV0dheUJKcXVVc0FvWHhj?=
 =?utf-8?B?MXF6YnJuZktkOUVlcTVnaldnY0F4NVV0dis3WjdpZ2V3blNYR1BYNmF3SG91?=
 =?utf-8?B?azh4NFA5T3NVcHQ2M1dYaWRLeEhaZW9xZHE0b1RUMmtjL2k0L3Vib1hNT09E?=
 =?utf-8?B?MFNvWmk0dUlMLzJzZ1lVSlc4eTI2MERNa2JENUFGeExqMjdLMVVtcllCRVFU?=
 =?utf-8?B?UFFsaG5QMEJRR0F2VmowN0prSzRuNndLaFZXR1Z5WWE0azdYelVvSTBpSGlw?=
 =?utf-8?B?elJXMGhSbkR3MnpUbWdYU1pXWjhDWndzMEE0aFNtcVFFMmtNWEozMk84N0g2?=
 =?utf-8?B?azVnZUdwaVU4aG5LNEhvWndub1gySVhoNUVoU1JjMTM0VTAwUjR5VytZZkll?=
 =?utf-8?B?U2xYOGEreElZMzc4dmRDQVZBK1haUGdZM0tFcTZFUkM3Nzl6bzYyY1BXMkRJ?=
 =?utf-8?B?NDRlQUtFM2JyVEFFck5qbVZ2aG1qR3d0NDJiWFpGR1dlSXZ6bWw3dXBpQW9o?=
 =?utf-8?B?TVRQSVZ3VGQvTnZaQ1lSM09ZMXhML2h3VGF6TVhPMG9ORUpIamprVHlTYk9W?=
 =?utf-8?B?Z000YmpvazZzZXp6bXBkanZwdWxFSVBKMExENFExK3F4VlVaUHRDRTIrNCtx?=
 =?utf-8?B?L2RhZE1FSmV1K2dVbmdLQng1TWZaa1lzSWI3SU4rbWVrS3lMN3IvbW5lNGRU?=
 =?utf-8?B?RUJzUXZ1Qi9CTExWekJqQ1BBVG1tU1ArZTNnU1pKSlNrWXk3ci9oV2xuSWZK?=
 =?utf-8?B?dllwZ1g0ZzNnSXFnTlNvU3BERFAwSDBQZzBXRDBQWVFaTkhBRHRPNmd4djVI?=
 =?utf-8?B?emNYQlF1K2FscVdsNUNuSlluekd1YWs1a2p5NEllVkJxZjNzQk9xNTM4b2lY?=
 =?utf-8?B?QUw4aHBESnZ5eDRZeEFaSVVSd0JQaDNhbEFrd0NKNWU0VnAxbG1OaGZDNUZG?=
 =?utf-8?B?TjlGcmozQUJSSmFpQ0hFT2xOMTllTHp2dm1MY3ZxWms4ZmF2YjltN3JVOXZG?=
 =?utf-8?B?dVVwcnoxaW5mdjlPQ3VkRDQ0dkpzRmJteC83WVlKa01waWNhN2hmQ2NlVjRJ?=
 =?utf-8?B?akRTbHJ3TmJsTDlrL3VhZmU4ekhXWEsrcmlyS2J1TWRjSXd3R3BkMDNiY1h0?=
 =?utf-8?B?OUxMZDl5VGJ4SWY3Tk8xM09VZGFRaWpUTDJWSGx2Z2E4bnM3OWVicmhISXp2?=
 =?utf-8?B?azhGcGlEWTM1amt6R280MEdqbm50bWRiSnVoenViUmNBSDhTR1MwcDR3NVRG?=
 =?utf-8?B?dDZBSnhJZkIyVFpxdENDV2puTDI4L1ExK0g2VHh6dmxoM3VYZmR4eUJmMnhz?=
 =?utf-8?B?QmpseUZSSVRyRkplak5MYlo0ZU9kVzNiZldlZkpMR3VZSHlvRnpkZmxiTHlU?=
 =?utf-8?B?ZEU3VHpIQ3prMXJ1eXpyUTJCMkhGR3VZVGUwQUU0ZnVqMnNqZnI4MnRhNVZV?=
 =?utf-8?B?YkxBT25xN2pWNVNmVFNkdXFDemNkVlNtU1pXTjdXV0VQeUtabkZqOHJaUkQv?=
 =?utf-8?B?TE8zSFNRRHFMMFdNZDlrVHhMVGRmbUVuVHhQYk0vMUtHZ1llS25VNEFmQmpJ?=
 =?utf-8?B?VElRc1ZSbmxtK040N3BxSm9yZDlIV1psL2RNdno4clU5NGV3b1hENWdoK3NH?=
 =?utf-8?B?MDUwVitpUk50M2x0bzBXMVpGU3hlL1NzeVdqWnhGMG5uWUxVMExpNlhiWlB0?=
 =?utf-8?B?ZWp6MHlSOFp6SkczNG1zd1JQVnZDT3ZXb0oxM2FOOEtMdlNLSDNTL005Y2pX?=
 =?utf-8?B?bWdydkNqTlgrY0xSUjIxR1EydGRZL1FuRzh2REMzcDJFUTlOSUx5bHptZ2Qr?=
 =?utf-8?B?WEJsbnhYR3Nhc0VtTHdTWjNodTJPaHF6V0dmVGxhWGlsUmJyWTZaUUw2QnNp?=
 =?utf-8?B?SWUzajEvMWREU3FBSlBjaGQ0eFRDUWlSL0R5cHl4VW43SFJHM2pOUnc1S2dR?=
 =?utf-8?B?alBvMGZKdVR1QlFkOXFaaVd5YXF3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	QuS2B44L4oQFQZbkTryBnQIE15l99Of9mtOwfdO93GPo1tGCJfkVEpGgxnHfi7aPCXO8KbCB772fbiHoKOAqZb+1iTpmMZ6gY79GACA6AWapfcrEJT7edr260xMfL8J3w5gk5Sol0bvbCOROFLcDBL4OG160FJdX/WOuAsZVXV3F/j4PUeqrsKsIyLkCp38uHWhoO2yMXivEA5OnfHdCN5pK7a/YpCwEVugLXKi5KyVLlWX9cli7cyJqkGldGiVUQMkYTMsmqomiCWGq8t/0xpNCdlcuLajfIZepoYlksYZ27R+dEVREWtaI18IHhsrjzcyzI3nej5DaSeGssRK4JZeJOGdf6R4pRwHDE+TukqeecibWWNNJafcYDUWam4hibiblYICbslmyAFq8WF3bYRAAVjflHzu81EAyuUYltJG9TjZ6eUwgz9Y7G+/7Bo44
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 18:00:37.2913
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e3ccb43-7b96-489b-51fb-08de6a60a061
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06E.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4257

Hi Harry,

Just a suggestion. Please feel free to disagree.

On 06/02/2026 09:01, Harry Ramsey wrote:
> Add a new device tree property `v8r_el1_msa` to enable/disable the
> PMSAv8-64 translation regime at EL1.
>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>   docs/misc/arm/device-tree/booting.txt | 11 +++++++++++
>   xen/arch/arm/dom0less-build.c         | 25 +++++++++++++++++++++++++
>   xen/arch/arm/domain.c                 | 16 ++++++++++++++++
>   xen/arch/arm/include/asm/domain.h     |  9 +++++++++
>   xen/include/public/arch-arm.h         |  4 ++++
>   5 files changed, 65 insertions(+)
>
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index 977b428608..431d285b6e 100644
> --- a/docs/misc/arm/device-tree/booting.txt
> +++ b/docs/misc/arm/device-tree/booting.txt
> @@ -322,6 +322,17 @@ with the following properties:
>       Should be used together with scmi-smc-passthrough Xen command line
>       option.
>   
> +- v8r_el1_msa
> +
> +    A string property specifying whether, on Armv8-R aarch64 systems, a domain
> +    should use PMSAv8-64 (MPU) at EL1 or VMSAv8-64 (MMU) at EL1.
> +
> +    - "mmu"
> +    Enables VMSAv8-64 at EL1.
> +
> +    - "mpu"
> +    Enables PMSAv8-64 at EL1.
We can reuse this property for arm32 although there is no mmu. This may 
help to keep the code common between arm64 and arm32 for v8-R. So, the 
changes I suggest are
> +
>   Under the "xen,domain" compatible node, one or more sub-nodes are present
>   for the DomU kernel and ramdisk.
>   
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 4181c10538..41f538fb50 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -315,6 +315,7 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>       struct xen_domctl_createdomain *d_cfg = &bd->create_cfg;
>       unsigned int flags = bd->create_flags;
>       uint32_t val;
> +    const char *v8r_el1_msa;
>   
>       d_cfg->arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>       d_cfg->flags |= XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
> @@ -322,6 +323,30 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>       if ( domu_dt_sci_parse(node, d_cfg) )
>           panic("Error getting SCI configuration\n");
>   
> +    if (!dt_property_read_string(node, "v8r_el1_msa", &v8r_el1_msa))
> +    {
> +#if defined(CONFIG_MPU)
#if
> defined(CONFIG_ARM_64)
> +        if ( !strcmp(v8r_el1_msa, "mmu") )
> +        {
> +            if ( system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_VMSA_SUPPORT )
> +                panic("Platform does not support VMSA at EL1 (v8r_el1_msa)\n");
> +            d_cfg->arch.v8r_el1_msa = MPU_EL1_VMSA;
> +        }
#endif
> +        else if ( !strcmp(v8r_el1_msa, "mpu") )
if ( !strcmp( ....
> +        {
> +            d_cfg->arch.v8r_el1_msa = MPU_EL1_PMSA;
> +            if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
> +                panic("PMSA is not valid for domain without static allocation"
> +                      " and direct map (v8r_el1_msa)\n");
> +        }
> +        else
> +            panic("Invalid device tree option for v8r_el1_msa\n");
> +#else
> +        panic("'v8r_el1_msa' property requires CONFIG_MPU and CONFIG_ARM_64 to "
> +              "be selected\n");
> +#endif
> +    }
> +
>       if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>       {
>           int vpl011_virq = GUEST_VPL011_SPI;
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 2eca2b913d..fc4c7ae734 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -35,6 +35,18 @@
>   
>   DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
>   
> +/* If this domain should use PMSAv8-64 translation regime (MPU) at EL1. */
> +static inline bool is_mpu_domain(struct domain *d)
> +{
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
#if defined(CONFIG_MPU)
> +    return d->arch.v8r_el1_msa == MPU_EL1_PMSA;

#else

             return false;

#endif

Further if we can set `v8r_el1_msa = mmu` by default for everyone 
(Armv8-A, Armv8-R) , then we can reduce further if-def.

> +#elif defined(CONFIG_MPU)
> +    return true;
> +#else
> +    return false;
> +#endif
> +}
> +
>   static void do_idle(void)
>   {
>       unsigned int cpu = smp_processor_id();
> @@ -731,6 +743,10 @@ int arch_domain_create(struct domain *d,
>       if ( (rc = sci_domain_init(d, config)) != 0 )
>           goto fail;
>   
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
> +#endif
> +
>       return 0;
>   
>   fail:
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
> index 758ad807e4..1387adc0e9 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -29,6 +29,11 @@ enum domain_type {
>   #define is_64bit_domain(d) (0)
>   #endif
>   
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +#define MPU_EL1_PMSA 0
> +#define MPU_EL1_VMSA 1
> +#endif
> +
>   /*
>    * Is the domain using the host memory layout?
>    *
> @@ -126,6 +131,10 @@ struct arch_domain
>       void *sci_data;
>   #endif
>   
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +    uint8_t v8r_el1_msa;
> +#endif
> +
>   }  __cacheline_aligned;
>   
>   struct arch_vcpu
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index cd563cf706..0ef445a273 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -355,6 +355,10 @@ struct xen_arch_domainconfig {
>       uint32_t clock_frequency;
>       /* IN */
>       uint8_t arm_sci_type;
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +    /* IN */
> +    uint8_t v8r_el1_msa;
> +#endif
>   };
>   #endif /* __XEN__ || __XEN_TOOLS__ */
>   

LGTM.

- Ayan



From xen-devel-bounces@lists.xenproject.org Thu Feb 12 18:30:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 18:30:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229772.1535573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqbS8-0005Nf-UL; Thu, 12 Feb 2026 18:30:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229772.1535573; Thu, 12 Feb 2026 18:30:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqbS8-0005NY-QN; Thu, 12 Feb 2026 18:30:12 +0000
Received: by outflank-mailman (input) for mailman id 1229772;
 Thu, 12 Feb 2026 18:30: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=zRx/=AQ=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqbS7-0005NL-G9
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 18:30:11 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id da664158-0840-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 19:30:07 +0100 (CET)
Received: from BN1PR10CA0010.namprd10.prod.outlook.com (2603:10b6:408:e0::15)
 by DS7PR12MB6093.namprd12.prod.outlook.com (2603:10b6:8:9e::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 18:29:58 +0000
Received: from BN2PEPF000044A2.namprd02.prod.outlook.com
 (2603:10b6:408:e0:cafe::37) by BN1PR10CA0010.outlook.office365.com
 (2603:10b6:408:e0::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.12 via Frontend Transport; Thu,
 12 Feb 2026 18:29:55 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000044A2.mail.protection.outlook.com (10.167.243.153) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 18:29:58 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 12:29:56 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: da664158-0840-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o3Dlbk2k5lnegglSS8YAykS+fBTxIO+UPtp5k06GscSVx9DtTJtolbvL/ZN/O4DViFE8nLQTZJXGFrRDvmPhs9RIV2xN+HsLkfnaruxH0Fgj+NOaPpRqZDl6S+7pUIn+uEk+XbEFl9MC3ALHiPxxs5XYQwWaYxk4fvuiZ4dEeeI9eKpebzByUskTYV03nX/j1GLuBycK7rq67qxXJ7kybCecCebDXUke+bLLtvgNHyGKRhTjP7a9Fb+my0Ka0bNPFJR6QKKuOwVOtUCpxyT2D4c4+4TtEIzXsFLbKKXZb6LcsMnA6wjTq+spoEX7FlBcGMemJm0mpqVFgMPtfPgCDA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=YNKkKIyYpWFFC41c+bUZedvXnny+kAmHMsF6G5Ou5rw=;
 b=GNHWE9ZGVTZ3Mhm7N/NXEJLl4F/U6yAHQhcD8W1nIKWsbyQRw0bToCdOt/h4gJ5fdzjIuRSOEosHST1Meto41tmW9S4nlYsDdx2aSGlp3aFRRHnx/f2M/NjUxwvTM6DQ5cb8AYCSd6LM4CHp8v8T8x7gDvubsmjCGEx+8i28dqjjqEqzIHazyXMwa83RmqIHSHLF8B0L7mMXn+iFA5P+4N87ThKB6+gmf8IuogATIXfcj8GO1thLUbmTh8O55Ds5dTzdzPocDnXZsNti95GcEITjDh6MfQ3ZCexHifp5c10ccP8MZorLwEU5Me51ZijwOzDIcMKy4r3qJ4Pttrc5VA==
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=YNKkKIyYpWFFC41c+bUZedvXnny+kAmHMsF6G5Ou5rw=;
 b=Q34b2QT0IIhSavnyaNTEEC9/ATWr85mrutItvBwIDGkJf5Kly1woD5CJV35NN72FNNRJNdmZVQxEZFj6HdeQa3TqgmrKtPQyaENIc0OzXQfejU+o4WvICKFFUBk2JfO5fFt6+1MrtXRlt85VcQPsLTlG0zh4zE6rTUF42YDnBn4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Thu, 12 Feb 2026 19:29:55 +0100
Message-ID: <DGD73M12VYML.SNZI1JQAXHAQ@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>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v9] common: honor CONFIG_CC_SPLIT_SECTIONS also for
 assembly functions
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <a11e692c-2bfe-440d-915b-818b133874c2@suse.com>
 <bd656991-59bf-4435-b6e2-554b9ef4725e@amd.com>
In-Reply-To: <bd656991-59bf-4435-b6e2-554b9ef4725e@amd.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN2PEPF000044A2:EE_|DS7PR12MB6093:EE_
X-MS-Office365-Filtering-Correlation-Id: 20f572ce-c7e7-44f7-df3e-08de6a64ba14
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|376014|36860700013|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dkRFeHZxdFg1bXlHN1ovMXVqNHpVWjl6RUlja2lxVWpiUFNQMHhXWkZaYUN6?=
 =?utf-8?B?UTZnK1B4amVSWDh4RzE5Wk1INC9vK3F1ZGJKN29SWU5GT2lFaGRxb0IrOE9n?=
 =?utf-8?B?eERBdnNicUdEbnlmZHlDVVU2U1BDWTJUeXprTFZEcEN3SHhrczVPTWZEbmFO?=
 =?utf-8?B?ZDIrbzFubC96Z28vQTVUVmdWWlRzRURGenZSNWZsREZEZ1NiNkgvTUg2YzJE?=
 =?utf-8?B?aWJLK3VSaUhCN3k1NWdFcGlvaXBZRjdkdWVIdEJNNUhUdDdaTUlaeElZeTZY?=
 =?utf-8?B?WnBZV2U3Z3AxVnoydzBrUzltT2VrOUwrbUVNWVI0bkpNaS9MVUQ4V3dGNy90?=
 =?utf-8?B?cXBkQWhSTW9MbldrQ1BuUzh0QkFVVFQ2cjY0RlZMbG93WTdMeExYRUFreWt2?=
 =?utf-8?B?S0RQMVFKdDhKUFBKS0d1SkttQmZEODQ3bGpubkxOUlhITHltMkFqaXpHZmhV?=
 =?utf-8?B?NjJ1bXh0V1J1b3BJRUsyQ1Fxa0VqQ3ROWXQ2TjFXRGswMHVtYVRrb08zQVp1?=
 =?utf-8?B?YzJDOE51UExsbHRDY1ZOZzJ2aXFucE1mWXl0eWdsc3dGQmZkMkIxTFlaQlRW?=
 =?utf-8?B?aUNHdFVqSUpQMGpEU1dSQlZranJhMklSYXc3SFRVTjJqc3JMS0tWc3RTTkVq?=
 =?utf-8?B?S1oxd2w3ZmxmSUxxak5VWldFL01IZkoyTlBOWmxISDN1QTMwdzEzeDhCdUJE?=
 =?utf-8?B?SjZPVHIwb0dsMzJTdkE1R1grcU9JaEcrOENFWEZndDBDZmVuSWMvOThzYUZh?=
 =?utf-8?B?YmtOQTNjd2tWSlVaOExOeEkwZUpqc0tNMzg1OGMxTGdQSlZVVXBTZzR4T3d3?=
 =?utf-8?B?cVY2S2ZqR28rMjBZanV5dDljZVVRUmZNME1YS0x3MUVlanp5UUxRQlk3SEtj?=
 =?utf-8?B?RnpGL0EySFBBRkxsblZZZXZBMDRlcFhZa1Q3TnRjR3E1dVl5RXhpb2pMaHFE?=
 =?utf-8?B?WXFqMjcxWGxVWU1DbWhBK1AwNW15QmY3aG9iU2tQa2NCWllpNFJwemJyd2Q5?=
 =?utf-8?B?Q3A0K1owbDcwOU4yMmFzMGwwTWYvS1prdjFKNmk0UEJFMDhxTHNnZjFHVHpQ?=
 =?utf-8?B?RnlDN0l4NER0K01qTENMa0gzUlErTEpPejVZU0NmTXhOc0dZTFFrRldDVWdP?=
 =?utf-8?B?bGFHd2w3RnFhUWhkc25sVUtsVnQxWXJNQUxiTnREZFY1RVhXOUkyc21ZeXZy?=
 =?utf-8?B?UVRsait3VURrbXVvS1JnV3YwQXNlcjdaNWFBcXNrWk4rdWR5c2xTZWIzeVB1?=
 =?utf-8?B?RHd6Rko5YXZtQmJvdGpBb2g5MkUxdWxEbWFYUmVRbU81SFhSZkdiNkJTM2F5?=
 =?utf-8?B?cTRKM2h2bGFQeHdHVFJ1TUxNakFOWEgxZUZScjhXQWVMZGYvRjZITDNodjRi?=
 =?utf-8?B?MUNUL3pCTFQwSk02RWRRSzFyVDAraUVJZXZ4cGVSV2djbWNKbHdLYnh5RFp5?=
 =?utf-8?B?ekpPUXVoa1pucXhBZUNvUktsM01sZ0YwOURsSGtuUjhjUlpPeXBGYi9Iamw4?=
 =?utf-8?B?TklZUkNoVjM0NVV6c2ZpOEwxSGc2TzZmTXpUTVBXSTBhdmVPSEx2VUlFTkk5?=
 =?utf-8?B?TTJROE5SMWJ2b05BRUs2OG92WkM1L1h5ZWpjRThKTGEvRTBpb0NqQ1p4TGxQ?=
 =?utf-8?B?bjVLeWkvdUFvSTUxRTFmcmFNSmh6NmNrYUE3UnpaUm9RZXdxaGpYWDUvRnF0?=
 =?utf-8?B?NHh3SG9ZVjVjd3BrRE83NVNwcHl2UndNVWw5U3FJZ3EwVURPNjE2K29DTmdF?=
 =?utf-8?B?MFpuaEtBcEE3M1ZsbkpQSzFzRnhkSEZBZXlyWGVuckJTYjdMK0Zua2VsYUFU?=
 =?utf-8?B?UkN4WVNJbEltUFRJTFBVYkJ5ZkVDOHFhdFlpcE9uVDFBNUpvcHdrdnhyVm9V?=
 =?utf-8?B?dm94NUttUnl1SWtiZUdieFVzcmRic2dPRCsrWTh3YWx6MGQzd0Y5UkJDSG5S?=
 =?utf-8?B?SWQxdHlLUHFidWhKU0pFMzIwSzN0aER3QVVBV0FiL2NUdFl3L1lwODhOa2l1?=
 =?utf-8?B?bGphQ2N2WUtEU0VOdDFZT3ArMElCOVdudGNJckVoS01nOGhKaWFDeW9rTGxk?=
 =?utf-8?B?SFBXTlZORXVtR2xnU25HbFd1aTU1NlV1aDNRcmJ6TWxqbHQ2Wk9pdkFxSDkx?=
 =?utf-8?B?ZG9uWDRSNkNoVXFUNTU3a2xoUTc4eXdBWWlhK3h3SHo5QjJuS0VmbW93clNG?=
 =?utf-8?B?Zk01RklKVVc1a28wbTd2dUFhamlGOWNwd1VPYzgybFBVdmFUUGwweXRnajFT?=
 =?utf-8?B?ZGpaNXNTdmxtNXNZZzFoRjdjK1VRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	wZ0l0eQELZE2fpdmk9X8juLMTeA8semYcwsSCfyDu8rzQU0RqZCyHvvSikK1XdA8U0X0MIF4zHguAaAIQy26KN6U2/F9KStHHkOo3H//bsgNXGSyHGnrrtu5gabJnhMkZPFFLLJu2L5KfgLZsJeQ+nB5BEZXx9EHa70CktVLr77sY/C4JSJpX6tF9j3hDH8Un/PbZKXTjSNmGuvX3Qt5NUjO9AkI2W6TvNwH13r3a8xgqVnR7cAxYkz6FwPiN9rmHYvYKdGDwYsuUf0Zg4QRIlU6ESLKB4YZEzyPe13Wh79w5etIshFGpR94+yXB/AmO9TAwCazIbX7NzHdS10N+Zc7qZVAkNiNbX4zALXoo0vlKYbgL3vvZm0qZnWxbKjpUOq6c6VNs3mOneBd4KBsBwpibTs2tIejaLPwdJ7vTsJznBc0db8YugeehQcKK4Y/h
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 18:29:58.3965
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 20f572ce-c7e7-44f7-df3e-08de6a64ba14
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000044A2.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6093

On Wed Jan 28, 2026 at 3:35 PM CET, Jason Andryuk wrote:
> On 2025-04-01 06:58, Jan Beulich wrote:
>> Leverage the new infrastructure in xen/linkage.h to also switch to per-
>> function sections (when configured), deriving the specific name from the
>> "base" section in use at the time FUNC() is invoked.
>>=20
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> Tested-by: Luca Fancellu <luca.fancellu@arm.com> # arm

I don't seem to have the original patch in my inbox, so I'll just answer he=
re.

About the assembly modifications on the exception entry points:

With split sections the linker is free to reorder all of them as it sees fi=
t,
which probably means we want int3 after every jump to prevent straight-line
speculation from allocating an XSA number for us. It's possible the linker =
might
inject them, but it might also not. Better to err on the side of caution.

Though more generally, I'd just keep all exception entry points in the same
section. They'd never get GC'ed anyway and we're paying an extra branch in =
the
#PF path for no reason.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 18:32:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 18:32:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229782.1535581 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqbTr-0005sQ-77; Thu, 12 Feb 2026 18:31:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229782.1535581; Thu, 12 Feb 2026 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 1vqbTr-0005sJ-4Y; Thu, 12 Feb 2026 18:31:59 +0000
Received: by outflank-mailman (input) for mailman id 1229782;
 Thu, 12 Feb 2026 18:31: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=YWH9=AQ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vqbTq-0005sD-3D
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 18:31:58 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1bce093c-0841-11f1-b163-2bf370ae4941;
 Thu, 12 Feb 2026 19:31:57 +0100 (CET)
Received: from SA0PR11CA0130.namprd11.prod.outlook.com (2603:10b6:806:131::15)
 by CYYPR12MB8889.namprd12.prod.outlook.com (2603:10b6:930:cb::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 18:31:53 +0000
Received: from SA2PEPF00001504.namprd04.prod.outlook.com
 (2603:10b6:806:131:cafe::b3) by SA0PR11CA0130.outlook.office365.com
 (2603:10b6:806:131::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Thu,
 12 Feb 2026 18:31:36 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF00001504.mail.protection.outlook.com (10.167.242.36) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 18:31:52 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 12:31:52 -0600
Received: from [172.24.25.217] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 12 Feb 2026 12:31:52 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1bce093c-0841-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bWKp09CU7p2XeKtec7PCYXDjFWv6rFUnLlCt2PyAsrayDYe/TmUbVcMV4awy8q8xM6wKzsPaN+88yZB2Er4+NO8Q9vy+gYxZc6qzTQvLB1hvQ3Dt8eP0mJgYKIbnd2sGypyp1Ym+4ApJ4FB8IJpyk8LrroQieVmX3SnWZfYa+kcwoNxrdpT6ObrQiWULd1SWGcEAABvr69PppsUWUahFzPxrwz93mgPb3jPkPRMGs0PYC8jvhm22psbSLRYa8lLof/Q50IcbQAz+Vl0moruNL51kEeZBvA613wp11E+T3VNRMKP99R4iiBJh2i/ho0GdYzPKxXrQ/V5bhr9/tTURFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ob+SzU+ZehTFeRGocRStEOWhaF8HhSP5SeE5DPDUFD8=;
 b=YKZ1su4nhezxatyoWp4DINigOUY5wj177zNo4SKIK/rMZX+6SHlP1zDsX/xQVMuPW9N8+FcRtLk3sKxkThrVnEBWK8rpdNoHsTU+LGA95q3yvsduLJLmMiNArrA+z3me+ITjlb9l97u78tY714LFtIajMcAS1awmdELap8Ov23HByRTK/YuOWF549frAy/Wo9JygUa3E9SayTRLC+ZZiaaDLhEHwH5NJKYAUv0ROvX3bWd0chOXsqte6qcdD2VgqiPv9r3pU738ldgd4lJbkmGhXGwFa7HgdeRmG/+9j1kEyOZTbEAQaStYIL2XlEWAidomCeCqR5wKIf3pJPj5kLQ==
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=ob+SzU+ZehTFeRGocRStEOWhaF8HhSP5SeE5DPDUFD8=;
 b=CIaS/gnw34393Q2npPTRf012SEaGeWNhGM8Vxpq0VR2LvGxOzzllyQOwY7EF8bJVhCMm9TDqyX41X80wFG+hvbrlxXMlCR4OYlVA+LTy4YpdHc1F0gwhKBurUszWWJLR5K4CQSgyjp3b7iOpX+8Fn0YhlHm/B6i0F59D24viL5U=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <5c2e5675-9577-4c5f-8ab8-9607dcf59e24@amd.com>
Date: Thu, 12 Feb 2026 13:31:51 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] tools/xenstored: fix live update
To: Juergen Gross <jgross@suse.com>, <xen-devel@lists.xenproject.org>
CC: Julien Grall <julien@xen.org>, Anthony PERARD <anthony.perard@vates.tech>
References: <20260212095427.143177-1-jgross@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20260212095427.143177-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: SA2PEPF00001504:EE_|CYYPR12MB8889:EE_
X-MS-Office365-Filtering-Correlation-Id: 89b903d6-0158-4a0e-a9a0-08de6a64fe3e
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?VG92U3NEWllsVUsvQTk5VE55WEJzTi9wcGRyMHFMRldremlVeDBkd0dDdmF5?=
 =?utf-8?B?dkJtdzZQdHdraGJSb08rL3FFa1NGaHFGampqcmNtMmpwazcvTnhRUCtWM1Zm?=
 =?utf-8?B?aFZxT0k2OW8vNzhVZWtUcDEvYUFFaEFadlFTQ1BmLytoS2twZTEwZWF5Yksz?=
 =?utf-8?B?QnVxZ1VrVkxrOElPZy94RXRyTEsxNjAzTm81NVFucEJvZkRVZ2VCbHB4VXRL?=
 =?utf-8?B?TG5sZThXbXdxV0E0Zmw4MUdtU1dJYk1waENSZUxHa2UxTERqUlNmOTZyL3di?=
 =?utf-8?B?TEhuTVR3T2FHdFc0VGlvZVlGdS9VUldhTVJHdjJmamF4WitFMFVLM2J5ZDEx?=
 =?utf-8?B?UDJTVU55NXJ6dWZhT29HMi84MnhCYUh4L3pmNXFtd05rMEFOTi9vTWtxM0Ev?=
 =?utf-8?B?S21kM2xJSVFSU0VDeDJRSFVVSmJVcy9zRVRvK2dzMjBDRktISEZyNTJsS1g5?=
 =?utf-8?B?WVltQ0daSzJoSmlRSmlReEJSUk43bGhITkl3TXFwWjBKRU1DR1FFSURtSHAx?=
 =?utf-8?B?MG5UY0M2TmtpMmJ6SkNiaVlreGRPcnk4TXp5KzM1VzBYZy9ldGFhMXUzTE1L?=
 =?utf-8?B?MXFXNzNWdGovbytWYWExUEFxQ1REN29JOHJTT20vSUpFeEkvbVMyekdJaEl6?=
 =?utf-8?B?U0lNWXcrTGRqRUs0Z2IvYnhhdDlJNmZacDByUnp1SUZWcjVJVVMydlFOZTQ3?=
 =?utf-8?B?bVNlMExBWGg5cTBYS2JoV3FNMER3cmhCYXFDamo3NFp6clVvNFMyMWJkWThI?=
 =?utf-8?B?Vlo2K3dBbERjOERtR2JKZmMxdGgzaStqTEVqTXh5VGVPOU1VZ3duTU84SEo1?=
 =?utf-8?B?NkVNcVExcVBOcnp5OGdkakdGOE52ZTFrRWlpZFZ6K3h2VEhMcCszMDBxRDEr?=
 =?utf-8?B?ZkFZU2J5cWxjam1BNys3WkZFZVF6VnZRU2NsWHh0K08rSWpTMjFaV0w2QXU2?=
 =?utf-8?B?czFSZnNRTC9rdDZKUnpyRU0rNkc1K1RFdXhoSkdEbDhIcEdrOXU0am4rRTNV?=
 =?utf-8?B?VWc4THUwRHZyU1VzRGx0bnQ5TmFrL05kRytxMloxaGxEeDQ4eXF5QWg3QUQ3?=
 =?utf-8?B?aFlENDRlQlBTT3VjN0JXT2dhaGFobWYyNnV5UkFFTXlmYktaQlZ5bm1XeFdU?=
 =?utf-8?B?VzR1NjRpUTRicGM3bThaWDRMZkZ3WmtVSCtueWlITW5uOW1mMGJGcUZNSDlE?=
 =?utf-8?B?ZlRwSXUrOEsxTlJGRDlTMEhVU0dSbWpLQ1gyd1c4TFZtQ0ZQMmNZVlBjTTht?=
 =?utf-8?B?d2ViWStuQlQ5WG9KN3lnekRxcFFSRWdpL3Mwcysyb012Z1ZXR2M0SE9ZS3lB?=
 =?utf-8?B?eG5GQ0FPVUwvM2VxVDJ2aHdjcjF6bDJqaWdBcU4xb1BlYVNhcGxrWjVKc3lS?=
 =?utf-8?B?WVk1Rlhmb2pWOTBzWWxyTmQzUC9jTzgwQXJSRG1tL2ZuM3NDN3BCNUlMR1Zk?=
 =?utf-8?B?RzF3UWtxeVdEMnBRV1NreHBvNU5CK2NoNkJjeCtFcFNCLzdnRmEyK2w5dXpS?=
 =?utf-8?B?UDhrajBiS0JCK3pDT1JWVm1BQ0sxTkNzbHFjZXZ2ZVZ5MWVIN3JBZDljMjlP?=
 =?utf-8?B?a1FDcFViaEdkak5mWWFybkk2Z09KSWpjUlJ3UGZFY2xhek5pZ09oaUljbjlm?=
 =?utf-8?B?QkMzZDZOSXY3U2pZQi81d0ZYR1FBaE82Q2ppTzMzYlpmSmxZc29aSms2N25R?=
 =?utf-8?B?bW5aWUFGOHNWVGFGV2UyK3FuSjRWZUdNTFNYOU5aOGVPOUtjQi8xWHorcE81?=
 =?utf-8?B?ZmJmSElHNjlvNGRtS0prR1orN0s2bHpJcURCSVE3cDEwVW1JSDRBZWI4RXNI?=
 =?utf-8?B?TDlTcjJjV0RTQmVsM0JKRXFZTWFUNlBlSElSQzNLYU0wV00zSDJ2M0ZxcGYv?=
 =?utf-8?B?clRiTHk5ckdUYWo4R0FLVnJib0RnZUdRQ2JUeWVDM1ZQbGEybDgvWGxmL0Fp?=
 =?utf-8?B?UnM2ZE44anZPM01aZ0xXMHNjdk5CNkNUR0ZyRXZ3c2FCckpMT1BZT3JhVkZt?=
 =?utf-8?B?RVp3NXJ3LzlMRzg4T0hpdHREb0hLNVdBeDlTR1NsNVc2WWNjdHgyUWZ0L1N1?=
 =?utf-8?B?QVQvUGRFam8yVjVrVXE2MUpSL2EzaGdCL1lNaFJnbVdJTnBXTEJwVDhwTHFt?=
 =?utf-8?B?eU5xS2QyeDB3SHU1TW50WEErQTd1eUsvTmpBTlAzaFdqckRFMkdOMHdxS1FG?=
 =?utf-8?B?QXQyTW1zcFlVLzh4elV1dmxrSktrQis5aXp4NFMzaUxQQjd2SGNUTnNaTVND?=
 =?utf-8?B?QzVEM2g5UHNBQ3QxQ3lMbkhEYU9BPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	dl5l8VWK1c8XWrDJYkZ5C5knU/PPCtEgOeMcQcPTDH+CICygLrrdBq7bRNyw//UmrCL12SsYWQg0w+9N1j6feZPnYUMl6NkSPvvrEKZWGf1XkKOd/eP6yYcR+EEBAGutpH2bnZ3nDWSKY6B/axsaZYfORyuCt5YRAoWjiYOAaBT7i35RTtbdI5CsDHyzhpF2poUEVeeD7aA/Iw+UxEu0FwWpe7NvLzPOIiGlz0EdnvCuW4LHnU7gCT6knR54cJE+VESX6q/Qi28btC/FK3bNHQn8N5YaL4V5k7EFQco7y8aqNy6iLm/nQaWB87E3iYsLS4Cuwr9hSzXqsNVaFHEW2Toa5W56m5mcCyqmCoHi3Wh1yCCUYE7qGxStMbliOjiBgNHWR6dgDkqMtQjly5yDhSiPaVthxZoHjGGMKBCUP0Wyydni9VdnbV5Rxs6Ck7wb
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 18:31:52.7610
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 89b903d6-0158-4a0e-a9a0-08de6a64fe3e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001504.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8889

On 2026-02-12 04:54, Juergen Gross wrote:
> Commit e5b0a940557 ("tools/xenstored: Auto-introduce domains") broke
> xenstored live update, as init_domains() will be skipped when live
> update is detected to have happened. This will leave priv_domid and
> store_domid set as invalid.
> 
> Fix that by calling init_domains() in live update case, too. In case
> of live update skip introducing any found domains, as this will be done
> when reading the live update state.
> 
> Fixes: e5b0a940557 ("tools/xenstored: Auto-introduce domains")
> Signed-off-by: Juergen Gross <jgross@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 19:15:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 19:15:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229831.1535592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqc9g-0002uR-D7; Thu, 12 Feb 2026 19:15:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229831.1535592; Thu, 12 Feb 2026 19:15: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 1vqc9g-0002uK-9B; Thu, 12 Feb 2026 19:15:12 +0000
Received: by outflank-mailman (input) for mailman id 1229831;
 Thu, 12 Feb 2026 19:15: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=YWH9=AQ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vqc9f-0002u7-KS
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 19:15:11 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24c1c0b0-0847-11f1-9ccf-f158ae23cfc8;
 Thu, 12 Feb 2026 20:15:09 +0100 (CET)
Received: from PH7PR17CA0065.namprd17.prod.outlook.com (2603:10b6:510:325::9)
 by SA5PPF06C91DA0C.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8c4) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Thu, 12 Feb
 2026 19:15:04 +0000
Received: from CY4PEPF0000EE3C.namprd03.prod.outlook.com
 (2603:10b6:510:325:cafe::6e) by PH7PR17CA0065.outlook.office365.com
 (2603:10b6:510:325::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Thu,
 12 Feb 2026 19:15:00 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000EE3C.mail.protection.outlook.com (10.167.242.13) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Thu, 12 Feb 2026 19:15:03 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 13:15:01 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 12 Feb
 2026 13:15:00 -0600
Received: from [172.24.25.217] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 12 Feb 2026 13:14:59 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24c1c0b0-0847-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hGpiEpHKSLjnyWaJ04yTdoy/XI8c0+Qk+4RxsJywTCY8+8cvzJDZCK5EdJZTaBEnKyG3vwcSKjaODEl2uD2x7fnw+QFOzWSgrvPnbZueTjIlujIvS9Ttfqlded53XFkJDJfvlAqeKUUMLalA8LP4eraDOvSX9R82b8ocapgYdZ8Ayp0T5EnINNYsqxtHo0FCMDW4Sw2irwCc0o/kldrtSqYxNlnJgplBNp+t5pwVTyZX2KeFKJiDUi0yJ/Jfdg9BT6OwcyAaa3mqpTzd8OpAh7t93HDcy4Nh/I+Ci/bGz4yhi/hfMCGaImu7J6qEM2VEOZLkjz0e4YlU2qmHA3ps4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uIhwiN1mnZsoMOWzjxzVrKuppr/KaGrY9g/xEiB4DRA=;
 b=RXUXNcHPUFZIX7Ol0VdFEelcIWlhLQa3lGXg2DOTwQ31lFHuMVLz/CGl9sD3GG2qDX+OAEDC6iiUO89WeYE/Wr7V2K9OytNAf4akjJCKl/MASSoZ5XxlK/0T9T2wBcKM7KyQCU7XAnIgsyspiADvKYt6JhHSk0FV/lm4+8mHkiLNlaUHvpz3LX3r+WRzAQyf5f0lk3mREGMz5q6tDW953DU7t5SXO77LYHN44uc2YAP550ppWIj7AP+Do14PlAOfvBqrf3KIC1PKJghSGm7i8ASa+WeLfTV2CIEngx4oyDZCQwhSiFWlJ/E68Q6BBZYlEjPOVbVt9yb1teFyxJv3xg==
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=uIhwiN1mnZsoMOWzjxzVrKuppr/KaGrY9g/xEiB4DRA=;
 b=Tii4BKKscgvEPUledu654XL5i75fQRM6PzlBzXZXZEbyxDe5l7yCoOhC6bwrXP9esvxrcAdwA8V7vgcZ1VkHeDx1d9TFC6pswcSuQgR/omoQJ/z60R4Si2+fPIeRhwWX0OQesrbr4p9HApPGpyjG3n5ag9h1PRb+lE3m7WXcx14=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <37fd63a2-786c-497e-9bf9-de9ea9708509@amd.com>
Date: Thu, 12 Feb 2026 14:14:58 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Put wait.c behind CONFIG_WAIT
To: Jan Beulich <jbeulich@suse.com>, 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>
References: <20260211170118.109946-1-jason.andryuk@amd.com>
 <73bf621d-0795-4fbe-b926-71be3525b4c7@citrix.com>
 <cb5da09b-66c2-4dee-8cc1-f67f596a3c18@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <cb5da09b-66c2-4dee-8cc1-f67f596a3c18@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: CY4PEPF0000EE3C:EE_|SA5PPF06C91DA0C:EE_
X-MS-Office365-Filtering-Correlation-Id: 6577d237-81fc-455b-e434-08de6a6b0693
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?OUJ5dnBMRGQ1anlFUC9vMW0raEx2WmFYMXh3SzlJc21zNFZpQURQR0RubWc5?=
 =?utf-8?B?MG1pWGtuVUxuZHpuelFOODN1cElPbjlXaEpJdmpFUkxSM1dwNklraFR4ejNF?=
 =?utf-8?B?ejFiRVp1MlhkaVU5elBFYUllR1hVRWl3emlSL0hXQ1dGVDNERmI4cXVZWEpz?=
 =?utf-8?B?ODlCTlEvdXBOb1E4WDY1cVNmWVFJeXNLUU0waW9EWjFoemp4UjliU1l0dnBE?=
 =?utf-8?B?WG9OTXhLT0ZIN1Yvc0w1dHR5R0JCRGZpdGs4TWZXZitIbkFaTjF0aTRUcC9z?=
 =?utf-8?B?aVdnQ2dMR0hpTEtJb242ZERkMXBOWEpCVFlmSmpHbGlUYUduQStGTFVNbzRV?=
 =?utf-8?B?SWFudjUyaExKbEo5aFZWRXZlbStEamk0QkVKTVdWcU43dnZ4RnVLRU92NzAy?=
 =?utf-8?B?VmJCUmhjTGlmMlJORHlqYmtzLzFGbDNTaDdXaVNYWHFvM2JiaVdpZ3YrZzB2?=
 =?utf-8?B?S0I0R1hzdnJLVFZMbHJ6bUY3bmdJeTZZZzFocFZod0ZVTnhiVzh3UHJ6NWNU?=
 =?utf-8?B?YWJIZXdibUx5b3NUeTZaNGlNYXJUczV1OUNLSXdsT1h1UDVNWjlJZmh5WGxO?=
 =?utf-8?B?cFVkZU9OUkUxZlNEM0JDVU5XVm5FdithcStsc1NCN0U3Y3RrOHRsZ2xaeWY2?=
 =?utf-8?B?TzJMQ3ZTRXZiZlUvalV4a2Y3QkM5WEJsUWhKRkhRSHRFYXorVHZyRExYSzVo?=
 =?utf-8?B?bFA4LytONjgxYXZnTHVsSEYrRE5EU3dad01BeDJEOGh1eGxibERhQ0FGR3JH?=
 =?utf-8?B?VlE2cTl2R2NHR3lBQU1BRGVTTldxeXRPSlZEL1NLeEh0dGYxMUl3MnJJYWZG?=
 =?utf-8?B?OVFpaUZ4TjdOSE16ZlZZYi9VMUJZMjJGOVpnUWlMa0hXUTJjNjQ2djgvMkRV?=
 =?utf-8?B?bU5pdHk5OW1uK2RJSjNubDJ1RkpLT2R4N3U0UlRkblp1MnM3dVZCdzZRL1dG?=
 =?utf-8?B?L0R2aUIvcWYvYW5oeGVpZFhnOCs3MjRTQXpGdGlqVTM4ZHdscVZnMWpGZ2d4?=
 =?utf-8?B?d2JrbEtvVVZsZmRwaTNyWXRLNklxQ3U3S0NoRXQ1dEU1NHdDMm96elBRbVNB?=
 =?utf-8?B?MlNCL2l2bkNObmtxcVVpbkpoZk9ubHpLMTVXU2JOKzNVR0tCRDFhZy9rdFJs?=
 =?utf-8?B?VDhrUWRvczZWYURndnZnaHNjdEttNC95bUVrS1Myd1A4Ryt0QnhoMzVVL3FR?=
 =?utf-8?B?bWttV0ZndGFlYlo5Q0lnSkNzejl6NVVQamxWVFFSOGk5UW9tcmhUeGo1QW9R?=
 =?utf-8?B?c0hhbklDaUpaTTVhVHQ0NzlLNWp3RnVnZGVHSmN1UE4xTEcvRGxPZ25PcHA5?=
 =?utf-8?B?YXJGYThzckpFZG9BeWxEcTJkTTFuODJRVmYyK2F3dHgyS2JkQU5FUFJpeGNS?=
 =?utf-8?B?K0JqZVZIYnN2Ri9kVTVseGhOMmkvd2lTRit3OXZsRldCSWxJNUc5WlhyVTZ0?=
 =?utf-8?B?cW9saFRRTEpiWTZUTHVxWTJWRmFFV0Mxd0pUdVJqUUVWSDNqNXpLRVM4MEM4?=
 =?utf-8?B?UUJ3NVk5SnlLOVRpMFJCVHBJWHJKUUd2aGl4U1p4RDFXSnpqZHZHZXhnSGVN?=
 =?utf-8?B?Rm5VZTJ5NDQ0bWcyeE42UXBhL1JWTjJVdi84OFR6Mld2SDV0V3g5dlVqdlpn?=
 =?utf-8?B?elZ3eEE4MnhNRHdRM0VLbHZqZXVyMXROSDd3LzNZS2hkTGRnUFBLbXFubXhm?=
 =?utf-8?B?NVdWdURqQ0l3cEx4dWRPM0YwbmhHOERDNzM1R093RXVxTHBhdjltMlllWWxi?=
 =?utf-8?B?dTYvUjVoRVcyUW5FdWxuYlFHQXI4Nm0yOEtIcExZY3ZUczBTdExSOUZFVnNS?=
 =?utf-8?B?RkxuMnRUQlZrQ3FUVHE4MU9QVG9xYlZTek1oWm1aNU1ZM1RUNHFrcW16ME1B?=
 =?utf-8?B?M0I3ZVZtc3MzMjFlR29zYXZ0aDBJcXo4M2cyQnBrNzl2NmduZGJZSjhMRDk4?=
 =?utf-8?B?ZnNsOHFIcy9kRTAzeWJXVVRsZXVnUHNrbUNuN1JhSjFJUFNwY2Q0OE5NMU92?=
 =?utf-8?B?M3laU3RxMkVRT29TVXdHK2F0cXZDTnpDTERpSmRYVjY4WHFJbjdNRmU5dUll?=
 =?utf-8?B?V1hLM3NFVGJRQnNQWnhkUStQSUVXbmdGd1BhbEVFTGMxZ3BiYlhja3M0bWpD?=
 =?utf-8?B?cWZESXgvSlJJSFRjcThqb0dRVFJkMFVqWStBQnB6bzRiN2x0WDhIanNrZ0pJ?=
 =?utf-8?B?UHlHSnRFZm8vOXVEbGxGMnRQUnhqYWF0VGlCcnFkS05tLzcyV3AybEJWVllO?=
 =?utf-8?B?VGxacUVPUW8xY0JTemtDbnJvcnh3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	O1LjFUPaCAYCL2OMX6uParAVAke29eF973w6lEC4t33i9ICyreO613jYlxmJ6xC/3pESNYFMC36VzzL1XrgAfSObHh3Ca2IYf75j6AUopXZduIEqhk8eANp54GTWG4dcFzDUzo95jzv4AWCTNiO9GkmMdNEp1nYWDM3f/PO5Kl2W6tc8Q+nfH6TS1m0Ge6wubpHYUFANFipkAh16/lu3mjy9YobEk8K75coJndPDD4dWfCVLlidT1MaBqbKDJAee4q8kk/7llci3mvemg/L4edOu2eWc6VzWfLNhYUOG5282OvCFNFIy1p+yicfrK8kV7aiA6k5e2HKe3szVYvUhstgO1AfKKZcVSMhXfOq7uuFXaLhA8v97b4M5GJCBFPVq8VIKq4KWStyNYE1P6xt9KHDD9bRQl6GbE2cMdP5iN6oegd8nziGc9YtJJVdVJVrk
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 19:15:03.6724
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6577d237-81fc-455b-e434-08de6a6b0693
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE3C.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF06C91DA0C

On 2026-02-12 02:38, Jan Beulich wrote:
> On 11.02.2026 18:30, Andrew Cooper wrote:
>> On 11/02/2026 5:01 pm, Jason Andryuk wrote:
>>> wait.c is only used by vm_event.c.  Make CONFIG_VM_EVENT select
>>> CONFIG_WAIT, and use CONFIG_WAIT to control building it.
>>>
>>> Provide stubs of functions called from common code.  entry.S needs an
>>> ifdef to hide the symbol from the assembly.
>>>
>>> Also conditionalize .waitqueue_vcpu in struct vcpu to save space.
>>>
>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>
>> I'd really rather see the API/ABI changes required to purge wait.c
>> entirely, but I guess this will do in the short term.
>>
>> Two things want further thought.
>>
>> First, because ARM uses per-vCPU stacks not per-pCPU stacks, it doesn't
>> need this infrastructure in the first place, but it looks like it's
>> still compiled in and half wired up.  I suppose you don't notice because
>> you compile out VM_EVENT on ARM too?
> 
> But if we want it compiled out altogether on Arm, ...
> 
>> Second CONFIG_WAIT isn't great name because there are many things it
>> could be.  I'd be tempted to just reuse CONFIG_VM_EVENT and go without
>> CONFIG_WAIT.  I do not want to see any new users of wait.c, and it will
>> disappear at some point.
> 
> ... don't we need a separate kconfig control, for it to be selected only
> on x86 (or for it to be dependent on x86, and then imply-ed)? Imo
> CONFIG_WAITQUEUE would be okay, as long as it won't have a prompt. We'd
> then simply want to prevent further select-s / imply-s to appear.

ARM VM_EVENT=y won't link without wait.o.  Undefined references to:
wake_up_nr
prepare_to_wait
finish_wait
destroy_waitqueue_head
init_waitqueue_head

So I think that points to re-using my original patch, but with either 
CONFIG_WAITQUEUE or CONFIG_VM_EVENT.  Since CONFIG_VM_EVENT is the only 
user, and we don't want further uses, I would use that.  But I am open 
to either.

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Feb 12 23:16:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 12 Feb 2026 23:16:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229999.1535622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqfuw-0005ps-PT; Thu, 12 Feb 2026 23:16:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229999.1535622; Thu, 12 Feb 2026 23:16: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 1vqfuw-0005pk-Kl; Thu, 12 Feb 2026 23:16:14 +0000
Received: by outflank-mailman (input) for mailman id 1229999;
 Thu, 12 Feb 2026 23:16: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=361u=AQ=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqfuu-0005pV-IF
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 23:16:13 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ce9304f1-0868-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 00:16:06 +0100 (CET)
Received: from pps.filterd (m0367129.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CJfntj393177
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 23:16:05 GMT
Received: from cy7pr03cu001.outbound.protection.outlook.com
 (mail-westcentralusazon11010067.outbound.protection.outlook.com
 [40.93.198.67])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c9kkqtqt9-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 23:16:05 +0000 (GMT)
Received: from BY1P220CA0013.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59d::17)
 by PH0PR16MB4842.namprd16.prod.outlook.com (2603:10b6:510:141::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.12; Thu, 12 Feb
 2026 23:15:57 +0000
Received: from MWH0EPF000971E2.namprd02.prod.outlook.com
 (2603:10b6:a03:59d:cafe::32) by BY1P220CA0013.outlook.office365.com
 (2603:10b6:a03:59d::17) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.12 via Frontend Transport; Thu,
 12 Feb 2026 23:16:09 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 MWH0EPF000971E2.mail.protection.outlook.com (10.167.243.69) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Thu, 12 Feb 2026 23:15:56 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CMPD2p2547170
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 18:15:55 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c6nag56yx-7
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 18:15:55 -0500 (EST)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id qfuavgi8FRfmuqfubvK5b6; Thu, 12 Feb 2026 23:15: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: ce9304f1-0868-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=j2YFjvbnpWiD6dbaYMfZ6v4JY
	YjAo0KPA0hAPH7Eirg=; b=lCtmQiQWCoveV69A8ICC4QjMG4+ou7KvYbIANDm+y
	mFyDx6lL0xheyTon88Tr41yNySfIkWimNtQEPLFcsyJU38TDrUdA01pE7PDw1zKU
	DE9amthiKcN8bZ+OOWjqP3whTZBViQ/KqLWp8MUT2VFGhGF3NRW+tBBYtOTqLL23
	akGAAe4yfylg2JyVYtIvUYLdkOW1xBvwXv6zPq6gFt7kkVw40NF1a8wDR1mENMfJ
	K0KwiCvfolzwdZ2s2pI+phqB51bEEJaOTOz0Y9d68opb+JH0khSS0ff552ZswURA
	ELtqZzUpkRCYaskqeBjWLZalj1uOOpeNF8yyPYhx5Lljw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=v8Y4SBWwDzLncirl9Sn0QGYNKFRJ/xcLKsQt7lTNLbOTDRiXxSGRrd+ohX4ye/hyadhvuyDowM6ctDUZyTOFQwKTw1x4qmyCEMdMKgik2eK0fs3uID0kcXgHh4rrkdxNODMokQzDHms47xhKzBhmlTKrJ0IwZLZnDcnvX4g6nWYaOOKQAxzygpdRzg5ZZv1ACDF0yYqIy9H/hwFT1lsUSBEMD34T+JLUdwn5swU2183wdze5dVAqMaDe9+4IK75RaXS12EZb3sHl0TdRVlDS29kmi1ffQZGHgpXW3EnODKcYNneZ9yjanWw8d7HaMMiFakosNbWIZo5/q5x/nLVB7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=j2YFjvbnpWiD6dbaYMfZ6v4JYYjAo0KPA0hAPH7Eirg=;
 b=X6ITH6Wn3xh6XiCMf2ZkDm5C7r+tXrI+vuNvnrBtgeZ7CjWSrC4kDhObMDgtVXLraVwtqRSazHrOT2v15PZRsrtqaHhQ4HPZWFeyjhxhoTbYX84YV9rRH14OKt6R+MWBavd0T4orxMPh3agqLhEMbuyfPET5685v51ftutNB018Q3NboLIhVFhSrKZjUF5W3mwQV2J57f/fVb7OJMaDzxt8xcSYxRxiquOoPCHwsEDCDisHX11RM7+fSIjH7iapy4eiMB5Alfvkgyb3jMTxCqu6dnUUfiCSJ03wb1ax2UVV9uJMKr/bQpP4Jupz8YcNwWX0O8pkfSMuBujqvytTQQw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=j2YFjvbnpWiD6dbaYMfZ6v4JYYjAo0KPA0hAPH7Eirg=;
 b=St5jcTcKS4rWV1axgYXUx7giDUL/bKMqaSYyyxjmPZILjlyqJjAETvQ9hAL5GQV30qqn73F5kjJRN9B+CrJrQ3UbtycQFG//yPXIZNSn7MWncf2ni0xLQWwEwAb1jToG5OhjlJXf7H4girwkriExJHPbpqSX9+vcgtR9eS45kjE=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=j2YFjvb
	npWiD6dbaYMfZ6v4JYYjAo0KPA0hAPH7Eirg=; b=d9+YAw8hqivOx3BxuuF8AH2
	3A5+KpcVGxSdEiDreOjqBXz6YLsyywdiF71gfZdRJk0Kr4981XM1ehzeqnOdtRAp
	YpCHf6SM4qsDkX59ahD/c4yuvfM3wrhIPfCfVaF2k4SsI7HmPSunTVX33KxnqAe6
	ahQtixFqSLqRC+mOgqSm9CotYTG25jSwSyio513lnV/3wgPFneC4fCM6kB3J/29a
	lEw3QgUhbmlgKlROjcIdlLsPM9QxVhdY+Bnz0N9jg3xtZYeHzaxjSGVyjFaaHoqc
	Vmt+KcH+0L6MCAO5lQ9ZAbHrPVgPl6vLV8dfu7ahSaSM0h30eFgqtLhszOIn9MQ=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=j2YFjvbnpWiD6dbaYMfZ6v4JYYjAo0K
	PA0hAPH7Eirg=; b=AFo9oBHfqPS+xabTPH65HlImBklc7w5mRYHbqHCXSfLniqG
	TK3xzNq7UTm9pWpdK+4mGPiYRn42pFUnSEim7IBS1MvP9qNhexUvfpSzPar9vE3y
	ONae2WUxXqSLEOFXnJUMiiQQ1G8u263SEdLIFfxwCcSmC2kOEyU8btLqlGqp2xWU
	IrHwF+SJ6Ww1rw4D43+UHRp3Ids7XB7LM5D7yMu5xpnSIj8UlLPczLRS0wYpbRm+
	wUJvHvtgHGLbnqJbuSBB7sydCvfcc20UeN2Uj0Gf1j5S7DYKhvo6ejtvaXnKy9Q3
	qNokP0LmoqWkH+SADofE9U49yzUEuqQ4S5YeOmg==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qfuavgi8FRfmuqfubvK5b6
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH] xtf: fix argo test parameters
Date: Thu, 12 Feb 2026 15:15:06 -0800
Message-ID: <20260212231504.3135755-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602120180
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000971E2:EE_|PH0PR16MB4842:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: e2e60f65-fa0c-47c5-a3c5-08de6a8cad47
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?ocyoaiyYGMAgIIHi+q83WMXbA5Dof/DcijmzCuLdLyjAQRzWRzTdIaAbra0w?=
 =?us-ascii?Q?1Q+T8TKbl/BwQ2uQsAdxg5/aw91CyNRW7AtfHj1MkFPXZHum7tLeYduo2Hwj?=
 =?us-ascii?Q?aFfaylOHK0MVuyWdFgaS7u0YKq7v2PwggBAvV+QCpE8pVHz6CB4CdfgVTK1D?=
 =?us-ascii?Q?7PHFE6VhvMngyxf06G0hC/1eus+g3sfqyZgjUiTtLcG3HjylqPWxk+aVdQ3A?=
 =?us-ascii?Q?+zw7My5+wv6oEimwg2J2sAsHW+QGuD8IssfZTdVwHUzrBGRaQ/ntUsGYYqT4?=
 =?us-ascii?Q?qudzhDZ8UWIkmLtsGXU51YhH0+XzkRElFxWTEVh2EsTEnYa6DwLpKQPKL0ul?=
 =?us-ascii?Q?7P2uGRupi7qiZpQ4q9JST7y5kBo7IoNVKDWb1z6/NvRqmDfpR4H/93rznET/?=
 =?us-ascii?Q?J+MSNGldKle0mz7rwp8xlg50EcJr6R5eWGeXohsracvziNh+NVkVYfpSzU+O?=
 =?us-ascii?Q?mRmTcw3gAeNWegHDdCmrVg6bNG6y0qMq9cK9vQBAYvbG7wufOkr/pw3uBjpE?=
 =?us-ascii?Q?PnuvVHB93R1NF9j4wBy/lalmyuW0YW7FUWuSusj3UwmEENewsNOG7IVbiX94?=
 =?us-ascii?Q?CwG8NM/sNIY+x2/wg/oDSP6tSfSE/vdee+v99pnoOOoqm/QCSng1hKQcilwc?=
 =?us-ascii?Q?ISWtEWRopi7YFBCHS489ELoVn4ZYQLLFESLcMkZRhyXKGEGeCmnugxep+YmJ?=
 =?us-ascii?Q?IbYnOTdnoec4G5GcRVnxVEcRPeodg+ZQKuMsfRq/xQ8XhFIBGOb88v9D4hzc?=
 =?us-ascii?Q?9YQKB7vEQnL4ULMMLHzyfGd4a9cL/QQS/b29uHqYXMOBjz6MypwX5n709EV6?=
 =?us-ascii?Q?d7I97d/BSCROwUUQnlXTkLDplgViJUDCQGKWzRyx+PF49Ps/bbnaxuTegno/?=
 =?us-ascii?Q?0AFtLadVerhvMK1AJ4AnnDtfUUCD33OayQbKQeolp7QW0kUwo1GSWyFl4ajj?=
 =?us-ascii?Q?Olc9LWrLIdHNIKiT7cjs+3V97MVyCe6BIROw2atkovYAQfMrXvq69zL2Tm0/?=
 =?us-ascii?Q?Vc55IbcOFnLaNZ/mr2I7mVqMWL9DLx30eIDuDYt1Eiix7Qhs4mTzlnDsO4jJ?=
 =?us-ascii?Q?RRAtDWR1sLon+mUwBmHLU59yLpzreF+CrzrNJIQiyhJHmT4D0lv9o0INm04b?=
 =?us-ascii?Q?K7/6998+X6CpfCkt9ioS5ZSFsBh4Nle7OiOSjkFS4vk+oHuIt/J0xQeX9Xd5?=
 =?us-ascii?Q?8GfmU0yBcz6WsShUere+/7QrGCCxGDI3Ylzi0VlAmNxERrpOJUT9o8zq6Y8v?=
 =?us-ascii?Q?qxXhEzn4rihf7EatmxrrMSf8LmgGSpxstH8DCdOO5jBP+wVQ5YJcUG5gO4zd?=
 =?us-ascii?Q?tIThrnYG98vDHJjyfgmy0Q5deSBXXh1FAB8D9AAPtkT7S2zXtF2hdMaGPBFd?=
 =?us-ascii?Q?NOWciu7sFMLX87sI23UlwtkdKu9uedkBzOocvOJ0SY6Go8rQX0bwVjXXbxIn?=
 =?us-ascii?Q?YdTGToC8YrfTU46SJIsgtsVT3tqCCwwAObMerFbbZg1t3rm4J5kniTY6oQpI?=
 =?us-ascii?Q?KeGV6CiyEKMPcOGYMQdzv5QaG8FFM07vVy7ELnKml1w90QbO20HC0SrO2HD3?=
 =?us-ascii?Q?iVZ6ua0jNougkiCTa9Sc6Q7JxYuHTTEWi9QjO2Xd0JdSrcI1gwYNz+lEBBAs?=
 =?us-ascii?Q?d6ap9+DzhX0VMWSB9znUbK2Q6YvGYBwjQmnGHPC/4XavmMA0OLndKMJticG1?=
 =?us-ascii?Q?XkTtyQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	5AG8t7wBq4fqaCnpgPyb/7CCe45/LOvx2uLOnAbF+N8CdkjzAVEHEMw1IhxaZUFLLAJZSLcRLXcTOECmLTRLYoEPll/i6Ww9Cr1m/XzGQubOV2P4kgUD2t9yGuJnjRcOeFAz1MD0A0BEPsM9AxBRX5UYpS24oJ1TsIo+VYQookNVxL8xMv30REx6WKpzySeVjQyns/a5eIDh02XF96CZT+RCH7j+zm+CkwjBBbtY5FPm2G3aTqzUNd10V/XL+9uypAlCEa4e+Fjax+S4zVWpS1uRDpNX88ffaQ4zRjUOtBdMIbjRUZxB7SzyydaR7l2o2xmDUgwGq0plrkwrAEgZHw1Ik2YbcBkH5Z4Rp7WGYnS3MJQmJhKqMIs2IAQVCZCXhDHIYdIuG4xp3oUH2ezVjGYYB1eB+ifpUb1dqieEDhwPd5vWh1ISIa+ADPNkHMF1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	EEsrE7VmTEWr/og1GDhqdBz6NPqQpWnsX5mah9h0Kfyc7wDKnaVaphpCCBmxA6NgsoZDnzIq1g/RKLWVMN/hVMeqhRNmJEAzRBmYPfK51uhTp6qad24NpAxGbdOoq1f/DdvRT5shpSUg2wyYg/LM18aQCtQ4DuohaKdRoQ89k7fe6miEdI8TlC7kZm4okqPua/Qgab6zv+pxZJkwDSeUJe9/cC2CSfwK2FD7gjXPyYA4S97A0C7+96OXSJH96Ln9VatdKGDAZlxVXcFLN0qD9qUKlUpQtMyCuOgw5vV66GtRe4/3sAC9xptmBy3K0+ONn1QZN6AoeO7zM9a6gL7+O3yj1F/t+iG+C4QTD8lIoKBT8x2LGMaJLr93JyevHghhnGcZsvzHxDR1yi+WktjafGRm+DNSGi7j3ffGHdIO/MBCgqo5nCCbwJnFvhqkoy8ycbi6L7da1+Cs3h2o1uYebXjjYUiwJ7kVxoSH9MLGQQz3KExg+4C0ftGlvqDdC6S9CEWEYXKfsvhpWvtc797tiDcISdL0/urVYCfNwMZve5EUkcx8SEl9pIw/jGIgps55rw4g2Y6PL5eMsX0mdYuolwRohA8TyQfOaQCkwb++DYvTKvldn6Jh4qOmje8Y9TgkQMc+LdOiGUnQ9EwmQibfrA==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2026 23:15:56.5809
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e2e60f65-fa0c-47c5-a3c5-08de6a8cad47
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000971E2.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR16MB4842
X-Authority-Analysis: v=2.4 cv=Le0xKzfi c=1 sm=1 tr=0 ts=698e5f35 cx=c_pps
 a=wCygq6uL5kGpubmeL3zaNA==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=p0WdMEafAAAA:8
 a=cbNQJ9GKAAAA:8 a=Xe60KI40nWo1VRH31TwA:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-ORIG-GUID: 1hFyxuoCupy0rhR1jVXEmdiQvp_sVv3h
X-Proofpoint-GUID: 1hFyxuoCupy0rhR1jVXEmdiQvp_sVv3h
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEyMDE4MCBTYWx0ZWRfX+fXzUd+XLEEH
 6C1Uqtiw/HDeZDG7k281RkGgKsWXIMTy1UYxh9srbro50yGotBKuPfV6M9iJWsyT7q7Mnl3bVYv
 rkWxrwBJRTXCEaY/GxFMBbs0K7VXjcmTPjP/1vYDkcRfYwZhLF/JiaxRGU5trZh2lFQRwFGzrjY
 KQBDV6XUqQAFrLsZI0UX7/F08yxEZFqeaSt6Zc7jKv8SQRdY5SksQR4wY8DeUelkjAp7BVS+le5
 r7f+CIcmewcdqv+Et1R7Sbs58AbxB0M1Yyf1qve5Aa6bqAAzfWbGTMKITANSZqpo0KuB+Zd7qJP
 0/+VLkqEGKMPrpY9mn02SiDpnMRR+QETk1tsEN/dmGsl+NDTV8b066Ca7MCAYNDWEeSk9qHJIl5
 TiLigFSnoSELlkpvsZSRelGtM3TSjPoz0u+eN40YI0v28WCDLzi1vzLn0ipbpfCYXq4QxmISAiC
 +HAho8bfkHHPJyuHKdg==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 malwarescore=0 clxscore=1015 bulkscore=0 impostorscore=0
 phishscore=0 spamscore=0 priorityscore=1501 adultscore=0 suspectscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602120180

The mac-permissive= option is currently ignored because Argo configuration
parameters are comma-separated.

Fix the missing comma in the XTF test arguments.

Fixes: 150c6ef45922 ("CI: add argo x86 XTF test")
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2323076582
---
 automation/scripts/include/xtf-runner | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/include/xtf-runner
index 43ff2d4d88c7..d1ef888465c3 100644
--- a/automation/scripts/include/xtf-runner
+++ b/automation/scripts/include/xtf-runner
@@ -69,7 +69,7 @@ function xtf_build_cmdline()
     local xtf_name=$2
     declare -a cmdline=()
     declare -A per_test_args=(
-        [argo]="argo=1 mac-permissive=1"
+        [argo]="argo=1,mac-permissive=1"
     )
 
     cmdline+=("${XEN_CMDLINE}")
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 00:40:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 00:40:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230029.1535633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqhE8-00005C-I5; Fri, 13 Feb 2026 00:40:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230029.1535633; Fri, 13 Feb 2026 00: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 1vqhE8-00004z-C8; Fri, 13 Feb 2026 00:40:08 +0000
Received: by outflank-mailman (input) for mailman id 1230029;
 Fri, 13 Feb 2026 00:40: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=Y0jx=AR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vqhE6-0008Ti-Tz
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 00:40:07 +0000
Received: from fout-a5-smtp.messagingengine.com
 (fout-a5-smtp.messagingengine.com [103.168.172.148])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 86dceb19-0874-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 01:40:00 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.phl.internal (Postfix) with ESMTP id 20B9EEC057B;
 Thu, 12 Feb 2026 19:39:59 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Thu, 12 Feb 2026 19:39:59 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 12 Feb 2026 19:39:57 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 86dceb19-0874-11f1-9ccf-f158ae23cfc8
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=1770943199;
	 x=1771029599; bh=l6+dvC7oQGsMRXxJoZgkw0cTdmvgFwVtF/N7w1xuTZc=; b=
	jkhUik0TFL7rBmTsWfWaAfxFxbK1vammbvdxtNvfwhOpfglCjuuWX/Wc2myAlbl4
	U/YKbU/OdS+P8eB9MLq+L7a5nuICg8luOH69rDSwsOsojUvHCY/r6AT8OzSGW67U
	GXmHLNHsg0i5H1qsgby0hjx03HkD+XuNhQtaySg4+NwahuFHDqQ0Sr8K4OFqAg0U
	8nn8x+bIBYbv2PkicTPFJPsTNML/S+hCuacVbd19gC1Zh5tLCDL26sN3MQqwxghk
	bwWpmZCkkVsj8kTj2tFE+NIyvipav9gmxo1xyq2wm2B0V7jf8qgBzgzKW5l1U6cw
	jpV+v2/wYN5pYmIGfz6Ttg==
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=
	1770943199; x=1771029599; bh=l6+dvC7oQGsMRXxJoZgkw0cTdmvgFwVtF/N
	7w1xuTZc=; b=tT111+l+MYZqd6ylHZG5dV18KwlKSLPmT/BdduxNsMCmdXyY1/5
	xlPfgjSXOgdlCRBdR6lq+1TYNfIFo7KKUk+qS9N0YcOHhxZDQn9foryymKNpYPFp
	xWgjkNqbWo6I1EH/bBvKldgebBVD8cIlPW9qP+BingxNvO0frzMovbpEYuiUwB+d
	JKhOtSlNQ3iT8zvcPhCpaE85qKlbOyPMdRQ4YtBtPE1znbIoyc2YzTqyIjJs8wJR
	NgZ3cSLKEevh3EANHFTHXfxPmRbHDPj0zSJZrij21XxBQzc7rVqrbABRDQG8WP7v
	ZDDhVtXe/CfKHYxDbEkTArEajDyU2xTjiAg==
X-ME-Sender: <xms:3nKOafgxzarHjh-e494y3pTYBXxsrYV-felWB_clqln4KPTDRmHDCw>
    <xme:3nKOaS79D1DYfkmwvYETYvRlgK049I0Y8DyedogE-V88HrB3nSywKq4U9-CaomPQQ
    C71ikZe6VFE_SoC5kJfw7Mda4UlD543nFEIeVvqGymitED4Nw>
X-ME-Received: <xmr:3nKOaXazwGE6tlL53sO62T_Rh8MuJdYU6Oigc0ERoEgdy5e-rCaDfpmG_6gi6jYGexdVKidefhvpulyVP9CTxIoKsGOVSXaPFe4>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdeikeefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohephedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihig
    rdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojh
    gvtghtrdhorhhgpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgt
    phhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhmpdhrtghpth
    htohepfihlseigvghnrdhorhhg
X-ME-Proxy: <xmx:3nKOaX6XsQrx83e4iRPoxE96KeY3QIPY8ErrmV6RTHkX448Ca6khTA>
    <xmx:3nKOaaBx9jw-3YACsXyhte8Q2JN1yz55uZJjz4n8pPCk6B1iNFSmTA>
    <xmx:3nKOadd6gOKEUYHH-n9wWiJAhUww_Z16oDq_8QSPs5Dq8HxShrt96A>
    <xmx:3nKOaZK_fuULe10vNS814krRQ-jpNJci1vUWkSb7k8gG7x9hDOOHRA>
    <xmx:33KOaTIDq_gDcNAhsCAoxEh0x2FF2KoQkth51UKH47fB_EgYD1nbYgVk>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 13 Feb 2026 01:39:56 +0100
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>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v2] x86/shutdown: change default reboot method preference
Message-ID: <aY5y3GdZyd4j213N@mail-itl>
References: <20230915074347.94712-1-roger.pau@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="9/b+4XTVAfR7TSOW"
Content-Disposition: inline
In-Reply-To: <20230915074347.94712-1-roger.pau@citrix.com>


--9/b+4XTVAfR7TSOW
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 13 Feb 2026 01:39:56 +0100
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>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v2] x86/shutdown: change default reboot method preference

On Fri, Sep 15, 2023 at 09:43:47AM +0200, Roger Pau Monne wrote:
> The current logic to chose the preferred reboot method is based on the mo=
de Xen
> has been booted into, so if the box is booted from UEFI, the preferred re=
boot
> method will be to use the ResetSystem() run time service call.
>=20
> However, that method seems to be widely untested, and quite often leads t=
o a
> result similar to:
>=20
> Hardware Dom0 shutdown: rebooting machine
> ----[ Xen-4.18-unstable  x86_64  debug=3Dy  Tainted:   C    ]----
> CPU:    0
> RIP:    e008:[<0000000000000017>] 0000000000000017
> RFLAGS: 0000000000010202   CONTEXT: hypervisor
> [...]
> Xen call trace:
>    [<0000000000000017>] R 0000000000000017
>    [<ffff83207eff7b50>] S ffff83207eff7b50
>    [<ffff82d0403525aa>] F machine_restart+0x1da/0x261
>    [<ffff82d04035263c>] F apic_wait_icr_idle+0/0x37
>    [<ffff82d040233689>] F smp_call_function_interrupt+0xc7/0xcb
>    [<ffff82d040352f05>] F call_function_interrupt+0x20/0x34
>    [<ffff82d04033b0d5>] F do_IRQ+0x150/0x6f3
>    [<ffff82d0402018c2>] F common_interrupt+0x132/0x140
>    [<ffff82d040283d33>] F arch/x86/acpi/cpu_idle.c#acpi_idle_do_entry+0x1=
13/0x129
>    [<ffff82d04028436c>] F arch/x86/acpi/cpu_idle.c#acpi_processor_idle+0x=
3eb/0x5f7
>    [<ffff82d04032a549>] F arch/x86/domain.c#idle_loop+0xec/0xee
>=20
> ****************************************
> Panic on CPU 0:
> FATAL TRAP: vector =3D 6 (invalid opcode)
> ****************************************
>=20
> Which in most cases does lead to a reboot, however that's unreliable.

It's not relevant anymore, but posting just for the posterity: I
just found yet another system where EFI ResetSystem() crashes. What's
interesting about it, it's rather new system - NUC 14 with Lunar Lake.
It crashes as follows:

    (XEN) ----[ Xen-4.17.6  x86_64  debug=3Dn  Not tainted ]----
    (XEN) CPU:    0
    (XEN) RIP:    e008:[<0000000063907504>] 0000000063907504
    (XEN) RFLAGS: 0000000000010246   CONTEXT: hypervisor
    (XEN) rax: 000000006ff4da98   rbx: 000000006ff4dad0   rcx: 000000000000=
0001
    (XEN) rdx: 000000000311100a   rsi: 0000000000000000   rdi: 000000006ffb=
5080
    (XEN) rbp: 0000000000000001   rsp: ffff82d0403ef958   r8:  000000000000=
0000
    (XEN) r9:  000000006ffb5080   r10: 0000000000000836   r11: 000000000000=
0835
    (XEN) r12: 0000000000000000   r13: 000000000311100a   r14: 000000006ffb=
5080
    (XEN) r15: 000000000000001f   cr0: 0000000080050033   cr4: 0000000000d5=
26e0
    (XEN) cr3: 000000046d4e5000   cr2: 0000000063907504
    (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss: 000000000000=
0000
    (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
    (XEN) Xen code around <0000000063907504> (0000000063907504):
    (XEN)  00 00 00 00 00 00 00 00 <00> 00 00 00 00 00 00 00 00 00 00 00 00=
 00 00 00
    (XEN) Xen stack trace from rsp=3Dffff82d0403ef958:
    (XEN)    000000006fff5b56 ffff82d04059c400 ffff83046f90eed0 00000000000=
00000
    (XEN)    0000000000000014 0000000000000000 0000000000000002 00000000000=
00000
    (XEN)    0000000000000086 0000000000000000 0000000000000001 00000000000=
00000
    (XEN)    ffff82d0403efb00 000000006ffb5080 000000006fff5bde ffff82d0000=
00001
    (XEN)    0000000000000000 000000000311100a 0000000000000000 00000000000=
00000
    (XEN)    ffff83046d500770 ffff83046d44d1f8 0000000000000000 00000000000=
00000
    (XEN)    000000006ffb4844 0000000000000000 0000000000000000 00000000000=
00000
    (XEN)    0000000000000000 0000000000000000 0000000000000000 00000000000=
00000
    (XEN)    000000006ffb4498 0000000000000001 0000000000000001 00000000000=
00046
    (XEN)    ffff83046f90ef84 0000000000000000 0000000000000000 00000000000=
00000
    (XEN)    000000006ffad650 0000000000000000 0000000000000000 00000000000=
00000
    (XEN)    ffff82d0403efb00 0000000000000000 ffff82d0402884c9 ffff8300000=
00000
    (XEN)    ffff82d0402888ac 0000000000000000 ffff82d0403efb40 00000000000=
00004
    (XEN)    000000046d4e5000 000000005484f000 0000000000000004 ffff82d0404=
44b20
    (XEN)    0000000000000046 ffff82d040317b76 ffff82d040317c85 00000000000=
00000
    (XEN)    0000000000000065 ffff83046d44d000 ffff82d0403172e7 00001388403=
efb58
    (XEN)    000082d0403efb60 0000000000000000 0000000000000003 ffff83046d4=
4d000
    (XEN)    0000000000000003 ffff83046d44d1f8 0000000000000000 ffff82d0402=
277d5
    (XEN)    ffff82d040227851 ffff82d040206c27 ffff83046d44d000 00000000000=
54894
    (XEN)    0000000000000000 0000000000054894 ffff82d0402d0a58 00000000004=
6bb48
    (XEN) Xen call trace:
    (XEN)    [<0000000063907504>] R 0000000063907504
    (XEN)    [<000000006fff5b56>] S 000000006fff5b56
    (XEN)    [<ffff82d0402884c9>] S runtime.c#efi_rs_enter.part.0+0xc9/0x120
    (XEN)    [<ffff82d0402888ac>] S efi_reset_system+0x4c/0x90
    (XEN)    [<ffff82d040317b76>] S __stop_this_cpu+0x16/0x40
    (XEN)    [<ffff82d040317c85>] S smp_send_stop+0xc5/0xe0
    (XEN)    [<ffff82d0403172e7>] S machine_restart+0x247/0x330
    (XEN)    [<ffff82d0402277d5>] S shutdown.c#maybe_reboot+0x35/0x40
    (XEN)    [<ffff82d040227851>] S hwdom_shutdown+0x71/0xc0
    (XEN)    [<ffff82d040206c27>] S domain_shutdown+0x47/0x100
    (XEN)    [<ffff82d0402d0a58>] S p2m_add_page+0x4f8/0x7d0
    (XEN)    [<ffff82d0403cb1a4>] S dom0_construct_pvh+0x3b4/0x1300
    (XEN)    [<ffff82d040250e00>] S xhci-dbc.c#dbc_uart_flush+0x50/0x60
    (XEN)    [<ffff82d04022974f>] S timer.c#add_entry+0x4f/0xc0
    (XEN)    [<ffff82d04031af7b>] S time.c#read_counter+0x1b/0x40
    (XEN)    [<ffff82d04031b10c>] S time.c#platform_time_calibration+0x1c/0=
x90
    (XEN)    [<ffff82d0403e5b23>] S construct_dom0+0x63/0xe0
    (XEN)    [<ffff82d0403dbd87>] S __start_xen+0x21a7/0x264a
    (XEN)    [<ffff82d040277284>] S __high_start+0x94/0xa0
    (XEN)=20
    (XEN) Pagetable walk from 0000000063907504:
    (XEN)  L4[0x000] =3D 000000046d4e4063 ffffffffffffffff
    (XEN)  L3[0x001] =3D 0000000054848063 ffffffffffffffff
    (XEN)  L2[0x11c] =3D 80000000638001e3 ffffffffffffffff (PSE)
    (XEN)=20
    (XEN) ****************************************
    (XEN) Panic on CPU 0:
    (XEN) FATAL PAGE FAULT
    (XEN) [error_code=3D0011]
    (XEN) Faulting linear address: 0000000063907504
    (XEN) ****************************************

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

--9/b+4XTVAfR7TSOW
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmOctwACgkQ24/THMrX
1yxEcwf+JxFSB5QCEZQV5WFf1vHNrRKyH6ogOsN0zJ+/F4MGI96TtWdbiWApydEA
0RfzTNV1anx+VPjBWtJlm8zmJn5bKDf3u1QOb2iqWlTprX8v4uYkGWUteyOzYZz3
vgbS9OkzSpUSWHZPX5ogCWVFcd6SXml6ayNgpiMrVFACA/orF0UC0A1fZAoKsUwU
JW161sY8uhs3v1OQZPjgUJi2hjMbFRgpVlooNZ50yxZDLV7nQwykGRTzZ7HuXHFw
7GqrZPLc5PbTlumjRukFx+qYkgQYN8Gdus9LKiGTubCs3xXE3a7OG9YHI10IP496
Ja/7bzMZAMrLYH1V14Eo5kko18qdMw==
=hjwC
-----END PGP SIGNATURE-----

--9/b+4XTVAfR7TSOW--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 01:23:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 01:23:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230065.1535642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqhts-0004aa-Ju; Fri, 13 Feb 2026 01:23:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230065.1535642; Fri, 13 Feb 2026 01:23: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 1vqhts-0004aS-Fy; Fri, 13 Feb 2026 01:23:16 +0000
Received: by outflank-mailman (input) for mailman id 1230065;
 Fri, 13 Feb 2026 01:23: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=Y0jx=AR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vqhtr-0004aM-Pl
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 01:23:15 +0000
Received: from fhigh-a7-smtp.messagingengine.com
 (fhigh-a7-smtp.messagingengine.com [103.168.172.158])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8e6ababf-087a-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 02:23:10 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.phl.internal (Postfix) with ESMTP id DB06D14000BE;
 Thu, 12 Feb 2026 20:23:08 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Thu, 12 Feb 2026 20:23:08 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 12 Feb 2026 20:23:07 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8e6ababf-087a-11f1-9ccf-f158ae23cfc8
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=1770945788;
	 x=1771032188; bh=fQ40VqxOfTTtzqBNmdSQBJyJkvtwAyGECh/4w1BV088=; b=
	LUrEHbQq6RHSefhVA6nGxeSBciov0FUWMFWS+pF5EHdHBIXqWlTnaVqwMBapFSe3
	GoAVlnX03UAxPECrCtIQqbHHgN/p8nGYgdizVhhUnO63oLryE3lSKfDGcA+OT6ty
	1jl6dXDQVefl7WSgY4ZCJLUVzEBgc3ORUORlDdTgKWe2GK8+DZkEuxzhwu1MD2BW
	ROA1630J9FcQvd0XNCjPi6sTZ96zBB0ughDlX8ehiJXd8+uzsaiobcQi7ANs2Kyb
	QD1ZmNB9cNbWw0gHDshne0rW4eqHCtxcrzJlMO82ZDLWgxVTCrgv2/8QEjvt0hMs
	hmpa5Md/fa9KR3ayn6DMqw==
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=
	1770945788; x=1771032188; bh=fQ40VqxOfTTtzqBNmdSQBJyJkvtwAyGECh/
	4w1BV088=; b=bZp0SR6kYf66YSNBNNO81mDnCjRrFwq1+Wg6MAKc4gxc+iKrf0j
	W/tPqzGAhHg+IHY6roxr9HyzYVJS+jekLf0ag0ZwtSOT4b6t8GHlj/iYd25kkhil
	ohgM4yUdSf7MCmxkG1ThLZhu9emLTmCJ/Zz12S6Hknsn4Jcd3BiBCvx7vT2GpbfI
	p5vpi2w/5MYVN/+hzTWMeGo9M70tRnV1WXwhwdehuF8DPL5L/yGQ5p9snxeGE6bW
	zsBOMEZyegZEsnRLBcpLZ0yKbPOx6Jgp1MckqkEIQWJhKWMuFhx7f7LcN+e4QJC6
	auV0CN1vjT1t9acMmkYvBqUfQ2QkhmUg9AA==
X-ME-Sender: <xms:_HyOafMUORXuqfdHkJOavOR0G2RiMAFokMUQwyr_1sKuXYAJc9oSFQ>
    <xme:_HyOaRvB7kTKUBU8qh9_HUvDGMtnYnh5Y_mFNfCe5avh-isQdqcdP7ZO6K6bh5O5n
    C8f3GOQPGUpUWtgi1_h0VRkAppg7KLToksaIw05yNaXoeyOCQ>
X-ME-Received: <xmr:_HyOaRX2a7RgZo1S6qJ6caZnASfairDuGp0_HVj9i7zCaBuk1Q6cUzVrdpavgk2iz4OuyxgDtIcX9UUOL0FqQs8vywNKp7pCQO0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdeiledvucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihig
    rdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojh
    gvtghtrdhorhhgpdhrtghpthhtohepihhnthgvlhdqgigvsehlihhsthhsrdhfrhgvvggu
    vghskhhtohhprdhorhhg
X-ME-Proxy: <xmx:_HyOaRsm_OzkZKXPCnJbZAX4jWIarDAlV4caFCce0qlWuH68Nir7xw>
    <xmx:_HyOaVWFT2o5_5I0c4FqBJc_ZGZo7KtRaj0QtWcosJ2CTYuO2n2AEQ>
    <xmx:_HyOacnjMLkItPH7fHt8tdNy--Ipc0jPddv4Yp5ATsNFvL8sT-KjOQ>
    <xmx:_HyOaWagrX-sihsYIiqlHJY6Aat35EgRDl5o7f7X8Sh-EqGUMvOlyQ>
    <xmx:_HyOaRxLvCIirLhYEAmZLD2SbYAeDhvzYN1UM3AbHeRusJ1V9LkDNPpx>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 13 Feb 2026 02:23:06 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aY58-gyarcVoBS2a@mail-itl>
References: <aYtznP_tT6xNPwf-@mail-itl>
 <aY3ttvtxGCPTNgsj@Mac.lan>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="MJFPgzPlR2IWv8LA"
Content-Disposition: inline
In-Reply-To: <aY3ttvtxGCPTNgsj@Mac.lan>


--MJFPgzPlR2IWv8LA
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 13 Feb 2026 02:23:06 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19

On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monn=C3=A9 wrote:
> On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > Hi,
> >=20
> > Recently I started testing compatibility with Intel Lunar Lake. This is
> > the first one that uses "xe" instead of "i915" Linux driver for iGPU.
> > I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
> > Linux 6.17.9 in this test.
>=20
> Not sure it's going to help a lot, but does using a PVH dom0 make any
> difference?

Ok, now with the correct Xen version, it's better with PVH dom0. At
least on the login screen and few applications (from both dom0 and domU)
I don't see the glitches anymore. I can't do a full test, because PCI
passthrough doesn't seem to work with PVH dom0 on Xen 4.19 - and I need
it to start most VMs.

So, if the above test is representative, it's only about PV dom0.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmOfPoACgkQ24/THMrX
1yx9uwf/XS1nu9msraXWwrAMCdrtTwvbrC3EzRQbNtvAkRdYBmKEkWORstNdMyjM
ULC9BQ/a2vlknFIfmG0/PQc89oB3DZC2/TZQZmLM1uAq/bBiRPII3/a7pPB4NFm0
28CrVQCkckQ5Qo+yykB5KJk7cf8xeujC6eshJqSVHAPM3fJBclRJVAmHhe1QAjs5
1BFyUKVWkgZoUmuomJlg3VF3oJyyuBYsKmDyLreYrdJMH4pmKhOCJjTQ9Fe3zwM6
NkyIrCleg4BU2HBUy9Fk0RsD/MhD9F00br4ABOeXAUU+6Xfgs8Ape/RB6OYwonLq
+k+WMHfhYbPTGaWvgQZeEULXTVfEDw==
=ak9C
-----END PGP SIGNATURE-----

--MJFPgzPlR2IWv8LA--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 02:50:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 02:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230085.1535656 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjG8-00070i-NG; Fri, 13 Feb 2026 02:50:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230085.1535656; Fri, 13 Feb 2026 02:50: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 1vqjG8-00070I-Iq; Fri, 13 Feb 2026 02:50:20 +0000
Received: by outflank-mailman (input) for mailman id 1230085;
 Fri, 13 Feb 2026 02: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=4gzd=AR=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqjG7-0006yU-GE
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 02:50:19 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b69703dc-0886-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 03:50:11 +0100 (CET)
Received: from pps.filterd (m0367127.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61D0sXdj953797
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:10 GMT
Received: from dm1pr04cu001.outbound.protection.outlook.com
 (mail-centralusazon11010002.outbound.protection.outlook.com [52.101.61.2])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c9su0rfqg-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:10 +0000 (GMT)
Received: from BL1PR13CA0324.namprd13.prod.outlook.com (2603:10b6:208:2c1::29)
 by SA1PR16MB6414.namprd16.prod.outlook.com (2603:10b6:806:3ee::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 02:50:06 +0000
Received: from BL02EPF00021F6C.namprd02.prod.outlook.com
 (2603:10b6:208:2c1:cafe::70) by BL1PR13CA0324.outlook.office365.com
 (2603:10b6:208:2c1::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Fri,
 13 Feb 2026 02:50:03 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 BL02EPF00021F6C.mail.protection.outlook.com (10.167.249.8) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Fri, 13 Feb 2026 02:50:05 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CMWlc52548055
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:04 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c6mq5denr-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:03 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id qjFpvl2H84XAgqjFqvcAPx; Fri, 13 Feb 2026 02:50: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: b69703dc-0886-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=ppford; bh=q4rnB/Lh6fdQpYdjJxwi4vZ4C
	W28EcFbNEWJ5GIehRM=; b=ezzcYrSHFKNt8bwm7+ATmeNJfokyUxDzdk8Jrwo7i
	LaudZR5apFLQO9BG+ASRmR8mfKHAc1v8FpmP8Z2Id3WadaceUz+TGMW8fY7iwdWU
	8plIQe/bFQlEf2V1NEk5m544xnqDn+3AHnpX7l52um7IhbfuJ5gyHHOPLrmIiTmw
	7j5HsPSQ798LomwGnt5M/GLpUiTjFlJ4CgpEwVGhud5Z0F2VwCb6z5APfIf9BPwI
	JkzwFXmeQlEt05Y56j3kl1bDjQ4PFxqgPDmrVMU2yjbdz66TWcmziub818j0i0yW
	U9lMQ2uTX61FefTiIjGlG1binqMHoFeTs7DDe6JqXIjUg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=u1U9MqsSJgg1+S2kHp2cHyZDQcSifB8jAlWG8FR4QspuLyKcdlVS49O54R7CsiN4KbG/loLV/l+wvXAksFUjEUPXF8n2e8jd9RCMXqQjCVZugFwnv9mZ4K67iMaP15eqkB5PfPU3yw1XGmecJI/BtFGRf0Ef9Qaloxl9BsjWQXHL5Kf/i5HyYAyVDY1VfQRr9+4B0BWfGp+rxKfew3DHFHeKpoEkwoCePAy5t3wOdO4mP4qVJZREIOoIf55pk1yn4m7tkoSFwzQWBVdIiqiwYystRQfaWgzkS0fl/8MGR2sVm9gkeXmcpSQotUv5gFzhZSWOlOurY44neG77YHD6Rg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q4rnB/Lh6fdQpYdjJxwi4vZ4CW28EcFbNEWJ5GIehRM=;
 b=VNY6KlAa30b7SB0qn869Q7weLMfZg24nJcYE+6XILiU/hWxc8437WA6kdBUp0MhuPHaXzwMpIW8jQuhFaIn6IgFcr2KDdRC2ksuWVXCK1q6j+LPRo2cPiOFIw1u8D0snkiDSqvZBI3BXSQZv7YErOliEMoDh1c/gz1gQYz31QJ9g9RDVIyWZOmRmj1blOgegQNs/TQyiAaaqSCROnNOw/9xwtC7mLon4s3VZWdCeMe3XDle5n5325MsfhhaMW96eE919vDjfB2TO9f/2raL9PsWSkSK1ziKbazvTB+55Hm4Sp2QX/Vp5WlAJ2hwpnrm+4ZvHM1hyQN4TaY2G1cc2Vw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=q4rnB/Lh6fdQpYdjJxwi4vZ4CW28EcFbNEWJ5GIehRM=;
 b=YwZ1ldbaIyO4dcyzwECUCMFvt4JUCbFfIE4AJ+GCB2oLMsw2Dg0AFblo7Q47V0lvsM9Lwn+OeuRwWVht16mfPJSDi6gaoXptmKZHnyco99oI3k1dqYcdtzPlwgPkq+wYpA0I4d/nXOWaQbKHXir35BsxnZ4Vuzf1FRmVISNkrqY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:message-id:mime-version:subject:to; s=ppserprodsaar; bh=q4rnB/L
	h6fdQpYdjJxwi4vZ4CW28EcFbNEWJ5GIehRM=; b=WertbK/+A+wwVfajLnq2lqw
	Z8EcvTjntCNes/TUE9WrBs5rLjSY/0H4+5sbwg+zWlAKgKWzlHwqUpJ8+yP/Yvq7
	VuogD0EUR8+Yd6zil49S1JhKqSEV40zxLOYvxi1mQEaqUr6GZXs9aEHaCQzyOVc9
	yhPpJYDVMgxMoh0hcmwCtABd3u88upKx0SCabOCg19PAOGK7A0R/AxJBwEtvc7hT
	Cx9EX4nsrrxQ01rOz5fv6aG9oeUsKtYLOxpkAIy4KaUzVCvD+z85I+XJFZifYWfu
	PJiW4uojmim8GFBM5dvWoBTNrvyAMUh0s1Wtuopc8hJ+nT5l9SyAn6A4ppXoc1w=
	=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:message-id:mime-version
	:subject:to; s=ppfserpocford; bh=q4rnB/Lh6fdQpYdjJxwi4vZ4CW28EcF
	bNEWJ5GIehRM=; b=GOE3iSOv+IDvbAVMYvqS9XXnnMz2wBh7LHzhK7eu66gL3Lf
	/FHytc7n92VE1gGBsQrcRHVnF2DhTlmdFN8EZ1QyasZqJjxWRW8imaYWNXEgXnvN
	pmbYEK1XRjVrwAKQNH/qA9m1/Rj1KoMaw1LduemaAssgGwsVMLKhy3MRm9VfUL7g
	DpnQOerx1KWZBCjv9JGOX2MYvfsXRWxf2k/B2D0ywRgIU3xZHtKR95a0GjM6hv2L
	V7feJgyf910qwJegN33m+A/mo4/cY9pX1l7FE9QUwV2zPSyG9FeZ/Gv11dKIcCUj
	bhDJnFpOshNA7/RLvhuAzBhZiTOlLD5xwCESGaA==
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qjFpvl2H84XAgqjFqvcAPx
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 0/5] tools/tests: test harness fragment
Date: Thu, 12 Feb 2026 18:49:47 -0800
Message-ID: <20260213024952.3270112-1-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 malwarescore=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0
 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602130019
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F6C:EE_|SA1PR16MB6414:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 92478691-7738-488c-c9f4-08de6aaa97b4
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?MJ+v71UanCFsPKJyrWnaAAA3ylZ+Me6AHJboKWf61Y3Qi/ev2hVCbitpeA4J?=
 =?us-ascii?Q?bx8wnXQUFJMF8I7RWYu9P7zTucgMpgFkxs0BKYrvqnsy8eetqK/AGm4c3lyn?=
 =?us-ascii?Q?FseX40ZH6si/dn5aUh5NB4z1V0vGGQ9GVqp7fc3mXam5Fq7AxNkeRhP4JjYw?=
 =?us-ascii?Q?e9Z/8ZlQy3FtOirmSMV/Z6ZB1jWtUlzL9dDBuS/bh6mpz+Lj8OUN5ZpgogiW?=
 =?us-ascii?Q?cL8eFrUJuYp64VaBPGS7jBXTM0FKWwO1VvmwP5X2qm4Mi+n9ajkrXaVhLbzp?=
 =?us-ascii?Q?ulMJ1/DRh5LKGk9KmPUjiuv0e4So8m/p0WQ55s3zB1ZxeHGJw68HYcCfUVM6?=
 =?us-ascii?Q?qadcE6Y2zi7CIeuWcUQhXj4xN3pNT9/CU/k/kO2kBr6TyF5mvI6MirwiYKkw?=
 =?us-ascii?Q?KZ9onTpx9Qok6Ld96i18voz/+7CehyrBTH0Q4kQaOUytQB6n3letLyRdbOh0?=
 =?us-ascii?Q?dtHS7ZmwNBikdcmQR+xEyM0hawViZ19NYurJg4+l3CldUs9MWSgHgkG7/2BF?=
 =?us-ascii?Q?cPakG1PGOLRMAjAcB8drnmG9jj0QJ4sWV3TKgNnJG7juhMJU35JPFZ62Z6RS?=
 =?us-ascii?Q?kqhUgA3snNdcbcg5v4g3DPIHu2ZBrqm6i3H+Np80pCX8g7OnfHDgUBrV88vx?=
 =?us-ascii?Q?XFZE8mdJdsTQjWCmBQ9go1MxWfOi48CQSwdCwDQQfv9yB7cl7Ql/fyLDakc2?=
 =?us-ascii?Q?ziVgL+GAgoQNp1dmR1d0HVkKO+V5aNJYROygFINBueCjNw3TVFJLaRjQ4D1G?=
 =?us-ascii?Q?pnrBXlQUGURzwxYnfWa1msWcrbBzzvgJHfvS/gBwVhJTcvy84rbg0Bgk1NYo?=
 =?us-ascii?Q?ZDqdbMvaKaBZtiC5M7AWV7hkycAPTllWm6TAXA6PelGLrOBk2gbkgJqfFEv7?=
 =?us-ascii?Q?LAxPQeST1AZVsQ+fe0cgPX7hbVWLes6XlIKry38/aELO8LEUjejOjsGT/1w0?=
 =?us-ascii?Q?iXwBSy1SOccpiMP00RTTOwS0bnb9DOA1Dtv4rVrGEuQuUIeCqIX+IzCoVdix?=
 =?us-ascii?Q?VCUQhXwEXjqCpU5XR+bTZc3ZYMChgJnLgPybyBA95qhp9q2xM6M7qkg24s09?=
 =?us-ascii?Q?QoBRmSPTBY6vuBySP5b1e9B/y4/SlJcn5k19ScPH3MTGAP1fgvAbfro0rZEq?=
 =?us-ascii?Q?vk2pAremRpo2baKGG4SDe9D2/YcIJHFvrgHcACVz+ifATIXRv6e+Q9XS9vkq?=
 =?us-ascii?Q?dRciKkiG9n7CUt/HNfC2rtAhe6K70MkN8hkkXzqR72npaFgAKGx/pzWcKknI?=
 =?us-ascii?Q?q0whkMH1p1BnDReFbjVwHTpr6YVVz+B/A8kHSCM6CBJaKMAJg/JkpVG2qXf7?=
 =?us-ascii?Q?sgn721slbwaJnzAoG5xRev0xt+yUjs/7CgnU/2t/Et+cJTSuhcss4YWRUTCW?=
 =?us-ascii?Q?l4QdmysCNhHompud71TkhiHRmdyJlU6oom9RaDOh36lePz7TVj7i7kkB+H4d?=
 =?us-ascii?Q?9W2jI/YYdWr9Qk9A8OYxAR3R1vFOC2JpEc/qpfBscdfW2AiGMQGkvwfvyGwE?=
 =?us-ascii?Q?rDXg+eUSfVIQydCFZqPC+qYcppIhEiVIQOSo2uqijckYIkCzYSIAOtaPJVbB?=
 =?us-ascii?Q?B9Uywl0d7XIBt2Yeo1yxlffFQKJwcQMJ5V/kfmvad/sQITmiX7tg9jX3DT4g?=
 =?us-ascii?Q?W+qGANtZW/s6f7Boe30zW85krXA3OeK+MFgq73mjdqjpdG0347LcPocQKzQu?=
 =?us-ascii?Q?asz6LQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	AAsNcTfM31WtRVnHuFJvuT3cnBm+CQiovfNf3lnj7H3DeIupT/REKiOP85Q1roES835FJcraG5q+OhYd9FjA64KEYFv9rTVvI58EJ7aPGXRtoMody+qd5jzqt23GMzHlm2TKfeRcyNG/NgHATF/dxB8hI5zbRhka26jM1jQ0Cy0cPYJtE4F/IMr8wWerWtzCkw9vkl4wUGYhOyoUc1VpG9oi9cVPLUTi0B+LnMNHZ0DQeowKXxL6OJbbX/nkqwtoR7W1sxCLra6HEUUP+wAABiYZ4T5TneR4iFJtuLxIEQIR/RHsI50J9crurAdjK6T0IY4ylOr0jcs0gDVyuKWCEVFZqFbjj51BBIGz1m1Dn30eCb+t1D3ZHllGUmrJ0WSzFsWtqRr8cX0TF1GQbglJ+Vnw1jP6oFQ/0cUoR14OoOfqdGHXnN+TrtlrkA27rHRI
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	trZoT7mFP1PmmvAb7AIpL/F/DmOYt3Q2knA5UVPwiPZ4zzi+Od/js4N5mEMV+fmch39t2sFGRvIsK2cwWQmI1foigOmzW0WDNm9GoHWFBZJuKGRpeyWYOPBUddnjPE848XL5HyXRA9TKwC1W7s04TMLi/xaBYv/eRshWLj6YZkkjYdn444dqzL12zO5Nnheta5uamm3L+JGRiReQrGsh1z3jsY8LS54THalgVxUoGL9ZYdhg/Qb5ioextE8h2PEgynegJRZifZaLwj5K0bBd6Ryvo05BKjAS9H/Tf19qBSmtilHGuPYOmGLoxGxwIsuZIqCJepSI9BILlGSEHUe8Cw57pJ3yIwsQSK5xqD1sgGZXY4Eabuf8VdTZ1yJKIhyiFtSMFCx05ms0/wO8Dvbra/lUlaGdmIbHJJcx0LZrinoy4SuxuFMUccqWqRN5MCJUzL/8c3Et2TFDdZbhPPK92+nlZSCYiQhc2dz4egFAsFfsqOiEv7Igk/ST+o5CrTw1ivWV++2CxKlN2ECrRMeAOnhMXjXliEK/FtxskX/LCN1PODnXtnZt7qQ/RdOA7835miSOefuUPJiMy71fqdznwCr4mqCQieT3zipOcsoBevkUscQsQtB+QXxv7nipsWNH5FFZm+SUEx0K2BUwTbsDug==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 02:50:05.2906
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 92478691-7738-488c-c9f4-08de6aaa97b4
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F6C.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR16MB6414
X-Proofpoint-ORIG-GUID: 482JeGzEuk-w_og2sQ9qnEHKUvt7qPAQ
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAxOSBTYWx0ZWRfX5vLyUeCsCiaN
 oLuPvly3ShJkzWh6I0s0pkrH5iDYuXHDQNhclx+GEdMcGzDEHK0z71x8Nbuc6AcWu2UcFvftqkd
 LHAtpfAfk2SD8nMSrgKBBFB/09ZYAbDpjxYdSmhIeCWIHduPBepJ7XZ9YutX4h/xlDNdaMd3AkR
 uw9DUiGEv9G4MWhlxqcxNBy15pQvbO1pvlk+eyGA5fqvHN7ipI93TPg+hKMhpj3SMZbCYLrA3m9
 7KNdasksbHvLSzz3ZfdnmELZLJDgDJE7+LPXdaojODB566wpCghVyUvyziFT+xOGNTclppn4LJM
 kf9qK/GEKUeBK7ZpcXWmedRRe8/Q/5EGvKcNIfpWuP0zFBCAi/VRAvho1nTqIiyZcOLroky/6X8
 DHxnawzCNXihN8VE8+P+TMN1QfabDaX3q6JSK45x4f25DT2GxqjQ283GAPomyOpO76Gt/BtbMKl
 t/0FcpbvfrsIr3VrzgA==
X-Authority-Analysis: v=2.4 cv=WKJyn3sR c=1 sm=1 tr=0 ts=698e9162 cx=c_pps
 a=h3cS895ItAADrFIx/0pANw==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VwQbUJbxAAAA:8
 a=cbNQJ9GKAAAA:8 a=p0WdMEafAAAA:8 a=gLHN_htkFaCboXJYiHUA:9
 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-GUID: 482JeGzEuk-w_og2sQ9qnEHKUvt7qPAQ
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015
 adultscore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 phishscore=0
 impostorscore=0 suspectscore=0 bulkscore=0 malwarescore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130019

This series introduces the use of a new common unit test fragment across
several existing unit tests.

Patch 1 contains assorted fixups for the domid Makefile.
Patch 2 adds a new fragment for auto-generating test harness dependencies.
Patch 3 adds some prerequisite changes for vPCI test (patch 4).
Patch 4 switches the vPCI unit test to the new common fragment.
Patch 5 switches the PDX unit test to the new common fragment.

[1] Link to v2: https://lore.kernel.org/xen-devel/20260111041145.553673-1-dmukhin@ford.com/
[2] CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2323352235

Denis Mukhin (5):
  tests: fixup domid make fragment
  tests: use unit test fragment in domid test
  xen/include: customize headers for host builds
  tests: use unit test fragment in vPCI test
  tests: use unit test fragment in PDX test

 tools/tests/Rules.mk        | 106 ++++++++++++++++++++++++++++++++++++
 tools/tests/domid/Makefile  |  68 ++---------------------
 tools/tests/pdx/.gitignore  |   2 +-
 tools/tests/pdx/Makefile    |  59 ++++++--------------
 tools/tests/pdx/harness.h   |   2 +-
 tools/tests/pdx/test-pdx.c  |   2 -
 tools/tests/vpci/.gitignore |   2 +
 tools/tests/vpci/Makefile   |  52 ++++++------------
 tools/tests/vpci/emul.h     |  50 ++++++-----------
 tools/tests/vpci/main.c     |   2 -
 xen/common/pdx.c            |   3 +-
 xen/include/xen/irq.h       |   2 +
 xen/include/xen/list.h      |   2 +
 xen/include/xen/numa.h      |   2 +
 xen/include/xen/pci.h       |   2 +
 xen/include/xen/pdx.h       |   2 +
 xen/include/xen/pfn.h       |   2 +
 xen/include/xen/spinlock.h  |   2 +
 xen/include/xen/types.h     |   4 ++
 19 files changed, 185 insertions(+), 181 deletions(-)
 create mode 100644 tools/tests/Rules.mk
 create mode 100644 tools/tests/vpci/.gitignore

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 02:50:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 02:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230088.1535692 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjGB-0007rl-Tj; Fri, 13 Feb 2026 02:50:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230088.1535692; Fri, 13 Feb 2026 02:50: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 1vqjGB-0007rV-QI; Fri, 13 Feb 2026 02:50:23 +0000
Received: by outflank-mailman (input) for mailman id 1230088;
 Fri, 13 Feb 2026 02:50: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=4gzd=AR=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqjGA-0006yN-1o
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 02:50:22 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bbf2dc26-0886-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 03:50:21 +0100 (CET)
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CLDYCa438235
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:19 GMT
Received: from bn1pr04cu002.outbound.protection.outlook.com
 (mail-eastus2azon11010063.outbound.protection.outlook.com [52.101.56.63])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c9pkesr2k-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:19 +0000 (GMT)
Received: from BY3PR04CA0030.namprd04.prod.outlook.com (2603:10b6:a03:217::35)
 by SA5PPFCC01D6535.namprd16.prod.outlook.com
 (2603:10b6:80f:fc04::923) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Fri, 13 Feb
 2026 02:50:15 +0000
Received: from MWH0EPF000C6188.namprd02.prod.outlook.com
 (2603:10b6:a03:217:cafe::8c) by BY3PR04CA0030.outlook.office365.com
 (2603:10b6:a03:217::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Fri,
 13 Feb 2026 02:50:10 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 MWH0EPF000C6188.mail.protection.outlook.com (10.167.249.120) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Fri, 13 Feb 2026 02:50:14 +0000
Received: from pps.filterd (m0426316.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CMPDc42547170
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:12 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c6nag5bmq-8
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:12 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id qjFzvwTkjP7uEqjFzvDLNo; Fri, 13 Feb 2026 02:50:12 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bbf2dc26-0886-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=QZz
	0RdBUzIq+6LfiYUuswSgwU3nj3aTiG/f1W9D2zWY=; b=FqBmqEd7OyO0RtEv17n
	WDISLFtBqzUyMPTsgxq1qj85EcH8JneeVUMh2hox5QnuOoHATg8EoyJ+YCVSFGYl
	LfTA9DZfFKZuUH5GwC6Fe76LZzPXh5fC0ZJ5Nzx45wKj++H/RiWsyW/NwYEFazyD
	dKGi/4/iVBiRtSKArCHLVuiByr4wQxilzgeOHdBiy8OZViWWXHcNNp9mdRH6n2z8
	3m77VUgt2gP+QhfJceoOvNNgvdDKv9l5l0X6srV2pTurzzzLRWuvHOcV4E0jMO89
	7G5YvTadw7IhEgD4LzrG1AwEnGvN93W+s4WEk3edJmewbTCpluUB5v3RBwgm09xl
	Zyw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SpNlHX0tSmBCNBBAZjoVGLv0ocJ7D8OV+dApWfL2268/KbLKkrZi2G11AE4xyWummU2SABeY/59rFJJ6g+QCZz92rLKspYSqIddXogHxOq0k6E8QY8F2kj0lYH+1ZN/qCUE0OEQ8zXvFTSPmmepzWXIQINbBV8juiWzwkeCSjrZ0AtERsfW0FMoRHaWy5nQ95sUdVePyKVJkCcxaz4hwKRfV4Vkbjg+veHdTGcWmvkueVW5wTTGOTRJoP+k5lDL4PZPpxuf48vQXDraV22AQxa7T8WNWC7hMaSM+GrRPYHuPDQkb8E18xSrEcxD/fwhTnyiP88XEcjiaMbwStj4KRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QZz0RdBUzIq+6LfiYUuswSgwU3nj3aTiG/f1W9D2zWY=;
 b=IkJ6r8my6UU/wbC7R8xGx1XcACiXalRa1QqyuHVB3EtH23McVEt/RJoQdWyjduRaWX5Firb/mXoioc4glWMcDjHCJZdqIB05who7lSZkFQCgUDUce/AjCFjV7I3X00g3UwcRZUdTEXc4Dr5gzfBKfsQOIHbgGWi4lkx2AY6LalFDro8w6uMyh3ZDFmV/QjenCKSEMz74zF9L1BxQHhJIOMSsYlLpg9BiDOHsSnnpixWrqYHslAD7UONETFAJoqN1KXoG/WfK6BAQSsqpRcVi25JER0a5A60/rYKpvzutZ3w/QQdCT1TAtxLB6W7XwOUw6O0ZIz5Lt+KXKTrGU7mAMw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QZz0RdBUzIq+6LfiYUuswSgwU3nj3aTiG/f1W9D2zWY=;
 b=GuKwEnySYp+Hhv86vBjhsKaN0Xl2xpAWUsgSjSJttJKDAs6lZS9TuanUwU33arvz/tQQtAtW7PB540f4SoGk6kQzG2t1bKPpzQg8txFla0K6uBJOWSmAhr9fAz0NVgCfeP+h6uIXiKDRfev3KNlExkt5PmH55XENF6ZKL8sZ5nI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=QZz0RdBUzIq+6LfiYUuswSgwU3nj3aTiG/f1W9D2zWY=; b=
	TWeHJFhkF3hik088K1Y/D+Tefvzq5EPCkzCds+KL4ijJsp98pVeiprHcxW7y4feY
	Sj0yPf1stpAo4vh7yf3IHxIlP90hay4RyP840r4QaRuFZn1rMsJYlutGnDHxcxfB
	t65FzbGn1KwGug7wrUzwwOmY7kurGsxjV13mYTylhl9Y1i02RR5UOtQyXemv4qrs
	ZRn9LLORlmu813CMybLL87mc6oTWhPLGWu/C9eH01Mfv2WKzhWjPPhhVdg5ND8Ro
	zDGGTWrOIXUxCAovwo3ThNr2MjvXlPKHUVXq8pTd659nFmtU3WNC7gAwTK21SOOg
	N3N/kC0u2W7BTYAjZ5Menw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=QZz0RdB
	UzIq+6LfiYUuswSgwU3nj3aTiG/f1W9D2zWY=; b=mlXPrg50fbFssAdD5sUZz2k
	JTHjq+IVpep0rPWBnKfdUZ/GP4+Y1xOeUG1mdnCiT7yEBPXFYP+07Tmvc525HgvL
	LW7S42htqLN7FDO0xFeaAvq4Ad7jIOx9488r2VglB4V1sqJMsmoCZMMq7ygSoxgJ
	tbhzJNb1PnsoVFjsEe/+Ty2RVT8hj41Y981RgYY0/BKBdbkMRYvikXhaXiSTvGTE
	suotkQzOCcliWWsIZdtx+qDtb2w8b0FEvpmawNmB8E3ZzLfn9tF3wokb3u7zi+53
	XIhj+XxUOuHJQigdQQrgVPSJYLY5TbzsM73sAtfAHW9PJoLpVt/IbMdxwKBmwwQ=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qjFzvwTkjP7uEqjFzvDLNo
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 5/5] tests: use unit test fragment in PDX test
Date: Thu, 12 Feb 2026 18:49:52 -0800
Message-ID: <20260213024952.3270112-6-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260213024952.3270112-1-dmukhin@ford.com>
References: <20260213024952.3270112-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 adultscore=0 suspectscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0
 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602130019
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6188:EE_|SA5PPFCC01D6535:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 5eaa721b-5007-4da6-eef3-08de6aaa9cf5
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?HdDjsgY5Zs9ijPLoVjj0iiYpn9LyINHlATmSYn0KqAVLKu4Y72YMvzpx67eg?=
 =?us-ascii?Q?x0usi+Ktu33urfL7Vvsx8rLEUM/KctaL54UuI2uAAbPmuiAl8256iL5KKH6I?=
 =?us-ascii?Q?lkmKu7rS+41a5a/essP584I5wWQK7Jp5QAvP0kn+STvFzoZUmHDz8Tgshdmg?=
 =?us-ascii?Q?28BYiQKmVljSpH27nj7HwxQcg3/kjyKgDEm7u8dtrfuNr2NmsZcH0uoF66dl?=
 =?us-ascii?Q?0sZMqy5vKM9oSLch8a9c5Tb4MQfaXYQneUJI+SqsQ2DJs4Q41EdQtBfDhrbn?=
 =?us-ascii?Q?J7M8gJ3UD/hJlHBVplojVh5MWnQW/LfSDdDyIclPxB/EuYwqODExrkgzqs7p?=
 =?us-ascii?Q?l1Yt/w6mrli+BY6iqndOxcbKnsP711XTmVGlGeTsEQ4Ult7IY33SXLFc7MGh?=
 =?us-ascii?Q?sLBBHEnCrJuY0uJOnC0XEBd/n7NIFuvFOB49pvO3sb8VJUvdSVayt+M0wjP9?=
 =?us-ascii?Q?PfZ1qj8V49/h2ZkQdx+ixsgOzwQL0tx59uYSORXVrM/f4aLurPxCeQc5o0Pu?=
 =?us-ascii?Q?AT9cdE1BH5NdbEMXyYEyEdJAvxQtRZQd+EVxpZJMbcS0WpKVmVo/5x0KOGVM?=
 =?us-ascii?Q?5gV7d3vWYcgJn2fVGls66DpsMxh3ndNQjeFz9uiFU4VWmX5/YAd13oZMxg9Q?=
 =?us-ascii?Q?rDNWVHQqH2JIgINU/M7EdkZdUZkL/wvSsJnbNS3duo7Pw3DvDrXQ3oGSIdjl?=
 =?us-ascii?Q?s5FtBClLmcjwkfagDE3jU8P75ZkQ2jf7p2thONQ5LSCTaflYv9lIygJa8Qd9?=
 =?us-ascii?Q?c5tqNSM1QpPbF1yHe6Zgh7DWgY0XXCHUQzsI3MIy3tvP9wgpPG21WsKdDfcL?=
 =?us-ascii?Q?TPflD0LlVyDTXmiKEWNudQNpZpchsS/C3LDE2d+ADylPc4QYrsFpZ7pn+YzZ?=
 =?us-ascii?Q?/EHXuGCNVKl2Cn8MqF0TEE+m70akV3WQD5ZGhMXijVF44KXzWm8N4g29udDi?=
 =?us-ascii?Q?uwSFiCMvoVM8XKFnGI8uVBvJlUtLqKKmo7CUB5eQo218PkjX6v6m7NgosRcH?=
 =?us-ascii?Q?DyTLWeJ84TeUVp0817EtPGgNAFl7vwSbKgBjvDbwgJaKR+gW8DYKxpxTrBAQ?=
 =?us-ascii?Q?U2p5PlvptIJW8egdNpKv3qmHwKc8CpBVB/Wc9u6tax7rxXc++9oM1ixiiM5g?=
 =?us-ascii?Q?F5qrQqR+rPxAixQqJiOKIfXsjC+ASLx1UsTUKpXFNOrNcQRVI7RuiBG8GgFx?=
 =?us-ascii?Q?/0narmlwhCH5bOTHgeym4LoqAbVp0XROqJu5l+IuQznXZvhxnvJybXpxSXw+?=
 =?us-ascii?Q?1Sp3N9JnUsnJY9UHny6XKPMOxsUWgeVooaA53E8N5smXn0K09JItQsklG9C1?=
 =?us-ascii?Q?RTnqBNIgkUxk79CuCKf3yGeiGqJ1xxiCAQsguaLcsGv2alX+30BL9t6Kk5eW?=
 =?us-ascii?Q?ng4/sdrMXbdFMOf1uY70N+XqSG1LcR+8YcN/i5XhnyxNQf/fIlQyooM7HRqK?=
 =?us-ascii?Q?cAyLmtM+qDOao0bLa5d0hSCSZ8fg+0KsgYszVMlnEDKTpM3QReACzp+rR9bO?=
 =?us-ascii?Q?34oqlaDs2fw9wbWwYF2THI6CVo+O47eZjcy/DxMdSeP7j/9+9N1IoEFGu8jI?=
 =?us-ascii?Q?/8ZQQ9sFtFMBaVCe1utBDuRjeyJ71YTZ01hiruvueDNWyKQY2ellqfRmiWHv?=
 =?us-ascii?Q?ZuTPDWH8Naj6yc+KeB0NKxkc5Hlvke3Mri4YZMYc1yhtd3V7jnrRUgRGkeiK?=
 =?us-ascii?Q?CHJPyw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	KqVyl3013furYN8MuHrst47hO/y3uzgNd7fIiAmB91+AiV88nuVJEDkDvMtePWrXTqMnCMmgHsxQuNXVHH3vYSiIPyfuU+7lmdnAMWYjkGX7zQjkosMzCFa/PMxa2LuezRI/TblPJwQnNpYMb0wflY6GLX5HD7bKcBP4zO25W6n6zx0lSDnLbc0tDAMQ2P3qCIAqvf4euRcK3DiPMUXJUBIhPSYgej+7yttgDn3/rXm1I9oUKzsu2SMwNF1E4HNlbxHgbOUivAc6SobXJoUQ8hKw9uDZ6zAudOYFYzybEy3V0Ncp9bJTp3uuSKQLQ4ReEr2Op5FKiCuKTQsZaEn/fbXHtnKt8JvDwh/BQmHNAOIDKEmDkOw6uavvp6bpKTFmBpT09OaUwI16oamviQ87X5ORmhc4wUa0DeR1dYvcuhqsFG/NUVjvFWJIywSwZsUL
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	0D68Ne2SBWSnHeSpPvWlj61MTJr6t9IeUETXSd2HBq2xxJWOq53PNYQ4jXCLQAIHlsZMoMI/0nQC2+wLtgO3MaNiE/YDhpCe/GL3oaK6CPK7MzRsznWYdidQb7E17LLM03c3GXXOPU3yy1DeP856VRhLYyC4cXHR8/8sfkDXOwrkgcKiEGho7c2CcBThp5y1RlmFNnzMsQXYNquOxajNx8oDayWEy4rdHisnFk6FcCINo9a0erXgUENvhBFCX98AVUQVLCjrlXsM6ljjU259jMuzsP43rCY0crlwHRgnTMeT86+ByT2uWJ+DXK2Z++9CpMwlaoY4pElJEusXSq4HyrwUWzzCVsrGWJY6q0xWGUg8degOv7r8rCR13YT5ec+RGVNniV3MszgCqv5ZynhFiIFS8HR3ZXTCuXJGAsuFng1FBNBSKMPhDRwI9ScnK14WSfaqRhAh8PMMb2sVUDHl6LsWu3RsantLz6XqUlomldmSc93HAKbHsKF52h68LM4Y3hN4aRLRhAEfGO4WVb9dRfZKK6hZoDwHUvw2yXyHHZCoYTsJzbA39HR1YmTZFNWVB14tOuc2iQvmhUgtYnvPdLHIr6Piu1/83aJWuhL6Lk+WorXVhxso/31JMRASeqFgqIv/UEqTpViwls+VnrJOAQ==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 02:50:14.0359
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5eaa721b-5007-4da6-eef3-08de6aaa9cf5
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6188.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFCC01D6535
X-Proofpoint-GUID: 8HwLCm9bgunVaHS0d0Rd1ktgjK_zvRvL
X-Authority-Analysis: v=2.4 cv=Wuwm8Nfv c=1 sm=1 tr=0 ts=698e916b cx=c_pps
 a=BPguv+Q8Nj9xbNSzergmQw==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=mDV3o1hIAAAA:8
 a=cbNQJ9GKAAAA:8 a=CTJY7OLnDzyQ9A8_STcA:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-ORIG-GUID: 8HwLCm9bgunVaHS0d0Rd1ktgjK_zvRvL
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAxOSBTYWx0ZWRfX3ujcxBKhb7rA
 KCaISNmKUNtpyKaTtbzJD7ZbiCeuPswf2Ivf6U+QaG1fy7KQInvyZAUaXNxWmVPooH5TeUzV74U
 kli9kZeflEghIV9sDqzLLI5+i0E+D68SVpT3y59CMqPiSmT89kQRqnVX8gageUeKUovqi4R+cC+
 g4IIS8VQQepe6qtho1Z7OL+JjYPNucNClIivZ9tUxqJjn5lTVKqcimPFFeJ56QUqBvgH6rbCSJj
 +t0EgPdF8i+Idh5jEW+DC8XPjxF0SD1/tgDyt8JDGJjdWMLoeNyRR+VBkQYmnfAuPSrKvQd4lOq
 HA0TurMWAlrL74/wymZhWAseRjpyYUnx9c2MGWsZOtCMD6mfyQkPIxxkDrlgmX7iNR71q1QYTzW
 2/w2mq4imWiurnEDckRyN/27/so6kr/MdMvQpOljLtvCXew1JFmYK9gCMjFnpFF1K0h/uUf6ct4
 n7nx14GjIIhOrvacubA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 adultscore=0 spamscore=0 priorityscore=1501 bulkscore=0 suspectscore=0
 phishscore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130019

From: Denis Mukhin <dmukhin@ford.com> 

Use the new make fragment to generate test harness code for the PDX unit
test.

Add ability to pass custom CFLAGS for mock code and object file suffix.

Move <xen/bitops.h> earlier in xen/common/pdx.c to ensure harness.h is
included before triggering the #ifndef MAX_PFN_RANGES check when building a
unit test.

Additionally, use real <xen/pdx.h> in harness.h instead of a locally copied
version.

Update .gitignore to exclude generated test build-time dependencies.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- added lost -DCONFIG_PDX_OFFSET_COMPRESSION test
---
 tools/tests/Rules.mk       | 19 ++++++++----
 tools/tests/pdx/.gitignore |  2 +-
 tools/tests/pdx/Makefile   | 59 +++++++++++---------------------------
 tools/tests/pdx/harness.h  |  2 +-
 tools/tests/pdx/test-pdx.c |  2 --
 xen/common/pdx.c           |  3 +-
 xen/include/xen/pdx.h      |  2 ++
 7 files changed, 36 insertions(+), 53 deletions(-)

diff --git a/tools/tests/Rules.mk b/tools/tests/Rules.mk
index e8a9e82320cf..dc16926f0591 100644
--- a/tools/tests/Rules.mk
+++ b/tools/tests/Rules.mk
@@ -16,11 +16,13 @@ prepare-harness:
 # Generate mock environment by replicating header file hierarchy;
 # each mock header file will point to a harness header.
 #
+# NB: double-colon rule for mocking environment for multiple tests.
+#
 # $1 Hypervisor header.
 # $2 Test harness header.
 define emit-harness-nested-rule
-$(1): prepare-harness $(2)
-	set -e; \
+$(1):: prepare-harness $(2)
+	@set -e; \
 	mkdir -p $$(@D); \
 	[ -e $$@ ] || ln -s $(2) $$@
 
@@ -30,16 +32,19 @@ endef
 #
 # $1 Hypervisor filename.
 # $2 Harness filename.
+# $3 Extra CFLAGS.
+# $4 Object file suffix.
 define emit-harness-deps
 $(eval c-file := $(abspath $(1)))
 $(eval c-name := $(notdir $(c-file)))
 $(eval c-headers := $(call list-c-headers,$(c-file)))
 $(eval c-deps := $(addprefix $(CURDIR)/generated/,$(c-headers)))
+$(eval c-obj := $(if $(strip $(4)),-$(strip $(4)),))
 $(foreach x,$(c-headers),$(call emit-harness-nested-rule,\
                          $(addprefix $(CURDIR)/generated/,$(x)),\
                          $(2)))
-$(c-name:%.c=%.o): $(c-file) $(c-deps)
-	$(CC) $(CFLAGS) -o $$@ -c $$(firstword $$^)
+$(c-name:%.c=%$(c-obj).o): $(c-file) $(c-deps)
+	$(CC) $(3) $(CFLAGS) -o $$@ -c $$(firstword $$^)
 
 endef
 
@@ -48,10 +53,14 @@ endef
 # $1 Hypervisor filename.
 # $2 Hypervisor source path.
 # $3 Harness header filename (optional).
+# $4 Extra CFLAGS (optional).
+# $5 Object file suffix (optional).
 define vpath-with-harness-deps
 vpath $(1) $(2)
 $(call emit-harness-deps,$(addprefix $(2),$(1)),\
-                         $(strip $(or $(3),$(CURDIR)/harness.h)))
+                         $(strip $(or $(3),$(CURDIR)/harness.h)),\
+                         $(4),\
+                         $(5))
 endef
 
 .PHONY: all
diff --git a/tools/tests/pdx/.gitignore b/tools/tests/pdx/.gitignore
index 1202a531a7fd..1bf9c05985c4 100644
--- a/tools/tests/pdx/.gitignore
+++ b/tools/tests/pdx/.gitignore
@@ -1,3 +1,3 @@
-/pdx.h
+/generated
 /test-pdx-mask
 /test-pdx-offset
diff --git a/tools/tests/pdx/Makefile b/tools/tests/pdx/Makefile
index 3c431d7c7822..fa0bea8e1035 100644
--- a/tools/tests/pdx/Makefile
+++ b/tools/tests/pdx/Makefile
@@ -1,50 +1,23 @@
-XEN_ROOT=$(CURDIR)/../../..
-include $(XEN_ROOT)/tools/Rules.mk
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Unit tests for PDX (Page inDeX).
+#
 
-TARGETS := test-pdx-mask test-pdx-offset
+TESTS := test-pdx-mask test-pdx-offset
 
-.PHONY: all
-all: $(TARGETS)
+XEN_ROOT = $(CURDIR)/../../..
 
-.PHONY: run
-run: $(TARGETS)
-ifeq ($(CC),$(HOSTCC))
-	set -e;             \
-	for test in $? ; do \
-		./$$test ;  \
-	done
-else
-	$(warning HOSTCC != CC, will not run test)
-endif
+include $(XEN_ROOT)/tools/tests/Rules.mk
 
-.PHONY: clean
-clean:
-	$(RM) -- *.o $(TARGETS) $(DEPS_RM) pdx.h
+CFLAGS += -I $(XEN_ROOT)/xen/include/
 
-.PHONY: distclean
-distclean: clean
-	$(RM) -- *~
+$(eval $(call vpath-with-harness-deps,pdx.c,$(XEN_ROOT)/xen/common/,,-DCONFIG_PDX_MASK_COMPRESSION,mask))
+test-pdx-mask.o: test-pdx.c
+	$(CC) -DCONFIG_PDX_MASK_COMPRESSION $(CFLAGS) -o $@ -c $^
 
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC)/tests
+$(eval $(call vpath-with-harness-deps,pdx.c,$(XEN_ROOT)/xen/common/,,-DCONFIG_PDX_OFFSET_COMPRESSION,offset))
+test-pdx-offset.o: test-pdx.c
+	$(CC) -DCONFIG_PDX_OFFSET_COMPRESSION $(CFLAGS) -o $@ -c $^
 
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(patsubst %,$(DESTDIR)$(LIBEXEC)/tests/%,$(TARGETS))
-
-pdx.h: $(XEN_ROOT)/xen/include/xen/pdx.h
-	sed -e '/^#[[:space:]]*include/d' <$< >$@
-
-CFLAGS += -D__XEN_TOOLS__
-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)
-
--include $(DEPS_INCLUDE)
+test-pdx-%: test-pdx-%.o pdx-%.o
+	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
diff --git a/tools/tests/pdx/harness.h b/tools/tests/pdx/harness.h
index e49d6bcf92c2..4cdda931feb2 100644
--- a/tools/tests/pdx/harness.h
+++ b/tools/tests/pdx/harness.h
@@ -84,7 +84,7 @@ typedef uint64_t paddr_t;
     qsort(elem, nr, size, cmp);                                         \
 })
 
-#include "pdx.h"
+#include <xen/pdx.h>
 
 #endif
 
diff --git a/tools/tests/pdx/test-pdx.c b/tools/tests/pdx/test-pdx.c
index eefd54c76815..3633c231abaa 100644
--- a/tools/tests/pdx/test-pdx.c
+++ b/tools/tests/pdx/test-pdx.c
@@ -7,8 +7,6 @@
 
 #include "harness.h"
 
-#include "../../xen/common/pdx.c"
-
 struct range {
     /* Ranges are defined as [start, end). */
     unsigned long start, end;
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index 7e070ff962e8..068a2098b41b 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -15,11 +15,12 @@
  * along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <xen/bitops.h>
+
 /* Trim content when built for the test harness. */
 #ifdef __XEN__
 #include <xen/init.h>
 #include <xen/mm.h>
-#include <xen/bitops.h>
 #include <xen/nospec.h>
 #include <xen/param.h>
 #include <xen/pfn.h>
diff --git a/xen/include/xen/pdx.h b/xen/include/xen/pdx.h
index 856fc3e8a0e6..8b4a8701a25f 100644
--- a/xen/include/xen/pdx.h
+++ b/xen/include/xen/pdx.h
@@ -199,7 +199,9 @@ static inline paddr_t directmapoff_to_maddr_xlate(unsigned long offset)
 
 #elif defined(CONFIG_PDX_OFFSET_COMPRESSION) /* CONFIG_PDX_MASK_COMPRESSION */
 
+#ifdef __XEN__
 #include <xen/page-size.h>
+#endif
 
 #define CONFIG_PDX_NR_LOOKUP (1UL << CONFIG_PDX_OFFSET_TBL_ORDER)
 #define PDX_TBL_MASK (CONFIG_PDX_NR_LOOKUP - 1)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 02:50:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 02:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230086.1535672 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjGA-0007Pc-2f; Fri, 13 Feb 2026 02:50:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230086.1535672; Fri, 13 Feb 2026 02:50:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjG9-0007PV-Vy; Fri, 13 Feb 2026 02:50:21 +0000
Received: by outflank-mailman (input) for mailman id 1230086;
 Fri, 13 Feb 2026 02:50: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=4gzd=AR=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqjG9-0006yU-5U
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 02:50:21 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb2b3b1b-0886-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 03:50:19 +0100 (CET)
Received: from pps.filterd (m0367129.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CNHjn81146939
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:18 GMT
Received: from sj2pr03cu001.outbound.protection.outlook.com
 (mail-westusazon11012026.outbound.protection.outlook.com [52.101.43.26])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c9rd8s08m-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:17 +0000 (GMT)
Received: from SJ0PR05CA0057.namprd05.prod.outlook.com (2603:10b6:a03:33f::32)
 by IA3PR16MB6656.namprd16.prod.outlook.com (2603:10b6:208:524::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 02:50:14 +0000
Received: from MWH0EPF000C6184.namprd02.prod.outlook.com
 (2603:10b6:a03:33f:cafe::89) by SJ0PR05CA0057.outlook.office365.com
 (2603:10b6:a03:33f::32) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Fri,
 13 Feb 2026 02:50:08 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 MWH0EPF000C6184.mail.protection.outlook.com (10.167.249.116) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Fri, 13 Feb 2026 02:50:13 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61D2GRns2516936
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:11 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [3.215.31.156])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c6mq5denw-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:11 -0500 (EST)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id qjFxvwTiNP7uEqjFyvDLMl; Fri, 13 Feb 2026 02:50: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: bb2b3b1b-0886-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=cr3
	4swkzcPcEXFdzaCMCfFmOvkyK/MxDYdRkiiZHB64=; b=FlvdE6UGhioOJdsYC5R
	qYz3qWLavepjydteh72FAwKrSKY1yueBi9Z5roB7VU4RewBpj4xgt9fwAL+ZBty3
	cfJ84piWZMP2EU+4PMG7McEJhAmlZIMMBTGUFlSUKo8nHz1+LeQPAVst2dBMGnkD
	AnMh1hfjoHd9RSzKdMhffvGWVUpjtZ6f5/Cf4FLM+d4U28Xr8s0agtvjk+51b5oz
	5cSp2iBH6uCtC5mcFESVLZxz083i1SyDWsn8K+2bt6MmC31K4qRlrvQqevYNvEzn
	LiPc12oTu5p9nRWLD5Z7NciDWnaEjXHWXqhHmXNtiI5jdRSHxCDTzB5qsRMeWUgE
	qUA==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WcJvPb7UUCQyQxCSk4Fshr7AZB1UJC6TIfZzFGuCOSTZinuthgVLtI5HRPU9ImG2uzQegKpQ8O9QbTHNLX5FWqXAmUNDiSSIanSPJBP0fgnhHEzMIF5QnQ8B1poDILsX7is2EEqH9Bk4FNWWXH7Mjc+QeayVUhOXLWwBRX0h26rGPx1cYxJD9PU1tgoMF0dJcMkSweISAO1gn38Ul/PiE590AsRdRTr4NAanYrQJYxa0S3mxHeJtmCGIhUwga2M6ro/xXUJpmJJJu4EXRz7APgPfTVTZWR59OSadI1LJzRV+iHcYDObmV8TEZPcal93UyH0ce7bMrigKsIQAHVWN7w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cr34swkzcPcEXFdzaCMCfFmOvkyK/MxDYdRkiiZHB64=;
 b=f2jaJfKT5WkIOCJqGY12u8c+7tOnSLnz9Xm6wBMwoHu+qhBdJDEAaZ5cMvi0a+uYVGr9qii7tQX5qKDrkqZmPpLDnE3MkYckQUBP3xy8phe24FY4xSXczP/DwqPZn1BlASMDN6F2AEhxtpB8lB9GVnGdyAnd9BbF6CKR+sYY2P+OZjKTe64Bb9FbbT8IofONgdSMSCnAL2R8T/VtyYLILC6ba8oYAr7d76lQtRU/G995+CXWrIV2mF7+GvCNDoTVSYBO2oH2rUupv4RzVGAqYyEIsZM4MJi+pbkUSVVOxWuOx1YY6DfUEy8/U27OMLprLyV0YrRqPaJf2F3djXrurg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cr34swkzcPcEXFdzaCMCfFmOvkyK/MxDYdRkiiZHB64=;
 b=RaR/4P2GLekKtdZdhWyexYY8MU31OcnNUveix9B7oRCpp9FZC68hxnGFDUUczfa9U3kDAg6kji8GMwZK5Wo+P1doCpsu2Wzr0TKeWKm/ndNP51XfuJb/WK7eS4DMPlLjVCuelD2/2qKNkRNvmSlshLOZk2JXt/dx4dcuEmUTGJw=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=cr34swkzcPcEXFdzaCMCfFmOvkyK/MxDYdRkiiZHB64=; b=
	VdWnfmQ4o6RzDBLEdttxsZqdnIfF7GQMqLhdlbAbOnJYOU7XDsRzCERMm3Rh1zVx
	o+6vCq8ToVu1Ab5r6glu8QJ1xAYlO+qA6ejG/ZbGS7BdT2Xj1tdzy7XjL+M8pXEf
	ECZHBn6K45ykRGc3ojy10mKyxYIvKBTTgUtniQbytwrLJQHJdIUFQV5poc13ltTB
	+npniI4b3j7Yb0zr50uTWki7lC2IpUivHiXgVC5Gi4wOKCOJPW6cZP9F32x+5noz
	zeRQzgpfZAvmYIlNNW6UQRO5gT23e0u52YOW5ukSTkCJKlB0nNvHzetsWyId6/mY
	zpuBT24D0GULCymydOkHOQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=cr34swk
	zcPcEXFdzaCMCfFmOvkyK/MxDYdRkiiZHB64=; b=XtURWT2GNgxrdbQ+WjQuVyI
	1jD/QYRIowwtD0qTdS2Pn9Lrk99nmgOTsr5iUSTcGthRWklYlubTJqU3CshAGD2Z
	/9MJ3pvI3OzVPfC9DYrr8vhcT9X91vt0afSnNfS+3BmACgisU3VrW/oX1yAuHOmP
	ObYDaneOW0X+sziXryxmAbSih3R8TfHsiOGZ1x3uoj4pAvE79GODEDFotHB9jl8i
	FT7jmWVSmADtJtk3lwBAxgSJwlwZnJ+RHt69q1yaOGD70LOX41+YZ/tDTADj21NX
	WJAjQDQHjyov7OmCZFwl8+ZDeBq2NU0HwjllKulC7cBiouj2ueheaW3RtwNQmvA=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qjFxvwTiNP7uEqjFyvDLMl
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 4/5] tests: use unit test fragment in vPCI test
Date: Thu, 12 Feb 2026 18:49:51 -0800
Message-ID: <20260213024952.3270112-5-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260213024952.3270112-1-dmukhin@ford.com>
References: <20260213024952.3270112-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 malwarescore=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0
 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602130019
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6184:EE_|IA3PR16MB6656:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 125db805-8d80-423a-ea48-08de6aaa9c69
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?0a+tlNDUQLoUg7FE92BcMziy2vV/peSDJQGXjHkQbiLYqZcs6qJysa0TeM4O?=
 =?us-ascii?Q?AigjAuhf7P1zsA1yMsbCruQmZTTOPlLEnn80EmheCi0BBzodvRw12+u12VCG?=
 =?us-ascii?Q?BrYlIEGminkpHn2rvFISSiz0RaNaj5tVI1sAXuhHz87eR4m3QPyleSfMLCqv?=
 =?us-ascii?Q?X9tYO39tj+c9hbboFwCbtgriIl0Cp2F6o5njTq09kB1rQwvTI/7pJPD1DQ+v?=
 =?us-ascii?Q?8UH/TFZP3NkrIul4YlR6dkXY6vdDh2BwiD3hObjjdvfK7ikt8mfFB2NJH3gE?=
 =?us-ascii?Q?XnsQAoaIZ+Y6v9p9oINd6kowY1tFVHgI+D4euZI6Fa14QNUDB6KAiFPsMP/n?=
 =?us-ascii?Q?TbMp77wOl0vxRdNZD0x4d/yvwZmNTb/1aUaVOfvr5kS8pJssNExa5pdOwu2x?=
 =?us-ascii?Q?TlWuZx2r/btpNwBhW7gOMAeF7ohXtyIhqGLZyJOWdNd25Tw/Zbl2Y9+9cjfT?=
 =?us-ascii?Q?dhHLuSWnzJgiHDOpBgnTVaTr53EyyLmoVab/gbzoD3nDQpUVuaV8RxfdwbwQ?=
 =?us-ascii?Q?zG08Xs+7r0znTYXbAV9zfsHx7G7wmiRJx/MrBuqfQMhQ1Rhg5TKsrEAGbgw/?=
 =?us-ascii?Q?ssMXs1bgF8sY/DK3VNq5OIIQpEYXOgEKn9MfLPuSANqSNbpRy5UpLQCVO2HN?=
 =?us-ascii?Q?yjzJNq+2z9K89t36+gYA3EhcZo2J6eUxlP0pCTNc/Wvz6EZnba6ZnETqE0yP?=
 =?us-ascii?Q?rdHazsYeTP/z0vo05ctuBEoJBc6DeDjtOCeeYVPmAnlBut9lmK6YMJgPld1b?=
 =?us-ascii?Q?XKfxreYXDoGjbnbKOQpL84rE3cniMr45uitJUdRH+M7AgWTwD+Kpf7oxJC/4?=
 =?us-ascii?Q?+Pe+Sg/eQYRul9QdxEKMn4PghZarLGYYPqEm6rM0+C5XHNBOkmm2Qqt4qH5B?=
 =?us-ascii?Q?RNDlehRN8eAtQDvtRU0N8GJhaYTXS9nsFeAWvKYOl6Hfqt0TZFqgImo7z3yj?=
 =?us-ascii?Q?wyt216b4+EjEaKk/H11biMhb/J5j4fDUFWSDitvArcZblw7H0GifRF6AWbOF?=
 =?us-ascii?Q?n3ptYgQSMGxq+MUateKLl8r2jz8/Uao1lksUtumQdE+5gNOLmvD5H7LR3Qlj?=
 =?us-ascii?Q?DVPcMiFw/kbOymeBEPyiu0eZoRXhffTi8OTiFkqG8xqmDUhYlQdIkrkEXrAB?=
 =?us-ascii?Q?zHX0aa3f8tFQ72/D2BQFnBHuBUzMSMsQeOOPDD9zR7iEzX0OeatawXOTKM5g?=
 =?us-ascii?Q?wxvqk9r8hSKIDP9owVvhFoktaQqzPB++faKoTbCaGzZOs9aDkjyqazTYL+Vb?=
 =?us-ascii?Q?9SQ8VkBNYFFsgxMj6axcNArUVj9H0aIoA+s6A3ncPT1xNy73w5jsUlXgPG32?=
 =?us-ascii?Q?/X/ktvA8sKn9xQ++IrKSs3pOAksgimKCyIkZyOCtiPxHd0CQfaznvg627p7u?=
 =?us-ascii?Q?UlEHm3n7mniMgqUFT+sI+oSIIBUkcs9hYut67t219CXvx4FdlOuoc2qehP6D?=
 =?us-ascii?Q?KvUjlp4O+tCqBrHAI5CIcpKlvF4N3sZkEkCA8J1yQ8KvVPduh9D0zrvrVPzf?=
 =?us-ascii?Q?Almdsrp/O757UuYShdzJBsMry1rWEnoZ7neB+lVokr+zRwHWBaS7nVXNRkEe?=
 =?us-ascii?Q?DeWTDPXatWHJkJ+vIZInffKZoL+d3Fl42c72NeU1KxATKquKjvMbdskhbt45?=
 =?us-ascii?Q?SADN/1hNmkpWJ86je6f7RxOBTZJWm7kfFF8tj6T4lIC30Gt9zHCzEH860evP?=
 =?us-ascii?Q?KwmMCQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	SpTvt+w5NOsdoxKHglmCCbhmi2yjBXzYYjuJiKRBfye96a1EYnYmV/9joUw8l532cIbYdV/XJo8vd1rnc/TVmckZyjbNB/MExedUmpvDPlcyW5P6lqLXAY3wDDyprEaFmUE6fnot3ScZ8vClbgG0FYoPJAOqCpmAbyhSCR2luEr6J/kloopZoi5ZLuWP/a2Qih0RbZDKpY/i406gEUWjZNUXqtNF0eJiIJ4Zv3UKCof2auTiiOOEynTQ7TqK4Gbz15NhHOCWVN1XX4tM7s1d1xDdNCEv20yM7m8XQltuF5s/7m54u4RLW8NgMgb5GP5fHZbHfGbpK2Z1A6Pkrns3w5ifkCWJz+YghjePQIIR8virAQLeY6kr6df65yCoZyBUqfoXTIvH4mCfy+IL1aDrnquxLzdpePSHtPU4TG18ugwp0bkXmiR8C/hfKjSRInfp
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	emsIhVwOUrAPl3hoX33MC1qa2SABx7k8tYCDWPX3UaEZDM0C5RfTxtVHZuVyJHzG60zJf+VngE4MVTp95CM3i2ogKVaQmHz+KPY8Ywf3NsYg6VN8C86og1Q7XxeBg058yFiT8SfYpp9lQQJ53H39XSIZRNsmZzcNWNIEsHJ0Z7Yms1qwG9tgy+0oxljF4ZrABcbIVs4eY3EML91hCHIZQEbU3uL+U/qgA+ZDaOLWB8Vz34FwBsIjzNqyhmLpVsr+z1GjqjZwH4Plxea7lqBQAkuhmGMoEpYFY1FxHqrhL9ldYvAW1bLfTczQLxuoYo8XrUFr4ydR/TrpzJFzXgPjio8333Ke+qKW1jqSW6f0+ygD3KpOkcoWYIemr5RhcwjZmSlz6bKAJITihqpASBD+/1eaiayE+exVI75iEnAA0ZgaGRYmBcc6CzEjpHpArwcdrvrn1M4dnlRSne10O62CAiCAubpGQj3UYKNBWmJj0vQH1/wkpwJxe1GfKgbeVHkJvK5SPxWR0gEHN5FDV9hsmd/EB+D1pP8CGk9ku6yAXPGCJKGW74Yf7vG8D0IlIQVlWupAep6/DjERCrSz1WY8rZ8iz2NU0mziFmHJSc0Bi38e9JRi3drOFDKodnCb/Y6ts54BQ7RsPt+FLXJY81LVTw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 02:50:13.3035
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 125db805-8d80-423a-ea48-08de6aaa9c69
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6184.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR16MB6656
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAxOSBTYWx0ZWRfX51gKSNGCgWoe
 TLrEDXWzNhrCJxiplWj0J2HbKuxSGab1CpqHkMBdDHdWLwFDiH6wwHuke9lrG4X8LjyP+zNKMB4
 m14JDDmhMn4RbpQ4H3y+EndzKrneZCbB0pufGm5lfU6X0MFS40qpZOYACZbjDxDGg7Y/ydcJfah
 UDG6I0aciWCTFVEwflIulNGrBYvECAj4sr8kSEPt0fVj3keetZnKe5W/GJUo6MOLv+Wy4aRpvWW
 DAPFVFD3+xqFylPZafvsbj6ozsYT2+OGMK3SyHSd/ZD9OyvGgwbdG0VFaP0CUmQadLxI7gVUhXc
 s0tyu5cCyLqrv3uzebJQUOIUDdxbza0ndOKKGNUhqZtq7tWdq0pP1cX5uzfgpqYcvX4OZ2U+Ti4
 GuPXbe7Tp2Q5UggQmZsv7h+c0l1ZGNi2GpcUzbO2hS5cYZav93nkIDdZQZYjoD1XALFXz8EknKO
 AN16LUaitmuOOCXz8zA==
X-Proofpoint-GUID: hVYd24ooeBcXJfvepN7LdCS0vGs8Zsno
X-Authority-Analysis: v=2.4 cv=SZ/6t/Ru c=1 sm=1 tr=0 ts=698e9169 cx=c_pps
 a=KbXMGX1SJVu0lhZGOc8PIA==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8
 a=iIiM3PgN9BBgacVs8QQA:9 a=G69WFyCBNqGPyalROSdv:22
X-Proofpoint-ORIG-GUID: hVYd24ooeBcXJfvepN7LdCS0vGs8Zsno
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 adultscore=0
 clxscore=1015 suspectscore=0 impostorscore=0 bulkscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130019

From: Denis Mukhin <dmukhin@ford.com> 

Use the new make fragment to generate test harness code for the vPCI unit
test.

Add new prepare-harness target to tests/Rules.mk as an optional step for
setting up mocked environment for building a test.

Add ability to override the test harness header file.

Fix hypervisor headers used to compile vpci.c against host environment
where necessary.

Fixup emul.h by adding missing mocks to account for new unit test infra.

Update .gitignore to exclude generated test build-time dependencies.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- moved hypervisor headers changes to a separate patch
---
 tools/tests/Rules.mk        |  8 ++++--
 tools/tests/vpci/.gitignore |  2 ++
 tools/tests/vpci/Makefile   | 52 ++++++++++++-------------------------
 tools/tests/vpci/emul.h     | 50 +++++++++++++----------------------
 tools/tests/vpci/main.c     |  2 --
 5 files changed, 42 insertions(+), 72 deletions(-)
 create mode 100644 tools/tests/vpci/.gitignore

diff --git a/tools/tests/Rules.mk b/tools/tests/Rules.mk
index 8c4881e35da1..e8a9e82320cf 100644
--- a/tools/tests/Rules.mk
+++ b/tools/tests/Rules.mk
@@ -10,13 +10,16 @@ $(shell sed -n \
     's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
 endef
 
+.PHONY: prepare-harness
+prepare-harness:
+
 # Generate mock environment by replicating header file hierarchy;
 # each mock header file will point to a harness header.
 #
 # $1 Hypervisor header.
 # $2 Test harness header.
 define emit-harness-nested-rule
-$(1): $(2)
+$(1): prepare-harness $(2)
 	set -e; \
 	mkdir -p $$(@D); \
 	[ -e $$@ ] || ln -s $(2) $$@
@@ -44,10 +47,11 @@ endef
 #
 # $1 Hypervisor filename.
 # $2 Hypervisor source path.
+# $3 Harness header filename (optional).
 define vpath-with-harness-deps
 vpath $(1) $(2)
 $(call emit-harness-deps,$(addprefix $(2),$(1)),\
-                         $(CURDIR)/harness.h)
+                         $(strip $(or $(3),$(CURDIR)/harness.h)))
 endef
 
 .PHONY: all
diff --git a/tools/tests/vpci/.gitignore b/tools/tests/vpci/.gitignore
new file mode 100644
index 000000000000..d66c2cd56be6
--- /dev/null
+++ b/tools/tests/vpci/.gitignore
@@ -0,0 +1,2 @@
+/generated
+test-vpci
diff --git a/tools/tests/vpci/Makefile b/tools/tests/vpci/Makefile
index 97359ff67f86..a885ce41b73e 100644
--- a/tools/tests/vpci/Makefile
+++ b/tools/tests/vpci/Makefile
@@ -1,43 +1,23 @@
-XEN_ROOT=$(CURDIR)/../../..
-include $(XEN_ROOT)/tools/Rules.mk
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Unit tests for vPCI.
+#
 
-TARGET := test_vpci
+TESTS := test-vpci
 
-.PHONY: all
-all: $(TARGET)
+XEN_ROOT = $(CURDIR)/../../..
+CFLAGS += -DCONFIG_HAS_VPCI
 
-.PHONY: run
-run: $(TARGET)
-ifeq ($(CC),$(HOSTCC))
-	./$(TARGET)
-else
-	$(warning HOSTCC != CC, will not run test)
-endif
+include $(XEN_ROOT)/tools/tests/Rules.mk
 
-$(TARGET): vpci.c vpci.h list.h main.c emul.h
-	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
+# Do not mock xen/vpci.h header for the test
+prepare-harness:
+	set -e; mkdir -p $(CURDIR)/generated/xen; \
+	ln -sf $(XEN_ROOT)/xen/include/xen/vpci.h $(CURDIR)/generated/xen
 
-.PHONY: clean
-clean:
-	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h
+CFLAGS += -I $(XEN_ROOT)/xen/include/
 
-.PHONY: distclean
-distclean: clean
+$(eval $(call vpath-with-harness-deps,vpci.c,$(XEN_ROOT)/xen/drivers/vpci/,$(CURDIR)/emul.h))
 
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
-
-vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
-	# Remove includes and add the test harness header
-	sed -e '/#include/d' -e '1s/^/#include "emul.h"/' <$< >$@
-
-list.h: $(XEN_ROOT)/xen/include/xen/list.h
-vpci.h: $(XEN_ROOT)/xen/include/xen/vpci.h
-list.h vpci.h:
-	sed -e '/#include/d' <$< >$@
+test-vpci: vpci.o main.o
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
diff --git a/tools/tests/vpci/emul.h b/tools/tests/vpci/emul.h
index dd048cffbf9d..979e86e2692e 100644
--- a/tools/tests/vpci/emul.h
+++ b/tools/tests/vpci/emul.h
@@ -34,8 +34,16 @@
 #define ASSERT(x) assert(x)
 #define __must_check __attribute__((__warn_unused_result__))
 #define cf_check
+#define always_inline inline
 
-#include "list.h"
+typedef int64_t s_time_t;
+typedef uint8_t nodeid_t;
+typedef uint8_t u8;
+typedef uint16_t u16;
+typedef uint32_t u32;
+typedef uint64_t u64;
+
+#include <xen/list.h>
 
 typedef bool rwlock_t;
 
@@ -43,10 +51,6 @@ struct domain {
     rwlock_t pci_lock;
 };
 
-struct pci_dev {
-    struct vpci *vpci;
-};
-
 struct vcpu
 {
     struct domain *domain;
@@ -57,35 +61,17 @@ extern const struct pci_dev test_pdev;
 
 typedef bool spinlock_t;
 #define spin_lock_init(l) (*(l) = false)
-#define spin_lock(l) (*(l) = true)
-#define spin_unlock(l) (*(l) = false)
-#define read_lock(l) (*(l) = true)
-#define read_unlock(l) (*(l) = false)
-#define write_lock(l) (*(l) = true)
-#define write_unlock(l) (*(l) = false)
+#define spin_lock(l) (assert(!*(l)), *(l) = true)
+#define spin_unlock(l) (assert(*(l)), *(l) = false)
+#define read_lock(l) (assert(!*(l)), *(l) = true)
+#define read_unlock(l) (assert(*(l)), *(l) = false)
+#define write_lock(l) (assert(!*(l)), *(l) = true)
+#define write_unlock(l) (assert(*(l)), *(l) = false)
 
-typedef union {
-    uint32_t sbdf;
-    struct {
-        union {
-            uint16_t bdf;
-            struct {
-                union {
-                    struct {
-                        uint8_t func : 3,
-                                dev  : 5;
-                    };
-                    uint8_t     extfunc;
-                };
-                uint8_t         bus;
-            };
-        };
-        uint16_t                seg;
-    };
-} pci_sbdf_t;
+#define lock_evaluate_nospec(l) (l)
+#define block_lock_speculation()
 
-#define CONFIG_HAS_VPCI
-#include "vpci.h"
+#include <xen/vpci.h>
 
 #define __hwdom_init
 
diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index 2ef8d4e03f1d..3753417e866d 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -189,8 +189,6 @@ main(int argc, char **argv)
     uint32_t r24 = 0;
     uint8_t r28, r30;
     struct mask_data r32;
-    unsigned int i;
-    int rc;
 
     INIT_LIST_HEAD(&vpci.handlers);
     spin_lock_init(&vpci.lock);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 02:50:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 02:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230089.1535699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjGC-0007vD-Bt; Fri, 13 Feb 2026 02:50:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230089.1535699; Fri, 13 Feb 2026 02: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 1vqjGC-0007ux-3J; Fri, 13 Feb 2026 02:50:24 +0000
Received: by outflank-mailman (input) for mailman id 1230089;
 Fri, 13 Feb 2026 02:50: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=4gzd=AR=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqjGA-0006yU-5i
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 02:50:22 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bb454bb3-0886-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 03:50:19 +0100 (CET)
Received: from pps.filterd (m0367128.ppops.net [127.0.0.1])
 by mx0b-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CKJwSu949884
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:18 GMT
Received: from sj2pr03cu001.outbound.protection.outlook.com
 (mail-westusazon11012064.outbound.protection.outlook.com [52.101.43.64])
 by mx0b-00498f03.pphosted.com (PPS) with ESMTPS id 4c9nt9t9mu-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:18 +0000 (GMT)
Received: from CH0PR04CA0119.namprd04.prod.outlook.com (2603:10b6:610:75::34)
 by CH4PR16MB6763.namprd16.prod.outlook.com (2603:10b6:610:221::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 02:50:10 +0000
Received: from CH1PEPF0000AD83.namprd04.prod.outlook.com
 (2603:10b6:610:75:cafe::c) by CH0PR04CA0119.outlook.office365.com
 (2603:10b6:610:75::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.12 via Frontend Transport; Fri,
 13 Feb 2026 02:50:10 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CH1PEPF0000AD83.mail.protection.outlook.com (10.167.244.85) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Fri, 13 Feb 2026 02:50:10 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CMYP251194520
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:09 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-usw.ser.proofpoint.com
 [50.112.124.217])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c6mq5denu-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:09 -0500 (EST)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id qjFvvotfkRfmuqjFvvR3TA; Fri, 13 Feb 2026 02:50: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>
X-Inumbo-ID: bb454bb3-0886-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=fOU
	WfQtEpLW+O91WgiS4xNRvSlc7HEqZhzWoRw/fWwE=; b=eRpmvpADU9ZjLhrsHHF
	lDgUz87yRsssbFo/16Yu3CoLJQJDK0I6FcT348fmXqjzon9xY830dJuaJ5OtUwxk
	JsrJ+IPyEH4bDoJcMlQTOEkQWk6FGr9Xi5iHYAGLtz18W/BzZGOKhIKaVEjCV02U
	C8QhhrzP/ahdOFYiOOzsPhfoiyuuu8cyQ5Rg8+8WWnWTnQUkLPo2Eoq2EREfwwQg
	gUdy9ZYU0JvBYJoYSfGhwVC/XgLOwC3AM9yfzJnRqNajm916u+bBatO0sq3rP3Or
	Eaq2q+vMVHqAIPQ8XprFy5Fa1r9W1cT4S4tJz90h4EihRekl6wJBeXL28uxX3a4a
	KDQ==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=izXyZAdZn1WdnlEF+bzS5u7XHRjA82wU7QkbvSCnDw8Lsrh0dARt/0SUZB2Kyhf2RqsBx4ResF1ZISK125yw5VayaArzw7kFPQyOTqKKvOhqKA9sKPE8d843Q2UcbsFWQN8Klu37rdrhIG5+S1Ru1QHPWTnSXGoaKZGy7gBYgkMCh2Az5PzGGzGaQIQFTQyK5Zx8ly4CQL5kW4K5tef0iGPLzcr6pCU0Y7vT5LwByjR9imcfDHJG9UKLA4QuBjK9VWOY75Sypw4iEEwcyQcpO0JWybR3eIzs8Q3lb/3pXZOZXfhjUs6y2IvVWV6VZHAmATnT1Zka/tkSqcL7mYRMZA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fOUWfQtEpLW+O91WgiS4xNRvSlc7HEqZhzWoRw/fWwE=;
 b=zGTR7S5Ai+5/n+4DbAZ+G9OU9YJOU18V5hTEni71OSDZ5YWljgb4DSb1KW+GrUt6zqfOAMApURUlxoaATDb/ZWTz6kyzBbw5qR1d+Sy/iIGJ31bRRUlY9TA6S+2jcRy7dBbzzTmiP7LjCL5zDfRripEIuaLXjOkn8rZiWkXpxY+IRwhxMlaem+isc/QJTXIK/jNz0xPTNO6La71Bk23Em4slSEPJBJZcHvE999+1/bJZymFvJpEDuIQoBJcO4P+HlT+7woaY7Q8v8IV7JMzGSewOiJGTerGxyNckCcyhonTmSXmQvMR99YwyXok2+WlUyyuLs7xk7a79ocu3whTHNA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fOUWfQtEpLW+O91WgiS4xNRvSlc7HEqZhzWoRw/fWwE=;
 b=INkXM8tb53Lm97WYu2Xj8WxcXbYph9lAgWsju41qBKZPsYOjsA0OY+3jm3Lptp+0g4iXtPVGYa20ZSDv7pbqsQVmap75MInfgI+lIBM2asLHzuqJaW27U7sKaEGHSz19x4r+wt9gGK8H9B9uIBR/+vx07kqE38WwivEUccqeUlU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=fOUWfQtEpLW+O91WgiS4xNRvSlc7HEqZhzWoRw/fWwE=; b=
	eVTJKT1OJWiAcN0LoNoyNYVRFkUtQPviuC1HJBSKP8O0e55DKTTLe/dnR6VekS+5
	MU36n0KeUxwmj9C+7g4tjAqmJJt5sRd7cIJRb2RyY6eueE8mGjIfEc+g+k1i0gnv
	jw6G56vfPeht/GjrDlKt3g4tC1YjgIrl7grnAhl+g6jsrOvy8CJY64P3J4lXwpoG
	97JpEMM6yXRh5liFN343jV3btLAZi7vtvVNbvPfAQ06+lVyiZNa+hr6Xy9DZnJLH
	Ui5hPAzfP7aS7kg1/ijfi44ZvPL+7a37l5VCI0s6YwHjwAjEq35HKQErzknMmAFw
	JtG11GjzxXOaCwfXfHlarg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=fOUWfQt
	EpLW+O91WgiS4xNRvSlc7HEqZhzWoRw/fWwE=; b=nRRvO3dU8LnwSSIYpIr8y8h
	enw4nuBTyMtrbchEAnotCxv564KQAZfkzlltASaQRNFJFmRlqGXiITdLY4B6HYKq
	b8M5E82Mr6nZuOBVX5VGSqaHNTyT0dpke/Zs+JZbwW2t++2GNmnTsj9VxLRpeF+3
	4V6KVcQEoEr04InFdjPWubDwMv2opRV9FeP+BeAdrtOUreMZyb3+au2ByvozIzGi
	1MtU07GbGWhzBmTOKKkABCeTvkY3/qBrXtl2iqpFZe9fQo8nS6Mx9Fjqtc4Pfvja
	NTu+VXOIXDVLwWNnVdsKxyxEqoaIHJMGZorMr4waO9tQDijPvMTyHQEWRUCwi3Q=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qjFvvotfkRfmuqjFvvR3TA
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 3/5] xen/include: customize headers for host builds
Date: Thu, 12 Feb 2026 18:49:50 -0800
Message-ID: <20260213024952.3270112-4-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260213024952.3270112-1-dmukhin@ford.com>
References: <20260213024952.3270112-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 malwarescore=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0
 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602130019
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD83:EE_|CH4PR16MB6763:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: ae7b2de1-19b7-446e-c672-08de6aaa9ab9
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?gvJ02nx2evg+ZCyx/ADgGqxJodVOl38Z6NgM7FizDi1QHEgSIctjLLcdi6vU?=
 =?us-ascii?Q?6KDPTuJ04klVuFJY82ynCP9Z/rnNiXrhuiIE1oogGw2Sq2sebmIrofLBdGMS?=
 =?us-ascii?Q?VtgZ5EUhJkbCGWkt4sNkkGM/sVQdHs+kFK1WVAJgWcbxAmVYHVnr3eIbvwMs?=
 =?us-ascii?Q?p9aLQRrPWniM4pdh93b/Eoys4Ff73uS4lxCR/1YSVZTmlVDBhqogwGEk5xsd?=
 =?us-ascii?Q?TpjLWLMjy7iYwN6VzJoB94GH/DAHQYtwHv6d1pm2arOYVLOfVSKZoWS5ybua?=
 =?us-ascii?Q?XQo6QMVillhwOjVCIlWmG5PxsQxiuwl+AL3ZGG34e7nUwi+GWfTwj9u3xkEG?=
 =?us-ascii?Q?nZCWvM09/r8WxbxOOHJMClS6jfRfTkHLRQtn98rIgkXhFYIMT4IuNJWU2VBe?=
 =?us-ascii?Q?7yocAX44Xmrq0k7Zyyt2J0ASPr1yYS0/c5t23unR6yMQNqiwaB26teYEKEni?=
 =?us-ascii?Q?fAUlEfej1h+wxxQaUkGqaNjtErstSNSfMmQ1RWjya7jqTKmfW9dMHKg0rd64?=
 =?us-ascii?Q?t/0E8kxulUL8U9OwkDF6JFZCdteV6ftzETWFfKELXhMSusbh7eS9AFuz+5D1?=
 =?us-ascii?Q?p3bPWXMPZBOhj3MO+ortOfxI5iHMQkbW//QTKv9OHBucrrnq/myZF/CWp18j?=
 =?us-ascii?Q?1x9nTBc5DXJHou8WNW7wwpnGW7TfVW5CmsA/yZXcuACY/Uf7v4OUr6o4C2cJ?=
 =?us-ascii?Q?YWP2ruLvpE0IQAp7b5WCTSxrmk7k+kCdgup1OrKS+raO4oooTWZevh5GBoqz?=
 =?us-ascii?Q?I0UK/Xft8xki6WgYfFTyEHxIhe6n93k3oqP6pS8kZIcn27oLk+G9rHSSnRa4?=
 =?us-ascii?Q?PZYa77aUuOgahAPouiIPr/F97k64jhwP+wePKJK/le3Fj9JiF96/yaZ33Nkr?=
 =?us-ascii?Q?PPjcnSXirCABDxO9phy4Gs1YRswy1qJiY7zotBOP3AeCNdQ8m8+EfHm4L3x0?=
 =?us-ascii?Q?vAY2hZwjh63RC7+/+20XAaxg/CZEnq8yle6zBxEBCrImiHwO34dfzzOWLhft?=
 =?us-ascii?Q?aPycGz3dBFu18s2wcroMMWH0f4xvJQKV6v2Q6gM6wWuvECHvlG6asse9yZbj?=
 =?us-ascii?Q?0ZXb7I50IwG/TfkniUBZIzL8m3/VezfXeIbmsn6rQiWoDxtkldpLret3sbu1?=
 =?us-ascii?Q?N/X1v0DoBIoWb0tJ3Ka7GD14Uf/8l+p4t/OlxIbWaAcQkzfQLhDXKKFYU193?=
 =?us-ascii?Q?F8GXhOl3kCTpUbAKRs0NMsAkILaxPlvXyrRzINdK9BOxOF+F799949U7jqpz?=
 =?us-ascii?Q?d1gdFjPMHk8qmtjoqUGtcGVraY0ZGv/w+eWLduCaFdH2QpWVDKwP/lZsSBST?=
 =?us-ascii?Q?VQUutssNprN2poThw8Ff0kOTzJyaz92VHnKMc7KdyjfZem/QeVY7FBNK8joC?=
 =?us-ascii?Q?xyoi2q4Y5ZkeBoi6CHsQwHWXr0z5VQtul0NUePSJ7yoZsoC6goWOmrVZqU8p?=
 =?us-ascii?Q?4uPeoji8LoniRNCncwzqPYy1ZacdbJEsAtD8zvMvn9xmhgjTSFPv3/IKOAXt?=
 =?us-ascii?Q?IVYN5LXofOiWMnhEaZpS7Z9AlGVcft4mW/79dKw2JsMqJ0Thgnu4jCTHtKgk?=
 =?us-ascii?Q?7Fqf8gGXAdCJo+666JKbgiKfY4U4b3lIXXOV5VDC2GGozcardZJYpyjDXEC+?=
 =?us-ascii?Q?2FAuzzV6gjabDuoJaN4zuQDgclH53Oa2AXdfebuwtJNrK08GB4w459xlcgOb?=
 =?us-ascii?Q?hwb+5w=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	CxL239nFRyHhONXwVSxIaiSgBaWEvhFaq/PtMAXGzkmhUi1Uzavv3mje+Rh49fen1pJ3rnXDliM8+maKJZMdYXDC/zMn3KBkIyLJhEnPzHcm8fPu+61NxQ3A+E/MCiqDw13W/kMHsnFJNhsxQkxX0vyewRG9fXGsqOWW3LoECKPsCzVHiZiCWOrnaYgBUaiv06XM9aRAw179ezuojbJu/FeK6N2lqZASABcZ1UDIlXMieoMCBU7t9bHd8URxGDUlPo+yOTMp3aPfmMesC0sEuYo/e8WHJk5llAcGcoZ6V1N5WYvSybopVWk7DOYNyS2H/RvlEawDujHkci9g5LF7o2K+L9xZj5nmrkinFt77Hl7a/L3MFfkK2w3aMQ0MDcvfzS5sSKSzYQFv5N0o5Ovn+VdI+U5wMHExurVwEffIymqIYdg7M3h9stW/OyMe4F8f
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	aAiLoezWHprwMFyazRjIk4or/ClJzSdw5TOM+V6e3JTA9hdHFNcKmvn7CQZ17Wk2zQSsSBH4AjzCIWFcmGqJI7JX9GHwuw/yizC4CsE6VnvYGL3ojNxU0w7VJCHjjjhces491nP6QtPw6Sk9KN/ZGrrvNVxb6eLmKzT7/zEj0Q2AkRKtWq/CoPuyABD6W9XofK34L6esrbf7U2WbnUgB8v3nRDaN5UXpekQufc8/05I4aSpoPH7r/mDiB3XxFRh9nFAWc7szhu81IpWONkPBr815j4uiMMWgP0l4eASW0+/HJO0mGrQeaFcxuvZpOth6XcbhzL8XCx1EfUJJcacuIi1n41lOliZKANrUBD26OESGap78P1t3RrYT5OHpsjBiTZjsaGdPf8eXMmgmrPS1IsXMKF41wC72wrm65JFBXSJiAgFF0UtdXiNpq6KyuoBm4p0+5/WAP+UIxXC2sROGW3VcOQZ5uchzNjoTais6wT1+nCZU0MlcsR+qX+pGCwo84FX09o/wFrULBmsrxASPyjdXJjqlIwwqf8AStIPh2u2usipKyeYof9c8I8R4C/kMXvUluI3xlCgW28Uo1tjyqLvlQm/LiffLSTeDQxxEE4t7fkyp8X3EcTr+3XOV9Fk4pLDrsHSSN8NWww59fIHtyg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 02:50:10.3462
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ae7b2de1-19b7-446e-c672-08de6aaa9ab9
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD83.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR16MB6763
X-Authority-Analysis: v=2.4 cv=Se/6t/Ru c=1 sm=1 tr=0 ts=698e916a cx=c_pps
 a=vzG6OqJaKuDO37FI3iuMvQ==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8
 a=CsCi3mX3UFN2opcwia0A:9 a=DqJYxgmhk6moR-_7_KoZ:22
X-Proofpoint-ORIG-GUID: qebA1s16s7xsMUXS_9H3VKTfCrVkljWu
X-Proofpoint-GUID: qebA1s16s7xsMUXS_9H3VKTfCrVkljWu
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAxOSBTYWx0ZWRfX67lFaBJ8teOT
 T9u6iIO8mpV6+BqMA/Cjh92lsjfK/I706B1btYYSF/XTFmUA9xVcuxQZrgZbkO5/8nhXhxEG3AI
 Fc+AjsJQJ8ehWVD5KIYf3bGxEs6GkLDoxcCyncqMDHcZ+2J6zi82pbhXLZ993SHhA0iH0X2QUQT
 vZtCGoCJdObwqfS3s1mg8RRmUegCVQTuZ6BvZ62xzpkgvW6UipuPVtHHrc+muTXTwO2pExFeW5G
 EkGwbOm3nmHawXG4/YS/9giVTY6UFrgFHfhFsSNfCsnIjBcP06R3MCKueKagFGEX7SG2dQ1XVUK
 xq0YdMxz2b/gu1z0isYs4m5qf4RA2QiXf07qtASPRfYiTnd+N/tjI1Bh+FosTKIz+xM3/5woSGV
 hx0rNaEbZJxsGkHUq8hOw62NzDDyYWOcngt8jrT6H5lj1VHOrd+rriUeaOqDVisuKhGC9db9Gs6
 g3skd328Ez+s2fVissA==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0
 phishscore=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0
 suspectscore=0 clxscore=1015 impostorscore=0 adultscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130019

From: Denis Mukhin <dmukhin@ford.com> 

Update hypervisor headers to allow vpci.c to compile in a host build
environment, as required for the vPCI unit test.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- new patch
---
 xen/include/xen/irq.h      | 2 ++
 xen/include/xen/list.h     | 2 ++
 xen/include/xen/numa.h     | 2 ++
 xen/include/xen/pci.h      | 2 ++
 xen/include/xen/pfn.h      | 2 ++
 xen/include/xen/spinlock.h | 2 ++
 xen/include/xen/types.h    | 4 ++++
 7 files changed, 16 insertions(+)

diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
index 6071b00f621e..f7fa1d0fa29b 100644
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -1,5 +1,6 @@
 #ifndef __XEN_IRQ_H__
 #define __XEN_IRQ_H__
+#ifdef __XEN__
 
 #include <xen/cpumask.h>
 #include <xen/rcupdate.h>
@@ -208,4 +209,5 @@ unsigned int arch_hwdom_irqs(const struct domain *d);
 void arch_evtchn_bind_pirq(struct domain *d, int pirq);
 #endif
 
+#endif /* __XEN__ */
 #endif /* __XEN_IRQ_H__ */
diff --git a/xen/include/xen/list.h b/xen/include/xen/list.h
index 98d8482daba1..06d2fa3aed15 100644
--- a/xen/include/xen/list.h
+++ b/xen/include/xen/list.h
@@ -7,8 +7,10 @@
 #ifndef __XEN_LIST_H__
 #define __XEN_LIST_H__
 
+#ifdef __XEN__
 #include <xen/bug.h>
 #include <asm/system.h>
+#endif
 
 /*
  * These are non-NULL pointers that will result in faults under normal
diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h
index f6c1f27ca105..80d60fd49178 100644
--- a/xen/include/xen/numa.h
+++ b/xen/include/xen/numa.h
@@ -1,5 +1,6 @@
 #ifndef _XEN_NUMA_H
 #define _XEN_NUMA_H
+#ifdef __XEN__
 
 #include <xen/mm-frame.h>
 
@@ -152,4 +153,5 @@ static inline nodeid_t mfn_to_nid(mfn_t mfn)
 
 #define page_to_nid(pg) mfn_to_nid(page_to_mfn(pg))
 
+#endif /* __XEN__ */
 #endif /* _XEN_NUMA_H */
diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
index afb6bbf50d05..f52dc7875e16 100644
--- a/xen/include/xen/pci.h
+++ b/xen/include/xen/pci.h
@@ -14,7 +14,9 @@
 #include <xen/numa.h>
 #include <xen/pci_regs.h>
 #include <xen/pfn.h>
+#ifdef __XEN__
 #include <asm/device.h>
+#endif
 
 /*
  * The PCI interface treats multi-function devices as independent
diff --git a/xen/include/xen/pfn.h b/xen/include/xen/pfn.h
index 1ca9b095e0df..98ff669d7def 100644
--- a/xen/include/xen/pfn.h
+++ b/xen/include/xen/pfn.h
@@ -1,7 +1,9 @@
 #ifndef __XEN_PFN_H__
 #define __XEN_PFN_H__
 
+#ifdef __XEN__
 #include <xen/page-size.h>
+#endif
 
 #define PFN_DOWN(x)   ((x) >> PAGE_SHIFT)
 #define PFN_UP(x)     (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
index ca9d8c7ec0a1..ad5094c4eb92 100644
--- a/xen/include/xen/spinlock.h
+++ b/xen/include/xen/spinlock.h
@@ -1,5 +1,6 @@
 #ifndef __SPINLOCK_H__
 #define __SPINLOCK_H__
+#ifdef __XEN__
 
 #include <xen/nospec.h>
 #include <xen/time.h>
@@ -360,4 +361,5 @@ static always_inline void nrspin_lock_irq(rspinlock_t *l)
 #define nrspin_unlock_irqrestore(l, f) _nrspin_unlock_irqrestore(l, f)
 #define nrspin_unlock_irq(l)           _nrspin_unlock_irq(l)
 
+#endif /* __XEN__ */
 #endif /* __SPINLOCK_H__ */
diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h
index 73ddccbbd5dc..e5d702b48ac0 100644
--- a/xen/include/xen/types.h
+++ b/xen/include/xen/types.h
@@ -4,6 +4,7 @@
 #include <xen/stdbool.h>
 #include <xen/stdint.h>
 
+#ifdef __XEN__
 /* Linux inherited types which are being phased out */
 typedef uint8_t u8;
 typedef uint16_t u16;
@@ -15,6 +16,7 @@ typedef uint64_t u64;
 typedef __SIZE_TYPE__ size_t;
 
 typedef signed long ssize_t;
+#endif /* __XEN__ */
 
 typedef __PTRDIFF_TYPE__ ptrdiff_t;
 typedef __UINTPTR_TYPE__ uintptr_t;
@@ -33,6 +35,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
 #define NULL ((void*)0)
 #endif
 
+#ifdef __XEN__
 #define INT8_MIN        (-127-1)
 #define INT16_MIN       (-32767-1)
 #define INT32_MIN       (-2147483647-1)
@@ -52,6 +55,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
 #define LONG_MAX        ((long)(~0UL>>1))
 #define LONG_MIN        (-LONG_MAX - 1)
 #define ULONG_MAX       (~0UL)
+#endif /* __XEN__ */
 
 typedef uint16_t __le16;
 typedef uint16_t __be16;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 02:50:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 02:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230084.1535652 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjG8-0006yi-Ed; Fri, 13 Feb 2026 02:50:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230084.1535652; Fri, 13 Feb 2026 02:50: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 1vqjG8-0006yb-Bn; Fri, 13 Feb 2026 02:50:20 +0000
Received: by outflank-mailman (input) for mailman id 1230084;
 Fri, 13 Feb 2026 02:50: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=4gzd=AR=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqjG6-0006yN-I2
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 02:50:19 +0000
Received: from mx0a-00498f03.pphosted.com (mx0a-00498f03.pphosted.com
 [148.163.146.23]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b8f5c4f1-0886-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 03:50:16 +0100 (CET)
Received: from pps.filterd (m0367123.ppops.net [127.0.0.1])
 by mx0a-00498f03.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61CLDfkm438691
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:14 GMT
Received: from cy7pr03cu001.outbound.protection.outlook.com
 (mail-westcentralusazon11010012.outbound.protection.outlook.com
 [40.93.198.12])
 by mx0a-00498f03.pphosted.com (PPS) with ESMTPS id 4c9pkesr2c-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 02:50:13 +0000 (GMT)
Received: from CH0PR04CA0081.namprd04.prod.outlook.com (2603:10b6:610:74::26)
 by IA3PR16MB6725.namprd16.prod.outlook.com (2603:10b6:208:520::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Fri, 13 Feb
 2026 02:50:08 +0000
Received: from CH1PEPF0000AD80.namprd04.prod.outlook.com
 (2603:10b6:610:74:cafe::47) by CH0PR04CA0081.outlook.office365.com
 (2603:10b6:610:74::26) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13 via Frontend
 Transport; Fri, 13 Feb 2026 02:50:01 +0000
Received: from mx0a-00498f04.pphosted.com (205.220.161.53) by
 CH1PEPF0000AD80.mail.protection.outlook.com (10.167.244.90) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Fri, 13 Feb 2026 02:50:07 +0000
Received: from pps.filterd (m0426318.ppops.net [127.0.0.1])
 by mx0a-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61D2GRnp2516936
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:07 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0a-00498f04.pphosted.com (PPS) with ESMTPS id 4c6mq5denq-2
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:06 -0500 (EST)
Received: from localhost ([19.12.76.222]) by cmsmtp with ESMTPSA
 id qjFtvl2OM4XAgqjFtvcAUl; Fri, 13 Feb 2026 02:50:06 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b8f5c4f1-0886-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=D+K
	4AlEnp22qTNZLqCdKEdqhzmvY/R2xKikFORG7B4I=; b=efJbAw6dMBfJTpVc0LF
	wX7c8akTh/6UE2DzI6y7d9vV/VgUZrm3dDhbt8K+4GoDqkF4lfccjbDPM7p49Pey
	0I+SRjQm6Fxt9ou+COtdauglqQMFFew6Nd1yVnrXKaMMlwvPjSjp2DtvCNhHwx2T
	jDjyGf/tn9+EZw/0bUH+MUN4Vruc/FeTmRQQ9sRdstjUXj8Mvi9iYitZGwEzrKSL
	LWgnmggaX5HvJmnm1BERXGC0GhEHM/ys7Ctrhpe3xydb9uJRFZeKV2ZqZXlhJZyC
	aFTdxzdoKGqS0WF5pl/vD9wSXEUytJGHqxO/j0ffBmPZ5WkvEGYgGOAnOmXrCP7s
	Fhw==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eBSew6fgw5NjfL4W+q28Ftnwbma1Ss/K17Ot7XvWmOM1iGKOExcl7vVmlkDf8P/rvKh36s4FVPf1TG6IFnnBMhI6QgPIbAJqqHfvNzQ95KWL25QwTYzI+TignZmbQGtC+KHRdivezMkSVjO1NELIw5etiDOtJ3JsdbdD7hWKLhMOEccSq4+yAzBg9lzvUIEkHnvUUHCJkLuS+iH9PYLwNxlKT5IBpJir6b329zVXTEWMN2B1LiVb7H2SZm0Td6MgBcENcnRD9qIQLpJLVm+nTqlULjxKLMTHOJXeVowe5ieKcIx6BffnQhc+QQlUXkiOMZo9i0shRD900SCUiv33SQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+K4AlEnp22qTNZLqCdKEdqhzmvY/R2xKikFORG7B4I=;
 b=EckWBDaOzH6xxGzFtvnOeGmnwDI60KnMXHVAayFaYcuydNG0POgTuqvoKAR2PNbY5+VnamM+OQkulMtEfFweaTN3uvSQErecBsWwTiyPDNMDe2GR6vYo/VQIkLXMCqriR8sAhH70I7LHqxXap8jp/00i8rYGxKXpzgCAtIwKL2ZtbFLqr9ZTYf3KO4hIHvyjyl5XZftl4AiiZBuFMOqjv8nktpoVT08NVn/irRi4kcX7//M7scYyL8tAM+CVrMtbUURzBdmC8fMjFw4jjx9VDTihjwsDYwZqKXGgH17Lvq+JeOpLqevSXT1F1NObaJ+m342LXAWkZsRE6e9lcy4CRA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 205.220.161.53) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=D+K4AlEnp22qTNZLqCdKEdqhzmvY/R2xKikFORG7B4I=;
 b=ikdlWV8viCwPLzcQaBaNuFrXQKAZDZ7s6IPbGCZxVBIGswP06cdJR81M/lGYqKjxwx17RwuiEeOAMfGr0RslVXNtmRuuBzf+aD2bvOU9I5GtLfsjmh3Wl4fiURLVcyYJwspZ3M4EosFOYiVVFbEsiNbdvGE10aY0cLgIWW6pG7A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 205.220.161.53)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 205.220.161.53 as permitted sender) receiver=protection.outlook.com;
 client-ip=205.220.161.53; helo=mx0a-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=D+K4AlEnp22qTNZLqCdKEdqhzmvY/R2xKikFORG7B4I=; b=
	Q0wmPxyG2NNp7o07niA0EhjPSGUyBYl3mJ0HUNbMZaECemDDC4oV1XjfEob8g1Ba
	K8xD/ijYWF9dU+D6HkUFuqYJKNkKzQ2u936dc8OsWAox53TESQZEhpQUP4yINDqs
	eNrLXWcJpSOgBPz02x0Z3uMARvLaJ1ykJnDT8XYu/B25aKUTksBhZFsMdQe4+vsN
	vAsTNhZ/ujtUGkvTsRdrTER7zVAEYpxw6jvv2K1gB70qtVOeDZLWfLnIVEEpokTj
	v1ShjOFqiKjrgk8Mgj4Uiuf4I5aJXquaxDr+I/WtdUfyR0iEbuYfptitREsZqYaF
	Evfb73b0DFIjOP6iczuRGw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=D+K4AlE
	np22qTNZLqCdKEdqhzmvY/R2xKikFORG7B4I=; b=LUfQyG38sPwFZ4jsxihM0YM
	ru2YljJK8NiGiXS7IN2OwNMy86HfZlIqGAR32YTDv7H+Fpx1G8rj9VZ1UPerAkYZ
	eDpz0nsdufCptd3LCIESYYDC9/Z0Cp1H/hIJawCKBO9SavZ/RfFLOlxo48Q7HDjg
	3cvSWtmgcKy4dpRyMkdFdc8e4z76j1dfS7/400ix43/Eb16F/ZmDUMjacl6TJJXU
	IB6+rMGOogD2YK+YFyaZuH7HWAv0aH/34+DlqxhCicFbx1YFiqkFpL8UMrfKs04m
	11laPQPUqR+22rbHlcseGIem+rQ40zSKynrbGu5yP2CrnN3E/PetiQNTeviCbkg=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qjFtvl2OM4XAgqjFtvcAUl
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 2/5] tests: use unit test fragment in domid test
Date: Thu, 12 Feb 2026 18:49:49 -0800
Message-ID: <20260213024952.3270112-3-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260213024952.3270112-1-dmukhin@ford.com>
References: <20260213024952.3270112-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 malwarescore=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0
 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc=
 route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602130019
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD80:EE_|IA3PR16MB6725:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 05d4fe57-cb57-46fd-c0ba-08de6aaa993c
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?dYS1LUEVjXJE1r/AeAJftHUyXmaHAqcSGFn8ZfKcNZBaNk33zkDkBgSaXcMU?=
 =?us-ascii?Q?YpriShHl8E5W0UufoOC2e3Cm+06hbOGByeFOBVZcvXgg/1mA1/Dth0ophA9A?=
 =?us-ascii?Q?WSrAaL/8t4ccdtBuEBcMIv+UlzPbvicP05Il2CEwlxHBdLZ2N2hq4/ei1yzG?=
 =?us-ascii?Q?Op/g/S2zDx6X5UJQPyGkgPEHYgyLcaSQT27++xwrrWvacxjvrF1q0papfQYm?=
 =?us-ascii?Q?mUq4Ojtj7dXAMgFaekx863hc5OyC9f2+TzoSlj7VfTBedXlKjkO+Yuf36WwL?=
 =?us-ascii?Q?DBJN9GWyDwcdsM7pX/hAnd4Z67rjVByARSuZHIXBA84CgO78s/g64PQihS/s?=
 =?us-ascii?Q?aDe3add49BFsY1Ql+THpSI3DitrQlj3BJpYNVlgWQLmEaipxZ593xrForUcq?=
 =?us-ascii?Q?MNtCOI9Pnx8IfqeEXE0tz3icyFwFhx8133O19KGf1K678w3BV8zsVqEwCyCX?=
 =?us-ascii?Q?v1jzX/dcJn2c70Z92gWZOkATQJ7LFqUrrS3nDrjG5wrWzg//KHoe5Am4Y+SA?=
 =?us-ascii?Q?rkeA1IkBcSK/tQvTb49HBfpdiRQ9jNHdyzGKV1Pvc3I5O3Q1F9cZd+CFwhE/?=
 =?us-ascii?Q?yq094n5MDijcNFs8hw+sogULyqdE8Kvf0Fm3NqGY8Uz6vu//XoWDCj95E5/N?=
 =?us-ascii?Q?m4G9xHjRZyq1JN4mFKiy22jWM8WYgsQpVWuC9RqYesAXnB99PtZnhSD4F4kS?=
 =?us-ascii?Q?CosBRoKbZWm/d16ZjOSUnr/2e8xH0KU/dLp+GX6SBzDkpfbmgnk3+KrFql7E?=
 =?us-ascii?Q?oARqLmmflCD4lgkL0Cgx4gfnshG/XW6GYtgUhN0p4eTb66VF3xT92EXSp+3F?=
 =?us-ascii?Q?e4IUcsTlESCBqzlnzPllddqoUEHtSuHpnP10FldDShmbTsMz2Tl26bw6qZR4?=
 =?us-ascii?Q?iAwHTsUI/+A9C8gQeT7WN3RRftnB8NlAxpPTB9KksVgZsACl4keu+DiK4uQm?=
 =?us-ascii?Q?23MxyBOPbs0nAbJPEMRKgLu58OLEyITFKOJqqnMx1APxMwRf1gyG00SKerp8?=
 =?us-ascii?Q?KpcAxhTcqTwXkQ94LTRSuQUnv9Nj+x3tyJhlQ6DOmI8azsSVOoiUMlwQVx2T?=
 =?us-ascii?Q?AePudwHpFYk/0geWhblM3MSiEyAuAQrQS0ABvywf13mD0kgX4zgyZMIcFcWw?=
 =?us-ascii?Q?EamV011frlSgI0caqSFRnPX5mEzpv3vFJWd4xo8BktBFgU54jy2Irinpx2ya?=
 =?us-ascii?Q?ydqX7gEYckY+B1Wu4rTp+s7qV2NmKDE1Lsfp8BsN3kX7CTjNM6V9V2KrWwPK?=
 =?us-ascii?Q?/QOJZET+23CD4G/nzBH80NIZO0JNYBYYLIbvTlaWHOm2C53tdOJ5Vtdr5Z5f?=
 =?us-ascii?Q?7z2AfkuOs29YtkDNRjq9HRLqag0l90nBbN7BKNW6fO5njqJL87OjWB3yqUG7?=
 =?us-ascii?Q?f92ykw9lYyFCSdyZspMF9gQUG41tOTKDX2J/fnEAuuForxR2aiJ0vqHLdY7F?=
 =?us-ascii?Q?eDzgF+MmKo2JOVoE+sb/E59RYfTe2SSvyUh5S2FLBV3I2uCodV4MV2P0OOlD?=
 =?us-ascii?Q?ajdNYu5sE5GEYa3BjU5Stgb44VRBUXOqW03FRQhgqQu6hMyrwvGgtpjANF/H?=
 =?us-ascii?Q?oxY7Rf5H0J1lqLqPsoWdikDugRvxZ16Zm6XXCLBgN5kR+T+v1BGw9zOz96LF?=
 =?us-ascii?Q?8Ak6YM6WMd69B/lamP3Ei8hMS4lSQWYGn/Gu3UF2phXWikrnFWLPZ20xqcAC?=
 =?us-ascii?Q?q8OK1Q=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:205.220.161.53;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0a-00498f04.pphosted.com;PTR:mx0a-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	vCoCItotyctSe8lnd6oJmcHqMXLtYe+4eH9pbPmy239kXgUmRXYP/FEfiGoZPRzgNxBBGNicFUI3R3aAROHUpnvQGJcCYLEzT3zIrikP9QKY6GgyAEqbDub2eW69c/wFtZVwzeR4hilCjUzyoFaWBhwnpyXFJE7zV0Xt62R+QS/Fz2NKGyr8bScWY4O/npCQ8xIkQ9GeGZddXF6wkFzmUpeYsiEjmXtypjdcrXlhFhom3SawtpdvJwNC9/Gb57cGcJz+5yfSb5QFPBFtpddhSluuyxo3ZVFy2eECMyl56sjmZMt7GlublGdhdIhBp6KQb5KU43h0Jrqh6oqi4eI55gmw+RVHsBl5F0gbIGj3KkkCt5fOCvoOTEhHK4dcqQYe3706bWdL5VK2r7a/voIB7WEHqKGv1MYVmDwhnmFddYioB/ryDbQs0KZxAW8flthx
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	AOL7KYMduhxHOlUdgpsQE13wQL0cVsISYhWAf0expwyxNkAndF2UNAmSSIgMY5+pALanF8FJZApX0Tl92wBSP5jpUy5ybbqCMnTDnZIui+PROnmvVHh3NUshOVlOSjJCCKGv1aEF02162diMzMuSwsCmwdhDDKWJh11iYqiep/Q1m3aJ4sbKvX7cA8OilXIEFe0J8zwAUWdNQMgcMnDaRceW8NWqBuSlejTJ50mrcyGftfGXl6H0iHPdEhTvoD5NkOo6qtenJJtfS5O4+rYIhdwIQ6Td0j9x+wsXupcH7vWudY0Send9LFTca+NTocScpwhAO5WPp6MGw0yOZeTReFou+/SQanUmcyPO66RY4PnYD12FYxSZKsvcvO67/BfAZDWhPwAxULMVFa1A2Nns90FyLvDyIlp/Rk1FvkGpg78N0EM/yQslgkL2DxUbPW6Ht3h42LBh4lTvP7yx7z+d1F27f+DSjbyn1t1nwiL+IUeuF9Rv5T0tiT8NaAX597jRaxmjFuSFdC8XCPN1tZFFNWgzbaTBJtTUSd3Sx1xHALzX/P/U8ctfz1Xw2/HTGLnrYlvBSjpiuOtO470FN8pimFwfTEzVHSPTSrJCS9vJ6qPKBYzPGH6cJRxXmDDddyAiok52MEI3DBq2xAK2cxIJbg==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 02:50:07.9024
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 05d4fe57-cb57-46fd-c0ba-08de6aaa993c
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[205.220.161.53];Helo=[mx0a-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD80.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR16MB6725
X-Proofpoint-GUID: HNWxEtJkl6nMP74S7BA4n4T3HKI3w2PZ
X-Authority-Analysis: v=2.4 cv=Wuwm8Nfv c=1 sm=1 tr=0 ts=698e9166 cx=c_pps
 a=Ho/Krdd5x/ljPkV1+9yTnA==:117 a=lOEMawUel/sSvQipkIvNbg==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8
 a=yHvfKUB0eRiEYTVKTk8A:9 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-ORIG-GUID: HNWxEtJkl6nMP74S7BA4n4T3HKI3w2PZ
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAxOSBTYWx0ZWRfXyoCexlBTaylw
 7PqM1PJQY9kx20MDqT3Dhkh8piOIfjXT4wEFC8EnzYK1JP/QL9YnRL2Qtg82fXbujz5bOW4u04S
 L+t+/lqAJKheuTFXcvaVNQu9+ovuM5JVHdgN6uWMyZRHWIxn9z8EJbkVnjIOdhD2hI8K8kvo8Jm
 hJoXOqO0P1lAiRNw8ivZiKdP/8ngrmh4Ds5UxStpqBNwyExPV9fziNVtjMYDrGELXXTa0nJKjlr
 ZdqZQIaOh7RShvqc2a/CwotyY4pR7vaLDDcSnbkJhRMpZk/tHQ4bINlS6ysyjesrQaOsn9TiwPx
 +SjRAdjcerFzOzDn/SbkDcAvWQtL/rZLFYB63U+8OFMdk0MSNU2liroYWobj8A5JH0K+k6AduH+
 YgNxa41aBHd39JH9kZ94Jm3xDiaVH1Ukj18F2D+jdXZ3N8Brwo7cZ3mMfQJx0/lfcccUlqRzMvl
 Qh86pteJdUHsPHvwzzQ==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 adultscore=0 spamscore=0 priorityscore=1501 bulkscore=0 suspectscore=0
 phishscore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130019

From: Denis Mukhin <dmukhin@ford.com> 

Introduce common fragment for unit tests to minimize some code
duplication.

Use the new make fragment to generate test harness code for the domain
ID allocator unit test.

Introduce CFLAGS dedicated for find-next-bit.c only to avoid contaminating
global CFLAGS.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- honor LDFLAGS
---
 tools/tests/Rules.mk       | 93 +++++++++++++++++++++++++++++++++++++
 tools/tests/domid/Makefile | 95 ++------------------------------------
 2 files changed, 98 insertions(+), 90 deletions(-)
 create mode 100644 tools/tests/Rules.mk

diff --git a/tools/tests/Rules.mk b/tools/tests/Rules.mk
new file mode 100644
index 000000000000..8c4881e35da1
--- /dev/null
+++ b/tools/tests/Rules.mk
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Common unit test fragment.
+#
+
+include $(XEN_ROOT)/tools/Rules.mk
+
+define list-c-headers
+$(shell sed -n \
+    's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
+endef
+
+# Generate mock environment by replicating header file hierarchy;
+# each mock header file will point to a harness header.
+#
+# $1 Hypervisor header.
+# $2 Test harness header.
+define emit-harness-nested-rule
+$(1): $(2)
+	set -e; \
+	mkdir -p $$(@D); \
+	[ -e $$@ ] || ln -s $(2) $$@
+
+endef
+
+# Helper function to emit mock hypervisor code dependencies.
+#
+# $1 Hypervisor filename.
+# $2 Harness filename.
+define emit-harness-deps
+$(eval c-file := $(abspath $(1)))
+$(eval c-name := $(notdir $(c-file)))
+$(eval c-headers := $(call list-c-headers,$(c-file)))
+$(eval c-deps := $(addprefix $(CURDIR)/generated/,$(c-headers)))
+$(foreach x,$(c-headers),$(call emit-harness-nested-rule,\
+                         $(addprefix $(CURDIR)/generated/,$(x)),\
+                         $(2)))
+$(c-name:%.c=%.o): $(c-file) $(c-deps)
+	$(CC) $(CFLAGS) -o $$@ -c $$(firstword $$^)
+
+endef
+
+# Emit dependencies for mock hypervisor code.
+#
+# $1 Hypervisor filename.
+# $2 Hypervisor source path.
+define vpath-with-harness-deps
+vpath $(1) $(2)
+$(call emit-harness-deps,$(addprefix $(2),$(1)),\
+                         $(CURDIR)/harness.h)
+endef
+
+.PHONY: all
+all: $(TESTS)
+
+.PHONY: run
+run: $(TESTS)
+ifeq ($(CC),$(HOSTCC))
+	set -e; $(foreach t,$(TESTS),./$(t);)
+else
+	$(warning HOSTCC != CC, will not run test)
+endif
+
+.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
+	set -e; $(foreach t,$(TESTS),$(INSTALL_PROG) $t $(DESTDIR)$(LIBEXEC)/tests;)
+
+.PHONY: uninstall
+uninstall:
+	set -e; $(foreach t,$(TESTS),$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$t;)
+
+CFLAGS += -D__XEN_TOOLS__
+
+# Honor mock hypervisor headers over tools/include/xen
+CFLAGS += -I$(CURDIR)/generated/
+CFLAGS += $(CFLAGS_xeninclude)
+CFLAGS += $(APPEND_CFLAGS)
+
+LDFLAGS += $(APPEND_LDFLAGS)
+
+ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
+-include $(DEPS_INCLUDE)
+endif
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
index 74cadab25b2e..b6ba0c4e14ee 100644
--- a/tools/tests/domid/Makefile
+++ b/tools/tests/domid/Makefile
@@ -4,101 +4,20 @@
 #
 # Copyright 2025 Ford Motor Company
 
-XEN_ROOT=$(CURDIR)/../../..
-include $(XEN_ROOT)/tools/Rules.mk
-
 TESTS := test-domid
 
-define list-c-headers
-$(shell sed -n \
-    's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
-endef
-
-# Generate mock environment by replicating header file hierarchy;
-# each mock header file will point to a harness header.
-#
-# $1 Hypervisor header.
-# $2 Test harness header.
-define emit-harness-nested-rule
-$(1): $(2)
-	set -e; \
-	mkdir -p $$(@D); \
-	[ -e $$@ ] || ln -s $(2) $$@
-
-endef
-
-# Helper function to emit mock hypervisor code dependencies.
-#
-# $1 Hypervisor filename.
-# $2 Harness filename.
-define emit-harness-deps
-$(eval c-file := $(abspath $(1)))
-$(eval c-name := $(notdir $(c-file)))
-$(eval c-headers := $(call list-c-headers,$(c-file)))
-$(eval c-deps := $(addprefix $(CURDIR)/generated/,$(c-headers)))
-$(foreach x,$(c-headers),$(call emit-harness-nested-rule,\
-                         $(addprefix $(CURDIR)/generated/,$(x)),\
-                         $(2)))
-$(c-name:%.c=%.o): $(c-file) $(c-deps)
-	$(CC) $(CFLAGS) -o $$@ -c $$(firstword $$^)
-
-endef
-
-# Emit dependencies for mock hypervisor code.
-#
-# $1 Hypervisor filename.
-# $2 Hypervisor source path.
-define vpath-with-harness-deps
-vpath $(1) $(2)
-$(call emit-harness-deps,$(addprefix $(2),$(1)),\
-                         $(CURDIR)/harness.h)
-endef
-
-.PHONY: all
-all: $(TESTS)
-
-.PHONY: run
-run: $(TESTS)
-ifeq ($(CC),$(HOSTCC))
-	set -e; $(foreach t,$(TESTS),./$(t);)
-else
-	$(warning HOSTCC != CC, will not run test)
-endif
-
-.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
-	set -e; $(foreach t,$(TESTS),$(INSTALL_PROG) $t $(DESTDIR)$(LIBEXEC)/tests;)
-
-.PHONY: uninstall
-uninstall:
-	set -e; $(foreach t,$(TESTS),$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$t;)
+XEN_ROOT = $(CURDIR)/../../..
+include $(XEN_ROOT)/tools/tests/Rules.mk
 
 # find-next-bit.c
-CFLAGS += '-DEXPORT_SYMBOL(x)=' \
+CFLAGS-find-next-bit.c += '-DEXPORT_SYMBOL(x)=' \
           -Dfind_first_bit \
           -Dfind_first_zero_bit \
           -Dfind_next_bit \
           -Dfind_next_bit_le \
           -Dfind_next_zero_bit_le
 
-CFLAGS += -D__XEN_TOOLS__
-
-# Honor mock hypervisor headers over tools/include/xen
-CFLAGS += -I$(CURDIR)/generated/
-CFLAGS += $(CFLAGS_xeninclude)
-CFLAGS += $(APPEND_CFLAGS)
-
-LDFLAGS += $(APPEND_LDFLAGS)
+find-next-bit.o: CFLAGS += $(CFLAGS-find-next-bit.c)
 
 vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
 
@@ -108,8 +27,4 @@ vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
 $(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)
-
-ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
--include $(DEPS_INCLUDE)
-endif
+	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 02:50:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 02:50:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230087.1535676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjGA-0007SX-CM; Fri, 13 Feb 2026 02:50:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230087.1535676; Fri, 13 Feb 2026 02:50:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjGA-0007RT-81; Fri, 13 Feb 2026 02:50:22 +0000
Received: by outflank-mailman (input) for mailman id 1230087;
 Fri, 13 Feb 2026 02:50: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=4gzd=AR=ford.com=dmukhin@srs-se1.protection.inumbo.net>)
 id 1vqjG9-0006yU-Ge
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 02:50:21 +0000
Received: from mx0b-00498f03.pphosted.com (mx0b-00498f03.pphosted.com
 [148.163.143.241]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9360b3f-0886-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 03:50:16 +0100 (CET)
Received: from pps.filterd (m0482515.ppops.net [127.0.0.1])
 by m0482515.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 61D26ClX3521405
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 18:50:14 -0800
Received: from ch1pr05cu001.outbound.protection.outlook.com
 (mail-northcentralusazon11010013.outbound.protection.outlook.com
 [52.101.193.13])
 by m0482515.ppops.net (PPS) with ESMTPS id 4c9tvm855f-1
 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 18:50:14 -0800 (PST)
Received: from BL1PR13CA0159.namprd13.prod.outlook.com (2603:10b6:208:2bd::14)
 by IA2PR16MB6348.namprd16.prod.outlook.com (2603:10b6:208:4ad::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 02:50:08 +0000
Received: from BL02EPF00021F69.namprd02.prod.outlook.com
 (2603:10b6:208:2bd:cafe::3) 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.9611.11 via Frontend Transport; Fri,
 13 Feb 2026 02:49:41 +0000
Received: from mx0b-00498f04.pphosted.com (148.163.138.245) by
 BL02EPF00021F69.mail.protection.outlook.com (10.167.249.5) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8
 via Frontend Transport; Fri, 13 Feb 2026 02:50:07 +0000
Received: from pps.filterd (m0373461.ppops.net [127.0.0.1])
 by mx0b-00498f04.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61D01AZg008731
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:05 -0500
Received: from smtp-us.ser.proofpoint.com (pmta-use.ser.proofpoint.com
 [44.208.76.22])
 by mx0b-00498f04.pphosted.com (PPS) with ESMTPS id 4c6mw9we1h-1
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:50:05 -0500 (EST)
Received: from localhost ([19.12.76.221]) by cmsmtp with ESMTPSA
 id qjFrvl2LU4XAgqjFsvcASk; Fri, 13 Feb 2026 02:50: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: b9360b3f-0886-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:content-type:date:from:in-reply-to
	:message-id:mime-version:references:subject:to; s=ppford; bh=gwK
	KWwFQSxOL2nXP9KGBiAgclLhKYOLn3uWhkxYkz78=; b=SuT6al1mxsfiBroU6jV
	sX5o1ikNLrDMvRjZ0R0YAOrFuPclDR2a3ncNBNxrYawxRRZI925HwsvGehSan+Yn
	pqR2cXVn2jnLguplEm9K0Us34JOjBgn+QbcAn8MNt3KnxY0qqzlikyfgg49TqHkI
	Jxq7sraB/buEEXw24fqhHprd3JZxkg5zc+bITgl/Vp+mE+ITbTTTIJGsfMMzq8L5
	2MrzrGKqaZrTsOLYg73EXgTBWXDsc22SjzCb1TJnLhrkXURh5LPhL+RxbMNhVi+O
	ZgPWz0v7ZV25A2iyzvF1S+xgrkKLOSd9Py4/sVkpAW1fI9YSTZeg+Im4H4heHByb
	Z3A==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XjdIFgOky16Ql43XpphN5yJNrmjOlzpexS0wJw4oZEdnRkIJ7b3F5FrgiGa9Bq8av8bs/4gLQkjOjQ8cgkmWvE0wr+4tcSd8xyTrKG9utqKT3+Yx/8bZ/aFlDNJqgyRtQouOdFHtJi9QseCaAXHcHzIWYMp4qx7ZYs5+wT4pe+JFMtjW3FFui2P+I3hVVyZov3PDoo8YqyCYSKxpez9UWS46dKuCQ/qDUdqOY2WuXvvZOTxyxndgRV/1Ldh5ZfcD3FEpT5CJV8NAV3RJMDMipmRuE1uaPtwdvw/iBI9YPXd2reN79XCd0QE9y9UOjCBv5qgC8mM+H84dqOBkwIw+5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gwKKWwFQSxOL2nXP9KGBiAgclLhKYOLn3uWhkxYkz78=;
 b=Y900s3dqp3kMxUWmTDmyblFPaS0rZsXrBLd+jaRGvfM0M2OLivrQo9xOC4x/0AePNPMPsenqaNspdtgywDPLTiKcy6ggM131OMHch0ggPmTy4Tb8AA1wKNLOP663PF9qTCUjBmiYWRLMtozqDtzmsBCI07V57TC8epf0lv4ocRsmKrkrTLTHhxhRSbI3MTb3Z3+pQ0AdytPs77IzBZOm1mofsvvECvfP5ns4B23ZDPg1w7ISGRLc/qQvGDHtidse7EiMJZqryl0ed2/VN4YdC1Oh9kDre/aMJRkBeEs9ht9zTn7xfUxd+w+uaK9QLtI4KJe2/hBedMnRC02YESTD1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 148.163.138.245) smtp.rcpttodomain=lists.xenproject.org
 smtp.mailfrom=ford.com; dmarc=pass (p=reject sp=reject pct=100) action=none
 header.from=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com; dkim=pass (signature was verified)
 header.d=ford.com; arc=none (0)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=azureford.onmicrosoft.com; s=selector2-azureford-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gwKKWwFQSxOL2nXP9KGBiAgclLhKYOLn3uWhkxYkz78=;
 b=ITONXQGTF6+ZAvC7icSft2BT0sToLCwGbE8iTDD1FSyoiLSaPVOeZgDcnMrekf0qNU4fhwO8m5ERK4RR72DxxNM4rRsELszsS0Lbe0gfdVoEKJiEak6gI8FGsSVIQpcPGO8M5ETbI3j6T18jBmanm9QE5+zplBF4hpNQVlTT4ik=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 148.163.138.245)
 smtp.mailfrom=ford.com; dkim=pass (signature was verified)
 header.d=saarlouis.ford.com;dkim=pass (signature was verified)
 header.d=ford.com;dmarc=pass action=none header.from=ford.com;
Received-SPF: Pass (protection.outlook.com: domain of ford.com designates
 148.163.138.245 as permitted sender) receiver=protection.outlook.com;
 client-ip=148.163.138.245; helo=mx0b-00498f04.pphosted.com; pr=C
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	saarlouis.ford.com; h=cc:content-transfer-encoding:date:from
	:in-reply-to:message-id:mime-version:references:subject:to; s=
	ppserprodsaar; bh=gwKKWwFQSxOL2nXP9KGBiAgclLhKYOLn3uWhkxYkz78=; b=
	ZTkbwIdcSIC4oZcm0Q0L3LGkuk7Z/JyyOjaQ7CtaZi/ex4/CjR94ObRoRHGCLNen
	6+yIcxp3nDBaSKjmHHCrr6pz2e8VzV/0K4Uc0Fi9u9kgnASwDGXAWIZGRUvRkZAi
	tqwBMrK6osXXQ+EDR0ZGFm2GX7FKkS7SDjg4xDs/YBKSLMFRJlcdBpbnXBZmMUEb
	NbU5wdbEb7z/ojY2JX+9qdLgRgng8SfldfhOKtQZXc8z8suL2MKCHYmNQn0YxLPC
	Y1TSSrVJXT9yvugfeyCLCtvf03xma976YbmJ41U277/s2Pw0htAbB1aZqOnDEJ0M
	kyRkk8eGDNOrGovUdA0buw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ford.com; h=cc
	:content-transfer-encoding:date:from:in-reply-to:message-id
	:mime-version:references:subject:to; s=ppfserpocford; bh=gwKKWwF
	QSxOL2nXP9KGBiAgclLhKYOLn3uWhkxYkz78=; b=U4FVsTcORNQJHtfoZnkuYlo
	uILFRH982igFElsR7jGL12l1WY2vNq3ZwSySIrzlTzbL6b5uzrfmtEo9xiWlULMG
	6oSO67cDl0fjfle0tAuv1AqE/RcFzp5lexPLEoPMc7ty37tLxuN31own6LDqVida
	imn4WVHccW6yiR2uHTCIURswUC/VYpF9U87haQFzz13RyljEGCTvbW+fD+FIOjHv
	cUJ9EUD2f4QziWRN9KPVm2POFzgKcm4/GC1KXyX7b09KLzwFUxTQeYhQoZmYz5rb
	dMb+nIj1jvGWZ2qj3JW86ksgLytkG4FbT/r976W0azaDQfEoSpWCQnMMdo56xDg=
	=
X-Mailer: SER-76bead168636dc6ed1c9e51ce4dea80dbdd4163750742b614a4d871e565792b7
X-Cloudmark-MID: qjFrvl2LU4XAgqjFsvcASk
X-Proofpoint-CID: eb09f7eb-2dc2-34ab-a188-7b293c1db1fe
From: dmukhin@ford.com
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, jbeulich@suse.com,
        julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
        sstabellini@kernel.org, dmukhin@ford.com
Subject: [PATCH v3 1/5] tests: fixup domid make fragment
Date: Thu, 12 Feb 2026 18:49:48 -0800
Message-ID: <20260213024952.3270112-2-dmukhin@ford.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260213024952.3270112-1-dmukhin@ford.com>
References: <20260213024952.3270112-1-dmukhin@ford.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
PSER-M365-App: SER-APP
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 adultscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0
 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound
 adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000
 definitions=main-2602130019
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF00021F69:EE_|IA2PR16MB6348:EE_
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: e576522f-e5dd-4ed7-678a-08de6aaa9902
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?FsilxcRhPqT6CPS/M6U0mf+MNC1JeQKi78+mMdl4tCZxm+zRCG9tlLzuI/KN?=
 =?us-ascii?Q?n4A8RGm4A9/mQlg5y6nkvxKiKZVhaka13RfjIMRhsKKU1hsogj9hIvRVE4NF?=
 =?us-ascii?Q?rG79dZ/KlpyVy8q+ft5anY1yEiF1OTwDGryT4+TSFxOQ5g7hp3r78iQzTm1q?=
 =?us-ascii?Q?uc4Pu/1kij2J7icZuGJWvk6EWMDWLWBpAI+mLaxagVDuowfSn5pZVT4LFJ8Y?=
 =?us-ascii?Q?U2UZ9mcj+rDvqDIg1/dQ+wt/oWevd/kvmIIydRnK2dDx//o7cp6Xv6VtiJmq?=
 =?us-ascii?Q?LXHtzNEpUfdgS4glRVXeY5QVXcEg1HD+QrmGRxemmjNgmZQEvlV5hOH7GN7q?=
 =?us-ascii?Q?gG1EFgRXii6V2zj5ty/2ghH9jQnduiTI5gSV0ren3pH08CT3hJDP9f1sUK4u?=
 =?us-ascii?Q?gwhxIdFTFrGHQFXiJe0P1O53lVFdN92rdFysGd8fx9n18/poiY0xEoGp8wji?=
 =?us-ascii?Q?qD2KdBKC5Xc1n10RYGpEKYn0tJtDHMVxSgIZXGxYXuGnu3AUnK26QYzsJKhs?=
 =?us-ascii?Q?4ggG+9GHFXW1AvbDUE0gFEig+KOTHIAAP/czmdcOMPZUGglSvEGi8m8qXus2?=
 =?us-ascii?Q?Fus7McmrLlecI1gvtwh6fFqn6Yq8fS5tj0sMGbyr9Rol4yFyXxZPfCxWOr+O?=
 =?us-ascii?Q?yNPu4QNIqnltuPtKwQ1Un1SYd7f7Gj0O12GofWK0xC2ARKdLdZ9HNemb0Cyx?=
 =?us-ascii?Q?tejn2z1jpEPZ1xjpWPjUsErjuwO99PnRhGBMxjBGU4sLz6RYlayn8rjykfip?=
 =?us-ascii?Q?ph+DXGRfd1AbRUdIOrOCdozJP4aZSn+am8UHgK6aEfySCUUVHV3zwQlUUz1j?=
 =?us-ascii?Q?aS12anb7Qcph0xzQO4rICct7rV9u9aaWmpBUKJyDQBpV+2qegMUkEea5KFOS?=
 =?us-ascii?Q?WpEuUAmOwk5ul1MFBXu8lAlqSyMecMJiWDvYSL3czJfiPejrxB9sekgRF2Yp?=
 =?us-ascii?Q?Rhcctq2Gm3AerWUgo3NiMnnHiUqJsJN8YVhDjgaS9o9iAaq2qCyDDwd1ibUV?=
 =?us-ascii?Q?hFHLajyUmIxmfEIbwY3mSCfEyfi2g03zvSw5BBAmJ3J1lgZZw+lNcnVn4v72?=
 =?us-ascii?Q?UnE0Vm8PoUkwEH7sNMOePKFOozF4ptVYAF3r/KWFRcClfGoeBUrcMHTZp75Y?=
 =?us-ascii?Q?JswSPqj8zuI0IH65smiL+7ksiU4/I7/vxPxeOwQNCoo4+ikQ6l9AVi3qEvgt?=
 =?us-ascii?Q?1CT5n/qtBRIzrcJrz6b5ADkSZDSudfQ5aUXOisXMf/bb7RBS3Xmkn6EDBRW4?=
 =?us-ascii?Q?1DPwYjwjUGTHRwpHweVX1KqCHyoNfWa4hriSgDY5veBOTEcEwF2iHYwZv817?=
 =?us-ascii?Q?77Bc7NLUl92Zv9g8Cgg1uHu7JVygSmiBwOElA6NLx2HDwHS3rYzFzLB2i2gl?=
 =?us-ascii?Q?ps2AszxjDdLN+x3A3XThgOjpq3rjfR+04gst5zF7DVoQoP1xDSkufxgBJOD6?=
 =?us-ascii?Q?y1cOBYTdzOJ5wX0k97MNY32b35oyJnMfjU/tbTsjlnh4rauFs+b6iuMo6WvL?=
 =?us-ascii?Q?T/L8gLgQQKV7oQfiGJ17z6/L9+69QKBCpzAu+YTBNGo02AWUWNddf5axYwBE?=
 =?us-ascii?Q?aBlhKJTSU0M6sTjL/eAOICRA40u16ome/CG99N6RGF0sA4Sl2iZxMVPWRnYE?=
 =?us-ascii?Q?jDhDCg60+DLv4azV2msEwXDTISqrsQlFlbjMIEbTRb1Mzy4nKRMrCjehU2z6?=
 =?us-ascii?Q?uqDRbA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:148.163.138.245;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mx0b-00498f04.pphosted.com;PTR:mx0b-00498f04.pphosted.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	u5Zije45qs3w56HAHjnqOoJaKnk14NMc9WZX1s0nqNC+8cC1XI0658Doxq8Y/E5U3oAwGPMlBqW69LsjszbKjZvGRhhVbA7sb0yuUkuSkKaY6JhDBDhEDBV2xMOFCUUEvuClV/o/EuNBSPvAMpdBojsdJ7mqIL4fR64AzP5GzaOiagaD5LwqTfmVjFOz9weM/4O9A5h8t1txVw9wziRh1lEC0zfoAqMfOj7NFMiXc32FUGqMbLI/CJXH2e8ELDPhrPclRCrT1AkcA8PiiVc87vAKo3Wt27qMIyn2+SRgLKIy+Q9xKhrAoMNY1Tt1L68aFRm3suZwiGSzpiI3SP356XFNLYPd+t6IRorTr8UONTuIXCFxejKRoe59DXLQUmGJVahQ3W7ZISgcnuv1CQkkRhjC+lxu0SwP+YLWvUPnliSesxLvO4BJdbUMdmTcdN06
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	7NPI0d7wMjsnHS+h1rQPjEIaSkH5sRPvotmonX2UIR4d8DQuRkx14WMoUFnBf2oOP65TCE6iUfk2MEln8kSoEfPHyyawqJRzNy9r6gHzDEzkqX3TfAarUE1w+RPchT6aiQNWPAWzZiQRON6bGrX/Qtcu30sQZNb0Q2DASWbFhd65ALJhO6KX2hpWf5PA9xjpUh1KZQzjKoQsqGeoyZc0V4dF9O6joTeUzQ2J/l4AAMff5ZA8OhJ0xxX56nrrUJGkqY5BfAaLHrKo+zS7j2T3DW5gqnKGHWTYAjJBiPFbnB9vpdjkreUXq3iUKk4OSg8MLSMyHrK1tKCvYQfYKGzmCghuFOrKNJeVLs2oM+57dKtBbbkABH6tKx2u0V2d7W1dg6hn3NsGGrndAln3ds2MlxOgX1H5vbGMnaPKK1Gm+i9NiAhySW+a88kuZkMUU28eTd+T73BKsQ4Z4hz5Kwco9WJGKpXHoJ0RhZR0AoR+FDCfqqVbxjsms+o3a4Z12xXPLYRqusRl6vCjkyKKxLaO8B6U/LrdYCCmEwOHQLYL45ncCcZ2Y9dyKREjV/IzOh2ZYWyfSby7wKEktPbSESTlInfDZsUVVJHXNbQBg82WSJEAXUMEaYdqWf231pR3kwKeQVwqZiz5HqS6YAC+fQoziw==
X-OriginatorOrg: ford.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 02:50:07.6214
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e576522f-e5dd-4ed7-678a-08de6aaa9902
X-MS-Exchange-CrossTenant-Id: c990bb7a-51f4-439b-bd36-9c07fb1041c0
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c990bb7a-51f4-439b-bd36-9c07fb1041c0;Ip=[148.163.138.245];Helo=[mx0b-00498f04.pphosted.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF00021F69.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA2PR16MB6348
X-Authority-Analysis: v=2.4 cv=Kv5AGGWN c=1 sm=1 tr=0 ts=698e9166 cx=c_pps
 a=N2Bp1sGBA0q5hqNMPvyVyQ==:117 a=b7IhknPlfT0FN1EembXvig==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=HzLeVaNsDn8A:10 a=3PXLN80vpJUA:10
 a=6NUGLSImWEsA:10 a=w9pew1qAHqMA:10 a=VkNPw1HP01LnGYTKEx00:22
 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=cbNQJ9GKAAAA:8
 a=WxjMYAsaG4aR2vMT2MYA:9 a=3whSkbs7g9Me0DR5EJEX:22
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDAxOSBTYWx0ZWRfXwp0c0qPCOata
 USc/zSSp84fwzlN7bghMfOwun3rmebmlqG2x5Ui6kyw6fyfzvXRusKuMIGIk5c0ss1Mgai4Ar/o
 Kc+5TWi2GIde7XBGv/5R+U36K8J+xBlgrwgV74K1lY9RdQvxaOeNIVeI+mOR0VDqAfRoKCPM274
 Ns7wUU/P+HKwft9ep+OW+6yFS0Ag94LcLWGgoM1q0OhA9rz3OWAdJ/0YBrekX0flDB04i0+FULt
 mSVOStINciPgBEYs3daQlaDuilTyR0Pbc4pvFrXJg/H6Re2eSCVrd9lJDl8XaLKu+ggsRXfFZHn
 ZMRuKqXV+Fxb8SYIQ90/3Sn0vX4EwmQSDjpfkI8DG05Ct+ew9Po4iuiqgAsnCriKkk5zqXDl+ty
 yns+Ev6Gd6Ieqn4Ha9KkcI3dssfSq+85GF0SIIP2tEJhOqLlRQ4Mjcf5aTcNg3shM8LcU6dHbDk
 2HVEitAu1/UtxCWifQg==
X-Proofpoint-GUID: ocnhx_Sb35YkR_6ikN0VmZcc2n6lKbqn
X-Proofpoint-ORIG-GUID: ocnhx_Sb35YkR_6ikN0VmZcc2n6lKbqn
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
 spamscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0
 bulkscore=0 clxscore=1015 impostorscore=0 priorityscore=1501
 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0
 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130019

From: Denis Mukhin <dmukhin@ford.com> 

Add guard against HOSTCC != CC (similarly to how its done in PDX unit test).

Account for multiple test targets in install and uninstall make targets.

Honor mocked hypervisor header over tools/include/xen symlinks.

Finally, add some clarifications for the functions and do some cleanup.

Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
Signed-off-by: Denis Mukhin <dmukhin@ford.com>
---
Changes since v2:
- fixed emit-harness-nested-rule
- honor LDFLAGS_APPEND
---
 tools/tests/domid/Makefile | 59 +++++++++++++++++++++++++++-----------
 1 file changed, 43 insertions(+), 16 deletions(-)

diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
index 753129029ed9..74cadab25b2e 100644
--- a/tools/tests/domid/Makefile
+++ b/tools/tests/domid/Makefile
@@ -14,26 +14,44 @@ $(shell sed -n \
     's/^[ \t]*# *include[ \t]*[<"]\([^">]*\)[">].*/\1/p' $(1) 2>/dev/null)
 endef
 
-# NB: $1 cannot be a list
+# Generate mock environment by replicating header file hierarchy;
+# each mock header file will point to a harness header.
+#
+# $1 Hypervisor header.
+# $2 Test harness header.
 define emit-harness-nested-rule
-$(1): $(CURDIR)/harness.h
-	mkdir -p $$(@D);
-	ln -sf $$< $$@;
+$(1): $(2)
+	set -e; \
+	mkdir -p $$(@D); \
+	[ -e $$@ ] || ln -s $(2) $$@
 
 endef
 
-define emit-harness-rules
-$(foreach x,$(2),$(call emit-harness-nested-rule,$(CURDIR)/generated/$(x)))
-$(1:.c=.o): $(addprefix $(CURDIR)/generated/,$(2))
-endef
-
+# Helper function to emit mock hypervisor code dependencies.
+#
+# $1 Hypervisor filename.
+# $2 Harness filename.
 define emit-harness-deps
-$(if $(strip $(2)),$(call emit-harness-rules,$1,$2),)
+$(eval c-file := $(abspath $(1)))
+$(eval c-name := $(notdir $(c-file)))
+$(eval c-headers := $(call list-c-headers,$(c-file)))
+$(eval c-deps := $(addprefix $(CURDIR)/generated/,$(c-headers)))
+$(foreach x,$(c-headers),$(call emit-harness-nested-rule,\
+                         $(addprefix $(CURDIR)/generated/,$(x)),\
+                         $(2)))
+$(c-name:%.c=%.o): $(c-file) $(c-deps)
+	$(CC) $(CFLAGS) -o $$@ -c $$(firstword $$^)
+
 endef
 
+# Emit dependencies for mock hypervisor code.
+#
+# $1 Hypervisor filename.
+# $2 Hypervisor source path.
 define vpath-with-harness-deps
 vpath $(1) $(2)
-$(call emit-harness-deps,$(1),$(call list-c-headers,$(2)$(1)))
+$(call emit-harness-deps,$(addprefix $(2),$(1)),\
+                         $(CURDIR)/harness.h)
 endef
 
 .PHONY: all
@@ -41,7 +59,11 @@ all: $(TESTS)
 
 .PHONY: run
 run: $(TESTS)
+ifeq ($(CC),$(HOSTCC))
 	set -e; $(foreach t,$(TESTS),./$(t);)
+else
+	$(warning HOSTCC != CC, will not run test)
+endif
 
 .PHONY: clean
 clean:
@@ -55,13 +77,12 @@ distclean: clean
 .PHONY: install
 install: all
 	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) test-domid $(DESTDIR)$(LIBEXEC)/tests
+	set -e; $(foreach t,$(TESTS),$(INSTALL_PROG) $t $(DESTDIR)$(LIBEXEC)/tests;)
 
 .PHONY: uninstall
 uninstall:
-	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/test-domid
+	set -e; $(foreach t,$(TESTS),$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$t;)
 
-CFLAGS += -D__XEN_TOOLS__
 # find-next-bit.c
 CFLAGS += '-DEXPORT_SYMBOL(x)=' \
           -Dfind_first_bit \
@@ -69,9 +90,13 @@ CFLAGS += '-DEXPORT_SYMBOL(x)=' \
           -Dfind_next_bit \
           -Dfind_next_bit_le \
           -Dfind_next_zero_bit_le
-CFLAGS += $(APPEND_CFLAGS)
+
+CFLAGS += -D__XEN_TOOLS__
+
+# Honor mock hypervisor headers over tools/include/xen
+CFLAGS += -I$(CURDIR)/generated/
 CFLAGS += $(CFLAGS_xeninclude)
-CFLAGS += -I./generated/
+CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(APPEND_LDFLAGS)
 
@@ -85,4 +110,6 @@ $(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)
 
+ifeq ($(filter clean distclean,$(MAKECMDGOALS)),)
 -include $(DEPS_INCLUDE)
+endif
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 02:58:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 02:58:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1229976.1535711 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjNt-00022C-62; Fri, 13 Feb 2026 02:58:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1229976.1535711; Fri, 13 Feb 2026 02: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 1vqjNt-000225-3P; Fri, 13 Feb 2026 02:58:21 +0000
Received: by outflank-mailman (input) for mailman id 1229976;
 Thu, 12 Feb 2026 22:40: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=ImLz=AQ=u.northwestern.edu=n7l8m4@srs-se1.protection.inumbo.net>)
 id 1vqfMj-0002IR-Db
 for xen-devel@lists.xenproject.org; Thu, 12 Feb 2026 22:40:53 +0000
Received: from mail-qk1-x72e.google.com (mail-qk1-x72e.google.com
 [2607:f8b0:4864:20::72e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dd87a2ca-0863-11f1-b163-2bf370ae4941;
 Thu, 12 Feb 2026 23:40:45 +0100 (CET)
Received: by mail-qk1-x72e.google.com with SMTP id
 af79cd13be357-8c713a6a6f8so37934285a.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 14:40:44 -0800 (PST)
Received: from security.cs.northwestern.edu (security.cs.northwestern.edu.
 [165.124.184.136]) by smtp.gmail.com with ESMTPSA id
 d75a77b69052e-50684bb9251sm46363411cf.30.2026.02.12.14.40.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 12 Feb 2026 14:40:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd87a2ca-0863-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=u-northwestern-edu.20230601.gappssmtp.com; s=20230601; t=1770936043; x=1771540843; 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=UWWGIVqElCdFKk2jvTyzzGQRjen7XYqCpsyceyHmbuY=;
        b=WLj47oF6Cu7h7GXR6fUxk1SfBEjH/BY8xPcxgaEwBD9O9Ll4DKmwWf9E9O1ndIedM+
         S5YOqG3/nPq6xiIchWC5nccdpVCibJ4JRTLFiab2oZDcCqalGmHRxXhAtBy9PONlUNv5
         EytIWxlBMGXc7Zm6nqNvIe3qSu6D8tCUIqJBuQki2U2NoJ3EmclPKm3Vn93j8WjftnTP
         Kdo37hJLsMnxOBSdjTxUZWj3sPKWcQR/kZA2cXQQcAWxeFWYfWXS5zy1z+0HcVPsrrUV
         9gRMSq4NXu3HIFxclfCwRqlgQYDhTKXY0UvfiCjfSX14YBgccUenGLdD9a2iNEahP9Cd
         xz4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770936043; x=1771540843;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=UWWGIVqElCdFKk2jvTyzzGQRjen7XYqCpsyceyHmbuY=;
        b=KPREjaUphkh7zUP/rh46ZggL1iZPM2Aitx91t74esJZoK/oBgREWG0EA8uZoTQMCd5
         Nq4pjv2cavweZ1QI4HQFduzTJjOTqbiSAaTxICjKNFif1mDnYTIjcFIi+GxNm+fERVs8
         +b7ChiA8YrIRvyiL8MDeaBW5WslxYPq/80FU7J1/cN9Tn/PsWG029vwS9bRbnMe8v2pB
         +CMqZYQj+NmZGDH2YMG77QhMRL+yZbzvVp4Sw5AIK6+cVy3TIm9s7oQ2Qg8Z3+SSJHM/
         6HcE8ltyELaVnu+mWVrt5c5imKjAs/kQ4MqCZQfweZHUzWYFE+hDs+zbsNShhRNmKYk5
         pFcQ==
X-Forwarded-Encrypted: i=1; AJvYcCXqS7vyPTOQZVyRrwevsjH4RQ0XAd4vZfsSkcQCFJKFbMAlb8syVBWM2zZiCeXnCERsY5tOmvDj05g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyW1F4ymQJ9MPXrqlJpXPU7FFN4TcMzM8V86FriCSPOTjDr6zBH
	ccBvEQfCUFC0Xzs6E+6LjXRoowqnld2fnaVIB4nznwBaDOwc6JfM0sNf83nKIAhsxGM=
X-Gm-Gg: AZuq6aIDogL+O1mauMHWSX5BG8tA2yOHUzsHR3FlrXvVnJNw7fA7M/OOA/eGu/pR+aF
	24h5rpxKjcueYQ/tAxooXH3+RZuJ90dDQ7HQzoZeEFIxsD7S1oKz1NMuOUs9j/MMtggamJM8eZU
	7cjmIul5a66tkP/dhglJ29kAxS+XOmPiIDOgEwfJZnS7EiLA8IGAkGKac9OkdbL3QUXjqJkAhR+
	yWJc8pWG4N35Tjr+9I7BY+hjwae7hN9zaQMmeeCEaqTxbQlQik6wceRnNLo/ukQq8SFrTmONX8F
	y0DSgurXt5U7Xm59dg4duY1q8qB49uI6hvCqO6b3qxz+V5Qll9iJZGvJzC8ocRVOUhThfVEePBb
	nv9IxijGP9iNA4GvX+QyIR0igHyumIw7L7LyfchT4h0mlvokglCdkY30nftXJkkeim5RLt4L6BT
	oqd/eJ1gkwYKzAulQ2YVvrfaHrBH+a7EUMVJgyUr7vbBJs0DfjoRbUIDeGm1Rp8VPSA5q1mDHDR
	CeyF8B0HGNw3XVTK2Aw2sUE1CIX6ghco/YFr/9LB7M=
X-Received: by 2002:a05:620a:1a2a:b0:891:7008:f2e0 with SMTP id af79cd13be357-8cb33a58005mr507763185a.8.1770936043069;
        Thu, 12 Feb 2026 14:40:43 -0800 (PST)
From: Ziyi Guo <n7l8m4@u.northwestern.edu>
To: Wei Liu <wei.liu@kernel.org>,
	Paul Durrant <paul@xen.org>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S . Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>
Cc: "Andrew J . Bennieston" <andrew.bennieston@citrix.com>,
	xen-devel@lists.xenproject.org,
	netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Ziyi Guo <n7l8m4@u.northwestern.edu>
Subject: [PATCH net] xen-netback: reject zero-queue configuration from guest
Date: Thu, 12 Feb 2026 22:40:40 +0000
Message-Id: <20260212224040.86674-1-n7l8m4@u.northwestern.edu>
X-Mailer: git-send-email 2.34.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

A malicious or buggy Xen guest can write "0" to the xenbus key
"multi-queue-num-queues". The connect() function in the backend only
validates the upper bound (requested_num_queues > xenvif_max_queues)
but not zero, allowing requested_num_queues=0 to reach
vzalloc(array_size(0, sizeof(struct xenvif_queue))), which triggers
WARN_ON_ONCE(!size) in __vmalloc_node_range().

On systems with panic_on_warn=1, this allows a guest-to-host denial
of service.

The Xen network interface specification requires 
the queue count to be "greater than zero".

Add a zero check to match the validation already present 
in xen-blkback, which has included this
guard since its multi-queue support was added.

Fixes: 8d3d53b3e433 ("xen-netback: Add support for multiple queues")
Signed-off-by: Ziyi Guo <n7l8m4@u.northwestern.edu>
---
 drivers/net/xen-netback/xenbus.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index a78a25b87240..2ef59b08ae21 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -735,10 +735,11 @@ static void connect(struct backend_info *be)
 	 */
 	requested_num_queues = xenbus_read_unsigned(dev->otherend,
 					"multi-queue-num-queues", 1);
-	if (requested_num_queues > xenvif_max_queues) {
+	if (requested_num_queues > xenvif_max_queues ||
+	    requested_num_queues == 0) {
 		/* buggy or malicious guest */
 		xenbus_dev_fatal(dev, -EINVAL,
-				 "guest requested %u queues, exceeding the maximum of %u.",
+				 "guest requested %u queues, but valid range is 1 - %u.",
 				 requested_num_queues, xenvif_max_queues);
 		return;
 	}
-- 
2.34.1



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 03:18:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 03:18:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230148.1535721 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqjh8-0005FZ-NH; Fri, 13 Feb 2026 03:18:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230148.1535721; Fri, 13 Feb 2026 03:18: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 1vqjh8-0005FS-KG; Fri, 13 Feb 2026 03:18:14 +0000
Received: by outflank-mailman (input) for mailman id 1230148;
 Fri, 13 Feb 2026 03:18: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=Y0jx=AR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vqjh7-0005FM-2l
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 03:18:13 +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 9f7ec94a-088a-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 04:18:10 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 9AC6514000F5;
 Thu, 12 Feb 2026 22:18:09 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-02.internal (MEProxy); Thu, 12 Feb 2026 22:18:09 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 12 Feb 2026 22:18:08 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9f7ec94a-088a-11f1-b163-2bf370ae4941
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=1770952689; x=1771039089; bh=MQdfMQaHPBHgZeyVIkCI+JydNTfIFqtr
	LGdsuLTCQVs=; b=uHPhzV9W8GJz07iqGuVUWzWCMZKNXPz/DWxtf+WzZYAZ9uyy
	aTREoSgWeM1kYIGOUPVuXR3bfvQqywACqReeFy00M4jIk+dNREujIuU7HczmTLLx
	7fwLhxjdRvdJjic+mJrxyuoQRp/6D/Zxg009jqW4PxaODp2z7r0+2zvuq/tSr/b0
	UohqKP59ZkZDlqosAhoR4Pb9SjabL7+kNECbC1h0IRviIGoc48r4JAZahy2jxyeI
	I66sPHeTFjLLzyjGKgrpdGIWAPeOnSzmBm/FC9BpLrsHMtDrXAeMe2+MuFor7avK
	Te2EnuR8WZ14qPS2EIuxNihYzIq5B2bwnxnoHQ==
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=1770952689; x=1771039089; bh=MQdfMQaHPBHgZeyVIkCI+JydNTfI
	FqtrLGdsuLTCQVs=; b=GjX5cgAs5W2WlkuDre6lOoCK7ByaLIBvSwKYw/oCm+kM
	0Fm+t5E47McseC2zfqjZWA9KIBm9T+jv4dBIceQLNgxpq6KzXaCMcFypj/C/s3Ue
	83zxPo2N+JgVD+ZqaMKsTmvjx+QUMEb5OkxGvOwqesJ95YhGn7r62YkPGOBgu3b5
	QMRPG/agtxyNnT//kC4mmm+L4y/mp+S4/WXwI2z/+ZRuoPA57rOCRxixGMNTYlYM
	kij5dPtDcVcwwMFUTFK5GP1IPTWvEDcjKdXn/NGB7dn6j9Oy53SMJhPHMbToONbV
	mA4iGXtRVGO9QmYYcj7Yk71hruw+J/L/NUQ5eEN04w==
X-ME-Sender: <xms:8ZeOabalF8s0fOvDUs32aZmC4nk_G8zetwFNKLkggfcQJRAXXs2vrw>
    <xme:8ZeOaRT552ozg86AcswdUydy-mgdgYm7k_k1o3cFv0OHLo_0wO5ayH4IOWYC5igtD
    MDa2bRrHaTqrqFYgIB0B61B1JTATPnvSHey_CvUvdIXFPYJAA>
X-ME-Received: <xmr:8ZeOaWSYD4hxr_95ywf_h5xRJGIa0MMfA7DztOzrfjypuZ0orSHdSS7wmbQv495qYuMbWrsQ968EYP_HFOVdZZVJFV48NoKhGyX__gFKreI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdejudehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelkefhudel
    teelleelteetveeffeetffekteetjeehlefggeekleeghefhtdehvdenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeehpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtohepjhgsvghulhhitghhsehs
    uhhsvgdrtghomhdprhgtphhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrih
    igrdgtohhmpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:8ZeOadTkXqt5iqAZGWnPM0DU9Addc0nmNkeBTyd8qqyJzS0hsLvLOw>
    <xmx:8ZeOaT6jgzlcDlekQhssjmFR4damPhmmCBQtE00cLc7zoPf3r3nVvw>
    <xmx:8ZeOaR2P2gYxyg5plNlpvcqK-dV9mo9VuDAlP3mfQ4g-aHZ8TnvwLw>
    <xmx:8ZeOaWBFmLLZ-INnmwGmwu4OmzFsoxqMBJK3eeq33UlSmW5nY1vqYQ>
    <xmx:8ZeOaZVdq6YLMpRjEINjJ-PWSdFcIg9AEGgnklomuUsaMxl5yJmZ6KuI>
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>,
	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] VT-d: fix off-by-one when handling extra RMRR ranges
Date: Fri, 13 Feb 2026 04:17:48 +0100
Message-ID: <20260213031801.1744145-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

add_one_user_rmrr() operates on inclusive [start,end] range, which means
the end page needs to be calculated as (start + page_count - 1).
This off-by-one error resulted in one extra pages being mapped in IOMMU
context, but not marked as reserved in the memory map. This in turns
confused PVH dom0 code, resulting in the following crash:

    (XEN) [    3.934848] d0: GFN 0x5475c (0x5475c,5,3) -> (0x46a0f4,0,7) not permitted (0x20)
    (XEN) [    3.969657] domain_crash called from arch/x86/mm/p2m.c:695
    (XEN) [    3.972568] Domain 0 reported crashed by domain 32767 on cpu#0:
    (XEN) [    3.975527] Hardware Dom0 crashed: rebooting machine in 5 seconds.
    (XEN) [    8.986353] Resetting with ACPI MEMORY or I/O RESET_REG.

I checked other parts of this API and it was the only error like this.
Other places:
 - iommu_get_extra_reserved_device_memory() -> reserve_e820_ram() - this
   function expects exclusive range, so the code is correct
 - add_one_extra_ivmd() - this operates on start address and memory
   length

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 xen/drivers/passthrough/vtd/dmar.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
index 91c22b833043..3da0854e6d91 100644
--- a/xen/drivers/passthrough/vtd/dmar.c
+++ b/xen/drivers/passthrough/vtd/dmar.c
@@ -1065,7 +1065,7 @@ static int __init add_user_rmrr(void)
 static int __init cf_check add_one_extra_rmrr(xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt)
 {
     u32 sbdf_array[] = { id };
-    return add_one_user_rmrr(start, start+nr, 1, sbdf_array);
+    return add_one_user_rmrr(start, start + nr - 1, 1, sbdf_array);
 }
 
 static int __init add_extra_rmrr(void)
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 03:19:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 03:19:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230155.1535733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqji0-0005if-1P; Fri, 13 Feb 2026 03:19:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230155.1535733; Fri, 13 Feb 2026 03: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 1vqjhz-0005iY-TQ; Fri, 13 Feb 2026 03:19:07 +0000
Received: by outflank-mailman (input) for mailman id 1230155;
 Fri, 13 Feb 2026 03: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=QC9n=AR=epam.com=milan_djokic@srs-se1.protection.inumbo.net>)
 id 1vqjhx-0005iF-RL
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 03:19:06 +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 bf8b1d12-088a-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 04:19:03 +0100 (CET)
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com (2603:10a6:20b:509::16)
 by VI0PR03MB10527.eurprd03.prod.outlook.com (2603:10a6:800:208::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 03:19:00 +0000
Received: from AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::d2a4:da44:a0a1:e258]) by AS8PR03MB8322.eurprd03.prod.outlook.com
 ([fe80::d2a4:da44:a0a1:e258%5]) with mapi id 15.20.9611.008; Fri, 13 Feb 2026
 03:18: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: bf8b1d12-088a-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=qqEpYKSVFUlg4KLljOJQmZb1N+yeu3XbIVoVhlgc7QhTglEKi9Yn1N3rdGNBl1cZ4dG52KrH260SU4iBid4N1UT0Ql5+kuzhPC1o3TfCwIFqY5+v94qHSRtpENL+h0P3jffZgqH0yoTZtu6cpzg283C77gV5QpvS0UAvkYDkMaYYWfinqFe7QPZl/kD5gY2qwokotgr2yrHMniQjp2NCh5yz/lkOjSAbE06nFqnN7+oF+KAq/RyiGurPps6VHB5Ho3JtC2VciWQBMt6hK2noSH4IZsf4yZaC9fxJAtNnMvT6WYbJh+CKJWMol6kQisEIW2nQ3BcvrKL2byASBTRABg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AAFa/ckxYSa5CZsSTZ6MwkTAveXn9hGaO+1gduzng8Q=;
 b=OvPgLr8bnQbKmhn7S0H+oFrUZqAinrbiv+jimjIBv6gxumcXbdGWmeeGgO6rQUs5L6axo8/FUEkN6xwkVOb66ZP0ydU6cff8WEjESs7FCpBNelvhzX1Z7mQQq4x6v2FU7YIlJlSiViUeFFjfUDLQDVcwLD8H89JILuovtmQE9vzQgfzbqdNtUA9EplpAJzRUWcLysfl+CrCUBaHry4P1KIQqHidZslDj63abhxeenrpQ80c9vYL8AeHGW7G/fIb0XbsNFJ60M6mzxmaxGjDkiACvAAjOXye8PFKJ4Aq6iaVcf4x7inNabclJ+oa6GczUUyT+DU9FAVLzvBBSLbY+Bw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AAFa/ckxYSa5CZsSTZ6MwkTAveXn9hGaO+1gduzng8Q=;
 b=LbEj69E/tPqChD3In8mZEiuyhpOKwWptrGnThVHzo3j7KSP05Dfd/hSmpyX8TFLzHJiNbywf5qIG7SWOVFxJGF3+Q9yuURKj4pzImlPuA8CqaP28qmIW2CeE8QkQizj4VMMx11UtBbA1FDuxz4wAAkZcJ5e9WdE8cpHOKanauJrryxYN8k09NO+EBCgA7H5duGWVHa2tlDLtEBkpIjm3Zd64mCMepugguVqtNGCiZ8dcxjdoc6Rk2oqIUyJJovAo6wTk0txqrwKKf6/Uty58ug16XCVSKSuUGYBh6ycc5tc2zQiUnRI1l7TaEDzpYWa8R+XHiIBF5dQjI4xdowOhAg==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
Message-ID: <7548efa7-2157-4e80-89e1-6a7c58c4bffd@epam.com>
Date: Fri, 13 Feb 2026 04:18:57 +0100
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 00/20] Add SMMUv3 Stage 1 Support for XEN guests
From: Milan Djokic <milan_djokic@epam.com>
To: Julien Grall <julien@xen.org>
Cc: 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?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>,
 Volodymyr Babchuk <Volodymyr_Babchuk@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> <875xe6ytyk.fsf@epam.com>
 <65727710-0a88-4fff-bb5b-9cf34106833c@epam.com>
 <5df30dbf-17a2-446f-83f9-0e4468622917@epam.com>
 <485a8166-5079-4c0e-a6bf-f6aee8af991d@xen.org>
 <c776c308-cda6-412f-b03c-a4b691b69d33@epam.com>
 <2d07bef7-a7a1-4458-9da6-43bf2956d7d8@xen.org>
 <9c07b1b6-4543-41ba-b58e-1494654a0425@epam.com>
Content-Language: en-US
In-Reply-To: <9c07b1b6-4543-41ba-b58e-1494654a0425@epam.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: VI1P191CA0011.EURP191.PROD.OUTLOOK.COM
 (2603:10a6:800:1ba::19) To AS8PR03MB8322.eurprd03.prod.outlook.com
 (2603:10a6:20b:509::16)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: AS8PR03MB8322:EE_|VI0PR03MB10527:EE_
X-MS-Office365-Filtering-Correlation-Id: f320b626-29cf-4f4f-1c06-08de6aaea144
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|366016|7416014|376014|3122999021;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?a1YzOGk5TndEN3R5NWJFWm9YVGlXaHFyczBxNnBDdmI0TUNIQmNMMkowYXdR?=
 =?utf-8?B?WXpGY0FjRmxZSnJVSm5LZlpQWDQzbWRnV2VJMkU3STVmZzBjRVRGOXVoMzZD?=
 =?utf-8?B?MXMxM3hTM25IMERYVXpTMGlIRU5sRWZqNzEvTEdzL096bW84WGNkcTd5T2dz?=
 =?utf-8?B?OFZuUHk0MEFwck13TFM5REFUUmQ1ZG9LRlQ3MjZNa2dWeHk0RnVSN0pOaTl4?=
 =?utf-8?B?TEtEOCs3N2hRUE5XZlcyTmZsU0g2Qnh4VUF2UFBDTjgyWHZCVU5vWTY2WFJt?=
 =?utf-8?B?TU0xM2xwNEZscXZ0Q01UYU5uSXRLMXU0Y1JKNXRBM3VZcktlbzZ0S3ZqRHFZ?=
 =?utf-8?B?cmhDUmV1cXBIcmhnK1N1eFVIQmhiUFVLMVpCSFdINVVCZ3F4VUE5dVNCM2ly?=
 =?utf-8?B?WktoVlJPU0JnSkdXK1RCOXViY3Vlc0o1TU1pM0FUcGRnUDJVODYxRmVuaFdW?=
 =?utf-8?B?d0syYWtjdEI3ZXE0dVBMc2Vxd0k1WjRFM1hQbk5WNUJRY3NPMVdNenZXZTBL?=
 =?utf-8?B?K2plcWpDdzZTR2NkcytZc0NneHJ3cW5ZSm1hUFB2WnZXdExVZmZhcnk5dkR2?=
 =?utf-8?B?bHRUUkZ3NlBWOXIxdXJFYTF1K2hJWmJHV29pTTZTQk1NKzg4dGFvemhtalM5?=
 =?utf-8?B?OUZFZG9TL2RUWG5rVkdubXRDeHV2MGdQWXVvOXhkRFZDRGVzVW4vZlkzT1dE?=
 =?utf-8?B?NjhHcy96ckx3UjI2UnB0VDVXTk16VDkxeWhkWXZvQlplZG5lSktRKzEyUTdY?=
 =?utf-8?B?R0VOK0dGb1RxUCthTmhHV3NtV1UwdXdZNW9xaXRIbktFeVRqWUxFNk1aVllO?=
 =?utf-8?B?a0h0NGVoK3VDNFV2a2c3VUJHNldEOTVHMzFBdkxoNTczaUx4Wmp1UVN4ZWNF?=
 =?utf-8?B?VVFzOHZxTmxwZmlXWStEaGZTaWUvN0hUYzJwYXpJajY3RUtueW9oaFVOazJN?=
 =?utf-8?B?eUhjeXZyTlVySXdXdVh4VjYxd2lyYjJubmVldENVb3IxOEQ0cFJUU2hVUUty?=
 =?utf-8?B?U2dCM3h3K2NzTmlYVVc4S2lWbFVRV2NCNkRvQlZPcDh0WVdNdkdTYVRPQ0h0?=
 =?utf-8?B?YjhYenJrRGJYeHNwa1hiRXlhUVpkNW1TbVA5bXJEMnVKYkVKOWgxenQxd3o0?=
 =?utf-8?B?VGoraHVHTWdnbmEwRVVlNkorVW12cjhkK0g1d2hNTmpwaDRPUVVlY0FIZHI2?=
 =?utf-8?B?VFpjTDRzbzZ6R1BSbTNWUTl3Vmx4YlM0eFNJMjdjN3h1NGtWY1hKWlBaVkUx?=
 =?utf-8?B?SkJwRkRNRDdhYXcxcnh3a1RqN3Q5cDVmTHVqVjRFL0dwczNmKytnZEhzeUE0?=
 =?utf-8?B?bTlMV3FCa1dQWmQzYUpLcmQ0NTFRbmV3K2UzOWRqVVBrZ2dIa3o3SGMwVTJC?=
 =?utf-8?B?VnJDQ25Rdmo4M3FhYlJIM2diTTl5UmNLbFMwMENrV0pKZTV1bnFTSWNYOWZE?=
 =?utf-8?B?VjliZSt4R2lpTE9sWWVIVUVqR2twS0ExZzI5TzFsRm1VaWFITk5HMmYvdyth?=
 =?utf-8?B?TmZHalhnRC9RUGlCUHdCajIyWkF6b1hjcElTRXFXbFRJazZGVkwrb3pneFRn?=
 =?utf-8?B?MHRqdndUa3dCbTZ4RVJydUVpd0hiZnRBQWMxWmpFWTB4d3ppZXI4MzVIb3NJ?=
 =?utf-8?B?dkk3SGNvTUJGcDdETFZiY0dFUWQ3NWl5ZTRubDlPdUhCa1VXREtLWmdSQkZU?=
 =?utf-8?B?dlBIWHBBQ0dBZUlETTN1VDNHRjFhZlk2K1RkNERWZWVhTzQ0VWFlblpNcTlS?=
 =?utf-8?B?Q3VNRkw0Q2FhVHJyZ09GYmhHM3hvNDdxVlBVcyt0UnlNbnFzcFNFbTRDSG9E?=
 =?utf-8?B?MmVYcThHTkxMb0k5dmNDSFhkcG90bWVPRk1CRzNvdWdXZ0h5bkUyRTlHampJ?=
 =?utf-8?B?OVEyb1RMV1lqck9XTTI2UXFib0J0WkxlUnFrdEZadE1NNnoraHJsdFFad09L?=
 =?utf-8?B?cGd6dnhvRDlESmdVcXNES1dRYmwyZnZPY3BkUTdRL1FtdHpOWUZ6eVZYdzdQ?=
 =?utf-8?B?OWprYVl5bWxyUnR2OUtOUUMvdFpVK2JIY2FzTnJaZkd0UkhDZUU2dDZSTzBH?=
 =?utf-8?B?QlhYR284NklQWWlBS1R0emNOYTJib2dVYzdaS0crN1d6QU4xQUtmWEFIQUxX?=
 =?utf-8?Q?1Ko8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR03MB8322.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(3122999021);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MTljWndsUksyQjNaYTJiRTk3MWl1ZkduKzZwMW84ZkhiT1duQUMvRnVPTlh2?=
 =?utf-8?B?WkZYb3F4ckU1Ynd4MGVuQ0d2T0lKamtTY2I5SFpNNVFqODNLUWtNOGZPWGwx?=
 =?utf-8?B?WitCYmVrLyt0V293NDlTNXFvSnVXUlVLcEptMW9SbW9SUXRlMnBCT0o5R3BB?=
 =?utf-8?B?SW8wbXlrSCs2LzNheFk3REtkaThqSXdzNXdjMGJtZi9VN29tQUc1dzJiejVG?=
 =?utf-8?B?YU5HYytjb25DTWpEVW9Bdk5weHR1RmR6Nmd3UjU1V0h0R2szcnZOK29xOVNy?=
 =?utf-8?B?eWxsVXg0MHVzWTZ1QWl5cUJsNVA4R21FOUFaQktRQU1WbnQ0cXNuTGtJb2s1?=
 =?utf-8?B?UTJ4dDZOZjBXMnBMOVR3QUsyYWlTNHMrNGwvTjNEU1dzeHphQWlPRytJYTJD?=
 =?utf-8?B?dTErMXNYa0gzdUQ0NFBPYnJ4R0ppNy94Q1YyME1sUENkcVF0WmZXaVlPblJ2?=
 =?utf-8?B?dWRhS05xeUQyUW5DN2Z1eThCRVlIdkJrcHRZeGpPdlk2cUNLWFo3bzdkQU5S?=
 =?utf-8?B?R2FoNGJwenZQVXF6TDAvdWxYdjJYZUpoa29raDQ1d3hpSGEyR3hJSFV3N2x5?=
 =?utf-8?B?akNlQTN3TnovZkU5NFpveHVqVlJjbjNjNlBWZmcyeGZEb1JybHVaai9hOWw0?=
 =?utf-8?B?NHpIQWdGeEtyYmhEK2h6VHE3Z0twQkROb0plZ3pYUDE5MjZlNW53d3lWcGlT?=
 =?utf-8?B?Z2kwT3loTVpoTkxmQTJxNjdCd3I0Rk5hVVdRVUZUdXhWcjZlYXVnVlBSQWdK?=
 =?utf-8?B?QXBudjU2M0EzcHg1L05GcDRSZUE0d1ZYTWE2eDZxVlB1OWdUcU9MNjJzcVor?=
 =?utf-8?B?ZWlVNmN6WG55Z3RkZUQzaURmV1hmQjJZNmQxSjQ4S1d3UFJ2bit4RFFFb1Nm?=
 =?utf-8?B?UjI5a2V2TktuMUxtOVlpekpZdzJEbE5Fa0RCblFIY1paNTBFeFVEZEhkaEhl?=
 =?utf-8?B?bVQ0dWRMNzBCdjFZTVBwYXQzY3MrVjhnV1ZOdlJmYlFMT3hYZUFKQW5sUGMr?=
 =?utf-8?B?VXVzTmRSaEpMRFpxZXZKNllsUlRqMDlLV3hncHZEYkFRNm42WmcxV2loUi9t?=
 =?utf-8?B?aXdWa05xODJYLzR5SmIvWW5IdzdMTVcwcjlxV0ZqWDJpSFNkMU9uR2pYaXpR?=
 =?utf-8?B?MUhFdHQyZTNZZFhycWlTcXJxc05PRGg5cEtxOXo1bXUzRFkxMW1leml2d1Zs?=
 =?utf-8?B?TEd2U2NZRjBkMmxyaWFpb0pmL2RCMk1YTXAzSk51RzgvVkxDUVdJcFhYa3VE?=
 =?utf-8?B?bVBJb3JHWHlKc0FQTUpJRlNqaEhBTzlTSS9KeDVTM20rdUNmc29rV2l5WEdY?=
 =?utf-8?B?M0t1WENYK3ZTYURMakdiSGx0R2JXSUtIdTJzVXFjQVJMMXJ1S3ZOOGtMNG5s?=
 =?utf-8?B?MDZYYzk4QzdmYU5Ua1lCTTgrT1o5M3RWRW12b0ZEQXVSOXBaNlY4aG1yV0JD?=
 =?utf-8?B?bjEyalY1dWFiTHE4Umd1K2tIZlVhTzJMS2hjYXdPSm91ZjJ1SWsxUkFrVFYv?=
 =?utf-8?B?SkhxbEI4MkdDWFU4Y0hFMk9kVThaR2tlYS81V2ZNaU4xTlpIUWI5YitOeUVF?=
 =?utf-8?B?RFI1UXBoUURKaDlmWlorSUN0Z29OWFJTYlNrNVNNNWNnMmg1eTFzZDFReTlY?=
 =?utf-8?B?L1BtcllWZDNrcVd5UXVhTy8xMSs3UFNzV1RQYktsUVY5QnpxQXQ3dTZZVWhF?=
 =?utf-8?B?Ni90MVp1Tjk1L3JuN3ZOSXZNRzlieFZORlorMjJtWVNhTGZSNXpSejBmNk5O?=
 =?utf-8?B?ZldPMjRyeGo3SXYxS2d0dnZSTTV4QkpzR04wWG1GQi9oK2llNDA4cVRCSUJs?=
 =?utf-8?B?ZS85WE85eHU1bUVKYXliZnluSzMzSGZpcFUzY0MxbmV5bGhhN3NheDNDZ3Bq?=
 =?utf-8?B?UXhSU3NtcVBMbjdQY01OMVFWdXc0L1dDZEZxOHYyZzM3SG50d0tBdkhiM1Q5?=
 =?utf-8?B?WGJpVGNiTXNCSUo2OTErNXFFZytib0c5VC8rUlZZajNBQ0s2enZYYitZb3NJ?=
 =?utf-8?B?SVRZVXh0VVB5YTBJN2s4aGNIUjBDclBMTTJPK01BUFJjR3lRWlRkMTlpOWhp?=
 =?utf-8?B?WGpwbWZIUi8wMUl0cHBQTFZQV21rZFYxNlBOclpXcXp4YnFPYU5VT2w5N3NR?=
 =?utf-8?B?ZUhxWDRCNXdmQmJ3Y29lYmFqY0xmN0kxc1U4RHJvbUo0TXVvZ0J1Y2Z5emtL?=
 =?utf-8?B?WkZGYktUWDhPUlgraFd4cHVvOWVWMUQ1UjdBQmNScmJ0OUhnWFNva0YxaXR5?=
 =?utf-8?B?TWNHKzVKV1JjemN0YmtlOUtJL2xkMURMZ0lwZUIxWEJSaFBuYm1pS2lNeTNK?=
 =?utf-8?B?UHpzYnZiSXZFcVBkbVVwK0FiYTYvVGlheFhlMVFXejFaOEo4YUlyZz09?=
X-OriginatorOrg: epam.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f320b626-29cf-4f4f-1c06-08de6aaea144
X-MS-Exchange-CrossTenant-AuthSource: AS8PR03MB8322.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 03:18:59.7810
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 91t0e0qfz/vwg6W+XzzkWV99hSQp4+F0/wJ20XJF0tnrFRs2eCaHCZT3jDl3eoKqrQ5YhFlw0EGgWuHP9yjgdA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR03MB10527

Hi Julien,

On 12/3/25 16:47, Milan Djokic wrote:
> Hi Julien,
> On 12/3/25 11:32, Julien Grall wrote:
>> Hi,
>>
>> On 02/12/2025 22:08, Milan Djokic wrote:
>>> Hi Julien,
>>>
>>> On 11/27/25 11:22, Julien Grall wrote:
>>>>> We have changed vIOMMU design from 1-N to N-N mapping between vIOMMU and
>>>>> pIOMMU. Considering single vIOMMU model limitation pointed out by
>>>>> Volodymyr (SID overlaps), vIOMMU-per-pIOMMU model turned out to be the
>>>>> only proper solution.
>>>
>>>    > Does this means in your solution you will end up with multiple
>>>    > vPCI as well and then map pBDF == vBDF? (this because the SID have to be
>>>    > fixed at boot)
>>>    >
>>>
>>> To answer your question, yes we will have multiple vPCI nodes with this
>>> model, establishing 1-1 vSID-pSID mapping (same iommu-map range between
>>> pPCI-vPCI).
>>> For pBDF to vBDF 1-1 mapping, I'm not sure if this is necessary. My
>>> understanding is that vBDF->pBDF mapping does not affect vSID->pSID
>>> mapping. Am I wrong here?
>>
>>    From my understanding, the mapping between a vBDF and vSID is setup at
>> domain creation (as this is described in ACPI/Device-Tree). As PCI
>> devices can be hotplug, if you want to enforce vSID == pSID, then you
>> indirectly need to enforce vBDF == pBDF.
>>
> 
> I was not aware of that. I will have to do a detailed analysis on this
> and come back with a solution. Right now I'm not sure how and if
> enumeration will work with multi vIOMMU/vPCI model. If that's not
> possible, we will have to introduce a mapping layer for vSID->pSID and
> go back to single vPCI/vIOMMU model.
> 
>> [...]
>>

I have updated the vIOMMU design following our previous discussion on 
this topic and some additional usecases which we had in a meantime. I 
have changed the implementation which now provides a single vIOMMU to 
guest, with a Xen mapping layer which translates it into physical IOMMU 
layout. This design supports multiple physical IOMMUs and also aligns 
with the ongoing vPCI/PCI passthrough work.
New vIOMMU design is provided below, could you please review the updated 
design?
Changes comparing to previous design version:
- Switched from N-N  to 1-N vIOMMU-pIOMMU model, with the addition of 
vSID->pSID mapping layer
- Added some details related to vIOMMU emulation flow (commands, events) 
and the new vSID->pSID mapping layer
- Assumptions and constraints for vPCI compatibility. PCI support is not 
yet complete, planned to be implemented in alignment with the ongoing 
PCI passthrough work
- Removed security considerations which are not directly related to 
vIOMMU (xl, libfdt)
- Expanded mitigations for scheduling-related risks
- Added initial performance measurements for the Renesas R-Car platform 
(to be extended with future PCI support work)


==========================================================
Design Proposal: Add SMMUv3 Stage-1 Support for XEN Guests
==========================================================

:Author:     Milan Djokic <milan_djokic@epam.com>
:Date:       2026-02-13
: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.
With stage-1 enabled, guest manages IOVA to IPA mappings through its own
IOMMU driver.

This feature enables:

- Stage-1 translation for the guest domain
- Device passthrough with per-device I/O address space

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.

A single vIOMMU device is exposed to the guest and mapped to one or more
physical IOMMUs through a Xen-managed translation layer.
The vIOMMU feature provides a generic framework together with a backend
implementation specific to the target IOMMU type. The backend is responsible
for implementing the hardware-specific data structures and command handling
logic (currently only SMMUv3 is supported).

This modular design allows the stage-1 support to be reused
for other IOMMU architectures in the future.

vIOMMU architecture
===================

Responsibilities:

Guest:
  - Configures stage-1 via vIOMMU commands.
  - Handles stage-1 faults received from Xen.

Xen:
  - Emulates the IOMMU interface (registers, commands, events).
  - Provides vSID->pSID mappings.
  - Programs stage-1/stage-2 configuration in the physical IOMMU.
  - Propagate stage-1 faults to guest.

vIOMMU commands and faults are transmitted between guest and Xen via
command and event queues (one command/event queue created per guest).

vIOMMU command Flow:

::

     Guest:
         smmu_cmd(vSID, IOVA -> IPA)

     Xen:
         trap MMIO read/write
         translate vSID->pSID
         store stage-1 state
         program pIOMMU for (pSID, IPA -> PA)

All hardware programming of the physical IOMMU is performed exclusively 
by Xen.

vIOMMU Stage-1 fault handling flow:

::

     Xen:
         receives stage-1 fault
         triggers vIOMMU callback
         injects virtual fault

     Guest:
         receives and handles fault

vSID Mapping Layer
------------------

Each guest-visible Stream ID (vSID) is mapped by Xen to a physical Stream ID
(pSID). The mapping is maintained per-domain. The allocation policy 
guarantees
vSID uniqueness within a domain while allowing reuse of pSIDs for different
pIOMMUs.

* Platform devices receive individually allocated vSIDs.
* PCI devices receive a contiguous vSID range derived from RID space.


Supported Device Model
======================

Currently, the vIOMMU framework supports only devices described via the
Device Tree (DT) model. This includes platform devices and basic PCI
devices support instantiated through the vPCI DT node. ACPI-described
devices are not supported.

Guest assigned platform devices are mapped via `iommus` property:

::

     <&pIOMMU pSID> -> <&vIOMMU vSID>

PCI devices use RID-based mapping via the root complex `iommu-map`:

::

     <RID-base &viommu vSID-base length>

PCI Topology Assumptions and Constraints:

- RID space must be contiguous
- Pre-defined continuous pSID space (0-0x1000)
- No runtime PCI reconfiguration
- Single root complex assumed
- Mapping is fixed at guest DT construction

Constraints for PCI devices will be addressed as part of the future work on
this feature.

Security Considerations
=======================

Stage-1 translation provides isolation between guest devices by
enforcing a per-device I/O address space, preventing unauthorized DMA.
With the introduction of emulated IOMMU, additional protection
mechanisms are required to minimize security risks.

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 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
configuration if fully attached. This ensures  incomplete or invalid
device 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 between devices assigned to the same guest.

**Mitigation:**
The guest must issue appropriate invalidation commands whenever
its stage-1 I/O mappings are modified to ensure that translation caches
remain coherent.

3. Observation:
---------------
Introducing optional per-guest enabled features (`viommu` argument in xl
guest config) means some guests
may opt-out.

**Risk:**
Guests without vIOMMU enabled (stage-2 only) could potentially dominate
access to the physical command and event queues, since they bypass the
emulation layer and processing is faster comparing to vIOMMU-enabled guests.

**Mitigation:**
Audit the impact of emulation overhead effect on IOMMU processing fairness
in a multi-guest environment.
Consider enabling/disabling stage-1 on a system level, instead of 
per-domain.

4. 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:**

- Implement vIOMMU commands execution restart and continuation support:

   - Introduce processing budget with only a limited amount of commands
     handled per invocation.
   - If additional commands remain pending after the budget is exhausted,
     defer further processing and resume it asynchronously, e.g. via a
     per-domain tasklet.

- Batch multiple commands of same type to reduce emulation overhead:

   - Inspect the command queue and group commands that can be processed
     together (e.g. multiple successive invalidation requests or STE
     updates for the same SID).
   - Execute the entire batch in one go, reducing repeated accesses to
     guest memory and emulation overhead per command.
   - This reduces CPU time spent in the vIOMMU command processing loop.
     The optimization is applicable only when consecutive commands of the
     same type operate on the same SID/context.

5. Observation:
---------------
Some guest commands issued towards vIOMMU are propagated to pIOMMU
command queue (e.g. TLB invalidate).

**Risk:**
Excessive commands requests from abusive guest can cause flooding of
physical IOMMU command queue,
leading to degraded pIOMMU responsiveness on commands issued from other
guests.

**Mitigation:**

- Batch commands that are propagated to the pIOMMU command queue and
   implement batch execution pause/continuation.
   Rely on the same mechanisms as in the previous observation
   (command continuation and batching of pIOMMU-related commands of the 
    same
   type and context).
- If possible, implement domain penalization by adding a per-domain budget
   for vIOMMU/pIOMMU usage:

   - Apply per-domain dynamic budgeting of allowed IOMMU commands to
     execute per invocation, reducing the budget for guests with
     excessive command requests over a longer period of time
   - Combine with command continuation mechanism

6. Observation:
---------------
The vIOMMU feature includes an event queue used to forward IOMMU events
to the guest (e.g. translation faults, invalid Stream IDs, permission 
errors).
A malicious guest may misconfigure its IOMMU state or intentionally trigger
faults at a high rate.

**Risk:**
Occurrence 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 occurred with high frequency and
   not processed by guest:

   - Introduce a per-domain pending event counter.
   - Stop forwarding events to the guest once the number of unprocessed
     events reaches a predefined threshold.

- Consider disabling the emulated event queue for untrusted guests.
- Note that this risk is more general and may also apply to stage-2-only
   guests. This section addresses mitigations in the emulated IOMMU layer
   only. Mitigation of physical event queue flooding should also be 
considered
   in the target pIOMMU driver.

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/command handling.
Testing is performed on Renesas R-Car platform.
Performance is mostly impacted by emulated vIOMMU operations, results
shown in the following table.

+-------------------------------+---------------------------------+
| vIOMMU Operation              | Execution time in guest         |
+===============================+=================================+
| Reg read                      | median: 645ns, worst-case: 2mμs |
+-------------------------------+---------------------------------+
| Reg write                     | median: 630ns, worst-case: 1μs  |
+-------------------------------+---------------------------------+
| Invalidate TLB                | median: 2μs, worst-case: 10μs   |
+-------------------------------+---------------------------------+
| Invalidate STE                | median: 5μs worst_case: 100μs   |
+-------------------------------+---------------------------------+

With vIOMMU exposed to guest, guest OS has to initialize IOMMU device
and configure stage-1 mappings for the 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 depending on device complexity.
A USB host controller was selected as the test case due to its extensive
use of dynamic DMA allocations and IOMMU mappings, making it a
representative workload for evaluating stage-1 vIOMMU behavior.

+---------------------+-----------------------+------------------------+
| Stage               | Stage-1 Enabled Guest | Stage-1 Disabled Guest |
+=====================+=======================+========================+
| IOMMU Init          | ~10ms                 | /                      |
+---------------------+-----------------------+------------------------+
| Dev Attach / Mapping| ~100ms                | ~90ms                  |
+---------------------+-----------------------+------------------------+

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 trigger emulated IOMMU functions like mmio
write/read and TLB invalidation.

+---------------+---------------------------+--------------------------+
| DMA Op        | Stage-1 Enabled Guest     | Stage-1 Disabled Guest   |
+===============+===========================+==========================+
| dma_alloc     | median: 20µs, worst: 80µs | median: 8µs, worst: 60µs |
+---------------+---------------------------+--------------------------+
| dma_free      | median: 15µs, worst: 60µs | median: 6µs, worst: 30µs |
+---------------+---------------------------+--------------------------+
| dma_map       | median: 12µs, worst: 60µs | median: 3µs, worst: 20µs |
+---------------+---------------------------+--------------------------+
| dma_unmap     | median: 15µs, worst: 70µs | median: 3µs, worst: 20µs |
+---------------+---------------------------+--------------------------+

Testing
=======

- QEMU-based ARM system tests for Stage-1 translation.
- Actual hardware validation 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.

Future improvements
===================

- Implement the proposed mitigations to address security risks that are
   not covered by the current design
   (events batching, commands execution continuation)
- PCI support
- Support for other IOMMU HW (Renesas, RISC-V, etc.)

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 (KVM, QEMU)


Best regards,
Milan


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 04:02:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 04:02:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230184.1535742 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqkO6-0003nr-48; Fri, 13 Feb 2026 04:02:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230184.1535742; Fri, 13 Feb 2026 04:02: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 1vqkO6-0003nk-19; Fri, 13 Feb 2026 04:02:38 +0000
Received: by outflank-mailman (input) for mailman id 1230184;
 Fri, 13 Feb 2026 04:02: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=Y0jx=AR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vqkO4-0003nb-Fu
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 04:02:36 +0000
Received: from fhigh-a1-smtp.messagingengine.com
 (fhigh-a1-smtp.messagingengine.com [103.168.172.152])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2ca8490-0890-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 05:02:34 +0100 (CET)
Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 7044914001BF
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 23:02:32 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-03.internal (MEProxy); Thu, 12 Feb 2026 23:02:32 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 23:02:31 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2ca8490-0890-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	invisiblethingslab.com; h=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=1770955352; x=1771041752; bh=LqrcbKpEE6
	zHzzKRIki+3SO+v23akbpECGlbHWTncSE=; b=Zt7zEccvyORKA5Ene7AUUEw9EM
	SHRmUp5ZAwdv31WEUbauWpLL6GhQPq8VCdkQUNXoXxDOPnknM694LMPoorIKgqXw
	U7bngfx7Hjt9gQIvNYkqcPs1vUhuOh0kFTZp/QQ5k37XKq9wI84itXiasxOuNiab
	sxqUpScthYoBjRzatlxyqWSvrxIxoXIyeZL/62ZEI3L5g9+awBMntRclofAsk79X
	1q2GNT6czidxyu+UpckXmwbBuhqbYz7pC7siwrLHMrZhSpF1gnZ5C2atRu6zCEKK
	bs+Hx0DfX+XjLO7RMjmBcGO2iryiyc8gGdhxd4ukM2KFds2FHkSlr2CBUr5g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=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=1770955352; x=
	1771041752; bh=LqrcbKpEE6zHzzKRIki+3SO+v23akbpECGlbHWTncSE=; b=o
	yMG81pSfNlINJFaeQrZ2rpZ7zv2nJYbU6eoMaRgWEPf1yQvZHTIkCoDZBx4O7Sbp
	QLES6BVlvMl90CHVk/k1CRTRhz88emru9oJpsE1HmdN1+ZCz1PochOMQ7T5AUsTJ
	oo3rf37MQzTDZmPEFEbABYJiY4KZ7jJ/WpsyCcFZsEryR1HfauhptZgarnmcBOkI
	vmb2pXku3nrbyZej1MuHZg7EaEC+lIfRZAJQrpmv9ze3xCWCJE4rSrQsvvEky5Fj
	+p8C0x8hSY9GUvPXjMrctjRBoUbxW+G57S6PKk3b6b+gVhm9WZ2Xixj5UCYtvHmu
	jkh+yMj9VfOmEE7iP+x8A==
X-ME-Sender: <xms:WKKOaYA5D7iihkvr5BkzDa1iZjGugIF-UVsHfoh0rxBKCmqPRdrwZw>
    <xme:WKKOaReQxLRqdjxz6fdlaIkb6-LrBZFUfUCkvQUQggldtD6blGCFbDnJ45iG_HQaN
    gm6yH6JHDCw69wvyP7K8H4nwYr2hZB8gv_Lw-fXwOE_foi0Vg>
X-ME-Received: <xmr:WKKOaRNvfNS7etPT1mz2mN6DED9Ce_8OgHp0f4dn8DLqoFppM38Dfri-euN-LKMzhQkRR-2I7NeZ79PG196ilQiazv1yGJl91cQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdejvdegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucenucfjughrpeffhffvuffkgggtugesghdtreertddtje
    enucfhrhhomhepofgrrhgvkhcuofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceo
    mhgrrhhmrghrvghksehinhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecugg
    ftrfgrthhtvghrnhepteduteeiudevkeegvefhtdekhfelgffhhedukedvvdeuuddvjeeh
    vddtieehudfgnecuffhomhgrihhnpehgihhthhhusgdrtghomhenucevlhhushhtvghruf
    hiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhi
    shhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopedupdhmohguvg
    epshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghn
    phhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:WKKOaT7ev4y00zy2VSaqiOCXPqYUif_aVBeEUTShStzAaHMNKFt1Wg>
    <xmx:WKKOadJJqpW0159k_nZ88xTDPSd0JXH6bVnQAaYDAeMzW6Qre6c1jg>
    <xmx:WKKOaVcHF6PHuKE-smiz_8Rm1lYODyStkSkngPTXZklrJj4XwBO7YA>
    <xmx:WKKOaYdTmWacaFycbQeDQB8_rX_0ZkheNMXbEJ2w6-8a2he_ucoeXA>
    <xmx:WKKOaSyzGI_LbFXrYOJeGSOOOaovF196MFOAsNKYR3Wr5PX8qgjAq91F>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 13 Feb 2026 05:02:30 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Cannot boot PVH dom0 with big initrd
Message-ID: <aY6iVr990vWeO2p5@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="rAuO+Q0Dl2rqoauD"
Content-Disposition: inline


--rAuO+Q0Dl2rqoauD
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 13 Feb 2026 05:02:30 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel <xen-devel@lists.xenproject.org>
Subject: Cannot boot PVH dom0 with big initrd

Hi,

After fixing the xhci crash, I hit another issue - booting with 236MB
initrd doesn't work, I get:

    (XEN) [    3.151856] *** Building a PVH Dom0 ***
    ...
    (XEN) [    3.593940] Unable to allocate memory with order 0!
    (XEN) [    3.597110] Failed to setup Dom0 physical memory map
    (XEN) [    3.599884]=20
    (XEN) [    3.602482] ****************************************
    (XEN) [    3.605272] Panic on CPU 0:
    (XEN) [    3.607928] Could not construct d0
    (XEN) [    3.610692] ****************************************
    (XEN) [    3.613463]=20
    (XEN) [    3.616035] Reboot in five seconds...
    (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.

Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f289978175=
5762f565

If I skip initrd, then it boots just fine (but dom0 is not happy about
that). 164MB initrd failed too, but 13MB started ok.
Just in case, I tried skipping XHCI console, but it didn't change
anything.

Host has 16GB of memory, and there is no dom0_mem=3D parameter. Xen is
started from GRUB, using MB2+EFI.

When it works (12MB initrd), I get the following info:

    (XEN) [    4.123843] Dom0 memory allocation stats:
    (XEN) [    4.126636] order  0 allocations: 4
    (XEN) [    4.129278] order  1 allocations: 3
    (XEN) [    4.132027] order  2 allocations: 4
    (XEN) [    4.134776] order  3 allocations: 3
    (XEN) [    4.137527] order  4 allocations: 3
    (XEN) [    4.140252] order  5 allocations: 3
    (XEN) [    4.142966] order  7 allocations: 2
    (XEN) [    4.145663] order  8 allocations: 3
    (XEN) [    4.148358] order  9 allocations: 3
    (XEN) [    4.151035] order 10 allocations: 4
    (XEN) [    4.153709] order 11 allocations: 7
    (XEN) [    4.156277] order 12 allocations: 9
    (XEN) [    4.158940] order 13 allocations: 6
    (XEN) [    4.161604] order 14 allocations: 6
    (XEN) [    4.164251] order 15 allocations: 7
    (XEN) [    4.166892] order 16 allocations: 6
    (XEN) [    4.169521] order 17 allocations: 4
    (XEN) [    4.172048] order 18 allocations: 10
    (XEN) [    4.994309] ELF: phdr: paddr=3D0x200000 memsz=3D0x1ff3928
    (XEN) [    4.997011] ELF: phdr: paddr=3D0x2200000 memsz=3D0x1c00000
    (XEN) [    4.999686] ELF: memory: 0x200000 -> 0x3e00000
    (XEN) [    5.002404] ELF: note: PHYS32_RELOC align: 0x200000 min: 0x200=
000 max: 0x3fffffff
    (XEN) [    5.005451] ELF: note: PHYS32_ENTRY =3D 0x16a2ca0
    (XEN) [    5.008519] ELF: note: GUEST_OS =3D "linux"
    (XEN) [    5.011562] ELF: note: GUEST_VERSION =3D "2.6"
    (XEN) [    5.014634] ELF: note: XEN_VERSION =3D "xen-3.0"
    (XEN) [    5.017712] ELF: note: VIRT_BASE =3D 0xffffffff80000000
    (XEN) [    5.020795] ELF: note: INIT_P2M =3D 0x8000000000
    (XEN) [    5.023856] ELF: note: ENTRY =3D 0xffffffff82d3c160
    (XEN) [    5.026924] ELF: note: FEATURES =3D "!writable_page_tables"
    (XEN) [    5.029976] ELF: note: PAE_MODE =3D "yes"
    (XEN) [    5.032882] ELF: note: L1_MFN_VALID
    (XEN) [    5.035516] ELF: note: MOD_START_PFN =3D 0x1
    (XEN) [    5.038442] ELF: note: PADDR_OFFSET =3D 0
    (XEN) [    5.041250] ELF: note: SUPPORTED_FEATURES =3D 0x8801
    (XEN) [    5.044169] ELF: note: LOADER =3D "generic"
    (XEN) [    5.047048] ELF: note: SUSPEND_CANCEL =3D 0x1
    (XEN) [    5.049931] ELF: Found PVH image
    (XEN) [    5.052712] ELF: addresses:
    (XEN) [    5.055090]     virt_base        =3D 0x0
    (XEN) [    5.057552]     elf_paddr_offset =3D 0x0
    (XEN) [    5.060007]     virt_offset      =3D 0x0
    (XEN) [    5.062476]     virt_kstart      =3D 0x200000
    (XEN) [    5.064924]     virt_kend        =3D 0x3e00000
    (XEN) [    5.067380]     virt_entry       =3D 0x16a2ca0
    (XEN) [    5.069841]     p2m_base         =3D 0x8000000000
    (XEN) [    5.072319] ELF: phdr 0 at 0x200000 -> 0x21f3928
    (XEN) [    5.080076] ELF: phdr 1 at 0x2200000 -> 0x3e00000
    (XEN) [    5.090182] Dom0 memory map:
    (XEN) [    5.092531]  [0000000000000000, 000000000009efff] (usable)
    (XEN) [    5.095086]  [000000000009f000, 00000000000fffff] (reserved)
    (XEN) [    5.097625]  [0000000000100000, 000000005471afff] (usable)
    (XEN) [    5.100156]  [000000005471b000, 000000005475bfff] (reserved)
    (XEN) [    5.102704]  [000000005475c000, 0000000063c2dfff] (usable)
    (XEN) [    5.105259]  [0000000063c2e000, 000000006d17afff] (reserved)
    (XEN) [    5.107853]  [000000006d17b000, 000000006d22bfff] (ACPI data)
    (XEN) [    5.110459]  [000000006d22c000, 000000006d2ebfff] (ACPI NVS)
    (XEN) [    5.113082]  [000000006d2ec000, 000000006fffefff] (reserved)
    (XEN) [    5.115726]  [000000006ffff000, 000000006ffffdcb] (usable)
    (XEN) [    5.118388]  [000000006ffffdcc, 000000006ffffe97] (ACPI data)
    (XEN) [    5.121080]  [0000000070000000, 00000000807fffff] (reserved)
    (XEN) [    5.123776]  [00000000c0000000, 00000000cfffffff] (reserved)
    (XEN) [    5.126498]  [00000000fe000000, 00000000fe010fff] (reserved)
    (XEN) [    5.129244]  [00000000fec00000, 00000000fec00fff] (reserved)
    (XEN) [    5.132001]  [00000000fed00000, 00000000fed00fff] (reserved)
    (XEN) [    5.134797]  [00000000fed20000, 00000000fed7ffff] (reserved)
    (XEN) [    5.137619]  [00000000fee00000, 00000000fee00fff] (reserved)
    (XEN) [    5.140436]  [00000000ff000000, 00000001023fffff] (reserved)
    (XEN) [    5.143271]  [0000000102400000, 0000000468b34fff] (usable)
    (XEN) [    5.146131]  [0000000468b35000, 000000047f7fffff] (unusable)
    (XEN) [    5.149015] Initial low memory virq threshold set at 0x4000 pa=
ges.
    (XEN) [    5.151852] Scrubbing Free RAM in background
    (XEN) [    5.154667] Std. Loglevel: All
    (XEN) [    5.157465] Guest Loglevel: All
    (XEN) [    5.160250] Xen is relinquishing VGA console.
    (XEN) [    5.166762] *** Serial input to DOM0 (type 'CTRL-a' three time=
s to switch input)
    (XEN) [    5.167550] Re-running stub recovery selftests...
    (XEN) [    5.167692] Fixup #UD[0000]: ffff82d07fffe044 [ffff82d07fffe04=
4] -> ffff82d0403b8753
    (XEN) [    5.167914] Fixup #GP[0000]: ffff82d07fffe045 [ffff82d07fffe04=
5] -> ffff82d0403b8753
    (XEN) [    5.168139] Fixup #SS[0000]: ffff82d07fffe044 [ffff82d07fffe04=
4] -> ffff82d0403b8753
    (XEN) [    5.168359] Fixup #BP[0000]: ffff82d07fffe045 [ffff82d07fffe04=
5] -> ffff82d0403b8753
    (XEN) [    5.168662] Freed 720kB init memory
    (XEN) [    6.884758] d0v0: upcall vector f3

Interestingly, this appear to have worked on Xen 4.19.3.

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

--rAuO+Q0Dl2rqoauD
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmOolYACgkQ24/THMrX
1yxVqwf9GfdG0bARTV/AM84KSWr2FdWr+RIUpTDW5FUr3OgWnwPokbO+StETmk+6
8rreqys8ODYbXaS+IWsJWosin7mA5B1tJcU4I7lvT4pAmbuT7nR/wPYmsBl0PTCB
dYSeI7b0OmXl/1XR0gTW5MPBLHSRmlLWHPdOR+KCPbxb20BWldSPlOqoIwfBT0aL
+3VwojIi1WBNNgiSKJ3x1REW/JAOuCwvtsC7rHmlHc4QaeuWhIv6/CN63q6fl+3o
I0dUfiR8w8F//6iyGFh1e9kT2kGrG53Pti0AGu9PTWJu1KKEiSoT40W2Ph7NOcqY
ImKublw9WKg/B4XfjxDjYpbZzZGN1A==
=+ykz
-----END PGP SIGNATURE-----

--rAuO+Q0Dl2rqoauD--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 05:32:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 05:32:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230211.1535752 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqlmY-0006K2-BP; Fri, 13 Feb 2026 05:31:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230211.1535752; Fri, 13 Feb 2026 05: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 1vqlmY-0006Jv-7w; Fri, 13 Feb 2026 05:31:58 +0000
Received: by outflank-mailman (input) for mailman id 1230211;
 Fri, 13 Feb 2026 05:31: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=Ps4n=AR=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vqlmW-0006Jp-Sb
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 05:31:57 +0000
Received: from mail-yx1-xb133.google.com (mail-yx1-xb133.google.com
 [2607:f8b0:4864:20::b133])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e066a7d-089d-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 06:31:54 +0100 (CET)
Received: by mail-yx1-xb133.google.com with SMTP id
 956f58d0204a3-64acd19e1dfso530995d50.0
 for <xen-devel@lists.xenproject.org>; Thu, 12 Feb 2026 21:31:54 -0800 (PST)
Received: from [10.138.34.110]
 (h69-131-216-128.cncrtn.broadband.dynamic.tds.net. [69.131.216.128])
 by smtp.gmail.com with ESMTPSA id
 956f58d0204a3-64afc83faf6sm6519460d50.5.2026.02.12.21.31.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 12 Feb 2026 21:31:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e066a7d-089d-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770960713; x=1771565513; 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=uArfyqzhc/KKRV25csCccUu8HzI84nr1vn7qLSRTzuU=;
        b=Zm3GPBL0w9aimqV/x1gzhGL855TDH3j0TdgjtqgDUtzX7t2lDsr57BBIbX5rGUdKCR
         hOyKy9l8Pyj7/7F+JVEAolJRGCqW+j+Go/b13JHaFqE1tjbPdo1VaXsqgKMN7PtfyCp4
         JdWIaEYXzWLu1FEjgf2N4rh5JX4oqH4MFTFLGRP+D78Kz2FF7WzOEMtG4BSOvQlQWcry
         sx3e6YauHf3hhbwyU34SEkbaXh9rVvTbqTuMFyWhCNHX+yBVBuKPPDOhQummAq/unTtP
         LwD+CvM62cz89+bjF5WWZKPCBZfnOoVBbZie+qMHtaZodZyEto42RfzBBEdI91k+CO6F
         iUfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770960713; x=1771565513;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=uArfyqzhc/KKRV25csCccUu8HzI84nr1vn7qLSRTzuU=;
        b=wtZzmhG18n5PnOTk6wL287tTuiDRFTOoHrGnNKHoWVbVdfIRJ+Rj+RQVMA4oG3wJh9
         FGiq8qFdvxCkqef9jsCgbYkNzSN8qL2r5CqRygVqy8DDEv52jezOfTSvLawHinaaO3l8
         KvXUqfS8dvrs8Eoypfoyh44oclzngH9rBw0dcH3ygxaQU+nmpxKZVgBVKZ+bkJ4SJAoj
         cDYG8QfgaIf3wTZDC13agFv4OeYcmDDaJMHa+ULEq3rxtr1lVeNK7u1zVRz8KsIQ55Fv
         dHo81Fzam/TFECetmcOq++FMpeCfh65RmjL/yfbaxM4+yVNcL5kyN3BZC5rGATm9haHx
         aHqw==
X-Gm-Message-State: AOJu0YwxXrUVa6B792GA/xiOttrWNveKZqtFESZO+R24qupBojhgOJ4e
	LVVHGPPYoz9YsW82aUGH+08uHalXd1sDAE23hp1zno4eliBOv1i9IP9F
X-Gm-Gg: AZuq6aKElji+/+gvOgQwxSwDrfeAfaul+FkRS9cYEJKWZU3eaHXBcbBGaHQc52GAXyl
	U0Dsimqh0mTuuD7CM7brOUMxgTgYWmKCz+qWsbpqN4KZIEDiNm5Z0Hvu3NvWL43PNHvgR8Fgvsa
	XsEOxiHMpvXVK4vjUUgqC/feW6iyEpKwVH6bUF2fTKF5s1gpWJ8JMw9uNVVK9Sbqn1dCDck/d6v
	me/QGIX9dbwYTr1uBqyu13CyhxBxAb6kr8kfONcGSeyk59b6K3tx5WwIPhsxff8vU7NSN+vKdID
	dybg+hH/K2focxLDsj5ZNue2XFfRhmKdoL2i6a6NBnGhTv5wvTD0N57CVzhDX3Dhpgpgv85jZrL
	wMR5SMYbthCeMy4VdSfzZmZ9wLWk158UCpUYMTSeA8Q6FXPezq+zPhAlTeInNt89PzVk5hpdK4x
	25JVwnq1+pTrOFoKkIeHd8x7h6jtzT4VpuvG2HBQkioHJr9P8dvfs/dBIo/ynYzyZ1CI1Zpth9l
	jYWcO8OPtB8tF8pwa9fKR6qdAks9AB2KcHk66QiGw==
X-Received: by 2002:a05:690e:24d1:b0:64a:efa9:8e35 with SMTP id 956f58d0204a3-64c19b2effdmr350507d50.45.1770960712986;
        Thu, 12 Feb 2026 21:31:52 -0800 (PST)
Message-ID: <a41a15ca-b26e-482a-9084-fc61645fb24e@gmail.com>
Date: Fri, 13 Feb 2026 00:31:47 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver + Xen
 4.19
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, intel-xe@lists.freedesktop.org
References: <aYtznP_tT6xNPwf-@mail-itl> <aY3ttvtxGCPTNgsj@Mac.lan>
 <aY58-gyarcVoBS2a@mail-itl>
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: <aY58-gyarcVoBS2a@mail-itl>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------jOg7GeT3X3YVR5VOQBiQ2OhK"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------jOg7GeT3X3YVR5VOQBiQ2OhK
Content-Type: multipart/mixed; boundary="------------Y0BYarGPpLAyvgRCH0CQV6AR";
 protected-headers="v1"
Message-ID: <a41a15ca-b26e-482a-9084-fc61645fb24e@gmail.com>
Date: Fri, 13 Feb 2026 00:31:47 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver + Xen
 4.19
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>, intel-xe@lists.freedesktop.org
References: <aYtznP_tT6xNPwf-@mail-itl> <aY3ttvtxGCPTNgsj@Mac.lan>
 <aY58-gyarcVoBS2a@mail-itl>
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: <aY58-gyarcVoBS2a@mail-itl>
Autocrypt-Gossip: addr=marmarek@invisiblethingslab.com; keydata=
 xsBNBE5j9EwBCACbYHjxDrxFAY3n1x9KBFvjzkG1qFSTVBnH4vpD/5Na4sZq4uDDMUCjivrm
 MzbWYaivYj96BygdOiw7PWxYrhuW0b2WYOeGudZyApgFz42g458s78EciuhgfuWBlxr8dOEN
 /9ueVFHcvtZmDbHhMVPcQ0O7gwh0JmwkOsf7P7WAfYXsQlhO/EBRrNXR0Je+GEpYADhRktxX
 h1d3Iz+oKYuwHioLX8ovoAT4+peOuecWUSpUWebpDbTR5i7NRP3PIblB4KzWJa2kh/f3mx4v
 SRGnHn+BfX42xSe0X7Ktl4Xf+KNq9Wkcjk2CZP57hV2v4pO0ZUOXD7IhlZtnfNj67WjdABEB
 AAHNPU1hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSA8bWFybWFyZWtAaW52aXNpYmxldGhp
 bmdzbGFiLmNvbT7CwHoEEwEIACQCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AFAll+l7cC
 GQEACgkQ24/THMrX1yw6kAgAiKiUhzAPXZj5ndqiQDl8u8PUK34SupLzYNMJOCBw5Wh+CPHe
 XYlQUwfULWxmzjiWCzzWDx2X/ONsYdRGKDKMqG5srOSWe1IYXv00MEutGsK+m/hmC5mqi/97
 DVNZ1VtKj5WW79IsI0/7ueHsQYNNrXyOfZvKsRE8VIUJ0tNfLFDFlNpq9jONuF+GviMWxrA5
 FoVaGmjh63xC0fOQYqhP2v8dbYS4B6bO5NZKI2cTHb9Li2iY0e7wIoNgvqgtR3Iv2U2Ry0yL
 D3mNQhwyxcWChexlymjfqLEZwKqaIOo57HOpt7OA+bMg6MvkdUTjNWf2GE6fqCcALjcToJ3L
 NDc1KM7ATQROY/RMAQgAtRWgUZ5mOy+c/qzmiVnxqDkiOJjmnIh3Pn+OqCtjcrTyPI9eVc06
 uH30Jkco0soLiG/UgwVw4XwBlm95j9n6TSUms4mPBh1YiR1hBjsjYwn8zp/Ue9xWk1N6E14H
 aj55GxmS2H3YIlOXfQLr0X3RHsmKixTOKyisrYlJu71FmettDFV7CgMXy1Bc1LbAE08asvAS
 ShHFdRiRRtkuVHvY/Ebq9L54kOxtlI6ahrflMcT0YCMON5oe4GgQRh3p2uy+d/LS2bgRcQST
 IebErj8x0lM271f97GvxV/ypHo7XVIDI5FX1u31Agzx3HQr035GHt4HV4/GVCz+V4xt4BonB
 tQARAQABwsBfBBgBAgAJBQJOY/RMAhsMAAoJENuP0xzK19cs5MgH/jWLXil2Ud4TdtWnBxc+
 2/QZZk2JCssc1PgWNzvH5wH7U+8lGSlUK8ZMOqrrF8C5rX0+xEn7deSrsZChIOnUFo8rhCZK
 y/mBV+FhkMj24FZZ0n8w3eF4KF2t68Pt+AvMjxQHwxAMdf3QftgQhD0qYkt/28eedUQ+jwz6
 kipc4qUQmqTEViQRPa3WAnKgNDQUDUwNruzthfGvHUjllf7zbPI8gkbARM0KlTkLikc9u+Ni
 VMbJTiGPB7YHyw2MIPq1n+mhSPAyXE6CVBnYkonQ7P3SLZssxC3PIarV+DTU68umQB3pfrfF
 7hMcAY5csWrK9/x/Zz4RUfgN6Q3HLrSp9UQ=

--------------Y0BYarGPpLAyvgRCH0CQV6AR
Content-Type: multipart/mixed; boundary="------------EdX0l0OYn0TsjuKSh4OjZtQf"

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

On 2/12/26 20:23, Marek Marczykowski-G=C3=B3recki wrote:
> On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monn=C3=A9 wrote:
>> On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-G=C3=B3re=
cki wrote:
>>> Hi,
>>>
>>> Recently I started testing compatibility with Intel Lunar Lake. This =
is
>>> the first one that uses "xe" instead of "i915" Linux driver for iGPU.=

>>> I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 runnin=
g
>>> Linux 6.17.9 in this test.
>>
>> Not sure it's going to help a lot, but does using a PVH dom0 make any
>> difference?
>=20
> Ok, now with the correct Xen version, it's better with PVH dom0. At
> least on the login screen and few applications (from both dom0 and domU=
)
> I don't see the glitches anymore. I can't do a full test, because PCI
> passthrough doesn't seem to work with PVH dom0 on Xen 4.19 - and I need=

> it to start most VMs.
>=20
> So, if the above test is representative, it's only about PV dom0.

This reminds me of a problem that I helped debug a while back,
and which also affected Qubes OS.  That one was due to some part
of Linux core MM clobbering the high bit of the PAT part of PTEs.
As a result, a PTE that should have referenced entry X in the PAT
wound up referencing entry (X & 3).

On native Linux, the bug was mostly harmless, which is why nobody
found it earlier.  However, on Xen PV, the different PAT caused memory
to be cached that should not be.  The resulting symptoms were very
similar to what Marek described, though a bit less dramatic.

Can you try removing the Qubes downstream patch that changes the PAT?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------EdX0l0OYn0TsjuKSh4OjZtQf
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-----

--------------EdX0l0OYn0TsjuKSh4OjZtQf--

--------------Y0BYarGPpLAyvgRCH0CQV6AR--

--------------jOg7GeT3X3YVR5VOQBiQ2OhK
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/sszaHOrMp8lMFAmmOt0MACgkQszaHOrMp
8lPpfQ/8CT72Z1uy8MKzDSpt61iI0D6+dw/rIjqXDCz3DrTI8QGxfbB5b3QLNGW1
o4wZiJXOrYB85zZrLmS+bjzBfCrXpinyIJLlK7HH3ppWeJtyhD02raRSQlVfH/Tf
OeVXFpKRSvKMpQht9vHTjvv1mMOcoP4tA5fzKKVWMiHtfczXJkmQhfZ6lPZ6lff3
cc+wokbMOwM7Bntsx5t4t7zIeLCB+9gleqgncAOy08tcK8LTVKuW1i/vx6M6KypA
+rGhSbaI+jocmqXXCBkNAeOOur5ryMDCqdrLhkxV3A4NDA7GNz7SjqzER8e+g9yr
R9Evxcb3JVpDUoKi1U/gIjvrLRXZ17AXj0cHroEOaFRAvGtDrU9umstBjqWXjoaV
irW8feGYTr72/XxQwuLToMiu4dpXG/SDFrYQYS/LbIO3X2OwcBVLintj5o0sX1Ry
rRlNpunRiWGger/zFQyMpfja8HLYvQuaAk6/hD/tHZqZFlM1avdOl/JbOmtzwXci
Fh9fuG4Yk2wf2U787JjS890b1T+PzIl+NnOMUZ1MXueoxnOWblcO+ws9twesIL0F
BC5o72FAHWQrlOieYWydK/Ec1kmDMJHFjN1BxPs6w1nbzSmUqh/lxNT/hyuKTTY6
UVE60RBFhfftpL/dZsq5QMjMOx/wp7dFQ5FOx4zpJSBkwzpcXks=
=lSgB
-----END PGP SIGNATURE-----

--------------jOg7GeT3X3YVR5VOQBiQ2OhK--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 07:40:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 07:40:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230253.1535762 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqnmm-0004se-4I; Fri, 13 Feb 2026 07:40:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230253.1535762; Fri, 13 Feb 2026 07:40: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 1vqnmm-0004sX-0h; Fri, 13 Feb 2026 07:40:20 +0000
Received: by outflank-mailman (input) for mailman id 1230253;
 Fri, 13 Feb 2026 07:40: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=g1sG=AR=sony.com=shashank.mahadasyam@srs-se1.protection.inumbo.net>)
 id 1vqnmk-0004sR-OJ
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 07:40:18 +0000
Received: from jpms-ob02.noc.sony.co.jp (jpms-ob02.noc.sony.co.jp
 [2001:cf8:ace:41::5]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 368f5d6e-08af-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 08:40:09 +0100 (CET)
Received: from unknown (HELO jpmta-ob02.noc.sony.co.jp)
 ([IPv6:2001:cf8:0:6e7::7])
 by jpms-ob02.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 13 Feb 2026 16:40:03 +0900
Received: from unknown (HELO JPC00244420)
 ([IPv6:2001:cf8:1:573:0:dddd:6b3e:119e])
 by jpmta-ob02.noc.sony.co.jp with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 13 Feb 2026 16:40:03 +0900
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 368f5d6e-08af-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=sony.com; s=s1jp; t=1770968409; x=1802504409;
  h=date:from:to:cc:subject:message-id:references:
   mime-version:in-reply-to;
  bh=Pzfx5lLFbK5d4r8P3rsCdaD/raTj07tQWAB1fg3LiRQ=;
  b=m8oBftKTNKpoVopC53ILft1JMewZ008YyIHcBkiQr5WLrs0RLwllFRUw
   jXS847f/RSdw/jvD4L5xqmewkpP6riUiqtamPr2FOrvFBgUSU7vrR3YyL
   kmdMSDFsi6ztKlIdL34CkJ3203LqyiorcGGSeIITFyycoGH+flS4T2RfD
   DoJkpWZBpXLy2lKbydxWpGhNn1QXZP5mgaZWxAqFHq5i9jE8ORboeepIs
   7rTDzFKbdarphlrc1ODP1fd1AeW04aDRiwx+4V3WvZw8Os5RxKyWoQQHD
   /xoGycue3IM/9PZWY8i/C5095o8RFRRXEhM4klKD6qEjr47GpMrVWj5DJ
   Q==;
X-IronPort-AV: E=Sophos;i="6.21,288,1763391600"; 
   d="scan'208";a="581327796"
Date: Fri, 13 Feb 2026 16:39:59 +0900
From: Shashank Balaji <shashank.mahadasyam@sony.com>
To: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Jan Kiszka <jan.kiszka@siemens.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>, linux-kernel@vger.kernel.org,
	linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
	jailhouse-dev@googlegroups.com, kvm@vger.kernel.org,
	xen-devel@lists.xenproject.org, Rahul Bukte <rahul.bukte@sony.com>,
	Daniel Palmer <daniel.palmer@sony.com>,
	Tim Bird <tim.bird@sony.com>, Sohil Mehta <sohil.mehta@intel.com>
Subject: Re: [PATCH 3/3] x86/virt: rename x2apic_available to
 x2apic_without_ir_available
Message-ID: <aY7VTwfJDREcrwJy@JPC00244420>
References: <20260202-x2apic-fix-v1-0-71c8f488a88b@sony.com>
 <20260202-x2apic-fix-v1-3-71c8f488a88b@sony.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20260202-x2apic-fix-v1-3-71c8f488a88b@sony.com>

Hi x86 and virt folks,

I'd like some feedback on this patch. I realise that just updating the
name to x2apic_without_ir_available() with no indication in the code
suggesting that the hypervisor implementations may not be answering the
question "is x2apic availalble without IR?" is bad.

I suppose the options are:

1. Check seven hypervisor's x2apic_available() implementation to see if
the "x2apic_without_ir_available" semantic matches, and then do the
renaming

	Problem is, I don't know enough about the hypervisors to check
	the implementations. Some help from the virt folks would be
	great!

2. Add TODOs on the hypervisor implementations, hoping they'll be
audited in the future

	There's a chance the TODOs will just sit there rotting. It's
	ugly, even I don't like it

So how do we proceed?

On Mon, Feb 02, 2026 at 06:51:04PM +0900, Shashank Balaji wrote:
> No functional change.
> 
> x86_init.hyper.x2apic_available is used only in try_to_enable_x2apic to check if
> x2apic needs to be disabled if interrupt remapping support isn't present. But
> the name x2apic_available doesn't reflect that usage.
> 
> This is what x2apic_available is set to for various hypervisors:
> 
> 	acrn		boot_cpu_has(X86_FEATURE_X2APIC)
> 	mshyperv	boot_cpu_has(X86_FEATURE_X2APIC)
> 	xen		boot_cpu_has(X86_FEATURE_X2APIC) or false
> 	vmware		vmware_legacy_x2apic_available
> 	kvm		kvm_cpuid_base() != 0
> 	jailhouse	x2apic_enabled()
> 	bhyve		true
> 	default		false
> 
> Bare metal and vmware correctly check if x2apic is available without interrupt
> remapping. The rest of them check if x2apic is enabled/supported, and kvm just
> checks if the kernel is running on kvm. The other hypervisors may have to have
> their checks audited.
> 
> Also fix the backwards pr_info message printed on disabling x2apic because of
> lack of irq remapping support.
> 
> Compile tested with all the hypervisor guest support enabled.
> 
> Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
> Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
> Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
> ---
>  arch/x86/include/asm/x86_init.h |  4 ++--
>  arch/x86/kernel/apic/apic.c     |  4 ++--
>  arch/x86/kernel/cpu/acrn.c      |  2 +-
>  arch/x86/kernel/cpu/bhyve.c     |  2 +-
>  arch/x86/kernel/cpu/mshyperv.c  |  2 +-
>  arch/x86/kernel/cpu/vmware.c    |  2 +-
>  arch/x86/kernel/jailhouse.c     |  2 +-
>  arch/x86/kernel/kvm.c           |  2 +-
>  arch/x86/kernel/x86_init.c      | 12 ++++++------
>  arch/x86/xen/enlighten_hvm.c    |  4 ++--
>  10 files changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
> index 6c8a6ead84f6..b270d9eed755 100644
> --- a/arch/x86/include/asm/x86_init.h
> +++ b/arch/x86/include/asm/x86_init.h
> @@ -116,7 +116,7 @@ struct x86_init_pci {
>   * struct x86_hyper_init - x86 hypervisor init functions
>   * @init_platform:		platform setup
>   * @guest_late_init:		guest late init
> - * @x2apic_available:		X2APIC detection
> + * @x2apic_without_ir_available: is x2apic available without irq remap?
>   * @msi_ext_dest_id:		MSI supports 15-bit APIC IDs
>   * @init_mem_mapping:		setup early mappings during init_mem_mapping()
>   * @init_after_bootmem:		guest init after boot allocator is finished
> @@ -124,7 +124,7 @@ struct x86_init_pci {
>  struct x86_hyper_init {
>  	void (*init_platform)(void);
>  	void (*guest_late_init)(void);
> -	bool (*x2apic_available)(void);
> +	bool (*x2apic_without_ir_available)(void);
>  	bool (*msi_ext_dest_id)(void);
>  	void (*init_mem_mapping)(void);
>  	void (*init_after_bootmem)(void);
> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
> index cc64d61f82cf..8820b631f8a2 100644
> --- a/arch/x86/kernel/apic/apic.c
> +++ b/arch/x86/kernel/apic/apic.c
> @@ -1836,8 +1836,8 @@ static __init void try_to_enable_x2apic(int remap_mode)
>  		 * Using X2APIC without IR is not architecturally supported
>  		 * on bare metal but may be supported in guests.
>  		 */
> -		if (!x86_init.hyper.x2apic_available()) {
> -			pr_info("x2apic: IRQ remapping doesn't support X2APIC mode\n");
> +		if (!x86_init.hyper.x2apic_without_ir_available()) {
> +			pr_info("x2apic: Not supported without IRQ remapping\n");
>  			x2apic_disable();
>  			return;
>  		}
> diff --git a/arch/x86/kernel/cpu/acrn.c b/arch/x86/kernel/cpu/acrn.c
> index 2c5b51aad91a..9204b98d4786 100644
> --- a/arch/x86/kernel/cpu/acrn.c
> +++ b/arch/x86/kernel/cpu/acrn.c
> @@ -77,5 +77,5 @@ const __initconst struct hypervisor_x86 x86_hyper_acrn = {
>  	.detect                 = acrn_detect,
>  	.type			= X86_HYPER_ACRN,
>  	.init.init_platform     = acrn_init_platform,
> -	.init.x2apic_available  = acrn_x2apic_available,
> +	.init.x2apic_without_ir_available = acrn_x2apic_available,
>  };
> diff --git a/arch/x86/kernel/cpu/bhyve.c b/arch/x86/kernel/cpu/bhyve.c
> index f1a8ca3dd1ed..91a90a7459ce 100644
> --- a/arch/x86/kernel/cpu/bhyve.c
> +++ b/arch/x86/kernel/cpu/bhyve.c
> @@ -61,6 +61,6 @@ const struct hypervisor_x86 x86_hyper_bhyve __refconst = {
>  	.name			= "Bhyve",
>  	.detect			= bhyve_detect,
>  	.init.init_platform	= x86_init_noop,
> -	.init.x2apic_available	= bhyve_x2apic_available,
> +	.init.x2apic_without_ir_available = bhyve_x2apic_available,
>  	.init.msi_ext_dest_id	= bhyve_ext_dest_id,
>  };
> diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
> index 579fb2c64cfd..61458855094a 100644
> --- a/arch/x86/kernel/cpu/mshyperv.c
> +++ b/arch/x86/kernel/cpu/mshyperv.c
> @@ -760,7 +760,7 @@ const __initconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
>  	.name			= "Microsoft Hyper-V",
>  	.detect			= ms_hyperv_platform,
>  	.type			= X86_HYPER_MS_HYPERV,
> -	.init.x2apic_available	= ms_hyperv_x2apic_available,
> +	.init.x2apic_without_ir_available = ms_hyperv_x2apic_available,
>  	.init.msi_ext_dest_id	= ms_hyperv_msi_ext_dest_id,
>  	.init.init_platform	= ms_hyperv_init_platform,
>  	.init.guest_late_init	= ms_hyperv_late_init,
> diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
> index cb3f900c46fc..46d325818797 100644
> --- a/arch/x86/kernel/cpu/vmware.c
> +++ b/arch/x86/kernel/cpu/vmware.c
> @@ -585,7 +585,7 @@ const __initconst struct hypervisor_x86 x86_hyper_vmware = {
>  	.detect				= vmware_platform,
>  	.type				= X86_HYPER_VMWARE,
>  	.init.init_platform		= vmware_platform_setup,
> -	.init.x2apic_available		= vmware_legacy_x2apic_available,
> +	.init.x2apic_without_ir_available = vmware_legacy_x2apic_available,
>  #ifdef CONFIG_AMD_MEM_ENCRYPT
>  	.runtime.sev_es_hcall_prepare	= vmware_sev_es_hcall_prepare,
>  	.runtime.sev_es_hcall_finish	= vmware_sev_es_hcall_finish,
> diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
> index 9e9a591a5fec..84a0bbe15989 100644
> --- a/arch/x86/kernel/jailhouse.c
> +++ b/arch/x86/kernel/jailhouse.c
> @@ -291,6 +291,6 @@ const struct hypervisor_x86 x86_hyper_jailhouse __refconst = {
>  	.name			= "Jailhouse",
>  	.detect			= jailhouse_detect,
>  	.init.init_platform	= jailhouse_init_platform,
> -	.init.x2apic_available	= jailhouse_x2apic_available,
> +	.init.x2apic_without_ir_available = jailhouse_x2apic_available,
>  	.ignore_nopv		= true,
>  };
> diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
> index 37dc8465e0f5..709eba87d58e 100644
> --- a/arch/x86/kernel/kvm.c
> +++ b/arch/x86/kernel/kvm.c
> @@ -1042,7 +1042,7 @@ const __initconst struct hypervisor_x86 x86_hyper_kvm = {
>  	.detect				= kvm_detect,
>  	.type				= X86_HYPER_KVM,
>  	.init.guest_late_init		= kvm_guest_init,
> -	.init.x2apic_available		= kvm_para_available,
> +	.init.x2apic_without_ir_available = kvm_para_available,
>  	.init.msi_ext_dest_id		= kvm_msi_ext_dest_id,
>  	.init.init_platform		= kvm_init_platform,
>  #if defined(CONFIG_AMD_MEM_ENCRYPT)
> diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
> index ebefb77c37bb..9ddf8c901ac6 100644
> --- a/arch/x86/kernel/x86_init.c
> +++ b/arch/x86/kernel/x86_init.c
> @@ -112,12 +112,12 @@ struct x86_init_ops x86_init __initdata = {
>  	},
>  
>  	.hyper = {
> -		.init_platform		= x86_init_noop,
> -		.guest_late_init	= x86_init_noop,
> -		.x2apic_available	= bool_x86_init_noop,
> -		.msi_ext_dest_id	= bool_x86_init_noop,
> -		.init_mem_mapping	= x86_init_noop,
> -		.init_after_bootmem	= x86_init_noop,
> +		.init_platform			= x86_init_noop,
> +		.guest_late_init		= x86_init_noop,
> +		.x2apic_without_ir_available	= bool_x86_init_noop,
> +		.msi_ext_dest_id		= bool_x86_init_noop,
> +		.init_mem_mapping		= x86_init_noop,
> +		.init_after_bootmem		= x86_init_noop,
>  	},
>  
>  	.acpi = {
> diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
> index fe57ff85d004..42f3d21f313d 100644
> --- a/arch/x86/xen/enlighten_hvm.c
> +++ b/arch/x86/xen/enlighten_hvm.c
> @@ -311,7 +311,7 @@ static uint32_t __init xen_platform_hvm(void)
>  		 * detect PVH and panic there.
>  		 */
>  		h->init_platform = x86_init_noop;
> -		h->x2apic_available = bool_x86_init_noop;
> +		h->x2apic_without_ir_available = bool_x86_init_noop;
>  		h->init_mem_mapping = x86_init_noop;
>  		h->init_after_bootmem = x86_init_noop;
>  		h->guest_late_init = xen_hvm_guest_late_init;
> @@ -325,7 +325,7 @@ struct hypervisor_x86 x86_hyper_xen_hvm __initdata = {
>  	.detect                 = xen_platform_hvm,
>  	.type			= X86_HYPER_XEN_HVM,
>  	.init.init_platform     = xen_hvm_guest_init,
> -	.init.x2apic_available  = xen_x2apic_available,
> +	.init.x2apic_without_ir_available = xen_x2apic_available,
>  	.init.init_mem_mapping	= xen_hvm_init_mem_mapping,
>  	.init.guest_late_init	= xen_hvm_guest_late_init,
>  	.init.msi_ext_dest_id   = msi_ext_dest_id,
> 
> -- 
> 2.43.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 07:54:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 07:54:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230271.1535772 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqo0k-0006cw-7g; Fri, 13 Feb 2026 07:54:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230271.1535772; Fri, 13 Feb 2026 07: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 1vqo0k-0006cp-4t; Fri, 13 Feb 2026 07:54:46 +0000
Received: by outflank-mailman (input) for mailman id 1230271;
 Fri, 13 Feb 2026 07:54: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqo0i-0006ce-5e
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 07:54:44 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41130375-08b1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 08:54:43 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB5902.namprd03.prod.outlook.com (2603:10b6:a03:2da::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 13 Feb
 2026 07:54:38 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 07:54: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: 41130375-08b1-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=tgCOZEXromjSHqkiwYWU5FFVmtiFaOQ88rkWGzo1/5G+81A6Ml5In6Y1mkP1fl4K3UcpUa4WAHP+4m+KBRae38ACFoQf2wta8k0B//HLVEoc6zILoqiULVHCBKgcXhiIQly79/+tGQXuf+vJm3lM2CM5l3MK7veBzpon147gD+D0XB6VTV8/B6t5qbcp4r9vTEEQY9HERK3raSHSzVUDpM9DxbXga3ZJBgSiVGi6m3Ml4bSvOMLiUxIZDTLqDuCnWBeSz5zj7dIU2d6uVtPKlgHOKXFQdPDPDo+pHB81T9YUuoROiuqDuS6y4GJMiWah+GY+pJ+deY1Th/3ubgqZ3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DCKdz/pDlJYVq2CMS0QXX1zGEFRtLJeSi49IgpAHzZs=;
 b=sjyA2kiolcbDl1w6QbrmlFNZZym3fG/x9q22hfpTlVN1N0RFKscg49VZCuwPFSQJlv5HebWU831OFAFLVr96k5QZ9VwTtdhAL/69gXPRUtHBZfI+HgacCNR9P6NcYya1CUkRHfb3ktWmd/hQx4kUWtw/mboIuL2iG6+v41FsIsRA7JcXYeT/El2+V8zaWlSDYnzk1siUJnhZJjQd6d4SfaJUQu8pG4EeuVB6GVDg3r7H2nkkMl2R8oAP+eBIZR8Odur6JoO5UYe2CcHA8X0+TMOU23oYuLv8SJlAGm/bQWRiUwLzb73NlEBFvY3S3vkBWsjjfRs6CgWxgG8bXnalDg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DCKdz/pDlJYVq2CMS0QXX1zGEFRtLJeSi49IgpAHzZs=;
 b=NVVbJFrmaG5SDVGBh+MJ/TfDIt5J+2rQaeCveMt0h335MKv0Dj5La0x+zXnPi1c5d1OPBEckObjRVxGim/95xJ3mS8FaHzcGcSJzEzBHM5IaIroak/szwfQT2G5XlDbjLjgExPgJRSr7fnpdgt/JvLjGklCdpUYfHMlQRR2AjC8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 08:54:34 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: [PATCH v2] x86/shutdown: change default reboot method preference
Message-ID: <aY7Yukpa3Vqf9dF2@Mac.lan>
References: <20230915074347.94712-1-roger.pau@citrix.com>
 <aY5y3GdZyd4j213N@mail-itl>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aY5y3GdZyd4j213N@mail-itl>
X-ClientProxiedBy: MR1P264CA0038.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::32) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB5902:EE_
X-MS-Office365-Filtering-Correlation-Id: 1558ad22-dc0a-4037-a8c9-08de6ad52312
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?c0RNMHd5WGFrZVFFUE01YzB2ZFk3Q2ZDN2xBUThTUkttNGpCRlBkazVvTUFS?=
 =?utf-8?B?S0FWdW11SFJNeE9ncUN1QzZxT1k4UWxNQ2paZ25MSUR4bTVicUpxWUtxZUtR?=
 =?utf-8?B?S1lRU00zUG1tRzA5QUR6QXVtUW51WURPZnRkcFlkbUxWcjZVK28yUHZMUDFz?=
 =?utf-8?B?ZXh2QVBWZkZjTk5laURJOTRFaEtXVitOaktYc2VETlJRWjhyR0JOSjBBMERJ?=
 =?utf-8?B?eXUrd0NpcEM2OTYzbm5NUmlrMVNMaFhqdEwxZTA1WTVPb2RtM21xUmo4S0Fm?=
 =?utf-8?B?YzFKUFdGRXdEQ3daTmxQWThJYkpUNkVwd0hUNUJBTmw5RTlKbVJaSU5Gdlpt?=
 =?utf-8?B?NUVGRkh1KyswRVR4b1BwNEVXWndLeDBxT3E5aW1HY1dUODNpR2NUc1lPZjJK?=
 =?utf-8?B?UGZ4WWc1U1RjWnVBZlo2M095MlRVZ2swVnlEelY1bEs2eDZGbmRxQUV5K00z?=
 =?utf-8?B?a1hSODZOTXhYcll1RjJQZ1NjRG1qNnpzMUV1RnpUTFo0OHJtTG0zdGxMK3NG?=
 =?utf-8?B?S3J1TjJ3MktJaWRBYUJlT2RoYjcvOXM3RXpDTUlaQWZWVkhxcTVhczJ5QWZx?=
 =?utf-8?B?aURwcG5KSGRXeGl0MithTXc2a2hQZ0l2UlhrZC9PWHVCQ2k3eTZLOThSSWdO?=
 =?utf-8?B?QTlKMjZ3REVTNXF0Z2xJOE1rVTVwbm43bkR5WTZhR2NiWnBiUHR6QmorK0Nz?=
 =?utf-8?B?Q3JQTkEvcnZLL0VEczd0MmwxSUZPTmpHaEtGdktpOU9zNHRYQ3ExRVowUVF1?=
 =?utf-8?B?dFJMandQM1pZbkdPMTkxVVlEV1FoRHp6b2VwR2lBUkV6c1BIR0lJTDFMMis3?=
 =?utf-8?B?MTBBUVhEeDRRRXhlcTc2ck5UUFpsRXBBb2FRTE5GRUs3R2dOY00zVHR1TzBv?=
 =?utf-8?B?ek81NDRONERHbTFqQ1NsMktWT0hsNWZVeDdPeU54L0dORmt6YnJGKzkrSzlF?=
 =?utf-8?B?Mmljbis3bFBVWDA4djNrbXBnT2dQSStaRmpOTFYxbzY4a0JWSVlxRnhWaVdW?=
 =?utf-8?B?R0YzVmRZTGRzVGNtTjNiOEcxZWVseFBxTnpLMWViREszdWFtbEkyK2piZ1c3?=
 =?utf-8?B?cVBYUGdlZ2dnU0huR3JMZ29sNjUwNjFVd1N2WGxKVHFIMUdRaEtpUDRuRVFs?=
 =?utf-8?B?emUzcWNaUGFFc1ZQdlpSNXEyaExPdEx1TURkMkl3bUxhVDlmQVIzbUZYU3Jj?=
 =?utf-8?B?QnlYOHJ4WUdmVzB2bUJHMkJqSHBTZkkyQWIyRHJycGxvazkrcXB3elNnN2tq?=
 =?utf-8?B?ZVpycGN5TjVLS0ZpekxodEJweWJtVTRkMVVacTdwU2pyNEhQTWw4R2szTzFH?=
 =?utf-8?B?bkM1anlpZ2hySTJCVjNTVXk4ZmRYRHJvcUZxYUltTUIyRFgvN2ZYT01yeGpo?=
 =?utf-8?B?bVFMUEdJcHJ0UFdMbjhtdjdKZmFZWSt1RUhOMFEwLytCSVNZMnh4ZXp2alFN?=
 =?utf-8?B?R0ZSd1FJNEdsVjBncytKcGUzendTQ2dYMUF2K0FlTDJGalVDclNyTDFVVFJC?=
 =?utf-8?B?UDVrcEhJUk5xdlBsSFNYMHdVaGFReVhJRVlxNUFNaHRURWl4SzRxS1ZLK1Uv?=
 =?utf-8?B?YllURFdiS3ozZitNOGVXMzZuSGlCTm5pRnZzT3RsVE5BWEFpN2RqSk1vOTA3?=
 =?utf-8?B?VnBOTnJGdzdoNU5TamVrczhBQnIwcjhtMW9FeGJzaDN5R3lOSXd4QUVHNWVK?=
 =?utf-8?B?SmdxemtXV2EvUjArazBPM0pjcHMrUzUyVXRNSHRwODFVeUZsWVhVdk0zWjgr?=
 =?utf-8?B?Nytic2tSTDZUSnk4NjlwejltZDRZOWVZUkR3WW9HWE9LMExzNnB0emM2dzhs?=
 =?utf-8?B?bEFJZE5aNmdQdXpnbXR4M1M2eXJJT1dlVFR3VFV1SVp3UTF3Tm9abEw1TFBk?=
 =?utf-8?B?blhuak9uYWdtaHNLNXpPSkhpSEpPYW5xUTZvUWZWUWRNUnVKN2t5ekFMZ21D?=
 =?utf-8?B?SjJ2eFJXVi9rK25PVGRodzJKcHdwTzFQSENLeG9GNDJpNXNCeitqQ2lGd2lp?=
 =?utf-8?B?VVRPSUZHb2VhNm1EcFhkZnFrMGtDdlF6eCsrR3QyTkRadjI0TkludEM3UnQ1?=
 =?utf-8?B?N0dTbGJwOWh2cWM3NnVEQ3BDeXd4REhoQWxBckxqYzFCblpNRkFkK0hxWlo4?=
 =?utf-8?Q?xGw8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?VGZsOFdsNElpNXpWQ3RxcGpGeHF4V1ZJc0JJYlp3S2k4RjJSeTdoZTZDSTVW?=
 =?utf-8?B?VTJYWnpkTkVCcTYzamZCb2YwVnFrUTVWOWs0cjhSRGx6NUZkZE9FYllQU0xj?=
 =?utf-8?B?cUtlMHZXeFRZSzdpVHkzVUdGN0U2UktzTkRKZHp2WnBUTUVkQWQ2ekovK3NN?=
 =?utf-8?B?dDFFaWMrV3R6OUpQNlFsL0Q1YkcybHlYUERBZERCWXF3NHV3TTM4VW5QY2xW?=
 =?utf-8?B?WkdmcGZsY29QVWRLczRYL0RtMUpTQ3VqbHpWVHU3MStJNndMMTNjeEg1T2hE?=
 =?utf-8?B?ZUJGeUR6Z090eCtYdG5aVlEwd25JU0tiN1M3UVBDbUZrRm1nczFCNGNZRVBy?=
 =?utf-8?B?OXkwc0ExWmVVV1ZXQUgrbVNRb3hqVDFvcWtyOFRHTjJESGZVUXhIR1JvN1dB?=
 =?utf-8?B?cWlWdlJZdDEwK04wY040Wm1nVjQwaVNiUnBUWHNGUGJoSVhQNjNUOStKeisv?=
 =?utf-8?B?YlBXVGU2RXRoUFlWUVVZU2lGN1BZZ1AvUmZQTTh1UTVsdjRlemhtaG9FbGYv?=
 =?utf-8?B?SnZqRE5DUk9LMmt2NjRBZWJkbkNrc1hRZFZNWmxCTlhka0FQY0FDMDZwQWt2?=
 =?utf-8?B?eGNTQ1RhS0xEUnlrclFXK0J6Rnp5SDlKeVA1dmpLSVlTTXRQdnM2WnV1UWU4?=
 =?utf-8?B?cEJ2RjgrQWZGT1luTk5kTEY0V1RmYmN6L1R6cnU4cjNLWjZxK2sxU2FjZ0Qw?=
 =?utf-8?B?M285emdRaGx0UUlxc1Jqd3JrdHJpSlVsMmdlRTl4NjkvOEVNTlRSdFJhVUdB?=
 =?utf-8?B?SzZPMHpnZzBpTVlDeGQ3ck5JYllwVFdTUS81U2lyQUVDNnZmRDN3KzdWVDFB?=
 =?utf-8?B?NktCY1FZZEVPV29XSGcwSmhjQ0Z2SHp3eHpZR1pBdXM4eTBpTWJ5S0JjOTRT?=
 =?utf-8?B?SHRFRTUvSW1YWHVGYWNXMytYZXNsY0VjNitqT3FJY1BWVjJTVlpmVDBidC9M?=
 =?utf-8?B?cW4vSmR4SEsxeDYrMUlPTEgvL0xhR0hFTXFGMjhCWTVwWXM2NzN4YUE0OUFD?=
 =?utf-8?B?VWlGYWc0WS9qcU44c3kzQk1IL0NwY3NpSGw3ZmF2aHo4a1V6cFNrY0l6ajRN?=
 =?utf-8?B?SFJIeG94QXhBR0xKNW5UQzZXb2JyM0FvR0dqRkd3RGlHTGJzK1ZNVWlWUGMr?=
 =?utf-8?B?SzBucjBNWEZDN05sYTRvdUxEcTdtRnF6TEQ5RS9ZdU8wMnB6TnRYRjJMS3kw?=
 =?utf-8?B?MTJkLy9SdWt6bWgxOGtkN3lmQXl3UFJxWXF6bjRnamYwcGxhR1JsUit3Y0l5?=
 =?utf-8?B?N2ZwS2EvWno2KzhjWjRmOW0zY2hleGtycnZjdmxIcncxcktwTy9seTBYcnhr?=
 =?utf-8?B?M29CTnVORncyM1NtTEhSUS9aek1aZHluWnByQlJhbFY1QnV4UG91dktDNWY2?=
 =?utf-8?B?RDBMN0IwLzhjS1E0WFplSlpVL1RVUVdqZ3YyRGJGZ1dkNU5TV0JWWEgvcWtQ?=
 =?utf-8?B?ZWpMSk54U2s5a2RnbGQzRVJMQTQ4VlhOWHdrbzYxODBDblB5VzBOVHpnd2JK?=
 =?utf-8?B?emU1SDh3M010K3NXc0N2WWVJUDBvQXJZbC9MUDBPbFBBTkt3aHZHcGhsKy92?=
 =?utf-8?B?cVpBSzVyN2pDMEVNWGlVTFlQZkpTNmR0QnAzcHpuVnBnNTQ5R25mUWZlMHU3?=
 =?utf-8?B?dUd3aSt2anFFNnpqTXFlM2ZhdkFySmtXVkJJcmx1dUNQVWVZQXFhMzl6cXBh?=
 =?utf-8?B?TFRYWE9KaXM1ZSs2UG01NFJ4bHVTazVZQW1TVkhmUkdwVmFveThuWTFGcUVi?=
 =?utf-8?B?UW13N1RPdWhTbS9VZlZNQUVFdlptVzF0K0lwd3VzZFNzK0RDVFJra1JLeGxP?=
 =?utf-8?B?OVVjU3AzTVhZSlo2L1NKN3dLWldaQmVtWDJ6OXgzYTFOL09ZN0JxVTRaS3ND?=
 =?utf-8?B?Tk5rSFhib3pYdVZhUFFmYU9ZK3RwSnZtSjlhZFBNUXNXNTBlMmN2ems5TU9l?=
 =?utf-8?B?cXdzbmRFbFAwNWpZSDJnaTV1anFLME5rU2I2NGtoZ2RidmU1b2dHRXB5UjVF?=
 =?utf-8?B?UWRjZmZDbVVSSTYzOFVVT0krU1k2THRVcVlpbTlYN3A4TGdzY0FTRWJhbTA1?=
 =?utf-8?B?ZDlQTjh4K0R1NXN2Uy93Z3pJd044bkdmMHJFYWx6NlgvaThzcmJBekNTazhF?=
 =?utf-8?B?VENlWG1hQk92cThCeXdtSElSL2I1Zy8yTWd3SDh4VGxPT2pFdmVvUVlGdnV6?=
 =?utf-8?B?cTlFMEFLbEU5SFE3WHdUdFFpZzh6U1RMUlNtTXIyczhHZW1FOE9Mbk9VemZq?=
 =?utf-8?B?L3BvYmV0SVhZc3l6WU8wWW1wNHhzRTdCNVRadTEvakxGTjJPOHJOS1NXM3JH?=
 =?utf-8?B?SHd4Q1hqMDBSYkZTNEZMNG94SjhIYjA1TmVBNE1kVmM5c09EaHNMdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1558ad22-dc0a-4037-a8c9-08de6ad52312
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 07:54:38.5521
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2t0zbjyHhJAJ7ixcOLhNLHwcFMiUi3O6A9GiFw6TdKtayPGLBIhW02bDPckmPAIsS1nCXl5Y8BCvwV7d61pLkQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB5902

On Fri, Feb 13, 2026 at 01:39:56AM +0100, Marek Marczykowski-Górecki wrote:
> On Fri, Sep 15, 2023 at 09:43:47AM +0200, Roger Pau Monne wrote:
> > The current logic to chose the preferred reboot method is based on the mode Xen
> > has been booted into, so if the box is booted from UEFI, the preferred reboot
> > method will be to use the ResetSystem() run time service call.
> > 
> > However, that method seems to be widely untested, and quite often leads to a
> > result similar to:
> > 
> > Hardware Dom0 shutdown: rebooting machine
> > ----[ Xen-4.18-unstable  x86_64  debug=y  Tainted:   C    ]----
> > CPU:    0
> > RIP:    e008:[<0000000000000017>] 0000000000000017
> > RFLAGS: 0000000000010202   CONTEXT: hypervisor
> > [...]
> > Xen call trace:
> >    [<0000000000000017>] R 0000000000000017
> >    [<ffff83207eff7b50>] S ffff83207eff7b50
> >    [<ffff82d0403525aa>] F machine_restart+0x1da/0x261
> >    [<ffff82d04035263c>] F apic_wait_icr_idle+0/0x37
> >    [<ffff82d040233689>] F smp_call_function_interrupt+0xc7/0xcb
> >    [<ffff82d040352f05>] F call_function_interrupt+0x20/0x34
> >    [<ffff82d04033b0d5>] F do_IRQ+0x150/0x6f3
> >    [<ffff82d0402018c2>] F common_interrupt+0x132/0x140
> >    [<ffff82d040283d33>] F arch/x86/acpi/cpu_idle.c#acpi_idle_do_entry+0x113/0x129
> >    [<ffff82d04028436c>] F arch/x86/acpi/cpu_idle.c#acpi_processor_idle+0x3eb/0x5f7
> >    [<ffff82d04032a549>] F arch/x86/domain.c#idle_loop+0xec/0xee
> > 
> > ****************************************
> > Panic on CPU 0:
> > FATAL TRAP: vector = 6 (invalid opcode)
> > ****************************************
> > 
> > Which in most cases does lead to a reboot, however that's unreliable.
> 
> It's not relevant anymore, but posting just for the posterity: I
> just found yet another system where EFI ResetSystem() crashes. What's
> interesting about it, it's rather new system - NUC 14 with Lunar Lake.
> It crashes as follows:

Interesting, all the NUC systems I owned had what seemed like proper
UEFI implementations.  However those are the Intel ones.  Lunar Lake
is made by ASUS.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 08:13:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 08:13:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230291.1535782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqoIW-0001a9-WF; Fri, 13 Feb 2026 08:13:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230291.1535782; Fri, 13 Feb 2026 08:13: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 1vqoIW-0001a2-TC; Fri, 13 Feb 2026 08:13:08 +0000
Received: by outflank-mailman (input) for mailman id 1230291;
 Fri, 13 Feb 2026 08: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=dTkW=AR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqoIW-0001Zw-BB
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 08:13:08 +0000
Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com
 [2a00:1450:4864:20::444])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d049906e-08b3-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 09:13:01 +0100 (CET)
Received: by mail-wr1-x444.google.com with SMTP id
 ffacd0b85a97d-4376acce52eso411949f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 00:13:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abc85csm3571912f8f.22.2026.02.13.00.12.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 00:13:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d049906e-08b3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770970381; x=1771575181; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WHInJoYDwFXDAhtMrIWkYTNDE5FguWhlNlUm2nYeOD0=;
        b=Wv8m8aHpGAEGnNR1qyB7Ero0jVgizknlOUl0xq0WODY0FLXtCJ9IYyVOlICc1VMTnD
         8kbLhQ9Wy4axHbQCbF2KJzuZJ5Qmg/UKe9uYSLoQJPZ9pBj8pW2fJQeYUWJen5VdMY9b
         tR65qd63BR9sqyMo33ave5HhXNLqjhy7hs5sTd8OKwzu0jb2/GFhXhUG35wdAbM+emYf
         BvZvG/7eca5s9CKSDj7FHCdp79HHDLCSiq0cKfPoSWP/GGTnU53A+CRPAqMSjmtceK1p
         lqitehsAilpd7yOU5BWdokgtFWsZBoQYuLs8B8k+KXp9xo+yjLr1315nq9z6zmUGrYNL
         418g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770970381; x=1771575181;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WHInJoYDwFXDAhtMrIWkYTNDE5FguWhlNlUm2nYeOD0=;
        b=m8bPPIUzBk+EdLeuILH5BfN87GKVNCtwfbQq1cKm6+U//S10LxjyRVshRhWdF7Go1z
         xsUQEZbwHW3zvL9wncWQMgVEs+6Pa/rwsFT8iSIkdw7yf0ws8hXzvzvj2pP968a1posv
         t8w/ZsbkCw6XgmUbBnHyu3Fi1awqsiuWYfhK1aE7HaBf62M2T5/sn0hj5Gd247OMBIG6
         GzjnCDoZWoLOkWvb25P7PYi4zsQMZmhKyAgmY1xaOJuSX5OeX46nPNa6DPQ3ykwwg0Dg
         GkKbiP6d+2Vkkh/orTet9jCDH6kUtDvXvCOWC6RpLa5S6EdQH+wODPSJyYSsrfQeyCEd
         q7BA==
X-Forwarded-Encrypted: i=1; AJvYcCU+vryQuJHG1WKva3hRbQn2y5wNVipSlieG1X0gEchHMScucXUx2vqu2vhHB39X3+m0j8+Al7fKG28=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwHn27FvDs65Bs2cDYlBXZ4GEjpabI32SdAiCePkbQJS1pk2Lp3
	0zKPG0b4AM6Cgrz6uFxGpjn0MaKcGgB1CbuR7BpBZwAMrFKuKePWxfcARmMyAX+vOg==
X-Gm-Gg: AZuq6aIlJ6bU4Hlp3tSZr4+ErSIbD9ZpnPTjkXEd/anRMC1F4lCp+8gu6O/V84suh0J
	pAlN8EgVcqKWPbXBsQYXBRYS0ZzHHFI0v5b5COo68UCPgwLQNX14P7XBSgDz2RUi2Nk88ymlKi3
	3xyzKWEid6MOAAs5fAc7G7D7gpguKCqBiz5LyVyEW3lIHFP+LiIPVnN/Sfr7qRDPOYMvSuyktH5
	nUj/POTxSepC6krAdLKmKTT52ZhxxMSzu/p78N5g/Kb7WxEq4+RPN84X1BfoAQvtOLK9C0GKbLm
	lQKuMk+AhhKtSMdgRYGYSi+4YawNFRSu6p0rN0awPGkq5wxj2p5O+EgUX+gviTRg6H/r2mAIgjP
	aFWAeN31Tuqdoiac+KlU22yl+7SKmYSpC84iSkHreFrbLRp7QVNEsANJlZjIHAr+xI2Yc09XUBm
	HiE/HGegPfIgnkBNXXrWOWNKoGWnWqhq5kldsi2nzbsDqQXWGB0tkQbaZduURwPZg7+gbs6H5fD
	QW8WBconOhe9jigpIwTIA2xOQ==
X-Received: by 2002:a05:6000:208a:b0:437:6c07:998f with SMTP id ffacd0b85a97d-43797918993mr2033731f8f.45.1770970380683;
        Fri, 13 Feb 2026 00:13:00 -0800 (PST)
Message-ID: <66d789ce-8a71-4115-a2f5-356dbcb4a82a@suse.com>
Date: Fri, 13 Feb 2026 09:12:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v9] common: honor CONFIG_CC_SPLIT_SECTIONS also for
 assembly functions
To: Alejandro Vallejo <alejandro.garciavallejo@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>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Xen-devel <xen-devel-bounces@lists.xenproject.org>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <a11e692c-2bfe-440d-915b-818b133874c2@suse.com>
 <bd656991-59bf-4435-b6e2-554b9ef4725e@amd.com>
 <DGD73M12VYML.SNZI1JQAXHAQ@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: <DGD73M12VYML.SNZI1JQAXHAQ@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 19:29, Alejandro Vallejo wrote:
> On Wed Jan 28, 2026 at 3:35 PM CET, Jason Andryuk wrote:
>> On 2025-04-01 06:58, Jan Beulich wrote:
>>> Leverage the new infrastructure in xen/linkage.h to also switch to per-
>>> function sections (when configured), deriving the specific name from the
>>> "base" section in use at the time FUNC() is invoked.
>>>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> Tested-by: Luca Fancellu <luca.fancellu@arm.com> # arm
> 
> I don't seem to have the original patch in my inbox, so I'll just answer here.
> 
> About the assembly modifications on the exception entry points:
> 
> With split sections the linker is free to reorder all of them as it sees fit,
> which probably means we want int3 after every jump to prevent straight-line
> speculation from allocating an XSA number for us. It's possible the linker might
> inject them, but it might also not. Better to err on the side of caution.

We're lacking such INT3 elsewhere, hence why this is the topic of separate
(existing) work. See how, for example, we're also not using -mharden-sls=all.
See e.g. [1] for a very old posting. Even in my outbox I can't find newer
postings covering more stuff. Intermediately some of this was posted to
security@ only, but there clearly was the plan to have all of this in public.

> Though more generally, I'd just keep all exception entry points in the same
> section. They'd never get GC'ed anyway and we're paying an extra branch in the
> #PF path for no reason.

Inserting a branch there was, iirc, asked for by someone independent of this
work. But yes, suppressing too fine grained section splits is an option.

Jan

[1] https://lists.xenproject.org/archives/html/xen-devel/2020-11/msg01542.html


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 08:17:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 08:17:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230301.1535792 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqoMM-0002Cz-IR; Fri, 13 Feb 2026 08:17:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230301.1535792; Fri, 13 Feb 2026 08:17:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqoMM-0002Cs-FK; Fri, 13 Feb 2026 08:17:06 +0000
Received: by outflank-mailman (input) for mailman id 1230301;
 Fri, 13 Feb 2026 08: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqoML-0002Cm-8Z
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 08:17:05 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5dfa8750-08b4-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 09:17:00 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by IA3PR03MB8455.namprd03.prod.outlook.com (2603:10b6:208:53c::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 08:16:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 08:16: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: 5dfa8750-08b4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sNpL/94X3zkDjxkly0ZhmOCJlA3qWBdv7QdBlAkWx0n1oSxoxfjrPj7G78Jn2u/G+uERAAQH+hGJ+4xsHil6dHfids05q3Zs0iD7hDzGrE2sUvK5SexmvJY7bGNiiJcLhzFwhRqlqjZe5cX/Igu2JklZ/RzguiiaUzHTfqa/nJ7wQ4aI8wDivXh7Khev/hAWFqsxi9yIkT0bXNYiyfXQDwPE2bH3NI2p7XqkHvEE/IMtZqOwArw57NsYCQuDc5wXASXqAcynjDoc40zAPm45BX5GWk2qKtamvykNl03nUCl9iOIILFkfFKtOZfj6s6ZbrFPLsUpn6vu/1iy5j1ZkHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=b1DxPtAxWmb7dtdCnvOLkEStofqosmDjEqaC8bau+nI=;
 b=VUPtGfdBOEFg7UctCgIC16Yy8NQTbs9X7Fur9/MHX0mL27eyObAUs+JU5vuWDkTSc8dHopkfdgvShr465M1V3IY3nwd3JH6nwWNaai4Q0l+vG8u1yjDaX911AzrnmIRReriO94f1buQj8wT1ERRSbrtWruBIZOfTJ5hD8IRvh76AL58mIlSQkYD6FRh5kD/8QFzeRSBbq+3JQIkCQFDFdmW74l6Eogb0pTg10ObSPnXOpseC9zw6McboIO3jQfpeKf253AG6XFEDa/ENqvYFe6Wgoiqu5oYBjjkDqF9gQ973tXsJD4o5MjCGPsVaVAKNCG8/qD9WLTyHceyg6hey9Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=b1DxPtAxWmb7dtdCnvOLkEStofqosmDjEqaC8bau+nI=;
 b=jFPt0An8e8WKzYSGajQYevpVfLdlMbHKaB2ReZ4GboTTJvHHhMAT64r5ihjsR95IvsBrAQV05725tYy6XKyKuPyANOEW7UX0bNyZra8StsJ1FR/FK5sOCZXBbuGwHY8lPlzbuGY1zRWyw8YEJZL+5JEx4e4fzD1KSffc3C3k36c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 09:16:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] VT-d: fix off-by-one when handling extra RMRR ranges
Message-ID: <aY7d8ohWykrmOmf5@Mac.lan>
References: <20260213031801.1744145-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260213031801.1744145-1-marmarek@invisiblethingslab.com>
X-ClientProxiedBy: MR1P264CA0090.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3f::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|IA3PR03MB8455:EE_
X-MS-Office365-Filtering-Correlation-Id: 12f6618f-d4a7-4e44-5bf4-08de6ad840b9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Y2YvNE5acG5OckU3ODRwRm9nb0lCY1FCNDRMSUk2amFBNVdMQ0tpQ0xnaWJ6?=
 =?utf-8?B?U2xPODRsc2oyejlqZmZvcmRyOEkwV0hYUkhhSWN0OGYyaU0yWkE0c1M2Q3NI?=
 =?utf-8?B?SVJPOFVPZENNZGZNQzZsN3hqRldnam5aYVY2dlM0MUtSd3ZnUTFqWGxqNmpJ?=
 =?utf-8?B?TEJFWWt6c0hmS1FrUCtGY1ZXcDRxMy9YT0p0dVhDRVZUekhyekhYY1hQa0Na?=
 =?utf-8?B?blk1R1EyMmFwMWttT1kyczJaUGNpSlNBWSt3bGRUNDJYVUU4TjNxR2FleE1B?=
 =?utf-8?B?dTRBL2N0MUtkVVZvWFAwRXdweGdWRWRyd2NlTnJQVFBCVVYraExsbmY1TE5q?=
 =?utf-8?B?TGFHKzhzejRjbkRSb1NEdkdvTWUwWVVBTHlZdHpTNy9Udll0cGJRblJYdHpF?=
 =?utf-8?B?cnZrRWU4eUNUSnFFT2Fqd3hiazlhV0tGbERMK09Ob1FxbjIwNkJZMGpnanVL?=
 =?utf-8?B?SEdLaVl4WUtIejNjNmJJT3d4NW9vRG9ISHhsQ3NXUHZsU2hvUERta0JFZWRz?=
 =?utf-8?B?Sm4xc1lPSUNoSTdSczdNdjlpN01MMmhVM0E4ZDFENXV1K0w3aGZUVDZkK0FL?=
 =?utf-8?B?N2tKRlVCUWRJUXhYdFZsUVJjYTNtN1VuNlZFNkNSR1dZcXJldURSalJkT3l5?=
 =?utf-8?B?clJuOVg1N3lOcWNrSG94QmJndnlRTGo3b2ZsNXNTcGRveDBJbW1WdUEvUXFS?=
 =?utf-8?B?RmpoRzFvNGZscC9WbytZOWJoNFM2TEk5dndwbEtoNkpaby9GNHpqY1h2dUpv?=
 =?utf-8?B?WjNTYVEvcTJneEFNU2p5cUx6NFpOWXdKUU1maDZqYlFic3BubVhrUWY4ZXln?=
 =?utf-8?B?L1ZsZ2Q4REhJSlZIMlNNemFxb0xIbVhhZmI0SmJIZm9pSnBiZEQyYWl1Um9Y?=
 =?utf-8?B?UllOU0xTWlYrK1NrazB4RnFGQ3FQRE1xc2k0UDBnMlo2bnlTNXZRTEJyK0lR?=
 =?utf-8?B?aW93ckxtdEMxQnRVVk5EejlDbG1QSzVMTXRxTGdlTW9HUi9ONlBpVlQyemJK?=
 =?utf-8?B?Z3o3bzhFQUFVWTV5Nm5VeTAyRGJSSEQ0TitvalZVSWtCZHZ4YzVqVWdQRFRy?=
 =?utf-8?B?RW0zODI0dENXTHR1OVZqclk1YXFHYWVSZ0ExQUEzZS9ZaXdJejZ0bEJrVzk0?=
 =?utf-8?B?UWt0Sm5lVkdpelVuUGJuKzBwWTJJLzVGNXlxU1FjWWRpa0h0MzVHa1UybHA1?=
 =?utf-8?B?NWtjZFBRZTBDMHFHeFA5RUQ1NzRzWEkzNmJWeG83WVhxbzZxVHFYUVQ1YW41?=
 =?utf-8?B?VFBWL0N2Y3ZuK2p2U0xSYkk0TGtkS0xLaVh4ZGk0Y3JHdWdIam1OUXA0OE5v?=
 =?utf-8?B?ZzM2MFBKUDJzNkRsYXg0ZUNxc2lnais1OWRoK282ZXVLZzhaR0FNTURDbXc0?=
 =?utf-8?B?ejhKeWlPaGFhM2FEeE0wVUJoOGF0WGJ0ZEJtSVp1Njlnd3YvUVdjMVdoZGNp?=
 =?utf-8?B?SUMzbHRwdVlIdHF3eGxuSmYwVndoWXRhZjRZRSs0UWs3WVBDUlFsekpjZFFt?=
 =?utf-8?B?aWE3T1I0R0lvbThsa3lrVkhTd2tJTUFXSkEzdkwzVkl0eE9BY2hDTk9RWC83?=
 =?utf-8?B?ZWtVQnAvT2ZUYS9YNmRqaGdUSWtLbVYzNVpzT0FrSkhyTGRUSll5QjZmZUhR?=
 =?utf-8?B?OEhvanlIQVRBSVNoWVZrYmNSREVHY3hEVDBLbFR5cTdjRmFHb1UxNnJMdW1B?=
 =?utf-8?B?UnY0SThUM1RWdFdxRFFOTnJXN0tkM09EbmJVMmQ5SGVwa2gzUlorQUh6QXUw?=
 =?utf-8?B?NHpRYlVmOEtHY2hUL0lJMzhQaHIyQTFYNkhCRHZLOGRjNXdWTGJvMFpRVEpo?=
 =?utf-8?B?NFkxekFwNUZQZmxhRktDTUJaRHNoR2lJNjBTUlJsYVM3cDY1REpLRmoxYlIw?=
 =?utf-8?B?U2gwdmp2SXpnazJYaE00MFY0azh6MENxNkMrbkFsM0lqd2dqUDlWQUU2ckNr?=
 =?utf-8?B?Y2hOOTF2cm1sNGg5TDRHSzBHbTJZeEplemFSTmNpaWtTUEJFUDNDb2krT2lG?=
 =?utf-8?B?c0RtN0VlcE1RYWxyR0wra2srbVdJWEFsRWhNNjRkVUoyNTNra3lKb0JuVVA2?=
 =?utf-8?B?a3B1YllGT01YYS8rY09FbmpMV2xYQml6aUtFSm9FRmJNajN0VlFTWW5GSnZl?=
 =?utf-8?Q?e4WQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dUMwKy81OEl6K1ZSWHpTSWszYXcvM1E0cjFSdkNWNDBXbFd5b1BqNVJtTkJl?=
 =?utf-8?B?VUxTR005NGVYMDRxVW9rY0M1Z0FNTGF1eFdVNS8rTitGaFJvZ2Z2SStqRXM0?=
 =?utf-8?B?LzN6UERqbE4xKzBESWlPeWZoaCt5bE9Wd3o2K2ZYa0VtU3NRQWYzZzgrUHlV?=
 =?utf-8?B?VHR1empXakx6bjRRNVFZR25KZVVCTjlEeGtsSDNRMTY2QkdrY3c1UVlLbFZl?=
 =?utf-8?B?TnR3U05UZUlPQWxGNVdSbG9zcXp4VGdXTUhzVFJvRnRmMVJ5NU1OOUxDbnRP?=
 =?utf-8?B?UU11a3grWkcyWXBoejhIRXgrR3NaSmN4aGNOVU5CSFV3eW5BZWZPdEFXNnhp?=
 =?utf-8?B?TVJWM2hTUkx1U0lhZnJqc09RTHJwREppdUVuRFJZTDZmcnltc1MrMWtMa0RU?=
 =?utf-8?B?NEh3ell2aXpkVERrYmh5U3RlTWFFUGxvSjJZWHdYWTZDVGVETWNBVEFnelFN?=
 =?utf-8?B?cnZBL0huK1luWnpITkhhVEM5ZzlHVEVYakFROFlmczJaTHIzdEY3WXRiVksv?=
 =?utf-8?B?MnRHTUxmSlJNN3l2QWY2SFZhdWowcmJmTUNkSjV1aUNoMTRkb2FVaXBmR1J4?=
 =?utf-8?B?Uks4ZjE4SjRabUJ2K2RveG5WMW4yb2ZQcUs2Tk1pK0pkV0tZaFJ3cnpxTlRJ?=
 =?utf-8?B?c2lFYnRvcGpFOGcyUkxhR3BIVTRHTXhvNVFEMDQxeEdObElJZUFKYzQ1OHV0?=
 =?utf-8?B?cXp1RGpwL216RFQySW5aSFg4WDBjZzVNMHRnVDByZWFJQVc1WG9SZkZrOFRM?=
 =?utf-8?B?UUY0WElnc1VzdlhnaTBEL0FTWm1mNm0zNzk3bm9YN3JqbHRqenFNNDkvU3lt?=
 =?utf-8?B?R1lnQ3hlY3pxTjgzS2ZlbXNSZWI4Z0REQUl0SUl4V1llaTY5RVJTT0NyTEFV?=
 =?utf-8?B?QUZhd0VPV2FnRnlTQmQzMWg1NjUyQ09GbHc1YTdvYTVFN1lyeGU1SWcrMUxI?=
 =?utf-8?B?bXVDcENHYzFBRGI4WmxiRm12VEhBZmE5VlllZThVYXB2ZERjK2lOM1dHYUpE?=
 =?utf-8?B?M3Q5bHZYc3Q5RWRhb2Yxa3RTWDdUNjZ5U2gvRDFGZjBXN0o5RE9lSkw2UDB5?=
 =?utf-8?B?K0U0M3RiWU1xNHdKSEFtRmt6Z1lUMGt1K2Y4WktzcWd3dDAvRWlrMUI1b1Nu?=
 =?utf-8?B?NnZKeXlsL08wZzdpR2tYSHErenNBWWlkU2ZwaFZHS1pLS0Z0RHlzZU1YMmw2?=
 =?utf-8?B?blJLTzA4a0dlQnFDRDhJbXVMeHVNdnUyek0zaCtiamNDQUljT0ZWaThjM0hl?=
 =?utf-8?B?NlRPdXl1bWZVVThvaDNzUk1JdkpBbGduWUVndk94VVYwOGxoRDNpenpmdC9s?=
 =?utf-8?B?L25QTWlCQ3VOb0ZPQW95S0JmWHh5eXhBWXBsMUNQSW0rSzdYdG9abnlmRmR5?=
 =?utf-8?B?ZlRXakJMRnNRb2pEeWJUNWlHdUtpaUtwR2ZnMjZSaDhIU0piUHZNOGx6ZnZI?=
 =?utf-8?B?aGlqL2JnRVFIRTFzbStZYkxMcWkxZ1p6anpSeGRxRzRCOXRTVTI1eURtb29t?=
 =?utf-8?B?TU1ETU1XSmRXUTZOM2lWWTV2RFV1eVVmSTFFaDJoWDRwRzNwTHYwRmNjc2VC?=
 =?utf-8?B?NXV6WU1Eek1jeTh3dnhteit1V0ozWWlvZkFKaFloZTdCWHNMNmFYYjRMcExH?=
 =?utf-8?B?ay9keUxVU1NKakFuWnZjTlNqWGwyNjEybzVCWGlTZHh6SXo1SVhMZGpWaEUy?=
 =?utf-8?B?VVV4d0RUOFFZNTJ0TUN6TTRINGdzNStUdG9XdXVDOWlDQk1FYzlFbVUrWDVB?=
 =?utf-8?B?dEViSnVIQzQwZHJqVnBNRXZmcFY2Yy9OUVYzVE5Tc3VIU290dUpQZHRtWVlx?=
 =?utf-8?B?TFNCeXpDSFIySG13ZlVJZW5FMTA3ZzN1T2dtZzYzWURkdmdKM1NudWV3L2VI?=
 =?utf-8?B?Q24wc1RYclhSQllDa0RpZFhxUUFDQW1Rd3FZM3E5VkIrWmxzczQ4MEUrVVRw?=
 =?utf-8?B?SjVKVzI3QnNvcis0bzc4VkhvVmNSSUViVEV5N3lTazlWNG9COGQ0NzdIT1hU?=
 =?utf-8?B?cFVqKzhxc2dVNC83NmNmSlRleU1EUWJyWWlGZSthM3lvWVdZSUx0bFppaVNa?=
 =?utf-8?B?aXdPeFlnbktwV3phSEZzOFlIMXF5Q0JYYUY2dHplc1J1UUpRd1phY3JEVUZ4?=
 =?utf-8?B?bHgzMWhyYmY3emtGckdlSnNmS2htVlg1QWthT3BLL21hMUZqMUxvM2J1NlZI?=
 =?utf-8?B?bEg2ekpFOVRvTlZkbGE2RkN6blRTSDNLVEJ5dmdMb2x2SzhIb09FV2JXVi9s?=
 =?utf-8?B?SHpwRTIxYnlPTm1GSEJ6ekJtSUJhYllvRnlMTHFwRUtNdEE5UFlIdWhJbDJq?=
 =?utf-8?B?cy8rbFF2MHpUZGEwL0poWXRjRkdSNS9ZOWN0T2t5eGFBazNvSDNEdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 12f6618f-d4a7-4e44-5bf4-08de6ad840b9
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 08:16:56.9841
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8CzPlnjOAr0mNxbLQbdi03KbLjHYSwZ430KWHkSC7Qgz9rtN5bNxLbQ9RLBJLyVX/cUvavi9FTtrGRPinQNhEw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8455

On Fri, Feb 13, 2026 at 04:17:48AM +0100, Marek Marczykowski-Górecki wrote:
> add_one_user_rmrr() operates on inclusive [start,end] range, which means
> the end page needs to be calculated as (start + page_count - 1).
> This off-by-one error resulted in one extra pages being mapped in IOMMU
> context, but not marked as reserved in the memory map. This in turns
> confused PVH dom0 code, resulting in the following crash:
> 
>     (XEN) [    3.934848] d0: GFN 0x5475c (0x5475c,5,3) -> (0x46a0f4,0,7) not permitted (0x20)
>     (XEN) [    3.969657] domain_crash called from arch/x86/mm/p2m.c:695
>     (XEN) [    3.972568] Domain 0 reported crashed by domain 32767 on cpu#0:
>     (XEN) [    3.975527] Hardware Dom0 crashed: rebooting machine in 5 seconds.
>     (XEN) [    8.986353] Resetting with ACPI MEMORY or I/O RESET_REG.
> 
> I checked other parts of this API and it was the only error like this.
> Other places:
>  - iommu_get_extra_reserved_device_memory() -> reserve_e820_ram() - this
>    function expects exclusive range, so the code is correct
>  - add_one_extra_ivmd() - this operates on start address and memory
>    length
> 

You possibly want:

Fixes: 2d9b3699136d ("IOMMU/VT-d: wire common device reserved memory API")

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

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
>  xen/drivers/passthrough/vtd/dmar.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
> index 91c22b833043..3da0854e6d91 100644
> --- a/xen/drivers/passthrough/vtd/dmar.c
> +++ b/xen/drivers/passthrough/vtd/dmar.c
> @@ -1065,7 +1065,7 @@ static int __init add_user_rmrr(void)
>  static int __init cf_check add_one_extra_rmrr(xen_pfn_t start, xen_ulong_t nr, u32 id, void *ctxt)
>  {
>      u32 sbdf_array[] = { id };
> -    return add_one_user_rmrr(start, start+nr, 1, sbdf_array);
> +    return add_one_user_rmrr(start, start + nr - 1, 1, sbdf_array);

While here, would you mind if we add a newline between the sbdf_array
definition and the return?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 08:18:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 08:18:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230308.1535802 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqoO3-0002lN-Ue; Fri, 13 Feb 2026 08:18:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230308.1535802; Fri, 13 Feb 2026 08: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 1vqoO3-0002lE-Qj; Fri, 13 Feb 2026 08:18:51 +0000
Received: by outflank-mailman (input) for mailman id 1230308;
 Fri, 13 Feb 2026 08:18: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=dTkW=AR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqoO2-0002l8-3K
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 08:18:50 +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 9d9fa8bc-08b4-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 09:18:45 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-4376c0bffc1so474964f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 00:18:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6a5f0sm3837325f8f.11.2026.02.13.00.18.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 00:18:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9d9fa8bc-08b4-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770970725; x=1771575525; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=dY3u/9nTRSPA9y4YkZVrlfn9hXNiY6wZRXrr0bZHeLQ=;
        b=O7tJzfwKcYnIytPOwRL2YIczMjvHALACRpk13V+1nEnl+iMKTu1F1J02KQMxBynsMg
         7N79d/Lc0OPVbpQe8rqpEm4eD+EywVYLT2pPgtQjFL8lTEsQvOsusSNnM0t7JdVXwMrK
         Wcswy+8Ik+su/BUYnhdmM3XKU3Y3uWE4S0Q5s50EebjXRlWp3G09O7wgvXKXxRhMJUui
         h9kHcmyHpYX2CvfZ6Dk4Q1FjkzIJR8fYp9kNrdZmxydexs24BPSTIO3vedBYhZW4MuoJ
         yOwUv1ctrtrclJ9ew1lSb7c3wVC3KvTnIG4/E9IlacfVihBS3gbVvyxt0B9ZQBXPsUB5
         b/QA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770970725; x=1771575525;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dY3u/9nTRSPA9y4YkZVrlfn9hXNiY6wZRXrr0bZHeLQ=;
        b=SR2sq1dKJ1WtEbnnCVtdYfkiFbBNfXVb8UoZDOqTPdniwrGsjjw2FcK0EH9RHsNcas
         sh5OYSeZL+oiJF/p2+3NQ25jycoTcUPNi6WMMZvedaAYQaCxVNTUXcH4x8DL1UKoG9Kt
         EO30BZKeDRce2+f72gXPwm8Zl6M73cKD6MheBGCW6MA35ktiyY/jXKdOSlsEw9XeVtL6
         HrotcId6yaM6uErMuctKdO+LQGN9HZgXuvsAmVW04JbnZ+6kX6cM6S/R5Ap4hv6m3210
         UYEQbWMu+Uh6gsAfuRqjjRu2kAnKIRd2rP6zOAUF25ufq+kBctyb4rGmFhlInpCrrYS5
         mH/w==
X-Forwarded-Encrypted: i=1; AJvYcCWUpHOqv7uGOSvdzYihmmeaTUwSC46QrUCdYutTkvF1Myb5uK/dpfeL9v6A2XzKRTbxWRPGE64+cK8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBsFLkUyrhJ8OPG+2RgDX1nWRp+qsUBbk5NboJZwH3o0n2+Re8
	dZrvKXcPgbCzigEUndPqvX6lvuR1sGIu3wI9ucTe9GzCrR3nhfWSVZhHNbUzJOcPXg==
X-Gm-Gg: AZuq6aJI4xyX0MEs62cCLgpDZ73erzuO5a6q4kdIlxk1zTFrWHPDgMQV1PRzrUtNpf/
	TK4LtnqR2pNlr+0YxKIVh/VCYG/awIlk7TD7JeYNj38rZ08vRHHDiy0RDf4wTk1W+yVNWZ+gLXo
	FX0EGj+/6TH+3NBudiz3oO9abeQ5bGXxvfhLqjJDC9ROZynrvpJfAb3MqWR25U1bsKLkRKK8HZg
	UcuCE0qwqzeD2a/VQ8i/lu7EE+gc7BgsSmT6yTUT9fRtCnkBL/iey9iQLC5ZdrZhgsaJAUI0U56
	W9LygKiyEDN+bRQdX3mpTLgwbNXUTO4L6mTuoMs7HNBoV3vnxpPqAISeUy/K1tNhBOGH/uMWm3O
	IjLjMYDnuKRNyYOMOcjtzKiXXdxavzZWrQctBZBVSgtOITUGWiw8bXoDdO8xY82pPEwoqXTXWLQ
	+/EWRWmQDhPGaQ8EsvG3XMyIwcMYEoqDNL6tv5ZwhW4y/SR2E36ZteXul6tgyLNLHdu2ciERohW
	6mrQayI9KXoQHo=
X-Received: by 2002:a05:6000:2586:b0:437:6f6b:4f7d with SMTP id ffacd0b85a97d-437978cdd9dmr2051798f8f.19.1770970725140;
        Fri, 13 Feb 2026 00:18:45 -0800 (PST)
Message-ID: <50a017e9-700d-487c-a04b-8a2ef5e7b3b3@suse.com>
Date: Fri, 13 Feb 2026 09:18:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen: Put wait.c behind CONFIG_WAIT
To: Jason Andryuk <jason.andryuk@amd.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,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <20260211170118.109946-1-jason.andryuk@amd.com>
 <73bf621d-0795-4fbe-b926-71be3525b4c7@citrix.com>
 <cb5da09b-66c2-4dee-8cc1-f67f596a3c18@suse.com>
 <37fd63a2-786c-497e-9bf9-de9ea9708509@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: <37fd63a2-786c-497e-9bf9-de9ea9708509@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 12.02.2026 20:14, Jason Andryuk wrote:
> On 2026-02-12 02:38, Jan Beulich wrote:
>> On 11.02.2026 18:30, Andrew Cooper wrote:
>>> On 11/02/2026 5:01 pm, Jason Andryuk wrote:
>>>> wait.c is only used by vm_event.c.  Make CONFIG_VM_EVENT select
>>>> CONFIG_WAIT, and use CONFIG_WAIT to control building it.
>>>>
>>>> Provide stubs of functions called from common code.  entry.S needs an
>>>> ifdef to hide the symbol from the assembly.
>>>>
>>>> Also conditionalize .waitqueue_vcpu in struct vcpu to save space.
>>>>
>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>>
>>> I'd really rather see the API/ABI changes required to purge wait.c
>>> entirely, but I guess this will do in the short term.
>>>
>>> Two things want further thought.
>>>
>>> First, because ARM uses per-vCPU stacks not per-pCPU stacks, it doesn't
>>> need this infrastructure in the first place, but it looks like it's
>>> still compiled in and half wired up.  I suppose you don't notice because
>>> you compile out VM_EVENT on ARM too?
>>
>> But if we want it compiled out altogether on Arm, ...
>>
>>> Second CONFIG_WAIT isn't great name because there are many things it
>>> could be.  I'd be tempted to just reuse CONFIG_VM_EVENT and go without
>>> CONFIG_WAIT.  I do not want to see any new users of wait.c, and it will
>>> disappear at some point.
>>
>> ... don't we need a separate kconfig control, for it to be selected only
>> on x86 (or for it to be dependent on x86, and then imply-ed)? Imo
>> CONFIG_WAITQUEUE would be okay, as long as it won't have a prompt. We'd
>> then simply want to prevent further select-s / imply-s to appear.
> 
> ARM VM_EVENT=y won't link without wait.o.  Undefined references to:
> wake_up_nr
> prepare_to_wait
> finish_wait
> destroy_waitqueue_head
> init_waitqueue_head

Hmm, okay, assuming that then also actually works, ...

> So I think that points to re-using my original patch, but with either 
> CONFIG_WAITQUEUE or CONFIG_VM_EVENT.  Since CONFIG_VM_EVENT is the only 
> user, and we don't want further uses, I would use that.

... please do.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 08:22:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 08:22:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230317.1535812 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqoRb-0004Ha-C5; Fri, 13 Feb 2026 08:22:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230317.1535812; Fri, 13 Feb 2026 08: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 1vqoRb-0004HT-9B; Fri, 13 Feb 2026 08:22:31 +0000
Received: by outflank-mailman (input) for mailman id 1230317;
 Fri, 13 Feb 2026 08:22: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=dTkW=AR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqoRZ-0004HN-Aw
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 08:22:29 +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 20fb6559-08b5-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 09:22:26 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-4358fb60802so424426f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 00:22:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796acffcesm3600287f8f.37.2026.02.13.00.22.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 00:22:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20fb6559-08b5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770970946; x=1771575746; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=snVsBvQZ+6p+aT5/q7pnYalZywwGgxqAPe2Wj+e7hrY=;
        b=K0WzciUYAsZQXAVzW5bEbb4w+stogmnz8MUjOGLnvsiI/yImpLRUfDiogCUqJCSO12
         J3mN3gS9xNXCD1jfQRRdXSB9ODGdC+v5jC1siBjWen/8DBwj2sZPUHY6EPbPl8Y/ffDF
         XCIBmYum7SoHre8uF7B5eU4hD0LZpWdmt5yiYr4VPxBT668dy4DLRlWAId8ockxQVjjt
         5mKrWp26VFZPD8bxTqvVupwceNTahjuL9goNybZzPTJwn2A6KT28NJt2sYwkE6Ck81Yp
         A9l/E8tL6hqJCRJVc01hoTLbqj3td7OMJVD83WZ3cOqUn+i4P6IMPRNjIL8z3zr6qSnu
         EWyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770970946; x=1771575746;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=snVsBvQZ+6p+aT5/q7pnYalZywwGgxqAPe2Wj+e7hrY=;
        b=GlQgL/SfPO0l737ceMtiggmoQpQ6JZSqr233JPFMiy1gt1yYNerpGniZ2t0C+Zlw8U
         qA8LcBbig0XXJOBTPMZ61lH5/TYPuXFVgVeFOOkoJCFFP7exquNKka8Sm1pTcnRxE5Mx
         c0YxETp2O9xo1IOKcgk4PjwyYle8hK0cUdLob64guD7AlfOlLvf6+vvt3/uq1B70Tv49
         069i2jdD5JbyO4gY8pZd5QaqcWGgJgCeOMNe3sqpdBtKNZqdg6eJDINjBC50l3ehZX4O
         HbW7RTXCzJvtgAc/I7+eWRl0o5PEHRx5Lla/yn39eysocQ/SHtgdMoTd9QB6i4IpHKAX
         ZP5g==
X-Forwarded-Encrypted: i=1; AJvYcCXhRAG9qMetTEWXlpleAkuGRCeWBKISJTsNpZ8dsi9ErB2S6UEK0+iXmXZ7NSFob+PBGdy/cBYY+ZU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywt86JcKN9pFOVUZA/mnoQj/rcYCgED1j5iveY2h+hqkO+NEa/P
	dUytKi41JR0JPk8vG9kYDmOF21n6Kx7tEPqIz75M0g/OCQW+bk+hqdaJgoFir5XgQg==
X-Gm-Gg: AZuq6aKj/ze/KOAY0idi7MgZhnIXBHZruHVtSoarHo9GfaySTXhuNyjpLQt7eYYMfWY
	v+Rwk29ys1z2kNZDFtoiaZYsLsKRuJvlfprNVaM9+ew0zxumLKTnn2oR5urJiCnAD8osqTTb7u2
	kDA/lRineNqS/at0ntiuDhbrNySGef8choshRe0ug7Ua2PJL1PUl1Gn9jFLT8/FCUXQt9iOmwgt
	JDtxBJkUN/Ou50dwZrz/20kcEwCmTmzIsYRZC6TxvzJ5cNJb+xfw5l+DtuQWx5Tmzt9vzeMmULa
	XZ1Fz69xra55fgJcy2YPFS2ajCe3c+95ge52W+chzYBvcA7FWGgV8QqU6fl1p8hWUu+6/td6iYy
	F8dYafFRuZOg/Ui9ARmqwCUcmy2V9vnelITA8rylwHqqGIWOMNRK6lCd92L/TJ7ieCmoBdC2YOR
	VvB/T9qfsiuFLw0p6qXNOMnMc2L+aaLkIUi9Hpit+E//iiSMpsOISOf6O6SvQcyQ1tQTznE5TnC
	Ja7IT+KTn6n9pLN318TnimufQ==
X-Received: by 2002:a05:6000:2503:b0:435:a43b:2dde with SMTP id ffacd0b85a97d-43798032626mr2047167f8f.15.1770970945619;
        Fri, 13 Feb 2026 00:22:25 -0800 (PST)
Message-ID: <1a98f22d-ef9e-4df2-aa87-585713cd3989@suse.com>
Date: Fri, 13 Feb 2026 09:22:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 0/5] darwin: expand cross-builds to also support x86
 and testing
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
References: <20260212144618.43200-1-roger.pau@citrix.com>
 <61a3f852-915c-4d9f-8dde-01d000aa4fe7@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: <61a3f852-915c-4d9f-8dde-01d000aa4fe7@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 18:58, Andrew Cooper wrote:
> Also, during the final link steps for xen.efi, we twice get:
> 
> [10:09:57.995] Warning: relocation to r/o section .text:00000048
> [10:09:57.995] Warning: relocation to r/o section .text:00000090
> 
> which smells like the multiboot header.

It is. These diagnostics are seen only when older ld is in use, but the
issue exists in all cases. It should really already be on someone's todo
list wrt fully secure boot conformant xen.efi, as we did discuss this in
the past.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 08:26:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 08:26:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230325.1535822 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqoVo-0004rU-TN; Fri, 13 Feb 2026 08:26:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230325.1535822; Fri, 13 Feb 2026 08:26:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqoVo-0004rN-Pm; Fri, 13 Feb 2026 08:26:52 +0000
Received: by outflank-mailman (input) for mailman id 1230325;
 Fri, 13 Feb 2026 08:26: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqoVo-0004rH-Be
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 08:26:52 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd5d2b23-08b5-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 09:26:49 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW5PR03MB6932.namprd03.prod.outlook.com (2603:10b6:303:1cd::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Fri, 13 Feb
 2026 08:26:45 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 08:26: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: bd5d2b23-08b5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b0bcAuQG/OWoLkOWBE8FIijTjnHBuKInDR9gVEpN9LMC3nNaS7sZzvBwt93GFPl+FjzF2UlynTiHjo8pNJRGBs8MFSBSwQJlP6qdwTey3C17Ir3UIkhKvKNfItgkMo7txxN6fdmf9gO4JvU6JyPBUcRI+pH1x0PiyMAfvpTywWF4VoFLmXdnSmOseUtu6CWetNQLcGN7ysT0SkpFfVxT8GvxHrrd2xLmdFWvPiRF0DfjGfF60UEVeih2ZzqEuG/EFUcYeUEES+VKzS4pHvQAHmErcQNlBrm1YQ4RI3CPoo4FKiMtSNt6GHuOxE1bcMw+a1/TKEGBlYXLq3NEFxQXaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EeozffoWk4867hcMMzDJBYr4g9lxsgDRJMBwggXTYuo=;
 b=HzFrzQ4hIlNSF+CZL9NCyVpVEoMyqecHgMJSuruKAMzZe8VT3WBHia1GandAINHxOEcEx16oGB/LwzCyMKaeYw1ini+lHIfqTbMP2UkzqEdy/oG6tyF6sXj7izIkCEM6dVLUFSiXlH4oluaF6MvA0WY/5SuP26+1WvBTPalPa9NFMNxFTk5ZfC+OC9R1OJJISp7Hd5r9YgzwmvxaTl6rRmGNhKlRRGwApMpLOdGzoN0C7DUwhy/l4FunP3oxHctawWTkDbL8SbM2bQxnduPIe4n2G0Vz9kkYk14dGTP9NxH47pMgpnN3UKln+BSpNeolgZ2h0EKpmzu0b4wxC/cRuw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EeozffoWk4867hcMMzDJBYr4g9lxsgDRJMBwggXTYuo=;
 b=mmZHhZsaxN4B6p+1jgb5FNnDemrJimhfzghVBG5+i3mBjjSO03NEHv0q7zHF3KU2bWZO5fLUi7oDghsLCWEcahCyM/skLIk+Nb2VtxtNGnqhc+ZDqYDxLHuk4MEiKK2xRUGmIYJSBcLdcuWbmHGpyrgNZ5Q5IGcseKCMca7N3k4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 09:26:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jason Andryuk <jason.andryuk@amd.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>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] xen: Put wait.c behind CONFIG_WAIT
Message-ID: <aY7gP2x10JybVoA5@Mac.lan>
References: <20260211170118.109946-1-jason.andryuk@amd.com>
 <73bf621d-0795-4fbe-b926-71be3525b4c7@citrix.com>
 <cb5da09b-66c2-4dee-8cc1-f67f596a3c18@suse.com>
 <37fd63a2-786c-497e-9bf9-de9ea9708509@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <37fd63a2-786c-497e-9bf9-de9ea9708509@amd.com>
X-ClientProxiedBy: MA2P292CA0018.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::8)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW5PR03MB6932:EE_
X-MS-Office365-Filtering-Correlation-Id: 1359ddfb-5a85-4634-4887-08de6ad99fa9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?N3h5dEZSRGpNK1dVa3JaMFhuOGs0RXlwNHlKNklXTVFudFIxSHhhZkJQQjZF?=
 =?utf-8?B?eE1ISFV5OUZFRkhnZHo1azNSbTc5a0FJd1FqK1pJSmxMNlJWMk1Ha09nK0VW?=
 =?utf-8?B?aVpVdEFuSHpGOXpzK0hiaEIvS0M0SzRxdEIyTkQxMm9Odjd2ZVp6d0RkbVFJ?=
 =?utf-8?B?MWFrTDJEVVpHVDUrSGpoLzlaZEFWZWRDTmNHTFdQZEFZWFFBdlBLNmpWSlp1?=
 =?utf-8?B?aFBQdnVJV2FPOFYydVRobGRoQXdCMFhaSGRLWUpXcEtkZHZKZFFDdHB6cFBV?=
 =?utf-8?B?emQreWFmb2FMV1NTTnhXeURpaFhsWGpwTzdYVUdEdUJmT01QYWpYVUdUa0xK?=
 =?utf-8?B?SkhQTXZoL3RuSHBBRE9TK0gvR1FMNkdRRUxjc0kxYTkwYTFvQ0Yyam8wNkkv?=
 =?utf-8?B?bVFWeVVaZzBrUkVoZ3ROOVJVa3FXVWNtcGNVODdvQzNVM0Y3ZmxDMjhqU2JC?=
 =?utf-8?B?YjVMUUwxd1JQam5VWWJpc0pwalk2ZHdJNWNvTFlZTEhscW54eXBhZVh5Zms1?=
 =?utf-8?B?dkdDUGdJUXEzYkxJelByU2RHOSt1Mmt3emFNOGk1TFhwazZlcWxtTC80bWVK?=
 =?utf-8?B?b3BzMzJJalJ3MW5Fc0dUTGJVODd6YXREZmd5WHlEd01BN0NRQnFrMGEwd1Rj?=
 =?utf-8?B?S1RVR1A3eUptM3UxSDNBeDFiYmdjM2FNbEpEeFllbHlSK2dycS9PS2huZEhB?=
 =?utf-8?B?ZUtXU1hCT0VtUzlQRFNVTUNLY2tuYytxeGc2V0laMUY5N3Y2d01USU9iaU05?=
 =?utf-8?B?WXQ4MUpjR2pzTTRoeS9rbWhNVGQ2R2ZlYmFxWm4rRWRwMlBwOG5rUlNRTDUz?=
 =?utf-8?B?bDBFV0d5Qi9KbzJvbGJvWnJOWGN0SHB1ajJmLzE5RWt0ZHl1SEQ4VkRYTlln?=
 =?utf-8?B?ZU9POCttbjBmY1h6Q20yM0VYQngwRlc4YVdTbDdwRGZLQ0R4RDhCc2lqZkNa?=
 =?utf-8?B?UE4xRjI1MHJ2eHNValBCOVlEbkpsYW1wV201d0xZQlI4WVA0OTJ4MTBrKy9I?=
 =?utf-8?B?ajZ2YXZRQU5KeDQ5dDVnR1ZVVG56VXVMaDFOc05pdnRGRHIzbXpCNGtyWld0?=
 =?utf-8?B?ZWhicEV4UFMrS29IeHdGYW1ONGxXazV6M3Ztc2pNWE5ZOG5BMTh3azkvaXVa?=
 =?utf-8?B?QXVZREpTbklqeDZEVm1YYWF2ZXUzVzlUWGlrYTc1SEQxWmk3K01ibXNaM1Bq?=
 =?utf-8?B?b093Zm9SK3A4U1hKS2xyNVhmS3BqdEhhdVhjQnRhNGNDbWVnUHU0TjVzR1J2?=
 =?utf-8?B?dThYREZaNUgvSCszanA2VzBlZTJoWXdTa3JSNG1Oa1lqVUNpV2pGVDJpeW5l?=
 =?utf-8?B?Q1NobzFqVFFKc1YyK0Ezd2lNbmw1eFhZOEc0VVJoLzlOQU14ZUZGaVRlTHEy?=
 =?utf-8?B?MVRHUlFIUW9zOUdlYzl2aXBmSndSQW9ScTdXMkpWRkZndXc1SWIzWjhsYzFF?=
 =?utf-8?B?d0dnd3MraE9kQUF0UXRJemVCQW9iTjRtaUNteks0U2NlUDcvYVBmbURzOGFM?=
 =?utf-8?B?NUhWb3ZKUzB2MXRYNnpMcUhLNUtxWEx2MHpibXFJOS82UTNtc21XczR4TnB0?=
 =?utf-8?B?LzJXMDdNNFc4NEZtWDVLT0kvbUxFblY3T2dUelV4K3RvTDRTWmdPdWUvSjU0?=
 =?utf-8?B?MnRQNFo2VUVrYjFiMVlXTlE4cW5iRy9zRTZUUkZuZGdWT3pCcEZZekdpZ1JK?=
 =?utf-8?B?VkNZNU5YSnQ5LzFNdjlYTWMwSk82RUl0R0hjR2NnMHg5Vk10K2dncUlOdVh6?=
 =?utf-8?B?WnlONFlVZ2J2MlhqZ0dKSmYwNnl1Z1VkNnNIaWgvMGZ1VW1ScVZPTmJzL1R5?=
 =?utf-8?B?S0loQ2dITXNxWFAwak5VVTFCSzVIM09aUlQ5aFVnTmlnVmUwNVZwZmt6QzMv?=
 =?utf-8?B?cHc2NmNuRS9mOW1vd2dTbWxCWUd2UWo0MUpMclJjNGVITUtEUERjS0M0VkR4?=
 =?utf-8?B?K2VIKzQ4c0FNK1MrNGdpcTQvK3B5UExMMVh0Y1M4dkY4aXlhMVNHRUFBMUp4?=
 =?utf-8?B?dzlkUXVYVFUzRWdYTTBCWlFBSlkxZnI2Nndaakptc2xFRTR6SzVSNGNtQ1BX?=
 =?utf-8?B?aHRxbXVPVkJxaktqVUJIdnl0dlNvUms3dGYxR2RaWk1pZDFjZzk0dkQ5QWxG?=
 =?utf-8?Q?1MZ0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RGNoaWNIdjR2WFBpQWcwTzdKMjl1MG1UZ2NpMlY1WW9yR2V5VkhNY0VJZ05u?=
 =?utf-8?B?cWtxcERxOU9lU1ZReTZMRTNTNFZTeFVDOWhmR1FtazJtZjFEL3pmYlUzUHdJ?=
 =?utf-8?B?eTJINGptZU1WSG5hTmx5NlhzcTBIZWhNNmV0clVYazQxRi9ZQkpxRnlNdTFy?=
 =?utf-8?B?ZUlvcVUxdnNNKzBSNk5OR3Z5NXFheHVtVlowY1hsc0tKV3FhRWNEL2VjcHRu?=
 =?utf-8?B?MEszMmV3amtxRHUzR1JDSHprdFFTbUNuV016S1RIam9rK1g2RHNxbHJoa3Ri?=
 =?utf-8?B?VkpCL0RLN09WN2lreTViU2VOeW45Y1ZlcUhmVVQ3RWdKKzVjUzEzU2FwVnQr?=
 =?utf-8?B?cll3VzZ0NTh4S3R4NzFCOWE0MGFJMmZZRTQ1ZzgxbGRaQkxSb3B3eTNoTFRK?=
 =?utf-8?B?a1M5c21EVTl2T1h2RGZXM2gzZG9NVDJoS2dLQkg3d1A5SXBLZFVEaXpSNXZW?=
 =?utf-8?B?MTJjK05LeGRLa1pSc2kyRVY5ZU1sNFNvQmg5ekU3cjlGbC81bUNlVCtOSHJl?=
 =?utf-8?B?U2k1Zmwyc3RDMjZKOXNBQXlVMWZPSVgwcFFBUHlYeGV5UG1Eb1Axc3ZrQmR4?=
 =?utf-8?B?QW41b0Jzb05kWlJXOEhmTEwwd0NUS24zQm0zd0EyK2FoUGtrMFdWcHo3b3Za?=
 =?utf-8?B?L3k5RVBkQVZBRXNzVkNwS3FsVXFOc1pFRm1xSjY1UWJ1WXlDcGdPYUFkdENl?=
 =?utf-8?B?dmNJUVMwZFc0N1hFMDIyalY2NGVmdHRPY1I4Rzc0VG41TVRYOE1janZaNEFu?=
 =?utf-8?B?cUFBNUlEd0d5NXhtNHVxYWZ6U2dBbnIzblYxT0lKUVVDQ2VHbnppU09oZ1Nt?=
 =?utf-8?B?bkxoMFB6OTJxUWRXRzVnWStYZHQ1MlE5MEI3YTZHV0k4UGFKV1BaRWhsU0Fz?=
 =?utf-8?B?VE80Z1dJcmFoUTJFdTFxK2RGSXNac2w4WXhDbXVqTWNUSlR1VW1ZV1pyZDht?=
 =?utf-8?B?WUZlcGRLdkYxamF3NGZ4eHd5YXhWYWppTjhlMkpGRXdDbUJ0VThMRHJ1aDlR?=
 =?utf-8?B?U0hJc09LL29LWGc0S0hjRXVRbnErZWxWK1l1S2dZcFZ2eXJoOWZUcUdOV09U?=
 =?utf-8?B?OTgzdWlOZTVZZVRSRzBGR0J1ZkVGSjVhd0RMUitLRjRYYnc0VnJYUmNHTUpy?=
 =?utf-8?B?NE5xQ2NjZkgwYXNybXBJRjVidmM5QkRZRGJGQ0lPSW0vdVlPa2tvYzZIZG9j?=
 =?utf-8?B?bTNEWlcyb0RXTW1iNXBWaTA0RjNBZnFSeXJCbE9NYmtnVFAxR3VDdExnekIz?=
 =?utf-8?B?TkNLaFlQYkg3OFR3WElNb0NxOWc4OFNJTS9GNlFxT0YrWXdJekE2TnBmVjg2?=
 =?utf-8?B?d3N4ZGM3aFg0RER0QXlLWW1tVFIzK09RYjZ5eG1oUlluSWllYmk1MytOemVD?=
 =?utf-8?B?SnJndUFQTDZYbVdYZ1J3eXpXSUlISVlTemNaZE15REMzeDl1RGJkVjBycFJw?=
 =?utf-8?B?ZjFkMzE2aVlRcXgxKzhMRUxPWXBOR1VIM24yMnpZb244Z1dmSUc0OVBsWGFO?=
 =?utf-8?B?TEpsUFYvUjJkQ3M0Q3FuWGkwVk1DS1VPVDBXbHU5SjhSdk03dHF0WW5Dd1RS?=
 =?utf-8?B?RnNLMnBFYlcweU56dlJUdVR6cHZTdkx0SDV2T3ljcW9BbXRQWTdBVXp6M0Rs?=
 =?utf-8?B?OEFUb21vR1BKcm5CL250UkFkc2V3MDk1czNGcEhSbnhOdE1hbWtua1RnZWFP?=
 =?utf-8?B?eGVQV3pQeW55VGlKajRPU3NSMFZHNFNyYS9BbWNmTlVIdS9VUUpxZXlQRjJ3?=
 =?utf-8?B?STRydVAvK3FFVG0vOXVnVmJoaWYyQlVGUDExVndwREdHQ2piMzhlNllXMjRI?=
 =?utf-8?B?U1NLQWMxdW1IWEp6WFBuWW55WlhPR0puakF6aER0ZHJ6aEl4WVdrdlQ3bnNG?=
 =?utf-8?B?c0prNWt4Qnl3aDl5RS9leTBnakFvOTdBY0x4aFpLNlBnOEEvTmVmTGhEQWtS?=
 =?utf-8?B?MEczQ0dERU1Rbk1lVXRRVGl1R3hQLzM3Vlh1TlRDZnljeGhTOXlEaVBsNFFD?=
 =?utf-8?B?dW91V3hQY2tHQ0RHY21oVnB1bG9BbUtLWDR3SE9NWnRsN3pHNkdoRW1mZkpP?=
 =?utf-8?B?OCswMld1TnhhS0JqcWVvYkVEZC9uaEtuSG5zS1R2Wklsdy9EMHZOVmFyRVA3?=
 =?utf-8?B?S1FpazRCSW5oTS9QVkFjSXpmYmtXS2NlNVhKZTQ5Sk0wWU9HMkVuTjlYZk1T?=
 =?utf-8?B?cmtxSDZaNER5RHlxVlhtRlAxZDFjYlBPTHB6TVR5V2o0ank5MmZPMVNoVmRy?=
 =?utf-8?B?SWcyRmltNTVDL0VxNmkwZG93NlZZOGNhRXRGem1jbERtakk4MDliUk5vbzlk?=
 =?utf-8?B?TW5kMGg2YmVSN1U4SlZZbnI3N3huZ0psUEJZcUZ1T25ydUdvcDdXdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1359ddfb-5a85-4634-4887-08de6ad99fa9
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 08:26:45.5664
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Az1/PFepZTVwM+S1lfQBV7hQXugG2VqLGd0PqXYQ+zQdPz7eRcBxI9aLIwC1SqDTUrQJ1gAdGy9boCsc/BFPfg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6932

On Thu, Feb 12, 2026 at 02:14:58PM -0500, Jason Andryuk wrote:
> On 2026-02-12 02:38, Jan Beulich wrote:
> > On 11.02.2026 18:30, Andrew Cooper wrote:
> > > On 11/02/2026 5:01 pm, Jason Andryuk wrote:
> > > > wait.c is only used by vm_event.c.  Make CONFIG_VM_EVENT select
> > > > CONFIG_WAIT, and use CONFIG_WAIT to control building it.
> > > > 
> > > > Provide stubs of functions called from common code.  entry.S needs an
> > > > ifdef to hide the symbol from the assembly.
> > > > 
> > > > Also conditionalize .waitqueue_vcpu in struct vcpu to save space.
> > > > 
> > > > Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> > > 
> > > I'd really rather see the API/ABI changes required to purge wait.c
> > > entirely, but I guess this will do in the short term.
> > > 
> > > Two things want further thought.
> > > 
> > > First, because ARM uses per-vCPU stacks not per-pCPU stacks, it doesn't
> > > need this infrastructure in the first place, but it looks like it's
> > > still compiled in and half wired up.  I suppose you don't notice because
> > > you compile out VM_EVENT on ARM too?
> > 
> > But if we want it compiled out altogether on Arm, ...
> > 
> > > Second CONFIG_WAIT isn't great name because there are many things it
> > > could be.  I'd be tempted to just reuse CONFIG_VM_EVENT and go without
> > > CONFIG_WAIT.  I do not want to see any new users of wait.c, and it will
> > > disappear at some point.
> > 
> > ... don't we need a separate kconfig control, for it to be selected only
> > on x86 (or for it to be dependent on x86, and then imply-ed)? Imo
> > CONFIG_WAITQUEUE would be okay, as long as it won't have a prompt. We'd
> > then simply want to prevent further select-s / imply-s to appear.
> 
> ARM VM_EVENT=y won't link without wait.o.  Undefined references to:
> wake_up_nr
> prepare_to_wait
> finish_wait
> destroy_waitqueue_head
> init_waitqueue_head
> 
> So I think that points to re-using my original patch, but with either
> CONFIG_WAITQUEUE or CONFIG_VM_EVENT.  Since CONFIG_VM_EVENT is the only
> user, and we don't want further uses, I would use that.  But I am open to
> either.

I think hiding behind CONFIG_VM_EVENT is better, we want to avoid new
instances of waitqueue (at least in it's current state), so not sure
it makes a lot of sense to add it under a different Kconfig option if
our intention is for waitqueue to only be used with VM events.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 08:57:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 08:57:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230346.1535831 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqoyl-0000ts-4L; Fri, 13 Feb 2026 08:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230346.1535831; Fri, 13 Feb 2026 08: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 1vqoyl-0000tl-1l; Fri, 13 Feb 2026 08:56:47 +0000
Received: by outflank-mailman (input) for mailman id 1230346;
 Fri, 13 Feb 2026 08:56: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=dTkW=AR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqoyk-0000tf-3M
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 08:56:46 +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 eba579ab-08b9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 09:56:44 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-48068127f00so6022365e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 00:56:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a15d99sm18472075e9.4.2026.02.13.00.56.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 00:56:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eba579ab-08b9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770973003; x=1771577803; 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=zH+dfXMLW9Wkdy5tpFV7npIQyZ3f/yh74lCb7XAfvqw=;
        b=OC+e+fqJigbrS56szm3ExzRmOiZm98bFmE8OovpCC15rFDn5OIzxVOQBfHECvUL//5
         SoEi32fhGvoYJkQ1aJzts7I3H5+lkTaE1FoYvwjGJ6E/ER3h+CK58DTTY1tsVK1hbhAl
         3lAzY+zDw4SxDOkfmHntmz+gixPHfIx4fxSYepVie6HVKdGYX0mFZnxHlX82Z3KJp/EY
         AiLuePxsquoE09e5MVpdW60caZQLpT5YbWk15J3RsXwetnPp0xMDqhM9cCOKRuCtO60N
         /pEMfNp8r9Fcn8C2xPyeXcm9igrBJpaB5arecsK4+7CeSGbbP+HwqmB8D8ov+mwQvlkX
         SD/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770973003; x=1771577803;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:cc
         :content-language:references:to:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zH+dfXMLW9Wkdy5tpFV7npIQyZ3f/yh74lCb7XAfvqw=;
        b=dCgdPKXDWJ/lbB1x/7DG2crI8UTAwHxIK8wevqk5CDLk0XKCCamSZR10LnWm8D6ibB
         sE6AWxzx9BvVIuDcSFwAITIf9I1/aQab0gkO89qzEUCFPoDJrIt10hd/MOKM6Kbl8S0/
         o/3KYlTExRUhYdJeCoTEFt255ohyQZs9WER0b7cwRMWl6F9aRI+uGWPi/RAB5IFHTxoa
         KHHbuUfpqpyoBljxC4vOTlGt1eo4z65cHfS++taalsjXiwpzDPvu+vsIZbQluRSziz7z
         Xkew+k4SjM6E851H/IxpHwPvj9NRlrZVWNItsxs3oIRZSYh4DgQMQb8BVwkrEeDtfUyJ
         B7IA==
X-Gm-Message-State: AOJu0Yzdk9T6MeLIex1VGgk88jYoeUTOm8azs+t+oY/Dc2Dv+1OUWMav
	NHXzREAFzRygzI24ECKwG2KOSnQlhfDMyCAPikUtrsU/sqmy+C+9b1Bu7LUUUZVzo82gE4YX2RB
	3ZSY=
X-Gm-Gg: AZuq6aLbH8lK65TCTikkkwQ986/dDBbtLSZdUh5t6BV4afQAGzMJipgcprxnFrB99wb
	OjJw6kXZTevpDNqEooFTW72WXRW5JZ/vtF8ZXlEJumichcoqJN6gJPM/bmduDlFe070HqMr6zyA
	nifj994GDfhcV7zY0F4Xr91O8cNdPkVTXFuuWHlJDQwaIbDLTEPzXZVFhofZuZfdV8gQFCjyfOJ
	xqQkDE5ezCZ415J2ol4QULOKfSzCo5XubidI+t1IAzG1Ep6FslkZkLvHFaEpgdosCdpX/HB3Cbd
	PNyVYwBcFbwyo72fDo8czpielF6ijYcJwpJjbXX+K8CQEgeEwvYra8oKeusVIsB9PSKTNKSVzev
	3t8L1Gy4cTsoTLeQSjP77LlaKePnZfJjkyH9FRkPTOUeTTC6QBJgXpQzvffu5d5QbhBk/M+ouxb
	b919w/A8OwO5vOORkGqgKXoey9HXGUKbUkaG9E4yyiBmB+B/8IJkunirB47+xGs5VMSj9GgRGIC
	9n9qoKGsdDfLuA=
X-Received: by 2002:a05:600c:c165:b0:47d:73a4:45a7 with SMTP id 5b1f17b1804b1-48373a5ba18mr17427605e9.24.1770973003436;
        Fri, 13 Feb 2026 00:56:43 -0800 (PST)
Message-ID: <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com>
Date: Fri, 13 Feb 2026 09:56:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Cannot boot PVH dom0 with big initrd
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
References: <aY6iVr990vWeO2p5@mail-itl>
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: <aY6iVr990vWeO2p5@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 05:02, Marek Marczykowski-Górecki wrote:
> Hi,
> 
> After fixing the xhci crash, I hit another issue - booting with 236MB
> initrd doesn't work, I get:
> 
>     (XEN) [    3.151856] *** Building a PVH Dom0 ***
>     ...
>     (XEN) [    3.593940] Unable to allocate memory with order 0!
>     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
>     (XEN) [    3.599884] 
>     (XEN) [    3.602482] ****************************************
>     (XEN) [    3.605272] Panic on CPU 0:
>     (XEN) [    3.607928] Could not construct d0
>     (XEN) [    3.610692] ****************************************
>     (XEN) [    3.613463] 
>     (XEN) [    3.616035] Reboot in five seconds...
>     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.
> 
> Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f2899781755762f565
> 
> If I skip initrd, then it boots just fine (but dom0 is not happy about
> that). 164MB initrd failed too, but 13MB started ok.
> Just in case, I tried skipping XHCI console, but it didn't change
> anything.
> 
> Host has 16GB of memory, and there is no dom0_mem= parameter. Xen is
> started from GRUB, using MB2+EFI.

Hmm, yes, there's an ordering issue: Of course we free initrd space (as used
for passing from the boot loader to Xen) only after copying to the designated
guest area. Yet dom0_compute_nr_pages(), intentionally, includes the space in
its calculation (adding initial_images_nrpages()'s return value). PV Dom0
isn't affected because to load huge initrd there, the kernel has to request
the initrd to not be mapped into the initial allocation.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:20:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:20:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230362.1535842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpLY-00050W-Rw; Fri, 13 Feb 2026 09:20:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230362.1535842; Fri, 13 Feb 2026 09: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 1vqpLY-00050P-PC; Fri, 13 Feb 2026 09:20:20 +0000
Received: by outflank-mailman (input) for mailman id 1230362;
 Fri, 13 Feb 2026 09: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=Jz9v=AR=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vqpLW-00050J-S4
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:20:19 +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 3499e7ca-08bd-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 10:20:15 +0100 (CET)
Received: from DU7P195CA0025.EURP195.PROD.OUTLOOK.COM (2603:10a6:10:54d::30)
 by DB9PR08MB6378.eurprd08.prod.outlook.com (2603:10a6:10:257::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 09:20:07 +0000
Received: from DU2PEPF00028D04.eurprd03.prod.outlook.com
 (2603:10a6:10:54d:cafe::ca) by DU7P195CA0025.outlook.office365.com
 (2603:10a6:10:54d::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.13 via Frontend Transport; Fri,
 13 Feb 2026 09:20:03 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DU2PEPF00028D04.mail.protection.outlook.com (10.167.242.164) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 13 Feb 2026 09:20:05 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PA6PR08MB10781.eurprd08.prod.outlook.com (2603:10a6:102:3d5::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 09:19:01 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9611.008; Fri, 13 Feb 2026
 09:19: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: 3499e7ca-08bd-11f1-b163-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=sQZPqksH8ZeKwq2w5sjhi2qSkdTTMrNYDRFBO8EskHC+pR//UoPL21MxR/7JLWs+U5OWEeRnfOxQ+wuEHxZWf6EO5rbTcG3c58DA5rk5DJVqjnbJZEpZw0NoOU8S4eNApnlqNNRoP+g7hYtOF3t886Mg8fkx++7DBzX0rgq1l2sVRtldcsFIdVGckMpO70yONGd3bwoz0dy5+V8Uj86MbOjl3uCpHjtEra2M7FjQ7CBm5fnQnjCo6/BvRvOjwNYj8AGzU/zJroP5PkYGB5OYgz+ewckGr/T1UtVlZWGESvVIJMlKgSu2sIoLBkKLfIByqL0CooHYjOIWho0jIKFfeA==
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=s00ztgLAbziHEm6vt3o+FjLtKmooLKSneQ4KQrIXGdY=;
 b=zEfQYCGpexGBu1CyubaJAWvl4U6FfcjmQWwWADg0B2WeHFOoSrzegSQslYiVA1zAM2DbRipYHKvBfbjiRxqH3a9+6pSb4PTAW3nDlezbOxSnk/pE40wqENnDQ6MYD/lJY84Ui3D6tJcXl0XujFgTru8LpZJ78kskqIOyPPKsBhtQXqfnHk9zxd8mS7TSve8y9luxnlQ3mPdMWjJ5AAsHBDMUWZA69goU7xmFNOe1zfQaQRYG38FZNws8T36AyQBFC2sDNhZ8EWb2FD1D1gz62J9dWfuxvrUl6WkyTaIWEtR95x+6IkNO7CSGCzAU2W1y02l7ngdl2sGyq38K2cMPhw==
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=s00ztgLAbziHEm6vt3o+FjLtKmooLKSneQ4KQrIXGdY=;
 b=GfbVQIYkYSNMyz3ihrqvj/FbqOKFxNCZPlp/8/k4F2IizPjCW4LuA5meH8kE70KKDChzcxWT7/1cYpJKW+WXVVP59DB3zAj/DXMBRbH7Qk8JSseqzLXBYiVv41TaQMn77q6qDqCvmSTGaqL7sbaoobIwKmFiln2beuj0c+PmSx4=
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=AEz387b4b6HZ3+B7AuoGOxTF7bkp89d5OJW0FC4bM52gw3WKhwWJeqiYXoTMHxpMjNoNIqhnZQ6KMcyHPSLZSbp4iohFAG+rYmopYbYwLrIfEyqeh10mBvILhFgkpGVPj2CpRoFk1jRbowhwDsgJA+qZSaWRE7Vt1jDlEDtkku0ZL7JN010aq2FrRI7GNFwLyYlxseIh72lTeO3Z6i4YlMkFHHdR8p09bg5FCu0JmqReaCHHXD7hSnf7HC3ga5VDS8NEkazIFE8NIbTF4Y3lbourxWKyg0Vvzwk+0mn28y/sGKLAbC1UDanXeryZnB8N6AnbYwqS4lSj8k+kAzC+KA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s00ztgLAbziHEm6vt3o+FjLtKmooLKSneQ4KQrIXGdY=;
 b=UtWkdw2Ja7QyRGG5WGnlJfHNcbFRh4DHtGyzC24EnTe/6WrESl42fdhEUIHvGkAbUsbGV0yOhXwCqUNUrG2lpQRyZO4SJu7zzCcmgD9WRDyMFbSE28DrEdRnmdeZW+ZzVgnlfDdoLavR4tCMTtvTfL4gedSKly1Nuj2He7C0KGS/jNmeetmqfApQGo9CwjoOawUFSJQbV38MqyWqELv7aaEhs+Xc5iA340szojdcsWKu7EMEgP9M5dBzpDB8r/MB8MJqdeMRvSNbAi9dIKovyAp+65S864pSDgW3+51NDPdRaz+MfK/yU/madGeNJI5L80yl4G2Q/w5R4qHZS0LYWw==
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=s00ztgLAbziHEm6vt3o+FjLtKmooLKSneQ4KQrIXGdY=;
 b=GfbVQIYkYSNMyz3ihrqvj/FbqOKFxNCZPlp/8/k4F2IizPjCW4LuA5meH8kE70KKDChzcxWT7/1cYpJKW+WXVVP59DB3zAj/DXMBRbH7Qk8JSseqzLXBYiVv41TaQMn77q6qDqCvmSTGaqL7sbaoobIwKmFiln2beuj0c+PmSx4=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Halder, Ayan Kumar" <ayankuma@amd.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, 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>, Wei Chen <Wei.Chen@arm.com>,
	Hari Limaye <Hari.Limaye@arm.com>
Subject: Re: [PATCH 1/3] arm/mpu: implement setup_virt_paging for MPU system
Thread-Topic: [PATCH 1/3] arm/mpu: implement setup_virt_paging for MPU system
Thread-Index: AQHcnEZRjsHb6xYG00e+PVxLnB1X4LWAWuIA
Date: Fri, 13 Feb 2026 09:19:01 +0000
Message-ID: <044B5E7A-7DF4-46B0-B235-B4DE7FBE7E10@arm.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-2-harry.ramsey@arm.com>
 <49fd6b8c-5a6e-4914-a3e4-80ede233ac93@amd.com>
In-Reply-To: <49fd6b8c-5a6e-4914-a3e4-80ede233ac93@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.4)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PA6PR08MB10781:EE_|DU2PEPF00028D04:EE_|DB9PR08MB6378:EE_
X-MS-Office365-Filtering-Correlation-Id: 4ec40e5a-4c15-4ee8-6a61-08de6ae11340
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?UUNOVUJzMUpMRHMwUDY1QmsvcUNFenc4K3VJMG5iOFptQWRYZUVIWWNuTFZG?=
 =?utf-8?B?VVowYnFqclJERGJVdW81OHdIMTFjTFBBVDBZWm9pRnBudUVkTnhrMytuSjBO?=
 =?utf-8?B?M1hoUk1XY1ZBQU5jL2ZUYlI3dThCcFNKbnh3WE9FdkFReTRVMDlBZzVsbmRR?=
 =?utf-8?B?WjUrc3ZaSFp4TEQwMENlMkJwQlJLOU04K25sdHB6VGhmOGs5UzhXbitFa3M5?=
 =?utf-8?B?Ni9CdE1vVjdJQWNMQ1NwUXZZUko3eTV5a3dLb1drRVFTUisxcU96Rm5hMFFP?=
 =?utf-8?B?alYwYVlIVXlTZDVvWnZna1M3dFNENGZYckZzdzduSktPL05abGw2NWE4YmFp?=
 =?utf-8?B?WVc4MVpFdmxRWC9wSlUxalJqZkRyd1FmYWI1UXN3WWJiSG5IVFpNTVhaRHhq?=
 =?utf-8?B?V0tIa2M1aEY0S2E4a2tmNzhHbHlEZlpHM1c1dUJvMUlYNE5JQjM2MzlTODUx?=
 =?utf-8?B?UTlWVUJvaDlxSFBFcjhFTFZCRExmVFpaanB6ZktWVUhhdnovZk0vYU5VRDBF?=
 =?utf-8?B?NlByR2g3bjZod2o3WXoyMlkydzYvR2M4dy9HaU1DNk1FN2JoeDM2eTkveHdl?=
 =?utf-8?B?aTdjaVZtTC9PZzdqaFJhaGpOMisyWHc1K2x3M3JGWG11YThsZzVhd0xRRDYx?=
 =?utf-8?B?NXJzb25sZERWUzNWcVJ0TzJqZjdYTWIveVZWRHBBUXRUbzFNNGJhb1FFNXBU?=
 =?utf-8?B?dEVZTnVVV2FacjRHbEVFbUk4WG4zUFhvMEhpUWRGOXdPcGF3ZHN3eG1ITC8y?=
 =?utf-8?B?MHBZVzJmV0VJdTNYZldtOVJzMCtzTjNISitEVjMwZE1VeGhMczY3d3BBdjVK?=
 =?utf-8?B?VU5JcVpqSFIzTkVkcEdEbWZIUkcvTEJNQmJqcUVWOHNKelNRUWZLMFcwRE45?=
 =?utf-8?B?OWF1NllHL0ttN29ZOVVEUHp5eGNXVDUvUFlUV05ZRnprV2hJQUp0Rm16Mk10?=
 =?utf-8?B?S2lxc0o3Q1pXV0tCYjUxRWY5K2tQR1NVRGFKZU5LcXFkdy9qdlR0bFVRS3RC?=
 =?utf-8?B?ZVBGTlVreFp6WHliR2w2SzUrVjZhVkJPbnlUR3VaVTE3WGNPVGM2UGVoamhx?=
 =?utf-8?B?cERjNlFnV1BGY0NHS04zd0VoRjhOUGhMSkJ6NTA2RHUvLzNDMFBQS0J5T3RL?=
 =?utf-8?B?KytqUUJrQi9VVlhCaExUSDRlR25wTTE5TXlNNC9kWHB3L3RKSUN0U3ZmeE1O?=
 =?utf-8?B?aWZCaHp6cmhCQ0g5ZWUwNFlvT21XYTZPNUd5a3AvUzgwV3FUTm9CNWU3V2V2?=
 =?utf-8?B?UGM3SUZhRGhybEZ6NXloSHFQbnFmTzZQMy9xd0dZeHZkQ1FlbTd5SnpLUmE2?=
 =?utf-8?B?N3Y4OXVqalBLcGtMS0l2aTgzM2d1eXFWY3V1MFNBZlJUOFQ1R2NEQzJ4bG5P?=
 =?utf-8?B?SHFpZWgvVy9HWkljOHUwdk9ibm5aNk8wcGlLYzF4K2dEZ0NMVlorR1BvY3lw?=
 =?utf-8?B?Tm1iZ0dzK0NhMDhVVUpSM1grMDBTSFQvMHJPMHZROGNVSkJITkNJRCtzSlls?=
 =?utf-8?B?dTdzbWpFWS9ySG9uc2pnUURDYmxXWGYrVFR5UVd1QzZBenEvY0xseWx0YnJr?=
 =?utf-8?B?ZU5EOGVFUGpDdUxLaDk0V2hGVEltZUxEbUFUN0NjTy95Z3N0NUd5RUNRSUlv?=
 =?utf-8?B?VFZ1SkZUaHlhcURRbmRwemVmMGtlSnNFcjhrbmRSTFBibW9lcENwemg3VXV4?=
 =?utf-8?B?RFJ2UWduanViQzRCOVpDd2sxY29Nb2dPL2h4K0cxcHZGMTZTZUhhV0xWdURF?=
 =?utf-8?B?UDRUa01MRFhVSVlsNVVmS0p5SnpQc2sxUzhGMFo1REVRNWpsVDZ5YXFpaU1q?=
 =?utf-8?B?dzAzT2xLNU5RMXMwYjFtaUhaS2xyUUxldFlheTc0UHEyUFRrdStqQnNWaUNt?=
 =?utf-8?B?VDZIWHpqUWhqOW81Qk8zNG9PWWZMdVU3cjRDZXYzbzhzejg4Z0g3Mk1KR2lU?=
 =?utf-8?B?MXY5TCtzK0QzRTFNSUhFVzBZQzJrdldpVUprWmw1MzdBNlhBeW9NWVd0YU1j?=
 =?utf-8?B?NDVZMENnY1dRcmVzQ2JRQzd5MFFxNzA3cXpUYXVVUWlsZ2tjQlBlOHE2NjRx?=
 =?utf-8?B?cHJsMkUwVWJXL0dMQlBrYWVmblJUTnk5blBzc0xIZVFVNlJ6M21PUFRLZytN?=
 =?utf-8?B?WnJ6eUpkZG11SFJ1ZTZpMCtkR1VoZ3pOZktXcVhRV1BxbmNsaW41SjJsdlNm?=
 =?utf-8?Q?IjtXZR+FJu1zgMMnqMXU//1nBgTk/Rz8sQMhzpu8R+BH?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR08MB7272.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <DD856116B6FFFF42A412378A1E5036D4@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10781
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DU2PEPF00028D04.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	f39f2da0-d85d-4dc4-bf99-08de6ae0ecd5
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|35042699022|14060799003|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aDIzMG56U3AwdjZ1ZitvelNwNndhZ1d3ZnVlNzZiblY3U08zWGxiMjVWeG1Y?=
 =?utf-8?B?ZXJqUG1UeTVDRkVZSGZNR0o4WDhuRkpuZkJUa29wMER6SCtxQ1Y0OXM4SjBT?=
 =?utf-8?B?S3dPOUs4WkVIZmhvaThPOHZNZ3FNRmk0RkNlb29SNjc2OEtCTGw1Um82NEpI?=
 =?utf-8?B?UkNWRXlyUzZYbEdWK0ppZXo2TnV6S3JMek9JR3lOaUdCcXVMeG9obXdzem5r?=
 =?utf-8?B?dzdjUFZWNmJSbTFjb2JHdXBmTHZNaG16SE9tdFJMSHEwUzNRd2dxVGdXWmNR?=
 =?utf-8?B?NG1SM1VGUVZYNzZEN3hWS0FiS25jUG43bytlNlB2enhuc2JqTXcvQUdnVHo4?=
 =?utf-8?B?a1QvbHNST0F5RmlMRUZ4Ni9OYVF2VEFHY3ptRHRBcW9GbEhOUVhpQ2JBWlk1?=
 =?utf-8?B?d1FtNk5NUGVEbkxQc3IzeHNpTmtZelZUcHhMbHpRTTA3TWtlYnJ1N1BTbWJk?=
 =?utf-8?B?bHFzR3ptbHRBL3VML3RxZjJsMHJxbFE4YkI5MkpYNENiV0djSC9tUDM1NEp5?=
 =?utf-8?B?MXkwM1VscncrZm9Od01QQmpIQno1OXNia3JGdTd5d1NvbWNkWHdTNXN4VERw?=
 =?utf-8?B?bklYTDdmYlV5TU9UdU1OYmZEOUpXUXdMN1ZIdjhUQ0tjTXBjZW9aODVOS2pC?=
 =?utf-8?B?d3BCbjFLUUpmWXVHRm5nemVBQ2JucC9CdTVyOStEMi9EcGx0ZFJhQkhNNWUv?=
 =?utf-8?B?R2xNOENmY0ZBNzhpbDZyWFFKWlcyYXA1NS9ISkZvSzZxaUdSeGhtQWFFUW1C?=
 =?utf-8?B?UFFHU3o4RnBiUlhycnRoWEhEWmRkMjloNm4zTDY0ZUV6b053Z2xUWU9BTEVv?=
 =?utf-8?B?VktpTk9URjVuNmJBcnBiZm53UU9PWDhuTWNKcUZtQ0QvZmpGVS9uNU5HWC9C?=
 =?utf-8?B?VDBqNTJxcTFMTXhZUWU0QmF3T2N6cldhbmhNT1R5cUtyUlZBNjg3VkMxTlcz?=
 =?utf-8?B?R1dRa1ZScEtDSnhzeW4zbDAwYWozVTVadE9xL1hBdUN2U0w2dDYyd0xzYzA2?=
 =?utf-8?B?NW5pNTN6cTF6Q21XZmUzUm51b29qaXpxTGQreGExUVBNa2ZKMTAwWlhoaHFi?=
 =?utf-8?B?YlR3eCtRbnliOTk3cWwySDZyQnJzUzZZcjBpR001a3JEcVY3UGJqTlNRc05z?=
 =?utf-8?B?Y1JtZFpGMDZxOWlLOTB2QjMvUG81RVBGRzdteXBkSnZLejZHbHlNeWlaR2RT?=
 =?utf-8?B?aWg0ZEc0NWt6TnNoT0orTnRtYmtxWTczbjdaY3IyMi96Nzdad28yYUd5TW5t?=
 =?utf-8?B?M1hxdWNLRW1XM3RxcjRYazBRM2V1ZFRVUEJ5cVNFRnBreG5ZeHJNcEh6VEFX?=
 =?utf-8?B?WDhjeXFuNHdHTEZyZGlRN0ZIRUM3aHZkc3ZqVVpiUllLSk1obldPdkwzbmNW?=
 =?utf-8?B?SHZiaDNZZHhuaDF6Y1lvend1ajRXRCtFT1FlVHZodFdlZ2dCOEYrdEFXRmtk?=
 =?utf-8?B?VVJjdCswaTNPL1N3Q245Q01RRmJUeldPS0s1OTJhZXYwc2xZQmt2eWtEZXFh?=
 =?utf-8?B?dGZWenhTcVFQY3o1OEQxVnVRdW8xaFMzREs1N3p3WVoxTHdNcUFtL2NtSzZo?=
 =?utf-8?B?c01IWFQ5aEdicWFmSDRWeXA0SGtTNmlmb2YwbFREODlhRHBCa2FibmpJQlBh?=
 =?utf-8?B?YTZPaFFOY1FDTjRxTitkbTQ4UHBJUy9XVGdjMnRqUThOU0FiU082V1RBazFx?=
 =?utf-8?B?TFB3dnVER3QyOGtMdWcwS2FMdnd5ZWR4NTlvV3NCVlpXYjhhTTF6QkNNdEhJ?=
 =?utf-8?B?Q3hEVnlKZnBhTkpjbFpaZlBGS2UwTnNMczlOa0tZTVB2ajBkZnRDbm53YnJu?=
 =?utf-8?B?Y3J0ZStuemFmSGpzbE1JRWVzbXQrVlp2ck5qMlhvK3QxOGZzMUEwRnlwQXhm?=
 =?utf-8?B?ODgxdjlhV1RxdFdUbi81Qk1LeDJDb1dUS0pxbVJtNTJqaXZaR096dWcrSVph?=
 =?utf-8?B?UmQ5UVNlcWtlaGNsc2JyZTR1SFNOMHN4OGlOL0tkRnkycFZ4MmxrOWZvTmlR?=
 =?utf-8?B?ZUN0SG1VSzU3QndQWlp0TEZrMWtJTlZQcDdVUzI4SHB2TmFaakNYbGRtQTdW?=
 =?utf-8?B?eGVMZENiWUJGdzVmUjMyZkpJRDQxQmsyZnlvanplelk4YnhwQkRsMlFvQTg3?=
 =?utf-8?B?RmtmVjBpUXlxVnJuMjFaaWNXYTFON3JlZDF2WS92M2VwbEtDdldZVWthSkJa?=
 =?utf-8?B?RjlvRFU2dFRWbWNXSzl6Z01CakoyS3grOTAxanhLMm5uMDBTOW8zNlplRG9h?=
 =?utf-8?Q?CtC0M3Sj84IE/D43sgIfFbJoV80fnE14DfAfd6Bmu8=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)(36860700013)(376014)(1800799024)(82310400026)(35042699022)(14060799003)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	2mexvmoixG9uQDFyUgMNkXpYvKCmp7yX4QyO02T23is3JbTD8CGaPL2MwgG46RWH8f7xbs/GJRh7vVy3B+LZhcvg7mceK7lsmOFgQm75o+7fIXCO7hzoL9v0a4HjhEffsFhtJ7kEn5c8vjwE+4MmyBrhWnfw5J9GPhiBgPL4U/yn3im4ITll2DM0OGM6Hs2ugMhlQLQ3WRylAIAeRAro48jwP0BJSA6GE5Jj9CDHOoFLso9jAnxdI6HmxzPemBIHh9GZ6HyxLGryFJZgWxj8I/wQuOFzB+Z2V71ivI++4JnVlXVzyAg2VqN9OtfFr9txfaHqD/IbqGy85fw6bEMlhVJV4sNb6ddfDooITt5exxoQPsA9MnIULan47UX0IyZb5zIWi+qBGqqvXbqkuTNNWGnAOCv/80z1KRvaEm2SCud7oIwX00cTUcFfVY+e8BOl
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 09:20:05.5262
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ec40e5a-4c15-4ee8-6a61-08de6ae11340
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:
	DU2PEPF00028D04.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6378

SGkgQXlhbiwNCg0KPj4gICAgdm9pZCBfX2luaXQgc2V0dXBfdmlydF9wYWdpbmcodm9pZCkNCj4+
ICB7DQo+PiAtICAgIEJVR19PTigidW5pbXBsZW1lbnRlZCIpOw0KPj4gKyAgICB1aW50NjRfdCB2
dGNyX2VsMiA9IFJFQURfU1lTUkVHKFZUQ1JfRUwyKSwNCj4gDQo+IEkgdGhpbmsgdGhpcyByZWdp
c3RlciBpcyByZWRlZmluZWQgZm9yIFI4MiAuIFNlZQ0KPiANCj4gaHR0cHM6Ly9kZXZlbG9wZXIu
YXJtLmNvbS9kb2N1bWVudGF0aW9uLzEwMjY3MC8wMzAxL0FBcmNoNjQtcmVnaXN0ZXJzL0FBcmNo
NjQtcmVnaXN0ZXItZGVzY3JpcHRpb25zL0FBcmNoNjQtR2VuZXJpYy1TeXN0ZW0tY29udHJvbC1y
ZWdpc3Rlci1kZXNjcmlwdGlvbi9WVENSLUVMMi0tVmlydHVhbGl6YXRpb24tVHJhbnNsYXRpb24t
Q29udHJvbC1SZWdpc3Rlcj9sYW5nPWVuIC4gU28NCj4gDQo+PiAgdnN0Y3JfZWwyID0gUkVBRF9T
WVNSRUcoVlNUQ1JfRUwyKTsNCj4+ICsNCj4+ICsgICAgLyogUEEgc2l6ZSAqLw0KPj4gKyAgICBj
b25zdCB1bnNpZ25lZCBpbnQgcGFfcmFuZ2VfaW5mb1tdID0gezMyLCAzNiwgNDAsIDQyLCA0NCwg
NDgsIDUyLCAwLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qIEludmFsaWQgKi99Ow0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBSZXN0cmljdCAi
cDJtX2lwYV9iaXRzIiBpZiBuZWVkZWQuIEFzIFAyTSB0YWJsZSBpcyBhbHdheXMgY29uZmlndXJl
ZA0KPj4gKyAgICAgKiB3aXRoIElQQSBiaXRzID09IFBBIGJpdHMsIGNvbXBhcmUgYWdhaW5zdCAi
cGFiaXRzIi4NCj4+ICsgICAgICovDQo+PiArICAgIGlmICggcGFfcmFuZ2VfaW5mb1tzeXN0ZW1f
Y3B1aW5mby5tbTY0LnBhX3JhbmdlXSA8IHAybV9pcGFfYml0cyApDQo+PiArICAgICAgICBwMm1f
aXBhX2JpdHMgPSBwYV9yYW5nZV9pbmZvW3N5c3RlbV9jcHVpbmZvLm1tNjQucGFfcmFuZ2VdOw0K
Pj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBDbGVhciBWVENSX0VMMi5OU0EgYml0IHRvIGNv
bmZpZ3VyZSBub24tc2VjdXJlIHN0YWdlIDIgdHJhbnNsYXRpb24gb3V0cHV0DQo+PiArICAgICAq
IGFkZHJlc3Mgc3BhY2UgdG8gYWNjZXNzIHRoZSBTZWN1cmUgUEEgc3BhY2UgYXMgQXJtdjhyIG9u
bHkgaW1wbGVtZW50cw0KPj4gKyAgICAgKiBzZWN1cmUgc3RhdGUuDQo+PiArICAgICAqLw0KPj4g
KyAgICB2dGNyX2VsMiAmPSB+VlRDUl9OU0E7DQo+IA0KPiBCdXQgdGhlIFRSTSBzYXlzIHRoaXMN
Cj4gDQo+IFRoaXMgYml0IGJlaGF2ZXMgYXMgMSBmb3IgYWxsIHB1cnBvc2VzIG90aGVyIHRoYW4g
cmVhZGluZyBiYWNrIHRoZSB2YWx1ZSBvZiB0aGUgYml0IHdoZW4gdGhlIHZhbHVlIG9mIEFBcmNo
NjQtVlNUQ1JfRUwyLlNBIGlzIDEuDQo+IA0KPiBTbyBzaG91bGRuJ3Qgd2Uga2VlcCBpdCBhcyAx
Lg0KPiANCg0KVGhlIHdheSBJ4oCZbSByZWFkaW5nIHRoZSBhcm12OC1yIGFhcmNoNjQgcmVmZXJl
bmNlIG1hbnVhbCBbMV0gaXMgdGhhdCBpZiB3ZSBzZXQNClZTVENSX0VMMi5TQSB0byAwLCB3ZSBu
ZWVkIHRvIGNsZWFyIGFsc28gdGhpcyBvbmUuDQoNCg0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAg
ICAgKiBUaGUgTVNBIGFuZCBNU0FfZnJhYyBmaWVsZHMgaW4gdGhlIElEX0FBNjRNTUZSMF9FTDEg
cmVnaXN0ZXIgaWRlbnRpZnkgdGhlDQo+PiArICAgICAqIG1lbW9yeSBzeXN0ZW0gY29uZmlndXJh
dGlvbnMgc3VwcG9ydGVkLiBJbiBBcm12OC1SIEFBcmNoNjQsIHRoZQ0KPj4gKyAgICAgKiBvbmx5
IHBlcm1pdHRlZCB2YWx1ZSBmb3IgSURfQUE2NE1NRlIwX0VMMS5NU0EgaXMgMGIxMTExLg0KPj4g
KyAgICAgKi8NCj4+ICsgICAgaWYgKCBzeXN0ZW1fY3B1aW5mby5tbTY0Lm1zYSAhPSBNTTY0X01T
QV9QTVNBX1NVUFBPUlQgKQ0KPj4gKyAgICAgICAgZ290byBmYXVsdDsNCj4+ICsNCj4+ICsgICAg
LyogUGVybWl0dGVkIHZhbHVlcyBmb3IgSURfQUE2NE1NRlIwX0VMMS5NU0FfZnJhYyBhcmUgMGIw
MDAxIGFuZCAwYjAwMTAuICovDQo+PiArICAgIGlmICggc3lzdGVtX2NwdWluZm8ubW02NC5tc2Ff
ZnJhYyA9PSBNTTY0X01TQV9GUkFDX05PTkVfU1VQUE9SVCApDQo+PiArICAgICAgICBnb3RvIGZh
dWx0Ow0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAgKiBjcHVpbmZvIHNhbml0aXphdGlvbiBt
YWtlcyBzdXJlIHdlIHN1cHBvcnQgMTZiaXRzIFZNSUQgb25seSBpZiBhbGwgY29yZXMNCj4+ICsg
ICAgICogYXJlIHN1cHBvcnRpbmcgaXQuDQo+PiArICAgICAqLw0KPj4gKyAgICBpZiAoIHN5c3Rl
bV9jcHVpbmZvLm1tNjQudm1pZF9iaXRzID09IE1NNjRfVk1JRF8xNl9CSVRTX1NVUFBPUlQgKQ0K
Pj4gKyAgICAgICAgbWF4X3ZtaWQgPSBNQVhfVk1JRF8xNl9CSVQ7DQo+PiArDQo+PiArICAgIC8q
IFNldCB0aGUgVlMgYml0IG9ubHkgaWYgMTYgYml0IFZNSUQgaXMgc3VwcG9ydGVkLiAqLw0KPj4g
KyAgICBpZiAoIG1heF92bWlkID09IE1BWF9WTUlEXzE2X0JJVCApDQo+PiArICAgICAgICB2dGNy
X2VsMiB8PSBWVENSX1ZTOw0KPiB0aGlzIGZpZWxkIGRvZXMgbm90IGV4aXN0Lg0KDQp5ZXMgdGhp
cyBleGlzdHMgaW4gYXJtdjgtciBhYXJjaDY0IFsxXQ0KDQo+PiANCj4+ICsvKiBOb3QgdXNlZCBv
biBNUFUgc3lzdGVtICovDQo+PiAgc3RhdGljIGlubGluZSB2b2lkIHAybV9jbGVhcl9yb290X3Bh
Z2VzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0pIHt9DQo+PiAgICBzdGF0aWMgaW5saW5lIHZvaWQg
cDJtX3RsYl9mbHVzaF9zeW5jKHN0cnVjdCBwMm1fZG9tYWluICpwMm0pIHt9DQo+PiBkaWZmIC0t
Z2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3AybS5oIGIveGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL3AybS5oDQo+PiBpbmRleCAwMTBjZThjOWViLi5lZDFiNmRkNDBmIDEwMDY0NA0KPj4g
LS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3AybS5oDQo+PiArKysgYi94ZW4vYXJjaC9h
cm0vaW5jbHVkZS9hc20vcDJtLmgNCj4+IEBAIC00OCw4ICs0OCwxMyBAQCBzdHJ1Y3QgcDJtX2Rv
bWFpbiB7DQo+PiAgICAgIC8qIEN1cnJlbnQgVk1JRCBpbiB1c2UgKi8NCj4+ICAgICAgdWludDE2
X3Qgdm1pZDsNCj4+ICArI2lmZGVmIENPTkZJR19NTVUNCj4+ICAgICAgLyogQ3VycmVudCBUcmFu
c2xhdGlvbiBUYWJsZSBCYXNlIFJlZ2lzdGVyIGZvciB0aGUgcDJtICovDQo+PiAgICAgIHVpbnQ2
NF90IHZ0dGJyOw0KPj4gKyNlbHNlDQo+PiArICAgIC8qIEN1cnJlbnQgVmlydHVhbGl6YXRpb24g
U3lzdGVtIENvbnRyb2wgUmVnaXN0ZXIgZm9yIHRoZSBwMm0gKi8NCj4+ICsgICAgcmVnaXN0ZXJf
dCB2c2N0bHI7DQo+IFRoaXMgZXhpc3Qgb25seSBmb3IgQXJtNjQgTVBVLiBTaG91bGQgd2UgZW5j
bG9zZSB0aGlzIGluIEFSTV82NCAgPw0KDQpJIGNhbiBzZWUgaXQgZXhpc3RzIGluIGFybXY4LXIg
YWFyY2gzMiBbMl0uDQoNCkNoZWVycywNCkx1Y2ENCg0KWzFdIGh0dHBzOi8vZGV2ZWxvcGVyLmFy
bS5jb20vZG9jdW1lbnRhdGlvbi9kZGkwNjI4L2xhdGVzdA0KWzJdIGh0dHBzOi8vZGV2ZWxvcGVy
LmFybS5jb20vZG9jdW1lbnRhdGlvbi9kZGkwNTY4L2xhdGVzdC8NCg0KDQo=


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:21:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230369.1535852 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpMT-0005TK-4U; Fri, 13 Feb 2026 09:21:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230369.1535852; Fri, 13 Feb 2026 09:21:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpMT-0005TD-1m; Fri, 13 Feb 2026 09:21:17 +0000
Received: by outflank-mailman (input) for mailman id 1230369;
 Fri, 13 Feb 2026 09:21: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqpMR-0005Sy-FL
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:21:15 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50e79cc2-08bd-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:21:03 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MN2PR03MB5151.namprd03.prod.outlook.com (2603:10b6:208:1ab::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 09:21:00 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 09:21: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: 50e79cc2-08bd-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zOLE41X8UKbUT1DP3y0KXD10N36nnwCpo7YIS5F0sMAj6g8SUBBfUOR+vPOEz+fme2cWYWuhbuPo1ib+ShVb8w7m/VhHj1HRbezL+a2lN3+pQMbVMYBGfkKorVh3iKrZ61hLDohetTJl2H1DKwgaAWQSqUrZwS9ijrF4lJYUCyF4o3O7W0tV0MF/1HyRX1uOGpU9ZnRaR4XZwxN5i3tcZSrFO1OOlVNqaxSJbR3m4Qqd7gUgATqsmIYcMLyMAuLG9N3YBF10v5iKbMXI4zbALMG8cx0Rz6Z0qdXsY4m2Ghk27Cumwapzja8uWUFNpKWDda8ZN8E1lGB1jUhGvVVPOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iJYbYyKldCsd05Z1aVUDZ0Q4DFlyKL6R/ype5LiatdM=;
 b=XL43yFMzUmfuNl83Y30EGXot8PX3CXp70Ph2IJFQjbMwkCC56bMcu4VrcfSSpLugq68vXouSR0aQNnKk09QRske+e4YDwLO75UGga/fCUzPmZXR0oJZgGghy+8AO0TL8EGXs44rYxNDREfs8g6I/Pw9gWWDJljLLt5QqaPf4tOZV8BsDL+TEUE5nIK+cUJuqKug2WsyAw8TKcPYY6HdC9vQGYckIjMuzlYblLLygnMyI3XjCMGy7DcjyuGDyugLObiM8Y7QnNZ6qQvZ9WouGbsGw/Llq/EL6fR4LD3zebdHLoebMylkQCvGjvFZUEt3kNYxAdHf+yuRfgZcbyUiw7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iJYbYyKldCsd05Z1aVUDZ0Q4DFlyKL6R/ype5LiatdM=;
 b=z6SRGLiZ/sw6xDHfhyjyccwLmnei7GI4GeuCdynrCszNQ37LhX3wvmHBpRZNlHdvJvlwUxX2ZEcMuhM2V+oQwZUSFxC6gTfQkJa7XgMx/4JyOZqilvG4invVXpl8PwIH7cvHXVT0WHdwyLDDPoms7wMJKTP7h/iG/2NC6jatQiw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 10:20:57 +0100
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 v2 0/5] darwin: expand cross-builds to also support x86
 and testing
Message-ID: <aY7s-SFbVcGgvVX9@Mac.lan>
References: <20260212144618.43200-1-roger.pau@citrix.com>
 <61a3f852-915c-4d9f-8dde-01d000aa4fe7@citrix.com>
 <1a98f22d-ef9e-4df2-aa87-585713cd3989@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <1a98f22d-ef9e-4df2-aa87-585713cd3989@suse.com>
X-ClientProxiedBy: MA4P292CA0008.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MN2PR03MB5151:EE_
X-MS-Office365-Filtering-Correlation-Id: 7854f834-f0a0-4f4b-6e41-08de6ae13389
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?VnUyeS9hN0pFQThhMGJOeGhjZWJ2a2lvV0t0cjhwYzFWWnZ4S0xNd2RTdWh3?=
 =?utf-8?B?Wi9ESWh4Wm5ucTFJWXJjVnlMSUQrbjVPQ2NrZmVaUlhHcGljN2JOUitTcXhW?=
 =?utf-8?B?L21HcXA0QmU3eUFUeXN5TnlNUHJpc0tjM0JxbW5TcUJYWkp1b2REeVZ4ZVFs?=
 =?utf-8?B?LzNrdTA0empYNnRQTXBicEs0eWpTYkR0bXRjZWNBYTBlbURVTS9pbEhPL2k5?=
 =?utf-8?B?dHVvdGsxb1prM25OSVVXYjZXZVdtRjdWaFFjeXlYTzl4aXYzQzRSZUd5UWZw?=
 =?utf-8?B?bTJWdU96akRCS0w5WTlZVWpoNEpqUkZTcWQ1UDY2czBBNWtLN1pmNnBuYjd4?=
 =?utf-8?B?NFhiYUZzQ2gxajduNXU4L0NVUFNZUWlyQklTU1ZvS2ZXSmZmd1EyMitFUUpN?=
 =?utf-8?B?Y1FNVzZXdDQ2VXVmMGt2VnNqZVpRNkxsSHl6d0tZUEhKNE9HWHk2MlJCSnJY?=
 =?utf-8?B?TExHY1JXM2R4czZnUkNUQTFYOGlFQnNXL0VrVVBHUWhzTlZYYUN6eER5eG5m?=
 =?utf-8?B?YWhyejhNSjdGdEkwVDdtbVgrb0pnSTlCNmxFaS8vcys3SHMyT08vbTFKVmxj?=
 =?utf-8?B?MEZuRGRWdlZNNGY3Rk8yQTJJY0RuWG0xUjY4dDdJajRTNFNpazBkcEtqaHd0?=
 =?utf-8?B?ZDM3K0IyZ3M3V2l0WG1xUERxcjFaNlcrbFNhZ2RjdGJTL0JzNFZkb25RVmtI?=
 =?utf-8?B?YkVQbTJjMzdxVUw3ZDBaamdWVThTWFIxdVRVY1U5Y2VOZ1l2N3kvbmxYWlhF?=
 =?utf-8?B?OG4vOEg5dTJBZlBUYWNDeWdiNkhyQ1JROVZjeFVGV3c4MG9QOWlHcGpBS2Rv?=
 =?utf-8?B?VWJYS1V5K2tEWTh1UGlkeEJYZjVyYUJOU0tVWmZIVkFPb051bDdPaDV1Q2F1?=
 =?utf-8?B?bTNpZk5VZDFvN1ROSWRrLzcrUDc1UVZRVzlBdXRSd200c0g5d3RxbmRGam1E?=
 =?utf-8?B?TG9UUEc2dS9DRTVGN2dxcWNFaEJwYk1PenViN3E1NXhTWkVoaHpzSFZrVlpq?=
 =?utf-8?B?TVU5TStMWHNmWUxOQU1sY01Vb0lQb1VpOE4rZUVoOWtBWEVrSnJ1RnlDSE83?=
 =?utf-8?B?OUg2K0wrSGhxclZ2R0pZQ1dtRlhOYWQreGVTaHVUSW5kMExLSkxuaHZVQ3VI?=
 =?utf-8?B?cVpOZDJ2NHZIdUI4OTd4OHpVMHArdTZBZVRWMDhEWFNHREZjbUlPMG1rL2wz?=
 =?utf-8?B?U3o2R1A4WW52RmFXTmRERitac05wd1l6UnFTcEZ6dEp6VEY0YXpwcDd3Qlds?=
 =?utf-8?B?dlhmL05MQUdrNUxrc21uL0t3RmkyWE52Mk5tYVVNbjVTVmJDMlRKNUZHRytM?=
 =?utf-8?B?QlBWVXlEVkRqK1pUQjZsY0gvb1NTQnA3Vy8wUDhQR1hzbUZ4WllKVi9GaU4w?=
 =?utf-8?B?RU5HemFpUlBOVkVxbGRUL0VCMTdjdE1SM1VieDNLMUVIeTdoM0VRRC9iQXFX?=
 =?utf-8?B?SStNN0R2SEFST25ob0lMRU1PUTVWWFAyR2pRRjBGM1hML3cxbldaeUJ6ckMw?=
 =?utf-8?B?NGh3MStHYWpDNE52dndVbnc1d0dzaC9OUytvQjZGYXEySWQ5Tm04S1JuT2VD?=
 =?utf-8?B?a2l6Y3U3TmVGNkNPRTA3TVEwOWRZVFN1NWRpUCt0VEJCZSthRTdlMmVXZDJr?=
 =?utf-8?B?Z3JnK1h3cnNOSDFDK0s5ZU5WdEc0eFFPei96Q2JYMjZNenJJZzdGanFGMTFB?=
 =?utf-8?B?aUwwTlF3alhaQVoyRkNHSXd6WmNMWDdXZzZ2SHAzQUh4bThYZFp6ZW43cnNT?=
 =?utf-8?B?Mk5yODRJa3VCeGJQQlowTTVVSGpnV1NibUsvZlg5ZHJRSlQrbEFKRUVSYmVq?=
 =?utf-8?B?ZjVtenFmbkhuOXMvb0NCODhjMVJaMXhzblRKdEswaVB2ZXQ3aWVkb1JpalJ5?=
 =?utf-8?B?OWxhM0JXblM5eWFIZmlRVG56am1MYWppL0FVY0UvTWMxN0xodm5OcHBwcnlr?=
 =?utf-8?B?TGtsY1Z5L0xjNUtiRWovMnVMMEFTVVR4KzVXbkh4UzZobVJYSDgyWWpiSlFH?=
 =?utf-8?B?V1NBMGE4WVgvM0JrRmhrWmlrU09ENXcyQXNZTEYxOThqVlk3VjVIL0NhL3Fs?=
 =?utf-8?B?MWg1SDNZV1pjRGtkTmJSRXJldk9vR0lsbXdRVnI3UFB0dXZXcjJzL1BjTUxS?=
 =?utf-8?Q?r2RU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WFk4czFidTVGSUlqYlpYUEt1OExYVGpFMzFLWTVveVpmWjNOK3p2dGUwRlFP?=
 =?utf-8?B?RTRrRXVQb05pOURtTU1ydzhCQWJKaFJtU3lJeE5lQlo5SnJKVTJoREVKY0ZM?=
 =?utf-8?B?M2JuMGgrcGpRUisrR2dkUmpwcWhuUUVtOXByaHhMYXZkT1FHYjhaM3FvcW94?=
 =?utf-8?B?TXp2K0Nqa1hvVTJ1NUN6M1haOTdwV2VmZldmNmY0Y2JGdDh5WkpMa1N5NnlX?=
 =?utf-8?B?aFZJbWRUWXF3eGRLVkVDRDFKT1BTZzdBaEpSRzF5aHpZM3NNbVhVeFZmdVhB?=
 =?utf-8?B?YnRERE1aZE1ZejY4dFpkWnFua1h2dlJyNDR3OE5VSUhGVTIwempOa1dkNVBh?=
 =?utf-8?B?OTZHTnNOckNTWGJTb2RNYkx1Q0c0Q1NrNnVKSlV3cERWK05HQ2s3bkhrYnZn?=
 =?utf-8?B?Wk1IYWNhSHBhLzI1eDZTK2ZNVlJVTExpaEgzY0xpODYxVjd1emVSZWRycms1?=
 =?utf-8?B?S2hIZGlScVBERnJNRTNXNkZqd2NKNkZuRkE5eGJNNUxmSTJZa1U1MTM3TnVp?=
 =?utf-8?B?QXpOa1V3WDBaUVhtZFFJRHoxR0YyZHgreHEzS3ZlTmVZSDkwbUpsU2JUMlFx?=
 =?utf-8?B?THE3dHc3dnQ5a3diSmh5SnB3d0wxSm9uWkJkamZvc2VtOXVKbmR4YmVXRUJX?=
 =?utf-8?B?QmFvQ1NTQUwremk1bDcwQ3pBdHBZVU1URkY5MFBaaFZQamszSnNpV0R3dlFB?=
 =?utf-8?B?YjBPbGZTc1I1YmlDbnFjWjNHWklLZ2R3ek9zMnFRYnRIWUJTV2s4aFJRQ0pG?=
 =?utf-8?B?blVoY0o0aVZNMHh6bTNzMmtxQldwam1hVlduNGhpYzJNYTBZQ05jZUN1VGVx?=
 =?utf-8?B?bGJBMW9nZU5KNjZTRmVZMlB3M2EzYTB5a0VDczFwcnpNYUlHbWlQSHdBam9T?=
 =?utf-8?B?VTM1dDFpclFObm5wam5KYXprMTdhMzduWW8rY3VJVWlHZG5yR20xQkplT1B1?=
 =?utf-8?B?RUY2Qmh5NW93Tkd0QXBqTDdsSGpEcjJnUU5qL0J1TG5VVFR6T3VXRWtTdlU4?=
 =?utf-8?B?RnRwdXJkNkIwRyt3c0M0dmwzaWNoblVrbTFQZVlIdFdQTXdIOTl4Nmg3YXlv?=
 =?utf-8?B?Yk9HbWFxZlhRTm5TK2xOSTZiYW9ia2ZhREZnWlU1V2U0dCtqTHJhTThiL3VY?=
 =?utf-8?B?c2lERTFBNDR0ZkYvWW9tMkFpVk5KSWtEY2FnamlxeElEYzY2dHIvWUpxZUwy?=
 =?utf-8?B?SU5FdjBmZDNuK3oxaDVjRWt6ZC9wWkNXeUJRNlllclJKVWhNbWlKR2RNVTRT?=
 =?utf-8?B?aFk4NmVtM08zMFgzSXY5U2laSXV2alZIS2lKY2tuNUc4dVpNc0w0S3E5cTJW?=
 =?utf-8?B?REVxQnlYZVJuakxCN0dlaGNzN2xqZndLZTlRWGxWUHZ3UXowT01UQlRyWXhM?=
 =?utf-8?B?aDdzQWFpN2xMdUsweVpzaGtXOVFRN2RhTDF3YWx1dkM0eUdqdVRVcmtYRFpY?=
 =?utf-8?B?MlFqeXJpQVJ6R2FEamJ0eEs0WHFOWjFWRW4yOUR3MTdnRnh4MUN6dUc1TGRX?=
 =?utf-8?B?QWVVLzVjQnhMS29sS1dUVm5XLzNHdFRzZ01SN2xHZkE0bjduNFpwRDNLODFB?=
 =?utf-8?B?ZDZqbU5zd3R0WmJBUUJCYjRFRmJzTWUyNElNdEtZODZjalByeGpBUCtKd1Zi?=
 =?utf-8?B?amJkQ1czY052dE5WVzJ4RnhiU0pjL1orNnhBbmJtOFc5RllLWkJnMkdwZ3hN?=
 =?utf-8?B?alJwZmliRFBDbWRUTnVZMUpNbUs2SGJFdlVkeS9iU3RQckYwMXBlVDBPOG1y?=
 =?utf-8?B?RXpDY21FbHZBME0xSUZuSnZQMHJyZXYwRVdmWU9nbVpMQW53VDN3VXZ6MkFn?=
 =?utf-8?B?VjJjVk50R1V4cXRHTUlUMG0rY0p6WWEzbVhxeFQyMnBaSUhNeTViWFJGNWxV?=
 =?utf-8?B?MGMvVWFhWkhKSnVKTEJ1RGJ2N0UxT1hFR0tEL2lyVS9OWlRuM1hCanF3dmRO?=
 =?utf-8?B?RFVmaE1hMlhRZmZCTEZOb25CdTNOZ0FXSjhLQ0VLZWd2M2JsWDdWbjIyL2xG?=
 =?utf-8?B?U25mN0NXMWh2SGFuT29ldlcvdmIrZHVOMldEaTVoR3hSL1lpK0JIVnVmOGVI?=
 =?utf-8?B?S0pKRjZCOFdRYUl6U2Q1MTkyRWszMGtEYjNBSDBJd0tGUUpSYTgvMXNncTZR?=
 =?utf-8?B?enk0SGluY1JnVmdSUmxBekcvZXBTR0x4QlFxcHdmMk1sbnliZmFqYTd2RzFq?=
 =?utf-8?B?VWcrcTR2WXp3N3B6a3dnWitmMmpDRm5UR1dETXU3MzVCNVI4SXpjWFJTalBN?=
 =?utf-8?B?NkVyclFpbDY2UmtJUEYzbW9YSlZVM2s1UGMrcWxCaXJCSUdLVUV3Q29WMDcr?=
 =?utf-8?B?eVdDRWcwS2hhRmNpNkxCM0ZVdGtyS2w5d0JNb2pPcTF6aWRIUTVodz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7854f834-f0a0-4f4b-6e41-08de6ae13389
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 09:21:00.0681
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wjm9Hwlo//ynYn9b9L9aB5nqqaanjA2NGOaQRH3Fm7LCzCTC5pUr0Z4AiCJRJmzJ1XsGSjx/C0XYjt25bZbdOA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5151

On Fri, Feb 13, 2026 at 09:22:24AM +0100, Jan Beulich wrote:
> On 12.02.2026 18:58, Andrew Cooper wrote:
> > Also, during the final link steps for xen.efi, we twice get:
> > 
> > [10:09:57.995] Warning: relocation to r/o section .text:00000048
> > [10:09:57.995] Warning: relocation to r/o section .text:00000090
> > 
> > which smells like the multiboot header.
> 
> It is. These diagnostics are seen only when older ld is in use, but the
> issue exists in all cases.

Oh, it took me a while to figure that out.  Newer ld generates the
relocations itself, and hence we no longer use mkreloc that would
print those warnings.  However ld generated relocations will still be
against read-execute section, and hence as you say the issue also
exists there.

However the ld version on Darwin is:

GNU ld (GNU Binutils) 2.45.1

So the issue is not with the version of ld using in the Darwin build
being too old, but rather the checking done in efi-nr-fixups not
working well with BSD grep.  It needs to be adjusted to use -E,
otherwise [[:blank:]] is not recognized.  I will send a patch.

> It should really already be on someone's todo
> list wrt fully secure boot conformant xen.efi, as we did discuss this in
> the past.

I did start on it:

https://lore.kernel.org/xen-devel/20250401130840.72119-1-roger.pau@citrix.com/

However at the time I did this, the XenServer Secure Boot
implementation was doing something that would have been incompatible
with this work, and hence I set it on the side.  Later on, the
XenServer implementation changed and picked up most of this work
internally.  I however never got back to this work, neither the people
that internally worked on Secure Boot send an updated version of the
patches.

I will see whether I can make some progress on this.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:21:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:21:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230378.1535862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpN1-0005zP-G0; Fri, 13 Feb 2026 09:21:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230378.1535862; Fri, 13 Feb 2026 09:21:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpN1-0005zI-CW; Fri, 13 Feb 2026 09:21:51 +0000
Received: by outflank-mailman (input) for mailman id 1230378;
 Fri, 13 Feb 2026 09: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=Jz9v=AR=arm.com=Luca.Fancellu@srs-se1.protection.inumbo.net>)
 id 1vqpMz-0005Sy-Kl
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:21: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 69ec65e6-08bd-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:21:44 +0100 (CET)
Received: from DB8P191CA0019.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::29)
 by PA6PR08MB10489.eurprd08.prod.outlook.com (2603:10a6:102:3d0::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 09:21:39 +0000
Received: from DB1PEPF00039231.eurprd03.prod.outlook.com
 (2603:10a6:10:130:cafe::8c) by DB8P191CA0019.outlook.office365.com
 (2603:10a6:10:130::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Fri,
 13 Feb 2026 09:21:17 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF00039231.mail.protection.outlook.com (10.167.8.104) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 13 Feb 2026 09:21:39 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com (2603:10a6:10:2d7::16)
 by PA6PR08MB10781.eurprd08.prod.outlook.com (2603:10a6:102:3d5::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 09:20:32 +0000
Received: from DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323]) by DU2PR08MB7272.eurprd08.prod.outlook.com
 ([fe80::5d34:206f:373:a323%6]) with mapi id 15.20.9611.008; Fri, 13 Feb 2026
 09:20: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: 69ec65e6-08bd-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=xUVCZev7D0pETKsy+JqgYATwnH14RIBEnXPHi66hcKmKiYxdPIIsl9t3Z96WBeeIeNZxcQuOOpBiZj1+fboPflW8U6wKczluCzwXs9zSOZxyH4NSHl+ThmjHROYET9d3z0YsWN7egeli29ufQlcEMKYkrmEN5tY2ml7F3mphGisKXJbcC+ubjleG7jaXJu31w7Z8VchTvHfP7Lc8g34x++SXd5nNyp3Gtv88m0xBylSydRn1/2iTulGJfFceJZLGukZn6iBl8yLeryv6TngIbCDNP/iZ7ORqY/3I161RzoK5JiwxAaA1spOJwiTQpJ+jiAODG1U/dwRQLovhZ+M90g==
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=WRyEHhgXPdx/hA96R8WguBZRhlnloMR+3gizxrMDMOo=;
 b=xXcMPXWaYvAnzfShtMl15QBRFfE6CShXdfegb88VmZpNSfGFTZW2roWdbPjkg4ZTe5xWs5TAahPz9ZRPleMyDcVd27j/pUEOgrphouoJtrEQA5bMUyDaREpQfK/6mrNoEuZKLkPWh01kLUTcei3FlVO+C/IWJkkrDqno2KilE1M/zse26tm6dOZb+qt6yzpaKoJPDsj73YqUpNNZ+BxPRbUue+AGgq3DsA/T0bcF4WPoYSogHRneQLv/MkJaLjDhqIjd8URxWBktZge5/zvC6+ctJBHDMnNvPFbi8Xxq8XWtRjKerGyS9YQlZuJcxs/iyhMabYS1m+z72BsHhMBIZA==
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=WRyEHhgXPdx/hA96R8WguBZRhlnloMR+3gizxrMDMOo=;
 b=DmzI0uMfcvgD10eMD/HSZqID1KdCsWsjdlpnEBtC0JeJr+VLFya5A/qreuLaRTGoB4mf2YIvJWbphyyPQBgdMd3YDu4vQE4kT8JTAHPAog4Yizdc6GuX4hD9iezB1qex6AhMpypZXsomx0008WeANghJtx0caxnruhFkRHcCyWY=
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=RmnF0R5H02ZIYrtYekH8G3Tb5Ln3+Aqts7tJz5+KflCbuisMkuPdlue+K5Q1I+4SZqoypKuG64G6rg6BNbXwW2Eo5pt6entGn6fw1zfTiZ4uoVMWfHGBQF0hOq7j31q2kMHoR17pbLptHImgv1xhurFHhn2vEmuG//yNWaOaZWXoPERr3YsoB2RA7CDGhrR1zO6ggBQZVgY1FV2rHlki1vGmq8eBFEGktv5lGYxmxVTw/GFL80FiaLB02Q+TvsMAsxteckSi3vppekUcUbkQtZ/ebPAx9Qfk8Ib0/8+3cw6R/X75+lGkSLMDzYuDCV2eaajBQaBq4KpshpVrdArCMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WRyEHhgXPdx/hA96R8WguBZRhlnloMR+3gizxrMDMOo=;
 b=cgg0Gr8KcrOLVBTBp67SeJnqSlvyfJQkkSiIJpZJ0Q/e9jB2YCzpNumMq+b47eCS4LqAUWoe90/k3jPo/1lNIJFwuGut+usOvVX5gr+0dvzOr0Df6rdSRFdLsJKHw8QH44+40IEmCrpEnRACotcveXdqGZVCA9HdVh4kFFMLpDXK1rMysTyfYHjbee9WNc/IQaiptqt1S7GY7ebXM55yk4Lka1QPtUPc6ZdJltJAi8xpVhWbzFvAMffkWMqnZfmCEYqxRzmG/JmLSKTJe+ZiAgHcSrsw9oUv2SUu12WaSl+4JRd/c5Tc8qxgulAT8Y+NTzSWTuKB7nchCJAznjtnAg==
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=WRyEHhgXPdx/hA96R8WguBZRhlnloMR+3gizxrMDMOo=;
 b=DmzI0uMfcvgD10eMD/HSZqID1KdCsWsjdlpnEBtC0JeJr+VLFya5A/qreuLaRTGoB4mf2YIvJWbphyyPQBgdMd3YDu4vQE4kT8JTAHPAog4Yizdc6GuX4hD9iezB1qex6AhMpypZXsomx0008WeANghJtx0caxnruhFkRHcCyWY=
From: Luca Fancellu <Luca.Fancellu@arm.com>
To: "Halder, Ayan Kumar" <ayankuma@amd.com>
CC: Harry Ramsey <Harry.Ramsey@arm.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>, Volodymyr
 Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree property
 for domains
Thread-Topic: [PATCH 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree
 property for domains
Thread-Index: AQHcnEmH5gKbUmHbj02fOzKC30SgIrWAW0iA
Date: Fri, 13 Feb 2026 09:20:32 +0000
Message-ID: <585C8F54-ED56-49CF-A77C-895016182673@arm.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-3-harry.ramsey@arm.com>
 <a5318e5e-3082-4cd4-96cb-98d8dc27ae65@amd.com>
In-Reply-To: <a5318e5e-3082-4cd4-96cb-98d8dc27ae65@amd.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3826.700.81.1.4)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	DU2PR08MB7272:EE_|PA6PR08MB10781:EE_|DB1PEPF00039231:EE_|PA6PR08MB10489:EE_
X-MS-Office365-Filtering-Correlation-Id: fd74df21-0f2d-41cb-2346-08de6ae14b17
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?zv5LLIvclP/CSK64qGCL9TvEN5cdXQHduxQ/g4fX3qCCuv0gk5qHnoPKQ0I/?=
 =?us-ascii?Q?EGyEUrbTU9Wop0Pp6HuWzUw7PvtyMROpGpEk5FgN4aGrEfZCOTTm6Yq57UGp?=
 =?us-ascii?Q?fKpvHFTWCIUZShI97cHJpX2V4r3gumOk7qxE/z9f15EGav8sWS9OqHbtMPkc?=
 =?us-ascii?Q?q5ETJjaMWqi+awqJflCMJI/rVSeWdQb4A+9QxQGlNL6TMmgpO2UdUGCQw0j0?=
 =?us-ascii?Q?ffKu/KyiZo25/cv8SKS67Mu3m+TTsRD6cwRov5jyhKkR3alPz4l1NXSOE2gC?=
 =?us-ascii?Q?p/35b3+uHRomyRuMvCG7IIRusC0qPFlEtKdDzxaevGY0tTj+fAU2oYO2bvr7?=
 =?us-ascii?Q?a0uI14H+IzNm0jxqGMZaM1A/uH/4SHL5at3bwOd7phyfAbkXk0WAldCe56/d?=
 =?us-ascii?Q?YHp66Wz2HPRsiu+NkNkRJEHbSOLGhcRKMEPWzpoWt6WvsCePC9X/svxF5g6Z?=
 =?us-ascii?Q?Jh1yckODqBc7SDMlfz2em1B7P6lCaAHJOnARH4RbpvJiiyVefWCfGUGBbLjY?=
 =?us-ascii?Q?SwW+8PDpKWZiOkY4Q/m+q/3yk3+uoiK545egyTQyiwNgto0WO3vcWwKXVH+I?=
 =?us-ascii?Q?kHMs6O6Yu0E5ts9IlqNyf+xp+DWJQTXdfeOddPFwzO36OTlYjCGDV+Ly0kNX?=
 =?us-ascii?Q?u3g445GFkO821PUC1dcy8s+p2IgJvjpHn9+mDTAC636cBb/0katlSnlOG2G7?=
 =?us-ascii?Q?DOczYR14DEHLChEn6TQKsSIIwFkNcn9eZ1U3s2vA4JLV29QXOJy3/6LplN1P?=
 =?us-ascii?Q?tln0EHxShO1YkgREtmQd/pIkxS2tt4VIX7+U12fZ/qmWXsOIFTj0BY0FMjQP?=
 =?us-ascii?Q?YgOB7bWGslohn1bsWy+wYOSwoU+uIPzT80w4YRUcpTqNy/e87FRJ8USo5C2n?=
 =?us-ascii?Q?Xh0YTt2kqdi2IWpgThKXdmTC3UXB4Fp9BKU2BtzjS14oMtJdHG6fTMeb4RGX?=
 =?us-ascii?Q?V0Hxmydo3cmbnZhkyINJLWEy2Vz5vUBdvTuo4fKWbCpFYCoHejhCuoKcxi6G?=
 =?us-ascii?Q?h6u6UPcC97u2dOCgMohhQXfv3zFfGEFzn1rWno9cdM+Nq7gXFTGwcuHz8MRY?=
 =?us-ascii?Q?l7wFv91PRv83AM9J4BP5YaVyZBKczqICGjgx4o3hP4GZnLHthFIPcapO24A8?=
 =?us-ascii?Q?k4gFNT+fzlQKCL+35p759qZACmAuGKUzTHJvW86u2hvTB50ikd6RcyurBns8?=
 =?us-ascii?Q?iwER/hiTN8IHpl7bItzpgE28ThhDxqBwifiRvb/XzvjYskF3M/4OfDMyk890?=
 =?us-ascii?Q?CLegPF+OgiMDG9G70ScK9kkz/ZX6PqnqUH98wkLRCJgwbhzkEzwgz6XdrTij?=
 =?us-ascii?Q?03JTFb6F6EevNlsI6XFhFhvpzSyzaCN67f1SIA+i343OdXYZFKD+qX/Xi0v9?=
 =?us-ascii?Q?F+sb22m/FDatrJFZGNS22N51JLtMvWGcACb2TzYwD8rt1FwcAV8MNjIwzotE?=
 =?us-ascii?Q?SrlOI1ioThENwCHinNP8Y2NyaxdZQscjU4/DO8/6gc+oYgKMaJxNjzk0qA70?=
 =?us-ascii?Q?cD3FEuj8hxlBQIPHquzuJD0Kc5ja9zIHFREIcGJoNWRQJyxxXdSNUhbaJ+pX?=
 =?us-ascii?Q?iaMr4sVLNYe7WNrCl/j5ZHK6uyJOP3FpvovFXILYk3mfcHr+6Hvr9rMFeVF6?=
 =?us-ascii?Q?e7aozBQwo/nR8WDJCI6SNOM=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)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <88A1A4466A62BD4A9488FBA1253732D2@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10781
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF00039231.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	c5f7f99c-b90e-4a0f-9490-08de6ae1230a
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|14060799003|376014|35042699022|82310400026|36860700013;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?twmp00vabLCFxzSKDBYV0W0mxPfPgzPMdLVzPrBUKAsCX5WUES54XqhlkEBx?=
 =?us-ascii?Q?avRF95dYA/rpEKN09E3F7OHBotK4wGy/LUjR7Z/g8WRY2ICOQ2y6wvj9VqEQ?=
 =?us-ascii?Q?462sNH4I0vda8ARo2wmpZ1PmDm38+VbkMp8CX5EYo4oh/srZSX3B3Ypeex/6?=
 =?us-ascii?Q?DdJxxg9DHliA6QivrR5CB9M4h3055CZ0hr9rA9ITEGqcrB9XTakgFTkWwqV1?=
 =?us-ascii?Q?LvAXd/FqBjGK+t5fthX54WvqJCzs/FOoMxprELNFcUPBXOjZ/SNPLAH2v5Rs?=
 =?us-ascii?Q?Kct7ji8MaK3EHmNJlQJfQwhXDop9RoPOKkOCGnJ+r3lRKB7mm2FjLpfn8JBP?=
 =?us-ascii?Q?+Vje6VXYJMSJIIWg4mrcZDiRtRutzwZOxSXvBU+S4SuPDInIY55wfR/u4WFI?=
 =?us-ascii?Q?p0y2tsGrb1MawfFrt9mCvskwDu1Jn0GiTgGuFINksTOlepL9rrMj1l2JZC82?=
 =?us-ascii?Q?99PdwNZTgzcNfrPqd+HzG0LwOQr0/qO+vPUzmHN6LdPyEMXuSU/giYw7nMCI?=
 =?us-ascii?Q?1+/rEWwALRm1+al5ib+2CzZtKrFIOwawJYhWSvoM/rSr0RAfUsTYss2D34g2?=
 =?us-ascii?Q?qwHMZ3u9in63xfkhuuuewNFKfYTTYAayYqViGti8Q+IH9qBN4uEteJFDSkuK?=
 =?us-ascii?Q?GFJThxzZG/DyO7Iixi/gpeKEi3qqasdVu2dzTXuwgUEzWO6SQT/3CSNbYWDE?=
 =?us-ascii?Q?UybgNnYzJ/tp4Kpb5jfuvzDerJzSxgGXRk7+LbgUI7E4bS1n2u8T5voqmzWM?=
 =?us-ascii?Q?Kj+mxPHGPKnqSPjQhzDio2IJ/aZcDmYcnHSGPBAOmAolumN7mXXviV69Zn7g?=
 =?us-ascii?Q?L7FTfwYwsbmrZ5+40hI6gAFk092TKWBKtDzYrykJKC19od+kwKT53Y7ekLuD?=
 =?us-ascii?Q?Fm7Jb9gsz+Xcx5cVsNIUQxbpKqmyavWUVH8bP3OluJQeQkFflRXvNz6QqmIC?=
 =?us-ascii?Q?z6rlhyERJYuhkmxbZnOdfvNLfPkvi4INOyEOC8OB5nlb4o4+mpQq9zY9seLT?=
 =?us-ascii?Q?J5C3k0tcs+ESyFoeDheYIYc0Yu2La+Cr9XoIyJFFH2+d1SkqrzaQRfmJL7o5?=
 =?us-ascii?Q?UJpLurz1EOnS4jq1TIIfFwCvVx9nf+ZZkI1H6SWpKZT3KtR+TgAiH76uQ6oi?=
 =?us-ascii?Q?eL+WkhPD/+yu3w7SJkJJn3boNwMgN4KRLzas8lO2n2LjkFyUlwOAVhC2YyUz?=
 =?us-ascii?Q?laF1BFh+sh8gN5Ymme1ddnrsyoHDWhLZK5hVM91g4HdDGXyGr1B7Gvkg4gup?=
 =?us-ascii?Q?JOXZ19KizG9xzpI9AVw2qQI8/TiKxKoeAKm5H6v7iz9JWJfPQE1tzCtjDiMx?=
 =?us-ascii?Q?+gCUoyZ2Ex0kqHpyiVbyTfCMK3xYGuI4WeRC1Qf/ucSE6hpoDVNHYko2FN0d?=
 =?us-ascii?Q?dEcvwd84taqFnJIlZzqepGJlbL+NtShPVDwEFfBbQA0iueIGXAtyD9Z5Cq5Q?=
 =?us-ascii?Q?OVGZkLQbt5ezVMLxl+woaJ6DpP4GFlreZCW9JMpq/C3pdL9NhUqonr9T2r9i?=
 =?us-ascii?Q?zS9vZCQJ5LvyEuFyoF5NuLWAlbUVQhXVBnasPNgbuaLgyPj0idUyjuxTTalJ?=
 =?us-ascii?Q?uDszb11xpW7Z6NQR9pqoPMUF4WJGx6Hak7soVuqPTAVxGbwFIt2jTfwQUCSI?=
 =?us-ascii?Q?cbgUIP7yBeE8mEWvOfUlGngouZOD0wAKL05iTzt4YoKHW778yIXw/xaK8J6J?=
 =?us-ascii?Q?mxjvew=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)(1800799024)(14060799003)(376014)(35042699022)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ziXe6TQXeOtq11FYvCZThdABBZzcFmiCgg57utx/Gq1CEBrBnsb3FTThnzJzrncF+qMQyppcAeS+gZuW7qTOZgGuR7AV+EtKjknBhjY5x7euvzwhEdoYJk47UfNaIegRk8xmG4WgR1rdY9FetNT4mU73piHL+4PIsd9BzNkCksZhbGEdoFjny9QnyKMZoIUgtO1KrfAO9VOmyLHWCqlSUvZSrwbYg0neW9GS2WlXIkwJpyZNfulBYR9qbhg1oLZvtH9m5mHATrjhCcMBGuYe2wFhCYYBC5XCk2Zi1fX3yGXbO1VpCEIczkS6eeDN4KJYhELQqHnC3fAZPGg/Y9AKJsrkwJ1SKRi/yC919KgfWN1LZH65Mj8V8sHnurgVYg/PgiWWsohfaflTIrXN4yBXxc0BF2Ed0qYyW/9tNsWY0hsue7F+5axFZmj0gY0x5HYA
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 09:21:39.2161
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fd74df21-0f2d-41cb-2346-08de6ae14b17
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:
	DB1PEPF00039231.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10489

Hi Ayan,

>=20
> Further if we can set `v8r_el1_msa =3D mmu` by default for everyone (Armv=
8-A, Armv8-R) , then we can reduce further if-def.
>=20

This was Michal suggestion to have mpu by default, so I would wait for his =
reply before proceeding further on this.

Cheers,
Luca



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:37:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:37:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230396.1535872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpcU-00086I-QI; Fri, 13 Feb 2026 09:37:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230396.1535872; Fri, 13 Feb 2026 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 1vqpcU-00086B-MP; Fri, 13 Feb 2026 09:37:50 +0000
Received: by outflank-mailman (input) for mailman id 1230396;
 Fri, 13 Feb 2026 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=Y0jx=AR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vqpcT-000865-7i
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:37:49 +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 a6bd27c4-08bf-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 10:37:46 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfout.phl.internal (Postfix) with ESMTP id C51A9EC00DE;
 Fri, 13 Feb 2026 04:37:44 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-01.internal (MEProxy); Fri, 13 Feb 2026 04:37:44 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 13 Feb 2026 04:37:43 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6bd27c4-08bf-11f1-b163-2bf370ae4941
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=1770975464;
	 x=1771061864; bh=7NgCr3Vz4k3SKBMCpArHXzwCENqUo1XEp0EAVsWbol0=; b=
	RqtFHokpa58ejqB3+UW1PlNYXtYpEwts8KxKFmLkSOnbvAlbFPEPahix8rJ+CEK2
	7HNjEiwPMbuJUGI/bqet2w/Mool7ff2kToR3JA9qXpI7kHGJzwpy1hIByJDRanFt
	8DZ4M+s0P5y4PJkEiNzjRH9IJTmw5zsu8mcd5T9++cBVEHr9CkvxnGNpAGxm5Teo
	rv1pQtRDFzXUpgSIH2STntRQxaBYkf9Nf0BuneyiovjkirTT43FdB8/2F+9S31jo
	UrtcW1dOWY2g4vbaz8DvY2h1Z6CLra3NNpRUEcLa6BQa5ymnfckfbTbX8UDMDEwf
	awjDycRQtG7sOvU81xJ9hA==
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=
	1770975464; x=1771061864; bh=7NgCr3Vz4k3SKBMCpArHXzwCENqUo1XEp0E
	AVsWbol0=; b=s0XFL0mbouXn0ypeIzCKSNfCBGc0P1UMAG+gIQvPRqIJbCZMp3J
	mXuaP8MY+EXfh0gQPMe+Ff1tBqU0q+FyTNsUAU63vC59UyNe2+emWWy267oPU3kE
	M/kIBJpylSsRoAvR99SKYkS9DyDU9QPbcQ3DIOrHNElBABhFAS1TXgrMqs38MXeF
	h+/bSmsZe7DQ+T8bdYau/rdDO09TSa6/oRzBCdBFMSr5TQ86eyAAfEARdSIVf5WW
	7tqqEj/RuSXK0RYfgl/EIab5jtj8RroNy00f5ze/oFNM9J3EvVcicDc++t+CnuS+
	mEv13nkjTwYXUIDoAf0DjPSXCSxR8fkifHg==
X-ME-Sender: <xms:6PCOaZsauoibEcGyN8toPA_F7q2Wd0C7R-UQ2BZYNtwkUatEoqVm1A>
    <xme:6PCOaZdWN7-sxAjhts3HMzBbuUNz-EuCqAk_SIXwWyoT1dP8_flSGue-Ps8QoObox
    cuU183iSKNQ-Tb_cZ69STurV5CTtcS3fuKS8whB_XP8dS_4kw>
X-ME-Received: <xmr:6PCOaRyWeVVpzOKc3ROQ7I-fuQExobg183RMXRWWebvh0JuRRo89Ej5u>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdejleduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihig
    rdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojh
    gvtghtrdhorhhgpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtghomhdprhgt
    phhtthhopegrnhgurhgvfidrtghoohhpvghrfeestghithhrihigrdgtohhm
X-ME-Proxy: <xmx:6PCOafEfkiQ_zvEg_BT9jOkv4wCN8G3iR-6su-uiuJLBuruELohdlg>
    <xmx:6PCOaVxVV_hPQP8HIAMBg1mR1nCcqnHm0X30rS7faGv8l47xgXI58A>
    <xmx:6PCOaQtORvv2SfaCGWRB44AqeEC61r4q8UUJNjzUTUps_e5SDE7w-g>
    <xmx:6PCOaS0wHCt46Ig_YL_4nYmz5dnMnzC4eg70-1YcF0qUH7jyNY3W7Q>
    <xmx:6PCOaT-ozI3Z0HpatRA3Tm1eIHaMPaso_hzvamc5t_RTzJutdMsu-pv3>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 13 Feb 2026 10:37:40 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] VT-d: fix off-by-one when handling extra RMRR ranges
Message-ID: <aY7w5DSo1ds3ZqTj@mail-itl>
References: <20260213031801.1744145-1-marmarek@invisiblethingslab.com>
 <aY7d8ohWykrmOmf5@Mac.lan>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="XXKrUVNUniWo3GsC"
Content-Disposition: inline
In-Reply-To: <aY7d8ohWykrmOmf5@Mac.lan>


--XXKrUVNUniWo3GsC
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 13 Feb 2026 10:37:40 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] VT-d: fix off-by-one when handling extra RMRR ranges

On Fri, Feb 13, 2026 at 09:16:50AM +0100, Roger Pau Monn=C3=A9 wrote:
> On Fri, Feb 13, 2026 at 04:17:48AM +0100, Marek Marczykowski-G=C3=B3recki=
 wrote:
> > add_one_user_rmrr() operates on inclusive [start,end] range, which means
> > the end page needs to be calculated as (start + page_count - 1).
> > This off-by-one error resulted in one extra pages being mapped in IOMMU
> > context, but not marked as reserved in the memory map. This in turns
> > confused PVH dom0 code, resulting in the following crash:
> >=20
> >     (XEN) [    3.934848] d0: GFN 0x5475c (0x5475c,5,3) -> (0x46a0f4,0,7=
) not permitted (0x20)
> >     (XEN) [    3.969657] domain_crash called from arch/x86/mm/p2m.c:695
> >     (XEN) [    3.972568] Domain 0 reported crashed by domain 32767 on c=
pu#0:
> >     (XEN) [    3.975527] Hardware Dom0 crashed: rebooting machine in 5 =
seconds.
> >     (XEN) [    8.986353] Resetting with ACPI MEMORY or I/O RESET_REG.
> >=20
> > I checked other parts of this API and it was the only error like this.
> > Other places:
> >  - iommu_get_extra_reserved_device_memory() -> reserve_e820_ram() - this
> >    function expects exclusive range, so the code is correct
> >  - add_one_extra_ivmd() - this operates on start address and memory
> >    length
> >=20
>=20
> You possibly want:
>=20
> Fixes: 2d9b3699136d ("IOMMU/VT-d: wire common device reserved memory API")

Yes, indeed.

> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
>=20
> Reviewed-by: Roger Pau Monn=C3=A9 <roger.pau@citrix.com>

Thanks.

> > ---
> >  xen/drivers/passthrough/vtd/dmar.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >=20
> > diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrou=
gh/vtd/dmar.c
> > index 91c22b833043..3da0854e6d91 100644
> > --- a/xen/drivers/passthrough/vtd/dmar.c
> > +++ b/xen/drivers/passthrough/vtd/dmar.c
> > @@ -1065,7 +1065,7 @@ static int __init add_user_rmrr(void)
> >  static int __init cf_check add_one_extra_rmrr(xen_pfn_t start, xen_ulo=
ng_t nr, u32 id, void *ctxt)
> >  {
> >      u32 sbdf_array[] =3D { id };
> > -    return add_one_user_rmrr(start, start+nr, 1, sbdf_array);
> > +    return add_one_user_rmrr(start, start + nr - 1, 1, sbdf_array);
>=20
> While here, would you mind if we add a newline between the sbdf_array
> definition and the return?

Yes, while at it makes sense to fix that too.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmO8OQACgkQ24/THMrX
1ywCxgf/bGKYMGlcdlyqDYa5ob12UgsT44Rv6U90lG+SGmN/zimsfxN51MGt1f0B
JfP4EWlYSFbJcrWSZw2khZuFAnxUwIBdRjIlPmL9tIcmGHJwZnDwY1ZPesMmxtL9
4CnmWbfaw/XI1Op2Fy2bkT1eJ8QkT1Pwpnvf52Jz1cNVbXRE8zGH3fdVJwv1v35L
L92pEQLDHINNaYwsYmyecZdOWTkLdSvIIX02WHGaOxdINr7STlUduTHEawY12rYz
xXHZes0vfiCHCY7TusODEcBCHCXdCE8KysgyHagrdMp8jcxpsLns53xN5USeGzvZ
FJtBU24jw3GyH7b3MZjuKagTlE71gg==
=Kncn
-----END PGP SIGNATURE-----

--XXKrUVNUniWo3GsC--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:50:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:50:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230414.1535881 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpoF-0001PC-Si; Fri, 13 Feb 2026 09:49:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230414.1535881; Fri, 13 Feb 2026 09:49: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 1vqpoF-0001P5-Q8; Fri, 13 Feb 2026 09:49:59 +0000
Received: by outflank-mailman (input) for mailman id 1230414;
 Fri, 13 Feb 2026 09:49: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoE-0001Na-Ct
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:49:58 +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 59a45184-08c1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 10:49:56 +0100 (CET)
Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-204-UO1G8VWWM5-a0I864hO_Mw-1; Fri,
 13 Feb 2026 04:49:47 -0500
Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 4BFFD196C419; Fri, 13 Feb 2026 09:49:41 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 108D3195419A; Fri, 13 Feb 2026 09:49: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: 59a45184-08c1-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976194;
	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=IXmpt2l7PcSQ+AKwEbUfhSafyH2QKeY5bZPxnsfgnEU=;
	b=JcrdQ+styHtjuer3cHDC4cTK5ZH6zx4BofHqQU2hMdYFoh9t9Yzl9qaRSe+Tvc3PutxIzK
	ZI/g7Yn7vaIRElF2rSr2fLS6Gh7R9P02+jnPM1XR6ogePa/MGVMwEHnAy8I7U0dVkDln5r
	p5mB+C8NBVQb+1ls9RsDr4WNQxLt1Vc=
X-MC-Unique: UO1G8VWWM5-a0I864hO_Mw-1
X-Mimecast-MFC-AGG-ID: UO1G8VWWM5-a0I864hO_Mw_1770976184
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PULL v2 00/15] Char patches
Date: Fri, 13 Feb 2026 10:49:19 +0100
Message-ID: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17
X-Mimecast-MFC-PROC-ID: mh_euurqAZLu2kyuwWdAjTCNrM2_O1B_lYBjV1qNMpI_1770976184
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

From: Marc-André Lureau <marcandre.lureau@redhat.com>

The following changes since commit 4ed6a7f2fdc09d9fc3411e83e278da0085122016:

  Merge tag 'pull-block-jobs-2026-02-12' of https://gitlab.com/vsementsov/qemu into staging (2026-02-12 14:35:18 +0000)

are available in the Git repository at:

  https://gitlab.com/marcandre.lureau/qemu.git tags/char-pull-request

for you to fetch changes up to 98ba0e479771a391137119264156e9661508bbc7:

  baum: Add copy/paste bindings (2026-02-13 10:45:07 +0100)

----------------------------------------------------------------
chardev patches

----------------------------------------------------------------

Eric K (1):
  char-udp: Fix initial backend open status

Samuel Thibault (1):
  baum: Add copy/paste bindings

Vladimir Sementsov-Ogievskiy (13):
  ui/spice: Require spice-server >= 0.15.0
  ui/spice: drop SPICE_HAS_ATTACHED_WORKER macro
  chardev: ChardevClass: consistent naming for handlers
  chardev: consistent naming for ChardevClass handlers implementations
  chardev: .chr_open(): drop be_opened parameter
  chardev: .chr_open(): add boolean return value
  chardev/char-pty: store pty_name into PtyChardev state
  chardev: introduce .chr_get_pty_name() handler
  chardev: rework filename handling
  chardev/char: qemu_char_open(): add return value
  char: qemu_chr_write_log() use qemu_write_full()
  error-report: make real_time_iso8601() public
  chardev: add logtimestamp option

 meson.build                                   |   2 +-
 qapi/char.json                                |   6 +-
 include/chardev/char.h                        |  23 ++-
 include/qemu/error-report.h                   |   6 +
 include/ui/qemu-spice.h                       |   6 -
 chardev/baum.c                                |  50 ++++++-
 chardev/char-console.c                        |  10 +-
 chardev/char-fe.c                             |   8 +-
 chardev/char-file.c                           |  26 ++--
 chardev/char-hub.c                            |  27 ++--
 chardev/char-mux.c                            |  30 ++--
 chardev/char-null.c                           |   9 +-
 chardev/char-parallel.c                       |  41 +++---
 chardev/char-pipe.c                           |  30 ++--
 chardev/char-pty.c                            |  56 ++++---
 chardev/char-ringbuf.c                        |  20 +--
 chardev/char-serial.c                         |  39 ++---
 chardev/char-socket.c                         |  73 ++++------
 chardev/char-stdio.c                          |  30 ++--
 chardev/char-udp.c                            |  18 +--
 chardev/char-win-stdio.c                      |  25 ++--
 chardev/char.c                                | 137 ++++++++++++------
 chardev/msmouse.c                             |  13 +-
 chardev/spice.c                               |  52 +++----
 chardev/wctablet.c                            |  10 +-
 gdbstub/system.c                              |  12 +-
 hw/char/xen_console.c                         |   7 +-
 hw/display/qxl.c                              |  23 +--
 hw/misc/ivshmem-pci.c                         |   7 +-
 tests/unit/test-char.c                        |   2 +
 ui/console-vc.c                               |  12 +-
 ui/dbus-chardev.c                             |  16 +-
 ui/dbus.c                                     |   4 +-
 ui/gtk.c                                      |  14 +-
 ui/spice-app.c                                |  18 +--
 ui/spice-display.c                            |  19 +--
 ui/vdagent.c                                  |  17 +--
 util/error-report.c                           |   3 +-
 .../codeconverter/test_regexps.py             |   2 +-
 39 files changed, 473 insertions(+), 430 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:50:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:50:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230415.1535893 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpoI-0001na-Ac; Fri, 13 Feb 2026 09:50:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230415.1535893; Fri, 13 Feb 2026 09:50:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpoI-0001mw-4b; Fri, 13 Feb 2026 09:50:02 +0000
Received: by outflank-mailman (input) for mailman id 1230415;
 Fri, 13 Feb 2026 09:50: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoG-0001Na-Iv
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:00 +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 5b9a622a-08c1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 10:49:59 +0100 (CET)
Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-658-aMc26E4sPAy9t4jQ84TMZQ-1; Fri,
 13 Feb 2026 04:49:56 -0500
Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 1714C185FCC3; Fri, 13 Feb 2026 09:49:49 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id E4B161800465; Fri, 13 Feb 2026 09:49: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: 5b9a622a-08c1-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976198;
	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=kwUJ3BjGqSrzivArY1rYym7qexid2kYuXoU98jIvc3E=;
	b=b4RadeaXix8GGAc1IMDIzQmWa5NH+wfN0Cj3XiKaTiQeZH8bErT43QMLAkOflDAaQdPj2o
	PKx1bbni4A/1t4ftcEncbFS9FV0u5G7Rs1DwyGTK6CG8KfWunyPjsYe52L7/bAq+PTHUu7
	aApywLqHyGXVF7N3FV6NplOFzXb0ycI=
X-MC-Unique: aMc26E4sPAy9t4jQ84TMZQ-1
X-Mimecast-MFC-AGG-ID: aMc26E4sPAy9t4jQ84TMZQ_1770976194
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 02/15] ui/spice: Require spice-server >= 0.15.0
Date: Fri, 13 Feb 2026 10:49:21 +0100
Message-ID: <20260213094938.4074478-3-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111
X-Mimecast-MFC-PROC-ID: Q7ektW2NuJtINGMSgzTHvWLZs-ZcH9gOAmEZ1r_z2HE_1770976194
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

For major distributions we have now:

    Debian 13: 0.15.2
    Ubuntu 22.04: 0.15.0
    RHEL-9/CentOS Stream 9: SPICE is removed
    Fedora 42: 0.15.1
    OpenSUSE Leap 15.4: 0.15.0

Time to update the dependancy in QEMU and drop almost all
SPICE_SERVER_VERSION checks.

Suggested-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-2-vsementsov@yandex-team.ru>
---
 meson.build             |  2 +-
 include/ui/qemu-spice.h |  4 ----
 chardev/spice.c         |  6 ------
 hw/display/qxl.c        | 11 ++---------
 ui/spice-display.c      |  8 ++------
 5 files changed, 5 insertions(+), 26 deletions(-)

diff --git a/meson.build b/meson.build
index e8fd77aac00..4af32c3e1f2 100644
--- a/meson.build
+++ b/meson.build
@@ -1326,7 +1326,7 @@ if get_option('spice') \
              .require(pixman.found(),
                       error_message: 'cannot enable SPICE if pixman is not available') \
              .allowed()
-  spice = dependency('spice-server', version: '>=0.14.0',
+  spice = dependency('spice-server', version: '>=0.15.0',
                      required: get_option('spice'),
                      method: 'pkg-config')
 endif
diff --git a/include/ui/qemu-spice.h b/include/ui/qemu-spice.h
index b7d493742c4..8e5e6b2a744 100644
--- a/include/ui/qemu-spice.h
+++ b/include/ui/qemu-spice.h
@@ -34,11 +34,7 @@ int qemu_spice_add_display_interface(QXLInstance *qxlin, QemuConsole *con);
 int qemu_spice_migrate_info(const char *hostname, int port, int tls_port,
                             const char *subject);
 
-#if SPICE_SERVER_VERSION >= 0x000f00 /* release 0.15.0 */
 #define SPICE_HAS_ATTACHED_WORKER 1
-#else
-#define SPICE_HAS_ATTACHED_WORKER 0
-#endif
 
 #else  /* CONFIG_SPICE */
 
diff --git a/chardev/spice.c b/chardev/spice.c
index db53b49da26..39b79d60fb4 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -278,12 +278,6 @@ static void qemu_chr_open_spice_vmc(Chardev *chr,
     }
 
     *be_opened = false;
-#if SPICE_SERVER_VERSION < 0x000e02
-    /* Spice < 0.14.2 doesn't explicitly open smartcard chardev */
-    if (strcmp(type, "smartcard") == 0) {
-        *be_opened = true;
-    }
-#endif
     chr_open(chr, type);
 }
 
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index f29b736722c..fbba02113f7 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -261,11 +261,6 @@ static void qxl_spice_monitors_config_async(PCIQXLDevice *qxl, int replay)
                     QXL_COOKIE_TYPE_POST_LOAD_MONITORS_CONFIG,
                     0));
     } else {
-#if SPICE_SERVER_VERSION < 0x000e02 /* release 0.14.2 */
-        if (qxl->max_outputs) {
-            spice_qxl_set_max_monitors(&qxl->ssd.qxl, qxl->max_outputs);
-        }
-#endif
         qxl->guest_monitors_config = qxl->ram->monitors_config;
         spice_qxl_monitors_config_async(&qxl->ssd.qxl,
                 qxl->ram->monitors_config,
@@ -2109,6 +2104,8 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
     uint8_t* config = qxl->pci.config;
     uint32_t pci_device_rev;
     uint32_t io_size;
+    Error *err = NULL;
+    char device_address[256] = "";
 
     qemu_spice_display_init_common(&qxl->ssd);
     qxl->mode = QXL_MODE_UNDEFINED;
@@ -2208,9 +2205,6 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
         return;
     }
 
-#if SPICE_SERVER_VERSION >= 0x000e02 /* release 0.14.2 */
-    Error *err = NULL;
-    char device_address[256] = "";
     if (qemu_console_fill_device_address(qxl->vga.con,
                                          device_address, sizeof(device_address),
                                          &err)) {
@@ -2221,7 +2215,6 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
     } else {
         error_report_err(err);
     }
-#endif
 
     qemu_add_vm_change_state_handler(qxl_vm_change_state_handler, qxl);
 
diff --git a/ui/spice-display.c b/ui/spice-display.c
index db71e866f89..f2304bb0ce2 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -689,13 +689,11 @@ static int interface_client_monitors_config(QXLInstance *sin,
     if (mc->num_of_monitors > head) {
         info.width  = mc->monitors[head].width;
         info.height = mc->monitors[head].height;
-#if SPICE_SERVER_VERSION >= 0x000e04 /* release 0.14.4 */
         if (mc->flags & VD_AGENT_CONFIG_MONITORS_FLAG_PHYSICAL_SIZE) {
             VDAgentMonitorMM *mm = (void *)&mc->monitors[mc->num_of_monitors];
             info.width_mm = mm[head].width;
             info.height_mm = mm[head].height;
         }
-#endif
     }
 
     trace_qemu_spice_ui_info(ssd->qxl.id, info.width, info.height);
@@ -1393,6 +1391,8 @@ static const DisplayGLCtxOps gl_ctx_ops = {
 static void qemu_spice_display_init_one(QemuConsole *con)
 {
     SimpleSpiceDisplay *ssd = g_new0(SimpleSpiceDisplay, 1);
+    Error *err = NULL;
+    char device_address[256] = "";
 
     qemu_spice_display_init_common(ssd);
 
@@ -1414,9 +1414,6 @@ static void qemu_spice_display_init_one(QemuConsole *con)
     ssd->qxl.base.sif = &dpy_interface.base;
     qemu_spice_add_display_interface(&ssd->qxl, con);
 
-#if SPICE_SERVER_VERSION >= 0x000e02 /* release 0.14.2 */
-    Error *err = NULL;
-    char device_address[256] = "";
     if (qemu_console_fill_device_address(con, device_address, 256, &err)) {
         spice_qxl_set_device_info(&ssd->qxl,
                                   device_address,
@@ -1425,7 +1422,6 @@ static void qemu_spice_display_init_one(QemuConsole *con)
     } else {
         error_report_err(err);
     }
-#endif
 
     qemu_spice_create_host_memslot(ssd);
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:50:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:50:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230417.1535902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpoT-0002wj-FM; Fri, 13 Feb 2026 09:50:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230417.1535902; Fri, 13 Feb 2026 09:50: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 1vqpoT-0002wY-Ce; Fri, 13 Feb 2026 09:50:13 +0000
Received: by outflank-mailman (input) for mailman id 1230417;
 Fri, 13 Feb 2026 09:50: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoS-0001Ng-1N
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:12 +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 60faf46a-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:08 +0100 (CET)
Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-335-spO-09MoPhGoxKEqBmvdqQ-1; Fri,
 13 Feb 2026 04:50:02 -0500
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 8C43D196C420; Fri, 13 Feb 2026 09:49:52 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id DCA1418004AD; Fri, 13 Feb 2026 09:49: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: 60faf46a-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976207;
	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=y3G7pz3JVMFqRvpJ05R+kBwpJ0ObSQg4ak0FyKLiTE8=;
	b=G+mQl2AUGuUBzR5vWxQqJhu/G71R6+jIPPPjTMvtsjLXFpGoxP8uiYEJd4ADqI5OC3I6W6
	Va1zjWvNeAOGppPGhPBiBrlzhXpI/D4cY6WyLDZYTraD819I5ziODGkzXVU7uMF4LB0wq1
	ZEMZAsVZ69baXYg7t/sPOWHQsVG0VYA=
X-MC-Unique: spO-09MoPhGoxKEqBmvdqQ-1
X-Mimecast-MFC-AGG-ID: spO-09MoPhGoxKEqBmvdqQ_1770976201
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 03/15] ui/spice: drop SPICE_HAS_ATTACHED_WORKER macro
Date: Fri, 13 Feb 2026 10:49:22 +0100
Message-ID: <20260213094938.4074478-4-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: vLQEj4W-CvBrrGrZbfDdVQkLxQ7uBQ6Dz0OolyuNfps_1770976201
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Since previous commit it is always 1. Let's just drop it.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-3-vsementsov@yandex-team.ru>
---
 include/ui/qemu-spice.h |  2 --
 hw/display/qxl.c        | 12 ------------
 ui/spice-display.c      | 11 -----------
 3 files changed, 25 deletions(-)

diff --git a/include/ui/qemu-spice.h b/include/ui/qemu-spice.h
index 8e5e6b2a744..111a09ceca3 100644
--- a/include/ui/qemu-spice.h
+++ b/include/ui/qemu-spice.h
@@ -34,8 +34,6 @@ int qemu_spice_add_display_interface(QXLInstance *qxlin, QemuConsole *con);
 int qemu_spice_migrate_info(const char *hostname, int port, int tls_port,
                             const char *subject);
 
-#define SPICE_HAS_ATTACHED_WORKER 1
-
 #else  /* CONFIG_SPICE */
 
 #include "qemu/error-report.h"
diff --git a/hw/display/qxl.c b/hw/display/qxl.c
index fbba02113f7..0551b38230b 100644
--- a/hw/display/qxl.c
+++ b/hw/display/qxl.c
@@ -530,13 +530,6 @@ static void interface_attached_worker(QXLInstance *sin)
     trace_qxl_interface_attach_worker(qxl->id);
 }
 
-#if !(SPICE_HAS_ATTACHED_WORKER)
-static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker)
-{
-    interface_attached_worker(sin);
-}
-#endif
-
 static void interface_set_compression_level(QXLInstance *sin, int level)
 {
     PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
@@ -1131,12 +1124,7 @@ static const QXLInterface qxl_interface = {
     .base.major_version      = SPICE_INTERFACE_QXL_MAJOR,
     .base.minor_version      = SPICE_INTERFACE_QXL_MINOR,
 
-#if SPICE_HAS_ATTACHED_WORKER
     .attached_worker         = interface_attached_worker,
-#else
-    .attache_worker          = interface_attach_worker,
-#endif
-
     .set_compression_level   = interface_set_compression_level,
     .get_init_info           = interface_get_init_info,
 
diff --git a/ui/spice-display.c b/ui/spice-display.c
index f2304bb0ce2..28399f8a817 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -507,17 +507,10 @@ void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)
 
 /* spice display interface callbacks */
 
-#if SPICE_HAS_ATTACHED_WORKER
 static void interface_attached_worker(QXLInstance *sin)
 {
     /* nothing to do */
 }
-#else
-static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker)
-{
-    /* nothing to do */
-}
-#endif
 
 static void interface_set_compression_level(QXLInstance *sin, int level)
 {
@@ -707,11 +700,7 @@ static const QXLInterface dpy_interface = {
     .base.major_version      = SPICE_INTERFACE_QXL_MAJOR,
     .base.minor_version      = SPICE_INTERFACE_QXL_MINOR,
 
-#if SPICE_HAS_ATTACHED_WORKER
     .attached_worker         = interface_attached_worker,
-#else
-    .attache_worker          = interface_attach_worker,
-#endif
     .set_compression_level   = interface_set_compression_level,
     .get_init_info           = interface_get_init_info,
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:50:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:50:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230419.1535908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpoT-0002zy-SJ; Fri, 13 Feb 2026 09:50:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230419.1535908; Fri, 13 Feb 2026 09:50: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 1vqpoT-0002yn-Jy; Fri, 13 Feb 2026 09:50:13 +0000
Received: by outflank-mailman (input) for mailman id 1230419;
 Fri, 13 Feb 2026 09:50: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoT-0001Ng-2N
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:13 +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 5a4ec232-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:49:57 +0100 (CET)
Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-550-qdD6mjHEOhySnGIcF1UXMg-1; Fri,
 13 Feb 2026 04:49:52 -0500
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 564761800BD2; Fri, 13 Feb 2026 09:49:45 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id DC1BD1800678; Fri, 13 Feb 2026 09:49: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: 5a4ec232-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976195;
	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=LGj9xk/Pm83KB03G6LVj5ElLZzoxkSGN+CQtNgApbDQ=;
	b=iCbKUNEFIbstVJGW8rrDn1zDuLlcsZLSLnR4GLsh4DsKfrEFjYwYLeLbe6a+wS3uZ1V1JI
	c5TFoziv0o0+Uo4hjEEUyIE4SewPZt50Q2zGUdrqu7RPbnl9DTSwgEMyhXZW5oQ5T2U5GK
	cc/6dC+Py2egf2PVJ+samBWotQFUKFs=
X-MC-Unique: qdD6mjHEOhySnGIcF1UXMg-1
X-Mimecast-MFC-AGG-ID: qdD6mjHEOhySnGIcF1UXMg_1770976189
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Eric K <erickra@cs.utexas.edu>
Subject: [PULL v2 01/15] char-udp: Fix initial backend open status
Date: Fri, 13 Feb 2026 10:49:20 +0100
Message-ID: <20260213094938.4074478-2-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: HHKQAw6KNaeTwwnxzeeCCq3ZF3rMm1DGWMyjTY3iz8w_1770976189
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Eric K <erickra@cs.utexas.edu>

This patch removes the `*be_opened = false` override for the UDP chardev
backend. Since UDP is connectionless it never sends a `CHR_EVENT_OPENED`
so it is never marked open. This causes some frontends (e.g. virtio-serial)
to never perform any operations on the socket.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2993
Signed-off-by: Eric K <erickra@cs.utexas.edu>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20251208225849.705554-1-erickra@cs.utexas.edu>
---
 chardev/char-udp.c     | 2 --
 tests/unit/test-char.c | 2 ++
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 572fab0ad13..1025f577a0d 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -215,8 +215,6 @@ static void qmp_chardev_open_udp(Chardev *chr,
     g_free(name);
 
     s->ioc = QIO_CHANNEL(sioc);
-    /* be isn't opened until we get a connection */
-    *be_opened = false;
 }
 
 static void char_udp_class_init(ObjectClass *oc, const void *data)
diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c
index 8a98e42cad0..2869c4e09df 100644
--- a/tests/unit/test-char.c
+++ b/tests/unit/test-char.c
@@ -1012,6 +1012,8 @@ static void char_udp_test_internal(Chardev *reuse_chr, int sock)
         qemu_chr_fe_init(fe, chr, &error_abort);
     }
 
+    g_assert(chr->be_open);
+
     d.chr = chr;
     qemu_chr_fe_set_handlers(fe, socket_can_read_hello, socket_read_hello,
                              NULL, NULL, &d, NULL, true);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:50:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:50:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230420.1535922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpoV-0003Mz-29; Fri, 13 Feb 2026 09:50:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230420.1535922; Fri, 13 Feb 2026 09:50: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 1vqpoU-0003Lt-T5; Fri, 13 Feb 2026 09:50:14 +0000
Received: by outflank-mailman (input) for mailman id 1230420;
 Fri, 13 Feb 2026 09:50: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoT-0001Na-Fw
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:13 +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 633ae963-08c1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 10:50:12 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-136-Bh-00Ep0N_SO-0gTINRxQA-1; Fri,
 13 Feb 2026 04:50:06 -0500
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 81A0B1884EDC; Fri, 13 Feb 2026 09:49:56 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 5DA40180066E; Fri, 13 Feb 2026 09:49: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: 633ae963-08c1-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976210;
	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=K/EYv/wOL3z8Ia2Topl38iZZVA139L2JWNE4O9fOHA4=;
	b=bhWACr+pTKP8Xnu904RCUk6br1Nsx5OoZaAwEXSK4jI305fB5ngrIPytXbT0fiX7Yafk6s
	A7vViJ5NdrK1KqRc7R8JhnRw5M5W13RrbVE0yOPTppC8z5QQ+xdFSaC/1UszXULFFMRnLa
	GouXu2I2c7IG5c/XvAVLaRtU5laXOhg=
X-MC-Unique: Bh-00Ep0N_SO-0gTINRxQA-1
X-Mimecast-MFC-AGG-ID: Bh-00Ep0N_SO-0gTINRxQA_1770976205
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 04/15] chardev: ChardevClass: consistent naming for handlers
Date: Fri, 13 Feb 2026 10:49:23 +0100
Message-ID: <20260213094938.4074478-5-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: P8uDSV4blFUsz4Q9ncgJZnfmgVT5WoPYLXkK8sQW8lI_1770976205
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Most handlers have name prefixed with "chr_". That's a good practice
which helps to grep them. Convert the rest: .parse, .open,
get/set_msgfds.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-4-vsementsov@yandex-team.ru>
---
 include/chardev/char.h                              | 8 ++++----
 chardev/baum.c                                      | 2 +-
 chardev/char-console.c                              | 2 +-
 chardev/char-fe.c                                   | 8 ++++----
 chardev/char-file.c                                 | 4 ++--
 chardev/char-hub.c                                  | 4 ++--
 chardev/char-mux.c                                  | 4 ++--
 chardev/char-null.c                                 | 2 +-
 chardev/char-parallel.c                             | 4 ++--
 chardev/char-pipe.c                                 | 4 ++--
 chardev/char-pty.c                                  | 4 ++--
 chardev/char-ringbuf.c                              | 4 ++--
 chardev/char-serial.c                               | 4 ++--
 chardev/char-socket.c                               | 8 ++++----
 chardev/char-stdio.c                                | 4 ++--
 chardev/char-udp.c                                  | 4 ++--
 chardev/char-win-stdio.c                            | 2 +-
 chardev/char.c                                      | 8 ++++----
 chardev/msmouse.c                                   | 2 +-
 chardev/spice.c                                     | 8 ++++----
 chardev/wctablet.c                                  | 2 +-
 gdbstub/system.c                                    | 2 +-
 ui/console-vc.c                                     | 4 ++--
 ui/dbus-chardev.c                                   | 8 ++++----
 ui/dbus.c                                           | 4 ++--
 ui/gtk.c                                            | 2 +-
 ui/spice-app.c                                      | 6 +++---
 ui/vdagent.c                                        | 4 ++--
 scripts/codeconverter/codeconverter/test_regexps.py | 2 +-
 29 files changed, 62 insertions(+), 62 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index 192cad67d41..d33833b6c02 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -257,10 +257,10 @@ struct ChardevClass {
     bool supports_yank;
 
     /* parse command line options and populate QAPI @backend */
-    void (*parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
+    void (*chr_parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
 
     /* called after construction, open/starts the backend */
-    void (*open)(Chardev *chr, ChardevBackend *backend,
+    void (*chr_open)(Chardev *chr, ChardevBackend *backend,
                  bool *be_opened, Error **errp);
 
     /* write buf to the backend */
@@ -282,10 +282,10 @@ struct ChardevClass {
     int (*chr_ioctl)(Chardev *s, int cmd, void *arg);
 
     /* get ancillary-received fds during last read */
-    int (*get_msgfds)(Chardev *s, int* fds, int num);
+    int (*chr_get_msgfds)(Chardev *s, int* fds, int num);
 
     /* set ancillary fds to be sent with next write */
-    int (*set_msgfds)(Chardev *s, int *fds, int num);
+    int (*chr_set_msgfds)(Chardev *s, int *fds, int num);
 
     /* accept the given fd */
     int (*chr_add_client)(Chardev *chr, int fd);
diff --git a/chardev/baum.c b/chardev/baum.c
index 157f8b95195..75e41965c11 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -676,7 +676,7 @@ static void char_braille_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = baum_chr_open;
+    cc->chr_open = baum_chr_open;
     cc->chr_write = baum_chr_write;
     cc->chr_accept_input = baum_chr_accept_input;
 }
diff --git a/chardev/char-console.c b/chardev/char-console.c
index 7e1bf642ebd..9a2e012d53f 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -38,7 +38,7 @@ static void char_console_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = qemu_chr_open_win_con;
+    cc->chr_open = qemu_chr_open_win_con;
 }
 
 static const TypeInfo char_console_type_info = {
diff --git a/chardev/char-fe.c b/chardev/char-fe.c
index 34b83fc1c4a..a44f2673731 100644
--- a/chardev/char-fe.c
+++ b/chardev/char-fe.c
@@ -130,8 +130,8 @@ int qemu_chr_fe_get_msgfds(CharFrontend *c, int *fds, int len)
         return -1;
     }
 
-    return CHARDEV_GET_CLASS(s)->get_msgfds ?
-        CHARDEV_GET_CLASS(s)->get_msgfds(s, fds, len) : -1;
+    return CHARDEV_GET_CLASS(s)->chr_get_msgfds ?
+        CHARDEV_GET_CLASS(s)->chr_get_msgfds(s, fds, len) : -1;
 }
 
 int qemu_chr_fe_set_msgfds(CharFrontend *c, int *fds, int num)
@@ -142,8 +142,8 @@ int qemu_chr_fe_set_msgfds(CharFrontend *c, int *fds, int num)
         return -1;
     }
 
-    return CHARDEV_GET_CLASS(s)->set_msgfds ?
-        CHARDEV_GET_CLASS(s)->set_msgfds(s, fds, num) : -1;
+    return CHARDEV_GET_CLASS(s)->chr_set_msgfds ?
+        CHARDEV_GET_CLASS(s)->chr_set_msgfds(s, fds, num) : -1;
 }
 
 void qemu_chr_fe_accept_input(CharFrontend *c)
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 1f7adf592ff..1e293e7054a 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -133,8 +133,8 @@ static void char_file_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_file_out;
-    cc->open = qmp_chardev_open_file;
+    cc->chr_parse = qemu_chr_parse_file_out;
+    cc->chr_open = qmp_chardev_open_file;
 }
 
 static const TypeInfo char_file_type_info = {
diff --git a/chardev/char-hub.c b/chardev/char-hub.c
index d0967c22336..082baa84ab8 100644
--- a/chardev/char-hub.c
+++ b/chardev/char-hub.c
@@ -276,8 +276,8 @@ static void char_hub_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_hub;
-    cc->open = qemu_chr_open_hub;
+    cc->chr_parse = qemu_chr_parse_hub;
+    cc->chr_open = qemu_chr_open_hub;
     cc->chr_write = hub_chr_write;
     cc->chr_add_watch = hub_chr_add_watch;
     /* We handle events from backends only */
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index db9e89f441d..c82c2da56dd 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -451,8 +451,8 @@ static void char_mux_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_mux;
-    cc->open = qemu_chr_open_mux;
+    cc->chr_parse = qemu_chr_parse_mux;
+    cc->chr_open = qemu_chr_open_mux;
     cc->chr_write = mux_chr_write;
     cc->chr_accept_input = mux_chr_accept_input;
     cc->chr_add_watch = mux_chr_add_watch;
diff --git a/chardev/char-null.c b/chardev/char-null.c
index 89cb85da792..674603b3807 100644
--- a/chardev/char-null.c
+++ b/chardev/char-null.c
@@ -38,7 +38,7 @@ static void char_null_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = null_chr_open;
+    cc->chr_open = null_chr_open;
 }
 
 static const TypeInfo char_null_type_info = {
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index 62a44b2f969..a0839b784b8 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -274,8 +274,8 @@ static void char_parallel_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_parallel;
-    cc->open = qmp_chardev_open_parallel;
+    cc->chr_parse = qemu_chr_parse_parallel;
+    cc->chr_open = qmp_chardev_open_parallel;
     cc->chr_ioctl = pp_ioctl;
 }
 
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index e9f3bb82904..a2cd322efe6 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -182,8 +182,8 @@ static void char_pipe_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_pipe;
-    cc->open = qemu_chr_open_pipe;
+    cc->chr_parse = qemu_chr_parse_pipe;
+    cc->chr_open = qemu_chr_open_pipe;
 }
 
 static const TypeInfo char_pipe_type_info = {
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 652b0bd9e73..1a15082b025 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -394,8 +394,8 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = char_pty_parse;
-    cc->open = char_pty_open;
+    cc->chr_parse = char_pty_parse;
+    cc->chr_open = char_pty_open;
     cc->chr_write = char_pty_chr_write;
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index 98aadb6acfb..6d5ba667bb4 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -227,8 +227,8 @@ static void char_ringbuf_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_ringbuf;
-    cc->open = qemu_chr_open_ringbuf;
+    cc->chr_parse = qemu_chr_parse_ringbuf;
+    cc->chr_open = qemu_chr_open_ringbuf;
     cc->chr_write = ringbuf_chr_write;
 }
 
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 4c6ca713eb1..97ed7adf736 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -305,8 +305,8 @@ static void char_serial_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_serial;
-    cc->open = qmp_chardev_open_serial;
+    cc->chr_parse = qemu_chr_parse_serial;
+    cc->chr_open = qmp_chardev_open_serial;
 #ifndef _WIN32
     cc->chr_ioctl = tty_serial_ioctl;
 #endif
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 3f45dd2ecdc..149a6d8cc15 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1585,14 +1585,14 @@ static void char_socket_class_init(ObjectClass *oc, const void *data)
 
     cc->supports_yank = true;
 
-    cc->parse = qemu_chr_parse_socket;
-    cc->open = qmp_chardev_open_socket;
+    cc->chr_parse = qemu_chr_parse_socket;
+    cc->chr_open = qmp_chardev_open_socket;
     cc->chr_wait_connected = tcp_chr_wait_connected;
     cc->chr_write = tcp_chr_write;
     cc->chr_sync_read = tcp_chr_sync_read;
     cc->chr_disconnect = tcp_chr_disconnect;
-    cc->get_msgfds = tcp_get_msgfds;
-    cc->set_msgfds = tcp_set_msgfds;
+    cc->chr_get_msgfds = tcp_get_msgfds;
+    cc->chr_set_msgfds = tcp_set_msgfds;
     cc->chr_add_client = tcp_chr_add_client;
     cc->chr_add_watch = tcp_chr_add_watch;
     cc->chr_update_read_handler = tcp_chr_update_read_handler;
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index 2568164a108..b7e9af1388f 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -142,9 +142,9 @@ static void char_stdio_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_stdio;
+    cc->chr_parse = qemu_chr_parse_stdio;
 #ifndef _WIN32
-    cc->open = qemu_chr_open_stdio;
+    cc->chr_open = qemu_chr_open_stdio;
     cc->chr_set_echo = qemu_chr_set_echo_stdio;
 #endif
 }
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 1025f577a0d..71b8d8b37df 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -221,8 +221,8 @@ static void char_udp_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_udp;
-    cc->open = qmp_chardev_open_udp;
+    cc->chr_parse = qemu_chr_parse_udp;
+    cc->chr_open = qmp_chardev_open_udp;
     cc->chr_write = udp_chr_write;
     cc->chr_update_read_handler = udp_chr_update_read_handler;
 }
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index fb802a00b13..26e67aef1ca 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -260,7 +260,7 @@ static void char_win_stdio_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = qemu_chr_open_stdio;
+    cc->chr_open = qemu_chr_open_stdio;
     cc->chr_write = win_stdio_write;
     cc->chr_set_echo = qemu_chr_set_echo_win_stdio;
 }
diff --git a/chardev/char.c b/chardev/char.c
index 3e432195a5a..df37d1df161 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -267,8 +267,8 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend,
         }
     }
 
-    if (cc->open) {
-        cc->open(chr, backend, be_opened, errp);
+    if (cc->chr_open) {
+        cc->chr_open(chr, backend, be_opened, errp);
     }
 }
 
@@ -604,8 +604,8 @@ ChardevBackend *qemu_chr_parse_opts(QemuOpts *opts, Error **errp)
     backend = g_new0(ChardevBackend, 1);
     backend->type = CHARDEV_BACKEND_KIND_NULL;
 
-    if (cc->parse) {
-        cc->parse(opts, backend, &local_err);
+    if (cc->chr_parse) {
+        cc->chr_parse(opts, backend, &local_err);
         if (local_err) {
             error_propagate(errp, local_err);
             qapi_free_ChardevBackend(backend);
diff --git a/chardev/msmouse.c b/chardev/msmouse.c
index 1a55755d397..84050164893 100644
--- a/chardev/msmouse.c
+++ b/chardev/msmouse.c
@@ -271,7 +271,7 @@ static void char_msmouse_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = msmouse_chr_open;
+    cc->chr_open = msmouse_chr_open;
     cc->chr_write = msmouse_chr_write;
     cc->chr_accept_input = msmouse_chr_accept_input;
     cc->chr_ioctl = msmouse_ioctl;
diff --git a/chardev/spice.c b/chardev/spice.c
index 39b79d60fb4..61caa6d0efe 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -364,8 +364,8 @@ static void char_spicevmc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_spice_vmc;
-    cc->open = qemu_chr_open_spice_vmc;
+    cc->chr_parse = qemu_chr_parse_spice_vmc;
+    cc->chr_open = qemu_chr_open_spice_vmc;
     cc->chr_set_fe_open = spice_vmc_set_fe_open;
 }
 
@@ -380,8 +380,8 @@ static void char_spiceport_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = qemu_chr_parse_spice_port;
-    cc->open = qemu_chr_open_spice_port;
+    cc->chr_parse = qemu_chr_parse_spice_port;
+    cc->chr_open = qemu_chr_open_spice_port;
     cc->chr_set_fe_open = spice_port_set_fe_open;
 }
 
diff --git a/chardev/wctablet.c b/chardev/wctablet.c
index 0dc6ef08f59..8285a56e7bc 100644
--- a/chardev/wctablet.c
+++ b/chardev/wctablet.c
@@ -346,7 +346,7 @@ static void wctablet_chr_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = wctablet_chr_open;
+    cc->chr_open = wctablet_chr_open;
     cc->chr_write = wctablet_chr_write;
     cc->chr_ioctl = wctablet_chr_ioctl;
     cc->chr_accept_input = wctablet_chr_accept_input;
diff --git a/gdbstub/system.c b/gdbstub/system.c
index 8ec8b7ea336..29b9e16a908 100644
--- a/gdbstub/system.c
+++ b/gdbstub/system.c
@@ -244,7 +244,7 @@ static void char_gdb_class_init(ObjectClass *oc, const void *data)
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
     cc->internal = true;
-    cc->open = gdb_monitor_open;
+    cc->chr_open = gdb_monitor_open;
     cc->chr_write = gdb_monitor_write;
 }
 
diff --git a/ui/console-vc.c b/ui/console-vc.c
index 830842064d6..931068d43ab 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -1185,8 +1185,8 @@ static void char_vc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = vc_chr_parse;
-    cc->open = vc_chr_open;
+    cc->chr_parse = vc_chr_parse;
+    cc->chr_open = vc_chr_open;
     cc->chr_write = vc_chr_write;
     cc->chr_accept_input = vc_chr_accept_input;
     cc->chr_set_echo = vc_chr_set_echo;
diff --git a/ui/dbus-chardev.c b/ui/dbus-chardev.c
index d05dddaf81b..f6c426e2209 100644
--- a/ui/dbus-chardev.c
+++ b/ui/dbus-chardev.c
@@ -205,12 +205,12 @@ dbus_chr_open(Chardev *chr, ChardevBackend *backend,
     opts = qemu_opts_create(qemu_find_opts("chardev"), NULL, 0, &error_abort);
     qemu_opt_set(opts, "server", "on", &error_abort);
     qemu_opt_set(opts, "wait", "off", &error_abort);
-    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->parse(
+    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_parse(
         opts, be, errp);
     if (*errp) {
         return;
     }
-    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->open(
+    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_open(
         chr, be, be_opened, errp);
 }
 
@@ -274,8 +274,8 @@ char_dbus_class_init(ObjectClass *oc, const void *data)
     DBusChardevClass *klass = DBUS_CHARDEV_CLASS(oc);
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse = dbus_chr_parse;
-    cc->open = dbus_chr_open;
+    cc->chr_parse = dbus_chr_parse;
+    cc->chr_open = dbus_chr_open;
     cc->chr_set_fe_open = dbus_chr_set_fe_open;
     cc->chr_set_echo = dbus_chr_set_echo;
     klass->parent_chr_be_event = cc->chr_be_event;
diff --git a/ui/dbus.c b/ui/dbus.c
index d2dff332585..31f6eb1189f 100644
--- a/ui/dbus.c
+++ b/ui/dbus.c
@@ -451,8 +451,8 @@ dbus_vc_class_init(ObjectClass *oc, const void *data)
     DBusVCClass *klass = DBUS_VC_CLASS(oc);
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    klass->parent_parse = cc->parse;
-    cc->parse = dbus_vc_parse;
+    klass->parent_parse = cc->chr_parse;
+    cc->chr_parse = dbus_vc_parse;
 }
 
 static const TypeInfo dbus_vc_type_info = {
diff --git a/ui/gtk.c b/ui/gtk.c
index e83a3666258..6217e9552e3 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1985,7 +1985,7 @@ static void char_gd_vc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->open = gd_vc_open;
+    cc->chr_open = gd_vc_open;
     cc->chr_write = gd_vc_chr_write;
     cc->chr_accept_input = gd_vc_chr_accept_input;
     cc->chr_set_echo = gd_vc_chr_set_echo;
diff --git a/ui/spice-app.c b/ui/spice-app.c
index 24f78f305c4..ea0b62a22b7 100644
--- a/ui/spice-app.c
+++ b/ui/spice-app.c
@@ -106,10 +106,10 @@ static void char_vc_class_init(ObjectClass *oc, const void *data)
     VCChardevClass *vc = CHARDEV_VC_CLASS(oc);
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    vc->parent_open = cc->open;
+    vc->parent_open = cc->chr_open;
 
-    cc->parse = vc_chr_parse;
-    cc->open = vc_chr_open;
+    cc->chr_parse = vc_chr_parse;
+    cc->chr_open = vc_chr_open;
     cc->chr_set_echo = vc_chr_set_echo;
 }
 
diff --git a/ui/vdagent.c b/ui/vdagent.c
index 142a3691ac9..090771ab171 100644
--- a/ui/vdagent.c
+++ b/ui/vdagent.c
@@ -924,8 +924,8 @@ static void vdagent_chr_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->parse            = vdagent_chr_parse;
-    cc->open             = vdagent_chr_open;
+    cc->chr_parse        = vdagent_chr_parse;
+    cc->chr_open         = vdagent_chr_open;
     cc->chr_write        = vdagent_chr_write;
     cc->chr_set_fe_open  = vdagent_chr_set_fe_open;
     cc->chr_accept_input = vdagent_chr_accept_input;
diff --git a/scripts/codeconverter/codeconverter/test_regexps.py b/scripts/codeconverter/codeconverter/test_regexps.py
index b00e9ef15b2..d3a5cc3ad38 100644
--- a/scripts/codeconverter/codeconverter/test_regexps.py
+++ b/scripts/codeconverter/codeconverter/test_regexps.py
@@ -57,7 +57,7 @@ def fullmatch(regexp, s):
 
     print(RE_TYPEINFO_START)
     assert re.search(RE_TYPEINFO_START, r'''
-    cc->open = qmp_chardev_open_file;
+    cc->chr_open = qmp_chardev_open_file;
 }
 
 static const TypeInfo char_file_type_info = {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:50:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:50:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230426.1535932 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpob-0003us-EE; Fri, 13 Feb 2026 09:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230426.1535932; Fri, 13 Feb 2026 09: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 1vqpob-0003ui-As; Fri, 13 Feb 2026 09:50:21 +0000
Received: by outflank-mailman (input) for mailman id 1230426;
 Fri, 13 Feb 2026 09: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoZ-0001Ng-AI
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:19 +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 65fc6758-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:16 +0100 (CET)
Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-440-D7FCKESLPA-4l4K5JjB0Zw-1; Fri,
 13 Feb 2026 04:50:10 -0500
Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id C80991905627; Fri, 13 Feb 2026 09:49:59 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id B7D9119560BE; Fri, 13 Feb 2026 09:49: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: 65fc6758-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976215;
	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=6UIUvqKAVHmKYMD5HBaon7fRgToMxwvi5ehZIc//TG8=;
	b=Diru8wy8UmGdGHkmzA3sKSWRbKcOUfcFN75EFdvR5+YthNY0LEJAjTzmgqYS56XAZouRtc
	eKMUo1YJ7b/psfkb+jCBkMaEjYVW/uTZUA2FyrHH8zy6D1MxjWbPy6mAKdWOSSsYfTwZ00
	OnUEOztVoq6D3xv7c61+gZFmippkY2Q=
X-MC-Unique: D7FCKESLPA-4l4K5JjB0Zw-1
X-Mimecast-MFC-AGG-ID: D7FCKESLPA-4l4K5JjB0Zw_1770976208
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 05/15] chardev: consistent naming for ChardevClass handlers implementations
Date: Fri, 13 Feb 2026 10:49:24 +0100
Message-ID: <20260213094938.4074478-6-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12
X-Mimecast-MFC-PROC-ID: 4M6VHeNRn85MQvw2A7rQRZIwSVUwlTyGZw7U4NPkW9I_1770976208
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Most handlers implementations has name like {unit_name}_{handler_name},
which is usual and well-recognized pattern. Convert the rest (especially
with useless qemu_ prefixes and misleading qmp_ prefixes) to the common
pattern.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-5-vsementsov@yandex-team.ru>
---
 chardev/char-console.c                        | 10 ++---
 chardev/char-file.c                           | 16 ++++----
 chardev/char-hub.c                            | 15 ++++---
 chardev/char-mux.c                            | 15 ++++---
 chardev/char-parallel.c                       | 28 ++++++-------
 chardev/char-pipe.c                           | 24 +++++------
 chardev/char-pty.c                            | 19 +++++----
 chardev/char-ringbuf.c                        | 16 ++++----
 chardev/char-serial.c                         | 28 ++++++-------
 chardev/char-socket.c                         | 25 ++++++------
 chardev/char-stdio.c                          | 22 +++++-----
 chardev/char-udp.c                            | 15 ++++---
 chardev/char-win-stdio.c                      | 20 +++++-----
 chardev/msmouse.c                             |  4 +-
 chardev/spice.c                               | 40 +++++++++----------
 gdbstub/system.c                              |  8 ++--
 ui/gtk.c                                      |  4 +-
 .../codeconverter/test_regexps.py             |  2 +-
 18 files changed, 153 insertions(+), 158 deletions(-)

diff --git a/chardev/char-console.c b/chardev/char-console.c
index 9a2e012d53f..f3ef1a7748c 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -26,10 +26,10 @@
 #include "chardev/char-win.h"
 #include "qemu/module.h"
 
-static void qemu_chr_open_win_con(Chardev *chr,
-                                  ChardevBackend *backend,
-                                  bool *be_opened,
-                                  Error **errp)
+static void console_chr_open(Chardev *chr,
+                             ChardevBackend *backend,
+                             bool *be_opened,
+                             Error **errp)
 {
     win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
 }
@@ -38,7 +38,7 @@ static void char_console_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_open = qemu_chr_open_win_con;
+    cc->chr_open = console_chr_open;
 }
 
 static const TypeInfo char_console_type_info = {
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 1e293e7054a..568600bb7c4 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -34,10 +34,10 @@
 #include "chardev/char-fd.h"
 #endif
 
-static void qmp_chardev_open_file(Chardev *chr,
-                                  ChardevBackend *backend,
-                                  bool *be_opened,
-                                  Error **errp)
+static void file_chr_open(Chardev *chr,
+                          ChardevBackend *backend,
+                          bool *be_opened,
+                          Error **errp)
 {
     ChardevFile *file = backend->u.file.data;
 #ifdef _WIN32
@@ -102,8 +102,8 @@ static void qmp_chardev_open_file(Chardev *chr,
 #endif
 }
 
-static void qemu_chr_parse_file_out(QemuOpts *opts, ChardevBackend *backend,
-                                    Error **errp)
+static void file_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                           Error **errp)
 {
     const char *path = qemu_opt_get(opts, "path");
     const char *inpath = qemu_opt_get(opts, "input-path");
@@ -133,8 +133,8 @@ static void char_file_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_file_out;
-    cc->chr_open = qmp_chardev_open_file;
+    cc->chr_parse = file_chr_parse;
+    cc->chr_open = file_chr_open;
 }
 
 static const TypeInfo char_file_type_info = {
diff --git a/chardev/char-hub.c b/chardev/char-hub.c
index 082baa84ab8..11556dfa72b 100644
--- a/chardev/char-hub.c
+++ b/chardev/char-hub.c
@@ -203,10 +203,10 @@ static void hub_chr_update_read_handlers(Chardev *chr)
     }
 }
 
-static void qemu_chr_open_hub(Chardev *chr,
-                                 ChardevBackend *backend,
-                                 bool *be_opened,
-                                 Error **errp)
+static void hub_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     ChardevHub *hub = backend->u.hub.data;
     HubChardev *d = HUB_CHARDEV(chr);
@@ -245,8 +245,7 @@ static void qemu_chr_open_hub(Chardev *chr,
     *be_opened = false;
 }
 
-static void qemu_chr_parse_hub(QemuOpts *opts, ChardevBackend *backend,
-                                  Error **errp)
+static void hub_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     ChardevHub *hub;
     strList **tail;
@@ -276,8 +275,8 @@ static void char_hub_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_hub;
-    cc->chr_open = qemu_chr_open_hub;
+    cc->chr_parse = hub_chr_parse;
+    cc->chr_open = hub_chr_open;
     cc->chr_write = hub_chr_write;
     cc->chr_add_watch = hub_chr_add_watch;
     /* We handle events from backends only */
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index c82c2da56dd..f38d66b21f1 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -361,10 +361,10 @@ void mux_set_focus(Chardev *chr, unsigned int focus)
     mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
 }
 
-static void qemu_chr_open_mux(Chardev *chr,
-                              ChardevBackend *backend,
-                              bool *be_opened,
-                              Error **errp)
+static void mux_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     ChardevMux *mux = backend->u.mux.data;
     Chardev *drv;
@@ -384,8 +384,7 @@ static void qemu_chr_open_mux(Chardev *chr,
     qemu_chr_fe_init(&d->chr, drv, errp);
 }
 
-static void qemu_chr_parse_mux(QemuOpts *opts, ChardevBackend *backend,
-                               Error **errp)
+static void mux_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     const char *chardev = qemu_opt_get(opts, "chardev");
     ChardevMux *mux;
@@ -451,8 +450,8 @@ static void char_mux_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_mux;
-    cc->chr_open = qemu_chr_open_mux;
+    cc->chr_parse = mux_chr_parse;
+    cc->chr_open = mux_chr_open;
     cc->chr_write = mux_chr_write;
     cc->chr_accept_input = mux_chr_accept_input;
     cc->chr_add_watch = mux_chr_add_watch;
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index a0839b784b8..1be1ef46292 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -70,7 +70,7 @@ static int pp_hw_mode(ParallelChardev *s, uint16_t mode)
     return 1;
 }
 
-static int pp_ioctl(Chardev *chr, int cmd, void *arg)
+static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
     int fd = drv->fd;
@@ -157,7 +157,7 @@ static int pp_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void qemu_chr_open_pp_fd(Chardev *chr,
+static void parallel_chr_open_fd(Chardev *chr,
                                 int fd,
                                 bool *be_opened,
                                 Error **errp)
@@ -185,7 +185,7 @@ typedef struct {
 #define PARALLEL_CHARDEV(obj)                                   \
     OBJECT_CHECK(ParallelChardev, (obj), TYPE_CHARDEV_PARALLEL)
 
-static int pp_ioctl(Chardev *chr, int cmd, void *arg)
+static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
     uint8_t b;
@@ -227,7 +227,7 @@ static int pp_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void qemu_chr_open_pp_fd(Chardev *chr,
+static void parallel_chr_open_fd(Chardev *chr,
                                 int fd,
                                 bool *be_opened,
                                 Error **errp)
@@ -239,10 +239,10 @@ static void qemu_chr_open_pp_fd(Chardev *chr,
 #endif
 
 #ifdef HAVE_CHARDEV_PARALLEL
-static void qmp_chardev_open_parallel(Chardev *chr,
-                                      ChardevBackend *backend,
-                                      bool *be_opened,
-                                      Error **errp)
+static void parallel_chr_open(Chardev *chr,
+                              ChardevBackend *backend,
+                              bool *be_opened,
+                              Error **errp)
 {
     ChardevHostdev *parallel = backend->u.parallel.data;
     int fd;
@@ -251,11 +251,11 @@ static void qmp_chardev_open_parallel(Chardev *chr,
     if (fd < 0) {
         return;
     }
-    qemu_chr_open_pp_fd(chr, fd, be_opened, errp);
+    parallel_chr_open_fd(chr, fd, be_opened, errp);
 }
 
-static void qemu_chr_parse_parallel(QemuOpts *opts, ChardevBackend *backend,
-                                    Error **errp)
+static void parallel_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                               Error **errp)
 {
     const char *device = qemu_opt_get(opts, "path");
     ChardevHostdev *parallel;
@@ -274,9 +274,9 @@ static void char_parallel_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_parallel;
-    cc->chr_open = qmp_chardev_open_parallel;
-    cc->chr_ioctl = pp_ioctl;
+    cc->chr_parse = parallel_chr_parse;
+    cc->chr_open = parallel_chr_open;
+    cc->chr_ioctl = parallel_chr_ioctl;
 }
 
 static void char_parallel_finalize(Object *obj)
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index a2cd322efe6..e84492d42b6 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -103,10 +103,10 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
     return -1;
 }
 
-static void qemu_chr_open_pipe(Chardev *chr,
-                               ChardevBackend *backend,
-                               bool *be_opened,
-                               Error **errp)
+static void pipe_chr_open(Chardev *chr,
+                          ChardevBackend *backend,
+                          bool *be_opened,
+                          Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     const char *filename = opts->device;
@@ -118,10 +118,10 @@ static void qemu_chr_open_pipe(Chardev *chr,
 
 #else
 
-static void qemu_chr_open_pipe(Chardev *chr,
-                               ChardevBackend *backend,
-                               bool *be_opened,
-                               Error **errp)
+static void pipe_chr_open(Chardev *chr,
+                          ChardevBackend *backend,
+                          bool *be_opened,
+                          Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     int fd_in, fd_out;
@@ -162,8 +162,8 @@ static void qemu_chr_open_pipe(Chardev *chr,
 
 #endif /* !_WIN32 */
 
-static void qemu_chr_parse_pipe(QemuOpts *opts, ChardevBackend *backend,
-                                Error **errp)
+static void pipe_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                           Error **errp)
 {
     const char *device = qemu_opt_get(opts, "path");
     ChardevHostdev *dev;
@@ -182,8 +182,8 @@ static void char_pipe_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_pipe;
-    cc->chr_open = qemu_chr_open_pipe;
+    cc->chr_parse = pipe_chr_parse;
+    cc->chr_open = pipe_chr_open;
 }
 
 static const TypeInfo char_pipe_type_info = {
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 1a15082b025..909ab01f5f2 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -105,7 +105,7 @@ static void pty_chr_update_read_handler(Chardev *chr)
     }
 }
 
-static int char_pty_chr_write(Chardev *chr, const uint8_t *buf, int len)
+static int pty_chr_write(Chardev *chr, const uint8_t *buf, int len)
 {
     PtyChardev *s = PTY_CHARDEV(chr);
     GPollFD pfd;
@@ -331,10 +331,10 @@ static int qemu_openpty_raw(int *aslave, char *pty_name)
     return amaster;
 }
 
-static void char_pty_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void pty_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     PtyChardev *s;
     int master_fd, slave_fd;
@@ -378,8 +378,7 @@ static void char_pty_open(Chardev *chr,
     }
 }
 
-static void char_pty_parse(QemuOpts *opts, ChardevBackend *backend,
-                           Error **errp)
+static void pty_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     const char *path = qemu_opt_get(opts, "path");
     ChardevPty *pty;
@@ -394,9 +393,9 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = char_pty_parse;
-    cc->chr_open = char_pty_open;
-    cc->chr_write = char_pty_chr_write;
+    cc->chr_parse = pty_chr_parse;
+    cc->chr_open = pty_chr_open;
+    cc->chr_write = pty_chr_write;
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
 }
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index 6d5ba667bb4..19652fe2b3a 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -92,10 +92,10 @@ static void char_ringbuf_finalize(Object *obj)
     g_free(d->cbuf);
 }
 
-static void qemu_chr_open_ringbuf(Chardev *chr,
-                                  ChardevBackend *backend,
-                                  bool *be_opened,
-                                  Error **errp)
+static void ringbuf_chr_open(Chardev *chr,
+                             ChardevBackend *backend,
+                             bool *be_opened,
+                             Error **errp)
 {
     ChardevRingbuf *opts = backend->u.ringbuf.data;
     RingBufChardev *d = RINGBUF_CHARDEV(chr);
@@ -206,8 +206,8 @@ char *qmp_ringbuf_read(const char *device, int64_t size,
     return data;
 }
 
-static void qemu_chr_parse_ringbuf(QemuOpts *opts, ChardevBackend *backend,
-                                   Error **errp)
+static void ringbuf_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                              Error **errp)
 {
     int val;
     ChardevRingbuf *ringbuf;
@@ -227,8 +227,8 @@ static void char_ringbuf_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_ringbuf;
-    cc->chr_open = qemu_chr_open_ringbuf;
+    cc->chr_parse = ringbuf_chr_parse;
+    cc->chr_open = ringbuf_chr_open;
     cc->chr_write = ringbuf_chr_write;
 }
 
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 97ed7adf736..54c2b3935cf 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -41,10 +41,10 @@
 
 #ifdef _WIN32
 
-static void qmp_chardev_open_serial(Chardev *chr,
-                                    ChardevBackend *backend,
-                                    bool *be_opened,
-                                    Error **errp)
+static void serial_chr_open(Chardev *chr,
+                            ChardevBackend *backend,
+                            bool *be_opened,
+                            Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
 
@@ -176,7 +176,7 @@ static void tty_serial_init(int fd, int speed,
     tcsetattr(fd, TCSANOW, &tty);
 }
 
-static int tty_serial_ioctl(Chardev *chr, int cmd, void *arg)
+static int serial_chr_ioctl(Chardev *chr, int cmd, void *arg)
 {
     FDChardev *s = FD_CHARDEV(chr);
     QIOChannelFile *fioc = QIO_CHANNEL_FILE(s->ioc_in);
@@ -258,10 +258,10 @@ static int tty_serial_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void qmp_chardev_open_serial(Chardev *chr,
-                                    ChardevBackend *backend,
-                                    bool *be_opened,
-                                    Error **errp)
+static void serial_chr_open(Chardev *chr,
+                            ChardevBackend *backend,
+                            bool *be_opened,
+                            Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
     int fd;
@@ -285,8 +285,8 @@ static void qmp_chardev_open_serial(Chardev *chr,
 #endif /* __linux__ || __sun__ */
 
 #ifdef HAVE_CHARDEV_SERIAL
-static void qemu_chr_parse_serial(QemuOpts *opts, ChardevBackend *backend,
-                                  Error **errp)
+static void serial_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                             Error **errp)
 {
     const char *device = qemu_opt_get(opts, "path");
     ChardevHostdev *serial;
@@ -305,10 +305,10 @@ static void char_serial_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_serial;
-    cc->chr_open = qmp_chardev_open_serial;
+    cc->chr_parse = serial_chr_parse;
+    cc->chr_open = serial_chr_open;
 #ifndef _WIN32
-    cc->chr_ioctl = tty_serial_ioctl;
+    cc->chr_ioctl = serial_chr_ioctl;
 #endif
 }
 
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 149a6d8cc15..a3203f2f97b 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -222,7 +222,7 @@ static void tcp_chr_process_IAC_bytes(Chardev *chr,
     *size = j;
 }
 
-static int tcp_get_msgfds(Chardev *chr, int *fds, int num)
+static int tcp_chr_get_msgfds(Chardev *chr, int *fds, int num)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
 
@@ -248,7 +248,7 @@ static int tcp_get_msgfds(Chardev *chr, int *fds, int num)
     return to_copy;
 }
 
-static int tcp_set_msgfds(Chardev *chr, int *fds, int num)
+static int tcp_chr_set_msgfds(Chardev *chr, int *fds, int num)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
 
@@ -367,7 +367,7 @@ static void tcp_chr_free_connection(Chardev *chr)
 
     remove_hup_source(s);
 
-    tcp_set_msgfds(chr, NULL, 0);
+    tcp_chr_set_msgfds(chr, NULL, 0);
     remove_fd_in_watch(chr);
     if (s->registered_yank &&
         (s->state == TCP_CHARDEV_STATE_CONNECTING
@@ -1365,10 +1365,10 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
 }
 
 
-static void qmp_chardev_open_socket(Chardev *chr,
-                                    ChardevBackend *backend,
-                                    bool *be_opened,
-                                    Error **errp)
+static void tcp_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
     ChardevSocket *sock = backend->u.socket.data;
@@ -1456,8 +1456,7 @@ static void qmp_chardev_open_socket(Chardev *chr,
     }
 }
 
-static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
-                                  Error **errp)
+static void tcp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     const char *path = qemu_opt_get(opts, "path");
     const char *host = qemu_opt_get(opts, "host");
@@ -1585,14 +1584,14 @@ static void char_socket_class_init(ObjectClass *oc, const void *data)
 
     cc->supports_yank = true;
 
-    cc->chr_parse = qemu_chr_parse_socket;
-    cc->chr_open = qmp_chardev_open_socket;
+    cc->chr_parse = tcp_chr_parse;
+    cc->chr_open = tcp_chr_open;
     cc->chr_wait_connected = tcp_chr_wait_connected;
     cc->chr_write = tcp_chr_write;
     cc->chr_sync_read = tcp_chr_sync_read;
     cc->chr_disconnect = tcp_chr_disconnect;
-    cc->chr_get_msgfds = tcp_get_msgfds;
-    cc->chr_set_msgfds = tcp_set_msgfds;
+    cc->chr_get_msgfds = tcp_chr_get_msgfds;
+    cc->chr_set_msgfds = tcp_chr_set_msgfds;
     cc->chr_add_client = tcp_chr_add_client;
     cc->chr_add_watch = tcp_chr_add_watch;
     cc->chr_update_read_handler = tcp_chr_update_read_handler;
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index b7e9af1388f..f0920a23faa 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -56,7 +56,7 @@ static void term_exit(void)
     }
 }
 
-static void qemu_chr_set_echo_stdio(Chardev *chr, bool echo)
+static void stdio_chr_set_echo(Chardev *chr, bool echo)
 {
     struct termios tty;
 
@@ -82,13 +82,13 @@ static void qemu_chr_set_echo_stdio(Chardev *chr, bool echo)
 static void term_stdio_handler(int sig)
 {
     /* restore echo after resume from suspend. */
-    qemu_chr_set_echo_stdio(NULL, stdio_echo_state);
+    stdio_chr_set_echo(NULL, stdio_echo_state);
 }
 
-static void qemu_chr_open_stdio(Chardev *chr,
-                                ChardevBackend *backend,
-                                bool *be_opened,
-                                Error **errp)
+static void stdio_chr_open(Chardev *chr,
+                           ChardevBackend *backend,
+                           bool *be_opened,
+                           Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
     struct sigaction act;
@@ -122,11 +122,11 @@ static void qemu_chr_open_stdio(Chardev *chr,
     sigaction(SIGCONT, &act, NULL);
 
     stdio_allow_signal = !opts->has_signal || opts->signal;
-    qemu_chr_set_echo_stdio(chr, false);
+    stdio_chr_set_echo(chr, false);
 }
 #endif
 
-static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
+static void stdio_chr_parse(QemuOpts *opts, ChardevBackend *backend,
                                  Error **errp)
 {
     ChardevStdio *stdio;
@@ -142,10 +142,10 @@ static void char_stdio_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_stdio;
+    cc->chr_parse = stdio_chr_parse;
 #ifndef _WIN32
-    cc->chr_open = qemu_chr_open_stdio;
-    cc->chr_set_echo = qemu_chr_set_echo_stdio;
+    cc->chr_open = stdio_chr_open;
+    cc->chr_set_echo = stdio_chr_set_echo;
 #endif
 }
 
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 71b8d8b37df..18f4322408a 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -131,8 +131,7 @@ static void char_udp_finalize(Object *obj)
     qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
 }
 
-static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
-                               Error **errp)
+static void udp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
 {
     const char *host = qemu_opt_get(opts, "host");
     const char *port = qemu_opt_get(opts, "port");
@@ -189,10 +188,10 @@ static void qemu_chr_parse_udp(QemuOpts *opts, ChardevBackend *backend,
     }
 }
 
-static void qmp_chardev_open_udp(Chardev *chr,
-                                 ChardevBackend *backend,
-                                 bool *be_opened,
-                                 Error **errp)
+static void upd_chr_open(Chardev *chr,
+                         ChardevBackend *backend,
+                         bool *be_opened,
+                         Error **errp)
 {
     ChardevUdp *udp = backend->u.udp.data;
     SocketAddress *local_addr = socket_address_flatten(udp->local);
@@ -221,8 +220,8 @@ static void char_udp_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_udp;
-    cc->chr_open = qmp_chardev_open_udp;
+    cc->chr_parse = udp_chr_parse;
+    cc->chr_open = upd_chr_open;
     cc->chr_write = udp_chr_write;
     cc->chr_update_read_handler = udp_chr_update_read_handler;
 }
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index 26e67aef1ca..866f3a20398 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -128,7 +128,7 @@ static void win_stdio_thread_wait_func(void *opaque)
     SetEvent(stdio->hInputDoneEvent);
 }
 
-static void qemu_chr_set_echo_win_stdio(Chardev *chr, bool echo)
+static void win_stiod_chr_set_echo(Chardev *chr, bool echo)
 {
     WinStdioChardev *stdio = WIN_STDIO_CHARDEV(chr);
     DWORD              dwMode = 0;
@@ -142,10 +142,10 @@ static void qemu_chr_set_echo_win_stdio(Chardev *chr, bool echo)
     }
 }
 
-static void qemu_chr_open_stdio(Chardev *chr,
-                                ChardevBackend *backend,
-                                bool *be_opened,
-                                Error **errp)
+static void win_stdio_chr_open(Chardev *chr,
+                               ChardevBackend *backend,
+                               bool *be_opened,
+                               Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
     bool stdio_allow_signal = !opts->has_signal || opts->signal;
@@ -206,7 +206,7 @@ static void qemu_chr_open_stdio(Chardev *chr,
 
     SetConsoleMode(stdio->hStdIn, dwMode);
 
-    qemu_chr_set_echo_win_stdio(chr, false);
+    win_stiod_chr_set_echo(chr, false);
 
     return;
 
@@ -237,7 +237,7 @@ static void char_win_stdio_finalize(Object *obj)
     }
 }
 
-static int win_stdio_write(Chardev *chr, const uint8_t *buf, int len)
+static int win_stdio_chr_write(Chardev *chr, const uint8_t *buf, int len)
 {
     HANDLE  hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
     DWORD   dwSize;
@@ -260,9 +260,9 @@ static void char_win_stdio_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_open = qemu_chr_open_stdio;
-    cc->chr_write = win_stdio_write;
-    cc->chr_set_echo = qemu_chr_set_echo_win_stdio;
+    cc->chr_open = win_stdio_chr_open;
+    cc->chr_write = win_stdio_chr_write;
+    cc->chr_set_echo = win_stiod_chr_set_echo;
 }
 
 static const TypeInfo char_win_stdio_type_info = {
diff --git a/chardev/msmouse.c b/chardev/msmouse.c
index 84050164893..d07cd998cb5 100644
--- a/chardev/msmouse.c
+++ b/chardev/msmouse.c
@@ -178,7 +178,7 @@ static const QemuInputHandler msmouse_handler = {
     .sync  = msmouse_input_sync,
 };
 
-static int msmouse_ioctl(Chardev *chr, int cmd, void *arg)
+static int msmouse_chr_ioctl(Chardev *chr, int cmd, void *arg)
 {
     MouseChardev *mouse = MOUSE_CHARDEV(chr);
     int c, i, j;
@@ -274,7 +274,7 @@ static void char_msmouse_class_init(ObjectClass *oc, const void *data)
     cc->chr_open = msmouse_chr_open;
     cc->chr_write = msmouse_chr_write;
     cc->chr_accept_input = msmouse_chr_accept_input;
-    cc->chr_ioctl = msmouse_ioctl;
+    cc->chr_ioctl = msmouse_chr_ioctl;
 }
 
 static const TypeInfo char_msmouse_type_info = {
diff --git a/chardev/spice.c b/chardev/spice.c
index 61caa6d0efe..3ea25706653 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -215,7 +215,7 @@ static void char_spice_finalize(Object *obj)
     g_free((char *)s->sin.portname);
 }
 
-static void spice_vmc_set_fe_open(struct Chardev *chr, int fe_open)
+static void spice_vmc_chr_set_fe_open(struct Chardev *chr, int fe_open)
 {
     SpiceChardev *s = SPICE_CHARDEV(chr);
     if (fe_open) {
@@ -225,7 +225,7 @@ static void spice_vmc_set_fe_open(struct Chardev *chr, int fe_open)
     }
 }
 
-static void spice_port_set_fe_open(struct Chardev *chr, int fe_open)
+static void spice_port_chr_set_fe_open(struct Chardev *chr, int fe_open)
 {
     SpiceChardev *s = SPICE_CHARDEV(chr);
 
@@ -251,10 +251,10 @@ static void chr_open(Chardev *chr, const char *subtype)
     s->sin.subtype = g_strdup(subtype);
 }
 
-static void qemu_chr_open_spice_vmc(Chardev *chr,
-                                    ChardevBackend *backend,
-                                    bool *be_opened,
-                                    Error **errp)
+static void spice_vmc_chr_open(Chardev *chr,
+                               ChardevBackend *backend,
+                               bool *be_opened,
+                               Error **errp)
 {
     ChardevSpiceChannel *spicevmc = backend->u.spicevmc.data;
     const char *type = spicevmc->type;
@@ -281,10 +281,10 @@ static void qemu_chr_open_spice_vmc(Chardev *chr,
     chr_open(chr, type);
 }
 
-static void qemu_chr_open_spice_port(Chardev *chr,
-                                     ChardevBackend *backend,
-                                     bool *be_opened,
-                                     Error **errp)
+static void spice_port_chr_open(Chardev *chr,
+                                ChardevBackend *backend,
+                                bool *be_opened,
+                                Error **errp)
 {
     ChardevSpicePort *spiceport = backend->u.spiceport.data;
     const char *name = spiceport->fqdn;
@@ -309,8 +309,8 @@ static void qemu_chr_open_spice_port(Chardev *chr,
     vmc_register_interface(s);
 }
 
-static void qemu_chr_parse_spice_vmc(QemuOpts *opts, ChardevBackend *backend,
-                                     Error **errp)
+static void spice_vmc_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                                Error **errp)
 {
     const char *name = qemu_opt_get(opts, "name");
     ChardevSpiceChannel *spicevmc;
@@ -325,8 +325,8 @@ static void qemu_chr_parse_spice_vmc(QemuOpts *opts, ChardevBackend *backend,
     spicevmc->type = g_strdup(name);
 }
 
-static void qemu_chr_parse_spice_port(QemuOpts *opts, ChardevBackend *backend,
-                                      Error **errp)
+static void spice_port_chr_parse(QemuOpts *opts, ChardevBackend *backend,
+                                 Error **errp)
 {
     const char *name = qemu_opt_get(opts, "name");
     ChardevSpicePort *spiceport;
@@ -364,9 +364,9 @@ static void char_spicevmc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_spice_vmc;
-    cc->chr_open = qemu_chr_open_spice_vmc;
-    cc->chr_set_fe_open = spice_vmc_set_fe_open;
+    cc->chr_parse = spice_vmc_chr_parse;
+    cc->chr_open = spice_vmc_chr_open;
+    cc->chr_set_fe_open = spice_vmc_chr_set_fe_open;
 }
 
 static const TypeInfo char_spicevmc_type_info = {
@@ -380,9 +380,9 @@ static void char_spiceport_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_parse = qemu_chr_parse_spice_port;
-    cc->chr_open = qemu_chr_open_spice_port;
-    cc->chr_set_fe_open = spice_port_set_fe_open;
+    cc->chr_parse = spice_port_chr_parse;
+    cc->chr_open = spice_port_chr_open;
+    cc->chr_set_fe_open = spice_port_chr_set_fe_open;
 }
 
 static const TypeInfo char_spiceport_type_info = {
diff --git a/gdbstub/system.c b/gdbstub/system.c
index 29b9e16a908..e161b14485b 100644
--- a/gdbstub/system.c
+++ b/gdbstub/system.c
@@ -225,7 +225,7 @@ static void gdb_sigterm_handler(int signal)
 }
 #endif
 
-static int gdb_monitor_write(Chardev *chr, const uint8_t *buf, int len)
+static int gdb_chr_write(Chardev *chr, const uint8_t *buf, int len)
 {
     g_autoptr(GString) hex_buf = g_string_new("O");
     gdb_memtohex(hex_buf, buf, len);
@@ -233,7 +233,7 @@ static int gdb_monitor_write(Chardev *chr, const uint8_t *buf, int len)
     return len;
 }
 
-static void gdb_monitor_open(Chardev *chr, ChardevBackend *backend,
+static void gdb_chr_open(Chardev *chr, ChardevBackend *backend,
                              bool *be_opened, Error **errp)
 {
     *be_opened = false;
@@ -244,8 +244,8 @@ static void char_gdb_class_init(ObjectClass *oc, const void *data)
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
     cc->internal = true;
-    cc->chr_open = gdb_monitor_open;
-    cc->chr_write = gdb_monitor_write;
+    cc->chr_open = gdb_chr_open;
+    cc->chr_write = gdb_chr_write;
 }
 
 #define TYPE_CHARDEV_GDB "chardev-gdb"
diff --git a/ui/gtk.c b/ui/gtk.c
index 6217e9552e3..acf55cdfce2 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1963,7 +1963,7 @@ static void gd_vc_chr_set_echo(Chardev *chr, bool echo)
 
 static int nb_vcs;
 static Chardev *vcs[MAX_VCS];
-static void gd_vc_open(Chardev *chr,
+static void gd_vc_chr_open(Chardev *chr,
                        ChardevBackend *backend,
                        bool *be_opened,
                        Error **errp)
@@ -1985,7 +1985,7 @@ static void char_gd_vc_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    cc->chr_open = gd_vc_open;
+    cc->chr_open = gd_vc_chr_open;
     cc->chr_write = gd_vc_chr_write;
     cc->chr_accept_input = gd_vc_chr_accept_input;
     cc->chr_set_echo = gd_vc_chr_set_echo;
diff --git a/scripts/codeconverter/codeconverter/test_regexps.py b/scripts/codeconverter/codeconverter/test_regexps.py
index d3a5cc3ad38..2b9f5b80111 100644
--- a/scripts/codeconverter/codeconverter/test_regexps.py
+++ b/scripts/codeconverter/codeconverter/test_regexps.py
@@ -57,7 +57,7 @@ def fullmatch(regexp, s):
 
     print(RE_TYPEINFO_START)
     assert re.search(RE_TYPEINFO_START, r'''
-    cc->chr_open = qmp_chardev_open_file;
+    cc->chr_open = file_chr_open;
 }
 
 static const TypeInfo char_file_type_info = {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:50:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:50:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230436.1535941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpoi-0004c6-QY; Fri, 13 Feb 2026 09:50:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230436.1535941; Fri, 13 Feb 2026 09:50: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 1vqpoi-0004bN-NQ; Fri, 13 Feb 2026 09:50:28 +0000
Received: by outflank-mailman (input) for mailman id 1230436;
 Fri, 13 Feb 2026 09:50: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoh-0001Na-EI
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:27 +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 6b54863f-08c1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 10:50:25 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-124-v2J-xh5zMnCpIbMpJcyfKg-1; Fri,
 13 Feb 2026 04:50:21 -0500
Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 757F1180057E; Fri, 13 Feb 2026 09:50:18 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id E00863000225; Fri, 13 Feb 2026 09:50: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: 6b54863f-08c1-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976224;
	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=4feRG+PIqLPyCpVStJ7uIxka6xWW9klU080X9xA3hKo=;
	b=ZtYvv9lRqrfvms3O2pnTmSTd3GaLHIMimzX4B+mycX+G/DG48o95urPreWUOxEJ3SodZrz
	CnCYZdz1C+aKFjj1KXSFE4FdczXVaWwQ2qGSUNnJDAPGoI/w6GvJC3FVn6GxDGWAXaXL+4
	UnLEVdwuLBWRVrG+dExu52ittsePetQ=
X-MC-Unique: v2J-xh5zMnCpIbMpJcyfKg-1
X-Mimecast-MFC-AGG-ID: v2J-xh5zMnCpIbMpJcyfKg_1770976218
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 11/15] chardev/char: qemu_char_open(): add return value
Date: Fri, 13 Feb 2026 10:49:30 +0100
Message-ID: <20260213094938.4074478-12-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4
X-Mimecast-MFC-PROC-ID: _Q4kEXEFw4oxyI3z4g7l1GiV77eou9QjTH3cW5J-Ubk_1770976218
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Accordingly with recommendations in include/qapi/error.h accompany
errp by boolean return value and get rid of error propagation.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-11-vsementsov@yandex-team.ru>
---
 chardev/char.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/chardev/char.c b/chardev/char.c
index 3373c9b61f8..5d00cac2f31 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -246,7 +246,7 @@ int qemu_chr_add_client(Chardev *s, int fd)
         CHARDEV_GET_CLASS(s)->chr_add_client(s, fd) : -1;
 }
 
-static void qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevClass *cc = CHARDEV_GET_CLASS(chr);
     /* Any ChardevCommon member would work */
@@ -262,13 +262,15 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         }
         chr->logfd = qemu_create(common->logfile, flags, 0666, errp);
         if (chr->logfd < 0) {
-            return;
+            return false;
         }
     }
 
-    if (cc->chr_open) {
-        cc->chr_open(chr, backend, errp);
+    if (!cc->chr_open) {
+        return true;
     }
+
+    return cc->chr_open(chr, backend, errp);
 }
 
 static void char_init(Object *obj)
@@ -1006,7 +1008,6 @@ static Chardev *chardev_new(const char *id, const char *typename,
 {
     Object *obj;
     Chardev *chr = NULL;
-    Error *local_err = NULL;
 
     assert(g_str_has_prefix(typename, "chardev-"));
     assert(id);
@@ -1017,9 +1018,7 @@ static Chardev *chardev_new(const char *id, const char *typename,
     chr->label = g_strdup(id);
     chr->gcontext = gcontext;
 
-    qemu_char_open(chr, backend, &local_err);
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!qemu_char_open(chr, backend, errp)) {
         object_unref(obj);
         return NULL;
     }
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:50:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:50:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230437.1535946 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpoj-0004gV-6u; Fri, 13 Feb 2026 09:50:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230437.1535946; Fri, 13 Feb 2026 09:50: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 1vqpoj-0004eq-0p; Fri, 13 Feb 2026 09:50:29 +0000
Received: by outflank-mailman (input) for mailman id 1230437;
 Fri, 13 Feb 2026 09:50: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoi-0001Na-EU
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:28 +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 6c54edcd-08c1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 10:50:27 +0100 (CET)
Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-524-qJo4xogmOe6TKqmwW-010Q-1; Fri,
 13 Feb 2026 04:50:23 -0500
Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 230C2196C402; Fri, 13 Feb 2026 09:50:21 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 4F8FC180067C; Fri, 13 Feb 2026 09:50: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: 6c54edcd-08c1-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976226;
	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=tpYjeot8p53E9hbudpSJPO+xYO8RwO13MoSHQweyb84=;
	b=YsvJpCaydBJzkf+9rxNZdtmIwLukSZCSHwvi7kmGLLS5TvmtdJOAfvxDsN7+x/SHtJcefi
	hAwqlxiiyD3pidiGFV3EliNnKpduRvEhSa3+PEiZc64xJWf5c1/T9TsXZOlD64uRLiGSGv
	0K3nSG042/Cbb6R1+kapqPQ2fuCWU+o=
X-MC-Unique: qJo4xogmOe6TKqmwW-010Q-1
X-Mimecast-MFC-AGG-ID: qJo4xogmOe6TKqmwW-010Q_1770976221
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 12/15] char: qemu_chr_write_log() use qemu_write_full()
Date: Fri, 13 Feb 2026 10:49:31 +0100
Message-ID: <20260213094938.4074478-13-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93
X-Mimecast-MFC-PROC-ID: 8c7XE562pWIRUZ4y5wlRy4cWwJO6hBNaO7ItS3QihEU_1770976221
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

logfd is blocking, so we don't need to care about EAGAIN.
Let's simply use qemu_write_full().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20260201173633.413934-2-vsementsov@yandex-team.ru>
---
 chardev/char.c | 22 +++++-----------------
 1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/chardev/char.c b/chardev/char.c
index 5d00cac2f31..4b285baf029 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -82,29 +82,17 @@ void qemu_chr_be_event(Chardev *s, QEMUChrEvent event)
     CHARDEV_GET_CLASS(s)->chr_be_event(s, event);
 }
 
-/* Not reporting errors from writing to logfile, as logs are
- * defined to be "best effort" only */
 static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
 {
-    size_t done = 0;
-    ssize_t ret;
-
     if (s->logfd < 0) {
         return;
     }
 
-    while (done < len) {
-    retry:
-        ret = write(s->logfd, buf + done, len - done);
-        if (ret == -1 && errno == EAGAIN) {
-            g_usleep(100);
-            goto retry;
-        }
-
-        if (ret <= 0) {
-            return;
-        }
-        done += ret;
+    if (qemu_write_full(s->logfd, buf, len) < len) {
+        /*
+         * qemu_write_full() is defined with G_GNUC_WARN_UNUSED_RESULT,
+         * but logging is best‑effort, we do ignore errors.
+         */
     }
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:57:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:57:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230483.1535982 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpvY-00078X-HT; Fri, 13 Feb 2026 09:57:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230483.1535982; Fri, 13 Feb 2026 09:57:32 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpvY-00078N-Eo; Fri, 13 Feb 2026 09:57:32 +0000
Received: by outflank-mailman (input) for mailman id 1230483;
 Fri, 13 Feb 2026 09:57: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpog-0001Ng-Bm
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:26 +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 68947748-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:21 +0100 (CET)
Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-36-txG-vcI2NLC0ek1FXKCV6A-1; Fri,
 13 Feb 2026 04:50:15 -0500
Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 4D33B18ADBC0; Fri, 13 Feb 2026 09:50:10 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 51E2419560B9; Fri, 13 Feb 2026 09:50: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: 68947748-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976219;
	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=47+h7KsUk4pIeVRSrl5x3R/+mYPfTcUJPXIJdzZh/Nw=;
	b=Gmrwr6LovzbEz24zQ/+0phBuxED7DWZGdMryrf7D1jFzzdc4hvv0mE7KBkYXzKAsp99n/S
	OIDFYqABl09F6bB3UlMCdiEX1hQ2KGLzyk3KxgBBiMcDrXcx2gXzxsGYlmi+ncRd8FLDVT
	aMYVOQTWSzlagpUOHt7TbjW0ITpSxvk=
X-MC-Unique: txG-vcI2NLC0ek1FXKCV6A-1
X-Mimecast-MFC-AGG-ID: txG-vcI2NLC0ek1FXKCV6A_1770976213
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 08/15] chardev/char-pty: store pty_name into PtyChardev state
Date: Fri, 13 Feb 2026 10:49:27 +0100
Message-ID: <20260213094938.4074478-9-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12
X-Mimecast-MFC-PROC-ID: Y8-80kxtKYmgd9d1QoiaeAHp1_MGiqZ_VzPITehyhrQ_1770976213
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

We'll use it in following commit.

Note the bonus: stop use blind strcpy().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-8-vsementsov@yandex-team.ru>
---
 chardev/char-pty.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 9e26e97baf5..a582aa7bc73 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -43,6 +43,7 @@ struct PtyChardev {
     int connected;
     GSource *timer_src;
     char *path;
+    char *pty_name;
 };
 typedef struct PtyChardev PtyChardev;
 
@@ -303,7 +304,7 @@ static void cfmakeraw (struct termios *termios_p)
 #endif
 
 /* like openpty() but also makes it raw; return master fd */
-static int qemu_openpty_raw(int *aslave, char *pty_name)
+static int qemu_openpty_raw(int *aslave, char **pty_name)
 {
     int amaster;
     struct termios tty;
@@ -324,9 +325,7 @@ static int qemu_openpty_raw(int *aslave, char *pty_name)
     cfmakeraw(&tty);
     tcsetattr(*aslave, TCSAFLUSH, &tty);
 
-    if (pty_name) {
-        strcpy(pty_name, q_ptsname(amaster));
-    }
+    *pty_name = g_strdup(q_ptsname(amaster));
 
     return amaster;
 }
@@ -335,11 +334,12 @@ static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     PtyChardev *s;
     int master_fd, slave_fd;
-    char pty_name[PATH_MAX];
     char *name;
     char *path = backend->u.pty.data->path;
 
-    master_fd = qemu_openpty_raw(&slave_fd, pty_name);
+    s = PTY_CHARDEV(chr);
+
+    master_fd = qemu_openpty_raw(&slave_fd, &s->pty_name);
     if (master_fd < 0) {
         error_setg_errno(errp, errno, "Failed to create PTY");
         return false;
@@ -351,11 +351,10 @@ static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         return false;
     }
 
-    chr->filename = g_strdup_printf("pty:%s", pty_name);
+    chr->filename = g_strdup_printf("pty:%s", s->pty_name);
     qemu_printf("char device redirected to %s (label %s)\n",
-                pty_name, chr->label);
+                s->pty_name, chr->label);
 
-    s = PTY_CHARDEV(chr);
     s->ioc = QIO_CHANNEL(qio_channel_file_new_fd(master_fd));
     name = g_strdup_printf("chardev-pty-%s", chr->label);
     qio_channel_set_name(s->ioc, name);
@@ -364,7 +363,7 @@ static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     /* create symbolic link */
     if (path) {
-        int res = symlink(pty_name, path);
+        int res = symlink(s->pty_name, path);
 
         if (res != 0) {
             error_setg_errno(errp, errno, "Failed to create PTY symlink");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:57:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:57:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230481.1535963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpvV-0006fX-V4; Fri, 13 Feb 2026 09:57:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230481.1535963; Fri, 13 Feb 2026 09:57:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpvV-0006fQ-RA; Fri, 13 Feb 2026 09:57:29 +0000
Received: by outflank-mailman (input) for mailman id 1230481;
 Fri, 13 Feb 2026 09:57: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpof-0001Ng-BR
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:25 +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 67e8b4d0-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:20 +0100 (CET)
Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-249-ccQBv4M4MaqY0leUR4BYzQ-1; Fri,
 13 Feb 2026 04:50:14 -0500
Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 1922E18826AB; Fri, 13 Feb 2026 09:50:04 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 41D371800352; Fri, 13 Feb 2026 09:50: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: 67e8b4d0-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976218;
	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=ARe11uBwUQtZK+r/LyMwdLX8qnRbouC5icUkGH7AqSA=;
	b=WQa1r+2FdcFqyB5PqgACKawat4bEiD8Pv2OnY5Ky7AW+1kxqlcxSHcUQBm0i2k3J8pBNNy
	enOpsIKedRJvInxLHiRqB095BNq2QLbvgNR7muzOZ8gjGYFPFG/ltIFdtfCKeh/3reC7O/
	RNyNY/dALEJdu1ONZB8uI5patPHRwAo=
X-MC-Unique: ccQBv4M4MaqY0leUR4BYzQ-1
X-Mimecast-MFC-AGG-ID: ccQBv4M4MaqY0leUR4BYzQ_1770976212
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 06/15] chardev: .chr_open(): drop be_opened parameter
Date: Fri, 13 Feb 2026 10:49:25 +0100
Message-ID: <20260213094938.4074478-7-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111
X-Mimecast-MFC-PROC-ID: uCOmXi8NH7_Uecwobt1chg8CJBtEtF3iAesT6ZbHjyc_1770976212
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

The logic around the parameter is rather tricky. Let's instead
explicitly send CHR_EVENT_OPENED in all backends where needed.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
[ Marc-André - add CHR_EVENT_OPENED in udp_chr_open() ]
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-6-vsementsov@yandex-team.ru>
---
 include/chardev/char.h   |  3 +--
 chardev/baum.c           |  7 +++----
 chardev/char-console.c   |  5 ++---
 chardev/char-file.c      |  7 +++----
 chardev/char-hub.c       | 11 +++++------
 chardev/char-mux.c       | 19 +++++++++++--------
 chardev/char-null.c      |  7 ++-----
 chardev/char-parallel.c  | 15 ++++-----------
 chardev/char-pipe.c      | 14 ++++++--------
 chardev/char-pty.c       |  6 +-----
 chardev/char-ringbuf.c   |  3 ++-
 chardev/char-serial.c    | 18 +++++++++---------
 chardev/char-socket.c    | 10 +++-------
 chardev/char-stdio.c     |  7 +++----
 chardev/char-udp.c       |  6 ++----
 chardev/char-win-stdio.c |  2 +-
 chardev/char.c           | 11 +++--------
 chardev/msmouse.c        |  4 ++--
 chardev/spice.c          | 10 ++--------
 chardev/wctablet.c       |  5 ++---
 gdbstub/system.c         |  5 ++---
 ui/console-vc.c          |  7 ++-----
 ui/dbus-chardev.c        |  6 ++----
 ui/gtk.c                 |  9 +++------
 ui/spice-app.c           | 10 +++-------
 ui/vdagent.c             |  3 +--
 26 files changed, 80 insertions(+), 130 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index d33833b6c02..aa42e01b8a3 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -260,8 +260,7 @@ struct ChardevClass {
     void (*chr_parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
 
     /* called after construction, open/starts the backend */
-    void (*chr_open)(Chardev *chr, ChardevBackend *backend,
-                 bool *be_opened, Error **errp);
+    void (*chr_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
 
     /* write buf to the backend */
     int (*chr_write)(Chardev *s, const uint8_t *buf, int len);
diff --git a/chardev/baum.c b/chardev/baum.c
index 75e41965c11..4b97d630ffb 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -642,10 +642,7 @@ static void char_braille_finalize(Object *obj)
     }
 }
 
-static void baum_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     BaumChardev *baum = BAUM_CHARDEV(chr);
     brlapi_handle_t *handle;
@@ -670,6 +667,8 @@ static void baum_chr_open(Chardev *chr,
      * as an integer, but in practice it seems to work
      */
     qemu_set_fd_handler(baum->brlapi_fd, baum_chr_read, NULL, baum);
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void char_braille_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-console.c b/chardev/char-console.c
index f3ef1a7748c..423f0f4cc4e 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -26,12 +26,11 @@
 #include "chardev/char-win.h"
 #include "qemu/module.h"
 
-static void console_chr_open(Chardev *chr,
-                             ChardevBackend *backend,
-                             bool *be_opened,
+static void console_chr_open(Chardev *chr, ChardevBackend *backend,
                              Error **errp)
 {
     win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void char_console_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 568600bb7c4..34ef386abc5 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -34,10 +34,7 @@
 #include "chardev/char-fd.h"
 #endif
 
-static void file_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevFile *file = backend->u.file.data;
 #ifdef _WIN32
@@ -100,6 +97,8 @@ static void file_chr_open(Chardev *chr,
         return;
     }
 #endif
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void file_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/char-hub.c b/chardev/char-hub.c
index 11556dfa72b..aa6058c2f6f 100644
--- a/chardev/char-hub.c
+++ b/chardev/char-hub.c
@@ -203,10 +203,7 @@ static void hub_chr_update_read_handlers(Chardev *chr)
     }
 }
 
-static void hub_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHub *hub = backend->u.hub.data;
     HubChardev *d = HUB_CHARDEV(chr);
@@ -241,8 +238,10 @@ static void hub_chr_open(Chardev *chr,
         list = list->next;
     }
 
-    /* Closed until an explicit event from backend */
-    *be_opened = false;
+    /*
+     * Closed until an explicit event from backend, so we don't
+     * send CHR_EVENT_OPENED now.
+     */
 }
 
 static void hub_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index f38d66b21f1..7210df431fc 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -361,10 +361,7 @@ void mux_set_focus(Chardev *chr, unsigned int focus)
     mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
 }
 
-static void mux_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevMux *mux = backend->u.mux.data;
     Chardev *drv;
@@ -377,11 +374,17 @@ static void mux_chr_open(Chardev *chr,
     }
 
     d->focus = -1;
-    /* only default to opened state if we've realized the initial
-     * set of muxes
+    if (!qemu_chr_fe_init(&d->chr, drv, errp)) {
+        return;
+    }
+
+    /*
+     * Only move to opened state if we've realized
+     * the initial set of muxes:
      */
-    *be_opened = muxes_opened;
-    qemu_chr_fe_init(&d->chr, drv, errp);
+    if (muxes_opened) {
+        qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    }
 }
 
 static void mux_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-null.c b/chardev/char-null.c
index 674603b3807..900b5febb6c 100644
--- a/chardev/char-null.c
+++ b/chardev/char-null.c
@@ -26,12 +26,9 @@
 #include "chardev/char.h"
 #include "qemu/module.h"
 
-static void null_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void null_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
-    *be_opened = false;
+    /* do not send CHR_EVENT_OPENED */
 }
 
 static void char_null_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index 1be1ef46292..359efa3c9c8 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -157,10 +157,7 @@ static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void parallel_chr_open_fd(Chardev *chr,
-                                int fd,
-                                bool *be_opened,
-                                Error **errp)
+static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
 
@@ -172,6 +169,7 @@ static void parallel_chr_open_fd(Chardev *chr,
     }
 
     drv->mode = IEEE1284_MODE_COMPAT;
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 #endif /* __linux__ */
 
@@ -227,21 +225,16 @@ static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void parallel_chr_open_fd(Chardev *chr,
-                                int fd,
-                                bool *be_opened,
-                                Error **errp)
+static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
     drv->fd = fd;
-    *be_opened = false;
 }
 #endif
 
 #ifdef HAVE_CHARDEV_PARALLEL
 static void parallel_chr_open(Chardev *chr,
                               ChardevBackend *backend,
-                              bool *be_opened,
                               Error **errp)
 {
     ChardevHostdev *parallel = backend->u.parallel.data;
@@ -251,7 +244,7 @@ static void parallel_chr_open(Chardev *chr,
     if (fd < 0) {
         return;
     }
-    parallel_chr_open_fd(chr, fd, be_opened, errp);
+    parallel_chr_open_fd(chr, fd, errp);
 }
 
 static void parallel_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index e84492d42b6..2f26372dfc9 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -103,10 +103,7 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
     return -1;
 }
 
-static void pipe_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     const char *filename = opts->device;
@@ -114,14 +111,13 @@ static void pipe_chr_open(Chardev *chr,
     if (win_chr_pipe_init(chr, filename, errp) < 0) {
         return;
     }
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 #else
 
-static void pipe_chr_open(Chardev *chr,
-                          ChardevBackend *backend,
-                          bool *be_opened,
-                          Error **errp)
+static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     int fd_in, fd_out;
@@ -158,6 +154,8 @@ static void pipe_chr_open(Chardev *chr,
         }
         return;
     }
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 #endif /* !_WIN32 */
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 909ab01f5f2..d4d69a29a95 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -331,10 +331,7 @@ static int qemu_openpty_raw(int *aslave, char *pty_name)
     return amaster;
 }
 
-static void pty_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     PtyChardev *s;
     int master_fd, slave_fd;
@@ -364,7 +361,6 @@ static void pty_chr_open(Chardev *chr,
     qio_channel_set_name(s->ioc, name);
     g_free(name);
     s->timer_src = NULL;
-    *be_opened = false;
 
     /* create symbolic link */
     if (path) {
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index 19652fe2b3a..30b17a96d3a 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -94,7 +94,6 @@ static void char_ringbuf_finalize(Object *obj)
 
 static void ringbuf_chr_open(Chardev *chr,
                              ChardevBackend *backend,
-                             bool *be_opened,
                              Error **errp)
 {
     ChardevRingbuf *opts = backend->u.ringbuf.data;
@@ -111,6 +110,8 @@ static void ringbuf_chr_open(Chardev *chr,
     d->prod = 0;
     d->cons = 0;
     d->cbuf = g_malloc0(d->size);
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 void qmp_ringbuf_write(const char *device, const char *data,
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 54c2b3935cf..9995f184258 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -41,14 +41,15 @@
 
 #ifdef _WIN32
 
-static void serial_chr_open(Chardev *chr,
-                            ChardevBackend *backend,
-                            bool *be_opened,
-                            Error **errp)
+static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
+    int ret = win_chr_serial_init(chr, serial->device, errp);
+    if (ret < 0) {
+        return;
+    }
 
-    win_chr_serial_init(chr, serial->device, errp);
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)      \
@@ -258,10 +259,7 @@ static int serial_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void serial_chr_open(Chardev *chr,
-                            ChardevBackend *backend,
-                            bool *be_opened,
-                            Error **errp)
+static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
     int fd;
@@ -281,6 +279,8 @@ static void serial_chr_open(Chardev *chr,
         close(fd);
         return;
     }
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 #endif /* __linux__ || __sun__ */
 
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index a3203f2f97b..2951b2ec9be 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1365,10 +1365,7 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
 }
 
 
-static void tcp_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
     ChardevSocket *sock = backend->u.socket.data;
@@ -1439,9 +1436,6 @@ static void tcp_chr_open(Chardev *chr,
     }
     s->registered_yank = true;
 
-    /* be isn't opened until we get a connection */
-    *be_opened = false;
-
     update_disconnected_filename(s);
 
     if (s->is_listen) {
@@ -1454,6 +1448,8 @@ static void tcp_chr_open(Chardev *chr,
             return;
         }
     }
+
+    /* be isn't opened until we get a connection */
 }
 
 static void tcp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index f0920a23faa..534f6ed5658 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -85,10 +85,7 @@ static void term_stdio_handler(int sig)
     stdio_chr_set_echo(NULL, stdio_echo_state);
 }
 
-static void stdio_chr_open(Chardev *chr,
-                           ChardevBackend *backend,
-                           bool *be_opened,
-                           Error **errp)
+static void stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
     struct sigaction act;
@@ -123,6 +120,8 @@ static void stdio_chr_open(Chardev *chr,
 
     stdio_allow_signal = !opts->has_signal || opts->signal;
     stdio_chr_set_echo(chr, false);
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 #endif
 
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 18f4322408a..4c81c95e656 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -188,10 +188,7 @@ static void udp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
     }
 }
 
-static void upd_chr_open(Chardev *chr,
-                         ChardevBackend *backend,
-                         bool *be_opened,
-                         Error **errp)
+static void upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevUdp *udp = backend->u.udp.data;
     SocketAddress *local_addr = socket_address_flatten(udp->local);
@@ -214,6 +211,7 @@ static void upd_chr_open(Chardev *chr,
     g_free(name);
 
     s->ioc = QIO_CHANNEL(sioc);
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void char_udp_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index 866f3a20398..0535960ff1b 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -144,7 +144,6 @@ static void win_stiod_chr_set_echo(Chardev *chr, bool echo)
 
 static void win_stdio_chr_open(Chardev *chr,
                                ChardevBackend *backend,
-                               bool *be_opened,
                                Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
@@ -208,6 +207,7 @@ static void win_stdio_chr_open(Chardev *chr,
 
     win_stiod_chr_set_echo(chr, false);
 
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
     return;
 
 err3:
diff --git a/chardev/char.c b/chardev/char.c
index df37d1df161..44bfed36272 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -246,8 +246,7 @@ int qemu_chr_add_client(Chardev *s, int fd)
         CHARDEV_GET_CLASS(s)->chr_add_client(s, fd) : -1;
 }
 
-static void qemu_char_open(Chardev *chr, ChardevBackend *backend,
-                           bool *be_opened, Error **errp)
+static void qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevClass *cc = CHARDEV_GET_CLASS(chr);
     /* Any ChardevCommon member would work */
@@ -268,7 +267,7 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend,
     }
 
     if (cc->chr_open) {
-        cc->chr_open(chr, backend, be_opened, errp);
+        cc->chr_open(chr, backend, errp);
     }
 }
 
@@ -1009,7 +1008,6 @@ static Chardev *chardev_new(const char *id, const char *typename,
     Object *obj;
     Chardev *chr = NULL;
     Error *local_err = NULL;
-    bool be_opened = true;
 
     assert(g_str_has_prefix(typename, "chardev-"));
     assert(id);
@@ -1020,7 +1018,7 @@ static Chardev *chardev_new(const char *id, const char *typename,
     chr->label = g_strdup(id);
     chr->gcontext = gcontext;
 
-    qemu_char_open(chr, backend, &be_opened, &local_err);
+    qemu_char_open(chr, backend, &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
         object_unref(obj);
@@ -1030,9 +1028,6 @@ static Chardev *chardev_new(const char *id, const char *typename,
     if (!chr->filename) {
         chr->filename = g_strdup(typename + 8);
     }
-    if (be_opened) {
-        qemu_chr_be_event(chr, CHR_EVENT_OPENED);
-    }
 
     return chr;
 }
diff --git a/chardev/msmouse.c b/chardev/msmouse.c
index d07cd998cb5..9dc04e3b3ec 100644
--- a/chardev/msmouse.c
+++ b/chardev/msmouse.c
@@ -255,16 +255,16 @@ static void char_msmouse_finalize(Object *obj)
 
 static void msmouse_chr_open(Chardev *chr,
                              ChardevBackend *backend,
-                             bool *be_opened,
                              Error **errp)
 {
     MouseChardev *mouse = MOUSE_CHARDEV(chr);
 
-    *be_opened = false;
     mouse->hs = qemu_input_handler_register((DeviceState *)mouse,
                                             &msmouse_handler);
     mouse->tiocm = 0;
     fifo8_create(&mouse->outbuf, MSMOUSE_BUF_SZ);
+
+    /* Never send CHR_EVENT_OPENED */
 }
 
 static void char_msmouse_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/spice.c b/chardev/spice.c
index 3ea25706653..f5b1f585eb1 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -251,9 +251,7 @@ static void chr_open(Chardev *chr, const char *subtype)
     s->sin.subtype = g_strdup(subtype);
 }
 
-static void spice_vmc_chr_open(Chardev *chr,
-                               ChardevBackend *backend,
-                               bool *be_opened,
+static void spice_vmc_chr_open(Chardev *chr, ChardevBackend *backend,
                                Error **errp)
 {
     ChardevSpiceChannel *spicevmc = backend->u.spicevmc.data;
@@ -277,13 +275,10 @@ static void spice_vmc_chr_open(Chardev *chr,
         return;
     }
 
-    *be_opened = false;
     chr_open(chr, type);
 }
 
-static void spice_port_chr_open(Chardev *chr,
-                                ChardevBackend *backend,
-                                bool *be_opened,
+static void spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
                                 Error **errp)
 {
     ChardevSpicePort *spiceport = backend->u.spiceport.data;
@@ -302,7 +297,6 @@ static void spice_port_chr_open(Chardev *chr,
 
     chr_open(chr, "port");
 
-    *be_opened = false;
     s = SPICE_CHARDEV(chr);
     s->sin.portname = g_strdup(name);
 
diff --git a/chardev/wctablet.c b/chardev/wctablet.c
index 8285a56e7bc..65b2ceb58c9 100644
--- a/chardev/wctablet.c
+++ b/chardev/wctablet.c
@@ -326,13 +326,10 @@ static void wctablet_chr_finalize(Object *obj)
 
 static void wctablet_chr_open(Chardev *chr,
                               ChardevBackend *backend,
-                              bool *be_opened,
                               Error **errp)
 {
     TabletChardev *tablet = WCTABLET_CHARDEV(chr);
 
-    *be_opened = true;
-
     /* init state machine */
     memcpy(tablet->outbuf, WC_FULL_CONFIG_STRING, WC_FULL_CONFIG_STRING_LENGTH);
     tablet->outlen = WC_FULL_CONFIG_STRING_LENGTH;
@@ -340,6 +337,8 @@ static void wctablet_chr_open(Chardev *chr,
 
     tablet->hs = qemu_input_handler_register((DeviceState *)tablet,
                                              &wctablet_handler);
+
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void wctablet_chr_class_init(ObjectClass *oc, const void *data)
diff --git a/gdbstub/system.c b/gdbstub/system.c
index e161b14485b..982857f314a 100644
--- a/gdbstub/system.c
+++ b/gdbstub/system.c
@@ -233,10 +233,9 @@ static int gdb_chr_write(Chardev *chr, const uint8_t *buf, int len)
     return len;
 }
 
-static void gdb_chr_open(Chardev *chr, ChardevBackend *backend,
-                             bool *be_opened, Error **errp)
+static void gdb_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
-    *be_opened = false;
+    /* Never send CHR_EVENT_OPENED */
 }
 
 static void char_gdb_class_init(ObjectClass *oc, const void *data)
diff --git a/ui/console-vc.c b/ui/console-vc.c
index 931068d43ab..4c8ea4c1485 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -1093,10 +1093,7 @@ void qemu_text_console_update_size(QemuTextConsole *c)
     dpy_text_resize(QEMU_CONSOLE(c), c->width, c->height);
 }
 
-static void vc_chr_open(Chardev *chr,
-                        ChardevBackend *backend,
-                        bool *be_opened,
-                        Error **errp)
+static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevVC *vc = backend->u.vc.data;
     VCChardev *drv = VC_CHARDEV(chr);
@@ -1144,7 +1141,7 @@ static void vc_chr_open(Chardev *chr,
         drv->t_attrib = TEXT_ATTRIBUTES_DEFAULT;
     }
 
-    *be_opened = true;
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void vc_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/ui/dbus-chardev.c b/ui/dbus-chardev.c
index f6c426e2209..3e471f84cd8 100644
--- a/ui/dbus-chardev.c
+++ b/ui/dbus-chardev.c
@@ -176,9 +176,7 @@ dbus_chr_send_break(
     return DBUS_METHOD_INVOCATION_HANDLED;
 }
 
-static void
-dbus_chr_open(Chardev *chr, ChardevBackend *backend,
-              bool *be_opened, Error **errp)
+static void dbus_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ERRP_GUARD();
 
@@ -211,7 +209,7 @@ dbus_chr_open(Chardev *chr, ChardevBackend *backend,
         return;
     }
     CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_open(
-        chr, be, be_opened, errp);
+        chr, be, errp);
 }
 
 static void
diff --git a/ui/gtk.c b/ui/gtk.c
index acf55cdfce2..44b2b868ec9 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1963,10 +1963,7 @@ static void gd_vc_chr_set_echo(Chardev *chr, bool echo)
 
 static int nb_vcs;
 static Chardev *vcs[MAX_VCS];
-static void gd_vc_chr_open(Chardev *chr,
-                       ChardevBackend *backend,
-                       bool *be_opened,
-                       Error **errp)
+static void gd_vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     if (nb_vcs == MAX_VCS) {
         error_setg(errp, "Maximum number of consoles reached");
@@ -1975,10 +1972,10 @@ static void gd_vc_chr_open(Chardev *chr,
 
     vcs[nb_vcs++] = chr;
 
-    /* console/chardev init sometimes completes elsewhere in a 2nd
+    /*
+     * console/chardev init sometimes completes elsewhere in a 2nd
      * stage, so defer OPENED events until they are fully initialized
      */
-    *be_opened = false;
 }
 
 static void char_gd_vc_class_init(ObjectClass *oc, const void *data)
diff --git a/ui/spice-app.c b/ui/spice-app.c
index ea0b62a22b7..7ac9ae4e78d 100644
--- a/ui/spice-app.c
+++ b/ui/spice-app.c
@@ -49,8 +49,7 @@ struct VCChardev {
 
 struct VCChardevClass {
     ChardevClass parent;
-    void (*parent_open)(Chardev *chr, ChardevBackend *backend,
-                        bool *be_opened, Error **errp);
+    void (*parent_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
 };
 
 #define TYPE_CHARDEV_VC "chardev-vc"
@@ -67,10 +66,7 @@ chr_spice_backend_new(void)
     return be;
 }
 
-static void vc_chr_open(Chardev *chr,
-                        ChardevBackend *backend,
-                        bool *be_opened,
-                        Error **errp)
+static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     VCChardevClass *vc = CHARDEV_VC_GET_CLASS(chr);
     ChardevBackend *be;
@@ -87,7 +83,7 @@ static void vc_chr_open(Chardev *chr,
     be = chr_spice_backend_new();
     be->u.spiceport.data->fqdn = fqdn ?
         g_strdup(fqdn) : g_strdup_printf("org.qemu.console.%s", chr->label);
-    vc->parent_open(chr, be, be_opened, errp);
+    vc->parent_open(chr, be, errp);
     qapi_free_ChardevBackend(be);
 }
 
diff --git a/ui/vdagent.c b/ui/vdagent.c
index 090771ab171..644e9acaaeb 100644
--- a/ui/vdagent.c
+++ b/ui/vdagent.c
@@ -662,7 +662,6 @@ static void vdagent_chr_recv_clipboard(VDAgentChardev *vd, VDAgentMessage *msg)
 
 static void vdagent_chr_open(Chardev *chr,
                              ChardevBackend *backend,
-                             bool *be_opened,
                              Error **errp)
 {
     VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(chr);
@@ -692,7 +691,7 @@ static void vdagent_chr_open(Chardev *chr,
                                                    &vdagent_mouse_handler);
     }
 
-    *be_opened = true;
+    qemu_chr_be_event(chr, CHR_EVENT_OPENED);
 }
 
 static void vdagent_clipboard_peer_register(VDAgentChardev *vd)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:57:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:57:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230482.1535966 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpvW-0006hz-58; Fri, 13 Feb 2026 09:57:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230482.1535966; Fri, 13 Feb 2026 09:57: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 1vqpvW-0006hS-1B; Fri, 13 Feb 2026 09:57:30 +0000
Received: by outflank-mailman (input) for mailman id 1230482;
 Fri, 13 Feb 2026 09:57: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoc-0001Ng-AZ
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:22 +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 672edffd-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:18 +0100 (CET)
Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-416-lSjxDuI5MUSzo8WKgT3dYw-1; Fri,
 13 Feb 2026 04:50:13 -0500
Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 7593218003F5; Fri, 13 Feb 2026 09:50:07 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id A2ABB30001B9; Fri, 13 Feb 2026 09:50: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: 672edffd-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976217;
	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=EkOuQwE7r/+vSW05dfY0N0e0q7f2IkqD8VkbkpDWQVE=;
	b=XVppd7MxhpuVWlIVBTlGGdn5080P3qAy6/Adly38HdfVZMxLYw45Get7XjqJ1RuWTxx6u2
	Ip07UR0J1vrGawcJdIkC7QFIrsao6QWxAR/okwlFq/o/Ss+xhT71DwNSJFMrLpv2/7mNBH
	E/5qT3Ii/ddYWIyra9PL3c+dx8Qtp4I=
X-MC-Unique: lSjxDuI5MUSzo8WKgT3dYw-1
X-Mimecast-MFC-AGG-ID: lSjxDuI5MUSzo8WKgT3dYw_1770976211
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 07/15] chardev: .chr_open(): add boolean return value
Date: Fri, 13 Feb 2026 10:49:26 +0100
Message-ID: <20260213094938.4074478-8-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4
X-Mimecast-MFC-PROC-ID: BGZ-s7A-vwswVRRIFhJ8xs3eN2l3mxAq39dLY7Km4YA_1770976211
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Add boolean return value to follow common recommendations for functions
with errrp in include/qapi/error.h

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-7-vsementsov@yandex-team.ru>
---
 include/chardev/char.h   |  2 +-
 chardev/baum.c           |  5 +++--
 chardev/char-console.c   |  3 ++-
 chardev/char-file.c      | 13 +++++++------
 chardev/char-hub.c       | 11 ++++++-----
 chardev/char-mux.c       |  8 +++++---
 chardev/char-null.c      |  4 ++--
 chardev/char-parallel.c  | 14 ++++++++------
 chardev/char-pipe.c      | 12 +++++++-----
 chardev/char-pty.c       |  9 ++++++---
 chardev/char-ringbuf.c   |  5 +++--
 chardev/char-serial.c    | 15 +++++++++------
 chardev/char-socket.c    | 17 +++++++++--------
 chardev/char-stdio.c     | 11 ++++++-----
 chardev/char-udp.c       |  5 +++--
 chardev/char-win-stdio.c |  7 ++++---
 chardev/msmouse.c        |  3 ++-
 chardev/spice.c          | 12 +++++++-----
 chardev/wctablet.c       |  3 ++-
 gdbstub/system.c         |  3 ++-
 ui/console-vc.c          |  3 ++-
 ui/dbus-chardev.c        |  6 +++---
 ui/gtk.c                 |  5 +++--
 ui/spice-app.c           | 10 ++++++----
 ui/vdagent.c             | 10 +++++-----
 25 files changed, 113 insertions(+), 83 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index aa42e01b8a3..e1bf97222b8 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -260,7 +260,7 @@ struct ChardevClass {
     void (*chr_parse)(QemuOpts *opts, ChardevBackend *backend, Error **errp);
 
     /* called after construction, open/starts the backend */
-    void (*chr_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
+    bool (*chr_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
 
     /* write buf to the backend */
     int (*chr_write)(Chardev *s, const uint8_t *buf, int len);
diff --git a/chardev/baum.c b/chardev/baum.c
index 4b97d630ffb..1219963656b 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -642,7 +642,7 @@ static void char_braille_finalize(Object *obj)
     }
 }
 
-static void baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     BaumChardev *baum = BAUM_CHARDEV(chr);
     brlapi_handle_t *handle;
@@ -656,7 +656,7 @@ static void baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
                    brlapi_strerror(brlapi_error_location()));
         g_free(handle);
         baum->brlapi = NULL;
-        return;
+        return false;
     }
     baum->deferred_init = 0;
 
@@ -669,6 +669,7 @@ static void baum_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     qemu_set_fd_handler(baum->brlapi_fd, baum_chr_read, NULL, baum);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void char_braille_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-console.c b/chardev/char-console.c
index 423f0f4cc4e..0739c9c94a3 100644
--- a/chardev/char-console.c
+++ b/chardev/char-console.c
@@ -26,11 +26,12 @@
 #include "chardev/char-win.h"
 #include "qemu/module.h"
 
-static void console_chr_open(Chardev *chr, ChardevBackend *backend,
+static bool console_chr_open(Chardev *chr, ChardevBackend *backend,
                              Error **errp)
 {
     win_chr_set_file(chr, GetStdHandle(STD_OUTPUT_HANDLE), true);
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void char_console_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-file.c b/chardev/char-file.c
index 34ef386abc5..b0dd9d5f870 100644
--- a/chardev/char-file.c
+++ b/chardev/char-file.c
@@ -34,7 +34,7 @@
 #include "chardev/char-fd.h"
 #endif
 
-static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevFile *file = backend->u.file.data;
 #ifdef _WIN32
@@ -44,7 +44,7 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     if (file->in) {
         error_setg(errp, "input file not supported");
-        return;
+        return false;
     }
 
     if (file->has_append && file->append) {
@@ -61,7 +61,7 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
                      FILE_ATTRIBUTE_NORMAL, NULL);
     if (out == INVALID_HANDLE_VALUE) {
         error_setg(errp, "open %s failed", file->out);
-        return;
+        return false;
     }
 
     win_chr_set_file(chr, out, false);
@@ -77,7 +77,7 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     out = qmp_chardev_open_file_source(file->out, flags, errp);
     if (out < 0) {
-        return;
+        return false;
     }
 
     if (file->in) {
@@ -85,7 +85,7 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         in = qmp_chardev_open_file_source(file->in, flags, errp);
         if (in < 0) {
             qemu_close(out);
-            return;
+            return false;
         }
     }
 
@@ -94,11 +94,12 @@ static void file_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (in >= 0) {
             qemu_close(in);
         }
-        return;
+        return false;
     }
 #endif
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void file_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/char-hub.c b/chardev/char-hub.c
index aa6058c2f6f..05cf722b5b0 100644
--- a/chardev/char-hub.c
+++ b/chardev/char-hub.c
@@ -203,7 +203,7 @@ static void hub_chr_update_read_handlers(Chardev *chr)
     }
 }
 
-static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHub *hub = backend->u.hub.data;
     HubChardev *d = HUB_CHARDEV(chr);
@@ -213,7 +213,7 @@ static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     if (list == NULL) {
         error_setg(errp, "hub: 'chardevs' list is not defined");
-        return;
+        return false;
     }
 
     while (list) {
@@ -223,17 +223,17 @@ static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (s == NULL) {
             error_setg(errp, "hub: chardev can't be found by id '%s'",
                        list->value);
-            return;
+            return false;
         }
         if (CHARDEV_IS_HUB(s) || CHARDEV_IS_MUX(s)) {
             error_setg(errp, "hub: multiplexers and hub devices can't be "
                        "stacked, check chardev '%s', chardev should not "
                        "be a hub device or have 'mux=on' enabled",
                        list->value);
-            return;
+            return false;
         }
         if (!hub_chr_attach_chardev(d, s, errp)) {
-            return;
+            return false;
         }
         list = list->next;
     }
@@ -242,6 +242,7 @@ static void hub_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
      * Closed until an explicit event from backend, so we don't
      * send CHR_EVENT_OPENED now.
      */
+    return true;
 }
 
 static void hub_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
index 7210df431fc..881443d869d 100644
--- a/chardev/char-mux.c
+++ b/chardev/char-mux.c
@@ -361,7 +361,7 @@ void mux_set_focus(Chardev *chr, unsigned int focus)
     mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
 }
 
-static void mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevMux *mux = backend->u.mux.data;
     Chardev *drv;
@@ -370,12 +370,12 @@ static void mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     drv = qemu_chr_find(mux->chardev);
     if (drv == NULL) {
         error_setg(errp, "mux: base chardev %s not found", mux->chardev);
-        return;
+        return false;
     }
 
     d->focus = -1;
     if (!qemu_chr_fe_init(&d->chr, drv, errp)) {
-        return;
+        return false;
     }
 
     /*
@@ -385,6 +385,8 @@ static void mux_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     if (muxes_opened) {
         qemu_chr_be_event(chr, CHR_EVENT_OPENED);
     }
+
+    return true;
 }
 
 static void mux_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-null.c b/chardev/char-null.c
index 900b5febb6c..d5a101178bb 100644
--- a/chardev/char-null.c
+++ b/chardev/char-null.c
@@ -26,9 +26,9 @@
 #include "chardev/char.h"
 #include "qemu/module.h"
 
-static void null_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool null_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
-    /* do not send CHR_EVENT_OPENED */
+    return true;
 }
 
 static void char_null_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-parallel.c b/chardev/char-parallel.c
index 359efa3c9c8..cbf87e660da 100644
--- a/chardev/char-parallel.c
+++ b/chardev/char-parallel.c
@@ -157,7 +157,7 @@ static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
+static bool parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
 
@@ -165,11 +165,12 @@ static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 
     if (ioctl(fd, PPCLAIM) < 0) {
         error_setg_errno(errp, errno, "not a parallel port");
-        return;
+        return false;
     }
 
     drv->mode = IEEE1284_MODE_COMPAT;
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 #endif /* __linux__ */
 
@@ -225,15 +226,16 @@ static int parallel_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
+static bool parallel_chr_open_fd(Chardev *chr, int fd, Error **errp)
 {
     ParallelChardev *drv = PARALLEL_CHARDEV(chr);
     drv->fd = fd;
+    return true;
 }
 #endif
 
 #ifdef HAVE_CHARDEV_PARALLEL
-static void parallel_chr_open(Chardev *chr,
+static bool parallel_chr_open(Chardev *chr,
                               ChardevBackend *backend,
                               Error **errp)
 {
@@ -242,9 +244,9 @@ static void parallel_chr_open(Chardev *chr,
 
     fd = qmp_chardev_open_file_source(parallel->device, O_RDWR, errp);
     if (fd < 0) {
-        return;
+        return false;
     }
-    parallel_chr_open_fd(chr, fd, errp);
+    return parallel_chr_open_fd(chr, fd, errp);
 }
 
 static void parallel_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/char-pipe.c b/chardev/char-pipe.c
index 2f26372dfc9..472b3e0801f 100644
--- a/chardev/char-pipe.c
+++ b/chardev/char-pipe.c
@@ -103,21 +103,22 @@ static int win_chr_pipe_init(Chardev *chr, const char *filename,
     return -1;
 }
 
-static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     const char *filename = opts->device;
 
     if (win_chr_pipe_init(chr, filename, errp) < 0) {
-        return;
+        return false;
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 #else
 
-static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *opts = backend->u.pipe.data;
     int fd_in, fd_out;
@@ -143,7 +144,7 @@ static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         );
         if (fd_in < 0) {
             error_setg_file_open(errp, errno, filename);
-            return;
+            return false;
         }
     }
 
@@ -152,10 +153,11 @@ static void pipe_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (fd_out != fd_in) {
             close(fd_out);
         }
-        return;
+        return false;
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 #endif /* !_WIN32 */
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index d4d69a29a95..9e26e97baf5 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -331,7 +331,7 @@ static int qemu_openpty_raw(int *aslave, char *pty_name)
     return amaster;
 }
 
-static void pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     PtyChardev *s;
     int master_fd, slave_fd;
@@ -342,13 +342,13 @@ static void pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     master_fd = qemu_openpty_raw(&slave_fd, pty_name);
     if (master_fd < 0) {
         error_setg_errno(errp, errno, "Failed to create PTY");
-        return;
+        return false;
     }
 
     close(slave_fd);
     if (!qemu_set_blocking(master_fd, false, errp)) {
         close(master_fd);
-        return;
+        return false;
     }
 
     chr->filename = g_strdup_printf("pty:%s", pty_name);
@@ -368,10 +368,13 @@ static void pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
         if (res != 0) {
             error_setg_errno(errp, errno, "Failed to create PTY symlink");
+            return false;
         } else {
             s->path = g_strdup(path);
         }
     }
+
+    return true;
 }
 
 static void pty_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-ringbuf.c b/chardev/char-ringbuf.c
index 30b17a96d3a..8f998d26a49 100644
--- a/chardev/char-ringbuf.c
+++ b/chardev/char-ringbuf.c
@@ -92,7 +92,7 @@ static void char_ringbuf_finalize(Object *obj)
     g_free(d->cbuf);
 }
 
-static void ringbuf_chr_open(Chardev *chr,
+static bool ringbuf_chr_open(Chardev *chr,
                              ChardevBackend *backend,
                              Error **errp)
 {
@@ -104,7 +104,7 @@ static void ringbuf_chr_open(Chardev *chr,
     /* The size must be power of 2 */
     if (d->size & (d->size - 1)) {
         error_setg(errp, "size of ringbuf chardev must be power of two");
-        return;
+        return false;
     }
 
     d->prod = 0;
@@ -112,6 +112,7 @@ static void ringbuf_chr_open(Chardev *chr,
     d->cbuf = g_malloc0(d->size);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 void qmp_ringbuf_write(const char *device, const char *data,
diff --git a/chardev/char-serial.c b/chardev/char-serial.c
index 9995f184258..0c73bafc545 100644
--- a/chardev/char-serial.c
+++ b/chardev/char-serial.c
@@ -41,15 +41,17 @@
 
 #ifdef _WIN32
 
-static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
     int ret = win_chr_serial_init(chr, serial->device, errp);
     if (ret < 0) {
-        return;
+        return false;
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+
+    return true;
 }
 
 #elif defined(__linux__) || defined(__sun__) || defined(__FreeBSD__)      \
@@ -259,7 +261,7 @@ static int serial_chr_ioctl(Chardev *chr, int cmd, void *arg)
     return 0;
 }
 
-static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevHostdev *serial = backend->u.serial.data;
     int fd;
@@ -267,20 +269,21 @@ static void serial_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     fd = qmp_chardev_open_file_source(serial->device, O_RDWR | O_NONBLOCK,
                                       errp);
     if (fd < 0) {
-        return;
+        return false;
     }
     if (!qemu_set_blocking(fd, false, errp)) {
         close(fd);
-        return;
+        return false;
     }
     tty_serial_init(fd, 115200, 'N', 8, 1);
 
     if (!qemu_chr_open_fd(chr, fd, fd, errp)) {
         close(fd);
-        return;
+        return false;
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 #endif /* __linux__ || __sun__ */
 
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 2951b2ec9be..908bbdbc124 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1365,7 +1365,7 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
 }
 
 
-static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
     ChardevSocket *sock = backend->u.socket.data;
@@ -1390,7 +1390,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (!creds) {
             error_setg(errp, "No TLS credentials with id '%s'",
                        sock->tls_creds);
-            return;
+            return false;
         }
         s->tls_creds = (QCryptoTLSCreds *)
             object_dynamic_cast(creds,
@@ -1398,7 +1398,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         if (!s->tls_creds) {
             error_setg(errp, "Object with id '%s' is not TLS credentials",
                        sock->tls_creds);
-            return;
+            return false;
         }
         object_ref(OBJECT(s->tls_creds));
         if (!qcrypto_tls_creds_check_endpoint(s->tls_creds,
@@ -1406,7 +1406,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
                                           ? QCRYPTO_TLS_CREDS_ENDPOINT_SERVER
                                           : QCRYPTO_TLS_CREDS_ENDPOINT_CLIENT,
                                           errp)) {
-            return;
+            return false;
         }
     }
     s->tls_authz = g_strdup(sock->tls_authz);
@@ -1414,7 +1414,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     s->addr = addr = socket_address_flatten(sock->addr);
 
     if (!qmp_chardev_validate_socket(sock, addr, errp)) {
-        return;
+        return false;
     }
 
     qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_RECONNECTABLE);
@@ -1431,7 +1431,7 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
      */
     if (!chr->handover_yank_instance) {
         if (!yank_register_instance(CHARDEV_YANK_INSTANCE(chr->label), errp)) {
-            return;
+            return false;
         }
     }
     s->registered_yank = true;
@@ -1441,15 +1441,16 @@ static void tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     if (s->is_listen) {
         if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
                                            is_waitconnect, errp) < 0) {
-            return;
+            return false;
         }
     } else {
         if (qmp_chardev_open_socket_client(chr, reconnect_ms, errp) < 0) {
-            return;
+            return false;
         }
     }
 
     /* be isn't opened until we get a connection */
+    return true;
 }
 
 static void tcp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/chardev/char-stdio.c b/chardev/char-stdio.c
index 534f6ed5658..fe1cbb2d880 100644
--- a/chardev/char-stdio.c
+++ b/chardev/char-stdio.c
@@ -85,19 +85,19 @@ static void term_stdio_handler(int sig)
     stdio_chr_set_echo(NULL, stdio_echo_state);
 }
 
-static void stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevStdio *opts = backend->u.stdio.data;
     struct sigaction act;
 
     if (is_daemonized()) {
         error_setg(errp, "cannot use stdio with -daemonize");
-        return;
+        return false;
     }
 
     if (stdio_in_use) {
         error_setg(errp, "cannot use stdio by multiple character devices");
-        return;
+        return false;
     }
 
     stdio_in_use = true;
@@ -105,11 +105,11 @@ static void stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     old_fd1_flags = fcntl(1, F_GETFL);
     tcgetattr(0, &oldtty);
     if (!qemu_set_blocking(0, false, errp)) {
-        return;
+        return false;
     }
 
     if (!qemu_chr_open_fd(chr, 0, 1, errp)) {
-        return;
+        return false;
     }
 
     atexit(term_exit);
@@ -122,6 +122,7 @@ static void stdio_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     stdio_chr_set_echo(chr, false);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 #endif
 
diff --git a/chardev/char-udp.c b/chardev/char-udp.c
index 4c81c95e656..423000832ff 100644
--- a/chardev/char-udp.c
+++ b/chardev/char-udp.c
@@ -188,7 +188,7 @@ static void udp_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
     }
 }
 
-static void upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevUdp *udp = backend->u.udp.data;
     SocketAddress *local_addr = socket_address_flatten(udp->local);
@@ -203,7 +203,7 @@ static void upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     qapi_free_SocketAddress(remote_addr);
     if (ret < 0) {
         object_unref(OBJECT(sioc));
-        return;
+        return false;
     }
 
     name = g_strdup_printf("chardev-udp-%s", chr->label);
@@ -212,6 +212,7 @@ static void upd_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 
     s->ioc = QIO_CHANNEL(sioc);
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void char_udp_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
index 0535960ff1b..bb9c195a8b1 100644
--- a/chardev/char-win-stdio.c
+++ b/chardev/char-win-stdio.c
@@ -142,7 +142,7 @@ static void win_stiod_chr_set_echo(Chardev *chr, bool echo)
     }
 }
 
-static void win_stdio_chr_open(Chardev *chr,
+static bool win_stdio_chr_open(Chardev *chr,
                                ChardevBackend *backend,
                                Error **errp)
 {
@@ -155,7 +155,7 @@ static void win_stdio_chr_open(Chardev *chr,
     stdio->hStdIn = GetStdHandle(STD_INPUT_HANDLE);
     if (stdio->hStdIn == INVALID_HANDLE_VALUE) {
         error_setg(errp, "cannot open stdio: invalid handle");
-        return;
+        return false;
     }
 
     is_console = GetConsoleMode(stdio->hStdIn, &dwMode) != 0;
@@ -208,7 +208,7 @@ static void win_stdio_chr_open(Chardev *chr,
     win_stiod_chr_set_echo(chr, false);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
-    return;
+    return true;
 
 err3:
     qemu_del_wait_object(stdio->hInputReadyEvent, NULL, NULL);
@@ -217,6 +217,7 @@ err2:
     CloseHandle(stdio->hInputDoneEvent);
 err1:
     qemu_del_wait_object(stdio->hStdIn, NULL, NULL);
+    return false;
 }
 
 static void char_win_stdio_finalize(Object *obj)
diff --git a/chardev/msmouse.c b/chardev/msmouse.c
index 9dc04e3b3ec..365f04546e9 100644
--- a/chardev/msmouse.c
+++ b/chardev/msmouse.c
@@ -253,7 +253,7 @@ static void char_msmouse_finalize(Object *obj)
     fifo8_destroy(&mouse->outbuf);
 }
 
-static void msmouse_chr_open(Chardev *chr,
+static bool msmouse_chr_open(Chardev *chr,
                              ChardevBackend *backend,
                              Error **errp)
 {
@@ -265,6 +265,7 @@ static void msmouse_chr_open(Chardev *chr,
     fifo8_create(&mouse->outbuf, MSMOUSE_BUF_SZ);
 
     /* Never send CHR_EVENT_OPENED */
+    return true;
 }
 
 static void char_msmouse_class_init(ObjectClass *oc, const void *data)
diff --git a/chardev/spice.c b/chardev/spice.c
index f5b1f585eb1..ad97d98ac6b 100644
--- a/chardev/spice.c
+++ b/chardev/spice.c
@@ -251,7 +251,7 @@ static void chr_open(Chardev *chr, const char *subtype)
     s->sin.subtype = g_strdup(subtype);
 }
 
-static void spice_vmc_chr_open(Chardev *chr, ChardevBackend *backend,
+static bool spice_vmc_chr_open(Chardev *chr, ChardevBackend *backend,
                                Error **errp)
 {
     ChardevSpiceChannel *spicevmc = backend->u.spicevmc.data;
@@ -272,13 +272,14 @@ static void spice_vmc_chr_open(Chardev *chr, ChardevBackend *backend,
                           subtypes);
 
         g_free(subtypes);
-        return;
+        return false;
     }
 
     chr_open(chr, type);
+    return true;
 }
 
-static void spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
+static bool spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
                                 Error **errp)
 {
     ChardevSpicePort *spiceport = backend->u.spiceport.data;
@@ -287,12 +288,12 @@ static void spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
 
     if (name == NULL) {
         error_setg(errp, "missing name parameter");
-        return;
+        return false;
     }
 
     if (!using_spice) {
         error_setg(errp, "spice not enabled");
-        return;
+        return false;
     }
 
     chr_open(chr, "port");
@@ -301,6 +302,7 @@ static void spice_port_chr_open(Chardev *chr, ChardevBackend *backend,
     s->sin.portname = g_strdup(name);
 
     vmc_register_interface(s);
+    return true;
 }
 
 static void spice_vmc_chr_parse(QemuOpts *opts, ChardevBackend *backend,
diff --git a/chardev/wctablet.c b/chardev/wctablet.c
index 65b2ceb58c9..214d5ca2e28 100644
--- a/chardev/wctablet.c
+++ b/chardev/wctablet.c
@@ -324,7 +324,7 @@ static void wctablet_chr_finalize(Object *obj)
     }
 }
 
-static void wctablet_chr_open(Chardev *chr,
+static bool wctablet_chr_open(Chardev *chr,
                               ChardevBackend *backend,
                               Error **errp)
 {
@@ -339,6 +339,7 @@ static void wctablet_chr_open(Chardev *chr,
                                              &wctablet_handler);
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void wctablet_chr_class_init(ObjectClass *oc, const void *data)
diff --git a/gdbstub/system.c b/gdbstub/system.c
index 982857f314a..e86c5870abc 100644
--- a/gdbstub/system.c
+++ b/gdbstub/system.c
@@ -233,9 +233,10 @@ static int gdb_chr_write(Chardev *chr, const uint8_t *buf, int len)
     return len;
 }
 
-static void gdb_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool gdb_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     /* Never send CHR_EVENT_OPENED */
+    return true;
 }
 
 static void char_gdb_class_init(ObjectClass *oc, const void *data)
diff --git a/ui/console-vc.c b/ui/console-vc.c
index 4c8ea4c1485..f22806fed79 100644
--- a/ui/console-vc.c
+++ b/ui/console-vc.c
@@ -1093,7 +1093,7 @@ void qemu_text_console_update_size(QemuTextConsole *c)
     dpy_text_resize(QEMU_CONSOLE(c), c->width, c->height);
 }
 
-static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ChardevVC *vc = backend->u.vc.data;
     VCChardev *drv = VC_CHARDEV(chr);
@@ -1142,6 +1142,7 @@ static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void vc_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
diff --git a/ui/dbus-chardev.c b/ui/dbus-chardev.c
index 3e471f84cd8..9442b475517 100644
--- a/ui/dbus-chardev.c
+++ b/ui/dbus-chardev.c
@@ -176,7 +176,7 @@ dbus_chr_send_break(
     return DBUS_METHOD_INVOCATION_HANDLED;
 }
 
-static void dbus_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool dbus_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     ERRP_GUARD();
 
@@ -206,9 +206,9 @@ static void dbus_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_parse(
         opts, be, errp);
     if (*errp) {
-        return;
+        return false;
     }
-    CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_open(
+    return CHARDEV_CLASS(object_class_by_name(TYPE_CHARDEV_SOCKET))->chr_open(
         chr, be, errp);
 }
 
diff --git a/ui/gtk.c b/ui/gtk.c
index 44b2b868ec9..9ebe7e8df0d 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1963,11 +1963,11 @@ static void gd_vc_chr_set_echo(Chardev *chr, bool echo)
 
 static int nb_vcs;
 static Chardev *vcs[MAX_VCS];
-static void gd_vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool gd_vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     if (nb_vcs == MAX_VCS) {
         error_setg(errp, "Maximum number of consoles reached");
-        return;
+        return false;
     }
 
     vcs[nb_vcs++] = chr;
@@ -1976,6 +1976,7 @@ static void gd_vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
      * console/chardev init sometimes completes elsewhere in a 2nd
      * stage, so defer OPENED events until they are fully initialized
      */
+    return true;
 }
 
 static void char_gd_vc_class_init(ObjectClass *oc, const void *data)
diff --git a/ui/spice-app.c b/ui/spice-app.c
index 7ac9ae4e78d..9e55f273715 100644
--- a/ui/spice-app.c
+++ b/ui/spice-app.c
@@ -49,7 +49,7 @@ struct VCChardev {
 
 struct VCChardevClass {
     ChardevClass parent;
-    void (*parent_open)(Chardev *chr, ChardevBackend *backend, Error **errp);
+    bool (*parent_init)(Chardev *chr, ChardevBackend *backend, Error **errp);
 };
 
 #define TYPE_CHARDEV_VC "chardev-vc"
@@ -66,11 +66,12 @@ chr_spice_backend_new(void)
     return be;
 }
 
-static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
+static bool vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
 {
     VCChardevClass *vc = CHARDEV_VC_GET_CLASS(chr);
     ChardevBackend *be;
     const char *fqdn = NULL;
+    bool ok;
 
     if (strstart(chr->label, "serial", NULL)) {
         fqdn = "org.qemu.console.serial.0";
@@ -83,8 +84,9 @@ static void vc_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     be = chr_spice_backend_new();
     be->u.spiceport.data->fqdn = fqdn ?
         g_strdup(fqdn) : g_strdup_printf("org.qemu.console.%s", chr->label);
-    vc->parent_open(chr, be, errp);
+    ok = vc->parent_init(chr, be, errp);
     qapi_free_ChardevBackend(be);
+    return ok;
 }
 
 static void vc_chr_set_echo(Chardev *chr, bool echo)
@@ -102,7 +104,7 @@ static void char_vc_class_init(ObjectClass *oc, const void *data)
     VCChardevClass *vc = CHARDEV_VC_CLASS(oc);
     ChardevClass *cc = CHARDEV_CLASS(oc);
 
-    vc->parent_open = cc->chr_open;
+    vc->parent_init = cc->chr_open;
 
     cc->chr_parse = vc_chr_parse;
     cc->chr_open = vc_chr_open;
diff --git a/ui/vdagent.c b/ui/vdagent.c
index 644e9acaaeb..7ff0861f3e9 100644
--- a/ui/vdagent.c
+++ b/ui/vdagent.c
@@ -660,8 +660,7 @@ static void vdagent_chr_recv_clipboard(VDAgentChardev *vd, VDAgentMessage *msg)
 /* ------------------------------------------------------------------ */
 /* chardev backend                                                    */
 
-static void vdagent_chr_open(Chardev *chr,
-                             ChardevBackend *backend,
+static bool vdagent_chr_open(Chardev *chr, ChardevBackend *backend,
                              Error **errp)
 {
     VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(chr);
@@ -673,7 +672,7 @@ static void vdagent_chr_open(Chardev *chr,
      * so we have to byteswap everything on BE hosts.
      */
     error_setg(errp, "vdagent is not supported on bigendian hosts");
-    return;
+    return false;
 #endif
 
     vd->mouse = VDAGENT_MOUSE_DEFAULT;
@@ -692,6 +691,7 @@ static void vdagent_chr_open(Chardev *chr,
     }
 
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
+    return true;
 }
 
 static void vdagent_clipboard_peer_register(VDAgentChardev *vd)
@@ -1074,7 +1074,7 @@ static const VMStateDescription vmstate_vdagent = {
     }
 };
 
-static void vdagent_chr_init(Object *obj)
+static void vdagent_chr_instance_init(Object *obj)
 {
     VDAgentChardev *vd = QEMU_VDAGENT_CHARDEV(obj);
 
@@ -1097,7 +1097,7 @@ static const TypeInfo vdagent_chr_type_info = {
     .name = TYPE_CHARDEV_QEMU_VDAGENT,
     .parent = TYPE_CHARDEV,
     .instance_size = sizeof(VDAgentChardev),
-    .instance_init = vdagent_chr_init,
+    .instance_init = vdagent_chr_instance_init,
     .instance_finalize = vdagent_chr_fini,
     .class_init = vdagent_chr_class_init,
 };
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:57:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:57:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230487.1535993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpvf-0007Yz-Rk; Fri, 13 Feb 2026 09:57:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230487.1535993; Fri, 13 Feb 2026 09: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 1vqpvf-0007Ys-N8; Fri, 13 Feb 2026 09:57:39 +0000
Received: by outflank-mailman (input) for mailman id 1230487;
 Fri, 13 Feb 2026 09: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoi-0001Ng-C5
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:28 +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 695d7227-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:22 +0100 (CET)
Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-433--Y17YsGYPkOtZeaIxLcQjw-1; Fri,
 13 Feb 2026 04:50:17 -0500
Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id DFF8419560AA; Fri, 13 Feb 2026 09:50:15 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 435E71955D85; Fri, 13 Feb 2026 09:50: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: 695d7227-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976221;
	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=NawPSV0+R7Z6iBTNYDG41PH3COFdnG/VW+iZ15ECL/g=;
	b=hMOvy3uyQGFRNGiO0tP2eqVKtTfPFsvxr6cTbleSYm0UVAn82IdM+70MBfa8h8hbbPqKnf
	IAvYBqvcAk1o6ptKHBrlFa2lFDMgoPGme3q2CEDbZ+uxfPzORJrXDFVNmf00YCehdJxdd5
	nGUeLO5EIfW4Uyk8qJOI14bCGS9wVBc=
X-MC-Unique: -Y17YsGYPkOtZeaIxLcQjw-1
X-Mimecast-MFC-AGG-ID: -Y17YsGYPkOtZeaIxLcQjw_1770976216
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 10/15] chardev: rework filename handling
Date: Fri, 13 Feb 2026 10:49:29 +0100
Message-ID: <20260213094938.4074478-11-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17
X-Mimecast-MFC-PROC-ID: ScG_YMMlG99cRkEqrNtcvDGyB_9Mi3CZXXDai16vwYQ_1770976216
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Instead of checking, did backend set the filename state or not, let's
be stateless: filename is needed rarely, so, let's just have a generic
function (with optional implementation by backends) to get it.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
[ Marc-André - fix leak in ivshmem-pci.c ]
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-10-vsementsov@yandex-team.ru>
---
 include/chardev/char.h |  5 ++++-
 chardev/char-pty.c     |  8 +++++++-
 chardev/char-socket.c  | 31 ++++++++++++-------------------
 chardev/char.c         | 21 +++++++++++++++------
 hw/misc/ivshmem-pci.c  |  7 ++++---
 5 files changed, 42 insertions(+), 30 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index ada5529fa6c..81bc0cbdf2a 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -62,7 +62,6 @@ struct Chardev {
     QemuMutex chr_write_lock;
     CharFrontend *fe;
     char *label;
-    char *filename;
     int logfd;
     int be_open;
     /* used to coordinate the chardev-change special-case: */
@@ -309,6 +308,9 @@ struct ChardevClass {
 
     /* return PTY name if available */
     char *(*chr_get_pty_name)(Chardev *s);
+
+    /* get filename for reporting */
+    char *(*chr_get_filename)(Chardev *s);
 };
 
 Chardev *qemu_chardev_new(const char *id, const char *typename,
@@ -324,5 +326,6 @@ void suspend_mux_open(void);
 void resume_mux_open(void);
 
 char *qemu_chr_get_pty_name(Chardev *chr);
+char *qemu_chr_get_filename(Chardev *chr);
 
 #endif
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index 047aade09e5..7e95132cdbb 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -351,7 +351,6 @@ static bool pty_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         return false;
     }
 
-    chr->filename = g_strdup_printf("pty:%s", s->pty_name);
     qemu_printf("char device redirected to %s (label %s)\n",
                 s->pty_name, chr->label);
 
@@ -393,6 +392,12 @@ static char *pty_chr_get_pty_name(Chardev *chr)
     return g_strdup(s->pty_name);
 }
 
+static char *pty_chr_get_filename(Chardev *chr)
+{
+    PtyChardev *s = PTY_CHARDEV(chr);
+    return g_strdup_printf("pty:%s", s->pty_name);
+}
+
 static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
@@ -403,6 +408,7 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
     cc->chr_get_pty_name = pty_chr_get_pty_name;
+    cc->chr_get_filename = pty_chr_get_filename;
 }
 
 static const TypeInfo char_pty_type_info = {
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 908bbdbc124..5adeb908659 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -40,6 +40,7 @@
 
 static gboolean socket_reconnect_timeout(gpointer opaque);
 static void tcp_chr_telnet_init(Chardev *chr);
+static char *qemu_chr_compute_filename(SocketChardev *s);
 
 static void tcp_chr_change_state(SocketChardev *s, TCPChardevState state)
 {
@@ -384,8 +385,6 @@ static void tcp_chr_free_connection(Chardev *chr)
     s->sioc = NULL;
     object_unref(OBJECT(s->ioc));
     s->ioc = NULL;
-    g_free(chr->filename);
-    chr->filename = NULL;
     tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED);
 }
 
@@ -439,16 +438,17 @@ static char *qemu_chr_socket_address(SocketChardev *s, const char *prefix)
     }
 }
 
-static void update_disconnected_filename(SocketChardev *s)
+static char *tcp_chr_get_filename(Chardev *chr)
 {
-    Chardev *chr = CHARDEV(s);
+    SocketChardev *s = SOCKET_CHARDEV(chr);
 
-    g_free(chr->filename);
-    if (s->addr) {
-        chr->filename = qemu_chr_socket_address(s, "disconnected:");
-    } else {
-        chr->filename = g_strdup("disconnected:socket");
+    if (s->state == TCP_CHARDEV_STATE_CONNECTED) {
+        return qemu_chr_compute_filename(s);
+    } else if (s->addr) {
+        return qemu_chr_socket_address(s, "disconnected:");
     }
+
+    return g_strdup("disconnected:socket");
 }
 
 /* NB may be called even if tcp_chr_connect has not been
@@ -468,7 +468,6 @@ static void tcp_chr_disconnect_locked(Chardev *chr)
         qio_net_listener_set_client_func_full(s->listener, tcp_chr_accept,
                                               chr, NULL, chr->gcontext);
     }
-    update_disconnected_filename(s);
     if (emit_close) {
         qemu_chr_be_event(chr, CHR_EVENT_CLOSED);
     }
@@ -639,9 +638,6 @@ static void tcp_chr_connect(void *opaque)
     Chardev *chr = CHARDEV(opaque);
     SocketChardev *s = SOCKET_CHARDEV(opaque);
 
-    g_free(chr->filename);
-    chr->filename = qemu_chr_compute_filename(s);
-
     tcp_chr_change_state(s, TCP_CHARDEV_STATE_CONNECTED);
     update_ioc_handlers(s);
     qemu_chr_be_event(chr, CHR_EVENT_OPENED);
@@ -1000,8 +996,8 @@ static void tcp_chr_accept_server_sync(Chardev *chr)
 {
     SocketChardev *s = SOCKET_CHARDEV(chr);
     QIOChannelSocket *sioc;
-    info_report("QEMU waiting for connection on: %s",
-                chr->filename);
+    g_autofree char *filename = qemu_chr_get_filename(chr);
+    info_report("QEMU waiting for connection on: %s", filename);
     tcp_chr_change_state(s, TCP_CHARDEV_STATE_CONNECTING);
     sioc = qio_net_listener_wait_client(s->listener);
     tcp_chr_set_client_ioc_name(chr, sioc);
@@ -1258,8 +1254,6 @@ static int qmp_chardev_open_socket_server(Chardev *chr,
     s->addr = qio_net_listener_get_local_address(s->listener, 0, errp);
 
 skip_listen:
-    update_disconnected_filename(s);
-
     if (is_waitconnect) {
         tcp_chr_accept_server_sync(chr);
     } else {
@@ -1436,8 +1430,6 @@ static bool tcp_chr_open(Chardev *chr, ChardevBackend *backend, Error **errp)
     }
     s->registered_yank = true;
 
-    update_disconnected_filename(s);
-
     if (s->is_listen) {
         if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
                                            is_waitconnect, errp) < 0) {
@@ -1593,6 +1585,7 @@ static void char_socket_class_init(ObjectClass *oc, const void *data)
     cc->chr_add_watch = tcp_chr_add_watch;
     cc->chr_update_read_handler = tcp_chr_update_read_handler;
     cc->chr_listener_cleanup = tcp_chr_listener_cleanup;
+    cc->chr_get_filename = tcp_chr_get_filename;
 
     object_class_property_add(oc, "addr", "SocketAddress",
                               char_socket_get_addr, NULL,
diff --git a/chardev/char.c b/chardev/char.c
index 0dc792b88f7..3373c9b61f8 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -309,7 +309,6 @@ static void char_finalize(Object *obj)
     if (chr->fe) {
         chr->fe->chr = NULL;
     }
-    g_free(chr->filename);
     g_free(chr->label);
     if (chr->logfd != -1) {
         close(chr->logfd);
@@ -796,7 +795,7 @@ static int qmp_query_chardev_foreach(Object *obj, void *data)
     ChardevInfo *value = g_malloc0(sizeof(*value));
 
     value->label = g_strdup(chr->label);
-    value->filename = g_strdup(chr->filename);
+    value->filename = qemu_chr_get_filename(chr);
     value->frontend_open = chr->fe && chr->fe->fe_is_open;
 
     QAPI_LIST_PREPEND(*list, value);
@@ -1025,10 +1024,6 @@ static Chardev *chardev_new(const char *id, const char *typename,
         return NULL;
     }
 
-    if (!chr->filename) {
-        chr->filename = g_strdup(typename + 8);
-    }
-
     return chr;
 }
 
@@ -1110,6 +1105,20 @@ char *qemu_chr_get_pty_name(Chardev *chr)
     return NULL;
 }
 
+char *qemu_chr_get_filename(Chardev *chr)
+{
+    ChardevClass *cc = CHARDEV_GET_CLASS(chr);
+    const char *typename;
+
+    if (cc->chr_get_filename) {
+        return cc->chr_get_filename(chr);
+    }
+
+    typename = object_get_typename(OBJECT(chr));
+    assert(g_str_has_prefix(typename, "chardev-"));
+    return g_strdup(typename + 8);
+}
+
 ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
                                   Error **errp)
 {
diff --git a/hw/misc/ivshmem-pci.c b/hw/misc/ivshmem-pci.c
index b9162589a02..a3a43f53bd1 100644
--- a/hw/misc/ivshmem-pci.c
+++ b/hw/misc/ivshmem-pci.c
@@ -873,10 +873,11 @@ static void ivshmem_common_realize(PCIDevice *dev, Error **errp)
         host_memory_backend_set_mapped(s->hostmem, true);
     } else {
         Chardev *chr = qemu_chr_fe_get_driver(&s->server_chr);
-        assert(chr);
+        g_autofree char *filename = NULL;
 
-        IVSHMEM_DPRINTF("using shared memory server (socket = %s)\n",
-                        chr->filename);
+        assert(chr);
+        filename = qemu_chr_get_filename(chr);
+        IVSHMEM_DPRINTF("using shared memory server (socket = %s)\n", filename);
 
         /* we allocate enough space for 16 peers and grow as needed */
         resize_peers(s, 16);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:57:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:57:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230490.1536002 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpvk-0007sm-4X; Fri, 13 Feb 2026 09:57:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230490.1536002; Fri, 13 Feb 2026 09: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 1vqpvk-0007sb-0Q; Fri, 13 Feb 2026 09:57:44 +0000
Received: by outflank-mailman (input) for mailman id 1230490;
 Fri, 13 Feb 2026 09:57: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoq-0001Ng-OA
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:36 +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 70e2de29-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:35 +0100 (CET)
Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-653-kDbAhiIkMMOtDe9wMvjVCw-1; Fri,
 13 Feb 2026 04:50:28 -0500
Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 8A2571956060; Fri, 13 Feb 2026 09:50:26 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id E61FC1955D85; Fri, 13 Feb 2026 09:50:25 +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: 70e2de29-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976233;
	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=oafPsMhhX2LYktt1mZytvPrd7reHuMI6cpisN3UVjHk=;
	b=U08krfvegiL65nsu0RehDPCFg62OvCBxJ9DbgBz0b9ldMbq1LbIxezXmS9tm0W6AikEnmO
	vtIR0T7G0LUGEf+TUcs+2rxyZYZlXCmhLzNeZHKoaVCx1JWr04dAEFkttRXnwcCB+qe4uv
	O6aCD0wB3scvn5UNQCASgGMH0Q1LxAw=
X-MC-Unique: kDbAhiIkMMOtDe9wMvjVCw-1
X-Mimecast-MFC-AGG-ID: kDbAhiIkMMOtDe9wMvjVCw_1770976227
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 14/15] chardev: add logtimestamp option
Date: Fri, 13 Feb 2026 10:49:33 +0100
Message-ID: <20260213094938.4074478-15-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17
X-Mimecast-MFC-PROC-ID: GijAItyDuPpb8SBXGgONmNZESViSMh0ybdEy3SGOZ6U_1770976227
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Add an option to inject timestamps into serial log file.
That simplifies debugging a lot, when you can simply compare
QEMU logs with guest console logs.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20260201173633.413934-4-vsementsov@yandex-team.ru>
---
 qapi/char.json         |  6 +++-
 include/chardev/char.h |  2 ++
 chardev/char.c         | 63 ++++++++++++++++++++++++++++++++++++++----
 3 files changed, 65 insertions(+), 6 deletions(-)

diff --git a/qapi/char.json b/qapi/char.json
index 140614f82c3..a4abafa6803 100644
--- a/qapi/char.json
+++ b/qapi/char.json
@@ -197,11 +197,15 @@
 # @logappend: true to append instead of truncate (default to false to
 #     truncate)
 #
+# @logtimestamp: true to insert timestamps into logfile
+#     (default false) (since 11.0)
+#
 # Since: 2.6
 ##
 { 'struct': 'ChardevCommon',
   'data': { '*logfile': 'str',
-            '*logappend': 'bool' } }
+            '*logappend': 'bool',
+            '*logtimestamp': 'bool' } }
 
 ##
 # @ChardevFile:
diff --git a/include/chardev/char.h b/include/chardev/char.h
index 81bc0cbdf2a..c2c42e4b7a3 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -63,6 +63,8 @@ struct Chardev {
     CharFrontend *fe;
     char *label;
     int logfd;
+    bool logtimestamp;
+    bool log_line_start;
     int be_open;
     /* used to coordinate the chardev-change special-case: */
     bool handover_yank_instance;
diff --git a/chardev/char.c b/chardev/char.c
index 4b285baf029..48b326d57b9 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -82,12 +82,8 @@ void qemu_chr_be_event(Chardev *s, QEMUChrEvent event)
     CHARDEV_GET_CLASS(s)->chr_be_event(s, event);
 }
 
-static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
+static void do_write_log(Chardev *s, const uint8_t *buf, size_t len)
 {
-    if (s->logfd < 0) {
-        return;
-    }
-
     if (qemu_write_full(s->logfd, buf, len) < len) {
         /*
          * qemu_write_full() is defined with G_GNUC_WARN_UNUSED_RESULT,
@@ -96,6 +92,55 @@ static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
     }
 }
 
+static void do_write_log_timestamps(Chardev *s, const uint8_t *buf, size_t len)
+{
+    g_autofree char *timestr = NULL;
+
+    while (len) {
+        size_t i;
+
+        if (s->log_line_start) {
+            if (!timestr) {
+                timestr = real_time_iso8601();
+            }
+            do_write_log(s, (const uint8_t *)timestr, strlen(timestr));
+            do_write_log(s, (const uint8_t *)" ", 1);
+            s->log_line_start = false;
+        }
+
+        for (i = 0; i < len; i++) {
+            if (buf[i] == '\n') {
+                break;
+            }
+        }
+
+        if (i == len) {
+            /* not found \n */
+            do_write_log(s, buf, len);
+            return;
+        }
+
+        i += 1;
+        do_write_log(s, buf, i);
+        buf += i;
+        len -= i;
+        s->log_line_start = true;
+    }
+}
+
+static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len)
+{
+    if (s->logfd < 0) {
+        return;
+    }
+
+    if (s->logtimestamp) {
+        do_write_log_timestamps(s, buf, len);
+    } else {
+        do_write_log(s, buf, len);
+    }
+}
+
 static int qemu_chr_write_buffer(Chardev *s,
                                  const uint8_t *buf, int len,
                                  int *offset, bool write_all)
@@ -248,6 +293,7 @@ static bool qemu_char_open(Chardev *chr, ChardevBackend *backend, Error **errp)
         } else {
             flags |= O_TRUNC;
         }
+        chr->logtimestamp = common->has_logtimestamp && common->logtimestamp;
         chr->logfd = qemu_create(common->logfile, flags, 0666, errp);
         if (chr->logfd < 0) {
             return false;
@@ -267,6 +313,7 @@ static void char_init(Object *obj)
 
     chr->handover_yank_instance = false;
     chr->logfd = -1;
+    chr->log_line_start = true;
     qemu_mutex_init(&chr->chr_write_lock);
 
     /*
@@ -505,6 +552,9 @@ void qemu_chr_parse_common(QemuOpts *opts, ChardevCommon *backend)
     backend->logfile = g_strdup(logfile);
     backend->has_logappend = true;
     backend->logappend = qemu_opt_get_bool(opts, "logappend", false);
+
+    backend->has_logtimestamp = true;
+    backend->logtimestamp = qemu_opt_get_bool(opts, "logtimestamp", false);
 }
 
 static const ChardevClass *char_get_class(const char *driver, Error **errp)
@@ -956,6 +1006,9 @@ QemuOptsList qemu_chardev_opts = {
         },{
             .name = "logappend",
             .type = QEMU_OPT_BOOL,
+        },{
+            .name = "logtimestamp",
+            .type = QEMU_OPT_BOOL,
         },{
             .name = "mouse",
             .type = QEMU_OPT_BOOL,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:57:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:57:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230509.1536012 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpvy-0000TG-Cd; Fri, 13 Feb 2026 09:57:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230509.1536012; Fri, 13 Feb 2026 09:57: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 1vqpvy-0000SY-8R; Fri, 13 Feb 2026 09:57:58 +0000
Received: by outflank-mailman (input) for mailman id 1230509;
 Fri, 13 Feb 2026 09:57: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpos-0001Ng-2q
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:38 +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 716756db-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:35 +0100 (CET)
Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-245-_JVeCy1lOY-Y9S-Du_iKbw-1; Fri,
 13 Feb 2026 04:50:31 -0500
Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 50B3318005B7; Fri, 13 Feb 2026 09:50:29 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 9A67819560B9; Fri, 13 Feb 2026 09:50: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: 716756db-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976234;
	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=VbW6jTOEG9iYTux9Gled281r+tDrauM450W3fBHk0XQ=;
	b=LQUAgaWEVACgPTWW6ZrzeGB0CI0sE9XLv3E/JaHctbxq3Zu7ZpveyGVW6vx8SKLegoJsJN
	Y3+JaGwt1K1nYQ0FxlrStNyvSOK9T0jiJS1J64/mn0bXGcuHUcTUDohfmftHJXEu6mQ1an
	ASeU3K/SIQbRz2l8zI+bL5Bo07/rBZk=
X-MC-Unique: _JVeCy1lOY-Y9S-Du_iKbw-1
X-Mimecast-MFC-AGG-ID: _JVeCy1lOY-Y9S-Du_iKbw_1770976229
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Subject: [PULL v2 15/15] baum: Add copy/paste bindings
Date: Fri, 13 Feb 2026 10:49:34 +0100
Message-ID: <20260213094938.4074478-16-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12
X-Mimecast-MFC-PROC-ID: tvSfgGXtg1qXtVBXDKvuIhJHVaF6d_cPunGplMYsK7s_1770976229
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Samuel Thibault <samuel.thibault@ens-lyon.org>

Brltty interprets

- TL1 (i.e. Display1) + routing as clip new
- TL2 (i.e. Display2) + routing as clip add
- TR1 (i.e. Display4) + routing as copy line
- TR2 (i.e. Display5) + routing as copy rect

https://github.com/brltty/brltty/blob/master/Tables/Input/bm/routing6.kti

- BAUM_TL1+BAUM_TL2+BAUM_TL3+BAUM_TR1 (i.e.
Display1+Display2+Display3+Display4) as paste

https://github.com/brltty/brltty/blob/master/Tables/Input/bm/d6.kti

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
[ Marc-André - style fixes ]
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20260213000551.2446777-1-samuel.thibault@ens-lyon.org>
---
 chardev/baum.c | 38 ++++++++++++++++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)

diff --git a/chardev/baum.c b/chardev/baum.c
index 1219963656b..ac1e535ba8e 100644
--- a/chardev/baum.c
+++ b/chardev/baum.c
@@ -1,7 +1,7 @@
 /*
  * QEMU Baum Braille Device
  *
- * Copyright (c) 2008, 2010-2011, 2016-2017 Samuel Thibault
+ * Copyright (c) 2008, 2010-2011, 2016-2017, 2026 Samuel Thibault
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -561,9 +561,38 @@ static void baum_chr_read(void *opaque)
         case BRLAPI_KEY_TYPE_CMD:
             switch (code & BRLAPI_KEY_CMD_BLK_MASK) {
             case BRLAPI_KEY_CMD_ROUTE:
-                baum_send_key(baum, BAUM_RSP_RoutingKey, (code & BRLAPI_KEY_CMD_ARG_MASK)+1);
+                baum_send_key(baum, BAUM_RSP_RoutingKey,
+                              (code & BRLAPI_KEY_CMD_ARG_MASK) + 1);
                 baum_send_key(baum, BAUM_RSP_RoutingKey, 0);
                 break;
+            case BRLAPI_KEY_CMD_CLIP_NEW:
+                baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL1);
+                baum_send_key(baum, BAUM_RSP_RoutingKey,
+                              (code & BRLAPI_KEY_CMD_ARG_MASK) + 1);
+                baum_send_key(baum, BAUM_RSP_RoutingKey, 0);
+                baum_send_key(baum, BAUM_RSP_TopKeys, 0);
+                break;
+            case BRLAPI_KEY_CMD_CLIP_ADD:
+                baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL2);
+                baum_send_key(baum, BAUM_RSP_RoutingKey,
+                              (code & BRLAPI_KEY_CMD_ARG_MASK) + 1);
+                baum_send_key(baum, BAUM_RSP_RoutingKey, 0);
+                baum_send_key(baum, BAUM_RSP_TopKeys, 0);
+                break;
+            case BRLAPI_KEY_CMD_COPY_LINE:
+                baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TR1);
+                baum_send_key(baum, BAUM_RSP_RoutingKey,
+                              (code & BRLAPI_KEY_CMD_ARG_MASK) + 1);
+                baum_send_key(baum, BAUM_RSP_RoutingKey, 0);
+                baum_send_key(baum, BAUM_RSP_TopKeys, 0);
+                break;
+            case BRLAPI_KEY_CMD_COPY_RECT:
+                baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TR2);
+                baum_send_key(baum, BAUM_RSP_RoutingKey,
+                              (code & BRLAPI_KEY_CMD_ARG_MASK) + 1);
+                baum_send_key(baum, BAUM_RSP_RoutingKey, 0);
+                baum_send_key(baum, BAUM_RSP_TopKeys, 0);
+                break;
             case 0:
                 switch (code & BRLAPI_KEY_CMD_ARG_MASK) {
                 case BRLAPI_KEY_CMD_FWINLT:
@@ -606,6 +635,11 @@ static void baum_chr_read(void *opaque)
                     baum_send_key(baum, BAUM_RSP_TopKeys, BAUM_TL1|BAUM_TL3|BAUM_TR1);
                     baum_send_key(baum, BAUM_RSP_TopKeys, 0);
                     break;
+                case BRLAPI_KEY_CMD_PASTE:
+                    baum_send_key(baum, BAUM_RSP_TopKeys,
+                                  BAUM_TL1 | BAUM_TL2 | BAUM_TL3 | BAUM_TR1);
+                    baum_send_key(baum, BAUM_RSP_TopKeys, 0);
+                    break;
                 }
             }
             break;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:58:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:58:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230530.1536021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpwC-0001IE-OR; Fri, 13 Feb 2026 09:58:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230530.1536021; Fri, 13 Feb 2026 09:58: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 1vqpwC-0001I6-LT; Fri, 13 Feb 2026 09:58:12 +0000
Received: by outflank-mailman (input) for mailman id 1230530;
 Fri, 13 Feb 2026 09: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpol-0001Na-9g
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:31 +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 6e29dd21-08c1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 10:50:30 +0100 (CET)
Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-621-HKw9Op8PPjWopkCu_sg3xA-1; Fri,
 13 Feb 2026 04:50:25 -0500
Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 20FCD195FDE0; Fri, 13 Feb 2026 09:50:24 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 3453619560BD; Fri, 13 Feb 2026 09:50: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: 6e29dd21-08c1-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976229;
	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=jM55cKZhaLYd8jeB1eDli6p7CvLSuDmkHDqz2KhxR1g=;
	b=h3UVB8tNDRf3MDzi1oenT3Bo/ty4GP17r+RukgshcugBaqH39+Km2wG2s6+iZjETgYjzJt
	/tzQ7q6+jkmk6AK4EJQqg28LgNzo0sG0cqtPoii4z2r/Mhz8xxXTWaspdRS7Jsl4BifNeg
	Sr/HTvy4HW4nmWOpCkCdNXwKDy4qLgc=
X-MC-Unique: HKw9Op8PPjWopkCu_sg3xA-1
X-Mimecast-MFC-AGG-ID: HKw9Op8PPjWopkCu_sg3xA_1770976224
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 13/15] error-report: make real_time_iso8601() public
Date: Fri, 13 Feb 2026 10:49:32 +0100
Message-ID: <20260213094938.4074478-14-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12
X-Mimecast-MFC-PROC-ID: OzU2S9aB7JYJK05V94Oazw0IKUz2EC_qwiyZ9FVDBgo_1770976224
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

To be reused in the following commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20260201173633.413934-3-vsementsov@yandex-team.ru>
---
 include/qemu/error-report.h | 6 ++++++
 util/error-report.c         | 3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
index 3ae2357fda5..dc423d36071 100644
--- a/include/qemu/error-report.h
+++ b/include/qemu/error-report.h
@@ -74,4 +74,10 @@ extern bool message_with_timestamp;
 extern bool error_with_guestname;
 extern const char *error_guest_name;
 
+/*
+ * Return current datetime in ISO 8601 format.
+ * Caller is responsible to g_free() the returned string.
+ */
+char *real_time_iso8601(void);
+
 #endif
diff --git a/util/error-report.c b/util/error-report.c
index 1b17c11de19..d6b7448183a 100644
--- a/util/error-report.c
+++ b/util/error-report.c
@@ -169,8 +169,7 @@ static void print_loc(void)
     }
 }
 
-static char *
-real_time_iso8601(void)
+char *real_time_iso8601(void)
 {
     g_autoptr(GDateTime) dt = g_date_time_new_now_utc();
     return g_date_time_format_iso8601(dt);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 09:58:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 09:58:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230534.1536027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqpwD-0001Lb-3H; Fri, 13 Feb 2026 09:58:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230534.1536027; Fri, 13 Feb 2026 09: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 1vqpwC-0001LR-U1; Fri, 13 Feb 2026 09:58:12 +0000
Received: by outflank-mailman (input) for mailman id 1230534;
 Fri, 13 Feb 2026 09:58: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=Bqff=AR=redhat.com=marcandre.lureau@srs-se1.protection.inumbo.net>)
 id 1vqpoe-0001Ng-BA
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 09:50:24 +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 67d2588b-08c1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 10:50:20 +0100 (CET)
Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com
 (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by
 relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,
 cipher=TLS_AES_256_GCM_SHA384) id us-mta-6-E-7BdYCROJiGwt4vzl-fbA-1; Fri,
 13 Feb 2026 04:50:14 -0500
Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com
 (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS
 id 2FB631800464; Fri, 13 Feb 2026 09:50:13 +0000 (UTC)
Received: from localhost (unknown [10.44.22.41])
 by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP
 id 6388D1955D85; Fri, 13 Feb 2026 09:50:12 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67d2588b-08c1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
	s=mimecast20190719; t=1770976218;
	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=F4BORkMGuDDVLyTEyiaLb3JWHa0y/2ix01bD3RCQTgw=;
	b=DTB/f11JvDAW32jwY28HpFQyy+21UoulcgB9WG0rEc/QFndGjCjYs4Nk5vanqwFQ7epUQj
	gjtAUDFE1LOYr1JFOYD0JtcaSdOPNEqENrFqSelB3VetKv8MPKPZfV0R8JkiYiDhKWN7bx
	vWQ7K/cuxr7dM5slo6TY1nzkBNj3+hc=
X-MC-Unique: E-7BdYCROJiGwt4vzl-fbA-1
X-Mimecast-MFC-AGG-ID: E-7BdYCROJiGwt4vzl-fbA_1770976213
From: marcandre.lureau@redhat.com
To: qemu-devel@nongnu.org
Cc: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	=?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>,
	Eric Blake <eblake@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Paul Durrant <paul@xen.org>,
	Anthony PERARD <anthony@xenproject.org>,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Eduardo Habkost <eduardo@habkost.net>,
	Paolo Bonzini <pbonzini@redhat.com>,
	=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	xen-devel@lists.xenproject.org,
	Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Subject: [PULL v2 09/15] chardev: introduce .chr_get_pty_name() handler
Date: Fri, 13 Feb 2026 10:49:28 +0100
Message-ID: <20260213094938.4074478-10-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17
X-Mimecast-MFC-PROC-ID: 34Cjv_Tjie3G1IaRWUbtSM_r3DMCdcPR6JsVfEzKp6M_1770976213
X-Mimecast-Originator: redhat.com
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

Currently we do two wrong things:

1. Abuse s->filename to get pty_name from it

2. Violate layering with help of CHARDEV_IS_PTY()

Let's get rid of both, and introduce correct way to get pty name in
generic code, if available.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20260115144606.233252-9-vsementsov@yandex-team.ru>
---
 include/chardev/char.h |  7 +++++--
 chardev/char-pty.c     |  7 +++++++
 chardev/char.c         | 19 +++++++++++++------
 hw/char/xen_console.c  |  7 ++++---
 4 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/include/chardev/char.h b/include/chardev/char.h
index e1bf97222b8..ada5529fa6c 100644
--- a/include/chardev/char.h
+++ b/include/chardev/char.h
@@ -247,8 +247,6 @@ OBJECT_DECLARE_TYPE(Chardev, ChardevClass, CHARDEV)
 
 #define CHARDEV_IS_RINGBUF(chr) \
     object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_RINGBUF)
-#define CHARDEV_IS_PTY(chr) \
-    object_dynamic_cast(OBJECT(chr), TYPE_CHARDEV_PTY)
 
 struct ChardevClass {
     ObjectClass parent_class;
@@ -308,6 +306,9 @@ struct ChardevClass {
     void (*chr_be_event)(Chardev *s, QEMUChrEvent event);
 
     void (*chr_listener_cleanup)(Chardev *chr);
+
+    /* return PTY name if available */
+    char *(*chr_get_pty_name)(Chardev *s);
 };
 
 Chardev *qemu_chardev_new(const char *id, const char *typename,
@@ -322,4 +323,6 @@ GSource *qemu_chr_timeout_add_ms(Chardev *chr, guint ms,
 void suspend_mux_open(void);
 void resume_mux_open(void);
 
+char *qemu_chr_get_pty_name(Chardev *chr);
+
 #endif
diff --git a/chardev/char-pty.c b/chardev/char-pty.c
index a582aa7bc73..047aade09e5 100644
--- a/chardev/char-pty.c
+++ b/chardev/char-pty.c
@@ -387,6 +387,12 @@ static void pty_chr_parse(QemuOpts *opts, ChardevBackend *backend, Error **errp)
     pty->path = g_strdup(path);
 }
 
+static char *pty_chr_get_pty_name(Chardev *chr)
+{
+    PtyChardev *s = PTY_CHARDEV(chr);
+    return g_strdup(s->pty_name);
+}
+
 static void char_pty_class_init(ObjectClass *oc, const void *data)
 {
     ChardevClass *cc = CHARDEV_CLASS(oc);
@@ -396,6 +402,7 @@ static void char_pty_class_init(ObjectClass *oc, const void *data)
     cc->chr_write = pty_chr_write;
     cc->chr_update_read_handler = pty_chr_update_read_handler;
     cc->chr_add_watch = pty_chr_add_watch;
+    cc->chr_get_pty_name = pty_chr_get_pty_name;
 }
 
 static const TypeInfo char_pty_type_info = {
diff --git a/chardev/char.c b/chardev/char.c
index 44bfed36272..0dc792b88f7 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -1090,9 +1090,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend,
     }
 
     ret = g_new0(ChardevReturn, 1);
-    if (CHARDEV_IS_PTY(chr)) {
-        ret->pty = g_strdup(chr->filename + 4);
-    }
+    ret->pty = qemu_chr_get_pty_name(chr);
 
     return ret;
 
@@ -1101,6 +1099,17 @@ err:
     return NULL;
 }
 
+char *qemu_chr_get_pty_name(Chardev *chr)
+{
+    ChardevClass *cc = CHARDEV_GET_CLASS(chr);
+
+    if (cc->chr_get_pty_name) {
+        return cc->chr_get_pty_name(chr);
+    }
+
+    return NULL;
+}
+
 ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
                                   Error **errp)
 {
@@ -1192,9 +1201,7 @@ ChardevReturn *qmp_chardev_change(const char *id, ChardevBackend *backend,
     object_unref(OBJECT(chr_new));
 
     ret = g_new0(ChardevReturn, 1);
-    if (CHARDEV_IS_PTY(chr_new)) {
-        ret->pty = g_strdup(chr_new->filename + 4);
-    }
+    ret->pty = qemu_chr_get_pty_name(chr_new);
 
     return ret;
 }
diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c
index 8ee098d9ad4..bdeb76dc870 100644
--- a/hw/char/xen_console.c
+++ b/hw/char/xen_console.c
@@ -418,6 +418,7 @@ static void xen_console_realize(XenDevice *xendev, Error **errp)
     XenConsole *con = XEN_CONSOLE_DEVICE(xendev);
     Chardev *cs = qemu_chr_fe_get_driver(&con->chr);
     unsigned int u;
+    g_autofree char *pty_name = NULL;
 
     if (!cs) {
         error_setg(errp, "no backing character device");
@@ -450,9 +451,9 @@ static void xen_console_realize(XenDevice *xendev, Error **errp)
 
     trace_xen_console_realize(con->dev, object_get_typename(OBJECT(cs)));
 
-    if (CHARDEV_IS_PTY(cs)) {
-        /* Strip the leading 'pty:' */
-        xen_device_frontend_printf(xendev, "tty", "%s", cs->filename + 4);
+    pty_name = qemu_chr_get_pty_name(cs);
+    if (pty_name) {
+        xen_device_frontend_printf(xendev, "tty", "%s", pty_name);
     }
 
     /* No normal PV driver initialization for the primary console under Xen */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 10:11:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 10:11:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230571.1536041 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqq8f-0006G6-42; Fri, 13 Feb 2026 10:11:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230571.1536041; Fri, 13 Feb 2026 10: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 1vqq8f-0006Fz-13; Fri, 13 Feb 2026 10:11:05 +0000
Received: by outflank-mailman (input) for mailman id 1230571;
 Fri, 13 Feb 2026 10:11: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqq8d-0006Ed-Rq
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 10:11:03 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4baadbfc-08c4-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 11:11:01 +0100 (CET)
Received: from BL1PR13CA0113.namprd13.prod.outlook.com (2603:10b6:208:2b9::28)
 by CY1PR12MB9700.namprd12.prod.outlook.com (2603:10b6:930:108::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 10:10:57 +0000
Received: from BL6PEPF00022570.namprd02.prod.outlook.com
 (2603:10b6:208:2b9:cafe::25) by BL1PR13CA0113.outlook.office365.com
 (2603:10b6:208:2b9::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Fri,
 13 Feb 2026 10:10:56 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL6PEPF00022570.mail.protection.outlook.com (10.167.249.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 10:10:56 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 04:10:49 -0600
Received: from localhost (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_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 02:01: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: 4baadbfc-08c4-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iGVf9vowBiP7GJZ4IIVBvT68+NpJTaEc7B+oomsAaDLdDqEGid9fH1LbGlMRjYbRIFiHkNmYvkGgxcOVXl/7hhuLmdNFSY7pOcBz60/yZ/mHRBgKUHKUgI0LoZ+AxyX8SE+M5FQPVq5i2unpomTL98XfGxxKjHlZJGrqIT2la1PlOFNQ2jiB81OWNXmVrI7coxnci1SXzIy1DCZS1ZHW+MyV59op56x88YpbSuDLL+RtqAk5EzXvFQFC2ORSJYReLtZK59cT5jgdUcGA9dr/6hSuItNUWLQYV3mpIImI5YG2SvBZf2DnygMTQdbiSE2mZQBqc0IqZNc8x1u1b95QqA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bhlaYgiqSmwHiBP9/BuGDXVhDNIh6+cV9S9QcQoVQ54=;
 b=imSYrWW1kaeAvUcoPLcBp9rkb0lW43FDP+jdguB1BBISZ9NSXYHkG460LCAXamS77PNzaESSpZnjCZCzgQb7fs6WGrzd8HwdgSVq5dFKULZBQn1spgyicPVzi4La+tE+N56lNUEkPWvhGjZ8quJXU3sQnBz89h8RB4sM3tCrULzEmadMzOGeglsVgZQzkj+c6SSDnqQASNQeEqKGRtSHM5f8FBM8vZUc6BXVQGmPoC2bM0hEtY92xDlTj/89pryNuGdbR5/y8P2KD5cmEDRHwVvNtLRU0+IbudOgaAB4iJhsdrJwToKrS1fvXIN3lj54JIVD1kLqD/qXSpLwYWAjBg==
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=bhlaYgiqSmwHiBP9/BuGDXVhDNIh6+cV9S9QcQoVQ54=;
 b=o+uu7Drkz7235DByOTVLecKriw71giz8dUR4VP4u+4IKNFR2iU38oETtD1oz2JjWvG3RxuX9dpiT2AIozWrCSouBHOnm08FjbrqK2Q5PNQcNgggQpW/Ad2+5BmTbAW6g5BFiXlbJmgPCVj7+3pQHAFaVXW0g5bX3n19vx1emWdA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 13 Feb 2026 11:01:51 +0100
Message-ID: <DGDQX5QQGFJJ.2M0NXLA9LYHPM@amd.com>
Subject: Re: [PATCH v9] common: honor CONFIG_CC_SPLIT_SECTIONS also for
 assembly functions
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
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>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>, Xen-devel
	<xen-devel-bounces@lists.xenproject.org>, Jason Andryuk
	<jason.andryuk@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <a11e692c-2bfe-440d-915b-818b133874c2@suse.com>
 <bd656991-59bf-4435-b6e2-554b9ef4725e@amd.com>
 <DGD73M12VYML.SNZI1JQAXHAQ@amd.com>
 <66d789ce-8a71-4115-a2f5-356dbcb4a82a@suse.com>
In-Reply-To: <66d789ce-8a71-4115-a2f5-356dbcb4a82a@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF00022570:EE_|CY1PR12MB9700:EE_
X-MS-Office365-Filtering-Correlation-Id: 3fbf2ec1-d3e5-43b2-2b05-08de6ae82dc6
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dlVsR0t0b2ozVVNPSnBVOWJYL3F3K1lZU2tjTjJnNXNNeG1vN0gxclhpUFZ6?=
 =?utf-8?B?S1NIUXhRb2J5bkdkTEdVWC9od0MwY1phd3RucmpyalN5ampyOGsxQTVQOUpU?=
 =?utf-8?B?SUNYNkNFb3FOdVVJMVZWQ3Vjb2w1WmRlOWVCeDNSSDFEM2JuUmJaRzZ2cE9J?=
 =?utf-8?B?Q1lmK254WHAySEJDUi9vU1d1NnBoa1c1QXhMaEtQdXlYdHVPZXRmckFsSis5?=
 =?utf-8?B?NFJaUkh6RHlWczVZek9teTY1M0l0OXk1ZnhOZmxkK2ZxL1RnNk5yc0lFNU1r?=
 =?utf-8?B?RExVUkJYZnJuNytQc1ExY2hKWWxoZGdpNFlwVk5XN0RydDArWVF5blVYVmZ3?=
 =?utf-8?B?UmZORzQrOWxNKzBHM0ZOSHBraHUyOURxKzAzWmZHVitlL2Q0U2VWeFJ5Ums3?=
 =?utf-8?B?K3B4M3Jkd01NQ0pFWnp0bzQwTHlmTW1IVTY4bDFYTVR3ZXFCQ3VUTEFjRnl5?=
 =?utf-8?B?clg4dndqa3loMGdaVy9XSFJncklqV21wdTdFbkc2RVhYdWIvVkZFakFJZkhj?=
 =?utf-8?B?ZDZwU3o2endOZzloR1puMU1HUHRxSCtXOGFlbVF6aXdlTmtaZ2ZGN2lKMi96?=
 =?utf-8?B?L0c1ZEd1NDUzQ3MwNWJ4anlWUVVJZER0dU5uWkhDK1ZoS2NyZkJxM1BnWUo3?=
 =?utf-8?B?Tlo4azBTU0hJcVBidVd0TTJFYUxET1B0RVFCSnQ2aU1GTkIwQ2Vmb0FEMzVI?=
 =?utf-8?B?MnY3d05XR2I0ZHJnT0hxK3ZGREFJRkRNZXFGcmZqVzMyZGtxUThxeTVkSEg2?=
 =?utf-8?B?WHA0czdPb0RqTEJSZWRnQ2tIV3RBMjFFRHlQVkZKQ1Zhd1llb3JzbkdEMVhS?=
 =?utf-8?B?emFyakZzalE0bmJqc2RPYzBhamFOSDE0cW1mQ3poOFNwMnRqYU1hZE11UjZE?=
 =?utf-8?B?R3RIWXFyTHpvQzNsaWRPK2pOcHVRL2dRVDZNbG5UZlF2RG9EUVZ3Z212NlVP?=
 =?utf-8?B?Uzc4ZU5QUDNTMVA3cG95eTVNREVQUm1IVzFWWENIaTBKRzR0M3cySUp4a2Jn?=
 =?utf-8?B?S0R1OEs5QU9wMXcrMENjd2ZaTVh1SDg3bGpCL0xhaEl6RVV0NjExZUJnQlIz?=
 =?utf-8?B?Q3ExSW0xN0lBNlJqSGhxeHU2RStPKzBBUXk5amVqVXRGbXV3T3hsN3JnOHA1?=
 =?utf-8?B?Tkw0OG9Fc2ZoNHRVYUdybXFwVmxKZ1FvQ1ZtTXZEaHpYUkpMaGVrVGRlSkR2?=
 =?utf-8?B?UU0rTDJra04rZ2x5S3FHajNpVXUzQUIvci9wVTBhRjJPdGNrUTJjY1Y0ZDFh?=
 =?utf-8?B?YmxXcHozQWdZYUNGR2Z1dHQ1eEdOaWVJWTNLZjc0NHRZR2JCRGwyWGxEYXBI?=
 =?utf-8?B?ank2YWI3M0VLWFk0bFQ3RE9XM2VqSnRUL3pXb0t2eEtoN2pJeEF6V3ZWQkt3?=
 =?utf-8?B?dWp1aUdKNFovK0FFK2FUT3NNYmw3NCt4Y2NoTUEyTlMyendxbkF1OGRkb1pT?=
 =?utf-8?B?QlRiKzBRWUR1WS9PcHNYengyV2VLUHZOb08xQmoyc3VraUJoRUh3VEVrcDRr?=
 =?utf-8?B?Sk1DNnhYZWo5dmZDU1VadHpBczlxT0hla3ZQd3VFRndzNlFtYUZSc0VpU0JD?=
 =?utf-8?B?OU80b1pmeG9FdHJ5dDQ5ZFpFdzRZcjdZanZyQVRRL1orQmhOVTFoaDBvWUN6?=
 =?utf-8?B?WktaQjZjc3ZOUDBta3FVdWJxVFpNY05XRCtsUDlSWS9yYTdxMzFXdE1zamJk?=
 =?utf-8?B?YjJPVDV5VXJDV0NncGFOZ25EdTBEYjJDM3hleTFxZG42YzdMcDc3TnVFdkIv?=
 =?utf-8?B?SU1rNnFGM3JEUUlwU1FhbUlXNDJibnE0S0p4Q3lSa2M2eHJabko1R2dPWFky?=
 =?utf-8?B?Y001NzRFMUZhcDExdmkzL1JlcXFRS2RPN3lFejBhS3B6M05QajlmRmpJdXh5?=
 =?utf-8?B?VXMwS1E1bVdsaERNWldYc1ZjOHNiWU9lZGNyS0tCN2lETXo2TkdYTFRISU5N?=
 =?utf-8?B?b1BJdEdoWTBwVWMyYTlZTG1EMFF6clg3WnkxSWF3NjBxelVOZ0hBa1JMWDMy?=
 =?utf-8?B?b2FZMmpUSXkzY3JCaFhYUEw4ZHBPK2RFT0orUDFBMFdubUJGbUNLdXJiUzNl?=
 =?utf-8?B?WnJpWVQwOXZzSktQMjlkQS9tcjRDaVJEOTd6OGtDWmFmWTM2S2RncWQ4N3Jq?=
 =?utf-8?B?L0kwUzNUSnlwSEJYdDl1TzVpOUFJUEluMjlCZXB1dWRmVzRFQU8zN3llekVY?=
 =?utf-8?Q?wL14ECsTX9uybzFkE31k7Dg=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1VzUvyQrkS+9GL5G+uJgbx7nwRmY7OXeNNdOA7DeFmgN7R3kEkpKn71LYEwFaJXy8jbMEUv7eZgp2E/+8MgiZMs2Jonhyq9ubUXhOJaNp4iTWux2hMGqcPwNvZrfGxSLT7FK6hPl5Oc3EsFlcFb8zpw9EWXG1XUkRXRPpMsOpAJ9ySPocyUwOfrEg0XaJPjGp52H880St/r8ev/Nh3KhouBtu+0vYKbhZL9jrIDZD8dYra29xQimbJnzagHQgfbjkKBlPyTf2nFifWgG7E6by95WJV9P0Sl0xkoN5E4Cd3MyIfSnZJ7E/QrfItE9Xfsbg5JLHu7L8Cvasu9/GS7D2V6ilcohhKjoOhL2l4ISnbkz+kqAuaBGeeC1YubkC+oRP9pwkss/7Rpz3xY/5SYsAnzirsnDbZURgv0QgpEWWo57kuAv6OeT4huiI53aq//M
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 10:10:56.5736
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3fbf2ec1-d3e5-43b2-2b05-08de6ae82dc6
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF00022570.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9700

On Fri Feb 13, 2026 at 9:12 AM CET, Jan Beulich wrote:
> On 12.02.2026 19:29, Alejandro Vallejo wrote:
>> On Wed Jan 28, 2026 at 3:35 PM CET, Jason Andryuk wrote:
>>> On 2025-04-01 06:58, Jan Beulich wrote:
>>>> Leverage the new infrastructure in xen/linkage.h to also switch to per=
-
>>>> function sections (when configured), deriving the specific name from t=
he
>>>> "base" section in use at the time FUNC() is invoked.
>>>>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>> Tested-by: Luca Fancellu <luca.fancellu@arm.com> # arm
>>=20
>> I don't seem to have the original patch in my inbox, so I'll just answer=
 here.
>>=20
>> About the assembly modifications on the exception entry points:
>>=20
>> With split sections the linker is free to reorder all of them as it sees=
 fit,
>> which probably means we want int3 after every jump to prevent straight-l=
ine
>> speculation from allocating an XSA number for us. It's possible the link=
er might
>> inject them, but it might also not. Better to err on the side of caution=
.
>
> We're lacking such INT3 elsewhere, hence why this is the topic of separat=
e
> (existing) work.

Maybe so, but split sections changes things qualitatively in that now you d=
on't
really know what's after the exception entry point. Previously, if the CPU =
was
to speculate ahead in most exception they'd eventually hit the spec mitigat=
ions
of entry_DF before being able to reach anywhere truly dangerous. entry_PF's
straight line led to the mitigations too. Same with NMI...

Having them all in separate sections shuffled at the linker's will is way t=
oo
dangerous, IMO. We clearly need individual function markers for livepatchin=
g,
but section-wise it's fine to put everything that can't possibly be GCd in =
a
single section.

> See how, for example, we're also not using -mharden-sls=3Dall.

Hmm. I can see how -mharden-sls=3Dall might impact perf in places we don't =
want,
but surely -mharden-sls=3Dreturn can only be good?

> See e.g. [1] for a very old posting. Even in my outbox I can't find newer
> postings covering more stuff. Intermediately some of this was posted to
> security@ only, but there clearly was the plan to have all of this in pub=
lic.

Thanks for the context.

That'd address the speculation problem, but we'd still suffer branches in
avoidable places.

It'd be nice to have a general means preventing dangerous SLS, but that's
largely orthogonal to the new challenges that arise with split sections, I
think.

>
>> Though more generally, I'd just keep all exception entry points in the s=
ame
>> section. They'd never get GC'ed anyway and we're paying an extra branch =
in the
>> #PF path for no reason.
>
> Inserting a branch there was, iirc, asked for by someone independent of t=
his
> work. But yes, suppressing too fine grained section splits is an option.

My .02 is that splitting that which cannot be GCd serves no purpose and
increases the cognitive burden of an already very complex system.

>
> Jan
>
> [1] https://lists.xenproject.org/archives/html/xen-devel/2020-11/msg01542=
.html

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 10:19:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 10:19:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230583.1536051 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqqGo-0007km-SJ; Fri, 13 Feb 2026 10:19:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230583.1536051; Fri, 13 Feb 2026 10:19: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 1vqqGo-0007kf-PX; Fri, 13 Feb 2026 10:19:30 +0000
Received: by outflank-mailman (input) for mailman id 1230583;
 Fri, 13 Feb 2026 10:19:29 +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 1vqqGn-0007kZ-Lj
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 10:19:29 +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 1vqqGn-006pK4-1D;
 Fri, 13 Feb 2026 10:19:29 +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 1vqqGm-006GRm-21;
 Fri, 13 Feb 2026 10:19: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=xenproject.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:
	Message-ID:Date:Subject:Cc:To:From;
	bh=OhxTuNBvsGrgpoOFLyTruEhn44xNVgI26+k4zgLjXkY=; b=FgvMcaimOz4vE30mQvOjjCy6Nc
	ShP407LFcKYVvP2V6G2owEdvIT8P6w/Z3AUlKJ3o7Ql91TuBH1f1MbYPGyOfhS10EI2hJlMj2fZfy
	V1ifsbM+9EaqfHpgpFhgN55hndCHji+/uXiwJBUTlFkF/bxTqvlLKbLIeA6dIeb4cT4k=;
From: Anthony PERARD <anthony@xenproject.org>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [XEN PATCH] CI: Remove `brctl` from Arch Linux container
Date: Fri, 13 Feb 2026 11:19:21 +0100
Message-ID: <20260213101921.61888-1-anthony@xenproject.org>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Anthony PERARD <anthony.perard@vates.tech>

Package "bridge-utils" have been removed from the official repos, it
contained `brctl`. That utility is used by network hotplug scripts,
but they already check if it is available and switch to use "iproute2"
(`ip`) when not.

Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
---
 automation/build/archlinux/current.dockerfile | 1 -
 1 file changed, 1 deletion(-)

diff --git a/automation/build/archlinux/current.dockerfile b/automation/build/archlinux/current.dockerfile
index 4e53c835fa..a257027772 100644
--- a/automation/build/archlinux/current.dockerfile
+++ b/automation/build/archlinux/current.dockerfile
@@ -6,7 +6,6 @@ LABEL maintainer.name="The Xen Project" \
 RUN pacman-key --init
 
 RUN pacman -S --refresh --sysupgrade --noconfirm --noprogressbar --needed \
-        bridge-utils \
         bzip2 \
         cpio \
         discount \
-- 
Anthony PERARD



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:12:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:12:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230622.1536062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqr65-0004hK-Of; Fri, 13 Feb 2026 11:12:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230622.1536062; Fri, 13 Feb 2026 11: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 1vqr65-0004hD-L2; Fri, 13 Feb 2026 11:12:29 +0000
Received: by outflank-mailman (input) for mailman id 1230622;
 Fri, 13 Feb 2026 11:12: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=vDOC=AR=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vqr64-0004h7-26
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:12:28 +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 e109eed8-08cc-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:12:27 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b8f8f2106f1so103416566b.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 03:12:26 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8fbe407520sm3682466b.43.2026.02.13.03.12.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 03:12:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e109eed8-08cc-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770981146; x=1771585946; 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=Ev/ToI45invKmxKsmjv/nTAYHo0Moc+rLWviNdbLiR0=;
        b=c7Yy5CSGpTwntZGudiCKxo6n2N3/6YCUxD/2kXDh7hHvonfDuwO3BG8i/FBYf1P+fW
         psENUQeZFKd2Ge/nkd9TDpfW8DJEN+AhXufTQjhOUHz+di7Fx7Y2eTbs57dmn3tJuTRZ
         rQdEVSIv5de+zza6Hs9vTm8lKLO5+BceyPSI+ywCHuYJJXio9ib3ie9yqiF3qKGYsoFH
         xR9YH5HSrDQPUdYwEmxTw6JhMvTK3cyri6UXSNlyIp5ZJDoqSXEzRHBKTQaOwJcQz2zF
         3QeE/k+sWt8HYtUoRtQ4Zsz9rfRy9cs3k6lZrlTmACiNfvuSaORF9zpT2gGWDZI4VhVk
         41xA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770981146; x=1771585946;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Ev/ToI45invKmxKsmjv/nTAYHo0Moc+rLWviNdbLiR0=;
        b=YCfGUlFhCgpZndtMdbFIlh6g5fw10TCbmwZ4qXViZ2dg4zpAGW1iDHPqfMvptb0iv7
         nATQ29s1y7x4Ga+oEKGwTHSjVaiGqWIXuwFXEMo6z40wGn9C+/iSnffO7m+S16cEpBaG
         lEYIYkPVQtGwwyDQ/BcTnsQHnT1Yt9DyL36Re1KCuDsC8qn+7iWt94MdLFuKky/m7ehs
         ri8QGtdERvxUkEZ2v3CuT59aKeCEgihZKx9GPNRyRHpZUa/MftDm1I8jNPjm4dk6MesY
         c7sQ6tzS1z4OfiiFTIjItzp3M/tDvXhbzMBKtKRvxiR7ihDdYkexG7igbsV49cNTQ7cl
         Wa/A==
X-Forwarded-Encrypted: i=1; AJvYcCWlEuWxcFG0/0GrFv+jZ3kxGLtdNQZL/OC1HElT8Bul5lXqREXip0olFsWMakQRLDGr45hq/RQpMKw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwdZ2PXz04e560wj8ZIp2YPHw4kTP6FdCmAh2W+a8/pmQ+MNQs/
	3mBPlwPoRZU50lf+0AHyJLv27u9vGTC7VHaae0Usg6SdtGst56zTIZe6jUvC9bzqVIU=
X-Gm-Gg: AZuq6aJBZLDywxepUBRfLbDUw00S8E/aNktmefYB1JpLhYu88o0U1ZuZ+ZC52NlVYFQ
	f9p7768zXBwyiFc6XyO3ZMb2TyeepVShJ+w6ZSOPxgn31jSqaUPiHV4enC8/fPiXHFlX/Uqx3YY
	T1tfVXYzfu6ro7DPJpuMB8YaZfp2S/O1yBp/sk3OwId8DKvziCa+U+C4ygg7U54pGyeNZoiMZGg
	d3NBvOp+7ecPkg0f/BR2Gz7VyrZ0TdO0eK0lZ0GgSnEUk04PQX1UpHa72JRIBFzTIMelMjj5FpK
	/pmzL8tpBx1QDZEh59pdAyVS8SxlLtTK8zzZ3ztkqdGtv0v/ZeZ1F7DGJe9jm2ju+MlT2Oufc2e
	/T2MSob7BfD4ylJnsz+zt2iErdf2xVpYNHZqanK3/ldQOpr0jBXzNCnhgW85DE6d2K/v7ypDKMo
	W/BTk3Xtjv9VTH7R+MfFUGw5CVKWWGCQq/81RUpZXbCCwI+TWBmfKQiz6xbteCRm/J9Ox5MGM2s
	+Y6w9/kS9vqw5Z5KeqHV2hFAP40gDpnJar/dXkEZDth5p6ghw==
X-Received: by 2002:a17:906:6a21:b0:b8f:a853:add5 with SMTP id a640c23a62f3a-b8fb466c3dcmr84975466b.62.1770981146183;
        Fri, 13 Feb 2026 03:12:26 -0800 (PST)
Message-ID: <02459674-58f9-407c-b151-39374a6cf81a@suse.com>
Date: Fri, 13 Feb 2026 12:12:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH net] xen-netback: reject zero-queue configuration from
 guest
To: Ziyi Guo <n7l8m4@u.northwestern.edu>, Wei Liu <wei.liu@kernel.org>,
 Paul Durrant <paul@xen.org>, Andrew Lunn <andrew+netdev@lunn.ch>,
 "David S . Miller" <davem@davemloft.net>, Eric Dumazet
 <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,
 Paolo Abeni <pabeni@redhat.com>
Cc: "Andrew J . Bennieston" <andrew.bennieston@citrix.com>,
 xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org
References: <20260212224040.86674-1-n7l8m4@u.northwestern.edu>
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: <20260212224040.86674-1-n7l8m4@u.northwestern.edu>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------rmAWL2OMeeZDohi0r3FMp00n"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------rmAWL2OMeeZDohi0r3FMp00n
Content-Type: multipart/mixed; boundary="------------fzXF7bXgc7rK1nb40SukhLSf";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Ziyi Guo <n7l8m4@u.northwestern.edu>, Wei Liu <wei.liu@kernel.org>,
 Paul Durrant <paul@xen.org>, Andrew Lunn <andrew+netdev@lunn.ch>,
 "David S . Miller" <davem@davemloft.net>, Eric Dumazet
 <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,
 Paolo Abeni <pabeni@redhat.com>
Cc: "Andrew J . Bennieston" <andrew.bennieston@citrix.com>,
 xen-devel@lists.xenproject.org, netdev@vger.kernel.org,
 linux-kernel@vger.kernel.org
Message-ID: <02459674-58f9-407c-b151-39374a6cf81a@suse.com>
Subject: Re: [PATCH net] xen-netback: reject zero-queue configuration from
 guest
References: <20260212224040.86674-1-n7l8m4@u.northwestern.edu>
In-Reply-To: <20260212224040.86674-1-n7l8m4@u.northwestern.edu>

--------------fzXF7bXgc7rK1nb40SukhLSf
Content-Type: multipart/mixed; boundary="------------oPkhdrcLI3DudRxu4wTLSAHY"

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

T24gMTIuMDIuMjYgMjM6NDAsIFppeWkgR3VvIHdyb3RlOg0KPiBBIG1hbGljaW91cyBvciBi
dWdneSBYZW4gZ3Vlc3QgY2FuIHdyaXRlICIwIiB0byB0aGUgeGVuYnVzIGtleQ0KPiAibXVs
dGktcXVldWUtbnVtLXF1ZXVlcyIuIFRoZSBjb25uZWN0KCkgZnVuY3Rpb24gaW4gdGhlIGJh
Y2tlbmQgb25seQ0KPiB2YWxpZGF0ZXMgdGhlIHVwcGVyIGJvdW5kIChyZXF1ZXN0ZWRfbnVt
X3F1ZXVlcyA+IHhlbnZpZl9tYXhfcXVldWVzKQ0KPiBidXQgbm90IHplcm8sIGFsbG93aW5n
IHJlcXVlc3RlZF9udW1fcXVldWVzPTAgdG8gcmVhY2gNCj4gdnphbGxvYyhhcnJheV9zaXpl
KDAsIHNpemVvZihzdHJ1Y3QgeGVudmlmX3F1ZXVlKSkpLCB3aGljaCB0cmlnZ2Vycw0KPiBX
QVJOX09OX09OQ0UoIXNpemUpIGluIF9fdm1hbGxvY19ub2RlX3JhbmdlKCkuDQo+IA0KPiBP
biBzeXN0ZW1zIHdpdGggcGFuaWNfb25fd2Fybj0xLCB0aGlzIGFsbG93cyBhIGd1ZXN0LXRv
LWhvc3QgZGVuaWFsDQo+IG9mIHNlcnZpY2UuDQo+IA0KPiBUaGUgWGVuIG5ldHdvcmsgaW50
ZXJmYWNlIHNwZWNpZmljYXRpb24gcmVxdWlyZXMNCj4gdGhlIHF1ZXVlIGNvdW50IHRvIGJl
ICJncmVhdGVyIHRoYW4gemVybyIuDQo+IA0KPiBBZGQgYSB6ZXJvIGNoZWNrIHRvIG1hdGNo
IHRoZSB2YWxpZGF0aW9uIGFscmVhZHkgcHJlc2VudA0KPiBpbiB4ZW4tYmxrYmFjaywgd2hp
Y2ggaGFzIGluY2x1ZGVkIHRoaXMNCj4gZ3VhcmQgc2luY2UgaXRzIG11bHRpLXF1ZXVlIHN1
cHBvcnQgd2FzIGFkZGVkLg0KPiANCj4gRml4ZXM6IDhkM2Q1M2IzZTQzMyAoInhlbi1uZXRi
YWNrOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgcXVldWVzIikNCj4gU2lnbmVkLW9mZi1i
eTogWml5aSBHdW8gPG43bDhtNEB1Lm5vcnRod2VzdGVybi5lZHU+DQoNClJldmlld2VkLWJ5
OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQoNCg0KSnVlcmdlbg0K
--------------oPkhdrcLI3DudRxu4wTLSAHY
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-----

--------------oPkhdrcLI3DudRxu4wTLSAHY--

--------------fzXF7bXgc7rK1nb40SukhLSf--

--------------rmAWL2OMeeZDohi0r3FMp00n
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/Ey8FAmmPBxkFAwAAAAAACgkQsN6d1ii/Ey9i
zQf+NoCNOcEARUKfM7WGvjBJICmF9LWnKvhG2fMAYCZ3gF3ybnoHStwJQ+ioMHEkirAye7g1vmnP
TRQsqYFYW53t0VuEy9LsniZk7fapy7fGr36uOjMJg3+xyU4q9xt+VFKF8b4dKVi5itasrGmC6yKQ
OM51/LLkoQBcMwj0BvyXmZrMIMrE5tSTO6EichMpEba3R7UyNKBSOZmOn8kRzo5cY9KIs4X5LZJs
eFKSb1dTjZwcpR5P0Nhmsb16K8alSpLyrROO3srwc6is92yY/k4eggBCPekIt7dybWFv/cVLeCxV
ptCCQ2s7NNh0hryMfq/CZQLGFoFeVImhq8GyuRuSCA==
=G6ik
-----END PGP SIGNATURE-----

--------------rmAWL2OMeeZDohi0r3FMp00n--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:36:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:36:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230646.1536071 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrTV-0001IK-Gs; Fri, 13 Feb 2026 11:36:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230646.1536071; Fri, 13 Feb 2026 11:36: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 1vqrTV-0001ID-Dh; Fri, 13 Feb 2026 11:36:41 +0000
Received: by outflank-mailman (input) for mailman id 1230646;
 Fri, 13 Feb 2026 11:36: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=0hMq=AR=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vqrTU-0001I7-2m
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:36:40 +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 41dc3126-08d0-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 12:36:37 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-385c23b88e8so6224761fa.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 03:36:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 41dc3126-08d0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770982597; cv=none;
        d=google.com; s=arc-20240605;
        b=e8vKHxTR72X/T2MHvsUO8A9qLmhlG5CG+xGyCEKUXUOEzirRfQ6mTRDIZre2i09eau
         /vh8SC2uQUY8KXmbQEtffsHYK6UMLtIAVgTaebqez241IvS7oRhEF41CbDwZQXtx/dhP
         J6u130/34taJ37zYQUPRxCKF0MOIPz3wptHXxI2Pu168M6afn3Y31DtSKVQj85inpwW5
         DuF6ipSe+HwU12fmN0f/Bids+ArrHB4PJgGN+8DB+pWA261b7s5BhS7eYY9a1pp8cFmH
         E4Vr9Ica1ie+tMuEfVu9ix05jBL5iIBvRgbBmQAw/J0ZzPjII7lGvK6L9j+gvwVIxJlm
         xANA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=UnPv9KiFSPEOkVb6MxO7U1B7FDw+Z5g3/NsEo1eGHaA=;
        fh=xb/cHUj5Dkiq29tc/GObLonP7CwqIr/XEXKhefoZggg=;
        b=LX+WWT/5AW4GhFd379ZcCSUptF75P8VbRXqS/3IjvJFcXgzSCPg8kQhvtAb5VqDj6p
         4GyS/hfVIUo2UoQ9UxiS05800ZDu4VTlghDTvMBN98W0+W9fWe+WJK+IuiHE9KwlcP98
         EV7qFqu2UImHGOqef7etCSQ4NBNBFXQoEh76YNph7lhbODgakBpUQ7Gu6jFgMzw1cEsj
         GmTWHfbCXaSntBL//F8FXOkI1D0uRHaH9Xps3VkrFkBa+mN+H6NXQCUMDCsG3H1TMOPG
         vw/lMwLhUrYjuz1PhR3Hal+iN19xA1Xd7S0zOVMBMRA3Gi88uCvr3ZQhPdAcoVm79qEb
         niBg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770982597; x=1771587397; 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=UnPv9KiFSPEOkVb6MxO7U1B7FDw+Z5g3/NsEo1eGHaA=;
        b=Pm6LBJ+Y7gHVEUNsxvfrKKjHAs7axAxEWK7kWRB2xXMrSbom5BVle0aCdS/TXi5YcZ
         BOadlz6ehP31lQBFMJ5OyN3P+ZhYmAq/PGXmAh1FLHkIB/1MYur55Jg9SiEhoMWsKfVt
         7rXFL86HL2dksdB5mWJpIh9AOokZcyruV6eBnDEH0Y7slB199/JgCSqu2SQwoTXo0c1k
         IE9SV44FlKOFx54MELUYhS3uvRdBZRfjxgFpOwUV7F1lN1pp5zg/qB7P5oiU5HQpi4V8
         +T2Xvgbjjp1xz0PrwYBQHYZigvY832MK5XLmcW+Azg/U/Z574IBZSE+UApaNDHxl5kxj
         7hnw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770982597; x=1771587397;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=UnPv9KiFSPEOkVb6MxO7U1B7FDw+Z5g3/NsEo1eGHaA=;
        b=B6bSVKi/J9a+LmB8ixcn6jkqOelEvwPJDCj/EkRmpSsEAbQCIlsXsU7oyYMWDa51M/
         Tzf2MZm6KaqgFtKtDHyavxpoY+tRmgbw3ZbLgDrtmk9s9YSkaIhBcMjS4JXrikpMd/EL
         zlnyLdngheLi9l8YR1Z2jxye2huDjg8ZwsT5TRUDi51sAFI9qN0iA6++X4E9rBGgoMwC
         sNrnfUcym7LW5L9B497BrBFUdERmc8+tWyrFvt95tBlWoCLqMFjZORgSS9ClXbvKuGwb
         quZ4YRTH15F2+6fUMT/zbKWe7ilio9QxGxJGDhyPl4kFJZGSqq7+oERmpHs1QbwpPVJE
         f1Uw==
X-Forwarded-Encrypted: i=1; AJvYcCUzp7klpuTDbGMLBPMMkvhBYXWm9WYYTvrGNGmr2pKKE7kDxP1M6dgJF5YpupLkqfHk1zWwb0q+YFg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5pp5gLYB4DCiGp6Aen7IqkWwmmhdyNEkpohHx0P4VszMYjEI9
	IxR4tj2QbiB7mKKNSAQGnExHcPLYCxkh70LPXsXuXhZQD0KaqQbOauHdM+a1NCPbENG4z9SySby
	fQdeV6/k/e/q7FtooO53TtxFzCtRb3Jafkfvjvx8=
X-Gm-Gg: AZuq6aJ/3dB7X8cWVjU6Ut4e7kB5Iz2DrIAOSEt7giM/r0ZqD6cQNzUTWxKEi1H0C06
	pQLtATzFxNgsP9qkfXRV2sgGVr+6bXUAknUVaRLaRdsnPoHdJ1j02r1vzDmPsYv6KVBJw5KkLH5
	sUVWnUQwDLDFMoaTfQYB/drPpmilev8QULtgG+K8Z2qjVlnDaaqL75FoPGb+JKd7uJ6doggXocT
	aDakIif6gN8RJ6MVzBweLVipgsocypVEsvEjfC2OOazcOZ9iboyyWigReQLvGK6VXt5WP/BDF/A
	h7p9pA==
X-Received: by 2002:a05:651c:150d:b0:385:da1e:3d71 with SMTP id
 38308e7fff4ca-388106775afmr4934741fa.42.1770982596886; Fri, 13 Feb 2026
 03:36:36 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
In-Reply-To: <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 13 Feb 2026 13:36:25 +0200
X-Gm-Features: AZwV_QhZbu1_s2_uBAxrZJ4m0u6FTsZie8gSw-eJfjm7NKqnTFcavWWjyl6yqII
Message-ID: <CAGeoDV_bN812-qKJwTxNpJ6Ewz1jcBM8nLYc9D+OjqbuAAkEHg@mail.gmail.com>
Subject: Re: [RFC PATCH 00/19] GICv4 Support for Xen
To: Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
	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 Mykyta,

Thank you for this patch series. I'll go through it and follow up with
comments shortly.

On Tue, Feb 3, 2026 at 12:02=E2=80=AFPM Bertrand Marquis
<Bertrand.Marquis@arm.com> wrote:
>
> Hi Mykyta,
>
> We have a number of series from you which have not been merged yet and
> reviewing them all in parallel might be challenging.
>
> Would you mind giving us a status and maybe priorities on them.
>
> I could list the following series:
> - GICv4
> - CPU Hotplug on arm
> - PCI enumeration on arm
> - IPMMU for pci on arm
> - dom0less for pci passthrough on arm
> - SR-IOV for pvh
> - SMMU for pci on arm
> - MSI injection on arm
> - suspend to ram on arm
>
> There might be others feel free to complete the list.
>
> On GICv4...
>
> > On 2 Feb 2026, at 17:14, Mykyta Poturai <Mykyta_Poturai@epam.com> wrote=
:
> >
> > This series introduces GICv4 direct LPI injection for Xen.
> >
> > Direct LPI injection relies on the GIC tracking the mapping between phy=
sical and
> > virtual CPUs. Each VCPU requires a VPE that is created and registered w=
ith the
> > GIC via the `VMAPP` ITS command. The GIC is then informed of the curren=
t
> > VPE-to-PCPU placement by programming `VPENDBASER` and `VPROPBASER` in t=
he
> > appropriate redistributor. LPIs are associated with VPEs through the `V=
MAPTI`
> > ITS command, after which the GIC handles delivery without trapping into=
 the
> > hypervisor for each interrupt.
> >
> > When a VPE is not scheduled but has pending interrupts, the GIC raises =
a per-VPE
> > doorbell LPI. Doorbells are owned by the hypervisor and prompt reschedu=
ling so
> > the VPE can drain its pending LPIs.
> >
> > Because GICv4 lacks a native doorbell invalidation mechanism, this seri=
es
> > includes a helper that invalidates doorbell LPIs via synthetic =E2=80=
=9Cproxy=E2=80=9D devices,
> > following the approach used until GICv4.1.
> >
> > All of this work is mostly based on the work of Penny Zheng
> > <penny.zheng@arm.com> and Luca Fancellu <luca.fancellu@arm.com>. And al=
so from
> > Linux patches by Mark Zyngier.
> >
> > Some patches are still a little rough and need some styling fixes and m=
ore
> > testing, as all of them needed to be carved line by line from a giant ~=
4000 line
> > patch. This RFC is directed mostly to get a general idea if the propose=
d
> > approach is suitable and OK with everyone. And there is still an open q=
uestion
> > of how to handle Signed-off-by lines for Penny and Luca, since they hav=
e not
> > indicated their preference yet.
>
> I would like to ask how much performance benefits you could
> have with this.
> Adding GICv4 support is adding a lot of code which will have to be mainta=
ined
> and tested and there should be a good improvement to justify this.
>
> Did you do some benchmarks ? what are the results ?

One more benchmarking note (and rationale): for meaningful performance
testing it may be necessary to disable WFI trapping (boot Xen with
`vwfi=3Dnative`).

If WFI is trapped, each guest idle instruction causes a VM-exit, and
Xen typically deschedules the vCPU. This makes the vCPU become
"non-resident" more often, so subsequent wakeups (e.g. vSGI/vLPI) tend
to go through a slower host-mediated path (waking the vCPU thread via
the scheduler and performing extra state transitions) instead of letting th=
e
hardware wake and deliver to a running guest quickly.

For this reason it may be worth conditionally recommending (or even
auto-selecting) `vwfi=3Dnative` when direct injection is enabled for a
vCPU, so measurements reflect the actual delivery fast-path rather than
exit/scheduling overhead.
---

One more suggestion: it may be worth adding this as a small patch in the
series (or at least documenting it prominently). When direct injection
is enabled for a vCPU, trapping WFI can skew both behaviour and
benchmarks by pushing the vCPU into a "non-resident" state more often
and forcing wakeups to go through the host/scheduler path. A conditional
recommendation (or even auto-selecting `vwfi=3Dnative` in that mode) would
help keep the fast-path measurable and predictable.


Best regards,
Mykola

>
> At the time where we started to work on that at Arm, we ended up in the c=
onclusion
> that the complexity in Xen compared to the benefit was not justifying it =
hence why
> this work was stopped in favor of other features that we thought would be=
 more
> beneficial to Xen (like PCI passthrough or SMMUv3)>
> Cheers
> Bertrand
>


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:37:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230653.1536081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrU0-0001i1-OQ; Fri, 13 Feb 2026 11:37:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230653.1536081; Fri, 13 Feb 2026 11: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 1vqrU0-0001hu-Lh; Fri, 13 Feb 2026 11:37:12 +0000
Received: by outflank-mailman (input) for mailman id 1230653;
 Fri, 13 Feb 2026 11:37: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=VfN9=AR=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqrTy-0001fQ-AQ
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:37:10 +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 54f0cb9b-08d0-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:37:09 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7615.eurprd03.prod.outlook.com (2603:10a6:10:2ce::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 11:37:04 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 11:37: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: 54f0cb9b-08d0-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H+sb+QlIoFGZZgMUxHr9efipNWjZDLA+5LdXXCUg6mCvcjiCGb/qHJSXiIApY0/pWQqa3m1nkKm4zSt3KiRoCrzHHYfMKAQeZR7JU48cwcaTDZVo9ZfY945jAt+WARv/WtJeo/PB+BnRBoPbyZIX7N91lmqQMVE2fDuRbdSEMhbYoT/DYVkZNbbOy8nEJ2YP1br1HxeQVyNNDIEDJ24+4O0p5PL6JsHujT7Z9s4XI7BPSYNY7Dg85xkn39juRbwxAt00HhEFlcMCeBoFrStiKwlll96wvVvKgrLwdFWBtSYsDzCQS918JTnreHeKJZqunkhaTHFVU9TdU1I784IzBw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7Nk1CN+j4B/Mq/rCvZP0747CGWDJEwdX0Pe1Pu44Qbs=;
 b=Y5avRrt0HgX41VyW3Dy5s80lMAG9nmJC/5cIeplF5HsvRNgEE/GbXuC69iJ+StR9ndzg/XNdlCEVo4h9fCgAg4NBVV2fR5/CqbpCtjftOgwGCKCyYDEC+JdzD6cMoKCL2HCxObZN8LpFzieU/YnuWWP3JA0vY5jzqj+1szdDCFBJZeRhBgckRiBVy5p6kdIpuo1QQ5KjePSdjWNetmUyYbYkRdAXAtWtNYEV+XVdb8tZV4bU8oCWKPuyGSJ78nYYUn7tXB+maQau1v1u9bi+qwnhD9D6xvKdteU+cYplGnlc122uhnymW2Ysc9EQUMvT8sE4gdGDjMclygBk6Nmz2A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7Nk1CN+j4B/Mq/rCvZP0747CGWDJEwdX0Pe1Pu44Qbs=;
 b=Pxfr4Zv+n5eAEb74m3Z4vafG8lsjdB8Ln4pB6agglxRgSaHqJ2YXCAbP+GnBurjjUy7fnGSteVC+QA0GGru/agJqLjremTgQqNqM+VdZ2WosVSrdUi7T73pmgjvUisophNdGleJlrGe0ezpE/iGvWnfz89p0RBAabFHjRwmPGgfCkbbHjSL5Vn3ldRcWa8Yr2dHDcoxyujcK93TZyfwbKBLgKbosKhUiUbnW7btZ3r3sBLRdc6ZLa5WKJvod84jjXNdP2zRt1dS7shgUDvUG4icvCRyqKKskVyK5IfVgGQW0koTKici5uwoqWNSroraWC5fyhoc2zrY4MGhir5gq4g==
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 v10 2/6] xen: arm: smccc: add INVALID_PARAMETER error code
Thread-Topic: [PATCH v10 2/6] xen: arm: smccc: add INVALID_PARAMETER error
 code
Thread-Index: AQHcnN0ThbUhqTNjT0mv3PupYnT1Yw==
Date: Fri, 13 Feb 2026 11:37:04 +0000
Message-ID:
 <541be1f41d07d9819390e522fb7298c95413ad1d.1770982468.git.oleksii_moisieiev@epam.com>
References: <cover.1770982468.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1770982468.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_|DB9PR03MB7615:EE_
x-ms-office365-filtering-correlation-id: 4d4f8e32-550c-467a-1a23-08de6af43637
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?9lg8BNIOYw/tE5M1C5hPkCcDAqOJHNk/GXoB9o8T8w06Mp7DDFfEiy/8E6?=
 =?iso-8859-1?Q?SJgr70U3lwxLnVgjLrz7r23HEiIZfs07ZVCMNLaGN74y+LTx6V6ep23gX4?=
 =?iso-8859-1?Q?j4Gzo0UcdOm2ysAGbHk85PDI1YRQq4uqqmjtnr5kSb2eof2ZIB5jTcq2z6?=
 =?iso-8859-1?Q?WBCdYL4OHYbP36IpE59M+cYsy+L99xLVa3/bApyeBh8cKwDeGIS562F0R8?=
 =?iso-8859-1?Q?nz6zHh8xJgMxJcfC2JoU65wokLSQHCX6iDUvuvcZT2cl/4zV1lmpgmfWUc?=
 =?iso-8859-1?Q?5VGDD+3c3PwyekpYEUgiuAsYafq5ZmSdo7YlgWt5slMAqTmlZvKvbqFNSS?=
 =?iso-8859-1?Q?4iOK+uXoj+EfZM9PLgTZV7uMM1tfrymu9fj6WvRMzLkAlD5BWTUbIOZcbx?=
 =?iso-8859-1?Q?UxFa4tb9SyuDEPFUlybuXXvcDgtbzqBQK7WPoQn5oXjS8PbrTJaL/CAa/+?=
 =?iso-8859-1?Q?LJ95rsqvxO313YaPos1E4EMJw2wlXd1Az3xx29OqP1VeHUzQ17ZG5E+a2i?=
 =?iso-8859-1?Q?I02LoCAFW3CYJY0G+0OtmB5QU2FpAS0fNvARJN52ngIELzmZDS+ebU5lBq?=
 =?iso-8859-1?Q?HJyDj5f5u6b5gm4Sm7dJC/GXsIJ7s7hSgzMLiKp6ndTtAiq+5EeWfmRUZH?=
 =?iso-8859-1?Q?9lgEU3ysyhO9hmu3Gd5U8DIxQmfiyjLGIe8jtxV0/xGayquy09XF27j0oP?=
 =?iso-8859-1?Q?4mn2c0ClPS9qJNPJGjWhRkUeugh/uFiQ0fQ3rI5P85azXHP7V+ppoeu3tS?=
 =?iso-8859-1?Q?o+B6W3c/McxUQnyQcq4fxeuBcEVpHyS0g7hBaJ/g+BFImOZXz25ufogw0p?=
 =?iso-8859-1?Q?7o3/zM/Ghs8Y4rel9j3H9nSKeEd216o0KigRhdllbE6jld6fVSE7+L5y7+?=
 =?iso-8859-1?Q?liBEWZOf8GJOH1DgiWz+sNjXxt2CBXhT2bO/FVymNM25xOncZsPNoRKP2N?=
 =?iso-8859-1?Q?rNMcb9WE2+e1btM6BDL1mmkh7sbE4GRO1hIbcpMWy1107Pn+vHZm6bX1wI?=
 =?iso-8859-1?Q?lXEHULXk89h6zexie8MZrVbg6vWZOfxlFh5VS2rF6VJAo0qf7mHMlNAp6p?=
 =?iso-8859-1?Q?aqVmGy8ygEJKmuiNNWMsb6ZlVQ5YKGwv3v5mGy1X2OdjmEebydig5+Wxd7?=
 =?iso-8859-1?Q?0lgktlINweU0mwDmJmLKJ0o+Rnvs8U5fUCxtmGUBnnZCiXaanqOvgSbm8I?=
 =?iso-8859-1?Q?wX/yeqz1nU1RgOSJngGbyPjNcS40ICTEt6VVn3/etkD0Ar4u/8Siv2gign?=
 =?iso-8859-1?Q?cTs2Dob7e4vLWr4WLMXzdmQaZEyYlch3PNEactkJeb8uWxVWo42Bq55mYP?=
 =?iso-8859-1?Q?ithcblXpL07d7lsMjE58GSsuwkPvOgj57uno/KQLUdUh8jHXFpzC8lbME+?=
 =?iso-8859-1?Q?3X1jdQ9itPGKnUadWW+ZjZuT5hPBCx5t3uxMTG6ObCABIKthbA8YmrsY/P?=
 =?iso-8859-1?Q?h2FRvK+h5QaRWKM0d2t8LlDSdr5uYoQugpx1AMI9qB/RomWYyvfDlua4dQ?=
 =?iso-8859-1?Q?MAt/IAwYcC35vxcmkcP+k35KEprJ0jroLLP0ruVavHyc3HjzSR7jB1OzxN?=
 =?iso-8859-1?Q?YJ7D6EsDcGJ2hssbUSq0jqxMbGOW6GNfskQdxkbCWVXhIygcN7bu/LsYjU?=
 =?iso-8859-1?Q?MkI48jCW5L71lFGxd/KXiIRVOEwutbc6yTp0FzqFgmbZuHi0vnvBVKzo3h?=
 =?iso-8859-1?Q?ELwmxJpLweHz3SXWYbc=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)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?LKUso9dUo20Nb6MW+aucIq1Fr5CdZ//LExhj0WSef1HXUsNsKi0qrm3twa?=
 =?iso-8859-1?Q?qSWwCq7IpVj0ID2wOLMApp9XKR+HH5/OLsFBDjW93YF4o1Fc9t9lZOutsu?=
 =?iso-8859-1?Q?62pUDQs0WQR9QsJCz7Cf1OVATD8t2IHYaJ05CGALypGV8WCF1mh1glxNgh?=
 =?iso-8859-1?Q?O0PdTxv/BH4pKPTcJiau/i0eTCSBcvmqwfPNPUqcATXsEt9qOd0Hk5LaJ/?=
 =?iso-8859-1?Q?UHPdUK4MrXp4gzkEM9NssRyLpWMlKmsEYvfg0NsHC8oUwTvOfmKoIlyFec?=
 =?iso-8859-1?Q?n6cDNa9+tvxt0JmQBKNAUuxntmG8xk1wWNIP3RKAaADdAWxadxswG7NbPA?=
 =?iso-8859-1?Q?FwJ/lmodv1oiRP4dhuwUQA/sN4MDsiWWf2Vg1jn3BjkMHkQtTfL7XWGnFB?=
 =?iso-8859-1?Q?plyrS+BVjU02vmtas3kGfuSkdrlrtBCLL9no27Dd5Hx7QCNlkym80fuiGG?=
 =?iso-8859-1?Q?cMsxs7qNiY6IWxj2cNIuvgb7gz5uaOmFuWDAQ7JBgprxvvoLFcRxdPetD8?=
 =?iso-8859-1?Q?EjS+stLviC+AxcLwhGETtJyntE/DYBOK6L3CE4jkcxTeFYP0nDdF5dT/Ul?=
 =?iso-8859-1?Q?a69QHL/VHUpRxDOQj8PaPG3bNSgMNkoLy1mb1wrR4xK0QRpP7kHFOqNl2F?=
 =?iso-8859-1?Q?i9R20taQctWTz+kKMiXtSR9rkCBrjgQUV9BjFN+VygLbr3YPgCio80L6Wm?=
 =?iso-8859-1?Q?5UfCMrZZln48b0iCFp7IINNRlDH6L6wLOwBo//k9t6Zu6lQfoTH4fLA6tb?=
 =?iso-8859-1?Q?jPc3HKy6209fu6W/R52ZElNkyOqcAdVCCQK4D2sKF5uB/n+XuUKiWHrWUN?=
 =?iso-8859-1?Q?VwB2v7l1cdq9c0BLjnovvfxxzt7S96W0soPBP1TR5YAPFllm/+S9bVK9tr?=
 =?iso-8859-1?Q?KpzZ4YU8J/AAM+BV17P69D9ygvAPGZYghmP6dJ5R8VoQqk9ziMd05Zp25z?=
 =?iso-8859-1?Q?2+piR2XZwORg3dFhZ8SgPv4miie3kKidf0awM0GNpcSFjJWoWOZ0TtszfQ?=
 =?iso-8859-1?Q?QeTZT29/74VRdEowgLC23RMiKZA58PcTTW0eBFYUAoAjP3CJdjmfYRhYl6?=
 =?iso-8859-1?Q?NIcgdbzbJPcN8KXkvOSk21YdNM8VHvY2rZyJNmx+302IarmDxehv58KkNa?=
 =?iso-8859-1?Q?Fmf91WO+++7X6BVd1SLX1N3+iMMQ/h4dSVrfsXmq4kk5gmDXi4OJ+mx6rF?=
 =?iso-8859-1?Q?RUT30iYwjRzZkmKAMl+UhjZtpem1fNcYvAb3B8clYv0qoQOq0j1e9MPOo9?=
 =?iso-8859-1?Q?WK289bNctRuPb3pyK+ICm0R+1SPckGtA1Dh6ZDz/ZifAnXmUcSQovY++xI?=
 =?iso-8859-1?Q?N26NdbYFm4BhRa68dwV0pOTxwemPVMZkgsBYS35KyWXD/gOoFwmrvdqQjr?=
 =?iso-8859-1?Q?E7u3+smVipvZLDLNQlA3lGAbIzefaoNsE91aRFp84olwXRJDhMe+J7APR5?=
 =?iso-8859-1?Q?zpUNqw29VSPx0OQT16Gtx7WKiVFjpdf2MNfTjHj1xlzo1+2n1A/s/MSAKN?=
 =?iso-8859-1?Q?cjf09YwvpEM3feDaSzcqyCxRJPLaJo+Vbc//39520JoJDsxalOWiOfJ8vI?=
 =?iso-8859-1?Q?mpF8HuYX91s7mjo/qtl9eDwR90UpQZrVtaz7huImqBETfSKjVCdVVN+PJh?=
 =?iso-8859-1?Q?lW+yEBEFo4MAkEeP7OMZ+Er0CuxquXMNH4q7k1v7yulT7bMVkLLX06jEZF?=
 =?iso-8859-1?Q?H9bI6/AKea1+2OXM0dtnCG0tQ9sRoFSHD9WxQd+npagWvOQSMl/hvNqnWm?=
 =?iso-8859-1?Q?KsHUOdQFnVh9eRtQPn+PJxwlPi7/uKBTHcaDl/CJmExV7JXN8XBF88J1dE?=
 =?iso-8859-1?Q?6+NtcdqPvkzPqcKmcjXJ4ynabJ+VmLs=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: 4d4f8e32-550c-467a-1a23-08de6af43637
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2026 11:37:04.6804
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: fgnW42zm1c5rxDMBuiGTXvPpyYX1N0Mj+SjZtGFiSnZwjL30WFnC6pjda2nY8V7JRJC4cKZQwa+yoOITF/5sadn9K4EwYIgCukk8/P8g3L0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7615

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>
---



 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/sm=
ccc.h
index 441b3ab65d..478444fb09 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)
=20
 /* 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)
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:37:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:37:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230654.1536089 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrU1-0001lb-4E; Fri, 13 Feb 2026 11:37:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230654.1536089; Fri, 13 Feb 2026 11: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 1vqrU0-0001kK-U7; Fri, 13 Feb 2026 11:37:12 +0000
Received: by outflank-mailman (input) for mailman id 1230654;
 Fri, 13 Feb 2026 11: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=VfN9=AR=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqrTz-0001fQ-Ae
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:37:11 +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 554375af-08d0-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:37:10 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7615.eurprd03.prod.outlook.com (2603:10a6:10:2ce::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 11:37:04 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 11:37: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: 554375af-08d0-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CtoAtA6AVijymU+WF001OO3yF/SDoc1A66RYels80qeBwMIh0x1cocukhGymbcvjt0RVsHIH2+ZaJtD6Mh/b4eZEZXbrWWYMSKxGUSxmNlblzLzQzDVMfeOLz8+LuhY8HKP6bn/14y6JDrYO51NhwD3LtOHoJx6CbE3K4evg4QnYtJU9t3nLpS72gNN1sFAYKaI44J5h4T/SWondG8pCGiL1z4qW7anXt9l8fsp3IU8jlGdhsIMb/W0wDlBvS8l7vaqTUC/cXThXXp24f/s8pEI1uEKGJz7EJxLRTDmCsfrhpSv1KcQVQKt1+J31OC8CyLJxCom4Um+Z4ARuo3wYFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AHHC4jhvIy6Y9whlTxyWjCSp6TQ9f9eO1zm1Hl0A3OI=;
 b=JzIYEUKhCGwaCSUPpoot1PmupqUxOMHl7DIc4aYWrapQJG2xowVTtiAOw01hzxbZfI5s4mHCI7h7QHi2jlcwB3JnyGb/MsyIShZHbqXtBcYlWPiI62too5JE8M68aFxsPTeebPw6e8u0nHaYh+JdntP89Y5a/D1feS2VyQ6FTlJEBcaR3GxKzcWIV6qKNxnIIK5mLVr8uhK0KxvKB/w3IyB7CCfduMp1tQj8KUbFpWjsrzzsLvVGyLD/tvfMQa76bce4CN7JzV+Pc4ckChF1dIf5YKjJkQTY6YcNryPyCUZUk2VTCZ/fHBGDHyWAKTSCrj1LKYF/UrJhBp2FH+p8vQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AHHC4jhvIy6Y9whlTxyWjCSp6TQ9f9eO1zm1Hl0A3OI=;
 b=tDpECrjQNTg2UCYnO3PeV9s0To1CRL9MFZyGLke+u82trKUZUMetPr9I9aY5dt9ckxK0Zt1i1Xl9BKPsz24yKOnOev9Rdz9BBj14BWXy7VfF7dk0nL35TkczuHSxLwUSWbYWZ2/dNiXhFRizhzLHi9KOWRXrvDzDxm5jvmiiXxwge8yRsG2YDZkuadOpmRRR78c4/1gi0loV4qSuKvo9ISCnRMSno+wGBw4AZwO3aSI9T0t6ftt9VHKPTrnYoLCTRxtSHaCZqcjvtmN2D2GrPNLkpraKZ66E3K3fRUZUoLNmnZK7eEJ5mv0E41kFk8XP1DlV9WsBcNyJSDIpAuX+tw==
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>, =?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: [PATCH v10 1/6] xen/domctl: chain SCI handling before IOMMU in
 assign_device domctl
Thread-Topic: [PATCH v10 1/6] xen/domctl: chain SCI handling before IOMMU in
 assign_device domctl
Thread-Index: AQHcnN0TIpWAusmvHEWrF5RBUFLqUw==
Date: Fri, 13 Feb 2026 11:37:04 +0000
Message-ID:
 <53251361b05028f4875d4fccec7270749786c54b.1770982468.git.oleksii_moisieiev@epam.com>
References: <cover.1770982468.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1770982468.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_|DB9PR03MB7615:EE_
x-ms-office365-filtering-correlation-id: f9287d71-ecb5-4f7b-f0f5-08de6af4360b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?VzZuSzdqQUdHMk5NNDlLU2NNYjZpVEV2SlF5ckExdlJEczF3RGI0WVM5Wko4?=
 =?utf-8?B?YVdJMzJrL2lBSkhnVWJsY0tCZU1RamEwM3pOYlBsekhiYkhiOG9aaStPUkRV?=
 =?utf-8?B?TkNnWjZIYXg1b2hYeG1UMkxyekt6UTNwaXYrVFhtaFQxeUx6SFJjcCtHdWJ1?=
 =?utf-8?B?YkNUbGdrL0NqaUFJWXNsSllYbVlIcmJtbUpwWEVoTHRSUnZESjZQZ3pmVWt1?=
 =?utf-8?B?bzEvaHcvdDFBM0lXeGVIc1FHQjVpcWErQmJ2Q1dwTmhucUVoS0tlZUJhMS9Z?=
 =?utf-8?B?ZU1SUk15cjNFWWtxb0diOVpsZVNsOFQ0bWovekFZQ28rUndZbHNFYzZ2L1hB?=
 =?utf-8?B?R3cvSnEzODdudFZoaUk4NEVXZzBISldxS1h1Y1hnZkpjandDYjRycHpOL081?=
 =?utf-8?B?bVZzbUZ1T1psZExYdHh4ZmhuK0NTWjREQjVsbU5BNVljdmpuM1Q2K1RHeW9T?=
 =?utf-8?B?cDNvNUZXU01zemNxYzJISFdsMHRmWXVkTHRHUTlCRG5ReC9LMDI5aExpSHB1?=
 =?utf-8?B?VVBZR3NYY08xVytnNlRUQ05sQy9oMGYzeUlTR1ZxOEN3eHRmSUxDVnBuWnUz?=
 =?utf-8?B?SnpSTmwvR1FnbDNNTlFPVUtxdzZ5K2tyc3c2SXdIV0NjSmkybUN5eEZhVXNp?=
 =?utf-8?B?L0ZZL1pMTS9LVnRwS0NJelExMlU4T2xxYy9nK0lSWVl5L3VVV0tUUDVHTTNv?=
 =?utf-8?B?T3lqdURSZUdkQjRySDRkYUl6cElFdHRNSHpnUEloV2xWU1NXRGhJSTQ1RDdG?=
 =?utf-8?B?OGgzOG5TSjkvQlJzS2lna0xTbDVvQmxkd2xZSHZnZVd4Zit1RHJTQ2tHbXd0?=
 =?utf-8?B?OGhqdXZRWlF4V3llQ291VC9Od2lxUWJuUkovaURFa3RySW9KVzVqRnlNOUgz?=
 =?utf-8?B?WHU3STVuZzhIZE1JeE5PTlpPLytBSFZFYzliZ3lWL3JDOG1QMlVkWlVQTGtI?=
 =?utf-8?B?NURmVG1jY2lPV1BNWXVjVlFDaVVPZ1lJNUJTSnJETTUveE9rOEJRN0F0bEpE?=
 =?utf-8?B?d1pLd1VUdWRMR0lOcHFJZ2R4ekJtcXIvNUVuZGV5SFBZRlNkWWpKT3dRQkZx?=
 =?utf-8?B?MlNkaDEzR0F5ZjRvVFQwbFY2aHB4RzM1YUV3b1Zrdy9WWXJLSHBZanBCbnI3?=
 =?utf-8?B?b0ZWNTJoakxibHg5UW5OazBtYm56cDd4TzVMQlJqbWVEaUFDd1J3a3N0cUxp?=
 =?utf-8?B?bFVWcmFFMTROTDB3WTdhTStvdHpMYS9Lejl1RVN6a0dUVFdIelB1ZE5QRlRH?=
 =?utf-8?B?Y045TmRZS1dWck1QTTZQd3MydnpEOEFjWGJzdUpCemhxZGJaVlMvdFpTdVZh?=
 =?utf-8?B?eTJQSlVMVTlXR0pBYXFuZ3FoTHZYUG54dzNPcTV3dmtSQXJMRnhHMTd5YWh3?=
 =?utf-8?B?ZGk3L1Y5ckxlaHBiZ05RZXBBRVJSNFhtVG5IMnByb0Nsck12Nm1uR3lUZDNX?=
 =?utf-8?B?dDE2Sms3aFAxN0hRWGRPNG0zUm9DbmZRQm9sMTVyR0JkeHJyMExidllsbzhz?=
 =?utf-8?B?VWdESGVYcXphTFlOOGJHMEdCczNVaG13ZXdJS05jVzNnSldwRWIrY1RSRTE5?=
 =?utf-8?B?N3FBc05QNzcyUWxtcnBmajJVTWgwUHVEMkthSG9jeDFudTNQRmhOVExFajl2?=
 =?utf-8?B?dHQwa0pWOG1SaXo5dURmRVdRbUhsVU4xV29Wc0NBZ1VKZWt5WG5oVGpSVjJT?=
 =?utf-8?B?ZWU5bEpScVNwUk01WEZWazJpNlNYK2RaZU1XaG1iYUl5TlVSL3A1OG5jMVVr?=
 =?utf-8?B?V1NUN0hVK3VsUlhMeWYzZ1NnRzVBWFFQbEM0dHdaWlZSYkdWSlkrTVRCVE95?=
 =?utf-8?B?MzA1c1R0aEwwY1RRSXNhR3FhQklacU01ZUw4NDIvNEl0cUpkdVAyNmExOERV?=
 =?utf-8?B?U3ZvbVNJUUIxOU9DUy9BU0lRbjlqcU1IMWhRQjU2djNnc1hKNk9aakZaQnhI?=
 =?utf-8?B?NkNrcU5XQUxxRmV6anBYTmRuckdjM3c1OTl6ZFpCUXF0am1Pbm5ERWUwRVBH?=
 =?utf-8?B?bWVYQjJ1UG5xTGY2U3FaSnNVREtRa3hEZFN3amhWWDNsUWtYeDhZWG5JdTZ6?=
 =?utf-8?B?Nmp4TXd3QlRsME9UbmxLNGczYVQreW9ucTc2bzkxYWUzUzdFbnQ3UmRmSWJu?=
 =?utf-8?B?SzhaM0ZrV1U4Ylg0bzRMMGlsWGU2K3ZXeTdWc05oR1pHb09uekVYVERzcmZk?=
 =?utf-8?Q?LMuAw2jhlB6Nx5fs6gqii/E=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)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MjBHVlU0ZzE1dFFBSURlNlVoVGd1a09pMkVjZ1pDdFVRcGwwZWE5bVU2Q3FV?=
 =?utf-8?B?YjA3TnU1bGtHRWRUa1pNMi96RFB4d3BFMkFKeG1qOWo4R00xQy9mY25zMnVI?=
 =?utf-8?B?SUJ4SHVSYlBlK1VPdFR2S1dML2dRQnZwelduajFCcVUzNE15Y0hMVWk3REFR?=
 =?utf-8?B?OXRucnE1OE5BN1hrdU1Ba3plNEQrZXB0aER4cmZFc0xSQnRyT2QzdkN1dnNz?=
 =?utf-8?B?d3REbE1yOGRkMmM1eGxRdkJyTW9KQnVaVE5uejJ5TWhRTGhuaEpETWhIRmIz?=
 =?utf-8?B?Rlg1RURHMkx3SWxmd3FjZFdPUTFFNStwQzN0Y2haYlNNRnVJVmQ3eW5KbWk5?=
 =?utf-8?B?TG5Hc0dRT2g4SVJOSURKdEpTQ3k4WjVxL1grd1UrR0RjOFBhaDBBNE9CWGdy?=
 =?utf-8?B?VmQzMjZvck8yb2t6SWpiN1VQRis5L1R1cW92c2tpYUdHL3BxZVp1a3M1OFJX?=
 =?utf-8?B?M1VuKzlEcmt5NzM4c3VzaEhUWGI0VTI1U0FuQWNKdVZ2eVp0UzlPSFJYVi9W?=
 =?utf-8?B?T1hISzJQWWo0VFY1eFoyakpscGRhejFOcDNJL3VNNC9LUDFqeEFEc2M3c0NZ?=
 =?utf-8?B?N3ZnODZoTC9MTmswd3I1Yjd1OWJJKzZ2WHVSVGhwSmlES1dwTUZXcEpIZGN6?=
 =?utf-8?B?RFZNd3JFTkZuTEJYOGxDZVpicW1BeW14NFBLT0VZNTVnNjJKSERPbjdmenVp?=
 =?utf-8?B?bHcrZzZxTmt4ZjNWemtnY2t2aytTdDN4K1p2SVQxUkE3NGRwU0U4ZHJ1UTk3?=
 =?utf-8?B?Q1JIUEJwaWt3eTk3YlEwVk40V3o1ckRGMlBPU2YzdldsQVJvcFhJQWZpalRn?=
 =?utf-8?B?NUEyV3NMckRKZG1yTEd0ZFVYQ2g4NDZQWWMweUJxb3hJSzRkQ2lRK1RYS2RH?=
 =?utf-8?B?eWEvcGVXZDRvc2FLcFVlSzNJVTJmbmFNVzlSTjkzNFFHbEt1UmdSc0JQQ2pk?=
 =?utf-8?B?WTFnN2hiRWRsVVhrZEwvTk1pNTI4ODJFaHRWemNmQU8wbkVzcERPbTQvZTIx?=
 =?utf-8?B?YWxYZGRSd3Iydm9XcVE0NDhrRzlKNHhDR3ZiencwL2lVcllVRWo2NUNHamx5?=
 =?utf-8?B?djE4MTZkMG9qNXZlakVkZXYvb1NldjJyTDJsNzdpT042OVZDcWo4MklhUHhp?=
 =?utf-8?B?eGwrcTVCNXErdHV3WGFPNEQ5ZE01eTFNcFdlRTlOQTM5UnhwTUxaTVV4c2Y4?=
 =?utf-8?B?RjA1VWtIbytvaVNvSWhaRnJCNUhkcStzZWZyK0pLQlF2N0pmaTFUdlBXWHJz?=
 =?utf-8?B?bHVjeENGUnZVVHlCUldva2VCQWsyTTB3REZVYk91UHBnaERUdDRrOGxacmxq?=
 =?utf-8?B?YS9jQjFhME4xOEsvMGxPZHZTeVBLRG9kc0JnR0JEdVFkK013bTJPOENTc1I0?=
 =?utf-8?B?clRSdkRTOEEwTksxVDRwME9Nc1RYSjYzUVJHOVliUzlWT0lHdkJIemRWM3FZ?=
 =?utf-8?B?aDJFOXBJTDAvTHc3Yy9tQjNVbXhidFBadmM1bVczNFZ6YVpoSUE0MzdnL1M2?=
 =?utf-8?B?SXJuVHgvNFJ6SUFVTGNseWtURlhycldCUGF4ak1ONXZxSlZ3b2M5VFpwR05n?=
 =?utf-8?B?dVkza0lpbUt3ZlJhU0dPaXlHaEJKR1BiUzJXMjg4cVIyR2FQR3NTTVhqSy9i?=
 =?utf-8?B?MWI5V1F6Rmd0L3dlQ3FaYTVGaVltZlFvdWN6bTNqdkMxVkVCbmVZRHZFSEFK?=
 =?utf-8?B?R1dEMUVaempFUjJmZ3JTYnQwbmx4QlVrSWFsdGlVRXM1eEliakpLVmVTSWZ3?=
 =?utf-8?B?ODNLMzRpaCtIREwzanMzS2NSM3lidEJ6RnVOU3MxOTZrK0Y1cWdLSkRYTndG?=
 =?utf-8?B?cVl1bk1KTTBTWUVQa1hGR0cyUWYyUWhVZk1DQTljZzllREJmS3NBRlE3RmdV?=
 =?utf-8?B?cEIxelRiN3FoMDhDV0hyTmZiWkVhNm9VejdLTndORkNhTWRIelBrM2NSZVVJ?=
 =?utf-8?B?UE1YdUZGdkRqYjFNMExEbkxQbnpvQ2wvUmpGekJmam5XVjlwejVEVHJMNVls?=
 =?utf-8?B?TEM3UGJ6SWEzSXY4Wk02WitnZGV0VDVnL2s4MnhzWDB1V2UrdFRZUXpkc1k0?=
 =?utf-8?B?VUJtVmZPckdXbXhaZnJaU2VmTkEzanJSK2NmRCsveU9hRmFwQk9lZnJmZFNO?=
 =?utf-8?B?dzlsRUc3dVRtdUcvdks1SVhYdlVjVWRPN2tNcjhjWGlhMStkMjlXWks3QUhP?=
 =?utf-8?B?VThtdGZyVERLNjNNSndvQXc0bldDbTRMa0c2L01BSDRhRTB1Z2lhY0pvbC93?=
 =?utf-8?B?dUpjOU5KZ3lVUXF4WG1JcThHVnpaNEtWdUlGWnRrRjdPejhyRW5OenVMN1lE?=
 =?utf-8?B?b2FBRnc0Nm96UnlZNmpTNUhyOFpYZWF2RGZRK0dKUGJIRms5NTRZbjQ5b2g0?=
 =?utf-8?Q?agqoOl7bYoiKrBBw=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <D9BBD3384404AA43AE1FD3AB161F0FA7@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: f9287d71-ecb5-4f7b-f0f5-08de6af4360b
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2026 11:37:04.3351
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: y8r7uuW8qp30Of2Fv9GluYbFasGv0J06NTG35LZ2lfJZ836JWCBHmdj4hwTEE6UsETj9WvEX1Hd1Td6U9oJpQuneoFho9pU7gkF9+XdOIEc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7615

RnJvbTogR3J5Z29yaWkgU3RyYXNoa28gPGdyeWdvcmlpX3N0cmFzaGtvQGVwYW0uY29tPg0KDQpB
ZGQgY2hhaW5lZCBoYW5kbGluZyBvZiBhc3NpZ25lZCBEVCBkZXZpY2VzIHRvIHN1cHBvcnQgYWNj
ZXNzLWNvbnRyb2xsZXINCmZ1bmN0aW9uYWxpdHkgdGhyb3VnaCBTQ0kgZnJhbWV3b3JrLCBzbyBh
IERUIGRldmljZSBhc3NpZ24gcmVxdWVzdCBjYW4gYmUNCnBhc3NlZCB0byBmaXJtd2FyZSBmb3Ig
cHJvY2Vzc2luZyBhbmQgZW5hYmxpbmcgVk0gYWNjZXNzIHRvIHRoZSByZXF1ZXN0ZWQNCmRldmlj
ZSAoZm9yIGV4YW1wbGUsIGRldmljZSBwb3dlciBtYW5hZ2VtZW50IHRocm91Z2ggU0NNSSkuDQoN
ClRoZSBTQ0kgYWNjZXNzLWNvbnRyb2xsZXIgRFQgZGV2aWNlIHByb2Nlc3NpbmcgaXMgY2FsbGVk
IGJlZm9yZSB0aGUgSU9NTVUNCnBhdGguIEl0IHJ1bnMgZm9yIGFueSBEVC1kZXNjcmliZWQgZGV2
aWNlIChwcm90ZWN0ZWQgb3Igbm90LCBhbmQgZXZlbiB3aGVuDQp0aGUgSU9NTVUgaXMgZGlzYWJs
ZWQpLiBUaGUgSU9NTVUgcGF0aCByZW1haW5zIHVuY2hhbmdlZCBmb3IgUENJIGRldmljZXM7DQpv
bmx5IHRoZSBEVCBwYXRoIGlzIHJlbGF4ZWQgdG8gcGVybWl0IG5vbi1JT01NVSBkZXZpY2VzLg0K
DQpUaGlzIGxldHMgeGwuY2ZnOiJkdGRldiIgbGlzdCBib3RoIElPTU1VLXByb3RlY3RlZCBhbmQg
bm9uLXByb3RlY3RlZCBEVA0KZGV2aWNlczoNCg0KZHRkZXYgPSBbDQogICAgIi9zb2MvdmlkZW9A
ZTZlZjAwMDAiLCA8LSBJT01NVSBwcm90ZWN0ZWQgZGV2aWNlDQogICAgIi9zb2MvaTJjQGU2NTA4
MDAwIiwgPC0gbm90IElPTU1VIHByb3RlY3RlZCBkZXZpY2UNCl0NCg0KVGhlIGNoYW5nZSBpcyBk
b25lIGluIHR3byBwYXJ0czoNCjEpIGNhbGwgc2NpX2RvX2RvbWN0bCgpIGluIGRvX2RvbWN0bCgp
IGJlZm9yZSBJT01NVSBwcm9jZXNzaW5nLiBJZg0Kc2NpX2RvX2RvbWN0bCgpIHJlcG9ydHMgYW4g
ZXJyb3Igb3RoZXIgdGhhbiAtRU5YSU8sIHRyZWF0IGl0IGFzDQphdXRob3JpdGF0aXZlIGFuZCBz
a2lwIHRoZSBJT01NVSBwYXRoLiBBIHJldHVybiBvZiAtRU5YSU8gaW5kaWNhdGVzDQp0aGF0IFND
SSBkaWQgbm90IGhhbmRsZSB0aGUgcmVxdWVzdCBhbmQgaXMgaWdub3JlZCwgYWxsb3dpbmcgdGhl
DQpleGlzdGluZyBJT01NVSBoYW5kbGluZyB0byBydW4gdW5jaGFuZ2VkOw0KMikgdXBkYXRlIGlv
bW11X2RvX2R0X2RvbWN0bCgpIHRvIGNoZWNrIGZvciBkdF9kZXZpY2VfaXNfcHJvdGVjdGVkKCkg
YW5kDQpub3QgZmFpbCBpZiBEVCBkZXZpY2UgaXMgbm90IHByb3RlY3RlZCBieSBJT01NVS4gaW9t
bXVfZG9fcGNpX2RvbWN0bA0KZG9lc24ndCBuZWVkIHRvIGJlIHVwZGF0ZWQgYmVjYXVzZSBpb21t
dV9kb19kb21jdGwgZmlyc3QgdHJpZXMNCmlvbW11X2RvX3BjaV9kb21jdGwgKHdoZW4gQ09ORklH
X0hBU19QQ0kpIGFuZCBmYWxscyBiYWNrIHRvDQppb21tdV9kb19kdF9kb21jdGwgb25seSBpZiBQ
Q0kgcmV0dXJucyAtRU5PREVWLg0KDQpUaGUgbmV3IGR0X2RldmljZV9pc19wcm90ZWN0ZWQoKSBi
eXBhc3MgaW4gaW9tbXVfZG9fZHRfZG9tY3RsIG9ubHkNCmFwcGxpZXMgdG8gRFQtZGVzY3JpYmVk
IGRldmljZXM7IFNDSSBwYXJhbWV0ZXJzIGFyZSBjYXJyaWVkIHZpYSBEVA0Kbm9kZXMuIFBDSSBk
ZXZpY2VzIGhhbmRsZWQgYnkgaW9tbXVfZG9fcGNpX2RvbWN0bCBkbyBub3QgY2FycnkgRFQvU0NJ
DQptZXRhZGF0YSBpbiB0aGlzIHBhdGgsIHNvIHRoZXJlIGlzIG5vIG5vdGlvbiBvZiDigJxTQ0kg
cGFyYW1ldGVycyBvbiBhDQpub24tSU9NTVUtcHJvdGVjdGVkIFBDSSBkZXZpY2XigJ0gZm9yIGl0
IHRvIGludGVycHJldCBvciB0byBza2lwLiBUaGUgUENJDQpwYXRoIHNob3VsZCBjb250aW51ZSB0
byByZXBvcnQgZXJyb3JzIGlmIGFzc2lnbm1lbnQgY2Fubm90IGJlIHBlcmZvcm1lZA0KYnkgdGhl
IElPTU1VIGxheWVyLiBTbyB3ZSBzaG91bGQgbGVhdmUgaW9tbXVfZG9fcGNpX2RvbWN0bCB1bmNo
YW5nZWQ7IHRoZQ0KU0NJL0RULXNwZWNpZmljIHJlbGF4YXRpb25zIGJlbG9uZyBvbmx5IGluIHRo
ZSBEVCBwYXRoLiBBbHNvIFNDSSBoYW5kbGluZw0Kb25seSBleGlzdHMgd2hlbiBEVCBpcyBwcmVz
ZW50Lg0KDQpTaWduZWQtb2ZmLWJ5OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWlfc3RyYXNo
a29AZXBhbS5jb20+DQpTaWduZWQtb2ZmLWJ5OiBPbGVrc2lpIE1vaXNpZWlldiA8b2xla3NpaV9t
b2lzaWVpZXZAZXBhbS5jb20+DQotLS0NCg0KQ2hhbmdlcyBpbiB2MTA6DQotIHJlbW92ZSB1bnVz
ZWQgc2NpX2RvX2RvbWN0bCBzdHViIGZyb20gc2NpLmgNCg0KQ2hhbmdlcyBpbiB2OToNCi0gdHJl
YXQgU0NJIGFzIGEgZ2F0ZSBmb3IgWEVOX0RPTUNUTF8qYXNzaWduX2RldmljZTogYWJvcnQgYmVm
b3JlDQpJT01NVSBpZiBzY2lfZG9fZG9tY3RsKCkgcmV0dXJucyBhbiBlcnJvciBvdGhlciB0aGFu
IC1FTlhJTywgaW5zdGVhZA0Kb2YgdHJ5aW5nIHRvIHByb3BhZ2F0ZSBTQ0kgZXJyb3JzIGFmdGVy
IGEgc3VjY2Vzc2Z1bCBJT01NVQ0Kb3BlcmF0aW9uLiBUaGlzIGF2b2lkcyBwYXJ0aWFsIHN1Y2Nl
c3MgYW5kIHRoZSBuZWVkIGZvciBJT01NVSByb2xsYmFjay4NCi0gcmVtb3ZlIGVhcmx5IHJldHVy
biBmcm9tIGRvX2RvbWN0bCgpIGluIHRoZSBhc3NpZ25fZGV2aWNlDQpwYXRoIHRvIGtlZXAgUkNV
IGhhbmRsaW5nIGludGFjdC4NCi0gY2hhbmdlIElTX0VOQUJMRUQoKikgdG8gI2lmZGVmIGluIHNj
aV9kb19kb21jdGwgcXVhcmQNCg0KQ2hhbmdlcyBpbiB2ODoNCi0gY2hlY2sgZm9yIENPTkZJR19B
Uk1fU0NJIHRvIGJlIGViYWJsZWQgaW5zdGVhZCBvZiBDT01GSUdfQVJNIGJlZm9yZQ0KY2FsbGlu
ZyBzY2lfZG9fZG9tY3RsDQotIHJld29yayBzY2lfZG9fZG9tY3RsIGNhbGwgdG8gYXZvaWQgZXh0
cmEgY2hlY2tzLCBpbXByb3ZlZCBlcnJvcg0KaGFuZGxpbmcuDQotIGRvIG5vdCBwcm9wYWdhdGUg
cmV0MSBpZiBzY2lfZG9fZG9tY3RsIHJldHVybmVkIHBvc2l0aXZlIHJldA0KLSB1cGRhdGVkIGNv
bW1lbnQgaW4gZG9tY3RsLmMgY29kZQ0KDQpDaGFuZ2VzIGluIHY3Og0KLSB1cGRhdGUgZG9tY3Rs
IHRvIGJ1aWxkIG9uIGJvdGggQXJtIGFuZCB4ODYgcGxhdGZvcm1zDQotIG1vdmUgcmV0MSBkZWNs
YXJhdGlvbiB0byB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbiBhcyByZXF1aXJlZCBieSBjb2RlDQpz
dHlsZQ0KDQpDaGFuZ2VzIGluIHY2Og0KLSBjaGFuZ2UgaW9tbXVfZG9fZG9tY3RsIGFuZCBzY2lf
ZG9fZG9tY3RsIGNvbW1hbmQgb3JkZXIgYW5kDQpjYWxsIHNjaV9kb19kb21jdGwgZmlyc3Qgd2hp
Y2ggd2lsbCBwcm9kdWNlIGNsZWFuZXIgY29kZSBwYXRoLg0KQWxzbyBkcm9wcGVkIGNoYW5naW5n
IHJldHVybiBjb2RlIHdoZW4gaW9tbXUgd2FzIGRpc2FibGVkIGluDQppb21tdV9kb19kb21jdGwu
DQoNCkNoYW5nZXMgaW4gdjU6DQotIHJldHVybiAtRUlOVkFMIGlmIG1lZGlhdG9yIHdpdGhvdXQg
YXNzaWduX2R0X2RldmljZSB3YXMgcHJvdmlkZWQNCi0gaW52ZXJ0IHJldHVybiBjb2RlIGNoZWNr
IGZvciBpb21tdV9kb19kb21jdGwgaW4NClhFTl9ET01DVExfYXNzaWduX2RldmljZSBkb21jdGwg
cHJvY2Vzc2luZyB0byBtYWtlIGNsZWFuZXIgY29kZQ0KLSBjaGFuZ2UgLUVOT1RTVVBQIGVycm9y
IGNvZGUgdG8gLUVOWElPIGluIHNjaV9kb19kb21jdGwNCi0gaGFuZGxlIC1FTlhJTyByZXR1cm4g
Y29tZGUgb2YgaW9tbXVfZG9fZG9tY3RsDQotIGxlYXZlICFkdF9kZXZpY2VfaXNfcHJvdGVjdGVk
IGNoZWNrIGluIGlvbW11X2RvX2R0X2RvbWN0bCB0byBtYWtlDQpjb2RlIHdvcmsgdGhlIHNhbWUg
d2F5IGl0J3MgZG9uZSBpbiAiaGFuZGxlX2RldmljZSIgY2FsbCB3aGlsZQ0KY3JlYXRpbmcgaHdk
b20oZG9tMCkgYW5kICJoYW5kbGVfcGFzc3Rocm91Z2hfcHJvcCIgY2FsbCBmb3IgZG9tMGxlc3MN
CmNyZWF0aW9uDQotIGRyb3AgcmV0dXJuIGNoZWNrIGZyb20gc2NpX2Fzc2lnbl9kdF9kZXZpY2Ug
Y2FsbCBhcyBub3QgbmVlZGVkDQotIGRvIG5vdCByZXR1cm4gRUlOVkFMIHdoZW4gYWRkaWduX2R0
X2RldmljZSBpcyBub3Qgc2V0LiBUaGF0IGlzDQpiZWNhdXNlIHRoaXMgY2FsbGJhY2sgaXMgb3B0
aW9uYWwgYW5kIG5vdCBpbXBsZW1lbnRlZCBpbiBzaW5nbGUtYWdlbnQgZHJpdmVyDQoNCiB4ZW4v
YXJjaC9hcm0vZmlybXdhcmUvc2NpLmMgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysr
KysrKysrKysrDQogeGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oIHwgIDgg
KysrKysrDQogeGVuL2NvbW1vbi9kb21jdGwuYyAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysr
KysrKysrKysNCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9kZXZpY2VfdHJlZS5jICAgfCAgNiAr
KysrKw0KIDQgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0tZ2l0IGEv
eGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjaS5jIGIveGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjaS5j
DQppbmRleCBhYTkzY2RhN2YwLi5hNmM2NDdhMDlkIDEwMDY0NA0KLS0tIGEveGVuL2FyY2gvYXJt
L2Zpcm13YXJlL3NjaS5jDQorKysgYi94ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NpLmMNCkBAIC0x
MjYsNiArMTI2LDQyIEBAIGludCBzY2lfYXNzaWduX2R0X2RldmljZShzdHJ1Y3QgZG9tYWluICpk
LCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldikNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KK2lu
dCBzY2lfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICpkb21jdGwsIHN0cnVjdCBkb21haW4g
KmQsDQorICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3Rs
X3QpIHVfZG9tY3RsKQ0KK3sNCisgICAgc3RydWN0IGR0X2RldmljZV9ub2RlICpkZXY7DQorICAg
IGludCByZXQgPSAwOw0KKw0KKyAgICBzd2l0Y2ggKCBkb21jdGwtPmNtZCApDQorICAgIHsNCisg
ICAgY2FzZSBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2U6DQorICAgICAgICByZXQgPSAtRU5YSU87
DQorICAgICAgICBpZiAoIGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLmRldiAhPSBYRU5fRE9NQ1RM
X0RFVl9EVCApDQorICAgICAgICAgICAgYnJlYWs7DQorDQorICAgICAgICBpZiAoICFjdXJfbWVk
aWF0b3IgKQ0KKyAgICAgICAgICAgIGJyZWFrOw0KKw0KKyAgICAgICAgaWYgKCAhY3VyX21lZGlh
dG9yLT5hc3NpZ25fZHRfZGV2aWNlICkNCisgICAgICAgICAgICBicmVhazsNCisNCisgICAgICAg
IHJldCA9IGR0X2ZpbmRfbm9kZV9ieV9ncGF0aChkb21jdGwtPnUuYXNzaWduX2RldmljZS51LmR0
LnBhdGgsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LmFz
c2lnbl9kZXZpY2UudS5kdC5zaXplLCAmZGV2KTsNCisgICAgICAgIGlmICggcmV0ICkNCisgICAg
ICAgICAgICByZXR1cm4gcmV0Ow0KKw0KKyAgICAgICAgcmV0ID0gc2NpX2Fzc2lnbl9kdF9kZXZp
Y2UoZCwgZGV2KTsNCisNCisgICAgICAgIGJyZWFrOw0KKw0KKyAgICBkZWZhdWx0Og0KKyAgICAg
ICAgLyogZG8gbm90IGZhaWwgaGVyZSBhcyBjYWxsIGlzIGNoYWluZWQgd2l0aCBpb21tdSBoYW5k
bGluZyAqLw0KKyAgICAgICAgYnJlYWs7DQorICAgIH0NCisNCisgICAgcmV0dXJuIHJldDsNCit9
DQorDQogc3RhdGljIGludCBfX2luaXQgc2NpX2luaXQodm9pZCkNCiB7DQogICAgIHN0cnVjdCBk
dF9kZXZpY2Vfbm9kZSAqbnA7DQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNt
L2Zpcm13YXJlL3NjaS5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5o
DQppbmRleCAzNTAwMjE2YmMyLi41ZWU1YTE2Njc0IDEwMDY0NA0KLS0tIGEveGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL2Zpcm13YXJlL3NjaS5oDQorKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9h
c20vZmlybXdhcmUvc2NpLmgNCkBAIC0xNDYsNiArMTQ2LDE0IEBAIGludCBzY2lfZHRfZmluYWxp
emUoc3RydWN0IGRvbWFpbiAqZCwgdm9pZCAqZmR0KTsNCiAgKiBjb250cm9sIiBmdW5jdGlvbmFs
aXR5Lg0KICAqLw0KIGludCBzY2lfYXNzaWduX2R0X2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCBz
dHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldik7DQorDQorLyoNCisgKiBTQ0kgZG9tY3RsIGhhbmRs
ZXINCisgKg0KKyAqIE9ubHkgWEVOX0RPTUNUTF9hc3NpZ25fZGV2aWNlIGlzIGhhbmRsZWQgZm9y
IG5vdy4NCisgKi8NCitpbnQgc2NpX2RvX2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0bCAqZG9tY3Rs
LCBzdHJ1Y3QgZG9tYWluICpkLA0KKyAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVf
UEFSQU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCk7DQogI2Vsc2UNCiANCiBzdGF0aWMgaW5saW5l
IGJvb2wgc2NpX2RvbWFpbl9pc19lbmFibGVkKHN0cnVjdCBkb21haW4gKmQpDQpkaWZmIC0tZ2l0
IGEveGVuL2NvbW1vbi9kb21jdGwuYyBiL3hlbi9jb21tb24vZG9tY3RsLmMNCmluZGV4IDI5YTc3
MjZkMzIuLmIzZDEzODExODIgMTAwNjQ0DQotLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jDQorKysg
Yi94ZW4vY29tbW9uL2RvbWN0bC5jDQpAQCAtMjksNiArMjksOSBAQA0KICNpbmNsdWRlIDx4ZW4v
eHZtYWxsb2MuaD4NCiANCiAjaW5jbHVkZSA8YXNtL2N1cnJlbnQuaD4NCisjaWZkZWYgQ09ORklH
X0FSTQ0KKyNpbmNsdWRlIDxhc20vZmlybXdhcmUvc2NpLmg+DQorI2VuZGlmDQogI2luY2x1ZGUg
PGFzbS9pcnEuaD4NCiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4NCiAjaW5jbHVkZSA8YXNtL3AybS5o
Pg0KQEAgLTgzMyw2ICs4MzYsMTggQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9Q
QVJBTSh4ZW5fZG9tY3RsX3QpIHVfZG9tY3RsKQ0KICAgICBjYXNlIFhFTl9ET01DVExfdGVzdF9h
c3NpZ25fZGV2aWNlOg0KICAgICBjYXNlIFhFTl9ET01DVExfZGVhc3NpZ25fZGV2aWNlOg0KICAg
ICBjYXNlIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cDoNCisgICAgICAgIC8qDQorICAgICAg
ICAgKiBDaGFpbiBTQ0kgRFQgaGFuZGxpbmcgYWhlYWQgb2YgdGhlIElPTU1VIHBhdGggc28gYW4g
U0NJIG1lZGlhdG9yDQorICAgICAgICAgKiBjYW4gYXV0aG9yaXNlIGFjY2Vzcy1jb250cm9sbGVk
IERUIGRldmljZXMuIFVuaGFuZGxlZCBjYXNlcyByZXBvcnQNCisgICAgICAgICAqIC1FTlhJTywg
d2hpY2ggaXMgaWdub3JlZC4gQW55IG90aGVyIFNDSSBlcnJvciBhYm9ydHMgYmVmb3JlIHRoZQ0K
KyAgICAgICAgICogSU9NTVUgcGF0aCBydW5zLg0KKyAgICAgICAgICovDQorI2lmZGVmIENPTkZJ
R19BUk1fU0NJDQorICAgICAgICByZXQgPSBzY2lfZG9fZG9tY3RsKG9wLCBkLCB1X2RvbWN0bCk7
DQorICAgICAgICBpZiAoIHJldCA8IDAgJiYgcmV0ICE9IC1FTlhJTyApDQorICAgICAgICAgICAg
YnJlYWs7DQorI2VuZGlmDQorDQogICAgICAgICByZXQgPSBpb21tdV9kb19kb21jdGwob3AsIGQs
IHVfZG9tY3RsKTsNCiAgICAgICAgIGJyZWFrOw0KIA0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz
L3Bhc3N0aHJvdWdoL2RldmljZV90cmVlLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9kZXZp
Y2VfdHJlZS5jDQppbmRleCBmNTg1MGEyNjA3Li4yOWE0NGRjNzczIDEwMDY0NA0KLS0tIGEveGVu
L2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2aWNlX3RyZWUuYw0KKysrIGIveGVuL2RyaXZlcnMvcGFz
c3Rocm91Z2gvZGV2aWNlX3RyZWUuYw0KQEAgLTM3OSw2ICszNzksMTIgQEAgaW50IGlvbW11X2Rv
X2R0X2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0bCAqZG9tY3RsLCBzdHJ1Y3QgZG9tYWluICpkLA0K
ICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgfQ0KIA0KKyAgICAgICAgaWYgKCAhZHRfZGV2
aWNlX2lzX3Byb3RlY3RlZChkZXYpICkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXQgPSAw
Ow0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgfQ0KKw0KICAgICAgICAgcmV0ID0gaW9t
bXVfYXNzaWduX2R0X2RldmljZShkLCBkZXYpOw0KIA0KICAgICAgICAgaWYgKCByZXQgKQ0KLS0g
DQoyLjM0LjENCg==


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:37:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:37:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230655.1536093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrU1-0001tE-GO; Fri, 13 Feb 2026 11:37:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230655.1536093; Fri, 13 Feb 2026 11: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 1vqrU1-0001qr-Bv; Fri, 13 Feb 2026 11:37:13 +0000
Received: by outflank-mailman (input) for mailman id 1230655;
 Fri, 13 Feb 2026 11:37: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=VfN9=AR=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqrU0-0001fQ-Aw
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:37:12 +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 55a1b2fd-08d0-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:37:10 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7615.eurprd03.prod.outlook.com (2603:10a6:10:2ce::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 11:37:05 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 11:37: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: 55a1b2fd-08d0-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rGT4b/YxtDRqJIz9DUAkarqtLFmcLbigEYQ894C91LzBZhO+ujFUZRvMA21c/zfmQSs/cTzVLDixhrHUEMHV0n8DIgXel2ZWIsUDLI2XztAgkWDAv0Syk9XTYqaQAQguIxil7T22CR0vv3v5SBb8OrigNF3XD4XvuzNOt/UITCv7gOykDvytvjogGe62w1RcnEbMrat16KHkn5lJQBFpWV2Zq6XsYMOUPwp+tgvlgL2T6nenrull9x+kxVe/rs2557z1YnxxQb7EsWBPCDmrdpqk0Tb6H4MVtfc23f6QKPJzdEaF4fFnhnDGtpDRij2vzLNt+C6Yx3gKvNqwv9MNBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xjc4X3KEejC1HqIafJYoS7hCVKxcyTdjp5cOgfetpxw=;
 b=Fcc0lwXNIa+HnygHaSYtoZggHAMq6868yZ/P5yKHiWyND3pVfwqdm2q3FZJVZj+VYf9L3zOBqhiwCouaS8E0gt1EHD7q5rmG7qxrPbuBPCK7Xh2UCioI77YIE91nLAaJ97Xyu2CuBfLi8UXjnGKRZoPnKX3Gn0UXJcSQWpFBeSpnCjL2FvWX4n9nFgFeK2Qch0eP7UxKNWhC+6plg6a5M0Qqrcq5MA+tVYFv64h4J0dRxfjkDgXg1Apo0hyW4eZGbHIAhPdRdaPyYkSoYujIduYIUMyqmy7UiDsJeWXsZIK7J3juujOZvcOg1/to7C7N+f9zc11XXSrqMzRYWjVQYA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xjc4X3KEejC1HqIafJYoS7hCVKxcyTdjp5cOgfetpxw=;
 b=lETrlcnyzdqbZgyFpz3mjJZNG3xdG5qgZJI3h+mNnxMVt8KTCrnnTAoepScd6WcYkq27HGv7G487S0nQAICdq2J7EmXmTmCv4mzKoRAUZU/GP/qU3Wy+IdBWCev8PmQbVk6LNiBiDxAJMeH9KlRfpBlxDmsXnmk9M6zsXJplTeXPv/AzNXr6VB/flG9WCb795SJZQyZRojTx1NilYY09IzRS70MzVZVZ7U1YlMWN7Kyh/IH3ZfFqYucH3+W9OYUibbcAvUnTSBd2fu3AIraYxwubzc8LMmit5DvNt/Ji+B0AL73JUcgi0l6B2XxGy41iHkJBMFW0W/3VsoVsdJjKZw==
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 v10 3/6] lib/arm: Add I/O memory copy helpers
Thread-Topic: [PATCH v10 3/6] lib/arm: Add I/O memory copy helpers
Thread-Index: AQHcnN0TXj42eOktbkyLKMHKjBAoWQ==
Date: Fri, 13 Feb 2026 11:37:05 +0000
Message-ID:
 <75784317d22d50a1c41ff256e1257579a2865430.1770982468.git.oleksii_moisieiev@epam.com>
References: <cover.1770982468.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1770982468.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_|DB9PR03MB7615:EE_
x-ms-office365-filtering-correlation-id: 912e497c-f35b-4b48-98fd-08de6af4366e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?vCPeqlPmH7lABHBVBiv2fEIFV9szH61RaskRzJJf3nbrCypoZIb3eRpp7U?=
 =?iso-8859-1?Q?t5aDt0fg06HN6WMTVYCe/Gw9rKCJl+KDHZEhj3ouGWD7BeDkwvXGKE+/+k?=
 =?iso-8859-1?Q?tTTKI1UUbvof2t1LFBszjouY+IZiNaPiq0xA0EM97sy2WDcDzLQwJ2SQ3i?=
 =?iso-8859-1?Q?9S+IsIPeZIU4SEDegqfGj+0lRZC43NgA7BfUV3K/xCuv31+8K4Wg1ROimS?=
 =?iso-8859-1?Q?NI8OI5hNng57ybAuaIYuNjvXXC+uHQdIk4ndFLi7FU94JE/Aiw6vilCIyI?=
 =?iso-8859-1?Q?cxRN174b+P3g8oxZ17X/tdwWbOGck7C9xIo34ZBqdD2ryKdykL0yh6KIWC?=
 =?iso-8859-1?Q?RSGFwUuH95UNwbp50vJQ8Wu5SGNKC9xwZdXTicyucFu91lbGXI2Rvrs36W?=
 =?iso-8859-1?Q?rN+RGdjmmyQICP7tU0GlcusD6zhulsXznEcTpF6VS8FSTCz+76z3LEZj2/?=
 =?iso-8859-1?Q?nqNlPYe8qinzudeZeYn8bCO7CdDwn6j0exPenkMDLhCvoNzCjrY2KOKCwH?=
 =?iso-8859-1?Q?+mtfbRMlHm44CYWE4/0dGn3bywaYQQy6Bv1kSxq7m+AQnH90U5dVzKByRZ?=
 =?iso-8859-1?Q?ZlnIwrset72y4xogBopGUMbMqkQBL/H+SulTHAwTURm+ByQZk3JPzw9YZF?=
 =?iso-8859-1?Q?TBSoIGuqLqjObx5x3Q2Fc8CrnalkSuFdvxe0EG+D1NGCf6EYPnvLfEIU5b?=
 =?iso-8859-1?Q?ptASbBkEj7kCHhe06u6pBA1uUINVA83SqfZIC8xmb0aCB1r2BhXL/ZKqbF?=
 =?iso-8859-1?Q?hjCXvosBUcCn9pRe/qc34jp5S4Ug+4JNUAKIj+RCkjV9XU2ja/QoR3ewD8?=
 =?iso-8859-1?Q?F4ZAgmILu+i8BatMq0DrPSbeZY6xr5fkgqanzAGRFwWoVN/u6IibehQlEx?=
 =?iso-8859-1?Q?Cc4tbkkWWRDT1MyEvxWJPmbeObwmcjkRty7ONGW9wPzXKLQq+UB379zsiv?=
 =?iso-8859-1?Q?wjAGV9ywpomcJmKUbRT7hyrA8WDYCeF7vUS9/+v3grY7DpiN++TJZX+3Ax?=
 =?iso-8859-1?Q?QjebCxgTIJhuv38xlz9L25zQdKuRNbYrII2vpK6p9sfSUhTvihjdC/oRo4?=
 =?iso-8859-1?Q?T3QqdrQTM8pIkBHEeB3M/KVFFCzHZbIGtZdk/pVUMJRZhUhLPuZ7xWavLx?=
 =?iso-8859-1?Q?W0XgtjzOTrRdYNpofqFodM8ZfIx/4DF9VByLiaYETGaajS+LoFlQ2Rwu1J?=
 =?iso-8859-1?Q?NkPa7Pl+cF8v6IuDNG+aO3ZLk5x0//xke4Ic8p69tvT6aiC4wC81OpgeEO?=
 =?iso-8859-1?Q?iWGbZGQgcNe7JJY6WLOyAkIe7y0oUICPm3mmvNQvwJmui7Ooa8SigRnrkq?=
 =?iso-8859-1?Q?0f0MdhqvdyKRTn+CnAmxqm/g6t3r7ohJhYuF90uIU+UbumvBJ6G+WRD1wv?=
 =?iso-8859-1?Q?9IMM28Zk9/hgQAOV0NkiY5OfLDZRzDbdcQvQQF2ZwZyB7o9v3Ou/mx2UdF?=
 =?iso-8859-1?Q?X6LvanoUfY/0zP9brpZRAn1R2zz1E1mq9ePHd1Yc9FMxFKdlkrVwHsrUvE?=
 =?iso-8859-1?Q?/BBaI3aPrZa9tk8mxe7XUMjgeZdlYt0Mr+v4wPtMeNVSxGDgqGc4Axk7qE?=
 =?iso-8859-1?Q?+MsKA3zD+dk9B8yTqVvfgWc+Wvu+U32AXgZ1bxKKaTBsvmW+7KN86Gq5GV?=
 =?iso-8859-1?Q?ZijZHC+xqJQuRgLkwngMiP9pXAR74amHSecEjpV90WQ3/Y/e0b9XGIZCQx?=
 =?iso-8859-1?Q?wR59I7Gya/kkvDkqBOs=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)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?4pMh2BR7VuNRzBSP2d3r6DTuSAsVYNxTyDmLeI/fxepljji90+3R0cxZTN?=
 =?iso-8859-1?Q?fMxpf/3D5KHRiVD/TqL8W7LQlqbkpe5pJZTbBMTRIdNY3WX0//yM6yYOLz?=
 =?iso-8859-1?Q?zM2BH9BqUab+ixXqpGRLumD3d7DfS+MZYu6ar3Wj5qGvUJPg+z462X+rAu?=
 =?iso-8859-1?Q?xb51txKQyp0Jx/NDJGQ/ai0GF11kZiz3WwoBU8gMytlu9V/tKYSdCGbOGQ?=
 =?iso-8859-1?Q?0vFoquXhdCucmC9K2twd1fpg85WT0ZnwGA7MVsrMiAaaPfQkLorQW2RuqX?=
 =?iso-8859-1?Q?fVp9jsbyi+OWn6haClto3UYL6o62UkwIEBdfIoVuFtAr/eHca4aHqY1l9h?=
 =?iso-8859-1?Q?zVA73QTqP3afgZn6phSmAndk7eZ1x5TdXzzWBEW3Xh0hCo8ekozL3wISl3?=
 =?iso-8859-1?Q?FfDO1oAgde9TyJaNyhSKWz9vCV+Lv01UbadYJ79o8lJtL9RAt52q1fF848?=
 =?iso-8859-1?Q?XGDLpJVXwAOuPmsD4K6j12e80c4/QJYpSdkfg55JXM5pINmz4uR+3ngG1k?=
 =?iso-8859-1?Q?o59119XajL9jwjmTRa2BJLPmnCK/5axmzBJN8dO6jgbbiADNLJHK40N5ZE?=
 =?iso-8859-1?Q?RyTUp4G7t62Me/McWzUsXRhPFoCxZ1tOEA3/vTnmXQhPQ82mBk7mVBk694?=
 =?iso-8859-1?Q?z6n6LPqyFZBy/MIaDACLQejjpnd8yS/97U6nGGPRWxzLaNppWRnykYNyYP?=
 =?iso-8859-1?Q?6DEBYmGQAhkqj3JPLreRC0GXEZWMMNRI9nB3C+lnvgC7Ovzue6suViSV6v?=
 =?iso-8859-1?Q?TJipjfkbz9wSzAEK1x9gU5j7P1oTxq0GTaiiLRGs/Jft8PspT2/YK39ys1?=
 =?iso-8859-1?Q?JjDnnoXBmzWJDQvxMTdNn792AjJpw+bg9DiOFJUZsvxd4VOfVt2aGjOUSP?=
 =?iso-8859-1?Q?AV5XE9XASnqVsxIZUe2PPrq+WmikN6z5dZJkWpHTUqgpmZsQgU4LAuKlzg?=
 =?iso-8859-1?Q?e2F1odDvDUYO4CPTyAUcttZ+8V0bVv6uxaJlJiXOHaGjbSDnbqH9JyEeNt?=
 =?iso-8859-1?Q?dsR7mJB7FkW3XKvP/r9LvA+L8yHJgI0qTkfK2FcX4kbhogvChHsZwob92s?=
 =?iso-8859-1?Q?oq0S19sjG+EZta78Mkw87HY+GnWCEHVvwmeBTXonkDNE4m3/zfcUBsZJPy?=
 =?iso-8859-1?Q?Lf9qbj4ZjMT4en0lZ1eYv/rN2mnmdeA/Kr8nT1SRzPuSMsWIbbYRy319F0?=
 =?iso-8859-1?Q?q9+7Cwj9rZ1R7YFe66aeYYpGvcf8bO7nivmrSj96OnT4YYY4Zio3gOxb8h?=
 =?iso-8859-1?Q?BukJ4fCgHCJoFwYm7pT5kCHphF2VC+iVryEobLFwdzAEjNgqzPqyoyjItD?=
 =?iso-8859-1?Q?o4zTGSQe9l8rvXuiWgOlxWUlwnS5s935VkWN1ALwE36H8UpdrdfnFjmf08?=
 =?iso-8859-1?Q?H94f5KQ/OJ244g6n9kaF1BsoU6Ty+WeeYYX3ZM8YbPq3PzOWA0FV531IxR?=
 =?iso-8859-1?Q?fXkCQh2g28m6MuHiSJhod6Mh2+g1roiA54E8kHJkYFGWxr8IXPXBAOrtMY?=
 =?iso-8859-1?Q?sl0uHwkxcYqvBwAlYrCCWZ03R1jCnhPgph8fW/VuBx7TFuyAvft40e3alq?=
 =?iso-8859-1?Q?ByTq14/QxISahs9nv/A68drHbDOpGq/CjEY75yuAkkH9Zl2maKzVmTSXcQ?=
 =?iso-8859-1?Q?ZR/8r7jlsvDP9G0UEMUJ1wGSVUFSVUbnHma/usF66zkdxc5Pczp8lA06uJ?=
 =?iso-8859-1?Q?9ZxwuXZwQ4PTQ204lu4BFjOKCIIu3AJwWMKOWPTbVpnspKVP31ufR0gj5y?=
 =?iso-8859-1?Q?kDUm1k3HTs4XeQQTn8okvNMeV4JC+yz5KdaNMFHdvhWNeCMp9tSnD/zWFZ?=
 =?iso-8859-1?Q?b+IwH+yiPamo+t6XN3qeC6+f3Cl+97M=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: 912e497c-f35b-4b48-98fd-08de6af4366e
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2026 11:37:05.0423
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: O+EqZmQanIbEBiLUB1/l3xE5tUYE93v/XpZqSHGpZ0MB8yTsPwMcY0b2Z2yjPqBWcd+t4wcCGmVBRWbvT976hzDqHeYWapgG28OcseiXWss=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7615

Introduce memcpy_fromio() and memcpy_toio() helpers to copy between
regular memory and MMIO space on Arm. The generic prototypes live in
io.h so other architectures can provide their own implementations.

These helpers handle alignment safely by using ordered byte accesses for
any leading/trailing unaligned bytes and ordered 32-bit accesses for the
aligned bulk transfer. Using the ordered `readb/readl` and
`writeb/writel` accessors avoids unintended endianness conversion while
respecting device ordering requirements on ARM32/ARM64 hardware that may
not support 64-bit MMIO atomically.

The interface lives in the generic header so other architectures can
provide their own implementations (as macros or functions). The ARM
implementation is placed under `arch/arm/lib/` (mirroring the x86
reference layout) and is split into separate compilation units added via
the architecture-specific lib Makefile.

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

Changes in v10:
- removed extra include in memcpy-{to/from}io.c files

Changes in v9:
- reword commit description to refer to memcpy_fromio and memcpy_toio
- ordering obj-y in Makefile
- rename ALL_LIBS to ARCH_LIBS
- drop io.h and move definitions to the common header, fix comments to
be arch neutral
- update comments for memcpy_{from/to}io implementation

Changes in v8:
- switched to ordered accessors to address the ordering and barrier
concerns.
- updated the documentation to match the implementation and explicitly
state the supported access sizes and granularity.
- rename memcpy_* implementation files to memcpu-* to follow naming
convension
- fix indentation to match Xen style
- fix intendation to match Xen style
- move memcpy-{from/to}io to more convenient library place

Changes in v7:
- x86 guidance: removed the speculative note; header now just says
  each arch supplies its own implementation or macro.
- name spacing: dropped the double-underscore; the helpers are now
  memcpy_fromio / memcpy_toio. The header also explicitly allows an
  arch to define these as macros before including it.
- updated io.c to keep 32-bit transfers safe on arm32
- moved to __raw_read*/__raw_write* accessors to avoid endianness conversio=
n.
- split the helpers into separate compilation units

Changes in v6:
- sorted objs in Makefile alhabetically
- added newline at the end of Makefile
- used uint{N}_t intead of u{N}
- add comment about why 32 bit IO operations were used
- updated cast opertaions to avoid dropping constness which is wrong
- move function definitions to generic place so the could be reused by
other arch
- add SPDX tag to io.c

Changes in v5:
- move memcpy_toio/fromio to the generic place

 xen/arch/arm/Makefile            |  1 +
 xen/arch/arm/arch.mk             |  1 +
 xen/arch/arm/lib/Makefile        |  2 ++
 xen/arch/arm/lib/memcpy-fromio.c | 55 ++++++++++++++++++++++++++++++++
 xen/arch/arm/lib/memcpy-toio.c   | 55 ++++++++++++++++++++++++++++++++
 xen/include/xen/io.h             | 10 ++++++
 6 files changed, 124 insertions(+)
 create mode 100644 xen/arch/arm/lib/Makefile
 create mode 100644 xen/arch/arm/lib/memcpy-fromio.c
 create mode 100644 xen/arch/arm/lib/memcpy-toio.c

diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
index 7494a0f926..5b8e170e01 100644
--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -8,6 +8,7 @@ ifneq ($(CONFIG_NO_PLAT),y)
 obj-y +=3D platforms/
 endif
 obj-y +=3D firmware/
+obj-y +=3D lib/
 obj-$(CONFIG_TEE) +=3D tee/
 obj-$(CONFIG_HAS_VPCI) +=3D vpci.o
=20
diff --git a/xen/arch/arm/arch.mk b/xen/arch/arm/arch.mk
index dea8dbd18a..009bb22c45 100644
--- a/xen/arch/arm/arch.mk
+++ b/xen/arch/arm/arch.mk
@@ -2,6 +2,7 @@
 # arm-specific definitions
=20
 ARCH_LIBS-y +=3D arch/arm/$(ARCH)/lib/lib.a
+ARCH_LIBS-y +=3D arch/arm/lib/lib.a
=20
 $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
 $(call cc-option-add,CFLAGS,CC,-Wnested-externs)
diff --git a/xen/arch/arm/lib/Makefile b/xen/arch/arm/lib/Makefile
new file mode 100644
index 0000000000..07a0d9186c
--- /dev/null
+++ b/xen/arch/arm/lib/Makefile
@@ -0,0 +1,2 @@
+lib-y +=3D memcpy-fromio.o
+lib-y +=3D memcpy-toio.o
diff --git a/xen/arch/arm/lib/memcpy-fromio.c b/xen/arch/arm/lib/memcpy-fro=
mio.c
new file mode 100644
index 0000000000..3b27ab2949
--- /dev/null
+++ b/xen/arch/arm/lib/memcpy-fromio.c
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/io.h>
+
+/*
+ * Arm implementation notes / limitations:
+ * - Uses ordered 8-bit for leading/trailing unaligned bytes and ordered
+ *   32-bit accesses for the aligned bulk; no wider accesses are issued.
+ * - Only suitable for devices that tolerate 8-bit and 32-bit accesses;
+ *   do not use with devices requiring strictly 16-bit or 64-bit accesses.
+ * - MMIO must be mapped with appropriate device attributes to preserve
+ *   ordering; no extra barriers beyond the ordered accessors are added.
+ * - If source or destination is misaligned, leading bytes are copied
+ *   byte-by-byte until both sides are 32-bit aligned, then bulk copy uses
+ *   32-bit accesses.
+ */
+
+void memcpy_fromio(void *to, const volatile void __iomem *from,
+                   size_t count)
+{
+    while ( count && (!IS_ALIGNED((unsigned long)from, 4) ||
+                      !IS_ALIGNED((unsigned long)to, 4)) )
+    {
+        *(uint8_t *)to =3D readb(from);
+        from++;
+        to++;
+        count--;
+    }
+
+    while ( count >=3D 4 )
+    {
+        *(uint32_t *)to =3D readl(from);
+        from +=3D 4;
+        to +=3D 4;
+        count -=3D 4;
+    }
+
+    while ( count )
+    {
+        *(uint8_t *)to =3D readb(from);
+        from++;
+        to++;
+        count--;
+    }
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 8
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * End:
+ */
diff --git a/xen/arch/arm/lib/memcpy-toio.c b/xen/arch/arm/lib/memcpy-toio.=
c
new file mode 100644
index 0000000000..a6ad08b805
--- /dev/null
+++ b/xen/arch/arm/lib/memcpy-toio.c
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/io.h>
+
+/*
+ * Arm implementation notes / limitations:
+ * - Uses ordered 8-bit for leading/trailing unaligned bytes and ordered
+ *   32-bit accesses for the aligned bulk; no wider accesses are issued.
+ * - Only suitable for devices that tolerate 8-bit and 32-bit accesses;
+ *   do not use with devices requiring strictly 16-bit or 64-bit accesses.
+ * - MMIO must be mapped with appropriate device attributes to preserve
+ *   ordering; no extra barriers beyond the ordered accessors are added.
+ * - If source or destination is misaligned, leading bytes are copied
+ *   byte-by-byte until both sides are 32-bit aligned, then bulk copy uses
+ *   32-bit accesses.
+ */
+
+void memcpy_toio(volatile void __iomem *to, const void *from,
+                 size_t count)
+{
+    while ( count && (!IS_ALIGNED((unsigned long)to, 4) ||
+                      !IS_ALIGNED((unsigned long)from, 4)) )
+    {
+        writeb(*(const uint8_t *)from, to);
+        from++;
+        to++;
+        count--;
+    }
+
+    while ( count >=3D 4 )
+    {
+        writel(*(const uint32_t *)from, to);
+        from +=3D 4;
+        to +=3D 4;
+        count -=3D 4;
+    }
+
+    while ( count )
+    {
+        writeb(*(const uint8_t *)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:
+ */
diff --git a/xen/include/xen/io.h b/xen/include/xen/io.h
index 164a20c5d7..1bb164b6ef 100644
--- a/xen/include/xen/io.h
+++ b/xen/include/xen/io.h
@@ -67,4 +67,14 @@ static inline bool write_mmio(volatile void __iomem *mem=
, unsigned long data,
     return true;
 }
=20
+/*
+ * Copy between regular memory and MMIO space.  Implementations are
+ * architecture-specific and must use appropriate MMIO accessors for
+ * their memory and I/O models.
+ */
+void memcpy_fromio(void *to, const volatile void __iomem *from,
+                   size_t count);
+void memcpy_toio(volatile void __iomem *to, const void *from,
+                 size_t count);
+
 #endif /* XEN_IO_H */
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:37:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:37:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230656.1536112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrU4-0002RX-3e; Fri, 13 Feb 2026 11:37:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230656.1536112; Fri, 13 Feb 2026 11:37: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 1vqrU3-0002RM-VY; Fri, 13 Feb 2026 11:37:15 +0000
Received: by outflank-mailman (input) for mailman id 1230656;
 Fri, 13 Feb 2026 11:37: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=VfN9=AR=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqrU1-0001fQ-Lf
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:37:14 +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 560a2eeb-08d0-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:37:11 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7615.eurprd03.prod.outlook.com (2603:10a6:10:2ce::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 11:37:05 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 11:37: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: 560a2eeb-08d0-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sI/T76UX96QdVshTpxVLgYmfDQGXvCrbyyxB/PYK/pzwcbSTGV8MsBhc6PKqSznIfE2delNrmNcjnLkFktVXBotpDdOin3DmSEQaVaDL6WcMcCHYHqjlykEchrCPY+MMbrOdq7+y+7CIXGzVZAnELS8CR6T7ziZTdiVuAksshNF0OKeqPQc1GVwretbcQKCwpL6/ZLdlCfgz7JopwyYgHBYPd8S8BjW49pZVFZWY7biTICTAMrhegAnH2E6i2vaYR72alueCEIhgsvHy7yGBrr9Y+GBu/lHrgOkimc4LDtpOgv8BphP82fYPUWvZ+gdQkUlCFsqH2ZSOKw7R1xZ9vA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2ka33eEAL7J6JKx8LQs+waJZUK4G9atjYHowIbdY5e0=;
 b=a5iFqZnDU8m6foDKy+ZusW7hm4FLhHo6H7iVJvJiv4O7esvsVV4yzbvkfzhQjYtd9FY2dB50DLYfWu6uvkyJE9+C/5od+pY9WpfC35wm7VoOtiYW0+ReJ2bU+lqWr52DChn2o8Zr5Hi0YBp1P3KHgswZcqZ6WPvxiSjEfMXStkjf44JptJvXwIiyDEq3wfLEbvhx5E02f/3DrjxTJvXVwf3QryVU+dcknVPVRO+GskvfaSZuiUNQBMCCygh33tXN9D0ETkOL+68f09dWnHt+dsNz3wGqwCyqJQePllhJiKTl7n23waAbkbgY9qG62En+6IN5SK+ObRngZ2vK7pygkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2ka33eEAL7J6JKx8LQs+waJZUK4G9atjYHowIbdY5e0=;
 b=D7hNUs2dDAtXFxeHpwUygfQmiocNcyCISQfP9FQ2BLDsiPXeF36rv+X8yrf8fLb/9tzRKaxxKnJaKGiCEbN0INrduN9ahhjcj2vicEdwC+YpkswwIswHIXqBhflkMRjjIA7l5k9YnasBUF37TdQi4+KO0dMna+Kcscuk9Ei+16F8uQfufD9gng/MeQy3Vnxve0EXuU11lGT7qJAwdPZv+mWuT21Km7DqRHBUOcaXO3eHeOaGoYzDtnnp9309NwTTrhVNdzXbdkrt4a9EuD9LCmNPXHu9V+hagJf1D6V98MUJ/NmMMD8/y5HaJG2zf9X3D5TVzNbHVte86tpPKG3n+g==
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 v10 4/6] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 driver
Thread-Topic: [PATCH v10 4/6] xen/arm: scmi: introduce SCI SCMI SMC
 multi-agent driver
Thread-Index: AQHcnN0UbDuPQmM6+UKFbHqunZHHOw==
Date: Fri, 13 Feb 2026 11:37:05 +0000
Message-ID:
 <3fd8a91357b21a7523d8067481e93f753577b49e.1770982468.git.oleksii_moisieiev@epam.com>
References: <cover.1770982468.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1770982468.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_|DB9PR03MB7615:EE_
x-ms-office365-filtering-correlation-id: 8a494df7-fe33-402d-81ea-08de6af436bc
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?76unMZGbAMhjy803JTimpVRmDsDwbIAmBWKdnObGH9HflfmNbelsFR3JhT?=
 =?iso-8859-1?Q?2gXkABBvccy1d0N97+WEBdaPqyTnPf8K4cu4o2y/vmtlf4mEXd0Qp9tJbi?=
 =?iso-8859-1?Q?LhoUqZHO1pw4r+ZY5Zz/WFXTzLxlvl5u6OivtY8L/0Yf2daJ+t0FKZC1ZC?=
 =?iso-8859-1?Q?ZhctzH+UqAPEjlzCn2QU2uED4z3oqKEoHOpVRWjtXZpFxcx1wcPZF9thVn?=
 =?iso-8859-1?Q?+dFMk1zkf3mULWkNFjlJW47WqNbyHIoWNW8my0jsm6TDMn4WqetuOlNQLV?=
 =?iso-8859-1?Q?yzT/zE9yOa7CSiZSNciE9BbQEg43fr4TuMY1BMm3XZz1/kLbW2TitKS6Gl?=
 =?iso-8859-1?Q?VACLdmM2AUu+mc0oje9Fsmsng6gyrHERmtCnTGUBiMoOKWcPrmX3yhAgaZ?=
 =?iso-8859-1?Q?ckrFd81Uaxha10PPnbJapz6XDWp0hJBgA9swz/CtnM5scS7vOpvTiLOM5k?=
 =?iso-8859-1?Q?UVDYSYW3q2mQf360a1uSHc5sVKiXUIyjuvj+OhGjImZ6FG8pFmP6v+H5fZ?=
 =?iso-8859-1?Q?Du43qOKhMaGawbn/mqU6EGSyNPZEagw1L/8th4cxjXoKzaYWb2HlfQNOHy?=
 =?iso-8859-1?Q?10LmxmLkZv/AEdLtNtIa0MhG7A1H5zoLk3KK9KabiClSGLyar2p72rUV5W?=
 =?iso-8859-1?Q?dlb6Owv9xDm2ioBZxZFHox8bYKhFp6VlN9ub+OOYMNsLsm5pDKIk1OM9Xj?=
 =?iso-8859-1?Q?Qv6ERTAsB7A0dfTEZOB4PXwLX9Uf6LsH5Glzm2d/oG4XMDIrDZtD1L4zun?=
 =?iso-8859-1?Q?vCEcBC71+d8kCJMO6UlVhFeOc/Ctw5q+TATkaRNI385zXIUn7fn0nPfqy1?=
 =?iso-8859-1?Q?EFvkMl6FpyhrEEoWFooy6iqNHIrv6BS5FO95vb/HmuYTcqLh1O5uLBNfpr?=
 =?iso-8859-1?Q?HaAKTZSbvFQHU7xday5XFNrfjPihc4OGB3KU3Kft77sUbmPAIKsQldFtfw?=
 =?iso-8859-1?Q?IRtWoY3HJ9VC34JB+8ei3sXA+XFLKDQtXgaaNMxJXBbXl15bHAFhyuuZqd?=
 =?iso-8859-1?Q?wac50pKUG0ut+fsqJh0vnZ/WzgIiMJ/alQneIWPyX6w8VDUd0U7txkPu9h?=
 =?iso-8859-1?Q?O4OypAUSjWVEM6PR+78N0pi23mi4V08Q8OPIhBvVcs+wuxpzWhsJHlVhRL?=
 =?iso-8859-1?Q?+TCq4sYTMZjcm5rbdTU0/l7mYiZ81dUSrPJlfogLO+6g9+c8N2tQssM8ro?=
 =?iso-8859-1?Q?DF5K48iWd49pbR1CTzd2t9SeDv8oWHGoUxV6r5Fa6B9wktDUqoixHQzStq?=
 =?iso-8859-1?Q?/pPhklcxvdCxvbzHPehCOMWMt+9szSOjF0Q5vP3tTR/NbLEmSXsoIYO+s5?=
 =?iso-8859-1?Q?37KYuxxtiXZHY4+3Yz+inPP9yb9fdhR0ngeyKfxb3HFl4Jczw0yYJ4Y6JZ?=
 =?iso-8859-1?Q?DQcLbQ11ym5cx+k7Jzq9O0v6FMzftQ8CKy1qR3FBpQCQ1QYc09kxDcyPZc?=
 =?iso-8859-1?Q?oef32MZ22WDZJOQZ8rv4H3pnoUIcqEU46PM3kbaOS7ZGy/MnjAR9v/Pbw4?=
 =?iso-8859-1?Q?SMeAto0jGbegzuO6pQZZ9RHeWCJQim2FsX07gXOxxyFysUFdBxe6yAUhwV?=
 =?iso-8859-1?Q?KB+sAqF8JjRikdJgg8nG3uiC3t0fvZxdYPVjo6q1RKB157wijUHgy7dMUG?=
 =?iso-8859-1?Q?bboPKXHkOtHg54Sxe5st9nj7Lmol+cMPbFv2LXtIY26FvpXS2JkNWjKqk1?=
 =?iso-8859-1?Q?rllCGfT+QgAwli1D+yE=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)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?XdYhy++WXSdMVuzsgJ2mziPPgOntflfTALtx8HezodYfSfsOhQH4fS4p4m?=
 =?iso-8859-1?Q?wVSI7F/OEsklpIw7jOSMvqJvVn7wau04UU1FAAFE/GAEA1wPIqhf90vIW8?=
 =?iso-8859-1?Q?kncepCicIW/U5VzjYGJIOuPqd05nE10hHgXO7wi8UD9SfguSDTpgaw9+NS?=
 =?iso-8859-1?Q?Ntsn3AZ3DnGu8xQJ9LexJWkebyWLvd7ICx8enZa4R6DkdnFLUylP37Ci4w?=
 =?iso-8859-1?Q?veaUlGznaFK6uYN3B3PVnjLkFs9Qd4tZu9ZhZz6VNGsfjK/8SZUFwa+DDo?=
 =?iso-8859-1?Q?/WCjw4Q2eoe6rksL2wliUz7iBHCXS1QZO4yZTIlTpJ2Hiix2a/yeEESBFY?=
 =?iso-8859-1?Q?AJHKgfxenZhNbbDo35N9BX1H297mOSjhgK/Tq7mZW+w8zA/iLAgjNRcwdP?=
 =?iso-8859-1?Q?Q/mL/133U9ocytKq14RB3wCkq9Nnceu1xx5kukNLuvU3Chuvo90imZb0t6?=
 =?iso-8859-1?Q?FF2oFGw+qK7ntQnY0Ei4bpnzzL8a8DpaxEwR0gztkR1l7VQ1EwwlLl6zhz?=
 =?iso-8859-1?Q?ob/yvUg0VWP7tGGeGIfZop4G3qq5t9l80EUONVSKv4uwKdYpAHvcHvIyMO?=
 =?iso-8859-1?Q?mWVsJ8kM8wWXzXD7SDf4S1GDuM9eEiL0qNQXuObUi5mDP2inTU5lGe7mB0?=
 =?iso-8859-1?Q?E5geuYTrbY0FAc/+YWbCqbsEeTIWNY9kDTClfFQrtCe2ig5DZXsCBOZV3q?=
 =?iso-8859-1?Q?izZ735hzqBoPTyGe8SWciKf9CnicCoMNRRNf4nNz3raWPzl7H5V9jViNzL?=
 =?iso-8859-1?Q?hlrLhnv0xHxCN/P9gqiTdox3zLkxFJllxPU0+whWkbledBjzCDgIHSTRRo?=
 =?iso-8859-1?Q?6JIIXVzOuSDa/KAd/vP6/XCXv5JrK/O7Eh832xPHdfkNCxzw6JUhn60iT6?=
 =?iso-8859-1?Q?WJb2AOkYw2/NLfwq6AX8TZwZ6wHb9lUbpv6SbED3qvTazDffw6ykvxkNvr?=
 =?iso-8859-1?Q?8kVyecbfz4oBcmVE1Ss+ilArm7vKdFRmEbGGV6cPWRZ/tbYzIKbo/exl3X?=
 =?iso-8859-1?Q?Qd0VZmlLtic2xow2F91/UAmIvsUVR2JlAJ4jfxg6c84oHwcJ5HENLAbXlV?=
 =?iso-8859-1?Q?Z3krw3AH4H56eKAR5O7V/cvK3X36AwmK3ldDiIvYx75pf3GG808P9jfBFD?=
 =?iso-8859-1?Q?4TwqtwlDqOJiCJbbZJ2GsDhBP7I2AIjMZvG9MgyAmAfUAM3VDS7LghNuip?=
 =?iso-8859-1?Q?LDcMJZYMXe7MRdE4FQXWRKpm9pLfote6lwG1U2b8IFRZ4r2keG0RuV8XNZ?=
 =?iso-8859-1?Q?sqmX3/AlOMpg+J+K3qo+5gLyabMpN5LPnFEW9hcKcjZFYN7IWANoeWD7EX?=
 =?iso-8859-1?Q?am2PylxefDAwY07njafiimG43yZl8WEY2VKP/zv20UbdPWezoJIavBIoB/?=
 =?iso-8859-1?Q?Uqt/8rSky5I/Tb4oWkbZVTJlN4nBqFCkZJr+6xG2CbHRy8Boz5awXZsn1j?=
 =?iso-8859-1?Q?pex4rbmj7Vmspqu/QfV6n2a63HzpWttQieIywiYLm5KNjT0xKkLgh/a3Un?=
 =?iso-8859-1?Q?Q8e+iJNU3LstiddOVksDPBZf6Z3DUghaYlZPVpCTO16XEBw0PELr4V2VGn?=
 =?iso-8859-1?Q?e4s7dohshszngGUqzpZ0O73a1sbGes89nKrLZwXC/D37469F72SFVyxQKg?=
 =?iso-8859-1?Q?Q0gmmYBF4v154Cz0Zo5TuAYey3vOx6NHdTlCy99Gx6fDxpCgBi7gc2xuo2?=
 =?iso-8859-1?Q?funp5kysZ9foikZXjAj/MQBiFoomTQsP8/mcIwgwK/pB1KbpW3dOy8njV9?=
 =?iso-8859-1?Q?gOGek9xfu5s1Goyccv7jYdTTzyGH3LkP0eM7Il2VRGnYVSxFm+LEBLr7pq?=
 =?iso-8859-1?Q?+V+RaRWiur5NMqdhNjluvRdv8YndsZw=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: 8a494df7-fe33-402d-81ea-08de6af436bc
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2026 11:37:05.5210
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: DtyLhkcK01ROSJepZ1ZZJhrF/weZ0OEN2R3eC9Z4xxFFm6ysDwaTV8uJfVPONuXAEuEYHEdo0c41iTAMUnBa51XuwJKQlgb74y1oZprnW8I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7615

This patch introduces SCI driver to support for ARM EL3 Trusted Firmware-A
(TF-A) which provides SCMI interface with multi-agent 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 is expected to provide SCMI SMC shared
memory transport for every Agent in the system.

The SCMI Agent transport channel defined by pair:
 - smc-id: SMC 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 are expected to be defined by SCMI FW to enable S=
CMI
multi-agent functionality 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 is 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 from the Xen SCMI container ``xen_scmi_config``
  (compatible ``xen,sci``) placed under ``/chosen/xen``. Only the
  ``arm,scmi-smc`` node that is a child of this container will bind to Xen;
  other SCMI nodes (for example under ``/firmware``) are ignored to avoid
  stealing the host OSPM instance.

scmi_shm_1: sram@47ff1000 {
          compatible =3D "arm,scmi-shmem";
          reg =3D <0x0 0x47ff1000 0x0 0x1000>;
};
scmi_xen: scmi {
        compatible =3D "arm,scmi-smc";
        arm,smc-id =3D <0x82000003>; <--- Xen management agent smc-id
        #address-cells =3D < 1>;
        #size-cells =3D < 0>;
        #access-controller-cells =3D < 1>;
        shmem =3D <&scmi_shm_1>; <--- Xen management 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 {
    xen {
      ranges;
      xen_scmi_config {
        compatible =3D "xen,sci";
        #address-cells =3D <2>;
        #size-cells =3D <2>;
        ranges;

        scmi_shm_0: sram@47ff0000 {
          compatible =3D "arm,scmi-shmem";
          reg =3D <0x0 0x47ff0000 0x0 0x1000>;
        };

        /* Xen SCMI management channel */
        scmi_shm_1: sram@47ff1000 {
          compatible =3D "arm,scmi-shmem";
          reg =3D <0x0 0x47ff1000 0x0 0x1000>;
        };

        scmi_shm_2: sram@47ff2000 {
          compatible =3D "arm,scmi-shmem";
          reg =3D <0x0 0x47ff2000 0x0 0x1000>;
        };

        scmi_shm_3: sram@47ff3000 {
          compatible =3D "arm,scmi-shmem";
          reg =3D <0x0 0x47ff3000 0x0 0x1000>;
        };

        scmi-secondary-agents =3D <
          0x82000002 &scmi_shm_0 0
          0x82000004 &scmi_shm_2 2
          0x82000005 &scmi_shm_3 3>; <--- func_id, shmem, agent_id
        #scmi-secondary-agents-cells =3D <3>;
        xen,dom0-sci-agent-id =3D <0>;

        scmi_xen: scmi {
          compatible =3D "arm,scmi-smc";
          arm,smc-id =3D <0x82000003>; <--- Xen management agent func_id
          #address-cells =3D <1>;
          #size-cells =3D <0>;
          #access-controller-cells =3D <1>;
          shmem =3D <&scmi_shm_1>; <--- Xen management agent shmem
        };
      };
    };
  };
};

/ {
    /*
     * Host SCMI OSPM channel - provided to the Dom0 as is if SCMI
     * enabled for it, ignored by Xen multi-agent mediator
     */
    scmi_shm: sram@47ff0000 {
            compatible =3D "arm,scmi-shmem";
            reg =3D <0x0 0x47ff0000 0x0 0x1000>;
    };

    firmware {
      scmi: scmi {
        compatible =3D "arm,scmi-smc";
        arm,smc-id =3D <0x82000002>; <--- Host OSPM agent smc-id
        #address-cells =3D < 1>;
        #size-cells =3D < 0>;
        shmem =3D <&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
``xen,sci`` comaptible 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 =3D <2>``, so the Secondary Agents
configuration will look like this:

/ {
  chosen {
    xen {
      xen_scmi_config {
        compatible =3D "xen,sci";
        #address-cells =3D <2>;
        #size-cells =3D <2>;
        ranges;

        /* Shared memory nodes as defined earlier */

        scmi-secondary-agents =3D <
          0x82000003 &scmi_shm_0
          0x82000004 &scmi_shm_2
          0x82000005 &scmi_shm_3
          0x82000006 &scmi_shm_4>;
        #scmi-secondary-agents-cells =3D <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.

SMC ID Configuration and SCMI Connection Compatibility:

The configuration allows the same device tree to work for both baremetal
Linux and Linux Dom0. This is achieved because:

- Baremetal Linux uses: func_id 0x82000002, scmi-shmem 0x47ff0000
- Dom0 Linux uses: func_id 0x82000002, scmi-shmem 0x47ff0000
- Xen management uses: func_id 0x82000003, scmi-shmem 0x47ff1000

This works because the privileged SCMI connection in EL3 firmware is not
tied exclusively to func_id 0x82000002. The EL3 firmware supports multiple
SCMI agents with different SMC IDs and shared memory regions. Each agent
(Dom0 via 0x82000002, Xen via 0x82000003, other domains via additional
func_ids) has an independent communication channel to the firmware.

The key distinction is that Xen's management channel (0x82000003) is used
for privileged operations like agent configuration and device permissions
(BASE_SET_DEVICE_PERMISSIONS, BASE_RESET_AGENT_CONFIGURATION), while Dom0's
channel (0x82000002) is used for standard SCMI protocol operations (power,
clock, sensor management, etc.). The firmware enforces different permission
levels for each agent based on their agent_id, not the SMC ID.

Therefore, there is no conflict: Linux Dom0 retains its standard SCMI
connection for hardware management, while Xen uses its separate privileged
channel for mediating access between multiple domains.

- 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 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 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:
 - set xen,dom0-sci-agent-id=3D<agent_id> under the xen,sci container in
   the Host DT. If the property is absent, SCMI is disabled for Dom0
   and all SCMI nodes are removed from the Dom0 DT. The driver updates
   the Dom0 DT SCMI node "arm,smc-id" value and fixes up the shmem
   node according to the assigned agent_id.

 - pass dom0=3Dsci-agent-id=3D<agent_id> in Xen command line. if not provid=
ed
   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 =3D "type=3Dscmi_smc_multiagent,agent_id=3D2"

 - xl.cfg: enable access to the "arm,scmi-shmem" which should
 correspond assigned agent_id for the domain, for example:

iomem =3D [
    "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 =3D "arm,scmi-shmem";
       reg =3D <0x0 0x22001000 0x0 0x1000>;
   };

   firmware {
        compatible =3D "simple-bus";
            scmi: scmi {
                compatible =3D "arm,scmi-smc";
                arm,smc-id =3D <0x82000004>;
                shmem =3D <&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=3D<1>" property and DT
devices should be bound to the Xen SCMI.

&i2c1 {
        access-controllers =3D <&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
shall be used:

dtdev =3D [
    "/soc/i2c@e6508000",
]

xl.cfg:dtdev will contain all nodes which are under SCMI
management (not only those which are behind IOMMU).

Additionally, this patch adds documentation for the pre-existing
scmi-smc-passthrough command line option, which was previously
undocumented.

[0] https://developer.arm.com/documentation/den0056
[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-controller=
s.yaml

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

Changes in v10:
- Fix tabs in MAINTAINERS file
- remove duplicate SPDX tag from scmi-shmem.c
- add cast to ARM_SMCCC_INVALID_PARAMETER to settle the sign since
ARM_SMCCC_INVALID_PARAMETER is -3 which is part of the spec and resp
is the default smccc call structure.
- update free_channel_list. Add spinlock to avoid race condition and
a comment with a description of the function work
- preserve error of smc_create_channel in scmi_probe
- check scmi shmem address alignment as wel as it is done for size
- check for d->arch.sci_data !=3D NULL in scmi_handle_call
- use SCMI_SHMEM_MAPPED size for iomem_permit_access
- change len type to unsigned in shmem_{get|put}_message
- rename shmem_channel_is_free to shmem_channel_status
- add comment about skipping message status when getting message response
- Set correct agent_id ranges for dom0less and a toolstack. Agent_id 0
is not binded for dom0 so can be reused. Also mentioned that
UINT8_MAX (255) is treated as invalid agent_id.
- Split hypervisor and toolstack changes into separate commits
- move init list and spin init after initial checks in probe call
- fix typo in comments
- clean resources when sci_register returns an error.

Changes in v9:
- sort and refactor MAINTAINERS enties
- remove Spurious changes
- add extra check to avoid ASSERT when calling unmap_channel_memory
from assign device method
- set correct tx flag to SCMI_BASE_AGENT_PERMISSIONS_RESET when
freeing resources. Flag should be set to 1 according to the
section 4.2.2.12 [0].
- fix dt node copmaring
- moved channel->shmem check from ASSERT in unmap_memory_channel to
"if" statement. This will prevent firing ASSERT if
unmap_channel_memory was called twice on the same channel.

Changes in v8:
- update xen_scmi func_id in commit description
- updated documentation with the new DT format
- updated opt_dom0_scmi_agent_id setting to avoid it to be equal
SCMI_AGENT_ID_INVALID.
- changed SCMI_AGENT_ID_INVALID from 0xff to UINT8_MAX which makes
code more clear showing that UINT8_MAX is theated like invalid
agent_id and couldn't be used. Also excluded SCMI_AGENT_ID_INVALID
from acceptable value range
- remove outdated xen,config property ignore, added xen,sci compatible
to skip_matches in handle_node
- add documentation for pre-existing scmi-smc-passthrough command line
option in alphabetically correct location (in 's' section)
- add note to commit description about documentation for previously
undocumented scmi-smc-passthrough
- Fix SMC IDs in DT examples (Xen management uses 0x82000003, Dom0 uses 0x8=
2000002)
- Add explicit note explaining why Dom0 and Xen channels do not conflict
- Document dom0less multi-agent configuration example (xen,sci_type / xen,s=
ci-agent-id)
- Add scmi_xen node to agent-discovery example with #scmi-secondary-agents-=
cells =3D 2
- Drop dom0=3Dsci-agent-id command line handling; Dom0 SCMI is now enabled =
via
  xen,dom0-sci-agent-id in the xen,sci DT container
- Refresh docs and examples to mention the DT property instead of the cmdli=
ne option

Changes in v7:
- rework scmi nodes for xen to match on compatible string instead of
the direct path

Changes in v6:
- updated scmi-shmem to use io.h from generic location
- update scmi_agent_id parameter to be provided inside dom0=3D parameter
list and have the following format "dom0=3Dsci-agent-id=3D0"
This change was done as a response for Stefano comment and
requires a lot of code changes, but produces much cleaner solution
that's why I've added it to the code.
- fix file comments and return codes
- fix lenght checks in shmem_{get,put}_message to use offsetof
- remove len member from scmi_channel structure as it is not used
- set scmi-secondary-agents property to be mandatory since if no
secondary agents were provided then there is no sence to enable scmi
when no secondary agents are populated to the Domains
- update documentation in booting.txt, added xen_scmi node to the
example
- adjust d->arch.sci_enabled value in scmi_domain_destroy
- fix lock management in smc_create_channel call
- avoid extra map_channel_memory command for Xen management channel
because collect_agent_id call unmaps memory if DOMID_XEN is not
set. So for Xen management channel we can init domain_id ad DOMID_XEN
before calling collect_agent_id so memory shouldn't be unmapped.

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                                 |   1 +
 SUPPORT.md                                  |  11 +
 docs/misc/arm/device-tree/booting.txt       | 197 +++++
 xen/arch/arm/dom0less-build.c               |  11 +
 xen/arch/arm/domain_build.c                 |  39 +
 xen/arch/arm/firmware/Kconfig               |  12 +
 xen/arch/arm/firmware/Makefile              |   1 +
 xen/arch/arm/firmware/scmi-proto.h          | 164 ++++
 xen/arch/arm/firmware/scmi-shmem.c          | 118 +++
 xen/arch/arm/firmware/scmi-shmem.h          |  45 ++
 xen/arch/arm/firmware/scmi-smc-multiagent.c | 830 ++++++++++++++++++++
 xen/include/public/arch-arm.h               |   3 +
 12 files changed, 1432 insertions(+)
 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 bf00be928c..def49c327e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -529,6 +529,7 @@ SCI MEDIATORS
 R:	Oleksii Moisieiev <oleksii_moisieiev@epam.com>
 S:	Supported
 F:	xen/arch/arm/firmware/sci.c
+F:	xen/arch/arm/firmware/scmi-*.[ch]
 F:	xen/arch/arm/include/asm/firmware/sci.h
=20
 SEABIOS UPSTREAM
diff --git a/SUPPORT.md b/SUPPORT.md
index d441bccf37..03e3985da2 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -956,6 +956,17 @@ by hwdom. Some platforms use SCMI for access to system=
-level resources.
=20
     Status: Supported
=20
+### Arm: SCMI SMC multi-agent support
+
+Enable support for the multi-agent configuration of the EL3 Firmware, whic=
h
+allows Xen to provide an SCMI interface to the Domains.
+Xen manages access permissions to the HW resources and provides an SCMI in=
terface
+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
=20
 Emulated PSCI interface exposed to guests. We support all mandatory
diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-t=
ree/booting.txt
index 977b428608..f0d1c458c9 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -322,6 +322,21 @@ with the following properties:
     Should be used together with scmi-smc-passthrough Xen command line
     option.
=20
+    - "scmi_smc_multiagent"
+
+    Enables ARM SCMI SMC multi-agent support for the guest by enabling SCM=
I 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-agen=
t-id"
+    property.
+
+- "xen,sci-agent-id"
+
+    Specifies ARM SCMI agent id for the guest. This option is mandatory if=
 the
+    SCMI SMC "scmi_smc_multiagent" support is enabled for the guest. The a=
gent ids
+    of guest must be unique and in the range [0..254]. UINT8_MAX (255) is
+    treated as invalid.
+
 Under the "xen,domain" compatible node, one or more sub-nodes are present
 for the DomU kernel and ramdisk.
=20
@@ -824,3 +839,185 @@ The automatically allocated static shared memory will=
 get mapped at
 0x80000000 in DomU1 guest physical address space, and at 0x90000000 in Dom=
U2
 guest physical address space. DomU1 is explicitly defined as the owner dom=
ain,
 and DomU2 is the borrower domain.
+
+SCMI SMC multi-agent support
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
+
+For enabling the ARM SCMI SMC multi-agent support (enabled by CONFIG_SCMI_=
SMC_MA)
+the Xen specific SCMI Agent's configuration shall be provided in the Host =
DT
+according to the SCMI compliant EL3 Firmware specification with ARM SMC/HV=
C
+transport. The SCMI configuration must live under the Xen SCMI container
+"xen,sci" beneath "/chosen" (for example "/chosen/xen/xen_scmi_config/scmi=
"). The
+Xen SCMI mediator will bind only to the "arm,scmi-smc" node that is a chil=
d of
+this "xen,sci" container; any other "arm,scmi-smc" nodes (for example unde=
r
+"/firmware") are ignored to avoid stealing the host's SCMI OSPM instance.
+
+- scmi-secondary-agents
+
+    Defines a set of SCMI agents configuration supported by SCMI EL3 FW an=
d
+    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.
+
+- xen,dom0-sci-agent-id
+
+    Optional. Specifies the Dom0/hwdom SCMI agent_id inside the ``xen,sci`=
`
+    container. When provided, Dom0 will be configured for SCMI multi-agent
+    support; when omitted, SCMI remains disabled for Dom0. The value must
+    match the ``func_id`` and shmem pairing that EL3 firmware exposes for
+    Dom0 (for example via ``/firmware/scmi``).
+
+As an example:
+
+/ {
+    chosen {
+        xen {
+            ranges;
+            xen_scmi_config {
+                compatible =3D "xen,sci";
+                #address-cells =3D <2>;
+                #size-cells =3D <2>;
+                ranges;
+
+                scmi_shm_0: sram@47ff0000 {
+                    compatible =3D "arm,scmi-shmem";
+                    reg =3D <0x0 0x47ff0000 0x0 0x1000>;
+                };
+
+                /* Xen SCMI management channel */
+                scmi_shm_1: sram@47ff1000 {
+                    compatible =3D "arm,scmi-shmem";
+                    reg =3D <0x0 0x47ff1000 0x0 0x1000>;
+                };
+
+                scmi_shm_2: sram@47ff2000 {
+                    compatible =3D "arm,scmi-shmem";
+                    reg =3D <0x0 0x47ff2000 0x0 0x1000>;
+                };
+
+                scmi_shm_3: sram@47ff3000 {
+                    compatible =3D "arm,scmi-shmem";
+                    reg =3D <0x0 0x47ff3000 0x0 0x1000>;
+                };
+
+                xen,dom0-sci-agent-id =3D <0>; <--- dom0 agent id
+                scmi-secondary-agents =3D <
+                    0x82000002 &scmi_shm_0 0
+                    0x82000004 &scmi_shm_2 2
+                    0x82000005 &scmi_shm_3 3>; <--- func_id, shmem, agent_=
id
+                #scmi-secondary-agents-cells =3D <3>;
+
+                scmi_xen: scmi {
+                    compatible =3D "arm,scmi-smc";
+                    arm,smc-id =3D <0x82000003>; <--- Xen management agent=
 func_id
+                    #address-cells =3D <1>;
+                    #size-cells =3D <0>;
+                    #access-controller-cells =3D <1>;
+                    shmem =3D <&scmi_shm_1>; <--- Xen management agent shm=
em
+                };
+            };
+        };
+    };
+};
+
+Note: This example keeps the Host DT unchanged for Dom0 and baremetal Linu=
x
+by using func_id 0x82000002 / shmem 0x47ff0000 for Dom0, while Xen uses a
+separate privileged channel func_id 0x82000003 / shmem 0x47ff1000. EL3
+firmware enforces permissions per agent_id, so there is no conflict betwee=
n
+Dom0 and Xen channels.
+
+- #scmi-secondary-agents-cells
+
+    Defines whether Agent_id is set in the "scmi-secondary-agents" propert=
y.
+    Possible values are: 2, 3.
+    When set to 3 (the default), expect agent_id to be present in the seco=
ndary
+    agents list.
+    When set to 2, agent_id will be discovered for each channel using
+    BASE_DISCOVER_AGENT message.
+
+
+Example:
+
+/ {
+    chosen {
+        xen {
+            ranges;
+            xen_scmi_config {
+                compatible =3D "xen,sci";
+                #address-cells =3D <2>;
+                #size-cells =3D <2>;
+                ranges;
+
+                /* Shared memory nodes as in the previous example */
+
+                scmi-secondary-agents =3D <
+                    0x82000002 &scmi_shm_0
+                    0x82000004 &scmi_shm_2
+                    0x82000005 &scmi_shm_3
+                    0x82000006 &scmi_shm_4>;
+                #scmi-secondary-agents-cells =3D <2>;
+
+                scmi_xen: scmi {
+                    compatible =3D "arm,scmi-smc";
+                    arm,smc-id =3D <0x82000003>; <--- Xen management agent=
 func_id
+                    #address-cells =3D <1>;
+                    #size-cells =3D <0>;
+                    #access-controller-cells =3D <1>;
+                    shmem =3D <&scmi_shm_1>; <--- Xen management agent shm=
em
+                };
+            };
+        };
+    };
+};
+
+Dom0less example (multi-agent)
+-------------------------------
+
+Below is a minimal dom0less configuration showing how to enable SCMI SMC
+multi-agent for a pre-defined guest domain using xen,sci_type and
+xen,sci-agent-id, together with the Xen SCMI container:
+
+chosen {
+    xen {
+        ranges;
+        xen_scmi_config {
+            compatible =3D "xen,sci";
+            #address-cells =3D <2>;
+            #size-cells =3D <2>;
+            ranges;
+
+            /* Xen management channel shared memory */
+            scmi_shm_1: sram@47ff1000 {
+                compatible =3D "arm,scmi-shmem";
+                reg =3D <0x0 0x47ff1000 0x0 0x1000>;
+            };
+
+            scmi_shm_domu: sram@47ff2000 {
+                compatible =3D "arm,scmi-shmem";
+                reg =3D <0x0 0x47ff2000 0x0 0x1000>;
+            };
+
+            scmi-secondary-agents =3D <
+                0x82000004 &scmi_shm_domu 2>;
+            #scmi-secondary-agents-cells =3D <3>;
+
+            scmi_xen: scmi {
+                compatible =3D "arm,scmi-smc";
+                arm,smc-id =3D <0x82000003>;
+                #address-cells =3D <1>;
+                #size-cells =3D <0>;
+                #access-controller-cells =3D <1>;
+                shmem =3D <&scmi_shm_1>;
+            };
+        };
+    };
+
+    xen,domain@1 {
+        compatible =3D "xen,domain";
+        xen,sci_type =3D "scmi_smc_multiagent";
+        xen,sci-agent-id =3D <2>;
+        /* Additional domain properties (memory, cpus, kernels, etc.) */
+    };
+};
diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
index 4181c10538..1f8c1d851d 100644
--- a/xen/arch/arm/dom0less-build.c
+++ b/xen/arch/arm/dom0less-build.c
@@ -299,6 +299,17 @@ static int __init domu_dt_sci_parse(struct dt_device_n=
ode *node,
         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 if ( !strcmp(sci_type, "scmi_smc_multiagent") )
+    {
+        uint32_t agent_id =3D 0;
+
+        if ( !dt_property_read_u32(node, "xen,sci-agent-id", &agent_id) ||
+             agent_id >=3D UINT8_MAX )
+            return -EINVAL;
+
+        d_cfg->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA=
;
+        d_cfg->arch.arm_sci_agent_id =3D 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 986a456f17..c09f50040e 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -86,6 +86,37 @@ int __init parse_arch_dom0_param(const char *s, const ch=
ar *e)
     return -EINVAL;
 }
=20
+/* SCMI agent ID for dom0 obtained from xen,sci container */
+#define SCMI_AGENT_ID_INVALID UINT8_MAX
+
+static uint8_t __init get_dom0_scmi_agent_id(void)
+{
+    const struct dt_device_node *config_node;
+    u32 val;
+    const struct dt_property *prop;
+
+    config_node =3D dt_find_compatible_node(NULL, NULL, "xen,sci");
+    if ( !config_node )
+        return SCMI_AGENT_ID_INVALID;
+
+    prop =3D dt_find_property(config_node, "xen,dom0-sci-agent-id", NULL);
+    if ( !prop )
+        return SCMI_AGENT_ID_INVALID;
+
+    if ( !dt_property_read_u32(config_node, "xen,dom0-sci-agent-id", &val)=
 )
+        return SCMI_AGENT_ID_INVALID;
+
+    if ( val >=3D SCMI_AGENT_ID_INVALID )
+    {
+         printk(XENLOG_WARNING
+             "Invalid xen,dom0-sci-agent-id=3D%u, SCMI disabled for Dom0\n=
",
+             val);
+        return SCMI_AGENT_ID_INVALID;
+    }
+
+    return val;
+}
+
 /* Override macros from asm/page.h to make them work with mfn_t */
 #undef virt_to_mfn
 #define virt_to_mfn(va) _mfn(__virt_to_mfn(va))
@@ -1459,6 +1490,7 @@ static int __init handle_node(struct domain *d, struc=
t kernel_info *kinfo,
         DT_MATCH_TYPE("memory"),
         /* The memory mapped timer is not supported by Xen. */
         DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"),
+        DT_MATCH_COMPATIBLE("xen,sci"),
         { /* sentinel */ },
     };
     static const struct dt_device_match timer_matches[] __initconst =3D
@@ -1947,6 +1979,13 @@ void __init create_dom0(void)
     dom0_cfg.arch.tee_type =3D tee_get_type();
     dom0_cfg.max_vcpus =3D dom0_max_vcpus();
=20
+    /* Set up SCMI agent ID if provided in the xen,sci container */
+    dom0_cfg.arch.arm_sci_agent_id =3D get_dom0_scmi_agent_id();
+    dom0_cfg.arch.arm_sci_type =3D (dom0_cfg.arch.arm_sci_agent_id !=3D
+                                  SCMI_AGENT_ID_INVALID) ?
+                                 XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA :
+                                 XEN_DOMCTL_CONFIG_ARM_SCI_NONE;
+
     if ( iommu_enabled )
         dom0_cfg.flags |=3D XEN_DOMCTL_CDF_iommu;
=20
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.
=20
+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 Doma=
ins
+	  to EL3 firmware (TF-A) which supports multi-agent feature.
+	  This feature allows to enable SCMI per Domain using unique SCMI agent_i=
d,
+	  so Domain is identified by EL3 firmware as an SCMI Agent and can access
+	  allowed platform resources through dedicated SMC/HVC Shared memory base=
d
+	  transport.
+
 endchoice
=20
 endmenu
diff --git a/xen/arch/arm/firmware/Makefile b/xen/arch/arm/firmware/Makefil=
e
index 71bdefc24a..37927e690e 100644
--- a/xen/arch/arm/firmware/Makefile
+++ b/xen/arch/arm/firmware/Makefile
@@ -1,2 +1,3 @@
 obj-$(CONFIG_ARM_SCI) +=3D sci.o
 obj-$(CONFIG_SCMI_SMC) +=3D scmi-smc.o
+obj-$(CONFIG_SCMI_SMC_MA) +=3D scmi-shmem.o scmi-smc-multiagent.o
diff --git a/xen/arch/arm/firmware/scmi-proto.h b/xen/arch/arm/firmware/scm=
i-proto.h
new file mode 100644
index 0000000000..49f63cfc0a
--- /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) 2025 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)))
+#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 =3D SCMI_FIELD_GET(SCMI_HDR_ID, msg_hdr);
+    hdr->type =3D SCMI_FIELD_GET(SCMI_HDR_TYPE, msg_hdr);
+    hdr->protocol =3D SCMI_FIELD_GET(SCMI_HDR_PROTO, msg_hdr);
+}
+
+static inline int scmi_to_xen_errno(int scmi_status)
+{
+    if ( scmi_status =3D=3D 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/scm=
i-shmem.c
new file mode 100644
index 0000000000..e36745a85e
--- /dev/null
+++ b/xen/arch/arm/firmware/scmi-shmem.c
@@ -0,0 +1,118 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * SMC/HVC shmem transport implementation used by
+ * SCI SCMI multi-agent driver.
+ *
+ * Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+ * Copyright (c) 2025 EPAM Systems
+ */
+
+#include <xen/err.h>
+#include <xen/io.h>
+#include <asm/io.h>
+
+#include "scmi-proto.h"
+#include "scmi-shmem.h"
+
+static inline int
+shmem_channel_status(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, unsigned int len=
)
+{
+    int ret;
+
+    if ( (len + offsetof(struct scmi_shared_mem, msg_payload)) >
+         SCMI_SHMEM_MAPPED_SIZE )
+    {
+        printk(XENLOG_ERR "scmi: Wrong size of smc message. Data is invali=
d\n");
+        return -EINVAL;
+    }
+
+    ret =3D shmem_channel_status(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 *shme=
m,
+                       scmi_msg_header_t *hdr, void *data, unsigned int le=
n)
+{
+    int recv_len;
+    int ret;
+    /*
+     * First word of msg_payload carries the returned status; exclude it f=
rom
+     * recv_len so only the protocol payload is copied back to the caller.
+     */
+    int pad =3D sizeof(hdr->status);
+
+    if ( len >=3D SCMI_SHMEM_MAPPED_SIZE -
+         offsetof(struct scmi_shared_mem, msg_payload) )
+    {
+        printk(XENLOG_ERR
+               "scmi: Wrong size of input smc message. Data may be invalid=
\n");
+        return -EINVAL;
+    }
+
+    ret =3D shmem_channel_status(shmem);
+    if ( ret )
+        return ret;
+
+    recv_len =3D 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 =3D readl(&shmem->msg_payload);
+    recv_len =3D recv_len > pad ? recv_len - pad : 0;
+
+    ret =3D 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/scm=
i-shmem.h
new file mode 100644
index 0000000000..722263aa77
--- /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, unsigned int len=
);
+
+int shmem_get_response(const volatile struct scmi_shared_mem __iomem *shme=
m,
+                       scmi_msg_header_t *hdr, void *data, unsigned int le=
n);
+#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/fir=
mware/scmi-smc-multiagent.c
new file mode 100644
index 0000000000..113af22ec3
--- /dev/null
+++ b/xen/arch/arm/firmware/scmi-smc-multiagent.c
@@ -0,0 +1,830 @@
+/* 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/string.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_SECONDARY_AGENTS "scmi-secondary-agents"
+
+struct scmi_channel {
+    uint32_t agent_id;
+    uint32_t func_id;
+    domid_t domain_id;
+    uint64_t paddr;
+    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 bool scmi_is_under_xen_sci(const struct dt_device_node *node)
+{
+    const struct dt_device_node *p;
+
+    for ( p =3D node->parent; p; p =3D p->parent )
+        if ( dt_device_is_compatible(p, "xen,sci") )
+            return true;
+
+    return false;
+}
+
+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 =3D 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 =3D=3D (unsigned long)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_s=
ize)
+{
+    int ret =3D 0;
+
+    ASSERT(chan_info && chan_info->shmem);
+
+    if ( !hdr )
+        return -EINVAL;
+
+    spin_lock(&chan_info->lock);
+
+    printk(XENLOG_DEBUG
+           "scmi: agent_id =3D %d msg_id =3D %x type =3D %d, proto =3D %x\=
n",
+           chan_info->agent_id, hdr->id, hdr->type, hdr->protocol);
+
+    ret =3D send_smc_message(chan_info, hdr, tx_data, tx_size);
+    if ( ret )
+        goto clean;
+
+    ret =3D shmem_get_response(chan_info->shmem, hdr, rx_data, rx_size);
+
+clean:
+    printk(XENLOG_DEBUG
+           "scmi: get smc response agent_id =3D %d msg_id =3D %x proto =3D=
 %x res=3D%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 =3D false;
+
+    spin_lock(&scmi_data.channel_list_lock);
+    list_for_each_entry(curr, &scmi_data.channel_list, list)
+    {
+        if ( curr->agent_id =3D=3D agent_id )
+        {
+            found =3D 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 =3D ERR_PTR(-ENOENT);
+
+    spin_lock(&scmi_data.channel_list_lock);
+    list_for_each_entry(curr, &scmi_data.channel_list, list)
+    {
+        if ( curr->agent_id =3D=3D agent_id )
+        {
+            if ( curr->domain_id !=3D DOMID_INVALID )
+            {
+                ret =3D ERR_PTR(-EEXIST);
+                break;
+            }
+
+            curr->domain_id =3D d->domain_id;
+            ret =3D curr;
+            break;
+        }
+    }
+
+    spin_unlock(&scmi_data.channel_list_lock);
+
+    return ret;
+}
+
+static void relinquish_scmi_channel(struct scmi_channel *channel)
+{
+    ASSERT(channel !=3D NULL);
+
+    spin_lock(&scmi_data.channel_list_lock);
+    channel->domain_id =3D DOMID_INVALID;
+    spin_unlock(&scmi_data.channel_list_lock);
+}
+
+static int map_channel_memory(struct scmi_channel *channel)
+{
+    ASSERT(channel && channel->paddr);
+    channel->shmem =3D ioremap_nocache(channel->paddr, SCMI_SHMEM_MAPPED_S=
IZE);
+    if ( !channel->shmem )
+        return -ENOMEM;
+
+    channel->shmem->channel_status =3D SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE;
+    printk(XENLOG_DEBUG "scmi: Got shmem %lx after vmap %p\n", channel->pa=
ddr,
+           channel->shmem);
+
+    return 0;
+}
+
+static void unmap_channel_memory(struct scmi_channel *channel)
+{
+    ASSERT(channel);
+
+    if ( !channel->shmem )
+        return;
+
+    iounmap(channel->shmem);
+    channel->shmem =3D NULL;
+}
+
+static struct scmi_channel *smc_create_channel(uint32_t agent_id,
+                                               uint32_t func_id, uint64_t =
addr)
+{
+    struct scmi_channel *channel, *curr;
+
+    spin_lock(&scmi_data.channel_list_lock);
+
+    /* Check if channel already exists while holding the lock */
+    list_for_each_entry(curr, &scmi_data.channel_list, list)
+    {
+        if ( curr->agent_id =3D=3D agent_id )
+        {
+            spin_unlock(&scmi_data.channel_list_lock);
+            return ERR_PTR(-EEXIST);
+        }
+    }
+
+    channel =3D xmalloc(struct scmi_channel);
+    if ( !channel )
+    {
+        spin_unlock(&scmi_data.channel_list_lock);
+        return ERR_PTR(-ENOMEM);
+    }
+
+    spin_lock_init(&channel->lock);
+    channel->agent_id =3D agent_id;
+    channel->func_id =3D func_id;
+    channel->domain_id =3D DOMID_INVALID;
+    channel->shmem =3D NULL;
+    channel->paddr =3D addr;
+    list_add_tail(&channel->list, &scmi_data.channel_list);
+
+    spin_unlock(&scmi_data.channel_list_lock);
+    return channel;
+}
+
+static void free_channel_list(void)
+{
+    struct scmi_channel *curr, *_curr;
+    /*
+     * Called only on the __init error path, before any runtime users exis=
t,
+     * so no other thread is iterating channel_list. Keep the lock for the
+     * whole drain for clarity and to avoid misleading readers about possi=
ble
+     * concurrent access.
+     */
+    spin_lock(&scmi_data.channel_list_lock);
+    list_for_each_entry_safe(curr, _curr, &scmi_data.channel_list, list)
+    {
+        list_del(&curr->list);
+        xfree(curr);
+    }
+    spin_unlock(&scmi_data.channel_list_lock);
+}
+
+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 =3D dt_get_property(scmi_node, "shmem", NULL);
+    if ( !prop )
+        return -EINVAL;
+
+    shmem_node =3D 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 *n=
ode)
+{
+    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 */ },
+    };
+
+    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 =3D get_channel_by_id(scmi_data.hyp_channel_agent_id);
+    if ( !channel )
+        return -EINVAL;
+
+    hdr.id =3D SCMI_BASE_SET_DEVICE_PERMISSIONS;
+    hdr.type =3D 0;
+    hdr.protocol =3D SCMI_BASE_PROTOCOL;
+
+    tx.agent_id =3D agent_id;
+    tx.device_id =3D device_id;
+    tx.flags =3D 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 =3D 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 ( !scmi_data.dt_dev ||
+         !dt_node_path_is_equal(ac_spec->np, scmi_data.dt_dev->full_name) =
)
+        return 0;
+
+    agent_channel =3D d->arch.sci_data;
+
+    spin_lock(&agent_channel->lock);
+
+    ret =3D 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 =3D map_channel_memory(agent_channel);
+    if ( ret )
+        return ret;
+
+    hdr.id =3D SCMI_BASE_DISCOVER_AGENT;
+    hdr.type =3D 0;
+    hdr.protocol =3D SCMI_BASE_PROTOCOL;
+
+    da_tx.agent_id =3D agent_channel->agent_id;
+
+    ret =3D do_smc_xfer(agent_channel, &hdr, &da_tx, sizeof(da_tx), &da_rx=
,
+                        sizeof(da_rx));
+    if ( agent_channel->domain_id !=3D DOMID_XEN )
+        unmap_channel_memory(agent_channel);
+    if ( ret )
+        return ret;
+
+    printk(XENLOG_DEBUG "id=3D0x%x name=3D%s\n", da_rx.agent_id, da_rx.nam=
e);
+    agent_channel->agent_id =3D 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 =3D 3; /* Default to 3 cells if property is a=
bsent. */
+
+    config_node =3D dt_find_compatible_node(NULL, NULL, "xen,sci");
+    if ( !config_node )
+    {
+        printk(XENLOG_WARNING "scmi: xen,sci 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 !=3D 2 && cells_per_entry !=3D 3 )
+        {
+            printk(XENLOG_ERR "scmi: Invalid #scmi-secondary-agents-cells =
value: %u\n",
+                   cells_per_entry);
+            return -EINVAL;
+        }
+    }
+
+    prop =3D dt_get_property(config_node, SCMI_SECONDARY_AGENTS, &len);
+    if ( !prop )
+    {
+        printk(XENLOG_ERR "scmi: No %s property found, no agents to collec=
t.\n",
+               SCMI_SECONDARY_AGENTS);
+        return -EINVAL;
+    }
+
+    /* Validate that the property length is a multiple of the cell size. *=
/
+    if ( len =3D=3D 0 || len % (cells_per_entry * sizeof(uint32_t)) !=3D 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 =3D (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 =3D be32_to_cpu(*prop++);
+        shmem_phandle =3D be32_to_cpu(*prop++);
+
+        if ( cells_per_entry =3D=3D 3 )
+            agent_id =3D be32_to_cpu(*prop++);
+        else
+            agent_id =3D SCMI_BASE_AGENT_ID_OWN;
+
+        node =3D 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 =3D 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;
+        }
+
+        if ( !IS_ALIGNED(size, SCMI_SHMEM_MAPPED_SIZE) ||
+             !IS_ALIGNED(addr, SCMI_SHMEM_MAPPED_SIZE) )
+        {
+            printk(XENLOG_ERR "scmi: shmem memory is not aligned\n");
+            return -EINVAL;
+        }
+
+        agent_channel =3D 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 =3D=3D 2 )
+        {
+            ret =3D collect_agent_id(agent_channel);
+            if ( ret )
+                return ret;
+        }
+
+        printk(XENLOG_DEBUG "scmi: Agent %u SMC %X addr %lx\n", agent_chan=
nel->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;
+
+    /*
+     * SCMI support is configured via:
+     * - For dom0: xen,dom0-sci-agent-id property under the xen,sci contai=
ner
+     * - For dom0less: xen,sci-agent-id in the domain node
+     * The config->arch.arm_sci_type and config->arch.arm_sci_agent_id
+     * are already set by domain_build.c or dom0less-build.c
+     */
+
+    if ( config->arch.arm_sci_type =3D=3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE )
+        return 0;
+
+    channel =3D 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 =3D 0x%x, domain_id =3D %d paddr =3D =
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_permi=
ssion
+     * domctl.
+     */
+    if ( hardware_domain && !is_hardware_domain(d) )
+    {
+        ret =3D iomem_permit_access(hardware_domain, paddr_to_pfn(channel-=
>paddr),
+                                  paddr_to_pfn(channel->paddr +
+                                  SCMI_SHMEM_MAPPED_SIZE - 1));
+        if ( ret )
+            goto error;
+    }
+
+    d->arch.sci_data =3D channel;
+    d->arch.sci_enabled =3D 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 !=3D XEN_DOMCTL_CONFIG_ARM_SCI_NONE &&
+         config->arch.arm_sci_type !=3D XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC=
_MA )
+    {
+        dprintk(XENLOG_INFO, "scmi: Unsupported ARM_SCI type\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 =3D d->arch.sci_data;
+
+    spin_lock(&agent_channel->lock);
+    tx.agent_id =3D agent_channel->agent_id;
+    spin_unlock(&agent_channel->lock);
+
+    channel =3D 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 =3D SCMI_BASE_RESET_AGENT_CONFIGURATION;
+    hdr.type =3D 0;
+    hdr.protocol =3D SCMI_BASE_PROTOCOL;
+
+    tx.flags =3D SCMI_BASE_AGENT_PERMISSIONS_RESET;
+
+    ret =3D do_smc_xfer(channel, &hdr, &tx, sizeof(tx), NULL, 0);
+    if ( ret =3D=3D -EOPNOTSUPP )
+        return 0;
+
+    return ret;
+}
+
+static void scmi_domain_destroy(struct domain *d)
+{
+    struct scmi_channel *channel;
+
+    if ( !d->arch.sci_data )
+        return;
+
+    channel =3D 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 =3D NULL;
+    d->arch.sci_enabled =3D false;
+
+    spin_unlock(&channel->lock);
+}
+
+static bool scmi_handle_call(struct cpu_user_regs *regs)
+{
+    uint32_t fid =3D (uint32_t)get_user_reg(regs, 0);
+    struct scmi_channel *agent_channel;
+    struct domain *d =3D current->domain;
+    struct arm_smccc_res resp;
+    bool res =3D false;
+
+    if ( (!sci_domain_is_enabled(d)) || (!d->arch.sci_data) )
+        return false;
+
+    agent_channel =3D d->arch.sci_data;
+    spin_lock(&agent_channel->lock);
+
+    if ( agent_channel->func_id !=3D fid )
+    {
+        res =3D 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 =3D true;
+unlock:
+    spin_unlock(&agent_channel->lock);
+
+    return res;
+}
+
+static const struct sci_mediator_ops scmi_ops =3D {
+    .domain_init =3D scmi_domain_init,
+    .domain_destroy =3D scmi_domain_destroy,
+    .relinquish_resources =3D scmi_relinquish_resources,
+    .handle_call =3D scmi_handle_call,
+    .dom0_dt_handle_node =3D scmi_dt_handle_node,
+    .domain_sanitise_config =3D scmi_domain_sanitise_config,
+    .assign_dt_device =3D 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 __init scmi_dt_hyp_channel_read(struct dt_device_node *scmi_nod=
e,
+                                           struct scmi_data *scmi_data,
+                                           u64 *addr)
+{
+    int ret;
+    u64 size;
+
+    if ( !dt_property_read_u32(scmi_node, "arm,smc-id", &scmi_data->func_i=
d) )
+    {
+        printk(XENLOG_ERR "scmi: unable to read smc-id from DT\n");
+        return -ENOENT;
+    }
+
+    ret =3D 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;
+    unsigned int n_agents;
+    scmi_msg_header_t hdr;
+    struct scmi_msg_base_attributes_p2a rx;
+
+    ASSERT(scmi_node !=3D NULL);
+
+    /*
+     * Only bind to the SCMI node provided by Xen under the xen,sci contai=
ner
+     * (e.g. /chosen/xen/xen_scmi_config/scmi). This avoids binding to fir=
mware
+     * SCMI nodes that belong to the host OSPM and keeps the mediator scop=
ed to
+     * Xen-provided configuration only.
+     */
+    if ( !scmi_is_under_xen_sci(scmi_node) )
+        return -ENODEV;
+
+    if ( !acpi_disabled )
+    {
+        printk(XENLOG_WARNING "scmi: is not supported when using ACPI\n");
+        return -EINVAL;
+    }
+
+    ret =3D scmi_check_smccc_ver();
+    if ( ret )
+        return ret;
+
+    ret =3D scmi_dt_hyp_channel_read(scmi_node, &scmi_data, &addr);
+    if ( ret )
+        return ret;
+
+    INIT_LIST_HEAD(&scmi_data.channel_list);
+    spin_lock_init(&scmi_data.channel_list_lock);
+
+    scmi_data.dt_dev =3D scmi_node;
+
+    channel =3D smc_create_channel(SCMI_BASE_AGENT_ID_OWN, scmi_data.func_=
id, addr);
+    if ( IS_ERR(channel) )
+    {
+        ret =3D PTR_ERR(channel);
+        goto out;
+    }
+
+    /* Mark as Xen management channel before collecting agent ID */
+    channel->domain_id =3D DOMID_XEN;
+
+    /* Request agent id for Xen management channel */
+    ret =3D collect_agent_id(channel);
+    if ( ret )
+        goto error;
+
+    /* Save the agent id for Xen management channel */
+    scmi_data.hyp_channel_agent_id =3D channel->agent_id;
+
+    hdr.id =3D SCMI_BASE_PROTOCOL_ATTIBUTES;
+    hdr.type =3D 0;
+    hdr.protocol =3D SCMI_BASE_PROTOCOL;
+
+    ret =3D do_smc_xfer(channel, &hdr, NULL, 0, &rx, sizeof(rx));
+    if ( ret )
+        goto error;
+
+    n_agents =3D SCMI_FIELD_GET(SCMI_BASE_ATTR_NUM_AGENT, rx.attributes);
+    printk(XENLOG_DEBUG "scmi: Got agent count %d\n", n_agents);
+    ret =3D collect_agents(scmi_node);
+    if ( ret )
+        goto error;
+
+    ret =3D sci_register(&scmi_ops);
+    if ( ret )
+    {
+        printk(XENLOG_ERR "SCMI: mediator already registered (ret =3D %d)\=
n",
+               ret);
+        goto error;
+    }
+
+    scmi_data.initialized =3D true;
+    goto out;
+
+error:
+    unmap_channel_memory(channel);
+    free_channel_list();
+out:
+    return ret;
+}
+
+static const struct dt_device_match scmi_smc_match[] __initconst =3D {
+    DT_MATCH_COMPATIBLE("arm,scmi-smc"),
+    { /* sentinel */ },
+};
+
+DT_DEVICE_START(scmi_smc_ma, "SCMI SMC MEDIATOR", DEVICE_FIRMWARE)
+        .dt_match =3D scmi_smc_match,
+        .init =3D 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 d30a288592..8f0f68544e 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);
=20
 #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
=20
 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__ */
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:37:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:37:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230657.1536119 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrU4-0002WM-Ne; Fri, 13 Feb 2026 11:37:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230657.1536119; Fri, 13 Feb 2026 11:37: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 1vqrU4-0002W6-Ct; Fri, 13 Feb 2026 11:37:16 +0000
Received: by outflank-mailman (input) for mailman id 1230657;
 Fri, 13 Feb 2026 11:37: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=VfN9=AR=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqrU2-0001fQ-BR
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:37:14 +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 574288de-08d0-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:37:13 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7615.eurprd03.prod.outlook.com (2603:10a6:10:2ce::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 11:37:06 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 11:37: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: 574288de-08d0-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=voFYj/fI+dv2/gDbLLOZU8tn0PFwxmwh6Zu6409JKMOOqkf8XY7g6sPIx/xB830kzrl2P8o9ZOlXLj+bqDWhjQzwmeED5laDmGfEuZCTxml/Ky3KChTN7td5VC8qkaMmwy1k1I9WaARPDa5BN5oY9aB5bKpKDqqj1JQmbG2cXtfNZSt1E2yUjFqm997LoDDV1yTx+nDktwmVrZabOkeo/O44NJzLKT+OhvWN5NaUJkCGt4sddlhjFCZ8p+IkzW7n6oHnZzxZZmYJapNb2ar0UtPGThMcdB9Cdy3FLi6RlyuwAlp8+TK2gwVtQoEyVczXagZHJqRMNiish1M7KG4HoA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mgaqa/c01imoHfkCt8+vCDciT8+gmUNtf4qlSh39+Go=;
 b=BvI1D59x0e2s067rSfVPdtYvR5S/0Z+v8ZIecVMDMWQZIe1xvD07xgtsSPk/lsLfaNZ0makLPEalDT607rKjYsfb8ITZ3iZur/dWdXM+MZ1f/Kcs9B6PjaTe3Z6Nl/qUrsacZP6/+PM57VJboAGXqOoJFrucROSq/bmabmI21moD6hjcbucpk4cottXcqUfsWdUbKuBXhYd5QBl36xl65zj1HS/kymkSRdKOlovAxAIa67LSdsH9SWqs/0TvGKitBLhLPdfqYqsA15tYowMJ6YVDmU8UuLH6ScgJx9Xt7eH2CaPLZ8YZQTwRhX+qjYcktgL9XgNLmqKj38KxeoDVqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Mgaqa/c01imoHfkCt8+vCDciT8+gmUNtf4qlSh39+Go=;
 b=EFjOLo2K51eiVE/TWKM9x1MdKVAr2Jgzo0bCaqy0ihgcQYJqqx1arabugW82G6N1VfEEzpMGGmm8JtccEJwrRGwwPNvIF3AIZAyePWmIIsyMjx5Mx1zT0dNmk+UZ3I5vsS302GBXhfQ0jVUuugF3GcM/9q8JMF4WdtAYGEX0X9NbLb1YTkJqYoHYXrkBwQhXRbWhAXm3Z3M3ZyS00a/smjlLhXDD4U4eqkn/3sAqNLA325JSWxg2O847cIoT7OgM99+Hwd+tPH09Cr4uAu9lvKdeeEGGRexvfPjVHGDbixpiBh2lBryvg5ioeNJTYg4IswhoAIJmPXC9/xjXQJycXA==
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 v10 5/6] tools/xl/libxl: wire up SCMI SMC multi-agent
 configuration
Thread-Topic: [PATCH v10 5/6] tools/xl/libxl: wire up SCMI SMC multi-agent
 configuration
Thread-Index: AQHcnN0UQQ2Rybdd30qyWy1uKJ9HWQ==
Date: Fri, 13 Feb 2026 11:37:05 +0000
Message-ID:
 <4ed96ed7bbb04c02b09eed63730702398b00b83f.1770982468.git.oleksii_moisieiev@epam.com>
References: <cover.1770982468.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1770982468.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_|DB9PR03MB7615:EE_
x-ms-office365-filtering-correlation-id: 6091f36a-e073-4df0-b31b-08de6af436f9
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?hdkahDW7wQgpPdP2C/sjFTFS0UlBUPHMyZ2AXVAhNSPQ7/Qn+vmlBqWzdI?=
 =?iso-8859-1?Q?EEUf8Doln+cA7yeFyXpToUn7ONGCtjE2ccUXW66//P6MWbjBeTXgOVsXqH?=
 =?iso-8859-1?Q?q6bkk59ssydK4gF83+oo+9fPgbkP3CVsaUa2OrCg6TNzAMbOgP8q/epPB8?=
 =?iso-8859-1?Q?GnLKOCzjoSt9DPKYrXe3CUALbWzkoL5XfV9RMAsrTlftxhWLwOXju8XwkG?=
 =?iso-8859-1?Q?K57zjJ5WTasxQ8SP9l3UGwy7TYV2eFSH5Ds5sbjaBuhRQAC5ur15E5Y3/N?=
 =?iso-8859-1?Q?vVHmwOyoaHAFTIoNMdJBFfRCjrdr/qTo4nfiqp+uxU1G8Dt1ou4baYjsZz?=
 =?iso-8859-1?Q?RA6gXTZfifRTTVsxkEZQ31VjeQrRM1ukhdzSATDzbirG+bVJCgogsS8tlK?=
 =?iso-8859-1?Q?g0YlKqXUeN6wHJ+RRcktxL+MGYw+R9mpfjf17HTiyAkwtbEB18YPTIf4uz?=
 =?iso-8859-1?Q?rjGrrTPgv1zSxEX+R+wNvl8XMnQpGEWphTIMLW850I/KrdS33eOoOvN4dx?=
 =?iso-8859-1?Q?fH87UfBWTMWyBrePEC8x/yeLd2DS5c49srRqgOArkxw8uSJv2a0n6psZYA?=
 =?iso-8859-1?Q?RhLPs6VyiBZu+pjt9bvyfgi4gIdW54lddIXAqyiAob5ucp6oHbipChnmU3?=
 =?iso-8859-1?Q?3ZT5vdCTG3emcNyDLX9LrIzH9SMQaSAgobZWpj5E+9pe1eJ3QkTbQBCfSS?=
 =?iso-8859-1?Q?9NvQG2JeA5LvAKDz4tqEewFnW7w7e0iLrogxK9e2mPBZYddw4WRa3qKb5c?=
 =?iso-8859-1?Q?5gcRdJS6G8QtzAE/C4FEylRQ2GXFFi+Eeg7Op8sAB0dNSkmp6AB0aN2E7n?=
 =?iso-8859-1?Q?irrmFvJvTh32y+Tm+2y3GxRzZ3FBXzW79XINmTnui+uUJ3k+tBBvcGBV+T?=
 =?iso-8859-1?Q?T7wEkSzoy6f6IdUfanXyk7iZq51JH4PzNcrk6btegmSBJi3u+wHqX3f4bJ?=
 =?iso-8859-1?Q?HDMvhSRWpXF0pEQMP1qQqzEmjb/u3+6aXAFagpP6dCrdV5oxlQTVUCTEEY?=
 =?iso-8859-1?Q?VHEZqp8gKGhZ7IC/DMKXpfQeYo7zU/ZJtzDMh7qef7HQAHd3Eac2fVMyHx?=
 =?iso-8859-1?Q?gTZrIUE2dBnYCmjdIiGjbANE2qlEclXY1hpxwjQaFRJChtcgCcwPVv57Kf?=
 =?iso-8859-1?Q?aDY5E1zlDsAgPTDXrdxlOZE0KqmISAEZa5QL4v3VItEn6GtE8h5N9L3Fw5?=
 =?iso-8859-1?Q?U7Z+Uf6gvgqzfoZTr5cJpzHg6mqAbyEZDtVMwjxoJHKlor2rGU2pgDBkVe?=
 =?iso-8859-1?Q?mzhIFAoCsxk3LwH1RUBAPP5ErOmlrgDkfmeJky7PAPIokjdqk+EFwgtN25?=
 =?iso-8859-1?Q?RPxV0FWhrl3yJxVRmFKIGxN4Ftht0vxAdzSBEX1QfiXEycSWroNZCezoht?=
 =?iso-8859-1?Q?Tl2+Z63qf+Mg6h4BbJBUvuzhvvJbeBrB5cUUjL36jFDUR6xlgULQoh3fdb?=
 =?iso-8859-1?Q?1kZsGduJDVE/GJDekM7kXlOUGxWDn1jUyOESB5Cry/XhLF3B0GPb5WJgsX?=
 =?iso-8859-1?Q?UhoglWyeN8pkJXtiou80OxeTjZm+borkPaEJoRqlEObNN380PPhFPlqO1N?=
 =?iso-8859-1?Q?RF3PqpYYu2K1wcooeE3byoxtevTbEOpHIF7G6lvos37G30K81rupmfmKcC?=
 =?iso-8859-1?Q?Xx4OSVw/n0o/WcOaRSRnfPbyGh5gem8woA1w37J3ejM6xKl4o0RsLeb9l+?=
 =?iso-8859-1?Q?X1lb/Qec/M4d1azyLt4=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)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?XcaR6JCwaEo9Uu1f62TAFOZpWT8sJDAWjDODHnpHf3KUIF8AOf+l0oaStC?=
 =?iso-8859-1?Q?DmMGvN+JFvOAsuNLbUzK3e48tvEhA+iBJoZkAzs61i6RrQMRADE5EWYifS?=
 =?iso-8859-1?Q?OvvB89kXr5Xj1YMSi5m1ter/WTvmYCuCze3PCfdJm5MZmCTR8ldaOdpxfE?=
 =?iso-8859-1?Q?IfdoLmdy0NX960gIpta+aXUqUw8wk+NB8hMpcEmT5ZO94wQiueOC00+0g9?=
 =?iso-8859-1?Q?ZJVq7ZApjpPU2DFM1KRPTQtqrTJkk5mOlKCHcsEyfBIaAs7W/GhF9FZ7ig?=
 =?iso-8859-1?Q?HDucfxBIEVCcIABllWLI1IK6yrhnBzB0x33ej6KmVLYQuvQYxgjFYnm/Y5?=
 =?iso-8859-1?Q?Dls6T2aD3jGTPFTcFbNPBWOpO41ClcUFe6II0jnQzyMmLJ03XGjL+Kox0B?=
 =?iso-8859-1?Q?scqAmrgDWZunS8Vaqn1p1T0UQHWMLeL35hP6HQx8nk1/zYH5ekpEE6KROW?=
 =?iso-8859-1?Q?uIFpeNT5h13CJFari2HuhCHjj8CVJ1K31sjHRDM+LnLHNUKbKwQbnZuWaZ?=
 =?iso-8859-1?Q?Hm+RP2lye9URkayfbpY8W5364jlRJGDGJxcYS+hxmsD6aOHfqPB8chelr8?=
 =?iso-8859-1?Q?13SxRf9FVJ+hWSS+If2OxRkxIyXxkr11y5OdBIAKGFUXmI5tI9iKvOppRW?=
 =?iso-8859-1?Q?IJf5PVTJRXAkqECa86ErRrRyAi3XX8+NeKiGSg1lYO/QT6qcc9jNUaBhzV?=
 =?iso-8859-1?Q?onn/zMY5gPrp9LS3LjmP9umUUR7Xb0ueb8NUmim+malF6iuwq/MiSMwtUI?=
 =?iso-8859-1?Q?eao/J/JPRvlOSoT781piRMUCjbZwsH3bwfcZmSlBYqeE9aFahUosivDuvk?=
 =?iso-8859-1?Q?THq5FjuICpnppHIQVAnsLGFr5xAsf1A2t2uXyozjAn16NSf1JOVEYkv9lB?=
 =?iso-8859-1?Q?ZQZISzx7FKmI+pQYpK5Y/O0xc6XRE2E5AS3A3zjYNVVUZ0GSTSE6l3LKj4?=
 =?iso-8859-1?Q?NMarT0aPWvymPahOfIRcitJVB7vt/KnZnToLwt1zYDb/tQPHXoADxuqATL?=
 =?iso-8859-1?Q?PsyVWMh7k2+DxVduBDs9iqxVpsu0fR7t1BkHVE1P1ux8t0zPxf3kVFeOHl?=
 =?iso-8859-1?Q?FraFSuO8gGroMNJrgmMrvMDukWhcMlhH3EmoaaNslPQOjpTnR5nPI7izI6?=
 =?iso-8859-1?Q?KtjO0Xr/JCtMBiQfhquX4hBS0pjl9QLJYXN48jHJIiHPAT1EzcL5x2ZJwc?=
 =?iso-8859-1?Q?SjUEyjrgwbEu2xcw9eBtMCWJLsU+rl3F88b6kDvvMrHjKZrEfONjViJam7?=
 =?iso-8859-1?Q?DnNgqVC+ZGWf3v2keH5yqo5hUX34RfvwVAIxYuEhnu8aVMJtpApgBV3oB6?=
 =?iso-8859-1?Q?bC317txbkOtPCNU8ciRogvNK6hejmtgbYmf0t+jcTiQ1gK3kba9aok6IZs?=
 =?iso-8859-1?Q?th8sEkZFKq1V2KIf2AHrE8m8PCb6pZbKCYJ2PApAGTZtcS8Fp3s6+X98PM?=
 =?iso-8859-1?Q?rZ9JGr+PxIkFFbcj+SC87H8M/n+pgw7TSSqTAG5h4khoutawK/79e12Hj7?=
 =?iso-8859-1?Q?C5xccorcl+fQ4UlPsc3GRY8EEGK3lnDSJRDjPi6V0cZnwTEr65iEj1HFdl?=
 =?iso-8859-1?Q?Ll8H/2HkM272l+88MGc2yWyfa70HE4szEzr8sjQDX4dx8M74Rd3mcN11ej?=
 =?iso-8859-1?Q?BQ97OYCS30FnUWtyiQO7/SPlbEcPr1o6QAtE9PhlqJmk9EW3t+XxS8aN4t?=
 =?iso-8859-1?Q?XQvuev+a3YZafB86YpWbtxLMtuSrZHTEkLc9m6/spfwTT+v0fF46qAU4d6?=
 =?iso-8859-1?Q?UmtHDv1dRk/tA6oDM0p2lR4bgXc6oME29GQuCJ8Ex87A5DyMFcH1KzZKBM?=
 =?iso-8859-1?Q?eS5BijMkjIs3/WaKbAkCNQn4ILo4Li8=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: 6091f36a-e073-4df0-b31b-08de6af436f9
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2026 11:37:05.8148
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ZAxnx82svNW82ONmef+8fir3LIiirSmMkEM2utTSXEoZ/s8MMqQWTM2v1DZyGxMV2cG7kxt9c0i5yJ7K5+YrFo/kq+ehnvIpjH1jZkmIoYM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7615

Plumb the SCMI SMC multi-agent type through the toolstack:

- Extend libxl_arm_sci_type enumeration with scmi_smc_multiagent (value 2)
- Add agent_id field to libxl_arm_sci structure for per-domain agent assign=
ment
- Update libxl_arm.c to translate libxl config to XEN_DOMCTL_CONFIG_ARM_SCI=
_SCMI_SMC_MA
  and pass agent_id to the hypervisor via xen_domctl_createdomain
- Add xl.cfg parsing for arm_sci=3D"type=3Dscmi_smc_multiagent,agent_id=3DN=
"
- Document the new xl.cfg options in xl.cfg.5.pod.in

This completes the userspace side of multi-agent SCMI, allowing xl create
and dom0less configurations to assign unique agent_id values to domains.

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

Changes in v10:
- Split hypervisor and toolstack changes into separate commits

 docs/man/xl.cfg.5.pod.in         | 14 ++++++++++++++
 tools/libs/light/libxl_arm.c     |  4 ++++
 tools/libs/light/libxl_types.idl |  4 +++-
 tools/xl/xl_parse.c              | 12 ++++++++++++
 4 files changed, 33 insertions(+), 1 deletion(-)

diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
index 27c455210b..e7f8af6156 100644
--- a/docs/man/xl.cfg.5.pod.in
+++ b/docs/man/xl.cfg.5.pod.in
@@ -3156,8 +3156,22 @@ single SCMI OSPM agent support.
 Should be used together with B<scmi-smc-passthrough> Xen command line
 option.
=20
+=3Ditem B<scmi_smc_multiagent>
+
+Enables ARM SCMI SMC multi-agent support for the guest by enabling SCMI ov=
er
+SMC calls forwarding from domain to the EL3 firmware (like Trusted Firmwar=
e-A)
+with a multi SCMI OSPM agent support. The SCMI B<agent_id> should be
+specified for the guest.
+
 =3Dback
=20
+=3Ditem B<agent_id=3DNUMBER>
+
+Specifies a non-zero ARM SCI agent id for the guest. This option is mandat=
ory
+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 [0..254]. UINT8_=
MAX
+(255) is treated as invalid.
+
 =3Dback
=20
 =3Dback
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 =3D XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC;
         break;
+    case LIBXL_ARM_SCI_TYPE_SCMI_SMC_MULTIAGENT:
+        config->arch.arm_sci_type =3D XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_M=
A;
+        config->arch.arm_sci_agent_id =3D d_config->b_info.arch_arm.arm_sc=
i.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_type=
s.idl
index 4a958f69f4..9bfbf09145 100644
--- a/tools/libs/light/libxl_types.idl
+++ b/tools/libs/light/libxl_types.idl
@@ -554,11 +554,13 @@ libxl_sve_type =3D Enumeration("sve_type", [
=20
 libxl_arm_sci_type =3D Enumeration("arm_sci_type", [
     (0, "none"),
-    (1, "scmi_smc")
+    (1, "scmi_smc"),
+    (2, "scmi_smc_multiagent")
     ], init_val =3D "LIBXL_ARM_SCI_TYPE_NONE")
=20
 libxl_arm_sci =3D Struct("arm_sci", [
     ("type", libxl_arm_sci_type),
+    ("agent_id", uint8)
     ])
=20
 libxl_rdm_reserve =3D Struct("rdm_reserve", [
diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
index 1cc41f1bff..2f1b475022 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, lib=
xl_arm_sci *arm_sci,
             }
         }
=20
+        if (MATCH_OPTION("agent_id", ptr, oparg)) {
+            unsigned long val =3D parse_ulong(oparg);
+
+            if ( val >=3D UINT8_MAX ) {
+                fprintf(stderr, "An invalid ARM_SCI agent_id specified (%l=
u). Valid range [0..254]\n",
+                        val);
+                ret =3D ERROR_INVAL;
+                goto out;
+            }
+            arm_sci->agent_id =3D val;
+        }
+
         ptr =3D strtok(NULL, ",");
     }
=20
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:37:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:37:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230658.1536125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrU5-0002gb-DW; Fri, 13 Feb 2026 11:37:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230658.1536125; Fri, 13 Feb 2026 11:37:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrU5-0002fP-2Q; Fri, 13 Feb 2026 11:37:17 +0000
Received: by outflank-mailman (input) for mailman id 1230658;
 Fri, 13 Feb 2026 11:37: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=VfN9=AR=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqrU3-0001fQ-Bg
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:37: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 578b5121-08d0-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:37:14 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7615.eurprd03.prod.outlook.com (2603:10a6:10:2ce::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 11:37:07 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 11:37: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: 578b5121-08d0-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SEKYhQLuCFEyagVscjPkn+0/4x5+kFuGmKgKa/I52Ib40QIfORlpTUuRz6gftYVVYYD6GMtnSu6rgAV9Nzx+oZ9B/SG9J2+RUB6qcnRDeH5HbsF+DPXoDTjWuH3xby1B+UCG0h7AbErin3UHhiPO/Z5VrRpezs5S7UV3IPsprN+zxWAEEOCymGzHjkqmNdVLSq+ISy70sfkkQu5Z0X//YoVuyDJArGQelldXslo37P7ShSaiAtYVyaFsKd92EU7GAFwrzxUL/xpqysZpykduos8JLzObXjDRoL/qsJXybtJ3Mhl/hh1ZPAXGu1v3ECD+5yuAK7iV6T00JnUXnDAYsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IMUkvd7maD0fWSxn+3jLDMY1Y4cX4+DkKiSXZNac1iQ=;
 b=rRAy0kkQJ+ZOcQm3pbAQ19CT8T53qbY5uViIN2c+tY5AzKhbpEDnDdyJ1OFgtHyQFZZ7/9reoRN87UVRdoLlaMGrRQkOI9tqCRtrExsNoRPDyht9Taq+AMy8bxYQ69r4C9YgR+OhfHar2B/Gc7G2rfie1sKbG583vfnSBxpvLEUjKw92rrEeHTKABmRSpUETBIPi0H33kVQeoDFMNuyZrUBhAa2LWIaELmom/o06t28VNJsu5AIS3ZQdZtf4iECFvL4isPaVxJoGPtkvEVmAs+D20u9EYxUw/JStVH0cKp4M46nHZf+TB6YfJ55SqXuESKeDzpR3nq1dlSwiIHH+Kg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=IMUkvd7maD0fWSxn+3jLDMY1Y4cX4+DkKiSXZNac1iQ=;
 b=CN4TqL+hUTVAcmLxF9tIO3esvDi35WShI+uuBDH9EGJb6V3AK2ZIYY0PDbkqxQzKgyEHZG6BSwDzfMa9LLXnmoc7X48bfJ5hamU+VR2grAfWJeKMrfA7j6FCggVqh4yiTnlj7z/gRIvlr8gKpl6M8pEy8161+dbmQZvahGf7g89wrkudhn2vAG0ZOA7Hx476dodWMjC8dsUORyLBCsZvtXgjbwqCBEs5p2Jr8mfpLSt/GP9nGcOOpEigg3YYVhEZlpHRkdvoYiIdDSqpNdiQ/anAvVPR/MBVl2LQLDoTxBnbwoVeTziU93uDO0tqeu7r59LdVCJedt5nYIMYZ7tLpQ==
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 v10 6/6] docs: arm: add SCI SCMI SMC multi-agent driver docs
Thread-Topic: [PATCH v10 6/6] docs: arm: add SCI SCMI SMC multi-agent driver
 docs
Thread-Index: AQHcnN0Urp6cJEf8yE+DawhXXhlh+g==
Date: Fri, 13 Feb 2026 11:37:06 +0000
Message-ID:
 <a7bf8ff218ca05eb3674fdfd2817f6cff471e96a.1770982468.git.oleksii_moisieiev@epam.com>
References: <cover.1770982468.git.oleksii_moisieiev@epam.com>
In-Reply-To: <cover.1770982468.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_|DB9PR03MB7615:EE_
x-ms-office365-filtering-correlation-id: 774cf44d-cd65-45a6-f1e2-08de6af437a6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?iso-8859-1?Q?+ev7EMoXrinjJ/be5hW/0/u7oC2hl4OOFp6Do/V+nab41mAmgoQHFFyw4Q?=
 =?iso-8859-1?Q?j9aH/idQQs9+Q+et8IYhEgGMCvd4RWqXJHdXMLTK4mOmQRaBTGXWC8KDY3?=
 =?iso-8859-1?Q?Ad3ntqG86oCKT5CRA6rI8+JyeNmYXpX55zlDat9Fpz6n+jhRykTWmZP+Yr?=
 =?iso-8859-1?Q?R8fc+a5qOFrB3QcSgNzlS7Fki/snJl+0OC+zMTRKO2Yvcg7ByqA7shb6sf?=
 =?iso-8859-1?Q?O2NsIOMt1wvtvClUpkBxtawuDjuNb3RqTMzzAZI4o7Fds5Cr0KAaTCLDGX?=
 =?iso-8859-1?Q?C3kmQ3sOMLP1Ne2Vgh6FjfJ/nvd2NYnSzSmlwnRwV45ZQc8xIRJwSc0T0Y?=
 =?iso-8859-1?Q?dDvcmPc/1Q2wgtD1HpLM05/bdUeQWpjrI0tcEVL/ySG4n90g1Ht9RBI59w?=
 =?iso-8859-1?Q?pyqqcywL7IdItxgwB1pyggGY8JSigW5wTWMxSF2gz92OUQFsneKbCbr+jY?=
 =?iso-8859-1?Q?n5WNyQjaxXHgA53aDyAxq1SIAg3NfHVpodXCv3UXWII6uGtZqaL4PTBCo8?=
 =?iso-8859-1?Q?lwpY3Sa7Jw+nYmngwc74fKwHyiyyzrhIz94D6AkcJbzzpkpCxCA5em6nZ+?=
 =?iso-8859-1?Q?tw82Di1JyZOck9jm9kdokxCLmHQQC4yiW9Jg3XGMLj6dlTBSsibROq2CzF?=
 =?iso-8859-1?Q?xxr4cs0nE7UFeye+fp2ywK+fqhfokuSHNK+cYPvW9qSIOWqnkJSLB/AaxN?=
 =?iso-8859-1?Q?fTqX2BybZYHNLcCHmCwWFhfo4GZPZDGSWx0dvqAljJ0SVTAdu7f7IZcrmq?=
 =?iso-8859-1?Q?YqYLlaVBnljXaI0Z75Kzsx0UyE/MWp/S++s90zFXXqgBlWZRiRTdXs+efJ?=
 =?iso-8859-1?Q?nZcj3bvtlNQbmIjTpS4cYhQE8W1dpFpwk/79cYqG6bnDWrnycIUq+lgKJU?=
 =?iso-8859-1?Q?tc0LDksG/AqMKOYjLgrU69dBZAohUPCgyvi7ZHnVvbMnrC2FtJ3l9JwSDX?=
 =?iso-8859-1?Q?29V0OGuEA14V34Mu19h2NI3NjJpFanA5GB8yhfnid77uK/yeOAFitv0eFu?=
 =?iso-8859-1?Q?iVDa/G/LikciYLvRP9X2YalG6x9amNa/ufZ0GR8owL8REKAb5pERsHNQCN?=
 =?iso-8859-1?Q?NwYC6n+H1L7iF07rPmkc5D7mr0ULlnHtyQGiLBbbG7b3mXsG56n5e/I6hD?=
 =?iso-8859-1?Q?1iyh90nVBhSiXB2fDJNIoI+V3hHgcXC9dYzlsUENAaNyJNfviRZSYqou4S?=
 =?iso-8859-1?Q?wxWBgH7c0e2o6If8TbFXml/2/zjbjpZBDN8SSLpwRzEP25coI1znBbQTqB?=
 =?iso-8859-1?Q?ur2wZMvn1OFiL3v9GVVt4S8Eh9x0oEANrG103167MuELm/KWGXPxhLpQQD?=
 =?iso-8859-1?Q?z3g2vlDL7hQFX7n3Hb/fQufsZyT7T6pImu9LALKL9velJDiliFxMgwdXDl?=
 =?iso-8859-1?Q?Rf7UOOJ5bY83aBCQIbXy3nqwgpMVtnhSXQaaLdI6MbYUJCbCr/7BYlo6Za?=
 =?iso-8859-1?Q?ThUnISS5b/QlVkS1i7/91W6KwmoICvKbrX7562I/UCGKq6tNR+9xPo5bDU?=
 =?iso-8859-1?Q?6tn3NWWndykDfFSaUX1Bm3agJPeCpxhkaG7w+1EV1u7SAUtL5cSEk3xauv?=
 =?iso-8859-1?Q?qdj0sZKmau90y7C8e2OQnXnpgWzNjuI6cHshxS1TgHSd/oUfUDXeO1G9hN?=
 =?iso-8859-1?Q?izEzgJjJBk0erwXQBv7U8JF1xxI3EeH1JAesLNsKnmZc5axw06CP6VP0+g?=
 =?iso-8859-1?Q?1zset8Vci8a11lHouZg=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)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?iso-8859-1?Q?Oh3UDjz4oszYxKjg439Jx1UhuBEFjyhZtKo+Q5vcaxMgs8jmyts4CuLzky?=
 =?iso-8859-1?Q?H6I1Co/1xO1swc8AFEeODw/xfCK9ap5gsNfpEyzENHbTXDVC7hKiGbURC5?=
 =?iso-8859-1?Q?2MWuHcTMrMiCa7K4JhEGaFBrX03CHu0uAVpPammOcUay13IZwKDnUJupez?=
 =?iso-8859-1?Q?5wsFjEaxqNd7cgkjhNfslT1MlAjvhZyv+7Th9QPvXs+IYzB5varJG2/eAi?=
 =?iso-8859-1?Q?2N4gVT0vIo5+/lqx/e4FBrzD2kbrHKOKhJHiA74GhB0CIICs3KBjbtRH+R?=
 =?iso-8859-1?Q?v8A1JdeD8Oa+wHStco5iP1yh4QtkN1BKTWbHAoAGYSRfyIDCm0RcU8t+0o?=
 =?iso-8859-1?Q?Ge1Y2vzMGCFjvJ2rCtfnVk6fPxyd2RxZDZ5SkjCp5aDjN/ulvJMy/5BmhH?=
 =?iso-8859-1?Q?Ue4MlcSZi5nZERLNpllc8GyfibegmAtfmZdggU6s0sDCh12UxvEFSoT0+C?=
 =?iso-8859-1?Q?z4eREXS0/wZP6Z/CbYAJyCwBysM31OuC5YZ3EWliUtzPp3K/Lx6AzO92xt?=
 =?iso-8859-1?Q?XrrT7hKvvrrC9DIYAd69YJlXgsiRaIygCJp0omPzFDdUfD5kSTAU+tUG9U?=
 =?iso-8859-1?Q?nc47V2BgnzI9CSvXzvJFwCnDEiXcYo9TFSuiSCz62qqUQ64RyylGMrDsNO?=
 =?iso-8859-1?Q?XNME9dPygLpOa9z1yEthUvCnU31MYjseWIjcxSz1J8EFwmu/Un15/43g/J?=
 =?iso-8859-1?Q?gm6F4HgdPasaZkpIzYXzfTak2rJojmbDutr0DE7q4MLshCgR23tsflkQbI?=
 =?iso-8859-1?Q?DRacjpIrZ5RaOArAFZHqfmd9+gYNwB397ULEYCXwQ8dwZS5zDpXUXterSe?=
 =?iso-8859-1?Q?SUciztqfqinVGlJg1nqdjR/wQrJEUMx388n79b0YQlcKgKKOMmyEPlgK6O?=
 =?iso-8859-1?Q?WctdP3N/NPOxUgEfEF9ZvhElLDxORO/63BZ5YFQkw+UiZ3WC5MmrnoGruc?=
 =?iso-8859-1?Q?xQAfhW6V6oFjO5pF/AHctwFmmGpJw/T/ROQdvFXFFugiaQKlbXgZh2jVUw?=
 =?iso-8859-1?Q?zolBe/LyGfTA0nKOyGUSmMKouAXoybSpQ5Zd9mAn6J0QcvHze1AFOf780i?=
 =?iso-8859-1?Q?BrLWeMN/QEMt/ziCTUXkdu3aDX7i+fkMFflq9uqtPV3r9jSk/RKVyYfWZk?=
 =?iso-8859-1?Q?2A2ANLlipgsORoJifXxQsDXLO7dA9orLOb5vVk4xErZzpyOE/qrW1I2yPd?=
 =?iso-8859-1?Q?NWt4NBYqUNAbm88c5BNQ50PeJBY31Kt8sjKNfbmZlb8UgcAHgJwAQwyrx9?=
 =?iso-8859-1?Q?muNRJVT1szfdmuftQCY+F4beym0wYi87g6Igr3kHMeJ0y5TPEgyT7bBL7z?=
 =?iso-8859-1?Q?tWCItp5rlEBCRWUoYjCH5JzX9KvenfBUa+52Cqhj4YvN+S0JMyiKwfdMi9?=
 =?iso-8859-1?Q?Y1NsLElgslJhthoPILErIxk3u4YFcBuwGgSSYa9M3gGYZ8FE+PCtp6loh9?=
 =?iso-8859-1?Q?Ic2NT8H0y5Wgo1v28mtYomVFDoJm/OqP9AW2qROo3HG7cY5nPgDOvkGwUF?=
 =?iso-8859-1?Q?w7VsUdpAYQQJc+vUjUYG6XwnOMZ1EaSvWeV+0OwVhdUt2RPe2gU7QOalFh?=
 =?iso-8859-1?Q?xPvXy26DkK6BoQqIErRbu5e9P24xk137Tk7hDM+oZ0DGqdg9gIxLN1+R6K?=
 =?iso-8859-1?Q?AgwW2nPQYOEJXTWuPBu8J6Z6fLKDhv72k4b1a6KtK2OJypB6xoRBvG3w39?=
 =?iso-8859-1?Q?8ruNv/ftLWRmP4rLnOBzZx8cuq0a5h/F5IbLRAT0UTbWbRKv3mQIII2uMA?=
 =?iso-8859-1?Q?G/5JIRVxoCMLpxFGFCFj3vn17DuIwrvbhfpTLZmDDFveY0+TTvdLrEulgZ?=
 =?iso-8859-1?Q?/NTpOMbPF2weOXLwjpSr7qIzvXuRSXw=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: 774cf44d-cd65-45a6-f1e2-08de6af437a6
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2026 11:37:06.2194
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: mAEbsbAH3TkxBQxENsOemDf7UzZY16PcVfwciWq7Bjvx3iwrp10gFSGdWT/nhKpF4vHIHsN+4RM5tfBCabtSyN1hvdpummEgT6dvUxWw1U0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7615

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: Grygorii Strashko <grygorii_strashko@epam.com>
Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
---

Changes in v10:
- rephrase section about /firmware/scmi. Mentioned that this node is
taken from Host DT and copied unmodified.
- fix xen,reg address for secondary domains for Dom0less configuration

Changes in v8:
- update documentation to match the last DT format
- fixed RST: "... code-block:: dts" -> ".. code-block:: dts"
- update documentation with dom0less configuration example
- update documentation with new param xen,dom0-sci-agent-id
instead of the command line parameter

Changes in v7:
- update documentation in section of the xen_scmi configuration which
is matched by "xen,sci" compatible instead of the direct path.

Changes in v6:
- remove all HVC mentions from the multi-agent doc
- update sci-agent-id parameter description in the documentation
- add missing Sign-of
- minor fixes across the document

Changes in v5:
- rework multi-agent driver to leave Host Device-tree unmodified

 .../arm/firmware/arm-scmi.rst                 | 422 ++++++++++++++++++
 1 file changed, 422 insertions(+)

diff --git a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst b/docs/hypervi=
sor-guide/arm/firmware/arm-scmi.rst
index d9698f4e4b..8791bc665e 100644
--- a/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
+++ b/docs/hypervisor-guide/arm/firmware/arm-scmi.rst
@@ -36,6 +36,8 @@ The below sections describe SCMI support options availabl=
e for Xen.
=20
 | [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>`_
+| [3] `Generic Domain Access Controllers bindings <https://web.git.kernel.=
org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetr=
ee/bindings/access-controllers/access-controllers.yaml>`_
+
=20
 Simple SCMI over SMC calls forwarding driver (EL3)
 ------------------------------------------------------
@@ -189,3 +191,423 @@ except explicitly enabling SCMI with "arm_sci" xl.cfg=
 option.
     ->        xen,reg =3D <0x0 0x47ff0000 0x0 0x1000 0x0 0x22001000>;
     ->        xen,force-assign-without-iommu;
       };
+
+SCMI SMC multi-agent driver (EL3)
+-------------------------------------
+
+The SCMI SMC multi-agent driver enables support for ARM EL3 Trusted Firmwa=
re-A (TF-A) which
+provides SCMI interface with multi-agent 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 is expected to provide SCMI SMC shared-m=
emory transport
+for every Agent in the system. The SCMI Agent transport channel defined by=
 pair:
+
+- smc-id: SMC 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 _P=
AGE_DEVICE, indicating that this
+  memory is mapped as device memory.
+
+The following SCMI Agents are expected to be defined by SCMI FW to enable =
SCMI multi-agent functionality
+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  a=
llowed direct HW access.
+  At least one OSPM VM agent has to be provided by FW if HW is handled onl=
y by Dom0 or Driver Domain.
+
+The EL3 SCMI FW is 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 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 multi-agent driver support, enable Kconfig opti=
on:
+
+::
+
+    CONFIG_SCMI_SMC_MA
+
+
+Driver functionality
+^^^^^^^^^^^^^^^^^^^^
+
+The SCI SCMI SMC multi-agent driver implements following functionality:
+
+- The driver is initialized from the Xen SCMI container ``xen_scmi_config`=
`
+  under ``/chosen/xen`` (for example ``/chosen/xen/xen_scmi_config/scmi``)=
.
+  Only one SCMI interface is supported. The SCMI configuration must live u=
nder
+  the Xen SCMI container ``xen,sci`` beneath ``/chosen``.
+  The Xen SCMI mediator will bind only to the "arm,scmi-smc" node that is =
a child of
+  this "xen,sci" container; any other "arm,scmi-smc" nodes (for example un=
der
+  "/firmware") are ignored to avoid stealing the host's SCMI OSPM instance=
.
+
+.. code-block:: dts
+
+        scmi_shm_1: sram@47ff1000 {
+            compatible =3D "arm,scmi-shmem";
+            reg =3D <0x0 0x47ff1000 0x0 0x1000>;
+        };
+        scmi_xen: scmi {
+          compatible =3D "arm,scmi-smc";
+          arm,smc-id =3D <0x82000003>; <--- Xen management agent smc-id
+          #address-cells =3D < 1>;
+          #size-cells =3D < 0>;
+          #access-controller-cells =3D < 1>;
+          shmem =3D <&scmi_shm_1>; <--- Xen management agent shmem
+        };
+
+.. note::
+   This layout keeps the Host DT unchanged for Dom0 and baremetal Linux by
+   using func_id 0x82000002 / shmem 0x47ff0000 for Dom0, while Xen uses a
+   separate privileged channel func_id 0x82000003 / shmem 0x47ff1000. EL3
+   firmware enforces permissions per agent_id, so there is no conflict bet=
ween
+   Dom0 and Xen channels.
+
+- 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-se=
condary-agents"
+  property where first item is "arm,smc-id", second - "arm,scmi-shmem" pha=
ndle and third is
+  optional "agent_id":
+
+.. code-block:: dts
+
+    chosen {
+      ranges; <--- set default ranges so address can be translated when pa=
rsing scmi_shm node
+      xen {
+        ranges;
+        xen_scmi_config {
+          compatible =3D "xen,sci";
+          #address-cells =3D <2>;
+          #size-cells =3D <2>;
+          ranges; <--- set default ranges so address can be translated whe=
n parsing scmi_shm node
+          scmi-secondary-agents =3D <
+                        0x82000002 &scmi_shm_0 0
+                        0x82000004 &scmi_shm_2 2
+                        0x82000005 &scmi_shm_3 3
+                        0x82000006 &scmi_shm_4 4>;
+          #scmi-secondary-agents-cells =3D <3>; <--- optional, default 3
+          xen,dom0-sci-agent-id =3D <0>;  /* Dom0 agent ID */
+
+          scmi_shm_0 : sram@47ff0000 {
+              compatible =3D "arm,scmi-shmem";
+              reg =3D <0x0 0x47ff0000 0x0 0x1000>;
+          };
+
+          scmi_shm_2: sram@47ff2000 {
+              compatible =3D "arm,scmi-shmem";
+              reg =3D <0x0 0x47ff2000 0x0 0x1000>;
+          };
+          scmi_shm_3: sram@47ff3000 {
+              compatible =3D "arm,scmi-shmem";
+              reg =3D <0x0 0x47ff3000 0x0 0x1000>;
+          };
+          scmi_shm_4: sram@47ff4000 {
+              compatible =3D "arm,scmi-shmem";
+              reg =3D <0x0 0x47ff4000 0x0 0x1000>;
+          };
+
+          // Xen SCMI management channel
+          scmi_shm_1: sram@47ff1000 {
+              compatible =3D "arm,scmi-shmem";
+              reg =3D <0x0 0x47ff1000 0x0 0x1000>;
+          };
+
+          scmi_xen: scmi {
+              compatible =3D "arm,scmi-smc";
+              arm,smc-id =3D <0x82000003>; <--- Xen management agent smc-i=
d
+              #address-cells =3D < 1>;
+              #size-cells =3D < 0>;
+              #access-controller-cells =3D < 1>;
+              shmem =3D <&scmi_shm_1>; <--- Xen management agent shmem
+          };
+        };
+      };
+    };
+
+    /{
+        // Host SCMI OSPM channel - provided to the Dom0 as is if SCMI ena=
bled for it
+        scmi_shm: sram@47ff0000 {
+                compatible =3D "arm,scmi-shmem";
+                reg =3D <0x0 0x47ff0000 0x0 0x1000>;
+        };
+
+        firmware {
+            scmi: scmi {
+                compatible =3D "arm,scmi-smc";
+                arm,smc-id =3D <0x82000002>; <--- Host OSPM agent smc-id
+                #address-cells =3D < 1>;
+                #size-cells =3D < 0>;
+                shmem =3D <&scmi_shm>; <--- Host OSPM agent shmem
+
+                protocol@X{
+                };
+            };
+        };
+    };
+
+  This approach allows defining multiple SCMI Agents by adding Xen-specifi=
c properties under
+  the ``/chosen`` node to the Host Device Tree, leaving the main part unch=
anged. The Host DT
+  SCMI channel will be passed to Dom0.
+
+  The Xen management agent is described as a ``scmi_xen`` node under the `=
`xen,sci`` compatible node,
+  which is used by Xen to control other SCMI Agents in the system.
+
+  All secondary agents' configurations are provided in the ``scmi-secondar=
y-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 =3D =
<2>``, so the Secondary
+  Agents configuration will look like this:
+
+.. code-block:: dts
+
+    chosen {
+      xen {
+        xen_scmi_config {
+          compatible =3D "xen,sci";
+          scmi-secondary-agents =3D <
+                        0x82000002 &scmi_shm_0
+                        0x82000004 &scmi_shm_2
+                        0x82000005 &scmi_shm_3
+                        0x82000006 &scmi_shm_4>;
+          #scmi-secondary-agents-cells =3D <2>;
+        };
+      };
+    }
+
+  In this case, Xen will use the ``SCMI_BASE_DISCOVER_AGENT`` call to disc=
over the ``agent_id``
+  for each secondary agent. Providing the ``agent_id`` in the ``scmi-secon=
dary-agents`` property
+  allows skipping the discovery call, which is useful when the secondary a=
gent's shared memory is
+  not accessible by Xen or when boot time is important because it allows s=
kipping the agent
+  discovery procedure.
+
+.. note::
+
+    Note that Xen is the only one entry in the system which need to know a=
bout SCMI multi-agent support.
+
+- The driver implements the SCI subsystem interface required for configuri=
ng and enabling SCMI
+  functionality for Dom0/hwdom and Guest domains. To enable SCMI functiona=
lity for guest domain
+  it has to be configured with unique supported SCMI Agent_id and use corr=
esponding SCMI SMC
+  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 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 manag=
ement 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
+^^^^^^^^^^^^^^^^^^^^^^^
+Set the Dom0 SCMI agent ID in the device tree using the Xen SCMI container=
 under ``/chosen``.
+Add ``xen,dom0-sci-agent-id`` to the ``xen,sci`` node. If the property is =
absent, SCMI stays
+disabled for Dom0 and the SCMI nodes are removed from Dom0 DT.
+
+.. code-block:: dts
+
+  chosen {
+    xen {
+      ranges;
+      xen_scmi_config {
+        compatible =3D "xen,sci";
+        xen,dom0-sci-agent-id =3D <0>;  /* Dom0 agent ID */
+        /* scmi-secondary-agents and scmi_xen as shown above */
+      };
+    };
+  };
+
+The Host DT ``/firmware/scmi`` node is copied to the Dom0 DT unmodified. H=
owever, for Dom0 SCMI
+configuration, Xen actually relies on ``scmi-secondary-agents`` and ``xen,=
dom0-sci-agent-id``
+properties from the ``xen,sci`` container under ``/chosen``. If the ``/fir=
mware/scmi`` node is
+missing or disabled, or if ``xen,dom0-sci-agent-id`` is not provided, the =
Dom0 SCMI agent will not
+be configured.
+
+.. note::
+
+  The ``xen,dom0-sci-agent-id`` value must match the ``func_id`` and ``shm=
em`` pairing provided by
+  the EL3 firmware for Dom0 (for example in the ``/firmware/scmi`` node).
+
+Configure SCMI for for guest domain with toolstack
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+* In domain's xl.cfg file add **"arm_sci"** option as below
+
+::
+
+    arm_sci =3D "type=3Dscmi_smc_multiagent,agent_id=3D2"
+
+* In domain's xl.cfg file enable access to the "arm,scmi-shmem" which shou=
ld correspond
+  assigned "agent_id" for the domain, for example:
+
+::
+
+    iomem =3D [
+        "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 =3D "arm,scmi-shmem";
+           reg =3D <0x0 0x22001000 0x0 0x1000>;
+       };
+
+       firmware {
+            compatible =3D "simple-bus";
+                scmi: scmi {
+                    compatible =3D "arm,scmi-smc";
+                    arm,smc-id =3D <0x82000004>;  <--- smc-id for agent_id=
=3D2
+                    shmem =3D <&scmi_shm_0>;
+                    ...
+                }
+        }
+    }
+
+**Device specific access control**
+
+The XEN 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 p=
rovides the
+BASE_SET_DEVICE_PERMISSIONS command to configure the devices that an agent=
s have access to.
+The Host DT SCMI node should have "#access-controller-cells=3D<1>" propert=
y and DT devices should
+be bound to the SCMI node using Access Controllers bindings [3].
+
+For example:
+
+.. code-block:: dts
+
+    &i2c1 {
+            access-controllers =3D <&scmi 0>;
+    };
+
+Use domain's xl.cfg file **"dtdev"** property to assign SCMI devices from =
toolstack to the guest:
+
+::
+
+    dtdev =3D [
+        "/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=3D"scmi_smc_multiagent"
+    xen,sci-agent-id=3D2
+
+* 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 document=
ation. For example:
+
+.. code-block:: dts
+
+      scmi_shm_0: sram@22001000 {
+            compatible =3D "arm,scmi-shmem";
+            reg =3D <0x00 0x22001000 0x00 0x1000>;
+    ->        xen,reg =3D <0x0 0x47ff2000 0x0 0x1000 0x0 0x22001000>;
+    ->        xen,force-assign-without-iommu;
+      };
+
+* For SCMI device access control configure pass-through devices in the gue=
st partial DT according to
+  the dom0less documentation and ensure that devices SCMI management has "=
xen,path" property set:
+
+Example (dom0less, multi-agent):
+
+.. code-block:: dts
+
+  chosen {
+    xen {
+      ranges;
+      xen_scmi_config {
+        compatible =3D "xen,sci";
+        #address-cells =3D <2>;
+        #size-cells =3D <2>;
+        ranges;
+
+        /* Xen management channel shared memory */
+        scmi_shm_1: sram@47ff1000 {
+          compatible =3D "arm,scmi-shmem";
+          reg =3D <0x0 0x47ff1000 0x0 0x1000>;
+        };
+
+        scmi_shm_domu: sram@47ff2000 {
+          compatible =3D "arm,scmi-shmem";
+          reg =3D <0x0 0x47ff2000 0x0 0x1000>;
+        };
+
+        scmi-secondary-agents =3D <
+          0x82000004 &scmi_shm_domu 2>;
+        #scmi-secondary-agents-cells =3D <3>;
+
+        scmi_xen: scmi {
+          compatible =3D "arm,scmi-smc";
+          arm,smc-id =3D <0x82000003>;
+          #address-cells =3D <1>;
+          #size-cells =3D <0>;
+          #access-controller-cells =3D <1>;
+          shmem =3D <&scmi_shm_1>;
+        };
+      };
+    };
+
+    xen,domain@1 {
+      compatible =3D "xen,domain";
+      xen,sci_type =3D "scmi_smc_multiagent";
+      xen,sci-agent-id =3D <2>;
+      /* other domain properties here */
+    };
+  };
+
+.. code-block:: dts
+
+		i2c@e6508000 {
+            ...
+			reg =3D <0x00 0xe6508000 0x00 0x1000>;
+    ->        xen,path =3D "/soc/i2c@e6508000"
+    ->        xen,reg =3D <0x0 0xe6508000 0x0 0x1000 0x0 0xe6508000>;
+    ->        xen,force-assign-without-iommu;
+        };
--=20
2.34.1


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:37:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:37:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230665.1536143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrUG-0003g5-Ut; Fri, 13 Feb 2026 11:37:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230665.1536143; Fri, 13 Feb 2026 11:37: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 1vqrUG-0003ft-P7; Fri, 13 Feb 2026 11:37:28 +0000
Received: by outflank-mailman (input) for mailman id 1230665;
 Fri, 13 Feb 2026 11:37: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=VfN9=AR=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqrUE-0003Sj-W5
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:37:27 +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 5ab392fa-08d0-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 12:37:19 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 by DB9PR03MB7615.eurprd03.prod.outlook.com (2603:10a6:10:2ce::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 11:37:04 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 11:37: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: 5ab392fa-08d0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NQ1HjJo9IdwLh1S05uyIgmNm30dPYIgYG5+xjZrZ1SVw3oK3XiYc633hTwAUYU84r34tvL4f8+GCCl4Idr7Ap/5haYxCbsWv+FwvjFxRl0YPfy6CiX5jujF1lmCUnM4tHzeczIKccknbP3vw8hfLiJzNNYWWNa2aq2Xy6QKGVloDikR2pqOrVgLo32lqbU3n+wsimvfoEQtPBiYwJuHWokIT6+48gXGaVtbXBb/Oc5A6Nr9Yh5Ru2YCaoU9kXjJMkZQLvOgN2On96jJJEPoWZsLUJlOx9Q2lBdOVT8jyI0zFjfi2MErVHlt7trG5fA10JqRA6prjr2H3T2EhCSAQwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+6SvCWEo3a7mMe9w3p68DI4xm5bSadniLWyvykJgZ4=;
 b=eaPHWRptfqfItGJ3jJv4IPM+0njJwP0N3Vwg45YhJvtz0updxVhrZcxGtkL84waudrsaawYmza95vFi4sRnT1w9DhSCsBNpxx9kuoyILgbfrRUE66t24rXmQLqdUEfLi71sYL8Dk8YT6rnDIRWTYxPXph3WO/S6RqBHVAl6kIMqIyaTHWqWOQRN1sYETTD9s8U6EXFi/4Ia3eiAkVZ/GigTJDPT0lfkEMADcV8a4tlShoLf/qeBXf5aCB+xY3p/cYSzWxJmM47XhHzJlBkzu0/xuJCAtDNun8pPe8/9h/E/MQDm9U8R057/d9cnDpQuKZcfSfcZ7xKNA84bsnCF0uQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=L+6SvCWEo3a7mMe9w3p68DI4xm5bSadniLWyvykJgZ4=;
 b=PQk7dhiDhT1Zy6bEArilq+RYQuuxH0x1xBZ3Smeq4xTu7Nxs1LQIWvTt2tgbE2cmc1nIbHYx02Mb4UlZ8nqz2gA8RloRfF5HgKMkH6xzsxSR4FJ9bgRI4jxnuH036D231O0FFA08rmo8n48OVLISr1GH5xnJAUgbHDOeuwbMPMgNP++mmpDGYI6tO2xhgHUuILiKrtN8icw5fD0EGH1o1mXqA3E6N2Eyx7VqzIBW+D56dQ4IljUhxJZp3bYkxrOAnNGf6UDidF3CuLGjHkrGKbjSElfM4AQmTZDOdUmUcTFKgkFHlC32QdInPZcr1KYCoG5Xx380AxtELueNLSQHUg==
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>, =?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: [PATCH v10 0/6] xen/arm: scmi: introduce SCI SCMI SMC multi-agent
 support
Thread-Topic: [PATCH v10 0/6] xen/arm: scmi: introduce SCI SCMI SMC
 multi-agent support
Thread-Index: AQHcnN0TQ2fwOQh9vEukKF+VTOIgsw==
Date: Fri, 13 Feb 2026 11:37:03 +0000
Message-ID: <cover.1770982468.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_|DB9PR03MB7615:EE_
x-ms-office365-filtering-correlation-id: a5cb8268-e365-405c-97fc-08de6af435cb
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?VTQrYW9yOUxqSEpRV0hTdUdZUUZDSFlkKzk3bko1SmlpamVZVmxlMHBTUkNF?=
 =?utf-8?B?V1dwc1YvWnloK3ZsR3lqWmJwR2F0bWNEUExSQ3pucU0zS3E3Y2tOaWZuYzgv?=
 =?utf-8?B?d2Vuejhzak9xR3FGK1daUWdOMWQvOC9wWDZjMUNldmx3aEFQOHNTTGM2SFY2?=
 =?utf-8?B?cCtZdk9KeFVHL0tsdk9qTlpnZVVPQlpzN0NjeWJ3R3JHRE5tOVV2ZkYxdXAv?=
 =?utf-8?B?QTJ4VEw4MW8rYWtlNmx2RkpQMzNGTmFYYTV3WDZYdXhlL0puZXdrSjk1ampI?=
 =?utf-8?B?NFZoVEFjbW9oWnQ5bytock9taERvZUpVQ3RTOXJrQU5RbVZKNS9ZQjdjRmNl?=
 =?utf-8?B?SGpXS1BXd3F6Q2QrdVhZTFJ5QkkybFhkS2xlakIzU1lMZmNGZGhaTVZXY2hW?=
 =?utf-8?B?UFVwQWppWHJYQkNrL3ZOOWFvaXVDRGdGWHVkUDJicGxsTkJVMHFJY3N4eitq?=
 =?utf-8?B?cFJub0E5T3ZJbkJMckNrMGhIeU1pdTg0citTc0V4QWVhQjN0NjVGQkJmNGEw?=
 =?utf-8?B?UWllcCtMY1pUL1BvVHFHVnRkUXFTOFJRWWdlNnM3cWhzdXhBUFJDTkt3Vi84?=
 =?utf-8?B?M3NEKzJqSjlqQTF5RVh6QWdrNVU0Q1BzOTNVNjJ0ZWtEQUsrK3BzenRqOWw0?=
 =?utf-8?B?QkpLOWZxemxzaGhOWG5JWlhUVU0yRFVwNEN1QVhLQWtJbUZPcFpoeXlUK2I3?=
 =?utf-8?B?QmUzSEN3YjFOQTFuU1VXTklUUWZCdjNuRFZkSXgzT3B1dDFlNCszSnQ4ODZ3?=
 =?utf-8?B?NHpkRW5VSHVGaG5wR0hsMUFua3hHZHl5SG0ydXM2QmhwVW9wc0JqY1lYeDZx?=
 =?utf-8?B?OWJURS9Kc2RHenhNazM3NU4zL2taYnFHZnc4R0l5YlZIbk1ueEl3djk5Umpn?=
 =?utf-8?B?ZldXb0xGZ1BXUUs3cUxpUEVZUnN3N2Q3R09lNUEyS1lhdDFUcmlKU1dUUnpM?=
 =?utf-8?B?OGJyRzYranM0QlUyK0IrSEY1bG1yWVIwUlN0RWgzTjNFanJBam9YTVIvVEkz?=
 =?utf-8?B?cXAxM1BpQ2xxUUdtaDBmcmE4Y3ZEN3ZMb1VFTms3eHZyL0R2a1hpMTFsMXVX?=
 =?utf-8?B?dnEzY3NxV2sySzFqSEVoWFhiL3NrSEVYL3g5VXlnUEloSTF5THJiR1F0czl3?=
 =?utf-8?B?TmlpMmx0ejZJVG1rVldpVWF2QXFvNDFyZitmelhTSVJuYVdMNGZEdDV1bUxa?=
 =?utf-8?B?cUtGb29UTFpIMC9Id01NMGFRRW94UTRnLzl3RHhUeVBXTlVJZG9PaW9mMUZB?=
 =?utf-8?B?N3hacll5b096b1BzZjlHcUMvSlFkYUt0bnhuVGY2dTY2WXFESnJVKzZVLzZM?=
 =?utf-8?B?WmNEM1pDMHRoKzczS2tQeThVb3BDZSt5emxRZUgrL25iTzNGUi92Z2doQSto?=
 =?utf-8?B?Y2JJZnJFSERzUFIzVnE5NlozTW9UOW9teWhSMlhnZk56WERvVWRWZ3I0RHVL?=
 =?utf-8?B?M285Q0hXdms5Z2N1MFdNNVRLNUNXNkNuUm5GRmRJS1JiLzMzRlplV2p1SmNp?=
 =?utf-8?B?NmIrM2xLSlZSdUUvdVhjTVBJMzFmS0JFT3phanJvV0ZpZXdseWlwREhtSGx5?=
 =?utf-8?B?cG1SZnZ1NjBOelE4T242TGx6MXdZUzNxM3Q5TUtuWC9EMTdVUTkwS0FYcVlY?=
 =?utf-8?B?aG4zUm5rZENRTWhVbUJJOGlxaHJCbEk4dXluTE1PaFFwdEVBeUVZSDFHTDFO?=
 =?utf-8?B?L1NkUVRsaG5BZ2RIbkFUVExWK082RmlNVlJ2SnVvZXN4b1ZYNEtzTHJSL0Z4?=
 =?utf-8?B?aVl0dG1sSHpmY2MzODI2VG9kTkNnMW51V1I0OTFSREh3b1lIWkZuZWR1eDZS?=
 =?utf-8?B?QVF5ZGdLeXRxcWhIK24yd2RTY2gxT1grYnpGNmVXODZRQys4cStUaUVRZkd1?=
 =?utf-8?B?aUdSdTZGcnhIUlRraHBGcGhJWXRQZ1FoS3lkQVhEUzlWV24vVjZxemhYd2hl?=
 =?utf-8?B?azBsSE1aOWp3dEVzNk1ETXNSWTU3V1hjNlU1VWlWMVNHbC9ESnd3aHhJWE9X?=
 =?utf-8?B?VzB3d2xlOVlHR0htWGlEOURsdkE1amY1UnloT2Z0bWU3UW1pSDVuaVRUcFpO?=
 =?utf-8?B?d1htTU53Qm5KektIREVuVGl1c3dFeUZ0YjZEc0dYNkhONlhFNDg4cWd3WmRy?=
 =?utf-8?B?eTI1MEZaeERiNC8za3VvOUVBSUlxYkdhcldtNitpbEJ2UVJzbkpNSzNlaGQy?=
 =?utf-8?Q?3ThPzu0YvbqgOhII1uAHG20=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)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ODl2eS9KRGFiclZkSmU3YXhIb0ZkWWptVlg0c2cwVmlFYzE5Sy9wSDZ3MFRj?=
 =?utf-8?B?cmlZRmRQOU83VElucy8vZUVmVm5SQkVEclljOVFXaENWZUtZYTFVZ29wbnpt?=
 =?utf-8?B?eFNCc2hNa3pMbWNtV3Q2UVIvY2hCY0NkYVJKaFJYWm0yODNwenRvcU9GWENT?=
 =?utf-8?B?ZVRkeUl5V3FzTEU4YkRyMkpKcjdVeFlBbDBJU25iWmUycnZNTVpHaG0xQ0tD?=
 =?utf-8?B?VTVVWndDVVk4aXJsc3hSelpoT2NaN0x4M0Q1YUtaTVBxbmpERWRSWmNVTGZK?=
 =?utf-8?B?ckhsN3BIWGdGUGp1SXQ0MW1XTHZ1WWhid3lIOExlYlRQY1RRMklhYkpUR0RJ?=
 =?utf-8?B?WU5RcFJIM1FGYnN0L1JzRjllejhobWorczUyNU5qV1pzRzF0UVEvOWtKT0Nt?=
 =?utf-8?B?akhPNlo5UUd5ckRzZmZKUkd2T2lkYTdYUWF3eXJnM2E4Vy8rNDVESVYvcVYy?=
 =?utf-8?B?WEs2TG9lNUZFbHhERzhFV0FIMnpOMmMxdm9PcXUwNWFWT1VMMjA1YVlEUHNs?=
 =?utf-8?B?T1M1amJRTHRlckJ1T25Db2VHbFlLRHY0c2ZULzlsWUpmakhVeklxQVFaWk14?=
 =?utf-8?B?VVl5TlY1V2tGR3luSzN4R0lPaFcrOERWSUFLVjh1OUZKM1g5K1ZnZDhkU052?=
 =?utf-8?B?elovRWpISmw4SmdxbHhheElIbndzMG9LWnJsK3JibjFGcVpiYmc5eDFqQ2ky?=
 =?utf-8?B?Zjk0a3MyODdCVUxRUE1WQUtMd1c5dy9FL2VURW0xOW8wMTdYWTQwK1ZVanIr?=
 =?utf-8?B?TGtObGc1WTlrWVJrZGdWTEJNbkRCVXVlOEhDZUVZTlphZzI4WU1tMVBYNXRs?=
 =?utf-8?B?RG44SGhXWWduTVl5QWJPS2ZOSU95cUdNZEhWd1hVTnJZUllKdklQVWZQY0lG?=
 =?utf-8?B?MHlpRkpUMGRibXczSjdnMlk4aDBoM2xuOTc2YUdFZEFSN01adjRWVGQxdld0?=
 =?utf-8?B?MFM2aGtnNlU3M3lqQ3ZkN1JQUGFFOUxjWWMrcjhkblI3U0V2eXFtd1Uray9D?=
 =?utf-8?B?eThVY2NQUDNJL2M0bkNnTFhmUWkrZ2kzSmlFM1MyVmM1d29CZythWHBmMzBI?=
 =?utf-8?B?VkdiaFhWS0RIYXVoTXpFZEV2UTZsWUNySGJ0ZXlGbDZmdVJpbnpoM3NJSW1p?=
 =?utf-8?B?R1JvSUt1bUlMQ2lqaWxQRlIxOXRsSEhMQkYrV2lkKzEwNS9XYThrLzNIVStw?=
 =?utf-8?B?N1FOS0FSWk1ja1A1RHZEZnBsSC9oOGplNTc4Q0ZJUnlRTW43YWNQU1RYTjBC?=
 =?utf-8?B?czJTbmZjTjltKzVsVnk5R296NGUrckhoeWxpaW52QUwzNHJHc2pDWGFNNUo5?=
 =?utf-8?B?aTRqMlRwNlRUTUVia3VieWpGUzhpS0NkajZyTlZhZTlSRXdXRnhaUlhST0Fj?=
 =?utf-8?B?OFdLSnNZU21tWkdRSXZTTmxBdzU1Nm5SVmlJU3U4ZkQxeHFxU0NueExWc3ph?=
 =?utf-8?B?OVh3VEdWbUthdzl5YUFwYkZvNkFBZlhBMFhUdnBXOHhWUnViU0RZZXMrY0Yx?=
 =?utf-8?B?K1Rpek04Z1ZqTEdHeDl5SGtOanB1VU1ZQ1VZQ01lMUI3Q2VKdGowRVhVSUFE?=
 =?utf-8?B?UW5QNUV2OGJtSXpPamxTanZBOHhCZTdDQXdRRjVLSCtEN0dPYWtNdS9mVnZn?=
 =?utf-8?B?dWk4Zy9HdUd1QW14eHZ5VjJtMWRaMGsweGJhM3diRWpuaTRWLzNVWTNxak5u?=
 =?utf-8?B?RVFhdzMweS9ERi9UMEEyaEhiWkd4WXdDUzNkOVRPSjFpZzhsZndtUTI2U0tS?=
 =?utf-8?B?Sld4U2VCcEE3N2Z3b3pzZW1VYzZDOCs4UnByREZEWUMxUUpsR1VjTWpuWlAw?=
 =?utf-8?B?cW1DK0hoUVFFZXF1S0JIcncrcDFWL3crTUg3T1BvK1BSd25oT2Z4Qk4wWHEw?=
 =?utf-8?B?YTJ0eVdWYmtaZmtUaWdhVnJ0NmZJNHYyTDg1UHhEMlZ5REVqS0UrMTVXaEc5?=
 =?utf-8?B?KzRmUkVlVm8xYytFeFo2MnEwMXUrdXN2WlA1RjdNTG95RUFTRmYzb05EMnBQ?=
 =?utf-8?B?eVk2b1podmVRdGVuTnFlSzFIYlpkYVFTQk5iL3N6ZnJqRkNGYVAxcnhOb09y?=
 =?utf-8?B?b0thb2RYQzluekNZQ0t2TzRLVHZxV0Z1TTZ3aXYwbU1BNVBHVEpObWF6cU9S?=
 =?utf-8?B?anp1MXpaVXh6Rm0wODZ2K3k5QjZCaFVuWDNEeWxXZm05cUd1aUNqSTlWbmVY?=
 =?utf-8?B?THJoQlp0TUxxdllWdlNiZU9DOU9OY0VmYzJMaTZtdnZhM2toYlhLam4zSm4v?=
 =?utf-8?B?QnRxNk91enhTbjdQeXlYZVhLR3BZbjZwODlZMzM4SlBRYVNicGUxTkZ6TmI4?=
 =?utf-8?B?M01jR05STWo4dlFDS2M1Q2RsQTN1S1Y1K2pKbnJnOFl6QTN0UWVPQmkvUjdS?=
 =?utf-8?Q?bo0UzgQl1ayjvpS0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DA5064C4F442AD49B7CFBE09CCE369AA@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: a5cb8268-e365-405c-97fc-08de6af435cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2026 11:37:04.0069
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: f8f7dCVEEmxh7ybH7UtEuoxDGgahgf7g/uTGn6a/xH96wriFGZcy4f8M2wY2D9RAPkeaoZPxPy3FHHd6nuN1TXwVpIX72bTpxbPylAIHB9Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR03MB7615

SW5yb2R1Y2luZyBwYXRjaCBzZXJpZXMgd2hpY2ggaW5jbHVkZXMgaW1wbGVtZW50YXRpb24gb2Yg
dGhlIFNDSSBTQ01JDQpTTUMgbXVsdGktYWdlbnQgc3VwcG9ydC4NClRoaXMgcGF0Y2ggc2VyaWVz
IGZvbGxvd3MgUkZDIHY1IFszXSBzZXJpZXMgd2hpY2ggd2FzIGludHJvZHVjaW5nIGJvdGgNClND
TUkgc2luZ2xlLWFnZW50IGFuZCBtdWx0aS1hZ2VudCBzdXBwb3J0LiBBZnRlciB0aGUgZGlzY3Vz
c2lvbiBpdCB3YXMNCmRlY2lkZWQgdG8gc3BsaXQgZmVhdHVyZXMgYW5kIHVwc3RyZWFtIHNpbmdl
LWFnZW50IHN1cHBvcnQgZmlyc3QuIFRoaXMNCmZlYXR1cmUgaXMgbWVyZ2VkIGZvciBub3cgdG8g
djQuMjEtcmMyLg0KSSdtIHN0YXJ0aW5nIHRoaXMgcGF0Y2ggc2VyaWVzIGZyb20gdjYgdG8gc2F2
ZSB0aGUgZGlzY3Vzc2lvbiBoaXN0b3J5DQphbmQgZG9uJ3QgYnJlYWsgY2hhbmdlcyBsb2cuDQoN
ClBhdGNoIC0geGVuL2RvbWN0bDogZXh0ZW5kIFhFTl9ET01DVExfYXNzaWduX2RldmljZSB0byBo
YW5kbGUgbm90DQpvbmx5IGlvbW11DQotIGFkZCBjaGFpbmdlZCBoYW5kbGluZyBvZiBhc3NpZ25l
ZCBEVCBkZXZpY2VzIHRvIHN1cHBvcnQNCmFjY2Vzcy1jb250cm9sbGVyIGZ1bmN0aW9uYWxpdHkg
dGhyb3VnaCBTQ0kgZnJhbWV3b3JrLg0KQ2hhbmdlIHdhcyBkb25lIGluIHR3byBwYXJ0czoNCiAt
IGNhbGwgdG8gc2NpX2RvX2RvbWN0bCgpIHRvIGRvX2RvbWN0bCgpDQogLSB1cGRhdGUgaW9tbXVf
ZG9fZHRfZG9tY3RsKCkgdG8gY2hlY2sgZm9yIGR0X2RldmljZV9pc19wcm90ZWN0ZWQoKQ0KIGFu
ZCBub3QgZmFpbCBpZiBEVCBkZXZpY2UgaXMgbm90IHByb3RlY3RlZCBieSBJT01NVQ0KDQpQYXRj
aCAtIHhlbi9hcm06IHNjbWk6IGludHJvZHVjZSBTQ0kgU0NNSSBTTUMgbXVsdGktYWdlbnQgZHJp
dmVyDQotIGFkZCBYZW4tc3BlY2lmaWMgU0NNSSBjb250YWluZXIgY29tcGF0aWJsZSBgeGVuLHNj
aWANCiAgdW5kZXIgYC9jaG9zZW4veGVuYDsgWGVuIGJpbmRzIG9ubHkgdG8gdGhlIGBhcm0sc2Nt
aS1zbWNgIGluc2lkZSBpdCBhbmQNCiAgaWdub3JlcyBvdGhlciBTQ01JIG5vZGVzIChlLmcuIHVu
ZGVyIGAvZmlybXdhcmVgKS4NCi0gYWRkIGBzY21pLXNlY29uZGFyeS1hZ2VudHNgIGFuZCBgI3Nj
bWktc2Vjb25kYXJ5LWFnZW50cy1jZWxsc2AgdG8gZGVzY3JpYmUNCiAgZnVuY19pZC9zaG1lbS8o
b3B0aW9uYWwgYWdlbnRfaWQpIHR1cGxlcyBmb3Igc2Vjb25kYXJ5IGFnZW50cy4NCi0gZWFjaCBn
dWVzdCB1c2luZyBTQ01JIHN1cHBsaWVzIGl0cyBhZ2VudF9pZCAoZG9tMCB2aWENCiAgYHhlbSxk
b20wLXNjaS1hZ2VudC1pZD1gIHBhcmFtZXRlciBpbiB4ZW4sc2NpIGNvbXBhdGlibGUgbm9kZSwN
CiAgdG9vbHN0YWNrIHZpYSBgYXJtX3NjaSA9ICJ0eXBlPXNjbWlfc21jX211bHRpYWdlbnQsYWdl
bnRfaWQ9Li4uImAsIGRvbTBsZXNzDQogIHZpYSBgeGVuLHNjaV90eXBlYCArIGB4ZW4sc2NpLWFn
ZW50LWlkYCBpbiBgeGVuLGRvbWFpbmApLg0KLSBmYWN0b3Igb3V0IFNDTUkgZ2VuZXJpYyBkZWZp
bml0aW9ucyBhbmQgc2htZW0gY29kZS4NCi0gcGFzc3Rocm91Z2ggY29uZmlndXJhdGlvbiBmb3Ig
U0NNSSBndWVzdHMgbWlycm9ycyBvdGhlciBIVyBwYXNzdGhyb3VnaC4NCg0KUGF0Y2ggLSBkb2Nz
OiBhcm06IGFkZCBTQ0kgU0NNSSBTTUMgbXVsdGktYWdlbnQgZHJpdmVyIGRvY3MNCi0gZG9jdW1l
bnQgdGhlIFhlbiBTQ01JIGNvbnRhaW5lciB1bmRlciBgL2Nob3Nlbi94ZW4veGVuX3NjbWlfY29u
ZmlnYCBhbmQgdGhlDQogIG1lZGlhdG9y4oCZcyBiaW5kaW5nIHJ1bGVzOyB1cGRhdGUgZXhhbXBs
ZXMgYWNjb3JkaW5nbHkuDQoNCkFsbCBYZW4tc3BlY2lmaWMgU0NNSSBjb25maWd1cmF0aW9uIG5v
dyBsaXZlcyB1bmRlciBgL2Nob3Nlbi9gDQp0byBrZWVwIGhvc3QgRFQgY2hhbmdlcyBpc29sYXRl
ZCB3aGlsZSBsZWF2aW5nIHRoZSBob3N0IGAvZmlybXdhcmUvc2NtaWANCnVudG91Y2hlZCBmb3Ig
RG9tMCBjb25zdW1wdGlvbi4NCg0KQ29kZSBjYW4gYmUgZm91bmQgYXQ6DQpodHRwczovL2dpdGh1
Yi5jb20vb2xla3NpaW1vaXNpZWlldi94ZW4vdHJlZS9zY21pX21hX3Vwc3RydjYNCg0KWzFdIFJG
QyB2MjoNCmh0dHA6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9qZWN0L3hlbi1kZXZlbC9jb3Zl
ci9jb3Zlci4xNjQ0MzQxNjM1LmdpdC5vbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbS8NClsyXSBS
RkMgdjM6DQpodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3Byb2plY3QveGVuLWRldmVsL3Bh
dGNoLzIwMjUwMzExMTExNjE4LjE4NTA5MjctMS1ncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNvbQ0K
WzNdIFJGQyB2NToNCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNzUz
MTg0NDg3LmdpdC5vbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbS8NCls0XSBTQ01JIHNpbmdsZS1h
Z2VudDoNCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3hlbi1kZXZlbC9jb3Zlci4xNzU2OTk1NTk1
LmdpdC5vbGVrc2lpX21vaXNpZWlldkBlcGFtLmNvbS8NClNDTUkgc3BlYzoNCmh0dHBzOi8vZGV2
ZWxvcGVyLmFybS5jb20vZG9jdW1lbnRhdGlvbi9kZW4wMDU2L2UvP2xhbmc9ZW4NCg0KU0NNSSBi
aW5kaW5nczoNCmh0dHBzOi8vd2ViLmdpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVs
L2dpdC90b3J2YWxkcy9saW51eC5naXQvdHJlZS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu
ZGluZ3MvZmlybXdhcmUvYXJtLHNjbWkueWFtbA0KaHR0cHM6Ly93ZWIuZ2l0Lmtlcm5lbC5vcmcv
cHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC90cmVlL0RvY3VtZW50
YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hY2Nlc3MtY29udHJvbGxlcnMvYWNjZXNzLWNvbnRy
b2xsZXJzLnlhbWwNCg0KUmVmZXJlbmNlIEVMMyBGVzoNClJQSTU6IGh0dHBzOi8vZ2l0aHViLmNv
bS94ZW4tdHJvb3BzL2FybS10cnVzdGVkLWZpcm13YXJlL2NvbW1pdHMvcnBpNV9kZXYvDQpSZW5l
c2FzIHY0aDoNCmh0dHBzOi8vZ2l0aHViLmNvbS9HcnlnaXJpaVMvYXJtLXRydXN0ZWQtZmlybXdh
cmUvY29tbWl0cy9yY2FyX2dlbjRfdjIuN192NHgtc2NtaV91cGQvDQoNCmJhc2UtY29tbWl0OiBk
YmU2MGYyNDRjIChVcGRhdGUgWGVuIHRvIDQuMjEsIDIwMjUtMDItMjEpDQoNCkNoYW5nZXMgaW4g
djEwOg0KLSByZW1vdmUgdW51c2VkIHNjaV9kb19kb21jdGwgc3R1YiBmcm9tIHNjaS5oDQotIHJl
bW92ZWQgZXh0cmEgaW5jbHVkZSBpbiBtZW1jcHkte3RvL2Zyb219aW8uYyBmaWxlcw0KLSBGaXgg
dGFicyBpbiBNQUlOVEFJTkVSUyBmaWxlDQotIHJlbW92ZSBkdXBsaWNhdGUgU1BEWCB0YWcgZnJv
bSBzY21pLXNobWVtLmMNCi0gYWRkIGNhc3QgdG8gQVJNX1NNQ0NDX0lOVkFMSURfUEFSQU1FVEVS
IHRvIHNldHRsZSB0aGUgc2lnbiBzaW5jZQ0KQVJNX1NNQ0NDX0lOVkFMSURfUEFSQU1FVEVSIGlz
IC0zIHdoaWNoIGlzIHBhcnQgb2YgdGhlIHNwZWMgYW5kIHJlc3ANCmlzIHRoZSBkZWZhdWx0IHNt
Y2NjIGNhbGwgc3RydWN0dXJlLg0KLSB1cGRhdGUgZnJlZV9jaGFubmVsX2xpc3QuIEFkZCBzcGlu
bG9jayB0byBhdm9pZCByYWNlIGNvbmRpdGlvbiBhbmQNCmEgY29tbWVudCB3aXRoIGEgZGVzY3Jp
cHRpb24gb2YgdGhlIGZ1bmN0aW9uIHdvcmsNCi0gcHJlc2VydmUgZXJyb3Igb2Ygc21jX2NyZWF0
ZV9jaGFubmVsIGluIHNjbWlfcHJvYmUNCi0gY2hlY2sgc2NtaSBzaG1lbSBhZGRyZXNzIGFsaWdu
bWVudCBhcyB3ZWwgYXMgaXQgaXMgZG9uZSBmb3Igc2l6ZQ0KLSBjaGVjayBmb3IgZC0+YXJjaC5z
Y2lfZGF0YSAhPSBOVUxMIGluIHNjbWlfaGFuZGxlX2NhbGwNCi0gdXNlIFNDTUlfU0hNRU1fTUFQ
UEVEIHNpemUgZm9yIGlvbWVtX3Blcm1pdF9hY2Nlc3MNCi0gY2hhbmdlIGxlbiB0eXBlIHRvIHVu
c2lnbmVkIGluIHNobWVtX3tnZXR8cHV0fV9tZXNzYWdlDQotIHJlbmFtZSBzaG1lbV9jaGFubmVs
X2lzX2ZyZWUgdG8gc2htZW1fY2hhbm5lbF9zdGF0dXMNCi0gYWRkIGNvbW1lbnQgYWJvdXQgc2tp
cHBpbmcgbWVzc2FnZSBzdGF0dXMgd2hlbiBnZXR0aW5nIG1lc3NhZ2UgcmVzcG9uc2UNCi0gU2V0
IGNvcnJlY3QgYWdlbnRfaWQgcmFuZ2VzIGZvciBkb20wbGVzcyBhbmQgYSB0b29sc3RhY2suIEFn
ZW50X2lkIDANCmlzIG5vdCBiaW5kZWQgZm9yIGRvbTAgc28gY2FuIGJlIHJldXNlZC4gQWxzbyBt
ZW50aW9uZWQgdGhhdA0KVUlOVDhfTUFYICgyNTUpIGlzIHRyZWF0ZWQgYXMgaW52YWxpZCBhZ2Vu
dF9pZC4NCi0gU3BsaXQgaHlwZXJ2aXNvciBhbmQgdG9vbHN0YWNrIGNoYW5nZXMgaW50byBzZXBh
cmF0ZSBjb21taXRzDQotIG1vdmUgaW5pdCBsaXN0IGFuZCBzcGluIGluaXQgYWZ0ZXIgaW5pdGlh
bCBjaGVja3MgaW4gcHJvYmUgY2FsbA0KLSBmaXggdHlwbyBpbiBjb21tZW50cw0KLSBjbGVhbiBy
ZXNvdXJjZXMgd2hlbiBzY2lfcmVnaXN0ZXIgcmV0dXJucyBhbiBlcnJvci4NCi0gU3BsaXQgaHlw
ZXJ2aXNvciBhbmQgdG9vbHN0YWNrIGNoYW5nZXMgaW50byBzZXBhcmF0ZSBjb21taXRzDQotIHJl
cGhyYXNlIHNlY3Rpb24gYWJvdXQgL2Zpcm13YXJlL3NjbWkuIE1lbnRpb25lZCB0aGF0IHRoaXMg
bm9kZSBpcw0KdGFrZW4gZnJvbSBIb3N0IERUIGFuZCBjb3BpZWQgdW5tb2RpZmllZC4NCi0gZml4
IHhlbixyZWcgYWRkcmVzcyBmb3Igc2Vjb25kYXJ5IGRvbWFpbnMgZm9yIERvbTBsZXNzIGNvbmZp
Z3VyYXRpb24NCg0KQ2hhbmdlcyBpbiB2OToNCi0gdHJlYXQgU0NJIGFzIGEgZ2F0ZSBmb3IgWEVO
X0RPTUNUTF8qYXNzaWduX2RldmljZTogYWJvcnQgYmVmb3JlDQpJT01NVSBpZiBzY2lfZG9fZG9t
Y3RsKCkgcmV0dXJucyBhbiBlcnJvciBvdGhlciB0aGFuIC1FTlhJTywgaW5zdGVhZA0Kb2YgdHJ5
aW5nIHRvIHByb3BhZ2F0ZSBTQ0kgZXJyb3JzIGFmdGVyIGEgc3VjY2Vzc2Z1bCBJT01NVQ0Kb3Bl
cmF0aW9uLiBUaGlzIGF2b2lkcyBwYXJ0aWFsIHN1Y2Nlc3MgYW5kIHRoZSBuZWVkIGZvciBJT01N
VSByb2xsYmFjay4NCi0gcmVtb3ZlIGVhcmx5IHJldHVybiBmcm9tIGRvX2RvbWN0bCgpIGluIHRo
ZSBhc3NpZ25fZGV2aWNlDQpwYXRoIHRvIGtlZXAgUkNVIGhhbmRsaW5nIGludGFjdC4NCi0gY2hh
bmdlIElTX0VOQUJMRUQoKikgdG8gI2lmZGVmIGluIHNjaV9kb19kb21jdGwgcXVhcmQNCi0gcmV3
b3JkIGNvbW1pdCBkZXNjcmlwdGlvbiB0byByZWZlciB0byBtZW1jcHlfZnJvbWlvIGFuZCBtZW1j
cHlfdG9pbw0KLSBvcmRlcmluZyBvYmoteSBpbiBNYWtlZmlsZQ0KLSByZW5hbWUgQUxMX0xJQlMg
dG8gQVJDSF9MSUJTDQotIGRyb3AgaW8uaCBhbmQgbW92ZSBkZWZpbml0aW9ucyB0byB0aGUgY29t
bW9uIGhlYWRlciwgZml4IGNvbW1lbnRzIHRvDQpiZSBhcmNoIG5ldXRyYWwNCi0gdXBkYXRlIGNv
bW1lbnRzIGZvciBtZW1jcHlfe2Zyb20vdG99aW8gaW1wbGVtZW50YXRpb24NCi0gc29ydCBhbmQg
cmVmYWN0b3IgTUFJTlRBSU5FUlMgZW50aWVzDQotIHJlbW92ZSBTcHVyaW91cyBjaGFuZ2VzDQot
IGFkZCBleHRyYSBjaGVjayB0byBhdm9pZCBBU1NFUlQgd2hlbiBjYWxsaW5nIHVubWFwX2NoYW5u
ZWxfbWVtb3J5DQpmcm9tIGFzc2lnbiBkZXZpY2UgbWV0aG9kDQotIHNldCBjb3JyZWN0IHR4IGZs
YWcgdG8gU0NNSV9CQVNFX0FHRU5UX1BFUk1JU1NJT05TX1JFU0VUIHdoZW4NCmZyZWVpbmcgcmVz
b3VyY2VzLiBGbGFnIHNob3VsZCBiZSBzZXQgdG8gMSBhY2NvcmRpbmcgdG8gdGhlDQpzZWN0aW9u
IDQuMi4yLjEyIFswXS4NCi0gZml4IGR0IG5vZGUgY29wbWFyaW5nDQotIG1vdmVkIGNoYW5uZWwt
PnNobWVtIGNoZWNrIGZyb20gQVNTRVJUIGluIHVubWFwX21lbW9yeV9jaGFubmVsIHRvDQoiaWYi
IHN0YXRlbWVudC4gVGhpcyB3aWxsIHByZXZlbnQgZmlyaW5nIEFTU0VSVCBpZg0KdW5tYXBfY2hh
bm5lbF9tZW1vcnkgd2FzIGNhbGxlZCB0d2ljZSBvbiB0aGUgc2FtZSBjaGFubmVsLg0KDQpDaGFu
Z2VzIGluIHY4Og0KLSBjaGVjayBmb3IgQ09ORklHX0FSTV9TQ0kgdG8gYmUgZWJhYmxlZCBpbnN0
ZWFkIG9mIENPTUZJR19BUk0gYmVmb3JlDQpjYWxsaW5nIHNjaV9kb19kb21jdGwNCi0gcmV3b3Jr
IHNjaV9kb19kb21jdGwgY2FsbCB0byBhdm9pZCBleHRyYSBjaGVja3MsIGltcHJvdmVkIGVycm9y
DQpoYW5kbGluZy4NCi0gZG8gbm90IHByb3BhZ2F0ZSByZXQxIGlmIHNjaV9kb19kb21jdGwgcmV0
dXJuZWQgcG9zaXRpdmUgcmV0DQotIHVwZGF0ZWQgY29tbWVudCBpbiBkb21jdGwuYyBjb2RlDQot
IHN3aXRjaGVkIHRvIG9yZGVyZWQgYWNjZXNzb3JzIHRvIGFkZHJlc3MgdGhlIG9yZGVyaW5nIGFu
ZCBiYXJyaWVyDQpjb25jZXJucy4NCi0gdXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbiB0byBtYXRj
aCB0aGUgaW1wbGVtZW50YXRpb24gYW5kIGV4cGxpY2l0bHkNCnN0YXRlIHRoZSBzdXBwb3J0ZWQg
YWNjZXNzIHNpemVzIGFuZCBncmFudWxhcml0eS4NCi0gcmVuYW1lIG1lbWNweV8qIGltcGxlbWVu
dGF0aW9uIGZpbGVzIHRvIG1lbWNwdS0qIHRvIGZvbGxvdyBuYW1pbmcNCmNvbnZlbnNpb24NCi0g
Zml4IGluZGVudGF0aW9uIHRvIG1hdGNoIFhlbiBzdHlsZQ0KLSBmaXggaW50ZW5kYXRpb24gdG8g
bWF0Y2ggWGVuIHN0eWxlDQotIG1vdmUgbWVtY3B5LXtmcm9tL3RvfWlvIHRvIG1vcmUgY29udmVu
aWVudCBsaWJyYXJ5IHBsYWNlDQotIHVwZGF0ZSB4ZW5fc2NtaSBmdW5jX2lkIGluIGNvbW1pdCBk
ZXNjcmlwdGlvbg0KLSB1cGRhdGVkIGRvY3VtZW50YXRpb24gd2l0aCB0aGUgbmV3IERUIGZvcm1h
dA0KLSB1cGRhdGVkIG9wdF9kb20wX3NjbWlfYWdlbnRfaWQgc2V0dGluZyB0byBhdm9pZCBpdCB0
byBiZSBlcXVhbA0KU0NNSV9BR0VOVF9JRF9JTlZBTElELg0KLSBjaGFuZ2VkIFNDTUlfQUdFTlRf
SURfSU5WQUxJRCBmcm9tIDB4ZmYgdG8gVUlOVDhfTUFYIHdoaWNoIG1ha2VzDQpjb2RlIG1vcmUg
Y2xlYXIgc2hvd2luZyB0aGF0IFVJTlQ4X01BWCBpcyB0aGVhdGVkIGxpa2UgaW52YWxpZA0KYWdl
bnRfaWQgYW5kIGNvdWxkbid0IGJlIHVzZWQuIEFsc28gZXhjbHVkZWQgU0NNSV9BR0VOVF9JRF9J
TlZBTElEDQpmcm9tIGFjY2VwdGFibGUgdmFsdWUgcmFuZ2UNCi0gcmVtb3ZlIG91dGRhdGVkIHhl
bixjb25maWcgcHJvcGVydHkgaWdub3JlLCBhZGRlZCB4ZW4sc2NpIGNvbXBhdGlibGUNCnRvIHNr
aXBfbWF0Y2hlcyBpbiBoYW5kbGVfbm9kZQ0KLSBhZGQgZG9jdW1lbnRhdGlvbiBmb3IgcHJlLWV4
aXN0aW5nIHNjbWktc21jLXBhc3N0aHJvdWdoIGNvbW1hbmQgbGluZQ0Kb3B0aW9uIGluIGFscGhh
YmV0aWNhbGx5IGNvcnJlY3QgbG9jYXRpb24gKGluICdzJyBzZWN0aW9uKQ0KLSBhZGQgbm90ZSB0
byBjb21taXQgZGVzY3JpcHRpb24gYWJvdXQgZG9jdW1lbnRhdGlvbiBmb3IgcHJldmlvdXNseQ0K
dW5kb2N1bWVudGVkIHNjbWktc21jLXBhc3N0aHJvdWdoDQotIEZpeCBTTUMgSURzIGluIERUIGV4
YW1wbGVzIChYZW4gbWFuYWdlbWVudCB1c2VzIDB4ODIwMDAwMDMsIERvbTAgdXNlcyAweDgyMDAw
MDAyKQ0KLSBBZGQgZXhwbGljaXQgbm90ZSBleHBsYWluaW5nIHdoeSBEb20wIGFuZCBYZW4gY2hh
bm5lbHMgZG8gbm90IGNvbmZsaWN0DQotIERvY3VtZW50IGRvbTBsZXNzIG11bHRpLWFnZW50IGNv
bmZpZ3VyYXRpb24gZXhhbXBsZSAoeGVuLHNjaV90eXBlIC8geGVuLHNjaS1hZ2VudC1pZCkNCi0g
QWRkIHNjbWlfeGVuIG5vZGUgdG8gYWdlbnQtZGlzY292ZXJ5IGV4YW1wbGUgd2l0aCAjc2NtaS1z
ZWNvbmRhcnktYWdlbnRzLWNlbGxzID0gMg0KLSBEcm9wIGRvbTA9c2NpLWFnZW50LWlkIGNvbW1h
bmQgbGluZSBoYW5kbGluZzsgRG9tMCBTQ01JIGlzIG5vdyBlbmFibGVkIHZpYQ0KICB4ZW4sZG9t
MC1zY2ktYWdlbnQtaWQgaW4gdGhlIHhlbixzY2kgRFQgY29udGFpbmVyDQotIFJlZnJlc2ggZG9j
cyBhbmQgZXhhbXBsZXMgdG8gbWVudGlvbiB0aGUgRFQgcHJvcGVydHkgaW5zdGVhZCBvZiB0aGUg
Y21kbGluZSBvcHRpb24NCi0gdXBkYXRlIGRvY3VtZW50YXRpb24gdG8gbWF0Y2ggdGhlIGxhc3Qg
RFQgZm9ybWF0DQotIGZpeGVkIFJTVDogIi4uLiBjb2RlLWJsb2NrOjogZHRzIiAtPiAiLi4gY29k
ZS1ibG9jazo6IGR0cyINCi0gdXBkYXRlIGRvY3VtZW50YXRpb24gd2l0aCBkb20wbGVzcyBjb25m
aWd1cmF0aW9uIGV4YW1wbGUNCi0gdXBkYXRlIGRvY3VtZW50YXRpb24gd2l0aCBuZXcgcGFyYW0g
eGVuLGRvbTAtc2NpLWFnZW50LWlkDQppbnN0ZWFkIG9mIHRoZSBjb21tYW5kIGxpbmUgcGFyYW1l
dGVyDQoNCkNoYW5nZXMgaW4gdjc6DQotIHVwZGF0ZSBkb21jdGwgdG8gYnVpbGQgb24gYm90aCBB
cm0gYW5kIHg4NiBwbGF0Zm9ybXMNCi0gbW92ZSByZXQxIGRlY2xhcmF0aW9uIHRvIHRoZSB0b3Ag
b2YgdGhlIGZ1bmN0aW9uIGFzIHJlcXVpcmVkIGJ5IGNvZGUNCnN0eWxlDQotIHg4NiBndWlkYW5j
ZTogcmVtb3ZlZCB0aGUgc3BlY3VsYXRpdmUgbm90ZTsgaGVhZGVyIG5vdyBqdXN0IHNheXMNCiAg
ZWFjaCBhcmNoIHN1cHBsaWVzIGl0cyBvd24gaW1wbGVtZW50YXRpb24gb3IgbWFjcm8uDQotIG5h
bWUgc3BhY2luZzogZHJvcHBlZCB0aGUgZG91YmxlLXVuZGVyc2NvcmU7IHRoZSBoZWxwZXJzIGFy
ZSBub3cNCiAgbWVtY3B5X2Zyb21pbyAvIG1lbWNweV90b2lvLiBUaGUgaGVhZGVyIGFsc28gZXhw
bGljaXRseSBhbGxvd3MgYW4NCiAgYXJjaCB0byBkZWZpbmUgdGhlc2UgYXMgbWFjcm9zIGJlZm9y
ZSBpbmNsdWRpbmcgaXQuDQotIHVwZGF0ZWQgaW8uYyB0byBrZWVwIDMyLWJpdCB0cmFuc2ZlcnMg
c2FmZSBvbiBhcm0zMg0KLSBtb3ZlZCB0byBfX3Jhd19yZWFkKi9fX3Jhd193cml0ZSogYWNjZXNz
b3JzIHRvIGF2b2lkIGVuZGlhbm5lc3MgY29udmVyc2lvbi4NCi0gc3BsaXQgdGhlIGhlbHBlcnMg
aW50byBzZXBhcmF0ZSBjb21waWxhdGlvbiB1bml0cw0KLSByZXdvcmsgc2NtaSBub2RlcyBmb3Ig
eGVuIHRvIG1hdGNoIG9uIGNvbXBhdGlibGUgc3RyaW5nIGluc3RlYWQgb2YNCnRoZSBkaXJlY3Qg
cGF0aA0KLSB1cGRhdGUgZG9jdW1lbnRhdGlvbiBpbiBzZWN0aW9uIG9mIHRoZSB4ZW5fc2NtaSBj
b25maWd1cmF0aW9uIHdoaWNoDQppcyBtYXRjaGVkIGJ5ICJ4ZW4sc2NpIiBjb21wYXRpYmxlIGlu
c3RlYWQgb2YgdGhlIGRpcmVjdCBwYXRoLg0KDQpDaGFuZ2VzIGluIHY2Og0KLSBjaGFuZ2UgaW9t
bXVfZG9fZG9tY3RsIGFuZCBzY2lfZG9fZG9tY3RsIGNvbW1hbmQgb3JkZXIgYW5kDQpjYWxsIHNj
aV9kb19kb21jdGwgZmlyc3Qgd2hpY2ggd2lsbCBwcm9kdWNlIGNsZWFuZXIgY29kZSBwYXRoLg0K
QWxzbyBkcm9wcGVkIGNoYW5naW5nIHJldHVybiBjb2RlIHdoZW4gaW9tbXUgd2FzIGRpc2FibGVk
IGluDQppb21tdV9kb19kb21jdGwuDQotIHNvcnRlZCBvYmpzIGluIE1ha2VmaWxlIGFsaGFiZXRp
Y2FsbHkNCi0gYWRkZWQgbmV3bGluZSBhdCB0aGUgZW5kIG9mIE1ha2VmaWxlDQotIHVzZWQgdWlu
dHtOfV90IGludGVhZCBvZiB1e059DQotIGFkZCBjb21tZW50IGFib3V0IHdoeSAzMiBiaXQgSU8g
b3BlcmF0aW9ucyB3ZXJlIHVzZWQNCi0gdXBkYXRlZCBjYXN0IG9wZXJ0YWlvbnMgdG8gYXZvaWQg
ZHJvcHBpbmcgY29uc3RuZXNzIHdoaWNoIGlzIHdyb25nDQotIG1vdmUgZnVuY3Rpb24gZGVmaW5p
dGlvbnMgdG8gZ2VuZXJpYyBwbGFjZSBzbyB0aGUgY291bGQgYmUgcmV1c2VkIGJ5DQpvdGhlciBh
cmNoDQotIGFkZCBTUERYIHRhZyB0byBpby5jDQotIHVwZGF0ZWQgc2NtaS1zaG1lbSB0byB1c2Ug
aW8uaCBmcm9tIGdlbmVyaWMgbG9jYXRpb24NCi0gdXBkYXRlIHNjbWlfYWdlbnRfaWQgcGFyYW1l
dGVyIHRvIGJlIHByb3ZpZGVkIGluc2lkZSBkb20wPSBwYXJhbWV0ZXINCmxpc3QgYW5kIGhhdmUg
dGhlIGZvbGxvd2luZyBmb3JtYXQgImRvbTA9c2NpLWFnZW50LWlkPTAiDQpUaGlzIGNoYW5nZSB3
YXMgZG9uZSBhcyBhIHJlc3BvbnNlIGZvciBTdGVmYW5vIGNvbW1lbnQgYW5kDQpyZXF1aXJlcyBh
IGxvdCBvZiBjb2RlIGNoYW5nZXMsIGJ1dCBwcm9kdWNlcyBtdWNoIGNsZWFuZXIgc29sdXRpb24N
CnRoYXQncyB3aHkgSSd2ZSBhZGRlZCBpdCB0byB0aGUgY29kZS4NCi0gZml4IGZpbGUgY29tbWVu
dHMgYW5kIHJldHVybiBjb2Rlcw0KLSBmaXggbGVuZ2h0IGNoZWNrcyBpbiBzaG1lbV97Z2V0LHB1
dH1fbWVzc2FnZSB0byB1c2Ugb2Zmc2V0b2YNCi0gcmVtb3ZlIGxlbiBtZW1iZXIgZnJvbSBzY21p
X2NoYW5uZWwgc3RydWN0dXJlIGFzIGl0IGlzIG5vdCB1c2VkDQotIHNldCBzY21pLXNlY29uZGFy
eS1hZ2VudHMgcHJvcGVydHkgdG8gYmUgbWFuZGF0b3J5IHNpbmNlIGlmIG5vDQpzZWNvbmRhcnkg
YWdlbnRzIHdlcmUgcHJvdmlkZWQgdGhlbiB0aGVyZSBpcyBubyBzZW5jZSB0byBlbmFibGUgc2Nt
aQ0Kd2hlbiBubyBzZWNvbmRhcnkgYWdlbnRzIGFyZSBwb3B1bGF0ZWQgdG8gdGhlIERvbWFpbnMN
Ci0gdXBkYXRlIGRvY3VtZW50YXRpb24gaW4gYm9vdGluZy50eHQsIGFkZGVkIHhlbl9zY21pIG5v
ZGUgdG8gdGhlDQpleGFtcGxlDQotIGFkanVzdCBkLT5hcmNoLnNjaV9lbmFibGVkIHZhbHVlIGlu
IHNjbWlfZG9tYWluX2Rlc3Ryb3kNCi0gZml4IGxvY2sgbWFuYWdlbWVudCBpbiBzbWNfY3JlYXRl
X2NoYW5uZWwgY2FsbA0KLSBhdm9pZCBleHRyYSBtYXBfY2hhbm5lbF9tZW1vcnkgY29tbWFuZCBm
b3IgWGVuIG1hbmFnZW1lbnQgY2hhbm5lbA0KYmVjYXVzZSBjb2xsZWN0X2FnZW50X2lkIGNhbGwg
dW5tYXBzIG1lbW9yeSBpZiBET01JRF9YRU4gaXMgbm90DQpzZXQuIFNvIGZvciBYZW4gbWFuYWdl
bWVudCBjaGFubmVsIHdlIGNhbiBpbml0IGRvbWFpbl9pZCBhZCBET01JRF9YRU4NCmJlZm9yZSBj
YWxsaW5nIGNvbGxlY3RfYWdlbnRfaWQgc28gbWVtb3J5IHNob3VsZG4ndCBiZSB1bm1hcHBlZC4N
Ci0gcmVtb3ZlIGFsbCBIVkMgbWVudGlvbnMgZnJvbSB0aGUgbXVsdGktYWdlbnQgZG9jDQotIHVw
ZGF0ZSBzY2ktYWdlbnQtaWQgcGFyYW1ldGVyIGRlc2NyaXB0aW9uIGluIHRoZSBkb2N1bWVudGF0
aW9uDQotIGFkZCBtaXNzaW5nIFNpZ24tb2YNCi0gbWlub3IgZml4ZXMgYWNyb3NzIHRoZSBkb2N1
bWVudA0KDQpDaGFuZ2VzIGluIHY1Og0KLSByZXR1cm4gLUVJTlZBTCBpZiBtZWRpYXRvciB3aXRo
b3V0IGFzc2lnbl9kdF9kZXZpY2Ugd2FzIHByb3ZpZGVkDQotIGludmVydCByZXR1cm4gY29kZSBj
aGVjayBmb3IgaW9tbXVfZG9fZG9tY3RsIGluDQpYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2UgZG9t
Y3RsIHByb2Nlc3NpbmcgdG8gbWFrZSBjbGVhbmVyIGNvZGUNCi0gY2hhbmdlIC1FTk9UU1VQUCBl
cnJvciBjb2RlIHRvIC1FTlhJTyBpbiBzY2lfZG9fZG9tY3RsDQotIGhhbmRsZSAtRU5YSU8gcmV0
dXJuIGNvbWRlIG9mIGlvbW11X2RvX2RvbWN0bA0KLSBsZWF2ZSAhZHRfZGV2aWNlX2lzX3Byb3Rl
Y3RlZCBjaGVjayBpbiBpb21tdV9kb19kdF9kb21jdGwgdG8gbWFrZQ0KY29kZSB3b3JrIHRoZSBz
YW1lIHdheSBpdCdzIGRvbmUgaW4gImhhbmRsZV9kZXZpY2UiIGNhbGwgd2hpbGUNCmNyZWF0aW5n
IGh3ZG9tKGRvbTApIGFuZCAiaGFuZGxlX3Bhc3N0aHJvdWdoX3Byb3AiIGNhbGwgZm9yIGRvbTBs
ZXNzDQpjcmVhdGlvbg0KLSBkcm9wIHJldHVybiBjaGVjayBmcm9tIHNjaV9hc3NpZ25fZHRfZGV2
aWNlIGNhbGwgYXMgbm90IG5lZWRlZA0KLSBkbyBub3QgcmV0dXJuIEVJTlZBTCB3aGVuIGFkZGln
bl9kdF9kZXZpY2UgaXMgbm90IHNldC4gVGhhdCBpcw0KYmVjYXVzZSB0aGlzIGNhbGxiYWNrIGlz
IG9wdGlvbmFsIGFuZCBub3QgaW1wbGVtZW50ZWQgaW4gc2luZ2xlLWFnZW50IGRyaXZlcg0KLSBt
b3ZlIG1lbWNweV90b2lvL2Zyb21pbyB0byB0aGUgZ2VuZXJpYyBwbGFjZQ0KLSBmaXggZGV2aWNl
LXRyZWUgZXhhbXBsZSBmb3JtYXQgaW4gYm9vdGluZy50eHQsIGFkZGVkICI7IiBhZnRlciAifSIu
DQotIHVwZGF0ZSBkZWZpbmUgaW4gc2NtaS1wcm90by5oDQotIHVwZGF0ZSBkZWZpbmUgaW4gc2Nt
aS1zaG1lbS5oIGZpbGUNCi0gc2NtaV9hc3NpZ25fZGV2aWNlIC0gZG8gbm90IGlnbm9yZSAtRU9Q
Tk9UU1VQUCByZXR1cm4NCmNvZGUgb2YgdGhlIGRvX3NtY194ZmVyDQotIHJlbW92ZSBvdmVyd3Jp
dGluZyBhZ2VudF9jaGFubmVsLT5hZ2VudF9pZCBhZnRlcg0KU0NNSV9CQVNFX0RJU0NPVkVSX0FH
RU5UIGNhbGwNCi0gYWRkIG11bHRpLWFnZW50IGZpbGVzIHRvIHRoZSBNQUlOVEFJTkVSUw0KLSBh
ZGQgU0NNSSBtdWx0aS1hZ2VudCBkZXNjcmlwdGlvbiB0byB0aGUgU1VQUE9SVC5tZA0KLSBoYW5k
bGUgQVJNX1NNQ0NDX0lOVkFMSURfUEFSQU1FVEVSIHJldHVybiBjb2RlIGFuZCByZXR1cm4gLUVJ
TlZBTA0KZm9yIHNtYyBjYWxsDQotIHVwZGF0ZWQgY29sbGVjdF9hZ2VudHMgZnVuY3Rpb24uIFNl
dCBhZ2VudF9pZCBwYXJhbWV0ZXIgYXMgb3B0aW9uYWwNCmluIHNjbWktc2Vjb25kYXJ5LWFnZW50
cyBkZXZpY2UtdHJlZSBwcm9wZXJ0eQ0KLSBpbnRyb2R1Y2UgIiNzY21pLXNlY29uZGFyeS1hZ2Vu
dHMtY2VsbHMiIHBhcmFtZXRlciB0byBzZXQgaWYNCmFnZW50X2lkIHdhcyBwcm92aWRlZA0KLSBy
ZWFubWUgeGVuLHNjbWktc2Vjb25kYXJ5LWFnZW50cyBwcm9wZXJ0eSB0byBzY21pLXNlY29uZGFy
eS1hZ2VudHMNCi0gbW92ZSBtZW1jcHVfdG9pby9mcm9taW8gZm9yIHRoZSBnZW5lcmljIHBsYWNl
DQotIHVwZGF0ZSBYZW4gdG8gZ2V0IG1hbmFnZW1lbnQgY2hhbm5lbCBmcm9tIC9jaG9zZW4veGVu
LGNvbmZpZyBub2RlDQotIGdldCBoeXBlcnZpc29yIGNoYW5ubmVsIGZyb20gbm9kZSBpbnN0ZWFk
IG9mIHVzaW5nIGhhcmRjb2RlZA0KLSB1cGRhdGUgaGFuZGxpbmcgc2NtaSBhbmQgc2htZW0gbm9k
ZXMgZm9yIHRoZSBkb21haW4NCi0gU2V0IG11bHRpLWFnZW50IGRyaXZlciB0byBzdXBwb3J0IG9u
bHkgQXJtNjQNCi0gcmV3b3JrIG11bHRpLWFnZW50IGRyaXZlciB0byBsZWF2ZSBIb3N0IERldmlj
ZS10cmVlIHVubW9kaWZpZWQNCg0KQ2hhbmdlcyBpbiB2NDoNCi0gdG9vbHN0YWNrIGNvbW1lbnRz
IGZyb20gQW50aG9ueSBQRVJBUkQNCi0gYWRkZWQgZG9tMGxlc3Mgc3VwcG9ydA0KLSBhZGRlZCBk
b2MgZm9yICJ4ZW4sc2NtaS1zZWNvbmRhcnktYWdlbnRzIg0KDQpHcnlnb3JpaSBTdHJhc2hrbyAo
Mik6DQogIHhlbi9kb21jdGw6IGNoYWluIFNDSSBoYW5kbGluZyBiZWZvcmUgSU9NTVUgaW4gYXNz
aWduX2RldmljZSBkb21jdGwNCiAgZG9jczogYXJtOiBhZGQgU0NJIFNDTUkgU01DIG11bHRpLWFn
ZW50IGRyaXZlciBkb2NzDQoNCk9sZWtzaWkgTW9pc2llaWV2ICg0KToNCiAgeGVuOiBhcm06IHNt
Y2NjOiBhZGQgSU5WQUxJRF9QQVJBTUVURVIgZXJyb3IgY29kZQ0KICBsaWIvYXJtOiBBZGQgSS9P
IG1lbW9yeSBjb3B5IGhlbHBlcnMNCiAgeGVuL2FybTogc2NtaTogaW50cm9kdWNlIFNDSSBTQ01J
IFNNQyBtdWx0aS1hZ2VudCBkcml2ZXINCiAgdG9vbHMveGwvbGlieGw6IHdpcmUgdXAgU0NNSSBT
TUMgbXVsdGktYWdlbnQgY29uZmlndXJhdGlvbg0KDQogTUFJTlRBSU5FUlMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCiBTVVBQT1JULm1kICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKw0KIC4uLi9hcm0vZmlybXdhcmUvYXJtLXNjbWku
cnN0ICAgICAgICAgICAgICAgICB8IDQyMiArKysrKysrKysNCiBkb2NzL21hbi94bC5jZmcuNS5w
b2QuaW4gICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKw0KIGRvY3MvbWlzYy9hcm0vZGV2aWNl
LXRyZWUvYm9vdGluZy50eHQgICAgICAgICB8IDE5NyArKysrKw0KIHRvb2xzL2xpYnMvbGlnaHQv
bGlieGxfYXJtLmMgICAgICAgICAgICAgICAgICB8ICAgNCArDQogdG9vbHMvbGlicy9saWdodC9s
aWJ4bF90eXBlcy5pZGwgICAgICAgICAgICAgIHwgICA0ICstDQogdG9vbHMveGwveGxfcGFyc2Uu
YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEyICsNCiB4ZW4vYXJjaC9hcm0vTWFrZWZp
bGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KIHhlbi9hcmNoL2FybS9hcmNoLm1r
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArDQogeGVuL2FyY2gvYXJtL2RvbTBsZXNz
LWJ1aWxkLmMgICAgICAgICAgICAgICAgIHwgIDExICsNCiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1
aWxkLmMgICAgICAgICAgICAgICAgICAgfCAgMzkgKw0KIHhlbi9hcmNoL2FybS9maXJtd2FyZS9L
Y29uZmlnICAgICAgICAgICAgICAgICB8ICAxMiArDQogeGVuL2FyY2gvYXJtL2Zpcm13YXJlL01h
a2VmaWxlICAgICAgICAgICAgICAgIHwgICAxICsNCiB4ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2Np
LmMgICAgICAgICAgICAgICAgICAgfCAgMzYgKw0KIHhlbi9hcmNoL2FybS9maXJtd2FyZS9zY21p
LXByb3RvLmggICAgICAgICAgICB8IDE2NCArKysrDQogeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3Nj
bWktc2htZW0uYyAgICAgICAgICAgIHwgMTE4ICsrKw0KIHhlbi9hcmNoL2FybS9maXJtd2FyZS9z
Y21pLXNobWVtLmggICAgICAgICAgICB8ICA0NSArDQogeGVuL2FyY2gvYXJtL2Zpcm13YXJlL3Nj
bWktc21jLW11bHRpYWdlbnQuYyAgIHwgODMwICsrKysrKysrKysrKysrKysrKw0KIHhlbi9hcmNo
L2FybS9pbmNsdWRlL2FzbS9maXJtd2FyZS9zY2kuaCAgICAgICB8ICAgOCArDQogeGVuL2FyY2gv
YXJtL2luY2x1ZGUvYXNtL3NtY2NjLmggICAgICAgICAgICAgIHwgICAxICsNCiB4ZW4vYXJjaC9h
cm0vbGliL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KIHhlbi9hcmNoL2Fy
bS9saWIvbWVtY3B5LWZyb21pby5jICAgICAgICAgICAgICB8ICA1NSArKw0KIHhlbi9hcmNoL2Fy
bS9saWIvbWVtY3B5LXRvaW8uYyAgICAgICAgICAgICAgICB8ICA1NSArKw0KIHhlbi9jb21tb24v
ZG9tY3RsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNSArDQogeGVuL2RyaXZlcnMv
cGFzc3Rocm91Z2gvZGV2aWNlX3RyZWUuYyAgICAgICAgIHwgICA2ICsNCiB4ZW4vaW5jbHVkZS9w
dWJsaWMvYXJjaC1hcm0uaCAgICAgICAgICAgICAgICAgfCAgIDMgKw0KIHhlbi9pbmNsdWRlL3hl
bi9pby5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArDQogMjggZmlsZXMgY2hhbmdl
ZCwgMjA3NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0
IHhlbi9hcmNoL2FybS9maXJtd2FyZS9zY21pLXByb3RvLmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQg
eGVuL2FyY2gvYXJtL2Zpcm13YXJlL3NjbWktc2htZW0uYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB4
ZW4vYXJjaC9hcm0vZmlybXdhcmUvc2NtaS1zaG1lbS5oDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhl
bi9hcmNoL2FybS9maXJtd2FyZS9zY21pLXNtYy1tdWx0aWFnZW50LmMNCiBjcmVhdGUgbW9kZSAx
MDA2NDQgeGVuL2FyY2gvYXJtL2xpYi9NYWtlZmlsZQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4v
YXJjaC9hcm0vbGliL21lbWNweS1mcm9taW8uYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJj
aC9hcm0vbGliL21lbWNweS10b2lvLmMNCg0KLS0gDQoyLjM0LjENCg==


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:43:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230719.1536172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrZd-0008Ms-9h; Fri, 13 Feb 2026 11:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230719.1536172; Fri, 13 Feb 2026 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 1vqrZd-0008Mf-5P; Fri, 13 Feb 2026 11:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1230719;
 Fri, 13 Feb 2026 11: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqrZb-0007uv-O6
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:42:59 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2491678a-08d1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:42:59 +0100 (CET)
Received: from SJ0PR03CA0358.namprd03.prod.outlook.com (2603:10b6:a03:39c::33)
 by MN0PR12MB5740.namprd12.prod.outlook.com (2603:10b6:208:373::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 11:42:54 +0000
Received: from CO1PEPF00012E7D.namprd03.prod.outlook.com
 (2603:10b6:a03:39c:cafe::1d) by SJ0PR03CA0358.outlook.office365.com
 (2603:10b6:a03:39c::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.13 via Frontend Transport; Fri,
 13 Feb 2026 11:42:51 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E7D.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 11:42:53 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 05:42:49 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2491678a-08d1-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KVvRRvGvQqi63Cxfu7sQAI1Zfm+qmXWcarrRMvZMqChQBtKHuBxJWgFADtmBqjZFbqz/iD0djwReXglBckcVg5/9MkduW/qRLIqR/mM2m9cD0rbqhlvEbz1raeHifkhpXa+EvHfWh9vGtxphjDlPCkcFnvmkCSJX2PeSlEKN8ZdwOJCBnC+jE9gfopQ8bYTa2kzVoWzlcuPzWiL6jFKJDm0/7voYJQB22S11G9CZMlPr9qFjpQva+rJg+GAfjxyrADjzgC/+DC9iOYzB4JDsBsHo2tRBfWv+iMhjTii4xas72bZeGqZ0Z8hykQTpYhOd2IQ3z51whRoPEW/iM+NuMw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/lu82w7S6wWrz5PttTxZC5TBMrjsq6q5LHbbG5LcEEg=;
 b=vftdS7c5bShAbGkTprfY7ckQ/YelCGklfazE30LB23SwlfvZekoMfbbFDl+V2VT//kG3g8tyrkd4s4CoyC3q8eJFe5ZH5BePewgBQ6C2zOcJRAq1V8leBj0hcA4ngbv+9lM+veHRDQiRByrZzHRZFnTw0YgfAt8zoJO3BEoc1rypiTIFfhrgqDMc8Poi5vkt1eEgiYxzWJcCuOnhOJmDNcLswCrXKDkn8sQfoKmpyWsB96pQUcxNDRbDaYJ0IrauLjmRmADbBRJEsj4IAUW3skkEOZYh126r3dsoZ6T4YHPolIqL/6EQOFn5J56T22VcjmWI1cu7LTcKl/SzH0Imzg==
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=/lu82w7S6wWrz5PttTxZC5TBMrjsq6q5LHbbG5LcEEg=;
 b=TK3L1QuZHfFoOm01BMwN43fJQeqzzxhEkAwCGTW8BFIqgKYA5+HhdVfhyfstQqlcJQHcqiGACNGgqFimt9t8zyNIz74ZeLcNK3y20gC8MwdTLQD4UNeSQf5O9/Wxlrejlv83EjavbaD4UQU+NEJj3IrbmE2SgQtHpx72iXRdGZo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>
Subject: [PATCH v3 2/4] x86/hvm: Disable cross-vendor handling in #UD handler
Date: Fri, 13 Feb 2026 12:42:28 +0100
Message-ID: <20260213114232.42996-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E7D:EE_|MN0PR12MB5740:EE_
X-MS-Office365-Filtering-Correlation-Id: f446344e-c4ed-4181-5b33-08de6af50663
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?PpnCuENGZC4F2jqMRmXTFuF7YiSfAD1qN/H/OXPCvV22GbKdZMfGQLNfcWRY?=
 =?us-ascii?Q?YqhfEeRsZzPeSzfQBF84cxi7oKfZHxgzCyCEedAhVN0Tzv+wtedHf6CfElZ2?=
 =?us-ascii?Q?wA0lvuLJ9bt0p/EBAVfaGfiJav34BvoVrIAE/LiyQnkjmt5oFIpmiiK8GEFp?=
 =?us-ascii?Q?TGCWRaqP4s4gGBa08m0xk30dYdGXOjXsrAL6I3eoK1b9lZUS+Rb0gzpUnXLW?=
 =?us-ascii?Q?aKjy/EKLHfqpU3tpCm6TYpvA9M6XIyy3lgY87c420dYyiz0hjB3+YOVz7f3T?=
 =?us-ascii?Q?YFnwmH+CEtxtEt4GD2piXpV4clpGLeNq5eqhpVatZk1Cb0AeJv/gxkyfOIVd?=
 =?us-ascii?Q?JlhXPGc7HgBwCqQIdNDZpsYgP6b+iRyY7ZIBtB92FL0W0U9uw97O47vAxwbN?=
 =?us-ascii?Q?CUIZTOe0oJhPhvmWItM2UVYOpTFvSlkxcGNBhqaXf7XE6WLgYBWagOOkofpO?=
 =?us-ascii?Q?+o1qhvurXHbjl0d8S4+kzHEcXQ6YnDcHVHXwMciq0yZpigHj5nM7rg3KxOiV?=
 =?us-ascii?Q?MuPhBM+2fWvrpJFxlEJ1agt1N98mfg9q6pULq1pF2CaeFB1CzhHv+XX4dfZK?=
 =?us-ascii?Q?+C0AVwtsqzbkH7Ut9de3+TaB23gs973/dV+rQ5wENLDSDy90vC0Licl3I3Ei?=
 =?us-ascii?Q?lT9T8qepckpcbj+PW5qkiyOPqaZNC2RvfrP9B5AvJks8ujodGINYuWR2XPzZ?=
 =?us-ascii?Q?vQsZgpJU2Bo5MfM0l7kyPAySPaJY3GOtSczJAeg4sE7vd5u6dASjYmqUtXa/?=
 =?us-ascii?Q?r2aJSiWKF6a/tJ10VGyBOs5FWFwFgH05y0Zo2WQ/l3l8YPLuib3h4ioKPDkV?=
 =?us-ascii?Q?FT5wTP1ewxp/9GrDFtVqZzBO3NTiEg7yG7iANqa2H7+Q8o0FBC93tUSN9o/t?=
 =?us-ascii?Q?pPYSEi1Qvh/FU/j/KStFXEQPbwTS+iP6Bbd9o8iF3aNEA4SKMTCIy6hULEQc?=
 =?us-ascii?Q?eetlOXECbvpegkarYhwdYqcDoxwvDLU9JLyX6Na1JEZ58UaGD1UAwtOR83Qd?=
 =?us-ascii?Q?1Ob1c78YZPUWqa94BW8G5MJI3jBYNtqtw0Y33UhoD9LXScws5IRsHUwOzwjM?=
 =?us-ascii?Q?RWwIiNdyYwmNn+X8KyCySN6VP8Ev259xelaY2KUyy3Z+31Pnsp6u/zg0Wo6Y?=
 =?us-ascii?Q?NIpzC7XelmmvCuwuKPc04hiv+RH5dGyKSoBn8OQsJ9v2cJA4wwwhaDBSmP2V?=
 =?us-ascii?Q?ZfXTc2WNYaOkE/gb39YfYgYeX0gDAGULj2uJVaY1SGn3P9pyzZz6w19pGw8a?=
 =?us-ascii?Q?3HC+W1+ZoQWFvfb7tYo/V4theNlretdTHiCYohuwrmP2Yb/9Si1yyg6lA1ID?=
 =?us-ascii?Q?LNi7UGOyinxZeGeXbh+SDuiEayZYkG8k2z4m/4Tc8Frqtg0mRDc113EZNsz5?=
 =?us-ascii?Q?2zKo+xVmM8MxJ8gYIb+/UJSGe3rjpbRcrc2iQerDOTmk9enW4WO4eBMrd30J?=
 =?us-ascii?Q?RbmOAZIqMxourhvXOFsHEXzA2cZMfxjYZbOZNp9RGyLB18ULjKxHewPbPGby?=
 =?us-ascii?Q?5OV/QJDMgX+dVYchUsqz3k+qOBLgZRxSlJwtyEEhqmq2C48bDPAB3zNJbMnP?=
 =?us-ascii?Q?tTNa16oJMxOH8eNE6kNQdgpUHaOZKKyOrzA9NqWyP+HrCXuIOyaXyq+DEGY5?=
 =?us-ascii?Q?+oMbW9/8Wf7bWClBCSpQ2JDXeSvgFBGT23dJk9eA/Tc7RnCrNI8Rqmp3V+Cj?=
 =?us-ascii?Q?fuZp4w=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	AzVue2CWpbtif4aZaTEeMmQqUeZwcePmCUgZQmuHXSkXyaAYaZnnEPcQ2InQHDBvE+nyjjN0yZUvdn9JR7suPWd0f7OWuRV/QfhdR4OD0Fqg5XSi+WiEIvSoaip/e14L85l3UpZqm67hMtIVhSero7OFsRrwKsAXjFZGQ+kf1m6unf2iKzVtExBZbLB4f1QfU6vl/gg/BVJD+QXdDHKeHB+HwoDnvsAlMXiKGD8LHpMzYJ6M17i9fZ9I/dTw+S3mQoyadHyVgkrwP0rTaHZ41gpuOTY/mu/TbEGSDqS9Wfk/w3jxObM7wlNqQG9ckekH7864YaeDutmTgL0HlCE1MEPlIcJEhsv720sNT+q/1o9LEo/P9mxGCcp5yNn89JX1eDwNkDUw+HsgLAo98XUmMEAKEmwlDEdCMrPxQAaoCaa8zRNcuvI68XxUtkPoS2hf
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 11:42:53.8542
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f446344e-c4ed-4181-5b33-08de6af50663
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E7D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5740

Remove cross-vendor support now that VMs can no longer have a different
vendor than the host.

While at it, refactor the function to exit early and skip initialising
the emulation context when FEP is not enabled.

No functional change intended.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
v3:
 * No changes

v2:
  * Fix bug introduced in v1: Don't emulate instructions when they
    shouldn't be emulated.
  * Refactor the function so it's simpler.
---
 xen/arch/x86/hvm/hvm.c     | 77 +++++++++++++++-----------------------
 xen/arch/x86/hvm/svm/svm.c |  3 +-
 xen/arch/x86/hvm/vmx/vmx.c |  3 +-
 3 files changed, 32 insertions(+), 51 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..8708af9425 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3832,69 +3832,47 @@ int hvm_descriptor_access_intercept(uint64_t exit_info,
     return X86EMUL_OKAY;
 }
 
-static bool cf_check is_cross_vendor(
-    const struct x86_emulate_state *state, const struct x86_emulate_ctxt *ctxt)
-{
-    switch ( ctxt->opcode )
-    {
-    case X86EMUL_OPC(0x0f, 0x05): /* syscall */
-    case X86EMUL_OPC(0x0f, 0x34): /* sysenter */
-    case X86EMUL_OPC(0x0f, 0x35): /* sysexit */
-        return true;
-    }
-
-    return false;
-}
-
 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;
     struct hvm_emulate_ctxt ctxt;
+    const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
+    uint32_t walk = PFEC_insn_fetch;
+    unsigned long addr;
+    char sig[5]; /* ud2; .ascii "xen" */
 
-    hvm_emulate_init_once(&ctxt, opt_hvm_fep ? NULL : is_cross_vendor, regs);
+    if ( !opt_hvm_fep )
+        goto reinject;
 
-    if ( opt_hvm_fep )
-    {
-        const struct segment_register *cs = &ctxt.seg_reg[x86_seg_cs];
-        uint32_t walk = ((ctxt.seg_reg[x86_seg_ss].dpl == 3)
-                         ? PFEC_user_mode : 0) | PFEC_insn_fetch;
-        unsigned long addr;
-        char sig[5]; /* ud2; .ascii "xen" */
-
-        if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
-                                        sizeof(sig), hvm_access_insn_fetch,
-                                        cs, &addr) &&
-             (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
-                                         walk, NULL) == HVMTRANS_okay) &&
-             (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
-        {
-            regs->rip += sizeof(sig);
-            regs->eflags &= ~X86_EFLAGS_RF;
+    hvm_emulate_init_once(&ctxt, NULL, regs);
 
-            /* Zero the upper 32 bits of %rip if not in 64bit mode. */
-            if ( !(hvm_long_mode_active(cur) && cs->l) )
-                regs->rip = (uint32_t)regs->rip;
+    if ( ctxt.seg_reg[x86_seg_ss].dpl == 3 )
+        walk |= PFEC_user_mode;
 
-            add_taint(TAINT_HVM_FEP);
+    if ( hvm_virtual_to_linear_addr(x86_seg_cs, cs, regs->rip,
+                                    sizeof(sig), hvm_access_insn_fetch,
+                                    cs, &addr) &&
+         (hvm_copy_from_guest_linear(sig, addr, sizeof(sig),
+                                     walk, NULL) == HVMTRANS_okay) &&
+         (memcmp(sig, "\xf\xb" "xen", sizeof(sig)) == 0) )
+    {
+        regs->rip += sizeof(sig);
+        regs->eflags &= ~X86_EFLAGS_RF;
 
-            should_emulate = true;
-        }
-    }
+        /* Zero the upper 32 bits of %rip if not in 64bit mode. */
+        if ( !(hvm_long_mode_active(cur) && cs->l) )
+            regs->rip = (uint32_t)regs->rip;
 
-    if ( !should_emulate )
-    {
-        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
-        return;
+        add_taint(TAINT_HVM_FEP);
     }
+    else
+        goto reinject;
 
     switch ( hvm_emulate_one(&ctxt, VIO_no_completion) )
     {
     case X86EMUL_UNHANDLEABLE:
     case X86EMUL_UNIMPLEMENTED:
-        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
-        break;
+        goto reinject;
     case X86EMUL_EXCEPTION:
         hvm_inject_event(&ctxt.ctxt.event);
         /* fall through */
@@ -3902,6 +3880,11 @@ void hvm_ud_intercept(struct cpu_user_regs *regs)
         hvm_emulate_writeback(&ctxt);
         break;
     }
+
+    return;
+
+ reinject:
+    hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
 }
 
 enum hvm_intblk hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack)
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..10d1bf350c 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -589,8 +589,7 @@ static void cf_check svm_cpuid_policy_changed(struct vcpu *v)
     const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     u32 bitmap = vmcb_get_exception_intercepts(vmcb);
 
-    if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+    if ( opt_hvm_fep )
         bitmap |= (1U << X86_EXC_UD);
     else
         bitmap &= ~(1U << X86_EXC_UD);
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..eda99e268d 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -803,8 +803,7 @@ static void cf_check vmx_cpuid_policy_changed(struct vcpu *v)
     const struct cpu_policy *cp = v->domain->arch.cpu_policy;
     int rc = 0;
 
-    if ( opt_hvm_fep ||
-         (v->domain->arch.cpuid->x86_vendor != boot_cpu_data.x86_vendor) )
+    if ( opt_hvm_fep )
         v->arch.hvm.vmx.exception_bitmap |= (1U << X86_EXC_UD);
     else
         v->arch.hvm.vmx.exception_bitmap &= ~(1U << X86_EXC_UD);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:43:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230718.1536162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrZc-00088w-0L; Fri, 13 Feb 2026 11:43:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230718.1536162; Fri, 13 Feb 2026 11:42: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 1vqrZb-00088k-TB; Fri, 13 Feb 2026 11:42:59 +0000
Received: by outflank-mailman (input) for mailman id 1230718;
 Fri, 13 Feb 2026 11:42: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqrZa-00084s-Oq
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:42:58 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 22bc5ac4-08d1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 12:42:56 +0100 (CET)
Received: from SJ0PR03CA0337.namprd03.prod.outlook.com (2603:10b6:a03:39c::12)
 by DS0PR12MB7725.namprd12.prod.outlook.com (2603:10b6:8:136::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 11:42:50 +0000
Received: from CO1PEPF00012E7D.namprd03.prod.outlook.com
 (2603:10b6:a03:39c:cafe::c9) by SJ0PR03CA0337.outlook.office365.com
 (2603:10b6:a03:39c::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Fri,
 13 Feb 2026 11:42:31 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E7D.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 11:42:50 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 05:42:47 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 22bc5ac4-08d1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZvBS7/VPGh25lEb6N7q5LZuBXMt2Z7yRlgXex9OrAr5u6TBxLKvdXx0SPq1oB8Zsfu49r1/bgHxRMoFgzMYEfDnud+oZVqTboHqwowjGKG+SSm5B7OvHxjJqxvaVbKEy3A5Z5ypmaoT8IIb9UWL0W+iCXhZb3ahNBJB4PG5i576LwVqXTCVej+udTBnxdhT9ALEnaF2L+cghb23ynDRGxfW01QnoLHkaoLvNXdC7vm+RROXA3baFLGlSBxO+ASXrfpbJDK+yyAPnjFqiRimZwE+wCHDUCnmtyAbI5cxSK3Jyaf7tVkJZ5EIXCWKWPDc4vggLTgUWosttOkaaTv10Nw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=I0y/jiaWpDpjk0pgHhZt6MHRmsRmszq2JqQEQKmVQpY=;
 b=d6r6yAroEnWsL5EPZXKZibQbfImuodgG2LTCDEPLJtZlKlczankrBlyljM8HWKP19X4PpAdV8fMoAt7dIODsZPerg2AKnvvkwi5OB1xbDXqohBaaUeHSa7husTA5RnZ2YwvnHY3CPUQdPitcJLTfcd1B2nJuS8G7PbUNYu3twG8k8C0GuXyJyneV4yRAHpyCn79N/hwyf0pw+KIGwq3mFXiVg75DQeoCjtt2hP+6QMMAUR2l6rRwSRpIASviwf3QFjUs/5UNolK096Fn67FAKFxgUaeiabiLwOfZ6i1lP907pjX2+VNObqRMjfc79J2DwG5o8ur0t2XcYh6GpsB2iA==
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=I0y/jiaWpDpjk0pgHhZt6MHRmsRmszq2JqQEQKmVQpY=;
 b=c337/MvhtjYafSCTd04pyn+U3NGTC05lNgj2VtMrnQA0TT04R3wrwDAx3IACf7J1jTIkHJfEjJ4e/0ejLnQkqoOZ8USgvUetG3Tzu9JiGrAPf2wyozL2WAUBZXfJ7KD7YTq3h7aZlldic6bx/O8MTcqUUoEWm+Kwpoc+C63X7qY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, 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 v3 1/4] x86: Reject CPU policies with vendors other than the host's
Date: Fri, 13 Feb 2026 12:42:27 +0100
Message-ID: <20260213114232.42996-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E7D:EE_|DS0PR12MB7725:EE_
X-MS-Office365-Filtering-Correlation-Id: 6afced65-a829-41f4-25b7-08de6af50436
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?iW7PdIT2vD0IAWOHcqS/D/vJGSvhZ2r3XnMipdKg8BBkvMCf5WV4rWKgCyre?=
 =?us-ascii?Q?pDpslIjjyETk0SUZWGUtOYZYKKc2RV6Wto/a5MDhvF5VuDa8a76fPao3BI8+?=
 =?us-ascii?Q?BnqDK1Rbc9abu6JMJkhMSU1XlYYRYz9Hh7NCumMO6Fd3yceP2OBhYch8Z0T/?=
 =?us-ascii?Q?z0G+joGjGgvxMKEeEQV3d8+CgiZS1eCNhDoE4oJqaY2YCNTrk/fIoejw2cbU?=
 =?us-ascii?Q?PUn9VZFYc2f4+OsKbZdKym5G3riS5cF9bWrZEOyCGTQcyfyl6y8/JchAA7rF?=
 =?us-ascii?Q?A/xbLmgJhdf/0bjuQfStbptMrpdETLVi0nAZ2UVTCWowrjHHabvsCsIls67M?=
 =?us-ascii?Q?DDuGfDyzVYEQTJV8GDAuBxOKUdhHL2khqiV1owEosOc43Bwj3ykbcUBHMAcl?=
 =?us-ascii?Q?lsY4H4+SZl4NcsiYSGnupPEFcNUxhZ57R6MtWquwz/93zXTAP2uZnENQWZkX?=
 =?us-ascii?Q?KK17PifsV1NWCfbnSjGkprLuNJgLsWJsBG/935KF91Tirxcf2tBkYkRjLDCx?=
 =?us-ascii?Q?jL3Nms6ae5YDbuyGjsG084V34ULalV1l/lQcW6Z6TlzJ7IU7yqV6jkKuveYz?=
 =?us-ascii?Q?faE0pMP8OC4p7my2VxsLKfQOswVOnb6JLCgoR93rQesWSBsF6e8e0wLPaKRF?=
 =?us-ascii?Q?cXt59uGDhDyyG54MGGXJdfHtWb61fxdKuqy2S0L9ZYFOZZiRJTgWMhVCsPYj?=
 =?us-ascii?Q?vW3ckSh7YVl5QwAdB47NUukiTplhUBsUChzMhFJ4rh80UzyeixIruC57LKCW?=
 =?us-ascii?Q?wkL72c97pNLrlY+IdH5CZmzQa78irmLIf55zWuqivPk0EPp2i++lKcFOW1Kf?=
 =?us-ascii?Q?LazjY+t9sHbOYDo9Q2idStxu/R2wWVDoSu2IPVdcHRj7lwv+ZsiqWknpaVZa?=
 =?us-ascii?Q?Qwxeip9kT+MRiMGEd2Kn8LMwKDWv3AyzQSBixmFZx4LE3XhvNL3vVqIKYfZH?=
 =?us-ascii?Q?w6C8R3fssoHi07sNOorRwCgLfMGUmy+V4ByIOIpBE/TkLqFMw9TnwyxnO5SG?=
 =?us-ascii?Q?9xxTDznsZtNTUP5PKgxyIMXm3k0dDO9P0OPR79FeD8BVFGTPBO2Tm/pju61P?=
 =?us-ascii?Q?Jz9rz4f39PfgffU211gQAmvWjK01PGOKWsKvxTf85PlRzzDytYf4yANhAf/8?=
 =?us-ascii?Q?uyncTwouQodAfoOjKRFm4xeX9gzlwKCbg2G9QCZEen3yWa6+7TndVbGWR/g8?=
 =?us-ascii?Q?PYDrhcnhfrnlg3ebYWFRTWfde3z8IehOsd2pRSNIUKlY6VAW/JI9ts9qaOSQ?=
 =?us-ascii?Q?yHk3xz3f5VY0kG7ozQwcstXe+oRRDzGtinpKY6/r1PpbSIsJbBkjo4g/Uhns?=
 =?us-ascii?Q?lZca9cVWviWb/Lu5YzecxrPNdfO0gMksMvTvC+b+iY3QEZWwyvH6aIJL0v4B?=
 =?us-ascii?Q?XynYJJqO9DBLP/xdWP+pMvphmcSfdMzKhgJikG0r+ZKbqbG4Ey0hYZQI00lk?=
 =?us-ascii?Q?JfysjztIevyt+62Li2NC6AL4N9Qf7523SnXDBGzPrTlr4ECewxW5w4IPX57+?=
 =?us-ascii?Q?E4ATK/27pYn9469QTrg/f1SmlBEYc/yKJhRP1WatX1IeWsmOUcn23KWSVHWs?=
 =?us-ascii?Q?+bHCIFBCFbp0D2/bhXEZjArCgrvDZTLDGFN5JXxKVt/W8usMOOltN69/yGDD?=
 =?us-ascii?Q?0A=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Ue+xFcUw8DXj74Btygtxi0LvCGAa/SNvDsWj8bfEA9QK+BmzMxyKuAK2TOmMA7UhJBALQQq47Ep+Be2fMaXI58iGgqmOAECEAjvYT7zBozzHrM2s+0f3OPD8kZgyBcs27+C1bEGFBGIqt6Ze6lCFohGCfa+pgymRgokPJHQpm0Q6HjgvlEegVt8wwqLDJUnq5nHwEIp+AiZHBo2Kl0O8+UZIsXsW41mg8NeLNOBeqjk5GCv7HgI5uoggFrhNNEhmpNqFvmTAn+OJEYMsPKwAw5ENJp0Ejxjrv1p3ToCvyqWrJ9rC+1UPEjtRyznovtnO05FJ2pDksQbpA9r6BKKjbEPOBDoSYXJf00Zp+6ocdYukdezEhtkjHmczBKUGqHjiRX72zNFuUs7uaamG7y9qusqNA9VkQG0zyUpCBeZmUnPu5Zee07Ok90caQsapYZhE
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 11:42:50.2042
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6afced65-a829-41f4-25b7-08de6af50436
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E7D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7725

While in principle it's possible to have a vendor virtualising another,
this is fairly tricky in practice and comes with the world's supply of
security issues.

Reject any CPU policy with vendors not matching the host's.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
v3:
  * Check vendor_e{b,c,d}x rather than x86_vendor.
  * Added unit tests for pass/fail cases.
    * They cover a success and a failure on a comparison of an unknown
      vendor.
---
 CHANGELOG.md                             |  5 +++++
 tools/tests/cpu-policy/test-cpu-policy.c | 27 ++++++++++++++++++++++++
 xen/lib/x86/policy.c                     |  5 ++++-
 3 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18f3d10f20..426c0bce67 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,6 +22,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Xenoprofile support.  Oprofile themselves removed support for Xen in 2014
      prior to the version 1.0 release, and there has been no development since
      before then in Xen.
+   - Domains can no longer run on a CPU vendor if they were initially launched
+     on a different CPU vendor. This affects live migrations and save/restore
+     workflows accross mixed-vendor hosts. Cross-vendor emulation has always
+     been unreliable, but since 2017 with the advent of speculation security it
+     became unsustainably so.
 
  - Removed xenpm tool on non-x86 platforms as it doesn't actually provide
    anything useful outside of x86.
diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c
index 301df2c002..88a9a26e8f 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -586,6 +586,19 @@ static void test_is_compatible_success(void)
                 .platform_info.cpuid_faulting = true,
             },
         },
+        {
+            .name = "Host CPU vendor == Guest CPU vendor (both unknown)",
+            .host = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .guest = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+        },
     };
     struct cpu_policy_errors no_errors = INIT_CPU_POLICY_ERRORS;
 
@@ -629,6 +642,20 @@ static void test_is_compatible_failure(void)
             },
             .e = { -1, -1, 0xce },
         },
+        {
+            .name = "Host CPU vendor != Guest CPU vendor (both unknown)",
+            .host = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 1,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .guest = {
+                .basic.vendor_ebx = X86_VENDOR_AMD_EBX + 2,
+                .basic.vendor_ecx = X86_VENDOR_AMD_ECX,
+                .basic.vendor_edx = X86_VENDOR_AMD_EDX,
+            },
+            .e = { 0, -1, -1 },
+        },
     };
 
     printf("Testing policy compatibility failure:\n");
diff --git a/xen/lib/x86/policy.c b/xen/lib/x86/policy.c
index f033d22785..f991b1f3a9 100644
--- a/xen/lib/x86/policy.c
+++ b/xen/lib/x86/policy.c
@@ -15,7 +15,10 @@ int x86_cpu_policies_are_compatible(const struct cpu_policy *host,
 #define FAIL_MSR(m) \
     do { e.msr = (m); goto out; } while ( 0 )
 
-    if ( guest->basic.max_leaf > host->basic.max_leaf )
+    if ( (guest->basic.vendor_ebx != host->basic.vendor_ebx) ||
+         (guest->basic.vendor_ecx != host->basic.vendor_ecx) ||
+         (guest->basic.vendor_edx != host->basic.vendor_edx) ||
+         (guest->basic.max_leaf   >  host->basic.max_leaf) )
         FAIL_CPUID(0, NA);
 
     if ( guest->feat.max_subleaf > host->feat.max_subleaf )
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:43:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:43:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230717.1536151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrZZ-0007v8-Oo; Fri, 13 Feb 2026 11:42:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230717.1536151; Fri, 13 Feb 2026 11: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 1vqrZZ-0007v1-LZ; Fri, 13 Feb 2026 11:42:57 +0000
Received: by outflank-mailman (input) for mailman id 1230717;
 Fri, 13 Feb 2026 11: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqrZY-0007uv-Dx
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:42:56 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 221df5c6-08d1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:42:54 +0100 (CET)
Received: from SJ0PR03CA0358.namprd03.prod.outlook.com (2603:10b6:a03:39c::33)
 by IA0PR12MB8328.namprd12.prod.outlook.com (2603:10b6:208:3dd::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Fri, 13 Feb
 2026 11:42:49 +0000
Received: from CO1PEPF00012E7D.namprd03.prod.outlook.com
 (2603:10b6:a03:39c:cafe::1d) by SJ0PR03CA0358.outlook.office365.com
 (2603:10b6:a03:39c::33) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.13 via Frontend Transport; Fri,
 13 Feb 2026 11:42:46 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E7D.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 11:42:47 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 05:42:44 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 221df5c6-08d1-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DXZDuqz9v8sy2snioDZufQth5lK3/3MLFXN/ENbMf3ksRl27T3Wl3Vw4keAKisyL76r4TLx5IbAZ4uANJb50M51U8zldtzIcFPvyTw62yHZSrX7rY4F6WJsifQGbY+c2OtnVaWaF7N+mVEQxzslCU36S3ZhDRqxwcPbeFHNVshczB7K96xJ5YSt2E8jFSNNLK54tlwtMQr+ueKZXCo/c/uuEE00OiXP5DdfA/7cFczaCMINCdEPtpaw67rQ1RdY7BRwq77eUr2N/7BP1wjX5eXQT6aEOhrNEjvrMeIOcxJuMUH3HB6XhWtTeIJy2WIXaTWNgrgILN7+N6SgdAgXARw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=a1BoLmaVWRPZko7TcFAR7QJZ2rTpb1hvlyh7u4oJJgM=;
 b=ZUrmgg7GFziszoljO9vtO5gHHnI7akjyxrTzNOEht0Q3y0n0KiM4lL79g7hqOUHiLufVEr4zph2ak5LtspPnvaNnQHTAgHDo2obXR5mO0Q3Cu1ExnQKQL2jus29z5DfB3tCyOooUsaBp6yIk/Pt8tm6mAP0codF0SUMaRj1gYSgdt6Yhh6xh+hEdvRra1AOkIOtyievw4FNJVtZRTehkofJBvUTVT5KXvqPCfSb98SCidHI9MMqC7hKfQ/8tWwKx7916NfZPeEQinI09/V7MLDmgWGj4umaGhSBqMHh/97w4ycXNjmB/IxULW2iU9buBnpTcqRWB+NHOVY3jgblM6Q==
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=a1BoLmaVWRPZko7TcFAR7QJZ2rTpb1hvlyh7u4oJJgM=;
 b=l2pHkf77MU8isyrw8JyxGU9PTAtyn5S7wxNUfktxeCru+EGoXH3I2pPUiQJo1P8jEspY6Deti7xtk+TlFMTnfVLZcSw4AtQcUb1v4G2cKXYkQUEqzs1q/NhWlbIKDX93zmv5cuhyW/bmo3sPZ1TNxEolVeLpenCoFY7SSKwIYQg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Oleksii Kurochko
	<oleksii.kurochko@gmail.com>, Community Manager
	<community.manager@xenproject.org>, 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>, "Jason
 Andryuk" <jason.andryuk@amd.com>
Subject: [PATCH v3 0/4] x86: Drop cross-vendor support
Date: Fri, 13 Feb 2026 12:42:26 +0100
Message-ID: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E7D:EE_|IA0PR12MB8328:EE_
X-MS-Office365-Filtering-Correlation-Id: 4a30f81d-c914-4158-cfb7-08de6af502c7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?13mDT/DVTfXjIlGeLQTp4yLF1qZmPHkxD+pxhoy3a5m9NFJ9a4xKnT1pP5XE?=
 =?us-ascii?Q?Dsdsc7v14THXQLkrFHumcuDhYyVRqsyeDpj37jQmZ+qkqcrPFmi81bsCQgCF?=
 =?us-ascii?Q?Obz51R6hW1mB5GT8dJaDr7KFh20ZOrW7RUTVskak81fJloC9/ej2SC8NYZvk?=
 =?us-ascii?Q?gYOu6av1vSE+Dnz0X+SW0UPaHy8R2CFF/nRMwID1RLQq5Cvi1r3n31+6fKLI?=
 =?us-ascii?Q?502fBPvOCLGh0JDPRD02a8T4haaBpDkJNrWzugE3OCrjt5/izdm4re2scO3b?=
 =?us-ascii?Q?6eIdk9DyOnDB3MC95HWNxvC0Nr/E/4w7AJ4wzvXko4FSIxN6yIlBF2rSOHfw?=
 =?us-ascii?Q?TTMwFbrMArGQ/Rdo65+ZxuR6gou9vzWiJWbhItfkePfxmSYH8TITYmK1xX66?=
 =?us-ascii?Q?O7i7iOS5vzjFB/7Ubz5d//Wn4dtOEN+P9ZPi9uRrGvGx5FNQM1T/eojYHwW5?=
 =?us-ascii?Q?4JfiTMhvHdjgh7VRt7cYYdEaMC+JcAmUEfSCfj922MEa1npNY/WRzfDwjwlH?=
 =?us-ascii?Q?w+Bqenf+Yf+qrF9rm7zdukFtTl9aIvmULINzmszFTNIIMmpcG2YeFV2gqWyd?=
 =?us-ascii?Q?xs7YzmKr13GC2p5fYH7Wnx70zZ2fDhdqaWQcUQmQ9Cle6ywyQwH0n4TQnUAi?=
 =?us-ascii?Q?N11MPy+B+4gKdWspVH9c0lpuA4b/nMQB+ulpDm2j+14TmEG1b/HFA5JB7cRx?=
 =?us-ascii?Q?x3sNVdfGbzTkzgVwFmvmSOweSle3FX+81Jo2oDiFE0Hx+F7Wlu64f4xFOfvN?=
 =?us-ascii?Q?bWtTW8Mb55kNukHRRbB6pk0T8/E61ObNp4DgebcPvkcnlniMZnGpa2OPsnUq?=
 =?us-ascii?Q?Nwes7KSnzg7Vtdqi79MNnmlS0vJQcngqOhHyojgbxtkFugLVMX4RNsnX0tH+?=
 =?us-ascii?Q?tbXnZjOs+3UeCWx1RMq80smNP0XQ1WjhU7DPIuuE73didRDqgr/q3qKnuVpk?=
 =?us-ascii?Q?mMaGslrv/0YBFQNBhZ0jytfte+S60559u0nrRQp8A5mroMUQreVW1opgH/Pt?=
 =?us-ascii?Q?xYPvetnIAxtk/BY/hKBlPvS7Fanxce2CsN/BAA9sE1GnS/LzgRaHP6PTR+Za?=
 =?us-ascii?Q?V/nBl3A5MtW8Z9yV76kPOOSO8g7EOU781Dj8TWxSyaLeP7yxjOSIBHZ3E0OX?=
 =?us-ascii?Q?f+FOdh7sQzyoiPKxrRJpvM5FcHbhPIISxCMFeWVRUha7fk8PflPjqcOlalf2?=
 =?us-ascii?Q?aYIKgOH+suBhJBfgYM7E+v8bFFejI1IY7pgoLT1hDaxN3YIXTkXEcDOZK2Ml?=
 =?us-ascii?Q?MjJRLyi3Vx/W/70bolo5/8UNYPm6ahIj5LJR1ScunGtnATyK7wpBQeXJGAZC?=
 =?us-ascii?Q?cw89XBS7HoklcuGjnzx087bgmcJl5DYNR3W0HwWkFR7lim/iWgX3vUPotpxH?=
 =?us-ascii?Q?gaRDw+zveTfCoggZNkbxsQui3hTNmEda58NU0oDGN5KLa6BZ9p82AIP77PsW?=
 =?us-ascii?Q?R0sPt9/1by6+TNojvpi661ZnrixUTtfpcQfrCOp8PH21Oy7VnCi9MjAox9y+?=
 =?us-ascii?Q?1VAT7HSoiJiXXBuQsnF1c4mxZphi/W1BOBw7crFeeWqr5Wo56O2XM96u0+U3?=
 =?us-ascii?Q?JV7o8Y0yndjcamRqlG/Ctybs6w3/FCizfKl1hWBHoEOiTfTEZeeD2LyHNMZH?=
 =?us-ascii?Q?tMLJYq1R9KRHqlrqwYoT3FP209Ng1+24v9clj4J0EEN8gEAJh/8tGVbUccai?=
 =?us-ascii?Q?MuQaAwW9exMfhgvaqAPu2n25N/o=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	zfP/wTd8Dql4Y84k2v3WrAwgiRYwsLbjF5Bo9y+8SsrSnAMqO0arozbsuAcHb3gxzANzHTvJOTwPBX8iToprkAmwf9029k4hY11w0GajxSEgNXtXxFQA/MIavjAk9HxLojEUUmxcBjbqW+Aa9+nG5d1qp/VnWE2JMAxgSAh6yrURTz2uwKBb4wLhBflSFu5ivNHK0vz7NK1X2u5F0itNayeA/DTMeH3//YcSal6hnQT1XQRqSPEERyu+tcjKAj3DaKAwBFI9mYquOqxyVIv+lCJ+wc1Qf+XXGXyFn5xTuiDjeZLPoPfmssLv1CwU47k+qlU8u9HFMSjKhvozK6SmRg8uAH/0JdeYEZiltg0ASwgBO16zcMwKQzs4piqC5cabF5pTFkUeO1u4zxOmSz3Z9K79+kwioOlQLIMyTlaHeK+PPj2aPFm0ZplnisIoJn4n
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 11:42:47.8017
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4a30f81d-c914-4158-cfb7-08de6af502c7
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E7D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8328

Hi,

v1: https://lore.kernel.org/xen-devel/20260122164943.20691-1-alejandro.garciavallejo@amd.com/
v2: https://lore.kernel.org/xen-devel/20260205170923.38425-1-alejandro.garciavallejo@amd.com/
pipeline (green): https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/2324131649

This time the policy check uses e{b,c,d}x rather than x86_vendor and there's
2 unit tests for it.

Cheers,
Alejandro

Alejandro Vallejo (4):
  x86: Reject CPU policies with vendors other than the host's
  x86/hvm: Disable cross-vendor handling in #UD handler
  x86/hvm: Remove cross-vendor checks from MSR handlers.
  x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems

 CHANGELOG.md                             |  5 ++
 tools/tests/cpu-policy/test-cpu-policy.c | 27 +++++++++
 xen/arch/x86/hvm/hvm.c                   | 77 +++++++++---------------
 xen/arch/x86/hvm/svm/svm.c               | 45 ++++++--------
 xen/arch/x86/hvm/svm/vmcb.c              |  3 +
 xen/arch/x86/hvm/vmx/vmx.c               |  3 +-
 xen/arch/x86/include/asm/hvm/svm-types.h | 10 ---
 xen/arch/x86/msr.c                       |  8 +--
 xen/lib/x86/policy.c                     |  5 +-
 9 files changed, 93 insertions(+), 90 deletions(-)


base-commit: 1f4f85b64d393be1aa8dc8170201f4fbfe9c7222
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:43:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:43:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230720.1536182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrZe-0000B7-OT; Fri, 13 Feb 2026 11:43:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230720.1536182; Fri, 13 Feb 2026 11: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 1vqrZe-0000Aw-Kc; Fri, 13 Feb 2026 11:43:02 +0000
Received: by outflank-mailman (input) for mailman id 1230720;
 Fri, 13 Feb 2026 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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqrZc-0007uv-OR
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:43:00 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 253aa1a6-08d1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:42:59 +0100 (CET)
Received: from SJ0PR03CA0360.namprd03.prod.outlook.com (2603:10b6:a03:39c::35)
 by SJ5PPFC41ACEE7B.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::9a0) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Fri, 13 Feb
 2026 11:42:55 +0000
Received: from CO1PEPF00012E7D.namprd03.prod.outlook.com
 (2603:10b6:a03:39c:cafe::c5) by SJ0PR03CA0360.outlook.office365.com
 (2603:10b6:a03:39c::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.12 via Frontend Transport; Fri,
 13 Feb 2026 11:42:52 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E7D.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 11:42:55 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 05:42:52 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 253aa1a6-08d1-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=OMDXjPvVkSKAPuMAZ9QFjCqur+LCwW497svVndSf0hv8AZQu9DntVz3zUdgNk8F/hNsGS0LnKg0I9J6IYkXDIvInKomNQBaqfNJH1mk8dDYPAbLompSp9kDtU2HXt6EDTGAPqIYYa6KiNbJwBKXM47u4P7msFhSfJykuOm2zFmS8Qw5czN5B2YW+RyUGAvikUBvAfHagq8QjPNvQxaTWJvnL08CREQkDx0K3M/Yej4t2zHpXcnKHW79qUwCGdFw2WkfmaXCGWBs99ITeJ3rTpScSeSZQE0SaBamtZPIAb2go3QOWBEHzjI+HFehGlPqO8E8ogR8dqgSl/3h01dNNKg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VBqdjJJWfXtoJEzYSSAEqpJRKMsq/TtKBIgS2SAY1Gc=;
 b=CDE4QIowNieUhDIhAdH7bpJrcPOk8bZZkQMKUtfmAenDpw3R5B0WJFtjOKzZY+weaUG8XPm6YiKmNT8DyAh6RE+vkWA8B/07rhexGT7mqybdJJMEcYMzfsDe2aKHyDtYVCgzf+O7zZV23PNwzS+vcY+pGgmh1Lqh50m6ie46PWnegAMydgqJkL9ckAKmZ8+qmcoiS60oQls2x0PZMtrOLQSXFU8hpGV2yfLNIYGjxGkfGO7mjwaD2qXVg6lVyvkHefMIZ9ayFQenZ0pqjvhw9/6iLX5hUXue4Mo3XULCA01jy7xvDWDQGn0XsL2PLZAlO1om8A2e6CxvW7LnPpEjdw==
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=VBqdjJJWfXtoJEzYSSAEqpJRKMsq/TtKBIgS2SAY1Gc=;
 b=JITUKlKGOtU5UytyQHlHpSo5UYwPi6J58w0oF69p3RVsA7UM9M1PZHlFTHc5eCSCiNJIXgbfSaHMWrTTGNObFSh4UTKWpyPgI0ajgPLNSYnFT+KFTnpbx/ZSQ7E9ncGM5KoaDZuGqR7bk5VlITiNUa6wPVxN0NnbHrEWqCv5e3U=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Teddy Astie
	<teddy.astie@vates.tech>
Subject: [PATCH v3 3/4] x86/hvm: Remove cross-vendor checks from MSR handlers.
Date: Fri, 13 Feb 2026 12:42:29 +0100
Message-ID: <20260213114232.42996-4-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E7D:EE_|SJ5PPFC41ACEE7B:EE_
X-MS-Office365-Filtering-Correlation-Id: bf6a3f37-cd52-4d8b-579c-08de6af5072a
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?KDIFz4dgTSzkoY/CmkrDlK0NCkEVkUF2wL39xWEwy7BRRDtWBNDsvT2WKcE0?=
 =?us-ascii?Q?GZeGReVzsAfsTWt+pdsx2WFHq31CI166z8S7ufnhqOa1Wf4nwa1vO38oh3i4?=
 =?us-ascii?Q?jbRVSvovv0G0FBhc7spnpFoR66YFWPZXuPRpvXJy8YtKSVn4h3J7P3l+nwPi?=
 =?us-ascii?Q?sRt+wP4R0TngYv0HPVNegOvbVjlhVcncbuHNLFnWxiebDXNvwhX1PK3CMuBv?=
 =?us-ascii?Q?fNf9phlPT/iPH2U1dBqPu0c0dN3bvGR8K+B1GXL/RKW90x3RwA26+jZhVG1h?=
 =?us-ascii?Q?m3g5YuC7U6LZlt/jYfsCH3HIffD9MYe5jB1Jz0TKvAGkYxv8ZC1fEK9VVk8/?=
 =?us-ascii?Q?zwL7UvBjSlDT8sCVEq0kog2QTjWvWv0jKOVM7C7wKT5nV08G40uK1Duc2yR4?=
 =?us-ascii?Q?V9tHxlclchIbp2twH/DIAZCv3/nqQl0iEp30XnHEW/4XXyOQ6Sh353LDMjgW?=
 =?us-ascii?Q?XENCsR3aEVXgJ3dmy2MgM5XimLtIiu6LtqoJogP3Us5vlXJO3da33Ub5+B9U?=
 =?us-ascii?Q?X2eP4jKC04KRbL+QBlfkJ5AA5rRbJDHbouGURSCiYO5fHgOn9kE5mwcBl7ta?=
 =?us-ascii?Q?tANzT4LhZwMhfpYzSRFbUI/BZMS1qGxS0XtCnb3RziZ4ar+9gWFWbOXsHS10?=
 =?us-ascii?Q?tCwyMMI98eionW2qnVZwnYguo0tHXvVvHDoxr2ybyQ5A58ffSGDeLsJGGeZv?=
 =?us-ascii?Q?KfcykGlY4knCx9gPU2H3li83DiELlMZ2Ai7UEVwXCGoUKRMizBGhM+purohn?=
 =?us-ascii?Q?H4ecWJOvaNuSfwewtyDBJ7O0HMC05uveUHZaN1kuFC3fykj2G3YwdSJWiXB1?=
 =?us-ascii?Q?XdODoqVAcn8Vw+rJCh24VVke394d5Nr1heVZ6VDuvpvGJVu+UKR2Ac1uLS0g?=
 =?us-ascii?Q?Rtjyo2XDbgSj1RJ/KLvU4Jq2RNACfibOwabnVwDQzAoae0em8b4dFDyMCLSn?=
 =?us-ascii?Q?LNC6livp4tm6HAHk+QKoJn451w88puq8Aco+wWpHBxqVSptQh1HsOOuhMdAt?=
 =?us-ascii?Q?ZVzs/wk7lLQTVi4XnB0bn5rfhC+HvaKn1Q9Q3uvc+mwbK/3mMQekAhizZ89F?=
 =?us-ascii?Q?simzACs0elE1M5/9gXTkOeqY5JS6iphlqwLy66sCQkcua71LSxlP4aHpvwC3?=
 =?us-ascii?Q?FWMKLAGoPW2f7/G3wPAgvvnmdYOGV4cGVhhwUFnrdndPYoNiRHzeGSRkh8KJ?=
 =?us-ascii?Q?W8YnfcZQB/9kXaZAKOTzNOaEvWi1upift/P1S8XSLsBANt8oRhG79wAMhbOT?=
 =?us-ascii?Q?Aiva4VnZ8anWsi6+/zcN6TpSHJDpWqHn6mryH4FzTHewa7ThDXY7ccgCzf8F?=
 =?us-ascii?Q?mcDP9Fe/ywA1kISae0vII7528r30mZH0GIqY3RQ0nhC09pHPNRsVrGzM7vH+?=
 =?us-ascii?Q?+TmMyAxYjYFNfwivS9AHC7IVQs1vl7/n73LQZF4CAbMQFYLYuWatxAPTVh07?=
 =?us-ascii?Q?+mzKjWvcEjZGCXvjzKRfaEDtqMqw+1xUUPZEaLTdxGj+P909h93Ffd5txgFE?=
 =?us-ascii?Q?Auw6YSbT6NbjneC3LUrP/NjzIC556ROo5aAMpWCn6xj8dgLGvOiB1erWWvz/?=
 =?us-ascii?Q?iAUQTUWWwKIw6RCS4LOBFK4gaqHWesOD3owJtJGkiTG8+1t1TOtjwzbCjz3W?=
 =?us-ascii?Q?Yv3DYyj9pNZppmTmakLgaadCuqdIoB3/oZRPOGyT1MIX8UCjsw0RUzh3PXVS?=
 =?us-ascii?Q?YeUnCg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	wR6H6nmt6X/lH/ILf6PeoQFyryty2tPWEq670cWvL9tmhTS7vSBClnoN9g1Eho5zzZNfHATtdLGyBKSH/2z57STRfQegAHRUhFhMawksDo26CsSC6TC5N3WLK+VJw/AF7k9wKvfNyTZEWKX5psY7kKx+A1+xrejbRZXqVTKgLp223+AMZ9oyuHJvnzrJD73XoMdlM9lM5st5EbRw5XQDH1QPTKUSuJeJO5Glf2fJsPJdb+UsrNFM/OiQyswQyXX1zfULmCeRrqKcuWkvJwEtQSDLxJtBo3xzdBqG0Q6VKhah4d7A9KQl7ClLnLxLHRAbXStZob/dzylGWrbv9qveUGVapVTtfoGrEobOyrhYsWUH54QnCtEEPr562zsAG5vHizEOQzdS0RnXSlNBXCT7zDnFvVxv4q5xnnpgRIM+A8tbVKWLhPkyo2qjEC7KTuAL
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 11:42:55.1833
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bf6a3f37-cd52-4d8b-579c-08de6af5072a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E7D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFC41ACEE7B

Not a functional change now that cross-vendor guests are not launchable.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
---
v3:
 * No changes

v2:
  * Use boot_cpu_data rather than policy vendor.
---
 xen/arch/x86/msr.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
index ad75a2e108..d10891dcfc 100644
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -169,9 +169,9 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
         break;
 
     case MSR_IA32_PLATFORM_ID:
-        if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
-             !(boot_cpu_data.x86_vendor & X86_VENDOR_INTEL) )
+        if ( boot_cpu_data.vendor != X86_VENDOR_INTEL )
             goto gp_fault;
+
         rdmsrl(MSR_IA32_PLATFORM_ID, *val);
         break;
 
@@ -189,9 +189,7 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
          * from Xen's last microcode load, which can be forwarded straight to
          * the guest.
          */
-        if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
-             !(boot_cpu_data.x86_vendor &
-               (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
+        if ( !(boot_cpu_data.vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
              rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
             goto gp_fault;
         break;
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:43:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:43:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230721.1536193 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrZi-0000UL-2t; Fri, 13 Feb 2026 11:43:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230721.1536193; Fri, 13 Feb 2026 11:43: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 1vqrZh-0000U3-Tr; Fri, 13 Feb 2026 11:43:05 +0000
Received: by outflank-mailman (input) for mailman id 1230721;
 Fri, 13 Feb 2026 11:43: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqrZh-00084s-5x
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:43:05 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 278aab8d-08d1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 12:43:03 +0100 (CET)
Received: from SJ0PR03CA0354.namprd03.prod.outlook.com (2603:10b6:a03:39c::29)
 by SA5PPF0EB7D076B.namprd12.prod.outlook.com
 (2603:10b6:80f:fc04::8c5) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Fri, 13 Feb
 2026 11:42:57 +0000
Received: from CO1PEPF00012E7D.namprd03.prod.outlook.com
 (2603:10b6:a03:39c:cafe::29) by SJ0PR03CA0354.outlook.office365.com
 (2603:10b6:a03:39c::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.11 via Frontend Transport; Fri,
 13 Feb 2026 11:42:45 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E7D.mail.protection.outlook.com (10.167.249.52) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 11:42:57 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 05:42:54 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 278aab8d-08d1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BvE8yB7lam9gq9KPY5BNXnND5s2klap48V98nh1U2tqTjf54S+3C4keEoP5nrk02ggWLw8ict2bPWxXM5jXxqMIAyAoDJZtw+kGoJjSjrumxO1iyRicof3ClDZRxHVe4KMg9oJzGTM+ColIfbV+qTAtsmyW1ILldvJ0DhfpGw7xicnsJjZSdqT13zruQJQIEchbFRryDofIjqghHJJqMPTXYP/ujFDzAmjbzamLWA6kMbXTNC4DDGSIevI0KY6sARSBWPjlr3YRBqIxY6kqnYFg7jAg7Teh5S00AXO0iupzHYt/96JZfbSnvKW+AFrS1r0UJrPGAvFzLZPzFQ6z+1Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=vwNv6xSPrv19XcwIK2CSbdmL0zmxGyqcmeUFNv/Ifnk=;
 b=HbqJQvtjPF6xMsso/uEudtesqOHTbI+Y0Nb55lN8drYAOIB29KyslUzmadEyGObJhUeaCMDSQ+o4WCo8mDori2sOqBtBeah96FaNFlvrC6yj48HWz1J5+rdH1GIiHgGGUI55oXXLD9sLUwtBAXJdDBUA9LSq5cF6o4lJFCe8ZBP9eK6BkYWgoPHfxWGbF7G6z/RSUDYuis90QiNChe0oZ6JcDbO5ktU5olf5M7nPdYreqT0moyM9Ulg+muxqygavMssNO6NIYY1aR9R7pWtOrQz4zEiVLTQ9YiF4YDnAqCKcHW+sLeyXQgEdDBIV+4ReRO6Oeh6PyVrpNoWu4rGudg==
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=vwNv6xSPrv19XcwIK2CSbdmL0zmxGyqcmeUFNv/Ifnk=;
 b=BjlDNVbVDP9AF1pARtlVMFTrOL0l/vfAKTkgLDFohRvAlmov64079M29aP3lyqATkKEIaciPyL0n0k7WuCYQ75UDBEeWb5SbvPDKBtlQrAD0TQb6bOuTwEkG/obXzftkl2w+jp6PNNAgqkhr/ZY4KKOXtyOiRaib1m8Gquap5Mo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Jason Andryuk
	<jason.andryuk@amd.com>, Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH v3 4/4] x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems
Date: Fri, 13 Feb 2026 12:42:30 +0100
Message-ID: <20260213114232.42996-5-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
References: <20260213114232.42996-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E7D:EE_|SA5PPF0EB7D076B:EE_
X-MS-Office365-Filtering-Correlation-Id: 80dd543e-680a-401d-a7b8-08de6af5085a
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?5aGNmZB1IK2VE50v27Oqwk2NcxqNCt6kMO1zL8mUZqipOMkqSRnEKh+AL0S0?=
 =?us-ascii?Q?GuqQwHPANlzrSfOqH61I/KRCj90sN6xN9HDeF++5IreXSF1FxV67T0uUeiid?=
 =?us-ascii?Q?Hp6PrEg3oryot1TzFIgNIBkxwI+h4+ZTfQwaWy9mP3IL2IjX92RXsVIjsLE0?=
 =?us-ascii?Q?+beAuO6TqcNViWyYJ4MAlYgJTfbSFtg/GP1UCSxbEtFYg7171WnEPd7Yd+cw?=
 =?us-ascii?Q?K7CE7ndnXVGF7wiZbLrmJkzx18yt0VYyEJdmsjM5oAh99mEqk2WcYJKoFc70?=
 =?us-ascii?Q?U6UFe+6woJQnTBqKI8xdtUf5NG6iFf+Sb00oQkDmJgBwXw1KPUn17WWIuadd?=
 =?us-ascii?Q?ptExt/OF8zfXRFPfR9xN8ceRXLX1qHTFnSi8LzH6gSopPHweYz++S0XY58hZ?=
 =?us-ascii?Q?5iibae9UWV4EBc3VSpIED4VduOISOFB6mTBRTDBzed7zrTKcfBeZ4jfF/e5L?=
 =?us-ascii?Q?nR3nnNVxrMLOF04T/Ww5FhPXJUyidiFEEKhMj2ITHHCUHvPN0XeniVH96n0d?=
 =?us-ascii?Q?hp+GuBvfy7GQKIXjieuhg7+MsOPfkFnYB0Ebt08cK4PISaPVUj+o5uqccaiv?=
 =?us-ascii?Q?/b8v5o1PJu7nh1rzDTisn9hgfOKeLmbJYM9Nc6koNMNIvVpXaxy3nbmAWeLC?=
 =?us-ascii?Q?62bfxzzEOun5LuEsSo+yntZKoUCcM0ldgu90uK9PqPk34xVU7UelCVO3zaoY?=
 =?us-ascii?Q?cqMmyZsSeS7m6ip5y/OYX1gdCR7ojS7f5gVaXQFU2EOShDRn1WZ5V8fvFs1n?=
 =?us-ascii?Q?OODLxaReA3ZIRvNBosccDp0f16EfmCkJFnYJsfL8VHAwtEPtlCQ4OtLoxP/v?=
 =?us-ascii?Q?K0X/IoeBwiOLGvQOGlEEi4MtGlkzmd12BkbdtiDYLj/872vzFa36Y+E2cE/g?=
 =?us-ascii?Q?pFtNNuXwP0vXM/1BkwT3KnHOQ/PROFWObs5g278BjTiyVrU+fD9KIlCIxXBQ?=
 =?us-ascii?Q?tzmoUHR4HURvazvfSVI7t63Y1On5uH7zKp7qDb9EfHzEIHyl+48gTi+4E9m5?=
 =?us-ascii?Q?j8ff2bRLTJh3fX7Iy89oM90TXxa8xgdXQ38hjkI9tR9aNuGtL5/IvQlNeGx8?=
 =?us-ascii?Q?0ceUkeZLxAT2rfnm4n76sN8wy17cq3DZIsSy9dGHyAhqHGKgTf+86ShbAj+0?=
 =?us-ascii?Q?6cKlJ0wWeQdWKVIf/j1rYU+GeGy28Wzs+2cT0lN2avnOZcgM3XVjXh0ldN7A?=
 =?us-ascii?Q?r0oyzIGlOU7ujFJL1ObVFNtwTiX9KknwR+m3Jzh+UyQfI9l9LMyjze9ECl0C?=
 =?us-ascii?Q?UEQsMhUik9eLzsTp2qDeX5mKRapzJtAdMbFXWJJzkuptPPw3oW5mcHq/3qzH?=
 =?us-ascii?Q?g8chZrQJ74eKlAnnoj5WkTIwz0jaQARQrK2no4hMsOi/Gdf6Z14VqL0/ZlWN?=
 =?us-ascii?Q?ItnyA4QJhZMkKviTn6brnn491hZsk1CUUzAsZqylfj8/0TnHBcsYfM7WVgHE?=
 =?us-ascii?Q?Fv+hzwdX076ByOWBdIKdjjZJIcpWGrxXcC8sUCUY/Jc7NTXDxZMWTz/Ez3Rh?=
 =?us-ascii?Q?b2Eau9F+eLaNiJRwPo77RQMp32flWvAzRuPu/TIjj73oeGkUB/b/FJeUhKeO?=
 =?us-ascii?Q?0D3posuKbyWiBBv6Zihi42+vn0FcpdRLOcZ3RRQqsFx4KC887vjh/9ya42vC?=
 =?us-ascii?Q?WHwCXi0545NOxL6evGAjQybyY1+T+2m5hCF7a74SCdLB?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	CqPuvX1oF2+jNyp8Dcpb/42mpMenePwWtW9P8GRz5ayIU2UigqKYiG+Y8ysO5VyRG1/Mw2p6bU7jP6h8NqwUtsTx7YqkDK1iyxnZdhRs3sOE/yy+GGO+jBzklg6E82bpPs9TGqXoBNsgUiNyo3XSVFT0ai/EOpnP2kryhGn2Ob30PL6HXVqIFny2micwFjjGVDuu5kC8kcguWUSC+tjXhDWCi1vbAs2Td3sjW2S3GBRnC6tlG63UMIJVxcy2Fdt7ATzPUY9Mj2XgKnTgGVpx9lqI2gDz1VK427jOQiuX2xxg22/4JaXlZJBWRMbBVTtrVcle1t4dVS0MWt86QexGRQtzCiLbScd261BS6v4lMZDg0RkfHO1gIN/S4BoE6Hjh/D/fDZHo2yLJekYljjjkuV+I451P90OOkLdL6Ke6xn3QhDxK5QkZWAuj2gLf9F86
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 11:42:57.1537
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 80dd543e-680a-401d-a7b8-08de6af5085a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E7D.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF0EB7D076B

With cross-vendor support gone, it's no longer needed.

AMD CPUs ignore the top 32 bits of the SYSENTER/SYSEXIT MSRs, which is
not how this emulation worked due to the need for cross-vendor support.
Any AMD VMs storing state in the top 32bits of the SEP MSRs will lose
it.

It's very unlikely to affect any production VM because having 64bit width
just isn't how real AMD CPUs behave.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
---
v3:
  * No changes

v2:
  * Reworded commit message to mention the loss of the top dword for
    any VM stupid enough to use it.
---
 xen/arch/x86/hvm/svm/svm.c               | 42 +++++++++++-------------
 xen/arch/x86/hvm/svm/vmcb.c              |  3 ++
 xen/arch/x86/include/asm/hvm/svm-types.h | 10 ------
 3 files changed, 22 insertions(+), 33 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 10d1bf350c..329c4446e9 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -401,10 +401,6 @@ static int svm_vmcb_save(struct vcpu *v, struct hvm_hw_cpu *c)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
-    c->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs;
-    c->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp;
-    c->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip;
-
     if ( vmcb->event_inj.v &&
          hvm_event_needs_reinjection(vmcb->event_inj.type,
                                      vmcb->event_inj.vector) )
@@ -468,11 +464,6 @@ static int svm_vmcb_restore(struct vcpu *v, struct hvm_hw_cpu *c)
     svm_update_guest_cr(v, 0, 0);
     svm_update_guest_cr(v, 4, 0);
 
-    /* Load sysenter MSRs into both VMCB save area and VCPU fields. */
-    vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = c->sysenter_cs;
-    vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = c->sysenter_esp;
-    vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = c->sysenter_eip;
-
     if ( paging_mode_hap(v->domain) )
     {
         vmcb_set_np(vmcb, true);
@@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
+    data->sysenter_cs      = vmcb->sysenter_cs;
+    data->sysenter_esp     = vmcb->sysenter_esp;
+    data->sysenter_eip     = vmcb->sysenter_eip;
     data->shadow_gs        = vmcb->kerngsbase;
     data->msr_lstar        = vmcb->lstar;
     data->msr_star         = vmcb->star;
@@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
 {
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
 
-    vmcb->kerngsbase = data->shadow_gs;
-    vmcb->lstar      = data->msr_lstar;
-    vmcb->star       = data->msr_star;
-    vmcb->cstar      = data->msr_cstar;
-    vmcb->sfmask     = data->msr_syscall_mask;
+    vmcb->sysenter_cs  = data->sysenter_cs;
+    vmcb->sysenter_esp = data->sysenter_esp;
+    vmcb->sysenter_eip = data->sysenter_eip;
+    vmcb->kerngsbase   = data->shadow_gs;
+    vmcb->lstar        = data->msr_lstar;
+    vmcb->star         = data->msr_star;
+    vmcb->cstar        = data->msr_cstar;
+    vmcb->sfmask       = data->msr_syscall_mask;
     v->arch.hvm.guest_efer = data->msr_efer;
     svm_update_guest_efer(v);
 }
@@ -1720,12 +1717,9 @@ static int cf_check svm_msr_read_intercept(
 
     switch ( msr )
     {
-        /*
-         * Sync not needed while the cross-vendor logic is in unilateral effect.
     case MSR_IA32_SYSENTER_CS:
     case MSR_IA32_SYSENTER_ESP:
     case MSR_IA32_SYSENTER_EIP:
-         */
     case MSR_STAR:
     case MSR_LSTAR:
     case MSR_CSTAR:
@@ -1740,13 +1734,15 @@ static int cf_check svm_msr_read_intercept(
     switch ( msr )
     {
     case MSR_IA32_SYSENTER_CS:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_cs;
+        *msr_content = vmcb->sysenter_cs;
         break;
+
     case MSR_IA32_SYSENTER_ESP:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_esp;
+        *msr_content = vmcb->sysenter_esp;
         break;
+
     case MSR_IA32_SYSENTER_EIP:
-        *msr_content = v->arch.hvm.svm.guest_sysenter_eip;
+        *msr_content = vmcb->sysenter_eip;
         break;
 
     case MSR_STAR:
@@ -1940,11 +1936,11 @@ static int cf_check svm_msr_write_intercept(
         switch ( msr )
         {
         case MSR_IA32_SYSENTER_ESP:
-            vmcb->sysenter_esp = v->arch.hvm.svm.guest_sysenter_esp = msr_content;
+            vmcb->sysenter_esp = msr_content;
             break;
 
         case MSR_IA32_SYSENTER_EIP:
-            vmcb->sysenter_eip = v->arch.hvm.svm.guest_sysenter_eip = msr_content;
+            vmcb->sysenter_eip = msr_content;
             break;
 
         case MSR_LSTAR:
@@ -1970,7 +1966,7 @@ static int cf_check svm_msr_write_intercept(
         break;
 
     case MSR_IA32_SYSENTER_CS:
-        vmcb->sysenter_cs = v->arch.hvm.svm.guest_sysenter_cs = msr_content;
+        vmcb->sysenter_cs = msr_content;
         break;
 
     case MSR_STAR:
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548..76fcaf15c2 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -97,6 +97,9 @@ static int construct_vmcb(struct vcpu *v)
     svm_disable_intercept_for_msr(v, MSR_LSTAR);
     svm_disable_intercept_for_msr(v, MSR_STAR);
     svm_disable_intercept_for_msr(v, MSR_SYSCALL_MASK);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_CS);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_EIP);
+    svm_disable_intercept_for_msr(v, MSR_IA32_SYSENTER_ESP);
 
     vmcb->_msrpm_base_pa = virt_to_maddr(svm->msrpm);
     vmcb->_iopm_base_pa = __pa(v->domain->arch.hvm.io_bitmap);
diff --git a/xen/arch/x86/include/asm/hvm/svm-types.h b/xen/arch/x86/include/asm/hvm/svm-types.h
index 051b235d8f..aaee91b4b6 100644
--- a/xen/arch/x86/include/asm/hvm/svm-types.h
+++ b/xen/arch/x86/include/asm/hvm/svm-types.h
@@ -27,16 +27,6 @@ struct svm_vcpu {
 
     /* VMCB has a cached instruction from #PF/#NPF Decode Assist? */
     uint8_t cached_insn_len; /* Zero if no cached instruction. */
-
-    /*
-     * Upper four bytes are undefined in the VMCB, therefore we can't use the
-     * fields in the VMCB. Write a 64bit value and then read a 64bit value is
-     * fine unless there's a VMRUN/VMEXIT in between which clears the upper
-     * four bytes.
-     */
-    uint64_t guest_sysenter_cs;
-    uint64_t guest_sysenter_esp;
-    uint64_t guest_sysenter_eip;
 };
 
 struct nestedsvm {
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:48:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:48:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230765.1536203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqrer-0002VE-My; Fri, 13 Feb 2026 11:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230765.1536203; Fri, 13 Feb 2026 11: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 1vqrer-0002V7-Hr; Fri, 13 Feb 2026 11:48:25 +0000
Received: by outflank-mailman (input) for mailman id 1230765;
 Fri, 13 Feb 2026 11:48:24 +0000
Received: from mail.xenproject.org ([104.130.215.37])
 by lists.xenproject.org with esmtp (Exim 4.92)
 (envelope-from <julien@xen.org>) id 1vqreq-0002V1-Qi
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:48:24 +0000
Received: from xenbits.xenproject.org ([104.239.192.120])
 by mail.xenproject.org with esmtp (Exim 4.96)
 (envelope-from <julien@xen.org>) id 1vqrep-006r4V-1o;
 Fri, 13 Feb 2026 11:48:23 +0000
Received: from [2a02:8012:3a1:0:814a:c088:bfd9:f253]
 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 1vqreo-006NAc-2v;
 Fri, 13 Feb 2026 11:48:23 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=FzhMcz+QfvkeLTlxa3QpaNoFVRo32qneeHKlY6RVnis=; b=BQ1pjIO5L9AAB58u+YaGOpbUwS
	KyV4i2UBoe8TxS+YX1zlGxUJa7byNZy3fOJamVkg+O+alMvzRsnsQGFeApj/LD7NJwez49QQSASmR
	GPXhMfLrMxufvnGft2y3vMi9G/fd5/geRiWZXhKhZsou+WctvIgfLtUIyFJbBHuEAtEY=;
Message-ID: <c339b2a9-5d22-457c-8b32-a0b01eee3cec@xen.org>
Date: Fri, 13 Feb 2026 11:48:20 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH 00/19] GICv4 Support for Xen
To: Mykola Kvach <xakep.amatop@gmail.com>,
 Bertrand Marquis <Bertrand.Marquis@arm.com>
Cc: Mykyta Poturai <Mykyta_Poturai@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 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.1770046465.git.mykyta_poturai@epam.com>
 <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
 <CAGeoDV_bN812-qKJwTxNpJ6Ewz1jcBM8nLYc9D+OjqbuAAkEHg@mail.gmail.com>
Content-Language: en-US
From: Julien Grall <julien@xen.org>
In-Reply-To: <CAGeoDV_bN812-qKJwTxNpJ6Ewz1jcBM8nLYc9D+OjqbuAAkEHg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Mykola,

On 13/02/2026 11:36, Mykola Kvach wrote:
> For this reason it may be worth conditionally recommending (or even
> auto-selecting) `vwfi=native` when direct injection is enabled for a
> vCPU, so measurements reflect the actual delivery fast-path rather than
> exit/scheduling overhead.

I don't think this is a straightforward answer. "vwfi=native" is 
beneficial when you have a single vCPU scheduled per pCPU. But if you 
have multiple vCPUs running, then you may impair the overall performance 
of the system as the scheduler will not be able to run another vCPU even 
if the current vCPU is doing nothing (it is waiting for an interrupt).

As a data point, Xen didn't initially trapped WFI/WFE. But we noticed a 
lot of slow down during boot if all the vCPUs for a guest were running 
on the same pCPU. The difference was quite noticeable.

So instead of recommending to always set "vwfi=native", I would consider 
an approach where Xen decides whether WFI/WFE is trapped based on the 
number of vCPUs that can be scheduled on a given pCPU. This could be 
adjusted on demand.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 11:58:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 11:58:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230792.1536213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqroO-0005W4-P6; Fri, 13 Feb 2026 11:58:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230792.1536213; Fri, 13 Feb 2026 11: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 1vqroO-0005Vx-KJ; Fri, 13 Feb 2026 11:58:16 +0000
Received: by outflank-mailman (input) for mailman id 1230792;
 Fri, 13 Feb 2026 11: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=v8h/=AR=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqroN-0005Vr-En
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 11:58:15 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 462085b9-08d3-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 12:58:14 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7264.namprd03.prod.outlook.com (2603:10b6:a03:524::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 11:58:10 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 11:58: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>
X-Inumbo-ID: 462085b9-08d3-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yc0Ujpqc1MJBsZA+VHpBdp17UWQT4qWzvM5ROIvr0Fdq1NGjqZKE6ezsDr7Pza2t97XQ4gaIjyEq8Co8QDW1f8SJOEHq4PfcgR0pJ3BXQaSlCljx3gaiqyGPDQbXWJBaH8WPUHNGPLjAcL0NbooUOyqtYPgoLaOcOe/MI2MmVhPVH+HIJym9QOVPo3+odRA2dbnsRqzqNH95lruRQd8nxp7gmzmU/KIo/ZCYinDUfyubAh8pEVKmrNMCFziXzmhl2h3IreZmJpR+yb3Uo1fBGl9ws2qjMt0LXpCbsHAILFatYySy7ubqwjXIpQTDfQD2uHfjdRAqAtkM3+TMII/nXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hPJZaV7SexPrpxCoY92LjoZDMc/je4U139Q2UO8WbXQ=;
 b=uOia21KtwGqiDR9kkjz1YfTcunkgAy+K8PUgOR2LEAn4L4tP9hv3GBgFlbMYhGA36EkffBjzMgvgEFFtQyfG/b4F3pRmmx44MAyEM7WyrnYD2RfQNKcmWOHbjmxQt80sqXnLZHQNwm58frg4xeffS4tMO1kUEUbHiiPzaQgNQIhBJ263uCiJtl2apBU+0ybtfBj3uLKoiOm9reaM4hi+mUdWzzZSzm6XWjRYcwfAVvY4WFyjL18P1hFRVjd3hZBSMG16Tg0+qub7UstUjmnZKm+w7V+ZCNd/SJdWppx4h6JclX6DLAgEz4d1KiBNMzQwnO3+Wqa6mYWha/iTmIe7HQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hPJZaV7SexPrpxCoY92LjoZDMc/je4U139Q2UO8WbXQ=;
 b=Xt6EVLkSNPgzKHRja73ro/J7C6OlswjS/vrZDDO0TzGvqbvmjZUhYIkE+LGve3SRFUSneJkVh5i6l7k2NWEOJ+mIm+LQaOXGLyxQvGbwujBcXVe36OikbLa34W5TUsx3Fa218Hngm3zSkzLuoJc8Swjb8sH09zrCG8KryLluAyg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ee38a161-80fc-49b3-9e73-af26ffd35fb7@citrix.com>
Date: Fri, 13 Feb 2026 11:58:06 +0000
User-Agent: Mozilla Thunderbird
Cc: 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] CI: Remove `brctl` from Arch Linux container
To: Anthony PERARD <anthony@xenproject.org>, xen-devel@lists.xenproject.org
References: <20260213101921.61888-1-anthony@xenproject.org>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260213101921.61888-1-anthony@xenproject.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0055.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY1PR03MB7264:EE_
X-MS-Office365-Filtering-Correlation-Id: 5498bfd5-0116-4231-aba2-08de6af72835
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UGUySTdKYWJ5V1RlZENoaXZTbWlYdGNIdGljcnRlSWJqQS9XWXprSmFWdHEy?=
 =?utf-8?B?QWxQUWRVTWN4ZlpoOEFXZ3pUMkI3RUk3MGNFRGR2SERaYyt5VTl5SlVVK1lD?=
 =?utf-8?B?NkNiZEM1Y0theGV5cUgxb2FDSlZDb0ZSYjJVZHJEY0tLUkdZVlYxdnVrMFFy?=
 =?utf-8?B?cGJmZmc0WXNFYmtqRlROTERESVNqQVA1WXlkc2RYa2Y3eVhoSE11MEFibURG?=
 =?utf-8?B?bG9iVUlQMFRCdmRUUEVCSVZFc0N5cDU4bGxDSXB2d2d0MHRzVUVzbXgrR0Rm?=
 =?utf-8?B?QjBLSXA5SE1Fd2VhS1lhMGZ2RmRzdDFOWEhXZWduTCtMaTR0T2hjejYvY2s1?=
 =?utf-8?B?RERqZURBK01wY0ZhdXRJSjVncEtNeW8reVNPbWJQWHNmQk1Kd2QxaTRWaCs0?=
 =?utf-8?B?VDVjVWdmbWcxekp4eVlGVnJFeWc0andwbjFtQzliYXQzTjlZUHJXTWswWjJk?=
 =?utf-8?B?dzFwOVZ0blk5SlVUWmdZRm5VTWNRaHlOM3FQbzNITTh4Rk92TWNDKzM0ek1X?=
 =?utf-8?B?NXpmY25WejBna1FDZ0tFTW1udEZ3TEJPTERNZVdlTE5PWVErNFIvUVNPbmN6?=
 =?utf-8?B?MjNyTjQ1RWJsS1V3MzRYWjdFYVBVNTEzTW8ySzNlR3VtSWpZbkp3TU5GZElW?=
 =?utf-8?B?RGdRWjlDWkwvZDJ6dTVWcWd3V2ZxYWlleE4rS0NvRDhtQk9jNkttNGlFdTlt?=
 =?utf-8?B?d3c4aXhZbjlxeXN6a0NxVDlXbVFVS3FYWU9qanhoaEZ0U2xId21UandEWTYx?=
 =?utf-8?B?M3FKSEZaakVINjJaZUVtbEFVc0NLbk5RUlRpeUR4bnAwRDNrbmV2U3Y3aVVF?=
 =?utf-8?B?cGZYMmFFYXhuWUh6VnltSUR5MjgwSXd0NWU0STBDSUlLZ0lETCtPY241WFJH?=
 =?utf-8?B?ZnJaWldVQ0lWaE5NT2s0L0FxZmZZQ2RtS01aYzNXRWNjb2hxeUIvakI0dXZk?=
 =?utf-8?B?TlpVOGFzMVBrWW9oZkJ6OHlLN0J3ZmVaaTJWZGViVXh2bkFlMXU4U3BuMVdL?=
 =?utf-8?B?VTA4V1Z5T1FuYnkxRUVQS3ZrUE5kUlR3OTZMZ0J4WmR2MEZMZy9qVjV4RE9l?=
 =?utf-8?B?NXBrU3FoWW16S3hOV01KRXdYMnpYTnlNYUpKY1BRZUFVTllxQnRZS2M5MVJG?=
 =?utf-8?B?anNkUWVJdXpMSW93dVNyRXBtQUdNbUI1Vm9hYU93SFk1SUd2bHk0REhvL251?=
 =?utf-8?B?ZnRGVEJOcjhmUDJNY3dWakVxZVM0NS8vYWtidzFKU1hKdGxPdXBZdDRxQXVs?=
 =?utf-8?B?QWVLeTVYN3QydEd3anczWHNLQ3EycDB4cExzK2RwVE5PT0Q5VUhYWG1Sdk13?=
 =?utf-8?B?TCtuV1QxZml4ckNCTkRGRndKdkdYeHkwTmdiMnJta256OFRSak0wS0pwcXpU?=
 =?utf-8?B?djVBYUxQMEdldEV6cFA3YkVONGRmUnU5Y21weU1vekRVZ09keERDc0ZBdTdY?=
 =?utf-8?B?SVpEVDZ4L1k3bExJaEJ3VzVoVHFKRU12Ym1wZWRmdm5heStkRXdtcUdIUGxG?=
 =?utf-8?B?Z1Q2RzdLc25Zc01BWFp2RWtidEFkenZvSU1kUUxLTTZHL0hUYndRKzQwYmNI?=
 =?utf-8?B?SmpuVEYxaHBydVpiV0w2clcyY1VNdzl1R05uNkQrWFZIK21pY2ZObDkzRFd3?=
 =?utf-8?B?bnpPRXRVMmdERFhES3VQVjdOd0NCQXRyRkRJSURVTjc0ekZDR25uRlhmcG03?=
 =?utf-8?B?NDhJangvT201czdaL1A5ZnRhSU5xM0JIVTdlYm91MmpwSFYraGVtSW8wakI3?=
 =?utf-8?B?M3B1Ui9ldzgyS3FXbEFtalJUV0VVM0pOamlRNGxQMkhZbWJDYkxuMjVYY2ph?=
 =?utf-8?B?QTVCQTNXUkM1b0lnOFYzT1o5OU9xNGtrYWtVcUlVRGh4UnR2SFB3YkpBblBI?=
 =?utf-8?B?WCtPQ1I5b3psZ3FNNSswN3JEcHg2ekZ2dU44UUw4L0swRjZaZHVZbm1LZWtk?=
 =?utf-8?B?YklQVXBmK2RzZ25OVmY5VGdWMHlTNnlWUFVTUzhCRTQraTZwZVp4MXo3YVEr?=
 =?utf-8?B?clRyamVTYWN4b3VnTFQ3SFpSTUtGWU9tQWc1WVZVNGNjRzJ5U3EraGR3bjFX?=
 =?utf-8?B?bTVBMThFWEtsUGZKS21uNmphY3l2WHlRMGFUTWE4eHRlME0wUHMveXNleHRW?=
 =?utf-8?Q?EGgg=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dkhJdXJJWUpCTG9BQTRDLzhsZjhqWlRPN2pWazVua2MzNHNlRmpsTmU2a1Jh?=
 =?utf-8?B?SXFqWUVoSmZTMXZVSk9qdnlveUVTaWNRQ3BsYnRNSVAvWDI2TDdQRmJwNFZX?=
 =?utf-8?B?QWw3Zk1obzEzWGlQTE90bkFWTS9JUi9NYnBJeU9sNENqUTdaclRVa2VhV0hZ?=
 =?utf-8?B?R2JjRzBtSEtyc2FTMHpwVURvdWRhM3VCSThwREUzODRac3lRc25oanRqM2h4?=
 =?utf-8?B?S2lDTG5QR25kMGZSaVNQSXJCb1NuSzJBdS91dmo1ckUxRnJXWlU2UGpIOXlr?=
 =?utf-8?B?ZWNDbGNSc0hVanFaU2pyQzZaMU8yZG5zdzNRN3ltcnpVZ1UzanYvYXFIdW5R?=
 =?utf-8?B?Z082ajJCSFc0L3pHN0NSS3ZFcUpSZk1aMUNoVCtKUWVNN1JWZWQ2VGhvaldZ?=
 =?utf-8?B?bzduUVRFY1o3L01HeHdXM1VZeUFERDgrd2JPUFRFTnpMMk5DUGE3K2d6akRv?=
 =?utf-8?B?LytESlpXRnFqc0xMaExhVGIzUjFsVWY2UExDdHhERFdTcDVhU0kvUHk1V2NC?=
 =?utf-8?B?RlZTNVQzK0lCaURHU2Fsc0V3WmF2M1dJWFpFWCtkNnE1MzcxMmJEYUJQR0hn?=
 =?utf-8?B?QnlnOFRtaDVWZ0VvZXVOU2d3UXRmTkk3VkJ6UjBLSENpNU1QVDQ0bDFyNWpF?=
 =?utf-8?B?QkNKcEZ3TXZKaXVidnVseEh5dkpsdW5lMFJNRlNTT2hPVThaMU82SWJyTzFE?=
 =?utf-8?B?UEVJLzJSOHl6OEFDMHhQUExaU2lNVmZ3dU9WZGp6ZnJ5Q2pMOUszNnlDd3I4?=
 =?utf-8?B?RVM5NHJEaDltakF5U3R5ZFA0NTRmM2VraFMxNSszSS9KY3ZMVzdXdVNBTFFa?=
 =?utf-8?B?dkpXSkNwNWhOQUJ2SUphWHFVanBmWThMang4MExaMVNITDJKMVhjcUdla3Qz?=
 =?utf-8?B?bjJTQjlRWGxQRVZPWElrb0NaNi9IVjF4UjMwL2VmamJrWmF6V1k5Vlp5eHlk?=
 =?utf-8?B?VEhOMjA3NGxsd21Hd2s3L3Q2NDZQSWV2Um1xd3ZUaVVQcU5KakllV3cyTFV2?=
 =?utf-8?B?YmN0d2RFMEpzdjdKSWtSakdKRlA2SkxWL2tpN3hlampndWFIT0NqQnVla042?=
 =?utf-8?B?NmJXTzJZNEpYTW1MSTUwdHZaNWxDY0Rud3hhUlkxaDhPTDlGUDQxaHNRNTc5?=
 =?utf-8?B?eFNLV1ZTT2NuY0dkb1cvM3ZsdUQ4NHV2RE5hcGlwRFdyS2Q0a0lPMFhvMWI2?=
 =?utf-8?B?Z1lZekozZkMrcXFLS0dvSTJoRTQ4L2NzZlQ3VHpXS1pvUGJwZ29pd0RmWlVn?=
 =?utf-8?B?WWFvRzNkeXFYbHhsWkhuanNrQzl2ODRyL0JtRlYrQldxbUkxNnFTWTBNeHBO?=
 =?utf-8?B?WDdQV3VlVkJqVDUwTTY1ZGd0dWlvM2pZcUEvand2N1RaQzdkcGxoNExJUzkv?=
 =?utf-8?B?bXdCVG9NK1dMQVluWU9SUVJkWFg3aGVyRlk5MzhLM2FRNjg0NVNWeFFKWkRq?=
 =?utf-8?B?ZmJPRUovdzA3MTROMUhUd21IOC9yWDRhUmMycFByWVpCRmt4eWNVZFEwUEZm?=
 =?utf-8?B?enJGK2pvdkI4UklKWE55ZER1SWpDT0ZSN01KOGlOZStYUWE2cFFuWnFHYndl?=
 =?utf-8?B?ZjN5NmdHY08vbGlmL1hzNG5KWlIzOWRpQVZWWmRVeWtOV3VzTGkzRWZjY3U1?=
 =?utf-8?B?aTJXL1YvajFjM1IyejJhajAxN29WNnZwR3B1RVRDWlhTMU04Tm95dmdOb0lv?=
 =?utf-8?B?YnRKRDM5ZkVpVEw2U0p0NUNJSXRWVGI2M2pwS1lwSmgzaFQrNTVBV0dPSWJt?=
 =?utf-8?B?WWN0ZlgwRGFtQU1vRzBzOG13Q1pBdW01UDJ2U3VjMFVlM0JSY3ZrUkl4TTMx?=
 =?utf-8?B?WHh3L2ptSXBVdjBxYkVlTkUvbHBMTmFmclBrcVRKdXcxNXNqeE5ZZFVGYXhq?=
 =?utf-8?B?U1BEMDFJYk80MmJNYURrcVhLZkRBcTNJeE16d1hDSnJIaElRMG5md3hRMCtu?=
 =?utf-8?B?eXcvOTkrNWQrWDVFRmF5UzhKVHZ2ZU9CakFZRnNEK3B6bldVMElYaURndjJ0?=
 =?utf-8?B?RHhyaTZqLzc3Qi8xeko5RDJiWUUxK0pKUGxKMzdWL3FRRXRoOFZjRjc4alBn?=
 =?utf-8?B?K1FFZDdsWTduekxuODkvcDRYdjBuRWpKVmI2ZkI4T3Y5dTkzcHd1N2lrZXhX?=
 =?utf-8?B?MHJTbHpQVm1PMGNmOFZZV05GNzhpR01TNGs2ZC9QNTRLVUIzaVpUK0tsRENr?=
 =?utf-8?B?UEp6TERwNzI3WFQrdkVPWjFmYjdtWkVFb3VsVmtCdjFBNG9XeHJLWEVvKzB3?=
 =?utf-8?B?WVNOamlodmRYODNHVExBQXRBbkVMeURuZzVnWjlmNW9RN1V1djNVaTdpZGFp?=
 =?utf-8?B?eWxER3JIRk1XWVg2Mk4vdFREcGlDNk54Y1MybDJudnlEd2xkRmg4UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5498bfd5-0116-4231-aba2-08de6af72835
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 11:58:09.8858
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: uA4Q5p/AX6VqrrFmw+3SlEPpK1TxcmrUoQ0OQRrzTo06F2OnKV8lqB3oZOttYR0IIF0+gU4oB7S/rirH1j0B2m1nnmFfA+8XM9iWk1g0EV8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7264

On 13/02/2026 10:19 am, Anthony PERARD wrote:
> From: Anthony PERARD <anthony.perard@vates.tech>
>
> Package "bridge-utils" have been removed from the official repos, it
> contained `brctl`. That utility is used by network hotplug scripts,
> but they already check if it is available and switch to use "iproute2"
> (`ip`) when not.
>
> Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

Right now, README lists bridge-utils as a hard prereq, and this is not
true any longer.

iproute is also listed as a hard prereq.  Should we merge these two
lines with a logical or?

> ---
>  automation/build/archlinux/current.dockerfile | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/automation/build/archlinux/current.dockerfile b/automation/build/archlinux/current.dockerfile
> index 4e53c835fa..a257027772 100644
> --- a/automation/build/archlinux/current.dockerfile
> +++ b/automation/build/archlinux/current.dockerfile
> @@ -6,7 +6,6 @@ LABEL maintainer.name="The Xen Project" \
>  RUN pacman-key --init
>  
>  RUN pacman -S --refresh --sysupgrade --noconfirm --noprogressbar --needed \
> -        bridge-utils \
>          bzip2 \
>          cpio \
>          discount \

If you're making this change, I'd like to dust off patch to convert to
heredoc and get both submitted together.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 12:19:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 12:19:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230812.1536222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqs8U-0002V7-Eg; Fri, 13 Feb 2026 12:19:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230812.1536222; Fri, 13 Feb 2026 12: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 1vqs8U-0002V0-BM; Fri, 13 Feb 2026 12:19:02 +0000
Received: by outflank-mailman (input) for mailman id 1230812;
 Fri, 13 Feb 2026 12:19: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=0hMq=AR=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vqs8T-0002To-DU
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 12:19:01 +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 2ad6fd11-08d6-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 13:18:56 +0100 (CET)
Received: by mail-lf1-x132.google.com with SMTP id
 2adb3069b0e04-59de66fda55so936066e87.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 04:18:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ad6fd11-08d6-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1770985135; cv=none;
        d=google.com; s=arc-20240605;
        b=fPGYO7rboRupc8ExDxL/61hJGvdwGslUrTBUyjtqdbn+50LItbMEwZSSvC4mLKo6nX
         CRZh5y2zthpCoHEbWe5oRthW0rZVDbZz2jqGcCzKD4f/3x7uUgENeA7Vf0FvBVz+G60S
         PTqWWVsr6ItU3pbfA1Xtr6agTtOW6en1/S6zb8n/GMEHaYadXqg2NXzaBKhDbvApfnCL
         xeBGMZASNdZA/EZq6KxF4SH2lIt9kV1gAneVTh3ELkpowXHfFXjapH/VnoIZA/meSNV2
         DMa9TVTr8ldv0WBUdSs247Jh1NWNlEVtkMtbajE/AThJHX+41+lkikIcoEC0/r0uafFD
         4RNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=yYAgGUGffvuHYd1ZunqHIlOmyUxXC7/dJt6Is9t6NNQ=;
        fh=jCddITIRBmVhai5fsel8Hn/4t4/GveTnXQ0OfLrOUBw=;
        b=QWu2vqQ+1xTO+83EeDDoOfZdJ3eqwCW8dptnmqVdNolMc+Rqxpb8oJY11xnXIhvPY8
         ODYu9UgsDPl9gbLNOKqt6mr+AcSg2nEQBMQGcwch3KgATn/EiTQ3R3iO7ESUTstIBL3p
         dYI2kSeRJp3upCXFGc0pUeimwit4EfSdX6fF2nMq4su6axYsl1LUMNdNJ+tLSGvEOQyp
         3Btlx9Uqm2Hw9XwFVeuNONsS0lLMuVza9YVv460YhcNhKzM6KI9RCPllVaYpWXWSjzjf
         og3qGGU7KfFjy9q1Kzza73R8TUsgLqVTWTfy98oUq5CE2c2u2E+m1zc1ogW8Bbced+dP
         uacw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770985135; x=1771589935; 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=yYAgGUGffvuHYd1ZunqHIlOmyUxXC7/dJt6Is9t6NNQ=;
        b=TaUUM/QXfryHbBwQ+WONrI+4BLN2R37+o2wWYgI+iWQPCgPJeiB/ipXvSwCZdI60+A
         Ezg2yC1kwFVUSFerqsfRvuhypZsCr+up1wrJ39V5yksS3v+2nJcA74KXx9rw94qRDghm
         TDKgklxpoh5Z/roF8V1tNODx3tkgKm23WOrok3Bv+fO1DeaH4nUY/lDw9O8D7DbezU34
         WZVOalka0cZNlD0wXliNOljhQLcuya1GlNJvlKzGauAOh8gIQS4k7pERFHLO+B1RJk7m
         UhCPIWtz8jnc1L5eEmFVzgp+TegZlBJo+OErJUSVTkpnIm0SexINEIvN5ILQCgMDI6wn
         /tIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770985135; x=1771589935;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=yYAgGUGffvuHYd1ZunqHIlOmyUxXC7/dJt6Is9t6NNQ=;
        b=Hx1IWV3kTdDWMkT8Jzux+AwXLnjlaEsZbXijmeZSfR6AAyw0huRyMJefOaOsGPBFjX
         We+Hxoj9FmzpR8yuIyz1P5RgZ4A0+G7o/mFiDoaiL2AbgzuD55cjvAPUKeCFSDdSLFoB
         pnNYfyowMYQm/f/jLHBs7DiS986lQ+OaTojjHWIYwj5CkvbOgG3giWNNIlnthTSdR3SK
         VSJzN6eqRaJ4JfP7sVmLbk0M8wpLv+34QGEKG2xo3QV7oghYib7Lye25hOFQe420KQTy
         5WM4qXZbxwjfFBSC3U7B6KzvT4iuevroggnzxZQFwwlJLsWscyfFe3RzEOqKd7V++lID
         GBpw==
X-Forwarded-Encrypted: i=1; AJvYcCXsLKf/j18cdnr8fq8/xT6oXBRNHs5FVYne8R1V36HZJ9H1mOum8zcHQbgHLCBNXsGI1Hl8Vievc7k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3V4W8M6ebBVwBuWBm/TVKIfaCgEK+MPkd4yGVCgxfDK8HxEud
	Vm44zSA5DsfeCFgOniLeJkUsCTKPlRCSEkFNKl6Zkd5Dw65fgHoek/fLrqdQHqSonV1ikan1jyd
	MzbrdreeWo0RcOv/3cgNJWVReZbcGCnY=
X-Gm-Gg: AZuq6aI+TWEAJbPSqZVY1xXqrG6XZOpZ/lS0NJHLwrMEEhnyc1SoK66N40GFj/gMDG8
	X8icHb0P+5L33OUj39sfQgJxLk1l7H3rlGtalZcuUObubBcJEOx/8vXdiqwS4nWt2R+fX0BGI0I
	JNZL/A7AgQStsqQ1kX92IhXfBJG2qKqsHj8m+SjyygqKx4yFCCNaIfmTYXGYIFyZwsZR6hvclPo
	Ao9bwz+NRrYFvMbMuc37CzH5QtCm9aNWXtBw0dMPJll8ljmZZV814RDAgoFLkd8v4CMCKCSszWv
	yEhlWg==
X-Received: by 2002:a05:6512:63d0:10b0:59f:6a34:59d2 with SMTP id
 2adb3069b0e04-59f6a345a19mr338253e87.19.1770985135227; Fri, 13 Feb 2026
 04:18:55 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <AC263D87-9EE3-4F32-BC5D-1A290781C48B@arm.com>
 <CAGeoDV_bN812-qKJwTxNpJ6Ewz1jcBM8nLYc9D+OjqbuAAkEHg@mail.gmail.com> <c339b2a9-5d22-457c-8b32-a0b01eee3cec@xen.org>
In-Reply-To: <c339b2a9-5d22-457c-8b32-a0b01eee3cec@xen.org>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Fri, 13 Feb 2026 14:18:44 +0200
X-Gm-Features: AZwV_QhFgaV1Vllm3LAQkQqZw_uooMIMQ1HLC_MN1d6MeY-Ttxk84d4MGUhSiDg
Message-ID: <CAGeoDV9OTA_6fOUOqdHG2naGRdaagPhRFr75v_mCnxE7-7kLGA@mail.gmail.com>
Subject: Re: [RFC PATCH 00/19] GICv4 Support for Xen
To: Julien Grall <julien@xen.org>
Cc: Bertrand Marquis <Bertrand.Marquis@arm.com>, Mykyta Poturai <Mykyta_Poturai@epam.com>, 
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, 
	Stefano Stabellini <sstabellini@kernel.org>, 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 Fri, Feb 13, 2026 at 1:48=E2=80=AFPM Julien Grall <julien@xen.org> wrote=
:
>
> Hi Mykola,
>
> On 13/02/2026 11:36, Mykola Kvach wrote:
> > For this reason it may be worth conditionally recommending (or even
> > auto-selecting) `vwfi=3Dnative` when direct injection is enabled for a
> > vCPU, so measurements reflect the actual delivery fast-path rather than
> > exit/scheduling overhead.
>
> I don't think this is a straightforward answer. "vwfi=3Dnative" is
> beneficial when you have a single vCPU scheduled per pCPU. But if you
> have multiple vCPUs running, then you may impair the overall performance
> of the system as the scheduler will not be able to run another vCPU even
> if the current vCPU is doing nothing (it is waiting for an interrupt).
>
> As a data point, Xen didn't initially trapped WFI/WFE. But we noticed a
> lot of slow down during boot if all the vCPUs for a guest were running
> on the same pCPU. The difference was quite noticeable.
>
> So instead of recommending to always set "vwfi=3Dnative", I would conside=
r
> an approach where Xen decides whether WFI/WFE is trapped based on the
> number of vCPUs that can be scheduled on a given pCPU. This could be
> adjusted on demand.

Thanks for the clarification. I agree: recommending vwfi=3Dnative
unconditionally is not correct.

What I meant was specifically for benchmarking direct injection in a
1:1 vCPU:pCPU setup (or with vCPUs pinned), where trapping WFI/WFE adds
extra exits and can hide the fast-path benefit.

For general setups with oversubscription, vwfi=3Dtrap is the right
default, because it lets Xen schedule another runnable vCPU instead of
leaving a pCPU effectively idle while the guest sits in WFI.

I like your suggestion: make WFI/WFE trapping adaptive based on whether
the current pCPU has other runnable vCPUs.


Best regards,
Mykola


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 12:51:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 12:51:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230847.1536252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqsdd-0001GW-UR; Fri, 13 Feb 2026 12:51:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230847.1536252; Fri, 13 Feb 2026 12:51: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 1vqsdd-0001GP-QN; Fri, 13 Feb 2026 12:51:13 +0000
Received: by outflank-mailman (input) for mailman id 1230847;
 Fri, 13 Feb 2026 12:51: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=dTkW=AR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqsdc-0001GJ-Uf
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 12:51:12 +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 ac41563c-08da-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 13:51:11 +0100 (CET)
Received: by mail-wr1-x441.google.com with SMTP id
 ffacd0b85a97d-436317c80f7so1991143f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 04:51:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796acffcesm5085713f8f.37.2026.02.13.04.51.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 04:51:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac41563c-08da-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770987071; x=1771591871; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+Q3zRln1tjMGdhMT5hVuaUWVh8GmXW6cPN+GJOwH+gc=;
        b=YShLGpiSaDGY4B9Md7dX7m9jnQrf5SFuqlGdZIjb99lPeZeB+bU5pNZ6fbiSyieuH7
         sALBJZJ8Ukr6nkRmRaji7oQ0NA/zSfOqcIBOIPMHecxBiK7AJzZx5M8bcknsfAatMJFO
         E3tuOWcE006tHiqgvw4IiLO8H+hZq3WoE2SKaXAOE3YDgcyw7/0EYCHvhhu7A+ekuBT0
         w3v47atUeuBG4XEWwm+GXkxYZsgug+WS4I8Ci40aXLjd4QK+qKNz67wb7/aHmrMgK5lo
         n7/V7RHBxzNK1D6WYMajX/BEQezaQnOg+JXBhkX38vEJMkyZSgIrjQGubk5QqDJFJH7R
         V2Zw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770987071; x=1771591871;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+Q3zRln1tjMGdhMT5hVuaUWVh8GmXW6cPN+GJOwH+gc=;
        b=YR4+L6noLJV7H4s4HCieKyUvQ7NibOiEBlTYdC4JqXQzPFjJf/rL+w3FqdhfN2nQHO
         4F0ouELAoSAxPkVxNrcpKE33i2KegiMUWf2ZOxzkawjDq3XGw7yd592jO4pFWtwTbRe3
         Wir+ILCEM7OI6NkM7k3pL50NnGatiS/aUfwfUNJOUivZoXglMu1HLRxeGhKw5MF1WuSt
         Lsi/kL3UZ+M8QZ57IHbENsJOVAlWoPMMy1IvXBRSXldFhS0xq3qsUJO7psaPsf/VmsnX
         zC0PYJcv2MvXSWyiJ1B3kgUQuBe4dDPbasG67UPf245t0EcyaJT1C3kM8BhxR7+pdPCn
         JjxQ==
X-Forwarded-Encrypted: i=1; AJvYcCWkgq7mueE1vtPWLod6yaV31JL742DMgLhQ/8PJXL3HCa7YSwfKZ3SsodRTnR8ItscM2w7dJsU4YtQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPWhXoPY/EGnj35T42n+Scu2WZhP7UW5hgolNK+dk48oQBJoAH
	Ft2UVSImcUg+HwuKoPWDYd1YYc5cigIRoUqnQixhEhshgUTfBAkfmk3Vq9zd+L73/w==
X-Gm-Gg: AZuq6aLB5lOFitUuOOPkAPJ8xWEoE0hgL9bV6gbmidj9H8CdjnK6oEhtTiIv49HZClN
	2vGE0BaHFZf0XEeGiXOFlAaMdaj1ZHuS8kPic9uRzJ0748rgBbE8O+xZmBWVJtPzXWJut4yeXZ+
	AiQj/Ppzv8+n42W5Ixp9J9BngmFxFCoOCAiv021RX115MszJB8rN0li7k54e5N+6J8KPXXoK9SG
	OAZevNcj0vKL0JXItsrKneKplzMSQGxq2CGS/NvuJKn+Bs/7E/w4sdmBvdycKfyTDMiYv3t9H+2
	qJU3RxRFCpOIB5h9HYvbH6qnw121bP0c1mTzDegu4UiwR5v9HFArcLXVQL/dUOEl4fhHj4cauX2
	133kVhx2NU8weTMFR33x9meHrmSLLqT7hfYl2IvjcHQhUbLwv7sOOd18WThMPI/HQCfh90jYVjO
	w1Un9bFbcEPEo1XwQOdGNOcQL3gXVr0GOBgiBJfgEkQUEzM2WqjEYgTEYl95Bv9En72uspVNDSd
	GH87Vvpba2WdT0=
X-Received: by 2002:a05:6000:18a6:b0:430:fdc8:8bd6 with SMTP id ffacd0b85a97d-437980642e8mr3570921f8f.31.1770987070528;
        Fri, 13 Feb 2026 04:51:10 -0800 (PST)
Message-ID: <37cb7d83-9651-4bb8-833f-4d85f8231c6b@suse.com>
Date: Fri, 13 Feb 2026 13:51:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 1/6] xen/domctl: chain SCI handling before IOMMU in
 assign_device domctl
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.1770982468.git.oleksii_moisieiev@epam.com>
 <53251361b05028f4875d4fccec7270749786c54b.1770982468.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: <53251361b05028f4875d4fccec7270749786c54b.1770982468.git.oleksii_moisieiev@epam.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 12:37, Oleksii Moisieiev wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Add chained handling of assigned DT devices to support access-controller
> functionality through SCI framework, so a DT device assign request can be
> passed to firmware for processing and enabling VM access to the requested
> device (for example, device power management through SCMI).
> 
> The SCI access-controller DT device processing is called before the IOMMU
> path. It runs for any DT-described device (protected or not, and even when
> the IOMMU is disabled). The IOMMU path remains unchanged for PCI devices;
> only the DT path is relaxed to permit non-IOMMU devices.
> 
> This lets xl.cfg:"dtdev" list both IOMMU-protected and non-protected DT
> devices:
> 
> dtdev = [
>     "/soc/video@e6ef0000", <- IOMMU protected device
>     "/soc/i2c@e6508000", <- not IOMMU protected device
> ]
> 
> The change is done in two parts:
> 1) call sci_do_domctl() in do_domctl() before IOMMU processing. If
> sci_do_domctl() reports an error other than -ENXIO, treat it as
> authoritative and skip the IOMMU path. A return of -ENXIO indicates
> that SCI did not handle the request and is ignored, allowing the
> existing IOMMU handling to run unchanged;
> 2) update iommu_do_dt_domctl() to check for dt_device_is_protected() and
> not fail if DT device is not protected by IOMMU. iommu_do_pci_domctl
> doesn't need to be updated because iommu_do_domctl first tries
> iommu_do_pci_domctl (when CONFIG_HAS_PCI) and falls back to
> iommu_do_dt_domctl only if PCI returns -ENODEV.
> 
> The new dt_device_is_protected() bypass in iommu_do_dt_domctl only
> applies to DT-described devices; SCI parameters are carried via DT
> nodes. PCI devices handled by iommu_do_pci_domctl do not carry DT/SCI
> metadata in this path, so there is no notion of “SCI parameters on a
> non-IOMMU-protected PCI device” for it to interpret or to skip. The PCI
> path should continue to report errors if assignment cannot be performed
> by the IOMMU layer. So we should leave iommu_do_pci_domctl unchanged; the
> SCI/DT-specific relaxations belong only in the DT path. Also SCI handling
> only exists when DT is present.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>

Mind me asking where my A-b went?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 12:54:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 12:54:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230865.1536262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqsgo-0001p2-Au; Fri, 13 Feb 2026 12:54:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230865.1536262; Fri, 13 Feb 2026 12:54: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 1vqsgo-0001ov-81; Fri, 13 Feb 2026 12:54:30 +0000
Received: by outflank-mailman (input) for mailman id 1230865;
 Fri, 13 Feb 2026 12:54: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqsgm-0001op-KK
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 12:54:28 +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 2088d2b5-08db-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 13:54:26 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso7040435e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 04:54:26 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d930902sm229657365e9.15.2026.02.13.04.54.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 04:54:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2088d2b5-08db-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1770987265; x=1771592065; darn=lists.xenproject.org;
        h=content-transfer-encoding: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=kWPLolIDpws5dRWyP31Bfk5fVjB1I9uQbJE2pAeobF4=;
        b=foJ0Uck8foiNcCvIYG3nPc8cb84F01InG/l5zrcek4MZx+1pz5IH+GkOO9tSnvMYKP
         jx8QLx7ezidjHcgKxQYlCqDIHr84V8u1yJox0ZuIrRuHV3XIw3neBouTlFlvcufSmg+l
         y9kVmwIxAECjQUw4oykrBg10fw1sXodRrJ/zS2FxNBXuDihVF6zy/mWFwVDFGlnOiZcQ
         PIIoLMJWv84LOju1d2w3bNnCVVns0FTMHZJx0WrIyNFaU4fBt6YPGoPVlCoGOHOjTIix
         nHlxOE34V3jNmSdjfkoJU1MonNQKNiXrRsfZAo3vXoUNrVkdWY5nczKB84hbGjmyRnfl
         TYTg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770987265; x=1771592065;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=kWPLolIDpws5dRWyP31Bfk5fVjB1I9uQbJE2pAeobF4=;
        b=GcwWrIeI/im+6yoQH0fRv6QHdVzwzokvCpX43z9WVViBPC1mkjCbjr3mYoBtPHPIHm
         aNExJsuAzy+QVL/2Ogp3+yRiwiGdYLiZARDd6aXIkrczgAxsoQJJUAghRz+v3RIsNmkm
         48Uxeg2eh6lqURdopezXcVf0OCgAGt8UtVk7+iP24FMHckFzKzCnPkiXDlxY5l1mC1/W
         AdWbGwHvZor11aAm8GCJ3PppTnrwQSYAsT4D5OM2rH2ZPTMlP+YMvYpcQ22AzTuNaBC9
         OWPGlrSk++GCYBRm15/uHwPhzuiZ+f3YKXROjexa0a3/z00lVQqzHgzO2PVs3/pm/ykT
         hmgg==
X-Forwarded-Encrypted: i=1; AJvYcCX7xIdYMThd6CfufF3ctK/rG/ROhbm8cEXWEsGfsyWr8n/UuPZqZvHGep8nAMqUUYJM07hn+97zUGU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzWJo+UENONwmLU8BnsLezwDX/42QGFinKRNdiao+c9b1xNeduk
	l3U5q2o7L7/YCblCwUw63cFmzfSBYxC9eCcI6wOTQ+Tf4Zw/8uUaehLN
X-Gm-Gg: AZuq6aKE4ApzE/CWBrG+TtBDChzrkwdciBVJCThiIvw2Hf8UjyXR4eGhFBFPVEJ0Fz3
	HKyPrTP04Gj4M6mT/pojzWBp4qttrQWzVF+PNwclIyvXFo/AsshVrYOB8wFagjiRM+NLW2BZwWD
	B7bybjPNV1t2j0/fgDJ4nYkF+i9dKQ7CtfS4AukUo1IPQVNOKzcHR9g8ZPw26wFjF6nj1Q69m6e
	rK6jZsn7HKxB4Vb241tcHSLMOEZzs1GnfaHGgTj0SGINELYCUnhHcehK6CajRthNTQzAaQjKDPj
	AztF/47Zq04E6BnEro+IM89eOU3G8wVQRZByp4KEiyMMN/uMGU3blK+BqI1iaEDURKlcpcf0k5K
	yQtKjp8uI3KvFmSezqzOu/a+5yfUArDFCd9sGhSK+H+fup9E1zRXBg5W10PqxKgms7rtQeiDwFo
	xdcN4z4J5hGEiZbBkyGzgMlRf/bRyhNvZc6ennnUQHwWmup7PznOwMGmsvA+jMMk7kUn9QUnakv
	xc=
X-Received: by 2002:a05:600c:1907:b0:477:73e9:dc17 with SMTP id 5b1f17b1804b1-48373a79afbmr29141955e9.35.1770987265247;
        Fri, 13 Feb 2026 04:54:25 -0800 (PST)
Message-ID: <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
Date: Fri, 13 Feb 2026 13:54:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
Content-Language: en-US
In-Reply-To: <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/12/26 5:39 PM, Jan Beulich wrote:
> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -44,6 +44,9 @@
>>   #define P2M_LEVEL_MASK(p2m, lvl) \
>>       (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
>>   
>> +/* Holds the bit size of IPAs in p2m tables */
>> +extern unsigned int p2m_ipa_bits;
> Hmm, I can spot a declaration and ...
>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -51,6 +51,12 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
>>       .name = "Bare",
>>   };
>>   
>> +/*
>> + * Set to the maximum configured support for IPA bits, so the number of IPA bits can be
>> + * restricted by external entity (e.g. IOMMU).
>> + */
>> +unsigned int __read_mostly p2m_ipa_bits = PADDR_BITS;
> ... a definition, but neither a use nor a place where the variable would
> be set. Hmm, yes, I see common/device-tree/domain-build.c uses it. Then
> the following questions arise:
> - What does "ipa" stand for? Is this a term sensible in RISC-V context at
>    all?

IPA stands for GPA. (maybe it would better to rename the in common code to gpa too).
It was used as common code uses p2m_ipa_bits.

Yes, I miss to set p2m_ipa_bits properly in p2m_init() where G-stage MMU mode is set.

> Judging from the comment at the decl, isn't it PPN width (plus
>    PAGE_SHIFT) that it describes?

It is PPN width + PAGE_SHIFT what is equal to PADDR_BITS (44bit PPN + 12 bit PAGE_SHIFT).

> - With there not being anyone writing to the variable, why is it not
>    const (or even a #define), or at the very least __ro_after_init?
> And no, "Arm has it like this" doesn't count as an answer. Considering
> all the review comments you've got so far you should know by now that you
> shouldn't copy things blindly.

It was added because of the usage in common/device-tree/domain-build.c.

It was done in the same way as it is also possible that an IOMMU shares the P2M page
tables with the CPU's G-stage(stage-2) translation, so GPA size must not exceed what
the IOMMU can handle (or G-stage address limitation if it is smaller then IOMMU's).

(a) It could be that MMU uses Sv57, IOMMU uses Sv39, so in this case if IOMMU and MMU
shares G-stae page tables it is necessary to respect guest address limitation.

But considering that according to RISC-V IOMMU spec ... :
   The IOMMU must support all the virtual memory extensions that are supported by
   any of the harts in the system.
... (a) isn't real issue as we could always program IOMMU to use the same as MMU mode
and then p2m_ipa_bits __ro_after_init should work well. It can't be const as I mentioned
above I missed to initialize it properly in p2m_init() code. (It is also a case for RISC-V
that IOMMU could use x4 mode, so MMU uses Sv57 and IOMMU uses Sv57x4.)

>> --- a/xen/include/public/arch-riscv.h
>> +++ b/xen/include/public/arch-riscv.h
>> @@ -50,6 +50,14 @@ typedef uint64_t xen_ulong_t;
>>   
>>   #if defined(__XEN__) || defined(__XEN_TOOLS__)
>>   
>> +#define GUEST_RAM_BANKS   1
>> +
>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>> +
>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
> Hmm, does RISC-V really want to go with compile-time constants here?

It is needed for allocate_memory() for guest domains, so it is expected
to be compile-time constant with the current code of common dom0less
approach.

It represents the start of RAM address for DomU and the maximum RAM size
(the actual size will be calculated based on what is mentioned in DomU node
in dts) and then will be used to generate memory node for DomU (GUEST_RAM0_BASE
as RAM start address and min(GUEST_RAM0_SIZE, dts->domU->memory->size) as a
RAM size).

>   And
> if so, why would guests be limited to just 2 Gb?

It is enough for guest domain I am using in dom0less mode.

> That may more efficiently
> be RV32 guests then, with perhaps just an RV32 hypervisor.

I  didn't get this point. Could you please explain differently what do you
mean?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 13:12:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 13:12:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230886.1536272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqsxn-0005Zq-NP; Fri, 13 Feb 2026 13:12:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230886.1536272; Fri, 13 Feb 2026 13:12: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 1vqsxn-0005Zj-KK; Fri, 13 Feb 2026 13:12:03 +0000
Received: by outflank-mailman (input) for mailman id 1230886;
 Fri, 13 Feb 2026 13:12: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=dTkW=AR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vqsxm-0005ZY-5g
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 13:12:02 +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 954eed43-08dd-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 14:12:01 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4837584120eso3456985e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 05:12:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5d78cfsm368439055e9.1.2026.02.13.05.11.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 05:12:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 954eed43-08dd-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770988321; x=1771593121; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=7c6I6VSwTra0rjCakmyj6CRewOV//uSGA5KovOLUpIw=;
        b=Jn/eTIVnz69N3EnaFnTEFg/7az4cUPlng1MxVuC3F+bsAdS4DWUrFdAKQoW77AdTCx
         sVE17nSMfKay3WlOZMVt1vfHlDExePoQ9/eGWrx3ejS+5ZovgAwObrdfPIypRrIZKfmt
         WFu3v3qJTShYD4OrQsLAO1qPYYxUY6FYyAolZ524vgw/25DTIU30oqTlShVzd5wc05so
         3P30l3op0XeUcztUCDZa8PXELxHn+DYS+SN9YOZMR7dQN9NxWtL8GxMP61kLQRwKlmtq
         0iXPxZg1sUOYDoSoVYxG3BRZ3tN08OK+Y6s4qrSZq9SEMyZ8u+HO6MFSORdTlO8QoNv2
         4BFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770988321; x=1771593121;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=7c6I6VSwTra0rjCakmyj6CRewOV//uSGA5KovOLUpIw=;
        b=TfvR6DH75aKCkcM10mo8qgEcNM8GqHqKd0R17hFbX5kiuksDyi+vyTAzK8xuFr8ME4
         hSQRNLt0AajVzTJMt3oeXoNwImb/vYjGn2o2HsjN6lvWEeHgLL+ay084qDLxYO0u0SEz
         8iSp9Pz9uTzKBpviJ2ZqbAdJ/v+chRQjIRHqCXmasqLAqG79oXZDe4Lo6fsUxoUw93hf
         4D63CcJw0FIww3GVWhJl48zycj7+xVbDTXCCTLHvWpxjHGheiU7CE5qgvB0sfWu4hYDO
         jbfUQNPoRPYnfQvedaK6g/S+ThR7vbTtCd5XKEfYEiSv0/lT0HjNPpXD8+c6UMNOAaOU
         O4mQ==
X-Forwarded-Encrypted: i=1; AJvYcCXXPe09zQIujbBPaqZ8GAtc4DoxKeBonjNR3s0Rco5ODB1WkgHpMK/X5vEprsF+dBl+Qybo4PQasAg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxM5E5k++UEz489NXPXIHHTNxhhMwsURrSsT31sT0eUg/rrnNnJ
	5EQDTxvS+u1FPZgjtrLYCOrZoJiJZgmNFrrl+ZGSsCj3ERQ92VvySnx85utUXHc5Ng==
X-Gm-Gg: AZuq6aKLo0c1savG26l1h6GNu5PHQiL+n42c2yR9g89+OrsEq7BRKed+6Q31pibFGCh
	9tsPEk5NkA2dHWrxr3pFjrWc9UKWgHmICA/PoRaz0jfy1phMgKJ4LvI18a1LenwKCXJnIdrILee
	U/1nItmgkIQ7MGn009xjQLxjDKrXV0VzzO/qvzYBgSiShwML+ENL0tTLjRD9GFbZR48Xr0Vvzcb
	0LU6n8dg+VbzN61Pex2erGcecJRVBDF376XDa0boU1o0CUZ3PPXcLeYLMabImNPN945u2967T2w
	LZ66DVhxL6v1yMgRLOap2d/w9v7CrWrTUtHUK7/EvanEJwFBEeH/W9A0vO2x/sDsA9PjnXzeGtl
	FQHeHNn4F/yIS7xjUraaMsHHzUxSdJ19Mi+ToLDZD6B8wCjLaz1Wz61DUx8nk43SXo0MkNheNPt
	slsLx3Dwwou0ouv1bAj606LxBuVg6eh/fuIzRrx0uK771mDwrn8sMwtE2GTG3go4QhV7eJl8z9p
	CskW4zaBdvOvltqBgOizhcK+Q==
X-Received: by 2002:a05:600c:8706:b0:483:71f7:2796 with SMTP id 5b1f17b1804b1-48373a0b010mr28748065e9.10.1770988320533;
        Fri, 13 Feb 2026 05:12:00 -0800 (PST)
Message-ID: <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
Date: Fri, 13 Feb 2026 14:11:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
 <b4ac883d-ce90-40b0-93fc-95c925c7ac61@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: <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 13:54, Oleksii Kurochko wrote:
> On 2/12/26 5:39 PM, Jan Beulich wrote:
>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/include/asm/p2m.h
>>> +++ b/xen/arch/riscv/include/asm/p2m.h
>>> @@ -44,6 +44,9 @@
>>>   #define P2M_LEVEL_MASK(p2m, lvl) \
>>>       (P2M_TABLE_OFFSET(p2m, lvl) << P2M_GFN_LEVEL_SHIFT(lvl))
>>>   
>>> +/* Holds the bit size of IPAs in p2m tables */
>>> +extern unsigned int p2m_ipa_bits;
>> Hmm, I can spot a declaration and ...
>>
>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -51,6 +51,12 @@ static struct gstage_mode_desc __ro_after_init max_gstage_mode = {
>>>       .name = "Bare",
>>>   };
>>>   
>>> +/*
>>> + * Set to the maximum configured support for IPA bits, so the number of IPA bits can be
>>> + * restricted by external entity (e.g. IOMMU).
>>> + */
>>> +unsigned int __read_mostly p2m_ipa_bits = PADDR_BITS;
>> ... a definition, but neither a use nor a place where the variable would
>> be set. Hmm, yes, I see common/device-tree/domain-build.c uses it. Then
>> the following questions arise:
>> - What does "ipa" stand for? Is this a term sensible in RISC-V context at
>>    all?
> 
> IPA stands for GPA. (maybe it would better to rename the in common code to gpa too).
> It was used as common code uses p2m_ipa_bits.
> 
> Yes, I miss to set p2m_ipa_bits properly in p2m_init() where G-stage MMU mode is set.
> 
>> Judging from the comment at the decl, isn't it PPN width (plus
>>    PAGE_SHIFT) that it describes?
> 
> It is PPN width + PAGE_SHIFT what is equal to PADDR_BITS (44bit PPN + 12 bit PAGE_SHIFT).
> 
>> - With there not being anyone writing to the variable, why is it not
>>    const (or even a #define), or at the very least __ro_after_init?
>> And no, "Arm has it like this" doesn't count as an answer. Considering
>> all the review comments you've got so far you should know by now that you
>> shouldn't copy things blindly.
> 
> It was added because of the usage in common/device-tree/domain-build.c.

Well, I understand that, but this isn't the way to do. And you've been through
such before. Anything you want to share between arch-es that isn't shared yet,
will want some suitable abstraction done. Like giving variables names which
are appropriate independent of the arch.

>>> --- a/xen/include/public/arch-riscv.h
>>> +++ b/xen/include/public/arch-riscv.h
>>> @@ -50,6 +50,14 @@ typedef uint64_t xen_ulong_t;
>>>   
>>>   #if defined(__XEN__) || defined(__XEN_TOOLS__)
>>>   
>>> +#define GUEST_RAM_BANKS   1
>>> +
>>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>>> +
>>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
>> Hmm, does RISC-V really want to go with compile-time constants here?
> 
> It is needed for allocate_memory() for guest domains, so it is expected
> to be compile-time constant with the current code of common dom0less
> approach.
> 
> It represents the start of RAM address for DomU and the maximum RAM size
> (the actual size will be calculated based on what is mentioned in DomU node
> in dts) and then will be used to generate memory node for DomU (GUEST_RAM0_BASE
> as RAM start address and min(GUEST_RAM0_SIZE, dts->domU->memory->size) as a
> RAM size).
> 
>>   And
>> if so, why would guests be limited to just 2 Gb?
> 
> It is enough for guest domain I am using in dom0less mode.

And what others may want to use RISC-V for once it actually becomes usable
isn't relevant? As you start adding things to the public headers, you will
need to understand that you can't change easily what once was put there.
Everything there is part of the ABI, and the ABI needs to remain stable
(within certain limits).

>> That may more efficiently
>> be RV32 guests then, with perhaps just an RV32 hypervisor.
> 
> I  didn't get this point. Could you please explain differently what do you
> mean?

If all you want are 2Gb guests, why would such guests be 64-bit? And with
(iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide), perhaps
even a 32-bit hypervisor would suffice?

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 13:31:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 13:31:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230919.1536283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqtGL-0000c8-DK; Fri, 13 Feb 2026 13:31:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230919.1536283; Fri, 13 Feb 2026 13: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 1vqtGL-0000c1-8E; Fri, 13 Feb 2026 13:31:13 +0000
Received: by outflank-mailman (input) for mailman id 1230919;
 Fri, 13 Feb 2026 13:31: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=VfN9=AR=epam.com=Oleksii_Moisieiev@srs-se1.protection.inumbo.net>)
 id 1vqtGJ-0000bv-Lb
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 13:31:11 +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 41e4382f-08e0-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 14:31:09 +0100 (CET)
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com (2603:10a6:102:32e::21)
 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.9611.13; Fri, 13 Feb
 2026 13:31:07 +0000
Received: from PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f]) by PAVPR03MB8946.eurprd03.prod.outlook.com
 ([fe80::98:900e:f8e2:716f%5]) with mapi id 15.20.9611.012; Fri, 13 Feb 2026
 13: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: 41e4382f-08e0-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fY2xefEZgViHDGeFoYAbJg+0TgCs/WiHTG+hujh1LD+pQWZyh+JHFqQrsYwrCQMrleERX8fSSbApTL/wjMZrrFBWzw8cBHsy8/BUjoY6jrSX/YaoCN6j/LySlo9c4yr62kgg5/97AeBCRYLCRMjJ5yAgG51Yw6KtMbnmF1SIX3k4QuBop94qkU9iO7CfnJgnoLWBP4hUUg9UeRO74wf3FFVtgX/wbnNOJCvD5KHia2SdjKAd/B4wOMwZ78W7BalFjSzu+7hN5FQapx/eslI0rtU0muZRUhbAKwbiIOAVOek9hNd8J3REiQab71WWusMt43eefpmJHSDz1d3IPLirRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4T6cb6vWFA6yEHoMdtiibbUpHbFJNfNV1Fc4K2rpetI=;
 b=n2Soa7sKWT1nibOGr1qtbFm9tR0KDbm5lWPvpFQpR3/ePOaNbHGfiDtxBSP1tSQpLZEdf9vgTXWBO6bEJgukhCOFbhAWMcEjEJEffC1qp1p+zbOdREpWBTn22UEKhVZhNBiJ1ogCw6fjaC0T6y2e5czdJ8Wp7wmj+TXCrFH/xvAzP0DKZXQqtEQPDYtzNaoI9MNOTQRPdjD+cN0PUaCRVtYv5K4lYs9lGYTpLKCLneAkiGPSgKrbv6G8oIsGDVyPm+zZvTNkB5sqm9VwheHvcL3OkZn//HiG/sM0C5hSQvMBwfKU1zJAG+SazYA/+OK+M6LkPiprQseDVJFN1P+W8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4T6cb6vWFA6yEHoMdtiibbUpHbFJNfNV1Fc4K2rpetI=;
 b=rfoWpmrBUPm/Apr95KFtAbb6Pw1Sx7u88nHJAB9+wtYXqYqqmF6wGdTdJnEoqNQdDWkWqI2Za9Cfj9xn3EoiSAlEa+bVZSVB+05QOSwNycilwtIbWSutb8nAaKcojt954GuuSzKvaVnZM3EsTueSSMmvJpgIUn6wueIqMOdzmgEYYRyYbSyoLSeBD+yTFgC+xwGRGktVcRMNK1q24cFuK+x5Ze/7lJlhOHe0j2GAvTbIuAI6qse2VkFbrgJYgMdXmPPJND1j1pPAo7Jdmsug01mBsj3taue8uE/b8LDcWzOATqv2CKatZRVRDM+3bQWq+iNeOIi0pj28tGSdZ3eZYg==
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 v10 1/6] xen/domctl: chain SCI handling before IOMMU in
 assign_device domctl
Thread-Topic: [PATCH v10 1/6] xen/domctl: chain SCI handling before IOMMU in
 assign_device domctl
Thread-Index: AQHcnN0TIpWAusmvHEWrF5RBUFLqU7WAlR4AgAALKgA=
Date: Fri, 13 Feb 2026 13:31:07 +0000
Message-ID: <7b60047e-13a6-4550-bb3a-968969ab033e@epam.com>
References: <cover.1770982468.git.oleksii_moisieiev@epam.com>
 <53251361b05028f4875d4fccec7270749786c54b.1770982468.git.oleksii_moisieiev@epam.com>
 <37cb7d83-9651-4bb8-833f-4d85f8231c6b@suse.com>
In-Reply-To: <37cb7d83-9651-4bb8-833f-4d85f8231c6b@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_|DU5PR03MB10357:EE_
x-ms-office365-filtering-correlation-id: bc680a3c-a403-4598-f0bb-08de6b04249c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|7416014|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?QWR4OGptTE1kNjJIMDBuSU54bm5DNC9jVXBXVEZHbUNYZXl4SVhRS2RZRUky?=
 =?utf-8?B?RG5RbFlkUjdxYVNadlNhcXQ5dC94dzdrYmRsa2ZReWV4cisvcXJJSW54ZXBF?=
 =?utf-8?B?MW02dXZOQzRhbVhLTWhaQThOQXhzQ3NibWhTVERZRnF4N3hjbUFpc0ZmdEpK?=
 =?utf-8?B?RnR5L0wrYlE0TU1ldDRRQk1KdjcrRmE4cjRTQnhoVzduZUg5T2paa2tVSzY4?=
 =?utf-8?B?R241bWRnaXp5bE9pK0JtaTQ2cWNYV3RZbjhxb0lzS1RIUHd6cEs0VjVXbnlM?=
 =?utf-8?B?bkpieXpXd1pTRitneXVqaURyQ1VmRVRJcFl2Vkwwa1E3QlBzaUlEaXZEWVFY?=
 =?utf-8?B?MlZkQUFEb05ESGVmSUFseGo4N2xRY3U5Q09aYTJOb09WMDVSVUgyMGl1ei9r?=
 =?utf-8?B?eDRHYXR2RWswMkc5ekxKNFUwb0E2d01yTFdXVGtUdCsvbldiOWF1bjBCWDFC?=
 =?utf-8?B?Z3ZXN3JxRUhiVnZvTWhqZGtCVjROWmlENUZjNHJsOSt6ZGJHcjN2MWZFTHc3?=
 =?utf-8?B?RVFpSlVYQzJOeGlmZHZBVzdTdmM4NHFVSlB5eXo3QzVFZXp0SnpnZXFmeEhn?=
 =?utf-8?B?RDdxQ3lOVCtTOUpGMzF6YzhkRFMrVFpuNUhiUm1XRStHaHFwNEJyMEdGSHBJ?=
 =?utf-8?B?b0pTVUxPQm5UeHdWamtBZW11ME1zRlZyWC9leXY5bXlSM3JsaUlGRGQ3MHIw?=
 =?utf-8?B?YTY1eTdCS0xpVTVqb3BQdmI3SVNKMUI4YkN1K2VFajNodHF6RFBaRmRHajlG?=
 =?utf-8?B?eUtyOVRQdEMyVXhzLzBUeFk2dGN3NE84TmZ3b1RNeGl3UTZjUmVCZzRZaG5q?=
 =?utf-8?B?Ty93amJkUDFidlJyaUZWZ2M5V0RucFVTK1Z3ajc1SUJrRTJWb2ptYmswbnJP?=
 =?utf-8?B?dzRWb3VWaFRxc1N0UkxROGhuTUV4cDBWNFNJTWNWL3dubkhvZFBEdUgzUkNq?=
 =?utf-8?B?VmhpbnRqUDN4SWZWcVlBNnRaVlFBd1FhMW04ZUNXcGExZW9KMzlPMTBWR3Bw?=
 =?utf-8?B?WHRjZjA0Z1kxMkZ0UjlhTkFaT05SbkFvelJoblRJZkpGYmRQVHh3UDJwR0FC?=
 =?utf-8?B?WU04MFNJbWtNWHlDRUg1RGlyQVZvc3NmSC9HVVpOTTdLc1dZQTNCbUtWbzNx?=
 =?utf-8?B?UUFuL0hKVlBzd09DSUlKWGU0RCttb2gvK0lXbmJhOEYwMEpxNTU0Vmo1L2g2?=
 =?utf-8?B?eXRrWmxsRUUrTytrU2pRcDFWUEJ3ZlhnOWNhcHJnSmRScjFYS3ZPaG9NZzdj?=
 =?utf-8?B?M3NyYzJNMm5BaE9vM2FVeVMvQjJaQWh3SFNHeWZnVVBjRXZzdDVDT0FxZEFa?=
 =?utf-8?B?UGtXTWNoWmE4ZFBGdFBQUnZFRnpGc0Vlb2oyYWxpVE1TT3U1N2djUCszaVlJ?=
 =?utf-8?B?cHp0VzJ0Z3NWRjBSVytGdGNHc3NiWlVzeTVDNldYU0xOSmdLbWVxTHdLdXUy?=
 =?utf-8?B?ZEwya29mQmVUZTQwUXExOFBHRXUrNzluajJWMTM4WGRJb3lLVHhmSGZkN2c5?=
 =?utf-8?B?cFE4clB4SlBqM2VpZ2tSaXd4VFhIY2tFbFg2eUlZRFU2TlBmdEZ5SGJPVm43?=
 =?utf-8?B?bnliWnYyWXE5M2dRTHZXQ0NLOXBFMnlrRFNvbjlhdXdvMXQ2cGUydkJ5OHJQ?=
 =?utf-8?B?TDU3d1dPMHBRc09WQjRnT1FFaDJUODZnT0M0eS94OStjQmY5OVZmM1ZBZ0k0?=
 =?utf-8?B?bWdnWjErZmQwcytyVDVOeHlBNHhCcmRZSWVkYk5IOW1iUHAwZ2Vxa2pzQXg5?=
 =?utf-8?B?OFdTbnZzOXI5ZEczS2NMdGplUzkwVEdqRWpscVZMSkIra0Y4b0ltVUtDZEFx?=
 =?utf-8?B?T1BhTUxkVW5ISTF5eGdHVVJOYWlHQVdTOVUzU3o0cjgwNlhuMFJreTRoSHd3?=
 =?utf-8?B?UGpxUWh1b0pkenpRNDhRa0hHZ2FBSXRidHdWZnNUVmVFenhjam1DajMzamZF?=
 =?utf-8?B?UWJlZkZwa0p3UEgydmZzaWNENlFLd0tBOUJZbDJtS3dYeklOV3FFLzlpbnBH?=
 =?utf-8?B?ODF2alRKR2xVS2djWGZidzhFTmRTQzBDakpqNWhiN0xaSGI0Rmwxa1NRSWFM?=
 =?utf-8?B?QTFDbi9WMmZLblB6ZlNTdk1qZ2pCVHBDQ3p3SWFkKzhvekUvUWJOVk5hUnFk?=
 =?utf-8?B?cWMxT3hqVEkzNG5NbXRaQXpsalo2K3VJVWRHVnpLOUhJWlpCQmZXYXlQV1Fs?=
 =?utf-8?Q?/CnKruHwnzOhwdXktAAcUQU=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)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RkVyb3BqZEh5emxQTDdmQ2JnTUxyS0FOemFBTlZKOWNlb3k4NVZHTFg4TXJZ?=
 =?utf-8?B?T0JpWUFsZnJVL0d4UlRySkx4bEdlOGZEaVpwS0NuVjNmTEZGL2U2TWtnUVBV?=
 =?utf-8?B?THVxdFEyclJIQm1WSmw1cU9iVkthWFZldnpBYlZpcTJQSGJXM2RwRDI1U3pn?=
 =?utf-8?B?K2NNNmtUWmtEVDNlV0k5RWxYbytyR0lVZ2J0Y0dnR2lyZDMrTTRZRDVVMXFp?=
 =?utf-8?B?WVhpZmMzRVk3U3JxL1h5U0tFSEMyQ1BJeENxcForMUw1QzFuaWxBYnNyS2Uz?=
 =?utf-8?B?eGpib2d5TFFYUWJkQVVOUjFWWDNYczc4VEo3aitCOUppcFNxT2lEZ2RLdzV2?=
 =?utf-8?B?ZU9tU25INXZ3N0RUUWRoWFBUTWd1SUJTdFVOMUt0VTlYRlJEZUtQekdyU0lT?=
 =?utf-8?B?Z3U4OW1PNmR0NzVWeVpQOXYzOTZTckttcXNzZWE2QkdaVjNFcWsreExNMVJ1?=
 =?utf-8?B?ZFZEWFVWcWFCOE0wdTVFWmVIc1Q3Zks0Tnd1TS9aZjkxc0xsamVNVTBhSTlC?=
 =?utf-8?B?UDJjUk83TFdVV0dsZEg1a0k4dkFJbVBvbUU1dDNaSGF3ekVhSGlYdmRDQ29W?=
 =?utf-8?B?ekRnVzlYa0lwanVrOEpWUE1qeWRlTzJsUEV0UlVXVVNFNGJDZjdRUmwzQVoy?=
 =?utf-8?B?VEUvSklYMWhRMk9JdmNpTE5XOC9RQXltU3RuL3NpYnhhemcrbDdZTnJVaGlr?=
 =?utf-8?B?VVBjY0ZXRkdWSTdrczBsNGFHaEtkbEROYWVPR2pTbnpvaTBVQVd3ZWFOY25W?=
 =?utf-8?B?U0p6blRRb09HRjlNd2I5cEFGeGtyaW0xVk44ek9WbU1OL3haQVRyN3htRlFM?=
 =?utf-8?B?Z3QxM0pFVkh6NzdGT0ZvODlCQUxnVTQrM3RzaW4ra3VQWG5FU1JnN2haZmtX?=
 =?utf-8?B?alQvRzdNRnYrQjJOdkhQUE9ZMklnM2dvWkdpaGZTMkJYbmNGK0M2ZzkvQnBP?=
 =?utf-8?B?eUlBVzE1RVJDUDhRdjJNS2ppZ09uYnBLT1VOL0FlcUdERGlBekhyalhvMU5P?=
 =?utf-8?B?MjlIMkVlNkxCNDVqT2I2ZXI3eU8ydUE4bVhGTTNKOTZBTER6dXJQVE0rTVpK?=
 =?utf-8?B?U2hkTklDTHJZRWpKbU9zQXhQNzNvUWtYTHN1dk01eEFiSVQ3SU5PVUQyZkQy?=
 =?utf-8?B?cTVrbVV2Z1lvNXBwd2hTdzJnMEszRTFCcUJNY2diK0NXTWs3ZW1yU2ppMmNO?=
 =?utf-8?B?NDVYUnVadGJQa25nVm1XdG9JZkswVkVUaDIrVW1wRlhWbjhlK3dWZ0NYamN0?=
 =?utf-8?B?MHU2K2VVSXRqaHNiYnBCY0JmY0xKcEtXUU5mbElaRXc0ckE3WVI2KzdXcEkz?=
 =?utf-8?B?TGZNVWdENDlmY1p0ZlpPaStuajNIdlFpdkFCQWlVVk05bTdNNTk1azR4Q096?=
 =?utf-8?B?MkhoNDEwOGs2dmYyTzJoVlh0OVRMWkRRcW5YY3l0aGJjeXBHOTNVRkJYZU83?=
 =?utf-8?B?d05yK0RORkNJcHRmaVpTdmNicGtyc1JhdzFrWjNqeHBOTURKVTZQT25GWkxw?=
 =?utf-8?B?VGUrUmE4M2cyOHZ5VkdKczZGSWx2cXhTZDdmS2tpdnh6Y1E1ZmxrTzQ1dmQy?=
 =?utf-8?B?enNnYTU3Q0R5UEd3SjN5RXJhUlpSMkxjN2V0SHI4bHFhZURUQ2laTFhIb1Fj?=
 =?utf-8?B?d0N0eDZFdlB6OFNvWUt4SndNYzBHVVltK2ZCTm1mNWdWTDB2T1VKTjRrNEhQ?=
 =?utf-8?B?QkI0VEdJSzBab2UrZm5mb3ZuallyeDh5YUk5dkhmdVBqaTh6NHIrVHJpa3Zs?=
 =?utf-8?B?OEl4ZWdUM3ZVcU4rQ3BLWE93WjhtcFZuNkJsT2ViVHZKcG14dVdOYU1BQkd6?=
 =?utf-8?B?OHRyUjIwaC9yNGFxc2hiZHRlN2NrMnluRTdWL2NTSGtvUy9tTkxuZnRSMEVV?=
 =?utf-8?B?WFo0SFh5UDhrbDF3WmV6K1NTOHY4ZVAyUUtTdlN6RlJxT3NoUk5tczEvcUE5?=
 =?utf-8?B?bFovcmw2UzJIYXlWMEprQVlsaHVaVHNPT00vUmNaMDgvUWpDTnVHS1ByekZX?=
 =?utf-8?B?TWJoNGFJRWdkRWJSTmhzZjRmckZiSGZvUlZ1VFB0MTMrUVhUSGJXKzlSTmhq?=
 =?utf-8?B?RFBzRkp1NUVxWVV6V1lYcXBmVGJlK2V6Z243b0tFOGFYcGlqMFZmZ21tMGlQ?=
 =?utf-8?B?ZWI2bWtMSGJEZFF5Z2Z4aitRM01CQjhhTDdaNlljMiswWWRpQ3NRc0RFR0U0?=
 =?utf-8?B?b2hLUUFtRkRBRzE5M25wMmNCMGszcGhHdXZwc0FaSjFCUGlSc0NjZWEzNmxG?=
 =?utf-8?B?VlI0SnFiUE5VUldJYVhidUd6YTFETUU1YlRuU2ZUcURNTlo5VHp4SXFSM3hI?=
 =?utf-8?B?cEtJSWNiYklrelRlSEVKUVhQMEUxTU83cTc4aWJaNFlVK1BIRXJ4bDJJVkRu?=
 =?utf-8?Q?soBXh9i5aEHb4rXY=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <FD56BFE72D830B48AAA75EA9FAC603B4@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: bc680a3c-a403-4598-f0bb-08de6b04249c
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2026 13:31:07.1245
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: j5j1RpaRzYDEp2zA2Ji6oIc+O6OfVWjDlOZYyNcruoHaS2cseuTPdgwN2/QXF4ZBcrHg6eC7ASiKsS4UmEJ3qy8XAmVzPp0fTUzJy7C8QyY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10357

DQoNCk9uIDEzLzAyLzIwMjYgMTQ6NTEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxMy4wMi4y
MDI2IDEyOjM3LCBPbGVrc2lpIE1vaXNpZWlldiB3cm90ZToNCj4+IEZyb206IEdyeWdvcmlpIFN0
cmFzaGtvIDxncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNvbT4NCj4+DQo+PiBBZGQgY2hhaW5lZCBo
YW5kbGluZyBvZiBhc3NpZ25lZCBEVCBkZXZpY2VzIHRvIHN1cHBvcnQgYWNjZXNzLWNvbnRyb2xs
ZXINCj4+IGZ1bmN0aW9uYWxpdHkgdGhyb3VnaCBTQ0kgZnJhbWV3b3JrLCBzbyBhIERUIGRldmlj
ZSBhc3NpZ24gcmVxdWVzdCBjYW4gYmUNCj4+IHBhc3NlZCB0byBmaXJtd2FyZSBmb3IgcHJvY2Vz
c2luZyBhbmQgZW5hYmxpbmcgVk0gYWNjZXNzIHRvIHRoZSByZXF1ZXN0ZWQNCj4+IGRldmljZSAo
Zm9yIGV4YW1wbGUsIGRldmljZSBwb3dlciBtYW5hZ2VtZW50IHRocm91Z2ggU0NNSSkuDQo+Pg0K
Pj4gVGhlIFNDSSBhY2Nlc3MtY29udHJvbGxlciBEVCBkZXZpY2UgcHJvY2Vzc2luZyBpcyBjYWxs
ZWQgYmVmb3JlIHRoZSBJT01NVQ0KPj4gcGF0aC4gSXQgcnVucyBmb3IgYW55IERULWRlc2NyaWJl
ZCBkZXZpY2UgKHByb3RlY3RlZCBvciBub3QsIGFuZCBldmVuIHdoZW4NCj4+IHRoZSBJT01NVSBp
cyBkaXNhYmxlZCkuIFRoZSBJT01NVSBwYXRoIHJlbWFpbnMgdW5jaGFuZ2VkIGZvciBQQ0kgZGV2
aWNlczsNCj4+IG9ubHkgdGhlIERUIHBhdGggaXMgcmVsYXhlZCB0byBwZXJtaXQgbm9uLUlPTU1V
IGRldmljZXMuDQo+Pg0KPj4gVGhpcyBsZXRzIHhsLmNmZzoiZHRkZXYiIGxpc3QgYm90aCBJT01N
VS1wcm90ZWN0ZWQgYW5kIG5vbi1wcm90ZWN0ZWQgRFQNCj4+IGRldmljZXM6DQo+Pg0KPj4gZHRk
ZXYgPSBbDQo+PiAgICAgICIvc29jL3ZpZGVvQGU2ZWYwMDAwIiwgPC0gSU9NTVUgcHJvdGVjdGVk
IGRldmljZQ0KPj4gICAgICAiL3NvYy9pMmNAZTY1MDgwMDAiLCA8LSBub3QgSU9NTVUgcHJvdGVj
dGVkIGRldmljZQ0KPj4gXQ0KPj4NCj4+IFRoZSBjaGFuZ2UgaXMgZG9uZSBpbiB0d28gcGFydHM6
DQo+PiAxKSBjYWxsIHNjaV9kb19kb21jdGwoKSBpbiBkb19kb21jdGwoKSBiZWZvcmUgSU9NTVUg
cHJvY2Vzc2luZy4gSWYNCj4+IHNjaV9kb19kb21jdGwoKSByZXBvcnRzIGFuIGVycm9yIG90aGVy
IHRoYW4gLUVOWElPLCB0cmVhdCBpdCBhcw0KPj4gYXV0aG9yaXRhdGl2ZSBhbmQgc2tpcCB0aGUg
SU9NTVUgcGF0aC4gQSByZXR1cm4gb2YgLUVOWElPIGluZGljYXRlcw0KPj4gdGhhdCBTQ0kgZGlk
IG5vdCBoYW5kbGUgdGhlIHJlcXVlc3QgYW5kIGlzIGlnbm9yZWQsIGFsbG93aW5nIHRoZQ0KPj4g
ZXhpc3RpbmcgSU9NTVUgaGFuZGxpbmcgdG8gcnVuIHVuY2hhbmdlZDsNCj4+IDIpIHVwZGF0ZSBp
b21tdV9kb19kdF9kb21jdGwoKSB0byBjaGVjayBmb3IgZHRfZGV2aWNlX2lzX3Byb3RlY3RlZCgp
IGFuZA0KPj4gbm90IGZhaWwgaWYgRFQgZGV2aWNlIGlzIG5vdCBwcm90ZWN0ZWQgYnkgSU9NTVUu
IGlvbW11X2RvX3BjaV9kb21jdGwNCj4+IGRvZXNuJ3QgbmVlZCB0byBiZSB1cGRhdGVkIGJlY2F1
c2UgaW9tbXVfZG9fZG9tY3RsIGZpcnN0IHRyaWVzDQo+PiBpb21tdV9kb19wY2lfZG9tY3RsICh3
aGVuIENPTkZJR19IQVNfUENJKSBhbmQgZmFsbHMgYmFjayB0bw0KPj4gaW9tbXVfZG9fZHRfZG9t
Y3RsIG9ubHkgaWYgUENJIHJldHVybnMgLUVOT0RFVi4NCj4+DQo+PiBUaGUgbmV3IGR0X2Rldmlj
ZV9pc19wcm90ZWN0ZWQoKSBieXBhc3MgaW4gaW9tbXVfZG9fZHRfZG9tY3RsIG9ubHkNCj4+IGFw
cGxpZXMgdG8gRFQtZGVzY3JpYmVkIGRldmljZXM7IFNDSSBwYXJhbWV0ZXJzIGFyZSBjYXJyaWVk
IHZpYSBEVA0KPj4gbm9kZXMuIFBDSSBkZXZpY2VzIGhhbmRsZWQgYnkgaW9tbXVfZG9fcGNpX2Rv
bWN0bCBkbyBub3QgY2FycnkgRFQvU0NJDQo+PiBtZXRhZGF0YSBpbiB0aGlzIHBhdGgsIHNvIHRo
ZXJlIGlzIG5vIG5vdGlvbiBvZiDigJxTQ0kgcGFyYW1ldGVycyBvbiBhDQo+PiBub24tSU9NTVUt
cHJvdGVjdGVkIFBDSSBkZXZpY2XigJ0gZm9yIGl0IHRvIGludGVycHJldCBvciB0byBza2lwLiBU
aGUgUENJDQo+PiBwYXRoIHNob3VsZCBjb250aW51ZSB0byByZXBvcnQgZXJyb3JzIGlmIGFzc2ln
bm1lbnQgY2Fubm90IGJlIHBlcmZvcm1lZA0KPj4gYnkgdGhlIElPTU1VIGxheWVyLiBTbyB3ZSBz
aG91bGQgbGVhdmUgaW9tbXVfZG9fcGNpX2RvbWN0bCB1bmNoYW5nZWQ7IHRoZQ0KPj4gU0NJL0RU
LXNwZWNpZmljIHJlbGF4YXRpb25zIGJlbG9uZyBvbmx5IGluIHRoZSBEVCBwYXRoLiBBbHNvIFND
SSBoYW5kbGluZw0KPj4gb25seSBleGlzdHMgd2hlbiBEVCBpcyBwcmVzZW50Lg0KPj4NCj4+IFNp
Z25lZC1vZmYtYnk6IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaV9zdHJhc2hrb0BlcGFtLmNv
bT4NCj4+IFNpZ25lZC1vZmYtYnk6IE9sZWtzaWkgTW9pc2llaWV2IDxvbGVrc2lpX21vaXNpZWll
dkBlcGFtLmNvbT4NCj4gTWluZCBtZSBhc2tpbmcgd2hlcmUgbXkgQS1iIHdlbnQ/DQo+DQo+IEph
bg0KU29ycnksIG1pc3NlZCB0aGF0Li4uIDooIFdpbGwgYWRkIGluIHRoZSBuZXh0IHBhdGNoIHNl
cmllcy4uLg0KDQotLS0NCk9sZWtzaWk=


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 13:38:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 13:38:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230932.1536306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqtMw-0001iF-Hn; Fri, 13 Feb 2026 13:38:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230932.1536306; Fri, 13 Feb 2026 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 1vqtMw-0001hh-DX; Fri, 13 Feb 2026 13:38:02 +0000
Received: by outflank-mailman (input) for mailman id 1230932;
 Fri, 13 Feb 2026 13: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqtMv-0001RI-5F
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 13:38:01 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 35fbde7a-08e1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 14:37:59 +0100 (CET)
Received: from SJ2PR07CA0015.namprd07.prod.outlook.com (2603:10b6:a03:505::28)
 by BN5PR12MB9509.namprd12.prod.outlook.com (2603:10b6:408:2a8::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 13:37:54 +0000
Received: from MWH0EPF000A6732.namprd04.prod.outlook.com
 (2603:10b6:a03:505:cafe::5b) by SJ2PR07CA0015.outlook.office365.com
 (2603:10b6:a03:505::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.13 via Frontend Transport; Fri,
 13 Feb 2026 13:37:51 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000A6732.mail.protection.outlook.com (10.167.249.24) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 13:37:53 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 07:37:51 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 35fbde7a-08e1-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HQPLxOJuhKQ7jUkh9Fuv9rYSW1w6j/89ldl2VoudQl/bMyUY+GSnCsY59R8pe7X4Tfw7Tbh3FcuVawlveTd+NC/Amvuxr8X6AXcVDrp7DUNWdZ3exiU9lNygkQJFygN1N3S7IgO05pZvnXeA7t+xVzG98DZqRTIP1ysBQiG1s0o0ToNUzFRSaAOxZ/psb5qBUh3b19Xs+P9qm8lgUqV4iDt5wGkuGXNEMsVtFs0kGi7PnOqCitj04oHIMoGz76XQR+IQKPmYneSvoRAaRUNrS20e6aCH4maNt8R6fqzZwJzPkKxwEU5TnZ/h+dEIO88fA9ptZFU4wBCzEpU9MmOFvg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nspe1jSCdTmM5bqpafVLqgeaSP53cHPgBiEN8kytCmM=;
 b=BfR6L+R02Vyhdoo7dzt4S+OacaGdUtYjSCJ92oXWNFfYhPgPeU0AhW6CUlyqMdyttBK1BxpqTRSvX7d5A6dl9JvR9WRF5wqiUfvAz8jYLJD40ltth94pg46ux92mhhem4Sf9ZRHiyOjgh9H+fjMOh9jOzNHXtf6RHbLrRgs8V++mLduzvBWf79spHLhqmS+cCjl1q6p4pRAh4QELNAIvPZRsn/E2fjLlDvqzxYqMGX0ImZCf5FyNi0766iqMIAeJHL9gpqzhJB6yInkTB9PtPgsZ45EzBxWS2tneOp9+WgJHnUM8u0lZE2HCgMPz7oh48NWT01ny3HbIgSFW+C982A==
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=nspe1jSCdTmM5bqpafVLqgeaSP53cHPgBiEN8kytCmM=;
 b=jroQIRs4SK1PrIdN2QRsTy4XMETmOdygUCEjrLvOJPeuA7BiOYCcUWE6QRzC7hIfS/uoItciXw+09HYWucz6A+tzx6re1ALclN/J0x+lvixjUgO4sTb0bRSTD5VvCOyfcKc+zh3U6AfvTxb2/HFxAhsqQH78oTXeVOUtjpX2gYs=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, 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 2/2] x86: Force HAP to be enabled when PV and shadow paging are compiled out
Date: Fri, 13 Feb 2026 14:37:30 +0100
Message-ID: <20260213133732.132326-3-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000A6732:EE_|BN5PR12MB9509:EE_
X-MS-Office365-Filtering-Correlation-Id: d520c7f8-647e-4c30-cc99-08de6b051703
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|1800799024|36860700013|30052699003|82310400026;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?BAp2tle0LRkosgeWQnm+HJWnyaq/hvBRdhVc3MwoGEpA+lWqZfG/OvGmQV/I?=
 =?us-ascii?Q?XO7f6jFvExtnN8ppdK+VTcoHNUaE+HwFLEtha+R61ZUK4y1J1FcPu3ehW+IE?=
 =?us-ascii?Q?nOST1z3N1dFnJ0gHpVclCYzasm7ZVpVvqx49mwpZrACLtHJYp/ydrnKcX0SM?=
 =?us-ascii?Q?e4Nv5hsEunFjpgSud6GG7Brtlf/ddOlhAxi4LcoykRMVTXRSeJQcocMOUDQt?=
 =?us-ascii?Q?1DqwmSWJGuBw+YLeFXVsDTCLr0CXyGpo5xxdrfALlTz7FsfuoyjQjumdaFYY?=
 =?us-ascii?Q?orLP8ksfbIdPMkiuCtm4Hxho1aC1HWTCpGJT/1QdPH5SBRRul3aCmGStKyMH?=
 =?us-ascii?Q?yHTIJwRNIM759M5QukWMcLxhLp063o2D7r1xeB1AEu9wQPHcmT6BhTUtH3lt?=
 =?us-ascii?Q?JqUb/HeDrUU4ZeFeK1FZXQkb3WcAVHJrSO04Dx2Fq7+4h3DQzIyMkB67N9iw?=
 =?us-ascii?Q?T8wX5ilmd+lJNwI3x3xS3Q7vbx5misThhioc2OhGnfJ/IBDOFCQNZ0aod38F?=
 =?us-ascii?Q?+R27lW18/htTrparI/SWa5MCuaCKCP4P1c6S7iKefeX3DrV30scq6+OQaSBx?=
 =?us-ascii?Q?+zQgFpYIP/RqBuIf94om/rBbgTGzZWTwBBWCghofJsjMZEl0TgE8zP731MVb?=
 =?us-ascii?Q?a/7VacoSrikYbsfi1qJRdmCI0cxIxX/c+LtdUyjvFAuklKZHQXstmqGnzSdX?=
 =?us-ascii?Q?c1xv+9TyKne98pcKUt4AcMMH+71oHS3lZuwRhVroq/Pu2l97bomoTFz33t1j?=
 =?us-ascii?Q?wQSfnNxBsY3YjwbMCJ8fOK+n/vvH+WLEAfvgPL0M92Q6VVyZktK5WbRhpSUp?=
 =?us-ascii?Q?CBt9QANIVi3drT9+Fl/jViZYdCBSg0xWQJJW+IbZOuWsZ0NXIRkDW/2Rme5S?=
 =?us-ascii?Q?CVLPjKTINcyAbjvsIubcLaLic2CaCS1oDb9H5sUCu8wjW2TLqfqaL2TzSNIW?=
 =?us-ascii?Q?fb3mYTRecp3ou9KKp3+yq+h7gseA1BQZZIcMatSquN9qS95nRZqeFIGaAwUR?=
 =?us-ascii?Q?DaL7fWHRK7u5mU6ZWfAkYXaOItu8hqoBoiVbcCcNCO5B7/XXoBeWE6BFuxZs?=
 =?us-ascii?Q?qghHXsKxVDxPq0xdikW1Xd5EdFCxPKj/U1RhUz5V29os4b5bKhjPXB7s1nPL?=
 =?us-ascii?Q?kSyrtT5LX1LODmZVT/gMviZxNIS2Dm2KpkmKUrRBjuzHDOQxhuXziO1lowdc?=
 =?us-ascii?Q?rS86faYjp1OkyWjfSLMh3rUW+591q/q3Ow6A4n9FDUIznqH86doC2x0EwrMZ?=
 =?us-ascii?Q?frA0WFCEqjzGPgfOrFFY37VfDusrAJS7aR3n+B02S6hrYol/wBam+p534tl9?=
 =?us-ascii?Q?NlNTRC3xObtr7SMhc5QpNsupvbyFTBNjvzHvBx7e/UBfuV2N1xQmr4jVWZkv?=
 =?us-ascii?Q?+tk1Q+33Sdcq8gZqh8NP7kx4Q94lDgNj/lYF0TBF8H1uBH0vqpeUf79GEWHc?=
 =?us-ascii?Q?x4ub4F/gtbXjE+5rAafqIFORCGAHjdWRFIYtwaM5k3RNJyKUmLwPx74aUBIJ?=
 =?us-ascii?Q?k8kr+fpkSspjjMfnBZDU3qWWEcuPOjhfRgYQuGCn6gp+X7ZLVyf4e+dZbg8/?=
 =?us-ascii?Q?o8R/VKU2JiPLW2usqjggSE8WFMN8MmmzjfAahZvALaqfQDr12z60FQkUfNay?=
 =?us-ascii?Q?HtMR1q36RPICRStFfDZYHUZyWMx2YkD14XMm1EANCDlTzcBUCCltyejXBVTb?=
 =?us-ascii?Q?8D4fcA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(36860700013)(30052699003)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	YISXS2N8a2LybbW4zUTOiSZZvJvDYwMTRuLcGGPqqWiu8bkSLXMKyKzKHokULjHEn5c0jjnG2jPr0tXkFZEW8iAhauP7U9By4B6eaG08MOJYCQEpky+7io4UWG0jRHNiC2T3+aPIh/9LclZhMpRRTofB9/vz2xryzeLDhnHemCFHVLLFkPu36ukMhuGb7z3BS6N8hgaFErRX0Us1JoWwFLRqfWO3dJhFlEpGRwYyDkmQpvheMDxRsg46WEI76cZRU62XxglCYDl4ujW2wf7hky6eMyaktJt+Y5I6al647F22W8UqnDZkZPo9YFModrQrrxoMFmS51K0NcRokMyBG+8d+7ZbmEUOuhviz3Ym6m2zZunS/zbD6OFWPTt7VHT4sItnw86fNPLrL7Nf2fFyqnZyFzMoktDxANB0k0MiS5FClbLGaawbwAz6rM92cA9KS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 13:37:53.6990
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d520c7f8-647e-4c30-cc99-08de6b051703
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000A6732.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN5PR12MB9509

Makes hap_enabled() a compile-time constant. This removes a number
of hooks that normally go reach onto shadow paging code, clears
many branches in a number of places and generally improves codegen
throughout.

Take the chance to fully remove the shadow/ folder as it's now fully
compiled out.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
bloat-o-meter against prior commit (defconfig:-pv,-shadow on both):

  add/remove: 0/12 grow/shrink: 2/31 up/down: 67/-1609 (-1542)
  Function                                     old     new   delta
  unmap_mmio_regions                          1340    1374     +34
  map_mmio_regions                             211     244     +33
  opt_hap_enabled                                1       -      -1
  shadow_vcpu_init                               2       -      -2
  __setup_str_opt_hap_enabled                    4       -      -4
  _update_paging_modes                           6       -      -6
  _toggle_log_dirty                              6       -      -6
  _clean_dirty_bitmap                            6       -      -6
  cpuid_viridian_leaves                        728     714     -14
  iommu_domain_init                            291     276     -15
  p2m_pt_change_entry_type_global              214     198     -16
  paging_teardown                               91      74     -17
  paging_set_allocation                        384     367     -17
  paging_enable                                 76      59     -17
  p2m_init_one                                 295     278     -17
  ept_sync_domain                              201     184     -17
  arch_set_paging_mempool_size                 437     420     -17
  p2m_free_one                                  78      59     -19
  paging_vcpu_teardown                          36      15     -21
  p2m_pt_init                                  125     104     -21
  p2m_pt_change_entry_type_range               218     197     -21
  arch_do_physinfo                              76      53     -23
  sh_none_ops                                   24       -     -24
  paging_final_teardown                        134     110     -24
  __setup_opt_hap_enabled                       24       -     -24
  paging_vcpu_init                              41      15     -26
  paging_domain_init                           167     141     -26
  p2m_mem_access_sanity_check                   71      42     -29
  hvm_enable                                   449     419     -30
  init_guest_cpu_policies                     1247    1213     -34
  paging_domctl                               3357    3318     -39
  __start_xen                                 9456    9416     -40
  arch_sanitise_domain_config                  794     747     -47
  symbols_offsets                            29636   29588     -48
  p2m_set_entry                                305     247     -58
  guest_cpuid                                 1919    1858     -61
  ept_dump_p2m_table                           817     751     -66
  recalculate_cpuid_policy                     874     806     -68
  shadow_domain_init                            71       -     -71
  mmio_order                                    73       -     -73
  hvm_shadow_max_featuremask                    76       -     -76
  hvm_shadow_def_featuremask                    76       -     -76
  dm_op                                       3594    3510     -84
  symbols_sorted_offsets                     58464   58368     -96
  symbols_names                             103425  103213    -212
  Total: Before=3644618, After=3643076, chg -0.04%
---
 xen/arch/x86/Kconfig               | 2 ++
 xen/arch/x86/hvm/Kconfig           | 3 +++
 xen/arch/x86/hvm/hvm.c             | 8 ++++++++
 xen/arch/x86/include/asm/hvm/hvm.h | 2 +-
 xen/arch/x86/mm/Makefile           | 2 +-
 xen/include/xen/sched.h            | 3 +++
 6 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 2ce4747f6e..190f419720 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -67,6 +67,7 @@ source "arch/Kconfig"
 config PV
 	def_bool y
 	prompt "PV support"
+	select OPT_HAP
 	help
 	  Interfaces to support PV domains. These require guest kernel support
 	  to run as a PV guest, but don't require any specific hardware support.
@@ -147,6 +148,7 @@ config SHADOW_PAGING
 	bool "Shadow Paging"
 	default !PV_SHIM_EXCLUSIVE
 	depends on PV || HVM
+	select OPT_HAP
 	help
 	  Shadow paging is a software alternative to hardware paging support
 	  (Intel EPT, AMD NPT).
diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index f32bf5cbb7..310e09847b 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -92,4 +92,7 @@ config MEM_SHARING
 	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
 	depends on INTEL_VMX
 
+config OPT_HAP
+	bool
+
 endif
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index da56944e74..ce58632b02 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -91,9 +91,11 @@ struct hvm_function_table __ro_after_init hvm_funcs;
 unsigned long __section(".bss.page_aligned") __aligned(PAGE_SIZE)
     hvm_io_bitmap[HVM_IOBITMAP_SIZE / BYTES_PER_LONG];
 
+#ifdef CONFIG_OPT_HAP
 /* Xen command-line option to enable HAP */
 static bool __initdata opt_hap_enabled = true;
 boolean_param("hap", opt_hap_enabled);
+#endif /* CONFIG_OPT_HAP */
 
 #ifndef opt_hvm_fep
 /* Permit use of the Forced Emulation Prefix in HVM guests */
@@ -144,15 +146,21 @@ static bool __init hap_supported(struct hvm_function_table *fns)
     if ( !fns->caps.hap )
     {
         printk("HVM: Hardware Assisted Paging (HAP) not detected\n");
+
+        if ( !IS_ENABLED(CONFIG_OPT_HAP) )
+            panic("HAP is compile-time mandatory\n");
+
         return false;
     }
 
+#ifdef CONFIG_OPT_HAP
     if ( !opt_hap_enabled )
     {
         fns->caps.hap = false;
         printk("HVM: Hardware Assisted Paging (HAP) detected but disabled\n");
         return false;
     }
+#endif /* CONFIG_OPT_HAP */
 
     return true;
 }
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index dc609bf4cb..b330d65d6d 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -703,7 +703,7 @@ static inline bool hvm_is_singlestep_supported(void)
 
 static inline bool hvm_hap_supported(void)
 {
-    return hvm_funcs.caps.hap;
+    return !IS_ENABLED(CONFIG_OPT_HAP) ?: hvm_funcs.caps.hap;
 }
 
 /* returns true if hardware supports alternate p2m's */
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 960f6e8409..64fde82c50 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -1,4 +1,4 @@
-obj-y += shadow/
+obj-$(CONFIG_OPT_HAP) += shadow/
 obj-$(CONFIG_HVM) += hap/
 
 obj-$(CONFIG_ALTP2M) += altp2m.o
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1268632344..0e317504f7 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1220,6 +1220,9 @@ static always_inline bool is_hvm_vcpu(const struct vcpu *v)
 
 static always_inline bool hap_enabled(const struct domain *d)
 {
+    if ( !IS_ENABLED(CONFIG_OPT_HAP) )
+        return true;
+
     /* sanitise_domain_config() rejects HAP && !HVM */
     return IS_ENABLED(CONFIG_HVM) &&
         evaluate_nospec(d->options & XEN_DOMCTL_CDF_hap);
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 13:38:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 13:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230931.1536302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqtMw-0001fJ-8T; Fri, 13 Feb 2026 13:38:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230931.1536302; Fri, 13 Feb 2026 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 1vqtMw-0001fC-5I; Fri, 13 Feb 2026 13:38:02 +0000
Received: by outflank-mailman (input) for mailman id 1230931;
 Fri, 13 Feb 2026 13:38: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqtMv-0001dN-5H
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 13:38:01 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 34f37f2d-08e1-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 14:37:58 +0100 (CET)
Received: from BYAPR07CA0057.namprd07.prod.outlook.com (2603:10b6:a03:60::34)
 by CY3PR12MB9678.namprd12.prod.outlook.com (2603:10b6:930:101::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 13:37:51 +0000
Received: from MWH0EPF000A672F.namprd04.prod.outlook.com
 (2603:10b6:a03:60:cafe::1e) by BYAPR07CA0057.outlook.office365.com
 (2603:10b6:a03:60::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Fri,
 13 Feb 2026 13:37:51 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 13:37:51 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 07:37:49 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 34f37f2d-08e1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WhVkPyDXl7Z8VCbJjEt+oxoKIBCMT/ozco1rnnNTbQvAkFmFqVvOlw/8n6Bm2reZ6um6ZxLX5rgNxl8zvtwz2e5B32tgOwQwO4VXgz3eqn2IshZbRebgF2tYinB9nHhkjMv+fvT368/NlaiBjTpQTkpIC1bdRHEfAKnLy2GfPBzW+zyOL2R17Lv32Qylbr2ivhU+KrCfKg16SF7tSbFp2N2e/ikq/YhbRNkjRxmYtNePn/vh1FIYMBGqDgMaosyvXTDKX0neFHwRTGmyIdtZ0iO5qMWJqiHBqR7i+21oQU2L7f3vFGlUL6fEo2V/SqHUp9B4pl82YW7rhHTRito//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=OfExmNOBgyzV/W769nG2O1sMuHbppnbUF9pYKKsd9Bo=;
 b=laFjq7VPZRpck3q47GM9cPx9kfKw+R0qtkcGemVGFkTqXVOHypkUfyqSGBkhJgzS5MqFrF7cD7Q7Pi2Yx73y/nSzIu3R/CEQshgj9+EIgSwu60LOz5R1G+l9MOyKlruQS4hEadjr6SSv9iBvniicSZNpmXsKr9D1BuvBkIeW2yXC0MZChnGahHDvDe08wyEIoNNZnvOjlSgQeW9m1Abuc/QjqV6kY6dtPs28OW3I2Y8A8nAZDodNxbRNGsBmwZ9Z5AUDpHSxWyL7soSaXL+QMKVoUgQo/2/b4cV2Ftjez9qJvUOx5YHgiX+n4getAPo5tetFcCmFfd4iYeF66gG4+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=OfExmNOBgyzV/W769nG2O1sMuHbppnbUF9pYKKsd9Bo=;
 b=Fs9MNQdiED4wvPDtIhLLyY0vPadZBz/WjwvFEz/kL4wBO28p40BcsPzID6a9zvI3tWCj0YGgIIqR9uHmOd8VSwT9EVUHdWJRA7cyt4hwqLacQMU367DXrdATbxsOFye6aAdOxrrBBySoxIPNS517+C8g1foFXGQLq4WygtSp72g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, 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 1/2] x86: Make hvm_enabled a constant unless both PV and HVM are both compiled
Date: Fri, 13 Feb 2026 14:37:29 +0100
Message-ID: <20260213133732.132326-2-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
In-Reply-To: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000A672F:EE_|CY3PR12MB9678:EE_
X-MS-Office365-Filtering-Correlation-Id: d3256332-3642-49f9-565a-08de6b051598
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?Edc0dVF5fTqqm9QHL3dyyrnMBvysRlRMAZYG/vSoYOUC6n207G8/eJbqmczn?=
 =?us-ascii?Q?3EO6O0GasuFwpAZIIuFSEDYfCKHi1IaesqGzVTuV2xOpfLZ9TBJz43gjvz9X?=
 =?us-ascii?Q?9QqgBcG14ei+nUt88hDSb/xen+IY3fJhMPcLaQ86I9oIMY3xVu1QBvhMt0wm?=
 =?us-ascii?Q?hN7Z5nTH1dPbY1GTgd6gGwjCh3tXm0cD2x3v4tFRU0iZDBA7kiM+btW0EJww?=
 =?us-ascii?Q?Fo+nQz2qhGhOw6RT1T7S6jYpXCu70uT8T0V+3Ar8DYO8KD9LvFH+F1gB5aHY?=
 =?us-ascii?Q?C68+xoypE2TMnTGf/63y4BGXWE8b8eIJ5L3DIVmvbLyw9676GaFuv4ekVY95?=
 =?us-ascii?Q?/NfZogT64wnJfeRbT3GBYrQaibr5SOjxl+QcZJSZa+IJ6h6RIzeImr6GWBnq?=
 =?us-ascii?Q?LBNIf2q+FTld375A/WqnZppnaYZo/1EvpmIiVRYWu5Gn2db3J2thtrb1PvCw?=
 =?us-ascii?Q?AZtJ2X1iigYk0B0+0rvqBXlSaiSAs0vesEsUfg5n1yF/ykdaFBCNBxExhYD2?=
 =?us-ascii?Q?DKiL0CYuCWojFQx3U71BHlxp47sOF1D8iS38VJ+hkhhyMum0IgV2lZ+3NDox?=
 =?us-ascii?Q?nYjy9WkLVWUeDKChe63SDjXfkZZiXTyNklAy/Cmmv7mbgCSkKjxwUInXhfMJ?=
 =?us-ascii?Q?knMwauWyF4qWkuYI8Vcl/7BZ2+qtWeiwOEr2kcr/N9VpfAgr2ANIk+asBBgI?=
 =?us-ascii?Q?0r4h/56xMOS2UsFVQKTUbKZx48iLOGfo9aAGWJOUjYy5+hcR2AwQVOuSmxy3?=
 =?us-ascii?Q?ZWii88+GcE/waYNGtoyIuGlqUqsgxzsYGRoXQX6jyTVZtb6TPOJPZqdISZVp?=
 =?us-ascii?Q?H5kKDqYmTwo7LgODTh/gFxkShdvYs1I7p9t76NYTaTjNVLvi2X1aOJe0giA9?=
 =?us-ascii?Q?nYSca/1oTM6lBpBIGmSvIMDOBZd3IVJfMSMn4Vi/UJ3L5uoU+izk6kOLyJyt?=
 =?us-ascii?Q?2kSTrVY1I0pAdfS058DY8jUL/ss0L4tRO6kMKrI8NaQWivmAKhuZOSZp7RHG?=
 =?us-ascii?Q?1eUA0oG2u1BFqQ9oueU9n1Sij7rT34ETS9BtK6RUTTj0bAL/FJrv2eQkBFgC?=
 =?us-ascii?Q?SL1HD1aMkhs9tbxK5kQkHykk2IrotmRup39FDXpV6lSI85QfXVF8ygtFSTa9?=
 =?us-ascii?Q?dLvxPijLNqOSzry4ZjbNIOxqR3HmhbI8temuPzdyLMz5V9onu5smtL5+qeTC?=
 =?us-ascii?Q?F4bOWGPStV0Zme6PEH4DXHh7lmn6NG5sCSE80yC5gOspzUOoG5IF40GMa4hu?=
 =?us-ascii?Q?9IzhlHvKWMMA6lFT1yy+sGTxQcrQ6V9ZwrCWfvJKhkqWB0F7iPY1wxG5S+6S?=
 =?us-ascii?Q?REu3Ustg53MiakvXpZgOH0FRqVuykLioYl24fFD1DEAbs+UG6Bh/kz3KzFU3?=
 =?us-ascii?Q?YVyaF+Lcx5uHypTejjAFaa+plLkyx/nEFAGQ9ECIiB9wiPsjtGaJpZGjMvar?=
 =?us-ascii?Q?WcjuApMhaJwMh1dGwxYNAY9hvSn0rRe7ozBmo9kpv3FlqTExozWcSxM/Ux4a?=
 =?us-ascii?Q?dOYnax6BEMHpz57suRom+VgEtRJ1uQQ9HEYJlNLHW6GqPrtg6xdobC9CXTZG?=
 =?us-ascii?Q?pEezTAijZ44wElGaOyhP1OaEnSSwsQm83mOk+hyjmwQHJ2s/k44OfWG6wH/m?=
 =?us-ascii?Q?rxizI19X82w6+Fea+7KMwtyq3Jt2PRGf2GbI/+r4HK4NCn+4iUb7xK7UU4tt?=
 =?us-ascii?Q?HDAfHg=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	7TwNE+HKVD7l5k2VWCJVXoRqRca5fcPyb2vsTcJ3VUdEqtzLsH5rcpOnGLho5oioYL0NlBugB5MwNbgvU49u3rW2cA/uPBT2TnMiDYlftndc43ImpFgztOSNxm5Ea6rPQ5uzDKNjind62RzjN6YdgDxfP/kN5sgpoentNTo+SdeanPgJ4mX2aI+lEpA/tUpOOpKoB+vMw7GErBpnIPMLkNp5xp7eUdN/3R2aKXfn01F8AN2gAMtVU8p53teRtuxB5f3nbjHsdJvq42W1ZyIRPLdVTirwH8gdzy2Z75s+FtzGdSoLUgg7cfCL4BZrAYshlEVTzVr2DK0iOJi32WJ+LFys+ztQkNwYzF3so1pIG2GClWHuUvIRWEXetAtidHLTlOzSkSVCnldjTU+YBsNkgYRTJTdGJNN7ZVhJbZAVFnqJS51apBuTXSFGsLls3cdo
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 13:37:51.3166
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d3256332-3642-49f9-565a-08de6b051598
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000A672F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9678

PV-shim already has hvm_enabled optimised to false, but there's no
reason HVM-only builds can't benefit from the same optimisation as long
as we add a boot-time panic in case HVM support is missed. Many branches
go away, some in the potentially hot switch_cr3_cr4.

HVM-only:
  add/remove: 0/1 grow/shrink: 1/9 up/down: 1/-162 (-161)
  Function                                     old     new   delta
  arch_do_physinfo                              79      80      +1
  hvm_enabled                                    1       -      -1
  symbols_offsets                            30732   30728      -4
  symbols_names                             108029  108022      -7
  symbols_sorted_offsets                     60656   60648      -8
  flush_area_local                             571     562      -9
  switch_cr3_cr4                               311     300     -11
  init_xen_cap_info                             62      43     -19
  arch_sanitise_domain_config                  885     863     -22
  init_guest_cpu_policies                     1270    1247     -23
  hvm_domain_initialise                       1127    1069     -58
  Total: Before=3797004, After=3796843, chg -0.00%

With hvm_enabled const-ified, it's fine to take hvm_flush_guest_tlbs()
outside the CONFIG_HVM ifdef and remove the stub. They compile to the
same code after DCE.

Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
---
 xen/arch/x86/hvm/hvm.c             |  9 +++++++++
 xen/arch/x86/include/asm/hvm/hvm.h | 30 +++++++++++++++---------------
 2 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index 4d37a93c57..da56944e74 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -72,7 +72,9 @@
 
 #include <compat/hvm/hvm_op.h>
 
+#ifdef CONFIG_PV
 bool __read_mostly hvm_enabled;
+#endif /* CONFIG_PV */
 
 #ifdef DBG_LEVEL_0
 unsigned int opt_hvm_debug_level __read_mostly;
@@ -173,9 +175,16 @@ static int __init cf_check hvm_enable(void)
         svm_fill_funcs();
 
     if ( fns == NULL )
+    {
+        if ( !IS_ENABLED(CONFIG_PV) )
+            panic("HVM support not detected and PV compiled-out\n");
+
         return 0;
+    }
 
+#ifdef CONFIG_PV
     hvm_enabled = 1;
+#endif /* CONFIG_PV */
 
     printk("HVM: %s enabled\n", fns->name);
     if ( !hap_supported(&hvm_funcs) )
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59..dc609bf4cb 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -261,7 +261,11 @@ struct hvm_function_table {
 };
 
 extern struct hvm_function_table hvm_funcs;
+#if defined(CONFIG_PV) && defined(CONFIG_HVM)
 extern bool hvm_enabled;
+#else
+#define hvm_enabled IS_ENABLED(CONFIG_HVM)
+#endif
 extern int8_t hvm_port80_allowed;
 
 extern const struct hvm_function_table *start_svm(void);
@@ -399,6 +403,17 @@ static inline bool using_svm(void)
 #define hvm_is_in_uc_mode(d) \
     (using_vmx() && (d)->arch.hvm.vmx.in_uc_mode)
 
+/*
+ * Called to ensure than all guest-specific mappings in a tagged TLB are
+ * flushed; does *not* flush Xen's TLB entries, and on processors without a
+ * tagged TLB it will be a noop.
+ */
+static inline void hvm_flush_guest_tlbs(void)
+{
+    if ( hvm_enabled )
+        hvm_asid_flush_core();
+}
+
 #ifdef CONFIG_HVM
 
 #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
@@ -498,17 +513,6 @@ static inline void hvm_set_tsc_offset(struct vcpu *v, uint64_t offset)
     alternative_vcall(hvm_funcs.set_tsc_offset, v, offset);
 }
 
-/*
- * Called to ensure than all guest-specific mappings in a tagged TLB are 
- * flushed; does *not* flush Xen's TLB entries, and on processors without a 
- * tagged TLB it will be a noop.
- */
-static inline void hvm_flush_guest_tlbs(void)
-{
-    if ( hvm_enabled )
-        hvm_asid_flush_core();
-}
-
 static inline unsigned int
 hvm_get_cpl(struct vcpu *v)
 {
@@ -854,8 +858,6 @@ static inline void hvm_sync_pir_to_irr(struct vcpu *v)
 
 #else  /* CONFIG_HVM */
 
-#define hvm_enabled false
-
 /*
  * List of inline functions above, of which only declarations are
  * needed because DCE will kick in.
@@ -902,8 +904,6 @@ static inline int hvm_cpu_up(void)
 
 static inline void hvm_cpu_down(void) {}
 
-static inline void hvm_flush_guest_tlbs(void) {}
-
 static inline void hvm_invlpg(const struct vcpu *v, unsigned long linear)
 {
     ASSERT_UNREACHABLE();
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 13:38:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 13:38:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1230930.1536292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqtMu-0001RV-1d; Fri, 13 Feb 2026 13:38:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1230930.1536292; Fri, 13 Feb 2026 13:38: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 1vqtMt-0001RO-U1; Fri, 13 Feb 2026 13:37:59 +0000
Received: by outflank-mailman (input) for mailman id 1230930;
 Fri, 13 Feb 2026 13:37: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqtMt-0001RI-AW
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 13:37:59 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 346642a2-08e1-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 14:37:57 +0100 (CET)
Received: from BYAPR07CA0061.namprd07.prod.outlook.com (2603:10b6:a03:60::38)
 by SJ5PPF75EAF8F39.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::999) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 13:37:51 +0000
Received: from MWH0EPF000A672F.namprd04.prod.outlook.com
 (2603:10b6:a03:60:cafe::19) by BYAPR07CA0061.outlook.office365.com
 (2603:10b6:a03:60::38) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Fri,
 13 Feb 2026 13:37:50 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 13:37:50 +0000
Received: from xcbagarciav01.xilinx.com (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 07:37:47 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 346642a2-08e1-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GfH9F4KEwR9d+zlAcqyl1TV048nACurqWUtOYIwIZhL2sS+gN87zGzkhv/HGPc7EjOP6UrEQ0IOxonFHmSRLUd89UAXpSnmPEI5IGDlhUbvs1uXERi3N7yo7n07CzbbF1r2n+jCcgByDi99BXGso3Fjxy1F6AShEuFZ+E3nzq6PZiw8igGCOWIbThVyszdRNCYeal9LfHz4y4MFv/0eDZ+YmDk4fDmfA00Gky+CotYvtJvGnJYfGuQGBjzcWxjFhZMQDzYtzX2cwAIhd2kTsP+9vEjp72/CABevs6hSrrnFRqJSECCIu4kEJu25eTTuUJImpDyE2kOrDNEmdCg/JVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KVHDnfeZ9Qwy5x2KVw60dxyfthggzrmiIZebDLtKY80=;
 b=kC/L1LAtE1V1yUCivo2NM5juEGwdlOSYyXyGRJ6vEKP+3oXFR135WFYKq+F4nxMbbDmKQAEgDd48B2go2yCqD2+idCt7GrPRAI17F3xnsCu7dccZ3FvNGbkKMBVJhttdXiJLAZp203oOTWzhMkIAdSJ5wUm8bH90rK3QC3IS0eh2678cgvJhz6E5bEy/qS7QHdfINSzabu2a0l8dar66Bk+9lT8km1f2qpe8sSjlijSZfDcSr0SLy4YE/gC9yKaQ9KxpnEvKUv+ajcftUjPVNRysqUOSR3bKytMIunTLikjqrGiZmwKysu2v3atbSpIsSop3tfADs2s95FPo2zFptg==
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=KVHDnfeZ9Qwy5x2KVw60dxyfthggzrmiIZebDLtKY80=;
 b=qWI3fDJ2DPCyBjT5DFFJsRIZi2gWy0+UCnrNFgXZCeIwosGk43geQW6pv+6VAe+35AhU7dM5u0pS7yGkyuK2rp3FThDvp78dilYai3TFnIBJORp8tyv4gbkMUQtmIr8La6fPac3XdStw/cbwFLgaxpGvNrMRg5ldU8CUVgoCPSU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Alejandro Vallejo <alejandro.garciavallejo@amd.com>, 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 0/2] x86: Const-ify hvm_enabled and hap_enabled() when possible
Date: Fri, 13 Feb 2026 14:37:28 +0100
Message-ID: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
X-Mailer: git-send-email 2.43.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000A672F:EE_|SJ5PPF75EAF8F39:EE_
X-MS-Office365-Filtering-Correlation-Id: 46e6a1c4-ecc3-4e83-8227-08de6b0514d0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?3QnERybjnL/qTeR6n5PxKsEhnAFAvjfiv+j+BWRgBOuPkYH0RFTeKwQ4JqLi?=
 =?us-ascii?Q?eYPaeb73zHzrg/wvoC5m4NG33+W13QIH7cTQU8BoEDG71uhBJRli2Qw4ZaG/?=
 =?us-ascii?Q?KU9XSuJCKgOmBw3u7914Vn2p/aflWa0Uc5EFESyZRepnf47lh2lF4icA80DS?=
 =?us-ascii?Q?sF3mNJ6u5eq9lE26VcXfKpdE7q7bpEpr4eYwaoBaFwXjtIb7o3P81D4B1HBn?=
 =?us-ascii?Q?/EimUNOXY1qU1zHQdUlLO1mXXIJIq/4ST1zyj+qbWbH9IlNTwURF78zbeiBK?=
 =?us-ascii?Q?iyB7OSjzDMgSX+B6f8Xf/hW+91yHhXW3HwiI+4OrWhlYu9AC0KIs5K8IsmYW?=
 =?us-ascii?Q?OzS61PHfv6pAFwEsu7fMdMGEFELyDLDm6Rh0VWv/s0eyN614yK4eGrY8gyg/?=
 =?us-ascii?Q?JQmyqLf23KwaqvNVrSuo7txHm4JMEMrwRpPnfHUjFKu80DGkXYvGwS1P7zuN?=
 =?us-ascii?Q?A+392a1KQzENSdZjTPztrGBVk96pcMI9UrGMtrb4ZkByEnMhk6Bx9SanxLdL?=
 =?us-ascii?Q?3l9xVwTMVdQylG3SY4O8Od+rhCZLkuuIBtC7Y62TULBi3gs9vRyY/MnjnXL+?=
 =?us-ascii?Q?OZuRfnQ8YUnGPsFtqUVWajyHToj/jfetOCeTuI9m8GbCdnMLYimkCxY0sMLT?=
 =?us-ascii?Q?Yfyk1f/E742K7BgLVt3eoTZp5L9+he5TNIn5wZXXrKGnSSN1m83flsI2LBb1?=
 =?us-ascii?Q?M6xLWwAWAhEOaVzqLH2xclaDNfMaRyqcXb1/5EqnrqNZLuzAsJScxcYYG7Es?=
 =?us-ascii?Q?N21Z030NcZVEDplfEo3vazskUkR1XaKLf67yOy9MndVp+TDzMh9vSWr5pXqU?=
 =?us-ascii?Q?Qs+U1nQyJH8SZifA3PDAeDamenj7InpPDv93yWUwYhNnKIyuHokb9fauCDXN?=
 =?us-ascii?Q?Jto7oLhTrsdV/ekWlwfkr49cJ4Je7V2dT5baxPuCFzVbTOEfkvTaYjSGMEO5?=
 =?us-ascii?Q?oyZ/5ohgCxz26qpmunRgB0M8gvodNjA/Vjy+r7Wvyn3W/na4qDqcjLeQ+9yV?=
 =?us-ascii?Q?6HlClOanwKIfd4An+XQzufmi3bJ9NcYxYcNPchukYzJf/RKpoOuXXqyEIb5r?=
 =?us-ascii?Q?wK6S+3gGxcnTydGj/2AIPhZqAfXMu+KkhMMWgbF/j0iuK59WHInt/PNd/ewu?=
 =?us-ascii?Q?IDTW9jeDsEcitHMhfcDMpGCc+aZLPnnUr8ok7NV+PHYNdHStiC/ecv6PJhh/?=
 =?us-ascii?Q?c13SbSw6tCFBxcBKU9UFRx+5H2n/fyuM/rjCOfXlBfZkfb1HnWR9IN9CwHiX?=
 =?us-ascii?Q?SPZklmdwweu5pdz7q+PZwWjRB5PpHEyjK6sW8DZGJ00YN40WLPj+qFzOvWkE?=
 =?us-ascii?Q?b9nq/Yp+ugPy/Tl5O0jw5mAraJGCUCrUZnJnAWaNoOVmor8UpqejeSONc4qL?=
 =?us-ascii?Q?4EuvOYmS3oe+dHqwx+1kKxHX/xhvQbKEq620dd9TWG1/6ksnEGjqH9Vg1Gco?=
 =?us-ascii?Q?I8i3kigoI2V+fh9peMurX12Zz3epIE0RfqiIJ8eBeXwrsO9XcEi5AH+xTn1b?=
 =?us-ascii?Q?ph58+bbgX+Ac/JuOTQ+F3hpA1HeVy5tJuEduKN26zQE8I7L4N3SnuOs+GFhH?=
 =?us-ascii?Q?6NLC18E5yCMg/YAmPbFVsohTvd1zq1jd/4NAlraKZzcRFmsUFsfkFcgN/8wV?=
 =?us-ascii?Q?gRidOYFGckZt6WjkuOUhPtAaiks41mJkbF1k0FrPYjwQEJjLBB1ddRKJlrA6?=
 =?us-ascii?Q?cn4Ucw=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	JoJL2cYJNyx+sjagYbDqxWmh8lL3UhwOy+vrLuAmXYPaZONheBq3YljbM1TjO7BKS5dG2cFHPyJO++rqWnVSZb2AW7N/LCW0C5v3/z/hcczOgTRzhAxxmZZvYLMeE0Yh5T9ULGosmKI+4n4B11ZhmJYJeADMdDwJ+Lt/8KAHMMQMPbInM6oyRX7zUE7O8BUpWrv2RUyBAGHXpNQX8ii1gGtfkg+Jxt42Cpjd7DtuD39qdOGcOelMju57N8WWYP9VMBtOcoXcazSHAgk3NMekeM3yY8ByjBvd9jRJf8jsjqabQHH0fGoY/EA9c6WJmJrYM2odtzrh7eAYU/9lt3XQLEZ7XC7PPYqrrcVLPekgHJ31U3MSYPe1livbCxGG4uXqL6WrtPH6A7sSG1tW7aifuc0MVim6oMxdlkr90oP6nNVjEnHwYFgKTpDKpdmgdDGG
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 13:37:50.0068
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 46e6a1c4-ecc3-4e83-8227-08de6b0514d0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000A672F.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF75EAF8F39

Hi,

pipeline (green): https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/2324325987

hvm_enabled is already a constant in PV-only builds. Patch 1 makes it so it's
also a constant in HVM-only builds (with a compile-time panic if HVM support
is lacking in HW). Patch 2 makes it so HVM-only shadowless builds mandate HAP
at boot, thus const-ifying hap_enabled() too and removing that pesky shadow/
folder.

Cheers,
Alejandro

Alejandro Vallejo (2):
  x86: Make hvm_enabled a constant unless both PV and HVM are both
    compiled
  x86: Force HAP to be enabled when PV and shadow paging are compiled
    out

 xen/arch/x86/Kconfig               |  2 ++
 xen/arch/x86/hvm/Kconfig           |  3 +++
 xen/arch/x86/hvm/hvm.c             | 17 ++++++++++++++++
 xen/arch/x86/include/asm/hvm/hvm.h | 32 +++++++++++++++---------------
 xen/arch/x86/mm/Makefile           |  2 +-
 xen/include/xen/sched.h            |  3 +++
 6 files changed, 42 insertions(+), 17 deletions(-)


base-commit: 1f4f85b64d393be1aa8dc8170201f4fbfe9c7222
-- 
2.43.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 13:56:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 13:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231036.1536376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqteo-0006Da-RH; Fri, 13 Feb 2026 13:56:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231036.1536376; Fri, 13 Feb 2026 13:56: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 1vqteo-0006DT-OJ; Fri, 13 Feb 2026 13:56:30 +0000
Received: by outflank-mailman (input) for mailman id 1231036;
 Fri, 13 Feb 2026 13:56: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqten-0005zi-N1
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 13:56:29 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id caebc967-08e3-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 14:56:28 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6673.namprd03.prod.outlook.com (2603:10b6:a03:398::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 13:56:22 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 13:56: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: caebc967-08e3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aHIWsDaNeDO6k3LzfU5B2LXndzwwoLs3xhqCFxb9r2NUEm+vqLPfreyKP7aih3ZPLYSC+2wM2pR/JxRXdoBzBC/iO9qIUzcb1NYNg/iRw+bWHSVCe6AMq+QpeUNb2Uxcy+LVqPwElH1n209L5ti9FJkgDGkrGhstqhToMpYLuNAkcN65McgMFKOo0ZEw5OHiLP1daeu9e/iH0VHoGq54rUOw5nZTZSznFyylK2AQYW8f9ZoVWfNCRTlT3wC6czcXTEhVqlCcNLrU6W3/sANpmrri9zGxpNDP4VeyDBp9+Vm3vKHyXnvnQSlpqZyHOLuqbaiENVUTf1WemXRJFYSsAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tOeq7193SlRPvCKtblBZpMGYEgs2rVdelCsSnZJPcyw=;
 b=C9IVR982FKIRH1l6RXS0PbXMOceuEssFNo1vrwTTTRrYYt31tUHi2CJBV1KUSxlVcCcs8rfPxgMzda6w9P+l+uRAkzcO5UJ9pbasx3HLsyzKiGtQA1X06Np23v44TM6GXiFjc+eQ9Pt4qdMxAYDQnWf+Z2JNFOSFRVuwZmBFVX9qKVkqe6RJm+9nslBh3qY5rBhiRkqg+lwnyS9NJLK3acXO9UKkiFkrtJc1NS2tQJWc4urotNmlKTzbbf9e5crqghUu+7/kEo/FIYmxrViwQ3waGzlAu0kiSbGRgXJp4sR6qRfowVRbHDvK9T9DkqvjDMTRXVxnRMrwwab1ZQAmyw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tOeq7193SlRPvCKtblBZpMGYEgs2rVdelCsSnZJPcyw=;
 b=cvFslca8FZNsEgramlhfn3DmoEpfTXtYiiifJZWDBkxrwCky0aKYHl0OvnaFcLq81cUPSUm0Lxv+QOvV2LOk6IWtPdqy91DD7SYBTtqP+2aqXh2H7JmGoRpTZCC/KU3B5L033EgfD9oS4PC5xlJ+AY/DO9zAWENIEa/TYDrIWY4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH 1/2] xen/x86: fix usage of [[:blank:]] with BSD grep
Date: Fri, 13 Feb 2026 14:56:13 +0100
Message-ID: <20260213135614.25842-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260213135614.25842-1-roger.pau@citrix.com>
References: <20260213135614.25842-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0073.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::13) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6673:EE_
X-MS-Office365-Filtering-Correlation-Id: dd5b813f-c012-4057-89b5-08de6b07ab4f
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?YkdBOW5mckRSa21vMDdObDMzL245dkFhbUMzM01ESXdRc2I2YUU1QldRN0JQ?=
 =?utf-8?B?TEg2YlBjcm9JK3FJcjRtTnBiNGlZYmhzMGlkN0MzWERoamZTZzZRcTFZc05x?=
 =?utf-8?B?dmxVT2JDdXNiMndxS2FETWtoL0F5c1pBTHBXRERzRVVjUENoakpZc3pPeURK?=
 =?utf-8?B?VTlJZ2Nidy9FQ0JyVDJ1ajJySFplWU5tRVFLcjgwbmhIbkh4bm9tWW9ZdVA3?=
 =?utf-8?B?Zy9Ga2daaEljTThQeDJqRW96cDNpa2VMWXBVbDRVSnJmSjd5cHdqTjZrODB2?=
 =?utf-8?B?RFJ5R0gyOXFpdng0Sm5PWFI0WkN3RmRhWnZjb2JwK1B0Mm1CQnJIVUdxN3JY?=
 =?utf-8?B?eEJRK2VsRU5IU2hmWUdvakZmNVVranl3SitxZlYyRys4WEIyN1VQc05EdTFZ?=
 =?utf-8?B?MjZCNFM0NkhFUk5PdlRmZzM0bFBMOUZ4SWpLV3FMeUMzanVLcFZ2dUxOekZQ?=
 =?utf-8?B?c2Q5TVhJVFJNN0V2bHloQzZISmFFbVBWSE0wTUtwSnQ4YU5QeWRxNDBJVXV5?=
 =?utf-8?B?WXVhZEpKbXFBSVpLMDAvckJzbzQrNWQ5dlNnRXZrWTRkVWtJTWlqVTVlb2hS?=
 =?utf-8?B?REwzYzJmSFhyNzlRcnNQcDh2OFRlVzFmQVF2NngxSXpid25RY2JkckxFMDJY?=
 =?utf-8?B?clM0TWw3VXdTZWt3MlZ6ellBem5uR0wyamhhcERUbXFzanlkenJ5MTJrdkE4?=
 =?utf-8?B?MzVIZWx0ZDdHYTVYN3c5bFJnbDFJUXkybnNNZHpUbW8rS1c5MmlKbFQ5UWRN?=
 =?utf-8?B?ZWo0ZWMvWE51UjdRWlhOOXVTbkpkZWZhYlR4SUNxWHBzQUdsTUdzdUtTNDNz?=
 =?utf-8?B?ZExiL2tlT1NYN1lQdWg3QjFnMTFhK3k5NlgrMFpseUFLVlR1NXdwVmQzNUc4?=
 =?utf-8?B?RHJJc0VBM21qMjNtRDZKSkNsRTJkbGphRWhCQTdUcm1IWTJnN0w1ekRsUENj?=
 =?utf-8?B?WmgrakFNc1RNbTRxV3VYMWVIdnp1aTM1ZDJaU1ltQUVEck1WOVR3NEJ2R0Fi?=
 =?utf-8?B?WHpubER4bGpkT1RBa2srL1d1VE1qOHF5UDk0NmZOZlpDNkk2eThjOERMMGFr?=
 =?utf-8?B?TUxhWG10akYvQ3VHa3pva3QxMkI1ajVWeVlHb0tKZEhDZzFXcnhUZUk4RXdx?=
 =?utf-8?B?bTJNRHFJUHhuWCtRQ3laVnI5ZVE3TFJidGowTGlQRFF0Mk5iM0NwZVFGZnJV?=
 =?utf-8?B?NC93eXg2c0FZdVVlOUVkR1NjY3BRRXFBTUJ0ZWtIM2E5d2dsVnVlNVNwc2Ew?=
 =?utf-8?B?ZXN4WkxsMVE4QkxGTVN5cDNCM0RZTys3TXA2Uzh0SU9PZEpYT3JtK1lNTXh1?=
 =?utf-8?B?NDBkUjdMSTIyajVPaXFsSW55ODdBVFhJZkw5RmlFck5sTm12dG5MK0VKQ2pm?=
 =?utf-8?B?bmIxeDBLeVdoZkNmaE5jVytVcjgvQ04rWE92dzJPZlBHc2N1MERnL2hrdXZG?=
 =?utf-8?B?NTNmQkpJZVFpdDNHdUdZdFYvelZhVlo2a2RUd3l6RVMrUFdmL3BLbHNtQk1U?=
 =?utf-8?B?Y1NRbC8wZkQ1WFBUdUFTOVMrUUxkQ056UGxLN2N0Y2VpcUNMTkRPS0w1MDgv?=
 =?utf-8?B?VnlQZGxnK0R3Uk9HWGVlRGs3ek03Y3c5cUY2eXM3REcxdFZ0ZHFJVUREWkh3?=
 =?utf-8?B?b3UraExXTEg3cnhyUTdrVVZmUmdySWN4MDUvdmQ4NnY3V1pUZFJ2dTdrc2sr?=
 =?utf-8?B?RVBzMjMrSUVzTHF2QWFERFlVNVVxNEFqOWF4SzNucFBzajdMckFsdllhNkVo?=
 =?utf-8?B?VjBQSklXa2RBdnFSc0c0MEJaTm5VZGl0QUdIWjdOaGttVjN6UU13MmprUktR?=
 =?utf-8?B?Mmw5UGxmQk0rOEZHZW92Y04vblhQRk5pR1U5RlVZcFIxSEZ3cXF2MGF1YWRE?=
 =?utf-8?B?WkhPeTJRSnVhSFdBKzQ4M1I4eUd5ZWFTQUJURHV1U0ZTY2F2MW9BNDU0WXJ6?=
 =?utf-8?B?aEEvV1habENzakNiOHQvd0NnUmx0KzhEOXA0Q1NCbVBwcTgyclBEK2dWZ3Fz?=
 =?utf-8?B?NnV5ZGJ2SXphTEtWK0pyOVpQMkNtZ2lGTFJLZ1ZPYkt5Ky9GdmxSc0JvZ0dJ?=
 =?utf-8?B?N0NQUUlDdGZNU042MFkrZG9KSmZpWFpLRldmOHd2VmFwM3BlTWZFRyt6UWU2?=
 =?utf-8?Q?T7M0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WmJHeDBJSEMyREVMSzBtZVpTbjc3Q1cyYnU2eklWR0FaRU5MZFZMdTNrNjZJ?=
 =?utf-8?B?bVJUSmczTWRTeGtONldtekwwQXA0V050TmJCL2RlSXlveG1xbHNrYytSRjAv?=
 =?utf-8?B?WEthREI4Q0NqVTZWbUpZT2Y3N1l2aHVvMmk3UWRDc0V3YzhXU0N3d2Z0SWFz?=
 =?utf-8?B?QWVjTjkyaHhBMkoxek5Rc2JNMU5iWW5ZbGk4cS82M1hRWDRqT3NnRUNjdmlW?=
 =?utf-8?B?NFg1eHF4RGMydU0zQUlGUUdkd2pwNUt2aUR2Q0plZFdRZkVDNHJDYWlUaDdw?=
 =?utf-8?B?TEEwWTV3czRPa01GVzFtcGg4L2QwREpTTjhHaEViYVAwWUJROUQ4S2dGR1Nv?=
 =?utf-8?B?ZDNJc1hEVjFkcFV4SEhZOVRYNktWc1pjeEpSUFpKRUVUbXRFWE5YYk9zMTNr?=
 =?utf-8?B?aFNUZHlUN2tXSFo1dU0vTm1OUS9zSk02aUpJS3EvMSthalhGaGVOUERaelUy?=
 =?utf-8?B?Y09sQUl5aXhYZ3R3SGtCSUJNd3pvOHZneENUVXlyenVuUzdyUjN2OTdVdk1X?=
 =?utf-8?B?RzBEVHh3c0tuT1N4bitvWEFMSHJSak1admU4bkVpR0tENlFMV3Q1dmI0cWUy?=
 =?utf-8?B?ZEtCYnhHMEd0Nnh5cTFnZVQreVl1cW9Cc0xvdmMyRk5yTXJIS2RvT1FaMHc4?=
 =?utf-8?B?Tnhla3NtdUNqaVRBaVBtUmJuNXVEaXJDQWhQWGpXSnUxTjNzeHJWTzZTU2l1?=
 =?utf-8?B?cEREdnhaanB5Mm1IRVhnSnpqT2x2N01zYmpzL1FmVTQ3RnE4Y2ZPZS85T3Vr?=
 =?utf-8?B?M21NNHU1bzVJUU9JU0FZL1pud00yWDNEZEgzV0FHNXhQeGtPWnkyVGRTWjFV?=
 =?utf-8?B?UzljRVZuQ05qVGdIVHUxRHBkeE45WGNuaVVXTy9UdXZ0L1B1VHF4ajF1TWVn?=
 =?utf-8?B?cU5VVm8zbndDQ2REeXFCN1RPYTJCcHQyVnh0V3Nub1E2Vm13T01qUVhyY012?=
 =?utf-8?B?dW9OVDJwQmRZTlVZZDNrZjc3dFRBSFBMbDlUQ3NiUzE1Mm03K28rSVFEZFJT?=
 =?utf-8?B?WUxOdk1nTGpEemZIYzk1dzRUMlJrcWwxaGNjNDBMTHM1U1J0MlVuZEQ1V1Fr?=
 =?utf-8?B?dHBqdE8zQVo2a1g1NnVNS2NualJaL2UyOEdoYzlZNmI5U3IvdWh6ZUZHS2pX?=
 =?utf-8?B?T1R3ejI4ckpMNlc1NWRCL2hwQ01xWVp3cTFUcDRmaThqT3RIYytoZmUzZWNo?=
 =?utf-8?B?ZkplNVJ1dXZWdXFNTXJuZjFPc24rOHlPVEp1c0h5TlNaNTE1bmlNS0VjdVRq?=
 =?utf-8?B?T2dtYnZjTjVLczBrdHZveFlqeDRZYVp2MEhPbjV5OWIvdmcvYk5XZXRxb0lj?=
 =?utf-8?B?M0VYd2VoTE4rZlREUm42b001T2NMcmRyZVRMTEcyUEZGdmthRnQrT3B6Z2Zo?=
 =?utf-8?B?bU9HNXZQK2Z4MTNhYzF5YzlFdmJXRTUxZUFnZFE1Uk1aVnA1eTU0dHdCYlVv?=
 =?utf-8?B?ZUFwcVZXRzN1K3c1Tk90SUorMC9JTmk0ZkloRXNRL2c3MHk1b1BxTFJmZVJJ?=
 =?utf-8?B?eDZDUjNEVkc4NEFTcWI5OVNQaHcxZDIxV3lrMDVCRGpJbno1QWIySnNaTkp2?=
 =?utf-8?B?SkN6NExpdzRYMGc1TEZUWlJ6Nm43S1lWUkxKaGZFdmEyYXpacjZEcmdPeUFh?=
 =?utf-8?B?NUZuMTNKSldlbDlRQy9MWjE3WmprVWR0UDd0VTVidUJnUEMwQXpWSFN5STRM?=
 =?utf-8?B?Nmw2M3NWUDZWQU5VTkx3UFBuNTdVMHhEOTNiQ0NUSGpOVDFVVTl1R2g4c2Nn?=
 =?utf-8?B?bzN4MkRiRzhuSC9ibEE0ZHRtS2ZvMnB2UFR5Z2x5RXVDKzJJbmxHY3J4ek4x?=
 =?utf-8?B?d3B1M1hzRU9mbFhyVjROUXRBTS9QUkhCM2ZZR1BDcVdselVOYTFKWEk2MVFw?=
 =?utf-8?B?VjJaYTJtNTZuQ3pGMm9lb1hRaElHVSs4Yzl1MGVSUVdtbmovYXpoc21Mek9Q?=
 =?utf-8?B?aERjYWpobW14d1ZmY0ZJckdkWG94Ui9jWjcrOEtibnNURWl3V3c1MG5QTXZ1?=
 =?utf-8?B?cTF5U3hiTTVMZ3hMTDY5V3pPNEpBWkY1QWhHK2RJVi9Gbzd1c3prNk1KaFZr?=
 =?utf-8?B?UVVQR0ZVU2ZyVXBWaktUK1VjeTg0c1pzZkxIZWE1MVJWUUdEMHhuN2x5ZnBZ?=
 =?utf-8?B?MWFtZ2VsMnZFWHd5U0ZMemJUSFlHMk55VkhWQ3NEVFkwc2tISWlpOWRmZUFr?=
 =?utf-8?B?UTRiUitVTTRTZ1ZNQWpOYm1tQldwRUw1bi9OeGpjbWZWM09XTUgzeTRFUWJ2?=
 =?utf-8?B?c1pEcGhtdXNEOFVXSzdzOGx5V2RqTXYxR1FLSURLeE9qWVAzdnRMV1ZCa3ps?=
 =?utf-8?B?aklCeGRpeDNtU1lUT3F3N2JRZVlZMFIrMS9OT2JjWm1BMVlaRjJCUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dd5b813f-c012-4057-89b5-08de6b07ab4f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 13:56:21.8912
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Oziaya+TFby1CkxRpKbwBQVT7VXgL38+fqNVfl2FCp12yQYz16xAl1buVsKsIm8NqA9xVY6TPkLaoFrwM64Iog==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6673

BSD grep only recognizes [[:blank:]] as a valid expression when using
extended (modern) regular expressions.  Pass -E to the grep call used in
efi-nr-fixups.

Additionally, the return from `wc -l` is space padded on BSD, and hence
the content of efi-nr-fixups is "       2", not plain "2".  Strip the
spaces in the Makefile using $(strip ...).

Fixes: 1be65ec4c8bc ('x86/EFI: avoid use of GNU ld's --disable-reloc-section when possible')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/arch.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 2e06ae2582dc..37fe65bc13cb 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -100,7 +100,7 @@ endif
 ifeq ($(XEN_BUILD_PE),y)
 
 # Check if the linker produces fixups in PE by default
-efi-nr-fixups := $(shell LC_ALL=C $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l)
+efi-nr-fixups := $(strip $(shell LC_ALL=C $(OBJDUMP) -p $(efi-check).efi | grep -E '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l))
 
 ifeq ($(efi-nr-fixups),2)
 MKRELOC := :
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 13:56:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 13:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231035.1536366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqtem-000602-KC; Fri, 13 Feb 2026 13:56:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231035.1536366; Fri, 13 Feb 2026 13:56:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqtem-0005zv-HQ; Fri, 13 Feb 2026 13:56:28 +0000
Received: by outflank-mailman (input) for mailman id 1231035;
 Fri, 13 Feb 2026 13:56: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/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqtel-0005zi-Ss
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 13:56:27 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c7eae86f-08e3-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 14:56:23 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6673.namprd03.prod.outlook.com (2603:10b6:a03:398::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 13:56:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 13: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>
X-Inumbo-ID: c7eae86f-08e3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xnTmAdMvKE/rdj/KVCc+vnw4TVjPMqD2KLhH3qkMC7HQKtZKO55WUawP+SmM/XhcjcLDyYNsOkrftXh6jjcQ13x2mG8e02RSjsI5ZZfeRH77BVrtZStKvleM5E2hcLxIgw2iQl5ZRgYxGmNTMuOmktzitSRX0tYcWGXE0TJvxcIov7Hwx/nshLt2w3HoGyIyeA+TmMEArsrpfJ3x0tr8JHaMj+x4t3EGDzZ7c3aaOnM73r9E1RXrtL3K52Eo00fq/BpvoPO8AFRppJr/k5SNREMN0Ehh3yYTzPlEjpp3mmIxfyjIqNQF3akcx9w40f/qepYh67W0gvuRZGwQ03rLbA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZW6JiHzpijx8nT81NwFSTX3BWvzHbwr9vDzp7tCVofQ=;
 b=IW4Tp6FIYG8qSFxuGuzPK46Io3yiutT+FCT9M7QEjpGIrKG3JRnMcPQLL6Hiqg1E8OWSQ9RQtYwD6zk0FLcV/Uk/C1+1WG2D+3E+PDJ7SFQxnHWd+xQwevl3bo1ELYhCgxFl6B7mA6RZsh5QVUEs83fUO/pKDRbncarLvJbNWJNLpOLLo1CqPmIg84HKMILygoXwfgiHt0e3rODW5PWb8Llel7MVpdEIHHcqLlverYxI9Dd42hXsT+rO/2rem6zJsos/kvrl6hqyJW9PNM93G70u3D7bQfiMVAUtH57InC9npTsN92T6K00g41c+bQrTp9DL9P91Vk1EmQrGyfAbsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZW6JiHzpijx8nT81NwFSTX3BWvzHbwr9vDzp7tCVofQ=;
 b=H//rXT+u4fsPjKA1XdHN/UHpNCnP0p4LI8x2kkQn8PyewC616niXUHXtGFMKYX25Y+dorcUAZolxLHgoYhwjL33T1hp1I/rx8fr0FSAeqmG24SQ/Is9JImXgyIP5K1SppIn4Oodv7VLJcEuIK63MyHr6SUsBYSFCjBpdvfvw77k=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 0/2] x86/darwin: two extra fixes to placate build warnings
Date: Fri, 13 Feb 2026 14:56:12 +0100
Message-ID: <20260213135614.25842-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0026.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6673:EE_
X-MS-Office365-Filtering-Correlation-Id: a9c3be89-4312-4575-3a33-08de6b07a984
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?c29kRGFrUS9ieVdJVGVHcGNYYU5wNFNmNkFvZ1R4eEhwZTZKeExWMVFRUm5E?=
 =?utf-8?B?Qmpodm9OK0NMM2hRdENPUGNzdUoybFBSdzVUU3NRd3c5clVWWUNBZ1AzaFdO?=
 =?utf-8?B?OGovQ3BCWEwyV2M2WVdlVmlJWGd1eC9DSUhWQi8rdWlRSTUwSGhVSnFpaHJC?=
 =?utf-8?B?YUhhS3dsUElDTndwd1hXLytQUlRETmR1NzgvS3NxaWJIZmwxeEhMbHJma1NU?=
 =?utf-8?B?d29EMmpHUWNSK1NDWkd6QnQ2QndSZUJTSDFJYlIrMndFSGpsLzRTcmViQlFy?=
 =?utf-8?B?MkYwNGcyQmxDUHdqOXhuY3QxQ0lYYXQwc3RLRjhuZy80QVRoa0M0MlNrcXpu?=
 =?utf-8?B?dytUTmNOeWhwR3MyY1YrZVdOdDgvOFdJSjNpSHl4cWxoSGNrZkRoUDhROUdQ?=
 =?utf-8?B?UDUyUW9TdUFWT2h6T3Z5ZHBuL0pWaUVjWkVIWFpEZ2NpTGhOR21Id2tabXN2?=
 =?utf-8?B?L1Bub0VHTUtOSEIrbENuMUZOK2RQNWdvbVdBWlFXWVZkQmRqL2I5Tk9pbXhT?=
 =?utf-8?B?ekhlUTFPb1k1TmprMjBvd0laRW9ZOHdZbFdUbHZoaVc2dVBVaXo2Z0drdVBD?=
 =?utf-8?B?bTJJNFZlcTVIdmZSaVRsdXVPRzVJZ3ovazhTSTBIN0Q1c2tQTTBzOU1SUmFv?=
 =?utf-8?B?KzZwaGtFc2hmT0NSTHE3SGRpVkYxb2ZURFZhRXB3U3p1OE5DeW5TWU92ZzVi?=
 =?utf-8?B?L1QrTWdEYmplbDNmYTR2K0J2ZVEzVXk5SzRrcXhvWXR0MS9VYms5TzFGRXdI?=
 =?utf-8?B?am1sTEFWcStYaFFpL0xQdlVsMWtKOXBLb3NEZGtSaFZuakhrR3pmZFEvOTZa?=
 =?utf-8?B?U2dVMjV1RzNRNHo5UHZ2ZU9qWmpTcjFZUDgxdy93OWNrM3BHMnI2bHJHQzAx?=
 =?utf-8?B?d1RQLzlFdmsrd3JlK0IrT0NIV2UyYWxJVlY4UFZwcHhIRGtpcUdmNFAzYlZG?=
 =?utf-8?B?aUhoL0FkQ0NlMTllbGxOOTQzU3pqSUFRRjBaWUhCZHducnR5TUg4QmFhUmk3?=
 =?utf-8?B?K2JxYVh1NjJPM05EYnRrYzBwWHdVRFZrekNMWDhOWWtGR3ovZlVieXVpLzZS?=
 =?utf-8?B?QWFQa2JuMVJKbFRlbmpURkNaVy9PM2tuczlSMUpIMmVnbXh4RVNEQjE2MmtS?=
 =?utf-8?B?TUlBSEJnaVFRMDFLMVJMZW0xTkJtZjl3N0U4c3B0UmNqTDlWRWlkWk1NZHdu?=
 =?utf-8?B?ajdSK1V2TFh2U1Y3WjFORG1YLzY4NWg0TWlCdnh5bmRYV0xsTExUdzNpTGpl?=
 =?utf-8?B?VHh3clBocmwyNHdNYmxuS0NuN2IzSUVhWGY1NENoMlRLQ09zRFJPOURYK0pM?=
 =?utf-8?B?OGp1aGVDYUI2QjJEdmM5eFhsMmc2Mjl1S0JGOTJ6OEUxT0FJRi85T2k0eVRz?=
 =?utf-8?B?amllSkpOb3BWQk02TS9jNmFJeTZieUR0cVNCREZJMlRpSmt2ek54RVQ1SXdq?=
 =?utf-8?B?czZXYjhpdzlqZjlNUUNQU2FhV3FRTWZlY3ZOcko2Ukg3V1FZejNwekJweGpW?=
 =?utf-8?B?a3crZkVDbW9LS2FVWXBpTExTdkJBcXZGWUpEdUpGd3JScFlCSnBhTUxKUWN5?=
 =?utf-8?B?K3JMVWtISWFCRFpUbkoyRHhvblYySjFZT2JTL0hUREtVVDdRVTUwa3pzbCs2?=
 =?utf-8?B?QUdIeXcycWs2ekNsMnNzWE00N0lScldMOHBpS2JpWTZ5Rm5Td01ISlZndXJR?=
 =?utf-8?B?QkVXYm5HYXU0cC8rRit0MUpmSjNpUUZZS2VYcm84S2x5a3JUNlE0dWtabE9C?=
 =?utf-8?B?d3pzSUhldWVXTjUrY0Z2VUxNWW5OeUdpaWJhUHVPU0UxL3ZCTTZIQ2toRWJZ?=
 =?utf-8?B?K0F6Y0E3dHBuUWpFNWI3T2JiOXNaaExLK21qb3E0RG44ZzhiWlpjNFcwRXg2?=
 =?utf-8?B?TnBEVmwxSXRxVU5EbCtSWmp4Ry9iUlR0TkpGKzR6ald5NzJNSWFvWjFwREZp?=
 =?utf-8?B?UWJjVkNMbEpwK1Q4Z09vVzB5NzNZTjA2V29RMktsc0VIa2d6Wk5sa0txNUhP?=
 =?utf-8?B?RHJNb1RBV3c1U09pUm9QSGZFUU15TDU1SzJSZXRMT0dsRFlKeGREUWNGTEts?=
 =?utf-8?B?NXkrb2ppdlMzSG0xV0V5NkJqbG1IS0M0SUFvbzhVU0VldEVVSitoYVBKSTMz?=
 =?utf-8?Q?ocgo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QmozcVdXZkJ4UHBSTGxlek1PNTlzRndDNUpjNW9sbnpjSmZTdjE5djZvNkFj?=
 =?utf-8?B?ZHdyNVVOL2Q3c1RLd3k2bVZEQkQ0MDlIa2NEOW5nSzJ0b1BqSGJZVkJiYmp4?=
 =?utf-8?B?R3d5Zkc0SlhnVEdFaFlIaG8vTFpEZ00vWWVMRllGaG0wa0xmRkVnSFFpK1FH?=
 =?utf-8?B?YWh2VlVnS2JhUEdncS9BQXNxM3pFdm9temZkNFUzVy90eThrV1lmSFAxS3pI?=
 =?utf-8?B?czJWWng4aHprR3lpNUFrcGNvMGhxcDRPTlVJcXFNQ3QwQTVkQUF5SDZIWUk5?=
 =?utf-8?B?bnVQUmtBbmN3aWl5NUFTczQycUZ1WWNzSGpCV3ZuZ0pBTFFQUVdJL1dndk0r?=
 =?utf-8?B?M00xV2xzRE4zSEIveEpocDZhSXU5Tldmek12aUtjbjJua0U2SzFwV1J3OXNB?=
 =?utf-8?B?emthUFBkZFEyYmZqT2JvUmxUNmpYR1FCaHg4YituV2ZCcG5TT0NqSnd2NEg3?=
 =?utf-8?B?cmpOMVZDemUyZ05hVEJQSlFVZHI1OFkwS0NmZ29TayttUnZSTmY4MGVkRGJt?=
 =?utf-8?B?MjQ1Wm5xY1N2R0Q4YUh0Tno0V3ZCVXpqdnVyTTloUkJnMXRtTVFCL0hwRlEv?=
 =?utf-8?B?TGU4bXRSUFR4UjBaWG5mcVlEOENZUEFJSVZoVmM1cUFqejlSZEVOdmVGK2pX?=
 =?utf-8?B?eEFtUGo3L05qOGJIeDVtTHlvd0hEQ045ZjVYeGR0ZmtPRFd4SnlMbldWcnps?=
 =?utf-8?B?SUwzd3FQRG9qNDFic1BHWXpvKzdPN290QmxKQnM3dXViRGJHM0F2SmJGVG5X?=
 =?utf-8?B?azJhTnZiWk8vdWdPQmt2UVFscGV5aTBlNm52WTE0aGxFV1lsKzRoUkt2eUd6?=
 =?utf-8?B?VElRRkg5RDFmbThFaHUxb0JXdlF6TFFBL3A2NFZRN2NmR08vRVVPRTlpSHNY?=
 =?utf-8?B?d0VNMmppR0JtQUFvbkkwdmwzT01EcXpwT0F5b24vd3JnbERmK2ZFdDJlR2lz?=
 =?utf-8?B?WTd1QlR3VGJlL0JkQis1WWl1VU5GLzRLVjZncThneExvMXY5WGs1ejh4WXdq?=
 =?utf-8?B?UGRmczAwdmo5RElSUHZEMkZlWjJnMlg2NkU2QytRQS9qNmZwK2t0K1FNNEp0?=
 =?utf-8?B?aU9BYlZFTmoxVWNKSmtNV1ZTMnJPNnJvcjRnSFI0Y0R3eFJHR1FPL1dxdjFB?=
 =?utf-8?B?cWcza3htQ1pCMHJVL1NldEFVZVJ4aUg4MWhxenVTT2E3Y2pocEtrd0VhWVE5?=
 =?utf-8?B?WGhIKy9IN1hiMTJ0ZkdEL255VWpqamw3eTFCaTg4QVYwanFnUVlxRVhDemlL?=
 =?utf-8?B?VUo2UmlObS81RUFwZ3dBOFFFcjNJY1phOURzOVBmamRuM3hzMGNoYmtHS1Fh?=
 =?utf-8?B?K2lEVVE5Nm1Xa251akxFUGE4dC9TVWVjRlZseVdSSllvODhWQjhkUjhCSWhZ?=
 =?utf-8?B?aTFBdmY0dk5GcHJUaHpWZUV4aTk0OE9KaDBBZGVvQzFna0lnWitGeS9EU2dD?=
 =?utf-8?B?b3Y2OG1mUUlsT3NsSUhlZ1dRcmM0cVR0cVM4VXVoV1M5aTBDVVJxNE1nL0NH?=
 =?utf-8?B?L1RtWDBnRVlHTERmWVd4VXU0eGNwQStlL0VkUDJtNFNyVURqTTR2eGcxSm9Y?=
 =?utf-8?B?RXlrZGVPblJ4NlB6ZW00THE0c0JWZWM3MUREVW9ZRndKREQ0akVITjJQR29y?=
 =?utf-8?B?SnArYk5YOWtjcHN6TnJ1V3NBbWNRdjRWL3RoUGJLUUlNTFNuR1ZTNFZ4NWlG?=
 =?utf-8?B?OURVTXdkRjEvamFvcDBtUmczeWR0a2xTd2dUR2ZubHBjblFVWDdOc0JiYjVu?=
 =?utf-8?B?V053ZEFwcUc4K3VzY25JU3R2VndRY2tROVMxRnRSRHNkbkRKazRRclUrZ2hR?=
 =?utf-8?B?bEFoMzJScis4a2h3RkgzQW8vbjM5Zk5QU0hYckgzekZ1RDhxOEF6Y1g5RlV5?=
 =?utf-8?B?cmloOWxUa05QUHhkb3Uza3RIUVBXcFNrYVVpTEwvUkV6T1hMRlpMbHhFbkpF?=
 =?utf-8?B?SUdvY21aKzc2eVJ2VFpZR0tVOGprWUFYcjUvRGpmN2xvUzRWUnVlYUh1VkJB?=
 =?utf-8?B?czhSdXcrZ2lTalZZVkh2RGpmR0dnTFUrajJkNGtLeGd1TjFIc2Ywajc0SS94?=
 =?utf-8?B?QUJFMWh0MXNnNTdkVlVxR2pGZHlqMEVON0NHaWplVmdBbnpORk5XTUlZU09p?=
 =?utf-8?B?VnBpa09rTGJsU2tsZUtFNDNqZEF0TkZ2UVNqbWFtQzZidjNabUVZWU44U2la?=
 =?utf-8?B?TDZHMlU3VlRIYVZ6T1dZYXdBOXRTK05PdjBZbFR2YzJsaldmdU13RDk2YU5v?=
 =?utf-8?B?S2NYMzY1Tnk4cFBQYVFaWGNDeHlKeEU2K3picjFheVJ3Zk8xRC9YWnBHcFZq?=
 =?utf-8?B?ZG51K0g1dCtid3BqdEhJVGZxbUpiRWNUblZSbE4vZFZ2OHVwWDBMZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a9c3be89-4312-4575-3a33-08de6b07a984
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 13:56:18.9297
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: dLnduFNHSNJBQ7/pl382YqkbgcTki8UnG32uXhEARvn3JJVjtxqh9bwwIoADuo/t+ytZ9fX859B1RlUbNEwTgA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6673

Hello,

Following two patches fix the remaining two warnings seen on the x86
Darwin build of Xen.

Thanks, Roger.

Roger Pau Monne (2):
  xen/x86: fix usage of [[:blank:]] with BSD grep
  xen: add non-executable stack note uniformly

 xen/Makefile         | 2 +-
 xen/arch/x86/arch.mk | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 13:56:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 13:56:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231037.1536386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqter-0006Sg-73; Fri, 13 Feb 2026 13:56:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231037.1536386; Fri, 13 Feb 2026 13:56:33 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqter-0006SV-43; Fri, 13 Feb 2026 13:56:33 +0000
Received: by outflank-mailman (input) for mailman id 1231037;
 Fri, 13 Feb 2026 13:56: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqtep-0005zi-KW
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 13:56:31 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cbffd8ae-08e3-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 14:56:30 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ0PR03MB6673.namprd03.prod.outlook.com (2603:10b6:a03:398::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 13:56:25 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 13:56:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbffd8ae-08e3-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YeMjk1pus56FBdhhD+FvTkMgUyTghOJFzpQYrJU6eFTORUm4Gk+joxkhNenoQR3n2vfw3wAuezB+1wHSSJhL0J7xHuXItWxyrqlEdlqcFGNSZb/kVNLCOR7mcRhiO/Fs2f0d8/PwkMgu52diAF9hMDCnkkX7e8osdhm2Jtww5ryPoYXz/IZMtyvcc4dTyPUSOaHqhLMuyVTstLWpkEu/HIKX8HEROrVi5A9rSgjwMmoGwXlEVC15uC3zLYFKbTevlLnyMloKlrSF5+9ambly7sO1wTLIbSnVouTG80mtmQje0PRbc4PI/49tVkNsHKT/TUcMBh8pErm4tKXKgmnWuA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=C6e9XKDp17m+e3nE3c73RDXKcJSz1yuYkM6ZLkwd094=;
 b=JaiTafasITTkino74wppYtIok6c+na+r4s1uSkHPyRFMxy0WSinICcPeyFaWmBT7WEFI/19dvZPv+p28RWyFv+4A3X0d+hUYOaabxnX09oU/Jpo3/RxvUu1yFdiin8OHfCB7zbLy6P8SAjWfjjeyScEF38+ztpn3UuCA8NpXbIvFae0pCFTDRvuPNHY0Xu8uBi+vpE55t37SrhMtPwot+FUvAr0YUz9Cf2/FVri3LtTzvU7dmNEvACjvMWBEKfPa0cMtZzDqQz7fgq4ktsRrvbwAAdNHUlkFcCystx+EzsDbMTfHGs8Xmf1nR9t75006MT9Jgus0C+LPqsPVCsK39Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=C6e9XKDp17m+e3nE3c73RDXKcJSz1yuYkM6ZLkwd094=;
 b=g0hQk/sm4YmA4ElAogyReN96ga/3fO7u7StYL/X1qCk34CCXX2Z/GG/WOXvdaYnntiQLZsF507IrOrw+FV4vgyNKGaS1BAy+YhN8EGcFDxPJim1gZ5wmc233O6h+aTdAaigb8exQc5p8MC3FLK+LGB1GI11xM1pAHyPCB4mDxTs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH 2/2] xen: add non-executable stack note uniformly
Date: Fri, 13 Feb 2026 14:56:14 +0100
Message-ID: <20260213135614.25842-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260213135614.25842-1-roger.pau@citrix.com>
References: <20260213135614.25842-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA4P292CA0011.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ0PR03MB6673:EE_
X-MS-Office365-Filtering-Correlation-Id: d0bf933b-9fb9-4940-c576-08de6b07ad30
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?eXFJTXhCdnErSk9ub3V0SHEybTN2WXh6MSsrWDNEQTlid2NzN0taU21uKzFN?=
 =?utf-8?B?cE1aQ1hZdTZnTXJFYitvdVlCeSttd3VSdThNMUk4RnRpK3lkMFF3ZzFrUmNz?=
 =?utf-8?B?RktFSGtJZE1mM3JHSHpRTzNwNUpPYXorR1hhNW5adUN6U21qak9nV2QrSmJO?=
 =?utf-8?B?d1pzdDN6Y2RaWE4zSGlFV3RDUlFBWWtCa3NRVkIyZzNENjFZbityeU9ZZjJU?=
 =?utf-8?B?dk1xeXNRV3liQjJ5R3NKK3dxcVpWK0xSSm4xeEk3czYya2t4WkwwWnhhOWRk?=
 =?utf-8?B?bEh6QTdwUUx3c1dFdUxuWUwxeXlZWExHdHBWdWo2S29naXZBRWg2c3BaRG05?=
 =?utf-8?B?TmRHWUNMTEQ4NUJqOThVeG1rbE9UWkNRbWluRzFIMlJJM21KREhKeUp5dG5C?=
 =?utf-8?B?VnRXTjdJQS9YMXB5bDdiaXFtL3RFL1ZyRit2dG9iSytRZ2ozQXZuR3lnUFFL?=
 =?utf-8?B?MDcyMVorU05ZTTFlUldZZFdYNTRSdXQveTErcGtxUmM0b2pCVmRNYTdrMXlI?=
 =?utf-8?B?QUEvMWp0UWNrS24xeER2K2E2NkRpd3p1OU9VQm44bGt5UzNlVGFvSnF6d0pI?=
 =?utf-8?B?c3oxRDhxWUJkd3lmOGg5cDROV3QwSkdtN3Vhby9BL0YvSGg0SDdMWjdmbGRw?=
 =?utf-8?B?YkthcXRQNjg5a3c3ZHprNkI2TXhCbG52eVhBNWlBeG9xaE5EOG5NZmZjWUMx?=
 =?utf-8?B?bU5xR2FYbklhVXVsRmR2RThLaENzemVSeWpYVGtYYmVhMThzRUN6R2JYWUJo?=
 =?utf-8?B?NzdJT1ZVVG51WHdvamhKaGJ5UFJWRkYycktLQVBiMzJSRklEdGlCWnBKZFBq?=
 =?utf-8?B?SHk2MDh4WWxzckRQNmpXUUFNWjZPYlRJN1dFNllzVjBkWUNpWlNXalhpdWZO?=
 =?utf-8?B?b2Nmc21KYUd0em1jMVdvR21rYk5WbVlsZEExUjZVMzJ2QVVtNWRmMklLZmJV?=
 =?utf-8?B?Zyt4cXQxb21XWk52KzNIS3ZnVTY0eFhZQjRQQzQ3ZmpZTGhtSklyQUp0YytC?=
 =?utf-8?B?ZjB3ZVhzUnI4bDBKQzhRVDFWTmhvd2M1K3d2d3NpQW1hUzM2OTlpaXVwaUZh?=
 =?utf-8?B?TllEUCtHMXFBQy8rTG5KZ1pvTWVlOFNvdjVkenBFTXVwVllvL252aW9BbElQ?=
 =?utf-8?B?QWlIL3N0OGM1QTc3aXQwbjQwaDVjODZFbldsazk0SHdQZjNGYVdwMlVreEFY?=
 =?utf-8?B?OVpMTjNhTFNvYnpCVGVyT1ZIaElTUFZjT3d5S05melZEQTRRdUtZVXRIM0hl?=
 =?utf-8?B?K0R5TTZiYXBTNDd0MSt3QnN4NWtuNzFSazBBVU5aa3VQQTdiSzhJVUwyTlZ1?=
 =?utf-8?B?bTloU054WjBUajhyeUtGcEFWVlA4MUw2VzNQWkl1SmZsRUFUaVBTVFh6VFpG?=
 =?utf-8?B?Q2NCYUhNUVJHc1g5ODcyQzRHc3QyR2QrU3JvczM5NXlhMXduUjlWYnduZGxW?=
 =?utf-8?B?eVVRL3c0aHB3eVhiekpDVlV3d1FjWi9VYVptVFZlcWE1aDJnTjUybmlhdkZC?=
 =?utf-8?B?ZTcrYVlud040UGg2S01vRlFucC9ZZk9rZ0tESFlqOU9ncHAvNDhYWGFQMXhV?=
 =?utf-8?B?UjhNL29OV1o2ajRFK2tFcTVJdlVnS2ZJT1FpaCt1OEZzOFk4enlQVU9IZ05l?=
 =?utf-8?B?WlA5OWNrRmpOckJheE8yVXQya1lINXlLbEpXa3JvTGNGblNhOHNQQWxUOUN3?=
 =?utf-8?B?dmtveEs3bzhLR09mT3A4ZVRWb3BsUVdUSTNObnFoSC9MMGRFL2tIenQvaGxj?=
 =?utf-8?B?NDE1QmZ0RytjdHJOcFV1aVd6a2hIYW1sRFhjZlBuUUM3RWsveHp2bXBvMXBm?=
 =?utf-8?B?WVVENHoySjd1d0dnT2k1YkJqMU82MnlvSkJoNXhpOUdzeW10Rlp2U3ErczBv?=
 =?utf-8?B?M01ncmFBZ1ZHMFhrbGF2V2hjN25tQ1lvSW9qNlVSNU5UQjhsdXVXR2FITWVp?=
 =?utf-8?B?K0p5MDhGNGhjblNwVW5halpsRHg2MDFOY3ZGN1dCNlRyakc0RmxWb2ZvLzNa?=
 =?utf-8?B?d0RmSHY0a1RDRGU2WmhhblVKNWVvZVFzbHI1MytoM0xwTUM3MmJmNjRnT2kr?=
 =?utf-8?B?d1VPa245NHBQeURoaXZMdTk5SHcrdGlmKytvUTdzbFd5RWdZWDh3OG94Y0JB?=
 =?utf-8?Q?+o30=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OW4vS0kxc1VhS09kU2p1VDExWjhrZGdQV0J4RnBpbVB5cW1ZSWxrc1pZNHBX?=
 =?utf-8?B?Sk9iR3NRb0EvTjZIbUp4dzN4L0xYWlQwQjRUNWR3STJSa2U3QXlnOUcrdTA0?=
 =?utf-8?B?b1I3aVNQdWI5bXBBOWp2Uytka0d0bHlKek5qdHlGOFgwT2RNdUFoRFpWOWty?=
 =?utf-8?B?SVlwVG1GSHZUT3lmcWR4WWZwYXFYMzVBS0NnV1lHdE13by9LdGx3OHpCMllD?=
 =?utf-8?B?R3hIdzV4bWQvRG1Ma2xsa3hkMXVBYmJwbjY3SGlhMTNINXMvTi9VeU9vOUJn?=
 =?utf-8?B?YmVSbWFQajV0ZWtNQkdOOE9zRkFTY2lZS3pQV1RZL3kyWkl6TWpZbXcyQUFJ?=
 =?utf-8?B?Zm5PQldhaHMxd3BCTmFVL0VXaE4wVzVLZUQ5MjNGZjJYS0E5c28vUHdCblcy?=
 =?utf-8?B?LzJhTU55TkYrVm9WYXRaK3hWejBXaEdsMW1KRFJoK2sxUkVoVWppNGZ3S1JI?=
 =?utf-8?B?YVpQQ0Y1M09VWlNUbE45S3dNYXRYL3VsUVZJQ0lmWWhOTDBWNEtQZm85b2M3?=
 =?utf-8?B?RWk1d3JGekZKbXRCd1RsWnNkeWtsSW5OMGtGZU9CbmVjNHl0M2lYRHIvUkpR?=
 =?utf-8?B?TUdpeGNseTd1b3p6aXB4dkE2emk4L3UyQzNwWnNYOWpvaGFRTTZKQW1xQzBk?=
 =?utf-8?B?NllFNkxyNFlLR2t0OS85OTcvOGN6SUd4RnY3RWJiWit5YWlDejFEVHE5a1Rv?=
 =?utf-8?B?TXN2RGMxWStlRTRWOWVKZjA1TzVPQ0lNNSt2bWlxbkJWbUxlMjdCTCtNMHA2?=
 =?utf-8?B?MHpXNG5DMFR2aG9GMExmN2JiRTFLYWtSbmFVQ3pZb1FkSjFIMW1GY084L2Jz?=
 =?utf-8?B?N3BKcStTVjk2bWR2dldBTlpXMk1uKzc5MVlJSkdNSllRV2Z4Ukhma2E1SGRw?=
 =?utf-8?B?ZXk2cjF6SzUvZldCUDFhUnFiOVpoYXNNTVUrbWI5bGVNMHlXRjFlRlR4VDdo?=
 =?utf-8?B?WHl1bTZ3M1p3OXFpRDNBLzV3M0U1TVk2M1lHcFloS0VaZWx6TjdsMERpcjFT?=
 =?utf-8?B?R0JhUEVZRVdhYlRTT0p6UFB6SkVJR3BYejBETEFuMmJWQW5KQ1VhOVA1UWFN?=
 =?utf-8?B?QnBEbnZneDkwTkoza2RIaEpFeVFzVG9HVVNnVjU4NUREY3VFZmZidnhGczlQ?=
 =?utf-8?B?MDM1TEU3VDZNQUhvUlRLWERWNUJkNEpUMHJUbk5yQTVmZ2pPcnNyVTNicExJ?=
 =?utf-8?B?WXhUMVVzM251Yjk4YldzMWFGNGJXQ3RURFJ2VmRaRTdJZmtNTEFtNGxBTkdT?=
 =?utf-8?B?N2U0NXNldlNuck9vV0pSdERscWJaYUJ1eEZJQlFpUjRLTGtCTklpdERoR1FZ?=
 =?utf-8?B?RTZWellmaUd6cmY5b0FCQmpHQjh5alR3S1QrSVVDbUJTR0FwUUZsZTA1OThx?=
 =?utf-8?B?ZWM5VU5uQWlTZkhmYldmWXFEZEpxbkdXa2pWWkZxanRubmFkcFk4Q0xwVjJk?=
 =?utf-8?B?ZnBGbE9BRlUySWEzd1VPS1dtTWxNR0oxdTlIcVJiWTVlN1FDVXd1aXpsMDhY?=
 =?utf-8?B?aFFIR256R2FnTkxVcWhkNXB4eEFjbjllTkY2QXYvWlZ2V01ramFxVTBHYk9B?=
 =?utf-8?B?VENKMElTckh2ZXMycXZMMUJ0UVJ0V1VaWFRCTUJyQmlnRW5GRHdOaXU4aU5i?=
 =?utf-8?B?NDV2Y0c3OU9pbEd1Rm41dFdLNzdDZHNxbm15UStjZG5rbUxXYldwK1ZwSVJj?=
 =?utf-8?B?b1JFcTNIY2lqVGEweUFRYjRYcVVqT1NQV2RnY0RPT25raXRxU3Y5bnV6QWY4?=
 =?utf-8?B?NDdXZStLOGo3c0tETFl6diswcUtmOFJyRlNhMjVvMGowaUhFSThydzU5UGQ2?=
 =?utf-8?B?eEQyS2wvR3RYVFNadkF4dllvWmZLUVNpams2dTJBRzEvRXRha254V0RaN0lk?=
 =?utf-8?B?VS92RW4wY0pCUzJab0ZLNU1vZHIrS2VDcjFiZ1lVbmQ0NlVVUVc5YVpVZ0sv?=
 =?utf-8?B?aDlFOUF2bnZDbFBLdEJaQ3hVMFM2MFJxUzZMZFYzelU0OVo2WTRlUDJCNVBZ?=
 =?utf-8?B?dkFHVVhrUjV2cE5WaGZhcEZzenpGaVMxK000UUwvSGhsQTdqZTlnN1ZJS1hY?=
 =?utf-8?B?c0t3SGh1T2xSaklFWnNXYXI2d3NSSS9WZElmTjRYM3BZamE4eVZnZzVnMjRB?=
 =?utf-8?B?bzhodHVGbGtlRzJwSVc0ejI0UDU0RTNCOFJLWGtkN0ZYVkZYVnVWcFVhKzJI?=
 =?utf-8?B?ZVhGSllicVdHcXBrV1NScnczSUdNUjZkQ3pBUTg1c1dZMWwrcHBGelZmdWNB?=
 =?utf-8?B?OEpQaGlhTHZHbGFacE5rcDR4QzhIRnJ4cWFxY3BReVV3RFB3Z2YxZkE1SWEz?=
 =?utf-8?B?cENGN3VUblBwbHdzai8yVS9JOUhJTkwzRC9jaUxuU3I1blBacUswQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d0bf933b-9fb9-4940-c576-08de6b07ad30
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 13:56:24.9676
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ePp66Ba7drYx517yscresOZYT/77u8tZuN5TJoUyiW5/eA1Soze8Ba4WNV1aKSfIwimsX9cMuRHoy8eMdHMJbg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6673

Currently the -Wa,--noexecstack parameter is only passed to the compiler
when building assembly files, as the assembler doesn't add such note for
stack attributes.

However, the default addition of the .note.GNU-stack section is dependent
on the ELF target used.  Adjust the passing of -Wa,--noexecstack so it's
added to CFLAGS instead of AFLAGS, and hence such section is also added to
object files generated from .c sources.  This fixes the complains from the
linker about missing .note.GNU-stack section when building x86-64 Xen on
Darwin platforms.

Note we could instead pass `-z noexecstack` to the linker, but that however
would mask any possible errors or unintended mismatches from previous
steps.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/Makefile b/xen/Makefile
index a054315fa4a2..a2b442e76d5c 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -413,7 +413,7 @@ ifneq ($(CONFIG_CC_IS_CLANG),y)
 CFLAGS += -Wa,--strip-local-absolute
 endif
 
-$(call cc-option-add,AFLAGS,CC,-Wa$$(comma)--noexecstack)
+$(call cc-option-add,CFLAGS,CC,-Wa$$(comma)--noexecstack)
 
 LDFLAGS-$(call ld-option,--warn-rwx-segments) += --no-warn-rwx-segments
 
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 14:12:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 14:12:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231086.1536397 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqttg-0001pk-Ht; Fri, 13 Feb 2026 14:11:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231086.1536397; Fri, 13 Feb 2026 14: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 1vqttg-0001pd-E9; Fri, 13 Feb 2026 14:11:52 +0000
Received: by outflank-mailman (input) for mailman id 1231086;
 Fri, 13 Feb 2026 14:11: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=226k=AR=linaro.org=peter.maydell@srs-se1.protection.inumbo.net>)
 id 1vqttf-0001pC-CF
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 14:11:51 +0000
Received: from mail-yx1-xb136.google.com (mail-yx1-xb136.google.com
 [2607:f8b0:4864:20::b136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f02d74c8-08e5-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 15:11:50 +0100 (CET)
Received: by mail-yx1-xb136.google.com with SMTP id
 956f58d0204a3-64ae222d87dso1101546d50.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 06:11:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f02d74c8-08e5-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1770991909; cv=none;
        d=google.com; s=arc-20240605;
        b=A7zBloeuNbvW4T2qQ4w/5MEnwM+BlGvRTz5GlLCw4ZYtnsi+5TYPwdrRIFNJKZ16P6
         BxQxG15izrm4Km/ihub6H9S5pXiXrIVymItJbZlUdOhHP/xeVD4o7mzTeAy1efrBxZ3C
         0WaTGceTstXzP8RPUSrTOf/ROJbDyrR2yftJ9n2D0ob1FalubrQkt7krka+N1FV8DIN7
         QAJDeGxLASNavnb5XSsRxSjDJNSorEWlUxUNBMgTNyFXavnEnHQ8jRcxF2i55//ZnbVT
         EUuGms3H9ccrroTOP34zfCzlXDNDbDzPletO/fyE/G+fHTK4vpMTiVAQgN3mOUmP/Lvn
         7BLQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=E+Hcp7SIum9H3zzUJZsKPurFW4IHGWWeOhHlNm8iPEE=;
        fh=PduvIRqI5AtPoAZbc8IE2LtG1FEpyBzo+vWGkDrV7s0=;
        b=c98y+r6seFyvfkXNiXc5yCl4rWXLe8AXXz/n9zOGs/CbV0diXR3MgmmZYXtlpsFujZ
         QrY/Hi1Qp5ZFBDvO2PMR/qdQ54fAe/1699CcxuQ7342m70EzJsqV+jIgfVHUfzVCOuc9
         3Dr2T8KceHHFAh8/iI4aNkdG+sMYvf4W8dAjInZwOYmiQn3BYS8AB1W7U6HnTApF97ZE
         sH6xCpsTP6td3R0piArb/UrsYaKtXGSn6+KitEH1GBTD6wQ6HGxkWk3AmmxAAPA6Einl
         InpdjaEjLiKc1zN/+GRkfaNPzsldJePqmjIl/zkFUBlIZqgcs06W0CpesOEa+Gv7qN1Q
         qHdw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1770991909; x=1771596709; 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=E+Hcp7SIum9H3zzUJZsKPurFW4IHGWWeOhHlNm8iPEE=;
        b=BbFLBPEb7kdLjaqxxopOrZuN4poaNZVaeNjLDf4uFg5vHJ1oqKkrtnkFKw9lyA5mQE
         VMsQixjfQwhMQP1nCVy1yMjF+6eoLj1HAm8TNQtog7XWh1LP33zUflxmpYBDWNUhXd/m
         4aZY5Xpcmt/IMv/4ZIXUcZ/rM993+GS05Z3BhnvLpIJ0fJiCCeq/o7wtyNh3Uxh6k6rZ
         XYYu51yIEIYuV5PwV0XYmZElc7jMbqDOd6ldUu7gBAv51zCYoQhWYOP7HUiZ2iVD1N5O
         9dAGICOfkEAqLZYJmjVvuHFoiaP8HMcdmnTjUovVCGwNQSKP+qDw8GUj4rOe+HPE9iry
         6Yag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770991909; x=1771596709;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=E+Hcp7SIum9H3zzUJZsKPurFW4IHGWWeOhHlNm8iPEE=;
        b=UpG31A4nvZjdkcfFoLaKCTaRtGODSJVjd1GeybBPxyupNbrz32lBk4g3PkSPSDOLw3
         pAhI5z6866Om6pgpfqBCzx6oUiMbs/NuCqFPCFm/SkMv8xi3N6ORePuT+N1qtHGoYWBK
         fBMzrCRsN0NdvuaGukUnCYixIKZNrfD335Fkv2YzXb2Blb9S9xN+BE8AhMl5jMR6Nz38
         Fn4j3UrkBYaWHxdq6AT6FInJDArTZvbBl+j/5C3y6jQB2XNid/ViqBhuARzsfANhtZ2c
         rRwuj92S1XMRv4TapGThex5Aq31fo3AnQcUdH51atC4x0Luu++4TiI/1DqFkZ/K/3xC1
         8Cdw==
X-Forwarded-Encrypted: i=1; AJvYcCU/Si34mXJvAL33lGr8HBSadLwCXixZPuYHf1zXruUVT2LQunnNs3davuBcSfvezorScEQ6D1KEAj0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxoL5Kz4Dg1PBimRRowignJhJ2I352NJJf61mONPVMAo9B0Dzmr
	X0OPoEAmQ/x0gG5Kt46p9IEN/xeUF/eqQ9bzIBID6deKl4fgw3HAdgch8/XPJH6LZLSogLw3HoK
	nXhtYN801fdMy7c4mU33ofJ2X11/G8vldxePhyIrdh5Hjs/G0IeEJ
X-Gm-Gg: AZuq6aJf3WV2CZgiUx7DMuQ4wkmL4GWxYg0uJmaHRqot4RI8F2S0huSMlzt+sj9NbNr
	p1Lt0MDW5O61TTRSMCP08LnQwl9StE2aFZD0ArHe7ePobJ+nu0ABN/EHkIpq0r/0Nr2hPZYJb4Q
	TJYqY1lGL+Gfn2KHMrzImyWhN7LaxeZVpi9ZQqamOkxtnYqJU8rAiqyDvWL7u8MGaUwHXtpCbhS
	Z9FTuhh5qobJN2jyTepzQXR9vj06x8GrF2doeiwiYB0wZqT36+1+6oR5x74ClZmbXe6P9I0d4vO
	1D4B7Hw/eApewzWLGIbNj8Yfn2VaglfnfvIe67TPut0iw0zHExfUeIkamn61XjwKIec=
X-Received: by 2002:a05:690e:bca:b0:649:b535:46ab with SMTP id
 956f58d0204a3-64c19b196fcmr1343989d50.49.1770991908901; Fri, 13 Feb 2026
 06:11:48 -0800 (PST)
MIME-Version: 1.0
References: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
In-Reply-To: <20260213094938.4074478-1-marcandre.lureau@redhat.com>
From: Peter Maydell <peter.maydell@linaro.org>
Date: Fri, 13 Feb 2026 14:11:37 +0000
X-Gm-Features: AZwV_QhTszuPHuF69gBdjMmghGZj0GECDjqjodvkLk8R7I407V4-YWO9HB7GAYo
Message-ID: <CAFEAcA9M4OvfOEnAaATuUQwFk3YthTUjPNFLo4izgd+vORHbFw@mail.gmail.com>
Subject: Re: [PULL v2 00/15] Char patches
To: marcandre.lureau@redhat.com
Cc: qemu-devel@nongnu.org, =?UTF-8?B?QWxleCBCZW5uw6ll?= <alex.bennee@linaro.org>, 
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>, =?UTF-8?Q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, 
	Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>, Paul Durrant <paul@xen.org>, 
	Anthony PERARD <anthony@xenproject.org>, =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= <philmd@linaro.org>, 
	Eduardo Habkost <eduardo@habkost.net>, Paolo Bonzini <pbonzini@redhat.com>, 
	Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org, 
	Samuel Thibault <samuel.thibault@ens-lyon.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 13 Feb 2026 at 09:50, <marcandre.lureau@redhat.com> wrote:
>
> From: Marc-Andr=C3=A9 Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit 4ed6a7f2fdc09d9fc3411e83e278da00851220=
16:
>
>   Merge tag 'pull-block-jobs-2026-02-12' of https://gitlab.com/vsementsov=
/qemu into staging (2026-02-12 14:35:18 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/marcandre.lureau/qemu.git tags/char-pull-request
>
> for you to fetch changes up to 98ba0e479771a391137119264156e9661508bbc7:
>
>   baum: Add copy/paste bindings (2026-02-13 10:45:07 +0100)
>
> ----------------------------------------------------------------
> chardev patches



Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/11.0
for any user-visible changes.

-- PMM


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 14:27:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 14:27:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231097.1536405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqu8O-0003fm-OQ; Fri, 13 Feb 2026 14:27:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231097.1536405; Fri, 13 Feb 2026 14: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 1vqu8O-0003ff-L7; Fri, 13 Feb 2026 14:27:04 +0000
Received: by outflank-mailman (input) for mailman id 1231097;
 Fri, 13 Feb 2026 14:27: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqu8N-0003fZ-8Y
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 14:27:03 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f79f183-08e8-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 15:27:02 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA6PR03MB7639.namprd03.prod.outlook.com (2603:10b6:806:43b::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.12; Fri, 13 Feb
 2026 14:26:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 14:26: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: 0f79f183-08e8-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=O+UC2+f1sGPON8dWwOgQvXuYRPipQpVKU/9FPMUVMUU+XWZQ8lXaJ/cFR2XEQcYQKYlMypXJG51jLbG/LLE2+eS+3OPhXWxNgdzU48iuubAslcHjRwp3qrjtrSO4SJ3dviKEi73RigHHOLd4p8cMV8Zq06apxxPwQRWRHzr+jGEayUmc20GugL6+6lZyuCyE6Ln12J1vdQeXrRt1iyMyt89XanB1jCqcHOLMp/hqPEmh/SVlFoM0aC2++dU/aAs6bi9lXr46j2nOv606exV8S+k5+GZlp9FwzztQr6HxMx74IjfK3YxfZK42wtHylOnbocF2VKVbB7rgCA5cP5SU9Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Rh5T2m86dtQrlWO11Ty4sdS+EaVag2KHwB9XaTaTNyU=;
 b=rmjFHwj6qdNE6LOOF6U5PuHT4oBCNsuZikRLtMucOVK17pGBHgxtLt94yuAesW/sV5SAHMPmH3k+yKo9EJFF/ySWKuzk0IJvbjt0SSAMaXCG1V5ac+FycbC1XknJD0cMChwXyyj6mS/owAFOSvf2W9S5SGDJz6wp/GqmDejKDMpsnn74d1zeQIGnYTA6MYdDBF6fKG8fdPEEpkbiFjpvbq8K8WNZ/H22qlvPZmSWj856ZViCDkgpRl9h+CWNvKURapqSkTTSVtJxJ2zJHiZiXGCiAUuLzOkdeB2hNA5i4iSjns85Cj3IuzS2He+OqEPaL2+TvU2KfMjyvAcfX3IA3w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Rh5T2m86dtQrlWO11Ty4sdS+EaVag2KHwB9XaTaTNyU=;
 b=ChdSUiJ9BIytHFTTnJXZwbFIZTfKlCdxLwpx9dK1u48pfhs2Po+Bq74aNJhMoj/rdPOsJPM/1sxX10Xv3PVIFf6tiprbSFZYxk1NmcRtv8beLxDW6RqEg2QQOdmiCA3+nBEB0YKxu++JjUlOUdODCxzCMUZ2/z/dz/HRrI571uE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 15:26:48 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/2] x86: Make hvm_enabled a constant unless both PV and
 HVM are both compiled
Message-ID: <aY80qJVIZOjjqBOS@Mac.lan>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-2-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260213133732.132326-2-alejandro.garciavallejo@amd.com>
X-ClientProxiedBy: MA2P292CA0014.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA6PR03MB7639:EE_
X-MS-Office365-Filtering-Correlation-Id: f37833cd-29cd-4aad-ff0c-08de6b0bedc3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?aVg5cEhJb2FxamMrc0xibFo2OWZUVi9wbjVtbGMyenl3OEd2cGRqemVwUlcv?=
 =?utf-8?B?dWw3cmxzdXFncy9iZVdwNTQxUXdVaEVaRUM1UjJMWThFaFY1RVFMaGhZdlUx?=
 =?utf-8?B?NGFOZndOUEdoWkJIT0E4cHZzK2s4SGNueWVsdGRlZ3FDc0FIRmZ0ZkR0czVG?=
 =?utf-8?B?SW9UdnVSVlo5S25BcDI4UkFlTGpySmhTamxXYjJFNFlWRUxOZFBrNTJ5eGRL?=
 =?utf-8?B?MmFkVDNKdlFCblFIK21hSmkweGgzRld5d2poSGkrTFFaRzhzYXZpRm5DUTRs?=
 =?utf-8?B?SXFCRTlZSWZ0L1dXMjl5UHY2WmNhNVdtd2tTTWxOZFk4U0ZpNlhuK3lFVDk5?=
 =?utf-8?B?VlNuZlpoeThmRDd0K3ZIK3htQmR5MzFUb2c1YnZqd1hpaW9BdXltQlBHSjE0?=
 =?utf-8?B?Q0I4b2I5bU5iZEpzcTNGblY1UU12TzU3YVR6ekNndVpIWk5vQVNoNHBLcktI?=
 =?utf-8?B?V3FZR2I4UWtJbEJRZ0tjOTVNbDB0ZDBySjBoY0RmalF2NFVkaXpqZnpMQktM?=
 =?utf-8?B?UThyUnpyQUY5UlN1M3g5ZUkxNkpUMndZbHJNanUzTGZqVmJRSFVwOHduWDQ0?=
 =?utf-8?B?LzJIbkV5VHVHMjd1MWJmWlhoVS9IdCtXTDZPSjJOVzVFb28xT2N5bzkybVhR?=
 =?utf-8?B?QTh2ZHRYQUU3TW0yS29MOGRXU3VFb3pKZ1U4c2hhZWtoVGMzNnNKckVpRzNz?=
 =?utf-8?B?WjZnUjgvR1I0UStxemNVMDV0Wkd6S25Sb2wza0NQQ0tvSjI5elpPQTRTQnhZ?=
 =?utf-8?B?cXNqWG9HVGdnR2xvTmRqUEoyRjVacTk2d25JME85OXgzZTZRa0owdENUZWds?=
 =?utf-8?B?SWdoZ09hcUsyWjNpOGpqWFpQSHlWcHJ3a3FLc3VzbE16bnZxaGx2azh1TTda?=
 =?utf-8?B?MDZ3emNrdEVqMmhVV2pUZUtDYWlKNHVhTURwUzN1MFBrVFQvWnpBWThvTmMr?=
 =?utf-8?B?WThlNWcyaUFwMWpUZEY3Y0ZnNm1kRjNZOFF2SnROT3BDV1dNazZJUzB3aUMy?=
 =?utf-8?B?c2NLVml6OVBIZDlRY3AzZG5Zc0NyV1BrM2ovNmNTclYyNGt0TlcxWFhIWVZo?=
 =?utf-8?B?RDdoYU5qVUVsNFprb1N6VUYwZ0VLb1RsdHMwdUdsQ0tJbXYvUmRJRWFBaTFj?=
 =?utf-8?B?Rk5PWjZBU0JPanZDQXZreldLREx3SEs1Nlp6QzU4dHpBV2hEL2xyRE05VEZI?=
 =?utf-8?B?b0pqTHhSMzFGRUw5SElvODF5QVo5dVEwU2c1bmZsRll1aTAxSk9YQ2U4VFVX?=
 =?utf-8?B?YzExVzhidXBWaXZKYWVyd0d4ZXVPTzNJK2svekpXMHNrSkdIbG1GLzE3YWZF?=
 =?utf-8?B?bEFycmJLSVZNRnZ2QWd6TDZSU1lXS0MyQXVGNnRwWHNFaVNSNC83U0NidUpQ?=
 =?utf-8?B?bngwWUwvMFJlTDdDWUpaVWFtSitIWS9NREdOTXluWE44LzZlblIrUjEzVWl6?=
 =?utf-8?B?UnRWU001dUlaWTA0UHFYU0xmSXdUbkhoakpGWUpkdi9TTWIyUjFtV2gzY1Y4?=
 =?utf-8?B?SzRGdG1vV21oZ29PWmlsZzFoMjVuT3VFeXVjbndMbG1JT2NIQkRjbWV3YXQ0?=
 =?utf-8?B?bTlzNVB4RjQ2QjJvSTU5N1UwVFpnNVB6SWlrSTVFM3haanlsYTFhVkduMTR2?=
 =?utf-8?B?MHJIUHo4bmRNZmFVcWtjamkxTVZOWFNGZ1ZJV1JraHBacTNYRTJETlk4SzY0?=
 =?utf-8?B?bWpWUk5sVnh4VzBUa1FaYmZ3WVlsc2xsVDlCbWZDWW5QTjlTVEF4NWYrNllD?=
 =?utf-8?B?bVlJeDNKNm1RaW4vdXZqdXpraGRxSzFSVjB2WVRWL1FPd0FJT0VKQkNNMzJw?=
 =?utf-8?B?Yll1bEZqWTlGQlB5eWJMU1EwVE5zUlFyeGhxZm40VnhreWpKWXJxMGJMcTlm?=
 =?utf-8?B?Sk4weEM2SXhwZ1A3a3FMWk5JTStwVkMrNFhQVFR0eThHTk9vZHNPWncrN0Ja?=
 =?utf-8?B?cmlqZFdkRW5lb3F2WTVPczFaOUliazVTRzNMbmpUYVpUT2VKU1JpNThGVWFF?=
 =?utf-8?B?VFpObjdxcUxMTG1tc214enAwVXZnZXRxN29CSDNwT0tuVFdkVGVSRHdRUjJE?=
 =?utf-8?B?Y1FNS1Y3UmE0dE5WZzJvOGtadFFFR0lUT3pPdDhzV0pjb25XVERwL0ZMRUJW?=
 =?utf-8?Q?Gf+s=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dkRTM3UrTXFyT2s1K0FNQ3F3MWlNelFnMmpoTTFxTjNsSjdDdXc2ZWxZWkFw?=
 =?utf-8?B?UnRzZERieGJib1VTVFNXcG1QUGhpTWU4OXNFcm8rUTdFeUcxMlJGNjBYSExK?=
 =?utf-8?B?V3hlK05wb0VYOGVZT09sZDZOT0dKcTF4ZmkyRkhKT2ZQaGJQeVNaUjFOOXVO?=
 =?utf-8?B?dUZIQWs2cUZRdGVWZ0p0Qll1T1BrMEw0RTg5YWJHcm9aRVhiQmRCVUdWaUtV?=
 =?utf-8?B?bGRiZHNMbEpDSVVRV0VVdU0zMzF4Q2RYZmYrc056MndlUVl0cFZtSVRlaUFD?=
 =?utf-8?B?TnE3VDVCWUJISlZENDlDTkNIVE9FMTFoUkEyanFhOXFSRURaUXZ2eVpBVEwx?=
 =?utf-8?B?MVVWdXpYZVdMdjFwcWZrYmFrSUlzcm91U0xTMkxUdlExOGxEUWRNNWhjSDVC?=
 =?utf-8?B?bnhhUXBNOU9IS0syREdoZXZreFdqaUVjTDNwZnhMOU5MSXJzdjAvYzlwMHdG?=
 =?utf-8?B?VGw5Um83VWkwNXpSb3IzNkRQbkppcVlsMjlacUFlaGJUTjJiZ1VqdXlKVzlQ?=
 =?utf-8?B?cUxpOFNlRnBvVHpGaUVVVG8velo1YUE5MmFScVRVQm5vSDg3YkY4VnJxNS9G?=
 =?utf-8?B?dWlyVkFrTVgvMXdScnJaMExrajRHZEUwREdick5adHc4M3lPdWlseFhmek1k?=
 =?utf-8?B?NUNpOHgrWFJSdlZBTFJHS0dRODJONnk0ektad2ZvZmhKdVZMc2ZrWERrRkVP?=
 =?utf-8?B?d2xtYks0bTlhLzdzUHNRTzNOQ3ZOUzdpcnZVbS9EdVFOZ3g5ZHR6eG4rblBt?=
 =?utf-8?B?M1dmdmtQMmQ4R0VvN0dSbUF2TlcvcUkvSElVbzgvdjl3eWJNV2tqMlpYT2lQ?=
 =?utf-8?B?M1lhSFpSUnU2eXBXTXBhaXNNQUFuRXA2K0F2Qi80S0RGYVFualVLN29PVlkz?=
 =?utf-8?B?K21SWWRiNmlndXkxQlNRc3BndUpTTGlLamtEZEw4bytkazNLYVJSZDRZMFhJ?=
 =?utf-8?B?ZmhaZE5YNm9WOEw5bGFjRVQ4QVBZNGZDUFArUGdrcHJhM3psSnhKUlhWRmE5?=
 =?utf-8?B?QkM0cnoySkJBNDZKTFIrT09TenU2V1Z4SkpSYjlWOUhVR2w3NDBEcHArcEdD?=
 =?utf-8?B?c3AyajRKZStPdG85ZDVYam9taVFhNmp4NEwzYThPUWQ0NFI4Sk5ZL2NSanRx?=
 =?utf-8?B?N0c1Zm5LUHF5bUx2WTIrUjhQZElmbjBLR3NTR2lDRmRQaE00a01vSWxkcnNk?=
 =?utf-8?B?bld6SHVPTW9GQ1Y4NE16WjJlbmNjWUxuVklocCtaVjFodldtMzB6MFY2ZnVp?=
 =?utf-8?B?UXpWT3FlTWM5c29nTjgrd080eWs3cXFPVng2Y1RRblQ2OHpwbWdIQ1lXNzRK?=
 =?utf-8?B?VFBFVkVHVVJLN0d6L1ZWajFTNjBzTU5KZjB3U256YXNIRU1vQ3I4bnBLYVdp?=
 =?utf-8?B?TW15TytPT1RrMlRyR3VoR29TSnhxVnp3TEhRL2oxcFpzMVd4WDdSdm8zRkZK?=
 =?utf-8?B?bzZPaHBZb2lGeXdPTk1uaDlKK0xUMWpBaTNCb2RtTDIrNEluNXh5cFQxN0RU?=
 =?utf-8?B?OWI0Y2doZ0YvaFpMd2grOXFQNkVxQXlaZGRsMkZTSzlKK0JCZngxakR5ck1M?=
 =?utf-8?B?TE9TazN4RmZPN01YNi9Da0RQb3B2c1NEbnViVzlZbDlhMXVjNWVwc0JtWVZE?=
 =?utf-8?B?Nm5idWhtT2ltVzNDck0wajRVVzFDT3ZtTmtjR1dRMGVkVUlHaGU3eHlEeVda?=
 =?utf-8?B?TytGTkFSTlhpTURBSjVTZFZFeHpRaEFjdHJEdjBTSkVpU1RNdGNBdFBKYW9k?=
 =?utf-8?B?NjhCR3FXZk8yZVdjSDF5N1Y0V2E3MEZuVDNWc01CV2dyYitKUS9aR0dsa3hM?=
 =?utf-8?B?U3pITkMyNitEeUhBc05pOFFYa0Q0bnFRWG5BamhvVUQwL2VkcmRTWXJrK1Uy?=
 =?utf-8?B?UHduQVhEdFNUY3kwZ2ZZcklCQkt2Vk1qNVBueldHamg3dXFOTVB5a0t6SExp?=
 =?utf-8?B?amtQWFRRd1lzTm1URWFUTGZOQi9odnNrem95RlNIZmJKTTBSc0NQc1lnMGE1?=
 =?utf-8?B?dnNRY1VUbVF0ZmRaTm16aThvZitEbFNkcllVOXFaenA2VUVzbk9QdTJmTjd6?=
 =?utf-8?B?NW56cXBGMTNZZkdETTB2dUhkT1d5QUY4U0M4V3gwbEU2NXlLeWRqRjYrVmNK?=
 =?utf-8?B?SzFYdXhLT1A3UVN1N3paaHhZOGZnaVRnVVNYbG1ZZFovOTlsZDJaNXFvelcx?=
 =?utf-8?B?YUJTQlJMaW9xN3RDeGhhbG00ZzVOdmFmQ0JpdVpjMEpuNnNXYld2ajdOMGM1?=
 =?utf-8?B?UEkyc0NDVHRDQy9POGRRMURZUkIxMGhDTUh4R0hqRTZhb1RQV1JuOGI4UGdy?=
 =?utf-8?B?MFN6MTRncmVyeDR4VDltNlpiMGpmU2x1NHJMRVk0OXA5QkhaczVRQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f37833cd-29cd-4aad-ff0c-08de6b0bedc3
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 14:26:51.3231
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: lQipviM1le/oOZdpALes4MPQngxZb+X8040eKZxeo48q0nDUREIi1K3ewjgsE90ReYdmlUaL0T7idKT/rmkv/w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7639

On Fri, Feb 13, 2026 at 02:37:29PM +0100, Alejandro Vallejo wrote:
> PV-shim already has hvm_enabled optimised to false, but there's no
> reason HVM-only builds can't benefit from the same optimisation as long
> as we add a boot-time panic in case HVM support is missed. Many branches
> go away, some in the potentially hot switch_cr3_cr4.
> 
> HVM-only:
>   add/remove: 0/1 grow/shrink: 1/9 up/down: 1/-162 (-161)
>   Function                                     old     new   delta
>   arch_do_physinfo                              79      80      +1
>   hvm_enabled                                    1       -      -1
>   symbols_offsets                            30732   30728      -4
>   symbols_names                             108029  108022      -7
>   symbols_sorted_offsets                     60656   60648      -8
>   flush_area_local                             571     562      -9
>   switch_cr3_cr4                               311     300     -11
>   init_xen_cap_info                             62      43     -19
>   arch_sanitise_domain_config                  885     863     -22
>   init_guest_cpu_policies                     1270    1247     -23
>   hvm_domain_initialise                       1127    1069     -58
>   Total: Before=3797004, After=3796843, chg -0.00%
> 
> With hvm_enabled const-ified, it's fine to take hvm_flush_guest_tlbs()
> outside the CONFIG_HVM ifdef and remove the stub. They compile to the
> same code after DCE.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
>  xen/arch/x86/hvm/hvm.c             |  9 +++++++++
>  xen/arch/x86/include/asm/hvm/hvm.h | 30 +++++++++++++++---------------
>  2 files changed, 24 insertions(+), 15 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index 4d37a93c57..da56944e74 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -72,7 +72,9 @@
>  
>  #include <compat/hvm/hvm_op.h>
>  
> +#ifdef CONFIG_PV
>  bool __read_mostly hvm_enabled;

__ro_after_init?

> +#endif /* CONFIG_PV */
>  
>  #ifdef DBG_LEVEL_0
>  unsigned int opt_hvm_debug_level __read_mostly;
> @@ -173,9 +175,16 @@ static int __init cf_check hvm_enable(void)
>          svm_fill_funcs();
>  
>      if ( fns == NULL )
> +    {
> +        if ( !IS_ENABLED(CONFIG_PV) )
> +            panic("HVM support not detected and PV compiled-out\n");
> +
>          return 0;
> +    }
>  
> +#ifdef CONFIG_PV

CONFIG_HVM I think?

>      hvm_enabled = 1;

= true;

> +#endif /* CONFIG_PV */
>  
>      printk("HVM: %s enabled\n", fns->name);
>      if ( !hap_supported(&hvm_funcs) )
> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
> index 7d9774df59..dc609bf4cb 100644
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -261,7 +261,11 @@ struct hvm_function_table {
>  };
>  
>  extern struct hvm_function_table hvm_funcs;
> +#if defined(CONFIG_PV) && defined(CONFIG_HVM)
>  extern bool hvm_enabled;
> +#else
> +#define hvm_enabled IS_ENABLED(CONFIG_HVM)
> +#endif
>  extern int8_t hvm_port80_allowed;
>  
>  extern const struct hvm_function_table *start_svm(void);
> @@ -399,6 +403,17 @@ static inline bool using_svm(void)
>  #define hvm_is_in_uc_mode(d) \
>      (using_vmx() && (d)->arch.hvm.vmx.in_uc_mode)
>  
> +/*
> + * Called to ensure than all guest-specific mappings in a tagged TLB are
> + * flushed; does *not* flush Xen's TLB entries, and on processors without a
> + * tagged TLB it will be a noop.
> + */
> +static inline void hvm_flush_guest_tlbs(void)
> +{
> +    if ( hvm_enabled )
> +        hvm_asid_flush_core();
> +}
> +
>  #ifdef CONFIG_HVM
>  
>  #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
> @@ -498,17 +513,6 @@ static inline void hvm_set_tsc_offset(struct vcpu *v, uint64_t offset)
>      alternative_vcall(hvm_funcs.set_tsc_offset, v, offset);
>  }
>  
> -/*
> - * Called to ensure than all guest-specific mappings in a tagged TLB are 
> - * flushed; does *not* flush Xen's TLB entries, and on processors without a 
> - * tagged TLB it will be a noop.
> - */
> -static inline void hvm_flush_guest_tlbs(void)
> -{
> -    if ( hvm_enabled )
> -        hvm_asid_flush_core();
> -}

Is there any specific reason you only pick hvm_flush_guest_tlbs().
Given what you do with hvm_enabled you could probably generalize all
the dummy helpers in the !CONFIG_HVM section now?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 14:41:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 14:41:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231127.1536416 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vquMO-0006kG-0S; Fri, 13 Feb 2026 14:41:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231127.1536416; Fri, 13 Feb 2026 14: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 1vquMN-0006k9-U0; Fri, 13 Feb 2026 14:41:31 +0000
Received: by outflank-mailman (input) for mailman id 1231127;
 Fri, 13 Feb 2026 14:41: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=sK4J=AR=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vquMM-0006jv-88
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 14:41:30 +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 148addd9-08ea-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 15:41:28 +0100 (CET)
Received: from DUZPR01CA0020.eurprd01.prod.exchangelabs.com
 (2603:10a6:10:46b::16) by AM7PR08MB5479.eurprd08.prod.outlook.com
 (2603:10a6:20b:104::12) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 14:41:23 +0000
Received: from DB1PEPF000509FC.eurprd03.prod.outlook.com
 (2603:10a6:10:46b:cafe::14) by DUZPR01CA0020.outlook.office365.com
 (2603:10a6:10:46b::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.13 via Frontend Transport; Fri,
 13 Feb 2026 14:41:22 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 DB1PEPF000509FC.mail.protection.outlook.com (10.167.242.38) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10
 via Frontend Transport; Fri, 13 Feb 2026 14:41:23 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB8PR08MB5497.eurprd08.prod.outlook.com (2603:10a6:10:11a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 14:40:19 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9611.008; Fri, 13 Feb 2026
 14: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: 148addd9-08ea-11f1-b163-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=KAGKFJ8v5MCaiUH1cdAAUXi/qpQqMIeDtAdwdv5kqViJ4DNUa5ZdvN5CCYZMVrHbympZoC0hS3rNG/Tge5//98q/JKVXyEzb4Y5jPr7dSsQD+zShlSdJERLcbkgRR/uXG4XlnUXgv3pICGLZSXHHq3Qr/rfiDtvquSlzp7gMjSxaDqfPMfW+SKQf1vP8UrGMAB/vgM599SP6BIot//4plWCMTw28+z+2Nmb6pPAAj430If7kQKWoEJN015zrohZ93H00Yk2ofi6p9UGXqhTOoxfQbQWPz4wFpkczgW1hXBzofiMho5YrEFBJCYQpZHHBkETOfhvIrT/InArYi0gUsg==
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=yh61IHmoaj3NYO0VR+OOJDPjYEykwB85LGcyau9DzXg=;
 b=rpX1/00S1CkCkXu238BZAUBmxLz4K96GEQ0m2dYRZZR5preLq0AFRHy3LRnMo7TqTy9KghzQ32Q2cdJPa4kYVST2h78StTWuBDZrrz2Am8IDwOq0UJlgyYUeTXU9eMcoiWW2FXbqjUcAOlMh0+Ml4vvhNrth+y8XJpQPK1Lxr3/d/59ndjI4OAn0y0SW/Tj/yqJS+GeXkFs7KhDk3D+o3IdYJk2X1KBcYK+FeVepxnMfWXv+uHp+w7WYU2u4SqVvRKiprcZP6LnvdZHUbzsWZ+x/2RGBWOyYTJx0FQovN5DABQDk2C0cUdIMiw2eVDIYiDOoehDpvLjuwQL2Xv2M9A==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yh61IHmoaj3NYO0VR+OOJDPjYEykwB85LGcyau9DzXg=;
 b=dSLV4hUZ2grDBtKd6+vTAI8deKdwyu1G/rOtOl6k6CI4O+hLIuToqgz5ALZrSlmaqNaAy7ap3c1skywekXYLrQmvnFgB8GbQavfPYovu66KtbWTxptczCR53gH+QRq1pfITHe4sHuS7CM5AIE5y9ISTaT5PgrJbRoV579X8cQfM=
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=jpcYAwoKZF3gRyREN4Qyp79QPaR2E/IDmaG9yEcHp7xdnRk3XdDxuPkO8wGGYFR9nEFU7eS+DD3nxy+0sS/ju+evMRalpH9OshGrVUgsFOZrGMvEXOIE9ysDlv3NGvnONFfGAYQGSiHS8slCLkX8YjB4Q3bIB5Ijpl/ct7N7+SXl1p13aswZGKKeX4m0e2YOBXLAATcFUqF/O8ddGgcDRKKniszNPlwjhb3AM2yObzcA+YI0+O6zXTwngyzpqizog931oqtTpuvQopzjmNyuzt8FOA/hJ7vYYEnRL/V/3ms3XDXwRtUUNdlCnMIb0+LZeg5xACheWBfS2u5KhRZZzg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yh61IHmoaj3NYO0VR+OOJDPjYEykwB85LGcyau9DzXg=;
 b=n7znGVpIiGWde6Bg3Z7S9pLvl2bB937VhNm+R1BmJ+neRkGuoXUPD+32wDvNnzoGmCu9G14ZYdK9+63uTgf4V5qNrxA+e5UsCtIH7TpVN2J7AdA04UkkhsKquubFRsgrSpJe8qECqVM1JeNC2NPGr7V61uNobaWfQdj1+uzZiLYWdpmUg+nUcip0BOc1Opj6TVfsiInJxw5ECxpaCyDsvBxzRmk/EqynJDyYslLN2Ld79czkTIQuwdb0PfkJSm1o7WCFrXPlVtXwKJ/GY7OfF70Y7RSekjzRwNXFPYZVoB3HlFoO+haJfsOMm9RYYkb6mUqVRnonzlMnrRInoN/HNw==
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=yh61IHmoaj3NYO0VR+OOJDPjYEykwB85LGcyau9DzXg=;
 b=dSLV4hUZ2grDBtKd6+vTAI8deKdwyu1G/rOtOl6k6CI4O+hLIuToqgz5ALZrSlmaqNaAy7ap3c1skywekXYLrQmvnFgB8GbQavfPYovu66KtbWTxptczCR53gH+QRq1pfITHe4sHuS7CM5AIE5y9ISTaT5PgrJbRoV579X8cQfM=
From: Bertrand Marquis <Bertrand.Marquis@arm.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?B?Um9nZXIgUGF1IE1vbm7DqQ==?= <roger.pau@citrix.com>, Stefano
 Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH] xen/treewide: More typeof() -> auto conversions
Thread-Topic: [PATCH] xen/treewide: More typeof() -> auto conversions
Thread-Index: AQHcj3ZxSUXrVeHXGEa6KFGEAF7ktrWAzl6A
Date: Fri, 13 Feb 2026 14:40:18 +0000
Message-ID: <C13688E2-CCEC-4CE7-8D51-F8345066A4CA@arm.com>
References: <20260127101841.2213758-1-andrew.cooper3@citrix.com>
In-Reply-To: <20260127101841.2213758-1-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB8PR08MB5497:EE_|DB1PEPF000509FC:EE_|AM7PR08MB5479:EE_
X-MS-Office365-Filtering-Correlation-Id: 7bead2a4-7592-4a12-3b07-08de6b0df5e4
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?T1lnSWdKZ3FSYWV5NXNkMXRhSTh2OGlvNlA0OHovaW5QR0hmd25PemhMUWE1?=
 =?utf-8?B?dEdFL25rU0V6YlBSUVEzbEJ2bndySjBoSml6emZVWGNTNnd0KzdnVW9adWVS?=
 =?utf-8?B?UEVzM2lDZU1PU3J1SG1uazZ0THBzQ1JlYkExYkxhYm90OTFCOFdaODJaMjZi?=
 =?utf-8?B?TlpFY29KZFlXaGhWMXpqc1NmSFA0UGdKcngzVTFwYkp2VkZ0dWtITlUvSUk5?=
 =?utf-8?B?ODREUXRZTERmUTNySHFIK3F6QlA0Q29aWXJ1WXo4QlBXM05MbGt2YVVyUW8x?=
 =?utf-8?B?ZFYvcDI0d0JiY2swVmpKQnNzcmZyUzNrSU80bEdCbkRSM3Jrcm9GbFJNNTZQ?=
 =?utf-8?B?aWR5NVg5ZXRLRUV0UmFFT0NmTTJnOEQ4cFF2U1g1cUQ5NHRLWHhTN25PbFdn?=
 =?utf-8?B?Vy82cHJZNmhlTzYxYVVGYncrT1lFbmFUWGd1a2R4aVYyTElidVhJR2FVUE1H?=
 =?utf-8?B?SW5HZ0FlVjJ3OXc0MGp3cmxmYnZZUmZoSEgzV3AwYmJFUEg4c0tjWWJlN29L?=
 =?utf-8?B?clVkaHg5VktPZkhZdEJDUzlIblVwbGJNRHVBdnkvQmVGcVdLWWRFc09aYldQ?=
 =?utf-8?B?VXRjWGE5RGs4UFJDdnFnRk5tcURacUtjUnlkbVZuSC9CMkN4TjF2NWpLUnYv?=
 =?utf-8?B?azUyTXkwdmxkSXl5dncrUHB5UEljZU5HY2ZTWnRicks4NXB6K3lKT1FNU0Ez?=
 =?utf-8?B?cFNIZUg4aE1jUG9vZEVBZ1BBaU5KYmVVY2lFa05YbzFkbDZKMWdQZGFEVTZs?=
 =?utf-8?B?MG1Pd3piYkQ3bmdTSUZPYkdWUGdXOVdzSnZLNlo1dDRkQVlTdzNRRUtiQXNp?=
 =?utf-8?B?WWxFV01oNlNXeTk1ZlRCSDNrOHZqMmVMOUxJdm8weE01YWVZeXA4SGZld3J4?=
 =?utf-8?B?MjVQVGxHSW4zWmp5TkNpMUhjWEZXazVZTSs1MDRUK0hiSzJhWHVvVXY2aHJv?=
 =?utf-8?B?Qjh6Qm4rRkY5a0lXZk82UG45YnNuVHRTSjBnOEVhb0M0M2tuQTFhMDBGdWJG?=
 =?utf-8?B?U0xVTjZiQWZPMWQrU2c0WWMzTG5oUEg2aEhFczNYb1EvNy9tOHdLb3d4cWx1?=
 =?utf-8?B?T2pnSnFrbEFFU0FYMzE5QkowUmIxTDQ2SkhHbEk0dGxXS25qM0ozNjBFYkVa?=
 =?utf-8?B?YWRkOE9tZ0RjYk5TZnlWUG15ZUJZWjh5a2QxR3VDa2JVQXdRakdNZ0dwZkNZ?=
 =?utf-8?B?dFZXNHMvaE96Q1RMOVdOdnl6cVNxa0J0ZFFzcHlxaUkyODQ3cjB1WDcxTnFU?=
 =?utf-8?B?UzMyL3dhRGh6VkRidXNMRW1nYmVHMGxsVDV4anF1amtETk05STdvZFY0cUtB?=
 =?utf-8?B?RmF1cmVhZVNQenNRcDVSdE0wNnYxWFQ1ZXYrL09hb2FlNDB0QmJKZUk2VXJp?=
 =?utf-8?B?Tk5JUjV6YXpMcTlFdjBhRXJxR2o5OTF5Sy9zaEw4eHFqSWJsbnBTenZPTTla?=
 =?utf-8?B?M0djMUNsRkRTdysxZXdXNU5JS3Q3L0prTTF4bE1aWWpvZW9pZXhPNGJGdXBu?=
 =?utf-8?B?cld6RXgwOWhNVHFnZ3BiSWlSYkJmbkZQN0M0WjRpbzBuTjFnUzE4a3p5TkxF?=
 =?utf-8?B?Q3ZGa1I0d3JzakVRUkVDemh6dkN6RTk2TkNjNkl1eGpBV2FvclpIZXJ2QVVB?=
 =?utf-8?B?QWZwNE1Sbjk0RVpuOWlRb0RITUJNZDNZcXBkUmFpaUtmNDNZeVE4NlFWTDV0?=
 =?utf-8?B?ZVJVWTFPYXhUZm1aOFFrTzRVYUdsNW5pbTRBNVhNVU1HR01qOEM1Wi9sdWp3?=
 =?utf-8?B?MUVQRjNsSUl2cnF1K25sYU9SMlNVcElIbHBvTUxZOFlPbTFYMmN1bVBNZmlX?=
 =?utf-8?B?RlJMQnBuYVh3ZmFDWHg0RDltQW1rcnFORjdiNjlheVVrMkJZaGxTeFdUKzIz?=
 =?utf-8?B?dTE1bzZMUkROZUtETXBNc0ZEdGhqUVZ4ZUdRSklGTUowM2R4QkZpVHYzLytB?=
 =?utf-8?B?WkMxSjJmYWs2QVRvMzBIN2pUUUlwdE9VZDNmRzNtSW92d2UrMzAwWGpxcW9a?=
 =?utf-8?B?aGpFNlRvR2x6S0FOR2tyYWp2Vkh4L1lUQWNjVFRITUViRFpTWG94eUhVS1F6?=
 =?utf-8?B?VTRjajd4RU1TWmF2bTJyNWN2ZTcyQVJwWSsxVEx6emsrVGtYd3d3WXYrRURn?=
 =?utf-8?B?cWxFaDFieTJ0N0UyeHFhTTgveDV5c3F2b3JpandQWlpMdDJoNWtWNC8yeFV1?=
 =?utf-8?Q?jm5e7F3XUZn5B9fap34pNzE=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <17AD43AA2349DE4CA6B985CA57D920B7@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5497
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 DB1PEPF000509FC.eurprd03.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	a369ab99-7e52-4fb8-2946-08de6b0dcf56
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|35042699022|376014|14060799003|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UnJBU0ltUHZBd2pEN21wWXNoSzBjVGlEOC9JYkJ6ei94SnJIL0dLWjgvd1hN?=
 =?utf-8?B?VTF3UW40Nkk3TGd4OUxwMk9MOVRLRm13djNPNjZoNEdEVklPSzluRWptN0Ir?=
 =?utf-8?B?aE40YWREeDIxc0VVNE56cFU5ZHdqUHNBU0p5SjdveHVHMkQ4cVByemFKRHJu?=
 =?utf-8?B?R0lhZTc3MlBHMUFkdGtEYzI1ZkVZa3ZGRW5mSnJHRDlNRi8rNE5wZmF6bGVp?=
 =?utf-8?B?MEZGdTI5MlIxQytNZjZ6RGlNQ0luZ1RnWDFnbG9KSHZCa0FaWTBjZUhWUEFM?=
 =?utf-8?B?WHhYN1Mrc3R5dnJqMXp5QVpZbmdzQzRzWHYwTjVlYWFlY1FFUWQ5bDkwWWRG?=
 =?utf-8?B?Q0NkZnhWM1hWemZnYXNtSFhaV2hMeEFzVHNuUTRGM3FPM25qbHlxaXB1YXpM?=
 =?utf-8?B?Z2l3QWlxeHQ0WlJDTGgva2F1OUdtWXVqSXF6MEplZzMzdlRYWDE0bGhzQUNi?=
 =?utf-8?B?bTc4OUpBRFZXTk9oWVp1TjdiM3NRdGE0K0FjaW1ENXhrZ1YzaS9PeFJLa2RO?=
 =?utf-8?B?a2dSa29kdzg0YStOWlZDMmF3NUJRcWc4aGZmRkNWL2dWRXZ1UHRHTWx4VDlD?=
 =?utf-8?B?dmUwQVdndkQzMHZDa2tMODdVVm9XRlVzVnI4cnljb3B3MXd2N05FalpaaVJC?=
 =?utf-8?B?dmo0dWdxQ25SV0lHS3BJZVlxUkx0Mkw4NS8zSm1Ta1lnUDZuanFWSk8wS20y?=
 =?utf-8?B?NWxDL2VIVWxza21kQzl5b3R2VGYxSHBtd1IyR0tLM1VQTFo4NzRuaTFxZWlt?=
 =?utf-8?B?bXlWVCt3MDFuMHdZRDlyOHBxdUFUamhZa2ZQbGNMR2tZL3hWRllFR25lWUJq?=
 =?utf-8?B?MWU1VUovRDFpeDQwME5zazZ6L3VRSW9ZOGg3NlFOOUo1V2Z1OW1IM25iS1Vx?=
 =?utf-8?B?bi9DdHlwZnBGdVRzTmZsMU92RjVTK1JiL1k0NE9wcTEveDJmQVpLc0JNVkVv?=
 =?utf-8?B?cVg0RWZ0eFArRjRiZDJmMDdCU0hiTTBkaXlDN0ZWOU0zNUlCZ2wxa0Z5ekYz?=
 =?utf-8?B?dHZaOFF5QnA2eDNMcVlRc3lNQmVRSlhQaUVvV1dmeGVhUmh3M2FmUDJiRE10?=
 =?utf-8?B?TzFKTWYvbVEzNVkvU0o5aUl3aTVpWkZ5cXZTdE9hUzZCQ1RlS2podnByd0xD?=
 =?utf-8?B?YTlJZVREWjg2ZFBSME5maW5YY3gvV2t3aWQ5QllpT2RoY2VuWjYxWENjQ1NQ?=
 =?utf-8?B?bzE2cnBUMFg2NVFUYzJCVGNZWHFPUmo0ejJpY1NxMklQSGVaaDR6ZkFoWW9j?=
 =?utf-8?B?OWFUbWx6OWpRd0d4WDRJSWVPRFhRMEtNc3B3VFZ4NXNWb0t5Q2lnN0pJNG4y?=
 =?utf-8?B?ZU1qcE1ZWTFUQnBGMDdoVm56bXRtL2pHZGtRUlFCVWlUS3BhWmRHMEdjWnNk?=
 =?utf-8?B?Y2JtZHl2RHk3NXdNbVdJYVVjaG9uMVFaM3hiSFB6TEU2bDh2Z21CNmFIcE53?=
 =?utf-8?B?VkFHVFh1Q29OWHZsSWhCekZZdExBQVZERnpiOHUvNkJveGZPeW5jTy92YjBn?=
 =?utf-8?B?N0VlbEpja1pVVGxHa0ViZ0NreHVGVVFUbU1yeXlQWVczcGVRc1RuZXRuRTFt?=
 =?utf-8?B?eDllSUdtRlltbThVdUNUajJwdURiK1RqRHovNGZFQS9UQ29ENnAybnZqS3ow?=
 =?utf-8?B?M0puU2FHT29lUjk3cElpVzJjZVZOL3dWN3J4dW1CMXMrekZkM1pVWmhZRVRy?=
 =?utf-8?B?TXlBejcvK054R2M2Vm1DR3pHdzlIemlOdW5lcXplWGkrdy9mZk5iVW1WZkxK?=
 =?utf-8?B?Wmt2cldmMmNZOVRvelgzTVVyWVRqOFpSOVlnYXVwZUlSSis1Mjdlc3BGL0hZ?=
 =?utf-8?B?NDFyaStzcXZPYWswWVFsN1IyakJ0aUlxVzd2STFOalk4VTRDTWpsV2d2bDFw?=
 =?utf-8?B?bnpkVHhOUzl0bzlrZjF4UlNWN3MvbkQxcUxheUh1R0c4NFgxL1hVeTJGQ2tS?=
 =?utf-8?B?RDZWeGJocXBYOHNlWThVdCtwYlp0RDJPaGlTd2FWbVNLeVN0OVpnSzlFTGpL?=
 =?utf-8?B?Z3hCeHZ0MTFhTGNHMnZINkx4b0tFQmp5eEg1Wnh1bzBnYjIzTWVuV2oxdkpF?=
 =?utf-8?B?MXUzN1JZS3hYZlQ4ZUczcVlQV2VuTzhZNG5iOENlOWk3NW5xZmQ5ZE1uVWlO?=
 =?utf-8?B?OXNtUU02YkxlWGFlVUoxeGphcldXZElDeTMrdmU4NzJtcUt1ZC9aaXlocDUy?=
 =?utf-8?B?Rm4vZEVyd3NDTkpDOTNseGVBMlhqK25hMUxrcVRLMjNoUmZUb1oycnZyMVM0?=
 =?utf-8?Q?zhFOWYTMv3W0h2APCFOhMvicE9/lux9Td9SrbCXOH8=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)(82310400026)(1800799024)(35042699022)(376014)(14060799003)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	5kbEUYBOHoebZ1OASR7Hs9dVLI1ksdKRRrojIZMaI9S6H0k3py6CWtdjc+cszSl4iX9LCsWTpeRD9qefih9js8ZpZOyUT+JN3QAk6TaVwA7FubpnOffnCaaK61N0UNJZPs5jdDHzjMG4x5xHkoWY8eJ2unxcshKD1TORLFqoahETs+FInMSN9yyvFb7Z68rEt47+4S2HpC9121KHz0fQ+4Ffni26baBGRui36DF+CHijykDCyc20SyFQIjts1JtqJyNVxJVFOGSQzGxr2VaQW3M9kQ0XXjeYdlOORZY+tU08UXNagg63YZCWFBSy0YrESvThxipE3JQLNjOU39wckS5oJVGXarQRPRzbSoK2Zx6Yt31SG1cFMgyMh6uVS68mopPmPcMi8EfZJRzICoTGChfNNMK+JpBBJmtxXUbC/DEQiF1ig766amevX+3TN0ZM
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 14:41:23.6025
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7bead2a4-7592-4a12-3b07-08de6b0df5e4
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:
	DB1PEPF000509FC.eurprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5479

SGkgQW5kcmV3LA0KDQo+IE9uIDI3IEphbiAyMDI2LCBhdCAxMToxOCwgQW5kcmV3IENvb3BlciA8
YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4gd3JvdGU6DQo+IA0KPiBBbGwgb2YgdGhlc2UgYXJl
IHNpbXBsZSBjYXNlcyBvZiB1c2luZyB0eXBlb2YoKSB0byBhdm9pZCBtdWx0aXBsZSBwYXJhbWV0
ZXINCj4gZXZhbHVhdGlvbi4gIFVzaW5nIGF1dG8gYXZvaWRzIG11bHRpcGxlIHRleHR1cmFsIGV4
cGFuc2lvbiBhbHNvLg0KPiANCj4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UuDQo+IA0KPiBTaWduZWQt
b2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KDQpDb21w
aWxlcyBhbmQgYm9vdCBvbiBhcm06DQoNCkZvciBhcm06DQpBY2tlZC1ieTogQmVydHJhbmQgTWFy
cXVpcyA8YmVydHJhbmQubWFycXVpc0Bhcm0uY29tPg0KDQo+IC0tLQ0KPiBDQzogQW50aG9ueSBQ
RVJBUkQgPGFudGhvbnkucGVyYXJkQHZhdGVzLnRlY2g+DQo+IENDOiBNaWNoYWwgT3J6ZWwgPG1p
Y2hhbC5vcnplbEBhbWQuY29tPg0KPiBDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t
Pg0KPiBDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz4NCj4gQ0M6IFJvZ2VyIFBhdSBN
b25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KPiBDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxz
c3RhYmVsbGluaUBrZXJuZWwub3JnPg0KPiBDQzogVm9sb2R5bXlyIEJhYmNodWsgPFZvbG9keW15
cl9CYWJjaHVrQGVwYW0uY29tPg0KPiBDQzogQmVydHJhbmQgTWFycXVpcyA8YmVydHJhbmQubWFy
cXVpc0Bhcm0uY29tPg0KPiANCj4gVGhlcmUncyBhbiBvZGRpdHkgd2l0aCBTTUNDQy4gIDQgb3Ig
ZmV3ZXIgYXJncyBzdHJpY3RseSB1c2UgdW5zaWduZWQgbG9uZyBmb3INCj4gb3VwdXQgdHlwZXMg
d2hlcmUgNSBvciBtb3JlIHVzZSBhIGR5bmFtaWMgdHlwZS4gIEkndmUgbGVmdCBpdCBhcy13YXMs
IGJ1dCBpdA0KPiBsb29rcyB3cm9uZy4NCg0KSSB3aWxsIGhhdmUgYSBsb29rIGF0IHRoYXQsIHRo
YW5rcyBmb3IgdGhlIG5vdGljZS4NCg0KQmVydHJhbmQNCg0KPiANCj4gaHR0cHM6Ly9naXRsYWIu
Y29tL3hlbi1wcm9qZWN0L2hhcmR3YXJlL3hlbi1zdGFnaW5nLy0vcGlwZWxpbmVzLzIyODc1ODMy
NTENCj4gLS0tDQo+IHhlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9zbWNjYy5oICAgICAgICAgICAg
fCAyNiArKystLS0tDQo+IHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9hbHRlcm5hdGl2ZS1jYWxs
LmggfCA4NCArKysrKysrKysrLS0tLS0tLS0tLS0NCj4geGVuL2NvbW1vbi9iaXRvcHMuYyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAyICstDQo+IHhlbi9pbmNsdWRlL3hlbi9iaXRvcHMuaCAg
ICAgICAgICAgICAgICAgICAgfCAgNCArLQ0KPiB4ZW4vaW5jbHVkZS94ZW4vbm9zcGVjLmggICAg
ICAgICAgICAgICAgICAgIHwgIDQgKy0NCj4geGVuL2luY2x1ZGUveGVuL3NlbGYtdGVzdHMuaCAg
ICAgICAgICAgICAgICB8ICA0ICstDQo+IDYgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygr
KSwgNjIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1
ZGUvYXNtL3NtY2NjLmggYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vc21jY2MuaA0KPiBpbmRl
eCA0NDFiM2FiNjVkZWUuLjI5ZjExMjhiYzI4MyAxMDA2NDQNCj4gLS0tIGEveGVuL2FyY2gvYXJt
L2luY2x1ZGUvYXNtL3NtY2NjLmgNCj4gKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Nt
Y2NjLmgNCj4gQEAgLTEyOSw3ICsxMjksNyBAQCBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyB7DQo+ICAg
ICByZWdpc3RlciB1bnNpZ25lZCBsb25nICByMyBBU01fUkVHKDMpDQo+IA0KPiAjZGVmaW5lIF9f
ZGVjbGFyZV9hcmdfMShhMCwgYTEsIHJlcykgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC0g
ICAgdHlwZW9mKGExKSBfX2ExID0gKGExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQo+ICsgICAgYXV0byBfX2ExID0gKGExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQo+ICAgICBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyAgICAqX19fcmVzID0gKHJl
cyk7ICAgICAgICAgICAgICAgIFwNCj4gICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgIHIwIEFT
TV9SRUcoMCkgPSAodWludDMyX3QpKGEwKTsgXA0KPiAgICAgcmVnaXN0ZXIgdW5zaWduZWQgbG9u
ZyAgcjEgQVNNX1JFRygxKSA9IF9fYTE7ICAgICAgICAgICBcDQo+IEBAIC0xMzcsOCArMTM3LDgg
QEAgc3RydWN0IGFybV9zbWNjY19yZXMgew0KPiAgICAgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyAg
cjMgQVNNX1JFRygzKQ0KPiANCj4gI2RlZmluZSBfX2RlY2xhcmVfYXJnXzIoYTAsIGExLCBhMiwg
cmVzKSAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhMSkgX19hMSA9IChhMSk7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhMikgX19h
MiA9IChhMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8g
X19hMSA9IChhMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAr
ICAgIGF1dG8gX19hMiA9IChhMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiAgICAgc3RydWN0IGFybV9zbWNjY19yZXMgICAgKl9fX3JlcyA9IChyZXMpOyAgICAg
ICAgICAgICAgICBcDQo+ICAgICByZWdpc3RlciB1bnNpZ25lZCBsb25nICByMCBBU01fUkVHKDAp
ID0gKHVpbnQzMl90KShhMCk7IFwNCj4gICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgIHIxIEFT
TV9SRUcoMSkgPSBfX2ExOyAgICAgICAgICAgXA0KPiBAQCAtMTQ2LDkgKzE0Niw5IEBAIHN0cnVj
dCBhcm1fc21jY2NfcmVzIHsNCj4gICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgIHIzIEFTTV9S
RUcoMykNCj4gDQo+ICNkZWZpbmUgX19kZWNsYXJlX2FyZ18zKGEwLCBhMSwgYTIsIGEzLCByZXMp
ICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYTEpIF9fYTEgPSAoYTEpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYTIpIF9fYTIgPSAoYTIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYTMpIF9f
YTMgPSAoYTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRv
IF9fYTEgPSAoYTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g
KyAgICBhdXRvIF9fYTIgPSAoYTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCj4gKyAgICBhdXRvIF9fYTMgPSAoYTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCj4gICAgIHN0cnVjdCBhcm1fc21jY2NfcmVzICAgICpfX19yZXMgPSAo
cmVzKTsgICAgICAgICAgICAgICAgXA0KPiAgICAgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyAgcjAg
QVNNX1JFRygwKSA9ICh1aW50MzJfdCkoYTApOyBcDQo+ICAgICByZWdpc3RlciB1bnNpZ25lZCBs
b25nICByMSBBU01fUkVHKDEpID0gX19hMTsgICAgICAgICAgIFwNCj4gQEAgLTE1NiwyNCArMTU2
LDI0IEBAIHN0cnVjdCBhcm1fc21jY2NfcmVzIHsNCj4gICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGxv
bmcgIHIzIEFTTV9SRUcoMykgPSBfX2EzDQo+IA0KPiAjZGVmaW5lIF9fZGVjbGFyZV9hcmdfNChh
MCwgYTEsIGEyLCBhMywgYTQsIHJlcykgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYTQpIF9fYTQg
PSAoYTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gX19hNCA9
IChhNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICBfX2RlY2xh
cmVfYXJnXzMoYTAsIGExLCBhMiwgYTMsIHJlcyk7ICAgICAgICAgICAgICAgXA0KPiAgICAgcmVn
aXN0ZXIgdW5zaWduZWQgbG9uZyByNCBBU01fUkVHKDQpID0gX19hNA0KPiANCj4gI2RlZmluZSBf
X2RlY2xhcmVfYXJnXzUoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgcmVzKSAgICBcDQo+IC0gICAg
dHlwZW9mKGE1KSBfX2E1ID0gKGE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g
KyAgICBhdXRvIF9fYTUgPSAoYTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KPiAgICAgX19kZWNsYXJlX2FyZ180KGEwLCBhMSwgYTIsIGEzLCBhNCwgcmVzKTsgICAgICAg
ICAgIFwNCj4gLSAgICByZWdpc3RlciB0eXBlb2YoYTUpIHI1IEFTTV9SRUcoNSkgPSBfX2E1DQo+
ICsgICAgcmVnaXN0ZXIgYXV0byByNSBBU01fUkVHKDUpID0gX19hNQ0KPiANCj4gI2RlZmluZSBf
X2RlY2xhcmVfYXJnXzYoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIHJlcykgICAgXA0KPiAt
ICAgIHR5cGVvZihhNikgX19hNiA9IChhNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiArICAgIGF1dG8gX19hNiA9IChhNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KPiAgICAgX19kZWNsYXJlX2FyZ181KGEwLCBhMSwgYTIsIGEzLCBhNCwg
YTUsIHJlcyk7ICAgICAgICAgICBcDQo+IC0gICAgcmVnaXN0ZXIgdHlwZW9mKGE2KSByNiBBU01f
UkVHKDYpID0gX19hNg0KPiArICAgIHJlZ2lzdGVyIGF1dG8gcjYgQVNNX1JFRyg2KSA9IF9fYTYN
Cj4gDQo+ICNkZWZpbmUgX19kZWNsYXJlX2FyZ183KGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2
LCBhNywgcmVzKSAgICBcDQo+IC0gICAgdHlwZW9mKGE3KSBfX2E3ID0gKGE3KTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gX19hNyA9IChhNyk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIF9fZGVjbGFy
ZV9hcmdfNihhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgcmVzKTsgICAgICAgICAgIFwNCj4g
LSAgICByZWdpc3RlciB0eXBlb2YoYTcpIHI3IEFTTV9SRUcoNykgPSBfX2E3DQo+ICsgICAgcmVn
aXN0ZXIgYXV0byByNyBBU01fUkVHKDcpID0gX19hNw0KPiANCj4gI2RlZmluZSBfX19kZWNsYXJl
X2FyZ3MoY291bnQsIC4uLikgX19kZWNsYXJlX2FyZ18gIyMgY291bnQoX19WQV9BUkdTX18pDQo+
ICNkZWZpbmUgX19kZWNsYXJlX2FyZ3MoY291bnQsIC4uLikgIF9fX2RlY2xhcmVfYXJncyhjb3Vu
dCwgX19WQV9BUkdTX18pDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v
YWx0ZXJuYXRpdmUtY2FsbC5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZl
LWNhbGwuaA0KPiBpbmRleCBiMjJjMTBjMzIyODMuLjI3MDI0Nzk3ZjU4NCAxMDA2NDQNCj4gLS0t
IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2FsdGVybmF0aXZlLWNhbGwuaA0KPiArKysgYi94
ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vYWx0ZXJuYXRpdmUtY2FsbC5oDQo+IEBAIC0xMTEsNyAr
MTExLDcgQEAgc3RydWN0IGFsdF9jYWxsIHsNCj4gfSkNCj4gDQo+ICNkZWZpbmUgYWx0ZXJuYXRp
dmVfdmNhbGwxKGZ1bmMsIGFyZykgKHsgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnKSB2
MV8gPSAoYXJnKTsgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRvIHYxXyA9IChh
cmcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIEFMVF9DQUxMX0FSRyh2
MV8sIDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgQUxUX0NBTExfTk9fQVJH
MjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICAodm9pZClzaXplb2YoZnVu
YyhhcmcpKTsgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gQEAgLTExOSwxNSArMTE5LDE1IEBA
IHN0cnVjdCBhbHRfY2FsbCB7DQo+IH0pDQo+IA0KPiAjZGVmaW5lIGFsdGVybmF0aXZlX2NhbGwx
KGZ1bmMsIGFyZykgKHsgICAgICAgICAgICBcDQo+IC0gICAgdHlwZW9mKGFyZykgdjFfID0gKGFy
Zyk7ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgYXV0byB2MV8gPSAoYXJnKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICBBTFRfQ0FMTF9BUkcodjFfLCAxKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIEFMVF9DQUxMX05PX0FSRzI7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgYWx0ZXJuYXRpdmVfY2FsbE4oMSwgdHlw
ZW9mKGZ1bmMoYXJnKSksIGZ1bmMpOyBcDQo+IH0pDQo+IA0KPiAjZGVmaW5lIGFsdGVybmF0aXZl
X3ZjYWxsMihmdW5jLCBhcmcxLCBhcmcyKSAoeyAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihh
cmcxKSB2MV8gPSAoYXJnMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0
eXBlb2YoYXJnMikgdjJfID0gKGFyZzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+
ICsgICAgYXV0byB2MV8gPSAoYXJnMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiArICAgIGF1dG8gdjJfID0gKGFyZzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCj4gICAgIEFMVF9DQUxMX0FSRyh2MV8sIDEpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCj4gICAgIEFMVF9DQUxMX0FSRyh2Ml8sIDIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIEFMVF9DQUxMX05PX0FSRzM7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gQEAgLTEzNiw4ICsxMzYsOCBAQCBzdHJ1
Y3QgYWx0X2NhbGwgew0KPiB9KQ0KPiANCj4gI2RlZmluZSBhbHRlcm5hdGl2ZV9jYWxsMihmdW5j
LCBhcmcxLCBhcmcyKSAoeyAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnMSkgdjFfID0g
KGFyZzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC0gICAgdHlwZW9mKGFyZzIp
IHYyXyA9IChhcmcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8g
djFfID0gKGFyZzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAg
ICBhdXRvIHYyXyA9IChhcmcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQo+ICAgICBBTFRfQ0FMTF9BUkcodjFfLCAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQo+ICAgICBBTFRfQ0FMTF9BUkcodjJfLCAyKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQo+ICAgICBBTFRfQ0FMTF9OT19BUkczOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQo+IEBAIC0xNDUsOSArMTQ1LDkgQEAgc3RydWN0IGFsdF9jYWxs
IHsNCj4gfSkNCj4gDQo+ICNkZWZpbmUgYWx0ZXJuYXRpdmVfdmNhbGwzKGZ1bmMsIGFyZzEsIGFy
ZzIsIGFyZzMpICh7ICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnMSkgdjFfID0gKGFyZzEpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnMikgdjJfID0gKGFyZzIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnMykgdjNfID0g
KGFyZzMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRvIHYxXyA9IChh
cmcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRvIHYy
XyA9IChhcmcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBh
dXRvIHYzXyA9IChhcmczKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g
ICAgIEFMVF9DQUxMX0FSRyh2MV8sIDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KPiAgICAgQUxUX0NBTExfQVJHKHYyXywgMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcDQo+ICAgICBBTFRfQ0FMTF9BUkcodjNfLCAzKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwNCj4gQEAgLTE1Nyw5ICsxNTcsOSBAQCBzdHJ1Y3QgYWx0X2NhbGwgew0KPiB9
KQ0KPiANCj4gI2RlZmluZSBhbHRlcm5hdGl2ZV9jYWxsMyhmdW5jLCBhcmcxLCBhcmcyLCBhcmcz
KSAoeyAgICAgXA0KPiAtICAgIHR5cGVvZihhcmcxKSB2MV8gPSAoYXJnMSk7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhcmcyKSB2Ml8gPSAoYXJnMik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhcmczKSB2M18gPSAoYXJnMyk7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gdjFfID0gKGFyZzEpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gdjJfID0gKGFy
ZzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gdjNf
ID0gKGFyZzMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgQUxU
X0NBTExfQVJHKHYxXywgMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAg
ICBBTFRfQ0FMTF9BUkcodjJfLCAyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN
Cj4gICAgIEFMVF9DQUxMX0FSRyh2M18sIDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiBAQCAtMTY5LDEwICsxNjksMTAgQEAgc3RydWN0IGFsdF9jYWxsIHsNCj4gfSkNCj4g
DQo+ICNkZWZpbmUgYWx0ZXJuYXRpdmVfdmNhbGw0KGZ1bmMsIGFyZzEsIGFyZzIsIGFyZzMsIGFy
ZzQpICh7IFwNCj4gLSAgICB0eXBlb2YoYXJnMSkgdjFfID0gKGFyZzEpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnMikgdjJfID0gKGFyZzIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnMykgdjNfID0gKGFy
ZzMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnNCkg
djRfID0gKGFyZzQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRv
IHYxXyA9IChhcmcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g
KyAgICBhdXRvIHYyXyA9IChhcmcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCj4gKyAgICBhdXRvIHYzXyA9IChhcmczKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRvIHY0XyA9IChhcmc0KTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIEFMVF9DQUxMX0FSRyh2MV8sIDEpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgQUxUX0NBTExfQVJHKHYyXywg
Mik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICBBTFRfQ0FMTF9B
UkcodjNfLCAzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gQEAgLTE4
MywxMCArMTgzLDEwIEBAIHN0cnVjdCBhbHRfY2FsbCB7DQo+IH0pDQo+IA0KPiAjZGVmaW5lIGFs
dGVybmF0aXZlX2NhbGw0KGZ1bmMsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpICh7ICBcDQo+IC0g
ICAgdHlwZW9mKGFyZzEpIHYxXyA9IChhcmcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQo+IC0gICAgdHlwZW9mKGFyZzIpIHYyXyA9IChhcmcyKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcDQo+IC0gICAgdHlwZW9mKGFyZzMpIHYzXyA9IChhcmczKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQo+IC0gICAgdHlwZW9mKGFyZzQpIHY0XyA9IChhcmc0KTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgYXV0byB2MV8gPSAoYXJnMSk7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgYXV0byB2Ml8g
PSAoYXJnMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAg
YXV0byB2M18gPSAoYXJnMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQo+ICsgICAgYXV0byB2NF8gPSAoYXJnNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQo+ICAgICBBTFRfQ0FMTF9BUkcodjFfLCAxKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwNCj4gICAgIEFMVF9DQUxMX0FSRyh2Ml8sIDIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgQUxUX0NBTExfQVJHKHYzXywgMyk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IEBAIC0xOTgsMTEgKzE5OCwxMSBA
QCBzdHJ1Y3QgYWx0X2NhbGwgew0KPiB9KQ0KPiANCj4gI2RlZmluZSBhbHRlcm5hdGl2ZV92Y2Fs
bDUoZnVuYywgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSkgKHsgXA0KPiAtICAgIHR5cGVv
ZihhcmcxKSB2MV8gPSAoYXJnMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KPiAtICAgIHR5cGVvZihhcmcyKSB2Ml8gPSAoYXJnMik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhcmczKSB2M18gPSAoYXJnMyk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhcmc0KSB2NF8g
PSAoYXJnNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5
cGVvZihhcmc1KSB2NV8gPSAoYXJnNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiArICAgIGF1dG8gdjFfID0gKGFyZzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gdjJfID0gKGFyZzIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gdjNfID0gKGFy
ZzMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAg
IGF1dG8gdjRfID0gKGFyZzQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KPiArICAgIGF1dG8gdjVfID0gKGFyZzUpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgQUxUX0NBTExfQVJHKHYxXywgMSk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICBBTFRfQ0FMTF9BUkco
djJfLCAyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAg
IEFMVF9DQUxMX0FSRyh2M18sIDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KPiBAQCAtMjE0LDExICsyMTQsMTEgQEAgc3RydWN0IGFsdF9jYWxsIHsNCj4gfSkN
Cj4gDQo+ICNkZWZpbmUgYWx0ZXJuYXRpdmVfY2FsbDUoZnVuYywgYXJnMSwgYXJnMiwgYXJnMywg
YXJnNCwgYXJnNSkgKHsgIFwNCj4gLSAgICB0eXBlb2YoYXJnMSkgdjFfID0gKGFyZzEpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnMikgdjJf
ID0gKGFyZzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0
eXBlb2YoYXJnMykgdjNfID0gKGFyZzMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnNCkgdjRfID0gKGFyZzQpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICB0eXBlb2YoYXJnNSkgdjVfID0gKGFyZzUpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRvIHYxXyA9IChh
cmcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAg
ICBhdXRvIHYyXyA9IChhcmcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwNCj4gKyAgICBhdXRvIHYzXyA9IChhcmczKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRvIHY0XyA9IChhcmc0KTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBhdXRvIHY1XyA9
IChhcmc1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g
ICAgIEFMVF9DQUxMX0FSRyh2MV8sIDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KPiAgICAgQUxUX0NBTExfQVJHKHYyXywgMik7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICBBTFRfQ0FMTF9BUkcodjNfLCAzKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gQEAgLTIzMSwxMiArMjMx
LDEyIEBAIHN0cnVjdCBhbHRfY2FsbCB7DQo+IH0pDQo+IA0KPiAjZGVmaW5lIGFsdGVybmF0aXZl
X3ZjYWxsNihmdW5jLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1LCBhcmc2KSAoeyBcDQo+
IC0gICAgdHlwZW9mKGFyZzEpIHYxXyA9IChhcmcxKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcDQo+IC0gICAgdHlwZW9mKGFyZzIpIHYyXyA9IChhcmcyKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC0gICAgdHlwZW9mKGFy
ZzMpIHYzXyA9IChhcmczKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcDQo+IC0gICAgdHlwZW9mKGFyZzQpIHY0XyA9IChhcmc0KTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC0gICAgdHlwZW9mKGFyZzUpIHY1XyA9IChhcmc1
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+IC0gICAgdHlw
ZW9mKGFyZzYpIHY2XyA9IChhcmc2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQo+ICsgICAgYXV0byB2MV8gPSAoYXJnMSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgYXV0byB2Ml8gPSAoYXJnMik7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsg
ICAgYXV0byB2M18gPSAoYXJnMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcDQo+ICsgICAgYXV0byB2NF8gPSAoYXJnNCk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgYXV0byB2NV8gPSAo
YXJnNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQo+ICsgICAgYXV0byB2Nl8gPSAoYXJnNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICBBTFRfQ0FMTF9BUkcodjFfLCAxKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIEFMVF9DQUxM
X0FSRyh2Ml8sIDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiAgICAgQUxUX0NBTExfQVJHKHYzXywgMyk7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcDQo+IEBAIC0yNDgsMTIgKzI0OCwxMiBAQCBzdHJ1Y3Qg
YWx0X2NhbGwgew0KPiB9KQ0KPiANCj4gI2RlZmluZSBhbHRlcm5hdGl2ZV9jYWxsNihmdW5jLCBh
cmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1LCBhcmc2KSAoeyAgXA0KPiAtICAgIHR5cGVvZihh
cmcxKSB2MV8gPSAoYXJnMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiAtICAgIHR5cGVvZihhcmcyKSB2Ml8gPSAoYXJnMik7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhcmczKSB2M18gPSAoYXJn
Myk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5
cGVvZihhcmc0KSB2NF8gPSAoYXJnNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhcmc1KSB2NV8gPSAoYXJnNSk7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihhcmc2KSB2Nl8g
PSAoYXJnNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAr
ICAgIGF1dG8gdjFfID0gKGFyZzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gdjJfID0gKGFyZzIpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gdjNfID0g
KGFyZzMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XA0KPiArICAgIGF1dG8gdjRfID0gKGFyZzQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gdjVfID0gKGFyZzUpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8g
djZfID0gKGFyZzYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXA0KPiAgICAgQUxUX0NBTExfQVJHKHYxXywgMSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICBBTFRfQ0FMTF9BUkcodjJfLCAyKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgIEFM
VF9DQUxMX0FSRyh2M18sIDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9iaXRvcHMuYyBiL3hlbi9jb21t
b24vYml0b3BzLmMNCj4gaW5kZXggZTQ2ZWExZDNlY2Y4Li44NTlhNGNhNWMxMzEgMTAwNjQ0DQo+
IC0tLSBhL3hlbi9jb21tb24vYml0b3BzLmMNCj4gKysrIGIveGVuL2NvbW1vbi9iaXRvcHMuYw0K
PiBAQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCB0ZXN0X2Zvcl9lYWNoX3Nl
dF9iaXQodm9pZCkNCj4gICogQSBjb3B5IG9mIEB2YWwgaXMgdGFrZW4gaW50ZXJuYWxseS4NCj4g
ICovDQo+ICNkZWZpbmUgZm9yX2VhY2hfc2V0X2JpdF9yZXZlcnNlKGl0ZXIsIHZhbCkgICAgICAg
ICAgICAgXA0KPiAtICAgIGZvciAoIHR5cGVvZih2YWwpIF9fdiA9ICh2YWwpOyBfX3Y7IF9fdiA9
IDAgKSAgICAgICBcDQo+ICsgICAgZm9yICggYXV0byBfX3YgPSAodmFsKTsgX192OyBfX3YgPSAw
ICkgICAgICAgICAgICAgIFwNCj4gICAgICAgICBmb3IgKCB1bnNpZ25lZCBpbnQgKGl0ZXIpOyAg
ICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICAgICAgICAgICAgX192ICYmICgoaXRlcikgPSBm
bHNfZyhfX3YpIC0gMSwgdHJ1ZSk7ICAgXA0KPiAgICAgICAgICAgICAgIF9fY2xlYXJfYml0KGl0
ZXIsICZfX3YpICkNCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9iaXRvcHMuaCBiL3hl
bi9pbmNsdWRlL3hlbi9iaXRvcHMuaA0KPiBpbmRleCBhNGQzMWVjMDJhN2MuLjI0ODgyZmI0ODIy
ZCAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2JpdG9wcy5oDQo+ICsrKyBiL3hlbi9p
bmNsdWRlL3hlbi9iaXRvcHMuaA0KPiBAQCAtMjk5LDcgKzI5OSw3IEBAIHN0YXRpYyBhbHdheXNf
aW5saW5lIGF0dHJfY29uc3QgdW5zaWduZWQgaW50IGZsczY0KHVpbnQ2NF90IHgpDQo+ICAqIEEg
Y29weSBvZiBAdmFsIGlzIHRha2VuIGludGVybmFsbHkuDQo+ICAqLw0KPiAjZGVmaW5lIGZvcl9l
YWNoX3NldF9iaXQoaXRlciwgdmFsKSAgICAgICAgICAgICAgICAgICAgIFwNCj4gLSAgICBmb3Ig
KCB0eXBlb2YodmFsKSBfX3YgPSAodmFsKTsgX192OyBfX3YgPSAwICkgICAgICAgXA0KPiArICAg
IGZvciAoIGF1dG8gX192ID0gKHZhbCk7IF9fdjsgX192ID0gMCApICAgICAgICAgICAgICBcDQo+
ICAgICAgICAgZm9yICggdW5zaWduZWQgaW50IChpdGVyKTsgICAgICAgICAgICAgICAgICAgICAg
XA0KPiAgICAgICAgICAgICAgIF9fdiAmJiAoKGl0ZXIpID0gZmZzX2coX192KSAtIDEsIHRydWUp
OyAgIFwNCj4gICAgICAgICAgICAgICBfX3YgJj0gX192IC0gMSApDQo+IEBAIC0zMTAsNyArMzEw
LDcgQEAgc3RhdGljIGFsd2F5c19pbmxpbmUgYXR0cl9jb25zdCB1bnNpZ25lZCBpbnQgZmxzNjQo
dWludDY0X3QgeCkNCj4gICovDQo+ICNkZWZpbmUgbXVsdGlwbGVfYml0c19zZXQoeCkgICAgICAg
ICAgICAgICAgICAgIFwNCj4gICAgICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXA0KPiAtICAgICAgICB0eXBlb2YoeCkgX3YgPSAoeCk7ICAgICAgICAgICAgICAg
ICAgICAgXA0KPiArICAgICAgICBhdXRvIF92ID0gKHgpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgXA0KPiAgICAgICAgIChfdiAmIChfdiAtIDEpKSAhPSAwOyAgICAgICAgICAgICAgICAgICBc
DQo+ICAgICB9KQ0KPiANCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9ub3NwZWMuaCBi
L3hlbi9pbmNsdWRlL3hlbi9ub3NwZWMuaA0KPiBpbmRleCBjODE2N2E4YTI0NWMuLjBlNDc0MTQ1
YjQ3NiAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUveGVuL25vc3BlYy5oDQo+ICsrKyBiL3hl
bi9pbmNsdWRlL3hlbi9ub3NwZWMuaA0KPiBAQCAtNTEsOCArNTEsOCBAQCBzdGF0aWMgaW5saW5l
IHVuc2lnbmVkIGxvbmcgYXJyYXlfaW5kZXhfbWFza19ub3NwZWModW5zaWduZWQgbG9uZyBpbmRl
eCwNCj4gICovDQo+ICNkZWZpbmUgYXJyYXlfaW5kZXhfbm9zcGVjKGluZGV4LCBzaXplKSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAg
IHR5cGVvZihpbmRleCkgX2kgPSAoaW5kZXgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXA0KPiAtICAgIHR5cGVvZihzaXplKSBfcyA9IChzaXplKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGF1dG8gX2kgPSAoaW5k
ZXgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K
PiArICAgIGF1dG8gX3MgPSAoc2l6ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXA0KPiAgICAgdW5zaWduZWQgbG9uZyBfbWFzayA9IGFycmF5X2lu
ZGV4X21hc2tfbm9zcGVjKF9pLCBfcyk7ICAgICAgICAgICAgICBcDQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwNCj4gICAgIEJVSUxEX0JVR19PTihzaXplb2YoX2kpID4gc2l6ZW9mKGxvbmcpKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXA0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3Nl
bGYtdGVzdHMuaCBiL3hlbi9pbmNsdWRlL3hlbi9zZWxmLXRlc3RzLmgNCj4gaW5kZXggYzU3Y2Nl
YjNiOTYyLi5jNDkzN2U3ODFmNjYgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zZWxm
LXRlc3RzLmgNCj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3NlbGYtdGVzdHMuaA0KPiBAQCAtMTgs
NyArMTgsNyBAQA0KPiAgKi8NCj4gI2RlZmluZSBDT01QSUxFX0NIRUNLKGZuLCB2YWwsIHJlcykg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgZG8geyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
DQo+IC0gICAgICAgIHR5cGVvZihmbih2YWwpKSByZWFsID0gZm4odmFsKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgIGF1dG8gcmVhbCA9IGZuKHZhbCk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwNCj4gICAgICAgICBpZiAoICFfX2J1aWx0aW5fY29uc3RhbnRfcChyZWFsKSApICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgICAgICAgICBCVUlMRF9FUlJPUigiJyIg
U1RSKGZuKHZhbCkpICInIG5vdCBjb21waWxlLXRpbWUgY29uc3RhbnQiKTsgXA0KPiBAQCAtMzYs
NyArMzYsNyBAQA0KPiAgKi8NCj4gI2RlZmluZSBSVU5USU1FX0NIRUNLKGZuLCB2YWwsIHJlcykg
ICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAtICAgICAgICB0eXBlb2YoZm4odmFsKSkgcmVh
bCA9IGZuKEhJREUodmFsKSk7ICAgICAgICAgICBcDQo+ICsgICAgICAgIGF1dG8gcmVhbCA9IGZu
KEhJREUodmFsKSk7ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgICAgICAgaWYgKCBy
ZWFsICE9IChyZXMpICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgICAgICAgICAg
ICBwYW5pYygiJXM6ICVzKCVzKSBleHBlY3RlZCAldSwgZ290ICV1XG4iLCAgIFwNCj4gLS0gDQo+
IDIuMzkuNQ0KPiANCg0K


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 14:53:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 14:53:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231148.1536425 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vquXe-0000DW-2h; Fri, 13 Feb 2026 14:53:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231148.1536425; Fri, 13 Feb 2026 14:53:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vquXe-0000DP-07; Fri, 13 Feb 2026 14:53:10 +0000
Received: by outflank-mailman (input) for mailman id 1231148;
 Fri, 13 Feb 2026 14:53: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=dTkW=AR=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vquXc-0000DJ-QD
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 14:53:08 +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 b45ea372-08eb-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 15:53:06 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48370174e18so7010325e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 06:53:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483740be167sm35551195e9.15.2026.02.13.06.53.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 06:53:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b45ea372-08eb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1770994385; x=1771599185; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GW9BhnUi+3GSO+VDvDPMk6DYvpd7M20lrZfgxz4mOPk=;
        b=dYW/Au+YsshNT+m8SrUtwztEtRxwkGt3pmo3MRf/d0uwdvO78wTzdhuRxl1ijwYSGM
         hoKgkwr46OxpTQ4kgTjb74fBNZ1xCf4LatNRuY/7ZmO38J63sXOiy2+vzWBlTwYcNWZZ
         lm8UYllHxk3RX0FqSIpuZw1pa5CrIa2ZBiM3IcjLk51RfT0Yf3rOvYEUv7PX1JTDUIw8
         Cf1MhnzeonHkdM2EDeeh5bGRPm1JeNdOUp5Wjzj8lR4e08wgCICeUziQ/6r0GSNKSGpD
         2vXdfZ8dd3x7utVe2rcWyq6a/GqBXaWETtk5iLFaJZ3Hg9C0XRn1nND3pLNrSEPoGuRL
         C3fA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1770994385; x=1771599185;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GW9BhnUi+3GSO+VDvDPMk6DYvpd7M20lrZfgxz4mOPk=;
        b=nY+Rc7CxkX79gLGYh5Jot/1D6ImF+IweZiyzW3Fo3B+ls279Ov2MVj6MuTwth56tP/
         p3AOZbaRt1zst9p5iEkC7cYqULIdOWtme6JqDIMBhoU7LNS3NsWCmScvkj/X7O8FI9FN
         D2S47aDJO4SKGTRGBvJ2NaD+tAkxASZvuGRA75KN9PNmrFOPTHV/g4WSM5NUvFvyOVcQ
         XOwvJHqJqB2AT7n2Mk5pn3V0ByigcKcA/9nptemqOVxePz93kq2cUO+5lUHCbDOrXLK6
         +OJJ7QdylEwjVh4tS/GWtt/+5LrFJX7mqiH1MtgxCG/nS/W6k0zkH7SNiOj58R70IW3W
         IxBw==
X-Forwarded-Encrypted: i=1; AJvYcCWAKpm84rnNyY5cYaQJ9K9GTtlAYhmCPnJs0bQWjFVEnCHZaYIaJOfibpgQ/j7WwkqnS3Jx2lzIBv8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYByinHn5NbV9ze7dNK9lBqDx+DyIleu0G8UMcZqU8vJQe773V
	jUk38yE4/Zdo8Vw+qxJlgY6cvwTLCRZLF7V9o9UHoHHl8Zr2LzAtXQyqnOUluBdJVw==
X-Gm-Gg: AZuq6aKPjCRcT4hF/40c2CQuOc5/aHKnT72C3pjlY+hEzLOHD2Xlq+UFlYNZSGOnbYm
	RdWgsvqUd2XLa8oH4O1hW2uR2OGgD/4WjaKaI4cMY7Nx1NNP3zVJL+7K7JWgZst8ZvX1iiBfRL7
	CJm4jJ0lb+tFHFmPUTTXkh/czYr6PBAPkso3P7LCBC3Y+YUFMYwf9+Bi7+a/9qa+u82YHGh1Y+4
	dwTEWyvGZFjb+Y6/8NlxWlqOVwTO8HCMeI+bYdRWGgGJUUQT/B9jFAhCcB6pvhPiIfsqpljL+m+
	Fo33p+YOVeJFxFtUGridL+DlDenQprKokbF6CZXW5Qqgl4Lhwz0+yTLC3he2VAbX6fdEoQUYDGz
	PBWoRkccWGQUPpeFKl1IEHvRljKkH2hwXKRf1GriWB1Dv0le4UdA1FFMLrtusmx6YpGyQEmNcII
	7K34mvZlnR4s0FdTT7LKCcw4EK1Tvn1kU3VcS3VA0H5a4NLbk3mnoTEuynJ6Qdh9QyzTEzywjK1
	NPPkUG1Xf82BEZRLanOqzN0CA==
X-Received: by 2002:a05:600c:b85:b0:480:69ae:f0e9 with SMTP id 5b1f17b1804b1-48373a11cedmr34991545e9.16.1770994385466;
        Fri, 13 Feb 2026 06:53:05 -0800 (PST)
Message-ID: <54db82ee-0746-4490-82aa-7ddf03c38942@suse.com>
Date: Fri, 13 Feb 2026 15:53:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/2] x86/darwin: two extra fixes to placate build warnings
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: <20260213135614.25842-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: <20260213135614.25842-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 14:56, Roger Pau Monne wrote:
> Hello,
> 
> Following two patches fix the remaining two warnings seen on the x86
> Darwin build of Xen.
> 
> Thanks, Roger.
> 
> Roger Pau Monne (2):
>   xen/x86: fix usage of [[:blank:]] with BSD grep
>   xen: add non-executable stack note uniformly

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



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 15:10:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 15:10:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231181.1536452 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vquo4-0003SB-Kr; Fri, 13 Feb 2026 15:10:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231181.1536452; Fri, 13 Feb 2026 15: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 1vquo4-0003S4-H3; Fri, 13 Feb 2026 15:10:08 +0000
Received: by outflank-mailman (input) for mailman id 1231181;
 Fri, 13 Feb 2026 15:10: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vquo3-0003GY-WE
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 15:10:08 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10de676e-08ee-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 16:10:02 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6516.namprd03.prod.outlook.com (2603:10b6:806:1c7::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 15:09:57 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 15: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: 10de676e-08ee-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NXqx2K0mm67dkkUsNiYDyTwflynGJPxw6IUl8Qb5iMUWcJtsoNcKlPk9d5B5ru+bWEW7YaB2eVLqD15Osv5L1Oen/9sjQhJes1/+CZNwkQuL3gGhLIHdSfreL3Qauj1dgUjZuLCbYlDUx4PG/0pHMJ41nRlKSRHBjpWEi7YeiFrocj+AwcKRBAjhaQLtd4M/s4U3kZC9jQX+ivEAbhkvLfE86CBl/9AtphbctQcGw0oOu0ct0QeyZCV7pMHIqKDpLTaxGMMb2naaZYJ/dbDNG6FZLfOkkXUhB1+DDEBcmS7ctJh6c9wW+LLRZGDxgb71QonhYdACKaD2iKZ25iQXuw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=HKH977B7CzSSp9TTA9fJYskNi8ipOeBhUZbgOJo514k=;
 b=GPwcRmXWtq0JVwBGgoDmHGdic3+qYlhgaMi9GNdqtMUNbwfRfoNUaz403W1oz37iD1/mlnlshAGTedIMwAZjHuPrSrTdo105B4chH4K8vDV/Cw8rj1W+Ds2A8bJK4hsALLsSN2Qp/6VSQVxaOeujLiwyeLVnOkyYUqZWjDhs27kpH5akkIHbtKxLC0SFTgJXKnhnFoxzPfvc0KS1KvsxqcfBmNjbsLMui158O1L2FHclKZ6ENAOSPuVhbjclWq5upTotDXXn89dppMNi7TQzV4XypWiSbH/+b9gf+SIVOfDCwP8ZJZy7HnzBS7717G9PatHY2C3a+eRRj+LkvlhMdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=HKH977B7CzSSp9TTA9fJYskNi8ipOeBhUZbgOJo514k=;
 b=aKWrlPGzuA8OIqZVji7jO8kXtUTIgThfiUbyfUm3eNLuVFAKb1XOhOeJHi838eF9Pyu+FygKw4pbmDNB7PU21L6sx2KwS6NHKp3+bil2/z44FXaO4feMYfTOhKzWONiCD+H1fq/w1eWSs2yMuBUdzKNhjCrKm1QT3SVLJ0xtDWI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 16:09:54 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/2] x86: Force HAP to be enabled when PV and shadow
 paging are compiled out
Message-ID: <aY8-wlXW6Y90vvOv@Mac.lan>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-3-alejandro.garciavallejo@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260213133732.132326-3-alejandro.garciavallejo@amd.com>
X-ClientProxiedBy: MA4P292CA0013.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2d::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6516:EE_
X-MS-Office365-Filtering-Correlation-Id: 9341f54a-e3e3-47a2-284b-08de6b11f349
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QkRkSzZwb3FSYU5yOFhtblpINytDV2hHNmtDT1d6bndFN2RvVVdiYyt1eEhK?=
 =?utf-8?B?c3VZS1VGSVdPYU5obDFwZTQ3UURNT0M3czNBWW5sbndGTi9KVDc4ZFpYdnVX?=
 =?utf-8?B?T3BCWWJHODRpWGJLVXk3ZFBJK2lLZVN5cFhhY0gyUmVpUTBDemdPYVNOL3U4?=
 =?utf-8?B?bzZ4ZEQ4ci9nZFJXc2dPNktXdzBjNUp5SWk5UENnLy9lK1VhOXN2NGp5TU40?=
 =?utf-8?B?WGFjcEpBb3ZOSTN6Znd3YlRONlFab3dpQzIwQU5nL2l2TkpHTUtmdVhKa0VF?=
 =?utf-8?B?TFRZK2x3aldKOW5uUjg1cXltb05SbzMvVjRsUmtCZkhKbi9yYW9rZ3NvRVVW?=
 =?utf-8?B?TXFJQkdxc3dMa1JIeDh5TWVaNjZKL2EwOHhpa2l4clgwUDZkQlZQQ0F4SERl?=
 =?utf-8?B?WVFLOWo4ek5zRlhoRHQ1dFZjcnBhNWNNdXYxWWNNQWplWVllcTYybHpLcFhW?=
 =?utf-8?B?aDZXSTZ3TmhzdzNUdWUvdmxsL01uS3FXTUJSejJQNWhtUm1RakFzcXg1OUdo?=
 =?utf-8?B?NzMvY3NGU3crcm9JNlZPMXlUcUFMc1dMUVJiMjVFMmlkUjhIRklRcFFtY2hl?=
 =?utf-8?B?dW1uV0IyQWV4TzdMMFhDVHZGWW04cGY5bXl5R1ZzVk1EeW8xL1JTOEhDNmUz?=
 =?utf-8?B?ZnFWZ1hqcGxWM1BQWDY3cU4ycGFBeWF4c1d5ZFp6akgwL1N5L0RhSk1EbFdB?=
 =?utf-8?B?dEFLSE4wYittUmd2dW9iMVpQbjh2NDJFWUdlb29Da2JOenNpbDJJRlJCRkIv?=
 =?utf-8?B?VFJ0bERsakc2RHpkc3ZTUXlCZi82Y3pMa1Q2aVppYklkWVBCRVBTY1RjQTht?=
 =?utf-8?B?dUdBMDlCSHFLUHJxbTVyVzk4cFB1UGN1M2FrS0l5REswS2NJOWZEdDVOV3Y3?=
 =?utf-8?B?M3FjVXY4OUFUcFN6Y29ZeUd0TDkvODVVZCtJajQxcEJEb0x4ZFhIS3RPdDRO?=
 =?utf-8?B?aVREb2JNY3NuRUxQZjZvdWhLVGR2emJ2ckE0WDkrclFib2hHNmJjR2VjeGhO?=
 =?utf-8?B?TzkzSWN1b3dQWnI1THhJWVhhZllRdHFRL0h0SjdQakJvWHR3K1FmVlprUnBs?=
 =?utf-8?B?aU9iZk00SnNaZktjdHBCcUJHWjlXSERyaXUvS2R5Tkp4SnN0dWY0clFDMU9x?=
 =?utf-8?B?T3lsOFIxeDcwWkZySGxORTg4YTV3bW16dVc1SWFkSEgwQVVvZlhPMU9NbGhq?=
 =?utf-8?B?YW1MeXpLdzRNaExQOFdUVS9OUjhiOGdjaU9HTU4xNlMxd3l5SlNqWVpOOVFP?=
 =?utf-8?B?QTFCNUpKRWFxdy9GSzJVS0wwR1ZnWEJiQTA1eUNXdTZCVjNDZ1BsOG9pK1VG?=
 =?utf-8?B?Uk00cElGWlJZcWIzN3VXbEdoVVllTC9Sd1lzUEd1Wm1IVVA4WHppMXFxazBr?=
 =?utf-8?B?QzduSXdwaitpeXlBd2ZoUVVZSGNRczlJODdGQnM5TVdSSHNHZGFlMi9wTWJH?=
 =?utf-8?B?eGM4SUlvWXRwcG96TjUxL0xydmZkUzJnVUViZzJyVG0vN2kzdmR2ZjlVRnpG?=
 =?utf-8?B?Y1NEVUpsemRpOVdXMndaRmxNNk1ya1pWY1ljaU14a0ZBaVh6Vnc4d1VVVEpp?=
 =?utf-8?B?Mkw2Yml2eWF6bjNTQ1d6TkhWM0VTcXVJaTNWLzdxZG1OOU55SjByYlR4UWxr?=
 =?utf-8?B?bGFHNkppS0lrZ08zODVFRTNMTU9IYUhIM3hmRHZtc2hkQSs4WDJ5MlBjZjlN?=
 =?utf-8?B?NUtNNitKZ2VaQmpFRUNBZmIxU3UwUS80Rlk0dTY2L3ExRm9SL25kQWIxSlYx?=
 =?utf-8?B?dm91dUVqU2JqRXZRWUhTWjk4NnlCSG80Mit6cFFGb2MrTDIzV3hHVjczSCtK?=
 =?utf-8?B?QUwydkFPbzErWnRaaHFIM3p0cWF3YVVEM2I5WnpGWHE1N0hhaVN0YXUyREZS?=
 =?utf-8?B?NnVkM0NyNmJ6MCtYckhjN3JoSUd3djdJaDBnUlFuR0VRc2hjRDJYdExGYVFD?=
 =?utf-8?B?WnFkcmlTblpVa1B3Vkk2VEE5blEzUFU1enhtMUNZNTdHNURhOHdKbm54dGsx?=
 =?utf-8?B?LzYxZDdZV3pkeUd4Mk02cnh1NmpNb3hzVjhZbzZWUDVOMkE2Q0kxR1dBbXd4?=
 =?utf-8?B?Mzl1aU9DR1FsU3RWU2ZpQThkRm9RUkNqMHMzUzFaaGZDSHJqU3Z3VnRpNHJP?=
 =?utf-8?Q?cIFw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aUtSR0Z2TVg4U0wyNjJzdnNPaG4zNG5EeVRvVitkRzNrZGMxaEJoRlNYSFRK?=
 =?utf-8?B?YjBzcXVZOUduUWNyRmJPRERSdC9sVVBjMTVFRWhxb1RxaW1HNXZOU3lDL3FI?=
 =?utf-8?B?eFRRMnlQVWVGcTJLeklYaklpcU5TMEtxUzFqbUhQNHN4aEpCZUgvTWt1T3dn?=
 =?utf-8?B?d0l0b0kyV2hveVlxc2tRdHA5V0EvTWdmZDV1V2N6ZXZza1ZaQlloY0VRR0cy?=
 =?utf-8?B?ZWU4SmN5bTRUL1VlamRQeURaSXBoNDdlcnA0MThLSVFGWkFMQ3RQVkVhaDZh?=
 =?utf-8?B?VS9NVnpLUXlUT3lzSkV6bTBLNTJZdjBCWWxaRWw0SnArd1NWTVZYYmdhZklq?=
 =?utf-8?B?SURlZXVEK0NtcHMzTVduWG5zcnVRMW5aYWpEOG4zRTh3bEFZSndVL2NlMHlo?=
 =?utf-8?B?aENSMkNjNGFOVlhzR01PNVBpYnFVUWR0MnhmbkJTYlNtY0tqZS9LbnJpOWZS?=
 =?utf-8?B?UVd5d0RjU2U2ejJnaFh1dWl6S0huL1VGZ3JMcnVFeVhvVjNqZVJsdWlobXRH?=
 =?utf-8?B?cGxXVGtHUGZlOERSTnBWTXZ2YjBLaXVrWVRBSms4OFlQbGhkZXJ6aitpODVI?=
 =?utf-8?B?alpJRnl2OG16cDZSa05COGVoUitFUk1MZXYrMjBrME1JZWEyOXkzVzJXeXpy?=
 =?utf-8?B?Wklxc2tnaldHYVc4U1BpZUsvWmp6Wk02M1ZHTUp6a2xheDJiSmtZWDhNeWdP?=
 =?utf-8?B?bS95Q01xVjJpamU2RkRoSWhCUTZzWVJsb1lIZWl0YjBObWN0RHExdENCaFNE?=
 =?utf-8?B?MVUrUlVCcjRxYjdFeng2YjFHQUo1ZVdVaHFTajUxZFJndXZ2aDJnSU0zRmEx?=
 =?utf-8?B?ZDFlLzMzdUpWMFNLVmpXUlZsMnFmTHdrRXlqOFBWRWM2UEpRZzlaY2dETkI3?=
 =?utf-8?B?V2FQUENJVHZSRkhXR3RWVGZONEQvQlVHREt1NFhRZFJ2RVZucUM4QjVTcUdj?=
 =?utf-8?B?WUxYS09pMTFsMEN4bm5UdHVkd1ExTUlySWJNWk9CTFJHdXJtVTk5TDhxUEtv?=
 =?utf-8?B?Z3ZickJ0Ym5vQmxiR2Z3Zk4zSDNhdTJSR3RGTUNmakxETER5QUFaT1BNTFZY?=
 =?utf-8?B?QnpqQld4REdoMk5lU1RFQm1PUWhZeUxmY1F1VDVHSDZEOG80eUREckdoYlQw?=
 =?utf-8?B?eWdwWW1kZVVwblJjOXdLZW5vU2xESUJlck0yRGVLcEtKWVdjYUZGZDNCYjZm?=
 =?utf-8?B?M2xqWU1UQzJhcGxMRDYrRVBuZThBZE04K2taekVMLzRHYVhqZm1OQTBmSTkz?=
 =?utf-8?B?Rml3YThMbk50eXlLcGVJZmsydXZmNDE2MG5CL2dZbGFXMDlybVF1OGlMMDRy?=
 =?utf-8?B?eVVBREg0anhJclJDdHJnNThqVnp5T3doYjdleVlmWUVLVVFOZGtuMk5hbHVH?=
 =?utf-8?B?WTBQYkUzdkJGOW5ZRHlJWGF5TFpZTjVvakRrNll0MEJSQkw2b3ZQMGx2RElN?=
 =?utf-8?B?MEZIVVlrZnJmZnBZVHF6d2N5ZlVPNUhnWVAzR1g1YU5YMG1NM2YyeCt0MDFr?=
 =?utf-8?B?dnVCek9KNm1LUmlycWF6a3dmaDZkSnNwdUVKRFdORU91RjBzQ0psZEE5elJi?=
 =?utf-8?B?SDlVVlZ0b3ljeDJNV3BCblFodFNQT2FNby9yMzI3MlRRYllEcWd1dWlXc1Ri?=
 =?utf-8?B?eGhQd2J6SXBWbXYyTjVNQXNWT2dKdXNZajRlbG9hNG85c2lmbGI0SG11ZGto?=
 =?utf-8?B?SjlyZXZ2NzNlc0VnUUNlSVJXTDN1QUE2aDlHSStPU21CRGRNWWZsU2pURlQ4?=
 =?utf-8?B?Uy81MmRKcXY0bDJLbSs5ZmdOTit1OUNuOUl5Zkd5amlmVGltcy9XSlNha2Ja?=
 =?utf-8?B?NEIvQXYvNlJndGJmd3EzZzhYRUQ5WDNBZnhPSjE3Q0x0bElOUkk3VC9GNGpt?=
 =?utf-8?B?anFNa01wblNUSTFBV0l3TnFtTnRmdWtiMEVvWXBMSldkUkZoc3c2b2dvdmtx?=
 =?utf-8?B?cWVKZlVYblNrNkN2T1VXd2hDN2xVenM0a2F4emp4bDU3ZDc0RWpCV012YXo5?=
 =?utf-8?B?OGttNm83bjVrZUlKYlhkREYrMkltNVg3MnNkVkswU2gvdUZKbUxyRHQwTkQx?=
 =?utf-8?B?U0Q0bVFJNGg5MVA3VWNmWGU4Q2hyRHlmM21yN0RvZUpEZ1ZpQUlFU281NFEv?=
 =?utf-8?B?ZTY2OTV2anM5dlJRNXhqYjc5VnhPRUJPU3JLdzhqcEVjZ2swSW00RXFBRHhO?=
 =?utf-8?B?Z3ZndkxMQXNGaW9FZkgxWnU3eU9DWGIrcUdoQUp6VmtIQWZ3RytBQTE4dTVN?=
 =?utf-8?B?eG1WSHZYcUJuSGJqdUEvTkNqTG9INkNIVkhRSStIREZGY2xPWkU2WUk2M240?=
 =?utf-8?B?cG9jMEpBZWEzQXdNNEhBd29BRmd1c281bCtVdUd1cXJXcnFhaHN3Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9341f54a-e3e3-47a2-284b-08de6b11f349
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 15:09:57.5820
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mwCN2fz0cPdFtAoG1kBy8Bt3N4O+6lKR/mz2VYp+yPHO86QPHUIvNc9G29qi7xio1xZgTNGDvhL4HpB3r2p8UA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6516

On Fri, Feb 13, 2026 at 02:37:30PM +0100, Alejandro Vallejo wrote:
> Makes hap_enabled() a compile-time constant. This removes a number
> of hooks that normally go reach onto shadow paging code, clears
> many branches in a number of places and generally improves codegen
> throughout.
> 
> Take the chance to fully remove the shadow/ folder as it's now fully
> compiled out.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> ---
> bloat-o-meter against prior commit (defconfig:-pv,-shadow on both):
> 
>   add/remove: 0/12 grow/shrink: 2/31 up/down: 67/-1609 (-1542)
>   Function                                     old     new   delta
>   unmap_mmio_regions                          1340    1374     +34
>   map_mmio_regions                             211     244     +33
>   opt_hap_enabled                                1       -      -1
>   shadow_vcpu_init                               2       -      -2
>   __setup_str_opt_hap_enabled                    4       -      -4
>   _update_paging_modes                           6       -      -6
>   _toggle_log_dirty                              6       -      -6
>   _clean_dirty_bitmap                            6       -      -6
>   cpuid_viridian_leaves                        728     714     -14
>   iommu_domain_init                            291     276     -15
>   p2m_pt_change_entry_type_global              214     198     -16
>   paging_teardown                               91      74     -17
>   paging_set_allocation                        384     367     -17
>   paging_enable                                 76      59     -17
>   p2m_init_one                                 295     278     -17
>   ept_sync_domain                              201     184     -17
>   arch_set_paging_mempool_size                 437     420     -17
>   p2m_free_one                                  78      59     -19
>   paging_vcpu_teardown                          36      15     -21
>   p2m_pt_init                                  125     104     -21
>   p2m_pt_change_entry_type_range               218     197     -21
>   arch_do_physinfo                              76      53     -23
>   sh_none_ops                                   24       -     -24
>   paging_final_teardown                        134     110     -24
>   __setup_opt_hap_enabled                       24       -     -24
>   paging_vcpu_init                              41      15     -26
>   paging_domain_init                           167     141     -26
>   p2m_mem_access_sanity_check                   71      42     -29
>   hvm_enable                                   449     419     -30
>   init_guest_cpu_policies                     1247    1213     -34
>   paging_domctl                               3357    3318     -39
>   __start_xen                                 9456    9416     -40
>   arch_sanitise_domain_config                  794     747     -47
>   symbols_offsets                            29636   29588     -48
>   p2m_set_entry                                305     247     -58
>   guest_cpuid                                 1919    1858     -61
>   ept_dump_p2m_table                           817     751     -66
>   recalculate_cpuid_policy                     874     806     -68
>   shadow_domain_init                            71       -     -71
>   mmio_order                                    73       -     -73
>   hvm_shadow_max_featuremask                    76       -     -76
>   hvm_shadow_def_featuremask                    76       -     -76
>   dm_op                                       3594    3510     -84
>   symbols_sorted_offsets                     58464   58368     -96
>   symbols_names                             103425  103213    -212
>   Total: Before=3644618, After=3643076, chg -0.04%
> ---
>  xen/arch/x86/Kconfig               | 2 ++
>  xen/arch/x86/hvm/Kconfig           | 3 +++
>  xen/arch/x86/hvm/hvm.c             | 8 ++++++++
>  xen/arch/x86/include/asm/hvm/hvm.h | 2 +-
>  xen/arch/x86/mm/Makefile           | 2 +-
>  xen/include/xen/sched.h            | 3 +++
>  6 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
> index 2ce4747f6e..190f419720 100644
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -67,6 +67,7 @@ source "arch/Kconfig"
>  config PV
>  	def_bool y
>  	prompt "PV support"
> +	select OPT_HAP
>  	help
>  	  Interfaces to support PV domains. These require guest kernel support
>  	  to run as a PV guest, but don't require any specific hardware support.
> @@ -147,6 +148,7 @@ config SHADOW_PAGING
>  	bool "Shadow Paging"
>  	default !PV_SHIM_EXCLUSIVE
>  	depends on PV || HVM
> +	select OPT_HAP
>  	help
>  	  Shadow paging is a software alternative to hardware paging support
>  	  (Intel EPT, AMD NPT).
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index f32bf5cbb7..310e09847b 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,7 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
>  
> +config OPT_HAP
> +	bool

Can't you define this outside of Kconfig, like:

#define HAP_ONLY_BUILD (!IS_ENABLED(CONFIG_PV) && !IS_ENABLED(CONFIG_SHADOW_PAGING))

HAP_ONLY_BUILD is likely not the best name.  Maybe CONFIG_HAP_REQUIRED
or some such?  (Seeing the usage below)

FWIW, with the current naming I've assume this was supposed to mean
"Option HAP" or some such, when is "HAP is Optional".  We usually use
"opt" as a shortcut for "option" in several places on the Xen code
base, like "opt_hap_enabled".  I also think using it in the positive
for so the variable meaning "required" instead of "optional" makes
some of the logic easier to follow below.

>  endif
> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> index da56944e74..ce58632b02 100644
> --- a/xen/arch/x86/hvm/hvm.c
> +++ b/xen/arch/x86/hvm/hvm.c
> @@ -91,9 +91,11 @@ struct hvm_function_table __ro_after_init hvm_funcs;
>  unsigned long __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>      hvm_io_bitmap[HVM_IOBITMAP_SIZE / BYTES_PER_LONG];
>  
> +#ifdef CONFIG_OPT_HAP
>  /* Xen command-line option to enable HAP */
>  static bool __initdata opt_hap_enabled = true;
>  boolean_param("hap", opt_hap_enabled);
> +#endif /* CONFIG_OPT_HAP */

Hm, if you nuke the option like that, it needs to be reflected in
xen-command-line.pandoc document.

>  
>  #ifndef opt_hvm_fep
>  /* Permit use of the Forced Emulation Prefix in HVM guests */
> @@ -144,15 +146,21 @@ static bool __init hap_supported(struct hvm_function_table *fns)
>      if ( !fns->caps.hap )
>      {
>          printk("HVM: Hardware Assisted Paging (HAP) not detected\n");
> +
> +        if ( !IS_ENABLED(CONFIG_OPT_HAP) )
> +            panic("HAP is compile-time mandatory\n");

>From a user perspective, it's a weird error message IMO.  I would
rather say:

"HVM: Hardware Assisted Paging (HAP) is mandatory but not detected\n".

Not fully convinced about that wording, but I would certainly drop the
"compile-time" part of yours.  A user is not likely to care/know about
compile-time subtlety of the error message.

> +
>          return false;
>      }
>  
> +#ifdef CONFIG_OPT_HAP
>      if ( !opt_hap_enabled )

You could possibly do:

#ifdef CONFIG_OPT_HAP
/* Xen command-line option to enable HAP */
static bool __initdata opt_hap_enabled = true;
boolean_param("hap", opt_hap_enabled);
#else /* CONFIG_OPT_HAP */
# define opt_hap_enabled true
#endif /* !CONFIG_OPT_HAP */

Above, and avoid the ifdefs here?

>      {
>          fns->caps.hap = false;
>          printk("HVM: Hardware Assisted Paging (HAP) detected but disabled\n");
>          return false;
>      }
> +#endif /* CONFIG_OPT_HAP */
>  
>      return true;
>  }
> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
> index dc609bf4cb..b330d65d6d 100644
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -703,7 +703,7 @@ static inline bool hvm_is_singlestep_supported(void)
>  
>  static inline bool hvm_hap_supported(void)
>  {
> -    return hvm_funcs.caps.hap;
> +    return !IS_ENABLED(CONFIG_OPT_HAP) ?: hvm_funcs.caps.hap;

return CONFIG_HAP_REQUIRED ?: hvm_funcs.caps.hap;

IMO is easier to read (same below for the hap_enabled() early return).

>  }
>  
>  /* returns true if hardware supports alternate p2m's */
> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> index 960f6e8409..64fde82c50 100644
> --- a/xen/arch/x86/mm/Makefile
> +++ b/xen/arch/x86/mm/Makefile
> @@ -1,4 +1,4 @@
> -obj-y += shadow/
> +obj-$(CONFIG_OPT_HAP) += shadow/

I think you can use:

obj-$(findstring y,$(CONFIG_PV) $(CONFIG_SHADOW_PAGING)) += ...

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 15:57:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 15:57:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231239.1536461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqvXJ-0000IY-QY; Fri, 13 Feb 2026 15:56:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231239.1536461; Fri, 13 Feb 2026 15:56: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 1vqvXJ-0000IQ-Nr; Fri, 13 Feb 2026 15:56:53 +0000
Received: by outflank-mailman (input) for mailman id 1231239;
 Fri, 13 Feb 2026 15:56: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqvXI-0000IK-TI
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 15:56:52 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9945ccc0-08f4-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 16:56:47 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN9PR03MB5977.namprd03.prod.outlook.com (2603:10b6:408:132::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 15:56:43 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 15: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: 9945ccc0-08f4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Xkks1N7mb4Yb67jdkicJoKzhll2EvoB+zVvpVjpOQvrD9nRh4TmrCuSE8XW4JeDxvXGkuBUPcambPY43hndlg+uDbEYHvYLEGcbtO+Kdm6MbefTA6COlTf5mnN9IIrWKuhp3BsO3AnjR6UdQw7ZnUXb1CM0/BkCX1CsFgcIW6O7D1x91uTWmHGWKqBlMjDV/1MXDwv6VJ0PE6X6WaiAcBMEQ+/6i0naBurNO4zrkZE4HarWAUi+qYZGQlx+6FxPrSoSBdGBYGySgVabhpZa5K6evipLmeI/zpwiEDMmheR6yJPR6qRDoj33St/NQzL2lLOWVpscCLO3RwYEe/L0U1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZtwA6J6JnP5kzOs4VxtBq89OBcW3wn9L4AtBgiwkYkE=;
 b=xycoX5Yc0qbEhvMQoSXA/mp2muuaOIUh4QsdMpA3tBcHlC1HmL/SCnJCBXrXlYrYn3eMrLjD39TnBX+q5EDRdMg0qrRaelG3uPi1NI99yrxo4OoL7b0QHlfZBxmn4gkc6wWaw86gBsZv3zOV2SoBAo5zjtX4PxHrZ0ZZcrN4kJUXCQoErS+jww6isXZByKYhUVeMJ1YXVKnVQVNv8u6UHSVfdzxzhEdGcxCKHsJc5TLKJrUaYFLWBaQwLUHM4AGOkLDNHQqpdxYJwAbAUL00smnbnrsOLGc/S9o737fEsAW+QOoA3WQ6Ovo2rFfhqVK3seer3YfH6fkAnJDfyfJI4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZtwA6J6JnP5kzOs4VxtBq89OBcW3wn9L4AtBgiwkYkE=;
 b=QtzQFaArfNoZYraBnJ+0uisqIHCUJqzlE5IF+qHCf5oIrXCjWFtip30IZlClshDzx4txg71x1fCkRF2SYNostg+BmZlLQRNBBJVBoRFVOYwaS2V307JP2qAdKhkx7goQ1EKoQA7UQXC8via8kWofPcZk3yrVDtMfGuyjl5unybw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 16:56:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Cannot boot PVH dom0 with big initrd
Message-ID: <aY9Jt1-jCWhStcxB@Mac.lan>
References: <aY6iVr990vWeO2p5@mail-itl>
 <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com>
X-ClientProxiedBy: MA2P292CA0013.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:1::6)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BN9PR03MB5977:EE_
X-MS-Office365-Filtering-Correlation-Id: 433f4447-ef13-4e22-0186-08de6b187b4c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WGRRTVVSc1RqYk5BMGpTcUxvUjFQZ2JTUS9wWVJlUkF4K3YwYmpkNmg4dlc4?=
 =?utf-8?B?Q2Jrdll3Y0hMUlBZY2FraENNYWt2ZGNnTkYzNVNQSHd5UVdsdXhINFkzZ1A1?=
 =?utf-8?B?SE51K0VPM1J0akc5czRzT0FXN2pIODJlQ3Rjc2c3OGtUSmZoMzZ3U0dVNGFy?=
 =?utf-8?B?Z3YzSmFLQ0hOZDVwQ2VFb0IxVG9DTkViZjRnRGloY0IxZUFhdiswK09CejBG?=
 =?utf-8?B?Sk05QTA4Q0d1V2Z0aUg0amIwMC9vbGlZUjgxSytqTHhuakhSTisvZXZqWDhU?=
 =?utf-8?B?WXhvUEQ5ekk5bGxxRWQ5RVZaNHBYbGhkK0VqZ3gzYkhrTXNFSU5yTDlkQjho?=
 =?utf-8?B?dSt1M214eWRKL251VlhveEtNajEvdEZ3dWwvL3ZVWTJ3NnI5SS9sNzg1eTd2?=
 =?utf-8?B?RnRuc09zNHJ0SXYyZXVrNGhYenhCWTdkcmovMUlkWHdleHJ5VElVem9BcllF?=
 =?utf-8?B?OENiaWk4MUQ1VkM0R3FlZkdrK29pZG9NT3FRc25TdFBsWGNUeXVzTng1UnNH?=
 =?utf-8?B?MVc3L1JzbmpRcGErZitHN0F6cEIxeHo4bHJOTFV1TVZuTkYwK0N2aEZWcjhv?=
 =?utf-8?B?ZForY2pvSForS0ZWcXJuMmZweENIMitVK3V5dVAwRjZpVjZCNW1UWFlybGNI?=
 =?utf-8?B?aXgxcnpTRi9YRFdnYk5ieHVvMXdNdGsvaWdMMTlsYm5UaDVvWnNOQnpRdjVC?=
 =?utf-8?B?YVlJSDdnNjgrZlJCWlV5ZG5qZHZtMW9aUElWUzM5Sk1qTlFScElTY1JYdzZz?=
 =?utf-8?B?Z1Z3OUtaTktaYlRZT2hrK0xhQXE2blRZcU0vNUhZRWpLb0JWNFVTQjRWNnAw?=
 =?utf-8?B?bHdSSTVzNXJ6ZU40d1c2YitvdXliK2hWSmtSUlllSmViUDdOWEo2Um9mOWhK?=
 =?utf-8?B?blN2bUFsTjQyenorWkVXQzhIM1J4WFRqM0IwaUs4NmI4TFkxSW9TMzZXcWVi?=
 =?utf-8?B?am9TL3FUaXZFcG5SajNFYS9sMHkydXFySlgrS3M0TFN6ODdHS1NUNi9LOHRz?=
 =?utf-8?B?enlVZUN0OWxEMURpalpJeEpNOVRXM2l2TkhqSU1ka2orTmNTVEMwY2Vjbk1M?=
 =?utf-8?B?TU83MUx6bHBVOEJWWFpDTFN6WlhrSDZQclFGUlltTmlvWDh2b01yS2lDVUFz?=
 =?utf-8?B?cW13ZkpmZlNPMWU2VWZZTTdGL0hwdjRvMXpIRnA3d3FHMm1HOGF3ZUovbTNI?=
 =?utf-8?B?ZXZseUdhblQrZzY0QlowaU4vNmRnekN3SzBWU2ZiRzF0RXdyY3doUUlneGdh?=
 =?utf-8?B?ZTNBQWtXVXUxVmI2R2I4RkVCYkpmUFVvZWo0VExreGVoSDFSWjVtdzEwN25p?=
 =?utf-8?B?NEdxYk5xTjA4SjVTVHNNMEl4Q29LeDNnZUNKWithaDBDWUxQZFZDd3h4a0pq?=
 =?utf-8?B?OWNZQ0lmODRRRmpvdlhvdzRDL0FNb1JGekdJYmVKWldEVnlJSzZKZktTK25J?=
 =?utf-8?B?aTMxdFVCK000emNiNWxtRldqWVFwWUUvMWVJdVJONTZPclA0SXkxemtXSlo1?=
 =?utf-8?B?a2hiSFpYaklhbktyL042TWlhWTNtN3lHQ0lTVDM2dzltbVBVb3VTaUh3V1F5?=
 =?utf-8?B?YkNOWVY0Ris2WDBrWWFoM1BQeEJQM3Q5c3U1SU80V2xrSlNDSlpDTnZGRTlO?=
 =?utf-8?B?OWlQUEhKSUxUZFc2dTB5QTdPZEFDcktaTy9FZU1oUUV4RDA1SjVxd2JZRW1r?=
 =?utf-8?B?WGw4b2YrcFJGUldibFByM3hyM3AvS0VGU2JFKytTZmZpcDYvT2RVa2djYXZH?=
 =?utf-8?B?THFRNG1zUFpjTFp6Vm04bGYvR2hEYjhLWTJzVU5pN0UrNHBIWHpCVEJ5WFpK?=
 =?utf-8?B?VWQ3cDdvbXM3cWRxZGRvWjQxVVg0U1l4a00xU2dwdmpzdDlrWWJNQWhkVHo1?=
 =?utf-8?B?NUNYZUJ4TFMwdXFnTGdCeCtWdHkzaHNsdTBCQVpUenJEWlhvQXdNSGFMaEh0?=
 =?utf-8?B?dmp3V0VmSXV1clcrWVFnV3ZVUTgrcXF6eEwyVUNuUkZKVEt3aTMyZEVyZTk1?=
 =?utf-8?B?ckVESkNieXFZYTdZOHp2UngxdWxSN1dGR2tBMGJmbXlCZnREajhIelpzSmh4?=
 =?utf-8?Q?eoW3zP?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dk9CRUwxWDYvM2ptNjRuVFh2VGNudWoyWmt3Qnk0SC90MHRvY1M4d1VUOGl4?=
 =?utf-8?B?dkVxbmNGOHR3TS9mUytNTXFZVm1HaHlucFJuSEVwYlpFSzY0dEpYL0V6a0d6?=
 =?utf-8?B?MkxkRUJTaHlZOXNPUFhTbW1KWGxYOEJDdnBIVFFwaFU2enl0WHNiNnNBbUpW?=
 =?utf-8?B?N0o2Wk5zQWFiay96SWpjYWR2ci9uZjZFSzFJYlVZdkFSTVczS0hLV1hzWmtx?=
 =?utf-8?B?VG41NFFTbWwxZ3RubEp6ZXh4R3FzZHc3cCtBSjZtWTlKR3pQWXNmdWt0NEgx?=
 =?utf-8?B?Qk91WG5yTWl1SGQyQ3lHQzdQYitUVU1MQjFyVHBNL1BLQzFxajM5MkNDT3pG?=
 =?utf-8?B?YnlCblJhUWNuY1RpOVNPczhkcmdON0VSSTJ3VjN4OFI4bFJaRHJFRHdTUXBD?=
 =?utf-8?B?bjhxeFcwV3lEdGVDKzV6ZzJKNG1iUzdCV283Tzl4TUxSSllnQzNNaWQ1NEFG?=
 =?utf-8?B?dmZEZ2hrQUJLcFg2UWc4TW9EN2JNRXJIOTl5L0J4Wm03UDNVM1U3ckRndFZu?=
 =?utf-8?B?NUNWK3hiY0dZcXJ6MVk3TUFkUjZNWENKVUVRWFhVV2hFWUU1OVdVVDhCSDZr?=
 =?utf-8?B?UE9rNTAxVEplLzk1UHZsd1NyS1dpSHNIRmRqSllxUlp0YVJxQTdqRkNEckpM?=
 =?utf-8?B?TWMwN01YWHNWQWhrTWFJdUMxeERic0wwdVpIdTQ5ZnpzZWRXWUp0ZHZlOFcr?=
 =?utf-8?B?K1FmT0tIYjRkSGpYVXR4ZHl4cjdPbHlMOU0rbHRmSGFKTG9sckdFUWhmSUYx?=
 =?utf-8?B?Z0NQM2dPNjR0RWxUanQ1aDFDbFV6S2UvR3FKa3VQVjZGRUIzY2lwTTdJM0Nw?=
 =?utf-8?B?NnhTY09mM1AxdjhpWElVVHhQbzVzdnlrUERaa1k3eWhmaXJsMlYwVDdmOXhx?=
 =?utf-8?B?Y2dlajdvN3NRNmh5N2V2R2JDSVoxa2F4UWdwT2piZVc0V3dxQ3NaNkdyTWpB?=
 =?utf-8?B?RE11cHZvTWhSRDArZGJFTVg4UU53RnFtQkZFMWVwSytTYXA0cG9iVzdWeXRo?=
 =?utf-8?B?R0l1enZXdGZiUkxFOFdKSHpSZHVMQ3YvdjdGNmQzbUdXZkZlVXptQml2YmZk?=
 =?utf-8?B?WFE0d2kwUHJVOWdoNUJaUE4wMndoWE1DQWhmOUxlZ0FiOVJmTjdsSzN5dHZ6?=
 =?utf-8?B?RjJYTjdGNGlXejZRQ2dIQ2hESmlycjdkWURpMThUQUk2OEtaTkRrd201Y2dL?=
 =?utf-8?B?N3BaZEFmYjJnQS9NT1BUczFNYVdBZnpCSHdlbFErY09xdHJzR0hPa1k3NVh3?=
 =?utf-8?B?Y2NCc0cxVkoxcDJZYWpVWEgxSUtCMG02cE5HM093VFg3MEdUWVk1N0NjMzY5?=
 =?utf-8?B?MC9lRUtacE9TQ0k3M0MvQjUxblRKZXFvRlErRU5xckFRWk9ONEw2VCtaOWxm?=
 =?utf-8?B?UUNpYjlBNDBuY2M0TDFUZ1d6WnpwU0t0MDRqUEppTHpjM29xOUdESEg1TW5P?=
 =?utf-8?B?VXBERVhEOUlkVGhTeWRzeE05bUczODJQMUU3Yi9xOXZsdXhLVldJeUI3bFBk?=
 =?utf-8?B?TW9oYXd4ZEVTb1hXVFpXNXhWU0dpVjY5OUlNV2UvUEJyeTRzTDhFS0FBTmxC?=
 =?utf-8?B?ZTJtTklMcHNZYVpObzZqblFRc3JNbG9YdHZreGF1azd4YkJYMEZyWWY3SEM3?=
 =?utf-8?B?eldHR3NKWmtJOTR6OENXRThaQXVzOUpTdTdSQ2pPMC9Hck1QbHRTVG1kMXRT?=
 =?utf-8?B?aUYzWWtGODlJYnBVeTRVR29oWFdxdjhJV2hQTTg5d1F4bFdSUVVPdlRhbmFa?=
 =?utf-8?B?N2kzUU9zR0l6QnJhUzd5YUEwZ2dQK3JXV1o0OTNiN0UzenNTU3hvZHFLRFlU?=
 =?utf-8?B?ZFZYYm9yaGE1UXdwSUVXckpnaEQ2NGtWaDBLcGl1c0MyY1VpbnZLK2VuUWVF?=
 =?utf-8?B?US8xaEJzZ1U1aTF2K3dzeHZ3a1JUTVZqMThuTUFJL3FmWml0YzBsb1VRWitv?=
 =?utf-8?B?d3NjWDB5NmxqOUF6OUtBZHRaZTFPSmpyc2VqNzlhQVdJdlNKV1FOcG5ra2R6?=
 =?utf-8?B?eVFlT2s1cmpmYTgvMzN2U1ZSMDdhUE5hWDlKeUJCTFhUQkJ6RFV0OWJROERp?=
 =?utf-8?B?T1BCSjJBU3ZKOWhHdWRLWDEwTmRDMjlJRVI5UmRBNVRDRHJEcGZqOU9UL3Ex?=
 =?utf-8?B?UTViRFRQY3RqSXRzU0pSUG9hZ0psdW12d2h4anVPWjFKOTNXOElKQVVBVVpl?=
 =?utf-8?B?RmpqV1A1TnVXc2U2WitnMURlZWJ0NUZqeEprak1rZEFuNi9UMXJlTFYzaGtr?=
 =?utf-8?B?T3pXMmNQWGZ5bW9uU25mV05jdVphb1NXQzBiM0cxK2FIbytGcTI2dENscTA5?=
 =?utf-8?B?ZTdpSHJBZkcvSFJ1a0ZMTDR0NlR0QkJsTmhjNUg0RXhtdkFXZ0gzZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 433f4447-ef13-4e22-0186-08de6b187b4c
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 15:56:42.7505
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: mbZa0Fzjd2URfLlgvZcDXAKQ5EtCZ/eqhqvVBK0MeyC+RSRwSE3zuaKqqllDXda5XS8A2wTm9Qwyt+HJPC0Piw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB5977

On Fri, Feb 13, 2026 at 09:56:42AM +0100, Jan Beulich wrote:
> On 13.02.2026 05:02, Marek Marczykowski-Górecki wrote:
> > Hi,
> > 
> > After fixing the xhci crash, I hit another issue - booting with 236MB
> > initrd doesn't work, I get:
> > 
> >     (XEN) [    3.151856] *** Building a PVH Dom0 ***
> >     ...
> >     (XEN) [    3.593940] Unable to allocate memory with order 0!
> >     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
> >     (XEN) [    3.599884] 
> >     (XEN) [    3.602482] ****************************************
> >     (XEN) [    3.605272] Panic on CPU 0:
> >     (XEN) [    3.607928] Could not construct d0
> >     (XEN) [    3.610692] ****************************************
> >     (XEN) [    3.613463] 
> >     (XEN) [    3.616035] Reboot in five seconds...
> >     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.
> > 
> > Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f2899781755762f565
> > 
> > If I skip initrd, then it boots just fine (but dom0 is not happy about
> > that). 164MB initrd failed too, but 13MB started ok.
> > Just in case, I tried skipping XHCI console, but it didn't change
> > anything.
> > 
> > Host has 16GB of memory, and there is no dom0_mem= parameter. Xen is
> > started from GRUB, using MB2+EFI.
> 
> Hmm, yes, there's an ordering issue: Of course we free initrd space (as used
> for passing from the boot loader to Xen) only after copying to the designated
> guest area. Yet dom0_compute_nr_pages(), intentionally, includes the space in
> its calculation (adding initial_images_nrpages()'s return value). PV Dom0
> isn't affected because to load huge initrd there, the kernel has to request
> the initrd to not be mapped into the initial allocation.

Right, on PV dom0 we do not copy the image to a new set of pages, we
simply assign the pages where the initrd resides to the domain.  We
can't populate those pages in the p2m as-is, otherwise we would
shatter super pages.

I think the fix below should do it, it's likely the best we can do.
Can you please give it a try Marek?

Thanks, Roger.
---
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4fc..8e3cb5d0db76 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -343,7 +343,7 @@ unsigned long __init dom0_compute_nr_pages(
 
     for_each_node_mask ( node, dom0_nodes )
         avail += avail_domheap_pages_region(node, 0, 0) +
-                 initial_images_nrpages(node);
+                 is_pv_domain(d) ? initial_images_nrpages(node) : 0;
 
     /* Reserve memory for further dom0 vcpu-struct allocations... */
     avail -= (d->max_vcpus - 1UL)



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:01:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:01:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231257.1536471 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqvbt-0002TP-GN; Fri, 13 Feb 2026 16:01:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231257.1536471; Fri, 13 Feb 2026 16:01: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 1vqvbt-0002TI-Dg; Fri, 13 Feb 2026 16:01:37 +0000
Received: by outflank-mailman (input) for mailman id 1231257;
 Fri, 13 Feb 2026 16:01: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=v8h/=AR=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vqvbr-0002Sy-OI
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:01:35 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43f88e43-08f5-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:01:34 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH7PR03MB7297.namprd03.prod.outlook.com (2603:10b6:510:24d::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 16:01:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Fri, 13 Feb 2026
 16: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: 43f88e43-08f5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L4/f02YHtgSGKHn2D/U3wjv6hc0FZOOIau7NRhqk36Sbj3DCUjnu/+C0oYrwFpwSFDlgzXFITo+Sj7l/DQLdTpSxl2ePjWWMKxFLSPbMJbntG0QPDye23NKZQ1iZ2/rfGee5S09fDeFFEjZ+m10HR3WbpWsSpUcRNi1fYXi+YLuWMpYRsYj4RqODn0Im85iURdnjNAxqYnG32HJ63vR+su8KmmixAy4ujNjsl6v4exhp0F8Ji634SAAfJ5c6Nz6DCQgf6DMZMXquzNOl3v4TI2pFZFkOil3d/nw/w5FcXbBIgMTguBssSRujGLR2xtxVnMbBh5mMhd4/eTKiB0Qd6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=fLOphD0jur9UOiAHjMvOhmytlNXwdiOi5GDPDxuG8nA=;
 b=IFf0VG2ivLunTfeXlbT4bOAySame4tnfRJZjA/nIoGAlUBXrLxs+cXVjhffP47CEWH1ucqHjIe3efoI3K3fWZ2p9g0XICL0GrkublETWCVQNQwy1F6V2UuuMw30fIrfa+KKr15MF5hFp7sKLYAW8AyrlmKKsSWr5p1FxXgNGqHR4uvOKw/GSBNCvuJgUM5aMMDDbxev7ELhAuFq01SAGwzqLRpiwwiksBJ1BU3DaArLZqi0UYzHPWE+ZBOY0y8y6drdFehe0M0tfmE8wDfu27+K3J+i+IEK9USEghPuQk5J+7e7RZMT9vC7MRH4vzGbaa2BZT8pHov84sf43Dp2yEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=fLOphD0jur9UOiAHjMvOhmytlNXwdiOi5GDPDxuG8nA=;
 b=dynw6x48R6z+aB0sJiIYoBNl8ktEb1AsEXxbFfs/zxAYFY+nkJ6iws27xvruqbUb4aUW889y1hc3fkEAz5gBhPoaj5EP0sv0/393uI8UPIR3UQcM8dfrrFXEx5YOTeY9yzSDmdgXgcHBAn6C/+ufGFid0v3TG5eqQrSl/MD1XqY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1e4e20cb-71fd-4ed3-888b-7ca8b17175a5@citrix.com>
Date: Fri, 13 Feb 2026 16:01:25 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 1/2] x86: Make hvm_enabled a constant unless both PV and
 HVM are both compiled
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Alejandro Vallejo <alejandro.garciavallejo@amd.com>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-2-alejandro.garciavallejo@amd.com>
 <aY80qJVIZOjjqBOS@Mac.lan>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aY80qJVIZOjjqBOS@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0091.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bc::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH7PR03MB7297:EE_
X-MS-Office365-Filtering-Correlation-Id: fc44305b-dbc5-4b48-ed2f-08de6b192575
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?MW5UdnNHSis0UmVUVktaQzYrdk5RNzByQ25IeWovTHV1QkhVY0lOanJLRVN3?=
 =?utf-8?B?bmpCdEo2dURZbXN3Z0xXZDZGTXo3K29uMTZoYlFBTkVXNlhsZDVaZDM4Y1Fo?=
 =?utf-8?B?bDZMNmZ0YXFPWlJWeEVydXNsN05TYkMyTGpKejhZRjcvTEYxakJ1Nmk4Qmhp?=
 =?utf-8?B?clNuQWk0Zi9oclR0RzlNdVdKblROSXlBZnhjaEdCODlNazlRUzUyRXJLZzZX?=
 =?utf-8?B?R3Q0VS9WcWdYNTN3UmZMTU1iZEhkeDRFWkt0UHhQNU4wSkc3Mno3REcyZFZw?=
 =?utf-8?B?RzRrdjhiSGx5T1JuYTY5MDhYZSsra2JtRkRmNmdyMlErd1NoMWdFV1VXNENi?=
 =?utf-8?B?dENlMG5vbnZkUVU1RklMamx0aFJPSlZiSHZjUFEvZk9nTXg5WkdwL2sxZ2Rw?=
 =?utf-8?B?REhxekNrL3lNL01BRlU0STNLdHl1MW1FNVhnOTIxZlhZcHpCLzJSMGF5Vjl1?=
 =?utf-8?B?amxoMGp4RW5aRUdQcStheTlKdVFmSTE2bWdCWUJkVE8yU3dxejRhL2RhWXZk?=
 =?utf-8?B?cmdGVGd4KzhCVmF0bjRESU5vaWZYMUtuT1RkVitoUTdjaENXeEF0WkhJVnJy?=
 =?utf-8?B?N1RpL0psaVl3dU9iSHJOZFFVWXdVMXZrQWUyL241YmVHNUZGbHlmODl1ZkZa?=
 =?utf-8?B?QkhMbWl5MlVqcndWbFVwUG0zWjYrSGxHQXZNaVlMVm1wNEFzQXp5UEJQU25W?=
 =?utf-8?B?bVJBSmtFVXFZUnFzQk9SVU9xTEtJa0dFUzFLNVBweEs4a09WWG9Jb0QwYUdY?=
 =?utf-8?B?OWNOSGQ3ZTZVNG5nR01PTFB1cWU0RlVJbW5JQUtOcHBmVG5sZDNqN1k0eWRJ?=
 =?utf-8?B?OTUxTklQZjE2eWgyTERZSWtyS08yWGpkSTk4ck5YVFF0UXZ4L1dVN3NjSDRF?=
 =?utf-8?B?cXpQQ1hnSW80RWtFd1BjZDAyNkxuQkNBSzNhTUdNb0o2dG0vVkIrV0ltS3hX?=
 =?utf-8?B?eGNnSHBwTzYwdlVLQ05LNkxqOVhOcFVjNVAwZmxpZHlxYnpkV2NucThvQUk2?=
 =?utf-8?B?NVE5bFRhQXd1a1dydm12UzAwWVJZaDNvbWJSNUVLVjhKMEg1TEI2T2pQRWdI?=
 =?utf-8?B?aUk0cFB6RUYzWHVVWGtoYkhDbnR1SEJ0WVFhRDFEMUduZENvVk5JUHZMODg2?=
 =?utf-8?B?ODM4eWg1Q3hTdHVxZS9XdnYwZkUyN0txMWV4VVlTbkhBTkZLWW1wc2VPQ0po?=
 =?utf-8?B?RWp3dlU3T0xPTnBFTUtlZmNtMTdGbEkxS2NDOVVEeHVaYlA3ZlBzQTNQWHFW?=
 =?utf-8?B?cGFJWmlCZ3M4RUZrZE1hMFpmdXN1bnNVdVlEV2JhRm5Ncnc0Wm5POFg5czRP?=
 =?utf-8?B?cEJ4VjVVdHU3eWJrZWVyWjVrMmJiNUFQNjBlVXhPOHFHYXVTdERQWm5NdlZ4?=
 =?utf-8?B?UitZYVFmUVdtS0xPQUNzaGZDVHpXa2pCYzFwekEvbDVucFJubGV2ODVPR3ZG?=
 =?utf-8?B?SlhoS1hzTkN0eE5qc3BpZnYwQW5pRklld2hhVmxNczdQNk5DanFtam5sQmw5?=
 =?utf-8?B?RUk3VFZUYXpyLzNPWlR3QzlZNUpzdXJ5UWRCOGZtbjNOQ0lucndZR1pteEMz?=
 =?utf-8?B?dk9Xd3BQdVhtSmdWMjJzYUxKczhGRU85NGxJVkN4RVZYdkpJNXFza1pQeUo4?=
 =?utf-8?B?ZDk0cFRnU1FjeWJYaUJyV0tHNGl3ZWxpOWFUL2s5ZDRuU1ZjN25DN21RSUJW?=
 =?utf-8?B?VW1RN3RuYlMveG5vcURvT21haWVDK044Y3hYODhoekFDOUU5cGx4YjYyMlBk?=
 =?utf-8?B?ZHVrM3VwRUZSYVp1TkpZVjdMVjd2N0N3azJLSm5BUitPa3VYdWZxL1V0V012?=
 =?utf-8?B?OVRicEdZNWQxOXVReGZNSVU5S2xKMEhERXNEV3VmRnd4N0pGU3NER0ZIdkk4?=
 =?utf-8?B?ZEZaeXJPV0hDZDhQVFJ3bktRaUtkM3VpN2xLWFc3d015QU9peHc1SW5WLy9h?=
 =?utf-8?B?MDNSaU54dlJEMFJSYVhFWmNXeGZQcDVrTUVtWklmMzBSL0pmTE5OR2R4NTNC?=
 =?utf-8?B?M3JMRTRTcXJ1Tjg0TlZHN0xZTEFMbmF3dmhOM1dvMC9iT0FjOEhack9KTTJh?=
 =?utf-8?B?bFJNdkFrbFphUElnVnBieXJ3emJhVTFiQzVzSmFoQWhvbHRJeHV1T0NkdHI2?=
 =?utf-8?Q?8PxU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U3Q2NGpkQThqazU2TmFMdlNTbE5jTWNYUFZ0am9SQ1RVV25CTVpFaUY4N0ov?=
 =?utf-8?B?K0hNZFFxMFNvNk5aUGJUeGpGenl1UmFieDhQUyszK1FSMGdMYVVwRy9zWGU4?=
 =?utf-8?B?a09ESTNqNWZmVERDcGUxblZMSHUwSzRzdWFpV0VvRFh0K3VoQ0h1V2xaMnE2?=
 =?utf-8?B?WVBra01pOUpwSlBSNmtVdFhDaTNjejN0RDFXN2ZYeUhWenY5YW1XbFVaTmxR?=
 =?utf-8?B?MElGdkRLbG1tZFk3WitOZjdkZUVRRkhKTEFkU3E0U1VaMHVqdGI1NFNVR0I4?=
 =?utf-8?B?UUJqdGJNZTJ6MWxIOFF3Uld3MVVIUE02Y1QrRTF0MW5JbVBkc0ZZWlJvNUsw?=
 =?utf-8?B?NnNnRTZ0Z1VVMzJrejkxY0MvWmJxeGh0QTZLZkpsWWoyTVJTRHovWFkyNVRl?=
 =?utf-8?B?TW9xMTJTdERoLzU5TmFOQmpjWGpQTWJOaDh2OS9FMm13cWc5OWpKRXVjVWx1?=
 =?utf-8?B?SUJXNlZUT1lqbnRzNXo0NHViTE5pdlNwbU5KY3JKRnRoeHA1SDYzTitpU2RU?=
 =?utf-8?B?TVhHcVVUT2FJU1ZHS3h1M3ZRZS9UNXJJbEJaNE1nS3E2cysxSnVlR09Bek4z?=
 =?utf-8?B?TG5SbUhITytaTVh3OHRKeFphbTNQOE1LQlNLbHNaVm5xSmdXbGFHV1FIdkoy?=
 =?utf-8?B?REU1NnhXQU9oTjQycnd6WEFVaEdlQkR0NFo1OGhWeHhZY0EyZysxcHFKdEdB?=
 =?utf-8?B?T2xFQVoxNk5WaHNSU3NjM0tGWTVSRDZJZnNYZ1FBSkFuYnRrbFhFaDk5aER0?=
 =?utf-8?B?SVMvaFFKS3FVdnBBc3JNMGlITDBqL1dmZ2F6S1YrZnNiSy9TenJVcmtSN1dI?=
 =?utf-8?B?RHhIdmxuMThwblZUVWtUV3hoVCtNNmZWamdxOGFNbW9BMmNXYkJHSGh1TjdM?=
 =?utf-8?B?ZzFUVkU1b0RZN1ZsQlN3R3hnNlJ1cFowRTN4ZWVvVk8yS1lRZWphcDlEVldG?=
 =?utf-8?B?VTFibFRSTzBYNmRnQSsyQWc4WFVNZEZqb04yT0VVbDFlMFNpQTU4STViYjhJ?=
 =?utf-8?B?cE5Sa2RWYjB5N0RsQ3hLZ2c3S0VyUmI3L3ZoSjZOR2tCV1pyK2pFWUMydTRk?=
 =?utf-8?B?V21Rd0JkWXJmRW5tMWhQa240WTI5WWpSOGhGVjBqVTFKdS94VXZRYU1SUm1u?=
 =?utf-8?B?V2xuSVljZXVBc2cyQm1xTUtKUjBxR2Zpc04zdUtjWHJKSDA0OFdJclpKZGh0?=
 =?utf-8?B?OWdRelhMY2hMS3JZS3pXbmYzR1lJSHVZbHdwRG1wYUZlQlgwa3lZU1NHVEl5?=
 =?utf-8?B?dFFJTjRGWmRIdU93eEljZDBwSHd0Tk5OZUhxTThZSmkxclAzR2dHdVFhV0lD?=
 =?utf-8?B?ek1kT3AxbkdZMnExdGEzZHNVa1BBNDlBRVYwWkgwcHhOUUlnWjQ1c0ZVN2Vu?=
 =?utf-8?B?MkR3eWtRRjlLckIrZEJsWVZFMUVjNVdFZHJTTGpKcjlPcnRwYUtucmFRRlFN?=
 =?utf-8?B?T2plODcyc1JEREJCc1JXVVdGa3NLdTZiaUVKbDJGTXp1bVJLZVE0VmUvSUtU?=
 =?utf-8?B?L1FwSFd2cE1pSmRRd1ZlaGs2bStQSmYwQjJaOHk3U0E5M3g5SlhKak45R2pa?=
 =?utf-8?B?bVZXTkpJci9qellOcXZCK2llODRHNWNHRTNrK3lSNE5WKy9aTVNuMTBxVVpZ?=
 =?utf-8?B?RW5JT2lObU5rT1RNMmlXZnBoelJrM2RRVzQ5R09mMERCNit5N3Z6RTV0WXJX?=
 =?utf-8?B?VHc5dXc4NVBpa1VPTXRiSDNZNnVBMXVYSEJ5MTQ2aHhoWUc4dUJzME54Z3lE?=
 =?utf-8?B?MWJIbFVoYnpkQWRZWEZVSk1EdVJTZlF4cDBWSEhWWGlNbGZsTzFYWXQwcG5D?=
 =?utf-8?B?Tmk1VzdHMFFyRGlkRkY4RjdVWU9yREpLNkI5Ykh5RkpOaDc4TDUyOWkxcm1M?=
 =?utf-8?B?Z1gxVVNHeWV3N2ppNjFDYWhEdS9iOFBWWlZrek11aEFuWnQxeHlNbDg4UlNN?=
 =?utf-8?B?ek5UQVZRdWRnb0kxL25sQllTM2lwdjM2OGhncjRYbWV6M3BTU05xNSs3U2xE?=
 =?utf-8?B?RG1OOFZmbjRiL3RnQXAxRkJTcFlDODlVeG9OUmwvTmVyMWZrN054M3ZDTTE4?=
 =?utf-8?B?QzVmdmovS1d4K3VRaytndlM5aWVsRUZsQnRUdlluZzF6ZDlmUUhvTUt2dmdY?=
 =?utf-8?B?RG1xTUx6cFU2dStJUHBNYlRuNkFqTlM4M3l1blB5ampyNTE1UEFNQTVMWDd6?=
 =?utf-8?B?STZYWm1MNlhqdjJqR0U4OVlyN0FWTFFsRHM5ZDcwNGdNS3EwTC9BdGFvTGph?=
 =?utf-8?B?R3BmVjhRcUhUcWRLcytoTWx3TzFxMDFFWFdJbHZ3SElnNVIvSXF0TlRLT0tv?=
 =?utf-8?B?dU5iRWlrTGdUVXNEa0ZZNStQRWtGdXNLQm1hTFBLaVIwQ3paT2Jpdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fc44305b-dbc5-4b48-ed2f-08de6b192575
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 16:01:28.2778
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SDbuwf3OwB2gZk27AmCQzb3PzBhCeL4Z965KxDggLhj+X662YcdiaiuVq1zqiVpOboenEbI4HFn1TRJfcfinc75WDIGJScmeUDvu629IGkI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB7297

On 13/02/2026 2:26 pm, Roger Pau Monné wrote:
> On Fri, Feb 13, 2026 at 02:37:29PM +0100, Alejandro Vallejo wrote:
>> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
>> index 4d37a93c57..da56944e74 100644
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -173,9 +175,16 @@ static int __init cf_check hvm_enable(void)
>>          svm_fill_funcs();
>>  
>>      if ( fns == NULL )
>> +    {
>> +        if ( !IS_ENABLED(CONFIG_PV) )
>> +            panic("HVM support not detected and PV compiled-out\n");

As with Rogers feedback on the next patch, this wording isn't ideal. 
How about:

"HVM support required but not available\n".

This is reachable for people who use cpuid=no-vmx,no-svm but they get to
keep all the pieces and the documentation already has a general warning
about this kind of stuff.

>> +
>>          return 0;
>> +    }
>>  
>> +#ifdef CONFIG_PV
> CONFIG_HVM I think?

No - CONFIG_PV is correct here, because we're inside an HVM-only file. 
It's the only case where this variable exists for real.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231310.1536489 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2d-0005ag-TL; Fri, 13 Feb 2026 16:29:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231310.1536489; Fri, 13 Feb 2026 16:29:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2d-0005ZZ-MN; Fri, 13 Feb 2026 16:29:15 +0000
Received: by outflank-mailman (input) for mailman id 1231310;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2c-0005Ws-6d
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:14 +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 21281e8b-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:29:12 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48069a48629so10258215e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:12 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 21281e8b-08f9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000151; x=1771604951; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9TfHO4ZBv8S5+fXcFeskWF2fV7HooHkCu0wCOijIOOI=;
        b=khab3WmcHIur70PgAG9nspbF2BN/xlbprsqw5Bvku9SUsdEOZaay6IsfAItfatKG2R
         puSTaKbGfBCS6LKWdRM54qCZ6MOB2/tLhC+SKYciooVaGdHHsplbaOfY2hOPBQZlxqlv
         aOczY6DdBH/R04T7LUr4fvTGQWfQg/IakqHbqn6OP+tt2smLLWFNDNwU7nMhRWJNsMt4
         gDxODKZu9a15HEzlzI34lzNJZTZ0n7VrULrlv/yehCKlMcajVFhjYLDgBhqNxfzHz9OD
         VPQ6C/icdxx9JPIZ7T91LMMqvzlRSWagKG12PJmWA6KuqQlWDK0PAs3v2/bA1U7mu497
         sRRQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000151; x=1771604951;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9TfHO4ZBv8S5+fXcFeskWF2fV7HooHkCu0wCOijIOOI=;
        b=seFfG6FZ49QE6vSmDPl07cQubwFlNdLquRKFBBZQp9WS7RHrS236dnjhb+y48MeDaK
         HMWx+kDJkuXzC0SC5jOqsfSbCiwxj703bZb2sW1E79XK0qWahXiFDWwvWOUd3DvQwZWd
         UUkE30sJtsxYUYe5kP1UwnB/O8/jKn3qxxPXuxy9T3KhWKREyOLtZtgb0Oq+Lul0bUb8
         DAf4i5KdGg5bnb0RYXr7GgTLY7bZwOh5utGjUtODsAoVQqEB8GZ4vYsbVyeiZAHyQ5P3
         oyMWeSE4N6wmdYR93dTAJ+dQJvOXhIgMdacAWx9MMJ3SiXa7bFzfYrPNVLzyO0hkZBd/
         ySZQ==
X-Gm-Message-State: AOJu0Yz4lovp5Wry9rXV8soz7LyFUJPr/RubBfYJuQCyk4/hi1k/4Rkj
	XHRXl7o8z1aEtjXAFKAZ4JRIya6yy/XCpgzFyNK7c96qugaIL4GJ3ZCrrQKXbtAc
X-Gm-Gg: AZuq6aJA9ZYH/QsOoaNHls5HdNacumC72hk9r5t8+iczqZv+jKTHO+cOSggHTKS7RKc
	Tma/itnBOm7EAEsidfM0gerldXrjqwLuXGYaGkAX6Rhokev+fiLVnlMk3Ni4EN68BbH/Q10ih1w
	3G011rITR9pj/YKVwe9/JVqbW7mLD+WMJ2INIABKSurCnh4E3nfLtrXj+ibSLQe7QwM4oBgtQxm
	Ib4NXk+Jt9tDtbU/xXRUPWMSd6CUA1u5SQcL5RPgi9XzMQLmZg7hcnOtw6rQzTwcH2B4iiZhxrF
	3+UGnfge/WNRqF1ifQ9WTcNhF6pyDDhULAlqaa0HVrq5T627o8G46KKy2ksw67FOrmi4yRQpz3N
	SUboOVJMf4oGwWswl6mbhsxUBPHsk/gOH85tsHSbnpwn8YWspTNR9rvfkX9Cd/EkDbKygSwO/y4
	gWscVWSahxZccoq3u9Q2r0Q0o36yZYK6ky1tKWhU1WYIYLJ6XOhFfovnO/eAbP3PlDhdTZauO+C
	PYT
X-Received: by 2002:a05:600c:34c6:b0:483:6ff1:18b with SMTP id 5b1f17b1804b1-483737bde90mr36700935e9.0.1771000151157;
        Fri, 13 Feb 2026 08:29:11 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 01/16] xen/riscv: implement arch_vcpu_{create,destroy}()
Date: Fri, 13 Feb 2026 17:28:47 +0100
Message-ID: <42534cb6aabf25cf551a13ae1288045e1ac08f9e.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce architecture-specific functions to create and destroy VCPUs.
Note that arch_vcpu_create() currently returns -EOPNOTSUPP, as the virtual
timer and interrupt controller are not yet implemented.

Add calle-saved registers to struct arch_vcpu which are  used to preserve
Xen’s own execution context when switching between vCPU stacks.
It is going to be used in the following way (pseudocode):
  context_switch(prev_vcpu, next_vcpu):
    ...

    /* Switch from previous stack to the next stack. */
    __context_switch(prev_vcpu, next_vcpu);

    ...
    schedule_tail(prev_vcpu):
        Save and restore vCPU's CSRs.
The Xen-saved context allows __context_switch() to switch execution
from the previous vCPU’s stack to the next vCPU’s stack and later resume
execution on the original stack when switching back.

During vCPU creation, the Xen-saved context is going to be initialized
with:
  - SP pointing to the newly allocated vCPU stack.
  - RA pointing to a helper that performs final vCPU setup before
    transferring control to the guest.

As part of this change, add continue_new_vcpu(), which will be used after
the first context_switch() of a new vCPU. Since this functionality is not
yet implemented, continue_new_vcpu() is currently provided as a stub.
The prev argument is going to be set by RISC-V ABI (prev will be stored in
a0) when __context_swtich() will be introduced and called from
context_switch().

Update the STACK_SIZE definition and introduce STACK_ORDER (to align with
other architectures) for allocating the vCPU stack.

Introduce struct cpu_info to store per-vCPU state that lives at the top
of the vCPU's stack.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - Update the code of arch_vcpu_destroy() by shortening passed vfree()'s
   argument.
 - Update the commit message.
---
Changes in v3:
 - Move declaration of xen_saved_context structure and cpu_info structure
   here as they are going to be used in this patch.
 - Drop separate zero-ing of arch.cpu_info as a memory for it is allocated
   by vzalloc().
 - Correct calculation of stack pointer in arch_vcpu_destroy() function.
---
Changes in v2:
 - Drop BUILD_BUG_ON() in arch_vcpu_create() as a check isn't very useful.
 - Use vzalloc() instead of alloc_xenheap_page() to use the larger domheap to
   allocate vCPU's stack.
 - Drop printk() inside arch_vcpu_create() to not have potential big noise
   in console as it could be that an amount of vCPUs is pretty big.
 - Use XVFREE() instead of free_xenheap_pages() as vCPU's stack allocation
   happens with a usage of vzalloc() now.
 - Drop stack field as it is enough to have only cpu_info as stack pointer
   could be calculated based on cpu_info.
 - Drop cast when v.arch.cpu_info is inialized as it is not necessary
        to have it.
 - Drop memset() for arch.cpu_info() as it is enough to have vzalloc().
---
 xen/arch/riscv/Makefile              |  1 +
 xen/arch/riscv/domain.c              | 58 ++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/config.h  |  3 +-
 xen/arch/riscv/include/asm/current.h |  6 +++
 xen/arch/riscv/include/asm/domain.h  | 24 ++++++++++++
 xen/arch/riscv/stubs.c               | 10 -----
 6 files changed, 91 insertions(+), 11 deletions(-)
 create mode 100644 xen/arch/riscv/domain.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index 1eb9ab090b48..caa1aac5b2f6 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -1,5 +1,6 @@
 obj-y += aplic.o
 obj-y += cpufeature.o
+obj-y += domain.o
 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
 obj-y += entry.o
 obj-y += imsic.o
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
new file mode 100644
index 000000000000..f5c624ac92c7
--- /dev/null
+++ b/xen/arch/riscv/domain.c
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/init.h>
+#include <xen/mm.h>
+#include <xen/sched.h>
+#include <xen/vmap.h>
+
+static void continue_new_vcpu(struct vcpu *prev)
+{
+    BUG_ON("unimplemented\n");
+}
+
+static void __init __maybe_unused build_assertions(void)
+{
+    /*
+     * Enforce the requirement documented in struct cpu_info that
+     * guest_cpu_user_regs must be the first field.
+     */
+    BUILD_BUG_ON(offsetof(struct cpu_info, guest_cpu_user_regs) != 0);
+}
+
+int arch_vcpu_create(struct vcpu *v)
+{
+    int rc = 0;
+    void *stack = vzalloc(STACK_SIZE);
+
+    if ( !stack )
+        return -ENOMEM;
+
+    v->arch.cpu_info = stack + STACK_SIZE - sizeof(struct cpu_info);
+
+    v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
+    v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
+
+    /* Idle VCPUs don't need the rest of this setup */
+    if ( is_idle_vcpu(v) )
+        return rc;
+
+    /*
+     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * return an error.
+     *
+     * TODO: Drop this once the vtimer and IC are implemented.
+     */
+    rc = -EOPNOTSUPP;
+    goto fail;
+
+    return rc;
+
+ fail:
+    arch_vcpu_destroy(v);
+    return rc;
+}
+
+void arch_vcpu_destroy(struct vcpu *v)
+{
+    vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
+}
diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h
index 1e08d3bf78be..86a95df018b5 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -143,7 +143,8 @@
 
 #define SMP_CACHE_BYTES (1 << 6)
 
-#define STACK_SIZE PAGE_SIZE
+#define STACK_ORDER 3
+#define STACK_SIZE (PAGE_SIZE << STACK_ORDER)
 
 #define IDENT_AREA_SIZE 64
 
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 0c3ea70c2ec8..58c9f1506b7c 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -21,6 +21,12 @@ struct pcpu_info {
 /* tp points to one of these */
 extern struct pcpu_info pcpu_info[NR_CPUS];
 
+/* Per-VCPU state that lives at the top of the stack */
+struct cpu_info {
+    /* This should be the first member. */
+    struct cpu_user_regs guest_cpu_user_regs;
+};
+
 #define set_processor_id(id)    do { \
     tp->processor_id = (id);         \
 } while (0)
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 316e7c6c8448..f78f145258d6 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -24,6 +24,30 @@ struct arch_vcpu_io {
 
 struct arch_vcpu {
     struct vcpu_vmid vmid;
+
+    /*
+     * Callee saved registers for Xen's state used to switch from
+     * prev's stack to the next's stack during context switch.
+     */
+    struct
+    {
+        register_t s0;
+        register_t s1;
+        register_t s2;
+        register_t s3;
+        register_t s4;
+        register_t s5;
+        register_t s6;
+        register_t s7;
+        register_t s8;
+        register_t s9;
+        register_t s10;
+        register_t s11;
+        register_t sp;
+        register_t ra;
+    } xen_saved_context;
+
+    struct cpu_info *cpu_info;
 };
 
 struct paging_domain {
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index acbfde79b5a7..c5784a436574 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -116,16 +116,6 @@ void dump_pageframe_info(struct domain *d)
     BUG_ON("unimplemented");
 }
 
-int arch_vcpu_create(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
-void arch_vcpu_destroy(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void vcpu_switch_to_aarch64_mode(struct vcpu *v)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231313.1536521 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2g-0006LC-19; Fri, 13 Feb 2026 16:29:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231313.1536521; Fri, 13 Feb 2026 16:29: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 1vqw2f-0006KU-R4; Fri, 13 Feb 2026 16:29:17 +0000
Received: by outflank-mailman (input) for mailman id 1231313;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2e-0005Ws-Dp
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:16 +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 23096eea-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:29:15 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-482f2599980so12670085e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:15 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.13
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23096eea-08f9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000155; x=1771604955; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=sFTZR6VEK+iEcNLXUgansIu4xb+JbI0KY9wblj0cuZ4=;
        b=CvbgeaSEAskkQJVXJ3FKdQgvdAbIZMtcK5SpxxMAW6SE5XO/vffLqCzrcMFM/bHC9M
         7XGGCqSJsDRp8/jtXfg1QHk8gqUI8ubP7KZhE7AExm+2rFZqmDDb1MFeua8owHO893zS
         SdAjcEhSmqhe8G77cxuUzh7n3Wb/RYA6mnjXE5yJbT7c90g2Kpe+rgqe6+3YLNAYX2E5
         QtJwWjahpfapMDlp+Zbho7YqqGzW0skaqbUvXf75AelloFD7unKdWZZ+z10HAvAPV1w8
         jAuRIA0zZihf0QqDS2KRXXYeluzp6UHzngCUEomJ+RcfL+HpC3TVp7r/+40z9erHidtY
         j2wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000155; x=1771604955;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=sFTZR6VEK+iEcNLXUgansIu4xb+JbI0KY9wblj0cuZ4=;
        b=d8OLzJleWUrJBp28ZD1cyBdytMQsWnAe5DlKBeQZVUE2gCGel4XohXkHTW7xIddUga
         fbwLhqWiyw8YwMl+JzFo2A5xQo8MbFJxtXpDxYSkwNxFutbk14cS1RHe75l4E6wYbQos
         prAHKRzR1vWrgHyjmzqPKmPkPcaScLORNSFyZZGw56DWP0y4RaEIdv+nFEy/0LhGLfIx
         HOFx5xkvcuQNeyqs/uk1Mt+l9wgkv2nTIc99xwxH7kHyry2UarOcVIQXBI1Y7wHJhwKj
         NrLkwzlw1YN9yGPDVI5iEjkSdxSu/BxcyYDnmvkcI3+7DW0ZtONmPp3i4tasOkn4k9bn
         DUAg==
X-Gm-Message-State: AOJu0YwTkhbasxl0lyesiJpXgpTGwYCx1hcKrcaB/jAF8/yM4QiAYV+c
	91BlnpELlf8PvPhAImAl5stdhaSwwpFawA8vWUghWZRscJB7gh0hfI8ruoWvn2nT
X-Gm-Gg: AZuq6aL8J+5PPnxbe6ZOJqNSN0f0WcJOBhlHxVCNBCdwE9p1+KcSOrDcd+f0X9AM7NS
	MBywZcAbJqfWaMFVmcicpvvNyIpRGuZlQGNfiOSmgceqcwRtHYrBijCn/4cUnQT5NK7orLpDRya
	SQF8cGc6vsvW3JKEpWgdBSbGN+c4rVKizDKxr/J8eVrF8l8Q2+TN4sCoHw4y4dT+6qieI+4Dl08
	e8LY3cP6pBRkxKEPjhQtZziUpowPL/+HugR0DerYFIQngTuKJV4BVNdVkwCysdNUbjDtNs2/LZ5
	GkHg3teNdKut5oRwo2X54BSabdg7Li4uqzACnnK3DzSJNaYV0AMp/Y4Sl8muQ4HDmbYPoQboN61
	j7wq5i0UepkYp5/bhRQYLy0e9oU+Kt0aP5DyfmUI77+u/mEJ4YHKHR3sFxELH1vJMGCKbMTN9qp
	nFze5mtsSli9eIiY5v7LduL4vQdP9CW6f0WFA7LhwWgw25KJ3aLogsMTpW2z1bnjvJDg==
X-Received: by 2002:a05:600c:34d4:b0:465:a51d:d4 with SMTP id 5b1f17b1804b1-48373a1611fmr43468945e9.6.1771000154460;
        Fri, 13 Feb 2026 08:29:14 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 04/16] xen/riscv: implement vcpu_csr_init()
Date: Fri, 13 Feb 2026 17:28:50 +0100
Message-ID: <7c58dfbac99694811e4276858b48baa211331229.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vcpu_csr_init() to initialise hypervisor CSRs that control
vCPU execution and virtualization behaviour before the vCPU is first
scheduled.
The function configures trap and interrupt delegation to VS-mode by
setting the appropriate bits in the hedeleg and hideleg registers,
initializes hstatus so that execution enters VS-mode when control is
passed to the guest, and restricts guest access to hardware performance
counters by initializing hcounteren, as unrestricted access would
require additional handling in Xen.
When the Smstateen and SSAIA extensions are available, access to AIA
CSRs and IMSIC guest interrupt files is enabled by setting the
corresponding bits in hstateen0, avoiding unnecessary traps into Xen
(note that SVSLCT(Supervisor Virtual Select) name is used intead of
CSRIND as OpenSBI uses such name and riscv_encoding.h is mostly based
on it).
If the Svpbmt extension is supported, the PBMTE bit is set in
henvcfg to allow its use for VS-stage address translation. Guest
access to the ENVCFG CSR is also enabled by setting ENVCFG bit in
hstateen0, as a guest may need to control certain characteristics of
the U-mode (VU-mode when V=1) execution environment.

For CSRs that may contain read-only bits (e.g. hedeleg, hideleg,
hstateen0), to the written value a correspondent mask is applied to
avoid divergence between the software state and the actual CSR
contents.

As hstatus is not part of struct arch_vcpu (it already resides in
struct cpu_user_regs), introduce vcpu_guest_cpu_user_regs() to provide
a uniform way to access hstatus and other guest CPU user registers.

This establishes a consistent and well-defined initial CSR state for
vCPUs prior to their first context switch.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - Move local variable hstateen0 into narrower scope.
 - Code style fixes.
 - Move the call of vcpu_csr_init(v) after if ( is_idle_vcpu() ) check in
   arcg_vcpu_create().
---
Changes in v3:
 - Add hypervisor register used to initalize vCPU state.
 - Apply masks introduced before instead of csr_write()/csr_read() pattern.
---
Changes in v2:
 - As hstatus isn't a part of arch_vcpu structure (as it is already a part of
   cpu_user_regs) introduce vcpu_guest_cpu_user_regs() to be able to access
   hstatus and other CPU user regs.
 - Sort hideleg bit setting by value. Drop a stray blank.
 - Drop | when the first initialization of hcounteren and hennvcfg happen.
 - Introduce HEDELEG_DEFAULT. Sort set bits by value and use BIT() macros
   instead of open-coding it.
 - Apply pattern csr_write() -> csr_read() for hedeleg and hideleg instead
   of direct bit setting in v->arch.h{i,e}deleg as it could be that for some
   reason some bits of hedeleg and hideleg are r/o.
   The similar patter is used for hstateen0 as some of the bits could be r/o.
 - Add check that SSAIA is avaialable before setting of SMSTATEEN0_AIA |
   SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT bits.
 - Drop local variables hstatus, hideleg and hedeleg as they aren't used
   anymore.
---
 xen/arch/riscv/domain.c                     | 66 +++++++++++++++++++++
 xen/arch/riscv/include/asm/current.h        |  2 +
 xen/arch/riscv/include/asm/domain.h         |  6 ++
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 +
 4 files changed, 76 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 5572e10bfaa9..6c8a6269d791 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -6,10 +6,74 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/cpufeature.h>
+#include <asm/csr.h>
+#include <asm/riscv_encoding.h>
 #include <asm/setup.h>
 
 struct csr_masks __ro_after_init csr_masks;
 
+#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
+                         BIT(CAUSE_FETCH_ACCESS, U) | \
+                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
+                         BIT(CAUSE_BREAKPOINT, U) | \
+                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
+                         BIT(CAUSE_LOAD_ACCESS, U) | \
+                         BIT(CAUSE_MISALIGNED_STORE, U) | \
+                         BIT(CAUSE_STORE_ACCESS, U) | \
+                         BIT(CAUSE_USER_ECALL, U) | \
+                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
+                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
+                         BIT(CAUSE_STORE_PAGE_FAULT, U))
+
+#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
+
+static void vcpu_csr_init(struct vcpu *v)
+{
+    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
+
+    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
+
+    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
+
+    /*
+     * VS should access only the time counter directly.
+     * Everything else should trap.
+     */
+    v->arch.hcounteren = HCOUNTEREN_TM;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
+        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        register_t hstateen0 = 0;
+
+        if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
+            /*
+             * If the hypervisor extension is implemented, the same three
+             * bits are defined also in hypervisor CSR hstateen0 but concern
+             * only the state potentially accessible to a virtual machine
+             * executing in privilege modes VS and VU:
+             *      bit 60 CSRs siselect and sireg (really vsiselect and
+             *             vsireg)
+             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
+             *             vsiph, vsieh, and vstopi)
+             *      bit 58 all state of IMSIC guest interrupt files, including
+             *             CSR stopei (really vstopei)
+             * If one of these bits is zero in hstateen0, and the same bit is
+             * one in mstateen0, then an attempt to access the corresponding
+             * state from VS or VU-mode raises a virtual instruction exception.
+             */
+            hstateen0 = SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
+
+        /* Allow guest to access CSR_ENVCFG */
+        hstateen0 |= SMSTATEEN0_HSENVCFG;
+
+        v->arch.hstateen0 = hstateen0 & csr_masks.hstateen0;
+    }
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
@@ -41,6 +105,8 @@ int arch_vcpu_create(struct vcpu *v)
     if ( is_idle_vcpu(v) )
         return rc;
 
+    vcpu_csr_init(v);
+
     /*
      * As the vtimer and interrupt controller (IC) are not yet implemented,
      * return an error.
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 58c9f1506b7c..5fbee8182caa 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -48,6 +48,8 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
 #define get_cpu_current(cpu)  per_cpu(curr_vcpu, cpu)
 
 #define guest_cpu_user_regs() ({ BUG_ON("unimplemented"); NULL; })
+#define vcpu_guest_cpu_user_regs(vcpu) \
+    (&(vcpu)->arch.cpu_info->guest_cpu_user_regs)
 
 #define switch_stack_and_jump(stack, fn) do {               \
     asm volatile (                                          \
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index f78f145258d6..6bb06a50c6ab 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -48,6 +48,12 @@ struct arch_vcpu {
     } xen_saved_context;
 
     struct cpu_info *cpu_info;
+
+    register_t hcounteren;
+    register_t hedeleg;
+    register_t henvcfg;
+    register_t hideleg;
+    register_t hstateen0;
 };
 
 struct paging_domain {
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index 1f7e612366f8..dd15731a86fa 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -228,6 +228,8 @@
 #define ENVCFG_CBIE_INV			_UL(0x3)
 #define ENVCFG_FIOM			_UL(0x1)
 
+#define HCOUNTEREN_TM BIT(1, U)
+
 /* ===== User-level CSRs ===== */
 
 /* User Trap Setup (N-extension) */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231312.1536503 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2e-0005p2-Ku; Fri, 13 Feb 2026 16:29:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231312.1536503; Fri, 13 Feb 2026 16:29:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2e-0005oF-EK; Fri, 13 Feb 2026 16:29:16 +0000
Received: by outflank-mailman (input) for mailman id 1231312;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2d-0005Ws-8z
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:15 +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 226660c8-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:29:14 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4836f363d0dso9262185e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:14 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.12
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 226660c8-08f9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000154; x=1771604954; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xayJDkaSPO2aBUbsoQhFpwQ2/yxRUvX1GYhVq8xOEcM=;
        b=cM7JmWEYRKysxi+TTaAIuaCeaMegx1gxAcfk9gFIF3bzAHeEqjS/6fCKfkyc3vlw6N
         3eLfw3rjQ73uOwmq6aB2ogh4r3AjZ1t0DaAAzswOgVBfF/+FVvOyzKpohvww+wWLRpDr
         jJiyP6vYaEMPhfhYlv5bJPk5mqfCLHZWQs1pPXlC0ydodeIhmk6dbjUvNqrCAa0TwWRN
         sQ3pnUh5GUwBiJ4I6DA6EEwKRRyuUQbvDjLw1mx0NH0797kH9IeNmi+x2MqGtDgqvbys
         n3gKsDwUee/3hHKvszn3ePHnRR7EzQf1frnmkWANbzVkNZc2hIqnbbOJho5fC5ZU2WsA
         MSFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000154; x=1771604954;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=xayJDkaSPO2aBUbsoQhFpwQ2/yxRUvX1GYhVq8xOEcM=;
        b=YpGE4tBdd65/zA+/d4T1W2eRbqc7yagzZxKX66/O72FDSjd7/KiRZUfb2NsA7uczw1
         5LWUhP6Vv+v0RWMPbyEsWjT5xHhqctAf/3MS3tWMiSl4z3UuTuNriZow66ekDmtJvHzT
         mqZ1+knbj1ru4zBA5L4rC/goGa9I0og1UONsPTBwBxsB1AjtLHWrFnWXIwJPpCE7JSwc
         yOw9EYCo/dJ0BwReavpZiwfkQaGr2bLXWT6YLFTdfdU9GW2/fWISkkRQ+B3ja2INo8i8
         vewOMiQO9Z7WD0+Oj2Tr0v7M9bI8N2+i+oy2Qs8Jhy16d/k1cjOOL/cil14xjYEx0xXV
         tEmQ==
X-Gm-Message-State: AOJu0Yz4nrOTvCMXb7s82nUKieRNrZtFLSokcbdH2yY+m/HgWNKAg/Lf
	33W+81gDuC0A1ufUhCPBriwQI9l46o28crq5M3FGhe9T5aLni5/AsDoKzvXNPzxi
X-Gm-Gg: AZuq6aLtKHC3e+GF8fOSKP6U88/UR+aXm5psnKVCAH3K15Cz6hrouJj5wYN3ww9lnop
	xioTpFvrpThe+OaMEbdI9xxPoz4nJxnLiCY3zuNljJ2O/0I8NMdVXd0izOo2RNss1/+i7rAINkn
	6qdbiX3nZIFPAzjOd8ItySZ5DrCtagtdD0qjpSsCAacVMVSnMyae3oSg5X/G3saak7caJx9OdrX
	iPvlKQzLWGmvpH3h+85w3xdNj80ZEfJ+raseytE8jblnHnLqpXVhJDcM36YRSxtY8MucpwBEBuu
	2WMmQm+Am9PK9Ajctp5iguck9uGPF86UBnreFCNRpVtPmB11SW5on6lnogapgiaUdNrmECArwiV
	7xaRA/KwV+3XHrmCiKKGveiz3C5z5jFoEfczJ+m8wGsLyLFIzB4CRzfMniWFcIFE4+Z54J0Yiyw
	vqbb+Q/6HweovyYzha+FQAAnc6fyOnLShEA37so5H09mgfL+dsjlx02EURGk4ziPtbgw==
X-Received: by 2002:a05:600c:1909:b0:480:1c85:88bf with SMTP id 5b1f17b1804b1-48373a7438bmr36959985e9.27.1771000153375;
        Fri, 13 Feb 2026 08:29:13 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 03/16] xen/riscv: build setup code as .init
Date: Fri, 13 Feb 2026 17:28:49 +0100
Message-ID: <d2fcbb9248ea1659aa953e9c8a8bde1c4a2282c0.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

At the moment, all code and data in setup.c are marked with
__init or __init_data, so leverage this by using setup.init.o
instead of setup.o in Makefile.

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V4:
 - New patch.
---
 xen/arch/riscv/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index caa1aac5b2f6..bc47e83b26d7 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -12,7 +12,7 @@ obj-y += paging.o
 obj-y += pt.o
 obj-$(CONFIG_RISCV_64) += riscv64/
 obj-y += sbi.o
-obj-y += setup.o
+obj-y += setup.init.o
 obj-y += shutdown.o
 obj-y += smp.o
 obj-y += smpboot.o
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231311.1536494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2e-0005iz-8p; Fri, 13 Feb 2026 16:29:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231311.1536494; Fri, 13 Feb 2026 16:29:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2e-0005hC-4D; Fri, 13 Feb 2026 16:29:16 +0000
Received: by outflank-mailman (input) for mailman id 1231311;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2d-0005Wn-3o
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:15 +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 21cb0b5b-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:13 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-48370174e18so7721955e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:13 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.11
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 21cb0b5b-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000152; x=1771604952; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=DGjLwQrf+g8EjtzlcMtYn8BP8ihLs5L3xQsqVVgUdSA=;
        b=YpcR4NKhnLMgC8gyh1hvUrWNutcdiUTO48SzpmCPjd6QG5J9BCx+94T4F9CuoS9ICl
         DHOmZcmw+wuX33dhuhgXIPg5Z3GdCmb+yU5nX+LVpVLS7ROP2iuXXgvP1ed53Z+I+XZ+
         lXgjPdLUV6/2Nq2ZE7MB+VTRFI7aK15pQs0wi3snpbl3zx3GF29YepaWJlTuHs/f/6CE
         ZXVIe1H8SKf/AvP4OX6y0ol+8T630ycnwjsTdYxtqYjxUTazKRSv5hsueoLVs7Qo+Idy
         rkM6fWLY+qJmvKNa672VWBf5o/LHvBkep79RbAbQc5BoNblI38HX6zY5XXlRg52PaoRq
         emfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000152; x=1771604952;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DGjLwQrf+g8EjtzlcMtYn8BP8ihLs5L3xQsqVVgUdSA=;
        b=t+HZBJ9L/d1+0mDcxZRC6RB5rz+kJsUUNhsovKkSjL8M3cPNL3RnopnI5VUkCHGduT
         2kqaYo2C03yqXPhlwNIFWBHgkGsSvUKF5LEDrb04z5xglM38ebl4SL8/vWu6xDLcYeYu
         eVAXryiAJuYBkD8lzQM0bDghWQhCjeJ8icXVZGT5XqtdONfPaC6bkqrZNScuBbht0+wO
         srAzJV1uEdrioTJ+4EvvYtvkmMEYxDV7krsLxXcg7F23jikWLrWwGpcUt4AU9hf6e0/P
         afGj+san41vNv0FL+r+nKSA4u1kwMkjgLzwUagfs45EWuVWa3vQ7qHzkZ2+FpogcMAMe
         +3oA==
X-Gm-Message-State: AOJu0YyTAmoo1TTsSv5XqcitUJ2hPEVN0Fk11gyPzvIMro6lyLyvVZI3
	IzLxacJgCOonKsvRO7nP71235Gw6r6C1eed9XuhqMQpUIhNn1jRjvcXTTDaRhjYa
X-Gm-Gg: AZuq6aJFuC2NAHDtZRLAp7+Js1qlSqTmfF6IwLMOkUpRuPu2CURFCflbsutULXgpCX4
	W/39N4vJeqvWcMxV42oQwgK0urMK5VZ5ouVf0gaPrhSRCnAht9bQpGW05ORDWpKjJo5dgqOVOBi
	243XoL3QxI5ftxDR+1Wy6UvDR3kSYED/JUTv9KKDoQapCGYQKWtuMDcZVPUKMxiQG1JTxxdpO9t
	+Fk900oSiQO+W4My3qXBMTv0/ZfeiTne9LlM1lYilsVhq+ugIlJcP9yb6RaZrX4qNp0MdQRXFdP
	E8y1koUVvKdm+nfEoaPzPBXzu0H0g1yDQZAob3nZyE2oxYGFExBp1C8sFRxMY/+sqsLhplTVMBj
	QcidcyqmPtlO/83fZRSuzpBm8+EuFpmhYq0Te5aUCt+4k5zxZPBsJpln1x4gUNbpG6NyFwFm8fZ
	KPcVQKsx6gSSUaGLshxTEo99BAtSp6vidMUxFPKIA7/8L8tx+vOEVq3+4lM0K8wjUF1Q==
X-Received: by 2002:a05:600c:45cc:b0:47a:814c:eea1 with SMTP id 5b1f17b1804b1-48373a6c1f8mr37820645e9.35.1771000152350;
        Fri, 13 Feb 2026 08:29:12 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 02/16] xen/riscv: detect and store supported hypervisor CSR bits at boot
Date: Fri, 13 Feb 2026 17:28:48 +0100
Message-ID: <06c3b8f88803039a3d900c8cb2f1fd9d05f44e3e.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some hypervisor CSRs expose optional functionality and may not implement
all architectural bits. Writing unsupported bits can either be ignored
or raise an exception depending on the platform.

Detect the set of writable bits for selected hypervisor CSRs at boot and
store the resulting masks for later use. This allows safely programming
these CSRs during vCPU context switching and avoids relying on hardcoded
architectural assumptions.

Note that csr_set() is used instead of csr_write() to write all ones to
the mask, as the CSRRS instruction, according to the RISC-V specification,
sets only those bits that are writable (note that the quote consider only
non-read-only CSRs as writing to read-only CSRs according to the spec.
will raise an exception):
    Any bit that is high in rs1 will cause the corresponding bit to be set
    in the CSR, if that CSR bit is writable.
In contrast, the CSRRW instruction does not take CSR bit writability into
account, which could lead to unintended side effects when writing all ones
to a CSR.

Masks are calculated at the moment only for hedeleg, henvcfg, hideleg,
hstateen0 registers as only them are going to be used in the follow up
patch.

If the Smstateen extension is not implemented, hstateen0 cannot be read
because the register is considered non-existent. Instructions that attempt
to access a CSR that is not implemented or not visible in the current mode
are reserved and will raise an illegal-instruction exception.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V4:
 - Move csr_masks defintion to domain.c. Make it static as at the moment
   it is going to be used only in domain.c.
 - Rename and refactor X macros inside init_csr_masks().
---
Changes in V3:
 - New patch.
---
 xen/arch/riscv/domain.c            |  5 +++++
 xen/arch/riscv/include/asm/setup.h |  9 +++++++++
 xen/arch/riscv/setup.c             | 21 +++++++++++++++++++++
 3 files changed, 35 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index f5c624ac92c7..5572e10bfaa9 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -2,9 +2,14 @@
 
 #include <xen/init.h>
 #include <xen/mm.h>
+#include <xen/sections.h>
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/setup.h>
+
+struct csr_masks __ro_after_init csr_masks;
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c9d69cdf5166..d54f6a2d1d29 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -5,6 +5,15 @@
 
 #include <xen/types.h>
 
+struct csr_masks {
+    register_t hedeleg;
+    register_t henvcfg;
+    register_t hideleg;
+    register_t hstateen0;
+};
+
+extern struct csr_masks csr_masks;
+
 #define max_init_domid (0)
 
 void setup_mm(void);
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9b4835960d20..dc469b49623f 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -70,6 +70,25 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
     return fdt;
 }
 
+void __init init_csr_masks(void)
+{
+    register_t old;
+
+#define INIT_CSR_MASK(csr, field) do { \
+        old = csr_read(CSR_##csr); \
+        csr_set(CSR_##csr, ULONG_MAX); \
+        csr_masks.field = csr_read(CSR_##csr); \
+        csr_write(CSR_##csr, old); \
+} while (0)
+
+    INIT_CSR_MASK(HEDELEG, hedeleg);
+    INIT_CSR_MASK(HENVCFG, henvcfg);
+    INIT_CSR_MASK(HIDELEG, hideleg);
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+        INIT_CSR_MASK(HSTATEEN0, hstateen0);
+}
+
 void __init noreturn start_xen(unsigned long bootcpu_id,
                                paddr_t dtb_addr)
 {
@@ -137,6 +156,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     riscv_fill_hwcap();
 
+    init_csr_masks();
+
     preinit_xen_time();
 
     intc_preinit();
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231309.1536481 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2d-0005XG-Hy; Fri, 13 Feb 2026 16:29:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231309.1536481; Fri, 13 Feb 2026 16:29:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2d-0005X9-FI; Fri, 13 Feb 2026 16:29:15 +0000
Received: by outflank-mailman (input) for mailman id 1231309;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2b-0005Wn-M9
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:13 +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 2088b637-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:11 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48378136adcso3189735e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:11 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2088b637-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000150; x=1771604950; 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=FHr+w66mSdl9Ms7uvr3u36Xw39Fn1EXRu+JaXaKVirE=;
        b=Ygnflc3Yl2g6s/NKNBqER+qIOjhnb45ch+/KMJC1j301DhjqrK30Ne+7OKhxKAMk3L
         wkAMy2IOWY6XwFDGxAxqevDyo3OEPxW7XjmrqbgUxnaoAXR9wxSfpHlzhGe1fLJFriYp
         tkvW27qYJh1W2i4kGp6Um4lF7GYaDREOMIcffsBAKK8UnS6FPz/fm6vnueia4R4jfYPO
         pS15j55ABiOuqzIWQeCr9Ua0VzSXa4DOzOgMOLiEgUebzEuFifUOgto3pidQWFiGm1AN
         PSWhdUtEhgaX77V4UH+YyxDxPhk6AQ0Sqs6SnUTUFxL+0KCVfU2daEi7qEeXXwITIIvg
         4Rng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000150; x=1771604950;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FHr+w66mSdl9Ms7uvr3u36Xw39Fn1EXRu+JaXaKVirE=;
        b=pbApg4RnjgmwvanpGRhAhsV6mqBk0SDCRZiQr9JD/8obg/83e91Ubk0xhCXwkIxqz+
         8L44G+gW6mxIBGVQmRFGm1ZfLg1lhjTS/+dMa7Wl8L2+oCKlNkW+cx2qjjvnAQ47Jj59
         hYLsUymBwnubZOdbtoXt7/6H7bpe33dcuPaIk2V9tfWU3S2mgVPpQ0aZIi40qiLfotyF
         3WqSrk5AgZdBnU+lGW6tRX33CI6s8X0Iae0nJIf+ulG07QqDjCPQmH69F1HRMOSdkJIx
         t/wbDwL5pXScov5WKxPWItsGO+hIhkbughal+UNocQdGWGnz65RC7Gz2Sva6JScGGiWl
         eNnA==
X-Gm-Message-State: AOJu0Yxa3thM6OCbH+lqpDYR3XU5PMVnXV1uxodJmJO9wmdK+XjZA6cX
	+8wzJkwKLaaJLzORYU4zOIEZaPOMYHJzALJTR2PDbU1jeuoAmdnSUuyKFVDgWXx8
X-Gm-Gg: AZuq6aJPtN/oIByEErQjSKOXNZ8G2UU2CTIj/J+8dGfXiW1TyLQ5W8XPb8CJuzT+mPa
	DwQu6c6jrXDWz4cwKGBsO7Y35DA1qCaONmY6w38472PDEU4PJmyAeI91sR/z4ftnryktzt6ynhu
	34riNcRb6ODWEeOvn4upxVFXvmL7yKLgSkhbTjTy5VSpJoCcw5wQWRaOOELZy5RN9pHms0zAT4f
	4IGOvePcIFsZUUWQRn1OaRCW8K/IG6X12T29g2AXK4R2awWYwe4Fz4WYfDcGoiWX0ZJQJQkoFdX
	A3Gtvlbbgi0AIZAqfz/HzfRgrmMg/NXnPXF3TDwG+bNEz1B9VWWiCejviD8rWblJoGPZz4akzc1
	2FfhzF2NdvcLydq7/a3ZrA6fxQU5QyiW/1LAd6yj6gkH0NY3fULelJCgK8S0dcuaz4u9TQcdBb6
	H7YPoe3cjRj3Dssn2aW6dmVY0Tt+HVygTQ51DZSI2go58D3ub054nAMxxpHU0n6pPnAQ==
X-Received: by 2002:a05:600c:19c8:b0:483:6f37:1b61 with SMTP id 5b1f17b1804b1-48373a15faemr41285145e9.4.1771000150066;
        Fri, 13 Feb 2026 08:29:10 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v4 00/16] xen/riscv: introduce vtimer related things
Date: Fri, 13 Feb 2026 17:28:46 +0100
Message-ID: <cover.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch series introduces the components necessary to implement a virtual
timer (vtimer).

Since the SSTC extension is not supported by Xen, an emulated (SBI-based)
timer is required. To address this, a virtual timer built on Xen’s timer
infrastructure is introduced, with save/restore support and SBI-based
programming.

To provide full guest software–based timer support, the following components
are also introduced:
- arch_vcpu_{create,destroy}() to initialize the virtual timer and other
  vCPU-related state not directly tied to timer functionality. As part of this
  work, struct arch_vcpu is introduced to describe the internal state of a
  virtual CPU, along with vcpu_csr_init() to initialize the relevant CSR state.
- Support functions required by the virtual timer, including:
  - vcpu_kick(), and a stub implementation of smp_send_event_check_mask()
    (since SMP is not yet supported in Xen), which is used by vcpu_kick().
  - Support for guest timer programming via interception of the SBI legacy
    SET_TIMER call from guest.
  - Implement reprogram_timer() using introduced sbi_set_timer().
  - Initial lockless tracking of pending vCPU interrupts using atomic bitmaps.
- Handling of hypervisor timer interrupts and dispatch into Xen’s generic timer
  softirq.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2324166405

---
Changes in v4:
 - Merged to upstream/staging:
     xen/riscv: avoid reading hstateen0 when Smstateen is not implemented
 - Address other comments from ML.
---
Changes in v3:
 - Squash patch "xen/riscv: introduce struct arch_vcpu" into other
   patches of the patch series.
 - Merged to staging:
   - xen/riscv: implement stub for smp_send_event_check_mask()
 - Address other comments from ML.
---
Changes in v2:
 - Add consumer part of tracking of pending vCPU interrupts.
 - Split patch "xen/riscv: init tasklet subsystem" to two.
 - Patches were acked:
   - xen/riscv: introduce vcpu_kick() implementation
   - xen/riscv: implement SBI legacy SET_TIMER support for guests
 - All other changes are patch-specific. Please check them.
---

Oleksii Kurochko (16):
  xen/riscv: implement arch_vcpu_{create,destroy}()
  xen/riscv: detect and store supported hypervisor CSR bits at boot
  xen/riscv: build setup code as .init
  xen/riscv: implement vcpu_csr_init()
  xen/riscv: introduce tracking of pending vCPU interrupts, part 1
  xen/riscv: introduce tracking of pending vCPU interrupts, part 2
  xen/time: move ticks<->ns helpers to common code
  xen/riscv: introduce basic vtimer infrastructure for guests
  xen/riscv: introduce vcpu_kick() implementation
  xen/riscv: add vtimer context switch helpers
  xen/riscv: implement SBI legacy SET_TIMER support for guests
  xen/riscv: introduce sbi_set_timer()
  xen/riscv: implement reprogram_timer() via SBI
  xen/riscv: handle hypervisor timer interrupts
  xen/riscv: init tasklet subsystem
  xen/riscv: implement sync_vcpu_execstate()

 xen/arch/arm/include/asm/time.h             |   3 -
 xen/arch/arm/time.c                         |  11 -
 xen/arch/arm/vtimer.c                       |   2 +-
 xen/arch/riscv/Makefile                     |   4 +-
 xen/arch/riscv/domain.c                     | 261 ++++++++++++++++++++
 xen/arch/riscv/include/asm/Makefile         |   1 -
 xen/arch/riscv/include/asm/config.h         |   3 +-
 xen/arch/riscv/include/asm/current.h        |   8 +
 xen/arch/riscv/include/asm/domain.h         |  58 +++++
 xen/arch/riscv/include/asm/perfc_defn.h     |   3 +
 xen/arch/riscv/include/asm/riscv_encoding.h |   2 +
 xen/arch/riscv/include/asm/sbi.h            |  21 ++
 xen/arch/riscv/include/asm/setup.h          |   9 +
 xen/arch/riscv/include/asm/time.h           |   5 -
 xen/arch/riscv/include/asm/vtimer.h         |  23 ++
 xen/arch/riscv/sbi.c                        |  40 ++-
 xen/arch/riscv/setup.c                      |  24 ++
 xen/arch/riscv/stubs.c                      |  30 ---
 xen/arch/riscv/time.c                       |  44 ++++
 xen/arch/riscv/traps.c                      |  26 ++
 xen/arch/riscv/vsbi/legacy-extension.c      |   6 +
 xen/arch/riscv/vtimer.c                     |  86 +++++++
 xen/include/xen/time.h                      |  11 +
 23 files changed, 627 insertions(+), 54 deletions(-)
 create mode 100644 xen/arch/riscv/domain.c
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231314.1536532 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2i-0006iQ-68; Fri, 13 Feb 2026 16:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231314.1536532; Fri, 13 Feb 2026 16:29:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2i-0006iH-2O; Fri, 13 Feb 2026 16:29:20 +0000
Received: by outflank-mailman (input) for mailman id 1231314;
 Fri, 13 Feb 2026 16: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2f-0005Ws-Ol
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:17 +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 23c4483a-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:29:16 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-48375f10628so4521565e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:16 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.14
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23c4483a-08f9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000156; x=1771604956; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qSuBk7TI30cXJIpgNCEsqaHVmHcq8p/6dX92gviZ8wo=;
        b=jFH7i9OnD+Lstg9QEOG//TA/TpHomfPwH7xXeLEM42/BpxP0U+oJvxQjps76xpdhvd
         Mu0zNbTvSC4NmICiaDpfli+43rB6JBRv5lMEe6JEJMuduj6lKneTTVOqI/SuTn7yi9OM
         QATCqsuUCc93v2gf5zzA/KLrmQ2zU0mEXh7e1yKFK3i3r4HMfGZ9zWJbWVFz9YrLwu7s
         6Ez7Atc12sjb6FewD1tXY8oax1ZLicdXJNRM25qkQXaNWQWO0T4uufl8AWGxeeZvIlNZ
         VoCUMBLuVQuZyzHH75/gaQmCXw80xtqLESFC9OQ1MPE4YjX2Levqp5rpNT0eCldBTyAn
         7A8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000156; x=1771604956;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=qSuBk7TI30cXJIpgNCEsqaHVmHcq8p/6dX92gviZ8wo=;
        b=SVostE+gOn6AJ67IQ3I5uMXM2hb143CpESlJBEb7OacER3MBQ0XKqQHRJIKZRm4vqj
         ATJmrpnmJ9j39GkYk2hcyYx+VsDaOZmdji804b6RWFv3NfFJuT8ficzhR+PM4MHS9wTM
         gtwAjr4bN+rxB9VMMgeOVg8dhSY59KPsmyjh4Gokib7LYjf/ywl8usSa37gB9mdkkuY1
         fJdG8R7KNB1OuaNJObmb4g3VA5Pt+Gd50u3V1lpSpt5Hu73kYzX0jz5P3xMFMGhXs5Zm
         IZvLK7AKC6DGq70uj8BqqV3g3fsJRLQFut8bQDwOwQ0ik+CFzo0Cz/FNO09pFLC29EJF
         wfGQ==
X-Gm-Message-State: AOJu0Yzl/twVhIJptFVWzAzIDopY6R8u834TdEXdi+DyjjEuXz2U50HB
	rX6CCdj+Ug/DaEUIe5+lOidH2Iz5566ZCZsLz6Zv8iIUvryPscW3fY/NuXAWiDeW
X-Gm-Gg: AZuq6aJ40ZHMF5Tl0vRc1nV+UNZ+wX3KtrOsJNv/e05qZROTAZlIwd8zh6FKI4A30L0
	1GJxhMPpKSzWZ5A4lCZH8ltfYniYU7p/QArdBRpqZSEu4Q2NkD50rZl/Y9mHM50fUOPl6ecg6qq
	/OfCpXx+aVW1Mtb6lgZzvkqtSS/afpVFK/aZWrF56nkusUZ+r/ZgIA1v+ExE8YXYFwws6DHcTvH
	oN/iebCXaTvz5nzV7uPsKp5/Wx8msUS9Q5Vn4b606vT5d63KaKH/qZviUSaqa/7cxhDzU81KuFv
	5zeUPaDF4n39qZTHe64/eZW/ZMGebV9b8zgHJzK8LrqIDLvC9l7WaZCUNCE4VLHREgpNu9fvQuy
	J+/D1UBMJLHo5eDq3X7ct+UclPe7ned9+VgHWZPOvXTlJdudGaACy7Z5I/ENFjQlKAKeTChLa/Z
	NI4mqlN0FJbYXBIzJ1lgOp5Xg/dDX2yuDEuOfs2QB6S8RLx8QtKLTIztiA4JPJYbBhTmFA/NOmQ
	Z8A
X-Received: by 2002:a05:600c:1e89:b0:480:1b1a:5526 with SMTP id 5b1f17b1804b1-48373a0cd0bmr44764105e9.16.1771000155622;
        Fri, 13 Feb 2026 08:29:15 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 05/16] xen/riscv: introduce tracking of pending vCPU interrupts, part 1
Date: Fri, 13 Feb 2026 17:28:51 +0100
Message-ID: <63661b60f5e1678c93f7ea34e5cf479ca28bc80d.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Based on Linux kernel v6.16.0.
Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
we want to guarantee that if a bit in irqs_pending_mask is obversable
that the correspondent bit in irqs_pending is observable too.

Add lockless tracking of pending vCPU interrupts using atomic bitops.
Two bitmaps are introduced:
 - irqs_pending — interrupts currently pending for the vCPU
 - irqs_pending_mask — bits that have changed in irqs_pending

The design follows a multi-producer, single-consumer model, where the
consumer is the vCPU itself. Producers may set bits in
irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
performed only by the consumer via xchg(). The consumer must not write
to irqs_pending and must not act on bits that are not set in the mask.
Otherwise, extra synchronization should be provided.

On RISC-V interrupts are not injected via guest registers, so pending
interrupts must be recorded in irqs_pending (using the new
vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
HVIP before returning control to the guest. The consumer side is
implemented in a follow-up patch.

A barrier between updating irqs_pending and setting the corresponding
mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
that if the consumer observes a mask bit set, the corresponding pending
bit is also visible. This prevents missed interrupts during the flush.

It is possible that a guest could have pending bit in the hardware
register without being marked pending in irq_pending bitmap as:
  According to the RISC-V ISA specification:
    Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
    interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
    is an alias (writable) of the same bit in hvip.
  Additionally:
    When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
    zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
    hie.VSSIE.
This means the guest may modify vsip.SSIP, which implicitly updates
hip.VSSIP and the bit being written with 1 would also trigger an interrupt
as according to the RISC-V spec:
  These conditions for an interrupt trap to occur must be evaluated in a
  bounded   amount of time from when an interrupt becomes, or ceases to be,
  pending in sip,  and must also be evaluated immediately following the
  execution of an SRET  instruction or an explicit write to a CSR on which
  these interrupt trap conditions expressly depend (including sip, sie and
  sstatus).
What means that IRQ_VS_SOFT must be synchronized separately, what is done
in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
PMU isn't supported now.

For the remaining VS-level interrupt types (IRQ_VS_TIMER and
IRQ_VS_EXT), the specification states they cannot be modified by the guest
and are read-only because of:
  Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
  bits for VS-level external interrupts. VSEIP is read-only in hip, and is
  the logical-OR of these interrupt sources:
    • bit VSEIP of hvip;
    • the bit of hgeip selected by hstatus.VGEIN; and
    • any other platform-specific external interrupt signal directed to
      VS-level.
  Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
  bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
  logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
  signal directed to VS-level.
and
  When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
  Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.

  When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
  Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
and also,
  Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
  bits for supervisor-level external interrupts. If implemented, SEIP is
  read-only in sip, and is set and cleared by the execution environment,
  typically through a platform-specific interrupt controller.

  Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
  bits for supervisor-level timer interrupts. If implemented, STIP is
  read-only in sip, and is set and cleared by the execution environment
Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
and vcpu_unset_interrupt(), and flush them during the call of
vcpu_flush_interrupts() (which is introduced in follow up patch).

vcpu_sync_interrupts(), which is called just before entering the VM,
slightly bends the rule that the irqs_pending bit must be written
first, followed by updating the corresponding bit in irqs_pending_mask.
However, it still respects the core guarantee that the producer never
clears the mask and only writes to irqs_pending if it is the one that
flipped the corresponding mask bit from 0 to 1.
Moreover, since the consumer won't run concurrently because
vcpu_sync_interrupts() and the consumer path are going to be invoked
equentially immediately before VM entry, it is safe to slightly relax
this ordering rule in vcpu_sync_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - Update the commit message.
 - Update the comments in vcpu_(un)set_interrupt() and add the the  comment
   above smp_wmb() barrier.
 - call vcpu_kick() only if the pending_mask bit going from 0 to 1.
 - Code style fixes.
 - Update defintion of RISCV_VCPU_NR_IRQS to cover potential RV128 case and
   the case if AIA isn't used.
 - latch current into a local variable in check_for_pcpu_work().
---
Changes in v3:
 - Use smp_wb() instead of smp_mb__before_atomic().
 - Add explanation of the change above in the commit message.
 - Move vcpu_sync_interrupts() here to producers side.
 - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
   is called.
---
Changes in V2:
 - Move the patch before an introduction of vtimer.
 - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
   vcpu structure starts out all zeros.
 - Drop const for irq argument of vcpu_{un}set_interrupt().
 - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
   could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
 - Drop IRQ_LOCAL_MAX as there is no usage for it now.
---
 xen/arch/riscv/domain.c             | 71 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h | 24 ++++++++++
 xen/arch/riscv/traps.c              | 10 ++++
 3 files changed, 105 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 6c8a6269d791..edbac39a0b18 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -6,6 +6,7 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/bitops.h>
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
@@ -127,3 +128,73 @@ void arch_vcpu_destroy(struct vcpu *v)
 {
     vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
 }
+
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
+{
+    /* We only allow VS-mode software, timer, and external interrupts */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    set_bit(irq, v->arch.irqs_pending);
+    /*
+     * The counterpart of this barrier is the one encoded implicitly in xchg()
+     * which is used in consumer part (vcpu_flush_interrupts()).
+     */
+    smp_wmb();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    if ( !test_and_set_bit(irq, v->arch.irqs_pending_mask) )
+      vcpu_kick(v);
+
+    return 0;
+}
+
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
+{
+    /* We only allow VS-mode software, timer, external interrupts */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    clear_bit(irq, v->arch.irqs_pending);
+    /*
+     * The counterpart of this barrier is the one encoded implicitly in xchg()
+     * which is used in consumer part (vcpu_flush_interrupts()).
+     */
+    smp_wmb();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    return 0;
+}
+
+void vcpu_sync_interrupts(struct vcpu *v)
+{
+    unsigned long hvip;
+
+    /* Read current HVIP and VSIE CSRs */
+    v->arch.vsie = csr_read(CSR_VSIE);
+
+    /* Sync-up HVIP.VSSIP bit changes done by Guest */
+    hvip = csr_read(CSR_HVIP);
+    if ( ((v->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL)) &&
+         !test_and_set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending_mask) )
+    {
+        if ( hvip & BIT(IRQ_VS_SOFT, UL) )
+            set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
+        else
+            clear_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
+    }
+
+    /*
+     * Sync-up AIA high interrupts.
+     *
+     * It is necessary to do only for CONFIG_RISCV_32 which isn't supported
+     * now.
+     */
+#ifdef CONFIG_RISCV_32
+#   error "Update v->arch.vsieh"
+#endif
+}
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 6bb06a50c6ab..2793f694d36f 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -54,6 +54,25 @@ struct arch_vcpu {
     register_t henvcfg;
     register_t hideleg;
     register_t hstateen0;
+    register_t hvip;
+
+    register_t vsie;
+
+    /*
+     * VCPU interrupts
+     *
+     * We have a lockless approach for tracking pending VCPU interrupts
+     * implemented using atomic bitops. The irqs_pending bitmap represent
+     * pending interrupts whereas irqs_pending_mask represent bits changed
+     * in irqs_pending. Our approach is modeled around multiple producer
+     * and single consumer problem where the consumer is the VCPU itself.
+     *
+     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
+     * on RV32 host.
+     */
+#define RISCV_VCPU_NR_IRQS MAX(BITS_PER_LONG, 64)
+    DECLARE_BITMAP(irqs_pending, RISCV_VCPU_NR_IRQS);
+    DECLARE_BITMAP(irqs_pending_mask, RISCV_VCPU_NR_IRQS);
 };
 
 struct paging_domain {
@@ -92,6 +111,11 @@ static inline void update_guest_memory_policy(struct vcpu *v,
 
 static inline void arch_vcpu_block(struct vcpu *v) {}
 
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
+
+void vcpu_sync_interrupts(struct vcpu *v);
+
 #endif /* ASM__RISCV__DOMAIN_H */
 
 /*
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index c81a4f79a0d2..366c3ff23e76 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -169,6 +169,13 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
     die();
 }
 
+static void check_for_pcpu_work(void)
+{
+    struct vcpu *c = current;
+
+    vcpu_sync_interrupts(c);
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -222,6 +229,9 @@ void do_trap(struct cpu_user_regs *cpu_regs)
         do_unexpected_trap(cpu_regs);
         break;
     }
+
+    if ( cpu_regs->hstatus & HSTATUS_SPV )
+        check_for_pcpu_work();
 }
 
 void vcpu_show_execution_state(struct vcpu *v)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231315.1536535 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2i-0006li-Er; Fri, 13 Feb 2026 16:29:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231315.1536535; Fri, 13 Feb 2026 16:29:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2i-0006ks-Ai; Fri, 13 Feb 2026 16:29:20 +0000
Received: by outflank-mailman (input) for mailman id 1231315;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2g-0005Ws-9f
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:18 +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 244823da-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:29:17 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-483487335c2so10283795e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:17 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 244823da-08f9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000157; x=1771604957; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g8aUJGUOJbQQ949TKJQepHTgKcmZAnEVr+LIZcPPPBc=;
        b=KkL7LK5dQ5g8FSkC6xwQI1ZqKu2evG06cl65FD/eGd6huINpxEtHMABnYwejVV5bFM
         PedOhtEbYOkEzcsCDtQyaoiNQrH+zsoA3C/8Xc/H5Z8BphJbswnezVQ1NXHsYTTwWZby
         vIFXVCjl6sWHkASFas1x2urQQTIoIB/VFhUt15uRbR1jkwhD3DjgiesWjVf81LVMt7Sn
         og6kA8D0bGSuMjdCAGJXkUYtrOvt9WXy91CgYLm7hPuNS3Gi6Z7KMLzXgKQJNhYgSn0c
         RMDsITiMTlPgY0S5zc6w7GNQ018qw+FvDjf4y897LEJi+j8L0l+uhTr8lVNkwWmczUVs
         xeiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000157; x=1771604957;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=g8aUJGUOJbQQ949TKJQepHTgKcmZAnEVr+LIZcPPPBc=;
        b=g2U541nKNuUhbGzKFTRkvkUbc7W7ZgPf/tbKWIA1bZF6pycmUnSSDIox34ztqcbYOK
         uxsx545SPZdH8IMKuX2pFKcTlLY2uBJ45bATrld+gtzbeg7GCBwT5Ie67x+Ix1jxxIgg
         yuunn7bcE4tXGK3VxhrjZJ5gGxPnX9t8RNpeeCljGm0ea+O/9NTkRv+qmA4BSyV+j2V5
         joZyAYg/ha+iGH6divNyDGySosxZdqCypxcVjvIk9eqia0jl9M+Y2bXfMkNWM9VeAW/n
         QVPQ2Eaz6L4FxPnwxKlgSAkrp0d55nr//Mt8fo6H60AfFUXBwhWJohXoKxdu+ojsIyu0
         Oxmg==
X-Gm-Message-State: AOJu0YwxanxZ8lSkDeaSiM4kV7Rnfc0BazuioEp6ZkmsTdIraNQJ7B2/
	acK6rKjt7GSiG0gjRiZYlwi4t2J5XOSMONeFQAeqt6Csk0bxbibDUw/7qvCH1mJS
X-Gm-Gg: AZuq6aIfnIZGLNvbGgGVzPQNDOOcw/nl8DBDgWPrfReGyab9lnHMs4a/SsvVLtXnb5q
	3xl1ighMHKS5I0SWK9pRH3PSIWlGfWJGo8LISFCovnLZYp4ju0zqabsiMS0Jow+34taVYm7Ud52
	4bGDWydH7vtsJuwEcWURzM7tzBk/aQgrvVki4H/naeXw+PhlJQdmhJA9aBjRUJkMp0uSSVeLgk1
	PzZkfpolEnFMpTQO9yZ+CrhxocpCctcsaC+I1hMnm7RnmqnQz/FTRQ667DANwKEgegESE2OUuza
	iFkcqwhtBaRr0eVpd43mZ0dJisFDysTXaOfcTjPLF0P9GQeAGlryA/0DWm6xEvm3osh1LKwy6Lu
	nOZ4raD2kggsjYMso1HF1M4dTwDvb1GOthyPrgUc/L16x9pfpDjqI9oX20+z4s8o/HGdqDKvv+g
	uZghj8uJv6HmISMAw5j26kWAtFowy1a15Sf0rgpcV5PCUN1Celvmw/UfFi2duDfSo/+Q==
X-Received: by 2002:a05:600c:19cc:b0:477:7f4a:44b4 with SMTP id 5b1f17b1804b1-483739fc385mr40414865e9.1.1771000156728;
        Fri, 13 Feb 2026 08:29:16 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 06/16] xen/riscv: introduce tracking of pending vCPU interrupts, part 2
Date: Fri, 13 Feb 2026 17:28:52 +0100
Message-ID: <4e10c95d883c0d447b9e33a6d6a92e911aed6a23.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch is based on Linux kernel 6.16.0.

Add the consumer side (vcpu_flush_interrupts()) of the lockless pending
interrupt tracking introduced in part 1 (for producers). According, to the
design only one consumer is possible, and it is vCPU itself.
vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due
to the lack of functionality) before the hypervisor returns control to the
guest.

Producers may set bits in irqs_pending_mask without a lock. Clearing bits in
irqs_pending_mask is performed only by the consumer via xchg() (with aquire
semantics). The consumer must not write to irqs_pending and must not act on
bits that are not set in the mask. Otherwise, extra synchronization should
be provided.
The worst thing which could happen with such approach is that a new pending
bit will be set to irqs_pending bitmap during update of hvip variable in
vcpu_flush_interrupt() but it isn't problem as the new pending bit won't
be lost and just be proceded during the next flush.

As AIA specs introduced hviph register which would want to be updated when
guest related AIA code vcpu_update_hvip() is introduced instead of just
open-code it in vcpu_flush_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - Move defintion of hvip local variable to narrower space in
   vcpu_flush_interrupts().
 - Use initializers for mask and val variables.
 - Use local variable c as an argument of vcpu_flush_interrupts() in
   check_for_pcpu_work().
---
Changes in v3:
 - Update the error message in case of RV32 from "hviph" to v->arch.hviph.
 - Make const argument of vcpu_update_hvip.
 - Move local variables mask and val inside if() in vcpu_flush_interrupts().
 - Call vcpu_flush_interrupts() in check_pcpu_work().
 - Move vcpu_update_hvip() inside if() in vcpu_flush_interrupts().
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c             | 31 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h |  1 +
 xen/arch/riscv/traps.c              |  2 ++
 3 files changed, 34 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index edbac39a0b18..35d8d5db02d0 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -198,3 +198,34 @@ void vcpu_sync_interrupts(struct vcpu *v)
 #   error "Update v->arch.vsieh"
 #endif
 }
+
+static void vcpu_update_hvip(const struct vcpu *v)
+{
+    csr_write(CSR_HVIP, v->arch.hvip);
+}
+
+void vcpu_flush_interrupts(struct vcpu *v)
+{
+    if ( ACCESS_ONCE(v->arch.irqs_pending_mask[0]) )
+    {
+        register_t *hvip = &v->arch.hvip;
+
+        unsigned long mask = xchg(&v->arch.irqs_pending_mask[0], 0UL);
+        unsigned long val = ACCESS_ONCE(v->arch.irqs_pending[0]) & mask;
+
+        *hvip &= ~mask;
+        *hvip |= val;
+
+        vcpu_update_hvip(v);
+    }
+
+/*
+ * Flush AIA high interrupts.
+ *
+ * It is necessary to do only for CONFIG_RISCV_32 which isn't
+ * supported now.
+ */
+#ifdef CONFIG_RISCV_32
+#   error "Update v->arch.hviph"
+#endif
+}
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 2793f694d36f..5d25a884eea6 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -115,6 +115,7 @@ int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
 int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
 
 void vcpu_sync_interrupts(struct vcpu *v);
+void vcpu_flush_interrupts(struct vcpu *v);
 
 #endif /* ASM__RISCV__DOMAIN_H */
 
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 366c3ff23e76..77738a01c8b5 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -174,6 +174,8 @@ static void check_for_pcpu_work(void)
     struct vcpu *c = current;
 
     vcpu_sync_interrupts(c);
+
+    vcpu_flush_interrupts(c);
 }
 
 void do_trap(struct cpu_user_regs *cpu_regs)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231316.1536543 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2j-0006wz-99; Fri, 13 Feb 2026 16:29:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231316.1536543; Fri, 13 Feb 2026 16:29: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 1vqw2j-0006v6-1B; Fri, 13 Feb 2026 16:29:21 +0000
Received: by outflank-mailman (input) for mailman id 1231316;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2h-0005Ws-EK
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:19 +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 250672fc-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:29:18 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso9047375e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:18 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 250672fc-08f9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000158; x=1771604958; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GtYixxVFRGricJNR3QGHatVLbdL2gCHohkRG/oMMero=;
        b=a9hrPUnYVSTpnjsjLOdKvuRFZD9HXiXb2CCe0xQaeZa4r7ZmNX1xF2TDtV0G7l02a8
         hPxzBcDf0OeZfbXXtgApM9i5EQ1XzYXJQBaX3Xs94x1FDKGkVvx3DZiOqIVmB9VzvgyC
         i18Nnb8STNMDv+PsWF0u1xVn6AYMbTdrL1Dt5p1HgHiQqPpVb8NUujhEVAH+uNLCUx+m
         0+OEsEBvFfRk3dLVSmxEZWosFeJy0Wd8vwOhb03B40LSDbRKRBelcmf74mpVXVhbFttI
         LNCP3vupLGsiM9R9UuHjcSNq/FOoVQ0m8zyGWZyMj7RSPRU1OqwsbcueQEdUbs2vHkZU
         Nkgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000158; x=1771604958;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=GtYixxVFRGricJNR3QGHatVLbdL2gCHohkRG/oMMero=;
        b=BWlBfC7d6Aqr2+4QyRdCNzjzeMH/4Bm1jxMnTEwdgAnbh2QcF+GIzFR53YfhHwMBUA
         9VP8BTouq8oP8ZBcEf7+YbEX3XmiX7HkKY0+H0gjguoZ+lTHibQfu0vgLyYNTPwaCtIm
         wJJLRWmgQzPbUIBqCJbX2GIgJyzjKiq3LMWVw+FIMnOGi/2Wzx7DMkZ2yKNV0Tb09shB
         IqcVnjdNicxSDYw+MyuiNh6x0P7AQAJJoDnzz2AMAkia5w2eWinYn0gfbW8gFDbpBRQP
         BtfP2Jyri/OGvkjVN6qgj7x5gEead/DbZA+qszuIRAyzdxWsp7SuTdLsvh/QdrPUGMJG
         qGRA==
X-Gm-Message-State: AOJu0YxLeWJOH5ABvPRdXiCbpWh59uNVNl34qdPbHIlnWYzJnhdP/4Cz
	6xNt67WBH0mtsJc6YGJM/GRjmnz/LetlPNhjoYfNcJR5qgAVytfr1YO4P27ywQia
X-Gm-Gg: AZuq6aLiZOiIQE2kKeIoCeWed3lRwosKKGFq3bwLtLymUF/+x3dtsRcIeftW2I1U/6Y
	nWybUpmMrlliKlFk+PuOgbkJG8LxHA0Ipi0mnUIISjivXvsnLsY6gwRq25ApsGSPZz3fAh1Odc2
	MX0c7zg4HD/mO2IbJGrDaoTSF1HygV44KMoJxgr6qwtQm0zMqglS2C3m7eACOTMdYo3ca/xef9L
	94jbjVFIvta5c4U6boXX7bKtGhKkPzs/Uun0pHqdFuZhUFqX/JJx22zmk+FNNQ4yK3I7ej4AINX
	ROxlbLpPnJ1LVVhkYigz/XuAactimFn6ni7lZCOBTTvMg5qF482S2Jgtngu10uiBySucv9Xq1g0
	px5SUBUAYDmK19wLot0eWYF70F67u8HIGdHAIXgBFxF6+Xfy0aIl18p4YhAGj/B++xDiLciN6C0
	+Qdp6OjapA4Q7wJAu+knOspWwms4WX5oVnMw07lf2/5Z+2z+CpPecuiJW1zPN3zfowFowtPvKg7
	rTv/dF3
X-Received: by 2002:a05:600c:1907:b0:477:73e9:dc17 with SMTP id 5b1f17b1804b1-48373a79afbmr42485465e9.35.1771000157888;
        Fri, 13 Feb 2026 08:29:17 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v4 07/16] xen/time: move ticks<->ns helpers to common code
Date: Fri, 13 Feb 2026 17:28:53 +0100
Message-ID: <360aa61f2a0d1a95268e431909d1f210733d7dc9.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

ticks_to_ns() and ns_to_ticks() are not architecture-specific, so provide a
common implementation that is more resilient to overflow than the historical
Arm version. This is not a practical issue for Arm, as the latest ARM ARM
that timer frequency should be fixed at 1 GHz and older platforms used much
lower rates, which is shy of 32-bit overflow. As the helpers are declared
as static inline, they should not affect x86, which does not use them.

On Arm, these helpers were historically implemented as out-of-line functions
because the counter frequency was originally defined as static and unavailable
to headers [1]. Later changes [2] removed this restriction, but the helpers
remained unchanged. Now they can be implemented as static inline without any
issues.

Centralising the helpers avoids duplication and removes subtle differences
between architectures while keeping the implementation simple.

Drop redundant <asm/time.h> includes where <xen/time.h> already pulls it in.

No functional change is intended.

[1] ddee56dc2994 arm: driver for the generic timer for ARMv7
[2] 096578b4e489 xen: move XEN_SYSCTL_physinfo, XEN_SYSCTL_numainfo and
                      XEN_SYSCTL_topologyinfo to common code

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - Add Reviewed-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Move ns_to_ticks() and ticks_to_ns() to common code.
---
 xen/arch/arm/include/asm/time.h   |  3 ---
 xen/arch/arm/time.c               | 11 -----------
 xen/arch/arm/vtimer.c             |  2 +-
 xen/arch/riscv/include/asm/time.h |  5 -----
 xen/arch/riscv/time.c             |  1 +
 xen/include/xen/time.h            | 11 +++++++++++
 6 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/time.h
index 49ad8c1a6d47..c194dbb9f52d 100644
--- a/xen/arch/arm/include/asm/time.h
+++ b/xen/arch/arm/include/asm/time.h
@@ -101,9 +101,6 @@ extern void init_timer_interrupt(void);
 /* Counter value at boot time */
 extern uint64_t boot_count;
 
-extern s_time_t ticks_to_ns(uint64_t ticks);
-extern uint64_t ns_to_ticks(s_time_t ns);
-
 void preinit_xen_time(void);
 
 void force_update_vcpu_system_time(struct vcpu *v);
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index cc3fcf47b66a..a12912a106a0 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -27,7 +27,6 @@
 #include <asm/cpufeature.h>
 #include <asm/platform.h>
 #include <asm/system.h>
-#include <asm/time.h>
 #include <asm/vgic.h>
 
 uint64_t __read_mostly boot_count;
@@ -47,16 +46,6 @@ unsigned int timer_get_irq(enum timer_ppi ppi)
     return timer_irq[ppi];
 }
 
-/*static inline*/ s_time_t ticks_to_ns(uint64_t ticks)
-{
-    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
-}
-
-/*static inline*/ uint64_t ns_to_ticks(s_time_t ns)
-{
-    return muldiv64(ns, 1000 * cpu_khz, SECONDS(1));
-}
-
 static __initdata struct dt_device_node *timer;
 
 #ifdef CONFIG_ACPI
diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c
index d2124b175521..2e85ff2b6e62 100644
--- a/xen/arch/arm/vtimer.c
+++ b/xen/arch/arm/vtimer.c
@@ -12,13 +12,13 @@
 #include <xen/lib.h>
 #include <xen/perfc.h>
 #include <xen/sched.h>
+#include <xen/time.h>
 #include <xen/timer.h>
 
 #include <asm/cpregs.h>
 #include <asm/div64.h>
 #include <asm/irq.h>
 #include <asm/regs.h>
-#include <asm/time.h>
 #include <asm/vgic.h>
 #include <asm/vreg.h>
 #include <asm/vtimer.h>
diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm/time.h
index 1e7801e2ea0e..be3875b9984e 100644
--- a/xen/arch/riscv/include/asm/time.h
+++ b/xen/arch/riscv/include/asm/time.h
@@ -24,11 +24,6 @@ static inline cycles_t get_cycles(void)
     return csr_read(CSR_TIME);
 }
 
-static inline s_time_t ticks_to_ns(uint64_t ticks)
-{
-    return muldiv64(ticks, MILLISECS(1), cpu_khz);
-}
-
 void preinit_xen_time(void);
 
 #endif /* ASM__RISCV__TIME_H */
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index e962f8518d78..2c7af0a5d63b 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -4,6 +4,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/sections.h>
+#include <xen/time.h>
 #include <xen/types.h>
 
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
diff --git a/xen/include/xen/time.h b/xen/include/xen/time.h
index fe0d7a578a99..2185dd26a439 100644
--- a/xen/include/xen/time.h
+++ b/xen/include/xen/time.h
@@ -8,6 +8,7 @@
 #ifndef __XEN_TIME_H__
 #define __XEN_TIME_H__
 
+#include <xen/muldiv64.h>
 #include <xen/types.h>
 #include <public/xen.h>
 
@@ -75,6 +76,16 @@ extern void send_timer_event(struct vcpu *v);
 
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds);
 
+static inline s_time_t ticks_to_ns(uint64_t ticks)
+{
+    return muldiv64(ticks, MILLISECS(1), cpu_khz);
+}
+
+static inline uint64_t ns_to_ticks(s_time_t ns)
+{
+    return muldiv64(ns, cpu_khz, MILLISECS(1));
+}
+
 #include <asm/time.h>
 
 #endif /* __XEN_TIME_H__ */
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231317.1536562 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2l-0007Vc-Gn; Fri, 13 Feb 2026 16:29:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231317.1536562; Fri, 13 Feb 2026 16:29: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 1vqw2l-0007VL-CD; Fri, 13 Feb 2026 16:29:23 +0000
Received: by outflank-mailman (input) for mailman id 1231317;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2j-0005Ws-Mw
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:21 +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 2662e47b-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:29:21 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4801c2fae63so9492955e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:21 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.19
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2662e47b-08f9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000160; x=1771604960; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kdt9zTgNaD55TiolqekfCQfWMrmcIrSemZ65SdGjqak=;
        b=dBQ0nRTCHweC5QwMTInlZ0sms8AD5jcJ69n07cxnCMyytWS4ZmJER85KBi+ExFYWui
         nReDV0yGAOeW9XL5PQUNbaWvFQB1h+XQG2s1hVen3nGYAO3ybEoF7X/k2F3rP+ACEny6
         8X1j2IP9sz/uF45xAqjL1RjCE3oMx1ZXZgufQnIbNsDZ+Fa329C6lOEGczJ3KeowUSyB
         tRgy6WYAsKWYL+XSerM/XivSc83qJkLF0RpB0JASjJ7VNwjssl9PVRyj29vOKrFwVBHg
         BZPakqr/+mUdlhbTAiQJid3/taSFf1/vlLVrdAgiaTzhha0ApWxMSY1x8e7I+bwBRVrA
         b5mA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000160; x=1771604960;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=kdt9zTgNaD55TiolqekfCQfWMrmcIrSemZ65SdGjqak=;
        b=iyHWnzHqj4DxphXK5hdldBMoMfN03W32ifyb0GoOlI/t4vZLgWs/L8rqx2kMLwsP6G
         j4tsJBr/bYe0zNyoB8XsQZl1dl/E9jckZiZq7OPCy1hybzmyYUy6dhls5kbXZMHTU6z1
         zkWnfqEYyvF6oa87opvXdDW+Rqyt4b/qwIcAOcS6zGBIrua6ulmHAaN5TilWVMkiwW+j
         sbpzsnserQ5v1/FFT4b1lV1oMlM8FuVksSOSG+MWTtR5bujn242Pci0yoaaOgKDqlJdJ
         2rEQnuG6A/bFGQSlfvTsOQW1xIdh/rlJidmPvm2U0d/j/ES2sXS6USoyM40rhfyRhB1N
         vCVg==
X-Gm-Message-State: AOJu0YwTRzJqBua2MjEKTdTuaKYPRlaoxVbXYZXnX2zoU++BMLWFrEOI
	wzROZtG00yg0e4v2fICe1OpGKlzTHDZLd9tbVSVoSYPBDA2zeGKnD4S+4Uf5JrbD
X-Gm-Gg: AZuq6aJUmXt0YRv4kJ/0d/cWWQpUdjM81j+V5eZ+ZMPthUV9Qo2/gu6FMYLj8a4dIJV
	obCB++sV7gnDQSXZcQldyW+t88hk5HPoWJ8IynFPIvxw9nzHH9YJhr0W7mb9PQVfKaix/9Ma43h
	qWqS6kkEZYX+77akmvrH59x2nC6iG2p6+Va6Ug8AffTAgrUfwYSDKAeckb8foxczhgMxyI9VmKr
	/Cs6M/tXgt/SPjb0f2lZNPK7FLPymcr/u7rZziTWU3CGmbZI9LNrJA1tqTgbXsZ8SPB0IatmVDE
	YjC4shtdQLME5KnX0zo4Xve9jdiC2+L4KZKmiGv/hlO6a1+OQ9S6wPGOqIXsqK7LkjVDVuzF0cW
	smNZiteQl26xsoMkaFIef+nj+MnjK8c5X3xYLNeyqwE7aGNfQnhEbCm+9l2ErX8nHchpQopybRH
	NP+17g8pJRpY5GA1yRvOvBIM1qKQZt7QoT/F/DIUDE5v2iBnPucUlvS3ggggJNbBr3Bw==
X-Received: by 2002:a05:600c:8411:b0:477:7af8:c88b with SMTP id 5b1f17b1804b1-48371051b20mr45916945e9.11.1771000160166;
        Fri, 13 Feb 2026 08:29:20 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 09/16] xen/riscv: introduce vcpu_kick() implementation
Date: Fri, 13 Feb 2026 17:28:55 +0100
Message-ID: <478b18f4eff1e0149b3514ad17b45745295196d3.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a RISC-V implementation of vcpu_kick(), which unblocks the target
vCPU and sends an event check IPI if the vCPU was running on another
processor. This mirrors the behavior of Arm and enables proper vCPU
wakeup handling on RISC-V.

Remove the stub implementation from stubs.c, as it is now provided by
arch/riscv/domain.c.

Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
for example, by randconfig what will lead to CI build issues.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - Add asm/perfc_defn.h to provide vcpu_kick perfcoounter to cover
   the case when CONFIG_PERF_COUNTERS=y.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/domain.c                 | 14 ++++++++++++++
 xen/arch/riscv/include/asm/Makefile     |  1 -
 xen/arch/riscv/include/asm/perfc_defn.h |  3 +++
 xen/arch/riscv/stubs.c                  |  5 -----
 4 files changed, 17 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 45a7f0d1da7e..307da467c72e 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -1,9 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/cpumask.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/sections.h>
 #include <xen/sched.h>
+#include <xen/smp.h>
 #include <xen/vmap.h>
 
 #include <asm/bitops.h>
@@ -235,3 +237,15 @@ void vcpu_flush_interrupts(struct vcpu *v)
 #   error "Update v->arch.hviph"
 #endif
 }
+
+void vcpu_kick(struct vcpu *v)
+{
+    bool running = v->is_running;
+
+    vcpu_unblock(v);
+    if ( running && v != current )
+    {
+        perfc_incr(vcpu_kick);
+        smp_send_event_check_mask(cpumask_of(v->processor));
+    }
+}
diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index 3824f31c395c..86c56251d5d7 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -7,7 +7,6 @@ generic-y += hypercall.h
 generic-y += iocap.h
 generic-y += irq-dt.h
 generic-y += percpu.h
-generic-y += perfc_defn.h
 generic-y += random.h
 generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
new file mode 100644
index 000000000000..8a4b945df662
--- /dev/null
+++ b/xen/arch/riscv/include/asm/perfc_defn.h
@@ -0,0 +1,3 @@
+/* This file is intended to be included multiple times. */
+
+PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index c5784a436574..1f0add97b361 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -208,11 +208,6 @@ void vcpu_block_unless_event_pending(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-void vcpu_kick(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231318.1536568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2m-0007Zb-5V; Fri, 13 Feb 2026 16:29:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231318.1536568; Fri, 13 Feb 2026 16:29: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 1vqw2l-0007YT-Or; Fri, 13 Feb 2026 16:29:23 +0000
Received: by outflank-mailman (input) for mailman id 1231318;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2k-0005Wn-5Y
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29: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 25e5c8fd-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:20 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4833115090dso10076225e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:20 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25e5c8fd-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000159; x=1771604959; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=U12wg7j2L+OzyyqYL/Nhiy8muuFfmghvCXhWj5eSfXY=;
        b=HNzZqAzJCc5molMLJ+UjmCnCZMeS5Q0NGdGy6uVA2NuPfj3K2+GOLQV9kG9+J6R2Ue
         LWLfyvlLD39VYBoqFLlMhfbQQ9e70FcQuGWQ3GPNj9LWDFqeyuT6OM34731tpTImifLb
         Iu1MVS6YrBlKUH8B8I5ZtNkK/+LqNpmWbEBxNMjCZDDeEPSLrEbMKwJZe63Wj0YVWbho
         SZtzbIxlBG4QHbdMbqj1569je3l2J95R4NeVlwvpVtLxMYKmpJ//p9RNCogG8oK9KNtl
         dKR5jpFrhRlzX7RQdAdmeEfB25eyCuSm9ZTEhlx5+xEIn9PeYgXS38NqyE+KQ2BJ+NBs
         jUHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000159; x=1771604959;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=U12wg7j2L+OzyyqYL/Nhiy8muuFfmghvCXhWj5eSfXY=;
        b=HsyyMfYopeonN2VQbx+MmRK9BbVFS+6KDgOLy/gZfKMKebhNxeHVcOugEiFS4stRPW
         vt06E+5jbM93d16oWoNCO7YIW6aBaRNXDofrFDiEVAfvzZ9BcguT0l9Il24Q2vdDY+Z4
         bpRmU2XvvrMvTuKwAiV9SApkMHyUUsdviu8ze1n4y2IIvDEc4/KHIOyYrA0spB+pzln1
         /iT9vlPsmOTn9sq5KW9zWArBcts5ce0Jfj2F3FcP7H2pZe8DnEo6kDixjKw4Fms3koWd
         fJ6ExGXpLpG6vEDHr34P5e1GZuFd/xJc4EvWaQpz94C+pRHjoCtoP8xwQBwo9/CYAC0J
         FRtw==
X-Gm-Message-State: AOJu0YyQ+SRxNxVBN43DIAHKNRLR7rJ+8vlNffmgZjNohdM4JHKHzmbn
	NFRIC7WbfY5kiG86gpmv4kYfwrez1aHhhqJbNsUVl8DcXbj+YniVgTkvU3RCDTkk
X-Gm-Gg: AZuq6aL5tOANSs5otA4dii4d3eoWJr2RPT0ciPQ5F2aC0z1qmU6HEmduiK5/BcOAH3f
	zoLVoEmbuUFD9WQ2rEfyig6OnEeHJplmpWZjNCgfe8hgMcmTmLriroAW6OHJrzpmcS4SX/U6XRJ
	VuQuqcI/eTuxkY1TusqHi7HjjsqQP9a3KQh7KLneYFoSZmnNqPM+US9xPqQW1oeFw4+NmP7CXYL
	vA4jxbZIxqu/qaHyi8tWb0V1Xq4yd1+ogUN8Yb/ix0pWnBzXS/2SEWB3k0ouTcMjgthxMkgSTcw
	bPSXS+bjRyrUJtRnDkBnohfIvUkegzj8DGNi/UyenTvga/pgOeTNgo6fgl/obWIzCJTcpwOXEt4
	/kSEVo2C7luaf+5bgJoVlCvcenmnuiulASiKSqqiro+O5IHPbcLp9dcF63kiB1iEGWxGBxWJ+AY
	aFRrnIlbGtomWJw8MP4IFBohsYRgmHO5VnXlwndRCVdtcWspUKwbJ/QAoaX1NzKlp1GZU2vQ==
X-Received: by 2002:a05:600c:4745:b0:483:6bb1:117 with SMTP id 5b1f17b1804b1-48373a7591amr33578375e9.32.1771000159094;
        Fri, 13 Feb 2026 08:29:19 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 08/16] xen/riscv: introduce basic vtimer infrastructure for guests
Date: Fri, 13 Feb 2026 17:28:54 +0100
Message-ID: <7426e2d974bfe67786c67709d487c7f64c22ae58.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Lay the groundwork for guest timer support by introducing a per-vCPU
virtual timer backed by Xen’s common timer infrastructure.

The virtual timer is programmed in response to the guest SBI
sbi_set_timer() call and injects a virtual supervisor timer interrupt
into the vCPU when it expires.

While a dedicated struct vtimer is not strictly required at present,
it is expected to become necessary once SSTC support is introduced.
In particular, it will need to carry additional state such as whether
SSTC is enabled, the next compare value (e.g. for the VSTIMECMP CSR)
to be saved and restored across context switches, and time delta state
(e.g. HTIMEDELTA) required for use cases such as migration. Introducing
struct vtimer now avoids a later refactoring.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - Add vcpu_timer_destroy() to void arch_vcpu_destroy().
---
Changes in v3:
 - use one container_of() to get vcpu instead of two container_of()s.
---
Changes in v2:
 - Drop domain_vtimer_init() as it does nothing.
 - Drop "struct vcpu *v;" from struct vtimer as it could be taken
   from arch_vcpu using container_of().
 - Drop vtimer_initialized, use t->status == TIMER_STATUS_invalid
   instead to understand if timer was or wasn't initialized.
 - Drop inclusion of xen/domain.h as xen/sched.h already includes it.
 - s/ xen/time.h/ xen.timer.h in vtimer.c.
 - Drop ULL in if-conidtion in vtimer_set_timer() as with the cast
   it isn't necessary to have suffix ULL.
 - Add migrate timer to vtimer_set_timer() to be sure that vtimer
   will occur on pCPU it was ran, so the signalling to that vCPU
   will (commonly) be cheaper.
 - Check if the timeout has already expired and just inject the event
   in vtimer_vtimer_set_timer().
 - Drop const for ticks argument of vtimer_set_timer().
 - Merge two patches to one:
   - xen/riscv: introduce vtimer
   - xen/riscv: introduce vtimer_set_timer() and vtimer_expired()
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/domain.c             | 10 +++-
 xen/arch/riscv/include/asm/domain.h |  3 ++
 xen/arch/riscv/include/asm/vtimer.h | 20 ++++++++
 xen/arch/riscv/vtimer.c             | 71 +++++++++++++++++++++++++++++
 5 files changed, 103 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index bc47e83b26d7..ffbd7062e214 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -22,6 +22,7 @@ obj-y += traps.o
 obj-y += vmid.o
 obj-y += vm_event.o
 obj-y += vsbi/
+obj-y += vtimer.o
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 35d8d5db02d0..45a7f0d1da7e 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -11,6 +11,7 @@
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
 #include <asm/setup.h>
+#include <asm/vtimer.h>
 
 struct csr_masks __ro_after_init csr_masks;
 
@@ -108,11 +109,14 @@ int arch_vcpu_create(struct vcpu *v)
 
     vcpu_csr_init(v);
 
+    if ( (rc = vcpu_vtimer_init(v)) )
+        goto fail;
+
     /*
-     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * As interrupt controller (IC) is not yet implemented,
      * return an error.
      *
-     * TODO: Drop this once the vtimer and IC are implemented.
+     * TODO: Drop this once IC is implemented.
      */
     rc = -EOPNOTSUPP;
     goto fail;
@@ -126,6 +130,8 @@ int arch_vcpu_create(struct vcpu *v)
 
 void arch_vcpu_destroy(struct vcpu *v)
 {
+    vcpu_timer_destroy(v);
+
     vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
 }
 
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 5d25a884eea6..3da2387cb197 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -8,6 +8,7 @@
 #include <public/hvm/params.h>
 
 #include <asm/p2m.h>
+#include <asm/vtimer.h>
 
 struct vcpu_vmid {
     uint64_t generation;
@@ -49,6 +50,8 @@ struct arch_vcpu {
 
     struct cpu_info *cpu_info;
 
+    struct vtimer vtimer;
+
     register_t hcounteren;
     register_t hedeleg;
     register_t henvcfg;
diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
new file mode 100644
index 000000000000..0d1555511755
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * (c) 2023-2024 Vates
+ */
+
+#ifndef ASM__RISCV__VTIMER_H
+#define ASM__RISCV__VTIMER_H
+
+#include <xen/timer.h>
+
+struct vtimer {
+    struct timer timer;
+};
+
+int vcpu_vtimer_init(struct vcpu *v);
+void vcpu_timer_destroy(struct vcpu *v);
+
+void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
+
+#endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
new file mode 100644
index 000000000000..32d142bcdfcd
--- /dev/null
+++ b/xen/arch/riscv/vtimer.c
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+#include <xen/timer.h>
+
+#include <asm/vtimer.h>
+
+static void vtimer_expired(void *data)
+{
+    struct vtimer *t = data;
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+
+    vcpu_set_interrupt(v, IRQ_VS_TIMER);
+}
+
+int vcpu_vtimer_init(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    init_timer(&t->timer, vtimer_expired, t, v->processor);
+
+    return 0;
+}
+
+void vcpu_timer_destroy(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    if ( t->timer.status == TIMER_STATUS_invalid )
+        return;
+
+    kill_timer(&v->arch.vtimer.timer);
+}
+
+void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
+{
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+    s_time_t expires = ticks_to_ns(ticks - boot_clock_cycles);
+
+    vcpu_unset_interrupt(v, IRQ_VS_TIMER);
+
+    /*
+     * According to the RISC-V sbi spec:
+     *   If the supervisor wishes to clear the timer interrupt without
+     *   scheduling the next timer event, it can either request a timer
+     *   interrupt infinitely far into the future (i.e., (uint64_t)-1),
+     *   or it can instead mask the timer interrupt by clearing sie.STIE CSR
+     *   bit.
+     */
+    if ( ticks == ((uint64_t)~0) )
+    {
+        stop_timer(&t->timer);
+
+        return;
+    }
+
+    if ( expires < NOW() )
+    {
+        /*
+         * Simplify the logic if the timeout has already expired and just
+         * inject the event.
+         */
+        stop_timer(&t->timer);
+        vcpu_set_interrupt(v, IRQ_VS_TIMER);
+
+        return;
+    }
+
+    migrate_timer(&t->timer, smp_processor_id());
+    set_timer(&t->timer, expires);
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231321.1536582 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2o-00085w-Ib; Fri, 13 Feb 2026 16:29:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231321.1536582; Fri, 13 Feb 2026 16:29: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 1vqw2o-00085d-Dl; Fri, 13 Feb 2026 16:29:26 +0000
Received: by outflank-mailman (input) for mailman id 1231321;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2m-0005Wn-5q
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:24 +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 2732d33a-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:22 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48375f1defeso5716165e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:22 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2732d33a-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000161; x=1771604961; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5hWO4jWrfrLp9yyPELp3VQAn+IIJ4GM5hz6O0oK25QU=;
        b=CCIadwNVQE/aeo301zLTi9O2azuT9S4rQGI3SHrWi8m+kDwUCPazBIQhNlXEMxdDaQ
         RfXXMe/BSyiRAhdXThU0XWsnulvi+yQIEVhyDqNfT4qlJwAeFc0LDPnR8LsClAukGfi5
         ka0kVDK0hmKiJVpkB6oc4K3yraQdwW1an5MdyFxiuPAo1IcLJgjmGfsp4p2tlrejTZtk
         QfmEilm9FYL0JlueRBNJZS0B+QCj3VdMtsgRXarCpSKjg8IN5RoC00IJswQofgoSEQVD
         7OVKIreoSYZ4aLUofrQhIVws+JdYYNh87YKYpZ8xD8TOQzygvfCuwYNOlLq2PbWIr2ov
         wpSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000161; x=1771604961;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5hWO4jWrfrLp9yyPELp3VQAn+IIJ4GM5hz6O0oK25QU=;
        b=jj2DDOxv2IIwjKPnjBKOyujGdQak2jOmU513aIjMMIx5j5uNdKNPTp9xtaZ78HgMVu
         VaYwbZ/In/nY4vXHvYDCGY5d8Y8+Il4NEwlUdroWe29VAi3BJPvTQ4sEK6tVMGcZp6t/
         TiJpJAhOcDtgoHMVWzsVv/2wifXcPHJVkxrV5mmv48KdS3s/FcrT0zDXbFJh9xigDpyS
         F7+uTZ6dwDDnRUNZfbGRhxlmW48uGtY1DJIu6b/ydaqEzaG/IWDXfn5nXXFNbFqAt6kJ
         0fmK7F95hUxMJygt79lSw16wSsG6MGXGSleoa6lMPVQutcHi6S322VXF8q3Zn0TX/85Q
         NdqQ==
X-Gm-Message-State: AOJu0Yw6o3aVVKT8eF7VyM6vFBIchn5dgU8dcmJ6oeHa5KowngsM2n3s
	w4gl60ZVlo3OUiQIyk6CgtasU72qTYYBXeOoMkS34RkRv/ef3ftBTQjlOJOHMM38
X-Gm-Gg: AZuq6aJL1ZN6zEeASpi67PvEPIgKoc/J/IxkH8xApJR1GE0Qrk+jnpcJBfB1UQcwQ/H
	HBXzl/q7WVDOgQURO0sOAWkDmFhJ6nGiUcQR+QoHvrbR/llz4G1qAaUrYmijnOKNB7jX2SEDufV
	XOOUnPLzZPeeobRDvuDo8yyFQXnoIi6HBXCL2lQu2BjOQPjvVbJp/mQy2ojnTvLzff8UcxClIqP
	6xG2lFwJyEvdMxu18JCYFpPVOfAaS8tjN//OXMrmTIcZJJAUmDY3wTFkjynS6kjOtMqDQssX7E5
	pFM62mJ5uSjtpWm6QNxJY3x9oYzB0NwkAiH9J1y/nnUhbVeZX0HEcu5hhmvuSK5SNcbzG4TXVld
	/y0Zk7Yqem0Y2+R3mMYhDsxYy1GeXDdWCbhUpm5xfyHPtn5ImURcWl8hDpI9RMrnl8ImqNdSLSs
	Fty4yKbNt2nS4rukbvXurHdo16gC0L9mXQd5wIVtJKotZf7uUZwy1iyEBLHOPYxXXEfJWw1/wpq
	+fu
X-Received: by 2002:a05:600c:c8d:b0:480:699c:abe9 with SMTP id 5b1f17b1804b1-48373a7b3f1mr37905615e9.37.1771000161294;
        Fri, 13 Feb 2026 08:29:21 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 10/16] xen/riscv: add vtimer context switch helpers
Date: Fri, 13 Feb 2026 17:28:56 +0100
Message-ID: <a684274407a6f02fdb09f9d08e30ed8f1c09e32b.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vtimer_ctxt_switch_from() and vtimer_ctxt_switch_to() to handle
virtual timer state across vCPU context switches.

At present, vtimer_ctxt_switch_from() is a no-op because the RISC-V SSTC
extension, which provides a virtualization-aware timer, is not yet
supported. Xen therefore relies the virtual (SBI-based) timer.

The virtual timer uses Xen's internal timer infrastructure and must be
associated with the pCPU on which the vCPU is currently running so that
timer events can be delivered efficiently. As a result, vtimer_ctxt_switch_to()
migrates the timer to the target pCPU when a vCPU is scheduled in.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - s/vtimer_ctx_switch_to/vtimer_ctxt_switch_to
 - s/vtimer_ctx_switch_from/vtimer_ctxt_switch_from
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Align the parameters names for  vtimer_ctx_switch_from() and vtimer_ctx_switch_to() in
   declarations to match the ones in the defintions to make Misra happy.
 - s/vtimer_save/vtimer_ctx_switch_from.
 - s/vtimer_restore/vtimer_ctx_switch_to.
 - Update the commit message.
---
 xen/arch/riscv/include/asm/vtimer.h |  3 +++
 xen/arch/riscv/vtimer.c             | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
index 0d1555511755..c70b0226515e 100644
--- a/xen/arch/riscv/include/asm/vtimer.h
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -17,4 +17,7 @@ void vcpu_timer_destroy(struct vcpu *v);
 
 void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
 
+void vtimer_ctxt_switch_from(struct vcpu *p);
+void vtimer_ctxt_switch_to(struct vcpu *n);
+
 #endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index 32d142bcdfcd..afd8a53a7387 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/sched.h>
 #include <xen/timer.h>
 
@@ -69,3 +70,17 @@ void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
     migrate_timer(&t->timer, smp_processor_id());
     set_timer(&t->timer, expires);
 }
+
+void vtimer_ctxt_switch_from(struct vcpu *p)
+{
+    ASSERT(!is_idle_vcpu(p));
+
+    /* Nothing to do at the moment as SSTC isn't supported now. */
+}
+
+void vtimer_ctxt_switch_to(struct vcpu *n)
+{
+    ASSERT(!is_idle_vcpu(n));
+
+    migrate_timer(&n->arch.vtimer.timer, n->processor);
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231323.1536587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2p-00088w-4Z; Fri, 13 Feb 2026 16:29:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231323.1536587; Fri, 13 Feb 2026 16:29: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 1vqw2o-00087X-Mt; Fri, 13 Feb 2026 16:29:26 +0000
Received: by outflank-mailman (input) for mailman id 1231323;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2n-0005Wn-5p
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:25 +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 27cab0c3-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:23 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4836e3288cdso6974395e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:23 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 27cab0c3-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000162; x=1771604962; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kV1At2uKXk7mbgmcEWB93vzkp5laONizknlqDWczQMQ=;
        b=VCV1ZJRFHswvkdpk0MORmxaaU1qyEV/J9Vp4c0xH67zn1nQdP1CXUZy/DGQhf6PzGg
         g/tqRka1P4uV11AuRNh0U37ky6cZ4lHtf9mmP0lK44N9ZDIusvrLEGxacMaRa7P95o0+
         lSlimhU+ElR6T77znmXVsTYxQtcdPmYryMV69XmT52tHQP+In+wxxniDDXNUdcs8OaJs
         1hVh759YXu5TsWcjyYCRQO80b5HlJMY5t0h0MKJ6cdjMH5dfpJ8vSHUo6BRB5lITxbRL
         63hCfNPAQeu95VU2R9QKqzqUpuv0B7/J67JheOtp/mgAzSrFFwT6A+85AGuICBvgArqT
         a/zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000162; x=1771604962;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=kV1At2uKXk7mbgmcEWB93vzkp5laONizknlqDWczQMQ=;
        b=mDE1KpvxQgP6bUWHFUN5mvBvX/Mz+qSmsQ16rRqFL/wJSW5QhZtKqccfM4tSFpk0xI
         DPCQlwcPDefSKk7eu8YWaIbZe9GV8fHIV6k+70QkOelo5cndTGON4+B4J1nXxAQUi4FP
         i0KzijO1FZNVsdia1Ydm1HBCjDYW2c0vZ+mRB2fFTaMp/e/Jmdqyl1S2B/AjoA9r/EnH
         nQUrMGNd4L6k7JTPqEoK3K6W3aYvRxIKug+LSi8ZoFttsM2Ch90xmf54p5l/4UHykkbQ
         qezcw1t0WiKGGj2qJdoHa0rQWBiS80BXkN7r2HKwJqK0LikahLJCs0XDpjguIVgaXmj3
         asQw==
X-Gm-Message-State: AOJu0Yx34yJbTUoX0ePb8ZU5/Rh2o3FjbJPxgZeVuOA6w9rbP3P1CRaW
	8mr4calWQIggbbRtjcXzEcdm7VU/689iuk7cw8I8F8b72BbIi9+TEEoQ2K6bvCcH
X-Gm-Gg: AZuq6aLpeD3RHQ0m1WQJ8lNtrHRpeNixgjXkFNg58MT1lI5HEojD/M8SR+atTyepLRI
	/V0QqFlvXKl295KxSQ+kt7LZxA215GL5Dbqbf7o9xWFvj49CvfEOZMlgXF+J/ZS4XGrEUJhJsgI
	Xw+JjGk0W4aejtrW+uc8JYdz+/ZrRUmzD5K2kpPLv4BLVqzCFSqWmQEXMvQXYl4zpO840Os4dYF
	r/+k9T3w0dpkb9gFMKjJYtY5gA7fZJCUQHvGrHq8b5WrspCGLdJMpdHaUZnu06wGc9rRw/6eZ0h
	1FmhKPKAPl1dRYh0W/iaB7v0bjo4nK4fgRADZOmS0/2LDCdC0DXmkOhu6fuaNAQYwgC1LHVAIUU
	eH5orjM4TcOG6bwhs2oz5c+VznrWiuI9Gz+47C41ZkI1uZ7RGGo+aA2roiXJ7gZS082MH/qU09C
	lK3YpqeRWAOJqvVRfISY1MArsb8h2V4Mrt68Ssf7rxRID325693UDvjAtUuTtoqhWOEv/yiQ==
X-Received: by 2002:a05:600c:3b87:b0:475:ddad:c3a9 with SMTP id 5b1f17b1804b1-48378da53a2mr12280675e9.13.1771000162450;
        Fri, 13 Feb 2026 08:29:22 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 11/16] xen/riscv: implement SBI legacy SET_TIMER support for guests
Date: Fri, 13 Feb 2026 17:28:57 +0100
Message-ID: <04f25a5eb19540f1fd6ff3bf4c940933ca3e0b7b.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add handling of the SBI_EXT_0_1_SET_TIMER function ID to the legacy
extension ecall handler. The handler now programs the vCPU’s virtual
timer via vtimer_set_timer() and returns SBI_SUCCESS.

This enables guests using the legacy SBI timer interface to schedule
timer events correctly.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3 - v4:
 - Nothing changed. Only rebase.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/vsbi/legacy-extension.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/riscv/vsbi/legacy-extension.c b/xen/arch/riscv/vsbi/legacy-extension.c
index 2e8df191c295..090c23440cea 100644
--- a/xen/arch/riscv/vsbi/legacy-extension.c
+++ b/xen/arch/riscv/vsbi/legacy-extension.c
@@ -7,6 +7,7 @@
 
 #include <asm/processor.h>
 #include <asm/vsbi.h>
+#include <asm/vtimer.h>
 
 static void vsbi_print_char(char c)
 {
@@ -44,6 +45,11 @@ static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
         ret = SBI_ERR_NOT_SUPPORTED;
         break;
 
+    case SBI_EXT_0_1_SET_TIMER:
+        vtimer_set_timer(&current->arch.vtimer, regs->a0);
+        regs->a0 = SBI_SUCCESS;
+        break;
+
     default:
         /*
          * TODO: domain_crash() is acceptable here while things are still under
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231324.1536590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2p-0008E2-F3; Fri, 13 Feb 2026 16:29:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231324.1536590; Fri, 13 Feb 2026 16:29: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 1vqw2p-0008Cb-6R; Fri, 13 Feb 2026 16:29:27 +0000
Received: by outflank-mailman (input) for mailman id 1231324;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2o-0005Wn-6I
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29: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 287a6297-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:24 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48371119eacso10399525e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:24 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 287a6297-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000164; x=1771604964; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CLlglP14ExjU++WXhAZWVrIW/WEgsqaINRWzZuIchKM=;
        b=f4UH0M0NJRe//6Ej9tGfxpwZE7+bLCyFq9bE0Ixu3hL4vo6QKnJOc5Fn2I+TQA8vGr
         fPUPYGXmrDmIfWyVq5oL/qn8b4weln1NuXd0m+SLyLCx7yygOF9CFDW/d/s0by1z7SES
         laWM72zPAZdDgXJVLEtzdLBZBYnein7U0ugfe4sQ/4S2d7wBC1hChEXqa08qYIUMoaY0
         qCYwKP9/ZSiYMUi8yKf/GHDVWPnmiI6OdBf6hqvPGdKMwD18N80n98GdUMtzG41uYOzZ
         nfed05URt2oalyTVnkTzvzJ4lIDZtsVZk/KSD3tkWlrM/PBZXPBsNNuZ3V37EpdY1O2k
         /srQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000164; x=1771604964;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CLlglP14ExjU++WXhAZWVrIW/WEgsqaINRWzZuIchKM=;
        b=pqoJCtplbDEliVCf36MJDZM+OygJNoshQAey5n1bpZRzKHil4gOA3hxBRhG3lPX2Gf
         jZQs6Xop7/3upd+AnpYfgwsQLMvgYn/73zCYqc/rQ8fZkYjNFKM31DiGM3zLalK9cBIZ
         qEKL/6pP+0oCe8lcOaPloARW+v6KNe6f1oCm3y1AkP4OEgHQ5qrh9j4UtVjQDsYSCKNF
         /Ywu/y7j4xIEUhCtZFel0UTZ9owSyV93lyif/3J1IipNlEpmp29JhwOykJepDExZqC+i
         ULjS3uo9N9jFcE90f1jP+ICQQ4w7v3cmxSyYvdEft6y4vllmMeCqVeaZj5L7navkLva+
         SBjw==
X-Gm-Message-State: AOJu0Yx7McEE3Mpqf9FmXtKqdXaLtyLU4okLxdkqt3uASZPTSniNEqkd
	Zh7djugT+ImU+DLZdtaevCvu39EjPeUVl5IJAuClBAfLs0AUIoTv0dVusox8v1+d
X-Gm-Gg: AZuq6aIAm3KBCFxmBEHUY3qGzh2Cigvf2nsYHI9zmiS1JmPYOzC4CLhtFx5JVg91ci+
	aAtsb5uOpV6jSzIrkRWnFjpIZYChsThMrHiqoaQaLspGua0ViCi94BR2AuUo2Sx0Aby+nJf8aME
	KPK2ZiBIEkGTMIcVF6qr/3F4Vh3vhNgqKxWIEY1D5sjp5OCXkwcM7IAPEfAtD5l1XLIE+yBAbdI
	QEi45a7BgnhOstpdWPnMLLDDTyq83PCvMJqjioviTN/j+fmdaBbI0MCdHBnHhyf/fFcDO7jCVZF
	gh+LWD5pdP46o1p1hWMr3f/RJNRPSjn10wZPbKXVh4RSJklfZTOE7tpJ1gzmns+ZiwM46KB1UCi
	mMr6EBzPaWyKxMFfiJbNTl365akc9OK8l4IearHiLDz2SgPODirNY2n870d1RaewCHTiYCF4K6B
	RdMIQsoDuDPJSrhDC9PI8UatM1SQQx7DCRatz0NfuESIHceMLkX941175sCatU7SiKc9sHUA==
X-Received: by 2002:a05:600c:4e49:b0:477:54cd:200e with SMTP id 5b1f17b1804b1-48373a08300mr40938015e9.1.1771000163535;
        Fri, 13 Feb 2026 08:29:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 12/16] xen/riscv: introduce sbi_set_timer()
Date: Fri, 13 Feb 2026 17:28:58 +0100
Message-ID: <6d811ceefa3bfc4e6bd5d11b0a4d4eef886bc693.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a function pointer for sbi_set_timer(), since different OpenSBI
versions may implement the TIME extension with different extension IDs
and/or function IDs.

If the TIME extension is not available, fall back to the legacy timer
mechanism. This is useful when Xen runs as a guest under another Xen,
because the TIME extension is not currently virtualised and therefore
will not appear as available.
Despite of the fact that sbi_set_timer_v01 is introduced and used as
fall back, SBI v0.1 still isn't fully supported (with the current SBI
calls usage, sbi_rfence_v01 should be introduced too), so panic()
in sbi_init() isn't removed.

The sbi_set_timer() pointer will be used by reprogram_timer() to program
Xen’s physical timer as without SSTC extension there is no any other
option except SBI call to do that as only M-timer is available for us.

Use dprintk() for all the cases to print that a speicifc SBI extension
is available as it isn't really necessary in case of release builds.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
 - Add "stime_value is in absolute time" to the comment above declaration
   of sbi_set_timer() function pointer.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Init sbi_set_timer with sbi_set_timer_v01 as fallback value.
 - Sort SBI IDs in the same way as SBI EXT IDs are declared.
 - Add __ro_after_init for sbi_set_timer variable.
 - use dprintk instead of printk to print information if SBI ext is available.
---
Changes in v2:
 - Move up defintion of SBI_EXT_TIME_SET_TIMER and use the same padding as
   defintions around it.
 - Add an extra comment about stime_value granuality above declaration of
   sbi_set_timer function pointer.
 - Refactor implemetation of sbi_set_timer_v02().
 - Provide fallback for sbi_set_timer_v01().
 - Update the commit message.
---
 xen/arch/riscv/include/asm/sbi.h | 21 +++++++++++++++++
 xen/arch/riscv/sbi.c             | 40 +++++++++++++++++++++++++++++++-
 2 files changed, 60 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 79f7ff5c5501..e612f49e425b 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -29,6 +29,7 @@
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
+#define SBI_EXT_TIME                    0x54494D45
 
 /* SBI function IDs for BASE extension */
 #define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
@@ -48,6 +49,9 @@
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA       0x5
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID  0x6
 
+/* SBI function IDs for TIME extension */
+#define SBI_EXT_TIME_SET_TIMER          0x0
+
 #define SBI_SPEC_VERSION_MAJOR_MASK     0x7f000000
 #define SBI_SPEC_VERSION_MINOR_MASK     0x00ffffff
 
@@ -134,6 +138,23 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
 int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
                                 size_t size, unsigned long vmid);
 
+/*
+ * Programs the clock for next event after stime_value time. stime_value is in
+ * absolute time. This function must clear the pending timer interrupt bit as
+ * well.
+ *
+ * If the supervisor wishes to clear the timer interrupt without scheduling the
+ * next timer event, it can either request a timer interrupt infinitely far
+ * into the future (i.e., (uint64_t)-1), or it can instead mask the timer
+ * interrupt by clearing sie.STIE CSR bit.
+ *
+ * The stime_value parameter represents absolute time measured in ticks.
+ *
+ * This SBI call returns 0 upon success or an implementation specific negative
+ * error code.
+ */
+extern int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
+
 /*
  * Initialize SBI library
  *
diff --git a/xen/arch/riscv/sbi.c b/xen/arch/riscv/sbi.c
index 425dce44c679..b4a7ae6940c1 100644
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -249,6 +249,38 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
                                           unsigned long arg4,
                                           unsigned long arg5);
 
+static int cf_check sbi_set_timer_v02(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+static int cf_check sbi_set_timer_v01(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_0_1_SET_TIMER, 0, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+int (* __ro_after_init sbi_set_timer)(uint64_t stime_value) = sbi_set_timer_v01;
+
 int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
                           size_t size)
 {
@@ -324,7 +356,13 @@ int __init sbi_init(void)
         if ( sbi_probe_extension(SBI_EXT_RFENCE) > 0 )
         {
             sbi_rfence = sbi_rfence_v02;
-            printk("SBI v0.2 RFENCE extension detected\n");
+            dprintk(XENLOG_INFO, "SBI v0.2 RFENCE extension detected\n");
+        }
+
+        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
+        {
+            sbi_set_timer = sbi_set_timer_v02;
+            dprintk(XENLOG_INFO, "SBI v0.2 TIME extension detected\n");
         }
     }
     else
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231326.1536609 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2s-0000Q8-7F; Fri, 13 Feb 2026 16:29:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231326.1536609; Fri, 13 Feb 2026 16:29: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 1vqw2r-0000Op-Pw; Fri, 13 Feb 2026 16:29:29 +0000
Received: by outflank-mailman (input) for mailman id 1231326;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2p-0005Wn-7Z
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:27 +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 291e1003-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:25 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso8778525e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:25 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 291e1003-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000165; x=1771604965; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5shaKaLaj3PbsgiRISlWhSdddD1d/VOeFOR/4Kyrmqo=;
        b=WVwJyaSl4liyWVAePxTkCH+8vgRE8k0PDKiXxQtQwuWMFjX3lwgrEkLiVrsRE2Zdlm
         hWHKTHzfOg9dE5/NvetjIjtlT4Ca76RdIq/vAdvxgCFuYlfxiAZ4CytK+zDMGNBl1Z4x
         Uhhr5TuTBYSV5kA0H5Ek1DBGe7GGvZFIISf9ioPDG4slDSujJl2OubkeOdFMW7iCTKuf
         2zdMK/clNe8Dc9YnvP4wNaJg/U6gxujxkUifg40z9KSrzcsrt0VE4jTOHaWNdqSsob8g
         Y7/z9pAhUyM717uOOjBeL32j4XP04MkJ7PwoSDK2/RHnfTixy9O+Txngfajr14LMriv+
         UprQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000165; x=1771604965;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5shaKaLaj3PbsgiRISlWhSdddD1d/VOeFOR/4Kyrmqo=;
        b=fHtH4cY6ZiybNktv50po9S/3MGhd3ms6jqFK6xgSoBZJ5c2FMvPprn1SZiXpaNjGMr
         +R8P2y1fojGchuyJDJWqASxQJbG2Zkni5/baQdOeaRUCBPyE3LXalLxlqMh+aM1La/8o
         SPHIu6qfnJ52iSQjZw0qDhL9Q3gx4FPdFxHBJyfqTFjayhwuq/ut5E6suLoJauQZb0Hx
         SsEXOhrDhgRlUYyUIvo4GqLX7EAUUT02Fug9xxrkUwRlC8lz45JaJG16R3FRYB1b7NsB
         MFm51ZQEoqxGhPUrm1f/M4+ZKJIH69bsbzXLQovT6kWc5cVrhAiox36zwuIZ+JSD6i/k
         ZRCQ==
X-Gm-Message-State: AOJu0Yyd97Kvid5siagVfMkJje9dvIMUo1j2VCg5BwWpcIHrju2nLcF4
	R41Dt9vIArmoAUdQEYllLFc63xT0PtNbZZ7ed4jodhFSPK7Ge7hQ5Ib0YhcLPY5W
X-Gm-Gg: AZuq6aIH+EsK8c88nup36dsYr5/C2xok9eb7JvMxHNP9xEng10gqjMBadJv8fn7jBOr
	8ROmk4pDT4s7A6KHf33VA/pc+puoAZJXqIvncCrYHl21FCoKBAvn6VtFykMr7nsJZB4Vg1hgdkB
	YjgNmTvpHULiBqgZMNXpUY5c5C03sMIpHJubAKw+A6LgiyTZyvBeWM1p99TjMo1Phr00wWn+Zu+
	cVSLVw2p8QTMy+D6CkziGkpe3R7ZC/8mOvuMYa+BRMeU6idipwzlW8qcDNIyEQo0PgXYUEXnbmH
	IRGBM9C+fetwxgMalgtqaFnpJNQmedRJlVPTGzib50i197jAHVz+No/N06NYAmvQ+X3Cof1yeLH
	QJv+s7Behoiwjddh7D0L35SVmzJwcWFCgbTHJvD7HGszrpMX/G3gmUAJIeCiuxKmWm88qdUWZFd
	k3gZw38DeyqDrb9xOWYctKtBj7eyn1HOYNkShaVHlVxQF4RIwt4rzPRKOWedzIdXlnT1PYvA==
X-Received: by 2002:a05:600c:64c6:b0:46e:4e6d:79f4 with SMTP id 5b1f17b1804b1-48373a2626dmr39747575e9.15.1771000164568;
        Fri, 13 Feb 2026 08:29:24 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 13/16] xen/riscv: implement reprogram_timer() via SBI
Date: Fri, 13 Feb 2026 17:28:59 +0100
Message-ID: <c768ea71f797a92c68690207d5ba0034077b3d42.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement reprogram_timer() on RISC-V using the standard SBI timer call.

The privileged architecture only defines machine-mode timer interrupts
(using mtime/mtimecmp). Therefore, timer services for S/HS/VS mode must
be provided by M-mode via SBI calls. SSTC (Supervisor-mode Timer Control)
is optional and is not supported on the boards available to me, so the
only viable approach today is to program the timer through SBI.

reprogram_timer() enables/disables the supervisor timer interrupt and
programs the next timer deadline using sbi_set_timer(). If the SBI call
fails, the code panics, because sbi_set_timer() is expected to return
either 0 or -ENOSUPP (this has been stable from early OpenSBI versions to
the latest ones). The SBI spec does not define a standard negative error
code for this call, and without SSTC there is no alternative method to
program the timer, so the SBI timer call must be available.

reprogram_timer() currently returns int for compatibility with the
existing prototype. While it might be cleaner to return bool, keeping the
existing signature avoids premature changes in case sbi_set_timer() ever
needs to return other values (based on which we could try to avoid
panic-ing) in the future.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Correct the comments in reprogram_timer().
 - Move enablement of timer interrupt after sbi_set_timer() to avoid
   potentially receiving a timer interrupt between these 2 operations.
---
Changes in v2:
 - Add TODO comment above sbi_set_timer() call.
 - Update the commit message.
---
 xen/arch/riscv/stubs.c |  5 -----
 xen/arch/riscv/time.c  | 43 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 1f0add97b361..cb7546558b8e 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -21,11 +21,6 @@ nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* time.c */
 
-int reprogram_timer(s_time_t timeout)
-{
-    BUG_ON("unimplemented");
-}
-
 void send_timer_event(struct vcpu *v)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 2c7af0a5d63b..7efa76fdbcb1 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -7,6 +7,9 @@
 #include <xen/time.h>
 #include <xen/types.h>
 
+#include <asm/csr.h>
+#include <asm/sbi.h>
+
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
@@ -40,6 +43,46 @@ static void __init preinit_dt_xen_time(void)
     cpu_khz = rate / 1000;
 }
 
+int reprogram_timer(s_time_t timeout)
+{
+    uint64_t deadline, now;
+    int rc;
+
+    if ( timeout == 0 )
+    {
+        /* Disable timer interrupt */
+        csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+        return 1;
+    }
+
+    deadline = ns_to_ticks(timeout) + boot_clock_cycles;
+    now = get_cycles();
+    if ( deadline <= now )
+        return 0;
+
+    /*
+     * TODO: When the SSTC extension is supported, it would be preferable to
+     *       use the supervisor timer registers directly here for better
+     *       performance, since an SBI call and mode switch would no longer
+     *       be required.
+     *
+     *       This would also reduce reliance on a specific SBI implementation.
+     *       For example, it is not ideal to panic() if sbi_set_timer() returns
+     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
+     *       without SSTC we still need an implementation because only the
+     *       M-mode timer is available, and it can only be programmed in
+     *       M-mode.
+     */
+    if ( (rc = sbi_set_timer(deadline)) )
+        panic("%s: timer wasn't set because: %d\n", __func__, rc);
+
+    /* Enable timer interrupt */
+    csr_set(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    return 1;
+}
+
 void __init preinit_xen_time(void)
 {
     if ( acpi_disabled )
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:29:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:29:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231327.1536619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw2t-0000fI-Sd; Fri, 13 Feb 2026 16:29:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231327.1536619; Fri, 13 Feb 2026 16:29: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 1vqw2t-0000cR-0f; Fri, 13 Feb 2026 16:29:31 +0000
Received: by outflank-mailman (input) for mailman id 1231327;
 Fri, 13 Feb 2026 16:29: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2q-0005Wn-Ij
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:28 +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 29e3e8cd-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:27 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-480706554beso10850105e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:26 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29e3e8cd-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000166; x=1771604966; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=W1EYQt5A3i5QUF1c7sbvdjSw7GZbau53/KdhZnxOwj0=;
        b=hRb/fOhgG76ubhtpx1WqzkkszCFuClqz5ihxcxWFXpQ6YMdiTqj98eplps22lk0bSA
         eqDIDjstkXddwPF1coVBPSdEsLvApiDiJDqVC8N5H3yFBxbgxE+r6zpzaQ/4UOi4FLUU
         QAj0LGxQ0KJ91fMZrMoYDzmN3jPbdaz0SMTm9DUDnGpfhVnw2WXQwhgui0l8eNXY3e+m
         ZlWZun7ElkcYhK/Zfb6AS8HqQGC+Lbhx6Ogi9R+AKQ/3PvrEP9CR3kBBEr1ISmDTbUDc
         ayfUauPr+gveuQFISwvHDzMM7cGtKtIx6c+zIxGYRh9PfELIGXHyNI8bPpH+iqgNIODM
         QRrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000166; x=1771604966;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=W1EYQt5A3i5QUF1c7sbvdjSw7GZbau53/KdhZnxOwj0=;
        b=X1ESuqDgQ3AsoGajapiSQ/cxy7jJHta0GYWw3iE9Yai2jQl72Mx2XMRV2fN+Wo9te+
         zfYrr6QXbY4ZMcm1ozmrUqFiihvIuK5/IOPnd6V2qwVLKwOwzpSgtZ/JRq1E0xTQLOCF
         Pm8aIIvEN5or0e1Ie82Slv4dLLA3IPpTrTz9XcFIc4jTpGH/9b3Im8fw/z31Dib6+D9+
         cKk+9K9mRpkuiplKomRhJV1yyqJcxP+zi3smi3kkvhBQtrZ72NYedbk2Br2rIjS3j/1O
         Fy1vDCjJW3NA+CYdk8gt+FLhEeSnf7AU93PveLBeUnwBxxn0qdxIsyLf76eq9o1pTHQ5
         jwUw==
X-Gm-Message-State: AOJu0YxAB8gwWSQEhqlDueLKNO1yIzf650CsFNcselHB7LMz960VDL+N
	cN8uqrB6UMLcbLOYaJy4zm4PyWlo5cVBrv6RFwg8VcqYqZfsjID5J+wIIGPoyMdD
X-Gm-Gg: AZuq6aIGzWTQjUzPUkpP5OJdvW15xOC9oAV+Z4cG2HhF4+eQwqrO40Rhxr+Av7a7a5R
	OiAJL1Q9IwOzSDgO+Y8kKR0tX8puyuzMLd0lggPcl1HEww6tAAiht8pI/avKGoWVpaqrU3Mkwey
	z7tPV2uEwyDVNjXqWs0qbdree3hM0A/tt4JnICcN1HiUBbS9NYx0aOmx8mKZOubCWoDwoVztDXl
	AzA9gt/9ufhAWBPh2lzQd4dSP8411ZLb24Z3LrtuKFPFu6ZAS70ZpfL4E3xov0tzpCwFxdIBR2Y
	ph6HKFmqCmSYS+NO2oZG7plGzjjr/+1rE0EGzHV6QSYQjtxVUbqpQCuugOszuRR+OdrQU6E1Yox
	aFg/Hh9PPS4VqQlbB8MH47C8bID1efgAKpsjIja0nkYXvZlYCZtBdSZMgnWqOxZ3S/O1ovKjvLm
	wLRFzJ7x2sb8m9Wr4a92cA1ySl2YurXQ6oLpwC5QrrTEJjmXkqK7jOShV5gbfyuP4tUKiNLg==
X-Received: by 2002:a05:600c:8486:b0:480:4a4f:c363 with SMTP id 5b1f17b1804b1-48373a1bbd0mr37656235e9.9.1771000165830;
        Fri, 13 Feb 2026 08:29:25 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 14/16] xen/riscv: handle hypervisor timer interrupts
Date: Fri, 13 Feb 2026 17:29:00 +0100
Message-ID: <85118bb05a7a0635241ca15f80dcee8c01eada92.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce timer_interrupt() to process IRQ_S_TIMER interrupts.
The handler disables further timer interrupts by clearing
SIE.STIE and raises TIMER_SOFTIRQ so the generic timer subsystem
can perform its processing.

Update do_trap() to dispatch IRQ_S_TIMER to this new handler.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Drop cause argument of timer_interrupt() as it isn't used inside
   the function and anyway it is pretty clear what is the cause inside
   timer_interrupt().
---
 xen/arch/riscv/traps.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 77738a01c8b5..ce8d346a14d2 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -10,6 +10,7 @@
 #include <xen/lib.h>
 #include <xen/nospec.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 
 #include <asm/cpufeature.h>
 #include <asm/intc.h>
@@ -178,6 +179,15 @@ static void check_for_pcpu_work(void)
     vcpu_flush_interrupts(c);
 }
 
+static void timer_interrupt(void)
+{
+    /* Disable the timer to avoid more interrupts */
+    csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    /* Signal the generic timer code to do its work */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -219,6 +229,10 @@ void do_trap(struct cpu_user_regs *cpu_regs)
                 intc_handle_external_irqs(cpu_regs);
                 break;
 
+            case IRQ_S_TIMER:
+                timer_interrupt();
+                break;
+
             default:
                 intr_handled = false;
                 break;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:33:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:33:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231412.1536631 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqw6s-0005jM-P3; Fri, 13 Feb 2026 16:33:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231412.1536631; Fri, 13 Feb 2026 16: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 1vqw6s-0005jF-MV; Fri, 13 Feb 2026 16:33:38 +0000
Received: by outflank-mailman (input) for mailman id 1231412;
 Fri, 13 Feb 2026 16:33: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqw6r-0005j8-Ai
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:33:37 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bd93bfcd-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:33:35 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA3PR03MB7396.namprd03.prod.outlook.com (2603:10b6:806:39a::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Fri, 13 Feb
 2026 16:33:31 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 16: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: bd93bfcd-08f9-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lF3gymsVmJWTV2bbRY1xLxLksCckMSng+lKEuN7DGQZw//QKnvCLrGqJbfes9v4acyhyk7uNrkTrEWgeB8b6rww9+3UT9nGXuIwrllT8uSZEPzJHCuHK12obSB5uXTp6Vt54t4bgDchq5Yu04zlnPcqLPPL/T5lz7qUcIlU1k/3JvxUBxNV1R/5P7s5FqDwPQMryAvyrbYURTXn7KTy2PYgkY46YaVyktK3X+PZb19QCjzYwUSThX0cdEvQpHsfJjsqP2zFcl+XX+N5miDwkxt5K0X9d5iAu59belCAzkiPf+n+VqfWdQ+/xlEWE9w/QYkXmmb0t4+LZ3Lzapwoxlw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yqm1//Ni5dovdXJ2JqxsMrEse5eljym6mkA8zl2x1tU=;
 b=MZDXB3+Ggh+/WPPb3yFr12ZGCsQWTCPKBbNyrouuD9j0PtSR1Vy2BHCaUK0QQxHeHcEmgwjdsNwioNtPlrXJ25f3J2/MLx4ETsgLyGpHMYNe1emhCj2sCjxRARHt1K2DmMA8Mmn6JnTIAMEGjaOXD8FTF12CdcdT1D/N/oXyjf+VDfTIcQnvSguBFlL7LK5JlE8hjeObIJCHrwu94blptyUhO8NRkmCUIeeDN7dhMjq3dE8yMMXVRF4ACPUUSVZUOjLhr/M5LOCSv8Yke+HB6uBbd343U6r7347N/O8oGIoX8LZyGy3bvmSwgFKypzaze9vxV2K49pM5V3h+AZRFxQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yqm1//Ni5dovdXJ2JqxsMrEse5eljym6mkA8zl2x1tU=;
 b=mipOmtlmrnegsnGnvAtnbbcfu4iYD6SCGDBdavz2ytxFLH8vRiQyF7J8FcLkQ/6KUVrTfLQpFPsQj8gOL6w10lrWs0NWE/HMOBrZZs/Wu5Bmpjzjz2WCSNPURVUUaQZXDwcITkQG/OSV/v9QbvoI/yFr7ZHmvg2QIWZV0IHkG2Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 17:33:27 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Alejandro Vallejo <alejandro.garciavallejo@amd.com>,
	xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH 1/2] x86: Make hvm_enabled a constant unless both PV and
 HVM are both compiled
Message-ID: <aY9SV1PeqNqiPWlx@Mac.lan>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-2-alejandro.garciavallejo@amd.com>
 <aY80qJVIZOjjqBOS@Mac.lan>
 <1e4e20cb-71fd-4ed3-888b-7ca8b17175a5@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1e4e20cb-71fd-4ed3-888b-7ca8b17175a5@citrix.com>
X-ClientProxiedBy: MR1P264CA0118.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::25) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA3PR03MB7396:EE_
X-MS-Office365-Filtering-Correlation-Id: 767288b2-73c5-4468-1f88-08de6b1d9f8a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V2d2Y0hhWHZ1ZUwxU01WWW9SWEdISVZVRXB6R0djLzA2NGdYMEdIQTFGd3Bk?=
 =?utf-8?B?ckNyOGJqNWx6eDV5NUZDVnNtWGx6SG9BR3dNM3BjQjVBVUhCem93d3RTZjNP?=
 =?utf-8?B?VVR0TTN4TFB3cXVOVnBIbDdqMVBlTGlmTStzVXpCUlRrMjJwbklnUFdKMWl4?=
 =?utf-8?B?T25RUlVJcUZaT05ZSW83R2JRWXFVYWZsdHl2MmJjY2s0R0hGR3QyUDg5R1lN?=
 =?utf-8?B?dDZwQWR2NE5Lc1RMNlNnaGFvZ2lhYUlWQU9xU3NwQ3JWbHBKaVFGT1hKZ2dI?=
 =?utf-8?B?YktnazF3TjJRdk14V3RiTGUrTGVETmpIU3kvaFdZZVYwbm9JODdKQnB4a0ZP?=
 =?utf-8?B?WXpSTTlDM28xYzZMdGk0VGdaNk5NbjBoeG0vNnBTWmcyTTVlaXh2OE1KeUlD?=
 =?utf-8?B?Y21PV3pXSXRKYlFhQ01yYzFiUWU1L0Q5MjNTb2N0amZnMGNxMnNnd3Zxbisw?=
 =?utf-8?B?VTNhVmdjQlUzUkswSWdJcHRDd0JYUVNSUWlrTTRrRFdkWVpLT2dwM0JGRzVJ?=
 =?utf-8?B?MHUwekptNFZLQkZ0aGlrWkNjaXMzZ3ZSa2xZaVZyTC9yTTlaU2JuUUlCcHQ3?=
 =?utf-8?B?TXg2Z0JHRmlacnZmcXlyNkRpcDRxay9rdi9ZR2pDWitRU2dRdlZOZ09zZ09W?=
 =?utf-8?B?SlVrNnRwTSs2ZmxWVDgydENRS1hpRDdBUEF4bXFwS2R3cGtzWDR6UDBmWUth?=
 =?utf-8?B?TWdiU0IycnoySUFKT0M5SGFsQ0VkcWFGazNVejJrRGJVRlArTXlxaDRFSVo4?=
 =?utf-8?B?bTlzZ1lkUmIrdXVWbkxxak5nbmdvdmJSNVNQc2JQU1grSnkxWlNmUHZiU1pF?=
 =?utf-8?B?VDdUL2VYdm5EaUxxWFlMQ28yNGcwWmE5MFVFRE84ejc1NC8vWWphRS8zcC9M?=
 =?utf-8?B?b0I3bHVUOU0rYlZoWDhRZTJXWDF1Lzk2SFYzYXhIb1luc2VMSmsyYWdZdlFF?=
 =?utf-8?B?MjJZSUltSGlJNGVKd1p4cUl1MkhGQkpHMVlWRE5SNGVwL1UxTmJUWkREaVV2?=
 =?utf-8?B?YUlhdFU0TU4rZ29pekdPcC9wZU9uY1NKekFPL29SOUlaZzRXaFBuRld3SXVw?=
 =?utf-8?B?c1V6VmNnMXkvRW9tOUFlV2x6RlFaQThFSTZQci9pc2F0K0VDVlRxczBsbi9m?=
 =?utf-8?B?QTUrVDI3NTNJZFc1NmlMakpQY3FCbVBRakd3TjRUQVU3ZWVSZmRsdTNnT2lL?=
 =?utf-8?B?U252bk5kSzFrWXlFZHNaVTFTbmxudCtMeURIUGlGNHEvNDN4MFVZVVVLTVZa?=
 =?utf-8?B?UVlyR0tUU0JKSWpCRGZnNktkblA2RUNpTWZvQjZNYkoxTm1xWTdXWUlCZUpV?=
 =?utf-8?B?dzYxVkJqYWtEVXVaMmNoSWVVUnBxaFFMZDVtcGRmMWpaUzVTRzBwWENacnBn?=
 =?utf-8?B?UytzcjArMVJOUVRnYTVIWGgrbjNMcStSSHdtZHVWbFQvejFrQ1BwVU53Smx4?=
 =?utf-8?B?R2lYVHRuQkkzWmRGcFVBQ0l6OGJ4aWNFY0tJNkFJVXg4QTZ0RmN4NlBoMXVp?=
 =?utf-8?B?NTFQRjcvY29LZU1JODVReFNLbGQxRm55ZlBOSTc1Zy92TDVZL0xQZkFuVzlN?=
 =?utf-8?B?a0hqU05uZjJ1YjZyZUtDZkdha0hXYTRaTjEyVjhuK0UxU1czR2YvN0g2UXli?=
 =?utf-8?B?Y21Eb3JyYnJRdndESmZjY2JxUHdJWTRuUHJ1bVNGSDZTaXFITDVLd3k2Vm5F?=
 =?utf-8?B?TTl5TTlhMmU3Y0dJRlB4ZFNyOWd6SjhUcm1BRklNNi9sN0JQcGFMaTBPVVFU?=
 =?utf-8?B?WnlxZUdlNTF1cHpQcEwwVHhDYmozY1p4L3BqNWRQR05OeUZLYlpJTGdZWlcy?=
 =?utf-8?B?OGh4NUN6aldsV1JveUtqcCt2dmQ2YnYwc2tGOFk5TjJRdzNRbkt0c3RYSHV1?=
 =?utf-8?B?aUROV2JLYUpNSWc3YUtoRVhRZVBZV284aUkvYjUwbkhKVURwRkVjNysxUU5L?=
 =?utf-8?B?N2dlWENwTFFCdG1ZLzBsbUdsbG5WejcyR3NrWG0rb3dodHFoTGMxRmpmeHMr?=
 =?utf-8?B?cTNNU1c3VkM0bTFkTzJ6MHlQeVlMY2EzSHM2RHllUFdNdGx1RGMxNjdSQndO?=
 =?utf-8?B?TEpOVFdxYTk3b1psNi9vQnIySHNMUjlSTkE2T2NMUlp2TzVEelZjcVFaZTNF?=
 =?utf-8?Q?HVKQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TXFqN2lmMzJSemdDWlhHaFl1NGRsK0t0bG9mS2hoancvUEV6dkNUNVJIeHdP?=
 =?utf-8?B?clhmNERVQ3loYlNBcVp6WTNyY2s4U3k2YUtCZ0s1RGdVSFhjQStGNVBLRENr?=
 =?utf-8?B?OEpMS25GS3ZaanR1R2NMTk9LeFBmRlkxbXp1MXY1TkgyOWJpVTVkcm5jK3kx?=
 =?utf-8?B?MXZJU3dBSnF4d05IazlpUUtBVEZvbk9LV3k5RG1VN1AwY3BlVnR4NzNuT3ho?=
 =?utf-8?B?dWx2S3FRWmNzenpyMlMzRlRPUnI0MEpFenBKZ3ZUazQwNDVJYldlVTE1cURw?=
 =?utf-8?B?WDVwMmRBUmJubEYxUmxxMXRnWE9WTEthSHo1R2dnaHVaQ1VnUTBlbThrckE3?=
 =?utf-8?B?S2djWllxdlcveVpQWFBJdXVuNGdCWU5WcFl4R0l3Z2k0cWp1bEJsU3hpcXJ4?=
 =?utf-8?B?Z211OEVBTkNUK2QxaWhVV1lteC9ORzBybURKZUY4ZnF4ZTI0VTI0U2twRmRm?=
 =?utf-8?B?R0d2ZzlxV2l0UlQ5Z0c0bFF5TDdGNDlmdWI4NHlHOWRMTzBDK2dnMkdEelAr?=
 =?utf-8?B?d1BIY3FYQkd1V2sxK1BQYjdpU0FSRDV1WVVOWG9QTWhQbWVkQ3pOWlEzVXUr?=
 =?utf-8?B?V1laMkpCWDZHbFpleEdSNHl5U20rMmhlWGFvZjl5MW0wUGlPdDh6L2VOOE5Y?=
 =?utf-8?B?dGR4K1NudDRDcXpDNHNVN1FzWWh0ak9WdDRzZnh2QVZ1VUszK3VVbVIzbUQ3?=
 =?utf-8?B?YTRjOXB4RFZpVTR4OGgwS0dSSCtROTVCRVk5VDlxUDNqWDBzMUpHd2RJYWkv?=
 =?utf-8?B?cFYyYWJ6Z1N0ckJOUWtQQUxhOHQra1dyKytIV05UaDlOUENiekdCTDRzZDV4?=
 =?utf-8?B?MWROWkFicFFGMFREVzJXaVZpUmlESlJtdTVXUjdpYmRkOXBDdEpCdGlvVEpR?=
 =?utf-8?B?b2VqcnV5UW9NTUE4NHBqb0RGZm5iVmYrOUJIaVZMdlFRZkdmR3FFU0prNExn?=
 =?utf-8?B?YVh2MHgzckVXcVRSL000NWY1eUNXclVmQkJGejJPR0hSQWlUa2pSTXl4OXFj?=
 =?utf-8?B?Q3JGSTc1TjBrajJHc0lVSU52b0NiSmEvTlFLRDVGZjBpWXlmTWpZY2E4WHBr?=
 =?utf-8?B?T1EyMFE5eXJSMUhnNTB3L3BZR0F6dElNTDg0ck1XMzZoT3J6dmtZY3FXbWti?=
 =?utf-8?B?a2IzTmdlejZnd01HaUpuMEF6N1VoVkgwcEs1Qzk3cmtLbWNRRENpSlVIRnJ2?=
 =?utf-8?B?WHIyTUYyZ2syVWRZdTBDRHNKVlM0Z1VkUk9wRHhuSTFvZUV2UUVGakpiUTZJ?=
 =?utf-8?B?Z0FQU3o4aS9idkJoMHhOMWNYTkJxNjB3QVh3cGRlR242TjNDSWFjNlVTOEpX?=
 =?utf-8?B?NjFWS09udGt0UFBkMXFIbm40alVEODVjWnhUNmlwcUlDYUxhdmlzdWRiMlpy?=
 =?utf-8?B?QmJBdzkrdVhuR0l2OCtiL0NYdXpocnZUcm42dDlxa0xoeDdQMVg0eUprQlZB?=
 =?utf-8?B?dlFrYUs5NFRvL0lDNFhWQ2lKdTFieGc5YjM3MmV6c1ZBMHR4V2FLWVBvaDJt?=
 =?utf-8?B?RHdmQzNHbU1WaFpDTHZsZkV3V1Z4dVl2ZXJIWGtIR29GU2lWTlV5eXZjamdq?=
 =?utf-8?B?U0lmU1VsYkUySElUcUIvZy9lTmZXWW5scEk0OUVOR0I4YTk1elMxNEhRQ21a?=
 =?utf-8?B?UEg4SnpFVkM1RnQrZE9HdnEvdFhBcUtCZ2Zpc0ZkNGg0WmJkck5LNmhHVzZO?=
 =?utf-8?B?RUVtYXNlM09TaDBwVkd2a003em41WHVEeEtya3dCVElwaFhsSXhKc2RPMXh3?=
 =?utf-8?B?dFRGQ09mWjkyZGVRVVNpbGcyU3VkTGkvUlhRamhZRFNkZkErbFFHMStsTWNZ?=
 =?utf-8?B?Vk96Y2V1MjZpZ3NheFc1Zk9rUTFZTWxnelA1aEhpYW9GYWJ2ZFppdXA2OURz?=
 =?utf-8?B?V0pVMkgyRzI0NGs1TCs4cXBscjlZNWt0NVM5VkN6K2RqS1dZR3lVRWF0U2Yv?=
 =?utf-8?B?aktHcnJmeEhxUlRNcEpTVGl1Q1diaDRqQkQ4L1Q1eFBoak01dVM0TFp2TUV3?=
 =?utf-8?B?SXY3U0pWenVSbElrb1BzeHB5amFqWWw1b2ZDb2RXU1p6YUNqYjAzRWxHRTN0?=
 =?utf-8?B?RUJQUHN0cTdVWnlZSEd0SzErYVFEeUdoUXVSS3o2RXNzUWlUT0JXbGkvbFBu?=
 =?utf-8?B?RE95UzEveHpMSDNIc3paMFN5ZVU2Tmo5d1hsRFNtNmJOU2l6Q0pLK1RMUUhY?=
 =?utf-8?B?NFk2OWE3NnNLcDc3Qk9uTnNlVEZXTnJ3Rjc4OUpLSEVhV3ZhZzFGWEVDc0Q0?=
 =?utf-8?B?R2Z6VFRlSStDK0hSTy9Cb3UwS1FrQlJaNEtLM3lKcktlQmh1YzYwWTVhS1o3?=
 =?utf-8?B?Zm5HZU9CNzlxOXdwSXI1R1VhZkdRdFI0VHpudGR4VFF1eUZaRGEydz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 767288b2-73c5-4468-1f88-08de6b1d9f8a
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 16:33:31.0711
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CinqHIh/01UAOAMeYO1A+LdKHkhz/o4pJS2121Ayr70+gNZ1HXcsShVgPU8Vn3gzi4RyPDLX54PrZdta/Hd6Iw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7396

On Fri, Feb 13, 2026 at 04:01:25PM +0000, Andrew Cooper wrote:
> On 13/02/2026 2:26 pm, Roger Pau Monné wrote:
> > On Fri, Feb 13, 2026 at 02:37:29PM +0100, Alejandro Vallejo wrote:
> >> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> >> index 4d37a93c57..da56944e74 100644
> >> --- a/xen/arch/x86/hvm/hvm.c
> >> +++ b/xen/arch/x86/hvm/hvm.c
> >> @@ -173,9 +175,16 @@ static int __init cf_check hvm_enable(void)
> >>          svm_fill_funcs();
> >>  
> >>      if ( fns == NULL )
> >> +    {
> >> +        if ( !IS_ENABLED(CONFIG_PV) )
> >> +            panic("HVM support not detected and PV compiled-out\n");
> 
> As with Rogers feedback on the next patch, this wording isn't ideal. 
> How about:
> 
> "HVM support required but not available\n".
> 
> This is reachable for people who use cpuid=no-vmx,no-svm but they get to
> keep all the pieces and the documentation already has a general warning
> about this kind of stuff.

Hm, yes, I forgot to comment on this one.

> 
> >> +
> >>          return 0;
> >> +    }
> >>  
> >> +#ifdef CONFIG_PV
> > CONFIG_HVM I think?
> 
> No - CONFIG_PV is correct here, because we're inside an HVM-only file. 
> It's the only case where this variable exists for real.

Oh, I see.  Yes, those are the right guards, otherwise the variable is
hardcoded to IS_ENABLED(CONFIG_HVM).  Sorry, my bad.  It's a bit ugly
to have to do it with such ifdefs, but right now I don't see a better
way.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:37:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:37:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231444.1536641 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqwAx-0006aE-8h; Fri, 13 Feb 2026 16:37:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231444.1536641; Fri, 13 Feb 2026 16:37: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 1vqwAx-0006a7-5f; Fri, 13 Feb 2026 16:37:51 +0000
Received: by outflank-mailman (input) for mailman id 1231444;
 Fri, 13 Feb 2026 16:37: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw3M-0005Wn-8K
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:30:00 +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 3ccbb68f-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:58 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4836e3288cdso6978215e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:58 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dd0deeasm189438325e9.12.2026.02.13.08.29.56
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ccbb68f-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000198; x=1771604998; 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=BLmM/PlB9z/B4eiJQnmz92BO4QQBKRzX8FQ6b7JAWPA=;
        b=Xrkn4xyLvNsIQUXyAWxYn6dNTJEDMZRecE94YrQ6VZTIaViCcsoA36HD0q6tjz/zWh
         9+BaIUOd1PghNoZzNq2JZsp+/Mnc9vC3aMohslBZxZwPqhPEY5AUlCxVwPvEmCWHhtAh
         DCTHbC5+5N6itV6aoau3SzqR3z9LPaKIePkSKs1jJ5Cj/PBWM8WJ29l2f0oY+k6+jLvn
         dUrsUvTAEH5NP+qULOX+2sYEBUkobCh11lsIloUg7e+noz174mQGNVF5PieRle1Fd0px
         Db7LuDNEZddCGUtpLdQHZzfmMzsSa6vh2+EpAE6vM7uYK5F38ePWJADaDon8jWM3dJW7
         VcbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000198; x=1771604998;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BLmM/PlB9z/B4eiJQnmz92BO4QQBKRzX8FQ6b7JAWPA=;
        b=PW5xqTZ7VE8Xrenmp45VurPvXVxuykWiK0U3LXqEC91R1hoAvo33b3sgYU21x/kJzZ
         +7G4C+0tZpaSHNCP//D/iSn+iPFCqMHJHzNimL8xQLoKMyXcGwk7UQ7dGU8mreSAcab6
         bnidy4I1HezMnMXCch/BktPWSibifDwg9zA2B5g4Kd332QwJB6hpUo23z5gLsK/md1S1
         Fz8fnuYpk0TEVKOUpIP0jWpnUIPeE5Ht5QFNrG8JKu6Yb4z/ch6kqT/hBfo/ZUZ6FFoG
         VZmTAQEA7hPh8wvu2CEFLjhk5T7427E1GS9cRbKOffkEEn+ByK4m6wjJTRAX16z/S6xg
         5ahw==
X-Gm-Message-State: AOJu0Yx/2hQA3A6GsIPV2+gyAIKt8Hv/cZTHA26tkdYxE9lGVoFsb0e2
	fxQD5R+im5rpc0gjvOYp6FSSVHccryh753bDrv703jWFcJqyZ+8JFaHzp0jccei9
X-Gm-Gg: AZuq6aI8t2GneaaOElB2oR95JAI518wKyp7qX5TGusY0lpNHq0OvumTaegugRpL9bHE
	kM65LoRf8qvaOQ26mx1rwrFDsa45got1hIeWPM4831OvI109eZ9Fyi5X7f51vzsM3rAn07qputi
	GaYn6d+rF31PUUG4Y1rP+o2Z96uINaJxhLEwzmxrgZTq9AEQQuGBtmiEmfG7tTgNHK/EetE3jLx
	pZXZsldktYFxY1wV1i9HsbwXIK+L9x26Q2CGz3nSNTx2UKhA5ktGCPcOubnl6HndK5tBx9KuVZS
	u4LZQDVJkGSSloQZWL/95WHJZvTO3cYwP13AEBAjXBEQVCusniOfRsnj/bPk68MzHHVBs6/kAgl
	uLIYvqEqt7IghP+8nXyA0WEtYsg1sgqiIzaB0Onp6tyRGmLCgyTuroZ7ktMGVQWcWNJDin0MIM3
	/BHBZ/84qdm3141FuxdDcUSCjdPwQfW02c2ON3uBTkCZC/o4zIIu81hYMI+5PfVSm0tLOM5JkiP
	faU
X-Received: by 2002:a05:600c:8285:b0:46f:a2ba:581f with SMTP id 5b1f17b1804b1-48378daa075mr11488265e9.16.1771000197631;
        Fri, 13 Feb 2026 08:29:57 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP and HGATP
Date: Fri, 13 Feb 2026 17:29:45 +0100
Message-ID: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce helpers to manage VS-stage and G-stage translation state during
vCPU context switches.

As VSATP and HGATP cannot be updated atomically, clear VSATP on context
switch-out to prevent speculative VS-stage translations from being associated
with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
required order.

Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
only when required (e.g. on VMID reuse or generation change).

This provides the necessary infrastructure for correct p2m context switching
on RISC-V.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v3:
 - Add comment above p2m_ctxt_switch_{to, from}().
 - Code style fixes.
 - Refactor p2m_ctxt_switch_to().
 - Update the comment at the end of p2m_ctxt_switch_from().
 - Refactor the code of p2m_handle_vmenter().
---
Changes in v2:
 - Add vsatp field declaration to arch_vcpu.
 - s/p2m_ctx_switch_{from,to}/p2m_ctxt_switch_{from,to}.
 - Introduce p2m_handle_vmenter() for proper handling of VMID,
   hgatp and vsatp updates.
 - Introduce is_p2m_switch_finished and init it inisde
   p2m_ctx_switch_to() for furhter handling in p2m_handle_vmenter().
 - Code style fixes.
 - Add is_idle_vcpu() check in p2m_ctxt_switch_from().
 - use csr_swap() in p2m_ctxt_switch_from().
 - move flush_tlb_guest_local() to the end if p2m_handle_vmenter() and
   drop unnessary anymore comments.
 - Correct printk()'s arguments in p2m_handle_vmenter().
---
 xen/arch/riscv/include/asm/domain.h |  1 +
 xen/arch/riscv/include/asm/p2m.h    |  4 ++
 xen/arch/riscv/p2m.c                | 79 +++++++++++++++++++++++++++++
 xen/arch/riscv/traps.c              |  2 +
 4 files changed, 86 insertions(+)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 3da2387cb197..42bb678fcbf9 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -59,6 +59,7 @@ struct arch_vcpu {
     register_t hstateen0;
     register_t hvip;
 
+    register_t vsatp;
     register_t vsie;
 
     /*
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index f63b5dec99b1..60f27f9b347e 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -255,6 +255,10 @@ static inline bool p2m_is_locked(const struct p2m_domain *p2m)
 struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
                                         p2m_type_t *t);
 
+void p2m_ctxt_switch_from(struct vcpu *p);
+void p2m_ctxt_switch_to(struct vcpu *n);
+void p2m_handle_vmenter(void);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 0abeb374c110..7ae854707174 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
 
     return get_page(page, p2m->domain) ? page : NULL;
 }
+
+/* Should be called before other CSRs are stored to avoid speculation */
+void p2m_ctxt_switch_from(struct vcpu *p)
+{
+    if ( is_idle_vcpu(p) )
+        return;
+
+    /*
+     * 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 what will be done in
+     * p2m_handle_vmenter().
+     */
+    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
+
+    /*
+     * Nothing to do with HGATP as it will be update in p2m_ctxt_switch_to()
+     * or/and in p2m_handle_vmenter().
+     */
+}
+
+/* Should be called after other CSRs are restored to avoid speculation */
+void p2m_ctxt_switch_to(struct vcpu *n)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(n->domain);
+
+    if ( is_idle_vcpu(n) )
+        return;
+
+    csr_write(CSR_HGATP, construct_hgatp(p2m, n->arch.vmid.vmid));
+    /*
+     * As VMID is unique per vCPU and just re-used here thereby there is no
+     * need for G-stage TLB flush here.
+     */
+
+    csr_write(CSR_VSATP, n->arch.vsatp);
+    /*
+     * As at the start of context switch VSATP were set to 0, so no speculation
+     * could happen thereby there is no need for VS TLB flush here.
+     */
+}
+
+void p2m_handle_vmenter(void)
+{
+    struct vcpu *c = current;
+    struct p2m_domain *p2m = p2m_get_hostp2m(c->domain);
+    struct vcpu_vmid *p_vmid = &c->arch.vmid;
+    uint16_t old_vmid, new_vmid;
+    bool need_flush;
+
+    BUG_ON(is_idle_vcpu(current));
+
+    old_vmid = p_vmid->vmid;
+    need_flush = vmid_handle_vmenter(p_vmid);
+    new_vmid = p_vmid->vmid;
+
+#ifdef P2M_DEBUG
+    printk("%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
+           c, old_vmid, new_vmid, need_flush);
+#endif
+
+    if ( old_vmid != new_vmid )
+        csr_write(CSR_HGATP, construct_hgatp(p2m, p_vmid->vmid));
+
+    if ( unlikely(need_flush) )
+    {
+        local_hfence_gvma_all();
+        flush_tlb_guest_local();
+    }
+
+    /*
+     * There is no need to set VSATP to 0 to stop speculation before updating
+     * HGATP, as VSATP is not modified here. There is also no need to flush
+     * the VS-stage TLB: even if speculation occurs, it will use the old VMID,
+     * which will not be reused until need_flush is set to true.
+     */
+}
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index ce8d346a14d2..7ef089809734 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -177,6 +177,8 @@ static void check_for_pcpu_work(void)
     vcpu_sync_interrupts(c);
 
     vcpu_flush_interrupts(c);
+
+    p2m_handle_vmenter();
 }
 
 static void timer_interrupt(void)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:37:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:37:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231445.1536651 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqwAz-0006pO-Fd; Fri, 13 Feb 2026 16:37:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231445.1536651; Fri, 13 Feb 2026 16: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 1vqwAz-0006pH-CO; Fri, 13 Feb 2026 16:37:53 +0000
Received: by outflank-mailman (input) for mailman id 1231445;
 Fri, 13 Feb 2026 16:37: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2s-0005Wn-B7
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29:30 +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 2a88587e-08f9-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 17:29:28 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48069a48629so10260255e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:27 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a88587e-08f9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000167; x=1771604967; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4f8nWiqSAdQ3ihvLKp54Tg1Gj2dyPRa9lPHwnTHLKUI=;
        b=hRVKykmP+1eW6FLGVDZFos+sRgUPV8M/N4S8hCTBzj9/kqLogBIRAh9etNbH/AwNzy
         +X9ENVSD4rWhMKrrOvmBL+vhIpb9gnobyy9RdsxQBR6cZg8020rKcmm7IbAmnJVZ6Ps6
         C4HWQyjU6kabX0/y+9A2HbgjHHtAvjLStKloLQ3EGPdfMtzlSuS1JPCpOMyDUpRy38/R
         QkG/94kv8xWLYzL6UoRlQsTfUWybYq0noU/QHK3ki3Mz26cWV7paLrjSj/EiWtY8kh5I
         M1qvBYMvVc8M/k/ylzWDYq/gok4568IGRcusbbKAdpIXMvzgN+XIaSPSVm/i+jgJFCT2
         lMgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000167; x=1771604967;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=4f8nWiqSAdQ3ihvLKp54Tg1Gj2dyPRa9lPHwnTHLKUI=;
        b=IrxqFbPQc35waE/Y8DXoX0JE7bQ+kAjKgTu7r75wbDQJidlf8SK1IwHY9vTvQ6v7iF
         Vn154xgdCWlIXi2IfC3Bvo2ifc3mi8dBdAqjLBAr3txT4wXx9BMwtmXH0BTuUDzrOkXh
         AumqSebiWqoSTBpLYzNdZh2K5xX7v86w2as7pPNdLaqXHBm3f+YlkuxGni+VWDz/zgEw
         TfJEk/EjHSOphMzyg8c6Fpf5QEi7t/cW4tEE2UmQPt+jqqeQDn1rsqXH+xz7vozm7w4e
         H0tn6meXv0oLOrtd2VWhVqM3Bs4LdpSeJSR0gKzGU25E4wqj4UA9E5KQ5PZ5xLshWGLL
         REvA==
X-Gm-Message-State: AOJu0Yzv5E5RvxInVkMNTl9NuaB+oZdZ7YGE7CHXZzIPN3gAe0ircawx
	I11ltVYzj1HWPic5sDRNdfUrD2vPhtqKHGmfUlYVwhI7HrjZW/K7vvBM6vWnh37F
X-Gm-Gg: AZuq6aLUPlkqdC2fvnNF2S9YQErenCPiL4Q7dpQzjo993EE9M+seaPCHlWoE5v3FpXO
	28OjXnvvwtRkdV4D7YjLSRFlqmrX7hxB9BsJf7TmLVujE+9kM/741KJoVTf3/Zu0gdgpshft+5y
	FSbI5iPu1qcFFOfvHVehXhGb44lyDOclRsxzhmL0I6sEq5jPnFyDt5OEuOU1z9iKNqirDogFd5i
	p4kT931lgXZ2qPRwq+kx4qAVJwAtM+LD4XHf9aokHC5VPnY6+NvTpSucVOI29lxm7ItSgon0EqC
	5ugy/gtHLre0hPTJ7AZAE6+4Zo5IHysCV3wyZAvUHx3SU9iXNq93UqvPXtL1BolEtHA0yG7cbas
	zaXpe5UxgUSC4gxhcnQz3uOzpPxDUz2FSeroAiqB4Duj9kxxhccFo8+ER7MS6zDkaedqAG+05ZO
	ShMJu4QK3d9DqToLGyf42RG5X76i+omVRefDNJk5wILwcyxcdz419D8GrHlpXVkqqpUw==
X-Received: by 2002:a05:600c:3e87:b0:480:32da:f338 with SMTP id 5b1f17b1804b1-48373a0f961mr38476305e9.14.1771000167050;
        Fri, 13 Feb 2026 08:29:27 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 15/16] xen/riscv: init tasklet subsystem
Date: Fri, 13 Feb 2026 17:29:01 +0100
Message-ID: <3da393474a5a8e8cb8b3760ccdd134196f3f0b14.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As the tasklet subsystem is now initialized, it is necessary to implement
sync_local_execstate(), since it is invoked when something calls
tasklet_softirq_action(), which is registered in tasklet_subsys_init().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Update the commit message.
 - Move implementation of sync_vcpu_execstate() to separate commit
   as it doesn't connect to tasklet subsystem.
---
 xen/arch/riscv/setup.c |  3 +++
 xen/arch/riscv/stubs.c | 10 ----------
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index dc469b49623f..5843609350aa 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
+#include <xen/tasklet.h>
 #include <xen/timer.h>
 #include <xen/vmap.h>
 #include <xen/xvmalloc.h>
@@ -152,6 +153,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
         panic("Booting using ACPI isn't supported\n");
     }
 
+    tasklet_subsys_init();
+
     init_IRQ();
 
     riscv_fill_hwcap();
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index cb7546558b8e..26434166acc6 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -91,16 +91,6 @@ void continue_running(struct vcpu *same)
     BUG_ON("unimplemented");
 }
 
-void sync_local_execstate(void)
-{
-    BUG_ON("unimplemented");
-}
-
-void sync_vcpu_execstate(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void startup_cpu_idle_loop(void)
 {
     BUG_ON("unimplemented");
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 16:38:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 16:38:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231469.1536661 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqwBS-0007i5-TN; Fri, 13 Feb 2026 16:38:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231469.1536661; Fri, 13 Feb 2026 16:38: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 1vqwBS-0007hy-Qg; Fri, 13 Feb 2026 16:38:22 +0000
Received: by outflank-mailman (input) for mailman id 1231469;
 Fri, 13 Feb 2026 16:38: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=HtAj=AR=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vqw2r-0005Ws-ED
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 16:29: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 2b0d0c2d-08f9-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 17:29:28 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48329eb96a7so6943105e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 08:29:28 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm303288185e9.6.2026.02.13.08.29.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 13 Feb 2026 08:29:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2b0d0c2d-08f9-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771000168; x=1771604968; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aS1nE3ehxrhnhvUQVu6uQ+BpfKhXXAT1M63On5oqAkY=;
        b=QquHo+ZOLXR7e6DaAfPCjwENioUnmhLDXbPCUCRaGERV+KCA2lyFfHGaykWsKpTm2r
         9pyXH1lfiOZG6GRENrkVdY1dJYUK/BCTV2rWFHeIzyNAO9mMCWqr/tHt1liQ8vH2kHjt
         JtkcNaWWP6+rsUKvONffV1WJZzVpDAnuofrRvzzmeHcZ4ITYOAdDSHr5wL0fwInYAIux
         ICwywbePxlQO8ypjgYSox1/ivDThJKoMTGmhBAaGj3rioZJXl+Cq0viPEe+NOAJ9DPn2
         1q6N/LuhFhcdzrnvJ20KmkB5CuEGOdSYFjcvaQ076ZU0s8/S+bn9IyXA6WYgze5+NLOA
         nehw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771000168; x=1771604968;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=aS1nE3ehxrhnhvUQVu6uQ+BpfKhXXAT1M63On5oqAkY=;
        b=JtHKsf+1YrqABRiozdKk7bFHtIx8kbQRz1SCGAyTPzTo30Zq/PPJbh8tyv8raIkajB
         8VrNRWobXuAZF7lfuQezZdLgzpWCw4EHItsTMy8O+/mXQFS5wKIoLXMYqsBqbXJ/6Sfc
         C0BbPPWrswwe4n7ggzw3RG8QlkKDKy6P6i0nKv7waLQTViqRgxaj9j64BePFOZ6B1isH
         xbtRckgI2niAFRjItHWCy+EwZ2LiCNNAJOfoh1xdv8ynVP96nUX/SnFtP8zATHt6q4V5
         wWmNGGkHvfLu7AtAuku/+CzTF47fG9eeUyeUMpCona/Hrmo11HW7sHXJWnWRcKauvFMR
         9aHw==
X-Gm-Message-State: AOJu0YxvwGlgpI1c/7Cs25lQe+GsVb6+PwPjnbBgjbKPUW1NZJcOtXMB
	em0ulHltVZQpDEF8Cc7cFxexLAGej18S/YIa0BTScIW/tzpM4h6xiq4HV3lWu8N9
X-Gm-Gg: AZuq6aJM3TKxhtIBj2Iw8QUWwXozPR8s9EhUDYoFdRLrlGtN0kgRpW6yEEtJ4ci2ndm
	hXvXvIVW+/Xhcita3N4aXkQq+Kfv0nLjDY1+6mOkKEd/hwEBeIsS7rBidiABx5d2Wa88+g2B5R0
	5NNKaYeJtiYF0Nw4Da/pHQeZxXGsj1//1EDJ423PYqpEJrIF2y4wh6luRiqoV5VYDYvDU0HSq67
	eH531lvpxn5dwM9Li41jOply1AoYrCNO1rmkH+lpvM+JTPNmCf3v8A67WqjCRSgYwH90sr7nnM0
	HhEuoTYsinJ7yJIxlPa8DVNUlGgmCNpvDiny3SITt7OU8VJo6d/xccrXsKIeEflAj1AN0tfv1Le
	CODTuiF2SkEDzrMxC1ppgx3ZND8L/EPLcwpsLwayLForYHHBUbKIcofdKr7G3b/UhIo4Nc9cchd
	dAci/T2fK4MOaUlbRVCgtrXGX0HaSQ2tPQEue7JfX7KXyjpYozHTK9WREp4W06cOuqyg==
X-Received: by 2002:a05:600c:474d:b0:47e:e72b:1fce with SMTP id 5b1f17b1804b1-48373a59a59mr42787315e9.37.1771000168120;
        Fri, 13 Feb 2026 08:29:28 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 16/16] xen/riscv: implement sync_vcpu_execstate()
Date: Fri, 13 Feb 2026 17:29:02 +0100
Message-ID: <b8aff2ee5ee02dece9a94e1140bea26fdb5b305d.1770999383.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770999383.git.oleksii.kurochko@gmail.com>
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The scheduler may call this function to force synchronization of given
vCPU's state. RISC-V does not support lazy context switching, so nothing
is done in sync_vcpu_execstate() and sync_local_execstate().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4:
 - Drop footer as [PATCH] sched: move vCPU exec state barriers
   is merged to upstream/staging.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Align sync_vcpu_execstate() with patch:
     [PATCH] sched: move vCPU exec state barriers
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 307da467c72e..6d3d7277bf8f 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -249,3 +249,13 @@ void vcpu_kick(struct vcpu *v)
         smp_send_event_check_mask(cpumask_of(v->processor));
     }
 }
+
+void sync_local_execstate(void)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+    /* Nothing to do -- no lazy switching */
+}
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 17:05:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 17:05:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231507.1536671 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqwb3-0004lo-TU; Fri, 13 Feb 2026 17:04:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231507.1536671; Fri, 13 Feb 2026 17:04: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 1vqwb3-0004lh-QW; Fri, 13 Feb 2026 17:04:49 +0000
Received: by outflank-mailman (input) for mailman id 1231507;
 Fri, 13 Feb 2026 17:04: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqwb3-0004lb-5X
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 17:04:49 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 18db772d-08fe-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 18:04:47 +0100 (CET)
Received: from DS7PR03CA0039.namprd03.prod.outlook.com (2603:10b6:5:3b5::14)
 by MN0PR12MB5834.namprd12.prod.outlook.com (2603:10b6:208:379::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 17:04:39 +0000
Received: from DS1PEPF0001709C.namprd05.prod.outlook.com
 (2603:10b6:5:3b5:cafe::f0) by DS7PR03CA0039.outlook.office365.com
 (2603:10b6:5:3b5::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.14 via Frontend Transport; Fri,
 13 Feb 2026 17:04:22 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS1PEPF0001709C.mail.protection.outlook.com (10.167.18.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 17:04:38 +0000
Received: from localhost (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 11:04:36 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 18db772d-08fe-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xI43GM9jkVmStgDXZtpnxmt7uZFPZfcPbVPP/M/bZH3Blo3QJqNhlqlt5SCv8JVQCfY0QBTsxN9kAjHMCQos94HHpNCridKo46J1PXrIuEk2ub34PGvYjn1fn+BYj2dG7R+FWpTUP9yzo7qHjjwf2TRehQlzmTFN8pzmLKGCgFjsdv/7zH95v1rGaPNfbjFKvjLL3vWWgnfs6wE8u3mJqxuy6q8yK7lUUVFPCs7EVexodgwR5SumBDeMc6ukZ3+btx3EaThvoW1ResKWJSsPbjMQSms5YJ9mStesYq5d9TNA4KsAjN6oyycE7mHgTrm2ycLNMnCSuJhiOk/Cwgk9Cw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dcFBDzqpXf0gs/Pg3HM2umZi4ZWLrusXEn7FQPrAlDU=;
 b=H63k7sG2pF8v/Sl2Lu/gqkgfCHbpPlkhakKMKeh5OZVFD47Nc1CT5lFT1tvejB3mI4aaSi7c7POjZpc2uFslqtdQ767rLHz0Zw5g5oFXzCO7tAXtsTKRxov+LCA73Q6m/N4IwSGwoDjq280YgnRXSGNvtLrMppYeBw7/7IhiRucLgRIf8TR29xzDqM+bPQ+yptULIJKgNHaf+yX+rF7hkGL+0HVg7SedQG0j5FVsEr9xYk0kqXi1WCGjX6e9IIiUrpNE9ckGgXq1zJw/nBUul0gnjXG1dWWn/Ekn9JgAaLKczZi+nDBSXcALkWujp9ADootHCqhRPElQFbpve35OZg==
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=dcFBDzqpXf0gs/Pg3HM2umZi4ZWLrusXEn7FQPrAlDU=;
 b=S5eAuVe+mbF+MbHiyiuHDeyz6nnv8AlmfYbP6cjBfCB3bd0zSrNcxW85xJwbE+8/UvVJHRDJU4EKmaRAbWqp5aKzcF9QTgKpGFLSzcYQ2Cca3HgnaMF4PLVfy3CI5AH1O2l6JfZ+ZhK33OWfkJ65LDWgTxcR+epl/vhN5KwXPmU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 13 Feb 2026 18:04:33 +0100
Message-ID: <DGDZWSLET8UI.3AMV83AW7Z3I0@amd.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, Andrew
 Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/2] x86: Make hvm_enabled a constant unless both PV and
 HVM are both compiled
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
X-Mailer: aerc 0.20.1
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-2-alejandro.garciavallejo@amd.com>
 <aY80qJVIZOjjqBOS@Mac.lan>
In-Reply-To: <aY80qJVIZOjjqBOS@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb08.amd.com
 (10.181.42.217)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS1PEPF0001709C:EE_|MN0PR12MB5834:EE_
X-MS-Office365-Filtering-Correlation-Id: ce729df3-934d-48e8-992c-08de6b21f916
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?ODhLWGUrUS9na3hYYXFIaXYrVkZyK2ZleDkvVWZpMDZxMkU3QkNPUFJ5TGRt?=
 =?utf-8?B?SGxIN1VzcWg3L0s3b0FmMlVWVnZQRHcwT2FOeFNBWm5QbzJOQUljbkgzWkVa?=
 =?utf-8?B?Ymc2N0VLWlFIdVJDMGlmN2NNcjJnbjhXQWp2MDEzZ0JudS9WOXl4R3FHMWs4?=
 =?utf-8?B?OHZVaDRadXh3WnBTbVVkUjJKcWQ5L0hhU1pCWmFzR2svbWZCa3k2M2NuSVdi?=
 =?utf-8?B?T2wyWnhGbmM2VnQ5Qkc5UURtb1ZPWHBObXhYdFZ5T2ZUZ0ZQS2ZCVVhmZHBh?=
 =?utf-8?B?Tlcyb0lRbmE4Z3hGOERydjFoQTYvaVJaekJRWWFwVjA1d29Ka2RiTmFxQnlI?=
 =?utf-8?B?WVZHOVM3S3JDZkdTMS9qWlhacG9IQ2ZTR1A0TEtHNlY0bEVOek1OUDg2ejZF?=
 =?utf-8?B?bXBGZ1RNTTBKYml0dzBKR2RFWjJvVEhWMzdkUEpzaWQvaW0wbW1KVjdYQ2tF?=
 =?utf-8?B?Q2pVc1FvRU03YUJseGhrR2IvSnFKTyttNlFxT2thRENNbGtXVC9zczYzYmxp?=
 =?utf-8?B?UUE5L0VUWDhrUUQrY09GNWV3djZCOXdneit5TmdzUERZTmVGYWVjRTBvMm1K?=
 =?utf-8?B?RWljY0FFaTB2bjR4bG42c1RTc2YwdHRwdFFzbVM5M05LRXlUTVg2QlhRME9j?=
 =?utf-8?B?clJjbDdqZ1R6UUdsbThlV2lxTlk4OHBjc04xVVF3OVFCM0o0OUhNa01tZUdM?=
 =?utf-8?B?T1VhelVjbVJ3NGgvT2FPU2dlUDNraGZGcHRobVhOb1JuUWJnOHJTd0o1QkNS?=
 =?utf-8?B?QWZ5RWNvcERjM3RIbjBVTFRZcWdLMWJWRjRIS1NmQWJ1cFZlbTVNVEREdmVL?=
 =?utf-8?B?b0Rmamc2UXhpQXN1ME1LNXBYNzlBV05sL1pIT1crT3dPczNuZkE5c1JTMm5N?=
 =?utf-8?B?Q0dWNVdVYWxHU2pnQ1Z0S3VycCs0Zmd6WXpSdm5KMlhaeFIyL1ZNSy84cVUw?=
 =?utf-8?B?elRzMlUyOUtuWU4zbzFFbEZWMldITnRHVDdFeTdzdmRNL0JIVHViR1RwZTFE?=
 =?utf-8?B?YW1KVm5WM2JxYU9NRDV5RVZuckREaTBDQW1Vam1uaW9BcXlrRXBuWEtPUG8r?=
 =?utf-8?B?T1ZIOXlzNWJNajdWL1p6TWtNcDIxRmlwdU1la2FLVndPWk0wVzhIU3cyNDJa?=
 =?utf-8?B?NkRvaUIwdVBMRDNiQ3lHeFVLOXJhS0dvMFMwdjAvNTU5MmUrZmJhZkhjM0w0?=
 =?utf-8?B?VUJvcmN2c1NUdDN5TForK29KdkJVM0RDeFBkc0FqTzg1YlFYMGp4ZXlqTzNa?=
 =?utf-8?B?OEpNaDI1NXRodURnUUlWbE9UN2czSHExL0YxUlB2eFZyZ0IydmdJYzlQajIv?=
 =?utf-8?B?aHR6QXRKTU1keUZHZXRWbDdBbjZHb3VJWUczSVVmMGY0ZXVUOVRCYjF4TmFH?=
 =?utf-8?B?d1pwODdPOTB5MUo3bDlYeGNWQmxCbXlmN1JzczByWm5QQnk0SG5KRXdnUG5P?=
 =?utf-8?B?cWRRQi85Yml4TWxOMWg3by9yTGFXaTZQejhDVGg1ZjhvYjBnT0NOR3BjZUZV?=
 =?utf-8?B?U0J5OGNGc0xGTEZBVFZ0TUFFUmlrUlNKTzlLZXkrcmlSMVhRdDRUYXRWYlJh?=
 =?utf-8?B?TzBjTW5TblhHWjRoNWdpTGkvRTcvNndTREhBRlNLM1BybmpxWDBtZzhiL21i?=
 =?utf-8?B?ZTVCYTNSeExXV1Bhd05ZdjFaVUJNQ294cFR5VVdMZ0REcGQxalBhSmw3MWxI?=
 =?utf-8?B?Zjd3ditkWGJHSGZBbjVQVmdSaHNtb0N5Ukd2VTF6QSttYUZuZEhtWUZIcmp6?=
 =?utf-8?B?bXVFd0dVelpPcGVFZTlDcnJLVkQ4ZVIrbjY4ZzFTZEFCMmN1Vzd4Z01OdTM4?=
 =?utf-8?B?QWYzQVhrKzQ3Zy93b0lSZjVicXYrK2lsWVdmWDU2VUxWR0hNbGg0Y0JvNW1B?=
 =?utf-8?B?Y3dmN0FESzFweTF1WVIvaEQybUhMQVNKUldQRjFKcjhucjZBc0x5YmhZOCtW?=
 =?utf-8?B?ZDA3NVBHT29hNW54NWw4UGFadDZXc1dYNWF3VXdNRTNPTVFsQ3lYUDJNbmNt?=
 =?utf-8?B?OCtqMDVDejlUTk03dGF6eFhoMFM1M3F5RlZBS1hVMHNCUnVJWk15bU1SZkZ1?=
 =?utf-8?B?cC94dFh6MnN0anRsZjhMV1NOWkhqNURBcFpJb05KR0kxdHc0aE9wT1JmSHVq?=
 =?utf-8?B?N2VYc01hNldHUUx4ejk4NWdUbGVteEtLdzRCT3U2bzl0QUZzcC9URWprTjA3?=
 =?utf-8?B?VjlYckkwT1VnTnlaVUpLLzF4Y1VuYktyT1FvcWQyQkwvdVNPQVZ5WUZoNWFy?=
 =?utf-8?B?WmNiU05IL2FMNC9zSkQ3WDZ5WERBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	+lEfZspk+fVZdo1ksPV3HQgupTww6uUQqOtYTK8R9SzFR7EJlbyCVsNiQvF2vxgA55g8yIkbe6GOINAbw7wGmUalJe6qKO857LStgdte9E1uOoXwUSm3Uxrk9Yxba3j4hCJj87veBZSadn1rl0c+oWSTOwkKu15uQtndETgJw5z2wqd7R5k2TZnz8I2Asfh73wyNCA5BbnknrDGIu4ED/O8W+9dApDy+gkf6YNbppj0NhJag/EwMm67qZxF39tS+v1RghU0Q9HyQIv/fR2/pVPs8ksn2/Y4//1Tyc1GH6qdi5WLx6YKYQ7PGvk9eUbXzSyRoED3soF/IMX7hH+a0CsX0MMkzOHiku6CFP4N5LDHMFcJXm0Fc2R+DX66Ac+zBx4pATO/qwj80woFJpImoRCzQhfTJzjmFE3Y54ZMjY2y6PAZ9dOXG8KV3MgpQbi8b
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 17:04:38.9503
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ce729df3-934d-48e8-992c-08de6b21f916
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS1PEPF0001709C.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5834

On Fri Feb 13, 2026 at 3:26 PM CET, Roger Pau Monn=C3=A9 wrote:
> On Fri, Feb 13, 2026 at 02:37:29PM +0100, Alejandro Vallejo wrote:
>> PV-shim already has hvm_enabled optimised to false, but there's no
>> reason HVM-only builds can't benefit from the same optimisation as long
>> as we add a boot-time panic in case HVM support is missed. Many branches
>> go away, some in the potentially hot switch_cr3_cr4.
>>=20
>> HVM-only:
>>   add/remove: 0/1 grow/shrink: 1/9 up/down: 1/-162 (-161)
>>   Function                                     old     new   delta
>>   arch_do_physinfo                              79      80      +1
>>   hvm_enabled                                    1       -      -1
>>   symbols_offsets                            30732   30728      -4
>>   symbols_names                             108029  108022      -7
>>   symbols_sorted_offsets                     60656   60648      -8
>>   flush_area_local                             571     562      -9
>>   switch_cr3_cr4                               311     300     -11
>>   init_xen_cap_info                             62      43     -19
>>   arch_sanitise_domain_config                  885     863     -22
>>   init_guest_cpu_policies                     1270    1247     -23
>>   hvm_domain_initialise                       1127    1069     -58
>>   Total: Before=3D3797004, After=3D3796843, chg -0.00%
>>=20
>> With hvm_enabled const-ified, it's fine to take hvm_flush_guest_tlbs()
>> outside the CONFIG_HVM ifdef and remove the stub. They compile to the
>> same code after DCE.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>>  xen/arch/x86/hvm/hvm.c             |  9 +++++++++
>>  xen/arch/x86/include/asm/hvm/hvm.h | 30 +++++++++++++++---------------
>>  2 files changed, 24 insertions(+), 15 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
>> index 4d37a93c57..da56944e74 100644
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -72,7 +72,9 @@
>> =20
>>  #include <compat/hvm/hvm_op.h>
>> =20
>> +#ifdef CONFIG_PV
>>  bool __read_mostly hvm_enabled;
>
> __ro_after_init?

Yeah, seems to have been missing originally

>
>> +#endif /* CONFIG_PV */
>> =20
>>  #ifdef DBG_LEVEL_0
>>  unsigned int opt_hvm_debug_level __read_mostly;
>> @@ -173,9 +175,16 @@ static int __init cf_check hvm_enable(void)
>>          svm_fill_funcs();
>> =20
>>      if ( fns =3D=3D NULL )
>> +    {
>> +        if ( !IS_ENABLED(CONFIG_PV) )
>> +            panic("HVM support not detected and PV compiled-out\n");
>> +
>>          return 0;
>> +    }
>> =20
>> +#ifdef CONFIG_PV
>
> CONFIG_HVM I think?

No. CONFIG_HVM always holds here, what we want to remove is hvm_enabled bei=
ng
present when CONFIG_PV is _also_ present.

>
>>      hvm_enabled =3D 1;
>
> =3D true;

True enough.

>
>> +#endif /* CONFIG_PV */
>> =20
>>      printk("HVM: %s enabled\n", fns->name);
>>      if ( !hap_supported(&hvm_funcs) )
>> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/a=
sm/hvm/hvm.h
>> index 7d9774df59..dc609bf4cb 100644
>> --- a/xen/arch/x86/include/asm/hvm/hvm.h
>> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
>> @@ -261,7 +261,11 @@ struct hvm_function_table {
>>  };
>> =20
>>  extern struct hvm_function_table hvm_funcs;
>> +#if defined(CONFIG_PV) && defined(CONFIG_HVM)
>>  extern bool hvm_enabled;
>> +#else
>> +#define hvm_enabled IS_ENABLED(CONFIG_HVM)
>> +#endif
>>  extern int8_t hvm_port80_allowed;
>> =20
>>  extern const struct hvm_function_table *start_svm(void);
>> @@ -399,6 +403,17 @@ static inline bool using_svm(void)
>>  #define hvm_is_in_uc_mode(d) \
>>      (using_vmx() && (d)->arch.hvm.vmx.in_uc_mode)
>> =20
>> +/*
>> + * Called to ensure than all guest-specific mappings in a tagged TLB ar=
e
>> + * flushed; does *not* flush Xen's TLB entries, and on processors witho=
ut a
>> + * tagged TLB it will be a noop.
>> + */
>> +static inline void hvm_flush_guest_tlbs(void)
>> +{
>> +    if ( hvm_enabled )
>> +        hvm_asid_flush_core();
>> +}
>> +
>>  #ifdef CONFIG_HVM
>> =20
>>  #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
>> @@ -498,17 +513,6 @@ static inline void hvm_set_tsc_offset(struct vcpu *=
v, uint64_t offset)
>>      alternative_vcall(hvm_funcs.set_tsc_offset, v, offset);
>>  }
>> =20
>> -/*
>> - * Called to ensure than all guest-specific mappings in a tagged TLB ar=
e=20
>> - * flushed; does *not* flush Xen's TLB entries, and on processors witho=
ut a=20
>> - * tagged TLB it will be a noop.
>> - */
>> -static inline void hvm_flush_guest_tlbs(void)
>> -{
>> -    if ( hvm_enabled )
>> -        hvm_asid_flush_core();
>> -}
>
> Is there any specific reason you only pick hvm_flush_guest_tlbs().

I didn't try to remove more. That one was the only one with hvm_enabled in =
the
static inline so it seems easy to pick apart.

I just tried compiling and I require very few additions to make the build
compile without stubs. I'll send another version with the adjustments neede=
d.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 17:31:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 17:31:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231559.1536690 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqx0b-0001JN-1Z; Fri, 13 Feb 2026 17:31:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231559.1536690; Fri, 13 Feb 2026 17: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 1vqx0a-0001JF-TM; Fri, 13 Feb 2026 17:31:12 +0000
Received: by outflank-mailman (input) for mailman id 1231559;
 Fri, 13 Feb 2026 17:31: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqx0Z-0001J9-5p
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 17:31:11 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c6a4174a-0901-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 18:31:08 +0100 (CET)
Received: from SA9PR13CA0114.namprd13.prod.outlook.com (2603:10b6:806:24::29)
 by SN7PR12MB6840.namprd12.prod.outlook.com (2603:10b6:806:264::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 17:30:59 +0000
Received: from SN1PEPF00036F3E.namprd05.prod.outlook.com
 (2603:10b6:806:24:cafe::57) by SA9PR13CA0114.outlook.office365.com
 (2603:10b6:806:24::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.10 via Frontend Transport; Fri,
 13 Feb 2026 17:30:59 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SN1PEPF00036F3E.mail.protection.outlook.com (10.167.248.22) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 17:30:59 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 11:30:56 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6a4174a-0901-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=v4fKCc8cozK55QAuFqQl8qbztIco7EPpcqOAQoLVf+xuB8/uMIEmJWX3HbS749gd9zidEWZhwEAtNXxBS2nrFJO71zKTH6yvGL+PHYlT0gGfwuMcIlIg3OIo1B47E3Qxkxi5FTFCS3l0r2HkHA5cbmhOuxFXZu3g5sOO8w65pQnm0Cn1WUE3EyQ3mawlSDuYfrHyVdTpLODOfZJFdtFrdbMM63+yB18wgEy9x3/Gi9TIKwaJOpmtNdiF0oQAhez5ndr5plxOYAgP+bHJvRDtcWnXJCexZ2W6/Xmdo364LGw6OUqhBEtaMz7oehb2DVlp8y3qfdC/PAorepXB1Q7S/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=zFGddlSG29XHVq0MQAa6rwVRPRL9FkkQytGbC6TCt7g=;
 b=KTQu8wLScTQdAx+HwRTlytYOw/4mFBWmhyl9iZEaBTw49Lo4/vMeWIGKAukkH3vN6h1+qgDH7uvTpSv0ajUkJw1l0+p6EWZyqJkthXxl683zXcO6Y0HOwRe3Ds4bXrR0CcHdbweShKyWqKWfZdw8S4xi7zCw/MPHB7KCQWrZkB4dGELdTanjaxs9RU7XbcRkR8UP5YanAncdFCjrOJQzYsPmZnUxbDAn9MurW2ZjqfWZWWIdrJhd16ojnhQKVQY/NOZGJ/giLGi96fkIb5DXwYsSlqikSGF9Ie2c6PGrZyA9Ux3odMTh4egPBoopjRrra33Saqt9q4NDek55w6jRDw==
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=zFGddlSG29XHVq0MQAa6rwVRPRL9FkkQytGbC6TCt7g=;
 b=arfKDeI1lOTXrhsdN/C1tOty/wezeR4A9VJQVS1oRbbzkvpPHD6mRSq1CQaBL0TLFQsINTq5JKKulU61uwh1pZSDT4tqNZMCnlfwbLhSDYuzaU+OOZBDu8YJD7TBCP+ZiQXe109yUrXx6eClcrJCR6P63iKVFzUFezBQVSNRW2g=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 13 Feb 2026 18:30:54 +0100
Message-ID: <DGE0GZ9SPVXI.13JZK2Q4WWG8@amd.com>
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/2] x86: Force HAP to be enabled when PV and shadow
 paging are compiled out
X-Mailer: aerc 0.20.1
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-3-alejandro.garciavallejo@amd.com>
 <aY8-wlXW6Y90vvOv@Mac.lan>
In-Reply-To: <aY8-wlXW6Y90vvOv@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF00036F3E:EE_|SN7PR12MB6840:EE_
X-MS-Office365-Filtering-Correlation-Id: a800246b-bffb-4c6e-4e82-08de6b25a6f2
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?S0FaOUY4SVFhVlA5bmVGYmkxOFVna3d2ZXFzNzMyZ2NCQzVVN2EvLzRaaXl2?=
 =?utf-8?B?NWpzQjlnZmZ1TnRDNDRsSnJ2Mk5Va2dZSXVtTFI1dlVxNmdxWFpyQjRTdk9v?=
 =?utf-8?B?TFMzemJLbHlScUdHYmVMK0grdVJzbVN5QVVnd1ltT1UvRDVmZ2p0b2RIUU8y?=
 =?utf-8?B?dGZ3UkxSSEpGNmM2cUhYck9yR3g0eUM3Y0NYeVRrRUwzTk5OQ0ZvTEM0aHlS?=
 =?utf-8?B?eWlBYkwzR3FkMFovV0tCRG1PVFBYeXpINVlqclc4NTZtR0pQckNWVkE0SmQz?=
 =?utf-8?B?ZU10bVVhUGNoZFpUZEFMYzBWSnpGYzVuelhVR2VRdWkzcVJHc0NTWHE4cnBX?=
 =?utf-8?B?WmxCV0RmS29aOWpuRXRwMG54SVg3bzJ5QnRyYmVSRUc2R3lWWlNObXp5dzFU?=
 =?utf-8?B?R210QjNDU3ZYVlBPVlZlQ0lUT3JCa0FkTnd2bGUxZW1CcTRLWTlQc3JUT1Z2?=
 =?utf-8?B?L0xPaVhqZ2xmVkMvSW4yOVJTTjFMRlJWTWxmdlYvTkt3Y1JPRW1CWVZINUZR?=
 =?utf-8?B?LzJZNW9wWUtXZVRIMi9TUS9SQTZST2thVUpsSkd3Mnh0Y2N5Qzh2TUtUdm90?=
 =?utf-8?B?YXFjdTFEOHBJdStqUnZ6cE9XS05mNkl6c2YrZXM2VTJRck55Z3E1MzBnNEE4?=
 =?utf-8?B?aThzMEo4WmtpS09oUnhtQzkzZ2w5blp3c2hWb1U0VUtwTmluazQvQ2s1UzYy?=
 =?utf-8?B?ekw5OTRQQVJWZ0VkQVRnd3NWc0lzUGlwK0s1OTJCUERCbnZ3TWNRZWxCeDhZ?=
 =?utf-8?B?SGpUMjc3SjVZbHNVTWF4eTJSdjJERHJ6NnJzMThsNlNFZzkzeGhGRk1yKzNz?=
 =?utf-8?B?by9kRXhKa202L0NQMVZUZHg5Unp0UVprc2R6SktMZTBLcEcySHcyR3FXRXJv?=
 =?utf-8?B?U3lrYVBkQ296eUxsUUJMSytnWERPYjB1blFDUGEySEdkVG1iOVovNnRWRVdy?=
 =?utf-8?B?YU53aUw4UzhjTGp4Y2txdmkvYm44amR3RlpuWHVXUFM4dDFrN3NpcHdjNHNn?=
 =?utf-8?B?VG9XWmorSUczMDBSNXAwZ091STFRWDdkRFhiSXQ3aEV4TkxGTDRzWnkvcS9Q?=
 =?utf-8?B?dHJZZVc5cmpPTk5FT1VXbFRTVFY2bCtPQnliNWJRamxrK2xjYTAwU1czcWxv?=
 =?utf-8?B?UUdtdjNYYkpqcnFsYUhGcnZPQzBEclJMbnlTMk5NcHRnK1dSZWUyQXpwNGJm?=
 =?utf-8?B?djMya2hzVHA2anJFcnNpdzBOVUxLT3l2a3ZOaDVzaWc0YjhISDF3Nndmb0Vi?=
 =?utf-8?B?ZU5sVGNyNUh4V2xzNmZEWElkWHE3SDB0NkZ3V2RkQ0g2RSt2RTYrZGJncExj?=
 =?utf-8?B?QWVYVG1PUDFaaHJ5VnNYQ1UzbC82L0J4c0xaM0l6UjlCQ2xVbUhlUzlkc3ZI?=
 =?utf-8?B?OVRUYkx4SlRMdmFpc0lLaG5aM05EOTFJN3FhSElWQTBhYTRoZFhsNjZZLy9P?=
 =?utf-8?B?aU8wSjUzZVh2SFdsUVY5cS83dGgxc3NKajBmUHFGTjhxZFdNTFA0eS9INnMy?=
 =?utf-8?B?cXRVZjVOUnR1b3dQWjl4aDlXUW1kWUZGWjhwUEJucEltNmFCRUJpYjQ3ZnlL?=
 =?utf-8?B?UmZiZWJpRCsrNlBsOUlUWmdpTHlHM3hoOEwrYW4wTStOeGM4R2VVT3hBSVdj?=
 =?utf-8?B?TnJBRnk5OEZSOGE2Ylg3dExvOTkvdEVwM0Z4SHNUM3liWkwwVkh5enptdzRz?=
 =?utf-8?B?K0hoY3NsaTBrdTErY0NTYmFpSTlnd0U1TXZJWDZtSGJJZk80S1Z6cnJXallC?=
 =?utf-8?B?QmVEOWdBWlBlUlhkSGo5U3dMeXZ4RXo2RkRVSjlUKzAyZ3hkb28yYWd4eFNY?=
 =?utf-8?B?NVZVRnpwNHJGRW5wSnozdVhBQktZTkZLaWhBd3RnQnFNZGxJUzFCVWhrdG94?=
 =?utf-8?B?VTZ3SzZ5N3VnTmJEVXR0V3lGRmc1NVBmMDRlcUVWb1AreTBXYkhVL2JOcWlo?=
 =?utf-8?B?cnBaWmtvOVFNUVd4SGZDKzNPY0Y4dlhBeDlhSWpXVWhOVXVyQ3dsYUFaQlJa?=
 =?utf-8?B?VzU3azAzbmpWWHlocWRBNnh6WlVUZ1IweTd0aTdmTEJ5N2EvTk83VFFONU85?=
 =?utf-8?B?OXY4Yk5YdnlxSXdGRTVBdnkrWmJpaUh3WjdLSXhyQTVCSW5CZTQ0cTdjZVN2?=
 =?utf-8?B?U3k2NHNEOXAxOHRFOUxIMGFCUlpFQkU0RjlKWGFQWTIvKzdJS0srelZYNTdt?=
 =?utf-8?B?WnhZQVc0OStsSngyL1g1S25FRi8xaU93U1J4V0ZVaXhpc2hreHlVSldQVlJr?=
 =?utf-8?B?dTJPR2hTaGpsUitMdFpuamVsaXNBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	qO4sDFPOM2GUyDflrU1LSanqh9GsbgU9gSJ7fvzXa5h7Nwi8GZeNv/8VDbBwwSp+Tq3HnZKg51tj4Omdua8TiEnhQ6C0zQqiiPq3O0ZW4sxzzhfge6KemDg9NF2tBevU6GWAaDVjmac2KtIncZLqHdT8Gc1DWW5DKrT91erDYYFCki3C4R/U5QCwXIz/ml6wEJY7sDGGDBs3Fj6Zj4By6xI2ZQ2hm9HgYv8eXaVPBFE0/Bdur/HnfMhP/YH98TIwmkVEimPwiGTku7q72fdq6M4kcB4C2V+b1umJ8ycMGQSJcygIaxq34SnmcqbFKqjXi7wGGr6IvyzenYCyc7kCUKtuom4DptM6xfUAUhRm4oR07hWh4uNd/Q2WI456sTxXG78PmtUBdQOnQVz4b+roNW4Hi/G72/7cAihPlED06y2+Ypo66PjhqdrW31exr4vd
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 17:30:59.1707
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a800246b-bffb-4c6e-4e82-08de6b25a6f2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF00036F3E.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB6840

On Fri Feb 13, 2026 at 4:09 PM CET, Roger Pau Monn=C3=A9 wrote:
> On Fri, Feb 13, 2026 at 02:37:30PM +0100, Alejandro Vallejo wrote:
>> Makes hap_enabled() a compile-time constant. This removes a number
>> of hooks that normally go reach onto shadow paging code, clears
>> many branches in a number of places and generally improves codegen
>> throughout.
>>=20
>> Take the chance to fully remove the shadow/ folder as it's now fully
>> compiled out.
>>=20
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
>> ---
>> bloat-o-meter against prior commit (defconfig:-pv,-shadow on both):
>>=20
>>   add/remove: 0/12 grow/shrink: 2/31 up/down: 67/-1609 (-1542)
>>   Function                                     old     new   delta
>>   unmap_mmio_regions                          1340    1374     +34
>>   map_mmio_regions                             211     244     +33
>>   opt_hap_enabled                                1       -      -1
>>   shadow_vcpu_init                               2       -      -2
>>   __setup_str_opt_hap_enabled                    4       -      -4
>>   _update_paging_modes                           6       -      -6
>>   _toggle_log_dirty                              6       -      -6
>>   _clean_dirty_bitmap                            6       -      -6
>>   cpuid_viridian_leaves                        728     714     -14
>>   iommu_domain_init                            291     276     -15
>>   p2m_pt_change_entry_type_global              214     198     -16
>>   paging_teardown                               91      74     -17
>>   paging_set_allocation                        384     367     -17
>>   paging_enable                                 76      59     -17
>>   p2m_init_one                                 295     278     -17
>>   ept_sync_domain                              201     184     -17
>>   arch_set_paging_mempool_size                 437     420     -17
>>   p2m_free_one                                  78      59     -19
>>   paging_vcpu_teardown                          36      15     -21
>>   p2m_pt_init                                  125     104     -21
>>   p2m_pt_change_entry_type_range               218     197     -21
>>   arch_do_physinfo                              76      53     -23
>>   sh_none_ops                                   24       -     -24
>>   paging_final_teardown                        134     110     -24
>>   __setup_opt_hap_enabled                       24       -     -24
>>   paging_vcpu_init                              41      15     -26
>>   paging_domain_init                           167     141     -26
>>   p2m_mem_access_sanity_check                   71      42     -29
>>   hvm_enable                                   449     419     -30
>>   init_guest_cpu_policies                     1247    1213     -34
>>   paging_domctl                               3357    3318     -39
>>   __start_xen                                 9456    9416     -40
>>   arch_sanitise_domain_config                  794     747     -47
>>   symbols_offsets                            29636   29588     -48
>>   p2m_set_entry                                305     247     -58
>>   guest_cpuid                                 1919    1858     -61
>>   ept_dump_p2m_table                           817     751     -66
>>   recalculate_cpuid_policy                     874     806     -68
>>   shadow_domain_init                            71       -     -71
>>   mmio_order                                    73       -     -73
>>   hvm_shadow_max_featuremask                    76       -     -76
>>   hvm_shadow_def_featuremask                    76       -     -76
>>   dm_op                                       3594    3510     -84
>>   symbols_sorted_offsets                     58464   58368     -96
>>   symbols_names                             103425  103213    -212
>>   Total: Before=3D3644618, After=3D3643076, chg -0.04%
>> ---
>>  xen/arch/x86/Kconfig               | 2 ++
>>  xen/arch/x86/hvm/Kconfig           | 3 +++
>>  xen/arch/x86/hvm/hvm.c             | 8 ++++++++
>>  xen/arch/x86/include/asm/hvm/hvm.h | 2 +-
>>  xen/arch/x86/mm/Makefile           | 2 +-
>>  xen/include/xen/sched.h            | 3 +++
>>  6 files changed, 18 insertions(+), 2 deletions(-)
>>=20
>> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
>> index 2ce4747f6e..190f419720 100644
>> --- a/xen/arch/x86/Kconfig
>> +++ b/xen/arch/x86/Kconfig
>> @@ -67,6 +67,7 @@ source "arch/Kconfig"
>>  config PV
>>  	def_bool y
>>  	prompt "PV support"
>> +	select OPT_HAP
>>  	help
>>  	  Interfaces to support PV domains. These require guest kernel support
>>  	  to run as a PV guest, but don't require any specific hardware suppor=
t.
>> @@ -147,6 +148,7 @@ config SHADOW_PAGING
>>  	bool "Shadow Paging"
>>  	default !PV_SHIM_EXCLUSIVE
>>  	depends on PV || HVM
>> +	select OPT_HAP
>>  	help
>>  	  Shadow paging is a software alternative to hardware paging support
>>  	  (Intel EPT, AMD NPT).
>> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
>> index f32bf5cbb7..310e09847b 100644
>> --- a/xen/arch/x86/hvm/Kconfig
>> +++ b/xen/arch/x86/hvm/Kconfig
>> @@ -92,4 +92,7 @@ config MEM_SHARING
>>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>>  	depends on INTEL_VMX
>> =20
>> +config OPT_HAP
>> +	bool
>
> Can't you define this outside of Kconfig, like:
>
> #define HAP_ONLY_BUILD (!IS_ENABLED(CONFIG_PV) && !IS_ENABLED(CONFIG_SHAD=
OW_PAGING))

Sure.

>
> HAP_ONLY_BUILD is likely not the best name.  Maybe CONFIG_HAP_REQUIRED
> or some such?  (Seeing the usage below)

Definitely not CONFIG_*, or it'd be an accident about to happen when mistak=
enly
used on IS_ENABLED(). HAP_EXCLUSIVE?

>
> FWIW, with the current naming I've assume this was supposed to mean
> "Option HAP" or some such, when is "HAP is Optional".  We usually use

It was. Originally it had a help message and a default, but I quickly notic=
ed
that served no purpose. It has that weird polarity so the build would remai=
n
with new options being additive only.

In retrospect it can go back to a more natural HAP_EXCLUSIVE that removes
a bunch of !s in the code.

> "opt" as a shortcut for "option" in several places on the Xen code
> base, like "opt_hap_enabled".  I also think using it in the positive
> for so the variable meaning "required" instead of "optional" makes
> some of the logic easier to follow below.

It does, but in Kconfig it's nicer if an option being enabled yields a stri=
ctly
more capable hypervisor, I think. Makes allyesconfig and allnoconfig work a=
s
intended.

>
>>  endif
>> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
>> index da56944e74..ce58632b02 100644
>> --- a/xen/arch/x86/hvm/hvm.c
>> +++ b/xen/arch/x86/hvm/hvm.c
>> @@ -91,9 +91,11 @@ struct hvm_function_table __ro_after_init hvm_funcs;
>>  unsigned long __section(".bss.page_aligned") __aligned(PAGE_SIZE)
>>      hvm_io_bitmap[HVM_IOBITMAP_SIZE / BYTES_PER_LONG];
>> =20
>> +#ifdef CONFIG_OPT_HAP
>>  /* Xen command-line option to enable HAP */
>>  static bool __initdata opt_hap_enabled =3D true;
>>  boolean_param("hap", opt_hap_enabled);
>> +#endif /* CONFIG_OPT_HAP */
>
> Hm, if you nuke the option like that, it needs to be reflected in
> xen-command-line.pandoc document.

Ack.

>
>> =20
>>  #ifndef opt_hvm_fep
>>  /* Permit use of the Forced Emulation Prefix in HVM guests */
>> @@ -144,15 +146,21 @@ static bool __init hap_supported(struct hvm_functi=
on_table *fns)
>>      if ( !fns->caps.hap )
>>      {
>>          printk("HVM: Hardware Assisted Paging (HAP) not detected\n");
>> +
>> +        if ( !IS_ENABLED(CONFIG_OPT_HAP) )
>> +            panic("HAP is compile-time mandatory\n");
>
> From a user perspective, it's a weird error message IMO.  I would
> rather say:
>
> "HVM: Hardware Assisted Paging (HAP) is mandatory but not detected\n".
>
> Not fully convinced about that wording, but I would certainly drop the
> "compile-time" part of yours.  A user is not likely to care/know about
> compile-time subtlety of the error message.

Sure.

>
>> +
>>          return false;
>>      }
>> =20
>> +#ifdef CONFIG_OPT_HAP
>>      if ( !opt_hap_enabled )
>
> You could possibly do:
>
> #ifdef CONFIG_OPT_HAP
> /* Xen command-line option to enable HAP */
> static bool __initdata opt_hap_enabled =3D true;
> boolean_param("hap", opt_hap_enabled);
> #else /* CONFIG_OPT_HAP */
> # define opt_hap_enabled true
> #endif /* !CONFIG_OPT_HAP */
>
> Above, and avoid the ifdefs here?

Whatever poison you prefer. It's just ugliness motion.

>
>>      {
>>          fns->caps.hap =3D false;
>>          printk("HVM: Hardware Assisted Paging (HAP) detected but disabl=
ed\n");
>>          return false;
>>      }
>> +#endif /* CONFIG_OPT_HAP */
>> =20
>>      return true;
>>  }
>> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/a=
sm/hvm/hvm.h
>> index dc609bf4cb..b330d65d6d 100644
>> --- a/xen/arch/x86/include/asm/hvm/hvm.h
>> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
>> @@ -703,7 +703,7 @@ static inline bool hvm_is_singlestep_supported(void)
>> =20
>>  static inline bool hvm_hap_supported(void)
>>  {
>> -    return hvm_funcs.caps.hap;
>> +    return !IS_ENABLED(CONFIG_OPT_HAP) ?: hvm_funcs.caps.hap;
>
> return CONFIG_HAP_REQUIRED ?: hvm_funcs.caps.hap;
>
> IMO is easier to read (same below for the hap_enabled() early return).
>
>>  }
>> =20
>>  /* returns true if hardware supports alternate p2m's */
>> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
>> index 960f6e8409..64fde82c50 100644
>> --- a/xen/arch/x86/mm/Makefile
>> +++ b/xen/arch/x86/mm/Makefile
>> @@ -1,4 +1,4 @@
>> -obj-y +=3D shadow/
>> +obj-$(CONFIG_OPT_HAP) +=3D shadow/
>
> I think you can use:
>
> obj-$(findstring y,$(CONFIG_PV) $(CONFIG_SHADOW_PAGING)) +=3D ...

Hmmm. I guess I shouldn't just include it twice, like we do for other .o fi=
les.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 18:25:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 18:25:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231635.1536708 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqxr8-0000PZ-8G; Fri, 13 Feb 2026 18:25:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231635.1536708; Fri, 13 Feb 2026 18: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 1vqxr8-0000PS-4f; Fri, 13 Feb 2026 18:25:30 +0000
Received: by outflank-mailman (input) for mailman id 1231635;
 Fri, 13 Feb 2026 18:25: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqxr7-0000PM-B2
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 18:25:29 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5b08f9bb-0909-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 19:25:23 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB6379.namprd03.prod.outlook.com (2603:10b6:303:11e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Fri, 13 Feb
 2026 18:25:18 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 18:25: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: 5b08f9bb-0909-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ESkHy/kA4dwouDG14Cfe/ENKfCfiLv5tBW1ymckjOWajTDWVShTqYQr0mBsb0pm89QHCn6tIZck6DTWbCcRY7oNUfl4Hc2bZHPCgf13+Ff6hldVbM8vuwaWVcCN5zo5BWSvU1I2uxl0VEqqMOfKWJIpY7xH4PPo4n+N5eixHjaUnCsFuAlypEYOKHaRrt/HpA8Ym/zhfnExZQSEzf+PQ8+5n36V+QB/bKblQp2+d7LWJzkxcc+nLGf1U1T+TSiom87rBI+ETdtO6fAoD8YiCGeHn0geM/HUYthQcKPJJAiCvHGJnRA2RbWjifEQqdXZ0rD4/jUYrA5RkKolL9LWq9w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PEfukp+hq7IEkNLnwMdr9XX3LAeR8fYU3ZvuXEU0c+U=;
 b=jAtZfo2i71qsdLGDYM56GS9+51txIAbA/yyen2fA/xmFR6cPW3v0oBXYv/QlsEWw4Idf5s7TRS5DRvZ/w7cuq3TgDyozPvhVOe76BnLGmWWe/3EdwzKuHaSzlIHH7d0kkebl/XiS5Tn0zMJisb66rbemO/IjazC7CdZt/jcvsaWRpHZxbL8Ximhr7E1zgj1LQZOWC57qvVKSQ1U4O3Uv5aTWHYopy1nYgCB8h9KdijlhTBB9dfGuTQ9IEd5GjJ4SmcUjd+oHHVeEtf2hf7Dw+Q+pH4+4c04Iw5XfvT36snWMKeo3ypeaOe3zJ6e6oJY4UdSnupYFHgSyhUmwZYoo4A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PEfukp+hq7IEkNLnwMdr9XX3LAeR8fYU3ZvuXEU0c+U=;
 b=eg8zFNjOMomwe20jiS67lbaaq24c/13IkgaVo/dBY+h4xuW00RRap1WL33gS88OtYjUm/nXHz/uZNrxXnaZRG3YAe4iej83yYlkY33+wgrsqZOeoyJ8F4ZlYLkdX61is+D7YbSFkInH5R9hewR2L+/qIvzOTWUUSH9RYvf+A0QU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 19:25:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v3 07/22] x86/traps: Alter switch_stack_and_jump() for
 FRED mode
Message-ID: <aY9siy9z2WV1Q-Iv@Mac.lan>
References: <20251003225334.2123667-1-andrew.cooper3@citrix.com>
 <20251003225334.2123667-8-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20251003225334.2123667-8-andrew.cooper3@citrix.com>
X-ClientProxiedBy: MA3P292CA0040.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB6379:EE_
X-MS-Office365-Filtering-Correlation-Id: 60333b38-eecb-4fac-13ef-08de6b2d3d52
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7142099003;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?akViZGVuZWtwR1VDNEZROE9sazhqcDFqRWhodjhMK3ZOUGN0NEd6NHh2bjNt?=
 =?utf-8?B?UGdJTVdhS3RPZzRxbENRUkU3UFA0VXRtN3lCQWZsbHZTZkpxNVlUUi9NWXYr?=
 =?utf-8?B?RjVtbU5oOFBoQ1cwMDUreWl6MFFSczNrSXNPMFovaWY3L3B2STlMdnl2TUNn?=
 =?utf-8?B?MkUzOHRrL0RtN2wvVkgrdi9kYlozL3d0eExsQXBoNzBBK3h0R1RpcEJEcVdJ?=
 =?utf-8?B?VUpsZm1jbUd0TEFoZ1ZnRzRrU3JwTGFLbHBUallzRENrNksvdlVUbjljWFlZ?=
 =?utf-8?B?N2FVSEQ2UHpNWlcvb3gyOStBZFVWYVN5OFJIa0thcFhudmE5VnR2aTBic3BS?=
 =?utf-8?B?MHlTNjkxMFFqNkFieTlCWUpaSWtpditNVFB0NitYV3hrVHZROGFrY3l0MVZM?=
 =?utf-8?B?TWY4WGJKNm5PTWVXWU9oa1BaWmhLb0liQmZ6TjNQQ3BhanEyNTZiVmJhZk56?=
 =?utf-8?B?VG9EcnNaV2JROG5qYm9nTC9FbTJJRllIZmt0c2lRQTFKMUFIR2RlMnlwUjhn?=
 =?utf-8?B?YUR5U250TkYyTXQ2ZmtlSFg5RkR4QUJZUUJrbTYySndraitkNlZoTEJhVFY3?=
 =?utf-8?B?bSt5blMzdVAwT21LN2JMTENwWlh0TFdpV29BblFKV3B4MkFreHBQMzJSK2pj?=
 =?utf-8?B?UVpDQkNyOFZuRTVHNjhLR1F6M2ZMYlpaVmFTS2xFMnhlN3hXUDN6WGlOL3l5?=
 =?utf-8?B?c1ByOTlXQ3JROTkxUnRwaW5vVGdiWXNpZ1A5MklsZUpweVJKVFIvM1FKUEVG?=
 =?utf-8?B?RUNVcXlUQmZseVNMYnJ6M3BTeSt0VjFpMTMwRTZHdXN1MGlscTVBNjFEZ3hw?=
 =?utf-8?B?cGxvY2VtODZXVEJxcUo0Z1BpekpkRlNjMHF2R2U0cHdyUVBvKzE2Tm94clAy?=
 =?utf-8?B?YmFOV1hyOEFkZFJsYnd6eE9BV3JlY1Z1czVmUWpiNGdwVUNrOGxLQTFhWTRR?=
 =?utf-8?B?V2NHN3lpNm83QUx6U0xEVkRibnpvK0FKR1RiZ2VBaG9VSnNqY2tqeGwrYjhl?=
 =?utf-8?B?Qy9PeDMxeU05eUhwdnI0Zm1KWVVCVVpXR3lyd2VXZVRFSkliMXNOaXN3czdy?=
 =?utf-8?B?YnFVY0ErazQwY3hyVXgzVE1FQUg1MzhaWmZXakk2S1pEQ3B2QjgxWHdROCt6?=
 =?utf-8?B?b0dzOEpWS25ESjEvamZQTitOWEFLb2JreThpVGJDU2dTRlFJVEIyVFFpbU1Y?=
 =?utf-8?B?RXYxU3pOdDEweDM1cDkzVlkzK2RsV0dkSlFLa2pyVDhCTlppSGxLUVBTWm9B?=
 =?utf-8?B?ZFBpQ2RyTXVGRVorViszRkl1cFpIQVEzY24wT1BLYm5NL01JRTdYRHRNbEtP?=
 =?utf-8?B?Y0h1ZEovYThmZTl4MWJFOFpLVDNvSTg3bE4ySGlDODlNL0lWMUVYb1ZZRFV6?=
 =?utf-8?B?ZnpMTlRzRHBmQzU4TFRCNG8xUzlLbW5WdElQbzl6TmFQSHNITUplNGk2cXVv?=
 =?utf-8?B?MTlRd3c1S0RwK0JDYnRDVnpQQ1JnOHJzcmZNWTBLRjMvQnJNSnhRZFVrOVkx?=
 =?utf-8?B?U3JBN3lwSHFJeXZJL24xNzVjdVplVWUrUGJiS3crdHV6OU9RR0E2M1cvb2Jj?=
 =?utf-8?B?U0tub2hkNklKSGFlMFQyRVdRd25aNUsydks1MUJJSGNQem5rbmJSaDNjWnRr?=
 =?utf-8?B?VjVjWStHcFIvc0ZpR2Z4UDAwOXBQQmFIdlJ4V0ZqcTg3dGEvYVhsdTd0RURn?=
 =?utf-8?B?NmNodExpTHN2N284TkJyc3lYNkt1MkM2REpyRUlITm84UzJGOEZMc0ZQdDhE?=
 =?utf-8?B?Q2l5RTlzZEFmOWxRZzJlRDA1VUE4Qmo5K3poamJDTExuTG5ha1R0akhWWEVt?=
 =?utf-8?B?ZXJNTFdYTFJTZm10aGFIakJOenI5L0dOYktRdWlEaE01bTZORCtqOG42dU1z?=
 =?utf-8?B?citQTjVsdE9EaWVFWjRJV3FXM0Z2QTRyQWdlK2lBbnN4a29VTGVnTTl0cXFa?=
 =?utf-8?B?T3dJQ1U1WHNLbmJpV21XWmszSnlPbUo0MXJPa0hxNTZiVFRXOGlRb082Y1Qx?=
 =?utf-8?B?RVpUMlNQblh2Ymd5SkJZalhCbm1nRzQyRzJPbG9vZ1RVNG1XWUl3Mjd1a3pZ?=
 =?utf-8?B?bWM5bzByU2NLZm05eldIZHRFM2hzbE1mc0N0Q3VFSUh3Q0wvWWVpVkV6YTc0?=
 =?utf-8?Q?LEuo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7142099003);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SUlRaGdETHAwTDR2UnhVMXFka3ArbjBmMnZCWjlUM2xuSGw4UmNnM0pNSWRq?=
 =?utf-8?B?enVoSWVIcmZvVEVkVnArWTZqR3EwMWFhZmVhMEg0RVpqQ0dmZ0RVaHVteWRh?=
 =?utf-8?B?WGlWWG5BTmFybWt6THVRVHgyUnptTXd1M1dtMzBFaXlDcjc1VkxCQmNTRVNS?=
 =?utf-8?B?NmlMcVozZHdhaWxlN3R1Z1kzM3k3Vlh5ZzlMTDV1WFZjTGtOZW9McSsrUWtk?=
 =?utf-8?B?RllIV2xVRExjbm5FdWxaV0kvRFpXK1FYSjdkSzdaOW5hUHpsRXB3TVhsM2FK?=
 =?utf-8?B?NTloZ0JIOW9mUHRiSTYyR3ZYNmVKUFBCNm9KbnprZGlHVUQ5d01zOXpwaEVV?=
 =?utf-8?B?dWh2UlpaWStCa3BXZFJMMXVHMC9CZFlLVFh2bnlDMEViUEgrTFh5eDVyK3Uz?=
 =?utf-8?B?ck91UnQ5WkZNbWhiREFwUmFvK3pyMDBOL3p0UjM4dzJ6czVKL2tsMTdFcXVN?=
 =?utf-8?B?NW15TzBHNzNMTXQxV2lBR0tmSDY4bHhNdFVCNWFTb2g2bWp2UmlXa2g2a1Zw?=
 =?utf-8?B?elBTSGs3TlZxbjhodnB6Z0UrT2dGdmFybENYVk1BenZjTGxiZEtKMEJscWJi?=
 =?utf-8?B?YllES3lwWXVlNXRmeGh5U0VrakppNnNsTlpiaU5KWVlOYkdaZFlCM20rNE5q?=
 =?utf-8?B?bkw1eFpzZVRPV1Q5K003RUVGVmU4SkdaQmNXaWc5enRYT1hzRGkvV044NFBl?=
 =?utf-8?B?bFVBaG51ZFhabnNjdlhPWDlQZVoyRHZBOVFLNG5qd2NNbWxGaVh0UURUMFA0?=
 =?utf-8?B?RmdvZXFVVktwZlE5SUFka1Exa3I5WWkvUFlMNGZTaUY5L1B3dXNXbUxyS1F6?=
 =?utf-8?B?dlpvZ3N4U291UDEvblBsZjZhaWZoMXl0UDJoU2RtKzRqVkZVL3hoQllodGZG?=
 =?utf-8?B?clFHWkdMaVdlUlhET21YeGFlS25qbXFKOXo4ZHJrWjQwcmhEL0EzYjJ1cVJ1?=
 =?utf-8?B?YTErUStWQmliSXlTZ3JWRnBZcUh2VUZlVFpEMVI3d215U200SHhLVG5vejlv?=
 =?utf-8?B?OHRreGZIcURVMFh2M2VSYURiZjZJNkVBdVJXc1IxWVp3dmsvNUxTdFh2U2N6?=
 =?utf-8?B?T2pTV1lOU0tVSFJCVW14YlZsNlVMei8reTVJSk1rUkxYamc1M2x1UTcrZzA5?=
 =?utf-8?B?Q0ZDQnJaY3lGKzF4ZDZZOUx0UXc3VEQxUEJTd3JmajdXaCtyL1ZMeGdTSHJi?=
 =?utf-8?B?SFFrd0ViWWFWTmJtZGhCK0d3V2tpT2gzdjgxNFlJYlY1MUJvRGVNT1RNQ0Jq?=
 =?utf-8?B?UDNKWlNONFBFQ0hvV2VaZFJmdGttQUJSWk4yS04xYXZCL29FeGFKYk1UNlJm?=
 =?utf-8?B?WW1hYTFMQWNkSGZPd2dWVk9pczYvcmVra0dWYXJrMzVVNHN6ZVBIdlBZMi9l?=
 =?utf-8?B?R3pKRklPSkhZcERpMldaNVgrdWt5WXJ4QzFNWkNxcEUxUTNEN2k1SzFoTTZv?=
 =?utf-8?B?c2d5VWJ1bU5IS0szRzg1bE9aWnRka01zcFRsb2hSOTBKQkM1ZmFoMWdlWURk?=
 =?utf-8?B?aThyMTVKQlErNWdHeFJKcEtJcVNIOUlmTkI0YWdUbnphVWt2MU4yTzF0Nytl?=
 =?utf-8?B?bllwQmwra0RCNzZQZlZOcU4vclQ2YnYzQlhvNGVNOVVkQUM2bTZWU1p1N0x3?=
 =?utf-8?B?MVgwOEhVaFBtMWg2ZW15UERObXNYanYvUk1IZ3h5N1A4REFMT1ZsVVlpZUxY?=
 =?utf-8?B?L1lLVXM1OEZ3a2lYK0h5OXRVRWxjekZKM01XaHJRVzRuV1ZxY0pES0lxSm85?=
 =?utf-8?B?Nmh5M1ZLVUZOb2htMWNyREkwTGdDTFk5aWlTaDBEdjBCWmFpRWJmZTdqNWtq?=
 =?utf-8?B?cFVXazRuaVpuaUFtbVlPTzB2Y2J2ekUzODFyMTZmV1pFbWEyWEZFVm1BSFFl?=
 =?utf-8?B?ZkJkeWNrM3RUaW9RTlUrakVtamNReUhZYmF1UXA3dkpudk1hcTJEa0p4VjFY?=
 =?utf-8?B?b3dIR1lCVFJzYUo3dVNEZWl5WURkNGhZU0hNaG5ZZ0J5OGhKdVpUMHFualYx?=
 =?utf-8?B?Q3d0bXpxTmc4SjJtN3NWYjZlNXByalhQT1BRRGtJbjMxMzB1RWtaTlE2TStw?=
 =?utf-8?B?UXAzbjl6bXBDYmFPamxlZGVEMDBFSDdxU0xidkZDdjJsQTUxcmxtUWdDZGYw?=
 =?utf-8?B?ZTRLZHJWbVlaWHpjaXJYMTNBY0gzdEkySXE5aFdGc1Zoa3kwUVNlOURxM2FM?=
 =?utf-8?B?Wm51Ky9Ua1d4UEJCanQ0RDB6RThFM2lFNmVaekpGbXZZaXJjR3FDL2hXZVJ2?=
 =?utf-8?B?bzJteFhER0FZSVhoUFJ6Ui8vek5SbnpDMGRPK25oMVE5OUx1WEV5ekZvQXZD?=
 =?utf-8?B?K0ZaMm5kQVBna1hMVURCajF2WkI4Q1pTZ1ZMS0o2NGZtdGdLYmYydz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 60333b38-eecb-4fac-13ef-08de6b2d3d52
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 18:25:18.3140
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: nI/TLjYxUiYkxZOpu6lJG20Wj10qS+xd5Uz5YrZUGVZ0E3Kq2rlUBpRb3uBbucYsYDk1feHoeATxfmJUDN59PA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6379

On Fri, Oct 03, 2025 at 11:53:19PM +0100, 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.
> 
> Fix a typo in the parameter name, which should be shstk_base.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> Leave as $%c.  Otherwise it doesn't assemble correctly presented with $$24568
> to parse as an instruction immediate.
> 
> v3:
>  * Fix a typo in the parameter name.
> v2:
>  * Use X86_FEATURE_XEN_FRED
> ---
>  xen/arch/x86/include/asm/current.h | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
> index c1eb27b1c4c2..62817e8476ec 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[shstk_base], %[val];",                 \
> +                "mov $%c[shstk_base] + 8, %[val];",             \

I would also be fine with using the more simple '%' if that yields the
same result.  But seeing existing code is already using this
formatter, I think it makes more sense for this commit to not change
it.  It can always be adjusted in a followup commit if there's a
pressing need to change this.

I wouldn't have used %c myself unless it was already present, simply
because I'm not that proficient in inline assembly.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 18:30:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 18:30:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231644.1536717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqxvx-00021S-Oq; Fri, 13 Feb 2026 18:30:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231644.1536717; Fri, 13 Feb 2026 18: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 1vqxvx-00021L-MG; Fri, 13 Feb 2026 18:30:29 +0000
Received: by outflank-mailman (input) for mailman id 1231644;
 Fri, 13 Feb 2026 18:30: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqxvx-00021F-3j
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 18:30:29 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 10509a3b-090a-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 19:30:26 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by MW4PR03MB6379.namprd03.prod.outlook.com (2603:10b6:303:11e::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.11; Fri, 13 Feb
 2026 18:30:22 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 18:30: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: 10509a3b-090a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bh9Da2Qtb2bKijI3XsXo9fCX9fYzHnWXhQEfDHabcANQLYOK8FZEbb7Ut5l9wSSjF+aIf0G8h/Aleip2/AxvXsxK2hM9LDD7Y3WJcMbV5Q49FV37Hf0oarr0TajRG6bcDF418OzJCyIq8vbb9y26jbUdSTPJfH9ulMRo+QEG9RY9MW24FB0tS33BtHB9jiK0J6P9pgGR+8rAHBZlIjdZdBFGBfqQEnWS10OVZGWd97yaYfzseZTDLqH8sHVnk3PGwo+7Bh6V0exyVBIYwmwAQsAukHHl3/JT9XrhxGtASJCHd7YdxEM9MesZ1I58lWb+lrynC9uf+T3nzFfHEA9ZMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4vmO6QHuz+sL8Fav308qwPIEi45MlodPL7zNWc4BqI4=;
 b=RHrZTTe3lFJdAvuTd6qmXoSR9Gwse8SRO1HQNNprTx8nerf94tZ9Nz5z3l3dmK8Ghg73ddkyRswiokSZfcVsBjyqYjomYmAAOT10pjPyNZrxF2dYIGsQHcX0HfaKfSiM8OdpZwBTibxkNzbzypVnrXTZChPqBfWVPjrFkzWjHy2M0x5+Z2YaLjmhQqbzg5vdvTUXFih8Y4B9VdoFxhq+N1Txm48qBSOE1V+2fVJ8DL0/AnsjBR+6NRoC0uP/W1nJhjfPiLZdGJy2sSNWdnESxMOfUzeFP8EhwqG4oHt/6vTmCewoNGMQKK1zrqZadiWr3KD5Luc302P1YZKf04+m7Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4vmO6QHuz+sL8Fav308qwPIEi45MlodPL7zNWc4BqI4=;
 b=jLnLnhru6DKx22FN8d0yuSinT9CqnF7D+UsRqx8z8YBRwebIMqdZZ3doI8YzXg/UBEwUK/cWgWliNYWejtoeSvilIuyEIxLx5GtZrCbfxq/nR1DYrA/8NjFSoef4fnXnnRc/+xyX7DwV93Um7vOgR3H+/MgZpwrVrFLLQ3gz7Lg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 19:30:19 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 1/2] x86: Make hvm_enabled a constant unless both PV and
 HVM are both compiled
Message-ID: <aY9tu1f6T8lsFap-@Mac.lan>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-2-alejandro.garciavallejo@amd.com>
 <aY80qJVIZOjjqBOS@Mac.lan>
 <DGDZWSLET8UI.3AMV83AW7Z3I0@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <DGDZWSLET8UI.3AMV83AW7Z3I0@amd.com>
X-ClientProxiedBy: MN2PR07CA0011.namprd07.prod.outlook.com
 (2603:10b6:208:1a0::21) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|MW4PR03MB6379:EE_
X-MS-Office365-Filtering-Correlation-Id: 3d0aefc3-827c-45cf-c5a0-08de6b2df269
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NFpTeTFCVGVUYk1LY09wWlU1TTlUb0R4d2pqQk8wZ2Y5VW42MkdhZW9UdWhy?=
 =?utf-8?B?QUQ2dnFFd0Jhb2c3OWRrZXFUN0ZtNlNxRVpzeVpSRmN4ekVyZWkyWDZ0dW5T?=
 =?utf-8?B?WkJwUHNwcURIWGFneDd6eWlVTlIyRWx0WlBFUlNUdjNLWEVqem14VG5FcXpZ?=
 =?utf-8?B?Q2J4L0VvNzBEcm9ZMGFZeVBlT0lodXdNZ3hFV2tnUkNtZElCYUJFK0VTd1RO?=
 =?utf-8?B?SnNtRzZIWDlyREpoZ0NEcWxYa29UWFRJN3Q5YnpZVUhDVzEzMEx6QkxSRkds?=
 =?utf-8?B?RUI5cXNTTG1oQVFPNFNINVEwOGdvRGJhc3BudFFvdE5WcXlIUklHdWJPTSt1?=
 =?utf-8?B?dWI5SHpGbk5Hdldic00wa050S3l5UVV2cVY0N0YvZjRBWWl4VWp3a0xTdy9t?=
 =?utf-8?B?RXVoWUtZUUp6eUJrcDBrR0p6NEQ3MXFyZGMydzFQd3Q5YXhjckJSdndTcmRG?=
 =?utf-8?B?RnJaWHpPMENwc1pJakc4L0o2UWhCQk5aejIzOE5aZEk4YytLU0VUb0dGQzcx?=
 =?utf-8?B?VHBxSlJQOENxaHUrSklUQ3IxTEZVdUZscTlZREZVZ1lUQmtGWDdnMVhZbm5U?=
 =?utf-8?B?eTVGQW1HNkY1eXJuSW5wSkVzV1RDcnZ0bEJOaENlMzdCclFjaThYZ3JycHJM?=
 =?utf-8?B?YmtZZ0YxckdrSm9UbmxwanlSZ3JOTGZQVmdjY0xHKzlLazZsYlhnSVRtNUNw?=
 =?utf-8?B?M0FLNVMwbFpubGpObXdVR0dDcWlydVVsc3F0OW9Uemt2bVZEalRsNlBPc2Jq?=
 =?utf-8?B?NnpSNXBnc0hpWGFLMjltTVFaUC81K2pobTllbFVuelVPT1hIS3lyeEFiekM2?=
 =?utf-8?B?MFNuN1lFbW1CTWJ5UXJuYkovS3NJaWNxU2ZZM0VmbXIrU3c1WkdtRE9Zd0dM?=
 =?utf-8?B?VTFOSGt5T3FUM2hpMWUzbGw0QW1JTmJvRllIN1I3ZFB1bGtmbWh5Ly9kdTdV?=
 =?utf-8?B?SUpQMVh1Z0VnSjFQMGhMcG9QaXFuTDRBSEJNa3doTzJlQUdGWnNYRlZZZUxY?=
 =?utf-8?B?QXI1QUdveWVLVnlzY1JaR2JxUFNVU2lsdGNMYUtGU1UwK1ZpR0ZGZExnOHl0?=
 =?utf-8?B?Rk9ROE9tKzdiOWpKYkZmenpXRTNSajlJb01uclRoVEpFdWpiTUEwbWNMckw5?=
 =?utf-8?B?Qi9udi9RVTg2cFB5bGRGcXpLbmpENEF5dDRXRWYrOGgwajB1NW1qQlBBbG9X?=
 =?utf-8?B?eDU3TFZMMVBVNndPOThmTWJMYi9ENHJTM2hrNDE5VWdNK2JiU2thRTdMUDF3?=
 =?utf-8?B?djl6cHJxMWlMYUt1RlI2NTNpb2N5a3FvN0lHV2Z6cUM5b0t3YUxPWDVNLzQ5?=
 =?utf-8?B?N0ZzRE5qMEVPSzZCeElBbVVnZ3N0S21DRGRFeVc2UHZsN240Wmt3SDdrR3J0?=
 =?utf-8?B?Wm0vdFVxb1NoeDBGd0NqVXJWY2JyTWFNMVA1ZHVzTksyVERkMWVCYlh6MldP?=
 =?utf-8?B?K1lEQ0c3RVlEbUJtbEptUXRKVXlTSDRCTFBQbXZRckdMYmFxR1NiaVVXd25m?=
 =?utf-8?B?bExYWW5WUjdEUklwbTRsWFQxUnl4S05TVW5PbmwyN0hYQllJTGwzMk1RM3ZE?=
 =?utf-8?B?aGpoK2JoYTd4YUZYSUFpdi9SQnAyR0U1a00wK0ZMdi9NRk5yallpNCt3aG9W?=
 =?utf-8?B?bGJOZnByQlJmRVJna20zN0pBeUczaGE4dTJLTmxJUDduL0w2Q2hkTWJYeFhQ?=
 =?utf-8?B?YlUxZHBJSDhHVjNNaEFzdlk2UVBMWCtYTWtwbnBOc2ZPeVd2VklCU2t2bVd3?=
 =?utf-8?B?VHZlY205bVRuOTJUUGtnbS9TaXJjM1NQbXp4TlVzMS8wY1h1K1dhdGI1cEdP?=
 =?utf-8?B?cW5RcmtjRis3V2hSWTc4REdlbWlBV0FDdHRhbkt1cC93Rlk4OElEQ1J6cnUz?=
 =?utf-8?B?cTZBQXdBUEVJdm8rcmhBNzROTm1lVzVSWk9xRGQyQjBlY1NtUmhpckJReVNl?=
 =?utf-8?B?ZnRsbTUxM1dBWmpuUjhWTDdsQmU5WVlqWkpLeFJMUlFxU3ZZSVl2dkw1ZS9r?=
 =?utf-8?B?OURNWlJESmt0OS9PV0tPblRGSENuSDgzeGh2aXQ3UTdkNk51Wm1aUkNBRU5h?=
 =?utf-8?B?M0pPNmpvNWZjejlXbTIyVC84OHc3dFdhQXVDd2NTOHNXNTN5M1hRUW1JTkg1?=
 =?utf-8?Q?rKTI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZEZacVlOTE5iODMxckZTdmZnNEkvQ1ZSdGZYNUxFVnRHVFRsQzVWUTBtbDZ3?=
 =?utf-8?B?UGpreG5BQm9XK1VBWEg4S1pWTU9mR1l0Y3V4UjcrUVRadzRBUzdka2REZzh3?=
 =?utf-8?B?L01BZTdnOEZSNVdhTWtBQ0lHVTRqeE5XMHVWM3NwRnd3dmNPTXp3QUk0SXA0?=
 =?utf-8?B?ck9WQTgyUXFHTlREdGJjakFhTmJScnd0VnZrT3hUaXNoTWFqc1BUOEYyV0dN?=
 =?utf-8?B?MFlhSzQzVTduWDNXei8xWDdEUmpRMmVqWWVjSGE0RzAzVWI1N1NucWNwVTU5?=
 =?utf-8?B?OWpMY1dJeVZwUHhyYTVGdVdGdHlidkMxQmpmeGxDV2I5L0Z5eUp6bnVwTWVM?=
 =?utf-8?B?N3dGbVdNSEM4cjIzQ21yTFY5OTV5MnRQci9PZEwyUUl4dmhwNnp3Tnhmbjdp?=
 =?utf-8?B?QVIzNW8xeWtlQnZsdlYzeitzQS85cVRQclFvcXNqWm9vdmVNTzIvUG1iY2hm?=
 =?utf-8?B?R3JEUGRDTWU5WTE0K2VJR1R3c3l4a0lPUmw5SXkwcGxEZ25QMTF5Q3g0YUJX?=
 =?utf-8?B?ODFld3BXZ1FoUDBVc3lwTE9UeE96ZHdCNDJnVDhxc1NuOEdnNE1pQTRGU1VO?=
 =?utf-8?B?SzRrdTd6MFhtTFEvWHpOcXJSbEZaYWJ1bUZSaGRudE5qK1l4Y045a2pmU3RQ?=
 =?utf-8?B?SDh5cGVURFhzcEo3RDNxT2o0TnYybjgwQ0o2RWJvKzlIUWNLeGd2L1FPdmlw?=
 =?utf-8?B?R0FRVjkyaUprQmVBZWkrTHNkQkJXTEs1V29iL3Nwd3ZlRlVaREdRL0FZVzF3?=
 =?utf-8?B?K0hadXVOenRuU3pGK0RlQ054S0xpcmMyMStQMmtzSFlxOXR2dVRIRE52Mk4w?=
 =?utf-8?B?RWZ2ekw2TmpqbFMyRjRNVUdHakh4NHVDL0tQZ3o0K1k4MXdvcnVBTU93eW16?=
 =?utf-8?B?MWhYNHRHZzlQTVkyZzhFeGdjRWJMV0krV2lDSlZmVU9pSnJHNWF2S1cvS05T?=
 =?utf-8?B?bjN3NVdQcWxGMXpaeTM1T1hsZjJBYVNsTUg0Q3RNbFdmZUhDczFvNUV5T3VF?=
 =?utf-8?B?R01nc0Y2NXJDZ1dBcm1iMStOYmxPdWduUkRQU3ZycVFVcG1kUFJvOTYraUx1?=
 =?utf-8?B?YTNTbDhOV01NTGZlUi9vdC9rSnQ5dktEWHNTUlNSK1ErN0JqNGw5MVQxY2sx?=
 =?utf-8?B?UnVEbnJhOEUzOGRjQVBVcHVVNGJuZmFJaTN1S0dBZUxwTWN4WHplQWlnZHRJ?=
 =?utf-8?B?N2NYY1JiOHRxUUg4dC9BWHVQV2E1d0VWNGYyRVI1aDB1MlI5RUN3bEUvMjVZ?=
 =?utf-8?B?RVlac3RMU2JHQnRnTkRaNDRONml5cGVFZzR2bEt6c04yN3FOV1pLT0hxeTMz?=
 =?utf-8?B?L2w3a3I3S0VCMkdIMWpJTXZQYXZFVU5rQ1FDaTNJdWp3RCsyajBtL0U1bExj?=
 =?utf-8?B?TW1qVGJuaC8ybTdMSEhycUk5U2kvUHJsenZpQmlmS1pZL0xiT054eHRJL2xE?=
 =?utf-8?B?MDRJV0pZY09Mb1pOdUNtVHlHUHZ4YUdRaDdRM04xZkRXcHNWWTNmY211b3hM?=
 =?utf-8?B?TThSRlkrTzdlbmdFZG55TTVweXBiTmwyckxUdjlPZUNrSk5zT1JxeTJkYjlM?=
 =?utf-8?B?RVdwNEZlRWgwWUFzRGdIWXNaaUdiOUZKRnF1Q2FkYllmUzhOTmJzWTk4bkhv?=
 =?utf-8?B?TEhiOEs0aUVRbm1LVG81MjFMZ0tZRFY1OFc4QVdVVUpib0p3aTVsVVhyY1I4?=
 =?utf-8?B?dHZiRXJTMmYzSDBXRDdPMGF6UVllVGZ4S3RENTRqMnVPeGl0enJvU3Bzb2Q2?=
 =?utf-8?B?RS9wc2dlVWNic0t1QWx2ZUVjcWJTbzVkR0YyYnR2SndkeDZ3aDhHTUVTVTNq?=
 =?utf-8?B?dmVsNGpTZ1NXVWduNU9ac1JGVCttcW9rQXo2RDIyS2xXcTlBRUdsZTZLSFZS?=
 =?utf-8?B?S0o0TzlEb1NBa1p2d01JYXNLWUV4bXluSG85QlhyM0k5MnVHN29RNHJVTXpG?=
 =?utf-8?B?QkJSV3Nvei9TbVplV3dHbWNaYm1zVHJBTENoTGowOXVMcnM3LzdkcU5NSXg1?=
 =?utf-8?B?NERpYVM3WldXdkdWaFdTQ0NVU0thVWVjYTBpL0s2TFpzclJDRDMwQ1pwcFc5?=
 =?utf-8?B?N2orcDl6ZHVudjRQSyt5blJRZGliSzF2MW9VRXNaMjg5UjN5czhTUGtJTkpM?=
 =?utf-8?B?RGJ6NklUTkZFSEJRcDlzYSsyMHBnR1ZOYzlrS01LL3owbVBGajFzcjhVKzMv?=
 =?utf-8?B?RXJYckVmOFlPWHdlUGpSdys4ZHRlNkJaeTAvTzVYOVBiYmJGMlRSY3FtUG9P?=
 =?utf-8?B?SE5Zb0lZWnBscnlEMjlsWVJzYjd6RFU3ak5oZVlma0EraCtjeXkzNWJySzBJ?=
 =?utf-8?B?RHpRYzJVWEtvTW9TY0VlRGlNT2VkUXRnVmR0dVppeHk1aWtjVldyZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3d0aefc3-827c-45cf-c5a0-08de6b2df269
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 18:30:22.1432
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UfvE6uvnFU1Gxb5PezXI/amcXwUvSsfnLXn9Lsy6PY8caaw5zkyigl8SO5z+arQ6UrSfacxaiDN1Nei0toNfqw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6379

On Fri, Feb 13, 2026 at 06:04:33PM +0100, Alejandro Vallejo wrote:
> On Fri Feb 13, 2026 at 3:26 PM CET, Roger Pau Monné wrote:
> > On Fri, Feb 13, 2026 at 02:37:29PM +0100, Alejandro Vallejo wrote:
> >> PV-shim already has hvm_enabled optimised to false, but there's no
> >> reason HVM-only builds can't benefit from the same optimisation as long
> >> as we add a boot-time panic in case HVM support is missed. Many branches
> >> go away, some in the potentially hot switch_cr3_cr4.
> >> 
> >> HVM-only:
> >>   add/remove: 0/1 grow/shrink: 1/9 up/down: 1/-162 (-161)
> >>   Function                                     old     new   delta
> >>   arch_do_physinfo                              79      80      +1
> >>   hvm_enabled                                    1       -      -1
> >>   symbols_offsets                            30732   30728      -4
> >>   symbols_names                             108029  108022      -7
> >>   symbols_sorted_offsets                     60656   60648      -8
> >>   flush_area_local                             571     562      -9
> >>   switch_cr3_cr4                               311     300     -11
> >>   init_xen_cap_info                             62      43     -19
> >>   arch_sanitise_domain_config                  885     863     -22
> >>   init_guest_cpu_policies                     1270    1247     -23
> >>   hvm_domain_initialise                       1127    1069     -58
> >>   Total: Before=3797004, After=3796843, chg -0.00%
> >> 
> >> With hvm_enabled const-ified, it's fine to take hvm_flush_guest_tlbs()
> >> outside the CONFIG_HVM ifdef and remove the stub. They compile to the
> >> same code after DCE.
> >> 
> >> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >> ---
> >>  xen/arch/x86/hvm/hvm.c             |  9 +++++++++
> >>  xen/arch/x86/include/asm/hvm/hvm.h | 30 +++++++++++++++---------------
> >>  2 files changed, 24 insertions(+), 15 deletions(-)
> >> 
> >> diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> >> index 4d37a93c57..da56944e74 100644
> >> --- a/xen/arch/x86/hvm/hvm.c
> >> +++ b/xen/arch/x86/hvm/hvm.c
> >> @@ -72,7 +72,9 @@
> >>  
> >>  #include <compat/hvm/hvm_op.h>
> >>  
> >> +#ifdef CONFIG_PV
> >>  bool __read_mostly hvm_enabled;
> >
> > __ro_after_init?
> 
> Yeah, seems to have been missing originally

I bet __ro_after_init wasn't available when this was introduced.

> >
> >> +#endif /* CONFIG_PV */
> >>  
> >>  #ifdef DBG_LEVEL_0
> >>  unsigned int opt_hvm_debug_level __read_mostly;
> >> @@ -173,9 +175,16 @@ static int __init cf_check hvm_enable(void)
> >>          svm_fill_funcs();
> >>  
> >>      if ( fns == NULL )
> >> +    {
> >> +        if ( !IS_ENABLED(CONFIG_PV) )
> >> +            panic("HVM support not detected and PV compiled-out\n");
> >> +
> >>          return 0;
> >> +    }
> >>  
> >> +#ifdef CONFIG_PV
> >
> > CONFIG_HVM I think?
> 
> No. CONFIG_HVM always holds here, what we want to remove is hvm_enabled being
> present when CONFIG_PV is _also_ present.

Yeah, Andrew already noticed that.

> >
> >>      hvm_enabled = 1;
> >
> > = true;
> 
> True enough.
> 
> >
> >> +#endif /* CONFIG_PV */
> >>  
> >>      printk("HVM: %s enabled\n", fns->name);
> >>      if ( !hap_supported(&hvm_funcs) )
> >> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
> >> index 7d9774df59..dc609bf4cb 100644
> >> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> >> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> >> @@ -261,7 +261,11 @@ struct hvm_function_table {
> >>  };
> >>  
> >>  extern struct hvm_function_table hvm_funcs;
> >> +#if defined(CONFIG_PV) && defined(CONFIG_HVM)
> >>  extern bool hvm_enabled;
> >> +#else
> >> +#define hvm_enabled IS_ENABLED(CONFIG_HVM)
> >> +#endif
> >>  extern int8_t hvm_port80_allowed;
> >>  
> >>  extern const struct hvm_function_table *start_svm(void);
> >> @@ -399,6 +403,17 @@ static inline bool using_svm(void)
> >>  #define hvm_is_in_uc_mode(d) \
> >>      (using_vmx() && (d)->arch.hvm.vmx.in_uc_mode)
> >>  
> >> +/*
> >> + * Called to ensure than all guest-specific mappings in a tagged TLB are
> >> + * flushed; does *not* flush Xen's TLB entries, and on processors without a
> >> + * tagged TLB it will be a noop.
> >> + */
> >> +static inline void hvm_flush_guest_tlbs(void)
> >> +{
> >> +    if ( hvm_enabled )
> >> +        hvm_asid_flush_core();
> >> +}
> >> +
> >>  #ifdef CONFIG_HVM
> >>  
> >>  #define hvm_get_guest_tsc(v) hvm_get_guest_tsc_fixed(v, 0)
> >> @@ -498,17 +513,6 @@ static inline void hvm_set_tsc_offset(struct vcpu *v, uint64_t offset)
> >>      alternative_vcall(hvm_funcs.set_tsc_offset, v, offset);
> >>  }
> >>  
> >> -/*
> >> - * Called to ensure than all guest-specific mappings in a tagged TLB are 
> >> - * flushed; does *not* flush Xen's TLB entries, and on processors without a 
> >> - * tagged TLB it will be a noop.
> >> - */
> >> -static inline void hvm_flush_guest_tlbs(void)
> >> -{
> >> -    if ( hvm_enabled )
> >> -        hvm_asid_flush_core();
> >> -}
> >
> > Is there any specific reason you only pick hvm_flush_guest_tlbs().
> 
> I didn't try to remove more. That one was the only one with hvm_enabled in the
> static inline so it seems easy to pick apart.

Oh, I see.  That one already had the hvm_enabled condition in it's
non-stub version.

> I just tried compiling and I require very few additions to make the build
> compile without stubs. I'll send another version with the adjustments needed.

OK, I think if we could unify them that would make the header smaller
and easier to read.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 18:43:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 18:43:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231662.1536728 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqy87-0003k2-Pi; Fri, 13 Feb 2026 18:43:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231662.1536728; Fri, 13 Feb 2026 18: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 1vqy87-0003jv-M5; Fri, 13 Feb 2026 18:43:03 +0000
Received: by outflank-mailman (input) for mailman id 1231662;
 Fri, 13 Feb 2026 18: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqy86-0003jp-02
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 18:43:02 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf1c1be3-090b-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 19:42:56 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH2PR03MB5366.namprd03.prod.outlook.com (2603:10b6:610:96::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 18:42:51 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 18:42: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: cf1c1be3-090b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jexJNQSuqlqtXBHF5tzUigNPKNkyDdD+yuIXHP/yn80lkiWelFYhMcbVESv72eAKDywmRTPuMHopM69M6nDLvYtnlVuceUPNVeeUv/ipszQbbfATFfRCgzKomAf7RnIs4pv9X2bWpXRZDZpHP62avLF4A5o9uOqtGkd0vF3iyZ074TBNH616fBQLTcRpT2CIGYo603VVH/bU53SKI+/hX3XPnKcvpBoPMaDxVzVu+xEjv8x469cQFgFCzyo1Qcw+lwBsHYTPJVsiNo5KHjcQ+DD8zi0E66S2Ej6BAIzBsWuojGhOaRHMfjjzgtNXtJlD80PCPssmsxKtdKvRk5H21g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=4meaxsuWLoprTmwZZl+f6xnyyMeyMX19j3rlVZzJBLQ=;
 b=HtSwTEtOEz7oguQYH4XRnE8P+ht9+9ekhlT2li2c7m0WBsV4W5GrnMzujxv5K39z/6wiKJYZ+k80l9t1mlUveBZrlxqbSiVoY4Gm2o+77K71TSvCFvRIZbwGJqToxiSsfrHGAXo1Ku3SsL6tZq9DOTUN42/QSURpaXfNS6T+xqeNFP1l/F8WaB3S/2QffIzT8wSnoCDaYmAPk4Sa8OoF+k0CqtbpfRdeY/lbGuy+TcTJydq/qyiWadzoAgvBEIv/eBRYQrT+qWjMUx+6bi/mgWWHJjJeKqvdM6KymS3mAiPtznZ9ndkW7VQTg7yNpH8/K48YRhe8dEzTqJ7BrrsNug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=4meaxsuWLoprTmwZZl+f6xnyyMeyMX19j3rlVZzJBLQ=;
 b=YNxliJYsVr1kG35PPV7Snz/lB15Wlq13sVdyjxPdy3NSobwNIXivR3FCsmJqFTLdX+EBYWPAc9G8KWXix9KMJqUzz2WVhM/vDYcg12FWIdOtmw/fFwKI9pulbWEaOe7iRpgkenjGpPCU35/DLpWq+2dqZYoBOFw1euWT88Qkjjg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 19:42:48 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/2] x86: Force HAP to be enabled when PV and shadow
 paging are compiled out
Message-ID: <aY9wqBi9xKQv9tiQ@Mac.lan>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-3-alejandro.garciavallejo@amd.com>
 <aY8-wlXW6Y90vvOv@Mac.lan>
 <DGE0GZ9SPVXI.13JZK2Q4WWG8@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <DGE0GZ9SPVXI.13JZK2Q4WWG8@amd.com>
X-ClientProxiedBy: MA3P292CA0069.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH2PR03MB5366:EE_
X-MS-Office365-Filtering-Correlation-Id: 48edce7b-e5e3-4c33-f3e2-08de6b2fb13d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QU1RVndBZ1dyVmhxMW9PN3FKUjdob2loZ1RPdkk4WVYwME1qeGUxdFhQV0F6?=
 =?utf-8?B?eSs2bjZKTVBwUmREc2x4enRMcE5nOVRWWFRpSEJXYWhUYTVsb0Y0aEV5NFpK?=
 =?utf-8?B?SU9jSXFHendKYy9KWW4yS09DUUpOcDlNZ0dmVHh0L2t3VW9mR2RUZG1NZzhE?=
 =?utf-8?B?cytEcXdwZ2hSZm15RXFSOFQ1ZUJPeEJmbzVWZEdJKzdseWxlY0Zib3N6dXRz?=
 =?utf-8?B?Rmo5NHVpbko5UTJWTkNhOVVsL1NmbGRiSy9hTXcyRHhrUUVFTkNjcEhQOWZw?=
 =?utf-8?B?eW96cFBTcDl4N3hDNVQxNTVidUEvc05XZnJwTEVyUGs5UXRQYzBJMzdIZ1N5?=
 =?utf-8?B?TUlxNHRCN3lINzJwZ2xYVmVtTkRVQWNlRGlyYWxyQStKQmdmWDFSSWhPc0xn?=
 =?utf-8?B?S3BrMDBMN0lJL1lvUWE4UUVPS0hIbzlRcDJmYU8wOE1sTW1ndXlKQ0gwUGZP?=
 =?utf-8?B?RUMyWTBuZktwMDRqMzNzcmF5d04reGdXTGxFRnJSTWU4dmNzUFFMelFYd2NF?=
 =?utf-8?B?VzFheFRWWnBLWWtTdkRPaHpub0JUN1dGQ3d4TXYrUU5ES3ZRSkdqWkN4MmpU?=
 =?utf-8?B?bmEwWjVHT1N2WGxvVlk4dEFqY2ZxeVovYnRJeGpObVJWNWZFRFlLdGlmOVhu?=
 =?utf-8?B?eU11M1YzZ1RxS09QUTVWczlaN0g2ZE5EemdGdkREVTlLd1pSZC9UTkJzMms2?=
 =?utf-8?B?QmNWUzlXRGJobkdUV0d1bWgwNWpOQ3o1VG0xd0J2Q1A4aEgzSHJtOVduVm9V?=
 =?utf-8?B?YWNxdU8xcmFDSk9ZRDhHaEhqcnoyWGxmSm1rOGdnMVozVzVDRm5JMnM5WVZQ?=
 =?utf-8?B?dElaMktxbkM1c3JISGEzRHhvMzQ4QjVwSDVvcVpTaVhaVWFNTUxLS2lVYSt4?=
 =?utf-8?B?YkNIcGIyT09HUitOditNNEJVL2w4U2ZYWXlxZEFESUpTTG5semlROHpZeGNu?=
 =?utf-8?B?dU16ZzhzRlR5TUNiNFkrVzdmekM0ajlUOW1IVnd1Q1hKemFzNlpsYjU1TVBL?=
 =?utf-8?B?TUM5YjhVWFdWb2JXVVJHclhtdjZuQ21zL1JacG5lank2bzd0Ly9Ma1h3TlA5?=
 =?utf-8?B?a2x3RVpva2tTNkJVd09MY1AxUDc2OVRaZU04V1NLRlQ4SGFKdDlwODN3U244?=
 =?utf-8?B?d1ZmWTRmZjlXUzFYK2xzdlBXQlJzWXJBd1A1eHNSVGh6S1hFQjR0bTJOaEVL?=
 =?utf-8?B?UFRDWm1XQ0pXR3h5b1p1RmFuMzZSdGRvZlhjejhQVlRDNzJwZ1AwVXBMTm9E?=
 =?utf-8?B?QjNHbHFtaVJuRllnWW5EVjFpTE1UTEFpMEVvaUlwaHNhWHdXMmgxUHpuTkNH?=
 =?utf-8?B?VGNWWDVwVUJVOG13dllyMUt2M2d1RnF1TmZsOHhheGN1WDdueTVMdXRkUWxE?=
 =?utf-8?B?N0tJaTJROUVabFlONFNhZnlBOUF6eU1qMEJEYkdSaTF2WlZ2WEg4T1lFbExq?=
 =?utf-8?B?VnhnanBIL1VRcjEwU2xBMnVVQTNocGx1R2NKTytFSWNzdlFteGo5RGlJTVBH?=
 =?utf-8?B?OUJBYWJCWTJ6RC9ZZFZuM1d3U0VlMmdpWm9ZRFEwS05TNjY3T3RXSGZRUWl0?=
 =?utf-8?B?Y3dVN256Y09uSnplVDh3djJMazZCY0RjemduWVBQa2FYczI2ZHZ4SVJrUzRX?=
 =?utf-8?B?Z2hhR2lUVzA4YnpWa0E4Z05OeDY0SDNOdWdEeUZHc2hCQUZTb3JEMnd4RU8x?=
 =?utf-8?B?c2xvNTMvUk9qcTdWTTEzZXZ0WkpMT0xFclpkUlhQL2J0bmNPMHUwblhNb3l2?=
 =?utf-8?B?R3kzTDFxbTNBOERUMzZvMnJDd25DOGRmQnUrM3N3MkZIS0d5UDFlSTllR0JG?=
 =?utf-8?B?NXY1WW9JcVdlZk0xQzgwYXRscHM3Q3EwZnZRaEpjU3N6eCtsV1dFbFYycHIy?=
 =?utf-8?B?blM0N0hqVHNrUmN4VG5NZlJzSy9wVHNZa0UraEFFdEtOV3JzUHJzaWJCWDF4?=
 =?utf-8?B?RFkybzUxbVdqSXpHR3B5NkFkY3V2OGVqSmhoWTM5dGtab2hxdEoxV3MvaHMv?=
 =?utf-8?B?VlViUU9NMXBBbnpzS2lWUEkvSkxIRTZidjVGc2EzNlFLMDRzb0RnQXFZT0lM?=
 =?utf-8?B?aGhuRnVuanBCTHZXOUxrUGZQYk4ybkxZQ2djdzdQRXhZeXo2NEdEUVVrSzBB?=
 =?utf-8?Q?paec=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bTZIN1FxUG1EL3BlWUd2eG45V2cram90TUIvZ1ZRYjdOanZWYWRNb2pmSkdM?=
 =?utf-8?B?eG5tdjhFdmFaZzBQZDVIenNqTWx0VzV1Z3BVTll3UVF0RTFtNzdVeGoxbVFr?=
 =?utf-8?B?azlsZytZQnBMZ1lMNFFPQW9Tc2tRT283dzBjRlA5ak5xSXR1NWpXczVvUlNv?=
 =?utf-8?B?cVJHQUZObzFZNEl4R1o1UW1RM2hqam8vUUsxR2lJN3dINkordkVyM3FWZld1?=
 =?utf-8?B?NTRkWlFPWkVJQmd1L2lvU1dreEo3YklBdkoyQ3FMNTNEa3V6c0plOFdTczMr?=
 =?utf-8?B?cG1JeTBXRWphd0J4L0JzUU1VRWdZZjloSEtJL2NmbWROWm5XM09mMnhMOXY2?=
 =?utf-8?B?Qk93LzMwbllPNDZiVDhPb1Y4UmgxUmJaeEgvMEhreXliWTRuWkdhOStrdTFO?=
 =?utf-8?B?b2NyR3pzL1hzWWVpV2F0aVR1eVNzd3gxdzJCMHRXTUNkdlJrNi9mYVU2TGc0?=
 =?utf-8?B?M1dXYXJqa0Jnd29yc2I5TmJ0QzZGd1NHeFBlYnZFQno1bTIxbE96ZXhmMTR6?=
 =?utf-8?B?NnljNUVPSElXYVNrWW1aZVZVdVE1a1ZnRFRMSVdEQlBPMWpHcXhvYzRienNj?=
 =?utf-8?B?V0RqMmVpZllxM2pnSU9rNHhwZzZUUWdhZnRTYzZmR0dVeVBjWTByVEI0UDdn?=
 =?utf-8?B?SGRldjFiN1FIN2pJbUk4dzNERFMxaGM1b1B1OGZocEJPN0NwUit1djdrbXRF?=
 =?utf-8?B?bjIydzJVWVozSER6WXZxK1poYzk5QmtiTVJNSUZqWXVwd3lpWmlkVkVlTmMw?=
 =?utf-8?B?ZUN2UVFKT3Zxd1RPRmIyUXc1cEZxUE1NOUtaUGVsaXBBWDcrb1ZFR2ZFc25w?=
 =?utf-8?B?MjV4eUVmczF5eTlSL21SKzBCbWd6UGp3OG5kWWlYSGF0eStlRUVpalJuR25i?=
 =?utf-8?B?MmxjdVMzUi9JK3dZZGYwQWZyejFKMnJRdlUreldGZ1M1V05iQ0VuaTdaT0Uv?=
 =?utf-8?B?Njc2OG90MjFTV05HOGJ4RHZ3cnV6OVhMODZ3QjFuUEZTekhTLzV5eUJEWlFQ?=
 =?utf-8?B?MXY5ZWdoMmd5RmJjVXV1a2dhU3BVcVdSQ2tjZVFSUUp4QnpZYm9YdHVzRFVm?=
 =?utf-8?B?RHAvUkJmS2tyazUvOEhUZGRlNElpd2kvSVN4Sms2YWhnT285Z3FDSVloV0JN?=
 =?utf-8?B?VnhzdFRIaVpaUHhSL0tFOFc3OGlnYUtnOEZ5a09tcG1lMVZDMVZVejlpbVRX?=
 =?utf-8?B?dUZSNHVsL3Fad3N6U0p0d1lWQUFXRWJEZFlsaE1DenhnRlJZeU9VZk1pODRT?=
 =?utf-8?B?RkUzc0tkN3REcXF4UFhjUnFoT3c3N056ZDFSblppYmxiNitiRUpITitIbkxH?=
 =?utf-8?B?TDQ4TE5wY1o1Nm1heWxxUjF3S2tFYlJ6VmJKUFF0NGpEanlLQzQvQi9vTVBw?=
 =?utf-8?B?dStLL242SVhtTCtrdm4zalY4Rkt5d1h3ZjRJSFhTSFhnMjkyeDExeStBUVAv?=
 =?utf-8?B?emhqKzR1elJtNGZTVi91elMxdVZzZmlaaDNSSFp5d013emo3OFNTUlNwQk9X?=
 =?utf-8?B?WEF4bDBNNXhBT2RtSklVT2hWS1NXOS84eWVkU3V0dk5rVnhXTzF3S2R0L3Fa?=
 =?utf-8?B?SUg2ZjB1VlRmcE9UTHNKRGxDUEVoNW9RVlhXWmZ1d3BSeU5VOFEvYnVQRlpQ?=
 =?utf-8?B?RWdaS3VkMm5MVFRENHF1SFpoT1pPcDFodU15YndIMFUwYkJJYlFHQXR6bWJB?=
 =?utf-8?B?UVU1ZVQvUG9MQTdzUmt3eXRMcWJnMndJSU1kcUFlU3NOam5BNUdZUUgxeFJm?=
 =?utf-8?B?eG4vbExMRXNrWG56RmNNdlFOcXpkZVo2MUVkUUV4bkIyMXd0cGErT0t5ZzJm?=
 =?utf-8?B?TnFWajhxeURWeFRZRTY2QTRuMDVyaXg3TEFabENXamF5Y1pRNkFscElWdlpi?=
 =?utf-8?B?ejhtc1VsdUYxMVJhb2VvZnEzaW9FTXpwVmZpeFhzTVptQm9ETklqaDE3MlN6?=
 =?utf-8?B?aDNYOE1OWjZIYmMvNGlvcWx3Q2NZVlB6NERadmU5S2xoS0kxQk8zc1liNlFF?=
 =?utf-8?B?M094ejJNWmUwREZoekcyY21SckJmUXg4bisrZGhVZllTd1BqMWwzVU02WEFD?=
 =?utf-8?B?OG1WY0JlUURSOUNlN0lUTzBuanhQNGJTaXVYOHVsL1JtQVpIamJ4a3l5RXlv?=
 =?utf-8?B?bFNVTTUwUHFTa2lEQ1dBVzIwZUFaMTZXZXdMSm1HOHp5NnZUS0xpU3ZWNmdt?=
 =?utf-8?B?dktwMlJHUEl2c3NiMlo2RU5iV3JWVUVIcy8yM2lqSWQ4cGxKWjhpNVRYWDY1?=
 =?utf-8?B?OFlUUDM2MkFDeEJFeWh0Vk82cDBMWTBiT2hXV1RvaFpkYTB4d0d5ZnhIQ1cv?=
 =?utf-8?B?aEpoeWN4WkkzYVVIWjNDZWtPSG1BOGE3MW56TEFOMXVLOEpyMlU3QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 48edce7b-e5e3-4c33-f3e2-08de6b2fb13d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 18:42:51.6497
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Jky0Uqofp/nq/jXgZwAvWHe7fB/LjQhwEHnynLyhdon2dH8C2ROuhG2SRh22Mgb9BQpszwsKeKiNC/n9K4dyHQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR03MB5366

On Fri, Feb 13, 2026 at 06:30:54PM +0100, Alejandro Vallejo wrote:
> On Fri Feb 13, 2026 at 4:09 PM CET, Roger Pau Monné wrote:
> > On Fri, Feb 13, 2026 at 02:37:30PM +0100, Alejandro Vallejo wrote:
> >> Makes hap_enabled() a compile-time constant. This removes a number
> >> of hooks that normally go reach onto shadow paging code, clears
> >> many branches in a number of places and generally improves codegen
> >> throughout.
> >> 
> >> Take the chance to fully remove the shadow/ folder as it's now fully
> >> compiled out.
> >> 
> >> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
> >> ---
> >> bloat-o-meter against prior commit (defconfig:-pv,-shadow on both):
> >> 
> >>   add/remove: 0/12 grow/shrink: 2/31 up/down: 67/-1609 (-1542)
> >>   Function                                     old     new   delta
> >>   unmap_mmio_regions                          1340    1374     +34
> >>   map_mmio_regions                             211     244     +33
> >>   opt_hap_enabled                                1       -      -1
> >>   shadow_vcpu_init                               2       -      -2
> >>   __setup_str_opt_hap_enabled                    4       -      -4
> >>   _update_paging_modes                           6       -      -6
> >>   _toggle_log_dirty                              6       -      -6
> >>   _clean_dirty_bitmap                            6       -      -6
> >>   cpuid_viridian_leaves                        728     714     -14
> >>   iommu_domain_init                            291     276     -15
> >>   p2m_pt_change_entry_type_global              214     198     -16
> >>   paging_teardown                               91      74     -17
> >>   paging_set_allocation                        384     367     -17
> >>   paging_enable                                 76      59     -17
> >>   p2m_init_one                                 295     278     -17
> >>   ept_sync_domain                              201     184     -17
> >>   arch_set_paging_mempool_size                 437     420     -17
> >>   p2m_free_one                                  78      59     -19
> >>   paging_vcpu_teardown                          36      15     -21
> >>   p2m_pt_init                                  125     104     -21
> >>   p2m_pt_change_entry_type_range               218     197     -21
> >>   arch_do_physinfo                              76      53     -23
> >>   sh_none_ops                                   24       -     -24
> >>   paging_final_teardown                        134     110     -24
> >>   __setup_opt_hap_enabled                       24       -     -24
> >>   paging_vcpu_init                              41      15     -26
> >>   paging_domain_init                           167     141     -26
> >>   p2m_mem_access_sanity_check                   71      42     -29
> >>   hvm_enable                                   449     419     -30
> >>   init_guest_cpu_policies                     1247    1213     -34
> >>   paging_domctl                               3357    3318     -39
> >>   __start_xen                                 9456    9416     -40
> >>   arch_sanitise_domain_config                  794     747     -47
> >>   symbols_offsets                            29636   29588     -48
> >>   p2m_set_entry                                305     247     -58
> >>   guest_cpuid                                 1919    1858     -61
> >>   ept_dump_p2m_table                           817     751     -66
> >>   recalculate_cpuid_policy                     874     806     -68
> >>   shadow_domain_init                            71       -     -71
> >>   mmio_order                                    73       -     -73
> >>   hvm_shadow_max_featuremask                    76       -     -76
> >>   hvm_shadow_def_featuremask                    76       -     -76
> >>   dm_op                                       3594    3510     -84
> >>   symbols_sorted_offsets                     58464   58368     -96
> >>   symbols_names                             103425  103213    -212
> >>   Total: Before=3644618, After=3643076, chg -0.04%
> >> ---
> >>  xen/arch/x86/Kconfig               | 2 ++
> >>  xen/arch/x86/hvm/Kconfig           | 3 +++
> >>  xen/arch/x86/hvm/hvm.c             | 8 ++++++++
> >>  xen/arch/x86/include/asm/hvm/hvm.h | 2 +-
> >>  xen/arch/x86/mm/Makefile           | 2 +-
> >>  xen/include/xen/sched.h            | 3 +++
> >>  6 files changed, 18 insertions(+), 2 deletions(-)
> >> 
> >> diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
> >> index 2ce4747f6e..190f419720 100644
> >> --- a/xen/arch/x86/Kconfig
> >> +++ b/xen/arch/x86/Kconfig
> >> @@ -67,6 +67,7 @@ source "arch/Kconfig"
> >>  config PV
> >>  	def_bool y
> >>  	prompt "PV support"
> >> +	select OPT_HAP
> >>  	help
> >>  	  Interfaces to support PV domains. These require guest kernel support
> >>  	  to run as a PV guest, but don't require any specific hardware support.
> >> @@ -147,6 +148,7 @@ config SHADOW_PAGING
> >>  	bool "Shadow Paging"
> >>  	default !PV_SHIM_EXCLUSIVE
> >>  	depends on PV || HVM
> >> +	select OPT_HAP
> >>  	help
> >>  	  Shadow paging is a software alternative to hardware paging support
> >>  	  (Intel EPT, AMD NPT).
> >> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> >> index f32bf5cbb7..310e09847b 100644
> >> --- a/xen/arch/x86/hvm/Kconfig
> >> +++ b/xen/arch/x86/hvm/Kconfig
> >> @@ -92,4 +92,7 @@ config MEM_SHARING
> >>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
> >>  	depends on INTEL_VMX
> >>  
> >> +config OPT_HAP
> >> +	bool
> >
> > Can't you define this outside of Kconfig, like:
> >
> > #define HAP_ONLY_BUILD (!IS_ENABLED(CONFIG_PV) && !IS_ENABLED(CONFIG_SHADOW_PAGING))
> 
> Sure.
> 
> >
> > HAP_ONLY_BUILD is likely not the best name.  Maybe CONFIG_HAP_REQUIRED
> > or some such?  (Seeing the usage below)
> 
> Definitely not CONFIG_*, or it'd be an accident about to happen when mistakenly
> used on IS_ENABLED(). HAP_EXCLUSIVE?

I would prefer HAP_REQUIRED, but that's a question of taste.  Both
would be used in the same way.

We have some CONFIG_ defines that won't work with IS_ENABLED()
already, but let's not propagate that further.

> >
> > FWIW, with the current naming I've assume this was supposed to mean
> > "Option HAP" or some such, when is "HAP is Optional".  We usually use
> 
> It was. Originally it had a help message and a default, but I quickly noticed
> that served no purpose. It has that weird polarity so the build would remain
> with new options being additive only.
> 
> In retrospect it can go back to a more natural HAP_EXCLUSIVE that removes
> a bunch of !s in the code.
> 
> > "opt" as a shortcut for "option" in several places on the Xen code
> > base, like "opt_hap_enabled".  I also think using it in the positive
> > for so the variable meaning "required" instead of "optional" makes
> > some of the logic easier to follow below.
> 
> It does, but in Kconfig it's nicer if an option being enabled yields a strictly
> more capable hypervisor, I think. Makes allyesconfig and allnoconfig work as
> intended.

Oh, I see.  Moving it out of Kconfig makes even more sense I think.

> >> +
> >>          return false;
> >>      }
> >>  
> >> +#ifdef CONFIG_OPT_HAP
> >>      if ( !opt_hap_enabled )
> >
> > You could possibly do:
> >
> > #ifdef CONFIG_OPT_HAP
> > /* Xen command-line option to enable HAP */
> > static bool __initdata opt_hap_enabled = true;
> > boolean_param("hap", opt_hap_enabled);
> > #else /* CONFIG_OPT_HAP */
> > # define opt_hap_enabled true
> > #endif /* !CONFIG_OPT_HAP */
> >
> > Above, and avoid the ifdefs here?
> 
> Whatever poison you prefer. It's just ugliness motion.

Yeah, at least this keeps all the ifdefs mostly in the same visual
region.

> >
> >>      {
> >>          fns->caps.hap = false;
> >>          printk("HVM: Hardware Assisted Paging (HAP) detected but disabled\n");
> >>          return false;
> >>      }
> >> +#endif /* CONFIG_OPT_HAP */
> >>  
> >>      return true;
> >>  }
> >> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
> >> index dc609bf4cb..b330d65d6d 100644
> >> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> >> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> >> @@ -703,7 +703,7 @@ static inline bool hvm_is_singlestep_supported(void)
> >>  
> >>  static inline bool hvm_hap_supported(void)
> >>  {
> >> -    return hvm_funcs.caps.hap;
> >> +    return !IS_ENABLED(CONFIG_OPT_HAP) ?: hvm_funcs.caps.hap;
> >
> > return CONFIG_HAP_REQUIRED ?: hvm_funcs.caps.hap;
> >
> > IMO is easier to read (same below for the hap_enabled() early return).
> >
> >>  }
> >>  
> >>  /* returns true if hardware supports alternate p2m's */
> >> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> >> index 960f6e8409..64fde82c50 100644
> >> --- a/xen/arch/x86/mm/Makefile
> >> +++ b/xen/arch/x86/mm/Makefile
> >> @@ -1,4 +1,4 @@
> >> -obj-y += shadow/
> >> +obj-$(CONFIG_OPT_HAP) += shadow/
> >
> > I think you can use:
> >
> > obj-$(findstring y,$(CONFIG_PV) $(CONFIG_SHADOW_PAGING)) += ...
> 
> Hmmm. I guess I shouldn't just include it twice, like we do for other .o files.

I see, so use:

obj-$(CONFIG_PV) += shadow/
obj-$(CONFIG_SHADOW_PAGING) += shadow/

Maybe that's simpler really, and it's a pattern we already use
elsewhere.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 18:46:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 18:46:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231672.1536738 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqyBD-0004Lc-C6; Fri, 13 Feb 2026 18:46:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231672.1536738; Fri, 13 Feb 2026 18:46: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 1vqyBD-0004LV-8z; Fri, 13 Feb 2026 18:46:15 +0000
Received: by outflank-mailman (input) for mailman id 1231672;
 Fri, 13 Feb 2026 18:46: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=eHiT=AR=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vqyBC-0004LP-AQ
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 18:46:14 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44c74f41-090c-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 19:46:13 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 14B82414BEF8;
 Fri, 13 Feb 2026 13:45:58 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44c74f41-090c-11f1-b163-2bf370ae4941
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com
Subject: Re: Re: [PATCH 0/3] Virtual NMI
Date: Fri, 13 Feb 2026 18:42:49 +0000
Message-ID: <20260213184252.93141-1-abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1770389605.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

>Patches 1 and 2 want merging.  They're both enumerations and
>configuration bits, although the very first hunk of patch 1 (the P())
>wants delaying until the final patch; we shouldn't print out the
>capability until it's being used.
>
>The patch subjects want to be:
>
>    x86/svm: Enumerations for virtual NMI
>and
>    x86/svm: Use virtual NMI when available
Ack.
I Will merge these in V2.
I will move (the P()) hunk to patch 2.

>
>
>Everything here is local to SVM.  Notably there should be no edits to
>hvm.c or hvm.h.  By introducing hvm_intblk_vnmi, you break NMI injection
>in other cases.  vNMI is just a hardware-optimised way of handling the
>hvm_intblk_nmi_iret case.
The handling for the introduced hvm_intblk_vnmi is separate from the other
interrupts handling. I will remove the introduced hvm_intblk_vnmi and I will
rather use the existing hvm_intblk_nmi_iret. This should have the side effect
of setting the VMCB's interrupt-shadow. However, it should be benign side
effect as this should not currently cause an actual interrupt shadow on the
AMD platforms prior to the vNMI support.

>
>
>
>svm_inject_nmi() wants to gain a check to see whether vNMI is enabled,
>and in the case that it is, simply set vnmi_pending.  You have this
>partially, but it needs to be dependent on the VMCB vNMI setting, not
>some global idea of enablement.
>
I will add one more is_vnmi_enabled callback for the check functionality and I
will use that introduced check in the svm_inject_nmi

>svm_get_interrupt_shadow() needs a similar adjustment to read
>vnmi_blocked rather than unconditionally depending on INTERCEPT_IRET.
>
Ack, I will add the check in the V2

>In construct_vmcb(), you need to check cpu_has_svm_vnmi.  I think this
>change is simple enough to be enabled unconditionally.  (We'll need to
>change this in due course, but that's going to take other infrastructure
>which we don't have yet.)
>
Ack, I will change it, as suggested, in the V2

>
>A couple of other minor notes:
>
>In the vintr_t union, use an anonymous 3 bit field (literally "u64 :3;",
>which is valid syntax) instead of renumbering the rsvd$N fields.  That
>will shrink the diff.
>
Ack, I will change it, as suggested, in the V2

>Xen's style has spaces inside the outermost brackets for control
>structures, and {'s on new lines.  For the functions you're modifying,
>just copy the surrounding style.
>
Ack, I will stick to the formatting guideline in the V2

--Abdelkareem


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 19:06:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 19:06:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231714.1536748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqyUv-0007LN-RZ; Fri, 13 Feb 2026 19:06:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231714.1536748; Fri, 13 Feb 2026 19:06: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 1vqyUv-0007LG-Om; Fri, 13 Feb 2026 19:06:37 +0000
Received: by outflank-mailman (input) for mailman id 1231714;
 Fri, 13 Feb 2026 19:06: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqyUu-0007LA-5M
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 19:06:36 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1a72f001-090f-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 20:06:30 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA5PR03MB8404.namprd03.prod.outlook.com (2603:10b6:806:47d::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 19:06:27 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 19:06: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: 1a72f001-090f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fYv4ajBsbA9qf3zmRc3UQGlwiFP2BsguaXIXWCl4o6LYIs9rl8sA1Lf0SqKmJxeuWM3j3h80yKxIKEPZZpQc2bzkyE/kjDCfv30nsQaKfP0CjBMSINo6tNTIYq3IcOA6povOJcyHePdYFypJbGvOvBZpM2jatLQtFdF0rwuuVwR4F/e+t9VcbqCmfZ1KvweKhQau23hCuhQPy42YZ7OAVgbR5I7Aj9DMgXUZfRI0Mt4Mlz6GuJ+8j9zh08fkrWO2+wembxU8mO4iaK4ru/naY2IulNPkG2mZIcrW/anuYjpWQin1HvtGqCX9XxKHgsJZo+EV71WDwoQ+Oks6xzRS0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AqIQfQm3PDBmFuYCg+nrp5yXVMcn/GZSwOeoXiyaeC4=;
 b=p6btQZTeTal/K39KIt31fEXIP2BKaqRM7hCDi/Hs/vLcgPmmxurY/JY0cG7+eybp1lNBS9yYmMFaas/dKwp8VgMvnQwgCKsaaYgzYZXucjq4pgncWmZ3Oz32UUoB4wNc7R6B4iUbVAfUSbXAQwrfHOMIJwiF5ZNowFjFnKZnaTOZXkv7SXhcezv9EbJ5VI5HlPWy0BIOfueMu7Ip4QCZp4yl4QsvowW7hWxdVzLV8o5+KD9oD9XowYmV/Tb3UfCQUKqZWpeaZ2+fuiFTjXLAlI65uxnS4Td5WRO07nGX2n1uv1Xrk0GYCGREtMXyBYrldx2sh9XXeisx8/h2TIX08Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AqIQfQm3PDBmFuYCg+nrp5yXVMcn/GZSwOeoXiyaeC4=;
 b=rz44ufFIvplvqYKxojID1R0EeV+96TMAYdpZQWct+pQf6EXXcO6m6Y0kHvp6K1qCOPIZVKHvcIZSriZE78RUj5wdcQdsDA5kkM9y5z4kO3JCAxIhsBhHn0Z2g7ip9M1hO7sk51bDso8MKBCxoOsO9J+2if5iy0XYHl8vujk1Gm0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 20:06:23 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH] xen/bitmap: Drop unused headers
Message-ID: <aY92LyZZ6ngPfwbY@Mac.lan>
References: <20250510131245.3062123-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20250510131245.3062123-1-andrew.cooper3@citrix.com>
X-ClientProxiedBy: MA3P292CA0016.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::10) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA5PR03MB8404:EE_
X-MS-Office365-Filtering-Correlation-Id: 9238179f-c5b9-4256-9e85-08de6b32fd0d
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?QUxEL25JWCtjQkUxS3ZTWEgrcWpsZDJVUHptR2JIRnJLaHFTSXNTYlNkSWlu?=
 =?utf-8?B?Yi8zcjJrYTJrMERtVHFPZTlGcWcvSkNwc0Zuc1l5L1B1Snl0WTVVNER1V2w2?=
 =?utf-8?B?dnpvUGNUdW9rZVpYUUlVY2tJRGJ2SURsMzN6b3VVUjhMQTZtZDdMM0ZwUDhi?=
 =?utf-8?B?MVEzcHZtQnF6YURVbGdBQVJSZXlNNXNBenZZK1F0U3JyRmFnekJ3YnduL0lX?=
 =?utf-8?B?RTlyYk45VnA2aTZrWFUvUDJTem1TenJkNEE3Z0VPUHBVK3BNQTJOdmVhdGJN?=
 =?utf-8?B?cnRLa0FPenZnditoT0QrbEZXK2p1K1RlNEVnMnhEOWluUVdZZjBocEJxOUhR?=
 =?utf-8?B?Nm9JM2h3c2NWVzJNQlc2ZFBnTmExWTc3Tk83ekxWR0VEZm0rQk9WWWVHQ0xW?=
 =?utf-8?B?OXc3R1poalN6WHhLMEoraHZOeXArbDNpUlQ3UUEyVXFncU1La0VSZEVwTHZM?=
 =?utf-8?B?bTBRT3QrajBxREdNd255cUpOK1YyNnBBNjZvTGtjY0RRdnp3bGlvcEFrdGJC?=
 =?utf-8?B?N1lBWVNILzZKaElidTRYVElIVS9DZXpONERRV1FkNVhoU2NSN3BUby8rbFZ5?=
 =?utf-8?B?YzZBOTJlY2prODVnK21yb1BPZ3hkRjBPaDg2dGh1SXdtNlBTN0lrVm5aZ0Zv?=
 =?utf-8?B?dE5zeXpJNHpIV05SdTdtK2l6N2VuTHZJbHI3NGZTL3NYcDhKWGhNbkNKYVA3?=
 =?utf-8?B?OTVHQXNocmphdGJTUGN0SDR0dDF2d0x4T2tGV1BFMUlqZnRENkJOcGpmUWFX?=
 =?utf-8?B?bmdCWUM1NkMrWHFTcTcxdTk1NDlTelI5MzcweXRlVytvZmZjaFpzUTNyWWY2?=
 =?utf-8?B?Q1RBd1FwR2lFTithdDBDNDBJRzdHM3pQV3hVRHUveGNRcGlvb3lQaktjVTB1?=
 =?utf-8?B?WE96Yk9WeGxscmtwZ0FOSXBESE1wSjFQM2VCSGpjc1BRZVl4Z1UxS01rUy9H?=
 =?utf-8?B?c1Bwclk1SGlxZ2ZmRkhzMWQ5Yy9iVDdzRW1jU3JIeGJva25OdXJEL0p4RXFX?=
 =?utf-8?B?TG1BTFFxNW5mbXdGMVlGVHBObXBLN0N6b08xWTBqWXZKZDUvT0xhL1pHSDhX?=
 =?utf-8?B?NGZSNXpaME5YbW9oK0NqWUllVjVLWXdCeDI4cnBkcHc2cjk4UkFyVmxndzd5?=
 =?utf-8?B?M0lqZ2RRMWFzakQ4c0FsVGZWSzFPenF2VndPZU9QdmpFYTBscW5RZlo3TFZv?=
 =?utf-8?B?bkNGZzZjNmlJMVFscy9XQmRDZjkyQTZmb0lsT2xBRmVHb0xSemlOcUtrdHQ3?=
 =?utf-8?B?aWtoUXpTWTZZYXlkWTJTQlFwbS9zM0xSYVlGTkZSbGpXdjVMNVZLblVrOWVN?=
 =?utf-8?B?VVFzRWRBUGQxc3FwUHJmVjc4SzM2cHhiMnY2Uk5PL0hXR0pSdnJCYzNWZm1C?=
 =?utf-8?B?RzF4QjZqeDBULzJkMDFGa3d3Y1k3MWJ5dDhJSy9xZEJteEFLVjRLcWhkMHc4?=
 =?utf-8?B?Z1hHc1dWUVlEMGVQYkZTZnZhMU5KcEZOUGg2bU5tcFlKYkdDTXgwejNSU1ht?=
 =?utf-8?B?RWNiNTRiT09VeVVzUEdPRnpxUHh3bXlid2JaU0YxWmJXNlg4T3lPTHVCclBC?=
 =?utf-8?B?bW1ORWE5bTdhd3drNThqdWkzQ1ZQZGk4dkZ4YVVFQzFkVXdzYXdJSEpvOTRy?=
 =?utf-8?B?UnBoenYxRnZrdm1IU1lBQWlkTkdoWk5LRnROWTdRcEpubUQ4UmFhaVplZk9Z?=
 =?utf-8?B?dzRHaFdwaHpYcFpKYVN1RTlucU5HY0lWQ0UxS3VSdTZIajY5QVpaSzRmTFhN?=
 =?utf-8?B?U2ViOUl3WkNQYlEwM2N4aGVxaWpJQWsyd3BYcitLKzlZc0lXQUkyM2dNdm9t?=
 =?utf-8?B?djdJREdZVHFnL3NvejQxSzFGRXNNSVZMUUIwZUF2S0xERjMrQ2NGS1FOWkd2?=
 =?utf-8?B?V2RsTG12ZFJrWHRRdGZkYXZxOXhRY0g2TjdVR3pIUk5pa2M5b3BPWXJ0bE1C?=
 =?utf-8?B?NGxSUnYwV2JYR2pianp2NEFxMGtwbkVHeVJMRENUQjU1QVVjdXhLUWhZaVBN?=
 =?utf-8?B?WCtTUDBlV21FZ1VqbjBPWVZDb21HQmlxRHFqN3VQMDZHQWsvM016Vm12NGR5?=
 =?utf-8?B?YlI5cE0wRFZXVnlReTRTbnlvVitTYlNOR1QxNWpCOGczZG1tcjM2Zk0xNHBm?=
 =?utf-8?Q?DeCA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?V1haUWRVeGxJREJRYU5nYXZjWFBLbzcvbVg2NVhIV2ROMDBreDBoS0Z1dmFm?=
 =?utf-8?B?OVU1dS9HKysvS3ZQM2tvTWJRT21yZU9qMmFhMzlUTU9EOFBtZUcyQU9oaFlP?=
 =?utf-8?B?akVGTm4wc0ZwdiszSzVzQkJ6dUtqN0N2V25QM2UrQk5IZWV3TFpzcWIycy92?=
 =?utf-8?B?MC8yZmc0VGhQdW1mRzZnMWhqWnlEa0VkOEYwckhLRjMrRXQ1VElkNUs5Yno5?=
 =?utf-8?B?alo0SmttZlgwa3pIVmxwcXZ4NDQ4SzRScU1yeEkwMlRkeHlYM3FuYVFiYTRt?=
 =?utf-8?B?cEg4K1FIdksyTTUwQld0NzJuVDRyQm1DSit2dXZQS2w2eWY4K1o3WmN0VXZr?=
 =?utf-8?B?ZVVZUlZHMjRndnJhRTNZMnpaa0tSek16UFlheXJpdm9KT3FzbGx1TzFtbjZ3?=
 =?utf-8?B?VVdyeFFmUWRiTW5kVE90Q0FlNjNzdmpvdGdTM0FVaFBhS3Z3MWtoUzFzNFVY?=
 =?utf-8?B?dk42Zlg1cytOZmxMRGhwYWoybTdJajdqUDJIS0MwQzV5NUp2Mmg1MkJaL1Rp?=
 =?utf-8?B?NXlYcG1Dd0VCdnppdXFOeU1HLzFlTWFrMEdQU2pJcGFBcFNPWk50Qm5VMVhO?=
 =?utf-8?B?VnBQcHRqWVdBNFZ1WG05T1laQ0hObG5LNzRSakRQTUtKL3NCdERTeEZ0a3Bo?=
 =?utf-8?B?WVFLODdrNDVkTGlmRHlWZnVLUnZTdXlvdU1PNHNhWTZ4bDhxNXJkdGw4RDRH?=
 =?utf-8?B?aTdrdU1LTWxFdW1KNHVOWnB5NGlRZXVuVVRlTWpERUVmcXdXeWpTNHI1VGJi?=
 =?utf-8?B?WkJWTDlWc05SY3JOZ1BOMGF4NHl6MVRYRUlOMDVyY2p0enBnUHQzQXRkMW9U?=
 =?utf-8?B?akdoeG9ZeUkrcEE3Z3AveE5kS1EzWk5OdzM1Rno1VnZONVNiVDA4V0RmM1dK?=
 =?utf-8?B?TW5sYXlzMTlPNys0cVpxcHA1M24zTzN6OEtWQkFkYmtNT0NyUEFIbGZaYllz?=
 =?utf-8?B?aHoweWFrWndHcCtxY3BxRFJ0bmdmTTQwcTkyUjZxSEVwKzJYNllRdGFmL0lN?=
 =?utf-8?B?ZXhibHVBVTlNZm5sTE1TdTZENmtEc1psUzFXcHZYV056YjM1amJFaHozc1I4?=
 =?utf-8?B?bU5tbGhiWElsYlBWQytGcW4rOTcxR1FlcXFEcFJwTkdPamVLcXJoYlYxOHFq?=
 =?utf-8?B?dmt1RGpXRUhjYmNQaHhWd0Y3YzFmWmNwRDlJL0lOS20zR2FGM1VPUVMvZUpS?=
 =?utf-8?B?MDcyTEw1aysyK0thNENCK01CeTl0RXNDRWJ0ZUZVblJwY3pyZURuMlA5cWcx?=
 =?utf-8?B?dFU5dGNqbW5LVzV6MEpUeWQxcWdqM1RsWnVDOThydXYzdUhtV28zKzljaFpL?=
 =?utf-8?B?WVlsTXVEZ1ZIL2U1UkxxNjdVTlRFa1BMQVJPR0t2K0w5RG95WXVUNVlpUnQ4?=
 =?utf-8?B?d1h4S3RXVVpXUGJ3dmpGSUo3V2VXSlhKWXBUR3ByQ0NCeDErVFA5KytBOURi?=
 =?utf-8?B?VVNSQUxDM2F6WG82ZnV6cmZuU1EvYjdzV2tINGFBOHVuUkYvbG91U24waHBp?=
 =?utf-8?B?WjB4UmJBaE5ISVpVSUlaakJPNU8wK3VUaWZjNncwMjBxeVZGMnlCNzNMcGZ3?=
 =?utf-8?B?K3FCcmtYK0Jkc050VmVVTE5laHZnK3hsOThGYSsycTdNaFBQY0dHbWtFd0xS?=
 =?utf-8?B?YkVrMUdwVmVZNnFsUHp2SGJ4NEJSeStMc0N0UDZCNHFoTU85Wit1TEl3SzU0?=
 =?utf-8?B?V0dqR2ZzdHgwZHE0bXlvMjJuWXFJRmxhWlJWeVEyUWhkcGV0L1Yrbk5QM2k3?=
 =?utf-8?B?YjhnOER6ZG1DaGpOSVY4MkxYdEhrNU5qYmp0azJKbjNkTzRUNnFKNnRwWmF5?=
 =?utf-8?B?dTRRaXFaajFlb2lBMVRESWR3NVYzK2VoRGx4ZUlsZzBiNjVScUxIa0NSRmFZ?=
 =?utf-8?B?K0V3WTFRUXRvY0JzUjBycFpnV3hUb2k2UFhndjJncU9zTCtqOFNIWlc0OFcr?=
 =?utf-8?B?Yk1BY2VpdzlQcFRjY21KbERHZlRpdmhJOFNlZ3MyRWNaMTR4UE1aZ2VwTnlJ?=
 =?utf-8?B?ZzV4TFpmUm1HLzM1Rm1EWS9KeEdzaURsVS9rbmhCTDNGQTFwV3hPc1dSL1k5?=
 =?utf-8?B?RmhlaGl1NUFlVVRZWDQ4aHpySTd5bE9sZlJsNXVORTBnVHpGTmYyZTgycDFu?=
 =?utf-8?B?bmdFdEcwUUkwNDNpR0lnS3JKbWhqenRrZ3hGMzN5K2o4ejBpQ3dNb1JpbVBK?=
 =?utf-8?B?VitVVnF4ZHZ4WXhkNnlPUFVuUkZLcGhMdlhHTVF0d2hpWjN0K05BSTBTa01r?=
 =?utf-8?B?dkJSWDIzaGY4SDcyQXoxYkExdzl0M3hJaTlSZmI0U3Z1NGhmKzErZlJ3cTdk?=
 =?utf-8?B?RUF6SUh5WG1PcmkrSTdGYlRUdVBHWC9sMEwwRUpoVW9Gd1IvUWxwZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9238179f-c5b9-4256-9e85-08de6b32fd0d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 19:06:27.3821
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kxfy6YibWDbfmwiZ56x4I1XVUljy9VWReXqGqUtuRrRRcA72ZxLVdzT2W2kfXI1bWv13IifTugeDfFNbdtcPxw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8404

On Sat, May 10, 2025 at 02:12:45PM +0100, Andrew Cooper wrote:
> Nothing in bitmap.h uses lib.h.  Reduce to just macros.h and string.h.  Drop
> types.h while at it, as it comes in through bitops.h
> 
> cpumask.h and nodemask.h only include kernel.h to get container_of().  Move it
> into macros.h where it belongs.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 19:13:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 19:13:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231727.1536758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqybZ-0000Xz-HG; Fri, 13 Feb 2026 19:13:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231727.1536758; Fri, 13 Feb 2026 19:13: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 1vqybZ-0000Xs-DZ; Fri, 13 Feb 2026 19:13:29 +0000
Received: by outflank-mailman (input) for mailman id 1231727;
 Fri, 13 Feb 2026 19:13: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=FeGe=AR=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vqybY-0000Xd-26
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 19:13:28 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0fae3b46-0910-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 20:13:22 +0100 (CET)
Received: from CH2PR11CA0006.namprd11.prod.outlook.com (2603:10b6:610:54::16)
 by CYXPR12MB9425.namprd12.prod.outlook.com (2603:10b6:930:dc::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 19:13:13 +0000
Received: from CH2PEPF0000009B.namprd02.prod.outlook.com
 (2603:10b6:610:54:cafe::c7) by CH2PR11CA0006.outlook.office365.com
 (2603:10b6:610:54::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.14 via Frontend Transport; Fri,
 13 Feb 2026 19:12:50 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CH2PEPF0000009B.mail.protection.outlook.com (10.167.244.23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 19:13:12 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 13:13:10 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0fae3b46-0910-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=oiJP3Ch7PhRNY/9sbE8cV9PqcFMtg8iii2HxR7ivYD8QSGqYRmwkzywGalphrjCS3anCK8W5Q7XqrCtxiCFj8PcqyJNfOAB43JZ6Fa3QHdAGi2dIotBPlUU6EBPVg9pJAB9H7SRcr7KvQdDennhRpTPyjh/1SHmYFW9wpQjHBGo44DcSBDXDGmtWiaeW5LGg/FspcwLjpoq1fUdGJst7rtXz6xTvvCkO2A050fwzlbCZ2E+XUnmwZQfqM9eY2q7cY3gpaN8s1fq2tXH9RpQTvknQgFCUzA1/oozkNoqTJlRs+AqrFWOE1koOWzNfxRaXMd7xkJRyTa+cEQr/zC5pQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=goz/jyUm7qEYbHQoZvMVZ7ZvhG7iqD975RxDl3tylhY=;
 b=jWMtO83aE2Nn68aZy8gQepYf9RhOtUcuZXLNE7wvhU+hle4dSjlYg2b7OiMdcbAS/aFe5B0EWPl3ZZasR12kkALBXSj70FWWW3uG4XtqExFYiyTAmPKV7HLHjY1uqG7Zm59LnScmi/UAr1MnLrkW9hWyzJBHTa/sY6X6rGv3jyFGsn31KAuKMeFwKvJ02Woh+M1Lq10Ix83gmEJLa15q5MjtT/vnto5xlJEGNyHkmTTYGlk86cjYgZP+GJheks3sscWbUPr0FdTTfhwHiohJpSq+Ol/Pqf6SrIEvQNo2ey5Ci+UA/NcG1KyWNXKQ7/iKR2JPy4OszLpdeBwEthYtSQ==
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=goz/jyUm7qEYbHQoZvMVZ7ZvhG7iqD975RxDl3tylhY=;
 b=GWrmJHo2JQpLdiNh7hdvGLYAD8rF/XNjrJNCk4IxpRbPVJha9JLt1hThjjEnRd+7X6eHNDS6d86XwsV9dIDA8gHta8iUTCdhrQ6pTkSOWoctM2f1wjkqsRkMM1dVg3NpRXl6bsq0buk6bDxceggUFk4rnKi8pBCqoLExBTgpW7s=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Fri, 13 Feb 2026 20:13:09 +0100
Message-ID: <DGE2N97NJMIR.LU2XTI1URT8S@amd.com>
CC: <xen-devel@lists.xenproject.org>, Jan Beulich <jbeulich@suse.com>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/2] x86: Force HAP to be enabled when PV and shadow
 paging are compiled out
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: =?utf-8?q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
X-Mailer: aerc 0.20.1
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-3-alejandro.garciavallejo@amd.com>
 <aY8-wlXW6Y90vvOv@Mac.lan> <DGE0GZ9SPVXI.13JZK2Q4WWG8@amd.com>
 <aY9wqBi9xKQv9tiQ@Mac.lan>
In-Reply-To: <aY9wqBi9xKQv9tiQ@Mac.lan>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000009B:EE_|CYXPR12MB9425:EE_
X-MS-Office365-Filtering-Correlation-Id: 63dc7859-0f80-4945-c134-08de6b33eee4
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?RWRyT2ZpQTU5cXdwNUxqazMxdkE2SlJPZGFUdnB2SDlvblFMdmNVNno1MmFC?=
 =?utf-8?B?TmJiRlZoSzBJdEwvSWUyTE56djZVSmNjbDVsUm9PcDkxU0NPL2FKMmExU0Jw?=
 =?utf-8?B?ajFsMi90K3YvVFd5M0lUSTlTUkpXTUpoaVRvYnVaQUxNVmNJYjhFNzFkSU8w?=
 =?utf-8?B?eXB1OEx5UFh2dnJ5VVIrUlJ6RWFMTmMvWnd1L2VIWHVtdGtYNEZRNVh5VXhq?=
 =?utf-8?B?K2NpVFM3VEhOdTRTMTRHbE9oRVRoZmxuYkhsbzN3Y29BT21hRXhpMlBVVEtp?=
 =?utf-8?B?c1lIUStWbEI4b3RDOHNNUHZRWWV6V1kvNXc2N2ZGZlpqKzI1U3AvbXVVQ05u?=
 =?utf-8?B?b0xZM2EwS2RVb016aFRWUDVSUStKRThZbExYTGRiTjNmRzZvRjlETURxRDRW?=
 =?utf-8?B?NEVZOE1aMjlQcGRVeWVaOGRndlVCZkI1c3RJZFdvWVBBZCs1S1U0OHFzaGxX?=
 =?utf-8?B?Mk53a1Q5YWk1dWJWTGF2eUdSRmxrU0F2cHZma0lxN3AxRlFyTU9pMkwrZ0hw?=
 =?utf-8?B?RlFpQzZQcDNmQ0VmTDZoamRVTHorMXErWTI3ejFMSVdYYThpYlJZTzRSYkwx?=
 =?utf-8?B?VVBxeHpRbHNyaWxTVW1MbWozaGlWWnlRVnB1N2l0UkRsRUVHZ1IveHdITDlB?=
 =?utf-8?B?K1Y0VWxuelAxWjU0M2E4a0VVYWlEY3pwUllmUFI4aWRiZy9WU0hSQjgyUFA4?=
 =?utf-8?B?UHcvQi9TTThENlhoRlRkbHBDdGg3dTBLZkdkNURiZ1ZrUmpzZXArVzRFNTlC?=
 =?utf-8?B?VG56aTFXYTBlWnVFa1k3NjhuK0xybWZCcnNjZmREZWVtRXYvMGxkYldHcjlQ?=
 =?utf-8?B?a3ZHMUJWdWdLdHJ1TUtSWGJERUowTExIM3pkSHlvaExuc2RlakNpM0ZHNUNL?=
 =?utf-8?B?dHVjUjFBTmNBSDRIL2lTL21QcmFSaGI3ay84ZllYaEsybTdELzlLWUl5UXZI?=
 =?utf-8?B?ODh1eUh0MUx2ZHVhbDgrNTFPUG9wSUtqd2RSb2pxQ3Q1cnRwY3IvbG94ZDV0?=
 =?utf-8?B?bGFmVnd5UVlJWDFHSXlndW1PRzdkTEtVL2E1VW1waytIMnhYaXZlM1RxanNY?=
 =?utf-8?B?Ym1uUFR5bHc4NW01ZHFSMC9YSjBxVjdqZGpwbFIvc3BiT3p1RWV5Ujk5ZFox?=
 =?utf-8?B?czFRZHZkVENWaUJHTzF2bzZ1OFJaaVVyWnptVW4zZDQ1SHJaZENCazZaS2wx?=
 =?utf-8?B?dFFzajk2dEhPWk45WGlMSVZLMkFSMXR3b2tOSWJIQmJtQmUwUXUzNVdJVGNq?=
 =?utf-8?B?aHpyblRiWjIvRHQ1QjgyRUhjSzFOUyt5SnVHNHZ0ekFrbUdGWlRJNXR3WGZY?=
 =?utf-8?B?cGRMTkErOGtydHdySGs2Z1BTdXl1OEV2ck5NNnM4dFVMdUhCWThuYnlNTUh1?=
 =?utf-8?B?R2FuSmUwd3ZjMitZWHU1WkpYbDMzc3hGbjlQWUFjOWh5QzJOWk9PSkgwRUlI?=
 =?utf-8?B?ZWtTN21XbjFYcjBNZmNZUXIrWVBwSlliY0hXdVhZTDA4QjhpOWJ2ejVRd1VF?=
 =?utf-8?B?MWlhT2tTVzBrV3dQcXoySVRXeEhzWmRvTFhuWWNSRDJtOUVUcFh3OEFhMWpD?=
 =?utf-8?B?UVdtYk95MjhHb3lHMGlGV0lrVDRRK084RUVhZyszdkFTcm1Fc2FrNXcyRE16?=
 =?utf-8?B?eFhSM1MwMWhFN0lzUGhSK0FoRHhPS2Y5VEF1cnNPY1Bua2prOVE5U3VZb1NL?=
 =?utf-8?B?Mmwwc2dSOWFpUjR5VlhIR20vZmQ4dG52VmpWTmpFT1pOSjFWOTBGVjFpbGRi?=
 =?utf-8?B?M0VkQW5MOU1oMEpWb1hNcENraHp5RWQ5aG1kNEpReHNZYXJiS1dkcVI4cDhI?=
 =?utf-8?B?eElkR1Y5SkVzVFpKT3ErS2ZmeGRhN0owY1IrNE00WnIwZDcxZ2FDWnlkWTJP?=
 =?utf-8?B?Uzc3QkVZWE1vRjdSUi8xWXFUTUY2OXVONkd5YnFHOWF0ZWhCZEtvUXhjZDlt?=
 =?utf-8?B?cEJQeEoyTWxLOUt5eTNzRTdQRFBZM0JhSTNzTDdkbnVuWTZPUDIrdHNKVk1p?=
 =?utf-8?B?VkRpZS85bTROSUs5NzI1MTcxOVJrdURoZCs1OFV6R3QwVCtraE5SRmp5ZW1F?=
 =?utf-8?B?RnJNNEZPNmdCUExwWWZqRXVoYTJ3SG5sRDF0Tm9oeEtlc2w4VDFudTg3Q05C?=
 =?utf-8?B?SDZNaDVOM0Nhdzl0NTBHMElONjc0a2JCTnNLUVA5NTk2dTFtWFI5VWM2UURj?=
 =?utf-8?B?WXhIcUZSWldmeUZVZWY4MnVqMkpZVkN3bHIvaE1PV2VPdVg3Uk9lR29kOWlK?=
 =?utf-8?B?Q3lReC85TmhQdkpzbm9jSklkb2JnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	qE5lVj+j8vk8PfjRAONTdBpEvzVtP2mMhp4fPHMY4MjxGJwy+9fIGqVnYjfYf4hibWy8oQGxI0YNWjzYQpGhWHAKAbBLcB3o8Riv7yqVlRu0YE3rYX86ZMqrbAazdsc0VWzs7ytPN6SpJRgO1kxBsycEl4HcqZYfQ2DSte5SkIFiQvAOO5xEsOIp6nOfdqUcasTjhK7h/sO+DqJBee8+Y8+LOg+/1jIJMvLO7Gs4LNETaNdeW1Jnsq/vanvrr9Xfqco6e4LDW4jYV/jFEowmyonBKjwNRvkzu8aHZTkEPOEH8Jtwj6+XxncEIrIxAllZN8qS1SUTz47uVROyLDrdKUpK0GNqOHxL0NBW3ZJ01escTf2q7reaDtNnaN1zoqHsIHmLW2HKZ0EqBUHeOQH5hKz83uEKyrSVG1E22TiVKIymdrnFgwJ36R5Oj8U4xLCI
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 19:13:12.8113
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 63dc7859-0f80-4945-c134-08de6b33eee4
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000009B.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYXPR12MB9425

On Fri Feb 13, 2026 at 7:42 PM CET, Roger Pau Monn=C3=A9 wrote:
>> >> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
>> >> index 960f6e8409..64fde82c50 100644
>> >> --- a/xen/arch/x86/mm/Makefile
>> >> +++ b/xen/arch/x86/mm/Makefile
>> >> @@ -1,4 +1,4 @@
>> >> -obj-y +=3D shadow/
>> >> +obj-$(CONFIG_OPT_HAP) +=3D shadow/
>> >
>> > I think you can use:
>> >
>> > obj-$(findstring y,$(CONFIG_PV) $(CONFIG_SHADOW_PAGING)) +=3D ...
>>=20
>> Hmmm. I guess I shouldn't just include it twice, like we do for other .o=
 files.
>
> I see, so use:
>
> obj-$(CONFIG_PV) +=3D shadow/
> obj-$(CONFIG_SHADOW_PAGING) +=3D shadow/
>
> Maybe that's simpler really, and it's a pattern we already use
> elsewhere.

I meant them being folder with makefiles potentially doing things that shou=
ld
only be done once. I don't know if we dedup tokens somewhere. These makefil=
es
are rather arcane.

>
> Thanks, Roger.



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 19:14:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 19:14:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231734.1536768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqyco-00013a-Rl; Fri, 13 Feb 2026 19:14:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231734.1536768; Fri, 13 Feb 2026 19: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 1vqyco-00013T-Om; Fri, 13 Feb 2026 19:14:46 +0000
Received: by outflank-mailman (input) for mailman id 1231734;
 Fri, 13 Feb 2026 19:14: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=9cwp=AR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vqycn-00013G-RU
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 19:14:45 +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 3f929f0c-0910-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 20:14:42 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id CEDBE44114;
 Fri, 13 Feb 2026 19:14:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 920A3C116C6;
 Fri, 13 Feb 2026 19: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: 3f929f0c-0910-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771010080;
	bh=NuOg6jsLa0hGlyiWtsJ6SXWWDhAast0gMbfy0ZT0ix4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=nA3J7WTv/emKT8qPt1sshmCCpvlndwxC7xaGNq4ffudbramfZKFLp7eKjSVX2mq2E
	 QnJnx/M/UuA1ninCSTxIITqHIanZikSmDZowgWvjMI89QG7KI3u6plgxNPQThOtDbV
	 TtEUVBLtITVyyzbjf9YKtYeHqsc5VvUFPFD45A51ELJeE15KYIzDtc6s0jgLtadMvl
	 th6vblLvRkAOftFsydmqsjv7HOOKf7eLtTfvlO4fVvRtQro1TAoCt+ZAHfWxfMbtfy
	 2hFWmQCX+kATlwoKNW9Sg++dBnf/tHCvdZ9zKRD+EKT1XrHrsc1eXFCE+o2QT1LWoT
	 eJ7LfSt/oqQfw==
Date: Fri, 13 Feb 2026 11:14:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@ford.com
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org
Subject: Re: [PATCH] xtf: fix argo test parameters
In-Reply-To: <20260212231504.3135755-3-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2602131114250.1995559@ubuntu-linux-20-04-desktop>
References: <20260212231504.3135755-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, 12 Feb 2026, dmukhin@ford.com wrote:
> The mac-permissive= option is currently ignored because Argo configuration
> parameters are comma-separated.
> 
> Fix the missing comma in the XTF test arguments.
> 
> Fixes: 150c6ef45922 ("CI: add argo x86 XTF test")
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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


> ---
> CI run: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2323076582
> ---
>  automation/scripts/include/xtf-runner | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/automation/scripts/include/xtf-runner b/automation/scripts/include/xtf-runner
> index 43ff2d4d88c7..d1ef888465c3 100644
> --- a/automation/scripts/include/xtf-runner
> +++ b/automation/scripts/include/xtf-runner
> @@ -69,7 +69,7 @@ function xtf_build_cmdline()
>      local xtf_name=$2
>      declare -a cmdline=()
>      declare -A per_test_args=(
> -        [argo]="argo=1 mac-permissive=1"
> +        [argo]="argo=1,mac-permissive=1"
>      )
>  
>      cmdline+=("${XEN_CMDLINE}")
> -- 
> 2.52.0
> 


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 19:54:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 19:54:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231789.1536777 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqzF7-0006Rs-Oe; Fri, 13 Feb 2026 19:54:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231789.1536777; Fri, 13 Feb 2026 19: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 1vqzF7-0006Rl-Ln; Fri, 13 Feb 2026 19:54:21 +0000
Received: by outflank-mailman (input) for mailman id 1231789;
 Fri, 13 Feb 2026 19: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqzF6-0006Rf-QG
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 19:54:20 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c61a541d-0915-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 20:54:15 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6484.namprd03.prod.outlook.com (2603:10b6:806:1c3::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 19:54:12 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 19:54: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: c61a541d-0915-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DE4vKVzsYETZhj8t33AflImwxnExg0iN8osy+EjChbRDrV2L+ZQakI+q4nT0xICSTmmMvuJm8Pfp9cwGUMl7N81XN8XCQo2ZBJvoxyq0FmwCDHNY7DgLn2ZMjoruIymxftIzdKxiZkpeCOf5gBYAmx1N/jF0f8hVgzZF53Ki3W2u1+cT7ivI1OjXA3jlIAqxHOBRAiOxewdSIGAU6mC53VwtZX2rzb26wwB6mQmCY/bBMKu7UsHyyC4SEmX/LK3uU+gj45evFyKrjThPlX7JKWSMB1L5ySugZZNcFnUfsQ2RGerg9OG8EgqoZU5CaF0yWpPBdrYw/Cag69YSgmiPNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xlx36ml5HfQ3qyFlB9kUsHK5uCFO73NpFC9Oi2ci5R8=;
 b=pjeQA3rGGG638jjb8d5eDSjpkhmuK+O3Shtzn9BamwHNm//qRbFK0ZZeXdUr5usX8tnLZdwriJGhu8LUMYuajqO+4WDBqQg0RSC7lPS8/nBh52W6FKv4R7Pk1iLcKV6T29IpBTf6zUbYSEHpSbNeVs4hjDS8sMxgg1DW/TGrgH8e0bmEtKnujNqga/VXGVi0HsMt4m6NuM4SJDOlkkqyD0WwPNQ8vZ6JTOAqZ4oDw6KrNStJe6hg5LUA+DfGF+/QVCmW4j3KRS3jYWuLfxlPxcqQ6k5Qy8WearNdJIqnwQ8Z0JYA9UkNzDAIU/YwHbOdKia/VWLIy2fpQkZfmS+tMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xlx36ml5HfQ3qyFlB9kUsHK5uCFO73NpFC9Oi2ci5R8=;
 b=hPZIE5QW82nZVvOAK75TR+rH94MY4icOVHSSZgqT06EhYlKtnsIZI/DktT5jCcf3tUfi11WXImavrwdqm+Hm3ewadw1z4R5Mq/TadXyMXEV8ZmQo6EhvtRvUJmdnZgKOV/Wnp2DwFz6ZTC+BbQ59Fl+29KQHMGblUIovMD/ays4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 20:54:08 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: xen-devel@lists.xenproject.org, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH 2/2] x86: Force HAP to be enabled when PV and shadow
 paging are compiled out
Message-ID: <aY-BYJfPdHtZOzKv@Mac.lan>
References: <20260213133732.132326-1-alejandro.garciavallejo@amd.com>
 <20260213133732.132326-3-alejandro.garciavallejo@amd.com>
 <aY8-wlXW6Y90vvOv@Mac.lan>
 <DGE0GZ9SPVXI.13JZK2Q4WWG8@amd.com>
 <aY9wqBi9xKQv9tiQ@Mac.lan>
 <DGE2N97NJMIR.LU2XTI1URT8S@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <DGE2N97NJMIR.LU2XTI1URT8S@amd.com>
X-ClientProxiedBy: MA3P292CA0072.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6484:EE_
X-MS-Office365-Filtering-Correlation-Id: 20e4b74d-a047-4d15-454e-08de6b39a874
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?Ny9sUEpNeDROdDlPNEhpSGEydlZLaFF4QitTY0JkNGlkdmRRdlNCN0Rkd2lM?=
 =?utf-8?B?WWpONWd0NUdWbGRqTk9PSEcrd0FEaUo3d0VhcVdyVUZ2S0d6SjY3bGZ6YmQ0?=
 =?utf-8?B?Nzk5QUZOVlJMN2F3VnZrNk5sV2hFSFRySDhkemZZUGxLUW4rYUE1NEZ0dlZQ?=
 =?utf-8?B?bDRZdFNTTzFHWUllVklvRXVWeUl6N3lHTmo3MmZoTkhId2dZcEN2Z3RkTTVD?=
 =?utf-8?B?eW1FSUgyS2ZudVNHa2dMdVRUSHZwekZxNWl3RVFHWDdJSFV3YzVmNXZvbTFL?=
 =?utf-8?B?ZGE5YlE5eHM0TitKVmdudHJBSVh5RHdUaHl3MUt3N1dHbnY2bTlQWXZLRTI4?=
 =?utf-8?B?emQ3N3BRT2s3Vkd4cS9vWTBleVNpN21PWXZJN3k0dzg0enZFZDFQak9OL2dC?=
 =?utf-8?B?WHNRUUpaZkZLeG1kS2xVNitkSUNNYUtEMVU5Y3RQbTdwZnp3VGxhL2JUeUFN?=
 =?utf-8?B?OHVvZmVWSmcxQlU1Nmc4a0Yyb2tQWFpUeDBXMkIwN0hHWVY5ZlJtc2dublNs?=
 =?utf-8?B?R0VMM1dkaE1DNVJEZXFub1VFUkpmcmxDaDYwRTdIYlJrOVVqUnUrTWt0Yjll?=
 =?utf-8?B?bHQ2elNmSzJjcFQ3cTlIUitkY01BbzFQUENQcllDelkxT0R4U0x2TzJxSmlK?=
 =?utf-8?B?OFZpSXpjRUlUK2xWTFVsaFFOYlFwa0tHTmpMaE40UUtDNURIbGxCOHMwTFlN?=
 =?utf-8?B?aS9SbTlNVmdPZjlnRTVITmdFQWVBVXY5clFEQ21OdXdFdkp6OEZrOUZYS1VZ?=
 =?utf-8?B?cURYbHIzaE4rMHFIN0JGa3NSY2s2UkI2TWJ0KzkxWVFDeEduV1h3b1dkYnVY?=
 =?utf-8?B?OVArcU96U0Y1V0d5aDlOcWFwcksrckNzYTVUdWI3SktodHR5VzF6c0k4VzNh?=
 =?utf-8?B?dFFUYTV2K3pQNG1jbFFsOGw2NW5INE9XelNRT3NmcTdrNGFhaUhLOGtLMmVT?=
 =?utf-8?B?Rm9aOHpBVmxaUG1SeUhuSEtMampNSUtuWGhwQTFTMy9CbTd2R3J1YTlrYkJ3?=
 =?utf-8?B?Z0c5cGMxT3Jvc1JsVXVRUHhZeHc2d1ZmWHhSSmxiTTlsV3BIQnJVT1JVK3VZ?=
 =?utf-8?B?akhwc1lwVmkyYTllbml3RU5SWTFYS3ozKzZ5bkNTQnpnSnhFQ2RseWJIc0JG?=
 =?utf-8?B?UHBJMlZabWl4dnFTb0VaOXQ0MjNFcklsek10NmgxbFhXSlE4cFlwcmxIK0Zl?=
 =?utf-8?B?dVlod1ZMRTRxSGVrVUkyaFBsSWl6QUR0U09qWkR0cnRqT3hhNzZpNTY0a2pt?=
 =?utf-8?B?RHpGaE9SejhzRG93Z2c4Q2g0M0Z6dzlhNjZnN2VZdlo5QzNUcm44YW1tL2JI?=
 =?utf-8?B?cEtUSG9SMENEeUgxUUJXejZVdEp6cUxuOUNtNUxhbDV3dXhrMVJ1a1VpcFl5?=
 =?utf-8?B?RFdXaW5vQzNNSjhOWS9qV3FiQ0cwV0ZKYm9yUGtpcmwvVGtLckVmQlQ4ZEQy?=
 =?utf-8?B?Wk5VdDh5NGZ4QWRJa3YrVzNZbU5SMGJRbU5lTXE5RXlyU2xlSUdvY3NyaW9Z?=
 =?utf-8?B?OUFad1BBV05LbUQvSEh3STZwTHRDWHYzRUlwcitNWjRrNXplV0RTQlc2c0dX?=
 =?utf-8?B?cmN6UEhXcG1xa2VjczhxWENBclNNYTlQNk5FWWd4c05JeTBtbmVtUll5NWVQ?=
 =?utf-8?B?OTZvL3VYWHB2MjBHMjlJS0VmQy9VL01UdHdxUFNDc1FhcEp3eHNaRlVMY2V6?=
 =?utf-8?B?TFgxdVpLSTBRMWE1QmxxSnk4SmhsU0JYQkRHZDEvOGRkREppcitLVS9RaFd2?=
 =?utf-8?B?TWx0b01kUXdrTUJMSmtjRDdXdUV5OWc4Qjl3NFpFUHNzRVQrRzdMbGFaV2VT?=
 =?utf-8?B?OFc1L3NpckZvalB1VmhUekJyM0ZaRk9KSnhnNXI3cTBoM3RqaVRidWZLTi9W?=
 =?utf-8?B?ZUIxZlo4bUoxeXVLWHN2L0xOTStFWE4vbys2S2xiVUJrRGQxN01qR25EVEhm?=
 =?utf-8?B?WXAySldDdjdNVTJuVE81dXgwUDVBMnNDWVFWaStvZzlDdnZoemhCa01RQnhM?=
 =?utf-8?B?VFcxY2lLVWtQKzVtemNuaWZZakg5SlFWdDhHdncrM1V4VlU3YXZLZGNsRVZG?=
 =?utf-8?B?c0NtTFNsZnNVQ1czd2pRUnoyNXVVS1l0M2x0V0JTS05IZU10dlRNUEd4QTBN?=
 =?utf-8?Q?wLWo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?L0FiREJPK0VFV0hWblJKeVYyNEQyTWdoSUhTS2ZXK1Jjd3ZJaXlYM2czcFov?=
 =?utf-8?B?YUgzVnpKRWNmWjJ3UFZKUVVlSWVkVGJJd1dBZzgvbUNGR3FOWXdMS0luK2Vu?=
 =?utf-8?B?dHRzNVBTVzJQSHBrMStpVkRteXAzOENlUy9OazVQdEFqTzdLcEFDajBxYlVp?=
 =?utf-8?B?czNkbGpBUVVCZnRtdkY3d0tpclYyTWVjVnJxNjlHejJ3UDcwSWNSRzM3VHF0?=
 =?utf-8?B?Rnp4cFQ1U3NJQmQ1ZzAwVXpYOHYyQ25OM0xMeWNhVTY0UDFtbmJuS1hGRUd3?=
 =?utf-8?B?MDZMSFltb1hTYS9BVDlXQi8wSnpWM2VuaTZNamJYckFUT1l1TlhLOEhJb1ND?=
 =?utf-8?B?SU5VaXRYenBSTU9UdFFXSmhqc1NCbXBtbnBRM213TUQ0R2tCWS9Ca1JOblk4?=
 =?utf-8?B?cENIYWxwR2svWVNzTmI0NklDUnlBYlNzWk1raGhDcUdqdU1jaTRMcmhXOHI3?=
 =?utf-8?B?MkVzL0Y0aThRQisrNlB3akp4bTZMbUdVY3JnbXk1Q0lIOUp6bXRjV1B2RTRE?=
 =?utf-8?B?NWEzcFJPWlRPbFVUbWVCMUc4QkIxT0luK24rZ05ZN2dBR3FLZjFINFZ6MnBW?=
 =?utf-8?B?UXFtbUYrU3hMblpqRU1MeE1sd2pXYTk5a1NQaTh2OXQvbks1VXJsdW1LMWNh?=
 =?utf-8?B?Z1FQb25TeEE1bVloOU1yV2xMZzJIbkUxbmVoTlVmZWpuN2RJWS9JTlBuaXBa?=
 =?utf-8?B?QjNpczY4a0ZmT1V6Z0FMeFI2OEZNVkJQVy9jSDdnRTNSc3VISGJPVWcwODJk?=
 =?utf-8?B?NU9hUE5zU2VHc20rWTV4NHo5bjVkVjRyYnY5WmlJZXQrNDRIRWV2TENPZTdH?=
 =?utf-8?B?VTRyMllOT1RKOG9hK01PUDIvSjM3WExhY2Jiam9iM3YrWUgrNGFtWnVkd0NN?=
 =?utf-8?B?T1V6cThYbm85WVZVSC9IWURrS2RaRjVSOUdGN0MzTlZScE9oVy9lMFNBYkIw?=
 =?utf-8?B?dlhYbkVQby9WZ2FybmNPMjgvWDkrVGFURk1rWFNjR3pGTHNiaU5PeUg4NVI1?=
 =?utf-8?B?UGxQZ2VYN2NsN28rUnVNK0dwdWl3c3FCYmJkZ0dCNno0MjJ3REJueDlrdmwz?=
 =?utf-8?B?Z3VuVC9GOEowb2NoTEhoV3UrdDY3VVpudk80TFg0cXdwSG1qUExVSUl6MHZV?=
 =?utf-8?B?TDZtL0dDbGtrSXhkbWRjbjZ2Yld1bE5VZHR1a2FndEYxNFh1bEtMTnpaVU03?=
 =?utf-8?B?TGc1UjFBNzZna1pYZS8ybHNJWklnNkVjdTlVMDJhMWRVamVCazZsaXJBc2F0?=
 =?utf-8?B?MXFhZ3g1WTlhdEhuNUplTEV4eFc1ei9Hb1hGZEtDZU1IQ01HVUt1RDRhN3Ax?=
 =?utf-8?B?OTJHYnNmUU9ZMTFsNFllOGI5R0p0TlEybGcwN0NNRnR5dXdUaTNadi9mWEth?=
 =?utf-8?B?bmg4WThtSWxmQ2ZNZlFya014VVFZM0l3NGllR1BjUFRXRFVwQXpMWkFGRlI2?=
 =?utf-8?B?YUJCb3h0MjhKS1c4cFYwNGpZdE8rcHY0WktxcitSQzlMbWVkdDliMGR1M3dx?=
 =?utf-8?B?dWF3VVBob293dUNWQmV2bTNPUFEyb3F1TnlqTFA5RlRkeWszZ2t2c0REai90?=
 =?utf-8?B?K0F6S2UxN2p5S1kxQkRzU2daV2dEM0F1eG9UeEhaMm9jcHdTMzg1UHVVVjdU?=
 =?utf-8?B?eDdkS2QvRzFpdXovN2w0QXNyem5kUmhkM0dlOWRzWXlVditPWEVnK09tbjlO?=
 =?utf-8?B?WWpMNlk0OWtJaE40cUpTcEZuSGdIeGcrODd5WkJkNElQL0hESVd4RWxOZmFM?=
 =?utf-8?B?S1g3VEs0cnFkUU80cURNclFLaTNuMnE0ajFPUHdNSDBJUzE3ZWNPTjdtTHJ6?=
 =?utf-8?B?S2pFSGhFb2VTbGNOc2Y3NkpJcUgrYTZGMkh3Z0VzUm82UmxuTE9KSlNkbThn?=
 =?utf-8?B?MFV2MU41VVNsTWZUWk02R1c0dFVvNjVrNjBrNXZEd0tORHU1TG43aGM4ZVVw?=
 =?utf-8?B?K3E4ajFJN1NIYXRaUUN5WGJuSlk5ODJKek1FT1pmSWJ3OGxvS3pUS1NJejdD?=
 =?utf-8?B?b2Z4Y0xuVG43OVgxT28zbVY0SzFLRzdGMWVNaTU0SHdlVnZmU3IzRDBIdjM1?=
 =?utf-8?B?VStYU29hV1VlWTJsU1hxM0FNdjRXd2tkY3NaeHkwVFlPcFhqTHcwWnB4MXcx?=
 =?utf-8?B?YWFmSHk4b2tmbW52UWJFVi9DOXVIN3NuM3JvdWtWUEFUV2kvSUNRSEJITkVk?=
 =?utf-8?B?VjdNdUMwRkRXaWpFd2pmVDlrY1ZkWm5iQUVhREhiSVZFZjZ2RzJhKzBrVW02?=
 =?utf-8?B?OEo4a3BWUVBVNHNVWnF0cHpyc0JSYkdsa21DeFo1VitJL0xTSFJubGYvN3FV?=
 =?utf-8?B?OXg2UDlEU2Y0b3FHUnNmUnBERlQvMDRrQmVOcTNBYmorKzZ5MTFyQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 20e4b74d-a047-4d15-454e-08de6b39a874
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 19:54:11.8378
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: BafflJETlzr83wJ1kR28VyerX+ttidFYCY3MfGMQTZMr8/aDZNlG4ADO2zLN/B8LSka7zX6GMWwF0rJLEqI4OQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6484

On Fri, Feb 13, 2026 at 08:13:09PM +0100, Alejandro Vallejo wrote:
> On Fri Feb 13, 2026 at 7:42 PM CET, Roger Pau Monné wrote:
> >> >> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> >> >> index 960f6e8409..64fde82c50 100644
> >> >> --- a/xen/arch/x86/mm/Makefile
> >> >> +++ b/xen/arch/x86/mm/Makefile
> >> >> @@ -1,4 +1,4 @@
> >> >> -obj-y += shadow/
> >> >> +obj-$(CONFIG_OPT_HAP) += shadow/
> >> >
> >> > I think you can use:
> >> >
> >> > obj-$(findstring y,$(CONFIG_PV) $(CONFIG_SHADOW_PAGING)) += ...
> >> 
> >> Hmmm. I guess I shouldn't just include it twice, like we do for other .o files.
> >
> > I see, so use:
> >
> > obj-$(CONFIG_PV) += shadow/
> > obj-$(CONFIG_SHADOW_PAGING) += shadow/
> >
> > Maybe that's simpler really, and it's a pattern we already use
> > elsewhere.
> 
> I meant them being folder with makefiles potentially doing things that should
> only be done once. I don't know if we dedup tokens somewhere. These makefiles
> are rather arcane.

I'm not a Makefile expert, so I might be wrong.  We apply $(sort ...)
in several places to remove duplicates, I would assume, I see:

# Subdirectories we need to descend into
subdir-y := $(sort $(subdir-y) $(patsubst %/,%,$(filter %/, $(obj-y))))

Which should remove any duplicated folders.

I've tried the duplicated folder addition to obj-y and seems to build
fine.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 20:09:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 20:09:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231808.1536787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqzTn-0008Tt-01; Fri, 13 Feb 2026 20:09:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231808.1536787; Fri, 13 Feb 2026 20: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 1vqzTm-0008Tm-TR; Fri, 13 Feb 2026 20:09:30 +0000
Received: by outflank-mailman (input) for mailman id 1231808;
 Fri, 13 Feb 2026 20:09: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=9cwp=AR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vqzTl-0008Rt-1A
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 20:09:29 +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 e5f85c30-0917-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 21:09:27 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 7F6796091C;
 Fri, 13 Feb 2026 20:09:26 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E70FC116C6;
 Fri, 13 Feb 2026 20:09: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: e5f85c30-0917-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771013366;
	bh=cZCUcCdA6I34GJrfMm43QWJwY50qUe7vdXKFH3sr5jg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=OxFPKc4/7luVnWsnsWGtplumcOyfTlNuGWg6zhnjC7VT7wCESEuu2SNHplll0XA3I
	 GdwpfN1E9bD0qy91uheU+ZzhJwuWReuAgQoQMPWbbznFxK1qwXMkX5EnasCaHuEyDv
	 983nZcdtgTNZ8pjEGrKIW4KbyXTnb4wxpGqUZDNfw4jHSn8AOqsykt/tzosuN4qEwf
	 wf2G11wLF6V+YI7VLTOUHJSBZt0fDeVRRV13rxDIXF8svT92btl3jt8F/mLnMbn1EY
	 HKkqMB1BhKUkQTzqIFdhtF87p//Oj1o3Zs68FqhlHhaw64RXlF+qExBVXmJbPUoo6M
	 QhCwNKiH/Hnqw==
Date: Fri, 13 Feb 2026 12:09:17 -0800 (PST)
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>, 
    Daniel Smith <dpsmith@apertussolutions.com>, 
    Stefano Stabellini <stefano.stabellini@amd.com>, 
    grygorii_strashko@epam.com, anthony.perard@vates.tech, 
    michal.orzel@amd.com, julien@xen.org, roger.pau@citrix.com, 
    jason.andryuk@amd.com, victorm.lira@amd.com, andrew.cooper3@citrix.com, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
In-Reply-To: <43e80ad6-7b42-42de-b36f-1a9079589912@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602131206040.6031@ubuntu-linux-20-04-desktop>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop> <20260204233712.3396752-2-stefano.stabellini@amd.com> <82c06e52-1db0-46e5-be9f-7ca0360ffc70@suse.com> <alpine.DEB.2.22.394.2602091520460.1134401@ubuntu-linux-20-04-desktop>
 <43e80ad6-7b42-42de-b36f-1a9079589912@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, 10 Feb 2026, Jan Beulich wrote:
> On 10.02.2026 00:23, Stefano Stabellini wrote:
> > On Mon, 9 Feb 2026, Jan Beulich wrote:
> >> On 05.02.2026 00:37, Stefano Stabellini wrote:
> >>> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
> >>> global to VIRQ_DOMAIN to allow other domains to bind to it.
> >>>
> >>> Note that Linux silently falls back to polling when binding fails, which
> >>> masks the issue.
> >>>
> >>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> >>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> >>
> >> Technically this is an ABI change, and hence I'm uncertain it can go without
> >> that aspect being at least mentioned, perhaps even its implications properly
> >> discussed.
> > 
> > I am not sure if it qualifies as an ABI change or not but I am happy to
> > expand the commit message in any way you might suggest.
> > 
> > The jist of it is already in the commit message, really the key element
> > is that VIRQ_CONSOLE can be bound by multiple domains.
> > 
> > Aside from spelling out "this is an ABI change" what do you have in
> > mind?
> 
> What I mean is discussion of the implications for domains using the vIRQ.
> Previously most domains would have attempts to bind this vIRQ rejected.
> Technically it is possible that kernels had code paths blindly doing the
> binding, relying on it to work only when running as Dom0. And really, you
> appear to break XEN_DOMCTL_set_virq_handler when used with VIRQ_CONSOLE,
> without which its binding wasn't possible at all before (except for the
> hardware domain, which get_global_virq_handler() falls back to when no
> other domain is set). Or am I mis-reading things, as I can't spot any use
> of VIRQ_CONSOLE under tools/, whereas I would have expected provisions
> for (host) console handling to be delegated to a separate control or
> console domain? Of course other toolstacks (the XAPI-based one for
> example) might actually have such provisions.
> 
> And then there's the XSM question: XEN_DOMCTL_set_virq_handler obviously
> is subject to XSM checking. The same isn't true for VIRQ_DOMAIN-type
> vIRQ-s. Yet this vIRQ isn't supposed to be universally available to
> every DomU. Instead the ->console->input_allowed checking is kind of
> substituting such a check, which iirc Daniel said (in more general
> context) shouldn't ever be done. IOW in patch 5 you're actually effecting
> policy, which should be XSM's job aiui.
> 
> Bottom line: The patch may need to be more involved, but at the very
> least the description would need updating to justify it being as simple
> as it is right now.

What do you think of this:

---

xen/console: change VIRQ_CONSOLE from global to per-domain

Previously VIRQ_CONSOLE was a global VIRQ (VIRQ_GLOBAL type), meaning
only the hardware domain (or a domain explicitly set via
XEN_DOMCTL_set_virq_handler) could bind it. Any other domain attempting
to bind would fail with -EBUSY because get_global_virq_handler() would
return hwdom by default.

This patch changes VIRQ_CONSOLE to VIRQ_DOMAIN type, allowing any domain
to bind it independently, similar to VIRQ_ARGO. The console notification
is now sent via send_guest_domain_virq() directly to the focus domain
rather than through send_global_virq().

Implications:

1. Guest kernels that previously called bind on VIRQ_CONSOLE blindly
   will now succeed. Linux handles binding failure gracefully by falling
   back to polling, so this should not cause regressions.

2. XEN_DOMCTL_set_virq_handler can no longer be used with VIRQ_CONSOLE.
   The domctl explicitly rejects non-VIRQ_GLOBAL types. This means
   toolstacks that relied on set_virq_handler to delegate console handling
   to a separate console domain will need to use a different mechanism.
   Note: No known in-tree toolstack uses set_virq_handler with VIRQ_CONSOLE.

3. VIRQ_DOMAIN bindings are not subject to XSM checks beyond the
   standard event channel allocation policy. Access control for console
   input is enforced via the per-domain console->input_allowed flag,
   which is set for:
   - The hardware domain (by default in domain_create())
   - dom0less domains on ARM (in construct_domU())
   - The PV shim domain on x86 (in pv_shim_setup_dom())
   - Domains with vpl011 using the Xen backend (in domain_vpl011_init())


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 20:40:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 20:40:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231837.1536798 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vqzxz-00050C-6q; Fri, 13 Feb 2026 20:40:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231837.1536798; Fri, 13 Feb 2026 20: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 1vqzxz-000505-4G; Fri, 13 Feb 2026 20:40:43 +0000
Received: by outflank-mailman (input) for mailman id 1231837;
 Fri, 13 Feb 2026 20: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=Z/W2=AR=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vqzxx-0004zz-46
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 20:40:41 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 41401748-091c-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 21:40:39 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by LV8PR03MB8140.namprd03.prod.outlook.com (2603:10b6:408:297::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 20:40:35 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9587.017; Fri, 13 Feb 2026
 20:40: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: 41401748-091c-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NbhZmmwGz5KB0urrK+L4aNbvm062yvifhwPJ1nEhKghIAN9qEif6Wtp4YJe6/RkbzFsWeqkUa4fUVd9JVHRoKO2BsYduC72BPvyaxYRCCk1L3i4lHdQE2SdoLlMCM0Z6ImIHhZegTYGr+cQceMIts7HGOLmsNtOyFB/YluxoTszUt3YLb54cUS4BTLbjZ8sni0cpnqnqzRC/5eeTLNtkL8E5Hfih2cPsLbX3uMI2/9fa+fftjhpd0qGWr/KfEmkhy0T5JUDeuG1K1s9sacR4Tk2FoN+ZWGT8pZH6/Th/zaY5ZbKE6ewS5ReZT2Q50iK0JKXQUW085baCtIOZAFaAog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=mondg1boiBf4RbMEGWYnzqx9QgyaN+LDudJFiBHXykU=;
 b=ic9ZLCSw4wGX1ORXuJBH9P5Ef4LzytKFzntR1QXnUYMMrMA8Ygf9CbSv1AMMbC0VRhHSOSySNluFBDa0JbTpxPAxn55fJ1YZa50Ce+NtrHczV2iIE12muxM++5Rsmyde8hf+SBxC8I04/UcVkf67aKUSeyxMhpzrLsste9Jy9CLOzvVB0M8UejN+P171FiNQSWzNWVukTh1HhsyD62jWp4Tl+wwZvh+XFoOtgYsCXAhQ2IIUxHOZhIxYj3lWO/97QxaFiAWQkO6poB+ygnYrQOslwigOs6UUUcBHJZ1BCxNqQIM+NZqrZdiZx2W/XmglYHSq5WFAhcE484u8L3zl4w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=mondg1boiBf4RbMEGWYnzqx9QgyaN+LDudJFiBHXykU=;
 b=R3GVADe55p9oo24sxXCdqDYlV+gORUjQoe6xySCJGC8v7+eNgUG3X8g20E7tJUgpEYh/wAWJdYuRxcY7KZoolkzUUCDkFdUWx2cfWhZVAbHgnTpzGnr7Nn6pYA1Ixd970LiFyYW7u2LNzfQCWpBEG30SrYzGFZgHwwKqoPYG2a0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 13 Feb 2026 21:40:31 +0100
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: Cannot boot PVH dom0 with big initrd
Message-ID: <aY-MPz-HpZVkmhob@Mac.lan>
References: <aY6iVr990vWeO2p5@mail-itl>
 <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com>
 <aY9Jt1-jCWhStcxB@Mac.lan>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <aY9Jt1-jCWhStcxB@Mac.lan>
X-ClientProxiedBy: MA3P292CA0035.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|LV8PR03MB8140:EE_
X-MS-Office365-Filtering-Correlation-Id: 0d8272da-a4ec-42c9-2118-08de6b402352
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cG1rcmtMMGpGMDZ3YlBBeXZtc001ei9JeExxNkNuYW9lMjFRbUkwcnZvOTc2?=
 =?utf-8?B?NVZJZEZFN3l2ajJZQ25oK2RCUUh6SGoyQUpZd3pRcVVlb2N5cTV1ZTJsVytj?=
 =?utf-8?B?QVFndVNENEhnTDc4ZTJUVGNCUE9wbjJaYXgvVjZOMHVGZzB4WW5FeXFMQWtQ?=
 =?utf-8?B?N1plc3FHNEdxR0gzWklmbDhTWFd1Yjh0bTRtSXdnRHd6RlBBcitZSGNBSGlq?=
 =?utf-8?B?bmU5RmxBNW9OQ3NkYXpSaXhiS2FmY2U4b3psZnpEdmZkUkc3Rzc2dTNYUjlS?=
 =?utf-8?B?bGZXWVZqZzdqTW8zTDFNckt3TklBeDIvMzhFOC83blBUSXJPVmRIQkVaNWRs?=
 =?utf-8?B?aHVEbFNZc3FDbUUyRjJhdllMUis5d3l1NXcyaGd5UWJ4VHc2cEZ3M1hzTVc2?=
 =?utf-8?B?WUQwWXBMdjFCQ0MzVjU3SGNGQWFTYzF3RkVWNXBuVTd6L1ZwK3g1dk5yZEQz?=
 =?utf-8?B?WXFocHpjNlIvZDFudDRKaEkyQzhOY2ZNNjI3TTMra0IrNGJIamJPbFMzNko2?=
 =?utf-8?B?WlBlbDFCbi9rd3BRNnJFYzBiak01OEpFMFNXNjhHQ1BicElEbEprWDQ5aFZO?=
 =?utf-8?B?dFM5OU02UFZxOG5CejMvbWZJWE1Ndkt4ekt2SytkZUhKZ3pWUnpQNm4xOWRY?=
 =?utf-8?B?Wmc2UnJHSXZqWWd5MkdKU1l5SUYyMDN0RHhBSVlNbDhTeDZ4TkRqd3pnVzN2?=
 =?utf-8?B?QStSMlZWL3ovQXpuSC9ncDRnb2pYUnhKOWFRbVRmNlBhZ213M2tYVFhOeGlE?=
 =?utf-8?B?dTAxVmxjU1lpQkJMQVlTUzl5VU4xcDRtYlNyeHg2ZHJXd1JVMzZRK3pXQ0ty?=
 =?utf-8?B?UGNpZ1dkT0p6bjIxTE1oTkl3TlJZd0p5aG9BZmlnZE9VMFIyb3hLOG5uZTZk?=
 =?utf-8?B?Q0htQUhQdHFXQ2RJbmpsVW5uUlZjVDVTbDlObm1LMkZDc254OXhtSjFCRUkr?=
 =?utf-8?B?SEFkQkRiaTREZlJUOUJLZ1lDTFdHd2ZVTGRtd1FqK3dnMEs0UU9rUUxBaWZI?=
 =?utf-8?B?cjNOeTgxTmQ4TCtod1p5TW8wQkdkYWlrWlpPNnE0UENTUkNXcWhHVGVqTVE1?=
 =?utf-8?B?MzNDSXRMN1NzN1RHSm9LRnJKMlRuQzk3Q3dBamFCU25EaTJOMU9sV0thVjV2?=
 =?utf-8?B?azc1M1JoZFl0cm9SSldnbXpNalFiSjB5cmd3QkgwMHJyS1l6Vk56dllTU2JF?=
 =?utf-8?B?QmRiNGNoMllLTmlGc2xaODk2YWR2dEkyQnR4emJvaVhUZE9iYmZ5M1F1aGVa?=
 =?utf-8?B?cjEwaGZvT0FmVlZTUStGL2lkRDMvbUtIaGU5V3Y0MVAxRHRwZVgvRlRyZDNO?=
 =?utf-8?B?Ym5qWDdhQ21GWHYwODVOU0FCeXdzTm0vM3hoVlZZbmJiLzFHTXBFenA5VjAv?=
 =?utf-8?B?a3I3MHA3eGRvdGc1VHp4WmFseENLK2tSQ1lLUFVsRy9HNGd3RXRGWlphY25V?=
 =?utf-8?B?Q0R5enpDbzZCaFByalBZRkxqSGFNZm9EdzhlYUVHMU8xdWFoRlpiWlE0ZGdv?=
 =?utf-8?B?a0diUk1VWDg3QVpYTmV4aDlPUzJBNFJKMHFtMXk3MDJSVlEyd0xkSDE3cjAv?=
 =?utf-8?B?SEVQTmlmT3JrYXhibjUwdjFEbnpkN3VPb0NvNThyRkRUcGRmS0VxOGFlOE11?=
 =?utf-8?B?VHlCZjI1MFl2R1lYamVGdm9TMnlnVjBvOHNNVHMxbmkzNFFLVlBHOGt1TGxw?=
 =?utf-8?B?dE13MERXU0t4dXN4UlJVUFZGWE1lTXdoRi81N1BvZXdvVkU2R2EzSjRocjF6?=
 =?utf-8?B?cUdrSERXQUlFcWxCZk5pYzE0NmxYQUNjSkxHc21kdHpvdzZXOUc1SVh5OW5y?=
 =?utf-8?B?b0pCNk9udk5zckpBZjFzWE5GOEZ0U2x0K2k0YXVCRUlGd1dqVXZ0U1hhenk5?=
 =?utf-8?B?VWtJTVlXcTRPOVBUQmVrbG5ESEhTL0FWODIzQ05YdzlzT0p3Wk14ZUFmU1Vk?=
 =?utf-8?B?am5YUFNmOGZzSHhsd2lWTVkrMm1QdDFIR0dOcXJ2MWtjVEdRTXFFdE96NDdW?=
 =?utf-8?B?NEZUdW9OZHJ3eW45Y1JHZHNSQURGMXZlcWZFMjFOVzZEN2h0TEs3Z3NoWUNt?=
 =?utf-8?Q?QUewtn?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U1RqVXpUdlNHc1hKVmxSSkVJakZlbWNEQmVoT1o4Zi9mcC9sMFlCMzl4N1JI?=
 =?utf-8?B?Y2lwQitUd1VVd2V6bE9xRk5OZGFBanlsWjFPMzg5NkJ0dDVJQ00rRGN5YUJ0?=
 =?utf-8?B?anJGUk56KzFZanp5Vk8zS2hCZGJCcW1BelFZL1hqa2cyanZnMzl3eG90VEh0?=
 =?utf-8?B?eGxGbU83MlRiYm1pQmttRzlySlptc2pXMEFGQmVVR0xFcWY3OXpLRGphSXB6?=
 =?utf-8?B?L1ZBVHkrS1JVWVprMTFCNitqOTZ5NGdSMERrUGNtZ01HVm4zREZ0M0lnSWNx?=
 =?utf-8?B?SG54RHdxR1VZTkdTbmpyYVlDMHFaK21GenlXODdKZUUrS3BKMDZneDdRL1dL?=
 =?utf-8?B?ek53QzlSU0xQTHlIdGVDKzJJakFBWWE2ajVtN2pjRmEwWGJZWVRhZHJ6ZnpC?=
 =?utf-8?B?UmM3MmFvTkRsbmRjUEdYanBKaWNTR1pIOUV4Y3ExbDhSRjgrOUh3RllUUnU2?=
 =?utf-8?B?MFJtWEk0aGgydVo2ZVAxbkZyMUFycThoSXErYXpVR2gxOU9KdHFQbGJpWFpY?=
 =?utf-8?B?VmQ0NHRjZGZvakxyWGtqMk5xOUhFMVU1cEl1OWNnaTVkT3BhbVFKdG5FV0lF?=
 =?utf-8?B?RTBXUHRCdmlha0FPNXdnejZwV0pIOUhiRDlSMEFWb0JJOGEwS3RaSWxGOEZa?=
 =?utf-8?B?cVBTSXZpVkFOMEZ4QnlFQXJVWHJEeWZFZ2Ywc29kOFkydDhOdXpidVZGOEpN?=
 =?utf-8?B?dm5wMGNQbkVoK21WV2l3TDlIN2laNFpCMjVISVNkVm9PNmpGUTRXTHlROFg5?=
 =?utf-8?B?ejQ0a3FjdFdjSm40WGd3dTAzZ0ZYZElRdkFIQXJIMXNTamVxcW1tQ0NRbkdO?=
 =?utf-8?B?WVRNOTV4VnVDcVA1MHV4dWp4a0JsRnVXeGxOUTNaZkRlWUg1b290K3IyemJk?=
 =?utf-8?B?ek5vRkpWUFdvWXFaa0lTUXRMZG1nQnZLWDR2QlpidU5DRU0wQkVxTm9OaDFJ?=
 =?utf-8?B?OHFhMEJvbXFrYmNER0lQTHdySlRtVWU3cVVPNzVaRS9GVEZPSFhva3ZVRzJZ?=
 =?utf-8?B?ZDdGRENkQ1cwOTJDSzQrSGEyNW50Q0dadWRhekV1VnRSTHdKWk9Td2tMclZD?=
 =?utf-8?B?R1VjdXFHS2tYY3NqS1ZyYnREcXJyQlV0eVFDaGljU0lPa0xoenJQV0p4TDBk?=
 =?utf-8?B?NytVbFQxYnZLTGhIQUhONXNtaWFwNFAveTJjUkFmdVBaaGFkakxId05KeStp?=
 =?utf-8?B?U25pby9zZjNrblZTTE1Da1JRRXlrVG9oVENYelFtdVdNaU45K2N1VlFwejlP?=
 =?utf-8?B?WWZidUtqWTRxRWhKMmEwUUlLVGNpdEtvdWJLajJXaTRuZnNRZTNJU3JmS3V1?=
 =?utf-8?B?MUhZSUpvaUQxbk9sdFhHMHhveG9qeXJTSExmaEkwTHlDSi9jS1UrVTRkWWRj?=
 =?utf-8?B?VjU2L1hCY0ZyeFQ2MFUyWnhFdWw2ZlUvNjJpSWlUaG1yajVsQjFrcCt0NDdX?=
 =?utf-8?B?ZHhaU29WVlVORUlnZWxMQ3ovWngvOXhvWjhNUUtFOGQ0eExhYmF1UWl5TWll?=
 =?utf-8?B?OGFycVMyaElsRWhOeitUUEdKeERZeUhCcnZUKzJlTDBMcHNQcTZtSkI0V2ZH?=
 =?utf-8?B?aDMxc3pEclVsKzV3SGMySGoveGtidVc2d05oRGNTYkJ0bkt3Yk8yRUQrUDg0?=
 =?utf-8?B?ajlvSHVwaUVCMzdmVmlVWmFBTzllZENQZHpyOHUybEhsK0J2Y2QycjVZUkJn?=
 =?utf-8?B?MGxLUDJnZWZLUFg3R3YxUmdvL2JnOVdvTDN0L2J3WUNqVmp2VEJsTVl0Rk8x?=
 =?utf-8?B?dlgxQ3Z5RVBUb29pY2k5NERuaU9nd1F1TDY2VGdnUmpyWTJRM1ltbmhrNlBJ?=
 =?utf-8?B?aVZBajFZNVJzekhId0dwSnJOelB1c3BWSk9WYmRSeG5SeDR4WjFUelN4WTlZ?=
 =?utf-8?B?Wm1oaDE2Q3psRlRYN0FvVHNYd0s2L2tsb1p2Y2lqY1RzWjIxZE9vUlM5c25j?=
 =?utf-8?B?ZmVrbzFpSHlkUlVsOXRhTVRweVZSd2F3VGlQUW8vY1FzMTFyUmZjdEV1RzlB?=
 =?utf-8?B?b0phVVNGOHl5V3VhUGlxVEg5VjUzUm9JMDRuNGhGWnMwaDhnZ2djQnBHU1U3?=
 =?utf-8?B?TVl2TnFmaUJlTkVTK2xQbXJhWUoyM25CVTRxVzFTVTNyOCtrTE1QS0hTbm1Z?=
 =?utf-8?B?NE4rLzN5Z05jNnplaG9xb2VkOFBzbGo1MGsya1lWZmJQcEpNejJrSzg1aERM?=
 =?utf-8?B?R09VL2JsZHpjMUhQQTh3OTZPYlY5dkI1UXNJNlBycERqQVJ6a2RaYlBjMGVL?=
 =?utf-8?B?L0ZielkvRWlScFZUbVkzUXNIYzlETnNLcExrWENVemRBYTg3dDltOGhFTmZw?=
 =?utf-8?B?dUg2UDIxSFVEN1B3cGVhZXVjYTdSZlBhamJhZlNNV0g4Y1BBWE1oUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d8272da-a4ec-42c9-2118-08de6b402352
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 20:40:35.0290
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: fIKvOVddvAnhis7rortl4f22oHdQotAucP4UwGcESPO3V0mQ8IkX8c0Z+Bb9faH77t9w/CSOANgtELcNzOWEaA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR03MB8140

On Fri, Feb 13, 2026 at 04:56:39PM +0100, Roger Pau Monné wrote:
> On Fri, Feb 13, 2026 at 09:56:42AM +0100, Jan Beulich wrote:
> > On 13.02.2026 05:02, Marek Marczykowski-Górecki wrote:
> > > Hi,
> > > 
> > > After fixing the xhci crash, I hit another issue - booting with 236MB
> > > initrd doesn't work, I get:
> > > 
> > >     (XEN) [    3.151856] *** Building a PVH Dom0 ***
> > >     ...
> > >     (XEN) [    3.593940] Unable to allocate memory with order 0!
> > >     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
> > >     (XEN) [    3.599884] 
> > >     (XEN) [    3.602482] ****************************************
> > >     (XEN) [    3.605272] Panic on CPU 0:
> > >     (XEN) [    3.607928] Could not construct d0
> > >     (XEN) [    3.610692] ****************************************
> > >     (XEN) [    3.613463] 
> > >     (XEN) [    3.616035] Reboot in five seconds...
> > >     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.
> > > 
> > > Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f2899781755762f565
> > > 
> > > If I skip initrd, then it boots just fine (but dom0 is not happy about
> > > that). 164MB initrd failed too, but 13MB started ok.
> > > Just in case, I tried skipping XHCI console, but it didn't change
> > > anything.
> > > 
> > > Host has 16GB of memory, and there is no dom0_mem= parameter. Xen is
> > > started from GRUB, using MB2+EFI.
> > 
> > Hmm, yes, there's an ordering issue: Of course we free initrd space (as used
> > for passing from the boot loader to Xen) only after copying to the designated
> > guest area. Yet dom0_compute_nr_pages(), intentionally, includes the space in
> > its calculation (adding initial_images_nrpages()'s return value). PV Dom0
> > isn't affected because to load huge initrd there, the kernel has to request
> > the initrd to not be mapped into the initial allocation.
> 
> Right, on PV dom0 we do not copy the image to a new set of pages, we
> simply assign the pages where the initrd resides to the domain.  We
> can't populate those pages in the p2m as-is, otherwise we would
> shatter super pages.
> 
> I think the fix below should do it, it's likely the best we can do.
> Can you please give it a try Marek?
> 
> Thanks, Roger.
> ---
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 0b467fd4a4fc..8e3cb5d0db76 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -343,7 +343,7 @@ unsigned long __init dom0_compute_nr_pages(
>  
>      for_each_node_mask ( node, dom0_nodes )
>          avail += avail_domheap_pages_region(node, 0, 0) +
> -                 initial_images_nrpages(node);
> +                 is_pv_domain(d) ? initial_images_nrpages(node) : 0;
>  
>      /* Reserve memory for further dom0 vcpu-struct allocations... */
>      avail -= (d->max_vcpus - 1UL)

I'm working on a more complex patch, that attempts to account the
memory used by the init images towards the reserved amount that's kept
by Xen.  This should make accounting a bit better, in that we won't
end up reserving the Xen memory plus the memory used by the init
images.

It's still however a WIP, but would you mind giving it a try?

Thanks, Roger.
---
diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
index 0b467fd4a4fc..3d54af197188 100644
--- a/xen/arch/x86/dom0_build.c
+++ b/xen/arch/x86/dom0_build.c
@@ -325,10 +325,18 @@ unsigned long __init dom0_paging_pages(const struct domain *d,
  * If allocation isn't specified, reserve 1/16th of available memory for
  * things like DMA buffers. This reservation is clamped to a maximum of 128MB.
  */
-static unsigned long __init default_nr_pages(unsigned long avail)
+static unsigned long __init default_nr_pages(unsigned long avail,
+                                             unsigned long init_images)
 {
-    return avail - (pv_shim ? pv_shim_mem(avail)
-                            : min(avail / 16, 128UL << (20 - PAGE_SHIFT)));
+    unsigned long rsvd = min(avail / 16, 128UL << (20 - PAGE_SHIFT));
+
+    /*
+     * Account for memory consumed by initial images as if it was part of the
+     * reserved amount.
+     */
+    rsvd -= rsvd <= init_images ? rsvd : init_images;
+
+    return avail - (pv_shim ? pv_shim_mem(avail) : rsvd);
 }
 
 unsigned long __init dom0_compute_nr_pages(
@@ -336,14 +344,28 @@ unsigned long __init dom0_compute_nr_pages(
 {
     nodeid_t node;
     unsigned long avail = 0, nr_pages, min_pages, max_pages, iommu_pages = 0;
+    unsigned long init_images = 0;
 
     /* The ordering of operands is to work around a clang5 issue. */
     if ( CONFIG_DOM0_MEM[0] && !dom0_mem_set )
         parse_dom0_mem(CONFIG_DOM0_MEM);
 
     for_each_node_mask ( node, dom0_nodes )
-        avail += avail_domheap_pages_region(node, 0, 0) +
-                 initial_images_nrpages(node);
+    {
+        avail += avail_domheap_pages_region(node, 0, 0);
+        init_images += initial_images_nrpages(node);
+    }
+
+    if ( is_pv_domain(d) )
+    {
+        /*
+         * For PV domains the initrd pages are directly assigned to the
+         * guest, and hence the initrd size counts as free memory that can
+         * be used by the domain.  Set to 0 to prevent further adjustments.
+         */
+        avail += init_images;
+        init_images = 0;
+    }
 
     /* Reserve memory for further dom0 vcpu-struct allocations... */
     avail -= (d->max_vcpus - 1UL)
@@ -367,7 +389,8 @@ unsigned long __init dom0_compute_nr_pages(
     {
         unsigned long cpu_pages;
 
-        nr_pages = get_memsize(&dom0_size, avail) ?: default_nr_pages(avail);
+        nr_pages = get_memsize(&dom0_size, avail) ?:
+                   default_nr_pages(avail, init_images);
 
         /*
          * Clamp according to min/max limits and available memory
@@ -385,7 +408,8 @@ unsigned long __init dom0_compute_nr_pages(
             avail -= cpu_pages - iommu_pages;
     }
 
-    nr_pages = get_memsize(&dom0_size, avail) ?: default_nr_pages(avail);
+    nr_pages = get_memsize(&dom0_size, avail) ?:
+               default_nr_pages(avail, init_images);
     min_pages = get_memsize(&dom0_min_size, avail);
     max_pages = get_memsize(&dom0_max_size, avail);
 



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 21:37:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 21:37:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231884.1536809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr0qt-00035e-G4; Fri, 13 Feb 2026 21:37:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231884.1536809; Fri, 13 Feb 2026 21:37: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 1vr0qt-00035X-BY; Fri, 13 Feb 2026 21:37:27 +0000
Received: by outflank-mailman (input) for mailman id 1231884;
 Fri, 13 Feb 2026 21:37: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=Y0jx=AR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vr0qs-00035R-6l
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 21:37:26 +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 2ecd5bb2-0924-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 22:37:24 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id B64BDEC0567;
 Fri, 13 Feb 2026 16:37:22 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Fri, 13 Feb 2026 16:37:22 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 13 Feb 2026 16:37:21 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ecd5bb2-0924-11f1-b163-2bf370ae4941
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=1771018642;
	 x=1771105042; bh=O6jHHUVsnoUSNGl0mp7ZdgncM209k3vxT25kXidpJZo=; b=
	dvySc9e22qcjMlq99bbzRbYhTCP3J+yI4hPEw/LME+K5/v5cryDJIbas8bJLWsL+
	Sx6axIiOrwOzQCgobHYbBBMBRlzP98CUKIsAjDJ5rPnglt6YmIWQPNMqugTrCAaB
	NdKZNhapXXwuHeiBo2o+GbkO7P8ynjdDXjRTkEWdp/iWImXfPVHwPVtWaohJYKyp
	g4P8RFi50vGvAWge9dgptBvx24vf76ObnkHAXGfKPZ5FwjiiCX7RYLTu3Vz/6NXE
	kzalpoDBrojOZFOhtfNTlCl3O/r9gJsyRwPDwVL4dMaSZqY9Ipcdo9tX1V8aGXpG
	b86Qx83oF0uzztKctYAfxA==
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=
	1771018642; x=1771105042; bh=O6jHHUVsnoUSNGl0mp7ZdgncM209k3vxT25
	kXidpJZo=; b=jxBcoQX1IEv8f83Y61J6yL1RhfnFC1VORX7IWgIobJBUpB8HNQX
	rk8zK0/81eNXF9KGRNh1YDmqCtsW4QR3FPaA8YOB1RqBRIX7fM87tCYcJ/dRGipE
	75f6yspjJA66Z9USUtYLwRMKbywBAmDnJdPqedO1OMHjvEaLp3yCiz6xAz5NEWRG
	3pQ19CCPsVRtTDz1J2H/Mx2IYwukK+H3nv7WZ71mJi5URBS8p4xmmY3ezoHUHvg0
	b/bbV8DG1xwR0k1ex3feSaDyTd0yZAFcoOg5CqFcg79UdmO/l3aWvoaMDyhDCWy7
	CV07fe2ezWM6CqaxEFcEDsDz0dZh22AjOkw==
X-ME-Sender: <xms:kpmPacOIHmcWNE9uGBV_9VkSMxj5OEv-EM3WxNlxIHJkLVZ7dT0XSQ>
    <xme:kpmPaaZkdTbLps6u6L3Aw3X_4DMv6_GnURGmxWsBoNNh18MnsNhMHYCnrpxd0shdQ
    rRw-APKQbOvAqcxZa0De8zr9d0e8Q8NYqvF9jSDS5HSWM2Uk8o>
X-ME-Received: <xmr:kpmPaQoH75nWGNNg97kiCx7zJUHid-Czxw3H4dYKh7ZTiZ4T523Y54QMFBBZ7fWRRc-1vBbpPV6Q0uWh8mgBMZ6yfZfuRFYhHhY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdelfeehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehjsggvuh
    hlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishht
    shdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:kpmPaeZ-G118TDhXmeEBXteF8ELBV2iiL9hp7IHcnS9Tl1LdppWyDg>
    <xmx:kpmPaYQnITPa48UdEz09DemgNz_7ljMDkVb722PqAq-jrJfHOJk31A>
    <xmx:kpmPaV7s337ojuWHBCXOPd2xpjv4RrIhxT6oq0rVbE39ZiVGokl1rg>
    <xmx:kpmPadwhLwwzWDaNp4PwedhnTkHsKflMW-1hETsKByrUQ-emAWNxsQ>
    <xmx:kpmPadVqyLZV0uWOaOes3Lv6OsAAiBqUuFNzWZHpfwwAs3jS59DfZyXb>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 13 Feb 2026 22:37:19 +0100
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: Cannot boot PVH dom0 with big initrd
Message-ID: <aY-Zj8MbM3_HyV3E@mail-itl>
References: <aY6iVr990vWeO2p5@mail-itl>
 <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com>
 <aY9Jt1-jCWhStcxB@Mac.lan>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="JsQupDVTPitSrll8"
Content-Disposition: inline
In-Reply-To: <aY9Jt1-jCWhStcxB@Mac.lan>


--JsQupDVTPitSrll8
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 13 Feb 2026 22:37:19 +0100
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: Cannot boot PVH dom0 with big initrd

On Fri, Feb 13, 2026 at 04:56:39PM +0100, Roger Pau Monn=C3=A9 wrote:
> On Fri, Feb 13, 2026 at 09:56:42AM +0100, Jan Beulich wrote:
> > On 13.02.2026 05:02, Marek Marczykowski-G=C3=B3recki wrote:
> > > Hi,
> > >=20
> > > After fixing the xhci crash, I hit another issue - booting with 236MB
> > > initrd doesn't work, I get:
> > >=20
> > >     (XEN) [    3.151856] *** Building a PVH Dom0 ***
> > >     ...
> > >     (XEN) [    3.593940] Unable to allocate memory with order 0!
> > >     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
> > >     (XEN) [    3.599884]=20
> > >     (XEN) [    3.602482] ****************************************
> > >     (XEN) [    3.605272] Panic on CPU 0:
> > >     (XEN) [    3.607928] Could not construct d0
> > >     (XEN) [    3.610692] ****************************************
> > >     (XEN) [    3.613463]=20
> > >     (XEN) [    3.616035] Reboot in five seconds...
> > >     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.
> > >=20
> > > Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f289=
9781755762f565
> > >=20
> > > If I skip initrd, then it boots just fine (but dom0 is not happy about
> > > that). 164MB initrd failed too, but 13MB started ok.
> > > Just in case, I tried skipping XHCI console, but it didn't change
> > > anything.
> > >=20
> > > Host has 16GB of memory, and there is no dom0_mem=3D parameter. Xen is
> > > started from GRUB, using MB2+EFI.
> >=20
> > Hmm, yes, there's an ordering issue: Of course we free initrd space (as=
 used
> > for passing from the boot loader to Xen) only after copying to the desi=
gnated
> > guest area. Yet dom0_compute_nr_pages(), intentionally, includes the sp=
ace in
> > its calculation (adding initial_images_nrpages()'s return value). PV Do=
m0
> > isn't affected because to load huge initrd there, the kernel has to req=
uest
> > the initrd to not be mapped into the initial allocation.
>=20
> Right, on PV dom0 we do not copy the image to a new set of pages, we
> simply assign the pages where the initrd resides to the domain.  We
> can't populate those pages in the p2m as-is, otherwise we would
> shatter super pages.
>=20
> I think the fix below should do it, it's likely the best we can do.
> Can you please give it a try Marek?

With this, it's different:

    (XEN) [    4.510345] Dom0 memory allocation stats:
    (XEN) [    4.513110] order  0 allocations: 1
    (XEN) [    4.515847] order  1 allocations: 1
    (XEN) [    4.518593] order  2 allocations: 2
    (XEN) [    4.521329] order  3 allocations: 2
    (XEN) [    4.524076] order  4 allocations: 1
    (XEN) [    4.526799] order  5 allocations: 1
    (XEN) [    4.529518] order  6 allocations: 1
    (XEN) [    4.532118] order  7 allocations: 2
    (XEN) [    4.534807] order  8 allocations: 2
    (XEN) [    4.537483] order  9 allocations: 1
    (XEN) [    4.540052] order 10 allocations: 2
    (XEN) [    4.542618] order 11 allocations: 2
    (XEN) [    4.545276] order 12 allocations: 1
    (XEN) [    4.547949] order 13 allocations: 1
    (XEN) [    4.550501] order 14 allocations: 1
    (XEN) [    4.553147] order 15 allocations: 1
    (XEN) [    5.393487] ELF: phdr: paddr=3D0x200000 memsz=3D0x1ff3928
    (XEN) [    5.396196] ELF: phdr: paddr=3D0x2200000 memsz=3D0x1c00000
    (XEN) [    5.398891] ELF: memory: 0x200000 -> 0x3e00000
    (XEN) [    5.401592] ELF: note: PHYS32_RELOC align: 0x200000 min: 0x200=
000 max: 0x3fffffff
    (XEN) [    5.404632] ELF: note: PHYS32_ENTRY =3D 0x16a2ca0
    (XEN) [    5.407695] ELF: note: GUEST_OS =3D "linux"
    (XEN) [    5.410748] ELF: note: GUEST_VERSION =3D "2.6"
    (XEN) [    5.413810] ELF: note: XEN_VERSION =3D "xen-3.0"
    (XEN) [    5.416891] ELF: note: VIRT_BASE =3D 0xffffffff80000000
    (XEN) [    5.419976] ELF: note: INIT_P2M =3D 0x8000000000
    (XEN) [    5.423062] ELF: note: ENTRY =3D 0xffffffff82d3c160
    (XEN) [    5.426155] ELF: note: FEATURES =3D "!writable_page_tables"
    (XEN) [    5.429260] ELF: note: PAE_MODE =3D "yes"
    (XEN) [    5.432343] ELF: note: L1_MFN_VALID
    (XEN) [    5.434952] ELF: note: MOD_START_PFN =3D 0x1
    (XEN) [    5.437975] ELF: note: PADDR_OFFSET =3D 0
    (XEN) [    5.440928] ELF: note: SUPPORTED_FEATURES =3D 0x8801
    (XEN) [    5.443871] ELF: note: LOADER =3D "generic"
    (XEN) [    5.446785] ELF: note: SUSPEND_CANCEL =3D 0x1
    (XEN) [    5.449696] ELF: Found PVH image
    (XEN) [    5.452574] ELF: addresses:
    (XEN) [    5.455002]     virt_base        =3D 0x0
    (XEN) [    5.457569]     elf_paddr_offset =3D 0x0
    (XEN) [    5.460102]     virt_offset      =3D 0x0
    (XEN) [    5.462569]     virt_kstart      =3D 0x200000
    (XEN) [    5.465049]     virt_kend        =3D 0x3e00000
    (XEN) [    5.467515]     virt_entry       =3D 0x16a2ca0
    (XEN) [    5.469983]     p2m_base         =3D 0x8000000000
    (XEN) [    5.472465] ELF: phdr 0 at 0x200000 -> 0x21f3928
    (XEN) [    5.480548] ELF: phdr 1 at 0x2200000 -> 0x3e00000
    (XEN) [    5.487915] Unable to find a memory region to load initrd and =
metadata
    (XEN) [    5.490466] Failed to load Dom0 kernel
    (XEN) [    5.492954]=20
    (XEN) [    5.495266] ****************************************
    (XEN) [    5.497755] Panic on CPU 0:
    (XEN) [    5.500065] Could not construct d0
    (XEN) [    5.502470] ****************************************
    (XEN) [    5.504897]=20
    (XEN) [    5.507134] Reboot in five seconds...
    (XEN) [   10.517191] Resetting with ACPI MEMORY or I/O RESET_REG.

FWIW memory map is in the full console dump linked earlier.

I'll test the other patch next.

> ---
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 0b467fd4a4fc..8e3cb5d0db76 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -343,7 +343,7 @@ unsigned long __init dom0_compute_nr_pages(
> =20
>      for_each_node_mask ( node, dom0_nodes )
>          avail +=3D avail_domheap_pages_region(node, 0, 0) +
> -                 initial_images_nrpages(node);
> +                 is_pv_domain(d) ? initial_images_nrpages(node) : 0;
> =20
>      /* Reserve memory for further dom0 vcpu-struct allocations... */
>      avail -=3D (d->max_vcpus - 1UL)
>=20

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmPmY8ACgkQ24/THMrX
1yygMwf+OViSapZ+FzO33whx5jKuHIuzKPziLofD8wwQkpUNqoGMfKA/QtJcgq8A
29SmyRRMvVjt6Xd8Rgc6a0nJBKOjmuli9NIiaPJ5Yvy0TLBHb7uGG0ypo8RwfM1b
wjrsm3v0bpyD2dzbN7mgBpywFtdNwgzGqHiFE7BPdd1nIEf+Z61ilqP/ygbFKIBf
kM7Mjlf0hPplMvxloqw8LeZ/ewI1SOepEuXpN4/wK8tO2kYtwPtZriq1dqhjaB3O
RXFFSQzNnhgTSIoLkXdrEXPWtSEmoaTwT+N/GuZA8mBMIY1oUH2ZJ9SS3VM6j+zz
IPa3jFF4lkXDcEn/U3xuUhF+b/qcrw==
=Qgaz
-----END PGP SIGNATURE-----

--JsQupDVTPitSrll8--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 21:46:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 21:46:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231894.1536817 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr0za-0004eV-82; Fri, 13 Feb 2026 21:46:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231894.1536817; Fri, 13 Feb 2026 21: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 1vr0za-0004eO-4Z; Fri, 13 Feb 2026 21:46:26 +0000
Received: by outflank-mailman (input) for mailman id 1231894;
 Fri, 13 Feb 2026 21: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=9cwp=AR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vr0zY-0004eI-Cf
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 21:46:24 +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 6d084236-0925-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 22:46:18 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id AA5F243CDC;
 Fri, 13 Feb 2026 21:46:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id A146EC116C6;
 Fri, 13 Feb 2026 21:46: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: 6d084236-0925-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771019176;
	bh=KFPScMimbqg2ZskFFSMcwPtRwgWkT2VJuTcbSbUOl8Y=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=cilrmGdABoyoAdmwP3XIyRsycGXnD7MdwvfsS+FcpB6L7XrcbCNDJuq5xLk1yaeE2
	 yRvn+PgjPP3DszhuYFbMQQ/9OY1D9Fv4CqC4Yk7dzSNjWW5gfUla8uSkR/WjI8AZgy
	 HViNOBwwgUbE576vZbilEketW6Q4CXrkAWVF5t4YkbO99dU7iI/7IG1ahh7PrtHh03
	 IQ5Xv5Qqcj10AniF9opXYrzW4z8gP1NyfpjxmxNHK4D0xOF/fZdPAe8M7wWoGMHMbe
	 kWeI7R4vG81jep5JQfV5eso0ab/7WvBMBo48iwya6V7gOUhKGY8VWw+aP9fuZ77DbC
	 PGKuUMJnFTv3g==
Date: Fri, 13 Feb 2026 13:46:14 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, roger.pau@citrix.com, 
    andrew.cooper3@citrix.com, jason.andryuk@amd.com, 
    alejandro.garciavallejo@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
In-Reply-To: <7a3b72b4-23f9-410f-8d0d-08d9adaaf1a7@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602131342090.6031@ubuntu-linux-20-04-desktop>
References: <20260206210554.126443-1-stefano.stabellini@amd.com> <7a3b72b4-23f9-410f-8d0d-08d9adaaf1a7@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, 9 Feb 2026, Jan Beulich wrote:
> On 06.02.2026 22:05, Stefano Stabellini wrote:
> > --- a/xen/arch/x86/hvm/Kconfig
> > +++ b/xen/arch/x86/hvm/Kconfig
> > @@ -92,4 +92,14 @@ config MEM_SHARING
> >  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
> >  	depends on INTEL_VMX
> >  
> > +config NESTED_VIRT
> > +	bool "Nested virtualization support"
> > +	depends on AMD_SVM || INTEL_VMX
> 
> Should be HVM? Or else have separate NESTED_SVM and NESTED_VMX?
> 
> > +	default n
> 
> Please omit such a redundant line.

done and done

> > --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> > +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> > @@ -26,6 +26,13 @@
> >  #define nsvm_efer_svm_enabled(v) \
> >      (!!((v)->arch.hvm.guest_efer & EFER_SVME))
> >  
> > +#define NSVM_INTR_NOTHANDLED     3
> > +#define NSVM_INTR_NOTINTERCEPTED 2
> > +#define NSVM_INTR_FORCEVMEXIT    1
> > +#define NSVM_INTR_MASKED         0
> 
> It feels suspicious that all of these need moving ...
> 
> > +#ifdef CONFIG_NESTED_VIRT
> 
> ... ahead of this.

Not needed anymore


> > --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> > +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> > @@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
> >  /* Nested HVM on/off per domain */
> >  static inline bool nestedhvm_enabled(const struct domain *d)
> >  {
> > -    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
> > +    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
> > +           (d->options & XEN_DOMCTL_CDF_nested_virt);
> >  }
> >  
> > +/* Nested paging */
> > +#define NESTEDHVM_PAGEFAULT_DONE       0
> > +#define NESTEDHVM_PAGEFAULT_INJECT     1
> > +#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> > +#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> > +#define NESTEDHVM_PAGEFAULT_MMIO       4
> > +#define NESTEDHVM_PAGEFAULT_RETRY      5
> > +#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> > +
> > +#ifdef CONFIG_NESTED_VIRT
> 
> Same here.

the stub nestedhvm_hap_nested_page_fault() returns
NESTEDHVM_PAGEFAULT_L0_ERROR, so these defines must be available
unconditionally.


> > --- a/xen/arch/x86/mm/hap/Makefile
> > +++ b/xen/arch/x86/mm/hap/Makefile
> > @@ -2,5 +2,5 @@ obj-y += hap.o
> >  obj-y += guest_walk_2.o
> >  obj-y += guest_walk_3.o
> >  obj-y += guest_walk_4.o
> > -obj-y += nested_hap.o
> > -obj-$(CONFIG_INTEL_VMX) += nested_ept.o
> > +obj-$(CONFIG_NESTED_VIRT) += nested_hap.o
> > +obj-$(filter $(CONFIG_NESTED_VIRT),$(CONFIG_INTEL_VMX)) += nested_ept.o
> 
> Maybe slightly easier to read as
> 
> nested-y := nested_hap.o
> nested-$(CONFIG_INTEL_VMX) += nested_ept.o
> obj-$(CONFIG_NESTED_VIRT) += $(nested-y)

OK
    

> > --- a/xen/arch/x86/sysctl.c
> > +++ b/xen/arch/x86/sysctl.c
> > @@ -103,6 +103,8 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
> >          pi->capabilities |= XEN_SYSCTL_PHYSCAP_hap;
> >      if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
> >          pi->capabilities |= XEN_SYSCTL_PHYSCAP_shadow;
> > +    if ( hvm_nested_virt_supported() )
> > +        pi->capabilities |= XEN_SYSCTL_PHYSCAP_nestedhvm;
> >  }
> >  
> >  long arch_do_sysctl(
> > --- a/xen/include/public/sysctl.h
> > +++ b/xen/include/public/sysctl.h
> > @@ -100,9 +100,11 @@ struct xen_sysctl_tbuf_op {
> >  /* Xen supports the Grant v1 and/or v2 ABIs. */
> >  #define XEN_SYSCTL_PHYSCAP_gnttab_v1     (1u << 8)
> >  #define XEN_SYSCTL_PHYSCAP_gnttab_v2     (1u << 9)
> > +/* The platform supports nested HVM. */
> > +#define XEN_SYSCTL_PHYSCAP_nestedhvm     (1u << 10)
> 
> Doesn't this want introducing up front, for the tool stack to make use of?

What do you mean by "up front" in this context? In a separate toolstack
patch?


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 21:49:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 21:49:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231903.1536829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr12N-0005GY-Ki; Fri, 13 Feb 2026 21:49:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231903.1536829; Fri, 13 Feb 2026 21:49:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr12N-0005GR-Gq; Fri, 13 Feb 2026 21:49:19 +0000
Received: by outflank-mailman (input) for mailman id 1231903;
 Fri, 13 Feb 2026 21:49: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=Y0jx=AR=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vr12M-0005GL-BP
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 21:49:18 +0000
Received: from fout-a3-smtp.messagingengine.com
 (fout-a3-smtp.messagingengine.com [103.168.172.146])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d4f1dbb5-0925-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 22:49:12 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id 4EED7EC0053;
 Fri, 13 Feb 2026 16:49:11 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Fri, 13 Feb 2026 16:49:11 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 13 Feb 2026 16:49:10 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d4f1dbb5-0925-11f1-9ccf-f158ae23cfc8
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=1771019351;
	 x=1771105751; bh=uFxZUYKidy9G3wI7ub9tn8R9QXzhn4ORbEiZ+gPQ2PE=; b=
	uhWkBlNmkoxKar+s1I4bxcerH5hAgK3ULXJmVpRKPUdO+iPageop3aFLv7TrliBc
	rl+SIpFO6xeNIQt7eTaKzt60KFSeS+xo/f7c6K0Wo2wg0pcWXWTjsSFhj2IhK/e0
	k668MJGP8OlaV/QIt+qXzNblqWkgnmiTTYLswz67Eecq0Rd9Yo7T76cGzQWMlIdv
	GCDt91aYwz4gQewIE//SFAtIBQw/KtchD22WzLXQlcS2MciAWGH7+XXKL8sUyBTF
	V+QCUmgjrh6UUEiXCfc2sb+u0J/VuWg+v7sI8SREcr+UcM0VcE+Wta7a3A+6Fn5h
	br4CM8k9GQNzkNShsN226w==
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=
	1771019351; x=1771105751; bh=uFxZUYKidy9G3wI7ub9tn8R9QXzhn4ORbEi
	Z+gPQ2PE=; b=pyL5sGxEnJnWFjIlyjj+bpYAzY3GrSK4B0G3c3bQvIzD9K3dJI3
	VDB9BGs57dRH4ZGhl+0zG7HGA4AOGDok1zrJ0ZKSuT8IececKCJUJ1Q537yP3rOu
	uXAHm1pL6kGKnZqsJ5WxfoaxqjaMj7EateZdjyQnOO+662A+NyFqAWDlgRRrreYH
	howjo+ZfMrgBMJkBzL1i83bd4XfwX3/FNeSlFxz7Bri3nUq/cWdpMtFtK9/dUqnp
	/hwekLf/1Q5L7thEk5wKFSy0qimW4iVZHNVBJtS9On0G81kduWWryxCG7tuVA0wP
	cbhZsZkDlEUu6gQgyMGvPcynveBFgdrV7Iw==
X-ME-Sender: <xms:V5yPadkPclBz3FOyqxgqMvK3odC4ujZjDaqHap5TLdvzGUyyqTbDbg>
    <xme:V5yPaQStqzbgyslVK1Bz27eof-BmVDfzDASLfWW5lDH_CjsLYQNWMdViTrz4XC2oK
    UuvyXgQYdLw2-P-SbCxhzblx3Tee8QV7PI6jBZOS6Q4nyOWCJ8>
X-ME-Received: <xmr:V5yPaRBLuLDhwALmQkFTrcqk2ZpMSeAIzJXSL88683pOyCadf5K3lMOAYeV14MOSPMUxlaDOVFPCYv1UIVSZX6_XYh6xJt7WAcg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvtdelfeejucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepueekteet
    gefggfekudehteegieeljeejieeihfejgeevhfetgffgteeuteetueetnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep
    mhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrg
    gsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphht
    thhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprhgtphhtthhopehjsggvuh
    hlihgthhesshhushgvrdgtohhmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishht
    shdrgigvnhhprhhojhgvtghtrdhorhhg
X-ME-Proxy: <xmx:V5yPaXTZcs1qb8ojSQXOYZMID0fs1rQwiDMqIzA4njCbC_Ro3CCrCA>
    <xmx:V5yPafpJliKMUjC8wwLR5RQzJvqKWJmqDa17hWtsT50EQ8y63xEVAg>
    <xmx:V5yPaZycfcniAHL7GvzL-L5AOiAC7z6BdM_KuyeTOyQAfb6bHXyIeQ>
    <xmx:V5yPaULg0rrlsVLYukOLulW1AgPHmlFu7h4zAsPnYbwSmXT1mGgF3g>
    <xmx:V5yPaXMLxYDHUCfLRtE_6Qpau_0hrfcj9wY2EVyZhdVjmD3nCCDbS7qu>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 13 Feb 2026 22:49:08 +0100
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: Cannot boot PVH dom0 with big initrd
Message-ID: <aY-cVHLqLk2BqsnC@mail-itl>
References: <aY6iVr990vWeO2p5@mail-itl>
 <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com>
 <aY9Jt1-jCWhStcxB@Mac.lan>
 <aY-MPz-HpZVkmhob@Mac.lan>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Y9wcupkv4ec30jr7"
Content-Disposition: inline
In-Reply-To: <aY-MPz-HpZVkmhob@Mac.lan>


--Y9wcupkv4ec30jr7
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 13 Feb 2026 22:49:08 +0100
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: Cannot boot PVH dom0 with big initrd

On Fri, Feb 13, 2026 at 09:40:31PM +0100, Roger Pau Monn=C3=A9 wrote:
> On Fri, Feb 13, 2026 at 04:56:39PM +0100, Roger Pau Monn=C3=A9 wrote:
> > On Fri, Feb 13, 2026 at 09:56:42AM +0100, Jan Beulich wrote:
> > > On 13.02.2026 05:02, Marek Marczykowski-G=C3=B3recki wrote:
> > > > Hi,
> > > >=20
> > > > After fixing the xhci crash, I hit another issue - booting with 236=
MB
> > > > initrd doesn't work, I get:
> > > >=20
> > > >     (XEN) [    3.151856] *** Building a PVH Dom0 ***
> > > >     ...
> > > >     (XEN) [    3.593940] Unable to allocate memory with order 0!
> > > >     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
> > > >     (XEN) [    3.599884]=20
> > > >     (XEN) [    3.602482] ****************************************
> > > >     (XEN) [    3.605272] Panic on CPU 0:
> > > >     (XEN) [    3.607928] Could not construct d0
> > > >     (XEN) [    3.610692] ****************************************
> > > >     (XEN) [    3.613463]=20
> > > >     (XEN) [    3.616035] Reboot in five seconds...
> > > >     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_RE=
G.
> > > >=20
> > > > Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f2=
899781755762f565
> > > >=20
> > > > If I skip initrd, then it boots just fine (but dom0 is not happy ab=
out
> > > > that). 164MB initrd failed too, but 13MB started ok.
> > > > Just in case, I tried skipping XHCI console, but it didn't change
> > > > anything.
> > > >=20
> > > > Host has 16GB of memory, and there is no dom0_mem=3D parameter. Xen=
 is
> > > > started from GRUB, using MB2+EFI.
> > >=20
> > > Hmm, yes, there's an ordering issue: Of course we free initrd space (=
as used
> > > for passing from the boot loader to Xen) only after copying to the de=
signated
> > > guest area. Yet dom0_compute_nr_pages(), intentionally, includes the =
space in
> > > its calculation (adding initial_images_nrpages()'s return value). PV =
Dom0
> > > isn't affected because to load huge initrd there, the kernel has to r=
equest
> > > the initrd to not be mapped into the initial allocation.
> >=20
> > Right, on PV dom0 we do not copy the image to a new set of pages, we
> > simply assign the pages where the initrd resides to the domain.  We
> > can't populate those pages in the p2m as-is, otherwise we would
> > shatter super pages.
> >=20
> > I think the fix below should do it, it's likely the best we can do.
> > Can you please give it a try Marek?
> >=20
> > Thanks, Roger.
> > ---
> > diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> > index 0b467fd4a4fc..8e3cb5d0db76 100644
> > --- a/xen/arch/x86/dom0_build.c
> > +++ b/xen/arch/x86/dom0_build.c
> > @@ -343,7 +343,7 @@ unsigned long __init dom0_compute_nr_pages(
> > =20
> >      for_each_node_mask ( node, dom0_nodes )
> >          avail +=3D avail_domheap_pages_region(node, 0, 0) +
> > -                 initial_images_nrpages(node);
> > +                 is_pv_domain(d) ? initial_images_nrpages(node) : 0;
> > =20
> >      /* Reserve memory for further dom0 vcpu-struct allocations... */
> >      avail -=3D (d->max_vcpus - 1UL)
>=20
> I'm working on a more complex patch, that attempts to account the
> memory used by the init images towards the reserved amount that's kept
> by Xen.  This should make accounting a bit better, in that we won't
> end up reserving the Xen memory plus the memory used by the init
> images.
>=20
> It's still however a WIP, but would you mind giving it a try?

This one worked :)

    (XEN) [    4.014243] Dom0 memory allocation stats:
    (XEN) [    4.017378] order  0 allocations: 4
    (XEN) [    4.020111] order  1 allocations: 3
    (XEN) [    4.022758] order  2 allocations: 4
    (XEN) [    4.025406] order  3 allocations: 4
    (XEN) [    4.028150] order  4 allocations: 3
    (XEN) [    4.030886] order  5 allocations: 2
    (XEN) [    4.033602] order  6 allocations: 2
    (XEN) [    4.036305] order  7 allocations: 6
    (XEN) [    4.039020] order  8 allocations: 6
    (XEN) [    4.041597] order  9 allocations: 5
    (XEN) [    4.044261] order 10 allocations: 9
    (XEN) [    4.046831] order 11 allocations: 7
    (XEN) [    4.049493] order 12 allocations: 9
    (XEN) [    4.052147] order 13 allocations: 7
    (XEN) [    4.054799] order 14 allocations: 6
    (XEN) [    4.057447] order 15 allocations: 7
    (XEN) [    4.060080] order 16 allocations: 7
    (XEN) [    4.062609] order 17 allocations: 5
    (XEN) [    4.065227] order 18 allocations: 9
    (XEN) [    4.921719] ELF: phdr: paddr=3D0x200000 memsz=3D0x1ff3928
    (XEN) [    4.924403] ELF: phdr: paddr=3D0x2200000 memsz=3D0x1c00000
    (XEN) [    4.927079] ELF: memory: 0x200000 -> 0x3e00000
    (XEN) [    4.929759] ELF: note: PHYS32_RELOC align: 0x200000 min: 0x200=
000 max: 0x3fffffff
    (XEN) [    4.932884] ELF: note: PHYS32_ENTRY =3D 0x16a2ca0
    (XEN) [    4.935921] ELF: note: GUEST_OS =3D "linux"
    (XEN) [    4.938953] ELF: note: GUEST_VERSION =3D "2.6"
    (XEN) [    4.942005] ELF: note: XEN_VERSION =3D "xen-3.0"
    (XEN) [    4.945077] ELF: note: VIRT_BASE =3D 0xffffffff80000000
    (XEN) [    4.948133] ELF: note: INIT_P2M =3D 0x8000000000
    (XEN) [    4.951203] ELF: note: ENTRY =3D 0xffffffff82d3c160
    (XEN) [    4.954221] ELF: note: FEATURES =3D "!writable_page_tables"
    (XEN) [    4.957229] ELF: note: PAE_MODE =3D "yes"
    (XEN) [    4.960175] ELF: note: L1_MFN_VALID
    (XEN) [    4.962775] ELF: note: MOD_START_PFN =3D 0x1
    (XEN) [    4.965675] ELF: note: PADDR_OFFSET =3D 0
    (XEN) [    4.968540] ELF: note: SUPPORTED_FEATURES =3D 0x8801
    (XEN) [    4.971420] ELF: note: LOADER =3D "generic"
    (XEN) [    4.974303] ELF: note: SUSPEND_CANCEL =3D 0x1
    (XEN) [    4.977186] ELF: Found PVH image
    (XEN) [    4.979910] ELF: addresses:
    (XEN) [    4.982237]     virt_base        =3D 0x0
    (XEN) [    4.984694]     elf_paddr_offset =3D 0x0
    (XEN) [    4.987141]     virt_offset      =3D 0x0
    (XEN) [    4.989599]     virt_kstart      =3D 0x200000
    (XEN) [    4.992044]     virt_kend        =3D 0x3e00000
    (XEN) [    4.994498]     virt_entry       =3D 0x16a2ca0
    (XEN) [    4.996966]     p2m_base         =3D 0x8000000000
    (XEN) [    4.999415] ELF: phdr 0 at 0x200000 -> 0x21f3928
    (XEN) [    5.007160] ELF: phdr 1 at 0x2200000 -> 0x3e00000
    (XEN) [    5.055448] Dom0 memory map:
    (XEN) [    5.057763]  [0000000000000000, 000000000009efff] (usable)
    (XEN) [    5.060281]  [000000000009f000, 00000000000fffff] (reserved)
    (XEN) [    5.062812]  [0000000000100000, 000000005471afff] (usable)
    (XEN) [    5.065324]  [000000005471b000, 000000005475bfff] (reserved)
    (XEN) [    5.067891]  [000000005475c000, 0000000063c2dfff] (usable)
    (XEN) [    5.070446]  [0000000063c2e000, 000000006d17afff] (reserved)
    (XEN) [    5.073036]  [000000006d17b000, 000000006d22bfff] (ACPI data)
    (XEN) [    5.075649]  [000000006d22c000, 000000006d2ebfff] (ACPI NVS)
    (XEN) [    5.078267]  [000000006d2ec000, 000000006fffefff] (reserved)
    (XEN) [    5.080908]  [000000006ffff000, 000000006ffffdcb] (usable)
    (XEN) [    5.083560]  [000000006ffffdcc, 000000006ffffe97] (ACPI data)
    (XEN) [    5.086243]  [0000000070000000, 00000000807fffff] (reserved)
    (XEN) [    5.088943]  [00000000c0000000, 00000000cfffffff] (reserved)
    (XEN) [    5.091662]  [00000000fe000000, 00000000fe010fff] (reserved)
    (XEN) [    5.094413]  [00000000fec00000, 00000000fec00fff] (reserved)
    (XEN) [    5.097193]  [00000000fed00000, 00000000fed00fff] (reserved)
    (XEN) [    5.099976]  [00000000fed20000, 00000000fed7ffff] (reserved)
    (XEN) [    5.102779]  [00000000fee00000, 00000000fee00fff] (reserved)
    (XEN) [    5.105615]  [00000000ff000000, 00000001023fffff] (reserved)
    (XEN) [    5.108487]  [0000000102400000, 000000045c89cfff] (usable)
    (XEN) [    5.111354]  [000000045c89d000, 000000047f7fffff] (unusable)
    (XEN) [    5.114263] Initial low memory virq threshold set at 0x4000 pa=
ges.
    (XEN) [    5.117108] Scrubbing Free RAM in background

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmPnFQACgkQ24/THMrX
1yytRwf8CbkE+uwZMD5qsnWWXFu72COmXFjCJCoEOQUvb/0PkFXxuFzOgX7oK2fF
zEY0KfyRUxje8lo5SsM2zhWkXAZL24L/F9EdVVU7TgbFkIe1lewbrOpdHGFxlXTu
nGkgDewq4gDufxMaXXFbZ9UksvY+cFNJqc8yE4fsFltC1GBy5HREPVtqQpLJl+0B
YJuy9wdXPQHMfTg6BPskiEaN3pAz6++0O1Hw1gEcEekBCF/StjcejGb6/dztVF5I
w5NlUf9rmCHH1eYYDknbQEPHBVECt04bH+35+ym3/7f2hQ2s+/hQOoATyGq58xRg
H7sIXo76fREm4uWOp9d88DjmCuEE0A==
=OOSS
-----END PGP SIGNATURE-----

--Y9wcupkv4ec30jr7--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 21:56:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 21:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231916.1536838 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr19Y-0006sF-HB; Fri, 13 Feb 2026 21:56:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231916.1536838; Fri, 13 Feb 2026 21:56: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 1vr19Y-0006s8-DR; Fri, 13 Feb 2026 21:56:44 +0000
Received: by outflank-mailman (input) for mailman id 1231916;
 Fri, 13 Feb 2026 21:56: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=9cwp=AR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vr19X-0006s2-II
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 21:56: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 deb8e4f0-0926-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 22:56:38 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 9D7DD6001A;
 Fri, 13 Feb 2026 21:56:36 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 783DCC116C6;
 Fri, 13 Feb 2026 21:56: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: deb8e4f0-0926-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771019796;
	bh=ApnKDW/C9ceLNi28JGt4sWG/r+kvsTuZZlW0Yx461hk=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=LWlytEOmdCGiAAOKZLOS7ooW/EcpT7tNiEnwpxfSanQYFm50Ajz6TTEHjT4d/8azK
	 X8ffosQAycz1kdxBjgU+p4XAQWwhZYOWeqZ32rhHYH9dzUOvXOzpR3200BybyTlRre
	 afSVh50htHIk48rOxjabZPBb54lAdYduiy2g9oI8kytItAceBpksaSU2Wv+f/iQ+LE
	 cs8F2A+FFuQ/U3RLbORH181RLPL7QJZrmAZZ9R0JXaW2VKXw2Ocw6mR0dx/OhH6hG3
	 +0bjzRgx7Iva97QnvPszcX/6lwBSsBTixKYKdgwz+oJDgH1vcXRFm7xo8eZ6Y8HCWb
	 6El3aRJtONOLg==
Date: Fri, 13 Feb 2026 13:56:34 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    xen-devel@lists.xenproject.org, jbeulich@suse.com, 
    andrew.cooper3@citrix.com, jason.andryuk@amd.com, 
    alejandro.garciavallejo@amd.com
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
In-Reply-To: <aYnAGQa56yvDoN0M@Mac.lan>
Message-ID: <alpine.DEB.2.22.394.2602131350040.6031@ubuntu-linux-20-04-desktop>
References: <20260206210554.126443-1-stefano.stabellini@amd.com> <aYnAGQa56yvDoN0M@Mac.lan>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-324736620-1771019588=:6031"
Content-ID: <alpine.DEB.2.22.394.2602131353150.6031@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-324736620-1771019588=:6031
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2602131353151.6031@ubuntu-linux-20-04-desktop>

I address all other comments


On Mon, 9 Feb 2026, Roger Pau Monné wrote:
> > +static inline int nvmx_msr_read_intercept(unsigned int msr, u64
> > *msr_content)
> > +{
> > +    ASSERT_UNREACHABLE();
> > +    return 0;
> > +}
> >
> I think this function is reachable even when nested virt is not
> enabled:
> 
> vmx_msr_read_intercept() -> case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_VMFUNC -> nvmx_msr_read_intercept()
> 
> I'm also confused about why the function returns 0 instead of an error
> when !nestedhvm_enabled().  We should probably make it return -ENODEV
> when nested virt is not available or enabled.

I agree on the way of thinking but if we return zero it will goto gp_fault.
So I'll just remove ASSERT_UNREACHABLE.


> > +static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
> > +                                       unsigned int exit_reason)
> > +{
> > +    ASSERT_UNREACHABLE();
> > +    return 0;
> > +}
> 
> Same here, I think this is likely reachable from vmx_vmexit_handler(),
> and shouldn't assert?
> 
> It should also do something like:
> 
>     hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
>     return X86EMUL_EXCEPTION;
> 
> So it mimics what the function itself does when !nestedhvm_enabled().

hvm_inject_hw_exception cannot be easily called here because it is not
available at this point in the header. But actually this function should
be unreachable because when !CONFIG_NESTED_VIRT, CR4.VMXE is not
a valid guest CR4 bit, so nested VMX instructions should cause #UD?

I changed it to:

ASSERT_UNREACHABLE();
return X86EMUL_EXCEPTION;
--8323329-324736620-1771019588=:6031--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 22:02:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 22:02:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231926.1536848 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1F0-00007R-4C; Fri, 13 Feb 2026 22:02:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231926.1536848; Fri, 13 Feb 2026 22:02: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 1vr1F0-00007I-1T; Fri, 13 Feb 2026 22:02:22 +0000
Received: by outflank-mailman (input) for mailman id 1231926;
 Fri, 13 Feb 2026 22: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=S4o5=AR=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vr1Ey-00007B-JE
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 22:02:20 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a88bb750-0927-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 23:02:17 +0100 (CET)
Received: from SN6PR08CA0013.namprd08.prod.outlook.com (2603:10b6:805:66::26)
 by IA1PR12MB8309.namprd12.prod.outlook.com (2603:10b6:208:3fe::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Fri, 13 Feb
 2026 22:02:08 +0000
Received: from SA2PEPF00003F64.namprd04.prod.outlook.com
 (2603:10b6:805:66:cafe::d7) by SN6PR08CA0013.outlook.office365.com
 (2603:10b6:805:66::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Fri,
 13 Feb 2026 22:02:07 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00003F64.mail.protection.outlook.com (10.167.248.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 22:02:07 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 16:02:07 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 13 Feb 2026 16:02:07 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a88bb750-0927-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=c+e5v97CZ9uarsY+YnopMg5NgaIPIsdziJKjsb8HsFG8geL3G7W+u8d8UGGRGR34tIbJilWv3BHwKJgdh9tyYvU/4T12vtRj/n309LozC2r/tUgdNegTl6sQOkOiNI191+gOepkQpkftUFWLKl02hzrXDH97KwJVMHGKZr9+ATGKMdpDlj7cacqVfh+YaqKSp2J2e+2hj1zm+FyXlxFKQQagg5cKvgrNeCYMUj9ocqwOooYnZmMT8mxNLfEBfyUnGyiYGMeIMD5lZSYt2P8L+9B9GZD/zrxdSvvADX/I4l7Gyq2yp5iFejaSfyZglFQ8R520qb4Jev/bUqMJB5Jf3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Leli0UXSt5ELhBr59/cYZnLWXI4z42XtDeNb+zOzwN8=;
 b=FzbuHxTDCjza/KKroDoEzJOyM8EUB1z4jCwzOmGbKDc8yJmgrk798izI3KfnjAYN5oB6+zxLTG5z8EjFNYGE7zgohqwJEK7QSxIiysUq9Rhs3O/8gl0ln/bw4EAk5us72MjvKXYDweBVnKRT5iPMYWF2FwLi1wCEjUM/1gqB9RYi4lUyv2JINFIsmQbKP+dKv/HZ8lGPrKLeoBBUAlOfnf5HihEPsW3JLfj74X/tsK9OowXTTNh5JBJCUaB6qIIZl4cLrvCJov6lFzz1fknZfVCrHTnNwavwu//jujqeiTn9FGjAWxx8QSoD4iHSUhFB0kZewfVN+9XzESwXMYZDSg==
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=Leli0UXSt5ELhBr59/cYZnLWXI4z42XtDeNb+zOzwN8=;
 b=nR/lqKHSJuJfCyxbCFI+lBrQKJI1W/YVBQqhBAJRDsN4WhwhtSVt7ki3i7uQs3AEVO5IWBskJLeBqP69mx94MgnNWn7NFb6q+blbBfhJnO07F3mlJ7lEzQlbZO//WaWupAKd+cs/Zkjx+5CUWqWps6n0Hr7BK3pvF3le92Eldwk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <roger.pau@citrix.com>, <jbeulich@suse.com>, <andrew.cooper3@citrix.com>,
	<jason.andryuk@amd.com>, <alejandro.garciavallejo@amd.com>,
	<stefano.stabellini@amd.com>
Subject: [PATCH] x86/hvm: Add Kconfig option to disable nested virtualization
Date: Fri, 13 Feb 2026 14:02:05 -0800
Message-ID: <20260213220205.196179-1-stefano.stabellini@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: SA2PEPF00003F64:EE_|IA1PR12MB8309:EE_
X-MS-Office365-Filtering-Correlation-Id: 90290075-5d1a-4e71-d641-08de6b4b87e5
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?1wX8PPFbq5ctBTprI4ocmVCxRNYFDZwOqyExzIEFbocG32EJUgVRWjrkAkJL?=
 =?us-ascii?Q?GLbpv6BaXwtcJjA7oau81T2CxWgPTal9JAwTgznofgeD08Rcbm+QeUCR7xmV?=
 =?us-ascii?Q?XS5mTcO8URHYYenHEjpW96CoPjFuDzaWBtRMBHBX0uURZd76WcEaZ8X5elGJ?=
 =?us-ascii?Q?1875m0ODGgcdUZYqgavpHtC3p17suxGtE3qmHeFq1NGuIS7CnNfjXQlJgUmH?=
 =?us-ascii?Q?1Bg2VKesxGHOd8nI/W+4GiHf+km6zJjFeKZ/AevG5ZfNGM2r6bpRLOuzDKec?=
 =?us-ascii?Q?UPnGcw0Q9A1MmMouQZ2NnKSUlllV8WTqAlmfZrCihZb1SumwdIWXTfzOdcCe?=
 =?us-ascii?Q?B2ly3pfWQRt78aigp+3X73e47Fqmplu9fvPiljfNp06LSZjZwHGDu9WlgnSc?=
 =?us-ascii?Q?bqpWyeigdugJGWaNdL2w1e0JlqHqwN4nfwx1xVZ/wd9OJeuf+EQK/F1eJ6Ms?=
 =?us-ascii?Q?Uwmhf4H/IEqQum13V0UFrt1MZNd8JteVLLehbzaxax3uL4YkjDUfq5IoP5Al?=
 =?us-ascii?Q?p8BEtCgGzmUwFqF5m4v5liZ3DEuSyqG3SCXPBUEbyyYTzvYzKw3tepncv4C/?=
 =?us-ascii?Q?svVTo2Gue1FWMweUa3zFGOcUua6R0p5TqHFPbC47E72aV2z7jB6e3+wKMr+R?=
 =?us-ascii?Q?8WyEdaHbD+YGEaTyZ3uawrSfHR5e22JLpu4wRc6Z+xs1DiER8TVlUohN4OaM?=
 =?us-ascii?Q?gKUpkCksOL7EgbwYIcj/R5jN34UrGtb9Z80i9VES7O+N6Hjp7TJC6KlI77bZ?=
 =?us-ascii?Q?2s8LzeuabryEHtM0tyJNKaAvyiFkIR8cM4MsmUDhh4ueSZeQ146z3rLnCbu2?=
 =?us-ascii?Q?eDVvB1/G7S7i1rV/UFt8UU1TGMCh3MElJLWyv0Ye4rtAeGTsB2yDgGf9Qa8V?=
 =?us-ascii?Q?iGYDBzGQ3Kt5PbTiRh4KeHrNt/k90s4RXdIa247ifrv//wrx4B1y/a11V0Gx?=
 =?us-ascii?Q?J0rEpAa/RlI+xwNfKIvDt9uVOXZMj64GR+3S0D0f5i2oMoDJylktJtLNOZ9X?=
 =?us-ascii?Q?O/6jKfNxV3iJjFSScIldaBqoGPfPQJpVvmUw5HkbS29S28OvN/4ImOCTPhbh?=
 =?us-ascii?Q?v1s3y8altzNY5XpIkCRq7bIVprIR5LR6Z0Z2RSgKz4kLFAI7xRlhLOy02P9w?=
 =?us-ascii?Q?p2S3WHrQsZthBg3fUG3WQGeobRf77DAz3+flJS34ouVF2uzDZn4lY5iadhoB?=
 =?us-ascii?Q?nWMWpH2NBccfIhfwnh6J7AsHKnhNWwHdKA5DVOpTMstnBG0WDW42CYsqCsLZ?=
 =?us-ascii?Q?JtL3G/rm4AkrQ/u+BnU3IzI+6ESg9novrXMJf5Us2uoDmOkJy8fdqxAJZ390?=
 =?us-ascii?Q?dZ9AJ9xq4pyNWMah3dTh2ZQmPqfPSnpX8/oQvORux6WDcoq+8DhUNl9dYtze?=
 =?us-ascii?Q?ZqSSNlfCRdCAFzrypabOzzHhQ5aWFcZEpLUegVzJAgI0u/a10YDV4xjyIuh2?=
 =?us-ascii?Q?reyT4jvknMJ7AxClNAvsOTrvzn/BzgTYNVzXhCO2Kz2XjxF7DFkHFJ7AEFKS?=
 =?us-ascii?Q?DKdUgoK+Fzbvl9yNyWHYyTHzJ+qHWGp3/GfrD4juRarv9OMxkAE2HP8RnOlk?=
 =?us-ascii?Q?RgvlNOQH7zmHFnCbEbsIXiudr8YKRJl8e/O7+rwKBS/ttAJxFDlbeweJcfxZ?=
 =?us-ascii?Q?Ez7uJO06+RUBTj5EIhlg3I9PLe6M+xqS1bEtBhuEqOz33Ttmwobz1ZklJT2U?=
 =?us-ascii?Q?4cTMsA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	r4vnLcz0/0zNh2n8e9iY2UnWL4tyzNTWdqIAYjRv3kdq74o+T5Ko0hFL74lKU4+L4dqgi541KDSktOSMbGsUFzbIMuYzCwxOkVCLj/UsyT6lNkvoPcwhMN64H0P/oEvmcgISutcAZTJj037q8CumRLN0ToUwp0K74kKGcjZN2eQCakaA3ARgIG3X9WRRdB06FufE2ZCsnGasF9NhbvGek6o+fAVlcZJdzG0ujUoHgron/ckO51lTB83L7/EGYjmJ9IoXPKsfGh9WguL8OzrplTrH9ALZXGaCZGyR9pJqnxYwzytcJn30mRpeFgmSBwZPzOBCRPKADqyFsFQ4lb2dWD3SBw5DUDd7VrFNzqwIkq5OYM4fgCpK9X6oUrnrmlY83Xsz5UHsio+I+MmzBizXju/t59zrcT7h1VmoHzSH0zJVcmImE2cBaWZ8rEDAwGRS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 22:02:07.9243
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 90290075-5d1a-4e71-d641-08de6b4b87e5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F64.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8309

Introduce CONFIG_NESTED_VIRT (default n) to allow nested virtualization
support to be disabled at build time. This is useful for embedded or
safety-focused deployments where nested virtualization is not needed,
reducing code size and attack surface.

When CONFIG_NESTED_VIRT=n, the following source files are excluded:
- arch/x86/hvm/nestedhvm.c
- arch/x86/hvm/svm/nestedsvm.c
- arch/x86/hvm/vmx/vvmx.c
- arch/x86/mm/nested.c
- arch/x86/mm/hap/nested_hap.c
- arch/x86/mm/hap/nested_ept.c

Add inline stubs where needed in headers. Guard assembly code paths
for nested virt with #ifdef CONFIG_NESTED_VIRT. Move exception
injection for VMX/SVM instructions to the callers in vmx.c/svm.c to
avoid header dependency issues in the stubs.

No functional change when CONFIG_NESTED_VIRT=y.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

---
Changes in v3:
- Kconfig: Change "depends on AMD_SVM || INTEL_VMX" to "depends on HVM"
- Kconfig: Remove redundant "default n" line
- Kconfig: Remove "If unsure, say N." from help text
- mm/hap/Makefile: Simplify using intermediate nested-y variable:
    nested-y := nested_hap.o
    nested-$(CONFIG_INTEL_VMX) += nested_ept.o
    obj-$(CONFIG_NESTED_VIRT) += $(nested-y)
- svm/nestedhvm.h: Remove #ifdef CONFIG_NESTED_VIRT stubs, keep only
  function declarations (the functions are only called from code that
  is already compiled out when nested virt is disabled)
- svm/nestedhvm.h: Add CONFIG_NESTED_VIRT guard to nsvm_efer_svm_enabled
  macro to return false when nested virt is disabled
- svm/svm.c: Move #UD injection for STGI/CLGI to the caller instead of
  stub functions, checking nestedhvm_enabled()/nsvm_efer_svm_enabled()
- svm/svm.c: Mark svm_vmexit_do_vmrun/vmload/vmsave as __maybe_unused
- svm/svm.c: Remove empty nsvm_vcpu_switch stub (now guarded in asm)
- svm/entry.S: Add #ifdef CONFIG_NESTED_VIRT guards around nested virt
  specific code paths
- vmx/vmx.c: Remove empty nvmx_switch_guest stub (now guarded in asm)
- vmx/vmx.c: Move nvmx_enqueue_n2_exceptions and nvmx_vmexit_event to
  vvmx.c where they belong
- vmx/vvmx.h: Add declarations for nvmx_vmexit_event and
  nvmx_enqueue_n2_exceptions
- vmx/vvmx.h: Fix nvmx_msr_read_intercept stub comment
- vmx/vvmx.h: nvmx_handle_vmx_insn stub returns X86EMUL_EXCEPTION with
  ASSERT_UNREACHABLE (caller handles injection)
- vmx/vvmx.h: Convert get_vvmcs macro to inline function in stubs
- vmx/entry.S: Add #ifdef CONFIG_NESTED_VIRT guard around nvmx_switch_guest
- nestedhvm.h: Convert macro stubs to proper inline functions
---
 xen/arch/x86/hvm/Kconfig                 |  7 +++
 xen/arch/x86/hvm/Makefile                |  2 +-
 xen/arch/x86/hvm/svm/Makefile            |  2 +-
 xen/arch/x86/hvm/svm/entry.S             |  4 ++
 xen/arch/x86/hvm/svm/nestedhvm.h         |  2 +-
 xen/arch/x86/hvm/svm/svm.c               | 18 ++++--
 xen/arch/x86/hvm/vmx/Makefile            |  2 +-
 xen/arch/x86/hvm/vmx/entry.S             |  2 +
 xen/arch/x86/hvm/vmx/vmx.c               | 31 +---------
 xen/arch/x86/hvm/vmx/vvmx.c              | 26 +++++++++
 xen/arch/x86/include/asm/hvm/hvm.h       |  2 +-
 xen/arch/x86/include/asm/hvm/nestedhvm.h | 64 +++++++++++++++++---
 xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 74 ++++++++++++++++++++++++
 xen/arch/x86/mm/Makefile                 |  2 +-
 xen/arch/x86/mm/hap/Makefile             |  5 +-
 xen/arch/x86/mm/p2m.h                    |  6 ++
 xen/arch/x86/sysctl.c                    |  2 +
 xen/include/public/sysctl.h              |  4 +-
 18 files changed, 204 insertions(+), 51 deletions(-)

diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
index f32bf5cbb7..af661385b5 100644
--- a/xen/arch/x86/hvm/Kconfig
+++ b/xen/arch/x86/hvm/Kconfig
@@ -92,4 +92,11 @@ config MEM_SHARING
 	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
 	depends on INTEL_VMX
 
+config NESTED_VIRT
+	bool "Nested virtualization support"
+	depends on HVM
+	help
+	  Enable nested virtualization, allowing guests to run their own
+	  hypervisors. This requires hardware support.
+
 endif
diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
index f34fb03934..b8a0a68624 100644
--- a/xen/arch/x86/hvm/Makefile
+++ b/xen/arch/x86/hvm/Makefile
@@ -18,7 +18,7 @@ obj-y += irq.o
 obj-y += mmio.o
 obj-$(CONFIG_VM_EVENT) += monitor.o
 obj-y += mtrr.o
-obj-y += nestedhvm.o
+obj-$(CONFIG_NESTED_VIRT) += nestedhvm.o
 obj-y += pmtimer.o
 obj-y += quirks.o
 obj-y += rtc.o
diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefile
index 8a072cafd5..92418e3444 100644
--- a/xen/arch/x86/hvm/svm/Makefile
+++ b/xen/arch/x86/hvm/svm/Makefile
@@ -2,6 +2,6 @@ obj-y += asid.o
 obj-y += emulate.o
 obj-bin-y += entry.o
 obj-y += intr.o
-obj-y += nestedsvm.o
+obj-$(CONFIG_NESTED_VIRT) += nestedsvm.o
 obj-y += svm.o
 obj-y += vmcb.o
diff --git a/xen/arch/x86/hvm/svm/entry.S b/xen/arch/x86/hvm/svm/entry.S
index af8db23b03..7964c80750 100644
--- a/xen/arch/x86/hvm/svm/entry.S
+++ b/xen/arch/x86/hvm/svm/entry.S
@@ -28,7 +28,9 @@ FUNC(svm_asm_do_resume)
         GET_CURRENT(bx)
 .Lsvm_do_resume:
         call svm_intr_assist
+#ifdef CONFIG_NESTED_VIRT
         call nsvm_vcpu_switch
+#endif
         ASSERT_NOT_IN_ATOMIC
 
         mov  VCPU_processor(%rbx),%eax
@@ -39,6 +41,7 @@ FUNC(svm_asm_do_resume)
         cmp  %ecx,(%rdx,%rax,1)
         jne  .Lsvm_process_softirqs
 
+#ifdef CONFIG_NESTED_VIRT
         cmp  %cl,VCPU_nsvm_hap_enabled(%rbx)
 UNLIKELY_START(ne, nsvm_hap)
         cmp  %rcx,VCPU_nhvm_p2m(%rbx)
@@ -52,6 +55,7 @@ UNLIKELY_START(ne, nsvm_hap)
         sti
         jmp  .Lsvm_do_resume
 __UNLIKELY_END(nsvm_hap)
+#endif
 
         call svm_vmenter_helper
 
diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nestedhvm.h
index 9bfed5ffd7..5cb85410f8 100644
--- a/xen/arch/x86/hvm/svm/nestedhvm.h
+++ b/xen/arch/x86/hvm/svm/nestedhvm.h
@@ -24,7 +24,7 @@
 
 /* True when l1 guest enabled SVM in EFER */
 #define nsvm_efer_svm_enabled(v) \
-    (!!((v)->arch.hvm.guest_efer & EFER_SVME))
+    (IS_ENABLED(CONFIG_NESTED_VIRT) && ((v)->arch.hvm.guest_efer & EFER_SVME))
 
 int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr);
 void nestedsvm_vmexit_defer(struct vcpu *v,
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..2cabc89fb5 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2165,7 +2165,7 @@ static void svm_vmexit_do_pause(struct cpu_user_regs *regs)
     vcpu_yield();
 }
 
-static void
+static void __maybe_unused
 svm_vmexit_do_vmrun(struct cpu_user_regs *regs,
                     struct vcpu *v, uint64_t vmcbaddr)
 {
@@ -2211,7 +2211,7 @@ nsvm_get_nvmcb_page(struct vcpu *v, uint64_t vmcbaddr)
     return  page;
 }
 
-static void
+static void __maybe_unused
 svm_vmexit_do_vmload(struct vmcb_struct *vmcb,
                      struct cpu_user_regs *regs,
                      struct vcpu *v, uint64_t vmcbaddr)
@@ -2246,7 +2246,7 @@ svm_vmexit_do_vmload(struct vmcb_struct *vmcb,
     __update_guest_eip(regs, inst_len);
 }
 
-static void
+static void __maybe_unused
 svm_vmexit_do_vmsave(struct vmcb_struct *vmcb,
                      struct cpu_user_regs *regs,
                      struct vcpu *v, uint64_t vmcbaddr)
@@ -2465,6 +2465,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .get_insn_bytes       = svm_get_insn_bytes,
 
+#ifdef CONFIG_NESTED_VIRT
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
     .nhvm_vcpu_destroy = nsvm_vcpu_destroy,
     .nhvm_vcpu_reset = nsvm_vcpu_reset,
@@ -2474,6 +2475,7 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
     .nhvm_vmcx_hap_enabled = nsvm_vmcb_hap_enabled,
     .nhvm_intr_blocked = nsvm_intr_blocked,
     .nhvm_hap_walk_L1_p2m = nsvm_hap_walk_L1_p2m,
+#endif
 
     .get_reg = svm_get_reg,
     .set_reg = svm_set_reg,
@@ -3011,10 +3013,16 @@ void asmlinkage svm_vmexit_handler(void)
         svm_vmexit_do_vmsave(vmcb, regs, v, regs->rax);
         break;
     case VMEXIT_STGI:
-        svm_vmexit_do_stgi(regs, v);
+        if ( !nestedhvm_enabled(v->domain) )
+            hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
+        else
+            svm_vmexit_do_stgi(regs, v);
         break;
     case VMEXIT_CLGI:
-        svm_vmexit_do_clgi(regs, v);
+        if ( !nsvm_efer_svm_enabled(v) )
+            hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
+        else
+            svm_vmexit_do_clgi(regs, v);
         break;
 
     case VMEXIT_XSETBV:
diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makefile
index 04a29ce59d..902564b3e2 100644
--- a/xen/arch/x86/hvm/vmx/Makefile
+++ b/xen/arch/x86/hvm/vmx/Makefile
@@ -3,4 +3,4 @@ obj-y += intr.o
 obj-y += realmode.o
 obj-y += vmcs.o
 obj-y += vmx.o
-obj-y += vvmx.o
+obj-$(CONFIG_NESTED_VIRT) += vvmx.o
diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S
index 2bfee715b3..4d62efddf4 100644
--- a/xen/arch/x86/hvm/vmx/entry.S
+++ b/xen/arch/x86/hvm/vmx/entry.S
@@ -83,7 +83,9 @@ FUNC(vmx_asm_vmexit_handler)
 
 .Lvmx_do_vmentry:
         call vmx_intr_assist
+#ifdef CONFIG_NESTED_VIRT
         call nvmx_switch_guest
+#endif
         ASSERT_NOT_IN_ATOMIC
 
         mov  VCPU_processor(%rbx),%eax
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index 82c55f49ae..4e3c8018d2 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -2014,33 +2014,6 @@ static void cf_check vmx_update_guest_efer(struct vcpu *v)
         vmx_set_msr_intercept(v, MSR_EFER, VMX_MSR_R);
 }
 
-static void nvmx_enqueue_n2_exceptions(struct vcpu *v,
-            unsigned long intr_fields, int error_code, uint8_t source)
-{
-    struct nestedvmx *nvmx = &vcpu_2_nvmx(v);
-
-    if ( !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) ) {
-        /* enqueue the exception till the VMCS switch back to L1 */
-        nvmx->intr.intr_info = intr_fields;
-        nvmx->intr.error_code = error_code;
-        nvmx->intr.source = source;
-        vcpu_nestedhvm(v).nv_vmexit_pending = 1;
-        return;
-    }
-    else
-        gdprintk(XENLOG_ERR, "Double Fault on Nested Guest: exception %lx %x"
-                 "on %lx %x\n", intr_fields, error_code,
-                 nvmx->intr.intr_info, nvmx->intr.error_code);
-}
-
-static int cf_check nvmx_vmexit_event(
-    struct vcpu *v, const struct x86_event *event)
-{
-    nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
-                               hvm_intsrc_none);
-    return NESTEDHVM_VMEXIT_DONE;
-}
-
 static void __vmx_inject_exception(int trap, int type, int error_code)
 {
     unsigned long intr_fields;
@@ -2933,6 +2906,7 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .handle_cd            = vmx_handle_cd,
     .set_info_guest       = vmx_set_info_guest,
     .set_rdtsc_exiting    = vmx_set_rdtsc_exiting,
+#ifdef CONFIG_NESTED_VIRT
     .nhvm_vcpu_initialise = nvmx_vcpu_initialise,
     .nhvm_vcpu_destroy    = nvmx_vcpu_destroy,
     .nhvm_vcpu_reset      = nvmx_vcpu_reset,
@@ -2942,8 +2916,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
     .nhvm_vcpu_vmexit_event = nvmx_vmexit_event,
     .nhvm_intr_blocked    = nvmx_intr_blocked,
     .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,
+#endif
+    .update_vlapic_mode = vmx_vlapic_msr_changed,
 #ifdef CONFIG_VM_EVENT
     .enable_msr_interception = vmx_enable_msr_interception,
 #endif
diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
index 38952f0696..2bb42678c5 100644
--- a/xen/arch/x86/hvm/vmx/vvmx.c
+++ b/xen/arch/x86/hvm/vmx/vvmx.c
@@ -2821,6 +2821,32 @@ void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr)
     __vmwrite(read_shadow_field, v->arch.hvm.nvcpu.guest_cr[cr]);
 }
 
+void nvmx_enqueue_n2_exceptions(struct vcpu *v,
+            unsigned long intr_fields, int error_code, uint8_t source)
+{
+    struct nestedvmx *nvmx = &vcpu_2_nvmx(v);
+
+    if ( !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) ) {
+        /* enqueue the exception till the VMCS switch back to L1 */
+        nvmx->intr.intr_info = intr_fields;
+        nvmx->intr.error_code = error_code;
+        nvmx->intr.source = source;
+        vcpu_nestedhvm(v).nv_vmexit_pending = 1;
+        return;
+    }
+    else
+        gdprintk(XENLOG_ERR, "Double Fault on Nested Guest: exception %lx %x"
+                 "on %lx %x\n", intr_fields, error_code,
+                 nvmx->intr.intr_info, nvmx->intr.error_code);
+}
+
+int cf_check nvmx_vmexit_event(struct vcpu *v, const struct x86_event *event)
+{
+    nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
+                               hvm_intsrc_none);
+    return NESTEDHVM_VMEXIT_DONE;
+}
+
 void __init start_nested_vmx(struct hvm_function_table *hvm_function_table)
 {
     /* TODO: Require hardware support before enabling nested virt */
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59..536a38b450 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -711,7 +711,7 @@ static inline bool hvm_altp2m_supported(void)
 /* Returns true if we have the minimum hardware requirements for nested virt */
 static inline bool hvm_nested_virt_supported(void)
 {
-    return hvm_funcs.caps.nested_virt;
+    return IS_ENABLED(CONFIG_NESTED_VIRT) && hvm_funcs.caps.nested_virt;
 }
 
 #ifdef CONFIG_ALTP2M
diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/include/asm/hvm/nestedhvm.h
index ea2c1bc328..2f8209271a 100644
--- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
+++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
@@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
 /* Nested HVM on/off per domain */
 static inline bool nestedhvm_enabled(const struct domain *d)
 {
-    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
+    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
+           (d->options & XEN_DOMCTL_CDF_nested_virt);
 }
 
+/* Nested paging */
+#define NESTEDHVM_PAGEFAULT_DONE       0
+#define NESTEDHVM_PAGEFAULT_INJECT     1
+#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
+#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
+#define NESTEDHVM_PAGEFAULT_MMIO       4
+#define NESTEDHVM_PAGEFAULT_RETRY      5
+#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
+
+#ifdef CONFIG_NESTED_VIRT
+
 /* Nested VCPU */
 int nestedhvm_vcpu_initialise(struct vcpu *v);
 void nestedhvm_vcpu_destroy(struct vcpu *v);
@@ -38,14 +50,6 @@ bool nestedhvm_vcpu_in_guestmode(struct vcpu *v);
 #define nestedhvm_vcpu_exit_guestmode(v)  \
     vcpu_nestedhvm(v).nv_guestmode = 0
 
-/* Nested paging */
-#define NESTEDHVM_PAGEFAULT_DONE       0
-#define NESTEDHVM_PAGEFAULT_INJECT     1
-#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
-#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
-#define NESTEDHVM_PAGEFAULT_MMIO       4
-#define NESTEDHVM_PAGEFAULT_RETRY      5
-#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
 int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
                                     struct npfec npfec);
 
@@ -59,6 +63,48 @@ unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed);
 
 void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m);
 
+#else /* !CONFIG_NESTED_VIRT */
+
+static inline int nestedhvm_vcpu_initialise(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+    return -EOPNOTSUPP;
+}
+static inline void nestedhvm_vcpu_destroy(struct vcpu *v) { }
+static inline void nestedhvm_vcpu_reset(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline bool nestedhvm_vcpu_in_guestmode(struct vcpu *v) { return false; }
+static inline int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
+                                                  struct npfec npfec)
+{
+    ASSERT_UNREACHABLE();
+    return NESTEDHVM_PAGEFAULT_L0_ERROR;
+}
+static inline void nestedhvm_vcpu_enter_guestmode(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline void nestedhvm_vcpu_exit_guestmode(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline bool nestedhvm_paging_mode_hap(struct vcpu *v)
+{
+    return false;
+}
+static inline bool nestedhvm_vmswitch_in_progress(struct vcpu *v)
+{
+    return false;
+}
+static inline void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
+{
+    ASSERT_UNREACHABLE();
+}
+
+#endif /* CONFIG_NESTED_VIRT */
+
 static inline bool nestedhvm_is_n2(struct vcpu *v)
 {
     if ( !nestedhvm_enabled(v->domain) ||
diff --git a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
index da10d3fa96..d0c1ae29f6 100644
--- a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
+++ b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
@@ -73,6 +73,8 @@ union vmx_inst_info {
     u32 word;
 };
 
+#ifdef CONFIG_NESTED_VIRT
+
 int cf_check nvmx_vcpu_initialise(struct vcpu *v);
 void cf_check nvmx_vcpu_destroy(struct vcpu *v);
 int cf_check nvmx_vcpu_reset(struct vcpu *v);
@@ -199,5 +201,77 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga,
                         uint64_t *exit_qual, uint32_t *exit_reason);
 int nvmx_cpu_up_prepare(unsigned int cpu);
 void nvmx_cpu_dead(unsigned int cpu);
+int cf_check nvmx_vmexit_event(struct vcpu *v, const struct x86_event *event);
+void nvmx_enqueue_n2_exceptions(struct vcpu *v,
+            unsigned long intr_fields, int error_code, uint8_t source);
+
+#else /* !CONFIG_NESTED_VIRT */
+
+static inline void nvmx_update_exec_control(struct vcpu *v, u32 value)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline void nvmx_update_secondary_exec_control(struct vcpu *v,
+                                                      unsigned long value)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline void nvmx_update_exception_bitmap(struct vcpu *v,
+                                                unsigned long value)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline u64 nvmx_get_tsc_offset(struct vcpu *v)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+static inline void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline bool nvmx_intercepts_exception(struct vcpu *v, unsigned int vector,
+                                             int error_code)
+{
+    ASSERT_UNREACHABLE();
+    return false;
+}
+static inline int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
+                                         unsigned int exit_reason)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+static inline void nvmx_idtv_handling(void)
+{
+    ASSERT_UNREACHABLE();
+}
+static inline int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
+{
+    /* return 0 to trigger #GP */
+    return 0;
+}
+static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
+                                       unsigned int exit_reason)
+{
+    ASSERT_UNREACHABLE();
+    return X86EMUL_EXCEPTION;
+}
+static inline int nvmx_cpu_up_prepare(unsigned int cpu) { return 0; }
+static inline void nvmx_cpu_dead(unsigned int cpu) { }
+static inline void nvmx_enqueue_n2_exceptions(struct vcpu *v,
+            unsigned long intr_fields, int error_code, uint8_t source)
+{
+    ASSERT_UNREACHABLE();
+}
+
+static inline u64 get_vvmcs(const struct vcpu *vcpu, u32 encoding)
+{
+    ASSERT_UNREACHABLE();
+    return 0;
+}
+
+#endif /* CONFIG_NESTED_VIRT */
+
 #endif /* __ASM_X86_HVM_VVMX_H__ */
 
diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
index 960f6e8409..aa15811c2e 100644
--- a/xen/arch/x86/mm/Makefile
+++ b/xen/arch/x86/mm/Makefile
@@ -7,7 +7,7 @@ obj-$(CONFIG_SHADOW_PAGING) += guest_walk_4.o
 obj-$(CONFIG_VM_EVENT) += mem_access.o
 obj-$(CONFIG_MEM_PAGING) += mem_paging.o
 obj-$(CONFIG_MEM_SHARING) += mem_sharing.o
-obj-$(CONFIG_HVM) += nested.o
+obj-$(CONFIG_NESTED_VIRT) += nested.o
 obj-$(CONFIG_HVM) += p2m.o
 obj-y += p2m-basic.o
 obj-$(CONFIG_INTEL_VMX) += p2m-ept.o
diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile
index 67c29b2162..efdc91ea82 100644
--- a/xen/arch/x86/mm/hap/Makefile
+++ b/xen/arch/x86/mm/hap/Makefile
@@ -2,5 +2,6 @@ obj-y += hap.o
 obj-y += guest_walk_2.o
 obj-y += guest_walk_3.o
 obj-y += guest_walk_4.o
-obj-y += nested_hap.o
-obj-$(CONFIG_INTEL_VMX) += nested_ept.o
+nested-y := nested_hap.o
+nested-$(CONFIG_INTEL_VMX) += nested_ept.o
+obj-$(CONFIG_NESTED_VIRT) += $(nested-y)
diff --git a/xen/arch/x86/mm/p2m.h b/xen/arch/x86/mm/p2m.h
index 635f5a7f45..63808dddcc 100644
--- a/xen/arch/x86/mm/p2m.h
+++ b/xen/arch/x86/mm/p2m.h
@@ -25,9 +25,15 @@ void p2m_teardown_altp2m(struct domain *d);
 void p2m_flush_table_locked(struct p2m_domain *p2m);
 int __must_check p2m_remove_entry(struct p2m_domain *p2m, gfn_t gfn, mfn_t mfn,
                                   unsigned int page_order);
+#ifdef CONFIG_NESTED_VIRT
 void p2m_nestedp2m_init(struct p2m_domain *p2m);
 int p2m_init_nestedp2m(struct domain *d);
 void p2m_teardown_nestedp2m(struct domain *d);
+#else
+static inline void p2m_nestedp2m_init(struct p2m_domain *p2m) { }
+static inline int p2m_init_nestedp2m(struct domain *d) { return 0; }
+static inline void p2m_teardown_nestedp2m(struct domain *d) { }
+#endif
 
 int ept_p2m_init(struct p2m_domain *p2m);
 void ept_p2m_uninit(struct p2m_domain *p2m);
diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
index 1b04947516..b1d865e1c8 100644
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
@@ -103,6 +103,8 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
         pi->capabilities |= XEN_SYSCTL_PHYSCAP_hap;
     if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
         pi->capabilities |= XEN_SYSCTL_PHYSCAP_shadow;
+    if ( hvm_nested_virt_supported() )
+        pi->capabilities |= XEN_SYSCTL_PHYSCAP_nestedhvm;
 }
 
 long arch_do_sysctl(
diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
index 66c9b65465..b4bd1dd7b2 100644
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
@@ -100,9 +100,11 @@ struct xen_sysctl_tbuf_op {
 /* Xen supports the Grant v1 and/or v2 ABIs. */
 #define XEN_SYSCTL_PHYSCAP_gnttab_v1     (1u << 8)
 #define XEN_SYSCTL_PHYSCAP_gnttab_v2     (1u << 9)
+/* The platform supports nested HVM. */
+#define XEN_SYSCTL_PHYSCAP_nestedhvm     (1u << 10)
 
 /* Max XEN_SYSCTL_PHYSCAP_* constant.  Used for ABI checking. */
-#define XEN_SYSCTL_PHYSCAP_MAX XEN_SYSCTL_PHYSCAP_gnttab_v2
+#define XEN_SYSCTL_PHYSCAP_MAX XEN_SYSCTL_PHYSCAP_nestedhvm
 
 #if defined(__arm__) || defined(__aarch64__)
 #define XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK  (0x1FU)
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 22:23:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 22:23:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231941.1536859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1Z4-00036Y-Sp; Fri, 13 Feb 2026 22:23:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231941.1536859; Fri, 13 Feb 2026 22:23: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 1vr1Z4-00036R-Or; Fri, 13 Feb 2026 22:23:06 +0000
Received: by outflank-mailman (input) for mailman id 1231941;
 Fri, 13 Feb 2026 22:23: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=CvVf=AR=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vr1Z3-00036L-Cm
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 22:23:05 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d521e89-092a-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 23:22:59 +0100 (CET)
Received: from CH0PR03CA0317.namprd03.prod.outlook.com (2603:10b6:610:118::12)
 by PH7PR12MB7020.namprd12.prod.outlook.com (2603:10b6:510:1ba::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 22:22:50 +0000
Received: from DS3PEPF000099DC.namprd04.prod.outlook.com
 (2603:10b6:610:118:cafe::6a) by CH0PR03CA0317.outlook.office365.com
 (2603:10b6:610:118::12) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.14 via Frontend Transport; Fri,
 13 Feb 2026 22:22:30 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 DS3PEPF000099DC.mail.protection.outlook.com (10.167.17.198) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 22:22:49 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 16:22:48 -0600
Received: from [10.135.199.207] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 13 Feb 2026 16:22:45 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8d521e89-092a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VeUN6827exHayBjS5s1VZlVEyc/5kOQLC4XT52aw3sjtlie8jVgU43zcJhp/5jZPbQ7LAwcATlvOQ5CbwDXv7RHmMgW1MnsjcOkbYP9/43Sh+CBc97z7b3jrQFg5V0aPXMse/CgjPZbE168EE1P6VuUFjOCW+3w0YTjO81jVL0YjhANWWLMs1lO533MXwzSeZYndpI5WvlOz54zLR9rkLs2PxvaNaVJJ9NBwjl1jC8uE0bYBjhZTpzmv6pXy7yWea9nx6+wqUQGn7J7FeYg60NGyHesGXWipMzL670TG+jrFL8+rptxpvfAsEPYtzLGRllwprvRiRT42qywix3FHVw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A41s0md40ekXWZaCz2dvuo/qHIJ1H6YJz8Gldl36pHg=;
 b=r1oFI6hJ3gfwLHaQRzLUFDSK7iZVkw3zyNnHGIyQC73tFW5tCtDPIx+3V2keYSWMAGIB6Tf++9rZY6CnXihb0+07kCo6gW346knK4DhY6eXwwWRT4EZyi3GSYaTYQpzNOyEo6vLkeQ+JDgCF7MeMBgBtc1Og/YJgpvbQubRW15c8lAtgvo7gpfREsqkhhqY8cgw1X12nzHSUDWXH2JlTlZHlt4OcRhkIuxCyq1Eu5ZOepZpCaf4STrEAdKBezqHcmOtxGvi5q3crq/hWiBUJML1b2cNtGJMwbwkmsAfW8RrB5Xlmar8VvbCZ23zbowzBfOfbVF3+teME9JqSmZfrPA==
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=A41s0md40ekXWZaCz2dvuo/qHIJ1H6YJz8Gldl36pHg=;
 b=c6BqbcyIUb5xX5prgUIXaRs8uYaYUTS+uWbHTAXCBJJ8PqSIATQUZIlMuEVZX427Rd7cM0B6vjbgUlrw39zzdyKoN/3SZBar5DLLkCOsC2z/vBn8pqFIArfykyRKk8l0d5SZstLybQ8umwWA+Dq8bahyLedywWZ4V0BRh1JKgMM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <948645cb-d08e-4ef1-b2df-8d9786fbc1b3@amd.com>
Date: Fri, 13 Feb 2026 22:22:44 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] arm/mpu: implement setup_virt_paging for MPU system
To: Luca Fancellu <Luca.Fancellu@arm.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, 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>, Wei
 Chen <Wei.Chen@arm.com>, Hari Limaye <Hari.Limaye@arm.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-2-harry.ramsey@arm.com>
 <49fd6b8c-5a6e-4914-a3e4-80ede233ac93@amd.com>
 <044B5E7A-7DF4-46B0-B235-B4DE7FBE7E10@arm.com>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <044B5E7A-7DF4-46B0-B235-B4DE7FBE7E10@arm.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS3PEPF000099DC:EE_|PH7PR12MB7020:EE_
X-MS-Office365-Filtering-Correlation-Id: 65f605e1-93d8-4547-bccc-08de6b4e6c31
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?b1N2eGRTK1ZVV2FSbWZoQkdiSnkvWGxSWWRHcUd4RzVmbTlwSWVxWVo5Uk9K?=
 =?utf-8?B?Z0MzVFdvNTFSMm83MnJ0N2M0UUI1Vk5nOTdscjhiMTNVZnNoMXBmVEE5MDRH?=
 =?utf-8?B?TklFNmo3RldOSTMwNHhURzhIYk5FZkxwQUo4NjhJRDRqMDdKYUNleDUwZkFp?=
 =?utf-8?B?dmZ6U2xsOGlsTk5Yc1RuTTNqNDJWYzFTck9BSENtQ0ZyRDIzVVVnQnlhRDhF?=
 =?utf-8?B?VFNlTXl0RStkaWxaK2Z3QnVTTUtNZENzY0RoUENCY2VhVGRwN0dJTTBqZlBD?=
 =?utf-8?B?QlB2YlpWc1l2bmZzUlhFbGpaWXZoY2sreUxOQTYrSVcybVFSSWZuUnBibVdR?=
 =?utf-8?B?S1BaWnR1WmdnQVl6QlBUNnhoN2tHYmEwaWRCU0U2VVZxYmIxZWxmWWVaQXhp?=
 =?utf-8?B?MENnd0w5UDd1eGdCQ25ldFkxM1YzbDZhWWRmU1B3aWFENjlrbXh3S0czMXJ4?=
 =?utf-8?B?RjdEekI2SVFxVCtXQnFWV0paeWJ2SjFseVJjVFBYUFBVdVJWdFRUQWVqQ2tE?=
 =?utf-8?B?dWNmL0xidXFhOUdNeUV5K05LWDNzaUo1Y2NpWmNmaSsrdzErQ0t4aSt5S2tB?=
 =?utf-8?B?RGhmNjU1SlVUVUFzbDNWQml1WUFvUEFPM21GZU5scXE1cklKY0JVWnFwbTE0?=
 =?utf-8?B?RHl3N01sL0t2M1o2TWc3QVZPMmxTdk5pblF2YjZ4enprTGZlNGdkaVF5aG5q?=
 =?utf-8?B?bzYwVFBXSHEyc1NLZjU3ZWJsV1dVZExNenFXRGNWdmo2dE01YzRtYmJjMTdj?=
 =?utf-8?B?K3EzK3IwNmh0TnNLKzRRcHRpUkNHcGJVVCs2citWZ2UyOFg2SWFvYnNRdHRq?=
 =?utf-8?B?MlVWU3RpNWFDZWNQdXhPUm9TTUhLRTR4b0VlZXdVQ2xmcG0yR1ViK0xwRnUx?=
 =?utf-8?B?RGdXSTNQZDJSNGdUU21lVWdSUEl2am55eXBIUndIL0xRUWdnRFRBZVZQWmNL?=
 =?utf-8?B?bTk3eGZHVkwxQm50aUFoSzFsc1hzb2xPdm0rQjcxSU5rWGNUU1pPMTRyblRY?=
 =?utf-8?B?WCtCM2hVS3VOaUtoRzIwUEJ3Nk11a1FYUEh3clFWZWNITXJEc3p4dGQ1bGNW?=
 =?utf-8?B?ekNtSDdSWUd5M3c5Z0F0UHZsWXVpY3RPdldra3JlRkdraWxsMTFFOUNYYjdR?=
 =?utf-8?B?bCtsdjNsZXRiQ29qdVQxakgya1ZENVVNY2lmWVJ4NU8wNTVKM0htQzVxS0c1?=
 =?utf-8?B?YXprTnNPMno3a0l4dVM5UWNvOWhrV0I2QWw0c0xZYWc5c3hXbUhmc2ZjNGhY?=
 =?utf-8?B?dUpBVStFL1JUSGdFZlN0UVpNWjdoY1g0N1pQOTh4bklUZGJ1K01uVnpoYUdT?=
 =?utf-8?B?RVNFOU04cDBCWlFvdmlwbVFPVTlGUXVBSXpHTWloTWpRQWpDS09YYTBlNzJ4?=
 =?utf-8?B?Q0xPelpLbEFIbnBqOUR6cjg2UXZscnB1dnRpeEZYZ056TFZpbzF5cjRBa0lt?=
 =?utf-8?B?bmt6bGVJRVk0ZzN4QXVob2ttVEdTS2RqR2FlMStzUktIYk9DSDdnMjB5WmZJ?=
 =?utf-8?B?elhhMmh5c3dYMCtlcDZsQWFoVHhPeloxdWF4YTY3Nmk1MmxabmZzVWJXaFhY?=
 =?utf-8?B?RDc1a1YzcFFIWGtZYXBHVUlhYSsyOEQ2MGF1OW9Cb2lPVDBHaHZGN3BXUWhG?=
 =?utf-8?B?K3BMNmp2SlVVWHVBWCs4RCtwamQ0ci94Y3JGREFhVWx5dFRnbXYyWGhXblFV?=
 =?utf-8?B?WDMyRHlVL042RnRSOG9sbEpMTDIvRDhXaFNKNWdkWk4ydFVqbTV6KzRzT0g1?=
 =?utf-8?B?dlo3RGROWEJEK25aVXJRNVVpVkc2RU5WeUlBbjQ1T2NhNzNKYUtQTGUyTCtJ?=
 =?utf-8?B?Z2tPSUIwZEcwczVST1VMTlhBQkRhMjZSaTUyZmNvaG8wK3RNbFVBcjlBd1gx?=
 =?utf-8?B?V09nT3lZYUFXR1RxNE52ekVPejR5K3Vja3V5K0pId0NObEVCRGZLSmhPYXdp?=
 =?utf-8?B?WVUxSGNXb1RKSjFwZXVyVjNKVDZhVlI5bWZMT1AvZFBoU0dJa1FkMHg5VUY5?=
 =?utf-8?B?ZDNMTi93dDR6OGo4NGpSakhxMXk1Sm53VTBGenN3eEVrSzRRcUpWUVZWSXF1?=
 =?utf-8?B?b2NpN1FVT00vMHg1VkZRa2c4ajQ2cStiVHFnRERJOFdyZWdVb0I4MTBjRy9J?=
 =?utf-8?B?eGpTeEV0ZVFWY3pJUm9GcGROQ3B3b0t6NUdBRjQxTmlTQkFwdENaQXZGOHZE?=
 =?utf-8?B?Tkw1dmhxSnBlN3JNb291cmpiSmR4c0pZK2k4MGZUTDI1SjBXRUxNUndRWHhS?=
 =?utf-8?B?TGN4MmJwNlpnNDRIaU1FeTQzUThRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(36860700013)(82310400026);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ZMeyqIvp+FUI8R5YM4zae48J1b9+sT+dz6MeeR+CiWRvO3StKa1Q90YwvkszPxZL5ift2v3RRH5NtFNXx5C6vWCCsnJhxBk9j1rFak6mzfx/wyRltpuMK7ESJZr0Apr0CLlcOzD2Pu0UPFTOdP4rrSHIlQ10MhMl6dd/4Xx5Hd4o6q5EwyY9bOnapw8TS0pcIK4FFwChdxz3ZPrf3bSkJOJjkNTyqdAmZqg4/IeimKqhM3hEwUs5qVNQAVA4OILthV8rRP4XaBe3EfCq+G1cMsnu6QOlBH3J2KNlg3nlNpgf1Jh0FQigC5npusaS/gV48vW6uEQYvTbewVjsgMDzp7dUNXEbuQ+6ibUPqXIbzk42GTuO4ZYS+NLbciZOl6YPJPyPglnbIixkU0uE7c4dEQE5m8zkwUVDg60dxPmaDqQN6Kii6cFjtYfkkeNM8vLx
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 22:22:49.9449
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 65f605e1-93d8-4547-bccc-08de6b4e6c31
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	DS3PEPF000099DC.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7020


On 13/02/2026 09:19, Luca Fancellu wrote:
> Hi Ayan,
Hi Luca,
>
>>>     void __init setup_virt_paging(void)
>>>   {
>>> -    BUG_ON("unimplemented");
>>> +    uint64_t vtcr_el2 = READ_SYSREG(VTCR_EL2),
>> I think this register is redefined for R82 . See
>>
>> https://developer.arm.com/documentation/102670/0301/AArch64-registers/AArch64-register-descriptions/AArch64-Generic-System-control-register-description/VTCR-EL2--Virtualization-Translation-Control-Register?lang=en . So
>>
>>>   vstcr_el2 = READ_SYSREG(VSTCR_EL2);
>>> +
>>> +    /* PA size */
>>> +    const unsigned int pa_range_info[] = {32, 36, 40, 42, 44, 48, 52, 0,
>>> +                                          /* Invalid */};
>>> +
>>> +    /*
>>> +     * Restrict "p2m_ipa_bits" if needed. As P2M table is always configured
>>> +     * with IPA bits == PA bits, compare against "pabits".
>>> +     */
>>> +    if ( pa_range_info[system_cpuinfo.mm64.pa_range] < p2m_ipa_bits )
>>> +        p2m_ipa_bits = pa_range_info[system_cpuinfo.mm64.pa_range];
>>> +
>>> +    /*
>>> +     * Clear VTCR_EL2.NSA bit to configure non-secure stage 2 translation output
>>> +     * address space to access the Secure PA space as Armv8r only implements
>>> +     * secure state.
>>> +     */
>>> +    vtcr_el2 &= ~VTCR_NSA;
>> But the TRM says this
>>
>> This bit behaves as 1 for all purposes other than reading back the value of the bit when the value of AArch64-VSTCR_EL2.SA is 1.
>>
>> So shouldn't we keep it as 1.
>>
> The way I’m reading the armv8-r aarch64 reference manual [1] is that if we set
> VSTCR_EL2.SA to 0, we need to clear also this one.
>
>
>>> +
>>> +    /*
>>> +     * The MSA and MSA_frac fields in the ID_AA64MMFR0_EL1 register identify the
>>> +     * memory system configurations supported. In Armv8-R AArch64, the
>>> +     * only permitted value for ID_AA64MMFR0_EL1.MSA is 0b1111.
>>> +     */
>>> +    if ( system_cpuinfo.mm64.msa != MM64_MSA_PMSA_SUPPORT )
>>> +        goto fault;
>>> +
>>> +    /* Permitted values for ID_AA64MMFR0_EL1.MSA_frac are 0b0001 and 0b0010. */
>>> +    if ( system_cpuinfo.mm64.msa_frac == MM64_MSA_FRAC_NONE_SUPPORT )
>>> +        goto fault;
>>> +
>>> +    /*
>>> +     * cpuinfo sanitization makes sure we support 16bits VMID only if all cores
>>> +     * are supporting it.
>>> +     */
>>> +    if ( system_cpuinfo.mm64.vmid_bits == MM64_VMID_16_BITS_SUPPORT )
>>> +        max_vmid = MAX_VMID_16_BIT;
>>> +
>>> +    /* Set the VS bit only if 16 bit VMID is supported. */
>>> +    if ( max_vmid == MAX_VMID_16_BIT )
>>> +        vtcr_el2 |= VTCR_VS;
>> this field does not exist.
> yes this exists in armv8-r aarch64 [1]
>
>>> +/* Not used on MPU system */
>>>   static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
>>>     static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
>>> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
>>> index 010ce8c9eb..ed1b6dd40f 100644
>>> --- a/xen/arch/arm/include/asm/p2m.h
>>> +++ b/xen/arch/arm/include/asm/p2m.h
>>> @@ -48,8 +48,13 @@ struct p2m_domain {
>>>       /* Current VMID in use */
>>>       uint16_t vmid;
>>>   +#ifdef CONFIG_MMU
>>>       /* Current Translation Table Base Register for the p2m */
>>>       uint64_t vttbr;
>>> +#else
>>> +    /* Current Virtualization System Control Register for the p2m */
>>> +    register_t vsctlr;
>> This exist only for Arm64 MPU. Should we enclose this in ARM_64  ?
> I can see it exists in armv8-r aarch32 [2].

In that case,

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

Sorry for the false alarm.

- Ayan



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 22:26:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 22:26:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231949.1536868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1cE-0003e9-9X; Fri, 13 Feb 2026 22:26:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231949.1536868; Fri, 13 Feb 2026 22:26: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 1vr1cE-0003e2-5f; Fri, 13 Feb 2026 22:26:22 +0000
Received: by outflank-mailman (input) for mailman id 1231949;
 Fri, 13 Feb 2026 22:26: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=CvVf=AR=amd.com=ayan.kumar.halder@srs-se1.protection.inumbo.net>)
 id 1vr1cC-0003du-DE
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 22:26:20 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 03544212-092b-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 23:26:18 +0100 (CET)
Received: from BLAPR03CA0062.namprd03.prod.outlook.com (2603:10b6:208:329::7)
 by SJ2PR12MB8062.namprd12.prod.outlook.com (2603:10b6:a03:4c8::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Fri, 13 Feb
 2026 22:26:11 +0000
Received: from BL02EPF0001A100.namprd03.prod.outlook.com
 (2603:10b6:208:329:cafe::25) by BLAPR03CA0062.outlook.office365.com
 (2603:10b6:208:329::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Fri,
 13 Feb 2026 22:26:11 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0001A100.mail.protection.outlook.com (10.167.242.107) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 22:26:11 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 16:26:11 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 14:26:10 -0800
Received: from [10.135.199.207] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 13 Feb 2026 16:26:08 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 03544212-092b-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LU4+FI1Zevpm8AbEqoU1bECE6llKYdCzCuK2zYT9XbzF9ORw2X0gtmtdhxot1bM54sTZZ5bQr4yTkgpfSeNdfr0ZSh+s8O6VdlRuF7egPS6KQJc80XT9M6zrcDYtOd0Fu2+4FyvVk2b7SORedqQn3KKz3nk3NGj2DjxRxfGWqOC9c1rsDX0VANf/eZ7wBjhCxnmRsKgj7B5ah8Hr57hPvAsZ6wQmIoeuyrPhsgbwLiH2cotXyxVlH9E2jR+KU8o8NHoYPy14SpT3+QL2xOZ01TgX+nirIkiU1fSGvgVJtmthNhSUAlpcZY4OT5T4PiGpvqPzoStal/GItBlcyYcuuQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=41vI2baCxNv2Q6M9bPOvw/AKlYobI0hvttsQBN2B+qU=;
 b=JoHJ/KikcS419PqrWPYl6+SU0tQwsMwJ55wWSZZ6IhnPRcT/VUV4+IPOb+ogiDIp/4Sub951ReCd1YMdEMU9JJwCxMmmGwgCAzAMznkoOjYjcwgS4D6rIfs4asqVpVppEJ47eMXqJafyMF8ZRtqEriCMYA7MWcd8ZKg/qEgzpcFKXWTnNfKYOXS+TjRSL3aHUkV38aHlMuw8vZlThvCQ3hvObIgmjuZAQSBEO8ytuNcLYA+T4oGT6xQh8tHuBMJw4mz1vn3Vc8InRiAmaAgcvRGvDgwVe6O1//E7Yq8QF2KKKIGsrVPbVxzicOyXI+C3JyP1JOjSAOBwSBU2NyLzug==
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=41vI2baCxNv2Q6M9bPOvw/AKlYobI0hvttsQBN2B+qU=;
 b=1+XodRg6sYVeXFhLrqERyDjJd+kPagYJjypXBIbk0Vsnm2TirOkbCzyefBpywwpAtRENlnuijYkc4ud9kBr8K9aeArktxQ2avRs3TsMzeDNQTC3ePukswkufUob+bbGZFV7GISXFc961PVYOs8bnzv1FuPB54qRT4t1P/UnNA+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=satlexmb07.amd.com; pr=C
Message-ID: <267b283e-7ee3-47fd-9fa6-0bd4ea07fd0a@amd.com>
Date: Fri, 13 Feb 2026 22:26:07 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] arm/mpu: Implement p2m tables
To: Harry Ramsey <harry.ramsey@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: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-4-harry.ramsey@arm.com>
Content-Language: en-US
From: "Halder, Ayan Kumar" <ayankuma@amd.com>
In-Reply-To: <20260206090155.68466-4-harry.ramsey@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: BL02EPF0001A100:EE_|SJ2PR12MB8062:EE_
X-MS-Office365-Filtering-Correlation-Id: ffb4a41d-ee45-41e2-77c9-08de6b4ee426
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?ZmNZSjlMWHBqTE9QVWcxMTFIM2p3ZmVKcUFpMW1KTWp2MlhJRTc3TzZrWS96?=
 =?utf-8?B?QlczMHJiTzFCSDR3bkJwZWZ6bysydnIxNlJaVGRqWWVrWldLU0VxbVovVFFr?=
 =?utf-8?B?NFVEaEVCSytaZ2daNFBUQnM0aG9meTEyVTlVZnA0SXV2ekhRZWNZdGZQNjhZ?=
 =?utf-8?B?OWZtSHE3TTBGSHBEY0tjZ2VCTVQ4TVZvR0FZcjk4QWxqNUg2Mlp5eUlOZzFh?=
 =?utf-8?B?SjM4R09Da0U5T1hKUk1YQ3llWG9HdGFneWxZeUtZTWdwOWZFd2xxMnhiMnlX?=
 =?utf-8?B?MU44VjAxRVBadXl2ZHJ2QUllVnA1TlZTbXZXMmtWZ0VCekVJL2pLRmxMeEp0?=
 =?utf-8?B?dTdyNFVod2o3ZHdMWTB4VXQ0aWdKbTh0M2hDVUg4WmNXMVk3YjB1dFFXa3o1?=
 =?utf-8?B?UkFBdVFFbXppaE1OWTVwQkxXWFp6S2xQY1ZKREdocCt2TzUzdjFzT3NkSWxl?=
 =?utf-8?B?RFpwVHRaWXNuSXBrWlNWTEM2UDUvd1BBLzNaWStaVHR0YUlYMVBDRHh1cVNB?=
 =?utf-8?B?UnFNSE1ESlBKdnlOUVkvSGY5ODdNOWJYQm9EU1hIR1NSV0JpU2Jlc25kbHJ5?=
 =?utf-8?B?ZTlzYkJxUFFvWHZtUDk3ZzRqSnRJYmRMODdCbmtpcWM2aGJPWFVMWnRRd296?=
 =?utf-8?B?a0ErVFdRTXBEeDFIWkNOVlBUd3FWdWorK3M3c0tXY3V4bWUrODFOUTU3SXlB?=
 =?utf-8?B?ZzFWTWJJZEszRkFGTjFHR0ErbjdaRGFhMlI3L3JEbXo4dmhlcjJVdit2NlZV?=
 =?utf-8?B?YXo1TEMzT1A4WHRMT0ZtbVYxYzBYWEJIMVF2ZnI3REZrWkR3akMxNHVGZG5o?=
 =?utf-8?B?bys4NmxxZTJKcTdHMkwyWE5wMzhyU2UxcGk1bER4Ly83SjllaVZXODlxSTNx?=
 =?utf-8?B?UHF2bkUrOWN3dmZkb3E5c0E4Wm4waGlXdlo0SkJGQjdCTzNRaWVXend6bWpB?=
 =?utf-8?B?TW9GSHZVWE93bU1SVG92YllVMm5MbWdKMWt5ZEFFbG4rMStUMFNGZHJadzRV?=
 =?utf-8?B?b3ZtZWo2aFdMT3UwQmNia1pnbmw1dDlsNGxzVEdKUGNIQnZMR3pBalJjc2dM?=
 =?utf-8?B?R05GOHNPU2FEaVBLMHE4VzIvYURRVVlZTmhnSEFicVAyN2NMY0VKOUZTWUJ2?=
 =?utf-8?B?VXNVZFJyaWh2YmlvSzlwWWFRZFlnUTdCYklySjZqOW1VVlB5WCtzVmZvdGkw?=
 =?utf-8?B?TXFBZEg1em5YR052b2FIcm9ObGpUOTQ1K29RRnhkazhJYjY2OStzSE02ODUw?=
 =?utf-8?B?eDZMTXMyK2Z1eitESkdzdlZRalc0clFQK3ljY051aTdGWE1HeDRmTEcwWjV4?=
 =?utf-8?B?K2h1bk9QQ0hDL0ZJTjlyZmNVVFNLSVQrUU5HSnVZRnk5MWNIT3N6RmNIbnYx?=
 =?utf-8?B?VVc4bGVTSWhIK2JrMVhHZ01Zazl6SDdNNXJpMmMwNlZSRTJNRmdsZmx6MFZL?=
 =?utf-8?B?cG1hK1hDOFNFOUxqaHk0dXFmbzF3RnVwZUpubmovRVIzNlViTURaL2lGU2h4?=
 =?utf-8?B?T1lOc2lKU1RzVnpQbk5SYmRFeWhTSFBTSVRoVyt1MWtQcmlXbXZINUpkejRI?=
 =?utf-8?B?SEwyenZ3SXIzdTBWVWpXWE9HbnhGN0R6UHVPbzJ6UXNKSTJoajFTTkxwYkJa?=
 =?utf-8?B?cTF6OExnWGJVcUVSOGdWUmh2RU41WkVvUDJIWkVIUVhYZGE0SExCNm84ektm?=
 =?utf-8?B?TnZUV1NjeHRWYkkvOGFkb2hNa20rZEdoZTVzemtUcGc2Kzczd2RPclRTT0Vm?=
 =?utf-8?B?WnFMUk5lVEtQLzdZaWNhd1BTeXFMMDd5OHNuRDJoUWtrYSsyRnNYZ1A2Nlhx?=
 =?utf-8?B?VGVXZlBqQWh6bkh4OGYxUUlvUkZDQVBNd1pTWWRJWWpzTndxd3VBTUlyNkxG?=
 =?utf-8?B?VUErNS9UOXVaTVdSd1p6ODRod1o2QVNOVHBzY2tQM0k2VkRMQW12MUVWSUt4?=
 =?utf-8?B?eXZVazhXL1V6SW5BNUg0aXRCZEpZak9ZY0o3M2xpemErQlRsZWs4ZjJPSjJL?=
 =?utf-8?B?TjlOTy9jTVZlVy9ibXN4QzFjV3M1Ti9DaDFLbWtDQ2FadjFyQ20wdktCUGZS?=
 =?utf-8?B?ZSthVzJhNWJQNndYNEN5R082eFRhcVFVWWZPbXN6MDdGaGV4bzJuQnVpWTZP?=
 =?utf-8?B?TlZLekxTZXcwMlBzSVQ2TTZpK0FiSWlFbnpjaUg3M0lVTXJjLzVwNHYzTGNH?=
 =?utf-8?B?U0tMTWtFSXpxTGY4Q3JUYjRxUmJlaFhNVnBkc0lTeW5XakdOdmdFRGlMQWxn?=
 =?utf-8?B?bWhXWGx1QnluWEw2OTRoWHl3ME13PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	AxightObPdfPvC4DZNuuPHrnzUxAAYjojYdtPqA3ZRu0k4Rd+oAagwIuHto6VyCEb6LFcOFFrQCsBh7Oy1JVD/oUo7RUo/e5rUXAlVaY/hggkjB+RHxHgUffqwKULVEa28vcwnqLQuRdBw5VlFROaa6GH0hPKEyyiACk/7hwtjHHuBI/o2XvyH2uTdpUBbQvHMGAARSXjshv69ANUdGS2Uo1I2pZ9ajSLQMV29qj2sf5d42KE2YNTcfrOlw8wGH1ODZxHueuoklw9Xx+9HZS5FxkZqqfIakA2ZAP9Loc6DjW9VLx9Yxa/Ws37x2RwxWKH0/W84pgBoYW1OFwydpE2JvjwbkH/5/10Q8kkrggsS5/BA6LweCWMG1BPw59i5XrNEqifpvgF2a5ya5dPxzrUTi3GYIjx0qF9/iBOudDO9AWEfc/+/CB88/PaoYivROb
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 22:26:11.2189
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ffb4a41d-ee45-41e2-77c9-08de6b4ee426
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A100.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8062


On 06/02/2026 09:01, Harry Ramsey wrote:
> Implement `p2m_alloc_table`, `p2m_init` and `p2m_final_teardown` for MPU
> systems. Additionally implement a helper function `generate_vsctlr` for
> p2m initalization.
>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>

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

- Ayan



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 22:28:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 22:28:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231957.1536879 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1eL-0004HQ-L2; Fri, 13 Feb 2026 22:28:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231957.1536879; Fri, 13 Feb 2026 22:28: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 1vr1eL-0004HJ-H2; Fri, 13 Feb 2026 22:28:33 +0000
Received: by outflank-mailman (input) for mailman id 1231957;
 Fri, 13 Feb 2026 22:28: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=S4o5=AR=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vr1eJ-0004HD-I0
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 22:28:31 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 50ef00a6-092b-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 23:28:28 +0100 (CET)
Received: from SN7PR04CA0019.namprd04.prod.outlook.com (2603:10b6:806:f2::24)
 by CY5PR12MB9056.namprd12.prod.outlook.com (2603:10b6:930:34::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 22:28:22 +0000
Received: from SA2PEPF00003F63.namprd04.prod.outlook.com
 (2603:10b6:806:f2:cafe::b7) by SN7PR04CA0019.outlook.office365.com
 (2603:10b6:806:f2::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.13 via Frontend Transport; Fri,
 13 Feb 2026 22:28:16 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00003F63.mail.protection.outlook.com (10.167.248.38) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 22:28:21 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 16:28:20 -0600
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 13 Feb 2026 16:28:19 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 50ef00a6-092b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K/cKnz7AK4bc2CvT9nIlKXQY2AVICHp0yV4Wl/oKWS/Asm4leGGLjCXNodG8o4hUv/OscCgb3JgRMMoxVU0u6JJhmB65MsS3MeFvPMVVY3+yDs9Oz6vSPymU4Oz54qzMIalXe0b/KYn7uj1OQeCQUdc1zqSbUECQkipUpyZd/vreB8O18PSlNA0rCY5aXh30SdHiYivqHH1xUhGMxVbqpQh1cwsOeHUIfW8zKh9MQ0gLozRPWSJKDsTFWH58HFBo0WpCxfp2giIvgLR3rPcUnruWQBNN5NRL3RvZ0SU4IA9g8l9GgJ70MoqFyIyN5hTLT9exHgZJxS4WekQiOVBplg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2Crw92ASiKKFoT5GPA5AkN5JISqW8WkUcEtyJkgjdRo=;
 b=V4CAMnG6I3zezmpLkkzrledoMo1zgoaHcpAB4aq97zMjNc189N/30pXVDGYk9ALL0DQ40f2Y5VzXsLrSjsJEa6SqRPYrwd+Hu39AV97qJR8L0gy0GBXIe8M79JctSO+U7/FurQh6hjRQZHURx1YtjCqEKbZ6A4SmnCrXqsUHKAgzRv3GUdPxVB1LV+SEpRa0aL6a14kfwSXv0uxjtwYotUO5s5K1QGSFMNB5m0+cD0KENOXpQ0IJrYirfxyulzYX7rmDhDR6fy/K0YfILGPfE1iCWlBPOkbiC/OoJ9p0rAnLjwv4hXMPw9+hTmfHW7tx+fm+NisVY2FW+cD+SBmiaw==
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=2Crw92ASiKKFoT5GPA5AkN5JISqW8WkUcEtyJkgjdRo=;
 b=QNyb87dKRr0IaDV7TErPaPEjOjh3QmfJ5omlY1+3jCFOP3s1INz37L0isAvs5PUjUCCtuXPze4okBW2Kq8pv/mqIQQY2BkCTC7VON4ch4i/O7yJwTsQp8CbG1XqPU4bNynN7ieNt/wAfAbN4wegaXDOWBEWCMY73J33UTypQz9A=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <jbeulich@suse.com>, <andrew.cooper3@citrix.com>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <stefano.stabellini@amd.com>,
	<alejandro.garciavallejo@amd.com>
Subject: [PATCH v3] x86/cpufreq: Add Kconfig option for CPU frequency scaling
Date: Fri, 13 Feb 2026 14:28:18 -0800
Message-ID: <20260213222818.271685-1-stefano.stabellini@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: SA2PEPF00003F63:EE_|CY5PR12MB9056:EE_
X-MS-Office365-Filtering-Correlation-Id: eeb67692-8d0d-4ef6-69a6-08de6b4f31ba
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?xBsWMSc04vzzAzpilMoymK4gsNED1R3SunWxb9I0H341jCAMbI8sX3f9XPEb?=
 =?us-ascii?Q?e8SXdZdClbxpNypQXQUB82ZqCKQf+6w4hfUGR1RDvvnihi6QqrdPMqKYgGcf?=
 =?us-ascii?Q?/g9cJXkQUq42kW+/MTVIkjqjMY1Fd0R/dpDZ969ekniHojkOtshFmV4NqLGH?=
 =?us-ascii?Q?LwSyXuIfgkbfCRGnB7RGLTfEam5klwOrkI2hPSbw1412QlpW8qobyGPSO4AO?=
 =?us-ascii?Q?6rRBeQCz+Dp6qgDRRRSDTLNR58ThPhyfAYhQUE4/3UjtxxifBEXanEWxTgv4?=
 =?us-ascii?Q?ZuN/nFUQCPJsV5rxTxFw9TrDomBVOaWtts/pt+CQDjKgoYbxdmnjuqBoEkCh?=
 =?us-ascii?Q?dyxpGTC//5KUoH7jDzdkybabUe6G72SUc+X/NNJ/WT5gZ7yu6TQJkowIt0by?=
 =?us-ascii?Q?kBARK722dMngQjUB5lEeSAE445TYrq98iJWzdhHskV04kWEyrJEmjQ51UrGj?=
 =?us-ascii?Q?idpxmiM6xN9O2JsDjCJigFcF5ywaf+yRfZg897d2BiYaCEVnhVkJhpj9SMuE?=
 =?us-ascii?Q?IEGzTfNi0J4yJ0Wq9LV9q4pAQMwdcnQMw0Aym4woCGG3Tix8LAfZ1JnRjedX?=
 =?us-ascii?Q?3GnsO/NwOmDRcLsJKZDjW/Jg0wgyQUvSDDj3rBxPxROjzH+zHzALYNuqzBYa?=
 =?us-ascii?Q?XB7tneTf681SluMGqja0rlDyYreytwK220f8GR9aFUhhK/NO9Bhqejw0rwMU?=
 =?us-ascii?Q?TN4MGFbckyDnWBDecfI3mbYlCOWOs/WEIHHYOeOSSUIRFgnn6hILqCp1Gmvk?=
 =?us-ascii?Q?Lklo3Uix6/ZXNEuoHOc6p6GC1/UuJUobM/MAa1gbuCTvUtn+yTKxE/wpPI6R?=
 =?us-ascii?Q?owHyHbglz9mzQ9nhn+PEXt8dm/o10P8nzNu1lOIOc//LOS4cLVwLZECqfuw+?=
 =?us-ascii?Q?bXsh0Zmxkwy9RVNcpP27X5avEUMP3+/oubNaYdXBWOEbOqp5ckv55JRAKmo1?=
 =?us-ascii?Q?xwbX+xfUjv0Av4loTHqlgvhJblH+LE+7ixzFFyVZWSpZlXkiu8fZYOV1l0uG?=
 =?us-ascii?Q?V27mBbDaL3crvb/ZjWTmr0Z7Y5iZ+CTwJj9MT4Xdchhnc93qgKDLbOHRPuqK?=
 =?us-ascii?Q?RHv6KyWbZ+D6tl+fedyTqD/TqXIGoN0dyulQ8+zHF6cndL39WVK2Fnu+JHH2?=
 =?us-ascii?Q?sgIYQoNF+fv/uhO+Ct7ZSxtGFQehSxhPSfhxyglzxT9idk0vMSMnf5NdFBkj?=
 =?us-ascii?Q?QxljaiauFZwQIELZTkSBLyfSR9aW0/wyzHfHgv2OkQ6luXI+l0qC+PWioLC0?=
 =?us-ascii?Q?b30KXgD1/SO/qEbLtR1qkuINYj6zcfMZZBlxjv7SN0i+zDUGleOr1NT05kPz?=
 =?us-ascii?Q?eupzinrgNfP3qxy0wiCfmIMj9pUQqBAYdm0jZ6bleVC5EOoJlUXm6UbXQCaH?=
 =?us-ascii?Q?pPLKbnoTna3FjvVVp+p5ftBdIXtB+5L2rbvwOISf6fE6r8wkvWW6pM8gJvr9?=
 =?us-ascii?Q?SGDwFkroyYTnOCCG0T/75wEL45JnUL/nB0MKGsYE5jo2A6pFAcQqoRxRbQJD?=
 =?us-ascii?Q?BbXIn3wGaAV39B/K4glaLEREiQKQ+baaIIgf088UGPCOIPRHuuZUSsxjJpi9?=
 =?us-ascii?Q?McY2cD8qgMHsQIl8qODQKWGSnxJk46yTdOrZN8qEt0cfsSnxhs/bGxLafG9P?=
 =?us-ascii?Q?ECzJM3dRGKJO+Tx9tPjEAejvSYIV0EKz0R7KZbW+JJPUAF3Q4bcS3wuh5ElZ?=
 =?us-ascii?Q?9LtIlQ=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	+IlBnM0x7C5naYLitvnUqRonqfaHgRG1EB2O580oFiXQEYm3dVFgqu2190lS4OR6uSZ04/PZVg3HN+DB3jGChEe7axZwAtaNBF5k63vFy1kHlxdQKqQJJAdH0zgPHpEIkxbhFCaqEP07RrXrAcQiZ8+RDnaE+c3aKfQH/EVTZl23fvn+8vGuqVpJwWPBIXevWvNneSVGfnZ8lMmE+zVkvxO///xn8G4JaTiOZL+JfqxVaTJMps9GxrWJY3bxdPnTcPXM2X70JmNXsAjP/eex65r0tb51oi5JUZSzCo94hgQv1N+tN+ny12W54alrQfqMowhVU5Ak1Lc3kj4y1nhDqrwgsVgzDGoHPsjgjid8ZUImrztfVUWnpYpwU/0ZEB4b3uMzfKgg7a/+0qjCLw9kqD1mBE1NiW9m7Mz5Ur1v7Ygw+xj6cC23bRr21W0cTuEQ
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 22:28:21.3441
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: eeb67692-8d0d-4ef6-69a6-08de6b4f31ba
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003F63.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB9056

Add CONFIG_CPUFREQ to allow CPU frequency scaling support to be
disabled at build time. When disabled, this removes cpufreq code
from the build.

Move the cpufreq_controller enum and is_cpufreq_controller() inside
#ifdef CONFIG_CPUFREQ so that FREQCTL_* values are not visible when
CPUFREQ is disabled. Provide a stub is_cpufreq_controller() that
returns false when CPUFREQ is not configured.

Compile out the XENPF_change_freq and XENPF_getidletime platform ops
when CONFIG_CPUFREQ is disabled, as they require cpufreq_controller.

Add stubs where necessary.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>

---
Changes in v3:
- Move enum cpufreq_controller inside #ifdef CONFIG_CPUFREQ so
  FREQCTL_* values are not visible when CPUFREQ=n
- Keep enum and variable declaration combined
- Wrap XENPF_change_freq and XENPF_getidletime cases with
  #ifdef CONFIG_CPUFREQ
- Add __maybe_unused to the out: label since it's only used by
  XENPF_getidletime
- Move is_cpufreq_controller() inside #ifdef CONFIG_CPUFREQ and
  provide a stub returning false for the !CPUFREQ case
- use -EOPNOTSUPP instead of -ENOSYS
- code style fixes
---
 xen/arch/x86/acpi/Makefile                |  2 +-
 xen/arch/x86/platform_hypercall.c         |  4 +++-
 xen/drivers/Makefile                      |  2 +-
 xen/drivers/acpi/pm-op.c                  |  3 ++-
 xen/drivers/acpi/pmstat.c                 |  8 ++++++--
 xen/drivers/cpufreq/Kconfig               | 14 +++++++++++++-
 xen/include/acpi/cpufreq/cpufreq.h        | 13 ++++++++++++-
 xen/include/acpi/cpufreq/processor_perf.h |  3 ---
 xen/include/xen/acpi.h                    |  8 ++++++++
 xen/include/xen/pmstat.h                  | 15 ++++++++++++++-
 xen/include/xen/sched.h                   |  7 +++++++
 11 files changed, 67 insertions(+), 12 deletions(-)

diff --git a/xen/arch/x86/acpi/Makefile b/xen/arch/x86/acpi/Makefile
index 041377e2bb..aa476f65d5 100644
--- a/xen/arch/x86/acpi/Makefile
+++ b/xen/arch/x86/acpi/Makefile
@@ -1,4 +1,4 @@
-obj-y += cpufreq/
+obj-$(CONFIG_CPUFREQ) += cpufreq/
 
 obj-y += lib.o power.o cpu_idle.o cpuidle_menu.o
 obj-bin-y += boot.init.o wakeup_prot.o
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index c6c5135806..a4669090e0 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -485,6 +485,7 @@ ret_t do_platform_op(
         ret = acpi_enter_sleep(&op->u.enter_acpi_sleep);
         break;
 
+#ifdef CONFIG_CPUFREQ
     case XENPF_change_freq:
         ret = -ENOSYS;
         if ( cpufreq_controller != FREQCTL_dom0_kernel )
@@ -544,6 +545,7 @@ ret_t do_platform_op(
             ret = -EFAULT;
         break;
     }
+#endif
 
     case XENPF_set_processor_pminfo:
         switch ( op->u.set_pminfo.type )
@@ -936,7 +938,7 @@ ret_t do_platform_op(
         break;
     }
 
- out:
+ out: __maybe_unused;
     spin_unlock(&xenpf_lock);
 
     return ret;
diff --git a/xen/drivers/Makefile b/xen/drivers/Makefile
index 2a1ae8ad13..3d81b8dde4 100644
--- a/xen/drivers/Makefile
+++ b/xen/drivers/Makefile
@@ -1,5 +1,5 @@
 obj-y += char/
-obj-$(CONFIG_HAS_CPUFREQ) += cpufreq/
+obj-$(CONFIG_CPUFREQ) += cpufreq/
 obj-$(CONFIG_HAS_PCI) += pci/
 obj-$(CONFIG_HAS_VPCI) += vpci/
 obj-$(CONFIG_HAS_PASSTHROUGH) += passthrough/
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 07bddc58d9..f5caeebb9a 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -367,7 +367,8 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
         return ret;
     }
 
-    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
+    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) ||
+         !IS_ENABLED(CPUFREQ) )
         return -EINVAL;
     pmpt = processor_pminfo[op->cpuid];
 
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 0f31736df2..a8437ad045 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -76,6 +76,9 @@ void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to)
     spinlock_t *cpufreq_statistic_lock =
                &per_cpu(cpufreq_statistic_lock, cpu);
 
+    if ( !IS_ENABLED(CPUFREQ) )
+        return;
+
     spin_lock(cpufreq_statistic_lock);
 
     pxpt = per_cpu(cpufreq_statistic_data, cpu);
@@ -105,7 +108,7 @@ int cpufreq_statistic_init(unsigned int cpu)
 
     spin_lock_init(cpufreq_statistic_lock);
 
-    if ( !pmpt )
+    if ( !pmpt || !IS_ENABLED(CPUFREQ) )
         return -EINVAL;
 
     /* Only need to initialize in Px mode */
@@ -225,7 +228,8 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
     int ret = 0;
     const struct processor_pminfo *pmpt;
 
-    if ( !op || (op->cpuid >= nr_cpu_ids) || !cpu_online(op->cpuid) )
+    if ( !IS_ENABLED(CPUFREQ) || !op || (op->cpuid >= nr_cpu_ids) ||
+         !cpu_online(op->cpuid) )
         return -EINVAL;
     pmpt = processor_pminfo[op->cpuid];
 
diff --git a/xen/drivers/cpufreq/Kconfig b/xen/drivers/cpufreq/Kconfig
index cce80f4aec..b9b93c1a26 100644
--- a/xen/drivers/cpufreq/Kconfig
+++ b/xen/drivers/cpufreq/Kconfig
@@ -1,3 +1,15 @@
-
 config HAS_CPUFREQ
 	bool
+
+config CPUFREQ
+	bool "CPU Frequency scaling"
+	default y
+	depends on HAS_CPUFREQ
+	help
+	  Enable CPU frequency scaling and power management governors.
+	  This allows Xen to dynamically adjust CPU P-states (performance
+	  states) based on system load.
+
+	  Disabling this option removes all cpufreq governors and power
+	  management interfaces. This is useful for real-time systems or
+	  minimal hypervisor builds.
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 0171ccf0ba..828d23961c 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -381,8 +381,19 @@ int write_ondemand_up_threshold(unsigned int up_threshold);
 
 int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq);
 
+#ifdef CONFIG_CPUFREQ
+int cpufreq_add_cpu(unsigned int cpu);
+int cpufreq_del_cpu(unsigned int cpu);
+
 void cpufreq_dbs_timer_suspend(void);
 void cpufreq_dbs_timer_resume(void);
+#else
+static inline int cpufreq_add_cpu(unsigned int cpu) { return -EOPNOTSUPP; }
+static inline int cpufreq_del_cpu(unsigned int cpu) { return -EOPNOTSUPP; }
+
+static inline void cpufreq_dbs_timer_suspend(void) {}
+static inline void cpufreq_dbs_timer_resume(void) {}
+#endif
 
 void intel_feature_detect(struct cpufreq_policy *policy);
 
@@ -398,7 +409,7 @@ void intel_feature_detect(struct cpufreq_policy *policy);
 
 int hwp_cmdline_parse(const char *s, const char *e);
 int hwp_register_driver(void);
-#ifdef CONFIG_INTEL
+#if defined(CONFIG_INTEL) && defined(CONFIG_CPUFREQ)
 bool hwp_active(void);
 #else
 static inline bool hwp_active(void) { return false; }
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 0a87bc0384..bad9d94865 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -36,9 +36,6 @@ static inline void cpufreq_statistic_exit(unsigned int cpu) {}
 
 int  cpufreq_limit_change(unsigned int cpu);
 
-int  cpufreq_add_cpu(unsigned int cpu);
-int  cpufreq_del_cpu(unsigned int cpu);
-
 struct processor_performance {
     uint32_t state;
     uint32_t platform_limit;
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index 90635ba0f3..ae6dba481c 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -186,7 +186,15 @@ static inline void acpi_set_csubstate_limit(unsigned int new_limit) { return; }
 #endif
 
 #ifdef XEN_GUEST_HANDLE
+#ifdef CONFIG_CPUFREQ
 int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32));
+#else
+static inline int acpi_set_pdc_bits(unsigned int acpi_id,
+                                    XEN_GUEST_HANDLE(uint32) pdc)
+{
+    return -EOPNOTSUPP;
+}
+#endif
 #endif
 int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);
 
diff --git a/xen/include/xen/pmstat.h b/xen/include/xen/pmstat.h
index 6096560d3c..51d3ee404f 100644
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -5,10 +5,23 @@
 #include <public/platform.h> /* for struct xen_processor_power */
 #include <public/sysctl.h>   /* for struct pm_cx_stat */
 
+#ifdef CONFIG_CPUFREQ
 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);
+#else
+static inline int set_px_pminfo(uint32_t acpi_id,
+                                struct xen_processor_performance *perf)
+{
+    return -EOPNOTSUPP;
+}
+static inline int set_cppc_pminfo(unsigned int acpi_id,
+                                  const struct xen_processor_cppc *cppc_data)
+{
+    return -EOPNOTSUPP;
+}
+#endif
+long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
 
 #ifdef CONFIG_COMPAT
 struct compat_processor_performance;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1268632344..d3358ce693 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1255,6 +1255,7 @@ static always_inline bool is_iommu_enabled(const struct domain *d)
 extern bool sched_smt_power_savings;
 extern bool sched_disable_smt_switching;
 
+#ifdef CONFIG_CPUFREQ
 extern enum cpufreq_controller {
     FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
 } cpufreq_controller;
@@ -1274,6 +1275,12 @@ static always_inline bool is_cpufreq_controller(const struct domain *d)
     return (is_pv_domain(d) && is_hardware_domain(d) &&
             cpufreq_controller == FREQCTL_dom0_kernel);
 }
+#else
+static always_inline bool is_cpufreq_controller(const struct domain *d)
+{
+    return false;
+}
+#endif
 
 int cpupool_move_domain(struct domain *d, struct cpupool *c);
 int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 22:48:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 22:48:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231980.1536898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1xk-0007LB-DE; Fri, 13 Feb 2026 22:48:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231980.1536898; Fri, 13 Feb 2026 22:48:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1xk-0007L4-9o; Fri, 13 Feb 2026 22:48:36 +0000
Received: by outflank-mailman (input) for mailman id 1231980;
 Fri, 13 Feb 2026 22:48: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=eHiT=AR=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vr1xj-00075I-G2
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 22:48:35 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 208bc295-092e-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 23:48:35 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 054BA4280D5B;
 Fri, 13 Feb 2026 17:48:19 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 208bc295-092e-11f1-b163-2bf370ae4941
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v2 1/2] x86/svm: Add Enumerations for the SVM virtual NMI
Date: Fri, 13 Feb 2026 22:44:45 +0000
Message-ID: <01a922d2018cf657f842dbd325d0fdf819078aa7.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the cpuid bit for the SVM vNMI feature support for the x86\AMD
platforms. The feature support is indicated by the CPUID
Fn8000_000A_EDX[25] = 1.

Add defines for the three SVM's Virtual NMI (vNMI) managements bits in the
VMCB structure's vintr_t:

vintr_t(11) - Virtual NMI is pending.
vintr_t(12) - Virtual NMI is masked.
vintr_t(26) - Enable NMI virtualization.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/svm/svm.c         | 1 +
 xen/arch/x86/hvm/svm/vmcb.h        | 8 ++++++--
 xen/arch/x86/include/asm/hvm/hvm.h | 4 +++-
 xen/arch/x86/include/asm/hvm/svm.h | 2 ++
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..6e380890bd 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2533,6 +2533,7 @@ const struct hvm_function_table * __init start_svm(void)
     svm_function_table.caps.hap = cpu_has_svm_npt;
     svm_function_table.caps.hap_superpage_2mb = true;
     svm_function_table.caps.hap_superpage_1gb = cpu_has_page1gb;
+    svm_function_table.caps.vNMI = cpu_has_svm_vnmi;
 
     return &svm_function_table;
 }
diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
index 69f6047394..047483db9a 100644
--- a/xen/arch/x86/hvm/svm/vmcb.h
+++ b/xen/arch/x86/hvm/svm/vmcb.h
@@ -336,13 +336,17 @@ typedef union
         u64 tpr:          8;
         u64 irq:          1;
         u64 vgif:         1;
-        u64 rsvd0:        6;
+        u64 rsvd0:        1;
+        u64 vnmi_pending: 1;
+        u64 vnmi_blocking:1;
+        u64:              3;
         u64 prio:         4;
         u64 ign_tpr:      1;
         u64 rsvd1:        3;
         u64 intr_masking: 1;
         u64 vgif_enable:  1;
-        u64 rsvd2:        6;
+        u64 vnmi_enable:  1;
+        u64 rsvd2:        5;
         u64 vector:       8;
         u64 rsvd3:       24;
     } fields;
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59..ad17ea73e9 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -115,7 +115,9 @@ struct hvm_function_table {
              virtual_intr_delivery:1,
 
              /* Nested virt capabilities */
-             nested_virt:1;
+             nested_virt:1,
+             /* virtual NMI support */
+             vNMI:1;
     } caps;
 
     /*
diff --git a/xen/arch/x86/include/asm/hvm/svm.h b/xen/arch/x86/include/asm/hvm/svm.h
index 15f0268be7..a35a61273b 100644
--- a/xen/arch/x86/include/asm/hvm/svm.h
+++ b/xen/arch/x86/include/asm/hvm/svm.h
@@ -37,6 +37,7 @@ extern u32 svm_feature_flags;
 #define SVM_FEATURE_VGIF          16 /* Virtual GIF */
 #define SVM_FEATURE_SSS           19 /* NPT Supervisor Shadow Stacks */
 #define SVM_FEATURE_SPEC_CTRL     20 /* MSR_SPEC_CTRL virtualisation */
+#define SVM_FEATURE_VNMI          25 /* Virtual NMI */
 #define SVM_FEATURE_BUS_LOCK      29 /* Bus Lock Threshold */
 
 static inline bool cpu_has_svm_feature(unsigned int feat)
@@ -57,6 +58,7 @@ static inline bool cpu_has_svm_feature(unsigned int feat)
 #define cpu_has_svm_vloadsave cpu_has_svm_feature(SVM_FEATURE_VLOADSAVE)
 #define cpu_has_svm_sss       cpu_has_svm_feature(SVM_FEATURE_SSS)
 #define cpu_has_svm_spec_ctrl cpu_has_svm_feature(SVM_FEATURE_SPEC_CTRL)
+#define cpu_has_svm_vnmi      cpu_has_svm_feature(SVM_FEATURE_VNMI)
 #define cpu_has_svm_bus_lock  cpu_has_svm_feature(SVM_FEATURE_BUS_LOCK)
 
 #define MSR_INTERCEPT_NONE    0
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 22:48:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 22:48:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231979.1536887 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1xZ-00075V-65; Fri, 13 Feb 2026 22:48:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231979.1536887; Fri, 13 Feb 2026 22:48:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1xZ-00075O-3V; Fri, 13 Feb 2026 22:48:25 +0000
Received: by outflank-mailman (input) for mailman id 1231979;
 Fri, 13 Feb 2026 22: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=eHiT=AR=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vr1xY-00075I-IH
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 22:48:24 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 194cf051-092e-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 23:48:23 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id CE55D4280D5B;
 Fri, 13 Feb 2026 17:48:07 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 194cf051-092e-11f1-b163-2bf370ae4941
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v2 0/2] Virtual NMI 
Date: Fri, 13 Feb 2026 22:44:44 +0000
Message-ID: <cover.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently, the Xen hypervisor delivers NMIs to the guests using the Event
Injection mechanism. The Event Injection mechanism does not block the delivery
of subsequent NMIs. So the Xen Hypervisor tracks the NMI delivery and its
completion (by intercepting the IRET instruction) before sending a new NMI.

With the 4th generation AMD EPYC, a hardware NMI virtualization support,
Virtual NMI (VNMI), is introduced.  The vNMI allows the hypervisor to inject
the NMI into the guest w/o using Event Injection mechanism. No need to track
the guest NMI and intercepting the IRET instruction.

NMI Virtualization support is indicated by CPUID Fn8000_000A_EDX[VNMI] = 1.[1]

NMI Virtualization is enabled by setting V_NMI_ENABLE (bit 26 in offset 60h
of the VMCB). Enabling NMI Virtualization requires the NMI intercept bit to
be set. An attempt to run a guest with V_NMI_ENABLE without the NMI intercept
bit set results in #VMEXIT(INVALID) [1]

Three new bits are added to the VMCB field at offset 60h to provide NMI
virtualization hardware support:

V_NMI(11): Indicates whether a virtual NMI is pending in the guest. The
processor will clear V_NMI once it takes the virtual NMI.
V_NMI_MASK(12): Indicates whether virtual NMIs are masked. The processor will
set V_NMI_MASK once it takes the virtual NMI. V_NMI_MASK is cleared when the
guest successfully completes an IRET instruction or #VMEXIT occurs while
delivering the virtual NMI.
V_NMI_ENABLE(26): Enables NMI virtualization. [1]

[1] https://docs.amd.com/v/u/en-US/24593_3.43

---
Changes in v2:
 - Merge the patches for
   "svm/vnmi: introduce the vnmi bit support in the cpuid feature set"
   and
   "svm/vnmi: add the definitions for the svm vnmi management bits in the VMCB"
   into the one patch
   "x86/svm: Add Enumerations for the SVM virtual NMI".
 - Change the patch subject "svm/vnmi: Add support for the SVM Virtual NMI" to
   "x86/svm: Use virtual NMI when available"
 - Move the print out of the VNMI capability to the patch
   "x86/svm: Use virtual NMI when available" when it is being used.
 - Remove the hvm_intblk_vnmi enumeration that was introduced for the separate
   masked vNMI handling.
 - Introduce the hvm_function_table's is_vnmi_enabled callback to allow for the
   SVM implementation to verify that the VNMI is enabled by checking the VMCB
   bits in addition to the CPUID reported support.
 - Change the the name of the hvm_function_table's callback is_vnmi_pending to
   is_vnmi_masked.
 - The svm_inject_nmi function gains a check for the distinct NMI injection
   handling when the VNMI is enabled.
 - Simplify the check of AMD SVM Hardware support for the VNMI. The check
   cpu_has_svm_vnmi is performed unconditionally.
 - Simplify the introduced changes diff for the vintr_t union for the VNMI bits
   support.
 - Adopt the Xen formatting guidelines for the control structures.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2325298577
---

Abdelkareem Abdelsaamad (2):
  x86/svm: Add Enumerations for the SVM virtual NMI
  x86/svm: Use the virtual NMI when available

 xen/arch/x86/hvm/svm/intr.c        | 13 ++++++++++--
 xen/arch/x86/hvm/svm/svm.c         | 34 ++++++++++++++++++++++++++++--
 xen/arch/x86/hvm/svm/vmcb.c        |  2 ++
 xen/arch/x86/hvm/svm/vmcb.h        |  8 +++++--
 xen/arch/x86/include/asm/hvm/hvm.h | 13 +++++++++++-
 xen/arch/x86/include/asm/hvm/svm.h |  2 ++
 6 files changed, 65 insertions(+), 7 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 22:48:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 22:48:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1231983.1536908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr1xn-0007b1-Kn; Fri, 13 Feb 2026 22:48:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1231983.1536908; Fri, 13 Feb 2026 22:48: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 1vr1xn-0007au-HH; Fri, 13 Feb 2026 22:48:39 +0000
Received: by outflank-mailman (input) for mailman id 1231983;
 Fri, 13 Feb 2026 22:48: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=eHiT=AR=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vr1xm-00075I-7A
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 22:48:38 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2225b83e-092e-11f1-b163-2bf370ae4941;
 Fri, 13 Feb 2026 23:48:37 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id B70E04280D5B;
 Fri, 13 Feb 2026 17:48:22 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2225b83e-092e-11f1-b163-2bf370ae4941
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v2 2/2] x86/svm: Use the virtual NMI when available
Date: Fri, 13 Feb 2026 22:44:46 +0000
Message-ID: <54110a1c3800557d1fe611e4f8008b702df5ee84.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With vNMI, the pending NMI is simply stuffed into the VMCB and handed off
to the hardware. This means that Xen needs to be able to set a vNMI pending
on-demand, and also query if a vNMI is pending, e.g. to honor the "at most
one NMI pending" rule and to preserve all NMIs across save and restore.

Introduce two new hvm_function_table callbacks to support the SVM's vNMI to
allow the Xen hypervisor to query if a vNMI is pending and to set VMCB's
_vintr pending flag so the NMIs are serviced by hardware if/when the virtual
NMIs become unblocked.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/svm/intr.c        | 13 ++++++++++--
 xen/arch/x86/hvm/svm/svm.c         | 33 ++++++++++++++++++++++++++++--
 xen/arch/x86/hvm/svm/vmcb.c        |  2 ++
 xen/arch/x86/include/asm/hvm/hvm.h |  9 ++++++++
 4 files changed, 53 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 6453a46b85..bc52f8e189 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -29,10 +29,19 @@
 
 static void svm_inject_nmi(struct vcpu *v)
 {
-    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
-    u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
+    struct vmcb_struct *vmcb;
+    u32 general1_intercepts;
     intinfo_t event;
 
+    if ( hvm_funcs.is_vnmi_enabled(v) )
+    {
+        hvm_funcs.set_vnmi_pending(v);
+        return;
+    }
+
+    vmcb = v->arch.hvm.svm.vmcb;
+    general1_intercepts = vmcb_get_general1_intercepts(vmcb);
+
     event.raw = 0;
     event.v = true;
     event.type = X86_ET_NMI;
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 6e380890bd..00e5630025 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -297,6 +297,32 @@ void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags)
         __clear_bit(msr * 2 + 1, msr_bit);
 }
 
+static bool cf_check svm_is_vnmi_enabled(struct vcpu *vcpu)
+{
+    return ( hvm_funcs.caps.vNMI &&
+             vcpu->arch.hvm.svm.vmcb->_vintr.fields.vnmi_enable );
+}
+
+static bool cf_check svm_is_vnmi_masked(struct vcpu *vcpu)
+{
+    if ( !svm_is_vnmi_enabled(vcpu) )
+        return false;
+
+    return ( vcpu->arch.hvm.svm.vmcb->_vintr.fields.vnmi_blocking );
+}
+
+static bool cf_check svm_set_vnmi_pending(struct vcpu *vcpu)
+{
+    if ( !svm_is_vnmi_enabled(vcpu) )
+        return false;
+
+    if ( vcpu->arch.hvm.svm.vmcb->_vintr.fields.vnmi_pending )
+        return false;
+
+    vcpu->arch.hvm.svm.vmcb->_vintr.fields.vnmi_pending = 1;
+    return true;
+}
+
 #ifdef CONFIG_VM_EVENT
 static void cf_check svm_enable_msr_interception(struct domain *d, uint32_t msr)
 {
@@ -545,7 +571,7 @@ static unsigned cf_check int svm_get_interrupt_shadow(struct vcpu *v)
     struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
     unsigned int intr_shadow = 0;
 
-    if ( vmcb->int_stat.intr_shadow )
+    if ( vmcb->int_stat.intr_shadow || svm_is_vnmi_masked(v) )
         intr_shadow |= HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI;
 
     if ( vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET )
@@ -2464,7 +2490,9 @@ static struct hvm_function_table __initdata_cf_clobber svm_function_table = {
 #endif
     .set_rdtsc_exiting    = svm_set_rdtsc_exiting,
     .get_insn_bytes       = svm_get_insn_bytes,
-
+    .is_vnmi_enabled      = svm_is_vnmi_enabled,
+    .is_vnmi_masked       = svm_is_vnmi_masked,
+    .set_vnmi_pending     = svm_set_vnmi_pending,
     .nhvm_vcpu_initialise = nsvm_vcpu_initialise,
     .nhvm_vcpu_destroy = nsvm_vcpu_destroy,
     .nhvm_vcpu_reset = nsvm_vcpu_reset,
@@ -2524,6 +2552,7 @@ const struct hvm_function_table * __init start_svm(void)
     P(cpu_has_tsc_ratio, "TSC Rate MSR");
     P(cpu_has_svm_sss, "NPT Supervisor Shadow Stack");
     P(cpu_has_svm_spec_ctrl, "MSR_SPEC_CTRL virtualisation");
+    P(cpu_has_svm_vnmi, "Virtual NMI");
     P(cpu_has_svm_bus_lock, "Bus Lock Filter");
 #undef P
 
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548..e90bbac332 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -184,6 +184,8 @@ static int construct_vmcb(struct vcpu *v)
     if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
         v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
 
+    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;
+
     return 0;
 }
 
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index ad17ea73e9..9dc8b35f91 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -224,6 +224,15 @@ struct hvm_function_table {
     int (*pi_update_irte)(const struct vcpu *v, const struct pirq *pirq,
                           uint8_t gvec);
     void (*update_vlapic_mode)(struct vcpu *v);
+    /* Whether or not virtual NMI is enabled. */
+    bool (*is_vnmi_enabled)(struct vcpu *vcpu);
+    /* Whether or not a virtual NMI is masked in hardware. */
+    bool (*is_vnmi_masked)(struct vcpu *vcpu);
+    /*
+     * Attempt to pend a virtual NMI in harware.
+     * Returns %true on success
+     */
+    bool (*set_vnmi_pending)(struct vcpu *vcpu);
 
     /*Walk nested p2m  */
     int (*nhvm_hap_walk_L1_p2m)(struct vcpu *v, paddr_t L2_gpa,
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 22:56:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 22:56:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232035.1536917 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr25f-0001GK-Ad; Fri, 13 Feb 2026 22:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232035.1536917; Fri, 13 Feb 2026 22: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 1vr25f-0001GD-7z; Fri, 13 Feb 2026 22:56:47 +0000
Received: by outflank-mailman (input) for mailman id 1232035;
 Fri, 13 Feb 2026 22: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=p2Ni=AR=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vr25e-0001G7-0u
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 22:56:46 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43604bd2-092f-11f1-9ccf-f158ae23cfc8;
 Fri, 13 Feb 2026 23:56:43 +0100 (CET)
Received: from BL1PR13CA0410.namprd13.prod.outlook.com (2603:10b6:208:2c2::25)
 by DM6PR12MB4284.namprd12.prod.outlook.com (2603:10b6:5:21a::12) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 22:56:39 +0000
Received: from BL6PEPF0001AB56.namprd02.prod.outlook.com
 (2603:10b6:208:2c2:cafe::15) by BL1PR13CA0410.outlook.office365.com
 (2603:10b6:208:2c2::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.12 via Frontend Transport; Fri,
 13 Feb 2026 22:56:41 +0000
Received: from satlexmb08.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_256_GCM_SHA384) id
 15.20.9611.8 via Frontend Transport; Fri, 13 Feb 2026 22:56:38 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 16:56:38 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 14:56:38 -0800
Received: from fedora.mshome.net (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 13 Feb 2026 16:56:35 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43604bd2-092f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Kfnq6NdNNVuiOuaR6B4mTFtSUC5xmYKhOavWIw5rVl51xdSDFfjjcNv7WrDrBuNvIrfhggW07s9/uvxbwc6sNJqCCzI/KhZ5FWW0spytDUYnDqBK+noj3UW/fXvmIAaOY7iy3S5LG5xA/26iT+C7c0zDUwSZjoSanDrYC6Ci3LVdscSQLmbbAA8AsjKTiSiEbLZckWlp/byALNLpr53i89ZpUEXRBA9xECjhYeN0usiAAaaJZIQVPOxjpN51a+yX/mXbMFv7TivjS1kFX2eHeS2CRwGEVGYGT+DnYhm4Hc930uX80mnGpMJwAeXpBZZF2QS2hJgQH7Rl5uHp8LIgcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ycUUyyRqydkafbiPgDfQrb38BnVTwnbLy0kPTis535M=;
 b=dgKpYDswQdFigO3A0ZKLa/uhp4WIAxvwYBE4mQA+RW1sgA0SLOtkZiCImyDRWgAg0BRjx2G0aJGFPb7njUOAcPE9SVezhwIoqgPpHQpsLxOHC/NLnIM/cN6qtT9N3bgOz81033F7TCjBULA57FsjE6oI4FoeUCwBrV114LlAo8/ttiF+hXFFFO1zjT3WuR1Q4v6BZu57V2Av3WNrxsF1q3qzk4yXri4AzakuVzgoJkpBorwNAgJA5aNJcpwxbuxVBfwR2H3b2uCms/48oeVRrXUbhhhbrEB3pfCEvaIvmSHAfoRX2MoA04sL3yVSaIZb2H0xsWYBZIhTepifK7R2+w==
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=ycUUyyRqydkafbiPgDfQrb38BnVTwnbLy0kPTis535M=;
 b=NV4a8dCHnSc6mc3o2yVjP5bQlzxIE4OnUzg3oqsiCg/d/0Bm3imd1VMFFlcd5kWWNbaXrPKxtx0pI2QgLF7jPr5liUONiHLXJWqsM5WT7rZV/s/pSZNG4ptU0go3fIV9jisv/PZ0kehCpwGbfsuuwBImlStqgNvcwRRDFMYKRXk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: Jason Andryuk <jason.andryuk@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v2] xen: Put wait.c behind CONFIG_VM_EVENT
Date: Fri, 13 Feb 2026 17:56:35 -0500
Message-ID: <20260213225635.346187-1-jason.andryuk@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB56:EE_|DM6PR12MB4284:EE_
X-MS-Office365-Filtering-Correlation-Id: f67a9200-f6ab-4332-f8be-08de6b53255d
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?XeMu4kUAiovf5L1z0mzzknysoh277V1GJowCdyETSKwq5M0eySJRL/GHMyA8?=
 =?us-ascii?Q?1/VzJCvnu8xFM6EjbrkRLx8yntRToCxjxG0eMaGIKdQEdYmIipn0wcoJP4BQ?=
 =?us-ascii?Q?G2mGHw4S8Ghfjsva6W+27fx0s8YQGbVPpc9Zl39mfRaZgMWn4ePgwWo7tc2K?=
 =?us-ascii?Q?9HM30HIeHlrqCOYRkULA1XunLt8hrehCKQI+LTi3OlxAit7n/Ua4ErWl4LOk?=
 =?us-ascii?Q?XWwXhwMqAe3PgTGtwEM1umXKoPwGCqqwcdc4btzEXPbCF1kYfYW2gq4wOKwB?=
 =?us-ascii?Q?W2WxB5aZFn8+4OYJxeObq0lQ5iR9/ZaTESSvrU7sB9Uj6Sq1vTJKWLdHNgOK?=
 =?us-ascii?Q?g+eKSBY+zsOanQoQvXXEg1H7+sLOb/IGsBSPRoe0CRHtPUHsZThlWYmMmBzP?=
 =?us-ascii?Q?YMAmBIKjLiPKugCh9cjRpjmYX4/D3OJYhipSk+mpEQR4LKRfBEdgUCxmr6OJ?=
 =?us-ascii?Q?+a+sX9a62TNfFXGELi9KuGhpYYhuP7o1vWbH3FnCSyi+qNqLBHUvH7oGpCqV?=
 =?us-ascii?Q?n3jMPBZFevhdiXYOTL3L+IcqJLh/zMgd44j4cVVah57pH6OH/wetDPFM+TM+?=
 =?us-ascii?Q?vu9CKfR8EMECahBf4eGghe2YbwWYSWpPlaQkkgG6RjPQ0c1MAE46ZySDieLo?=
 =?us-ascii?Q?yEuY+VvToyjYSzWig/pp6NlWZYR190oyLNG9V5kgaUZ42btnyrIpcGPYOhJK?=
 =?us-ascii?Q?9xq5oQ2XUwmzJOcByb915TIAWQLd/seKQVj7IKdfFK7P5oHcz6++qQiRE/MY?=
 =?us-ascii?Q?ygA0TuFN957govGV3IR6m30SUeHczkmWq+7mS8D1TVCikCaG4ui8d71KEVU2?=
 =?us-ascii?Q?UCv4of4ho2MalUWTGfRWmmjrS+ibfmHWUSxkrDfcpb30/81hJpAohtLre/E4?=
 =?us-ascii?Q?uaDyZVJIPuofPwBKTa6NluqZoTgZYRY+1NSpEdiWuA34D0mCRXKeGRO0NgHD?=
 =?us-ascii?Q?iKhSKM2RE/vD+PTjSg4iFqGoPE9GqhfQohIxMPFY4uxvqLc2juxhANqAm/xt?=
 =?us-ascii?Q?QneaH/RlYgR2CTH0Phbb3CJ5MF/i5Ct06Bh+nt3/8I2U5rm9fRaIKrfDN6Yv?=
 =?us-ascii?Q?kbgFbhFzwQkd8Sp2qsgZc+lWaI6NzzxVvdECCL8QuVV9m0PUFFfQzeGL7UqT?=
 =?us-ascii?Q?ApK8RqHiooYvR4WgVt92A3dsTPbIYkIDJLw7GUyfDyef+9UlW30D3PDz9At4?=
 =?us-ascii?Q?6wG80M/ugI07Q355cjMwv82y85/dYZShqlUrYSSaNlRa9dkixUVkQdTb+bKp?=
 =?us-ascii?Q?VH9sV7gI3zioqut+AZBaxp7SaApNqukFcYQT70p49S5Wa9U+4Y6vEpRGAhEe?=
 =?us-ascii?Q?aPAVxI4qi41R8Cajo+vr+MJ8s0duEPGhApPgS864lbNy9cZCTk9Dh2l0jbzb?=
 =?us-ascii?Q?6DlnzPTRmR8+NNqOepBdSLAiGqxWjY7w/U+r//wR3XwoDfSYVWQQAzULQciT?=
 =?us-ascii?Q?7BQ13VmYkYBkevJTQ8q1qn00nFnf8arvtYHgqhP/RKJPJKKkwH2HWtdj3WDe?=
 =?us-ascii?Q?b5rtW1WQg9z1g3j4TuqamKS6Y1imX72AEWHhSrP6xs+fmhI5hESc6yUiO+qq?=
 =?us-ascii?Q?AKgPybx80kj5EgvDnE/kI95s4i/n5NuK/cUkSeVzR7UOX0V6wsFJ0XkL9X1P?=
 =?us-ascii?Q?lYbgEFZiMovygNzcf3p87GDZoRrRy2yv7MUteqZZ/EuAbNt11KYsW5hu5v6r?=
 =?us-ascii?Q?jzIRtA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mur0ccYvPySXfHKLLHCwo0zj9dodRM77Y0iPzK3fHPJkyhHGgeCZixwIs40khJLFUuboh2td/F2CDTaEybImVAzAZ0DwluMdTk7iBZ2HiwIN7TBFbldZfDqKhrYqFqUnKuNahLdhpWxDoz/2dyGDEx2h4WtqJWWo5ril26V1vXX0wUDNzECgBFpl/5vaJeasHpdHe6iSbKEUi9CpY35ki3VGbjms5am5HnO4q/vVduszvXWL80y0X5D/AiPTMAGb2i+EOkLJXFYcIN4cFAB5cDicxW+1vEVcb1eaV4ZdxjjHNMeI8FOnut5ftjX4izcimwuBms4XTKsp0GKtR28fUyTyRh8rTa/2cDo3bAIIhy/Trze5qml9sfr4sbZ+zM6FJeIoA438vi8aG29/6TeO51daxdkaz0gEN+OHIsJxkVxHh+2knMkXhx4vyH+G1Ftf
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 22:56:38.6113
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f67a9200-f6ab-4332-f8be-08de6b53255d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB56.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4284

wait.c is only used by vm_event.c, so build it when CONFIG_VM_EVENT is
selected.

Provide stubs of functions called from common code.  entry.S needs an
ifdef to hide the symbol from the assembly.

Also conditionalize .waitqueue_vcpu in struct vcpu to save space.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
v2:
Use CONFIG_VM_EVENT
---
 xen/arch/x86/x86_64/entry.S |  2 ++
 xen/common/Makefile         |  2 +-
 xen/include/xen/sched.h     |  2 ++
 xen/include/xen/wait.h      | 11 +++++++++--
 4 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index ca446c6ff0..8b83082413 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -664,7 +664,9 @@ FUNC(continue_pv_domain)
         ALTERNATIVE "", "mov $2, %eax; incsspd %eax", X86_FEATURE_XEN_SHSTK
 #endif
 
+#ifdef CONFIG_VM_EVENT
         call  check_wakeup_from_wait
+#endif
 ret_from_intr:
         GET_CURRENT(bx)
         testb $3, UREGS_cs(%rsp)
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 4fc0c15088..dac8b711cd 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -61,7 +61,7 @@ obj-y += virtual_region.o
 obj-$(CONFIG_VM_EVENT) += vm_event.o
 obj-$(CONFIG_HAS_VMAP) += vmap.o
 obj-y += vsprintf.o
-obj-y += wait.o
+obj-$(CONFIG_VM_EVENT) += wait.o
 obj-bin-y += warning.init.o
 obj-y += xmalloc_tlsf.o
 
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1268632344..40a35fc15c 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -293,7 +293,9 @@ struct vcpu
     /* Multicall information. */
     struct mc_state  mc_state;
 
+#ifdef CONFIG_VM_EVENT
     struct waitqueue_vcpu *waitqueue_vcpu;
+#endif
 
     struct evtchn_fifo_vcpu *evtchn_fifo;
 
diff --git a/xen/include/xen/wait.h b/xen/include/xen/wait.h
index 1c68bc564b..e3510431ac 100644
--- a/xen/include/xen/wait.h
+++ b/xen/include/xen/wait.h
@@ -49,11 +49,18 @@ do {                                            \
 } while (0)
 
 /* Private functions. */
-int init_waitqueue_vcpu(struct vcpu *v);
-void destroy_waitqueue_vcpu(struct vcpu *v);
 void prepare_to_wait(struct waitqueue_head *wq);
 void wait(void);
 void finish_wait(struct waitqueue_head *wq);
+
+#ifdef CONFIG_VM_EVENT
+int init_waitqueue_vcpu(struct vcpu *v);
+void destroy_waitqueue_vcpu(struct vcpu *v);
 void check_wakeup_from_wait(void);
+#else
+static inline int init_waitqueue_vcpu(struct vcpu *v) { return 0; }
+static inline void destroy_waitqueue_vcpu(struct vcpu *v) {}
+static inline void check_wakeup_from_wait(void) {}
+#endif
 
 #endif /* __XEN_WAIT_H__ */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 13 23:06:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 23:06:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232079.1536928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr2FD-00033J-9I; Fri, 13 Feb 2026 23:06:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232079.1536928; Fri, 13 Feb 2026 23:06: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 1vr2FD-00033C-6J; Fri, 13 Feb 2026 23:06:39 +0000
Received: by outflank-mailman (input) for mailman id 1232079;
 Fri, 13 Feb 2026 23:06: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=v8h/=AR=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vr2FB-000336-R9
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 23:06:37 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a0cfa7f6-0930-11f1-b163-2bf370ae4941;
 Sat, 14 Feb 2026 00:06:29 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6120.namprd03.prod.outlook.com (2603:10b6:208:311::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 23:06:25 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Fri, 13 Feb 2026
 23:06:25 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a0cfa7f6-0930-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=p56CaKiCA3NWddG6KBu1gmP860x3cvgTPfGMsHLRIx7EqdBGiKYIZIpFqsQJWtb+Ft9HFcPbAyS96xCJkscX+23ItpIoS2jPAwtOFE+GXPl17kKJ0ZAtKRUJer/8RGC2yO23iXQxXqhswfwbMLoGzNBgXYxYy1H97LoWgT1HClFm0EBbmIteW5OJZ+RhpjMJV/oqu+/J+5iQGA22lNORRiIl22jZ+SSY1F0RfWaa93ln2QWLVOhFoFTiA3BFVrjq56/WLsQP4F158ogcOidlFd+vbQeZlOQnPOS3WLISQasPXnfm6627kWtXA0srl9JlycOdpefl3GDmyDREMQIP1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gWstmqlcbFh2PdISqfIc6omKP+dqUvJGW7ddMcoM+bE=;
 b=bta54EKX3Rk0ETqFusCxSjyfCaQZ6WPkyhM2uhvIXe27mY3xLDqnePDQBXH1VhYv2m+siapJexxNmzN2/msoYJx/3QslNNkNFoz9BqWrfpmHyS9tqdYGGbbnpbjbdq67QZQppCcMDt+aY2H2La3eKbGSzGqKBuF9LhzN0XWuRQlZG0Mzp0G1fBWjQbYQ2Nqt8D9jClVxk8Tra4G3nWsevq+zoAVlQRJca0x6pKAtkChdFEYjRWsp+p86DnHcNbbOA39Sx/x/c42+uNScWqur46rKEkOzR4qavNF0DhAqkhz4jIBFFrN1QGalzFvxkL3HcpoRF4R0oFBCjpQS/EhsQQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gWstmqlcbFh2PdISqfIc6omKP+dqUvJGW7ddMcoM+bE=;
 b=e3EUcksxEHnP9LHZK+U5MEOeApZUnzHUAgu/eE8eC2PsrNQ7dzVbeGwROLPpUBhXeEMvGs8wufVKXM/z1SdqgfLeK5FXSkBPF7RPwJEkHXyHK905Z4+0GSfHEEBP2Ap/qDulsvUP7EpkIhAztpyloJbY85imsucdDFj+6qjfPg4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <60153ff2-4c0a-4ce2-b5e1-e2bb750a6f62@citrix.com>
Date: Fri, 13 Feb 2026 23:06:21 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2] xen: Put wait.c behind CONFIG_VM_EVENT
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <20260213225635.346187-1-jason.andryuk@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260213225635.346187-1-jason.andryuk@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0308.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:197::7) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BL1PR03MB6120:EE_
X-MS-Office365-Filtering-Correlation-Id: 18d2a2cc-81be-4fa0-b370-08de6b5482e2
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?alhCSzNENkUzMFpheXlpM2RxVGFFV2lmUytRQTB6Smtaa3FkUi9xb1ZLcVRo?=
 =?utf-8?B?M2lWSHVFVERJMERGSXNQN3lDL0R4KzJmcSs2alhIbldMNHhRT2hpYnpEQmFp?=
 =?utf-8?B?bkZXT2d1NVNRM2xsblJsemdITTN1WFFMZEJxaEQxaEErRVVVcEY3NE1OcmtM?=
 =?utf-8?B?NDVhUEMwc3NRNHZGeFUzUjB5d2JiVm4zNk0rK3FEMHZzZ2VuaXp6ZFh0bEhF?=
 =?utf-8?B?NTVuVTRQM2REVUd1bklHeFpkTllJdkxEM003NlU0bXZhcmtvN1ZYOEdDaDl2?=
 =?utf-8?B?Y0Z1c0JpV09OTTZacXN4dDNoNGg4WllHT2hXeEtwYTlteXRRZ05WYTQzdjNz?=
 =?utf-8?B?UmE4dVVmQ3I2bUlyd0pjVmxsRk5XKzhyRit5YUx1cGhETjRrZjYzOU5xMkVW?=
 =?utf-8?B?YTlSMU1hL0Nvazh6ZzE5UW1MU1FaN2JJUENjYTdIRHA5TWFLRXJ1YWcrR3N1?=
 =?utf-8?B?SjBLVmdaa2RFREZObCtrRktyVGZFKzhPSU5yZ1hKcUQ1OWJHdzNHTzJDOFlT?=
 =?utf-8?B?UXAwdGVYTEdTN3RXSlY2eG9lM1RJRG1GVlhHSmhSUDd6NjdOdDJRWVlYTTRn?=
 =?utf-8?B?OFdnVjREbzg2TnBsUjlOVm9oWnNoSjVPQitNY2JRWGRzcVRUd0xOdDZ2YnFu?=
 =?utf-8?B?QURWb0tvVFlMbG1GbVFpT2kxaFo3UDRXNmRuUlF0NDZIaDlEdnE1eDYxY29D?=
 =?utf-8?B?R2xyOGVZL2h3OG5raWxWZjI3M1Nld0lxNTd2MDhxcENpWHNZRmhCSmxXWkUv?=
 =?utf-8?B?dDhETEhkT0Y1RUszUkpyYWlsUUFVNGhaWk1qTm5yMTZ1NW9Nc1dCUzl4MTFl?=
 =?utf-8?B?bmFQVFJQL3JyS0R5UDJ0b1pnblR1WkEyVjFYRVNBZHFaSVhDVU43MDNLR1RI?=
 =?utf-8?B?dGxadHFWbUpJdnMyektGVDNEL1daNFM0TXNFNi9Oa1BLRnhVcWpLdzNUQTRp?=
 =?utf-8?B?a0NGZHFqamtYaTQwOXJIUCtxR0EwOFJEWnVwN1FPTmU1aWI1TCtxQXVRbExm?=
 =?utf-8?B?L1lFTXJHaTY1UlIrSWNsRGowL0pJUjhXSjIyVHptUENqVitkR1NhOFMvZkNI?=
 =?utf-8?B?U3J2VFNieU5ZWjhpTm4vbGpwVTNIbzE2TTBKTlV3QzlKR2gyMUg5TTJ4b3hW?=
 =?utf-8?B?Q010cGpwb0YwSHhUMm1hcndaakEwTlZId294bEhuTVZEcllpWmdHZVlEWW9K?=
 =?utf-8?B?Y25qcUJCclNvaUpXM1ljcWFLb0hEdytzemIwblZERllYT2xJZHRtVHlZeVVK?=
 =?utf-8?B?Yi9YM1A2UDhWaGZ0dCtLaCtvSlVBcThzUk0vem1mZ0hHeHRoN2wrZWRMRUwv?=
 =?utf-8?B?NmRIMjMxR2lWdjhWZS8rOTVkOGVISnE5MjJjWHJvZWUvNHVMNUlibU5wRUJ4?=
 =?utf-8?B?V1VsQ0tIR0xaeWxrT0Rnek5NQmw5VVdyRFdjNE5rMTVHaXVmaTg2UHY4K0xM?=
 =?utf-8?B?RjZNU1dvSXA1dWJQOHJpaEhoeFJOdDJJcGFIWFBKTmVreDY4eEc5MEhNbW5F?=
 =?utf-8?B?MHJTNmdkMmczdXhOaFVwRldET05nU0VCbTltcVc4OFBFdytDUjhuNkZ6N1do?=
 =?utf-8?B?YWEzNW9hWHRkRlQwZHlxbDh2dzlpRVZCQ05lOEIrS2tuQ0NMTGZMQnNQQUkv?=
 =?utf-8?B?c2dWZlpNWVJXeTMrVGVibER1SDN3S3Y1c0JYaG5EYk9iZDNYeGczTnI3SVhM?=
 =?utf-8?B?bUJvYXJkLzhydm5wa1UvYTZjekdxNnc4M0twRE11aHhZbkc3dnAyTFJacm1l?=
 =?utf-8?B?cSt3ZzVRTG9YREs2cG1rV1pyUkw2S0MyTTlFTjZkZ3V5dnl0MGR3cHJ6amJj?=
 =?utf-8?B?M0RQc1NGTjVteHZGUGxtVUxFVWhPVS9Vc3JkWXowakF5MTZRWVJsVTF2RlhB?=
 =?utf-8?B?UGZ2Ym91dmp5UFRiV01VV3hhbTBUWXEwU1hSRWo0RmRleEh6SE80eFJ2NGlC?=
 =?utf-8?B?K08vOWJQNFNpQjAySVJmZUhJTjMreHlsdTR5aGMrWWtXd0NEZU9LdTVFNlBG?=
 =?utf-8?B?WGhlS2QwTEFvYlBENHlUK1hoRmQ0K1JnZ0I1cTRFZ2YrcGtuWWQ2bHdOcDZr?=
 =?utf-8?B?b2xLZXRpQzZmeHZSbEJ4ckI5dGxROEVRWi9QQkdXaGl5ZDRvSHArMytkek5D?=
 =?utf-8?Q?KrE8=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?RDJRN094eGgvMkg2NUx3cjhxRWt2d28rWDV4MTFJVTdISGtKQytEY2tJNGd6?=
 =?utf-8?B?WXlDZE8zb20wVTRLaEVTZDA3ek1kSlIyMWxNb09ZODNTYzBlbUZiTjZDYmts?=
 =?utf-8?B?c01mc29JTkNWUVpySmpRTGJOcnhsM2RNMWhIcDhldUYzeDhKMjRzNlFBMlFq?=
 =?utf-8?B?bWxPcWNyb3dVVDBPVFpUVmJDejVvcHRYb1pSZ05PVXNlMjhwTTFHZ3FvZDlP?=
 =?utf-8?B?eEEwZy9ycUxsTmY1eFVsSWVQWm5XOEh0RUVoRlp5cHY5M1hkOVdrTXBXNFhi?=
 =?utf-8?B?TktrYXFBZFkxMER4L2tSdzVKOHU1OW9ZdTRadmpzOUpGSGRIUmZBaEpXeWcx?=
 =?utf-8?B?Smw2b2w4MFovN0ZxY3BabDhRa0JuWHlEazNhOWpVOFN2VkJKRU1xdzE3bkZu?=
 =?utf-8?B?bEZWYlcrMVhob0tweEZPaUMzb2VMRE9NTS9mZG9RWmZRVGgwRHhWWHh4aUhq?=
 =?utf-8?B?SUYwcjlSK0pBNmF3WC8rdkxsdkpDenNQY3I2eENRS3Vjd3hrYytEODFWajB4?=
 =?utf-8?B?b2ZOSVJ2czVOQ245cmFBV2ZQWXFnclNJK3NCWkMxRE1SSE1EeTlPTE5OS1NF?=
 =?utf-8?B?TVVjVTlnb2RZMDkzQnZ6RDEzRmhpNnNyeWZXcDVZT2lQd2VRVStnRVpZM3VP?=
 =?utf-8?B?SFN6eE01NlNucGdPbk1pUUZtNkdNUHZFUlhOQ2EzN0JOazNtS2NkaG9HL1Ft?=
 =?utf-8?B?cjlVVDVaQmNOaUJFblZ1Y29MQlFoclMyRnJMTWtPOFpFVnpES2V3KzRYaEJN?=
 =?utf-8?B?bDdEbVRTQTBmNloyRlQvTFhic0ExeENnZGg4YjJ1cklCWDBzSVp5bk02dHIz?=
 =?utf-8?B?Sy9WU0pjRnhPczg5ZWM3SHVvNTRsbnVaL1pqNGh5Yk5pZ2VwNFpiaVpsTlJM?=
 =?utf-8?B?T3lUZ21pd3NCUW1zNlN6MnFweHNlMjEzbWxSWWE5K2lEd1o0bmhBNjg0U2xp?=
 =?utf-8?B?SnRXRW1XTE5uL2dkUm5RdGl6bGZVTnpHcVo3SFBRRjQ0eUxBNGRXblFrNG9W?=
 =?utf-8?B?U0dGV3Z2a1VPOC9NWlZLM3JoVUVnTmVaZVhBTEdZRHlDZmdQM3NaRkR5Qndr?=
 =?utf-8?B?aWwrazdEZm1MaElYd0Q0SzZNSmk5alNOWkFvRlc3UTR6VVYzS21rZVYrRTUw?=
 =?utf-8?B?VWNtU1NqampIcHRrL2U4QmkxY2hNK1NQNDdobUVCNlk0RHpIcXdnb3NXNlNn?=
 =?utf-8?B?dk01dkI2bDRQRC9pTzZKMmNYcnYrTXdGYjVhSHJUQXc1ZXA5QklJSUxneVpN?=
 =?utf-8?B?NjFnL3JuZWp0MktMREhIRFMycy9KOHZCR1NvaWJJWCtXTlFic3N6eit0TzlN?=
 =?utf-8?B?Nlg0RDk1RTd0cWdkRG9zUE96eHNFcG5XbkIwUWVsVkVSdkoxR3g0TlBocGh6?=
 =?utf-8?B?ZUhNRnM2aUxFMjQ3MGtoV1MxMDBCTCtrZmIyRUtGUVB3VGlGR3M3OGkxU0o1?=
 =?utf-8?B?OGFBclVjTkJONHVzT0xvYUNzc1BnalQrZWNYRkxRK0tDVTdPN3JkdEF5NEY4?=
 =?utf-8?B?TTdERFlCVkZRYmNTV0hTS2ZYYlVRSnZ6dlc0SlMzTzlTZWxGU1h1V3hLSzNp?=
 =?utf-8?B?NU1FdzZBU1EyRk9MWC96VVVNaE5GZEpGaFZYMTdwekxjVE9CaTNrTStzOXNl?=
 =?utf-8?B?RndyNUZJR3ZRT3lqbk9DTW5zd2RZU2JNeTlNalZXd0gxL3VYYnlqRDkwdllS?=
 =?utf-8?B?eiszcTFqS09SY3BzMk54ZVIwME4rRGd4andhTmZmbm9TbHIxMFg3R1dHODJD?=
 =?utf-8?B?ZTBLU2EvNmlqY0gza2tDWVJXSGVFSzZRUXJ2MmFLYzJYUkwzSXJOZXEzeUdL?=
 =?utf-8?B?WEx3UVJsczRTYTlxNG0vakRWT3VNcW1CcjExNkZJenBvaEc5YVg1WHpPR1hq?=
 =?utf-8?B?Uk5FdG9wV0M3aE9OWnRQMXRUZ085dTJIbHJVQVk1M0dBS3RoZ3VJUTA0Sisx?=
 =?utf-8?B?MUJqQnlOK0Z6QjRHUFkvV29hL01ib202MHBYaGEwN2lid01kM00zV1FIcHZN?=
 =?utf-8?B?QWIrYzMyZ29pcFphVzRqZ0ZWYms4cTlzSy81YzBEVzZrYmdkZWVpZldvTDEy?=
 =?utf-8?B?aWhUZGxnemFrMWt3TTVJMWJkc3V1UWdkelF3UmxUNGV5c3hEOWJkZ2hyYmRq?=
 =?utf-8?B?cUR0b0NVcUdqcFo3K0hkTitVZXhpL29uQWJCU0JDTFZMbmZHZTVmNy9NdFRY?=
 =?utf-8?B?MzdGQ0xyc0ZyaGZTM1AxL09xSkZpdExBOGRXZW9PdGlhWjkwVTBHMUJDeFNM?=
 =?utf-8?B?WU5NeTZNVWlsRE5hOUZ2VzRQTnZIbU0rUTdDU1ZFc0RtTGhqUFFRbWZJMWRr?=
 =?utf-8?B?ckJUOFdYTTc3MVgvcVpvOEluckgreEJuMWgzNmtraTBSa1lTTllpUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 18d2a2cc-81be-4fa0-b370-08de6b5482e2
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 23:06:25.2117
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: w6HzX2VuhHKI5BUWuogTQ/BwnEhFqdVRuapgQWXcAZr+H8+R5C1bhFQtsvVbCyyZEuOknpQAQNzPo+WNPYVy1zrDggHPOYjU2vIH1GRpRAo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6120

On 13/02/2026 10:56 pm, Jason Andryuk wrote:
> wait.c is only used by vm_event.c, so build it when CONFIG_VM_EVENT is
> selected.
>
> Provide stubs of functions called from common code.  entry.S needs an
> ifdef to hide the symbol from the assembly.
>
> Also conditionalize .waitqueue_vcpu in struct vcpu to save space.
>
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

This will do.  It's probably not worth the effort to move the file or
untangle it in ARM, given that it's intended for /dev/null.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 23:08:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 23:08:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232086.1536938 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr2HI-0003e7-Ke; Fri, 13 Feb 2026 23:08:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232086.1536938; Fri, 13 Feb 2026 23: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 1vr2HI-0003e0-Hl; Fri, 13 Feb 2026 23:08:48 +0000
Received: by outflank-mailman (input) for mailman id 1232086;
 Fri, 13 Feb 2026 23:08: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=v8h/=AR=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vr2HH-0003ds-Q4
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 23:08:47 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f2657452-0930-11f1-b163-2bf370ae4941;
 Sat, 14 Feb 2026 00:08:46 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6120.namprd03.prod.outlook.com (2603:10b6:208:311::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 23:08:43 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Fri, 13 Feb 2026
 23:08: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: f2657452-0930-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LnBWtelWEmnkRZh+4rpTgVTjBj8iiqZ9WnqreC5A80EtTG3RqSWUK+EiSqpYyW0qgiJ24/xQv446KQFE54ulKh26My5HGTuHrL4WWGU0A7gwxboheFhYzHCNWdJGudoWVYi1oKvEykJZNSOejsfAUdsFtgvYIEtM6UQoh5KJYcb1w1hLOuBUVHikV/fH4TkFEahfngflR4WTukTGAbUHoq6dsrXnUvsme8x2W4Zy2tdF7++yVUSfeAXftrtv18JgvHO/lfXsJ1lZfFznz8QHhBoPpJdvke9xoK5+QaYIrpUasSh/NPwB5Uo4EZU91NRmyaSeaFKSW2IKEQtbseP64A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=+hWE1K8RYaS8edjK+lxXn1O3S8TYeBEC9+BCY6ocqsU=;
 b=RAlzsyn8Dz7R8dIb80MQkmRCu64Uj5Cfm/KIYyvfBF+Z6RVywvu+gAjWUu9t0uc6v3Ta23X9iin+Y52/QYkSpvH/GFqcrHWqyojFDpSdW+GZ4+TkWAd6UuEZclHBYJiNM9YLbCbDjtiTmxsrv8exUJCr4sl3PUTLHIK74B0GH+kpkPfpmCKu4YAz5/o5jcxZsDX4HbUqmfP22Yo9Gop/fqPwVMTRr9rt2vc9rvVYN04I8ojrTxpA/qJHGyS9BjuZ2kBMOzXAUTWsiMw1m+xK/c9FzGr8nkQA3pJpZ6rQbRtBXq3rGFAqDRMCC+6znlHw8yxIt+xOycq2MIuIVonzmw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=+hWE1K8RYaS8edjK+lxXn1O3S8TYeBEC9+BCY6ocqsU=;
 b=WaglyPDIptc2OHeBaozb4HjsN7bO8sq4UpAnYrWV/pClYzNty6/OYUjzk3v5ldrrM+VxU5U+EZrnevBeQis/N+hGdqn7VjZ0fhmduyW3TOH9+fEOMxdua4fc2Uo+aROTSOxOMA2eVmbRNDjg0oGdbmEaXDwyAIhzNFuo7OeGTaA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f045fd55-5f3b-4652-b318-6d590d4daadf@citrix.com>
Date: Fri, 13 Feb 2026 23:08:36 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com
Subject: Re: [PATCH v2 1/2] x86/svm: Add Enumerations for the SVM virtual NMI
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
 <01a922d2018cf657f842dbd325d0fdf819078aa7.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <01a922d2018cf657f842dbd325d0fdf819078aa7.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0202.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a5::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BL1PR03MB6120:EE_
X-MS-Office365-Filtering-Correlation-Id: 83543a82-a20d-4c87-a5b4-08de6b54d553
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UnV0Z3NXUWZLVnM5YjRudjhRT1dxMml5M0lqdTEwVzdYL09hdnoyMENLY0Fl?=
 =?utf-8?B?akEwUDk0b0VSREQ4a1R3d1ZlcTZvWDNVTnBUeTdYejNqMDQvV0FvckIwYXl0?=
 =?utf-8?B?NkNDSUkrT3FCWEZqZUFCQUtUM3ZhcHZoZXVkRDZkTUZPVks3a2dpMjYxWTgx?=
 =?utf-8?B?NkRtcGkxUVJvS2t2bkorWGMvQjMxSE0zTXRDdEFiNm9XVjR5VkVVZHhPenY1?=
 =?utf-8?B?dTd5aUUrOFpyOG9JS1RJajhCZURVelNLckNiVEczU3RScm1PYjl6R3dCSlhL?=
 =?utf-8?B?WEpJdHRYNWRnOW5YYVJoRXVpY05XV3lFdFAzekt1N2RsMnB2T3pGeDVGbFNu?=
 =?utf-8?B?bDJQQmVFQ2RScldGL2o5N1NSUnFFL2JYZEF6M2RCTHFwWjBMY0crRlhYRmtT?=
 =?utf-8?B?bjVvV3Q0dEtlTlplVnV3YTJPU3htb3ppNE9Sc1lacTRuUFRIZ0k4MThqem5r?=
 =?utf-8?B?Tmx6N1RYakdPSWp3VTFqTzRJSGkzdXg2bmdjUk9HakFYT29sTHNHQ2ljdWps?=
 =?utf-8?B?Q2tDYmNzVVlhWnpWWVF0QjFoYnIzZ3FUU1Y3WDEyUW8rYmRjZlhkQlB5anls?=
 =?utf-8?B?eFdnOWJ3SzdkTEpKZUU1WHZ3M2U3TExPVGtaVHFkNEhheDdlKzZaU2g4VldX?=
 =?utf-8?B?VktIWTNpL1hMN2wxczQ2UXBnRzgrQXgxYXhHbHBaSXJtQnFPOEdDZ05QRVd4?=
 =?utf-8?B?SEFJQ0FNdDhaWWhtamdTV3owNkp0cXA5cTAzZzFLeTVNVUxRU0s3YzdQVWFk?=
 =?utf-8?B?NHIxakx2NHZZUnNTVzRrdG9CVzVkSHk5My9PRlJQQkVEMUxPZmVVVlhacUUy?=
 =?utf-8?B?L2hhSGI3Yjhva0g2ejNmbnFDWEVlSFZMMFd6UU1RWmRoT3NrTmFOcS9BQ0w1?=
 =?utf-8?B?dHdIaFdpWkJwN0swRDFVa0VPNW9CL0Rhc1RoOGsxNHJxMVYvYnQ1VG1kVE9x?=
 =?utf-8?B?ZloyMmJqdno4VWFkd1Z2VXpvNTR6QUE3MlljRlZlcUJEdmpsenZLRlRkeSty?=
 =?utf-8?B?RmhmbWlxL05mMEpDbHI3RDJzU2dnYTFNaURtNDZwaVFzenNzVjFSVjdzQmhn?=
 =?utf-8?B?KytEYlJnYzNzSXFra3cxSWVNWmR0SEg3L0ZpUkR3V1RZck9oL2txWFM4UU5K?=
 =?utf-8?B?ejRMandpU0dqdEpUOUJEQUNPVlVQcDhZUkkxc1pxZHpqeWQxL0FJTDNNbVNK?=
 =?utf-8?B?Y2hvZUMwd3JhbTF0S2NncElvYnZ2VUd2d2o5Y0t6RlFtZ1IxdmFZM0JDdENL?=
 =?utf-8?B?NFNqQUE4b1lHL3JqdnlicDVvUXFsWmw0ZUpaNndtbW5OQzBSZkdJaW9FNG9O?=
 =?utf-8?B?cHg3c3BDNExkaEVvdUw1Q09TbGN5R2pOK2pqNENwQmdhR3BKVkZsUTR0YWR6?=
 =?utf-8?B?cjhLelJkMytRQkphUU1PZ255bXhIYmVQWlBIdVd5OXREOGk0eGIvUXdHR3lS?=
 =?utf-8?B?MkcyK3kxSVBqUC9rbW1UVVhlL2I1S1h0WjE2dzZnTDlBZ29Mc1NocnYyeTVh?=
 =?utf-8?B?VWtDcW1zTUl6MER0L285OFllM0lsMXBKeHlpbVRzMEdEWEl6d09tbkRSUGlm?=
 =?utf-8?B?L2swdHNaQlA4SkVQdFFWRWY5UHh2cG9yYmt6OVVHZnN6aGJha0l3NE9xT2hz?=
 =?utf-8?B?MjdmdTIzQ25VRTlUaWNzWU1HVkxXeUdUNVVwNTJ5WTF4bXB5UnoyQkVIcUtk?=
 =?utf-8?B?MDV4aTdxSW5kRHBYeXVLSkNoTkh4Z0pUSGE5bmxtQXJPanhWcTZ5c0tVSTJp?=
 =?utf-8?B?TFl5Ny9UQ0Q2Y2xydE5lZmd3OXR0MkFlTEVielhDc0JKYTduZ0ZyeXBibDNF?=
 =?utf-8?B?bWlPOUFXZ05xUDVMSE1ZNHAyVGVWaEN0Y20yZjVURC8rMU1sbUxjQlRHUWF4?=
 =?utf-8?B?S0JwQTRRUG5FUlV4TmYyZkZhZ2ZWRlBJbkxWRHZkbHJFdmYraHhObTYvM3Ax?=
 =?utf-8?B?MS9BZy9FL3cwWmlsdzdnRjBrUERKM01GOUVCeVpaT3lrV0FBK0JRbStnZFpI?=
 =?utf-8?B?VW9zK0N3MTBNMDNNSlF4U2ZwL1RRQXlONzJpS2ltZUtEMWc1eUl0cDdHdHZI?=
 =?utf-8?B?QUJZN0FIQ29QcU5wVEp1a2RhN054alBmbU9MSFFwOUVIQVFEb1Irall2QXpS?=
 =?utf-8?Q?7pAQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?b0haQ0ZhNlpXNmZMSVlUWDJhMTcrNGgraDhleUYyUEIvTmRmMTRyTFczcjRm?=
 =?utf-8?B?T0pLS2xqdFo3cTNaV3dhcFhIUXhMbm9vajZwSGpWa0MyT1VEZ0w4Umo4S05C?=
 =?utf-8?B?dFc2dFZaMWtkNmFBS0U4aXlSTnVXU1k2dlJUYzBWYStiL0FFRVJQZFZ6OS9Q?=
 =?utf-8?B?VmwvMlo2YnBQVnQ1ZWRTVGs2OE5XWkI2WnRtS0k2b1FUUGpCZTNSYWJCSi8v?=
 =?utf-8?B?Y1E2eExBZDZBcEZ4b3N6bFJyUVFPOVd5VjZxUEVsT3IvK2VIMUpKeU85Umdv?=
 =?utf-8?B?UWNxZDVUUytCRmpjdnFYVCtWdnZHN1JER1FrNU43cGNJOWhWYlNCb0QxNEp2?=
 =?utf-8?B?MEhSQmpKd3Y2cHBoY2NJNklFTzEwSlVheTN0Q3VFOEw5RTZ4MndpSEpKcStu?=
 =?utf-8?B?TDhjNldRb2ZiYXpsalozanhRVi82VmQwWW1jb3VyOStIQ01TdVU1aVo4Q3BP?=
 =?utf-8?B?cWJ0dTdzZnZnMnYrcTN0OHBmaitUNVp2VGRZcU11SVF5dW5vQzUxRDducDB4?=
 =?utf-8?B?bFhKV1h5QjhPVXZHb1dKRURLZzZjS0w4OFNubis4cTBzOHo3T21rWlEzSG90?=
 =?utf-8?B?V0N1cEZSQjA0TmQyZ2hSQjNXUTFabzdDbEtmbWJmalhUQUFxUjk5cGpYTDNT?=
 =?utf-8?B?SzBuLzgvamNYQXY3bGltbWQ1T2FMMm90Vm1xclRHY1JGVGRYbG5GME9lR1ly?=
 =?utf-8?B?UHNRbVk2QnYxYmRVWEtCWVVYWGpueDdvS2RhYUppSk5GZHdVVGJWc0VtQVdi?=
 =?utf-8?B?cFhQcWZTRkkrdVQrTmdFU1l3ZHY5Y0ZPdE9qL0FiUVlqc2hXSXFDaXpienFQ?=
 =?utf-8?B?NFBwMHM5Z04xc2lQbjkwNjVSYmdHYm9Kc0hnTm1Jck5USEZFVlV5UnErOVpJ?=
 =?utf-8?B?eEtXaS80d3ZSTjRIcHRaSXBUUFZDeHNYVkwxMEhHb3EzQmwwOXYyOThZNllm?=
 =?utf-8?B?SExRKzdRWExhWVB1NmUwMFdQeTVCL3dreEoyUGJLTm9zQnQ5YVhFSDRaZHU3?=
 =?utf-8?B?RHZuMUl0NTQvZnpuMUNEbzhvUW9SODlMd2kvbEhtczliOG83THBVN0UzWjRT?=
 =?utf-8?B?YTg1d2xlYlIvaFRxS25qNHdQeTBFSjM4QkZWeE9IUUFxVUtlQmNIU2xLQlgr?=
 =?utf-8?B?OFZCTlRqbGpxZFZhbTZRSHIyQkxjZEMzSnk3clQ2VzhCbW80dW5GRG1qYjdD?=
 =?utf-8?B?VVZTUVZEdnBEbkZlTm5xakx2K08vaENlRE1iMmRQQUN0NTBlWGtxd3ByQnZE?=
 =?utf-8?B?TjVsdTVnNkRlakhmMTd2Y1VhdWN1Tk5uNmlOaTdNTFc0TnB5Ty9XQ3RwZHBn?=
 =?utf-8?B?Wmd5N2dpMWtjYmh5N000MWdYdTNXaVBqMnlISkFlZlBMcm90RU5HYXo3Y2hq?=
 =?utf-8?B?RkNRNzlDYnBsNnRxNStUd2RhalRDTFZOLzMrWUNPSkt4U0tOaWhXaGhNSzhr?=
 =?utf-8?B?R1dYMTJEWHZubHJ2K1NwTHRYaHh6ZFI0UkFwcjJ3SEo1OVFrcnZScTd0VEtF?=
 =?utf-8?B?a2oxWkMwYkZZQXIvbDVUSE1rYWxGeG1NdHFDWTdpN1d0RjZ2M3kxSWg4TEw0?=
 =?utf-8?B?ZjROLzZkN0JtOFBYdndpTEV1bVc5YXYzUVhDV3NuckVoa1QwY0xiaW5lcDB0?=
 =?utf-8?B?U0VEY1BXQlRsaXJJM3grSzZQb25tN1M5YkIvazg2elplZ3k5bDQvWm14N0xz?=
 =?utf-8?B?bnJ5dWtxQVpaWHhsdkU3ZmJidHdNK3FvTHFZTDNDNkwrbERoUThZSVV1anFN?=
 =?utf-8?B?c21JVU5KZlBjNllqR2lwQ3AzaDV1bW9YRGRQQUVXM3RicFIvR2taVktUcXlW?=
 =?utf-8?B?cURFMWlZbWUvcFhZQ09jSVVFcFAwbDFoTlRUWXF6a2hIWm1YcStVckRPZEVa?=
 =?utf-8?B?UnZ5US9xRytlM1VPcWgraTJoR0QzTGZhNDNYclBSNkhBbXRtcVdMUVkxdXk5?=
 =?utf-8?B?TVVETXNkclZDUVp0c2hPUHl3N3VUV1RKdWtuL08vZ0JwQkd2YnRKb1RNSTMr?=
 =?utf-8?B?S3daaldNbXlpbmpmbDdYVEVNZ2h3clJWOUc2WW5FRlFFTHJPTmdPbE5LcFoy?=
 =?utf-8?B?ZG5rM3EwYXk3UEt3T0dYc2FIa3o4dldwUVNtMUttZGI5Qy9YTEFzcTBnWjEw?=
 =?utf-8?B?YzlwNEVoUmxBSEhhVW4zNE8wVmZVbS83ZGQydGQyOEEvYXZuVTBYY3BvY01S?=
 =?utf-8?B?NS85emg4QVZyK3g4cXdvalhqL29yMVZjTHhYb3ZDMytVbFZ5RS9pRk5vanJy?=
 =?utf-8?B?TzY0MkxnOGJDVXRVM3FqanJITmcyZW1vU08vK3NJWlZCbWo3OGhLN2N2ZGpK?=
 =?utf-8?B?ckV5Mlc3ekVUZ2VRV1cyQ3ZRaFRvc0JWTVNZM1ZWdC8zZFdHNWh0UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 83543a82-a20d-4c87-a5b4-08de6b54d553
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 23:08:43.4269
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: V+Lgi4+p3troDLn8LLzFkGVwwh3VvKsiBRI9ZDWevX7kMRbhZ6JTKINsvXfOaJ7H0H7clOIsZWhScxjr2njPkt5DQnLINlyek6Q+xyvV5C4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6120

On 13/02/2026 10:44 pm, Abdelkareem Abdelsaamad wrote:
> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
> index 7d9774df59..ad17ea73e9 100644
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -115,7 +115,9 @@ struct hvm_function_table {
>               virtual_intr_delivery:1,
>  
>               /* Nested virt capabilities */
> -             nested_virt:1;
> +             nested_virt:1,
> +             /* virtual NMI support */
> +             vNMI:1;
>      } caps;

As said previously, vNMI is local to SVM, and needs to not touch common
HVM logic.

Specifically, delete this vNMI boolean and all 3 hooks you add in the
next patch (i.e. all changes to hvm.h).  They're all layering violations.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 23:17:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 23:17:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232095.1536948 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr2Q1-0005Dg-Eh; Fri, 13 Feb 2026 23:17:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232095.1536948; Fri, 13 Feb 2026 23: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 1vr2Q1-0005DZ-BC; Fri, 13 Feb 2026 23:17:49 +0000
Received: by outflank-mailman (input) for mailman id 1232095;
 Fri, 13 Feb 2026 23: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=v8h/=AR=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vr2Q0-0005DT-1N
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 23:17:48 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 316e287c-0932-11f1-9ccf-f158ae23cfc8;
 Sat, 14 Feb 2026 00:17:42 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN2PR03MB5200.namprd03.prod.outlook.com (2603:10b6:208:1e6::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Fri, 13 Feb
 2026 23:17:38 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Fri, 13 Feb 2026
 23:17: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: 316e287c-0932-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GBcGoe9mGpubySIS0m6x4G8s5bN+pqUe8DSkcg0mp/S+Fy8UkvpFw2H1O1s20UfNZEAZiAu3kq0ZGMGZ+MjxiX9M9nmCG5a/nzrrwCmHx7jkRq+QElFA7rsIxps1htxwv0djURGnUmXtI4PblDXM8+22XxW0Uo5ychHITFaJSUcTwB91bRBwu0428b9Dh0NTtaVPuwExz2hWgXnCFluwqIdD8TwDeLOU3gBM43/43SdLrcCokkvvDU87Jeu80XjkNuLsNVxjFSvXrcrCf2s5B9mWtXW8eMkQ9M4xk+mru+ZINA/eEyNPIinra4LAnXHhcW3O2Oz4r+7dDgwkB9uP7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=iVHRu33hvp65dvsTFs5JCOYQ5bOsSNFS2e8T1SyguCQ=;
 b=dcJyscMtQfJcdVxv2e2/R2hDepcNEBV8j12QP42pwJ003B5N/D5aklhS5Actv9r7CurSybRdXFu3b7QUvv5uIznW5ddySIZz18wX6pW2q+/Lxk6W3+6KEVNPgsdy8IIGcEVyb6VcX2p9zNz793+CHbLxXcj/iK8mE2BOdSJr/b5D6/AxofMuYG40wsdoitHtLMySHJtBhmP8YTsQ//3uG+/Tcxwqrrtb5+qgg/Ff/LMV0jQH0Na2OPAeJ8YWpG7fqsLuXVYr4QDAYZnRmL5df4lVgN3FdlLhcP53IVLRcORBSR1FeSUeXLTF2NmpXhy3tyT3Grf5y7EwNs+5TtcZtg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=iVHRu33hvp65dvsTFs5JCOYQ5bOsSNFS2e8T1SyguCQ=;
 b=NOymYDGzd6Msg+YweAdrqdmkJjl+7/A6UPqjAxJWr9gNbgqH+MmzdSMSG5THN3zlw47C0hHk43fhjkmIn0AfuXYtl1jYo5DFd5hmSvdsW7JOB1UbQBkwg36Ugg89LjGPZ5sTIMiL7G2H1dOH6n54KJgl8D8x9Sk0EYKayAOBdgc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <704f06b5-eb2f-429a-8ca0-2bbdbc24cc2c@citrix.com>
Date: Fri, 13 Feb 2026 23:17:35 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com
Subject: Re: [PATCH v2 2/2] x86/svm: Use the virtual NMI when available
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
 <54110a1c3800557d1fe611e4f8008b702df5ee84.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <54110a1c3800557d1fe611e4f8008b702df5ee84.1771016301.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO6P265CA0020.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ff::11) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN2PR03MB5200:EE_
X-MS-Office365-Filtering-Correlation-Id: 019dc0cc-525b-4f78-bd29-08de6b561463
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?bU5WTFZCZGxpMjVZUGtDUGphcWNENzZBL3hqaWZCVWZ3T2J5S3lQaG0xRGFE?=
 =?utf-8?B?Tit1NzJRWEYyekRsTVpieWhiWFVmUVpqV1Y5NzhZYUxieUh5WlA1QWFpcHpJ?=
 =?utf-8?B?WEJGRks4UU1icVpqWEtNL3VkTXlyaDNxR05XVFZldG0rbDJNYzNzOVhTYUZI?=
 =?utf-8?B?SElCYWp6czlQVm1SUHUrS3dMQzhqS1BhWGFKV0lxY0VoNlo4bnJnaGNXOXhq?=
 =?utf-8?B?YnRUc0JMQTRpWVg0clJPU25XU0VVTFhGZEdaNURhSFBJOVE2aS93ODRLOXRZ?=
 =?utf-8?B?d25KNWp0SmtTN2lUOFY1YjZPVm8zZzJGZndyaGFJSXUxTXBvZUM0TUFMeUNm?=
 =?utf-8?B?WTlGVGN0VzQ2ZU0yQVF0b2VsUFdGMTdGUW1KYVk2UWRtNDl2MVFSUyswY0Mr?=
 =?utf-8?B?RDNpS0E5MjBrVUhhRDFUK2pycDlhSTZOUHRLRWt1NXhwMEpXa2xaU2RpbGt1?=
 =?utf-8?B?K3R5VjY1ZzdlREYwSjh0MzhuK254WEh0QUZGbkZTTVE2UUIvcXJlTmUvdkMv?=
 =?utf-8?B?TzUvaDBNbU5TWnZiT0I0U3pTYStTcWpsdkxKOU5aaDhWNm8wS2JXakV5YlQz?=
 =?utf-8?B?ZkQ5OEZNV3hKakdNU1MzV3ZsZFJpcmY3WU9qZVF1RE5hT0Vzc09ZWlc4WkVX?=
 =?utf-8?B?WkZKdkZkS2VJZ092bncyVTVrYUttWFlGc3VhdHNTQW9KOG1QZTNEcTdDSW5z?=
 =?utf-8?B?cVFLMzJVNHFNOVo4aGdUdEF5KzRHMGFrMFdkcjdndFI4N0xEcTZkOTBDalY5?=
 =?utf-8?B?ZUZ2TE5sc1gvclBzRzF0RlpoZjN1YW5aUHVyYlkxZmk4SDNxcTVCQ0dybit3?=
 =?utf-8?B?SFdpQkUvZkxaUVNrZmpENGp5aVYvSlczcmo3REJ6aU9XYzhUa2VnSVhhL2M4?=
 =?utf-8?B?djhWblIrajFkaGNEK2QyZGlGMDFscUUxZEpHUTdJeld3emJ2WFpkandPZklP?=
 =?utf-8?B?SHc2eFAwd3NMVjRWZmx1eHRhRjRyRTFPY2k1c1JsYUU2ZDhlZzJ6QVZKblp1?=
 =?utf-8?B?cEJJMVJQTzdPa0VnYWhOMWtJZUk2Q1BHdGNQbUVnakRHbFZyOU9LWHhEVmdS?=
 =?utf-8?B?MXNaR042LzlxWHNtT0RXamJDSmU2YVNSMXhYY1JqM3JYNlpkbTFkbCszQUli?=
 =?utf-8?B?VkpORU03L2h4eUJZUCtKazNXLzFvL0pUZ1ZQOElYT05XalQzbTFaUmJxdUZw?=
 =?utf-8?B?YTY1aGozb2xIencvZElHZy9XVlFuYnhzdjJCT296RVJxa2Z6bHNzTWpPUDhz?=
 =?utf-8?B?T3REMXlHeHlXL2VLc2M0M2x6a0R5UWRKc040OFFMVW8xQnEwTlZnU2IrbGlV?=
 =?utf-8?B?dHBKcGNlRFlmc3c3WGwzRTdia05VOExCUjRlS0pjMTdSSmNuZlV3SmxmY3RD?=
 =?utf-8?B?aHVqdGpqcmVSNm1GdnJMTFdmN1BQeWVQMm92c0tGaGNTdlhGSSt0NVFXQU5C?=
 =?utf-8?B?cGNxWHBYaEI3WkZxQzJRR25pQlVWeGhJRTFmYkpJYi94NUZEK1hpM2RMMmdU?=
 =?utf-8?B?L2R5cUVsc2cwV2ZxTmpBVkdBS2RLVEtNTE1CZ2FRRm1sckxYQUdWbjZTWXlt?=
 =?utf-8?B?cGFsUURWUGxNQVRrZ2l3SXRNZmNTU09YTGY4K2Fud1FwWEVidHMrL2F2M2JX?=
 =?utf-8?B?ZEkrUXVyT3FCaHRyVGxvdVJtYTFuUGVaeWtEL0FWTlc0Nks0TGVxZWpKS2VM?=
 =?utf-8?B?V3FYR05FV292YzFKOG1RQm1PZ21qcFVXTnZEQzlRcFlMRTAvRWJNLzJoMWUv?=
 =?utf-8?B?cjRyeFFxbWVVTWdoWDErYy9naWN2QVkxbVJpTG5oaWM0bnhJVjRvd1lVKy9S?=
 =?utf-8?B?WkNPV21pU2EyRUI5eGFIVG5DdjZQNFBwWGJhdmt1SmhUbWoyV0NzQ241Uit5?=
 =?utf-8?B?UVVYdmhJTXp1ZU1UeTA5RWtkWjBVelVYSEUxb0RvU3VkZzZSVVVRYkllQjNV?=
 =?utf-8?B?T0cwNGVqRUV6eGtqUkpBL2ZIUnJYVXAzRFRxblV2TElWRU44MzZlcVlRMk9S?=
 =?utf-8?B?bWpIVzdNbHMzUmkzZk1tampNVzc4M0tkYVJTdm9jY0dkalA5Qm0vMkZlbnJL?=
 =?utf-8?B?TmZzbEhPU0JaM3RuMlZJZXl6MXNaUWw3dWVzbmk1RTFNc1BOc2hDWTg0RzBm?=
 =?utf-8?Q?AlIE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NURSNnRBOFBQSTZ0cGRkQkphRzdqdlZ2OGVJWWI4ZkZzWGNiVXBNRXYrZnhu?=
 =?utf-8?B?OXRCYkU4TnRLODJXK3gvRWEvMEo0S3U3aEJCWHpxUC85aFR6Y2pIVDBUZ3V0?=
 =?utf-8?B?dTg1cmZaUE9NYmNMWW9ISFRSNDV0ZnhHS3F2Y2JZWWdSSkg5MjVQeGUxWms3?=
 =?utf-8?B?RDJlS2pvc3lTK2NieDNLaW55bzVYbUtmekpLZi9nbFYyblkveDRJRWZZaStK?=
 =?utf-8?B?SnQ4SUVGVXBWMHlHUG9ZTXYzSUhmanFXZVAxeWtXOXgwS2JYeXdINVZ4SUJh?=
 =?utf-8?B?VzdSYW5kVTgxOEovbG5lSkxCOWpOZmx3NkYxaGdlWnZxU3BySVZ5bnlpcTI1?=
 =?utf-8?B?M2l2U1R1WElQdFpCKzExUHpqRWhsYmdKSTNvRVZlUmw2Ui9aRngzenpod1oz?=
 =?utf-8?B?bnhrMVNJR2hnUUsyNEpqOXRibVA0Z0NFanBmakpWajdqblFKRWdscGlOZ3py?=
 =?utf-8?B?OEduaWY0YTJxcHJMZW5MV0VGeFhIa2NqMjV4T1lMNjdkVDF1d3cvOHpzbE8z?=
 =?utf-8?B?ZXN1MFRPNkQ3QkhEVlVVTHg3N1VNR1cyS1FxYnFmMVU5bHF3Tkp3WmtqaGI1?=
 =?utf-8?B?VG9BcGhsMDF3UEJZeGFqc3NUeEFySTNaaXdvSEoxSjFhb2JDa0NFSnZ4Uk5T?=
 =?utf-8?B?MHl6TUxZWTVPUlNyUGZkOXNxT2htWjRaZkY5WGthY0EzRHg5d1Z2azdvRHN0?=
 =?utf-8?B?am5kclllQmpCVmxrQXZXQnYxTS85ZlhXanUxRVA1dWUxbGNEa25tcEF1UEpH?=
 =?utf-8?B?T2Y4MDBaS0UrTlBtY3pZSXR3UDNuQzdzbmlFV3o5NW9GY3ZNYUZ3SVRNeHpm?=
 =?utf-8?B?ejdNV0V4b2EzMzdaeFZ2VkhsNDJOZU8rT3licjJlV2MrOHlmQThVM0lNRjV3?=
 =?utf-8?B?SFUrSWpZRDYrODNnQUVUem9VaStLTXl1YlVKNCtpbmQ3dmpqR1paeW9RNndr?=
 =?utf-8?B?YVlVZXNEcjMvMGpHeTFDTWlWK3JxSnB6ZXdFaDYrQWVmZ29SWXBPd3ZLcWlD?=
 =?utf-8?B?SDdVR3pkQlI0WXRUb0J0K1ZiNm1naUh2S045cHMzYTlrOFZ6Wmg0TmwrNFNX?=
 =?utf-8?B?d0lQSmVlUVZKNGpqU3M1eldTOGhUVCt0QjJ3Um8vYUJNdHFvdVJ0aFQzbEpq?=
 =?utf-8?B?U2l1bFhsWUlZZ2hSTDFzV3FqNVVjTmtIdEtlMm8vOWNURUFpVTYxRm1CNmRk?=
 =?utf-8?B?YTFYZXhRSmh1V3BIYzlBZ2Y5SmJndUgyR3NWVFAzSytldXVweVpmeDNDYlk4?=
 =?utf-8?B?aU5nQTNiV25NL1pWUmJRK0pEa0g3V1R6OS8yNXg4ejkxNmJwUDBIdUpwaDlY?=
 =?utf-8?B?MmhYMVdLRENGbEkrUTNGbTVnQ2I0OFQ2cE1ET0dnNXpGRDBMZGg0ODgxRmZy?=
 =?utf-8?B?OXlsbENhRUtSVGlyUUk3YnFiU0pGS0VDR3NIY0s0ZUpvRkhuZGdPRXdQZ2M4?=
 =?utf-8?B?TENjNkdYalpxUEhtS3RiRVRLeVN6YjhuSzVEV2lUVkxaV0RudVlua0lNTWRo?=
 =?utf-8?B?MnFSOXhGUFpHNWNmYUhhNVBvWDFxN3pLS2YxbDhISHpjNENFQ0s1YTgweXJ1?=
 =?utf-8?B?aVRhNzBPT2xJak01TTRHTTFMMGhUR3NLQlhuN0NhWEpXMG9UVnZiVE02ajZx?=
 =?utf-8?B?cy9ZaUo2Y2dIdFBEdUxMclhKRDVaa2hqQmc0TkNKTU9DNE5DZW9wbmZoUXZJ?=
 =?utf-8?B?ZUFiUWJ2dkVYUi9hcVFocWhTelMrendIOWhKdjNXMk1tQTllU1VxWDFBYmlt?=
 =?utf-8?B?Tm5FR0NteGNVcHF6eVMraWkxei82NTVmUW5KVDhQRXVYb0JoWXJ2VkIvY1JL?=
 =?utf-8?B?bllqSDRlTXY5aHo3RVEvWEZWMmhnOWFjc2gyRXpKcXdDZTYxRnkxMkN2ODNC?=
 =?utf-8?B?UVdBM1hYOVYzOE9RZ25iMXZXMUhxZDdOd1JwY1ljU256Y2NzN215R0pBMUR5?=
 =?utf-8?B?aWQ0TUJ0TTc1eWRjOHZXZU5DQ2kxb05YWUJvNlhzWWN4U3loZjQvUm9WTHVU?=
 =?utf-8?B?TFo4N013a3NFazRMQWlqMEl1dGdWcUdlU1ZKUElIUFFhK1k5cnVseXlVNmZU?=
 =?utf-8?B?RGtNM1hZTTFYRE9DWVN0L0NiM3hLQzRXSlNGMXBQYldxQWd2NmZpTlVDcHQv?=
 =?utf-8?B?Q3g0bmJKUmRyVHJyZ2J2Mjh6VkFsUlVodDhhNkNzZ09WMG9pWDdKWk1zM1NN?=
 =?utf-8?B?TlA4Y2x2UEMvWlZRczAzdzhKODRyYjNmaUpNNzlpdThDeXU5aEhoYm5KakRS?=
 =?utf-8?B?ZjJjRnE4Mmd3aUxnRDlJMTdSRWpKcWhBY0NRSkxoWHdFL2lEeGtTQXZrbEdz?=
 =?utf-8?B?YmtjRVRIS3l2U3F2ZDc1Uk0vNGdoYk5rYnMvTVN5aHJkUW0yWm9Zdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 019dc0cc-525b-4f78-bd29-08de6b561463
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 23:17:38.7346
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pUHsFU8/d/TZ4rroZbGCq9w6+pvuk5ZJcAptXkFpcfZmejeLAiDjRrmVEM532ENB94M76f23AtglR6G1Vjus0CgaDCAYqex9AWKzdZBvwmo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5200

On 13/02/2026 10:44 pm, Abdelkareem Abdelsaamad wrote:
> With vNMI, the pending NMI is simply stuffed into the VMCB and handed off
> to the hardware. This means that Xen needs to be able to set a vNMI pending
> on-demand, and also query if a vNMI is pending, e.g. to honor the "at most
> one NMI pending" rule and to preserve all NMIs across save and restore.
>
> Introduce two new hvm_function_table callbacks to support the SVM's vNMI to
> allow the Xen hypervisor to query if a vNMI is pending and to set VMCB's
> _vintr pending flag so the NMIs are serviced by hardware if/when the virtual
> NMIs become unblocked.
>
> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
> ---
>  xen/arch/x86/hvm/svm/intr.c        | 13 ++++++++++--
>  xen/arch/x86/hvm/svm/svm.c         | 33 ++++++++++++++++++++++++++++--
>  xen/arch/x86/hvm/svm/vmcb.c        |  2 ++
>  xen/arch/x86/include/asm/hvm/hvm.h |  9 ++++++++
>  4 files changed, 53 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
> index 6453a46b85..bc52f8e189 100644
> --- a/xen/arch/x86/hvm/svm/intr.c
> +++ b/xen/arch/x86/hvm/svm/intr.c
> @@ -29,10 +29,19 @@
>  
>  static void svm_inject_nmi(struct vcpu *v)
>  {
> -    struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
> -    u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
> +    struct vmcb_struct *vmcb;
> +    u32 general1_intercepts;
>      intinfo_t event;
>  
> +    if ( hvm_funcs.is_vnmi_enabled(v) )
> +    {
> +        hvm_funcs.set_vnmi_pending(v);
> +        return;
> +    }
> +
> +    vmcb = v->arch.hvm.svm.vmcb;
> +    general1_intercepts = vmcb_get_general1_intercepts(vmcb);
> +

There's no need to defer these assignments.

When the HVM hooks are deleted, the correct logic here is:

    if ( vmcb->_vintr.fields.vnmi_enable )
    {
        vmcb->_vintr.fields.vnmi_pending = true;
        return;
    }

> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 6e380890bd..00e5630025 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -545,7 +571,7 @@ static unsigned cf_check int svm_get_interrupt_shadow(struct vcpu *v)
>      struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>      unsigned int intr_shadow = 0;
>  
> -    if ( vmcb->int_stat.intr_shadow )
> +    if ( vmcb->int_stat.intr_shadow || svm_is_vnmi_masked(v) )
>          intr_shadow |= HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI;
>  
>      if ( vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET )

It's only HVM_INTR_SHADOW_NMI which vNMI applies to.

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738c6..f5c7ea0b0dbe 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -548,7 +548,9 @@ static unsigned cf_check int svm_get_interrupt_shadow(struct vcpu *v)
     if ( vmcb->int_stat.intr_shadow )
         intr_shadow |= HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI;
 
-    if ( vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET )
+    if ( vmcb->_vintr.fields.vnmi_enable
+         ? vmcb->_vintr.fields.vnmi_blocked
+         : (vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET) )
         intr_shadow |= HVM_INTR_SHADOW_NMI;
 
     return intr_shadow;


~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 23:29:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 23:29:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232106.1536957 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr2b9-0007A8-H3; Fri, 13 Feb 2026 23:29:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232106.1536957; Fri, 13 Feb 2026 23:29:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr2b9-0007A1-EO; Fri, 13 Feb 2026 23:29:19 +0000
Received: by outflank-mailman (input) for mailman id 1232106;
 Fri, 13 Feb 2026 23:29: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=v8h/=AR=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vr2b8-00079v-1q
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 23:29:18 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd085b87-0933-11f1-9ccf-f158ae23cfc8;
 Sat, 14 Feb 2026 00:29:12 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB7940.namprd03.prod.outlook.com (2603:10b6:303:26e::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Fri, 13 Feb
 2026 23:29:09 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Fri, 13 Feb 2026
 23:29: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>
X-Inumbo-ID: cd085b87-0933-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PXw/900nEtowcLbbt1XYxyb8IEcm66CPYNCi1NWXD55l/zwlfAN+zWlZS2xz0h7XxJ/VTvhqMtdynA2kccm6pEcjfd/BQLp9ARK3MX+e/NrJMLgdqULTDK0rDBALv2qcIAXHR1P2rF1IGHzBgPKYYopCqtVXVo2bON0+/UBOp89pyr0fFc/OKqHruTzCjbWM8B+0t9UbAm7bH7ihLz7PmcTwOwoCU/POK+2TSKKfACd7Jgax+4ZS3kmCG5DHA+i2K7sBSsqd5R9efRITHI75nyt8BSLm6c3DuZ+jHq0azDWUQwpipM/QvCXDqe7DB2DTLxkvy8zGuAIXmSzIAzEe0A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/g+F66yAnqm+rTToTy7w1e4leW9teOXDS7vODxbAYhk=;
 b=y+XDAHco6m9ydkNfXcRqCeqgiUfrMFBHZ02fOTppKfiLG6tanEUrU9lppOHU62FX8KmYelBRHUcq6BsAvTe0rgrZo+m2uJBivg15+v8YO3tfUCfLP8u8csCHCryXL9jfN9k2JDaVHDDTLAFzi/QgjAvawjXMxDV75cScqqCWnw9mJp7eXw/R89umUmkirjHQsAEvek0wgcgz7u5BLJhTj64810K3Z1ClG3ieXoFSFTNAYO85bNUhxkItxibsCuELQqubGAsZfV/SxEBX33r8SlqsPOTdkkMIY2BwkkgUByQPdwzzaNivrZ17sCz/uB40VKXmpnasARM50UPEmNGeZA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/g+F66yAnqm+rTToTy7w1e4leW9teOXDS7vODxbAYhk=;
 b=qMGyWdjHKdoRAOY/UiWSKqUnXxQnzXDI9ywKmnJwTnhZqfbFA0BPlWfy+5TRJIYMBQ1rllrgX2pr0I4efwSCr0kxVmip7zBh3L9NfDrX/5Ys22M4hC9gGfcMJQyzSPxRmjtGsV8M0Gvak5OlUWtKvtMDkiuZwRFsTEx4nV7qHE0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d1765cd9-b95a-4032-bc0b-ada50e1a05d6@citrix.com>
Date: Fri, 13 Feb 2026 23:29:06 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, jbeulich@suse.com,
 roger.pau@citrix.com, jason.andryuk@amd.com, alejandro.garciavallejo@amd.com
Subject: Re: [PATCH v3] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260213222818.271685-1-stefano.stabellini@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260213222818.271685-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0207.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a5::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB7940:EE_
X-MS-Office365-Filtering-Correlation-Id: 7f299ddb-c106-45aa-1c88-08de6b57aff3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WUFwNnFlZC9MMldMMVFLRytNZjRrNnd6M2x4ejJ4bkFneFhWQmthU1JXZU84?=
 =?utf-8?B?anFwMlNmWnVQQUNkTDV0djdvQUpSNnhYLzhFZnNCYnV0bHBibkVZdk8wNTUw?=
 =?utf-8?B?MTQ5b1d6VUJjVzRIcE0vcGwzZ3BFUWxCeDhCenFTbS9aSVpHL2ErNnBxL1hK?=
 =?utf-8?B?a0NLYmovVmhtd2JsaXkrUFd4TmxNL1QydmNaZ3RlVmQ1dFpmWk9WcC9qam56?=
 =?utf-8?B?Tk9pbzB2V0c4MG93RXdya2kxUkg4aEdpbUFueFJXb2NPK3NNTWh2UlVzYi9S?=
 =?utf-8?B?QjNVZ1B0dzlsZ00xTU5DOFV3WjlKQlRHYkpkUWw3Vk5wSWEwdWdKTmFvbHd0?=
 =?utf-8?B?TU1BdU5LckNjN01qZ2JwUkplaTJ1ekpEUXNvZnIxVFZybnMxdTVKNWdSK0xP?=
 =?utf-8?B?YWRKWVJQOEtMT3MwK2g1WTVDekNBMTc0L0R5ajZhM3lDdkNuTmlmQmpiTTF2?=
 =?utf-8?B?dElLamRKOU5jWHBaRHlKb2JMYmlDUkduUktpTDNNdU9IZmFhNkhGZ2Q5ZDJn?=
 =?utf-8?B?bm5XNTRmcWVhTmtkWnBjSkdsWmVnbHVCL3AxUXlmd2dJLzVEYU5yNjZCVG51?=
 =?utf-8?B?bWRxVDFjd1NGM2NhM1lTbHMvRmJXMDJ5SnV5UXJ1VlBqcE40YWFUSmszVmtq?=
 =?utf-8?B?bFhyOUFRR1ltM0F0T0tVMTRYV0ZsMTRSY0x3UTdydm9veVg1Z2VBMGYyTVRo?=
 =?utf-8?B?OWhOMjYzVC9iWk85Vjh1N2JrZVdLSnVsUVhRN1daMHdCR0dVYm1yMjZpa2FY?=
 =?utf-8?B?M2Zka3hQRVZEMjJ3bnBubkFrZmlUakhNRm9DRGtVdzlNUzRPN09IdWxqYlJ4?=
 =?utf-8?B?WFR1NytOT1l4dXdkYVE0NmQzdkpJSnRvZFR1YkJnUEFyVFNMdzNTOUlDR1Zv?=
 =?utf-8?B?dk9XTzVvcnpxR0NaaXNRQngvZjNkQUZUM0JjMVAxTGtiU0hhaDBiM2MxM21q?=
 =?utf-8?B?NkVDYk1kZmovSWxZak5oVy9HQ0ZweXhzR1AxcEd5TkErc3g0OWNOTFJIUUJw?=
 =?utf-8?B?NnBub3ZHZFk3MTROeUJGUnB6WVppWlJOVUEvWVYrZE9BRjZNU2ZzVHlBZ1Nv?=
 =?utf-8?B?QXN1aSsxRWZDcWQwQkpkLzF5VUZUUkFra01GTm9UWU5qYmlHR016WHVDVnN4?=
 =?utf-8?B?V3FHZVUyRDlPb2JQdGpxanZLWHBjaXpROVRWQ0YzdFZLU1ZlMk43UUs2RXI3?=
 =?utf-8?B?MFlLOFpBdjhmcDUrZjk2cThpN2NVVjZUV2RzMEtrTFBhdXV6ZWNhYkF3TEMv?=
 =?utf-8?B?QUY5MWY1VTQxMExuVUxsdzlKVHFuaFJvUFZnQzY4RDllUlZtUzRlOUsrN3lB?=
 =?utf-8?B?TGNkQkNEcFFSSE1VbFk3NVpIUVlQY0VhUkdraVFiOCtoTUdhMGxXaXdCNCsx?=
 =?utf-8?B?TGp3ZUE5eEY0SjJYcTlJd1VwLzhtVVNKNVM4YS8zaVFlQ3hlZnRjRTRZSEsz?=
 =?utf-8?B?cy9FN3FQVC85L25lZ1E4RThlNm54TEtrL2JJU0pnZUdlRjFwSFZpUk1zY2ZX?=
 =?utf-8?B?a3dyb3R4MHVjS3ViYWZZSDIxM2hIa0V5T2EyUkNSVFl1cDZiSXhxQkZvdm5J?=
 =?utf-8?B?am1RMHVpdmtKVjhLeUdtMWJqaThHOFNWeldEcWhWR3RPVUtoWjZ2KzBEMmg4?=
 =?utf-8?B?WHVpaVB0VGhpdW1iZm1qRkkzQTBEajBwTVdlWFhsck9wNktCYUMyZFhmMkow?=
 =?utf-8?B?YXhFL21YT0VxYWFFZkNQQ3k1ZVRjYUZ1S3ZGSUV2OFdnMXh6YUx5eGNkL0pn?=
 =?utf-8?B?akU4TVZEdjFHQURXWGFDOUdiU1RPWnM2K1NPam1tS1VrblVSSzVWd2M5MTBN?=
 =?utf-8?B?bUdZZTl3WGdhelBQenVRNnhEM28xWnh6T0pXK2hvZUhHeHJHbFg1TmYwVVNU?=
 =?utf-8?B?NXVsM2F1Z3o2c3pQMnM2S214MExpeHBQaXRQekVEWVFuRzUrTUNKNVhiK0dP?=
 =?utf-8?B?WGZneHZoQ2JMYm9Fa243eFpRUWxORzJZRTFGN1RsRU51RmEzQ2ZvWWJ2bkV6?=
 =?utf-8?B?NGF3bG1nZkI0UFpJdG03VTlMQ2U5Q1JrNU9HZmgxazNEeUFPZVdULzJHN2Jw?=
 =?utf-8?B?RGlPYTZDM2pqUHkwOTVZbitpR0J0VFl6NkZOYjlPQU1qbVM5d0VOc1ZjNmJ4?=
 =?utf-8?Q?+nvs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZFgxUmgxQU41emVLS3lxQ3ZrbU5xTlJwZ29qTHo1d010SExsdlo3WEFVektS?=
 =?utf-8?B?a2xXU3BQandzK2NKLzU1cG13Nzh0YzdUcG9UT1FpcEVYRjAzMjlSbTlLSC85?=
 =?utf-8?B?dWxESUxRRm1ZRVl3QUdTL2hZZWROeVRRQTJ6L1ZOMklnNitmWG5CR1lMY1Nu?=
 =?utf-8?B?ZWVrUHN0dEhnbmFaYW5xOXZmSEFXaC9RcFhWaHZlbDhiZ0xOMzJvSkZHQUxD?=
 =?utf-8?B?SzlyNUg2SkloMFNQSVcvUVFNUUZMbHdrNkNSeGNINU52OHMvVjVyNFlNcjFC?=
 =?utf-8?B?aVRVQWFkakREZ3JXVDdkN3BYenhLTHEyVDVVWHlKdk1VMDNPR3laQ0g0Ti9P?=
 =?utf-8?B?bCtQa2ZmYzV3N2dJOEI3Zy9ic0RUNWdpNGwvbGVLY0tvNk5DNFpkUTFSNGlR?=
 =?utf-8?B?c0YwZkROcWRMaXE4RmxrMXQyUGZSNWFFaTFaU0VJSHViZ3JmK3JpUVUwa1Uw?=
 =?utf-8?B?b0xHOWMxZUV1VHlvNm5yUk02RHFGUnNKL3FoTk84SDJrYnBPeWhnYzYweUc4?=
 =?utf-8?B?dzVRaklHRnhsbURJWG5LYXRadWdacDZVd0c3ZkRkWkczOHYrNjFvaEI1aUNj?=
 =?utf-8?B?WDU4VmpIQ1orbVNQV2NVNmg0d1NpVW9RODJQNkxUQVl3ZUNZMEhzMWkzR3pF?=
 =?utf-8?B?K3hPcUU2ZnpZUHFyTFNYbWNZZ1dCdTNsblEwdGp1SDlONmhKOSs2V3RQdW1l?=
 =?utf-8?B?aXkwQzJCVzhPWnY2aDJtSVpDa1I5djFvUStLMDc4ejB6MVFaTERpMWxDTlM2?=
 =?utf-8?B?Zk1LY1Q3c3JOcWs0SFMzMFY2OWVDbHZjblNYK1VmdzZXbXJtNjVERm1kQjR5?=
 =?utf-8?B?UVVBSk5pQWs4TDNjVlM5Y2RyRENYTVU1QUpMSUE2UFZQMzlqYzhOWVRRTi9S?=
 =?utf-8?B?OElKQTFXWSsrVlVwWEVGREkyVjc3b2xnYnBqbHZmL1JvOTFDc3pKbkpOUktC?=
 =?utf-8?B?bHpPRVZlRi9QSnJNbThxVTJlbjE0NzZFazBreU9NdytpREN0TVB6Y3FQdCtM?=
 =?utf-8?B?VVZ5dEF0cEpMc2tab29GZmF2Nk0raFlBLzFidVYvT0pTd2dqREZKWlpBeHcv?=
 =?utf-8?B?YU1WY2l3RWNjZ1NHQ2xjZU51SDVuRENDY0dOajJ3bStqT1N0RkJ2bmpwcDd4?=
 =?utf-8?B?TFk5UVZRWWNzYXJtWFhOKzM5QUNTSnJST1pteFJZeVNhQWZ3TWJTMzdVSmw5?=
 =?utf-8?B?dW9hQitkNVJNdm1qaE9oTnlZeEZodjZQckhRYzU0VTFYZUpJcWNlanR2Wm1s?=
 =?utf-8?B?ZTRLdktjaFdmanNoMy8yQUtKdk5oNW9aMmNvazhLcURMNDhrdk9lbTFGQWRL?=
 =?utf-8?B?NW5lUzFUL0FHRmllRnhFQXZzRnZWSWlLUzNrVndFRk9UVGtMdzkrcXlxT3Fh?=
 =?utf-8?B?OFZ5RGxrd2ZJT1Rma2xVeTVOUVdRUHdWVkRQQWt4eURmVGJ0SDhQK1NoclBx?=
 =?utf-8?B?OEVnVFZBdml0TEFVNU9TSGt1SjFUR0FVcTZCK0RHeitLUG9TUG1rR2xqbXdo?=
 =?utf-8?B?d095dDZWaUcvTG1qdkhMUTNlRXdXOEtEY3VXaVVGNVVxR0x2SkM1aHFSb3VC?=
 =?utf-8?B?TC9GNVV0VkpjQnp4aU52eVBGK1d3TUhpUFlpdHUwSFlTNzVjQnFzek0vak9Z?=
 =?utf-8?B?ZzZLUEtFaWdiUHRKNEV1RTFKcHh6N2MzYlBlaUpQNS9BOFhPWi9Qc1kzMys4?=
 =?utf-8?B?QVYzb0xxclZ6c1RuME9JZ0M4eExSNGhaSVU2UXJEUWVla3JDbEdpVkp5eU95?=
 =?utf-8?B?TE5LSGxkN21KQnlhTkE0UVV3QTd1TURVc3FVVWp1RTl6MXE3Zjl4SDVZNEdy?=
 =?utf-8?B?UWFudXFlOXRoSVNXY3ZZa1p6aU9CdFFpQnpScE96bWp4THBuaEpIaHBzL2tB?=
 =?utf-8?B?dHA0UFBnNWZ0MXBmR0dvcGZmSlZpOVd3cS84Qjl2TGdWaHpnbk1UUEp3aVBU?=
 =?utf-8?B?eUVwakNNaDdzc09RMTkybnZES01XMjRqd2FrZnlQRUw3UE5XanFJRXNTaDlr?=
 =?utf-8?B?YmlRemVCZUpFdjJtQ0ZJUmdQMlpSeUEydGdubXJJNlZmMUdlS2ROcnVTNVlL?=
 =?utf-8?B?eDMyODJIWCsrNXpTNGtMVGVDV05RTEhIZnRDMkNkZENTOUhRaVUvcDhxWC9k?=
 =?utf-8?B?TVBVRDZQNnpvaUU5M0ZWU0dvb0lpNkpUNlEzOFV3cURsOWQ4d3EyVUtvNVJW?=
 =?utf-8?B?cmx0ZjZ0STFZb2ZubWtJUWxGc2dSTVFkSnMycWZWcTB3TUplY01VQjZQWHBt?=
 =?utf-8?B?eHNkTE1BNmVzc2FxQ2hhS3dJazhObis5dWFvOWhQY2JubzBvVjZqS3lVOXZC?=
 =?utf-8?B?c0tSYjdhSmdUd0xnWEFRK3krR2xYODJtOWtEWFdKUFN5NTF3M1hmQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7f299ddb-c106-45aa-1c88-08de6b57aff3
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 23:29:09.2195
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: jrTL36AfhnmI09+CApTv6blr4KZ6sNptz0EGPy+SfyoAAlOIHwo4BnZS7XVN2OugL+/VdN3Z+jCLAintKlvdleHgg1NgwIAR6E5Gf1ubwlk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7940

On 13/02/2026 10:28 pm, Stefano Stabellini wrote:
> diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
> index c6c5135806..a4669090e0 100644
> --- a/xen/arch/x86/platform_hypercall.c
> +++ b/xen/arch/x86/platform_hypercall.c
> @@ -485,6 +485,7 @@ ret_t do_platform_op(
>          ret = acpi_enter_sleep(&op->u.enter_acpi_sleep);
>          break;
>  
> +#ifdef CONFIG_CPUFREQ
>      case XENPF_change_freq:
>          ret = -ENOSYS;
>          if ( cpufreq_controller != FREQCTL_dom0_kernel )
> @@ -544,6 +545,7 @@ ret_t do_platform_op(
>              ret = -EFAULT;
>          break;
>      }
> +#endif

You must not hide case labels like this.  Instead, use:

    case XENPF_change_freq:
        ret = -ENOSYS;
        if ( !IS_ENABLED(CONFIG_CPUFREQ) )
            break;
        ...

which in turn ...

>  
>      case XENPF_set_processor_pminfo:
>          switch ( op->u.set_pminfo.type )
> @@ -936,7 +938,7 @@ ret_t do_platform_op(
>          break;
>      }
>  
> - out:
> + out: __maybe_unused;
>      spin_unlock(&xenpf_lock);

... removes the need for this hunk.

> diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
> index 07bddc58d9..f5caeebb9a 100644
> --- a/xen/drivers/acpi/pm-op.c
> +++ b/xen/drivers/acpi/pm-op.c
> @@ -367,7 +367,8 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
>          return ret;
>      }
>  
> -    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
> +    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) ||
> +         !IS_ENABLED(CPUFREQ) )

Everywhere else in this patch, CONFIG_CPUFREQ.

You won't get a compile error for typo-ing a name inside IF_ENABLED(),
but it won't function correctly either.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 23:44:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 23:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232132.1536968 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr2q3-0001Tr-PO; Fri, 13 Feb 2026 23:44:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232132.1536968; Fri, 13 Feb 2026 23:44: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 1vr2q3-0001Tk-Lu; Fri, 13 Feb 2026 23:44:43 +0000
Received: by outflank-mailman (input) for mailman id 1232132;
 Fri, 13 Feb 2026 23:44: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=9cwp=AR=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vr2q2-0001Te-1g
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 23:44:42 +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 f3d874d3-0935-11f1-9ccf-f158ae23cfc8;
 Sat, 14 Feb 2026 00:44:36 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 9850B60054;
 Fri, 13 Feb 2026 23:44:34 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E460C116C6;
 Fri, 13 Feb 2026 23:44: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: f3d874d3-0935-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771026274;
	bh=7ybNqTcUHO8ZiSFSuBf2rA9uzkzo6uQ289HcDJfEiuY=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=M3g1rmmnNi6R0mw7lDz68kt4nR3xYO5sm8M2JiEqmRFTNGDRRhYymfMqI987+L9pV
	 7OjoX4dQixTBwrblMe6vj9G+xihpzqlTGkgzxFPsHizDdsH3AOsRR6fOKGq7S9vWIx
	 4E9fSFJQStk+Ny1ZM7c25Ad4XqN+hEAoGgR4FXLpFg/D6GMitxdLbE9YIAd4TIc4tI
	 WhhulUL6xl4IfBflvgX+bQW61nJGIjNJFgVfDqG/u92fPSdJgljE9RgmhrhJ5++/YI
	 W2mFDnbxiblnXpR3kmAvYn9yhVzjowU9BXa5z1I7v9fo2/RidI9U0OE7yfF/0kJaVp
	 tX3IiUmcpdGjg==
Date: Fri, 13 Feb 2026 15:44:31 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Andrew Cooper <andrew.cooper3@citrix.com>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    xen-devel@lists.xenproject.org, jbeulich@suse.com, roger.pau@citrix.com, 
    jason.andryuk@amd.com, alejandro.garciavallejo@amd.com
Subject: Re: [PATCH v3] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
In-Reply-To: <d1765cd9-b95a-4032-bc0b-ada50e1a05d6@citrix.com>
Message-ID: <alpine.DEB.2.22.394.2602131532400.6031@ubuntu-linux-20-04-desktop>
References: <20260213222818.271685-1-stefano.stabellini@amd.com> <d1765cd9-b95a-4032-bc0b-ada50e1a05d6@citrix.com>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: multipart/mixed; BOUNDARY="8323329-1737345080-1771025601=:6031"
Content-ID: <alpine.DEB.2.22.394.2602131535080.6031@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-1737345080-1771025601=:6031
Content-Type: text/plain; CHARSET=UTF-8
Content-Transfer-Encoding: 8BIT
Content-ID: <alpine.DEB.2.22.394.2602131535081.6031@ubuntu-linux-20-04-desktop>

On Fri, 13 Feb 2026, Andrew Cooper wrote:
> On 13/02/2026 10:28 pm, Stefano Stabellini wrote:
> > diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
> > index c6c5135806..a4669090e0 100644
> > --- a/xen/arch/x86/platform_hypercall.c
> > +++ b/xen/arch/x86/platform_hypercall.c
> > @@ -485,6 +485,7 @@ ret_t do_platform_op(
> >          ret = acpi_enter_sleep(&op->u.enter_acpi_sleep);
> >          break;
> >  
> > +#ifdef CONFIG_CPUFREQ
> >      case XENPF_change_freq:
> >          ret = -ENOSYS;
> >          if ( cpufreq_controller != FREQCTL_dom0_kernel )
> > @@ -544,6 +545,7 @@ ret_t do_platform_op(
> >              ret = -EFAULT;
> >          break;
> >      }
> > +#endif
> 
> You must not hide case labels like this.  Instead, use:
> 
>     case XENPF_change_freq:
>         ret = -ENOSYS;
>         if ( !IS_ENABLED(CONFIG_CPUFREQ) )
>             break;
>         ...
> 
> which in turn ...
> 
> >  
> >      case XENPF_set_processor_pminfo:
> >          switch ( op->u.set_pminfo.type )
> > @@ -936,7 +938,7 @@ ret_t do_platform_op(
> >          break;
> >      }
> >  
> > - out:
> > + out: __maybe_unused;
> >      spin_unlock(&xenpf_lock);
> 
> ... removes the need for this hunk.

I can do that


> > diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
> > index 07bddc58d9..f5caeebb9a 100644
> > --- a/xen/drivers/acpi/pm-op.c
> > +++ b/xen/drivers/acpi/pm-op.c
> > @@ -367,7 +367,8 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
> >          return ret;
> >      }
> >  
> > -    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
> > +    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) ||
> > +         !IS_ENABLED(CPUFREQ) )
> 
> Everywhere else in this patch, CONFIG_CPUFREQ.
> 
> You won't get a compile error for typo-ing a name inside IF_ENABLED(),
> but it won't function correctly either.

Oh man now that I have seen it I cannot unsee it. I'll respin it
immediately.
--8323329-1737345080-1771025601=:6031--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 23:48:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 23:48:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232139.1536978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr2tm-0001zG-8e; Fri, 13 Feb 2026 23:48:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232139.1536978; Fri, 13 Feb 2026 23: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 1vr2tm-0001z9-5E; Fri, 13 Feb 2026 23:48:34 +0000
Received: by outflank-mailman (input) for mailman id 1232139;
 Fri, 13 Feb 2026 23: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=Ps4n=AR=gmail.com=demiobenour@srs-se1.protection.inumbo.net>)
 id 1vr2tj-0001z3-RM
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 23:48:32 +0000
Received: from mail-yw1-x112a.google.com (mail-yw1-x112a.google.com
 [2607:f8b0:4864:20::112a])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7f375700-0936-11f1-b163-2bf370ae4941;
 Sat, 14 Feb 2026 00:48:30 +0100 (CET)
Received: by mail-yw1-x112a.google.com with SMTP id
 00721157ae682-79427f739b0so15730667b3.3
 for <xen-devel@lists.xenproject.org>; Fri, 13 Feb 2026 15:48:30 -0800 (PST)
Received: from [10.138.34.110]
 (h69-131-216-128.cncrtn.broadband.dynamic.tds.net. [69.131.216.128])
 by smtp.gmail.com with ESMTPSA id
 00721157ae682-7966c16e7c6sm79214517b3.1.2026.02.13.15.48.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 13 Feb 2026 15:48:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7f375700-0936-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771026509; x=1771631309; 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=dpKH90dSEGXI2GdF07WukSivFiF5skGZiYk3LzdwP/s=;
        b=Nx1uhnalOAE8cuaVfDUJ8WeoR4/LhtglUCBqizyy+MomLSsbD8cAce1smjv78T7a3T
         dQwKYPhPGStzEWjUSXTWb6xCrkahyFm6BfmDfXzYnrx8MiYAAkW/G4Hvc2gJouGa/OEH
         Diar+mGbfzRiwgpL50iN2D+6x+scXh5+c+e4QbbWvqRX14lXTRVq3+rorSFbHt/t7l50
         tRbyEGrvuMfAPF8AeDXWsDWjEbiAYDo7gZaZWGCWaOpwpmh30HG7pgvpsxji0B/5WiNn
         lI1rdHUZpJKkWG5y1PQoQj/P/8zO65dT6TdmnrfdIPHoLztD1Pnjq6eykuckvbHvEmvF
         QSzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771026509; x=1771631309;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=dpKH90dSEGXI2GdF07WukSivFiF5skGZiYk3LzdwP/s=;
        b=ti3uivBbsynjgA59INxwIs6sw4eEk6Crrp7KrTMIvi/fK+vU/BPWnEWWnDYOJD0Shq
         FGgTnI8i8mAGWNQ6N9D1+rMOtYrO6V69tMCnE0uk91ZZUmL9VUWJzk/8fs3+IIYBfLkn
         gtMgLHGQgQKP1ub0MRAob18ncrVwVZxHKM8ObBqwxvcEws0GDleWvECHOp+rrxGiO7Oo
         RNSFDgONYN8oqQdKSKV1WEElGjMT8bZvV+orBCQ5QCuU9+pyX6tGoSCBGIkhdjf0uqMf
         FgF853f65Yh873sCTyICpk3bx6f0mCI9gL+xlWgFXpmgPyDjgVpX8pTZuGSIp6z0Wsj3
         SSHA==
X-Forwarded-Encrypted: i=1; AJvYcCWGKttCkAgSuGSUOSORh4f2RcCQxU1nOFjoexZHOdkywVuExDIbUJrUfV+rGaEAgiaDsxNcGpQyZ0E=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxynArKngkHuh40pm2U/YVAiQ6Vfk8KKV3Bu9rhviTsLiY2IN/2
	MY4C1iVu3Mu3YJ8Rb2jDm2uVczfS5ISmUj0yfa9n9Ii+ERIl8QsJqj6f
X-Gm-Gg: AZuq6aK83DSThFAJjiPT4iJPzkpLQaCYAfYCKc6g5MrtPCc9RviNMmuUDbtCcmMnIjD
	bvX5PiZhiTon//oA+9xzMsQhoBS9odHBZQNhJvf2CnBUMw3/UKaAe8Br6FZsll6P/Yv6ZDOVTr/
	A1hqA4iXT76rANl4mlrtgcsi0EHveIsFSh7R8I1IvDE8SI8+XesDdcLEZI/bI7AwS0VAyf3/fsD
	LBjAyA+kpOoLWGzQdBV+5SBo9kfnEArXoCkUGXGn3X7EhVU9BNuBEmocG+KhrpIbTgtK0aK+sBl
	SD+PxB0cB3cahYyvFRO7fjj1+FM4GClyC/8fkk54I8k+RWNq+9OaSXeDCr1rvSn4ktvXYhxUqLP
	sL53GX0Nxs8tzriMQSrML5C7aOCY2jj+BX8q5mPZo/l8pxto1x7Ghrh80jEdPoNL0z1mAW+Losn
	UzoXcdAy6hIhhCr4qSxpo9NkJhjycwW7VCUQ3HLP7j/xlKmpSOIuq4bcsPpHe5XDatJ9doZt5ZZ
	IL5NQ1cFL73cH+i4OV2oG6xLSyikRQG0yiqRLLUKEpuMkd+w51I
X-Received: by 2002:a05:690c:c4fa:b0:795:20f4:cb91 with SMTP id 00721157ae682-797a0bd4d73mr30119897b3.8.1771026508466;
        Fri, 13 Feb 2026 15:48:28 -0800 (PST)
Message-ID: <e21946b5-256b-4743-93e1-e9f7b8dc7dcd@gmail.com>
Date: Fri, 13 Feb 2026 18:48:10 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com, jbeulich@suse.com, andrew.cooper3@citrix.com,
 jason.andryuk@amd.com, alejandro.garciavallejo@amd.com
References: <20260213220205.196179-1-stefano.stabellini@amd.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: <20260213220205.196179-1-stefano.stabellini@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------kBZehJiIQE5D5CHFBdwQDy18"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------kBZehJiIQE5D5CHFBdwQDy18
Content-Type: multipart/mixed; boundary="------------MSnewZVePIwqILT5rg3YCp4l";
 protected-headers="v1"
Message-ID: <e21946b5-256b-4743-93e1-e9f7b8dc7dcd@gmail.com>
Date: Fri, 13 Feb 2026 18:48:10 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com, jbeulich@suse.com, andrew.cooper3@citrix.com,
 jason.andryuk@amd.com, alejandro.garciavallejo@amd.com
References: <20260213220205.196179-1-stefano.stabellini@amd.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: <20260213220205.196179-1-stefano.stabellini@amd.com>

--------------MSnewZVePIwqILT5rg3YCp4l
Content-Type: multipart/mixed; boundary="------------wzxg10yIG5yWWmMtSrQW06BO"

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

On 2/13/26 17:02, Stefano Stabellini wrote:
> Introduce CONFIG_NESTED_VIRT (default n) to allow nested virtualization=

> support to be disabled at build time. This is useful for embedded or
> safety-focused deployments where nested virtualization is not needed,
> reducing code size and attack surface.
>=20
> When CONFIG_NESTED_VIRT=3Dn, the following source files are excluded:
> - arch/x86/hvm/nestedhvm.c
> - arch/x86/hvm/svm/nestedsvm.c
> - arch/x86/hvm/vmx/vvmx.c
> - arch/x86/mm/nested.c
> - arch/x86/mm/hap/nested_hap.c
> - arch/x86/mm/hap/nested_ept.c
>=20
> Add inline stubs where needed in headers. Guard assembly code paths
> for nested virt with #ifdef CONFIG_NESTED_VIRT. Move exception
> injection for VMX/SVM instructions to the callers in vmx.c/svm.c to
> avoid header dependency issues in the stubs.
>=20
> No functional change when CONFIG_NESTED_VIRT=3Dy.
>=20
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>=20
> ---
> Changes in v3:
> - Kconfig: Change "depends on AMD_SVM || INTEL_VMX" to "depends on HVM"=

> - Kconfig: Remove redundant "default n" line
> - Kconfig: Remove "If unsure, say N." from help text
> - mm/hap/Makefile: Simplify using intermediate nested-y variable:
>     nested-y :=3D nested_hap.o
>     nested-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
>     obj-$(CONFIG_NESTED_VIRT) +=3D $(nested-y)
> - svm/nestedhvm.h: Remove #ifdef CONFIG_NESTED_VIRT stubs, keep only
>   function declarations (the functions are only called from code that
>   is already compiled out when nested virt is disabled)
> - svm/nestedhvm.h: Add CONFIG_NESTED_VIRT guard to nsvm_efer_svm_enable=
d
>   macro to return false when nested virt is disabled
> - svm/svm.c: Move #UD injection for STGI/CLGI to the caller instead of
>   stub functions, checking nestedhvm_enabled()/nsvm_efer_svm_enabled()
> - svm/svm.c: Mark svm_vmexit_do_vmrun/vmload/vmsave as __maybe_unused
> - svm/svm.c: Remove empty nsvm_vcpu_switch stub (now guarded in asm)
> - svm/entry.S: Add #ifdef CONFIG_NESTED_VIRT guards around nested virt
>   specific code paths
> - vmx/vmx.c: Remove empty nvmx_switch_guest stub (now guarded in asm)
> - vmx/vmx.c: Move nvmx_enqueue_n2_exceptions and nvmx_vmexit_event to
>   vvmx.c where they belong
> - vmx/vvmx.h: Add declarations for nvmx_vmexit_event and
>   nvmx_enqueue_n2_exceptions
> - vmx/vvmx.h: Fix nvmx_msr_read_intercept stub comment
> - vmx/vvmx.h: nvmx_handle_vmx_insn stub returns X86EMUL_EXCEPTION with
>   ASSERT_UNREACHABLE (caller handles injection)
> - vmx/vvmx.h: Convert get_vvmcs macro to inline function in stubs
> - vmx/entry.S: Add #ifdef CONFIG_NESTED_VIRT guard around nvmx_switch_g=
uest
> - nestedhvm.h: Convert macro stubs to proper inline functions
> ---
>  xen/arch/x86/hvm/Kconfig                 |  7 +++
>  xen/arch/x86/hvm/Makefile                |  2 +-
>  xen/arch/x86/hvm/svm/Makefile            |  2 +-
>  xen/arch/x86/hvm/svm/entry.S             |  4 ++
>  xen/arch/x86/hvm/svm/nestedhvm.h         |  2 +-
>  xen/arch/x86/hvm/svm/svm.c               | 18 ++++--
>  xen/arch/x86/hvm/vmx/Makefile            |  2 +-
>  xen/arch/x86/hvm/vmx/entry.S             |  2 +
>  xen/arch/x86/hvm/vmx/vmx.c               | 31 +---------
>  xen/arch/x86/hvm/vmx/vvmx.c              | 26 +++++++++
>  xen/arch/x86/include/asm/hvm/hvm.h       |  2 +-
>  xen/arch/x86/include/asm/hvm/nestedhvm.h | 64 +++++++++++++++++---
>  xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 74 ++++++++++++++++++++++++=

>  xen/arch/x86/mm/Makefile                 |  2 +-
>  xen/arch/x86/mm/hap/Makefile             |  5 +-
>  xen/arch/x86/mm/p2m.h                    |  6 ++
>  xen/arch/x86/sysctl.c                    |  2 +
>  xen/include/public/sysctl.h              |  4 +-
>  18 files changed, 204 insertions(+), 51 deletions(-)
>=20
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index f32bf5cbb7..af661385b5 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,11 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
> =20
> +config NESTED_VIRT
> +	bool "Nested virtualization support> +	depends on HVM
> +	help
> +	  Enable nested virtualization, allowing guests to run their own
> +	  hypervisors. This requires hardware support.

Should this also come with a warning that allowing guests to use
nested virtualization is insecure unless both L1 and L2 guests are
trusted?
--=20
Sincerely,
Demi Marie Obenour (she/her/hers)
--------------wzxg10yIG5yWWmMtSrQW06BO
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-----

--------------wzxg10yIG5yWWmMtSrQW06BO--

--------------MSnewZVePIwqILT5rg3YCp4l--

--------------kBZehJiIQE5D5CHFBdwQDy18
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/sszaHOrMp8lMFAmmPuEYACgkQszaHOrMp
8lOM1xAAklc678ggPvzL/qQCnweF+GFsAbtehhqooDjMun8BQkWwfsGyBKXzSxfU
OkYNruCB5P3kadub4gWoQJ5ang5xX3WjXGwvZJ8a6sb4PpIp45sKZHq5Z4a+2c0s
sLLDKiBFb5YO8eQPo8mNQoj+RB9EYX5cd5CL662GI+YLByq7qWKnmkcWSydc0Hx/
KAWAs+F0Ac/+xsG9MOMxnxrDaAbHJRIFvexZbhvsNZMbkkvn7BUQBaFFk3b6fnzD
ZxvFSO6vV/pgKYs1kDRjj7g5qPbi03UHFh8ELJj9fNbfu6Kz95A9WxbxgvqWrz7x
hh2P3YG22zAocMhvLtnKSLtV1D8N3Jtw5HP8piOMiTk6r3xB3BSN+Js+/lVxnc/t
oYQ+D18zrkMt2AYSzxkz7Ytu/PSMIJX3pGhGzuh2m72BPn/23tgKoFAzOtB5EvGS
pnBDEk6fMeE3FpPrXuMUmK+lPQ+r5AXYJM0t53+KOjyMmuewfaAEGHMwX12K3Z61
bP2tZNBz+2zi+UNhAW0oEAVOMLD57VnHL5PPZbBHDZMnX556QtxfNZj0lU/RGG8+
Vaci2Cu366q8Uwku7X9CunyxYGdSpO5SrI4HfhMQoCcj9fi4BuKiPGtx5IpJSFqm
SJ/zQR1fYX+Lm7yJy1hOZgJeSOQcxAF0nDLfmdTiWud2qu4yYAk=
=uJrX
-----END PGP SIGNATURE-----

--------------kBZehJiIQE5D5CHFBdwQDy18--


From xen-devel-bounces@lists.xenproject.org Fri Feb 13 23:51:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 13 Feb 2026 23:51:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232148.1536988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vr2wO-0003Wz-OO; Fri, 13 Feb 2026 23:51:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232148.1536988; Fri, 13 Feb 2026 23: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 1vr2wO-0003Ws-LJ; Fri, 13 Feb 2026 23:51:16 +0000
Received: by outflank-mailman (input) for mailman id 1232148;
 Fri, 13 Feb 2026 23:51: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=S4o5=AR=amd.com=stefano.stabellini@srs-se1.protection.inumbo.net>)
 id 1vr2wN-0003Wm-Du
 for xen-devel@lists.xenproject.org; Fri, 13 Feb 2026 23:51:15 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e0140c52-0936-11f1-b163-2bf370ae4941;
 Sat, 14 Feb 2026 00:51:12 +0100 (CET)
Received: from BN0PR04CA0038.namprd04.prod.outlook.com (2603:10b6:408:e8::13)
 by LV9PR12MB9783.namprd12.prod.outlook.com (2603:10b6:408:2e8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 13 Feb
 2026 23:51:05 +0000
Received: from BN2PEPF000055DD.namprd21.prod.outlook.com
 (2603:10b6:408:e8:cafe::6e) by BN0PR04CA0038.outlook.office365.com
 (2603:10b6:408:e8::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.14 via Frontend Transport; Fri,
 13 Feb 2026 23:50:42 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BN2PEPF000055DD.mail.protection.outlook.com (10.167.245.7) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.0 via Frontend Transport; Fri, 13 Feb 2026 23:51:04 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 17:51:04 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 13 Feb
 2026 15:51:04 -0800
Received: from SATLEXMB04.amd.com (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 13 Feb 2026 17:51:03 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0140c52-0936-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hzj5scfRTe7EVXQLxCgzEocsw140yLyg0uv9fi5jNVeS4vPg9k2s46V9KduOhoefLeNUx6fwO5PDkr6/PvW+rSiY59LFehKn7fShYuoVsxryHJZZqj7AhU9sNz9edZZFXsjXgoqFSfUSi9BE0Z666E2ZANKwoT/T1SEZGOcKTVz7a1bmNEvMjzli5+yM8aJ3LSUAgSMXts+aPTNL4J8DouEA+cMoqkwmg8iY5u9XGUZ5tShOvQkIA8cyYlGbTfUd2jioq5G63lMD6nbq3Ceex9vONAQAVX18sDnOEDi6F11ofzua2h6kPXyAtZ/MS1AoIELvMDGqj4D1V6nWIZPsGw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ugPPHSkZ0mLLD5nZZGb2BUPrQBP72gpFa1fq4j5Ssr8=;
 b=dDEKSYnXasrig69pGGv0XsSg99iAvvg84YXOTzXHqSyjYvOlpObuZtbz8nsEKda8AMR96tDU8peDL4t673AYUq723c0WC/oMOHitIaB/03l7bnL9X+BV6XzzG9/afx08oZ6/CgvXXX/5NBqzG2lcoDP5ccRI/Jo2rC7Y5Bp+BZQVIKxaIjNEhwadxhHnb2cuRQFwR1q/yfChyfM59lnU+NqVAPOZiyWGhvyk+SkajfmNL41RI7QrU6HACpeXBMeNYxkq95wXFXgpop17WK2i/b3d0/5s0NP59UaWHkb33ewKMrCjCZzRlyCAM96Psz9jF2KhvS6Oox4kMQ+a9eyfRg==
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=ugPPHSkZ0mLLD5nZZGb2BUPrQBP72gpFa1fq4j5Ssr8=;
 b=yfjYWb77APHceWu4563dCFKWpWD73guKcMdv/+x9d39oQAn7/QPQK+Dt1QqzDfXv0iaoRTWih4ZaX3/Fyj/Y8xnyilEdVY40dmfSLWQ7RwiEu4Sum7XA5kNp63Z66VYrUWukTY/PjzFPSEaJ6xPP5s/aXYelXGXqJpzXF5FEnro=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: Stefano Stabellini <stefano.stabellini@amd.com>
To: <xen-devel@lists.xenproject.org>
CC: <jbeulich@suse.com>, <andrew.cooper3@citrix.com>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>, <stefano.stabellini@amd.com>,
	<alejandro.garciavallejo@amd.com>
Subject: [PATCH v4] x86/cpufreq: Add Kconfig option for CPU frequency scaling
Date: Fri, 13 Feb 2026 15:51:02 -0800
Message-ID: <20260213235102.359472-1-stefano.stabellini@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: BN2PEPF000055DD:EE_|LV9PR12MB9783:EE_
X-MS-Office365-Filtering-Correlation-Id: 09e4ee0f-d8b6-4ee0-8df2-08de6b5ac00c
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?Xpff5FWJEiNqRBykh3t+pIfecbTEd8S6I3PLvxc1EAJFODPU8vyk+djt17pl?=
 =?us-ascii?Q?9X6dutAXZPB5h3+zwUzyLNZeNxL4k2dNHQ6XW4xU8XvahXpweUOsStGVVjgL?=
 =?us-ascii?Q?KdxRsjEMUk1D7/pf6lP3Rwhn7jQ3ZTWyx/gMdwYtKlOa0kNdMy9iceboNRji?=
 =?us-ascii?Q?wFS/Bj3fQtFfmlio1uhL6Q+kitOgz1r/N5elc80lIiLeoQEqNaA1Cc1K4myY?=
 =?us-ascii?Q?9ut8iIq/56SIE/pDRBQWjV1ZZPWxSP6eD4JGM5FYO0tXGjxB76OQhtU/oAMu?=
 =?us-ascii?Q?euBc23ooFFZU3fD/V0XeGFiZcbydTed38fzpMeARhJZBUSf8poj4np9sNMAv?=
 =?us-ascii?Q?8LdDqHpd2UNsgPnSLCg9+iczKfB4xTjam3FB0TtGHmhYtijQnSFwgyDLUqrn?=
 =?us-ascii?Q?eZKW1l4l5EkT99r+YtrEFW5GS6CEXjkFC+QRxPvSgAXS6ZvwX2Yg+cF5zMUI?=
 =?us-ascii?Q?Z9J469MTt5ju9Q2KSXw+GCJj38VROSWbJnk3ZmVR4sNXthDfKEs+33ACFslf?=
 =?us-ascii?Q?LIOIMfxF3j19nzxs0fXaLGXQt904ljtgKWvCSpGVgyma/19R8+kHz2Et6iSn?=
 =?us-ascii?Q?QfaxEROh6zhA9okn1n0bwqRRBVrWI3uVW9lrVjP40oDoJpxesT4AeGqmQD3a?=
 =?us-ascii?Q?XTXM8XM5XE68Hu/Cs0d2DXjoW8Zns/cbE00J19oUdgBNtLV+B8LeOPbWmEch?=
 =?us-ascii?Q?w9kftZEdM6apTs6HgAC4SqEhkiYA9wj0IIvsOe0s1SNVQa/YxXceu06YNaH0?=
 =?us-ascii?Q?4fapehNae6Lh0R7MOJY7ukq/YvRMCyuPHQ20ux03F56cnHu6SMgjIs3qtFQC?=
 =?us-ascii?Q?GQ74gMWRRpkx5GzpkYTib9Z1kcHGsf/MDUwcFFMdkz6oFXSN/4MQSVhOBkgS?=
 =?us-ascii?Q?JguDCqWuQUbEQ5JoAkPMPrJO9DuC9tkoza8VnDYXFmIgJpbALmjiK7uJb2Tp?=
 =?us-ascii?Q?YAs8ndj3G/xm7LzZQvkKrRsoHdCRAsSrXB9yw2PgvJ8T4paxUOmSjQj6K+2y?=
 =?us-ascii?Q?CdVjxVVvqOqs9k1NHsAOmsegIAENriWhPk0ZNvSr1DOuhwVExPtZFhkxaCb8?=
 =?us-ascii?Q?TtnNmd7STwurnA9zPkujscsQLhJbjaHfr18XeYVuUJCxVn6q7X6D6c1HL2NJ?=
 =?us-ascii?Q?+3i5H/xGxa9tsIHlzsWLJI1nw56yEY73vbC2NcIJVUW/Rz+NoG8B6zVHB/A2?=
 =?us-ascii?Q?p7oAGMpaMGzwve4a4z/3XjxjqEanLHfTOR6utp376NcgRLmj79ZAYh0cLbxn?=
 =?us-ascii?Q?6jvOWrhICgxEjvhLYKIBm2G6QC6X/utIA1YAbSDlIsV8MZ9QGyEnD97S4T7o?=
 =?us-ascii?Q?nyWbaQbYCdWIOWK7GkTuTVeKEtFRr3qixYu8AQB83ORFV1TTpapVzVVOeacL?=
 =?us-ascii?Q?t7xF7cki8YxC70NckXVH8ytuUSPjhqQEtRBH7i8/iU3Vxatt0GRdiy6ETnqS?=
 =?us-ascii?Q?QVw2j+y8qxs3vS09ZM+jVjwRAoIE8vy0vgL8u7shN+rLIX1grOyX7QD5oPO1?=
 =?us-ascii?Q?RXwuR5ZmpfmSzWC0QYt3lsqUQpBvLs7GE6CePglZ+dWihvmg6VUAl2aO6y6J?=
 =?us-ascii?Q?oHEagBE5IXt+lhhcDu00WrM62te/m2Y57NowC65wjWsIcE2DAA8wmNuOgv0U?=
 =?us-ascii?Q?9OHvAbUFzYQOyDl8+LdL0mhaJSMOESV6jM/bcS3aLxReX8kqNp1CNnSfjpnS?=
 =?us-ascii?Q?pmwbMA=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	mG9L4ngzLzr2lR6PjLSkUS1ZTkvBCXGCab2Msn4hVJAtoGQ49CVgPJ25RgDrvpWvq+KdUvtpiVUJQBpBmI+UtxsDvSSdGJKNLwKITt7fSOvSYGyxPeDj2sDPAo01j3hfyErh6/cm2IpgXJvKfdayLlidUxsnD+uAWqQWoooP5dLdXOaaqF2arldOx07oAn/kigRnUcrDqvLdgBUZzTAKBrSD0bjpsVnI51r01mtq36/c4gtISlsO7YhBs5Pq8f1ZX5UwVfLH3CwcYUHwCA7C/c9UurgLTkGOMRku+yKAy3488E+HIT5m5U1eqCm6ZF2IVq8vApFWOAfOTPCLtv0f7HTVA9zyD3ShpEBp/j5vsp1bBbjmHFFPBZCXlx9TlYW0tXzJLDJaNkewWqe6HyJGD3BPiTVsoyGilSAxEZMpbNG52p2RedsGhZEFsbHeTVdR
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2026 23:51:04.6068
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 09e4ee0f-d8b6-4ee0-8df2-08de6b5ac00c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN2PEPF000055DD.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9783

Add CONFIG_CPUFREQ to allow CPU frequency scaling support to be
disabled at build time. When disabled, this removes cpufreq code
from the build.

Introduce IS_ENABLED(CONFIG_CPUFREQ) checks for relevant do_pm_op and
do_platform_op subops and other functions that require CONFIG_CPUFREQ to
work.

Add stubs where necessary.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
---
Changes in v4:
- fix IS_ENABLED(CPUFREQ)
- remove #ifdef in platform_hypercall.c and use DCE
- move cpufreq_controller enum out of #ifdef
---
 xen/arch/x86/acpi/Makefile                |  2 +-
 xen/arch/x86/platform_hypercall.c         |  6 ++++--
 xen/drivers/Makefile                      |  2 +-
 xen/drivers/acpi/pm-op.c                  |  3 ++-
 xen/drivers/acpi/pmstat.c                 |  8 ++++++--
 xen/drivers/cpufreq/Kconfig               | 14 +++++++++++++-
 xen/include/acpi/cpufreq/cpufreq.h        | 13 ++++++++++++-
 xen/include/acpi/cpufreq/processor_perf.h |  3 ---
 xen/include/xen/acpi.h                    |  8 ++++++++
 xen/include/xen/pmstat.h                  | 15 ++++++++++++++-
 xen/include/xen/sched.h                   |  7 +++++++
 11 files changed, 68 insertions(+), 13 deletions(-)

diff --git a/xen/arch/x86/acpi/Makefile b/xen/arch/x86/acpi/Makefile
index 041377e2bb..aa476f65d5 100644
--- a/xen/arch/x86/acpi/Makefile
+++ b/xen/arch/x86/acpi/Makefile
@@ -1,4 +1,4 @@
-obj-y += cpufreq/
+obj-$(CONFIG_CPUFREQ) += cpufreq/
 
 obj-y += lib.o power.o cpu_idle.o cpuidle_menu.o
 obj-bin-y += boot.init.o wakeup_prot.o
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index c6c5135806..1dc7dae919 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -487,7 +487,8 @@ ret_t do_platform_op(
 
     case XENPF_change_freq:
         ret = -ENOSYS;
-        if ( cpufreq_controller != FREQCTL_dom0_kernel )
+        if ( !IS_ENABLED(CONFIG_CPUFREQ) ||
+             cpufreq_controller != FREQCTL_dom0_kernel )
             break;
         ret = -EINVAL;
         if ( op->u.change_freq.flags || !cpu_online(op->u.change_freq.cpu) )
@@ -507,7 +508,8 @@ ret_t do_platform_op(
         XEN_GUEST_HANDLE(uint64) idletimes;
 
         ret = -ENOSYS;
-        if ( cpufreq_controller != FREQCTL_dom0_kernel )
+        if ( !IS_ENABLED(CONFIG_CPUFREQ) ||
+             cpufreq_controller != FREQCTL_dom0_kernel )
             break;
 
         ctlmap.nr_bits  = op->u.getidletime.cpumap_nr_cpus;
diff --git a/xen/drivers/Makefile b/xen/drivers/Makefile
index 2a1ae8ad13..3d81b8dde4 100644
--- a/xen/drivers/Makefile
+++ b/xen/drivers/Makefile
@@ -1,5 +1,5 @@
 obj-y += char/
-obj-$(CONFIG_HAS_CPUFREQ) += cpufreq/
+obj-$(CONFIG_CPUFREQ) += cpufreq/
 obj-$(CONFIG_HAS_PCI) += pci/
 obj-$(CONFIG_HAS_VPCI) += vpci/
 obj-$(CONFIG_HAS_PASSTHROUGH) += passthrough/
diff --git a/xen/drivers/acpi/pm-op.c b/xen/drivers/acpi/pm-op.c
index 07bddc58d9..72f1eea62f 100644
--- a/xen/drivers/acpi/pm-op.c
+++ b/xen/drivers/acpi/pm-op.c
@@ -367,7 +367,8 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
         return ret;
     }
 
-    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
+    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) ||
+         !IS_ENABLED(CONFIG_CPUFREQ) )
         return -EINVAL;
     pmpt = processor_pminfo[op->cpuid];
 
diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
index 0f31736df2..d640d3a92c 100644
--- a/xen/drivers/acpi/pmstat.c
+++ b/xen/drivers/acpi/pmstat.c
@@ -76,6 +76,9 @@ void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t to)
     spinlock_t *cpufreq_statistic_lock =
                &per_cpu(cpufreq_statistic_lock, cpu);
 
+    if ( !IS_ENABLED(CONFIG_CPUFREQ) )
+        return;
+
     spin_lock(cpufreq_statistic_lock);
 
     pxpt = per_cpu(cpufreq_statistic_data, cpu);
@@ -105,7 +108,7 @@ int cpufreq_statistic_init(unsigned int cpu)
 
     spin_lock_init(cpufreq_statistic_lock);
 
-    if ( !pmpt )
+    if ( !pmpt || !IS_ENABLED(CONFIG_CPUFREQ) )
         return -EINVAL;
 
     /* Only need to initialize in Px mode */
@@ -225,7 +228,8 @@ int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
     int ret = 0;
     const struct processor_pminfo *pmpt;
 
-    if ( !op || (op->cpuid >= nr_cpu_ids) || !cpu_online(op->cpuid) )
+    if ( !IS_ENABLED(CONFIG_CPUFREQ) || !op || (op->cpuid >= nr_cpu_ids) ||
+         !cpu_online(op->cpuid) )
         return -EINVAL;
     pmpt = processor_pminfo[op->cpuid];
 
diff --git a/xen/drivers/cpufreq/Kconfig b/xen/drivers/cpufreq/Kconfig
index cce80f4aec..b9b93c1a26 100644
--- a/xen/drivers/cpufreq/Kconfig
+++ b/xen/drivers/cpufreq/Kconfig
@@ -1,3 +1,15 @@
-
 config HAS_CPUFREQ
 	bool
+
+config CPUFREQ
+	bool "CPU Frequency scaling"
+	default y
+	depends on HAS_CPUFREQ
+	help
+	  Enable CPU frequency scaling and power management governors.
+	  This allows Xen to dynamically adjust CPU P-states (performance
+	  states) based on system load.
+
+	  Disabling this option removes all cpufreq governors and power
+	  management interfaces. This is useful for real-time systems or
+	  minimal hypervisor builds.
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index 0171ccf0ba..828d23961c 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -381,8 +381,19 @@ int write_ondemand_up_threshold(unsigned int up_threshold);
 
 int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq);
 
+#ifdef CONFIG_CPUFREQ
+int cpufreq_add_cpu(unsigned int cpu);
+int cpufreq_del_cpu(unsigned int cpu);
+
 void cpufreq_dbs_timer_suspend(void);
 void cpufreq_dbs_timer_resume(void);
+#else
+static inline int cpufreq_add_cpu(unsigned int cpu) { return -EOPNOTSUPP; }
+static inline int cpufreq_del_cpu(unsigned int cpu) { return -EOPNOTSUPP; }
+
+static inline void cpufreq_dbs_timer_suspend(void) {}
+static inline void cpufreq_dbs_timer_resume(void) {}
+#endif
 
 void intel_feature_detect(struct cpufreq_policy *policy);
 
@@ -398,7 +409,7 @@ void intel_feature_detect(struct cpufreq_policy *policy);
 
 int hwp_cmdline_parse(const char *s, const char *e);
 int hwp_register_driver(void);
-#ifdef CONFIG_INTEL
+#if defined(CONFIG_INTEL) && defined(CONFIG_CPUFREQ)
 bool hwp_active(void);
 #else
 static inline bool hwp_active(void) { return false; }
diff --git a/xen/include/acpi/cpufreq/processor_perf.h b/xen/include/acpi/cpufreq/processor_perf.h
index 0a87bc0384..bad9d94865 100644
--- a/xen/include/acpi/cpufreq/processor_perf.h
+++ b/xen/include/acpi/cpufreq/processor_perf.h
@@ -36,9 +36,6 @@ static inline void cpufreq_statistic_exit(unsigned int cpu) {}
 
 int  cpufreq_limit_change(unsigned int cpu);
 
-int  cpufreq_add_cpu(unsigned int cpu);
-int  cpufreq_del_cpu(unsigned int cpu);
-
 struct processor_performance {
     uint32_t state;
     uint32_t platform_limit;
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index 90635ba0f3..ae6dba481c 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -186,7 +186,15 @@ static inline void acpi_set_csubstate_limit(unsigned int new_limit) { return; }
 #endif
 
 #ifdef XEN_GUEST_HANDLE
+#ifdef CONFIG_CPUFREQ
 int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32));
+#else
+static inline int acpi_set_pdc_bits(unsigned int acpi_id,
+                                    XEN_GUEST_HANDLE(uint32) pdc)
+{
+    return -EOPNOTSUPP;
+}
+#endif
 #endif
 int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);
 
diff --git a/xen/include/xen/pmstat.h b/xen/include/xen/pmstat.h
index 6096560d3c..51d3ee404f 100644
--- a/xen/include/xen/pmstat.h
+++ b/xen/include/xen/pmstat.h
@@ -5,10 +5,23 @@
 #include <public/platform.h> /* for struct xen_processor_power */
 #include <public/sysctl.h>   /* for struct pm_cx_stat */
 
+#ifdef CONFIG_CPUFREQ
 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);
+#else
+static inline int set_px_pminfo(uint32_t acpi_id,
+                                struct xen_processor_performance *perf)
+{
+    return -EOPNOTSUPP;
+}
+static inline int set_cppc_pminfo(unsigned int acpi_id,
+                                  const struct xen_processor_cppc *cppc_data)
+{
+    return -EOPNOTSUPP;
+}
+#endif
+long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power);
 
 #ifdef CONFIG_COMPAT
 struct compat_processor_performance;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 1268632344..084f3835dc 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -1259,6 +1259,7 @@ extern enum cpufreq_controller {
     FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
 } cpufreq_controller;
 
+#ifdef CONFIG_CPUFREQ
 static always_inline bool is_cpufreq_controller(const struct domain *d)
 {
     /*
@@ -1274,6 +1275,12 @@ static always_inline bool is_cpufreq_controller(const struct domain *d)
     return (is_pv_domain(d) && is_hardware_domain(d) &&
             cpufreq_controller == FREQCTL_dom0_kernel);
 }
+#else
+static always_inline bool is_cpufreq_controller(const struct domain *d)
+{
+    return false;
+}
+#endif
 
 int cpupool_move_domain(struct domain *d, struct cpupool *c);
 int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op);
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Sat Feb 14 13:51:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 14 Feb 2026 13:51:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1232544.1537022 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrG2o-0007cp-08; Sat, 14 Feb 2026 13:50:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1232544.1537022; Sat, 14 Feb 2026 13: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 1vrG2n-0007ch-RZ; Sat, 14 Feb 2026 13:50:45 +0000
Received: by outflank-mailman (input) for mailman id 1232544;
 Sat, 14 Feb 2026 13:50: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=E+9W=AS=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vrG2m-0006f3-P5
 for xen-devel@lists.xenproject.org; Sat, 14 Feb 2026 13:50:44 +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 259df8f7-09ac-11f1-9ccf-f158ae23cfc8;
 Sat, 14 Feb 2026 14:50:39 +0100 (CET)
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 01C2D3E709;
 Sat, 14 Feb 2026 13:50: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 A6E853EA62;
 Sat, 14 Feb 2026 13:50: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 Ge0DJ659kGlnEAAAD6G6ig
 (envelope-from <jgross@suse.com>); Sat, 14 Feb 2026 13:50: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: 259df8f7-09ac-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771077039; 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=Z0cRDnf2xIim2ayIB2oo0SVZPe7OdXmYlbPhOOSQXXY=;
	b=DGQroTb054iOgVi3KLxm/9aV0BCseIbARI2Fc7mJJ1jPpvavlyt7CKb0CMAvHh/mEaG0Nl
	6ypy1p05Kqi1TIMFzWLgrWUdHI+og5KK8dCOmSs94BLSmjEMUszidYyLkD3ATBCLSUPBBb
	UK8bNBjJEeH/jPWznl/Aez9y6gfRsPU=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=DGQroTb0
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771077039; 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=Z0cRDnf2xIim2ayIB2oo0SVZPe7OdXmYlbPhOOSQXXY=;
	b=DGQroTb054iOgVi3KLxm/9aV0BCseIbARI2Fc7mJJ1jPpvavlyt7CKb0CMAvHh/mEaG0Nl
	6ypy1p05Kqi1TIMFzWLgrWUdHI+og5KK8dCOmSs94BLSmjEMUszidYyLkD3ATBCLSUPBBb
	UK8bNBjJEeH/jPWznl/Aez9y6gfRsPU=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] x86/xen: Fix Xen PV guest boot
Date: Sat, 14 Feb 2026 14:50:35 +0100
Message-ID: <20260214135035.119357-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -3.01
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCVD_TLS_ALL(0.00)[];
	DKIM_TRACE(0.00)[suse.com:+];
	FROM_EQ_ENVFROM(0.00)[];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RCPT_COUNT_SEVEN(0.00)[10];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:rdns,imap1.dmz-prg2.suse.org:helo,suse.com:dkim,suse.com:mid,suse.com:email]
X-Spam-Level: 
X-Rspamd-Action: no action
X-Rspamd-Queue-Id: 01C2D3E709
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org
X-Spam-Flag: NO

A recent patch moving the call of sparse_init() to common mm code
broke booting as a Xen PV guest.

Reason is that the Xen PV specific boot code relied on struct page area
being accessible rather early, but this changed by the move of the call
of sparse_init().

Fortunately the fix is rather easy: there is a static branch available
indicating whether struct page contents are usable by Xen. This static
branch just needs to be tested in some places for avoiding the access
of struct page.

Fixes: 4267739cabb8 ("arch, mm: consolidate initialization of SPARSE memory model")
Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/xen/mmu_pv.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
index 963154feae06..3254eaa88471 100644
--- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c
@@ -509,6 +509,9 @@ static pgd_t *xen_get_user_pgd(pgd_t *pgd)
 	unsigned offset = pgd - pgd_page;
 	pgd_t *user_ptr = NULL;
 
+	if (!static_branch_likely(&xen_struct_pages_ready))
+		return NULL;
+
 	if (offset < pgd_index(USER_LIMIT)) {
 		struct page *page = virt_to_page(pgd_page);
 		user_ptr = (pgd_t *)page->private;
@@ -1098,7 +1101,8 @@ static void __init xen_cleanmfnmap_free_pgtbl(void *pgtbl, bool unpin)
 
 	if (unpin)
 		pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(pa));
-	ClearPagePinned(virt_to_page(__va(pa)));
+	if (static_branch_likely(&xen_struct_pages_ready))
+		ClearPagePinned(virt_to_page(__va(pa)));
 	xen_free_ro_pages(pa, PAGE_SIZE);
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Sun Feb 15 09:13:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 15 Feb 2026 09:13:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233227.1537032 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrYC2-0005x5-Ei; Sun, 15 Feb 2026 09:13:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233227.1537032; Sun, 15 Feb 2026 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 1vrYC2-0005wx-AG; Sun, 15 Feb 2026 09:13:30 +0000
Received: by outflank-mailman (input) for mailman id 1233227;
 Sun, 15 Feb 2026 09:13: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=vrrr=AT=codewreck.org=asmadeus@srs-se1.protection.inumbo.net>)
 id 1vrYBz-0005wo-Rs
 for xen-devel@lists.xenproject.org; Sun, 15 Feb 2026 09:13:28 +0000
Received: from submarine.notk.org (submarine.notk.org [62.210.214.84])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 92792561-0a4e-11f1-9ccf-f158ae23cfc8;
 Sun, 15 Feb 2026 10:13:22 +0100 (CET)
Received: from gaia.codewreck.org (localhost [127.0.0.1])
 by submarine.notk.org (Postfix) with ESMTPS id 4AEBF14C2DE;
 Sun, 15 Feb 2026 10:13:17 +0100 (CET)
Received: from localhost (gaia.codewreck.org [local])
 by gaia.codewreck.org (OpenSMTPD) with ESMTPA id acf4b99f;
 Sun, 15 Feb 2026 09:13: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: 92792561-0a4e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codewreck.org;
	s=2; t=1771146799;
	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=X6PMMPGz+jLe5ualpnm5Aab0p5EjTgChnMRnoKKA/Fs=;
	b=ohM1tTgfFBEmPiR3IPGDXoOqOAcf/5fyLo5GMbtawe3lv4QXeHSR6Tfjg3CTsEKJa/0r1a
	ECI8dgKfua712El69ShX/WNWoB2KFNbkwlbSG627Xwz1xs43TzGJpLVdxDalz0jjV3cL7/
	cVBlZExsUsBaLyjBuBnjzWsFsV792UAtl5pYusQwv29XiJyxfB+chicskwqc1j+oR/cQDi
	/XM5hKkxeFBul4d8OX/BEite+SJTT4Vdwe0wYD4Bu5ahgPhkPi9iMS0rzVGa3NJimBYveZ
	ej9pC0glbNQ/PetAYqOaWK+pt1KaVQIq7WvLmpH4n95kLPt5Tr/MyHUKcm3bnw==
Date: Sun, 15 Feb 2026 18:13:00 +0900
From: Dominique Martinet <asmadeus@codewreck.org>
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: xen-devel@lists.xenproject.org, jgross@suse.com, v9fs@lists.linux.dev,
	ericvh@kernel.org, lucho@ionkov.net, linux_oss@crudebyte.com,
	sstabellini@kernel.org
Subject: Re: [PATCH v2] 9p/xen: protect xen_9pfs_front_free against
 concurrent calls
Message-ID: <aZGOHNhDe1PPJCRO@codewreck.org>
References: <20260129230348.2390470-1-stefano.stabellini@amd.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260129230348.2390470-1-stefano.stabellini@amd.com>

Stefano Stabellini wrote on Thu, Jan 29, 2026 at 03:03:48PM -0800:
> Changes in v2:
> - move priv->rings check above the loop
> - replace list_del_init with list_del

It looks like I didn't reply a couple of weeks ago but I did
pick it up and just sent to Linus now.
Thanks!

-- 
Dominique Martinet | Asmadeus


From xen-devel-bounces@lists.xenproject.org Sun Feb 15 18:20:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 15 Feb 2026 18:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233478.1537062 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrgik-0000v8-82; Sun, 15 Feb 2026 18:19:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233478.1537062; Sun, 15 Feb 2026 18: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 1vrgik-0000v1-4e; Sun, 15 Feb 2026 18:19:50 +0000
Received: by outflank-mailman (input) for mailman id 1233478;
 Sun, 15 Feb 2026 18: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=+38R=AT=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vrgij-0000h9-1T
 for xen-devel@lists.xenproject.org; Sun, 15 Feb 2026 18:19:49 +0000
Received: from na1pdmzitismtp02.tibco.com (na1pdmzitismtp02.tibco.com
 [160.101.131.9]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e7499ad3-0a9a-11f1-9ccf-f158ae23cfc8;
 Sun, 15 Feb 2026 19:19:45 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id BCBCF810BDF8;
 Sun, 15 Feb 2026 13:19:18 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7499ad3-0a9a-11f1-9ccf-f158ae23cfc8
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
Date: Sun, 15 Feb 2026 18:16:02 +0000
Message-ID: <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the VMCB
and handed off to the hardware. There is no need for the artificial tracking
of the NMI handling completion with the IRET instruction interception.

Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hardware
accelerated feature when the AMD platform support the vNMI.

Adjust the svm_get_interrupt_shadow to check if the vNMI is currently blocked
by servicing another in-progress NMI.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/svm/intr.c | 9 +++++++++
 xen/arch/x86/hvm/svm/svm.c  | 5 ++++-
 xen/arch/x86/hvm/svm/vmcb.c | 2 ++
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 6453a46b85..3e8959f155 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
     u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
     intinfo_t event;
 
+    if ( vmcb->_vintr.fields.vnmi_enable )
+    {
+       if ( !vmcb->_vintr.fields.vnmi_pending &&
+            !vmcb->_vintr.fields.vnmi_blocking )
+           vmcb->_vintr.fields.vnmi_pending = 1;
+
+        return;
+    }
+
     event.raw = 0;
     event.v = true;
     event.type = X86_ET_NMI;
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..3dfdc18133 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -548,7 +548,9 @@ static unsigned cf_check int svm_get_interrupt_shadow(struct vcpu *v)
     if ( vmcb->int_stat.intr_shadow )
         intr_shadow |= HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI;
 
-    if ( vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET )
+    if ( vmcb->_vintr.fields.vnmi_enable
+         ? vmcb->_vintr.fields.vnmi_blocking
+         : (vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET) )
         intr_shadow |= HVM_INTR_SHADOW_NMI;
 
     return intr_shadow;
@@ -2524,6 +2526,7 @@ const struct hvm_function_table * __init start_svm(void)
     P(cpu_has_tsc_ratio, "TSC Rate MSR");
     P(cpu_has_svm_sss, "NPT Supervisor Shadow Stack");
     P(cpu_has_svm_spec_ctrl, "MSR_SPEC_CTRL virtualisation");
+    P(cpu_has_svm_vnmi, "Virtual NMI");
     P(cpu_has_svm_bus_lock, "Bus Lock Filter");
 #undef P
 
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548..e90bbac332 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -184,6 +184,8 @@ static int construct_vmcb(struct vcpu *v)
     if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
         v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
 
+    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;
+
     return 0;
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Sun Feb 15 18:20:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 15 Feb 2026 18:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233477.1537052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrgij-0000hR-0Z; Sun, 15 Feb 2026 18:19:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233477.1537052; Sun, 15 Feb 2026 18:19: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 1vrgii-0000hK-U4; Sun, 15 Feb 2026 18:19:48 +0000
Received: by outflank-mailman (input) for mailman id 1233477;
 Sun, 15 Feb 2026 18: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=+38R=AT=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vrgii-0000h9-ET
 for xen-devel@lists.xenproject.org; Sun, 15 Feb 2026 18:19:48 +0000
Received: from na1pdmzitismtp02.tibco.com (na1pdmzitismtp02.tibco.com
 [160.101.131.9]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e5f4abf6-0a9a-11f1-9ccf-f158ae23cfc8;
 Sun, 15 Feb 2026 19:19:43 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 84F4E813CD97;
 Sun, 15 Feb 2026 13:19:16 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e5f4abf6-0a9a-11f1-9ccf-f158ae23cfc8
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v3 1/2] x86/svm: Add Enumerations for the SVM virtual NMI
Date: Sun, 15 Feb 2026 18:16:01 +0000
Message-ID: <8b09eece639ba9cdff0d259e0941f7ef3dae7701.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the cpuid bit for the SVM vNMI feature support for the x86\AMD
platforms. The feature support is indicated by the CPUID
Fn8000_000A_EDX[25] = 1.

Add defines for the three SVM's Virtual NMI (vNMI) managements bits in the
VMCB structure's vintr_t:

vintr_t(11) - Virtual NMI is pending.
vintr_t(12) - Virtual NMI is masked.
vintr_t(26) - Enable NMI virtualization.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/svm/vmcb.h        | 8 ++++++--
 xen/arch/x86/include/asm/hvm/svm.h | 2 ++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
index 69f6047394..047483db9a 100644
--- a/xen/arch/x86/hvm/svm/vmcb.h
+++ b/xen/arch/x86/hvm/svm/vmcb.h
@@ -336,13 +336,17 @@ typedef union
         u64 tpr:          8;
         u64 irq:          1;
         u64 vgif:         1;
-        u64 rsvd0:        6;
+        u64 rsvd0:        1;
+        u64 vnmi_pending: 1;
+        u64 vnmi_blocking:1;
+        u64:              3;
         u64 prio:         4;
         u64 ign_tpr:      1;
         u64 rsvd1:        3;
         u64 intr_masking: 1;
         u64 vgif_enable:  1;
-        u64 rsvd2:        6;
+        u64 vnmi_enable:  1;
+        u64 rsvd2:        5;
         u64 vector:       8;
         u64 rsvd3:       24;
     } fields;
diff --git a/xen/arch/x86/include/asm/hvm/svm.h b/xen/arch/x86/include/asm/hvm/svm.h
index 15f0268be7..a35a61273b 100644
--- a/xen/arch/x86/include/asm/hvm/svm.h
+++ b/xen/arch/x86/include/asm/hvm/svm.h
@@ -37,6 +37,7 @@ extern u32 svm_feature_flags;
 #define SVM_FEATURE_VGIF          16 /* Virtual GIF */
 #define SVM_FEATURE_SSS           19 /* NPT Supervisor Shadow Stacks */
 #define SVM_FEATURE_SPEC_CTRL     20 /* MSR_SPEC_CTRL virtualisation */
+#define SVM_FEATURE_VNMI          25 /* Virtual NMI */
 #define SVM_FEATURE_BUS_LOCK      29 /* Bus Lock Threshold */
 
 static inline bool cpu_has_svm_feature(unsigned int feat)
@@ -57,6 +58,7 @@ static inline bool cpu_has_svm_feature(unsigned int feat)
 #define cpu_has_svm_vloadsave cpu_has_svm_feature(SVM_FEATURE_VLOADSAVE)
 #define cpu_has_svm_sss       cpu_has_svm_feature(SVM_FEATURE_SSS)
 #define cpu_has_svm_spec_ctrl cpu_has_svm_feature(SVM_FEATURE_SPEC_CTRL)
+#define cpu_has_svm_vnmi      cpu_has_svm_feature(SVM_FEATURE_VNMI)
 #define cpu_has_svm_bus_lock  cpu_has_svm_feature(SVM_FEATURE_BUS_LOCK)
 
 #define MSR_INTERCEPT_NONE    0
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Sun Feb 15 18:20:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sun, 15 Feb 2026 18:20:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233475.1537042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrgid-0000TS-SG; Sun, 15 Feb 2026 18:19:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233475.1537042; Sun, 15 Feb 2026 18: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 1vrgid-0000TK-NF; Sun, 15 Feb 2026 18:19:43 +0000
Received: by outflank-mailman (input) for mailman id 1233475;
 Sun, 15 Feb 2026 18:19: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=+38R=AT=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vrgid-0000TE-92
 for xen-devel@lists.xenproject.org; Sun, 15 Feb 2026 18:19:43 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e48077a5-0a9a-11f1-b163-2bf370ae4941;
 Sun, 15 Feb 2026 19:19:42 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id E9338813CB7D;
 Sun, 15 Feb 2026 13:19:13 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e48077a5-0a9a-11f1-b163-2bf370ae4941
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Subject: [PATCH v3 0/2] Virtual NMI
Date: Sun, 15 Feb 2026 18:16:00 +0000
Message-ID: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently, the Xen hypervisor delivers NMIs to the guests using the Event
Injection mechanism. The Event Injection mechanism does not block the delivery
of subsequent NMIs. So, the Xen Hypervisor tracks the NMI delivery and its
completion (by intercepting the IRET instruction) before sending a new NMI.

With the 4th generation AMD EPYC, a hardware NMI virtualization support,
Virtual NMI (VNMI), is introduced.  The vNMI allows the hypervisor to inject
the NMI into the guest w/o using Event Injection mechanism. No need to track
the guest NMI and intercepting the IRET instruction.

NMI Virtualization support is indicated by CPUID Fn8000_000A_EDX[VNMI] = 1.[1]

NMI Virtualization is enabled by setting V_NMI_ENABLE (bit 26 in offset 60h
of the VMCB). Enabling NMI Virtualization requires the NMI intercept bit to
be set. An attempt to run a guest with V_NMI_ENABLE without the NMI intercept
bit set results in #VMEXIT(INVALID) [1]

Three new bits are added to the VMCB field at offset 60h to provide NMI
virtualization hardware support:

V_NMI(11): Indicates whether a virtual NMI is pending in the guest. The
processor will clear V_NMI once it takes the virtual NMI.
V_NMI_MASK(12): Indicates whether virtual NMIs are masked. The processor will
set V_NMI_MASK once it takes the virtual NMI. V_NMI_MASK is cleared when the
guest successfully completes an IRET instruction or #VMEXIT occurs while
delivering the virtual NMI.
V_NMI_ENABLE(26): Enables NMI virtualization. [1]

[1] https://docs.amd.com/v/u/en-US/24593_3.43

---
Changes in v3:
 - Delete the introduced hvm_function_table::vNMI boolean and all the 3 vNMI
   hooks, hvm_function_table::is_vnmi_enabled,
   hvm_function_table::is_vnmi_masked and hvm_function_table::set_vnmi_pending.
 - Use the HVM_INTR_SHADOW_NMI to indicate that the NMI is blocked rather than
   the usage of HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2327265341
---
Changes in v2:
 - Merge the patches for
   "svm/vnmi: introduce the vnmi bit support in the cpuid feature set"
   and
   "svm/vnmi: add the definitions for the svm vnmi management bits in the VMCB"
   into the one patch
   "x86/svm: Add Enumerations for the SVM virtual NMI".
 - Change the patch subject "svm/vnmi: Add support for the SVM Virtual NMI" to
   "x86/svm: Use virtual NMI when available"
 - Move the print out of the VNMI capability to the patch
   "x86/svm: Use virtual NMI when available" when it is being used.
 - Remove the hvm_intblk_vnmi enumeration that was introduced for the separate
   masked vNMI handling.
 - Introduce the hvm_function_table's is_vnmi_enabled callback to allow for the
   SVM implementation to verify that the VNMI is enabled by checking the VMCB
   bits in addition to the CPUID reported support.
 - Change the the name of the hvm_function_table's callback is_vnmi_pending to
   is_vnmi_masked.
 - The svm_inject_nmi function gains a check for the distinct NMI injection
   handling when the VNMI is enabled.
 - Simplify the check of AMD SVM Hardware support for the VNMI. The check
   cpu_has_svm_vnmi is performed unconditionally.
 - Simplify the introduced changes diff for the vintr_t union for the VNMI bits
   support.
 - Adopt the Xen formatting guidelines for the control structures.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2325298577
---

Abdelkareem Abdelsaamad (2):
  x86/svm: Add Enumerations for the SVM virtual NMI
  x86/svm: Use the virtual NMI when available

 xen/arch/x86/hvm/svm/intr.c        | 9 +++++++++
 xen/arch/x86/hvm/svm/svm.c         | 5 ++++-
 xen/arch/x86/hvm/svm/vmcb.c        | 2 ++
 xen/arch/x86/hvm/svm/vmcb.h        | 8 ++++++--
 xen/arch/x86/include/asm/hvm/svm.h | 2 ++
 5 files changed, 23 insertions(+), 3 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 07:47:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 07:47:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233713.1537072 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrtKC-0001SZ-4i; Mon, 16 Feb 2026 07:47:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233713.1537072; Mon, 16 Feb 2026 07:47: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 1vrtKC-0001SS-1b; Mon, 16 Feb 2026 07:47:20 +0000
Received: by outflank-mailman (input) for mailman id 1233713;
 Mon, 16 Feb 2026 07:47: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=z2lT=AU=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vrtKB-0001SM-AZ
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 07:47:19 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id b6824cde-0b0b-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 08:47:16 +0100 (CET)
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 32D9F150C;
 Sun, 15 Feb 2026 23:47:09 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.56.129])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2849A3F632;
 Sun, 15 Feb 2026 23:47:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6824cde-0b0b-11f1-b163-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: 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: smccc: Preserve argument types in v1.1 SMC
Date: Mon, 16 Feb 2026 08:47:08 +0100
Message-ID: <0e2ba0af683fa5e53a3d2b4b625703751cf7ce54.1771228001.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The SMCCC v1.1 inline helper currently forces a1-a4 into
unsigned long and uses in/out constraints for r0-r3. In
contrast, a5-a7 are passed with their original types via
read-only constraints. On arm64 this means a 32-bit signed
value in a1-a4 is converted to a 64-bit unsigned value, while
the same value in a5-a7 keeps its signed 32-bit form. For
example, a negative int in a2 is widened to unsigned long, but
a negative int in a5 is passed as a 32-bit signed value, so the
SMC sees different encodings depending on argument position.

Switch the helper to use typed input registers arg0-arg7
derived from the call arguments (keeping a0 cast to u32) and
separate output registers r0-r3. This preserves argument types
consistently across all positions. Argument evaluation order
is unchanged, so we do not reintroduce the issue fixed in
"e00dc325bd9e" ("xen/arm: smccc-1.1: Handle function result as
parameters").

This also aligns Xen's SMCCC parameter handling with Linux's type-
preserving behavior (same externally visible argument handling,
independent implementation) to avoid surprising differences
between a1-a4 and a5-a7.

Current callers (PSCI, SCMI, platform SMC pass-through, OP-TEE,
and exynos5) pass unsigned values; exynos5 passes an int CPU id
which should always be > 0.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/include/asm/smccc.h | 69 +++++++++++++-------------------
 1 file changed, 27 insertions(+), 42 deletions(-)

diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
index 441b3ab65dee..5b30dd57b69d 100644
--- a/xen/arch/arm/include/asm/smccc.h
+++ b/xen/arch/arm/include/asm/smccc.h
@@ -99,87 +99,68 @@ struct arm_smccc_res {
 #define __count_args(...)                               \
     ___count_args(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1, 0)
 
-#define __constraint_write_0                        \
-    "+r" (r0), "=&r" (r1), "=&r" (r2), "=&r" (r3)
-#define __constraint_write_1                        \
-    "+r" (r0), "+r" (r1), "=&r" (r2), "=&r" (r3)
-#define __constraint_write_2                        \
-    "+r" (r0), "+r" (r1), "+r" (r2), "=&r" (r3)
-#define __constraint_write_3                        \
-    "+r" (r0), "+r" (r1), "+r" (r2), "+r" (r3)
-#define __constraint_write_4    __constraint_write_3
-#define __constraint_write_5    __constraint_write_4
-#define __constraint_write_6    __constraint_write_5
-#define __constraint_write_7    __constraint_write_6
-
-#define __constraint_read_0
-#define __constraint_read_1
-#define __constraint_read_2
-#define __constraint_read_3
-#define __constraint_read_4 "r" (r4)
-#define __constraint_read_5 __constraint_read_4, "r" (r5)
-#define __constraint_read_6 __constraint_read_5, "r" (r6)
-#define __constraint_read_7 __constraint_read_6, "r" (r7)
+#define __constraint_read_0 "r" (arg0)
+#define __constraint_read_1 __constraint_read_0, "r" (arg1)
+#define __constraint_read_2 __constraint_read_1, "r" (arg2)
+#define __constraint_read_3 __constraint_read_2, "r" (arg3)
+#define __constraint_read_4 __constraint_read_3, "r" (arg4)
+#define __constraint_read_5 __constraint_read_4, "r" (arg5)
+#define __constraint_read_6 __constraint_read_5, "r" (arg6)
+#define __constraint_read_7 __constraint_read_6, "r" (arg7)
 
 #define __declare_arg_0(a0, res)                            \
     struct arm_smccc_res    *___res = (res);                \
-    register unsigned long  r0 ASM_REG(0) = (uint32_t)(a0); \
-    register unsigned long  r1 ASM_REG(1);                  \
-    register unsigned long  r2 ASM_REG(2);                  \
-    register unsigned long  r3 ASM_REG(3)
+    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0)
 
 #define __declare_arg_1(a0, a1, res)                        \
     typeof(a1) __a1 = (a1);                                 \
     struct arm_smccc_res    *___res = (res);                \
-    register unsigned long  r0 ASM_REG(0) = (uint32_t)(a0); \
-    register unsigned long  r1 ASM_REG(1) = __a1;           \
-    register unsigned long  r2 ASM_REG(2);                  \
-    register unsigned long  r3 ASM_REG(3)
+    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
+    register typeof(a1)     arg1 ASM_REG(1) = __a1
 
 #define __declare_arg_2(a0, a1, a2, res)                    \
     typeof(a1) __a1 = (a1);                                 \
     typeof(a2) __a2 = (a2);                                 \
     struct arm_smccc_res    *___res = (res);                \
-    register unsigned long  r0 ASM_REG(0) = (uint32_t)(a0); \
-    register unsigned long  r1 ASM_REG(1) = __a1;           \
-    register unsigned long  r2 ASM_REG(2) = __a2;           \
-    register unsigned long  r3 ASM_REG(3)
+    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
+    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
+    register typeof(a2)     arg2 ASM_REG(2) = __a2
 
 #define __declare_arg_3(a0, a1, a2, a3, res)                \
     typeof(a1) __a1 = (a1);                                 \
     typeof(a2) __a2 = (a2);                                 \
     typeof(a3) __a3 = (a3);                                 \
     struct arm_smccc_res    *___res = (res);                \
-    register unsigned long  r0 ASM_REG(0) = (uint32_t)(a0); \
-    register unsigned long  r1 ASM_REG(1) = __a1;           \
-    register unsigned long  r2 ASM_REG(2) = __a2;           \
-    register unsigned long  r3 ASM_REG(3) = __a3
+    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
+    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
+    register typeof(a2)     arg2 ASM_REG(2) = __a2;         \
+    register typeof(a3)     arg3 ASM_REG(3) = __a3
 
 #define __declare_arg_4(a0, a1, a2, a3, a4, res)        \
     typeof(a4) __a4 = (a4);                             \
     __declare_arg_3(a0, a1, a2, a3, res);               \
-    register unsigned long r4 ASM_REG(4) = __a4
+    register typeof(a4)     arg4 ASM_REG(4) = __a4
 
 #define __declare_arg_5(a0, a1, a2, a3, a4, a5, res)    \
     typeof(a5) __a5 = (a5);                             \
     __declare_arg_4(a0, a1, a2, a3, a4, res);           \
-    register typeof(a5) r5 ASM_REG(5) = __a5
+    register typeof(a5)     arg5 ASM_REG(5) = __a5
 
 #define __declare_arg_6(a0, a1, a2, a3, a4, a5, a6, res)    \
     typeof(a6) __a6 = (a6);                                 \
     __declare_arg_5(a0, a1, a2, a3, a4, a5, res);           \
-    register typeof(a6) r6 ASM_REG(6) = __a6
+    register typeof(a6)     arg6 ASM_REG(6) = __a6
 
 #define __declare_arg_7(a0, a1, a2, a3, a4, a5, a6, a7, res)    \
     typeof(a7) __a7 = (a7);                                     \
     __declare_arg_6(a0, a1, a2, a3, a4, a5, a6, res);           \
-    register typeof(a7) r7 ASM_REG(7) = __a7
+    register typeof(a7)     arg7 ASM_REG(7) = __a7
 
 #define ___declare_args(count, ...) __declare_arg_ ## count(__VA_ARGS__)
 #define __declare_args(count, ...)  ___declare_args(count, __VA_ARGS__)
 
 #define ___constraints(count)                       \
-    : __constraint_write_ ## count                  \
+    : "=r" (r0), "=r" (r1), "=r" (r2), "=r" (r3)     \
     : __constraint_read_ ## count                   \
     : "memory"
 #define __constraints(count)    ___constraints(count)
@@ -204,6 +185,10 @@ struct arm_smccc_res {
  */
 #define arm_smccc_1_1_smc(...)                                  \
     do {                                                        \
+        register unsigned long r0 ASM_REG(0);                   \
+        register unsigned long r1 ASM_REG(1);                   \
+        register unsigned long r2 ASM_REG(2);                   \
+        register unsigned long r3 ASM_REG(3);                   \
         __declare_args(__count_args(__VA_ARGS__), __VA_ARGS__); \
         asm volatile("smc #0\n"                                 \
                      __constraints(__count_args(__VA_ARGS__))); \
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 07:53:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 07:53:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233721.1537082 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrtPz-0002zc-Nr; Mon, 16 Feb 2026 07:53:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233721.1537082; Mon, 16 Feb 2026 07: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 1vrtPz-0002zV-Kd; Mon, 16 Feb 2026 07:53:19 +0000
Received: by outflank-mailman (input) for mailman id 1233721;
 Mon, 16 Feb 2026 07: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=nRIP=AU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vrtPx-0002zP-V9
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 07:53:18 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8c3b03be-0b0c-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 08:53:15 +0100 (CET)
Received: from MW4PR03CA0021.namprd03.prod.outlook.com (2603:10b6:303:8f::26)
 by LV9PR12MB9830.namprd12.prod.outlook.com (2603:10b6:408:2ec::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 07:53:11 +0000
Received: from CO1PEPF00012E7E.namprd03.prod.outlook.com
 (2603:10b6:303:8f:cafe::21) 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.9611.16 via Frontend Transport; Mon,
 16 Feb 2026 07:53:08 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E7E.mail.protection.outlook.com (10.167.249.53) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 16 Feb 2026 07:53:10 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Mon, 16 Feb
 2026 01:53:09 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB03.amd.com
 (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 16 Feb
 2026 01:53:09 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Feb 2026 01:53:08 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c3b03be-0b0c-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gAw3GsNH3nezouKWA8ZhZ+zUevcm8E9Y7uIKRdml13whk7DfFIG72RyLskRawAVZIG/dfGqug1nDbSNeGsYLI+KYxHE7p/7WhTsLFqFSP1d8u0W56QEWiZJGzpAlQgu6zzKtyN76whsaAAvgKrWfYH7kVv9kNelV4KVo0kxu8iA7OO9BAxGeaTt+Jhrke+I/3DaNRWWM8LB6rTy4oE10cHdspqIhVeC5iFqd0SOBKaeeMpREwYc43+AY3oPcECJAtGldzyDhkn5mXStU2mjMPrCx9bSK3pFsdpARy/XlHfkhv38eShBdZGS/4+paRmLqs1WO1xFBdXziSPYz5158EQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tQUtTnOcLFv6dyWBn4pVzq3JVCF4sqS6YPDgpC1FCF4=;
 b=AX29MxTp6OlsbSBfOJ5V41Hw1EzWzYIU9vQk663+PhB3jDUA2HCQ/EW8JMcq9IjUYTOQrcz1vC/AvEHg/65ew95fdqaYcapvjTPhAipqNau1TAwbIrNeUA0sSiVR19KjBxW4mnjqcFtHWJaixwsitdivz8/qmrES8DKrz1vBmRN9IxuQDOwNINLcqw5VqKAhNIVvBrfmdoC3+c8hSSal8x6cHHSDSjKF2lg7eoFIhSwLVFqkoOtIbufB0kIIui8o3KAokqBJR+KaR+ee68W03Fhl6gnStfvUDJZ4pWgyOCeB/5H8EHsvNzFGfZ2HHdCgLIoSRe9Hs6K3mjCR4xREbQ==
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=tQUtTnOcLFv6dyWBn4pVzq3JVCF4sqS6YPDgpC1FCF4=;
 b=vjIR1BXV7N522duSpsBpJD3dkskNR/z3/BLqPq8/+aEc8aFM0yNEPzxjuYOmktEfhg65pskoOXFBnzQWO9hj+M/NQhYHpVQTXHRnNEPPBs88fMQXgEKYEiNOYeYYOe8y3u8blcU9hNVu5hADXCEhsQmhRhQBvqCUygxL7jIEFsM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <528d06fb-db95-4cec-b0a4-5e16254a439f@amd.com>
Date: Mon, 16 Feb 2026 08:53:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree property
 for domains
To: Luca Fancellu <Luca.Fancellu@arm.com>, "Halder, Ayan Kumar"
	<ayankuma@amd.com>
CC: Harry Ramsey <Harry.Ramsey@arm.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Bertrand Marquis
	<Bertrand.Marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-3-harry.ramsey@arm.com>
 <a5318e5e-3082-4cd4-96cb-98d8dc27ae65@amd.com>
 <585C8F54-ED56-49CF-A77C-895016182673@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <585C8F54-ED56-49CF-A77C-895016182673@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: CO1PEPF00012E7E:EE_|LV9PR12MB9830:EE_
X-MS-Office365-Filtering-Correlation-Id: 2a9af73a-0d1c-41d3-9a0c-08de6d306e23
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?U2RXNVRQQ21YR2Jucm9mSlMySVk0eUNDSm5PQjhYdGhnSUlsN0lqb1ZVckwr?=
 =?utf-8?B?Vi83NVVha2MvODEydnFlVkhUbDNNRGdGcUxmVnlwYnB3dkk4bEZmOC85VXB2?=
 =?utf-8?B?UmoxRFJUSmVZNExmLzVyUi9jbmx0WndkVWFJSlp2c29PRDB2ampZTnp5SzN1?=
 =?utf-8?B?YkVWNGhDQkF3c2NoN1JuZVJnVjNNSjhjTVJoNnduRi9BRVB5RXFDRE91YWJM?=
 =?utf-8?B?UlZUeThGZ1phNlc3c3V4dEE2UXpEMllNQVFVL3dRcy82ampFRTZncjVNOFFG?=
 =?utf-8?B?MUdZQkdJMjkrcktweW00YUVqRDNNVVJ2Z2FmaXRqelk0bThRMXE4ZHFXM1k4?=
 =?utf-8?B?VjZOdHR4eFdIRjUzd0FMcE1SdG9jNXEzTEVtaXFIWTZ6T3dWVjJERWx1aU5y?=
 =?utf-8?B?VVJUZUtWWmxsV0NEd3QvTzhqZjlWelFGbFhNY2h4ZnpWbUN3cWhVM2UzeTJl?=
 =?utf-8?B?Qy92ZlhKZzNiOFkyWGc2Y2d1SW5uV1FNNUZCMGNOb2JqdmJSUXVyWjAwa3VH?=
 =?utf-8?B?SHZPVXBVNkQzVnNOaGFvc1Nkdk1KRUd1WUpzR3cyeHpQRG9DbERHV2dkZnRz?=
 =?utf-8?B?YXU3S1p2MDdrSzNQc2dMbjF6eG9pd09MajdncnNwZUJkMVprQnpjNXFveXBl?=
 =?utf-8?B?WVM2MXpNVXNCYkFzQUN5OWhhVEE1L3pqcjJaNVJYajRONmR4U3hHUmxIK3Jv?=
 =?utf-8?B?NUhFaGZFSWVLVVdGZEhxUjVhQlNNRGJabGRSSmNTNnBLNG5qdVF4cWJXLyto?=
 =?utf-8?B?SmtWTmVLdmNPR0NmRWZ6NFV5OGFZWXBzczVRd1luVGNkaXZFOEpHb1hTOVBx?=
 =?utf-8?B?MnkzVHZWVGZ5ZkdoZjAxOFJnQlVHaXBrR0dDaC9ZVytaTy9FZmppSEk0ZHY3?=
 =?utf-8?B?Sm1RVWEvTnFYdGMzRGJIUXlPNm1iRXVycTA0c1BUQ3pDdHAyOTZnQ21RSWFZ?=
 =?utf-8?B?QlV0bVgrNDJZTHRrK3hwVEdGSHowTVA0b2lFa1ZGWW56NDBndlZjdHZuS2FR?=
 =?utf-8?B?SEEwZHZ4c3EvdlVjcjkvYVZRdUJHK3dDS0dmM1A0elZYY3FrNTZsd09xMldH?=
 =?utf-8?B?YWFQaWZ3Ukd2ak84dUh2aHhLTDFjUG1BaHlMNGEwNDRWcGR5Q1dxRndiM2tt?=
 =?utf-8?B?WjRWdElXcDQvRWJBQTVyYVgzVkE4RTNKT2MwNDhMUEZ1MFowK1JXOCs5ZDJo?=
 =?utf-8?B?SVNndmZmVTIxUmIxZjd4QzVwaGFtZVk2ZDhYb1N5alNSNE9PcWppNWh3S1dk?=
 =?utf-8?B?T1RUUFJ2YVNkejZBMmYxdmdsM2NycFRTODk2cDMrdFloaU1JMEpCQmswM2gy?=
 =?utf-8?B?YVppOGFwc0ltdnZhYi9kUTVaODJWWm1qTExXQ2V6MmFFQlhsM3BqeDZQbU5p?=
 =?utf-8?B?alJmZG9KVk1PeGQ3eC9jdWM2K1lrNm8xTEpIMFU5clNJZUIwcXRxUzd2RFFJ?=
 =?utf-8?B?VFEvSDdISDQzUjJLQVVXOTE0aWVnV0NQNkovckZkTjN1V1BQR3lEV0lqNmpp?=
 =?utf-8?B?V2ZSaXVNVENCN0JhejRNNHJEaG5uWk9SQTBRcGZnNUk5dnlJSWQ2aCtnWDNx?=
 =?utf-8?B?bEJBcXpVdy8wMUtXc0VTbnVLSkQyT3J6UzBLaXI2YXlITnJGUGhnc25ITFp4?=
 =?utf-8?B?VWNrQXdoWHVLUHJCb2REbnd6N2lrN2lLeHAzNS9VNWNQRE41QXgxTmdPSWZS?=
 =?utf-8?B?Ym5TNG5tUVV0aU1maEhycldZRVl6R0NkN05aUXJNWllSOVNxVHpiVGl6eWFP?=
 =?utf-8?B?ZmJoU0NjTzVJMXEvTzQxL1pzVE1xZ1REOFY2VEFRbE1kdGhoUEI4aWVZMncy?=
 =?utf-8?B?MHNrZ015ZS9XUWloSlF2eTBEYnJZbnkrVmdpVERnNnpvajVRblFtOGtrYUpu?=
 =?utf-8?B?eHhXTkw1WkN5NzY2MkRCT0N4TVV3SHFqbVMyeDV1N3A3L1lLL0xubTVKUnpj?=
 =?utf-8?B?ZDE4VVducXo3WXJjcTBGVUV4T0NlYmhuMmJwSXp5OCtFQnFoZmsxeW5ON3p4?=
 =?utf-8?B?WEhHZ282TGlUeVUyS2thZ01QMHJuazYzVDNDRm9RQVViNkxIMEY1SzBCQWta?=
 =?utf-8?B?OGVkSk5hNmRpSjl1ZmxOZ0pRZ3ZpRktQUnZpbzA5S1JpNEJGQy8xcnVKMnZV?=
 =?utf-8?B?V3hjYm5pSTVKcEw3OVpEbW1SbUpWRk5aVjN2YU1seGdXd3F6UDZUOENSdEtL?=
 =?utf-8?B?enRyRDVxMjF2ZHFheDhvazlUd1F6c0sxVEVRZkMzOHFOM2V4VFU4VnhPOHpv?=
 =?utf-8?B?dThPKzZ2TGk1b1ZnQ0tlZU4rbHRRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1c9dxKsvaF6KDkgEpPXN3U2JRbr7iwdJmX55rdkA9+5UzzEIQxJVDLxZ6lnsp9RlAQJLd+ddxAE4Diu1/P+9LMs245XecY1FkGShCUad4N6qpxSWTNDbXpBBcc+9czWne/KSwWyCG3eqvM2vqeUwBNqXPEmCGsgLpunwM8pfFulFTQly4X8TFhGqUSp1gUAmQ71GPzgzts28o/jbsmqUNnfgY6gArAxbRQXNry58x7u5X1CmCeWvMiMfYM2QwHVVvYW7bTpqZvmIp5UWAf8E1eldCY73no3mTF7EqD+IOUrdqjf9nmhWtOQ4ePYfhcjNsE7WoBX3kZW2eQtSCJlcomcVIeWEk6tfsUupQbgMfjSddJ3q7xAUOxuL0G828gr6xEY8PHim53wBPyBy8SqdvmohG+ZgPjZoUs/ZIlpR8Qp+HCzJ9Y2zcRMJK8O5nw89
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 07:53:10.6074
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a9af73a-0d1c-41d3-9a0c-08de6d306e23
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E7E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV9PR12MB9830



On 13/02/2026 10:20, Luca Fancellu wrote:
> Hi Ayan,
> 
>>
>> Further if we can set `v8r_el1_msa = mmu` by default for everyone (Armv8-A, Armv8-R) , then we can reduce further if-def.
>>
> 
> This was Michal suggestion to have mpu by default, so I would wait for his reply before proceeding further on this.
Yes, we should keep mpu as a default which matches the Arm ARM. MMU is optional
whereas MPU is not.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 08:11:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 08:11:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233742.1537091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrthb-0006MZ-Mb; Mon, 16 Feb 2026 08:11:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233742.1537091; Mon, 16 Feb 2026 08:11: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 1vrthb-0006MS-K0; Mon, 16 Feb 2026 08:11:31 +0000
Received: by outflank-mailman (input) for mailman id 1233742;
 Mon, 16 Feb 2026 08:11: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrtha-0006ML-Eu
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 08:11:30 +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 17f01b8c-0b0f-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 09:11:28 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4834826e555so29613975e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 00:11:28 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a337dfsm81163425e9.19.2026.02.16.00.11.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 00:11:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 17f01b8c-0b0f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771229487; x=1771834287; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=diQbNHcEpL4P3pIMbO5nLzUWhJwz0cl2ELoymmlrwzo=;
        b=T14nOiLrOtbm2WkBkxvdUoWiEqccD9FzIcJwAg3glneIuCYLNLJ+Ltvoo700o66DMW
         fpuW5Ll+Gl5yKtIaeIErA7kunpLGpZXhXFHwwieHAOOiEF2ekzXVNCK6Un12gMujlcbE
         qKs8cRIZCXEGEmhMiDMc/8DPimRPJRHNTYampC/rcA7aaL3mCq5rlJ0kLnvJHnkJNlpm
         peRa/Xltyo6kedJEG/2s51Ul/otng4fPN1YBkNFg89vaxuLZNzxIc4vX3xg4FGfXimpm
         9wq4UD4sdg1O3jxYLTKvCbzngvu6mLoBn9XnPyNNeyAY40mH7hzfL87s/5f15hOud1zY
         FExg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771229487; x=1771834287;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=diQbNHcEpL4P3pIMbO5nLzUWhJwz0cl2ELoymmlrwzo=;
        b=Q0w56VBhQ3FioSOouRI6K74wDAijPpVkh4KQ5yBTwiGYmzg3NFLrD5ys5zpvW7/a2Y
         rcyNn/3u59fhYghJED+fKx6fQTy0D59HnOP4VMuySKdGSdSdEK/P9cRf6Xav4YMLoFWZ
         j5MwQihPIAm8TEJF6Mxo2J8nXFpHUXsdoHwm29weBPKJ0xJoCkDGLNrt6fsCRCDfvdPd
         F/9a1PDqollzzZCmWcdTm9Apswd9TU83AyetK7rvEuLNTaQ3S4liVNO61wI4W5yI51yr
         IjSkLhxSm/Uo4NbmXNctSCQT1C0BxU3TkH7qTesn6C1YiB/LPABeoMMu/TxME72nPdWB
         dEmA==
X-Gm-Message-State: AOJu0Yxeam0R9KlU9me7DasD+coZpWDA6EUZZ5ghwTw/p7HxN/7Frodv
	rWTQtCKvwE22G5HDzGO6Er2QYY/4n8CVZyVgtT+/q4QJS/2gm0hG9x8NqEHqoZ/yTQ==
X-Gm-Gg: AZuq6aIq/enTkKcCAT3evAyzHvuOCmrGaibWm2dM0qOQGWEpVLwqGmO8YVSNFUvP/gz
	AvKI+gn/pwio27hLItm0D2ldrWwNpS1EcugJMFYieoyDBatfotmor8LoLMwDeaqUZZIs+3ZNDLX
	u98IJYxyaQgeHQmVj+RFQXcNsFR2sulXsZtWp6Yp36x2gAQuomjUr8LdBoCkiolnWFaYr+38wyb
	phznygnbdoY7NX/W+EIy+KEXqg6uQDOgV5gvZt+F3JBK98Yjj9uTb5NEgzWKwHa/LYoEcAbhCtK
	nbU7HCX2iB/N6C+hKC/FtTBV8+r6oqu5bLar6u/2oT2c5CcbgsZlinwxMC0j31mHitxbidiZN/4
	TGHT0Bv5fX2ozZqVQ+oWRgrOepf/6TH5BcBCdIE/mKey5BoESCo4tAtt5avmJA6R8ee975uqQR8
	fxfdXRTAyAJVbTHRQpAhzTZDomODWNrN0+fBe/xO1tf6HUSnmwJTHKN89VIkYSbHhMY24hyq1vh
	48v41n5VTouQms=
X-Received: by 2002:a05:600c:37cc:b0:477:58af:a91d with SMTP id 5b1f17b1804b1-48379b93370mr117547095e9.5.1771229487396;
        Mon, 16 Feb 2026 00:11:27 -0800 (PST)
Message-ID: <42b32172-9e28-40c1-a83c-ba37e17f5480@suse.com>
Date: Mon, 16 Feb 2026 09:11:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Cannot boot PVH dom0 with big initrd
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <aY6iVr990vWeO2p5@mail-itl>
 <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com> <aY9Jt1-jCWhStcxB@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: <aY9Jt1-jCWhStcxB@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 16:56, Roger Pau Monné wrote:
> On Fri, Feb 13, 2026 at 09:56:42AM +0100, Jan Beulich wrote:
>> On 13.02.2026 05:02, Marek Marczykowski-Górecki wrote:
>>> Hi,
>>>
>>> After fixing the xhci crash, I hit another issue - booting with 236MB
>>> initrd doesn't work, I get:
>>>
>>>     (XEN) [    3.151856] *** Building a PVH Dom0 ***
>>>     ...
>>>     (XEN) [    3.593940] Unable to allocate memory with order 0!
>>>     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
>>>     (XEN) [    3.599884] 
>>>     (XEN) [    3.602482] ****************************************
>>>     (XEN) [    3.605272] Panic on CPU 0:
>>>     (XEN) [    3.607928] Could not construct d0
>>>     (XEN) [    3.610692] ****************************************
>>>     (XEN) [    3.613463] 
>>>     (XEN) [    3.616035] Reboot in five seconds...
>>>     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.
>>>
>>> Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f2899781755762f565
>>>
>>> If I skip initrd, then it boots just fine (but dom0 is not happy about
>>> that). 164MB initrd failed too, but 13MB started ok.
>>> Just in case, I tried skipping XHCI console, but it didn't change
>>> anything.
>>>
>>> Host has 16GB of memory, and there is no dom0_mem= parameter. Xen is
>>> started from GRUB, using MB2+EFI.
>>
>> Hmm, yes, there's an ordering issue: Of course we free initrd space (as used
>> for passing from the boot loader to Xen) only after copying to the designated
>> guest area. Yet dom0_compute_nr_pages(), intentionally, includes the space in
>> its calculation (adding initial_images_nrpages()'s return value). PV Dom0
>> isn't affected because to load huge initrd there, the kernel has to request
>> the initrd to not be mapped into the initial allocation.
> 
> Right, on PV dom0 we do not copy the image to a new set of pages, we
> simply assign the pages where the initrd resides to the domain.  We
> can't populate those pages in the p2m as-is, otherwise we would
> shatter super pages.
> 
> I think the fix below should do it, it's likely the best we can do.

That's at best a workaround imo. We definitely can do better, and the bigger
the initrd, the more important it may be that we actually do. One option may
be to similarly use the pages directly (i.e. by assigning rather than
copying), accepting that we may not be able to use large page mappings then
for the respective GFN range.

Jan

> Can you please give it a try Marek?
> 
> Thanks, Roger.
> ---
> diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c
> index 0b467fd4a4fc..8e3cb5d0db76 100644
> --- a/xen/arch/x86/dom0_build.c
> +++ b/xen/arch/x86/dom0_build.c
> @@ -343,7 +343,7 @@ unsigned long __init dom0_compute_nr_pages(
>  
>      for_each_node_mask ( node, dom0_nodes )
>          avail += avail_domheap_pages_region(node, 0, 0) +
> -                 initial_images_nrpages(node);
> +                 is_pv_domain(d) ? initial_images_nrpages(node) : 0;
>  
>      /* Reserve memory for further dom0 vcpu-struct allocations... */
>      avail -= (d->max_vcpus - 1UL)
> 



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 08:40:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 08:40:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233755.1537102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vru9T-0001sc-Qr; Mon, 16 Feb 2026 08:40:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233755.1537102; Mon, 16 Feb 2026 08:40: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 1vru9T-0001sV-OG; Mon, 16 Feb 2026 08:40:19 +0000
Received: by outflank-mailman (input) for mailman id 1233755;
 Mon, 16 Feb 2026 08:40: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=sAgz=AU=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vru9S-0001sP-AY
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 08:40:18 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1b177b78-0b13-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 09:40:12 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS7PR03MB5382.namprd03.prod.outlook.com (2603:10b6:5:2c7::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.15; Mon, 16 Feb
 2026 08:40:09 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 08:40: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>
X-Inumbo-ID: 1b177b78-0b13-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lJHQ4hwXAW5EsZWK54oIf6EZxZDAMeVt3eHqt7vX1WGGffQwa0qfA3/c64TfyxNun1e7JggPSl4pa1FTzn7UBZhWva6XYURPhZ+BW66wd8WzwYlYfd98t5YndwzwcijUH3XbF3sU3k0OF5ya5oUbwiiRJHtUVXLB+bLJgpzrAlNNhQB1HWl3mVGy7I87VtNRMc9Kj28ZwgqBpjiIu+IDt+O6hOSwfs7hSe/kQrfa8I4vVfAGE63BNB70akhvaJRhmleoUJTB1qBGLwPReB2cROTuD7EjchXNWfKJdkAomLDcbvSdLZv2VQVppi9Xu9ZQEkuRIoleA4oYTfSME9J6sw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bQ5gOKqOiwslbfWoKGVpK2q6gZHCh6dhlJIQZ0WpYxk=;
 b=XvErII5kzGFjUX3AyP30WUhpthZbzpMxxmIuqyH+qdpfZnesUC9Vth6gT0DRKLfO/9z7w6LTG1bX2scrQTM8AjyIY3bi4lnIIhfufdcVF089apNCz/2T6z4LXFY4SF+1KFbbLVZ/Fee2nDa7TEvgb+4iHWSWhbRX2Xn61gYWpo8e9R5cBGbzJYjMkSjxi/hzN/ruyvrKD1MT6OE6bxEgj10da4OvGvSbHIUwELmHkiJWQY/hZ55iPm4xE95tXh0f9oMQJjYHsUDIuMSD6RXsxDvCu7wi88r5Rug367q7xAgw1hlsaqGDtqdy69JAeuX+isYeKCkt7IoyXx/xZfYufA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bQ5gOKqOiwslbfWoKGVpK2q6gZHCh6dhlJIQZ0WpYxk=;
 b=Df+nZ31bu8SXpYIqhu2zXsIbs32bbjP3NZ5nWfE+MoCfQJxUIdhPdXWpW/GnvQzECwCokkcKq4VffjXzFRDOs/l6cKoZBwndGe8NdvwsP0MBZ4JnZ0zdLtzoSzKrl8MYqIbPt/gLhUbSeffIlA7cVYAv7VKFaqfgwbzePesSs9s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 16 Feb 2026 09:40:05 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: Cannot boot PVH dom0 with big initrd
Message-ID: <aZLX5R_rO9EOUr_m@Mac.lan>
References: <aY6iVr990vWeO2p5@mail-itl>
 <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com>
 <aY9Jt1-jCWhStcxB@Mac.lan>
 <42b32172-9e28-40c1-a83c-ba37e17f5480@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <42b32172-9e28-40c1-a83c-ba37e17f5480@suse.com>
X-ClientProxiedBy: MA3P292CA0046.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS7PR03MB5382:EE_
X-MS-Office365-Filtering-Correlation-Id: 31c1467f-3d6c-44a1-9825-08de6d36fdbd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V3U2L3oyblNkSlZaaWtmd3J0MUFSbXpnRlJyYkhXSkk4SnVDMEdNT21tYTJl?=
 =?utf-8?B?cjlmQks0azlzN3RVY1ZWcmMyYzVrdFA0LzlOSHBIZ2dlNncraWtIMUNTdUVy?=
 =?utf-8?B?d1R4MlhSLzlaTlFJV1FWeWtDRVJpTTRnZk1LTVkvdUVtbUdKRDFxOWVQcDNt?=
 =?utf-8?B?UVZBamJuUzdDM2hndzF4Vnc1N3F2YnFBSEdVMTc1V1ltODhSYzdxRGdaRisx?=
 =?utf-8?B?UmphYmZQZHl2Nit4RkhjWEVjYjdyRWtmZzBCaC9LbDBoUzhxNFc5L2o3dmpG?=
 =?utf-8?B?NmhHYUg2TjlwdmhiMS9ZNHhGK0hPVkg0SW5nMysyMm9aNVh1S1lZMS85YWQ1?=
 =?utf-8?B?K2V5TDBENVpUNVlHcGpoZ3Brd0tHZStMYjhDdFJPbXdoVkVoQndwZDcyVEVu?=
 =?utf-8?B?Q2NUcDM3a1RkV0NkV21zci9TRHB1OTN3YjhkQ1VNTG5xNy9NZWtvRjRqY0VS?=
 =?utf-8?B?dkI5UVdGVmI4SU1zVmhEbHNma0J3L0NFU2dYUmNqVjE5b3F6ejR3K2lhclVK?=
 =?utf-8?B?TzNRdVpSaWY1cVBmNzU3Tkg4SlVBVXJxUFBmVUUveXNVS2NxMi9td2pPMTZC?=
 =?utf-8?B?ZExLVnp3Z2pkV2FlaEs0OHRpam5IWXhVUEJXK2JBaXk1Lzl5Q3FBbXA1MmJ5?=
 =?utf-8?B?NEplMjd0UFlNaFZsRGtpeHJ3Sy8wcXo5L2xGU0RyZ0g3bzJGWjFBSWR2b2Fu?=
 =?utf-8?B?MkVnUEh5aWNyMWV5cHdJczgvZnM2YWJJcmJVTzlkelFiTCtiNjcrUlhKMG12?=
 =?utf-8?B?b1RySEVSTWh3ekVKZFZjUWlwaGx1aGtya2RFRG4vWTlLSDJWS0J3VzN1N2NM?=
 =?utf-8?B?OWdpcUFOckhMTTB0VFAxNnRNZVdMeG00bmpsZjNsVEdYcVZkRTVJR056SjZD?=
 =?utf-8?B?cVB6Znh5SlNpQUt3UzN4a0ZtY2xUL0c5bWVuU0VpYzFkWmE1SEtmd0RLWnd2?=
 =?utf-8?B?QnhMNkxQT1ZwZ2tPMXVKbGlhaHUzc0xsb1hGSjZWaXlBREhYM0UvUkxXbDJV?=
 =?utf-8?B?WEEzNHNNUW8zVUhHamZCeXNVRkM3OFlCL2VrdGFiOUlVQWEwc3lMV2g5SDdp?=
 =?utf-8?B?c01uWE9KWXFyME5hcE1CeFUyRTRIalVMK1lQeXJhMk53VWoxY3RYcjZiTGN5?=
 =?utf-8?B?SWNLNGdwYmo3YUxiRHZXQXYwemlySEo0SkxINUtqMkc3VEZZTkx6dE1Pem9G?=
 =?utf-8?B?dVhRZ1hlaWVENThSN0pYcE5NZVpUcTBiQTJKcEhkbFdld2lkVDEvY3BzcG9Q?=
 =?utf-8?B?cVFQd3U1T1AxbSt2Vm5PQVFvTTl3WU5icXpBN2FtdTFuSzV1bWpUNzlxMmZY?=
 =?utf-8?B?Rmg0RU1IWk5YYUxDME42Ynd3OUxSUWgwYytXS1FuWHJnT0ZsZ3FtTEQzM2k0?=
 =?utf-8?B?emNMdzhhSXdvN2dlRkNjcXpWbG1scm5OV1JsTlQ2VFUrT00zdHBkeXZnZGhv?=
 =?utf-8?B?S0x2NmxuTi93T3o1b0VVRkhmUlFHbmVpZURJdFZJOGJSR3FvRWNNTllUTml5?=
 =?utf-8?B?elozMWNJRkZVT0ZWWTF4NERMTjVoQXBCTEhzeXd4dHV4VXVHeENrUEFHOE9t?=
 =?utf-8?B?cm1ZNDUyWjVmU3dSRUJCWk5XKzg0VW5RNExOc1lvVlQ5N1R3aUVXWlhUbzdR?=
 =?utf-8?B?aDd2Q1hJbEdHRFVBSVhUU2hPVXlzYmpRbW5UOEdvelN4cGdOaVRGUmRvS25p?=
 =?utf-8?B?TW4vYTFvdjl1QkozL3IzS3BLaDA5R2kwTmNhWFZKanhBcVZ6cmZlTHBiVnpa?=
 =?utf-8?B?ckFEcktsaHZmYVpRbHZaRk8wbFhmUStRZXIwRUZqR2RoaWZkSy9qTlBjckhr?=
 =?utf-8?B?MjRxbGE0VWJDbFpaRG9HcmJRdnhVVEdhNE1QcDdMb0ZOcDNncXJ4NWpjcDNE?=
 =?utf-8?B?VmlKbm13UU9iTmQwNHBydzRPYmkyaHFmTS9GZlZNNUZjVmNDVnExS0x2T0th?=
 =?utf-8?B?US9jVnBGZkgzayt2Qk9tOFRUTW96bVIwZmV6eVVWZnpYQVNSZ2oxQUNocU1a?=
 =?utf-8?B?RVl0WmtpMHN3WW5VWTUzYzhwWHQ0VXg5MzhBNWtnWGdrTDhNMkwwSmE5VFli?=
 =?utf-8?Q?GbIDZU?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Q2VDRGhtaWsyM1hZb05PbFBXOVF0bzNVQ0tNVEdpRUpLbHRqT29XbDlaR1dh?=
 =?utf-8?B?RXF5Z1hxV3Y4N0RCWlQ0b0tsRWtFTXBPa01PVmQvUVJ6cFNoNDJja3ZXS1Zu?=
 =?utf-8?B?ejRvSVdVdk9YL3BrTTFxcXJqRndLenM0OHdKeng0OXhOTFdYei9oWmNEaUxa?=
 =?utf-8?B?N3ZRSjNxc3ZTRU11bS9NNW1Jb2E5Y3JjWEFKbmd2Uk5xTmU1N1FKQXl2VDNB?=
 =?utf-8?B?UkI2T1JmTndyL2hpVllERUluUWIyZURDbkhBdmFqR0greWV5UVh6eFJZWW1B?=
 =?utf-8?B?bHBscUF6RkI0NmoyS1VRbVlFZ05EZVdmQ1RjRE1JcGd5UnphZnN3VnR1SjBz?=
 =?utf-8?B?Z0RXcVlEdXp1OVErVFByT2JYYldpczVibEFzNXhEWjRnNzN6RXdtMTBYK3Bq?=
 =?utf-8?B?TGRzMEJ5czVXYXk1aXlDTXIrN2x4YkQrTmRlQlNxT2xidUlnaUU1eDhFbTc1?=
 =?utf-8?B?eUdrdFgyS1cxWkFYQ0FxRUpBTlJYRWRNNHpKL1lGQUM5NStmMThlUWg3eklO?=
 =?utf-8?B?QkoxTmQ5emxGM01sSXpvYUJxdnF0Q3ltQ2wrS1FyNTZZSk5GK3dBVHpISmVU?=
 =?utf-8?B?V0dDdTRNSkNZQXNaNEhjNHFPVGtmeDJaRzZZbXhnWnJNcXdOc2Z6a2NCc2xi?=
 =?utf-8?B?SDdXMmFlMU9UL1haNmhWZytEckQxMXB1SnpSR1lDMWVCVVRma2lac2x6TkFY?=
 =?utf-8?B?YXlVWEZPKzhtVzcxUzBjWHBIckNwZkdOWG40QTJyWi9EVWxsYyszOUJ0OEZo?=
 =?utf-8?B?Nm1XbVFQL1MyYTJyam52SkQxWGNGeGZiOHcyNi8yaUh0OGVCc1lKY0JreXFR?=
 =?utf-8?B?dDJ3a0VrbWswVXNGWGh0SkIzSEJJdlgrWjIzTGY5d3VwRWJKQThJb2xUeTZN?=
 =?utf-8?B?STlxYVE2VXpiYzVPZFpkNzNVcnRFZG1TUlpxUjVwZzdBMnFzbDUxWnpFU3pi?=
 =?utf-8?B?Qm9aYnBrMm43cUtnTW9KOU13aS8vZzlQZ2xBR3RTMWZjd21BazlBeWtpK1VK?=
 =?utf-8?B?RDU2cmsxaWJGYUdjUnI5RnhGZGs1c1VaSXlQMTluTkw5azdJWU02STM5bmly?=
 =?utf-8?B?bUtuZjNTYSt0S0l3MWFEMWo1QjBMMXlRVWpDSW8vMTArN2tLazZsSVVnUU5U?=
 =?utf-8?B?eXJiemh0WmNBV2h1Smo5NFdHYVZ2NitkYTNwa3o4c3BlQ2drVzgzb1pLZXVS?=
 =?utf-8?B?SzI5eEkxNDhTUVRYZEUxN282VlZSUndQQS9uRXpLQmdWbHJtMUVydnhsNlE0?=
 =?utf-8?B?NG5LYS9YallpNHZyRGpYRUpwQ01veWpVYjlaWFZNMEgwN05wcjZ2ZnBEbUpL?=
 =?utf-8?B?RUluVUtobUFIZHd0MldWbC9YTkZLQnV0K0cyUHFlWmlaNGJVYUVMNzF4YWVv?=
 =?utf-8?B?M1pUb3BpbXovN1hiTitRNWdwVU5KREJ0YlhqV0NYOWtZRHpLdmo0UGJpUEZm?=
 =?utf-8?B?KzNnbW9rN0FNQk5kd3BGVmR6allDK01VR3E0MEdITXYvSDBMd2xEY3kxMGc2?=
 =?utf-8?B?SlR3aDBqbENjYzdvSGhKRStyQTZyalZWVWpjWE5EV3hHY1ZzbmFTYWxudXE4?=
 =?utf-8?B?TE5mdjVrTUJVSWlTTm5qWDF2OC85Yng4OFdka01rRXVUNG40ZkMveXVvZ3Qr?=
 =?utf-8?B?b1R2NHRUbkNRWi9FWVN4amtYVzF0NHF6N2l5b2RFSm8wQVo2VS9kTXE0aElw?=
 =?utf-8?B?SHNUVXhVNGJpMXQydzY1d20ySXdYY20wQVE0WEhzdm81LzI4WFdoNW9oQ2Ni?=
 =?utf-8?B?MVpzUVJabEs2TTY0MHJmZkFUblk5ekR1M1JDLzRsd2o3MVhRc3lzbEFGVTV6?=
 =?utf-8?B?akdpVWhaeXBQMXJIWWg0MWRCMWdyNDJPTSt4eHNTd2pPYkNTWmNrcmY3TnhJ?=
 =?utf-8?B?SXhIL1FuTnArekdUMW4vMFNidWlVZ3duNS9VUGVVTTNxT05sZjR0MTB6K09N?=
 =?utf-8?B?M3IrOExnRk82alZuTjhDcGhwelhkNnVLSkxMNjB2Vmp2eHVabzUzSkk1MVFu?=
 =?utf-8?B?MjhmVzI5TFNqN2dEYmdOSXVMWnRZMmw1bHZEYjRtdVdMRWcvTElUQ1NPUEU3?=
 =?utf-8?B?cGN0dzhNdVBrSDhTUURIWHlYWkNhclNJVTR3alNFejhDWHJlS1A1TE9ydnBu?=
 =?utf-8?B?YmE5NFpUY3l3bGFBdnptK1RuVkYxaEZtNmppVVh4ZWVGQ0NtSzdabmRobzBX?=
 =?utf-8?B?SVN1OHNMMWtNdys3UXRaaldNSkdGcytxb01IN1VtUHEyM2tESWZJa0Vjdjcz?=
 =?utf-8?B?YnpQeTRnblA2MjhidHcyeU9DNW5ySmhkOWlkZmFUTWtOamQwU3NOS0Y1R0Z3?=
 =?utf-8?B?blB1YlVqNXh4UzhQTlhFSmR1aXJaQUFzWFRtejd6T0xIdmIrSjd5UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 31c1467f-3d6c-44a1-9825-08de6d36fdbd
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 08:40:08.9298
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4UkZ3w3ljY3IVDgDVQ2aLqn+mLYCDPtB8AQr+JdwfOZIzAj9VkVaCki2rMPaCcPWPIv0cHj24MxH9qjy67SA6w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5382

On Mon, Feb 16, 2026 at 09:11:29AM +0100, Jan Beulich wrote:
> On 13.02.2026 16:56, Roger Pau Monné wrote:
> > On Fri, Feb 13, 2026 at 09:56:42AM +0100, Jan Beulich wrote:
> >> On 13.02.2026 05:02, Marek Marczykowski-Górecki wrote:
> >>> Hi,
> >>>
> >>> After fixing the xhci crash, I hit another issue - booting with 236MB
> >>> initrd doesn't work, I get:
> >>>
> >>>     (XEN) [    3.151856] *** Building a PVH Dom0 ***
> >>>     ...
> >>>     (XEN) [    3.593940] Unable to allocate memory with order 0!
> >>>     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
> >>>     (XEN) [    3.599884] 
> >>>     (XEN) [    3.602482] ****************************************
> >>>     (XEN) [    3.605272] Panic on CPU 0:
> >>>     (XEN) [    3.607928] Could not construct d0
> >>>     (XEN) [    3.610692] ****************************************
> >>>     (XEN) [    3.613463] 
> >>>     (XEN) [    3.616035] Reboot in five seconds...
> >>>     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.
> >>>
> >>> Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f2899781755762f565
> >>>
> >>> If I skip initrd, then it boots just fine (but dom0 is not happy about
> >>> that). 164MB initrd failed too, but 13MB started ok.
> >>> Just in case, I tried skipping XHCI console, but it didn't change
> >>> anything.
> >>>
> >>> Host has 16GB of memory, and there is no dom0_mem= parameter. Xen is
> >>> started from GRUB, using MB2+EFI.
> >>
> >> Hmm, yes, there's an ordering issue: Of course we free initrd space (as used
> >> for passing from the boot loader to Xen) only after copying to the designated
> >> guest area. Yet dom0_compute_nr_pages(), intentionally, includes the space in
> >> its calculation (adding initial_images_nrpages()'s return value). PV Dom0
> >> isn't affected because to load huge initrd there, the kernel has to request
> >> the initrd to not be mapped into the initial allocation.
> > 
> > Right, on PV dom0 we do not copy the image to a new set of pages, we
> > simply assign the pages where the initrd resides to the domain.  We
> > can't populate those pages in the p2m as-is, otherwise we would
> > shatter super pages.
> > 
> > I think the fix below should do it, it's likely the best we can do.
> 
> That's at best a workaround imo. We definitely can do better, and the bigger
> the initrd, the more important it may be that we actually do.

See the second patch I gave to Marek.  That one is slightly better by
accounting for the initial images space as part of the reserved space.

> One option may
> be to similarly use the pages directly (i.e. by assigning rather than
> copying), accepting that we may not be able to use large page mappings then
> for the respective GFN range.

Hm, there's always going to be a trade-off.  I think I would prefer
having 1G pages in the p2m, rather than a bit more memory due to
direct adding the initrd into the p2m.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 08:48:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 08:48:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233763.1537112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vruHb-0002Y1-Hp; Mon, 16 Feb 2026 08:48:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233763.1537112; Mon, 16 Feb 2026 08:48:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vruHb-0002Xu-EP; Mon, 16 Feb 2026 08:48:43 +0000
Received: by outflank-mailman (input) for mailman id 1233763;
 Mon, 16 Feb 2026 08:48: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vruHZ-0002Xl-TH
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 08:48:41 +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 4a8197f7-0b14-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 09:48:40 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-48069a48629so27563315e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 00:48:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a5b4cdsm27762102f8f.8.2026.02.16.00.48.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 00:48:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a8197f7-0b14-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771231720; x=1771836520; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=5RwUl7imZiFS3w8rjoXB0UOCuc8XFeeF77/jr1BWaPg=;
        b=AWmLJVyo/aXQ+slh4bZ/pNl3cn2xHRsT8xM8Egv+LOgluZpxnV+Yd0HgDNXWomRQM2
         s+QLSo7UZz5IZ0sRxzwtPU5KCcB+7cobr3GTNxsHJGNCy9BbaBveNSSd39oXaRB91Afh
         6LsqWa5cq/Y1qHcQ78opWpQMSt3bxB3qnFSOJZIbQmWgoQdXPn6UWIsKiI140pAS0A9x
         5LpEMtU+40WOdjy1i5NZNUcEEt8ILSzysR2WJGhCNGoRwLnPkuM7jTm8tDcBxHszmUA4
         NPKJdFN7tzxF3+NI1Gvg/LZ1dmvCnJUp7MKFPsGQDjegGpUMf5miNLTuJx5k6e69NUV4
         3/6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771231720; x=1771836520;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5RwUl7imZiFS3w8rjoXB0UOCuc8XFeeF77/jr1BWaPg=;
        b=AihZL5fg5ZZJsU/0bJmB/mBErcXVS7j9uRPKYZPcB5wjRqUJgcbJnhRvDHz+E3dHCc
         jPQ2Sb1aF67Zstg22fV1jge2GnrwzkMESjr7c2JEr4lrNENz2IBY4WZWHpxbH3r6TU56
         E3x/QUQTL9Q9Ki8MIFnfNF29vdXkvV/1CSbVBaTR1I+3TKkDQwotOSUuHmPcLy/W28vu
         nROAn8L4xjrKZEIsN+uKjGtxoz+aZTx2A/rXmUtk1iZc0eU+rZ7xUVlplAhScTfZUTXl
         g4m0AET/js4y6CgiI/7lDADl15OmilhQL7Hx5UzRm4Vx1o/AisGuTYYUPpcxpEvNKq5E
         nxcA==
X-Gm-Message-State: AOJu0YyvjECLHcUKEunz1fMXrnxucvpULzaYR0xvvWfX0vz0HbuKqIs7
	NrEqbTfBv+jIbCogP7rDSFpUG6p0AmTU4t2CPtVU6H7iXUG9VCQBg4ls02516QYHZg==
X-Gm-Gg: AZuq6aJKcywk5ujmRkgMK0Xvj4+5WAvEIX1SLJNp/j+ShXezuJfmmuaywzhYQpLj2sK
	q8uX5ZPvB7YKK9wxll4V0Ze/2GZKngyBGT+hzLmBSAwyxMryp9PJB+OG11LqlrX7kJd6LCeq/8G
	CednHe5Mg2aGO0/azJ2DR/DEcZY2+3TTqu2hD6Omac0NYPdTFbTQB9Q8fgACdZWyqY4v2aMtqNd
	rL0NpotmkCKs7SzfbBO8S9A+0djPg0ZEuCYWjJkXT0TujVbuofMQL24Gt2ahHMAwnIw3yaMo65q
	HgUXdSrNaT0OsWaDTjlkppkFKndYed6/krT/X9RBquwE70cgKXQp1Y90EMVN9f69kvQsAEB2Oxv
	+PVGkNsv9uZA/KYRuXu31AyImAECGRuJPNRtliVexV86NAemrYxGjAsSCT179k7QnvGxZcViUwZ
	QOk6Z9Ff0xSf/YX1VtCUdp0hVCNgsNigFZ7TOoRuZtULcwq3sw7vAz+WbwEujRXtJhdI7BFBjeh
	uht+f3knb9sMVA=
X-Received: by 2002:a05:600d:6443:10b0:483:8062:b43 with SMTP id 5b1f17b1804b1-48380620d3amr61729205e9.19.1771231719512;
        Mon, 16 Feb 2026 00:48:39 -0800 (PST)
Message-ID: <0ea96b84-52ed-4b8a-b108-223ff8f85105@suse.com>
Date: Mon, 16 Feb 2026 09:48:41 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Cannot boot PVH dom0 with big initrd
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <aY6iVr990vWeO2p5@mail-itl>
 <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com> <aY9Jt1-jCWhStcxB@Mac.lan>
 <42b32172-9e28-40c1-a83c-ba37e17f5480@suse.com> <aZLX5R_rO9EOUr_m@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: <aZLX5R_rO9EOUr_m@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.02.2026 09:40, Roger Pau Monné wrote:
> On Mon, Feb 16, 2026 at 09:11:29AM +0100, Jan Beulich wrote:
>> On 13.02.2026 16:56, Roger Pau Monné wrote:
>>> On Fri, Feb 13, 2026 at 09:56:42AM +0100, Jan Beulich wrote:
>>>> On 13.02.2026 05:02, Marek Marczykowski-Górecki wrote:
>>>>> Hi,
>>>>>
>>>>> After fixing the xhci crash, I hit another issue - booting with 236MB
>>>>> initrd doesn't work, I get:
>>>>>
>>>>>     (XEN) [    3.151856] *** Building a PVH Dom0 ***
>>>>>     ...
>>>>>     (XEN) [    3.593940] Unable to allocate memory with order 0!
>>>>>     (XEN) [    3.597110] Failed to setup Dom0 physical memory map
>>>>>     (XEN) [    3.599884] 
>>>>>     (XEN) [    3.602482] ****************************************
>>>>>     (XEN) [    3.605272] Panic on CPU 0:
>>>>>     (XEN) [    3.607928] Could not construct d0
>>>>>     (XEN) [    3.610692] ****************************************
>>>>>     (XEN) [    3.613463] 
>>>>>     (XEN) [    3.616035] Reboot in five seconds...
>>>>>     (XEN) [    8.626565] Resetting with ACPI MEMORY or I/O RESET_REG.
>>>>>
>>>>> Full console log: https://gist.github.com/marmarek/c9dbc87bf07b76f2899781755762f565
>>>>>
>>>>> If I skip initrd, then it boots just fine (but dom0 is not happy about
>>>>> that). 164MB initrd failed too, but 13MB started ok.
>>>>> Just in case, I tried skipping XHCI console, but it didn't change
>>>>> anything.
>>>>>
>>>>> Host has 16GB of memory, and there is no dom0_mem= parameter. Xen is
>>>>> started from GRUB, using MB2+EFI.
>>>>
>>>> Hmm, yes, there's an ordering issue: Of course we free initrd space (as used
>>>> for passing from the boot loader to Xen) only after copying to the designated
>>>> guest area. Yet dom0_compute_nr_pages(), intentionally, includes the space in
>>>> its calculation (adding initial_images_nrpages()'s return value). PV Dom0
>>>> isn't affected because to load huge initrd there, the kernel has to request
>>>> the initrd to not be mapped into the initial allocation.
>>>
>>> Right, on PV dom0 we do not copy the image to a new set of pages, we
>>> simply assign the pages where the initrd resides to the domain.  We
>>> can't populate those pages in the p2m as-is, otherwise we would
>>> shatter super pages.
>>>
>>> I think the fix below should do it, it's likely the best we can do.
>>
>> That's at best a workaround imo. We definitely can do better, and the bigger
>> the initrd, the more important it may be that we actually do.
> 
> See the second patch I gave to Marek.  That one is slightly better by
> accounting for the initial images space as part of the reserved space.

Will check; didn't make it there, yet.

>> One option may
>> be to similarly use the pages directly (i.e. by assigning rather than
>> copying), accepting that we may not be able to use large page mappings then
>> for the respective GFN range.
> 
> Hm, there's always going to be a trade-off.  I think I would prefer
> having 1G pages in the p2m, rather than a bit more memory due to
> direct adding the initrd into the p2m.

"A bit more" may not get it, when considering e.g. a 2Gb initrd on a 4Gb
system. And of course "use pages directly" is only the simplest of the
possible approaches. We could "shift" the initrd some, or we could make
sure to allocate a 2Mb or 1Gb aligned region to hold it right from the
beginning.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 08:55:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 08:55:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233773.1537122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vruNo-0004Bl-Aw; Mon, 16 Feb 2026 08:55:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233773.1537122; Mon, 16 Feb 2026 08: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 1vruNo-0004Be-7x; Mon, 16 Feb 2026 08:55:08 +0000
Received: by outflank-mailman (input) for mailman id 1233773;
 Mon, 16 Feb 2026 08: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vruNm-0004BY-RT
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 08:55:06 +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 2ff5f1da-0b15-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 09:55:05 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso45516595e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 00:55:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4837f4c46b3sm74913275e9.4.2026.02.16.00.55.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 00:55:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ff5f1da-0b15-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771232105; x=1771836905; 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=JUV1kn70x+tFSRvqsn/WF+CnPXJjpZikV7jL0GkLVDg=;
        b=fCkNc6V6Gpt9QRVAgMS+sTcrDV25AYFUsLbmdm1ZF/yAED0Xhok7umRQ9Yl16qwmAn
         RhTtb5yy/gprL5OD7y9Nfol+7X89xFyFjoZRb2lT+9VUhoRc5s2C+Vou45bE6PwzkHwt
         s8sPIzSB6eCA8CFg58arxaJslKk0OJo7k62H1JExFYjpjcdGDIe0XiUPeUY2PgH27VXZ
         8pdrcdbJ6hCU2VXpQLlcwNDi6QQbe4oWHNIaZXw7CNfGwxpfdBNmn6+5ApcfEtf0FRWQ
         V0zpL9qA6TVY2+4IVP9TeCXR6cAvvINR1Uhf5cKiffrJ7iNueNaLLuK7ti64qmUya4sj
         jQ5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771232105; x=1771836905;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=JUV1kn70x+tFSRvqsn/WF+CnPXJjpZikV7jL0GkLVDg=;
        b=iTqkGjfHMifyLzid6WZnJ7H9Z9XcYClH9k9JYKG5B9P61D12fXudezT+kJNZ5PdX2U
         +gtY4DVVxenDn+BUDT19RSlJM/L5IPedCriK5fAuhRWcAdksQZ4uXFP3Sx2j3+BxXYzk
         Bi5yyoiY3HyGfvc5Z3gdYLXA1XdVkyZVFo5iGuRbs+l2PpGQQSXN1bVReo8od5iH/kCM
         TtaJpMNxXxVkDZNU/ijL4FCGXHGEckPRw0+6MDw1DxbMn4j95zBUti00nTv6wyKGNYqN
         XfK2tdGOuXh9+tsnXJVsEFbOhyNVJpe/kCT5lo8QRH4Sk4aoJqLqt75e7GC8+JOS57Jc
         BLfw==
X-Gm-Message-State: AOJu0YwVc9ZceFvQ0KmwlK6lrRK0eld1FRPM04Ow+dCtoxlcarOpJiz3
	jMrPM9/G+X1xHAz5KR9C3XJrLcMgPiOAGsbH74ixOepQA0yWvWSsiW/rpJsbvLUSkx3L0JaJCWV
	x5hk=
X-Gm-Gg: AZuq6aI4r4VhHPJkDPkI6WWkhFv5me0CKwCJ8Y9bS8mD+mp4iWYbnjmhRffML5/9hFV
	cv4mbbv+QOO8Cfip5XPWy4k9sFLhcULdMzloteiV+azzFtJmzn8AqWxwqVUXmogimXbvce6oCuU
	d02mPUSKU5V2rKEduqV8r9IWL3S8WSIAC52bGcWec7ENAdQViLJIJhzAUX7+gq6vovOF4NG8Cff
	zjvI6b6hN/FbBZXVPsgFV6BrfhsOIUYX7L9tRhI5pmm12cSu+Qa7penI8TGOW8LoyXRxBPC+2HB
	aH9qod67tz5KGlJJeBZL1x2rWrGEEcXklO/LvolRhyywok/tt6oLmqLxa4l2d+LBAdjZH7Bk118
	TkKwdrNpUwRheh9R/JveJGtn4sS1zmcMeQxZhYFTwV2IJK4E5NvnlalKXKUHcBBZzrAByZDk7FS
	IPYPa9yxrnD0sy4jsHP+2K/AAK4AiY9tPqNu0yxckaKu9g7S90iX/fYoeHulxg4gfwnTgy3q+eZ
	fWEZezJIS8yyD0=
X-Received: by 2002:a05:600c:8711:b0:483:4b37:8620 with SMTP id 5b1f17b1804b1-48378d9d17cmr130752195e9.10.1771232104735;
        Mon, 16 Feb 2026 00:55:04 -0800 (PST)
Message-ID: <00493037-e77e-4631-8594-64ad4e46fa40@suse.com>
Date: Mon, 16 Feb 2026 09:55:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: Juergen Gross <jgross@suse.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] Xen/gnttab: improve error handling in
 gnttab_dma_{alloc,free}_pages()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Both decrease-reservation and populate-physmap can succeed partially. For
the former this may be pretty unlikely, but clearly the latter can hit
both out-of-memory conditions in the hypervisor or denial because of the
allocation exceeding the domain's allowance (there's no interaction with
the balloon driver here either).

In gnttab_dma_free_pages() we simply can't give back to the system what
hasn't been re-filled with backing memory. For gnttab_dma_alloc_pages()
both parts of the overall region need dealing with differently.

While no present caller of gnttab_dma_free_pages() checks its return
value, also don't use -EFAULT there: It really is an out-of-memory
condition. (In gnttab_dma_alloc_pages() -EFAULT doesn't look quite right
either, but I couldn't think of a clearly better error code there.)

Fixes: 9bdc7304f536 ("xen/grant-table: Allow allocating buffers suitable for DMA")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
I'm likely screwing things up, as I can't understand how this is intended
to work: args->dev_bus_addr shouldn't really be in pseudo-physical address
space, or else the address isn't suitable for handing to a device in order
to DMA to/from it. Hence using __phys_to_pfn() on it to then hand the
result to pfn_to_page() feels bogus. Was all of this perhaps only ever
intended for (tested with) translated domains? With the uses of
xenmem_reservation_va_mapping_*() only being masquerade?

Furthermore the allocated buffer ought to have been contiguous in
machine / DMA space. Yet the way it's re-populated upon freeing of the
area doesn't guarantee that at all.

All of what is done assumes dma_free_{coherent,wc,attr}() is capable of
freeing piecemeal. I only checked dma_release_from_dev_coherent() to
fulfill this requirement. If this can't be relied upon, please consider
this submission as merely a bug report (for someone else to fix).

--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -1095,6 +1095,28 @@ int gnttab_dma_alloc_pages(struct gnttab
 	ret = xenmem_reservation_decrease(args->nr_pages, args->frames);
 	if (ret != args->nr_pages) {
 		pr_debug("Failed to decrease reservation for DMA buffer\n");
+		if (ret >= 0) {
+			/* Free the part where decrease didn't work. */
+			size_t done = ret << PAGE_SHIFT;
+
+			xenmem_reservation_va_mapping_update(args->nr_pages - ret,
+							     &args->pages[ret],
+							     &args->frames[ret]);
+
+			if (args->coherent)
+				dma_free_coherent(args->dev, size - done,
+						  args->vaddr + done,
+						  args->dev_bus_addr + done);
+			else
+				dma_free_wc(args->dev, size - done,
+					    args->vaddr + done,
+					    args->dev_bus_addr + done);
+
+			if (!ret) /* Nothing else to do? */
+				return -EFAULT;
+
+			args->nr_pages = ret;
+		}
 		ret = -EFAULT;
 		goto fail;
 	}
@@ -1128,7 +1150,12 @@ int gnttab_dma_free_pages(struct gnttab_
 	ret = xenmem_reservation_increase(args->nr_pages, args->frames);
 	if (ret != args->nr_pages) {
 		pr_debug("Failed to increase reservation for DMA buffer\n");
-		ret = -EFAULT;
+		/* Can only free what has been re-filled. */
+		if (!ret)
+			return -ENOMEM;
+		if (ret > 0)
+			args->nr_pages = ret;
+		ret = -ENOMEM;
 	} else {
 		ret = 0;
 	}


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 08:55:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 08:55:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233780.1537131 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vruOW-0004eN-Jg; Mon, 16 Feb 2026 08:55:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233780.1537131; Mon, 16 Feb 2026 08: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 1vruOW-0004eG-Gh; Mon, 16 Feb 2026 08:55:52 +0000
Received: by outflank-mailman (input) for mailman id 1233780;
 Mon, 16 Feb 2026 08:55: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=nRIP=AU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vruOU-0004e6-WA
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 08:55:51 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 498efb82-0b15-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 09:55:48 +0100 (CET)
Received: from MN2PR03CA0024.namprd03.prod.outlook.com (2603:10b6:208:23a::29)
 by EAYPR12MB999156.namprd12.prod.outlook.com (2603:10b6:303:2c2::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 08:55:43 +0000
Received: from BN3PEPF0000B06C.namprd21.prod.outlook.com
 (2603:10b6:208:23a:cafe::c9) by MN2PR03CA0024.outlook.office365.com
 (2603:10b6:208:23a::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend Transport; Mon,
 16 Feb 2026 08:55:42 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B06C.mail.protection.outlook.com (10.167.243.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9654.0 via Frontend Transport; Mon, 16 Feb 2026 08:55:42 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 02:55:41 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Feb 2026 02:55:40 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 498efb82-0b15-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yBh9sI2fmtgUmibeOK8PSrquTUCutg2zukY60nLuksecXh8imhIQuitpDnaVqRDAXik1tgN6+kObOjLqJV9SFVynIfeYBqcDldFdd3YBljcwX59At/YpUmuRuv5A494tDZXfCp0BgIwbSkRFz8B/VY/skYxFzBrcZqtGW8ru2MMMdw69WJuQGb05OJt9V/cd4x4OoMqJwgZhLpQ1T7F1BM/oY3h2Vh6+r+6HIADjqIR0TvcIT2t5E7eoWbOaiQVsAFkAeUNP0gWqNWhtENXVEnGbPhTSV6l7k5YMZQi8QQ2KUyTgba+m9DHy09KtHmHw+bqoPzMPJRZCKnCqpTWkJg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MEBhuw3Tfe8hW+O7V9arjEU1FikK2bIIB7UGfDGp2xY=;
 b=m27JtPb4JRoKgQ1W9u7PbUX+CkPDYZ0c0sUf7GQuty6ZLc5P52j8nC6diOB8pGM6fxuC1Ek3YWhqROMOS2jRn8zFK9S73HwAN5BmAakIGdd6M7tdSSwNfiWeIr8zY8xlfO2bf74Xd6KF5OTVO//vzO9qB9YTotaqlU7l+l1gP02v+sECPITuB4tOSlHVqCvy7Z3SZgI6HjjVG1BP3cg+FZw26dUgXJx9xnBcme0bOoMH4x8kAml5OZdx73styYBvXLFA721jZCg2lBNpiDVscZH3aCR+eKDWhg/wd+mXWuCviKmyS0wPl9skrmKH/qkROvaC9/nXjvS1gGh0bvK4pg==
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=MEBhuw3Tfe8hW+O7V9arjEU1FikK2bIIB7UGfDGp2xY=;
 b=xhFYHAOMjyPla4Js0/b2AU54wijED6EZi0WMXwQQOXZDim75MWC9R/NcbA3qssX1mOrCn4GuhGULhXhmVWcvakZfcXgREeGnsOogYmHUiCqyUkxqwj4aBfeL8NIH7Go5zc7sxcY08pAkyhnt8AJL1QIGX4tzHQ4vRpsiZ0zOupI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <87e02fff-1891-42f1-9317-786906425171@amd.com>
Date: Mon, 16 Feb 2026 09:55:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/3] arm/mpu: implement setup_virt_paging for MPU system
To: Harry Ramsey <harry.ramsey@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>, Wei Chen <wei.chen@arm.com>, Hari Limaye
	<hari.limaye@arm.com>
References: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-2-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260206090155.68466-2-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B06C:EE_|EAYPR12MB999156:EE_
X-MS-Office365-Filtering-Correlation-Id: 3538d096-4b61-4590-e459-08de6d392a51
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|7416014|376014|36860700013|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZXJycGRnS096Um0rOWVQMTZWNnB3Q0hPd3llWS9CU0FBaDJWYWQwM2EwVFFt?=
 =?utf-8?B?b2RmZmRXMDNxMjZhdUlzekxUR1pneC9USzBqQ0I2cVdnUzRiQlBnaVBXODdm?=
 =?utf-8?B?VzhKQmMxd3U2NmIwQU9UWlhMT3gxK09WcVRyQ05vcGVhVFFqc0Fwazlwazdh?=
 =?utf-8?B?QnR5MXRuMGpqaWVvM0JYRGw4YmExcEovUXdWL3M5alVBakE4TzkxeVBtSm5T?=
 =?utf-8?B?TlV5YVd6dTk0UVJlOUh1NlBNNWs1VTNIamVRSEJVNW9kK2tteTJ3aE1CTWdM?=
 =?utf-8?B?aDhxUG1JR05xNm9vMFdaWVNSbmdZQWt3VzlHcGQxelNqQzNKTnR5VVNRb1c2?=
 =?utf-8?B?YWFqVFp4eXdjbkJUUnlweVI4eUZNQ0R2TmZXcll6d2l1Z3JkR3dKWHVVeFU3?=
 =?utf-8?B?MUw4Q2VHZ3FsQ2F2Qy92b2RjQU91eWFwRnplYjNlVjdwRmdvSE9zK2Z3RDM3?=
 =?utf-8?B?WC91RDI2U1AyK0N5VG5PWVNtejZ4cytDQW1tbmFDblFKQzJVaEd4MG5vRWdD?=
 =?utf-8?B?eTZHWUNRWmxOeU1pb29wRWNXTy84VXpVckYwOGlCSXhsbFZEZ3lBVDIvRW03?=
 =?utf-8?B?WUJYSVZwcUlrTTJDQk9aZEFEbW1FTmFmWU9Ja2xyZmZvb25YTklBTVBCckNZ?=
 =?utf-8?B?T085cVBWSkRtUEZuQkYyTmt2TTNhV0NhVHpDR3F3NzZkck4vMjhrWXVhMkZ0?=
 =?utf-8?B?VEdMd1Y1encwVFArSnoxNDNTMnpNUWdIYzh2ZE4zTERHQmxzYldjY3JnNTRB?=
 =?utf-8?B?NTVVdjdtcTEzTkxOdk5xTmlmNHdEWnZnMjZUUlJSZHJTdjE2UzYzc0MvU2Vr?=
 =?utf-8?B?ZTllQWZWUnFzRG94TVRiNjQ3YTd6UENIR2xCQ2Y3WFA2YnpsT1RmVVphdjVH?=
 =?utf-8?B?RGt1V0RjYlhBalhXV1FnY3lCcGRmc21JbUxBZVZuM3lLMkxlUXdBUVFuMEtB?=
 =?utf-8?B?eGJVWFE4UmNKSlc5NzcwVnRta0R5dk4vYVV5OGhsUEE1YVN3SFA3SEpXckhG?=
 =?utf-8?B?ZGVhZHdOK0pSejlBaDBUUXcwcVdQUGNIRkg5SFVINmJSTCtWTGVCTml3U0lQ?=
 =?utf-8?B?a0hqZTYxaC80Vk1pdWw5UnZoNXJ6TWpkZzVMREQ3VXJQYnJhVExpVlpLd25y?=
 =?utf-8?B?R1c3b1RxTGhOSUR5dStHYldFaFlVS1FQUFpVMnlpcEluTlc3SlJEcUt2c3hp?=
 =?utf-8?B?THhCQUY0UkdEYm8rU3o0U1V0czBpUllHOHBxYVoxdGRVck5zSi91dXdkRWU2?=
 =?utf-8?B?ZlZxNHFibUNCdXI2TDFTRzlQZGFRODg1VURMbjA4NGMxTXgxM2RuUDc1VS9J?=
 =?utf-8?B?RHBuakZDTXYvTHphV20wc1Z4WWViZ2ptdEtyaU9MVUV0eXVIWlpaekphM2E1?=
 =?utf-8?B?WW02d2x1OW9PRnp2Z28ydUJKL1hnQWpvenBJRHhlOHY0RnZVclp1bDNHR0Mx?=
 =?utf-8?B?MW9aRUcrUXB5eEFWQy9UZzh2MkZHVUwxTG0ycW5PV1RVK2VRTXIxNkIxT1JC?=
 =?utf-8?B?Z08wdHk4dzAySnYzZFlLSS9TeHVkcGhMWXJmQUF3VjFzZFp5U3cxVC9OVW9r?=
 =?utf-8?B?LzI1NnNBV0dmL3JDcTB2YzhmSE5MbmdoaUN1dlNlQWIrb3hrN1dBUDNJd2tY?=
 =?utf-8?B?TVU2WHJGUG81UXJ2N0E5Rm04dVIvWHpINVJISEpJSkhKd1ErUi9HeUhkMU40?=
 =?utf-8?B?RFhMT2pERS96ZGdqcUk4dExjTnlrc1kvUC9ydHBGWDBBbnV3S1BEVEJtNFpT?=
 =?utf-8?B?N1k1ODFXbkZEdWV4YnNmbFU4SmFVVUlWa1ZBWk9pREZOUk82c2xNTnEyckFB?=
 =?utf-8?B?TDl1VHB1ck1LbjUxK2lyekxOUlpsVXhma0VTNGg3bVY0Y2M5blJPcFBTVFBj?=
 =?utf-8?B?VTBYK09nTXhmdzArSjlkcENPeWNUSVVvVnJhRGxsVmVESE9hditqSXhiY1dI?=
 =?utf-8?B?SklReXUyU1dQaGRvWFFBMXdmbGpMejdBdHB4Z1VwVzlvbUxYNUlXR0JmM0lu?=
 =?utf-8?B?N3UvSWx1Y3ZIQk1rdGx4clRuTTdLNkNPcGpZS00wbk1IR2hHcTYwQUg2aEJh?=
 =?utf-8?B?ays1WjZzWjl0YXVIUnJ1RHdLaU9YR0g2R0pKdlRETVhIOXRlT2lHY05ML3pk?=
 =?utf-8?B?ZCt6aGJScjZTZ3pKbTdoK2JyTEZaZVNGN3lOWWFab2hZcmhDTm9ZVUp6aWtN?=
 =?utf-8?B?TUM3K2VjMFFuY2QzU1ZxdnJCRkdsczZ5SllkOHpnUzFLK0NoWmdPTHh4ejVV?=
 =?utf-8?B?WTUyL1llMHlZVC9KcStNQStkY0x3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	x5g/MQM24tDuSdjHiwV4bYAOX6knH+O1v7xV3YdTuUDkfPhf1t2PQvKV9Ggj2HLKJFBp7tj8rS8wAKCAYLinNiJdw0WL7lkC5acb0G0ezuTj6FVexXhBsW1KpFfiAYzLYi/SqUq2M1LLa/ZQuGya/JVRx1u7OvCd7OqZWfO8zM/WeGfZfVU6PftH40ZSU+CTraCxPoCPEU9VMV881HewF7Uv21w+ybPnie84lUUaPRx1nPdIe3B4XQfN1jU+1+8IHXbxBYQ36SlscBrB0J6Pb5FHp3Bgf9ThWdR1jkBr5AreaUQESzIT1IQDjFpcCtQueq4EoozMzl3z3TukNgccXFzisZqM5JKJ8l52kaBwypHKW/5Nkdra/QrmyAqUCEjMhXgLfWkAQqJSY5VBL5mMCWrb9+NluSF3+rOQsNdlR7IOZVA9nAp8ntHoL29QqNCM
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 08:55:42.3352
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3538d096-4b61-4590-e459-08de6d392a51
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B06C.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: EAYPR12MB999156

I guess this should be send as a v2 with listed changes between v2 and v1.

On 06/02/2026 10:01, Harry Ramsey wrote:
> From: Penny Zheng <Penny.Zheng@arm.com>
> 
> For MMU system, setup_virt_paging is used to configure stage 2 address
> translation regime, like IPA bits, VMID allocator set up, etc.
> Some could be inherited in MPU system, like VMID allocator set up, etc.
> 
> For MPU system, we could have the following memory translation regime:
> - PMSAv8-64 at both EL1/EL0 and EL2 (default)
> - VMSAv8-64 at EL1/EL0 and PMSAv8-64 at EL2 (enabled with device tree
>   proprty v8r_el1_msa)
> 
> Signed-off-by: Penny Zheng <penny.zheng@arm.com>
> Signed-off-by: Wei Chen <wei.chen@arm.com>
> Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
> Signed-off-by: Hari Limaye <hari.limaye@arm.com>
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  xen/arch/arm/arm64/mpu/p2m.c             | 67 +++++++++++++++++++++++-
>  xen/arch/arm/include/asm/arm64/sysregs.h |  4 ++
>  xen/arch/arm/include/asm/cpufeature.h    | 13 +++--
>  xen/arch/arm/include/asm/mpu/p2m.h       | 12 +++++
>  xen/arch/arm/include/asm/p2m.h           |  5 ++
>  xen/arch/arm/include/asm/processor.h     | 11 ++++
>  6 files changed, 108 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/arm/arm64/mpu/p2m.c b/xen/arch/arm/arm64/mpu/p2m.c
> index b6d8b2777b..da8f0553c1 100644
> --- a/xen/arch/arm/arm64/mpu/p2m.c
> +++ b/xen/arch/arm/arm64/mpu/p2m.c
> @@ -2,11 +2,76 @@
>  
>  #include <xen/bug.h>
>  #include <xen/init.h>
> +#include <xen/warning.h>
>  #include <asm/p2m.h>
>  
>  void __init setup_virt_paging(void)
>  {
> -    BUG_ON("unimplemented");
> +    uint64_t vtcr_el2 = READ_SYSREG(VTCR_EL2), vstcr_el2 = READ_SYSREG(VSTCR_EL2);
> +
> +    /* PA size */
> +    const unsigned int pa_range_info[] = {32, 36, 40, 42, 44, 48, 52, 0,
> +                                          /* Invalid */};
> +
> +    /*
> +     * Restrict "p2m_ipa_bits" if needed. As P2M table is always configured
> +     * with IPA bits == PA bits, compare against "pabits".
> +     */
> +    if ( pa_range_info[system_cpuinfo.mm64.pa_range] < p2m_ipa_bits )
> +        p2m_ipa_bits = pa_range_info[system_cpuinfo.mm64.pa_range];
> +
> +    /*
> +     * Clear VTCR_EL2.NSA bit to configure non-secure stage 2 translation output
> +     * address space to access the Secure PA space as Armv8r only implements
> +     * secure state.
> +     */
> +    vtcr_el2 &= ~VTCR_NSA;
> +
> +    /*
> +     * The MSA and MSA_frac fields in the ID_AA64MMFR0_EL1 register identify the
> +     * memory system configurations supported. In Armv8-R AArch64, the
> +     * only permitted value for ID_AA64MMFR0_EL1.MSA is 0b1111.
> +     */
> +    if ( system_cpuinfo.mm64.msa != MM64_MSA_PMSA_SUPPORT )
> +        goto fault;
> +
> +    /* Permitted values for ID_AA64MMFR0_EL1.MSA_frac are 0b0001 and 0b0010. */
> +    if ( system_cpuinfo.mm64.msa_frac == MM64_MSA_FRAC_NONE_SUPPORT )
> +        goto fault;
> +
> +    /*
> +     * cpuinfo sanitization makes sure we support 16bits VMID only if all cores
> +     * are supporting it.
> +     */
> +    if ( system_cpuinfo.mm64.vmid_bits == MM64_VMID_16_BITS_SUPPORT )
> +        max_vmid = MAX_VMID_16_BIT;
> +
> +    /* Set the VS bit only if 16 bit VMID is supported. */
> +    if ( max_vmid == MAX_VMID_16_BIT )
> +        vtcr_el2 |= VTCR_VS;
No need for max_vmid assignment. You can directory do:
if ( system_cpuinfo.mm64.vmid_bits == MM64_VMID_16_BITS_SUPPORT )
    vtcr_el2 |= VTCR_VS;
to make things clearer.

> +
> +    p2m_vmid_allocator_init();
> +
> +    WRITE_SYSREG(vtcr_el2, VTCR_EL2);
> +
> +    /*
> +     * VSTCR_EL2.SA defines secure stage 2 translation output address space.
> +     * To make sure that all stage 2 translations for the Secure PA space access
> +     * the Secure PA space, we keep SA bit as 0.
> +     *
> +     * VSTCR_EL2.SC is NS check enable bit. To make sure that Stage 2 NS
> +     * configuration is checked against stage 1 NS configuration in EL1&0
> +     * translation regime for the given address, and generates a fault if they
> +     * are different, we set SC bit 1.
> +     */
> +    vstcr_el2 &= ~VSTCR_EL2_SA;
> +    vstcr_el2 |= VSTCR_EL2_SC;
> +    WRITE_SYSREG(vstcr_el2, VSTCR_EL2);
> +
> +    return;
Shouldn't we have a printk message similar to what MMU has?
printk("P2M: %d-bit IPA with %d-bit PA and %d-bit VMID\n"...)

> +
> + fault:
> +    panic("Hardware with no PMSAv8-64 support in any translation regime\n");
>  }
>  
>  /*
> diff --git a/xen/arch/arm/include/asm/arm64/sysregs.h b/xen/arch/arm/include/asm/arm64/sysregs.h
> index 19d409d3eb..a4b6eef181 100644
> --- a/xen/arch/arm/include/asm/arm64/sysregs.h
> +++ b/xen/arch/arm/include/asm/arm64/sysregs.h
> @@ -462,6 +462,10 @@
>  #define ZCR_ELx_LEN_SIZE             9
>  #define ZCR_ELx_LEN_MASK             0x1ff
>  
> +/* Virtualization Secure Translation Control Register */
> +#define VSTCR_EL2_SA                 (_AC(0x1,UL)<<30)
Why UL and not U?
Also, please add spaces around <<

> +#define VSTCR_EL2_SC                 (_AC(0x1,UL)<<20)
> +
>  #ifdef CONFIG_MPU
>  /*
>   * The Armv8-R AArch64 architecture always executes code in Secure
> diff --git a/xen/arch/arm/include/asm/cpufeature.h b/xen/arch/arm/include/asm/cpufeature.h
> index 13353c8e1a..bf902a3970 100644
> --- a/xen/arch/arm/include/asm/cpufeature.h
> +++ b/xen/arch/arm/include/asm/cpufeature.h
> @@ -248,6 +248,12 @@ struct cpuinfo_arm {
>              unsigned long tgranule_16K:4;
>              unsigned long tgranule_64K:4;
>              unsigned long tgranule_4K:4;
> +#ifdef CONFIG_MPU
> +            unsigned long __res0:16;
> +            unsigned long msa:4;
> +            unsigned long msa_frac:4;
> +            unsigned long __res1:8;
> +#else
>              unsigned long tgranule_16k_2:4;
>              unsigned long tgranule_64k_2:4;
>              unsigned long tgranule_4k_2:4;
> @@ -255,6 +261,7 @@ struct cpuinfo_arm {
>              unsigned long __res0:8;
>              unsigned long fgt:4;
>              unsigned long ecv:4;
> +#endif
>  
>              /* MMFR1 */
>              unsigned long hafdbs:4;
> @@ -267,13 +274,13 @@ struct cpuinfo_arm {
>              unsigned long xnx:4;
>              unsigned long twed:4;
>              unsigned long ets:4;
> -            unsigned long __res1:4;
> +            unsigned long __res2:4;
>              unsigned long afp:4;
> -            unsigned long __res2:12;
> +            unsigned long __res3:12;
>              unsigned long ecbhb:4;
>  
>              /* MMFR2 */
> -            unsigned long __res3:64;
> +            unsigned long __res4:64;
>          };
>      } mm64;
>  
> diff --git a/xen/arch/arm/include/asm/mpu/p2m.h b/xen/arch/arm/include/asm/mpu/p2m.h
> index e46d9e757a..d165585d4e 100644
> --- a/xen/arch/arm/include/asm/mpu/p2m.h
> +++ b/xen/arch/arm/include/asm/mpu/p2m.h
> @@ -5,6 +5,18 @@
>  
>  struct p2m_domain;
>  
> +/*
> + * The architecture allows at most 255 EL2 MPU memory regions. The size of the
> + * MPU structure entry (pr_t) is 32 Bytes on AArch64 (requiring two 4KB pages)
> + * and 16 bytes on AArch32 (requiring one 4KB page).
It would be good to have a BUILD_BUG_ON to validate these calculations.
Conversely, we could define root order with these calculations but it might not
be well readable.

> + */
> +#ifdef CONFIG_ARM_64
> +#define P2M_ROOT_ORDER 1
> +#else
> +#define P2M_ROOT_ORDER 0
They don't seem to be used by this patch.

> +#endif
> +
> +/* Not used on MPU system */
>  static inline void p2m_clear_root_pages(struct p2m_domain *p2m) {}
>  
>  static inline void p2m_tlb_flush_sync(struct p2m_domain *p2m) {}
> diff --git a/xen/arch/arm/include/asm/p2m.h b/xen/arch/arm/include/asm/p2m.h
> index 010ce8c9eb..ed1b6dd40f 100644
> --- a/xen/arch/arm/include/asm/p2m.h
> +++ b/xen/arch/arm/include/asm/p2m.h
> @@ -48,8 +48,13 @@ struct p2m_domain {
>      /* Current VMID in use */
>      uint16_t vmid;
>  
> +#ifdef CONFIG_MMU
>      /* Current Translation Table Base Register for the p2m */
>      uint64_t vttbr;
> +#else
> +    /* Current Virtualization System Control Register for the p2m */
> +    register_t vsctlr;
Why vsctlr and not vsctr?
This does not seem to be used in this patch, so maybe move it to another patch.

> +#endif
>  
>      /* Highest guest frame that's ever been mapped in the p2m */
>      gfn_t max_mapped_gfn;
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 1a48c9ff3b..7344aa094b 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -403,6 +403,10 @@
>  
>  #define VTCR_RES1       (_AC(1,UL)<<31)
>  
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
Would it make sense to have CONFIG_ARM_64_MPU to avoid specifying these two all
the time?

> +#define VTCR_NSA        (_AC(0x1,UL)<<30)
> +#endif
> +
>  /* HCPTR Hyp. Coprocessor Trap Register */
>  #define HCPTR_TAM       ((_AC(1,U)<<30))
>  #define HCPTR_TTA       ((_AC(1,U)<<20))        /* Trap trace registers */
> @@ -464,6 +468,13 @@
>  #define MM64_VMID_16_BITS_SUPPORT   0x2
>  #endif
>  
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +#define MM64_MSA_PMSA_SUPPORT       0xf
> +#define MM64_MSA_FRAC_NONE_SUPPORT  0x0
> +#define MM64_MSA_FRAC_PMSA_SUPPORT  0x1
> +#define MM64_MSA_FRAC_VMSA_SUPPORT  0x2
> +#endif
> +
>  #ifndef __ASSEMBLER__
>  
>  extern register_t __cpu_logical_map[];

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 08:57:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 08:57:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233788.1537141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vruQQ-0005M3-UR; Mon, 16 Feb 2026 08:57:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233788.1537141; Mon, 16 Feb 2026 08:57:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vruQQ-0005Lw-Ro; Mon, 16 Feb 2026 08:57:50 +0000
Received: by outflank-mailman (input) for mailman id 1233788;
 Mon, 16 Feb 2026 08:57: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vruQP-0005Lo-Ki
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 08:57:49 +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 9103f282-0b15-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 09:57:48 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-43770c94dfaso3564782f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 00:57:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abd259sm26827142f8f.24.2026.02.16.00.57.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 00:57:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9103f282-0b15-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771232268; x=1771837068; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=CRWVtAY2uADgdaFu7xbxqoScSkqucyD+/aQV1EVqXes=;
        b=IVe2FUM5FSI4ghlvumMUNGdpPg5h2x9nzB1DzKPJ5w7KDQ8jfPoA+2I+vzjNeRp30j
         1RjoNpPS1Y9egu2UclgKp1WnhFajfLdeS+y6mPsyS1rZq2SsQTLoRvjRCQ04ITAMxENN
         j5BBXB88HtcdQ8DqxwfgYPPYrNXJHGRDKx9b6jXjOAipCB7tGQ1cc2JWM0KPW1uc5Url
         bM2X4rr7NhZcoafocrTK4SieERnTHvjXg8AGafJPScMyyBzCLwxTXaIXHSeEhKmtw/Pd
         fmCXwjARq3EJXib5AZEeIa8GEVwk3a6m2NDLGFJZmqf3oMRNia3tUeB2rJimzWGFFIMm
         LD9Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771232268; x=1771837068;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CRWVtAY2uADgdaFu7xbxqoScSkqucyD+/aQV1EVqXes=;
        b=iWU2GpXcEf6AVE2iK8Qa4NR7LdEReRojMU2wGsCnn2jaFVIRr3PG8gDl+w/Y3d7Kqz
         jK64TiYQFfUvTje94hIaA6LKZCIQl2p4HYxvTwmSh8Z30xR5mrOQDLf2yCDO8z852TX7
         PJYylPIm+GM10ZuXYY8stMVMzeiNxBVDuTPAWWl8SP2Lw/Ag9LfE/6NdH5EoRsG2mjJ2
         F4J3m6IjwSnN2knCxbdJrFWp+jiTnzhzv9opECYBMb5wg8+hrurhpMFazOwHRM7/MMrY
         P+nmAgMW9bRKkd3wLa8IFLXTxkFGDCtgQ3kzqW/5U7Gp14g/A1g4kSG81ldkQmFlP5cp
         qAgw==
X-Forwarded-Encrypted: i=1; AJvYcCWx4oSSco9FsXmvjUB/FOeSUFMLVSmoLsSksE1+6igV7kzQA0yCyCn89Jn29ltD52oxSVanelsKKAU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGEDQ4cad3bp+DMUUUWeIk6JxYIYWzJv2Z4Zzbl7LjeZTBO1k5
	Bn3J2YyEKfFrRavYMsiMRSmQPwmjke9ODP6CtKfLTH6TGXUHo/uxxSF73/tLNkEHPg==
X-Gm-Gg: AZuq6aKNvOPgwqfeNo7KGiIp+RT7VYQ2lpYCdJRs2evxCK/L4PnAMyr0wyJKIshFvTS
	57zv85GU+1EcNDha2lQt4uhpR17+8vHs1ew1tfBfj5BdA5aq7TQRRGLFo0Cn+jEJHjsWYljtYbC
	fMzeHlUr2ZkqPoTYNF17ZkR1C4YHAjSUBxr7E42+RqgVjoHWcPqLxGUumQAX2wdD89yZS5dLqan
	EFfrr7q/n5++rDBYb065e/REZ5hw7UY7MZ2HFHF1cgQgltsbocmpFBwLpbKZyqJA23fn13DnF0T
	uYPbJbcE/7Hfryf2wP79/uOtmyAyHrUqazhE88dcJRFbIecomdesxjJGCwDY/GNzBhNezKRZfXn
	9uXJBS+QTuJQhqR427mNhwnM+P22geTXy4gs95KBnkPB6rE6LzUvLs+ZfycHeN18YemvK4V60wc
	JlDxGBzrrOBsLP0xZzN1dJsjEcZRxjkaCBPq5IxUN9cMn4MphStdwl1ulQhgGbmuspLpermK9Ei
	rfoN1HnbW2f8Jk=
X-Received: by 2002:a5d:5f51:0:b0:436:14c7:32a6 with SMTP id ffacd0b85a97d-437979248edmr17847028f8f.43.1771232267662;
        Mon, 16 Feb 2026 00:57:47 -0800 (PST)
Message-ID: <d6884936-a5a2-41db-8069-1c4cbd6ac545@suse.com>
Date: Mon, 16 Feb 2026 09:57:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>, roger.pau@citrix.com,
 andrew.cooper3@citrix.com, jason.andryuk@amd.com,
 alejandro.garciavallejo@amd.com, xen-devel@lists.xenproject.org
References: <20260206210554.126443-1-stefano.stabellini@amd.com>
 <7a3b72b4-23f9-410f-8d0d-08d9adaaf1a7@suse.com>
 <alpine.DEB.2.22.394.2602131342090.6031@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.2602131342090.6031@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 22:46, Stefano Stabellini wrote:
> On Mon, 9 Feb 2026, Jan Beulich wrote:
>> On 06.02.2026 22:05, Stefano Stabellini wrote:
>>> --- a/xen/arch/x86/sysctl.c
>>> +++ b/xen/arch/x86/sysctl.c
>>> @@ -103,6 +103,8 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>>>          pi->capabilities |= XEN_SYSCTL_PHYSCAP_hap;
>>>      if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>>          pi->capabilities |= XEN_SYSCTL_PHYSCAP_shadow;
>>> +    if ( hvm_nested_virt_supported() )
>>> +        pi->capabilities |= XEN_SYSCTL_PHYSCAP_nestedhvm;
>>>  }
>>>  
>>>  long arch_do_sysctl(
>>> --- a/xen/include/public/sysctl.h
>>> +++ b/xen/include/public/sysctl.h
>>> @@ -100,9 +100,11 @@ struct xen_sysctl_tbuf_op {
>>>  /* Xen supports the Grant v1 and/or v2 ABIs. */
>>>  #define XEN_SYSCTL_PHYSCAP_gnttab_v1     (1u << 8)
>>>  #define XEN_SYSCTL_PHYSCAP_gnttab_v2     (1u << 9)
>>> +/* The platform supports nested HVM. */
>>> +#define XEN_SYSCTL_PHYSCAP_nestedhvm     (1u << 10)
>>
>> Doesn't this want introducing up front, for the tool stack to make use of?
> 
> What do you mean by "up front" in this context? In a separate toolstack
> patch?

Yes. Without the toolstack part the introduction of this flag is cosmetic
only, which isn't what we want.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 09:04:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 09:04:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233800.1537151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vruWf-00070A-Lq; Mon, 16 Feb 2026 09:04:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233800.1537151; Mon, 16 Feb 2026 09: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 1vruWf-000703-Iz; Mon, 16 Feb 2026 09:04:17 +0000
Received: by outflank-mailman (input) for mailman id 1233800;
 Mon, 16 Feb 2026 09:04: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vruWe-0006yQ-9B
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 09:04:16 +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 775eb687-0b16-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 10:04:14 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4834826e555so30163485e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 01:04:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5ebd1bsm489577495e9.6.2026.02.16.01.04.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 01:04:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 775eb687-0b16-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771232654; x=1771837454; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Bs2PYfMa0cbiKKGf3Y4JKk2emM7T4Zm6jQmkZ4O+yHc=;
        b=Uh1FkSl2wprzxfkyYg47rD8jjmpTjA8jTNucBGlW/38HOgAYWVYJtNAEo+aigE0/Pt
         fxOAKci92JCV44GiUevNucPzgTmrNuiWJUX+qgPibGr9IlImi013Prd/l5EruGOMogRj
         1TLMgO7iLoEbMQjKbpN4A1MX6X785mcwuzSZLrw8IaSlLqjxoGukXjtdpyTtCOOmkzJv
         KYxJuHM7UqObn+3GbagNvNxmsyjrHh4A7yP/+l5cWaagxMEtFcrzDermaWZVvBcVytqu
         484EYmWVYzJMmNIvbHbdhFxTEGB7T9t0xyya6Ewv1MDZwQ/y4mqzYMyD72bj9TLSuaDs
         u8ig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771232654; x=1771837454;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Bs2PYfMa0cbiKKGf3Y4JKk2emM7T4Zm6jQmkZ4O+yHc=;
        b=PD0WU+VaJ8Nwvnpe6rwo0CM7oDEAm222wxoR40kLexrdjpt+VySWZA5zFyPfQfgWM3
         ryNw1HBMe5/KCAn2R253m5bVn25/n3/gToIOZIXqLBjPN+/OmqjtuMjooNMZwVuckt7A
         dQolH8tg8krUev1pSshYe/rjw1yXqk54NXbB1F7lLJfcww6WAUZylczuHhTpY7dLosK6
         DkLaAjpa6QZGlT5c61R0SAoXbxzKOxjrIjeeV5ZAO3niVYaOz7BkBftQv1n/sN+SIhaL
         BTv6GRhZGvho8xM0szWOIT5i/XPyS5UBkGl7RBoYyNFqjQnapTxyIl1b5mFyZQZDoaIi
         RF2Q==
X-Forwarded-Encrypted: i=1; AJvYcCXShZ74ogwQZxVZC+4Skh+0w/pVIiDh6ErO9y8mtPAXuxToDsMFMTBxFhbdn3yv179M50Q20xJ+7IE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwJO5i/OD7xsTxxS5J/UpxpA0EA+ZFOZ50+2atvS6YrQVUN40W4
	jOVVkAPpij8+OMPfAE9+MljsXj/0dpAJxzaY3N54e/K2ud8YyAu7IkFBTKjiNwBv4A==
X-Gm-Gg: AZuq6aJkmQh4JSlRhEcin0Y2ygRd+xdx0f1EJhvb+aO6rvVn1ZIdolSYNgY2DoxcAVs
	YOj+HghKBFfj0gEpfofr4W6qQjf5TwaOXu7QQoAgpFCGCXeSDA4OqYjClQGICJL87531ECycDpf
	owt3HXO7mjimYHr50Eryg+RORPgtz9YT/piZ2PbVmr4rSqVl1vtuUS/CpccVLYcgrS7NWjTKl0Z
	ur0tEmTGULeYSA626s1EBKjzPhBi26QdYZDevFtjE9iS0WNRYTIBnhu3dgT1OkSkIqdR/wwTG/6
	29MZTVEwkvNEa/J6hLOmrU/SWZg+bP6PXKI4v7QigWH3q73ZkuKkRb5ZbtryWp8Gyljn1XTC2pg
	HKqLb3QA3IvnPC3RnVQpqXfq9/f4Mn55SQmNeWe8M5D9IhllKgORcyKiXoq+UPeaC5HcFeMWn6n
	pobcR3b2nO2CtTL7m1nN4hoGecoF9FVcziWfytaxS43DeDvLO9KLYP6TqCRmVAiM7+vbeOZZLou
	7ADjGV2uEBZiJs=
X-Received: by 2002:a05:600c:5308:b0:47e:e946:3a72 with SMTP id 5b1f17b1804b1-48379bf78f1mr113746515e9.27.1771232654050;
        Mon, 16 Feb 2026 01:04:14 -0800 (PST)
Message-ID: <a1d3507c-6e24-42ae-93ed-271ef2d584da@suse.com>
Date: Mon, 16 Feb 2026 10:04:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
To: Stefano Stabellini <sstabellini@kernel.org>,
 Daniel Smith <dpsmith@apertussolutions.com>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 grygorii_strashko@epam.com, anthony.perard@vates.tech, michal.orzel@amd.com,
 julien@xen.org, roger.pau@citrix.com, jason.andryuk@amd.com,
 victorm.lira@amd.com, andrew.cooper3@citrix.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-2-stefano.stabellini@amd.com>
 <82c06e52-1db0-46e5-be9f-7ca0360ffc70@suse.com>
 <alpine.DEB.2.22.394.2602091520460.1134401@ubuntu-linux-20-04-desktop>
 <43e80ad6-7b42-42de-b36f-1a9079589912@suse.com>
 <alpine.DEB.2.22.394.2602131206040.6031@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.2602131206040.6031@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 21:09, Stefano Stabellini wrote:
> On Tue, 10 Feb 2026, Jan Beulich wrote:
>> On 10.02.2026 00:23, Stefano Stabellini wrote:
>>> On Mon, 9 Feb 2026, Jan Beulich wrote:
>>>> On 05.02.2026 00:37, Stefano Stabellini wrote:
>>>>> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
>>>>> global to VIRQ_DOMAIN to allow other domains to bind to it.
>>>>>
>>>>> Note that Linux silently falls back to polling when binding fails, which
>>>>> masks the issue.
>>>>>
>>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>>>
>>>> Technically this is an ABI change, and hence I'm uncertain it can go without
>>>> that aspect being at least mentioned, perhaps even its implications properly
>>>> discussed.
>>>
>>> I am not sure if it qualifies as an ABI change or not but I am happy to
>>> expand the commit message in any way you might suggest.
>>>
>>> The jist of it is already in the commit message, really the key element
>>> is that VIRQ_CONSOLE can be bound by multiple domains.
>>>
>>> Aside from spelling out "this is an ABI change" what do you have in
>>> mind?
>>
>> What I mean is discussion of the implications for domains using the vIRQ.
>> Previously most domains would have attempts to bind this vIRQ rejected.
>> Technically it is possible that kernels had code paths blindly doing the
>> binding, relying on it to work only when running as Dom0. And really, you
>> appear to break XEN_DOMCTL_set_virq_handler when used with VIRQ_CONSOLE,
>> without which its binding wasn't possible at all before (except for the
>> hardware domain, which get_global_virq_handler() falls back to when no
>> other domain is set). Or am I mis-reading things, as I can't spot any use
>> of VIRQ_CONSOLE under tools/, whereas I would have expected provisions
>> for (host) console handling to be delegated to a separate control or
>> console domain? Of course other toolstacks (the XAPI-based one for
>> example) might actually have such provisions.
>>
>> And then there's the XSM question: XEN_DOMCTL_set_virq_handler obviously
>> is subject to XSM checking. The same isn't true for VIRQ_DOMAIN-type
>> vIRQ-s. Yet this vIRQ isn't supposed to be universally available to
>> every DomU. Instead the ->console->input_allowed checking is kind of
>> substituting such a check, which iirc Daniel said (in more general
>> context) shouldn't ever be done. IOW in patch 5 you're actually effecting
>> policy, which should be XSM's job aiui.
>>
>> Bottom line: The patch may need to be more involved, but at the very
>> least the description would need updating to justify it being as simple
>> as it is right now.
> 
> What do you think of this:

Quite a bit better, yet for me at least not something I would feel happy
to take as a basis for an ack.

> ---
> 
> xen/console: change VIRQ_CONSOLE from global to per-domain
> 
> Previously VIRQ_CONSOLE was a global VIRQ (VIRQ_GLOBAL type), meaning
> only the hardware domain (or a domain explicitly set via
> XEN_DOMCTL_set_virq_handler) could bind it. Any other domain attempting
> to bind would fail with -EBUSY because get_global_virq_handler() would
> return hwdom by default.
> 
> This patch changes VIRQ_CONSOLE to VIRQ_DOMAIN type, allowing any domain
> to bind it independently, similar to VIRQ_ARGO. The console notification
> is now sent via send_guest_domain_virq() directly to the focus domain
> rather than through send_global_virq().
> 
> Implications:
> 
> 1. Guest kernels that previously called bind on VIRQ_CONSOLE blindly
>    will now succeed. Linux handles binding failure gracefully by falling
>    back to polling, so this should not cause regressions.
> 
> 2. XEN_DOMCTL_set_virq_handler can no longer be used with VIRQ_CONSOLE.
>    The domctl explicitly rejects non-VIRQ_GLOBAL types. This means
>    toolstacks that relied on set_virq_handler to delegate console handling
>    to a separate console domain will need to use a different mechanism.
>    Note: No known in-tree toolstack uses set_virq_handler with VIRQ_CONSOLE.

XAPI at the very least would want checking here, imo.

> 3. VIRQ_DOMAIN bindings are not subject to XSM checks beyond the
>    standard event channel allocation policy. Access control for console
>    input is enforced via the per-domain console->input_allowed flag,
>    which is set for:
>    - The hardware domain (by default in domain_create())
>    - dom0less domains on ARM (in construct_domU())
>    - The PV shim domain on x86 (in pv_shim_setup_dom())
>    - Domains with vpl011 using the Xen backend (in domain_vpl011_init())

Daniel, can you please take a look from (conceptual) XSM/Flask perspective?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 09:08:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 09:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233809.1537163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrub7-0007mj-7M; Mon, 16 Feb 2026 09:08:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233809.1537163; Mon, 16 Feb 2026 09: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 1vrub7-0007mc-3D; Mon, 16 Feb 2026 09:08:53 +0000
Received: by outflank-mailman (input) for mailman id 1233809;
 Mon, 16 Feb 2026 09:08: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=sAgz=AU=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vrub6-0007mT-2s
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 09:08:52 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 18deaf06-0b17-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 10:08:46 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN8PR03MB4996.namprd03.prod.outlook.com (2603:10b6:408:7e::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.15; Mon, 16 Feb
 2026 09:08:43 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 09:08: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: 18deaf06-0b17-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DBB2rVK8YIjdTtJotLGZiKK/4Q9aDvrhRtZdPsLAzILkfa6ASbrGBNIr8oKnBpBRsplKjEG0SP0b+AxtZRxgWSHhHzD1jgpafUXiEDIZsGJc/rwa5PlEDjGKgOzV62nZYuJLG/YjYvOeuGCnvCfeh1JqeOvHxv3dRGh13xQsZYGqoXXRJGxNV96y0SecmnrEsGC+s3Ped3HssI5ObCrp8dJmKbRek8gPqr6jOg0ms45B4HysLlPrM0lG2IT0jOOB6FR9dFI1ps+DXQJ/eUlEynSdCcewFZ1tzzmaBqCA/8WafacOEMYlKy/nz3yOZA+yN+M09LkQGzNd5XgorUE+Xw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KBFkYU5zO4LtipAAYY0sZcm+knroMLSl+ac7aDpY/3U=;
 b=ZQ1xZMQy84Zu3mvPshJuGe6GYg0NKPRW/7Wl1rYe0GqlEVZwCLqZm55e9TJm0NOwYCu4cRCr11tQZJyvCjNHYGqH2JYbei+F6K9galnKwzkQ44SfWpuIStaUe+Ya0WkvmIXItwA1kcTVHGHfGXXsThbhmZhAKqoaR5U/pxVtPsdUr50zmsfSBDxrUSKHYAWLWozI9UiPBjM9GEZqolfX/TY6SDt2sKLD3FEhNFuEJE7XjAyJ9j+FIxeP+hmW65+7T/JdCkleZ6JEAJNAzScJX9QjPlwg2ZWoPJcn8HLkp9PWjXk4IW1T6wzZmXrt/gvnDmEr4h4B1aptnaA0EhoP3Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KBFkYU5zO4LtipAAYY0sZcm+knroMLSl+ac7aDpY/3U=;
 b=r7K9pxvYX8D3r6gISARlOqefYfdfwXn6Ms95Xb4td+qri9+Kt3DQwv+yYT8utfBISxYwYiRmavCULUpNOTGLXOQwG4/qlPHcL6giwrH3ZSPSHcBtUhyObwyazd2hPWIzk77HZKJxd0DMWgV2H6LAsCMc5u02jC6m8G3kjYwVtz0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 16 Feb 2026 10:08:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
	xen-devel@lists.xenproject.org, jbeulich@suse.com,
	andrew.cooper3@citrix.com, jason.andryuk@amd.com,
	alejandro.garciavallejo@amd.com
Subject: Re: [PATCH v2] x86/hvm: Add Kconfig option to disable nested
 virtualization
Message-ID: <aZLel_W_1B6684zC@Mac.lan>
References: <20260206210554.126443-1-stefano.stabellini@amd.com>
 <aYnAGQa56yvDoN0M@Mac.lan>
 <alpine.DEB.2.22.394.2602131350040.6031@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <alpine.DEB.2.22.394.2602131350040.6031@ubuntu-linux-20-04-desktop>
X-ClientProxiedBy: MR1P264CA0001.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BN8PR03MB4996:EE_
X-MS-Office365-Filtering-Correlation-Id: 177df77c-0a17-4f94-b6fb-08de6d3afba1
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?d2hYd0M5OVhPTUwraFI5M2YyZGVwN3NsVHNSNXQ1cXZjYXJVYThsY1lvcWVt?=
 =?utf-8?B?NWYvTnVPNmd1L3lQZXNva2hoR0ViTi9wTU55L1NJMzJOQ0wzcjM5cnk5ZGVP?=
 =?utf-8?B?WE9jS2svb0lIaGhGdGNocnRIanZMRi85S2JpdXNDdVh2dWpSeDY2SHptTnha?=
 =?utf-8?B?U3lMb09Rck9VMVVvcXE2VkJCWExaZEhDQmdkak1KY1d3ejlaYkVFVThNWHNn?=
 =?utf-8?B?QUtlVnVGWEpKb2ZIMzU0TVhMT2pBODhjNXNVL09KV01zNlpLdXpnVnZpbUZ2?=
 =?utf-8?B?ZzVITXdwRzA5QXk2M1hGMXl0RzlHd2J2Umd0MkhWY2RrcmZFU3Z4ZFJ6dGxF?=
 =?utf-8?B?ZkFCYURJT0dDS1dQTUt3ZXlQV2RsbC9yZGpkTjNxV1dtb1ZuQW12S01kWmF1?=
 =?utf-8?B?T0VmWTJwQ1c3dEMzeUltZFVvd05YdzR3R2ZBY1JRYU1aMVp2QmJoZmpnek0z?=
 =?utf-8?B?VVRTTk9aZnUyNWY5WjdsYkxUcTFRMXNHVEkzRCtOeEw5WTYvZEJhR2F2UG9Z?=
 =?utf-8?B?R25mZnE2M21EdjFTVHhSdzA3cCt1eWs1V1Z4SXR1VVdocDRQNXNsaHkvbXlE?=
 =?utf-8?B?dVdvTU5ZdGhrY0VYVVJybm05WjZBZ3FTSHUvZHJ6c0tEeTloRElHQU13a1ZW?=
 =?utf-8?B?ejRtYTlVdzBmNExkc0FsT0VwOVZxQ3lsYkJZZ1JDYUJNcFBzQ3A2VFY0bzRj?=
 =?utf-8?B?RXdXMlRGVFljNCtJaHhOU3lQRE43ZjlSRjB3VG5qWEUyczhhdzlVdTFBTHIw?=
 =?utf-8?B?TXFyMGdORUtwMkxBRERWbW56OFpTSmdudStwd1NGeFRIUlI0dDNtUzV1UWhp?=
 =?utf-8?B?MEVMUDY2OHFJMzM4ZTFJa3Q0QzR5ZFltNUdFdnJyRmd2T0RMcWd3Z1RaTi9B?=
 =?utf-8?B?bFJIZnZlYUMvUWFkZk8xRXFQdnhubHRQbGc3TFRKeUY3TUZXekhjQkVUdTFt?=
 =?utf-8?B?bmVMSDF3Z01zMk1NN1BqVkg1U05BQllMN3pkLzY3RlNDdFZPRDZYZEtGK0lS?=
 =?utf-8?B?U05nd2V1TDN5d3VqaEtnOUhVSEpqYTZOUU5kQ0VsVDRFSnU3VFozTkl1MTFS?=
 =?utf-8?B?SmxWQlpoeS9ONzg3MnBPMSt5WHdhWjBZYjYwR2NqNmVDU29YZFFkazJTb2NU?=
 =?utf-8?B?anRsRHhaOUVpWTFpRmJhaGJFSm5MQzVJdmhvNHJMMVZhaFROenlVaFEvNkRq?=
 =?utf-8?B?U2xoSHoyeEZhMTI3QmV5YW5kTG5RYzlhV0xtYncxc0M0ak5WVEltTElZcGhI?=
 =?utf-8?B?UHNhTXo4WGRzV2lZNDV1SittQUdYY0hpQk5MSHhnZVZmM0p1ZUprMnhGZEI4?=
 =?utf-8?B?YnBuY2tmenFTWmFhS2Jod1EvejhzVTcwOEZMVUVXY0lERTQvaXZGMjR3eTlo?=
 =?utf-8?B?dWc2OGNqa0hyYzBUTmdvZGJvVEpFOS9xQld0UnpiQWtLajRFQ25iTU45RGxt?=
 =?utf-8?B?TVhwWjdybmNvcnZ1aEVvUDNQQXV0S0ttTUp5R1d1Z1NNU0ZzSDcxNHkzZVlT?=
 =?utf-8?B?V2RCbHViYjRjdGd2c25vNHpjK2UvVWRyaTBVQzlwSFpwRkZOaHFoTVd4dEVp?=
 =?utf-8?B?Q0pqbTBlekg5MU5tVS8rbTdFWG9LNHZodXh3azZtWVllajI5UXNpdzBDZmsr?=
 =?utf-8?B?OUtSS0I2c1hIeHdyV09YajFmd3ZNRDV5NzZ1bVY4MFFGaGRJanNkSTN0eFg4?=
 =?utf-8?B?UnpSNEFZTVkvTzZiWENoQ0FsVlVudUlMcitHSEdpaTdieEIxOVlaYkNxdU5Q?=
 =?utf-8?B?R05BbElYVCthSG8xWkQvMTB5NHErZENlUTA5OEVYejJVNW00WGJ4dVVDMmxh?=
 =?utf-8?B?QU8zcG5zbUY4a1VNd1MyTzdKbGpkNkthU3ZMeFFTTytVNzEvY081eVc0UlFH?=
 =?utf-8?B?TGxERVUxNGgwcjlDcWc5MW5MQkdNQWJ3dGdManpZZTJ3ejBNVVRmck81cUxR?=
 =?utf-8?B?Vjl6SWU3SzRXNWtCSjBMV1VtTjZnd25yQ0tPS2d2NXlWRVVuOFA2a2RHWVRy?=
 =?utf-8?B?OVR4dytVc1p0QmJ2R0xobzRuYk53M3E3dzFRNTU0R21YZWRSZUpqTEc3UkFC?=
 =?utf-8?B?aURRUW52TWxPVzhCNVRGRGlhbkdHb29HNjUrT1QreGNqYVgrN3c1SHUxT080?=
 =?utf-8?Q?/JzU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UE0veTN5V3RLakVESy80bnZ3Vk9RZ0lzZkZNa09ZZVZhV2o3b083c2Y3RmpZ?=
 =?utf-8?B?ZENOaE53a0REZnF4ckszYncvU1l6NEZnZEw4Ti9saFlpNTdyZ0JpaUY1dFRu?=
 =?utf-8?B?VmZ4RnJHZUdNdEZsMDJKU01MVllhamN1T29OcW9HNUY4YlZpMnhzdzlYMUhH?=
 =?utf-8?B?ZGg1WmpKcXBETGQvcHRHUFRWMUJGK1NNWlNOdzBMVjJ6djd0aWorQzBsNllQ?=
 =?utf-8?B?WGg2TTRJVk8wMHlBSWducG11NmJlQ2RjV1hWZzRiODliSzV6SjlkWWE0QmdE?=
 =?utf-8?B?VmlwdnM0QjQ1U1M1eVZxdTdzTERQY0diZkNGaUc2cXJJN0NMVmsrNHd5c0pN?=
 =?utf-8?B?VWc2MWFEOGY4aGZoV1FTNTJZVy9TWlVSaGpYSWt6RGNmc3ZtQVFmOEZLRnR0?=
 =?utf-8?B?ZXlDcUtJQlJPVEFBR3JyMno4ME82VlRreFdyUWo5aHRCa3p1Y1NNUTlleXU5?=
 =?utf-8?B?SlVoUTBjQVR0UHN4aElobWZseG1ReDhkWWQ5ZXgzTVo4YW0wSFBHRkVRb1Ir?=
 =?utf-8?B?Yk0reDFrVWY5NGVQOEJMaklYR3l4WnZYOWJKd2tmdU9oajMvRmR5Q0xFbFlN?=
 =?utf-8?B?b3RjLzN1NkhXMTFVUmxqYTM1RjBMTG1RN1RWV2gvUmJ5dXdkRURLcndSWjVU?=
 =?utf-8?B?bHJvVllpVkpVdFdOVForZjRDWUJyUUZCeSszMStDcGFBVmIwZDVMWjJZSnNE?=
 =?utf-8?B?UFU5dlFkSldDMHFuM1Y0TFYzZWhoR2k4T1RTbS82YnBtWkhXODdBWnY3b0dh?=
 =?utf-8?B?WnNjZGcvWENIQ09RRE5KWng0cjJuMDBQUWQ2R1hXc0hsN0JFWi9rMVU0dmdq?=
 =?utf-8?B?cHpvcmwvb0pEUGlTd3dRUW5TL3RGd1dFaWFnZTZ2M2Q0MmdYa045THo1bUg2?=
 =?utf-8?B?dXRuYTIxT3oyLzdMNVhMY1gwd1Q2RXVvcDdIbHZIcDkrR2ppUnhPK0pCbjRI?=
 =?utf-8?B?bGs3MFpBYWYvb056MGdUWDBlaWFEcjNPM2Y4R0Q5ZytpT0prUG0vN2FlSUh6?=
 =?utf-8?B?R2o5am4vVS9YcjFpNkRKdklna2g3TVJFaWdGN1pXZEZwbThVandnZXZUeG80?=
 =?utf-8?B?U3FUaFhsbFBRQWJwdUZZY2RtMUNCUE84WE9WaWFMSXEzOGgvWXVaMnk0YjZV?=
 =?utf-8?B?MlBVY0NzdFl3Y3VmNWpGK285SFZ2WHZHV0xQZlBFQ2xRUURtck5QTVE3ZXJi?=
 =?utf-8?B?SGd1Z3UwWTRxRitCTXFUbHBQUStJNGx1RzZYRXg1ODN2NG5oVjRtdlg4NXBS?=
 =?utf-8?B?V2JkY01SYzRVeWl2eFZOOXFSVUZOcnNnR3ZacVpMNHFvQjMyRzlucUpXL0Vw?=
 =?utf-8?B?cjJMU1R4cHAxdEdPQVAwenR6TmdhcHRobGJjNVJvZWNaRFhMNSt0a3ZlT28r?=
 =?utf-8?B?T3VmaWZzK0JHb3UwdDN2NmdlK2lvRllLRjZVUTZyeUl6byt6aUZadjVYSU05?=
 =?utf-8?B?dmxUSnppSHFWY2c4aGV2STBpNThVSGJ3OWllb28yRzBmaTA3S1kyeU5URGlV?=
 =?utf-8?B?Rk9yc2xNNTBOTlpXOHBUck5kRlNDaDdhSWhjMHZNMmhwMWR2VXBjYkJBTGRW?=
 =?utf-8?B?Vi9FblFPTkdJdEJyMGhnU0ZsbGQ3eVRYYzA0ZVFCTTNPUkhadFRCREZnV2la?=
 =?utf-8?B?RkxuRy9tWDY4T3VNNmZNakQrT1NzdUlxSEpSRkg0KzNtNVJhZ2g1YllQZ1p4?=
 =?utf-8?B?S2ZmQW9pQWVoaFRPaHlmVlFVQnZnVG1HaXA1UU8rNW9xSWt4SG9WVWlOMkxq?=
 =?utf-8?B?TXoxdEtQSTFMOENBenZuVThhNnN0R1RJUzc2YjZyeDZpcExCRnFYVU54S3E0?=
 =?utf-8?B?dzJkeWxtN3NQdEVyMkFCQzNObEpuc0lLYk9IY1U1cjU2b01EYkVJU2NJT0NF?=
 =?utf-8?B?bUwzajNqVlpnZnlITkRVa3Zrblg0dUtjZjV6aWllUmI3dUt1QWhVUnc3bVZ1?=
 =?utf-8?B?QU5mNTJqWmhPT2t5ODR5QzJ5OGxCUlFpY1V0eHREckRrS1RVMW44cmdyc0Rt?=
 =?utf-8?B?eUlUR1NzcGFyYkpqR0MyWDcycjA4aVZVdGZOVktUQ0VQRzU2YmJtM0lVempt?=
 =?utf-8?B?WGtRTDV2VklRbmhKZEh3N1oyWjAxeUJXRXFKdG1MQllMcklpdWltSHFtcUV2?=
 =?utf-8?B?TzB2bkZHdklobFJJTzVpckJGZnIwejJXLzJ0Z2V5SFJMc1M4aHNkNytxc2lV?=
 =?utf-8?B?eG1jWDZuK25yZFBsNjRKcmpGYTFiczEzdVdtMFZKUUlwdTBjRjFyeTkrUlRQ?=
 =?utf-8?B?UGdrYTRCSkUwdm41M0UrUmdTOCtvL25aWXB1QWkzbEhoa0kwV211eDBsNzA0?=
 =?utf-8?B?NTNCekdYWjMwZEhCOERvcVAyanBNL3N2MllXUGhEbU8zNDlYMkRHQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 177df77c-0a17-4f94-b6fb-08de6d3afba1
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 09:08:43.3106
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TujBf9Go9TFvKJ8a0SWYNBhPRyxET2uWxgmVCcaoE3qxc8yr17TS1dEwzZJwwjpBr0LvdpZH/Pw7V0gnanenDA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB4996

On Fri, Feb 13, 2026 at 01:56:34PM -0800, Stefano Stabellini wrote:
> I address all other comments
> 
> 
> On Mon, 9 Feb 2026, Roger Pau Monné wrote:
> > > +static inline int nvmx_msr_read_intercept(unsigned int msr, u64
> > > *msr_content)
> > > +{
> > > +    ASSERT_UNREACHABLE();
> > > +    return 0;
> > > +}
> > >
> > I think this function is reachable even when nested virt is not
> > enabled:
> > 
> > vmx_msr_read_intercept() -> case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_VMFUNC -> nvmx_msr_read_intercept()
> > 
> > I'm also confused about why the function returns 0 instead of an error
> > when !nestedhvm_enabled().  We should probably make it return -ENODEV
> > when nested virt is not available or enabled.

Oh, I see.  The return type of that function is weird.  It should be
adjusted to bool (not that you need to do it here).

> I agree on the way of thinking but if we return zero it will goto gp_fault.
> So I'll just remove ASSERT_UNREACHABLE.

Ack.

> 
> > > +static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
> > > +                                       unsigned int exit_reason)
> > > +{
> > > +    ASSERT_UNREACHABLE();
> > > +    return 0;
> > > +}
> > 
> > Same here, I think this is likely reachable from vmx_vmexit_handler(),
> > and shouldn't assert?
> > 
> > It should also do something like:
> > 
> >     hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> >     return X86EMUL_EXCEPTION;
> > 
> > So it mimics what the function itself does when !nestedhvm_enabled().
> 
> hvm_inject_hw_exception cannot be easily called here because it is not
> available at this point in the header. But actually this function should
> be unreachable because when !CONFIG_NESTED_VIRT, CR4.VMXE is not
> a valid guest CR4 bit, so nested VMX instructions should cause #UD?

I'm not sure about nvmx_handle_vmx_insn() being unreachable when
CR4.VMXE is not set, the Intel SDM states:

"26.1.2 Instructions That Cause VM Exits Unconditionally

The following instructions cause VM exits when they are executed in
VMX non-root operation: CPUID, GETSEC,1 INVD, and XSETBV. This is also
true of instructions introduced with VMX, which include: INVEPT,
INVVPID, VMCALL,2 VMCLEAR, VMLAUNCH, VMPTRLD, VMPTRST, VMRESUME,
VMXOFF, and VMXON."

My reading is that regardless of the value of CR4.VMXE the execution
of VMX instructions will cause a VMEXIT, and it's the hypervisor task
to figure out what to do.

> 
> I changed it to:
> 
> ASSERT_UNREACHABLE();
> return X86EMUL_EXCEPTION;

If the above is correct, the ASSERT_UNREACHABLE() is reachable.

Returning X86EMUL_EXCEPTION without actually having injected the
exception will result in a loop I think, as vmx_vmexit_handler() will
resume guest execution without having advanced the instruction
pointer, and without having injected an exception, and hence another
VMEXIT will trigger.

IMO the best way to solve this is to make vmx_vmexit_handler() inject
#UD when nvmx_handle_vmx_insn() returns X86EMUL_EXCEPTION. You will
need to then also adjust the non-stub version of
nvmx_handle_vmx_insn(), so it doesn't inject #UD itself.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 09:18:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 09:18:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233818.1537172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrukK-0001A6-1m; Mon, 16 Feb 2026 09:18:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233818.1537172; Mon, 16 Feb 2026 09:18: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 1vrukJ-00019z-UG; Mon, 16 Feb 2026 09:18:23 +0000
Received: by outflank-mailman (input) for mailman id 1233818;
 Mon, 16 Feb 2026 09:18: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=nRIP=AU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vrukI-00019p-5y
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 09:18:22 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6de547cd-0b18-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 10:18:19 +0100 (CET)
Received: from CH2PR19CA0025.namprd19.prod.outlook.com (2603:10b6:610:4d::35)
 by CH3PR12MB9343.namprd12.prod.outlook.com (2603:10b6:610:1c0::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 09:18:12 +0000
Received: from CH1PEPF0000AD7A.namprd04.prod.outlook.com
 (2603:10b6:610:4d:cafe::6d) by CH2PR19CA0025.outlook.office365.com
 (2603:10b6:610:4d::35) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend
 Transport; Mon, 16 Feb 2026 09:18:12 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH1PEPF0000AD7A.mail.protection.outlook.com (10.167.244.59) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 16 Feb 2026 09:18:11 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 03:18:11 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 03:18:11 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Feb 2026 03:18:10 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6de547cd-0b18-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W7qQMH6jiV7Tg+GLNqglBSNZf1EKKP2XPBXcQNCLUpCxD2ZXc+36pv/S33d4P7XP+78lE+9dpJzKvd6PqUe4vf7p4VHr3zlkT9xOx9pGms5h/5gUAKOvMwXCetbRhycML9ZhsV6pYsbhbbyfoNTz44MwFDZJriVUno+JmrHH6jmU5LutcPCS4MtMRO6f53H3ZvhLsoTy3t73so6gBuzZK4SgP5jCz+N428H8F4MYdq5cGviu52bUDyjTKVbn/UR41U5NshshuGHKMXEY1dIHr5iaQ6SuZNVIq2K8BuPeUF4IRI51t9koTplOJlay4GKN0DztC7EBlDTW5Bzuxi7aRA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6jS5i2wyR9/SctT6OdQMTPs7K1fHgdsborWbgEHeCYY=;
 b=DPyEJ25+LySOZ9DANSb/kazeEwmv1FhoQ9YEmLWH1x/BO/JqWjc9FYxEyqXGB/bbz2vr3uvq0YZsbXIkbv4WnJRS9FxUNo25wQk3001HVIdtT4gMM14ow49r1qLhIcRJr0bcIEZsbWwGP0zz87XiEajXrOPaj+mJaYV1aby67TCxna60McpL+XTMjHz3nUSNfrMmp2RpY3JKg5A+MhTQ0A2TTK5+LymPhJRni1vFuWse/JpC3py/0xes1/Tn44hC8B8c7dXvaCZ9c1KUam1D1s4Dlv3FCMJ9lkJbDqvh2Zsj8kNo+wk7wS1TqjEwBljAGZctq9NGwbrvXZXcZ1G/LQ==
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=6jS5i2wyR9/SctT6OdQMTPs7K1fHgdsborWbgEHeCYY=;
 b=X8ICFeu6CYjbIU/d0Eb6Ux3gyxU+QUbuO0C/AfNPyhiMS6h7P5nhzg5iaELElb39GUaThQKVc/AjcQoxme3QTexH7WEGLZBM2pKJqbP69ttynKIXWhSwFZBXZq9lbHgq8tCn5rrigJyACLdHMnevkwqx2ZfAkKTW6PDdU+EOgD4=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <4ef64eca-3928-49c6-adc8-4d88319e01cd@amd.com>
Date: Mon, 16 Feb 2026 10:18:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/3] arm/mpu: Introduce `v8r_el1_msa` device tree property
 for domains
To: Harry Ramsey <harry.ramsey@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: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-3-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260206090155.68466-3-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD7A:EE_|CH3PR12MB9343:EE_
X-MS-Office365-Filtering-Correlation-Id: 20c6039c-2150-4ca9-4abf-08de6d3c4ec2
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?SitJaHBNbGZyZFpsZVE2UnJ2TVdEZjAwQUFxaUlDUm1CMjZzSU1WbEgxbTYx?=
 =?utf-8?B?UXo5YnBwa21mVXFGR3FsRDA4YUxQcFYxV2haSUtNbE1kbWlJR2U3WHl5dHN1?=
 =?utf-8?B?Tm56eWFOYXAzUHAyN0w1b1lrQlJUbWtUZWZ3VVVVcEgwWFlZelJZeThRQURo?=
 =?utf-8?B?MllkTlRIbW1Bd1dsMDhDS0YxL0xlaFBJSkxEcjZFNTN5Uk1TUU1PRGFBK2Ny?=
 =?utf-8?B?WVJsQUJxL0FWMnhsUjAxMnYwK0o3SlYvQTBXRnVMdjRIanVtZWFXSWY0cDlE?=
 =?utf-8?B?MjgvQnRTMml6bHVzTzlKeCtKWDZrTGtVTlpoVjJ6T3pqNWZZd2hTa09UWitO?=
 =?utf-8?B?QUcrOTJEYWxHVjgwT0EyOWY2SVNOZ1Zrdzg1QzN5dkw3dWtSWmhneHdVY3VZ?=
 =?utf-8?B?SWd5QTd0V0N2MXlVRVNNZC9zNTAvMVplTEhIdzBvWVd1NURBWjNmNXlWV0I0?=
 =?utf-8?B?cmlYRmZ6TDBkekdZQjVtNFFvZ1pDWnhCNXZ4SDlPNWYvQ3d4MWFxRFFTTHJK?=
 =?utf-8?B?K1kwcjN1ZFVCc3BLWTRlN2JpQTZlK2J0UlFFbWFEc2hLckNZcWlHcFlmRWdT?=
 =?utf-8?B?ZzlpRHE2TlNLcm1aZ0xkNXArdzRMQ2MrWlc5U2FVTDNETVVlNUJjdFl4WlFx?=
 =?utf-8?B?MGFISkdlakJzNnA0TzJ0bnBrOUdudm11aHFvc0FwR1phOHd4UjErMm4yTFVQ?=
 =?utf-8?B?eWFjeVh4c3E4TUVmV1p4TUVUbkRmOGdDdXBnNDhKNmNNcTBhWXA1NmJJY1Bo?=
 =?utf-8?B?VUxrUW5kT2ZKd0ZIUjlkaHBUSnRjSG5hWnlsYzIzZXQ5VWtxNkpJVkNUZDB6?=
 =?utf-8?B?ZklYbWNOVTA5TmdwRTc5L3gyZDdmcW9hZDM3Nm1BTzc3dkpqbkxGbmZkWGFk?=
 =?utf-8?B?MGV3VmZiK0gvNnF0TmxBOGUzdG1uYkdHVzVaYTRQZStrSlF3WFRLMVI3UzhZ?=
 =?utf-8?B?cXU1YzVoOUpuMjFCZkN4aldqQ3A0cmlGdUVjUUxuM0tlUlZTdXA0Y2xRdnM5?=
 =?utf-8?B?ZlMzSXdFdlUzOGtwWk80K29YQU5xTnpaRGIrQkxwSW56MDFjQ0s2ME0rOWRi?=
 =?utf-8?B?eDYxNWlZZWx2L0VrTk0rcU8va0ZYVzdYeHkySkE5REtlb1czZVdUU0ZlRUxU?=
 =?utf-8?B?Yk1KVEtBczFNcW81WkdtUjB1dXkwS3NHK3lKek43REdWWFlOMk5KUHkyR0tS?=
 =?utf-8?B?TFpMVm9PZ2ZVMXV4dDBCazczeFJvd1A2T3FrMFZDbDAxOFU3aGpjU0hiUGRB?=
 =?utf-8?B?Z0pPRytCc1FTTGc5TGtiQnNBc0N1czc2VkhTYlBudlpBbFFCc2lWMG9aK2o1?=
 =?utf-8?B?VzdOdnllYjBIa2JsRXJsVkZpQ0hoQytHVktrZ2wwTGxPVmx0dzYxZ0lOMzNN?=
 =?utf-8?B?b1JFcW4vMG9mMHgyM0o1bHZySjZicmwvQTA2Q3NRdjBkRGgxdDdpZThxRkxw?=
 =?utf-8?B?c1ViSjU1TVNydU54S3JWS3g4UTZKRkszcXJTUzNob1RaRVA3STJuMEFVTkJa?=
 =?utf-8?B?UzNxRERZV2UwMmQ4b3BJdDFxVGF3bWpuR2xWMU9qQzlHcEY5Z2M4NldnTGhk?=
 =?utf-8?B?c1dENnVVTWx2b1RGYmErR0owM252c245L2dGOG1hTnZGQ0VJMFRua2grRlBo?=
 =?utf-8?B?QTNEN0hSWThMb0lxZmo0SmdIZUMrUi9ZK3E4ekhxL0dxdzVTUkp2MGNuNG1P?=
 =?utf-8?B?dXY0ZUNXTks0VFdtU3UrT1craWIva2FwajlUdHplNlorcHF4UW1WN0YvVDFW?=
 =?utf-8?B?NDVFWUt1QmxIQTJwRHJFVy9RbGljSDd3R0wwaHJVNDhOTW9DNGhyV3gzdnhr?=
 =?utf-8?B?R2lNNkFNMVdIWktLcEp1SGUxeFZ0aWNjQVk1VUh2Mitpb1psQTA3ZW9aR20r?=
 =?utf-8?B?Q2krUy9KWFpkTlowQnp3eDFQS2RFeU1hcmJHSExOdnlZa1o3L1Q3RDdNSGVT?=
 =?utf-8?B?eUsrRkdWa2EyV3ZTZUN0MWhWbzVCRVFoSGRud1FBZE5xcHF3TzExMENXRHZO?=
 =?utf-8?B?N1BjaFhPc0FYMDN2bjVIaFhxSk1TUlhMQnVuTFpGSUxqYW9Pd1ZJTkNXWlA0?=
 =?utf-8?B?bitnOTJSUDdpYlhYdzlmSG14REVleHpzeThsOWNFS1labFJKTGl1NFk3Ylo2?=
 =?utf-8?B?eUorakNXdEMwWEJEeThXbmYweXFtVmZnZVl6ajBkOXhwalVzOU5FKzB5NWpI?=
 =?utf-8?B?R3lIRThxTG5wTWt4Q3lrYmhUVWNuUmJGQjhwcXRMNmlSaVFDVzVTUGV2VXFX?=
 =?utf-8?B?YmJ6RlArTDFRMkxFZFdkd0JZNWxnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	78Q1WjxTpNeaOQvNnZxFFRBgdgP7OMDCV6rTCyGKlgLaJLB0lOI6KO7sPVbAZW99k1NaoUL6HthZJSw5gzU8sKKTHe1KLaGVhYZo1iqP1bLXxnehvkzcUc3ngy7SMGtNQVvo7DrsCurpn47nAh8CuambE0VzF7u9yWsxHx+8c7CaUJEmHuxWBNC6FTERpIZkuAPMPEUpCXuDrLTgUG1oqiOoMDpXmL0jhFYasovx7i7ReAH0LtqD7mlOBxR7p/8UmjU82Wqw7jk0SGb6XRk/J4NeMVQ5vayEU/rYDRwP7fNlVnMg5xUUd8S6/5Mng7Smk5/pqfw8BX3EQyuSw/5CdcvOp9Va8QaRCD7iqQkWblDp3Xc/CCnJzCyNoFQqpSaQ7KO2L3RZHnzN2QN3ZG89ExdgmwJA1aS4UuHOWiOAV1g4I0YlR36cqoH+pw9IiZWN
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 09:18:11.9731
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 20c6039c-2150-4ca9-4abf-08de6d3c4ec2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD7A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9343



On 06/02/2026 10:01, Harry Ramsey wrote:
> Add a new device tree property `v8r_el1_msa` to enable/disable the
This reads as if it was on/off option. I think it's better to say "to select the
MSA (memory system architecture) at EL1 i.e. MPU(default) or MMU.

> PMSAv8-64 translation regime at EL1.
> 
> Signed-off-by: Harry Ramsey <harry.ramsey@arm.com>
> ---
>  docs/misc/arm/device-tree/booting.txt | 11 +++++++++++
>  xen/arch/arm/dom0less-build.c         | 25 +++++++++++++++++++++++++
>  xen/arch/arm/domain.c                 | 16 ++++++++++++++++
>  xen/arch/arm/include/asm/domain.h     |  9 +++++++++
>  xen/include/public/arch-arm.h         |  4 ++++
>  5 files changed, 65 insertions(+)
> 
> diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
> index 977b428608..431d285b6e 100644
> --- a/docs/misc/arm/device-tree/booting.txt
> +++ b/docs/misc/arm/device-tree/booting.txt
> @@ -322,6 +322,17 @@ with the following properties:
>      Should be used together with scmi-smc-passthrough Xen command line
>      option.
>  
> +- v8r_el1_msa
> +
> +    A string property specifying whether, on Armv8-R aarch64 systems, a domain
> +    should use PMSAv8-64 (MPU) at EL1 or VMSAv8-64 (MMU) at EL1.
> +
> +    - "mmu"
> +    Enables VMSAv8-64 at EL1.
You should mention that it might not be supported by hardware though.

> +
> +    - "mpu"
> +    Enables PMSAv8-64 at EL1.
You should mention that mpu is a default.

> +
>  Under the "xen,domain" compatible node, one or more sub-nodes are present
>  for the DomU kernel and ramdisk.
>  
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.c
> index 4181c10538..41f538fb50 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -315,6 +315,7 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>      struct xen_domctl_createdomain *d_cfg = &bd->create_cfg;
>      unsigned int flags = bd->create_flags;
>      uint32_t val;
> +    const char *v8r_el1_msa;
>  
>      d_cfg->arch.gic_version = XEN_DOMCTL_CONFIG_GIC_NATIVE;
>      d_cfg->flags |= XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap;
> @@ -322,6 +323,30 @@ int __init arch_parse_dom0less_node(struct dt_device_node *node,
>      if ( domu_dt_sci_parse(node, d_cfg) )
>          panic("Error getting SCI configuration\n");
>  
> +    if (!dt_property_read_string(node, "v8r_el1_msa", &v8r_el1_msa))
> +    {
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +        if ( !strcmp(v8r_el1_msa, "mmu") )
> +        {
> +            if ( system_cpuinfo.mm64.msa_frac != MM64_MSA_FRAC_VMSA_SUPPORT )
> +                panic("Platform does not support VMSA at EL1 (v8r_el1_msa)\n");
> +            d_cfg->arch.v8r_el1_msa = MPU_EL1_VMSA;
> +        }
> +        else if ( !strcmp(v8r_el1_msa, "mpu") )
> +        {
> +            d_cfg->arch.v8r_el1_msa = MPU_EL1_PMSA;
> +            if ( !(flags & CDF_staticmem) || !(flags & CDF_directmap) )
> +                panic("PMSA is not valid for domain without static allocation"
> +                      " and direct map (v8r_el1_msa)\n");
> +        }
> +        else
> +            panic("Invalid device tree option for v8r_el1_msa\n");
> +#else
> +        panic("'v8r_el1_msa' property requires CONFIG_MPU and CONFIG_ARM_64 to "
> +              "be selected\n");
Please don't split printk messages

> +#endif
> +    }
> +
>      if ( !dt_property_read_u32(node, "nr_spis", &d_cfg->arch.nr_spis) )
>      {
>          int vpl011_virq = GUEST_VPL011_SPI;
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 2eca2b913d..fc4c7ae734 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -35,6 +35,18 @@
>  
>  DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
>  
> +/* If this domain should use PMSAv8-64 translation regime (MPU) at EL1. */
> +static inline bool is_mpu_domain(struct domain *d)
> +{
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
I think Ayan's request to make this property generic to avoid ifdefery makes
sense. There is a lot of #if/#else blocks. This property/variables would simply
have a single field for Arm32. Also, you could perhaps make it enum and then
protect VMSA option with Arm64.

> +    return d->arch.v8r_el1_msa == MPU_EL1_PMSA;
> +#elif defined(CONFIG_MPU)
> +    return true;
> +#else
> +    return false;
> +#endif
> +}
> +
>  static void do_idle(void)
>  {
>      unsigned int cpu = smp_processor_id();
> @@ -731,6 +743,10 @@ int arch_domain_create(struct domain *d,
>      if ( (rc = sci_domain_init(d, config)) != 0 )
>          goto fail;
>  
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +    d->arch.v8r_el1_msa = config->arch.v8r_el1_msa;
> +#endif
> +
>      return 0;
>  
>  fail:
> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h
> index 758ad807e4..1387adc0e9 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -29,6 +29,11 @@ enum domain_type {
>  #define is_64bit_domain(d) (0)
>  #endif
>  
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
I don't think it makes sense to protect macros. For me, it just results in
additional churn.

> +#define MPU_EL1_PMSA 0
> +#define MPU_EL1_VMSA 1
> +#endif
> +
>  /*
>   * Is the domain using the host memory layout?
>   *
> @@ -126,6 +131,10 @@ struct arch_domain
>      void *sci_data;
>  #endif
>  
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +    uint8_t v8r_el1_msa;
> +#endif
> +
>  }  __cacheline_aligned;
>  
>  struct arch_vcpu
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index cd563cf706..0ef445a273 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -355,6 +355,10 @@ struct xen_arch_domainconfig {
>      uint32_t clock_frequency;
>      /* IN */
>      uint8_t arm_sci_type;
> +#if defined(CONFIG_MPU) && defined(CONFIG_ARM_64)
> +    /* IN */
> +    uint8_t v8r_el1_msa;
> +#endif
>  };
>  #endif /* __XEN__ || __XEN_TOOLS__ */
>  

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 09:21:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 09:21:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233828.1537181 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrunP-0002j7-Hp; Mon, 16 Feb 2026 09:21:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233828.1537181; Mon, 16 Feb 2026 09:21: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 1vrunP-0002j0-Ez; Mon, 16 Feb 2026 09:21:35 +0000
Received: by outflank-mailman (input) for mailman id 1233828;
 Mon, 16 Feb 2026 09:21: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrunO-0002iu-UU
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 09:21:34 +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 e0b18583-0b18-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 10:21:30 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-43622089851so2708747f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 01:21:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac8d46sm26459061f8f.32.2026.02.16.01.21.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 01:21:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e0b18583-0b18-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771233690; x=1771838490; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=W81xnfpHRwoMBRiamvuCCJFZJB55LQeDPaRc8bvII1U=;
        b=ENc6pQ//TlTR1hvN/36Z+JNCgieWZPcKQ35RYF7+EVq0voOTuXFJbtuitM7eV0f8NM
         IiTAb8JoeMF32GRRvmySXWgZahWf5m/jy6TJUt4RnudduJ55PfpBx9Cgmur7x86Dfxr8
         4DIzO4VK18/ZMsuGdPSbBZeeT03FGnhCHQtydD/gfeYbmLl+GbPOMwLuDy4GMyOcx/7K
         T10NTtd7RXD9JZR/Iytn7E0S+uJNuHL8hVW8EePrmJXVdb37aPXnUiLeEjgnG/KOsC1G
         M0GqbKkPLx2vOJN+7yOMrm+HpVC8DKhdjWxaJq6UF3hAz0Lp6zU6NMjG2e0qQ5sjXSq0
         5R5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771233690; x=1771838490;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=W81xnfpHRwoMBRiamvuCCJFZJB55LQeDPaRc8bvII1U=;
        b=thiIm2r6tn34VjuXmBXf5M0ePSZJRngC3T6t7U2p/UR4h3Dv3QOdPa6Huiagh4lBah
         f8fWvqKVndXDgGgrvsQnQiVOgKAAiJGk+BBGx8bSfAaOmiH9P6GlWzOQqvrLG+chIptv
         Xim4+X7GLnghGii0Ln4p5cUpNh080sF1kycq6avSH+TE7+EL2E5xu4nYKJr62+DNPEYq
         +GgBCG1z8fxSAfgJen069NcaZfml62Fb9CW2l4kNiRxM02rvChltvbGlqfvXpXQDCvjf
         9rAp/zr9gmgfW+SOR83cNBq23onwNtCQvzIBuzH7aLOF9ShTEnRYd6iWh206qKO6vxmU
         yGkQ==
X-Forwarded-Encrypted: i=1; AJvYcCWQuSyghC5m6DoMaLRCvI0Qa1HwLuXSlMidVbEZdULTsD73uqNNbeBuLzrtc88LveA0WaxcQhU2RS4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzUW2lQHG6mrHvlOHxpBff4L6/WKOikWhqxms2ZgNftCmZRvlNE
	7o1CH8gu8rOkJBHIM0DDBqTT/TtQMel6wU1P0ZT7FYnijDpjsjfcvLzm07+rUcQlOw==
X-Gm-Gg: AZuq6aKmRJDrJ80j5fWvNVjA4ArZq+qmG+ard4pq+jL0qbTOFSpG8G7c8Oo1zFw3E23
	2S0SnZFykmhbPEtWSatwPSbRy/8GDrS3HYdTDTtDRixb5Imk2L9ecgfMk/cxyZlt/SmgYXRGO2H
	+lcxGp6Uu9YSgMaz7j1ZIIoFp4m8Sgwb481ne7IhSRocZtdVme/wqlM2FjzveQExkKbq3uqAkWp
	BmimkGaQ6kWL1PxD9QOr5DkJj6xgFvb16dx7agVU11BqNXNdio2oz1YVRC5nYQGpfH1gzIEOptn
	9UcUj7MED2cOR+NPWZOV7HSu/gfFlV4I+U1Qzo3YWlWXLnlYaSCmojvpak2CEe8+pngRozNCXmE
	p1tLfrURI8PwQ+hI0u10PAUiQyqoTEVFivjeTyPFCsPmVs/GhsZoq3FUlTw1H7psat7CFwvs9Yz
	QOsqt/SIN9usbk20boi4rC7ziP9LAYepir1ILKXMnYYBfBpWxuPJAsYmQ8NKp6fooweDBFuhi9n
	m9poOI54kdy9C4=
X-Received: by 2002:a05:6000:22c5:b0:437:69c0:9612 with SMTP id ffacd0b85a97d-437978c194cmr18068693f8f.13.1771233689712;
        Mon, 16 Feb 2026 01:21:29 -0800 (PST)
Message-ID: <3bbc408d-d16d-473e-81bf-6ea1f78290af@suse.com>
Date: Mon, 16 Feb 2026 10:21:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: smccc: Preserve argument types in v1.1 SMC
To: Bertrand Marquis <bertrand.marquis@arm.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>
References: <0e2ba0af683fa5e53a3d2b4b625703751cf7ce54.1771228001.git.bertrand.marquis@arm.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <0e2ba0af683fa5e53a3d2b4b625703751cf7ce54.1771228001.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.02.2026 08:47, Bertrand Marquis wrote:
> The SMCCC v1.1 inline helper currently forces a1-a4 into
> unsigned long and uses in/out constraints for r0-r3. In
> contrast, a5-a7 are passed with their original types via
> read-only constraints. On arm64 this means a 32-bit signed
> value in a1-a4 is converted to a 64-bit unsigned value, while
> the same value in a5-a7 keeps its signed 32-bit form. For
> example, a negative int in a2 is widened to unsigned long, but
> a negative int in a5 is passed as a 32-bit signed value, so the
> SMC sees different encodings depending on argument position.
> 
> Switch the helper to use typed input registers arg0-arg7
> derived from the call arguments (keeping a0 cast to u32) and
> separate output registers r0-r3. This preserves argument types
> consistently across all positions. Argument evaluation order
> is unchanged, so we do not reintroduce the issue fixed in
> "e00dc325bd9e" ("xen/arm: smccc-1.1: Handle function result as
> parameters").
> 
> This also aligns Xen's SMCCC parameter handling with Linux's type-
> preserving behavior (same externally visible argument handling,
> independent implementation) to avoid surprising differences
> between a1-a4 and a5-a7.
> 
> Current callers (PSCI, SCMI, platform SMC pass-through, OP-TEE,
> and exynos5) pass unsigned values; exynos5 passes an int CPU id
> which should always be > 0.

Reported-by: Andrew ?

> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/include/asm/smccc.h | 69 +++++++++++++-------------------
>  1 file changed, 27 insertions(+), 42 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
> index 441b3ab65dee..5b30dd57b69d 100644
> --- a/xen/arch/arm/include/asm/smccc.h
> +++ b/xen/arch/arm/include/asm/smccc.h
> @@ -99,87 +99,68 @@ struct arm_smccc_res {
>  #define __count_args(...)                               \
>      ___count_args(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1, 0)
>  
> -#define __constraint_write_0                        \
> -    "+r" (r0), "=&r" (r1), "=&r" (r2), "=&r" (r3)
> -#define __constraint_write_1                        \
> -    "+r" (r0), "+r" (r1), "=&r" (r2), "=&r" (r3)
> -#define __constraint_write_2                        \
> -    "+r" (r0), "+r" (r1), "+r" (r2), "=&r" (r3)
> -#define __constraint_write_3                        \
> -    "+r" (r0), "+r" (r1), "+r" (r2), "+r" (r3)
> -#define __constraint_write_4    __constraint_write_3
> -#define __constraint_write_5    __constraint_write_4
> -#define __constraint_write_6    __constraint_write_5
> -#define __constraint_write_7    __constraint_write_6
> -
> -#define __constraint_read_0
> -#define __constraint_read_1
> -#define __constraint_read_2
> -#define __constraint_read_3
> -#define __constraint_read_4 "r" (r4)
> -#define __constraint_read_5 __constraint_read_4, "r" (r5)
> -#define __constraint_read_6 __constraint_read_5, "r" (r6)
> -#define __constraint_read_7 __constraint_read_6, "r" (r7)
> +#define __constraint_read_0 "r" (arg0)
> +#define __constraint_read_1 __constraint_read_0, "r" (arg1)
> +#define __constraint_read_2 __constraint_read_1, "r" (arg2)
> +#define __constraint_read_3 __constraint_read_2, "r" (arg3)
> +#define __constraint_read_4 __constraint_read_3, "r" (arg4)
> +#define __constraint_read_5 __constraint_read_4, "r" (arg5)
> +#define __constraint_read_6 __constraint_read_5, "r" (arg6)
> +#define __constraint_read_7 __constraint_read_6, "r" (arg7)
>  
>  #define __declare_arg_0(a0, res)                            \
>      struct arm_smccc_res    *___res = (res);                \
> -    register unsigned long  r0 ASM_REG(0) = (uint32_t)(a0); \
> -    register unsigned long  r1 ASM_REG(1);                  \
> -    register unsigned long  r2 ASM_REG(2);                  \
> -    register unsigned long  r3 ASM_REG(3)
> +    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0)
>  
>  #define __declare_arg_1(a0, a1, res)                        \
>      typeof(a1) __a1 = (a1);                                 \
>      struct arm_smccc_res    *___res = (res);                \
> -    register unsigned long  r0 ASM_REG(0) = (uint32_t)(a0); \
> -    register unsigned long  r1 ASM_REG(1) = __a1;           \
> -    register unsigned long  r2 ASM_REG(2);                  \
> -    register unsigned long  r3 ASM_REG(3)
> +    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
> +    register typeof(a1)     arg1 ASM_REG(1) = __a1

Is it intentional that you switch to typeof() rather than directly going
to auto? This was it'll be more churn, aiui. And if deliberately going
only half a step, perhaps worth saying so in the description?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 09:27:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 09:27:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233839.1537192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrutV-0003S7-5Q; Mon, 16 Feb 2026 09:27:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233839.1537192; Mon, 16 Feb 2026 09: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 1vrutV-0003S0-29; Mon, 16 Feb 2026 09:27:53 +0000
Received: by outflank-mailman (input) for mailman id 1233839;
 Mon, 16 Feb 2026 09: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrutU-0003Rt-8p
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 09:27:52 +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 c3087fcb-0b19-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 10:27:50 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso12408545e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 01:27:50 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7e50casm426202565e9.8.2026.02.16.01.27.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 01:27:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3087fcb-0b19-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771234069; x=1771838869; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+ql+GIWMppTb8kZ0VgaFP+Z0n5TfZNDF/5RTtultxMs=;
        b=c1beRV5JF36i9ejossYljsC+ufVQWDRoFsgU7pDY5l+cU5jxzyJAU02AU0P2FTuJw1
         IYx8OgmPCBDayOOwdnMuZxFR15kSj0/AQiUViufep+mFbSBw9Q7smZ14IINvqzXCiOt3
         Fun8q+XqmyQW+Jf5E9L7aUPeUSWtcUFfAobLGuhRlhQIU2I77ePGRQ2XXMKFy1U/dbRK
         KUpuRcgvLO3uPkdrWggYsIHI1ymgnAPlvYXp0WRqCiL54+dAEljVxgpMRBeJHFSdGGci
         eJtfmwRvFxzEk/0NLUjb2gYoGgg1hB+NKhQxI8L4OXV7JUVmbHX7xBwf7AozJae08cSD
         zG0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771234069; x=1771838869;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+ql+GIWMppTb8kZ0VgaFP+Z0n5TfZNDF/5RTtultxMs=;
        b=DiPDuHJkjn129jPVaun3T160ViljOi4jNA8KWIardQmEkJyVV6SWM9yRhMH52Bk1Z1
         IC7+yV6SWJD+gjpzZG6V1S+GcJClcNyV889Qj7ZZvGDSvVyiYMClPX4afs3oTcu8bQRO
         Kmk+b9XUWv7a5fu6aiQJBAB5H08jb/CvOD9zgs0MBngQVLJHGGvdQHPv/NluuWBHIDJL
         cMSfgPRW33Nxk0kBLdaSMgQ8ddy/FBXohBBQ1EfOaRdavCnfUsmbi68UhyBHK92sITQW
         vmNrWZ7Jh15X0awTeICCUtMD19wQOUphGVcNHzImApreyGANClyiYvTvQcE/kDjh8HKn
         OdWQ==
X-Gm-Message-State: AOJu0YxdkdHrxwep98y2YOycCXNeQim38t0htlLxIy3Sshs5DTkFVtGk
	/Lnl7Tl1Jm++5hMwPbsPLGkGXYoZAxsHpQB3I5GhiqMMFFXUpCZ9HbiFdN9QNfC7LDsK0oHbzkF
	QGdY=
X-Gm-Gg: AZuq6aIrJNyzR09P9+w797jaF7PajTdHZfjykmiC4xHK9Gnbep2ASahdOQ0VKKQLLX0
	DioR7T7Xv9NgSusGZet0xmGqQbRrpYIFw/EcAFgzAazKrAc2LsxUrOcm7GlKqxS0Px/Ccoq5GW1
	eLK0P3emssR/0BqlQtKbKA9uMB8oBMiGX/aHqQ5Zg6VgOtoRhwwHWydhO9wEkBhCXnzyaCDbLVg
	tdgAtUTF4MSM7an18XZlB3vP2yMqHD7EnNShhvsXXGGiY54IFmiM93/0YV8thKAVSgZVhRDo5va
	7QW2xy+Nx0R8135g2n7mxgEfRp27ypZ3+L419WtcLQ+ZRWP7FEMgRSNPOTyxN56WAKdGNPIL9eD
	Z2wxEPrzlh8EvTn7PY1xEx6bywoUWImo9pAJ6CNfV4TOYnSX1btJPfLMy8409rXv3bbXZp9yAQH
	hCkiLNgMupEi3dKWjltPTS+idE8UYKzK6DMnJNzkVgIiQivDTQQZRCDY3Ha+d09TDBvZgBS36Ue
	4namTPsT8XTUGE=
X-Received: by 2002:a05:600c:3b10:b0:480:4b59:9327 with SMTP id 5b1f17b1804b1-4838c063f8emr6513745e9.1.1771234069451;
        Mon, 16 Feb 2026 01:27:49 -0800 (PST)
Message-ID: <b9d1eb04-6d67-44b8-8da4-7c7167340bd5@suse.com>
Date: Mon, 16 Feb 2026 10:27:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: Cannot boot PVH dom0 with big initrd
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
References: <aY6iVr990vWeO2p5@mail-itl>
 <440f94be-77c0-4b28-b107-6efc3623a92f@suse.com> <aY9Jt1-jCWhStcxB@Mac.lan>
 <aY-MPz-HpZVkmhob@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: <aY-MPz-HpZVkmhob@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 21:40, Roger Pau Monné wrote:
> @@ -336,14 +344,28 @@ unsigned long __init dom0_compute_nr_pages(
>  {
>      nodeid_t node;
>      unsigned long avail = 0, nr_pages, min_pages, max_pages, iommu_pages = 0;
> +    unsigned long init_images = 0;
>  
>      /* The ordering of operands is to work around a clang5 issue. */
>      if ( CONFIG_DOM0_MEM[0] && !dom0_mem_set )
>          parse_dom0_mem(CONFIG_DOM0_MEM);
>  
>      for_each_node_mask ( node, dom0_nodes )
> -        avail += avail_domheap_pages_region(node, 0, 0) +
> -                 initial_images_nrpages(node);
> +    {
> +        avail += avail_domheap_pages_region(node, 0, 0);
> +        init_images += initial_images_nrpages(node);
> +    }
> +
> +    if ( is_pv_domain(d) )
> +    {
> +        /*
> +         * For PV domains the initrd pages are directly assigned to the
> +         * guest, and hence the initrd size counts as free memory that can
> +         * be used by the domain.  Set to 0 to prevent further adjustments.
> +         */
> +        avail += init_images;
> +        init_images = 0;
> +    }

Just to mention: It's still only "may be directly assigned", because of the
PV32 special requirements.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 09:32:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 09:32:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233848.1537201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vruyE-0004ya-MS; Mon, 16 Feb 2026 09:32:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233848.1537201; Mon, 16 Feb 2026 09: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 1vruyE-0004yT-Ji; Mon, 16 Feb 2026 09:32:46 +0000
Received: by outflank-mailman (input) for mailman id 1233848;
 Mon, 16 Feb 2026 09:32: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=z2lT=AU=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vruyC-0004yN-NK
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 09:32: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 716cef69-0b1a-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 10:32:42 +0100 (CET)
Received: from AM6PR05CA0033.eurprd05.prod.outlook.com (2603:10a6:20b:2e::46)
 by AS2PR08MB9024.eurprd08.prod.outlook.com (2603:10a6:20b:5fe::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 09:32:33 +0000
Received: from AM3PEPF0000A792.eurprd04.prod.outlook.com
 (2603:10a6:20b:2e:cafe::ae) by AM6PR05CA0033.outlook.office365.com
 (2603:10a6:20b:2e::46) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend Transport; Mon,
 16 Feb 2026 09:32:31 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A792.mail.protection.outlook.com (10.167.16.121) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.12
 via Frontend Transport; Mon, 16 Feb 2026 09:32:33 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by GVXPR08MB11846.eurprd08.prod.outlook.com (2603:10a6:150:317::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 09:31:30 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 09:31: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: 716cef69-0b1a-11f1-b163-2bf370ae4941
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=fCEPFP+uJxGu8dbj01ZEBRNrugbE9Rq0rM6wAMFJ8du3WX/bLAJzMfIPBTYdkdcq9VDRsK0jdQd++ESGBgjSwUVprs1eqk8FtkF2hfxnumqmbzuYnlEuScnW6B2P/iPczwEXq/CwfkHneWcbdvFHz+W1NbhS+B+Gi++rsdzJqh1+qQtHUfRlpLeYOhw0pZJVyjaWDPqhXCqkcyHli9te5RviFn6+S/pOPfROXu7WyY8WeaIxeFYl1OwdKF90X2fs24FEqAC6pKD9KnDrNdmlVKWsM0xd2vcPYCnsOtO6lQVcYvUAMfnMw4sz5nsVpD7TefAP6pOlJHMQpGCS/B58Eg==
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=uTj+yGqPL4YmlAbDtOeqjY6tDvYVS0U3TrbXDjHDUMo=;
 b=d5z1vZplWmxt54yHkMnUOEO/uYDykGO5Hvbjhy4OqozhmPepDYLk8WRACCuMsBrvAL9kby/y+8WO6MCNbyVzISdBMzENIdTLrTKfrhEJziIc2wOEm3aLlMv8yYhUItYAAeB9CAQCkcN/ik8RN8DZ3LP0HMDTim9A7ZgEEJwzKNuIaPgfjdSPKYk4jCiZiKHevZnNSLrwap6GMyTUNEhg8Dptg+tGx0Iw/6lLR9OqH3R3795eKjNC0zN/qXmhJ+vnBnd99tib01O9uxWMQrmCKAZr8tyXEN9VRaPm2D/7RhHBbBw3ZedzszY7nlTPAYMEz0r6AnBKwfNTuQ0g49O3aw==
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=uTj+yGqPL4YmlAbDtOeqjY6tDvYVS0U3TrbXDjHDUMo=;
 b=jWSs4LMwH9kJVuNv5QtOUlZoQYCdHvs9Aq7NuW2QjPu1Sl+xpfZ2rdPgMQVMm+2PjQrH3Z6aOFtkjtJpTS4RE4M5PrheGUMsHYiiR3ElHV3iM6PkdpyWFgVgsivb2rhcIUN+/lC0BTsruoVMaK0mKfuX3TDLTTcwXQRmxrASDg8=
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=uSIJ8MyTey4dJsOBJ+19MtOlrCbYeh0GgbeT8sMSj2AzZomUw391Vd3Mm/kXWTlDvdPrwkEACmmeq/cD/TE8+80TPq6gDlk2jhCAh3ysXFRgnxUzLsKnmt5OvEKAcqH3tkqpWHZql0USr84GsyQh7FFA66dXkDnXvsYFSnQvo6Nhfa1gAxZGVpU600zls9KKGs6MvdDGSIPDdZsqmSkUcNrsdijNFVOo49rOyDaC9JPjfIE+v7J+f0zCZVIKRS96cOlTPhzpuEF7XH6FDc6xdSQ1yWJG2kdUIVgWnln8P2JFZO7Y1sGe+DNjgdWTWVd/JyL4Hq0NVSDyuRWf6aBbYw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uTj+yGqPL4YmlAbDtOeqjY6tDvYVS0U3TrbXDjHDUMo=;
 b=kOZ5yj2KtH/Oj2ttCDaB8+7oRYB+c0V9mt2TxYDFc5TTsZBMllXhMmyO8U8OFUbkyrg5F6b5DcbsxKrRgeSAeWu8wf1r21ePaZSqQhEzW4aTz3QFA9Uu5BuQpfz1zwhbqbWS+f11zgLwJasB6UQTqo2VGLMeRhg7IoXimSdexvv4hTB1R/DHtd7jaorBr3v2De2tCt6lkYi8viRJzWtrHsvVVEHiDHTCby9m/jLneKWwe3wulWb3AAmF3//HKT+PzyeAcsVyPgsN/kQy/8rDNk+kdNc9gkatRnQlCo+jJHxouqYKhkfFaom+Iw326i+FrKbuHJ+RAIponH0qjYJ1fg==
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=uTj+yGqPL4YmlAbDtOeqjY6tDvYVS0U3TrbXDjHDUMo=;
 b=jWSs4LMwH9kJVuNv5QtOUlZoQYCdHvs9Aq7NuW2QjPu1Sl+xpfZ2rdPgMQVMm+2PjQrH3Z6aOFtkjtJpTS4RE4M5PrheGUMsHYiiR3ElHV3iM6PkdpyWFgVgsivb2rhcIUN+/lC0BTsruoVMaK0mKfuX3TDLTTcwXQRmxrASDg8=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Michal Orzel <michal.orzel@amd.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] xen/arm: smccc: Preserve argument types in v1.1 SMC
Thread-Topic: [PATCH] xen/arm: smccc: Preserve argument types in v1.1 SMC
Thread-Index: AQHcnxiN7299tnoecUy3OIetO+v/gLWFDRSAgAACvYA=
Date: Mon, 16 Feb 2026 09:31:29 +0000
Message-ID: <D54AC574-88E9-477B-B355-375F4B1CE787@arm.com>
References:
 <0e2ba0af683fa5e53a3d2b4b625703751cf7ce54.1771228001.git.bertrand.marquis@arm.com>
 <3bbc408d-d16d-473e-81bf-6ea1f78290af@suse.com>
In-Reply-To: <3bbc408d-d16d-473e-81bf-6ea1f78290af@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|GVXPR08MB11846:EE_|AM3PEPF0000A792:EE_|AS2PR08MB9024:EE_
X-MS-Office365-Filtering-Correlation-Id: a6670964-5c70-4498-1d43-08de6d3e5006
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?us-ascii?Q?h+N2xWUXIuyrC1YF16B2VpxDySlk9XF4HaV3YspmvecHCsiZ9Qkq4iwsug6A?=
 =?us-ascii?Q?yebiql8LgFofshydDrnvopkHiQzX5BI49fO0T6acAmR9zeTKX2yB/KuQ24M6?=
 =?us-ascii?Q?gKrPUDIuY7QLhuFTVLAfHqXuycDe5AvvhOnDGGROquxRY8khboZaSfMd50f0?=
 =?us-ascii?Q?PUPEaltOF+m3ex6A2kBGOuW5uIlVh2SS4TkxVPP6VDalmludK6G7gfLYRNFy?=
 =?us-ascii?Q?xd+yuusPL2a1XJ1hCFCQSaew7/IuMB6D5wASHUyG8bXECLVGf4NV55yM8lNl?=
 =?us-ascii?Q?6T3Vv/Rj9PJ1quMoFkK1ch5jy/YhGdQIqadjbv+sKAhoPhgYfAfp9NBlbrS2?=
 =?us-ascii?Q?DSS/fzjkY8yL7MpJ7W4VHdGrB0AD1KXotoyWg34nK26EQBws0z1WPnuwhUKm?=
 =?us-ascii?Q?cT/BVm2eGyYwsJRcSyrTAYvfBxQ08gKgsePzmPmIUnQ8jBqJ99dbDv2aZ42o?=
 =?us-ascii?Q?azjGLaKrm8Fpz59gfaWmfuEop8241aByz8v6CThdohJ5NhW70WQswvNOuhrs?=
 =?us-ascii?Q?dh1766xMKxCDz5F2DkgjUTuKTm5dI9Vrvql5vMdQo+uI4962gSD6rMs09P3z?=
 =?us-ascii?Q?yangYQbLQuYBEZ3GHJ77iB1zR6nDKWlvt8MSgeU94YewBprncEWhvuiY5xL3?=
 =?us-ascii?Q?X26l6EDGklzeGWrRJkUApMvE6NU0ET+36IofXh09gy52KIjKvzYjbFPFiLKE?=
 =?us-ascii?Q?XPmuDyT1fQ3vkwSePGJWTAhuuRffSgA7l3Jp9c9R+wjjxL9qDY+GsgOukIVI?=
 =?us-ascii?Q?OGYjQTNfhL/WgodPhGn/e/qfcX54CVNPfA4mTOzWmTySUZjVLkFWqK5i8A31?=
 =?us-ascii?Q?tmBHrdoL1qgrV+j11VzV5k4XOW9CnozaYWvarE+2kiJm0keA2Zs+UYYDMFcx?=
 =?us-ascii?Q?0ZEb/z+6+lwi8fiheGGl+jTxByX+NO0BXKmhCsbdr6PYOqemv6JrzPKPW6Nk?=
 =?us-ascii?Q?u6V3WfdDNvL7Zd+m09vw9rfy6hE1OLvJWaPaWsLhPgRdSpVS0r5hmUgRgNxz?=
 =?us-ascii?Q?gqPgFNt+8TIkfOF6bmA/MfvptzRG6cwd5mMnENCmClhomwf+c7+HLIc5tbV4?=
 =?us-ascii?Q?SYW9eyezwT8bJrD77Z2RRIA3+B2dw/1xWwKi+8v9iPkUgUJ18cVd6uNWFGwE?=
 =?us-ascii?Q?eQx5ryFZXYncbymz1+rPpi6s8/u6rCbBLxKDzz4UAch6BCtPeWqWzDHtldmf?=
 =?us-ascii?Q?6oCQLCTc9Ki/+hQyuGFFoWYY/6jW0UoiwsUl1XOrlJ5jozWWJSWLcyiZD5BY?=
 =?us-ascii?Q?1n6kSjx/NkxUfeygpxH9Xim/IqwNWiyuBkifQuqHIgE5nvbz99X9UeGHhz0v?=
 =?us-ascii?Q?ShnrXBeLULwAFVKClUFtHSJKNiXeuoDkL2+Rai7If7jkWgr9/0w/8RyGdh4c?=
 =?us-ascii?Q?cM2qk43qHC/Z4VYjjtZMBxdl/uKJ92BiZcNQS2eaf6HrGu02BWhHOpBnUbzT?=
 =?us-ascii?Q?TGRWR1L4hRdsj3loK/7K81DyiFfWLBUmrtPNq5SXUnkq5qcmNBrzJKMnX+JP?=
 =?us-ascii?Q?/MckkKUsMtNtCtPQEjjam4/jOeMyQIcZ5Bg1Yfx0rE4W2BqvKo+ngUT7CU8v?=
 =?us-ascii?Q?lDEPUm1ApAsTOcFhkxKrfsnJMW+hr5L26Fx8VTczaWiz0BRq+u+WUuFqQ7wO?=
 =?us-ascii?Q?7O7Pte5/bGBGS0qanH7b3G8=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="us-ascii"
Content-ID: <35C16E0401DC084AAFC9C012DB79A050@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB11846
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A792.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	3c9f53aa-10cd-4943-e046-08de6d3e2a36
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|35042699022|36860700013|14060799003|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?xnQyMw2fDYEG/Ag5ukekmoxUkeRpoeSPXpTegWHeINFkMXgMquDgmEViFpZa?=
 =?us-ascii?Q?UMFqP7tz1ICulredpcMmkzTAMAjEn6ZSX6Lzw64vOX9aADMSOc86MBc1uYzz?=
 =?us-ascii?Q?2/scDhEiUEM+OfqycLgAbT4azJq2cCleyf/71/Sma7iXbM1hNIbonE9B1ZGb?=
 =?us-ascii?Q?gFslUpyKnA8X26ATPh8bqMtu8abi1Lxf6NAqa81GM9+20WknwFIV183mij1I?=
 =?us-ascii?Q?QuflbKfQiWwGiH5ZLeQfQ/o/cEqTZwaOzv2ne6/soKESJykNQSG8IqvWlyzZ?=
 =?us-ascii?Q?ELzUP+SkfWcx2L/D8DkF3valRPwkxEVP+3V3tfeM5+uN1osDYYoir7I7bzB2?=
 =?us-ascii?Q?f0ezjrpOR8XBegtRr1PRFqlEXmkas7aXUOr60IWE4snPElixjTdZNYzzTwST?=
 =?us-ascii?Q?Gvqv7ggkqh+q/6YXvMz+e7O2GTf8WDi3iLyNgnJOva+R5QYUlQ08sTxmrmo0?=
 =?us-ascii?Q?1txi4Qzs152OuYMW/QmjoZU3GKZhJUs5nTY20C/HhJzJriZxnDnbm974pHgQ?=
 =?us-ascii?Q?eppdMXXi48WvxT0LltQy37CkpR69DnvSjoIbqRtqhD1ByWldERmf7KHN5u1V?=
 =?us-ascii?Q?eLk5YbcM3W48Qphr3zlqgqXK02zMRbwzQG3v2s7KnWEBX5QfK9ahZRo/cHyj?=
 =?us-ascii?Q?Fx24mpq3M1rrz088ca/NuFuhkPjMK5FgJ5Cj5j1kUQLPUs0ljzP+SLjqz+KX?=
 =?us-ascii?Q?SmBG4fLNx1ZP2SGAldV5htt40qMwIwZqpa1AXlsj8g4T3rfUhajz7KIRzaLd?=
 =?us-ascii?Q?+pSLGDij4dy/5XjUkrIccUkzjaRpoPeTVzzda8aVAqpbDy+id5a7sJok/YUV?=
 =?us-ascii?Q?L7ZIRWa5hM84wa9vjS4nRj7d7Wib+4PANWAP7cMpjS8Sj7tcAvAmLINUAoc9?=
 =?us-ascii?Q?bybC92eZzCOB8+qtddvAYAv/rFsBxVuVNUMHZ2UZklcv+nCYv6bSv/HHljmz?=
 =?us-ascii?Q?p06NFBZv3ALu6mHyUrheA9hITrPQsoK5qlJYdjxdDnfculKrhc6CY4yNBQ6I?=
 =?us-ascii?Q?0uhSHmhus+doYdAvuev04lrzQCmrnqIS/0LoIZRrfF5i+gqOYMjQD16sDb0f?=
 =?us-ascii?Q?s1chYUGux4Yx037uSp07a33LHE4XlBqYFX+NggUxj1KoJsoo22apgE27n2Wx?=
 =?us-ascii?Q?jJ6+P/hyp+/q2w1rR6LxPKHk7Db3gcDi6uQxlsjm5ibk0Y71nm4MsygLimTi?=
 =?us-ascii?Q?0Q89pCIzmkdt97g5apj94x+KZli5nJ/RAqAu6hDMRdhZdd5gWkBymh0SbGhH?=
 =?us-ascii?Q?gKqPAk2QOWQu3nP1YOn7ACjLqHFMfDaVkykQjy1xXhJc20M3E2zJ5dbUoB6e?=
 =?us-ascii?Q?FSzwByyq6k09X2q0QhUz81IJ/GE8LOKjPaR9wvRD26xj5rDKVkqVpfPmNKw0?=
 =?us-ascii?Q?TyrPj/QEN4JJwJbox/SxKXRgaTVU3UB9kB+cTkwyooyxuGLj2O+lK7WtAS02?=
 =?us-ascii?Q?aEGsj/YoR7uW8TFjlSo46JHJfKaFnBhIjATdpTujUTcU40y31NOzcmz4uNE0?=
 =?us-ascii?Q?6SQSxfREsuh0hRz0JbdUfm+PQYxceQGaVZp0hrNnCvDqmugMuoARjUEUw4+E?=
 =?us-ascii?Q?Ljnr9sfsQbw2IlTDupCgMiJziFrrreAAkP0Dwwe5yv4QNh/uc0y/tIO1DTok?=
 =?us-ascii?Q?vSJ5MOn8WKZoI6AZ9QxCnjEAEFcy3AOCZ9X45sFYnlbeU+26Ckoydn6N1nwa?=
 =?us-ascii?Q?ZvPLMg=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)(376014)(35042699022)(36860700013)(14060799003)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ssAQTnmYMznKWSekvwBEVhembZgc58lYcw4TrSE65QxxuOhxNtQBQFpbClIbqG7cM/1EJVHpjzuamdG+/lVVycUqNn1z3mKrpWQ0sr8i9tYSVeRBKRO6hhNq1l/v1PqOXHyMw+wJ0MPd0NPo49Ry2AOQqTx9hwqkvUEhXiSazkrv4My1+O/YfJHazw6xary6l68fyHJgVyVCH9sz84uuhNbS4sTKLvnb8dsh1pQA7WjiJQYodQWtbFE0ptsHbQSIu+uTyD4YVGt3hRMKrlVrtTi9OiYWGzlNeiO27MCkkR0gvcNX/9ZbE/XAqYaI/WN1b5UyuaPClMmsuAamOABn+IbZsYguTYFkhNvHOk62BH51Y+VPoNVah2xAUYfQaam4a4xj09BeNoiBbzrgIoWB2PubwnJmRnDDNgc+ETVsIISp5TMAY8deClGy4Z1uQvRY
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 09:32:33.0171
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a6670964-5c70-4498-1d43-08de6d3e5006
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:
	AM3PEPF0000A792.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9024

Hi Jan,

> On 16 Feb 2026, at 10:21, Jan Beulich <jbeulich@suse.com> wrote:
>=20
> On 16.02.2026 08:47, Bertrand Marquis wrote:
>> The SMCCC v1.1 inline helper currently forces a1-a4 into
>> unsigned long and uses in/out constraints for r0-r3. In
>> contrast, a5-a7 are passed with their original types via
>> read-only constraints. On arm64 this means a 32-bit signed
>> value in a1-a4 is converted to a 64-bit unsigned value, while
>> the same value in a5-a7 keeps its signed 32-bit form. For
>> example, a negative int in a2 is widened to unsigned long, but
>> a negative int in a5 is passed as a 32-bit signed value, so the
>> SMC sees different encodings depending on argument position.
>>=20
>> Switch the helper to use typed input registers arg0-arg7
>> derived from the call arguments (keeping a0 cast to u32) and
>> separate output registers r0-r3. This preserves argument types
>> consistently across all positions. Argument evaluation order
>> is unchanged, so we do not reintroduce the issue fixed in
>> "e00dc325bd9e" ("xen/arm: smccc-1.1: Handle function result as
>> parameters").
>>=20
>> This also aligns Xen's SMCCC parameter handling with Linux's type-
>> preserving behavior (same externally visible argument handling,
>> independent implementation) to avoid surprising differences
>> between a1-a4 and a5-a7.
>>=20
>> Current callers (PSCI, SCMI, platform SMC pass-through, OP-TEE,
>> and exynos5) pass unsigned values; exynos5 passes an int CPU id
>> which should always be > 0.
>=20
> Reported-by: Andrew ?

Ack, sorry forgot that.

>=20
>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>> ---
>> xen/arch/arm/include/asm/smccc.h | 69 +++++++++++++-------------------
>> 1 file changed, 27 insertions(+), 42 deletions(-)
>>=20
>> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm=
/smccc.h
>> index 441b3ab65dee..5b30dd57b69d 100644
>> --- a/xen/arch/arm/include/asm/smccc.h
>> +++ b/xen/arch/arm/include/asm/smccc.h
>> @@ -99,87 +99,68 @@ struct arm_smccc_res {
>> #define __count_args(...)                               \
>>     ___count_args(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1, 0)
>>=20
>> -#define __constraint_write_0                        \
>> -    "+r" (r0), "=3D&r" (r1), "=3D&r" (r2), "=3D&r" (r3)
>> -#define __constraint_write_1                        \
>> -    "+r" (r0), "+r" (r1), "=3D&r" (r2), "=3D&r" (r3)
>> -#define __constraint_write_2                        \
>> -    "+r" (r0), "+r" (r1), "+r" (r2), "=3D&r" (r3)
>> -#define __constraint_write_3                        \
>> -    "+r" (r0), "+r" (r1), "+r" (r2), "+r" (r3)
>> -#define __constraint_write_4    __constraint_write_3
>> -#define __constraint_write_5    __constraint_write_4
>> -#define __constraint_write_6    __constraint_write_5
>> -#define __constraint_write_7    __constraint_write_6
>> -
>> -#define __constraint_read_0
>> -#define __constraint_read_1
>> -#define __constraint_read_2
>> -#define __constraint_read_3
>> -#define __constraint_read_4 "r" (r4)
>> -#define __constraint_read_5 __constraint_read_4, "r" (r5)
>> -#define __constraint_read_6 __constraint_read_5, "r" (r6)
>> -#define __constraint_read_7 __constraint_read_6, "r" (r7)
>> +#define __constraint_read_0 "r" (arg0)
>> +#define __constraint_read_1 __constraint_read_0, "r" (arg1)
>> +#define __constraint_read_2 __constraint_read_1, "r" (arg2)
>> +#define __constraint_read_3 __constraint_read_2, "r" (arg3)
>> +#define __constraint_read_4 __constraint_read_3, "r" (arg4)
>> +#define __constraint_read_5 __constraint_read_4, "r" (arg5)
>> +#define __constraint_read_6 __constraint_read_5, "r" (arg6)
>> +#define __constraint_read_7 __constraint_read_6, "r" (arg7)
>>=20
>> #define __declare_arg_0(a0, res)                            \
>>     struct arm_smccc_res    *___res =3D (res);                \
>> -    register unsigned long  r0 ASM_REG(0) =3D (uint32_t)(a0); \
>> -    register unsigned long  r1 ASM_REG(1);                  \
>> -    register unsigned long  r2 ASM_REG(2);                  \
>> -    register unsigned long  r3 ASM_REG(3)
>> +    register unsigned long  arg0 ASM_REG(0) =3D (uint32_t)(a0)
>>=20
>> #define __declare_arg_1(a0, a1, res)                        \
>>     typeof(a1) __a1 =3D (a1);                                 \
>>     struct arm_smccc_res    *___res =3D (res);                \
>> -    register unsigned long  r0 ASM_REG(0) =3D (uint32_t)(a0); \
>> -    register unsigned long  r1 ASM_REG(1) =3D __a1;           \
>> -    register unsigned long  r2 ASM_REG(2);                  \
>> -    register unsigned long  r3 ASM_REG(3)
>> +    register unsigned long  arg0 ASM_REG(0) =3D (uint32_t)(a0);\
>> +    register typeof(a1)     arg1 ASM_REG(1) =3D __a1
>=20
> Is it intentional that you switch to typeof() rather than directly going
> to auto? This was it'll be more churn, aiui. And if deliberately going
> only half a step, perhaps worth saying so in the description?
>=20

Yes it is because Andrew wants to rebase his serie on top of this
patch.

Cheers
Bertrand

> Jan




From xen-devel-bounces@lists.xenproject.org Mon Feb 16 09:55:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 09:55:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233859.1537212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvJQ-00087k-GI; Mon, 16 Feb 2026 09:54:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233859.1537212; Mon, 16 Feb 2026 09:54: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 1vrvJQ-00087d-D2; Mon, 16 Feb 2026 09:54:40 +0000
Received: by outflank-mailman (input) for mailman id 1233859;
 Mon, 16 Feb 2026 09:54: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=nRIP=AU=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vrvJO-00087X-Vv
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 09:54:38 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7fc1373b-0b1d-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 10:54:36 +0100 (CET)
Received: from BN9PR03CA0341.namprd03.prod.outlook.com (2603:10b6:408:f6::16)
 by SA3PR12MB7808.namprd12.prod.outlook.com (2603:10b6:806:31b::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 09:54:31 +0000
Received: from BN3PEPF0000B078.namprd04.prod.outlook.com
 (2603:10b6:408:f6:cafe::3a) by BN9PR03CA0341.outlook.office365.com
 (2603:10b6:408:f6::16) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend Transport; Mon,
 16 Feb 2026 09:54:31 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN3PEPF0000B078.mail.protection.outlook.com (10.167.243.123) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 16 Feb 2026 09:54:31 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 03:54:30 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 16 Feb 2026 03:54:29 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fc1373b-0b1d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=QhrVsrbzPN6VzzY00gbKSM51GzSxy7JTHm3fxbCN4SxsVUmCGRg64dLsmel0UWU4dEKreNQWz0Fe6g0LuCYmDpz8M1y/GXrEK92/NnKjuknUYHkb3VXBl4vXH6/Si/CSCWp7Bk5U0+lNYouT7B2Lk/e6uFUwSt7ETpNi7PfMKlTig9HXdTYRe3tqFbyOO+g3pg1TFZznQtb+P1umUn3o8f3tUj1dIoaa6S7NXS5k5gsLnSvD8gzItvO8sFREfmWq/YovnbH0KsqjjdlvsPpPOgMEFe2MKGN/AGibNnZA0KZKrqdbr1KMJOQqDUqxq4UZRfQzAlbF87JLPyvXPDxPkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MOEkKY7O4kDty90WtlMhZOeCTuXBczRlaaEvEXF0fcs=;
 b=keWrcTBqXRu4nMORemDAXaIBJMoOiiVjRNkAPEywCZxufwg2iX/8b9vMu5H6vBwtZkAup62MXKTRoP/QTVNIeiMPTvIuIrVc39W65GNtnhBDh/dKRjkjA6Rfka+1sNVX7N5gy4aiID/UAFlUp3rKaApoSi+C0ufmgKs787fZlGsp220BxDQAA1t+dvTrwOiAmRIpP2tYIkQEZwAFLE9wkvo8OFiJbCpklLA3BTyHJL2coTlePKIgXJirJRY7RB9gsyWCC4IMCUyf+6Up8B5h1QfG6zCuA3tnR346fMQzjMP09nW3TVCsa8Ll11wgOVrp5lken5TqJrT4Q8xH24QgBg==
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=MOEkKY7O4kDty90WtlMhZOeCTuXBczRlaaEvEXF0fcs=;
 b=RAOYxX7KeBNPvghe2EaJCSC2WhBN+ol0QuKxQpHcdjEdbWNQgSSyXNIoVA+BKxMD8ij3PFFO81sQPVwHbsfvVvwSFHByn1V7xBzl7GyznQxJVH349MlrSwUttgee1FefRMozURcWcrxdwBjz7sL/QuI5VPxltyYtihPvsbpjet8=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <25d4cf76-a71a-481c-8278-db400e4ae5d0@amd.com>
Date: Mon, 16 Feb 2026 10:54:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/3] arm/mpu: Implement p2m tables
To: Harry Ramsey <harry.ramsey@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: <20260206090155.68466-1-harry.ramsey@arm.com>
 <20260206090155.68466-4-harry.ramsey@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260206090155.68466-4-harry.ramsey@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN3PEPF0000B078:EE_|SA3PR12MB7808:EE_
X-MS-Office365-Filtering-Correlation-Id: 8349255f-e68c-4ffb-6a65-08de6d4161bb
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?VGluWUtTZk0vWDVscWdKSFVLYm92ampQcnYwU2ZVVm8xTGlpWkh6K1VkdWtm?=
 =?utf-8?B?WVlwNU9SL2hXWjVMSHpIOUJIQzZuT3ROazRGRWxwQ3lYQjFRM2JZY3grVnZy?=
 =?utf-8?B?cEhDd1ZQekFUb1lsVDNIWUpORWptaTF2NXB1d3lQSjJ5SWw5V3Jlc3ovMUFZ?=
 =?utf-8?B?Wk9QMFlFbzFZb1dYRjRjZXZ4TUYyU1pOblVLMFM4eWZGYy9qeDJtcWtvWCtW?=
 =?utf-8?B?R0h6L0V1QkVjVnl6bEFMWVdvckN4cmNCTUNyMk9lU0xsalhNWThEeEl1cHZ3?=
 =?utf-8?B?TW5SaE40SFlDMmJHVUJzWHowOVZOQ3h3MlJ6cTQvODUzREFTSWJ1QnRFbjJj?=
 =?utf-8?B?WFRBT3R3bjh6STI0c0lWOWNKZGQ3NnJuTXlaWjVFdU5HZFh1YVlPMVNTcmVj?=
 =?utf-8?B?cVdYdkg3a3FteEJKb2RSSHh2d2xvOWI5ZGZxak1aU2tFajJWcXc1OXBJenVx?=
 =?utf-8?B?VnBUTEZGdzR1dUIvTjM5eUNCS1F5dlpWZGdmTEJ4TmVSSkErWStJNnV4ME5B?=
 =?utf-8?B?V3NUcjJla1ZmUnhRK0Vtblhhc1JwRjNmVWo5a0dJYmx2RURLem15dmtid05j?=
 =?utf-8?B?MGk4b3NFUENlcTZyMDZwN2x3KytBUXJ3WGJEN0dvRldNMUtNSG1UdTEraXdP?=
 =?utf-8?B?NlZQTTk0NmxtNGR0eGtiYjZpNENJUWhHZ2l1VTQyb2k2Ykhmc0c0WGQrRFpv?=
 =?utf-8?B?UDNoT1BWRnp1NWxhZzZjMFprRkpPTmM4RnBIVjViQm5vODFacFlmVTc5YkdQ?=
 =?utf-8?B?Y0pGRTVoNG5oMWlCZC9XYlhRTlNkV3RFUndzSGJnZHBaY1JKa3ZrSkhpem9T?=
 =?utf-8?B?ZDlGUHJNRDcwZEZxK1g5UDhBekcxQ3dPc2lQcHVwN2hSZTA1d0Y3dDlQV2xK?=
 =?utf-8?B?aEZoV0RGN1hIN2hmSGhOZ3JKc1FyK29mTWtsdCszMm0wZUF1bjY0MnZwSFp6?=
 =?utf-8?B?TTB0M2VFSHNJdE81Y3NUajM4dEhnaDFkVnRCV0VISm51Z25Wc0pWNkNPd3oz?=
 =?utf-8?B?MjVERU5DRWRXZUZqQ2Q2c3ViOEFIOTFWMVczQmNtSW5SdEdGbWFHSDZOTExz?=
 =?utf-8?B?UkJpZ2srK3c5TXI5S2wzQVRXN2NnSEtoWHRhV3VNSVFIaVBMdGJaRGJUNjlJ?=
 =?utf-8?B?dFlmaE9xMlFPUXVDQUZxWUZYMVluV0ZiRDJWRUNWR0hScEhEUDZyZHJDWEt6?=
 =?utf-8?B?WXdoWWE3bVVKanpZTE05U09qSjg0M2FSczRwR0ZWYkdoL0FtRnFhbDVQMDNu?=
 =?utf-8?B?d1V4dlN3VHBxUWtEaHIzZ1ZpUlZGSStPWGRkUStkNXErc05NR0VOcHdGa25Z?=
 =?utf-8?B?U1h5VHZaOWRrQ3pjWUVTZUdIL0JqbHRUdzJPVWxKc211UTBUSHMrbmVXa1RX?=
 =?utf-8?B?NVRBN3lwSkhxb0VTTDB2L2RZTmJDWXJKN3VaZ1E0M2FES2VFU0hpekxqcXZj?=
 =?utf-8?B?eTcwbmRhMUtuK0NoMkVBK2F3NHE5WENENW9jbHF6VjM5MmptQnlRM1NmK0Y5?=
 =?utf-8?B?T2cvczF3S1FwdFlSNm9sVXVMc3VsQ0FzVTY4WUpNMkxQSjMwUFU4d0c2elFL?=
 =?utf-8?B?WjNFUkg3NHNSNkpPQ21vTWlsUzNUb1ZqVVUwditNbmVwQkVoeDFDVFJ5K2k4?=
 =?utf-8?B?U014YnVaR1U1czl6TkRhTEcrNXdyVElrMWErSUFta2pCM2VkOU0yYmhjUFNP?=
 =?utf-8?B?eWR4dHdsYnp1dUdPekpVUW1idi8wblBmWkRDK1ZJNFNQcWhMQmNUVUh3YXZD?=
 =?utf-8?B?R1M2NnhodlpMK1FmbTFESEVsS2NoZS8yeXBrSnYxSzZ1NTdWc1pSVkUvTmV3?=
 =?utf-8?B?cythQ2N1R1NiSzE1c2dNakRoSGtiblhwSWRJNm5zQmU1STFqRnBaanVXSFNW?=
 =?utf-8?B?NmJtOEFwRzA1Wk9vd0h0RVJ2RVJwRXFzRGZGMkVKbElsdm9jT1hxUjlrVXBN?=
 =?utf-8?B?ek50dzhOQjJzNXN6aFlvaE5FQWlMSmdwTy94K3RyTHIxeU5LMWdDWWJZNGdK?=
 =?utf-8?B?ckVsTS8vOFNxRkZsOWNISjE5YzE0eFRFbjFKUXBOdFBUK2dVMVRLSVR1M0VO?=
 =?utf-8?B?UTk3bW5aYzcycnFJVHRBYXRmbVRPb2xmckVoSTYyNElCOWlZT0thR2FXcW5B?=
 =?utf-8?B?SzJZL01qbms0Y1Btd0FscFJGTnBRc0srRlhEYmNVSFBoMjhJYlEvRHQ3Qm9j?=
 =?utf-8?B?ZmNaaHRZTHBLc2ZselpIUnlRa1kyMUpodnVUYk1RMXNiejlwbDVsN3pJWWtU?=
 =?utf-8?B?elozNFR3TnRQcldkd1ZoRmd0VHlBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	vFJfX9kkr2vmHgYuNjrqY9avieSjuWzLZEsXXm3FNd9KuUsSCu5axOzCKmK8jG+FonxGArtAcDa0tZ8YoAJWLiD0/zfcDtQElFoq9v97Trve2m857sW7ZpcAL5meaF06EFoHSAlZEwhGfRLTYOV4I1iTzuQLOq0uKLLHDLScBVhpJT6cfBlvy8nk7hrJiCL4oONRvJZpOjem+WXta6eMC7aK54Jg36r0vJlG730o6wkDy9K/v3SMmNfXTgZgHw9oHaAdng0VbKg6J7Lza76SXVyE7cX9FA/2ebvmvzWafxEeD8I4cYdV9DJsVuVsM2VGMRZwOdxB1QrWQ132Z6PHv9eDAC0EJN3nnpl+cADSwPlWSEmBib8gOUlcasTPldNA4j1Pp9RUG/rLgeCjys9JX7ugF+ZkknU9FDThI6JJUKfEOKnn6vpw9PelxOS9dEo9
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 09:54:31.2740
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8349255f-e68c-4ffb-6a65-08de6d4161bb
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN3PEPF0000B078.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7808



On 06/02/2026 10:01, Harry Ramsey wrote:
> Implement `p2m_alloc_table`, `p2m_init` and `p2m_final_teardown` for MPU
> systems. Additionally implement a helper function `generate_vsctlr` for
> p2m initalization.
This means you know you will call it more than once in the future?

> 
> Signed-off-by: Harry Ramsey <harry.ramsey@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.h       |  5 ++
>  xen/arch/arm/mpu/p2m.c               | 71 ++++++++++++++++++++++++++--
>  4 files changed, 77 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/arm32/mpu.h b/xen/arch/arm/include/asm/arm32/mpu.h
> index 2cf0f8cbac..d565230f84 100644
> --- a/xen/arch/arm/include/asm/arm32/mpu.h
> +++ b/xen/arch/arm/include/asm/arm32/mpu.h
> @@ -11,6 +11,8 @@
>   */
>  #define MPU_REGION_RES0       0x0
>  
> +#define VSCTLR_VMID_SHIFT     16
> +
>  /* Hypervisor Protection Region Base Address Register */
>  typedef union {
>      struct {
> diff --git a/xen/arch/arm/include/asm/arm64/mpu.h b/xen/arch/arm/include/asm/arm64/mpu.h
> index 4f694190a8..8b86a03fee 100644
> --- a/xen/arch/arm/include/asm/arm64/mpu.h
> +++ b/xen/arch/arm/include/asm/arm64/mpu.h
> @@ -7,6 +7,8 @@
>  
>  #define MPU_REGION_RES0        (0xFFFFULL << 48)
>  
> +#define VSCTLR_VMID_SHIFT      48
> +
>  /* Protection Region Base Address Register */
>  typedef union {
>      struct __packed {
> diff --git a/xen/arch/arm/include/asm/mpu.h b/xen/arch/arm/include/asm/mpu.h
> index 72fa5b00b8..4ae583a7e9 100644
> --- a/xen/arch/arm/include/asm/mpu.h
> +++ b/xen/arch/arm/include/asm/mpu.h
> @@ -87,6 +87,11 @@ static inline bool region_is_valid(const pr_t *pr)
>      return pr->prlar.reg.en;
>  }
>  
> +static inline register_t generate_vsctlr(uint16_t vmid)
> +{
> +    return ((register_t)vmid << VSCTLR_VMID_SHIFT);
> +}
> +
>  #endif /* __ASSEMBLER__ */
>  
>  #endif /* __ARM_MPU_H__ */
> diff --git a/xen/arch/arm/mpu/p2m.c b/xen/arch/arm/mpu/p2m.c
> index f7fb58ab6a..1598f9ab64 100644
> --- a/xen/arch/arm/mpu/p2m.c
> +++ b/xen/arch/arm/mpu/p2m.c
> @@ -28,10 +28,62 @@ void p2m_dump_info(struct domain *d)
>      BUG_ON("unimplemented");
>  }
>  
> +static int __init p2m_alloc_table(struct domain *d)
Why __init?

> +{
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +    pr_t* p2m_map;
> +
> +    p2m_map = alloc_xenheap_pages(P2M_ROOT_ORDER, 0);
Why not assigning to p2m->root right away?

> +    if ( !p2m_map )
> +    {
> +        printk(XENLOG_G_ERR "DOM%pd: p2m: unable to allocate P2M MPU mapping table\n", d);
No need for DOM. %pd already gives d prefix like d0

> +        return -ENOMEM;
> +    }
> +    clear_page(p2m_map);
P2M_ROOT_ORDER can be 1, meaning 2 pages. Here you only clear one.

> +
> +    p2m->root = virt_to_page((const void *)p2m_map);
> +
> +    return 0;
> +}
> +
>  int p2m_init(struct domain *d)
>  {
> -    BUG_ON("unimplemented");
> -    return -EINVAL;
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +    int rc = 0;
> +    unsigned int cpu;
> +
> +    rwlock_init(&p2m->lock);
> +
> +    p2m->vmid = INVALID_VMID;
> +    p2m->max_mapped_gfn = _gfn(0);
> +    p2m->lowest_mapped_gfn = _gfn(ULONG_MAX);
> +
> +    p2m->default_access = p2m_access_rwx;
> +    /* mem_access is NOT supported in MPU system. */
> +    p2m->mem_access_enabled = false;
> +
> +    /* Ensure that the type chosen is large enough for MAX_VIRT_CPUS. */
> +    BUILD_BUG_ON((1 << (sizeof(p2m->last_vcpu_ran[0]) * 8)) < MAX_VIRT_CPUS);
Why there is no check for INVALID_VCPU_ID?

> +
> +    for_each_possible_cpu(cpu)
> +       p2m->last_vcpu_ran[cpu] = INVALID_VCPU_ID;
Fix indentation - 4 spaces, not 3

> +
> +    /*
> +     * "Trivial" initialization is now complete. Set the backpointer so that
> +     * p2m_teardown() and related functions know to do something.
> +     */
> +    p2m->domain = d;
> +
> +    rc = p2m_alloc_vmid(d);
> +    if ( rc )
> +        return rc;
Please add empty line here

> +    p2m->vsctlr = generate_vsctlr(p2m->vmid);
> +
> +    rc = p2m_alloc_table(d);
> +    if ( rc )
> +        return rc;
> +
> +    return rc;
Please, simplify return:
return p2m_alloc_table(d);

>  }
>  
>  void p2m_save_state(struct vcpu *p)
> @@ -46,7 +98,20 @@ void p2m_restore_state(struct vcpu *n)
>  
>  void p2m_final_teardown(struct domain *d)
>  {
> -    BUG_ON("unimplemented");
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
> +
> +    /* p2m not actually initialized */
> +    if ( !p2m->domain )
> +        return;
> +
> +    if ( p2m->root )
> +        free_xenheap_pages(p2m->root, P2M_ROOT_ORDER);
free_xenheap_pages as oppose to free_domheap_pages expects vaddr, not page pointer.

> +
> +    p2m->root = NULL;
> +
> +    p2m_free_vmid(d);
> +
> +    p2m->domain = NULL;
>  }
>  
>  bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:00:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:00:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233867.1537222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvOq-0001Ti-2E; Mon, 16 Feb 2026 10:00:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233867.1537222; Mon, 16 Feb 2026 10: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 1vrvOp-0001Tb-Vi; Mon, 16 Feb 2026 10:00:15 +0000
Received: by outflank-mailman (input) for mailman id 1233867;
 Mon, 16 Feb 2026 10:00: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrvOp-0001TT-Ei
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:00: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 484bba0a-0b1e-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:00:11 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso35664175e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 02:00:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dd0deeasm382771015e9.12.2026.02.16.02.00.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 02:00:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 484bba0a-0b1e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771236011; x=1771840811; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ddyKCkBTU+alnVbXpRWzYOsHi3pLnWpdRGDAtJHQjBE=;
        b=X7doxU5QlnFlROLBXBHpypMlUbHel4srwHKLFEHFla6MaJ8qlnLeYanh18iA5XsCZ+
         HHKuG/DiURP2F7q0rppgCiobIivaTWYK4KBJ5aWUjD2fDWTh7nP3PKKbvh/xRcI+y6vT
         r87Z9CQR9zXWon5A0mYd5t4gT8kOSC0pve7mxysiOkm8InBHxFF9EISK4isNysqLxqYC
         SnsyY0dIE9iMZ87N2VL83cA6hn7pJ86RRRVsON069uf7bU9qP0ktuI5IUTtBVPwMrmSn
         DAyaIdZN+0LpCFlim7RmH5E6CPNwYLiHHS9B1jN7JGSSgXkVRy1P/NKKiqO905/+lIo/
         +RQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771236011; x=1771840811;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ddyKCkBTU+alnVbXpRWzYOsHi3pLnWpdRGDAtJHQjBE=;
        b=BhwcWXye6Vpp+5Dm2ANVmY4E3iMLIcjyMshmiYQRPxJt9yh7NRVRNuwoGHfQNduZvC
         QTxlep1pNWosbT+Ewjm94uVLl4ytT3nDrWBWm1xMtoF0IQuYQachbcPdblW2T5/d0PKA
         ltDtBgPGq+JTkpGKLpUyBSMRaJxyuYCAdO99Up5sPqfrFJ1uluyfj5rclim+KCI7ou9A
         t6/o7FrJA9cAoyaUYt6e53Jq412TtBxUD/33cpocaw14YAFc+bUZXR8Gwj2Uoj7iicc8
         Dq49fR+DzZnIMCzsD4oS9lEP228+kQL9+yyFLwYJkPspvNwRF/z6fFOG/Bum/XAqbXM5
         Jd9Q==
X-Forwarded-Encrypted: i=1; AJvYcCXUoEMIFZOfwHXbmu6e329R14hlUgKofnryi1Ly5F+N3oGgBtOvFOd93R0eRB48I5wN8jjBGm9HNME=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxrtduivwl3Sd9h0qPNb2O6T00jLKvCsxO4H2KIc69PspiDuQ3a
	RL14ELuYctJegjEqEQv92rvR5pltlZYilqENa/aYjHfexg8W+ZR+IvkhEEO73fb/Og==
X-Gm-Gg: AZuq6aJvZOBwNsYdqmSNdWbfPUWb2SNy2jFP+vdoKUTNA4mLCF2cdrlcoro6pS6AC9c
	NpQlVRFSY0/9/ulTLyRhZPXaFbz6MaTbB00A/H7gMwRmF6sirDWY8+0yR4DydKZTH7Wqt8EbzOL
	5L1q2GhIZV5rjKsKJ5gkAYaw0tCRZ/IVdF7q5+/TZPp8fe9ce909MQ6Qyvyv5WEYP5BX27sVda2
	0Zv0Gmh8pIaoT5sFbmLztOcA3gNSvsUwMn4wxkB+6QHRcQ+EKmAe5JanQSEZpAUZ8zdhPJ7uqGx
	sY9keXmfsdxE7r2TttLLSNQlf0+S2LI0zSW6a/0lCewV5WIGN+5mBsFnVPmHvHhEWMYMQjVJH1n
	yYSWzHFx+y4QRVbFqKQhQRIp0uNHdDfGyfmhL5GS0B6NQdHdMBk9kowcaGILhqEzT0FkXfvY76l
	g5GALzhliy/+5mZs0z6e7IXHu3yTPA6FyyMWFjRVt4nJ6CgjBfUo3we6MOtWWY79L36EQ2suPnl
	F2cMhycGjWtVQs=
X-Received: by 2002:a05:600c:1c19:b0:483:5310:dc67 with SMTP id 5b1f17b1804b1-48379be817cmr136545715e9.20.1771236010887;
        Mon, 16 Feb 2026 02:00:10 -0800 (PST)
Message-ID: <1c8b9400-ff2f-4ffc-bad7-9d44fa44fd81@suse.com>
Date: Mon, 16 Feb 2026 11:00:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: roger.pau@citrix.com, andrew.cooper3@citrix.com, jason.andryuk@amd.com,
 alejandro.garciavallejo@amd.com, xen-devel@lists.xenproject.org
References: <20260213220205.196179-1-stefano.stabellini@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: <20260213220205.196179-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 23:02, Stefano Stabellini wrote:
> Introduce CONFIG_NESTED_VIRT (default n) to allow nested virtualization
> support to be disabled at build time. This is useful for embedded or
> safety-focused deployments where nested virtualization is not needed,
> reducing code size and attack surface.
> 
> When CONFIG_NESTED_VIRT=n, the following source files are excluded:
> - arch/x86/hvm/nestedhvm.c
> - arch/x86/hvm/svm/nestedsvm.c
> - arch/x86/hvm/vmx/vvmx.c
> - arch/x86/mm/nested.c
> - arch/x86/mm/hap/nested_hap.c
> - arch/x86/mm/hap/nested_ept.c
> 
> Add inline stubs where needed in headers. Guard assembly code paths
> for nested virt with #ifdef CONFIG_NESTED_VIRT. Move exception
> injection for VMX/SVM instructions to the callers in vmx.c/svm.c to
> avoid header dependency issues in the stubs.
> 
> No functional change when CONFIG_NESTED_VIRT=y.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> 
> ---
> Changes in v3:
> - Kconfig: Change "depends on AMD_SVM || INTEL_VMX" to "depends on HVM"
> - Kconfig: Remove redundant "default n" line
> - Kconfig: Remove "If unsure, say N." from help text
> - mm/hap/Makefile: Simplify using intermediate nested-y variable:
>     nested-y := nested_hap.o
>     nested-$(CONFIG_INTEL_VMX) += nested_ept.o
>     obj-$(CONFIG_NESTED_VIRT) += $(nested-y)
> - svm/nestedhvm.h: Remove #ifdef CONFIG_NESTED_VIRT stubs, keep only
>   function declarations (the functions are only called from code that
>   is already compiled out when nested virt is disabled)
> - svm/nestedhvm.h: Add CONFIG_NESTED_VIRT guard to nsvm_efer_svm_enabled
>   macro to return false when nested virt is disabled
> - svm/svm.c: Move #UD injection for STGI/CLGI to the caller instead of
>   stub functions, checking nestedhvm_enabled()/nsvm_efer_svm_enabled()
> - svm/svm.c: Mark svm_vmexit_do_vmrun/vmload/vmsave as __maybe_unused
> - svm/svm.c: Remove empty nsvm_vcpu_switch stub (now guarded in asm)
> - svm/entry.S: Add #ifdef CONFIG_NESTED_VIRT guards around nested virt
>   specific code paths
> - vmx/vmx.c: Remove empty nvmx_switch_guest stub (now guarded in asm)
> - vmx/vmx.c: Move nvmx_enqueue_n2_exceptions and nvmx_vmexit_event to
>   vvmx.c where they belong
> - vmx/vvmx.h: Add declarations for nvmx_vmexit_event and
>   nvmx_enqueue_n2_exceptions
> - vmx/vvmx.h: Fix nvmx_msr_read_intercept stub comment
> - vmx/vvmx.h: nvmx_handle_vmx_insn stub returns X86EMUL_EXCEPTION with
>   ASSERT_UNREACHABLE (caller handles injection)
> - vmx/vvmx.h: Convert get_vvmcs macro to inline function in stubs
> - vmx/entry.S: Add #ifdef CONFIG_NESTED_VIRT guard around nvmx_switch_guest
> - nestedhvm.h: Convert macro stubs to proper inline functions

Oh, wow, that's an almost complete re-write?

> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,11 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
>  
> +config NESTED_VIRT
> +	bool "Nested virtualization support"
> +	depends on HVM
> +	help
> +	  Enable nested virtualization, allowing guests to run their own
> +	  hypervisors. This requires hardware support.

What's the last sentence about? HVM itself already requires hardware
support, yet that's about it especially for VMX (where only HAP is the
other requirement), isn't it? If this is about those advanced features,
perhaps this would then want to be more specific?

> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> @@ -24,7 +24,7 @@
>  
>  /* True when l1 guest enabled SVM in EFER */
>  #define nsvm_efer_svm_enabled(v) \
> -    (!!((v)->arch.hvm.guest_efer & EFER_SVME))
> +    (IS_ENABLED(CONFIG_NESTED_VIRT) && ((v)->arch.hvm.guest_efer & EFER_SVME))

Constructs like these are on the edge: Yes, passing in an expression with a side
effect isn't very likely here. Yet still, this being a widely visible macro, I
wonder if it wouldn't better guarantee v to be evaluated exactly once.

> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -2165,7 +2165,7 @@ static void svm_vmexit_do_pause(struct cpu_user_regs *regs)
>      vcpu_yield();
>  }
>  
> -static void
> +static void __maybe_unused
>  svm_vmexit_do_vmrun(struct cpu_user_regs *regs,
>                      struct vcpu *v, uint64_t vmcbaddr)
>  {
> @@ -2211,7 +2211,7 @@ nsvm_get_nvmcb_page(struct vcpu *v, uint64_t vmcbaddr)
>      return  page;
>  }
>  
> -static void
> +static void __maybe_unused
>  svm_vmexit_do_vmload(struct vmcb_struct *vmcb,
>                       struct cpu_user_regs *regs,
>                       struct vcpu *v, uint64_t vmcbaddr)
> @@ -2246,7 +2246,7 @@ svm_vmexit_do_vmload(struct vmcb_struct *vmcb,
>      __update_guest_eip(regs, inst_len);
>  }
>  
> -static void
> +static void __maybe_unused
>  svm_vmexit_do_vmsave(struct vmcb_struct *vmcb,
>                       struct cpu_user_regs *regs,
>                       struct vcpu *v, uint64_t vmcbaddr)

Why are these needed? The call sites don't go away afaics.

If these are nevertheless needed, question is whether a suitable single #ifdef
might not be tidier.

> @@ -3011,10 +3013,16 @@ void asmlinkage svm_vmexit_handler(void)
>          svm_vmexit_do_vmsave(vmcb, regs, v, regs->rax);
>          break;
>      case VMEXIT_STGI:
> -        svm_vmexit_do_stgi(regs, v);
> +        if ( !nestedhvm_enabled(v->domain) )
> +            hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> +        else
> +            svm_vmexit_do_stgi(regs, v);
>          break;
>      case VMEXIT_CLGI:
> -        svm_vmexit_do_clgi(regs, v);
> +        if ( !nsvm_efer_svm_enabled(v) )
> +            hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> +        else
> +            svm_vmexit_do_clgi(regs, v);
>          break;

These render respective checks in the functions themselves dead, which in
particular means the bodies of those if()s there are then unreachable (a
Misra violation of a rule we did accept).

> @@ -2942,8 +2916,9 @@ static struct hvm_function_table __initdata_cf_clobber vmx_function_table = {
>      .nhvm_vcpu_vmexit_event = nvmx_vmexit_event,
>      .nhvm_intr_blocked    = nvmx_intr_blocked,
>      .nhvm_domain_relinquish_resources = nvmx_domain_relinquish_resources,
> -    .update_vlapic_mode = vmx_vlapic_msr_changed,

I realize the = wasn't properly padded here, but ...

>      .nhvm_hap_walk_L1_p2m = nvmx_hap_walk_L1_p2m,
> +#endif
> +    .update_vlapic_mode = vmx_vlapic_msr_changed,

... can you please to so while moving the line?

> --- a/xen/arch/x86/hvm/vmx/vvmx.c
> +++ b/xen/arch/x86/hvm/vmx/vvmx.c
> @@ -2821,6 +2821,32 @@ void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr)
>      __vmwrite(read_shadow_field, v->arch.hvm.nvcpu.guest_cr[cr]);
>  }
>  
> +void nvmx_enqueue_n2_exceptions(struct vcpu *v,
> +            unsigned long intr_fields, int error_code, uint8_t source)

While moving, can obvious style issues please be addressed? Bad indentation
here, ...

> +{
> +    struct nestedvmx *nvmx = &vcpu_2_nvmx(v);
> +
> +    if ( !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) ) {

... misplaced brace here, and ...

> +        /* enqueue the exception till the VMCS switch back to L1 */

... malformed comment here.

> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -711,7 +711,7 @@ static inline bool hvm_altp2m_supported(void)
>  /* Returns true if we have the minimum hardware requirements for nested virt */
>  static inline bool hvm_nested_virt_supported(void)
>  {
> -    return hvm_funcs.caps.nested_virt;
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) && hvm_funcs.caps.nested_virt;
>  }

Should the field itself perhaps become conditional?

> --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> @@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
>  /* Nested HVM on/off per domain */
>  static inline bool nestedhvm_enabled(const struct domain *d)
>  {
> -    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested_virt);
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
> +           (d->options & XEN_DOMCTL_CDF_nested_virt);
>  }
>  
> +/* Nested paging */
> +#define NESTEDHVM_PAGEFAULT_DONE       0
> +#define NESTEDHVM_PAGEFAULT_INJECT     1
> +#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> +#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> +#define NESTEDHVM_PAGEFAULT_MMIO       4
> +#define NESTEDHVM_PAGEFAULT_RETRY      5
> +#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> +
> +#ifdef CONFIG_NESTED_VIRT

In a reply to my comment on v1 (Or was it v2? This submission isn't tagged.),
you referred me to the stub nestedhvm_hap_nested_page_fault() using the
constant. However, why would that stub be needed when the sole call site of
the function lives in a conditional using nestedhvm_enabled() (which is
compile-time fales when NESTED_VIRT=n)? All you need to make sure is that
the decl remains available. I then wonder for how many of the other stubs
which might be the case as well.

> @@ -199,5 +201,77 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga,
>                          uint64_t *exit_qual, uint32_t *exit_reason);
>  int nvmx_cpu_up_prepare(unsigned int cpu);
>  void nvmx_cpu_dead(unsigned int cpu);
> +int cf_check nvmx_vmexit_event(struct vcpu *v, const struct x86_event *event);
> +void nvmx_enqueue_n2_exceptions(struct vcpu *v,
> +            unsigned long intr_fields, int error_code, uint8_t source);

Nit: Bad indentation even copied here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:07:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:07:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233879.1537232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvW6-0002Jq-UJ; Mon, 16 Feb 2026 10:07:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233879.1537232; Mon, 16 Feb 2026 10:07: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 1vrvW6-0002Jj-Qo; Mon, 16 Feb 2026 10:07:46 +0000
Received: by outflank-mailman (input) for mailman id 1233879;
 Mon, 16 Feb 2026 10:07: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=fHBT=AU=bounce.vates.tech=bounce-md_30504962.6992ec6a.v1-049ca1a42eb34f78b13ecf3ea395e659@srs-se1.protection.inumbo.net>)
 id 1vrvW5-0002Jb-NN
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:07:45 +0000
Received: from mail145-20.atl61.mandrillapp.com
 (mail145-20.atl61.mandrillapp.com [198.2.145.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5317b1a0-0b1f-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:07:40 +0100 (CET)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-20.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4fDz3Z1QMdzCf9KRq
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 10:07:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 049ca1a42eb34f78b13ecf3ea395e659; Mon, 16 Feb 2026 10:07: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: 5317b1a0-0b1f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771236458; x=1771506458;
	bh=Lb0HJ4esRwdSgy7GSFwaHnP6y8gxW0LOU9R9teu79Xg=;
	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=Esl4p7Q5KVYOGUWFt8C4u0Klz8jW/5RS4KGnMIUdZ8T7d5eppuzozfntCC6I51+rd
	 3X/kuSf+Ht10c9H5MQu8mgMIpj6JE6aOCQJtXeiNoHQ7oEb+HgoM6K7tbEkPvAjpGs
	 0OJnHJXAwFDw1+GDMT8+hA11uxgCqREJVkhiAOl4oz9txuJUzLW1FnOD5CPzguWq8e
	 GT+PostBFewIEWA5hOetWkxkb/OnGGHWiOAe22+SGN9AzXcDKXPXzET56w9pgBn7ux
	 comdXvzw8x3mkxEpLSjIpfrwWlAMOOFZiTeFObP5lCkcp+KcKdW6ACHVkix6CQUXl0
	 x0NFXaK4EMy/w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771236458; x=1771496958; i=teddy.astie@vates.tech;
	bh=Lb0HJ4esRwdSgy7GSFwaHnP6y8gxW0LOU9R9teu79Xg=;
	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=yUAgE9xhEOsYutouyMF8RuDxGDF4N3315SDjnay9j7+pzg8D3I3yNoIef9Z3LPDis
	 mK9eJtmSm/8XiXO9jQyKCm90/+iBtMVAy9qaDfPms9EQ0DU7nUCTTsqUzgJQYp4Sp6
	 C77wXFt/4uPDEHnlKAeWw89lmhe5RLzSQHY9KYO3J5kfGZgEJmkNXHmF8qMkLrUlZB
	 +ADP9GbCeHw4k4BSQsQJviEBw/hQIh2QFrRPP6KFLLGzIyPlk5U2kfLDhSAB33Ys9q
	 aUFuJQKKFMGSRH8KwQWlNt0PXdxnGsDdTxwy8Xif7mC8o5oOB5GxZC+WCiLBRw7jFR
	 JY5AWS3PGA6SQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=202/2]=20x86/svm:=20Use=20the=20virtual=20NMI=20when=20available?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771236456833
Message-Id: <c0c2e0cd-173a-496f-a643-7d19c9418a2a@vates.tech>
To: "Abdelkareem Abdelsaamad" <abdelkareem.abdelsaamad@citrix.com>, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, "Jan Beulich" <jbeulich@suse.com>, "Jason Andryuk" <jason.andryuk@amd.com>
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com> <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
In-Reply-To: <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@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.049ca1a42eb34f78b13ecf3ea395e659?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 10:07:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 15/02/2026 =C3=A0 19:24, Abdelkareem Abdelsaamad a =C3=A9crit=C2=A0:
> With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the V=
MCB
> and handed off to the hardware. There is no need for the artificial track=
ing
> of the NMI handling completion with the IRET instruction interception.
> 
> Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hardwa=
re
> accelerated feature when the AMD platform support the vNMI.
> 
> Adjust the svm_get_interrupt_shadow to check if the vNMI is currently blo=
cked
> by servicing another in-progress NMI.
> 
> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.co=
m>
> ---
>   xen/arch/x86/hvm/svm/intr.c | 9 +++++++++
>   xen/arch/x86/hvm/svm/svm.c  | 5 ++++-
>   xen/arch/x86/hvm/svm/vmcb.c | 2 ++
>   3 files changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
> index 6453a46b85..3e8959f155 100644
> --- a/xen/arch/x86/hvm/svm/intr.c
> +++ b/xen/arch/x86/hvm/svm/intr.c
> @@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
>       u32 general1_intercepts =3D vmcb_get_general1_intercepts(vmcb);
>       intinfo_t event;
>   
> +    if ( vmcb->_vintr.fields.vnmi_enable )
> +    {
> +       if ( !vmcb->_vintr.fields.vnmi_pending &&
> +            !vmcb->_vintr.fields.vnmi_blocking )
> +           vmcb->_vintr.fields.vnmi_pending =3D 1;
> +
> +        return;
> +    }
> +

I think you need to update the clearbit for tpr (related to vintr) for 
the hardware to know that you modified the vnmi_pending bit.

This is done through vmcb_{get,set}_vintr in your case (this will also 
allow simplifying all the vmcb->_vintr).

You need to do something like

vintr_t intr =3D vmcb_get_vintr(vmcb);
...

if ( intr.fields.vnmi_enable )
{
   if ( !intr.fields.vnmi_pending && !intr.vnmi_blocking )
   {
     intr.fields.vnmi_pending =3D 1;
     vmcb_set_vintr(vmcb, intr);
   }
   return;
}


>       event.raw =3D 0;
>       event.v =3D true;
>       event.type =3D X86_ET_NMI;
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 18ba837738..3dfdc18133 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -548,7 +548,9 @@ static unsigned cf_check int svm_get_interrupt_shadow=
(struct vcpu *v)
>       if ( vmcb->int_stat.intr_shadow )
>           intr_shadow |=3D HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI;
>   
> -    if ( vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET )
> +    if ( vmcb->_vintr.fields.vnmi_enable
> +         ? vmcb->_vintr.fields.vnmi_blocking
> +         : (vmcb_get_general1_intercepts(vmcb) & GENERAL1_INTERCEPT_IRET=
) )
>           intr_shadow |=3D HVM_INTR_SHADOW_NMI;
>   
>       return intr_shadow;
> @@ -2524,6 +2526,7 @@ const struct hvm_function_table * __init start_svm(=
void)
>       P(cpu_has_tsc_ratio, "TSC Rate MSR");
>       P(cpu_has_svm_sss, "NPT Supervisor Shadow Stack");
>       P(cpu_has_svm_spec_ctrl, "MSR_SPEC_CTRL virtualisation");
> +    P(cpu_has_svm_vnmi, "Virtual NMI");
>       P(cpu_has_svm_bus_lock, "Bus Lock Filter");
>   #undef P
>   
> diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
> index e583ef8548..e90bbac332 100644
> --- a/xen/arch/x86/hvm/svm/vmcb.c
> +++ b/xen/arch/x86/hvm/svm/vmcb.c
> @@ -184,6 +184,8 @@ static int construct_vmcb(struct vcpu *v)
>       if ( default_xen_spec_ctrl =3D=3D SPEC_CTRL_STIBP )
>           v->arch.msrs->spec_ctrl.raw =3D SPEC_CTRL_STIBP;
>   
> +    vmcb->_vintr.fields.vnmi_enable =3D cpu_has_svm_vnmi;
> +
>       return 0;
>   }
>   

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 Feb 16 10:10:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:10:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233887.1537241 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvYP-0003qo-96; Mon, 16 Feb 2026 10:10:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233887.1537241; Mon, 16 Feb 2026 10: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 1vrvYP-0003qh-68; Mon, 16 Feb 2026 10:10:09 +0000
Received: by outflank-mailman (input) for mailman id 1233887;
 Mon, 16 Feb 2026 10:10: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=d2+i=AU=bounce.vates.tech=bounce-md_30504962.6992ecfb.v1-e6d671088aef4fc5bdd57de1b735a54e@srs-se1.protection.inumbo.net>)
 id 1vrvYN-0003qZ-KL
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:10:07 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a9b50ce1-0b1f-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:10:05 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fDz6M4mqDzPm0Pbr
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 10:10:03 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e6d671088aef4fc5bdd57de1b735a54e; Mon, 16 Feb 2026 10:10: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: a9b50ce1-0b1f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771236603; x=1771506603;
	bh=YYYWtuztqZnncXo8BQHMwSQpsyveH5UOHs5LQ1mAG5g=;
	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=jyZTRI8XvQywc9CvDlfom5K6rXwdJS5orRlZhr6qhSREAd5SkU0MTchjoodLgMSXK
	 2Aw322X0ZNZnqrz1iLi4qI/n1r8Sa7J4FR5gMl6z0i5VgO2LloE5xHnB/pwmi+Mr1f
	 XKbB4ybUe6Zq791mXYJcX0qjnQpJtsVQiHdZmOgKoe0p9zPYHXJDt2MSOeCYoxUjT3
	 u/0dxyo/VtBGz9P7ZmhP2hVuyi3I0qbtDOZRArdcmLdvEWfTPRD4BcZ5crNAyCFE8+
	 XH0Tn7LW0kM2zDI+7No0UpNlThNeHpiqlraPbds4pWYXm17AjuAXNB7kBzzrdZQ2fy
	 V8bkv3G4SVUmA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771236603; x=1771497103; i=teddy.astie@vates.tech;
	bh=YYYWtuztqZnncXo8BQHMwSQpsyveH5UOHs5LQ1mAG5g=;
	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=BYB3BUa9e2iXjKI0VW1tIqyvRjE71sTUuLwlyCI7vbdLaQ6nmM2RDisskAzjay0A8
	 I5nZ7skJgcNOWRBtdPerLiYYSifSRUgq6JIVw9ACXBjOTHKhVN60UzUfMEU/UkLTdB
	 SkdbLfgSh3B4wUOycrh8xcjZNFcQso0W/sFcYelrlNzJFJqxYuhSZO2scntl2UjSVi
	 j/jWNQWwhZW06LtCy/6R1g/l29b9Jzrw+6v2+P9CBC+SEvPDjwn6wDKZ0852xztONB
	 QPMjuWjYqVbrBl+2hleR7F0QmrZP7ZrmrZn9h5w/E2uBcn5Q/L/Zzb2tvsLlq6+5lA
	 8b6GIw5Z04Saw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=201/2]=20x86/svm:=20Add=20Enumerations=20for=20the=20SVM=20virtual=20NMI?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771236602239
Message-Id: <ade32796-361b-45c2-adea-30d10b28ad99@vates.tech>
To: "Abdelkareem Abdelsaamad" <abdelkareem.abdelsaamad@citrix.com>, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, "Jan Beulich" <jbeulich@suse.com>, "Jason Andryuk" <jason.andryuk@amd.com>
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com> <8b09eece639ba9cdff0d259e0941f7ef3dae7701.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
In-Reply-To: <8b09eece639ba9cdff0d259e0941f7ef3dae7701.1771177081.git.abdelkareem.abdelsaamad@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.e6d671088aef4fc5bdd57de1b735a54e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 10:10:03 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 15/02/2026 =C3=A0 19:24, Abdelkareem Abdelsaamad a =C3=A9crit=C2=A0:
> Introduce the cpuid bit for the SVM vNMI feature support for the x86\AMD
> platforms. The feature support is indicated by the CPUID
> Fn8000_000A_EDX[25] =3D 1.
> 
> Add defines for the three SVM's Virtual NMI (vNMI) managements bits in th=
e
> VMCB structure's vintr_t:
> 
> vintr_t(11) - Virtual NMI is pending.
> vintr_t(12) - Virtual NMI is masked.
> vintr_t(26) - Enable NMI virtualization.
> 
> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.co=
m>
> ---
>   xen/arch/x86/hvm/svm/vmcb.h        | 8 ++++++--
>   xen/arch/x86/include/asm/hvm/svm.h | 2 ++
>   2 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
> index 69f6047394..047483db9a 100644
> --- a/xen/arch/x86/hvm/svm/vmcb.h
> +++ b/xen/arch/x86/hvm/svm/vmcb.h
> @@ -336,13 +336,17 @@ typedef union
>           u64 tpr:          8;
>           u64 irq:          1;
>           u64 vgif:         1;
> -        u64 rsvd0:        6;
> +        u64 rsvd0:        1;
> +        u64 vnmi_pending: 1;
> +        u64 vnmi_blocking:1;
> +        u64:              3;
>           u64 prio:         4;
>           u64 ign_tpr:      1;
>           u64 rsvd1:        3;
>           u64 intr_masking: 1;
>           u64 vgif_enable:  1;
> -        u64 rsvd2:        6;
> +        u64 vnmi_enable:  1;
> +        u64 rsvd2:        5;
>           u64 vector:       8;
>           u64 rsvd3:       24;
>       } fields;
> diff --git a/xen/arch/x86/include/asm/hvm/svm.h b/xen/arch/x86/include/as=
m/hvm/svm.h
> index 15f0268be7..a35a61273b 100644
> --- a/xen/arch/x86/include/asm/hvm/svm.h
> +++ b/xen/arch/x86/include/asm/hvm/svm.h
> @@ -37,6 +37,7 @@ extern u32 svm_feature_flags;
>   #define SVM_FEATURE_VGIF          16 /* Virtual GIF */
>   #define SVM_FEATURE_SSS           19 /* NPT Supervisor Shadow Stacks */
>   #define SVM_FEATURE_SPEC_CTRL     20 /* MSR_SPEC_CTRL virtualisation */
> +#define SVM_FEATURE_VNMI          25 /* Virtual NMI */
>   #define SVM_FEATURE_BUS_LOCK      29 /* Bus Lock Threshold */
>   
>   static inline bool cpu_has_svm_feature(unsigned int feat)
> @@ -57,6 +58,7 @@ static inline bool cpu_has_svm_feature(unsigned int fea=
t)
>   #define cpu_has_svm_vloadsave cpu_has_svm_feature(SVM_FEATURE_VLOADSAVE=
)
>   #define cpu_has_svm_sss       cpu_has_svm_feature(SVM_FEATURE_SSS)
>   #define cpu_has_svm_spec_ctrl cpu_has_svm_feature(SVM_FEATURE_SPEC_CTRL=
)
> +#define cpu_has_svm_vnmi      cpu_has_svm_feature(SVM_FEATURE_VNMI)
>   #define cpu_has_svm_bus_lock  cpu_has_svm_feature(SVM_FEATURE_BUS_LOCK)
>   
>   #define MSR_INTERCEPT_NONE    0

Reviewed-by: Teddy Astie <teddy.astie@vates.tech>


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:14:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:14:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233904.1537277 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvcl-0004c5-1T; Mon, 16 Feb 2026 10:14:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233904.1537277; Mon, 16 Feb 2026 10:14: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 1vrvck-0004by-SH; Mon, 16 Feb 2026 10:14:38 +0000
Received: by outflank-mailman (input) for mailman id 1233904;
 Mon, 16 Feb 2026 10:14: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=aABt=AU=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vrvcj-0004bs-5g
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:14:37 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 486f2180-0b20-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:14:31 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7804.namprd03.prod.outlook.com (2603:10b6:a03:5b3::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 10:14:28 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 10:14:28 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 486f2180-0b20-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GM6UOQxSUY+R9Vume5lJvcffALa+qoZjQPMQs0m4t87nSCHjPKiyeH/fWetJfBktxCnPuP0l5mNGeYd+JrjlHud0t6iDlim+8FRpVuOp/V631M2vRnt6wTLjVn/e5Zne2HY4k06TZjyASzdoNYhDGTcDt5d10i2TMy9B32wo/eyrlmDlt54HOzhZ6+/iQk8Di3hPgzAgENoqaqMM89O1xLmERSj/GyFz6H5VUIbvo1PAMG/CV41IPjXnVLEug89zTBajaleR78KlAsz+NOEDjsbmo27eCBBLfbKlCr6l7/uVrNkhw+nXhxtlESpZ2Qm2MkhtbzmCId8MZWAUnAmFPg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ki1UHin1Xk/+GuLaOf2MIjw8v0BY//wyyAupNa/EDDI=;
 b=TxL4ZJ11ZxpLpkVLJoCIbh2oNhIv4nwJblnnTVtd2UD6emlssDdSAFLhXAJDxaZOhJpm9SHGynbbSYmE153DFyOBQLX7nw/8nICvrEjJ/rJQR0Ja8nLanalVIJRU7vK/lkIsuGCyXY0j04Y7Id6aXZfjg9AaZ9k96YWaOoIeWiyvrbNkBmcZiF3A7BNvr0Uwrxb4+zEi9Ku5j7I7uGoarZ7vZig4jTayR61ZmULLXG0MuYuz5kGAWUhEm1QEJBmGJflRyXbCf94+qp0506zB8CCOCNeXteibrqMQNpMV8OFoW2WIgCg1nC6gn/CD/yhDGlCbvejESUoOwqZyVFj7jw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ki1UHin1Xk/+GuLaOf2MIjw8v0BY//wyyAupNa/EDDI=;
 b=HGXcFsoLzKa7nHU6Aw6GmMNlSSBbEjGcI+9fP9bdO2qoqBraYR4nJ4L3RsK3XjJNhWww72b691ymRY8O8HkLZpY5MYhdELnSIQV3bzJBObrhM8l/e+3JXXs+bk1cpJPG74QweUXoQjNGIq0+6zrkzvQr5c5yjUm2KyjXOd5KhuQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <ea21a66e-a4ab-41f9-92af-0111292ecb3a@citrix.com>
Date: Mon, 16 Feb 2026 10:14:24 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
To: Teddy Astie <teddy.astie@vates.tech>,
 Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <c0c2e0cd-173a-496f-a643-7d19c9418a2a@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c0c2e0cd-173a-496f-a643-7d19c9418a2a@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P265CA0012.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:bb::17) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY1PR03MB7804:EE_
X-MS-Office365-Filtering-Correlation-Id: baf96be6-6d78-4d33-a792-08de6d442aef
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?cjdNS1k2QWJ2QlNBUml0bXpBWnoxYllrbU4rTTlCdU1RNW1FNmhPR1ppdmYx?=
 =?utf-8?B?SEdmWm9qckpzeUpIU0JnL1l0b2xiZ3RQR1lxMVJOKzMxVzZMcnJtWUhlc05W?=
 =?utf-8?B?cm9YamZNV3ZhdVM5dmxPbm1VbVc3YVpQenhxd0lHZCtFdDlNcWNjSjZ3aVNM?=
 =?utf-8?B?VVZPd00wU0xYQ3pyUE9Kb3ZZV0tVZ3AwTXYwQUxuQjRoa250aEN3SUwzN041?=
 =?utf-8?B?QUx5NGt2amFQQXhoV3p6N0xLd2Y4MU9LM0xycmszNVdjbmJ4SE05eDZpQWI1?=
 =?utf-8?B?bHl2dWJ5V0R3a0ZEWlBjcndjM3V1ZG05VGFKNzhXZ2hVNy9NbHZ6anpMVGN4?=
 =?utf-8?B?UVdtRW9GTklEcUw2NHV0YzJEYlR2RDU3S0syV09ZRmN4Y0VUeHRlN0xXMWlI?=
 =?utf-8?B?UVBPTlZFdUw0Z0hRdWhNMHVWcmZJNkI0Uk4zVWVVU1hremdLUGdKTXJsUWFV?=
 =?utf-8?B?QnBZNGU4TXlxYTB0SFpNb2daSWJ4NTJhNEZsNHh4dDNyeENDcHJpOGlTRHlL?=
 =?utf-8?B?NEkrZnd4cXJsV1pYZlpHckZiVFpnWVpJaGdzKzBwNWVlTS9DeWxuS0g4SzFJ?=
 =?utf-8?B?dkVMZUYzR0ZoL0pOWUlHcmVXRTI3aVc4aVZLQmliQXVrNDZUYldUVndiU0tv?=
 =?utf-8?B?dngyK3g5UlJaRkdtMk9HQ3QwQUJMZytTcUJkMTMwOXRSWGJTV0dqVE4wUnVL?=
 =?utf-8?B?U0Nlc2xNYnJBWXhPR0JkdTlEbzA3SGtTcWpCc3pGeGx1aHN4ZzhydloyZ0tW?=
 =?utf-8?B?em1ydGRTcytpYmJMTE5YV2pGMCtDZC9oZzVRWitYejJ6Y3UyV0xHQy9MSjlr?=
 =?utf-8?B?dGExT2JQVlFJblRGVzN1L3ZvKzNQN1ZxS21mc3VxQUFtUmVpZ01hSGV2NWJF?=
 =?utf-8?B?ME0vVFd0Tkw5OTFGYUhMZXh0d0t4K3Vtc1BPQXNxemt5UTNXRkozUlFHZVBN?=
 =?utf-8?B?N1JtVFNJL0NPUHJ4cEp2M2JMbDdUUTMvd0tvbU96dGpKQmtyM3ZSckZ2WTd0?=
 =?utf-8?B?eGdsRmt5QVFKQUpScXQ0SUdVajNqU05XOHpEcDBMaW85MmtGbVRUbmMxVmh3?=
 =?utf-8?B?cGJjdTZGNUNLeUpRM0ZZT3ZwbUtnSzA2NUZnN0s1a0NiVk9CRkcySzViNVFt?=
 =?utf-8?B?aWJqUnVuTTNtS2tTTlFxWGJacklvbEg3WGpmNGIvRVN4OGVsYWFia0Vhd2R3?=
 =?utf-8?B?KytKdHE2RWtYb0JpM1lSclZXYUlNSGtHano2ZldUWnNpQUhUSWprWG9QejEz?=
 =?utf-8?B?Yy9PcXd0WURVUFRZZyt5SktRRjlrTlhRdHg5b1pGOE80dk9lYmgwa2t1WFoz?=
 =?utf-8?B?YTY1bVVSQjJzVVdrc1llbDgrTFFPRDBwbzlNSWhBZHFDMjNybkZmM0hzTDRm?=
 =?utf-8?B?TlFoZjNrN2FmNUdjRnNzS3IweERRQXVydTdJOXpVVDNpYk1yMHBCZ1dXSU4v?=
 =?utf-8?B?VGdsVjNhV3RsZjMvVTBkV3ZGMTl5U1ZLdXJUdWRhbnBvUWhwWFhjUDBEdExI?=
 =?utf-8?B?cEx0QUlBTUZOenh5bUp3dzVKekFvd0dYcFNqZXpoaGpGajZ3L00zZVBHRVZJ?=
 =?utf-8?B?a1M4YjdSbnFLaDNIa2pZSlF0UXdjREEvb1FpK09KTVBCR0o5OG9sTTkwaC9q?=
 =?utf-8?B?Qmo0KzZQeTFPZjZHRXdURFR0MGhBNHlTaFZBSUg2d0hRRk0yUUY3ZS9vY0xG?=
 =?utf-8?B?aDZoZFpQMERmUXp2cDFMOFB5bFRpNWZrVTJXaWxyWm96YVZoRWRoN3hFNGV6?=
 =?utf-8?B?SDZ1b2NTdk1DTVlLY0M1enN1Nmw3TWZHNVNBelc3Rk1jNjlFc0NkMFBQNTdj?=
 =?utf-8?B?TExLOEU2Vm12ZUNsRnFXWmpZbVpjazdtdWMrbDFIYlZmZXlIamJKbmVhRi8z?=
 =?utf-8?B?WHN0Z3VmQVBYbUZIZUJlSmtLMHFOS1F0dU9sNmlGbHlEYjRYR0JQaWpZZXpy?=
 =?utf-8?B?Rnp6LzdMcXRhQzZsUmNmWk9lNTIxMVZ5UUx2WFZCaXA3OXUxY2Z1NHhBd2Uv?=
 =?utf-8?B?enZEdjdjamVlZDA5YnpITDVkdGZzRk9tK01OMG1rbjdWNnRmQjNJT3dBZHA5?=
 =?utf-8?B?VVp1eWkzUll5QUcrenR5aDl5ZTUzekQwQS9sUzVqdThzRWhkMnVpbkZ6Rmto?=
 =?utf-8?Q?3PAw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NnRiWW5ldW5TYUN1WkptUU9tN20zdmtGQnRjTGdsb0J3ZVc4TXYrdFRrQ3R4?=
 =?utf-8?B?Mlp6cCtsL2cwZmVZbDlCdVJOdjlsc3dsbFRpc1RGSGlPb0IreWxmQjFvRXlV?=
 =?utf-8?B?U09yaExXeTVoNit3Qy9XUVBXNE0ycUlDQXN1eVJTWTNzbzhMYjJXaFhtVk1X?=
 =?utf-8?B?U1lIOTI2MDdCRERMc0w2cDlkZElOTlNhMHd0eDRwSENMaWRJV2RvWWUrTWtF?=
 =?utf-8?B?OVJuT2NteDhlUjRWUUtMQmhYREIvL0tteHFjVFMwdm9hZzlpMHAyeFZEYzJZ?=
 =?utf-8?B?SHlDZDlhTlZUS29TT3pHUkg1aWljOUVTRXYrblhzTjZGek9ZK1J3ZFY0V2dj?=
 =?utf-8?B?bnZZaFZRRVZXMkx0emZTcHhRTDdROWdBS3RYVnN2U0tpQTBObVFwN2krdEty?=
 =?utf-8?B?cDJsSm5jV0pROUFMa0Nlei91NUxCUkw4Mks4YTA0OS9ESnZnbWREUlNJN2pj?=
 =?utf-8?B?eXJCa2ZzdFhYZUZLRVEyWUQ5NnFZSEJyV3l5Y052QlBjaVh6WVM5VFhBSVZ0?=
 =?utf-8?B?SjVyOU1sSm9OeTMzM2o4K2ZOMHBsb3lGK2I4SUdmTGZaZWVnNUgrMmpqdDhG?=
 =?utf-8?B?WGR3TE9ac1lIYnhtMXJ1QzhZYWJvcEZWcjRmTCsydTV5VXdpdnpaalRleXY5?=
 =?utf-8?B?MFlTb1B0UXdrOWZZaVZwNm1ralA3bzRLQmIxKy9CNUdzbTRrY1dZbGtYRDYy?=
 =?utf-8?B?Q0UrSm1jbndURzZYdE9WSFluUlg4aGVXd0ZWV05qWko5eVFYUXV0c3JKK2hZ?=
 =?utf-8?B?RUxtQWx6MCtlMjN6Y0gxOHZNZkpRdGxodjVjUWRvVjlxQXRac2tzK0NhV2gv?=
 =?utf-8?B?VUNjWWVhRE90MzlRdGgwSjVJRCtYVkNBZ0JKanhDaytyMms4VHpSLzFiSXBi?=
 =?utf-8?B?aGdFUllYcUZJM2crY21FZ1FHT0hXU25zZTNCaVlUMndHWjF0SFJseGszWFJh?=
 =?utf-8?B?OUYwckpUK3ltdHduNzRZYWNMVDRaT1oxaHRwM0hzN3BvZDE1Q0Noa0s0RnpB?=
 =?utf-8?B?c0RIS1NhNitPbURkWFlJd0h4TE9mdklORXR4c3lWR0NBd1lITlZwOENrTm54?=
 =?utf-8?B?U3E4ekkxSEdqMnVQV3Z4NnJSK0pvZ21vY2hVT1NFOStTTXRoOE1HVHFPR2wv?=
 =?utf-8?B?Z2d5eFVta2JXVlhaZ1ByZnZJc2JMV3IvM1pDWTlMOG5nMVpQQ2l0dUNmQU5N?=
 =?utf-8?B?NnVOK2JFQ29temhON3k5aUNSelBxQllLbWY2Z053UjUrMmtoSVBxY0pTRWFn?=
 =?utf-8?B?NVplcjczZUhrTkZPR2RmU2RqRkN6L2FMSW9NZ3FQNHAzQUZ3eXlGUVpyWnE2?=
 =?utf-8?B?aWVTUXh3RzJLSTRMWTRSY0YvVTl6NS95UHdRbUZLZzl5OTkxbzdEMlcxRTRP?=
 =?utf-8?B?ZUhtM0M3Ly92SUM0aVlmSFdvUiszdVhZaXFKbTY0cFd5cTNiam1TR1VJcjQy?=
 =?utf-8?B?V25NcjNYS0lyenVTL05pcFlWNUZreVBoOVd3WEhRbkd2ZDZpSHJ1cnNmdmVD?=
 =?utf-8?B?Nm1DOXhKVUdNOEtlT1haSDJuVFFkdEVhdjNqQzlGbjVwVzlLcEJsMDdtdG05?=
 =?utf-8?B?UXZFRHBVaC9JbnZlT0VkNjBYRFo5dlY5UEdOdlJ3U3pzcHJFUjliU2JQUGNR?=
 =?utf-8?B?SnQ2bjZmK2NYRGplQUYraVpnUk5KZS8rWVFzU0FlaE5FT2VhM09ZVE44bDhl?=
 =?utf-8?B?WUREbjhMZ3JvYW9YRk45UXluR09kTWo4eTdZRkRrS0xqb1lUc0MzY2xOamFK?=
 =?utf-8?B?RzE5Yy9IVkIyQVBLbUtBbmJjK3NKMXA5RTVSV3hQc0tVd3BUSkJiSGxNOVRt?=
 =?utf-8?B?U3hoTlhPWXh2ZWI1OHkrVjU2OGRNc3VjQUl1dnVvQ3VKZGUzNkVBeUU1RFpn?=
 =?utf-8?B?MGYranRxQm1HTUM3bWNQeTFhSlhMVWlzQWh3WG1aTWNoQTdsLzN4YWI2aUIz?=
 =?utf-8?B?OG5qM0RiamFibzlteVc4bzlyYTBRK01zWUladjcrTHpGZmZydERKN21HbktZ?=
 =?utf-8?B?UjdIS3lFV0JSTnA5SkhUaGJBQlJuQjNpVUJnKzFPVGFDbVlMbll5MTRsR1o0?=
 =?utf-8?B?THFWbHludFlmOHo3VmM2ZWhBWTYxYjJPYW9FWjNiTWdIbktkVWlLOVozUFVl?=
 =?utf-8?B?OUpSeFF6MUxlK3M5L1hFaEt4NlFVZHJaRFVXTjhJc2pmUVlUbXZJSURMNTFW?=
 =?utf-8?B?VUZwZndnNDV2MFVWR2w4VGhoV29KTXNWUnMvNzBiZVNycVdVaHU2YkFTejdv?=
 =?utf-8?B?SkE4c29tcFJoVUtOMng1YXlxQmxDekM5RExZYno2UmtSMHpqUG5kYjlGVHhO?=
 =?utf-8?B?eEYrM0hOWFU4QldrTXVucmJWMnZLTWVTMWljelJsYm5tRmduWmdjQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: baf96be6-6d78-4d33-a792-08de6d442aef
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 10:14:28.0417
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: s4SMOHAqtKnIYnfBFBl0Gsibs1p2qln9YdjxfSFvZRUejoTd9VevpMJlwW2TgmBfrbpJLetdKZ7X5Zj+sNty0VXsityQXfQbDSbVGdSfXAo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7804

On 16/02/2026 10:07 am, Teddy Astie wrote:
> Le 15/02/2026 à 19:24, Abdelkareem Abdelsaamad a écrit :
>> With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the VMCB
>> and handed off to the hardware. There is no need for the artificial tracking
>> of the NMI handling completion with the IRET instruction interception.
>>
>> Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hardware
>> accelerated feature when the AMD platform support the vNMI.
>>
>> Adjust the svm_get_interrupt_shadow to check if the vNMI is currently blocked
>> by servicing another in-progress NMI.
>>
>> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
>> ---
>>   xen/arch/x86/hvm/svm/intr.c | 9 +++++++++
>>   xen/arch/x86/hvm/svm/svm.c  | 5 ++++-
>>   xen/arch/x86/hvm/svm/vmcb.c | 2 ++
>>   3 files changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
>> index 6453a46b85..3e8959f155 100644
>> --- a/xen/arch/x86/hvm/svm/intr.c
>> +++ b/xen/arch/x86/hvm/svm/intr.c
>> @@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
>>       u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>>       intinfo_t event;
>>   
>> +    if ( vmcb->_vintr.fields.vnmi_enable )
>> +    {
>> +       if ( !vmcb->_vintr.fields.vnmi_pending &&
>> +            !vmcb->_vintr.fields.vnmi_blocking )
>> +           vmcb->_vintr.fields.vnmi_pending = 1;
>> +
>> +        return;
>> +    }
>> +
> I think you need to update the clearbit for tpr (related to vintr) for 
> the hardware to know that you modified the vnmi_pending bit.

What makes you think this?  The APM states otherwise.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:16:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:16:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233911.1537286 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrve9-00056q-8V; Mon, 16 Feb 2026 10:16:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233911.1537286; Mon, 16 Feb 2026 10:16: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 1vrve9-00056j-5O; Mon, 16 Feb 2026 10:16:05 +0000
Received: by outflank-mailman (input) for mailman id 1233911;
 Mon, 16 Feb 2026 10:16: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=aABt=AU=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vrve7-00056Y-U4
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:16:03 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7dfde1eb-0b20-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:16:01 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY1PR03MB7804.namprd03.prod.outlook.com (2603:10b6:a03:5b3::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 10:15:59 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 10:15: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: 7dfde1eb-0b20-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gd3tMVYH5R6NzmYkvvzgv3/8LlUWJeMIG7Q6gDlaavt7tlMdPMSfae1LJouFRYYImxwh3/btFs/k38HG7JuoNmlcuQIrEG8F3AFhpqrkGpTM/eD/vHq5JKzj1JmVKUc1CcBQmGgJPefzNXuceG88HROF0fNTXMFThYye5Ra5qIIVe7I1n1XdsTNtRBkfxRfnrrMpoC516NEf4FwKzguJ37n3sviClntprBE99bZ8vF91KhmhoF5MXewSxjotZKs22M0EIbZ6f6LIPpzLOX2LtdmjFaKmH2XJ5LGuEuzBqRWah5ps1IynD7P2SaYvIjsiVNBZZbpvk4rHtCz7Nd8QLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kwQOmHp52ZjOBw3FJ0akkfMrRrqh9uqU5TyBIqj6OLM=;
 b=tMYd5YL3rzqgK1ZK7x7dsz1dBsalXdEegNR1hoYSboCS6IeMw/HSXohRb3JmHyjCHa3EZx978HB1lqhwZFmc4q/U4SvCFSRPMCnOTc72VAR2f1BZ3XkZg46Zuueh6qkZvKwN8QDeOT8d/QPhNZVZwwDmzHnUgfEcuzl+FPbG8AIwobSm+YMOGguyWXYTS6QWW2jCc78URz+Eb/8pesLNfwtRHRTvdZMyi5g04aFVbVkmBzxiek7kQi+SfJqt/OexiokAzf0OBUbUtVHjPbK7UawB/XYEnsxaFP/7jzduydc/SCTnoI3rb4WI5WTGvVPJK0vSGUj6eJdWNj8q5W1fgw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kwQOmHp52ZjOBw3FJ0akkfMrRrqh9uqU5TyBIqj6OLM=;
 b=DXvkBENvLxpycBcHxgciFTUuGRsyyC5N3yE0gWmYqR1ppGIuZWtgjLnVrcDbR7YGc1YdrEJypK1xSxHRGIul3SUTVmMfxPfe+HDa0AhsC31ZklbdeqrQd0W2qY7FYw9bQlFZKYrtYR3aveMsK3ZTNotwnrj49zJkwExmDQfBboA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f06b7e86-4188-485b-8f0e-c55bc72929e5@citrix.com>
Date: Mon, 16 Feb 2026 10:15:55 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO3P265CA0018.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:bb::23) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY1PR03MB7804:EE_
X-MS-Office365-Filtering-Correlation-Id: d842d1f1-ee1a-4bea-92e2-08de6d446158
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?c2NSelBPOGxwUmtFQ1dRS25vVlFSSCsrNDhNeUppeU5sN1pkb3ZaVk5UaFdF?=
 =?utf-8?B?aVhqNHFYWTdrTjNMYjBKMytFOXBweEp4aHlEdHJYU3BKQTJVSkRBVmRZMEE1?=
 =?utf-8?B?Ykg1Rm1EWW5CdWtHZk9GK3YzdnU3KzBma1JmOVY5RkJIQ0tmMU9hZTB1czNk?=
 =?utf-8?B?bUNkWDlQcm5CdDdHZmJjNThVQ1pqcVViOUxmaEZvMHdYZk9ZSGtVMzY1d1Q5?=
 =?utf-8?B?cDErTSt1MHJXMDVSaXdtaWs3aDl6SzJRM0xrRnpuTVJyQVJYSE1YSHpQdTZ3?=
 =?utf-8?B?REx6WE9IWGgwc2U1dXpPUzZES1NNQVhrdCt2MGtVZmYweXBHa1ozZndEZFZu?=
 =?utf-8?B?RHdoVlpOYXFFQkxXNW82TzgzM3NXV212NGVBdmhsd2xlby9KeTAyRDZQbHZi?=
 =?utf-8?B?dzI1Y0pQZTFXUUZEcFNpQlNIaExMNDAxYlg2YUhnRWthWUp1VndTR1dSY2x1?=
 =?utf-8?B?VDBlcTJIb1lmWDBUWk1aMUdzOU5FVm9NRTRLOW1jUlpZY1QvU0Y2U2sxQXdB?=
 =?utf-8?B?SHpEOFZmNmpVOTRjaTZxNFNFQzdIWFJWQkR1R0R1cStrclpHQ1k5cjk3TEUy?=
 =?utf-8?B?SEdIT3FQREQycWZIZVl1eXd1NXVFMmhVWk5wNmRmQVh0Z2xjR3ROaHJCVUNC?=
 =?utf-8?B?bG5qRkZIeXB5L01Yejc3anJscDQ0VFN2Y0VIL3V0anY0Qk5IbEY3YmwySUtW?=
 =?utf-8?B?OE1rM0RNRWFuKy9EaC84elBKU3FINXJoZU1IS2JwTHE3VWFQYlRjUVhBNmY2?=
 =?utf-8?B?Z2MwYTU0UXdUYUd6SitJSnB1ZjVYaGI0OEhrNHk5MlNVU0NJU3VPeUpabHJh?=
 =?utf-8?B?bXZVcC93U3BtWkQ1RkFkc3dHd2V6MXVtVStEZHRXU1RPdWxLeFNoWW1yUllH?=
 =?utf-8?B?ZC9PcUx5ZFJtVldvUERBRDV1OVVLcWZSbC9OQnhoN2JkWEszMzJWQ1JkNDBk?=
 =?utf-8?B?V0s4NVBrSVFIb3Z6TGZaRGJEWnIvOUh6eUs3M0xIUnA0V3ZKT3BqQ3F5MC9k?=
 =?utf-8?B?TnMyTmpzN21Hcmc3T2I2aW9vZzh2ZXRoZFdHUkdvYWhvMkZVMDlKKzdBdDVh?=
 =?utf-8?B?TXFBbXF4UHk4bzVVQWlObFR0Zjc5dXF2QlBKc0oxSkR6VlYvMFN4SjNCRGxh?=
 =?utf-8?B?dGZMNmZCaDBvOU5QMTNkMDZObXhnTWNQRlRvbmVjWWhQTGZ3dzZuc0M0b2Ju?=
 =?utf-8?B?Uzd2L1ZWUHRSN1AwYm10K2RxdlVxdEdRR01DeGRMWWw0a2I4eDIraERCZTRE?=
 =?utf-8?B?Ny91U1hMTDAwcWVINXN2M3NoSTAva2k0RXlTWTMrQkpXMkFHNGREZzdPMmNI?=
 =?utf-8?B?UDQyN2lNc2hqR0ZvVlJrbnpmWThqeWtoL0NQakw2aTdaVTIvVVBpZHdzNnZl?=
 =?utf-8?B?aWdBclBGOS9WbENzNENmaFpxQlhwNTBLZlpWN2Fab00rWnZ2TkVleDJwUTBt?=
 =?utf-8?B?YUdKT1B4ejlYSERTSmNNWnBUN21rZFV2bTFFZlBBZWkvQmcwbHJWZ0cwZ21R?=
 =?utf-8?B?V3luQUVjQzhEMGlXR3pUUW5lQXdyL3VrblZXOWlzWmM0dklkdXdpYmNrNElX?=
 =?utf-8?B?bG95cm9DVDRYTkVNNFAySTdFV3ZxUWZuSFZLZXV2NGtSMmhjZUlHMGduUzR5?=
 =?utf-8?B?YzZwd0tLR2hxZ1JYRm9IUEJ5elc2ZGNYZzBPWm9SYmUxbmpXcW1HSDJGTGxY?=
 =?utf-8?B?aFVuamJRTFQvSnFIQ0FuZ1ZzellwczQyalNlREJFWEFPL1QvMlFTMFZaTU9O?=
 =?utf-8?B?dk1RRitTSjErRjJqamU5VEhkaWFRRkk0UDgzZ3RyQ1FVdHA3N3BhTENqS05y?=
 =?utf-8?B?ZDdDREc0SHZIR2t3ckxaVHdHYTNlUnZGOTBhcUpLRjlDTzZlSy9oWjRFamFt?=
 =?utf-8?B?RHFqY2pGS1BzSkxUTDIwaXZZNVc4S1RsTVhlMUtlUjFxSFBEZEJ0QUlLaW0r?=
 =?utf-8?B?L0lRMHJBelV3WGQwUjNuZmtnaW9EZmhaSU9pUDRmTzZCM0JUNlV5NU1FZHdl?=
 =?utf-8?B?bnJiS01EeTYyUmZ0cU9odE1ORVg4bE9kV1FRYnlUc3NVQzdqYVh2QzJJWHVm?=
 =?utf-8?B?RkJZWXVUSTE3b2dVMU1TdlErd0tXUk1oQ0VTV3RpNndSdkJMUTc4aG1aVW5l?=
 =?utf-8?Q?tFhU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bjBDZmtqY3dJWDNKa29IQ05jR25qWVJWbXlNQk92SFhKTDVzeGpXSzZvNVFa?=
 =?utf-8?B?QzlUWmJhNTN0Vk45ZlZqcVFleGx6cEdQQmp4ditLMFFuZ1dML0hWRVhWVnJw?=
 =?utf-8?B?bCtRaExxalM1alR6OXZNcVl4Znh1SXBIdkZ3WXJtbkxRN1JWaEVjNXVUa0Q3?=
 =?utf-8?B?cUlqSTdMNUIyK0k5SDVMek1DYXhVVkJvMkxMVFo0MnVlUDV0bmYvQnZZWXpB?=
 =?utf-8?B?V01CMFVPT3ZGVkh4U0o2VGIzL3A0cUZCQ0pmQWJlcFRaeFgxdVNmbDV1OFY0?=
 =?utf-8?B?VVZRRFpaWEZ6Mk11T2xOblRiQnFEWHNlMTdYT1Q0UVBTMnBXQTlCVk9vdHlT?=
 =?utf-8?B?enhIc2NYQnlBTmtSWHNwRDFBOUcya0pZUFZaSzBQaVRCd3RlTjJ1SlZTeGo4?=
 =?utf-8?B?THZscTV0T0dMYUlBNHZoWWY3czhGWVhqdzFZZGxXU09mU2FTK0Zya1BuZmE1?=
 =?utf-8?B?S1VURTZVbHdCTTRhWlRhU2tzTmt0OGZwUUxMR2U1SHAxcHYrTGlzY0Jndzhh?=
 =?utf-8?B?ZmpWQVRXRGpUUWU5TTZPMEFhQ1BWUEMxZFNsWWhSb0JsMFU3OHlqbXEvbXNP?=
 =?utf-8?B?Ym9PS01vT3ZtL1lVbFVkVElEYmU4TVJwaTZybFZGZmNvTkE4aEpzN2FzV0tt?=
 =?utf-8?B?Zlh4T2xaVTRzY0NJR2NYMkM0QnhXbXNSR3lUU3F3N1ErVWlyb0dpZWI5UE04?=
 =?utf-8?B?bmR0SUVyQmhna25laWhncHEzdE1SYXNBaGNSaWRraDBaQm40Y0kxZFQ5R2ZZ?=
 =?utf-8?B?LytmN0RIbktMWVRsVTlPVFlrWi93U1JhQmN4SkRzL1FqVENyOHFJUm5QelU3?=
 =?utf-8?B?QjEvVkQ2djM5YmFpTWIzMVIyZHpCQW9Md2FqeUFlRE81cCswUnZ5dmgvelJZ?=
 =?utf-8?B?eVVKT0hqZWFvcGZOa2I2L1YzcHJ0YlhTSWV5QjNMUDZUVHcrcVNEK0lieHhT?=
 =?utf-8?B?Z1Irbmdvdm5IUnBSVTFhdE10Rk5hV3R1aW05S0VMaU9wbzkxR0hTdEpKL3V4?=
 =?utf-8?B?UkJMeFZ3UXEySDhvbFBNalRZaW5qUVJzVFFEZGFTVXhLdHhWMGgxbjZlUEVY?=
 =?utf-8?B?YzZaWWdZNll6Z2txNEQ1UWFlOEpqYmNkdHh6YmVJSWlyZXlyVVpnaFh1NmxG?=
 =?utf-8?B?UkZTMFh5a3o3ZGwzQ1N2dHFMbVBqSGh5WFJaQTU2UjVNWTNRaGx4cHJ4alhz?=
 =?utf-8?B?UEt6QjJ1ZDExTlR3NmlsNUMva2tOWm9Ec0pzQVpvU25vSkYzdWp0WjZobWJi?=
 =?utf-8?B?U1FMTWFiT3Awa0FoWG12NDNhZlo3ZVowWEx4c3IxQWRDMURtc2hBbnp5a25p?=
 =?utf-8?B?MHdxM3NvL3JIaWpJbmZqMDZzU241VDNqVEV1Qnc4djJCL05XMDUyT1RMQ2Mw?=
 =?utf-8?B?WFo4aHFTUGZvQzBxeGx5S0RBRjJVTUk1ZGJHZXJUelpYT0pMKzRZU2ovL3Ux?=
 =?utf-8?B?SUlXWS9zSWNPNXhscE1GRk9wekQwclZQcXg3YmlwUUN1Um5icEFHd0piZG9V?=
 =?utf-8?B?OU5ZclRsMHZ0ZjBPbkFDL012aS9FNDI4WGM3QzZVSjlldGlxZThhUkFyV3dN?=
 =?utf-8?B?T2NNRy9CMi96RzdLYldwcGduNWEyWCsyaUlsZTE1dkNjbmdkS3Z6SmxWaS9Q?=
 =?utf-8?B?VnUwTGJ3YUtINWNKQVVKZjJyYjZYR1J2Nks5bzFzT2QzWFk5MHRHKzJuRUls?=
 =?utf-8?B?dUxYblFjRCtvOXRJOUdnRll0ZUYzMGlGbTNvd3MyVlE1Q2pPSU90QlFvdnN6?=
 =?utf-8?B?V1NZSW9rQ2JRVjlUUXptaEFYN0JrQ0V2UjlSYUV5SGliY0RDUzJSYWN3S2p5?=
 =?utf-8?B?SEl3ak5la095Kys5LzNSTmg5VGFiTVBVaXZrMXgvcHdIUTJxVXE1RHk1QkZ5?=
 =?utf-8?B?Qm8rd2w2S0JQUGplaFI3SThyNk83UVdaR1dGWTNLaUl1U0JGUys3aWtxb0l5?=
 =?utf-8?B?MlRaOHRWSWp2ZUpwV2lBcU44N3lYWTBHM1Y4OVJidjY3VStuOFRScDZvWFVL?=
 =?utf-8?B?V3dOVVE3elhZZ1dyQzFYYUN2a09UOXB5QnlzeTRCbmw3NUtiRHFmWjJ0Sm12?=
 =?utf-8?B?ZGl3bkZDNTZrUXFnWm9VaGl3bWlxNHBhd2FzRzRnQ09MNVdSUEVwRWtQZTJu?=
 =?utf-8?B?WkhRT0tWT1VmSWI4YytCbzNYMHVPKzZhTk1zTURMaUhIUXd0Zko3UTBxTFhj?=
 =?utf-8?B?MTdVQjZpRXNXZXJOUStUV3J0ajczU3BkNXM0OVlGRVV6ZmFaVHYrWkdGQ05P?=
 =?utf-8?B?KzNmc0xWb1FoMVBsZDZIUUpSdWVJdlYrQm9aZFM5akY5S0ptWmVwVXZUY0N2?=
 =?utf-8?B?eSsxWEJQVWhBQzdGa0R2R01kRmgyT0V0eVNoRXpvaEVVQWZkY3ZVUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d842d1f1-ee1a-4bea-92e2-08de6d446158
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 10:15:59.2178
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 8kr6nGSR6Fs1m8ZO8iUkFch4dVFPgOEfmfTeFVF4CDuGxrnc21CfZgH5wmqC0iFhSAqvlEUsaSVhQ8nDtsj8Qe8zYOKrgQrAtwrZXCAtpPk=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB7804

On 15/02/2026 6:16 pm, Abdelkareem Abdelsaamad wrote:
> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
> index 6453a46b85..3e8959f155 100644
> --- a/xen/arch/x86/hvm/svm/intr.c
> +++ b/xen/arch/x86/hvm/svm/intr.c
> @@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
>      u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>      intinfo_t event;
>  
> +    if ( vmcb->_vintr.fields.vnmi_enable )
> +    {
> +       if ( !vmcb->_vintr.fields.vnmi_pending &&
> +            !vmcb->_vintr.fields.vnmi_blocking )
> +           vmcb->_vintr.fields.vnmi_pending = 1;
> +
> +        return;
> +    }

So what happens to the NMI we're trying to inject when NMIs are
currently blocked?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:28:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:28:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233925.1537296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvpo-0007H4-B7; Mon, 16 Feb 2026 10:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233925.1537296; Mon, 16 Feb 2026 10: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 1vrvpo-0007Gx-8K; Mon, 16 Feb 2026 10:28:08 +0000
Received: by outflank-mailman (input) for mailman id 1233925;
 Mon, 16 Feb 2026 10:28: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrvpm-0007GJ-T5
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:28:06 +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 2d9cc9c9-0b22-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:28:04 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-4362507f396so2910315f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 02:28:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac8075sm25490876f8f.29.2026.02.16.02.28.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 02:28:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2d9cc9c9-0b22-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771237684; x=1771842484; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vbGAUbh83zv1zGGDp3qrk7Ehax0tg4wH84OFianLnCQ=;
        b=XRZCxMpp8w0Kt2CF1/AjW+jRajV6dKhd5nk1hNqqepLJ6BxKBAw8m0z6OjbW1HPXkh
         gJD1ZvR04D+YMYYkk4jHSHX+c9Desa0u1ssiqzLDN0nIy6aRHGIg8uVYl3e/35gO1JE/
         5xmJekDckOdYtWqfbQrMp1otV47CliUHtJEU9k3nDqWgYI5D/YYJmiwxAkIoBUf5mZZ6
         Hy5yARDAiGWSUa9pMEvU7WFTrTnXZuUWoHiyrHzopST1YySQxIJI8VZE25WdC+Mc8UJs
         bETE9lSsiHzwviFAM02EeRMDjMsQh9E5yw88a6DxaamrIWbhEEWv4tceOKk6E4gTdg6q
         vtJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771237684; x=1771842484;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vbGAUbh83zv1zGGDp3qrk7Ehax0tg4wH84OFianLnCQ=;
        b=dJrQYg8seWMy25z83101a56GCzIPjg6GyN+H1I/375n3LXP4tr/1ApZNB6CYk29AfL
         GIjRhiJrpgRqsDpccq4z/cvvHsF8+2L4FH//VPBPwLEzKMIFZeEOU5uFpQPVcVvTk3fW
         Fda8eTqO6lSn0zg0nEhYDQpc+Y1XlmeOC25q9MI//Jm3leLLLFLcwTLHjohJy+7OKam/
         htQIJzwxpGp82vQcWrryBTyZ6TAgx19kHcvKgzV80zREwSIZ0ZuoYR/R7BUI5R3spcsW
         KjzlBPFd7IBhWkS4PSV5vExc2fDppLH+i8j5RQXscm7HTX1IfgeymcS/tpTCXvPeqml9
         detw==
X-Forwarded-Encrypted: i=1; AJvYcCXNYXwpeu/xfsoGAD8bfJvTyuODIlW/iHw/jeuGtuYO5JqvGlnCtr2nwDSJGHSL7lPoAwqegbbYyhQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxIWJu090h2bVno91ltIyb9JxNxCryzI3Rs6o3LbeLRXXU6pGVb
	vXQIMCstQIXzbo5u2d71tC83I7L3TIMubdiTE9q75SVIXUN9KU6wqg9WeDXOEPKT1A==
X-Gm-Gg: AZuq6aLnCuMN0XuwbHcTd7fiIEpigWAj/4GEJZ9ZJH/ShSEuyA3SE0vls6dkmSfmMIy
	OIWPQK1NbfGnp16O/O4+AtccS327/PQU4NAHfWYBCsXfxKJBnWSTpyrCiSDyIk0pVONUZGoEsWJ
	l0lJKPtABrUz09ahlMTuCrWZQwo7cKFpPZvhgvzfPvdOnS8jxJnQeHmM5beM+YZGWWnt9bJCjyw
	YNRHHivALuXJC0Bvn0jzR8DZPr4ky6KZUkHePm1oermRy0icUQXTFVrt3SsX/pCgCJaiaOdp5aH
	eL8A7aWp1Yw0d67jDaVhIE9KKbtQ8giBDdDHRmlIl8uMkW9Qhty1LIREEbSODBUAGWlLfHJEGiW
	XKEYZl0MtKp0EcX5/XhWbKbJtPIjthcKqHlTxb1V4xMeIKRDZiJsNi8JQeDDqQqJtJvicTUV64D
	1W3OL37//RmEYMRBGMV2RvG4sFRkMC7oCjJDUz2aDZaVly52aBkpMjUQr1uWtRfSkQ2k7QU9TkL
	1QYwSELv+dhYqU=
X-Received: by 2002:a05:6000:4007:b0:435:a52e:7758 with SMTP id ffacd0b85a97d-4379793f44dmr16898644f8f.57.1771237684200;
        Mon, 16 Feb 2026 02:28:04 -0800 (PST)
Message-ID: <1a8c1f40-7b8f-4ffe-bc26-afc56261b92a@suse.com>
Date: Mon, 16 Feb 2026 11:28:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 1/2] x86/svm: Add Enumerations for the SVM virtual NMI
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <8b09eece639ba9cdff0d259e0941f7ef3dae7701.1771177081.git.abdelkareem.abdelsaamad@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: <8b09eece639ba9cdff0d259e0941f7ef3dae7701.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.02.2026 19:16, Abdelkareem Abdelsaamad wrote:
> --- a/xen/arch/x86/hvm/svm/vmcb.h
> +++ b/xen/arch/x86/hvm/svm/vmcb.h
> @@ -336,13 +336,17 @@ typedef union
>          u64 tpr:          8;
>          u64 irq:          1;
>          u64 vgif:         1;
> -        u64 rsvd0:        6;
> +        u64 rsvd0:        1;
> +        u64 vnmi_pending: 1;
> +        u64 vnmi_blocking:1;
> +        u64:              3;

Can we have a blank please ahead of the colon, to make it a little easier to
actually notice?

Further for both rsvd0 and ...

>          u64 prio:         4;
>          u64 ign_tpr:      1;
>          u64 rsvd1:        3;
>          u64 intr_masking: 1;
>          u64 vgif_enable:  1;
> -        u64 rsvd2:        6;
> +        u64 vnmi_enable:  1;
> +        u64 rsvd2:        5;
>          u64 vector:       8;
>          u64 rsvd3:       24;
>      } fields;

... rsvd2 (i.e. the ones you touch anyway) I wonder if their identifiers
couldn't be dropped at this occasion as well.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:28:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:28:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233931.1537306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvqJ-0007hZ-JQ; Mon, 16 Feb 2026 10:28:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233931.1537306; Mon, 16 Feb 2026 10:28: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 1vrvqJ-0007hS-G1; Mon, 16 Feb 2026 10:28:39 +0000
Received: by outflank-mailman (input) for mailman id 1233931;
 Mon, 16 Feb 2026 10:28: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=aABt=AU=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vrvqI-0007hK-K5
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:28:38 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fe9e700-0b22-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:28:36 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN2PR03MB5183.namprd03.prod.outlook.com (2603:10b6:208:19e::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 10:28:29 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 10:28: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: 3fe9e700-0b22-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YAMzgTWLNiZqDzP+a1Rdq1Nqz2/ROShRZCR9htwVSd0X6FBcKyVRzOoptkhpSTfwRvqdq7U9EBg4KC2WM73/ybs+W95pXJcARthG/LAyX4uYN94KG9ukyxQbeB1IylLOvxp4kNSIixsDkkO18Cw1t5u162nWbvHghFsyzUarweejqCWaTuCs1pGyFKu8cZ0lgRC4NTiakyOadN7WVcDjKicDBEZmMGBpS4EzEOSubJRUT6sgYMAowgdeiKf/QKnvFWtMiJdxieC5+FZwlBXRpOa6nlQgJOZekI+CXZvgVGgoqDMmm3CnO+xGfsIKRlf/7/yzqs6saIp526nH5OLuhg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gbGg41ZdlDnfHtAVLQWesczoMuWjWJroBHnPOBLs/bA=;
 b=tz3Ie9Ekxch81lpWtsjyXgPjUk3t9XBS7TO/UFvu3K8v2aKh9oPoQ2yBDEO7E8WB3yKV8mYIMHQWFIFF6Ne38SFYvSx9xZ6bdGqY93kN3LhNvBA81bViAAnDVHoc4tAGIzTI/LbKh98bwcAALKtXUATlnPTzbhqkVztmly+4LC1jW5msXMDSgiiYSeGefxuTGrY82mCzei/dO6Dz8t5w9tqumj9ct/yLHzR/9rNPoDPMIT5dvOz17y1QQBK9H2k+0NDbdLQJLrnzz9obaxvQB45XsRkea4xGSYjnLuvNIaxKE2haHErbooR4D7J2NG1m9AoyVdvJrd9DFpFzhd3oQA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gbGg41ZdlDnfHtAVLQWesczoMuWjWJroBHnPOBLs/bA=;
 b=p6IQ+D57nGeRnZ4BGmG0Magy6Qf+8iDFUdGv/74+af6l11LS6SSMe0ELh/VV9X3kHb7p5iGHhYoCfnsBeEn/zGAwNPI/eKRt6tx7zq/aPpyQWb9rq7FfIjumSpjb5sWJi2TIRd1myYd+W11vChtlnbEFdAlgL2Y7MXqrtIP4GOw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <a3e20afd-8325-4218-b536-c9f6ffb64d8b@citrix.com>
Date: Mon, 16 Feb 2026 10:28:26 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/arm: smccc: Preserve argument types in v1.1 SMC
To: Bertrand Marquis <Bertrand.Marquis@arm.com>,
 Jan Beulich <jbeulich@suse.com>
References: <0e2ba0af683fa5e53a3d2b4b625703751cf7ce54.1771228001.git.bertrand.marquis@arm.com>
 <3bbc408d-d16d-473e-81bf-6ea1f78290af@suse.com>
 <D54AC574-88E9-477B-B355-375F4B1CE787@arm.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <D54AC574-88E9-477B-B355-375F4B1CE787@arm.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0077.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::8) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN2PR03MB5183:EE_
X-MS-Office365-Filtering-Correlation-Id: 476c8d71-8c4b-45e5-cb37-08de6d46205c
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?OVp2M2VlZTFRZ3ErbmMydW5xOGI4dnpmUnBIbGlEcnVIcXZsTmNvS3hsRUZt?=
 =?utf-8?B?N1FzWjIweVo1RjgyUEJubDg5TUpGOFBlWDJ1L0NpeUEzUTNBSUNUSFRrRTI4?=
 =?utf-8?B?T0YyV1g1SnF2OC9TWE9aYWFFRVE4cWhveDlCV1ZoYjh1VU9GSjkxREt1M2Nk?=
 =?utf-8?B?ZG1lNkFNVkpQT0tDcE5Kc1FQY3hmR0NvY3RNbTIzZkdoSno5dEdWYy9LbEdD?=
 =?utf-8?B?c1lIOVdoSXVXZnZIQXo3YlNnRXAxeXdxYTdmc0NLaGFpM1FCblpIemo0dDlV?=
 =?utf-8?B?RFhqelBIdjBvUUQwN215K2lCR2JmUHU4MmVLVVJTREYwTFJQdmRHUG0zU3ND?=
 =?utf-8?B?bGYzOC9DK2tRYjRiOUJ4YmFMQXNqdTBYcmRsaGNBNGxSNjk1Y0tNTjRFd09X?=
 =?utf-8?B?YlFuQmZiZTJ0ZmFPTGhoRnpwbFVBQUFsb3BqTHYwb1FRU0NOOE9JSVl6bjRO?=
 =?utf-8?B?ZnpTaE9rZDAzQTY2K2x1MnB2Unk2NFJxMTlNWjZFaXhqdm1DckhQMlZ5YUM0?=
 =?utf-8?B?TDhwWEtDVlFJanY2S3BESnFTYy9GZ3NzeHYvZHBBMHAyWXRwTzJUWjIrVFBT?=
 =?utf-8?B?UzJLOFBWM0RKTDlpdTB5TEVXVUh0RWx1VngvMGpQVzk5TWQxbGxuM3l2R2xU?=
 =?utf-8?B?YS9VZ3BCZVcvdlIycWJBU1hiYlZqU09mQ250YXdiYmZxam5OQ0V6WlIweXkw?=
 =?utf-8?B?UDB3ZjcyVXpkZng5Z1FCNDBaK1hVUkxHc0NzY01NUFh1TWRGM0hVRk45SXFH?=
 =?utf-8?B?MkR5em5iOWpDaWp0R0ROWDRkMTNzL3RDaXR2M2tDZWhmcGFwbTZiNFJlRXRu?=
 =?utf-8?B?WjF0RTdkSlhjeTBBV3NrMGF5bXBVYTFmc0p2WTdLcDlsNWc4WU9DY2lBenFK?=
 =?utf-8?B?UjJQYXJ0Wm9ab1VKSVhKVWxNZ3NEZ3FLUDlVdHJWMGFVUjJKVnVTb1kwVEpU?=
 =?utf-8?B?WWZxK2d3M1lCK2kvOXhRWFh1eUJYMm8zYVg1ZWdqdWoxQlRDdUdtQWFjdjR1?=
 =?utf-8?B?c1ljK29oREtuQzU5bnZpMmNUVis4aEtXcWlobXBzS0hPOVd0ZHpFSGhWOVpn?=
 =?utf-8?B?WUZNRVNlTksrUUVla2VFOGhmb0doWnVES0ZWQmFDMUVncmI2L3dwWEtrZ0Ri?=
 =?utf-8?B?eGN0V3l4cmdDeDVKbXVwankxSEx6Uk5EWHJUQkp1eGhXL1V6RWl6SFBrbUdz?=
 =?utf-8?B?TTArSElRbEc0UDNFK2JiOW84QVlGVVpFS2dzNncxNXQ0cHE3MlZhQk5SRGli?=
 =?utf-8?B?NHllU0ljL0NNSm1OK2QxY2hNVXQ4SHRENFVFbkhUK2hMN25nN2N5Zlp5MzFC?=
 =?utf-8?B?M2FSYTFmQ3RTaGpPOFJvZmZ5V3IwTm53ejhwTXozTmJCY3NHU3dDU3ZVdmJs?=
 =?utf-8?B?N05ISUMvWHdVWjFKWHYzemc1bDdQditHeXJQZ01CbXg2MDR2TnUxNkRCenRW?=
 =?utf-8?B?eCtOeGFPNjJrWjBFVXl0S0cwVHdwNlFSbUhxbDVXbUxONWR1Z2wyd3JQalZK?=
 =?utf-8?B?N1Vualp3ajJCOXlBR3hJSGQ3am01UytoS0xjTjR3T1NKMkN6Zm9mVWpGUVJY?=
 =?utf-8?B?NWRpNko2bEhLNUc1bTJ1ZHowM3NyWUhBR0Z1YlM0cFZsOXhLTlp0VkZkc243?=
 =?utf-8?B?MjFIQU54VWFjSmh5OUdwdlIxOUpQVS84L054cmRyUTVmR0x0ZmVnVmhacWJx?=
 =?utf-8?B?U3NsK3c5a2pYVmN6VGpiREZiR1dUNlFoQVRQTUdTemlPRkt0ZjJLTmE5V2V5?=
 =?utf-8?B?VHNvOWxQcWJkWk5KdEo3M1lvOWRMZllpZ3FTUDhqOUMzUU9UalVleXErTHlF?=
 =?utf-8?B?MEt6bmdaZEd2V1UrVVVDV0VUNFBLNTh0RW5YWVJWWlMzRUhhTlB0QU4yMklp?=
 =?utf-8?B?Z0RuWmY1eHI4MlNPMmRlSkdHQ0xyZldZY3FjOHB1Ry9QREYxUkMwczdkMnE2?=
 =?utf-8?B?aUFVcDd2VHYzYWhyZUVlUndIblZiWjN5RmNiUS84L3pDNHNTVHgrY1BzOW9N?=
 =?utf-8?B?L0k0a2dNZ092UzhRdkcvc0JNb2pDS0FTTndiWm5sd08yRExEQy9VNHFwclJG?=
 =?utf-8?B?UmRpcmcxZzdVaFRzYnQxckNzTGo3SGJXU3V0aWRJTUZnWEhjcThKV2E3NHRM?=
 =?utf-8?Q?hPTQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ekMxQWdTYVozNXV0SFpybkg0Y1hZNVlxaURoOW04YjdLTHlDeVlNYWdVZWpM?=
 =?utf-8?B?dDR4a2UvYklCdmc1ZG45Smw1ZysxS2kxbWR4aFBsTHlBWDFjNndDOFl4WkRQ?=
 =?utf-8?B?M1NtWWU2b2FjSHVkWnFKQzlIVTdka0pmaGRORTBmc0FTTEZzMnU1dnQ5VlZp?=
 =?utf-8?B?bVVvUHVPNUZJT0VadGNUWm9OSDVXUk5lQ0w0WCt6NHZjaWVwOHQ2bFFSNm1E?=
 =?utf-8?B?L1ZmaWE4bWtJZnFnUHdtd1ZHd21mNzRZc1RmRHVZK3ExUUNYNm0yMnlGSGtY?=
 =?utf-8?B?dENqcWN5MWdyTlV2aVhobmtEbzZtQWtlZzRXOXd6YUZKTzJKbEh5TVlvdGQ2?=
 =?utf-8?B?bk9QcGY1eDZLZWgzMTlySncxRE9KeExQYmF6aE8xa3I3elRldTMzZnlFeWc4?=
 =?utf-8?B?aGZ5NitIbmlMUGVVd25yYTg4ZnFxUUJvT1VKb3FvWjhjUHAvem52UFIvUzdI?=
 =?utf-8?B?eFhBUjd5MWMvWjE2MW02R1lrdk9nT1J2YmlkKzRKanNkd0ZOeUlvUzZzb3Iv?=
 =?utf-8?B?TlVQTnZEU04yVitjZTFtVzRSTU5meVZFTGJ3MUt1WWl1Y1lqYWhHRDRyWXJ5?=
 =?utf-8?B?dUxpb0gwbkhpWUR1L2E5WFp6Mi9GekwrZzV0MXBkZTJmSVExZG9Qb1hXMmlt?=
 =?utf-8?B?SE4xU0dSWmR3Y0ZCUVYraTBNSUFLQW1aSkxhOUlobXBXanFlOG9jdUNVdUR4?=
 =?utf-8?B?a0FpUmVQRnZqWWFxMnpocXY5MFNhYUFSUHRKM3pLbVhIN0dYZ0ZIWjVNVHpI?=
 =?utf-8?B?SG9SRHYzK2dyZGRFaUJpcFJ1ZkRGZFoxV2cvVmgrMXkzZmhSeFlnWC9NVUor?=
 =?utf-8?B?VjNzTEQ5ajZtaXlYR3dUTWtnWGZheHU3cnFBVmcveCtRYU1jUW9VQ21jYisx?=
 =?utf-8?B?aFNqV3QyMjhXSzBWVXpvcktkUDRVVTJTc1pIWXdFVDBCekRSRHVGRHhkS2VY?=
 =?utf-8?B?bk80L1FyRmZBdkMrZ1pJc0lBc1lOREtFQzRnM1k4N3NUUVkrRTRiTkNoRC9k?=
 =?utf-8?B?eDRPYlQxRWN3VWhFZURabDRGR3BWU0FGMDdheFVEdW5UTlVsT0Z1YkZHbkd2?=
 =?utf-8?B?Kyszd0RKakU2L2o5SDJERFAwRTJvcFpjL1dQWUpaRm4yZTZyOU9jMk1MUUJn?=
 =?utf-8?B?QktyMkRKUE1DT250OEVjdnJUckxRTVBud3VXQjdIblVFWVFXV2lkZ0hXa0FZ?=
 =?utf-8?B?SWRPYm40VlRIaS94MmhjdEZnb0M4OStDaDkyZzJmZTMvd0lZSFc4UmdHbURQ?=
 =?utf-8?B?MGdwMFFGb0p1WmpTTzJZREtwZy9KaEJTVXNEN1pCbGpkdFNnL2tCcThCYUdR?=
 =?utf-8?B?SGlDZ3BpZi9sN2hFVXhJaHR0UEdhTkFrVG5iYnBOREVqVmVidE5KUUJSUm1q?=
 =?utf-8?B?WkI5TVFkeDVyeFpZMHhnYXJCa2p5SGszMmpNUXMrTmZPdUs5aXNwUkREeTUx?=
 =?utf-8?B?czNvWGQ5YnZocjFFVGpGVUsxVEU1Q3FDaFpVUWpVOGNIeXd4M0V5Sy9lSHpR?=
 =?utf-8?B?MnJ0R1djblNyZ2N4c2VpTG1jSmswMlV2dmxjd1FLd1J4ZkxmRS9KVU9mSVR2?=
 =?utf-8?B?Z1BqczJ0TFVQc1hUaW8yOVlCS0RFck1HcEkrajVOMEQzRGNuNEJJQTdkSHps?=
 =?utf-8?B?a1N3b3hVckFaazZYWVRxUVRUQlZ2cXJVeElDRWRrNjZDa0hjM2JvNUN4VHdP?=
 =?utf-8?B?dThTa2FPbk0wWTlKb2hsMjRQa1FlemxrYTh0RC8va0JPQlFGUTBnL1U4TEpV?=
 =?utf-8?B?aTdlKzdTWjRFSVduYkg2WFdtY2NIS24rRDNmd3RTT0VQTDV6RS9xSDZrbDBB?=
 =?utf-8?B?ZTlYSkVXdG1sekFvWU8rMFg0bmxoR09CdmJUeW53U0JQNjF6RFBIVDdQOVp4?=
 =?utf-8?B?M0RqKzNnaWlPWjlPdGx2UzNiQWNxRndqRitrc1Q0YkloMnhkQjJud09PaGV1?=
 =?utf-8?B?dUEvbVg4dEU4bEdzallXNVpzaE5KdURIaTBzUVd4L1duV01SeC9mb3cwUnRo?=
 =?utf-8?B?dzdtaVdvc3Z0aUxmMWgzWTFqOHM3R21rUFJrYTE1K2VOaEhVdHYveFFSYXFw?=
 =?utf-8?B?ZEpiZ3J6ZUhUakgzRVoxelkybEx0RG1TbmNzU0E4bVUxQUs1T0doaThBbEFt?=
 =?utf-8?B?aW92MStQMVBIR2M0SHpUdDhYdWFqNFNUOXRkVmhKVlM5QXJCdXdUWFVlSncw?=
 =?utf-8?B?RHhkcFF6eUoydDNEeWRTaTB0ZUd5Vks1aGQ4QzBMN2MvVnpYQVhaeFZqZmZz?=
 =?utf-8?B?c1gyYzRCR3Q5L3dEREU1cW1DQndFdUowZCtIRkRFNlY5SHZOY2R0VktPM0JE?=
 =?utf-8?B?ZEl2bjhwZmpzMGtqUHYyRzI3QytZM1NycXF3dy9ONzMrMDNXeGZEQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 476c8d71-8c4b-45e5-cb37-08de6d46205c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 10:28:29.2067
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: n7I0oFb3GARBiHVsM39QxcGUGhxxP5DDWjuZcSU3mxx2WrO32Ds/k1Ce/L+xl0b+EnA573k3szH6hdjJHpN4id6K6Gicg8WmM5n1ZiDH2oI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5183

On 16/02/2026 9:31 am, Bertrand Marquis wrote:
> Hi Jan,
>
>> On 16 Feb 2026, at 10:21, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> On 16.02.2026 08:47, Bertrand Marquis wrote:
>>> The SMCCC v1.1 inline helper currently forces a1-a4 into
>>> unsigned long and uses in/out constraints for r0-r3. In
>>> contrast, a5-a7 are passed with their original types via
>>> read-only constraints. On arm64 this means a 32-bit signed
>>> value in a1-a4 is converted to a 64-bit unsigned value, while
>>> the same value in a5-a7 keeps its signed 32-bit form. For
>>> example, a negative int in a2 is widened to unsigned long, but
>>> a negative int in a5 is passed as a 32-bit signed value, so the
>>> SMC sees different encodings depending on argument position.
>>>
>>> Switch the helper to use typed input registers arg0-arg7
>>> derived from the call arguments (keeping a0 cast to u32) and
>>> separate output registers r0-r3. This preserves argument types
>>> consistently across all positions. Argument evaluation order
>>> is unchanged, so we do not reintroduce the issue fixed in
>>> "e00dc325bd9e" ("xen/arm: smccc-1.1: Handle function result as
>>> parameters").
>>>
>>> This also aligns Xen's SMCCC parameter handling with Linux's type-
>>> preserving behavior (same externally visible argument handling,
>>> independent implementation) to avoid surprising differences
>>> between a1-a4 and a5-a7.
>>>
>>> Current callers (PSCI, SCMI, platform SMC pass-through, OP-TEE,
>>> and exynos5) pass unsigned values; exynos5 passes an int CPU id
>>> which should always be > 0.
>> Reported-by: Andrew ?
> Ack, sorry forgot that.
>
>>> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
>>> ---
>>> xen/arch/arm/include/asm/smccc.h | 69 +++++++++++++-------------------
>>> 1 file changed, 27 insertions(+), 42 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
>>> index 441b3ab65dee..5b30dd57b69d 100644
>>> --- a/xen/arch/arm/include/asm/smccc.h
>>> +++ b/xen/arch/arm/include/asm/smccc.h
>>> @@ -99,87 +99,68 @@ struct arm_smccc_res {
>>> #define __count_args(...)                               \
>>>     ___count_args(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1, 0)
>>>
>>> -#define __constraint_write_0                        \
>>> -    "+r" (r0), "=&r" (r1), "=&r" (r2), "=&r" (r3)
>>> -#define __constraint_write_1                        \
>>> -    "+r" (r0), "+r" (r1), "=&r" (r2), "=&r" (r3)
>>> -#define __constraint_write_2                        \
>>> -    "+r" (r0), "+r" (r1), "+r" (r2), "=&r" (r3)
>>> -#define __constraint_write_3                        \
>>> -    "+r" (r0), "+r" (r1), "+r" (r2), "+r" (r3)
>>> -#define __constraint_write_4    __constraint_write_3
>>> -#define __constraint_write_5    __constraint_write_4
>>> -#define __constraint_write_6    __constraint_write_5
>>> -#define __constraint_write_7    __constraint_write_6
>>> -
>>> -#define __constraint_read_0
>>> -#define __constraint_read_1
>>> -#define __constraint_read_2
>>> -#define __constraint_read_3
>>> -#define __constraint_read_4 "r" (r4)
>>> -#define __constraint_read_5 __constraint_read_4, "r" (r5)
>>> -#define __constraint_read_6 __constraint_read_5, "r" (r6)
>>> -#define __constraint_read_7 __constraint_read_6, "r" (r7)
>>> +#define __constraint_read_0 "r" (arg0)
>>> +#define __constraint_read_1 __constraint_read_0, "r" (arg1)
>>> +#define __constraint_read_2 __constraint_read_1, "r" (arg2)
>>> +#define __constraint_read_3 __constraint_read_2, "r" (arg3)
>>> +#define __constraint_read_4 __constraint_read_3, "r" (arg4)
>>> +#define __constraint_read_5 __constraint_read_4, "r" (arg5)
>>> +#define __constraint_read_6 __constraint_read_5, "r" (arg6)
>>> +#define __constraint_read_7 __constraint_read_6, "r" (arg7)
>>>
>>> #define __declare_arg_0(a0, res)                            \
>>>     struct arm_smccc_res    *___res = (res);                \
>>> -    register unsigned long  r0 ASM_REG(0) = (uint32_t)(a0); \
>>> -    register unsigned long  r1 ASM_REG(1);                  \
>>> -    register unsigned long  r2 ASM_REG(2);                  \
>>> -    register unsigned long  r3 ASM_REG(3)
>>> +    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0)
>>>
>>> #define __declare_arg_1(a0, a1, res)                        \
>>>     typeof(a1) __a1 = (a1);                                 \
>>>     struct arm_smccc_res    *___res = (res);                \
>>> -    register unsigned long  r0 ASM_REG(0) = (uint32_t)(a0); \
>>> -    register unsigned long  r1 ASM_REG(1) = __a1;           \
>>> -    register unsigned long  r2 ASM_REG(2);                  \
>>> -    register unsigned long  r3 ASM_REG(3)
>>> +    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
>>> +    register typeof(a1)     arg1 ASM_REG(1) = __a1
>> Is it intentional that you switch to typeof() rather than directly going
>> to auto? This was it'll be more churn, aiui. And if deliberately going
>> only half a step, perhaps worth saying so in the description?
>>
> Yes it is because Andrew wants to rebase his serie on top of this
> patch.

This patch potentially wants backporting, but even if it ends up not
being, fixing the SMCCC types should not be mixed with the auto
conversion; they're both subtle changes and unrelated.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:29:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:29:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233939.1537315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvrQ-0008HT-S4; Mon, 16 Feb 2026 10:29:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233939.1537315; Mon, 16 Feb 2026 10:29: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 1vrvrQ-0008HM-PW; Mon, 16 Feb 2026 10:29:48 +0000
Received: by outflank-mailman (input) for mailman id 1233939;
 Mon, 16 Feb 2026 10:29: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrvrP-0008HC-R7
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:29:47 +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 69bd20fd-0b22-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:29:45 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48069a48629so28512715e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 02:29:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ad015bsm26904605f8f.38.2026.02.16.02.29.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 02:29:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 69bd20fd-0b22-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771237785; x=1771842585; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=cp32WQWbTQ8MKPJJKqDoVmBh1hXH7xKEGVXuVRDu4ck=;
        b=H1bG0pbuPahwCvTmJUhP6NlpWpEGAo4VhDy0l50nZ7c3RaZuxmLpV/RP6D/s9a3jpU
         vvsyCW7BaOmmjurYHQyG8gDV3EZcvuaUAJuZHhZWLQxlw8FPFUHDzydltX2ifGXM9cF8
         5R+7PcdMjm4wDk/S8GCUOvlaJ4UJa6p6WFrlKjAggbU+iO6RuIuZlzQFMmhiJujf28LB
         dCtM7iU+eaODcdoG6Ubh5M7f7NtVIt466YuRGNyJEbDl8BKOIcrGuy/8EvU7Yc3jZsKU
         o3am75gmPJoEXJhZ4Jmy2aEqsOZlnYY+C5YwwU3ua4Y+HECL3P4y5uvheQ5psJ7NXXQA
         HP+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771237785; x=1771842585;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cp32WQWbTQ8MKPJJKqDoVmBh1hXH7xKEGVXuVRDu4ck=;
        b=HCHqyUa8vmDNk5TzcatMxpodI6drBfNRuYRTvTkAvXOTNGkG96tOjJ1oUaXa3SxMH3
         qWa0LUtniHCJkfFnOOS+kGXzsPtcibbMrnlMGa1srYLJC2abVpogby0NnP/4wiUDDICj
         Zalvsc9YWUyjeYQYfM9wXJe2tqyl4z+rJ/pNZMYN7lOy9x0ZWe1cSsuVU5v209Du+3vn
         DvAlw1X/5nys6PniSz/Qkp3nFMDmazIVXJJe3Y0gRO3DhRQPWZF3qFiW9cdL1QZ9AV5J
         1XSDeClL1ZkArNE8UEcKM3wEQ58o7r/UfFUZbKe7XoNByYhrqaaO0OABBYtAUkeNo6qZ
         oljg==
X-Forwarded-Encrypted: i=1; AJvYcCUE1zz+oGOz+/qGCWAE/H0DNgGZS+jb/66D0M3jlOl2tEkxB3M3e2t0pm4yBXCppQhPNwDBGe9Pumc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTZ6IvunMipZn67VOpDqtFGGvQ5GPyyw8XFDCXlwksrhrRDtdI
	KL0a2kxZj2tboV7tDGZo8LddVcC0ndgP9xY/CaRN4Lq09WTtMrIzKgKCbfng5yE+vw==
X-Gm-Gg: AZuq6aLunDrfSc2jLSnqtevw+GvtYFKdNTV/mjNz8BFxjTSjrYQMI4ml5DU00XsdfdX
	NNcwgE+7HUmvlYOP3893psM+UsLZ+SKKfw5Q6/65IpLpcrQqjBjCuOELT+np0lvyK6hh2whODlE
	Qi9pEZbJrh0sV4iFI76ccdfphEMF2hXH3QiSSugc2KirIflS6DuwaTQgjhy2lxzIou408Tkh9Hk
	CxxXHGtuJkZ/Xc4Tllqh+SD4rz/J09GYflVcnVIPlSFVIpnSVnnYFCy8i2BZRlIA05NleO+otJP
	uHwdc9Yl+pN4nLipfQW0xhx0K+DZTywLNn6dncIBQHbmTpureSiD6ZD4tjAksw1k/IL5WqSb3uR
	0gEbzsEvnvZDoQiOO4UNXUT6TVVqzmGoyKxcMDBIf1xmvUaCEq2rTFSpWbMnxW56h3lDqqAWd1X
	BcD60qsnp59JA2cj9ZH8PQgMfax1uqK+FxIfjmdduQK4hb1rMjeMbWLyfsTqOeF1BzaPHag/nTm
	uz4boHG7Agvyak=
X-Received: by 2002:a05:600c:8189:b0:483:6de6:37b8 with SMTP id 5b1f17b1804b1-48373a61afdmr163542105e9.34.1771237785137;
        Mon, 16 Feb 2026 02:29:45 -0800 (PST)
Message-ID: <6948e67b-09d1-4b2f-8c20-560420ebd3c3@suse.com>
Date: Mon, 16 Feb 2026 11:29:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com,
 Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@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: <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 15.02.2026 19:16, Abdelkareem Abdelsaamad wrote:
> --- a/xen/arch/x86/hvm/svm/intr.c
> +++ b/xen/arch/x86/hvm/svm/intr.c
> @@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
>      u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>      intinfo_t event;
>  
> +    if ( vmcb->_vintr.fields.vnmi_enable )
> +    {
> +       if ( !vmcb->_vintr.fields.vnmi_pending &&
> +            !vmcb->_vintr.fields.vnmi_blocking )
> +           vmcb->_vintr.fields.vnmi_pending = 1;

Nit: Off-by-1 indentation, while ...

> +        return;

... interestingly this one's indented correctly.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:35:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:35:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233952.1537326 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrvwW-0001SN-IW; Mon, 16 Feb 2026 10:35:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233952.1537326; Mon, 16 Feb 2026 10: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 1vrvwW-0001SG-FQ; Mon, 16 Feb 2026 10:35:04 +0000
Received: by outflank-mailman (input) for mailman id 1233952;
 Mon, 16 Feb 2026 10:35: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=C5B6=AU=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vrvwU-0001SA-1s
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:35:02 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2198f267-0b23-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 11:34:55 +0100 (CET)
Received: from SA0PR11CA0003.namprd11.prod.outlook.com (2603:10b6:806:d3::8)
 by LV5PR12MB9803.namprd12.prod.outlook.com (2603:10b6:408:306::15) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 10:34:50 +0000
Received: from SA2PEPF000015CA.namprd03.prod.outlook.com
 (2603:10b6:806:d3:cafe::5) by SA0PR11CA0003.outlook.office365.com
 (2603:10b6:806:d3::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend Transport; Mon,
 16 Feb 2026 10:34:46 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SA2PEPF000015CA.mail.protection.outlook.com (10.167.241.200) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 16 Feb 2026 10:34:49 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 04:34:49 -0600
Received: from localhost (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_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 02:34: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: 2198f267-0b23-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aaFW8jf5ffYgHqQjToQYvyqkA5BR5O9Y8bK4/uTi4Kv/nwLr6Dl+LYiKVK3vytvjAjSxoCAO8ROAk9ExrN3/tKWYOWMFTGcPfNIIgAA9iitBaRVvrgBk7Cxh1+5b29WEvCDWfGdWo8if01e7WRDj4dSJoqydVSWaQu+FC/X37vqjgNPWnWxVY3HKloGeiDsWcGPapcgRNwinvWzSwYpcVv1jPuTrCf11MPRdh1p/9WKDRPCVUCHUxW1CockcNhYf4QFgYZrFA9cqwtnkZ/7OQ0fBn0Y8c+OgLxdaHNlg4HlFUNl08ryO7CGxityulSUCzOC09fyTV1PmeQdOKnh4Kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/g1gBG27xa7GJOS+TNorBntEMaz1pFSeo6v2BenKOT8=;
 b=BeGe7vvwMaoyAJGXP0V7quL78mYFfk7vCzqXUxkFsI+zVv9MTYnU3YzOXppr4UcWsRCK4X/QjW8MJzJZ/Ut+iH92mXhOIhY04Ac0kMpIcQJPz+168W3ditsfcg3K02UzpmPdAK2jhO5JXL0P/wIoU8rq/fJSMU7QjXNOYZvFwZsOzSE9H+KPsPK3HWTQ7AeMvEn63jS1u07S38x6Gr6F/g9/TeTgWtJd76IckIkwA2JLHvK/N721d2Jg62kKNnMntrtTk8gPKTiKdfmoO1V5/RzL2JAEY9CVmnb5KpuGWevRVhvMQCSsY/e1mGMhnOGXyoAKqbHhMtMupQi9VdjuWA==
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=/g1gBG27xa7GJOS+TNorBntEMaz1pFSeo6v2BenKOT8=;
 b=uCkSF4TS6J7R5r2676ARvT7ppaYpQR2bG/hJs+Jq6XhX324DQ98u9iA2r0XIA7srJik87mPdBS8OCOl/ryPhK8Ei17XsXqn0roeloYo9Yz83bNnlLKnnGLFnG3Y5nQ7eneOWwQ9GxXGySdH4ulNvIxvr/+mwxGUHp2p86WNrUTk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 16 Feb 2026 11:34:43 +0100
Message-ID: <DGGBHY9HHXIA.C7GM5MX7ODLG@amd.com>
CC: <roger.pau@citrix.com>, <jbeulich@suse.com>, <andrew.cooper3@citrix.com>,
	<jason.andryuk@amd.com>
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Stefano Stabellini <stefano.stabellini@amd.com>,
	<xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260213220205.196179-1-stefano.stabellini@amd.com>
In-Reply-To: <20260213220205.196179-1-stefano.stabellini@amd.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb09.amd.com
 (10.181.42.218)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF000015CA:EE_|LV5PR12MB9803:EE_
X-MS-Office365-Filtering-Correlation-Id: 9f35e570-dd71-4c2c-3525-08de6d47030d
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?UnYwOFk3ekpMb3VxUEoyYjY4ZFZjaWZTWWFNN0czNmNJMHE2Y0Y3SURwU1BH?=
 =?utf-8?B?TmxUeStHVDZwVDVvT0dBemtaMEN6ZGlOVVdiVDRKMEw0TktOUFBOZStKbWdV?=
 =?utf-8?B?ajB3ZFBjdWN0cnZKWnliU241S3IvVXlDdzFLeVlqcllYOTNkaXpsNHRLL1Q1?=
 =?utf-8?B?R3RMaE1iYjVuTkpTbjQrNTFabElaMVU1TUtNZmd2R09LNWZWMDJQSTMxQ1ZB?=
 =?utf-8?B?b2xNb290ZEg0OFV5dmpmSXRiNUY1M3J0R2xVckkzMTdqdnBzTzZ3TGpQU0dh?=
 =?utf-8?B?N0ZyZFA1UjZUUnYzNnZ0NjJMUENyekZPUVVnNGdpd25JN3JVaHhQTDBNOWFF?=
 =?utf-8?B?dUVtUjVPQ3dqZ0x5ODhOekpXM3ZOMHBwWmM3SHVITEMrWS9PaXJaU2ZPSTFC?=
 =?utf-8?B?U2VWbEp6MkJoSG5oam1DRlU1N0k2clJLRERJbzd2QVhwRy9TbTI5TmZzQ1RF?=
 =?utf-8?B?VmhJUGlKNTRDTkk1VUpUeXZlK2xNUTB2Q1BYNDdUTGVZa3kyUDhrTzh0K1Ex?=
 =?utf-8?B?REkwRzROc050VUsrT3dOcGEvTEhzQ1I3aXNlNEVSVW1wdWVOV2tQRmtndzZL?=
 =?utf-8?B?NzdmV0ZaMmtXcEpDVnhMdjIrdjRQUjVTZTl3Tmo5VzBLOUt1OXhsZTd2algw?=
 =?utf-8?B?WEt3Y0s4UDBsbkRZZ1NKNHZUbDhVOENrWmkzMlpCdUtDb3BhQXZoL0dtKzJM?=
 =?utf-8?B?ekVQYTUxbnZLMm1UeFd3VG9ZM0RZTFRkdUIrZmRDalZUY3FQQi9LK1ArUEQ0?=
 =?utf-8?B?TEVsdlRHdHR6QWtrdjFTcG1VcldqRWoybVdSRnE1WlFUcnZHYklkc3RaWitp?=
 =?utf-8?B?U2xOVWRBb0tZQjd1Rlh3bW1idFNlaEpkUlI0TEZFTlFzS2EzWVVMQ1R3MFFV?=
 =?utf-8?B?eFlMbHlDNGh6d3A3QVJUS2k4WVJlQVEvN3JrZU9HVHY2Z01RUFpuV2ZQKzFs?=
 =?utf-8?B?TEIyUDBneDdZNkJFVkw2bzVJWTRDeU9FTWhoMlNMaUQvcGRyalhReWNyQWNx?=
 =?utf-8?B?TEtGTlFrZzNQSFJMcHpDemI4ajJISWtuMm9JSUhjUktpbW92aiszb1djVzZN?=
 =?utf-8?B?S3BFMnhwZ3BEN1REYzYycWF1Q2ZmVE5kMm9EVjcrR2VtcmNweEt6aThSK2tG?=
 =?utf-8?B?TWVPWjZ5VGdOYnd5Y1FnZXR0aFV5dUlKeTgwSFpsNGd6NFg4bW5VZG96dGNV?=
 =?utf-8?B?RVY2emRBK3l3YVlEYU5GeVdubEJIZktYNEY2d1hzb2RmSXI2cEQ2ZFdzZkFC?=
 =?utf-8?B?dlRFQUt3MEtOTFlxSTg1bXFJUjdBTUdpZzBZTkpzVW0ySklCaHZnUUdXZThJ?=
 =?utf-8?B?ZTMxR0xJRHNyeGFNRnJnai9JelZXZlU1U2VWdHlqdzJ4MzU2OUtUcTFualJZ?=
 =?utf-8?B?R3hjenAwcnZ0cDZBY0ZHb3c1STZRZUxzUnVJaG5ORjh1ZTkrSHU5YUU4bDU0?=
 =?utf-8?B?WGRvSFJLanFYeTZ2RzZhendLMFgyaVNsTG9vS0FpMlFjSld3R0MweElqVzNS?=
 =?utf-8?B?b0Z3U3Rkc3ozQlFaVmlxMGRKNWhiTlFaVEZDRW9JcUJpY25wTHd4MkpDOHVR?=
 =?utf-8?B?L3J5Tk1ZMStNQk9pdFVRT2swUHZwSmRXWDV3RmpYM1Fwd201RDE4a0tPQnYv?=
 =?utf-8?B?SHQ2VWYya0t4NkRoVEhUSzkvN05naDhYdThiMUprd3M1S3RMdXVFcnZuZEoz?=
 =?utf-8?B?ak1QaHFmUnpzMXdEcml3VU9yb3I2cU9ERXhyV3lTUU5zdmlMd3ZaWURvK0FV?=
 =?utf-8?B?L0F5UHF2ZUwvTWpqeU85bHdDNzJLRDVTLzlvVHNEd2NFOTFKRktkRGRMRVJT?=
 =?utf-8?B?UXhRZHoyNDB1L0hZM1FMb1dPeW9qVDF6WTJCVXh1b2dSMTkvOHR2azFzYUwx?=
 =?utf-8?B?QmV6bW5URDlaQVIwSS8yY3pyTExPWlRXaFNtVjkyLzJ3VnVZTzNIYjZweEhX?=
 =?utf-8?B?T1RFamxKTW5Ka0xTeHhoNWFmK1hpQjFvaDMvMkQrcGY1U2hCKzRVRXh4Q1Zv?=
 =?utf-8?B?ZHl4TysxY3dHZ25kdndZbjl4WUU5UldqSGRMMHFtSXQzWjRPNTlQRXF6WmFm?=
 =?utf-8?B?dEpMbHNXVnlIcnRzcThyWEo1WkUySHB5d29Hb1l0TnltMUxqdHhiR3BIdDgz?=
 =?utf-8?B?U1lyaElwQzdnUlB4cTlDK1h4czlVRHZiR2p4ZENEY3NicXVmTTBZY1JBZ0ll?=
 =?utf-8?B?cGc3c09aWmZNWjlwbm9WMUZJcnQxOVhFbzhzYnd4Qlk0bEIrVzByWmoxUEt3?=
 =?utf-8?B?Wnlyb2ozTDArOWxreW4veWExcTlRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	gzSuO+544Fa7+T57FywYeU27HVj0DfqeQBBJ4NPK5rQ08xgTBrnMkAoG5KVO1uA+G+W3dILq7r4NtmUirvRmlY1eEcxP3tmVoeDURUKXnHgJ6Ev+qZsnU6ADlHJlR8MP8qrcxY/ZrdbbSNZLn52AzznzxXa9OOPQsgDJ37b/YWtn+Y/D6+bmvRLEya3Yi9NzIeOIX0SU0FPJDTGLlOljuoAoLRx2jNCj9m9jpTo+m2NGIkpfWgnNWRBapLEzxzX250PWS7cBjHtreJACr+98RLWn6X98JPFR8bHennQXsew8jgeUILkqQQ7msdMsLdktdt6PxilUSNQEevpgLz1U1uc9usieRQecO51F9PJ5YCx3xoDNXugS2QVpLRNUxtffqTLMxp4Kr7RBMXYZX1kdYLgKxSNHM70d6RFlXAIto8qiHCY/JyKo5GdSE2fzR/m6
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 10:34:49.4141
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9f35e570-dd71-4c2c-3525-08de6d47030d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF000015CA.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV5PR12MB9803

On Fri Feb 13, 2026 at 11:02 PM CET, Stefano Stabellini wrote:
> Introduce CONFIG_NESTED_VIRT (default n) to allow nested virtualization
> support to be disabled at build time. This is useful for embedded or
> safety-focused deployments where nested virtualization is not needed,
> reducing code size and attack surface.
>
> When CONFIG_NESTED_VIRT=3Dn, the following source files are excluded:
> - arch/x86/hvm/nestedhvm.c
> - arch/x86/hvm/svm/nestedsvm.c
> - arch/x86/hvm/vmx/vvmx.c
> - arch/x86/mm/nested.c
> - arch/x86/mm/hap/nested_hap.c
> - arch/x86/mm/hap/nested_ept.c
>
> Add inline stubs where needed in headers. Guard assembly code paths
> for nested virt with #ifdef CONFIG_NESTED_VIRT. Move exception
> injection for VMX/SVM instructions to the callers in vmx.c/svm.c to
> avoid header dependency issues in the stubs.
>
> No functional change when CONFIG_NESTED_VIRT=3Dy.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>
> ---
> Changes in v3:
> - Kconfig: Change "depends on AMD_SVM || INTEL_VMX" to "depends on HVM"
> - Kconfig: Remove redundant "default n" line
> - Kconfig: Remove "If unsure, say N." from help text
> - mm/hap/Makefile: Simplify using intermediate nested-y variable:
>     nested-y :=3D nested_hap.o
>     nested-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
>     obj-$(CONFIG_NESTED_VIRT) +=3D $(nested-y)
> - svm/nestedhvm.h: Remove #ifdef CONFIG_NESTED_VIRT stubs, keep only
>   function declarations (the functions are only called from code that
>   is already compiled out when nested virt is disabled)
> - svm/nestedhvm.h: Add CONFIG_NESTED_VIRT guard to nsvm_efer_svm_enabled
>   macro to return false when nested virt is disabled
> - svm/svm.c: Move #UD injection for STGI/CLGI to the caller instead of
>   stub functions, checking nestedhvm_enabled()/nsvm_efer_svm_enabled()
> - svm/svm.c: Mark svm_vmexit_do_vmrun/vmload/vmsave as __maybe_unused
> - svm/svm.c: Remove empty nsvm_vcpu_switch stub (now guarded in asm)
> - svm/entry.S: Add #ifdef CONFIG_NESTED_VIRT guards around nested virt
>   specific code paths
> - vmx/vmx.c: Remove empty nvmx_switch_guest stub (now guarded in asm)
> - vmx/vmx.c: Move nvmx_enqueue_n2_exceptions and nvmx_vmexit_event to
>   vvmx.c where they belong
> - vmx/vvmx.h: Add declarations for nvmx_vmexit_event and
>   nvmx_enqueue_n2_exceptions
> - vmx/vvmx.h: Fix nvmx_msr_read_intercept stub comment
> - vmx/vvmx.h: nvmx_handle_vmx_insn stub returns X86EMUL_EXCEPTION with
>   ASSERT_UNREACHABLE (caller handles injection)
> - vmx/vvmx.h: Convert get_vvmcs macro to inline function in stubs
> - vmx/entry.S: Add #ifdef CONFIG_NESTED_VIRT guard around nvmx_switch_gue=
st
> - nestedhvm.h: Convert macro stubs to proper inline functions
> ---
>  xen/arch/x86/hvm/Kconfig                 |  7 +++
>  xen/arch/x86/hvm/Makefile                |  2 +-
>  xen/arch/x86/hvm/svm/Makefile            |  2 +-
>  xen/arch/x86/hvm/svm/entry.S             |  4 ++
>  xen/arch/x86/hvm/svm/nestedhvm.h         |  2 +-
>  xen/arch/x86/hvm/svm/svm.c               | 18 ++++--
>  xen/arch/x86/hvm/vmx/Makefile            |  2 +-
>  xen/arch/x86/hvm/vmx/entry.S             |  2 +
>  xen/arch/x86/hvm/vmx/vmx.c               | 31 +---------
>  xen/arch/x86/hvm/vmx/vvmx.c              | 26 +++++++++
>  xen/arch/x86/include/asm/hvm/hvm.h       |  2 +-
>  xen/arch/x86/include/asm/hvm/nestedhvm.h | 64 +++++++++++++++++---
>  xen/arch/x86/include/asm/hvm/vmx/vvmx.h  | 74 ++++++++++++++++++++++++
>  xen/arch/x86/mm/Makefile                 |  2 +-
>  xen/arch/x86/mm/hap/Makefile             |  5 +-
>  xen/arch/x86/mm/p2m.h                    |  6 ++
>  xen/arch/x86/sysctl.c                    |  2 +
>  xen/include/public/sysctl.h              |  4 +-
>  18 files changed, 204 insertions(+), 51 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/Kconfig b/xen/arch/x86/hvm/Kconfig
> index f32bf5cbb7..af661385b5 100644
> --- a/xen/arch/x86/hvm/Kconfig
> +++ b/xen/arch/x86/hvm/Kconfig
> @@ -92,4 +92,11 @@ config MEM_SHARING
>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>  	depends on INTEL_VMX
> =20
> +config NESTED_VIRT
> +	bool "Nested virtualization support"
> +	depends on HVM
> +	help
> +	  Enable nested virtualization, allowing guests to run their own
> +	  hypervisors. This requires hardware support.

nit: If we state above "allowing HVM guests..." rather than plain "guests" =
we can
then get rid of the "This requires hardware support line". What you probabl=
y
meant is that this is HVM-only and we don't allow PV nesting.

"This requires hardware support" makes me (the user) think my hardware need=
s
something special to support nesting, when in reality I just need HVM suppo=
rt.

> +
>  endif
> diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
> index f34fb03934..b8a0a68624 100644
> --- a/xen/arch/x86/hvm/Makefile
> +++ b/xen/arch/x86/hvm/Makefile
> @@ -18,7 +18,7 @@ obj-y +=3D irq.o
>  obj-y +=3D mmio.o
>  obj-$(CONFIG_VM_EVENT) +=3D monitor.o
>  obj-y +=3D mtrr.o
> -obj-y +=3D nestedhvm.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nestedhvm.o
>  obj-y +=3D pmtimer.o
>  obj-y +=3D quirks.o
>  obj-y +=3D rtc.o
> diff --git a/xen/arch/x86/hvm/svm/Makefile b/xen/arch/x86/hvm/svm/Makefil=
e
> index 8a072cafd5..92418e3444 100644
> --- a/xen/arch/x86/hvm/svm/Makefile
> +++ b/xen/arch/x86/hvm/svm/Makefile
> @@ -2,6 +2,6 @@ obj-y +=3D asid.o
>  obj-y +=3D emulate.o
>  obj-bin-y +=3D entry.o
>  obj-y +=3D intr.o
> -obj-y +=3D nestedsvm.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nestedsvm.o
>  obj-y +=3D svm.o
>  obj-y +=3D vmcb.o
> diff --git a/xen/arch/x86/hvm/svm/entry.S b/xen/arch/x86/hvm/svm/entry.S
> index af8db23b03..7964c80750 100644
> --- a/xen/arch/x86/hvm/svm/entry.S
> +++ b/xen/arch/x86/hvm/svm/entry.S
> @@ -28,7 +28,9 @@ FUNC(svm_asm_do_resume)
>          GET_CURRENT(bx)
>  .Lsvm_do_resume:
>          call svm_intr_assist
> +#ifdef CONFIG_NESTED_VIRT
>          call nsvm_vcpu_switch
> +#endif
>          ASSERT_NOT_IN_ATOMIC
> =20
>          mov  VCPU_processor(%rbx),%eax
> @@ -39,6 +41,7 @@ FUNC(svm_asm_do_resume)
>          cmp  %ecx,(%rdx,%rax,1)
>          jne  .Lsvm_process_softirqs
> =20
> +#ifdef CONFIG_NESTED_VIRT
>          cmp  %cl,VCPU_nsvm_hap_enabled(%rbx)
>  UNLIKELY_START(ne, nsvm_hap)
>          cmp  %rcx,VCPU_nhvm_p2m(%rbx)
> @@ -52,6 +55,7 @@ UNLIKELY_START(ne, nsvm_hap)
>          sti
>          jmp  .Lsvm_do_resume
>  __UNLIKELY_END(nsvm_hap)
> +#endif
> =20
>          call svm_vmenter_helper
> =20
> diff --git a/xen/arch/x86/hvm/svm/nestedhvm.h b/xen/arch/x86/hvm/svm/nest=
edhvm.h
> index 9bfed5ffd7..5cb85410f8 100644
> --- a/xen/arch/x86/hvm/svm/nestedhvm.h
> +++ b/xen/arch/x86/hvm/svm/nestedhvm.h
> @@ -24,7 +24,7 @@
> =20
>  /* True when l1 guest enabled SVM in EFER */
>  #define nsvm_efer_svm_enabled(v) \
> -    (!!((v)->arch.hvm.guest_efer & EFER_SVME))
> +    (IS_ENABLED(CONFIG_NESTED_VIRT) && ((v)->arch.hvm.guest_efer & EFER_=
SVME))
> =20
>  int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr);
>  void nestedsvm_vmexit_defer(struct vcpu *v,
> diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
> index 18ba837738..2cabc89fb5 100644
> --- a/xen/arch/x86/hvm/svm/svm.c
> +++ b/xen/arch/x86/hvm/svm/svm.c
> @@ -2165,7 +2165,7 @@ static void svm_vmexit_do_pause(struct cpu_user_reg=
s *regs)
>      vcpu_yield();
>  }
> =20
> -static void
> +static void __maybe_unused
>  svm_vmexit_do_vmrun(struct cpu_user_regs *regs,
>                      struct vcpu *v, uint64_t vmcbaddr)
>  {
> @@ -2211,7 +2211,7 @@ nsvm_get_nvmcb_page(struct vcpu *v, uint64_t vmcbad=
dr)
>      return  page;
>  }
> =20
> -static void
> +static void __maybe_unused
>  svm_vmexit_do_vmload(struct vmcb_struct *vmcb,
>                       struct cpu_user_regs *regs,
>                       struct vcpu *v, uint64_t vmcbaddr)
> @@ -2246,7 +2246,7 @@ svm_vmexit_do_vmload(struct vmcb_struct *vmcb,
>      __update_guest_eip(regs, inst_len);
>  }
> =20
> -static void
> +static void __maybe_unused
>  svm_vmexit_do_vmsave(struct vmcb_struct *vmcb,
>                       struct cpu_user_regs *regs,
>                       struct vcpu *v, uint64_t vmcbaddr)
> @@ -2465,6 +2465,7 @@ static struct hvm_function_table __initdata_cf_clob=
ber svm_function_table =3D {
>      .set_rdtsc_exiting    =3D svm_set_rdtsc_exiting,
>      .get_insn_bytes       =3D svm_get_insn_bytes,
> =20
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise =3D nsvm_vcpu_initialise,
>      .nhvm_vcpu_destroy =3D nsvm_vcpu_destroy,
>      .nhvm_vcpu_reset =3D nsvm_vcpu_reset,
> @@ -2474,6 +2475,7 @@ static struct hvm_function_table __initdata_cf_clob=
ber svm_function_table =3D {
>      .nhvm_vmcx_hap_enabled =3D nsvm_vmcb_hap_enabled,
>      .nhvm_intr_blocked =3D nsvm_intr_blocked,
>      .nhvm_hap_walk_L1_p2m =3D nsvm_hap_walk_L1_p2m,
> +#endif
> =20
>      .get_reg =3D svm_get_reg,
>      .set_reg =3D svm_set_reg,
> @@ -3011,10 +3013,16 @@ void asmlinkage svm_vmexit_handler(void)
>          svm_vmexit_do_vmsave(vmcb, regs, v, regs->rax);
>          break;
>      case VMEXIT_STGI:
> -        svm_vmexit_do_stgi(regs, v);
> +        if ( !nestedhvm_enabled(v->domain) )
> +            hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> +        else
> +            svm_vmexit_do_stgi(regs, v);
>          break;
>      case VMEXIT_CLGI:
> -        svm_vmexit_do_clgi(regs, v);
> +        if ( !nsvm_efer_svm_enabled(v) )
> +            hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
> +        else
> +            svm_vmexit_do_clgi(regs, v);
>          break;

nit: For readability I'd consider reversing the polarity and putting the en=
abled
cases in the first branch.

> =20
>      case VMEXIT_XSETBV:
> diff --git a/xen/arch/x86/hvm/vmx/Makefile b/xen/arch/x86/hvm/vmx/Makefil=
e
> index 04a29ce59d..902564b3e2 100644
> --- a/xen/arch/x86/hvm/vmx/Makefile
> +++ b/xen/arch/x86/hvm/vmx/Makefile
> @@ -3,4 +3,4 @@ obj-y +=3D intr.o
>  obj-y +=3D realmode.o
>  obj-y +=3D vmcs.o
>  obj-y +=3D vmx.o
> -obj-y +=3D vvmx.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D vvmx.o
> diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S
> index 2bfee715b3..4d62efddf4 100644
> --- a/xen/arch/x86/hvm/vmx/entry.S
> +++ b/xen/arch/x86/hvm/vmx/entry.S
> @@ -83,7 +83,9 @@ FUNC(vmx_asm_vmexit_handler)
> =20
>  .Lvmx_do_vmentry:
>          call vmx_intr_assist
> +#ifdef CONFIG_NESTED_VIRT
>          call nvmx_switch_guest
> +#endif
>          ASSERT_NOT_IN_ATOMIC
> =20
>          mov  VCPU_processor(%rbx),%eax
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 82c55f49ae..4e3c8018d2 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -2014,33 +2014,6 @@ static void cf_check vmx_update_guest_efer(struct =
vcpu *v)
>          vmx_set_msr_intercept(v, MSR_EFER, VMX_MSR_R);
>  }
> =20
> -static void nvmx_enqueue_n2_exceptions(struct vcpu *v,
> -            unsigned long intr_fields, int error_code, uint8_t source)
> -{
> -    struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
> -
> -    if ( !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) ) {
> -        /* enqueue the exception till the VMCS switch back to L1 */
> -        nvmx->intr.intr_info =3D intr_fields;
> -        nvmx->intr.error_code =3D error_code;
> -        nvmx->intr.source =3D source;
> -        vcpu_nestedhvm(v).nv_vmexit_pending =3D 1;
> -        return;
> -    }
> -    else
> -        gdprintk(XENLOG_ERR, "Double Fault on Nested Guest: exception %l=
x %x"
> -                 "on %lx %x\n", intr_fields, error_code,
> -                 nvmx->intr.intr_info, nvmx->intr.error_code);
> -}
> -
> -static int cf_check nvmx_vmexit_event(
> -    struct vcpu *v, const struct x86_event *event)
> -{
> -    nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
> -                               hvm_intsrc_none);
> -    return NESTEDHVM_VMEXIT_DONE;
> -}
> -
>  static void __vmx_inject_exception(int trap, int type, int error_code)
>  {
>      unsigned long intr_fields;
> @@ -2933,6 +2906,7 @@ static struct hvm_function_table __initdata_cf_clob=
ber vmx_function_table =3D {
>      .handle_cd            =3D vmx_handle_cd,
>      .set_info_guest       =3D vmx_set_info_guest,
>      .set_rdtsc_exiting    =3D vmx_set_rdtsc_exiting,
> +#ifdef CONFIG_NESTED_VIRT
>      .nhvm_vcpu_initialise =3D nvmx_vcpu_initialise,
>      .nhvm_vcpu_destroy    =3D nvmx_vcpu_destroy,
>      .nhvm_vcpu_reset      =3D nvmx_vcpu_reset,
> @@ -2942,8 +2916,9 @@ static struct hvm_function_table __initdata_cf_clob=
ber vmx_function_table =3D {
>      .nhvm_vcpu_vmexit_event =3D nvmx_vmexit_event,
>      .nhvm_intr_blocked    =3D nvmx_intr_blocked,
>      .nhvm_domain_relinquish_resources =3D nvmx_domain_relinquish_resourc=
es,
> -    .update_vlapic_mode =3D vmx_vlapic_msr_changed,
>      .nhvm_hap_walk_L1_p2m =3D nvmx_hap_walk_L1_p2m,
> +#endif
> +    .update_vlapic_mode =3D vmx_vlapic_msr_changed,
>  #ifdef CONFIG_VM_EVENT
>      .enable_msr_interception =3D vmx_enable_msr_interception,
>  #endif
> diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
> index 38952f0696..2bb42678c5 100644
> --- a/xen/arch/x86/hvm/vmx/vvmx.c
> +++ b/xen/arch/x86/hvm/vmx/vvmx.c
> @@ -2821,6 +2821,32 @@ void nvmx_set_cr_read_shadow(struct vcpu *v, unsig=
ned int cr)
>      __vmwrite(read_shadow_field, v->arch.hvm.nvcpu.guest_cr[cr]);
>  }
> =20
> +void nvmx_enqueue_n2_exceptions(struct vcpu *v,
> +            unsigned long intr_fields, int error_code, uint8_t source)
> +{
> +    struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v);
> +
> +    if ( !(nvmx->intr.intr_info & INTR_INFO_VALID_MASK) ) {
> +        /* enqueue the exception till the VMCS switch back to L1 */
> +        nvmx->intr.intr_info =3D intr_fields;
> +        nvmx->intr.error_code =3D error_code;
> +        nvmx->intr.source =3D source;
> +        vcpu_nestedhvm(v).nv_vmexit_pending =3D 1;
> +        return;
> +    }
> +    else
> +        gdprintk(XENLOG_ERR, "Double Fault on Nested Guest: exception %l=
x %x"
> +                 "on %lx %x\n", intr_fields, error_code,
> +                 nvmx->intr.intr_info, nvmx->intr.error_code);
> +}
> +
> +int cf_check nvmx_vmexit_event(struct vcpu *v, const struct x86_event *e=
vent)
> +{
> +    nvmx_enqueue_n2_exceptions(v, event->vector, event->error_code,
> +                               hvm_intsrc_none);
> +    return NESTEDHVM_VMEXIT_DONE;
> +}
> +
>  void __init start_nested_vmx(struct hvm_function_table *hvm_function_tab=
le)
>  {
>      /* TODO: Require hardware support before enabling nested virt */
> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/as=
m/hvm/hvm.h
> index 7d9774df59..536a38b450 100644
> --- a/xen/arch/x86/include/asm/hvm/hvm.h
> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
> @@ -711,7 +711,7 @@ static inline bool hvm_altp2m_supported(void)
>  /* Returns true if we have the minimum hardware requirements for nested =
virt */
>  static inline bool hvm_nested_virt_supported(void)
>  {
> -    return hvm_funcs.caps.nested_virt;
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) && hvm_funcs.caps.nested_virt;
>  }
> =20
>  #ifdef CONFIG_ALTP2M
> diff --git a/xen/arch/x86/include/asm/hvm/nestedhvm.h b/xen/arch/x86/incl=
ude/asm/hvm/nestedhvm.h
> index ea2c1bc328..2f8209271a 100644
> --- a/xen/arch/x86/include/asm/hvm/nestedhvm.h
> +++ b/xen/arch/x86/include/asm/hvm/nestedhvm.h
> @@ -25,9 +25,21 @@ enum nestedhvm_vmexits {
>  /* Nested HVM on/off per domain */
>  static inline bool nestedhvm_enabled(const struct domain *d)
>  {
> -    return IS_ENABLED(CONFIG_HVM) && (d->options & XEN_DOMCTL_CDF_nested=
_virt);
> +    return IS_ENABLED(CONFIG_NESTED_VIRT) &&
> +           (d->options & XEN_DOMCTL_CDF_nested_virt);
>  }
> =20
> +/* Nested paging */
> +#define NESTEDHVM_PAGEFAULT_DONE       0
> +#define NESTEDHVM_PAGEFAULT_INJECT     1
> +#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> +#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> +#define NESTEDHVM_PAGEFAULT_MMIO       4
> +#define NESTEDHVM_PAGEFAULT_RETRY      5
> +#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
> +
> +#ifdef CONFIG_NESTED_VIRT
> +
>  /* Nested VCPU */
>  int nestedhvm_vcpu_initialise(struct vcpu *v);
>  void nestedhvm_vcpu_destroy(struct vcpu *v);
> @@ -38,14 +50,6 @@ bool nestedhvm_vcpu_in_guestmode(struct vcpu *v);
>  #define nestedhvm_vcpu_exit_guestmode(v)  \
>      vcpu_nestedhvm(v).nv_guestmode =3D 0
> =20
> -/* Nested paging */
> -#define NESTEDHVM_PAGEFAULT_DONE       0
> -#define NESTEDHVM_PAGEFAULT_INJECT     1
> -#define NESTEDHVM_PAGEFAULT_L1_ERROR   2
> -#define NESTEDHVM_PAGEFAULT_L0_ERROR   3
> -#define NESTEDHVM_PAGEFAULT_MMIO       4
> -#define NESTEDHVM_PAGEFAULT_RETRY      5
> -#define NESTEDHVM_PAGEFAULT_DIRECT_MMIO 6
>  int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_t *L2_gpa,
>                                      struct npfec npfec);
> =20
> @@ -59,6 +63,48 @@ unsigned long *nestedhvm_vcpu_iomap_get(bool ioport_80=
, bool ioport_ed);
> =20
>  void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m);
> =20
> +#else /* !CONFIG_NESTED_VIRT */

There's a lot more stubs than needed here.

> +
> +static inline int nestedhvm_vcpu_initialise(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +    return -EOPNOTSUPP;
> +}

Can remove.

> +static inline void nestedhvm_vcpu_destroy(struct vcpu *v) { }

Must stay.

> +static inline void nestedhvm_vcpu_reset(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +}

Can remove.

> +static inline bool nestedhvm_vcpu_in_guestmode(struct vcpu *v) { return =
false; }

Must stay.

> +static inline int nestedhvm_hap_nested_page_fault(struct vcpu *v, paddr_=
t *L2_gpa,
> +                                                  struct npfec npfec)
> +{
> +    ASSERT_UNREACHABLE();
> +    return NESTEDHVM_PAGEFAULT_L0_ERROR;
> +}

Can remove

> +static inline void nestedhvm_vcpu_enter_guestmode(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline void nestedhvm_vcpu_exit_guestmode(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +}

These two can be removed. It might be good to keep the real macros hidden u=
nder
CONFIG_NESTED_VIRT though to ensure they can't be called.

> +static inline bool nestedhvm_paging_mode_hap(struct vcpu *v)
> +{
> +    return false;
> +}

This can be removed with a cleaner IS_ENABLED() check in nhvm_vmcx_hap_enab=
led()

> +static inline bool nestedhvm_vmswitch_in_progress(struct vcpu *v)
> +{
> +    return false;
> +}

Would be cleaner with an IS_ENABLED() check in the macro itself, IMO.

> +static inline void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
> +{
> +    ASSERT_UNREACHABLE();
> +}

Can remove.

> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  static inline bool nestedhvm_is_n2(struct vcpu *v)
>  {
>      if ( !nestedhvm_enabled(v->domain) ||
> diff --git a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h b/xen/arch/x86/inclu=
de/asm/hvm/vmx/vvmx.h
> index da10d3fa96..d0c1ae29f6 100644
> --- a/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
> +++ b/xen/arch/x86/include/asm/hvm/vmx/vvmx.h

Most stubs in this header aren't needed.

You only need nvmx_cpu_up(), nvmx_cpu_dead(), nvmx_msr_read_intercept() and
nvmx_handle_insn(). There's also a bug in that last one...

> @@ -73,6 +73,8 @@ union vmx_inst_info {
>      u32 word;
>  };
> =20
> +#ifdef CONFIG_NESTED_VIRT
> +
>  int cf_check nvmx_vcpu_initialise(struct vcpu *v);
>  void cf_check nvmx_vcpu_destroy(struct vcpu *v);
>  int cf_check nvmx_vcpu_reset(struct vcpu *v);
> @@ -199,5 +201,77 @@ int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga=
,
>                          uint64_t *exit_qual, uint32_t *exit_reason);
>  int nvmx_cpu_up_prepare(unsigned int cpu);
>  void nvmx_cpu_dead(unsigned int cpu);
> +int cf_check nvmx_vmexit_event(struct vcpu *v, const struct x86_event *e=
vent);
> +void nvmx_enqueue_n2_exceptions(struct vcpu *v,
> +            unsigned long intr_fields, int error_code, uint8_t source);
> +
> +#else /* !CONFIG_NESTED_VIRT */
> +
> +static inline void nvmx_update_exec_control(struct vcpu *v, u32 value)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline void nvmx_update_secondary_exec_control(struct vcpu *v,
> +                                                      unsigned long valu=
e)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline void nvmx_update_exception_bitmap(struct vcpu *v,
> +                                                unsigned long value)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline u64 nvmx_get_tsc_offset(struct vcpu *v)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}
> +static inline void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int =
cr)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline bool nvmx_intercepts_exception(struct vcpu *v, unsigned in=
t vector,
> +                                             int error_code)
> +{
> +    ASSERT_UNREACHABLE();
> +    return false;
> +}
> +static inline int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,
> +                                         unsigned int exit_reason)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}
> +static inline void nvmx_idtv_handling(void)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +static inline int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_con=
tent)
> +{
> +    /* return 0 to trigger #GP */
> +    return 0;
> +}
> +static inline int nvmx_handle_vmx_insn(struct cpu_user_regs *regs,
> +                                       unsigned int exit_reason)
> +{
> +    ASSERT_UNREACHABLE();
> +    return X86EMUL_EXCEPTION;
> +}

... here. This is perfectly reachable and will cause a hypervisor crash sho=
uld
an L1 try to probe the VMX-family of instructions. Even on realease this wo=
uld
behave very oddly because you're missing injecting #UD. This stub should be=
:

        hvm_inject_hw_exception(X86_EXC_UD, X86_EVENT_NO_EC);
        return X86EMUL_EXCEPTION;

> +static inline int nvmx_cpu_up_prepare(unsigned int cpu) { return 0; }
> +static inline void nvmx_cpu_dead(unsigned int cpu) { }
> +static inline void nvmx_enqueue_n2_exceptions(struct vcpu *v,
> +            unsigned long intr_fields, int error_code, uint8_t source)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +
> +static inline u64 get_vvmcs(const struct vcpu *vcpu, u32 encoding)
> +{
> +    ASSERT_UNREACHABLE();
> +    return 0;
> +}
> +
> +#endif /* CONFIG_NESTED_VIRT */
> +
>  #endif /* __ASM_X86_HVM_VVMX_H__ */
> =20
> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> index 960f6e8409..aa15811c2e 100644
> --- a/xen/arch/x86/mm/Makefile
> +++ b/xen/arch/x86/mm/Makefile
> @@ -7,7 +7,7 @@ obj-$(CONFIG_SHADOW_PAGING) +=3D guest_walk_4.o
>  obj-$(CONFIG_VM_EVENT) +=3D mem_access.o
>  obj-$(CONFIG_MEM_PAGING) +=3D mem_paging.o
>  obj-$(CONFIG_MEM_SHARING) +=3D mem_sharing.o
> -obj-$(CONFIG_HVM) +=3D nested.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D nested.o
>  obj-$(CONFIG_HVM) +=3D p2m.o
>  obj-y +=3D p2m-basic.o
>  obj-$(CONFIG_INTEL_VMX) +=3D p2m-ept.o
> diff --git a/xen/arch/x86/mm/hap/Makefile b/xen/arch/x86/mm/hap/Makefile
> index 67c29b2162..efdc91ea82 100644
> --- a/xen/arch/x86/mm/hap/Makefile
> +++ b/xen/arch/x86/mm/hap/Makefile
> @@ -2,5 +2,6 @@ obj-y +=3D hap.o
>  obj-y +=3D guest_walk_2.o
>  obj-y +=3D guest_walk_3.o
>  obj-y +=3D guest_walk_4.o
> -obj-y +=3D nested_hap.o
> -obj-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
> +nested-y :=3D nested_hap.o
> +nested-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
> +obj-$(CONFIG_NESTED_VIRT) +=3D $(nested-y)

Why not use plain filter?

	-obj-y +=3D nested_hap.o
	+obj-$(CONFIG_NESTED_VIRT) +=3D nested_hap.o
	-obj-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
	+obj-$(filter $(CONFIG_NESTED_VIRT),$(CONFIG_INTEL_VMX)) +=3D nested_ept.o

> diff --git a/xen/arch/x86/mm/p2m.h b/xen/arch/x86/mm/p2m.h
> index 635f5a7f45..63808dddcc 100644
> --- a/xen/arch/x86/mm/p2m.h
> +++ b/xen/arch/x86/mm/p2m.h
> @@ -25,9 +25,15 @@ void p2m_teardown_altp2m(struct domain *d);
>  void p2m_flush_table_locked(struct p2m_domain *p2m);
>  int __must_check p2m_remove_entry(struct p2m_domain *p2m, gfn_t gfn, mfn=
_t mfn,
>                                    unsigned int page_order);
> +#ifdef CONFIG_NESTED_VIRT
>  void p2m_nestedp2m_init(struct p2m_domain *p2m);
>  int p2m_init_nestedp2m(struct domain *d);
>  void p2m_teardown_nestedp2m(struct domain *d);
> +#else
> +static inline void p2m_nestedp2m_init(struct p2m_domain *p2m) { }
> +static inline int p2m_init_nestedp2m(struct domain *d) { return 0; }
> +static inline void p2m_teardown_nestedp2m(struct domain *d) { }
> +#endif

Seeing how there's a single callsite I'd rather see those callsites check f=
or
IS_ENABLED(), I think.

> =20
>  int ept_p2m_init(struct p2m_domain *p2m);
>  void ept_p2m_uninit(struct p2m_domain *p2m);
> diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
> index 1b04947516..b1d865e1c8 100644
> --- a/xen/arch/x86/sysctl.c
> +++ b/xen/arch/x86/sysctl.c
> @@ -103,6 +103,8 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
>          pi->capabilities |=3D XEN_SYSCTL_PHYSCAP_hap;
>      if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>          pi->capabilities |=3D XEN_SYSCTL_PHYSCAP_shadow;
> +    if ( hvm_nested_virt_supported() )
> +        pi->capabilities |=3D XEN_SYSCTL_PHYSCAP_nestedhvm;
>  }
> =20
>  long arch_do_sysctl(
> diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h
> index 66c9b65465..b4bd1dd7b2 100644
> --- a/xen/include/public/sysctl.h
> +++ b/xen/include/public/sysctl.h
> @@ -100,9 +100,11 @@ struct xen_sysctl_tbuf_op {
>  /* Xen supports the Grant v1 and/or v2 ABIs. */
>  #define XEN_SYSCTL_PHYSCAP_gnttab_v1     (1u << 8)
>  #define XEN_SYSCTL_PHYSCAP_gnttab_v2     (1u << 9)
> +/* The platform supports nested HVM. */
> +#define XEN_SYSCTL_PHYSCAP_nestedhvm     (1u << 10)
> =20
>  /* Max XEN_SYSCTL_PHYSCAP_* constant.  Used for ABI checking. */
> -#define XEN_SYSCTL_PHYSCAP_MAX XEN_SYSCTL_PHYSCAP_gnttab_v2
> +#define XEN_SYSCTL_PHYSCAP_MAX XEN_SYSCTL_PHYSCAP_nestedhvm
> =20
>  #if defined(__arm__) || defined(__aarch64__)
>  #define XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK  (0x1FU)

Cheers,
Alejandro



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:46:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:46:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233963.1537337 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrw7J-0003Tm-Mj; Mon, 16 Feb 2026 10:46:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233963.1537337; Mon, 16 Feb 2026 10: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 1vrw7J-0003Tf-IG; Mon, 16 Feb 2026 10:46:13 +0000
Received: by outflank-mailman (input) for mailman id 1233963;
 Mon, 16 Feb 2026 10: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=Ubrk=AU=bounce.vates.tech=bounce-md_30504962.6992f571.v1-5d3fa0f62d8e4ffd87a929d5e8b1399c@srs-se1.protection.inumbo.net>)
 id 1vrw7I-0003TX-5j
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:46:12 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b45d2479-0b24-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 11:46:10 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fDzw12HD8zPm0PWl
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 10:46:09 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5d3fa0f62d8e4ffd87a929d5e8b1399c; Mon, 16 Feb 2026 10:46: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>
X-Inumbo-ID: b45d2479-0b24-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771238769; x=1771508769;
	bh=97FE3cAfG4P7WeW9MfP+c96ioDn68+UIqmNFh7TtqwU=;
	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=ZMzDHZoZVkqkVSLJgzCmNr9pOyWauPPgMyy05udGKfOK8EEdN9hvkhnKZgg/711y6
	 phyfr3gWOMin9yNcXzNA2XteUc/wtkwMm/JWgMy49Oz0y2+0Y3dFB+sjLYB7cOimUM
	 XcOqvbghOPr+l6yMtYVIsRD3SpjyeJComT2jjcAU4lhIkHbCrgC+6LiUZGEjgZW9zf
	 j6FzEtXHLycjbEgVkj7VEZX7BqKk0gKV+gkKckFLJd1/Lgr+CdvZVRYkjDgndICgzr
	 xdURyb/FRvAb/6uYJzTX+T0OpfsIO6CsM4iRFd5AwU7Pd1WMWJFFeezXuNL7pQHAH0
	 6DgM5DBgOXZBA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771238769; x=1771499269; i=teddy.astie@vates.tech;
	bh=97FE3cAfG4P7WeW9MfP+c96ioDn68+UIqmNFh7TtqwU=;
	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=sAt9j1qcjcoK08LfN0TQwA9+KGS4h7s8bPMzWs/T9bwrdRM+X1M0u5bHz9m4Hf1X+
	 bLRe6uA51tQ7M2U2Kq6iWwJ3Ae5zQvUUFw+NLf/IRd6SL52nRudiQLAscZoy3ptZzq
	 z2Yb5E1xBl0totMotVvDkEY6IXZY/PARFfMI5+TstnYs8NKr7hufLl3+oOqRmctxkA
	 9l/Mq56PfHkXWRgW3DQgDhAbdoICIdsU3NYqlDW+mb32eoaeWidxUKM9LQPUm+rtAh
	 4CWgG5B/0KZKh7q8Y5rkBagqDTqwOxpUaP+1o+AzWbSJRNnUel6GX+tWguilztWF2v
	 rshFvO+tKnG/g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=202/2]=20x86/svm:=20Use=20the=20virtual=20NMI=20when=20available?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771238767625
Message-Id: <626c3f3b-9176-493c-9d96-e2a5344e7100@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Abdelkareem Abdelsaamad" <abdelkareem.abdelsaamad@citrix.com>, xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com, "Jan Beulich" <jbeulich@suse.com>, "Jason Andryuk" <jason.andryuk@amd.com>
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com> <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com> <c0c2e0cd-173a-496f-a643-7d19c9418a2a@vates.tech> <ea21a66e-a4ab-41f9-92af-0111292ecb3a@citrix.com>
In-Reply-To: <ea21a66e-a4ab-41f9-92af-0111292ecb3a@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.5d3fa0f62d8e4ffd87a929d5e8b1399c?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 10:46:09 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 16/02/2026 =C3=A0 11:16, Andrew Cooper a =C3=A9crit=C2=A0:
> On 16/02/2026 10:07 am, Teddy Astie wrote:
>> Le 15/02/2026 =C3=A0 19:24, Abdelkareem Abdelsaamad a =C3=A9crit=C2=A0:
>>> With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the=
 VMCB
>>> and handed off to the hardware. There is no need for the artificial tra=
cking
>>> of the NMI handling completion with the IRET instruction interception.
>>>
>>> Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hard=
ware
>>> accelerated feature when the AMD platform support the vNMI.
>>>
>>> Adjust the svm_get_interrupt_shadow to check if the vNMI is currently b=
locked
>>> by servicing another in-progress NMI.
>>>
>>> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.=
com>
>>> ---
>>>    xen/arch/x86/hvm/svm/intr.c | 9 +++++++++
>>>    xen/arch/x86/hvm/svm/svm.c  | 5 ++++-
>>>    xen/arch/x86/hvm/svm/vmcb.c | 2 ++
>>>    3 files changed, 15 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
>>> index 6453a46b85..3e8959f155 100644
>>> --- a/xen/arch/x86/hvm/svm/intr.c
>>> +++ b/xen/arch/x86/hvm/svm/intr.c
>>> @@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
>>>        u32 general1_intercepts =3D vmcb_get_general1_intercepts(vmcb);
>>>        intinfo_t event;
>>>    
>>> +    if ( vmcb->_vintr.fields.vnmi_enable )
>>> +    {
>>> +       if ( !vmcb->_vintr.fields.vnmi_pending &&
>>> +            !vmcb->_vintr.fields.vnmi_blocking )
>>> +           vmcb->_vintr.fields.vnmi_pending =3D 1;
>>> +
>>> +        return;
>>> +    }
>>> +
>> I think you need to update the clearbit for tpr (related to vintr) for
>> the hardware to know that you modified the vnmi_pending bit.
> 
> What makes you think this?=C2=A0 The APM states otherwise.
> 

The APM state doesn't appears to state regarding this; it's neither a 
part of the "VMCB Clear Field" layout part nor the the "explicitely not 
cached" list.

So I assume that it may be covered by the TPR clean-bit (which is the 
same part of vmcb); as it's actually unclear if hardware wants it or not.

> ~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 Mon Feb 16 10:52:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:52:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233973.1537345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrwD5-0005NE-81; Mon, 16 Feb 2026 10:52:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233973.1537345; Mon, 16 Feb 2026 10:52: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 1vrwD5-0005N7-5S; Mon, 16 Feb 2026 10:52:11 +0000
Received: by outflank-mailman (input) for mailman id 1233973;
 Mon, 16 Feb 2026 10: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=C5B6=AU=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vrwD3-0005N1-KD
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:52:09 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 88e64baf-0b25-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 11:52:07 +0100 (CET)
Received: from IA4P221CA0009.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:559::11)
 by DS4PR12MB9659.namprd12.prod.outlook.com (2603:10b6:8:27f::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 10:52:03 +0000
Received: from BL02EPF0001A105.namprd05.prod.outlook.com
 (2603:10b6:208:559:cafe::8e) by IA4P221CA0009.outlook.office365.com
 (2603:10b6:208:559::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend Transport; Mon,
 16 Feb 2026 10:52:10 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BL02EPF0001A105.mail.protection.outlook.com (10.167.241.137) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 16 Feb 2026 10:52:02 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 04:52:01 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 88e64baf-0b25-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=L46grKqYJF/AuJg0EW2IvoOS6asz0QhLsJMjKS4PtVTyn1cYYle2he56XoxPZymwsBXt6Mryzg5BgK3zqemijLtinVF2kj5ufJbuu6bHNwZg6t3HaRqmt/+rWPGpRkYlELWI8H8/OymrQR+Vd93tRYUdR6bPvTyFGFpgQ5CAvljjkYh8SC+MPKHRrNhJ7AWonvD30bjV9e/Cvm1Eul70c1UjtHXWTqbrVSlMfVyWoMyiK9C6cM4h58E8cQd+ELDTMUwxYW9R/XjJbTzh8lrxC9nzJJELsuobwib3J0SCWJKPi3Z8BNZMRooB8oueiuKKlMn8mT6v1dJYWnCbs9Pvbg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qz6DU6iJmz6+r6yX9lYorP/ALvuQk1srp2tcSOIvpSc=;
 b=rW6dl5Y3gaU3rGNHNzfD/6itcR/Q7lXbFl0Jyr7tUvocqtZ4zzgN7Orim42pJ2nBh3WlGZDchc53Az41+WlhWzxeU6bg9xnqXJZewWLRK4Cm7ffinQ5uo3EnP4Gdu/bJGxKCnu0HKIEUHdgocB/Z3fFVpSdzAl0HNLl5AZiXWPUDZ0v2hagfxTwetehAlhl/qIwQOVttDdRbzlNnyGr5q2PjFyCt6wqAO8tMa8tv8RWucZ2zJvMR78SFcwDqZ5cWnRl1IYOQMbV1VAdjuezgDudoOII0NUMWZETlpc3Ezbq+ywIQTyh1jRrga1DMU+eA3QaU9El/kp1jcpwZq+Dr5w==
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=qz6DU6iJmz6+r6yX9lYorP/ALvuQk1srp2tcSOIvpSc=;
 b=aZRSpG8gwy5gQtkcYPvmvkkhA74t8VVUlJnCj7l8pA4OaXXWThGCCSDAzRMMD09Tbl/ZtRxwDXvZ2cTHbQI84bQt9UiBJNrEgFNzP8EKnnS8xD4n5DfDGysB1qPrNryCfkEvUkJjoZPQ2HGPbKKSrVeKHkfPxa1pYq+EQ1e2ugU=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 16 Feb 2026 11:51:59 +0100
Message-ID: <DGGBV66XKGMH.1A45QMIALDYXM@amd.com>
CC: <jbeulich@suse.com>, <roger.pau@citrix.com>, <jason.andryuk@amd.com>
Subject: Re: [PATCH v3] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>, Stefano Stabellini
	<stefano.stabellini@amd.com>, <xen-devel@lists.xenproject.org>
X-Mailer: aerc 0.20.1
References: <20260213222818.271685-1-stefano.stabellini@amd.com>
 <d1765cd9-b95a-4032-bc0b-ada50e1a05d6@citrix.com>
In-Reply-To: <d1765cd9-b95a-4032-bc0b-ada50e1a05d6@citrix.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A105:EE_|DS4PR12MB9659:EE_
X-MS-Office365-Filtering-Correlation-Id: 8eb7128e-aaf7-41e2-2567-08de6d496b1e
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?VnBuYStaVzA1QW5td01PbjFZbFMwWFA3L0xEbG5VV2RBYXlseDFROVVZa1BW?=
 =?utf-8?B?S2JhbjlFSDR0WURORG81TFdJZEgrajhBK2ZPNTZpMExlSnZtSTBrR2Y5dy9E?=
 =?utf-8?B?clBzMExpVmt5V1ptb1ZETU1iRWhleklQc0FoSzJ5WmF4dE9YZ3VpMU56akdS?=
 =?utf-8?B?elV1Z1k1SFRlaHg2V2YrbVpoVy9wQWRzMWtQZzJ3OHdIbFZhZC9Uc2t6WGhq?=
 =?utf-8?B?aldvYk9KdHhoMUpkRmpmTUQ3UnZrelkvUDVBbVhZTmNPQkFxZzdJUTJOUVdm?=
 =?utf-8?B?azZieWZkMTdWUlo1U0lQZG9zTTNkVmsyUDV1QVRqWEcyUGt1cmMwMFRrK1Y1?=
 =?utf-8?B?VkROUFMyK1FVRGkvSUhZUVl4SW40MWpkWHFFWHluNHlaU2kyYndQVGRTekdw?=
 =?utf-8?B?cXFTSnVXRnVLWVAyUGZIY1ZyajJRSWR2dUhHVyt6a3NXalRpRVBqcmFsUFRr?=
 =?utf-8?B?ZDgxMTB0dG40SkRKT2pmaDdlb01pampUYUsyMjNLQml5M2tHMzZlKzd1U1lw?=
 =?utf-8?B?b1FvbWdJTy9zQjJ1OTd3eHpjcFZtV2RzVk9zbWZlRG1TamZrRkVFZ3dGdXoy?=
 =?utf-8?B?RkJOWVBPd3NBQS9CRU9GZjY1WTFiZE9UcTdYNDY5VHQ3OUFrTGxKSlBIZjRk?=
 =?utf-8?B?QXB2N29PVm5oSmhiNkY3Q2VCMVhZeWE0S3ZhQ1NvUUZWQjNBbjZ2VWFGb2th?=
 =?utf-8?B?MmFCV3F6dUorK2NQWnZ0MHVJM0R2NHpHbjJXS1FsRG5IU1p6RnN1MHVBOGFm?=
 =?utf-8?B?UVloSjZrZm84SGo0WXNvamJZcUluRmVjWEFEUXMvMUtLNUZCeCt1b05NU3M0?=
 =?utf-8?B?dENCS3VUME03OFI2UTB0SHFFaGdmS3FYazV6bmJQcFZYaGhaWC9tanNCSGNY?=
 =?utf-8?B?c1gvUkFmNkpEZTEycEdFSXRzN0Z5QStzMUdRWUV0ZFk2OHN2SVdsQWYzQldZ?=
 =?utf-8?B?aURyTytzcmxaYWdDNzBmdEE3cThKdmErZGhtTVhsWGcySGtpbUF3Q05pM2l4?=
 =?utf-8?B?RnQ5M0ZrbnNkeVRIRm9jNStjODJSbUZBZGgwUHJBZUJFL0dDREQ4VWJZRThs?=
 =?utf-8?B?eklRQVJpZ3BrVnNSWHNkbGVDRHBRQWlieEQ5UEUrUjc2M0xDOElpdkJ5M05j?=
 =?utf-8?B?Z3hGMTJOYTE4c0NtVG9kY253R1c1eDI1VTB1NG1KNlNhVWRpcXlzUjJyMHBr?=
 =?utf-8?B?UXFORmk4bWM0MGRPR3hTdGhVTHBTTzFoRGg0T2pPSDhOWDdZMVh5U2JjY1Br?=
 =?utf-8?B?emowMHRaZ3BkK3BiQ0tGazdSd3JDaXdJbWJqdGkxZTl4bjNlQTZDY1lCK1l1?=
 =?utf-8?B?aDJmZGlCVzlGNkhIRFBYWTFISEplbzhwWkxoR2duQVdzdXhYRUVPblVSTFZy?=
 =?utf-8?B?Y2w4eXpudlNqVnRMTGhZVDl4TkVFM2hnaGd1SFBKdTdLTHdVUGZobDFHVlox?=
 =?utf-8?B?SnMzVnRIalNqSEl2K0RmVjVXdEYvTnFtSlh2d3VobUhLVzJzbExPK1dVWGZm?=
 =?utf-8?B?RlpGdDM1UzN1SFZsczMwNmk4bG1rY0VSVWZ4bXZJMHVIcFJkYXBLVFpjZUpo?=
 =?utf-8?B?amVmRkdONWV2ZWxlemJjVEgzQkFya0hwTXA4Y0dBMlFESlJMek1YbldrSHpp?=
 =?utf-8?B?OUdPZTJGZVN2S3IyQmZmYld1YngyYW5Ya3J5L1BtNG9qeDB1UGdFTjNDNEdP?=
 =?utf-8?B?RXRISUo2TGhFYlo1WXBLTHp6bWFRNUJaNjhtUGo1eElLSmw5UFdBejF2bVJo?=
 =?utf-8?B?K3V3bWFxaEJKZkZ1b3p0RlpoRGVqV21xRFVpRzRxQU9uaXdXeHh0cm01QVBW?=
 =?utf-8?B?Y0JlTVdQOHpkVnJEWnRPZXZZQm5zS2VOc1g3d284MHRuQjMxMnc5dEdIZ2du?=
 =?utf-8?B?UlVVQTA0UWxPM2drQXpVWGhwSzlBRDNDWEFneGtnbGUrczZIeGdpRXlUc2dL?=
 =?utf-8?B?ZVozY041a2tYcER6aWVKdDFDV1pFTnNBR0YyUVkxdWNnL2JZNEgzSUV3MGNY?=
 =?utf-8?B?cnlqUm9YK0NLSjltVG5ZOW0rWmtHTHphTVVQNGRPeFRUaUJKMkp2U0c3eUEy?=
 =?utf-8?B?dmQ1dW5zaFpmL1FlVkVnVHBKVU9jYllXYlR5TlFvWWRkUEwxL0xxZTN6ZC90?=
 =?utf-8?B?eC9SdWJ0cTFSUmNTNHdyRGEvaC9pMnJubHJuWHZDbytEM2I4eWdMUzZVcUZM?=
 =?utf-8?B?MVBRRFJrNytpNDlndWZGd2VTWmxQMDYwUGRLaTdmZzBWclpmRlNVTDB4QTNq?=
 =?utf-8?B?bHVnM2g4VGhOMzFRZGlTTytpRU53PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	e3OLr7MURJsFHT+dljw8/SyDpRjHF5RLMPZjzq3VXfsCYBBtUIK/J1oSvIH/JvP0rbAzlQTiQw0a+ZOFdLmPxvCHHvf9SMI8EOMXX2WIscqwR6Vk+Nx5FUa09r/r1TViXCe7BL9xW6gkD5eMiryGBjZv8Cnk7bd0+hpOjLV+fop5bmiiuPdAz211/+ICvEWD4MDDQ8mm0NjpCH2oUcvEZ/+gB6lGquHvbkriaU6ZvIyzkfEdIkrV6/RJwwWmeBrHX6BBkPilLlxsNEg4Bnv6QyC0wSaLMbGaW4JYwawXBRkTbT4dmWqCQDXjW9hHnr/JozpnneQqNXotfRWsdZSxo0Lrj7Cv+jIwM+Wt1P6q0pjyNFyCX++bz4F0YGxzyyKLaAhdKuo3MsyVcTF8wGC3FOmEhGI+biaSbSLXz8NhAAqlB2tQHiwUqJCkUcc/CopS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 10:52:02.9923
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8eb7128e-aaf7-41e2-2567-08de6d496b1e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A105.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9659

On Sat Feb 14, 2026 at 12:29 AM CET, Andrew Cooper wrote:
> You won't get a compile error for typo-ing a name inside IF_ENABLED(),
> but it won't function correctly either.

There's beauty in having a typo explaining the effects of a typo :)

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 10:56:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 10:56:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233984.1537356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrwGg-0005vS-Nc; Mon, 16 Feb 2026 10:55:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233984.1537356; Mon, 16 Feb 2026 10:55:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrwGg-0005vL-KC; Mon, 16 Feb 2026 10:55:54 +0000
Received: by outflank-mailman (input) for mailman id 1233984;
 Mon, 16 Feb 2026 10:55:52 +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 1vrwGe-0005vF-TO
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 10:55:52 +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 1vrwGe-00BrO1-1O;
 Mon, 16 Feb 2026 10:55:52 +0000
Received: from [2a01:cb15:80df:da00:80b5:18da:fdf4:baa] (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 1vrwGd-00AJUL-2I;
 Mon, 16 Feb 2026 10:55: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>
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=DpW+BdtDviV6r2jTzycnwjk3yTD8C2hukAHwAEgLF0k=; b=oFEyHu+q6ZYOKTD+z/6RFwpM8Q
	62J6oTLzwTJRCaBN3RqLlhrwtYubtDpSqGEb9Or4ips0k6mBo2cb7JrKOcnBJl+/j/ficCNoV4ymO
	D0JV2VhLDVwMZTRa0cc+SbD90ol58obp/7QWIV1w32HfJQXIbPouh1z6Usq6jnG/rLc8=;
Date: Mon, 16 Feb 2026 11:55:50 +0100
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>,
	Doug Goldstein <cardoe@cardoe.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [XEN PATCH] CI: Remove `brctl` from Arch Linux container
Message-ID: <aZL3tt1p4JJbPAk2@l14>
References: <20260213101921.61888-1-anthony@xenproject.org>
 <ee38a161-80fc-49b3-9e73-af26ffd35fb7@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ee38a161-80fc-49b3-9e73-af26ffd35fb7@citrix.com>

On Fri, Feb 13, 2026 at 11:58:06AM +0000, Andrew Cooper wrote:
> On 13/02/2026 10:19 am, Anthony PERARD wrote:
> > From: Anthony PERARD <anthony.perard@vates.tech>
> >
> > Package "bridge-utils" have been removed from the official repos, it
> > contained `brctl`. That utility is used by network hotplug scripts,
> > but they already check if it is available and switch to use "iproute2"
> > (`ip`) when not.
> >
> > Signed-off-by: Anthony PERARD <anthony.perard@vates.tech>
> 
> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
> 
> Right now, README lists bridge-utils as a hard prereq, and this is not
> true any longer.
> 
> iproute is also listed as a hard prereq. Should we merge these two
> lines with a logical or?

Well, iproute2 is an actual hard requirement, `ip` is used in many
places without alternative.

On the other end, `brctl` is optional, but will be used if exist. I
don't know which version of iproute2 is needed in order to not need
brctl anymore.

Cheers,

-- 
Anthony PERARD


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 11:01:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 11:01:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1233993.1537365 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrwLw-0007kD-9H; Mon, 16 Feb 2026 11:01:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1233993.1537365; Mon, 16 Feb 2026 11: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 1vrwLw-0007k6-6K; Mon, 16 Feb 2026 11:01:20 +0000
Received: by outflank-mailman (input) for mailman id 1233993;
 Mon, 16 Feb 2026 11: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrwLv-0007k0-3P
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 11:01:19 +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 cff83740-0b26-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 12:01:15 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so24729185e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 03:01:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a298ebsm101322705e9.13.2026.02.16.03.01.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 03:01:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cff83740-0b26-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771239675; x=1771844475; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Ek+EySKSITx6BhiWGhmyohrKHJdppnj2tvPkcL14FGE=;
        b=UL9IdvARjpBvSIhHRglzSIqjS+QUS6X+fc/9Lb0Fr1QRDe1AVq7GNxUL2X9bhOwIkr
         Qm462jQifoGoDGlI88dyWxKuKF8Bio178TakTiPde2kJpj+Vgt0n5Zlrizfb1pRRi2eF
         u2TAljqMiOtD6BoAa/GyYaqxf3PIBaZQlK0rhWPnewPZ5aUYqz0iS4MiYlm6D4oBAB0q
         yGveg1v6JFedNPsrOA4WEFu5YAMtO1Bg9kLZ/vuKf97edgbXPRrgR7FmcL2nojo3TJgb
         TF6FnDQyJI+G5XCFdmnHtxFaBj+cSs3r80rjMa4S1rQDTtN38qDXFpN+NUgd/JGblidD
         TS+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771239675; x=1771844475;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Ek+EySKSITx6BhiWGhmyohrKHJdppnj2tvPkcL14FGE=;
        b=PenzHs9bgrGNNoA5G8OmS6AT9KJ047TqNYuuiferNAavo8W2TkL1JlTyv5vR6FYOwE
         Mufl5AK+IhHldHL76aiCapWbLRaFkg/taT1tlGQg806NsaVM8n8SlG2nWng9TMRHsZna
         7hwesgCAYKXzIdJSmkMP/oBtFCnBQQMPooQ1URuwgKdLJG9pvSyGAiA3bx/20RPAhFCB
         IQFRSmT5DOCp34T6PLsW0twKSyDZzTvhNO/r8lLxJJeRfsXeORF4lcLo9T2U87DVHDmE
         /RExMJQJLMiQHnUn26YzjfILuF5yTe1xrsr8aj5qc9j5umYfsUIiAxVoD8nLn4IjRIfU
         sK1Q==
X-Forwarded-Encrypted: i=1; AJvYcCVuszUVkLNFxI0Xhyg5ZaIY5/T67QTcyPJo+NH8JUFXfOjyBq8az2EircF4wvS7GK9JlseblTpzCS8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwuXKEPzeKEvIq4rMJoO0UlU4NlqObC9wOLvaSmqLA6tJqEnWuP
	rxCFqWVcFiTd54dMghDPUQWcGri1JMiMSFb79C6ZMmL+ZhOvtMNMPlkcwvpsU04cdQ==
X-Gm-Gg: AZuq6aIXOaz+1awMJgtvnMuyl3AtqG7Umc18+sX1sncc1AgZRdzp7xmjyEAdURaeyXi
	SQEyNHBlITqPBHm6/a/LE2qxlZ+uUf/TUT+0g+nYIAKMK1tSjiOfgONiWHCipiwQk/ILfVHSYw7
	oJ5nyE6L523+KVJtPZjd6hGBJVo8QAp84NeKwbb8XEUs/71zZyyK+fzKrwUU+Z2Wr5epK4bTx5x
	aHFYYXCFua7qJAlSbGSs+Xqv9p07wFWDkCTLgTszzSDJFW1ESLdEA5QtBMAGu1ktlSCbHjtEAz7
	4i6HShfVazkrnHJv92cSxZxYNj7vhM/Ev2spH0wBXSUrTNg7aL/74t0O7dG7my+PXZmaOu7GTXR
	6IkMX+gB8NuDvSI/rIBSQk7LtRa2t0+81WMfxNOgrNpPvO9smAkznxHnKsedUhhJZGMG7fSF/nZ
	jPqKVNESVFfaxfJhOyIm33tkMVoId+J28/53OpF9pphTH1Q4PumST2aIFFUWrXBTby5/M1zb1gB
	97NEuiB3H2KhP0=
X-Received: by 2002:a05:600c:8b82:b0:479:35e7:a0e3 with SMTP id 5b1f17b1804b1-48371093bdbmr151091225e9.30.1771239674511;
        Mon, 16 Feb 2026 03:01:14 -0800 (PST)
Message-ID: <c0635184-6422-498b-87de-e6c3fa016a4d@suse.com>
Date: Mon, 16 Feb 2026 12:01:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
To: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
Cc: roger.pau@citrix.com, andrew.cooper3@citrix.com, jason.andryuk@amd.com,
 Stefano Stabellini <stefano.stabellini@amd.com>,
 xen-devel@lists.xenproject.org
References: <20260213220205.196179-1-stefano.stabellini@amd.com>
 <DGGBHY9HHXIA.C7GM5MX7ODLG@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: <DGGBHY9HHXIA.C7GM5MX7ODLG@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.02.2026 11:34, Alejandro Vallejo wrote:
> On Fri Feb 13, 2026 at 11:02 PM CET, Stefano Stabellini wrote:
>> --- a/xen/arch/x86/hvm/Kconfig
>> +++ b/xen/arch/x86/hvm/Kconfig
>> @@ -92,4 +92,11 @@ config MEM_SHARING
>>  	bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
>>  	depends on INTEL_VMX
>>  
>> +config NESTED_VIRT
>> +	bool "Nested virtualization support"
>> +	depends on HVM
>> +	help
>> +	  Enable nested virtualization, allowing guests to run their own
>> +	  hypervisors. This requires hardware support.
> 
> nit: If we state above "allowing HVM guests..." rather than plain "guests" we can
> then get rid of the "This requires hardware support line". What you probably
> meant is that this is HVM-only and we don't allow PV nesting.
> 
> "This requires hardware support" makes me (the user) think my hardware needs
> something special to support nesting, when in reality I just need HVM support.

When replying, I also initially meant to make this broad a statement, but then
went to check: While indeed it ought to be possible to implement nested without
further hw support, both demands HAP and SVM demands a few more advanced
features (see start_nested_svm()).

>> --- a/xen/arch/x86/mm/hap/Makefile
>> +++ b/xen/arch/x86/mm/hap/Makefile
>> @@ -2,5 +2,6 @@ obj-y += hap.o
>>  obj-y += guest_walk_2.o
>>  obj-y += guest_walk_3.o
>>  obj-y += guest_walk_4.o
>> -obj-y += nested_hap.o
>> -obj-$(CONFIG_INTEL_VMX) += nested_ept.o
>> +nested-y := nested_hap.o
>> +nested-$(CONFIG_INTEL_VMX) += nested_ept.o
>> +obj-$(CONFIG_NESTED_VIRT) += $(nested-y)
> 
> Why not use plain filter?
> 
> 	-obj-y += nested_hap.o
> 	+obj-$(CONFIG_NESTED_VIRT) += nested_hap.o
> 	-obj-$(CONFIG_INTEL_VMX) += nested_ept.o
> 	+obj-$(filter $(CONFIG_NESTED_VIRT),$(CONFIG_INTEL_VMX)) += nested_ept.o

It may have been like this in v1. Problem being that this leads to long lines,
which doesn't scale very well (and is - imo - harder to read). Especially when
you consider what happens when it's more than two settings that need checking.
The list approach easily scales to about anything (by using as many separate
lists as you need).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 11:13:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 11:13:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234003.1537376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrwXy-000155-Am; Mon, 16 Feb 2026 11:13:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234003.1537376; Mon, 16 Feb 2026 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 1vrwXy-00014y-82; Mon, 16 Feb 2026 11:13:46 +0000
Received: by outflank-mailman (input) for mailman id 1234003;
 Mon, 16 Feb 2026 11:13: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=C5B6=AU=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vrwXw-00014s-TK
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 11:13:44 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c406fd3-0b28-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 12:13:41 +0100 (CET)
Received: from BYAPR01CA0067.prod.exchangelabs.com (2603:10b6:a03:94::44) by
 LV8PR12MB9360.namprd12.prod.outlook.com (2603:10b6:408:205::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.15; Mon, 16 Feb
 2026 11:13:37 +0000
Received: from CO1PEPF00012E60.namprd05.prod.outlook.com
 (2603:10b6:a03:94:cafe::d3) by BYAPR01CA0067.outlook.office365.com
 (2603:10b6:a03:94::44) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend Transport; Mon,
 16 Feb 2026 11:13:38 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E60.mail.protection.outlook.com (10.167.249.69) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 16 Feb 2026 11:13:36 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 05:13:33 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8c406fd3-0b28-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lsNRPUyPoGXFTWmhfMdskQU7qYiLj6dSJWnM8T6zHT+P7dxxNkXzRd4E28ot6/A7DcbdG78UTxDh7a/Mp8NLbWIey8G3SDm4s1Je6uQpgHW+7SbQlsublMalHe4x4eqiN4j4lrJ/egVBe/8FaoEq8h+DA9Z95hj/0ObaogMKXvfL7FiWhZP9H4LRSfUj5WfzQTrRB6R+FTp3jo49PRB57YH5paH5mqhKkS0ggdOd+eWnHWc7F3JKDDreZOysetPoXkgLd7VYdO+iJYTYcpvUFhQF4+a0lN/4s7cw5GccIxTn4BHCglCNnW4m3m8LHMlpWUFDr9R+MI9OsNzwV/qLxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tJBlKMOhG9WZs9g/JRLbEW7LhpsQ/zQlhKqh/Y8/C94=;
 b=BLeCVA0fFH5nlChk8j9A37GkapNfH+M+w/aiZkdvbMm0RR8H7ATNRaXNPjU2WYTeDn/rix6omv+FzEFbFnuEVmm9MEjMniXszqazBK5yv41opE5OMGRAXRHoV24wkZKrmN74db8SAgQ24hg3RRtPdgZhAjgiH4NFKaE9ExIU1qQbHrLWCEGBt3MZiWrKn4fPk9Fj801Q4WHMybDnPDAEJfX+jgdIIqCvNPkoo2dAg3Zyr5ETVUgy7D7V7StTZvx4PUhodkoavLtNDV0ez44b7YeOTpxCPdP5619atHoqdGc9Kp35aLRWA0jOH0t/aND1LWamJIMufUfkz6pOn+onAg==
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=tJBlKMOhG9WZs9g/JRLbEW7LhpsQ/zQlhKqh/Y8/C94=;
 b=XZgAcT3qOBTkWZF/nD1tab6Gjcfb9A2II6pmTWSrIV5YLdrBDGgMqq5M/5KDHa8CVdh55yM9kAo0lkalIGFqWoCA9m7QISh7CpfiJcGjBsCG07vAMBggE7rFp/eJ20FnCNny2eyTYHF2oTxZBSee3+11i9oBx5QQY5YvSj4nchA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 16 Feb 2026 12:13:26 +0100
Message-ID: <DGGCBLHJM961.2DZF87UWGWU1J@amd.com>
To: Stefano Stabellini <stefano.stabellini@amd.com>,
	<xen-devel@lists.xenproject.org>
CC: <jbeulich@suse.com>, <andrew.cooper3@citrix.com>, <roger.pau@citrix.com>,
	<jason.andryuk@amd.com>
Subject: Re: [PATCH v4] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
X-Mailer: aerc 0.20.1
References: <20260213235102.359472-1-stefano.stabellini@amd.com>
In-Reply-To: <20260213235102.359472-1-stefano.stabellini@amd.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E60:EE_|LV8PR12MB9360:EE_
X-MS-Office365-Filtering-Correlation-Id: 9be49cdd-dbac-446d-4d29-08de6d4c6ded
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?ejF4a1Z3NEhjSmppRVR4SG9tcVRDTlFJSFlnd21aTDgzWWd3UmdIZUZtZHl2?=
 =?utf-8?B?UW9tc0lieG9ybGtJSHQ4UUtTbngrSFQ3N1FLYWxhbnk3YmhJTnlLaG50K3oy?=
 =?utf-8?B?VzQ3aWFZTE8wdiswaldqSld5RkUySWJDOGgweGszcW9jeVkvaGY1dzV4aVk1?=
 =?utf-8?B?SGdiSEE4bzk5OVMxaWFmckErNmg0Q0syZytxSnA0NzJRV0RkVVpsTjhUT3JW?=
 =?utf-8?B?bTJqN1Q0NXE5QVcvVmJPdmNtT3QxS3EzdUNKZ3NXaG5KZ3V2eHlWSHZTOUs4?=
 =?utf-8?B?ZzdJTHVtSHdTeGFTMWVUc0dFTlVvdTZ4dnZHTS9veGZFaUdhdCtTclBZVmZI?=
 =?utf-8?B?M0VkT0hkZGhrQUF3bUxKdU1kcmdYaGhOTWR4Sk9nY1dYcWk1VzJpaVFUZ3Vy?=
 =?utf-8?B?dURDZDlrbFRaUVpwdGJGQXNXL0lreXh3V0J4ZHZoakFXcjk2Sk1FQThiVThN?=
 =?utf-8?B?dE5tY3duQ3IveVZoVUhxR21VWkNRNjI5VGMzYTBUMDNCd2hTZ29tV1UzKzBr?=
 =?utf-8?B?OGE4QlJEUFBRN292ZnJFc01hbVZUc0YvQ2haTitjUlhVd2RISVZLejhQeDlu?=
 =?utf-8?B?blZla3hBbytjVUFwQ0t3MWRHQVJnVDZUSXRyVGtZYWtwcVpha3NGWG1tTDRv?=
 =?utf-8?B?RDB2d0hvQ2YzQ2JJV2dVd24vUFFUQnJzQzBIenQrR3NWV2FrSXNjcG9vQ2lK?=
 =?utf-8?B?ZjU3d2NkWitQQWtxSTNFS1dVMUNhWkhFaFBxZHZpSnhNbkR3K29ybG9OUndh?=
 =?utf-8?B?V0ErZVljbDRwQ3QySGErNTFINGZ3cFZxR2tyMjkrMWUySW9Id0ttWTVaeVF2?=
 =?utf-8?B?R3IzUXZWUXNDTnkrOG9PMUR1NVFhQk5MSlhvYUVleEVGa3E0MUtISFhWbXh3?=
 =?utf-8?B?NVZjSXVaY3MxaHpXS1JlRWJLak91WWNhOW0xVVdZd0dqMDBLUFpxYks0R1kx?=
 =?utf-8?B?QTNtMzRVd1VlRGdhRU51MDloMHV1R1VmSzRMWThxRmZCdlY0aEtGelJXVVhz?=
 =?utf-8?B?dTZmYU5TbnhpOWRHbnZKYUE1MnBwUkdjaDZmT3ZMTzJNY255QVhiQ3lEbG9a?=
 =?utf-8?B?bDkrbklRWGI4VmRtWktjU3RJeTBQL3hKQ0k2TkdST1E0ZzNKTmNGekFtWVps?=
 =?utf-8?B?OVJIcU5URUxkOG9PQ3U0djhwU0R3bURkai9wcEVkL0F2Y1dPR0xDcjhvTk9j?=
 =?utf-8?B?NkcxNjlkcXh1QUErdGlzS3hzQ3lnUjUvekJCTmVncUVvUG9nNUtMWHdDQzJw?=
 =?utf-8?B?bUJKdWMrdWtGNHY3anFuQ2N5OFdOOVQ2aFo0Q1N0NEhka0VranMwU0ZtdkNq?=
 =?utf-8?B?RVhqYTdQdVE4UUJTYWlKbmltUW95WEpyZzI4Rk51S2RmUTJmZmZKdGNHclpN?=
 =?utf-8?B?bXN0VGl1REw1RXVsWDdPV3BXaVIzb1NVZDRxRXdpald3U0E1MUhEWlFIcm1l?=
 =?utf-8?B?NVBJK1NjVmhjODU1YUE1bTVhNHRHTDJycWZsNTcrci9pejVFT090WFRscG9k?=
 =?utf-8?B?Z2hLN1JZZ3JvbVh2Nkc0YUVkOXdDNWFNb0o5WXFlZE05Vkx4TTJiTWh2RFdD?=
 =?utf-8?B?NEw3UWRmNjk4VmVDTzBWSzg3U2g0TC9UeDdNWnFHTnR0Rk1kemNlcUR6Q0Q2?=
 =?utf-8?B?RzAvbTdCcjVmR2dTaUYzZHhzUStVdS9oaWtTNVEzemtGT3ZObEZBaVplRU8v?=
 =?utf-8?B?VEpYSjQ0NGlDYzdIUGZ6ei9naGQwVkY0SXcxS1NrOVAxWlFFMVVpVVpOMk9O?=
 =?utf-8?B?a3pTT1BQZTNUazBHT043ZkEwdGg1QUluV3BZWUNScEIrS0V5ZHROUm1mdW5j?=
 =?utf-8?B?TGEzRmR4QWU4V2dYaDJrMlVXWjlqSWR4ZGFoMVdheVBDNHdLQ3cyZ1FubjZY?=
 =?utf-8?B?T3NIcnIxRTJSNlFuTzY4blRNR0habXhmUGpRcXU3TjhJQ0hSeXlZaEkyYUVk?=
 =?utf-8?B?MzFVcFNhclhLSDQ3em8vbW95cVQveE1mMnhpbVdGeWpERDFjTkw3WWhpaWNq?=
 =?utf-8?B?SlFvOStvelNHbUg4NFRwT3JSM081ZTgyZmFCdXRSMFJEdmR6REJTWVIwb3du?=
 =?utf-8?B?NFRiRU90TlRmVWt0end3M2wxSGhITUJYcisxZC9FVTlmN1JyV2luNWJ3amVq?=
 =?utf-8?B?TlNpS1Q5MGlzaTY4YTZqaVkwdGw1NjhraEF3S0pHZ1l5RVVoWGh0Nk1MRUpy?=
 =?utf-8?B?ZU5lcDRxSHdrR2NzWkJyVEZ6dll0ZVM1QU9ObjdZT1RSZ1ZjWUdNZW1PdGVW?=
 =?utf-8?B?T0lmdjR1empMOS92L2tBSENZZDN3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	6pUfhEAXHKwHcNpgTrAXEypXES2PlIGXB9RhKEBynj1hShDCI+CFQn8pzSSgifqtXz8p5KfemXMe80ALs/SXepsfUkiVP4v7b4Lmos7jSgxq2+l6bD+3JTZuB2+7pjY4sh4al/2ezaX27xQxuSKSfi+zd7AgYZ7XMSS9W7QRkKANWb3/djGGiISIJUwDBhw6j2V7iovjd0eVTr2sNwjPmPRIlqW80UAGrgwJJMFnzRgJ0KrzU2xk9/wvEv3VXWmQbvrosuu4U3QFwjYWW8NnGBBlkkB3R6GujAefFapo6KaKIr2pDZnK0qmuZpjVTUCmQaRi+ZHzU/fUYe+uOVnQGK/7qyUukmdOw/UUaaDjgVSEILWn626IIdfnQnRIW5QlJo5euxr2iFGBOsrDTbAhhpUuKQaTQP6VY6oD1zUWxE/nEz5f+f2hU4xwcAFcBKmC
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 11:13:36.1066
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9be49cdd-dbac-446d-4d29-08de6d4c6ded
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E60.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9360

On Sat Feb 14, 2026 at 12:51 AM CET, Stefano Stabellini wrote:
 =20
> -    if ( op->cpuid >=3D nr_cpu_ids || !cpu_online(op->cpuid) )
> +    if ( op->cpuid >=3D nr_cpu_ids || !cpu_online(op->cpuid) ||
> +         !IS_ENABLED(CONFIG_CPUFREQ) )

Largely inconsequential here (and other places in the patch), but I think
IS_ENABLED(foo) should go first in all conditional chains so that any invok=
ed
function in the OR list is skipped. It's likely in this case it doesn't mat=
ter,
because cpu_onlin() is a macro that calls a static inline so the whole AST
is known to the compiler, but it's trickier when there's non-obvious extern
functions at play. In those cases the compiler will still make the calls be=
cause
it can't know the call won't have side effects.

Thus, as a matter of principle, I think IS_ENABLED() checks should always c=
ome
first.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 11:23:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 11:23:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234018.1537386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrwhg-0002sp-Aa; Mon, 16 Feb 2026 11:23:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234018.1537386; Mon, 16 Feb 2026 11:23:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrwhg-0002si-7R; Mon, 16 Feb 2026 11:23:48 +0000
Received: by outflank-mailman (input) for mailman id 1234018;
 Mon, 16 Feb 2026 11: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrwhf-0002sc-1z
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 11:23:47 +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 f4b6c3a9-0b29-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 12:23:45 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-480706554beso29280795e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 03:23:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371998777sm295430595e9.1.2026.02.16.03.23.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 03:23:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f4b6c3a9-0b29-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771241025; x=1771845825; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=d0MRGEe9PhdyZSVoZm7FCFw+73byShpcGFnVOpsdpPk=;
        b=V2D1mry7c0/sGmKAQ+luiwNur7qjHf0U8rFUaI7XtZHL2xHzeP62FHdRpJ53s+5Ncf
         SbNfmH9+hM4B9vMYZx+YKMcKjnvJd+BBgcmsSESLcgsGns798x1ha7fqCPjuOf3ED3mZ
         /CBEehPSWUszrspNDgk82OrYhgQb9sUhUysIdLL9kAGCMQpRboK3NT/dT3DyQNEHlxH5
         q+/auf2qBo7dVYjNgL5y78G3t6yhXEqJzD9DBOhxTMrG+Lz2Fy0Fgu0ueywVpbIFJeq0
         vAIqsjX2iAAQRPYhNNbmVrim+x31qCUeculaH1+fmErsYV/0PT5ihaLz1MVQLG0vbNjW
         vL5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771241025; x=1771845825;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d0MRGEe9PhdyZSVoZm7FCFw+73byShpcGFnVOpsdpPk=;
        b=TMQpV5UeZQTIuxahxlHizi12f/SmlfXJgjMY6b8BtOIgXGAb1hzgqvZKABMewiOCwZ
         7w0JBTOE0pr6oue3vcLeEK/iHuSBsQzhsc5J4XaghXXL+LQX4FisJuzzLxRgcgv/OmiC
         Po7wqDbw0gjVuYRG2sEj8w6BZeeGCOxO68E4Wmt/aTEcEOw4iIyW/hoFby5cXgIicO2n
         F8mPzBKMcSa6xyuaneRedHmenR9N8boqU/PG2FBd1Q9hu9/1xXzENxebhDSxxjVm5loE
         5flpB/7ST+Mwl2JXW/CwW2SIbLxX3wDFgMkgkYpk/R66X2Xv99AZ+zKzi+GnoHbsAE5o
         YKDQ==
X-Forwarded-Encrypted: i=1; AJvYcCVNw8qR04CIUIAbPsH41z1BIGgnuwvtsaHx5J47ZOCsidez8nSzsGSt9tW2VGELnp9lPB619R/Zi8Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywk3hYHS14k56j+UkExr+HjWhyqCE1Ac9hxHlLIegEBO7aEstkm
	OLZNcsRbgJhjdmn/1Bkfq8/UYf3wnzUV9fsibp2Egq9ZYiH3LVppXwfbM+pTU7rwUA==
X-Gm-Gg: AZuq6aKB5ndS0NtWcgZlzPuXKV0+9SmwwMDjPamKBELO2jZvjfZhybtgMg/x2Mczfn6
	Q9Cr1P8+6QxFGMbq3tTH/bnbZfCJann31A14AAzG6Ri3B5zm3UYoeqR9ndc/FFz+FqTNo2UwasQ
	OfnOYHwvOQtnTTqN4G2VpxU1a75sXucxow+ZI1wbKW0LMDAdQH+YkLnDYc6TM1RUhg8402s1mze
	K4vXhwA5uSswn7gJRiTqQmqlyXkzZN+lyPr8ADwRbjbuJgcfaI0WzPymU3s9NWfyGBlGNYHlUgs
	6/j3iEnohoI5lh7an2rQa7oBSqLxpULDTe2OGAhKjyqlx6D6eHWEC4YtlT6xkaiTK+IxYvf9xPw
	uJUGQ+VJdAgrmyUUe1hhf40+PwhYOyspHHXwbAvxIepEKZHEhxnSCciIQ++GTQMl7tbmVwE/+xf
	n0z8yS9NABT6s4KoyRnMHPDndOOdVgpHxDBcanx1zHtbbZW4ybfparYYR1ncWwOjXbJ/+uM52el
	Hic+QPpjEsDkao=
X-Received: by 2002:a05:600c:4e45:b0:47e:e48b:506d with SMTP id 5b1f17b1804b1-48379bab48bmr144721495e9.16.1771241024628;
        Mon, 16 Feb 2026 03:23:44 -0800 (PST)
Message-ID: <444c41c8-a0ed-4780-81a2-c04df7938ed2@suse.com>
Date: Mon, 16 Feb 2026 12:23:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] x86/cpufreq: Add Kconfig option for CPU frequency
 scaling
To: Stefano Stabellini <stefano.stabellini@amd.com>
Cc: andrew.cooper3@citrix.com, roger.pau@citrix.com, jason.andryuk@amd.com,
 alejandro.garciavallejo@amd.com, xen-devel@lists.xenproject.org
References: <20260213235102.359472-1-stefano.stabellini@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: <20260213235102.359472-1-stefano.stabellini@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 14.02.2026 00:51, Stefano Stabellini wrote:
> Add CONFIG_CPUFREQ to allow CPU frequency scaling support to be
> disabled at build time. When disabled, this removes cpufreq code
> from the build.
> 
> Introduce IS_ENABLED(CONFIG_CPUFREQ) checks for relevant do_pm_op and
> do_platform_op subops and other functions that require CONFIG_CPUFREQ to
> work.
> 
> Add stubs where necessary.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> ---
> Changes in v4:
> - fix IS_ENABLED(CPUFREQ)
> - remove #ifdef in platform_hypercall.c and use DCE
> - move cpufreq_controller enum out of #ifdef

Where did the v3 revlog go? Especially when submit patches faster than people
can look at them, they might skip a version (or more), while still having
looked at a yet earlier one.

> --- a/xen/drivers/acpi/pm-op.c
> +++ b/xen/drivers/acpi/pm-op.c
> @@ -367,7 +367,8 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
>          return ret;
>      }
>  
> -    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) )
> +    if ( op->cpuid >= nr_cpu_ids || !cpu_online(op->cpuid) ||
> +         !IS_ENABLED(CONFIG_CPUFREQ) )

Have the compile time constant part first? Else any possible side effects
of the other expressions may prevent the compiler from fully dropping all
code here.

> --- a/xen/include/acpi/cpufreq/cpufreq.h
> +++ b/xen/include/acpi/cpufreq/cpufreq.h
> @@ -381,8 +381,19 @@ int write_ondemand_up_threshold(unsigned int up_threshold);
>  
>  int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int freq);
>  
> +#ifdef CONFIG_CPUFREQ
> +int cpufreq_add_cpu(unsigned int cpu);
> +int cpufreq_del_cpu(unsigned int cpu);
> +
>  void cpufreq_dbs_timer_suspend(void);
>  void cpufreq_dbs_timer_resume(void);
> +#else
> +static inline int cpufreq_add_cpu(unsigned int cpu) { return -EOPNOTSUPP; }
> +static inline int cpufreq_del_cpu(unsigned int cpu) { return -EOPNOTSUPP; }

Returning an error here looks wrong, even if technically it is benign right now
(as the one [each] remaining call doesn't check the error code).

> --- a/xen/include/xen/acpi.h
> +++ b/xen/include/xen/acpi.h
> @@ -186,7 +186,15 @@ static inline void acpi_set_csubstate_limit(unsigned int new_limit) { return; }
>  #endif
>  
>  #ifdef XEN_GUEST_HANDLE
> +#ifdef CONFIG_CPUFREQ
>  int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32));
> +#else
> +static inline int acpi_set_pdc_bits(unsigned int acpi_id,
> +                                    XEN_GUEST_HANDLE(uint32) pdc)
> +{
> +    return -EOPNOTSUPP;

Here use of an error indicator would result in the XENPF_set_processor_pminfo
sub-op failing. That's not correct, as this is a notification from Dom0 to us.
If we can't make use of the provided data, we should silently ignore it.

> --- a/xen/include/xen/pmstat.h
> +++ b/xen/include/xen/pmstat.h
> @@ -5,10 +5,23 @@
>  #include <public/platform.h> /* for struct xen_processor_power */
>  #include <public/sysctl.h>   /* for struct pm_cx_stat */
>  
> +#ifdef CONFIG_CPUFREQ
>  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);
> +#else
> +static inline int set_px_pminfo(uint32_t acpi_id,
> +                                struct xen_processor_performance *perf)
> +{
> +    return -EOPNOTSUPP;
> +}
> +static inline int set_cppc_pminfo(unsigned int acpi_id,
> +                                  const struct xen_processor_cppc *cppc_data)
> +{
> +    return -EOPNOTSUPP;
> +}

Same here, I suppose.

> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -1259,6 +1259,7 @@ extern enum cpufreq_controller {
>      FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
>  } cpufreq_controller;

As previously indicated, these might better be invisible when CPUFREQ=n. But
see also below.

How about (name subject to improvement)

static inline is_hwdom_cpufreq_controller(void)
{
#ifdef CONFIG_CPUFREQ
    return cpufreq_controller == FREQCTL_dom0_kernel;
#else
    return false;
#endif
}

for use both ...

> +#ifdef CONFIG_CPUFREQ
>  static always_inline bool is_cpufreq_controller(const struct domain *d)
>  {
>      /*
> @@ -1274,6 +1275,12 @@ static always_inline bool is_cpufreq_controller(const struct domain *d)
>      return (is_pv_domain(d) && is_hardware_domain(d) &&
>              cpufreq_controller == FREQCTL_dom0_kernel);

... here and in do_platform_op()? Or, keeping the enum visible,

static inline is_hwdom_cpufreq_controller(void)
{
    return IS_ENABLED(CONFIG_CPUFREQ) &&
           cpufreq_controller == FREQCTL_dom0_kernel;
}

Of course the possibly-compile-time-constant part of the expression would
then want to move first, to allow the fencing in is_pv_domain() to also be
dropped.

>  }
> +#else
> +static always_inline bool is_cpufreq_controller(const struct domain *d)
> +{
> +    return false;
> +}
> +#endif

Too much redundancy: The #ifdef would better be in the function body. But
with the other adjustment the need for an #ifdef would disappear here
anyway.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 11:29:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 11:29:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234027.1537395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrwmj-0003aL-SS; Mon, 16 Feb 2026 11:29:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234027.1537395; Mon, 16 Feb 2026 11: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 1vrwmj-0003aE-Pq; Mon, 16 Feb 2026 11:29:01 +0000
Received: by outflank-mailman (input) for mailman id 1234027;
 Mon, 16 Feb 2026 11: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=C5B6=AU=amd.com=Alejandro.GarciaVallejo@srs-se1.protection.inumbo.net>)
 id 1vrwmi-0003a8-VQ
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 11:29:00 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id af940120-0b2a-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 12:28:58 +0100 (CET)
Received: from MW4PR04CA0090.namprd04.prod.outlook.com (2603:10b6:303:6b::35)
 by CH1PPFF9270C127.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::62b) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Mon, 16 Feb
 2026 11:28:53 +0000
Received: from CO1PEPF000066EC.namprd05.prod.outlook.com
 (2603:10b6:303:6b:cafe::39) by MW4PR04CA0090.outlook.office365.com
 (2603:10b6:303:6b::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend Transport; Mon,
 16 Feb 2026 11:28:50 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000066EC.mail.protection.outlook.com (10.167.249.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 16 Feb 2026 11:28:53 +0000
Received: from localhost (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 16 Feb
 2026 05:28:51 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af940120-0b2a-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=X/zUOt7jqVkG07Ucst04BU58N9suBc24Xu3FVoDp17BHsOGFSezr5JE3AyapWpzOrYX7V5ujIU8Bfn2XrgDlNOMS9B13Vo/v5ghtljuPi1tIj9BAv8l+OEPx72q19EQ/wKJuEsvEe76IeNwAxsJJ7Wzi9eMslLdPbgl+qAFQOgZYvFwFxFbmmvD6iPKTej98AFzwRmSw0axNVEpkqMYmD5tzRp7fXUjHWqtTuJ3D9zUm50RGRdYUMkbZOiz1M6kke2FX2W9o9pFsbLR3h20qKOshYrKLvGPrsTv9US5xdenS3wm6q9yHfVO677xcIhr8nZBYcoQ3XMQee+ylujQn1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xG06cDwLBlADx0I4RZreAJkO9JY3Quht6dCqz6LPxF0=;
 b=WIjrpvI4rxFO/5LTVeXYRYDgoWV1vK62ilffQd5eQNaO/X86CVHMlq1v4UQ3kAA86xIzCqumvhKN22PUQV2smQtTRT96dYrOYzv3xIlYctKCawtkc3IGn8Xc4CHL06+r36uVumw7bqojwoLhd6bB0MEmVgPgm9+AvDyQiut0Sllyj9RPFxsekTzr9qnCAkIJizcspdWRQVhyCV8YebquHD7CiLZ6mDwOEeAa+pvtaJ7MKEJMHMtxT5+eGJelOuHO5vEx7UxSWEXDhB46+IiqdMbzHH7suUKrV2EVRdGxXtBpcD3o0BbQMZX4eQ5ubHVyjA6JeheOclN9YnWipUGbig==
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=xG06cDwLBlADx0I4RZreAJkO9JY3Quht6dCqz6LPxF0=;
 b=z7ugIgKzW+kxi7/toy+DY2Bn24ftLeEkpXujsuCNkOAEQ07LNQUxOYFTv2FFe0O7eBwOqEXokI9JwijXRhWnOkUG+FKMWvg34/Tuqy6JNYECtrpYi8yHGpA3CXXvAc/3W4eKzYZZFB++TXSNVdpS03zt8ssEC81Q3LI14uYU4RQ=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
Date: Mon, 16 Feb 2026 12:28:49 +0100
Message-ID: <DGGCNDLX0AY0.2P9QP7NMYNR5R@amd.com>
CC: <roger.pau@citrix.com>, <andrew.cooper3@citrix.com>,
	<jason.andryuk@amd.com>, Stefano Stabellini <stefano.stabellini@amd.com>,
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] x86/hvm: Add Kconfig option to disable nested
 virtualization
From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Jan Beulich <jbeulich@suse.com>
X-Mailer: aerc 0.20.1
References: <20260213220205.196179-1-stefano.stabellini@amd.com>
 <DGGBHY9HHXIA.C7GM5MX7ODLG@amd.com>
 <c0635184-6422-498b-87de-e6c3fa016a4d@suse.com>
In-Reply-To: <c0635184-6422-498b-87de-e6c3fa016a4d@suse.com>
X-Originating-IP: [10.180.168.240]
X-ClientProxiedBy: satlexmb08.amd.com (10.181.42.217) To satlexmb07.amd.com
 (10.181.42.216)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066EC:EE_|CH1PPFF9270C127:EE_
X-MS-Office365-Filtering-Correlation-Id: 6c75d17e-720f-4ebe-a0dd-08de6d4e909c
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?Uk16bkJpZUZsYjZaditzN0poZkZVVm1BWkFUeDIxODFsT0RQOTNEb1RkbWtj?=
 =?utf-8?B?NEZKWUJhNTV6WVlGNDJsUGRWVk4wTW9lZys4S2ppVjVTV25NaTdpVmFML01Z?=
 =?utf-8?B?QXQwMkRBUk9LUE11bVRpZnJ1ODVSS2t1RjhNd3B5TWd0dmZLVUlNbGMvbkpI?=
 =?utf-8?B?Zk1BTDh4UmlFbXEzUEFHek1KZXQycGRZaXlreTJydDcwTWVCdlZjR1ZXQkJQ?=
 =?utf-8?B?QUxnWmdhS2x6czYyQVdGWjdIeDZaeGNrdzlxcjl1VHBKKzJNWjBmWkdqcDlF?=
 =?utf-8?B?QlRuRWJKY0FZZFZ1OEdsd2RMNy9mUE90Z2F4WUN5dUpxenJrRy90ZnZnbjRE?=
 =?utf-8?B?RnB4WjdMbmhKVFROYnNYZGVMME1vM2dPLzRseUtmdDd1MU5rcjhQOFNJWGIy?=
 =?utf-8?B?QXRNcXFvdFcrVC9RbnAySnNJYk5lWjlpSkxqSElVeWU3eldsVEFhKzdIdGYx?=
 =?utf-8?B?MEpsdXhiYWhiMENqaXp0cncyYktvNVN5dStDc2JXTGRsTHEvTno1dCticUtJ?=
 =?utf-8?B?c1pPY2U1THp4ZFc0ZXEyYTMvZzM4cUR3QVR4SGlhSW5xUTNRYzJnM3JKUEk0?=
 =?utf-8?B?QWxNOEVQQlFsTm0rT2J3SG5oSDJ6Z08wbEpsSnhKWDhMVVUvMVo4TTEzRjNT?=
 =?utf-8?B?dlM4bDA5NW94amlMYnB2NE1rWlFGeC9ONlZWcEFLbWJFNTNlbFZJWUFRUVFN?=
 =?utf-8?B?ZjlRWFlpNDFFencvNlBEdS8xTnBVMzNVbVhZdFRqalR6bnhuY3FLSUpMYTFN?=
 =?utf-8?B?dm4vTDRodjhIanFrTDI0TTA2MkdZTHQ1a0Q1a21KNm1ZSVhRQzVyT2tGYTFk?=
 =?utf-8?B?dkwwSWcvV3ByNVpsMXl3eFFQRVhqell6RzNnMVQ2SEszcytJWkhiZXNObHJw?=
 =?utf-8?B?YW1ib1NDNlEvWWJXZ1lpVy9NMjJ4YzZhaFdZaTZBMlR3dzhBZFlnMERQZlRm?=
 =?utf-8?B?eGRVMzcwckFRZE92NHdsQ3djcEcxbnFadmtZWnBic3AzckdYWnRZL2M5eWl3?=
 =?utf-8?B?anFTbW8vLzhLcTBtTUNYajQxUlFRdFhoV0JQYlU1WkJJQ1NNU2xyNWo3NHNr?=
 =?utf-8?B?eit0cVRGQUo5RWRacTlkOEJhZUUrMmwzL0NsbFA2K2wrN0lQRFlrQ0o0dzY0?=
 =?utf-8?B?RFNJMVZRQk51akdTbUk2dk9JZHVNVjR0TVoyZjl5VUVHUkF0QTZveHcraDNO?=
 =?utf-8?B?cmU5bWFIeGFrWWtYQnp0ZlpScXVtMEczaU1YdngzajdYaURoRzcrN1BlRTd4?=
 =?utf-8?B?YXJMSjkwNkNpUDJTei85d3NYN0g2TXRPTW1Jbk1CUlRSeGJ1bGFPZlc5MDdh?=
 =?utf-8?B?R2lWRmpNQ0luUjJMV2NKUUtJNFNPS0lJTGh5eHhXVCttMFNsV0RIdjVjOVAy?=
 =?utf-8?B?Z21UNDVrRFhwTDQxa2h1ZUxiVERFbWUra25semU5Q0ZhM0VZWFl4UkJOZjF2?=
 =?utf-8?B?NkRPdUFuOVlwRmg3ZWRvTFVGSFNINHNuNlNXODFaUS90anJFVkhCQ0FwdTR6?=
 =?utf-8?B?WWZ4aCtGYkE5VzBTWWVaRUNOQy9CSjV5elY0L3dCVzcxbzZOZkdtQ2FIRSti?=
 =?utf-8?B?b3FXOVM3K1NHeDVxN2dYZXFMUVFCU3VKQkR0bllCSnNBT2c1ZkVwcXZONDhl?=
 =?utf-8?B?WHh5eHowTEVnUjJKYlZsOGZ1bk0vVUdKSFZzWm1OUVh2b3J2eG9yT3czQTlL?=
 =?utf-8?B?MGZ5OTJ4K3BRUTFUOEpmbmZiMGdycHFTV3RtQnFtTURTVzZ5bUFWdzVWblFE?=
 =?utf-8?B?eDRJbVpRVGgzcEk0RHlUcktvYU5zWWR3eVUyQTJ4Si96QU5xY0ZocTRQNHMz?=
 =?utf-8?B?S0JrSWRZbTBaNVo2ck5DUGlPS3ZycXloSDFKRm5JREdkMjg3aFhNdXNGR3dr?=
 =?utf-8?B?aVFmYzkvS0hla1ZSR3NzcW10UXFzQi9VUHRiSHVqTmgyRFdkODAvN01xazVv?=
 =?utf-8?B?clNSVC81OGN5aDV0Sk10NlZSQXZxNGErUmgrUkpVcHRZUzNRQ1d2dkloZjFV?=
 =?utf-8?B?dldCWmE3a25DWCtRaHBCRVhqaWpDNlcwS0t0WG5NblRyNFl1VmZZblh5N2Yx?=
 =?utf-8?B?OVhDaTR5a1BCS1FxQ09MMlNwaW9wTlpwRkdLT0xqQVJWN3FWZnlLZ0FKZktu?=
 =?utf-8?B?U2dWNms1aWRmL1NQZUI2bzNSOUNmcmgwd2x0V1UxbHRwU25wZ2JmVjV5bzZX?=
 =?utf-8?B?bFJGUHpXSTl1RWhGdXM5dEVGZXJoWTNMeEFyajdxZDI0N2VQdi9tL3BaTXZh?=
 =?utf-8?B?STBkUU83NzlCSkd0NVFMZWNxR1pBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	aObRhawvLLRBzUGwPepaXeB2a5+IsPvJhomvFxNWSBLZaRWJ4gqrg/qobU5c6fXeOEXGNND8+GtFNiE+0liwN84ukSART2+NDmiikgpuJfJzwlhGg/qam5KX3tB8NPikNTUoN3neZB/1ijbRnj1ZB/CAuNlNApnw0HWPnhlexloK1mVVTE/C0xtAfIAc6mX5wAT/qXEGCVSPQ2gQTVT4ENIIqYeFcnP0Zvxvk3wvnCVp0zLopDFLs+HndO2PYnS+95TkzxWTB2Nb8AWkuuIbHvX9mzVRcEHUVxIZfBD+9p36EY4fnI8E7ymFuZxjpeCzujUmUKDUpXgGn8sOLO8+prMaek1mjEbUtTySl5R18AzGsgrm4NDp0NlbgXOHrO4PD/WeZ4yoBnSYeo64bo2X2JuKkvuw7tfzVxSUlbeArrYbvYwhFU0RfsBdo2Fu6Jic
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 11:28:53.2908
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c75d17e-720f-4ebe-a0dd-08de6d4e909c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066EC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPFF9270C127

On Mon Feb 16, 2026 at 12:01 PM CET, Jan Beulich wrote:
>>> --- a/xen/arch/x86/mm/hap/Makefile
>>> +++ b/xen/arch/x86/mm/hap/Makefile
>>> @@ -2,5 +2,6 @@ obj-y +=3D hap.o
>>>  obj-y +=3D guest_walk_2.o
>>>  obj-y +=3D guest_walk_3.o
>>>  obj-y +=3D guest_walk_4.o
>>> -obj-y +=3D nested_hap.o
>>> -obj-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
>>> +nested-y :=3D nested_hap.o
>>> +nested-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
>>> +obj-$(CONFIG_NESTED_VIRT) +=3D $(nested-y)
>>=20
>> Why not use plain filter?
>>=20
>> 	-obj-y +=3D nested_hap.o
>> 	+obj-$(CONFIG_NESTED_VIRT) +=3D nested_hap.o
>> 	-obj-$(CONFIG_INTEL_VMX) +=3D nested_ept.o
>> 	+obj-$(filter $(CONFIG_NESTED_VIRT),$(CONFIG_INTEL_VMX)) +=3D nested_ep=
t.o
>
> It may have been like this in v1. Problem being that this leads to long l=
ines,
> which doesn't scale very well (and is - imo - harder to read). Especially=
 when
> you consider what happens when it's more than two settings that need chec=
king.
> The list approach easily scales to about anything (by using as many separ=
ate
> lists as you need).
>
> Jan

I'd agree should we need more than 2 settings, long config parameter names
or long filenames, but none of that applies here. It fits neatly in within =
80
columns and the extra indirection bumps the cognitive load (subjectively
speaking) way more than the single line does. Plus, it takes more vertical
space.

Even then, I'd rather have ifeq on the 3rd and/or 4th parameters and filter
inside, which makes the group stand out much better and doesn't pollute the
global namespace with even more names.

And there's the matter of "filter" being in use very prevalently elsewhere.

My .02, anyway. They are functionally equivalent, after all.

Cheers,
Alejandro


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 11:45:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 11:45:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234036.1537405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrx2P-0006OB-5Q; Mon, 16 Feb 2026 11:45:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234036.1537405; Mon, 16 Feb 2026 11:45: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 1vrx2P-0006O4-2p; Mon, 16 Feb 2026 11:45:13 +0000
Received: by outflank-mailman (input) for mailman id 1234036;
 Mon, 16 Feb 2026 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=aABt=AU=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vrx2N-0006Ny-Oc
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 11:45:11 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ef8dc56d-0b2c-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 12:45:06 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BY5PR03MB4965.namprd03.prod.outlook.com (2603:10b6:a03:1e8::23)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.15; Mon, 16 Feb
 2026 11:45:02 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 11:45: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: ef8dc56d-0b2c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=toC02RyCqX9sVdjp+1AML6VOUKt4Y2x7cPDXvy9PO9Pb5ZUSKcdyq5jm+f0t4hHmgZ21MzJobihXVl0wUXRqtBVQaKYVHS9O5fHMRZMHZgGfXw9IhgXAfrEcJqQO8WS+0hWX9K49Hmv2zD5RLhZqMisAGsX50RdMFXK9T4tubGpWGISDvdcVJhBKZ3kgQIe0104dYcbN/rrvnvaJmcsvsS9EHLcYupfAHFYyRtb180/GgruXV/ckGdg59+dVnwU/4M1xF4RyB30UzZZOLmLZD52B+3sn9KXZHQkrfJbZgARZm8cP9VBoJmJOY4h5fWGKFOR9dK9NRTF/4s6YDalc1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ruoIsqENWW3aJlrPc9WCiXtcHgRB5gCOfS/0sWc2ZY0=;
 b=OvUxyFIkA4rRyFBWdSOjiDBfntT73fB/urLS4sZWMiQXqZ9GnwIvZESJyekIFgrH/7bE1g3EvCvnUw3BOCWSVLIZuVEZOUl05NkdQf3ZjwZaOw62FbCo6jcDwBI4nlsVvVo7JrdVwRBk6ZyC0reQPRXuYVQnSqjc990I0RkoNhLBHkqWxYC31ESIPD9GwLbtQPotihvgqofBP5f3KUYvO5pOwfbCDYfGtTY0w9EUoDbblw55rxIfFzMXMLOcGMnMktRUqT1+8/QU1nIPxKHlIiXePXMI00wh+q09vIeuZqAD0ZfTYFh8pHpYpO5pckNBDPWCsunRLeCsA8zN9ebt1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ruoIsqENWW3aJlrPc9WCiXtcHgRB5gCOfS/0sWc2ZY0=;
 b=z5NSRA8Aa4m65qWWmKudkLIJFpjyhnjVy15hGYPe4P+gC74JmuO9VD8/ncq8a4Gsh+z+OaGqCenNt+C6ODuZMrS9Z3Yn/wlaK53m9wBAE4GmkF1d37IpNVJ3RLztT+92kpR/OW54lbhPBBgAoUAAb02pwBYxxslnbMP6fHRCzho=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <518e7576-a88d-4172-bf93-f6a368c173d0@citrix.com>
Date: Mon, 16 Feb 2026 11:44:59 +0000
User-Agent: Mozilla Thunderbird
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
To: Teddy Astie <teddy.astie@vates.tech>,
 Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 xen-devel@lists.xenproject.org
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <c0c2e0cd-173a-496f-a643-7d19c9418a2a@vates.tech>
 <ea21a66e-a4ab-41f9-92af-0111292ecb3a@citrix.com>
 <626c3f3b-9176-493c-9d96-e2a5344e7100@vates.tech>
Content-Language: en-GB
In-Reply-To: <626c3f3b-9176-493c-9d96-e2a5344e7100@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0097.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bc::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BY5PR03MB4965:EE_
X-MS-Office365-Filtering-Correlation-Id: 23a3b68b-3cd6-402a-1298-08de6d50d227
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?Y2dvOW5jRU9PbHBFUVNlb0RDYTl0VlhMaVVRdjZFSWtTMk11VGI4Z0NGNjdT?=
 =?utf-8?B?a1NZSytWeHNMc29hbll6U0VTVCtDUjNreEJPeGVpQm1MbWp2THRTVUtQMHU4?=
 =?utf-8?B?MUlEK1JOc2pVTXFzcXYwUVFrazg5NGpKQVMrR3cwSm5IY2V5eDlHWnB0QWRQ?=
 =?utf-8?B?aVc3UDRpUHB0bzNXb2Q4ZTNpUkJHRkpKb3Q5a1ZRU0NyYWV2VUNQSEdzRU1v?=
 =?utf-8?B?enV1RXhibEljam9ybGZMOTlpRW8wTzlUcno0RE9kbGd6djFUUTFCZGJIL0VT?=
 =?utf-8?B?UjRHWXlSNDJabnZKeDE0QkpFTDNKdFg0b2Uzc2Vobk56Q09PZVB2ajljL2RS?=
 =?utf-8?B?cVpQbzdmVTcwMEtSS3J3TU9MM2JDOEM4SDlDRktPR0taVnF6ODl3c0xHU21y?=
 =?utf-8?B?ME5ZT2lqTUhpOVIvbDhvdHFWeGNqMVR3NFp3OEtQMTI5clpsd05kTXRGTGFF?=
 =?utf-8?B?enJDWVYvSnZlc1pURXBDR2dwanJVR3Z1ODM1YkRoZDEzV3U0d21EaWc1S0tO?=
 =?utf-8?B?VEV1cWRzR1c2bDErczliZ1lwSkxaZUxYRGdlNFN1ZEpheS9nM1pSODJTNndS?=
 =?utf-8?B?OUJ5Qnc4Z0ZtSnZpZUdaRSszRGFkaDZHZWpzU2pQY1VrbGxPbHJ0WUtLcXYw?=
 =?utf-8?B?bUJDRVNCWWNZVHM1RkNWMW01dTczcDYvSkEwNnpDSy9WVGU1YWJIZFdRTVE0?=
 =?utf-8?B?eEpjdG5Md3l3cm83NFoxRjN1MjZJYW1mQVllejJxeW1EdzRDUWFOVTB5c2JM?=
 =?utf-8?B?V1VjZENwU2tycy9OVlpJNG9MaWo4SlM0RHJCTUFNUXcwaEN1M0xsRjhQNHY4?=
 =?utf-8?B?amtEYmRQQVFPUUo1T1pzU3VRS0E2a2NGOFF0OXIvMG5UbGVLSWhGWHdybXpD?=
 =?utf-8?B?WWU0cFpsQ1p5cFF2UmsvVUNRNVY5M3gwTEpLY0J4c3YyTUhDWDNhc0psMHFZ?=
 =?utf-8?B?bXNQU0s1elNYS25PTnZuRjNEeGs4VmNCWUFmRDlsejdLZXBzTmVGMlRQWUlt?=
 =?utf-8?B?d2JWTndneU9uSnF2ZmVqTloxTkpIWWgzQ3dCSy9ZaWJDM1BQNlhja2pOZFA1?=
 =?utf-8?B?Nmo5ZGJKWW1GdU9kbkxUSy93d3YxQnRxNEhOUFAvdUlLYVowMm9LUTlJNU5t?=
 =?utf-8?B?c0pQeG1LaGpBaVJJb2UrUmRnS2ZuOU1oL3M5VGZGdG9lVGVuVFFCZ21OYmpn?=
 =?utf-8?B?ampEUlZLSlZsNDVQMnBJNUl3Zmw3VGhMUGMvUnFjZHY4V1VzRE9xVXdTbVY1?=
 =?utf-8?B?SzF6dTRKUEdoVldmSjY1TG1sL3JoQmx5MGE5STJUQ2NoQ0FaUXpHSVFTdFNV?=
 =?utf-8?B?eG96QjBwaWVEdTZUNnZjVmRYamdFdHV6Zy9hbGgvYjhOYlJORlRmRXNtcFUx?=
 =?utf-8?B?djRMZlUvbnZGWmVaZFZ0WXl1WWV3dEVtd3FrZnlidEM1REcwdHVDOGhpM1Yz?=
 =?utf-8?B?amtqb2p2cGEvaGFKNTdtV3dWUTBZQ1RrNnlhWjJ1MSsrRTZMU1Uwc29SVENN?=
 =?utf-8?B?eW03YmRsVnBEYThXN1JRcllZTUhBTTZsU3pxZnNhWFc1dXNVRWhKbkFDR3M3?=
 =?utf-8?B?cXUxcGxsQURiWjhrK0hjckdlZmZON3YzaUpyb050bmxObW5nYVF6YStYbHBP?=
 =?utf-8?B?K0tnS09CK2FTU1F1Nm5oTGlyYVQ3T2lPcDBRamZZajFrb0RQTnIyUnlzMzJq?=
 =?utf-8?B?SzVJQk1jQ3VLcTZ4d0NHdjhvQnplNFFaMDNCZzVqZjVqZXJuaS9LTURpUXlw?=
 =?utf-8?B?bHFIS2dIN1ZrUWhVMnVnc2JlUFBncC9yNDFCaTlrekNGWGNBS0ttTWRablg4?=
 =?utf-8?B?TExtVHJEZHMyeEJlckVWN1ZFV1VGUGViTFY2M2QwRzMrTWVDakpnWWxkcXAw?=
 =?utf-8?B?T1BKdUFhWGErWTFSWm1SUFAwbVBYbjJsWHk0ZXVzWGgwNWZCUDJuL2h1Wjgy?=
 =?utf-8?B?R3FoN0x1Ym5wdXNkdSs0QjdtYjUwMDVzQ0ZndE1jejJoSkxnZ1Q4ZnNubGl0?=
 =?utf-8?B?SlM3N3BOS2IvdG1kYVJ1bTJqT202ZnFuNWMrR04yYUxzOHVOK3Y2SS9XWVVX?=
 =?utf-8?B?YjB2alJDRzRvR2J1QllzMHB6czNqN2NiTCtmSTdHS0pGSDhsNjI0MTdMR2Ix?=
 =?utf-8?Q?Nu2E=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dklGZkZwWmlWaTdCVS9sdWtSQUVhcko1RCtaMXVXZ2VHaHluVWlpVG42YU5B?=
 =?utf-8?B?VGs3SUlwL2xmWnRPaFJhNitaWU4rMFdobDU2ZCtVeHd0cmNWMFduVnd5U3ph?=
 =?utf-8?B?RlpKQWMyZllob2RMaFc5TVowOEx4MTdGWDhZM1VxYTdXVDZKYWRaamc3clBD?=
 =?utf-8?B?QldaNTlDRXN1MUFxR09JZUo3RzBEa1VnaVhMZzlONXpIbDRrZExmVHo4Nk9j?=
 =?utf-8?B?L3BRZCtIdXplNHhVYzFNNk1hWlBxT0RhWkxKRFdVMitjcURsd2NBOUk3TjBu?=
 =?utf-8?B?QU5RempQRjR0Mno5bTg4Sy9YUm1sQktoMFNnbVhUOEc1QjdDMnlPNElMeHZH?=
 =?utf-8?B?Rlg0N2MrWWdUNGFjQVJuNlIyenJjWGNSV1NmZ0ZVSEpFKzNKUkJrZTlLMTNs?=
 =?utf-8?B?ZitVRlB6Q3VpNUV4TFFZL2ZzYzZGa01yeFhEeXZYcjNvVXpGWVlZZTY0OGtz?=
 =?utf-8?B?VFpZUkVFRGlLLzFyKzBGYmt3VHV5NHNOZzVnblZIZUducHkxMTkzNUNKYWFw?=
 =?utf-8?B?U0duV0hadU9NWkJNR2RmT05NOVdiYUQ3VkdJcjgzMmp0RmNlWlZRMG5mcnA1?=
 =?utf-8?B?MnNLYmZwZ1dqUlRTdDk0RjViWWtlMVVrQ0V4L3VYTHlmYlUzTUJvRUpkUVVF?=
 =?utf-8?B?TG13b2QxcG1QZkFtZlpSVUltZG1xSUFMYzBhK1pEUWpHMjdVenRud2haUGpJ?=
 =?utf-8?B?c1ZiOFNBUjBMbUtqcjVVYVhlcEJsbVFtL2luU0N1MzVlU1REb21meUJ5VG9B?=
 =?utf-8?B?MEU2cjZ3bXZJUzA3dTdyamQ5QUpLR3UxeUN6SHBFWjluNkQwcnVOWi9Md0VK?=
 =?utf-8?B?RGZ5T082OHl5Mk5BRmJDemUvdWpGYmtPVVRtR21tVEczL1h5SmZPNmpGSW9O?=
 =?utf-8?B?bmt2R1A1a2RIY2E2V1dIT2JUK0lqRVV1ZFl0SUhodjdrU0FGM09PN0o0Mkp3?=
 =?utf-8?B?ZzhXb3c1UW1XRnhwUUtRNWJzd2RnZFFVYmcra1ZKcGZTaGV0aXVSdFMvT3dj?=
 =?utf-8?B?a1ZWQzdoSDNnejRnKzU5Y1JZbncwaTIyYVFVb2NVZGJFMVNxYTNqRktCcW9w?=
 =?utf-8?B?Q3FYdUZpMHdKUy9HS01mUDJtRTh3ay9QMWlNWjBWRG5yeHlhZlBnUjN5eEZW?=
 =?utf-8?B?eVJuVG5Ud2F3SWI3YXVJNXpkTE9MWjZIUEJGZEo2NW9haTQxRFBMUGFZVzhE?=
 =?utf-8?B?WG1aMGRSUmYydWlzR0d6OTVySWhJUWpybS9DWWVUMHN0NXdQVWkycjVMTk83?=
 =?utf-8?B?alRZeFl1bTlqNnBFS29hZU9pZTVaSWMvZ3oybkdUSDJsM1FoQ25xdjliT1hT?=
 =?utf-8?B?SUdLekEyTmI5OXZwR0FmRHZ3azl4RzF2TGt3NVowK3g3RnpsQytzRll2L3Q1?=
 =?utf-8?B?dUxzVjNwa0RXMUVWd1dSbkRmb3prNUNpQ3RvZUNYeUVreCs5cUh5eVRjOEgx?=
 =?utf-8?B?S2VzaEZrYjlpT3YxOTNRWWRudXdXVm5lY053WkVtQnBKYW1xUEpOenV1ZWgx?=
 =?utf-8?B?U25TNVkyWTY1cTQ3VGFsWUlVOUgzNVQzQ1JpSkxreWpDQ1hycFNabHAwd3JE?=
 =?utf-8?B?SXJycGdHVkhJcTFYNklNblpIbGZSRStZN3BEN3dGVG1ndXdMMVhkVWpseVJO?=
 =?utf-8?B?MUxqaUk5elJPT085dHd2bkw5Mm1RZlhOR3E1ZERvYmo2dUEzVi9sVk1iNnJC?=
 =?utf-8?B?c0NyaWdHQXpobkpoblpkVCt2U2RtbDBmR3NRczZFQUp0KzhSbk5WT3UzT2th?=
 =?utf-8?B?QlhYQnVUc0lOb3hYNnJEZXlGVFBJUFFMZ0UvOFlIZE5ENXAyTm1aR0FpLzcv?=
 =?utf-8?B?Y2Mza1dNRy9RWDJ0SER0dkNKRkdPcGFqdkRxNVppUzFaS01nSEREWWhCekt0?=
 =?utf-8?B?cVV6MFFZSU96Y2lWNDdYQUR1UGdCRmFnL2VxZUE0OUlTUGJ5L1J1a1d1eGNq?=
 =?utf-8?B?d0dCTDVEcGF3SEFPUytpVi9od3czL2xEaTU0V2g1ZTZTZHArcWJvMWxOVEt5?=
 =?utf-8?B?TDdZT1lFbFprQ0lOQjJzSXhTMlZ2aTJrK2NjT2dxckQyM1ZxTnpoTitjd0xx?=
 =?utf-8?B?eHZ0eGVEeW83eDZXUklGQVluQWtTcUdNUTdiOVhMRFZvZUZLMlJuK0pRTEU5?=
 =?utf-8?B?UC9PMXJkaWNPV1VsTG83YmZJTXhrMTl6VW1CUXNheXptaWxTV0d6bVdMN2xG?=
 =?utf-8?B?ZXU2MnUzeVpkc3F0NFl5WCswTHlPVHZ0ZmIraFVPZkpNdS9kMW1LSHNOdDd2?=
 =?utf-8?B?Ti8vTFlGZnBheHI0R2N1eEJKbkNMYU1BQ0hxK3FLdXVCa2IxK3BsVGkwYWdX?=
 =?utf-8?B?Rk11WlVVNFhSZU9lamxUMGFMemFERzJVcVpuYXhHQ0dML2VHOE11Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 23a3b68b-3cd6-402a-1298-08de6d50d227
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 11:45:02.5351
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: CJFqJhnU8eWqO5cAyfvQniBgjAZmcxL/m8i6MQPcWREFNaDn4cHUFUbmQUvVLWh4fwmTHOh/Rhry+0Y8sIWI9tUzdIgh1ydGdZ6V/4oesWE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR03MB4965

On 16/02/2026 10:46 am, Teddy Astie wrote:
> Le 16/02/2026 à 11:16, Andrew Cooper a écrit :
>> On 16/02/2026 10:07 am, Teddy Astie wrote:
>>> Le 15/02/2026 à 19:24, Abdelkareem Abdelsaamad a écrit :
>>>> With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the VMCB
>>>> and handed off to the hardware. There is no need for the artificial tracking
>>>> of the NMI handling completion with the IRET instruction interception.
>>>>
>>>> Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hardware
>>>> accelerated feature when the AMD platform support the vNMI.
>>>>
>>>> Adjust the svm_get_interrupt_shadow to check if the vNMI is currently blocked
>>>> by servicing another in-progress NMI.
>>>>
>>>> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
>>>> ---
>>>>    xen/arch/x86/hvm/svm/intr.c | 9 +++++++++
>>>>    xen/arch/x86/hvm/svm/svm.c  | 5 ++++-
>>>>    xen/arch/x86/hvm/svm/vmcb.c | 2 ++
>>>>    3 files changed, 15 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
>>>> index 6453a46b85..3e8959f155 100644
>>>> --- a/xen/arch/x86/hvm/svm/intr.c
>>>> +++ b/xen/arch/x86/hvm/svm/intr.c
>>>> @@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
>>>>        u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>>>>        intinfo_t event;
>>>>    
>>>> +    if ( vmcb->_vintr.fields.vnmi_enable )
>>>> +    {
>>>> +       if ( !vmcb->_vintr.fields.vnmi_pending &&
>>>> +            !vmcb->_vintr.fields.vnmi_blocking )
>>>> +           vmcb->_vintr.fields.vnmi_pending = 1;
>>>> +
>>>> +        return;
>>>> +    }
>>>> +
>>> I think you need to update the clearbit for tpr (related to vintr) for
>>> the hardware to know that you modified the vnmi_pending bit.
>> What makes you think this?  The APM states otherwise.
>>
> The APM state doesn't appears to state regarding this;

The APM does state what is part of the TPR cleanbit, and vNMI is not
amongst these.

>  it's neither a 
> part of the "VMCB Clear Field" layout part nor the the "explicitely not 
> cached" list.
>
> So I assume that it may be covered by the TPR clean-bit (which is the 
> same part of vmcb); as it's actually unclear if hardware wants it or not.

This is very different to your original feedback though.

It's fine for review feedback to be of the form "have you investigated
the clean bits?", but if you're not sure, you must not phrase your
feedback as an instruction to check the cleanbit.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 11:50:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 11:50:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234051.1537415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrx7a-00089E-Q1; Mon, 16 Feb 2026 11:50:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234051.1537415; Mon, 16 Feb 2026 11:50: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 1vrx7a-000897-Mm; Mon, 16 Feb 2026 11:50:34 +0000
Received: by outflank-mailman (input) for mailman id 1234051;
 Mon, 16 Feb 2026 11:50: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrx7Z-000891-K9
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 11:50:33 +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 ab519d55-0b2d-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 12:50:20 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-4375d4fb4d4so2522970f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 03:50:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ad0166sm26644129f8f.35.2026.02.16.03.50.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 03:50:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab519d55-0b2d-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771242619; x=1771847419; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oEWNuxj9S1ZsWEmjaAOrdxnQ3yMo5yTwjifNC2h4MyQ=;
        b=R9/2t/hZm/gJe/DNRgegeA8EAz7wCaOx+jy/Kin3SpsCaV0Z/esi1Cy4IDK8SDEete
         p9td8mS4wtoqb7jemVBtgx2H3fmtVvz4reC00lD/CNRxvNbi9re9UgiOon8Dd3cZW2rt
         XhuOstG4NgtoeOskGdqA121W3mMMslJ6rgdxiD4kY8/4+qmVH7qFgZx9yEUosttsupA7
         yNPCV7Slr0c3ad/S4JgGNVXiXXY/LZrFKk7oCgVkWZmcZe7HBRxtpRCRL0Q57tiR5n/Q
         lyqfdB7mMsA5Z5G+ZYt6rJ1vyRYB8ylqEsyiooYI8jFj6uVJXva/+AJbAv51vxYMOpyw
         Omsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771242619; x=1771847419;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oEWNuxj9S1ZsWEmjaAOrdxnQ3yMo5yTwjifNC2h4MyQ=;
        b=W3274PL1swfP1lApS4VNAwPkIUQe4GozOaV4WlZgPj/WtAxa2DF79OTh6Hv6OEBPsr
         ltF5DJwiguTHxEzbfHgdFCnwDGGuNIDjk3nRDEfuIQAsOjLLSgeYhaA7660wHFCW70g8
         CPY1SazcLA9kYmlb41s2NMAdNkSN3JQ/vykGIePetY1D313IG8pTqwQl8al56SpUcktj
         0W/6lYIZ9Rh59a6aeOQr7V+CyIBpbv0E3T8WmNHIVtuqkUnjZ9+pA94ts8pqygpAWtyK
         ibozzHD23PkOkZp7dNU71f+CjaKUIL6oyg1OM7LR6TFltl10thUkynqCWmGnOAKAOnvI
         qWyw==
X-Forwarded-Encrypted: i=1; AJvYcCUaVep0eJSuba7kmyxwfM1ihz1qKlVdFsFWF7238Q5GuJ9kDBPVsm0pq8z4wlGWfZTuK+wY0RHXsXk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YycpsqbXVMd4pjZyP/GwoOu46HX1LJBfVAQIFCwefA1dxFWDicr
	fA+RzhDUBxL/jV2u/wZ8IToK3RojbIKXtshIaHOg9SRZV22a+UCAvGdGfeLs0jxyiA==
X-Gm-Gg: AZuq6aKGLW/gWapSsKpC5d43sOsL2eC+HhR8DRkSidS7qNpnZuk+7uSFskdhhwPkAZM
	isMerge45QPtlzN0bBeqwjvaRO1nJJGElUJaR+0XvTMluFYK9eM1H5S/M/z+5Spi7Cu2JdHryIt
	E9bo3Mv8ndZn3dFvxB1t9HQFwqBVEVLE0SPUx8zDLXlaJkkM3rJkEarRzqR/fk97UeY0FyvLULg
	3K1cbAA/5cMRrbfOJwwVGQIfeJFhl/3oKTIAFTSToi9iDi+KIAYFexf9RlMobzpGtV/YI8aIF4+
	aK1KJ1rODm3W5TKDES+2xfHY9xffSTD+OlXDlan1AFmtipB6VZefyuq83cWnjPGoRVQbM1Ve2aV
	QnTQSRtPkXsi0Jrh51QI/lItzA/Txwcytd7R0god0J2F9MbCWWdXV8GAPIZgXrUVyi3meNBB3zg
	fy8bs6aACrqG0zc2SR4esDo3IGBwR9VT2KCSv+yc9Vh3y/aXHi7a15aehSV1YoYJfTwiRRqb2Xg
	u329NPI0jZu1g8=
X-Received: by 2002:a05:6000:2881:b0:430:fb6d:1442 with SMTP id ffacd0b85a97d-4379793ddd6mr18204713f8f.62.1771242619523;
        Mon, 16 Feb 2026 03:50:19 -0800 (PST)
Message-ID: <0f7e5a73-a574-4aa2-80c7-b45d08b9d6b0@suse.com>
Date: Mon, 16 Feb 2026 12:50:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.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: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 17:29, Oleksii Kurochko wrote:
> Introduce helpers to manage VS-stage and G-stage translation state during
> vCPU context switches.
> 
> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
> switch-out to prevent speculative VS-stage translations from being associated
> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
> required order.
> 
> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
> only when required (e.g. on VMID reuse or generation change).
> 
> This provides the necessary infrastructure for correct p2m context switching
> on RISC-V.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v3:
>  - Add comment above p2m_ctxt_switch_{to, from}().

I find these and other speculation related comments problematic: You can't
prevent every kind of speculation that way, yet all these comments are
written as if that was the case. What I think you mean in all cases is
speculation using the wrong set of page tables?

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>  
>      return get_page(page, p2m->domain) ? page : NULL;
>  }
> +
> +/* Should be called before other CSRs are stored to avoid speculation */
> +void p2m_ctxt_switch_from(struct vcpu *p)

What interaction with the storing of other CSRs would be problematic?

> +{
> +    if ( is_idle_vcpu(p) )
> +        return;
> +
> +    /*
> +     * 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 what will be done in
> +     * p2m_handle_vmenter().
> +     */
> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
> +
> +    /*
> +     * Nothing to do with HGATP as it will be update in p2m_ctxt_switch_to()
> +     * or/and in p2m_handle_vmenter().
> +     */
> +}
> +
> +/* Should be called after other CSRs are restored to avoid speculation */
> +void p2m_ctxt_switch_to(struct vcpu *n)

Same question here.

> +{
> +    struct p2m_domain *p2m = p2m_get_hostp2m(n->domain);
> +
> +    if ( is_idle_vcpu(n) )
> +        return;
> +
> +    csr_write(CSR_HGATP, construct_hgatp(p2m, n->arch.vmid.vmid));
> +    /*
> +     * As VMID is unique per vCPU and just re-used here thereby there is no
> +     * need for G-stage TLB flush here.
> +     */
> +
> +    csr_write(CSR_VSATP, n->arch.vsatp);
> +    /*
> +     * As at the start of context switch VSATP were set to 0, so no speculation
> +     * could happen thereby there is no need for VS TLB flush here.
> +     */
> +}
> +
> +void p2m_handle_vmenter(void)
> +{
> +    struct vcpu *c = current;

Can you please stick to conventional names, i.e. "curr" here?

> +    struct p2m_domain *p2m = p2m_get_hostp2m(c->domain);
> +    struct vcpu_vmid *p_vmid = &c->arch.vmid;
> +    uint16_t old_vmid, new_vmid;

Nit: No real need for a fixed-width type here?

> +    bool need_flush;
> +
> +    BUG_ON(is_idle_vcpu(current));
> +
> +    old_vmid = p_vmid->vmid;
> +    need_flush = vmid_handle_vmenter(p_vmid);
> +    new_vmid = p_vmid->vmid;
> +
> +#ifdef P2M_DEBUG
> +    printk("%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
> +           c, old_vmid, new_vmid, need_flush);
> +#endif
> +
> +    if ( old_vmid != new_vmid )
> +        csr_write(CSR_HGATP, construct_hgatp(p2m, p_vmid->vmid));
> +
> +    if ( unlikely(need_flush) )
> +    {
> +        local_hfence_gvma_all();
> +        flush_tlb_guest_local();
> +    }

Why would the latter be needed here at all? And if it was needed, why
would it depend on whether a VMID roll-over occurred?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 11:57:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 11:57:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234080.1537438 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrxDb-0000wO-Jw; Mon, 16 Feb 2026 11:56:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234080.1537438; Mon, 16 Feb 2026 11: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 1vrxDb-0000wH-Gt; Mon, 16 Feb 2026 11:56:47 +0000
Received: by outflank-mailman (input) for mailman id 1234080;
 Mon, 16 Feb 2026 11: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrxDa-0000wB-DD
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 11:56:46 +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 903e6b83-0b2e-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 12:56:44 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-43638a3330dso2494746f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 03:56:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abc21dsm27827177f8f.20.2026.02.16.03.56.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 03:56:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 903e6b83-0b2e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771243004; x=1771847804; 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=SkBZHCXHDWfa/mwLq/NPNSw/aFhuWKNOPFhHTkERpfs=;
        b=MywWOw7Ygpe+c/huM2iq1NL07kQZhpYjxifSAQM5HY3KcPJXTsW0e4efTeGWtsIZ2j
         0GKFMLXjxsFemolq99Bff2Ju0Sp3VTSLwDl3vaGHXKsCQlt1V+fJ0aJ2IJqmGhj7jsIk
         73+40m1uQtumu0C1+l8wvOkS9sjLJbLneKQcds7EKP+t87Q6ipxfNQsRABGxsRlYOmac
         lK/CwCkVLGvGe2Eb4dvFujRr+uQ/zY0YK/uqrTYUEpI/fgH0MnyElGUKAVYtyWRtpY0z
         ucS0pYvPgCP5w+4K/rsfVUNTlEq5zjzt8naG/cNxKpR2Sm8uqG8CAXFRXnOb6Iim4M3s
         qbDw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771243004; x=1771847804;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=SkBZHCXHDWfa/mwLq/NPNSw/aFhuWKNOPFhHTkERpfs=;
        b=he9J7Bl1Wa2McfRlYWyYXWYtsgiNKfTaR1JG+sFcu6JXSheiN2AUmkeKynsmfghf9P
         tUPIOYTtownZt0QjW9ppskT/XVDF/7Gv7L33TR1QrcdxuKZv4ditUMl/xktOCp78rUzL
         uSBOC1ypibIoF7PjhCriLpAJHiD6K6eGl35xcN2kD5A6BLreH0/qXaIFDnr5xYg0qQq5
         ixWToIZGsYjlv5+NYogLdM5SvTYa41iQ/FUm8CJ6LyMbxDhu4MTTvNxp/jR9pta+a/aT
         nL4USb5qBkWe89ImDB3yxFEkoPFsUFn05eyW0O6PblNNuI5w4nAkir7G/KnEh/VRETzF
         LTLg==
X-Gm-Message-State: AOJu0YxaeugAUqih6mT8mkW+bbyEvJSWHytkhRkZsW5aZwYJ7VXpouxL
	HGUVDDPDdaAXAQppuO/E/UAGVFJNIBBzsbDIS0WzcR7Orie0VN7DkxgybbAMhQlwzD55LNldS8S
	+AOQ=
X-Gm-Gg: AZuq6aKPd7drUSiW6vst5tubuBokh7vG0tCJgwgXMNavq+i93MnTBvOxDymKD+YdtPM
	sc52Zr8dJS6kQBmsfvWW3QoieRHu7eP86BHHpnjVUFnZ9Zfb0p9CYPt+LHL2nJA6pAE5yh9Yx+b
	fRAHcD6bFE2i1RT/fzKxc6afxYO1YLNQCoC6Em70MufBil/QisF9k5E+mgLRXC4gR0TwTbQD0sA
	HctV8tyRcxeIieRsz1O92JrnuFo2clHpKfVBuM7YVKWaj6l9bxz8nKOfQzt0oYrwHMFPvCVVwq7
	FYbKiN610mlaHTbJLe2EnqOmMxrNaT0A9ZMKNIibVcZJCpt33qbfKHkYU3JZfotpn6aE+C6OkFm
	OMWA6K47hRY7emMAOeKB6kXalDhjUEI1VfT/Gwxbt6r0CQxhExCQIcMDCHN4F/lP2nxQ8p/DALr
	Tu9RqWXO+JeN+z8y79HHj0ujCKwNWfdo91at0pYXW1tSIDDb9ClOPGWHAvtplImS0k/DooHWoWh
	+Yu3wMbWmm0QL0=
X-Received: by 2002:a05:6000:1a8a:b0:437:9ced:d04c with SMTP id ffacd0b85a97d-4379db93492mr14371395f8f.35.1771243003634;
        Mon, 16 Feb 2026 03:56:43 -0800 (PST)
Message-ID: <561865f9-cd0f-40c9-86b8-98a3ac070b65@suse.com>
Date: Mon, 16 Feb 2026 12:56:45 +0100
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/MCE: restore CPU vendor reporting to the outside world
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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 records reported used to contain Linux enumerators. We first broke
that connection when purging unused ones, and then again when switching to
the bit mask forms.

Fixes: 408413051144 ("x86/cpu: Drop unused X86_VENDOR_* values")
Fixes: 0cd074144cbb ("x86/cpu: Renumber X86_VENDOR_* to form a bitmap")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -858,6 +858,22 @@ void *x86_mcinfo_reserve(struct mc_info
     return mic_index;
 }
 
+/* Linux values need using when reporting CPU vendors to the outside. */
+static unsigned int xen2linux_vendor(unsigned int vendor)
+{
+    switch ( vendor )
+    {
+    case X86_VENDOR_INTEL:    return 0;
+    case X86_VENDOR_AMD:      return 2;
+    case X86_VENDOR_CENTAUR:  return 5;
+    case X86_VENDOR_HYGON:    return 9;
+    case X86_VENDOR_SHANGHAI: return 10; /* X86_VENDOR_ZHAOXIN */
+    default: break;
+    }
+
+    return 0xff; /* X86_VENDOR_UNKNOWN */
+}
+
 static void x86_mcinfo_apei_save(
     struct mcinfo_global *mc_global, struct mcinfo_bank *mc_bank)
 {
@@ -866,7 +882,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 = xen2linux_vendor(boot_cpu_data.x86_vendor);
     m.cpuid = cpuid_eax(1);
     m.socketid = mc_global->mc_socketid;
     m.apicid = mc_global->mc_apicid;
@@ -968,7 +984,7 @@ static void cf_check __maybe_unused do_m
                         &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_vendor = xen2linux_vendor(c->x86_vendor);
     xcp->mc_model = c->x86_model;
     xcp->mc_step = c->x86_mask;
     xcp->mc_cache_size = c->x86_cache_size;


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 12:38:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 12:38:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234118.1537448 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrxra-0006d2-Rb; Mon, 16 Feb 2026 12:38:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234118.1537448; Mon, 16 Feb 2026 12: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 1vrxra-0006cv-Oa; Mon, 16 Feb 2026 12:38:06 +0000
Received: by outflank-mailman (input) for mailman id 1234118;
 Mon, 16 Feb 2026 12:38: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrxrZ-0006cp-GW
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 12:38:05 +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 55bb07d2-0b34-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 13:38:03 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4836f4cbe0bso22304825e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 04:38:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a337dfsm86388705e9.19.2026.02.16.04.38.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 04:38:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55bb07d2-0b34-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771245482; x=1771850282; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=q88y04WTf4fECkxwMu4XuGo04vLjhcH/ov8RS4yqA3I=;
        b=Xf5B5ryGXmRumWAvBJtZivaqG0FmXtLE0jLIqerCQu7v8BkokRf7cP18OLYXiliRYN
         /w6VmMbKiYyNUnsn+FiuhjAGRIlwnf3Z4ctAgKI0SuaHnQiqA4SQ0gTWCrW1cx5mblgb
         ZXs+GGU10sfpii6W73oDRmeBGxqXO+ASrd43Mf2d4r6VvONrdMGAp/xP5vqOaDg9r5lQ
         0pgZFUcUHL8HFtC8OPAWWCmOJd4hmGNc7GTrKJXpcoSIaUkcesX/b437hAsKHJs8VCbe
         kaSTADMF9avSh2oxjDT5qTmG88DJJ7vB/oBCUUQtIiERv2u7Ujyq3ILjNolcYDGqnKab
         N13g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771245482; x=1771850282;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q88y04WTf4fECkxwMu4XuGo04vLjhcH/ov8RS4yqA3I=;
        b=wT1kUmTTGn1VyhOFWEw0CdUmRXydxzIe6rp4eH8ld01N/nlK0rj4MrDvyN3Ozv7Ug1
         1iFdxPIJSPD9lSaa4deK37bOI1xVkOLsUNTOB7v+7aatKr06uRtLFhfYbRxEsH/NOqTY
         H86OPET/Toy6d2JfHVtb+tyuhZ0at7lsym2xtYsMbz20MlRp11EtpH91Ba4O6cBH1SF3
         VNN6/WDFmIzAGzE3ZmZ5GXpfntg5JcCZS6T1ITjQutY//oTToX8GoPJMgwdUkX4A4pFc
         kg0hyAzjg53kX7s/3Plc0g08Z1IpGNIiJ9l13fDFzCU7OUA6dksOjDmkiEgKWAlEaW2R
         sx2w==
X-Forwarded-Encrypted: i=1; AJvYcCUobcHsWl4OPxQC66aW011wnFTcvD34jCLIutcmdcafVnhdLJ0mdG3hkWsgTJlJhsNj1tkkMZ8eM5I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyHKOGjqDBXL1XPjUibsK7HUfkM0iY+swihex174zxwIsjDPjK3
	HsZDhbgLHhTowX5Uul8GddyMay74qqrHrK09uy+1yjthmizosyXSOJVHe8llXI1LLw==
X-Gm-Gg: AZuq6aK0ZoESi5xwY8Mtp0zAnnO5bNPNXAuYJQSNUN46vBuwt/IYtAPXHhzn/f5kR+V
	xEjP79xTDtotoZu+3HOzjODf83aFmIsoR3ccjzy8ccAJKOVlJoWmmLCDjln3JZAnYxU7sRC1HSk
	Bi8yAnjVGURGQybYrL1LmVinf20DqZJPHX9ibmd+6D+BfOmEiEKYndzbwIejv7RWhSy/OCEHp22
	x83fl0JEtMreNiJAsgrkc7HFaRbYRdN6YKGDbJgQTT4Yioy7XDpgd5ynexlBPhnhChG0m+brXKE
	sz00XRJqCwSF/PYONg87zP72Ri7uQycc+oJ287T6ijK+F04jRFUpay9PUdIJVzV5gn4zHB/YzyP
	+gJlyXW0Sv2G9IQevjWqVffI+ftaIfAWBb504LhsqSTpgE13pgytpbpy6pEzHxQ8qSxPoj+tEUu
	fc5bvCKMuupngESeH/LP0D0OUUT5YTCIZQp3wBinU84t34F2p55FeaMsqvVh7lQdEpI9f5/V2Rm
	Ewzh3SRhQUwj1Y=
X-Received: by 2002:a05:600c:3d87:b0:480:3ad0:93c0 with SMTP id 5b1f17b1804b1-48373a5d6d5mr149809225e9.23.1771245482448;
        Mon, 16 Feb 2026 04:38:02 -0800 (PST)
Message-ID: <c053f6bd-eedc-4dbf-a404-802781dee722@suse.com>
Date: Mon, 16 Feb 2026 13:38:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/6] xen/riscv: implement get_page_from_gfn()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <04eee3ae5e8aadf8c7f0b873ba24ce38220e8fa2.1770821989.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: <04eee3ae5e8aadf8c7f0b873ba24ce38220e8fa2.1770821989.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 17:21, Oleksii Kurochko wrote:
> Provide a RISC-V implementation of get_page_from_gfn(), matching the
> semantics used by other architectures.
> 
> For translated guests, this is implemented as a wrapper around
> p2m_get_page_from_gfn(). For DOMID_XEN, which is not auto-translated,
> provide a 1:1 RAM/MMIO mapping and perform the required validation and
> reference counting.
> 
> The function is implemented out-of-line rather than as a static inline,
> to avoid header ordering issues where struct domain is incomplete when
> asm/p2m.h is included, leading to build failures:
>   In file included from ./arch/riscv/include/asm/domain.h:10,
>                    from ./include/xen/domain.h:16,
>                    from ./include/xen/sched.h:11,
>                    from ./include/xen/event.h:12,
>                    from common/cpu.c:3:
>   ./arch/riscv/include/asm/p2m.h: In function 'get_page_from_gfn':
>   ./arch/riscv/include/asm/p2m.h:50:33: error: invalid use of undefined type 'struct domain'
>      50 | #define p2m_get_hostp2m(d) (&(d)->arch.p2m)
>         |                                 ^~
>   ./arch/riscv/include/asm/p2m.h:180:38: note: in expansion of macro 'p2m_get_hostp2m'
>     180 |         return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>         |                                      ^~~~~~~~~~~~~~~
>   make[2]: *** [Rules.mk:253: common/cpu.o] Error 1
>   make[1]: *** [build.mk:72: common] Error 2
>   make: *** [Makefile:623: xen] Error 2

Surely this can be addressed, when x86 and Arm have the function as inline?

> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Does it make sense to make this function almost fully generic?
> 
> It looks like most of the logic here is architecture-independent and identical
> across architectures, except for the following points:
> 
> 1. ```
>    if ( likely(d != dom_xen) )
>    ```
> 
>    This could be made generic by introducing paging_mode_translate() for ARM
>    and defining it as `(d != dom_xen)` there.
> 
> 2. ```
>    if ( t )
>        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
>    ```
> 
>    Here, only `p2m_mmio_direct_io` appears to be architecture-specific. This
>    could be abstracted via a helper such as `dom_io_p2m_type()` and used here
>    instead.

With P2M stuff I'd be careful. Abstracting the two aspects above may make
future arch-specific changes there more difficult.

> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1557,3 +1557,31 @@ void p2m_handle_vmenter(void)
>          flush_tlb_guest_local();
>      }
>  }
> +
> +struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
> +                                    p2m_type_t *t, p2m_query_t q)
> +{
> +    struct page_info *page;
> +
> +    /*
> +     * Special case for DOMID_XEN as it is the only domain so far that is
> +     * not auto-translated.
> +     */

Once again something taken verbatim from Arm. Yes, dom_xen can in fact appear
here, but it's not a real domain, has no memory truly assigned to it, has no
GFN space, and hence calling it translated (or not) is simply wrong (at best:
misleading). IOW ...

> +    if ( likely(d != dom_xen) )
> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
> +
> +    /* Non-translated guests see 1-1 RAM / MMIO mappings everywhere */

... this comment would also want re-wording.

> +    if ( t )
> +        *t = p2m_invalid;
> +
> +    page = mfn_to_page(_mfn(gfn));
> +
> +    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
> +        return NULL;
> +
> +    if ( t )
> +        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;

If only dom_xen can make it here, why the check for dom_io?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 12:41:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 12:41:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234127.1537459 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrxud-000896-9T; Mon, 16 Feb 2026 12:41:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234127.1537459; Mon, 16 Feb 2026 12:41:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrxud-00088z-4t; Mon, 16 Feb 2026 12:41:15 +0000
Received: by outflank-mailman (input) for mailman id 1234127;
 Mon, 16 Feb 2026 12: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrxub-00088t-6t
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 12:41:13 +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 c64bc786-0b34-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 13:41:11 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48379a42f76so17244045e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 04:41:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4837a5d562esm163465015e9.15.2026.02.16.04.41.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 04:41:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c64bc786-0b34-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771245671; x=1771850471; 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=prqeE9bldgstLAFRdVZUSAfwYzXf6mauC3xewk05DqE=;
        b=LrD+TFTzpUUyk2CDwVzLjjvatIFzFtOwQ9j3kZCim75Y25evaCCD9dMELOH0/Ph1id
         4uMv2CZCOmPM3i+UXQjzwyDjx6OT8KPfOYtH2QdEVBx2wIvQclwcu/AD2KRseNh8xm8H
         JTCx4MCNqumrb5ir54WcwTKILvWge7rh9bYO8AggjECd/ZHkawJvLk0x36S1DJEkF672
         +9b4f9CTtmpBnhVFme0pCJkZ7f4zL8t2Idie2txkdvh2BNr4Tmg6br6Wojx3hgRDO6NQ
         p5FRLTdLFEy66QdurVsxFM6t5vQVkzJ9K8CTNcejvBtokharDBOu3MTYmT09xGipSqO6
         GDCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771245671; x=1771850471;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=prqeE9bldgstLAFRdVZUSAfwYzXf6mauC3xewk05DqE=;
        b=tJMpssociDJRheUdpUn8+KVPR42WaW7X2GKmfyaXWI8/tEe6M5arI87CsJVMI0MXJz
         BTqB5Fs3J4RbSCJV9NUJIjAHHfCjzZM9xWe9Q7xL95K3OhHVipIlHoYd75nn5AV8rxYs
         LBqXsXPWogWIqm/js870NkVou/V+YU3OU9tI3UaFxPDNtzvdGZQCE009+aOqsXQeLatg
         vQAtsDOC7M53qZzfdYbyyuE8qMAes9MgIBByxHT9YBi08syVABTEzsdA04/plWYMrbrX
         BhZOkoxYzAROpyXpUBy2yXKmWANfdiCgapTTF2zlkNWSIGxgiREJi+wvmdtyaBkHYL4M
         /YrA==
X-Forwarded-Encrypted: i=1; AJvYcCVmITQxUmzr7ordRuFrJjuaLjNoDDKGyN0+U56WFPAOf83qiw32/KuhsNulRH8i/7husWzqB7K4/lo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKIxRnQAdQgDdgp7zlf3bYboM4ulWLggIbykoAa04HMS2bApxJ
	hYax/0+IoVpvexvwojg1Xc3cm7ydxILcs47NCe3YyFysspEaeJ44pM/s1SNv4yre3A==
X-Gm-Gg: AZuq6aKXNvjRakfg1qibPotrzZrcLD0C6VSyCMBNdIXYtXi6vAQqn5ot95YRu9G8Vbj
	TuQoYJ436VJ1nl1VJyQGTZBWNTlMlH3k8FTpourSY4QcGbbzjmBJ66tg5TBmpFA2i4dkCf+X9eH
	wwQHMch1MhAe62seO4p46gpbZsjrK51wsSBYogdEWP5453uMLsjaCSL6vF5BDJSPpCdivBEPHRT
	ZFL02qi2c6rCMo12sGrbFa/HorjWZee6fa1kTdbcFv4urnNbnF2YhHCzF6ffn2VNqh+m3ABg8N2
	pdCRqQzeku1PrNJrKxZHfwdrWv9i/Dyub/yM4EKemyWuJ8hE61Q26RCg8Bi1QXIYcvLlvhranQ8
	FGe8/WxcgdZFZ4wi+1iv0UgjMF+2eWgXZSFk6w9crvlhjXjFs5qtzc4hAx8bZej5UYyMqzWl3GR
	MucfDEZDaiqWvaOCWr/kZ4KxfBMcq2tdnOPA6u4zS31A+5Wium/qORhj2ptBdTA+zmeSUvT8Srd
	sto7CuVc1LXYuI=
X-Received: by 2002:a05:600c:8b84:b0:483:4bbc:89ea with SMTP id 5b1f17b1804b1-48379c42db1mr131645655e9.37.1771245671233;
        Mon, 16 Feb 2026 04:41:11 -0800 (PST)
Message-ID: <89cf7c4d-4507-43a8-843e-e9fbfa68519c@suse.com>
Date: Mon, 16 Feb 2026 13:41:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/6] xen/riscv: implement get_page_from_gfn()
From: Jan Beulich <jbeulich@suse.com>
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <04eee3ae5e8aadf8c7f0b873ba24ce38220e8fa2.1770821989.git.oleksii.kurochko@gmail.com>
 <c053f6bd-eedc-4dbf-a404-802781dee722@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: <c053f6bd-eedc-4dbf-a404-802781dee722@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.02.2026 13:38, Jan Beulich wrote:
> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>> Provide a RISC-V implementation of get_page_from_gfn(), matching the
>> semantics used by other architectures.
>>
>> For translated guests, this is implemented as a wrapper around
>> p2m_get_page_from_gfn(). For DOMID_XEN, which is not auto-translated,
>> provide a 1:1 RAM/MMIO mapping and perform the required validation and
>> reference counting.
>>
>> The function is implemented out-of-line rather than as a static inline,
>> to avoid header ordering issues where struct domain is incomplete when
>> asm/p2m.h is included, leading to build failures:
>>   In file included from ./arch/riscv/include/asm/domain.h:10,
>>                    from ./include/xen/domain.h:16,
>>                    from ./include/xen/sched.h:11,
>>                    from ./include/xen/event.h:12,
>>                    from common/cpu.c:3:
>>   ./arch/riscv/include/asm/p2m.h: In function 'get_page_from_gfn':
>>   ./arch/riscv/include/asm/p2m.h:50:33: error: invalid use of undefined type 'struct domain'
>>      50 | #define p2m_get_hostp2m(d) (&(d)->arch.p2m)
>>         |                                 ^~
>>   ./arch/riscv/include/asm/p2m.h:180:38: note: in expansion of macro 'p2m_get_hostp2m'
>>     180 |         return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>>         |                                      ^~~~~~~~~~~~~~~
>>   make[2]: *** [Rules.mk:253: common/cpu.o] Error 1
>>   make[1]: *** [build.mk:72: common] Error 2
>>   make: *** [Makefile:623: xen] Error 2
> 
> Surely this can be addressed, when x86 and Arm have the function as inline?
> 
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Does it make sense to make this function almost fully generic?
>>
>> It looks like most of the logic here is architecture-independent and identical
>> across architectures, except for the following points:
>>
>> 1. ```
>>    if ( likely(d != dom_xen) )
>>    ```
>>
>>    This could be made generic by introducing paging_mode_translate() for ARM
>>    and defining it as `(d != dom_xen)` there.
>>
>> 2. ```
>>    if ( t )
>>        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
>>    ```
>>
>>    Here, only `p2m_mmio_direct_io` appears to be architecture-specific. This
>>    could be abstracted via a helper such as `dom_io_p2m_type()` and used here
>>    instead.
> 
> With P2M stuff I'd be careful. Abstracting the two aspects above may make
> future arch-specific changes there more difficult.
> 
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1557,3 +1557,31 @@ void p2m_handle_vmenter(void)
>>          flush_tlb_guest_local();
>>      }
>>  }
>> +
>> +struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>> +                                    p2m_type_t *t, p2m_query_t q)
>> +{
>> +    struct page_info *page;
>> +
>> +    /*
>> +     * Special case for DOMID_XEN as it is the only domain so far that is
>> +     * not auto-translated.
>> +     */
> 
> Once again something taken verbatim from Arm.

Actually it's a mix, up to ...

> Yes, dom_xen can in fact appear
> here, but it's not a real domain, has no memory truly assigned to it, has no
> GFN space, and hence calling it translated (or not) is simply wrong (at best:
> misleading). IOW ...
> 
>> +    if ( likely(d != dom_xen) )
>> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);

... here it's Arm code, but what follows is x86 code. Why did you create such
a mix?

Jan

>> +    /* Non-translated guests see 1-1 RAM / MMIO mappings everywhere */
> 
> ... this comment would also want re-wording.
> 
>> +    if ( t )
>> +        *t = p2m_invalid;
>> +
>> +    page = mfn_to_page(_mfn(gfn));
>> +
>> +    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
>> +        return NULL;
>> +
>> +    if ( t )
>> +        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
> 
> If only dom_xen can make it here, why the check for dom_io?
> 
> Jan



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 13:10:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 13:10:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234144.1537468 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vryMe-0003fd-Aq; Mon, 16 Feb 2026 13:10:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234144.1537468; Mon, 16 Feb 2026 13:10: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 1vryMe-0003fW-80; Mon, 16 Feb 2026 13:10:12 +0000
Received: by outflank-mailman (input) for mailman id 1234144;
 Mon, 16 Feb 2026 13:10: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=IXXV=AU=bounce.vates.tech=bounce-md_30504962.6993172f.v1-0415e6e0ca8f4fd48707d1ca93f3384e@srs-se1.protection.inumbo.net>)
 id 1vryMd-0003fQ-70
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 13:10:11 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d1781f68-0b38-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 14:10:09 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fF36759Y3zPm5Z6C
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 13:10:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 0415e6e0ca8f4fd48707d1ca93f3384e; Mon, 16 Feb 2026 13:10: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: d1781f68-0b38-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771247407; x=1771517407;
	bh=ebWpv+99PC6pmg8no6MymYF+5pC5DvJcuRWeQg0zdUM=;
	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=vQaSIZTMosSa3HeUhFViy+vwKmlMn1SEwRIRnLmUdztUHE2HF3q21h2G5uvWZ+rva
	 hQp2E/fOjILrAqG/BQFPczYHRtnx7+D++FlcHpu4S2LjN8eCCnRQSTEFvN0c9QIY+S
	 233KSij9SaMooo44tHSxhiM2mGnEqwCWic7avLcqTlT/HIVk/VFnzE+4Xoe4A6fwzl
	 s+tOVzq5G9+nMXCgmavbDnMVjQHcX/Zq/5OoaoTltr1CkvHdsnLfXlpvSmO4XkwLwz
	 gm15VGcs0TXhvADAAsJgJs0Y3VI5lPl+2DCjMpnEnxIY0cPt2ynPR9rdGSP+JZMJsn
	 AkQJw1KF9HZPg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771247407; x=1771507907; i=teddy.astie@vates.tech;
	bh=ebWpv+99PC6pmg8no6MymYF+5pC5DvJcuRWeQg0zdUM=;
	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=R6aWgOw7CL7MlgILEFCCXq3b912z5kqqFnc9T8VGVK/7ALQBxpfp4amlQMt7abkxo
	 4LMvE3VReVnssUijq0Ng/C1CGuTLdB7xER59JedQJQvEjk0FzlItmK+2dmg4lvN1QU
	 1SvO4gvwRc5ajXFpyKUAcORf7dTLuzCyqkIzpvNjYBn9zKqDBDIA0sE9r655kwykct
	 e8FNQF2OG/TmzH5yttVU+gm4OXFMC60gur96erjhfL4Op9IXoyNuFVTk2BNE/IgGfZ
	 /sER9iGn34kw3EgRoiqAtVZIS2Z+ag+Qhnwgf7SZCJY0ZfvbIOF9urUd4OGmNTj+QG
	 O+ByO20pYsn6g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3=202/2]=20x86/svm:=20Use=20the=20virtual=20NMI=20when=20available?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771247406302
Message-Id: <87801307-0c7e-4d34-9f14-645c1cd73426@vates.tech>
To: "Andrew Cooper" <andrew.cooper3@citrix.com>, "Abdelkareem Abdelsaamad" <abdelkareem.abdelsaamad@citrix.com>, xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com, "Jan Beulich" <jbeulich@suse.com>, "Jason Andryuk" <jason.andryuk@amd.com>
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com> <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com> <c0c2e0cd-173a-496f-a643-7d19c9418a2a@vates.tech> <ea21a66e-a4ab-41f9-92af-0111292ecb3a@citrix.com> <626c3f3b-9176-493c-9d96-e2a5344e7100@vates.tech> <518e7576-a88d-4172-bf93-f6a368c173d0@citrix.com>
In-Reply-To: <518e7576-a88d-4172-bf93-f6a368c173d0@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.0415e6e0ca8f4fd48707d1ca93f3384e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 13:10:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 16/02/2026 =C3=A0 12:47, Andrew Cooper a =C3=A9crit=C2=A0:
> On 16/02/2026 10:46 am, Teddy Astie wrote:
>> Le 16/02/2026 =C3=A0 11:16, Andrew Cooper a =C3=A9crit=C2=A0:
>>> On 16/02/2026 10:07 am, Teddy Astie wrote:
>>>> Le 15/02/2026 =C3=A0 19:24, Abdelkareem Abdelsaamad a =C3=A9crit=C2=A0=
:
>>>>> With the Virtual NMI (vNMI), the pending NMI is simply stuffed into t=
he VMCB
>>>>> and handed off to the hardware. There is no need for the artificial t=
racking
>>>>> of the NMI handling completion with the IRET instruction interception=
.
>>>>>
>>>>> Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Ha=
rdware
>>>>> accelerated feature when the AMD platform support the vNMI.
>>>>>
>>>>> Adjust the svm_get_interrupt_shadow to check if the vNMI is currently=
 blocked
>>>>> by servicing another in-progress NMI.
>>>>>
>>>>> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citri=
x.com>
>>>>> ---
>>>>>     xen/arch/x86/hvm/svm/intr.c | 9 +++++++++
>>>>>     xen/arch/x86/hvm/svm/svm.c  | 5 ++++-
>>>>>     xen/arch/x86/hvm/svm/vmcb.c | 2 ++
>>>>>     3 files changed, 15 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.=
c
>>>>> index 6453a46b85..3e8959f155 100644
>>>>> --- a/xen/arch/x86/hvm/svm/intr.c
>>>>> +++ b/xen/arch/x86/hvm/svm/intr.c
>>>>> @@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
>>>>>         u32 general1_intercepts =3D vmcb_get_general1_intercepts(vmcb=
);
>>>>>         intinfo_t event;
>>>>>     
>>>>> +    if ( vmcb->_vintr.fields.vnmi_enable )
>>>>> +    {
>>>>> +       if ( !vmcb->_vintr.fields.vnmi_pending &&
>>>>> +            !vmcb->_vintr.fields.vnmi_blocking )
>>>>> +           vmcb->_vintr.fields.vnmi_pending =3D 1;
>>>>> +
>>>>> +        return;
>>>>> +    }
>>>>> +
>>>> I think you need to update the clearbit for tpr (related to vintr) for
>>>> the hardware to know that you modified the vnmi_pending bit.
>>> What makes you think this?=C2=A0 The APM states otherwise.
>>>
>> The APM state doesn't appears to state regarding this;
> 
> The APM does state what is part of the TPR cleanbit, and vNMI is not
> amongst these.
> 

APM doesn't explicitly state that; though KVM assumes that it is and 
sets the cleanbits [1]. I think we want to have some clarifications from 
AMD on what's actually required here.

[1] 
https://github.com/torvalds/linux/blob/0f2acd3148e0ef42bdacbd477f90e8533f96=
b2ac/arch/x86/kvm/svm/svm.c#L3707-L3708

>>   it's neither a
>> part of the "VMCB Clear Field" layout part nor the the "explicitely not
>> cached" list.
>>
>> So I assume that it may be covered by the TPR clean-bit (which is the
>> same part of vmcb); as it's actually unclear if hardware wants it or not=
.
> 
> This is very different to your original feedback though.
> 
> It's fine for review feedback to be of the form "have you investigated
> the clean bits?", but if you're not sure, you must not phrase your
> feedback as an instruction to check the cleanbit.
> 

Sorry, I may have been a bit too fast on that.

> ~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 Mon Feb 16 13:44:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 13:44:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234160.1537478 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrytO-0007hy-R3; Mon, 16 Feb 2026 13:44:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234160.1537478; Mon, 16 Feb 2026 13:44:02 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrytO-0007hr-O7; Mon, 16 Feb 2026 13:44:02 +0000
Received: by outflank-mailman (input) for mailman id 1234160;
 Mon, 16 Feb 2026 13:44: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=wTUb=AU=bounce.vates.tech=bounce-md_30504962.69931f1d.v1-dca80abff0c64da19efeaa21a1c9b379@srs-se1.protection.inumbo.net>)
 id 1vrytN-0007hf-69
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 13:44:01 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 8b388506-0b3d-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 14:43:59 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fF3s931BnzPm0PXq
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 13:43:57 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 dca80abff0c64da19efeaa21a1c9b379; Mon, 16 Feb 2026 13:43: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: 8b388506-0b3d-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771249437; x=1771519437;
	bh=prpBvrYoPfoemUVfs3/BMcBIrBUZ71dlGXNF25SbH5I=;
	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=gycgvRLNqHG4dN5CpiEl4iAKMBqJsvs2GpOzKjUyG+YkCVGvplhpLUJTsmTR+HWp8
	 A7nk4UYOfiAx2wTYfOfTAaVJAlARxBBmou5LKREDV4VymT/ldpVcoYtpCKci5ZNEc5
	 KSEFskuVsjdpqqPzVNhXKUuAjKaV4BmPZgci4yE0rEvqS2QbWNiniVTNzWpYUakR6A
	 GypHn7MWGD5Mcjj/mHWy10XZXZ0wUkM+yPG/mLXdPxFRNc1309w8cSY89o5dlq75vx
	 0dq7sOgnXpvXMveCvNolyRmnzTgtXzEbv4skvy1x4hO3jsXuym3JTV6d6bhoF2slB1
	 Jyd2QNb4fZK2A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771249437; x=1771509937; i=julian.vetter@vates.tech;
	bh=prpBvrYoPfoemUVfs3/BMcBIrBUZ71dlGXNF25SbH5I=;
	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=lonCE8CtF0qoJnimvdGDV6amCnx65em5YnPoPbkg2+ud60LyMiIKZYBW6GZl/Fk0V
	 xoeZ8Tn92tGnx9/fDdw4hbYDxKTV97xnY/kRaD6Zr5HK7gF1zw3YxAoqy25L9Xmtpe
	 0YVKv2hoICsIFOzDfimbtTb0KzLnA2wwXMVKaHnP7EzGwAvgCqtlu+iFVX/QgcUx4k
	 H3Nq3Y59BGxS/qiIQsslGnw6uTQmNFgrIEj+v4V/cv7IBSeos+Flw/0Nf0WKhUlPks
	 EEGpDo+9SinOtjrMgYzDSKQhZVWX5IUP0w52Zd6NlpZI9P8OP5E8hX3ILo1uS/G7j7
	 F9THbbL65o+Eg==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=201/3]=20x86/ioreq:=20Add=20missing=20put=5Fpage=5Falloc=5Fref(page)?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771249436235
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260216134334.3510048-2-julian.vetter@vates.tech>
In-Reply-To: <20260216134334.3510048-1-julian.vetter@vates.tech>
References: <20260216134334.3510048-1-julian.vetter@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.dca80abff0c64da19efeaa21a1c9b379?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 13:43:57 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

The page was allocated with MEMF_no_refcount. The MEMF_no_refcount flag
means the page is allocated without a regular reference, but it still
has the allocation reference. If get_page_and_type() fails, we still
need to release the allocation reference. Otherwise the page would leak.
domain_crash() doesn't free individual pages; it just marks the domain
for destruction. The domain teardown will eventually free domain heap
pages, but only those it can find. A page with a dangling alloc ref
would prevent the page from being fully freed during domain cleanup.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v2:
- New patch
---
 xen/common/ioreq.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..5d722c8d4e 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -287,6 +287,7 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
          * The domain can't possibly know about this page yet, so failure
          * here is a clear indication of something fishy going on.
          */
+        put_page_alloc_ref(page);
         domain_crash(s->emulator);
         return -ENODATA;
     }
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 13:44:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 13:44:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234162.1537494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrytQ-0007yF-GO; Mon, 16 Feb 2026 13:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234162.1537494; Mon, 16 Feb 2026 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 1vrytQ-0007xF-8u; Mon, 16 Feb 2026 13:44:04 +0000
Received: by outflank-mailman (input) for mailman id 1234162;
 Mon, 16 Feb 2026 13:44: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=AfU3=AU=bounce.vates.tech=bounce-md_30504962.69931f1f.v1-b9b5c5ead9004716bf05dfc35d46d2e5@srs-se1.protection.inumbo.net>)
 id 1vrytP-0007hl-4B
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 13:44:03 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8c74fc17-0b3d-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 14:44:01 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fF3sC4xYlzPm0PYM
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 13:43:59 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b9b5c5ead9004716bf05dfc35d46d2e5; Mon, 16 Feb 2026 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: 8c74fc17-0b3d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771249439; x=1771519439;
	bh=8ylKuGd2BMY1tYigbaDonsjt+0UlJARYpSIysh5XnsQ=;
	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=g3t1tEAUX/Hwr7m69E0W6oiHtXKiEPgfO9J9r4Z5VzSohA553lrdkgklB4mX72s2P
	 3gZtkRT6aOUSXkfDOrcF1sjWow0otGnD9CGDaB4v5hnUvP2ZJ7QsP9JuDglXBE89u8
	 0JqBL3PADqwtBprHaEsbmVZ9k1+F3K1f7ATksZtekspbs2YtqFdGZDRZgizTxDRf3e
	 5ym27DIri9lwjxEOJiThMdrgbW0Jh/3wj/JXhckr++8YGZ0LLIJI+Q9zTjYuZTF8h1
	 C/e6XAeiDSF5I7wQVynccrtvlQ+D90eqaYFS92Em4GUV8PWuN1HBNfPn6nfYIM3JqZ
	 ECH7h836za+xA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771249439; x=1771509939; i=julian.vetter@vates.tech;
	bh=8ylKuGd2BMY1tYigbaDonsjt+0UlJARYpSIysh5XnsQ=;
	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=zFWanLLTSQ9GDGybif5GeUk2sTb9nGOi87qcVSLNwYp9WwWTRK3X7o5zmh4GM2T5L
	 lu4SgSRayHsFwuXr9hzLwB2fUQBZK1C5Bje/LVEIQYmsUO+W+IzkfhfmCBqaihsv5A
	 aTfiNTUCg2jDXeRAKb2/5P0gG6JdEoZ6wunpR+A7U4wVDVgO5DgFh7aHUY/hoPB4SC
	 CND4AJTSmBivv/hiChQaWKv+O1TfpX+yDDWlh81YnYqZycPGkYlLSz7a4yX8ee9cev
	 Qhouf0t8THvQfQxNpFWWeGF8Oijh3iZ4A5l8lpKN+Gf8diyztHMhO39URbj3A2JSp/
	 3BvIwKAqW46Ng==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=202/3]=20x86/ioreq:=20Prepare=20spacing=20for=20upcoming=20patch?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771249437847
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260216134334.3510048-3-julian.vetter@vates.tech>
In-Reply-To: <20260216134334.3510048-1-julian.vetter@vates.tech>
References: <20260216134334.3510048-1-julian.vetter@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.b9b5c5ead9004716bf05dfc35d46d2e5?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 13:43:59 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch just changes indentation, to make the next patch easier to
review.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v2
- New patch
---
 xen/arch/x86/hvm/ioreq.c | 86 ++++++++++++++++++++++------------------
 1 file changed, 47 insertions(+), 39 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index a5fa97e149..5ebc48dbd4 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -125,14 +125,16 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return;
+    {
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return;
 
-    destroy_ring_for_helper(&iorp->va, iorp->page);
-    iorp->page = NULL;
+        destroy_ring_for_helper(&iorp->va, iorp->page);
+        iorp->page = NULL;
 
-    hvm_free_ioreq_gfn(s, iorp->gfn);
-    iorp->gfn = INVALID_GFN;
+        hvm_free_ioreq_gfn(s, iorp->gfn);
+        iorp->gfn = INVALID_GFN;
+    }
 }
 
 static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
@@ -141,34 +143,36 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     int rc;
 
-    if ( iorp->page )
     {
-        /*
-         * If a page has already been allocated (which will happen on
-         * demand if ioreq_server_get_frame() is called), then
-         * mapping a guest frame is not permitted.
-         */
-        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-            return -EPERM;
-
-        return 0;
-    }
+        if ( iorp->page )
+        {
+            /*
+             * If a page has already been allocated (which will happen on
+             * demand if ioreq_server_get_frame() is called), then
+             * mapping a guest frame is not permitted.
+             */
+            if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+                return -EPERM;
+
+            return 0;
+        }
 
-    if ( d->is_dying )
-        return -EINVAL;
+        if ( d->is_dying )
+            return -EINVAL;
 
-    iorp->gfn = hvm_alloc_ioreq_gfn(s);
+        iorp->gfn = hvm_alloc_ioreq_gfn(s);
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return -ENOMEM;
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return -ENOMEM;
 
-    rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
-                                 &iorp->va);
+        rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
+                                     &iorp->va);
 
-    if ( rc )
-        hvm_unmap_ioreq_gfn(s, buf);
+        if ( rc )
+            hvm_unmap_ioreq_gfn(s, buf);
 
-    return rc;
+        return rc;
+    }
 }
 
 static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
@@ -176,12 +180,14 @@ static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
     struct domain *d = s->target;
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return;
+    {
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return;
 
-    if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
-        domain_crash(d);
-    clear_page(iorp->va);
+        if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
+            domain_crash(d);
+        clear_page(iorp->va);
+    }
 }
 
 static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
@@ -190,16 +196,18 @@ static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     int rc;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return 0;
+    {
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return 0;
 
-    clear_page(iorp->va);
+        clear_page(iorp->va);
 
-    rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
-    if ( rc == 0 )
-        paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
+        rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
+        if ( rc == 0 )
+            paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
 
-    return rc;
+        return rc;
+    }
 }
 
 int arch_ioreq_server_map_pages(struct ioreq_server *s)
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 13:44:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 13:44:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234163.1537508 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrytR-0008Mj-KM; Mon, 16 Feb 2026 13:44:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234163.1537508; Mon, 16 Feb 2026 13:44:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrytR-0008Mc-HI; Mon, 16 Feb 2026 13:44:05 +0000
Received: by outflank-mailman (input) for mailman id 1234163;
 Mon, 16 Feb 2026 13:44: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=+0bf=AU=bounce.vates.tech=bounce-md_30504962.69931f1f.v1-d76f599d107e4e6ba4639d252a67c5d0@srs-se1.protection.inumbo.net>)
 id 1vrytQ-0007hl-4E
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 13:44:04 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8cbf39b9-0b3d-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 14:44:01 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fF3sC5nCbzPm0PZr
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 13:43:59 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d76f599d107e4e6ba4639d252a67c5d0; Mon, 16 Feb 2026 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: 8cbf39b9-0b3d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771249439; x=1771519439;
	bh=F1SS3wigxhXzgwX235EXJtDoch2rIlhw5Qmf1Ym2oJI=;
	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=hrwo6tnjMsuP5FJAbw7H9IKcfR04O4r/m1VC9UPyULUm4kcvgPqhG5A3nd52LL8Dm
	 kgzaR0MqqevAnFbZwoyI7uXqKynbQV5xaABLZB4IAcgtvwq7yjT+x7hmhY8dujlpam
	 bpk2e+Ujh7t4fsydpmC6mfPYwAPLBxLfdNNfqekpy/FMn6tNigBcEInGzFC8nO4INS
	 ZcOIiyabo1MhrvYKYTkTMD4+xj/EzI/Lee7xgq6vqXyGJVETftDgV7kKEZO42yFa5T
	 1mNufl1Lgvv2KfnO8VMFdGr7y9AqtUYoz6G6Z7bakn1AoqLQKcpmKqHkzRDwUygzRl
	 vlOQYmK+jRlYg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771249439; x=1771509939; i=julian.vetter@vates.tech;
	bh=F1SS3wigxhXzgwX235EXJtDoch2rIlhw5Qmf1Ym2oJI=;
	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=ruFgZSOnc9hZvE0PtMTt4nvSkdlNcbHeq8K7aVoAosNu4IT6Bh9wfhqZw3qs3YJJ8
	 XAuad5PYxdFcSLY5MJa1ggtlTjPz/9NgT2A71pvW7BV+QH1pt4HPHLtXPCCbRAKXrk
	 ms3tPOw7rJQsOFdtMt+LNPNC3WKHSZia0u+sR6rSEa0W3DXqi8fHe20JJEnfCJEW18
	 CEP+SU21HMuayKRN42rg+rni7PO65AMPQ/5FbvieW/yJT1H+MXo50QzIFwIVeZSgTC
	 W+hyHo8OyucBTrKBSuHL3OTMLMWkv78dDfz1TnclECxMayV8jgM+5CZ1gT8jjgvIaO
	 RGKFJnS82QtQQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=203/3]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771249438581
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260216134334.3510048-4-julian.vetter@vates.tech>
In-Reply-To: <20260216134334.3510048-1-julian.vetter@vates.tech>
References: <20260216134334.3510048-1-julian.vetter@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.d76f599d107e4e6ba4639d252a67c5d0?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 13:43:59 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A single shared ioreq page provides PAGE_SIZE/sizeof(ioreq_t) = 128
slots, limiting HVM guests to 128 vCPUs. To support more vCPUs, extend
the ioreq server to use xvzalloc_array() for allocating a contiguous
virtual array of ioreq_t slots sized to d->max_vcpus, backed by
potentially non-contiguous physical pages.

For the GFN-mapped path (x86), individual pages are mapped via
prepare_ring_for_helper() and then combined into a single contiguous
VA using vmap(). The number of ioreq pages is computed at runtime
via nr_ioreq_pages(d) = DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE),
so small VMs only allocate one page. All existing single-page paths
(bufioreq, legacy clients) remain unchanged.

Mark the now-unused shared_iopage_t in the public header as deprecated.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v2
- Use xvalloc_array to allocate the contigeous region
- Removed unncessary includes
- nr_ioreq_pages is now based on d->max_vcpus and not the HVM_MAX_VCPUS
  define
- Reduced indentation by 1 level in hvm_alloc_ioreq_gfns
- Added blank lines between declarations and statements
- Added comment why we can just return in hvm_add_ioreq_gfn without
  rollback
---
 xen/arch/x86/hvm/ioreq.c       | 198 ++++++++++++++++++++++++++++++++-
 xen/common/ioreq.c             |  95 ++++++++++++----
 xen/include/public/hvm/ioreq.h |   5 +
 xen/include/xen/ioreq.h        |  13 ++-
 4 files changed, 285 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 5ebc48dbd4..a77f00dd96 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -6,6 +6,7 @@
  */
 
 #include <xen/domain.h>
+#include <xen/domain_page.h>
 #include <xen/event.h>
 #include <xen/init.h>
 #include <xen/ioreq.h>
@@ -15,6 +16,7 @@
 #include <xen/sched.h>
 #include <xen/softirq.h>
 #include <xen/trace.h>
+#include <xen/vmap.h>
 #include <xen/vpci.h>
 
 #include <asm/hvm/emulate.h>
@@ -89,6 +91,39 @@ static gfn_t hvm_alloc_ioreq_gfn(struct ioreq_server *s)
     return hvm_alloc_legacy_ioreq_gfn(s);
 }
 
+static gfn_t hvm_alloc_ioreq_gfns(struct ioreq_server *s,
+                                  unsigned int nr_pages)
+{
+    struct domain *d = s->target;
+    unsigned long mask;
+    unsigned int i, run;
+
+    if ( nr_pages == 1 )
+        return hvm_alloc_ioreq_gfn(s);
+
+    /* Find nr_pages consecutive set bits */
+    mask = d->arch.hvm.ioreq_gfn.mask;
+
+    for ( i = 0, run = 0; i < BITS_PER_LONG; i++ )
+    {
+        if ( !test_bit(i, &mask) )
+            run = 0;
+        else if ( ++run == nr_pages )
+        {
+            /* Found a run - clear all bits and return base GFN */
+            unsigned int start = i - nr_pages + 1;
+            unsigned int j;
+
+            for ( j = start; j <= i; j++ )
+                clear_bit(j, &d->arch.hvm.ioreq_gfn.mask);
+
+            return _gfn(d->arch.hvm.ioreq_gfn.base + start);
+        }
+    }
+
+    return INVALID_GFN;
+}
+
 static bool hvm_free_legacy_ioreq_gfn(struct ioreq_server *s,
                                       gfn_t gfn)
 {
@@ -121,11 +156,23 @@ static void hvm_free_ioreq_gfn(struct ioreq_server *s, gfn_t gfn)
     }
 }
 
+static void hvm_free_ioreq_gfns(struct ioreq_server *s, gfn_t gfn,
+                                unsigned int nr_pages)
+{
+    unsigned int i;
+
+    for ( i = 0; i < nr_pages; i++ )
+        hvm_free_ioreq_gfn(s, gfn_add(gfn, i));
+}
+
 static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( gfn_eq(iorp->gfn, INVALID_GFN) )
             return;
 
@@ -134,16 +181,41 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 
         hvm_free_ioreq_gfn(s, iorp->gfn);
         iorp->gfn = INVALID_GFN;
+        return;
+    }
+
+    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+        return;
+
+    nr_pages = nr_ioreq_pages(s->target);
+
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct page_info *pg = vmap_to_page((char *)s->ioreq +
+                                            i * PAGE_SIZE);
+
+        put_page_and_type(pg);
+        put_page(pg);
     }
+    vunmap(s->ioreq);
+    s->ioreq = NULL;
+
+    hvm_free_ioreq_gfns(s, s->ioreq_gfn, nr_pages);
+    s->ioreq_gfn = INVALID_GFN;
 }
 
 static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages;
+    gfn_t base_gfn;
+    mfn_t *mfns;
     int rc;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( iorp->page )
         {
             /*
@@ -173,30 +245,122 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 
         return rc;
     }
+
+    /* ioreq: multi-page with contiguous VA */
+    if ( s->ioreq )
+    {
+        if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+            return -EPERM;
+        return 0;
+    }
+
+    if ( d->is_dying )
+        return -EINVAL;
+
+    nr_pages = nr_ioreq_pages(d);
+    base_gfn = hvm_alloc_ioreq_gfns(s, nr_pages);
+
+    if ( gfn_eq(base_gfn, INVALID_GFN) )
+        return -ENOMEM;
+
+    mfns = xmalloc_array(mfn_t, nr_pages);
+    if ( !mfns )
+    {
+        hvm_free_ioreq_gfns(s, base_gfn, nr_pages);
+        return -ENOMEM;
+    }
+
+    /*
+     * Use prepare_ring_for_helper() to obtain page and type references
+     * for each GFN. Discard its per-page VA immediately, as all pages
+     * will be combined into a single contiguous VA via vmap() below.
+     */
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct page_info *pg;
+        void *va;
+
+        rc = prepare_ring_for_helper(d, gfn_x(base_gfn) + i, &pg, &va);
+        if ( rc )
+            goto fail;
+
+        /* Discard per-page VA */
+        unmap_domain_page_global(va);
+        mfns[i] = page_to_mfn(pg);
+    }
+
+    /* Map all mfns as single contiguous VA */
+    s->ioreq = vmap(mfns, nr_pages);
+    if ( !s->ioreq )
+    {
+        rc = -ENOMEM;
+        goto fail;
+    }
+
+    s->ioreq_gfn = base_gfn;
+    xfree(mfns);
+
+    return 0;
+
+ fail:
+    while ( i-- > 0 )
+    {
+        struct page_info *pg = mfn_to_page(mfns[i]);
+
+        put_page_and_type(pg);
+        put_page(pg);
+    }
+    hvm_free_ioreq_gfns(s, base_gfn, nr_pages);
+    xfree(mfns);
+
+    return rc;
 }
 
 static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( gfn_eq(iorp->gfn, INVALID_GFN) )
             return;
 
         if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
             domain_crash(d);
         clear_page(iorp->va);
+        return;
+    }
+
+    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+        return;
+
+    nr_pages = nr_ioreq_pages(d);
+
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        gfn_t gfn = gfn_add(s->ioreq_gfn, i);
+        struct page_info *pg = vmap_to_page((char *)s->ioreq +
+                                            i * PAGE_SIZE);
+
+        if ( p2m_remove_page(d, gfn, page_to_mfn(pg), 0) )
+            domain_crash(d);
     }
+    memset(s->ioreq, 0, nr_pages * PAGE_SIZE);
 }
 
 static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages;
     int rc;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( gfn_eq(iorp->gfn, INVALID_GFN) )
             return 0;
 
@@ -208,6 +372,32 @@ static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
 
         return rc;
     }
+
+    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+        return 0;
+
+    nr_pages = nr_ioreq_pages(d);
+    memset(s->ioreq, 0, nr_pages * PAGE_SIZE);
+
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        gfn_t gfn = gfn_add(s->ioreq_gfn, i);
+        struct page_info *pg = vmap_to_page((char *)s->ioreq +
+                                            i * PAGE_SIZE);
+
+        rc = p2m_add_page(d, gfn, page_to_mfn(pg), 0, p2m_ram_rw);
+        if ( rc )
+            /*
+             * No rollback of previously added pages: The caller
+             * (arch_ioreq_server_disable) has no error handling path,
+             * and partial failure here will be cleaned up when the
+             * ioreq server is eventually destroyed.
+             */
+            return rc;
+
+        paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn)));
+    }
+    return 0;
 }
 
 int arch_ioreq_server_map_pages(struct ioreq_server *s)
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index 5d722c8d4e..0ad86d3af3 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -26,6 +26,7 @@
 #include <xen/paging.h>
 #include <xen/sched.h>
 #include <xen/trace.h>
+#include <xen/xvmalloc.h>
 
 #include <asm/guest_atomics.h>
 #include <asm/ioreq.h>
@@ -95,12 +96,10 @@ static struct ioreq_server *get_ioreq_server(const struct domain *d,
 
 static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
 {
-    shared_iopage_t *p = s->ioreq.va;
-
     ASSERT((v == current) || !vcpu_runnable(v));
-    ASSERT(p != NULL);
+    ASSERT(s->ioreq != NULL);
 
-    return &p->vcpu_ioreq[v->vcpu_id];
+    return &s->ioreq[v->vcpu_id];
 }
 
 /*
@@ -260,9 +259,32 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
 
 static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    struct ioreq_page *iorp;
     struct page_info *page;
 
+    if ( !buf )
+    {
+        if ( s->ioreq )
+        {
+            /*
+             * If a guest frame has already been mapped (which may happen
+             * on demand if ioreq_server_get_info() is called), then
+             * allocating a page is not permitted.
+             */
+            if ( !gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+                return -EPERM;
+
+            return 0;
+        }
+
+        s->ioreq = xvzalloc_array(ioreq_t, s->target->max_vcpus);
+
+        return s->ioreq ? 0 : -ENOMEM;
+    }
+
+    /* bufioreq: single page allocation */
+    iorp = &s->bufioreq;
+
     if ( iorp->page )
     {
         /*
@@ -309,8 +331,17 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 
 static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-    struct page_info *page = iorp->page;
+    struct ioreq_page *iorp;
+    struct page_info *page;
+
+    if ( !buf )
+    {
+        XVFREE(s->ioreq);
+        return;
+    }
+
+    iorp = &s->bufioreq;
+    page = iorp->page;
 
     if ( !page )
         return;
@@ -334,11 +365,29 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
     {
-        if ( (s->ioreq.page == page) || (s->bufioreq.page == page) )
+        if ( s->bufioreq.page == page )
         {
             found = true;
             break;
         }
+
+        if ( s->ioreq )
+        {
+            unsigned int i;
+
+            for ( i = 0; i < nr_ioreq_pages(d); i++ )
+            {
+                if ( vmap_to_page((char *)s->ioreq +
+                                  i * PAGE_SIZE) == page )
+                {
+                    found = true;
+                    break;
+                }
+            }
+
+            if ( found )
+                break;
+        }
     }
 
     rspin_unlock(&d->ioreq_server.lock);
@@ -351,7 +400,7 @@ static void ioreq_server_update_evtchn(struct ioreq_server *s,
 {
     ASSERT(spin_is_locked(&s->lock));
 
-    if ( s->ioreq.va != NULL )
+    if ( s->ioreq != NULL )
     {
         ioreq_t *p = get_ioreq(s, sv->vcpu);
 
@@ -591,7 +640,7 @@ static int ioreq_server_init(struct ioreq_server *s,
     INIT_LIST_HEAD(&s->ioreq_vcpu_list);
     spin_lock_init(&s->bufioreq_lock);
 
-    s->ioreq.gfn = INVALID_GFN;
+    s->ioreq_gfn = INVALID_GFN;
     s->bufioreq.gfn = INVALID_GFN;
 
     rc = ioreq_server_alloc_rangesets(s, id);
@@ -770,7 +819,7 @@ static int ioreq_server_get_info(struct domain *d, ioservid_t id,
     }
 
     if ( ioreq_gfn )
-        *ioreq_gfn = gfn_x(s->ioreq.gfn);
+        *ioreq_gfn = gfn_x(s->ioreq_gfn);
 
     if ( HANDLE_BUFIOREQ(s) )
     {
@@ -813,26 +862,30 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
     if ( rc )
         goto out;
 
-    switch ( idx )
+    if ( idx == XENMEM_resource_ioreq_server_frame_bufioreq)
     {
-    case XENMEM_resource_ioreq_server_frame_bufioreq:
         rc = -ENOENT;
         if ( !HANDLE_BUFIOREQ(s) )
             goto out;
 
         *mfn = page_to_mfn(s->bufioreq.page);
         rc = 0;
-        break;
-
-    case XENMEM_resource_ioreq_server_frame_ioreq(0):
-        *mfn = page_to_mfn(s->ioreq.page);
-        rc = 0;
-        break;
+    }
+    else if (( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) ) &&
+             ( idx < XENMEM_resource_ioreq_server_frame_ioreq(nr_ioreq_pages(d)) ))
+    {
+        unsigned int page_idx = idx - XENMEM_resource_ioreq_server_frame_ioreq(0);
 
-    default:
         rc = -EINVAL;
-        break;
+        if ( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) &&
+             page_idx < nr_ioreq_pages(d) && s->ioreq )
+        {
+            *mfn = vmap_to_mfn((char *)s->ioreq + page_idx * PAGE_SIZE);
+            rc = 0;
+        }
     }
+    else
+        rc = -EINVAL;
 
  out:
     rspin_unlock(&d->ioreq_server.lock);
diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
index 7a6bc760d0..1c1a9e61ae 100644
--- a/xen/include/public/hvm/ioreq.h
+++ b/xen/include/public/hvm/ioreq.h
@@ -49,6 +49,11 @@ struct ioreq {
 };
 typedef struct ioreq ioreq_t;
 
+/*
+ * Deprecated: shared_iopage is no longer used by Xen internally.
+ * The ioreq server now uses a dynamically sized ioreq_t array
+ * to support more than 128 vCPUs.
+ */
 struct shared_iopage {
     struct ioreq vcpu_ioreq[1];
 };
diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
index e86f0869fa..a4c7621f3f 100644
--- a/xen/include/xen/ioreq.h
+++ b/xen/include/xen/ioreq.h
@@ -19,9 +19,19 @@
 #ifndef __XEN_IOREQ_H__
 #define __XEN_IOREQ_H__
 
+#include <xen/macros.h>
 #include <xen/sched.h>
 
 #include <public/hvm/dm_op.h>
+#include <public/hvm/ioreq.h>
+
+/* 4096 / 32 = 128 ioreq slots per page */
+#define IOREQS_PER_PAGE  (PAGE_SIZE / sizeof(ioreq_t))
+
+static inline unsigned int nr_ioreq_pages(const struct domain *d)
+{
+    return DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE);
+}
 
 struct ioreq_page {
     gfn_t gfn;
@@ -45,7 +55,8 @@ struct ioreq_server {
     /* Lock to serialize toolstack modifications */
     spinlock_t             lock;
 
-    struct ioreq_page      ioreq;
+    ioreq_t                *ioreq;
+    gfn_t                  ioreq_gfn;
     struct list_head       ioreq_vcpu_list;
     struct ioreq_page      bufioreq;
 
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 13:44:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 13:44:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234161.1537488 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrytQ-0007vU-6G; Mon, 16 Feb 2026 13:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234161.1537488; Mon, 16 Feb 2026 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 1vrytQ-0007vL-2K; Mon, 16 Feb 2026 13:44:04 +0000
Received: by outflank-mailman (input) for mailman id 1234161;
 Mon, 16 Feb 2026 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=as6u=AU=bounce.vates.tech=bounce-md_30504962.69931f1b.v1-b6fad569632d4d49ad8f8959426998ba@srs-se1.protection.inumbo.net>)
 id 1vrytO-0007hl-F7
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 13:44:02 +0000
Received: from mail145-20.atl61.mandrillapp.com
 (mail145-20.atl61.mandrillapp.com [198.2.145.20])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8a1f8164-0b3d-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 14:43:57 +0100 (CET)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-20.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4fF3s74p6hzCf9SxH
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 13:43:55 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b6fad569632d4d49ad8f8959426998ba; Mon, 16 Feb 2026 13:43: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: 8a1f8164-0b3d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771249435; x=1771519435;
	bh=kTVjGfrv6Xmqvd9yfPCiNF0IYg1KaYNAhpTPd+u+gog=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=ZlnybVNTJwUNHvQ2EgUNWPMr39REg24E5+HQFKZYPS6c5U2YTACSTuStkBr7IL2RW
	 pa7p6QHaqYnj5mrrhgmQbfcgDXyXk/uopdIoNY0w3HrtQqGm+qnyNuaZRr/wXtMJb6
	 V7wJKnPeVic6X3w0TrtM6IyEM5dredGkGAnrtbTY1n/TlR9aXDjBzPKmsBpg1gMuH/
	 BvPAWschP3Z2Fjhi/ftG7y9hd0msFyTqYMvHrmopi29x7wpmDWJcntIwvY6QThgo4c
	 OvaYYyTOqqWunlY4UjWI+y1cPiRH0QkzcgktE3zfkykeVmrubHCRepfZyrI6IIYwhs
	 xFVvDKjqvUggw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771249435; x=1771509935; i=julian.vetter@vates.tech;
	bh=kTVjGfrv6Xmqvd9yfPCiNF0IYg1KaYNAhpTPd+u+gog=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=VIa2YJyXUxJAnugwHeaHpRFQmJ2MH9OxHMirz6V93osz7VAbB3HH+W9sWwmRcK0Wh
	 U15Y9n4YnWvGqOXPvDGljishzYypNZ9R0RtLLz/+5pNYbsoQQ40rU3C5u6uTtbVEHr
	 8H3LtFEfXRVPbkheU+V2DO7+yypK1Fuh3iYkgJxMBBYAllYnhjOKrvOSgPgORtlxdD
	 V9CT+AjwDI5HGZ/NMLhvE3VxfEBEHBzDO0HVOOn2QIeAgl9gQoIUf8dDlx7whGRi+D
	 TRWtSVuOMvmSoMkqtoGmTZObioXBP+s2htOK8pzUUyTHVzcqJVVbqIcu7TWxqyvXUX
	 SoQ/OfzdvrbxQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2=200/3]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771249434436
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260216134334.3510048-1-julian.vetter@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.b6fad569632d4d49ad8f8959426998ba?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 13:43:55 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Hello Jan and Andrew,
I have adressed your feedback and replaced the for loop with
xvzalloc_array() in ioreq_server_alloc_mfn. This indeed simplifies the
code in that function. I have also addressed the other points
(indentation patch, blank lines, etc.). I just couldn't come up with a
better solution for the struct ioreq_server. We now have a new member
ioreq_gfn, to track the guest frame number. Any thoughts on this?

Julian Vetter (3):
  x86/ioreq: Add missing put_page_alloc_ref(page)
  x86/ioreq: Prepare spacing for upcoming patch
  x86/ioreq: Extend ioreq server to support multiple ioreq pages

 xen/arch/x86/hvm/ioreq.c       | 264 ++++++++++++++++++++++++++++-----
 xen/common/ioreq.c             |  96 +++++++++---
 xen/include/public/hvm/ioreq.h |   5 +
 xen/include/xen/ioreq.h        |  13 +-
 4 files changed, 323 insertions(+), 55 deletions(-)

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 14:31:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 14:31:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234210.1537517 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vrzd7-0007Za-4w; Mon, 16 Feb 2026 14:31:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234210.1537517; Mon, 16 Feb 2026 14: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 1vrzd7-0007ZT-2N; Mon, 16 Feb 2026 14:31:17 +0000
Received: by outflank-mailman (input) for mailman id 1234210;
 Mon, 16 Feb 2026 14:31: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vrzd5-0007ZN-Pa
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 14:31:15 +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 1e7d491a-0b44-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 15:31:02 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4836e3288cdso19924675e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 06:31:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d482480sm489216705e9.0.2026.02.16.06.31.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 06:31:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1e7d491a-0b44-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771252262; x=1771857062; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SmECOfBNCknFO/g/+7clCBEnY5bZBANfpMp/NQZWgLw=;
        b=BlxuT9fW4nfJbf1+JotFbqjMe1PPDmWInjWMaogI7nkYuqEAR6V4YanjlISiS801/O
         PVYOfDo4kDK/0j78FbsUJlD4JjIdj1PTv7bP8SrOKVDw6qvovkAoSOBwUxX4l/izYDx8
         GEghfyQ2ngV5zIQ3koS1fPdFl5QqCMNsif+xCJNvnwJLNNYZ9AoMVKCiMy0x+7+n51qF
         E2Fgx8TbiLH6xPmHLxodriVRA8V0xVignizS4uC7IKlnN57wiB7EfHGgI3YHfqUZqetz
         tbMZcwBttpYCk2B6f18xQDC6gPK06ixadMPsMfBc/JAcMTQ55xTGpxA1jS8z2JcSMn6l
         veTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771252262; x=1771857062;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SmECOfBNCknFO/g/+7clCBEnY5bZBANfpMp/NQZWgLw=;
        b=cAteCTAeefAtO6ty7P8CaqQAhgJ147F5Rw5hfv7/hVcxsCfGWOxcXFiVrx2BdGr3Ec
         MLz+JNovmU68RiC2ZCB2EUM+pJftrEqQ1Sw+wqLfI8Sa3/tK90YgEqzUu+0FvZceBtaH
         c1TGjJlnMuq75s75JcJJX5UvwSqPUN4EbZCZ5wYKO3UuFp/kziOuQDndw68jjQB3KMR5
         zfABh+dsdyfC8LY+BYF/9Gx4knymFPyG3pc7uah2s+ysMntw3TcIPLQv85DZp9DGEPBm
         +UhlZfyc38nHCPgkorlbaE/CGsLFB3GFGUXwbELnYH11dAGQsusDow4sK8yBNtFp1HzC
         2/QA==
X-Forwarded-Encrypted: i=1; AJvYcCUt1CQ3olTey/bxluFmU9bWWuGDdAitMyw2LT7HG5ydu9BsPCjzK3hq9lflAclxNxrOFk+cufvhNNQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx74retsthhuk5Mm2C+pKNsFMhWjuJ5LtfmrjCYwwrgeXQhMSdg
	uBOt2vfy/9mgueOusT4FhfoedfjqhjeOuWFyG4B6kPCK2ihm4r+0jGlOrBnMJaQhjg==
X-Gm-Gg: AZuq6aL/AO+vo6GBTtqgIaGyqKVEzqkSKVVirDb2OjHed2YZQHZpKd4SwKsrGk31goC
	qIKRMLk2fOQywnPqooO55zs+eALb6zNS7MFtmXH1tTeNtEEfzAUJqYc9wU/YMH91r87tviZ9T3q
	/fpvgjEAVuvxsScgX97iJbC8utfINy854Mj71sl3zQzkh7x/NmTLoB//uW0g40sU0km+tLn9KaC
	teorCbpPnARpgR0U+9VVIFn9DQkrKgaEPDkHpW3NJh69J/r3DBV30hoUT4soUmX2n1EPVYMtW6d
	oQBKXUpfUdiC666Bn8AQcohVUIgk4rHI9ZarC3vNM6XjDPsuS1OeBOLEnnFsaGp4cU3+WIcSCkB
	DGFSiV/5yqgMJd9Ak3/r9wrwdRQ6DFgUrYJFN8lfUFjU4tbyMFB5Dx0dizTi4HpVoi/cZs0bswK
	wP0KNPbp8mWKsCH4+4uxpJcz+wmqO4hdRYUUvuUkdcA5yBDifO1N3GYX62ye7+PPFn4GZEDerVD
	m8/uAVqIj3KTfg=
X-Received: by 2002:a05:600c:8711:b0:483:fbe:23dd with SMTP id 5b1f17b1804b1-48378d9579fmr151078255e9.12.1771252261666;
        Mon, 16 Feb 2026 06:31:01 -0800 (PST)
Message-ID: <bcc6fa48-412b-49c8-8941-d54d9ade2989@suse.com>
Date: Mon, 16 Feb 2026 15:31:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/3] x86/ioreq: Add missing put_page_alloc_ref(page)
To: Julian Vetter <julian.vetter@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: <20260216134334.3510048-1-julian.vetter@vates.tech>
 <20260216134334.3510048-2-julian.vetter@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: <20260216134334.3510048-2-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.02.2026 14:43, Julian Vetter wrote:
> The page was allocated with MEMF_no_refcount. The MEMF_no_refcount flag
> means the page is allocated without a regular reference, but it still
> has the allocation reference. If get_page_and_type() fails, we still
> need to release the allocation reference. Otherwise the page would leak.
> domain_crash() doesn't free individual pages; it just marks the domain
> for destruction. The domain teardown will eventually free domain heap
> pages, but only those it can find. A page with a dangling alloc ref
> would prevent the page from being fully freed during domain cleanup.
> 
> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>

Yes, it would be nice if this could be done, but have you read the big
comment in put_page_alloc_ref()? We have no choice here, ...

> --- a/xen/common/ioreq.c
> +++ b/xen/common/ioreq.c
> @@ -287,6 +287,7 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>           * The domain can't possibly know about this page yet, so failure
>           * here is a clear indication of something fishy going on.
>           */
> +        put_page_alloc_ref(page);
>          domain_crash(s->emulator);
>          return -ENODATA;
>      }

... we need to leak the page. (Perhaps the comment could have done with
saying so explicitly.) Hence why the domain is being crashed, so the
leak cannot easily accumulate. Otherwise simply returning an error here
would be quite fine.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 14:55:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 14:55:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234224.1537528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs00n-000233-Vi; Mon, 16 Feb 2026 14:55:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234224.1537528; Mon, 16 Feb 2026 14:55: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 1vs00n-00022w-Sk; Mon, 16 Feb 2026 14:55:45 +0000
Received: by outflank-mailman (input) for mailman id 1234224;
 Mon, 16 Feb 2026 14:55: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=sAgz=AU=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vs00m-00022q-A1
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 14:55:44 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 90697286-0b47-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 15:55:42 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CO1PR03MB7964.namprd03.prod.outlook.com (2603:10b6:303:276::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 14:55:39 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 14:55: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: 90697286-0b47-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=fj6sEZU1M85CzMlwFpLOz0nI3W/Hu8O13VS776L7dSfT1U47j65xeHzGmotTbzf9xwPtVRuNYnhvw0emy4zrQ5vVnnLQ25rvOYK2+sAf+Qdh4T+4z8WqZSgae5HyNq8i5QFeHWhN+r3AJJ7Zadvr9Pi4vxL12C2hZvnjU8lsspG+Qt36tfa6ANptSV/JOu8KcLLm7LvgrDxGmpwlT0IV+X1vRRlhm1UxuPpFd1M46+TzQU/MfaNLD/utNIRkKblH+h6ZGXXa77ut6ZoODUe9Sg6kQhS30XAs8ZGc8EfKwZjklqutgzlN2Wq5YvA69+cuz8Di6/v4f6rVjoGxkCkK3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AdiIh8qmaBZhJtld4gO1x0RQW5SaTUDlQkpOAfTNx6E=;
 b=TgpD/fJ1IPQ/EkpTk3PYj+kQ4Yn6VdkLkQGXPQqY53Xt6A7prBEFn0mB53lyV5C2vi9UgTxEHnqhO/08kM0ldHyRH+K2oyEJCMAGdyTKcX8eqe0ZO21/NHndtK33OB0MokacjQNpuh7iucD2S06XqVTUR7DZLWBC292jAExt2UakoTDbApMKPRIdjX/5FoHHpY7eM5j6f+yTQefYjjon0uRJIyKVCLuRPZlEEbISVJ7nlPlgMSad8JBYtWBzO7SzFca+Us2oMx8Jz4EHDpVLaz18Imqnyiut4urQDPHRa8ssB5IOJbY8/zy74QEloj23CBxgp/c93xJZGFmUJqbW+w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AdiIh8qmaBZhJtld4gO1x0RQW5SaTUDlQkpOAfTNx6E=;
 b=hbsnw3q1IpCGSK6uIKBRxgziJ+Tjdu6EKckl9fCS8P0P16dMl6oMUPLWPgM99XqOe7WVjixe8/zYgg/pPC0yKAmulPL6LZATSbFPU9V1tFAbtF6QH2boMoqsj8hhDKTC0ewr8erp4JSDHXT9h4ZLxl1QDVuBTX7EYuKvcbIQq7I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 16 Feb 2026 15:55:34 +0100
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] symbols: don't over-align data
Message-ID: <aZMv5pdaPPTNadtZ@Mac.lan>
References: <e220ea61-5483-4a91-a8b5-ac8fa387d9ab@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <e220ea61-5483-4a91-a8b5-ac8fa387d9ab@suse.com>
X-ClientProxiedBy: MA3P292CA0031.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CO1PR03MB7964:EE_
X-MS-Office365-Filtering-Correlation-Id: 0cf44bda-8d2c-4e42-bc73-08de6d6b724f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RHpmZk5Vd3RoaUk5elRvQzFDcVo5cDF3eVE4K1Jna240cklGbGlTZ2dPQk1k?=
 =?utf-8?B?dCtRZjZCTHRkUUJmdm1PTWhmeHBpNi83WXdxU0FINkMxdHVaRE1ER1VNV2Z4?=
 =?utf-8?B?UTlBTi93OEkrRmMyYlY5dGZtYmR4dWJwdXo0OXZGT0JwdFBNZWs1V3BxRWRh?=
 =?utf-8?B?RFJodE9LTE1kZ2crdFJsOUlTVElBc3IrV2lJbVpJVkRxeXl3bkcyT2FCQUVG?=
 =?utf-8?B?bzQvWE91ZkIrQXVnNFZHdmIyZ0VrdU5aOGQ2OUU2OHYyaVRTMGp0MDBQKzlq?=
 =?utf-8?B?R3dpd1ZxWDVDYWdIM3IvYmdJK0VEaEYwODc4aWx6RWZXZGpHdzgyalRabmVR?=
 =?utf-8?B?QTZ6STRrNHBNaFprMkpBY2xQTW5aN290WmxjUEhRem5TZ1ZMYlRiSnZLNWUr?=
 =?utf-8?B?eE4zbERWcDY3WWRvY1pHZjRubDJlaHVsMEV5WW1ZazlXN0I0dTY0a2Iwa29j?=
 =?utf-8?B?MXJvTjhSSnpHZnljbG0vbVR2NkVoRHN5S2VVRVhoYW1LazJvc3ltQWJHSE1L?=
 =?utf-8?B?bHNOa05LTGZrLzkvODJienpsTXhUMG9nWW1WTVZhTngrZ3JBZTFKMFdyMXpw?=
 =?utf-8?B?S3NRK0VNVHRvdmVGU2wxV0dVWDFGaGJvQnVFVkZUa1lzck9pakNwVS9jeUVF?=
 =?utf-8?B?MnlTdHh5Lyt3WnNUTTFYS3R2clNQeWhzZ2k1MWVwaDNoZ3RVQWZBVFZUb094?=
 =?utf-8?B?a2F4RTZwQjk1TGpscis1aUkvTWtIbzZaRG1XVHJiaWtpeWZqekVjMWdQNzdJ?=
 =?utf-8?B?YllLTkQ3VDY0d3NWek5vVW4yNGJVRFpXMzVYNHlwOTI5Um9nTm9VVmpuNXJG?=
 =?utf-8?B?WW9NTVFFYkZnQ1hhTWV0TnU2bGFDZUZ3Z2JOdFhEQ0IwNDlEUUZaQ2IrRWZY?=
 =?utf-8?B?MnFTMEdZNjVyK3ZkbTNTODlnMHRFTmI4aU5kZVNVK2NqU3g3eFNXRmZ1RUtV?=
 =?utf-8?B?VlU3Z01NRmtaWDQraWlSZFpGaXhZT09TYXltMkV2RGRtbnArWG0rTjhsL0g0?=
 =?utf-8?B?SkppOXdqQ1A3K0xDdURvcCsxRzBKc2dmekpZb08zb2FISkRmaEdpWmQrRXl2?=
 =?utf-8?B?d29SVVlVZ3RCNUJNUWxxdG42WTl4dW1GZzd1L29HSmxKcjZlcWxzREI5cHZz?=
 =?utf-8?B?UWExaDFUdExTNE54N1c5YTlSMnF2VVVjcjdwSThVYXozZ2VGOEV5OUZBdjJa?=
 =?utf-8?B?d1kzUWZCNUZlMlpkWk1yVlh4a2VZN3NCVGdUT0Rlckp3NzJIUVJwS2kxUWZy?=
 =?utf-8?B?a1JzRVI1bTNCL1M1Z0grRlVzUllHYWhVN3lkck1Fb0pSTDBrQ0U2bjhzcGVC?=
 =?utf-8?B?dnMzOC9jOFV3eWMwR1BJN3haQUNVSGNESU5zTzFKZkJMRFpxSGxzdzJRNlRp?=
 =?utf-8?B?Y1dtT0pzRUJoUGl6M3JpNDVsV2l6dUR1bmVtUjBEMkVQbTlYZDdRZUtoWUh2?=
 =?utf-8?B?MXBtOWd5UDQxZGZKV0QrbytadnBDeUoyK21pcGE0WG1OUnk1bThuMXhnWXZ3?=
 =?utf-8?B?RE8rNndFS0kzbWw2L2NXRk9CL2dYQ0xLc3J2dytuYklRMlJ2cWVkVnBUR2ow?=
 =?utf-8?B?N0w0SFg5TllDT1BPOHA2cENiM2FYbEFnS09rems1ZXo4Q1JZbU1NZXcvUXZH?=
 =?utf-8?B?T2NLcWdlS1A2b1B5Ykt0akVYNFc4d2ExdGN4M1lHeXpjbDV2RFEvd0Eva2Nu?=
 =?utf-8?B?dk5VREp1MWtTZlc2LytPR0c4RElFZnZjN1g2Z0swWnhkczJWbWtmSUsvMDZQ?=
 =?utf-8?B?bEptOUI0MzQ0em1aZ243RXBRVlN4eFRQSGVEYWFWUlo4MlowL0pmQi9KWlhN?=
 =?utf-8?B?RWtCWlNqak1aL3FLWGEvWGZKd05IZlRlQmU5dTF3akhjUFR3di80dTZ0Ulgx?=
 =?utf-8?B?SnNWQWNHODBQTndtalFaejRIb0FLSFp4dGEvU2llN1VMcU5SalFXWjFMeXBF?=
 =?utf-8?B?K2UvSGdqNHdJZXJUUTRJaE9FY2I3ZW16TFRlZ1ZZbTN3NjdJdE9uWWpCTnli?=
 =?utf-8?B?ZEl5MTdTRjZpcmNxcHdtSTBZQzR0bFlpWEhqQVozNjMxK0dGUXROdC9vK0xU?=
 =?utf-8?B?RUpiMVg2N012QzU3K1hTT20vbWJST1NHTWdsUFYzVnBPbDdGckxoNWt4Y1Iy?=
 =?utf-8?Q?oyM4=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SEo4WGhmdGdRVW1OTzBReUp5emhGNmRMTXlrUHd6S1F1czNQMThNd1NjVVlW?=
 =?utf-8?B?eDFjYW9seTUvbG1jUitaVXhJR1RhRXNGMERjZ2FLZHl2STM0YXpYUHpzK0c4?=
 =?utf-8?B?TzB0N3NKT21qc2puOVBMN2ZGaE5DemFvbWUvSmtTWEpZaVFKeVZ2SUkzbXU2?=
 =?utf-8?B?NERhZEJOK0doV0VJMDhBbTRkTmVDVmZsZlFjeVlmK0VaMDIrYmZZWitacDZo?=
 =?utf-8?B?VzJ5QkZGdVRUby9oY2F0SlFwZGp6Nm5oMUxjTU1uWXFJMURLUTRYS3BndlJs?=
 =?utf-8?B?UUJ4VmFaalBzaU80UWUvRVdJczBxcVBYay90YW40LzY3d2dUb0FCQUVWblVF?=
 =?utf-8?B?Z1ZZMWdLVklGV05YTEc1UnM3YXlsZVdSSndGTXROaThPT1RaU2FmL01PQkdB?=
 =?utf-8?B?d2t1ZitRRTVYcW1DMmRFK3pvWlYvQUVhOFVOOGFDbFBTdWhnWDh4dEVvMExX?=
 =?utf-8?B?eitUekJPRmhxMzVKNlE2Qm5Gb0x2K2QwOXhJclQvZk5WTzBXSVRyaHJiaFg2?=
 =?utf-8?B?M1FmWDhEMmtaU2p4aGpoeDduSFRnT2xZWEJJNFd4aHRCYUlFTURHUFpnNVFq?=
 =?utf-8?B?ejlhZFNIS1pFbjg1TGNyYkxSc0NOTG1EQnFxV2o4RG5TcllIc0dxRE9NNWVZ?=
 =?utf-8?B?ZjFMbzlFMWpGYTAvcGFIWkEzeStiSWdoNmdIYkRsTjdZTUxDL09WMnovU3pP?=
 =?utf-8?B?NkQ4cmJlUmFjemtnSWNmOHdRUlJFeTJ0UG12dXRNRnkxK25nWnErUVpzWjNM?=
 =?utf-8?B?MjBhb3kyZzRNRk4yQTkraTNGbSt3QTcvMzYzeG4vdm1BTGdrbHpkWjllcHVB?=
 =?utf-8?B?K1lGS2RGbUtoSkFwOTlNY3I3MnJ4WlFIT2VwQkgreVFEM0Q1aVYvTXpzZXE1?=
 =?utf-8?B?Z01Sd2VwTkZNOUV1SVJ3YmVsd2kvR01HTVZhYms4eUh2UEZneVZRMGtSODd1?=
 =?utf-8?B?d0tvZTBKNXVvQUhobUg2TGRUdDMrd3M0MkR5SGtnZ3RLc0xRWmhWQjkyMnE0?=
 =?utf-8?B?Zmsyb0FGWGoyYmE0bjlKaEFqeHJheGNJVGtDZ2F3djB0LzY4TnlzMzZMTW5N?=
 =?utf-8?B?TWswbGlwejhWYlVGSDdJOFBieW9BMzVpNTdPNEFBa0hKSk9kN0hXSUVDdkdL?=
 =?utf-8?B?cmh6ZXFMZW5mY0loWk03dy9LREtCU2VkSXNtK2p2ckxpOW1FenVoZlVyTEFx?=
 =?utf-8?B?ckNqQ3FYeCtLM05aZ0FQaHY3VDVXdVl5UytFMys0NFpwajNIMmc0NGQwSkdZ?=
 =?utf-8?B?UldsRXRHbkJLdVFaZEJkZDdMZ0g2QWJ0L2FGZmMxOUp0dU5qZlRuTm44ZmQ1?=
 =?utf-8?B?cWFvYU9ybWN3ZU1SVk8yVm1VSmZLMzFud3dGSXdKdUFZbEpqOGRDcHNNZTFo?=
 =?utf-8?B?S2svRDlwVUxKTllwWUpZckVucGtTWXNlamxuZ2FjZjRxT3hmMyswTitVcVVm?=
 =?utf-8?B?anJvU2dtSDZnWW1kQXBkVDd3enc3UGh2TUR2WmxRMHN6bGtSZTYveXpQdXBM?=
 =?utf-8?B?dzlQcEMrcksxeXY5VWJQeVhrWDdHcEFKNDVRQXF1V2kxVCsxOFdvcE5PYmxj?=
 =?utf-8?B?bjY0aGhLK2Y5akwyQ3dqSGpYZ0laY2RGZlFlcnZ0Q0Q2YlVyK1l0OXlzS3pL?=
 =?utf-8?B?SXdodjJFaE5ybmVNN3hWTHE0Q045U2ZteVlOVmNlV1A5TDk3aTlSbEl1L2di?=
 =?utf-8?B?aHRnVDJkd2owdzJUVmtuSWxlc2RoZnpXdzBTbEdUYmxFcCtyamNaalNleVdu?=
 =?utf-8?B?RHhRMEtrNHF0aGV4VThvdHQySUhSb0h6aUdNRDgySGlqL0QzVmw2dUdqNHFT?=
 =?utf-8?B?TzNiTHRha21LMlpBckV0VndZemh0SjhLeVBWUndnN1NHSWhpT0djYkxLOHpJ?=
 =?utf-8?B?WVZDZExsMG1GRDVXUVBPSFBaS0czdEZ3VFlvdWtQTGM5YUV2YjRYNG5LY2VK?=
 =?utf-8?B?NXJ6ejR3RzBBMG5CRzNMZXVHTnJkMERRVm1Qbmc2c3ZFWlduUmE3Qkxmb0Ju?=
 =?utf-8?B?dEZuR1plMktDRTlyZGR6RTZvakR5a2liWGhxeXNhY0VlTjlkV3hjTEtaeEt1?=
 =?utf-8?B?Znd3N3JMOGJmUUVzemZlaDNBWEdWSzBHYkZTR0o3MjFVanNnczhmYzFWZUU0?=
 =?utf-8?B?dDhyOFpyRFNFNVl5UTBYTHRVc0pwUmFHckhIS2E1NG1lTHptRDRVSFFMM0R6?=
 =?utf-8?B?UW9qUy9IWE4zd25Vb01aTGxsdWxhMzNEVFRDbTBtS3EvOVBHV05vbGhuaUZR?=
 =?utf-8?B?NURPYzBPT28xUmRWVXgweXl3YkkzYUpGSFM4VWRBdHEvWFRQTVhyQ3dwZVpK?=
 =?utf-8?B?VGVVczJ6dFUvS2MrZXBFemVqTk5VVHlhUnBrdDhTRElkak9pMFlNdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0cf44bda-8d2c-4e42-bc73-08de6d6b724f
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 14:55:38.2079
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: UqOZe0tcmkhx7MG9E1KH1lUSWlMuADZNNmrwgeQ915rYXVeDhfWusmXawzaxLbUHTN0le8Ryx85uhSNEzDhbZw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB7964

On Thu, Nov 13, 2025 at 11:58:49AM +0100, Jan Beulich wrote:
> Arrays of .byte or .short don't really need aligning better than 1 or 2
> bytes respectively. Arrays of .long also don't need aligning to 8 bytes
> (which would have happened when BITS_PER_LONG is 64 and SYMBOLS_ORIGIN is
> not defined).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 14:57:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 14:57:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234231.1537537 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs02t-0002cZ-9X; Mon, 16 Feb 2026 14:57:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234231.1537537; Mon, 16 Feb 2026 14:57:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs02t-0002cS-71; Mon, 16 Feb 2026 14:57:55 +0000
Received: by outflank-mailman (input) for mailman id 1234231;
 Mon, 16 Feb 2026 14:57: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs02r-0002cM-Gt
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 14:57: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 ddc568a8-0b47-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 15:57:52 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-483703e4b08so26163945e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 06:57:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483709f8812sm154308085e9.0.2026.02.16.06.57.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 06:57:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ddc568a8-0b47-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771253871; x=1771858671; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+XBV7YwT88hxZ2vBNRNxhnT86u6Bydza1pu1GSB0NF8=;
        b=Q7JraaTH+iboHma5sMvCjo8qNrJTEOy4GYePzBFjNILfQLowr7iFd1blDFzq04Z25V
         ao+206iKoDZUHm0bDVBDb5LaY0o1cNKAi9IE1iOX557N/0SJvPR/BrMOoT/hgOj8/mkS
         Pk2oUjAzN2HizxEur6WFOnyySFqowS7zhIevbj0EPRbp79aK5YNifOF4VoBYCjHDfpR+
         VSUXvGOQhiOxflWF4okj7ojvcuYF7N0MKSIzKTCgLK+2CuJ8RLvDCwzjI1HLPT7aWcnr
         Vo9poj9iNTsip2Tt2RgYLEOHSDBfAF25LoFEAbTMl4wDUFuXTQfhE9vm76FgfSWoeiqD
         M1mw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771253871; x=1771858671;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+XBV7YwT88hxZ2vBNRNxhnT86u6Bydza1pu1GSB0NF8=;
        b=XiUNei41xT3Ubsc9hJrlaYAax9WZC17AZ0pXB5+BplcdinzwpCD2HqxWlbWbV8nhR6
         f9JbZGcMCGwzxqXjpGYyym31Fv87xAGRKfX+NRKePBjXoAQqO3SLxBjjKXNyiDqKrKd/
         Zq/QL4bIHRZ7oKZJ1ZBTKwmyu9YBawzcRq2M8X3LZBdHpW/5FA+lYB61Q02prcuqmUbX
         z2rgl5HTPM1amPQFOAL0cjGvYC7NxZmRoZmtxiM6HNx8LVglWmNRUSKsWfwTb8KY2G1x
         Xi06AUyNFNZZzF3nstGg6mwvtRZEPQFkyn3Y/zBUrDoH7gvxwQRa723ZBIc6OmbN3vfJ
         iR0A==
X-Forwarded-Encrypted: i=1; AJvYcCWLrlHZk8I/J6dSmkDEC7OdM0yrhJl/FnRU4CZPSfo8r4VnMcyrrpHNiIKXO/Acy7wpYK0r1Hga4Xk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxPrb3QJ2g3zQX0K5v7PBUwjVCO73c2XZE3xM4k+kUKIBSgUSqI
	xhR65oNiCU9smfK158BOq2hm8cDMRWDwd+29ROcpTROxb37zXqU1y1v8Ti9kSEfdPm1d/7t4UNx
	dZa0=
X-Gm-Gg: AZuq6aK3VznV/2TU29zCsIpP3GSQNU/Rv+0lqnoVCuL7Y+0E9Ye2aCg+FA5uvDfd0a0
	BuoHSc8PJnO3h9Q4f9Y3vOGpkKfwIhgB9DwlZKVO/UJQx4AjKExaY/4DQrI4z8AMa52ZQrxPP4B
	psGBtY3DCwugx5jkp26ubt/9BXKaA+1TTNw/4ELN+1j093Q1gDjRz7ts+9ECVAPdqLMD3pS8E5j
	oYa9GN+Er07PRwvaLAeA8cJYCcO6gM86YELN56yKP89u3Y+pTibhi8qjkQZbwuKHxEJwUQcIbxw
	b0ICoP25QKl2Mw346kVlF5MEvjbb6ooi1ll7t4Rz1XMB/bn1UsYoDEYkIDjdcDA3M5vvcvHn6bh
	8jYqPY+Zcnnkrm7no1maDFKhRj2MdbEwUUa9WfeLFEHQaosxLIKucwfMOpDJG2k2Dk0ErhJoRc/
	/DtzMxTAd4TXbCNbNQ6DBVtTPvQVDyCbNy5XD5voGeb5/BK/rjxT/Qy2TTML91E8Qe5mvjlpFDL
	y7KO3MS5MN/uoo=
X-Received: by 2002:a05:600c:3b07:b0:47d:6c36:a125 with SMTP id 5b1f17b1804b1-48378dada5fmr155311305e9.17.1771253871054;
        Mon, 16 Feb 2026 06:57:51 -0800 (PST)
Message-ID: <1edea973-4ca1-491f-a9bf-9c2b09bbe615@suse.com>
Date: Mon, 16 Feb 2026 15:57:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/6] xen/riscv: implement copy_to_guest_phys()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <cb50d76c627cb666317b23ae136ca43bfbfd04c5.1770821989.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: <cb50d76c627cb666317b23ae136ca43bfbfd04c5.1770821989.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 17:21, Oleksii Kurochko wrote:
> --- /dev/null
> +++ b/xen/arch/riscv/guestcopy.c
> @@ -0,0 +1,112 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/domain_page.h>
> +#include <xen/page-size.h>
> +#include <xen/sched.h>
> +#include <xen/string.h>
> +
> +#include <asm/guest_access.h>
> +
> +#define COPY_from_guest     (0U << 0)
> +#define COPY_to_guest       (1U << 0)
> +#define COPY_ipa            (0U << 1)

Like already asked elsewhere - is "ipa" a term commonly in use on RISC-V?
To me it's Arm terminology, which you don't want to copy as is.

Also, don't you prefer to use BIT() everywhere else?

> +#define COPY_linear         (1U << 1)
> +
> +typedef union
> +{
> +    struct
> +    {
> +        struct vcpu *v;
> +    } gva;
> +
> +    struct
> +    {
> +        struct domain *d;
> +    } gpa;
> +} copy_info_t;
> +
> +#define GVA_INFO(vcpu) ((copy_info_t) { .gva = { vcpu } })
> +#define GPA_INFO(domain) ((copy_info_t) { .gpa = { domain } })
> +
> +static struct page_info *translate_get_page(copy_info_t info, uint64_t addr,

The caller has to pass in a domain here. I therefore recommend against
use of copy_info_t for this function. Or wait, this is misleading, as
the consuming part ...

> +                                            bool linear, bool write)
> +{
> +    p2m_type_t p2mt;
> +    struct page_info *page;
> +
> +    if ( linear )
> +        BUG_ON("unimplemeted\n");

... of "linear" is missing here.

In any event, this one please shorter as:

    BUG_ON(linear);

> +    page = get_page_from_gfn(info.gpa.d, paddr_to_pfn(addr), &p2mt, P2M_ALLOC);
> +
> +    if ( !page )
> +        return NULL;
> +
> +    if ( !p2m_is_ram(p2mt) )
> +    {
> +        put_page(page);
> +        return NULL;
> +    }
> +
> +    return page;
> +}

The "write" function parameter also is unused, but there's no BUG_ON() for
that one? Imo the p2m_is_ram() check isn't thorough enough (on the Arm
original): p2m_ram_ro shouldn't be allowed when "write" is true. As soon
as you gain p2m_ram_ro on RISC-V, things will need updating here as well.
Perhaps best to leave a note.

> +static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
> +                                copy_info_t info, unsigned int flags)

Why an "unsigned long" return value when ...

> +{
> +    unsigned int offset = PAGE_OFFSET(addr);
> +
> +    BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t));
> +    BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t));
> +
> +    while ( len )
> +    {
> +        void *p;
> +        unsigned int size = min(len, (unsigned int)PAGE_SIZE - offset);
> +        struct page_info *page;
> +
> +        page = translate_get_page(info, addr, flags & COPY_linear,
> +                                  flags & COPY_to_guest);
> +        if ( page == NULL )
> +            return len;

... only an "unsigned int" (or 0 further down) is returned? Same
question for copy_to_guest_phys() below then.

> +        p = __map_domain_page(page);
> +        p += offset;
> +        if ( flags & COPY_to_guest )
> +        {
> +            /*
> +             * buf will be NULL when the caller request to zero the
> +             * guest memory.
> +             */
> +            if ( buf )
> +                memcpy(p, buf, size);
> +            else
> +                memset(p, 0, size);
> +        }
> +        else
> +            memcpy(buf, p, size);
> +
> +        unmap_domain_page(p - offset);
> +        put_page(page);
> +        len -= size;
> +        buf += size;
> +        addr += size;
> +
> +        /*
> +         * After the first iteration, guest virtual address is correctly
> +         * aligned to PAGE_SIZE.
> +         */
> +        offset = 0;
> +    }
> +
> +    return 0;
> +}
> +
> +unsigned long copy_to_guest_phys(struct domain *d,
> +                                 paddr_t gpa,
> +                                 void *buf,
> +                                 unsigned int len)

May I suggest to make good use of line length, just like how copy_guest()
does?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:07:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:07:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234246.1537549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0Bb-0004Jf-9l; Mon, 16 Feb 2026 15:06:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234246.1537549; Mon, 16 Feb 2026 15:06: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 1vs0Bb-0004JY-4j; Mon, 16 Feb 2026 15:06:55 +0000
Received: by outflank-mailman (input) for mailman id 1234246;
 Mon, 16 Feb 2026 15: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=sAgz=AU=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vs0BZ-0004JS-3v
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:06:53 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f1009d0-0b49-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 16:06:51 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB5688.namprd03.prod.outlook.com (2603:10b6:510:36::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 15:06:45 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 15:06: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: 1f1009d0-0b49-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=FKvEFGKkY8tZYJztgJgJFztz/vYu92/wSTkD29EYMFueOi75q8tSk6l6s+LnLQRoGrQIorOKAByyLD4bhaFI2hyUyeAx2mI7H7H9Nd8VTVzPCJCjNL168cX2d09sSqEQLxH4pfmNOX8FZ1BPjC++T1pwaOaumlJcIRM8e0XDvMfd5ZVdYde6pO/tnzFsEYR6V0gdXKkXY6BkwSNLFaQJNdOlCMLjSbDSzOFMh77Hv+W8jziGkumuv0K8eAkhKgP7qIJltUdEEJ8/531SIz8FBJDAfvBR++ji563z44KoDBP6mpa5ZaIgp4UYrzFnQzKiT6H1nKE2Wp7DOGKU9K8jYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MYfNenKyR18WxXZHcpEj8NdKDJuavWDVFgYFxMCy2RU=;
 b=bfCeNi46qQhp7XmtdUkedkgW5ubYLdPUCI1i6jhuSx1bKinzNOem4ZEoe72bOSR4psfL2QUQ8BkBUtoNLyIQiE+REJ7ty7voBD6HuLcIsrH8/tkuB+QOMJqVz92BQ0w2beyrp74tcCfxNR3d2wjPO6it0grq3F2neR23v6NzNMiJdolslrQgdNHt5oNwP190o3BCfqiqw4yR60TK0qzdADDVSp5t+gKtLTeEA7hzqdZPwDjzKixPUJrWIEWNebEPzGqoKt0OMkudA+Sxsxqrkngq6+saphAkCjap7OImF3WWrOzMqUWvSYSD1gq8bwoCydVAj9JwTRBrQWQ/4+LNeQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MYfNenKyR18WxXZHcpEj8NdKDJuavWDVFgYFxMCy2RU=;
 b=OFlYfCDvyU3ulKjWV6RzDyk6YVSVapcW62uQjd9EbcUhoGx5lY+OYIrskgBmT9Sku9zRaOnQVZVurSKvejEWFkR5ps7GMtoCj+VtVFIOFboc99nBZ9PunOBPS9zybjWq2su/ck6ivIoO1JlHbhVE9MpZllomB9SKJjP77DRGg+s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Mon, 16 Feb 2026 16:06:41 +0100
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] domain: skip more stuff for idle's vCPU-s in
 vcpu_create()
Message-ID: <aZMygcKLwGQiNZu1@Mac.lan>
References: <b010c8ad-afcf-43f4-b273-fdb43ab641ed@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <b010c8ad-afcf-43f4-b273-fdb43ab641ed@suse.com>
X-ClientProxiedBy: MR1P264CA0116.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:50::34) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB5688:EE_
X-MS-Office365-Filtering-Correlation-Id: f3cf859a-3e2d-42f6-04cc-08de6d6cfffd
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bnloVGZMWGJ1UnVWZU53elhER3lNemZJRytscE5maFYzUXJMWWlxYW9CNGF4?=
 =?utf-8?B?b3FKdGh4RnkrdnMyTTcvUGtZUTMrVll4eEh4bVIvVXVlS1NNNzRYbFZ0dEg5?=
 =?utf-8?B?UnZZek9lZEV0N1BZTjRsL2pwWEs0eUlJeW80TXkrb0ZqdWdEdExVK1BkalNt?=
 =?utf-8?B?cGM4UmFOcmlsbjUxOXQvMEtlK0tmMnd5YkhMdXNETXNoMFJvVGR5c1N6WktJ?=
 =?utf-8?B?ZlhNc0txWTZMR2wzT2krMzFGZnZaU0hSWWRzM1c2OHdkdnhaUzR1UmR0Z3hj?=
 =?utf-8?B?aEswUWZVZFNYT2RDL0xicERWaWZFM1l0V09iNHo5eHBxdFArUGx2aG9aM21P?=
 =?utf-8?B?VHprdDlzNzc1L1FQSjRHK3hxN25LOWxDS3JpbUllQlhNNUFJemtEdytwVVV4?=
 =?utf-8?B?dEc3K3VBS29UMU9jd3g0QndMdXRzNE44alpSYXg1RGdDWDRXVzdrNW9OTm1P?=
 =?utf-8?B?MjNkSCs0VXZFZ082eFdKcmhnUFhvcmFCdWNra3RGMm5hNDQ2SUh0dFBlY2Rt?=
 =?utf-8?B?L0djd3Myc3FhcGJRQjlZUFhNbjhBVDVaZmJFZDJKc1loYlFCR1UvaGhaMHZN?=
 =?utf-8?B?Y1Q4MzAzM1dDa01GQ2JSMnY2Q2g0UDBvb2pFd2xOTXpzeUsreTMycEdDKzBC?=
 =?utf-8?B?Vi9FVWo2SjBwZUpWZzhPOXlhQ3pJcXFoTnNoUU5yVU5TTDVOZGdvSmtLWnpw?=
 =?utf-8?B?MURCalJrY3NZMmRhQ1RscVBXUFBXajZaTEpnZGtMOGxoSUcwbE9YcVhvLzFC?=
 =?utf-8?B?L2YwYXRPdjN0bzNVamV1dENqMk5kTVJweVJkL2ZUbDBkdmtQcG9rRU9jcTdB?=
 =?utf-8?B?THhFZzhXVzBKVG1ocnpvdndvVTBRSld6VmNkdlNVTUJMeVdRLzdmVFhJWUEy?=
 =?utf-8?B?Ris3VDlSRkhhYlFTeEMyQ3VJY2NKM29NQVZPYkRzZ1JITXBhWmVxQkgwQlFN?=
 =?utf-8?B?cVN4V3VvRW9CcnRPNE1TOXdiMTFraUw5RnlrQk4zc1JsSU9SQ1gyUjI5WlVj?=
 =?utf-8?B?ZGlFZEsvb3o4K3pXaFlDZS9KS2orTHhsWUhwTXRvdGJ0TzJQME1iRXBnNU5y?=
 =?utf-8?B?UzNTdDFOVk9NSGZWd2V0RHArZ0lOTWc3ZGVqekJlUHhmeUV6KzZXZnByWmFP?=
 =?utf-8?B?ZWdwOWtXMEFnL1Q0Q29UMTJxd1FEUTJZa21nbFB2M05sclpENVpoR3NWckxm?=
 =?utf-8?B?eDdKQUtjUElvemViTXFySmVGSEVDWU15SzZPSkp1SllHc1ZOVmlHZE9qNTVv?=
 =?utf-8?B?UWVtdVlBa2dreEZYTDJZN2ZLZVlPMXFoSXVKUUIvWnBwbzJWemRWL2tCN0tW?=
 =?utf-8?B?TVBHUnJ1RXZmZXlvaTgvdjV5aG1MNWZYUDgwRzRhVmpZTWM3R1UweU8xOHdI?=
 =?utf-8?B?OWZ1MGlxblZPcDNpdWpmZHBsdzU5WmNiZnd5UnRLNDBQUkZleFBwSEptSy81?=
 =?utf-8?B?K0EvNGpZdXR0emxjODlpYVdoZENaT2hIUjdXRlRZQTJqOWxUanFheVJ0a0tn?=
 =?utf-8?B?blRWWlRHbmxtckt6OWt1VUd6OXFtRjc4enNSUEtFVU4xTXYwSEM1WjJrdGs2?=
 =?utf-8?B?anQ5UGluVjN5K3U1anBrWUh3dGoyNTU1Y0MxYWJrcjFOQkhSZ3FBMTY3RnNH?=
 =?utf-8?B?cmZaUWNuWlN3aVlReGlYTjdIS0ZQNUY5VkRwRnpLK2x4NmFCd29Xd2kwbldZ?=
 =?utf-8?B?akJPUVBtU0FEYTVUaGhscDhmSWdjTi9VN0xXWUxXbGs5SlFKeUkzWkM5VDIy?=
 =?utf-8?B?bGFDNkoxcDd5MjNVdnJOdHh3dFBaSmp5T2VEWVpERXBiTHhiNTJZQ3Nqb1ln?=
 =?utf-8?B?Unp0TjA3d21rbFZYTkY3c3ZvU1FWVWlremlJejJMaFBJV1FiUlZkZzhrdG9H?=
 =?utf-8?B?V3FTQ2dNdGlOYnY4U1JlbEdhNjAvZlJWdEFSUDVDbjZtTklWSWhHYWJlWmJm?=
 =?utf-8?B?NzY3M1Y2eVRMbHhITGJqRzNJeC9wK2FOMnk2a0tKOVpzNWNWaFNtS25KeStl?=
 =?utf-8?B?clc4Y2hjMEczaUM0RTZnR0V6Nk5SZjAyWUNXMUVvUTlweS81bWxheksyd0xq?=
 =?utf-8?B?UU9vOE5ubEVkTTR2ZlIwazdoekVjeTJYMFR0ZVpQWmJHSkx2aU5Wb2NKTHcv?=
 =?utf-8?Q?j50U=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bnNHdG9hRFRDNnFjL2wyR3NZa0xkZXk5Y25sMys4emZRSDY4STNsc0p5SVFI?=
 =?utf-8?B?cUs4NVBKRm5yOUl3czFvc0lXM2Z2b1lia1JRbWxKQ1lzblBlbDVhZHhVeTFD?=
 =?utf-8?B?T2NHWnVVTG9XU0E2VStaNEZlL0NOSVdaM3pSL2tyTlFERGRhcGIzNFNyNyt5?=
 =?utf-8?B?M1B5YUsxNDRybEo2SzIvTUtRUzJvWDN3US9SR0tsYkxnR0l2KzJFYm5oUDNZ?=
 =?utf-8?B?NGZTRVNadGVlN1M3cTRINS9CSDJ4d21iRFMvRFFZRmFXL2dIUEQ5N2t0bXFn?=
 =?utf-8?B?eUxaU0ZnOFVZZktxU2ZrRERZYWw5UkhDR3V4d1BPdVRTbTR6YjFLSng5czZO?=
 =?utf-8?B?dXZoTWpuNjJEdFlraW9Cdmw1UVFCRWx0amUvK0I4aFlwVVZVaURzazZWYmtX?=
 =?utf-8?B?R3FFbTJZL0lnMEJlOUNkNW05Q3NoRjJ6L3VTZzB6d3UzOXVDaVV3aUJyUGdh?=
 =?utf-8?B?cXpCZEdURkU1a2ovMEcwSllzWWgrbDgwbXlWQms5RTU4cG1jMHIxb1A3d1VF?=
 =?utf-8?B?WGZ5Si9EaTI1VG50ZTJVMDdTSmF3bkptWUdHYzJrSDR4eWZHQm1OWS9yWncv?=
 =?utf-8?B?M2lwZzVQelJqLzVIMEUwY3RmSEFjL08wVDZYMHhXNXJkdExVSjloSFgrWUcx?=
 =?utf-8?B?V29sWXpFZGpVOXdWRkJSM1FvUzdjOC9USkFNbms0UW82Q2NqWlh5dXZ6MHln?=
 =?utf-8?B?MDRJSm90VjJldVMrWXp5NU9maVBnYmpFem5VM1VtUzdqaGlpaTN3RTZTV2Yy?=
 =?utf-8?B?Y29hMDhUS1Y4RVNuVjRMcW8rV0NTc0V1cmVJQkx4WkNpYWJxL2VqRXdSWnhG?=
 =?utf-8?B?TUFocC9UWEJMaGtoKzVFb3FmWkVFMWQvVGdaUmlkaEtyWE5iVkpXUmptQmda?=
 =?utf-8?B?VkQ4RnlBL0JjSnhEQ3Y0WW8xQ0VSVWdtRFpaOC9SYWVmd1ZteXF4d3NKVUJP?=
 =?utf-8?B?cnpnTVkxU1dkTE55SlBpSDlieW9BT1FFR3BVV2dtdGVhcEVZVlJ0M1BMM1ZC?=
 =?utf-8?B?b2xRUTZ1QjZJMFJGdDgyWmZIMjd6U05QVjc5SFVZNWg2ampPQzRQd21qUTZ6?=
 =?utf-8?B?aVhHZmQwTGhLdFFyMkRUMXRwd21DVHZxNzFkZ29GMEo4VDVJa0s2K212cnZt?=
 =?utf-8?B?akhRUGR2N0hQVzFxUU1SYXJHb09INmFRYk1WMFByN1g5ang1MTh4SHNoZTlS?=
 =?utf-8?B?TjRZbGVrb0dPNUNjSkE2RDBxc0RiSzZuYS9HZFJ4cDdhV045ZzdmemM1NW4w?=
 =?utf-8?B?Mk5HL3poSUpubVdaUFdGaVNFTWlzcFlLN1FmWWxaWm9EdTJndWZYdUl3QVlS?=
 =?utf-8?B?K3N1RVhoRkNKd1g1SWRSVEk4QXA2ZG9CZTM3SlRLZk9ucytLN0ZNeWpMcXZk?=
 =?utf-8?B?MmhGTFo3aU1lc1FOb2hqbXAra2hWcVd2T09xTjUyOGRyWk1GQXEzOVMzd2t0?=
 =?utf-8?B?bHU4L1laTFpiWE5YN1F0a3F1ZGlLTFhqMEFXV2g5b1FuSUV3U1NBY21zUXE3?=
 =?utf-8?B?Z1lqdnVNQnBYOFp1bCs1L24xWUlEVUNiKzhkWjIvRm1nNmo5UGlNVzNLZDhK?=
 =?utf-8?B?WVlTcU9ITHZZdlgyMWVKVzlaQWMrSnJHeGlJUHJjQjBJS1YzV1VqSHgybzIz?=
 =?utf-8?B?aGVST0Rtb0cxOG9LYS9ZYndJYmQ3V3ZsR2VNQjFsV3E1UWJlZTIzbG4wTWg1?=
 =?utf-8?B?R3JzV3dCcHQ4UzlxOXFtN1hiSUt2VXE5aHYyNWhtencrL3p5RU9mekNLZ1VO?=
 =?utf-8?B?WjUwMGVBdjRXSlFJWjJxanZ0Q0M0WE16bzlSeW15Y2hiRGxTRi9GT21md2g5?=
 =?utf-8?B?UFJMY3U1cE1BaHZZVm5XTUNqQzUrMmY0Z1BjL3hDOFZrOWpLWXdMcUtQZit3?=
 =?utf-8?B?eEhJVGhlNU5FV0MraXZDWE5TbzY0MWlJaU1rSmxCeVFiVXRQZmZsd1NIVEpF?=
 =?utf-8?B?N0kxWVF6Mm1JNFhaSTRZYXBQdDAvaytORkczdmxhd0p2SWdqMGxHTmtsOVI5?=
 =?utf-8?B?bUl2RDJLZXl6dm9mZWIvakExL0R3UDZGUnVuMlg5QjkvU3VLcG5RYkdQczZU?=
 =?utf-8?B?UGd1ZDFBQ04wR2JBYW45VWdncXJVaUpuZnlKV0N2WDUvWm55OWpua3BZV00z?=
 =?utf-8?B?YzZrUDNvWFFwMmVXU2p3eWUydFZudlAzeEFPU3orRWZRSkdCR3ZSeEN0RnJw?=
 =?utf-8?B?bFh3SXFGVmN5TitnZk13YThJaFZqYXZucFZVSzQ3RHdGeXhMclRadFRUbEhT?=
 =?utf-8?B?RGd3ajhNZ0dKQVdpTDVVZ2hvMEdxckJZVkpOai9QVDVDdEszalNKa255QU9h?=
 =?utf-8?B?ZFp6OGh1MGg4LzlQQ0Nucm9TUU5PQnllRitJa0ZocGQ5NGpESTR5QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f3cf859a-3e2d-42f6-04cc-08de6d6cfffd
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:06:45.4207
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: MyQkJ16btJ206AB9+pDqP3alft9FP0lL52QDQmotnFMcQb3DGtjEZRBLMefLCDBGf8TDqd7iLRnhUX6i6999mQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5688

On Wed, Nov 26, 2025 at 11:31:46AM +0100, Jan Beulich wrote:
> Nothing hypercall-related needs setting up there. Nor do we need to
> check whether the idle domain is shutting down - it never will.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> For vmtrace_alloc_buffer() adding the conditional may be questionable: The
> function checks d->vmtrace_size first thing, bailing immediately when it's
> zero (which it always will be for the idle domain).

Oh, I notice this now (after having written the comment below).  I
would then add a comment rather than the extra check.  And possibly an
ASSERT(!is_idle_domain(d)); inside of `vmtrace_alloc_buffer()` after
the vmtrace_size check.

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -427,12 +427,6 @@ struct vcpu *vcpu_create(struct domain *
>      v->vcpu_id = vcpu_id;
>      v->dirty_cpu = VCPU_CPU_CLEAN;
>  
> -    rwlock_init(&v->virq_lock);
> -
> -    tasklet_init(&v->continue_hypercall_tasklet, NULL, NULL);
> -
> -    grant_table_init_vcpu(v);
> -
>      if ( is_idle_domain(d) )
>      {
>          v->runstate.state = RUNSTATE_running;
> @@ -440,6 +434,12 @@ struct vcpu *vcpu_create(struct domain *
>      }
>      else
>      {
> +        rwlock_init(&v->virq_lock);
> +
> +        tasklet_init(&v->continue_hypercall_tasklet, NULL, NULL);
> +
> +        grant_table_init_vcpu(v);
> +
>          v->runstate.state = RUNSTATE_offline;
>          v->runstate.state_entry_time = NOW();
>          set_bit(_VPF_down, &v->pause_flags);
> @@ -450,7 +450,7 @@ struct vcpu *vcpu_create(struct domain *
>      if ( sched_init_vcpu(v) != 0 )
>          goto fail_wq;
>  
> -    if ( vmtrace_alloc_buffer(v) != 0 )
> +    if ( !is_idle_domain(d) && vmtrace_alloc_buffer(v) != 0 )
>          goto fail_wq;

There's an existing issue here, the usage of fail_rq is wrong here.
It should use fail_sched instead.  However I wonder whether we want to
move the `vmtrace_alloc_buffer()` call inside the existing `else {`
branch of the is_idle_domain() condition, as to avoid this extra
is_idle_domain() check here?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:09:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:09:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234255.1537558 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0Do-0004xu-JL; Mon, 16 Feb 2026 15:09:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234255.1537558; Mon, 16 Feb 2026 15:09: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 1vs0Do-0004xn-GO; Mon, 16 Feb 2026 15:09:12 +0000
Received: by outflank-mailman (input) for mailman id 1234255;
 Mon, 16 Feb 2026 15: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=Fs8Y=AU=bounce.vates.tech=bounce-md_30504962.69933313.v1-5066572243034d21a92e9fbd6e222e04@srs-se1.protection.inumbo.net>)
 id 1vs0Dm-0004xf-HK
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:09:10 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7127173b-0b49-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 16:09:09 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fF5lR4ctPzPm0PmZ
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 15:09:07 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 5066572243034d21a92e9fbd6e222e04; Mon, 16 Feb 2026 15:09: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: 7127173b-0b49-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771254547; x=1771524547;
	bh=MNh9V4qzhn2ZOOkfvPZMwx5Ld1KsvgvSoYa8cKgDe8M=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=AvXpHF0kTk6Uhw1AQ/kcv+N/GJyi05LRRWj6cENq0a5PAN9xfuntGvfutNxpVG4Ud
	 OjLVQiAQBOfIdXxBlVNtBX5K4WFPWZUjTnBr+daBpXOhjJPwJRX3q7x70ywnVlG4s8
	 A2xnQrC/2ets+RTwkvF4/zp/j7bvH6s4kQvSN4X3q9g6VF1Z5cwCVlryExSor9EgZ3
	 wOMQsDBPwz/N96bMDEEmyu5qrZdSk5i3kH7LeD+OEMgBjFF9LtKN4UZ1mon1McrDTp
	 pCDwHT7ro+jvONFA8vlHsB+1hegVMoZQ4dw3+5bFvVUEQRNaaPU5nM9S7vCMxLivR1
	 NPZE4yOlRQHqA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771254547; x=1771515047; i=teddy.astie@vates.tech;
	bh=MNh9V4qzhn2ZOOkfvPZMwx5Ld1KsvgvSoYa8cKgDe8M=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=I0cAxBS+QqRl/lEqnvZKVDVxpBCqLLYpsjYfXPGDbuPQQdqU89D3cfwdjeAPoCi+U
	 YOpiwuPMLV01LNR4bba9/w2Fh0FvYpMZSNJOLDGG5wd2UvIBnNwG0Pu2WlBE14YLsm
	 LnaYvrGyJMy6vJzqmzBEwB371hC/4IuhzA4Oog3Tn6Cq7HtXD1a8xRVU5RcXExwuHm
	 7zJk66cwi3sHo4thwJhc+kU1wK3x496cvkoIhnLoX4uZe36B4W4nLqaybTRzxA4q5w
	 NY5IcXXV7uhOSLuLx9b/OllmX1Mvm+V2FTbdKwLDITY9eW7CAk8dsCLgLgngNFVrCW
	 U40aTdDsR7Eog==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH]=20x86/platform:=20Consider=20PTM=20for=20exposing=20package-related=20MSR?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771254546639
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>, "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <e7b1721097bd7abd975882f60b282cf7900db58d.1771254439.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.5066572243034d21a92e9fbd6e222e04?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 15:09:07 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Package-related MSR is actually gated behind "PTM" CPUID flag rather than
"DTS" one. Make sure we check the right CPUID for package-related MSR.

Check for either DTS or PTM for MSR_TEMPERATURE_TARGET.

The only visible difference in practice would be that EPERM would now
be reported instead of EFAULT if we tried accessing the package MSR on
a platform that doesn't have it.

Amends: 615c9f3f820 ("x86/platform: Expose DTS sensors MSR")
Reported-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/platform_hypercall.c    | 5 ++++-
 xen/include/xen/lib/x86/cpu-policy.h | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index c6c5135806..a52fed3bd6 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -89,9 +89,12 @@ static bool msr_read_allowed(unsigned int msr)
         return cpu_has_srbds_ctrl;
 
     case MSR_IA32_THERM_STATUS:
+        return host_cpu_policy.basic.digital_temp_sensor;
     case MSR_TEMPERATURE_TARGET:
+        return host_cpu_policy.basic.digital_temp_sensor ||
+               host_cpu_policy.basic.package_therm_management;
     case MSR_PACKAGE_THERM_STATUS:
-        return host_cpu_policy.basic.digital_temp_sensor;
+        return host_cpu_policy.basic.package_therm_management;
     }
 
     if ( ppin_msr && msr == ppin_msr )
diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index db8d035589..d9d57e932a 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -132,7 +132,7 @@ struct cpu_policy
                         :1,
                         :1,
                         :1,
-                        :1,
+                        package_therm_management:1,
                         hwp:1,
                         hwp_interrupt:1,
                         hwp_activity_window:1,
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:20:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:20:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234268.1537568 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0Oa-0007gQ-Ie; Mon, 16 Feb 2026 15:20:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234268.1537568; Mon, 16 Feb 2026 15: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 1vs0Oa-0007gJ-Fi; Mon, 16 Feb 2026 15:20:20 +0000
Received: by outflank-mailman (input) for mailman id 1234268;
 Mon, 16 Feb 2026 15:20: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs0OZ-0007gB-OP
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:20:19 +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 ff9b04db-0b4a-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 16:20:17 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-436317c80f7so3596542f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 07:20:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d8334a8sm482769535e9.12.2026.02.16.07.20.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 07:20:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff9b04db-0b4a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771255216; x=1771860016; 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=YqPJRfAuuc4mR7oxi/5rCForRC4R+jusPwWyInbjJ4E=;
        b=OYnCIVRk1mzoH5mA6M74wrPj6LipdrHKQCttNatxbo6aaQhccxR48jUGFcZrziS0Gl
         ipjGeGboBP3gp8/RPWbG8xgUflzSc2lEZ9Cyy4/fvOzEl1+jOg+TnU1jpbx2sCpoXVsk
         AVRuGvxkiUDCbtuNTf8JBo/LEbAJACFR4BdVuk1QnwMHQlxYS2V94KKKNA+rgQmCt7sQ
         Bgh53NeDgoe4gMokp1znb+4h6LOE3tAuehILUoCyGqM2/WGrmUZm+QKK0QEbTlPzX0tj
         r0Xj1dbqJ2wXvi6qPV4A7gHtSeXQX/xkVYJP3vO0XpgN6Nqs4BUmlI9YQdpFagN2bZYi
         FT2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771255216; x=1771860016;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=YqPJRfAuuc4mR7oxi/5rCForRC4R+jusPwWyInbjJ4E=;
        b=jp9of5e3plgxDk63VXa9ZQTSsB9AP77/D/+iSq9G6yrOyayLK/MGJMuZeclgclGZQX
         XkMlTZmQdeeLVEu7vNbuee+CpaVZp5hCPn9Yp9ZaPzxGnUIUKHrfn/9P3pF/y+p8vbs3
         Ih8qHTeyH6fufQqtgi2jXQWfDWa1j/2P1AHNOLyQmoPZRsb/2lqJz9OgTRS23QSdK6OL
         mxGClCYQLr5JN6bt8qJxr5on5jAs5JVvw0b6oV7nLpCwWWcDW0kfB+zwMg2OoRTYUEGN
         upz5Fhu8QO6s72R4XBNigb//YWiIdgMCyAJLKXr4pF30yHuaNMiW/oteALOHtEIUkQmi
         Ekeg==
X-Gm-Message-State: AOJu0Yx5a3HW8dMoSvBTWLm5TH5qt2CiQOslwmXMf/e2burLSwxZcCsm
	yIG6/jf0TSxbir6eb3VYolcDEVtHmrbD3O0w9J1tFHGofE/jbZDijwxxVTIT+QIj/OQW214pxoN
	4NEM=
X-Gm-Gg: AZuq6aK/sgIxpPZddFc4a/ZVOhPOpFSy40MxhNREULYPIPoq8L1w26fh93hwkfZPSb6
	UG2nnCXZBquTXkVf3jcxTvthDrqkv2segsHfNnlKX1Q+AphGloVTsHFhxZtfAOMdml6ieyTnYaT
	kE5I4AZt72uerGxf4+4/f069Ks7FnVnX2GaH/AGUkr/gP8qDifv/gzrVgAgU90CgvXTAA6U2bR0
	VM8rFkeFnQhiC4Lnl6UC3q+yTUwZbziTWQvQY58Kojg/q6uuXgl1/WuZ4P5iLpxbIX3oLClTsTQ
	g0YGm/a2yp0IfMeO3NIqtDQODJyYuSOf+LQGCA2gPO08OYSjd4SJAEPsvHpRnd92mJ1s7xg5GGD
	KRdcF+5cmYK4GGc8wgIvVuHULOm6WSIwKj4cqRgH6oO4P/lUTG2NXPrdYhegTxd6CpMbPg7IW8l
	Qc1pYSjEsa4ygrdIiNGVSVzH09frgUrhztc6TSOPUZBxMLE0+znLirLx6QoWeYoSArtnOQqnzrr
	JX/AisZxvs7n9A=
X-Received: by 2002:a05:600c:468b:b0:47e:e981:78b4 with SMTP id 5b1f17b1804b1-48378d9ccd4mr148844955e9.12.1771255216335;
        Mon, 16 Feb 2026 07:20:16 -0800 (PST)
Message-ID: <1d898900-1072-4ea6-ac4c-1262905cab29@suse.com>
Date: Mon, 16 Feb 2026 16:20:18 +0100
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: tighten translate_get_page()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Permitting writes when the P2M type says "read-only" can't be correct.

Fixes: 1661158723a ("xen/arm: Extend copy_to_guest to support copying from/to guest physical address")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
What exactly p2m_ram_ro means on Arm is unclear: The comment next to its
definition says one thing, its use in get_page_from_gfn() says another.
(I remember raising this point before, i.e. it feels a little odd that the
ambiguity still exists.) The patch here assumes the comment is what is
wrong.

--- a/xen/arch/arm/guestcopy.c
+++ b/xen/arch/arm/guestcopy.c
@@ -44,7 +44,7 @@ static struct page_info *translate_get_p
     if ( !page )
         return NULL;
 
-    if ( !p2m_is_ram(p2mt) )
+    if ( write ? p2mt != p2m_ram_rw : !p2m_is_ram(p2mt) )
     {
         put_page(page);
         return NULL;


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:29:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:29:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234277.1537579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0XM-0008LH-Cr; Mon, 16 Feb 2026 15:29:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234277.1537579; Mon, 16 Feb 2026 15:29: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 1vs0XM-0008LA-8p; Mon, 16 Feb 2026 15:29:24 +0000
Received: by outflank-mailman (input) for mailman id 1234277;
 Mon, 16 Feb 2026 15:29: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs0XK-0008L4-P9
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:29:22 +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 43af359d-0b4c-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 16:29:20 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4837907f535so21016725e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 07:29:20 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d82a4afsm816242135e9.11.2026.02.16.07.29.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 07:29:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 43af359d-0b4c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771255760; x=1771860560; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=r0r/gv63b+F/1y4hzeaB7Qza8hG14SCQCXFgHh3+wwY=;
        b=IHze7VIjqFu647KxluSGxYXueJfnkmgT39FBIwrvv//KHcTpu83Nxsuig8DfE8gyT4
         0Qm7KZ4qc0BCUvnJ747WfHz7Z1f+7/WLjGkd+JjHU47JruD4aB4pbqFjEHdf8SN3aHG4
         s0ROEyTO4j7laJ8tINWgrEGp2NzQlZFl5nXRfUnOGD+0Mb26qPGfv76mqEgC4rIjH2w0
         3rHK3aZTejTQ0wKHA6X8GduuE9ai7ZMTpJdU5UoFCTgcUZ66nBbUnJGUmTFkHlErBoDA
         v5G8dYVOQHJb250219rTc2I2btR1mSphzM/kaUpm+7eRlFEBsNrsyPpk1wxZpQAQ1ZKy
         eG4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771255760; x=1771860560;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=r0r/gv63b+F/1y4hzeaB7Qza8hG14SCQCXFgHh3+wwY=;
        b=vZqzKClV0uhLBL8wvaN7yREyDVBfNZyRsgVQhfWNaAHfWMojFAhnMW78pkViJfL3LL
         F3HLUj219ct1/7iU6eY/m/A5TkJN4ro3nPKPwgeFp7QrZZTG5DBSlKf0yZiw+RSFNKMZ
         xKM1NLGjvRbOlcdlfVt5zT69MCHt69VJ0f5I+xkSsdMjAaJPzSiuVJDkwNAaZSYvNNZw
         y9O8HXAPL+T/aQHnieEURPs7jMEVIaC4bs/SB4gTgFziTlsxjRLbcmYmko/795TVlFhc
         CJBmRBnzg8zofxTzxSkPfEAXyaAxN8Nra2VLouJlc6V3COJTq2rZXdihloHTrScvN/YV
         ivVw==
X-Gm-Message-State: AOJu0YyQG8FK+MLnWayJkQQbXWy5ExeYX4tixzQhtErPsheOLLcZUooz
	x77uk7P1CsxGhckyd4znEGTsmWQaUlPfIfBWbM670zJTDQkMKXXPVXWUkTsARmYFWw==
X-Gm-Gg: AZuq6aLuaOUjyjH0QD8x5zTQ4t6A+E/Nz/2QvVB5B6csvsf4vMt6NvKP7cmzqZ0dwVx
	tgAd+MVpt6xC5e/y6Edu3m8lH1xBaj9tfdFJDoJvHaHJU+1Zb+4wLPU/HKe1MvTLblnOYSRbqoX
	FxCkzsuIGe0nie5//aflzrDBeDAmKnVS/Pr47L6WCAYygX58monMi+SPDVbaw60pGDc7ZLJSJ2S
	4vWdjsi255+UDDUrczb+utj/Lt+l6epvIURo+/J7+a/VclHOXNG5SDDWZv35sP8oQ07bguZSqgK
	wTEwrStOqownpYItU1+H1rgw4Nblb0b3Jw2bZb6106paxyfu/6iwVXqhLFmHO/ZDkX864BTxBL6
	rZfqjhaFFkh9/ZBLiicj+r80e1mvlmmKIpMh7hRavbeYIlCbnjh1WjnX+89ZEqKRYSO2L0bhcel
	ndunc0DK7u/EkAkYjfTMscMWLkGWTsE9sJM8lRTeFS4oXIu8VsXO8UNWrB6BDnQF94xUmKymr37
	a6DQ4/IQ/kmhCM=
X-Received: by 2002:a05:600c:6814:b0:47e:e78a:c834 with SMTP id 5b1f17b1804b1-48379bf4788mr132573435e9.34.1771255760109;
        Mon, 16 Feb 2026 07:29:20 -0800 (PST)
Message-ID: <df5faf48-57bf-4b9d-bdfc-5be5896d798d@suse.com>
Date: Mon, 16 Feb 2026 16:29:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: skip more stuff for idle's vCPU-s in
 vcpu_create()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>
References: <b010c8ad-afcf-43f4-b273-fdb43ab641ed@suse.com>
 <aZMygcKLwGQiNZu1@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: <aZMygcKLwGQiNZu1@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.02.2026 16:06, Roger Pau Monné wrote:
> On Wed, Nov 26, 2025 at 11:31:46AM +0100, Jan Beulich wrote:
>> Nothing hypercall-related needs setting up there. Nor do we need to
>> check whether the idle domain is shutting down - it never will.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> For vmtrace_alloc_buffer() adding the conditional may be questionable: The
>> function checks d->vmtrace_size first thing, bailing immediately when it's
>> zero (which it always will be for the idle domain).
> 
> Oh, I notice this now (after having written the comment below).  I
> would then add a comment rather than the extra check.  And possibly an
> ASSERT(!is_idle_domain(d)); inside of `vmtrace_alloc_buffer()` after
> the vmtrace_size check.

Hmm, we could move the call anyway, as you ...

>> @@ -450,7 +450,7 @@ struct vcpu *vcpu_create(struct domain *
>>      if ( sched_init_vcpu(v) != 0 )
>>          goto fail_wq;
>>  
>> -    if ( vmtrace_alloc_buffer(v) != 0 )
>> +    if ( !is_idle_domain(d) && vmtrace_alloc_buffer(v) != 0 )
>>          goto fail_wq;
> 
> There's an existing issue here, the usage of fail_rq is wrong here.
> It should use fail_sched instead.  However I wonder whether we want to
> move the `vmtrace_alloc_buffer()` call inside the existing `else {`
> branch of the is_idle_domain() condition, as to avoid this extra
> is_idle_domain() check here?

... suggest here, thus dealing with the wrong label use at the same time.
Since this change will want backporting, I guess I'll move that to a
separate patch, though. (I don't think I'll bother with adding an
assertion in the function.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:35:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:35:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234289.1537587 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0cr-0001aB-23; Mon, 16 Feb 2026 15:35:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234289.1537587; Mon, 16 Feb 2026 15:35: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 1vs0cq-0001a4-VY; Mon, 16 Feb 2026 15:35:04 +0000
Received: by outflank-mailman (input) for mailman id 1234289;
 Mon, 16 Feb 2026 15: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=NroF=AU=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vs0cp-0001Zy-7x
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:35:03 +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 0ec7dc4b-0b4d-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 16:35:01 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4834826e555so34132445e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 07:35:01 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abcda5sm31383738f8f.19.2026.02.16.07.34.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 07:35:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ec7dc4b-0b4d-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771256101; x=1771860901; 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=zBxKfcg8pVasy8HYtpey60MAh5yReImnQ1GbzKc4/OU=;
        b=W82yuIqA2Lp4M2/tPr389Lkuc4nue8Ec9efHC8kLdrQ/bTiAbxPFlyDQHWaYc1UTml
         2Bsp81ldEH0X13B0pYU5r2Z697A8ecH5YOPDlKgWOKqPYGQdcmWqbb8Iti60jGw3YzCI
         p6SmJafD48/FKBnfTicaX9koEgpcDeu0N+Hm7LHZdhIwg1YNaIZl6f7u+w7m7FcC5hja
         ikoSV+MgQUELgXaEpG9V7DfAPJnLiKtqOM2IHXgJBUxsBVaFTxIpKlm5TFAMKPPRzGax
         iMh1X+1FPl0T7yziSF9ANHyS8O1HYmUAJDiKfFDk54DSyROL2lqnORY03eT/c+9XZxD1
         ZnHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771256101; x=1771860901;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=zBxKfcg8pVasy8HYtpey60MAh5yReImnQ1GbzKc4/OU=;
        b=SvaBa1CxXHyIBRn6EaL36KwZeIWs6+Bbbu6PvbWZiB3hzg9jUXVmZDmsQ0vaLRZQ6p
         vNkN1pmblyoeoiW5kjgwbMnhD+ETaOfT82+NYAbtXyJ+Wq1p7qMshxpwDaJKsOhJl2Hs
         g5GNOA3TMapKxQ41c4TLDPWIFhDt+NW1C9EncAex8PeTxPdHdmAp/+/KFUK13qYsOJBv
         gMHd1Sk4B0ZrfZBBDZlocNUBdl8OFI1kaUXl5wmX54wC+uNwPnH7xorShC9ukMhsQzUZ
         mkMhboUc7bbZL+cduiRXBPeJbyx1rL9SnAZCg4WGZSkbJ9InAOgTP+KMVXBfOMbUDxYe
         Dd5Q==
X-Forwarded-Encrypted: i=1; AJvYcCV0C7kKj/VQL594Q8g9fJ2atOUa99xCfS+DyNxIOzpygBF7uycuPMuqz21WdeMNoISYeaveJ1FEbKU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywi6JBCn8DSx2qoBzTfxlkZlLH2JkFm68qMCjhqwPTRkfzwM0qA
	Sm9BEKre+uPXWq8Q55mYjR2FJzTHqxEFaeJGjPc3BcLgxEJIs17QMNvi
X-Gm-Gg: AZuq6aIhOE38ZydYXTixuLHqU2+MjXWqnM2nmZwto78cOSyBJQtVtqvSzH5vIXebM2s
	8P9PwzmUTqpTQWqneKiVSeD5Cb14geKAq32zhJ7Lj8ha9hH+HnJontolhqrb2pC17iXngRSlWdS
	XWYMvdqj+undaWc4aTbY/wYc6riCqquDJyWxqnrZzFOC7C3sJj1k/AioZ4llWLOQK4UFC9XYw76
	ZZ5i0tgIveD6PvwjVCyNMzwy8FWfTYV6009N05oTGttU61AnR2PYvT7/tAN7ZeS7l6RkoVjlb72
	T9q45JTiqwJKQ4oDQpt3lyGb5D18eqpAJ017xXw0EJZDAqwAcMx+Xv9bFov6wmZh7eeg9pb8AXI
	7RzXRJc9Q2Ik5MLZnQKTDggVt9YlA7bDK795j0iqN3dAo0v0qsiZqLCrq8qXm+jXi7yEniay2M1
	hnY6njJTMTsEQtVjnwNm4KBhRzBllYQwM9KWv9QLFV4YDH3lHXofK7/dX5c5IM3eJXDGgHTrp81
	k8=
X-Received: by 2002:a05:600c:3483:b0:477:9b4a:a82 with SMTP id 5b1f17b1804b1-48379c0fa40mr144398725e9.35.1771256100576;
        Mon, 16 Feb 2026 07:35:00 -0800 (PST)
Message-ID: <f4400580-65b8-4dc2-a11a-443840bcb162@gmail.com>
Date: Mon, 16 Feb 2026 16:34:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
 <0f7e5a73-a574-4aa2-80c7-b45d08b9d6b0@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <0f7e5a73-a574-4aa2-80c7-b45d08b9d6b0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/16/26 12:50 PM, Jan Beulich wrote:
> On 13.02.2026 17:29, Oleksii Kurochko wrote:
>> Introduce helpers to manage VS-stage and G-stage translation state during
>> vCPU context switches.
>>
>> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
>> switch-out to prevent speculative VS-stage translations from being associated
>> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
>> required order.
>>
>> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
>> only when required (e.g. on VMID reuse or generation change).
>>
>> This provides the necessary infrastructure for correct p2m context switching
>> on RISC-V.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in v3:
>>   - Add comment above p2m_ctxt_switch_{to, from}().
> I find these and other speculation related comments problematic: You can't
> prevent every kind of speculation that way, yet all these comments are
> written as if that was the case. What I think you mean in all cases is
> speculation using the wrong set of page tables?

According to the RISC-V spec:
   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

Based on that my understand is that the following code could provide an issue:
(1) csr_write(CSR_SEPC, guest_b->sepc);   ...   (2) csr_write(CSR_VSATP, 
0);   csr_write(CSR_HATP, guest_b->hgatp);   csr_write(CSR_VSATP, 
guest_b->vsatp); As IIUC speculation could happen between (1) and (2) 
and we could have some VS-stage translations connected to SEPC'c of 
guest B but with address from guest A page tables. So just to be sure 
that such isuse won't happen I wrote a comment that first VSATP, then 
others CSRs then setting hgatp and vsatp for new guest.


>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>   
>>       return get_page(page, p2m->domain) ? page : NULL;
>>   }
>> +
>> +/* Should be called before other CSRs are stored to avoid speculation */
>> +void p2m_ctxt_switch_from(struct vcpu *p)
> What interaction with the storing of other CSRs would be problematic?

Please, look at the reply above.

>
>> +{
>> +    if ( is_idle_vcpu(p) )
>> +        return;
>> +
>> +    /*
>> +     * 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 what will be done in
>> +     * p2m_handle_vmenter().
>> +     */
>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>> +
>> +    /*
>> +     * Nothing to do with HGATP as it will be update in p2m_ctxt_switch_to()
>> +     * or/and in p2m_handle_vmenter().
>> +     */
>> +}
>> +
>> +/* Should be called after other CSRs are restored to avoid speculation */
>> +void p2m_ctxt_switch_to(struct vcpu *n)
> Same question here.
>
>> +{
>> +    struct p2m_domain *p2m = p2m_get_hostp2m(n->domain);
>> +
>> +    if ( is_idle_vcpu(n) )
>> +        return;
>> +
>> +    csr_write(CSR_HGATP, construct_hgatp(p2m, n->arch.vmid.vmid));
>> +    /*
>> +     * As VMID is unique per vCPU and just re-used here thereby there is no
>> +     * need for G-stage TLB flush here.
>> +     */
>> +
>> +    csr_write(CSR_VSATP, n->arch.vsatp);
>> +    /*
>> +     * As at the start of context switch VSATP were set to 0, so no speculation
>> +     * could happen thereby there is no need for VS TLB flush here.
>> +     */
>> +}
>> +
>> +void p2m_handle_vmenter(void)
>> +{
>> +    struct vcpu *c = current;
> Can you please stick to conventional names, i.e. "curr" here?

Sure, I will do that. Also, then I have update in some other patches the name of similar
variable.

>
>> +    struct p2m_domain *p2m = p2m_get_hostp2m(c->domain);
>> +    struct vcpu_vmid *p_vmid = &c->arch.vmid;
>> +    uint16_t old_vmid, new_vmid;
> Nit: No real need for a fixed-width type here?

It could be just 'unsigned int' or 'unsigned short'.

>
>> +    bool need_flush;
>> +
>> +    BUG_ON(is_idle_vcpu(current));
>> +
>> +    old_vmid = p_vmid->vmid;
>> +    need_flush = vmid_handle_vmenter(p_vmid);
>> +    new_vmid = p_vmid->vmid;
>> +
>> +#ifdef P2M_DEBUG
>> +    printk("%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
>> +           c, old_vmid, new_vmid, need_flush);
>> +#endif
>> +
>> +    if ( old_vmid != new_vmid )
>> +        csr_write(CSR_HGATP, construct_hgatp(p2m, p_vmid->vmid));
>> +
>> +    if ( unlikely(need_flush) )
>> +    {
>> +        local_hfence_gvma_all();
>> +        flush_tlb_guest_local();
>> +    }
> Why would the latter be needed here at all? And if it was needed, why
> would it depend on whether a VMID roll-over occurred?

I misread a spec for the case when implementation uses two TLBs: one that
maps guest virtual addresses to guest physical addresses, and another that
maps guest physical addresses to supervisor physical addresses, that it should
be HFENCE.VVMA, but it is written that HFENCE.GVMA.

So flush_tlb_guest_local() should be dropped here.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:45:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:45:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234303.1537597 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0n3-0003La-0H; Mon, 16 Feb 2026 15:45:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234303.1537597; Mon, 16 Feb 2026 15:45: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 1vs0n2-0003LT-Tx; Mon, 16 Feb 2026 15:45:36 +0000
Received: by outflank-mailman (input) for mailman id 1234303;
 Mon, 16 Feb 2026 15:45: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs0n1-0003Ka-5n
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:45:35 +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 875100d6-0b4e-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 16:45:33 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4806ce0f97bso25368435e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 07:45:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d834ebesm468472425e9.13.2026.02.16.07.45.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 07:45:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 875100d6-0b4e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771256733; x=1771861533; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=798rAHpGH5DZ4XCkVDqae/CKLFRMsWZE6+vuWPbPGaA=;
        b=MnqxWlr6QU7GKt6M/wyOsWuhtVE749O7TkF8H///FESmS5hFV8yiGbbiFPHzJhOoDo
         uFW0Rj0+GKb2N3oJPKCIa0mxkXGRE8tEsxjAssr0mVlzLGhngU3aZxx5I2KG1gcsGgx+
         ixMQndW4Z26bCXN7Be/bq+VTE5HsiliIpiQKoPCbgP6HblFPj24D5sfEg/F/XkzvJQ6y
         +gqn/V//aP2KXDfpfc3weK0rVa2XYZmBZmcvXn0kTX89IlfMY9VqcGZ0X70aF/23mK6O
         xXmFO6TEZOcfFfo/9HaHES5/bG/ECkZ/1xUy3tTtk00mtuiEH8G9ePEsoNSMUIs8oDpi
         Xofw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771256733; x=1771861533;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=798rAHpGH5DZ4XCkVDqae/CKLFRMsWZE6+vuWPbPGaA=;
        b=u3nucANzOvfFvegYKFUBwCtRmGQH3Tpmz2h/beLVlbgYsV4VV2+Gtlo2ooqowacfGe
         LZkscbU1XvFdMa4EL8cHTuZaQOEhFphh4NTMZIiOy7UosLMOT/AnwDR3ZTug2akHgOmt
         WFNXIFoioSlytwjlGBP1eJ7gavqsG+Asn04guFtl9VFTNGB5pyV91aYUbn9xlgGQeoYO
         Qddqo9FKANMzhnmwQwMZ7XUU88xusi0beH97phmD3uYgbjgXdQhXYqcjgrXoST1Pfzsm
         GvzlIL/BXtvrQ9Yi3Lo8wqvmK9FN8B3PsO7snF82ytdeMVRj0wRR+ea/jdw90RbhQ0PW
         njBg==
X-Forwarded-Encrypted: i=1; AJvYcCW2hyyfJ+p2UEIH3mZ8djkPhmCQ11TFO9xDsuzgQS0O71Itym00AAzeZlXXS5R9w4ZPhEeq1G0veDo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxuR+HhOl49m+UBeWWPLlVYHRgmOkGRvCLBsnPhNoqxyDNaWf5N
	DmRa+HRaZ7htiZ4SSSrmUfrdB4eZG199mUXyKgZnmdgLUJAIk8IpLH4Cm2aqw20Mjw==
X-Gm-Gg: AZuq6aL6/pK9HfIZANZ4vubFEoFjgwX0YJmD0qG6kOUDUr6DtvoDo/M1Wz6KjMGI0hD
	NUNcVW9ie+t0oRsm0eXEZlTIYG7M/waVOHVD4cz3gKrhUY0tux7qh/WuCMpNJRo4lm7SDJCXF6O
	i34ux62eeN3bUlIGJNAtWos8S8mI/FeKEFSefDXUP+ZUKMDCq70GVdnUPQJBfu1eOwa6+rmUSf9
	rDGToCJ11jCWWhCZkWqL9SYwZwpYyAAj79zCxw3AP2GuoQuNAPllVc8Wv5xKnoElWi2OoYlI4z2
	STUrlJ7z0sMjJ38CELjSmFseIWZo2E7BmlLAgvXivWSJKvX49aP62nQnUXq8QAfHYi9NP927UQ9
	b+/LW34BPi3XP4UjJ5EvoCi4eijE1eZzdfRjcbUkKUqD5Oysbo+fMkRqHrfy0RevaZ9gSXW0UOx
	WmTxbYAMCTRO7+5ggiw1FMIbyJk66i5mx+ds2aBhp3nooymoSMirFklc3tNYZfouzc4avIjLkxE
	g4r2iSX/FJdz5uzRDnhA1XJnQ==
X-Received: by 2002:a05:600c:8b25:b0:47a:7fd0:9eea with SMTP id 5b1f17b1804b1-48373a16109mr204211895e9.3.1771256732558;
        Mon, 16 Feb 2026 07:45:32 -0800 (PST)
Message-ID: <cf7c146f-ab1c-4574-ab2b-e0d96ea80db4@suse.com>
Date: Mon, 16 Feb 2026 16:45:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
 <0f7e5a73-a574-4aa2-80c7-b45d08b9d6b0@suse.com>
 <f4400580-65b8-4dc2-a11a-443840bcb162@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: <f4400580-65b8-4dc2-a11a-443840bcb162@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.02.2026 16:34, Oleksii Kurochko wrote:
> On 2/16/26 12:50 PM, Jan Beulich wrote:
>> On 13.02.2026 17:29, Oleksii Kurochko wrote:
>>> Introduce helpers to manage VS-stage and G-stage translation state during
>>> vCPU context switches.
>>>
>>> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
>>> switch-out to prevent speculative VS-stage translations from being associated
>>> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
>>> required order.
>>>
>>> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
>>> only when required (e.g. on VMID reuse or generation change).
>>>
>>> This provides the necessary infrastructure for correct p2m context switching
>>> on RISC-V.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>> ---
>>> Changes in v3:
>>>   - Add comment above p2m_ctxt_switch_{to, from}().
>> I find these and other speculation related comments problematic: You can't
>> prevent every kind of speculation that way, yet all these comments are
>> written as if that was the case. What I think you mean in all cases is
>> speculation using the wrong set of page tables?
> 
> According to the RISC-V spec:
>    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
> 
> Based on that my understand is that the following code could provide an issue:
> (1) csr_write(CSR_SEPC, guest_b->sepc);   ...   (2) csr_write(CSR_VSATP, 
> 0);   csr_write(CSR_HATP, guest_b->hgatp);   csr_write(CSR_VSATP, 
> guest_b->vsatp); As IIUC speculation could happen between (1) and (2) 
> and we could have some VS-stage translations connected to SEPC'c of 
> guest B but with address from guest A page tables. So just to be sure 
> that such isuse won't happen I wrote a comment that first VSATP, then 
> others CSRs then setting hgatp and vsatp for new guest.

This reply doesn't address the point raised above, it also ...

>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>   
>>>       return get_page(page, p2m->domain) ? page : NULL;
>>>   }
>>> +
>>> +/* Should be called before other CSRs are stored to avoid speculation */
>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>> What interaction with the storing of other CSRs would be problematic?
> 
> Please, look at the reply above.

... doesn't apply here, but ...

>>> +{
>>> +    if ( is_idle_vcpu(p) )
>>> +        return;
>>> +
>>> +    /*
>>> +     * 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 what will be done in
>>> +     * p2m_handle_vmenter().
>>> +     */
>>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>>> +
>>> +    /*
>>> +     * Nothing to do with HGATP as it will be update in p2m_ctxt_switch_to()
>>> +     * or/and in p2m_handle_vmenter().
>>> +     */
>>> +}
>>> +
>>> +/* Should be called after other CSRs are restored to avoid speculation */
>>> +void p2m_ctxt_switch_to(struct vcpu *n)
>> Same question here.

... it addresses this point.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:52:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:52:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234314.1537607 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0tF-00052Q-LL; Mon, 16 Feb 2026 15:52:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234314.1537607; Mon, 16 Feb 2026 15:52:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0tF-00052J-Ii; Mon, 16 Feb 2026 15:52:01 +0000
Received: by outflank-mailman (input) for mailman id 1234314;
 Mon, 16 Feb 2026 15: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs0tE-00052B-CI
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:52:00 +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 691d7379-0b4f-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 16:51:52 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso49922645e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 07:51:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a21cbesm131157855e9.5.2026.02.16.07.51.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 07:51:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 691d7379-0b4f-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771257111; x=1771861911; 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=Sf0ltGRVLvfI7yHqoX7gifHUKoRDWrHBbWORd5IiUys=;
        b=Lu7A327EyXYwF+/FkqA/5ETWn0EGTiiUaeHEZQQIj/i1l+XnaB5AOXqx0KE07ASDGL
         00a+QiqZAedpegb5fgdcnjhkz7ysSCw8dzEytrKOXSxcxrbb6kc4WTk2E8BTpL8AXNXn
         r0Loz0IyBzfAZNaB3kqgwLUU0eZ/Ebq7+HI9pQGy4FxsYpG+8MWTPWEZFz5AbCF5VOX1
         pm4ReDhfvS40j/B4nbS2MXdtDbgtUkDLs7oBpPVYU4GxsF+G699+tXy7j0THdEcieWHa
         julSzawNd4n9dxK9TEx83Uh+iInmhjLMDLb0jiDFvRASgB+ATePcmxjQee25iC+f/ZGn
         5S7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771257111; x=1771861911;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Sf0ltGRVLvfI7yHqoX7gifHUKoRDWrHBbWORd5IiUys=;
        b=CtUCNdurceKnrq+4EUQypHmhgfB9yTnKhGhIxv9kI3Y+lX9J3UoT3UJyK0Yiw+TVbX
         KcCTI0CAum/5SHeRtxTInC09OqsAaAOB6ulgu8xyNDW4ecSHN+VlM47t6zTGrdXFoJTd
         2tSV/2Xqhcwp2gkD5wvvQOIjhkoBl3fwp7gHJm1ayWGHU0vkQZRnzP1xR8JhsFLEKA2A
         P4+SAUmfJgu6fIAXvDX7KttAYC8NYkLcS+cqzd3pJFUVv+z3JE9bRSE0aeYzIIvbBYv4
         QCRrrmAjxssQ+7/JO3/X42NkV29z3B3A5S1Aclr0vr1qPuPdsRIJZ4eXAg/OpBsluHqc
         i4tQ==
X-Gm-Message-State: AOJu0YyGg4ETj1+g4N7mhzU6lnz0hVH7BGjUnYqHqNv16wFyPxV5/Da4
	leWdtrsDtIzijLVUywzYDhIHs6Ma+OZl5kHN1ByyYDeIr4oGhX9Kdvd9YWWGbSW1U0KOnqdoEwO
	7fVE=
X-Gm-Gg: AZuq6aL+HSDGC4eokPj7Ds6CBa7AMLxKoueFd7g3QdAKYpyn3svHImncg7DRzrlEpkJ
	ystUdtX/0XUTpVqzWP97sA2Eh56xjQY7UgmxhX+IBpdM3Li86hhG0VkRb7OkX191FP8An5dfHpa
	IJEOPHUS50B0ZQ8QLaMzaDhUUQttTJ5ZlifbuhuXdZ4DUgd+mQ+32ajJ5F/SKGyQNQMmiCPS2iK
	JF/z+w2AJ0cpKba7OUad1Q465ecI2DYZCOAU6+0sZId0P+0LHr9jTtsft1KyKc0s80dVMRmH5KR
	hCxpzVUrw4FtZ8uMkZiytsjxaV7WkOcF/Y6USamGfYiW+uMvuQH3Skl6lEd/R4VCHGnPfuQvq+z
	O0It0i4etneyGQ/X2HDxO0G/0YjA4EGgGeq9iZya4EFXGVNTTsWCO5ko2Fxx5DRPU9hgaRnHB94
	MpflMjjCgbL1GdKIk48o999zOY/yGRnGaMk9cCRZtXA3ogZmswrl7cnR6kM9LlzcSPd4HVeDPIm
	8rLB88XsjRkYtA=
X-Received: by 2002:a05:600c:4f8f:b0:47d:333d:99c with SMTP id 5b1f17b1804b1-48378db0cd3mr149471145e9.18.1771257111281;
        Mon, 16 Feb 2026 07:51:51 -0800 (PST)
Message-ID: <528578e1-6374-4fd0-9f67-0769afd2e1c6@suse.com>
Date: Mon, 16 Feb 2026 16:51:53 +0100
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] domain: move vmtrace_alloc_buffer() invocation in
 vcpu_create()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The label used upon the function failing is wrong. Instead of correcting
the label, move the invocation up a little, to also avoid it altogether
for the idle domain (where ->vmtrace_size would be zero, and hence the
function would bail right away anyway).

Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
Reported-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -493,14 +493,14 @@ struct vcpu *vcpu_create(struct domain *
         set_bit(_VPF_down, &v->pause_flags);
         vcpu_info_reset(v);
         init_waitqueue_vcpu(v);
+
+        if ( vmtrace_alloc_buffer(v) != 0 )
+            goto fail_wq;
     }
 
     if ( sched_init_vcpu(v) != 0 )
         goto fail_wq;
 
-    if ( vmtrace_alloc_buffer(v) != 0 )
-        goto fail_wq;
-
     if ( arch_vcpu_create(v) != 0 )
         goto fail_sched;
 


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:54:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:54:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234322.1537618 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0vg-0005Zs-19; Mon, 16 Feb 2026 15:54:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234322.1537618; Mon, 16 Feb 2026 15:54: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 1vs0vf-0005Zl-UP; Mon, 16 Feb 2026 15:54:31 +0000
Received: by outflank-mailman (input) for mailman id 1234322;
 Mon, 16 Feb 2026 15:54: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs0vf-0005Zd-7M
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:54: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 c6a91eca-0b4f-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 16:54:29 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-43626796202so3077908f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 07:54:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6a5e5sm26539933f8f.9.2026.02.16.07.54.27
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 07:54:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c6a91eca-0b4f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771257268; x=1771862068; 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=NyH/rUNMvNUadAFEpknBN6fqSUoRpgmi6qmV19jk/sM=;
        b=TBjmDyyCOozfFb+c7R2Gj6sRZJHPFP7yHeyagflZPRGBsPXd1vrDrH2WfC5p/bcgI1
         TK9aSYcGKjZnqLhXVM3f3zlGYt1Oin9OBJUXoSSRwaciIFScDHtayAw2NAfGuv9kOrxV
         LASNXW7xb2h0iD2dVxGyrhE2zqS2b5wGUsUnU8IThKuNg8UWYTzjLz6286PfkNjvkNGo
         QoNXyFYv0Ox2pegArTYXnzqGR1+gNSOF11BwEW9HBfH683T/5YHWcS/IYbPwr8nyE4m0
         NkNaKxFZ7GmCokjIXEsmpfKKx7r6PqU7nAzq4Zc9PAMDUXlzlvf55fEQFzvxyH3J2aYi
         fBFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771257268; x=1771862068;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=NyH/rUNMvNUadAFEpknBN6fqSUoRpgmi6qmV19jk/sM=;
        b=d28oQ0WVWWOjIs1Z3eJsILtn9k73t9Aj8OKQk1/nFTtB4fWgvVB4Cfn3L43VoDroOL
         XaAQt49VUYwYW9CWVf7W3LYxTlp89HFQa+cUGMYu+Hy5Er070f8F9FGZ7X/WSiNHUdNo
         rjoP4acfXCzAB4oHzc+OecPkQC/FhgPyipUYIY/S8zIhkB+3rL+gzkEY8q56zl89Ks5i
         n0ZySOVetkQkSoaaX0JWI3tffWw+/L2vid33Y0nEYNwp85cTJJf5TIDAgM77s5r6TmpR
         NmFBvaw0bEcNJg8rong6SnNyOSlJMuCvHpcC4xnV5gUEMK7p9aLQtyk3zW2sW1t/0M5/
         SWag==
X-Gm-Message-State: AOJu0Yw9RDIP8lNr5bVgdEUWJC9A8mTyN4SRkd/tdpqACHHG+XD02Ien
	Dq4TfV3XA6t3X2FZh4OS+f9hlbgDAInld6BuKAHchgAWbtREYPCA+XQ+582KomCC+P5l8+7Xuz5
	W6Qs=
X-Gm-Gg: AZuq6aIpTn28WaEAkGpZuVQwkgROg3/1eaJlmwS8UfOq9MjPpzRSEkn2YXTqADrZmJl
	jUjAJclo7JMUWfKURcFuVIbr3B1Woe1vGYkiyDzZUHDYJZW7yhANGaWiU9XhdW/f6uKTm9S/CBj
	1yW5aShYHaZtsdd9v/ctfZSg2UI/6eXfwvD/siuCxU99u8u+YZOo8e1Mxb/nv3RnuJlSDgDb+yN
	/TSYvXXxVmxlF4JuTPhIA0Q80ym0zFuwZI6yqigxI0r89P9EJPulS7PvscmwTrHawJsAQNAzkaz
	nxtO+Z6Ch9dSQ5fQCsHD6GDID2q9ekw8VcsHsn2jvhoCtUlnKVlKwglhUeqoMWgFI6L1pUcCh/C
	AJq9vkBBOIx4uWRgPoB5cDYQ1BE8ubgqrW9DydtVQwpbZq7irOhkmVFAhKsyTI2OipHZQJl9EaK
	ublLXsLFhOQMoN0lmFXjTGxI9SQ9Yepd9m3JZMav7CcOJJKnPPZHlGkX2NkQp9KyAvIOCxVP6gP
	cEkdS9xAqzwGNM=
X-Received: by 2002:a05:6000:40cd:b0:437:75c1:5777 with SMTP id ffacd0b85a97d-437978d197emr17113673f8f.16.1771257268336;
        Mon, 16 Feb 2026 07:54:28 -0800 (PST)
Message-ID: <c0aef909-b294-40af-8d24-033b28450338@suse.com>
Date: Mon, 16 Feb 2026 16:54:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] domain: skip more stuff for idle's vCPU-s in vcpu_create()
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

Nothing hypercall-related needs setting up there. Nor do we need to
check whether the idle domain is shutting down - it never will.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Drop vmtrace_alloc_buffer() part.

--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -475,12 +475,6 @@ struct vcpu *vcpu_create(struct domain *
     v->vcpu_id = vcpu_id;
     v->dirty_cpu = VCPU_CPU_CLEAN;
 
-    rwlock_init(&v->virq_lock);
-
-    tasklet_init(&v->continue_hypercall_tasklet, NULL, NULL);
-
-    grant_table_init_vcpu(v);
-
     if ( is_idle_domain(d) )
     {
         v->runstate.state = RUNSTATE_running;
@@ -488,6 +482,12 @@ struct vcpu *vcpu_create(struct domain *
     }
     else
     {
+        rwlock_init(&v->virq_lock);
+
+        tasklet_init(&v->continue_hypercall_tasklet, NULL, NULL);
+
+        grant_table_init_vcpu(v);
+
         v->runstate.state = RUNSTATE_offline;
         v->runstate.state_entry_time = NOW();
         set_bit(_VPF_down, &v->pause_flags);
@@ -516,7 +516,8 @@ struct vcpu *vcpu_create(struct domain *
     }
 
     /* Must be called after making new vcpu visible to for_each_vcpu(). */
-    vcpu_check_shutdown(v);
+    if ( !is_idle_domain(d) )
+        vcpu_check_shutdown(v);
 
     return v;
 


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 15:57:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 15:57:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234336.1537628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs0yj-0006HD-ID; Mon, 16 Feb 2026 15:57:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234336.1537628; Mon, 16 Feb 2026 15: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 1vs0yj-0006H6-F4; Mon, 16 Feb 2026 15:57:41 +0000
Received: by outflank-mailman (input) for mailman id 1234336;
 Mon, 16 Feb 2026 15:57: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=NroF=AU=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vs0yi-0006Fa-1v
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 15:57:40 +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 37cb7dc7-0b50-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 16:57:38 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-43590777e22so2021885f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 07:57:38 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1b4sm26294174f8f.14.2026.02.16.07.57.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 07:57:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37cb7dc7-0b50-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771257458; x=1771862258; 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=z2QbYMgoGKU0CkKm8Tw/2r+d757fwnV/mMyLBtG5Du8=;
        b=NynLeF24LjzmcGr0A5oR6UFHsVQc4bvDnluX7tVv/kA+14nMdpxahxDPkUnNLtlNM2
         Gkh98jwYo4lq9bUvPyG+q8Zk63EqlRTuz4FfSfJ6fHRrWtiCzPefIoFCrlOOLFyn7lJc
         mLnS4Ds2KaoukrodG0y+l9Lk/aXFDK/1tLTuvq7Ze1Yi34nThRGPTdf79fvf7+lid3Nw
         4YrROb7ctgHi1c2eXJdExlD1b8jqlMTC6g0//ICLxXadwyoA56NoCn/tDKRXhRg4VxrD
         bPxfn75yRkZFUrQgBKPypsmaJnJakYx94Tz6QgrF96m95Z+Is9aa11pZZBJvo2YGjDj8
         qRtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771257458; x=1771862258;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=z2QbYMgoGKU0CkKm8Tw/2r+d757fwnV/mMyLBtG5Du8=;
        b=BWXiAsHJwWIa9KAyx/GhlBH47A5ZEjJ3UugVAbj5CVUoVkctv/9sGRBOxww8jZ1Evc
         rVbcJ0IWr75RtXU0mbdlr66bLrsekz9G27GRXOZRxdcpbffVhEv8xiqB+N8/I1RFgPnH
         C+rmhj+DfuBO1KqFX6dBaEuG1NGITpIbVtcDMXYVhB2pTG0vvkCAD0U+xk8WBCwYg7SO
         a+4lgH/2LqTRCTq8eVsU29zKtZYFLJX/yknyl9Hg9XEZIpT8XnfhYhvI2QOtP+G8c6yN
         sArRnX1xib5iGogft0T+E+fQrwmWkCrYh/CpwyEyCZbjW7ppYM/aOe5iq4QHhs7Yzuv4
         ZZGw==
X-Forwarded-Encrypted: i=1; AJvYcCXrVQUJKwhhNdpSRQgWzk4PMSFDNbJj1BwTNRc34GMfW4ZvrLEPW7msN7XyrKS3nEEnp6hNIprL8U4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjdE5nqa/QZ3fUIhiuq1vtfGuD3KnDLfjO4yVovHDujUQfSYWF
	8PtzYNgoeVpYEa2sAHmge5BQoxWzmpguPns59DVEgRAQadrKkuyg7MLH
X-Gm-Gg: AZuq6aK6Ko+aJSk+FB3P2gv24qFjPU2OJZiRIrKcH+/GQ+obycmSs8gejbp998RlEsN
	c6b8sBmprvYk4VBs9aO7M1P3fd3onBD/MaI+jInuIzorvn2roDrmU5hsMcD63yL8uCe3P3MYO1r
	QuW0lrGY8IiC1cXhPTb0j5CQVIa6Jo5F0oQGa8MfYxdCbRIO6Mrf/V82qMCpv/ZjRFOGrnEQmvC
	r8F1SF0WnA0RyoHy0hKR1Ns7tDT62DJEsm0e38r/B05zyPgBXvQ9PDMTrl+XyRyjKPRkeFD8RiT
	0bTaOa6oEdzSuJ4VyYrOtOK3K6qFVjToE292obg2A6PoLn7HvJv2spHL7J7kVUwcTPAO1/+sm4J
	fMWXqA8uYHarWAJoMga3ZVlNP4jSYxkbeTxOgZwEp347KRSiPPih3gmeLm2LfL4Z6p0ylgrVpJN
	Pwy0nFpANV2JK6WzT3PEYZi5aX0bf4aEVvHt+e2bqaTkFyXEqTH6ius88ZKm7JnFrwt3JvYNicM
	9I=
X-Received: by 2002:a05:6000:230b:b0:437:71cc:a246 with SMTP id ffacd0b85a97d-4379db25d3emr14184983f8f.10.1771257457956;
        Mon, 16 Feb 2026 07:57:37 -0800 (PST)
Message-ID: <f43f99f6-a9cf-4217-953a-f1f449194e6a@gmail.com>
Date: Mon, 16 Feb 2026 16:57:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
 <0f7e5a73-a574-4aa2-80c7-b45d08b9d6b0@suse.com>
 <f4400580-65b8-4dc2-a11a-443840bcb162@gmail.com>
 <cf7c146f-ab1c-4574-ab2b-e0d96ea80db4@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <cf7c146f-ab1c-4574-ab2b-e0d96ea80db4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/16/26 4:45 PM, Jan Beulich wrote:
> On 16.02.2026 16:34, Oleksii Kurochko wrote:
>> On 2/16/26 12:50 PM, Jan Beulich wrote:
>>> On 13.02.2026 17:29, Oleksii Kurochko wrote:
>>>> Introduce helpers to manage VS-stage and G-stage translation state during
>>>> vCPU context switches.
>>>>
>>>> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
>>>> switch-out to prevent speculative VS-stage translations from being associated
>>>> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
>>>> required order.
>>>>
>>>> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
>>>> only when required (e.g. on VMID reuse or generation change).
>>>>
>>>> This provides the necessary infrastructure for correct p2m context switching
>>>> on RISC-V.
>>>>
>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>> ---
>>>> Changes in v3:
>>>>    - Add comment above p2m_ctxt_switch_{to, from}().
>>> I find these and other speculation related comments problematic: You can't
>>> prevent every kind of speculation that way, yet all these comments are
>>> written as if that was the case. What I think you mean in all cases is
>>> speculation using the wrong set of page tables?
>> According to the RISC-V spec:
>>     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
>>
>> Based on that my understand is that the following code could provide an issue:
>> (1) csr_write(CSR_SEPC, guest_b->sepc);   ...   (2) csr_write(CSR_VSATP,
>> 0);   csr_write(CSR_HATP, guest_b->hgatp);   csr_write(CSR_VSATP,
>> guest_b->vsatp); As IIUC speculation could happen between (1) and (2)
>> and we could have some VS-stage translations connected to SEPC'c of
>> guest B but with address from guest A page tables. So just to be sure
>> that such isuse won't happen I wrote a comment that first VSATP, then
>> others CSRs then setting hgatp and vsatp for new guest.
> This reply doesn't address the point raised above, it also ...

Okay, then just answering on a question above directly - yes, it is about the using of
the wrong set of page tables. (what I tried to describe in the example above)


>
>>>> --- a/xen/arch/riscv/p2m.c
>>>> +++ b/xen/arch/riscv/p2m.c
>>>> @@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>>    
>>>>        return get_page(page, p2m->domain) ? page : NULL;
>>>>    }
>>>> +
>>>> +/* Should be called before other CSRs are stored to avoid speculation */
>>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>> What interaction with the storing of other CSRs would be problematic?
>> Please, look at the reply above.
> ... doesn't apply here, but ...

Probably then I misunderstood your question.

Technically, it wouldn't problematic to write CSRs in any order (even we can ignore
setting of VSTAP to 0), but it will (at least, based on example above) lead to that
we will want to have TLBs flush.


~ Oleksii

>
>>>> +{
>>>> +    if ( is_idle_vcpu(p) )
>>>> +        return;
>>>> +
>>>> +    /*
>>>> +     * 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 what will be done in
>>>> +     * p2m_handle_vmenter().
>>>> +     */
>>>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>>>> +
>>>> +    /*
>>>> +     * Nothing to do with HGATP as it will be update in p2m_ctxt_switch_to()
>>>> +     * or/and in p2m_handle_vmenter().
>>>> +     */
>>>> +}
>>>> +
>>>> +/* Should be called after other CSRs are restored to avoid speculation */
>>>> +void p2m_ctxt_switch_to(struct vcpu *n)
>>> Same question here.
> ... it addresses this point.
>
> Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 16:14:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 16:14:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234347.1537637 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1ES-0001F3-R9; Mon, 16 Feb 2026 16:13:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234347.1537637; Mon, 16 Feb 2026 16:13:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1ES-0001Ew-OT; Mon, 16 Feb 2026 16:13:56 +0000
Received: by outflank-mailman (input) for mailman id 1234347;
 Mon, 16 Feb 2026 16:13: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=feiu=AU=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vs1ER-0001Ep-3i
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 16:13:55 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7c7df79a-0b52-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 17:13:53 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 76AA98111991;
 Mon, 16 Feb 2026 11:13:26 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c7df79a-0b52-11f1-b163-2bf370ae4941
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: teddy.astie@vates.tech,
	roger.pau@citrix.com,
	jbeulich@suse.com,
	jason.andryuk@amd.com
Subject: Re: Re: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
Date: Mon, 16 Feb 2026 16:10:11 +0000
Message-ID: <20260216161023.148269-1-abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <f06b7e86-4188-485b-8f0e-c55bc72929e5@citrix.com>
References: <f06b7e86-4188-485b-8f0e-c55bc72929e5@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

On 16/02/2026 10:15 am, Andrew Cooper wrote:
>So what happens to the NMI we're trying to inject when NMIs are
>currently blocked?

Ah, I see this...
The handling flow will eventually land on the function svm_enable_intr_window
with HVM_INTR_SHADOW_NMI. The logic inside the function svm_enable_intr_window
will drive it to create a vintr and set up the VMCB to intercept that created
vintr. I see that the code logic in svm_enable_intr_window should be extended
to skip creating such vintr and just return the same as the handling with
Event injected NMI when the GENERAL1_INTERCEPT_IRET is already set.

>~Andrew

--Abdelkareem


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 16:14:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 16:14:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234362.1537647 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1Es-0001hr-2c; Mon, 16 Feb 2026 16:14:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234362.1537647; Mon, 16 Feb 2026 16: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 1vs1Es-0001hk-06; Mon, 16 Feb 2026 16:14:22 +0000
Received: by outflank-mailman (input) for mailman id 1234362;
 Mon, 16 Feb 2026 16:14: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs1Ep-0001Xs-T1
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 16:14:19 +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 896e6271-0b52-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 17:14:14 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-4359249bbacso3622809f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 08:14:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6ba57sm22699464f8f.15.2026.02.16.08.14.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 08:14:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 896e6271-0b52-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771258454; x=1771863254; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=coHgrgY5IkPSqFC6CH6pZyqKY701uCf0QQjaz8AjGTQ=;
        b=aCIvMunfpNwA9gr1aDKQffDyKliWMf1anKxHfy2fXRE4ZJ6aAdXJDhLsa3SJ4ZS/B5
         Wjwd7voyfWZCdzuZINRsNtvaqAVVP1ANAM+y6aMIY2miPETb94aGKiKbGJQD3RfPeYRg
         b6pwFRDS1001BvRNcEmDyfYWuV0AeAg2ySDXv1ANNGtw/shyr2W0xfavdcp8ajoCylQl
         dLQO3TA1+iU9PaZ6Jiw6B2bOHlIgyBU/nTxkNs+q//ts/Ah5wTHEP0Kou1TR3Vg5hdmx
         CJuFONzIqlH5mYbbBGrEKxwdJEPbbPd/xQIpAsQUds2GW2idznwFQLPjt+FHnymoSY0W
         C4gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771258454; x=1771863254;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=coHgrgY5IkPSqFC6CH6pZyqKY701uCf0QQjaz8AjGTQ=;
        b=AU243lNLY/IR28ubua+M4K8cCkDz3aDVEg+whlOsZ9gF/1iOtJgbklbBq5kM1RvqIC
         OzdE3tBz4LV0lChlFm9yM7nLURIVsUPFi7mt5RfcZ69eVHlP9OfL2Z+U0zZ4XPUMwK16
         5RF9XeoTTpoZ+Tu8APPE7grgml8X7F1tdzRWaenfB0BHObR1/jOE0rjrBXR6iz7dEXuV
         NqYU24BENCZEaRP4ldjnr7gCjjs3s1PYZP7jHhvC/cSAKpxxVJhxTEVFbCoIl0RLqh/d
         ZD8q5aW11u6Ne8jRdRlLd76uizhL9imWJT+kjO6aNUQx9awKAg0mEm9lXBPYwU7kUj8d
         xjjg==
X-Forwarded-Encrypted: i=1; AJvYcCVnu3OlEkxFduNNn35vrB0+ZXs4b2xCBcGxbf7jWpSnl8HJmrrrkonrSID3zIP78yz1snu6hdPET0k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxi4Q3IjC+pD+/1rNoQq6xKg/XQT+b/LJ+nNTDs5cjz1TwKehsP
	7EsbzNhV64iqZ8poAlOH0Du94wpWsNlIbOj9bPlD03sM/EnbzYzFsf6FsZC9tAzynQ==
X-Gm-Gg: AZuq6aIo9s0Hj2BcGmCmi5yTh2+ZcKAxs8+7ttu1WOEG+dLzXWp/j2D+GHgsd+L1b6x
	nJgZLh2EHnAb7OJgeL7M7GbYF/dS8XQi5WJZ1ceyO8y0f3aACy5feGg8cX9ikO35vruzNd5OJg+
	bHZhgH9wYVNTCunUAx7XDdn0mHHLK1cr4amzngGZrm+rskXEQUzA+0kB7oEyJyu4//TzqBPGT6F
	rVZr/ceEtUYoaqRNURxq7q67ZVyZN35VhjJKBTklzQzO+syegthjHEaoC2y0uthscjTJk3pCNHY
	YUOkFE7LLJ/JK0zMAKqCsRfaCoNFtBc3+Bo2Qh81l1jFtUZ6icaUokXMuejp+jJnPDbd/b2J9m2
	yE48cYf502fHkjU3NZh4rQccM3Gm3nw5+VYSj2JO0MCD7n9TgFxjg+/mcJw/nUsj2zmaAOsmU9m
	gyLy+UKxmpxtxDKJ4xpHnSVVVWz66RM+e95g8KMl8uZ96un9pTWrfC+msIXiJ9YsxpSBHjykiyR
	vp4UwmJEjh6FEA00yXlwAAV8A==
X-Received: by 2002:a05:6000:2dc2:b0:435:9538:939b with SMTP id ffacd0b85a97d-4379d5e3c64mr16632491f8f.8.1771258454065;
        Mon, 16 Feb 2026 08:14:14 -0800 (PST)
Message-ID: <2764f432-85eb-44b9-aae9-f1bce410b4b9@suse.com>
Date: Mon, 16 Feb 2026 17:14:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/platform: Consider PTM for exposing package-related
 MSR
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>,
 Tu Dinh <ngoc-tu.dinh@vates.tech>, xen-devel@lists.xenproject.org
References: <e7b1721097bd7abd975882f60b282cf7900db58d.1771254439.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: <e7b1721097bd7abd975882f60b282cf7900db58d.1771254439.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.02.2026 16:09, Teddy Astie wrote:
> Package-related MSR is actually gated behind "PTM" CPUID flag rather than
> "DTS" one. Make sure we check the right CPUID for package-related MSR.
> 
> Check for either DTS or PTM for MSR_TEMPERATURE_TARGET.
> 
> The only visible difference in practice would be that EPERM would now
> be reported instead of EFAULT if we tried accessing the package MSR on
> a platform that doesn't have it.
> 
> Amends: 615c9f3f820 ("x86/platform: Expose DTS sensors MSR")

Imo this really addresses a bug, so wants to be Fixes:.

> --- a/xen/arch/x86/platform_hypercall.c
> +++ b/xen/arch/x86/platform_hypercall.c
> @@ -89,9 +89,12 @@ static bool msr_read_allowed(unsigned int msr)
>          return cpu_has_srbds_ctrl;
>  
>      case MSR_IA32_THERM_STATUS:
> +        return host_cpu_policy.basic.digital_temp_sensor;

As per the SDM this doesn't look right either - it's CPUID.01H:EDX[22]
(acpi) instead. It is the field you're after in xenpm which is tied to
CPUID.06H:EAX[0] (digital_temp_sensor).

>      case MSR_TEMPERATURE_TARGET:
> +        return host_cpu_policy.basic.digital_temp_sensor ||
> +               host_cpu_policy.basic.package_therm_management;

Where in the SDM did you find this connection? (Anything made up wants
commenting upon.)

>      case MSR_PACKAGE_THERM_STATUS:
> -        return host_cpu_policy.basic.digital_temp_sensor;
> +        return host_cpu_policy.basic.package_therm_management;
>      }

And of course with this splitting of cases, blank lines want inserting
between the case blocks.

> --- a/xen/include/xen/lib/x86/cpu-policy.h
> +++ b/xen/include/xen/lib/x86/cpu-policy.h
> @@ -132,7 +132,7 @@ struct cpu_policy
>                          :1,
>                          :1,
>                          :1,
> -                        :1,
> +                        package_therm_management:1,

The SDM calls this PKG_THERM_MGMT; I think our naming would better match now
that we decided to have everything else here named according to the SDM.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 16:20:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 16:20:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234380.1537657 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1Kk-0003Sk-Jn; Mon, 16 Feb 2026 16:20:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234380.1537657; Mon, 16 Feb 2026 16:20: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 1vs1Kk-0003Sd-HB; Mon, 16 Feb 2026 16:20:26 +0000
Received: by outflank-mailman (input) for mailman id 1234380;
 Mon, 16 Feb 2026 16:20: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs1Ki-0003SX-IG
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 16:20: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 5fbe1ec5-0b53-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 17:20:14 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-4362507f0bcso2865287f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 08:20:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abc85csm27891977f8f.22.2026.02.16.08.20.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 08:20:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5fbe1ec5-0b53-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771258814; x=1771863614; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lQjBr09QfvCbkNyDVmbr+LoM2CiKUSLQhkc06K/ULEw=;
        b=Iv8SHGyv+/w/6gWmrmFeZcoVR4x+d642Y6+BO9v8ep2ubZq/KbJ/nnTS6G1ggEZ3Qt
         gANVBXvOChkuCJsqBQVc3vC1NoLdfkwka/BuW/FDZs2AeOiWqzeMKfxnCeX/WJVC9o9M
         VflGrUlxY9LpjR9nvDFZFumNgH6GAVgLbRmEytlamKw78TC92ZhyofeLrociWCjO7LB1
         O2b2IqN6iO2u7wwMsLC2JGrugdr8XxmQoToEYD6c/mybJfUqmazfWCnIFPtf4E40+UdK
         O8TSQ+6Vv/pVQ7+WsZrObdTQm9bvRrAQ+RARaHpQ+aBxrNeVVM3VGX0gTNeAjofdlT5P
         sEjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771258814; x=1771863614;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lQjBr09QfvCbkNyDVmbr+LoM2CiKUSLQhkc06K/ULEw=;
        b=DOWbOHbI8e9Z7Nh1oq4jds222w2GyPJzT7nR5bI3XK2+p2I23AFG2yZ4kYHY/x5JCr
         z0tT4ASMx2Cf5eSU2wGy9INmkUKfjmOU+17X663t7D8jgPZACleagZM/DFITUzTJLPhw
         AkTGlngOeFsaJMDqkT0YeHxRoAtayEUq0LoQRhwx0gfXVBqf6JPKGBdNpTwoxzK2TWYw
         1rFMHazsXTq2dOyapc+DE5q0ymR7vDnGYtcHy0NK3gMFEAeJOKtBbShJTxUBurEM4oZu
         IuVdADFBcwZ97SUZHVkmvcssDpBXsky13fGgEtl5Qq3nOB1VM5vc6P00jG2WtEyg6rRt
         a1yg==
X-Forwarded-Encrypted: i=1; AJvYcCVGO218aPS8Hx2IX/nzBlOZ2uS5NoT/ykhmWTSpgG2dF9V0RI8a2Z2L6/CZ3VOslOItDPE7wT1D+lU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx/CvUWhRggkgpnvjxr5/56AqozRKbO+kbtWFNKdDSQrqT225Lf
	5I5BDSc/GMacvygqWtDuPU4pX2k8NPkEEDrQqHJVGZdMVyEdJMkXBodhAmWDYig3qw==
X-Gm-Gg: AZuq6aJf+0Rf+aAmPIHMwWWxRaKJKppwo6HIt60pPvrKkjeZMClW2ddcBXZvGLevSLV
	pbIttvybRGdsmPJGdfJcAz6PBCAybvLz/mnincuc2B+TgUG2guGVWLuSpCopikBiwqgnde6WHns
	A5oCGUjVmTEVPR/gJECRzUria5GWA10sZoccluQLrWU93WWW0RxAEy5fCpAZdoF3E26bu/OTFaP
	5mWQdvTvsKg5L46s50EtGV/a3QeNc2FaIzgmB2N2JSNgqE9/ScysswgY1bVIwGbljljBI1YsbPl
	bHYA6y1cdaFV+rE9+JAe1Fl4Z/e7t/0wDgnhrq83pD/L3KMkodQoYPyxO4P7QKHbV562rtWBJNB
	zEBgG4MZ28B7oyZnYr4wM0lqANgjbH9pnGJYa6lwEhYnr/m0x0J6hCYWnuhqbRhfg7FyYzuq2z7
	GfI+Du3UJ5Nz8LgdvmuGyF+sRmOAyORgHX+Bgll+AFrT6KUxA1lTfF+LyKva6iNPy1O+ONAib9F
	WVEIDEi35SFbPA=
X-Received: by 2002:a5d:5888:0:b0:435:db9b:5881 with SMTP id ffacd0b85a97d-4379d619f9bmr13848251f8f.25.1771258813557;
        Mon, 16 Feb 2026 08:20:13 -0800 (PST)
Message-ID: <a55d1c35-90fe-4b25-b10d-1ab33d6b8efe@suse.com>
Date: Mon, 16 Feb 2026 17:20:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
 <0f7e5a73-a574-4aa2-80c7-b45d08b9d6b0@suse.com>
 <f4400580-65b8-4dc2-a11a-443840bcb162@gmail.com>
 <cf7c146f-ab1c-4574-ab2b-e0d96ea80db4@suse.com>
 <f43f99f6-a9cf-4217-953a-f1f449194e6a@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: <f43f99f6-a9cf-4217-953a-f1f449194e6a@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.02.2026 16:57, Oleksii Kurochko wrote:
> On 2/16/26 4:45 PM, Jan Beulich wrote:
>> On 16.02.2026 16:34, Oleksii Kurochko wrote:
>>> On 2/16/26 12:50 PM, Jan Beulich wrote:
>>>> On 13.02.2026 17:29, Oleksii Kurochko wrote:
>>>>> Introduce helpers to manage VS-stage and G-stage translation state during
>>>>> vCPU context switches.
>>>>>
>>>>> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
>>>>> switch-out to prevent speculative VS-stage translations from being associated
>>>>> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
>>>>> required order.
>>>>>
>>>>> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
>>>>> only when required (e.g. on VMID reuse or generation change).
>>>>>
>>>>> This provides the necessary infrastructure for correct p2m context switching
>>>>> on RISC-V.
>>>>>
>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>> ---
>>>>> Changes in v3:
>>>>>    - Add comment above p2m_ctxt_switch_{to, from}().
>>>> I find these and other speculation related comments problematic: You can't
>>>> prevent every kind of speculation that way, yet all these comments are
>>>> written as if that was the case. What I think you mean in all cases is
>>>> speculation using the wrong set of page tables?
>>> According to the RISC-V spec:
>>>     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
>>>
>>> Based on that my understand is that the following code could provide an issue:
>>> (1) csr_write(CSR_SEPC, guest_b->sepc);   ...   (2) csr_write(CSR_VSATP,
>>> 0);   csr_write(CSR_HATP, guest_b->hgatp);   csr_write(CSR_VSATP,
>>> guest_b->vsatp); As IIUC speculation could happen between (1) and (2)
>>> and we could have some VS-stage translations connected to SEPC'c of
>>> guest B but with address from guest A page tables. So just to be sure
>>> that such isuse won't happen I wrote a comment that first VSATP, then
>>> others CSRs then setting hgatp and vsatp for new guest.
>> This reply doesn't address the point raised above, it also ...
> 
> Okay, then just answering on a question above directly - yes, it is about the using of
> the wrong set of page tables.

Which is what I'm asking to clarify in those comments.

>>>>> --- a/xen/arch/riscv/p2m.c
>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>> @@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>>>    
>>>>>        return get_page(page, p2m->domain) ? page : NULL;
>>>>>    }
>>>>> +
>>>>> +/* Should be called before other CSRs are stored to avoid speculation */
>>>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>>> What interaction with the storing of other CSRs would be problematic?
>>> Please, look at the reply above.
>> ... doesn't apply here, but ...
> 
> Probably then I misunderstood your question.
> 
> Technically, it wouldn't problematic to write CSRs in any order (even we can ignore
> setting of VSTAP to 0), but it will (at least, based on example above) lead to that
> we will want to have TLBs flush.

Why? Storing the CSRs doesn't alter the values held in those registers.
Taking your earlier example with EPC, storing it ahead of clearing VSATP
will leave as wide a window for speculation as will storing it afterwards.
In both cases the window will close when VSATP is cleared. As per my
current understanding, that is.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 16:29:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 16:29:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234395.1537667 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1TS-0004Jg-ED; Mon, 16 Feb 2026 16:29:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234395.1537667; Mon, 16 Feb 2026 16:29: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 1vs1TS-0004JZ-BG; Mon, 16 Feb 2026 16:29:26 +0000
Received: by outflank-mailman (input) for mailman id 1234395;
 Mon, 16 Feb 2026 16:29: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=aABt=AU=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vs1TR-0004JT-AD
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 16:29:25 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a77940b2-0b54-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 17:29:24 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB6024.namprd03.prod.outlook.com (2603:10b6:208:316::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 16:29:20 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 16:29: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: a77940b2-0b54-11f1-b163-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BOk+R92oLmzzB0/P1Mi61GmVu79F5M14KLRqUAyQFi/U7tKVU1hRI5M73IS/bqHVmzIZ4scHoT6+nBrN4ObvGbCs4UdrAUIdfGqm8K6mKilrjnsoN+8BtpEz4fvWLqUIxO+NdhZnSyTTCRb8SW8fgu1loZQxR0/zQh86+d1PbXx8lqzkLrxQ17LMAi06y4Fy6MOMlZUxrFXF73N1JJHAa+yuq3wpGzDZN9xF4bC+Zzh2aqx8KkeB7RMT88nKyiS1tzPhPOSTvOu27wbxun8rohJ+1wragBsduGGDB46a4wQqzSWTX6yJeN5RTu1d7hPxhLfHzKoiwYrUk5rq3ZJGEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AXMzX5X40VQWza4VCbk3ZN7TzYOwbZqo8WSW4WjSIrA=;
 b=E4+OuqtUxlIHkvPhBfa85vHzAPp1adSMhkGGWPzKVhv2epo4NpDwjVaLqms24K+vH8fs2LRf9CK93iCL66vzHj+7j+hbgJdMzNkyDYfD8jAAlcQlWzuoDLOqdLvSgzqaNvDRU3EMa7fWZhMPdT/gBi//Bqf9oJxCLXPVufavxVgiH0jU1JrJ5QA7rOfEOh8Vs8xoUbLQcxwEGillliN8SKufONsGpvtrSbtl/BIUi2ExD7Yjw4DoqIsOaBEp31BVnBcvAa3HnzaWz2RlfScQhKeufQyeN0d8lHUJTR2cX2GPqPchzbMWDLIvUidlh5bmYnhBZi8T449DnUeHgbj6/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AXMzX5X40VQWza4VCbk3ZN7TzYOwbZqo8WSW4WjSIrA=;
 b=ngx0PALOqi2glHBrxsmXiVeyc7LO6lI0ndppq5BkNNsUEbcGbi0iFYI6iN890JhskIGXawvcMRPk/GgWr7KF+W/waLzVYD4Txvh+m6BQz0qGLCQNB9rAMNFr9AciuFXWj4i1+5YlExHva5huO2DmWWbHgGKca9NAuGGJkIb9OtY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <50c79874-d07e-479d-80c2-7c0694a0828e@citrix.com>
Date: Mon, 16 Feb 2026 16:29:16 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] domain: move vmtrace_alloc_buffer() invocation in
 vcpu_create()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <528578e1-6374-4fd0-9f67-0769afd2e1c6@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <528578e1-6374-4fd0-9f67-0769afd2e1c6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0103.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:c::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BL1PR03MB6024:EE_
X-MS-Office365-Filtering-Correlation-Id: 6767491e-3da4-41ec-de96-08de6d788976
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cnpac3ZIQkxEYmsrTzJMRytlTnIxbEZJTTFZekxxeUZ5clI5VFhMcWliZ1lp?=
 =?utf-8?B?bjcxbU96RWxpMHJKdEJ6L1pteXFZblZxSzFBN0pTdlhSWkd6V3BVZC9SV3kw?=
 =?utf-8?B?Q0dFbmRVVVRld3o2RXoxczdSTTJjMCsxSEVJbmNzdkUrN0Jpd3gyWVlhZnBT?=
 =?utf-8?B?RDAwcnpiVDgwT3RpOU9UOG04QnFkUVRXak5kSE5QMitTZ1hxc2JtTjBleHJT?=
 =?utf-8?B?dVBYNHplc2RCRWpDcGZWeXVYVS9yTFNmUEJFN2xTdGw4RzB6aW5sWXM3eHR3?=
 =?utf-8?B?TE5CVm81clJrbnIweVFNVVlnOXNWYi9qU25hbVYwa0N4Z2hYT1VMa3hBTFp6?=
 =?utf-8?B?czFOL1ZuRHFkOUF4OVZFQURsNHErNTRlRERTKzdmMXkwbkVGVlcwUzh6TkJP?=
 =?utf-8?B?clQ1YW9tbVl6T3NieENoMmJqSllIMGcvamRHdFJ6TyswNFpIdFpvZkxuOHhz?=
 =?utf-8?B?YTdpcmNrQTRVNDlsUlVIdlRwMWcwR0toRlpTQTd0VWl0cjFYN2NCNHVEcDZX?=
 =?utf-8?B?Y2dyaTJGUkQva3NFNVA1QmdLV1FkbEdVbGxhV3ZBa3QxTHlzeFk4T2wzNHhQ?=
 =?utf-8?B?ei92ZjlETU9aWHZMUml4a012eEJhbS9wTTBiUUwvN21TWWpwWDhHTEhmYU1I?=
 =?utf-8?B?eVRLTnhrbUU5SlhLbHZyVjNqclJHMkZ4ZElFVGhWd2d3YUl4VnRHOEV5OXpP?=
 =?utf-8?B?VUZGVjE2MVdmQkxOU0k0OTBDM1d6OTFkQ0EwcFg2Z1pSVjVJUDBXdGczbFox?=
 =?utf-8?B?dmo4ZkM4dS9qbW9LZHpZWURlUC8zbG44RnFWeUpydWxzTzJ5WWFZN2xBVVNL?=
 =?utf-8?B?VWtpZGNDR3VCbkFHOVlhYkZOaWJBcEF6N2R3cGN5TUtwcnhBcTM0SThvNWgw?=
 =?utf-8?B?bk12b2lBcWxLYlpqc2ZKeU9KVlJabDd5MWNkZWRLSzcwMWpwYW8waVAzc1V4?=
 =?utf-8?B?RHRrUi9IYVRiRjhQSHN1MFlReXo3dVk4WlN0UGdHbmo4NEFYeDhkYllSUVdV?=
 =?utf-8?B?VVNKM09OTE91NGduZUFCUkhZWVd5RnFxOU9RYnZxd2VGZHgyNGk5MGN0V3Zu?=
 =?utf-8?B?cUJIYUN0REUyNzJFOS93ZVpqYnJ1b29qSmRib2taQVZoUHNPbjZvTHpDd3BT?=
 =?utf-8?B?QXdGVFFkZ3VUb216RVhtbFRUdzRYemhVdlBBMUt6ZWVab213M2RhUUpnME5H?=
 =?utf-8?B?bUpuKzQwM3hYM1VxM3ZHb2pmMmlKWXJtakdYblpoeWpEQ0RPdmtONi9qdUND?=
 =?utf-8?B?OTY4MUtFT1FJZzVwcW5qS0pnQkpzU0tWY2w1Uis3dkxCUVc0THpYY04zQzY5?=
 =?utf-8?B?ZUh6ZU9ZNy9VUmZGeE5Vai9IZm13MDFsMmk5QVkzN3JKN2M1WCtWWVA3RWlI?=
 =?utf-8?B?QjBUOWlVY1BqNE4xN3BDQUQ5QldHbE43QVhnRjczWXN6SnRpYmFHbXFqcDBU?=
 =?utf-8?B?WU0rMkZiMzU1T292UUpFOStRWHRtaHVFa3RhRUUrb0M0ajFZaFZzK3F6Nzc1?=
 =?utf-8?B?VmtwdFh5K3lQSTk5ZXErYkhRdFhQMGpDcnQ3d0pZcGJmUmFORm1QNU9saVBh?=
 =?utf-8?B?ekkvZkw5S3hndlNZVEh1amQ3aWNuN2lMampjN0ZvRlZiN1pKaGQ1ZHdMT1NZ?=
 =?utf-8?B?ZVd3eUlINUhBaWlYeGNUc0w5TGN3MEducTNFTUlxZzFZcTNRZ1VZYjBQMklx?=
 =?utf-8?B?emxWMmU5QUFXUVpiQWt6MnFBMERiSWQwWUZaQWlNV0xERmxUVjNtUGJCbld5?=
 =?utf-8?B?cnRWSFF5eFBaRVJpbUhDQTNPcndqZ3NFVGhVSlpIY2xUN0NTS3I5Qk4wY3dZ?=
 =?utf-8?B?VURNYTlucjlCNndPY1lLVXBrWmdnZER0d1R3aitMK3VZNWo3bmc4RG9LR2NH?=
 =?utf-8?B?T1JuRURCQmFWL1lmVUxLaDA0eEFSMUR0UFN4a0RuZzAyNlZ3MDB6U2ZIU2JY?=
 =?utf-8?B?UDdjT243MndkL2lTZXdWaUNNMkpQckVBK2crNzdFdVA3U0h3dlUwc2tWcFJh?=
 =?utf-8?B?VTI5eVpTYWpNSTRvbTRVZjREaFgvWVlWNmw0Qm9QSWNmMVg5cUppNXliL3lB?=
 =?utf-8?B?ZXp2VlhMZHUwS3BQTzBJV0x2WVpzZFQ5S0ViZGViTEE4SUFQTU9xZnlJVHB4?=
 =?utf-8?Q?pAI0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?KzJuZERWN1RSV2VjY09nbHFMZXFEUXhLQmh5dlZNdzJRTzZUN3ZZUDdydUxU?=
 =?utf-8?B?R0Y1WDVhNlhyZXl1alJqZFg0M2xWSWh6OE5QNmY2VGRPR0JwcitscnN1ekt4?=
 =?utf-8?B?cCtPT3ZMK1hNSDRGalBwak1qZ0Ivc2poK0tGbFJuNVVrMjhOOEJGd1RzQXNH?=
 =?utf-8?B?dGJGUFdyanc5Z0R3OHlVQ3lMQlNWS1E3L0VwaXdEdEZyM09vVnYwRTYrYU8w?=
 =?utf-8?B?aExpbjRrU1V2UlJBQVhVMGVTMlV2YWozUHh1ejQ4dnNsaTRUK2hpQngydEFw?=
 =?utf-8?B?dzcrYlFIOStSUkpRZHA5TkUwRCs0WTNvUmo4Q0dyeElaY0RLaVhiZ0l1dndm?=
 =?utf-8?B?YzFFcGc3RWJ1T2tldEkyYXd3WU1DZXB1RVhQU1lHejQrMnp0SWgyVnZ2T1kw?=
 =?utf-8?B?Wm5PbktSREdMQVBBVTdLbDUzQ3IzVkpoL0FQL0Nzb0E1TG5Rcjg5NndnSHda?=
 =?utf-8?B?ditHd2swUlhxNlJpU20zS1Uxc2psUElMUzUrb1I4SHUvWS94d08wMk1FUTVO?=
 =?utf-8?B?VkNsQTk0dlkrNGhTUTk2Tk9SM1JLYUlKVFp3MDVJeDk5S0N1ems5YzlySUEx?=
 =?utf-8?B?a3RnK3dESUdNRWpENE1RMEtYWWQwNGNLcHZQTEtnYytHZWErZEt5aWRMR1g0?=
 =?utf-8?B?dU5ESTlQODRPUkFjeHlFU3c2RXppc0x6TnJFOSsyakV3SjdqVTRZcXN5b0Fy?=
 =?utf-8?B?Vm51K2dvcHlKdG1WQTE0TnlaSHBpdzN3b1ZpdHIrYlY1WkFzZUFqYkZXV1Mx?=
 =?utf-8?B?a29ETmpEalB2VCtWemxNZkJNeVlxZVBYL0QrOXNCaThZMVhCUWZPVWRpd0hS?=
 =?utf-8?B?N2xiMDVNeDNvZFR1TkNSQTNFRkhINVlOL0EwVXhNcFhkdnVSZStQRGZNc1Yx?=
 =?utf-8?B?UVdGV3U0Q2lVdURaZmhrb0R5bk00ZTRvV1JrdjhTN2R0SGdoN1RXTkk4TUpE?=
 =?utf-8?B?a1JuMldSVlVHaDdiTGZzTkhSVG1sR2E1MjI3RkZVWWdDNThTdVBCOUNrYWRF?=
 =?utf-8?B?VmppSTJjUitUQ1lTR2xEWCt4cTl1bFI2YU96SmI0RXIvOGpPZ2RXM1R6UEZj?=
 =?utf-8?B?TUF6bnZtdzdDU1JONTVVYnFDWG82cWtGSjZnb2ppbFNrRXkwTkJGWkU5aVpI?=
 =?utf-8?B?OXM4czZabWQwOHNobFNkdFlreVJydzJFc1VPVnQrUU1MbDJIMlZFNjBLWHA3?=
 =?utf-8?B?Mjg5anc5NkkxM1JNU3B6b3I3WVVYM252aHpScUNnRFZqNFV4U2NzVlM0Sjcx?=
 =?utf-8?B?dTZGeUtFUFJ4cHRGbGRLNEZ1TGVpTnBOTjB5RVc0VHpiNThoSDBuL3VLMjZ5?=
 =?utf-8?B?emdsNWh6RFRmT0hoRUh5SHNhNnZGc21NUEhDam5PcUVnckUvL09iQW4vOEdE?=
 =?utf-8?B?VHNmd3pwYnY1NWIyeTZDaUZ3VW91UU1mVHdRRWpuQ2FaaUlWR3p6WWEzcDhN?=
 =?utf-8?B?V0tSRmFxYlRQV1lLc1NBd1dTdmVUblMzZXQ0clpzbkcwanJuWUx2VW56L2o5?=
 =?utf-8?B?Szd0V3pMdDBJbXVJckdCVEtjYU1ESjFuYkMzeUo5dVVLanRuYzJnbmNldEEx?=
 =?utf-8?B?MDJoT1V0UUs3cVBGVFcrekc4LzI5blVRdVhVZStBZU9tM1F0OU5ZRHFBc3lm?=
 =?utf-8?B?TEhCM291eHNjNkxIVGxQTGw2VTAxNHpCNVg5Q2NTZEU4eWRuNFExQ0hkVGdv?=
 =?utf-8?B?VmVHakNNaG5BMHh6U1hDR1VZQlErNWVDb3R4Rzg1Vjk3UFMzVkVRaE50MjFG?=
 =?utf-8?B?cE9BQ3Y3N0duNkhvMWRuVWUwNVdPNkxQcXhkTy9ObjluQ2NQRVEwYkJMVXVG?=
 =?utf-8?B?YndteEFsV2EyVFZIYWlKbTBRbkZ1NkVKVFdhRUhEd1FNSHpaYVdxN2tPM1NN?=
 =?utf-8?B?VndJeHozU3B6emwzYlZPeWx0L2xFV2JqV0ZmSXA3T1RzUk45dVBaMksrSmZ2?=
 =?utf-8?B?TFkyWjZ4Sks1RDdmWWhIcnA0aWY4VytrTEJuMXFDN3VlVC9JTnZ0SE5XdEk2?=
 =?utf-8?B?UkNWQ2x4Z0Q3OVU5cFdJcmRBMlM2RW1SaGVON3ptWnMweTh2YkNLdXZkcTRG?=
 =?utf-8?B?cUNmRnhBWm5GS1ZTUTJkQ3pjSjBESWV0aXk1UGEwdjMwRWEwN1ZvM3lzL3I3?=
 =?utf-8?B?RHQrWUZoZTdKRmlPeVNkL1FiWjNsMWNLTnlrUmN0U2lsVjdtYkdIUUxXc3J2?=
 =?utf-8?B?dk5KQ2ZNK2pJNXl5Y3dvWERsRzh1bzE2ckw3N05EMUEwNk5WcVF1bGc4QmNW?=
 =?utf-8?B?MUt5SlJhb2VuM3lJSy9JWHl6U3JDNXpKUEpuVHBwK1dmWkJDZUJleTIyZlJR?=
 =?utf-8?B?VW9JS0lWb25MN1FyYUZrRWFPNkFiK2toUVNETzN6NEJYelZTUHB2dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6767491e-3da4-41ec-de96-08de6d788976
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 16:29:20.3805
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hLlLbaEnjkKncctrHyUpGcUbAq3/yCyWdPWRstWjS4e8pOZ2mBxVm568mf4WYemqIaLSHioU4OTYVUF7oXKnmWqCzXAzo8g1soDRB6OhcZA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB6024

On 16/02/2026 3:51 pm, Jan Beulich wrote:
> The label used upon the function failing is wrong.

Is it?  Which label do you think it ought to be?

>  Instead of correcting
> the label, move the invocation up a little, to also avoid it altogether
> for the idle domain (where ->vmtrace_size would be zero, and hence the
> function would bail right away anyway).
>
> Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -493,14 +493,14 @@ struct vcpu *vcpu_create(struct domain *
>          set_bit(_VPF_down, &v->pause_flags);
>          vcpu_info_reset(v);
>          init_waitqueue_vcpu(v);
> +
> +        if ( vmtrace_alloc_buffer(v) != 0 )
> +            goto fail_wq;
>      }
>  
>      if ( sched_init_vcpu(v) != 0 )
>          goto fail_wq;
>  
> -    if ( vmtrace_alloc_buffer(v) != 0 )
> -        goto fail_wq;
> -
>      if ( arch_vcpu_create(v) != 0 )
>          goto fail_sched;
>  

The positioning was intentional.  I just didn't get to wiring up Intel
PT for Xen context yet, and tying the buffer to the idle vCPU would be
the obvious choice there.

The chances of getting around to that are admittedly low, so I don't
mind moving the call in principle (noting that this is a wish that
likely won't materialise), but the claim over the label needs resolving.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 16:31:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 16:31:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234403.1537677 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1Vd-0005nd-PG; Mon, 16 Feb 2026 16:31:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234403.1537677; Mon, 16 Feb 2026 16: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 1vs1Vd-0005nW-ML; Mon, 16 Feb 2026 16:31:41 +0000
Received: by outflank-mailman (input) for mailman id 1234403;
 Mon, 16 Feb 2026 16:31: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs1Vc-0005nO-4h
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 16:31:40 +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 f38ea5a1-0b54-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 17:31:31 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-483487335c2so31847735e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 08:31:31 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a10cacsm146572805e9.4.2026.02.16.08.31.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 08:31:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f38ea5a1-0b54-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771259491; x=1771864291; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ES+1mVtv7WgfTU2r/djNzqCycFT73ujDqw5iDNt29/c=;
        b=A9DsuYyTgo5h9BBTCz7xsPtEp4cCX6IFAS0UyfdxzwzBh9zky+2dbgstom99A2hX0P
         pSiUMbflEBhXuNkzeIp3bZ5uK8PBFcaaZnZXuPbOs0AsftmH3MzM8yUG3ZS3tZP4aMuO
         tw64MXJyGYase4Cl4iaN1QCHLq1uVxt4lCcyjeAyEsBPPpwhxYstrIHYJ2JvP7GbBRGb
         V0a/azmo3/QUnx48Toywus5RWQ4EN82yiUPTlb1Xc/qmxtaJ+NML78UG3AcgpYuFJZLo
         aZ2FsumCuMzN68UgcUs02V4u2P7wyU1ruLYN6hjLdycqw4CQp2JHjc2MujlRMjgkwFH8
         VrkQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771259491; x=1771864291;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ES+1mVtv7WgfTU2r/djNzqCycFT73ujDqw5iDNt29/c=;
        b=gg4lHFk4My5UdPeYjJtcGfPhzH6LNDVHl0o0c2PjtTOEHCq3YFcFxDf/Nr7hxn56OD
         n5UqKRFY6tvhH/3T8HYXrhy73ScuWxcN/xBhq4Y7gkF4dIORAH+t4DGa/SGF1zEgdUAL
         U8/vYgPgETlFnzkHgKG4opxFWb5hLDvYwA639ZqR2O4AY5fYZQTeYwED4U4Ph7yMbLXH
         5htCOsMiN10sP6P4eNg2VKapOsrnGLqLfL8wm9eWKmfnGNJrAm4cMZfEMMsqQpXUekMu
         G1oitEJqqzrE8ptPZSlvF+u3WvX+CsiLerGtAGZRLTPIBK076lxbRmPw251L2cjxfH7d
         Y81A==
X-Forwarded-Encrypted: i=1; AJvYcCVhJkd3K1PKihnQUqeWJmLzs3RIbntNzwkCh1Q7JX1xFPmQlbO0Qm9zqQy8XXa9YCiob3WIllyfAhw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYWr5EdkUjNfQ7Wzl0mRKgRj1X59cFUD6cVFwHFQPsRG0HoI0M
	oV1zBaOEXhzeloP1vobPbWs+KtmDENFSrJCsVsuHtZIQnzZn+DkGSYGoP9GGIWTY8g==
X-Gm-Gg: AZuq6aK15Hsi/JyGwHqWmChJIw6XTd74kGGcid/N4pVeQaUv8dsneSQ70NTLPF4zVg0
	5hjsTA5wrCe9HEu+RfZXhZzgViC07TE/Bri7Te1KFLMNBiMUO3pFjV0bdjqtKnr/Vd1AyJtlkvs
	46hvk0INOdqzn/J3zJkiOSbV12kZnbVSFIlmAWIUy4go4eD32Nm8IBNBowJGmZlLGjJlBvGEXpS
	A4UdXdt36mQzEtTJl4ggxl5yJXNR6f97QGzj39gxUnBFIhnFnaFJDDDMDLuvl/heYi+FiApYysm
	xGzy2Ubi/A5YXhvrBrJG7EKeLFehbTOPu82vESTzRLJrUVq2xe0yrryOwFUL1jHhZCRD2mOriT8
	6p31Uf6ODQFCJTTnOb4o6+DcanfW7WvnTEc2EL3Yb4FCt0wTuIU/2pcf80Cv4LdxrBb3p0/UXso
	ieqE3dQoCMQzKF+yYW7bMnHXEL0EZa/8nD7jqIpU02y2CFVZ/erOsW1zVDVSmLJ0jO3tK8Ao3Gi
	EavZXaOO5B2+AM=
X-Received: by 2002:a05:600c:1549:b0:47e:e2eb:bc22 with SMTP id 5b1f17b1804b1-483739fc78cmr198038845e9.5.1771259491127;
        Mon, 16 Feb 2026 08:31:31 -0800 (PST)
Message-ID: <0bca8843-9c52-4544-88a6-87ddb110095e@suse.com>
Date: Mon, 16 Feb 2026 17:31:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/6] xen/riscv: add zImage kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <308c5bc1de15b23c643d48f975799739f44dde8d.1770821989.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: <308c5bc1de15b23c643d48f975799739f44dde8d.1770821989.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 17:21, Oleksii Kurochko wrote:
> Introduce support for loading a Linux zImage kernel on RISC-V.

Before I look here in any detail - where would a zImage come from? I can't
spot any support for it in Linux'es arch/riscv/Makefile (whereas
arch/arm/Makefile has such).

> Note that if panic() is used instead of returning an error as common code
> doesn't expect to have return code and it is something that should be
> done separately.

Is the "if" in this sentence a leftover from some editing of earlier
different text? I can't make sense of it. Also, which "common code" do you
mean? kernel_zimage_probe()'s sole caller does respect the return value
(handing it on).

> This prepares the RISC-V port for booting Linux guests using the common
> domain build infrastructure.

Again, what's "common" here? Not something x86 uses, afaict.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 16:37:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 16:37:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234413.1537689 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1aZ-0006Q8-Bp; Mon, 16 Feb 2026 16:36:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234413.1537689; Mon, 16 Feb 2026 16:36: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 1vs1aZ-0006Q1-7q; Mon, 16 Feb 2026 16:36:47 +0000
Received: by outflank-mailman (input) for mailman id 1234413;
 Mon, 16 Feb 2026 16:36: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs1aX-0006Pv-Ui
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 16:36:45 +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 ad812fa8-0b55-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 17:36:43 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48373a4bca3so17022095e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 08:36:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac800esm29806641f8f.27.2026.02.16.08.36.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 08:36:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad812fa8-0b55-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771259803; x=1771864603; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=u2woNWGSnnr0a2eOMR8D01U6viHPWQ0vb43LrsJDIWw=;
        b=QycB0JWjSHO5LBdGuUPfScSBhMgX6TyX7ASKo8qEJSMvPClNESv2P8EhaBIxG1mAGM
         NwY6YLfiAgLlZqoFIHNqDTxisvidnBh522VEB36o4L9wYEkT/clUAmkU1p3WpdI9C8+e
         4VTQyvoXFjp9zHOG296YJEC/QD0Unqkz7vKoe2dPTGpT5YALdmARiNXpMbdk7JVKa2z9
         TKmlxe24afX9cpeJ8qtJhuK96kxJmJnY40hIC8fi+qjDuUsb3lcTWWXk9RleszJ3HJx2
         U2wCfh5z1NZUAAD+LYz+zryBUy15KpqLE1TB7cFFavMDc6t60TaR2wTPDKsfBtcy/Tc6
         WCYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771259803; x=1771864603;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=u2woNWGSnnr0a2eOMR8D01U6viHPWQ0vb43LrsJDIWw=;
        b=H+7XN14L+NUhyJvVs3+Rspm+k4UOiqFBatFirqABtQLjNACPeZ8nWSc37YoUVvw3Zc
         rSwA3jGk00e5myFfh/+jFFXh0O6+MMfZt84sYkIPmwMoatBMM+mwVGnIL0AwBVjoptcb
         IC0waLIjSgCcgqiVPDf+1b+4Mek5hYC/zmkTK7QihsNl+upOJwolLcC7TLHgEX9DIE+f
         bZh8jZp4QJ8uku+CAkKtwssRibapWWqiL1hSQ4moeCRuE472tXvOJKiqZw9JVK5TOCnF
         BqKbgDznZvF06cKfPLWBFxy8vi610VY93E+YYKEsRPePRqxI/buJYFCIwMvHiZSt+vYy
         phhw==
X-Forwarded-Encrypted: i=1; AJvYcCWBmyBLhqLJJGrfKx0E6gospLX5aKTSX4MLcBvbrYOEGhLEkXUIHPo994neUujUhfaHCVp2ZTWtQao=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVWr0O4QLcrs4YLshecO9wOfCrWu9tnlR81czgtrFWdy8ioyVq
	hbfFBQ8SjSp3/9DeEotR4g3rV2LrrVOj23fDG9IIykWz26vng79e5IX/N1TSgpaEoQ==
X-Gm-Gg: AZuq6aIm1oARFCeZ6nkm6bOLrMHzG+iobVYFwYVjK2EBw0+ooiIhbyE5eEQoC7clXDU
	eFDaXfq6ayBHJjsqjX/nrWzf+pzqaNBB0yu3znNOLLrV3hQxePKmVFzkKlkhvl7GmulTSYbisQq
	n4Wngq9NhqDUyrNpuc1lZZZ1K1VQiSfzT1R3TA7LWUb15LzhsLUmhXMJpzFSR84vMQjVet3pWgO
	G/fa2rZYv6q1pqAGFEnewztAoRhYtwEsFHj6DMGFUF/0dcRbVOp0KHYVqiayjDx3szkU5dyiMx4
	2m2X76l+fdBAGlfoQB8GLEkIriJjQibem9we3edr+6JLw+zxeTtHNpLnmAp1gndqrs2rGFV1pJW
	cPls/abo2HLr9Is8KCJEoOsjDHNVdQAO8SqaYjuutnwHDzsWkz2Cc+UoqMOzAiw/H5QcMKs7qV8
	H5mUH3TL2iNkXPqk95QribbJKZGAiCWVFJ9INr65TI3j65/uvxnW2AKkXcqEyUWL6qsdo5aBjuV
	2puxpPu5Xke9qw=
X-Received: by 2002:a05:600c:8708:b0:480:1a9a:e571 with SMTP id 5b1f17b1804b1-48379bd7313mr143247015e9.22.1771259803136;
        Mon, 16 Feb 2026 08:36:43 -0800 (PST)
Message-ID: <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com>
Date: Mon, 16 Feb 2026 17:36:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.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: <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 12.02.2026 17:21, Oleksii Kurochko wrote:
> domain_use_host_layout() is generic enough to be moved to the
> common header xen/domain.h.

Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...

> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>  #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>  #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>  
> +/*
> + * Is the domain using the host memory layout?
> + *
> + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
> + * To avoid any trouble finding space, it is easier to force using the
> + * host memory layout.
> + *
> + * The hardware domain will use the host layout regardless of
> + * direct-mapped because some OS may rely on a specific address ranges
> + * for the devices.
> + */
> +#ifndef domain_use_host_layout
> +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
> +                                    is_hardware_domain(d))

... is_domain_direct_mapped() isn't something that I'd like to see further
proliferate in common (non-DT) code.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 16:39:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 16:39:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234420.1537699 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1d8-0007Af-OT; Mon, 16 Feb 2026 16:39:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234420.1537699; Mon, 16 Feb 2026 16:39: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 1vs1d8-0007AY-KL; Mon, 16 Feb 2026 16:39:26 +0000
Received: by outflank-mailman (input) for mailman id 1234420;
 Mon, 16 Feb 2026 16:39: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=qFbs=AU=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vs1d7-0007AS-KS
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 16:39:25 +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 0d418b76-0b56-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 17:39:24 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so38074425e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 08:39:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48370a3eb7asm134713045e9.1.2026.02.16.08.39.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 08:39:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d418b76-0b56-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771259964; x=1771864764; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rxQJHljzl7Xjpy0a9qrPUpNX/ls+n4E18//+eYOdcZE=;
        b=fbOq/OWEBRtSQjsMRLnIc1YFYHlH5f5EqeMdObRuVaWp91MzoEH2m/fTroI4Gr7m2O
         6iKGXOjE9VWZQigigY3rrOKtvHwYnVgmZug54N0I98JXzlZzMixvwhS8bdf2HT6qdK8v
         A9xanaAjOTgTLxb1xjwq5qysutbnTt9rSZa8iA9O+ybLLEAXGoaXtIZME+yboVMixZiR
         igNu4yQGhw4aTL7XQZ352JL57exDvs00WEWrM/RhgR+zt4FKXqZhxoovpEFnVovFqc+b
         EimuYKKA8FAEYo4ezoxIvc/F+eTs8c50klXELpwl3No5FUSGsxHN98uMHL+H73OGw660
         1Z6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771259964; x=1771864764;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rxQJHljzl7Xjpy0a9qrPUpNX/ls+n4E18//+eYOdcZE=;
        b=YNpioEb6v3qOLCy7Ns+85CNJaulkmxohC9c5G6LYcYJrKrMGEif/oG20eScINYzTi8
         bvs3G8/Oytl/jhob/dYDgjf3jut9wjDP67guRpNTwuwf0lUo9uzF3EoHE2e4OpvhLojo
         oZZTMAAb3iYxJoO19bayyAPHZvzP2qLqjd1eOxFYLBYTUdsCe8Pu/kRXu4ZjrYLtgYAI
         RWqr1l6lUIsAsz1nn/WpuGZFNNysA34O4wAGTof5RKcfGYF/Yl8t5AAc2Utr/00ZjCey
         +eDza9s8vPKwFCuQVCv4zpdAA/ciCZx/FE+Qr4LSVku3QqihyPo1vzNOd3HBJWAHT9Lr
         GfMA==
X-Forwarded-Encrypted: i=1; AJvYcCXW2pSGdRLgWtuh8Lkeg1kgc/vqXWkfOGL9U5N+J9DjGaDEsWNlNrMbB590lsfBOIwHHhYUebxy6rc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyXrKHhgKMRVxQGg207W9PY8xOAU5oGd9ENItjakbEx6OLHLed0
	3hWEToZDXvqBCwDfuRtoJVeoFf1QFPyEA1w5fM9Mk0AiPoj8SBnxH3W/Cxc83LcITw==
X-Gm-Gg: AZuq6aLAqx41XQ/i44RsSEN2hVovy27DblVR4+sa6Pvrzy0i/vBHr5TOM0W/d9nIHVb
	s56XxjUlGJAZrU9FxndjbEEf4wtLvBQ6w5M8vZOrX2daEQGjEqj2EbxetqkmF2D1SxAFRH5NG+I
	RO3nS7gMteiLXbc+Ays2CX5/5msbYCTS79zWXUjfN9tVATFMzTOkSaGJm9B+EgO61hrdK9b9mXC
	WKq8XaQ3feXOPeL8nOWfe3/YV7ze/htqUuEvVWe4zBEbUWKcrbnEoTbfxwmzuFqHFSY/YP9lAWU
	q6ny/a3dSsr6zOdvCnjPjE5l3rPTOr+1jr1uePTsmaazMTEOf7Og9oXKg5OIrA/ltpIDvVT8V8a
	ZzRlAl4fJ+VeAdv+l1RZLyAs53z/Y5Jpr27S8iT7uxHOUcUvySjWbfy6Cd4HOwepZtv5UoWYI0j
	QdcnpvkZqKNWcpcHPn3UAZE+fiO6OBakYCn0dC9vnvqr0wDLTTUvptxl8RFfNOkY1aOvQ5BTYiJ
	63BV4kzmcF3CEc=
X-Received: by 2002:a05:600c:148f:b0:483:7f7c:ad89 with SMTP id 5b1f17b1804b1-4837f7cb108mr85963485e9.37.1771259963780;
        Mon, 16 Feb 2026 08:39:23 -0800 (PST)
Message-ID: <871a5922-9d7d-455b-8257-d583e3e47bc2@suse.com>
Date: Mon, 16 Feb 2026 17:39:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: move vmtrace_alloc_buffer() invocation in
 vcpu_create()
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: <528578e1-6374-4fd0-9f67-0769afd2e1c6@suse.com>
 <50c79874-d07e-479d-80c2-7c0694a0828e@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: <50c79874-d07e-479d-80c2-7c0694a0828e@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.02.2026 17:29, Andrew Cooper wrote:
> On 16/02/2026 3:51 pm, Jan Beulich wrote:
>> The label used upon the function failing is wrong.
> 
> Is it?  Which label do you think it ought to be?

fail_sched, as Roger did point out in reply to the original other patch.
After all ...

>>  Instead of correcting
>> the label, move the invocation up a little, to also avoid it altogether
>> for the idle domain (where ->vmtrace_size would be zero, and hence the
>> function would bail right away anyway).
>>
>> Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
>> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -493,14 +493,14 @@ struct vcpu *vcpu_create(struct domain *
>>          set_bit(_VPF_down, &v->pause_flags);
>>          vcpu_info_reset(v);
>>          init_waitqueue_vcpu(v);
>> +
>> +        if ( vmtrace_alloc_buffer(v) != 0 )
>> +            goto fail_wq;
>>      }
>>  
>>      if ( sched_init_vcpu(v) != 0 )
>>          goto fail_wq;

... this comes first, and ...

>> -    if ( vmtrace_alloc_buffer(v) != 0 )
>> -        goto fail_wq;
>> -
>>      if ( arch_vcpu_create(v) != 0 )
>>          goto fail_sched;

... here the correct label is used.

Jan

> The positioning was intentional.  I just didn't get to wiring up Intel
> PT for Xen context yet, and tying the buffer to the idle vCPU would be
> the obvious choice there.
> 
> The chances of getting around to that are admittedly low, so I don't
> mind moving the call in principle (noting that this is a wish that
> likely won't materialise), but the claim over the label needs resolving.
> 
> ~Andrew



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 16:59:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 16:59:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234440.1537709 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1wT-0001oe-Fk; Mon, 16 Feb 2026 16:59:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234440.1537709; Mon, 16 Feb 2026 16:59:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs1wT-0001oX-Bt; Mon, 16 Feb 2026 16:59:25 +0000
Received: by outflank-mailman (input) for mailman id 1234440;
 Mon, 16 Feb 2026 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=NroF=AU=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vs1wT-0001oR-1F
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 16:59:25 +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 d59734b8-0b58-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 17:59:19 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so38234515e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 08:59:19 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48370a3eb7asm135273915e9.1.2026.02.16.08.59.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 08:59:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d59734b8-0b58-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771261159; x=1771865959; 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=uKLXzR3NtC17TftTVJuJ/gUwX0BawCtk9Zmv12qDK2k=;
        b=mVZZ5dNl/362e2YP8jrXeF1r94047PCaMnyqHasx74GQc7BCjcYwSqUjRg7phE+PfF
         ge5P1J2NnWx1a0UYMPnBLIdoWtc93ZYsUU+U3HNG3lM9VPuuVqsu6fOns8ObT7U3Rr0U
         VdATH9OyBJ+VPcbuAglQn75RFx0BzlbpeqmSLt45Y7DHSmLECmhMwoEmLJ0rSNvDlXx0
         vDjPpU+MLVADI8YHAS3EK3IhPVMX91j8iexYFMDjlkEw7MNRRTBvtwV6l3JI4LNDMBxq
         myp3+n+qqDYC0hbiwBgdNKpiIGRH8JYb1i/xW67q3l9dwXSRxDnPu0IwF0WPQEzApUpv
         Djlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771261159; x=1771865959;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=uKLXzR3NtC17TftTVJuJ/gUwX0BawCtk9Zmv12qDK2k=;
        b=kh2Vngh+2D9QEfigkbGrtt3JWM+naHxm+KRaYJijeDPkFnOakfBTSKTCiyGjKHFq0y
         cEDSJWgYxIlqU+yBnLjJGitMwTDgvSiHhnvSogLceebMXzWNbzT5szJUO61x7sf2fQ4k
         Avgf5cjnJsw8y0HCVAir7bsmTPKxg8SOb158z/4NWu5BujAsS16aUNNdO+LXfHd9WmlI
         +cN+qiq82tIRs8TrqoUHEuyNao8uEgrwmjT/ytLltq6orgsXxMER+NGfdlK+hANJL/sa
         RWDW+7UqBHWD8x+a0QQrXrzV3bm/wn9W3XWfc11+Nwf2PcoG3yAl9L/UcgzBf1ZEzsQQ
         GQSg==
X-Forwarded-Encrypted: i=1; AJvYcCVQC6hJjzo332hFpEFZ7nxSKslasVSusktWkqLQtI2KmUEcMXeVHGQKsnlZTK7xHCHWT1a8uCUTSQQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPAjxbonHULBgXUm9cQLkjSOHk1gC9SDheD033Xz2i+xepb8LL
	Ysr+ug40JF+2AV8gwfrdeUpC7sXxUkVPZ0Z1Vef9El9qCSUoQJHEPTMl
X-Gm-Gg: AZuq6aIAL6IgT0+gy2ohzKa7znAZ71ZhpvQBWkyeMcS7EIuNiIAzCdK/LS9B9FHVIGw
	T+a5dP+FW0IvhmdmMXVMwj6qGh7VVdcRzBvCqa8DoiA/FCHhuc2Z2/aLyc7JSQNghxRMhnKcKzM
	ZX4gLABFo9zRaNXEqayTIQrKqaQ/8UQJ+5d/T5k3ddWHcKpW/eIgktcjQDoxQZcXL7fyjr7JUoK
	go5k3B97P5mqHAwk0Mf8zRoosSjZ7KYl0cC61IMcRhL3KLokTVR8uXQFDAWm62PDEZzdSNhrbwI
	XbY9mUJYKfUyE2QaLJjEEh1ZBlRezkmz/VJiLEnpXiaaNI3E9rg6vOLOchYCoGGTRmWO0HBWeOy
	//WP70xRoEvJMHGQSMrqEKkNpZYmlO/pQp7NZL3xfG5yMlrgV8bVPSx6+y/piD7PpFAnEwOJ2GB
	4ITzbjcGbHweew7KHzEwBOU6A3XvN7nLxe1QphqjmJpywsC87OxwB1iNGxLEknN4VSuNCuRkZ8K
	/NJhZAIHCk1+g==
X-Received: by 2002:a05:600c:1384:b0:47e:e414:b915 with SMTP id 5b1f17b1804b1-483739ff99bmr163127125e9.2.1771261158777;
        Mon, 16 Feb 2026 08:59:18 -0800 (PST)
Message-ID: <2bab05da-4f19-4fbd-8a06-5113ac4cded8@gmail.com>
Date: Mon, 16 Feb 2026 17:59:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
 <0f7e5a73-a574-4aa2-80c7-b45d08b9d6b0@suse.com>
 <f4400580-65b8-4dc2-a11a-443840bcb162@gmail.com>
 <cf7c146f-ab1c-4574-ab2b-e0d96ea80db4@suse.com>
 <f43f99f6-a9cf-4217-953a-f1f449194e6a@gmail.com>
 <a55d1c35-90fe-4b25-b10d-1ab33d6b8efe@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a55d1c35-90fe-4b25-b10d-1ab33d6b8efe@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/16/26 5:20 PM, Jan Beulich wrote:
> On 16.02.2026 16:57, Oleksii Kurochko wrote:
>> On 2/16/26 4:45 PM, Jan Beulich wrote:
>>> On 16.02.2026 16:34, Oleksii Kurochko wrote:
>>>> On 2/16/26 12:50 PM, Jan Beulich wrote:
>>>>> On 13.02.2026 17:29, Oleksii Kurochko wrote:
>>>>>> Introduce helpers to manage VS-stage and G-stage translation state during
>>>>>> vCPU context switches.
>>>>>>
>>>>>> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
>>>>>> switch-out to prevent speculative VS-stage translations from being associated
>>>>>> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
>>>>>> required order.
>>>>>>
>>>>>> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
>>>>>> only when required (e.g. on VMID reuse or generation change).
>>>>>>
>>>>>> This provides the necessary infrastructure for correct p2m context switching
>>>>>> on RISC-V.
>>>>>>
>>>>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>>>>>> ---
>>>>>> Changes in v3:
>>>>>>     - Add comment above p2m_ctxt_switch_{to, from}().
>>>>> I find these and other speculation related comments problematic: You can't
>>>>> prevent every kind of speculation that way, yet all these comments are
>>>>> written as if that was the case. What I think you mean in all cases is
>>>>> speculation using the wrong set of page tables?
>>>> According to the RISC-V spec:
>>>>      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
>>>>
>>>> Based on that my understand is that the following code could provide an issue:
>>>> (1) csr_write(CSR_SEPC, guest_b->sepc);   ...   (2) csr_write(CSR_VSATP,
>>>> 0);   csr_write(CSR_HATP, guest_b->hgatp);   csr_write(CSR_VSATP,
>>>> guest_b->vsatp); As IIUC speculation could happen between (1) and (2)
>>>> and we could have some VS-stage translations connected to SEPC'c of
>>>> guest B but with address from guest A page tables. So just to be sure
>>>> that such isuse won't happen I wrote a comment that first VSATP, then
>>>> others CSRs then setting hgatp and vsatp for new guest.
>>> This reply doesn't address the point raised above, it also ...
>> Okay, then just answering on a question above directly - yes, it is about the using of
>> the wrong set of page tables.
> Which is what I'm asking to clarify in those comments.
>
>>>>>> --- a/xen/arch/riscv/p2m.c
>>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>>> @@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>>>>>     
>>>>>>         return get_page(page, p2m->domain) ? page : NULL;
>>>>>>     }
>>>>>> +
>>>>>> +/* Should be called before other CSRs are stored to avoid speculation */
>>>>>> +void p2m_ctxt_switch_from(struct vcpu *p)
>>>>> What interaction with the storing of other CSRs would be problematic?
>>>> Please, look at the reply above.
>>> ... doesn't apply here, but ...
>> Probably then I misunderstood your question.
>>
>> Technically, it wouldn't problematic to write CSRs in any order (even we can ignore
>> setting of VSTAP to 0), but it will (at least, based on example above) lead to that
>> we will want to have TLBs flush.
> Why? Storing the CSRs doesn't alter the values held in those registers.
> Taking your earlier example with EPC, storing it ahead of clearing VSATP
> will leave as wide a window for speculation as will storing it afterwards.
> In both cases the window will close when VSATP is cleared. As per my
> current understanding, that is.

Oh, you are right. It doesn't really matter when clearing of VSATP is happening during
CSR's storing procedure as CSRs aren't changed, so it is just necessary to set VSATP
to 0 before CSR's restoring.

I just confused myself with my own example as it is basically about restoring but
I missed that I am commenting CSR's storing procedure...

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 17:17:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 17:17:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234452.1537718 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs2Dr-0004d5-SM; Mon, 16 Feb 2026 17:17:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234452.1537718; Mon, 16 Feb 2026 17: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 1vs2Dr-0004cy-PX; Mon, 16 Feb 2026 17:17:23 +0000
Received: by outflank-mailman (input) for mailman id 1234452;
 Mon, 16 Feb 2026 17:17: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=aABt=AU=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vs2Dr-0004cb-6p
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 17:17:23 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 584182dd-0b5b-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 18:17:18 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6556.namprd03.prod.outlook.com (2603:10b6:303:127::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 17:17:14 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 17:17: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: 584182dd-0b5b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xW3Qod58U5NPvJGZG/P0wYotnT5h+P5v1n+jpxX86g9Ql1OB8HSqcEUxXr2Ck2lOmDH3BqHJfJuXL0Y9iGtgAeUeS5xGjjUL/vtvJWG0/LKoyulgK7zpgL/WIO/2fV1ff2Evm5tFnIzZhIskYPcuKQ1zX3HsUo39TDMG3oH23xl3ra5gU/zLLXl5VJchZnXKrR9j22ip0nGDlKV3dRe5P3v6bWEtY3MLgli/REu5ZcuNkf6AZQt+2PzOqr4a8P20D/ad8QphAKNcP6gYVcw3hJiRW3YVSLIFrHd93nCXw2IfzrmUdxPWKtSFpxj+nfm68UiFk0nwG1bsJvdHujE0MA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N8v7YWmhWIamdMqlza1rHuYAV9Gi3X3n48TiklmYYUk=;
 b=PzEgX6FHE4rHBE/3Jz46WWLG2oRYTv4mxDhEa5hwERnylJKRBcHLUQWzLxxL01Q/ZduKrxHXmOeZZGvH7YnaaUc/2lU63noKcb4W75H6hGZGOcSA2Ken5PfLCdxk9NwsIDZJzwxm5K0jMNuGJsXasrUZscPZHirVKJl3RvwinCpFN62rfntE6bqChHWAafoAUl89sjYB41I06TNRXr76PwDiblK/17361qVPEk2oEzLwJCVB+p0CpNrk94LNJoMSl3DA8fCv3WbHD0nr/9LOeHeFm8rw/FvG2ybn4wj8CnM6kjyEGc3Wv0zjl2VuIOkx51UHZKrYsS0vgSF7wmQNjw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=N8v7YWmhWIamdMqlza1rHuYAV9Gi3X3n48TiklmYYUk=;
 b=VCTYuMwcYMkqkpCeF/OLeRHe6XQ2TngPQHgrngNcS7CfEcILXuHeey7+zg0s+Su8INiu+0aOaqihgbTQH8x9lN3AQHwP9B4MRPEVDqEacX6ZicpcpJcw6ysSou0cazaEPQgQ6Ll97bL2xH/okq5vpuSplM8nysVxgmkDmxJieS8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <33498e90-dc3c-4763-a953-3ff9eccd2594@citrix.com>
Date: Mon, 16 Feb 2026 17:17:10 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] domain: move vmtrace_alloc_buffer() invocation in
 vcpu_create()
To: Jan Beulich <jbeulich@suse.com>
References: <528578e1-6374-4fd0-9f67-0769afd2e1c6@suse.com>
 <50c79874-d07e-479d-80c2-7c0694a0828e@citrix.com>
 <871a5922-9d7d-455b-8257-d583e3e47bc2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <871a5922-9d7d-455b-8257-d583e3e47bc2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0356.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:d::32) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW4PR03MB6556:EE_
X-MS-Office365-Filtering-Correlation-Id: 750037b5-b36f-4154-9ca9-08de6d7f3a60
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?Wm5RMThRSkVOb1Q1eUorckxVMmZsTCsxRkRCM3ZTcUZ6UGFiZ0VxV3Jld3kw?=
 =?utf-8?B?VUpUK0JLM1JRL3JlNTJnemxHNnNNSGR4WUZRTHY2b2RPMURnelZSU0NDOXBs?=
 =?utf-8?B?dHFZNGhtV1dSVXhkVWJiTUJna1JKaUFLMzdJSkJ2Q0NVcGhnV3RadGNRMU8z?=
 =?utf-8?B?bGlXT0k1ZmJXVUI3NzBjYUV2bThJVGN3RzJDNGZiMmxTalpUUklWdVQreUlL?=
 =?utf-8?B?NlpaR1FzcklLVE0yeUtrQk1nSCt2MTE5NmNVRnU3U3NtZ1oxUzIyRDMvYkNq?=
 =?utf-8?B?SHIzM2JjK2JGV2trZWt6eS9iWDUyaGJPWUhtYTM0Vytvdk05UHZoV2VJOEdV?=
 =?utf-8?B?N0UwZlRNNmgrQ2p5VjF6THBtRHN3Mk5MZDVUTGFiTzZUeWdyRURjejJQMDVH?=
 =?utf-8?B?RXFJeXA0T05xZE5xSXpCWmRVZmRsUjNZMG9aalVtR0xNNTJnT2l5ZU1RTGlR?=
 =?utf-8?B?VU84azBIdmdpbVJrUmkya3g5clhWRGZDVEY2eldhK3pkeWRUWDFQZE5wZmhp?=
 =?utf-8?B?TjdPK2RmbjJrWVp2WEJWL2dTdjBXNzVsQVYrZ0xDTWNNNHZFL25TRnpwZDVi?=
 =?utf-8?B?cGY5VjhtMm1jTmp1VG5tYnVDT0x3M0t6aW04aDlya3NXcDJXSWlSWmYzVDQ5?=
 =?utf-8?B?emt1bXlTYTNKU0lYbHdETzk3b2c3WUFBNUJpbWI0cjNzd05HaUN1Wk9TemRU?=
 =?utf-8?B?L01PbUVUK2kwVlR2RE1sNzc2MWZJR3B6VTlGUnBtamRuNlJFUWNhWUFVRkNR?=
 =?utf-8?B?OHVuWTFPMFBNRkh0NGpqMVNXODNjckFuMXNrOERrcXk5ODB2cHdiNFlsZWNJ?=
 =?utf-8?B?ZXNXSTRCM0NSUHVSdFBGbmNZc2UzYk9qQmhWb3YvMnFjNi9LcncxZmgxRWxK?=
 =?utf-8?B?VVpkZHp0V0N1WkxGMll6TGVBYmJudG1aQk9JOFExNjZLc1Z0aFFHTDRzUXFy?=
 =?utf-8?B?bWRDSWI0VHBRcm9NazN4UVdiTTNSRDY3alZ5Tml3ZkN2ZWV2NTBlbi9tZFJE?=
 =?utf-8?B?bys4RlRRdUFmQjNUY3djM1Z3cGlBSmwrMUN5bUlaUk9STEw4YUtGUFVKUFVn?=
 =?utf-8?B?UEZYaGFKMU5HVTFLM1h0Sy9pcDI3d3NWaU5sWVFIVHZMazUyTmJ0SWNjOWk3?=
 =?utf-8?B?TTBORlFvVkJOaC9qUTlaeTVqZGFUK3hsdjUrRllMR2FoWTVBV0VobG1lQk1F?=
 =?utf-8?B?YjZ0OURyT0F0MDQ2ODZUS09yWGZrU29Rd2h2R0QrQzlEejBwS09taE94UFVx?=
 =?utf-8?B?dmV3TnhaZjlqWldxSm5ka1hSQkxGWjNDck9SMGZsckhoRGVMRisyd1JpRnN2?=
 =?utf-8?B?QkJPUkdMaWxzT3RVRG1uNkFrbExmRFRReEt6V2tPazNrTnhNajd5UDlwV1U1?=
 =?utf-8?B?bm5ZMzFIYlJqUkZPbXR5b2o2cWZZSWRtQ1hHais2Wkc3c2FNdE5CeVU5OWdq?=
 =?utf-8?B?dHZ2TWF4UTFBemxXOTlhMzcrK09HbFBMa041TEdzaUtLK1VyUTVHRGF1S01v?=
 =?utf-8?B?R2hMT0l3R2FuWi9mK3dCemhmdUszMWExbGdud3k1dE9kMWx5QUlLTElqZ0I3?=
 =?utf-8?B?eFd0dkhFU2pSaHhqQ1FmNW04RWZpMlVFM0dLZi9FNTF1V1NhOERiLy9uTXR0?=
 =?utf-8?B?TUMvZndjV0xMd0QwbFFuczZQMXdUWjVUazdaaldzaVptL0JVdHRmT0x2Yjkw?=
 =?utf-8?B?WjRyelozdysxYnBUQyt3ZGN4MXVqU25JWFpLNVdWZ0RKMUJia25MOE5tVnJ0?=
 =?utf-8?B?SkFZN0tTbnJYNHFpSFhjb213SDVsNGdvSXhHMEZrZFZsQURCZ1ZkOTVnNVNM?=
 =?utf-8?B?dDc4MnI4UFo0MmNDZUZlRFh1eTJhc05iNTE3R0tjcDV4RTlzaXNpUzdZQmw0?=
 =?utf-8?B?SjZhNTk2ek9jN3drZGxjU3AxSlBmZ0ltNnBCRE9zM2xZWitUS1ZCRVd6cHBU?=
 =?utf-8?B?ZU9XaGUvRUgwN2tmOGNzc2VhYzRML3c3MVEzM3VvYm9XSmQ1WlUrcDZZMEdW?=
 =?utf-8?B?ZE5keUFwTUVUVjByWm9MUzJvazR1RmdvQmp5RXRwdUhSUWYyajBHWWErK0Vm?=
 =?utf-8?B?UUMxdDNOSVR4L0pLbHpGb0JxMGRPNlArWUEvN1JoMVNOWXdVNll5Tzh5OUF0?=
 =?utf-8?Q?V1aE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U2MzMUQvdWpwR2ErYmwweE16R3NDNE0vM2RFMDFkajBCbVRqVnhxTnZVUXVU?=
 =?utf-8?B?KzZOWUpMQnR0ZjFJdit1MVFmRzYySlFLdHJmbUFGbytzZkxId1ViUUtqSHlE?=
 =?utf-8?B?clhUOGlKK1puNnBoczluTkl2SGQwSW0rRXdIQXZLVDNKY3RYajNWL1BpelVJ?=
 =?utf-8?B?MnpCZldHWDVKQ0gzSHBST0tENTA2bGtqbmIyNFJLdjNUNkNuMzdPOFpRYW4r?=
 =?utf-8?B?UTM1WDJTd2c1bjNxVlhMK2UzTkZKVlJucG1PRU1iaG1Ic1JqWUhGYUZ5ZVQx?=
 =?utf-8?B?YlBXSDlYaXF2d0xoNGhpR1BtUmorRkpwejN3QTBQUUx3T0hNNEpoc2VWWncz?=
 =?utf-8?B?aUw5M0lpM1NySkljbVNFYjBIc0RicVFQL25DcllzNjh1MUJReUFoWlM1STZo?=
 =?utf-8?B?a1JjUUNYYnJQUUpMbUpMMS8rZFVzdGhBVE1YWnhwRUdTM0JPNlV1TzJVOG95?=
 =?utf-8?B?b2tla0lhNmxkVEk5emFFVWNidXlSczlablVJa1dOSDVPSDF0ak5BeVczdmlC?=
 =?utf-8?B?RGZFUlpyWkxoMHVVa2wzT1ZiWUtkMHZJeDJBL3B4ZzJxVXRDN1JqSDdUL0Ny?=
 =?utf-8?B?eSsvejlaRnBsb1JlWjJVT0FDay9JVVdSQVZYbU9lWmRLVDcyeUswckcybEt2?=
 =?utf-8?B?TDhjczNHaEY3MTRKL2tSZkhUeHpWVGk2V0sxN1F3T1EyMWdNSG5YL3hmdFpP?=
 =?utf-8?B?UGphWW1abTJMUzNXaFFyMGJTaSthbzBwUkpWWjVjZGg1cHlKVm5lU3lNTXdl?=
 =?utf-8?B?Yml2ZHU2OFZGeGQwMmk5VG1aeFhOa0dFb0Q1T014SVZaVGhDbU52TVBleDgw?=
 =?utf-8?B?aFFkVVh0WVliYm5WSHg4Rm5WYjlkNUl0RWFkb21qd0d2emRDZmRQVmxWOGFr?=
 =?utf-8?B?K2RBQmVPTDl6S2N4QmwyWGgwTENFbWJpendBNTFUK0xuTjZSL09tNmYwOWpr?=
 =?utf-8?B?VmdyVHZlMTV6dE5ZWkowelpjRWNyUWJnWnpsNm1Jb2M4UDZIR0IvZ3VUR3lK?=
 =?utf-8?B?aFIzK2NBMkpOZHdPcm1ENVpVbEJlRXBVdTRJV2NJbGtHdDYrdnc3dUNjVXlP?=
 =?utf-8?B?b1BJdm1kRlNuR0FaSHVWQWdERVhkb1Fhc2ZzdklpaXpnSzJaejVRcmdDVk5P?=
 =?utf-8?B?WHVDS05JbTZpaXMwdzdYVUpjOUk4RlI4R2swd3YwRFpaZ3B4UDE2cmc4M1pn?=
 =?utf-8?B?UTAwRG5iKzlCTGpScTJ3RHJKU0l5L3hPM0FEcDdXQTI3eGMvdVJzSlI3MG80?=
 =?utf-8?B?SVlYd2xIcUtDV3plbGZIS2JMekRLa3pMRUJ4VDVSdHdvVWlhNlEzZUJQcm1B?=
 =?utf-8?B?dEVRanJUSjc0bGpRdWZFUHA2dTBMUWIxTlp4cXlmQUtKOUNDbHpKeFNwTkh4?=
 =?utf-8?B?K28rMmRKQnlUWUJtVUErMEJaRkZxYUpkTGMzM0pZcGxTNldUZFkyWnJnQTdq?=
 =?utf-8?B?b0FBQ1RPWnNvMXNQZzNmL2gxK2dpQXBObEVaV2FSbXVuM0xuWUlVZXRRWVA4?=
 =?utf-8?B?NUNGbytMc0txZ3dneFo0Wm5xakttN2pPWWNlcWdMVFF2Szg4M3VLellJNkJ3?=
 =?utf-8?B?U0RCOWF2V0pERTVsdGsvY2JvbnBiaW5IN2swc0tFc3d1UVR0QmgxVFA3Vm5h?=
 =?utf-8?B?K1lXZlRIM0hZRm1TMm02aGdwVThLZkF5T0NYbUJiWHovb21rcVBtcHFwVWhF?=
 =?utf-8?B?OEhLMDl2N2dmOW1jaG55L1VWUFRvdTVoZDBOajhSYmhOQ2txZjByQkRDODh6?=
 =?utf-8?B?dE0zMzlRY1lreVlNT3FuRFU1MG1KZjRIOFBGbTVWTEFzWkJ6QndQUzVNUUY2?=
 =?utf-8?B?Zzh6OEVvOE1scXBpYkZhWXBrUVVWcS9pWDBpQUtWS1YwREtINlBRaTNnTXdK?=
 =?utf-8?B?ek9LTWFIY1F3Qy9JL1RKOXhUei8rZDBLUFk3dlZxOXdiMDRQemd3Nk9ORjlO?=
 =?utf-8?B?aGZ2MGZ5NUhBS3BVQXFLb0dCbnd2REw0clZzTHBUQzc3Z1BvbkpxSExGRjlI?=
 =?utf-8?B?QlBvWlp1UFVIZE9QeXJYU042cW1qdG1Vc004SGNQcDJUeFliMGlTRXNZampO?=
 =?utf-8?B?K2tOZitQZVZLTVRBSU9COXNjOXFnZ3ZKUG5mUDRvM2hkakEzMHk0dDdsOXpI?=
 =?utf-8?B?ekxiMFE3dmI2bFZodzFjRjhEN2NQYkZXNHB3dXBjWnZPK3kyQ1dBcGF3MFhH?=
 =?utf-8?B?bXUzTmJDdEFjSk94S2JuUWlpZWRaU29OMWc3TVFialZTbythWk5Qd2ozb0dU?=
 =?utf-8?B?OFFUQ3VhUUovdjdwMEtjWHBtT1hhUkEvNUwvblNETm9WOHRjc1JxQWkwRFZJ?=
 =?utf-8?B?U0xtZVRCdUgreXJPcDFGYTBuQnZOeEtxZEJiVlhMR3M0Z2syeVNUZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 750037b5-b36f-4154-9ca9-08de6d7f3a60
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 17:17:14.2661
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: V/LtC2BXCalFQase+G2B6xAimdxSN7HlLGAQDIao0C23ontuVglp1MYO6RIxmfqCf7kPyVRhIgkmQ6J3562G+NdnZpO+aPNtbNCStxRH2EI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6556

On 16/02/2026 4:39 pm, Jan Beulich wrote:
> On 16.02.2026 17:29, Andrew Cooper wrote:
>> On 16/02/2026 3:51 pm, Jan Beulich wrote:
>>> The label used upon the function failing is wrong.
>> Is it?  Which label do you think it ought to be?
> fail_sched, as Roger did point out in reply to the original other patch.
> After all ...
>
>>>  Instead of correcting
>>> the label, move the invocation up a little, to also avoid it altogether
>>> for the idle domain (where ->vmtrace_size would be zero, and hence the
>>> function would bail right away anyway).
>>>
>>> Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
>>> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -493,14 +493,14 @@ struct vcpu *vcpu_create(struct domain *
>>>          set_bit(_VPF_down, &v->pause_flags);
>>>          vcpu_info_reset(v);
>>>          init_waitqueue_vcpu(v);
>>> +
>>> +        if ( vmtrace_alloc_buffer(v) != 0 )
>>> +            goto fail_wq;
>>>      }
>>>  
>>>      if ( sched_init_vcpu(v) != 0 )
>>>          goto fail_wq;
> ... this comes first, and ...
>
>>> -    if ( vmtrace_alloc_buffer(v) != 0 )
>>> -        goto fail_wq;
>>> -
>>>      if ( arch_vcpu_create(v) != 0 )
>>>          goto fail_sched;
> ... here the correct label is used.

Eww, yes.  So multiple observations.

1) This only functions in the first place because
destroy_waitqueue_vcpu() is idempotent to v->waitqueue_vcpu being NULL
which covers the idle case where init_waitqueue_vcpu() was never called.

2) sched_destroy_vcpu() can be made idempotent against v->sched_unit.

Then we don't need multiple labels and this all gets a lot easier to
untangle.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 18:36:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 18:36:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234481.1537729 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs3SY-0005ou-8b; Mon, 16 Feb 2026 18:36:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234481.1537729; Mon, 16 Feb 2026 18:36:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs3SY-0005on-4l; Mon, 16 Feb 2026 18:36:38 +0000
Received: by outflank-mailman (input) for mailman id 1234481;
 Mon, 16 Feb 2026 18:36: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=PDeG=AU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vs3SX-0005oh-Gv
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 18:36:37 +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 69226db0-0b66-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 19:36:31 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id B1D7F40B5C;
 Mon, 16 Feb 2026 18:36:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 66FE8C116C6;
 Mon, 16 Feb 2026 18:36: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: 69226db0-0b66-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771266989;
	bh=QRv2RNDiDu27KKeWxAQIcWuH/Q4/aQSzGkg6+PP/rcA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=WcC0nr1Ra/bOfB+zxY1lm4HYjMoRZoHzOvkX3/DsWizUm0B7RyvFJIejP3oizhkvv
	 utEu+Hes+VWUJPZpcIcZCg8DZ8Gl/rY6K5+n6aJAcTOThDpg2u/N3XavWXKS2/wOsB
	 moyPWPu8qIe2DIqNc+4be5jn6C31QLTiR5pUyvl+0XrqSPbholeiQxvKsORD/wnLbE
	 UEmVyaxAQxtCYofnnTH3e065/wOKn3WLOvWB8ymN31RajvvvmHfYVr7IKMFKVDDTNQ
	 LHTPanD94SJR7uCIdIkUOiDWsTtYx9PeMlGEr/Y0XF+2/ajseHf1kSAd3F4M86W3t2
	 1afBYioIUtpJg==
Date: Mon, 16 Feb 2026 10:36:23 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Dominique Martinet <asmadeus@codewreck.org>
cc: Stefano Stabellini <stefano.stabellini@amd.com>, 
    xen-devel@lists.xenproject.org, jgross@suse.com, v9fs@lists.linux.dev, 
    ericvh@kernel.org, lucho@ionkov.net, linux_oss@crudebyte.com, 
    sstabellini@kernel.org
Subject: Re: [PATCH v2] 9p/xen: protect xen_9pfs_front_free against concurrent
 calls
In-Reply-To: <aZGOHNhDe1PPJCRO@codewreck.org>
Message-ID: <alpine.DEB.2.22.394.2602161036160.359097@ubuntu-linux-20-04-desktop>
References: <20260129230348.2390470-1-stefano.stabellini@amd.com> <aZGOHNhDe1PPJCRO@codewreck.org>
User-Agent: Alpine 2.22 (DEB 394 2020-01-19)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

On Sun, 15 Feb 2026, Dominique Martinet wrote:
> Stefano Stabellini wrote on Thu, Jan 29, 2026 at 03:03:48PM -0800:
> > Changes in v2:
> > - move priv->rings check above the loop
> > - replace list_del_init with list_del
> 
> It looks like I didn't reply a couple of weeks ago but I did
> pick it up and just sent to Linus now.
> Thanks!

Thank you!


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 18:42:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 18:42:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234490.1537739 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs3Yc-0007OB-Ti; Mon, 16 Feb 2026 18:42:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234490.1537739; Mon, 16 Feb 2026 18:42: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 1vs3Yc-0007O3-PF; Mon, 16 Feb 2026 18:42:54 +0000
Received: by outflank-mailman (input) for mailman id 1234490;
 Mon, 16 Feb 2026 18: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=PDeG=AU=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vs3Yb-0007Nx-U0
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 18:42:53 +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 4a1bfcf0-0b67-11f1-b163-2bf370ae4941;
 Mon, 16 Feb 2026 19:42:50 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 489E340DAD;
 Mon, 16 Feb 2026 18:42:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7A9F6C116C6;
 Mon, 16 Feb 2026 18:42: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: 4a1bfcf0-0b67-11f1-b163-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771267367;
	bh=W3eerZi73M8UsHNPHnN+3bupeIQmef+WrbSYUslgQg4=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=JIXVqFzHR67j29zE0LJIL6lvxedSgWKP+/N0TPA8KrDlAtMJ5+UlzT8UvgFqJ9YOt
	 A2kvc6t/5UiRK/Jvzom+3QpD763U9uI5J4vsh27JsDsGQedyjizGxDXDi4BISnN4gK
	 YkkRw2o5kiCzrOItwbmpBmvMrkOIKTtW5d9iSJWe9doOHjygjTY55xp/iFaWgdbx62
	 KJDF0fUDwVV8jVxNdBgelIP1Jz2Yy+/p9E4JDQs6TvRXG5Gmj8oq5REi7cCAalZDRD
	 BB6JyB3ZRr0eoUHDMe1JHCCC+EbE0KjdXsrHskqmMyuW1LPPdNXsE7dpktVBb6v9tR
	 ZpkW3QqFXKBig==
Date: Mon, 16 Feb 2026 10:42:43 -0800 (PST)
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>, 
    Romain Caritey <Romain.Caritey@microchip.com>, 
    Stefano Stabellini <sstabellini@kernel.org>, Julien Grall <julien@xen.org>, 
    Bertrand Marquis <bertrand.marquis@arm.com>, 
    Michal Orzel <michal.orzel@amd.com>, 
    Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, 
    Andrew Cooper <andrew.cooper3@citrix.com>, 
    Anthony PERARD <anthony.perard@vates.tech>, 
    =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
In-Reply-To: <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com> <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com> <522a71ce-05da-4a66-956e-5581f0c49e0e@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, 16 Feb 2026, Jan Beulich wrote:
> On 12.02.2026 17:21, Oleksii Kurochko wrote:
> > domain_use_host_layout() is generic enough to be moved to the
> > common header xen/domain.h.
> 
> Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...
> 
> > --- a/xen/include/xen/domain.h
> > +++ b/xen/include/xen/domain.h
> > @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
> >  #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
> >  #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
> >  
> > +/*
> > + * Is the domain using the host memory layout?
> > + *
> > + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
> > + * To avoid any trouble finding space, it is easier to force using the
> > + * host memory layout.
> > + *
> > + * The hardware domain will use the host layout regardless of
> > + * direct-mapped because some OS may rely on a specific address ranges
> > + * for the devices.
> > + */
> > +#ifndef domain_use_host_layout
> > +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
> > +                                    is_hardware_domain(d))
> 
> ... is_domain_direct_mapped() isn't something that I'd like to see further
> proliferate in common (non-DT) code.

Hi Jan, we have a requirement for 1:1 mapped Dom0 (I should say hardware
domain) on x86 as well. In fact, we already have a working prototype,
although it is not suitable for upstream yet.

In addition to the PSP use case that we discussed a few months ago,
where the PSP is not behind an IOMMU and therefore exchanged addresses
must be 1:1 mapped, we also have a new use case. We are running the full
Xen-based automotive stack on an Azure instance where SVM (vmentry and
vmexit) is available, but an IOMMU is not present. All virtual machines
are configured as PVH.


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 22:03:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 22:03:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234537.1537748 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs6gA-0005Ck-7N; Mon, 16 Feb 2026 22:02:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234537.1537748; Mon, 16 Feb 2026 22:02:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs6gA-0005Cd-45; Mon, 16 Feb 2026 22:02:54 +0000
Received: by outflank-mailman (input) for mailman id 1234537;
 Mon, 16 Feb 2026 22:02: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=AdUN=AU=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vs6g8-0005CW-Rh
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 22:02:52 +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 3ba3a228-0b83-11f1-b164-2bf370ae4941;
 Mon, 16 Feb 2026 23:02:50 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771279356362254.9074161418365;
 Mon, 16 Feb 2026 14:02:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ba3a228-0b83-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771279359; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=fsJigS7W0oSYt93O6uP7xjEitmWGpEzqU1BDOq81q824QpAG27qnb/s7dWSnlBl5hcLwSzkwRF9BcPdie7JxgmCBo7rklaAypVqjOtXWegirTRquPIN7azNwegLsZySmngwtdEF47HJDvvrdcWWpu/+itI2xaOrh+3oZXrEda6g=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771279359; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=4VEgKRoBkaKV62x2vF6xqW5mSzNd6FYxa2E8lFTgOn4=; 
	b=PCUwAUVZ3ovEorBfTmYjnKmDh9h1mOK0qCxxwllJSb/q6hq9wyDNz0B5DfSxH/jWofiYvuEjS//X+voQMS03zSMa9zrdlDoyINU2EhOPecvarW7QmgIqNGgNvLLsungMpvxDMEDZDSxYgFd17eDWOYhWW6mXETW9FuUYPOHhuBM=
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=1771279359;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=4VEgKRoBkaKV62x2vF6xqW5mSzNd6FYxa2E8lFTgOn4=;
	b=Q2nzDv9KGwZS7v97r2FYPEy6CB9nX2CwIN8D6Wc85W9x6iQNawZp8FoJGPJwtUk4
	4ZFHOSIrgP27YtQkIFy7EnwA6aNRgagxjwrHa88WdOPubwsijtJsyNLSS+DNzBRmWii
	ZdcLzx92kthgy7j+ejFJ1mrbc2/EIBNFGUU1DKZU=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Chris Rogers <rogersc@ainfosec.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: [BUG] common/domctl: xsm update for get_domain_state access
Date: Mon, 16 Feb 2026 16:57:48 -0500
Message-Id: <20260216215748.20398-1-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

When using XSM Flask, passing DOMIND_INVALID will result in a NULL pointer
reference from the passing of NULL as the target domain to
xsm_get_domain_state(). Simply not invoking xsm_get_domain_state() when the
target domain is NULL opens the opportunity to circumvent the XSM
get_domain_state access check. This is due to the fact that the call to
xsm_domctl() for get_domain_state op is a no-op check, deferring to
xsm_get_domain_state().

Modify the helper get_domain_state() to ensure the requesting domain has
get_domain_state access for the target domain, whether the target domain is
explicitly set or implicitly determined with a domain state search. In the case
of access not being allowed for a domain found during an implicit search, the
search will continue to the next domain whose state has changed.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
Reported-by: Chris Rogers <rogersc@ainfosec.com>
Fixes: 3ad3df1bd0aa ("xen: add new domctl get_domain_state")
---
 xen/common/domain.c | 22 +++++++++++++++++++---
 xen/common/domctl.c |  7 ++-----
 2 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index de6fdf59236e..4886c59c874c 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
 int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
                      domid_t *domid)
 {
-    unsigned int dom;
+    unsigned int dom = 0;
     int rc = -ENOENT;
     struct domain *hdl;
 
@@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
 
     if ( d )
     {
+        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
+        if ( rc )
+            return rc;
+
         set_domain_state_info(info, d);
 
         return 0;
@@ -238,10 +242,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
 
     while ( dom_state_changed )
     {
-        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
+        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom);
         if ( dom >= DOMID_FIRST_RESERVED )
             break;
-        if ( test_and_clear_bit(dom, dom_state_changed) )
+        if ( test_bit(dom, dom_state_changed) )
         {
             *domid = dom;
 
@@ -249,6 +253,15 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
 
             if ( d )
             {
+                rc = xsm_get_domain_state(XSM_XS_PRIV, d);
+                if ( rc )
+                {
+                    rcu_unlock_domain(d);
+                    rc = -ENOENT;
+                    dom++;
+                    continue;
+                }
+
                 set_domain_state_info(info, d);
 
                 rcu_unlock_domain(d);
@@ -256,10 +269,13 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
             else
                 memset(info, 0, sizeof(*info));
 
+            clear_bit(dom, dom_state_changed);
             rc = 0;
 
             break;
         }
+
+        dom++;
     }
 
  out:
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 29a7726d32d0..2eedc639c72a 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -860,12 +860,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
         break;
 
     case XEN_DOMCTL_get_domain_state:
-        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
-        if ( ret )
-            break;
-
-        copyback = 1;
         ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
+        if ( !ret )
+            copyback = 1;
         break;
 
     default:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Feb 16 22:23:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 22:23:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234548.1537757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs6zi-0007xW-NB; Mon, 16 Feb 2026 22:23:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234548.1537757; Mon, 16 Feb 2026 22:23: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 1vs6zi-0007xP-Jz; Mon, 16 Feb 2026 22:23:06 +0000
Received: by outflank-mailman (input) for mailman id 1234548;
 Mon, 16 Feb 2026 22: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=txJP=AU=bounce.vates.tech=bounce-md_30504962.699398c2.v1-58517a5d04e04dcda33126465a2c7c03@srs-se1.protection.inumbo.net>)
 id 1vs6zh-0007xJ-Vt
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 22:23:06 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0cce0871-0b86-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 23:23:00 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fFHN24pwHzPm0PfQ
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 22:22:58 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 58517a5d04e04dcda33126465a2c7c03; Mon, 16 Feb 2026 22:22: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: 0cce0871-0b86-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771280578; x=1771550578;
	bh=q7HFIOeaE/ybQNX7CfL5EmHhsOGesTTjsUOk6a0mVUk=;
	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=CM60rYbqQeeyH3rOTMqg/I/9AWRPihCx+W/JDMWT6iogaoKO2SFmAxkpWRY/0avxd
	 5g9hIPLNJbt7HHWiW1HHOViEQxGMBlMna/To2HXkSB8mXq0a8waS7gubrcJGgrsl2K
	 EPY24M4FK6m8B0dQ+nhmlK09g9dtrladvzZAT6ld2s2b96Ny5husRAl7bQvD9oaClA
	 IcVAnlH7H8QahpfyJFDImh5pfUf7WnU9e1pMwz+iJt9di2OGu3NB14TWw1aesNSu1c
	 FzJQGuR8pkIrsLqCgy85aULh9BG5djFtqvfgEui1/6jHl17tDeppgUeaegJwJn/FUe
	 Jx+4OoCZJahtA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771280578; x=1771541078; i=teddy.astie@vates.tech;
	bh=q7HFIOeaE/ybQNX7CfL5EmHhsOGesTTjsUOk6a0mVUk=;
	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=L1zUt2RzyjhE+OnOfCvoD2h6ZMxjwZZEm3z/ufpRCd5x4Jydk1IaUnGFOpAwzt7ry
	 KYkbDjxhL3PqrsR0tGcMbPCRu9RbGgugMLRlTu54Si4iA+PL2N6CRJL3goOBNDSCu0
	 Esrv2f08dEXguHG8JvM9s9TwatF3dzKzoqTVgiUNavKiMfOYkuridVR509m4wWGSQM
	 1QFZXILfaVyolOftRHvHXZc6nGqkix1Opt7hSuRrBvBIqzOrCEQJbWUMCuB3M7bmRH
	 gDFM434hZRfBfhUofeEJHbI5XpFXwjGL4EZnW5v240ZM/WjNklR1TuiStQr01CdtYC
	 NGNPG1KA6mfAA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/platform:=20Consider=20PTM=20for=20exposing=20package-related=20MSR?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771280577708
Message-Id: <4bcb7fbd-3180-4780-8432-2c62ce24ce99@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>, "Tu Dinh" <ngoc-tu.dinh@vates.tech>, xen-devel@lists.xenproject.org
References: <e7b1721097bd7abd975882f60b282cf7900db58d.1771254439.git.teddy.astie@vates.tech> <2764f432-85eb-44b9-aae9-f1bce410b4b9@suse.com>
In-Reply-To: <2764f432-85eb-44b9-aae9-f1bce410b4b9@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.58517a5d04e04dcda33126465a2c7c03?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260216:md
Date: Mon, 16 Feb 2026 22:22:58 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 16/02/2026 =C3=A0 17:15, Jan Beulich a =C3=A9crit=C2=A0:
> On 16.02.2026 16:09, Teddy Astie wrote:
>> Package-related MSR is actually gated behind "PTM" CPUID flag rather tha=
n
>> "DTS" one. Make sure we check the right CPUID for package-related MSR.
>>
>> Check for either DTS or PTM for MSR_TEMPERATURE_TARGET.
>>
>> The only visible difference in practice would be that EPERM would now
>> be reported instead of EFAULT if we tried accessing the package MSR on
>> a platform that doesn't have it.
>>
>> Amends: 615c9f3f820 ("x86/platform: Expose DTS sensors MSR")
> 
> Imo this really addresses a bug, so wants to be Fixes:.
> 

I wasn't so sure between Fixes and Amends; but Fixes is ok for me.

>> --- a/xen/arch/x86/platform_hypercall.c
>> +++ b/xen/arch/x86/platform_hypercall.c
>> @@ -89,9 +89,12 @@ static bool msr_read_allowed(unsigned int msr)
>>           return cpu_has_srbds_ctrl;
>>   
>>       case MSR_IA32_THERM_STATUS:
>> +        return host_cpu_policy.basic.digital_temp_sensor;
> 
> As per the SDM this doesn't look right either - it's CPUID.01H:EDX[22]
> (acpi) instead. It is the field you're after in xenpm which is tied to
> CPUID.06H:EAX[0] (digital_temp_sensor).
> 

I'm not sure to follow exactly what you mean here.
Which CPUID should we check ?

>>       case MSR_TEMPERATURE_TARGET:
>> +        return host_cpu_policy.basic.digital_temp_sensor ||
>> +               host_cpu_policy.basic.package_therm_management;
> 
> Where in the SDM did you find this connection? (Anything made up wants
> commenting upon.)
> 

To me, we are interested in the MSR_TEMPERATURE_TARGET only with dts or 
ptm, and the only used probing method in practice is performing a safe 
rdmsr (at least in Linux coretemp).

That may be worth adding a comment eventually.

>>       case MSR_PACKAGE_THERM_STATUS:
>> -        return host_cpu_policy.basic.digital_temp_sensor;
>> +        return host_cpu_policy.basic.package_therm_management;
>>       }
> 
> And of course with this splitting of cases, blank lines want inserting
> between the case blocks.
> 
>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>> @@ -132,7 +132,7 @@ struct cpu_policy
>>                           :1,
>>                           :1,
>>                           :1,
>> -                        :1,
>> +                        package_therm_management:1,
> 
> The SDM calls this PKG_THERM_MGMT; I think our naming would better match =
now
> that we decided to have everything else here named according to the SDM.
> 

I can't find PKG_THERM_MGMT in my SDM version; but overall I don't have 
a strong opinion on naming and am fine with pkg_therm_mgmt.

> 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 Mon Feb 16 22:39:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 22:39:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234558.1537768 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs7FZ-0001LI-0q; Mon, 16 Feb 2026 22:39:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234558.1537768; Mon, 16 Feb 2026 22:39: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 1vs7FY-0001LB-Tv; Mon, 16 Feb 2026 22:39:28 +0000
Received: by outflank-mailman (input) for mailman id 1234558;
 Mon, 16 Feb 2026 22:39: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=aABt=AU=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vs7FX-0001L5-Ce
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 22:39:27 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 55d7af7d-0b88-11f1-9ccf-f158ae23cfc8;
 Mon, 16 Feb 2026 23:39:21 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 22:39:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 22:39: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: 55d7af7d-0b88-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Nv7fTH971XI1vl/FhG5GGS+9JTHM1aDqbyiAYa3y9nKBdEFlYrCTK8Mzn9XjrwoorasLRwXk3z646d+N1NPmuIoxWcM05XLCioGJc3aRom96vo+K4GK1TBdba1TiiIe9uatQqIXSltXuaaRj/m2VhhJI+nxop8hBePceWLYk9FNgPEVUD3PgvQJ7jqfYdEqLpzhApll5h56O1U2BxUFYFLW8T51VJdcL9nxWoKxL7WYl+i8GhUOVOcZqJNZ03R6B5xYlJqDOyLPsLsVX/DWgBXfESBZ3smIVwQggDgOhpvMhiTR+fxJ/5YtwXwwcmCfGcJ7ePlqd5e67fncyco43hQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=xHjXK+OGI9aiBsAuFp2tMbIuPCJIHSyjqu3esmX/aQc=;
 b=wUEO40kcN/WwZsl5PXhSg0AeYmOGQsfrMNfCJO+2JTH+TpNd4NzaU7syc9wwGXS4kDlIwcz7HTyILExNhXVIOJCt4TrZIAz8+f0klqOwiXSyOesBzOtrEuYbFDSjZ1HpNaHsMQV0JpDKMvf/j6dSrkxZa1uzSG/qKWH/eGz6NDNLvT/bVHCyRHJiYLeZROgoImCrB23Eja7x4N0RhxRHK1++OKthWyFFdseH3cnRn4Ob8/K6e9pfFcfDqKr16jcIkvlWSxO2Ke8TU3y3x8rDiek04GoCEqNDKojTliE47J2vq3MPYfhVUmBfJShFM2OKFyv9WxBl/X+G6djeeEmf7g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xHjXK+OGI9aiBsAuFp2tMbIuPCJIHSyjqu3esmX/aQc=;
 b=QqlKBLbfa6GjgmQl6bBzeknZpOlHaV4HkflKOELxFLZpkiGDhtMXOR0zq671W10E8IXpxX0jU1IiY4iqLNu5qBtaef54n3/DByrkC1ck22BYaTydGUF2Zvqy8PcgbHrj38lZH0OxjnVvBcedVkHgWZA6Wc4U9x1L4b1PAyPW6gg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <4fa87ec0-8daf-4c62-bf34-56b23cf06531@citrix.com>
Date: Mon, 16 Feb 2026 22:39:12 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, teddy.astie@vates.tech,
 roger.pau@citrix.com, jbeulich@suse.com, jason.andryuk@amd.com
Subject: Re: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 xen-devel@lists.xenproject.org
References: <f06b7e86-4188-485b-8f0e-c55bc72929e5@citrix.com>
 <20260216161023.148269-1-abdelkareem.abdelsaamad@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260216161023.148269-1-abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P265CA0026.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:387::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS7PR03MB5608:EE_
X-MS-Office365-Filtering-Correlation-Id: b7043e04-cc41-4c2b-1901-08de6dac376e
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?a3dLOHVQZnJMWWtqdmdibWt1SUg3Rk8rcXdiQ3BrdE1hS0VGVkJlQ2toRzFz?=
 =?utf-8?B?Nnpxby95a2ZUTzI2ZmMxbWRTcExidy9GbWlVSTRxL2dDTittYi9LYXlwekp6?=
 =?utf-8?B?cUIwa0MrV2lrR25xNTFCR2VmRnF5Y0xqRDUzNzJvSDNKTDZ3a3F0NUZGNHU0?=
 =?utf-8?B?ek50dzk2MGpBTHFpTDZlUysyMXNTK2Z0YVd5c0x2N3Z6bXhzTU1GZUxlYlBE?=
 =?utf-8?B?WHlXRU9VQUVzL0R3SktSQ0xWbnhRU3J6cFB1QmNMcmtIdkZLVnFzckxRcWc0?=
 =?utf-8?B?QklHeXl4RGNNcjVWTVlpUUMwMytOYWxKalNBYkFCMXMvR0o4MTFRQXRuTHlE?=
 =?utf-8?B?WWlwUWhLcXoxdmxYUXZleFdMUGpHQlB6cVEyTmRWOU8zMDJFYzNORGhtWkg3?=
 =?utf-8?B?TGZSTHJOS0RuUFV4VmEvdFhPenVJMW10d3FTVmdsY0JiWHV5NnJVOGs1R094?=
 =?utf-8?B?TnJIYWlhVllKRW1tUjR0ZkZKa3FVZHdLS1hIaUdrZFA3NmxUWW40d3Y3THJo?=
 =?utf-8?B?N21RQjQrdEw1N2tIb0RDanVDWEVZRVdUYUdSWkpPcm9NTUpDRGozVW1RUUo4?=
 =?utf-8?B?dVNpL1hXTHNiN2Y3MlFlb1ErSnFiZ2NQM2pUdkxOdDI2YUpKNGFVeDduZUx4?=
 =?utf-8?B?MXBsUTVkNkpzZWFzdTlNUXVLa1oxQ21RMEVPN1p3T2dyUEd5a09DRnFMcmhl?=
 =?utf-8?B?TFN2RHNrYWVxejZlUk9vWG93aTdDSDNwTUhjVmhFaDl4ZENiR2x0V1hNK2tI?=
 =?utf-8?B?c21JVWZlQmRFQzJTR0FxWTgwTTIrZVFFWVNBMWhZSFcyU09PVjdlZmFWQ1Bm?=
 =?utf-8?B?Sk1QSzBwU3VGdjRWMVErc01pK09ZQmVMREFFMGRaRjBWRzhBU3JraW5OR2xy?=
 =?utf-8?B?UEFkUFJrbDVFczlIMVcvTEtkaHRzeXIyV3gwTWdVOWlrZWtqSlgzcmZHalZI?=
 =?utf-8?B?MUJibUxNS2RLc2lvc2NEQXBVbDQyQ1VBS1pibzJlRGlJb3ppbjQxdWw5bjU1?=
 =?utf-8?B?eE1kZjJFei9mNTR1VFBDWDZhVXNsSWNRdXBMeThOdTg5TlB1U2VvbnBmZWhk?=
 =?utf-8?B?RDhVYlIzWVFybkZiaEFKKzJINW1DeEppeWR4OG50NXh2NWxnczFFa0twVTFv?=
 =?utf-8?B?TFRlOU1WR3NrNy9ER2VTdTBhUzlkZlRaL1dJQmNLM3dtOCs0YUhhZXhWRkpn?=
 =?utf-8?B?cUlVMzlSZUJRTDZzZDE1dklBaThVM1E2cmZzekg2aFJHUDQ5SWI3eVNwOWY2?=
 =?utf-8?B?ZjJsM0hIVG5DQ1orZXhFQVRydjJwemloUGVxVXRyZGM5T2p2WTZ4SVRLR29o?=
 =?utf-8?B?bjc2QUk5ZlZuVU5XR2N6dWlNeEw2cHVDbkM3L0hDcHdKNkJYdi9KRTdsWE44?=
 =?utf-8?B?elYrcmVZcU9QR25vWUZCdGdNZjR2Qk5PZ3ZId3g2YTYxaVpGVFRxOUFWWEFz?=
 =?utf-8?B?WG1RZVpuZUhOVXlJNGQ1c2ZRdElmaFVIYm9KRytnQkx0TWcvQ3VQaGtVcU1v?=
 =?utf-8?B?ZEFLb01XUkdqTS9UN0hMblZjdjd2NnBiWjNycEM5eENyN2FpTUtSVElSTDlW?=
 =?utf-8?B?ZXFTTHBESWVrVHQvNEdVZUdUa0JtbkJGUjM5NER5cVNoK2hNWSttdXAyb2ZX?=
 =?utf-8?B?Sk82SFlETU5LblVTc1VJQ3BZaGFXNDhMLzRUQ0tzVlRDZm1sRjBMRmF4QjBT?=
 =?utf-8?B?NHQ4ejhEbzR4Q1VrcUVjd3BtNDFQUW1ZZ05oQm5HMUkwQ0RidnljM0RpSWp3?=
 =?utf-8?B?ODdWK2thc3JGM0JRY0lyc3hnKy9WbDRaL3V6WmVSZmpsWTQremhqR0J3Y25F?=
 =?utf-8?B?U3ZNY0hKSkMzVytnZWVQR2pINVBDRXNzcW1qTVFBNTZoWDlSbitJaHh3UzM1?=
 =?utf-8?B?c2U1K0NaNGxoczRTcmo3VmxlMzEzWmtKTTJzSEdrOWRSVkJualR6d2ZBcHhK?=
 =?utf-8?B?QmNvUGtBa2tzaWFYV1ovZXczbWluZXZaNmJ1d2pvMjEvcis3RVp2MS95bnAz?=
 =?utf-8?B?NWVBL1FIeGpUSms1bHA0WWkwZkdwWEZZNWRBSEpYWGFpaXpTRzF5RzNsZDFq?=
 =?utf-8?B?b0VmckluWVpja0NqSWtXZlZUNkZhenpjVkRwQ0tJM0VweDNQTjkxcHZXenFt?=
 =?utf-8?Q?DKro=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OXN0bnRqL2J0VElvMDBqL2d6TnN1dVBWdlBtSkl0azJZMUZkTk5tOTZiMlVi?=
 =?utf-8?B?TWZoL05meXZrNDk0R1c3dy9raHlCUko0dTZuVWJSeVRrZmFkdDNJb2FLVXVS?=
 =?utf-8?B?UHIxWnlhOFhyNW9LSFY4SCtFVGJ5NDFKaXpZaGp4bXV2OTVISW85QU9UR3hS?=
 =?utf-8?B?cWt1VVByZWFXYjNkejJFWTQ4NUhqQ1Z2MkZtSVBleVFmc25sbVFzdzBhZUZY?=
 =?utf-8?B?WVhDYnc3b1c1eUM1bmNjS201eHdGZXpJd2MzbFFGcFJWcUVDTTU2dXk2Y2NH?=
 =?utf-8?B?aTB4c29YZEVxY041bTd4TDhqOE1zU01VNU5ZdXlwbHZMSHRuNEJpVjdBa3lG?=
 =?utf-8?B?Z0wxaFZGb3hTRGJNZkNHZUppclBmQ2Y4SWdiTzF4VHA0L2xmQWpFN0NKS2RZ?=
 =?utf-8?B?STZmSzNtWXMrN0FYeTdWcFpySkRnVWJRRTlzUE5NRWJHSGtROTd0UjgwbU5M?=
 =?utf-8?B?MTNYWDIwOGsycm9IeUIzeGYxdFdNOXg2cmtaS0xZaG92NjNYOTUzQ2ROSWZs?=
 =?utf-8?B?dXpCTXFlbE5mMUI1Z2pPbnErQ2pCclNkV2NnTjBBRVVDRnRnM1VHWFEyM3lu?=
 =?utf-8?B?RnpCVHFhZWJmZ213RXltaHZrcXpnS1liNzhIam5waHdMWEFpSzJyNFhjYkxq?=
 =?utf-8?B?SGx2NFp1NmZtTDZ4RS9URFY5SEhwYm0zblZrV0tRUUZZdmR6ajFFV3gyMVlw?=
 =?utf-8?B?eEtKNjNQQUtzNTdNcGZpaEVoTWpOQ01pUGlVOVpRbHMwQlhFRDJqd3BPZmVZ?=
 =?utf-8?B?ditueVMyUkI1c2MybklldGRVR0VwZGpobittSmltRHlTYUd6VXFndzVlTHpF?=
 =?utf-8?B?L1VkZEMyaEhxQmxFYkNMNW84V2xpQ1QxMnlTSTdDOG5RVkU1bkZ3VGdNc1lX?=
 =?utf-8?B?YzBhRloyWkpTRDhKNUhMQlpuOVFuejZCQ3FURmo0VmJoRDNuVmtJS1lmY3FG?=
 =?utf-8?B?ck9hTEhlblhsYVgwMFlZdE9wYit6Z0xyUW55d3JHTTlzdDQxMnVNUkF3cVU2?=
 =?utf-8?B?dUY4WHZUOXFqTU55WS9xaFdpT3lnbnJuZWViNm9aYXFsaktISm1nRWtGWlY1?=
 =?utf-8?B?TGhEbGRLZ2M5RENIdk80VXRlWVdOWTl5NXlqbmdNZTVTWEs4V05uSVFnQ0ov?=
 =?utf-8?B?SmpHdHo2RE12b2NhSFhsQVYyNE0xSWRRd2VXZUoyUElORkFXOG5WbVMvb3Nt?=
 =?utf-8?B?L1pqSkNxaVdwcnN1U2ViKzBtem1YanFHMEZKNlZJSWRHWXlMZDdkejRuOHIw?=
 =?utf-8?B?elBOMjZLVyt0QlliVjlvUlBGUjZmRUNCbWpITk5VOTdPbmM4S3A1U3lybkt0?=
 =?utf-8?B?dWp3WERlQ0g2a0pyczcvczRrVWcyRXZUSnBjSSt5ekUyQmhPTGM4T0Zuckpv?=
 =?utf-8?B?NG1LT0s2ZXVSNE1hNi9TcXhRUHdkYlpINnFEREg5a3p0NUc5WTJ2cHJ4Z1Z4?=
 =?utf-8?B?bHdCSnR3UUF4dWl3MlY2aVFsalB1VUcrUU5NU2p3ZFJkdktVaUhxN25mcElt?=
 =?utf-8?B?cU9uMHdyeDNvZ0g5RTN1SkpHMmdGdm0xbU9kUGtxY2MyUTlvRnVnMUVZVjRU?=
 =?utf-8?B?WDVVRy80TXpIbXhJcHB2aDNMQkt4N1FlK2dETXpkaFNOckF2WGZ4ZlhGaCtT?=
 =?utf-8?B?LzlULzZicUJqWXd0dUViWXI1Z21SRUQ4Q3Q2dzJVZnJwQWxFVzZJZ0xGYjZ2?=
 =?utf-8?B?SjNYM1M3akVCSENUWWZ4VDl4Ti9HTTBsUkNhY3pqTFFBK0c5Y05XcHhOUjZN?=
 =?utf-8?B?eDFmb0krVG9nOWxSM0RKZUdILzNxaC9RREpXYkJkY25XSHRza3ZHSVhtVnBq?=
 =?utf-8?B?SDlnQUNCTURvZGk4UmdRMXRjVmJSTDRkWHNiTEcraWY3Y2xjN1dLbmg0eUt4?=
 =?utf-8?B?ZjE4YmxUM1R5UU84OVRUZnkrdHZFOWRIaVppdnVBMHNWVlJNcVhWcmxDbDhi?=
 =?utf-8?B?bXhRTHN4L0pNNGZJd1o1UlJWNkd3MkZadllzRlQ5SDlncXFlakRrdFJmZUVl?=
 =?utf-8?B?Rmw3UFlMYUJ3VUd6dks1czhCMENhRzhSd2VxM0VUQXN6d0FJWXhtY1JRSnJm?=
 =?utf-8?B?OWRFejdKWU5reSsrQnBNbXBOUFBWSk5pSjFybHM3T2d3NWxuMXErY1NEclNR?=
 =?utf-8?B?NUdaNlg1WkxvczR5RGRkMkliSWczVUJQdTR3N0V1YUJYRU5qVzBXSmVITjdV?=
 =?utf-8?B?bjZja1VqemNaM1A5bzBiWGhaSDNuRkREVWFhYzZ4TnpDUnVlS0NydDdIRjIx?=
 =?utf-8?B?NkJCbnlHNU5Ba0sxODh1dTdkbHExNHJzNnZOZnhudWJORmNPSW4wV0Zib3k5?=
 =?utf-8?B?aGltdjFXOGQ0dG1FMmxuUXAzTDZOZ2w1Q0ZScTRMTnhYSU9haS9kZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b7043e04-cc41-4c2b-1901-08de6dac376e
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 22:39:16.6644
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wILKlPX8q27vxLLEFIUrToNlQrYaHZ1Ch7y44OFQ4L7LxSsE5qZ7D2yNdf9UyC/hiMY6nsQJFfNuEx980UvBI7BlqsfprlfSeRxocF1ETKA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5608

On 16/02/2026 4:10 pm, Abdelkareem Abdelsaamad wrote:
> On 16/02/2026 10:15 am, Andrew Cooper wrote:
>> So what happens to the NMI we're trying to inject when NMIs are
>> currently blocked?
> Ah, I see this...
> The handling flow will eventually land on the function svm_enable_intr_window
> with HVM_INTR_SHADOW_NMI.

What happens is that you drop the NMI on the floor and discard it.  Note
how svm_inject_nmi() has no return value, and therefore must not fail.

It is buggy to check the blocked bit when injecting using this
mechanism.  The blocked bit roughly equates to "NMI in progress" in the
guest, and it is explicitly possible to queue another NMI while the
first is in progress.

Both pending and masked being set roughly means "One NMI in progress,
and one queued", which is a perfectly fine state to be in.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 16 22:40:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 16 Feb 2026 22:40:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234566.1537778 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vs7Gq-0002mc-AD; Mon, 16 Feb 2026 22:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234566.1537778; Mon, 16 Feb 2026 22: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 1vs7Gq-0002mV-7B; Mon, 16 Feb 2026 22:40:48 +0000
Received: by outflank-mailman (input) for mailman id 1234566;
 Mon, 16 Feb 2026 22:40: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=aABt=AU=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vs7Go-0002mN-NX
 for xen-devel@lists.xenproject.org; Mon, 16 Feb 2026 22:40:46 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 87aeaee2-0b88-11f1-b164-2bf370ae4941;
 Mon, 16 Feb 2026 23:40:45 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb
 2026 22:40:42 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9611.013; Mon, 16 Feb 2026
 22: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: 87aeaee2-0b88-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ab42uvZD+yIpts01eCNdZZQ6b33NVhvqeCG37eCRG99Z977ODCbbd+3/PkbBfsnOZAZZ5xGTuZoZ3qaSxJISrUhIr7KEoeNKygiDqijltYWYVAmO/3cdS7mThmCIjHVlToNr5aZ21F2l0GKXXYObksOoe5fnpT2wqkYcPjLTo3tTowxhK9X+MnpCJjMTAIwNoel648PhRA8kMC8iuDJ/7R6VMxMUUMLFcLML4/aJm2xpqOYRCUFysmGcjV7dZM0zfCcFPrZyyl+8SHfeauCADpAOiVmsGLBDt0ICxf69N+lfIQCirw7/7ovWYbRB2iXDk3zRuzFQjQTuJ9vZicZHGw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CCyj+0dMbRlPT1FanqzDv8gxTeACmdkaogxjs3IUObQ=;
 b=YCJrfBbmGpqC6tV0EbUsBBp8cyvBHeR8BdRr2j71BU+2eQPB0mjoCSNVhW48BpxIftiCFTL1LjFDe2HPy6vQMwmMnkGPP4dn8XXCrmb5Y0jYPOE/ysuxU06LWfKJfNbKbA1Y/Cr7Nm+YiZNb9sj331kIyyw+6iI/ZpjIreqQLaPBdaP/1oEcKTa0SL/UXJpCdyswpwV1AY0keNsoeuPMXT9NwBH0mB99VjXRlK4wpnirgxArLxkI9A562tgu95CFktmdcit8qa2akrJ5UzTMdPh4Qf9/bgBAtvVKfeijp1gRzz1Dz3YtExYZHeXXix1Z5GsV1yAUfhf97uPhFnnHAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CCyj+0dMbRlPT1FanqzDv8gxTeACmdkaogxjs3IUObQ=;
 b=m+UmHRU6wHdQhLZRmMACZvPFoQ03JDhu5tPAtXdsCbH9I08GzNiRadN+ASMDVsN22/aL2dG8YPm0+3e6sV/ptV3RWgYezsuss3mrHMqtOnT6cC93UgMaMHy9yANEnAjqAoHRuEhRpQ/EqicVEnelNyQPQE+QFbwySSK+r6lbaaQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e61c00fb-05cd-40bf-9aab-1b6281399bc2@citrix.com>
Date: Mon, 16 Feb 2026 22:40:38 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Subject: Re: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
To: Teddy Astie <teddy.astie@vates.tech>,
 Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>,
 xen-devel@lists.xenproject.org
References: <cover.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <ccd7d351fcf47e6a74bd6bdfe3fe8bc9f5023e7e.1771177081.git.abdelkareem.abdelsaamad@citrix.com>
 <c0c2e0cd-173a-496f-a643-7d19c9418a2a@vates.tech>
 <ea21a66e-a4ab-41f9-92af-0111292ecb3a@citrix.com>
 <626c3f3b-9176-493c-9d96-e2a5344e7100@vates.tech>
 <518e7576-a88d-4172-bf93-f6a368c173d0@citrix.com>
 <87801307-0c7e-4d34-9f14-645c1cd73426@vates.tech>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <87801307-0c7e-4d34-9f14-645c1cd73426@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P265CA0033.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:387::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS7PR03MB5608:EE_
X-MS-Office365-Filtering-Correlation-Id: 66a1f2a5-923f-40b7-dcf4-08de6dac6a69
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?dmpheG53RVNSUm1ncUl4V3RRMkw2c2wrUXJiZnE4NG1xLy9TQWVBNm94Ym1W?=
 =?utf-8?B?VDlLSjM4aVhvN3RBUStjcksvOVNXK3UyeXhTd3pTWVdPdmFhOUVPakhBTitM?=
 =?utf-8?B?SGQvaE42Z1ZLUW8wUGtyVVBzb2E1ejFEZHBJZnJrQi9ST3VaUThlUG9RaC9L?=
 =?utf-8?B?TEhxSGZOSmYyRkpFVmRCOWJSV3BvQkJNck9CbVVlUUV3UysxVWZpNTVzWDBw?=
 =?utf-8?B?UVpnUloraUk0V0NsVVB3bHFXeTJMbXYyWmtaN0RsQnVYbWJTNGI3ejhBQmFI?=
 =?utf-8?B?dzhTcnFlUGI4T1p4SEJLcUdUdzNERG5WcjRZRWdWeE5TTUlsSndDUHRiSVYx?=
 =?utf-8?B?a2ZNVDVjRklEb0NzNHVRUG1LcU9aWDBQRkZCeGxrM2JYUjFNMG93eEc2Z3pS?=
 =?utf-8?B?WGlPaEtrVXZMblZSa0l1Y2pLYVFOZ1o5RUZyWTBDK2VONk9YeVNsNjN0Vk9L?=
 =?utf-8?B?ckwvM1ZXMXlwTmxSUlpqTmJ1aElNSXE4Q3lVVzNEdCtqNmVyWXFHVzdHbGJD?=
 =?utf-8?B?ZnZZTzlvYVZiTDJ4Nm9hVnEyMGx2N1JGZk5Dc3g1Y2tIL0ZLYWNMRVBNcWc4?=
 =?utf-8?B?d3JtN2FSK1p6bGRSVERXSDR0Z1hUQ3pRdUJkYVV0bndyVmxSdmdXYzY4NlJH?=
 =?utf-8?B?SExFcytqUHVJaFpZTG1CTmpWcWRLR1U1NzlQTjZYeUdnMlhBREtlTXVEb3kw?=
 =?utf-8?B?dnVUMUV5cjdYemF0dTlNVmE5OUk2Umw1RVpwRlBoZlJKK04xMlFUUnhHWG9n?=
 =?utf-8?B?Wi85Z2QzOUQ1WFpOZ29IWEt0OWlyZWZ2ZlZNMzRHK212eFdlbWN2M1grT04x?=
 =?utf-8?B?RFhiODN5TWdEU0hHZTBvODUyb0VOT3VyNk12eEVmbFppdmI5THJ1M0tkc0VU?=
 =?utf-8?B?bTBxNEM5d0U4ellXRDRwQ3NaaUNQcTRBQkhiaGdqNGdwN3RuNTJLME15Q282?=
 =?utf-8?B?MWpIbUJzVWVZUHNDaXlxRTJaT2VHa0V4Yk5oeDlPcG1RdzFOUmQ0NVk4TEN5?=
 =?utf-8?B?M1lKY1RQWUZlNXFYVXZkQnVTN2FQY1AwOFg4TzFGNkIrak84VFRDS3pZd0NP?=
 =?utf-8?B?UlladnA4T1lmaUlWSHpONm1adlNYeHBQWjhaeHcrVlpZYkZtYlFsWS9tSDJh?=
 =?utf-8?B?QVp1aUwvMVA5ck5FSS82dWxHU1FwSWV4SG1ITkorblkwT1YvQ3ZLRitkek5X?=
 =?utf-8?B?a1owMTJIbXNReWdSVWhuQnFMNjlWS3RnWGlBNm9melRiVWg0bVpNZ2VJWWhi?=
 =?utf-8?B?ZHd2dVZBdEgxYmtCMEZkbjYwWGFDN1BVSDRoL3NSS2FQK1JacWpZRDV4MytW?=
 =?utf-8?B?SmtBN0ZuTDJJRGNXbGFUQWRwdG1mS1R4Y1FnYkdPZkUwRDdPZHJ0K0d6WnFT?=
 =?utf-8?B?dGQ3T2VXSHhWVHhnZHhxRHZZUlRKeWI4c0NrcjQzWXh0S2UrWDdYRVA2ZXdi?=
 =?utf-8?B?SStYSkpPbVY5cGlSamlRRWREUjdwcEg1RVJucGNpdFp1elhaNWxveEpnZ0lU?=
 =?utf-8?B?b2Y5TEo4V3kydEEzZkxjZktKc2ZvYWc3OXRBdzVPZEZhMmxwTi9DbmhxMTNX?=
 =?utf-8?B?d3RVNGk1Y29XdVh2dXljUEtmRWhadkptWTBNRXdZdGVZQnF4QjhpZUZXKzVF?=
 =?utf-8?B?TGYzYW55U1FjRjgrQWtaV3JGZmhkczByUVFzUUt0UTNQNS9XTFBZVEFydUxk?=
 =?utf-8?B?Z3BYb2ptRHd4NkJ2VFFCcVF2YXlMYW1sU09CZWlzVVFwdlhKMEdSY3hSVG9V?=
 =?utf-8?B?TnFUTjdwR0JYNEFUTXJ4SGVJUUIzSHNvNkdwS0R2eEp1TUE3dGNmT1ZOc1JT?=
 =?utf-8?B?TGk5WlFudnc3WkRHNldQbnZaM0dGNlJrNmNNSnJYemJZbXQzR0xxT1VCN3Fa?=
 =?utf-8?B?cldJMkFtQjB0RHFIQWR1NTg3anlWN3NQTVBuZlNCNW92a2FkcEkxTUpqVmJr?=
 =?utf-8?B?UFovRWpqMVZRdUdSeHFXTGw5WldtTlRWays3ald6aTEyakxxWWtJcDlvVXZ4?=
 =?utf-8?B?dTFlZmJUVE5VUEwrZTRIeThOeEJHYlF0MEI3ZVJ1OEJsQ2xvN0M4cE55eC9N?=
 =?utf-8?Q?CZmiQs?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NnpwOTJ1dDdpeWJHaS9raUd6YndnN0hSSlA4a2tFS0dXQkFxem5xYUZETkt1?=
 =?utf-8?B?SVlNKzBDNHRTYkNXazQvMnBPd0g5Q0F5ZFFlblR1MmtacVdPME5lVzdycGNp?=
 =?utf-8?B?V05BZE95ZkorZWNBcVBrWE5KL0tvWkZUUGhCbkZtTnVNVjJ3eWNCYmhMNi9p?=
 =?utf-8?B?WXVSQmVWRW9SRkxxQnpoSGRTM1RxbDdzUjFLVjZHWmVZV05XRkZSSDI3SVgy?=
 =?utf-8?B?VWhVWExPSFpkR3JqMWdsb1hteUVxd1h3K3ZURUpNbXd5ZndRSjhqSDFwejNZ?=
 =?utf-8?B?emdXYUdyOVk5amErS3orcW5KY3pKcFVFUDYxMTBZMjBMZGlIN1ZUVXgwV0Rv?=
 =?utf-8?B?OGliTWx2SnVQc3d2UzdYbFI4enoyU0c5TlpVT2dpUnA5R0djY1h2LzhKUG12?=
 =?utf-8?B?eFdIUFY1T1MvbmN4WFh5aUVsOHRBcElhVGNuQUFLRHR5LzlYWURTVUZnVW43?=
 =?utf-8?B?azFuRXNGRXMwNElDRkRRWE5mWE5WV0w3MVUxWkpKWWJKdlpRcm1WMzZrZ011?=
 =?utf-8?B?RDkxRzhGY1hDeHliZDcvMTd4dnNyNjBYWkVEdEF3TTA1NUFoYjR0dFVvSWZQ?=
 =?utf-8?B?K0lsTjM0STRkbElUNjIvTkJkVDdITUhhNHRucVhIVmxHZStlcVlxdlFEemZ2?=
 =?utf-8?B?WjZkb2dHVVREM2RkdkdkMUFQdlhxTW9hRkl6K2JtMTlmSHBNZlFuNUxJbDlr?=
 =?utf-8?B?K2pCZTBqRUNNOGtlZkJ1U0JlS1hMYTZYOVY3aWtkdllpbnU2MTBBM2RKNTgy?=
 =?utf-8?B?Z3N5RjNidHBVaVJud09oMDdXN05SZU5semFsSGhkMDI1cGZmNFNmSnlucnZy?=
 =?utf-8?B?R2dwTDVXTE1XN2FKZTFlWXlzUjlibktzNjVDbVZIRzZ6SWdnY3hEcEpGY1BC?=
 =?utf-8?B?bktWVlhiYjZ5dUlHa0hRcEUvSjFXTEd4eS9hYXF3akVCb0tPYmswNXlzMXBx?=
 =?utf-8?B?Z20rQlE4WGJWRmt2S2hPWU9TY1dPc3dHWldOSGZKdjdaRHUxUDRZaVBxNEM3?=
 =?utf-8?B?RDdoVnhHQjlUUTRGYm5ta1RtY1N0YW96S2NSUFJ0NS91cVJ6cnhjYXdxdEx4?=
 =?utf-8?B?Uk9odU5ycmFGamFEVUFBbkZEcmRoUzZ0YkxJdzJCYkkzR284eG5BU0N5ejM4?=
 =?utf-8?B?cXJwVDNnbStUOER6d04yTDJYa2tBV0JjemFXdExLbEVJbnVRTGdsMW9XNUVm?=
 =?utf-8?B?SVlRUEdXbXpqUEtoM25yUGxPVTNzZDlhVVlkTkRDZFJMS0RLOWZZVVRtNzBD?=
 =?utf-8?B?U0tReEUyWUthVnVTWmwva0wyb2cxSjRYTXRSYUNrVGNOV2w1T21MYXZYVnVE?=
 =?utf-8?B?anZrR0JaOHdpQno1NmtRc1VkdEJvelAyS3dXS29nNStkMGsra3JsdlFMTHZQ?=
 =?utf-8?B?dm84bVpSdXkwWGdFOG5wNHdDT0lST3plb0xRM0tTVGxsUElrRzg1T3BhdUM3?=
 =?utf-8?B?RUthNFExVHBOQTdqSzdEZ2pJS1k3UTZWTExVVFQrZW5Qa01IcmRWNzJGR1dq?=
 =?utf-8?B?djJvTzBaVW8xQWNsalQ1M3oralJIK3l5dDY0MHN3elZFTC9oZVpxVTN3KzFs?=
 =?utf-8?B?dWtzVGxLMTNYZEMyQzgzL3YxS0Q0TXB3YjIxSUU3U0dmZC83VzBmY0MwL0RT?=
 =?utf-8?B?ejk0OG9vdVowYjRkQnNLYU80NURjVzBpakR1emIxUWRDejNjcGJWZWh4bzN4?=
 =?utf-8?B?K1hsaiszQWZzTlkyL3hpOHlZK2ljRWVTQS91YkV5SWFUUjZnem5nOUFITWR4?=
 =?utf-8?B?T1dmTTZWMlNuUnhEY0I5dGVnOXBJeWZ6WmRrS3dSMXpFc0lIN1E0TXpOSnlW?=
 =?utf-8?B?eE5LbmFTOXNoM3Z1S1k1YnNBWktMc0VkWStKY3BwL2hzUFNKQmRQdk0xckxI?=
 =?utf-8?B?Wnlnd3QzSW91amxFYXBMcEQ0VXcxN3crLzNzYVFlNWZvNjdKeUs1a0pEVnpC?=
 =?utf-8?B?K0pOc1VQS1ViUjlpbzZOZFRYdXNEa2swaFZ1YzUxQmpFTGZkR1o4NUsrWkdU?=
 =?utf-8?B?QUQ0d1Q1MjhqSVJOVjhpeC9hVDkxdGpPcloyaFhOZmF4NXMvTmR6TGdVYUF5?=
 =?utf-8?B?UmM1OTBGcWgzNGRJSHZUdENMWmRMaG1kb083V1o5bTd0WVIzZkYwNGpERi85?=
 =?utf-8?B?ckczZW05ZmhubWFFbDZuRmpNaTBISnpJUHR6Q3pJdTZRQ1o1L1FIblF6UTQw?=
 =?utf-8?B?Q2RSWVY0SHVNaHZHcjQyaGtYV0lSbWMzeUh6NkFkblFadHZ6RFBtSVkyTGs2?=
 =?utf-8?B?NHZ4UWQ4b21wZXNCZDh2c2R3Z3V5aDVjOGZJR284dCtzdFlVNUpsczJJNmZT?=
 =?utf-8?B?ZmdUdmptTkt6ejcyMDdrSC9NNjJnVHhTMENnczRpejZ5cXRCWnh2bmxoVmtB?=
 =?utf-8?Q?07mV25+eJd01Zbxc=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 66a1f2a5-923f-40b7-dcf4-08de6dac6a69
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 22:40:42.0904
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: f3xWfZ0ywFiiKCaJfVSRFojzIP5S5UOvuqkDQRkhRH3PDlQJ+w5LIbAQyB+WJfeIJcLX55vtvtUXAy6myGOE34yKS2UCD5iUGPFwcRqq2c0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5608

On 16/02/2026 1:10 pm, Teddy Astie wrote:
> Le 16/02/2026 à 12:47, Andrew Cooper a écrit :
>> On 16/02/2026 10:46 am, Teddy Astie wrote:
>>> Le 16/02/2026 à 11:16, Andrew Cooper a écrit :
>>>> On 16/02/2026 10:07 am, Teddy Astie wrote:
>>>>> Le 15/02/2026 à 19:24, Abdelkareem Abdelsaamad a écrit :
>>>>>> With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the VMCB
>>>>>> and handed off to the hardware. There is no need for the artificial tracking
>>>>>> of the NMI handling completion with the IRET instruction interception.
>>>>>>
>>>>>> Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hardware
>>>>>> accelerated feature when the AMD platform support the vNMI.
>>>>>>
>>>>>> Adjust the svm_get_interrupt_shadow to check if the vNMI is currently blocked
>>>>>> by servicing another in-progress NMI.
>>>>>>
>>>>>> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
>>>>>> ---
>>>>>>     xen/arch/x86/hvm/svm/intr.c | 9 +++++++++
>>>>>>     xen/arch/x86/hvm/svm/svm.c  | 5 ++++-
>>>>>>     xen/arch/x86/hvm/svm/vmcb.c | 2 ++
>>>>>>     3 files changed, 15 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
>>>>>> index 6453a46b85..3e8959f155 100644
>>>>>> --- a/xen/arch/x86/hvm/svm/intr.c
>>>>>> +++ b/xen/arch/x86/hvm/svm/intr.c
>>>>>> @@ -33,6 +33,15 @@ static void svm_inject_nmi(struct vcpu *v)
>>>>>>         u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>>>>>>         intinfo_t event;
>>>>>>     
>>>>>> +    if ( vmcb->_vintr.fields.vnmi_enable )
>>>>>> +    {
>>>>>> +       if ( !vmcb->_vintr.fields.vnmi_pending &&
>>>>>> +            !vmcb->_vintr.fields.vnmi_blocking )
>>>>>> +           vmcb->_vintr.fields.vnmi_pending = 1;
>>>>>> +
>>>>>> +        return;
>>>>>> +    }
>>>>>> +
>>>>> I think you need to update the clearbit for tpr (related to vintr) for
>>>>> the hardware to know that you modified the vnmi_pending bit.
>>>> What makes you think this?  The APM states otherwise.
>>>>
>>> The APM state doesn't appears to state regarding this;
>> The APM does state what is part of the TPR cleanbit, and vNMI is not
>> amongst these.
>>
> APM doesn't explicitly state that; though KVM assumes that it is and 
> sets the cleanbits [1]. I think we want to have some clarifications from 
> AMD on what's actually required here.
>
> [1] 
> https://github.com/torvalds/linux/blob/0f2acd3148e0ef42bdacbd477f90e8533f96b2ac/arch/x86/kvm/svm/svm.c#L3707-L3708

I can see at least 2 bugs in that function.  AMD tentatively say that
vNMI is not subject to a cleanbit, but I'm waiting on some other
clarifications.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 07:35:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 07:35:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234608.1537787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsFbd-0004X5-GW; Tue, 17 Feb 2026 07:34:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234608.1537787; Tue, 17 Feb 2026 07:34: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 1vsFbd-0004Wy-E2; Tue, 17 Feb 2026 07:34:49 +0000
Received: by outflank-mailman (input) for mailman id 1234608;
 Tue, 17 Feb 2026 07:34: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsFbc-0004Ws-JG
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 07:34:48 +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 1faac922-0bd3-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 08:34:42 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-43638a33157so3766393f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 23:34:42 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a5d156sm35521307f8f.5.2026.02.16.23.34.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 23:34:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1faac922-0bd3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771313682; x=1771918482; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0zMZwaW1v0S3BGtZLua8EiJA+CKX4LEOVBK0QDdRmjc=;
        b=PneX4hLnm4AgPJ83dkcQOvQONHxi2Q1jdyGK7eMqsbcqx6ILdK+dYXvKaBeuvzjWgg
         lTyn3kqn3dp6mKPvePH/gMQ+UW1ic9oqqloybId8FwzuTch6hSnvaX38fJYua/TmOblg
         b9hBMVIc/HZCynSPaSuPc6kf/jgz5KsYVWph0Df06yDsBXosq6QlZ51Kl6Ar5huh5VvE
         NkWxVSTkuXS5yVgbNtXRIoFxGPpxzxSKIrl7GLqlCqHpwZvc/bBVMu5N64edGfHRGKrd
         xPusSSdcJUInuwhaLGDtlesFIaU/d4iqYn3QI7IqZBaf3ZxTnQkdiaDv/qZObGIx8bCN
         Gxzg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771313682; x=1771918482;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0zMZwaW1v0S3BGtZLua8EiJA+CKX4LEOVBK0QDdRmjc=;
        b=XRf+hkPfBHHK/kohvc63sHHGNQ55EIoIYfaqPmKF++i+Lhy3DsmW/2REVg6i3elira
         l54D03Q1nbzyuKM4RBGxkOrqYGOhxBdC4batpkJMOwHpotx9wzY+8rt9vuu/hYKOReSU
         PhEd700f5t7eMlUOKBexITQZHAN1M+B/cq6fvPa3hk2Nuz2P7QBe5HLnl8/VvbjsUFt4
         70/1spKHKvup21njvxyxij7gpkLZ1wIQ/kC407ugxSjjnhaT2PQWyY7zJyiTMj3BuA16
         t9knW1zC3PcOx0ao7g1+P1jxv273i2qfPJQdhMAQK5Zr95zQhai7eRc/N8wuf2cOUUp1
         qyHQ==
X-Forwarded-Encrypted: i=1; AJvYcCVagBswduxv5EKfZDTeir0GEBH4/carqQVMwN3hjIvGt+nFiMRPEX9lnpM/OwH2ciUoRS0I3N6DxnQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzPbGeOKYC/JOlqbGBcFh4QHOCeP76mLa9lVEbJMNfVzu08OskO
	nSPR5ruHKNcHkbt4HW+oRMCBCkYVBE31z5oXhS5m3ZFJBDDcMlza6lohuAtNb2ZNqmqHYlU8RvG
	GWdo=
X-Gm-Gg: AZuq6aJXsISTkclaacpt3Q5biVUp1QzagXKOvjkwt3aunjJ0Gl9W/ylTeIn6NyRn9bm
	72MUjQOaRQX9rBXThuIvSW/i7Dh5rXp2e+TVjNFnuxROsDdw9i1WAH24invmiRAwgytzYe6S/5J
	MzLtjNfM9vaVs5Ap/lprvOUcnkn1TL1rTRxhUiAKsWhcaRRtHuDfIjxP2rO7tuL5GGw8YKtoNXs
	EbIJ+S04mlH1KeF2Ba0Nn1G8a+6/XYKHIjHuN0bFwfQneNZaW/O+lI+3ZCjbzx5KWLH/6y0o4iy
	RZvdd2PosP08jf1y50YNhkhkhxMBw9Lp3liOir+FQK5Lvk6Ne//j1bMZGqZGn/2f/fS4RFd/ktR
	kpSEewSqnmj5NyVawCB3Lg4iLZ6aiLn+9Uw7jqG2xovtBVaQaAsXf7fAiE9+2wAqVJzfm9Mgs8j
	hK7mof8JwLALQI+WTBymXUQYzeLqJZbQjmxGLrrBPPXBy0LXzuHX0C4RU5v2Z7tW6sqwkWlJYW7
	aHDQ9rcLYpNwXw=
X-Received: by 2002:a05:6000:2dc8:b0:437:6efe:94c0 with SMTP id ffacd0b85a97d-437978c7631mr20608055f8f.7.1771313681734;
        Mon, 16 Feb 2026 23:34:41 -0800 (PST)
Message-ID: <d9feffe4-c45e-4bed-bc5e-776e4547578a@suse.com>
Date: Tue, 17 Feb 2026 08:34:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
To: Stefano Stabellini <sstabellini@kernel.org>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.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>,
 xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com>
 <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com>
 <alpine.DEB.2.22.394.2602161038120.359097@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.2602161038120.359097@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.02.2026 19:42, Stefano Stabellini wrote:
> On Mon, 16 Feb 2026, Jan Beulich wrote:
>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>> domain_use_host_layout() is generic enough to be moved to the
>>> common header xen/domain.h.
>>
>> Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...
>>
>>> --- a/xen/include/xen/domain.h
>>> +++ b/xen/include/xen/domain.h
>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>>>  #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>>>  #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>>>  
>>> +/*
>>> + * Is the domain using the host memory layout?
>>> + *
>>> + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
>>> + * To avoid any trouble finding space, it is easier to force using the
>>> + * host memory layout.
>>> + *
>>> + * The hardware domain will use the host layout regardless of
>>> + * direct-mapped because some OS may rely on a specific address ranges
>>> + * for the devices.
>>> + */
>>> +#ifndef domain_use_host_layout
>>> +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
>>> +                                    is_hardware_domain(d))
>>
>> ... is_domain_direct_mapped() isn't something that I'd like to see further
>> proliferate in common (non-DT) code.
> 
> Hi Jan, we have a requirement for 1:1 mapped Dom0 (I should say hardware
> domain) on x86 as well. In fact, we already have a working prototype,
> although it is not suitable for upstream yet.
> 
> In addition to the PSP use case that we discussed a few months ago,
> where the PSP is not behind an IOMMU and therefore exchanged addresses
> must be 1:1 mapped, we also have a new use case. We are running the full
> Xen-based automotive stack on an Azure instance where SVM (vmentry and
> vmexit) is available, but an IOMMU is not present. All virtual machines
> are configured as PVH.

Hmm. Then adjustments need making, for commentary and macro to be correct
on x86. First and foremost none of what is there is true for PV.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 07:56:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 07:56:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234619.1537797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsFwc-0007JB-9G; Tue, 17 Feb 2026 07:56:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234619.1537797; Tue, 17 Feb 2026 07:56: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 1vsFwc-0007J4-6A; Tue, 17 Feb 2026 07:56:30 +0000
Received: by outflank-mailman (input) for mailman id 1234619;
 Tue, 17 Feb 2026 07:56: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsFwa-0007Iw-LW
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 07:56: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 28a241af-0bd6-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 08:56:26 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48336a6e932so23225175e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 16 Feb 2026 23:56:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac800esm34612079f8f.27.2026.02.16.23.56.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 16 Feb 2026 23:56:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 28a241af-0bd6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771314985; x=1771919785; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=f7lTYsFkhYZTmN/EA29x8fF4ioIArRgweTYYp2UPiqE=;
        b=NGtmaTTjZ+gfLrXsVjvNSmOQ5G7LzlLAAXhUul5cjKIYuWnFMK/mDfP99fDBeT7V64
         vmLXwnrrNjjW5iaExpLY7OCQ7EI/yhVZA5qZdYYUwNk4KxRVxD3KN2Ng1i42pcEfZaW7
         XeCOjJ4JzlSrieCLryXrEMCshSYJe0aM6lYGOQzYwD9kC1rYkNM3IaVdNyjQTOhnp1KU
         9cE2FySZPTKZTbrAvYDqzO/vT5PMAYMievOA3aTzU+hWBkgrj5PZfihYzAdRvUbtadxH
         6seZPCHkmIZB/kllE19/wtjvg0IXmgxVyFo93KDIWK6G6WiG4mi2dXdGo6//i8eyYt3h
         f4hQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771314985; x=1771919785;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=f7lTYsFkhYZTmN/EA29x8fF4ioIArRgweTYYp2UPiqE=;
        b=lUic9XACR4iEc92+RYJviYykrw0SNLiznTSLpsKcDmxH2jWYkCkYVzWMZWtLMWjl9t
         h+H0Rhkz/c2QcIoq/Xw8gXSNNnU/JROsRyep0tMjmB4Sde0wpJ4BSi90gI7+0HnM+ECw
         3ZTJaI34PxskHFQn7ujcqX/wfx2WIQTbDsxePjZw9o7//5KIXVCIO4q/lv6ZoSOA6KSX
         isoq7rUHnwacXjwLhyN89HlxxcJQiZNuHi09rH/V5K55mP32jlmv0lO83mPNUPLbkRBD
         P+xd7Whnp3wZY86Y8KjLwQzWM9IA3fANbKQF8/y45Td7ZqAf3KosuvRU0m8a+t37fZjX
         4oDA==
X-Forwarded-Encrypted: i=1; AJvYcCWf1B12wpr71iQ6rIUrqiK7PnIMCXMSkK2fEy5OalShK5eJ0gj+89h9VEHFzVtBRttoWez7MkS86bY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyIW0JrkUCKg/UI4eGnNpuFGP6HXKH8Zlbpp2PPmnlVebnN582P
	dcwsbLz6SZXP1kqmZg4HljvxVEx6SSg/263MoKf+vT7Sop5PsWI0iEO3Mu2PFUhiTg==
X-Gm-Gg: AZuq6aJ7o4tK7okmIlRDzM2He5wExBwh1sIWItFbsE6p88ol1g9ekrpW2SEQfTKF6vT
	+yci+mxxpFzRpqB+ikFzuaHXvW5JEIqWumXj/Qy+EHiKsWQHJM+6G5h4hN6Fizz/oQFMw9D78Dm
	WSy2+g9RCE1DT18nE9TatbOoa0yJG4ANb+upNPb1iR+KreUR+9KoCxIyNgkGZ+7BH1wjL2rEAZJ
	3Or5KbC8H6uRG22QvFFO87dL4Z/AbR99XhhqiSrkXqmgHti6ebNxRtfRGAtYzuVcKaUHwBoIXFD
	lSRXiWUOJ7plZMq69a2oWxK2+aflYUXPMN3D5QIYMo/TSsEj34YP+OgvJmVY7UFGVpYy2/LPSLZ
	91LqmnRUfHNFnVI4ff3dS/Jc0+3uYXTiFl7fPtO4ux/mtTZZjhXCtgSX1R1IKwkeA5oi5kBJQ+Q
	ZybzyACErAb/y0ppq16btrspe5swO62d5LSZq7a3hbWRHDqyoKtDJ21RugF9TPc9Khzr70xTyyI
	WI3zCVah/2pdog=
X-Received: by 2002:a05:600c:6098:b0:477:5cc6:7e44 with SMTP id 5b1f17b1804b1-48379b9f286mr136756445e9.11.1771314985197;
        Mon, 16 Feb 2026 23:56:25 -0800 (PST)
Message-ID: <0f7e127d-9d53-4b32-8aad-bbf741a0e3ec@suse.com>
Date: Tue, 17 Feb 2026 08:56:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] domain: move vmtrace_alloc_buffer() invocation in
 vcpu_create()
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Tamas K Lengyel <tamas@tklengyel.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: <528578e1-6374-4fd0-9f67-0769afd2e1c6@suse.com>
 <50c79874-d07e-479d-80c2-7c0694a0828e@citrix.com>
 <871a5922-9d7d-455b-8257-d583e3e47bc2@suse.com>
 <33498e90-dc3c-4763-a953-3ff9eccd2594@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: <33498e90-dc3c-4763-a953-3ff9eccd2594@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.02.2026 18:17, Andrew Cooper wrote:
> On 16/02/2026 4:39 pm, Jan Beulich wrote:
>> On 16.02.2026 17:29, Andrew Cooper wrote:
>>> On 16/02/2026 3:51 pm, Jan Beulich wrote:
>>>> The label used upon the function failing is wrong.
>>> Is it?  Which label do you think it ought to be?
>> fail_sched, as Roger did point out in reply to the original other patch.
>> After all ...
>>
>>>>  Instead of correcting
>>>> the label, move the invocation up a little, to also avoid it altogether
>>>> for the idle domain (where ->vmtrace_size would be zero, and hence the
>>>> function would bail right away anyway).
>>>>
>>>> Fixes: 217dd79ee292 ("xen/domain: Add vmtrace_size domain creation parameter")
>>>> Reported-by: Roger Pau Monné <roger.pau@citrix.com>
>>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>>>
>>>> --- a/xen/common/domain.c
>>>> +++ b/xen/common/domain.c
>>>> @@ -493,14 +493,14 @@ struct vcpu *vcpu_create(struct domain *
>>>>          set_bit(_VPF_down, &v->pause_flags);
>>>>          vcpu_info_reset(v);
>>>>          init_waitqueue_vcpu(v);
>>>> +
>>>> +        if ( vmtrace_alloc_buffer(v) != 0 )
>>>> +            goto fail_wq;
>>>>      }
>>>>  
>>>>      if ( sched_init_vcpu(v) != 0 )
>>>>          goto fail_wq;
>> ... this comes first, and ...
>>
>>>> -    if ( vmtrace_alloc_buffer(v) != 0 )
>>>> -        goto fail_wq;
>>>> -
>>>>      if ( arch_vcpu_create(v) != 0 )
>>>>          goto fail_sched;
>> ... here the correct label is used.
> 
> Eww, yes.  So multiple observations.
> 
> 1) This only functions in the first place because
> destroy_waitqueue_vcpu() is idempotent to v->waitqueue_vcpu being NULL
> which covers the idle case where init_waitqueue_vcpu() was never called.
> 
> 2) sched_destroy_vcpu() can be made idempotent against v->sched_unit.
> 
> Then we don't need multiple labels and this all gets a lot easier to
> untangle.

Yes, but as a backportable fix what I have here is the most suitable
first step, I'd say.

With what you suggest, I'd then want to check whether either or both of
the function invocations could move into vcpu_teardown(). At least for
destroy_waitqueue_vcpu() I can't really figure why it's called only in
complete_domain_destroy(); for sched_destroy_vcpu() it may well be that
it can't be done earlier. Or wait, looks like vm_event_cleanup() would
need moving up in domain_kill(). The comment there right now explains
why it can't be done later; it's not quite clear to me whether moving
it ahead of (or into) domain_teardown() would introduce any problems.
Tamas?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 08:36:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 08:36:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234647.1537809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsGYt-0004WD-H6; Tue, 17 Feb 2026 08:36:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234647.1537809; Tue, 17 Feb 2026 08: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 1vsGYt-0004W6-DJ; Tue, 17 Feb 2026 08:36:03 +0000
Received: by outflank-mailman (input) for mailman id 1234647;
 Tue, 17 Feb 2026 08: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsGYr-0004W0-CV
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 08:36: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 adca50b2-0bdb-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 09:35:56 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48371119eacso36649945e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 00:35:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dcfafcdsm763099535e9.9.2026.02.17.00.35.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 00:35:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: adca50b2-0bdb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771317356; x=1771922156; 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=4xKobcVtpVZTNFXX6JxRuUg+rlKVsovkwcEHAt6TEKk=;
        b=FOTXJDepIUTs47Ql5nphL50n+1FsfVQMEOiCEZPpBAz5Js14xU+kFiytaix59rpjnA
         iZYwMAezpAjrVc6snJbOtVty5bvA4EARUqKc8Kp2nQTowcpDQjVR2dDGth9dXnwALqS/
         29I9Ngq00aKBhy0ayfqJsEWfQTUy+2eYfxuUpgtOv3Ugtm89TCW5mUDvtt1N87jvLTca
         lZr0nIvYkNJp+8Y0wsXN9DGtOhBTY0lmSNgJNg4U8WKHDRq2jH7bejpIzOMZnKiC+f+J
         X1Y4rvDs6RMACEyHMwzeE+SGf4wgG45yjQlSAyvsctS4BlQ5bkMpFPvrhuPj2TNbnekh
         bI4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771317356; x=1771922156;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=4xKobcVtpVZTNFXX6JxRuUg+rlKVsovkwcEHAt6TEKk=;
        b=ezkLybjhBnlYQ8v893/1mFqho5m8JNo+/FvbcAUSRc3uWrOw/aEV5VWJbkjGhRvRd9
         +AFg6FO1QkIhdL+5wWJZunBiFYgIC59dhlta9BSz3/lDzANY4OS85JDZBKPYLKPFIJMk
         F8VXlG+xHo4TrSLR7NkJI8trJ9YpAFrai9Y9vCskpFvmTmNuDugctv7Bpkm8y54MD1SI
         MjOW7HHoyiVsJ44b/xqQKd1RdP0IvHEGPdIJikIAr0qiO9Okl25TjGGLDGgX7Iont9IB
         JDT/ouSEAVQ5Xax/OEgQGDLC9an5Zor8sg5w2FHnBiOwhxjeXKQtf2y6vJUAzh8POVAQ
         xMKw==
X-Gm-Message-State: AOJu0YxcVT+fQ2knXZH22okKzTCGA4tFaGAI+tBV123U+u37BgPak6/5
	0tyECleNBX3lLGjIcccB0Z5of+YUjWxchMiuegMK9Y2F7ZMdGO3pv3cLsDDSPX3a2L0OXtbUvq+
	NoQA=
X-Gm-Gg: AZuq6aIjkYUuZQ04oOvqIBDn9WZUYRqaorSXHCU8FnokcWGTuc6lr/+fvCs20eGMEVG
	AVxivLl2LbbXrOiwsWHaRwBNJcaXU4Shp4PC6ymosTtzoBJmnIIF8jm6AL/NMGvP5sL9kbh5n3K
	G38oqii4DghCt6pDEOMFjTSzrD02w9TVnJ2kwT8SzwEhYoufe37+nT7lefKECg2HIqQtf6MvVT6
	yN4r3OEvWr/KgDzkp+CKNorZcdsLVA7edCVpE/lED8Az/eot66a13otAMyFXeBi+Nba9NzsA5xT
	+oFKeVJqukYfRWeWUDN8HLm+MLhCC2AKHqv33xubVmFpRUD7Yzd3eWW+3FPPmpu8GYzt11Vbwp/
	GWPkELfTje9pZUnFdl7viLAMr8z8FW7MzfKmFbnXU5ipY8GlclH5Z8f/z/CRSH8OZfp1OyszJBt
	K5CaoLt15g7/5PzybktLYwa55Q/X+iYX/tKnvzBHMgqIfYXynB3EhRcN7iqgIqSFVk8uku0GzMa
	jDiSZLtKqOmufjl4JUNCSKnEA==
X-Received: by 2002:a05:600c:a09:b0:477:6d96:b3e5 with SMTP id 5b1f17b1804b1-48373a0809fmr220599515e9.7.1771317356109;
        Tue, 17 Feb 2026 00:35:56 -0800 (PST)
Message-ID: <3f1fb7a3-0abd-4df0-92b6-2bb6d78c6422@suse.com>
Date: Tue, 17 Feb 2026 09:35:54 +0100
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] wait: drop wake_up_{all,one}()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

wake_up_one() isn't used at all, so violates Misra rule 2.1 (unreachable
code). wake_up_all() is only used locally, yet rather than making it
static its sole user can invoke wake_up_nr() in the intended way directly.

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

--- a/xen/common/wait.c
+++ b/xen/common/wait.c
@@ -85,11 +85,6 @@ void init_waitqueue_head(struct waitqueu
     INIT_LIST_HEAD(&wq->list);
 }
 
-void destroy_waitqueue_head(struct waitqueue_head *wq)
-{
-    wake_up_all(wq);
-}
-
 void wake_up_nr(struct waitqueue_head *wq, unsigned int nr)
 {
     struct waitqueue_vcpu *wqv;
@@ -107,12 +102,7 @@ void wake_up_nr(struct waitqueue_head *w
     spin_unlock(&wq->lock);
 }
 
-void wake_up_one(struct waitqueue_head *wq)
-{
-    wake_up_nr(wq, 1);
-}
-
-void wake_up_all(struct waitqueue_head *wq)
+void destroy_waitqueue_head(struct waitqueue_head *wq)
 {
     wake_up_nr(wq, UINT_MAX);
 }
--- a/xen/include/xen/wait.h
+++ b/xen/include/xen/wait.h
@@ -31,8 +31,6 @@ void destroy_waitqueue_head(struct waitq
 
 /* Wake VCPU(s) waiting on specified waitqueue. */
 void wake_up_nr(struct waitqueue_head *wq, unsigned int nr);
-void wake_up_one(struct waitqueue_head *wq);
-void wake_up_all(struct waitqueue_head *wq);
 
 /* Wait on specified waitqueue until @condition is true. */
 #define wait_event(wq, condition)               \


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 08:45:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 08:45:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234659.1537818 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsGi5-0006FG-Ba; Tue, 17 Feb 2026 08:45:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234659.1537818; Tue, 17 Feb 2026 08: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 1vsGi5-0006F9-8w; Tue, 17 Feb 2026 08:45:33 +0000
Received: by outflank-mailman (input) for mailman id 1234659;
 Tue, 17 Feb 2026 08:45: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsGi4-0006F3-8L
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 08:45:32 +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 034455c3-0bdd-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 09:45:29 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso21275245e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 00:45:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483740be167sm296615005e9.15.2026.02.17.00.45.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 00:45:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 034455c3-0bdd-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771317929; x=1771922729; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Z9wECaYTWoQNx443NLaE5hVVgDwSTbYMvdz13+kYpyA=;
        b=ZpC5QebxRI8sUlZqMKCXpHI7IH7XQEAZTBekkmjbjkOv+KGS8BpnyQW+yxt18IJsc8
         DvD2pIR8ptVRutnCIt5diMl9p+2zeWqZABTuwkPSMXBE+r0dsmSnv+lJLY6B+Zqw4lJK
         Imkwqpp4xmUTbiox/KWN5v7e787SD6P89LX5MT1Qkev7V+4n6rzESPivD/mWg1Sw9vyO
         61OevQwWwEI9g272eR1wuTURcyC4fSfyOomVpqvC2I62QFHpktj61k3KCnbm07lOYp/x
         f5nYJqQnpVMnV6LQyJNAYqm5URP9gq9oOIJgXpxQeKL4tGz9bmhvf7+s1zgyJlL4O1BR
         w7Jw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771317929; x=1771922729;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Z9wECaYTWoQNx443NLaE5hVVgDwSTbYMvdz13+kYpyA=;
        b=DCduy5ec1YuZVX4opwjVVQnFo45svXkh8/VfbVR2iaeFYC/mHQ7QqgcQu5wKEZkX5l
         ZHYLZN5azcxYLNTnsNX8FtaHY+D+MxzZcFA9+Wd1erUSgzELmXiwglphjpVdB1hPyqxL
         NSRtpnVlBQAFkZvhqKNH/uCufgcNxY6Q1b1V/IfpceLJC8sw3Ps9an9uo24JX8xk2Up8
         ffi57qF/hz3OfpeDs25pXNdzqrw3GGL1Vd79hZNKyfwtu7fxJbsL5ZDj7hjkW73NwC5a
         Kja1u/ufzcRWgzKSW18uGLNrUJePlEQc6iD0nfoOjTSkvZch2sUVjr3XUZwDwBoTJHfN
         BXoQ==
X-Forwarded-Encrypted: i=1; AJvYcCU3StrqTpaG0zd/vNd0O7mmPp+HDGNdL6+16iUasH2r63tymamm+/Oa9z1PtyKMDyk79qSL+d+U0jI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztCe9vKE0wPLN0Swt0kYMknp5bMENZpfr5cNxCngA7kAhItwLr
	bekMhsacGkc566bA4vR20dfFX4PUv9PU5lgoNXGUBxmdhvHQd3Jq/m7s90BzOPvT/Q==
X-Gm-Gg: AZuq6aKeTlPPlswXSAroIwCkErkeqVi3E/Aa12qGcbvL8gAC2tBpL2CVuR+ChpXb6sO
	v1vLJfP3eGrlJOmzp7nrkD2IURiks3TrHzQ5bK7qgH3R78Y9KXPUogcI+/YfrtPSAKdh8OgZK6q
	4qsjuRdwI+Ks0GqMOuFR0iVWm+7QdoxNbg4a0mv7AL0ebv5IMcHxyGs70Jef+uW0OpvtX8Dweqa
	vMOU8JtgJEsm5ibtRfIISH0HxBEsbDV3SH0P5dtTMUAPLCfpD6D44p+U57wwUHbVb8RGZEqezQX
	qIvVRDbWTBc59zZW0PckCxoTCgfpIkep1dV0wjQlolWU+M8+truwP+eR2E7CtuzOGvWYHUfagy9
	lXe9t03I+STTcOdFjWnKNn9vnoHmLYR/nY8hU7HO8VSgXDoB97jijWHQsym2kixuMkAM2kVhcw9
	4VdT5c0btlcv5yjNT2OcvtIizdQ6sY+WZGUaiFiz95uKpFxPUIs/JGRAnjZDGBxEbrKhCBKGvRX
	hTf/14gSZEt36M=
X-Received: by 2002:a05:600c:468d:b0:47e:e20e:bbb4 with SMTP id 5b1f17b1804b1-4837108fcf1mr244936185e9.26.1771317929029;
        Tue, 17 Feb 2026 00:45:29 -0800 (PST)
Message-ID: <a6aa5767-3f8b-4a1a-a816-191d77ef9399@suse.com>
Date: Tue, 17 Feb 2026 09:45:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/platform: Consider PTM for exposing package-related
 MSR
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>,
 Tu Dinh <ngoc-tu.dinh@vates.tech>, xen-devel@lists.xenproject.org
References: <e7b1721097bd7abd975882f60b282cf7900db58d.1771254439.git.teddy.astie@vates.tech>
 <2764f432-85eb-44b9-aae9-f1bce410b4b9@suse.com>
 <4bcb7fbd-3180-4780-8432-2c62ce24ce99@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: <4bcb7fbd-3180-4780-8432-2c62ce24ce99@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 16.02.2026 23:22, Teddy Astie wrote:
> Le 16/02/2026 à 17:15, Jan Beulich a écrit :
>> On 16.02.2026 16:09, Teddy Astie wrote:
>>> --- a/xen/arch/x86/platform_hypercall.c
>>> +++ b/xen/arch/x86/platform_hypercall.c
>>> @@ -89,9 +89,12 @@ static bool msr_read_allowed(unsigned int msr)
>>>           return cpu_has_srbds_ctrl;
>>>   
>>>       case MSR_IA32_THERM_STATUS:
>>> +        return host_cpu_policy.basic.digital_temp_sensor;
>>
>> As per the SDM this doesn't look right either - it's CPUID.01H:EDX[22]
>> (acpi) instead. It is the field you're after in xenpm which is tied to
>> CPUID.06H:EAX[0] (digital_temp_sensor).
> 
> I'm not sure to follow exactly what you mean here.
> Which CPUID should we check ?

The one the SDM mandates CPUID.01H:EDX[22], or - as said for the other one -
a justification for using something else would need providing in a comment.

>>>       case MSR_TEMPERATURE_TARGET:
>>> +        return host_cpu_policy.basic.digital_temp_sensor ||
>>> +               host_cpu_policy.basic.package_therm_management;
>>
>> Where in the SDM did you find this connection? (Anything made up wants
>> commenting upon.)
> 
> To me, we are interested in the MSR_TEMPERATURE_TARGET only with dts or 
> ptm, and the only used probing method in practice is performing a safe 
> rdmsr (at least in Linux coretemp).

How does coretemp matter here? It using a safe rdmsr means it's not Xen-
enabled, i.e. doesn't use the platform-op that the code here is about.

> That may be worth adding a comment eventually.

Yes. However, here and above I wonder whether we'd be doing any good in
using a tighter check than mandated by the SDM. Another reader of the
MSR may appear (in xenpm or elsewhere), and it may be after another field.
Things may then be observed to work fine, until someone tries it on older
hardware.

>>> --- a/xen/include/xen/lib/x86/cpu-policy.h
>>> +++ b/xen/include/xen/lib/x86/cpu-policy.h
>>> @@ -132,7 +132,7 @@ struct cpu_policy
>>>                           :1,
>>>                           :1,
>>>                           :1,
>>> -                        :1,
>>> +                        package_therm_management:1,
>>
>> The SDM calls this PKG_THERM_MGMT; I think our naming would better match now
>> that we decided to have everything else here named according to the SDM.
> 
> I can't find PKG_THERM_MGMT in my SDM version; but overall I don't have 
> a strong opinion on naming and am fine with pkg_therm_mgmt.

See version 090 volume 1 section 21.3.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 09:01:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 09:01:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234673.1537828 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsGxX-0000hY-Ob; Tue, 17 Feb 2026 09:01:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234673.1537828; Tue, 17 Feb 2026 09:01: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 1vsGxX-0000hR-LO; Tue, 17 Feb 2026 09:01:31 +0000
Received: by outflank-mailman (input) for mailman id 1234673;
 Tue, 17 Feb 2026 09:01: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsGxW-0000hI-7x
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 09:01:30 +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 3eefa890-0bdf-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 10:01:28 +0100 (CET)
Received: by mail-ej1-x62c.google.com with SMTP id
 a640c23a62f3a-b884ad1026cso511719866b.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 01:01:29 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65bad3f137dsm2183625a12.27.2026.02.17.01.01.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 01:01:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3eefa890-0bdf-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771318888; x=1771923688; darn=lists.xenproject.org;
        h=content-transfer-encoding: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=L15KdnMdJlA0XZbOQvXvHmVbuz0rgu6RZil8bD0/q6M=;
        b=VXWGCZKqvfkIchuydyjD9b+JUqla8F2L0HS5pAWL5cupIBmgF3TUnr194u8sp9jH4g
         QeDSzfx+ig55I9M0m44lNDiCHDbAAOBzDYYkM/p/veLWITWFOSnNqHQNF/6EM1/WFnaE
         EmLtoRLPvW2twodrPiU1+GAB6KUYHvwL2jJC0QtqkE6rr70//F42ZW5GhFEPdKFkwAyI
         xaEXUzwYtb8d1qtaUq1vJfoOJawqtxXiABjeZVWl58QFnNH88tPXck7pt+pF5qUJ6L4i
         y5+yNIqj8P96AjMH7J4mBn2WKhYSukiYJgVgiRIFyZtIooHAy58JZsLVpj8kpjt3a72O
         uwfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771318888; x=1771923688;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=L15KdnMdJlA0XZbOQvXvHmVbuz0rgu6RZil8bD0/q6M=;
        b=NkeSR8XcC8qcLfkAjDZ5QCa9ENqtds9nDuJg8uXXMx1GY+e2AQA/Np5VrDM7ni+ggp
         s4577XnqTGDcl9wFbIlrieLiMdl5q0vOpoOp82GCU3GL6tWgV9Cw7gfqbJ3VS36+i6s0
         Y7B/mLIx+BaFo2EhT3RWirUl4YusvhfjegFELyQmAQq05+Nhpjy7ANwxWaS8lwlWQHt9
         FgPAmQJeiYTBnpV3TJHVNda/ccRwb36c61tkJVAMiOL+7yH0YVzQb9DSQ/HT18SAZfUU
         WmcxEsNNZlMMsG81Rh7Cckum+vf/HkEPjs97yFMs3zZnQuDwVeqFMsBIhRFGeRl+Fmdi
         9ztw==
X-Forwarded-Encrypted: i=1; AJvYcCVIivtYKHv5rn1bPFEXD0ScknD1kuzzPT+hRUCMkmg9bKaqlAwy5UYCuXl4panlQUBWOJXasy6jcaY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwP/UyHBHSE92Z0RUdwqP5Ttqr18wF3/5bElJrlNMoRI1RLtpbH
	fBJTbqLsOCv3jh6aVe4yvQxxAE4flK7Ph4xYH63ddY0/rccOH2RtdvJs
X-Gm-Gg: AZuq6aLtfxhUJ70+Cu4z+zODbf0w0F56z5NsC7iWL34jDN0hXMwiXqmL74N+pu+6A9n
	49rsPaYPwqStBd6pfWBYdeSP6F2hWEx+uv7/jIr71QdjS4e9PDHAhvgdA5TLzVhcg/d7hZZHyDK
	8hs1BXWbhc3boFoaIgwF1sMjaaH8E5Z4v2cSiS6ZFAXfbdFvAL+xTNHQk8Zh/eeRhSI7xP3pmh+
	BySlSa7ejGwEV1EzTKum1CFzVJEmiiiG2T7fpMWLb4LX0sAs/C6shyiZ8qDryVDuySY13PTlnWE
	VxsMzN//Uoku3TmSMqVBRrWBTLzgF5muGe4e8rX+tzNx8Rdx96L70CAT4viyWtgsm6srHhpwrek
	xZQdOY6K8vK6Iz/fMpX8ZAlZitesNikdcTU0lQmI016rHZJnjui5P16pgjNIWqwVAyFy/ZwnEDp
	NWz63fn7LaD+5fsx9AsiP7gELkDelxBzMTEZ6A3wCKrbPp0/aS5RUAGsqaI7td142lM6aecxflr
	TQ=
X-Received: by 2002:a17:907:9303:b0:b8f:b222:339 with SMTP id a640c23a62f3a-b8fb478f71emr649440466b.65.1771318887824;
        Tue, 17 Feb 2026 01:01:27 -0800 (PST)
Message-ID: <d12d8cb7-bc1f-47a4-bc1f-004817394467@gmail.com>
Date: Tue, 17 Feb 2026 10:01:26 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v1 1/6] xen/riscv: implement get_page_from_gfn()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <04eee3ae5e8aadf8c7f0b873ba24ce38220e8fa2.1770821989.git.oleksii.kurochko@gmail.com>
 <c053f6bd-eedc-4dbf-a404-802781dee722@suse.com>
Content-Language: en-US
In-Reply-To: <c053f6bd-eedc-4dbf-a404-802781dee722@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/16/26 1:38 PM, Jan Beulich wrote:
> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>> Provide a RISC-V implementation of get_page_from_gfn(), matching the
>> semantics used by other architectures.
>>
>> For translated guests, this is implemented as a wrapper around
>> p2m_get_page_from_gfn(). For DOMID_XEN, which is not auto-translated,
>> provide a 1:1 RAM/MMIO mapping and perform the required validation and
>> reference counting.
>>
>> The function is implemented out-of-line rather than as a static inline,
>> to avoid header ordering issues where struct domain is incomplete when
>> asm/p2m.h is included, leading to build failures:
>>    In file included from ./arch/riscv/include/asm/domain.h:10,
>>                     from ./include/xen/domain.h:16,
>>                     from ./include/xen/sched.h:11,
>>                     from ./include/xen/event.h:12,
>>                     from common/cpu.c:3:
>>    ./arch/riscv/include/asm/p2m.h: In function 'get_page_from_gfn':
>>    ./arch/riscv/include/asm/p2m.h:50:33: error: invalid use of undefined type 'struct domain'
>>       50 | #define p2m_get_hostp2m(d) (&(d)->arch.p2m)
>>          |                                 ^~
>>    ./arch/riscv/include/asm/p2m.h:180:38: note: in expansion of macro 'p2m_get_hostp2m'
>>      180 |         return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>>          |                                      ^~~~~~~~~~~~~~~
>>    make[2]: *** [Rules.mk:253: common/cpu.o] Error 1
>>    make[1]: *** [build.mk:72: common] Error 2
>>    make: *** [Makefile:623: xen] Error 2
> Surely this can be addressed, when x86 and Arm have the function as inline?

Yes, it should be possible. The reason for now that is working for x86 and Arm is that:
1. Arm only pass pointer to struct domain to p2m_get_page_from_gfn() so it is enough just
    to have forward declaration for struct domain.
2. x86 uses pointer to p2m_domain in arch_domain so there is no need to include asm/p2m.h
    in asm/domain.h and so forward declaration will be enough. And so there is no dependency
    between xen/sched.h and asm/p2m.h through asm/domain.h which leads to the issue
    mentioned in the commit message.

RISC-V could in principle follow the x86 pattern (avoid including asm/p2m.h),
but the current out-of-line approach is also acceptable, it is simpler and more robust
against future header reordering problems.

>> Signed-off-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
>> ---
>> Does it make sense to make this function almost fully generic?
>>
>> It looks like most of the logic here is architecture-independent and identical
>> across architectures, except for the following points:
>>
>> 1. ```
>>     if ( likely(d != dom_xen) )
>>     ```
>>
>>     This could be made generic by introducing paging_mode_translate() for ARM
>>     and defining it as `(d != dom_xen)` there.
>>
>> 2. ```
>>     if ( t )
>>         *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
>>     ```
>>
>>     Here, only `p2m_mmio_direct_io` appears to be architecture-specific. This
>>     could be abstracted via a helper such as `dom_io_p2m_type()` and used here
>>     instead.
> With P2M stuff I'd be careful. Abstracting the two aspects above may make
> future arch-specific changes there more difficult.
>
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1557,3 +1557,31 @@ void p2m_handle_vmenter(void)
>>           flush_tlb_guest_local();
>>       }
>>   }
>> +
>> +struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>> +                                    p2m_type_t *t, p2m_query_t q)
>> +{
>> +    struct page_info *page;
>> +
>> +    /*
>> +     * Special case for DOMID_XEN as it is the only domain so far that is
>> +     * not auto-translated.
>> +     */
> Once again something taken verbatim from Arm. Yes, dom_xen can in fact appear
> here, but it's not a real domain, has no memory truly assigned to it, has no
> GFN space, and hence calling it translated (or not) is simply wrong (at best:
> misleading). IOW ...
>
>> +    if ( likely(d != dom_xen) )
>> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>> +
>> +    /* Non-translated guests see 1-1 RAM / MMIO mappings everywhere */
> ... this comment would also want re-wording.

As you mentioned in the another reply to this patch, I messed up x86 and Arm
implementation in a bad way, so here should be DOMID_XEN used instead of
"Non-translated".

Based on your reply it seems like the first comment should be also rephrased
as you mentioned that DOMID_XEN can't be called also "not auto-translated".
I think it would be better to write the following:
  /*
   * Special case for DOMID_XEN as it is the only domain so far that has
   * no GFN space.
   */


>
>> +    if ( t )
>> +        *t = p2m_invalid;
>> +
>> +    page = mfn_to_page(_mfn(gfn));
>> +
>> +    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
>> +        return NULL;
>> +
>> +    if ( t )
>> +        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
> If only dom_xen can make it here, why the check for dom_io?

Incorrectly copied from x86. It should be just:
  *t = p2m_ram_rw
here as in RISC-V for MMIO pages owner isn't set to dom_io (and the same is
true for Arm I think).

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 09:10:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 09:10:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234683.1537837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsH5w-0002Mz-H3; Tue, 17 Feb 2026 09:10:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234683.1537837; Tue, 17 Feb 2026 09:10: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 1vsH5w-0002Ms-ET; Tue, 17 Feb 2026 09:10:12 +0000
Received: by outflank-mailman (input) for mailman id 1234683;
 Tue, 17 Feb 2026 09: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsH5v-0002Mm-B6
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 09:10:11 +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 74cbe545-0be0-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 10:10:08 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4837584120eso25829995e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 01:10:08 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48370a694d3sm104239475e9.10.2026.02.17.01.10.06
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 01:10:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 74cbe545-0be0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771319408; x=1771924208; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=86UtcHzjg9iP3Y+9o6V8epCBcUOMdnavKBFhUm3BARo=;
        b=TuIGvAzDFQ/+VwV4e8UvMeSW2CoGTdhKp0q4QVYJxhJstXLsIyMR5ohrHKSoIIl3fF
         RQaKtUYfVWFJyl6MZOJVgNSKQmzOTRnSFv8ae5izz8E3Zi0jumumoodKI/2SgLFoR1VR
         jAvZjUsD608ANtozHOxeIzAR3xLfLFfCC8SkPUkgjAmDjzYVAZDaoKODXC/MDrnycJBT
         U1seEJSSG/QIIMOalB6XPiJ+U3fKbwSAesXH7NJRZxJNGa6+HOKeek6KUabfbVFJTJ1V
         sxn7pOT9n9HMAGRsxalBa0Bc/75jiJr3UsDzO+FGxV7jkegmuaVBaYs9i+LNaD35pZHk
         OrBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771319408; x=1771924208;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=86UtcHzjg9iP3Y+9o6V8epCBcUOMdnavKBFhUm3BARo=;
        b=Ku2+QlCTNPvzdcx4ht1ya+t4aWP0PuWQ3ZvqzvRRxc2hf7TWcfQ8X9huIQddzbl9j8
         5zLPR4AGFg2XI+oLV1QXPgr+nDG0ysV+MnJig21vUVpZdPTAZN9pxoXoXYXST4jYMweh
         4XwynELViQPj9mq1C3Pxl9YP7tH3WMQocqtm/bTfZ8EE7A11g/TC/uN6/V8Xn+t82ptm
         Kg7EvdItrcnukn+GNnyFTHsewHD/C8Z++KVzKZzz8mSapx9/1quC2gj8CYh9lh5cHyi8
         gO0HdwinLhWP2j76VLh9egGXsrI3XQ/7PiblfbwwpsOHhYhFzY2vbjVfgIc25Gk8balh
         zjaA==
X-Forwarded-Encrypted: i=1; AJvYcCUOFt0ZO01n2BLUeDVZupt/0SF26Iy/FyAxi6VhtvCxzMHTw/9uncK/gu+P6YdWEUBdeK8hKuGa6XM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxK9yyy3FhJ+w0g7EwPoF+GkouIqB4bC2M5ns92rloeIYlYiNRv
	UB9xDRqGAPzy8X8jieK9vKAgGSq00rIRq28puAqDcPetUsJrS6UDHiyJl8UOIipFPQ==
X-Gm-Gg: AZuq6aKU+BxWU2bTveBdNjmu9/Vwp03YKhExmhyF71dmJJbuVWHWIMCAAobl5T9PzWc
	aD6WwdAMGz+gvhlosCSqvPeBQnZyqjtTg0BeSKHiZ5Gf0ZVNKaDP6OafYUjOnvMuoQxGO9FVOrJ
	NlhmHlDE/vEwM5brsuLk6LcnTTH8LBQ01ZzUDwyPkbJ0YIjEQj/t+39f9inYczRQmd5WqSwtZR0
	GIU1z5puyau78OMSiHWhPuoQeGdIA7YLlb4mCivHQ1BQY7gEU55NhGDeT6JMFRk1kylshwci/nZ
	gh2ANT8Y6M3VwR8xRjoGGVrSqnbfLTdFG7X2oquD/JZUFH9hsQqmQaKaAvINbQ1EstZgjcbcYBs
	Eq90+klLefGl091bFvbDzUM1quD9eE+Zzyl3cY5OI87oQBJgcSY/3kTv8+gjpzqy70kyAVgUpnn
	q4WxpyEpSF2vI+3uscB7Uwno4Bp0VO8Jq8BM+05PltLyWBoahzMi6NaLl+WNrwkZaEWNGZGszg6
	V6WYgcitkYjj2k=
X-Received: by 2002:a05:600c:698c:b0:483:5a29:9678 with SMTP id 5b1f17b1804b1-48379b8bfbamr153664385e9.2.1771319407990;
        Tue, 17 Feb 2026 01:10:07 -0800 (PST)
Message-ID: <349ad398-8a18-46cc-a34b-576edfb544c0@suse.com>
Date: Tue, 17 Feb 2026 10:10:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/6] xen/riscv: implement get_page_from_gfn()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <04eee3ae5e8aadf8c7f0b873ba24ce38220e8fa2.1770821989.git.oleksii.kurochko@gmail.com>
 <c053f6bd-eedc-4dbf-a404-802781dee722@suse.com>
 <d12d8cb7-bc1f-47a4-bc1f-004817394467@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: <d12d8cb7-bc1f-47a4-bc1f-004817394467@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.02.2026 10:01, Oleksii Kurochko wrote:
> On 2/16/26 1:38 PM, Jan Beulich wrote:
>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/p2m.c
>>> +++ b/xen/arch/riscv/p2m.c
>>> @@ -1557,3 +1557,31 @@ void p2m_handle_vmenter(void)
>>>           flush_tlb_guest_local();
>>>       }
>>>   }
>>> +
>>> +struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>>> +                                    p2m_type_t *t, p2m_query_t q)
>>> +{
>>> +    struct page_info *page;
>>> +
>>> +    /*
>>> +     * Special case for DOMID_XEN as it is the only domain so far that is
>>> +     * not auto-translated.
>>> +     */
>> Once again something taken verbatim from Arm. Yes, dom_xen can in fact appear
>> here, but it's not a real domain, has no memory truly assigned to it, has no
>> GFN space, and hence calling it translated (or not) is simply wrong (at best:
>> misleading). IOW ...
>>
>>> +    if ( likely(d != dom_xen) )
>>> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>>> +
>>> +    /* Non-translated guests see 1-1 RAM / MMIO mappings everywhere */
>> ... this comment would also want re-wording.
> 
> As you mentioned in the another reply to this patch, I messed up x86 and Arm
> implementation in a bad way, so here should be DOMID_XEN used instead of
> "Non-translated".
> 
> Based on your reply it seems like the first comment should be also rephrased
> as you mentioned that DOMID_XEN can't be called also "not auto-translated".
> I think it would be better to write the following:
>   /*
>    * Special case for DOMID_XEN as it is the only domain so far that has
>    * no GFN space.
>    */

Simply say that dom_xen isn't a "normal" domain?

>>> +    if ( t )
>>> +        *t = p2m_invalid;
>>> +
>>> +    page = mfn_to_page(_mfn(gfn));
>>> +
>>> +    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
>>> +        return NULL;
>>> +
>>> +    if ( t )
>>> +        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
>> If only dom_xen can make it here, why the check for dom_io?
> 
> Incorrectly copied from x86. It should be just:
>   *t = p2m_ram_rw
> here as in RISC-V for MMIO pages owner isn't set to dom_io (and the same is
> true for Arm I think).

May I suggest that right away you use the construct that I suggested Arm to
switch to (you were Cc-ed on that patch, I think)? Despite the absence of
p2m_ram_ro on RISC-V, that'll be usable, and it will allow keeping the code
untouched when p2m_ram_ro is introduced (sooner or later you will need it,
I expect).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 09:34:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 09:34:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234702.1537853 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsHTM-0005Mt-Ev; Tue, 17 Feb 2026 09:34:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234702.1537853; Tue, 17 Feb 2026 09: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 1vsHTM-0005Mk-AX; Tue, 17 Feb 2026 09:34:24 +0000
Received: by outflank-mailman (input) for mailman id 1234702;
 Tue, 17 Feb 2026 09: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsHTK-0005Ku-Oi
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 09:34:22 +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 d6de4fc7-0be3-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 10:34:21 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so28768915e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 01:34:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d99e194sm383017835e9.8.2026.02.17.01.34.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 01:34:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d6de4fc7-0be3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771320861; x=1771925661; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6YC5RdGkPrIB2BXP5n6V9ihvuQDwd7qIpNXEXiWPI5M=;
        b=BTs9J6yBHqW/N5y3FPc1FCf+25KyOWIlGlBoNPkF1+m2luUmyYNnRhI40grm9YiPGo
         3qXxc0N+tJ6eQJjTMxSnX58H68mZL0sgykK52UMe7Tuez3cPP15J9KSt0CPBtxLoELFF
         VHDCxx1083swyRdy6NCgwzQuT89P3xs7kzfvZcTevfg1FqNZZb4FvmA5gaVWAaHq0G/7
         2qqc1imkLzAZFRYYBK/pexVIbuveSA48RnCIELKzEyeV7OzEcsjkOvHcOV171fcUD3my
         hVG0Xy6QgAG3tFnc85EFS75JiF9NwaJcOlQjebogLFG5CGlTJVUI5JXUQKu81nXbPZ6F
         CavA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771320861; x=1771925661;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6YC5RdGkPrIB2BXP5n6V9ihvuQDwd7qIpNXEXiWPI5M=;
        b=CzYb1Gr/i/G1urFoUJLH8dHLCaYatoafvAjY+lZVXLXre6PXhURbEH8A2O1JcUCFhh
         PP/WnVQ4yQV83nEJrpZik6dkj1mcT9ilIUXQkB+Av+LxR1lm9QXkKoXBdpQVmEKQ0ciP
         WxUNtq0+p/kO6zCInWzPCF2tSiHjQqzlWcaTnw760f2/kW/8kVErHPxlBceB+0FcC62P
         /Qay71ValUb0qON5ivqoo9d5NVUWkeprE7maNYf/QNFNUUMbjCCRib4V0hmXCdisrBIi
         VSr7w0d4+GdY9QfCliugthHO10Qj9uXwD90hJCqTpWLs+PUezKm845jdPsbOVnAK2wzp
         eD0g==
X-Forwarded-Encrypted: i=1; AJvYcCVMaD6xGAcbgaxww/dML05ld1q1z3/ytlDvJ6GXpASvfqxAbWwDEBDogkUM5KhnAUe8fjklGCq+9uw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTCpO9EA+qQrNtVhBcrZ9SlVLpT3T4/MMo1xn1CoOxnNTtctKh
	97gFZZv702zkiLpIKBQN71/YXOFlyRglGST+NTaYQlGvxXVBMpXqLpBxVKWRYNN08A==
X-Gm-Gg: AZuq6aLG3OwlJ45wLlIOUi3qeamSzs+QXGeXjSDaHbmP81EDV3Cz3cV/H63PH5GcrEg
	yjlXlssqBGXqiAFKlj0YS9wdSzaTTV7DhdcGtG/OGZc2vdBSVL+S/qfrVCaV9Qisn1ZyWTsT7rC
	fZxxOg0WLwmo8tJ2cKLp1OoqjFTBQZXNgmvQhh0jYE3VKxFyEuq9vsb3LlGiF4YNEpXOekUm/G4
	xPb0WJu5c/4ZEGpaQnMc9XhJIF52QUynWD+6JBCGYAIyjkkp0jSwNjpe20jDXkmWCosl8EAZSxc
	RmdVIs39NOttIdF23q47dnR5GsGp6nsaV5BW2hugRNF3+6OqP1T3AN4t2rqlpn9kJhYjmbsZZdc
	pXdXZP8wMNeONrUl0888fUYk91/V7+kqAYu0DkQs3CRrLtGDICNgQy+SvgAwWJVf4boCaK10+B6
	G/1057Q54bXFlYQnp8k70adB5pM3WuDr0i172Ua5SF+iqubCRPN3uWXjohR0tBP3Dtd1cWWYnXS
	JI54Jj+5tiaWMs=
X-Received: by 2002:a05:600d:6443:10b0:483:8062:b43 with SMTP id 5b1f17b1804b1-48380620d3amr108277755e9.19.1771320860886;
        Tue, 17 Feb 2026 01:34:20 -0800 (PST)
Message-ID: <1a1d8db1-d553-470a-8678-b879385b2fec@suse.com>
Date: Tue, 17 Feb 2026 10:34:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] common/domctl: xsm update for get_domain_state access
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Chris Rogers <rogersc@ainfosec.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: <20260216215748.20398-1-dpsmith@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: <20260216215748.20398-1-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 16.02.2026 22:57, Daniel P. Smith wrote:
> When using XSM Flask, passing DOMIND_INVALID will result in a NULL pointer

Nit: DOMID_INVALID

> reference from the passing of NULL as the target domain to
> xsm_get_domain_state(). Simply not invoking xsm_get_domain_state() when the
> target domain is NULL opens the opportunity to circumvent the XSM
> get_domain_state access check. This is due to the fact that the call to
> xsm_domctl() for get_domain_state op is a no-op check, deferring to
> xsm_get_domain_state().
> 
> Modify the helper get_domain_state() to ensure the requesting domain has
> get_domain_state access for the target domain, whether the target domain is
> explicitly set or implicitly determined with a domain state search. In the case
> of access not being allowed for a domain found during an implicit search, the
> search will continue to the next domain whose state has changed.
> 
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> Reported-by: Chris Rogers <rogersc@ainfosec.com>
> Fixes: 3ad3df1bd0aa ("xen: add new domctl get_domain_state")

Nit: Fixes: first (or at least ahead of S-o-b) and other tags chronologically
ordered, please.

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>  int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>                       domid_t *domid)
>  {
> -    unsigned int dom;
> +    unsigned int dom = 0;
>      int rc = -ENOENT;
>      struct domain *hdl;
>  
> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>  
>      if ( d )
>      {
> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
> +        if ( rc )
> +            return rc;
> +
>          set_domain_state_info(info, d);
>  
>          return 0;
> @@ -238,10 +242,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>  
>      while ( dom_state_changed )
>      {
> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom);
>          if ( dom >= DOMID_FIRST_RESERVED )
>              break;
> -        if ( test_and_clear_bit(dom, dom_state_changed) )
> +        if ( test_bit(dom, dom_state_changed) )
>          {
>              *domid = dom;

This is problematic wrt other work (already talked about in the distant past,
but sadly only making little progress) towards trying to pull some of the
sub-ops out of the domctl-locked region. This subop is one of the prime
candidates, yet only if the test_and_clear_bit() remains here.

> @@ -249,6 +253,15 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>  
>              if ( d )
>              {
> +                rc = xsm_get_domain_state(XSM_XS_PRIV, d);
> +                if ( rc )
> +                {
> +                    rcu_unlock_domain(d);
> +                    rc = -ENOENT;

As you don't otherwise use xsm_get_domain_state()'s return value, the need
for this assignment can be eliminated by putting the function call straight
in the if(). Then again, to address the remark above, overall code structure
will need to change quite a bit anyway (so the remark here may be moot).

> +                    dom++;

It may be nice to eliminate the need to have this in two places (here and ...

> +                    continue;
> +                }
> +
>                  set_domain_state_info(info, d);
>  
>                  rcu_unlock_domain(d);
> @@ -256,10 +269,13 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>              else
>                  memset(info, 0, sizeof(*info));
>  
> +            clear_bit(dom, dom_state_changed);
>              rc = 0;
>  
>              break;
>          }
> +
> +        dom++;
>      }

... here), by having the variable's initializer be -1 and then using dom + 1
in the find_next_bit() invocation.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 09:47:28 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 09:47:28 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234715.1537861 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsHfl-00076z-J3; Tue, 17 Feb 2026 09:47:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234715.1537861; Tue, 17 Feb 2026 09:47: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 1vsHfl-00076s-GL; Tue, 17 Feb 2026 09:47:13 +0000
Received: by outflank-mailman (input) for mailman id 1234715;
 Tue, 17 Feb 2026 09:47: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=CGo7=AV=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vsHfk-00076m-Iv
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 09:47:12 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a1afa697-0be5-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 10:47:11 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA2PR03MB5833.namprd03.prod.outlook.com (2603:10b6:806:114::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb
 2026 09:47:07 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.010; Tue, 17 Feb 2026
 09:47: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: a1afa697-0be5-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uOLU55/tXwX6osiaKaqneo+mkQ0mXUK/R4mpbMBJ2zSdBN2MhqIEVxvOqaeWf7zdauvZTaFXBYPfDneOhyKZA/chZW0hDupy4XeebJv+sdWdZhBtvRlvhuLrMKaZqT3hh+u38a20G7qz7hDRlIk/6/viZ6caDZG6hDcMWaTwY0R3F5bO8+szEPVNKhsS5BhB6oDg7j0TkBJJrFEx09oVw352CU/GfXFsyDsj6Oh8k4hVqkHQQVeJFnV2MVssFbUZDj1dH9denEo3V/9GWRNdrWdbnbbsT0Iy9Zmoa4H8gxJOxKOxMN3vWpy+eEQq+DYtz7h+wQ1o6h5eByXzj3QGOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=lsVmCRTw0zvpjLHcOGhdoTiubLiylwQbVDOugo9wsVc=;
 b=UYHjN0JHXaGHchlWChVjUAx5cx1utXJInxIGCqtdLbjR+mtfgAnzR7prMsahflY9EH0d1rQNs3aKCseeIJa2OPzAi7SO4/zeOJ0WWap/y2PmbKlwO1Kl+MNypAp4iv1XspbJH1aJWQEyWzUqJsKr1u8qzd8gwXOfxmaYIGPberNWIK1hWNDlpp5FXbLh4Zi8OBXeVBK3duqH/ZA2gE+OiffuMunzE9ozFILxv1O0o6evENvXnwhfWf11V5NAdzYnJLLPtrJeN8lp5jQcw2EQ44HPrMcGoc5dskPp4AofyihlwaX7C5F0EqjwtVYBtmO1ypLMHvPFjelk15wNmjYRwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=lsVmCRTw0zvpjLHcOGhdoTiubLiylwQbVDOugo9wsVc=;
 b=GSx4yJKOsmzalidPg+Zdvfz+K1qMYp8eEVv8sWxxr4zQMA1ZMan0SKuFgR5qZhuMfE+POkDusopcO1QW0osvM1pb+pLfTfxBLvJr5MD4wwofgJ4DLp1weE3fanpbPkYYSn24CE3EZU1eMl4TzkdIRrsrYHNEDbZlzLw61AOa/0I=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <14d94ac0-f193-4344-bb04-f4bf1061d39b@citrix.com>
Date: Tue, 17 Feb 2026 09:47:02 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH] wait: drop wake_up_{all,one}()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <3f1fb7a3-0abd-4df0-92b6-2bb6d78c6422@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <3f1fb7a3-0abd-4df0-92b6-2bb6d78c6422@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO3P265CA0026.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:387::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA2PR03MB5833:EE_
X-MS-Office365-Filtering-Correlation-Id: 94cbaf70-ce0e-4a06-db9a-08de6e098302
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?NWxKVTZqa1dtVldHdHRWY3VVTk5CWSt4RVcxY2hORGFoZER4ZlVQanNvalRs?=
 =?utf-8?B?ZjU5S3BmNy9DRWNQbnNNckZzZ25JMXhrR0lsOW9zY2JLcXp3dXNwQjh6d0w5?=
 =?utf-8?B?ZlRJbmxMelFHTnF2WWk1b2JyWndteksvWlhwUjdxY2VmS2ZzYUM0dTllRE41?=
 =?utf-8?B?cis1aVVHTHRxVzMzUHVWd1BmWjI3TThSYitqVnBBR3N2MnVTd0lVaEJZT1Br?=
 =?utf-8?B?TVdiM21MejJNbjVUY25xT0tVUVViVThpZ2RJWmRCM2VVZ0dtbGxzY1FvUVB4?=
 =?utf-8?B?a252UmRyQjhMZjRSQmk5b3o0UEwyUUNvbXlYTDF0dSs3bE9Sb01pdnROeXhM?=
 =?utf-8?B?RlpWeEdvVXQ4eVFvbXdtWktsRkFWdkxVeUdRMzBNbDBzdXcwVUFpU1pzRHdB?=
 =?utf-8?B?V0FyMWM0SUVvNEVUcUFBa1pBRmx2aDQrMllBdnRSRGZyR3psTDUva3JxTFVW?=
 =?utf-8?B?L0l1cVJRdHM0c2JVeGNFUFVaWEU1a3lBSDhaMGNaOS8rU25wMmdzeXY2MXJH?=
 =?utf-8?B?T2RDQVBLVm1mQ0NGSTBvczBjWlBMb1VzcmxGUXFjckoxcWIwbWlGWi9vV3I5?=
 =?utf-8?B?QmMybXBPSlNuOHgwQ2sxaHZNNWlhWU4rNTlydjYwdVUzbnoyVUFwdVpvVlpw?=
 =?utf-8?B?R1RlSEZjRDlZdkNERHk5QzY0R1pLb1A1bFIrTzh0MlkyOWVCWFBUUWtleW5u?=
 =?utf-8?B?VURHdTR4L1pMTWJrVzdyUVV3RWJmdzZTM0dJSVY2bjhVWU5tMWpubG5MbS9s?=
 =?utf-8?B?UithZWprWXlQRmxMQk9MU1VIRHlzWTJld3VveFVSb1F5QTlIOHo2MWU1dWhQ?=
 =?utf-8?B?YVZmOGFCNnFRNlg4NlAvd3RnSnZqd29MbEpkMEUvZ2haaE9SVWZsTk1uV25K?=
 =?utf-8?B?M1hsQUxLbFhFck95VEwvQlRJa3V6N0FuQncvVXlqckxMSjZGSUhudGJkZjJh?=
 =?utf-8?B?bFRpRStZeE5nU0RrWWQ5YWV4dElFQkREL3NSV0xocjExcVo1RlRva1Vzb1lm?=
 =?utf-8?B?T2EwYjhNWXU1TVYreDhJVGFCNzBWbzZ5TWVxbXVpY0VYaVNkZFhmZG96Q2ND?=
 =?utf-8?B?R3BhNjQ5ZU5wNmlsY1gxakovWUxuVDdHd3hzS3hhUW5kaGNkSmQyMUpyRkt6?=
 =?utf-8?B?Q24ydEhTdjV4cGNKM1Rxc3oxNzMzSGFRLzIvaEpPdTlVQ2FnMXJJdm9GSkFH?=
 =?utf-8?B?dTBRZkRQQXVqd2dVcU5IRU02QTRRZGx6aXlubE5VdlZ4NzV3K0tMTzFIY2NV?=
 =?utf-8?B?MUZZRHFqQk5FS1UraVVhVlQvOHJDeXpQK2N5cFdkRUlhRFF3SlN0TFpINU5P?=
 =?utf-8?B?bFhUbUZLOXpOM1dWMUNrTnkza1ZycjBaUzBLSEVOSmRxcmVlaThLYVpGT0ZD?=
 =?utf-8?B?eDQ3eFdndzBXZlYvMlcybnFoMmpRbjQyczF0VVpDdjFGUXNsTkNBdmw0enNT?=
 =?utf-8?B?VjVkd0QyUjlRb0E4MGkzZnp0WFozYjJ1b2ZLUnMyRW5vb3oyQ250Y1BYMG1P?=
 =?utf-8?B?b0xXSnpkNWYrYjQ3b1hxbTdBcDVhSWJpbGlkZm45aiswRUJSRkpNMndmblF1?=
 =?utf-8?B?cHZ2TUovQzZMOU1VTC9RVG1KZkZ6aXlWSVVqSGx6c3hBUTJXMjh4N01aZDJ0?=
 =?utf-8?B?VDdKdmJaeDExZ2psSThVUW9Idk0wRVVUejVwb1VKZkhYZDJ6dWlyaVRjVGk1?=
 =?utf-8?B?NXJIR0RCYkp4ellYenRtbFpFMTFONEc1QnQ2ZTRqVFNDVjNlU0VNQ1U1NlRV?=
 =?utf-8?B?SzdFdlpaS2M3cHo1ZUc0aWMyQzJiRExYOGY0RVJJaW45TCtvOFNXYityTFEz?=
 =?utf-8?B?clpxb2pNN2ZSSWhONHovbUFyRDExNVdQRm5vZUFkMXAySG9ZZGFCT01vdkVq?=
 =?utf-8?B?K2Jicm14RFc0cktTMGhZNkJPaUhoL25tUWVCQ1Jkbk5nUDM4TUtCekFRaXpM?=
 =?utf-8?B?UkVhMW5OUDdZMks5WUw1aTdValB4V0FoY0d2YnZ0akFpUVJzbFNwbG16ZXpY?=
 =?utf-8?B?Z0xjMWlEOGEyc3QvL0hqRXAvZTRJekRiYmdiNkE0WnFudnVTd1plVzAzUzAr?=
 =?utf-8?B?cXZxVWoxUWJHS3U5ZU5pUU1Qd3lWcmFiTEJVWXRkNlRzN2FlaXllS2xvZG55?=
 =?utf-8?Q?nytc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SWRNeVhqdGsvTFdUSDE4TVZ6N1ZoaG9TV29wZFJYeUpkNlFKUnZWd29qVU5Q?=
 =?utf-8?B?NDFLVllRa2VHMGZoM1JJQWxuN2owOGwyZzBCTHo2NTBNVUhGdVZwdDBtYXlZ?=
 =?utf-8?B?UlZGSDBybGNZdjAvVkdPM2syQVdoWW91MW4xdUVDa1ArVGFQcENtR3Y1eUJU?=
 =?utf-8?B?SHNYNENNTHo2NzYzVjh3czBDRmt2bkNyNmczRmNGQ2dKMDlIb2hjWWN1QThF?=
 =?utf-8?B?NVdKQkZ0dUo3dTQ3ODd1TTh3WXhhR01Wckx6eEV1QmE1b3kyemxpSDdWMDdX?=
 =?utf-8?B?RWd5ODlmR0NKS3NjUDVvRTJ0dUkwdm1FbkVLY3RpWXRiMkdweDBnZnlDN1Fk?=
 =?utf-8?B?bm9WS1h3T0VDRENWK1BnQ1EzNkx4ZnlpTDJFbENuLy9sWTRqZXQ2VG5ZRE93?=
 =?utf-8?B?N2s5YzlXb3N1VEFkNmNVa2c0TFRXMXJBTUZiOGRkUUIvelBUcUswR09laHp2?=
 =?utf-8?B?eVpkZ1V4N3dKUEx2ckRhTWZrb21mblp4N251cWNMZWFXOHJ1bG5lN3dWY1NH?=
 =?utf-8?B?TTdOemdVUHYvN1FKdW9GTW5VYjdrRlR3bUtLY2xqY0w3WVlrbDl5eW5pcU93?=
 =?utf-8?B?UGl3KzZacUxob0V5bFQrcGNldVV3aEx6ZHdoWk9aN3FuTGJwOU8xYi92ak9T?=
 =?utf-8?B?YzJhR25Yc3NJbWg4bVJZMlB1Sk9YNlEwYmR0U1FKV0hUU3BEM1ZyOVBvTlJE?=
 =?utf-8?B?Ym5OMkc2Sm8waHVPMEV1Tm1ENTA4RHVUSHV0N3JlajlQbnkzS1JwZGpNL0Nw?=
 =?utf-8?B?a0FZOHQ2aWsxYm1SUWF6QWtnM0dndDZmQ1lVTFQ5M3JFa200aGtjSTRWK1Zn?=
 =?utf-8?B?R1M1THhBS2d4QlpacWwrUlNXYlBVdUxUUGpvVmU0eVBDN0dzYmxKMWF1OFJz?=
 =?utf-8?B?Y1NoRFFaK0Q4Y1VQcnFRbDBDN1VMb3d3dWsyZGg0RXVIKzFGazlaU2dDOUxC?=
 =?utf-8?B?R0xESDlMblRiWWRKOFo5YzJ2aVBVOERKSWJUdGNpM2wwVUNCRUppNE9pcVl6?=
 =?utf-8?B?NlV6VS9LS21wU2VPek9ER0lGcllCekszZmF2WjZNT3N6cXJCTXZNWloxVm9p?=
 =?utf-8?B?TTMweXYzQlZJOVJoR29GT1Jjcjl4Qi9MZnNNY3lFR0MyZFd4a1lTMldwSUlQ?=
 =?utf-8?B?enpGQ052SFRYb25kdFRMejh2dm5ZaVVJTS8xaCt3MzdxWStReTRrOUpzVHZE?=
 =?utf-8?B?cFE3RFJyZUhrYmc5MmFnbStMZXZQSStOL1o3VnJvT09Uc1dFQjRva2RDVFhZ?=
 =?utf-8?B?NEJUNEpsdi81TXF0ZENSeVdJZVlndURhRFlGTE1rdjZXVHExOC9BR1VxTU5Q?=
 =?utf-8?B?VnhIZzF1dlBqcDJORkJmcVgvM3ltNENVbDlPVnlKajkzOVM2YUd3djkvRFp3?=
 =?utf-8?B?Wml0TmpBNVdvd0lQcmJreThaZEJobFV4MDAvVk9xd2ZQbVEvQ2Z2STNiaFNI?=
 =?utf-8?B?Y1ZTajRZNmtVcW9HSlJLaXZoSTdQK092ZTVBSW15c01vQzhMa2habnd5SXpS?=
 =?utf-8?B?WWd5cWlMQ3AyaExMSkNmQmx2bEg4cE5CcFl4QTlqWUhCenBrSWsyTFgvMHFy?=
 =?utf-8?B?Z0RiQzByaGFnY1UxNGFmWVhnTGM1NUFwWGJZUkJSdXJTWW0yeW1GTDhtcTRN?=
 =?utf-8?B?ZTc1YUJsdHg1bFVCdEY0QTJYclIvZnJ2VGxKcXJRSXRFbGlra002MUVtTldD?=
 =?utf-8?B?dUxGK2VsSkxMcHE1VVFBS0F2bTFYWnM2eGpVRURNQ3ZQblZXYW13NTdTNWVL?=
 =?utf-8?B?UGlTVXNBb1RQSHpSV2JtclZiZVFjakdYVXlGNTMwbkZXTmUvLy9HelFUdVQy?=
 =?utf-8?B?ZzZmV0ZjRGlad3lwMHhyVWppM0JDVkF5TS9OeTFiaXNKV0t6eW8waEZsU3Er?=
 =?utf-8?B?cDEzL2QzY2UxL3dBbDZCbXIxaHhSUlNteGNZTjd0TENKSlluSFJvN09Wanhi?=
 =?utf-8?B?MFhXdkg2TnVWMXNET3hoM010WG1WRkFvZXUrWFA0VlZYL1dGU1hJVlAyWFdX?=
 =?utf-8?B?S0VYRllIa2Z5dkU2d2NUMmx5M3Q3M1dvRlNGOFU1NkZoVXhYLzg3YkJFOEEv?=
 =?utf-8?B?WHh0V0habE54VWs2eTJ0K3FXcVpkdTRhMW9Yc2w0dGoyVkpkMmE4S25WVFRM?=
 =?utf-8?B?bU9JUTdvQWk0NkhCNnhhQWFwYmpTbnF2dnF0bVYrQ1U0UWhtK2EybnNPNnJm?=
 =?utf-8?B?akxmY3hyaFVmRWFHRStpS2lFOFVUU2E1d1hJakxod2lBeWJvcjVFKzlvSEZn?=
 =?utf-8?B?ZDFmYVNhNFNQcjBqVjJCRGxxV2NwNzZyRVVIT0NLcC90eU1XeEFuZTBWMXp4?=
 =?utf-8?B?cE1YeTZIbkswd3RWbmlmbDQxWkpIbjI1NlpyamdKUDFlSThuNWpRQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 94cbaf70-ce0e-4a06-db9a-08de6e098302
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 09:47:06.6813
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qRxqrz2dR6JTKU2ToLrVeslE9jDcIRtq+lcbruNjB/pw74awL4OYfYtr9rxBXSQWDj+8yDhqNYsAaIgdQ2DAl2GQJy4lwX7ZGdV0dlbraNQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5833

On 17/02/2026 8:35 am, Jan Beulich wrote:
> wake_up_one() isn't used at all, so violates Misra rule 2.1 (unreachable
> code). wake_up_all() is only used locally, yet rather than making it
> static its sole user can invoke wake_up_nr() in the intended way directly.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>
> --- a/xen/common/wait.c
> +++ b/xen/common/wait.c
> @@ -85,11 +85,6 @@ void init_waitqueue_head(struct waitqueu
>      INIT_LIST_HEAD(&wq->list);
>  }
>  
> -void destroy_waitqueue_head(struct waitqueue_head *wq)
> -{
> -    wake_up_all(wq);
> -}
> -
>  void wake_up_nr(struct waitqueue_head *wq, unsigned int nr)
>  {
>      struct waitqueue_vcpu *wqv;
> @@ -107,12 +102,7 @@ void wake_up_nr(struct waitqueue_head *w
>      spin_unlock(&wq->lock);
>  }
>  
> -void wake_up_one(struct waitqueue_head *wq)
> -{
> -    wake_up_nr(wq, 1);
> -}
> -
> -void wake_up_all(struct waitqueue_head *wq)
> +void destroy_waitqueue_head(struct waitqueue_head *wq)
>  {
>      wake_up_nr(wq, UINT_MAX);
>  }

The diff looks wonky because you also moved destroy_waitqueue_head(),
despite wake_up_nr() not being static.

Keeping destroy_waitqueue_head() in it's old location will make the diff
smaller and more obvious.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 09:58:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 09:58:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234733.1537872 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsHqm-0000Tr-I5; Tue, 17 Feb 2026 09:58:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234733.1537872; Tue, 17 Feb 2026 09: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 1vsHqm-0000Tk-FI; Tue, 17 Feb 2026 09:58:36 +0000
Received: by outflank-mailman (input) for mailman id 1234733;
 Tue, 17 Feb 2026 09: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsHql-0000Te-Bf
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 09:58:35 +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 37707fc3-0be7-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 10:58:33 +0100 (CET)
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-65a380b554bso6356928a12.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 01:58:32 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8fc766554bsm338075466b.46.2026.02.17.01.58.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 01:58:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37707fc3-0be7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771322311; x=1771927111; 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=Cg5HGzN/ZEIu2zsdanBDI63kH4gFoT9afOEt/zeJUx0=;
        b=Xwne/a0JgqYCh6dCB5xu84J6HUrzeG+KfDPOAGV5tz52x/6nroFuR4TBGUm+Lb2wC7
         2F5K3JEKkBZf/0rT53PN2KKd5jN7N8ITBqLmB+ptAANPIoyhpukJcYdC/DB7P6a4M9Gd
         48o/RHjhVn2tmOdbpiHI6OLA7tyCM/Wrkai8KSK+mLJvj52CTnIMroFSdjQWOWulljsh
         TLNKXbMO8ZdVfyL7OM43h102NUUE7BioiWYcdb7VgNZ2V2dnLYS1/5hQ9Hh1lXOEHkVc
         IXif8rDMV6sBY7nW+qQgGAOu2uoBPbHqhkB2zOerhBNL/cdHM4stvhHAYYzOzlwelJqx
         d+/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771322311; x=1771927111;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Cg5HGzN/ZEIu2zsdanBDI63kH4gFoT9afOEt/zeJUx0=;
        b=fYIBrV6f5UYFTTmXQ8RACm56zhnJzXlJnFV9Ru+GN3VyJY4mA5Ermn7JbyLJ0Cqova
         CLRwxNFgko1/GY/Fzk1boUp80rRsyOIpdv+r53qZxDugOI9580DHFFOYghrHXwvx3+cG
         CEKCCQzqXpSrrM5YQFC5Zp2mB/Y+66fLU7b1sByD8cypJicMtaNi6qqzfBeGodNidmHm
         /8fe/XGJYK85ORKQYaMGLTMk9w6n1iPZonBLKDFqyG4RhZGFTlXhVX76rfcwC+1ShpDu
         agbCLiEXprcblFSGx2Gub4/ktfBYvqC9+SRgXboPn+RCH7F99MRJNBlG9YyLU76dg80u
         8Piw==
X-Forwarded-Encrypted: i=1; AJvYcCVHiP3H7fgC7UaQUJbsH1JFhfcXTDT6GaT7DrDJ0t/AW+bcb2vL0dGRLweZd2OQwXU0PJvtlzxgqmA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZim2WyC8rbdg+DyQOA9xHEseKxO8p22F5rswyGBa7Ov/iF7pj
	QBZZXjyzV1kCTtMt5XxMg8s5Wg1TXglIYC+ml65HhaQJj0auPyD26mMp
X-Gm-Gg: AZuq6aLFbRtpmbp3KWrEd4QCuNhn9yUiVKmrRtC45+aHa/335Tp/QmFCGX/kAatpSBr
	IY0mla/E3TKsdt3i0sGxVFTcdOyliM98J3cpdisAOMsk0UNGLtoe1Y8t2+KcmlJ7T1snijVrHX0
	gvBU3nqeqSUmvUm4KcwWddosLev02f763BvW5Xpanmc7/Dnj1TVBIc+NxCrVeoB7kcLUR3+6yVw
	pJueYwntolBSO0FwBrBtUZ1xdOyAYq6hPC9VP/pLf6qFjo/ZlWXQoIGNx786JgigCdva5bk/qqo
	hjDpidblUEhkI43Bf9RYZMHdcF0UNUN4OzctQUflGm/3Q3Oydf0gxeN3o4yXB+G4QIoxJOKnvTk
	Aq7Zrh3PVs0Ld29yjw53uqF1IqZ0Dilc8Cmm2opHG44yNsuOlEy+ERFeUD46w+kcoMANf1wuNF0
	0EuqHUP1DN+ZYCJR4b+fw34jfW/oe90M7eW9QUuYxvRlNmbbqnMgjUevMIcGb9EZ+vUt/ma1W2j
	1M=
X-Received: by 2002:a17:907:97d6:b0:b86:f194:9eec with SMTP id a640c23a62f3a-b8fb421466cmr698632666b.18.1771322311264;
        Tue, 17 Feb 2026 01:58:31 -0800 (PST)
Message-ID: <5146fc56-9fa7-49c9-8184-954ca84eb439@gmail.com>
Date: Tue, 17 Feb 2026 10:58:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/6] xen/riscv: implement get_page_from_gfn()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <04eee3ae5e8aadf8c7f0b873ba24ce38220e8fa2.1770821989.git.oleksii.kurochko@gmail.com>
 <c053f6bd-eedc-4dbf-a404-802781dee722@suse.com>
 <d12d8cb7-bc1f-47a4-bc1f-004817394467@gmail.com>
 <349ad398-8a18-46cc-a34b-576edfb544c0@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <349ad398-8a18-46cc-a34b-576edfb544c0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/17/26 10:10 AM, Jan Beulich wrote:
> On 17.02.2026 10:01, Oleksii Kurochko wrote:
>> On 2/16/26 1:38 PM, Jan Beulich wrote:
>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>> --- a/xen/arch/riscv/p2m.c
>>>> +++ b/xen/arch/riscv/p2m.c
>>>> @@ -1557,3 +1557,31 @@ void p2m_handle_vmenter(void)
>>>>            flush_tlb_guest_local();
>>>>        }
>>>>    }
>>>> +
>>>> +struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>>>> +                                    p2m_type_t *t, p2m_query_t q)
>>>> +{
>>>> +    struct page_info *page;
>>>> +
>>>> +    /*
>>>> +     * Special case for DOMID_XEN as it is the only domain so far that is
>>>> +     * not auto-translated.
>>>> +     */
>>> Once again something taken verbatim from Arm. Yes, dom_xen can in fact appear
>>> here, but it's not a real domain, has no memory truly assigned to it, has no
>>> GFN space, and hence calling it translated (or not) is simply wrong (at best:
>>> misleading). IOW ...
>>>
>>>> +    if ( likely(d != dom_xen) )
>>>> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>>>> +
>>>> +    /* Non-translated guests see 1-1 RAM / MMIO mappings everywhere */
>>> ... this comment would also want re-wording.
>> As you mentioned in the another reply to this patch, I messed up x86 and Arm
>> implementation in a bad way, so here should be DOMID_XEN used instead of
>> "Non-translated".
>>
>> Based on your reply it seems like the first comment should be also rephrased
>> as you mentioned that DOMID_XEN can't be called also "not auto-translated".
>> I think it would be better to write the following:
>>    /*
>>     * Special case for DOMID_XEN as it is the only domain so far that has
>>     * no GFN space.
>>     */
> Simply say that dom_xen isn't a "normal" domain?
>
>>>> +    if ( t )
>>>> +        *t = p2m_invalid;
>>>> +
>>>> +    page = mfn_to_page(_mfn(gfn));
>>>> +
>>>> +    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
>>>> +        return NULL;
>>>> +
>>>> +    if ( t )
>>>> +        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
>>> If only dom_xen can make it here, why the check for dom_io?
>> Incorrectly copied from x86. It should be just:
>>    *t = p2m_ram_rw
>> here as in RISC-V for MMIO pages owner isn't set to dom_io (and the same is
>> true for Arm I think).
> May I suggest that right away you use the construct that I suggested Arm to
> switch to (you were Cc-ed on that patch, I think)? Despite the absence of
> p2m_ram_ro on RISC-V, that'll be usable, and it will allow keeping the code
> untouched when p2m_ram_ro is introduced (sooner or later you will need it,
> I expect).

Sure, but doesn't that patch is connected to another function (translate_get_page())
and just fixing the handling of what get_page_from_gfn() in *t?

For get_page_from_gfn() to not miss the case when new type is introduced it make
sense to do the following:
     if ( page->u.inuse.type_info & PGT_writable_page )
         *t = p2m_ram_rw;
     else
	BUG_ON("unimplemented");

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 10:26:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 10:26:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234761.1537883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIHM-0004VF-Kz; Tue, 17 Feb 2026 10:26:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234761.1537883; Tue, 17 Feb 2026 10: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 1vsIHM-0004V8-Gn; Tue, 17 Feb 2026 10:26:04 +0000
Received: by outflank-mailman (input) for mailman id 1234761;
 Tue, 17 Feb 2026 10:26: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsIHL-0004V1-D6
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 10:26:03 +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 0e424c85-0beb-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 11:26:01 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so45300065e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 02:26:01 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a29982sm103769865e9.15.2026.02.17.02.25.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 02:25:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e424c85-0beb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771323960; x=1771928760; 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=VIPKhxl26Cc1xDcD+huJmGNKPP7ZnTaEskrRCs+Rpg0=;
        b=LnISnONMC8BrduK9XZraRzw8yeEtqW3wq6FusQrL7EV1jPHNOACEM1qdUPMoqvfV7l
         xIjgEXAb5HqLTLPphhIlalRJgw9r+aJsGop9uVi+rp0V0lJpjnZJm0GM0EufHPTN56Po
         ucIVlF4rFXemlkPwSd95nb7Sle5Cz6F/d8T2kI4I/F9ksxeQ9yIbrAOpuxdTmMjYU/Zj
         MIxXMWke3mkJ35eLJClswBkje+654hcrcWFvUFe5k1rnSB7BriyF8CR3Bj1B/uyB28aV
         SnE4pRjAoAJyfuNBhKGKTStCmIUwNcgLZmNiu07gsZg4uJlQN1rkNCFtFIwMnlKCvpE+
         yNfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771323960; x=1771928760;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=VIPKhxl26Cc1xDcD+huJmGNKPP7ZnTaEskrRCs+Rpg0=;
        b=Y7/9YBBauKF1MnFJSKxm5Z/TD3+hH2/3hAjNDl+GDYu9WNc0BOFzCHL1EIxh3M36jH
         VCo/kNXaxRiMdl5qyjQaUDJZS97gfFIQoy+CspPWBkbE3JO40t6U9yj/D/9H0CkYIO0P
         UxySOdg6Fd84ZjZChKsfVPZJGd5z4MBlqwdfU/amq1FZ1o08jJ5lOLycKxs8Tnrp9Mjp
         7VQbSIUjW87Ae//i/yuK0JZPae/WNEViBaJYnRZVcZLNgH647uGzpn03dop+GT8pH6JW
         KCHqlrqOQQbLNqOGo6GAV4mY1oUL+0ttmgCS1idha00K3KX13C/KoZ6Mst2nwHWNiMXL
         XbRg==
X-Forwarded-Encrypted: i=1; AJvYcCUL+VspZ35YX3mA9dcBa/veeuu9TP1G2LwYmvPGp/7QuuT+BNY8aC20a+oS4ttg1FFKZK5PmESAwqU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzBUbNxW13V1dgVdQCZ3vEtWxqsbrB8gNKwa4Jh/EnIBfGin8SW
	J0Gs2oDnWWMZed4/YvQd8a2o6uCFxHSz9ZZ9+nK0IyKnoH0VaNeD2fke
X-Gm-Gg: AZuq6aJ22LH0tou0IBwNZbyDQ1SW1t6zFFPT1gqyTurNf8PtoAZrqe1QNWuFAMpHpZZ
	xqNaxINRMn5WPQxQs9csZncoi71mDa95AiyO97gTSo6xDWAoKlr4PrYXjC+wwpo/JHaairvY1BM
	JKhRczEW9R40A20Aif/zEP3QXPwMpvuLAWC5FWxvYqmivvJsmjuowKgr9weUOJbnG6JT8Ek/YW8
	qT7dbM9hAmYbGD3HAOiDEPgswTRaVZGYrUUUTxM6hByBFYQWn57WCAjgLMS0GJMhbakKBR28j5u
	QW6UlIuYXic9Ob0boLLYvAaMH42VX33iNqQpLupSFAX7vjC+IipFZOtE7HUDrlr042R88nQnHIA
	Mbekrjw1FoU6Zc8K1HKuie8qyMSRG6hzQpLD4O8bsCjNjebbnjyJp26ZbDHwiaY+wrP6hUgkciU
	iJYXHxTukJw1u2UDLztvAYRUT8r0wxRIMNpSsVznrcAZWmErshvF8q1xcb0hMWO9zb0Yh5+N0Tw
	729r/WhbuWXCA==
X-Received: by 2002:a05:600c:c04b:10b0:483:7eea:b172 with SMTP id 5b1f17b1804b1-4837eeab900mr123033345e9.23.1771323960150;
        Tue, 17 Feb 2026 02:26:00 -0800 (PST)
Message-ID: <69cef6db-cd39-457f-a5f1-b2f0078b57e7@gmail.com>
Date: Tue, 17 Feb 2026 11:25:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/6] xen/riscv: implement copy_to_guest_phys()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <cb50d76c627cb666317b23ae136ca43bfbfd04c5.1770821989.git.oleksii.kurochko@gmail.com>
 <1edea973-4ca1-491f-a9bf-9c2b09bbe615@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1edea973-4ca1-491f-a9bf-9c2b09bbe615@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/16/26 3:57 PM, Jan Beulich wrote:
> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>> --- /dev/null
>> +++ b/xen/arch/riscv/guestcopy.c
>> @@ -0,0 +1,112 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/domain_page.h>
>> +#include <xen/page-size.h>
>> +#include <xen/sched.h>
>> +#include <xen/string.h>
>> +
>> +#include <asm/guest_access.h>
>> +
>> +#define COPY_from_guest     (0U << 0)
>> +#define COPY_to_guest       (1U << 0)
>> +#define COPY_ipa            (0U << 1)
> Like already asked elsewhere - is "ipa" a term commonly in use on RISC-V?
> To me it's Arm terminology, which you don't want to copy as is.

As we discussed in another patch thread, IPA isn't really used for RISC-V
and I will rename it to GPA.

>
> Also, don't you prefer to use BIT() everywhere else?

Yes, BIT() would be better for consistency.


>
>> +#define COPY_linear         (1U << 1)
>> +
>> +typedef union
>> +{
>> +    struct
>> +    {
>> +        struct vcpu *v;
>> +    } gva;
>> +
>> +    struct
>> +    {
>> +        struct domain *d;
>> +    } gpa;
>> +} copy_info_t;
>> +
>> +#define GVA_INFO(vcpu) ((copy_info_t) { .gva = { vcpu } })
>> +#define GPA_INFO(domain) ((copy_info_t) { .gpa = { domain } })
>> +
>> +static struct page_info *translate_get_page(copy_info_t info, uint64_t addr,
> The caller has to pass in a domain here. I therefore recommend against
> use of copy_info_t for this function. Or wait, this is misleading, as
> the consuming part ...
>
>> +                                            bool linear, bool write)
>> +{
>> +    p2m_type_t p2mt;
>> +    struct page_info *page;
>> +
>> +    if ( linear )
>> +        BUG_ON("unimplemeted\n");
> ... of "linear" is missing here.

Yes, for this once cases it will be used vcpu as an argument passed by "copy_info_t info".
I will add the comment above suggested below BUG_ON(linear).

Btw, I think it makes sense to change linear to GVA to be more close to RISC-V spec?

>
> In any event, this one please shorter as:
>
>      BUG_ON(linear);
>
>> +    page = get_page_from_gfn(info.gpa.d, paddr_to_pfn(addr), &p2mt, P2M_ALLOC);
>> +
>> +    if ( !page )
>> +        return NULL;
>> +
>> +    if ( !p2m_is_ram(p2mt) )
>> +    {
>> +        put_page(page);
>> +        return NULL;
>> +    }
>> +
>> +    return page;
>> +}
> The "write" function parameter also is unused, but there's no BUG_ON() for
> that one? Imo the p2m_is_ram() check isn't thorough enough (on the Arm
> original): p2m_ram_ro shouldn't be allowed when "write" is true. As soon
> as you gain p2m_ram_ro on RISC-V, things will need updating here as well.
> Perhaps best to leave a note.

I will apply your changes from suggested for Arm patch (Arm: tighten
translate_get_page()) so write will be used and also no extra updates will
be needed here.


>
>> +static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
>> +                                copy_info_t info, unsigned int flags)
> Why an "unsigned long" return value when ...
>
>> +{
>> +    unsigned int offset = PAGE_OFFSET(addr);
>> +
>> +    BUILD_BUG_ON((sizeof(addr)) < sizeof(vaddr_t));
>> +    BUILD_BUG_ON((sizeof(addr)) < sizeof(paddr_t));
>> +
>> +    while ( len )
>> +    {
>> +        void *p;
>> +        unsigned int size = min(len, (unsigned int)PAGE_SIZE - offset);
>> +        struct page_info *page;
>> +
>> +        page = translate_get_page(info, addr, flags & COPY_linear,
>> +                                  flags & COPY_to_guest);
>> +        if ( page == NULL )
>> +            return len;
> ... only an "unsigned int" (or 0 further down) is returned? Same
> question for copy_to_guest_phys() below then.

Agree, unsigned int should be enough.

>
>> +        p = __map_domain_page(page);
>> +        p += offset;
>> +        if ( flags & COPY_to_guest )
>> +        {
>> +            /*
>> +             * buf will be NULL when the caller request to zero the
>> +             * guest memory.
>> +             */
>> +            if ( buf )
>> +                memcpy(p, buf, size);
>> +            else
>> +                memset(p, 0, size);
>> +        }
>> +        else
>> +            memcpy(buf, p, size);
>> +
>> +        unmap_domain_page(p - offset);
>> +        put_page(page);
>> +        len -= size;
>> +        buf += size;
>> +        addr += size;
>> +
>> +        /*
>> +         * After the first iteration, guest virtual address is correctly
>> +         * aligned to PAGE_SIZE.
>> +         */
>> +        offset = 0;
>> +    }
>> +
>> +    return 0;
>> +}
>> +
>> +unsigned long copy_to_guest_phys(struct domain *d,
>> +                                 paddr_t gpa,
>> +                                 void *buf,
>> +                                 unsigned int len)
> May I suggest to make good use of line length, just like how copy_guest()
> does?

Sure, I will do that.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 10:34:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 10:34:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234775.1537891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIP7-0006Ce-Dn; Tue, 17 Feb 2026 10:34:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234775.1537891; Tue, 17 Feb 2026 10:34:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIP7-0006CX-B0; Tue, 17 Feb 2026 10:34:05 +0000
Received: by outflank-mailman (input) for mailman id 1234775;
 Tue, 17 Feb 2026 10:34: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsIP5-0006CR-W2
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 10:34: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 2c4f2e43-0bec-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 11:34:01 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-483487335c2so38294385e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 02:34:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48370a41be2sm176627595e9.1.2026.02.17.02.33.59
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 02:33:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c4f2e43-0bec-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771324440; x=1771929240; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=rMHP5nZ7nvK12wNfN/+6KSlVo6AusYlohOMqI3C0yIc=;
        b=CgJp1r6KCALFWLuoPqkkztgu8unwyV/3VdlNEjpepXi6JxXJ6weeQVhLUYL51ZWgRM
         T2c0lLs9QhdrB+Ua5oWR63PJY+XMlEj5lVq3WMpTRKSBBeOZr+CERd/YNrjPIrIxiwyN
         X2N3jNtY5GN8BqOXFjy4gRTQNGr7w3oncqHM3I2VXma/0LZwJBqlJo3zBzqT9vQJy4+I
         dhVltYHk7GiTCTPkhibSzXnjx3/Birh+xUZj7b7bca+rSg9fu2jVU+nXCmmr586JC5n6
         8JDouMzE2+ZasIbBD+YkNCTrCquuz1ZUNRB9qOxxVjVQY65B1MMmvIlpE0SQeMKjhune
         h/SQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771324440; x=1771929240;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=rMHP5nZ7nvK12wNfN/+6KSlVo6AusYlohOMqI3C0yIc=;
        b=ZVDI0yPM+5l2WDFr+pRYliZA6F2UVU3vVQfpDrlfy+q/QRfPMsP1jOy2j9U0iLDIdN
         zXS3iQhL+4ux8Jy9rQverqjLEWdALpvZjVDKKJQ4yRv73MpcNNkj2/t3XkI1Bhk+biCz
         wYv5/5cjrEzzHZ5PQ14sbCPlgztHpbqTSG4BJL+fKAr/aAe66lIL6WZdMbQoNd6v/0XH
         5b57fWEsdzxJC5QKzaGgUuevjiIAW5vy985N3H9mfLp+anSQZoTxv8jK3HRs+uqhcxAS
         EHsyURwV89P9igKczmHS6ekT/RFDadsSUHdBOCl0zlMgNehNUtc10TidEdvQKfSANvjZ
         Br0w==
X-Forwarded-Encrypted: i=1; AJvYcCUpY2XI8v5ryeE9FdevFDsC6kEAanrgqDA5vgd1xe1KLaeuqE1tnAb36t/vH8LkK908a/tDTXxOUUk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx6tMNkK9Hkz85HxYU6skhET/0fyVJcsCTPXi4vU7hPqR4PR21g
	KNsE5oXL8XLC0cX6RtJ64pd4IpS0nfTfQA6XNHPJuc2COnrJvKgO0jqAg4W43Ywl+w==
X-Gm-Gg: AZuq6aJZ1XWphLuHWq392rjHH71jjiW+4Ks9h6KAEyKSshI7m0a6FKKt0KiAL6uLQTk
	ZWqo2Y+0p9KbUbUDAdUUAuO2ad5x8O10Z4s2M8OicC/mEMTe9KFzNr/v5396J1PbVPdZlGa0qcl
	2RbwUYVwvZlu8vNrXOYg+AmsWQyTaUOcSuOuk4Um5L/NoRykk2QT/Vpz3DlrqKuhWR+8Y/3vdK4
	hA0hGUkYJynbaNIowMFbKzqtntNublJQ2wYMT69pymhy4+YhRyGopw2GyPRXax0CKT3VxvXg1Ot
	lzVvVSq+lpa67J5mjMlMRK+kcKbjQrBxdvBs95EowmlmBx36atsgheuLj7+KZxKnt7y2WzJaSwH
	GiZlSc6LPQD4e9BGJifd1F1NW+Bx+lcnNDWl0IK/6f287LWW/qypQJne3R3bBeE/NoNd5eYuX+C
	w04oTlHS4RIwZ9Hdr0QmWCgOtQKXRNWJo1zN3DhAWCjqO0LwOyUQ4CD8JpgnuNvFH8BAIBQ1wiy
	NCBy5cHGrAo6pMtDZ2V+EU4BQ==
X-Received: by 2002:a05:600c:a113:b0:483:7ce6:1efb with SMTP id 5b1f17b1804b1-4837ce6228dmr142453405e9.17.1771324440279;
        Tue, 17 Feb 2026 02:34:00 -0800 (PST)
Message-ID: <4d956442-d73d-4b50-9aa0-6603b5734c1a@suse.com>
Date: Tue, 17 Feb 2026 11:33:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] wait: drop wake_up_{all,one}()
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: <3f1fb7a3-0abd-4df0-92b6-2bb6d78c6422@suse.com>
 <14d94ac0-f193-4344-bb04-f4bf1061d39b@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: <14d94ac0-f193-4344-bb04-f4bf1061d39b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.02.2026 10:47, Andrew Cooper wrote:
> On 17/02/2026 8:35 am, Jan Beulich wrote:
>> wake_up_one() isn't used at all, so violates Misra rule 2.1 (unreachable
>> code). wake_up_all() is only used locally, yet rather than making it
>> static its sole user can invoke wake_up_nr() in the intended way directly.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/common/wait.c
>> +++ b/xen/common/wait.c
>> @@ -85,11 +85,6 @@ void init_waitqueue_head(struct waitqueu
>>      INIT_LIST_HEAD(&wq->list);
>>  }
>>  
>> -void destroy_waitqueue_head(struct waitqueue_head *wq)
>> -{
>> -    wake_up_all(wq);
>> -}
>> -
>>  void wake_up_nr(struct waitqueue_head *wq, unsigned int nr)
>>  {
>>      struct waitqueue_vcpu *wqv;
>> @@ -107,12 +102,7 @@ void wake_up_nr(struct waitqueue_head *w
>>      spin_unlock(&wq->lock);
>>  }
>>  
>> -void wake_up_one(struct waitqueue_head *wq)
>> -{
>> -    wake_up_nr(wq, 1);
>> -}
>> -
>> -void wake_up_all(struct waitqueue_head *wq)
>> +void destroy_waitqueue_head(struct waitqueue_head *wq)
>>  {
>>      wake_up_nr(wq, UINT_MAX);
>>  }
> 
> The diff looks wonky because you also moved destroy_waitqueue_head(),
> despite wake_up_nr() not being static.
> 
> Keeping destroy_waitqueue_head() in it's old location will make the diff
> smaller and more obvious.

The diff size doesn't really change. As to "more obvious" - yes, the deletion
of the two functions is more obvious then. The "keep the UINT_MAX use" aspect
then becomes less obvious. That's why I did it the way shown. I'm okay doing
it the other way, if that eases it making progress.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 10:40:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 10:40:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234786.1537902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIV6-0007q3-13; Tue, 17 Feb 2026 10:40:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234786.1537902; Tue, 17 Feb 2026 10:40: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 1vsIV5-0007pw-UV; Tue, 17 Feb 2026 10:40:15 +0000
Received: by outflank-mailman (input) for mailman id 1234786;
 Tue, 17 Feb 2026 10:40: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsIV4-0006sb-RW
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 10:40: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 0a84cf2a-0bed-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 11:40:13 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-4359a302794so2879091f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 02:40:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48370a78c89sm326708785e9.5.2026.02.17.02.40.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 02:40:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0a84cf2a-0bed-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771324813; x=1771929613; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jhRM5XYO45exmyR3bTfVssls7DqrhYBlqXmOgp9F1Iw=;
        b=VWlrIDaaez3w0ddOdEXOqAh6EbVaUNjoGGz8f7PqiK2lbO3bzN/xpvsyS4UvsEzutx
         L0zsMriegCMaab7F3BBLO0Kz2aYUfniS/LSFVN/SdYK6i+11Nrrk/AWkbxXXUnVKy/iP
         BY46jYWBQ0SSiI0mpxrMGUh+KVqpPR5QznqBufKNI+jh60juiD+IO+2eJYSQvLG+3Uz6
         kCE+OpSut1dXTTv9iq2SnMp+NX2h3ugQIdbwDhkFYaUFKuDsDVOU2GE3DPZWzQVZJP5D
         ss55ufjpNDLZEqGtAxpmwSmqvU9aKGUTRObyFGFziURdQ5WJpXtoNlzOpAVLXCGhqnW9
         I4lQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771324813; x=1771929613;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jhRM5XYO45exmyR3bTfVssls7DqrhYBlqXmOgp9F1Iw=;
        b=LTpyvixP4SMroKfcHMmfdAqIE/htdyBb5dKQHE7SfYGcKKko2JTKPGX9kpIIIdHQbw
         eA4lMHwCWCjk1g+TYWrwYFwTwNZJWnq/vF3LaZmyIUBm+3GhW0zG6+6MH6dvV8dzUYd8
         aeeQhpgC3KrRKObf5JgvrsB349W3N9EViwKAQxs0e6ctUb2yI5cTX2wz8+//EEx5BW0Z
         SFxQbUz0B1d54ZmwX7Ev+Zr0iH0vspJtBhJwMHpMgG+TLALtmfmn4Eq5/iepW/uxc8EY
         LTfp0BvISG1AO7tOdSEmms+YGU4h1emlq9xXZCfjENcdFX9mJdKdwetujuC9quwjVdg9
         BGlw==
X-Forwarded-Encrypted: i=1; AJvYcCVGubf/v6IP2pKaOL+sHn0qfo3EQbUcxxTtxGNUnNFkkTX0rp1oFwTR7/zZWNWQ3DVLK2eXgk1E4tE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyEsyGzA6UG0U9mSnBVUxmHJ0vMflYtd3D+5UewT085UEbndPgd
	spYeGj8EzR3szuZ4uEyawz7sx2xF9qzkYzkWL4CeM5MLgynsu2+gmnfNz5nEy5b/2w==
X-Gm-Gg: AZuq6aIRnn2JnGfugTDucGJukeSBqDbjZlwqwakxtW3aNrmJY+ERgFMDHOUxlj05tOJ
	0Ug4fLbG9sw58x5PLYXux1irl8TuSIl7M6eH3g+/zBqIzmbtmrTQ+nheeYLiwBffG4q8iG7fggI
	zpUJTLl/SxLXdbTFQbvRMzgrjqPS+9s/7YgVOj4gDT3oq2w8Rfw8eLXucYnJrKnzdlyNDW0rehC
	HTb9OmnGDWwb5c1leuaBZqQD3SQC+Gp015v/FIdSXw++2CuhcR0Jz1yjyF77ZC1EwY2Ggu6d7ZP
	NHs6sDhHHQ4u4l7wrGVWWUo+FsUYj1OJrFuEka4IKBnct/HFB1nUAuHvTxETzTeS3ljjetB7nEU
	Qg7STVOv+q9vcff61vVtNaI5IDMVCdk/ndu+SYFtMgdnrsjHaf86LsSegZhxD+RgFCUsgv34w4v
	MYz7zyhD40g3ciW1AcPanoaHQoFjwX5+R+Wrod36DNqJBJieJDxW17AJXg8P3qplQtYB5bd+RWJ
	FvDs7DgJqmwrjtH+PqnG796BQ==
X-Received: by 2002:a05:600c:8b30:b0:480:1c69:9d36 with SMTP id 5b1f17b1804b1-48379bd7462mr189936365e9.17.1771324813089;
        Tue, 17 Feb 2026 02:40:13 -0800 (PST)
Message-ID: <bdd12139-7007-4b36-8d1e-14d722fc668c@suse.com>
Date: Tue, 17 Feb 2026 11:40:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 1/6] xen/riscv: implement get_page_from_gfn()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <04eee3ae5e8aadf8c7f0b873ba24ce38220e8fa2.1770821989.git.oleksii.kurochko@gmail.com>
 <c053f6bd-eedc-4dbf-a404-802781dee722@suse.com>
 <d12d8cb7-bc1f-47a4-bc1f-004817394467@gmail.com>
 <349ad398-8a18-46cc-a34b-576edfb544c0@suse.com>
 <5146fc56-9fa7-49c9-8184-954ca84eb439@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: <5146fc56-9fa7-49c9-8184-954ca84eb439@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.02.2026 10:58, Oleksii Kurochko wrote:
> 
> On 2/17/26 10:10 AM, Jan Beulich wrote:
>> On 17.02.2026 10:01, Oleksii Kurochko wrote:
>>> On 2/16/26 1:38 PM, Jan Beulich wrote:
>>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>>> --- a/xen/arch/riscv/p2m.c
>>>>> +++ b/xen/arch/riscv/p2m.c
>>>>> @@ -1557,3 +1557,31 @@ void p2m_handle_vmenter(void)
>>>>>            flush_tlb_guest_local();
>>>>>        }
>>>>>    }
>>>>> +
>>>>> +struct page_info *get_page_from_gfn(struct domain *d, unsigned long gfn,
>>>>> +                                    p2m_type_t *t, p2m_query_t q)
>>>>> +{
>>>>> +    struct page_info *page;
>>>>> +
>>>>> +    /*
>>>>> +     * Special case for DOMID_XEN as it is the only domain so far that is
>>>>> +     * not auto-translated.
>>>>> +     */
>>>> Once again something taken verbatim from Arm. Yes, dom_xen can in fact appear
>>>> here, but it's not a real domain, has no memory truly assigned to it, has no
>>>> GFN space, and hence calling it translated (or not) is simply wrong (at best:
>>>> misleading). IOW ...
>>>>
>>>>> +    if ( likely(d != dom_xen) )
>>>>> +        return p2m_get_page_from_gfn(p2m_get_hostp2m(d), _gfn(gfn), t);
>>>>> +
>>>>> +    /* Non-translated guests see 1-1 RAM / MMIO mappings everywhere */
>>>> ... this comment would also want re-wording.
>>> As you mentioned in the another reply to this patch, I messed up x86 and Arm
>>> implementation in a bad way, so here should be DOMID_XEN used instead of
>>> "Non-translated".
>>>
>>> Based on your reply it seems like the first comment should be also rephrased
>>> as you mentioned that DOMID_XEN can't be called also "not auto-translated".
>>> I think it would be better to write the following:
>>>    /*
>>>     * Special case for DOMID_XEN as it is the only domain so far that has
>>>     * no GFN space.
>>>     */
>> Simply say that dom_xen isn't a "normal" domain?
>>
>>>>> +    if ( t )
>>>>> +        *t = p2m_invalid;
>>>>> +
>>>>> +    page = mfn_to_page(_mfn(gfn));
>>>>> +
>>>>> +    if ( !mfn_valid(_mfn(gfn)) || !get_page(page, d) )
>>>>> +        return NULL;
>>>>> +
>>>>> +    if ( t )
>>>>> +        *t = likely(d != dom_io) ? p2m_ram_rw : p2m_mmio_direct_io;
>>>> If only dom_xen can make it here, why the check for dom_io?
>>> Incorrectly copied from x86. It should be just:
>>>    *t = p2m_ram_rw
>>> here as in RISC-V for MMIO pages owner isn't set to dom_io (and the same is
>>> true for Arm I think).
>> May I suggest that right away you use the construct that I suggested Arm to
>> switch to (you were Cc-ed on that patch, I think)? Despite the absence of
>> p2m_ram_ro on RISC-V, that'll be usable, and it will allow keeping the code
>> untouched when p2m_ram_ro is introduced (sooner or later you will need it,
>> I expect).
> 
> Sure, but doesn't that patch is connected to another function (translate_get_page())
> and just fixing the handling of what get_page_from_gfn() in *t?

Oh, sorry, I should have made explicit that the request was for patch 2.
Here indeed ...

> For get_page_from_gfn() to not miss the case when new type is introduced it make
> sense to do the following:
>      if ( page->u.inuse.type_info & PGT_writable_page )
>          *t = p2m_ram_rw;
>      else
> 	BUG_ON("unimplemented");

... this may be the best you can do right now (unless you want to introduce
p2m_ram_ro).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 10:42:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 10:42:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234795.1537912 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIXO-0008LT-DY; Tue, 17 Feb 2026 10:42:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234795.1537912; Tue, 17 Feb 2026 10:42:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIXO-0008LM-9x; Tue, 17 Feb 2026 10:42:38 +0000
Received: by outflank-mailman (input) for mailman id 1234795;
 Tue, 17 Feb 2026 10:42: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsIXM-0008LB-7w
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 10:42: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 5e04a8a1-0bed-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 11:42:33 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4837634de51so13427935e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 02:42:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d99497asm689740955e9.6.2026.02.17.02.42.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 02:42:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e04a8a1-0bed-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771324953; x=1771929753; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=EM2wYwcEcOK12C+VSaBqk9oND2UOqpGWaO8Rkrxm9n0=;
        b=SHBguVv+R14c+vZNqX0ZaigobFVPbv4f1JmAsKVDthuttGLjJ01e4wu1A4nj6umWvX
         5LDf3yxgkv+z8zdGYBLB6uWmp2xFLoJF88+zu24JkwgIuFa27edc7tobGU9j+rAlyzXv
         6FY8McWfI87DfZts+mci8+ddrLaO7A6ibiM3YbSzNjMZv/T7iB4mOHXMHfgJJET0fAIx
         aSiPHsyluSNykpd3Q3jBEceqPLsGIeWO5F56YG4UXRr5pfhIvonMpxbvHsxYMiJh0GS+
         JUmUWL4j/V+iee8CcXrXejsyIFVT6TsKN7Jh/rw0c9XKzYIuP1AGN/ER+v8pwUQ54g4r
         eRiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771324953; x=1771929753;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EM2wYwcEcOK12C+VSaBqk9oND2UOqpGWaO8Rkrxm9n0=;
        b=WjpcZz/p37UVnGGDkzQh7ALOd2PFJRI3FRb1TK/Q63+wSUdMn3Q1Z3kSl9QEeAAC6D
         Xcfld8juszF591u6eIhKxFLXcYjwa/tI5lho3/CMRhZ1ZcMlPki3DQ0disC7m8sGkN2d
         mAvKb/ofsRXrMyDwQx0lwjDGrOajWilXjV3fjFNuHNlku5TjrP/ajvxbbeNJ2jdcf64+
         bWeZGsIELBuYeyqk/r4PUK3kupkGMJq2U5PMywSarh/5CEHWq94kTmzbOgFIWobmZ8BI
         mAeaknAJgvHxQHDUQUTEyvNVQFahRyciOYuwYWQQfJJ7AgEXfU6hJI8tjj4bmhDb5Qsv
         yDXg==
X-Forwarded-Encrypted: i=1; AJvYcCXmfEVHKRTKOAZUOHh69tJ6CXAssxtD85Cry/sM3dzho9nGmQ7shqCs80KBCmX8tb/aCBxyQc0rr3Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyol4JV/OCqVuEUktvKocXtLRBdrdbo8vfd1PqcLJnh02JLtME0
	kaQkYmqF/4cyMy9sYK/eUimNkhUQFduNvgl1jLnw9T1QkVT4CUJsmdMJ82y36kXv/g==
X-Gm-Gg: AZuq6aLjqYak8uKjGvnHWeTYuATP8kbFYqR3Asu1P+PnJmrV7Cd07hLWfvmN1A8xean
	tJHJyPqyKAhCDSDfACm9jNcuaDzYw0dMHzLT0rg6UiWQIHySeauBFHexmDM6j5xUysGNTo1HlaD
	guOijtRy8iT5EVg/+Lz+hUai5stqU7bhoWAZzD+kMokrJfLtF5CdJcdOjTpl7nT+C4w1m0MQBs8
	78YiVRaGV3NVl+2B15Ne48+sKQTbqHUEtUHyv7MFxh8lMmhscj9Y0aeiI8U9PDWluwoVcywFqgB
	KxNrLk/e/+/NSc1jZA0fSrmnQCRaYAId0t73DfG9MRkKxwOD6BbVpUeRotp6MSV9QwNGM2TCtkg
	zRjtTUQbU4FNMMWO6FqB1LSPTZitssOiSssZ2tMqMBR0vdHy0F53S2Dq5TTv/xGpFuF7hMCJoV/
	Beyovg14PNMTDKX994c6Kz5ZU8pCRW0+tTyQ+JEojuiBAGlStdpx+gdtgkk8x0lqiOexKGAxmrK
	5kpokVSl7ZjqjY=
X-Received: by 2002:a05:600c:1991:b0:480:2521:4d92 with SMTP id 5b1f17b1804b1-483710858bcmr258742935e9.24.1771324953181;
        Tue, 17 Feb 2026 02:42:33 -0800 (PST)
Message-ID: <a729085b-6a2f-49fc-8784-a0fe88cd90a2@suse.com>
Date: Tue, 17 Feb 2026 11:42:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 2/6] xen/riscv: implement copy_to_guest_phys()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <cb50d76c627cb666317b23ae136ca43bfbfd04c5.1770821989.git.oleksii.kurochko@gmail.com>
 <1edea973-4ca1-491f-a9bf-9c2b09bbe615@suse.com>
 <69cef6db-cd39-457f-a5f1-b2f0078b57e7@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: <69cef6db-cd39-457f-a5f1-b2f0078b57e7@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.02.2026 11:25, Oleksii Kurochko wrote:
> On 2/16/26 3:57 PM, Jan Beulich wrote:
>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>> --- /dev/null
>>> +++ b/xen/arch/riscv/guestcopy.c
>>> @@ -0,0 +1,112 @@
>>> +/* SPDX-License-Identifier: GPL-2.0-only */
>>> +
>>> +#include <xen/domain_page.h>
>>> +#include <xen/page-size.h>
>>> +#include <xen/sched.h>
>>> +#include <xen/string.h>
>>> +
>>> +#include <asm/guest_access.h>
>>> +
>>> +#define COPY_from_guest     (0U << 0)
>>> +#define COPY_to_guest       (1U << 0)
>>> +#define COPY_ipa            (0U << 1)
>> Like already asked elsewhere - is "ipa" a term commonly in use on RISC-V?
>> To me it's Arm terminology, which you don't want to copy as is.
> 
> As we discussed in another patch thread, IPA isn't really used for RISC-V
> and I will rename it to GPA.
> 
>> Also, don't you prefer to use BIT() everywhere else?
> 
> Yes, BIT() would be better for consistency.
> 
>>> +#define COPY_linear         (1U << 1)
>>> +
>>> +typedef union
>>> +{
>>> +    struct
>>> +    {
>>> +        struct vcpu *v;
>>> +    } gva;
>>> +
>>> +    struct
>>> +    {
>>> +        struct domain *d;
>>> +    } gpa;
>>> +} copy_info_t;
>>> +
>>> +#define GVA_INFO(vcpu) ((copy_info_t) { .gva = { vcpu } })
>>> +#define GPA_INFO(domain) ((copy_info_t) { .gpa = { domain } })
>>> +
>>> +static struct page_info *translate_get_page(copy_info_t info, uint64_t addr,
>> The caller has to pass in a domain here. I therefore recommend against
>> use of copy_info_t for this function. Or wait, this is misleading, as
>> the consuming part ...
>>
>>> +                                            bool linear, bool write)
>>> +{
>>> +    p2m_type_t p2mt;
>>> +    struct page_info *page;
>>> +
>>> +    if ( linear )
>>> +        BUG_ON("unimplemeted\n");
>> ... of "linear" is missing here.
> 
> Yes, for this once cases it will be used vcpu as an argument passed by "copy_info_t info".
> I will add the comment above suggested below BUG_ON(linear).
> 
> Btw, I think it makes sense to change linear to GVA to be more close to RISC-V spec?

And to better match the rename to GPA that you talk about above.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:04:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:04:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234811.1537922 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIsV-0002y5-2D; Tue, 17 Feb 2026 11:04:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234811.1537922; Tue, 17 Feb 2026 11: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 1vsIsU-0002xy-Vg; Tue, 17 Feb 2026 11:04:26 +0000
Received: by outflank-mailman (input) for mailman id 1234811;
 Tue, 17 Feb 2026 11:04: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=FeWO=AV=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vsIsT-0002xs-KW
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:04:25 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6aaadb9f-0bf0-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 12:04:24 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA5PR03MB8380.namprd03.prod.outlook.com (2603:10b6:806:477::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb
 2026 11:04:21 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.010; Tue, 17 Feb 2026
 11:04: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: 6aaadb9f-0bf0-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=F4lvsFuYTnRggqjzUieqXQUD0xqMNE1lThmrisVw0moZ+7vsU8QJGo+0S0raGS9bq33AKulEHPHJyBXavrvjB73Bt5UVBWpl2v/FqOEm5WA+Nq9IrGWPD+7/yl+2F0P8JN3Cedl1xTtJuhR6pFLXP9coR9MxRH6DCzaO3S0U5WaJclfMkftr0wnCeP8eMNepQj2K8x50WFE2kTBCcXeU69oWF/IgyVasIM/TVQ5UIc6eElWxb5gXWfqTf1i7afSc8vrKxCVZwt39aKibhRb1+yIejMc+Fa3zfWrnFmpYV7lSYttD9Q5NmU33zK9bF9BksMvq5O6te1nxmPf6NIksAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=q0zerrpf6mTVoRwJ8KUPfcu9RrHiTpY7VL3BXCy1YEM=;
 b=YJrYJyxeYQGk3r7agPZ6+lwdzUKENivBXlTO+BQG227BUScPMc7/z7iS4b8A/i3wqYqJAuLw7RyjRExfUSRgzjK9K0uRLQuSnp3QaJnFy1TdqK5bgZFktMJieGvzZm/CfMP9/m4h2G60MYjP340AD9ROn6YausyMnbVB6ZAh+GsbUGSTL3PtqGkt1C5QlBkKKuOZTz07nO1bZvBwxXrzfPVuwKuI2Vl5CS361N5EvBxRGTLtlcVP6jzIjA/Ior4BsRYW8m71J44pOZb/TY8AgtCpK0JJ8ySQt/pXA8mZI5Jn3wxjh4D8i+cl3yMEFLzeteV0Ezb24soaM3sR5xyW6Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=q0zerrpf6mTVoRwJ8KUPfcu9RrHiTpY7VL3BXCy1YEM=;
 b=K1lxg7EZwpLd+Os4R6xefHZZblv2ab0AeBBeaffkg904acVYcPu6MPTz8G+bgyobKff8uL95AxOuHAyxfC5tUqwIXcNDaUXJxubxhpYYyzuhL/w/tlMcyBEQJMtygQvZf91xjX2KVaqxHfuSBQv9phplAo0RdzvX3VEBjmkyDh8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 17 Feb 2026 12:04:17 +0100
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] domain: skip more stuff for idle's vCPU-s in
 vcpu_create()
Message-ID: <aZRLMePmm8ehD94H@Mac.lan>
References: <c0aef909-b294-40af-8d24-033b28450338@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c0aef909-b294-40af-8d24-033b28450338@suse.com>
X-ClientProxiedBy: MA3P292CA0044.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA5PR03MB8380:EE_
X-MS-Office365-Filtering-Correlation-Id: 2c509e6a-b831-4e46-9c13-08de6e144d34
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Zzk0SXpVSVd0ajFoL1k1SmhSTjdia0l5cE00bzdKbFFtUVVUdVBMdlBGL0pG?=
 =?utf-8?B?RHA4TDVTNXlwbWg3WWZFZGxJdkl6TkorN3g4U2wxRnhrS1ArV0prS2xKM3RV?=
 =?utf-8?B?RWZhZWRIcjlrTnpETnJtaVpOUGlza3ZkR1UrRXZ3dmZOTStyMHZNRWZHZmZp?=
 =?utf-8?B?a2Z4aTYySGNnZ0NndVlhL3B4cU9jT3RvWlVuVHo0bWNhMDEzV2VGZS81QWF4?=
 =?utf-8?B?UHdqcDBsMWg2V0hiUHhmOHgrRTFIeGo1bjRFNkRoVWdWSUdlUW1TaUJTTzQ3?=
 =?utf-8?B?ZkF4MnhSbCs5aGZkN1RuOHlYVUxYclQ1QXFDY3oyQm1zUTZiZGVDVU1pQmNh?=
 =?utf-8?B?R25GR1ZRem1WZk9WRkVUdEVqUlV3TmdiNDRQUjByZjh2YXJuOFo4UGJrb2ND?=
 =?utf-8?B?ODhqZk0zb0lCRDJudFVFQ0REcmcvZHI2cVAwbm8vMWkvYVVFYk5LcUwxaWw0?=
 =?utf-8?B?YVQxZUhTNDJTaGR2QXkwNzVCL3AxaFdJTnNiUGVLMEt2UlN4bVl0NnQ4MC9u?=
 =?utf-8?B?ZXpvckZaZE5hbmFrYmN2ZE5KMVNlOERwYXFOUlJ3aEdSWkpXWEhDSFd5ckxi?=
 =?utf-8?B?Rlc0TUFBM3FXRGszOWtidVNubnFJWDYzdEE1amh4bEo4dXYxUHRtUmw5WmNY?=
 =?utf-8?B?cGU4ejNUTzZIZHlPYTJ3T2JBVnh0NldXcnRjc3JkWHFzYmkzZHd0TzNoVnRV?=
 =?utf-8?B?QSt1dGJ3WXZRWVFBREdITCtJZjdpSTJielpRS1h1emtrWEVzMGhDbU52OC9K?=
 =?utf-8?B?SHYwa3c0WUtsSTRQR2tHWFpLY0prdUdGWGRocjJydW9QNG9nN0M2T3VUa25N?=
 =?utf-8?B?bzRnZ0JuNDhiN1NxcGVncGNGNEFVS3F5bHFtclhUOEV2SjgzMXdRTmJoU1Vs?=
 =?utf-8?B?cWM5d1VxR3NpbytIMkpMU3AxSCs5L0RqK0JOM2g1QnAyQ3ZmanRJVldmK2Qy?=
 =?utf-8?B?VmViOHlKN29MVlEwZzVyNGVtK2dNeHdGVTBuUVFwTnh1eE1TaXFIWk9ObHZk?=
 =?utf-8?B?eXlIcnVGSWl4VTRLU1llZFphdmdaYjA3ZnhueWNiV3YxY1RSM1lKZ1R0VHNH?=
 =?utf-8?B?UDVkdm9iL3lNelV0REtZY1FlKzdZYk1TVHkxMkVpbkZhZnpQdG5ldklNd3hT?=
 =?utf-8?B?UG9uMGxtTENXSXhSTHlDcDBNM05NT3FRaEUyZGY0MUptNG5MaTdMOVpldXRY?=
 =?utf-8?B?R21BZWw5eGZEYmVhbDVZUU5YZ200eUpFZEF0RWxjQ0F4K09DMzZUSCswREdN?=
 =?utf-8?B?OWltZmFaWk1nUFF6VGpaUTdCZldzVlk1MERiMmRpeUhRbHc2VkZRZ1pNVXJK?=
 =?utf-8?B?aW1jLzEwSlpWU3Zha3hiT2dSMStYSm8yRFlGM0E0UFhPd09rQ1BDNE9LR0hp?=
 =?utf-8?B?ZDByR0FFTmdaTjBjS2d0eThoUGJzT2k0RVlZUXFiUEpqSldZa1dLQm1mdnVY?=
 =?utf-8?B?MWtNS3RtOXVJRHdSVWhNTWFBYmFlb0s3ZERYYlBVWlpVczFCM09vR1NWV0Uy?=
 =?utf-8?B?YUVBbnBTMStmMVU3SUN4SlhGbmFxVnFDSWUvcUtLQlI2TmEyUE5uZkJBZHYv?=
 =?utf-8?B?TS9NRGVTS3pyWEI1Mkt1UGlJVlI4Unp3NThIUnh5Q2FYUUgzT0JwY0dna1dS?=
 =?utf-8?B?SGgwclM0TWFwZHltMTBKWldTZk1zU2Nkc1Z6YkY4Tzd6ZGxYZzlXd1NJajJx?=
 =?utf-8?B?cjh4NW5QSmpZaVZ5YTR1eWo3WDBua0FOMzZXSDVEb0FHK3MzbHRVQXFSaUpa?=
 =?utf-8?B?ZjllVVlUcGVESmtzaXFtblZpWVZCTEpoaG1mZFo4Uy8zSThPSExSZVNrcCs1?=
 =?utf-8?B?ZVZubGpOdmtYN1I3SmNoMlovSjlpTE5xOUJVMHpjbmdXMksrUk5xa3dpMTdi?=
 =?utf-8?B?c1puOGhQa2Y4M3ZSNDVrSlZsdEdaRmV5UWoyajZmNGxzdmttZ1NNTVR1ZWov?=
 =?utf-8?B?dFJFY0xnK2tKQTBoRjlVNTViRU85UkJnQmFFVEJGWWtxRTdtQzhPeWh5WFo3?=
 =?utf-8?B?aFpkelUrQjBEa05qK2JuL0dNck4xelNyR2I2V2JwYmZzeldCNE5oaHFhQUhr?=
 =?utf-8?B?Y3RaeGVJbzNsZFhTWS9NT3BpMFJRRVhCNTdkUHJwV2dGU0xWRXVjNnlRTmRD?=
 =?utf-8?Q?cRP0=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dWJRclAzbzdRV1MzMU53R21XTEh5RGUwWjNURURSSklWM1JINmovaVUwdy84?=
 =?utf-8?B?T3Jna2xIVmpaU1RiVU9sQnlQVHlQbW14OWZoSVdDM0JVMnpzZXR4Q2drUXc1?=
 =?utf-8?B?NW5tTnFNblJEZGFYcHpaZ085NzA5OTZmWmtaT1JnK1ZzRi9IbnhWdlpVZXk3?=
 =?utf-8?B?dENGVW1NY2N3VGpFNTRmMGRjeE53UkpFRUxHWVBKSkEvTktiL2kzWVdCRG4v?=
 =?utf-8?B?R2FwVEhNMjB1VUo2ekd6SzFyY044ZUVFNTIvUTFydVpwcllQd0xMbTc1cGt2?=
 =?utf-8?B?L3NpTWZhQWtlZlpad0NPMndGa29YUWY2SXJIUDRVeHpEajZuaXBTSWw4VGdF?=
 =?utf-8?B?c1VieTFmdElDb2QrWDFZZm9uZ0QrWkM0NlBOVUxqS2hDTTlhdndWS0ZWQWN6?=
 =?utf-8?B?R0JGWU9CdGF2VEJuZ3RHbC9ZNUE4eFdMaGVWbkFRQ0dkamlrQTlvbnJrZGxo?=
 =?utf-8?B?V0gybmdkR3VYK2NRT25vcnM4VSsrbXdVOGlScG5iUlFjQkIxdWtrbVJaVXpm?=
 =?utf-8?B?aTEzVWRtR2xrRGNxbURmc1lyTC9ueUJxZ1h6WVZPZU1ud05DTFc3RlhCSitC?=
 =?utf-8?B?bVZrRDZBdEgwbXVrbXZ6VndKcWhXNEljK2ZmUm1lZEFwZHB1QjFibnBJbXAx?=
 =?utf-8?B?UEJDeEI5eVhoUHpmSTV6Y2h3TGt5QUFCclBjTE0vNy9iV3VrZjl1ZTEvUklr?=
 =?utf-8?B?VWdqWTUwWE9LZU50cHk3a0NreEpzNlFlbmNMME5nWHp6bVd4RFUrQ2F6SFQ1?=
 =?utf-8?B?dnpIcWJTZklzQlgweXhhUlJtNksyZ3YxSEhKVWh2Y1l4emsvOHg4SHpuNHNo?=
 =?utf-8?B?NkJ1eFFFZWg1bFYxL0JSb3hidmVaZDl6VnZ1dXJVQlp2S1k0eFBPV1pPek1u?=
 =?utf-8?B?cHdkcTdyTjdoTjNwOVB3WU56VHNOUkUycVJmeGVtSzQ0ekk3RVZWbHBpa0F6?=
 =?utf-8?B?UFNIUDlSOGhEbnZMN3JPVkFXSFpUL3VvUmpIdktvMHBLdFNzWTgvS0J3OXQ0?=
 =?utf-8?B?bWROdFVWVHNla2p5d05IQjN5aTUwYnhkT0lxMWNOL2dLWTR1cTFHN2ZuNnFq?=
 =?utf-8?B?OE9uS3hGRTZ0RU5vbDlMUThQbWhQTWd1dmFjUTFQSEFHT0RLUFNYbzdNbjM0?=
 =?utf-8?B?Y3ZkOSs2WGczYnZ5dGxUZTdQWXNGbVFnVlc2TkE5N2l0dTdkTm9EcStFcnpw?=
 =?utf-8?B?U3B0cWZCK2VnTmV5NnUwekJMSWl3QXBtN0tSMnlyeXppMFkzZmw5Q2EvOUJt?=
 =?utf-8?B?aWlUUEZiaXdibm5TTVRhdXIrVlJyZTFjSU9HbWI5T0dYSmtwZkVGSGQyYkJ0?=
 =?utf-8?B?bGl0czJCV1phc3JBSHo0bkR6c3lZeWpZVWV4ZEI3UEg1b0hWakR5b01Qc3do?=
 =?utf-8?B?S2xueXd3VzQrd0xka0UwMGdvZmo4UmRqZTFYdDFwNklQK0hwSXJpelZaaEVl?=
 =?utf-8?B?dXZYc3ZEUzY1RXFVdzhtTUc3akQ0MEs5cm1QcWJ6RTA2SDJUNWlkN3ZmNjhq?=
 =?utf-8?B?c09VaU1KVnZBOFY1cWdlb0FKbFYremZMSmwzMDBmbmhYZ1dodDVRRnExTWtG?=
 =?utf-8?B?NHRnck9pZEhNZ2dXZUdOUGt3ZnJyQm1pVGc0N1l4WStjbzBuVGZ4a0MrbTZT?=
 =?utf-8?B?RTI5RnpkdC9LRkhTS3JlaEpiS2xOQWg2OE5pSGpJNXMvNkdMTDNobjFUQTRH?=
 =?utf-8?B?UXZkNGhuZzhSZVpZYk1PaVdpdGxjbUpDR2xnWnQxV2l6cmVCV1U2azdlR1Rr?=
 =?utf-8?B?a1ZwOUtIV2FZVkNWMlplTlBQaHVTSE5kWlNRRVNXU29ZdnVNb2I5SnhMTUlT?=
 =?utf-8?B?Q2JzWlplVW1NR3dVZ3JJV2Q0OG1BSWw3VURHTlVBTkRaWnRjdkx0eW5Obkl1?=
 =?utf-8?B?alJDQk03V1AzTkJtZnBZVkJDaGpqVURGWW11MHpnRm1HSEVQdU5oWThnblRs?=
 =?utf-8?B?SkJCWEs1TzJvdzhSSHJTRVY3cEZEa2EyeEtkSjR5NzlndUZyeUlQSVVxRGFT?=
 =?utf-8?B?NVMwMlJhalUwdG5VV2hpZ0FPb2ZCTS9mM1pZUFpDNUhwWW1tREpQS1FVRWxC?=
 =?utf-8?B?L0UzTXcvOXFPTjJUK3RrcXprMzZ3SXlLSWdLWGtHTTMyOENxYzNPTktLK2cw?=
 =?utf-8?B?TzZGTEVVTTdSdzVNaGRKSE5ucWFHaHg2bStkRE44TG9Qc0xZWVJVczBnVVR2?=
 =?utf-8?B?eEpxck9MbSthWmhPR3IrZFpKRUcvcFEzSFVMemxYUHZTdTIyMVJZZFB2N2RK?=
 =?utf-8?B?c09FTkppTVduV0YzMzFTMitqSFJoSm9iZk5kNkZyckFBMFlpYzhBd29GT0ls?=
 =?utf-8?B?OEI2K0JDM3QxL2QvWDRGc0JRQ21QMGt4bUIvcGhQTUxpd2VQWVVqdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2c509e6a-b831-4e46-9c13-08de6e144d34
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 11:04:20.9158
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1Ik3mWnkI8MCFsSd3wSeX7xTYoC1VOrWlhMHR1aTOydno6uBuPg9GNpDMBbNqQlUNmrn2AUz3w1NBnoJgclLbQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PR03MB8380

On Mon, Feb 16, 2026 at 04:54:30PM +0100, Jan Beulich wrote:
> Nothing hypercall-related needs setting up there. Nor do we need to
> check whether the idle domain is shutting down - it never will.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> v2: Drop vmtrace_alloc_buffer() part.
> 
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -475,12 +475,6 @@ struct vcpu *vcpu_create(struct domain *
>      v->vcpu_id = vcpu_id;
>      v->dirty_cpu = VCPU_CPU_CLEAN;
>  
> -    rwlock_init(&v->virq_lock);
> -
> -    tasklet_init(&v->continue_hypercall_tasklet, NULL, NULL);
> -
> -    grant_table_init_vcpu(v);
> -
>      if ( is_idle_domain(d) )
>      {
>          v->runstate.state = RUNSTATE_running;
> @@ -488,6 +482,12 @@ struct vcpu *vcpu_create(struct domain *
>      }
>      else
>      {
> +        rwlock_init(&v->virq_lock);
> +
> +        tasklet_init(&v->continue_hypercall_tasklet, NULL, NULL);
> +
> +        grant_table_init_vcpu(v);
> +
>          v->runstate.state = RUNSTATE_offline;
>          v->runstate.state_entry_time = NOW();
>          set_bit(_VPF_down, &v->pause_flags);
> @@ -516,7 +516,8 @@ struct vcpu *vcpu_create(struct domain *
>      }
>  
>      /* Must be called after making new vcpu visible to for_each_vcpu(). */
> -    vcpu_check_shutdown(v);
> +    if ( !is_idle_domain(d) )
> +        vcpu_check_shutdown(v);

I would possibly leave this as-is.  I agree that the idle domain will
never shut down, but it's possibly best to needlessly call into
vcpu_check_shutdown() for the idle domain rather than adding the extra
conditional for the common case?

My Ack stands regardless.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:08:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:08:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234823.1537931 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIw9-0003hd-Jy; Tue, 17 Feb 2026 11:08:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234823.1537931; Tue, 17 Feb 2026 11:08:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIw9-0003hW-HG; Tue, 17 Feb 2026 11:08:13 +0000
Received: by outflank-mailman (input) for mailman id 1234823;
 Tue, 17 Feb 2026 11:08: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsIw8-0003hQ-Fl
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:08:12 +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 f18d5494-0bf0-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 12:08:09 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-4359228b7c6so3097116f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 03:08:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48370a4ffafsm108460955e9.5.2026.02.17.03.08.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 03:08:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f18d5494-0bf0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771326489; x=1771931289; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IAcz+Nt3TH6iW9R1B04xsSV0sjAXwdALGFwbxZ/4NR8=;
        b=JB088CvDwRlcOrkHT+2iu9q7sl0b89rLORaNQrK6FQMY1ymv10fTAKFpy+f0aBcGgz
         19j0CQz21At2B3DOwCuwwyyjusq4hCijGXtcoBwIBuIvnvAJz1879ngVhA8NIZhQ+zk9
         524uP44aIEbFzNR8aS965Vrr3HkZ1wTmz+EJ2Ezi2AOEiP156woIXxs1WIGN239K/j4I
         jfP0ASrDmfJrQfVPmZONRuTgpyyLZu31vbJ6QdrJ0+1AZ4Uw7qBQTJHEB2v//ZsFLcnz
         Lj78Kv+fq8jkryxfwFHi1OiU3bppJXZf9FA4HJPHOjCVnrD0w6GFFOe3fB5X1ka57VLo
         /GLA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771326489; x=1771931289;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IAcz+Nt3TH6iW9R1B04xsSV0sjAXwdALGFwbxZ/4NR8=;
        b=DIA9ZNlZdKjI5UyG9XxCR61O3M9v7QNZ3edMEhJTyyMJarYpQkGga7fyKOmU7MbKFS
         PIV1jRLDPNbal6OOa3cQmruV73gGLd7GM3uIY4RaFl/PHmUcwzN5/+Sk7p2wSwe49mDf
         6INzQyMM0leALIN7sDzJa0pPhqzIrVd2MbR6g0f1o8OaUckeBNA0VTq4fVt3EtiLUT53
         07+JcFubf57yAGfOH28RtAMLEVtt/V9cmwa5dei75T0oSTiccD3OoQ0dY1qmHjQEeoCg
         EI3hn25rd+N86NZL61XQk8F/rh2mjbHl/324iniJehOXOAPc4vLigGoc6ADMHx3nUqo8
         yQQg==
X-Forwarded-Encrypted: i=1; AJvYcCUA/HtNeY4LKfac4YHlC2yYERbz1HXp0hG0LVwad/Z4UWe3Jhd/cVJLyLWRRCHx2BK/sOnCLScIWJU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyb854rQU1uLbKtHBn5m1khXiLzFy0/4BDnvBpESL5kDl+pwxYs
	JNIp6IlJoTTDoOJ7ECI+horsqOimxJrR/aZuafwMV4maBGb5TUlo1h96hSaDqTQcpA==
X-Gm-Gg: AZuq6aLc+QQzPhT9c8IvnaXjX9L8iStEbJT09LGgP649wiiE8uwh3gBhKjTUsaEhOzx
	nWnhUAjYZHSd49tN+e+POTiprZIOOTTykIPKD8+l9O0W+RVxQhD8kU0HrwSI2a5BMFsnCE1laQK
	mOEVVqtDCUUZwYDrwQSeWb5VniRB0qL27MteX6/wW3YJwT1geJVMvJ2vV1MmRMO6ZzAQCTMtlwE
	CH6BSkKAsF3tfHx+4OMmYim07b6m3S287p3Rb8i0A5TEwJYMKCoJOIJ8mJCpwYDysEVwlY1hBCf
	S6Cn5fRBhQDYfjZ0J9gu/ltw5YczCY+foeINmsmAl0Qn9CTZQ0POyn+QV1urdSDjNdZAaoV4NI/
	dNwb36zbphw4ZajRBQJWH4pRERYZ6GzZtTnxKuymmU4q16Z9ARC5XzK5uyXgy3pl3FVzo4Rem1g
	uX0LC68hAfKPT9fQA3wbcK6JY9cJXfIJhguAB6Cd0zyVh/u2iKSdZruaDGxuMy0aIYozQ/Rsz1q
	Lq0b1pMUrmbj/I=
X-Received: by 2002:a05:600c:8708:b0:480:1a9a:e571 with SMTP id 5b1f17b1804b1-48379bd7313mr183588135e9.22.1771326489240;
        Tue, 17 Feb 2026 03:08:09 -0800 (PST)
Message-ID: <59a0dcb0-235f-4eb9-847b-1d0ed72c89ce@suse.com>
Date: Tue, 17 Feb 2026 12:08:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 3/5] xen/include: customize headers for host builds
To: dmukhin@ford.com
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org
References: <20260213024952.3270112-1-dmukhin@ford.com>
 <20260213024952.3270112-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: <20260213024952.3270112-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 03:49, dmukhin@ford.com wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Update hypervisor headers to allow vpci.c to compile in a host build
> environment, as required for the vPCI unit test.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v2:
> - new patch

I'm firmly against such scattering around of "#ifdef __XEN__". It should be
the harnesses to carry the burden of re-using hypervisor headers.

Jan

> --- a/xen/include/xen/irq.h
> +++ b/xen/include/xen/irq.h
> @@ -1,5 +1,6 @@
>  #ifndef __XEN_IRQ_H__
>  #define __XEN_IRQ_H__
> +#ifdef __XEN__
>  
>  #include <xen/cpumask.h>
>  #include <xen/rcupdate.h>
> @@ -208,4 +209,5 @@ unsigned int arch_hwdom_irqs(const struct domain *d);
>  void arch_evtchn_bind_pirq(struct domain *d, int pirq);
>  #endif
>  
> +#endif /* __XEN__ */
>  #endif /* __XEN_IRQ_H__ */
> diff --git a/xen/include/xen/list.h b/xen/include/xen/list.h
> index 98d8482daba1..06d2fa3aed15 100644
> --- a/xen/include/xen/list.h
> +++ b/xen/include/xen/list.h
> @@ -7,8 +7,10 @@
>  #ifndef __XEN_LIST_H__
>  #define __XEN_LIST_H__
>  
> +#ifdef __XEN__
>  #include <xen/bug.h>
>  #include <asm/system.h>
> +#endif
>  
>  /*
>   * These are non-NULL pointers that will result in faults under normal
> diff --git a/xen/include/xen/numa.h b/xen/include/xen/numa.h
> index f6c1f27ca105..80d60fd49178 100644
> --- a/xen/include/xen/numa.h
> +++ b/xen/include/xen/numa.h
> @@ -1,5 +1,6 @@
>  #ifndef _XEN_NUMA_H
>  #define _XEN_NUMA_H
> +#ifdef __XEN__
>  
>  #include <xen/mm-frame.h>
>  
> @@ -152,4 +153,5 @@ static inline nodeid_t mfn_to_nid(mfn_t mfn)
>  
>  #define page_to_nid(pg) mfn_to_nid(page_to_mfn(pg))
>  
> +#endif /* __XEN__ */
>  #endif /* _XEN_NUMA_H */
> diff --git a/xen/include/xen/pci.h b/xen/include/xen/pci.h
> index afb6bbf50d05..f52dc7875e16 100644
> --- a/xen/include/xen/pci.h
> +++ b/xen/include/xen/pci.h
> @@ -14,7 +14,9 @@
>  #include <xen/numa.h>
>  #include <xen/pci_regs.h>
>  #include <xen/pfn.h>
> +#ifdef __XEN__
>  #include <asm/device.h>
> +#endif
>  
>  /*
>   * The PCI interface treats multi-function devices as independent
> diff --git a/xen/include/xen/pfn.h b/xen/include/xen/pfn.h
> index 1ca9b095e0df..98ff669d7def 100644
> --- a/xen/include/xen/pfn.h
> +++ b/xen/include/xen/pfn.h
> @@ -1,7 +1,9 @@
>  #ifndef __XEN_PFN_H__
>  #define __XEN_PFN_H__
>  
> +#ifdef __XEN__
>  #include <xen/page-size.h>
> +#endif
>  
>  #define PFN_DOWN(x)   ((x) >> PAGE_SHIFT)
>  #define PFN_UP(x)     (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
> diff --git a/xen/include/xen/spinlock.h b/xen/include/xen/spinlock.h
> index ca9d8c7ec0a1..ad5094c4eb92 100644
> --- a/xen/include/xen/spinlock.h
> +++ b/xen/include/xen/spinlock.h
> @@ -1,5 +1,6 @@
>  #ifndef __SPINLOCK_H__
>  #define __SPINLOCK_H__
> +#ifdef __XEN__
>  
>  #include <xen/nospec.h>
>  #include <xen/time.h>
> @@ -360,4 +361,5 @@ static always_inline void nrspin_lock_irq(rspinlock_t *l)
>  #define nrspin_unlock_irqrestore(l, f) _nrspin_unlock_irqrestore(l, f)
>  #define nrspin_unlock_irq(l)           _nrspin_unlock_irq(l)
>  
> +#endif /* __XEN__ */
>  #endif /* __SPINLOCK_H__ */
> diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h
> index 73ddccbbd5dc..e5d702b48ac0 100644
> --- a/xen/include/xen/types.h
> +++ b/xen/include/xen/types.h
> @@ -4,6 +4,7 @@
>  #include <xen/stdbool.h>
>  #include <xen/stdint.h>
>  
> +#ifdef __XEN__
>  /* Linux inherited types which are being phased out */
>  typedef uint8_t u8;
>  typedef uint16_t u16;
> @@ -15,6 +16,7 @@ typedef uint64_t u64;
>  typedef __SIZE_TYPE__ size_t;
>  
>  typedef signed long ssize_t;
> +#endif /* __XEN__ */
>  
>  typedef __PTRDIFF_TYPE__ ptrdiff_t;
>  typedef __UINTPTR_TYPE__ uintptr_t;
> @@ -33,6 +35,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
>  #define NULL ((void*)0)
>  #endif
>  
> +#ifdef __XEN__
>  #define INT8_MIN        (-127-1)
>  #define INT16_MIN       (-32767-1)
>  #define INT32_MIN       (-2147483647-1)
> @@ -52,6 +55,7 @@ typedef __UINTPTR_TYPE__ uintptr_t;
>  #define LONG_MAX        ((long)(~0UL>>1))
>  #define LONG_MIN        (-LONG_MAX - 1)
>  #define ULONG_MAX       (~0UL)
> +#endif /* __XEN__ */
>  
>  typedef uint16_t __le16;
>  typedef uint16_t __be16;



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:10:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:10:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234830.1537942 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIyB-0005DH-Vi; Tue, 17 Feb 2026 11:10:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234830.1537942; Tue, 17 Feb 2026 11: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 1vsIyB-0005DA-Sd; Tue, 17 Feb 2026 11:10:19 +0000
Received: by outflank-mailman (input) for mailman id 1234830;
 Tue, 17 Feb 2026 11: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=PxIO=AV=kernel.org=patchwork-bot+netdevbpf@srs-se1.protection.inumbo.net>)
 id 1vsIyA-0005D0-37
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:10:18 +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 3c6d7afa-0bf1-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 12:10:16 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id AA10443AEF;
 Tue, 17 Feb 2026 11:10:14 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81010C4CEF7;
 Tue, 17 Feb 2026 11:10:14 +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
 C22C6380AAD0; Tue, 17 Feb 2026 11:10:07 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3c6d7afa-0bf1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771326614;
	bh=HYQmNgXbaSDujkNgDA1fNaE5PjxPfwLo/OS9lM7Yecw=;
	h=Subject:From:Date:References:In-Reply-To:To:Cc:From;
	b=XNWndunu9rdO3xm0aWJNp9GJ46fJuu/ZKAlJXhb3G3FILuxuDgIN7Q/hW8uKEgSEK
	 CLYaM9Y8NqfkArvCnYq7rDbciZulwBUr0pWXdtYZR6SCtQBnaLeQkTFjqIsufK5Sb2
	 rvlCMBE/fzRRkoKeGyvlhl/gbB0aTxzmbTRomut4GoO6qYgT12LNORAAi8hSPM+XNZ
	 dwow6X4MrrGkC0ZP24hG9th/NUKCHVtC3N43lFYwKjVpaCdVpBS/lKWgtOxxxQmsQG
	 20Ru8Z9bMk9fFtIqlAxqcPVlLH+5w9Y4hrQBnVOlemWAVgQRGsHm/Or4gNDl4wfvGt
	 7gtfn2oV/47eA==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: Re: [PATCH net] xen-netback: reject zero-queue configuration from
 guest
From: patchwork-bot+netdevbpf@kernel.org
Message-Id: 
 <177132660658.24996.8282922634336932490.git-patchwork-notify@kernel.org>
Date: Tue, 17 Feb 2026 11:10:06 +0000
References: <20260212224040.86674-1-n7l8m4@u.northwestern.edu>
In-Reply-To: <20260212224040.86674-1-n7l8m4@u.northwestern.edu>
To: Ziyi Guo <n7l8m4@u.northwestern.edu>
Cc: wei.liu@kernel.org, paul@xen.org, andrew+netdev@lunn.ch,
 davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
 andrew.bennieston@citrix.com, xen-devel@lists.xenproject.org,
 netdev@vger.kernel.org, linux-kernel@vger.kernel.org

Hello:

This patch was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Thu, 12 Feb 2026 22:40:40 +0000 you wrote:
> A malicious or buggy Xen guest can write "0" to the xenbus key
> "multi-queue-num-queues". The connect() function in the backend only
> validates the upper bound (requested_num_queues > xenvif_max_queues)
> but not zero, allowing requested_num_queues=0 to reach
> vzalloc(array_size(0, sizeof(struct xenvif_queue))), which triggers
> WARN_ON_ONCE(!size) in __vmalloc_node_range().
> 
> [...]

Here is the summary with links:
  - [net] xen-netback: reject zero-queue configuration from guest
    https://git.kernel.org/netdev/net/c/6d1dc8014334

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html




From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:10:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:10:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234840.1537951 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIyp-0005h0-6s; Tue, 17 Feb 2026 11:10:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234840.1537951; Tue, 17 Feb 2026 11:10:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsIyp-0005gr-4M; Tue, 17 Feb 2026 11:10:59 +0000
Received: by outflank-mailman (input) for mailman id 1234840;
 Tue, 17 Feb 2026 11:10: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsIyn-0005eJ-VX
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:10:57 +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 54a96ac5-0bf1-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 12:10:56 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso47947695e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 03:10:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1b4sm31926490f8f.14.2026.02.17.03.10.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 03:10:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54a96ac5-0bf1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771326655; x=1771931455; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MnZdPGjo591uEjjPtTCALByWXfVhwbgx/rPBt8hGalY=;
        b=FND4hcCI9hd+27lKnH2NXlDDIEvbWQfmy+p2lX888Pt6xiFgCCGo++kThG010IC7t3
         zXZUEROLpzJly3dV42vmAJmhP/lakoQY9s95EjtYD2dgTuEy9KLrWaNxeGvOyC/gDNq1
         Ru2mFmKvLH6GuSzYRJGld8pgz1NVdl9ICmiHdzyLL8dzO+X6gQ6L1yw+8g9GkKxasPBB
         82iyPymMR/i6G/YYELyK4y4f1mWJPNN7wJmqXLbkCe/WTxsxnBIh0yTq69GIqyRGZeh9
         int3pYdxSHtIkfZwCvbKtl3g0/1VZcFD8TE97ASQBF7SIfZ9WCHfs021KnKF1Nmwxbbb
         4gEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771326655; x=1771931455;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MnZdPGjo591uEjjPtTCALByWXfVhwbgx/rPBt8hGalY=;
        b=PlvvO2ZKnwPckVQeL7BEUbPaVXwKNtbm+5YyY2XmUZ6li7fTR0HIjQOJ1GTu+agbsn
         765qSa9JuLrzawtpEeRSMUriPktaWqmyCpM88pBJkVsxw0aovw0i9xXjea1N60xDU2Hw
         AsGVDUmXNKW25ewyAGZsWT3JOJbRJx/svdo0qrRKegu501Ti2Od2BwHlUhnaa7YcJX+A
         9FjIRSruiapEMKisKzMVjvzsf/kekySNHsgBxdjAY73S53fXm3NLhSojeocKfn3bk82g
         zQk0BA4UshswawHstz/Qy9yLzx9eSvpqY3NrZMmZpD0NoVuvz29IQUX1lYcFu7ocGs7E
         ED9g==
X-Forwarded-Encrypted: i=1; AJvYcCUT1kOpiGz7LQgNYtnpvmauMJHThYXSUmwb5NzOfmZwpw0LXNQ7L9hxbKwqhxtzPWFKdfTak0rS2cQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTtqFxvPMqpHJYvRH45eTVbsLE9LkzQhuA4ycIeojC0kOZYFvt
	N+UOOlOvt7tpG5tPdvD948g/Mrs76Vt0E6x19D+4qsMP9z2m3xopM0QTycSEs3H00g==
X-Gm-Gg: AZuq6aK79IqZ13uawq3IFICfHHYIPSmtC+Gvy+FY2kHVFjNDjKW1PchNal7s0fWvF5O
	+4eawDeK3nUgCmza3PurC3jgufNXQva/Gi7lVC/QIwhe4tp/gsUvxsu+ad9A0ygtfV8EKlsR7ye
	P615DhwKIR6cxQLI5/7aC6qNNbqxvSp+6oOgE/jTZj/71+2J2CVsMgvW6wJd4OR68JUsRNiK/9D
	NVvsAWQvp8jgRmXPEWzR+LGftJYntOnhgS3hjuj8+YEF9YL2WFh6gAaCdY/WsqrydoHhSr7eNzQ
	hY2VbtV7CqbKlhHCzjhzpRLhn0TyCpeSoilrSJDN/D97T2nppG0TGMweKcNk6yo2aniGgxBGO4J
	taUjc0a65ULltzpys+JmYEpVgsvwMam2L1j17gafL7cRo7SA7iuoIDOqLK7aTg5Vktks1PqrxBk
	Pqf0lDDBuA3KrAjkvicCZG3fr/iPiMaM+bbcf9cska0MeGCqqPg9e9jQ76PIk+bX8NdP9EqtR2Q
	Ia8j3ZaQAtIVk4=
X-Received: by 2002:a05:600c:5488:b0:477:a219:cdb7 with SMTP id 5b1f17b1804b1-48379b35657mr150462095e9.0.1771326655441;
        Tue, 17 Feb 2026 03:10:55 -0800 (PST)
Message-ID: <5b0be132-07f1-4d7b-92ac-2b1d9c4db408@suse.com>
Date: Tue, 17 Feb 2026 12:10:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/5] tools/tests: test harness fragment
To: dmukhin@ford.com
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org
References: <20260213024952.3270112-1-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: <20260213024952.3270112-1-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 03:49, dmukhin@ford.com wrote:
> This series introduces the use of a new common unit test fragment across
> several existing unit tests.
> 
> Patch 1 contains assorted fixups for the domid Makefile.
> Patch 2 adds a new fragment for auto-generating test harness dependencies.
> Patch 3 adds some prerequisite changes for vPCI test (patch 4).
> Patch 4 switches the vPCI unit test to the new common fragment.
> Patch 5 switches the PDX unit test to the new common fragment.
> 
> [1] Link to v2: https://lore.kernel.org/xen-devel/20260111041145.553673-1-dmukhin@ford.com/
> [2] CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2323352235
> 
> Denis Mukhin (5):
>   tests: fixup domid make fragment
>   tests: use unit test fragment in domid test
>   xen/include: customize headers for host builds
>   tests: use unit test fragment in vPCI test
>   tests: use unit test fragment in PDX test

I remain unconvinced of this attempt to generalize things. Yes, it eliminates
some redundancy, but at the same time some of the new constructs are harder
to read / follow. Perhaps it would help if smaller pieces were abstracted out
first / incrementally.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:17:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:17:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234853.1537963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsJ5H-0006Qz-TI; Tue, 17 Feb 2026 11:17:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234853.1537963; Tue, 17 Feb 2026 11: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 1vsJ5H-0006Qs-PI; Tue, 17 Feb 2026 11:17:39 +0000
Received: by outflank-mailman (input) for mailman id 1234853;
 Tue, 17 Feb 2026 11:17: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsJ5G-0006PU-2a
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:17:38 +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 439677e4-0bf2-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 12:17:37 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-435f177a8f7so4447679f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 03:17:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abe3b3sm39378376f8f.18.2026.02.17.03.17.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 03:17:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 439677e4-0bf2-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771327056; x=1771931856; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=S5sWE+t6yeYVcfOn1brq0Z01Ev8xd7cPajO+F4B0yfw=;
        b=O8GLBuNrH6rueLff20N4cLU+RcWdmZk7uXx8r+LZTrQpI120CS6SJeRdPZraKCiKRK
         CQsK+3sMUkxD1oHPdwg8eIW1A2nE4ozFl2awk6JH3bKEVNDRggyx/7KQg7RcJULN1JSW
         B8t3z4os6t1239mjqRGdnQE/bvvi7SrmGwACrcQNTkO/1Hvo6PMvncJ5mhpJh/9ZzSNJ
         XKFRdd/LYMCdVvIcXC9cTCS7eXIYqoLrGTg/H/12RaGOa3HsTxz/VoVbRVbmn2JSHCuO
         OaZPzmQmyv9wVh6E33crFwyoBz/GgswdhjV/rtiY1DILre88362wjYJPo0IJbweIMrfu
         /0Hw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771327056; x=1771931856;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=S5sWE+t6yeYVcfOn1brq0Z01Ev8xd7cPajO+F4B0yfw=;
        b=i+KGgT+8fvCNV9YhTVu8Oz9YpGYWsF+Mqc50lY+/maxdSkKUpa1dJPHsFkFmhW/iiM
         b24z01JwQuE7JaPjGj8p7DEq7ZaCAOtlnvU+qWqypVkKa+dNE0a5Vi6fKLbATo329drO
         KRA5yi6bV0geL3c2LV52Ds1TXHKCI4c5z8ITeR2GJZwf1ct4lBw8uFBoanaTqko4he7e
         8YyZ1i/6/lCAVmgvMYxLRo4ydyzTqVfoqzzKVKa7WU7eWGzSVzr6XIpK0YBFOKy/RyDQ
         5g+C25G83SsR2Tg1P1ND7LkOVIZd28cXvuEyoSNJe6tHKYZaCnVJ5qTw6tZ3Ka0RDYy9
         tLUw==
X-Gm-Message-State: AOJu0YyWQpATZ2Xm8Ya24zawQiWBf+a2GaV2tncDnH1L4WrSMDREaZgT
	0t2dLmqEYbVLUmAkf9yNQTDgusYPhIq7WxjwRI9C57oCnu/7qUOKEDqAz7c9U5/QhQ==
X-Gm-Gg: AZuq6aJYRXraqNpaBMQ1mgn++SHuHuvR2heXijh3av8bXHbKeAX8gei9on2AtiFTS+c
	o1M2AHY9aB2wt/ZKsnWlGmeZli0rma23insqB976hHx+skLBdQukF0UQ7blxgtRNmRWLVfEQkUA
	LXe/TY4JAcGwG80l3kq2UQSGWKEcKb3vBr6I6HcoywFa8xah+sdYoqJZqnF3Yd2OpgDUkpxUShh
	EGkkVJ2WfGBKokvNT7EVrzETOSeVJgs103ZRhBv2FEDgYJ3XMJPBQrVGsJYtL1SSJjncYwJY5bp
	zVMhuOm0Pie7B05rsAozxWWZ4U9FruLmzL3yio5vBa5Eq54V1zGyrvAv1193eLd3m7UGrnfIWuW
	Xfi6wtIm393Y6OvR/XzRky3LiRZUtOfY3fvHLteWaglYCRMWLLRhB30l2oo7uKmAcljC6PwMNpy
	ctfMi2FYvVldzDnEEp/Km4miP0coNjsLXHB/rRCyYxo1Epto9pDZXa7knGXd937ZjN76cNKtii8
	ar+p3wyZuM5xjmHSEribepK9w==
X-Received: by 2002:a05:6000:2203:b0:437:677d:42d with SMTP id ffacd0b85a97d-4379dbaf326mr21058095f8f.63.1771327056323;
        Tue, 17 Feb 2026 03:17:36 -0800 (PST)
Message-ID: <a0e47cf7-91f0-471e-b6b8-6554f496190f@suse.com>
Date: Tue, 17 Feb 2026 12:17:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] domain: skip more stuff for idle's vCPU-s in
 vcpu_create()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>
References: <c0aef909-b294-40af-8d24-033b28450338@suse.com>
 <aZRLMePmm8ehD94H@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: <aZRLMePmm8ehD94H@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.02.2026 12:04, Roger Pau Monné wrote:
> On Mon, Feb 16, 2026 at 04:54:30PM +0100, Jan Beulich wrote:
>> Nothing hypercall-related needs setting up there. Nor do we need to
>> check whether the idle domain is shutting down - it never will.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks.

>> @@ -516,7 +516,8 @@ struct vcpu *vcpu_create(struct domain *
>>      }
>>  
>>      /* Must be called after making new vcpu visible to for_each_vcpu(). */
>> -    vcpu_check_shutdown(v);
>> +    if ( !is_idle_domain(d) )
>> +        vcpu_check_shutdown(v);
> 
> I would possibly leave this as-is.  I agree that the idle domain will
> never shut down, but it's possibly best to needlessly call into
> vcpu_check_shutdown() for the idle domain rather than adding the extra
> conditional for the common case?

I'd prefer to keep it conditional: Calling the function for the idle
domain gives a wrong impression, plus it may be the only one where the
shutdown lock is used for that domain. We may want to make lock init
conditional in domain_create() as well (possibly with other things we
needlessly do for idle or more generally system domains).

> My Ack stands regardless.

Thank you.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:29:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:29:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234868.1537976 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsJGD-0008KB-So; Tue, 17 Feb 2026 11:28:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234868.1537976; Tue, 17 Feb 2026 11: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 1vsJGD-0008K4-Pd; Tue, 17 Feb 2026 11:28:57 +0000
Received: by outflank-mailman (input) for mailman id 1234868;
 Tue, 17 Feb 2026 11:28: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsJGD-0008Jy-CI
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:28:57 +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 d84d4777-0bf3-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 12:28:56 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-43767807da6so2909325f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 03:28:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a10cacsm176333415e9.4.2026.02.17.03.28.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 03:28:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d84d4777-0bf3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771327735; x=1771932535; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AZwUkpipSK3w4UtqHK19BjXJ6/3zF0qpUaX3liVbzlk=;
        b=Oi8HSOP2NcTqtX8b4YBRyZVTAWQaOPoSvk1A/leZ9tJnB/GH4CxMmIsX0Dm8KpjUBR
         hdWuTtSm/anuoShh8PwkKgvZRpjVkv521nl8vhow/9FgHqVhvjHDm9P/qWBrkcDw9IxL
         SuuWq9lOuSpI+44CGRBDNMDFZWQabZskqcfEwGwf8hn/Af0brfrFCELwS2Mij6+qiDbd
         XZZBzQ9i6YAdNeoax9VQ09W5xLRWmvP6LwjmHZo0cMfFFiTtn4365CrWDHPwhwoLpbq4
         3A+m9VHWMy/i045JTFmFydDzcoiBUP9jYhYYoTzsIkL5g0xG0NWlB45io+E2WJ86tyCp
         Eesg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771327735; x=1771932535;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AZwUkpipSK3w4UtqHK19BjXJ6/3zF0qpUaX3liVbzlk=;
        b=N/HbqLf1ppoQvnDGNry7aPqJByqgME7qwe9t+k/bDDNEGarDGEQPHTV6bzvbTT+XZg
         2l9uLHtK7xWpoD/p/V5aBQQY08DjbGZ1C4lYSdsjBu330eovn6dvEmTt2MrGVX285ZsL
         fTi6w/EI1FDyCbMOKt4j9Anjy6NEB0qmkyeA0KDFoSdN8rIVLyGS992KwB+G0E/kJ8Z+
         pxKm55jtEPtJnjWo2hRt6nAdY7raOBzGUbFTRlGgcR+/UfZtF0zXPn0ToPbVVDHgnBkP
         YrICLySN5RolJNvYB9o6MG9yX8C4J/vAeeEGN3zueh/n5a4xm5GPAbONe4SHiFfy4CgH
         Gqrg==
X-Forwarded-Encrypted: i=1; AJvYcCUoycEf2Q0kWDinrUR97+gT/AtYWjJOMgEfstl2Ts/2fAjt0ydrfJHtw/j6w5wP3K+37oMfubaJPdg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzgLvIO/RGGlhffel+0yVT7ycQ9VSsI+IAZUAGfhserTgVtaROz
	3PrsJp+JfMVE6nV2T4MqJNHg0LQ3f1cu1dEOk+mvzMRiyNdwFx9XNBkW6zs4l/ODMQ==
X-Gm-Gg: AZuq6aIyrITuz0neVlLfxBaqMfHDwDq+QOn2VhK0Nataszrnfn+2bNP/iQNqOdHQPYK
	UB0zOzBl/bpgc+Lik5Zax8bUwZfjpRc6PeNCH/JF+TMiBKhTKxAXRTyzQmogHV+vceRXKQZX8d0
	BPSKK7ui7LCPMAb3765snflGlnWehqZ/ADxv/8LjogfnqcgF3+BwhnsXRaUjvcCcItN6ZVUcgQ9
	XtQmNReZ7KAd5yOjB36sWJV+Qkb+krDWK3XEdv9+eQQ0+AlbIARS7vrndftJ2iLMqsM1qUiflNe
	aFmeIOfDSxThyaYtqttb9ZT+rg5sM0LGjIAxEzzv5YEnoKJ2GKHhIiV7FgX37jakFRH39Q62dHt
	++y6qSQ2xOrIoWIXHtol8utZiAlRC7PmL6Lu01ROBEJLLb2cgHHn9B+OSDM85/NcD5U9BdgA2vW
	d/efmtUnmTNynHFksxPWjYfbndrtxWzibL8YkVFRN6luuwt3WHWUHO4xCCTPgjqWtKDWSwliLMT
	BFK7KQRVFP8B3k=
X-Received: by 2002:a05:600c:1907:b0:477:73e9:dc17 with SMTP id 5b1f17b1804b1-48373a79afbmr244401975e9.35.1771327735226;
        Tue, 17 Feb 2026 03:28:55 -0800 (PST)
Message-ID: <06208b1b-9107-4ae6-acbf-c69659354da4@suse.com>
Date: Tue, 17 Feb 2026 12:28:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 01/16] xen/riscv: implement
 arch_vcpu_{create,destroy}()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <42534cb6aabf25cf551a13ae1288045e1ac08f9e.1770999383.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: <42534cb6aabf25cf551a13ae1288045e1ac08f9e.1770999383.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 17:28, Oleksii Kurochko wrote:
> Introduce architecture-specific functions to create and destroy VCPUs.
> Note that arch_vcpu_create() currently returns -EOPNOTSUPP, as the virtual
> timer and interrupt controller are not yet implemented.
> 
> Add calle-saved registers to struct arch_vcpu which are  used to preserve
> Xen’s own execution context when switching between vCPU stacks.
> It is going to be used in the following way (pseudocode):
>   context_switch(prev_vcpu, next_vcpu):
>     ...
> 
>     /* Switch from previous stack to the next stack. */
>     __context_switch(prev_vcpu, next_vcpu);
> 
>     ...
>     schedule_tail(prev_vcpu):
>         Save and restore vCPU's CSRs.
> The Xen-saved context allows __context_switch() to switch execution
> from the previous vCPU’s stack to the next vCPU’s stack and later resume
> execution on the original stack when switching back.
> 
> During vCPU creation, the Xen-saved context is going to be initialized
> with:
>   - SP pointing to the newly allocated vCPU stack.
>   - RA pointing to a helper that performs final vCPU setup before
>     transferring control to the guest.
> 
> As part of this change, add continue_new_vcpu(), which will be used after
> the first context_switch() of a new vCPU. Since this functionality is not
> yet implemented, continue_new_vcpu() is currently provided as a stub.
> The prev argument is going to be set by RISC-V ABI (prev will be stored in
> a0) when __context_swtich() will be introduced and called from
> context_switch().
> 
> Update the STACK_SIZE definition and introduce STACK_ORDER (to align with
> other architectures) for allocating the vCPU stack.

Yet you don't really need STACK_ORDER, as you use vzalloc() (unlike in
particular Arm, but also x86). If there's no expected other use of the
constant, I'd suggest to omit it, to avoid the false impression that
RISC-V is like (again in particular) Arm in regards to how the stack is
being allocated.

> --- /dev/null
> +++ b/xen/arch/riscv/domain.c
> @@ -0,0 +1,58 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#include <xen/init.h>
> +#include <xen/mm.h>
> +#include <xen/sched.h>
> +#include <xen/vmap.h>
> +
> +static void continue_new_vcpu(struct vcpu *prev)
> +{
> +    BUG_ON("unimplemented\n");
> +}
> +
> +static void __init __maybe_unused build_assertions(void)
> +{
> +    /*
> +     * Enforce the requirement documented in struct cpu_info that
> +     * guest_cpu_user_regs must be the first field.
> +     */
> +    BUILD_BUG_ON(offsetof(struct cpu_info, guest_cpu_user_regs) != 0);
> +}

Nit: Generally we have this kind of function at the bottom of source files.

> +int arch_vcpu_create(struct vcpu *v)
> +{
> +    int rc = 0;
> +    void *stack = vzalloc(STACK_SIZE);
> +
> +    if ( !stack )
> +        return -ENOMEM;
> +
> +    v->arch.cpu_info = stack + STACK_SIZE - sizeof(struct cpu_info);

Perhaps better sizeof(*v->arch.cpu_info), to connect lhs and rhs?

> +    v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
> +    v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
> +
> +    /* Idle VCPUs don't need the rest of this setup */
> +    if ( is_idle_vcpu(v) )
> +        return rc;

I'd suggest "return 0" here to make clear it's a success path. Then
possible uses of "rc" earlier in the function also won't affect this.

With all of the adjustments (happy to carry out while committing, as long
as you agree)
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:38:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:38:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234883.1537986 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsJOz-0001b4-PF; Tue, 17 Feb 2026 11:38:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234883.1537986; Tue, 17 Feb 2026 11:38: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 1vsJOz-0001ax-Mh; Tue, 17 Feb 2026 11:38:01 +0000
Received: by outflank-mailman (input) for mailman id 1234883;
 Tue, 17 Feb 2026 11:38: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsJOy-0001ar-8W
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:38:00 +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 1b262cd6-0bf5-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 12:37:57 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-43770c94dfaso4864237f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 03:37:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac8d46sm34879477f8f.32.2026.02.17.03.37.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 03:37:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b262cd6-0bf5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771328277; x=1771933077; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WsO1/V8R3c9W1n0vXsS94k5xMKTxELyxFyxyU320pro=;
        b=FqgxvkihjUo/X6J76ZcdgpRbpSWhE/X/zbw0dWACRHyqbTsasdEglOKUFYgrSlvvbb
         tnTZjSGfTFAggVYCDBloq2B8saQlYpSlfg2i3czsMoIz8Dd8lc1EtDpjzU6Ib7nj/4yP
         uTB10XrZxkWz+007qLA4qtde8opGJvW/IwZdCq4SW+IpXQNXYq+wQmEgOdUCyHsfMoCC
         4nmMn1N5SDPX2fulqBAL2hlY/b5g8meL7tpSvZnt3FqpUYzWOaT634ic8MKg1BS4R2ZH
         pPKlaiTHRrbo6vCnou9ArR2VHhvtmYK2OWY5mW2rcFR+FwkNA3G63W18wyuZAtW2Opuv
         HwRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771328277; x=1771933077;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WsO1/V8R3c9W1n0vXsS94k5xMKTxELyxFyxyU320pro=;
        b=cHTzk/KxKYuVbpXh8/OSC2g+1tiyggiXWwJgiOZTjVnBHo2hrEikHVUWds2J/razrb
         syy3DzxobNAG6ISRUVvGerY1i8FC9zfDScBOErWBUAKAzAP9BogJIKwzxyWs8//u01FD
         obKvXuFuKlasZGRX4Jddzc89ba6vONwWd0abUfKAyrwr+ORvSRjdv2a77LBVS+jQwS1O
         YYug+dPJmPL5+mFpB0da6r8UB575rG1IJlrKmKLO0Xuq1MbPt/+REAbA4QXBelapxe1Q
         h/8UX7aVkKe+nJTMrxg4rY5ET+4y7MjY7iSeRLylh1Z8p4mwrAD+OFXBSOsiq3CN1f6t
         A6Fw==
X-Forwarded-Encrypted: i=1; AJvYcCWjDnoGaiFfLGwxlKrtAZ/2+27QZbYSq8aixVnunvH9x7AEbwNow0OKkXPWVhnoC6d7rc9FRRRW23s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YylAXOtJmqBwzyvD5fc8pkznbpG+XqkWFu6Osjn9YE6n9CuU0Mh
	b7vwW2T57HOvXhCcY3ePbxGxs2/ATRBBHPZLPvOG+H7G0eEnHFJIfvnhfeHejbqwIw==
X-Gm-Gg: AZuq6aICNsz598EwW5A9GBU8XwU7AVkiIaUDP/4SBTBWZ6y4V+nvTD3aKm2iwxfpnAo
	ToQo8lhBLtbNNf5f0NF2dQpVKE28F13F+7iDoFEmSCwhg/YGAConpNnAfN91+xHpZjXP5XBsNnh
	Dw/h2YHENytYMUXMyHlO6C3EzOY+QAFIyWi6++bLgp7qAUZpQ9c300TAIBMc4ebemKSA1YDSgIv
	Gn50x5wVnr0WelhJ9UswfN60yNOWDg4mRPQHosKVbz/S4ff8M9QBBvS6Dv/oRcARM+COgj1P+e5
	hocjG9WKGDrOPOIoEmqu0k+GVMNiR0OO9msD5UmqZ0YybXG89sOnTWluLTNdPh6fz21JD4Sh/Nd
	IaIwhFxTauSjlacJ66jUL8x80lJY6Ui6qlh0mSBYHSs7ApX2rQuubeTVj+PnBAcNR9gj9KmABbr
	ZT0+mKF7x/WRXEyNFPA7afHoHlKcPzKd5c5kqj1K93Pue3tuWR9wLadDuGDqnhtHU0f0x0AXWN8
	VrdwiPsV01W9Zg=
X-Received: by 2002:a05:6000:1a8f:b0:435:a9c9:159 with SMTP id ffacd0b85a97d-437978d11d0mr21645095f8f.18.1771328276930;
        Tue, 17 Feb 2026 03:37:56 -0800 (PST)
Message-ID: <fd7c8adf-d8cf-482e-8c8b-55187ea6dabf@suse.com>
Date: Tue, 17 Feb 2026 12:37:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/16] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <06c3b8f88803039a3d900c8cb2f1fd9d05f44e3e.1770999383.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: <06c3b8f88803039a3d900c8cb2f1fd9d05f44e3e.1770999383.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 17:28, Oleksii Kurochko wrote:
> Some hypervisor CSRs expose optional functionality and may not implement
> all architectural bits. Writing unsupported bits can either be ignored
> or raise an exception depending on the platform.
> 
> Detect the set of writable bits for selected hypervisor CSRs at boot and
> store the resulting masks for later use. This allows safely programming
> these CSRs during vCPU context switching and avoids relying on hardcoded
> architectural assumptions.
> 
> Note that csr_set() is used instead of csr_write() to write all ones to
> the mask, as the CSRRS instruction, according to the RISC-V specification,
> sets only those bits that are writable (note that the quote consider only
> non-read-only CSRs as writing to read-only CSRs according to the spec.
> will raise an exception):
>     Any bit that is high in rs1 will cause the corresponding bit to be set
>     in the CSR, if that CSR bit is writable.
> In contrast, the CSRRW instruction does not take CSR bit writability into
> account, which could lead to unintended side effects when writing all ones
> to a CSR.
> 
> Masks are calculated at the moment only for hedeleg, henvcfg, hideleg,
> hstateen0 registers as only them are going to be used in the follow up
> patch.
> 
> If the Smstateen extension is not implemented, hstateen0 cannot be read
> because the register is considered non-existent. Instructions that attempt
> to access a CSR that is not implemented or not visible in the current mode
> are reserved and will raise an illegal-instruction exception.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V4:
>  - Move csr_masks defintion to domain.c. Make it static as at the moment
>    it is going to be used only in domain.c.

Except that ...

> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -2,9 +2,14 @@
>  
>  #include <xen/init.h>
>  #include <xen/mm.h>
> +#include <xen/sections.h>
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/setup.h>
> +
> +struct csr_masks __ro_after_init csr_masks;

... it's not static here and even has ...

> --- a/xen/arch/riscv/include/asm/setup.h
> +++ b/xen/arch/riscv/include/asm/setup.h
> @@ -5,6 +5,15 @@
>  
>  #include <xen/types.h>
>  
> +struct csr_masks {
> +    register_t hedeleg;
> +    register_t henvcfg;
> +    register_t hideleg;
> +    register_t hstateen0;
> +};
> +
> +extern struct csr_masks csr_masks;

... a declaration here. If you want to keep it non-static, it (and the struct
decl) likely wants moving elsewhere. Whereas if you truly want it to be static,
the struct decl would want moving to domain.c as well.

> --- a/xen/arch/riscv/setup.c
> +++ b/xen/arch/riscv/setup.c
> @@ -70,6 +70,25 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
>      return fdt;
>  }
>  
> +void __init init_csr_masks(void)
> +{
> +    register_t old;

As indicated before, this would better be ...

> +#define INIT_CSR_MASK(csr, field) do { \
> +        old = csr_read(CSR_##csr); \
> +        csr_set(CSR_##csr, ULONG_MAX); \
> +        csr_masks.field = csr_read(CSR_##csr); \
> +        csr_write(CSR_##csr, old); \
> +} while (0)

... local to the scope the macro introduces. IOW with both this and the
earlier remark, let's try to strive to have scope and exposure of variables
as narrow as possible (unless of course there are clear reasons not to).

And btw, wouldn't you again better use csr_swap() here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:46:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:46:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234899.1537996 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsJXN-0003Fh-JE; Tue, 17 Feb 2026 11:46:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234899.1537996; Tue, 17 Feb 2026 11:46:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsJXN-0003Fa-Fa; Tue, 17 Feb 2026 11:46:41 +0000
Received: by outflank-mailman (input) for mailman id 1234899;
 Tue, 17 Feb 2026 11:46: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=FeWO=AV=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vsJXL-0003FH-Mf
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:46:39 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 50f8f817-0bf6-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 12:46:38 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM6PR03MB5356.namprd03.prod.outlook.com (2603:10b6:5:22b::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb
 2026 11:46:33 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.010; Tue, 17 Feb 2026
 11:46: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: 50f8f817-0bf6-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=K3pRQ7/4M7GZqdtAnGF7JSlIZEV5KH3QgrGZyyNqpT5VeDgoIy4r/D+EOdZRS2sikDS2BY5ZuVDqJVhgdHkj4JRSKxxTLPQe67UPIi0sjXqsKdTQKdQoCRdwAjmWltYb1I5kHzFsmb/F7D/3Iovrmogl75JwBrgoi5H1+USgLetP9fEAECLiLmBOC0KdhJ6Qg1MOmohBkseCdMeuV1nmeKCr8XrtusmwFZpTi8q1ZY9ikkFauRmFhSIind7whBe7fAvwkZUO3z7+TeruQpHvogyLHfWyxWBSFVt4sC4qscPWs+gTxCL9k7ewCmP2QUNyusK6dPn1/KVeVNH2eJ0WtQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pfJtv+7XdWLCg/34XrCgwfQjiDHKj1mcC2sdr0a+cjw=;
 b=Fbzzxz+8KOQBFa40xzzQPCSsxgWlefoWtMXvh79egXMrNfWSb+An1d4u0EKTIHGapvmmSGbgd99PFDViE6uwjTk/mgDKdh3So/kQ4uaB1ipmOgtOE7eXMBhu2X64cSHS2xIHGuqLVb3SJXQiProeueJ7oHotRATCZPeZAm4ZENSDk2cBOnHBVPvZ0/3bNggBYpYjPBNw2DrIKfrVhFSCjPbvEyakD5knMyHG+O0a6PaT3qUDbNN+7pfOfNkG82xc/kmlY9l/hB5N7Pv3x31gEs3nWngmtIywE1JRK5wI1jHPgcGoQ3dz6QW5OhIPiDIXZAGYue5sSfAce/glpNT6KQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pfJtv+7XdWLCg/34XrCgwfQjiDHKj1mcC2sdr0a+cjw=;
 b=LHP6xuR6BhrKXCpnEHdKNe3FzvE/gGhfBM09uSdCx0uBmXBP0ksokUIE3q9neioi+ZmaZn4XHQzHT2rb85jFi0ZPGF1ALgjGKLmHJTbAKsFHztsBc34dPLZqcMV+sQlP+9ewIqHBjRUZD168uQ1tpfdCSsna//P0XyJ3zNuZjxw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 17 Feb 2026 12:46:29 +0100
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] domain: skip more stuff for idle's vCPU-s in
 vcpu_create()
Message-ID: <aZRVFVXYKzQmt3Q8@Mac.lan>
References: <c0aef909-b294-40af-8d24-033b28450338@suse.com>
 <aZRLMePmm8ehD94H@Mac.lan>
 <a0e47cf7-91f0-471e-b6b8-6554f496190f@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <a0e47cf7-91f0-471e-b6b8-6554f496190f@suse.com>
X-ClientProxiedBy: MR1P264CA0171.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:55::12) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM6PR03MB5356:EE_
X-MS-Office365-Filtering-Correlation-Id: 94da567b-533f-4a93-89ef-08de6e1a32a9
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Q3hzZUJWUFc5OHlZM2tJYXVLak9YV1pmUFF0MlRxQldxMkpETVdHSmszOWNh?=
 =?utf-8?B?SUZJUVBRaVpKOWdnZVhVNFZUbHdhUTVISXNvOE1UNStxb2xPRWNsNm1udkMx?=
 =?utf-8?B?WWQ4ZnFPcENVYmNON3A3S24yWGlzd0djZ0xkL3U4UExZUldsTDExdkZWNEFY?=
 =?utf-8?B?RVVPa1VNNDBIVjJnS0twRGpZYnRUQThwT3F6QzlXRTh2V3VpRC9hWkVIVnAv?=
 =?utf-8?B?SmhHK1pKcXMyb1JCUWZtVlkrUVl1Y2t2b0tFM2ZrZFRIY3BvOWNnU20zQUc5?=
 =?utf-8?B?dW9JbHdFWjFXUFZpQ00rYTdwUXc2QzJVQ3prTG5rZXVoME9RMXloTERjTk5U?=
 =?utf-8?B?cExpSUJsdmVmWEVpYVpMUXZGN2d6UnZPemhVaS9pQjBmZDFPSUFOWjZRR29G?=
 =?utf-8?B?cVBCODVCRWUvUjRYOXN5RW1iTEllMU82SEt1VVh4VFVrejlzQ1VjZkh0M0RB?=
 =?utf-8?B?Mnp2Zzhjc2JBVlVhUFRBUXlKbWthMHJ1MWlrUW1wTnpMWm14K1h4UnZnQXVj?=
 =?utf-8?B?WCtCbHA3SDdDYkx1NTRJOUIyOFlmYkhqVVR5cm0yeWNyOWkzWk10aHVwYTFP?=
 =?utf-8?B?c1piV3ZiUDZnTHJWV3FOUTdPSGEvbFYwRXQ2bmVrODE2VFVuWWZRNHRNeFdx?=
 =?utf-8?B?bzJUdXp0MHI3c2tCMEd5QUtpWDh3Y2lJV0kwMjA0alJsN0dPOC82N0ZqUXF2?=
 =?utf-8?B?aFRlQ2RTNTVSakhJV3pXdTh5QzhaME0xYWlZOHJxV3FDOTdmNmpXVTFlNGVh?=
 =?utf-8?B?TG5XZ01PcEs2T1hiaEhTN0FEQzB6K2ZydTYxcFFEbElIaGhtejBXRWhEOHJu?=
 =?utf-8?B?TVRCZ0o1WWJydXE1OTQ5a0hYWDFCSWRXM1FvV1lMRXNTTG1BcEU4QlFCWXVX?=
 =?utf-8?B?aDBNMW1mZG1Ka0hvL1JHbW1obHV3RE1oRWliNStOQTZtQ3hVc1o0UlpmYStT?=
 =?utf-8?B?ODdKQTVyd0cyRklmWkVZbWtzM1puR0VxdVN0R1ptdEpIZXhRZU9lVFJONmFM?=
 =?utf-8?B?b3F3QXpERzdtWE81czVDeWNMTEJrd2lQOXcwWXZqaXpCY1l1Vm5ickZmMVRs?=
 =?utf-8?B?QjhJVDd3U0d4SEhMQ2dIY29XUVJrOXFVbEwyT2R1Vk1GRXZDNmNjQ0ZsZVZw?=
 =?utf-8?B?T014UmJidVpSbzhjREYzVWQxaVI1Y2dteUFkT2x5RWxZSHZ0UkVsdE1UNFQ5?=
 =?utf-8?B?SnVhR1pWTjZ5c3NIdDBJVndoQVZvNnk5SmpVNlcvV3BBcjhVQzRRdXhQS2F5?=
 =?utf-8?B?S1c1Wkl2TFRZaHFDMEk0eXdiYnR0bnhHQ2kxTldIZ1BvQzYzK2lRRWdpYkF3?=
 =?utf-8?B?aGsxSkFDcnVkbmdCK3QxMzVBWkpLeWNEL3ZzRzd3NCtaaVpFYUdjQnJmTTFH?=
 =?utf-8?B?WnRIemxwZEVOZkY2aUlPUU5FYTRhWkk3cXgyU2lEbU5ibFBTWVA5UFZDKzIz?=
 =?utf-8?B?WDRNeXV0MXZ6OWNFd25ZbnR4UlZlcXZNODgxVFlDOEtNK3JzU25GWTlUVUVW?=
 =?utf-8?B?SWh0TWIrS1RDeHlzb3dOaHIxYThOV0NPbWtZeTVCS0owbW9UclpzWTE0SE1s?=
 =?utf-8?B?Um95cmhaQS95STY5QjFqSnR6VUN2clpMaEhyOEpESDNVeGl6U0pXaWJVY1dZ?=
 =?utf-8?B?RnN3dlp0UE83dVk1Mlg2WjBrdGw1cnFEcThUM3JvOE9LS1N4TkpTNUZvR2hn?=
 =?utf-8?B?Z1c3cE5QWEo4RTVGbm9sb3paMXZDUnVFdkxLWUErazhNenJvWWJvRjRudlM3?=
 =?utf-8?B?NWY0UGJpejVOcHRValFBVDJFYTNWalh0UWhnVGxqbndQcE5RaHpLRmZPMzYy?=
 =?utf-8?B?UjFhNTY0dkpvQUNQcmhKRi9Ca2UxZDF1ckpyaTR5Z3M4cUpDKzU4SlY5RVRt?=
 =?utf-8?B?d1FnMERvWU5NOHNBYk9abUVDU2xISmxvQ0dBRkFSYll6NVNXb0lIYVQyTllD?=
 =?utf-8?B?UFV0cmJKSEN0aXhvOGdiUHIyakorRXpMek1KR2hvZitOOEh1NHBKYlVxODhO?=
 =?utf-8?B?VnF4d1g4bVZJWnJQTHhuTldKblRHczhiWEo5ZDM3T2tjMm1SSlRxUklMZk1i?=
 =?utf-8?B?QVNaRmtrTTRtU1FIN2lMREpqTGZ6MzdET2twUS9BSWFRcVlFNm0yWHhxaVA2?=
 =?utf-8?Q?GHBs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U3FXV2lDMmtpL2RtYjVpWGozbkp1UEt3WUczZzFKS1dOSEJrWG94SVhrV21P?=
 =?utf-8?B?bWs4RWxMejBVYS9uZUJTVXNvZmNhRVF1eGZlb01BbmREWnEzTEN2SFZoWkY4?=
 =?utf-8?B?SGVldTRKaE55YkZiejJraXdydVVERE16ck8xTkZXZmYraHFIa2VSVmVUUy94?=
 =?utf-8?B?WGlHWGVCNHMvQm8yY0V1a3BZWDU1RGdOWklGTEFTWHEySkZqR1AxRG5aQ1FR?=
 =?utf-8?B?dS9aNTRKb0tBWjFOV1c1bUVTZklTSy80alIxR1pQV2FJMk1yeENxSTY4VVEr?=
 =?utf-8?B?d3hmcG9CSFBJbWoxTmV6Q0RsTlUySXJTUXpPbWpPS0xFTTRnVDBGd1hZeTRl?=
 =?utf-8?B?VXhxcHpJenN1cW1YSnVEVEdoVDJxTCtVOHRhcEFoRlVzcExKMkZrRGNRU3F0?=
 =?utf-8?B?cFdDaFVBZzRQdkNIdVBWZFVjS1RIK1g2NVJRUEJQRmFlQ3JtSW1RandoekdW?=
 =?utf-8?B?azJyZDVXMkZ5cnJkSm81M3VrK1FYemdDdHpoSGtRWlkzdEhKdWpsRVkzZkdn?=
 =?utf-8?B?V2ZjT054cDRsTk04S0UrOVljNU8wRjRoa1JzQzVWd1JJOVVMSWR3OG5oOWlF?=
 =?utf-8?B?NjJaWmFRRjUyWlNxeWEyVjBGbVBreWJFMlR3TWpnd1dYNEhxY3JJV3dwRVNG?=
 =?utf-8?B?WlNuRUY0ampFMlZ2WDR1Yk9GTWxEWFNEdW03dXdnZHZsaEpWK1FzQ0I0eW56?=
 =?utf-8?B?NWlpbmlBeEttdlpsQkVnZUU5VVA3K3JHOUdPVVY1ZjVUd2hURzZ3M3oxdHN6?=
 =?utf-8?B?K3BtVzlLWEg5c201ci9PTXE5aGNwZUM2WmFiano2dEpmTHlpTVpDcnBMcTgr?=
 =?utf-8?B?L3NWVzlFUG1JL3lUSWxXR0FWd2xKa3BKS0NJSG9VTTRaUDlYRkp6Rjdabm96?=
 =?utf-8?B?SzNnUndGcUs3c0Ixa1ZORjVOVE82TnJGU0ZRRis1RFBMSnhGenI0Y2cveDZj?=
 =?utf-8?B?Y1d2eEZlNnd3T2FyT1MzMVRWSURCcTZSbzh2SWpCNHQzQ3lyMzdzYVBCaTBv?=
 =?utf-8?B?TWhVS1ZPQ0hySU9pY25jSWhQSjdjeVFSc01OeFpndVVmSXZHTGw4VkNSZmIw?=
 =?utf-8?B?cWh5QlFNWk1VWTUwajZEYUFsTld5WUNsTlJlZnZyOFB5Y0dUY2dLRFI1ZHVW?=
 =?utf-8?B?VnNsMzBuQ2JpNkVTUUh1djgzWmxmNmtKQWZuY3lENUZCYWkzMUI2VUxLLzJq?=
 =?utf-8?B?Uzd5cFZEVW5qMEZQTnZrVUx2ODlSdWhwbFZvcnhQekdXVkdVdS9hSFJDcUcy?=
 =?utf-8?B?cC83VGFVVDA0N3E5cUNVRkZydzdLT0ZubHZRNTR5dHdIK3VXL2NoeURuOVJi?=
 =?utf-8?B?c0NyclFoRG1RQU5RMEwwbVkzcUVBNHJVR1I2Szg0dDRNcTVYWk1IN1o4MmZH?=
 =?utf-8?B?alRiaGI0RW5nczVIMUZLNDZoWDVGLzhNUVh2RFdhYTFRaW5UYkQ2YXBONjlP?=
 =?utf-8?B?dWpUR1pldWpDS2N6RnNseWJyQ09QWVV0a1FUcWxraDcwUjBSYzBzcCt1Mlpr?=
 =?utf-8?B?Z3J6T2pLcTVGYnZESEVpc2Q5OVZiTkZrblNlUjdWUGh4WWMwVUZFRlhhNVpT?=
 =?utf-8?B?clphUGpUZDlieWI0MGU0UVM2VWZkMG1ucnVNTERYckpPcmhjYlJxRzd3Rmpz?=
 =?utf-8?B?akVUVDNaYUNpT2tKRDNUUlJMOHpHOUErUjJ6djQzZFFkNUNnN0taaCtRQnNQ?=
 =?utf-8?B?M2hSNHJDN0RPQUlWUFAwSDFRbHA1bnpSdFY5UzI1ZWQ1S2J6MmdPRlFJdmNE?=
 =?utf-8?B?OFZaTlBCKzh1eVIwMXlTU1VPak94aXRnVFBSQk04NTVMRXQ5bTJoVno3a0Ns?=
 =?utf-8?B?U05lbmNzaGpiVXNXemVHOW5FeEc4S3JuY2RVRllhdURGTkhOaXBhK1crWmxH?=
 =?utf-8?B?a2V4L2s3Y2hYb083MjhiV1lnUFVKQTkxQW1RYlMrTGhOVkw1c20ycEJNZEtr?=
 =?utf-8?B?WHhZekxXcXVULzVFVnE2QmhUN29RQ0t1eEk2Mm9HODhHSTViMmUvZXg3RXRC?=
 =?utf-8?B?RVhBd1UrbGM4enpJR01sVW5XeCtvV0pNR1VXK1NuTGxrdjVFK3ZxSGhWZm42?=
 =?utf-8?B?UzRBeDNERG1IVURYNGpXMlRWV082dmF1VEpGeEN1dUJRbm1YbmRabmJSa1lE?=
 =?utf-8?B?RmhHTlRqTGMzZ05JREN3Y1dLemRUUHFuT1djdmMxV29sbzk3VDBEcTJRZHRx?=
 =?utf-8?B?RXIyNnRqSG1jOERkVGtDVmI5OFlyWXFvYmlBdWJDeFY5eWhTNWVuMlMxbEZ1?=
 =?utf-8?B?bnJ1dTRtR0Z0OTAwSUhiSU1FZmM2VEo2SG81bUxCaUhic05YOWVtVXg5dTlj?=
 =?utf-8?B?aHdlS3pVV2hNRkxNd3RiSnZBc0hoRDZsZFBHT1dhVE5FN0JjR0pKUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 94da567b-533f-4a93-89ef-08de6e1a32a9
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 11:46:33.3646
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: JZOE689iSU5ayCHjj3MM6Z5lQl8zKBNjCS7H6ulQzTlEFxdULxI4W4N2zfUVAU7e9c14rPOOq2u9iXScCxukow==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5356

On Tue, Feb 17, 2026 at 12:17:35PM +0100, Jan Beulich wrote:
> On 17.02.2026 12:04, Roger Pau Monné wrote:
> > On Mon, Feb 16, 2026 at 04:54:30PM +0100, Jan Beulich wrote:
> >> Nothing hypercall-related needs setting up there. Nor do we need to
> >> check whether the idle domain is shutting down - it never will.
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> > 
> > Acked-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Thanks.
> 
> >> @@ -516,7 +516,8 @@ struct vcpu *vcpu_create(struct domain *
> >>      }
> >>  
> >>      /* Must be called after making new vcpu visible to for_each_vcpu(). */
> >> -    vcpu_check_shutdown(v);
> >> +    if ( !is_idle_domain(d) )
> >> +        vcpu_check_shutdown(v);
> > 
> > I would possibly leave this as-is.  I agree that the idle domain will
> > never shut down, but it's possibly best to needlessly call into
> > vcpu_check_shutdown() for the idle domain rather than adding the extra
> > conditional for the common case?
> 
> I'd prefer to keep it conditional: Calling the function for the idle
> domain gives a wrong impression, plus it may be the only one where the
> shutdown lock is used for that domain. We may want to make lock init
> conditional in domain_create() as well (possibly with other things we
> needlessly do for idle or more generally system domains).

I've been thinking about this, and I'm not sure whether it's the best
approach to avoid initializing locks or lists for the idle
vCPUs/domain.

It's certainly good to avoid initializing stuff that consumes memory
or other resources, but skipping plain initialization (iow: setting of
values) of fields that are in the respective structs seems dangerous
to a certain degree.  If for whatever reason we end up with stray
calls from the idle vCPUs/domain into functions that use those fields
it's likely safer to have them initialized, rather than tripping into
some uninitialized pointer or deadlock trying to acquire and
uninitiated lock.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 11:58:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 11:58:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234920.1538007 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsJiy-0005Hb-IF; Tue, 17 Feb 2026 11:58:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234920.1538007; Tue, 17 Feb 2026 11: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 1vsJiy-0005HU-E9; Tue, 17 Feb 2026 11:58:40 +0000
Received: by outflank-mailman (input) for mailman id 1234920;
 Tue, 17 Feb 2026 11:58: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsJiw-0005HM-FW
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 11:58:38 +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 f88879c7-0bf7-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 12:58:28 +0100 (CET)
Received: by mail-ed1-x52b.google.com with SMTP id
 4fb4d7f45d1cf-65a36c8bcabso1108387a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 03:58:28 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65bad29d4afsm2258690a12.10.2026.02.17.03.58.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 03:58:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f88879c7-0bf7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771329507; x=1771934307; 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=PQS0biGMi1toghT4wNPDy2yHAEiT+Mm05gcElsWjRu0=;
        b=XxvIb8lSYdDGBVMOJkg0bsq07l5nmNv/DGM/gI/hloCZPi1hrntS+fUdKNCTmXNDlH
         DT56hSN+9f++yD0AaM4UiXk1UVKax8LSPmtwdlsb2uxVz3ypYHOQD5CTMBcjUi3cyROt
         62OED7I62kqjHgPK/7hb/1ExYwEx+fdLcOuvL4vTWxR/kjjCIwW7FcYjyVR3hsxQU35q
         jojb7Afnf3SHPtyQ9hMD8hciBTZBnmHbWcEYhTn0OiQC9kX/fChlwWivIE3Sh1x7Je7Q
         wK76PkVdaFAJFeemNryctXqOKmEmhymoyIDeR2/h0RotGVhGSSIvud7F+YiTRsUpK5YD
         6+wA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771329507; x=1771934307;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=PQS0biGMi1toghT4wNPDy2yHAEiT+Mm05gcElsWjRu0=;
        b=NCFpJ5AvBcZ9xRHZTVQ4xh76pj8iaQWO9Rj9WphzIjcBnxuGG1kgkkQlK14DISYTiW
         apFTOhc9q6urB35Fz89RPZpkdMUYYe/ZLgO1AlfArgxBBBHM3Q5d3ZNyWgWHzbmVLwp+
         xVq4bGH3LP03nLng3fN6gC39o7ysr/wntHTUsZB1moCSnFNmD7I/x+NPQJFIhB9+ti9Z
         VB/dsKnXFL6Igl7+rz4/GQoPlKz2Ozvq0O0ZdTnTHOgCz8SiDk1YVIxBFR729O+ZY6kP
         q7PhwguZRkfnrSnQrgOiGZuVWhgAZp5lzdGZSQUmoiL9W3Saci278FdoNI7yRXxfkavJ
         dXHA==
X-Forwarded-Encrypted: i=1; AJvYcCVyiJ1xXxOkAsth/hH33J6PGsn0kBlyDGrzFRMO5HGhPS120Owd2UsVFdO+XSf/YZNXiaO6TQTo6ss=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx3jR79YNgB5qlGs1TnQUK0uyn24UUZhpGWqrWwf8rrrq1NRa8+
	/pLJYKTtRGsymyl9Z29obm66fuLQlCklQTQp9XRrIHbn7YfmaX2fB8TP
X-Gm-Gg: AZuq6aIAYj6HxB0al+wmeBJN3Yly2v0HZqfSk3nGFRaBO1Wb31Scb9/cNEAAP0Bkqdk
	AcOWAEjs0lvBYzCey1UyYuglnYbDAfHNW6FejrzeZohwnirKGoijYUIB5qXHjRFcTA0qMQQ7v4g
	Ngkgvc5IFUOO5HRVLFdF1jEjqq+lBut6JnFDmxz+2iMg5jM4LJSMIjl48uDs48j+Kik3bHBM8Rm
	QdQwDDpPWjFm/Fjnzr5J3JXtirEsnbpu31za+qQR61EvSZ2GSaYgCtTixOfwk4odovZ1o/3nZWF
	wfWLn20JOXnqfY+twFMfRfYkNaK24Qw50o8HUB1JIl5WOr8HJAnSrjxMSJ1YpnRwtoH3ChGwxVR
	HR1osbR2em+FR4uFYzG41Y664FAP+GvKRkXIG7KH3B0Mt1iJCDZe8OIVFWj43rX2EN5A7+KEahj
	y2IBS5cM3Zbf5/dqGY+YrpqLfst2GolKl8Z9j9W+26yEXG1mwxiHdtsHQd58qH86phinyl43cM6
	nF6Ue0jD/vqQg==
X-Received: by 2002:a05:6402:399c:b0:65b:f5fa:afce with SMTP id 4fb4d7f45d1cf-65bf5fab2cfmr2666031a12.31.1771329507342;
        Tue, 17 Feb 2026 03:58:27 -0800 (PST)
Message-ID: <f95c9cae-0d57-42bc-b435-3f29c54b67b9@gmail.com>
Date: Tue, 17 Feb 2026 12:58:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/6] xen/riscv: add zImage kernel loading support
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <308c5bc1de15b23c643d48f975799739f44dde8d.1770821989.git.oleksii.kurochko@gmail.com>
 <0bca8843-9c52-4544-88a6-87ddb110095e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <0bca8843-9c52-4544-88a6-87ddb110095e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/16/26 5:31 PM, Jan Beulich wrote:
> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>> Introduce support for loading a Linux zImage kernel on RISC-V.
> Before I look here in any detail - where would a zImage come from? I can't
> spot any support for it in Linux'es arch/riscv/Makefile (whereas
> arch/arm/Makefile has such).

Good point.

It is something that should be renamed as not Arm64 (Arm32 really has such
target), not RISC-V doesn't really work with zImage. They are using Image plus
Image.gz as compressed image.

Maybe it would be better to rename kernel_zimage_probe() to something more
generic kernel_image_probe().

>
>> Note that if panic() is used instead of returning an error as common code
>> doesn't expect to have return code and it is something that should be
>> done separately.
> Is the "if" in this sentence a leftover from some editing of earlier
> different text? I can't make sense of it. Also, which "common code" do you
> mean? kernel_zimage_probe()'s sole caller does respect the return value
> (handing it on).

It is about kernel_zimage_load() which is used to set:
   struct kernel_info->load = kernel_zimage_load
in kernel_zimage64_probe().

and which is called (and is in common code) from:
   void __init kernel_load(struct kernel_info *info)
   {
       ASSERT(info && info->load);

       info->load(info);
   }


>
>> This prepares the RISC-V port for booting Linux guests using the common
>> domain build infrastructure.
> Again, what's "common" here? Not something x86 uses, afaict.

By "common" here I meant dom0less's common code which may use functions
from this file.
I will update that part to use more specific instead of "common".

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 12:28:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 12:28:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234944.1538015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsKBU-00013u-TS; Tue, 17 Feb 2026 12:28:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234944.1538015; Tue, 17 Feb 2026 12: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 1vsKBU-00013n-Qq; Tue, 17 Feb 2026 12:28:08 +0000
Received: by outflank-mailman (input) for mailman id 1234944;
 Tue, 17 Feb 2026 12:28: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=PabX=AV=zedat.fu-berlin.de=glaubitz@srs-se1.protection.inumbo.net>)
 id 1vsKBT-00013h-T4
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 12:28:08 +0000
Received: from outpost1.zedat.fu-berlin.de (outpost1.zedat.fu-berlin.de
 [130.133.4.66]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1b3659eb-0bfc-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 13:28:04 +0100 (CET)
Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69])
 by outpost.zedat.fu-berlin.de (Exim 4.99) with esmtps (TLS1.3)
 tls TLS_AES_256_GCM_SHA384
 (envelope-from <glaubitz@zedat.fu-berlin.de>)
 id 1vsKAq-00000002WEs-0TOS; Tue, 17 Feb 2026 13:27:28 +0100
Received: from p5dc55f29.dip0.t-ipconnect.de ([93.197.95.41]
 helo=[192.168.178.61]) by inpost2.zedat.fu-berlin.de (Exim 4.99)
 with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384
 (envelope-from <glaubitz@physik.fu-berlin.de>)
 id 1vsKAp-000000026vw-3EPk; Tue, 17 Feb 2026 13:27:27 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b3659eb-0bfc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=fu-berlin.de; s=fub01; h=MIME-Version:Content-Transfer-Encoding:
	Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID:From:
	Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:
	Content-Transfer-Encoding:Content-ID:Content-Description:In-Reply-To:
	References; bh=M8vjpXwBYqHTGgLeO7mfZbw/zRtPy35wLTMbPEUqNJY=; t=1771331284;
	x=1771936084; b=PMFJQP1hsQ6u0wJqU7yPNvQfkIvv6d20vi43oczt6xm5RnOpyr3+MkmCcSbPw
	wCL65j02UOk2fYWGjl08dHIZvbbf5w+3sN1TYhm1IEgVVFOBDMX9YBFh8EpKp7eq8l/biirLDaRJw
	0mSiUdSG+zGfAEZH3IKRQTKTnTQiMHn+GeAYejKJq/1gMA50k8xsWa+3czfdUMQSW0LA7jDAkGp9Y
	vXX7+eQuUEHsvCeu6tM2ams1jHmGI7KDOY8LDS+0rWIn3pVFLklB6r9gU48MFUQ4XUgpu1rqUrT8G
	3DR4efMypnwgEQ2fQeoAQEu+ffeALjqPhvK+jVdXkJ3uQymuHw==;
Message-ID: <e294484787a5032c531dcd40071b22362bddcad4.camel@physik.fu-berlin.de>
Subject: Re: [PATCH v5 11/14] sparc: Use physical address DMA mapping
From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
To: Leon Romanovsky <leon@kernel.org>, Marek Szyprowski	
 <m.szyprowski@samsung.com>, Robin Murphy <robin.murphy@arm.com>, Russell
 King	 <linux@armlinux.org.uk>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini	 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>,  Richard Henderson
 <richard.henderson@linaro.org>, Matt Turner <mattst88@gmail.com>, Thomas
 Bogendoerfer	 <tsbogend@alpha.franken.de>, "James E.J. Bottomley"	
 <James.Bottomley@HansenPartnership.com>, Helge Deller <deller@gmx.de>, 
 Madhavan Srinivasan	 <maddy@linux.ibm.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin	 <npiggin@gmail.com>, Christophe
 Leroy <christophe.leroy@csgroup.eu>, Geoff Levand <geoff@infradead.org>,
 "David S. Miller" <davem@davemloft.net>, Andreas Larsson	
 <andreas@gaisler.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>
Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org, 
	linux-arm-kernel@lists.infradead.org, xen-devel@lists.xenproject.org, 
	linux-alpha@vger.kernel.org, linux-mips@vger.kernel.org, 
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, sparclinux
	 <sparclinux@vger.kernel.org>
Date: Tue, 17 Feb 2026 13:27:26 +0100
In-Reply-To: <20251015-remove-map-page-v5-11-3bbfe3a25cdf@kernel.org>
References: <20251015-remove-map-page-v5-0-3bbfe3a25cdf@kernel.org>
	 <20251015-remove-map-page-v5-11-3bbfe3a25cdf@kernel.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.58.3 
MIME-Version: 1.0
X-Original-Sender: glaubitz@physik.fu-berlin.de
X-Originating-IP: 93.197.95.41
X-ZEDAT-Hint: PO

Hello Leon,

On Wed, 2025-10-15 at 12:12 +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@nvidia.com>
>=20
> Convert sparc architecture DMA code to use .map_phys callback.
>=20
> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> ---
>  arch/sparc/kernel/iommu.c     | 30 +++++++++++++++++-----------
>  arch/sparc/kernel/pci_sun4v.c | 31 ++++++++++++++++++-----------
>  arch/sparc/mm/io-unit.c       | 38 ++++++++++++++++++-----------------
>  arch/sparc/mm/iommu.c         | 46 ++++++++++++++++++++++---------------=
------
>  4 files changed, 82 insertions(+), 63 deletions(-)
>=20
> diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
> index da0363692528..46ef88bc9c26 100644
> --- a/arch/sparc/kernel/iommu.c
> +++ b/arch/sparc/kernel/iommu.c
> @@ -260,26 +260,35 @@ static void dma_4u_free_coherent(struct device *dev=
, size_t size,
>  		free_pages((unsigned long)cpu, order);
>  }
> =20
> -static dma_addr_t dma_4u_map_page(struct device *dev, struct page *page,
> -				  unsigned long offset, size_t sz,
> -				  enum dma_data_direction direction,
> +static dma_addr_t dma_4u_map_phys(struct device *dev, phys_addr_t phys,
> +				  size_t sz, enum dma_data_direction direction,
>  				  unsigned long attrs)
>  {
>  	struct iommu *iommu;
>  	struct strbuf *strbuf;
>  	iopte_t *base;
>  	unsigned long flags, npages, oaddr;
> -	unsigned long i, base_paddr, ctx;
> +	unsigned long i, ctx;
>  	u32 bus_addr, ret;
>  	unsigned long iopte_protection;
> =20
> +	if (unlikely(attrs & DMA_ATTR_MMIO))
> +		/*
> +		 * This check is included because older versions of the code
> +		 * lacked MMIO path support, and my ability to test this path
> +		 * is limited. However, from a software technical standpoint,
> +		 * there is no restriction, as the following code operates
> +		 * solely on physical addresses.
> +		 */
> +		goto bad_no_ctx;
> +
>  	iommu =3D dev->archdata.iommu;
>  	strbuf =3D dev->archdata.stc;
> =20
>  	if (unlikely(direction =3D=3D DMA_NONE))
>  		goto bad_no_ctx;
> =20
> -	oaddr =3D (unsigned long)(page_address(page) + offset);
> +	oaddr =3D (unsigned long)(phys_to_virt(phys));
>  	npages =3D IO_PAGE_ALIGN(oaddr + sz) - (oaddr & IO_PAGE_MASK);
>  	npages >>=3D IO_PAGE_SHIFT;
> =20
> @@ -296,7 +305,6 @@ static dma_addr_t dma_4u_map_page(struct device *dev,=
 struct page *page,
>  	bus_addr =3D (iommu->tbl.table_map_base +
>  		    ((base - iommu->page_table) << IO_PAGE_SHIFT));
>  	ret =3D bus_addr | (oaddr & ~IO_PAGE_MASK);
> -	base_paddr =3D __pa(oaddr & IO_PAGE_MASK);
>  	if (strbuf->strbuf_enabled)
>  		iopte_protection =3D IOPTE_STREAMING(ctx);
>  	else
> @@ -304,8 +312,8 @@ static dma_addr_t dma_4u_map_page(struct device *dev,=
 struct page *page,
>  	if (direction !=3D DMA_TO_DEVICE)
>  		iopte_protection |=3D IOPTE_WRITE;
> =20
> -	for (i =3D 0; i < npages; i++, base++, base_paddr +=3D IO_PAGE_SIZE)
> -		iopte_val(*base) =3D iopte_protection | base_paddr;
> +	for (i =3D 0; i < npages; i++, base++, phys +=3D IO_PAGE_SIZE)
> +		iopte_val(*base) =3D iopte_protection | phys;
> =20
>  	return ret;
> =20
> @@ -383,7 +391,7 @@ static void strbuf_flush(struct strbuf *strbuf, struc=
t iommu *iommu,
>  		       vaddr, ctx, npages);
>  }
> =20
> -static void dma_4u_unmap_page(struct device *dev, dma_addr_t bus_addr,
> +static void dma_4u_unmap_phys(struct device *dev, dma_addr_t bus_addr,
>  			      size_t sz, enum dma_data_direction direction,
>  			      unsigned long attrs)
>  {
> @@ -753,8 +761,8 @@ static int dma_4u_supported(struct device *dev, u64 d=
evice_mask)
>  static const struct dma_map_ops sun4u_dma_ops =3D {
>  	.alloc			=3D dma_4u_alloc_coherent,
>  	.free			=3D dma_4u_free_coherent,
> -	.map_page		=3D dma_4u_map_page,
> -	.unmap_page		=3D dma_4u_unmap_page,
> +	.map_phys		=3D dma_4u_map_phys,
> +	.unmap_phys		=3D dma_4u_unmap_phys,
>  	.map_sg			=3D dma_4u_map_sg,
>  	.unmap_sg		=3D dma_4u_unmap_sg,
>  	.sync_single_for_cpu	=3D dma_4u_sync_single_for_cpu,
> diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.=
c
> index b720b21ccfbd..791f0a76665f 100644
> --- a/arch/sparc/kernel/pci_sun4v.c
> +++ b/arch/sparc/kernel/pci_sun4v.c
> @@ -352,9 +352,8 @@ static void dma_4v_free_coherent(struct device *dev, =
size_t size, void *cpu,
>  		free_pages((unsigned long)cpu, order);
>  }
> =20
> -static dma_addr_t dma_4v_map_page(struct device *dev, struct page *page,
> -				  unsigned long offset, size_t sz,
> -				  enum dma_data_direction direction,
> +static dma_addr_t dma_4v_map_phys(struct device *dev, phys_addr_t phys,
> +				  size_t sz, enum dma_data_direction direction,
>  				  unsigned long attrs)
>  {
>  	struct iommu *iommu;
> @@ -362,18 +361,27 @@ static dma_addr_t dma_4v_map_page(struct device *de=
v, struct page *page,
>  	struct iommu_map_table *tbl;
>  	u64 mask;
>  	unsigned long flags, npages, oaddr;
> -	unsigned long i, base_paddr;
> -	unsigned long prot;
> +	unsigned long i, prot;
>  	dma_addr_t bus_addr, ret;
>  	long entry;
> =20
> +	if (unlikely(attrs & DMA_ATTR_MMIO))
> +		/*
> +		 * This check is included because older versions of the code
> +		 * lacked MMIO path support, and my ability to test this path
> +		 * is limited. However, from a software technical standpoint,
> +		 * there is no restriction, as the following code operates
> +		 * solely on physical addresses.
> +		 */
> +		goto bad;
> +
>  	iommu =3D dev->archdata.iommu;
>  	atu =3D iommu->atu;
> =20
>  	if (unlikely(direction =3D=3D DMA_NONE))
>  		goto bad;
> =20
> -	oaddr =3D (unsigned long)(page_address(page) + offset);
> +	oaddr =3D (unsigned long)(phys_to_virt(phys));
>  	npages =3D IO_PAGE_ALIGN(oaddr + sz) - (oaddr & IO_PAGE_MASK);
>  	npages >>=3D IO_PAGE_SHIFT;
> =20
> @@ -391,7 +399,6 @@ static dma_addr_t dma_4v_map_page(struct device *dev,=
 struct page *page,
> =20
>  	bus_addr =3D (tbl->table_map_base + (entry << IO_PAGE_SHIFT));
>  	ret =3D bus_addr | (oaddr & ~IO_PAGE_MASK);
> -	base_paddr =3D __pa(oaddr & IO_PAGE_MASK);
>  	prot =3D HV_PCI_MAP_ATTR_READ;
>  	if (direction !=3D DMA_TO_DEVICE)
>  		prot |=3D HV_PCI_MAP_ATTR_WRITE;
> @@ -403,8 +410,8 @@ static dma_addr_t dma_4v_map_page(struct device *dev,=
 struct page *page,
> =20
>  	iommu_batch_start(dev, prot, entry);
> =20
> -	for (i =3D 0; i < npages; i++, base_paddr +=3D IO_PAGE_SIZE) {
> -		long err =3D iommu_batch_add(base_paddr, mask);
> +	for (i =3D 0; i < npages; i++, phys +=3D IO_PAGE_SIZE) {
> +		long err =3D iommu_batch_add(phys, mask);
>  		if (unlikely(err < 0L))
>  			goto iommu_map_fail;
>  	}
> @@ -426,7 +433,7 @@ static dma_addr_t dma_4v_map_page(struct device *dev,=
 struct page *page,
>  	return DMA_MAPPING_ERROR;
>  }
> =20
> -static void dma_4v_unmap_page(struct device *dev, dma_addr_t bus_addr,
> +static void dma_4v_unmap_phys(struct device *dev, dma_addr_t bus_addr,
>  			      size_t sz, enum dma_data_direction direction,
>  			      unsigned long attrs)
>  {
> @@ -686,8 +693,8 @@ static int dma_4v_supported(struct device *dev, u64 d=
evice_mask)
>  static const struct dma_map_ops sun4v_dma_ops =3D {
>  	.alloc				=3D dma_4v_alloc_coherent,
>  	.free				=3D dma_4v_free_coherent,
> -	.map_page			=3D dma_4v_map_page,
> -	.unmap_page			=3D dma_4v_unmap_page,
> +	.map_phys			=3D dma_4v_map_phys,
> +	.unmap_phys			=3D dma_4v_unmap_phys,
>  	.map_sg				=3D dma_4v_map_sg,
>  	.unmap_sg			=3D dma_4v_unmap_sg,
>  	.dma_supported			=3D dma_4v_supported,
> diff --git a/arch/sparc/mm/io-unit.c b/arch/sparc/mm/io-unit.c
> index d8376f61b4d0..d409cb450de4 100644
> --- a/arch/sparc/mm/io-unit.c
> +++ b/arch/sparc/mm/io-unit.c
> @@ -94,13 +94,14 @@ static int __init iounit_init(void)
>  subsys_initcall(iounit_init);
> =20
>  /* One has to hold iounit->lock to call this */
> -static unsigned long iounit_get_area(struct iounit_struct *iounit, unsig=
ned long vaddr, int size)
> +static dma_addr_t iounit_get_area(struct iounit_struct *iounit,
> +				  phys_addr_t phys, int size)
>  {
>  	int i, j, k, npages;
>  	unsigned long rotor, scan, limit;
>  	iopte_t iopte;
> =20
> -        npages =3D ((vaddr & ~PAGE_MASK) + size + (PAGE_SIZE-1)) >> PAGE=
_SHIFT;
> +	npages =3D (offset_in_page(phys) + size + (PAGE_SIZE - 1)) >> PAGE_SHIF=
T;
> =20
>  	/* A tiny bit of magic ingredience :) */
>  	switch (npages) {
> @@ -109,7 +110,7 @@ static unsigned long iounit_get_area(struct iounit_st=
ruct *iounit, unsigned long
>  	default: i =3D 0x0213; break;
>  	}
>  =09
> -	IOD(("iounit_get_area(%08lx,%d[%d])=3D", vaddr, size, npages));
> +	IOD(("%s(%pa,%d[%d])=3D", __func__, &phys, size, npages));
>  =09
>  next:	j =3D (i & 15);
>  	rotor =3D iounit->rotor[j - 1];
> @@ -124,7 +125,8 @@ nexti:	scan =3D find_next_zero_bit(iounit->bmap, limi=
t, scan);
>  		}
>  		i >>=3D 4;
>  		if (!(i & 15))
> -			panic("iounit_get_area: Couldn't find free iopte slots for (%08lx,%d)=
\n", vaddr, size);
> +			panic("iounit_get_area: Couldn't find free iopte slots for (%pa,%d)\n=
",
> +			      &phys, size);
>  		goto next;
>  	}
>  	for (k =3D 1, scan++; k < npages; k++)
> @@ -132,30 +134,29 @@ nexti:	scan =3D find_next_zero_bit(iounit->bmap, li=
mit, scan);
>  			goto nexti;
>  	iounit->rotor[j - 1] =3D (scan < limit) ? scan : iounit->limit[j - 1];
>  	scan -=3D npages;
> -	iopte =3D MKIOPTE(__pa(vaddr & PAGE_MASK));
> -	vaddr =3D IOUNIT_DMA_BASE + (scan << PAGE_SHIFT) + (vaddr & ~PAGE_MASK)=
;
> +	iopte =3D MKIOPTE(phys & PAGE_MASK);
> +	phys =3D IOUNIT_DMA_BASE + (scan << PAGE_SHIFT) + offset_in_page(phys);
>  	for (k =3D 0; k < npages; k++, iopte =3D __iopte(iopte_val(iopte) + 0x1=
00), scan++) {
>  		set_bit(scan, iounit->bmap);
>  		sbus_writel(iopte_val(iopte), &iounit->page_table[scan]);
>  	}
> -	IOD(("%08lx\n", vaddr));
> -	return vaddr;
> +	IOD(("%pa\n", &phys));
> +	return phys;
>  }
> =20
> -static dma_addr_t iounit_map_page(struct device *dev, struct page *page,
> -		unsigned long offset, size_t len, enum dma_data_direction dir,
> -		unsigned long attrs)
> +static dma_addr_t iounit_map_phys(struct device *dev, phys_addr_t phys,
> +		size_t len, enum dma_data_direction dir, unsigned long attrs)
>  {
> -	void *vaddr =3D page_address(page) + offset;
>  	struct iounit_struct *iounit =3D dev->archdata.iommu;
> -	unsigned long ret, flags;
> +	unsigned long flags;
> +	dma_addr_t ret;
>  =09
>  	/* XXX So what is maxphys for us and how do drivers know it? */
>  	if (!len || len > 256 * 1024)
>  		return DMA_MAPPING_ERROR;
> =20
>  	spin_lock_irqsave(&iounit->lock, flags);
> -	ret =3D iounit_get_area(iounit, (unsigned long)vaddr, len);
> +	ret =3D iounit_get_area(iounit, phys, len);
>  	spin_unlock_irqrestore(&iounit->lock, flags);
>  	return ret;
>  }
> @@ -171,14 +172,15 @@ static int iounit_map_sg(struct device *dev, struct=
 scatterlist *sgl, int nents,
>  	/* FIXME: Cache some resolved pages - often several sg entries are to t=
he same page */
>  	spin_lock_irqsave(&iounit->lock, flags);
>  	for_each_sg(sgl, sg, nents, i) {
> -		sg->dma_address =3D iounit_get_area(iounit, (unsigned long) sg_virt(sg=
), sg->length);
> +		sg->dma_address =3D
> +			iounit_get_area(iounit, sg_phys(sg), sg->length);
>  		sg->dma_length =3D sg->length;
>  	}
>  	spin_unlock_irqrestore(&iounit->lock, flags);
>  	return nents;
>  }
> =20
> -static void iounit_unmap_page(struct device *dev, dma_addr_t vaddr, size=
_t len,
> +static void iounit_unmap_phys(struct device *dev, dma_addr_t vaddr, size=
_t len,
>  		enum dma_data_direction dir, unsigned long attrs)
>  {
>  	struct iounit_struct *iounit =3D dev->archdata.iommu;
> @@ -279,8 +281,8 @@ static const struct dma_map_ops iounit_dma_ops =3D {
>  	.alloc			=3D iounit_alloc,
>  	.free			=3D iounit_free,
>  #endif
> -	.map_page		=3D iounit_map_page,
> -	.unmap_page		=3D iounit_unmap_page,
> +	.map_phys		=3D iounit_map_phys,
> +	.unmap_phys		=3D iounit_unmap_phys,
>  	.map_sg			=3D iounit_map_sg,
>  	.unmap_sg		=3D iounit_unmap_sg,
>  };
> diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c
> index 5a5080db800f..f48adf62724a 100644
> --- a/arch/sparc/mm/iommu.c
> +++ b/arch/sparc/mm/iommu.c
> @@ -181,18 +181,20 @@ static void iommu_flush_iotlb(iopte_t *iopte, unsig=
ned int niopte)
>  	}
>  }
> =20
> -static dma_addr_t __sbus_iommu_map_page(struct device *dev, struct page =
*page,
> -		unsigned long offset, size_t len, bool per_page_flush)
> +static dma_addr_t __sbus_iommu_map_phys(struct device *dev, phys_addr_t =
paddr,
> +		size_t len, bool per_page_flush, unsigned long attrs)
>  {
>  	struct iommu_struct *iommu =3D dev->archdata.iommu;
> -	phys_addr_t paddr =3D page_to_phys(page) + offset;
> -	unsigned long off =3D paddr & ~PAGE_MASK;
> +	unsigned long off =3D offset_in_page(paddr);
>  	unsigned long npages =3D (off + len + PAGE_SIZE - 1) >> PAGE_SHIFT;
>  	unsigned long pfn =3D __phys_to_pfn(paddr);
>  	unsigned int busa, busa0;
>  	iopte_t *iopte, *iopte0;
>  	int ioptex, i;
> =20
> +	if (unlikely(attrs & DMA_ATTR_MMIO))
> +		return DMA_MAPPING_ERROR;
> +
>  	/* XXX So what is maxphys for us and how do drivers know it? */
>  	if (!len || len > 256 * 1024)
>  		return DMA_MAPPING_ERROR;
> @@ -202,10 +204,10 @@ static dma_addr_t __sbus_iommu_map_page(struct devi=
ce *dev, struct page *page,
>  	 * XXX Is this a good assumption?
>  	 * XXX What if someone else unmaps it here and races us?
>  	 */
> -	if (per_page_flush && !PageHighMem(page)) {
> +	if (per_page_flush && !PhysHighMem(paddr)) {
>  		unsigned long vaddr, p;
> =20
> -		vaddr =3D (unsigned long)page_address(page) + offset;
> +		vaddr =3D (unsigned long)phys_to_virt(paddr);
>  		for (p =3D vaddr & PAGE_MASK; p < vaddr + len; p +=3D PAGE_SIZE)
>  			flush_page_for_dma(p);
>  	}
> @@ -231,19 +233,19 @@ static dma_addr_t __sbus_iommu_map_page(struct devi=
ce *dev, struct page *page,
>  	return busa0 + off;
>  }
> =20
> -static dma_addr_t sbus_iommu_map_page_gflush(struct device *dev,
> -		struct page *page, unsigned long offset, size_t len,
> -		enum dma_data_direction dir, unsigned long attrs)
> +static dma_addr_t sbus_iommu_map_phys_gflush(struct device *dev,
> +		phys_addr_t phys, size_t len, enum dma_data_direction dir,
> +		unsigned long attrs)
>  {
>  	flush_page_for_dma(0);
> -	return __sbus_iommu_map_page(dev, page, offset, len, false);
> +	return __sbus_iommu_map_phys(dev, phys, len, false, attrs);
>  }
> =20
> -static dma_addr_t sbus_iommu_map_page_pflush(struct device *dev,
> -		struct page *page, unsigned long offset, size_t len,
> -		enum dma_data_direction dir, unsigned long attrs)
> +static dma_addr_t sbus_iommu_map_phys_pflush(struct device *dev,
> +		phys_addr_t phys, size_t len, enum dma_data_direction dir,
> +		unsigned long attrs)
>  {
> -	return __sbus_iommu_map_page(dev, page, offset, len, true);
> +	return __sbus_iommu_map_phys(dev, phys, len, true, attrs);
>  }
> =20
>  static int __sbus_iommu_map_sg(struct device *dev, struct scatterlist *s=
gl,
> @@ -254,8 +256,8 @@ static int __sbus_iommu_map_sg(struct device *dev, st=
ruct scatterlist *sgl,
>  	int j;
> =20
>  	for_each_sg(sgl, sg, nents, j) {
> -		sg->dma_address =3D__sbus_iommu_map_page(dev, sg_page(sg),
> -				sg->offset, sg->length, per_page_flush);
> +		sg->dma_address =3D __sbus_iommu_map_phys(dev, sg_phys(sg),
> +				sg->length, per_page_flush, attrs);
>  		if (sg->dma_address =3D=3D DMA_MAPPING_ERROR)
>  			return -EIO;
>  		sg->dma_length =3D sg->length;
> @@ -277,7 +279,7 @@ static int sbus_iommu_map_sg_pflush(struct device *de=
v, struct scatterlist *sgl,
>  	return __sbus_iommu_map_sg(dev, sgl, nents, dir, attrs, true);
>  }
> =20
> -static void sbus_iommu_unmap_page(struct device *dev, dma_addr_t dma_add=
r,
> +static void sbus_iommu_unmap_phys(struct device *dev, dma_addr_t dma_add=
r,
>  		size_t len, enum dma_data_direction dir, unsigned long attrs)
>  {
>  	struct iommu_struct *iommu =3D dev->archdata.iommu;
> @@ -303,7 +305,7 @@ static void sbus_iommu_unmap_sg(struct device *dev, s=
truct scatterlist *sgl,
>  	int i;
> =20
>  	for_each_sg(sgl, sg, nents, i) {
> -		sbus_iommu_unmap_page(dev, sg->dma_address, sg->length, dir,
> +		sbus_iommu_unmap_phys(dev, sg->dma_address, sg->length, dir,
>  				attrs);
>  		sg->dma_address =3D 0x21212121;
>  	}
> @@ -426,8 +428,8 @@ static const struct dma_map_ops sbus_iommu_dma_gflush=
_ops =3D {
>  	.alloc			=3D sbus_iommu_alloc,
>  	.free			=3D sbus_iommu_free,
>  #endif
> -	.map_page		=3D sbus_iommu_map_page_gflush,
> -	.unmap_page		=3D sbus_iommu_unmap_page,
> +	.map_phys		=3D sbus_iommu_map_phys_gflush,
> +	.unmap_phys		=3D sbus_iommu_unmap_phys,
>  	.map_sg			=3D sbus_iommu_map_sg_gflush,
>  	.unmap_sg		=3D sbus_iommu_unmap_sg,
>  };
> @@ -437,8 +439,8 @@ static const struct dma_map_ops sbus_iommu_dma_pflush=
_ops =3D {
>  	.alloc			=3D sbus_iommu_alloc,
>  	.free			=3D sbus_iommu_free,
>  #endif
> -	.map_page		=3D sbus_iommu_map_page_pflush,
> -	.unmap_page		=3D sbus_iommu_unmap_page,
> +	.map_phys		=3D sbus_iommu_map_phys_pflush,
> +	.unmap_phys		=3D sbus_iommu_unmap_phys,
>  	.map_sg			=3D sbus_iommu_map_sg_pflush,
>  	.unmap_sg		=3D sbus_iommu_unmap_sg,
>  };

This change has just been reported to cause a regression with the igb
driver on some SPARC server systems:

Feb 16 15:20:22 sparcy kernel: igb 0000:0c:00.0 enp12s0f0: igb: enp12s0f0 N=
IC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX=20
Feb 16 15:20:23 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
00000000a7d:1:2736c000] failed with status 8=20
Feb 16 15:20:23 sparcy kernel: igb 0000:0c:00.0: TX DMA map failed=20
Feb 16 15:20:23 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
00000000a7e:1:2736c000] failed with status 8=20
Feb 16 15:20:23 sparcy kernel: igb 0000:0c:00.0: TX DMA map failed=20
Feb 16 15:20:23 sparcy kernel: igb 0000:0c:00.1 enp12s0f1: igb: enp12s0f1 N=
IC Link is Up 100 Mbps Full Duplex, Flow Control: RX=20
Feb 16 15:20:23 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
000001c02af:1:2736e000] failed with status 8=20
Feb 16 15:20:23 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
0000038009f:1:27390000] failed with status 8=20
Feb 16 15:20:23 sparcy kernel: igb 0000:0c:00.1: TX DMA map failed=20
Feb 16 15:20:23 sparcy last message buffered 1 times=20
Feb 16 15:20:23 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
000001c02b1:1:2736e000] failed with status 8=20
Feb 16 15:20:23 sparcy kernel: igb 0000:0c:00.0: TX DMA map failed=20
Feb 16 15:20:24 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
00000000a80:1:2736c000] failed with status 8=20
Feb 16 15:20:24 sparcy kernel: igb 0000:0c:00.0: TX DMA map failed=20
Feb 16 15:20:24 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
00000000a81:1:2736c000] failed with status 8=20
Feb 16 15:20:24 sparcy kernel: igb 0000:0c:00.0: TX DMA map failed=20
Feb 16 15:20:24 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
00000200000:1:2738e000] failed with status 8=20
Feb 16 15:20:24 sparcy kernel: igb 0000:0c:00.1: TX DMA map failed=20
Feb 16 15:20:24 sparcy kernel: iommu_batch_flush: ATU map of [00000400:2:10=
00000000a82:1:2736c000] failed with status 8=20
Feb 16 15:20:24 sparcy kernel: igb 0000:0c:00.1: TX DMA map failed

Please see also the discussion in [1].

Adrian

> [1] https://github.com/sparclinux/issues/issues/75

--=20
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 12:56:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 12:56:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234963.1538027 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsKch-0004y4-1A; Tue, 17 Feb 2026 12:56:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234963.1538027; Tue, 17 Feb 2026 12: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 1vsKcg-0004xx-T2; Tue, 17 Feb 2026 12:56:14 +0000
Received: by outflank-mailman (input) for mailman id 1234963;
 Tue, 17 Feb 2026 12:56: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=mba9=AV=samsung.com=m.szyprowski@srs-se1.protection.inumbo.net>)
 id 1vsKcf-0004xm-AS
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 12:56:14 +0000
Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com
 [210.118.77.11]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 02e53af7-0c00-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 13:56:03 +0100 (CET)
Received: from eucas1p2.samsung.com (unknown [182.198.249.207])
 by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id
 20260217125600euoutp01e702ba17a82df7a26cb54abe09518e80~VCfFtKJNi2750327503euoutp01K;
 Tue, 17 Feb 2026 12:56:00 +0000 (GMT)
Received: from eusmtip1.samsung.com (unknown [203.254.199.221]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTPA id
 20260217125600eucas1p2f5a7aaf272ec1e8419eb4f30114ae4c0~VCfFifkBN0465704657eucas1p2k;
 Tue, 17 Feb 2026 12:56:00 +0000 (GMT)
Received: from [106.210.134.192] (unknown [106.210.134.192]) by
 eusmtip1.samsung.com (KnoxPortal) with ESMTPA id
 20260217125557eusmtip157747204999f9293afbbfbea0aadd349~VCfCuB9mO1169311693eusmtip1R;
 Tue, 17 Feb 2026 12:55:57 +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: 02e53af7-0c00-11f1-b164-2bf370ae4941
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20260217125600euoutp01e702ba17a82df7a26cb54abe09518e80~VCfFtKJNi2750327503euoutp01K
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
	s=mail20170921; t=1771332961;
	bh=kPHvBI1Pan3M4iaidTIFZnbtqSz3AZ7jPYAHqyBo5u8=;
	h=Date:Subject:To:Cc:From:In-Reply-To:References:From;
	b=qE2Na2wFoGobnNwByWm49yVZUxp6ZyqvGOKUcTxQmO/J9J6nwYoOSde40k3tzupbf
	 5drCH58ib86rmTAuEFK3Dh2gBz0w2T0sLKmgAdsu5bu3cX1d1C762Ho+VBd2ZtAcrr
	 Rpa2eUVwXatWI/hNEoqzx/baF+s1uCvrB4JykOMY=
Message-ID: <7131d609-b083-4264-818a-21de38c1c3ed@samsung.com>
Date: Tue, 17 Feb 2026 13:55:56 +0100
MIME-Version: 1.0
User-Agent: Betterbird (Windows)
Subject: Re: [PATCH v5 11/14] sparc: Use physical address DMA mapping
To: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>, Leon
	Romanovsky <leon@kernel.org>, Robin Murphy <robin.murphy@arm.com>, Russell
	King <linux@armlinux.org.uk>, Juergen Gross <jgross@suse.com>, Stefano
	Stabellini <sstabellini@kernel.org>, Oleksandr Tyshchenko
	<oleksandr_tyshchenko@epam.com>, Richard Henderson
	<richard.henderson@linaro.org>, Matt Turner <mattst88@gmail.com>, Thomas
	Bogendoerfer <tsbogend@alpha.franken.de>, "James E.J. Bottomley"
	<James.Bottomley@HansenPartnership.com>, Helge Deller <deller@gmx.de>,
	Madhavan Srinivasan <maddy@linux.ibm.com>, Michael Ellerman
	<mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, Christophe Leroy
	<christophe.leroy@csgroup.eu>, Geoff Levand <geoff@infradead.org>, "David S.
 Miller" <davem@davemloft.net>, Andreas Larsson <andreas@gaisler.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>
Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, xen-devel@lists.xenproject.org,
	linux-alpha@vger.kernel.org, linux-mips@vger.kernel.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, sparclinux
	<sparclinux@vger.kernel.org>
Content-Language: en-US
From: Marek Szyprowski <m.szyprowski@samsung.com>
In-Reply-To: <e294484787a5032c531dcd40071b22362bddcad4.camel@physik.fu-berlin.de>
Content-Transfer-Encoding: 8bit
X-CMS-MailID: 20260217125600eucas1p2f5a7aaf272ec1e8419eb4f30114ae4c0
X-Msg-Generator: CA
Content-Type: text/plain; charset="utf-8"
X-RootMTR: 20260217123216eucas1p2d74189a3cdf08e9301bebf1840491364
X-EPHeader: CA
X-CMS-RootMailID: 20260217123216eucas1p2d74189a3cdf08e9301bebf1840491364
References: <20251015-remove-map-page-v5-0-3bbfe3a25cdf@kernel.org>
	<20251015-remove-map-page-v5-11-3bbfe3a25cdf@kernel.org>
	<CGME20260217123216eucas1p2d74189a3cdf08e9301bebf1840491364@eucas1p2.samsung.com>
	<e294484787a5032c531dcd40071b22362bddcad4.camel@physik.fu-berlin.de>

On 17.02.2026 13:27, John Paul Adrian Glaubitz wrote:
> On Wed, 2025-10-15 at 12:12 +0300, Leon Romanovsky wrote:
>> From: Leon Romanovsky <leonro@nvidia.com>
>>
>> Convert sparc architecture DMA code to use .map_phys callback.
>>
>> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
>> ---
>>   arch/sparc/kernel/iommu.c     | 30 +++++++++++++++++-----------
>>   arch/sparc/kernel/pci_sun4v.c | 31 ++++++++++++++++++-----------
>>   arch/sparc/mm/io-unit.c       | 38 ++++++++++++++++++-----------------
>>   arch/sparc/mm/iommu.c         | 46 ++++++++++++++++++++++---------------------
>>   4 files changed, 82 insertions(+), 63 deletions(-)
>>
>> diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
>> index da0363692528..46ef88bc9c26 100644
>> --- a/arch/sparc/kernel/iommu.c
>> +++ b/arch/sparc/kernel/iommu.c
>> @@ -260,26 +260,35 @@ static void dma_4u_free_coherent(struct device *dev, size_t size,
>>   		free_pages((unsigned long)cpu, order);
>>   }
>>   
>> -static dma_addr_t dma_4u_map_page(struct device *dev, struct page *page,
>> -				  unsigned long offset, size_t sz,
>> -				  enum dma_data_direction direction,
>> +static dma_addr_t dma_4u_map_phys(struct device *dev, phys_addr_t phys,
>> +				  size_t sz, enum dma_data_direction direction,
>>   				  unsigned long attrs)
>>   {
>>   	struct iommu *iommu;
>>   	struct strbuf *strbuf;
>>   	iopte_t *base;
>>   	unsigned long flags, npages, oaddr;
>> -	unsigned long i, base_paddr, ctx;
>> +	unsigned long i, ctx;
>>   	u32 bus_addr, ret;
>>   	unsigned long iopte_protection;
>>   
>> +	if (unlikely(attrs & DMA_ATTR_MMIO))
>> +		/*
>> +		 * This check is included because older versions of the code
>> +		 * lacked MMIO path support, and my ability to test this path
>> +		 * is limited. However, from a software technical standpoint,
>> +		 * there is no restriction, as the following code operates
>> +		 * solely on physical addresses.
>> +		 */
>> +		goto bad_no_ctx;
>> +
>>   	iommu = dev->archdata.iommu;
>>   	strbuf = dev->archdata.stc;
>>   
>>   	if (unlikely(direction == DMA_NONE))
>>   		goto bad_no_ctx;
>>   
>> -	oaddr = (unsigned long)(page_address(page) + offset);
>> +	oaddr = (unsigned long)(phys_to_virt(phys));
>>   	npages = IO_PAGE_ALIGN(oaddr + sz) - (oaddr & IO_PAGE_MASK);
>>   	npages >>= IO_PAGE_SHIFT;
>>   
>> @@ -296,7 +305,6 @@ static dma_addr_t dma_4u_map_page(struct device *dev, struct page *page,
>>   	bus_addr = (iommu->tbl.table_map_base +
>>   		    ((base - iommu->page_table) << IO_PAGE_SHIFT));
>>   	ret = bus_addr | (oaddr & ~IO_PAGE_MASK);
>> -	base_paddr = __pa(oaddr & IO_PAGE_MASK);
>>   	if (strbuf->strbuf_enabled)
>>   		iopte_protection = IOPTE_STREAMING(ctx);
>>   	else
>> @@ -304,8 +312,8 @@ static dma_addr_t dma_4u_map_page(struct device *dev, struct page *page,
>>   	if (direction != DMA_TO_DEVICE)
>>   		iopte_protection |= IOPTE_WRITE;
>>   
>> -	for (i = 0; i < npages; i++, base++, base_paddr += IO_PAGE_SIZE)
>> -		iopte_val(*base) = iopte_protection | base_paddr;
>> +	for (i = 0; i < npages; i++, base++, phys += IO_PAGE_SIZE)
>> +		iopte_val(*base) = iopte_protection | phys;

'base_paddr' was aligned to start of a page before this patch, while 
'phys' includes the offset within a page.


Could You check if the following change fixes the issue?

diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
index 46ef88bc9c26..edb0ffb21e2f 100644
--- a/arch/sparc/kernel/iommu.c
+++ b/arch/sparc/kernel/iommu.c
@@ -312,6 +312,7 @@ static dma_addr_t dma_4u_map_phys(struct device 
*dev, phys_addr_t phys,
         if (direction != DMA_TO_DEVICE)
                 iopte_protection |= IOPTE_WRITE;

+       phys -= offset_in_page(phys);
         for (i = 0; i < npages; i++, base++, phys += IO_PAGE_SIZE)
                 iopte_val(*base) = iopte_protection | phys;

 >> ...

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 12:57:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 12:57:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234973.1538036 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsKda-0005Tz-B9; Tue, 17 Feb 2026 12:57:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234973.1538036; Tue, 17 Feb 2026 12: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 1vsKda-0005Ts-8P; Tue, 17 Feb 2026 12:57:10 +0000
Received: by outflank-mailman (input) for mailman id 1234973;
 Tue, 17 Feb 2026 12:57: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsKdY-0005Tk-Qg
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 12:57:08 +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 2a456d3f-0c00-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 13:57:07 +0100 (CET)
Received: by mail-ej1-x631.google.com with SMTP id
 a640c23a62f3a-b8fb6ad3243so568832166b.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 04:57:07 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8fc76c6b8bsm337379166b.65.2026.02.17.04.57.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 04:57:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2a456d3f-0c00-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771333027; x=1771937827; darn=lists.xenproject.org;
        h=content-transfer-encoding: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=l9Td0RwiqH7W+OFADA59hO79Au5U3pUL9PHcyzfrzqE=;
        b=WRJZ/dUNGD5iFcGkz3dUzrIB8jbkl+wMyg+RTCaz84sDjb27M6YvxiV0MHEubtDxu/
         RLN5jhtKSIC1ZMleLJCA07AfOmgd+XpClQsQhrMQuyq/FNrQuw8corQ4cvdpLKhVROMV
         ckYJuQgLrSEYwF2ZuHTTF86kfzJZ+7km3IURQqslOdUED6Wfqf2UaJK9AHRdoIviJLyq
         XyrZhm9B4VF0YO8EL0/4pyl2zuCe4/8XyDscdb6gPeZl9PfQOhUt9MwX2hvvKJoVkhvV
         H/051oGwm7YZlJnkA0aluQYccYMciyPwquTMGl91fIMqrUNX0S4paQkoVNtyMhRGg72+
         V9Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771333027; x=1771937827;
        h=content-transfer-encoding:in-reply-to:content-language:references
         :cc:to:subject:from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=l9Td0RwiqH7W+OFADA59hO79Au5U3pUL9PHcyzfrzqE=;
        b=EKP5/5h8yM/57LYLArGXz4T5MaUireHdCGBSkgObSYZP1Ws7qKkQJnEbmEVbceDBoj
         Y8tVyq4bQgZ52kktQzTIy4RwKPYwEMDYXZ+w637euJ4R4Izvgw2V+FoN9hFL8qisz6gK
         CBAZY2gZHhzYXtw2cZgidPIDGgBB0bJQu0TxiZwpzU+t0f9KfuF0Tsa4znlxx/lrGWuS
         +JYSGJPM3Twyxj01S0Fa7D4KMEkK+FyIdW5eHBdys3mknLBuuRagzBhjisg7xKRVxAGe
         0NvgcWkPuE7GtDnC9h+GirWSqT0XTGFB3PoRFh7Mdi/x1vPmrh3VoBiUSsIxpJNGVXXh
         eMcA==
X-Forwarded-Encrypted: i=1; AJvYcCUL3RVIjhdI9nCnY0T69emT/GHfzfEbeLiw6SU3LZfw/zRnYoLqOgcRb/7FM9jsU8E33UT93vpd5lc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwYXJU01PgJnl2D1obph9sCiYQWbn1zFWaTGTgl3iK0eY9vLHa/
	QiA1aSSDHqbLfMVNQfLeJHFfoq6aHnZnIVZrSU7hXYrigmKlVLzRVzPl
X-Gm-Gg: AZuq6aJdux84yz25N+We1IxX/ix0daaKt9TsePVmi0qJk9P1j/TZvi2hzCxtthrotv+
	46XMqeM6/FuZAYEtPc7S27r5dno0wmYc0nwdOm7efhk7v3QAxkS75pvKGx4Z3jMMbIEfOJIRb2E
	T7TuH6mN8YAH5NwG+fOkTO8g1akoKG1h2q6EGvZsirRK6E/O1e3cNP5HtivnzJ8hFE2AUekSu2x
	KoZkI7tS/kvruMXk9ru8Dg9NC33NEoiRbFKFE4jnLBDqJh961HCJh9O9BNF1+B9vKRogLlwaROE
	B3sEC0ib8klP6egW9zr9NfBd/gdYdNUAyEruNujZG4Y+pdRgtG0eq8JWydq9BalnLuQd7ilkW4V
	yPeSALHNMenknDy9lkZZZo5+gPoAFNvkpIhsRXqkgmocwDkTcgwuZW80Njt2wkL9g8a1mbHCKWI
	9WnIf+U9V77tw6S3iJnhoRuCy6ZHEPmnd3JdZZR2oIpJv53FrpTNIjOr/E6atbUWi4cAlOEsgie
	Xs=
X-Received: by 2002:a17:907:7253:b0:b8e:a143:3ae1 with SMTP id a640c23a62f3a-b8fb450a4e5mr778868366b.54.1771333026470;
        Tue, 17 Feb 2026 04:57:06 -0800 (PST)
Message-ID: <030dbe54-a2c8-4f54-ae3f-6a09762c25ef@gmail.com>
Date: Tue, 17 Feb 2026 13:57:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Re: [PATCH v4 01/16] xen/riscv: implement
 arch_vcpu_{create,destroy}()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <42534cb6aabf25cf551a13ae1288045e1ac08f9e.1770999383.git.oleksii.kurochko@gmail.com>
 <06208b1b-9107-4ae6-acbf-c69659354da4@suse.com>
Content-Language: en-US
In-Reply-To: <06208b1b-9107-4ae6-acbf-c69659354da4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/17/26 12:28 PM, Jan Beulich wrote:
> On 13.02.2026 17:28, Oleksii Kurochko wrote:
>> Introduce architecture-specific functions to create and destroy VCPUs.
>> Note that arch_vcpu_create() currently returns -EOPNOTSUPP, as the virtual
>> timer and interrupt controller are not yet implemented.
>>
>> Add calle-saved registers to struct arch_vcpu which are  used to preserve
>> Xen’s own execution context when switching between vCPU stacks.
>> It is going to be used in the following way (pseudocode):
>>    context_switch(prev_vcpu, next_vcpu):
>>      ...
>>
>>      /* Switch from previous stack to the next stack. */
>>      __context_switch(prev_vcpu, next_vcpu);
>>
>>      ...
>>      schedule_tail(prev_vcpu):
>>          Save and restore vCPU's CSRs.
>> The Xen-saved context allows __context_switch() to switch execution
>> from the previous vCPU’s stack to the next vCPU’s stack and later resume
>> execution on the original stack when switching back.
>>
>> During vCPU creation, the Xen-saved context is going to be initialized
>> with:
>>    - SP pointing to the newly allocated vCPU stack.
>>    - RA pointing to a helper that performs final vCPU setup before
>>      transferring control to the guest.
>>
>> As part of this change, add continue_new_vcpu(), which will be used after
>> the first context_switch() of a new vCPU. Since this functionality is not
>> yet implemented, continue_new_vcpu() is currently provided as a stub.
>> The prev argument is going to be set by RISC-V ABI (prev will be stored in
>> a0) when __context_swtich() will be introduced and called from
>> context_switch().
>>
>> Update the STACK_SIZE definition and introduce STACK_ORDER (to align with
>> other architectures) for allocating the vCPU stack.
> Yet you don't really need STACK_ORDER, as you use vzalloc() (unlike in
> particular Arm, but also x86). If there's no expected other use of the
> constant, I'd suggest to omit it, to avoid the false impression that
> RISC-V is like (again in particular) Arm in regards to how the stack is
> being allocated.

Yes, this is the only one usage of STACK_ORDER constant so it could be 
omitted.

>> --- /dev/null
>> +++ b/xen/arch/riscv/domain.c
>> @@ -0,0 +1,58 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +
>> +#include <xen/init.h>
>> +#include <xen/mm.h>
>> +#include <xen/sched.h>
>> +#include <xen/vmap.h>
>> +
>> +static void continue_new_vcpu(struct vcpu *prev)
>> +{
>> +    BUG_ON("unimplemented\n");
>> +}
>> +
>> +static void __init __maybe_unused build_assertions(void)
>> +{
>> +    /*
>> +     * Enforce the requirement documented in struct cpu_info that
>> +     * guest_cpu_user_regs must be the first field.
>> +     */
>> +    BUILD_BUG_ON(offsetof(struct cpu_info, guest_cpu_user_regs) != 0);
>> +}
> Nit: Generally we have this kind of function at the bottom of source files.
>
>> +int arch_vcpu_create(struct vcpu *v)
>> +{
>> +    int rc = 0;
>> +    void *stack = vzalloc(STACK_SIZE);
>> +
>> +    if ( !stack )
>> +        return -ENOMEM;
>> +
>> +    v->arch.cpu_info = stack + STACK_SIZE - sizeof(struct cpu_info);
> Perhaps better sizeof(*v->arch.cpu_info), to connect lhs and rhs?
>
>> +    v->arch.xen_saved_context.sp = (register_t)v->arch.cpu_info;
>> +    v->arch.xen_saved_context.ra = (register_t)continue_new_vcpu;
>> +
>> +    /* Idle VCPUs don't need the rest of this setup */
>> +    if ( is_idle_vcpu(v) )
>> +        return rc;
> I'd suggest "return 0" here to make clear it's a success path. Then
> possible uses of "rc" earlier in the function also won't affect this.
>
> With all of the adjustments (happy to carry out while committing, as long
> as you agree)
> Acked-by: Jan Beulich <jbeulich@suse.com>

I am okay with suggested adjustments.

Thanks a lot!

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 12:59:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 12:59:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234982.1538046 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsKfV-000686-Lw; Tue, 17 Feb 2026 12:59:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234982.1538046; Tue, 17 Feb 2026 12: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 1vsKfV-00067z-J4; Tue, 17 Feb 2026 12:59:09 +0000
Received: by outflank-mailman (input) for mailman id 1234982;
 Tue, 17 Feb 2026 12:59: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsKfT-00067t-M0
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 12:59:07 +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 6cf20670-0c00-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 13:58:59 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4837907f535so28973065e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 04:58:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5e11f5sm534954765e9.4.2026.02.17.04.58.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 04:58:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6cf20670-0c00-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771333139; x=1771937939; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/WCmpwbaJJgPAXucNE0zsL31kfnwk6q6vxi8Dnj5iHM=;
        b=GxmADRR1c9QdRCrVaX19yd5Ww3x9eA8gjoryfjzJ10ffmZB3XMTeMd3S1AcIwsPUiX
         lON1GSKqIxTWC+ozsVNrdy5m7D5JPw8Q1MxrFW3kNtfpCGN5f7WjOMdEKxYqnwmE1SoZ
         5H/mltY3W+xbk5PNAlClqkFlY4YN88Ad3Q65taHZ0M8AGeNFe8UJuz7H5wYRTNB0iy69
         KwxBInPAI6cPOZ7/uzjufnKXEBG4sEZX5bJPvhMQGBYtzNKcPEmL+I96Kgk4DYss+2P6
         LjKz392k9K76uJL/vGFv7t45YiE63d8EWTO7J/UQqqxpgrONCKILkEu9ut3CI90RsHC5
         /Yig==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771333139; x=1771937939;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/WCmpwbaJJgPAXucNE0zsL31kfnwk6q6vxi8Dnj5iHM=;
        b=LkK2oflEeSUI82KvdfrT7tMSEpF5gU1PuOCi+0k3kHchkmSM8vsI5aP05ngY83HIGS
         PdmH5ZfhfYP6ecDAuHCfKhdapuo/OJUJU9iz2A7jfwIruch8HJj6kp7JGi+5vlzMSgjx
         2JETxDiWm6b6LMYwB91DWo8MGiYmZM9/+GkxIgrw141zNzziyXfjBBmaSjgZiTX8FVSl
         YvlValG5QKjAuOLX9w27Hkp3WRGfounJ7G8KRFr0wJx+TuORjS3xCrFnkehfECkCv9IS
         sJzxyAvT2hEV4Pv047u6xWWTYJv/KDA3NLw84lzK+VjsJ5ZlmVOffYiuubER8GS26EQc
         baKg==
X-Gm-Message-State: AOJu0Yy5/rWzwLP5DkuNswH1RHqlT8DXAURZn2F7qloWyqxX+FBvxhoa
	XhsEOn0CI+BqKD9I6QkF28e6hdcML0ws3G/xXWRenIk3FNZzSDW8JFMa9DnwbB5qHw==
X-Gm-Gg: AZuq6aLITYeCAwg6nzhGs8WvTMPU773kMKYGxaIQ76Bro83ef+pOgqpSowv6Ucm6OMA
	ri/G/aSPUH6tbXQjsooBWTwNtrZ2VZORMWN2yPjtRfvN+nTkTuQYZ24iNGxeb1jN1NrLBr+n/r0
	UShEFt4Ryy1VjI8+wqKZsy1PCIC7eMUdQMJIyLAxjuMqQagbWbj3yN+DI8dVt4twDveM0JDlJ2S
	bxqgJXWgrzXg8qmZow7m4nQcSbhzLpc+5caYvXZJ1H1FPaNHXYu1up3r/b2nmtks/pahHQqvfQh
	ToK9130l8H5ZBCfHWthSNf0Vv/nypxYRjGPoDOQa8PbBCGOhV27Pm119J7elaVyqBMUIdI1/flQ
	ZezC/6mhV2JAIhhly/QGl9HmSP0Eynj1nBunJOuMS0wKHrInU+KIwfv7o5Fl4lzK8NwzWHd97MT
	3qIQ29OssRVj7Qe3IAIQBzmwbkQMalVqo5UIA8MHhP8errVYGHrbABNtwqWUEWUwW5MLqfhgB2s
	N/DGDBq9vegcoE=
X-Received: by 2002:a05:600c:310e:b0:480:4b5d:9ec with SMTP id 5b1f17b1804b1-48379bf4709mr209789985e9.33.1771333138712;
        Tue, 17 Feb 2026 04:58:58 -0800 (PST)
Message-ID: <753e14da-39e3-41d0-bbbc-0e10c9594b9f@suse.com>
Date: Tue, 17 Feb 2026 13:58:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] domain: skip more stuff for idle's vCPU-s in
 vcpu_create()
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>
References: <c0aef909-b294-40af-8d24-033b28450338@suse.com>
 <aZRLMePmm8ehD94H@Mac.lan> <a0e47cf7-91f0-471e-b6b8-6554f496190f@suse.com>
 <aZRVFVXYKzQmt3Q8@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: <aZRVFVXYKzQmt3Q8@Mac.lan>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.02.2026 12:46, Roger Pau Monné wrote:
> On Tue, Feb 17, 2026 at 12:17:35PM +0100, Jan Beulich wrote:
>> On 17.02.2026 12:04, Roger Pau Monné wrote:
>>> On Mon, Feb 16, 2026 at 04:54:30PM +0100, Jan Beulich wrote:
>>>> @@ -516,7 +516,8 @@ struct vcpu *vcpu_create(struct domain *
>>>>      }
>>>>  
>>>>      /* Must be called after making new vcpu visible to for_each_vcpu(). */
>>>> -    vcpu_check_shutdown(v);
>>>> +    if ( !is_idle_domain(d) )
>>>> +        vcpu_check_shutdown(v);
>>>
>>> I would possibly leave this as-is.  I agree that the idle domain will
>>> never shut down, but it's possibly best to needlessly call into
>>> vcpu_check_shutdown() for the idle domain rather than adding the extra
>>> conditional for the common case?
>>
>> I'd prefer to keep it conditional: Calling the function for the idle
>> domain gives a wrong impression, plus it may be the only one where the
>> shutdown lock is used for that domain. We may want to make lock init
>> conditional in domain_create() as well (possibly with other things we
>> needlessly do for idle or more generally system domains).
> 
> I've been thinking about this, and I'm not sure whether it's the best
> approach to avoid initializing locks or lists for the idle
> vCPUs/domain.
> 
> It's certainly good to avoid initializing stuff that consumes memory
> or other resources, but skipping plain initialization (iow: setting of
> values) of fields that are in the respective structs seems dangerous
> to a certain degree.  If for whatever reason we end up with stray
> calls from the idle vCPUs/domain into functions that use those fields
> it's likely safer to have them initialized, rather than tripping into
> some uninitialized pointer or deadlock trying to acquire and
> uninitiated lock.

Otoh without doing so it's pretty unlikely that we would spot such stray
calls. Which better would be avoided imo.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 13:02:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 13:02:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1234994.1538055 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsKit-0007ft-2d; Tue, 17 Feb 2026 13:02:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1234994.1538055; Tue, 17 Feb 2026 13:02:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsKit-0007fm-02; Tue, 17 Feb 2026 13:02:39 +0000
Received: by outflank-mailman (input) for mailman id 1234994;
 Tue, 17 Feb 2026 13:02: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsKis-0007fd-24
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 13:02:38 +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 ee9c9eb5-0c00-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 14:02:36 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-48069a48629so39370335e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 05:02:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483709f6935sm157418265e9.0.2026.02.17.05.02.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 05:02:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee9c9eb5-0c00-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771333356; x=1771938156; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/h526UBwW9faw93Hj1eca+q0/GZZ1lDUFEIvKb3Ew6U=;
        b=Mg3MbYymF2Dx8zP9BBF/3wvQ6rMUY9/4EJa85qzjOoJc7fsUoTKKrus7IUNTzIEZiW
         sIf09DrJi1zcL0RebXwp3lJBAwk1nxc0w6hrD93oVtkDBFsDUyYtE6rQ08x00RB4vgkT
         bPNoS/EKtu1oCS1m27xXNtuMYPLQFQxJU85CYR1cxWg52bt6Qw4VNg6pGuo8XTy0xDLi
         n2MDD7yrwWBuOY2aDVsMQ4s402F56caBSkHvAkgCLYvcgPnYEGhcf3HmIaVRHSA2gXHb
         h6z64lPT0WomE59aKgSx6njQ/niA7ivngM0HD1ygeHd0y7JTj4LKVMk3cIGubBO9eiiv
         BqNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771333356; x=1771938156;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/h526UBwW9faw93Hj1eca+q0/GZZ1lDUFEIvKb3Ew6U=;
        b=W8NRLuSOhkG6RWc37qDqcbkuICLvmesatugsOUszqW5KzhOI+VjqFGoDEgxDivcCbS
         wBAfFpIuuzXNbsFG1mg4DfeVe51EAefz3z0wMOZHmFa9+gbVa9JkVgWRcWTw0tfVsXFH
         QRe+AhmD6/Lw0AKfg5gWozcP6GFAKw8vRTRwF/LnVaHSV15uVhhp7wka6yK6e/dQZoyj
         PGdxbO44rK3AX5jiHXh0VVANouM2mJ3MTyLhBiX7mRmjR2TNlJsnMgQCuAfUJSOWLyI8
         ejiTri3fcN1vhq80mk0OjpA7jaCHbLV4BZJeLxmIF7xTbD+gmdyvbx9d+mPOtspHifTP
         47WA==
X-Forwarded-Encrypted: i=1; AJvYcCUnyrlUT6x87wj6StIzYO4FBwL20C80W7pQ1qVeGJ5oWaPLayvZBDJYy+HQyS/17UGum+7I0/EOg00=@lists.xenproject.org
X-Gm-Message-State: AOJu0YznFkQoXbGidmIYnND/57qaoUoJEfWkjPHfLjbpc7C0tfmg03cY
	3rqa+mQ0IIwO2mTCjMlD9grchQc0vNHzeiIt5Obd9s6Y7HUt4aBYle2Kd0KW5mgf6A==
X-Gm-Gg: AZuq6aJOb4EKaLRQ/HlifEZNzXZspfcObqSHdljOwys/AaU2vVLn44LWLA6WvuEHzTA
	uQt7/frOPCxq9wlPLDHuPrjQhsgASqZPe+RNHMoJaK5JcszSe7JSQDElLWKre1/BKDN6pEYju29
	KaJTOrsFh1SKUyK633IbG0KlNZfxYG31piLnmV9dcpDsKcL8dZllMBmqiWMfbopLEfNWii5MMlX
	ccff0oNYf70ci12Okl//Wa7ckMS7zcwh3uii9FTkhn53t+DwFsNUwU90WxgMm2uLLqAhsNH7+wP
	LPz4POQaRW45jjNaKRlItUgLD19GaSB3AOZvkuKWfWvlnJmcUTcNm+xqnwcWZa0A8c8u7Ty8uGp
	iaKXGzzwyJQsv771LsDXUvvFbQXjO2vuKuxkrEFD1MxdfVw0RcL9QTa2tHhBm67oql61OTfKA/P
	QKAZ/a1yj9Z5i5qxOIt7cgdMzx2tZ85b7HCS2tXjW4egv+jFj8m5c4DeNoAnaHdv8k6etm66oNS
	2e8i3S+0lI9q7n3oogmejHkRQ==
X-Received: by 2002:a05:600c:1986:b0:483:71f9:37ef with SMTP id 5b1f17b1804b1-483739ff8f5mr254827375e9.8.1771333356220;
        Tue, 17 Feb 2026 05:02:36 -0800 (PST)
Message-ID: <4253dd88-b408-43dc-90d3-f2d1d3c892b0@suse.com>
Date: Tue, 17 Feb 2026 14:02:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/6] xen/riscv: add zImage kernel loading support
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <308c5bc1de15b23c643d48f975799739f44dde8d.1770821989.git.oleksii.kurochko@gmail.com>
 <0bca8843-9c52-4544-88a6-87ddb110095e@suse.com>
 <f95c9cae-0d57-42bc-b435-3f29c54b67b9@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: <f95c9cae-0d57-42bc-b435-3f29c54b67b9@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.02.2026 12:58, Oleksii Kurochko wrote:
> On 2/16/26 5:31 PM, Jan Beulich wrote:
>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>> Introduce support for loading a Linux zImage kernel on RISC-V.
>> Before I look here in any detail - where would a zImage come from? I can't
>> spot any support for it in Linux'es arch/riscv/Makefile (whereas
>> arch/arm/Makefile has such).
> 
> Good point.
> 
> It is something that should be renamed as not Arm64 (Arm32 really has such
> target), not RISC-V doesn't really work with zImage. They are using Image plus
> Image.gz as compressed image.
> 
> Maybe it would be better to rename kernel_zimage_probe() to something more
> generic kernel_image_probe().

Well, it's two things. In the description you explicitly say zImage. That's
simply misleading. Renaming the function (if indeed it copes with more than
just zImage) would likely be a good thing too, but needs sorting with its
maintainers.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 13:15:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 13:15:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235010.1538074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsKvP-0001B6-87; Tue, 17 Feb 2026 13:15:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235010.1538074; Tue, 17 Feb 2026 13:15:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsKvP-0001Az-4R; Tue, 17 Feb 2026 13:15:35 +0000
Received: by outflank-mailman (input) for mailman id 1235010;
 Tue, 17 Feb 2026 13:15: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=4p7M=AV=kernel.org=leon@srs-se1.protection.inumbo.net>)
 id 1vsKvO-0001Ap-0Y
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 13:15:34 +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 bb7aebfa-0c02-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 14:15:31 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 43946406EF;
 Tue, 17 Feb 2026 13:15:29 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7BCD7C4CEF7;
 Tue, 17 Feb 2026 13:15: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: bb7aebfa-0c02-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771334129;
	bh=IFqWRnMOe90PHPZ6ogIhD60Li5AyK3EFhOC6WZ8V4S8=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
	b=F44Ix8zfCzwWI4AQs9GQP2t1ynVHWLNSCY3twBxZFDsxlSu/RfSxZcW9hg0L7WEMK
	 DVLz5necSLs8Vd9sUbcqNxHiXhSe1wgYUNVz9W3t3HjIlpnMvOSIidbsZRLiskWn68
	 xItdSgwjZ64haQEHc9AA+Car4oFuKE6jJy6K1oZ9qp0NfO17s8m5QhB5G3se54yqng
	 +Woyi/px6vIOOUpaq+Jzvi7e5oKdunoebhikfsFPd3HTxF9VWSvih4dM6ug2R8hcj/
	 MvelNqZrwI6p0ECzsvxqAg+vPD6IuKSVLKEs3YzKCjc2YZAO5l2Mn9P1+IofP43CvT
	 66YAmYLUGAOHw==
Date: Tue, 17 Feb 2026 15:15:25 +0200
From: Leon Romanovsky <leon@kernel.org>
To: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Robin Murphy <robin.murphy@arm.com>,
	Russell King <linux@armlinux.org.uk>,
	Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Matt Turner <mattst88@gmail.com>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Helge Deller <deller@gmx.de>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Geoff Levand <geoff@infradead.org>,
	"David S. Miller" <davem@davemloft.net>,
	Andreas Larsson <andreas@gaisler.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>, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	xen-devel@lists.xenproject.org, linux-alpha@vger.kernel.org,
	linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org,
	sparclinux <sparclinux@vger.kernel.org>
Subject: Re: [PATCH v5 11/14] sparc: Use physical address DMA mapping
Message-ID: <20260217131525.GK12989@unreal>
References: <20251015-remove-map-page-v5-0-3bbfe3a25cdf@kernel.org>
 <20251015-remove-map-page-v5-11-3bbfe3a25cdf@kernel.org>
 <CGME20260217123216eucas1p2d74189a3cdf08e9301bebf1840491364@eucas1p2.samsung.com>
 <e294484787a5032c531dcd40071b22362bddcad4.camel@physik.fu-berlin.de>
 <7131d609-b083-4264-818a-21de38c1c3ed@samsung.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <7131d609-b083-4264-818a-21de38c1c3ed@samsung.com>

On Tue, Feb 17, 2026 at 01:55:56PM +0100, Marek Szyprowski wrote:
> On 17.02.2026 13:27, John Paul Adrian Glaubitz wrote:
> > On Wed, 2025-10-15 at 12:12 +0300, Leon Romanovsky wrote:
> >> From: Leon Romanovsky <leonro@nvidia.com>
> >>
> >> Convert sparc architecture DMA code to use .map_phys callback.
> >>
> >> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> >> ---
> >>   arch/sparc/kernel/iommu.c     | 30 +++++++++++++++++-----------
> >>   arch/sparc/kernel/pci_sun4v.c | 31 ++++++++++++++++++-----------
> >>   arch/sparc/mm/io-unit.c       | 38 ++++++++++++++++++-----------------
> >>   arch/sparc/mm/iommu.c         | 46 ++++++++++++++++++++++---------------------
> >>   4 files changed, 82 insertions(+), 63 deletions(-)

<...>

> >> @@ -296,7 +305,6 @@ static dma_addr_t dma_4u_map_page(struct device *dev, struct page *page,
> >>   	bus_addr = (iommu->tbl.table_map_base +
> >>   		    ((base - iommu->page_table) << IO_PAGE_SHIFT));
> >>   	ret = bus_addr | (oaddr & ~IO_PAGE_MASK);
> >> -	base_paddr = __pa(oaddr & IO_PAGE_MASK);
> >>   	if (strbuf->strbuf_enabled)
> >>   		iopte_protection = IOPTE_STREAMING(ctx);
> >>   	else
> >> @@ -304,8 +312,8 @@ static dma_addr_t dma_4u_map_page(struct device *dev, struct page *page,
> >>   	if (direction != DMA_TO_DEVICE)
> >>   		iopte_protection |= IOPTE_WRITE;
> >>   
> >> -	for (i = 0; i < npages; i++, base++, base_paddr += IO_PAGE_SIZE)
> >> -		iopte_val(*base) = iopte_protection | base_paddr;
> >> +	for (i = 0; i < npages; i++, base++, phys += IO_PAGE_SIZE)
> >> +		iopte_val(*base) = iopte_protection | phys;
> 
> 'base_paddr' was aligned to start of a page before this patch, while 
> 'phys'includes the offset within a page.

Thanks for the fix. I had assumed we needed to revert all changes in
iounit_get_area().

Thanks

> 
> 
> Could You check if the following change fixes the issue?
> 
> diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
> index 46ef88bc9c26..edb0ffb21e2f 100644
> --- a/arch/sparc/kernel/iommu.c
> +++ b/arch/sparc/kernel/iommu.c
> @@ -312,6 +312,7 @@ static dma_addr_t dma_4u_map_phys(struct device 
> *dev, phys_addr_t phys,
>   if (direction != DMA_TO_DEVICE)
>   iopte_protection |= IOPTE_WRITE;
> 
> + phys -= offset_in_page(phys);
>   for (i = 0; i < npages; i++, base++, phys += IO_PAGE_SIZE)
>   iopte_val(*base) = iopte_protection | phys;
> 
>  >> ...
> 
> Best regards
> -- 
> Marek Szyprowski, PhD
> Samsung R&D Institute Poland
> 


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 13:58:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 13:58:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235048.1538084 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsLaT-0006ox-CW; Tue, 17 Feb 2026 13:58:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235048.1538084; Tue, 17 Feb 2026 13:58: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 1vsLaT-0006oq-9O; Tue, 17 Feb 2026 13:58:01 +0000
Received: by outflank-mailman (input) for mailman id 1235048;
 Tue, 17 Feb 2026 13:57: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=PabX=AV=zedat.fu-berlin.de=glaubitz@srs-se1.protection.inumbo.net>)
 id 1vsLaR-0006oi-RP
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 13:57:59 +0000
Received: from outpost1.zedat.fu-berlin.de (outpost1.zedat.fu-berlin.de
 [130.133.4.66]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8ed250e-0c08-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 14:57:56 +0100 (CET)
Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69])
 by outpost.zedat.fu-berlin.de (Exim 4.99) with esmtps (TLS1.3)
 tls TLS_AES_256_GCM_SHA384
 (envelope-from <glaubitz@zedat.fu-berlin.de>)
 id 1vsLa1-00000003Yoo-11bO; Tue, 17 Feb 2026 14:57:33 +0100
Received: from p5dc55f29.dip0.t-ipconnect.de ([93.197.95.41]
 helo=[192.168.178.61]) by inpost2.zedat.fu-berlin.de (Exim 4.99)
 with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384
 (envelope-from <glaubitz@physik.fu-berlin.de>)
 id 1vsLa0-00000002m9f-3s0R; Tue, 17 Feb 2026 14:57:33 +0100
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8ed250e-0c08-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
	d=fu-berlin.de; s=fub01; h=MIME-Version:Content-Transfer-Encoding:
	Content-Type:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID:From:
	Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:
	Content-Transfer-Encoding:Content-ID:Content-Description:In-Reply-To:
	References; bh=Pwz8t6PMdZ7Eyt0zG9XbbpQPro+70AXMQDf5xeeq3xY=; t=1771336676;
	x=1771941476; b=BTJfoUA5/Tssd/r89oNlyy+EYXq6gbr1AO+jgHGFHmuw4S1GS1dTscqK0jRoi
	ami5YzaozGjKFTpEYYz+1+ek8ythDO6BzyiAQ7yA7hZl+jHIBlkUgD6/bkzpFzhuLjDlhWfKif4QR
	g/FGh/ce0NFMJKEcbmQDHW7qW1OvI6HRhyXKZgvjTDRV6QoBoEtdjEsMPl9xlDA+WXYjdTRREgLBw
	WuRGfstyOupcvyD40ziEa8seSC9zPdPLPwlbnjEpQgYVzOiLhqkAZSAGaQ2jBwuSb0PVC5x9XFUQE
	DwoJIpVN3aSykl85Jx1+SawA2LXKHJfctjN3ZsCotUHwsUacaQ==;
Message-ID: <8317613a286ab637ac29740433ff51286ebbbaca.camel@physik.fu-berlin.de>
Subject: Re: [PATCH v5 11/14] sparc: Use physical address DMA mapping
From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
To: Marek Szyprowski <m.szyprowski@samsung.com>, Leon Romanovsky	
 <leon@kernel.org>, Robin Murphy <robin.murphy@arm.com>, Russell King	
 <linux@armlinux.org.uk>, Juergen Gross <jgross@suse.com>, Stefano
 Stabellini	 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>,  Richard Henderson
 <richard.henderson@linaro.org>, Matt Turner <mattst88@gmail.com>, Thomas
 Bogendoerfer	 <tsbogend@alpha.franken.de>, "James E.J. Bottomley"	
 <James.Bottomley@HansenPartnership.com>, Helge Deller <deller@gmx.de>, 
 Madhavan Srinivasan	 <maddy@linux.ibm.com>, Michael Ellerman
 <mpe@ellerman.id.au>, Nicholas Piggin	 <npiggin@gmail.com>, Christophe
 Leroy <christophe.leroy@csgroup.eu>, Geoff Levand <geoff@infradead.org>,
 "David S. Miller" <davem@davemloft.net>, Andreas Larsson	
 <andreas@gaisler.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>
Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org, 
	linux-arm-kernel@lists.infradead.org, xen-devel@lists.xenproject.org, 
	linux-alpha@vger.kernel.org, linux-mips@vger.kernel.org, 
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, sparclinux
	 <sparclinux@vger.kernel.org>
Date: Tue, 17 Feb 2026 14:57:31 +0100
In-Reply-To: <7131d609-b083-4264-818a-21de38c1c3ed@samsung.com>
References: <20251015-remove-map-page-v5-0-3bbfe3a25cdf@kernel.org>
		<20251015-remove-map-page-v5-11-3bbfe3a25cdf@kernel.org>
		<CGME20260217123216eucas1p2d74189a3cdf08e9301bebf1840491364@eucas1p2.samsung.com>
		<e294484787a5032c531dcd40071b22362bddcad4.camel@physik.fu-berlin.de>
	 <7131d609-b083-4264-818a-21de38c1c3ed@samsung.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
User-Agent: Evolution 3.58.3 
MIME-Version: 1.0
X-Original-Sender: glaubitz@physik.fu-berlin.de
X-Originating-IP: 93.197.95.41
X-ZEDAT-Hint: PO

Hi Marek,

On Tue, 2026-02-17 at 13:55 +0100, Marek Szyprowski wrote:
> On 17.02.2026 13:27, John Paul Adrian Glaubitz wrote:
> > On Wed, 2025-10-15 at 12:12 +0300, Leon Romanovsky wrote:
> > > From: Leon Romanovsky <leonro@nvidia.com>
> > >=20
> > > Convert sparc architecture DMA code to use .map_phys callback.
> > >=20
> > > Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
> > > ---
> > >   arch/sparc/kernel/iommu.c     | 30 +++++++++++++++++-----------
> > >   arch/sparc/kernel/pci_sun4v.c | 31 ++++++++++++++++++-----------
> > >   arch/sparc/mm/io-unit.c       | 38 ++++++++++++++++++--------------=
---
> > >   arch/sparc/mm/iommu.c         | 46 ++++++++++++++++++++++----------=
-----------
> > >   4 files changed, 82 insertions(+), 63 deletions(-)
> > >=20
> > > diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
> > > index da0363692528..46ef88bc9c26 100644
> > > --- a/arch/sparc/kernel/iommu.c
> > > +++ b/arch/sparc/kernel/iommu.c
> > > @@ -260,26 +260,35 @@ static void dma_4u_free_coherent(struct device =
*dev, size_t size,
> > >   		free_pages((unsigned long)cpu, order);
> > >   }
> > >  =20
> > > -static dma_addr_t dma_4u_map_page(struct device *dev, struct page *p=
age,
> > > -				  unsigned long offset, size_t sz,
> > > -				  enum dma_data_direction direction,
> > > +static dma_addr_t dma_4u_map_phys(struct device *dev, phys_addr_t ph=
ys,
> > > +				  size_t sz, enum dma_data_direction direction,
> > >   				  unsigned long attrs)
> > >   {
> > >   	struct iommu *iommu;
> > >   	struct strbuf *strbuf;
> > >   	iopte_t *base;
> > >   	unsigned long flags, npages, oaddr;
> > > -	unsigned long i, base_paddr, ctx;
> > > +	unsigned long i, ctx;
> > >   	u32 bus_addr, ret;
> > >   	unsigned long iopte_protection;
> > >  =20
> > > +	if (unlikely(attrs & DMA_ATTR_MMIO))
> > > +		/*
> > > +		 * This check is included because older versions of the code
> > > +		 * lacked MMIO path support, and my ability to test this path
> > > +		 * is limited. However, from a software technical standpoint,
> > > +		 * there is no restriction, as the following code operates
> > > +		 * solely on physical addresses.
> > > +		 */
> > > +		goto bad_no_ctx;
> > > +
> > >   	iommu =3D dev->archdata.iommu;
> > >   	strbuf =3D dev->archdata.stc;
> > >  =20
> > >   	if (unlikely(direction =3D=3D DMA_NONE))
> > >   		goto bad_no_ctx;
> > >  =20
> > > -	oaddr =3D (unsigned long)(page_address(page) + offset);
> > > +	oaddr =3D (unsigned long)(phys_to_virt(phys));
> > >   	npages =3D IO_PAGE_ALIGN(oaddr + sz) - (oaddr & IO_PAGE_MASK);
> > >   	npages >>=3D IO_PAGE_SHIFT;
> > >  =20
> > > @@ -296,7 +305,6 @@ static dma_addr_t dma_4u_map_page(struct device *=
dev, struct page *page,
> > >   	bus_addr =3D (iommu->tbl.table_map_base +
> > >   		    ((base - iommu->page_table) << IO_PAGE_SHIFT));
> > >   	ret =3D bus_addr | (oaddr & ~IO_PAGE_MASK);
> > > -	base_paddr =3D __pa(oaddr & IO_PAGE_MASK);
> > >   	if (strbuf->strbuf_enabled)
> > >   		iopte_protection =3D IOPTE_STREAMING(ctx);
> > >   	else
> > > @@ -304,8 +312,8 @@ static dma_addr_t dma_4u_map_page(struct device *=
dev, struct page *page,
> > >   	if (direction !=3D DMA_TO_DEVICE)
> > >   		iopte_protection |=3D IOPTE_WRITE;
> > >  =20
> > > -	for (i =3D 0; i < npages; i++, base++, base_paddr +=3D IO_PAGE_SIZE=
)
> > > -		iopte_val(*base) =3D iopte_protection | base_paddr;
> > > +	for (i =3D 0; i < npages; i++, base++, phys +=3D IO_PAGE_SIZE)
> > > +		iopte_val(*base) =3D iopte_protection | phys;
>=20
> 'base_paddr' was aligned to start of a page before this patch, while=20
> 'phys'=C2=A0includes the offset within a page.
>=20
>=20
> Could You check if the following change fixes the issue?
>=20
> diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
> index 46ef88bc9c26..edb0ffb21e2f 100644
> --- a/arch/sparc/kernel/iommu.c
> +++ b/arch/sparc/kernel/iommu.c
> @@ -312,6 +312,7 @@ static dma_addr_t dma_4u_map_phys(struct device=20
> *dev, phys_addr_t phys,
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (direction !=3D DMA_TO_DEV=
ICE)
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 iopte_protection |=3D IOPTE_WRITE;
>=20
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 phys -=3D offset_in_page(phys);
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 for (i =3D 0; i < npages; i++=
, base++, phys +=3D IO_PAGE_SIZE)
>  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 iopte_val(*base) =3D iopte_protection | phys;

Thanks, I have forwarded your patch and asked the user to answer here if po=
ssible [1].

Adrian

> [1] https://github.com/sparclinux/issues/issues/75#issuecomment-391479186=
2

--=20
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 14:03:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 14:03:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235056.1538093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsLfz-0008Pg-VD; Tue, 17 Feb 2026 14:03:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235056.1538093; Tue, 17 Feb 2026 14:03: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 1vsLfz-0008PZ-Sa; Tue, 17 Feb 2026 14:03:43 +0000
Received: by outflank-mailman (input) for mailman id 1235056;
 Tue, 17 Feb 2026 14:03: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsLfy-0008PT-Kc
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 14:03:42 +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 75f4f2af-0c09-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 15:03:40 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4362c635319so4220577f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 06:03:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a5b07fsm34046327f8f.2.2026.02.17.06.03.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 06:03:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 75f4f2af-0c09-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771337019; x=1771941819; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lZKv+8xd+zkVjhnxLenUQp08t+RbtHIV9T9Xb9tFu38=;
        b=HGQdyfkVQNNnt8F6zfY6U4YW12jKpblMEcEjcuJ4A9c8lW1UhTqqD3zBq9IeeoYRNv
         nSKj/g27oMSqdYWbC5CnI7rRiScBUZrkNRDD540VqPB2B7kBfc5aCtYauQY1825A+2BZ
         Ff3v0SLdPM/IvGRkKe6vt12K7HGuFM4jDTJWDMSYBcwFjZSa6fCHI7cWq+N2nfk6YS3Z
         WQsVPhR6nYSH30O3qNA4JQnxKxIfoP+pbBQ/0l7O0Ei+QU4dye5Pi58IlcoJ3h3AD8UI
         EdukQFA7NIIXa3cG9G061RR9v4uhiaI59yFDUXTX0x0Ij3OVucIKSPxV4p2NBjfzXMHm
         AECg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771337019; x=1771941819;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lZKv+8xd+zkVjhnxLenUQp08t+RbtHIV9T9Xb9tFu38=;
        b=fPyennkzcaVetNW6LHRG7NBDpRVl64Xc+V61nUXuS26EVqZgdi+N6iKuBb9l4GYOaL
         FV7dkDxRdV8rzXNy2KcSy8zF86SM8hW6cNIQ8I+r7Zjae79uh882hGdZ6GoSR7C3Ib+s
         moUmLlcf9i1sJWWqd+IWvuRQKMEn0bcH1CO8T2U2M7cPDq1xhoTUCJ+QyzSIr0wkMfNI
         amCmWOl3A/4Iu6dBI+H/7GSuuGPcohrOHDUFYVmOSOqTq9ztxg/bifeKuwhaUdnnD7JW
         Qu1FEcMif2x90F3qGmdouRI1U/cpLjVIUcrc50Y5NEdBRmenCkYK24UIsCgZrrkrM925
         GgTQ==
X-Forwarded-Encrypted: i=1; AJvYcCXbBpSLM39C+4Uu0hB8DOAMkHTL4r/1gexQFKKmdfnDCGJQ9KIr2Dx1gyHSBOJJu4H4xgiE8fMfG90=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz9qoYFISNE/goeFTiyqof+uuCEmMoM0STENi8TX3LM9pw6TJg4
	FrQT67D8cjFRk6FW3q18oLpmVay7Vz39260AgDfHtF1pUsbFYLh1HparpNfj8Jlq6w==
X-Gm-Gg: AZuq6aLY3eGHesvsbUWomhhhCAERlLm+Wf7sq3uXnj5lCi+toZ1UXdplGfH6NGlmdtI
	ubaX5YMI+YCGI61QQ0KuksRo/7eJeZwbHj06RaG6PU/9Vnv6FbTmwwJgZNyiLUHZwKEedWygycr
	3NpNxWLDIeO853k0or6u4WNgTidWlvEeyca4yWh5IH1EXRxBW0fCQlNYDMfLVQ2eBUBTgUn6rQ+
	yauXlz8ZjNmHACDetlmZ2272OVeagRsomlrsLE65E27cwx/BmcasotQIrPCLkG+B8XafxOHjgyT
	RLq7FoWDMrhbwsePda9wtHkEvQNRdtwbTRQlUSYr0x243s3XffWOGpOquHFLBWzd/W50KNFH1y5
	qlFeUgTn6UEUrjsQNy2PNPRwpzMfKRz9/qkyO0y7RItw/ktpM7OM7R54dCD1yIOovA+RZLp6PZU
	GcTuwf12eJDwGAFaYtfbCtn10kXVkNTVHGXtUvrakrzYMrXiyHv6bNONiC3qXWt0o7VmPJbBI30
	fsWUe25XoAp3EQ=
X-Received: by 2002:a05:6000:2403:b0:437:75c1:578d with SMTP id ffacd0b85a97d-437978c792bmr26727236f8f.11.1771337019244;
        Tue, 17 Feb 2026 06:03:39 -0800 (PST)
Message-ID: <f2aa9384-dab9-40a8-9c21-2c746cf2f780@suse.com>
Date: Tue, 17 Feb 2026 15:03:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/16] xen/riscv: build setup code as .init
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <d2fcbb9248ea1659aa953e9c8a8bde1c4a2282c0.1770999383.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: <d2fcbb9248ea1659aa953e9c8a8bde1c4a2282c0.1770999383.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 17:28, Oleksii Kurochko wrote:
> At the moment, all code and data in setup.c are marked with
> __init or __init_data, 

"... which is intended to remain this way."

Nit: It's __initdata.

so leverage this by using setup.init.o
> instead of setup.o in Makefile.
> 
> Suggested-by: Jan Beulich <jbeulich@suse.com>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
(once again happy to make adjustments while committing)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 14:23:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 14:23:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235074.1538111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsLyq-0002wz-HU; Tue, 17 Feb 2026 14:23:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235074.1538111; Tue, 17 Feb 2026 14: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 1vsLyq-0002ws-Eq; Tue, 17 Feb 2026 14:23:12 +0000
Received: by outflank-mailman (input) for mailman id 1235074;
 Tue, 17 Feb 2026 14: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsLyo-0002wm-ML
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 14:23:10 +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 2ee4e7c4-0c0c-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 15:23:09 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4837634de51so14457725e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 06:23:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6b563sm34536390f8f.12.2026.02.17.06.23.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 06:23:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ee4e7c4-0c0c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771338189; x=1771942989; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xAlLxLBYl2fP0NKoNXaN7SOK3yZ5y7XiomzqMv8uFq8=;
        b=KiKpeEFtuLOvLQhs7i32zYubvLqlwsm7hg3tKD5qOqj7zo6nl0KPaSHrsajwc6hr3K
         buCqJ0UxFiP7NUB+CksMQJ+ybBVZzOlx5/L8Ckoj1Yz4W1WzJa6m53vxkSAoLT4WNkkL
         VY/0080PnFpaY59mJ5XMaWfR/TnbwiY3Sp2pb/eQ/87QzcVUuQpH08bs525itGYXWkzE
         GmeVxg9YbzOIgrEfPvuqI2w2icJEOVMDXBRaA+c3+RYj21NY3NutsgBSn1OB68BSU9+i
         YYZlKu+m8Q6LAAGzSeiceAXXcro1LGoEGydFBtDeeRs4mm8AETOCjZCK8kBJsZWvnBBM
         pkGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771338189; x=1771942989;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xAlLxLBYl2fP0NKoNXaN7SOK3yZ5y7XiomzqMv8uFq8=;
        b=cnftq4BFcOPYSB8oXV2tI172JiVuOnTlPfI/fVXaATbPUMlEtbWnBiJDL+Ldi+Y7tE
         emQe+rlhrWgub08j2ogp+crMHzZa2AGllDxrJRO6ME+CFnrKbzrvcm09gGNkizKk5sQ1
         cYI9WRj+uC395jhOnAULzLW5xa1A11TsKdbpMkWwDHZusVYJVk8WaqOvhaTqQAcHCF7L
         uWWon1RxXl6Z4fO1QVYWbLxrx9udD/fiJPp+aSCwWZYfeS7VqKDpNf7vescecXrs0hXA
         WiBEbxFIFSoGS77LxAVNLjRFcA6EA4LZ4zYCI3K18vzN8D3a9XhwaFFkJudvd1q8ntBe
         AkLQ==
X-Forwarded-Encrypted: i=1; AJvYcCUSu4Qe/Gi0SVkyY+2jI9q1qWInD5fwoMCrvSGjYjwOAzrH12TZvZPBBGXVjaoyGBm30HMaq/Yr5S0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy26qQ0RQgyQQw+aSpCTjAxqt7+mwSglAVg0S3NlfdQEH43mZuA
	TRmxT7Nou6n5caShf0RtaufmmdjSFom4c+n/CXKRZyNI6DXk74nxLjeat2RHjrmD1Q==
X-Gm-Gg: AZuq6aIpXqOHE2QjdlYLELRPk5NZtVauZyaJrICCawL1XmrvpsDjDUBdTLiYgn1iEbe
	bklf/s48t1J8QWGXvkdHp26WCLTA5CGnxQpWMX+SkXluQxLJXlEnK2sDZVqY+3JMH2o6f9WMJp0
	rCETWQV/bBfXB5E7tnsdjy40tchgvOZybTZ7lTBeFooFoJtxHsd4D7q1w9ATzUT4BP/NyhDPQti
	J8JYDf9dggwIdWhnr0DdUtzWFFrKTHGxhrCZyEEo+2X6B15SPGew2HbuWSRBXaYwIvZz5uK/V08
	s/YYcDj2we/UwBDLIrYtv2xygNhC3IwmqcEFoE1HgC6chtCD2vMt1FAo9vOzBfmCzYZpe6QGTua
	+uYMEQqXSCLFJGQcTgP9YYEh/5LxY62PgK8Y6Ff/2giTh12iAl7hVOFu3Hj8eWGlSIfkVwrmbQG
	zffmUZYB7rOqJ4WC2MhnOyKxCQdsxbjLDECf7gV+2lFcDdjHDGpIWYcr0679Ifx+kNJwQPUkglF
	j4GVzzDYGxzBDI=
X-Received: by 2002:a05:600c:c0ca:b0:483:78c5:d743 with SMTP id 5b1f17b1804b1-48378c5d9fcmr164471015e9.28.1771338188641;
        Tue, 17 Feb 2026 06:23:08 -0800 (PST)
Message-ID: <07e6d8a4-c825-4d65-ab27-60ced2f25e79@suse.com>
Date: Tue, 17 Feb 2026 15:23:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/16] xen/riscv: implement vcpu_csr_init()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <7c58dfbac99694811e4276858b48baa211331229.1770999383.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: <7c58dfbac99694811e4276858b48baa211331229.1770999383.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 17:28, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -6,10 +6,74 @@
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/cpufeature.h>
> +#include <asm/csr.h>
> +#include <asm/riscv_encoding.h>
>  #include <asm/setup.h>
>  
>  struct csr_masks __ro_after_init csr_masks;
>  
> +#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
> +                         BIT(CAUSE_FETCH_ACCESS, U) | \
> +                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
> +                         BIT(CAUSE_BREAKPOINT, U) | \
> +                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
> +                         BIT(CAUSE_LOAD_ACCESS, U) | \
> +                         BIT(CAUSE_MISALIGNED_STORE, U) | \
> +                         BIT(CAUSE_STORE_ACCESS, U) | \
> +                         BIT(CAUSE_USER_ECALL, U) | \
> +                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
> +                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
> +                         BIT(CAUSE_STORE_PAGE_FAULT, U))
> +
> +#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
> +
> +static void vcpu_csr_init(struct vcpu *v)
> +{
> +    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
> +
> +    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
> +
> +    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
> +
> +    /*
> +     * VS should access only the time counter directly.
> +     * Everything else should trap.
> +     */
> +    v->arch.hcounteren = HCOUNTEREN_TM;
> +
> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
> +        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
> +
> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
> +    {
> +        register_t hstateen0 = 0;
> +
> +        if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
> +            /*
> +             * If the hypervisor extension is implemented, the same three
> +             * bits are defined also in hypervisor CSR hstateen0 but concern
> +             * only the state potentially accessible to a virtual machine
> +             * executing in privilege modes VS and VU:
> +             *      bit 60 CSRs siselect and sireg (really vsiselect and
> +             *             vsireg)
> +             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
> +             *             vsiph, vsieh, and vstopi)
> +             *      bit 58 all state of IMSIC guest interrupt files, including
> +             *             CSR stopei (really vstopei)
> +             * If one of these bits is zero in hstateen0, and the same bit is
> +             * one in mstateen0, then an attempt to access the corresponding
> +             * state from VS or VU-mode raises a virtual instruction exception.
> +             */
> +            hstateen0 = SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
> +
> +        /* Allow guest to access CSR_ENVCFG */
> +        hstateen0 |= SMSTATEEN0_HSENVCFG;

I continue to be puzzled by the use of = vs |=. If you use |=, best do so
uniformly. Then inserting new code ahead of the one you have now is not a
problem. I wonder anyway why you don't do (omitting commentary):

        register_t hstateen0 = SMSTATEEN0_HSENVCFG;

        if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
            hstateen0 |= SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;

As to CSR_ENVCFG - what's that referring to? I'm aware of menvcfg, henvcfg,
and senvcfg. But I'm unaware of plain envcfg, and there's also no CSR_ENVCFG
constant in riscv_encoding.h afaics. I assume it's senvcfg that you mean
here. And then - is this CSR unconditionally available? The "Supervisor ISA"
isn't called an extension, yet at the same time it's also part of the
separate "privileged" specification, not the general one.

> --- a/xen/arch/riscv/include/asm/domain.h
> +++ b/xen/arch/riscv/include/asm/domain.h
> @@ -48,6 +48,12 @@ struct arch_vcpu {
>      } xen_saved_context;
>  
>      struct cpu_info *cpu_info;
> +
> +    register_t hcounteren;
> +    register_t hedeleg;
> +    register_t henvcfg;
> +    register_t hideleg;
> +    register_t hstateen0;
>  };

One question about the ordering here: It looks to be alphabetically sorted
right now, yet I wonder whether that's optimal. Some CSRs might typically
be used together, in which case they may best live close together (for
chances to be good that they end up in the same cache line).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 14:23:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 14:23:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235079.1538122 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsLzH-0003Mo-Ow; Tue, 17 Feb 2026 14:23:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235079.1538122; Tue, 17 Feb 2026 14: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 1vsLzH-0003Mh-MK; Tue, 17 Feb 2026 14:23:39 +0000
Received: by outflank-mailman (input) for mailman id 1235079;
 Tue, 17 Feb 2026 14:23: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsLzG-0003CN-ID
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 14:23: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 3f644c50-0c0c-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 15:23:36 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso59038675e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 06:23:36 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371998777sm402436275e9.1.2026.02.17.06.23.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 06:23:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f644c50-0c0c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771338216; x=1771943016; 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=11JyZZS+qJmiFN3fNB+Iee1JkfEd9hcyAJUVgAJ0YHw=;
        b=RuHXJUPrXBRc/Gi7UBK91ySzqLmZ98Jy+7SZYHoJIWkBQjKha20NFHXHCTIqisSCbO
         JnRTc8TyHfDCz014x7PNnRyqqc3PmMeqcjptz4EnLjZpKCCfIrEpa+N3LqRWHP32vRd8
         TtTsW5qln/Go82hiVsJ0oSLYFq+PqUp1zeW/oQADe7O5cFhBRxQK+ywHsIwP/KH5+BIs
         FNF10zIDfpWWioibEueiIffi11+adUj7X96W9foQmu+vIQj37LwXB7PBSDWTQjdyOiAW
         4hgNMtgGMTxOSYACa6SPuO2iVvxjHPNSA9QgErwj5cop4JHKmThAlCy941nSJWrAQT+Y
         fGYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771338216; x=1771943016;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=11JyZZS+qJmiFN3fNB+Iee1JkfEd9hcyAJUVgAJ0YHw=;
        b=sVRYfQQhbrAf1o4uD1sFjF+fTC07m+xR7bjoJia3YlZeYgrFGbGL/kLQf2FvgIzDR0
         EAmnpwB38O1LoFxc/J4C2cC2PaqdABrGUU3D5UiZqi4qGwXSqCab0xp0N/8DfwXoyVsS
         YuifM6A/fVv91bMFp5FA0hKK2vy5yCS/QZoICICaZ1FiV11lwYshAStIy3cQS35jEhnN
         yL0Hi2bFX6Zea9Jpnk+/HZUBbs4pzorTMZp0mEpjlI/rwkTKzV4tgqVWpR5m8QSSBxF2
         NN4ZWcC9F+hLRkOXbcTvqRONx4E1Owz/60Ksz8Gqc+1cDjmP/KyBwlXacqz87qQkiiTn
         G1rQ==
X-Forwarded-Encrypted: i=1; AJvYcCWDFBFaIgb1eJS/TyP7JSjPzwqd2D8CYjOWk8inR+DFO9FRKtqU7CwDEImyO6HndNsPLlOdYSa8Sw0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxda+aGbxr1YjLV+jqoV2mim62rTEB/gLHJ48a/i9rc2kRZHhsa
	9dRrMylMlpFSr77qsqn9PeEyo9TnBUWJXemzxpnXiUJL3jSQTp+R/Kml
X-Gm-Gg: AZuq6aIHkiFEuqxG6eb3HyKSr5jhJ/5KIf++CZFahlCgEMZnoFBqVHokAYZ2Q5L0MSw
	qtRPrtZjWaJNwlWeq1+98TL1DlGkSu/Wn5q5il5TtSt4/4MYjofk06o2DOv1lozTAkQAsM/yakx
	IZ/29XD8i6KHi/ZMZUp4cfgJtjXMJH/z6p6e8hHyd2J3k5PFYB0sv65HD0KdQd3t5Yw5V5vVGop
	+tvw1iA1jfE3E2AY9a1UKvHMWXdS0R+upi1Ado8rJnqTKU+pdTcP+XVl/ARpV9JBnWRSZDHEptt
	hMHlz1Hfn2O8sZY6rhuB/Mk3rohQG+vpAHodHzZlB2Gi1bHHdAIHCHr8yAQjNjDeNfzHXGdJ5RC
	mOtZ40XQ0QvTTVbUZUGy8ZyX0wjUxAhzJQoeq7+MVBk5uZbdLcRu+e2fHZKrnEU66KtO2zGrxQ+
	+d7Brc/vjs9XqhDA2KkwQkTY1rU41huJyc4soqDF1FDybeu9lnJOjlVUeIBkQpjlX42D9p1/mUB
	D4=
X-Received: by 2002:a05:600c:c165:b0:483:722c:a3d1 with SMTP id 5b1f17b1804b1-48378da52a1mr193686835e9.16.1771338216091;
        Tue, 17 Feb 2026 06:23:36 -0800 (PST)
Message-ID: <974f0b55-3ead-4892-92c0-707be1303834@gmail.com>
Date: Tue, 17 Feb 2026 15:23:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 02/16] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <06c3b8f88803039a3d900c8cb2f1fd9d05f44e3e.1770999383.git.oleksii.kurochko@gmail.com>
 <fd7c8adf-d8cf-482e-8c8b-55187ea6dabf@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <fd7c8adf-d8cf-482e-8c8b-55187ea6dabf@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/17/26 12:37 PM, Jan Beulich wrote:
> On 13.02.2026 17:28, Oleksii Kurochko wrote:
>> Some hypervisor CSRs expose optional functionality and may not implement
>> all architectural bits. Writing unsupported bits can either be ignored
>> or raise an exception depending on the platform.
>>
>> Detect the set of writable bits for selected hypervisor CSRs at boot and
>> store the resulting masks for later use. This allows safely programming
>> these CSRs during vCPU context switching and avoids relying on hardcoded
>> architectural assumptions.
>>
>> Note that csr_set() is used instead of csr_write() to write all ones to
>> the mask, as the CSRRS instruction, according to the RISC-V specification,
>> sets only those bits that are writable (note that the quote consider only
>> non-read-only CSRs as writing to read-only CSRs according to the spec.
>> will raise an exception):
>>      Any bit that is high in rs1 will cause the corresponding bit to be set
>>      in the CSR, if that CSR bit is writable.
>> In contrast, the CSRRW instruction does not take CSR bit writability into
>> account, which could lead to unintended side effects when writing all ones
>> to a CSR.
>>
>> Masks are calculated at the moment only for hedeleg, henvcfg, hideleg,
>> hstateen0 registers as only them are going to be used in the follow up
>> patch.
>>
>> If the Smstateen extension is not implemented, hstateen0 cannot be read
>> because the register is considered non-existent. Instructions that attempt
>> to access a CSR that is not implemented or not visible in the current mode
>> are reserved and will raise an illegal-instruction exception.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in V4:
>>   - Move csr_masks defintion to domain.c. Make it static as at the moment
>>     it is going to be used only in domain.c.
> Except that ...
>
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -2,9 +2,14 @@
>>   
>>   #include <xen/init.h>
>>   #include <xen/mm.h>
>> +#include <xen/sections.h>
>>   #include <xen/sched.h>
>>   #include <xen/vmap.h>
>>   
>> +#include <asm/setup.h>
>> +
>> +struct csr_masks __ro_after_init csr_masks;
> ... it's not static here and even has ...
>
>> --- a/xen/arch/riscv/include/asm/setup.h
>> +++ b/xen/arch/riscv/include/asm/setup.h
>> @@ -5,6 +5,15 @@
>>   
>>   #include <xen/types.h>
>>   
>> +struct csr_masks {
>> +    register_t hedeleg;
>> +    register_t henvcfg;
>> +    register_t hideleg;
>> +    register_t hstateen0;
>> +};
>> +
>> +extern struct csr_masks csr_masks;
> ... a declaration here. If you want to keep it non-static, it (and the struct
> decl) likely wants moving elsewhere. Whereas if you truly want it to be static,
> the struct decl would want moving to domain.c as well.

Wrong patch version. I made it static so csr_masks declaration and struct csr_masks
were in domain.c. Also, init_csr_masks() was moved to domain.c too.

I will update the patch version next time.

>
>> --- a/xen/arch/riscv/setup.c
>> +++ b/xen/arch/riscv/setup.c
>> @@ -70,6 +70,25 @@ static void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
>>       return fdt;
>>   }
>>   
>> +void __init init_csr_masks(void)
>> +{
>> +    register_t old;
> As indicated before, this would better be ...
>
>> +#define INIT_CSR_MASK(csr, field) do { \
>> +        old = csr_read(CSR_##csr); \
>> +        csr_set(CSR_##csr, ULONG_MAX); \
>> +        csr_masks.field = csr_read(CSR_##csr); \
>> +        csr_write(CSR_##csr, old); \
>> +} while (0)
> ... local to the scope the macro introduces. IOW with both this and the
> earlier remark, let's try to strive to have scope and exposure of variables
> as narrow as possible (unless of course there are clear reasons not to).
>
> And btw, wouldn't you again better use csr_swap() here?

It makes sense, I'll use csr_swap() instead of pair csr_read() and csr_write().

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 14:25:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 14:25:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235089.1538132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsM0a-00040l-5l; Tue, 17 Feb 2026 14:25:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235089.1538132; Tue, 17 Feb 2026 14:25: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 1vsM0a-00040e-29; Tue, 17 Feb 2026 14:25:00 +0000
Received: by outflank-mailman (input) for mailman id 1235089;
 Tue, 17 Feb 2026 14: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsM0Y-00040W-Sy
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 14:24:58 +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 6f6aacf9-0c0c-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 15:24:57 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-43591b55727so4840335f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 06:24:57 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1b4sm33017272f8f.14.2026.02.17.06.24.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 06:24:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f6aacf9-0c0c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771338297; x=1771943097; 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=ESAYbCeAFiBtqBsvgDD9QRieKLFu19ZNqlmy1HgcOag=;
        b=T2DFuLc8sBhRpBdXq30rSWgYNIIG58CmxId5baFlVUwgIIPlrfK7DtEi5HvUCXSeGP
         HA3WWbFFyjv13O7SDrJ3hsw7ffunoRdMulKQde2pdzFnUhqYlGshYTlupddhy6zGekUa
         Ohiqco4GjRmsHhVZGsabsMLkSPsSWdsh4bhOZj5QwPLCp011Pq6ZAHZDhCG4OAyT/+x6
         oZMuC/yKXVnluFMGoUXRyxiECAw8hvc/1Gy9Bi2iRT+TYlY7RimMzTMgvYLi9rNBi2Xh
         CnhHwi2MWNaHK1tsCRX/6Ag+X/DOh7y1rCGKGe9uNYSeUMHsWgn8ep0Iq5sXdol+mujO
         OM5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771338297; x=1771943097;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ESAYbCeAFiBtqBsvgDD9QRieKLFu19ZNqlmy1HgcOag=;
        b=tBPAQ5DkrQRzkWgx30JWLgDx3K7pl1P5zYBzKtrpN35STu1tVm+/tY5WJBzLUVc/yP
         sXv6epVx4is7dUT2Xvkxol4FbOU7DAl046Bq5UIcUZspVdozdsR7h5XLWWDGXAdhMiS3
         2hb7FSaPAf3Mo4EoAgqLmk7GtwiyJ9GrFfZaVA5yj8tR9RTrDbExEW7ZxIp3UdNrf3Ev
         bPT5y7aYOpa5PJSIEWqMrRNIl3IYWg+Hc7hum8pfgoIGbjitzTQ2DWrX3BlweCTNcgmi
         PxjJTUYQewIBsg5vjdRTZ7jXoNxjH4FGZopE0Py43rFERpiUVP8Ez2VlkzAh2PRLa79m
         ePig==
X-Forwarded-Encrypted: i=1; AJvYcCUcClFNweh9VcrK2GbmgyMXQXzjhAYK2qgZYCppZ+dCTGZ9+NGzs5Pip5pxCD2CmG979Z9vDYTwfGM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwPVRyaEq6hytRbxEUNN5a4307JrwBZsWcMbmBJUv/bZ8fcMvnv
	XIkn88/v/XECfHfAzGd6/uj4XbpYU26kZy9xNWI7ksxMcdyAY5HjNsZ6
X-Gm-Gg: AZuq6aL0yOddb5Rv8WzlPTIkCZfrSjVgRGXttZcrhQoVUB61vca1n/+GgIjfVAaSZH8
	9yVkqvNpJfYTFEwi7yzeE/t9CD09K9jad69nrvrT6z4Ne9/HxVp8632ynxz54B8juIsFJ6KvgVm
	5q3MHmMuRMDHQ6UoMDAYnB99kq5MDtgMdZbcJ9nCzJTXRP+79RYTS8F0jotlZOCg5nNzKw9wffD
	ngFVgBituYI8TuLXAaOSffvcEheXXJ2kQaGvvh9d72M9nD1ulMTEHmks2FF/pu1GwqT7s1VTgiG
	GE9C9CC2/kQBF/HiVqiztQddAOfCDBbNmaXUcWiae4rt//zsV/4q/zmgwaJuRR6fAb4E504pLmW
	RjAJWpE7VBzTuGHK3WU7SDQonSN11HU3hkgJVedOYvPBPdVVbX2Ay4gD8LP3vXuHjSvFOEVLiR3
	wglAnOS3Xpj0pvtJwjVSftBLbFHfZlW8q4KC6wzSVGWUFyWIM+aKt91ESYvgRF3RU5fuCP6XYQo
	U4=
X-Received: by 2002:a05:6000:1844:b0:434:32cc:6c86 with SMTP id ffacd0b85a97d-4379db61567mr18639084f8f.14.1771338296798;
        Tue, 17 Feb 2026 06:24:56 -0800 (PST)
Message-ID: <4f92f3b5-05ec-4629-82f0-5ae492f22d37@gmail.com>
Date: Tue, 17 Feb 2026 15:24:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 03/16] xen/riscv: build setup code as .init
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <d2fcbb9248ea1659aa953e9c8a8bde1c4a2282c0.1770999383.git.oleksii.kurochko@gmail.com>
 <f2aa9384-dab9-40a8-9c21-2c746cf2f780@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f2aa9384-dab9-40a8-9c21-2c746cf2f780@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/17/26 3:03 PM, Jan Beulich wrote:
> On 13.02.2026 17:28, Oleksii Kurochko wrote:
>> At the moment, all code and data in setup.c are marked with
>> __init or __init_data,
> "... which is intended to remain this way."
>
> Nit: It's __initdata.
>
> so leverage this by using setup.init.o
>> instead of setup.o in Makefile.
>>
>> Suggested-by: Jan Beulich <jbeulich@suse.com>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> (once again happy to make adjustments while committing)

I'm happy with suggested adjustments. Thanks a lot for doing that!

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 14:43:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 14:43:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235101.1538141 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsMIL-00071E-Jr; Tue, 17 Feb 2026 14:43:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235101.1538141; Tue, 17 Feb 2026 14:43: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 1vsMIL-000717-GZ; Tue, 17 Feb 2026 14:43:21 +0000
Received: by outflank-mailman (input) for mailman id 1235101;
 Tue, 17 Feb 2026 14: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsMIK-000711-8R
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 14:43:20 +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 fefc4c39-0c0e-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 15:43:17 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4806bf39419so45417995e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 06:43:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac8d46sm36002761f8f.32.2026.02.17.06.43.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 06:43:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fefc4c39-0c0e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771339397; x=1771944197; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xPqex+Qa7cGhryCr72V4fQ1JeLnlvnLBWtT1cOg3SrY=;
        b=XljqaBEQz/z4X8x0vj6Z3GGESOAnI3k8GScBBKsFYgN4FTk+bIWvgL7qKaLrdtcens
         ieCWBPHF3HJ8XAt/oLPqTx7SYDzv7RtzwOQbuoURT1uZwKgNw6QLE7qcr7GOWzIaClK3
         FKUt4y6Vj5uzmXkknCjGqtXBh86lcJ/4DuZBcKF1rmrrZuNazRVfzBUHatTNrnWwU/pV
         0LOZLY2bNNysBKNYnBqD6Do6Kc39rYpKuyBF9Kh71yDHJ/HkVSxWAwiqXLDrtu2ZlMMy
         FExmv25fEi1r68lllSGYbqR+A9/fOyfUH1+7lGltxkaXMfzGR2ZHwq2WfDGSYj4eSLNb
         mjKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771339397; x=1771944197;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xPqex+Qa7cGhryCr72V4fQ1JeLnlvnLBWtT1cOg3SrY=;
        b=Gl0TZ4kP8685v67tWLwLtpZYXijKiAhBhXkE15ZmB57+z7Dum/iibj1zAK1WNuL/4/
         ggs0J2iAegYvtHI7/b4cXo+yTymYfn831912GeDnOV5ucJHAueHzg5RTYqZie/lDi+nP
         bNmITd7f2xLbjo938HzsasVS1QQnqJ5d23ULboalqOPIhokc5qq+DYZRslxaQpnWG5Ew
         901Z63RMIbjtGFYUYp+WHbyQjiZNy1+4mSpMTfkhEYnSRnosnZD9liXZzC8fB9Ovngw3
         cTTQuMCRgWR6266BUcCZPka50qfUXaIxBBrQ+4f03OMtEzDkXHb5r83hsmnz6MYzvdyb
         EmEA==
X-Forwarded-Encrypted: i=1; AJvYcCXLyOt3E1IogAWL2XcdxfhLnqr7YpLmnlej/9afLt8NnyqylAcwXqQtURbmpxehvVZJ62LTaKTc0D8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz/4RG5pZKjt7jAwfj7Nr3ku3fC2BwseuRuvzvixNu+gEROL+Cz
	urtFxXITveB5ZjmR3DAjyTKiTotuah6Q3/ooYMK/AT1ntn7CqZXvo1vQMBEfp93UBQ==
X-Gm-Gg: AZuq6aJqiuCj2xrRO1pxs3/l5AbkJEMvkx3M8aCusjrTCf/E/VXrYZX6KSLK6v6APmI
	da6E9QyhLB5/lN+MOl+b+mMs9n5xmfmBI1p27TJ8uRKxJWwDeWE7AiZwKFBmhQaKzMtu762Te6B
	+7mE5KfnJnn+hxpzCBsCl7k+y6Lm5ve69ojmAKfyMFOX8hUxV8GidIHfbHT3+nkbHToaYqPLnVq
	ik8E8xr1YDr/Qzkq4ur+OZA/QpSHb5H7vjdwddQDD1P54TR5yuUYhUTZgUlkCAmgyCAY6D7K7jx
	0kgsTYb04tVT2dQL3ZzlAHi91r1W9egHmP/KIcWoniI4y4IJwsCOEx79AKqF+/e9w5+0fzbg1L7
	jNq4ioDnht+iglsLKvAZak5ATV8DCOzuj0Cn9A/QdFbu7kw0CK2WI2K5RWgeqfUltQopCJag35P
	uuKZIhxM2ceM2LAcnFZ/MvmR9Rj2hciMeT58V6/YyF7cJhn3BudFfsALW6+HZnEsE5RIgoWZZHl
	VmxlsOlaDIWG5c=
X-Received: by 2002:a05:6000:230b:b0:436:1597:7c7c with SMTP id ffacd0b85a97d-4379d5eb3d7mr23003221f8f.13.1771339396500;
        Tue, 17 Feb 2026 06:43:16 -0800 (PST)
Message-ID: <fd62a140-ad87-4886-be8d-836dae298cb1@suse.com>
Date: Tue, 17 Feb 2026 15:43:15 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <63661b60f5e1678c93f7ea34e5cf479ca28bc80d.1770999383.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: <63661b60f5e1678c93f7ea34e5cf479ca28bc80d.1770999383.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 17:28, Oleksii Kurochko wrote:
> Based on Linux kernel v6.16.0.
> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
> we want to guarantee that if a bit in irqs_pending_mask is obversable
> that the correspondent bit in irqs_pending is observable too.
> 
> Add lockless tracking of pending vCPU interrupts using atomic bitops.
> Two bitmaps are introduced:
>  - irqs_pending — interrupts currently pending for the vCPU
>  - irqs_pending_mask — bits that have changed in irqs_pending
> 
> The design follows a multi-producer, single-consumer model, where the
> consumer is the vCPU itself. Producers may set bits in
> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
> performed only by the consumer via xchg(). The consumer must not write
> to irqs_pending and must not act on bits that are not set in the mask.
> Otherwise, extra synchronization should be provided.
> 
> On RISC-V interrupts are not injected via guest registers, so pending
> interrupts must be recorded in irqs_pending (using the new
> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
> HVIP before returning control to the guest. The consumer side is
> implemented in a follow-up patch.
> 
> A barrier between updating irqs_pending and setting the corresponding
> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
> that if the consumer observes a mask bit set, the corresponding pending
> bit is also visible. This prevents missed interrupts during the flush.
> 
> It is possible that a guest could have pending bit in the hardware
> register without being marked pending in irq_pending bitmap as:
>   According to the RISC-V ISA specification:
>     Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>     interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>     is an alias (writable) of the same bit in hvip.
>   Additionally:
>     When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>     zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>     hie.VSSIE.
> This means the guest may modify vsip.SSIP, which implicitly updates
> hip.VSSIP and the bit being written with 1 would also trigger an interrupt
> as according to the RISC-V spec:
>   These conditions for an interrupt trap to occur must be evaluated in a
>   bounded   amount of time from when an interrupt becomes, or ceases to be,
>   pending in sip,  and must also be evaluated immediately following the
>   execution of an SRET  instruction or an explicit write to a CSR on which
>   these interrupt trap conditions expressly depend (including sip, sie and
>   sstatus).
> What means that IRQ_VS_SOFT must be synchronized separately, what is done
> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
> PMU isn't supported now.
> 
> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
> IRQ_VS_EXT), the specification states they cannot be modified by the guest
> and are read-only because of:

"cannot be modified by the guest" is still meaning about anything. Aren't you
intending to merely talk about their pending bits? Then all of ...

>   Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>   bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>   the logical-OR of these interrupt sources:
>     • bit VSEIP of hvip;
>     • the bit of hgeip selected by hstatus.VGEIN; and
>     • any other platform-specific external interrupt signal directed to
>       VS-level.
>   Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>   bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>   logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>   signal directed to VS-level.
> and
>   When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
>   Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.
> 
>   When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
>   Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
> and also,

... this is largely irrelevant, while ...

>   Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
>   bits for supervisor-level external interrupts. If implemented, SEIP is
>   read-only in sip, and is set and cleared by the execution environment,
>   typically through a platform-specific interrupt controller.
> 
>   Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
>   bits for supervisor-level timer interrupts. If implemented, STIP is
>   read-only in sip, and is set and cleared by the execution environment

... this is important.

> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
> and vcpu_unset_interrupt(), and flush them during the call of
> vcpu_flush_interrupts() (which is introduced in follow up patch).
> 
> vcpu_sync_interrupts(), which is called just before entering the VM,
> slightly bends the rule that the irqs_pending bit must be written
> first, followed by updating the corresponding bit in irqs_pending_mask.
> However, it still respects the core guarantee that the producer never
> clears the mask and only writes to irqs_pending if it is the one that
> flipped the corresponding mask bit from 0 to 1.
> Moreover, since the consumer won't run concurrently because
> vcpu_sync_interrupts() and the consumer path are going to be invoked
> equentially immediately before VM entry, it is safe to slightly relax

Nit: There was an 's' lost at the start of the line.

> @@ -127,3 +128,73 @@ void arch_vcpu_destroy(struct vcpu *v)
>  {
>      vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
>  }
> +
> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
> +{
> +    /* We only allow VS-mode software, timer, and external interrupts */
> +    if ( irq != IRQ_VS_SOFT &&
> +         irq != IRQ_VS_TIMER &&
> +         irq != IRQ_VS_EXT )
> +        return -EINVAL;
> +
> +    set_bit(irq, v->arch.irqs_pending);
> +    /*
> +     * The counterpart of this barrier is the one encoded implicitly in xchg()
> +     * which is used in consumer part (vcpu_flush_interrupts()).
> +     */
> +    smp_wmb();
> +    set_bit(irq, v->arch.irqs_pending_mask);

Wasn't this meant to go away with ...

> +    if ( !test_and_set_bit(irq, v->arch.irqs_pending_mask) )

... the introduction of this?

> +      vcpu_kick(v);

Nit: Bad indentation.

As to the test_and_set_bit(): In isolation here this looks correct, but
when taking ...

> +    return 0;
> +}
> +
> +int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
> +{
> +    /* We only allow VS-mode software, timer, external interrupts */
> +    if ( irq != IRQ_VS_SOFT &&
> +         irq != IRQ_VS_TIMER &&
> +         irq != IRQ_VS_EXT )
> +        return -EINVAL;
> +
> +    clear_bit(irq, v->arch.irqs_pending);
> +    /*
> +     * The counterpart of this barrier is the one encoded implicitly in xchg()
> +     * which is used in consumer part (vcpu_flush_interrupts()).
> +     */
> +    smp_wmb();
> +    set_bit(irq, v->arch.irqs_pending_mask);
> +
> +    return 0;
> +}

... this into account - what about vcpu_unset_interrupt() followed by
vcpu_set_interrupt()? Shouldn't that also result in a kick? I.e.
shouldn't the condition above be whether either of the two bits
transitioned from 0 to 1?

> --- a/xen/arch/riscv/include/asm/domain.h
> +++ b/xen/arch/riscv/include/asm/domain.h
> @@ -54,6 +54,25 @@ struct arch_vcpu {
>      register_t henvcfg;
>      register_t hideleg;
>      register_t hstateen0;
> +    register_t hvip;
> +
> +    register_t vsie;
> +
> +    /*
> +     * VCPU interrupts
> +     *
> +     * We have a lockless approach for tracking pending VCPU interrupts
> +     * implemented using atomic bitops. The irqs_pending bitmap represent
> +     * pending interrupts whereas irqs_pending_mask represent bits changed
> +     * in irqs_pending. Our approach is modeled around multiple producer
> +     * and single consumer problem where the consumer is the VCPU itself.
> +     *
> +     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
> +     * on RV32 host.
> +     */
> +#define RISCV_VCPU_NR_IRQS MAX(BITS_PER_LONG, 64)

In the revlog you mention also taking care of "the case if AIA isn't used".
I can't spot anything like this here.

> --- a/xen/arch/riscv/traps.c
> +++ b/xen/arch/riscv/traps.c
> @@ -169,6 +169,13 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
>      die();
>  }
>  
> +static void check_for_pcpu_work(void)
> +{
> +    struct vcpu *c = current;

As indicated, please try to get used to using conventional variable names.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 14:50:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 14:50:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235109.1538152 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsMPf-0000K1-99; Tue, 17 Feb 2026 14:50:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235109.1538152; Tue, 17 Feb 2026 14: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 1vsMPf-0000Ju-6f; Tue, 17 Feb 2026 14:50:55 +0000
Received: by outflank-mailman (input) for mailman id 1235109;
 Tue, 17 Feb 2026 14: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsMPd-0000Jo-RA
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 14:50:53 +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 0e3c7f4d-0c10-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 15:50:52 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4837634de51so14585625e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 06:50:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483709f8812sm196258605e9.0.2026.02.17.06.50.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 06:50:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e3c7f4d-0c10-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771339852; x=1771944652; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=hL6gJuAhqkWwCk2BuqZmJOE1LypbiaDp8JQBFCKWYl4=;
        b=J1AK1ynwcCBTcQszhKLp0sMEsnL0ZEarlKWtbJC95i9rRL01Tvt3QKMCG0R6AxsFav
         t+IPpSssVJaIwI+2cXj9T+0slN/SsFbYQGnpNG6u3yfKrbed6VmW+c/7ZTgxY8h/3aZq
         4wbR8SLIIYvNSAXduNq4pebf0PGpi3wJ81purj37uhoMMrmhIvqn7tMSnF4R1s660u+p
         OXuHOfb682XZ0sDFEtsmHfWAsl7NT8vH8D3yJ0BNlYt4zt1uP3+EC8N6VRUTiaAv7Qu6
         ++a1IdcwVtvVAvLmSEMRE/DowPymATrzlarlloKifNUqWa1AziCsanDsr+aw1MfCK+IU
         +urQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771339852; x=1771944652;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=hL6gJuAhqkWwCk2BuqZmJOE1LypbiaDp8JQBFCKWYl4=;
        b=Z5WZ2wi2DnEkaS+518w0xbK6uSYY+geernZOL5jLWzSolk3f4UKZ4qZzV3tjiVt3ly
         a3SakPL7AVhiU1NwSh1BO8Y+x3xgFaS1xJbublphxDb3hzf1A3kvqc7ppfKJym+wKmuJ
         LLfASuOIPtrSMP9WiwXkr8RVV+toTH1SuEHI5eqzX+o7L3qExMdlpNhl18iT54mccIdy
         SkmY2Owu5yPseyhs/aJcAPrtbLyqdlhOzs2BwQm/s6PpyPOLsU6JtJTsXyAnIcR9Xk2E
         JZSRmIRPppkj9HDoOIY4aeZujWmgS65boUziiGaHylCbJ9UyhDnusTMejIxCTNpSdJua
         WHfw==
X-Forwarded-Encrypted: i=1; AJvYcCUslRR8liissW06Jr+Fxtz/SWnGHBQMQGNUt88zorQ5IwZ+oAlewGkpFwGH69PhVVUAUi2XQn1AJH8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxtTxX1zMRMquOB2/C/KREkdUWb7j8pOyUUiOg5T+Ny2dq0h2WL
	0p80jOJaxmk5hC2mfi1NKoCtmcq7G/p5HitESwwhXuzckGLOaw4f62ctVsOUwItDVg==
X-Gm-Gg: AZuq6aIr5qxXi1pAIsjF8usId31uwglWOpss+wi3LpkOpqr2F1Rel+2i6mkG6hTyh+s
	Bp5QGfouTYVra4Ij7GM+Qynql4xPWhtJf6yNZd0TCNhc07tGPc5uMN/iFip0T0rg3YkQ/2Kv1wJ
	hyd6TKayTHKT4jwyusLM9b1vSGv9LU1Tk1YTKGlqLZV2mvPM/AekmdLTIZBojjrg29nQvd5n/s8
	d5+PMJOWINhoOFodVnjLiq2dK9RZ9KFBBcDfaeddWQEsokjaCM40Y61d3Ajgm/g29BHWaUwSzRh
	wlmHwEkxQn2uLKAkwHPs3IlxIPvznNdCDSN+0Ond28qB4r1OyAwj6g/j9D/cUBdaNFxrh814koc
	oHEpfnq6K5qRzi9M12xksPt4AH+GOjXFWp7L9FDtI/y3ZB7tSOVwaQs74mgL1vc2YwXVu5/6eLb
	WSmtDT6xCgAVtYLxNURmx82Oxgsw/Wm3xtnkDdAn/1QETYuRu36/Km8cLQRdCIvfQUiZ9X6kG3m
	xUvdW9OWRWHyC8Gryy4eezAdQ==
X-Received: by 2002:a05:600c:c3dc:20b0:483:7631:befa with SMTP id 5b1f17b1804b1-4837631c7c9mr187444715e9.5.1771339851863;
        Tue, 17 Feb 2026 06:50:51 -0800 (PST)
Message-ID: <692bfb04-ed05-4c8b-a0d8-1a5ed383c877@suse.com>
Date: Tue, 17 Feb 2026 15:50:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 06/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 2
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <4e10c95d883c0d447b9e33a6d6a92e911aed6a23.1770999383.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: <4e10c95d883c0d447b9e33a6d6a92e911aed6a23.1770999383.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 13.02.2026 17:28, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -198,3 +198,34 @@ void vcpu_sync_interrupts(struct vcpu *v)
>  #   error "Update v->arch.vsieh"
>  #endif
>  }
> +
> +static void vcpu_update_hvip(const struct vcpu *v)
> +{
> +    csr_write(CSR_HVIP, v->arch.hvip);
> +}
> +
> +void vcpu_flush_interrupts(struct vcpu *v)
> +{
> +    if ( ACCESS_ONCE(v->arch.irqs_pending_mask[0]) )
> +    {
> +        register_t *hvip = &v->arch.hvip;
> +
> +        unsigned long mask = xchg(&v->arch.irqs_pending_mask[0], 0UL);
> +        unsigned long val = ACCESS_ONCE(v->arch.irqs_pending[0]) & mask;

Nit: As mentioned before, blank lines should not normally occur between
declarations (unless there are overly many of them). With the blank line
removed, personally I think things would end up slightly neater if hvip
was declared last.

> +        *hvip &= ~mask;
> +        *hvip |= val;
> +
> +        vcpu_update_hvip(v);
> +    }
> +
> +/*
> + * Flush AIA high interrupts.
> + *
> + * It is necessary to do only for CONFIG_RISCV_32 which isn't
> + * supported now.
> + */
> +#ifdef CONFIG_RISCV_32

May I suggest for this to move ahead of the comment, and for the comment
to be properly indented by one level?

With the adjustments:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 14:56:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 14:56:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235117.1538161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsMVQ-0000tS-S7; Tue, 17 Feb 2026 14:56:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235117.1538161; Tue, 17 Feb 2026 14:56: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 1vsMVQ-0000tL-PG; Tue, 17 Feb 2026 14:56:52 +0000
Received: by outflank-mailman (input) for mailman id 1235117;
 Tue, 17 Feb 2026 14:56: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsMVP-0000sy-08
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 14:56:51 +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 dcc11085-0c10-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 15:56:39 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so48279455e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 06:56:39 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dcfafcdsm797295895e9.9.2026.02.17.06.56.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 06:56:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dcc11085-0c10-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771340198; x=1771944998; 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=Cc0HR42lpxhaagfczSf3gYyiSL6+htisCak8cGTmgXs=;
        b=kfo3pxgHmYoTEdx3abOQ0KVKS/H1PmlPrTMnpBwPve0PGViYC0xHOjOum+4IUpdqQe
         oOqvlBJIT94hIqP+Cz6bFVk4pEw9yrOizmcv4aNaQ386x1E60UepL3rXsojD554jD4cp
         0Av1AMrFaDDpb5sPLtOvsQN0MgMTDawxcFJjuU5HYsvwjajmAbsmqbGTsSU+vblZRxRJ
         bhSb3fXUpA59AE1aUFD+ahd7VpH3Y/0gYTMeh7G+G2GTN91FO51PQDAjXTlxk5F5svM/
         6XyxCwfXLyqGLKTtNCxCx9yF8wyUSa7hSVvyF3kBhquumdbzm1Z2kXSvQh7Ma2vAkGhl
         TWBA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771340198; x=1771944998;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Cc0HR42lpxhaagfczSf3gYyiSL6+htisCak8cGTmgXs=;
        b=EmOTjkF+/BHntRaXcQECPOvxrGQvZbPkUUOD26F8flcmb1QrlCHeoHhn0P8aZTHGfz
         cF47JdpkzBhIet8UVXma+8SlgPpGMPBpqdp11G3G6JSfgtQVsTCU0jqyJUNfBooqgQfe
         DRhe6eEH2bS5uB/LNHov9M7PJPFzR93eOFICplXnV9Iha/sr4KKDP2PfDIbIe56ikDYD
         BmOP/UWWwLfiuMAXiNWGO3ZXH/P9ZA3/QjZ+raFGXs6xYh3c3I+j7c33Ped2K178K/Hu
         eDrTmubJDaliKBv7rb/5TsDWt/WTXFr+uZJptzbbFxuR8KTkqMSnc9EsZeA4lU7jK9kF
         4LTw==
X-Forwarded-Encrypted: i=1; AJvYcCVrpHnSPH68gYQ5xXpTzyRl8BWBX5foxmzZpBtrz5FErrlRlZUCsjIrg89fMFHuZraNK2h7fwxvAK4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXBBGK+1agbi94CkXuZCxY8AWjvdIyJFbQcJTL71F3va4G9Ebv
	JOwX2Y9UXeBkEF99JLY4N5vj+Dx72LcXDsEIndh41j6KGKhSbQ2UbNaq
X-Gm-Gg: AZuq6aL3SAyuyq3VBmMN/PLqVEWlIGHqpF9t/LnPYcK468f/MwqOOl5e9gSn1N1LZPC
	Vl4GXUTacye47yN+bvz9C3Dem6ZEFr2vo9r9m65QImOvuryZnSbkKf0RuafUf5DXIKo+k8GXFXW
	TR+W5WRaW3KOnWnPTMUaNj9I09yIFPS9YmxVw+Jj0z44Lv9X/KS9hn+TwZ6YJ60+a5KQh7nTaeT
	HZoMp6m9lUFpHDfC1mbnBi9+/JwF/DD28G5kdKcOLqctrHSdQaVb1JuQlCzlQ0C/zNZYqKACA+a
	VpHYJIL64eQ5St8X2k4bXbUMpbNhz07Rm6Gw/Mna6liBaZpkYzzCqqr2ar1xf6+Ma3/fFUA0/ej
	6JoXJHEZJRtqMoAFE/AcxymmwAwqt/H8ddaKfjC1Lvtx00CTO6eHzrzQ1FZ3M097dh36RhS94vB
	BwRawOxAJ0LTJS/1k9D5jvwEUGAN4TQfajDqvFfiKqfp3s9wuMgGf7ds0y/kWwUUwH/IT8bg3RU
	To=
X-Received: by 2002:a05:600c:6211:b0:477:93f7:bbc5 with SMTP id 5b1f17b1804b1-48373a09741mr255372255e9.10.1771340198191;
        Tue, 17 Feb 2026 06:56:38 -0800 (PST)
Message-ID: <c1bed773-5e50-4576-ab7f-685237d9f8d8@gmail.com>
Date: Tue, 17 Feb 2026 15:56:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 04/16] xen/riscv: implement vcpu_csr_init()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <7c58dfbac99694811e4276858b48baa211331229.1770999383.git.oleksii.kurochko@gmail.com>
 <07e6d8a4-c825-4d65-ab27-60ced2f25e79@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <07e6d8a4-c825-4d65-ab27-60ced2f25e79@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/17/26 3:23 PM, Jan Beulich wrote:
> On 13.02.2026 17:28, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -6,10 +6,74 @@
>>   #include <xen/sched.h>
>>   #include <xen/vmap.h>
>>   
>> +#include <asm/cpufeature.h>
>> +#include <asm/csr.h>
>> +#include <asm/riscv_encoding.h>
>>   #include <asm/setup.h>
>>   
>>   struct csr_masks __ro_after_init csr_masks;
>>   
>> +#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
>> +                         BIT(CAUSE_FETCH_ACCESS, U) | \
>> +                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
>> +                         BIT(CAUSE_BREAKPOINT, U) | \
>> +                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
>> +                         BIT(CAUSE_LOAD_ACCESS, U) | \
>> +                         BIT(CAUSE_MISALIGNED_STORE, U) | \
>> +                         BIT(CAUSE_STORE_ACCESS, U) | \
>> +                         BIT(CAUSE_USER_ECALL, U) | \
>> +                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
>> +                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
>> +                         BIT(CAUSE_STORE_PAGE_FAULT, U))
>> +
>> +#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
>> +
>> +static void vcpu_csr_init(struct vcpu *v)
>> +{
>> +    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
>> +
>> +    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
>> +
>> +    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
>> +
>> +    /*
>> +     * VS should access only the time counter directly.
>> +     * Everything else should trap.
>> +     */
>> +    v->arch.hcounteren = HCOUNTEREN_TM;
>> +
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
>> +        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
>> +
>> +    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
>> +    {
>> +        register_t hstateen0 = 0;
>> +
>> +        if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
>> +            /*
>> +             * If the hypervisor extension is implemented, the same three
>> +             * bits are defined also in hypervisor CSR hstateen0 but concern
>> +             * only the state potentially accessible to a virtual machine
>> +             * executing in privilege modes VS and VU:
>> +             *      bit 60 CSRs siselect and sireg (really vsiselect and
>> +             *             vsireg)
>> +             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
>> +             *             vsiph, vsieh, and vstopi)
>> +             *      bit 58 all state of IMSIC guest interrupt files, including
>> +             *             CSR stopei (really vstopei)
>> +             * If one of these bits is zero in hstateen0, and the same bit is
>> +             * one in mstateen0, then an attempt to access the corresponding
>> +             * state from VS or VU-mode raises a virtual instruction exception.
>> +             */
>> +            hstateen0 = SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
>> +
>> +        /* Allow guest to access CSR_ENVCFG */
>> +        hstateen0 |= SMSTATEEN0_HSENVCFG;
> I continue to be puzzled by the use of = vs |=. If you use |=, best do so
> uniformly. Then inserting new code ahead of the one you have now is not a
> problem. I wonder anyway why you don't do (omitting commentary):
>
>          register_t hstateen0 = SMSTATEEN0_HSENVCFG;
>
>          if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
>              hstateen0 |= SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
>
> As to CSR_ENVCFG - what's that referring to? I'm aware of menvcfg, henvcfg,
> and senvcfg. But I'm unaware of plain envcfg, and there's also no CSR_ENVCFG
> constant in riscv_encoding.h afaics. I assume it's senvcfg that you mean
> here.

I referred to CSR_SENVCFG, I just automatically applied the way how it is defined
in Linux kernel and Linux kernel abstracts it as CSR_ENVCFG as it could be booted
in M-mode or S-mode. There is no such definition in Xen as we don't use it.


>   And then - is this CSR unconditionally available? The "Supervisor ISA"
> isn't called an extension, yet at the same time it's also part of the
> separate "privileged" specification, not the general one.

I don't know, the available specs aren't precise here. Considering that
OpenSBI(menvcfg) or Linux(menvcfg or senvcfg) uses them unconditionally
then an assumption that CSR_*ENVCFG unconditionally exist could be done.

Anyway, a ENVCFG bit in hstateen0 depends only on RISCV_ISA_EXT_smstateen
(or Ssstateen extension) then it is okay to set that bit and even
CSR_*ENVCFG isn't implemented a trap to Xen will happen and it should be
handled somehow separately as I mentioned above Linux kernel uses them
unconditionally.

>
>> --- a/xen/arch/riscv/include/asm/domain.h
>> +++ b/xen/arch/riscv/include/asm/domain.h
>> @@ -48,6 +48,12 @@ struct arch_vcpu {
>>       } xen_saved_context;
>>   
>>       struct cpu_info *cpu_info;
>> +
>> +    register_t hcounteren;
>> +    register_t hedeleg;
>> +    register_t henvcfg;
>> +    register_t hideleg;
>> +    register_t hstateen0;
>>   };
> One question about the ordering here: It looks to be alphabetically sorted
> right now, yet I wonder whether that's optimal. Some CSRs might typically
> be used together, in which case they may best live close together (for
> chances to be good that they end up in the same cache line).

Make sense, I will group then hedeleg and hideleg.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 15:00:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 15:00:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235127.1538172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsMYS-0001iD-Dh; Tue, 17 Feb 2026 15:00:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235127.1538172; Tue, 17 Feb 2026 15:00:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsMYS-0001i6-Ax; Tue, 17 Feb 2026 15:00:00 +0000
Received: by outflank-mailman (input) for mailman id 1235127;
 Tue, 17 Feb 2026 14:59: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsMYR-0001i0-AK
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 14:59:59 +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 53277553-0c11-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 15:59:57 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4837907f535so30213365e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 06:59:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835dcfafcdsm797593575e9.9.2026.02.17.06.59.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 06:59:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 53277553-0c11-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771340397; x=1771945197; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=/CYrcFEt3vGVceGxtOUFzfPgovofweU6KoacVz4zb7U=;
        b=Z090uPW9vdcs2xqyNvMm7EYDdyTZnK/+v6oJmXDUFteHZfGRcKIPTNqx2wATY9f6gA
         kNqGDULtXF4nqyxrKH5AGhRXzCA8NI6z6HQ7YGVqbndDixb0TvCgDqcU5DDm2DDEUvYj
         sn9s/4jh303kuCv7SriV8y+v3xIhVzG+4QfgsC1AO38JMHpDMdv9PZ4pM64AV7bs1kFQ
         qM9xFSPy8VRhmb7o2cowaqJkSnNRlX3C3RR2VxD+Eo6hj20v+Il5nhDVzKJYMcBXwuZA
         4VSPWK+JxaZbfi/7c56gHmJj4UN25qEV7F6pxsIkJeVzM+R3Rlzxfk6oi+XQVu2e6iZ5
         HjMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771340397; x=1771945197;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=/CYrcFEt3vGVceGxtOUFzfPgovofweU6KoacVz4zb7U=;
        b=kV+P73wa/EftTtBg65x/Icx1HzQEnZVHJjQJdciQyryOUQgoivfdpmPUq49W1hR2Yd
         GUqHwPEFsp94hatQFmiYwbc0a8g/081SFRathEPW0ojlXfPhNZZtOcEq2JpZ4YFh0Mm2
         1zcRtBSuHNetWqQY+NoQeMZWMk/MQZ890J93gPUe8sJz3CYW3SQVJewsw2eGdoKv85cu
         WCyM9w4QgJ0BGm5pDORa5G5F2UPhdrYGk1RCIxaAohDycyqZLeJ0JM/KhUIO8y3rs8bv
         CsR6KUtaK2yCwJ/GOPP40TUnpMlL40xPy1Wz/xrZ1d+kS7Rnd7bXWL4qyXnnYL9BBPfn
         8MWw==
X-Forwarded-Encrypted: i=1; AJvYcCWBejBk7ghg5qA1AnyJImtuxEqh4YrkIrWIswEf90LZAEgBxRuqDnxgD2MalgeG1H7J+EG8gwLb6TE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFDzsC0trLCfwWhmBSnmKt/aV7PxDO3OOlD+s7KkIBak2I0s4K
	2ErdAub+Dy2YkmPLyHwx10EPF2ibSD9AuUfXrYKiAKR5vMwQ/EX9pyh57Lfkt9SnBQ==
X-Gm-Gg: AZuq6aK6FgBiS31DVuDHnSpKis+yvbNSAHUAJVRCjQTEaZ2oh16+tQ48x1gp/9nhFPF
	ak+JC31Q1ALqEA32Bkskp0scHccOfuEgQy/5P2NMirVAyf4Eqyp6W0Zud8btP6VKIZxWzfalw4y
	+cq+iyEbXY+DMZUe09dUdkhCLGQLAfxdfMd5k37xiDNmzYwffk3ZR89A24ElrBIU1ktzjuCkI78
	A5O5OBmh5z4c9qQn/L0zCDmg/iQIAm5rMCwBQLRj6LFovY1nZxpAmkI/7wJdAgXvkpoecV+me8p
	ruvT4O4wZd6G8biaqrnSOnMIyh8/Cco1JZTKvXapLgMOYK0Cg+ijxDkx5Ku3xgHsnItap96qwYH
	rwW66O7RWzhDRIsyw3JsSoL1SgX7SlXH5O9JsvLM1/wto+mXN8W7LW8dbWO6YwWzb4qClIM0hm6
	HWRoP2lGMVFXbYZXXfCyPkN/In7TCIJQbkiZz/yN8C+HNtxjItPXTxw5C4EFIr+rO36ufmEWbY4
	uKGtNSOmky0klY=
X-Received: by 2002:a05:600c:6814:b0:47e:e78a:c834 with SMTP id 5b1f17b1804b1-48379bf4788mr187254045e9.34.1771340397037;
        Tue, 17 Feb 2026 06:59:57 -0800 (PST)
Message-ID: <f7a05f4d-b547-4b5e-aaa5-88e249c88b4e@suse.com>
Date: Tue, 17 Feb 2026 15:59:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/16] xen/riscv: introduce basic vtimer infrastructure
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <7426e2d974bfe67786c67709d487c7f64c22ae58.1770999383.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: <7426e2d974bfe67786c67709d487c7f64c22ae58.1770999383.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 17:28, Oleksii Kurochko wrote:
> Lay the groundwork for guest timer support by introducing a per-vCPU
> virtual timer backed by Xen’s common timer infrastructure.
> 
> The virtual timer is programmed in response to the guest SBI
> sbi_set_timer() call and injects a virtual supervisor timer interrupt
> into the vCPU when it expires.
> 
> While a dedicated struct vtimer is not strictly required at present,
> it is expected to become necessary once SSTC support is introduced.
> In particular, it will need to carry additional state such as whether
> SSTC is enabled, the next compare value (e.g. for the VSTIMECMP CSR)
> to be saved and restored across context switches, and time delta state
> (e.g. HTIMEDELTA) required for use cases such as migration. Introducing
> struct vtimer now avoids a later refactoring.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Acked-by: Jan Beulich <jbeulich@suse.com>
with a question and a remark.

> @@ -126,6 +130,8 @@ int arch_vcpu_create(struct vcpu *v)
>  
>  void arch_vcpu_destroy(struct vcpu *v)
>  {
> +    vcpu_timer_destroy(v);

It feels pretty late to do this, yet I notice vcpu_teardown() doesn't invoke
any per-arch function (yet). There's arch_domain_teardown(), though, which
technically could do this for all vCPU-s in a domain.

> --- /dev/null
> +++ b/xen/arch/riscv/include/asm/vtimer.h
> @@ -0,0 +1,20 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * (c) 2023-2024 Vates
> + */

Is this correct? Is this needed here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 15:20:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 15:20:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235138.1538182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsMsg-0005p8-11; Tue, 17 Feb 2026 15:20:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235138.1538182; Tue, 17 Feb 2026 15: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 1vsMsf-0005p1-U9; Tue, 17 Feb 2026 15:20:53 +0000
Received: by outflank-mailman (input) for mailman id 1235138;
 Tue, 17 Feb 2026 15:20: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsMsf-0005ov-6T
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 15:20:53 +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 3ebe7f0c-0c14-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 16:20:51 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48336a6e932so26166585e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 07:20:52 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48396d1d544sm130305e9.23.2026.02.17.07.20.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 07:20:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ebe7f0c-0c14-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771341651; x=1771946451; 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=0Sk2zHM1ahDdGYPc9wYlwPm2BKr3vNH/73NPzUFOCxQ=;
        b=gw3wMZMr2JlbIermsT7weYbImIUx4eoUhIwr2sO6JyGP5wreWUlXYoGIU+irxBxciA
         1+oSpI0UcVUyAiZu4w39mk7+61dqqyeB4jg/lyGqU9KXlRCGUigYcCLiC/5lLZ+pSehY
         oFTv6/MWojJ5FEO6+Ig4CGup4ElOjVLUnsLDrsd4ps7Fep2tYe0SVO1RkBdME12UtYS/
         D8C8QzSeX0hlhO+TQAN5MvaVH4Claol6w5UnI3NyRWNoU+WWxCZCKhr6m2DA8MDGQemh
         2Jz5L2UFNqtCTQY/Ew5XXbUT1JSK2mP2wJNshhzZmPJCgChDl1ZyM8P/N65Ywwp9srG0
         B8tw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771341651; x=1771946451;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0Sk2zHM1ahDdGYPc9wYlwPm2BKr3vNH/73NPzUFOCxQ=;
        b=BKnqrXZWsVSJTAb3NvRoav3LCrKMguQ60edl6np3daEbMD92U3caEcFVHYXD0/kmWT
         8UxrtJGVBPqluLS5nZHDdb1LQSfa5dmEJEleJL4glCGdSa9EtdIr++JllemAMWCsBT3k
         5bfoUYgEoBrUCOULOvQ1fiNGu8RciT7QQ+WXnuUSWRFOt6cBExjxFh0R6W2DSwn3+eqY
         r/5+saUR3JBtj6UFCMlEFq2cTmwhBughfaJTPHSZJPFR3o+qN1OjCpOJc4DDSITGYWZ2
         4U+zSLp2RKNSpACOcgeDNZdyqJIimmGaymfod1b6YLjd4Fsk+Xp1kIDEa/BuRWakVz0Q
         7hNA==
X-Forwarded-Encrypted: i=1; AJvYcCWxr3a455U1xvYuK/UblBFXRsnGifIQ8XkeJM82F3PxJ5IX7MPxecPUN0GODEQkQm6ZMlyQeBed0PE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzJ4iQZ/0UCU64Fas4+dlnMmyv03R5SYnyGkhINTmgWZ9yYoVUZ
	9apuvhF6/BVBexXDqWb3BrwLnvxG0se8Ttc8j6LXDB2h9nvvb89ZF1lr
X-Gm-Gg: AZuq6aIDi6vNXROvXyeWncPD/+FTtYg+yT3R8HUG4WO7QoslYBxxUKZH0WDrflZIZrh
	n2VZQpGLYfRjpmrGr4zgpUnbdl57i+tXVWVhku6sXF/nwpcFYrnAUIEjZF3psrJE3cD9DWr9jZo
	0rQP0RIVCfkGZ8+vDANwBEkXYgepi+bqbnxL7viWZ7Y3opuRr+2XwY44FtVCwqsp6XMg0rWuQEA
	hSgE6GvXPANwv1ByY9VkWvq7XSLqUq9jhWLQdUmlLHOhIlm1iPcexn1aQaQhzOhWpinDDzioO8L
	2jAvgLok5EWReTZEKz5TfYLrY/DJnYeqGP2KWlCvp5EOPHKA1wW8HcX59CUfLr7XKd9Nqkz9D7O
	AP+2pctDYAKG1MSNVFy7l2jQFqlxZo7gVmQcFb5S286PB08Nbd9n8xIQkuz3YDT1L2QO8SwTcDT
	mEOxrFd6QcmapwyTi/HHyiNxiR1uAX35wEzR5doeq7eKlqpRvPwa9edULNi7Kn1VORfv/t2ufAk
	10=
X-Received: by 2002:a05:600c:6814:b0:483:43da:6c87 with SMTP id 5b1f17b1804b1-48379c14894mr201939215e9.33.1771341651115;
        Tue, 17 Feb 2026 07:20:51 -0800 (PST)
Message-ID: <211c492f-23e1-44ae-8601-ecbce8650e0d@gmail.com>
Date: Tue, 17 Feb 2026 16:20:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/16] xen/riscv: introduce basic vtimer infrastructure
 for guests
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <7426e2d974bfe67786c67709d487c7f64c22ae58.1770999383.git.oleksii.kurochko@gmail.com>
 <f7a05f4d-b547-4b5e-aaa5-88e249c88b4e@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f7a05f4d-b547-4b5e-aaa5-88e249c88b4e@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/17/26 3:59 PM, Jan Beulich wrote:
> On 13.02.2026 17:28, Oleksii Kurochko wrote:
>> Lay the groundwork for guest timer support by introducing a per-vCPU
>> virtual timer backed by Xen’s common timer infrastructure.
>>
>> The virtual timer is programmed in response to the guest SBI
>> sbi_set_timer() call and injects a virtual supervisor timer interrupt
>> into the vCPU when it expires.
>>
>> While a dedicated struct vtimer is not strictly required at present,
>> it is expected to become necessary once SSTC support is introduced.
>> In particular, it will need to carry additional state such as whether
>> SSTC is enabled, the next compare value (e.g. for the VSTIMECMP CSR)
>> to be saved and restored across context switches, and time delta state
>> (e.g. HTIMEDELTA) required for use cases such as migration. Introducing
>> struct vtimer now avoids a later refactoring.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> with a question and a remark.
>
>> @@ -126,6 +130,8 @@ int arch_vcpu_create(struct vcpu *v)
>>   
>>   void arch_vcpu_destroy(struct vcpu *v)
>>   {
>> +    vcpu_timer_destroy(v);
> It feels pretty late to do this, yet I notice vcpu_teardown() doesn't invoke
> any per-arch function (yet). There's arch_domain_teardown(), though, which
> technically could do this for all vCPU-s in a domain.

Why it isn't enough to be implicitly called by domain_destroy()?

>
>> --- /dev/null
>> +++ b/xen/arch/riscv/include/asm/vtimer.h
>> @@ -0,0 +1,20 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +/*
>> + * (c) 2023-2024 Vates
>> + */
> Is this correct? Is this needed here?

I'll just drop that to be aligned with other headers.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 15:28:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 15:28:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235147.1538192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsN0F-0006aS-Np; Tue, 17 Feb 2026 15:28:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235147.1538192; Tue, 17 Feb 2026 15:28:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsN0F-0006aL-L8; Tue, 17 Feb 2026 15:28:43 +0000
Received: by outflank-mailman (input) for mailman id 1235147;
 Tue, 17 Feb 2026 15:28: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=+1Z8=AV=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vsN0E-0006aF-83
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 15:28:42 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54b5b052-0c15-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 16:28:39 +0100 (CET)
Received: from BY5PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:1e0::13)
 by SA3PR12MB9227.namprd12.prod.outlook.com (2603:10b6:806:398::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.13; Tue, 17 Feb
 2026 15:28:27 +0000
Received: from MWH0EPF000C6186.namprd02.prod.outlook.com
 (2603:10b6:a03:1e0:cafe::bf) by BY5PR03CA0003.outlook.office365.com
 (2603:10b6:a03:1e0::13) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.16 via Frontend Transport; Tue,
 17 Feb 2026 15:28:23 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MWH0EPF000C6186.mail.protection.outlook.com (10.167.249.118) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 17 Feb 2026 15:28:27 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 17 Feb
 2026 09:28:26 -0600
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; Tue, 17 Feb
 2026 09:28:26 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 17 Feb 2026 09:28:25 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54b5b052-0c15-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Z00m+dYYHVGlyRrLYlfnvNeeMm01haCMT99LcpRdk9q/wfDSVDHZqPx4a3DVXXoZNAynlILBwzasZelTL2b+0uFo7FhVZJLYSU+RUAL89sL/QV1Mg3+4aq0Xs+MwTenmJAbY4Y/LW/vit9SGXhq2mZXz+sKg+64xpZje4+xN14xFI6lzrsEZ6e4sJKK4/ceWL0+Uom3XkL7IctSNeLJvTak/LXfKhQj35UTWUl62QQLH6YhQ6zc60OE3c8XTTCd0tonhRHkBfTqk4tir2cdVqBYB0O1T+Y//tTHcnYv2vGRYi5uZJRIf2S4MnhmnbeSN5u2f5avCyzanl/E5jPNDRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OxcUDoQL252eVzIou23h+L2DSICCWKQ62YBpeBJIlew=;
 b=cZkdrMldOcErfgM1WIxHrNklyLOsmPJeGTOnpwftOXra57xI/innyHhysTAEj+uezGZN8YzTueLqK26UD9PR4RrWpubTrGwS3hhioFDFq+gtmSYJx3x0Umv5y0e51McIune9gK3ErsXeL5vDDC3UFk2rMcsbZUrIUKwtvNhhDrrfByhdJAGDjgvw0TvMlrLg79Tn3mCIN/zQpc0YyMNr34XN4yWS6oKonaMglWUrXuMytyXKY3sBbA7osO+fWaZbKKGzrjFN6mYokf3d6wwymceF48+nk9zNyJehs6Ft2LjR51G2nXf3xS0QW4dHcQl/4Smq4ByYXLs09wrYQwlbZg==
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=OxcUDoQL252eVzIou23h+L2DSICCWKQ62YBpeBJIlew=;
 b=hTedhwBqBBaNAqdyG7clUxIl5F8RdPIx5yDWH5XsexhEVZfaQlzffJ0qsdS0D4RwxW9YIo+g6jMDqAowYQHLXW67pbS4mct+1UIWxkUkAlu/FUARbtNuJF9JP04i/A0y1h9/bcwsQHir0sG+YN+yEiXiV9hMNZhmAoL15hE4Muo=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <abd54c11-28fc-4487-a2f8-733007d361ae@amd.com>
Date: Tue, 17 Feb 2026 16:28:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: tighten translate_get_page()
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>
References: <1d898900-1072-4ea6-ac4c-1262905cab29@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <1d898900-1072-4ea6-ac4c-1262905cab29@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6186:EE_|SA3PR12MB9227:EE_
X-MS-Office365-Filtering-Correlation-Id: ebf29c3d-5cad-4540-8170-08de6e39326e
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?YnpFcFNtcU14cGxwa0grSUxrQjFsZWt6cWRVOTJQakFyNVFEMGRlRVI1RDBI?=
 =?utf-8?B?VUlRZWdQQ0VDbEo4V0VWcW9wSWkzWjRzVXpSVnBjRFJqL0hsTkM1S0lWL0dS?=
 =?utf-8?B?ZytyUDB6Z0M3Z3UreFd2cE1SMzFhTlFVOW1YbFR0YXRiR3QyRE8vSk1LbVF3?=
 =?utf-8?B?eCtTTjI3Nys3WGQvWUNpQU52cFJic2JRZzdEbnZZMis0c1ZxZW1ITldySElW?=
 =?utf-8?B?K0pxMlJaaHhLaUpiNnhycEYyVkFENG90U0ZtbkVwVEtNVmVBSVdYY0FmSDRk?=
 =?utf-8?B?SFVOQWh1WkR3V3NWeGtSUXpEd2NvVHRzaWxrOFZlbkFPK3c1K1VsL3N4ZzRS?=
 =?utf-8?B?ZklKNWdRZVdYUmx6SjRidjRuMjNqREJXdUFsSndKSTVBL09HMzlQWVlqcUhz?=
 =?utf-8?B?NzRNRU9RZjZaQ00rckJwWE45dHhnSCtVVjBGZXI2d2FYelZ5Y1licWczcklr?=
 =?utf-8?B?b0tyNHZXZ1o2aVNpZTZra3RGTmJxRFFkOVZFNjdrK2xzTnVKZ2FpdGRFU21j?=
 =?utf-8?B?MjRucGdOOFBwcFJEdmVsR25RbVJkN1hqaUthc1Arem40cG5UVzZsTmZScXZW?=
 =?utf-8?B?aytGNzVYNDlSZ2locmlZTVBjZDljNitnQ0hXQXF5R1ltRlhLWWlGTTE5SnhR?=
 =?utf-8?B?NmpIVjNraXRPVnpha2loTFRhbjZLUkdxTWVPZ3cwTDJBTGJ2L0JDYlg5TW1S?=
 =?utf-8?B?eFN0OWRJS1RId2lEN2UybnBETzg2WkY0K1NvSUxqbmZMRU40R1RORmVFVita?=
 =?utf-8?B?dlV4VjR6dFB6bEs0TnhiVERaN3Brbk5sTkRzMm1qUkkvMG9lR2lKbTE0YnF2?=
 =?utf-8?B?VkllTkxwcDRRVlRDT2h5c0VYd1Mwc05CcnA4MllXcVhkKzNDNXpwSmdmOW5W?=
 =?utf-8?B?VEdHcTdFZ2RTL3hKRXJBS1YrOStlTmN6R0tnbCt6RnRIT1JHRzJxZUd0dHJG?=
 =?utf-8?B?UXd3WFkwTW90U3JSZ3YrNUE5b2F3d3U5eElsZm9ORkxKZktmK0I5RlUvQUNY?=
 =?utf-8?B?UjZ3RTcxZGU5MlRWUWhEcHB2RWFNbytnY3RJK09VeUdvb0J5dldhMEN1R21S?=
 =?utf-8?B?aHdqUHZiTGplVUZEZk9NeGJNY0VaZHZyRVk0SVJHaGJ2UTRFUUFET2lpYjFI?=
 =?utf-8?B?WEx4c1BSelJLTDNuWW52Rk1lZ2lKekdkME9TMm9odFFYVCtmRXNMUU4veHBa?=
 =?utf-8?B?emxpYzkzTGJtZjBwOWU3V0lsNlJCNHcvWlV0QTY1c0hmTXFZbEN3dDhpZ2Rr?=
 =?utf-8?B?K2pUS2xVSnNWb1Q0Ulp4ZTB4NFJlcVZwODYwWThmaURhaVVOQVY3QXZmWjVi?=
 =?utf-8?B?Wmc5YnptS3JOR3Q1WFZJTU5PUnlMUFdHTEhyTFU4Qi83Ym8xMXhoTHZTM2dl?=
 =?utf-8?B?TGgwYUJWNDAzM1VxVDFkbmJJclUrTFFWbWdPRU43UVdWTE53amhtNDVoeEln?=
 =?utf-8?B?Y1BmaC9RSVBLcDB2NEJyKzN5VUlXNlhRTHdQUi9nWGhGUWgvYlF6Um5jWVNN?=
 =?utf-8?B?UWMvQ2QvRnhEQm4wRFVJTWs0NE5SRzhVL3U1cHdPUjY0dVE2ZTZHb1d2TnVO?=
 =?utf-8?B?NVNuL0ZUbUlrSXh3QzJudWVrSHRvNVpyU010eW93bDMvS2doTWxvaFlua0hH?=
 =?utf-8?B?MHNJSzNWTHl2RWdjMkgyaGI1ZFd2OWRPK0ZweER4b28rMXdKL2Uwb2Q1dHp1?=
 =?utf-8?B?TXRqeS9ydytDelFzY2t5UCtsNkRYUnhEVGRjMjdSazRYbStJbVVqSUkwWHQy?=
 =?utf-8?B?cnI5TVQxK2pIMk1kdEhzRElEM0hxc204RTB6V1NVL29WQmRmRWhVb2tQQnlr?=
 =?utf-8?B?dnUvWlAzQm9KOFZ5bzVmS2d3cHFsd1YvUXdNN2V6L2lVU0VVeUpWWVZYcUkr?=
 =?utf-8?B?TFVDZUl6WDIxOW9GL0oxS2xTb2hmRk5qUlNFbVZ0QmFTenk3RW0zVGgxTnc4?=
 =?utf-8?B?SnpBQ2NjeVo3eEIxa3QxTzM2aWxKU3lpSFNKNXpSTlpzUS9QakRxbFFGNGUx?=
 =?utf-8?B?MXVaNk81bUw3SE9QVGJHRE5IU0cwZHZwZzJUWTBkamVjVUp3aWR3Q0dZN20x?=
 =?utf-8?B?VHZoc29xM1pwa0J3d3RlSWxuKzVJbUhSYlVlYnNsRG9UQVZDNUFvNEZoU3BK?=
 =?utf-8?B?UkFuMDBxUE1BeWhXbzhtMVhsS2p3KzQrdmVxb1dteDhBUjNrQ0R2MTMxQmI1?=
 =?utf-8?B?VGcyTmQ5Y0Mrdy9TRlI4QjkyTWQzaENxU3RzSFpLTXAzbVNyVThKMTBoTEZL?=
 =?utf-8?B?QnBydE9XOGxya3JZY1UwbU45SHlBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	MOuVGzpZeyMRQeA1aN16vTX29bVYCP6OXILmc8mc47pwGdlp1vmxlEhk1AOjaHQkZiwYGT8d0Eu0+l1K0G9aimE3+lXkhSGUwrx8awpE5v+LnHrKSpmJ9jMwzaV7a0+0Hen3zm5W+ckLLDevJNYH42GwO/gTLGig26c0cQayZIfZOXBvNessmX+J1Cs+sS4LZx0WMrk+truv0O73rO0BIgLMxcXkhPRIQ9T0R9gkCLXyYdjQCbvWm8+Gm3rzMOjP+q+XJwYWfavCY0/EFws3XMPZW9S5HSZIoLDW0i8xgV1OjH4V+yO9Aw07ZsDYlsoW3tWPavwXhu3GADPCDk5LGfuMq0dEfo52uikCdaG1hL9umba/afdq8TU5H8OJl1TDs2dBE1NvOodqlqQGLDUh6zhloWMfdwfoOr8x3he+k8qZHlDdATyGJQMUzzBxwCph
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 15:28:27.0152
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ebf29c3d-5cad-4540-8170-08de6e39326e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6186.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB9227



On 16/02/2026 16:20, Jan Beulich wrote:
> Permitting writes when the P2M type says "read-only" can't be correct.
> 
> Fixes: 1661158723a ("xen/arm: Extend copy_to_guest to support copying from/to guest physical address")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

> ---
> What exactly p2m_ram_ro means on Arm is unclear: The comment next to its
> definition says one thing, its use in get_page_from_gfn() says another.
> (I remember raising this point before, i.e. it feels a little odd that the
> ambiguity still exists.) The patch here assumes the comment is what is
> wrong.
> 
> --- a/xen/arch/arm/guestcopy.c
> +++ b/xen/arch/arm/guestcopy.c
> @@ -44,7 +44,7 @@ static struct page_info *translate_get_p
>      if ( !page )
>          return NULL;
>  
> -    if ( !p2m_is_ram(p2mt) )
> +    if ( write ? p2mt != p2m_ram_rw : !p2m_is_ram(p2mt) )
>      {
>          put_page(page);
>          return NULL;

The ambiguity you mention is indeed problematic. This mixes page type with p2m
type. The comment "The p2m_type is based on the type of the page" admits this
conflation for DOMID_XEN.

AFAICT, p2m_ram_ro is not used on Arm for normal domains. The only use is in
get_page_from_gfn() for DOMID_XEN. Maybe we could change get_page_from_gfn() to
always return p2m_ram_rw since DOMID_XEN has direct 1:1 access anyway?

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 15:28:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 15:28:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235149.1538201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsN0Q-0006rO-VZ; Tue, 17 Feb 2026 15:28:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235149.1538201; Tue, 17 Feb 2026 15:28: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 1vsN0Q-0006rF-SF; Tue, 17 Feb 2026 15:28:54 +0000
Received: by outflank-mailman (input) for mailman id 1235149;
 Tue, 17 Feb 2026 15:28: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsN0P-0006qe-Lm
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 15:28:53 +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 58ff8469-0c15-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 16:28:45 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso35250665e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 07:28:45 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a3647asm108277915e9.22.2026.02.17.07.28.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 07:28:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 58ff8469-0c15-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771342125; x=1771946925; 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=SEC8wNtR0aHxyEtQVj9l4OAuk5+mxZl0JEVCvALBNvQ=;
        b=jPV/lAfcKfX1DYHKJzEF6z7mYUkxFNV0XdqYNaT0hkvbYM4l7EzLaaaMViSDbjVq8G
         Nqe7KWng8+WluXU6q/4u7Nfsf/6UDkCaRgIgqk3tg0DybUAtJA8z+OJy4xZ9SLvckTXG
         cbZ6/aNVNW4QRIjsjDKLHpclQ5gzevT2qb28iEbOsPkS+FJzOsTI9Rno6rjXBHF3VCb4
         DcHgeqbYEl0QEIgvK3Rt6Opq7QoHEIwk1QR/t1rKn29LBy0E977gTW4wNaICo/D2vGX2
         715FenIKns7KRAQIP6IwWDH/bDXOaaLbgpqQD6XQW9sikXLN92jOntsWkDPNT5K+uC61
         oMWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771342125; x=1771946925;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=SEC8wNtR0aHxyEtQVj9l4OAuk5+mxZl0JEVCvALBNvQ=;
        b=JMYTqDEzBza4+S+MwIVEcka2Iqo5yJgLxUJyWDGYobqdcprISx01qoCxnDk+z0HpJY
         r6yC+ox7Zai+behCru7MvtaDc3cqGA+Cf4Zt+gVsrpCz+mRerZ3QU3lrgcFz2bwyfmH/
         GEKOAUknbyBkiSnIkZB7hq+PUwlJtNRWU8x9Znfa3nNryaU08tsxj4n1YSA0CSMn3N8S
         W2c3iEvn7Sn9NujftxuxfJKlPYZUgoik1x/Wq7ZiHpN9m8WZ4tuOiXwv//dNurVTnTCw
         EBVn0lF8ypCAhEg257RGwO7jG5fuzvR5I4LAxPRVeAr77+68mqGHt6YVVczBut82+dkX
         2O3g==
X-Forwarded-Encrypted: i=1; AJvYcCUxzzi9Rb+W/I/5k4SBrc2AsiL8CX9hCvuZ4kp5ioTbNkPnWTrgieRQUZ4n9ygI1sExe+nSipvSa98=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyAPpAPd372Lu5msMLlkA3pHooVm9p+VrNJ90wgA31E4Iyao3Ce
	nTZl8nPfT0EUwPCS/PzOPlSNG0BGFp8HXWS1rHYuSGuG8E00jOMgA/f9
X-Gm-Gg: AZuq6aKVubBlgUp20+Z5b8I9bFkVeUUYQz2TGqOiHFmfTtno0C4hQMIIWAgx9Cbmcpu
	wAj7jF2jVwxyWDpfNL1MRkKg5LxOfgDkDFC5xOLIQU1q+K1uX0EXXBEil3vjnYV3XbKuRKJ7hQ8
	OMzxIjVs0xM7uPQOhk/An/iHFpoIOyOJxvgOyk0WvDTZS2ZIa4A8Y/aBXQKvc7Rnnkt3s5/16sp
	FPiXVqn6rEiqslBvRrI1IiMqQlE6Srz8z+oiCRmbme12/k+BX2MLK3kLtATqsbeUwjctyGZ+bX7
	x9hFUhIJCF6T1BeMdoM86Jk0D6ZwycR2ox4SMxvb2+fVRxL5Cm+xf/P7HMKur+L8FUrh2117dgw
	Xh/aQgScMQwFDMUbIc3CgCmjkPLi1QvTVLAJrwG8JuDe7WYe836+0Cft74EjNwP+mvbXJ5HKZlj
	hWni4JhxbLBE6BrVyL6zuH573okbof9I7FV8D3WoxW2UYCi82ay2sqpGjeDxt31Ql5QFEG2Ts8Z
	2O0QKw21Gap9w==
X-Received: by 2002:a05:600c:3d87:b0:480:3ad0:93c0 with SMTP id 5b1f17b1804b1-48373a5d6d5mr205557355e9.23.1771342124745;
        Tue, 17 Feb 2026 07:28:44 -0800 (PST)
Message-ID: <ad227fe5-7ffe-4c80-aebf-cbaa89ae9636@gmail.com>
Date: Tue, 17 Feb 2026 16:28:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 3/6] xen/riscv: add zImage kernel loading support
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <308c5bc1de15b23c643d48f975799739f44dde8d.1770821989.git.oleksii.kurochko@gmail.com>
 <0bca8843-9c52-4544-88a6-87ddb110095e@suse.com>
 <f95c9cae-0d57-42bc-b435-3f29c54b67b9@gmail.com>
 <4253dd88-b408-43dc-90d3-f2d1d3c892b0@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <4253dd88-b408-43dc-90d3-f2d1d3c892b0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/17/26 2:02 PM, Jan Beulich wrote:
> On 17.02.2026 12:58, Oleksii Kurochko wrote:
>> On 2/16/26 5:31 PM, Jan Beulich wrote:
>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>> Introduce support for loading a Linux zImage kernel on RISC-V.
>>> Before I look here in any detail - where would a zImage come from? I can't
>>> spot any support for it in Linux'es arch/riscv/Makefile (whereas
>>> arch/arm/Makefile has such).
>> Good point.
>>
>> It is something that should be renamed as not Arm64 (Arm32 really has such
>> target), not RISC-V doesn't really work with zImage. They are using Image plus
>> Image.gz as compressed image.
>>
>> Maybe it would be better to rename kernel_zimage_probe() to something more
>> generic kernel_image_probe().
> Well, it's two things. In the description you explicitly say zImage. That's
> simply misleading.

Agree, it should be just Image, I'll update that part of commit description
in the next version.

>   Renaming the function (if indeed it copes with more than
> just zImage) would likely be a good thing too, but needs sorting with its
> maintainers.

I will suggest that then in a separate patch.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 15:31:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 15:31:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235165.1538212 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsN36-0000CC-GG; Tue, 17 Feb 2026 15:31:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235165.1538212; Tue, 17 Feb 2026 15: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 1vsN36-0000C5-Ct; Tue, 17 Feb 2026 15:31:40 +0000
Received: by outflank-mailman (input) for mailman id 1235165;
 Tue, 17 Feb 2026 15: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=idFW=AV=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vsN35-0000Bz-2W
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 15:31:39 +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 bf13e409-0c15-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 16:31:37 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id D7CAB440D2;
 Tue, 17 Feb 2026 15:31:35 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8316CC4CEF7;
 Tue, 17 Feb 2026 15:31: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: bf13e409-0c15-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771342295;
	bh=puQ35sN/YP9u5FxyFRkjewp/UfRrxV3//5EaxXedHyg=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=smLe5CfoaNmYtMa6Y9oXNUytHPZBHk+R9q4sXcVExwHoQBFyyp+a8CUiYwQEEHEyB
	 t2RVHuf4r6bCw4yWm8YKkY+4qxlXV4mPaPEGQSLxrRHt17ESVYi+ULmfIajYedIhnK
	 9lTLbMi2InG33oHj3s7ntktZVPKV5gSoIXSID/sWRkq4MdkTWndFDP6FprkoQEAfuK
	 ca1Xz0fB1npBWAXE8Cpn2CouqTPdEr3gdw7+reV1VGIHuvtcAK6NjFitMoOhZ0cTgX
	 C4rabPJR4A6lh4Xo4zWQgn2PgcCyvJlxvQA2ZabY15zW03EovDPl4tX/2Jla6ZBpjO
	 BQVJRWFsz+ing==
Date: Tue, 17 Feb 2026 07:31:32 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: dmukhin@ford.com
cc: xen-devel@lists.xenproject.org, andrew.cooper3@citrix.com, 
    anthony.perard@vates.tech, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org
Subject: Re: [PATCH v5] xen/domain: introduce DOMID_ANY
In-Reply-To: <20260205235126.3764953-1-dmukhin@ford.com>
Message-ID: <alpine.DEB.2.22.394.2602170731160.359097@ubuntu-linux-20-04-desktop>
References: <20260205235126.3764953-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, 5 Feb 2026, dmukhin@ford.com wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add a new symbol DOMID_ANY to improve the readability of the code.
> 
> Update all relevant domid_alloc() call sites and harden the domid_alloc()
> input value check.
> 
> Also, fix problem with passing invalid domain IDs in
> XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
> uses 0xffff as domain ID.
> 
> Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>


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


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 15:36:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 15:36:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235171.1538221 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsN7W-0000l1-WC; Tue, 17 Feb 2026 15:36:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235171.1538221; Tue, 17 Feb 2026 15: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 1vsN7W-0000ku-TW; Tue, 17 Feb 2026 15:36:14 +0000
Received: by outflank-mailman (input) for mailman id 1235171;
 Tue, 17 Feb 2026 15:36: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsN7W-0000ko-Eo
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 15:36:14 +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 5f9b0fe5-0c16-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 16:36:06 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so31539555e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 07:36:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a298ebsm136509565e9.13.2026.02.17.07.36.04
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 07:36:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f9b0fe5-0c16-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771342565; x=1771947365; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=FM0lAZ1LjaJF4V6XUF62gv2YltTFYUV0Mkcferf4Qr8=;
        b=Ttuuc/POaGy/ox/dE9Carf6T85l/Kg+sbLVRbc7YZRwFNFtyUeBFzYVpipuxMAYkUX
         u6ugMJ4V0KnKe2CQtJZbrpUTYgqyAwhYeioSq/cswDxb3sMQCawLi52nD3ex8FE7NB3x
         GSoZV+NZnqogZYpcOIDXIuCRKPcmloq+VvnrvtoKt0TLCDNam2FGZvw9Bzoqek+ZVWfM
         bfmSp58bjnGBl8W4zJ/AtNSxO8pHfnvAcxyZjCmOt/ZiTntWz7zQP0RZi7qGPp2h57/a
         J8D4TpyVLgymPJiwnZqYTDQDfWHNzfKBSCd9IB6Vxu3V6ekqhFV924ufcVzFuf7FOHZZ
         muTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771342565; x=1771947365;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=FM0lAZ1LjaJF4V6XUF62gv2YltTFYUV0Mkcferf4Qr8=;
        b=L0PvReIuhMpV1KJnin6achhq/SGab2UC529s15OnbjupNDLXD7Bp0+e41MpI13YEoJ
         hsu2I9OJVs/uMoQ5AsGf/9birzxzLFk4LBp3LF1nndV0oCu6d6VxhEsA9TQ4HOBB4VKT
         aWMjVNoMHn3JKbZA6jNLN8VqMZHCFSETdSfwmqpnALLIZU9qjItW+XucUasjQHKe8S1T
         6jypHXWog+Loq6CpiZGIvwCkVQMJ2QjV7ovAagoQzcyRZ65wZjAiRiNcC6tbaH8WNjKM
         4PBMeggvhwXHPh8Mr+EcgVVixO9SBN2FDhyiBZhW2/uU6qtFG5abEOOK6/QYGxpQ/aGA
         AIWA==
X-Forwarded-Encrypted: i=1; AJvYcCWyDwUHg57Nl9phnD9vhF0pOa0JpOYF9aCDacNFBtHnEsHGeK1uWgQZn9rYRbM9mHd1zc1yheUuxaA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyi6ip0WlC0cVbYxMdJjcUXRqECyJDy0+4kxuy4YZ1woUfy8L9p
	p7y6u/Mo/cxbjnxIuyuqHp/g5tw3kSz2lkzVXGuzFtqOo3TDq+VDzsoPGuVyXpwm/A==
X-Gm-Gg: AZuq6aIcuIFZjTDiN+zpzbCMw3O67x2LXpsgJ9Z0iBZwoRTVPbMY4lZYbeAVuV+dn+6
	dxZRpRZMBYWofPHX8r8ltRtFYlImJqmf75xU7OlP7aHdVgsrrXPM5Amso8FtkZDLrjjlgN7P4x6
	rscM8jblOr3XZBxsSxzQiIwP3n5C5vLfg1by3hPEjjAKFVwXO/DX/ifq1nC6famvSTOZPpV5LSh
	Z3efba97ywiWvoUiJbqL36KNbZgZ4PKl4qIN/JfLMpyV9fdeVpim3aMjGd4tcZ8Kd5cyV29E9/G
	j0lE16mYWUL+mR2QeP4Cr34FSzzYMJXwkIXGjB/1XcP3ChHn+5UHqDUwY65P1dXRkLvVVDDqe84
	MbkWvzXniuJE61BaiCG7tBRZ7mvIIRMfUZkQcUqgsZjcgbk/CxyfWC9HtJosjAzn9/tgl8wv7yi
	OnG/gfmEDJ6jCsM6/2Ub8tTDM4b4sfXy5trlO7ZE0E9zGNZSi1K6csDsOAO0NOk46K/YDZJ4ZW6
	bJqHZXX2D0ZOIoDlm/GRWRjsg==
X-Received: by 2002:a05:600c:450a:b0:46e:35a0:3587 with SMTP id 5b1f17b1804b1-48373a4e82emr241223725e9.27.1771342565407;
        Tue, 17 Feb 2026 07:36:05 -0800 (PST)
Message-ID: <b656b35b-2871-4b0d-9841-19070c4e6997@suse.com>
Date: Tue, 17 Feb 2026 16:36:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 08/16] xen/riscv: introduce basic vtimer infrastructure
 for guests
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <7426e2d974bfe67786c67709d487c7f64c22ae58.1770999383.git.oleksii.kurochko@gmail.com>
 <f7a05f4d-b547-4b5e-aaa5-88e249c88b4e@suse.com>
 <211c492f-23e1-44ae-8601-ecbce8650e0d@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: <211c492f-23e1-44ae-8601-ecbce8650e0d@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 17.02.2026 16:20, Oleksii Kurochko wrote:
> 
> On 2/17/26 3:59 PM, Jan Beulich wrote:
>> On 13.02.2026 17:28, Oleksii Kurochko wrote:
>>> Lay the groundwork for guest timer support by introducing a per-vCPU
>>> virtual timer backed by Xen’s common timer infrastructure.
>>>
>>> The virtual timer is programmed in response to the guest SBI
>>> sbi_set_timer() call and injects a virtual supervisor timer interrupt
>>> into the vCPU when it expires.
>>>
>>> While a dedicated struct vtimer is not strictly required at present,
>>> it is expected to become necessary once SSTC support is introduced.
>>> In particular, it will need to carry additional state such as whether
>>> SSTC is enabled, the next compare value (e.g. for the VSTIMECMP CSR)
>>> to be saved and restored across context switches, and time delta state
>>> (e.g. HTIMEDELTA) required for use cases such as migration. Introducing
>>> struct vtimer now avoids a later refactoring.
>>>
>>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>> with a question and a remark.
>>
>>> @@ -126,6 +130,8 @@ int arch_vcpu_create(struct vcpu *v)
>>>   
>>>   void arch_vcpu_destroy(struct vcpu *v)
>>>   {
>>> +    vcpu_timer_destroy(v);
>> It feels pretty late to do this, yet I notice vcpu_teardown() doesn't invoke
>> any per-arch function (yet). There's arch_domain_teardown(), though, which
>> technically could do this for all vCPU-s in a domain.
> 
> Why it isn't enough to be implicitly called by domain_destroy()?

It's enough; what I wonder is why it's done so late. Technically anything
that can be torn down in domain_kill() would better be torn down there
already. Just to leave as little baggage as possible to the rest of the
running system. For this particular one: If a domain was killed when some
of its vCPU-s still had timers pending, why would those need keeping on
the respective lists, and why would their handlers still need running
once those timers expire?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 15:42:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 15:42:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235180.1538232 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsNDP-0002Zn-JR; Tue, 17 Feb 2026 15:42:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235180.1538232; Tue, 17 Feb 2026 15: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 1vsNDP-0002Zg-Gi; Tue, 17 Feb 2026 15:42:19 +0000
Received: by outflank-mailman (input) for mailman id 1235180;
 Tue, 17 Feb 2026 15:42: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsNDP-0002Za-1f
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 15:42:19 +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 3cee54ea-0c17-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 16:42:17 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-4358fb60802so3214509f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 07:42:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abc8b1sm36396212f8f.23.2026.02.17.07.42.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 07:42:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cee54ea-0c17-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771342937; x=1771947737; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=T8uUFg8BBXPIHDAIb3RdpSZ2Y9djeAkmVXDbZzUB50o=;
        b=dqzPdQ2a3Ui+acyFIIeZjvMmvPEshhZXRN8d3ja4E63iPYNumWKHCeGrVotagsFsnR
         MWTvzfRy2gIXK9nnpKaV+qHUbOsLfUU3QV7HVXdP6mdX6iW6bIXGAF3NBZXaIE09DlC2
         ohZOAAbhkdaaBOyk6sz1GwRkkZ+lX2oNwb8iXY2ftuZvzt2ZVDHOWSdoNr5tPsdJIWLT
         t4a6UM+B9i7enfjpDpCoVr4F9Oh1CXeM2+nevTXzt9mO5fXkyrsNxFEPHGpspLuFZGIA
         csXeQpRxxCaJ8d11BCgRQ0Rer3vs17CUhM/1v4tjAUDdjDnsQGy3XFDCp5bUuD0KVJXH
         ZCCA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771342937; x=1771947737;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=T8uUFg8BBXPIHDAIb3RdpSZ2Y9djeAkmVXDbZzUB50o=;
        b=ueJ2GWoaUyjeRhyl8rPNG8T7+w5TNVljxMzmndVXXw1DeVnK5Yt4mkeY+uX6EgS/6I
         kr1gpKfE9sIX/TyXuvhGr7SdxrZy4x2KMpCY1LahmwBKZrx4lqI4Rax63ZGFJorOOCtq
         mV9yCHjSCpxMd1i3eEtr3EMKBXCtNGKMloeYxdk6EWFyb5FkgNR/vMkNrM2Y2fr1LOuA
         ovVVtdJEUaEjeZYjV5+pSeFAixKOw8WA2BJK82gkfi8gGxm72GfF3Lm3GW8QbwFKehE2
         HBMv3Xils4hpLHYbB38y2kGmtW+U3w8uie+Yh8XkDT2F7a1A+tvKnVIXeW/V5nLEAbnu
         f92Q==
X-Forwarded-Encrypted: i=1; AJvYcCURKXSWYmpQmCmJtXYwjnozSShGN/zG2OKPqCsy7lZKE/NelVvXGq9aK86r41G8SkVWWxx9PEbD5Xo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrYLoVdQZ7O8ZkF3IhAorO1i8XEhHuSMyn2MmmdEPZnHhEfhfL
	u8s6VO1rbZ3jjC+pzu6YbMSqA3VKkS2HE0AAt27iCYwaA0Pvpklhf365esQKxBt0gQ==
X-Gm-Gg: AZuq6aIpn7c52Vy14lJS7UkezUyopi7GeLz4r8zVkaVIk6eDdFR97cGHKTL2K3tbgWY
	qjxsHTQn4qyh/ADrkCChiqdTkoLMjhRh2AKwYnQWEamAtet72zt7uuvxTlmqoKv47dXRsVOQmNV
	7Z+VP6zbiOVhNDMdrLSG6UeH8AetlHWgj0aFbnRxOHu0AKgf+9yGeNcI/hVnVmxVOj1eKBwBe/y
	mkB5xzCuyvmMaYaw99nGfDj0MwcfLSJVYHi8ZIOMq5ygeKncsqDSRWsXdsxFfAMlZiOnOzqt6ta
	+X6D4i5SQP4995howMEHSSijNL0YAEqbrmj0JynPbV3W2cVjTxoIPv8Lp1u1ErVGnpi5lXfdFws
	tCM9hmKu02Bw01ybn2URZCSOBNNkrLt65C86nE2uz382nDqIaD+4mlGggfBKNY1+bNygnw+yxtR
	1S5ys/l37uT/5KhwsBe1udbz3FLy4vSfIfZPcZLCC139zHcPTaSjeR9wvHdZ5kVF/nuzLrmCtCB
	9dzjfruvXfwZiw=
X-Received: by 2002:a5d:5f87:0:b0:436:8f7e:a486 with SMTP id ffacd0b85a97d-4379d5e3fd1mr23932319f8f.11.1771342936683;
        Tue, 17 Feb 2026 07:42:16 -0800 (PST)
Message-ID: <f45864a7-452b-401d-9e44-b6283b38eec0@suse.com>
Date: Tue, 17 Feb 2026 16:42:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/16] xen/riscv: introduce sbi_set_timer()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <6d811ceefa3bfc4e6bd5d11b0a4d4eef886bc693.1770999383.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: <6d811ceefa3bfc4e6bd5d11b0a4d4eef886bc693.1770999383.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 13.02.2026 17:28, Oleksii Kurochko wrote:
> Introduce a function pointer for sbi_set_timer(), since different OpenSBI
> versions may implement the TIME extension with different extension IDs
> and/or function IDs.
> 
> If the TIME extension is not available, fall back to the legacy timer
> mechanism. This is useful when Xen runs as a guest under another Xen,
> because the TIME extension is not currently virtualised and therefore
> will not appear as available.
> Despite of the fact that sbi_set_timer_v01 is introduced and used as
> fall back, SBI v0.1 still isn't fully supported (with the current SBI
> calls usage, sbi_rfence_v01 should be introduced too), so panic()
> in sbi_init() isn't removed.
> 
> The sbi_set_timer() pointer will be used by reprogram_timer() to program
> Xen’s physical timer as without SSTC extension there is no any other
> option except SBI call to do that as only M-timer is available for us.
> 
> Use dprintk() for all the cases to print that a speicifc SBI extension
> is available as it isn't really necessary in case of release builds.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> Changes in v4:
>  - Add "stime_value is in absolute time" to the comment above declaration
>    of sbi_set_timer() function pointer.

Yet it still ...

> @@ -134,6 +138,23 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
>  int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
>                                  size_t size, unsigned long vmid);
>  
> +/*
> + * Programs the clock for next event after stime_value time. stime_value is in
> + * absolute time. This function must clear the pending timer interrupt bit as
> + * well.

... says "after" when, as per my understanding, it's "at or after". At which
point the final "time" in the sentence becomes bogus (says me as a non-
native speaker). Which in turn is what my v3 comment was triggered by, as
"after stime_value time" to me suggests something relative ("this amount of
time needs to pass"), when that's not what is meant, as the added sentence
now tries to clarify.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 15:54:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 15:54:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235191.1538243 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsNPN-0004Sn-LV; Tue, 17 Feb 2026 15:54:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235191.1538243; Tue, 17 Feb 2026 15:54: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 1vsNPN-0004Sg-Hn; Tue, 17 Feb 2026 15:54:41 +0000
Received: by outflank-mailman (input) for mailman id 1235191;
 Tue, 17 Feb 2026 15:54: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=RxGT=AV=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsNPM-0004Sa-3T
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 15:54: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 f64f7c26-0c18-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 16:54:37 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso60150065e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 07:54:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371a10cacsm184693985e9.4.2026.02.17.07.54.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 07:54:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f64f7c26-0c18-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771343677; x=1771948477; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JKjnb/1WYws54/LhSk832/vT6iv7kP43DoFElbFaMTY=;
        b=D7q1RdXTAQyO2d52wCYvkg+0VZTbj1OcEBYtuY90FAPHEx9qLr1oZrybPWuW5F6Oof
         v6f3wOsGAodwa5l6DXYumsQdSGWoJk7QUbdJe20ZfIo55d/bAtQdbClhRGfqyVs0DMsY
         qOu6/NAlmP+itICpAM5zTwTpEM1IwiRoAMR97ShX8U1R7FBastrSTrVpFSKdmzBQLL6k
         FzjHg9KLYxXBKPFKrUdZ+SFeqt490zU2juGR5+v39TcJher72XAbxCVmm8IROZzxKsBW
         LGjjdLgkFzYT/xa8m9Q+jAv6yJHTjlZIa5nhHW+nfM9IUthJcvYS4YtV9uDqdYDszwGv
         nIQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771343677; x=1771948477;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JKjnb/1WYws54/LhSk832/vT6iv7kP43DoFElbFaMTY=;
        b=Mb9qe3kI1RMqyepHvM23VaUYYnObeV1VvGOjizJtqkS73WyBhjvEejqJS9Q8eTCN2h
         zK2lQU9U9OfsHvV1u6mudH+WP1Cz1+vWe+fjHpR2z/CJYR3w3xD2vZv9qdD2WD0Hoq3k
         c0SLQ0Eb2mdLWW46DmIS8g4FNJs5yjnluobGBe0ZR+qE2yACa2E7kaL2zOdY//YVtvYi
         iaF4xxLrR6VxIOh5mgj9fV74CGtBdMxlCcmJM40Mm371wuc0rR21U2lLFgFx7s65kMuT
         0RjjhvARizFEkCcXWl1VvBEVKzylLxhD/i5Kd8r2Bd7LfR6xNOZuZu0S9DJDVkOoDOHZ
         qzLw==
X-Forwarded-Encrypted: i=1; AJvYcCXAmRz0iDxX7fLOE4ycYB+3zMQVxHuHHEx/c/9AJ3PTDhqRP2VGYuvZHcI4uBh4iVHrVJ+T7edQbwc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzXn3pp58OoqIM4dAFvcdWFvOzEWicDbMIXJIK/FwcQdVomfYf
	0/2F+r66zOFRaGGjFQwrYw3ai+PZ1MzVuve9nXMGGuEsQU8mS3yz1Tn89luEDtTHfQ==
X-Gm-Gg: AZuq6aJzPp049f4OeR82vKrMSOknrPVOFy7/ypz81s+011YlCLG0Udy8+CLwWFVIao/
	M1F9/wUPnr25rgHQxEqw3JZvssjwod3WoLTCCBdkrb3efvVfuwYNWjOWpNcti9dNtmRbCPtGYId
	sIBzokIwmUt68rYrFC06FvP6c60Kk3vMbYNberadC0tT2N/PIWbJPWzEruFcWufXOo+/vf0eFrv
	2g6leXi5CaS+06CtVQUNjivs+hIXxZxxn8F7an8gl39A8l8B8aU+aZd05ZcbQfjtuTHqkiYhOgK
	c8hfdVVemuPQcuwzNMgtCx9VemwzghhibE99H8D1lVsGimdyXcCYulf1JuMJHN3Uwp+JjuBdY/T
	PuWUZpR1ADVymIZfTvwkp9kS98a2VAWSc58yF+uaIQPSkRQnT08HqAGZJAmSYlvaPAbh1Lzwfmz
	7ngHMyn7D5/399yOmgzytPbvZ4XjGxecghqzB2iHFeafXqQ0lKMoLpcMkD89I3VbWzzztEwBxxu
	MnKaKQCdaiJGww=
X-Received: by 2002:a05:600c:4eca:b0:480:1c1c:47d6 with SMTP id 5b1f17b1804b1-48378d6a4c5mr232918615e9.6.1771343677165;
        Tue, 17 Feb 2026 07:54:37 -0800 (PST)
Message-ID: <9163d0b9-f77e-4c13-b986-2d890bdf8ccd@suse.com>
Date: Tue, 17 Feb 2026 16:54:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: tighten translate_get_page()
To: "Orzel, Michal" <michal.orzel@amd.com>
Cc: Julien Grall <julien@xen.org>, Stefano Stabellini
 <sstabellini@kernel.org>, Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1d898900-1072-4ea6-ac4c-1262905cab29@suse.com>
 <abd54c11-28fc-4487-a2f8-733007d361ae@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: <abd54c11-28fc-4487-a2f8-733007d361ae@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.02.2026 16:28, Orzel, Michal wrote:
> 
> 
> On 16/02/2026 16:20, Jan Beulich wrote:
>> Permitting writes when the P2M type says "read-only" can't be correct.
>>
>> Fixes: 1661158723a ("xen/arm: Extend copy_to_guest to support copying from/to guest physical address")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Thanks.

>> ---
>> What exactly p2m_ram_ro means on Arm is unclear: The comment next to its
>> definition says one thing, its use in get_page_from_gfn() says another.
>> (I remember raising this point before, i.e. it feels a little odd that the
>> ambiguity still exists.) The patch here assumes the comment is what is
>> wrong.
>>
>> --- a/xen/arch/arm/guestcopy.c
>> +++ b/xen/arch/arm/guestcopy.c
>> @@ -44,7 +44,7 @@ static struct page_info *translate_get_p
>>      if ( !page )
>>          return NULL;
>>  
>> -    if ( !p2m_is_ram(p2mt) )
>> +    if ( write ? p2mt != p2m_ram_rw : !p2m_is_ram(p2mt) )
>>      {
>>          put_page(page);
>>          return NULL;
> 
> The ambiguity you mention is indeed problematic. This mixes page type with p2m
> type. The comment "The p2m_type is based on the type of the page" admits this
> conflation for DOMID_XEN.
> 
> AFAICT, p2m_ram_ro is not used on Arm for normal domains. The only use is in
> get_page_from_gfn() for DOMID_XEN. Maybe we could change get_page_from_gfn() to
> always return p2m_ram_rw since DOMID_XEN has direct 1:1 access anyway?

But that's not correct for cases where share_xen_page_with_privileged_guest()
is passed SHARE_ro. XENMAPSPACE_gmfn_foreign requests have to result in r/o
mappings in that case.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 17 16:59:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 16:59:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235213.1538255 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsOPR-00040f-52; Tue, 17 Feb 2026 16:58:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235213.1538255; Tue, 17 Feb 2026 16:58:49 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsOPR-00040Y-1W; Tue, 17 Feb 2026 16:58:49 +0000
Received: by outflank-mailman (input) for mailman id 1235213;
 Tue, 17 Feb 2026 16:58: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsOPP-00040S-9K
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 16:58:47 +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 ebca3b22-0c21-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 17:58:45 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4806cc07ce7so41771085e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 08:58:45 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48371998777sm414896815e9.1.2026.02.17.08.58.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 08:58:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ebca3b22-0c21-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771347525; x=1771952325; 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=t8SHnESTZGUEZYIkY5KGwkmLTx52wxQpL74mXy5hNT0=;
        b=Xvwm2LS8s1m5d4PeUdc87dehDH6NDeQ7308E3Hkztec96sAKO54hUF9fMFhCakiiN0
         ubBQ38oGH4UXuLSHMtg7kTUPu+P15mgsvlnh0yV/XRzECxgmObVYec2+8TZuzi4cKUAQ
         QQAboM3U955zoKFGVuW0fOCZ5ELSkpJ0UiX2CAeunr40FEp5LVDBRrcDkh/iPeIDisUt
         Hx6tTNsqeWz6eUG2DE2h8Y2hMlmCuPJJcQ0EMpj3XO8n0Wd1LjSw5j91nEFCyyI12rBm
         /jJcXVjB05dED+o0mmg9i0n0CHrvc16NEzUXTQl6/QipTqqfsQ27MYbiDTE8HNITyrbF
         IiEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771347525; x=1771952325;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=t8SHnESTZGUEZYIkY5KGwkmLTx52wxQpL74mXy5hNT0=;
        b=xMgSnN8F0ZRamlqkfnpKIzTdxue2CwH8iupCzLhLna8ctLWTOnh5TgiQp32NOi06rK
         DRoHOv9Fu+ABMR3evCQTqUjVOIDGFbAqJzFv2dPf9VHu8sEYtF47IAqCPM4y/jwiVNPl
         h3w4kU/VU979aQhXClronynnUyvgcwvb7mfG0zzQ0luyFezBZJbHorS6dYa+IlEpIY8Y
         SqTAV7/5pKgDjsaVtHRiQWi9Gs41uPE3DqExoDORqiFsVVJLHk6iMh+JYIuTlMuQ7C8p
         0zIPK0jywjOmsmDTXGCH3qoFWadABUcSkmwbZLuIPXe8enNvaiArSel82ytce6POikI3
         s4cw==
X-Forwarded-Encrypted: i=1; AJvYcCX3/QpQ85YFlWGpfaDZeWMnK1xk3LYbp1Fs3xoULLkVUS4lsMReLqrrygUeSNoeB5DamIwtE9aNcN0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGMAQkE6cwV9Zn066sZAe9xBiEURXJ1QxKWDtzNS0Fj8NagDF2
	ltaI0NQTBW/DC0eFUyFLgWnqy7+qawUym8HeJEZuQ4o97YSUvSxONGX0
X-Gm-Gg: AZuq6aLlKnzd6xoVvmxHpdCXQhvkGwGQp6ic4PSa3GmZJcyCDLVvT30qPH60tZOoeef
	ZQkGW6kc75eMwgVeeGEABY7F+GHLMKDv82iA3IJRtIqq3wb62jjKFnjVHou++avnnyOEfLqzLIz
	+Xz4Z2tq9bwM/jXBs8Ozi+/MYOqVojQN8QhSDOAVIKXuUrb7xXv4rOOmqbAr0MmLifAKqoGdjbe
	7nxtXAAzluxKssGYUzYQAkmniRnFJ6sEZ+ix7YKzFZZCyAD/tW1SPUvtVX4M6EKi2OK1Qz02NPP
	iNTytCE7UNlnMBy9OMeSfZqc000wWmtFdr4nC/ytktS5RoUo+HASw2JQLBHAayTkDH4ysLqU+Y2
	Fm1EpycQbb51BGVnQQBw7try3JQW4TyXxde7/+8C6GngevgYCjKnI595eTgDP6MlwISwRwII6VX
	E1mDrt5scsr/o9a2yIpwuCOVt3REtgt9T9Ut3dpUJqZqgi7rRoA5J5ZOm7CR7kVV3Dpk5OoePEs
	KH0sHu2ouDBUA==
X-Received: by 2002:a05:600c:4fd1:b0:477:76bf:e1fb with SMTP id 5b1f17b1804b1-48373a259bbmr272847915e9.16.1771347524808;
        Tue, 17 Feb 2026 08:58:44 -0800 (PST)
Message-ID: <6dec6f2c-4c39-4a45-b1d0-c3d9db7757ff@gmail.com>
Date: Tue, 17 Feb 2026 17:58:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 05/16] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <63661b60f5e1678c93f7ea34e5cf479ca28bc80d.1770999383.git.oleksii.kurochko@gmail.com>
 <fd62a140-ad87-4886-be8d-836dae298cb1@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <fd62a140-ad87-4886-be8d-836dae298cb1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/17/26 3:43 PM, Jan Beulich wrote:
> On 13.02.2026 17:28, Oleksii Kurochko wrote:
>> Based on Linux kernel v6.16.0.
>> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
>> we want to guarantee that if a bit in irqs_pending_mask is obversable
>> that the correspondent bit in irqs_pending is observable too.
>>
>> Add lockless tracking of pending vCPU interrupts using atomic bitops.
>> Two bitmaps are introduced:
>>   - irqs_pending — interrupts currently pending for the vCPU
>>   - irqs_pending_mask — bits that have changed in irqs_pending
>>
>> The design follows a multi-producer, single-consumer model, where the
>> consumer is the vCPU itself. Producers may set bits in
>> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
>> performed only by the consumer via xchg(). The consumer must not write
>> to irqs_pending and must not act on bits that are not set in the mask.
>> Otherwise, extra synchronization should be provided.
>>
>> On RISC-V interrupts are not injected via guest registers, so pending
>> interrupts must be recorded in irqs_pending (using the new
>> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
>> HVIP before returning control to the guest. The consumer side is
>> implemented in a follow-up patch.
>>
>> A barrier between updating irqs_pending and setting the corresponding
>> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
>> that if the consumer observes a mask bit set, the corresponding pending
>> bit is also visible. This prevents missed interrupts during the flush.
>>
>> It is possible that a guest could have pending bit in the hardware
>> register without being marked pending in irq_pending bitmap as:
>>    According to the RISC-V ISA specification:
>>      Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>>      interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>>      is an alias (writable) of the same bit in hvip.
>>    Additionally:
>>      When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>>      zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>>      hie.VSSIE.
>> This means the guest may modify vsip.SSIP, which implicitly updates
>> hip.VSSIP and the bit being written with 1 would also trigger an interrupt
>> as according to the RISC-V spec:
>>    These conditions for an interrupt trap to occur must be evaluated in a
>>    bounded   amount of time from when an interrupt becomes, or ceases to be,
>>    pending in sip,  and must also be evaluated immediately following the
>>    execution of an SRET  instruction or an explicit write to a CSR on which
>>    these interrupt trap conditions expressly depend (including sip, sie and
>>    sstatus).
>> What means that IRQ_VS_SOFT must be synchronized separately, what is done
>> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
>> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
>> PMU isn't supported now.
>>
>> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
>> IRQ_VS_EXT), the specification states they cannot be modified by the guest
>> and are read-only because of:
> "cannot be modified by the guest" is still meaning about anything. Aren't you
> intending to merely talk about their pending bits? Then all of ...

I will use the "the pending bits are read-only" instead of "cannot be modified
by guest" and keep only information about SEIP and STIP bits.


>
>>    Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>>    bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>>    the logical-OR of these interrupt sources:
>>      • bit VSEIP of hvip;
>>      • the bit of hgeip selected by hstatus.VGEIN; and
>>      • any other platform-specific external interrupt signal directed to
>>        VS-level.
>>    Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>>    bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>>    logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>>    signal directed to VS-level.
>> and
>>    When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
>>    Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.
>>
>>    When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
>>    Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
>> and also,
> ... this is largely irrelevant, while ...
>
>>    Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
>>    bits for supervisor-level external interrupts. If implemented, SEIP is
>>    read-only in sip, and is set and cleared by the execution environment,
>>    typically through a platform-specific interrupt controller.
>>
>>    Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
>>    bits for supervisor-level timer interrupts. If implemented, STIP is
>>    read-only in sip, and is set and cleared by the execution environment
> ... this is important.
>
>> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
>> and vcpu_unset_interrupt(), and flush them during the call of
>> vcpu_flush_interrupts() (which is introduced in follow up patch).
>>
>> vcpu_sync_interrupts(), which is called just before entering the VM,
>> slightly bends the rule that the irqs_pending bit must be written
>> first, followed by updating the corresponding bit in irqs_pending_mask.
>> However, it still respects the core guarantee that the producer never
>> clears the mask and only writes to irqs_pending if it is the one that
>> flipped the corresponding mask bit from 0 to 1.
>> Moreover, since the consumer won't run concurrently because
>> vcpu_sync_interrupts() and the consumer path are going to be invoked
>> equentially immediately before VM entry, it is safe to slightly relax
> Nit: There was an 's' lost at the start of the line.
>
>> @@ -127,3 +128,73 @@ void arch_vcpu_destroy(struct vcpu *v)
>>   {
>>       vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
>>   }
>> +
>> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
>> +{
>> +    /* We only allow VS-mode software, timer, and external interrupts */
>> +    if ( irq != IRQ_VS_SOFT &&
>> +         irq != IRQ_VS_TIMER &&
>> +         irq != IRQ_VS_EXT )
>> +        return -EINVAL;
>> +
>> +    set_bit(irq, v->arch.irqs_pending);
>> +    /*
>> +     * The counterpart of this barrier is the one encoded implicitly in xchg()
>> +     * which is used in consumer part (vcpu_flush_interrupts()).
>> +     */
>> +    smp_wmb();
>> +    set_bit(irq, v->arch.irqs_pending_mask);
> Wasn't this meant to go away with ...
>
>> +    if ( !test_and_set_bit(irq, v->arch.irqs_pending_mask) )
> ... the introduction of this?

Yes, set_bit() should be dropped.


>
>> +      vcpu_kick(v);
> Nit: Bad indentation.
>
> As to the test_and_set_bit(): In isolation here this looks correct, but
> when taking ...
>
>> +    return 0;
>> +}
>> +
>> +int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
>> +{
>> +    /* We only allow VS-mode software, timer, external interrupts */
>> +    if ( irq != IRQ_VS_SOFT &&
>> +         irq != IRQ_VS_TIMER &&
>> +         irq != IRQ_VS_EXT )
>> +        return -EINVAL;
>> +
>> +    clear_bit(irq, v->arch.irqs_pending);
>> +    /*
>> +     * The counterpart of this barrier is the one encoded implicitly in xchg()
>> +     * which is used in consumer part (vcpu_flush_interrupts()).
>> +     */
>> +    smp_wmb();
>> +    set_bit(irq, v->arch.irqs_pending_mask);
>> +
>> +    return 0;
>> +}
> ... this into account - what about vcpu_unset_interrupt() followed by
> vcpu_set_interrupt()? Shouldn't that also result in a kick? I.e.
> shouldn't the condition above be whether either of the two bits
> transitioned from 0 to 1?

Then it looks like it is enough to detect that pending bit in
irqs_pending bitmap transitioned from 0 to 1.

>
>> --- a/xen/arch/riscv/include/asm/domain.h
>> +++ b/xen/arch/riscv/include/asm/domain.h
>> @@ -54,6 +54,25 @@ struct arch_vcpu {
>>       register_t henvcfg;
>>       register_t hideleg;
>>       register_t hstateen0;
>> +    register_t hvip;
>> +
>> +    register_t vsie;
>> +
>> +    /*
>> +     * VCPU interrupts
>> +     *
>> +     * We have a lockless approach for tracking pending VCPU interrupts
>> +     * implemented using atomic bitops. The irqs_pending bitmap represent
>> +     * pending interrupts whereas irqs_pending_mask represent bits changed
>> +     * in irqs_pending. Our approach is modeled around multiple producer
>> +     * and single consumer problem where the consumer is the VCPU itself.
>> +     *
>> +     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
>> +     * on RV32 host.
>> +     */
>> +#define RISCV_VCPU_NR_IRQS MAX(BITS_PER_LONG, 64)
> In the revlog you mention also taking care of "the case if AIA isn't used".
> I can't spot anything like this here.

I don't mention as all the cases are covered by such definition of
RISCV_VCPU_NR_IRQS.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 17:07:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 17:07:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235231.1538265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsOXj-0005jl-2J; Tue, 17 Feb 2026 17:07:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235231.1538265; Tue, 17 Feb 2026 17:07: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 1vsOXi-0005je-VT; Tue, 17 Feb 2026 17:07:22 +0000
Received: by outflank-mailman (input) for mailman id 1235231;
 Tue, 17 Feb 2026 17:07: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=FTcl=AV=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsOXh-0005jG-KK
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 17:07:21 +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 1ed1ab98-0c23-11f1-b164-2bf370ae4941;
 Tue, 17 Feb 2026 18:07:20 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so39279865e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 17 Feb 2026 09:07:20 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d5d78cfsm776352385e9.1.2026.02.17.09.07.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 17 Feb 2026 09:07:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ed1ab98-0c23-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771348040; x=1771952840; 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=L8hBEerhUTDz0784f8ywQeDBOMxSN8X6elgEa2a5s6M=;
        b=ajnDmZ1l+FuTWcAi0FZkaaeve8RolZpRHYL3NPIUdvojI7bg4gF1uo4RHJtmYkEKzb
         fNCf6SFcSMMMrbfpz0uCqVPj3yaRCcXMv5qGoLtk46GrywddRaprzJkykaKdd9u+c0qb
         2SJAUlDg7sT0PeHjbswI4r3KUMw2TDrbWeyjcYo81Vry427k5nW9WA2LxZxFl894LT1G
         tIfuSaMOS7vblsdVXvI/3wqAM4TS773zpnC36fYVJXqA657k0ooL05vCZA/XHUODd2LY
         Plvt1vRWjbCeby0bDn8zri+Lj1zR9YmYtfoj0XHvMpWnCNVed8pj1svfZJH1r8AcrmUH
         2hSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771348040; x=1771952840;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=L8hBEerhUTDz0784f8ywQeDBOMxSN8X6elgEa2a5s6M=;
        b=Yo+OrwjQ5PWYxdtgD94NlSjk2CnyKIeE3WRQK8eLdr2b5sUBMc+sru+pXnzbvHvB1p
         NpcdkpFLbGjxDYp0eyGABWSkAOsNwIrCY8j9A/ax3mSS2eh0NIYR/ciC6Ni7oFDVITO1
         Yql+DBFw0NuhPptVaAOkMNxmlUDWDhPJhmgkr/ARc5z/TaeVpo48LzJk/q2OeRyk6Zk6
         HsmZZAHQjgiSw8eZM6azbK9b0yDtY95sRK8omyd5Q0dkClz6Es9bIjwtEses1FoT3fxz
         cT6CWKkvopU6afGsPHpWKOAS44YhEQKA2z27GT/EdpZeGeGhgWmj770FXAJJtVXr4+76
         +VdA==
X-Forwarded-Encrypted: i=1; AJvYcCVX04OFCEm7549c4UH9aVy4xQEfkJydC6UvClgtDj+wug5KP/Od3mDC0kDLcRQi5afvvba/ARYD35I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwnhH6ieCarRC6uagFlace0gQbzfL341cp9oVMTolm47Z40iysq
	eKFCMUuFXFllfjb2bw7WrSFaLp3NaVWWrtrMEJKdX/FzR8qyrx60Ew2V
X-Gm-Gg: AZuq6aLQxclJ5VItuv7ywbxH2RExXHm5zLlnWqUq/vthXUH3M2oGj8WVp8UzZN8wNxx
	qBGipT9RmbIRUrFcLtBS2LEbh0nj8chXSoW4o7QLwtdiFepfLfqjPdRmsKWGhH8DQlhG3GY1+/c
	B6w3kuwWZx+142gVTmzg/ccwOtsF6XrDzS81syJ5Ek4/I6QGte31N4Motg73eE8grXGTWF4tfi2
	ZDlIoh6LTLmg2iQcWRz69jzLukVWYd8YDA786H9rqkZSdkcZ/7jUcxuSVFXuH0C6cRqsPoP5+1Y
	hnNVoz1iqCFPyn4MpEnyF3+bd6Ksp6aV/AV/Nd/fx44iwGoX89goD+Bg5qodcIK2NLxr3Q4rqrv
	uYdeY2Id9dC9sj9Ot+V+jcqitJnKhoUEwoy6NgRbXiW0FygdbLDeI8C/NXQk77wMgEhu0snyco2
	X49hK5xeSfPJL90WQ18Sb3BhyaYAdf+/aTtFNl4wtw1WYboHfxu0Vf+Bo6c2h2FM6n9dv29zTly
	pvmJrkyw09eiLbLSw==
X-Received: by 2002:a05:600c:37c6:b0:475:de12:d3b5 with SMTP id 5b1f17b1804b1-483710960dcmr250488735e9.34.1771348040037;
        Tue, 17 Feb 2026 09:07:20 -0800 (PST)
Message-ID: <e94e7bac-aa37-4460-a866-ae34f4bb98e9@gmail.com>
Date: Tue, 17 Feb 2026 18:07:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 12/16] xen/riscv: introduce sbi_set_timer()
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770999383.git.oleksii.kurochko@gmail.com>
 <6d811ceefa3bfc4e6bd5d11b0a4d4eef886bc693.1770999383.git.oleksii.kurochko@gmail.com>
 <f45864a7-452b-401d-9e44-b6283b38eec0@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <f45864a7-452b-401d-9e44-b6283b38eec0@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/17/26 4:42 PM, Jan Beulich wrote:
> On 13.02.2026 17:28, Oleksii Kurochko wrote:
>> Introduce a function pointer for sbi_set_timer(), since different OpenSBI
>> versions may implement the TIME extension with different extension IDs
>> and/or function IDs.
>>
>> If the TIME extension is not available, fall back to the legacy timer
>> mechanism. This is useful when Xen runs as a guest under another Xen,
>> because the TIME extension is not currently virtualised and therefore
>> will not appear as available.
>> Despite of the fact that sbi_set_timer_v01 is introduced and used as
>> fall back, SBI v0.1 still isn't fully supported (with the current SBI
>> calls usage, sbi_rfence_v01 should be introduced too), so panic()
>> in sbi_init() isn't removed.
>>
>> The sbi_set_timer() pointer will be used by reprogram_timer() to program
>> Xen’s physical timer as without SSTC extension there is no any other
>> option except SBI call to do that as only M-timer is available for us.
>>
>> Use dprintk() for all the cases to print that a speicifc SBI extension
>> is available as it isn't really necessary in case of release builds.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Changes in v4:
>>   - Add "stime_value is in absolute time" to the comment above declaration
>>     of sbi_set_timer() function pointer.
> Yet it still ...
>
>> @@ -134,6 +138,23 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
>>   int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
>>                                   size_t size, unsigned long vmid);
>>   
>> +/*
>> + * Programs the clock for next event after stime_value time. stime_value is in
>> + * absolute time. This function must clear the pending timer interrupt bit as
>> + * well.
> ... says "after" when, as per my understanding, it's "at or after". At which
> point the final "time" in the sentence becomes bogus (says me as a non-
> native speaker). Which in turn is what my v3 comment was triggered by, as
> "after stime_value time" to me suggests something relative ("this amount of
> time needs to pass"), when that's not what is meant, as the added sentence
> now tries to clarify.

I will rephrase then the first sentence in the following way:
   Programs the clock for next event at (or after) stime_value. ...

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 17 22:04:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 17 Feb 2026 22:04:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235279.1538274 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsTBO-0005mo-Sn; Tue, 17 Feb 2026 22:04:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235279.1538274; Tue, 17 Feb 2026 22: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 1vsTBO-0005mh-Q3; Tue, 17 Feb 2026 22:04:38 +0000
Received: by outflank-mailman (input) for mailman id 1235279;
 Tue, 17 Feb 2026 22: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=Kmbl=AV=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vsTBN-0005mb-Mq
 for xen-devel@lists.xenproject.org; Tue, 17 Feb 2026 22:04:37 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a1fc8d0b-0c4c-11f1-9ccf-f158ae23cfc8;
 Tue, 17 Feb 2026 23:04:31 +0100 (CET)
Received: from BN9PR03CA0905.namprd03.prod.outlook.com (2603:10b6:408:107::10)
 by DS0PR12MB8454.namprd12.prod.outlook.com (2603:10b6:8:15e::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb
 2026 22:04:26 +0000
Received: from BN1PEPF00004684.namprd03.prod.outlook.com
 (2603:10b6:408:107:cafe::6b) by BN9PR03CA0905.outlook.office365.com
 (2603:10b6:408:107::10) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.13 via Frontend Transport; Tue,
 17 Feb 2026 22:04:22 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF00004684.mail.protection.outlook.com (10.167.243.90) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 17 Feb 2026 22:04:26 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 17 Feb
 2026 16:04:26 -0600
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; Tue, 17 Feb
 2026 16:04:25 -0600
Received: from [172.17.121.74] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 17 Feb 2026 16:04:24 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a1fc8d0b-0c4c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=foGmZlnF/DRw/H06qWoHjdHoZQL5FeJQP4OTbdE5fcDs4I5Rrziey+qmZm9zyrgA5olMT49giqmcYbOtTHkDIBaHN7bNEgBspeEDoYm2ptyxUCLl8Z/q2DhwynlQTx4O4gXIcwSJV49bvaQ2PvzdHN5Cwx0knEi5EQ6asIXk5zaJBLysOxauPPnis1aBJyDtwNYE8BMrt9+LwCyS42oC8Y8PKteKjutk81mFSupuBV39s9MEVVc7L3MlNozKUiHhvS7q1bDi9F/OMAPOTrOFU8igbEmeZ8ZsA7v7tkmhg0pVkolZ+cWvstNizsdFRJKsO4RlOV87zvKjR+cDY1VW5g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=8VaKNqPDCt7toW4VRa5qYDeCjE1Jgqa6JeUNYNIlx9M=;
 b=UO6zZBNQDQ21JJ4sVCa4Mgifzc2t5l4PXgT4dhqwaH+acXrg+OVUqtxp/+5aAhOX1VbJ9zL+a0qT/6JomGCEehNC6gHc07tT/8vrPoJo1Lrp6oWrjZoOJWHdJYMbZRm5ju3dS+Fys4htKdLLkURBTOcxTccIUCuAnlY3U1qSfUTJ2y5NXRUy4qe+ONzP54IFhYGSXmwvG4U/DGED75QWT9UhgEMjpSryOZ0ngihkK7i/8uFFvMxXJB8cnG0ha+CX+QRyKLAtFmK2F7KJCoEx7FZEQZIHwEH9UwteDXlQf2pNkfyhM+1b5rbwhR8rBCPSX3earW2/oRhSFfRCTsvSvg==
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=8VaKNqPDCt7toW4VRa5qYDeCjE1Jgqa6JeUNYNIlx9M=;
 b=EDlGisjIebAAjFtdSRSNRnXkhWurBGHydI/LX3LZ2PWBrw+HbGfejrEaUDi65DQKumYBc4Hr8XZcPpA/dg7TAy4GPSxRq2J6cITVGA0po7FpXigQR702v0Ep+XOBHOrWshura9wuUzUsP50FlInbjGeeHOa1CoVjTo+Op3Xf4MA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <3bbe1fc7-ed6e-43ee-bcee-17502ba56539@amd.com>
Date: Tue, 17 Feb 2026 17:04:25 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/5] vPCI: introduce private header
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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <4fda7acb-e1a4-4a24-982e-4cae90048018@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <4fda7acb-e1a4-4a24-982e-4cae90048018@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004684:EE_|DS0PR12MB8454:EE_
X-MS-Office365-Filtering-Correlation-Id: 6aa54668-d19a-4e03-939c-08de6e708414
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?VTVjNGoyYm91d3FQU21HSXJ0a0dnNW96NXV4eURqbk9PYkVXVGFzNWppbU0v?=
 =?utf-8?B?d3hYRGR1S1BNUVhZLytMckdvY2FDeS84T3Q5djVxVUx5QUN2VGJ6Z2NoTERt?=
 =?utf-8?B?ekJ5Q1ZyMVFNeEdVMHdUY2VLRktudUlqcUpNVGYrTzdJNHVBQkg0enBDQVVm?=
 =?utf-8?B?aG1BSk9KQzBQVk13YWJoSFJjSGtuWUlZYlhOMDZ5cWF5MW8reUhQa3c0VlRK?=
 =?utf-8?B?eGlEdDdVZGFaL2V0UnVpMzRxZnk2SlBHNGxwdkZvYjdpa0UxNzJWZU9UNy9z?=
 =?utf-8?B?NXozNS9tYTdGMkZXVEtMY3UrSUU2YlQ2cFJBVjdkVGFWM1hrb1FsQndLMnpM?=
 =?utf-8?B?VTlQSjBvZ3JaNkhialZFaXZhRURxL1BLV0RlREhXdlVzbWFTNHJsNDl2UUVL?=
 =?utf-8?B?R0lkWTZwVm5GdjlFQWlLNy83WDRnMjYwblkvZDllUmlyQjE3UlA1SVEyZ3FU?=
 =?utf-8?B?bE13T2h3OXNYd1oveHNadVFoSjU4azBCa1h5dW04ZGJtb1IzTmFKSS9IUlRV?=
 =?utf-8?B?Z1VrcnFHQmhzalRyWldJSVRKNTVRQ1hSWmk0VWlNWXFhTyttUVEzTjFvYXZ5?=
 =?utf-8?B?Mjd3MERTOWdqMFlHYmw5cFRYSHYvZ3RSS1ZBZ2tlTFQ2d0FlMENTSVorbTJo?=
 =?utf-8?B?VVNBTWhsNXdsYWFKUWhzb2kyK1RlUk1VekFod1IvNC94TERIelQ4RHp1aDNC?=
 =?utf-8?B?NmtBZmpnakVpQTNsdkJuS0FUamVkVjdTOG5YUGtiSXU1eEF1NUtLZy93MFBk?=
 =?utf-8?B?TFkvTzhYZW1adllsSnVjL3Nya2hiN0FWWEo1dmZpWGZ0eS9CaGlMSWsvYnRj?=
 =?utf-8?B?VUkwdEdWMk9xczNqVlNyTlNBNE5kRW1zYi9zeFIyRURTV1ZSaUlLRDAxTlph?=
 =?utf-8?B?emtXR3RBeEg0WjBTVEZkOVJ3M1pPYmlEYlZVdy84d3d0S1RCMFhFRFkyZEUv?=
 =?utf-8?B?b0hlVExxUTZzUU85bHhKWThhTHI5Z0lrZzVlREFkM0dKNjRYckt5cktNQnRO?=
 =?utf-8?B?dHNXd3ZVSlVhS3BCV1pPYzBFejRhRmZlM3BpOE0wWXd1U3Y5dzN5MkpTNDcv?=
 =?utf-8?B?VEdnczEva1IzTkd5dXI0UG1xVWVVTG9aYzdneU8rWUtjYXFxTDU1M0hYMjlk?=
 =?utf-8?B?TmRBRmZxUjE0Q3ZNY3B2VXZlT0FYbGFJZVowUEEwbUs4OFl5STVDNmJSeVZt?=
 =?utf-8?B?Yk9rVkxCYUZEYnYxMVZaWXAyRE85SDRxT3FVQmRibkc5VlNyRW5QV21wN0Zm?=
 =?utf-8?B?eDdYMlBIRWlWclA1QUUwYmw4V2ppR1o0cUNYbUdmM2Jsanp0ZU1BVGJ4R0Jr?=
 =?utf-8?B?bXlpVXNGV0NxeHdtWkNWVVVQdmhudlJxbmloWi9LcTFUcXFueUNjM2l2Wjgv?=
 =?utf-8?B?M2RGT2VGZWZiaSszZkFtazhyWlQ2N1ZDSlp3YmxSaG9aQ2JYdUw1Vyt2SDhl?=
 =?utf-8?B?R2h6RnNBSkFHUXVKUlJUVXc4UzNQZk1Wb0tTZUZrZTRKeFdwRHdQd2xtSWZ6?=
 =?utf-8?B?TDdlczQ2SDF4UW8xZXFyUTNvdlNHTUwzNzVhRGxibUJ5MU5NbkIrbFY0dFVU?=
 =?utf-8?B?VU9XTURobytpaFZlQkJ2bWY2Uk5PSXFURTVhWVQrSDFTWlkzREg2UTd0cWNK?=
 =?utf-8?B?c0hDWkxGMG4rUVRIZDV2WTJaRTZXMngzU3VtSXZkOGQwcDBzRjZCMXlVSW9E?=
 =?utf-8?B?Znk4RWlFeFJHWi9hdWFuUGRhVU5qRUdZNDl0anl5RFlqN3FvMDBwNzJsZ0k1?=
 =?utf-8?B?STBrTWtVQnNBcUIyU2hRU3VjdTZ5M21tREZGa2xVMlMvVVNCYVllRGk0TzU5?=
 =?utf-8?B?d0Y5WnEzZ2h2S1JDSkx2d2ZyT0ltbVVJSUhkcnR3N3ZxMEZ5V3p0QXdleElG?=
 =?utf-8?B?MlByUGhBMHdjMGVQL1FwTzlOYmJNMFZMbWdQN2FmbW41UkU4Y0FXaEJ4NFI1?=
 =?utf-8?B?THRzeFBJaHEwaFBhVHNCMjJERWhURkt5QkVOdVNkYzEvY1dGSFU1ZG9jQ2Ev?=
 =?utf-8?B?ZlFBejlxaUtYUGxyU1A2KzlKNXFJR0Z1ZVFHQ3pWUHBkR0puZGMyRGoveCtw?=
 =?utf-8?B?dDJYMTlGa3pjMjNFOFZvT1hIdURJRSs4VnAwVTVkakFGcTN0b1FSVVB1SE1U?=
 =?utf-8?B?SGFuMDRKa2dtVk5xR0VuaXhIQVJCSVJnWkVKVGk3amYwZk43S0kreHIySUxz?=
 =?utf-8?B?L3pqeER2S2xMQW9malE0aVRxMGc5ZUVOMFJYV3Ava3duRzFNR3I3YzUvV25w?=
 =?utf-8?B?N0lzaE5XNllIWWs5YS9NMXR1czh3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(36860700013)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	goH/hzFLQS2em/ACxGvsyCrG+3jfJA1SukxfM6e3BeH/kwR9736b8RkvFMtLvi4ACbAHtQckisidntU2utxcKzyOoDz2Ujh+6OPAB1s1bh4XbpnN7ptCd5BOkJvgW4jKjFxfZ6mKmhp41dA8zucipTZ6GFU9soY2rOGl6/NHsO4DCW2yXgeWNeFyz9b1dcbsUulDgzDy2RvsDPasgyAJueRYS9mCyvrH7shWzcwVXVPlChVPvz2bzc+8IVQ+bjF9/IPPVTsC8gsu4X3ROUW5u+HxXSbYAuEOY02sImvhqnL9s2t6BlVrih3G8X4XSDD2AMf8k824v0UNNf6S28bmyLivPjJ6NsF1lKolbXGLhKj9QTqUzsGfDga5tfa8Kvs3XjKdSvcFTnzFuu7shUthksEYDGvN1if20FEV+7DNHuric4FHqtq3rw9GHwBu0bj2
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 22:04:26.4114
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6aa54668-d19a-4e03-939c-08de6e708414
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004684.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8454

On 2/10/26 05:53, Jan Beulich wrote:
> Before adding more private stuff to xen/vpci.h, split it up. In order to
> be able to include the private header first in a CU, the per-arch struct
> decls also need to move (to new asm/vpci.h files).
> 
> While adjusting the test harness'es Makefile, also switch the pre-existing
> header symlink-ing rule to a pattern one.
> 
> Apart from in the test harness code, things only move; no functional
> change intended.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> Subsequently, at least on x86 more stuff may want moving into asm/vpci.h.
> ---
> v4: New.
> 
> --- a/tools/tests/vpci/Makefile
> +++ b/tools/tests/vpci/Makefile
> @@ -14,8 +14,8 @@ else
>  	$(warning HOSTCC != CC, will not run test)
>  endif
>  
> -$(TARGET): vpci.c vpci.h list.h main.c emul.h
> -	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
> +$(TARGET): vpci.c vpci.h list.h private.h main.c emul.h
> +	$(CC) $(CFLAGS_xeninclude) -include emul.h -g -o $@ vpci.c main.c
>  
>  .PHONY: clean
>  clean:

Can you please add the generated private.h to be removed upon "make clean"?

Also, can you please add tools/tests/vpci/private.h to .gitignore?

> --- /dev/null
> +++ b/xen/arch/arm/include/asm/vpci.h
> @@ -0,0 +1,13 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#ifndef ARM_VPCI_H
> +#define ARM_VPCI_H
> +
> +/* Arch-specific MSI data for vPCI. */
> +struct vpci_arch_msi {
> +};
> +
> +/* Arch-specific MSI-X entry data for vPCI. */
> +struct vpci_arch_msix_entry {
> +};
> +
> +#endif /* ARM_VPCI_H */

Out of curiosity (not asking for any changes), why did you include an emacs
footer on the x86 header but not here?

Otherwise, the rest of the patch looks good to me.


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 08:22:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 08:22:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235313.1538284 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vscob-0008TM-9M; Wed, 18 Feb 2026 08:21:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235313.1538284; Wed, 18 Feb 2026 08:21: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 1vscob-0008TF-6R; Wed, 18 Feb 2026 08:21:45 +0000
Received: by outflank-mailman (input) for mailman id 1235313;
 Wed, 18 Feb 2026 08:21: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=RtAK=AW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vscoZ-0008T9-96
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 08:21:43 +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 d7de64d8-0ca2-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 09:21:37 +0100 (CET)
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 5925B3E6D0;
 Wed, 18 Feb 2026 08:21:36 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 893403EA65;
 Wed, 18 Feb 2026 08:21:35 +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 HcFZII92lWkvHQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 18 Feb 2026 08:21: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: d7de64d8-0ca2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771402896; 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=OYoDmUH9lbkTBURMFRYZYYI6iouhuBtpfCapQgEqDZ8=;
	b=mumQ2dSroxqx6zt+Ap8HTM0DwIHDjYg5G2rkTfGqr0XF50J9oS7P1iax3mkDWYDGIX05mq
	VX/pMUcA0pFYr7ZTj5XfgBOOOEBabHE1Wg4S0+rOQYd/osFxFh8Tnl1dVhywbfaL5k3mSq
	YTambJKAYcAGVGpkGonRfwPP/SogtlM=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771402896; 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=OYoDmUH9lbkTBURMFRYZYYI6iouhuBtpfCapQgEqDZ8=;
	b=mumQ2dSroxqx6zt+Ap8HTM0DwIHDjYg5G2rkTfGqr0XF50J9oS7P1iax3mkDWYDGIX05mq
	VX/pMUcA0pFYr7ZTj5XfgBOOOEBabHE1Wg4S0+rOQYd/osFxFh8Tnl1dVhywbfaL5k3mSq
	YTambJKAYcAGVGpkGonRfwPP/SogtlM=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-coco@lists.linux.dev,
	kvm@vger.kernel.org,
	linux-hyperv@vger.kernel.org,
	virtualization@lists.linux.dev,
	llvm@lists.linux.dev
Cc: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Kiryl Shutsemau <kas@kernel.org>,
	Rick Edgecombe <rick.p.edgecombe@intel.com>,
	Sean Christopherson <seanjc@google.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Xin Li <xin@zytor.com>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
	Bill Wendling <morbo@google.com>,
	Justin Stitt <justinstitt@google.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>
Subject: [PATCH v3 00/16] x86/msr: Inline rdmsr/wrmsr instructions
Date: Wed, 18 Feb 2026 09:21:17 +0100
Message-ID: <20260218082133.400602-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
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)[-0.999];
	MIME_GOOD(-0.10)[text/plain];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	RCPT_COUNT_TWELVE(0.00)[36];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	URIBL_BLOCKED(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FREEMAIL_CC(0.00)[suse.com,kernel.org,redhat.com,alien8.de,linux.intel.com,zytor.com,intel.com,google.com,microsoft.com,oracle.com,lists.xenproject.org,broadcom.com,infradead.org,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.com:mid,imap1.dmz-prg2.suse.org:helo];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	TAGGED_RCPT(0.00)[lkml];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Spam-Flag: NO
X-Spam-Score: -1.30
X-Spam-Level: 

When building a kernel with CONFIG_PARAVIRT_XXL the paravirt
infrastructure will always use functions for reading or writing MSRs,
even when running on bare metal.

Switch to inline RDMSR/WRMSR instructions in this case, reducing the
paravirt overhead.

The first patch is a prerequisite fix for alternative patching. Its
is needed due to the initial indirect call needs to be padded with
NOPs in some cases with the following patches.

In order to make this less intrusive, some further reorganization of
the MSR access helpers is done in the patches 1-6.

The next 4 patches are converting the non-paravirt case to use direct
inlining of the MSR access instructions, including the WRMSRNS
instruction and the immediate variants of RDMSR and WRMSR if possible.

Patches 11-13 are some further preparations for making the real switch
to directly patch in the native MSR instructions easier.

Patch 14 is switching the paravirt MSR function interface from normal
call ABI to one more similar to the native MSR instructions.

Patch 15 is a little cleanup patch.

Patch 16 is the final step for patching in the native MSR instructions
when not running as a Xen PV guest.

This series has been tested to work with Xen PV and on bare metal.

Note that there is more room for improvement. This series is sent out
to get a first impression how the code will basically look like.

Right now the same problem is solved differently for the paravirt and
the non-paravirt cases. In case this is not desired, there are two
possibilities to merge the two implementations. Both solutions have
the common idea to have rather similar code for paravirt and
non-paravirt variants, but just use a different main macro for
generating the respective code. For making the code of both possible
scenarios more similar, the following variants are possible:

1. Remove the micro-optimizations of the non-paravirt case, making
   it similar to the paravirt code in my series. This has the
   advantage of being more simple, but might have a very small
   negative performance impact (probably not really detectable).

2. Add the same micro-optimizations to the paravirt case, requiring
   to enhance paravirt patching to support a to be patched indirect
   call in the middle of the initial code snipplet.

In both cases the native MSR function variants would no longer be
usable in the paravirt case, but this would mostly affect Xen, as it
would need to open code the WRMSR/RDMSR instructions to be used
instead the native_*msr*() functions.

Changes since V2:
- switch back to the paravirt approach

Changes since V1:
- Use Xin Li's approach for inlining
- Several new patches

Juergen Gross (16):
  x86/alternative: Support alt_replace_call() with instructions after
    call
  coco/tdx: Rename MSR access helpers
  x86/sev: Replace call of native_wrmsr() with native_wrmsrq()
  KVM: x86: Remove the KVM private read_msr() function
  x86/msr: Minimize usage of native_*() msr access functions
  x86/msr: Move MSR trace calls one function level up
  x86/opcode: Add immediate form MSR instructions
  x86/extable: Add support for immediate form MSR instructions
  x86/msr: Use the alternatives mechanism for WRMSR
  x86/msr: Use the alternatives mechanism for RDMSR
  x86/alternatives: Add ALTERNATIVE_4()
  x86/paravirt: Split off MSR related hooks into new header
  x86/paravirt: Prepare support of MSR instruction interfaces
  x86/paravirt: Switch MSR access pv_ops functions to instruction
    interfaces
  x86/msr: Reduce number of low level MSR access helpers
  x86/paravirt: Use alternatives for MSR access with paravirt

 arch/x86/coco/sev/internal.h              |   7 +-
 arch/x86/coco/tdx/tdx.c                   |   8 +-
 arch/x86/hyperv/ivm.c                     |   2 +-
 arch/x86/include/asm/alternative.h        |   6 +
 arch/x86/include/asm/fred.h               |   2 +-
 arch/x86/include/asm/kvm_host.h           |  10 -
 arch/x86/include/asm/msr.h                | 345 ++++++++++++++++------
 arch/x86/include/asm/paravirt-msr.h       | 148 ++++++++++
 arch/x86/include/asm/paravirt.h           |  67 -----
 arch/x86/include/asm/paravirt_types.h     |  57 ++--
 arch/x86/include/asm/qspinlock_paravirt.h |   4 +-
 arch/x86/kernel/alternative.c             |   5 +-
 arch/x86/kernel/cpu/mshyperv.c            |   7 +-
 arch/x86/kernel/kvmclock.c                |   2 +-
 arch/x86/kernel/paravirt.c                |  42 ++-
 arch/x86/kvm/svm/svm.c                    |  16 +-
 arch/x86/kvm/vmx/tdx.c                    |   2 +-
 arch/x86/kvm/vmx/vmx.c                    |   8 +-
 arch/x86/lib/x86-opcode-map.txt           |   5 +-
 arch/x86/mm/extable.c                     |  35 ++-
 arch/x86/xen/enlighten_pv.c               |  52 +++-
 arch/x86/xen/pmu.c                        |   4 +-
 tools/arch/x86/lib/x86-opcode-map.txt     |   5 +-
 tools/objtool/check.c                     |   1 +
 24 files changed, 576 insertions(+), 264 deletions(-)
 create mode 100644 arch/x86/include/asm/paravirt-msr.h

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 08:22:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 08:22:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235316.1538295 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vscox-0000O4-Kn; Wed, 18 Feb 2026 08:22:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235316.1538295; Wed, 18 Feb 2026 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 1vscox-0000Nx-HD; Wed, 18 Feb 2026 08:22:07 +0000
Received: by outflank-mailman (input) for mailman id 1235316;
 Wed, 18 Feb 2026 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=RtAK=AW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vscow-0008T9-I2
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 08:22:06 +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 e863b3d7-0ca2-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 09:22:04 +0100 (CET)
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 591283E6F6;
 Wed, 18 Feb 2026 08:22:04 +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 D6A893EA65;
 Wed, 18 Feb 2026 08:22:03 +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 nCpFM6t2lWllHgAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 18 Feb 2026 08:22: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: e863b3d7-0ca2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771402924; 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=nmkFHBBGmW1gFmVNGJrsFCQB+9CCXKUbJdAXWGghiNM=;
	b=gPtQAbrJ0W7jHHybeb0/Ufmin0ifKbAt6AzDrXFVFWbzpGlMPQ513v+jLWpWyygbuuKCBW
	zvWvrj/Au4wcSx6zt5y3JgpiB1DHq5jfCdDlc598xegpKWZY05VaShPPyaNUEujUBe8Aoi
	gqO7WjvpxpLP4DNzZVL0nxAEg1zRuAM=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771402924; 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=nmkFHBBGmW1gFmVNGJrsFCQB+9CCXKUbJdAXWGghiNM=;
	b=gPtQAbrJ0W7jHHybeb0/Ufmin0ifKbAt6AzDrXFVFWbzpGlMPQ513v+jLWpWyygbuuKCBW
	zvWvrj/Au4wcSx6zt5y3JgpiB1DHq5jfCdDlc598xegpKWZY05VaShPPyaNUEujUBe8Aoi
	gqO7WjvpxpLP4DNzZVL0nxAEg1zRuAM=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	linux-hyperv@vger.kernel.org,
	kvm@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	"K. Y. Srinivasan" <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	Dexuan Cui <decui@microsoft.com>,
	Long Li <longli@microsoft.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Sean Christopherson <seanjc@google.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 05/16] x86/msr: Minimize usage of native_*() msr access functions
Date: Wed, 18 Feb 2026 09:21:22 +0100
Message-ID: <20260218082133.400602-6-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260218082133.400602-1-jgross@suse.com>
References: <20260218082133.400602-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%];
	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];
	FROM_HAS_DN(0.00)[];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	TO_DN_SOME(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[20];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	URIBL_BLOCKED(0.00)[imap1.dmz-prg2.suse.org:helo,suse.com:mid,suse.com:email,zytor.com:email];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:mid,suse.com:email,imap1.dmz-prg2.suse.org:helo];
	R_RATELIMIT(0.00)[to_ip_from(RLfdszjqhz8kzzb9uwpzdm8png)];
	RCVD_TLS_ALL(0.00)[]
X-Spam-Flag: NO
X-Spam-Score: -6.80
X-Spam-Level: 

In order to prepare for some MSR access function reorg work, switch
most users of native_{read|write}_msr[_safe]() to the more generic
rdmsr*()/wrmsr*() variants.

For now this will have some intermediate performance impact with
paravirtualization configured when running on bare metal, but this
is a prereq change for the planned direct inlining of the rdmsr/wrmsr
instructions with this configuration.

The main reason for this switch is the planned move of the MSR trace
function invocation from the native_*() functions to the generic
rdmsr*()/wrmsr*() variants. Without this switch the users of the
native_*() functions would lose the related tracing entries.

Note that the Xen related MSR access functions will not be switched,
as these will be handled after the move of the trace hooks.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Sean Christopherson <seanjc@google.com>
Acked-by: Wei Liu <wei.liu@kernel.org>
Reviewed-by: H. Peter Anvin (Intel) <hpa@zytor.com>
---
 arch/x86/hyperv/ivm.c          |  2 +-
 arch/x86/kernel/cpu/mshyperv.c |  7 +++++--
 arch/x86/kernel/kvmclock.c     |  2 +-
 arch/x86/kvm/svm/svm.c         | 16 ++++++++--------
 arch/x86/xen/pmu.c             |  4 ++--
 5 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/arch/x86/hyperv/ivm.c b/arch/x86/hyperv/ivm.c
index 651771534cae..1b2222036a0b 100644
--- a/arch/x86/hyperv/ivm.c
+++ b/arch/x86/hyperv/ivm.c
@@ -327,7 +327,7 @@ int hv_snp_boot_ap(u32 apic_id, unsigned long start_ip, unsigned int cpu)
 	asm volatile("movl %%ds, %%eax;" : "=a" (vmsa->ds.selector));
 	hv_populate_vmcb_seg(vmsa->ds, vmsa->gdtr.base);
 
-	vmsa->efer = native_read_msr(MSR_EFER);
+	rdmsrq(MSR_EFER, vmsa->efer);
 
 	vmsa->cr4 = native_read_cr4();
 	vmsa->cr3 = __native_read_cr3();
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 579fb2c64cfd..9bebb1a1ebee 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -111,9 +111,12 @@ void hv_para_set_sint_proxy(bool enable)
  */
 u64 hv_para_get_synic_register(unsigned int reg)
 {
+	u64 val;
+
 	if (WARN_ON(!ms_hyperv.paravisor_present || !hv_is_synic_msr(reg)))
 		return ~0ULL;
-	return native_read_msr(reg);
+	rdmsrq(reg, val);
+	return val;
 }
 
 /*
@@ -123,7 +126,7 @@ void hv_para_set_synic_register(unsigned int reg, u64 val)
 {
 	if (WARN_ON(!ms_hyperv.paravisor_present || !hv_is_synic_msr(reg)))
 		return;
-	native_write_msr(reg, val);
+	wrmsrq(reg, val);
 }
 
 u64 hv_get_msr(unsigned int reg)
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index b5991d53fc0e..1002bdd45c0f 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -197,7 +197,7 @@ static void kvm_setup_secondary_clock(void)
 void kvmclock_disable(void)
 {
 	if (msr_kvm_system_time)
-		native_write_msr(msr_kvm_system_time, 0);
+		wrmsrq(msr_kvm_system_time, 0);
 }
 
 static void __init kvmclock_init_mem(void)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 8f8bc863e214..1c0e7cae9e49 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -389,12 +389,12 @@ static void svm_init_erratum_383(void)
 		return;
 
 	/* Use _safe variants to not break nested virtualization */
-	if (native_read_msr_safe(MSR_AMD64_DC_CFG, &val))
+	if (rdmsrq_safe(MSR_AMD64_DC_CFG, &val))
 		return;
 
 	val |= (1ULL << 47);
 
-	native_write_msr_safe(MSR_AMD64_DC_CFG, val);
+	wrmsrq_safe(MSR_AMD64_DC_CFG, val);
 
 	erratum_383_found = true;
 }
@@ -554,9 +554,9 @@ static int svm_enable_virtualization_cpu(void)
 		u64 len, status = 0;
 		int err;
 
-		err = native_read_msr_safe(MSR_AMD64_OSVW_ID_LENGTH, &len);
+		err = rdmsrq_safe(MSR_AMD64_OSVW_ID_LENGTH, &len);
 		if (!err)
-			err = native_read_msr_safe(MSR_AMD64_OSVW_STATUS, &status);
+			err = rdmsrq_safe(MSR_AMD64_OSVW_STATUS, &status);
 
 		if (err)
 			osvw_status = osvw_len = 0;
@@ -2029,7 +2029,7 @@ static bool is_erratum_383(void)
 	if (!erratum_383_found)
 		return false;
 
-	if (native_read_msr_safe(MSR_IA32_MC0_STATUS, &value))
+	if (rdmsrq_safe(MSR_IA32_MC0_STATUS, &value))
 		return false;
 
 	/* Bit 62 may or may not be set for this mce */
@@ -2040,11 +2040,11 @@ static bool is_erratum_383(void)
 
 	/* Clear MCi_STATUS registers */
 	for (i = 0; i < 6; ++i)
-		native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0);
+		wrmsrq_safe(MSR_IA32_MCx_STATUS(i), 0);
 
-	if (!native_read_msr_safe(MSR_IA32_MCG_STATUS, &value)) {
+	if (!rdmsrq_safe(MSR_IA32_MCG_STATUS, &value)) {
 		value &= ~(1ULL << 2);
-		native_write_msr_safe(MSR_IA32_MCG_STATUS, value);
+		wrmsrq_safe(MSR_IA32_MCG_STATUS, value);
 	}
 
 	/* Flush tlb to evict multi-match entries */
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 8f89ce0b67e3..d49a3bdc448b 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -323,7 +323,7 @@ static u64 xen_amd_read_pmc(int counter)
 		u64 val;
 
 		msr = amd_counters_base + (counter * amd_msr_step);
-		native_read_msr_safe(msr, &val);
+		rdmsrq_safe(msr, &val);
 		return val;
 	}
 
@@ -349,7 +349,7 @@ static u64 xen_intel_read_pmc(int counter)
 		else
 			msr = MSR_IA32_PERFCTR0 + counter;
 
-		native_read_msr_safe(msr, &val);
+		rdmsrq_safe(msr, &val);
 		return val;
 	}
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 08:22:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 08:22:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235329.1538305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vscpZ-00010E-SL; Wed, 18 Feb 2026 08:22:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235329.1538305; Wed, 18 Feb 2026 08:22:45 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vscpZ-000107-PJ; Wed, 18 Feb 2026 08:22:45 +0000
Received: by outflank-mailman (input) for mailman id 1235329;
 Wed, 18 Feb 2026 08:22: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=RtAK=AW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vscpY-0000J6-Vq
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 08:22:44 +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 ff90fd4c-0ca2-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 09:22:44 +0100 (CET)
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 85F953E704;
 Wed, 18 Feb 2026 08:22:43 +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 1DE2A3EA65;
 Wed, 18 Feb 2026 08:22:43 +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 aOkqBtN2lWkuHwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 18 Feb 2026 08: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: ff90fd4c-0ca2-11f1-b164-2bf370ae4941
Authentication-Results: smtp-out1.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev
Cc: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 12/16] x86/paravirt: Split off MSR related hooks into new header
Date: Wed, 18 Feb 2026 09:21:29 +0100
Message-ID: <20260218082133.400602-13-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260218082133.400602-1-jgross@suse.com>
References: <20260218082133.400602-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Queue-Id: 85F953E704
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Spam-Flag: NO
X-Spam-Score: -4.00
X-Spam-Level: 

Move the WRMSR, RDMSR and RDPMC related parts of paravirt.h and
paravirt_types.h into a new header file paravirt-msr.h.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V3:
- new patch
---
 arch/x86/include/asm/msr.h            |  2 +-
 arch/x86/include/asm/paravirt-msr.h   | 46 +++++++++++++++++++++++++++
 arch/x86/include/asm/paravirt.h       | 45 --------------------------
 arch/x86/include/asm/paravirt_types.h | 13 --------
 arch/x86/kernel/paravirt.c            | 14 +++++---
 arch/x86/xen/enlighten_pv.c           | 11 ++++---
 tools/objtool/check.c                 |  1 +
 7 files changed, 63 insertions(+), 69 deletions(-)
 create mode 100644 arch/x86/include/asm/paravirt-msr.h

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 990268dea5ad..66f57265f2f8 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -308,7 +308,7 @@ static inline u64 native_read_pmc(int counter)
 }
 
 #ifdef CONFIG_PARAVIRT_XXL
-#include <asm/paravirt.h>
+#include <asm/paravirt-msr.h>
 #else
 static __always_inline u64 read_msr(u32 msr)
 {
diff --git a/arch/x86/include/asm/paravirt-msr.h b/arch/x86/include/asm/paravirt-msr.h
new file mode 100644
index 000000000000..b299864b438a
--- /dev/null
+++ b/arch/x86/include/asm/paravirt-msr.h
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef _ASM_X86_PARAVIRT_MSR_H
+#define _ASM_X86_PARAVIRT_MSR_H
+
+#include <asm/paravirt_types.h>
+
+struct pv_msr_ops {
+	/* Unsafe MSR operations.  These will warn or panic on failure. */
+	u64 (*read_msr)(u32 msr);
+	void (*write_msr)(u32 msr, u64 val);
+
+	/* Safe MSR operations.  Returns 0 or -EIO. */
+	int (*read_msr_safe)(u32 msr, u64 *val);
+	int (*write_msr_safe)(u32 msr, u64 val);
+
+	u64 (*read_pmc)(int counter);
+} __no_randomize_layout;
+
+extern struct pv_msr_ops pv_ops_msr;
+
+static __always_inline u64 read_msr(u32 msr)
+{
+	return PVOP_CALL1(u64, pv_ops_msr, read_msr, msr);
+}
+
+static __always_inline void write_msr(u32 msr, u64 val)
+{
+	PVOP_VCALL2(pv_ops_msr, write_msr, msr, val);
+}
+
+static __always_inline int read_msr_safe(u32 msr, u64 *val)
+{
+	return PVOP_CALL2(int, pv_ops_msr, read_msr_safe, msr, val);
+}
+
+static __always_inline int write_msr_safe(u32 msr, u64 val)
+{
+	return PVOP_CALL2(int, pv_ops_msr, write_msr_safe, msr, val);
+}
+
+static __always_inline u64 rdpmc(int counter)
+{
+	return PVOP_CALL1(u64, pv_ops_msr, read_pmc, counter);
+}
+
+#endif /* _ASM_X86_PARAVIRT_MSR_H */
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 6b3aed5c2309..fcda593dd5c9 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -130,51 +130,6 @@ static inline void __write_cr4(unsigned long x)
 	PVOP_VCALL1(pv_ops, cpu.write_cr4, x);
 }
 
-static inline u64 paravirt_read_msr(u32 msr)
-{
-	return PVOP_CALL1(u64, pv_ops, cpu.read_msr, msr);
-}
-
-static inline void paravirt_write_msr(u32 msr, u64 val)
-{
-	PVOP_VCALL2(pv_ops, cpu.write_msr, msr, val);
-}
-
-static inline int paravirt_read_msr_safe(u32 msr, u64 *val)
-{
-	return PVOP_CALL2(int, pv_ops, cpu.read_msr_safe, msr, val);
-}
-
-static inline int paravirt_write_msr_safe(u32 msr, u64 val)
-{
-	return PVOP_CALL2(int, pv_ops, cpu.write_msr_safe, msr, val);
-}
-
-static __always_inline u64 read_msr(u32 msr)
-{
-	return paravirt_read_msr(msr);
-}
-
-static __always_inline int read_msr_safe(u32 msr, u64 *p)
-{
-	return paravirt_read_msr_safe(msr, p);
-}
-
-static __always_inline void write_msr(u32 msr, u64 val)
-{
-	paravirt_write_msr(msr, val);
-}
-
-static __always_inline int write_msr_safe(u32 msr, u64 val)
-{
-	return paravirt_write_msr_safe(msr, val);
-}
-
-static __always_inline u64 rdpmc(int counter)
-{
-	return PVOP_CALL1(u64, pv_ops, cpu.read_pmc, counter);
-}
-
 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries)
 {
 	PVOP_VCALL2(pv_ops, cpu.alloc_ldt, ldt, entries);
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index 4f5ae0068aab..1e7188247c1f 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -67,19 +67,6 @@ struct pv_cpu_ops {
 	void (*cpuid)(unsigned int *eax, unsigned int *ebx,
 		      unsigned int *ecx, unsigned int *edx);
 
-	/* Unsafe MSR operations.  These will warn or panic on failure. */
-	u64 (*read_msr)(u32 msr);
-	void (*write_msr)(u32 msr, u64 val);
-
-	/*
-	 * Safe MSR operations.
-	 * Returns 0 or -EIO.
-	 */
-	int (*read_msr_safe)(u32 msr, u64 *val);
-	int (*write_msr_safe)(u32 msr, u64 val);
-
-	u64 (*read_pmc)(int counter);
-
 	void (*start_context_switch)(struct task_struct *prev);
 	void (*end_context_switch)(struct task_struct *next);
 #endif
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 792fa96b3233..089a87ac1582 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -109,11 +109,6 @@ struct paravirt_patch_template pv_ops = {
 	.cpu.read_cr0		= native_read_cr0,
 	.cpu.write_cr0		= native_write_cr0,
 	.cpu.write_cr4		= native_write_cr4,
-	.cpu.read_msr		= native_read_msr,
-	.cpu.write_msr		= native_write_msr,
-	.cpu.read_msr_safe	= native_read_msr_safe,
-	.cpu.write_msr_safe	= native_write_msr_safe,
-	.cpu.read_pmc		= native_read_pmc,
 	.cpu.load_tr_desc	= native_load_tr_desc,
 	.cpu.set_ldt		= native_set_ldt,
 	.cpu.load_gdt		= native_load_gdt,
@@ -215,6 +210,15 @@ struct paravirt_patch_template pv_ops = {
 };
 
 #ifdef CONFIG_PARAVIRT_XXL
+struct pv_msr_ops pv_ops_msr = {
+	.read_msr	= native_read_msr,
+	.write_msr	= native_write_msr,
+	.read_msr_safe	= native_read_msr_safe,
+	.write_msr_safe	= native_write_msr_safe,
+	.read_pmc	= native_read_pmc,
+};
+EXPORT_SYMBOL(pv_ops_msr);
+
 NOKPROBE_SYMBOL(native_load_idt);
 #endif
 
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 0a6a50f3e9a9..b94437f26cc0 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1366,11 +1366,6 @@ asmlinkage __visible void __init xen_start_kernel(struct start_info *si)
 	pv_ops.cpu.read_cr0 = xen_read_cr0;
 	pv_ops.cpu.write_cr0 = xen_write_cr0;
 	pv_ops.cpu.write_cr4 = xen_write_cr4;
-	pv_ops.cpu.read_msr = xen_read_msr;
-	pv_ops.cpu.write_msr = xen_write_msr;
-	pv_ops.cpu.read_msr_safe = xen_read_msr_safe;
-	pv_ops.cpu.write_msr_safe = xen_write_msr_safe;
-	pv_ops.cpu.read_pmc = xen_read_pmc;
 	pv_ops.cpu.load_tr_desc = paravirt_nop;
 	pv_ops.cpu.set_ldt = xen_set_ldt;
 	pv_ops.cpu.load_gdt = xen_load_gdt;
@@ -1391,6 +1386,12 @@ asmlinkage __visible void __init xen_start_kernel(struct start_info *si)
 	pv_ops.cpu.start_context_switch = xen_start_context_switch;
 	pv_ops.cpu.end_context_switch = xen_end_context_switch;
 
+	pv_ops_msr.read_msr = xen_read_msr;
+	pv_ops_msr.write_msr = xen_write_msr;
+	pv_ops_msr.read_msr_safe = xen_read_msr_safe;
+	pv_ops_msr.write_msr_safe = xen_write_msr_safe;
+	pv_ops_msr.read_pmc = xen_read_pmc;
+
 	xen_init_irq_ops();
 
 	/*
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 37f87c4a0134..d400cb435757 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -529,6 +529,7 @@ static struct {
 } pv_ops_tables[] = {
 	{ .name = "pv_ops", },
 	{ .name = "pv_ops_lock", },
+	{ .name = "pv_ops_msr", },
 	{ .name = NULL, .idx_off = -1 }
 };
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 08:22:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 08:22:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235331.1538315 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vscpl-0001IO-3b; Wed, 18 Feb 2026 08:22:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235331.1538315; Wed, 18 Feb 2026 08:22:57 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vscpl-0001IF-0S; Wed, 18 Feb 2026 08:22:57 +0000
Received: by outflank-mailman (input) for mailman id 1235331;
 Wed, 18 Feb 2026 08: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=RtAK=AW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vscpj-0000J6-VY
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 08:22:55 +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 064ee238-0ca3-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 09:22:55 +0100 (CET)
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 C25423E6F1;
 Wed, 18 Feb 2026 08:22:54 +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 65C1B3EA65;
 Wed, 18 Feb 2026 08:22:54 +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 CPC2F952lWk+HwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 18 Feb 2026 08:22: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: 064ee238-0ca3-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771402974; 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=YIRfbYWA3AyTyEt3oMdg3/rXPYmNZ/UV1Y+E3VErVSU=;
	b=tAFbBNCqTpWC2hvnzZrO/Khw42r+3dzMJT1Ses2y0pedNH1gnAUQHe8xRSYY95lMSoMoos
	gQkwLkXvpmqxwwsoaPNNqjNU5YkHAc9Z51O60pyPP7sfOsdUcWjGk3fcv3RelZ/RTR4AyO
	tKJb/LvT5eYPEGpE7kZtOBpLGmWQSK8=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771402974; 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=YIRfbYWA3AyTyEt3oMdg3/rXPYmNZ/UV1Y+E3VErVSU=;
	b=tAFbBNCqTpWC2hvnzZrO/Khw42r+3dzMJT1Ses2y0pedNH1gnAUQHe8xRSYY95lMSoMoos
	gQkwLkXvpmqxwwsoaPNNqjNU5YkHAc9Z51O60pyPP7sfOsdUcWjGk3fcv3RelZ/RTR4AyO
	tKJb/LvT5eYPEGpE7kZtOBpLGmWQSK8=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org,
	virtualization@lists.linux.dev
Cc: Juergen Gross <jgross@suse.com>,
	Ajay Kaher <ajay.kaher@broadcom.com>,
	Alexey Makhalov <alexey.makhalov@broadcom.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 14/16] x86/paravirt: Switch MSR access pv_ops functions to instruction interfaces
Date: Wed, 18 Feb 2026 09:21:31 +0100
Message-ID: <20260218082133.400602-15-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260218082133.400602-1-jgross@suse.com>
References: <20260218082133.400602-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -6.80
X-Spam-Level: 
X-Spamd-Result: default: False [-6.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	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)[14];
	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

In order to prepare for inlining RDMSR/WRMSR instructions via
alternatives directly when running not in a Xen PV guest, switch the
interfaces of the MSR related pvops callbacks to ones similar of the
related instructions.

In order to prepare for supporting the immediate variants of RDMSR/WRMSR
use a 64-bit interface instead of the 32-bit one of RDMSR/WRMSR.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V3:
- former patch 5 of V1 has been split
- use 64-bit interface (Xin Li)
---
 arch/x86/include/asm/paravirt-msr.h | 49 ++++++++++++++++++++++++-----
 arch/x86/kernel/paravirt.c          | 36 ++++++++++++++++++---
 arch/x86/xen/enlighten_pv.c         | 45 +++++++++++++++++++-------
 3 files changed, 107 insertions(+), 23 deletions(-)

diff --git a/arch/x86/include/asm/paravirt-msr.h b/arch/x86/include/asm/paravirt-msr.h
index b299864b438a..4ce690b05600 100644
--- a/arch/x86/include/asm/paravirt-msr.h
+++ b/arch/x86/include/asm/paravirt-msr.h
@@ -6,36 +6,69 @@
 
 struct pv_msr_ops {
 	/* Unsafe MSR operations.  These will warn or panic on failure. */
-	u64 (*read_msr)(u32 msr);
-	void (*write_msr)(u32 msr, u64 val);
+	struct paravirt_callee_save read_msr;
+	struct paravirt_callee_save write_msr;
 
 	/* Safe MSR operations.  Returns 0 or -EIO. */
-	int (*read_msr_safe)(u32 msr, u64 *val);
-	int (*write_msr_safe)(u32 msr, u64 val);
+	struct paravirt_callee_save read_msr_safe;
+	struct paravirt_callee_save write_msr_safe;
 
 	u64 (*read_pmc)(int counter);
 } __no_randomize_layout;
 
 extern struct pv_msr_ops pv_ops_msr;
 
+#define PV_PROLOGUE_MSR(func)		\
+	PV_SAVE_COMMON_CALLER_REGS	\
+	PV_PROLOGUE_MSR_##func
+
+#define PV_EPILOGUE_MSR(func)	PV_RESTORE_COMMON_CALLER_REGS
+
+#define PV_CALLEE_SAVE_REGS_MSR_THUNK(func)		\
+	__PV_CALLEE_SAVE_REGS_THUNK(func, ".text", MSR)
+
 static __always_inline u64 read_msr(u32 msr)
 {
-	return PVOP_CALL1(u64, pv_ops_msr, read_msr, msr);
+	u64 val;
+
+	asm volatile(PARAVIRT_CALL
+		     : "=a" (val), ASM_CALL_CONSTRAINT
+		     : paravirt_ptr(pv_ops_msr, read_msr), "c" (msr)
+		     : "rdx");
+
+	return val;
 }
 
 static __always_inline void write_msr(u32 msr, u64 val)
 {
-	PVOP_VCALL2(pv_ops_msr, write_msr, msr, val);
+	asm volatile(PARAVIRT_CALL
+		     : ASM_CALL_CONSTRAINT
+		     : paravirt_ptr(pv_ops_msr, write_msr), "c" (msr), "a" (val)
+		     : "memory", "rdx");
 }
 
 static __always_inline int read_msr_safe(u32 msr, u64 *val)
 {
-	return PVOP_CALL2(int, pv_ops_msr, read_msr_safe, msr, val);
+	int err;
+
+	asm volatile(PARAVIRT_CALL
+		     : [err] "=d" (err), "=a" (*val), ASM_CALL_CONSTRAINT
+		     : paravirt_ptr(pv_ops_msr, read_msr_safe), "c" (msr));
+
+	return err ? -EIO : 0;
 }
 
 static __always_inline int write_msr_safe(u32 msr, u64 val)
 {
-	return PVOP_CALL2(int, pv_ops_msr, write_msr_safe, msr, val);
+	int err;
+
+	asm volatile(PARAVIRT_CALL
+		     : [err] "=a" (err), ASM_CALL_CONSTRAINT
+		     : paravirt_ptr(pv_ops_msr, write_msr_safe),
+			"c" (msr), "a" (val)
+		     : "memory", "rdx");
+
+	return err ? -EIO : 0;
 }
 
 static __always_inline u64 rdpmc(int counter)
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 089a87ac1582..c0d78e4536c9 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -49,12 +49,40 @@ unsigned long pv_native_save_fl(void);
 void pv_native_irq_disable(void);
 void pv_native_irq_enable(void);
 unsigned long pv_native_read_cr2(void);
+void pv_native_rdmsr(void);
+void pv_native_wrmsr(void);
+void pv_native_rdmsr_safe(void);
+void pv_native_wrmsr_safe(void);
 
 DEFINE_ASM_FUNC(_paravirt_ident_64, "mov %rdi, %rax", .text);
 DEFINE_ASM_FUNC(pv_native_save_fl, "pushf; pop %rax", .noinstr.text);
 DEFINE_ASM_FUNC(pv_native_irq_disable, "cli", .noinstr.text);
 DEFINE_ASM_FUNC(pv_native_irq_enable, "sti", .noinstr.text);
 DEFINE_ASM_FUNC(pv_native_read_cr2, "mov %cr2, %rax", .noinstr.text);
+DEFINE_ASM_FUNC(pv_native_rdmsr,
+		"1: rdmsr\n"
+		"shl $32, %rdx; or %rdx, %rax\n"
+		"2:\n"
+		_ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_RDMSR), .noinstr.text);
+DEFINE_ASM_FUNC(pv_native_wrmsr,
+		"mov %rax, %rdx; shr $32, %rdx\n"
+		"1: wrmsr\n"
+		"2:\n"
+		_ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR), .noinstr.text);
+DEFINE_ASM_FUNC(pv_native_rdmsr_safe,
+		"1: rdmsr\n"
+		"shl $32, %rdx; or %rdx, %rax\n"
+		"xor %edx, %edx\n"
+		"2:\n"
+		_ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_RDMSR_SAFE, %%edx),
+		.noinstr.text);
+DEFINE_ASM_FUNC(pv_native_wrmsr_safe,
+		"mov %rax, %rdx; shr $32, %rdx\n"
+		"1: wrmsr\n"
+		"xor %eax, %eax\n"
+		"2:\n"
+		_ASM_EXTABLE_TYPE_REG(1b, 2b, EX_TYPE_WRMSR_SAFE, %%eax),
+		.noinstr.text);
 #endif
 
 static noinstr void pv_native_safe_halt(void)
@@ -211,10 +239,10 @@ struct paravirt_patch_template pv_ops = {
 
 #ifdef CONFIG_PARAVIRT_XXL
 struct pv_msr_ops pv_ops_msr = {
-	.read_msr	= native_read_msr,
-	.write_msr	= native_write_msr,
-	.read_msr_safe	= native_read_msr_safe,
-	.write_msr_safe	= native_write_msr_safe,
+	.read_msr	= __PV_IS_CALLEE_SAVE(pv_native_rdmsr),
+	.write_msr	= __PV_IS_CALLEE_SAVE(pv_native_wrmsr),
+	.read_msr_safe	= __PV_IS_CALLEE_SAVE(pv_native_rdmsr_safe),
+	.write_msr_safe	= __PV_IS_CALLEE_SAVE(pv_native_wrmsr_safe),
 	.read_pmc	= native_read_pmc,
 };
 EXPORT_SYMBOL(pv_ops_msr);
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index b94437f26cc0..fed312a17033 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1154,15 +1154,32 @@ static void xen_do_write_msr(u32 msr, u64 val, int *err)
 	}
 }
 
-static int xen_read_msr_safe(u32 msr, u64 *val)
+/*
+ * Prototypes for functions called via PV_CALLEE_SAVE_REGS_THUNK() in order
+ * to avoid warnings with "-Wmissing-prototypes".
+ */
+struct xen_rdmsr_safe_ret {
+	u64 val;
+	int err;
+};
+struct xen_rdmsr_safe_ret xen_read_msr_safe(u32 msr);
+int xen_write_msr_safe(u32 msr, u64 val);
+u64 xen_read_msr(u32 msr);
+void xen_write_msr(u32 msr, u64 val);
+#define PV_PROLOGUE_RDMSR	"mov %ecx, %edi;"
+#define PV_PROLOGUE_WRMSR	"mov %ecx, %edi; mov %rax, %rsi;"
+
+__visible struct xen_rdmsr_safe_ret xen_read_msr_safe(u32 msr)
 {
-	int err = 0;
+	struct xen_rdmsr_safe_ret ret = { 0, 0 };
 
-	*val = xen_do_read_msr(msr, &err);
-	return err;
+	ret.val = xen_do_read_msr(msr, &ret.err);
+	return ret;
 }
+#define PV_PROLOGUE_MSR_xen_read_msr_safe	PV_PROLOGUE_RDMSR
+PV_CALLEE_SAVE_REGS_MSR_THUNK(xen_read_msr_safe);
 
-static int xen_write_msr_safe(u32 msr, u64 val)
+__visible int xen_write_msr_safe(u32 msr, u64 val)
 {
 	int err = 0;
 
@@ -1170,20 +1187,26 @@ static int xen_write_msr_safe(u32 msr, u64 val)
 
 	return err;
 }
+#define PV_PROLOGUE_MSR_xen_write_msr_safe	PV_PROLOGUE_WRMSR
+PV_CALLEE_SAVE_REGS_MSR_THUNK(xen_write_msr_safe);
 
-static u64 xen_read_msr(u32 msr)
+__visible u64 xen_read_msr(u32 msr)
 {
 	int err = 0;
 
 	return xen_do_read_msr(msr, xen_msr_safe ? &err : NULL);
 }
+#define PV_PROLOGUE_MSR_xen_read_msr	PV_PROLOGUE_RDMSR
+PV_CALLEE_SAVE_REGS_MSR_THUNK(xen_read_msr);
 
-static void xen_write_msr(u32 msr, u64 val)
+__visible void xen_write_msr(u32 msr, u64 val)
 {
 	int err;
 
 	xen_do_write_msr(msr, val, xen_msr_safe ? &err : NULL);
 }
+#define PV_PROLOGUE_MSR_xen_write_msr	PV_PROLOGUE_WRMSR
+PV_CALLEE_SAVE_REGS_MSR_THUNK(xen_write_msr);
 
 /* This is called once we have the cpu_possible_mask */
 void __init xen_setup_vcpu_info_placement(void)
@@ -1386,10 +1409,10 @@ asmlinkage __visible void __init xen_start_kernel(struct start_info *si)
 	pv_ops.cpu.start_context_switch = xen_start_context_switch;
 	pv_ops.cpu.end_context_switch = xen_end_context_switch;
 
-	pv_ops_msr.read_msr = xen_read_msr;
-	pv_ops_msr.write_msr = xen_write_msr;
-	pv_ops_msr.read_msr_safe = xen_read_msr_safe;
-	pv_ops_msr.write_msr_safe = xen_write_msr_safe;
+	pv_ops_msr.read_msr = PV_CALLEE_SAVE(xen_read_msr);
+	pv_ops_msr.write_msr = PV_CALLEE_SAVE(xen_write_msr);
+	pv_ops_msr.read_msr_safe = PV_CALLEE_SAVE(xen_read_msr_safe);
+	pv_ops_msr.write_msr_safe = PV_CALLEE_SAVE(xen_write_msr_safe);
 	pv_ops_msr.read_pmc = xen_read_pmc;
 
 	xen_init_irq_ops();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 08:23:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 08:23:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235333.1538325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vscps-0001gm-Dt; Wed, 18 Feb 2026 08:23:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235333.1538325; Wed, 18 Feb 2026 08:23: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 1vscps-0001ge-AO; Wed, 18 Feb 2026 08:23:04 +0000
Received: by outflank-mailman (input) for mailman id 1235333;
 Wed, 18 Feb 2026 08:23: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=RtAK=AW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vscpq-0001cj-Pa
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 08:23:02 +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 098ffe0e-0ca3-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 09:23:00 +0100 (CET)
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 59ECA3E6F0;
 Wed, 18 Feb 2026 08:23: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 109203EA65;
 Wed, 18 Feb 2026 08:23: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 FfbiAuR2lWlFHwAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 18 Feb 2026 08:23: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: 098ffe0e-0ca3-11f1-9ccf-f158ae23cfc8
Authentication-Results: smtp-out1.suse.de;
	none
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Thomas Gleixner <tglx@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v3 15/16] x86/msr: Reduce number of low level MSR access helpers
Date: Wed, 18 Feb 2026 09:21:32 +0100
Message-ID: <20260218082133.400602-16-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260218082133.400602-1-jgross@suse.com>
References: <20260218082133.400602-1-jgross@suse.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Queue-Id: 59ECA3E6F0
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Rspamd-Action: no action
X-Spam-Score: -4.00
X-Spam-Level: 
X-Spam-Flag: NO
X-Spamd-Result: default: False [-4.00 / 50.00];
	REPLY(-4.00)[]
X-Rspamd-Server: rspamd1.dmz-prg2.suse.org

Some MSR access helpers are redundant now, so remove the no longer
needed ones.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/include/asm/msr.h  | 15 ++-------------
 arch/x86/xen/enlighten_pv.c |  4 ++--
 2 files changed, 4 insertions(+), 15 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 66f57265f2f8..84e82c0bb9b1 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -272,22 +272,11 @@ static __always_inline void native_wrmsr(u32 msr, u32 low, u32 high)
 	native_wrmsrq(msr, (u64)high << 32 | low);
 }
 
-static inline u64 native_read_msr(u32 msr)
-{
-	return native_rdmsrq(msr);
-}
-
 static inline int native_read_msr_safe(u32 msr, u64 *val)
 {
 	return __rdmsr(msr, val, EX_TYPE_RDMSR_SAFE) ? -EIO : 0;
 }
 
-/* Can be uninlined because referenced by paravirt */
-static inline void notrace native_write_msr(u32 msr, u64 val)
-{
-	native_wrmsrq(msr, val);
-}
-
 /* Can be uninlined because referenced by paravirt */
 static inline int notrace native_write_msr_safe(u32 msr, u64 val)
 {
@@ -312,7 +301,7 @@ static inline u64 native_read_pmc(int counter)
 #else
 static __always_inline u64 read_msr(u32 msr)
 {
-	return native_read_msr(msr);
+	return native_rdmsrq(msr);
 }
 
 static __always_inline int read_msr_safe(u32 msr, u64 *p)
@@ -322,7 +311,7 @@ static __always_inline int read_msr_safe(u32 msr, u64 *p)
 
 static __always_inline void write_msr(u32 msr, u64 val)
 {
-	native_write_msr(msr, val);
+	native_wrmsrq(msr, val);
 }
 
 static __always_inline int write_msr_safe(u32 msr, u64 val)
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index fed312a17033..612a512e2a67 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -1091,7 +1091,7 @@ static u64 xen_do_read_msr(u32 msr, int *err)
 	if (err)
 		*err = native_read_msr_safe(msr, &val);
 	else
-		val = native_read_msr(msr);
+		val = native_rdmsrq(msr);
 
 	switch (msr) {
 	case MSR_IA32_APICBASE:
@@ -1150,7 +1150,7 @@ static void xen_do_write_msr(u32 msr, u64 val, int *err)
 		if (err)
 			*err = native_write_msr_safe(msr, val);
 		else
-			native_write_msr(msr, val);
+			native_wrmsrq(msr, val);
 	}
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 08:37:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 08:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235356.1538335 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsd3S-0003tK-Gy; Wed, 18 Feb 2026 08:37:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235356.1538335; Wed, 18 Feb 2026 08: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 1vsd3S-0003tD-DX; Wed, 18 Feb 2026 08:37:06 +0000
Received: by outflank-mailman (input) for mailman id 1235356;
 Wed, 18 Feb 2026 08: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=b4Gf=AW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vsd3Q-0003t7-9f
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 08:37:04 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fac7ef52-0ca4-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 09:36:55 +0100 (CET)
Received: from SA9P221CA0005.NAMP221.PROD.OUTLOOK.COM (2603:10b6:806:25::10)
 by CH3PR12MB8911.namprd12.prod.outlook.com (2603:10b6:610:169::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.13; Wed, 18 Feb
 2026 08:36:50 +0000
Received: from SA2PEPF00001505.namprd04.prod.outlook.com
 (2603:10b6:806:25:cafe::95) 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.9632.13 via Frontend Transport; Wed,
 18 Feb 2026 08:36:48 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00001505.mail.protection.outlook.com (10.167.242.37) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 08:36:48 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 18 Feb
 2026 02:36:47 -0600
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, 18 Feb
 2026 02:36:47 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 18 Feb 2026 02:36:46 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fac7ef52-0ca4-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ikxP/czm00Q+XewO3o/1YNG6mfvGcIxW7MeVdNgKIM1vw2/wTqCuXFqHEG4tHrqyZWea+/Om0D96XOcqqc1D4xjOrfErZnES/U5RUjGINhMsCFuD/DlCxoyikZ/YY5CAZkuoLviI/7AIW/7azFvivdDhjWTDDxjA0h2lFhmRg7SeoPVlDBz1fHYhKSvFnzFQnT1kjtxhYwVcz0lzPonrL/HfUc2+s/gudUQ9Tgq9nvHjXBuuRiAbnsxMWbcLZxkZTqMu/ba3LcBxyMrKmM76V1sQIC28qZUOE43EqXvxBiKK0mkCzCUf+7qrb1MuntmQspAOcp8KhxkFPyja+RhPcQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GDhqwGjgmTtz/7TbZy83bZITtVkDy+KvULq8YDdE1pg=;
 b=KIbIn7/hl98q+8Ybj0r0Y8n4FmuRCRplKvo47UmZDK/haVOrGKYUYPty6pLvRMEFDKecA/EWUuyqY99UgxX2LR0SIMQEUyxOLBr1Jrn5zvL9mqlwV6+BAi5G+a+zXSbQXeguISouwsT4PBfwujlvS2c+2/3GtbfoxJy0bdCRyIVViIY+Kc5lXkV6pn8hpvgAWgBQu0P4/DxtrobmjIbtTcl8bL7ecsatSLW33Re3ykGlXv9rMuYoOJkdCDqA3b8gsxOFImi2vro+o8AfHlONm+N+jXPqPebJavL71+rVKrIJe0BgQA5bj4IHc5hobkhjmc0Yzhl1VWeRqT1R+NV54Q==
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=GDhqwGjgmTtz/7TbZy83bZITtVkDy+KvULq8YDdE1pg=;
 b=NRS9sJsyfxDmlTK7pMj65P07Xdp1Ht+zVkR7bFULuFe9Z6S1zC9n6DgERyK8BFlHoH3EEVEq82d4DYRr/CFfJy29UYpIEqyfylswlHq3CbdNiLeIxcku/PF1IxbIxH605Ydzu1h4A+d1wAvtj4LbcRbdNFWufA3ejiEfQpZ4+hg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <526d338e-8648-4f90-8006-35c639bfa6bd@amd.com>
Date: Wed, 18 Feb 2026 09:36:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: tighten translate_get_page()
To: Jan Beulich <jbeulich@suse.com>
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>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
References: <1d898900-1072-4ea6-ac4c-1262905cab29@suse.com>
 <abd54c11-28fc-4487-a2f8-733007d361ae@amd.com>
 <9163d0b9-f77e-4c13-b986-2d890bdf8ccd@suse.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <9163d0b9-f77e-4c13-b986-2d890bdf8ccd@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: michal.orzel@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00001505:EE_|CH3PR12MB8911:EE_
X-MS-Office365-Filtering-Correlation-Id: f35c64d8-ee01-4961-f0eb-08de6ec8db3c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dzNkdFBvSGRDK1A5NUI5VThmYWxxNXJ2RHMzQmJjL1A0eTFuYUNsSW5OY2Nv?=
 =?utf-8?B?QXdpMHd0eWFpeUlFTmZaYWdneEQ1azgreFNtRFRmMjU1b29zZUZvaVRzc3l3?=
 =?utf-8?B?S1NJWGVhMTRNQnpqL1BXVDF3NktucytlNTF1QlpTNTRVbExGQ1MvdjVFd1hK?=
 =?utf-8?B?R04yaEh6ZWg2YUlmckZxTjJXS1lFU3FzNWFZdDlZRGE2ak91TTRqTE5NeE1m?=
 =?utf-8?B?SGZVOWMrbGdjWEFybXlqVXpvUkZuRDAwenIvVlRMRkhZV2NrcE93NU9oMVlQ?=
 =?utf-8?B?QnB1MUtrUWk2cmpiYmRDU3kyZGR2N3Q4Y3k2TGNEcGNVNWNpcUhVb1c2N2lo?=
 =?utf-8?B?dnlZNEJBSC85S0c4c1cxd004bStIU1ZRb01mZUxTRVBoaEhHTms5dXNnV1Jr?=
 =?utf-8?B?NDN3eXE3WmNCSC9SRnhHSnpMbEFNNnBTYUJ0NFlseDB3Y29idCtQUmxYZ29P?=
 =?utf-8?B?blNwZ0ZHRnQrNlcvRGxGa0ZwSHJWREdpRnB6R25UZUxqMWk2Zk85eXN5ZVVP?=
 =?utf-8?B?Z2sxNWZBenVPQ21ycWxNSCtIMHdBR3RXV0tEZk9SdFpNM0ZDOEJCUTF5ditK?=
 =?utf-8?B?RzVEYmpXcDZKSnlvRE5OL3pzSWpMZTBYYndSOWJkNWdYMTBHMVY4UG1WSEVK?=
 =?utf-8?B?WCt5eTBidDIzeVZWbkJBUGFnNFNaOXZKUjdraDkvalFlc3Z2Q3g3bUs1MldO?=
 =?utf-8?B?cWpnMzd6eDB2YTlXYmVrNVQ2VWQrRXlwUU84NmZ2STloMGRWK0UzN0pWZGtU?=
 =?utf-8?B?anczTWY4dmlmRUxkb2RIRlN2Q2pyeWp2NlFlaDhzd01scWlEWEpXT3kyK0tD?=
 =?utf-8?B?bnNPZmlydnJIR2xrUUNsTFpPdW9SRSsyLzRQaFB5MHRsM05LU05BbFM3aFU4?=
 =?utf-8?B?YUxJT1R5L2lvckZhRGNneEZDa2RqY2lFcDZYOVV3eENwZnp4ZVdSbG5wbDNC?=
 =?utf-8?B?MHNDQjBSNU5BQnJySVk0V01MLzVNTnhvZi9heUZMbUdndWhYMTJHd3EzZDlp?=
 =?utf-8?B?TFpVOWN2Yy9TSzFqdy9oVE9mbmlsUXNIRmVMaFFjN2QrajZ6RGsxeGVXdDhI?=
 =?utf-8?B?NVBWVkFkWE5EMzFycmp6SEo0NFlicDBJVDgzN0hnOXhvQWZNWU5MWmdObTRw?=
 =?utf-8?B?NjdvWlpGZnFhdUIxbEFsanRmN3BWTm5EdW1BOFdGWEZtNXZJeWpmYVAwQlZL?=
 =?utf-8?B?QThUZzFKK3hkbUJ4eFhLaTZYdkV5dEFKK1FCbTcxRW1Zc2NmR283YnNHZ0dT?=
 =?utf-8?B?NzgrTVp2d2hoMlVoVDU4ZTJpMjdmTnVyOWRCbyszYjBZZ0hNY29wMU5qdHBn?=
 =?utf-8?B?cGFsL1JNWnprakpOU1I1dEQ2SnZESGcvYjR0eUV6YTN0UjkzUDlHWXZlNGVl?=
 =?utf-8?B?SGRKY3FYUjdhckJOZmx6bUJDOEo1UnB5MmlNVGJZWDE1eTFmd2x1RXQ0L2lF?=
 =?utf-8?B?bFZPTkg3TC9IYnFhWnZOVE51aENQbHJTU3IrdDRObjV6dEEwTU1FR0ZlajN1?=
 =?utf-8?B?Um1kRkwvZlNuamlOV0xGNlhlYWRodEZzYWowbUkxL1A5S1BBeThVcmpJRVds?=
 =?utf-8?B?UHNCVG5ob0FObmpmWEVYdXY4dWdLY00vcEdVMC9xZjNYYnZkT2gyRTVlVktC?=
 =?utf-8?B?RzFwNWVIMjloOGZ5MnpWUUZvVHY3aXJBR1FCRy9OOGcrc3JQV0JZb2pKaWpV?=
 =?utf-8?B?Z2wrQXgwdzRzS1BpaFRRNFdxMVZJMXkrUHVsSzZybzhyOERGampiR1pNNW5W?=
 =?utf-8?B?czFnTVdUUld3RWV2cFdvWHBxZGE5R01CL0RFVnNxNkpqbTB2V2c4VDI2YUli?=
 =?utf-8?B?YUd1czRrWlRaRnYxaHRERTFENWxGbUdDeXNERmhraFUxRmFtakN2SUxFTE5m?=
 =?utf-8?B?OVZ0ZFpPOEpRS1RjVU44VXpkaUR0RzllQVpEcVhZOHczMzBJaDFFTWtia001?=
 =?utf-8?B?bGd0Z3lvTGFmN0FWNmpGOFlzMjFhdUxLWnhmck44czl1TkhRaW1KeDk5S0RD?=
 =?utf-8?B?dEJmVjJuaWZKdVEvTTdqQ1MzNTdYUFN3d1FhRFhPQWNZY3NLNzJ3cFF1RjZm?=
 =?utf-8?B?Q0N6V2tnYnlWY0lwaGIrRldQcTR4aUZsdTFsQXl6ZzU4bXFJWmdPOVBvMjVB?=
 =?utf-8?B?M0JVeEZsemkvbnBNYmdoSlB6ZXRldG1WSFBwblp0ekRPSlhJNTBCSC8xeTFU?=
 =?utf-8?B?c1V3bzBtazFqNWFNNUR5a2tEam9Ma21QTENweWJxUDNVVndKeklMUGlyRFpx?=
 =?utf-8?B?cTZQWEJnbjNlbmdCMm1hRG5STVB3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	xQC0A0ioxfNnjWu2KcMwwtK4EKeucVhpPDqHfSMGONrDnh9Ah7SbkbFn8H93mu/6jDRfhfL9xd1BkEHoorLDQl3UsqQpd9VbVWJbuBc4w0IBxsmjsa9t2teCArA9VD0slY7oxS4YfMW+l7BLH/tn9ARhwBLO29VF6TVkxwmC/B3xv1nLkqQrR55Gqh1bc9mHVsERXVZc/x4jMLJLShAEvPHkSjHAi28sEawkNn4O40US8smYizgw65bQ7KkNt9g4oOVkMYhPbJpKtvHuY3CZWuaORE5xC9FL6fIPm882fVdom/jFI0Qt+vmxrnVUEk1eFjodvnw8pqb4BOLya6KUoTCzTYSt9N14U9vzvjwviTvZjltA5DNIF5PTR90mI/NBnRiRgtbmtP/A0oxf9RxbBLbld80m4TzvLSU72cGL+49p/f3GMEj3cKWQdol83lqr
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 08:36:48.3254
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f35c64d8-ee01-4961-f0eb-08de6ec8db3c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00001505.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8911



On 17/02/2026 16:54, Jan Beulich wrote:
> On 17.02.2026 16:28, Orzel, Michal wrote:
>>
>>
>> On 16/02/2026 16:20, Jan Beulich wrote:
>>> Permitting writes when the P2M type says "read-only" can't be correct.
>>>
>>> Fixes: 1661158723a ("xen/arm: Extend copy_to_guest to support copying from/to guest physical address")
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> 
> Thanks.
> 
>>> ---
>>> What exactly p2m_ram_ro means on Arm is unclear: The comment next to its
>>> definition says one thing, its use in get_page_from_gfn() says another.
>>> (I remember raising this point before, i.e. it feels a little odd that the
>>> ambiguity still exists.) The patch here assumes the comment is what is
>>> wrong.
>>>
>>> --- a/xen/arch/arm/guestcopy.c
>>> +++ b/xen/arch/arm/guestcopy.c
>>> @@ -44,7 +44,7 @@ static struct page_info *translate_get_p
>>>      if ( !page )
>>>          return NULL;
>>>  
>>> -    if ( !p2m_is_ram(p2mt) )
>>> +    if ( write ? p2mt != p2m_ram_rw : !p2m_is_ram(p2mt) )
>>>      {
>>>          put_page(page);
>>>          return NULL;
>>
>> The ambiguity you mention is indeed problematic. This mixes page type with p2m
>> type. The comment "The p2m_type is based on the type of the page" admits this
>> conflation for DOMID_XEN.
>>
>> AFAICT, p2m_ram_ro is not used on Arm for normal domains. The only use is in
>> get_page_from_gfn() for DOMID_XEN. Maybe we could change get_page_from_gfn() to
>> always return p2m_ram_rw since DOMID_XEN has direct 1:1 access anyway?
> 
> But that's not correct for cases where share_xen_page_with_privileged_guest()
> is passed SHARE_ro. XENMAPSPACE_gmfn_foreign requests have to result in r/o
> mappings in that case.
Yes. Therefore, on Arm:
- p2m_ram_ro is never stored in P2M tables for normal domains
- it's only used by get_page_from_gfn() for DOMID_XEN pages
- it's used as a signal to install p2m_map_foreign_ro mappings

The code should stay as is then and we could modify the comment to say:
/* Read-only RAM; only used for DOMID_XEN */

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 08:52:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 08:52:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235364.1538345 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsdIV-0006gt-Mw; Wed, 18 Feb 2026 08:52:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235364.1538345; Wed, 18 Feb 2026 08:52: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 1vsdIV-0006gm-Jy; Wed, 18 Feb 2026 08:52:39 +0000
Received: by outflank-mailman (input) for mailman id 1235364;
 Wed, 18 Feb 2026 08:52: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsdIU-0006gg-Rv
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 08:52:38 +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 2cc4f526-0ca7-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 09:52:37 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-43638a3330dso3933183f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 00:52:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a74918sm40343660f8f.17.2026.02.18.00.52.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 00:52:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2cc4f526-0ca7-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771404757; x=1772009557; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=LefX0n61n1KVAFxb03ZPorKU4FbTRVy6uFlcWjZSidc=;
        b=WbTd2EyDGnUFqllMbuxyDUmfWOffuhaRLjJ3Feq0OcYCPqPceeD/p3+h79ecwvRKiq
         TXyx+RiYjUX/E/WcRVwBOxkdLqzPZec+zG3VNVZD4nsCKQKmscaUtHdZWs0v4JI99sBW
         jIDHJhCeP8IwS+4ckAhHAf8ez1MlZzEGZwWNKI/Tz72j9pNlpEp8L5khEYNJFkFSz1gA
         70UBtBda/sf2QKx5tNV3isoPEs3ny8oO9tc1m+UopDUiEFHnYLu5Ys4cGKcHGfrMtX8V
         dsha6Yl54JozPkY0oFUYe8Lmp6fYnwLtUwlR718RAQyLl0Kj8DjIWa0U9ii9i0lXG99x
         MmQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771404757; x=1772009557;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LefX0n61n1KVAFxb03ZPorKU4FbTRVy6uFlcWjZSidc=;
        b=m88M2L7CG3iNlttSalGBSrgQg9jutLwnLOq12dSUaibXA+kU2rzCj/to5X9dU52Era
         qJpC4Lz+DRNpSu6tkZBOmXHtr+CF2usRLjRNg+dQ9ss/1hIUAvhNPUFZyYAeluh8cSv4
         3l7jadnpcvku2mCKhVHlrQ4KlDrNVTgZjQfDr2v6cy1nhUMkBfXj0sAoJScTa67/xW6O
         IZSzgpT1/BhiXbko6EGF5xvvCRRz3v5+gfN4oeedxFgAK+TuEOjTAdmfL+2UaLVjQsn/
         qmR0rOPf7sePsQSUwLXH6B2GXGbersGyPBG78R2VR/pky2whDnveuPN4fRJQi0pSNsgd
         slqQ==
X-Forwarded-Encrypted: i=1; AJvYcCXxBYdnlQi8QRePOGMcBjRvukVHsr6gXynbSdGPerW4+orm/ESH0O6QmaOjVxQgOQjXh1qdDhhor4A=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzubijTyTACiZiPTOrYsFedLhvAIbRTOA5qH4MNcUl/84if7vW0
	wjvyyyA28BP9j4JYRX8BM0Vvggij/vsNmTmrCoQ2tvbMBqa5TdvVjwdlHSGdvqwgLQ==
X-Gm-Gg: AZuq6aKbqqfdf5xyBK0EzRW7F7c8FKUok4w7eOXanc5ZRm3c5P9XE99JaOQtmPL8etk
	bUrmMBPn2DtPUDEeM8Px58Op2/9uPnsGDiNAQdCa7diQTr6PVbdtx7ZevnSpFD4hokMpqzIFR2+
	eChkIxMy+4iCrAeeYUr1tuICiNZNPD/t4BmjCfaL3hmc3yuKuC64cQyCW7SjQfz0uFSU4k4+Pya
	5QR7Z0O49//Fa8S/giWG74NDSOjy8MUFZNIZlf1jPSvfUcvnToen9wou1G3P3osowipj0JERcF6
	9Vz+kZKdh/nJE9m+Kz0TH/aMs/8mNtMyhlx/av9KrztigpBkbzPidnXtn1hjailrqp9HbNCuA9r
	dp+qt6HIVL2n0cHaUeiAo/UuUitAMJa6/kCuVrAZxYlEtLLppchKJbv0pSYZXQdBDvzLu+yvTVl
	kgy70ikdssB/pKFH8+IFJwRBv40PtoQ0xJDY2pFzg7+i1qqL6IZbzNaIA73uNE7acTM0gVKcxwo
	CNBkBSKDMek33Y=
X-Received: by 2002:a05:6000:2001:b0:435:96ec:679e with SMTP id ffacd0b85a97d-4379db61cccmr25836875f8f.23.1771404756802;
        Wed, 18 Feb 2026 00:52:36 -0800 (PST)
Message-ID: <00aa15b0-b1bf-47cb-ab67-bc32d68f56e4@suse.com>
Date: Wed, 18 Feb 2026 09:52:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/5] vPCI: introduce private header
To: Stewart Hildebrand <stewart.hildebrand@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>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <4fda7acb-e1a4-4a24-982e-4cae90048018@suse.com>
 <3bbe1fc7-ed6e-43ee-bcee-17502ba56539@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: <3bbe1fc7-ed6e-43ee-bcee-17502ba56539@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 17.02.2026 23:04, Stewart Hildebrand wrote:
> On 2/10/26 05:53, Jan Beulich wrote:
>> Before adding more private stuff to xen/vpci.h, split it up. In order to
>> be able to include the private header first in a CU, the per-arch struct
>> decls also need to move (to new asm/vpci.h files).
>>
>> While adjusting the test harness'es Makefile, also switch the pre-existing
>> header symlink-ing rule to a pattern one.
>>
>> Apart from in the test harness code, things only move; no functional
>> change intended.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> Subsequently, at least on x86 more stuff may want moving into asm/vpci.h.
>> ---
>> v4: New.
>>
>> --- a/tools/tests/vpci/Makefile
>> +++ b/tools/tests/vpci/Makefile
>> @@ -14,8 +14,8 @@ else
>>  	$(warning HOSTCC != CC, will not run test)
>>  endif
>>  
>> -$(TARGET): vpci.c vpci.h list.h main.c emul.h
>> -	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
>> +$(TARGET): vpci.c vpci.h list.h private.h main.c emul.h
>> +	$(CC) $(CFLAGS_xeninclude) -include emul.h -g -o $@ vpci.c main.c
>>  
>>  .PHONY: clean
>>  clean:
> 
> Can you please add the generated private.h to be removed upon "make clean"?
> 
> Also, can you please add tools/tests/vpci/private.h to .gitignore?

Oops, yes, of course.

>> --- /dev/null
>> +++ b/xen/arch/arm/include/asm/vpci.h
>> @@ -0,0 +1,13 @@
>> +/* SPDX-License-Identifier: GPL-2.0-only */
>> +#ifndef ARM_VPCI_H
>> +#define ARM_VPCI_H
>> +
>> +/* Arch-specific MSI data for vPCI. */
>> +struct vpci_arch_msi {
>> +};
>> +
>> +/* Arch-specific MSI-X entry data for vPCI. */
>> +struct vpci_arch_msix_entry {
>> +};
>> +
>> +#endif /* ARM_VPCI_H */
> 
> Out of curiosity (not asking for any changes), why did you include an emacs
> footer on the x86 header but not here?
> 
> Otherwise, the rest of the patch looks good to me.

Well - I copied the original files and then reduced them to just what I
wanted to move here.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 09:04:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 09:04:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235373.1538355 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsdTO-0008T8-NR; Wed, 18 Feb 2026 09:03:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235373.1538355; Wed, 18 Feb 2026 09: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 1vsdTO-0008T1-JS; Wed, 18 Feb 2026 09:03:54 +0000
Received: by outflank-mailman (input) for mailman id 1235373;
 Wed, 18 Feb 2026 09:03: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsdTN-0008Su-Fr
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 09:03:53 +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 beae05c6-0ca8-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 10:03:52 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4837584120eso33703675e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 01:03:52 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4835d99e194sm440739835e9.8.2026.02.18.01.03.50
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 01:03:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: beae05c6-0ca8-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771405431; x=1772010231; 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=SvKa91gva/wogVd3fgZzjcHBMHjxFlRjMx/wNJQFRf4=;
        b=YqkcrYwP/wVZ+D5ahCE5fCeI/ZbEOprUoTsRQ+1pHakQryCzq6NjSN7s4eHJcuCZR8
         3KfXFZ+LW4MNf+kyV9lQAqA5fZH8eRkdEBWG76KIlGzF/YOgLlKBPfcOkubglAOf/vzM
         u83THwfOIcOyPTqAktGZjxTYzRgVpMLIHmS6U38dcULfnuXJjt0YaAScztWXTUEMedkG
         I0xpxHUtIusM/G3CaaHLk51QRaJfjH1vnkKtLvL/Yqe5vtuYn8XiuYiz++thXRvt3XLF
         JGs4EoyqxvwCkl07wVoh0BkguCF7PimbRCh1YC2K7pd5jvYGkk6TWQvf4ORPDTLtUEo8
         vNWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771405431; x=1772010231;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=SvKa91gva/wogVd3fgZzjcHBMHjxFlRjMx/wNJQFRf4=;
        b=YEA9chCOnSvrGSGA3oBED3mwjr+OeSAgBUtg3XnOQtSJQj7BCGZ9ItusXr9kCDQzBx
         ipQIEu0uZXVrwgYnZPRX8ziMVirbFbsmJ3niPXpWXTsr61WmFU+qSsCzeLQT57M46S+n
         CNK/EMUzerYaBJjVAD+SZFGLQ/fq/YOe6krk1OV1obC1lATQgnJKF5H57gLXb37UD452
         +GW4zsvNZjv/Ml9xvPk9xcl9PncNO9h5BTIuFVjy8YrjrbXTvcAZI8F5R/E90+HxYSrm
         rf1vOnkJF/iQ6FikLnxyR7sWx9qhPO/CmaNsly6+XbqcobtiZtlIkZCf8kf1AR/u2a/5
         vrWQ==
X-Gm-Message-State: AOJu0YydRiPGlo1XulXrhBVi/rX0oj6jpnxD5CoL+iX7RzmIrl21T1wl
	SF6zeHX/4yaivwWLnt3imPnxFr0XCZpIVcUgm/JrjfRJvv7HSIlE1Kx2wkvHii9QKGDdTOJhzAk
	sRFo=
X-Gm-Gg: AZuq6aI+dOE+PIYpXekX+BYT0gFpgacFLesFKEoAwOaxmzyee3KvtEOQaPx50Re2W9J
	hWKT3nGYBcc1UbKgp392k8uQh5apFcpWzgODtBmbYIqJTC7A1EQLb6+spO+w+c9szjvqvh0J3AK
	Ok5EKG6RCUIw89lwSbEzcXHWUbIw+57Et3UKq5aec96MeHpNEs4P2829kMDl+iruVLv9HALFaBD
	kGUD1+2/Zk/AR1CczUOnXGI88n1C7fn7ELjLJMvwfsV0N0eRoZkmq1Qxe5e3w++nwC9kr4D4sJX
	7mEYDEe7lBIWUAbeSluTOMEVME5rRud8PiLiKIfAepxtoF4pf1RAv04uvKJbJgfhlgdftnzGs3M
	b8N3BbZGmazKorr/YfLBT6M7eaZZa12D+Xhyc9TZ62XGJLUZJEs86nsgftDKv+mcc+vkLBRTeJ+
	HXG9bpt43TeHHrLWzeMotLbAVXVBHDXS1suVpGhJwmtHtKIMP4nWrAO0uV0frhlI4a/wlS2FQm6
	pVuuTHbi6BtNDPICk5ah1UYeg==
X-Received: by 2002:a05:600c:444f:b0:475:de14:db1e with SMTP id 5b1f17b1804b1-48379bd742amr219365065e9.24.1771405431184;
        Wed, 18 Feb 2026 01:03:51 -0800 (PST)
Message-ID: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
Date: Wed, 18 Feb 2026 10:03:49 +0100
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/shadow: don't use #if in macro invocations
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

As per the standard this is UB, i.e. we're building on a defacto extension
in the compilers we use. Misra C:2012 rule 20.6 disallows this altogether,
though. Use helper always-inline functions instead.

In sh_audit_l1_table(), along with reducing the scope of "gfn", which now
isn't used anymore by the if() side of the conditional, also reduce the
scope of two other adjacent variables.

For audit_magic() note that both which parameters are needed and what
their types are is attributed to AUDIT_FAIL() accessing variables which
aren't passed as arguments to it.

No functional change intended. Of course codegen does change with this,
first and foremost in register allocation.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Leaving even the fetching of current to the helper in
sh_rm_write_access_from_l1() looks tidier to me overall, albeit this means
the fetch will now occur once per present L1E.

Converting the #if to if() and #ifdef to if(IS_ENABLED()) wouldn't work
here, as identifiers are used which aren't available when the respective
conditions are false.

Note that I tested this only on top of
https://lists.xen.org/archives/html/xen-devel/2023-05/msg01140.html, but I
have no reason to assume that there is a problematic interaction. Of
course it would be really nice if the rest of that series finally could go
in.

--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -395,7 +395,7 @@ static inline mfn_t cf_check sh_next_pag
     shadow_set_l2e(d, sl2e, new_sl2e, sl2mfn, SH_type_fl1_shadow, sh_next_page)
 
 static inline u32
-guest_index(void *ptr)
+guest_index(const void *ptr)
 {
     return (u32)((unsigned long)ptr & ~PAGE_MASK) / sizeof(guest_l1e_t);
 }
@@ -3549,16 +3549,25 @@ static int cf_check sh_guess_wrmap(
 }
 #endif
 
+/* Remember the last shadow that we shot a writeable mapping in */
+static always_inline void store_last_writeable_pte_smfn(
+    const struct domain *d, mfn_t sl1mfn)
+{
+#if SHADOW_OPTIMIZATIONS & SHOPT_WRITABLE_HEURISTIC
+    struct vcpu *curr = current;
+
+    if ( curr->domain == d )
+        curr->arch.paging.shadow.last_writeable_pte_smfn = mfn_x(sl1mfn);
+#endif
+}
+
 int cf_check sh_rm_write_access_from_l1(
     struct domain *d, mfn_t sl1mfn, mfn_t readonly_mfn)
 /* Excises all writeable mappings to readonly_mfn from this l1 shadow table */
 {
     shadow_l1e_t *sl1e;
     int done = 0;
-#if SHADOW_OPTIMIZATIONS & SHOPT_WRITABLE_HEURISTIC
-    struct vcpu *curr = current;
     mfn_t base_sl1mfn = sl1mfn; /* Because sl1mfn changes in the foreach */
-#endif
 
     FOREACH_PRESENT_L1E(sl1mfn, sl1e, NULL, done,
     {
@@ -3568,11 +3577,9 @@ int cf_check sh_rm_write_access_from_l1(
             shadow_l1e_t ro_sl1e = shadow_l1e_remove_flags(*sl1e, _PAGE_RW);
 
             shadow_set_l1e(d, sl1e, ro_sl1e, p2m_ram_rw, sl1mfn);
-#if SHADOW_OPTIMIZATIONS & SHOPT_WRITABLE_HEURISTIC
-            /* Remember the last shadow that we shot a writeable mapping in */
-            if ( curr->domain == d )
-                curr->arch.paging.shadow.last_writeable_pte_smfn = mfn_x(base_sl1mfn);
-#endif
+
+            store_last_writeable_pte_smfn(d, base_sl1mfn);
+
             if ( (mfn_to_page(readonly_mfn)->u.inuse.type_info
                   & PGT_count_mask) == 0 )
                 /* This breaks us cleanly out of the FOREACH macro */
@@ -3882,12 +3889,36 @@ static const char *sh_audit_flags(const
     return NULL;
 }
 
+static always_inline bool audit_magic(
+    const guest_l1e_t *gl1e, mfn_t gl1mfn,
+    const shadow_l1e_t *sl1e, mfn_t sl1mfn)
+{
+    bool done = false;
+
+#if SHADOW_OPTIMIZATIONS & SHOPT_FAST_FAULT_PATH
+    if ( !sh_l1e_is_gnp(*sl1e) )
+    {
+        gfn_t gfn = sh_l1e_mmio_get_gfn(*sl1e);
+
+        ASSERT(sh_l1e_is_mmio(*sl1e));
+
+        if ( !gfn_eq(gfn, guest_l1e_get_gfn(*gl1e)) )
+            AUDIT_FAIL(1,
+                       "shadow MMIO gfn is %" SH_PRI_gfn " but guest gfn is %" SH_PRI_gfn,
+                       gfn_x(gfn), gfn_x(guest_l1e_get_gfn(*gl1e)));
+    }
+    else if ( guest_l1e_get_flags(*gl1e) & _PAGE_PRESENT )
+        AUDIT_FAIL(1, "shadow is GNP magic but guest is present");
+#endif
+
+    return done;
+}
+
 int cf_check sh_audit_l1_table(struct domain *d, mfn_t sl1mfn, mfn_t x)
 {
     guest_l1e_t *gl1e, *gp;
     shadow_l1e_t *sl1e;
-    mfn_t mfn, gmfn, gl1mfn;
-    gfn_t gfn;
+    mfn_t gl1mfn;
     p2m_type_t p2mt;
     const char *s;
     int done = 0;
@@ -3906,28 +3937,10 @@ int cf_check sh_audit_l1_table(struct do
 #endif
 
     gl1e = gp = map_domain_page(gl1mfn);
-    FOREACH_PRESENT_L1E(sl1mfn, sl1e, &gl1e, done, {
-
+    FOREACH_PRESENT_L1E(sl1mfn, sl1e, &gl1e, done,
+    {
         if ( sh_l1e_is_magic(*sl1e) )
-        {
-#if (SHADOW_OPTIMIZATIONS & SHOPT_FAST_FAULT_PATH)
-            if ( sh_l1e_is_gnp(*sl1e) )
-            {
-                if ( guest_l1e_get_flags(*gl1e) & _PAGE_PRESENT )
-                    AUDIT_FAIL(1, "shadow is GNP magic but guest is present");
-            }
-            else
-            {
-                ASSERT(sh_l1e_is_mmio(*sl1e));
-                gfn = sh_l1e_mmio_get_gfn(*sl1e);
-                if ( gfn_x(gfn) != gfn_x(guest_l1e_get_gfn(*gl1e)) )
-                    AUDIT_FAIL(1, "shadow MMIO gfn is %" SH_PRI_gfn
-                               " but guest gfn is %" SH_PRI_gfn,
-                               gfn_x(gfn),
-                               gfn_x(guest_l1e_get_gfn(*gl1e)));
-            }
-#endif
-        }
+            done = audit_magic(gl1e, gl1mfn, sl1e, sl1mfn);
         else
         {
             s = sh_audit_flags(d, 1, guest_l1e_get_flags(*gl1e),
@@ -3936,9 +3949,10 @@ int cf_check sh_audit_l1_table(struct do
 
             if ( SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_MFNS )
             {
-                gfn = guest_l1e_get_gfn(*gl1e);
-                mfn = shadow_l1e_get_mfn(*sl1e);
-                gmfn = get_gfn_query_unlocked(d, gfn_x(gfn), &p2mt);
+                gfn_t gfn = guest_l1e_get_gfn(*gl1e);
+                mfn_t mfn = shadow_l1e_get_mfn(*sl1e);
+                mfn_t gmfn = get_gfn_query_unlocked(d, gfn_x(gfn), &p2mt);
+
                 if ( !p2m_is_grant(p2mt) && !mfn_eq(gmfn, mfn) )
                     AUDIT_FAIL(1, "bad translation: gfn %" SH_PRI_gfn
                                " --> %" PRI_mfn " != mfn %" PRI_mfn,
@@ -4027,6 +4041,17 @@ int cf_check sh_audit_l2_table(struct do
 }
 
 #if GUEST_PAGING_LEVELS >= 4
+static always_inline unsigned int type_from_gl3e(
+    const struct domain *d, const guest_l3e_t *gl3e)
+{
+#ifdef CONFIG_PV32
+    if ( guest_index(gl3e) == 3 && is_pv_32bit_domain(d) )
+        return SH_type_l2h_shadow;
+#endif
+
+    return SH_type_l2_shadow;
+}
+
 int cf_check sh_audit_l3_table(struct domain *d, mfn_t sl3mfn, mfn_t x)
 {
     guest_l3e_t *gl3e, *gp;
@@ -4056,14 +4081,10 @@ int cf_check sh_audit_l3_table(struct do
 
         if ( SHADOW_AUDIT & SHADOW_AUDIT_ENTRIES_MFNS )
         {
-            unsigned int t = SH_type_l2_shadow;
+            unsigned int t = type_from_gl3e(d, gl3e);
 
             gfn = guest_l3e_get_gfn(*gl3e);
             mfn = shadow_l3e_get_mfn(*sl3e);
-#ifdef CONFIG_PV32
-            if ( guest_index(gl3e) == 3 && is_pv_32bit_domain(d) )
-                t = SH_type_l2h_shadow;
-#endif
             gmfn = get_shadow_status(
                        d, get_gfn_query_unlocked(d, gfn_x(gfn), &p2mt), t);
             if ( !mfn_eq(gmfn, mfn) )


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 09:52:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 09:52:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235388.1538364 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vseE8-0006aC-AX; Wed, 18 Feb 2026 09:52:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235388.1538364; Wed, 18 Feb 2026 09:52: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 1vseE8-0006a5-7f; Wed, 18 Feb 2026 09:52:12 +0000
Received: by outflank-mailman (input) for mailman id 1235388;
 Wed, 18 Feb 2026 09:52: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=RtAK=AW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vseE6-0006Zz-G4
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 09:52:10 +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 7cfc5f6d-0caf-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 10:52:08 +0100 (CET)
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 90C8F5BCC9;
 Wed, 18 Feb 2026 09:52:07 +0000 (UTC)
Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 2C1E53EA65;
 Wed, 18 Feb 2026 09:52:07 +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 +Y2iCceLlWnjfQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 18 Feb 2026 09:52: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: 7cfc5f6d-0caf-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771408327; 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=1qq8z/OXjLb7Vbssw0MTizM/EphKSCRXKSLOblBdcEE=;
	b=VA1AwakW+XiAmozxbE8J7qZrQuEf0+n6ib1+6fbubOke3wbODuvMeCOcD64nyd4vCS+6j/
	2cqA+2yIJ/JmEB55zUFcMfEL2AhvclSOmRZa1zIUUrbxNkD5jNvcTBFALY11162rdDspf9
	3hse2FjaMAWXjosrHWAfF8m3bSEH1VI=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771408327; 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=1qq8z/OXjLb7Vbssw0MTizM/EphKSCRXKSLOblBdcEE=;
	b=VA1AwakW+XiAmozxbE8J7qZrQuEf0+n6ib1+6fbubOke3wbODuvMeCOcD64nyd4vCS+6j/
	2cqA+2yIJ/JmEB55zUFcMfEL2AhvclSOmRZa1zIUUrbxNkD5jNvcTBFALY11162rdDspf9
	3hse2FjaMAWXjosrHWAfF8m3bSEH1VI=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-pci@vger.kernel.org,
	linux-scsi@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH v2 0/2]  xen/xenbus: better handle backend crash
Date: Wed, 18 Feb 2026 10:52:03 +0100
Message-ID: <20260218095205.453657-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-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];
	RCPT_COUNT_TWELVE(0.00)[16];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	MIME_TRACE(0.00)[0:+];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	ARC_NA(0.00)[];
	TAGGED_RCPT(0.00)[netdev];
	RCVD_TLS_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_HAS_DN(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO
X-Spam-Score: -1.80
X-Spam-Level: 

This small series fixes PV-device frontend side handling in case the
backend crashed and has come up again.

The old device will be discarded and the replacement can be used
instead.

Changes in V2:
- fixed one comment related build warning

Juergen Gross (2):
  xenbus: add xenbus_device parameter to xenbus_read_driver_state()
  xen/xenbus: better handle backend crash

 drivers/net/xen-netfront.c                 | 34 +++++++++---------
 drivers/pci/xen-pcifront.c                 |  8 ++---
 drivers/scsi/xen-scsifront.c               |  2 +-
 drivers/xen/xen-pciback/xenbus.c           | 10 +++---
 drivers/xen/xenbus/xenbus_client.c         | 17 +++++++--
 drivers/xen/xenbus/xenbus_probe.c          | 42 ++++++++++++++++++++--
 drivers/xen/xenbus/xenbus_probe_frontend.c |  2 +-
 include/xen/xenbus.h                       |  4 ++-
 8 files changed, 84 insertions(+), 35 deletions(-)

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 09:52:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 09:52:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235389.1538375 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vseED-0006o2-HX; Wed, 18 Feb 2026 09:52:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235389.1538375; Wed, 18 Feb 2026 09:52: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 1vseED-0006nv-Dp; Wed, 18 Feb 2026 09:52:17 +0000
Received: by outflank-mailman (input) for mailman id 1235389;
 Wed, 18 Feb 2026 09:52: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=RtAK=AW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vseEC-0006na-6V
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 09:52:16 +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 80498518-0caf-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 10:52:13 +0100 (CET)
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 496CB3E6CC;
 Wed, 18 Feb 2026 09:52: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 D48623EA65;
 Wed, 18 Feb 2026 09:52: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 25S1MsyLlWnqfQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 18 Feb 2026 09:52: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: 80498518-0caf-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771408333; 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=6an1q48KjRbAhbQVvdoHYoaIrt1Vz4lUP6AS4HcAAwE=;
	b=HwDxVjLb5rzDl98jUuVjANDuW0gyL4FJdreRStmSyureZa5ALvayYjScEEWK1ueAgSPLG2
	jNYC5qBwn0mUXSImvJfemPNtD2iXHRxpT8NsXkaDIiLAFbWL3Rn2lg2KJqS46DqXsoWwhM
	uJJkkR0Y5EEtyMsOifaOGmOjBTifh40=
Authentication-Results: smtp-out1.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771408333; 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=6an1q48KjRbAhbQVvdoHYoaIrt1Vz4lUP6AS4HcAAwE=;
	b=HwDxVjLb5rzDl98jUuVjANDuW0gyL4FJdreRStmSyureZa5ALvayYjScEEWK1ueAgSPLG2
	jNYC5qBwn0mUXSImvJfemPNtD2iXHRxpT8NsXkaDIiLAFbWL3Rn2lg2KJqS46DqXsoWwhM
	uJJkkR0Y5EEtyMsOifaOGmOjBTifh40=
From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org,
	linux-pci@vger.kernel.org,
	linux-scsi@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 1/2] xenbus: add xenbus_device parameter to xenbus_read_driver_state()
Date: Wed, 18 Feb 2026 10:52:04 +0100
Message-ID: <20260218095205.453657-2-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260218095205.453657-1-jgross@suse.com>
References: <20260218095205.453657-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -5.80
X-Spam-Level: 
X-Spamd-Result: default: False [-5.80 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	SUSPICIOUS_RECIPS(1.50)[];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCPT_COUNT_TWELVE(0.00)[17];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	ARC_NA(0.00)[];
	MIME_TRACE(0.00)[0:+];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	FROM_HAS_DN(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	FROM_EQ_ENVFROM(0.00)[];
	TO_DN_SOME(0.00)[];
	TAGGED_RCPT(0.00)[netdev];
	R_RATELIMIT(0.00)[to_ip_from(RLsote1drt81dzioaq3931x19g)];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO

In order to prepare checking the xenbus device status in
xenbus_read_driver_state(), add the pointer to struct xenbus_device
as a parameter.

Signed-off-by: Juergen Gross <jgross@suse.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- add dev parameter description (kernel test robot)
---
 drivers/net/xen-netfront.c                 | 34 +++++++++++-----------
 drivers/pci/xen-pcifront.c                 |  8 ++---
 drivers/scsi/xen-scsifront.c               |  2 +-
 drivers/xen/xen-pciback/xenbus.c           | 10 +++----
 drivers/xen/xenbus/xenbus_client.c         |  4 ++-
 drivers/xen/xenbus/xenbus_probe.c          |  6 ++--
 drivers/xen/xenbus/xenbus_probe_frontend.c |  2 +-
 include/xen/xenbus.h                       |  3 +-
 8 files changed, 36 insertions(+), 33 deletions(-)

diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 0969d5c9f6b7..2c414b77dd0f 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1646,7 +1646,7 @@ static int xennet_xdp_set(struct net_device *dev, struct bpf_prog *prog,
 
 	/* avoid the race with XDP headroom adjustment */
 	wait_event(module_wq,
-		   xenbus_read_driver_state(np->xbdev->otherend) ==
+		   xenbus_read_driver_state(np->xbdev, np->xbdev->otherend) ==
 		   XenbusStateReconfigured);
 	np->netfront_xdp_enabled = true;
 
@@ -1764,9 +1764,9 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev)
 	do {
 		xenbus_switch_state(dev, XenbusStateInitialising);
 		err = wait_event_timeout(module_wq,
-				 xenbus_read_driver_state(dev->otherend) !=
+				 xenbus_read_driver_state(dev, dev->otherend) !=
 				 XenbusStateClosed &&
-				 xenbus_read_driver_state(dev->otherend) !=
+				 xenbus_read_driver_state(dev, dev->otherend) !=
 				 XenbusStateUnknown, XENNET_TIMEOUT);
 	} while (!err);
 
@@ -2627,31 +2627,31 @@ static void xennet_bus_close(struct xenbus_device *dev)
 {
 	int ret;
 
-	if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)
+	if (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed)
 		return;
 	do {
 		xenbus_switch_state(dev, XenbusStateClosing);
 		ret = wait_event_timeout(module_wq,
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateClosing ||
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateClosed ||
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateUnknown,
-				   XENNET_TIMEOUT);
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateClosing ||
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateClosed ||
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateUnknown,
+				XENNET_TIMEOUT);
 	} while (!ret);
 
-	if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)
+	if (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed)
 		return;
 
 	do {
 		xenbus_switch_state(dev, XenbusStateClosed);
 		ret = wait_event_timeout(module_wq,
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateClosed ||
-				   xenbus_read_driver_state(dev->otherend) ==
-				   XenbusStateUnknown,
-				   XENNET_TIMEOUT);
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateClosed ||
+				xenbus_read_driver_state(dev, dev->otherend) ==
+				XenbusStateUnknown,
+				XENNET_TIMEOUT);
 	} while (!ret);
 }
 
diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c
index 11636634ae51..cd22bf984024 100644
--- a/drivers/pci/xen-pcifront.c
+++ b/drivers/pci/xen-pcifront.c
@@ -856,7 +856,7 @@ static void pcifront_try_connect(struct pcifront_device *pdev)
 	int err;
 
 	/* Only connect once */
-	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
 	    XenbusStateInitialised)
 		return;
 
@@ -876,7 +876,7 @@ static int pcifront_try_disconnect(struct pcifront_device *pdev)
 	enum xenbus_state prev_state;
 
 
-	prev_state = xenbus_read_driver_state(pdev->xdev->nodename);
+	prev_state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename);
 
 	if (prev_state >= XenbusStateClosing)
 		goto out;
@@ -895,7 +895,7 @@ static int pcifront_try_disconnect(struct pcifront_device *pdev)
 
 static void pcifront_attach_devices(struct pcifront_device *pdev)
 {
-	if (xenbus_read_driver_state(pdev->xdev->nodename) ==
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) ==
 	    XenbusStateReconfiguring)
 		pcifront_connect(pdev);
 }
@@ -909,7 +909,7 @@ static int pcifront_detach_devices(struct pcifront_device *pdev)
 	struct pci_dev *pci_dev;
 	char str[64];
 
-	state = xenbus_read_driver_state(pdev->xdev->nodename);
+	state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename);
 	if (state == XenbusStateInitialised) {
 		dev_dbg(&pdev->xdev->dev, "Handle skipped connect.\n");
 		/* We missed Connected and need to initialize. */
diff --git a/drivers/scsi/xen-scsifront.c b/drivers/scsi/xen-scsifront.c
index 924025305753..ef74d4da5ab0 100644
--- a/drivers/scsi/xen-scsifront.c
+++ b/drivers/scsi/xen-scsifront.c
@@ -1175,7 +1175,7 @@ static void scsifront_backend_changed(struct xenbus_device *dev,
 			return;
 		}
 
-		if (xenbus_read_driver_state(dev->nodename) ==
+		if (xenbus_read_driver_state(dev, dev->nodename) ==
 		    XenbusStateInitialised)
 			scsifront_do_lun_hotplug(info, VSCSIFRONT_OP_ADD_LUN);
 
diff --git a/drivers/xen/xen-pciback/xenbus.c b/drivers/xen/xen-pciback/xenbus.c
index b11e401f1b1e..4bd1c7a8957e 100644
--- a/drivers/xen/xen-pciback/xenbus.c
+++ b/drivers/xen/xen-pciback/xenbus.c
@@ -149,12 +149,12 @@ static int xen_pcibk_attach(struct xen_pcibk_device *pdev)
 
 	mutex_lock(&pdev->dev_lock);
 	/* Make sure we only do this setup once */
-	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
 	    XenbusStateInitialised)
 		goto out;
 
 	/* Wait for frontend to state that it has published the configuration */
-	if (xenbus_read_driver_state(pdev->xdev->otherend) !=
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->otherend) !=
 	    XenbusStateInitialised)
 		goto out;
 
@@ -374,7 +374,7 @@ static int xen_pcibk_reconfigure(struct xen_pcibk_device *pdev,
 	dev_dbg(&pdev->xdev->dev, "Reconfiguring device ...\n");
 
 	mutex_lock(&pdev->dev_lock);
-	if (xenbus_read_driver_state(pdev->xdev->nodename) != state)
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) != state)
 		goto out;
 
 	err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, "num_devs", "%d",
@@ -572,7 +572,7 @@ static int xen_pcibk_setup_backend(struct xen_pcibk_device *pdev)
 	/* It's possible we could get the call to setup twice, so make sure
 	 * we're not already connected.
 	 */
-	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
+	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
 	    XenbusStateInitWait)
 		goto out;
 
@@ -662,7 +662,7 @@ static void xen_pcibk_be_watch(struct xenbus_watch *watch,
 	struct xen_pcibk_device *pdev =
 	    container_of(watch, struct xen_pcibk_device, be_watch);
 
-	switch (xenbus_read_driver_state(pdev->xdev->nodename)) {
+	switch (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename)) {
 	case XenbusStateInitWait:
 		xen_pcibk_setup_backend(pdev);
 		break;
diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index 2dc874fb5506..e502435145ae 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -931,12 +931,14 @@ static int xenbus_unmap_ring_hvm(struct xenbus_device *dev, void *vaddr)
 
 /**
  * xenbus_read_driver_state - read state from a store path
+ * @dev: xenbus device pointer
  * @path: path for driver
  *
  * Returns: the state of the driver rooted at the given store path, or
  * XenbusStateUnknown if no state can be read.
  */
-enum xenbus_state xenbus_read_driver_state(const char *path)
+enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,
+					   const char *path)
 {
 	enum xenbus_state result;
 	int err = xenbus_gather(XBT_NIL, path, "state", "%d", &result, NULL);
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 9f9011cd7447..2eed06ba5d38 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -191,7 +191,7 @@ void xenbus_otherend_changed(struct xenbus_watch *watch,
 		return;
 	}
 
-	state = xenbus_read_driver_state(dev->otherend);
+	state = xenbus_read_driver_state(dev, dev->otherend);
 
 	dev_dbg(&dev->dev, "state is %d, (%s), %s, %s\n",
 		state, xenbus_strstate(state), dev->otherend_watch.node, path);
@@ -364,7 +364,7 @@ void xenbus_dev_remove(struct device *_dev)
 	 * closed.
 	 */
 	if (!drv->allow_rebind ||
-	    xenbus_read_driver_state(dev->nodename) == XenbusStateClosing)
+	    xenbus_read_driver_state(dev, dev->nodename) == XenbusStateClosing)
 		xenbus_switch_state(dev, XenbusStateClosed);
 }
 EXPORT_SYMBOL_GPL(xenbus_dev_remove);
@@ -514,7 +514,7 @@ int xenbus_probe_node(struct xen_bus_type *bus,
 	size_t stringlen;
 	char *tmpstring;
 
-	enum xenbus_state state = xenbus_read_driver_state(nodename);
+	enum xenbus_state state = xenbus_read_driver_state(NULL, nodename);
 
 	if (state != XenbusStateInitialising) {
 		/* Device is not new, so ignore it.  This can happen if a
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
index f04707d1f667..ca04609730df 100644
--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -253,7 +253,7 @@ static int print_device_status(struct device *dev, void *data)
 	} else if (xendev->state < XenbusStateConnected) {
 		enum xenbus_state rstate = XenbusStateUnknown;
 		if (xendev->otherend)
-			rstate = xenbus_read_driver_state(xendev->otherend);
+			rstate = xenbus_read_driver_state(xendev, xendev->otherend);
 		pr_warn("Timeout connecting to device: %s (local state %d, remote state %d)\n",
 			xendev->nodename, xendev->state, rstate);
 	}
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index c94caf852aea..15319da65b7f 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -228,7 +228,8 @@ int xenbus_unmap_ring_vfree(struct xenbus_device *dev, void *vaddr);
 int xenbus_alloc_evtchn(struct xenbus_device *dev, evtchn_port_t *port);
 int xenbus_free_evtchn(struct xenbus_device *dev, evtchn_port_t port);
 
-enum xenbus_state xenbus_read_driver_state(const char *path);
+enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,
+					   const char *path);
 
 __printf(3, 4)
 void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt, ...);
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 09:52:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 09:52:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235390.1538384 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vseEG-00073A-NN; Wed, 18 Feb 2026 09:52:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235390.1538384; Wed, 18 Feb 2026 09:52: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 1vseEG-000731-Ko; Wed, 18 Feb 2026 09:52:20 +0000
Received: by outflank-mailman (input) for mailman id 1235390;
 Wed, 18 Feb 2026 09:52: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=RtAK=AW=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vseEF-0006Zz-PB
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 09:52:19 +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 8393c050-0caf-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 10:52:19 +0100 (CET)
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 BDB405BCC8;
 Wed, 18 Feb 2026 09:52: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 886533EA65;
 Wed, 18 Feb 2026 09:52: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 eMwnINKLlWn0fQAAD6G6ig
 (envelope-from <jgross@suse.com>); Wed, 18 Feb 2026 09:52: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: 8393c050-0caf-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771408338; 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=Us/u84SsxFMO0tl1d+eBym7mS0CVvhetUanmuDsPoqE=;
	b=C65Oht9X6FM1TbuBFE3CaVYZlsnmaR9Nss+awa/RYN8fsCAsnGCLQVIy/KV9SrI5PFePYa
	jRWpttC0vb0wu4IoTttLhb8Wxcy5Zjz7vc/rlEzvuXlqjeX3cRICn1+EL3XjiOS7X0Btnl
	NYaJKyFJOO1XXlz08F2XDfJfAgaVPUE=
Authentication-Results: smtp-out2.suse.de;
	none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771408338; 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=Us/u84SsxFMO0tl1d+eBym7mS0CVvhetUanmuDsPoqE=;
	b=C65Oht9X6FM1TbuBFE3CaVYZlsnmaR9Nss+awa/RYN8fsCAsnGCLQVIy/KV9SrI5PFePYa
	jRWpttC0vb0wu4IoTttLhb8Wxcy5Zjz7vc/rlEzvuXlqjeX3cRICn1+EL3XjiOS7X0Btnl
	NYaJKyFJOO1XXlz08F2XDfJfAgaVPUE=
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,
	=?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: [PATCH v2 2/2] xen/xenbus: better handle backend crash
Date: Wed, 18 Feb 2026 10:52:05 +0100
Message-ID: <20260218095205.453657-3-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <20260218095205.453657-1-jgross@suse.com>
References: <20260218095205.453657-1-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -7.30
X-Spam-Level: 
X-Spamd-Result: default: False [-7.30 / 50.00];
	REPLY(-4.00)[];
	BAYES_HAM(-3.00)[100.00%];
	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)[];
	MIME_TRACE(0.00)[0:+];
	ARC_NA(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_ALL(0.00)[];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_HAS_DN(0.00)[];
	RCPT_COUNT_FIVE(0.00)[6];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo]
X-Spam-Flag: NO

When the backend domain crashes, coordinated device cleanup is not
possible (as it involves waiting for the backend state change). In that
case, toolstack forcefully removes frontend xenstore entries.
xenbus_dev_changed() handles this case, and triggers device cleanup.
It's possible that toolstack manages to connect new device in that
place, before xenbus_dev_changed() notices the old one is missing. If
that happens, new one won't be probed and will forever remain in
XenbusStateInitialising.

Fix this by checking the frontend's state in Xenstore. In case it has
been reset to XenbusStateInitialising by Xen tools, consider this
being the result of an unplug+plug operation.

It's important that cleanup on such unplug doesn't modify Xenstore
entries (especially the "state" key) as it belong to the new device
to be probed - changing it would derail establishing connection to the
new backend (most likely, closing the device before it was even
connected). Handle this case by setting new xenbus_device->vanished
flag to true, and check it before changing state entry.

And even if xenbus_dev_changed() correctly detects the device was
forcefully removed, the cleanup handling is still racy. Since this whole
handling doesn't happened in a single Xenstore transaction, it's possible
that toolstack might put a new device there already. Avoid re-creating
the state key (which in the case of loosing the race would actually
close newly attached device).

The problem does not apply to frontend domain crash, as this case
involves coordinated cleanup.

Problem originally reported at
https://lore.kernel.org/xen-devel/aOZvivyZ9YhVWDLN@mail-itl/T/#t,
including reproduction steps.

Based-on-patch-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
 drivers/xen/xenbus/xenbus_client.c | 13 +++++++++--
 drivers/xen/xenbus/xenbus_probe.c  | 36 ++++++++++++++++++++++++++++++
 include/xen/xenbus.h               |  1 +
 3 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
index e502435145ae..19672b08a680 100644
--- a/drivers/xen/xenbus/xenbus_client.c
+++ b/drivers/xen/xenbus/xenbus_client.c
@@ -226,8 +226,9 @@ __xenbus_switch_state(struct xenbus_device *dev,
 	struct xenbus_transaction xbt;
 	int current_state;
 	int err, abort;
+	bool vanished = false;
 
-	if (state == dev->state)
+	if (state == dev->state || dev->vanished)
 		return 0;
 
 again:
@@ -242,6 +243,10 @@ __xenbus_switch_state(struct xenbus_device *dev,
 	err = xenbus_scanf(xbt, dev->nodename, "state", "%d", &current_state);
 	if (err != 1)
 		goto abort;
+	if (current_state != dev->state && current_state == XenbusStateInitialising) {
+		vanished = true;
+		goto abort;
+	}
 
 	err = xenbus_printf(xbt, dev->nodename, "state", "%d", state);
 	if (err) {
@@ -256,7 +261,7 @@ __xenbus_switch_state(struct xenbus_device *dev,
 		if (err == -EAGAIN && !abort)
 			goto again;
 		xenbus_switch_fatal(dev, depth, err, "ending transaction");
-	} else
+	} else if (!vanished)
 		dev->state = state;
 
 	return 0;
@@ -941,6 +946,10 @@ enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,
 					   const char *path)
 {
 	enum xenbus_state result;
+
+	if (dev && dev->vanished)
+		return XenbusStateUnknown;
+
 	int err = xenbus_gather(XBT_NIL, path, "state", "%d", &result, NULL);
 	if (err)
 		result = XenbusStateUnknown;
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 2eed06ba5d38..eb260eceb4d2 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -444,6 +444,9 @@ static void xenbus_cleanup_devices(const char *path, struct bus_type *bus)
 		info.dev = NULL;
 		bus_for_each_dev(bus, NULL, &info, cleanup_dev);
 		if (info.dev) {
+			dev_warn(&info.dev->dev,
+				 "device forcefully removed from xenstore\n");
+			info.dev->vanished = true;
 			device_unregister(&info.dev->dev);
 			put_device(&info.dev->dev);
 		}
@@ -659,6 +662,39 @@ void xenbus_dev_changed(const char *node, struct xen_bus_type *bus)
 		return;
 
 	dev = xenbus_device_find(root, &bus->bus);
+	/*
+	 * Backend domain crash results in not coordinated frontend removal,
+	 * without going through XenbusStateClosing. If this is a new instance
+	 * of the same device Xen tools will have reset the state to
+	 * XenbusStateInitializing.
+	 * It might be that the backend crashed early during the init phase of
+	 * device setup, in which case the known state would have been
+	 * XenbusStateInitializing. So test the backend domid to match the
+	 * saved one. In case the new backend happens to have the same domid as
+	 * the old one, we can just carry on, as there is no inconsistency
+	 * resulting in this case.
+	 */
+	if (dev && !strcmp(bus->root, "device")) {
+		enum xenbus_state state = xenbus_read_driver_state(dev, dev->nodename);
+		unsigned int backend = xenbus_read_unsigned(root, "backend-id",
+							    dev->otherend_id);
+
+		if (state == XenbusStateInitialising &&
+		    (state != dev->state || backend != dev->otherend_id)) {
+			/*
+			 * State has been reset, assume the old one vanished
+			 * and new one needs to be probed.
+			 */
+			dev_warn(&dev->dev,
+				 "state reset occurred, reconnecting\n");
+			dev->vanished = true;
+		}
+		if (dev->vanished) {
+			device_unregister(&dev->dev);
+			put_device(&dev->dev);
+			dev = NULL;
+		}
+	}
 	if (!dev)
 		xenbus_probe_node(bus, type, root);
 	else
diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
index 15319da65b7f..8ca15743af7f 100644
--- a/include/xen/xenbus.h
+++ b/include/xen/xenbus.h
@@ -80,6 +80,7 @@ struct xenbus_device {
 	const char *devicetype;
 	const char *nodename;
 	const char *otherend;
+	bool vanished;
 	int otherend_id;
 	struct xenbus_watch otherend_watch;
 	struct device dev;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 10:39:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 10:39:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235426.1538410 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsexc-0004YO-Dv; Wed, 18 Feb 2026 10:39:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235426.1538410; Wed, 18 Feb 2026 10:39:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsexc-0004YH-Aw; Wed, 18 Feb 2026 10:39:12 +0000
Received: by outflank-mailman (input) for mailman id 1235426;
 Wed, 18 Feb 2026 10:39: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=LUrD=AW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsexa-0004YB-TO
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 10:39:10 +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 0ecf01c5-0cb6-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 11:39:09 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-435a11957f6so4323464f8f.0
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 02:39:09 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abc9b2sm38027741f8f.21.2026.02.18.02.39.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 02:39:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ecf01c5-0cb6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771411149; x=1772015949; 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=vencrR2JmyyQ4hs7UisWeiRVl7NoQiOERDUJ2NlUUTA=;
        b=lqcNIgY1tgiazp2e6ENW8WA+7vhXuhbsK9PsREFDAz9rh75vE37Ht9HgGmMF0I/4Cp
         KhvBWdvFd2w/720U3pokgLM+yAkNY1tF0Y/52/jBQbXXySlZuYT4j9T4r0noV4B56NYo
         xzk0yyKPiA5QihDOKQ87G43At4Hwg4rNSkQ+SGq0NpCMY44NUF8NhcImV41ezgd/GYbo
         bW9wjqRgcBMBuDQovAvtoTK3DIfOL+us5bytnZ5I1Ik3NpUDS3YukuzUqjDUgvPS/6yf
         UmoID/4+Jw+Q3Akxd3YJTOs2cbcN8UfcqBS0JlfcoIHa8jG5zZOISdmWg+PLHL5we11L
         Y8dA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771411149; x=1772015949;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=vencrR2JmyyQ4hs7UisWeiRVl7NoQiOERDUJ2NlUUTA=;
        b=tvL1f6fQLtEp+SzatduYT+26K10NvmU1tgJErtnxlL+6RyUDhf/NKmbmQyQQleiApf
         xpQh/XJHjEzS3B5JqfZZtfXYHtzbM235Fw8QHulwU0taLrF7mve7/XoZ5F3Mhth8I//U
         mjGGTxiuf3ArbpiB+qAYDb/wX2aFkH/dmGXJlij3CGB79DpMUdLv3U8evqWAkUJjBrLm
         GvQ5KguT6LtS1ql1gP45w0WJlvXYieOA3bPBrSseZNLucHkPWhULf+Dw/8aatppugu95
         KmjlTIsjDR9aVxS1PHvLJkH6ZX1M2obpuLe/pIluHxon4Nk8KTvdMdAB6eMdNcvjxNM3
         qoXw==
X-Forwarded-Encrypted: i=1; AJvYcCWhc+rCPHNPNPjOSz6rRg7DvuyQTPsPWfuNHr7ce+xWLYRSaZyU8OMC12B/dlf66QdCAopaSGRAiOs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwqpR7jJYDzJXupssdIHOqE5LP8yZE294dI8LEovwLv4B9MKq+f
	g5lvhkSZ0LKDFwVuQ+8S+xYxWnozGztBZpN8aDOqYuNhc/vgawzFEaF+
X-Gm-Gg: AZuq6aJE4qvbnffnMhlYEl2930gMVJd+ir3UuKsrBCO1Dv/abFWTFHRhMINiXqiqJBz
	svvn0PUmGDSD+La14VsHSQuj2dnqMCgUJShgcEq3kkxx7w5qut6KLYN/DFNJ60jHfeWnDCBUyhw
	l8PpeHjhRvEhsMVxzh9Cme1XnW8WfkWxsaYh+uoVX6yPcMhlVA9cMsd518KYsfMIWEprSKoFl4+
	B/qJ5Dfm4zvkisPNann4jgpnS5vRXSpakUSvKUDtASPRjAAOI7iExXQQHc7fvHNYnXchd5pO3Su
	uPccRPoJzYEA5b8TM9+8kDaMqYDNmots+OuQ50pf8ulM8pAXAD+pcR23E83oxe/Dd8zTcBQpdnZ
	pqv81TGrttt8IEcRgUpvUXHABz0y6DLF6qAqo4aGqvEVY/VMs5l5eXhjAkFrp1Jp2+7jjHQLV2L
	iN5xOYoQfeClIEGZYLUjnvzsS9HEoIW1TCXtA29Y84bkS2CwMPNgqA6Sv+pGpD/yfjZSiQw2RLc
	ro=
X-Received: by 2002:a5d:5f88:0:b0:436:23a2:5e25 with SMTP id ffacd0b85a97d-4379791b776mr31153185f8f.44.1771411148954;
        Wed, 18 Feb 2026 02:39:08 -0800 (PST)
Message-ID: <760d7b95-2e76-453c-8d13-ca4432eb22e5@gmail.com>
Date: Wed, 18 Feb 2026 11:39:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
 <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
 <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/13/26 2:11 PM, Jan Beulich wrote:
> On 13.02.2026 13:54, Oleksii Kurochko wrote:
>> On 2/12/26 5:39 PM, Jan Beulich wrote:
>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>> --- a/xen/include/public/arch-riscv.h
>>>> +++ b/xen/include/public/arch-riscv.h
>>>> @@ -50,6 +50,14 @@ typedef uint64_t xen_ulong_t;
>>>>    
>>>>    #if defined(__XEN__) || defined(__XEN_TOOLS__)
>>>>    
>>>> +#define GUEST_RAM_BANKS   1
>>>> +
>>>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>>>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>>>> +
>>>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>>>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
>>> Hmm, does RISC-V really want to go with compile-time constants here?
>> It is needed for allocate_memory() for guest domains, so it is expected
>> to be compile-time constant with the current code of common dom0less
>> approach.
>>
>> It represents the start of RAM address for DomU and the maximum RAM size
>> (the actual size will be calculated based on what is mentioned in DomU node
>> in dts) and then will be used to generate memory node for DomU (GUEST_RAM0_BASE
>> as RAM start address and min(GUEST_RAM0_SIZE, dts->domU->memory->size) as a
>> RAM size).
>>
>>>    And
>>> if so, why would guests be limited to just 2 Gb?
>> It is enough for guest domain I am using in dom0less mode.
> And what others may want to use RISC-V for once it actually becomes usable
> isn't relevant? As you start adding things to the public headers, you will
> need to understand that you can't change easily what once was put there.
> Everything there is part of the ABI, and the ABI needs to remain stable
> (within certain limits).

Considering this ...

>
>>> That may more efficiently
>>> be RV32 guests then, with perhaps just an RV32 hypervisor.
>> I  didn't get this point. Could you please explain differently what do you
>> mean?
> If all you want are 2Gb guests, why would such guests be 64-bit? And with
> (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide), perhaps
> even a 32-bit hypervisor would suffice?

... now I can agree that Xen should permit bigger amount of RAM. At least,
(2^34-1) should be allowed for RV32 and so for RV64 so it could be used
like a base for both of them. As RV64 allows (2^56 - 1) it makes sense
to add another bank to cover range from 2^34 to (2^56 -1) for RV64 (and ifdef
this second bank for  RV64).

Would it be better?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 10:46:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 10:46:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235435.1538420 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsf4F-00066U-2j; Wed, 18 Feb 2026 10:46:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235435.1538420; Wed, 18 Feb 2026 10:46: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 1vsf4F-00066N-08; Wed, 18 Feb 2026 10:46:03 +0000
Received: by outflank-mailman (input) for mailman id 1235435;
 Wed, 18 Feb 2026 10:46: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsf4D-00065y-VC
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 10:46:01 +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 ffb86221-0cb6-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 11:45:54 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4837907f535so37533635e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 02:45:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483740be167sm373444625e9.15.2026.02.18.02.45.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 02:45:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ffb86221-0cb6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771411553; x=1772016353; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=guaIVk1bitGgKUwQCbBmi7WJHzwKBp/VOb4RXDcQbGI=;
        b=X201QsFvbNyA0U4K2ttkj35RqN/t+sJV2WMMQNv5PV+MP1oXkc51OR0I43XX7lNFwQ
         Gq2sm0nZ59KK0OPVYO5KWkJOI3j2wVNJaCZyYagUM94tmcU19ZkOW9edC6DIwnq4bOva
         1lxgk2lYjbsfzwVS5WW6cJwImtgcr+jQW5sAb2mjl8M/1J8sfBMm83OwNEuaez/GtZUz
         92Y3NkksZD1+TpSK5BSrWp9pUCTK4M0e1kB9Eo+BZGOyyz5bJTg9LXA39vIV1w05Mt4t
         W67vF9UAp/wveML9xkhhnokGsI+5SQ6dBAlCG+34L18gGoo3br7PVJF8FJ7VcUBqcFa+
         HL8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771411553; x=1772016353;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=guaIVk1bitGgKUwQCbBmi7WJHzwKBp/VOb4RXDcQbGI=;
        b=Dv9TJmEGqPxvjh1YQcwnKMVlTVS9pfpT/vwsFunm/l42/+xEVopvQX3fPD3L5Rlbci
         XcJ2VAqCa5zjVtZyhsYspW67kTtnPGIsyDkdm5aOuMccQzz6UOAGHCTJaB4POcS9xDO5
         ArbUwtdfTHsYXLC9bGc0Yv8yveNQEBa1spw2iNY5SgKKKGej5Ri7nl3iFsDCeyR8DES9
         sAfnTVnh1d0Itv0cnicDbnrs4gD896pVd9nU65RbYVvcxBNurz05gTg6atjokKsEBnmJ
         S75PgvYMAHYUEzY73q5YGywX9timfDsTjHp1cE9Qp1EpfcDNgkZ5x85QbOyQBiZuYLTn
         K1AQ==
X-Forwarded-Encrypted: i=1; AJvYcCU7e+akdbqVUfbCkod+AGsQqEqhbqdeYaCOpYBMSLf3UcFRVpXem1Nvkozy7lmf+qvP/tqBj/ntKfM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwvdT4M86uvOWZ+rcVAiDo5dHVvntBwUtypq32nkhgnsLpe3KJ+
	YvGAqKK4YXyMTjquwLEPOp4khM4duekAwVOLxVGw2c1A6CBD0SdeB9zFbPBLFLgwtg==
X-Gm-Gg: AZuq6aK3bbvdSfvL3X7UzyJLbM/8os2f26d0qf+oa3E8sw975N16Aa114ID3TwMtfWS
	u7IWG4H8Zz5oQvfPyto0BS6npQO1iZ6RWtcTI/pN9IWKy/98AmOBPtZZq9pzO2QIx9I1w0zhcoh
	Uj/3JU00zmP1zp6KSb/83tlnKWF33Gqb7Rh2PYmDTrrZCcD5CaYWavE0jDlGs5XeqFMSqG7FNzK
	67zab++j5UwF9NA1HsI5lbyod4+26Amau88WhT+vnFvkIReeLiJi+ehjZuRT9DBZ+69cNy6sKRp
	FgEbiBMoHhBe66GGh5U9ow0yLkkzr3gUwZe7UNKcFuWaVbxaH2Nh7GnEk7uEgfpCPnNH32N75To
	jf2Z+TOJes9ei+03eoqyiMb9qwsMR6ZoQ2vGSjeYYOmiJHStG5CIr3SQOAn9LslDcUdfTFsBPY/
	NsnXzoXpPwGPKOF5Z8KkpRylcPuvWOsncVPU6RqYV6ZGYc3cjLzP5ZhZd4RNjWagQQLJojjEi+1
	Mx7990m58dUfWA=
X-Received: by 2002:a05:600c:310e:b0:480:4b5d:9ec with SMTP id 5b1f17b1804b1-48379bf4709mr263623085e9.33.1771411553205;
        Wed, 18 Feb 2026 02:45:53 -0800 (PST)
Message-ID: <82c65bab-f9a1-497a-a16d-79b29c4d4045@suse.com>
Date: Wed, 18 Feb 2026 11:45:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 6/6] xen/riscv: enable DOMAIN_BUILD_HELPERS
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <6ab04f3584e45795dc82c25f62a6c950913f5c7d.1770821989.git.oleksii.kurochko@gmail.com>
 <aac9b5ac-6660-4ec0-b88e-605903217588@suse.com>
 <b4ac883d-ce90-40b0-93fc-95c925c7ac61@gmail.com>
 <a35d5566-7da1-406d-abf7-13b423d013f8@suse.com>
 <760d7b95-2e76-453c-8d13-ca4432eb22e5@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: <760d7b95-2e76-453c-8d13-ca4432eb22e5@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.02.2026 11:39, Oleksii Kurochko wrote:
> 
> On 2/13/26 2:11 PM, Jan Beulich wrote:
>> On 13.02.2026 13:54, Oleksii Kurochko wrote:
>>> On 2/12/26 5:39 PM, Jan Beulich wrote:
>>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>>> --- a/xen/include/public/arch-riscv.h
>>>>> +++ b/xen/include/public/arch-riscv.h
>>>>> @@ -50,6 +50,14 @@ typedef uint64_t xen_ulong_t;
>>>>>    
>>>>>    #if defined(__XEN__) || defined(__XEN_TOOLS__)
>>>>>    
>>>>> +#define GUEST_RAM_BANKS   1
>>>>> +
>>>>> +#define GUEST_RAM0_BASE   xen_mk_ullong(0x80000000) /* 2GB of low RAM @ 2GB */
>>>>> +#define GUEST_RAM0_SIZE   xen_mk_ullong(0x80000000)
>>>>> +
>>>>> +#define GUEST_RAM_BANK_BASES   { GUEST_RAM0_BASE }
>>>>> +#define GUEST_RAM_BANK_SIZES   { GUEST_RAM0_SIZE }
>>>> Hmm, does RISC-V really want to go with compile-time constants here?
>>> It is needed for allocate_memory() for guest domains, so it is expected
>>> to be compile-time constant with the current code of common dom0less
>>> approach.
>>>
>>> It represents the start of RAM address for DomU and the maximum RAM size
>>> (the actual size will be calculated based on what is mentioned in DomU node
>>> in dts) and then will be used to generate memory node for DomU (GUEST_RAM0_BASE
>>> as RAM start address and min(GUEST_RAM0_SIZE, dts->domU->memory->size) as a
>>> RAM size).
>>>
>>>>    And
>>>> if so, why would guests be limited to just 2 Gb?
>>> It is enough for guest domain I am using in dom0less mode.
>> And what others may want to use RISC-V for once it actually becomes usable
>> isn't relevant? As you start adding things to the public headers, you will
>> need to understand that you can't change easily what once was put there.
>> Everything there is part of the ABI, and the ABI needs to remain stable
>> (within certain limits).
> 
> Considering this ...
> 
>>>> That may more efficiently
>>>> be RV32 guests then, with perhaps just an RV32 hypervisor.
>>> I  didn't get this point. Could you please explain differently what do you
>>> mean?
>> If all you want are 2Gb guests, why would such guests be 64-bit? And with
>> (iirc) RV32 permitting more than 4Gb (via PPN being 22 bits wide), perhaps
>> even a 32-bit hypervisor would suffice?
> 
> ... now I can agree that Xen should permit bigger amount of RAM. At least,
> (2^34-1) should be allowed for RV32 and so for RV64 so it could be used
> like a base for both of them. As RV64 allows (2^56 - 1) it makes sense
> to add another bank to cover range from 2^34 to (2^56 -1) for RV64 (and ifdef
> this second bank for  RV64).
> 
> Would it be better?

Having a 2nd bank right away for RV64 would seem better to me, yes. Whether
that means going all the way up to 2^56 I don't know.

In whether a public header can be changed, it also matters whether these
#define-s actually are meant to be exposed to guests (vs. merely the tool
stack). Longer-term, however, this is going to change (as we intend to move
to a fully stable ABI).

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 11:30:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 11:30:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235460.1538431 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsfku-0003oX-3O; Wed, 18 Feb 2026 11:30:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235460.1538431; Wed, 18 Feb 2026 11:30:08 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsfku-0003oQ-0N; Wed, 18 Feb 2026 11:30:08 +0000
Received: by outflank-mailman (input) for mailman id 1235460;
 Wed, 18 Feb 2026 11:30: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=CABg=AW=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vsfks-0003bf-6F
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 11:30:06 +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 2bc865fe-0cbd-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 12:30:04 +0100 (CET)
Received: by mail-lf1-x131.google.com with SMTP id
 2adb3069b0e04-59e0d5c446cso5622570e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 03:30:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2bc865fe-0cbd-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771414204; cv=none;
        d=google.com; s=arc-20240605;
        b=Pgzf3bFV0w8ytvW4AyvzjdU55/Uno2IE4ZWmT+7yD/WDLfbQgpzz214GvxHdCZnywQ
         2JR02M60eTqe9QJMKeuJAyQJQ+pGWU/QaRng/LMnyEmvOmThs90/MXiZ2HSB/YRKrK+w
         iHx3lHScK4+fAxQ+ee6PgdGtGrzlc2mlW5LmDW2igp+7/rzi+LAb0l3+Eb5MNxH92yJI
         LpMlsPYTTiqSNGIaxq53p1iKYmEDeCN8P0boXvM9xygAHHGhgacTG0aRKizLR5EhgPpq
         Ia7zRnVgjN00+qJjUNvO6Vrn5pOsX6Mr3D7mgDbJE93vlEIbzwULN3og4yNm+UYEZ25h
         6uZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=SM1GDmGSwQ55wea39cT22PRcVz0PHhUgIiluB5jxPKo=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=fGWz384vRwJz3nXu+qBea/ijHlc5jN78yyLgXsl5k/WJMUlvV9lyoH4yeGugYHWCgL
         EnaDDwuuK6qo7yUWOL4kyDgw7X92/MIysxBWlAvl0l9Shxr6adTqjiSgDAxa7OJOgb9h
         m052olkSdhUoNcaX64wLVYzSlWQTk2aMdYyEITXUh8H0g/+nfh8ZnSMlSbQ/WrLjykwz
         +I8Qf8mxTgBW3ZfnJtFS0G2dJsvcbkTDdM3ekF4JOwHOgoBRNhoef7pNvFvn/2QwP+s6
         Z0OGTKFsezyRVyt+VT87GASiSgE4Lvqqfim0sLqXxrPxJHAZ+pv7ImJsRdwd0KUhHn65
         zcww==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771414204; x=1772019004; 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=SM1GDmGSwQ55wea39cT22PRcVz0PHhUgIiluB5jxPKo=;
        b=EnlM+BzDmtZe0VUq1doddqKDeKj2ExNBxGgzB9mn8igx7BlKJpjLeGIgrbnLjxrrP0
         Eb1yBeYsMbpOd+Vs0IKi1tXxbl5W5jCcBVwQJqP3ZlbvgxM9VeFZzhNJkue7CrM0PbTP
         AulKGqtNhvtdS4dsemBE95Q9UX5txmxHIQ7g46JjZnvad94ay1u1GndKjhw8StoCaOgA
         nzLhOSsmarmpPYhaxZUt0DDmnzTSC3nfdHlpOA/elUoj2WDKRytjnBTJeqtDQ6hsLdNx
         0qLYL05gZNsbmcsM7nsS+47DfejfZ3Ccon/+XU9bXfGaB8rLvhRBJPjy/Lj+JfOmG/dA
         bFeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771414204; x=1772019004;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=SM1GDmGSwQ55wea39cT22PRcVz0PHhUgIiluB5jxPKo=;
        b=AGCKfcAU9lqk5nTWweDo2cIltAS+aQN4PQ/cwOVmkJvbYta4BwxQJIstkuaPqH4mDA
         dK9bmxlI9BzJf2IQ9yQrnZ+OMKDfe87MKtvSl/+kI7srEkUlwnQPJK6BT/edX1XOiK/k
         jh8cuRBUl9Fv0t95Fo1eeD95dkwHEN4uaL5t/QZUr32U0KAbdurINbQAFh3xp3Ys4+7u
         drw30PimUhV2nPAwASUHMUPSXiiXTImsJ/GdgPbB+3/4DVAtyXzDRYcWjGsfRVQGrjoC
         qfqgEaPFhvrrR7Rf68+Def0crE9zic9/POoub5pPFnmO2rgfzmHf65ZMkqj9UFIdOxxE
         aPng==
X-Gm-Message-State: AOJu0YyuMlsjFSphqUKR5hpBi3i0mAdAk5piKOyWALoxO4EAbHjP2EmX
	G/fg8e7XBsrTH9967fGnSD8ManuB3EElVN6I4lg0olFrD+azg4hpS51Kp9NU/qNXFD9ZH+FqOY2
	2OvI6b6Zz/khYQ0bc3UQyS/eQkidHNP8=
X-Gm-Gg: AZuq6aIy0mj1VI2f2p7vRpde9dEq6Tb76OPIjcX/4f7YCxIcdp1sunjHj1My/2sQz10
	ivwleZqqWnYem8a3YsXMbTdXxGD3fPQlupOdq5x0iOVQE5D926JbQLOOzO/M3OgEV3iu1DYwt67
	Gjc0Da4GVkSvpaIkt/uhyeJn6/3c7o5KD+8bliK3+cOVdHgjv6HxRxlmoP6u/Z9EcGpFlonqhI9
	NCEibaXCkuAyA3MutcgtzRa4xCAt5DikKpwf5XmXR40RWQp2EugPdXtck3x8QbvfTpXJXS96tjz
	zW0ang==
X-Received: by 2002:a05:6512:3d03:b0:59e:39af:a70c with SMTP id
 2adb3069b0e04-59f83bc21cfmr537720e87.46.1771414203773; Wed, 18 Feb 2026
 03:30:03 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <6eee1cbcbfc221b0a6af00f7ec5ccc52f8bd5b75.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <6eee1cbcbfc221b0a6af00f7ec5ccc52f8bd5b75.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 18 Feb 2026 13:30:00 +0200
X-Gm-Features: AaiRm52xyBeRm91RyPK0I2h_h6RAGSKr83z1z4zK6_QrSWXpdscmc0pKtt9OcXo
Message-ID: <CAGeoDV9Piac4yXQ9NH6simkFeD1867C+_Vq7TkRESgQXZ57YOw@mail.gmail.com>
Subject: Re: [RFC PATCH 13/19] arm/gic: VPE scheduling
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> GICv4 needs to know which VCPU is currently scheduled to be able to
> deliver VLPIs. Implement switching of VPEs on VCPU context switch by
> extending the existing save/restore mechanism used for GICv2 and GICv3.
>
> Scheduling a VPE is done by setting up the VPENDBASER and VPROPBASER
> registers to the appropriate tables for the currently running VCPU. When
> scheduling out, preserve the IDAI and PendingLast bits from VPENDBASER.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v2.c                  |   2 +-
>  xen/arch/arm/gic-v3.c                  |   9 +-
>  xen/arch/arm/gic-v4-its.c              | 138 +++++++++++++++++++++++++
>  xen/arch/arm/gic-vgic.c                |   6 ++
>  xen/arch/arm/include/asm/gic.h         |   2 +-
>  xen/arch/arm/include/asm/gic_v3_defs.h |   6 ++
>  xen/arch/arm/include/asm/gic_v4_its.h  |   9 ++
>  xen/arch/arm/include/asm/vgic.h        |   2 +
>  8 files changed, 170 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index 0cd41eac12..c16fa5d67e 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -181,7 +181,7 @@ static void gicv2_save_state(struct vcpu *v)
>      writel_gich(0, GICH_HCR);
>  }
>
> -static void gicv2_restore_state(const struct vcpu *v)
> +static void gicv2_restore_state(struct vcpu *v)
>  {
>      int i;
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index d4af332b0e..07736179db 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -133,7 +133,7 @@ bool gic_is_gicv4(void)
>  #endif
>
>  /* per-cpu re-distributor base */
> -static DEFINE_PER_CPU(void __iomem*, rbase);
> +DEFINE_PER_CPU(void __iomem*, rbase);
>
>  #define GICD                   (gicv3.map_dbase)
>  #define GICD_RDIST_BASE        (this_cpu(rbase))
> @@ -475,13 +475,15 @@ static void gicv3_save_state(struct vcpu *v)
>       * are now visible to the system register interface
>       */
>      dsb(sy);
> +    if ( gic_is_gicv4() )
> +        vgic_v4_put(v, false);
>      gicv3_save_lrs(v);
>      save_aprn_regs(&v->arch.gic);
>      v->arch.gic.v3.vmcr =3D READ_SYSREG(ICH_VMCR_EL2);
>      v->arch.gic.v3.sre_el1 =3D READ_SYSREG(ICC_SRE_EL1);
>  }
>
> -static void gicv3_restore_state(const struct vcpu *v)
> +static void gicv3_restore_state(struct vcpu *v)
>  {
>      register_t val;
>
> @@ -510,6 +512,9 @@ static void gicv3_restore_state(const struct vcpu *v)
>      restore_aprn_regs(&v->arch.gic);
>      gicv3_restore_lrs(v);
>
> +    if ( gic_is_gicv4() )
> +        vgic_v4_load(v);
> +
>      /*
>       * Make sure all stores are visible the GIC
>       */
> diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
> index fac3b44a94..6a550a65b2 100644
> --- a/xen/arch/arm/gic-v4-its.c
> +++ b/xen/arch/arm/gic-v4-its.c
> @@ -18,6 +18,7 @@
>   * GNU General Public License for more details.
>   */
>
> +#include <xen/delay.h>
>  #include <xen/errno.h>
>  #include <xen/sched.h>
>  #include <xen/spinlock.h>
> @@ -44,6 +45,21 @@ void __init gicv4_its_vpeid_allocator_init(void)
>          panic("Could not allocate VPEID bitmap space\n");
>  }
>
> +static void __iomem *gic_data_rdist_vlpi_base(unsigned int cpu)
> +{
> +    /*
> +     * Each Redistributor defines two 64KB frames in the physical addres=
s map.
> +     * In GICv4, there are two additional 64KB frames.
> +     * The frames for each Redistributor must be contiguous and must be
> +     * ordered as follows:
> +     * 1. RD_base
> +     * 2. SGI_base
> +     * 3. VLPI_base
> +     * 4. Reserved
> +     */
> +    return GICD_RDIST_BASE_CPU(cpu) + SZ_128K;
> +}
> +
>  static int __init its_alloc_vpeid(struct its_vpe *vpe)
>  {
>      int id;
> @@ -571,3 +587,125 @@ int its_send_cmd_vinv(struct host_its *its, struct =
its_device *dev,
>
>      return gicv3_its_wait_commands(its);
>  }
> +
> +static uint64_t read_vpend_dirty_clean(void __iomem *vlpi_base,
> +                                       unsigned int count)
> +{
> +    uint64_t val;
> +    bool clean;
> +
> +    do {
> +        val =3D gits_read_vpendbaser(vlpi_base + GICR_VPENDBASER);
> +        /* Poll GICR_VPENDBASER.Dirty until it reads 0. */
> +        clean =3D !(val & GICR_VPENDBASER_Dirty);
> +        if ( !clean )
> +        {
> +            count--;
> +            cpu_relax();
> +            udelay(1);
> +        }
> +    } while ( !clean && count );
> +
> +    if ( !clean )
> +    {
> +        printk(XENLOG_WARNING "ITS virtual pending table not totally par=
sed\n");
> +        val |=3D GICR_VPENDBASER_PendingLast;
> +    }
> +
> +    return val;
> +}
> +
> +/*
> + * When a vPE is made resident, the GIC starts parsing the virtual pendi=
ng
> + * table to deliver pending interrupts. This takes place asynchronously,
> + * and can at times take a long while.
> + */
> +static void its_wait_vpt_parse_complete(void __iomem *vlpi_base)
> +{
> +    if ( !gic_support_vptValidDirty() )
> +        return;
> +
> +    read_vpend_dirty_clean(vlpi_base, 500);
> +}
> +
> +static uint64_t its_clear_vpend_valid(void __iomem *vlpi_base, uint64_t =
clr,
> +                                      uint64_t set)
> +{
> +    unsigned int count =3D 1000000;    /* 1s! */

The 1s timeout looks too large for a context=E2=80=91switch path.
Consider a much smaller bound (or async handling) and warn on
timeout, rather than potentially stalling the scheduler.

> +    uint64_t val;
> +
> +    /*
> +     * Clearing the Valid bit informs the Redistributor that a context
> +     * switch is taking place.
> +     */
> +    val =3D gits_read_vpendbaser(vlpi_base + GICR_VPENDBASER);
> +    val &=3D ~GICR_VPENDBASER_Valid;
> +    val &=3D ~clr;
> +    val |=3D set;
> +    gits_write_vpendbaser(val, vlpi_base + GICR_VPENDBASER);
> +
> +    return read_vpend_dirty_clean(vlpi_base, count);
> +}
> +
> +static void its_make_vpe_resident(struct its_vpe *vpe, unsigned int cpu)
> +{
> +    void __iomem *vlpi_base =3D gic_data_rdist_vlpi_base(cpu);
> +    uint64_t val;
> +
> +    /* Switch in this VM's virtual property table. */
> +    val  =3D virt_to_maddr(vpe->its_vm->vproptable) & GENMASK(51, 12);
> +    val |=3D gicv3_its_get_cacheability() << GICR_VPROPBASER_INNER_CACHE=
ABILITY_SHIFT;
> +    val |=3D gicv3_its_get_shareability() << GICR_VPROPBASER_SHAREABILIT=
Y_SHIFT;
> +    val |=3D GIC_BASER_CACHE_SameAsInner << GICR_VPROPBASER_OUTER_CACHEA=
BILITY_SHIFT;

Nit: cacheability/shareability are taken from a global ITS quirk.
If different ITSes can report different attributes, we would need
per=E2=80=91ITS values here. Otherwise, a short note that Xen assumes
homogeneous ITS attributes would help.

> +    val |=3D (HOST_LPIS_NRBITS - 1) & GICR_VPROPBASER_IDBITS_MASK;
> +    gits_write_vpropbaser(val, vlpi_base + GICR_VPROPBASER);

The VPROPBASER value is constant per VM. We could precompute
and store it in struct its_vm at init, then just write the
cached value here instead of recomputing each time.

> +
> +    /* Switch in this VCPU's VPT. */
> +    val  =3D virt_to_maddr(vpe->vpendtable) & GENMASK(51, 16);
> +    val |=3D gicv3_its_get_cacheability() << GICR_VPENDBASER_INNER_CACHE=
ABILITY_SHIFT;
> +    val |=3D gicv3_its_get_shareability() << GICR_VPENDBASER_SHAREABILIT=
Y_SHIFT;
> +    val |=3D GIC_BASER_CACHE_SameAsInner << GICR_VPENDBASER_OUTER_CACHEA=
BILITY_SHIFT;
> +    /*
> +     * When the GICR_VPENDBASER.Valid bit is written from 0 to 1,
> +     * this bit is RES1.
> +     */
> +    val |=3D GICR_VPENDBASER_PendingLast;
> +    val |=3D vpe->idai ? GICR_VPENDBASER_IDAI : 0;
> +    val |=3D GICR_VPENDBASER_Valid;
> +    gits_write_vpendbaser(val, vlpi_base + GICR_VPENDBASER);
> +
> +    its_wait_vpt_parse_complete(vlpi_base);
> +}
> +
> +static void its_make_vpe_non_resident(struct its_vpe *vpe, unsigned int =
cpu)
> +{
> +    void __iomem *vlpi_base =3D gic_data_rdist_vlpi_base(cpu);
> +    uint64_t val;
> +
> +    val =3D its_clear_vpend_valid(vlpi_base, 0, 0);
> +    vpe->idai =3D val & GICR_VPENDBASER_IDAI;
> +    vpe->pending_last =3D val & GICR_VPENDBASER_PendingLast;
> +}
> +
> +void vgic_v4_load(struct vcpu *vcpu)
> +{
> +    struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
> +
> +
> +    if ( vpe->resident )

gicv3_restore_state() call vgic_v4_load when
gic_is_gicv4() is true, even if its_vpe is NULL.

The same story about vgic_v4_put.

> +        return;
> +
> +    its_make_vpe_resident(vpe, vcpu->processor);
> +    vpe->resident =3D true;
> +}
> +
> +void vgic_v4_put(struct vcpu *vcpu, bool need_db)

nit: unused need_db

> +{
> +    struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
> +
> +    if ( !vpe->resident )
> +        return;
> +
> +    its_make_vpe_non_resident(vpe, vcpu->processor);
> +    vpe->resident =3D false;
> +}
> diff --git a/xen/arch/arm/gic-vgic.c b/xen/arch/arm/gic-vgic.c
> index ea48c5375a..44db142dbd 100644
> --- a/xen/arch/arm/gic-vgic.c
> +++ b/xen/arch/arm/gic-vgic.c
> @@ -377,6 +377,12 @@ int vgic_vcpu_pending_irq(struct vcpu *v)
>          }
>      }
>
> +#ifdef CONFIG_GICV4
> +    if ( gic_is_gicv4() )
> +        if ( v->arch.vgic.its_vpe->pending_last )

Should we check its_vpe too?

> +            rc =3D 1;
> +#endif
> +
>  out:
>      spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
>      return rc;
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gi=
c.h
> index afb1cc3751..04a20bdca5 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -362,7 +362,7 @@ struct gic_hw_operations {
>      /* Save GIC registers */
>      void (*save_state)(struct vcpu *v);
>      /* Restore GIC registers */
> -    void (*restore_state)(const struct vcpu *v);
> +    void (*restore_state)(struct vcpu *v);
>      /* Dump GIC LR register information */
>      void (*dump_state)(const struct vcpu *v);
>
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/includ=
e/asm/gic_v3_defs.h
> index 3a7d18ef59..0db75309cf 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -257,6 +257,12 @@ struct rdist_region {
>      bool single_rdist;
>  };
>
> +/* per-cpu re-distributor base */
> +DECLARE_PER_CPU(void __iomem*, rbase);
> +
> +#define GICD_RDIST_BASE             (this_cpu(rbase))

looks like possible macro redefinition, see gic-v3.c

Best regards,
Mykola


> +#define GICD_RDIST_BASE_CPU(cpu)    (per_cpu(rbase, cpu))
> +
>  #endif /* __ASM_ARM_GIC_V3_DEFS_H__ */
>
>  /*
> diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include=
/asm/gic_v4_its.h
> index ba81b25bde..37b6b92f0c 100644
> --- a/xen/arch/arm/include/asm/gic_v4_its.h
> +++ b/xen/arch/arm/include/asm/gic_v4_its.h
> @@ -56,6 +56,15 @@ void gicv4_its_vpeid_allocator_init(void);
>  #define GICR_VPROPBASER                              0x0070
>  #define GICR_VPENDBASER                              0x0078
>
> +#define GICR_VPROPBASER_OUTER_CACHEABILITY_SHIFT         56
> +#define GICR_VPROPBASER_SHAREABILITY_SHIFT               10
> +#define GICR_VPROPBASER_SHAREABILITY_MASK                \
> +        (3UL << GICR_VPROPBASER_SHAREABILITY_SHIFT)
> +#define GICR_VPROPBASER_INNER_CACHEABILITY_SHIFT          7
> +#define GICR_VPROPBASER_INNER_CACHEABILITY_MASK           \
> +        (7UL << GICR_VPROPBASER_INNER_CACHEABILITY_SHIFT)
> +#define GICR_VPROPBASER_IDBITS_MASK                    0x1f
> +
>  #define GICR_VPENDBASER_Dirty                   (1UL << 60)
>  #define GICR_VPENDBASER_PendingLast             (1UL << 61)
>  #define GICR_VPENDBASER_IDAI                    (1UL << 62)
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 580310fec4..9ef667decb 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -417,6 +417,8 @@ bool gic_is_gicv4(void);
>  int vgic_v4_its_vm_init(struct domain *d);
>  void vgic_v4_free_its_vm(struct domain *d);
>  int vgic_v4_its_vpe_init(struct vcpu *vcpu);
> +void vgic_v4_load(struct vcpu *vcpu);
> +void vgic_v4_put(struct vcpu *vcpu, bool need_db);
>  #endif /* !CONFIG_NEW_VGIC */
>
>  /*** Common VGIC functions used by Xen arch code ****/
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 11:31:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 11:31:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235469.1538440 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsflo-0004KF-Gg; Wed, 18 Feb 2026 11:31:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235469.1538440; Wed, 18 Feb 2026 11:31:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsflo-0004K8-DI; Wed, 18 Feb 2026 11:31:04 +0000
Received: by outflank-mailman (input) for mailman id 1235469;
 Wed, 18 Feb 2026 11:31: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=po7z=AW=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vsfln-0003bf-5d
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 11:31:03 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4d84b78b-0cbd-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 12:31:02 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by DS0PR03MB8296.namprd03.prod.outlook.com (2603:10b6:8:292::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Wed, 18 Feb
 2026 11:30:59 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Wed, 18 Feb 2026
 11:30: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: 4d84b78b-0cbd-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=PiGNmNjvQ4fZYPGITcJ5DvITN7tte0u5H1gZWGuNKh5xSLFv38K4tF7Yuy12Lb6eoSMYP+McDmFMdUe79ptG/JAj9Ta76BeySfNYtjYeIm1z5s/DMi7by/VUa8lVZW9hP9Zr3yKKeCY/xqMCTRC5kk+etmw5isRsVLucU2bxBzYWWl0bUKljd+9A2rnlzcPL8hFqGkfMJNcxmjiXHwzfCziNlP3veFum14fm0nE6rOmVPCjlfhZ8BQc/dCPc2pkzolW1/WFeehY3f3/IBOsa3pUPUwdiPpoDDmJn3VzYkesMHBkmclhYHX0Bl4Jd3MzbZw5WCiGVaA7itENJ+0F8xw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=3pSP71I02lZ3dBJ2hweIUNxrlqQCPeubufzb4yO1LvA=;
 b=MEmRisKUywZOV5+3Rr/lzhZ0geUvZ54TG2NkpqWeDMO59/4j6IHPlx/u3yWgQNZ8EhMyo51OvoLnRiF3WGMJVGgkhoSlKRdGxEzserm9vYjzvTjJZ5k0o3GoCvnxkKMtOp8AJbykD+ggOOMkwOuqJaF80TKy8W8xeJm4Lw8NdgcbNDb2RryWhIYMtzK93CuRJ3C3UQVyNp048NDOBZlOvYQ9w0PyzdmY+nDHT6/qZ9M6SXzsZhGlfO4sfcVFzff4t+i/KDkpxylNiNUqmkZiTpOXxcdFFP4ilwGCQdk0wtrTwvP45Jy9dxifP47QJPO70HjQSsMfVy6NpFR/sI9OFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=3pSP71I02lZ3dBJ2hweIUNxrlqQCPeubufzb4yO1LvA=;
 b=H/83DNa8Ms+Cpab929brw9A13I1i0YKlycUUaA11vwn36xKtkFEGdjFeczHisKF398WIuFZCpLO/7p46HcXcrc1cO0Kdq9IPMEyjzUK+0RrT/DF5FANa3bKjmHamoSNLW3iii9dB5pNBOnjB65Jsy0hbuKNGI9rrKp2mbJLD38A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <60a1bc11-f9a6-48c3-b7d8-d007799fbe91@citrix.com>
Date: Wed, 18 Feb 2026 11:30:56 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/shadow: don't use #if in macro invocations
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LNXP123CA0012.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:d2::24) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|DS0PR03MB8296:EE_
X-MS-Office365-Filtering-Correlation-Id: e93e1358-c032-45b7-fc44-08de6ee1307c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SUE3b2ZUN0kwNEF3Sm1CUmNJYUlnZVh0SDlLS25EOXJsdHQ1RXEyWm1zZW5r?=
 =?utf-8?B?UjNuYjNPUVh6eDFLK0M0cWxIZlJWK3ZBYXFvd1lQQXhraE93K1o0WjZxakpY?=
 =?utf-8?B?bi9ieE1HVzhYaGhneWZYbmNQejR3alpDVDljNjBKbVJXNzl2U2p5SnFLK3Fk?=
 =?utf-8?B?Mkl6ejBoUU4zaUp5b2htaCs4TWRjNG1lZCthSEpreDZOMU9NelpvVWJWUFRY?=
 =?utf-8?B?NVBvVWhYdEFQei9YcW9DaXVtRzdwWCtsaHFQOXh5U0UrNlpGeURneVBxNnRq?=
 =?utf-8?B?WmZuMUY5c2FvSTNxYXR2eDVLT1hWUGQ5Qld1enVmVjd3Tng4K2J5bzFrK0Vi?=
 =?utf-8?B?dWVJVVh2OXdUcFFQVzN4aFhuRGZsWlp6KzJlTkZsUk5QWU9Fdm5JUDEwc2VW?=
 =?utf-8?B?dklGRVc4aFVhUDU5U1lQTkE1R2ZZUXJUdzRZN3NzTkYwK29lMDlyNElWM3hX?=
 =?utf-8?B?S3A0V3htbVY2RWlYclRPemFXVTVNN2dZcTEya1dhdi9DdGd0YWRTbjNoanZC?=
 =?utf-8?B?NUY3TWhRR3FrQ1FIeGs4MVpjMXlZWFpZZGk2SDlQanNaU0JMRmVXK3Y0VXpI?=
 =?utf-8?B?NnNIT2VQVW1aWWdyNFRmSlUxM3ZLSFFldzdFeVF4RHZ1azlVSnNIT3pyZXV2?=
 =?utf-8?B?cXJEUjFNaGZia0Q0cDNlbGlRQ3o4RXZpVCtMbnlOYTYvQUNaUVB0MTNTMmVB?=
 =?utf-8?B?WGhGeUtuREtlQTZFbnRvUFk0RjltRUxleFJFeXVpNmI4cTBRMVlZN0Yvbm9N?=
 =?utf-8?B?VmR2aHdaNlhrS0laMFowdWxVUld3QmM2YmU1VUtaSHpSbVI3R2ZIdnQ0ckJG?=
 =?utf-8?B?QXpmRDhWd1IxMzhhamZ2WHI5V2NDM1doUTJPTitWQ0tQWGw2Q0ZHemJUclkw?=
 =?utf-8?B?MkpmaEduR2F1cmZseXdyeGVFRndjamlaam5LWG9JYWYrZERDd3NtQmJjb2pD?=
 =?utf-8?B?WEI0MTR5Wi9JSGJRKzc0Z29QVEFBMjl5cUl0ellkaXZzblZsQWZ1cWwyRmMv?=
 =?utf-8?B?aTFLMGMwaGZaR1ZrMVZCTDJCVGJqT0hXZi9iUHN0VUEzdTVBZTBXZ05LK0xF?=
 =?utf-8?B?Ykcxc1paV29oazdueElnaUdmU3JWS3hEeEVWQzVwSkV3OW9tdm9xMWZEWGRE?=
 =?utf-8?B?S1FPVDNlc210RHBQWWlOS29vZ3QreUJxYVEzN2h1NW9KU0lEVzhVclFsR3FV?=
 =?utf-8?B?MGR5ZmFZK0dvYWtJQUl1ZU5IT0UyUVBXVWZ0WWswTXdXRXJsM1YrTDJWOTBN?=
 =?utf-8?B?QW1DSXJPcGY5RzVkanRxVXlhNXg4aFpCNEk2S0FGajJvR210aVRDaTd6K2xy?=
 =?utf-8?B?R3FQY2RJRGZ2N3ZiaFR5SWt3OTRTSjM5UEhBWTNwZmZaODBRNVBRM3I0LzRH?=
 =?utf-8?B?aDQyL2c4STRnVEhQYUdMdDlwVzUzZFVweUVCL3NwcG93NmpRYVNUQzB3cm91?=
 =?utf-8?B?ZGROVVhDRVhKelMrNEVHdEl6SngzMTJPM0RIZ0NobEZsdVpqcUpWajJzNWJr?=
 =?utf-8?B?L0FCOW1DNDZuejNmVTBlTzdPZDBrdWttM1BXc0NDbTZtSVRIT1N2SzFsMHRI?=
 =?utf-8?B?ZnpaMHJOTWJWcXVJd2toa04zM1lHZFdMRHZsWjRLYnVsY2hzOGg0UTdvemN6?=
 =?utf-8?B?ekJteGdBK1IraXJzdFJkZVVQR3BLN0FWM0lUdWJyTUR3ZkhLU2RNb2YycTZ6?=
 =?utf-8?B?YmRTeVREZ3lSZlVWZ0dsSWFtOXUvbGdnSkJibDFPQnRCejN1aFhnZnlRdlMw?=
 =?utf-8?B?MGFBcFF5blYzKzdMS0tRWXlheStvOU5yNnk2QnV6WmgxenppM1NNL0tvaTZn?=
 =?utf-8?B?VHBFS1hUL1ZWZHBzWnA1WmhwcVdwTWVyYXltOTFqbGZBNkQ3Z2M1SFoxTUkw?=
 =?utf-8?B?dWNsVDZZdkhvVmt3dWhlakZKRDl4dmpXK25WelBYMVRRV2xGV2tETDlCM2VK?=
 =?utf-8?B?aS9ZSUFWTU82S2x6VUhqVUVycnNGTncxYTVyeVNvaWdUbFl3QVNldG5nY1E2?=
 =?utf-8?B?ZHpteDJtV0o5UzdRN0ZzQmUwN1lwTSt4MDh6aUZVMjg0V1ErUFNnMy9yblVW?=
 =?utf-8?B?R2xIeEdtdFJOWlVrRHRGei9PRmFsOURWWkFuQkdlT3IwYzJNWU9UTUNjVi9n?=
 =?utf-8?Q?r3gs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TjY5Z3k0NVFBQ3V3Z01Jellzd09ENmRoSEJtNTFHci9KcnpoMmpYVi9xc256?=
 =?utf-8?B?emo0K0tiVnhoRkQxSVh5Q1VuRTV6WE45dVRFaUxKd1YvWndXRktmMHoxUnZj?=
 =?utf-8?B?eDB4dkRldjZEVzhzTlBhYjNsVE9mU0Ric0dTOEgva2tva0dmeG9wbDhJaDZp?=
 =?utf-8?B?djNDVERTT2V6U3RHWE5ORG5ZNjd4S0JGcWVwS0k3ZUxteHhmTlpaaDNEL01C?=
 =?utf-8?B?bGdPQVZldTlqUnNoZG1QUXhvUXpxWGpiQW9iWGhoMDYxTUlVdEpJZEVTb0sv?=
 =?utf-8?B?aDZ1N3FrcmdaNGgwa282YUwxY1lraGJNMExzODJhZmwreXVVdUdaVmZ0YXRk?=
 =?utf-8?B?eE5sNllaaHQvMUc3U0JaaUVnWTZrNXlqTVF3S05IUmYvMjFDZnp5QXBBTG5x?=
 =?utf-8?B?YUdtTFdhdzhxUkphSWRWVXFYek03Q2J5OWNKak5PTFBpVERsV01aNHZMUjVq?=
 =?utf-8?B?bVAwYnhVNms0ZHJmdStCZDhWeVJLTS9CTEhxL3BGdG1NWUZSM251U05tTDF4?=
 =?utf-8?B?RjdxU0xPVDhDbnVUSDFEOW9FNTJUeTR5aTJlR2VLZ21nUzhGR3d5TFYwUERY?=
 =?utf-8?B?MUhiWHI0eTRlM2FGSnlHZFIvb1JVQ3A1NmJpME9COVdSMXpvZUJGdlhtNUow?=
 =?utf-8?B?Nlg4WnlpQzU2d3N0Mmc2djhhZzVwMnpLTXg0RzNWeHdodFVhYXQycEI4Rkwy?=
 =?utf-8?B?RkVsYkxXaUlHa0FOeUpWZzFTNExDZ05qYzQ2dHhJNWhSYWJIYjFHWE1SWjc3?=
 =?utf-8?B?U2NHZFRGNi90a08rVEtNZldPMTVIQmVONmZPZlJ6Tk4zNlJ0SXo2SGxEa1F0?=
 =?utf-8?B?VlVGVHloWUVOb2JPa0oyT2NSbmRuT29UMStlSVplcy91a0Y0R0Q4dFhPNEkv?=
 =?utf-8?B?OXVCVGp0TWFvOTJGajgyL1BxLzc0c2p1VEdldlhoRjJ2L0t5V2RpRk5aVHFr?=
 =?utf-8?B?dDZ2TnhudDR2cHpEWHlEQStacndvMm15MGFzSTdCM3VQbUlrTmRoc3BxdXN4?=
 =?utf-8?B?QjVncncrc2grbUlOZGtmamE0ekFaVHluSkdWZXdiZUNhM2U5aGJSRFZ0dUZ2?=
 =?utf-8?B?OWNqVk5SZGFaaE40QXI5T2RVSUhjaVBDRjdNV2RNVXBNSzhjZUw1T1JyWnJE?=
 =?utf-8?B?NzJmaU41VUtueFNZVDhVL3FqYlZCYTNwZlZWSHdMNGh5TlpBWGdjSUJadWtK?=
 =?utf-8?B?UmEwemFhQWN1YlFxak9sMUkzNGt4Q05ZdzF2ZjVWVm5wYXZ3THhYMjk0cmc1?=
 =?utf-8?B?eTg3dU9jSkRiS0hzcXJ6WDUzMUozSDgwajMzNTNhU0s0OFF2UUdTU1hITDlT?=
 =?utf-8?B?TDRsKzVTRFVGU20zL2dITEg0VmlIU1pNZjBNNUI1U2JPcHVpVlJEbjc3Zllt?=
 =?utf-8?B?M0RzZlE5Nzl6MkZZSW9SemEwWHNxMGoydWFwUFFoOXppQVlDbmRHMUxVVndC?=
 =?utf-8?B?Y1dPelZFbmVQM0k3NCt0ZXJLY2lkUVFKQndPejZldmxRU1Rtb0pBd1lyQkk0?=
 =?utf-8?B?YjZrbUZGMHJvdlgxVWdlYnVHTWdlRjhEZ0ZiODBlNXpBWnF2NmlJNXNrSzU3?=
 =?utf-8?B?bjBWUnBLYmY0cDdTUm04bE82S09VTVVEbzZpR1Vwb3RFOFN4WkFHR3VTNHpn?=
 =?utf-8?B?bmY2aXVlU1BjaE1FWnlFdVFKcDlneGxPZHNqZ25NNVRHUXprRE1zUnpBazZC?=
 =?utf-8?B?RTBPOTNNa0R2Y0l0TUkxa1VIZTBhTDRrTXR2SUVPaE9IeldTUDBaN3Z3THJy?=
 =?utf-8?B?TGErbG9zeXQzcHkzTlhwMnhLN3dydjY3aEZNZmJNWXNybWxFeTBBRlpCRzhH?=
 =?utf-8?B?djlmNlJZWlFPbzVIb1paOVZLMDlKRDQwazFxMjUxZ1pFUkJCNitHRVZoTW1r?=
 =?utf-8?B?QkZOR0gxT2s5TG05ZVlOWkNiTkoyQlMzYU1EcG03anl4am5JYU95QkhCeDRS?=
 =?utf-8?B?T2NiUHA3eVRXZHVXUjh3cFVFQTVLT2pGS3RDWk5ScStTb05BQ0NsWmpjMDR5?=
 =?utf-8?B?QUw5cDF3MXhIbXRpazZLamtTak5uOHVnK1dqV2N4WExEK1BPcHI3bWRaRVZZ?=
 =?utf-8?B?NFVxSlhsSzRUcEcwcmg0empqckdZeDdVV2lHcmZMVk5qTXptK3JIUTU4clEw?=
 =?utf-8?B?ZWtDRDdOdnVCUi9WWUp4UFVFOTRreWxKNVMwZFB0bnN0dUhqS0M5YTk5MkI1?=
 =?utf-8?B?MWQ3emdFQS8vUjduR0VIOGpOSXZ4UVFROXRQWDRSNnd2eTFqbWFoeUlPSVha?=
 =?utf-8?B?NVhxdDlnOXRQQTg3MEtTM1hGZDR2aElHV0NtZzV5OWFMT0RBME5zQjdhZHVR?=
 =?utf-8?B?WEtuMytDbE9OcjJNOHNVaEFnZlZSNlFGbXY1YkNuN2FDVENyZUNldz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e93e1358-c032-45b7-fc44-08de6ee1307c
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 11:30:59.4065
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QK27b38ZC7dMXmAvntycbt1bXkL99ig5Bfxsq0l8K8zCoBxrnXSzW5K8Fs7ofqv/0Qo1AFqlILdnQTRfFUT65YZYBxma4QFIRrqc1S4vit4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR03MB8296

On 18/02/2026 9:03 am, Jan Beulich wrote:
> As per the standard this is UB, i.e. we're building on a defacto extension
> in the compilers we use.

Is it a real extension, or just something that happens to work?

>  Misra C:2012 rule 20.6 disallows this altogether,
> though. Use helper always-inline functions instead.
>
> In sh_audit_l1_table(), along with reducing the scope of "gfn", which now
> isn't used anymore by the if() side of the conditional, also reduce the
> scope of two other adjacent variables.
>
> For audit_magic() note that both which parameters are needed and what
> their types are is attributed to AUDIT_FAIL() accessing variables which
> aren't passed as arguments to it.

This is grammatically awkward.  IMO it would be clearer to say "For
audit_magic() note that there are more parameters than might seem
necessary, caused by the expectations of AUDIT_FAIL()." 

>
> No functional change intended. Of course codegen does change with this,
> first and foremost in register allocation.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Definitely a more surgical fix than my approach.

I was attempting to turn FOREACH_*() into real for() loops behind the
scenes, so we don't have the {code} as a parameter, and get real break's
rather than magic behaviour with the _done variable.  The problem is
that ever helper is different, and there's rather more hidden under the
covers than appear at first glance.

I'd still like to make this approach work in due course, for the ease of
following the logic if nothing else, but its hard enough to not be a
couple of hours work, and not high enough on my priority list right now.

> ---
> Leaving even the fetching of current to the helper in
> sh_rm_write_access_from_l1() looks tidier to me overall, albeit this means
> the fetch will now occur once per present L1E.

This will not make a dent in the performance of the shadow code.

> Converting the #if to if() and #ifdef to if(IS_ENABLED()) wouldn't work
> here, as identifiers are used which aren't available when the respective
> conditions are false.

Personally, I'd have put this in the main commit message, because it's
the justification for why out-of-line static inline's need to be used.

>
> Note that I tested this only on top of
> https://lists.xen.org/archives/html/xen-devel/2023-05/msg01140.html, but I
> have no reason to assume that there is a problematic interaction. Of
> course it would be really nice if the rest of that series finally could go
> in.
>
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -395,7 +395,7 @@ static inline mfn_t cf_check sh_next_pag
>      shadow_set_l2e(d, sl2e, new_sl2e, sl2mfn, SH_type_fl1_shadow, sh_next_page)
>  
>  static inline u32
> -guest_index(void *ptr)
> +guest_index(const void *ptr)
>  {
>      return (u32)((unsigned long)ptr & ~PAGE_MASK) / sizeof(guest_l1e_t);
>  }

While fine per say, this doesn't appear to be related to the patch?

Everything else looks fine.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 11:31:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 11:31:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235474.1538451 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsfmA-0004lF-NR; Wed, 18 Feb 2026 11:31:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235474.1538451; Wed, 18 Feb 2026 11: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 1vsfmA-0004l8-Ki; Wed, 18 Feb 2026 11:31:26 +0000
Received: by outflank-mailman (input) for mailman id 1235474;
 Wed, 18 Feb 2026 11: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=CABg=AW=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vsfm9-00046b-9i
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 11:31:25 +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 5ab3731a-0cbd-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 12:31:23 +0100 (CET)
Received: by mail-lj1-x232.google.com with SMTP id
 38308e7fff4ca-388126f79bcso37393361fa.0
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 03:31:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5ab3731a-0cbd-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771414283; cv=none;
        d=google.com; s=arc-20240605;
        b=A65kJh32mXSBGmgaxA8thhfjaStrut5+hJ46vvgP4LgDgsKSojGskvwq9cTRdmc8Ti
         b6a2FsCpI5dUAt3ppuacFJd1enafxfLnefGPkj9t/skju8wqV7K9kcevItL193cZn2NQ
         5RDrFF5DfvCXPHnMcaDSTaHy+DdUy7T2GNI48/wtH/zsiVsnahxKiIZQOI3GhOYkAhfd
         zspQqwRbcIxNvVlle03Ud/ZZL+D7NIIWlhwfNEZbFqBNl9Ff7KJLObcxncVkSK31AWAh
         LNIHMzYawn8BZ/PfP442VEFN2S71J7sV+Y09XyTfb3KElF0cVP4dPtJjtpb6p92+eK5L
         fJ/A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Cs08etBiNYUYlD0ODZUoYef1Y/MZqFHenbZZSUV9sQI=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=QK9HiIPi22OCkMT3fjV/N+07+dfmbx5V45FnhZJK9zyCcGlYinxPwoiXm5ge8sMENb
         lQQBljo6twYG39/faNlsluUU4I20RMCIfO5bPOso9LiVKXSG6wzzBzXliXjlUksvuAcY
         gs4b0jkGl5MxLI6B+/FNeZJqa71dDS48NLVeqf9lXhPTK+mjY4A1/hkCuHiJNXXwROYW
         Tk8gMVfESZ5fBSiSlh0A1HWX3DZ84+O2oVPuufSsQlggN5xiibIjVlFI4D8mBBKFrS/Q
         JkCsDOER/QjHkzVjCdxL76QsaF+lzO8zOriwHniRD4gT0I/IRokqrDzJN1ssHR0ffDQw
         TZag==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771414283; x=1772019083; 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=Cs08etBiNYUYlD0ODZUoYef1Y/MZqFHenbZZSUV9sQI=;
        b=JUbIMC+2EP3vr4RA+yfqRo9Btqmxy2mw1awA6MAyBJaDAzNpULh8QzCbgMhcEYvlZv
         MHf9fF24FgulZ3qm+uSNrn9fwxV4TkvaiU+ZLkUlC8fBT8STaHbaILDYiNx3xWgkm9Nn
         tY5DvPgK2qyMV8tNrZF77tLdhp6gWeWa7mXCHAan2Xcqg4HNPP9m3+CObkU2VTHDvzri
         xUWskdKFFH8Z/bBDEGbgXZn6iFRnJcDtz59Pwh92/UM7P4VOSxTSMPgIwtYM0UiTrGj5
         YsBAJn/lUuupN5xJfSk5fb/khyDaTwScj3atWzzEfofu3tDSRbh2wgKo+SJK5gWZnhhH
         iMog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771414283; x=1772019083;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Cs08etBiNYUYlD0ODZUoYef1Y/MZqFHenbZZSUV9sQI=;
        b=iaciHwbkFW1wAE39CxZTOMmsMfce7cqPye3yB7y3CAKhluFh0UJTA0/LQofl05gPam
         IlRZa6RqHARq9R1IqtY25UZq46MFk+q/yFNPfilv4FX6cRQNQlAAH5C6RE4QTFmPvyus
         9+TLOAOVvOm/Kg4cOVP1YH8jO2d+h2IL2OXu4g4WRmJu5IvfyiFgUx7AWa7YZPPlF+kV
         HFHUlKILvh2+zbS4/E0i52NPJFs6vs7SOMcUwsaPZA4pZi6ybMDfIxpkbohVMDJu+Oya
         3Es4VwvIKNGlTphZBi+Y0zD7/+srXp5ySf50MtemaaPpd1/bneC1PMZ0pLYcywQ0vwDX
         Oqtw==
X-Gm-Message-State: AOJu0YzIdOO8U6V0FfojSysrVVmP10foijyzMbiXPZOUMLEl1u6SpZ91
	6yQ5ZS/bUNFkYmEbVmLAVKIoNfbdoMRmL/od+5Edafp/kE3rUXWPtF4cldTa03t1XRv80L5/mt3
	6lNDAkUQWIepzHK6z20cx4g4hrZ5OPPE=
X-Gm-Gg: AZuq6aJTAHBfpeISCadUkoJtpSvbIhOjYrIba9XfUzP0/L3gBq9OyeriVDdN1n0DtrY
	7Kzvr36Hkxm9Ag1bbdddrE88jwYLzS27VcnstseEEH8mt6mReERyzqyyMqnn5jPHmYuzQg1qO+d
	QUIicSCcXuxEgNHPajEYBr0uTMEZ/E2DPHQXOxK2rQgZmcoPDvLNKCQJ3UjxhzO/xYkTtD2wtSd
	JIofzqT3CGo5+WQNpTljKE/J2bDCbE0KSUAZQI5WAwoiTUMtOyMYxXhnaig10uGpM/rVysTKfbs
	AC3xvA==
X-Received: by 2002:a2e:be83:0:b0:386:9653:5d6e with SMTP id
 38308e7fff4ca-38846e1c90dmr5404031fa.34.1771414282745; Wed, 18 Feb 2026
 03:31:22 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <b15ec6f42418d7c0669d551e42be1d1b75839df8.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <b15ec6f42418d7c0669d551e42be1d1b75839df8.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 18 Feb 2026 13:30:00 +0200
X-Gm-Features: AaiRm51Fr3YTyjMCneA3a-mdmhwduL52fJf_BXgXYD2zkSB0SaQyfD3EZGcDbsE
Message-ID: <CAGeoDV_=tpv09wibQcrazt1XvQY=adLDXB7Z+duuN1p5gwrJrw@mail.gmail.com>
Subject: Re: [RFC PATCH 12/19] arm/gic: Add VPENDBASER/VPROPBASER accessors
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,

Thank you for the patch!

On Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Implement accessors for GICv4 registers VPENDBASER and VPROPBASER.
> VPENDBASER access needs special handling to clear the Valid bit before
> writing a new value.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/include/asm/gic_v4_its.h | 38 +++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>
> diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include=
/asm/gic_v4_its.h
> index fb0ef37bbe..ba81b25bde 100644
> --- a/xen/arch/arm/include/asm/gic_v4_its.h
> +++ b/xen/arch/arm/include/asm/gic_v4_its.h
> @@ -17,6 +17,8 @@
>   * along with this program; If not, see <http://www.gnu.org/licenses/>.
>   */
>
> +#include <asm/arm64/io.h>
> +
>  #ifndef __ASM_ARM_GICV4_ITS_H__
>  #define __ASM_ARM_GICV4_ITS_H__
>
> @@ -50,6 +52,42 @@ struct event_vlpi_map {
>  };
>
>  void gicv4_its_vpeid_allocator_init(void);
> +
> +#define GICR_VPROPBASER                              0x0070
> +#define GICR_VPENDBASER                              0x0078
> +
> +#define GICR_VPENDBASER_Dirty                   (1UL << 60)
> +#define GICR_VPENDBASER_PendingLast             (1UL << 61)
> +#define GICR_VPENDBASER_IDAI                    (1UL << 62)
> +#define GICR_VPENDBASER_Valid                   (1UL << 63)
> +
> +#define GICR_VPENDBASER_OUTER_CACHEABILITY_SHIFT         56
> +#define GICR_VPENDBASER_SHAREABILITY_SHIFT               10
> +#define GICR_VPENDBASER_INNER_CACHEABILITY_SHIFT          7
> +
> +#define gits_read_vpropbaser(c)         readq_relaxed(c)
> +#define gits_write_vpropbaser(v, c)     {writeq_relaxed(v, c);}
> +
> +/*
> + * GICR_VPENDBASER - the Valid bit must be cleared before changing
> + * anything else.
> + */
> +static inline void gits_write_vpendbaser(uint64_t val, void __iomem *add=
r)
> +{
> +    uint64_t tmp;
> +
> +    tmp =3D readq_relaxed(addr);
> +    while ( tmp & GICR_VPENDBASER_Valid )

The loop clearing GICR_VPENDBASER_Valid has no timeout.
If the bit never clears, we can spin forever. Please add a bounded
retry (and warn on timeout), similar to other polling paths.


Best regards,
Mykola

> +    {
> +        tmp &=3D ~GICR_VPENDBASER_Valid;
> +        writeq_relaxed(tmp, addr);
> +        tmp =3D readq_relaxed(addr);
> +    }
> +
> +    writeq_relaxed(val, addr);
> +}
> +#define gits_read_vpendbaser(c)     readq_relaxed(c)
> +
>  #endif
>
>  /*
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 11:31:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 11:31:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235481.1538461 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsfmR-00058t-Uo; Wed, 18 Feb 2026 11:31:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235481.1538461; Wed, 18 Feb 2026 11: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 1vsfmR-00058m-Rj; Wed, 18 Feb 2026 11:31:43 +0000
Received: by outflank-mailman (input) for mailman id 1235481;
 Wed, 18 Feb 2026 11:31: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=CABg=AW=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vsfmQ-00046b-Lo
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 11:31:42 +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 64a3dd40-0cbd-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 12:31:40 +0100 (CET)
Received: by mail-lf1-x129.google.com with SMTP id
 2adb3069b0e04-59dea72099eso6035913e87.0
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 03:31:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64a3dd40-0cbd-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771414300; cv=none;
        d=google.com; s=arc-20240605;
        b=a0OxnV3d1knZ0cgI1LgVsGR512KR3u5NVmQi/10pT2qcnrAIUww+99AHoceOp7CY6m
         O9DKqclrPi0Sd4JkP0UzNySZhUihsC4u4tv4nfzSQt2RXD8VTFTJHF5wLiHIZPH0/PKS
         kjsSOeS+xcolqQLYkW4SnAn6dTamgJ1GKqW/VtrMSLuUyfJb5/UhX2WOEmi0V7g/tUW/
         GfU1cboEHZHnbygZ6uS0oLTyYVsCWY8ECDOCbitCJxF9A/G5ItteIhfPVqn6YfD68aoM
         PCcANxv6+Lv1Mw2MCmyj6wwkuh0iP10kfeOUq0Tqd5RrOwG3sE+/Jmo+enZzEyk7iPNE
         AqkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=qdV1rJUCcIrxXpqW6qfFzl0CgGX72K5P92RL6h50K2E=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=lj62gYPJduvai57dQcn//d+33xFEZA+1K2JJao1gyWEnE9YIl0Ei4P/Ru0+M+vaanr
         AZPy7ok0F5reVH13Y6XFtEfZgXY+MPAAioe5K0ZuV3bZ9bCPpmRvBv7Jvsqj184bvcaz
         xgPhkQ7pv+c5a2QOkFnyu6cLWv1bAyiAxpfJf+ZEJuLQGv1Ig9n7vbXDJB3IVXQklMMX
         7K+rc3MfenOdO6ATTLvzZwNdKGwYNNfaspudJZDWJ855tNlPJogjd5skXMZf6K6MHA83
         Ekqxx9sNQ4uC3a+U65irRsJdmjH2uQUmm836ZYiMIvbFSVnxeNam2GhqYtgXQhxCTKRG
         LFCA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771414300; x=1772019100; 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=qdV1rJUCcIrxXpqW6qfFzl0CgGX72K5P92RL6h50K2E=;
        b=Ab/Fcb9s9vpPmLu6tyobRyIe1ODVdMe+YsvuZhmB3w2JdXr7clR4Mo1FHMKpLvjPgq
         liX1FIfXgA/Lk3DTW3tw4hdAnfvZNPLmS0YCq7L6r/uOyz8HYp/w05FBQURar0oFBndi
         rEAbxFTg4xLekihx+6Qyrm4w5DTpPeWcN9jxtwHDEJlvM5Ew2PpY2yAMAw3N7fk8VYms
         AM1Tto/ewedqM63wL5PoCJpF4dXmW4tb38RBU9q/pEAim1DDTtVZGMF8FK8pJTjR3r+o
         ATULQgKO9uVygNSSjCTXxKKmTdGzg2LHxvzu0h94qRZAF51os20vlzBrfPGn3QR4twG8
         ByBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771414300; x=1772019100;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=qdV1rJUCcIrxXpqW6qfFzl0CgGX72K5P92RL6h50K2E=;
        b=kvXxgzZ/MeAAX70kD4H0k4OE3lZWexk5jOaa2JnyqgsW4cR/iCz7nW/4aX1GpZ1A3M
         Y91G1Z2VTQQ2f2rYK6PVNKwC1VzCWyBtQur/vXiVHXeQUZdov184ScqR+NZ3H440tEMf
         ARqH75euvCPV5eoNjd0v5sIb6magpvM4KtXGn7DQqPZLOHFwql0haXaZHp6hz6lBOg0h
         FvOv4zcGEqbv1e7WUdEXY7SYUO13XnPTZasLjhXPPIIjxSYb+7SrNd99nEuxdUDpb0Gd
         NsM9O9ia9ZQSplcJQgAHYC0EPnKJOy5Xb34LOOgyCzsxTVV5EwWimVd81G70D7lHvOj1
         2eHw==
X-Gm-Message-State: AOJu0Yy8mXMaI+EahXq11rqMyq4ohBm6xOKle5BRjKn7mvNQijA+AKll
	Zv2fb/I43sxd1DbQ+Lm2qFpdZcnQ5Ust3GVB9iRQPTW+W71pF1FsKnpnDWbfUNF2tZSP4kIIdJQ
	okf0YW6Weoob0Wz8TIoRzRAUc9j2DsRA=
X-Gm-Gg: AZuq6aJtWv6nP5ww9hcpFTGPWflupP5bndS8ZYwApFQgvXDButNmgPXUXc+qSzIlRu1
	JTk2rbaHFo7DEQ+EPbS/S1gJ470P82Z49hY8MKxDI0ZTYTGLhbOJIFiItnYVh+nUXd3KXgQYa3+
	YE1/jE1gYMolFXThM/NIQVk6J8EefFIwjSx2HVjQuTZZOHivh9Xrs+EF9En81RyUKSftPO+7d5V
	qQdbHPvGg1phGfuAmywRktvx1BnLoXBiOurRS0xkUWf2YxEoZdbH9Lgb+BlgJwyZwGO6GzsCDQD
	W5pTbA==
X-Received: by 2002:a05:6512:250b:b0:59f:8173:f0b9 with SMTP id
 2adb3069b0e04-59f8173f2d7mr1103127e87.52.1771414299117; Wed, 18 Feb 2026
 03:31:39 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <1e37aecc73c38669c1f3d41a4a829a5a5b54f836.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <1e37aecc73c38669c1f3d41a4a829a5a5b54f836.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 18 Feb 2026 13:30:00 +0200
X-Gm-Features: AaiRm50UDIzBfUaeIoVD_xNuZeWBgCal9aDMFO_taxs3XLr73HLJazNwofz0cB4
Message-ID: <CAGeoDV_46-5RsobA8LEdKS1JnNJfef2-CTq3ugRGfgyJ40ZaAw@mail.gmail.com>
Subject: Re: [RFC PATCH 11/19] arm/its: Add ITS VM and VPE allocation/teardown
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,

Thank you for the patch!

On Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Do necessary allocations for GICv4 VLPI injection.
> When creating a domain allocate its_vm and property tables.
> For each VCPU allocate a VPe with a unique vpe id and separate pending ta=
ble.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v3-its.c             | 157 ++++++++++++----
>  xen/arch/arm/gic-v3-lpi.c             |  61 +++++-
>  xen/arch/arm/gic-v3.c                 |  18 ++
>  xen/arch/arm/gic-v4-its.c             | 259 ++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/gic_v3_its.h |  17 ++
>  xen/arch/arm/include/asm/gic_v4_its.h |   1 +
>  xen/arch/arm/include/asm/vgic.h       |   3 +
>  xen/arch/arm/vgic.c                   |  25 ++-
>  8 files changed, 496 insertions(+), 45 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index 2328595a85..fb1d2709be 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -31,6 +31,8 @@
>  LIST_HEAD(host_its_list);
>
>
> +unsigned int nvpeid =3D 16;
> +
>  /*
>   * It is unlikely that a platform implements ITSes with different quirks=
,
>   * so assume they all share the same.
> @@ -228,7 +230,7 @@ int gicv3_its_wait_commands(struct host_its *hw_its)
>      return -ETIMEDOUT;
>  }
>
> -static uint64_t encode_rdbase(struct host_its *hw_its, unsigned int cpu,
> +uint64_t encode_rdbase(struct host_its *hw_its, unsigned int cpu,
>                                uint64_t reg)
>  {
>      reg &=3D ~GENMASK(51, 16);
> @@ -443,6 +445,54 @@ struct its_baser *its_get_baser(struct host_its *hw_=
its, uint32_t type)
>      return NULL;
>  }
>
> +bool its_alloc_table_entry(struct its_baser *baser, uint32_t id)
> +{
> +    uint64_t reg =3D baser->val;
> +    bool indirect =3D reg & GITS_BASER_INDIRECT;
> +    unsigned int idx;
> +    __le64 *table;
> +    unsigned int entry_size =3D GITS_BASER_ENTRY_SIZE(reg);
> +
> +    /* Don't allow id that exceeds single, flat table limit */
> +    if ( !indirect )
> +        return (id < (baser->table_size / entry_size));
> +
> +    /* Compute 1st level table index & check if that exceeds table limit=
 */
> +    idx =3D id / (baser->pagesz / entry_size);
> +    if ( idx >=3D (baser->pagesz / GITS_LVL1_ENTRY_SIZE) )
> +        return false;
> +
> +    table =3D baser->base;
> +
> +    /* Allocate memory for 2nd level table */
> +    if (!table[idx])
> +    {
> +        unsigned int page_size =3D baser->pagesz;
> +        void *buffer;
> +
> +        buffer =3D alloc_xenheap_pages(get_order_from_bytes(page_size),
> +                                     gicv3_its_get_memflags());
> +        if ( !buffer )
> +            return -ENOMEM;

returns -ENOMEM from a bool function, so OOM looks like
success.
---

does not zero the new L2 table before publishing it.

See, Arm IHI 0069H.b, 5.2.1 The ITS tables:

Behavior is UNPREDICTABLE if:
- Memory that is used for the level 2 tables does not contain zeros at
  the time of the new allocation for use by the ITS.
---

The L2 tables allocated here are never freed. If this is
intended as =E2=80=9Callocate once for ITS lifetime=E2=80=9D, please add a =
short
comment stating that, to avoid the appearance of a leak.

> +
> +        /* Flush Lvl2 table to PoC if hw doesn't support coherency */
> +        if ( gicv3_its_get_cacheability() <=3D GIC_BASER_CACHE_nC )
> +            clean_and_invalidate_dcache_va_range(buffer, page_size);
> +
> +        table[idx] =3D cpu_to_le64(virt_to_maddr(buffer) | GITS_VALID_BI=
T);

Before writing virt_to_maddr(buffer) into the L1 entry, should
we validate that the physical address is encodable?

> +
> +        /* Flush Lvl1 entry to PoC if hw doesn't support coherency */
> +        if ( gicv3_its_get_cacheability() <=3D GIC_BASER_CACHE_nC )
> +            clean_and_invalidate_dcache_va_range(table + idx,
> +                                                 GITS_LVL1_ENTRY_SIZE);
> +
> +        /* Ensure updated table contents are visible to ITS hardware */
> +        dsb(sy);
> +    }
> +
> +    return true;
> +}
> +
>  static int its_map_baser(void __iomem *basereg, uint64_t regc,
>                           unsigned int nr_items, struct its_baser *baser)
>  {
> @@ -737,13 +787,75 @@ static int gicv3_its_map_host_events(struct host_it=
s *its,
>              return ret;
>      }
>
> -    /* TODO: Consider using INVALL here. Didn't work on the model, thoug=
h. */
> +    return 0;
> +}
> +
> +static bool its_alloc_device_table(struct host_its *hw_its, uint32_t dev=
_id)
> +{
> +    struct its_baser *baser;
> +
> +    baser =3D its_get_baser(hw_its, GITS_BASER_TYPE_DEVICE);
> +    if ( !baser )
> +        return false;
> +
> +    return its_alloc_table_entry(baser, dev_id);
> +}
> +
> +struct its_device *its_create_device(struct host_its *hw_its,
> +                                     uint32_t host_devid, uint64_t nr_ev=
ents)
> +{
> +    void *itt_addr =3D NULL;
> +    struct its_device *dev =3D NULL;
> +    int ret;
> +
> +    /* Sanitise the provided hardware values against the host ITS. */
> +    if ( host_devid >=3D BIT(hw_its->devid_bits, UL) )
> +        return NULL;
> +
> +    dev =3D xzalloc(struct its_device);
> +    if ( !dev )
> +        return NULL;
> +
> +    /* An Interrupt Translation Table needs to be 256-byte aligned. */
> +    dev->itt_order =3D get_order_from_bytes(nr_events * hw_its->itte_siz=
e);
> +    itt_addr =3D alloc_xenheap_pages(dev->itt_order, gicv3_its_get_memfl=
ags());
> +    if ( !itt_addr )
> +        goto fail_dev;
> +
> +    clean_and_invalidate_dcache_va_range(itt_addr,
> +                                         nr_events * hw_its->itte_size);

clean_and_invalidate_dcache_va_range() is unconditional.
Should this be guarded by
gicv3_its_get_cacheability() <=3D GIC_BASER_CACHE_nC
as in other paths?
It avoids a redundant flush on coherent systems.

> +
>
> -    ret =3D its_send_cmd_sync(its, 0);
> +    if ( !its_alloc_device_table(hw_its, host_devid) )
> +        goto fail_itt;
> +
> +    ret =3D its_send_cmd_mapd(hw_its, host_devid, max(fls(nr_events - 1)=
, 1U),
> +                            virt_to_maddr(itt_addr), true);
>      if ( ret )
> -        return ret;
> +        goto fail_itt;
>
> -    return gicv3_its_wait_commands(its);
> +    dev->itt_addr =3D itt_addr;
> +    dev->hw_its =3D hw_its;
> +    dev->host_devid =3D host_devid;
> +    dev->eventids =3D nr_events;
> +
> +    return dev;
> +
> +fail_itt:
> +    free_xenheap_pages(itt_addr, dev->itt_order);
> +fail_dev:
> +    xfree(dev);
> +
> +    return NULL;
> +}
> +
> +static void its_free_device(struct its_device *dev)
> +{
> +    xfree(dev->host_lpi_blocks);

does not release host LPI blocks via
gicv3_free_host_lpi_block().

> +    xfree(dev->itt_addr);

uses xfree() for itt_addr, but it comes from
alloc_xenheap_pages().

> +    if ( dev->pend_irqs )

nit: xfree checks if the provided pointer is equal to NULL

> +        xfree(dev->pend_irqs);
> +    xfree(dev);
>  }
>
>  /*
> @@ -758,12 +870,10 @@ int gicv3_its_map_guest_device(struct domain *d,
>                                 paddr_t guest_doorbell, uint32_t guest_de=
vid,
>                                 uint64_t nr_events, bool valid)
>  {
> -    void *itt_addr =3D NULL;
>      struct host_its *hw_its;
>      struct its_device *dev =3D NULL;
>      struct rb_node **new =3D &d->arch.vgic.its_devices.rb_node, *parent =
=3D NULL;
>      int i, ret =3D -ENOENT;      /* "i" must be signed to check for >=3D=
 0 below. */
> -    unsigned int order;
>
>      hw_its =3D gicv3_its_find_by_doorbell(host_doorbell);
>      if ( !hw_its )
> @@ -823,23 +933,12 @@ int gicv3_its_map_guest_device(struct domain *d,
>      if ( !valid )
>          goto out_unlock;
>
> -    ret =3D -ENOMEM;
> -
> -    /* An Interrupt Translation Table needs to be 256-byte aligned. */
> -    order =3D get_order_from_bytes(max(nr_events * hw_its->itte_size, 25=
6UL));
> -    itt_addr =3D alloc_xenheap_pages(order, gicv3_its_get_memflags());
> -    if ( !itt_addr )
> -        goto out_unlock;
> -
> -    memset(itt_addr, 0, PAGE_SIZE << order);
> -
> -    clean_and_invalidate_dcache_va_range(itt_addr,
> -                                         nr_events * hw_its->itte_size);
> -
> -    dev =3D xzalloc(struct its_device);
> +    dev =3D its_create_device(hw_its, host_devid, nr_events);
>      if ( !dev )
>          goto out_unlock;
>
> +    ret =3D -ENOMEM;
> +
>      /*
>       * Allocate the pending_irqs for each virtual LPI. They will be put
>       * into the domain's radix tree upon the guest's MAPTI command.
> @@ -860,14 +959,6 @@ int gicv3_its_map_guest_device(struct domain *d,
>      if ( !dev->host_lpi_blocks )
>          goto out_unlock;
>
> -    ret =3D its_send_cmd_mapd(hw_its, host_devid, fls(nr_events - 1),
> -                            virt_to_maddr(itt_addr), true);
> -    if ( ret )
> -        goto out_unlock;
> -
> -    dev->itt_addr =3D itt_addr;
> -    dev->itt_order =3D order;
> -    dev->hw_its =3D hw_its;
>      dev->guest_doorbell =3D guest_doorbell;
>      dev->guest_devid =3D guest_devid;
>      dev->host_devid =3D host_devid;
> @@ -920,13 +1011,7 @@ out_unlock:
>
>  out:
>      if ( dev )
> -    {
> -        xfree(dev->pend_irqs);
> -        xfree(dev->host_lpi_blocks);
> -    }
> -    if ( itt_addr )
> -        free_xenheap_pages(itt_addr, order);
> -    xfree(dev);
> +        its_free_device(dev);
>
>      return ret;
>  }
> diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
> index c029d5d7a4..3c2649b695 100644
> --- a/xen/arch/arm/gic-v3-lpi.c
> +++ b/xen/arch/arm/gic-v3-lpi.c
> @@ -58,6 +58,7 @@ static DEFINE_PER_CPU(struct lpi_redist_data, lpi_redis=
t);
>
>  #define MAX_NR_HOST_LPIS   (lpi_data.max_host_lpi_ids - LPI_OFFSET)
>  #define HOST_LPIS_PER_PAGE      (PAGE_SIZE / sizeof(union host_lpi))
> +uint32_t lpi_id_bits;
>
>  static union host_lpi *gic_get_host_lpi(uint32_t plpi)
>  {
> @@ -202,14 +203,11 @@ void gicv3_lpi_update_host_entry(uint32_t host_lpi,=
 int domain_id,
>      write_u64_atomic(&hlpip->data, hlpi.data);
>  }
>
> -static int gicv3_lpi_allocate_pendtable(unsigned int cpu)
> +struct page_info *lpi_allocate_pendtable(void)
>  {
>      void *pendtable;
>      unsigned int order;
>
> -    if ( per_cpu(lpi_redist, cpu).pending_table )
> -        return -EBUSY;
> -
>      /*
>       * The pending table holds one bit per LPI and even covers bits for
>       * interrupt IDs below 8192, so we allocate the full range.
> @@ -219,20 +217,34 @@ static int gicv3_lpi_allocate_pendtable(unsigned in=
t cpu)
>      order =3D get_order_from_bytes(max(lpi_data.max_host_lpi_ids / 8, (u=
nsigned long)SZ_64K));
>      pendtable =3D alloc_xenheap_pages(order, gicv3_its_get_memflags());
>      if ( !pendtable )
> -        return -ENOMEM;
> +        return NULL;
>
>      memset(pendtable, 0, PAGE_SIZE << order);
>      /* Make sure the physical address can be encoded in the register. */
>      if ( virt_to_maddr(pendtable) & ~GENMASK(51, 16) )
>      {
>          free_xenheap_pages(pendtable, order);
> -        return -ERANGE;
> +        return NULL;
>      }
>      clean_and_invalidate_dcache_va_range(pendtable,
>                                           lpi_data.max_host_lpi_ids / 8);
>
> -    per_cpu(lpi_redist, cpu).pending_table =3D pendtable;
> +    return virt_to_page(pendtable);
> +}
> +
> +static int gicv3_lpi_allocate_pendtable(unsigned int cpu)
> +{
> +    struct page_info *pendtable;
> +
> +    if ( per_cpu(lpi_redist, cpu).pending_table )
> +        return -EBUSY;
> +
> +    pendtable =3D lpi_allocate_pendtable();
> +    if ( !pendtable )
> +        return -EINVAL;
>
> +    per_cpu(lpi_redist, cpu).pending_table =3D page_to_virt(pendtable);
> +
>      return 0;
>  }
>
> @@ -274,6 +286,38 @@ static int gicv3_lpi_set_pendtable(void __iomem *rdi=
st_base)
>      return 0;
>  }
>
> +void *lpi_allocate_proptable(void)

Since this helper is used to allocate the table programmed via
GICR_VPROPBASER (vLPI configuration table), it may be clearer to
name it lpi_allocate_vproptable() (and lpi_free_vproptable()) to avoid
confusion with the physical PROPBASER path.

> +{
> +    void *table;
> +    int order;
> +
> +    /* The property table holds one byte per LPI. */
> +    order =3D get_order_from_bytes(lpi_data.max_host_lpi_ids);

Do we really need to allocate one byte per *ID* here?

AFAIU for the (V)PROPBASER configuration table the entry for LPI N is
at (base + (N - 8192)), so the table needs only
(max_host_lpi_ids - 8192) bytes, not max_host_lpi_ids bytes.

Arm IHI 0069H.b, 5.1.1 "LPI Configuration tables" states:
  For any LPI N, the location of the table entry is defined by
  (base address + (N - 8192)).

Also see "GICv3 and GICv4 Software Overview" (DAI 0492B),
section "LPI Configuration table":

    Size in bytes =3D 2^(GICR_PROPBASER.IDbits+1) =E2=80=93 8192

The "extra bytes" are relevant for the *pending* table semantics, not
for the configuration table.  With the current allocation size, we also
init/flush only (max_host_lpi_ids - 8192) bytes, leaving a tail
uninitialized.  Either allocate the adjusted size, or init/flush the
full allocated range.
---

nit: VPROPBASER is VM-wide (vLPI configuration is global to all vPEs in
a VM). It may be worth making the chosen IDbits/table size an explicit
per-VM value, i.e. based on programmed value from VPROPBASER.

> +    table =3D alloc_xenheap_pages(order, gicv3_its_get_memflags());
> +    if ( !table )
> +        return NULL;
> +
> +    /* Make sure the physical address can be encoded in the register. */
> +    if ( (virt_to_maddr(table) & ~GENMASK(51, 12)) )
> +    {
> +        free_xenheap_pages(table, order);
> +        return NULL;
> +    }
> +    memset(table, GIC_PRI_IRQ | LPI_PROP_RES1, MAX_NR_HOST_LPIS);
> +    clean_and_invalidate_dcache_va_range(table, MAX_NR_HOST_LPIS);
> +
> +    return table;
> +}
> +
> +void lpi_free_proptable(void *vproptable)
> +{
> +    int order;
> +
> +    /* The property table holds one byte per LPI. */
> +    order =3D get_order_from_bytes(lpi_data.max_host_lpi_ids);
> +    free_xenheap_pages(vproptable, order);
> +}
> +
>  /*
>   * Tell a redistributor about the (shared) property table, allocating on=
e
>   * if not already done.
> @@ -314,7 +358,8 @@ static int gicv3_lpi_set_proptable(void __iomem * rdi=
st_base)
>      }
>
>      /* Encode the number of bits needed, minus one */
> -    reg |=3D fls(lpi_data.max_host_lpi_ids - 1) - 1;
> +    lpi_id_bits =3D fls(lpi_data.max_host_lpi_ids - 1);
> +    reg |=3D lpi_id_bits - 1;
>
>      reg |=3D virt_to_maddr(lpi_data.lpi_property);
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 14852d18c2..d4af332b0e 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -2083,6 +2083,22 @@ static bool gic_dist_supports_lpis(void)
>      return (readl_relaxed(GICD + GICD_TYPER) & GICD_TYPE_LPIS);
>  }
>
> +#ifdef CONFIG_GICV4
> +static void __init gicv4_init(void)
> +{
> +        gicv3_info.hw_version =3D GIC_V4;

We should derive the HW version from GICD/GICR/GITS_PIDR2 in the
common GICv3/4 init path instead of hard=E2=80=91coding GIC_V4 based on con=
fig.
That avoids config=E2=80=91dependent values and keeps version detection
consistent.

> +
> +
> +    gicv4_its_vpeid_allocator_init();
> +
> +}
> +#else
> +static void __init gicv4_init(void)
> +{
> +    ASSERT_UNREACHABLE();
> +}
> +#endif
> +
>  /* Set up the GIC */
>  static int __init gicv3_init(void)
>  {
> @@ -2157,6 +2173,8 @@ static int __init gicv3_init(void)
>
>      gicv3_hyp_init();
>
> +    if ( gic_is_gicv4() )
> +        gicv4_init();
>  out:
>      spin_unlock(&gicv3.lock);
>
> diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
> index 358d0bffb9..fac3b44a94 100644
> --- a/xen/arch/arm/gic-v4-its.c
> +++ b/xen/arch/arm/gic-v4-its.c
> @@ -27,6 +27,83 @@
>  #include <asm/vgic.h>
>
>
> +/*
> + * VPE ID is at most 16 bits.
> + * Using a bitmap here limits us to 65536 concurrent VPEs.
> + */
> +static unsigned long *vpeid_mask;
> +
> +static spinlock_t vpeid_alloc_lock =3D SPIN_LOCK_UNLOCKED;
> +
> +void __init gicv4_its_vpeid_allocator_init(void)
> +{
> +    /* Allocate space for vpeid_mask based on MAX_VPEID */
> +    vpeid_mask =3D xzalloc_array(unsigned long, BITS_TO_LONGS(MAX_VPEID)=
);
> +
> +    if ( !vpeid_mask )
> +        panic("Could not allocate VPEID bitmap space\n");
> +}
> +
> +static int __init its_alloc_vpeid(struct its_vpe *vpe)

Several helpers in gic-v4-its.c are marked __init (e.g.
its_alloc_vpeid(), its_free_vpeid(), its_vpe_init(),
its_vpe_teardown()), but they are called from vcpu_vgic_init() via
vgic_v4_its_vpe_init(). This is not init-only code, and may cause
section mismatch warnings or runtime issues once init sections are
freed. Please drop __init for these functions.
---

vpe is unused

> +{
> +    int id;
> +
> +    spin_lock(&vpeid_alloc_lock);
> +
> +    id =3D find_first_zero_bit(vpeid_mask, MAX_VPEID);
> +
> +    if ( id =3D=3D MAX_VPEID )
> +    {
> +        id =3D -EBUSY;
> +        printk(XENLOG_ERR "VPEID pool exhausted\n");
> +        goto out;
> +    }
> +
> +    set_bit(id, vpeid_mask);
> +
> +out:
> +    spin_unlock(&vpeid_alloc_lock);
> +
> +    return id;
> +}
> +
> +static void __init its_free_vpeid(uint32_t vpe_id)
> +{
> +    spin_lock(&vpeid_alloc_lock);
> +
> +    clear_bit(vpe_id, vpeid_mask);
> +
> +    spin_unlock(&vpeid_alloc_lock);
> +}
> +
> +static bool __init its_alloc_vpe_entry(uint32_t vpe_id)
> +{
> +    struct host_its *hw_its;
> +
> +    /*
> +     * Make sure the L2 tables are allocated on *all* v4 ITSs. We
> +     * could try and only do it on ITSs corresponding to devices
> +     * that have interrupts targeted at this VPE, but the
> +     * complexity becomes crazy.
> +     */
> +    list_for_each_entry(hw_its, &host_its_list, entry)
> +    {
> +        struct its_baser *baser;
> +
> +        if ( !hw_its->is_v4 )
> +            continue;
> +
> +        baser =3D its_get_baser(hw_its, GITS_BASER_TYPE_VCPU);
> +        if ( !baser )
> +            return false;
> +
> +        if ( !its_alloc_table_entry(baser, vpe_id) )
> +            return false;
> +    }
> +
> +    return true;
> +}
> +
>  static int its_send_cmd_vsync(struct host_its *its, uint16_t vpeid)
>  {
>      uint64_t cmd[4];
> @@ -39,6 +116,188 @@ static int its_send_cmd_vsync(struct host_its *its, =
uint16_t vpeid)
>      return its_send_command(its, cmd);
>  }
>
> +static int its_send_cmd_vmapp(struct host_its *its, struct its_vpe *vpe,
> +                              bool valid)
> +{
> +    uint64_t cmd[4];
> +    uint16_t vpeid =3D vpe->vpe_id;
> +    uint64_t vpt_addr;
> +    int ret;
> +
> +    cmd[0] =3D GITS_CMD_VMAPP;
> +    cmd[1] =3D (uint64_t)vpeid << 32;
> +    cmd[2] =3D valid ? GITS_VALID_BIT : 0;
> +
> +    /* Unmap command */
> +    if ( !valid )
> +        goto out;
> +
> +    /* Target redistributor */
> +    cmd[2] |=3D encode_rdbase(its, vpe->col_idx, 0x0);
> +    vpt_addr =3D virt_to_maddr(vpe->vpendtable);
> +    cmd[3] =3D (vpt_addr & GENMASK(51, 16)) |
> +             ((HOST_LPIS_NRBITS - 1) & GENMASK(4, 0));
> +
> + out:
> +    ret =3D its_send_command(its, cmd);
> +
> +    return ret;
> +}
> +
> +static int its_send_cmd_vinvall(struct host_its *its, struct its_vpe *vp=
e)
> +{
> +    uint64_t cmd[4];
> +    uint16_t vpeid =3D vpe->vpe_id;
> +
> +    cmd[0] =3D GITS_CMD_VINVALL;
> +    cmd[1] =3D (uint64_t)vpeid << 32;
> +    cmd[2] =3D 0x00;
> +    cmd[3] =3D 0x00;
> +
> +    return its_send_command(its, cmd);
> +}
> +
> +static int its_map_vpe(struct host_its *its, struct its_vpe *vpe)
> +{
> +    int ret;
> +
> +    /*
> +     * VMAPP command maps the vPE to the target RDbase, including an
> +     * associated virtual LPI Pending table.
> +     */
> +    ret =3D its_send_cmd_vmapp(its, vpe, true);
> +    if ( ret )
> +        return ret;
> +
> +    ret =3D its_send_cmd_vinvall(its, vpe);
> +    if ( ret )
> +        return ret;
> +
> +    ret =3D its_send_cmd_vsync(its, vpe->vpe_id);
> +    if ( ret )
> +        return ret;

Error handling for ITS commands is minimal. If VMAPP succeeds and
VINVALL/VSYNC fails, we return without rollback or recovery.
Should we consider retrying (e.g. via CWRITER.Retry), or detect
error/stall via GITS_TYPER.SEIS / GITS_CREADR.Stalled and
unmap the VPE on failure?

> +
> +    return 0;
> +}
> +static int __init its_vpe_init(struct its_vpe *vpe)
> +{
> +    int vpe_id, rc =3D -ENOMEM;
> +    struct page_info *vpendtable;
> +    struct host_its *hw_its;
> +
> +    /* Allocate vpe id */
> +    vpe_id =3D its_alloc_vpeid(vpe);
> +    if ( vpe_id < 0 )
> +        return rc;
> +
> +    /* Allocate VPT */
> +    vpendtable =3D lpi_allocate_pendtable();
> +
> +    if ( !vpendtable )
> +        goto fail_vpt;
> +
> +    if ( !its_alloc_vpe_entry(vpe_id) )
> +        goto fail_entry;
> +
> +    rwlock_init(&vpe->lock);
> +    vpe->vpe_id =3D vpe_id;
> +    vpe->vpendtable =3D page_to_virt(vpendtable);
> +    /*
> +     * We eagerly inform all the v4 ITS and map vPE to the first
> +     * possible CPU
> +     */
> +    vpe->col_idx =3D cpumask_first(&cpu_online_map);
> +    list_for_each_entry(hw_its, &host_its_list, entry)
> +    {
> +        if ( !hw_its->is_v4 )
> +            continue;
> +
> +        if ( its_map_vpe(hw_its, vpe) )

If its_map_vpe() fails for a later ITS, we should unmap the
VPE on the ITSes already handled.  its_vpe_teardown() frees
SW allocations (vpe too) but does not undo prior VMAPPs,
leaving stale mappings behind.

> +            goto fail_entry;
> +    }
> +
> +    return 0;
> +
> + fail_entry:
> +    xfree(page_to_virt(vpendtable));

failure path frees vpendtable with xfree(),
but it was allocated with alloc_xenheap_pages().
---

The fail path frees vpendtable locally, and the caller then
calls its_vpe_teardown() on error. This risks double=E2=80=91free,
Please have a single owner for cleanup.

> + fail_vpt:
> +    its_free_vpeid(vpe_id);
> +
> +    return rc;
> +}
> +
> +static void __init its_vpe_teardown(struct its_vpe *vpe)
> +{
> +    unsigned int order;
> +
> +    order =3D get_order_from_bytes(max(lpi_data.max_host_lpi_ids / 8, (u=
nsigned long)SZ_64K));
> +    its_free_vpeid(vpe->vpe_id);
> +    free_xenheap_pages(vpe->vpendtable, order);
> +    xfree(vpe);
> +}
> +
> +int vgic_v4_its_vm_init(struct domain *d)
> +{
> +    unsigned int nr_vcpus =3D d->max_vcpus;
> +    int ret =3D -ENOMEM;
> +
> +    if ( !gicv3_its_host_has_its() )
> +        return 0;
> +
> +    d->arch.vgic.its_vm =3D xzalloc(struct its_vm);
> +    if ( !d->arch.vgic.its_vm )
> +        return ret;
> +
> +    d->arch.vgic.its_vm->vpes =3D xzalloc_array(struct its_vpe *, nr_vcp=
us);
> +    if ( !d->arch.vgic.its_vm->vpes )
> +        goto fail_vpes;
> +    d->arch.vgic.its_vm->nr_vpes =3D nr_vcpus;
> +
> +    d->arch.vgic.its_vm->vproptable =3D lpi_allocate_proptable();
> +    if ( !d->arch.vgic.its_vm->vproptable )
> +        goto fail_vprop;
> +
> +    return 0;
> +
> +fail_vprop:
> +    xfree(d->arch.vgic.its_vm->vpes)
> + fail_vpes:
> +    xfree(d->arch.vgic.its_vm);

use XFREE to cleanup the its_vm ptr too

> +
> +    return ret;
> +}
> +
> +void vgic_v4_free_its_vm(struct domain *d)
> +{
> +    struct its_vm *its_vm =3D d->arch.vgic.its_vm;
> +    if ( its_vm->vpes )

nit: no need to check the ptr it is done by xfree

> +        xfree(its_vm->vpes);
> +    if ( its_vm->vproptable )

nit: looks like it is safe to pass NULL ptr to lpi_free_proptable

> +        lpi_free_proptable(its_vm);

passes its_vm to lpi_free_proptable(), not
its_vm->vproptable.

> +}
> +
> +int vgic_v4_its_vpe_init(struct vcpu *vcpu)
> +{
> +    int ret;
> +    struct its_vm *its_vm =3D vcpu->domain->arch.vgic.its_vm;
> +    unsigned int vcpuid =3D vcpu->vcpu_id;
> +
> +    vcpu->arch.vgic.its_vpe =3D xzalloc(struct its_vpe);
> +    if ( !vcpu->arch.vgic.its_vpe )
> +        return -ENOMEM;
> +
> +    its_vm->vpes[vcpuid] =3D vcpu->arch.vgic.its_vpe;

its_vm->vpes[vcpuid] is assigned before its_vpe_init(). If
its_vpe_init() fails, the array keeps a stale pointer. Either
move the assignment after success, or clear it on failure.

> +    vcpu->arch.vgic.its_vpe->its_vm =3D its_vm;
> +
> +    ret =3D its_vpe_init(vcpu->arch.vgic.its_vpe);
> +    if ( ret )
> +    {
> +        its_vpe_teardown(vcpu->arch.vgic.its_vpe);
> +        return ret;
> +    }
> +    return 0;
> +}
> +
>  static int its_send_cmd_vmapti(struct host_its *its, struct its_device *=
dev,
>                                 uint32_t eventid)
>  {
> diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include=
/asm/gic_v3_its.h
> index bd2696f354..411beb81c8 100644
> --- a/xen/arch/arm/include/asm/gic_v3_its.h
> +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> @@ -77,6 +77,7 @@
>  #define GITS_BASER_ENTRY_SIZE_SHIFT     48
>  #define GITS_BASER_ENTRY_SIZE(reg)                                      =
 \
>                          ((((reg) >> GITS_BASER_ENTRY_SIZE_SHIFT) & 0x1f)=
 + 1)
> +#define GITS_LVL1_ENTRY_SIZE            8UL
>  #define GITS_BASER_SHAREABILITY_SHIFT   10
>  #define GITS_BASER_PAGE_SIZE_SHIFT      8
>  #define GITS_BASER_SIZE_MASK            0xff
> @@ -117,9 +118,19 @@
>  /* We allocate LPIs on the hosts in chunks of 32 to reduce handling over=
head. */
>  #define LPI_BLOCK                       32U
>
> +extern unsigned int nvpeid;
> +/* The maximum number of VPEID bits supported by VLPI commands */
> +#define ITS_MAX_VPEID_BITS      nvpeid
> +#define MAX_VPEID               (1UL << ITS_MAX_VPEID_BITS)
> +
>  #ifdef CONFIG_GICV4
>  #include <asm/gic_v4_its.h>
>  #endif
> +
> +extern uint32_t lpi_id_bits;
> +#define HOST_LPIS_NRBITS   lpi_id_bits
> +#define MAX_HOST_LPIS      BIT(lpi_id_bits, UL)
> +
>  /*
>   * Describes a device which is using the ITS and is used by a guest.
>   * Since device IDs are per ITS (in contrast to vLPIs, which are per
> @@ -169,6 +180,7 @@ struct host_its {
>      void *cmd_buf;
>      unsigned int flags;
>      struct its_baser tables[GITS_BASER_NR_REGS];
> +    bool is_v4;
>  };
>
>  /* Map a collection for this host CPU to each host ITS. */
> @@ -273,8 +285,13 @@ struct pending_irq *gicv3_assign_guest_event(struct =
domain *d,
>  void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
>                                   uint32_t virt_lpi);
>  struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type);
> +bool its_alloc_table_entry(struct its_baser *baser, uint32_t id);
> +struct page_info *lpi_allocate_pendtable(void);
> +void *lpi_allocate_proptable(void);
> +void lpi_free_proptable(void *vproptable);
>  void lpi_write_config(uint8_t *prop_table, uint32_t lpi, uint8_t clr,
>                        uint8_t set);
> +uint64_t encode_rdbase(struct host_its *hw_its, unsigned int cpu, uint64=
_t reg);
>  int its_send_command(struct host_its *hw_its, const void *its_cmd);
>
>  struct its_device *get_its_device(struct domain *d, paddr_t vdoorbell,
> diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include=
/asm/gic_v4_its.h
> index 722247ec60..fb0ef37bbe 100644
> --- a/xen/arch/arm/include/asm/gic_v4_its.h
> +++ b/xen/arch/arm/include/asm/gic_v4_its.h
> @@ -49,6 +49,7 @@ struct event_vlpi_map {
>      unsigned int            nr_vlpis;
>  };
>
> +void gicv4_its_vpeid_allocator_init(void);
>  #endif
>
>  /*
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index f12d736808..580310fec4 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -414,6 +414,9 @@ bool gic_is_gicv4(void);
>  #define gic_is_gicv4() (false)
>  #endif
>
> +int vgic_v4_its_vm_init(struct domain *d);
> +void vgic_v4_free_its_vm(struct domain *d);
> +int vgic_v4_its_vpe_init(struct vcpu *vcpu);
>  #endif /* !CONFIG_NEW_VGIC */
>
>  /*** Common VGIC functions used by Xen arch code ****/
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 0da8c1a425..6baf870ad5 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -22,6 +22,7 @@
>
>  #include <asm/mmio.h>
>  #include <asm/gic.h>
> +#include <asm/gic_v3_its.h>
>  #include <asm/vgic.h>
>
>
> @@ -329,6 +330,15 @@ int domain_vgic_init(struct domain *d, unsigned int =
nr_spis)
>      for ( i =3D 0; i < NR_GIC_SGI; i++ )
>          set_bit(i, d->arch.vgic.allocated_irqs);
>
> +    if ( gic_is_gicv4() )
> +    {
> +        ret =3D vgic_v4_its_vm_init(d);
> +        if ( ret )
> +        {
> +            printk(XENLOG_ERR "GICv4 its vm allocation failed\n");
> +            return ret;
> +        }
> +    }
>      return 0;
>  }
>
> @@ -366,11 +376,14 @@ void domain_vgic_free(struct domain *d)
>  #endif
>      xfree(d->arch.vgic.pending_irqs);
>      xfree(d->arch.vgic.allocated_irqs);
> +
> +    if ( gic_is_gicv4() )
> +        vgic_v4_free_its_vm(d);

vgic_v4_free_its_vm() on gic_is_gicv4() even when no
ITS, so its_vm can be NULL.


Best regards,
Mykola

>  }
>
>  int vcpu_vgic_init(struct vcpu *v)
>  {
> -    int i;
> +    int i, ret;
>
>      v->arch.vgic.private_irqs =3D xzalloc(struct vgic_irq_rank);
>      if ( v->arch.vgic.private_irqs =3D=3D NULL )
> @@ -389,6 +402,16 @@ int vcpu_vgic_init(struct vcpu *v)
>      INIT_LIST_HEAD(&v->arch.vgic.lr_pending);
>      spin_lock_init(&v->arch.vgic.lock);
>
> +    if ( gic_is_gicv4() && gicv3_its_host_has_its())
> +    {
> +        ret =3D vgic_v4_its_vpe_init(v);
> +        if ( ret )
> +        {
> +            printk(XENLOG_ERR "GICv4 its vpe allocation failed\n");
> +            return ret;
> +        }
> +    }
> +
>      return 0;
>  }
>
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 12:42:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 12:42:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235526.1538486 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsgt0-0005XP-3P; Wed, 18 Feb 2026 12:42:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235526.1538486; Wed, 18 Feb 2026 12:42:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsgt0-0005XI-0s; Wed, 18 Feb 2026 12:42:34 +0000
Received: by outflank-mailman (input) for mailman id 1235526;
 Wed, 18 Feb 2026 12:42: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsgsy-0005XC-9U
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 12:42:32 +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 499158e1-0cc7-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 13:42:29 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4358fb60802so604531f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 04:42:29 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm42861886f8f.13.2026.02.18.04.42.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 04:42:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 499158e1-0cc7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771418549; x=1772023349; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=QjsBI+rSXWKql+KkhJ7vyVH9gn95LudD4Z5hoDYety4=;
        b=fnJeXeymMI/sFA4nKCk2i9hHI1grO+JJ48iaqGsVwLFO1zd23GbHahYBftPN9nVAv8
         Eyw/9iRjpEWOHsyIfkrBHvS43X4sT06MVeU/6MP6o1JoKTIsC9IEZt759LrZGFNu/veG
         n7mPwScANEqnBgEYhpYZRd5S3WHHS2n7vr0GCl1p7hfSxDVTiEq7nbAPaBIZxhSk+4mC
         0GLz8R/srCbn0p95EUplN/WSqm/ZZiE8N0/8IffpYqNtMWvf4McI+clngHibgPzVbNEc
         fY82hvBKt8+tcz0X156noqDra1Ufy6ej8EMOAnYzNwzjWXrnbJ2+HvRXcJp7q2+RrV25
         0XJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771418549; x=1772023349;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QjsBI+rSXWKql+KkhJ7vyVH9gn95LudD4Z5hoDYety4=;
        b=SckFPwpL3yVc2PSJdCcjVcQwpZRqSCPdyPvlEprb41smT0xJEMTl3vQoSY6zq5V6CH
         p9p7XOcYTteIJLA8rwoZkmuOTJDLGq3ZOBoEUMJkhOPLkfNaChGhVGprwFdLld+jiziy
         tflueeAy2ZUpbaU6a6AhPDyv0izhQFaCDQ4GaHRM+qu2ycdqYfvrHO2kEtt+joGDnf0M
         3khRKvp8M8KsKo1wuTvXrBGzjMIlHTJ1eQShU5qRAVASAaD37nBLQf1HEiFypw51mhx6
         vrNWMSTHf0EZZ7mIcyeX3mnNwn1sZ/iuZh+1YgSJMgEQDOpo5uowPNfNv4LGHZbfF9UM
         kbIw==
X-Forwarded-Encrypted: i=1; AJvYcCURvIt0i+AUz9UFn7YQ3L/c/wO49DIRXaNl2h/kyoLoJXCD43Jwd+U1s8QBPGwrSuvDLUEGI+nykxw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSNWTTAmkF5fjvPs7pYddB4fblOP85euc1NgQTNdw4+tyBFcmd
	TgHssBCLl0IpC0nqHbqzsPuFzvxu2QRqTi8ohHEEBgKnZTv/2gmii5h1OeXQnfbsWA==
X-Gm-Gg: AZuq6aLUm33K26FfN8jm0kvfJvq9s5AB/Y13zHujWs1je4jd5kuUo7XXxs8YvlDMAwW
	sdGMh8QdehMdM5oQ+uul56X+83l99iYqU1OEC5Ax2ta/KylbD7teLZHsjqLI6NeVLmdkA96XK6b
	5E6x6NDNW13RKqUOYp5OXBi6ljPvSla9KyNkJf/2N/emnbRsyjcYG+hh6pNivtFkEpcsd4R8odB
	yWLnPEWO43ZASeBFzKsCs76D9xmGjur1WnrNhiMe8cB3ATsUGJ6JqGksI20jJ61Kqa6t7As3nKK
	NIewNskYxJUm+olKDJNC+RDIyXGp6zt76LwJfssPLR5oiaBcMVK/+7eoUfMUVrGsV6CxM4iqp5k
	U0Tu9YW1MD9Sex4+LLddObGGtSmWQyC+6UHHWy/Ob3HY3tJCK4p7BGkkQIZ/TjxCt++TARaRRqJ
	OHgDLYi/B0XY+2FAruBiWmx11On9qUKqhbO0qPfoa8rlbRACmzN+8/bjrjZBG0RL/riR93at7JO
	lXd6f7wQ1Z48u4=
X-Received: by 2002:a05:6000:1448:b0:436:8f7e:a486 with SMTP id ffacd0b85a97d-43958c0338dmr3139970f8f.11.1771418549166;
        Wed, 18 Feb 2026 04:42:29 -0800 (PST)
Message-ID: <a0ff4341-2754-404c-8b42-95747e3cb6ab@suse.com>
Date: Wed, 18 Feb 2026 13:42:27 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: don't use #if in macro invocations
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
 <60a1bc11-f9a6-48c3-b7d8-d007799fbe91@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: <60a1bc11-f9a6-48c3-b7d8-d007799fbe91@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.02.2026 12:30, Andrew Cooper wrote:
> On 18/02/2026 9:03 am, Jan Beulich wrote:
>> As per the standard this is UB, i.e. we're building on a defacto extension
>> in the compilers we use.
> 
> Is it a real extension, or just something that happens to work?

I was hoping I would not need to go through that large swath of gcc doc to
actually figure, because ...

>>  Misra C:2012 rule 20.6 disallows this altogether,
>> though.

... this I assumed was reason enough. Still, now that you forced me to: In
The C Preprocessor the behavior is described as intentional, but not as an
extension (section "Directives Within Macro Arguments"). Now you get to
judge whether that's a "real" extension or a "de-facto" one.

>> Use helper always-inline functions instead.
>>
>> In sh_audit_l1_table(), along with reducing the scope of "gfn", which now
>> isn't used anymore by the if() side of the conditional, also reduce the
>> scope of two other adjacent variables.
>>
>> For audit_magic() note that both which parameters are needed and what
>> their types are is attributed to AUDIT_FAIL() accessing variables which
>> aren't passed as arguments to it.
> 
> This is grammatically awkward.  IMO it would be clearer to say "For
> audit_magic() note that there are more parameters than might seem
> necessary, caused by the expectations of AUDIT_FAIL()." 

I've switched to using that, but one aspect is lost this way: I would have
preferred both gl1e and sl1e to be plain entries, not pointers to ones.

>> ---
>> Leaving even the fetching of current to the helper in
>> sh_rm_write_access_from_l1() looks tidier to me overall, albeit this means
>> the fetch will now occur once per present L1E.
> 
> This will not make a dent in the performance of the shadow code.
> 
>> Converting the #if to if() and #ifdef to if(IS_ENABLED()) wouldn't work
>> here, as identifiers are used which aren't available when the respective
>> conditions are false.
> 
> Personally, I'd have put this in the main commit message, because it's
> the justification for why out-of-line static inline's need to be used.

I was wondering, so I've moved this up.

>> --- a/xen/arch/x86/mm/shadow/multi.c
>> +++ b/xen/arch/x86/mm/shadow/multi.c
>> @@ -395,7 +395,7 @@ static inline mfn_t cf_check sh_next_pag
>>      shadow_set_l2e(d, sl2e, new_sl2e, sl2mfn, SH_type_fl1_shadow, sh_next_page)
>>  
>>  static inline u32
>> -guest_index(void *ptr)
>> +guest_index(const void *ptr)
>>  {
>>      return (u32)((unsigned long)ptr & ~PAGE_MASK) / sizeof(guest_l1e_t);
>>  }
> 
> While fine per say, this doesn't appear to be related to the patch?

It does, the compiler told me to: type_from_gl3e() uses it, and I really
want to keep the const-s on both of its parameters.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 12:58:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 12:58:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235540.1538499 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsh8S-0007Jk-DL; Wed, 18 Feb 2026 12:58:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235540.1538499; Wed, 18 Feb 2026 12:58: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 1vsh8S-0007Jd-Al; Wed, 18 Feb 2026 12:58:32 +0000
Received: by outflank-mailman (input) for mailman id 1235540;
 Wed, 18 Feb 2026 12:58: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=LUrD=AW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsh8R-0007JX-8x
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 12:58:31 +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 84defb78-0cc9-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 13:58:28 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-65c5a778923so2350175a12.2
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 04:58:28 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8fc766531asm449487666b.50.2026.02.18.04.58.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 04:58:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84defb78-0cc9-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771419508; x=1772024308; 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=Bx6HnJkfBgBlRcysvTwBFEeA7St4HRdRmVWd6M0rDuw=;
        b=iH7QcpMgV4U1dbX/+N40o+2MLafMEoPGoXh7FTZph9Lwkpj+6Nafd4oQVqYvZidXVz
         WhPhBE1Wd7ON6Hlwb+eZutmBb/KDjgjIByzcomcJ6uczA8XpFVlp9tt7Ot4kTt7mLpk6
         1TLmoptbv6JJ2GKWk7vq8svwEemN7LcMCZYTc6s46BuU0rqPumth8R0d2Hg3Kx0Us2l9
         iwGmF5GxzSgYyHjAzUr2vZpzAUFdR7TuO6eDmSD6HokzRRSw2MAFPZahOeBN9XOQWlr2
         bcN5i420w7ggLfUQ7NSbmla6dQVqNd/FBRlG2auBON36dZpZQghZhZN99WOgdE5nOkRs
         FBuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771419508; x=1772024308;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=Bx6HnJkfBgBlRcysvTwBFEeA7St4HRdRmVWd6M0rDuw=;
        b=N4AdlGBRIGVVKLSp3xIDbTBTakz1bD6Z0M8pDRzcn1RGUbGzLhMGjC5JPGM6Wn8tH5
         BcGrV+EKa2P/KwUT5RaNdmj4eHZBFy2SZQa0Qz7H5JPFjEH1pUnzIx1na9hJ/zsWpkfT
         M9VDpRte26BCGWT393nwbGtQRQFCpY9Ar4YBwNg6kxF8CtxVCqph8jR76vQrqrETjFVS
         +OFqUdOzuy2wPlAYi6XG1Q+Ftr3Tb7VKs2VgQ2nZKMjKdygGGQbmokyuge6R2Qx2EdWA
         wHEU3H8ZmKtKEiX6QRJUFvPLaP3SuqjMcPeq5HlkNCXUtO+0t+QQKo/R/qCe+u2xkBhk
         uPAw==
X-Forwarded-Encrypted: i=1; AJvYcCVYqamhfSieTqrZSuohNxeqDbtGElbY3GoeH+CbjUSMl2r2XD7LwpISrFIOVHdYv3eB8EuPFkNK5lo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyKlfIPiBK3Lf1gobgI5z6+TP73eCuZwDd0TZiFUPV8iYdncNcJ
	u/SZ3ZnqPqi5VbK01osDE1gofiWn3MB+HXy/rat6X2jwJwWhhFlE5XnM
X-Gm-Gg: AZuq6aJqcBdsBeNyr6ilf6SfXCtxfcmQTXmcN+PzP09oMNva4bOsHSfo1hkRxJxw1ug
	VNDzTxyDOpkO/CHl4Q7tVjVU+h/FCiIZRbKYR+eZbJHlU3Whymh3ICQMc/A4DoDNUaNpsSzW5Es
	FlDcYsG7B9IjHq90p5SxAGxxWVMMPcadCaWi3qijRSgJvIApJpQcgWsDv6qBtEWDYSbEE+8dMQt
	hRqpff3EW4kPa2Ew+OWeBVjjYakUC4U1fuDYcWC3KVdoT9aarLBTsfTGdCas2QR/sJ+NLB/ZDu7
	Yt45fltDE04FiplgMbo2EQcYth7Q/tu4hxxlhi4eVATnG1ApT7h3kUrwf18EZbdBnFyb/JWpOMG
	591jUF4I69e8vrwWraIf4Y4asNMCu/CIBoPaCqqT80GrhPc12UTRbiMCVglW62Y7YOgBDR4joCn
	+yavamxf2KkJRttrILet5S7q7YPSaz+57H0WC5oFwTRV8RnIyTAvlJKJNvaMWh5gs3zNUmVn08I
	nw=
X-Received: by 2002:a17:906:f58d:b0:b87:2780:1b29 with SMTP id a640c23a62f3a-b8fc3ca5c95mr827849766b.37.1771419507458;
        Wed, 18 Feb 2026 04:58:27 -0800 (PST)
Message-ID: <5eb4ba3b-f7b6-4cfb-ab67-60198c3f8572@gmail.com>
Date: Wed, 18 Feb 2026 13:58:25 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.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>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com>
 <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com>
 <alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop>
 <d9feffe4-c45e-4bed-bc5e-776e4547578a@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <d9feffe4-c45e-4bed-bc5e-776e4547578a@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/17/26 8:34 AM, Jan Beulich wrote:
> On 16.02.2026 19:42, Stefano Stabellini wrote:
>> On Mon, 16 Feb 2026, Jan Beulich wrote:
>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>> domain_use_host_layout() is generic enough to be moved to the
>>>> common header xen/domain.h.
>>> Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...
>>>
>>>> --- a/xen/include/xen/domain.h
>>>> +++ b/xen/include/xen/domain.h
>>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>>>>   #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>>>>   #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>>>>   
>>>> +/*
>>>> + * Is the domain using the host memory layout?
>>>> + *
>>>> + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
>>>> + * To avoid any trouble finding space, it is easier to force using the
>>>> + * host memory layout.
>>>> + *
>>>> + * The hardware domain will use the host layout regardless of
>>>> + * direct-mapped because some OS may rely on a specific address ranges
>>>> + * for the devices.
>>>> + */
>>>> +#ifndef domain_use_host_layout
>>>> +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
>>>> +                                    is_hardware_domain(d))
>>> ... is_domain_direct_mapped() isn't something that I'd like to see further
>>> proliferate in common (non-DT) code.
>> Hi Jan, we have a requirement for 1:1 mapped Dom0 (I should say hardware
>> domain) on x86 as well. In fact, we already have a working prototype,
>> although it is not suitable for upstream yet.
>>
>> In addition to the PSP use case that we discussed a few months ago,
>> where the PSP is not behind an IOMMU and therefore exchanged addresses
>> must be 1:1 mapped, we also have a new use case. We are running the full
>> Xen-based automotive stack on an Azure instance where SVM (vmentry and
>> vmexit) is available, but an IOMMU is not present. All virtual machines
>> are configured as PVH.
> Hmm. Then adjustments need making, for commentary and macro to be correct
> on x86. First and foremost none of what is there is true for PV.

As is_domain_direct_mapped() returns always false for x86, so
domain_use_host_layout macro will return incorrect value for non-hardware
domains (dom0?). And as PV domains are not auto_translated domains so are
always direct-mapped, so technically is_domain_direct_mapped() (or
domain_use_host_layout()) should return true in such case.

(I assume it is also true for every domain except HVM according to the comment
/* HVM guests are translated.  PV guests are not. */ in xc_dom_translated and
the comment above definition of XENFEAT_direct_mapped: /* ...not auto_translated
domains (x86 only) are always direct-mapped*/).

Is my understanding correct?

Then isn't that a problem of how is_domain_direct_mapped() is defined
for x86? Shouldn't it be defined like:
   #define is_domain_direct_mapped(d) (!paging_mode_translate(d) || ((d)->cdf & CDF_directmap))

Would it be better to move "!paging_mode_translate(d) || " to the definition
of domain_use_host_layout()?

Could you please explain what is wrong with the comment? Probably, except:
   * To avoid any trouble finding space, it is easier to force using the
   * host memory layout.
everything else should be true for x86.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 13:12:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 13:12:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235551.1538510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vshLh-0001aD-Hz; Wed, 18 Feb 2026 13:12:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235551.1538510; Wed, 18 Feb 2026 13:12:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vshLh-0001a6-F3; Wed, 18 Feb 2026 13:12:13 +0000
Received: by outflank-mailman (input) for mailman id 1235551;
 Wed, 18 Feb 2026 13:12: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vshLg-0001a0-DM
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 13:12:12 +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 6cd62f2e-0ccb-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 14:12:07 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-43945763558so2340625f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 05:12:07 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1b4sm39635235f8f.14.2026.02.18.05.12.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 05:12:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6cd62f2e-0ccb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771420326; x=1772025126; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jgOU8DpEqvFl+9GpN4Jie7xcZawNhYLJFYr9No6Vk7c=;
        b=KRzpr0SwDubN48f118TrsXlOhGDGHGl03TjLgfkVYl+5T9gQEWfZ+t48bVcG12Ysmc
         375lEq2RIiwCKUpmYmb/K7ieqWCuTy1OJp3n2Bu/f+aKEwTbK1eL1DDe/6y5CFwWCuN9
         jK2PGRNQeWCQmEpkqn4fauaUumApIEiZw24RkGqbzs+tam1aMaDITRQPcAWfg/XP286H
         PGri/eklJfc2JITJm7LpsqaMIwVKYWE9ov97AZ4+HhmI7aqS1RbXyfcm2jVyb9Wrah7M
         C1S0Ne7tQ4EnCmQuvntNlHTrjBLf2BkvXmn6vgoJnL2eGUPmXzQmOgj7gRedvY1s5O8c
         MVug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771420326; x=1772025126;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jgOU8DpEqvFl+9GpN4Jie7xcZawNhYLJFYr9No6Vk7c=;
        b=lSia6XyukDiOBGKidhPY8DLjrFGlCewaPPGSYgN35mknGkatc6MdR/rOUuhyRdNIIH
         yGhWUF5CbDP6vOQV17LfuM5PGkt2DMvwdgSFJwNuOkc+Fje6V0Tu33D8hnGbjTh+9I/g
         2WKiZ+1A5k3b1rVErf3pNZbmEMwsPxiE8icDWcXSDzyNd3KEObUJ+lAsndc0pcITLFMP
         RkKjjM2boO41co07UN6n+/zBNeV4fD4lH1LdX/bbKkqGUTaFQqtU8vafb9B9Ks59zrzj
         M55MBJUfKMiVRAk2Y7sWXet1pQUiOItOl0v5lsHRKDCMGOaZpy/YlUE0Cpd3sTs9m1Qx
         8cTQ==
X-Forwarded-Encrypted: i=1; AJvYcCX7cyOGxof0+Pr6Nk+fLoUXvP+te+Uvnv9vLBIcYJwSNLVVDdZdbkTdY4YhtMQ2XSqW8CNN9mfF+lI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwKRjqBHmBLsjr+ZfSO5QwF8w5AVdRgfFiw7VYxCTASwBWaKR26
	WbXyOCQeJHwia6UnCvfRZyHErhuk16ZDIpEpJ/HguiCkW6evCXky07qlZzDLCZg/GQ==
X-Gm-Gg: AZuq6aJ3pMXP8tsamR3jq3eH6QsBr0CrFkQCSqzX0H7pXsbzJBGtVgBm7dfOPapGmMI
	3xU7fdJpyJRDUGyrBJ9px7AERbIoKfAR1xuH2ablwZWR4uvTBhgv/vUHP1DDPMIuWqfWSaQwBuy
	kfi9vOYRNPHDZQP4CvuncWgixe2kTrBYloPRRpykKTO6QK9LpLl9uxhqzyVnIxlXT7Tcj0PSH1z
	dU+B4kEEL/GhRBhnim1J4iSdz4ZSfwPQLLmLfYUynrNHHnZXIgRXhEONl+6NgJouL0WLeG3jCTO
	aVN/Yq21AcBkGLfQMwyzGBkHESvXP+1SkjmJzlTj3v6nvOUcQPngtQZBjdWGpNHkU/Eh4VDPhUf
	vlDHQ5i7JCg9CF0dfB/fK+ZYt1znCZexPNzHc1n0KJ60uUTeNJmCMUBpHr3kZlA+18cZ+vCXwOW
	lcwYWkYV2ezooCggj/96pdTgk7FwHQcO9JhXzlBdpwaC1s7WxQFJ7tG6NUscOzYdawHcgRjZtqv
	v7C8OziAL2qq9I=
X-Received: by 2002:a05:6000:1a8c:b0:435:8f1b:bb32 with SMTP id ffacd0b85a97d-43796aefc5cmr34904823f8f.32.1771420326357;
        Wed, 18 Feb 2026 05:12:06 -0800 (PST)
Message-ID: <0c0061ab-acdb-4ceb-92e2-ca4e591ee741@suse.com>
Date: Wed, 18 Feb 2026 14:12:04 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.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>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com>
 <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com>
 <alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop>
 <d9feffe4-c45e-4bed-bc5e-776e4547578a@suse.com>
 <5eb4ba3b-f7b6-4cfb-ab67-60198c3f8572@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: <5eb4ba3b-f7b6-4cfb-ab67-60198c3f8572@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.02.2026 13:58, Oleksii Kurochko wrote:
> 
> On 2/17/26 8:34 AM, Jan Beulich wrote:
>> On 16.02.2026 19:42, Stefano Stabellini wrote:
>>> On Mon, 16 Feb 2026, Jan Beulich wrote:
>>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>>> domain_use_host_layout() is generic enough to be moved to the
>>>>> common header xen/domain.h.
>>>> Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...
>>>>
>>>>> --- a/xen/include/xen/domain.h
>>>>> +++ b/xen/include/xen/domain.h
>>>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>>>>>   #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>>>>>   #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>>>>>   
>>>>> +/*
>>>>> + * Is the domain using the host memory layout?
>>>>> + *
>>>>> + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
>>>>> + * To avoid any trouble finding space, it is easier to force using the
>>>>> + * host memory layout.
>>>>> + *
>>>>> + * The hardware domain will use the host layout regardless of
>>>>> + * direct-mapped because some OS may rely on a specific address ranges
>>>>> + * for the devices.
>>>>> + */
>>>>> +#ifndef domain_use_host_layout
>>>>> +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
>>>>> +                                    is_hardware_domain(d))
>>>> ... is_domain_direct_mapped() isn't something that I'd like to see further
>>>> proliferate in common (non-DT) code.
>>> Hi Jan, we have a requirement for 1:1 mapped Dom0 (I should say hardware
>>> domain) on x86 as well. In fact, we already have a working prototype,
>>> although it is not suitable for upstream yet.
>>>
>>> In addition to the PSP use case that we discussed a few months ago,
>>> where the PSP is not behind an IOMMU and therefore exchanged addresses
>>> must be 1:1 mapped, we also have a new use case. We are running the full
>>> Xen-based automotive stack on an Azure instance where SVM (vmentry and
>>> vmexit) is available, but an IOMMU is not present. All virtual machines
>>> are configured as PVH.
>> Hmm. Then adjustments need making, for commentary and macro to be correct
>> on x86. First and foremost none of what is there is true for PV.
> 
> As is_domain_direct_mapped() returns always false for x86, so
> domain_use_host_layout macro will return incorrect value for non-hardware
> domains (dom0?). And as PV domains are not auto_translated domains so are
> always direct-mapped, so technically is_domain_direct_mapped() (or
> domain_use_host_layout()) should return true in such case.

Hmm? PV domains aren't direct-mapped. Direct-map was introduced by Arm for
some special purpose (absence of IOMMU iirc).

> (I assume it is also true for every domain except HVM according to the comment
> /* HVM guests are translated.  PV guests are not. */ in xc_dom_translated and
> the comment above definition of XENFEAT_direct_mapped: /* ...not auto_translated
> domains (x86 only) are always direct-mapped*/).
> 
> Is my understanding correct?
> 
> Then isn't that a problem of how is_domain_direct_mapped() is defined
> for x86? Shouldn't it be defined like:
>    #define is_domain_direct_mapped(d) (!paging_mode_translate(d) || ((d)->cdf & CDF_directmap))
> 
> Would it be better to move "!paging_mode_translate(d) || " to the definition
> of domain_use_host_layout()?
> 
> Could you please explain what is wrong with the comment? Probably, except:
>    * To avoid any trouble finding space, it is easier to force using the
>    * host memory layout.
> everything else should be true for x86.

"The hardware domain will use ..." isn't true for PV Dom0.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 13:17:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 13:17:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235559.1538519 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vshQZ-00028h-3Q; Wed, 18 Feb 2026 13:17:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235559.1538519; Wed, 18 Feb 2026 13: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 1vshQZ-00028a-0i; Wed, 18 Feb 2026 13:17:15 +0000
Received: by outflank-mailman (input) for mailman id 1235559;
 Wed, 18 Feb 2026 13:17: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=po7z=AW=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vshQX-00028U-RG
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 13:17:13 +0000
Received: from PH0PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c107::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1fe24c06-0ccc-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 14:17:08 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA6PR03MB7615.namprd03.prod.outlook.com (2603:10b6:806:43d::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Wed, 18 Feb
 2026 13:17:04 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Wed, 18 Feb 2026
 13:17: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: 1fe24c06-0ccc-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SOTnqKgkEFECGGjok3d7br8WmCl48JKOnnyW9/mYl2TbT5yV4ga450H7I+TQ449Tw9gNMMICpjGbOQOzZNfQrlfcv8SsLzCZW7d/xgAkRQEl4F+2UMHt83vUPSpE/JNnyyyzVwDfaAHzeolYae02gnUEGABR6/8auuLPYsXnhtbOfItzEmCPAJ7DDwn/UTAD91YJ1l72r71UyVGSGRL0jfb+40vctWZInyUDrJI2YAAgSaV2lLtBSsLW6mhe8En5Xhxdrd/BtlziTW7HXeOmP/WlY4BEakkivBx0YRd7tB58CrOhbKvhjewVQSae9NI5xkQ08TykeV8OFgdsoqsWMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=UTb0daaIsHYkk70kEDJIoUYrec26MszOBa3sIZltg08=;
 b=uSQsFHUHcgHyYgHUuFWSD/Br6nXbNo8xw3M2eqIPpMINc/i5ZHEQHu/ISv9JfgNhoGXjonsZK0oeYPqsf2SC3J0HarJLR5wCyok03r/dAQKgROGv5ylVmg3tBVxxVUDvKwb21BZDdTz7g3rZED8vXHmuDLKNHQnyuoJaYKEtz93vptrtlv8vd40+HK/kvCmbOKlJ4YwhtINkSqFEzJNkOGGgix/agaRZLBjdcJJmVVT6mAUAgUinwFKLRFxN9KPF+j6YcLoD8+Ws/AQSosVn1k/Ibu/yDYXvPIJWl0DJwta3puLlw6ftdB1yJa9j7Gw48useKvos+QIJy9MMDPX0ow==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UTb0daaIsHYkk70kEDJIoUYrec26MszOBa3sIZltg08=;
 b=D0lGYZG21b5AhSvmYM6uPm8z/EMmOByHFKxS80H/E10uby/s5TMP7FTjkzTvhs5UEawE538bC/6ffziJeMk+RQSFecRgtxXibJeaxN1N2CJyjxHHjq18Nh1CWbLaX2hU/6q1hXjuIZFiNC4zdrxoS9LrragUHNDAECboRSMIg1Q=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c1da2a8e-3e15-43e1-a603-8b13e2f8e7e8@citrix.com>
Date: Wed, 18 Feb 2026 13:17:01 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH] x86/shadow: don't use #if in macro invocations
To: Jan Beulich <jbeulich@suse.com>
References: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
 <60a1bc11-f9a6-48c3-b7d8-d007799fbe91@citrix.com>
 <a0ff4341-2754-404c-8b42-95747e3cb6ab@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <a0ff4341-2754-404c-8b42-95747e3cb6ab@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0082.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::15) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA6PR03MB7615:EE_
X-MS-Office365-Filtering-Correlation-Id: 97240e93-154c-46a5-9942-08de6ef0021a
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?MEpwcVBzUG5jTkVaN2VkNzJIWnJNTXJSMEpsdG51cklYZHZTU3R3MzRTRFpW?=
 =?utf-8?B?eDZDUTZxbjdhRXpCdWFYL3FIM3FyM0R5RGowa0RYbVM1MGFINHp0SjBGdW1R?=
 =?utf-8?B?TU1JWlhJZXZVcElIMWE4RjA3R3BjczV0aVhuM1N1Q2JJd3dNRy9BeUQwSWJz?=
 =?utf-8?B?YTIzdTBSeG5mYmNhT2hUVjhEeFZBRFJ1ZWhXbUE4MjFSQ2podzVnK05iWnhV?=
 =?utf-8?B?cHJJOS9uZWZLSmtITnlpQk1JWXd1SFFKTDZjZXFQQ0RJS3FKUkplRk9tQUk0?=
 =?utf-8?B?Y3VPRjNHbnE4RzBxM2ZLcEt2a25McW1TcG9ucHpZK1hVNU5mOVVWWGVVcG5k?=
 =?utf-8?B?RGNJVDZrbHFXZStCRUVVeXd2TUU2eFBOTFJjM1BpSVNmbTlLbEtRdlljOVVM?=
 =?utf-8?B?a2ZsWmw0RXU0bHlDdE4wYnFIWVA2OWJhdkk3eFFHZnpQUmRGR25DUjVkbTJx?=
 =?utf-8?B?Z1dBeGcrNk80dnJDN0dyNWlwczNQd2VXU215K21odnJqMloxa3ppek1EY3N0?=
 =?utf-8?B?b1NSdnFIajBDWkM0WHNsbUo3aUwyREdyVExMdmt6WTZEMUsxMnFKTEhGMGdx?=
 =?utf-8?B?RnJNM3JiUFlKUTBORDl4TDFuNS95VDFHem5jYlpLZXRyOWUxaWpXSzJHMk5N?=
 =?utf-8?B?djI4NWh0WWQwRFFSTjRERUtCVjhKdWtiRVBUYytwRW5nWjBRU0JFY05BS3J3?=
 =?utf-8?B?bXFLeEJKUG10WFppMHZrY2NvczJ6ZHdnbFhKMnJNSG9aT2RxSERKV3ZldWF1?=
 =?utf-8?B?YSswazhLNWVFMmRwdVlaUTdLN253UWlKSmo1N0kxeUNJN1QxeFU4dHgrK2hk?=
 =?utf-8?B?eU5ESng0ci9QQUY0SmRORkhIVGhPQ09QQTl1RU9XZFROSGJ4eWt1aVBSdG1H?=
 =?utf-8?B?QW9sVkVCUnFlM2VVeGs0bk1VdHRQSWcvempzcGtFcC8xMmdIRy90NkQ2TC9S?=
 =?utf-8?B?azVJRVZDeGdLY2ZudU9OZEdpRWU5b0cvTS9UVEQzaWVPaFIxYjcwaWJnMk9M?=
 =?utf-8?B?ZE90QXA1UTJrMFdNVlNKSUtubGlCakdvWllqNkRZU1htVGNWc2pyQ0xBYWZp?=
 =?utf-8?B?dXpsRGFCcDI3WEhwSWgvS21XdExGb3V2UWJnVTRwSDVzQU5vditlMDhwOHNO?=
 =?utf-8?B?U2NHbmQvY21DbUFLLy9tRWlpamJBRFhNTmxCcENOemlsVDZaKzBWa0toYVgy?=
 =?utf-8?B?L3BEMXNvcGpvQ0FrS29nTG5kSmtDWFVqWjFmSlNEUkZhcFRjSWJxYm02TzFD?=
 =?utf-8?B?UGdCbUZacmxvdGl1QytmZ2Z2RmpSbEJxYjUvTkJGQlloM25admNZK1FTazYv?=
 =?utf-8?B?bTdiZFpIeEIvZzBrakZ1VGl2N0VOR0NXMEw0bUxVNEpuQlpONGpYQmtKQnh0?=
 =?utf-8?B?UGNaenBsb0o3U2g1OG8vTGJER0l3KzJHaFhzbnB4Y2M3ZnV5cW0zMk0xNzdq?=
 =?utf-8?B?cUlNZkZRWmVaQmhSSXRrZVMvZ2RMQmUzOHcvaHlycHZITnZiK2ovWjlDVjJP?=
 =?utf-8?B?QVMxS0p2MFI4a3pudEk5SVliNGJGWUJtSCtsMSs1bDBYNS90bzN6aUduZ3Yx?=
 =?utf-8?B?aEpvOW5ZZXN0M0Z0ZmdJMmZ0NXJsSXdFQ1Y0S3dReU9DQmF3NWZNcU4yWFBJ?=
 =?utf-8?B?WWVZRzVKNW1CWngzTEtCODJoN0hpVU1lbGhlQ1ZpRkxDdjVsVW5VcFFSemlM?=
 =?utf-8?B?Smg0U3lnUGw0Z3dKMmJnRFduQ25QajkzSWQ1USthM08yVTc3OGZ3Y2x6cUQ2?=
 =?utf-8?B?eUtGczRKSFk1SXVvMFF4UjlSOWJHU2lOemxPUWd2c3JYTDRUUE54dTgrWUNQ?=
 =?utf-8?B?WEJWd1cxUDhrb1EzZFFZbE94a2lOU1ZjTUFSWTQxUC9vOGN1S2tIQ0JHN1Rz?=
 =?utf-8?B?TkVZVjNoSDlPdGZ6USttV3RqNXFsbU1vcXk2eW5JOVU4bzR2VFZpTDJDUlM0?=
 =?utf-8?B?ZUZLeVBNaXNRQkhhd0E5UVVjR1JoNVFNUFlGUEphY0VxNU1udjVhd0dYS0h5?=
 =?utf-8?B?VVpNeGQ0eFVTbVlleVQzTkdEWW9aeU1ZeTgwNDRSS2UvcVlmUy9XZDNxVU1s?=
 =?utf-8?B?bWlyQjdlQ2pUMTZrRlgvNmphaXlUZjUvbUlIS3RXZ1VUVDE5cHpFK3F6MHJQ?=
 =?utf-8?Q?93tg=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cmIxcFBJWlZ0MnhVVERiVGVGc0RJTmFKSHF1M0U3L2xZVGc3eUUzeXhrNnB6?=
 =?utf-8?B?NGJoak8vcmlBdGNIYjgyVlByUDZXd2ZmN2Y4VExNelBtalUzblVaK2xYVURK?=
 =?utf-8?B?Z0tuTmdtbFpwVFlKQ1BwdVpGbXlWcTdKd1hpdlpXUGVBRGxVMUJsSkRHT2Ri?=
 =?utf-8?B?UWUweG04NlJtYXBsREErYi9RYjVZL2hQcjJHZE1obVpUUjk5RlNrNjl6Nkxu?=
 =?utf-8?B?VzRCYnJleFlwUkpJS3hIKzN2Z3pvK2YvdVVGR2pnK2NZN1lERjExZVZVR2pn?=
 =?utf-8?B?eW1DUittM2ZFQzZkVFpNSFFqR2VDVnkzMGh1THl0UGVuRWtXUlBzOXVUL09M?=
 =?utf-8?B?ZHBzbzBpNjZnRDhONzA3UnQ3VExhRVVmaVl4amdZZEthQzc4aDFkMUdTRW5z?=
 =?utf-8?B?MGU1U0VqWWlkV3dRSWlaY0F1ZHV2OU5CenVKRVFrZ2JCYnVqZzdmUDQyR2Z0?=
 =?utf-8?B?cFJNdEdlaDF3S1owd0FPendDRkxVenllYTA1b3NsSUxwR1RjalAvV09Eekpj?=
 =?utf-8?B?WUEzVmhoV0hhZ1Vxc3JJSzdWQTRQWEFZVWFDMEs2LzdOcTJ6OG9uSzNKK2U4?=
 =?utf-8?B?cjNTQWx4YmxHaHVBOWNWd1ExVWFia1ZzRFczT2hnQTloMkZkOTJiYkFqM3pR?=
 =?utf-8?B?bVg4OW9WWkw4WEZvSUpDOWFYS0c3ZTNIOWRubVI4MlRmWTJ0TS9yak0rTlVt?=
 =?utf-8?B?UzBzbnpsc2dhTGJqS09yU1ZQaW5LSytkQXZOZjBiSmtXSU9LRE9najZBVlVn?=
 =?utf-8?B?b0hIczZyUGFuTFZuWEJQSHlSclFrcVBXaXhEMExRVkNGcHhOOWQwQWxlRENZ?=
 =?utf-8?B?Tm9qMlBnSHozRWlmTndseUtvT1pkWDRlTGNXcEU1Vnd6UTlOOXQ2NTZwd1JS?=
 =?utf-8?B?WkJMSS9JKzVDb29JeFRLd0J5RjIzaDBGZWJGYTh6L2dKRk84M1NYTldOMm1v?=
 =?utf-8?B?azlEWEp6b2oraS82bkh0K21HR093YURRa2RMS0Y3dFJVOC9MbGNvMElRa0NF?=
 =?utf-8?B?djY5Kzdrdk9NcmhSeGdtUzRPRDNCdDNsMnZGbEpwazFUZXhQekttM082TGhU?=
 =?utf-8?B?L3lmWGlQelVkZTFMQkdxQzlpSTRBaE9hTzh6MkM1bFplanpmQlVnTHlobVp0?=
 =?utf-8?B?SEIxaWREbUNCa1RzUHUzNVJBeVhUdVB4ckZ1QldmZnY5Ykh6clkwSzBtQ0FZ?=
 =?utf-8?B?TVR1a3Jnc3ljM3AycnIvQTdGQStXU1VnZ1pQVHZFRC9HRnlvQ3NzY3BHUFRI?=
 =?utf-8?B?Szk5cWN0dWJ4TG8yVnd5K1VhdGtzOFlmVzVZY1REY2dyN09RK2lNdVZvL0tv?=
 =?utf-8?B?TG13VUVzT0tSUjRZRjFRc3ZsUUNFNG9RUXo3UlR0NlY3U2lpOXhESzFpNEdm?=
 =?utf-8?B?SGFETnI1SzlnMms5NExsdFNZYW5aZVNPRUJna1U2SWxwYUNvajZpTUY1Mlow?=
 =?utf-8?B?SHFIK2ovclFsckIyRVNaR05EeGZGT0RUSjZ1ZnB5NUQ1MEhmMitkMVhrNWRD?=
 =?utf-8?B?MHV2d1U2Ry8wSk1zWm5lMkNvN2E2bFFTY3JkcFJsa2dZZUdWNWJhL0srQ3Ay?=
 =?utf-8?B?MHF4b09URnpSQUgzUVo1dEIrQUxiRm5LNW1tY3l2Snp0KytDWG41blFBRXBl?=
 =?utf-8?B?eDYzbkU3dnExODkyU2grUS9mQlk2WklEMnFFMXZjb1ppSGg2M1paU3QvWDY5?=
 =?utf-8?B?ekZ5MTBBemQvOXk4eGZBUUNkcjBGUEJrekVOTElEQUFNaXlxRGE5MS9EUHpz?=
 =?utf-8?B?K2dsZXhNaEl6NXEzZCtQMEVxK0dKeGlMZTdzY0RsK01OdDRFQzNHTUNUL2Nx?=
 =?utf-8?B?ckxqRzU1aE9Cci8vNWcvK1dVZVFKRUZZNlcxWU1WaC9DT1JJeXdKVWU1MXJK?=
 =?utf-8?B?R3RseDdTeTFqZTBvaUh4aHBSblA4QzZoRzgvTkdYY1RtY3RkTFgwWWVxUXBB?=
 =?utf-8?B?eXNnam9Ycmg3OTIzNFc3cTNKZUFiTHBTS3Q4c3hoYm8rTGFwMkEwRHVneTUv?=
 =?utf-8?B?QUxVK1c1R0VTRS94NnJGSDJFU3p2UkdCNTZYZnA0MFJTcmwvb1JuUXlQMm1Q?=
 =?utf-8?B?V0VHSjlZTkxxMVlKcUNZZjlWT3dtYVI2S1FSbDVHMFNuTWVZNmtWZ3U1TXpV?=
 =?utf-8?B?OHBEQ2Y4Rmg0Q0EyTEtMNDJGWHZ2aEExTEJTT1ZuSVJJUmtrR1ViOCtMS01V?=
 =?utf-8?B?VThrNU1ZdmVmL3VGMHpkZUxrdXozQ0lNU2NUNVMvL1lsbS8weUZ0U0NtSmxQ?=
 =?utf-8?B?N2dKZXIyeHFCUUJzaHR3bkhrZFYrVkdPU2tHaWFwZm05QjRUZUE5aW45dW5v?=
 =?utf-8?B?NDRQWGVXM0lVWTNUTGNkQ3QxMDJQdmp5bFU3WksyMzgxeVh2TGVOdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 97240e93-154c-46a5-9942-08de6ef0021a
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 13:17:04.0432
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: OrzbzcZGMTW9aJeqmE66xFSGcgNaAQWjs7McsdMRrnFvd7CQ1GziGw6NQwdOl3VfHw9PbpHPkgFsMKvmd7IyLhX+Iv0DWHgKkQlbReo6bKE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7615

On 18/02/2026 12:42 pm, Jan Beulich wrote:
> On 18.02.2026 12:30, Andrew Cooper wrote:
>> On 18/02/2026 9:03 am, Jan Beulich wrote:
>>> As per the standard this is UB, i.e. we're building on a defacto extension
>>> in the compilers we use.
>> Is it a real extension, or just something that happens to work?
> I was hoping I would not need to go through that large swath of gcc doc to
> actually figure, because ...
>
>>>  Misra C:2012 rule 20.6 disallows this altogether,
>>> though.
> ... this I assumed was reason enough. Still, now that you forced me to: In
> The C Preprocessor the behavior is described as intentional, but not as an
> extension (section "Directives Within Macro Arguments"). Now you get to
> judge whether that's a "real" extension or a "de-facto" one.

Sorry - all I was trying to do was judge whether it was fair to call it
UB like this or not.

The MISRA complaint alone is fine justification for the patch.

Given this, I'd suggest dropping "defacto" as the easiest way of making
this a little more precise.

>
>>> Use helper always-inline functions instead.
>>>
>>> In sh_audit_l1_table(), along with reducing the scope of "gfn", which now
>>> isn't used anymore by the if() side of the conditional, also reduce the
>>> scope of two other adjacent variables.
>>>
>>> For audit_magic() note that both which parameters are needed and what
>>> their types are is attributed to AUDIT_FAIL() accessing variables which
>>> aren't passed as arguments to it.
>> This is grammatically awkward.  IMO it would be clearer to say "For
>> audit_magic() note that there are more parameters than might seem
>> necessary, caused by the expectations of AUDIT_FAIL()." 
> I've switched to using that, but one aspect is lost this way: I would have
> preferred both gl1e and sl1e to be plain entries, not pointers to ones.
>
>>> ---
>>> Leaving even the fetching of current to the helper in
>>> sh_rm_write_access_from_l1() looks tidier to me overall, albeit this means
>>> the fetch will now occur once per present L1E.
>> This will not make a dent in the performance of the shadow code.
>>
>>> Converting the #if to if() and #ifdef to if(IS_ENABLED()) wouldn't work
>>> here, as identifiers are used which aren't available when the respective
>>> conditions are false.
>> Personally, I'd have put this in the main commit message, because it's
>> the justification for why out-of-line static inline's need to be used.
> I was wondering, so I've moved this up.
>
>>> --- a/xen/arch/x86/mm/shadow/multi.c
>>> +++ b/xen/arch/x86/mm/shadow/multi.c
>>> @@ -395,7 +395,7 @@ static inline mfn_t cf_check sh_next_pag
>>>      shadow_set_l2e(d, sl2e, new_sl2e, sl2mfn, SH_type_fl1_shadow, sh_next_page)
>>>  
>>>  static inline u32
>>> -guest_index(void *ptr)
>>> +guest_index(const void *ptr)
>>>  {
>>>      return (u32)((unsigned long)ptr & ~PAGE_MASK) / sizeof(guest_l1e_t);
>>>  }
>> While fine per say, this doesn't appear to be related to the patch?
> It does, the compiler told me to: type_from_gl3e() uses it, and I really
> want to keep the const-s on both of its parameters.

Oh of course.  I'd gone looking explicitly, and failed to spot it.

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 14:11:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 14:11:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235585.1538529 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiHD-0001HS-1X; Wed, 18 Feb 2026 14:11:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235585.1538529; Wed, 18 Feb 2026 14:11: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 1vsiHC-0001HL-V1; Wed, 18 Feb 2026 14:11:38 +0000
Received: by outflank-mailman (input) for mailman id 1235585;
 Wed, 18 Feb 2026 14:11: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=oIww=AW=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vsiHC-0001HF-Fm
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 14:11:38 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b9ae9775-0cd3-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 15:11:32 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 2DD614146E2B;
 Wed, 18 Feb 2026 09:11:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b9ae9775-0cd3-11f1-9ccf-f158ae23cfc8
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	teddy.astie@vates.tech,
	jbeulich@suse.com,
	jason.andryuk@amd.com
Subject: Re: Re: Re: Re: [PATCH v3 2/2] x86/svm: Use the virtual NMI when available
Date: Wed, 18 Feb 2026 14:10:48 +0000
Message-ID: <20260218141125.15807-1-abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <4fa87ec0-8daf-4c62-bf34-56b23cf06531@citrix.com>
References: <4fa87ec0-8daf-4c62-bf34-56b23cf06531@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

On 16/02/2026 10:39 pm, Andrew Cooper wrote:
>On 16/02/2026 4:10 pm, Abdelkareem Abdelsaamad wrote:
>> On 16/02/2026 10:15 am, Andrew Cooper wrote:
>>> So what happens to the NMI we're trying to inject when NMIs are
>>> currently blocked?
>> Ah, I see this...
>> The handling flow will eventually land on the function svm_enable_intr_window
>> with HVM_INTR_SHADOW_NMI.

>What happens is that you drop the NMI on the floor and discard it.  Note
>how svm_inject_nmi() has no return value, and therefore must not fail.

>It is buggy to check the blocked bit when injecting using this
>mechanism.  The blocked bit roughly equates to "NMI in progress" in the
>guest, and it is explicitly possible to queue another NMI while the
>first is in progress.

>Both pending and masked being set roughly means "One NMI in progress,
>and one queued", which is a perfectly fine state to be in.

Right, Actually, I see the changes in the svm_get_interrupt_shadow and the
svm_enable_intr_window functions are not correct. There should not be changes
in the two functions. The vNMI handling for multiple\concurrent NMIs should
first set the vnmi_pending bit for the first NMI. The subsequent NMI should
either see the vnmi_pending bit is still set, in which case, it should be just
dropped, i.e, do nothing or it can see the vnmi_pending is cleared in which
case the current vNMI might be is in progress or might be completed but the
code should safely not consider the NMI as blocked, if the vnmi_blocking is
set.

The confusion, I had, is due to looking at the KVM codebase. The upstream
commit fa4c027a7956 ("KVM: x86: Add support for SVM's Virtual NMI") [1]
that was later fixed with the fixing upstream commit
b2ce89978889 ("KVM: SVM: vNMI pending bit is V_NMI_PENDING_MASK not V_NMI_BLOCKING_MASK")
[2].

--Abdelkareem

[1]https://lore.kernel.org/r/20230227084016.3368-11-santosh.shukla@amd.com
[2]https://lore.kernel.org/r/be4ca192eb0c1e69a210db3009ca984e6a54ae69.1684495380.git.maciej.szmigiero@oracle.com


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 14:22:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 14:22:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235613.1538540 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiRT-0002w1-0A; Wed, 18 Feb 2026 14:22:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235613.1538540; Wed, 18 Feb 2026 14:22:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiRS-0002vt-Sa; Wed, 18 Feb 2026 14:22:14 +0000
Received: by outflank-mailman (input) for mailman id 1235613;
 Wed, 18 Feb 2026 14:22: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=nwpa=AW=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vsiRR-0002vm-H8
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 14:22:13 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2e578e02-0cd5-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 15:21:59 +0100 (CET)
Received: from PH8P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:345::9)
 by IA1PR12MB7759.namprd12.prod.outlook.com (2603:10b6:208:420::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.13; Wed, 18 Feb
 2026 14:21:53 +0000
Received: from CY4PEPF0000E9D8.namprd05.prod.outlook.com
 (2603:10b6:510:345:cafe::ff) by PH8P220CA0001.outlook.office365.com
 (2603:10b6:510:345::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.15 via Frontend Transport; Wed,
 18 Feb 2026 14:21:53 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9D8.mail.protection.outlook.com (10.167.241.71) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 14:21:52 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 18 Feb
 2026 08:21:51 -0600
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, 18 Feb
 2026 08:21:51 -0600
Received: from [172.17.121.74] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 18 Feb 2026 08:21:50 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e578e02-0cd5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=MO/exAmA3sCpidrzd0quy3lj6/rO41qvTcUCpjnQim99Jx2d2S01eNI64O/vQ8J5FnbyK4/pqReufznzs5D/FbBZVvXQvCQMiM6pj/8QiJ5K0i8VbIlaDRmHlSSAQSs3HcVKlTcsY/CEJxLAcIikZzSEmtUlFIvHJtT8GrV5G0gwT2OwDBlstR5tTvPKD912woJakT1tGjDW5aQ7XX2aJGZPPPwsas2AYgqfPYCIt53LJ0SrlaKY0ovSI28wCQzVj+qK6HRceAxOzNA25pBB9ldTDP2aBhbGvqLGKugnKzMuHlPt/v1RcCcSThbg9rlp+yyTyTzG1cVH25BOVaVN4g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IBmJZqieVx4eMrchRuss9RQRotrVE45CAjOb7dQZ7to=;
 b=RVmLs2Rh/qIz+dnTxO/y+LAM1xRR89bJswvN6Hgb63VVCyP2SpuuYevk8V5v1m2RlwWpw0Lxj8UazkUT12aaXki4DglrcwLx0pOHJRdIuwK7pEV680RLXyvv8QTHevaFqPkxK0K/Y+M9FSNVRGiJCpn7JkVhXEwvFL0YiO8cIeSEj2JIVHMWR4bhutSL6G2NQE4aF9NAYFdNKC10HG4qR3Hig9PHLZxbi16+1ZfcXCLzYgCHH/ghlGPLdHTXdgkDL8o9cyjILu61ZCHrNRdTQCU5gsQSciXVpna/E11ONCHeViMlq3qWUKaMQu3L4K3abGtTmPgZrltwBHPMJlylNA==
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=IBmJZqieVx4eMrchRuss9RQRotrVE45CAjOb7dQZ7to=;
 b=UGw8WyxUDPnWhFg9gn4mXmtPGHYMiISKPHq1uJgIB8luqP2+GQDibA0kS1mcNIrQqgx/aOFsyFiGCUu6z0dfq4yNPcio7v1/CLrRY8c2YyYaElJtnafBXCvOsu9uWSHgnuHGiD14FGfLM51jq8o9ooFgEpcaOHntNmSj+2A1e9w=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <f91e0f7e-9afe-40bd-8e44-4aadbdf8e4b0@amd.com>
Date: Wed, 18 Feb 2026 09:21:48 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: fix unmapped access trapping on GICv2 hardware
To: <xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>, Michal Orzel
	<michal.orzel@amd.com>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20260205190128.38716-1-stewart.hildebrand@amd.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <20260205190128.38716-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D8:EE_|IA1PR12MB7759:EE_
X-MS-Office365-Filtering-Correlation-Id: 1f5b78c0-afb2-4a54-b438-08de6ef90fa7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?Vk5OMjUwbmo3K2dnY1ZTcTQxeURiRUtZWXVpaGxtVy85YmxndTMycTJTekRl?=
 =?utf-8?B?L0ZHSE0wSGVKZUNWUUowdWhBcWZMcW1iQXZzWGtacXRVV3orQlIwNTRWYUhG?=
 =?utf-8?B?ZlZWWm1lNzY3a2lsTXJuZ0NYOHI5TjVCTWFBSlpBQmI0Y1hodjFQL2crY3pM?=
 =?utf-8?B?ZUZuTHFOejBRRVM4dEVDeFM2V2NSSEw1dWZKY1krb3o5bndZU0hMdlUzZVRa?=
 =?utf-8?B?NForNjhmM0V0ZWE1VEV4NHdnNHlFZTQxRkxjWFVmbmZ5MXFRNTJpTlJmWW5n?=
 =?utf-8?B?ejh6LzVtMXF5clRzVTdtaUZ0UFZFa0xUMFpDTFNEMVR0bCtJQ0NjOUJGUktX?=
 =?utf-8?B?M3NjZHRYMG54RGtIRjR3U2w0Yy9jZmY3eHR3NDF6WWd0aFc0WEhsTUxHR2pw?=
 =?utf-8?B?NUEva2R0MlJtTzZKLzlVK1Q3WTIyS0tRaFVJek42OEV4NmpudVJLc1ZPd2hm?=
 =?utf-8?B?WmM3bHBSS2FQekp1UThWbEUyaXJIa0cvdmdiaXo0TERvRiszVDJYRjM1ZVRm?=
 =?utf-8?B?bDlvaGdETU5jTFk5a3JxUS93QW9CZklweFNYY3MwQkFvaUhPNmNZNmFwcnV5?=
 =?utf-8?B?SkRFSG10UkppVGxJRU5RNmowS3lOWXNiWlNJV2ZMSXhnNU5EaGpIMXQvMUxH?=
 =?utf-8?B?M0x0empndG92RklNMWRqS05aSU51V3I4alVjMkR3UmNENmxOKythbkZGNE95?=
 =?utf-8?B?RFVKVUZSQVdkcytXUGdCaGNHSG0xa05ud0tLeVJRbW84dUJLQk1RczlVUzFu?=
 =?utf-8?B?dVlPdzdxK2Y1ZXBJMXVjbWt3ejd0eHR6Y2hvZy9XbkVpeVBhZXNVZk9OZkVF?=
 =?utf-8?B?ZUd0Q1J0NXZaUmdvY3B0cG40VGFiZUdsWnQxWHUzTzZZeW0xOTdyOUxsUjZC?=
 =?utf-8?B?dm0vSzhjKzk5WFJ1Tkg3WTFXbUlYOGlsdTFkUG81c3FHN1Y5aUY1SEJ5blBG?=
 =?utf-8?B?dFg5TTN4Q253SWRaeGtXQVFKOWRMaDFlUjJPRzFJZFNyRTZlenlzc3FaSGxq?=
 =?utf-8?B?YXkrbEd6ekhaQ3JrUHhSSkxDYmVRQVhKSGZOZk1TYU5GZU81UFBoYnhmVExs?=
 =?utf-8?B?T3Y5aGpvaEZ0NVhoODlYNGVJdGNaZCtKZ1NIQjZ2WXJhR1ZKeDYxaTJLTHcz?=
 =?utf-8?B?d3BpRkVBOGp0ajZTVS9BUEhUL2huTmJWZElJL05iK041TXdsSS9Id1pqUFBY?=
 =?utf-8?B?YkRBL1M5OStxRXgzN1JCbVFNQ3IweXpmQ2RHUllXb08vbk94cEV3dmRISWVz?=
 =?utf-8?B?VWZCSWwxQ1AyRTE0T2dIUlZFcnFkK1VJVFR1TmdpQTE5U21TZnJVM3pmWEFT?=
 =?utf-8?B?aFRjbTh5L21jRUZzamhGa28xaURwM0gzTUpHbFZ6ZmpiSTNVQjhabFYxaFhL?=
 =?utf-8?B?dFZmK3JHMGFxSFNXMWpzekU5eTlqVXp6bTlaM0hPNzVsY3NkNWplQUw5R0Vi?=
 =?utf-8?B?c2o0Ukt0ZVdZU01sMmZxaVhYeXRrMXVucEtvbUI5a2RSdXhTSDN5QXhkWG52?=
 =?utf-8?B?YlppM3hUR3RLVTlHK3J5K2hpYjV6OGpjdzNGV0VmVUJnTGIzV0x5NXRYZzRO?=
 =?utf-8?B?YVJqZ1NNbWJIeGI3RXphYU9OY2NDaDNITjczK2gzbURtTU85Slp1YmYwWjZ6?=
 =?utf-8?B?Z1pMdzExSEtVTnUrNG1hcTZ6cXRhdWlLOUNRL2JmcHdVWXhENlNoRExacTZa?=
 =?utf-8?B?dndxWm1OY1dyRWhDM3VlM05reWhvNHhyRFFPdkxPd0M0WGZiK1hBdmQ5UUlT?=
 =?utf-8?B?aTI0aEp3WXN1TTJNZFdSMm9JUVhXTWd3Lzg3NHRvRW10WXZMK3lGS2Y4Mm5a?=
 =?utf-8?B?bk5KdEwzQmZTaTlSL0xnUzc3MHl4WkJ6R282Z2UrbG5Jcm5kbThNYSt2eTh3?=
 =?utf-8?B?d092eDQxSUxKYjdvdzQxYTBTQk1taEZoSkxwWWc4bGNBTm54dzlSajZ2M243?=
 =?utf-8?B?Z0hhT1BRZWh4TXNuR1EwS01qMDEzVEwvN0s1YmtydnhZRnpvS3VVcW01RlJa?=
 =?utf-8?B?a0Z0Umw4a0cxVm1GVkg5Rjg4d2FBTXZ6US9JZjJjcUs2d2R3NytZUWlQZCs2?=
 =?utf-8?B?Wkt6clJiUzdwby9VOXd4VC8zMEdXRlpLcjF1YnQ2ekZRZlEvR1UreHdUL240?=
 =?utf-8?B?QVlqdUNmWGcxNVUwYm8rNVdCMGNIRXIrOUV5V1hObjI1a1RZOGhIZkt1RnRW?=
 =?utf-8?B?MDJtUGNFdVNBa0M4dnJSdFNJZVFWSlN1TUxoUjNvWnBUbnp0K3g4SFU0YllK?=
 =?utf-8?B?dWlWYmF1YzRtNlFCbkM3dHA2MmR3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ORJzmuy4Mwt2PKkdxNXJEkXSG8C8UFb7Q1Obdcque6S12nJFR0Tvnd2vLKDiVMiyOd49Baj9bhgLx7NZ0RwabT6WCWxJjoIcXdSZucxgr7Bv2DE4ZuSnaUnh2Ror6Y5m22HlYyfmyEO7wI+GSIc70XKKl4q6FDgtVUaKElzjPB0j9kcsiSZiGzDBctI/rgfMHELAi+6yO1i5vzbuMHzUe0iUSVhQYRvTDb8eOv9EGmyLdg1uIUrJqg/oDFrLWo7buVMqzD435GIza3S++89Uhag1DNtNhzU4mTqC+WUDQf3Ht6SwMzsp7v+o03CL276NC9/+fY0WbuCb6XSzrg8de2bILGRbDVudeLT1+bfZgwiZnmTP7TyS/1Gw567lWLeJS9A2V0t1hqqQAgCHgz7uux3K6UYqwSqS7shuImfjoJOWuK6PTHPlinMnuJFe99hY
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 14:21:52.0862
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1f5b78c0-afb2-4a54-b438-08de6ef90fa7
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D8.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7759

Gentle ping.

To be clear, domU interrupts with vGICv2 are currently broken when
XEN_DOMCTL_CDF_trap_unmapped_accesses is not set.

On 2/5/26 14:01, Stewart Hildebrand wrote:
> Since 4dbcb0653621, the vGICv2 CPU interface is mapped in a deferred
> manner. On domains with XEN_DOMCTL_CDF_trap_unmapped_accesses unset on
> GICv2 hardware, the vGICv2 CPU interface fails to be mapped. A visible
> symptom is that a domU gets stuck at:
> 
>   [    0.177983] smp: Bringing up secondary CPUs ...
> 
> Move the 2nd check_p2m earlier so it's prioritized over try_handle_mmio.
> 
> Fixes: 980aff4e8fcd ("xen/arm: Add way to disable traps on accesses to unmapped addresses")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> This should be backported to 4.21.
> 
> Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2010469665
> ---
>  xen/arch/arm/traps.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 040c0f2e0db1..0c01f37ad6b4 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -1915,6 +1915,14 @@ static void do_trap_stage2_abort_guest(struct cpu_user_regs *regs,
>          if ( info.dabt_instr.state == INSTR_ERROR )
>              goto inject_abt;
>  
> +        /*
> +         * If the instruction syndrome was invalid, then we already checked if
> +         * this was due to a P2M fault. So no point to check again as the result
> +         * will be the same.
> +         */
> +        if ( (info.dabt_instr.state == INSTR_VALID) && check_p2m(is_data, gpa) )
> +            return;
> +
>          state = try_handle_mmio(regs, &info);
>  
>          switch ( state )
> @@ -1939,14 +1947,6 @@ static void do_trap_stage2_abort_guest(struct cpu_user_regs *regs,
>                  break;
>          }
>  
> -        /*
> -         * If the instruction syndrome was invalid, then we already checked if
> -         * this was due to a P2M fault. So no point to check again as the result
> -         * will be the same.
> -         */
> -        if ( (info.dabt_instr.state == INSTR_VALID) && check_p2m(is_data, gpa) )
> -            return;
> -
>          break;
>      }
>      default:



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 14:33:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 14:33:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235630.1538552 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsicg-0004bx-FG; Wed, 18 Feb 2026 14:33:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235630.1538552; Wed, 18 Feb 2026 14:33: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 1vsicg-0004bq-CN; Wed, 18 Feb 2026 14:33:50 +0000
Received: by outflank-mailman (input) for mailman id 1235630;
 Wed, 18 Feb 2026 14:33: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=LfGN=AW=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vsicf-0004bk-Qk
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 14:33: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 d28bc651-0cd6-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 15:33:43 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771425207254478.0252896232721;
 Wed, 18 Feb 2026 06:33:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d28bc651-0cd6-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771425210; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Mt8NjpYdVvVbqSowi6i8dG+8QRvhPPCbTvilU5Ww+VM/luTMeDypAJH+Lvs6xcPe5M75IZKQ5yVwCe9pm1NbpX2RuQhmLJ+5k3gnkuk7yk7bI6EfKwjcQ7lNUA41XZzKKI0m6hE8MVzYtEMC9js9Uv6/jx4N+gNhqsJdRMTqfxA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771425210; 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=ZJveh3Bcm2/0NjwL5by88BzuPoySivzwVr45jGAQkOQ=; 
	b=dk3XXqYEHyg2Thxi7fTqt1tveMYbBsT9wUdpQogmBp+LmcL0f0F1jrV2EB3IpH/H1rkHiPlyhN46TnPjgOn53l1TujI9N59T1Pnk4rKQ8+FEXKGw2fHKJ3AHbJyWCM69ZwA1CzBwPjTVg1psBWJWflbJler0O/nXAi1lmbFZ6aE=
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=1771425210;
	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=ZJveh3Bcm2/0NjwL5by88BzuPoySivzwVr45jGAQkOQ=;
	b=IAc+x+jP8ATYP9SqWc1QHrVAc2+HPILy9o7nNHXGhaKU3nX+JlRgkDUEImmOM7Qs
	1uEJCcwZGipvMXWbxTYOTBnfo1UWN/3zdVEAVRTVU/OEiCk7DtilAhgmeqPWhOxFlLJ
	g9xfMWOTyEBRhp8QiuDvMI2lgZC9tmA/Rwau0nzw=
Message-ID: <ff62ece8-a7f3-4490-967c-e9e8283dcd9d@apertussolutions.com>
Date: Wed, 18 Feb 2026 09:33:25 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] common/domctl: xsm update for get_domain_state access
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.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: <20260216215748.20398-1-dpsmith@apertussolutions.com>
 <1a1d8db1-d553-470a-8678-b879385b2fec@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: <1a1d8db1-d553-470a-8678-b879385b2fec@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/17/26 04:34, Jan Beulich wrote:
> On 16.02.2026 22:57, Daniel P. Smith wrote:
>> When using XSM Flask, passing DOMIND_INVALID will result in a NULL pointer
> 
> Nit: DOMID_INVALID
>

ack.


>> reference from the passing of NULL as the target domain to
>> xsm_get_domain_state(). Simply not invoking xsm_get_domain_state() when the
>> target domain is NULL opens the opportunity to circumvent the XSM
>> get_domain_state access check. This is due to the fact that the call to
>> xsm_domctl() for get_domain_state op is a no-op check, deferring to
>> xsm_get_domain_state().
>>
>> Modify the helper get_domain_state() to ensure the requesting domain has
>> get_domain_state access for the target domain, whether the target domain is
>> explicitly set or implicitly determined with a domain state search. In the case
>> of access not being allowed for a domain found during an implicit search, the
>> search will continue to the next domain whose state has changed.
>>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> Reported-by: Chris Rogers <rogersc@ainfosec.com>
>> Fixes: 3ad3df1bd0aa ("xen: add new domctl get_domain_state")
> 
> Nit: Fixes: first (or at least ahead of S-o-b) and other tags chronologically
> ordered, please.
> 
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>>   int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>                        domid_t *domid)
>>   {
>> -    unsigned int dom;
>> +    unsigned int dom = 0;
>>       int rc = -ENOENT;
>>       struct domain *hdl;
>>   
>> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>   
>>       if ( d )
>>       {
>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>> +        if ( rc )
>> +            return rc;
>> +
>>           set_domain_state_info(info, d);
>>   
>>           return 0;
>> @@ -238,10 +242,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>   
>>       while ( dom_state_changed )
>>       {
>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom);
>>           if ( dom >= DOMID_FIRST_RESERVED )
>>               break;
>> -        if ( test_and_clear_bit(dom, dom_state_changed) )
>> +        if ( test_bit(dom, dom_state_changed) )
>>           {
>>               *domid = dom;
> 
> This is problematic wrt other work (already talked about in the distant past,
> but sadly only making little progress) towards trying to pull some of the
> sub-ops out of the domctl-locked region. This subop is one of the prime
> candidates, yet only if the test_and_clear_bit() remains here.
> 

Okay, but we can't be clearing the bit if the src domain doesn't have 
access. When considering that xsm_domctl() does a no-op check for 
XEN_DOMCTL_get_domain_state, deferring to xsm_get_domain_state(), then 
any domain could invoke the OP with DOMID_INVALID and clear the bit 
before access is checked.

If you want to ensure atomic operations on the bit field, while I am not 
a fan of this, a combination with set_bit() could be done. Let the 
test_and_clear_bit() remain and then if access check fails, use 
set_bit() to put it back. Would that be sufficient for your objective?

>> @@ -249,6 +253,15 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>   
>>               if ( d )
>>               {
>> +                rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>> +                if ( rc )
>> +                {
>> +                    rcu_unlock_domain(d);
>> +                    rc = -ENOENT;
> 
> As you don't otherwise use xsm_get_domain_state()'s return value, the need
> for this assignment can be eliminated by putting the function call straight
> in the if(). Then again, to address the remark above, overall code structure
> will need to change quite a bit anyway (so the remark here may be moot).
> 

I can drop the use of rc here and inline it.

>> +                    dom++;
> 
> It may be nice to eliminate the need to have this in two places (here and ...
> 
>> +                    continue;
>> +                }
>> +
>>                   set_domain_state_info(info, d);
>>   
>>                   rcu_unlock_domain(d);
>> @@ -256,10 +269,13 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>               else
>>                   memset(info, 0, sizeof(*info));
>>   
>> +            clear_bit(dom, dom_state_changed);
>>               rc = 0;
>>   
>>               break;
>>           }
>> +
>> +        dom++;
>>       }
> 
> ... here), by having the variable's initializer be -1 and then using dom + 1
> in the find_next_bit() invocation.

If you want this way, then there are two options, make dom no longer 
unsigned or be willing to allow unsigned int overflow. If we go with the 
former, If you agree, I would leave it as an int as that should cover 
the range of valid domids.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 14:38:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 14:38:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235639.1538563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsih4-0005Dq-VU; Wed, 18 Feb 2026 14:38:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235639.1538563; Wed, 18 Feb 2026 14:38: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 1vsih4-0005Dj-Sg; Wed, 18 Feb 2026 14:38:22 +0000
Received: by outflank-mailman (input) for mailman id 1235639;
 Wed, 18 Feb 2026 14: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=LUrD=AW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsih4-0005Dd-BF
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 14:38:22 +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 78935b69-0cd7-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 15:38:20 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48336a6e932so33093645e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 06:38:20 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483970d447fsm38675575e9.0.2026.02.18.06.38.19
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 06:38:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78935b69-0cd7-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771425500; x=1772030300; 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=VFEph0G2gYZCHP73LMQnpBs2z3gvoeoNFlALiuQUeeo=;
        b=QQmeZKOa0lfR2LywVSLG/Xxr4ap+aawYUUM35yr8UW0+A76Wq+KfK5ps61vvLd+Q3q
         N0Xxy1rYMekOVj4BkB5qlVoyfVasiV0W+63R++j3MdUo1pCq631LAgT2RA4zAVSKH7OU
         6jHx8l+nyreLETSShVDTCwmY62xoAZuWCPXMDq6Oz5wcjhbgqyRnw4HTaQyO2EhLKlrL
         /qxf9GS3WS6Vq2+QWkGYL7DdWdGInnDpyJr5IQ7ml4WbNDZwhT9dvLdsaUoTt/aygp1a
         4gkziFRTqDAOqXhBCSnXCMJfLykmlg0LY+OfGZKSJVpmQ14o2IcEhWCooEH555AiNX0P
         9fOg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771425500; x=1772030300;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=VFEph0G2gYZCHP73LMQnpBs2z3gvoeoNFlALiuQUeeo=;
        b=r9EIGOuMmhYMVjR931VZCZ00aAiMWMhgfeJcM8ct2VdmePtQPYn/SycTNLelWcp9kf
         P0x/Px84tgB9joJx/l6bQNKLMMOiX9MziOn5THexdpVw7bpEGyb3HKiIeVOIWGlW+XVA
         fU9GedFh+zGtjXhLWIgkL0+mPN/tA2E92CYFpljiuOlUa3+RNorDEOjx9cCZONWaZKKS
         TSd78Wk/Vd35ai1nNtLRqUAPQ4wYia12mRFMO+58AUy6RQ3cyiaydGHfwiP1voYKMe7+
         DZ4+EPQDi1g25aGY2qq48YMdkq7DtYAj1Xx70obDxqJ77ooi5o19h7J6TZopgzl2aZ+4
         79og==
X-Forwarded-Encrypted: i=1; AJvYcCVdXRJAcccyb3eQLK50MZfYJG+dzDoEClc2+vm8uy2mOU5wmE99JQyWgYx1JjSxlryhsGbo+/XCgm0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzpX/KRZcegL9oI9PpF2pWE3ActGR25L6QA7TsetLDpPtbSzkmZ
	ltrp37wW1y43z8SImid8UrPCEDjPt7xdORxN3Ut5i+r7ZcEddbtZ5IA3
X-Gm-Gg: AZuq6aK0Bmub7S9dBl0QnBnOmX1tfveOlFU2VnXopsJ9vbfRT3TMVi5KhoXMV8WHyLw
	uU8Wyg7XqLrEDGwc8ibhfS2ZBv52Qz1OwQlqnoxr0TikuoPDSNHL6K7DMkiIzMOkEn82joNIFpV
	R5nD+lGgqxvAvA0sltjOYvO/vXkfpPj0jx7HYB/2iQ50kKz4jjKbKtgpIwmF10xXRRCniQk38wT
	kpNmy514XiZFW7VM658JPIAbVyymrYVo76xdQcq1VOjSnWZlUIK4RgRWA2jjkiLAmLVPcKlF8VE
	2yk6C/V9R6gHdwyw2Sw09WnOn/RT0qYKSU21nORGt2ZR96k7+B5Anf9Ub562P72/yZzEJFZcdg/
	IcaEXfQnQ7c+rJB1vAoQAikYrh4FbwtL54LG8XygVctAEq01K1D0Yj8Sk1v5VAmzsCfp7fov63W
	FK16oqdmQhuysbITJe0sF1siJO0yMxHZb0sJkbJxuGjepvx+mwKSBgLLbqErli/PzHbJy7Dwd+4
	xg=
X-Received: by 2002:a05:600c:698c:b0:477:5ad9:6df1 with SMTP id 5b1f17b1804b1-48379b932b7mr271436095e9.3.1771425499982;
        Wed, 18 Feb 2026 06:38:19 -0800 (PST)
Message-ID: <ab0b7dcf-c607-43d3-bb1c-f782c3a71332@gmail.com>
Date: Wed, 18 Feb 2026 15:38:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.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>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com>
 <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com>
 <alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop>
 <d9feffe4-c45e-4bed-bc5e-776e4547578a@suse.com>
 <5eb4ba3b-f7b6-4cfb-ab67-60198c3f8572@gmail.com>
 <0c0061ab-acdb-4ceb-92e2-ca4e591ee741@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <0c0061ab-acdb-4ceb-92e2-ca4e591ee741@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/18/26 2:12 PM, Jan Beulich wrote:
> On 18.02.2026 13:58, Oleksii Kurochko wrote:
>> On 2/17/26 8:34 AM, Jan Beulich wrote:
>>> On 16.02.2026 19:42, Stefano Stabellini wrote:
>>>> On Mon, 16 Feb 2026, Jan Beulich wrote:
>>>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>>>> domain_use_host_layout() is generic enough to be moved to the
>>>>>> common header xen/domain.h.
>>>>> Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...
>>>>>
>>>>>> --- a/xen/include/xen/domain.h
>>>>>> +++ b/xen/include/xen/domain.h
>>>>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>>>>>>    #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>>>>>>    #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>>>>>>    
>>>>>> +/*
>>>>>> + * Is the domain using the host memory layout?
>>>>>> + *
>>>>>> + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
>>>>>> + * To avoid any trouble finding space, it is easier to force using the
>>>>>> + * host memory layout.
>>>>>> + *
>>>>>> + * The hardware domain will use the host layout regardless of
>>>>>> + * direct-mapped because some OS may rely on a specific address ranges
>>>>>> + * for the devices.
>>>>>> + */
>>>>>> +#ifndef domain_use_host_layout
>>>>>> +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
>>>>>> +                                    is_hardware_domain(d))
>>>>> ... is_domain_direct_mapped() isn't something that I'd like to see further
>>>>> proliferate in common (non-DT) code.
>>>> Hi Jan, we have a requirement for 1:1 mapped Dom0 (I should say hardware
>>>> domain) on x86 as well. In fact, we already have a working prototype,
>>>> although it is not suitable for upstream yet.
>>>>
>>>> In addition to the PSP use case that we discussed a few months ago,
>>>> where the PSP is not behind an IOMMU and therefore exchanged addresses
>>>> must be 1:1 mapped, we also have a new use case. We are running the full
>>>> Xen-based automotive stack on an Azure instance where SVM (vmentry and
>>>> vmexit) is available, but an IOMMU is not present. All virtual machines
>>>> are configured as PVH.
>>> Hmm. Then adjustments need making, for commentary and macro to be correct
>>> on x86. First and foremost none of what is there is true for PV.
>> As is_domain_direct_mapped() returns always false for x86, so
>> domain_use_host_layout macro will return incorrect value for non-hardware
>> domains (dom0?). And as PV domains are not auto_translated domains so are
>> always direct-mapped, so technically is_domain_direct_mapped() (or
>> domain_use_host_layout()) should return true in such case.
> Hmm? PV domains aren't direct-mapped. Direct-map was introduced by Arm for
> some special purpose (absence of IOMMU iirc).

I made such conclusion because of the comments in the code mentioned below:
  - https://elixir.bootlin.com/xen/v4.21.0/source/tools/libs/guest/xg_dom_x86.c#L1880
  - https://elixir.bootlin.com/xen/v4.21.0/source/xen/include/public/features.h#L107

Also, in the comment where it is introduced (d66bf122c0a "xen: introduce XENFEAT_direct_mapped and XENFEAT_not_direct_mapped")
is mentioned that:
   XENFEAT_direct_mapped is always set for not auto-translated guests.

>
>> (I assume it is also true for every domain except HVM according to the comment
>> /* HVM guests are translated.  PV guests are not. */ in xc_dom_translated and
>> the comment above definition of XENFEAT_direct_mapped: /* ...not auto_translated
>> domains (x86 only) are always direct-mapped*/).
>>
>> Is my understanding correct?
>>
>> Then isn't that a problem of how is_domain_direct_mapped() is defined
>> for x86? Shouldn't it be defined like:
>>     #define is_domain_direct_mapped(d) (!paging_mode_translate(d) || ((d)->cdf & CDF_directmap))
>>
>> Would it be better to move "!paging_mode_translate(d) || " to the definition
>> of domain_use_host_layout()?
>>
>> Could you please explain what is wrong with the comment? Probably, except:
>>     * To avoid any trouble finding space, it is easier to force using the
>>     * host memory layout.
>> everything else should be true for x86.
> "The hardware domain will use ..." isn't true for PV Dom0.

And then just pure is_hardware_domain(d) inside macros isn't correct too, right?
So it should be (... || (!is_pv_domain(d) && is_hardware_domain(d)))

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 14:48:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 14:48:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235656.1538573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiqb-0006yM-VH; Wed, 18 Feb 2026 14:48:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235656.1538573; Wed, 18 Feb 2026 14: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 1vsiqb-0006yF-SI; Wed, 18 Feb 2026 14:48:13 +0000
Received: by outflank-mailman (input) for mailman id 1235656;
 Wed, 18 Feb 2026 14: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=oIww=AW=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vsiqa-0006y4-G3
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 14:48:12 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7a2748c-0cd8-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 15:48:10 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id DA5AF4147501;
 Wed, 18 Feb 2026 09:47:52 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7a2748c-0cd8-11f1-b164-2bf370ae4941
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	teddy.astie@vates.tech,
	jbeulich@suse.com,
	jason.andryuk@amd.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v4 0/2] Virtual NMI
Date: Wed, 18 Feb 2026 14:47:59 +0000
Message-ID: <cover.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently, the Xen hypervisor delivers NMIs to the guests using the Event
Injection mechanism. The Event Injection mechanism does not block the delivery
of subsequent NMIs. So, the Xen Hypervisor tracks the NMI delivery and its
completion (by intercepting the IRET instruction) before sending a new NMI.

With the 4th generation AMD EPYC, a hardware NMI virtualization support,
Virtual NMI (VNMI), is introduced.  The vNMI allows the hypervisor to inject
the NMI into the guest w/o using Event Injection mechanism. No need to track
the guest NMI and intercepting the IRET instruction.

NMI Virtualization support is indicated by CPUID Fn8000_000A_EDX[VNMI] = 1.[1]

NMI Virtualization is enabled by setting V_NMI_ENABLE (bit 26 in offset 60h
of the VMCB). Enabling NMI Virtualization requires the NMI intercept bit to
be set. An attempt to run a guest with V_NMI_ENABLE without the NMI intercept
bit set results in #VMEXIT(INVALID) [1]

Three new bits are added to the VMCB field at offset 60h to provide NMI
virtualization hardware support:

V_NMI(11): Indicates whether a virtual NMI is pending in the guest. The
processor will clear V_NMI once it takes the virtual NMI.
V_NMI_MASK(12): Indicates whether virtual NMIs are masked. The processor will
set V_NMI_MASK once it takes the virtual NMI. V_NMI_MASK is cleared when the
guest successfully completes an IRET instruction or #VMEXIT occurs while
delivering the virtual NMI.
V_NMI_ENABLE(26): Enables NMI virtualization. [1]

[1] https://docs.amd.com/v/u/en-US/24593_3.43

---
Changes in v4:
 - Delete the changes in svm_get_interrupt_shadow. The vNMI handling for
   multiple\concurrent NMIs should not be considered blocked if vnmi_pending
   and vnmi_blockking are set.
 - Fix formatting indentation in the svm_inject_nmi function.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2334257666
---
Changes in v3:
 - Delete the introduced hvm_function_table::vNMI boolean and all the 3 vNMI
   hooks, hvm_function_table::is_vnmi_enabled,
   hvm_function_table::is_vnmi_masked and hvm_function_table::set_vnmi_pending.
 - Use the HVM_INTR_SHADOW_NMI to indicate that the NMI is blocked rather than
   the usage of HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2327265341
---
Changes in v2:
 - Merge the patches for
   "svm/vnmi: introduce the vnmi bit support in the cpuid feature set"
   and
   "svm/vnmi: add the definitions for the svm vnmi management bits in the VMCB"
   into the one patch
   "x86/svm: Add Enumerations for the SVM virtual NMI".
 - Change the patch subject "svm/vnmi: Add support for the SVM Virtual NMI" to
   "x86/svm: Use virtual NMI when available"
 - Move the print out of the VNMI capability to the patch
   "x86/svm: Use virtual NMI when available" when it is being used.
 - Remove the hvm_intblk_vnmi enumeration that was introduced for the separate
   masked vNMI handling.
 - Introduce the hvm_function_table's is_vnmi_enabled callback to allow for the
   SVM implementation to verify that the VNMI is enabled by checking the VMCB
   bits in addition to the CPUID reported support.
 - Change the the name of the hvm_function_table's callback is_vnmi_pending to
   is_vnmi_masked.
 - The svm_inject_nmi function gains a check for the distinct NMI injection
   handling when the VNMI is enabled.
 - Simplify the check of AMD SVM Hardware support for the VNMI. The check
   cpu_has_svm_vnmi is performed unconditionally.
 - Simplify the introduced changes diff for the vintr_t union for the VNMI bits
   support.
 - Adopt the Xen formatting guidelines for the control structures.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2325298577
---

Abdelkareem Abdelsaamad (2):
  x86/svm: Add Enumerations for the SVM virtual NMI
  x86/svm: Use the virtual NMI when available

 xen/arch/x86/hvm/svm/intr.c        | 8 ++++++++
 xen/arch/x86/hvm/svm/svm.c         | 1 +
 xen/arch/x86/hvm/svm/vmcb.c        | 2 ++
 xen/arch/x86/hvm/svm/vmcb.h        | 8 ++++++--
 xen/arch/x86/include/asm/hvm/svm.h | 2 ++
 5 files changed, 19 insertions(+), 2 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 14:48:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 14:48:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235657.1538578 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiqc-00071O-6d; Wed, 18 Feb 2026 14:48:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235657.1538578; Wed, 18 Feb 2026 14: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 1vsiqc-00070B-1J; Wed, 18 Feb 2026 14:48:14 +0000
Received: by outflank-mailman (input) for mailman id 1235657;
 Wed, 18 Feb 2026 14: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=oIww=AW=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vsiqb-0006y4-4f
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 14:48:13 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d8eb9ddf-0cd8-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 15:48:12 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 10F7C4147503;
 Wed, 18 Feb 2026 09:47:54 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d8eb9ddf-0cd8-11f1-b164-2bf370ae4941
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	teddy.astie@vates.tech,
	jbeulich@suse.com,
	jason.andryuk@amd.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v4 1/2] x86/svm: Add Enumerations for the SVM virtual NMI
Date: Wed, 18 Feb 2026 14:48:00 +0000
Message-ID: <a3dd02ed3a01c5aaae804bc69f494de2a47a75f0.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the cpuid bit for the SVM vNMI feature support for the x86\AMD
platforms. The feature support is indicated by the CPUID
Fn8000_000A_EDX[25] = 1.

Add defines for the three SVM's Virtual NMI (vNMI) managements bits in the
VMCB structure's vintr_t:

vintr_t(11) - Virtual NMI is pending.
vintr_t(12) - Virtual NMI is masked.
vintr_t(26) - Enable NMI virtualization.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
---
 xen/arch/x86/hvm/svm/vmcb.h        | 8 ++++++--
 xen/arch/x86/include/asm/hvm/svm.h | 2 ++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
index 69f6047394..13ccfd3ff9 100644
--- a/xen/arch/x86/hvm/svm/vmcb.h
+++ b/xen/arch/x86/hvm/svm/vmcb.h
@@ -336,13 +336,17 @@ typedef union
         u64 tpr:          8;
         u64 irq:          1;
         u64 vgif:         1;
-        u64 rsvd0:        6;
+        u64 :             1;
+        u64 vnmi_pending: 1;
+        u64 vnmi_blocking:1;
+        u64 :             3;
         u64 prio:         4;
         u64 ign_tpr:      1;
         u64 rsvd1:        3;
         u64 intr_masking: 1;
         u64 vgif_enable:  1;
-        u64 rsvd2:        6;
+        u64 vnmi_enable:  1;
+        u64 :             5;
         u64 vector:       8;
         u64 rsvd3:       24;
     } fields;
diff --git a/xen/arch/x86/include/asm/hvm/svm.h b/xen/arch/x86/include/asm/hvm/svm.h
index 15f0268be7..a35a61273b 100644
--- a/xen/arch/x86/include/asm/hvm/svm.h
+++ b/xen/arch/x86/include/asm/hvm/svm.h
@@ -37,6 +37,7 @@ extern u32 svm_feature_flags;
 #define SVM_FEATURE_VGIF          16 /* Virtual GIF */
 #define SVM_FEATURE_SSS           19 /* NPT Supervisor Shadow Stacks */
 #define SVM_FEATURE_SPEC_CTRL     20 /* MSR_SPEC_CTRL virtualisation */
+#define SVM_FEATURE_VNMI          25 /* Virtual NMI */
 #define SVM_FEATURE_BUS_LOCK      29 /* Bus Lock Threshold */
 
 static inline bool cpu_has_svm_feature(unsigned int feat)
@@ -57,6 +58,7 @@ static inline bool cpu_has_svm_feature(unsigned int feat)
 #define cpu_has_svm_vloadsave cpu_has_svm_feature(SVM_FEATURE_VLOADSAVE)
 #define cpu_has_svm_sss       cpu_has_svm_feature(SVM_FEATURE_SSS)
 #define cpu_has_svm_spec_ctrl cpu_has_svm_feature(SVM_FEATURE_SPEC_CTRL)
+#define cpu_has_svm_vnmi      cpu_has_svm_feature(SVM_FEATURE_VNMI)
 #define cpu_has_svm_bus_lock  cpu_has_svm_feature(SVM_FEATURE_BUS_LOCK)
 
 #define MSR_INTERCEPT_NONE    0
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 14:48:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 14:48:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235660.1538592 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiqk-0007UE-BS; Wed, 18 Feb 2026 14:48:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235660.1538592; Wed, 18 Feb 2026 14:48:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiqk-0007U7-86; Wed, 18 Feb 2026 14:48:22 +0000
Received: by outflank-mailman (input) for mailman id 1235660;
 Wed, 18 Feb 2026 14:48: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=oIww=AW=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vsiqi-0007Sy-Oy
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 14:48:20 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d9ffa53a-0cd8-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 15:48:14 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id CD85C414750A;
 Wed, 18 Feb 2026 09:47:56 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9ffa53a-0cd8-11f1-9ccf-f158ae23cfc8
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	teddy.astie@vates.tech,
	jbeulich@suse.com,
	jason.andryuk@amd.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v4 2/2] x86/svm: Use the virtual NMI when available
Date: Wed, 18 Feb 2026 14:48:01 +0000
Message-ID: <b4c0009eeee03b855321954135a37ef08290f640.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the VMCB
and handed off to the hardware. There is no need for the artificial tracking
of the NMI handling completion with the IRET instruction interception.

Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hardware
accelerated feature when the AMD platform supports the vNMI.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/svm/intr.c | 8 ++++++++
 xen/arch/x86/hvm/svm/svm.c  | 1 +
 xen/arch/x86/hvm/svm/vmcb.c | 2 ++
 3 files changed, 11 insertions(+)

diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 6453a46b85..996362f8a6 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -33,6 +33,14 @@ static void svm_inject_nmi(struct vcpu *v)
     u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
     intinfo_t event;
 
+    if ( vmcb->_vintr.fields.vnmi_enable )
+    {
+        if ( !vmcb->_vintr.fields.vnmi_pending )
+            vmcb->_vintr.fields.vnmi_pending = 1;
+
+        return;
+    }
+
     event.raw = 0;
     event.v = true;
     event.type = X86_ET_NMI;
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..815565c33f 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2524,6 +2524,7 @@ const struct hvm_function_table * __init start_svm(void)
     P(cpu_has_tsc_ratio, "TSC Rate MSR");
     P(cpu_has_svm_sss, "NPT Supervisor Shadow Stack");
     P(cpu_has_svm_spec_ctrl, "MSR_SPEC_CTRL virtualisation");
+    P(cpu_has_svm_vnmi, "Virtual NMI");
     P(cpu_has_svm_bus_lock, "Bus Lock Filter");
 #undef P
 
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548..e90bbac332 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -184,6 +184,8 @@ static int construct_vmcb(struct vcpu *v)
     if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
         v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
 
+    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;
+
     return 0;
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 14:50:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 14:50:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235699.1538603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiso-000141-M4; Wed, 18 Feb 2026 14:50:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235699.1538603; Wed, 18 Feb 2026 14:50:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsiso-00013u-J3; Wed, 18 Feb 2026 14:50:30 +0000
Received: by outflank-mailman (input) for mailman id 1235699;
 Wed, 18 Feb 2026 14:50: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsism-00013o-Ol
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 14:50:28 +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 29070bf7-0cd9-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 15:50:26 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48374014a77so49399995e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 06:50:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac9d77sm38786344f8f.33.2026.02.18.06.50.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 06:50:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29070bf7-0cd9-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771426226; x=1772031026; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XyalVrOy7BpKhSfTPoJ8tKECpIFYmccAizK1HMw5QMQ=;
        b=DhI9l+Fil2mjppXR680lbGXe0ycHeZmvv00ZXjkXcEMWSO0YilHKcAg/IO7hJhO0hs
         4yUWyjH64fp2AJGFx2EXylZVNOsWVNtSnCDK4p7F3zB0jg8gVpN+cWoYlXjhjAqMzmVo
         DlxgPxW+Cr4hifPkPUoTUCVxNdcb5mblIQDNxFyQ1+SkdcCIke9e4gWXugZfGi/sPKj3
         cZn5pqY+p0IXNtSXENH25h0YzoyGKBYzgnzTX6N6VzkBQZ72TYD0di57jnbi2iQDJHYq
         7BFWpLN1EaCHNVM0jOyDdsvnwfOYG4wyWHvGGCVOwzCXA2uwJxwWgnKaXZFgotnO3wS8
         8Uww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771426226; x=1772031026;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XyalVrOy7BpKhSfTPoJ8tKECpIFYmccAizK1HMw5QMQ=;
        b=XH5IKw0JKtYdFpc+GM6RzZkuBziwtvtAjx7Z+RCCxKap8aeREjmEjN9Du+OX5PmVN9
         ZJvAhklQcXO67JvdBMHlkUctaloBFYgJMZJ+qs0f6OkkP4Q00xaXGGLGZICPOEkkYjoK
         V5vm2uE3PJbrwevIHkP7/0Oqevu5RaRVv2jFPXEZJ5T3uuiBIQqo8tHrBupCL1JHx2Mu
         2AfR+usi0XhDglqaSonlfb2OwoICuFdLMn2gYgR3spQbHmKDd3nXvwpqdP1o9XvqpQ82
         IgJOjBfpDBJ7WvNHai4zeV64u1GMD/+8XgUgL3NiMn/KueJ4iZjoNvC5IRxcdbXvgI7+
         irYQ==
X-Forwarded-Encrypted: i=1; AJvYcCWibC8r70/NJJcj61AUMvaXGwszkZroKvyWMVF2uB2Hvl55NyrNMO4DoVhhUIaYkETCq8NUbVfP7pA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw3KTkkVz18tKBnA+/JE1K/1NFb6USGJf0iZQHY5nA4asMcvFiF
	jDvsVYq1oX1lL+WukLVdc40Dvbf3SuFHlFS/x87/cb13W/3bo3g5Ma4cOzqAIVxuTQ==
X-Gm-Gg: AZuq6aIau9Jfs3srpdRGAzL2eEmAYIk9ZJVrGUhLFboF8H1gwkhrtZffR2v+G39RM9c
	8tvY8uiOZYbRwVMojfVntPpLNWxtRV4KL4/86qgKpP7qZfLOzB1Mgh6O+3d/SaQyEEeM/Cg1sfJ
	pIzFYjdyzli3qa4mvV8Vqh1w50mKM1xP9pHThqSTFvZxPN7wQqkTY3HqC/Orj+I4JR+FEXzoJBt
	KumsnRJUpsB1FVBtMcAupGWE0uQy3UThOq2VwvKLfSU7LqP7QdmD34ZEmSKrHnO0F5uoGCmRoxG
	qKi+N3r9PmeHXoERk3uzxSulVEH8hvwFpYodtm7S7xjM43h9e8hPdEBPH+hhYTa7d2MVv31XAfg
	nYYbUBHWMj6fn8ugop8qU753BdKVONNklsFyHLpOluwMgsMkYWuTRBMwBhY8YSIBAidD3JN16jn
	fTLBf6okiDmNpB93G4kuUdxyBLeOgMSQXVBZqvMW4N6HBbm7JXnBW82qj9rqK8QOxWDqiE9PRJU
	FnDmwlO5+n/oo0=
X-Received: by 2002:a05:6000:603:b0:436:3483:5c8 with SMTP id ffacd0b85a97d-4379791ce00mr31571627f8f.50.1771426225486;
        Wed, 18 Feb 2026 06:50:25 -0800 (PST)
Message-ID: <74060a96-110f-4d6f-bbad-361021315884@suse.com>
Date: Wed, 18 Feb 2026 15:50:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Stefano Stabellini <sstabellini@kernel.org>
Cc: Romain Caritey <Romain.Caritey@microchip.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>,
 xen-devel@lists.xenproject.org
References: <cover.1770821989.git.oleksii.kurochko@gmail.com>
 <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com>
 <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com>
 <alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop>
 <d9feffe4-c45e-4bed-bc5e-776e4547578a@suse.com>
 <5eb4ba3b-f7b6-4cfb-ab67-60198c3f8572@gmail.com>
 <0c0061ab-acdb-4ceb-92e2-ca4e591ee741@suse.com>
 <ab0b7dcf-c607-43d3-bb1c-f782c3a71332@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: <ab0b7dcf-c607-43d3-bb1c-f782c3a71332@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.02.2026 15:38, Oleksii Kurochko wrote:
> On 2/18/26 2:12 PM, Jan Beulich wrote:
>> On 18.02.2026 13:58, Oleksii Kurochko wrote:
>>> On 2/17/26 8:34 AM, Jan Beulich wrote:
>>>> On 16.02.2026 19:42, Stefano Stabellini wrote:
>>>>> On Mon, 16 Feb 2026, Jan Beulich wrote:
>>>>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
>>>>>>> domain_use_host_layout() is generic enough to be moved to the
>>>>>>> common header xen/domain.h.
>>>>>> Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...
>>>>>>
>>>>>>> --- a/xen/include/xen/domain.h
>>>>>>> +++ b/xen/include/xen/domain.h
>>>>>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
>>>>>>>    #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>>>>>>>    #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
>>>>>>>    
>>>>>>> +/*
>>>>>>> + * Is the domain using the host memory layout?
>>>>>>> + *
>>>>>>> + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
>>>>>>> + * To avoid any trouble finding space, it is easier to force using the
>>>>>>> + * host memory layout.
>>>>>>> + *
>>>>>>> + * The hardware domain will use the host layout regardless of
>>>>>>> + * direct-mapped because some OS may rely on a specific address ranges
>>>>>>> + * for the devices.
>>>>>>> + */
>>>>>>> +#ifndef domain_use_host_layout
>>>>>>> +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
>>>>>>> +                                    is_hardware_domain(d))
>>>>>> ... is_domain_direct_mapped() isn't something that I'd like to see further
>>>>>> proliferate in common (non-DT) code.
>>>>> Hi Jan, we have a requirement for 1:1 mapped Dom0 (I should say hardware
>>>>> domain) on x86 as well. In fact, we already have a working prototype,
>>>>> although it is not suitable for upstream yet.
>>>>>
>>>>> In addition to the PSP use case that we discussed a few months ago,
>>>>> where the PSP is not behind an IOMMU and therefore exchanged addresses
>>>>> must be 1:1 mapped, we also have a new use case. We are running the full
>>>>> Xen-based automotive stack on an Azure instance where SVM (vmentry and
>>>>> vmexit) is available, but an IOMMU is not present. All virtual machines
>>>>> are configured as PVH.
>>>> Hmm. Then adjustments need making, for commentary and macro to be correct
>>>> on x86. First and foremost none of what is there is true for PV.
>>> As is_domain_direct_mapped() returns always false for x86, so
>>> domain_use_host_layout macro will return incorrect value for non-hardware
>>> domains (dom0?). And as PV domains are not auto_translated domains so are
>>> always direct-mapped, so technically is_domain_direct_mapped() (or
>>> domain_use_host_layout()) should return true in such case.
>> Hmm? PV domains aren't direct-mapped. Direct-map was introduced by Arm for
>> some special purpose (absence of IOMMU iirc).
> 
> I made such conclusion because of the comments in the code mentioned below:
>   - https://elixir.bootlin.com/xen/v4.21.0/source/tools/libs/guest/xg_dom_x86.c#L1880
>   - https://elixir.bootlin.com/xen/v4.21.0/source/xen/include/public/features.h#L107
> 
> Also, in the comment where it is introduced (d66bf122c0a "xen: introduce XENFEAT_direct_mapped and XENFEAT_not_direct_mapped")
> is mentioned that:
>    XENFEAT_direct_mapped is always set for not auto-translated guests.

Hmm, this you're right with, and XENVER_get_features handling indeed has

            if ( !paging_mode_translate(d) || is_domain_direct_mapped(d) )
                fi.submap |= (1U << XENFEAT_direct_mapped);

Which now I have a vague recollection of not having been happy with back at
the time. Based solely on the GFN == MFN statement this may be correct, but
"GFN" is a questionable term for PV in the first place. See how e.g.
common/memory.c resorts to using GPFN and GMFN, in line with commentary in
public/memory.h.

What the above demonstrates quite well though is that there's no direct
relationship between XENFEAT_direct_mapped and is_domain_direct_mapped().

>>> (I assume it is also true for every domain except HVM according to the comment
>>> /* HVM guests are translated.  PV guests are not. */ in xc_dom_translated and
>>> the comment above definition of XENFEAT_direct_mapped: /* ...not auto_translated
>>> domains (x86 only) are always direct-mapped*/).
>>>
>>> Is my understanding correct?
>>>
>>> Then isn't that a problem of how is_domain_direct_mapped() is defined
>>> for x86? Shouldn't it be defined like:
>>>     #define is_domain_direct_mapped(d) (!paging_mode_translate(d) || ((d)->cdf & CDF_directmap))
>>>
>>> Would it be better to move "!paging_mode_translate(d) || " to the definition
>>> of domain_use_host_layout()?
>>>
>>> Could you please explain what is wrong with the comment? Probably, except:
>>>     * To avoid any trouble finding space, it is easier to force using the
>>>     * host memory layout.
>>> everything else should be true for x86.
>> "The hardware domain will use ..." isn't true for PV Dom0.
> 
> And then just pure is_hardware_domain(d) inside macros isn't correct too, right?
> So it should be (... || (!is_pv_domain(d) && is_hardware_domain(d)))

Stefano, please can you guide Oleksii to put there something which is both
correct and will cover your intended use case as well?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 15:04:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 15:04:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235748.1538612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsj5u-0002rm-Ov; Wed, 18 Feb 2026 15:04:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235748.1538612; Wed, 18 Feb 2026 15: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 1vsj5u-0002rf-MR; Wed, 18 Feb 2026 15:04:02 +0000
Received: by outflank-mailman (input) for mailman id 1235748;
 Wed, 18 Feb 2026 15:04: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsj5u-0002rZ-3c
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 15:04:02 +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 0e51dd7d-0cdb-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 16:04:00 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-4362197d174so3650931f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 07:04:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ad009bsm41299027f8f.39.2026.02.18.07.03.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 07:03:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0e51dd7d-0cdb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771427040; x=1772031840; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tEVEkoZtAay+XmTShREPVqYfTs2ms0eYUXlFrlW/xfk=;
        b=QFK7rMFIW8yBJjarvxncVKke21yySrWmTYvoSfuN7DrLcdWs6uBwxcjc7MQ1t9iVLC
         zUZqJIOohVvzjGWyGnxmyZVxYPxpdpIb0JaIyhbrFJ2GCafW0tGX/xFdnEEeHUm3bnsn
         O+j/gtTfiCRL1CI1wmQ2b81+1lG/jjGB2EvA3YZZzaV0PQx8CKebZ7Qt+GfJjsnBtFRg
         p0BcMNCssJcYlL3ShnAdSp/69du+TmNFOuDJYJl+A/L8aYRkZJC3SCnlDB32XQ5yTFMg
         3vkUWAbhuNKroMSmh3YW9o1shUCmuWszfzdU4px2tcnCP+VDm5T3jnVNlMOQyvhWeyFR
         Nhqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771427040; x=1772031840;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tEVEkoZtAay+XmTShREPVqYfTs2ms0eYUXlFrlW/xfk=;
        b=aDPV5aAVp687I2X/nkzAL3ReyhTgutSWfTA+TPlNOrxcHQOypUy4gtvJgnr3YPKqwP
         SyjOMGWvVChLsKAQ82vJ0ZotAZ75eGqKhKAgyPX2yIgo2rJ2/LbgYUaztK96ysTd67qY
         +VuBr3NdhXQoyC3lironipLfvVp3xae8DEylpeCHOTl11mOTEmAlU0ROyVd5Rfndbr0u
         i8yIsYljFTBu7/GjHrllR/izLIyyjJtkb+aqZiYRahwGMDBnvFpTA0vLenzjVKXdQzAN
         JaTl/2Od+I8rxqj+FFRsBRQdpPpIOo+8dF9HjCPUctVS/dw63cct2UN6VyXjPqC133eu
         9sow==
X-Forwarded-Encrypted: i=1; AJvYcCUF1TTczM4a03REfLmj/FPbyqi49UQU/cOX+Qqt3GQFKmZ/9P8of94YpNN2/4iC6X+PaIv70lvZPnQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzhJjgnNCn0/TSqduC27vcflou4Zk8ElHqI4JJ2x2F8nWu1CdM7
	/dL2Cmu22a1B5JdgbaWGB6H9SBXSyp8sbsS1L6jxRTQcsC2ItU5gRQLmGbc1tW+/jw==
X-Gm-Gg: AZuq6aLroXkfVfmtEOldOag1gPxojhQs+5/3bgKToKX5RPrCj/A+WTDvUkVoJixD4DB
	fIVR1uoRPYUmXD27Ch3KZwHpyo8ckN6ubRt4GqyhvJZq92LzhBxWfI1XV/9MDosZr1K0aKgyC9/
	PIoh39SpvQWhfrKZ1+A/wDnFVhzTnFIfbYlk5bnUOI7d6pw5/Yd2scvAU3dIEtFrGo+FGg+0sMm
	9u/p8SVhTHWg8qQHM6VDsy//IiAUDOkoXo3weG1SBWUv8JNxg1VRXi5HeifPo+9U83kCZNrUkkq
	xhxBBiv8O5TP5FUFNcbtlkNxwQo/AX1LGb78QwSzJFEJUTDYDoGwLgx0+FLuvKzaEAwEjS1/nhe
	sgsuhSeVBSULPY1AO3vxJkIs1w+h41ip2Sdms1mj9PSMKXuDYV6+NVBE2Fqe3se5kK+A0d7amnZ
	L7xlxKp97BqEw158jq3op8ZZWC9fnQbLooXd+S1/Q+IZ9IXEOP/ESCF9O8G7ixvmOZ0re0Zczb0
	Ea6Tn0N7dZfAdw=
X-Received: by 2002:a5d:5d02:0:b0:437:893f:3361 with SMTP id ffacd0b85a97d-43958e02d7amr3667857f8f.20.1771427039718;
        Wed, 18 Feb 2026 07:03:59 -0800 (PST)
Message-ID: <57074bdb-6af9-4cd8-b1da-d348757ca168@suse.com>
Date: Wed, 18 Feb 2026 16:03:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] common/domctl: xsm update for get_domain_state access
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Chris Rogers <rogersc@ainfosec.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: <20260216215748.20398-1-dpsmith@apertussolutions.com>
 <1a1d8db1-d553-470a-8678-b879385b2fec@suse.com>
 <ff62ece8-a7f3-4490-967c-e9e8283dcd9d@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: <ff62ece8-a7f3-4490-967c-e9e8283dcd9d@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.02.2026 15:33, Daniel P. Smith wrote:
> On 2/17/26 04:34, Jan Beulich wrote:
>> On 16.02.2026 22:57, Daniel P. Smith wrote:
>>> --- a/xen/common/domain.c
>>> +++ b/xen/common/domain.c
>>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>>>   int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>                        domid_t *domid)
>>>   {
>>> -    unsigned int dom;
>>> +    unsigned int dom = 0;
>>>       int rc = -ENOENT;
>>>       struct domain *hdl;
>>>   
>>> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>   
>>>       if ( d )
>>>       {
>>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>> +        if ( rc )
>>> +            return rc;
>>> +
>>>           set_domain_state_info(info, d);
>>>   
>>>           return 0;
>>> @@ -238,10 +242,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>   
>>>       while ( dom_state_changed )
>>>       {
>>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom);
>>>           if ( dom >= DOMID_FIRST_RESERVED )
>>>               break;
>>> -        if ( test_and_clear_bit(dom, dom_state_changed) )
>>> +        if ( test_bit(dom, dom_state_changed) )
>>>           {
>>>               *domid = dom;
>>
>> This is problematic wrt other work (already talked about in the distant past,
>> but sadly only making little progress) towards trying to pull some of the
>> sub-ops out of the domctl-locked region. This subop is one of the prime
>> candidates, yet only if the test_and_clear_bit() remains here.
> 
> Okay, but we can't be clearing the bit if the src domain doesn't have 
> access. When considering that xsm_domctl() does a no-op check for 
> XEN_DOMCTL_get_domain_state, deferring to xsm_get_domain_state(), then 
> any domain could invoke the OP with DOMID_INVALID and clear the bit 
> before access is checked.
> 
> If you want to ensure atomic operations on the bit field, while I am not 
> a fan of this, a combination with set_bit() could be done. Let the 
> test_and_clear_bit() remain and then if access check fails, use 
> set_bit() to put it back. Would that be sufficient for your objective?

No, that could then confuse a legitimate (for that domain) caller. IOW
you would still build upon the domctl lock serializing things. I think
you want to do the XSM check first, and only then use test_and_clear_bit().

>>> @@ -249,6 +253,15 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>   
>>>               if ( d )
>>>               {
>>> +                rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>> +                if ( rc )
>>> +                {
>>> +                    rcu_unlock_domain(d);
>>> +                    rc = -ENOENT;
>>
>> As you don't otherwise use xsm_get_domain_state()'s return value, the need
>> for this assignment can be eliminated by putting the function call straight
>> in the if(). Then again, to address the remark above, overall code structure
>> will need to change quite a bit anyway (so the remark here may be moot).
> 
> I can drop the use of rc here and inline it.
> 
>>> +                    dom++;
>>
>> It may be nice to eliminate the need to have this in two places (here and ...
>>
>>> +                    continue;
>>> +                }
>>> +
>>>                   set_domain_state_info(info, d);
>>>   
>>>                   rcu_unlock_domain(d);
>>> @@ -256,10 +269,13 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>               else
>>>                   memset(info, 0, sizeof(*info));
>>>   
>>> +            clear_bit(dom, dom_state_changed);
>>>               rc = 0;
>>>   
>>>               break;
>>>           }
>>> +
>>> +        dom++;
>>>       }
>>
>> ... here), by having the variable's initializer be -1 and then using dom + 1
>> in the find_next_bit() invocation.
> 
> If you want this way, then there are two options, make dom no longer 
> unsigned or be willing to allow unsigned int overflow. If we go with the 
> former, If you agree, I would leave it as an int as that should cover 
> the range of valid domids.

I wouldn't outright nak use of plain int, but I'm putting in effort to remove
such undue uses of that type. Unsigned overflow is well-defined aiui, so I
see no reason why the variable can't remain "unsigned int".

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 15:07:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 15:07:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235760.1538622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsj9f-0003bH-BC; Wed, 18 Feb 2026 15:07:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235760.1538622; Wed, 18 Feb 2026 15: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 1vsj9f-0003bA-8S; Wed, 18 Feb 2026 15:07:55 +0000
Received: by outflank-mailman (input) for mailman id 1235760;
 Wed, 18 Feb 2026 15:07: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=LfGN=AW=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vsj9e-0003b4-JX
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 15:07:54 +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 97454d08-0cdb-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 16:07:51 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 177142725546081.76358738386705;
 Wed, 18 Feb 2026 07:07:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 97454d08-0cdb-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771427258; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=MdXFggL9Jv86EBPvlQJvKF4D+lOwWk37N/jR09q7SdI841lGo2up72Bki3oPRkPOMZ0OcGE0WFl6CQTtJdnPTbPjPmVWgrTW4+Ef4yL1PIkrBnRdQhmktVypD/RnlcSjREo9iCXBOal7WjDYUn94E7mePKsS/oE+RxrC6FPhKa4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771427258; 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=SLiF2dzEyNveNiVrCEoCf3nJAv8q/LyeCq3ExQJQuB4=; 
	b=GnFVMCAeA05Lvc3vcVnAL+SgdCQRztfx43iCMlgshHXaZxlFA1k0Fsi14hJn8oeB5iDCaRKY1gByUkmrXJrIjDz9sgF67D2AjSpdHvAXYISd7K6VAtO9rxSi+mVvGLwlQMtEsLHJVQZYcmFZaITsaZLNakfUrb9UdSzXFGSmpNA=
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=1771427258;
	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=SLiF2dzEyNveNiVrCEoCf3nJAv8q/LyeCq3ExQJQuB4=;
	b=JqsAw03dBieLeH8kRZAd05QBuFNXg13CErScmVVGwc2+8HsNqUO0178xI75/HKue
	pxBSt7MTm6vscjA+It8Pu8z6aPnAuMQefHDI2lWste006hqZ/HTo9BhtmWpdFn/i4J5
	vlM1xxufqK5g07yMtinadZEkx7VBxESpPOfhTucw=
Message-ID: <053d2624-2891-4534-83f0-b05e190afe3b@apertussolutions.com>
Date: Wed, 18 Feb 2026 10:07:33 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
Content-Language: en-US
To: Stefano Stabellini <sstabellini@kernel.org>,
 Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 grygorii_strashko@epam.com, anthony.perard@vates.tech, michal.orzel@amd.com,
 julien@xen.org, roger.pau@citrix.com, jason.andryuk@amd.com,
 victorm.lira@amd.com, andrew.cooper3@citrix.com,
 xen-devel@lists.xenproject.org
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-2-stefano.stabellini@amd.com>
 <82c06e52-1db0-46e5-be9f-7ca0360ffc70@suse.com>
 <alpine.DEB.2.22.394.2602091520460.1134401@ubuntu-linux-20-04-desktop>
 <43e80ad6-7b42-42de-b36f-1a9079589912@suse.com>
 <alpine.DEB.2.22.394.2602131206040.6031@ubuntu-linux-20-04-desktop>
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: <alpine.DEB.2.22.394.2602131206040.6031@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/13/26 15:09, Stefano Stabellini wrote:
> On Tue, 10 Feb 2026, Jan Beulich wrote:
>> On 10.02.2026 00:23, Stefano Stabellini wrote:
>>> On Mon, 9 Feb 2026, Jan Beulich wrote:
>>>> On 05.02.2026 00:37, Stefano Stabellini wrote:
>>>>> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
>>>>> global to VIRQ_DOMAIN to allow other domains to bind to it.
>>>>>
>>>>> Note that Linux silently falls back to polling when binding fails, which
>>>>> masks the issue.
>>>>>
>>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>>>
>>>> Technically this is an ABI change, and hence I'm uncertain it can go without
>>>> that aspect being at least mentioned, perhaps even its implications properly
>>>> discussed.
>>>
>>> I am not sure if it qualifies as an ABI change or not but I am happy to
>>> expand the commit message in any way you might suggest.
>>>
>>> The jist of it is already in the commit message, really the key element
>>> is that VIRQ_CONSOLE can be bound by multiple domains.
>>>
>>> Aside from spelling out "this is an ABI change" what do you have in
>>> mind?
>>
>> What I mean is discussion of the implications for domains using the vIRQ.
>> Previously most domains would have attempts to bind this vIRQ rejected.
>> Technically it is possible that kernels had code paths blindly doing the
>> binding, relying on it to work only when running as Dom0. And really, you
>> appear to break XEN_DOMCTL_set_virq_handler when used with VIRQ_CONSOLE,
>> without which its binding wasn't possible at all before (except for the
>> hardware domain, which get_global_virq_handler() falls back to when no
>> other domain is set). Or am I mis-reading things, as I can't spot any use
>> of VIRQ_CONSOLE under tools/, whereas I would have expected provisions
>> for (host) console handling to be delegated to a separate control or
>> console domain? Of course other toolstacks (the XAPI-based one for
>> example) might actually have such provisions.
>>
>> And then there's the XSM question: XEN_DOMCTL_set_virq_handler obviously
>> is subject to XSM checking. The same isn't true for VIRQ_DOMAIN-type
>> vIRQ-s. Yet this vIRQ isn't supposed to be universally available to
>> every DomU. Instead the ->console->input_allowed checking is kind of
>> substituting such a check, which iirc Daniel said (in more general
>> context) shouldn't ever be done. IOW in patch 5 you're actually effecting
>> policy, which should be XSM's job aiui.
>>
>> Bottom line: The patch may need to be more involved, but at the very
>> least the description would need updating to justify it being as simple
>> as it is right now.
> 
> What do you think of this:
> 
> ---
> 
> xen/console: change VIRQ_CONSOLE from global to per-domain
> 
> Previously VIRQ_CONSOLE was a global VIRQ (VIRQ_GLOBAL type), meaning
> only the hardware domain (or a domain explicitly set via
> XEN_DOMCTL_set_virq_handler) could bind it. Any other domain attempting
> to bind would fail with -EBUSY because get_global_virq_handler() would
> return hwdom by default.
> 
> This patch changes VIRQ_CONSOLE to VIRQ_DOMAIN type, allowing any domain
> to bind it independently, similar to VIRQ_ARGO. The console notification
> is now sent via send_guest_domain_virq() directly to the focus domain
> rather than through send_global_virq().
> 
> Implications:
> 
> 1. Guest kernels that previously called bind on VIRQ_CONSOLE blindly
>     will now succeed. Linux handles binding failure gracefully by falling
>     back to polling, so this should not cause regressions.
> 
> 2. XEN_DOMCTL_set_virq_handler can no longer be used with VIRQ_CONSOLE.
>     The domctl explicitly rejects non-VIRQ_GLOBAL types. This means
>     toolstacks that relied on set_virq_handler to delegate console handling
>     to a separate console domain will need to use a different mechanism.
>     Note: No known in-tree toolstack uses set_virq_handler with VIRQ_CONSOLE.
> 
> 3. VIRQ_DOMAIN bindings are not subject to XSM checks beyond the
>     standard event channel allocation policy. Access control for console
>     input is enforced via the per-domain console->input_allowed flag,
>     which is set for:
>     - The hardware domain (by default in domain_create())
>     - dom0less domains on ARM (in construct_domU())
>     - The PV shim domain on x86 (in pv_shim_setup_dom())
>     - Domains with vpl011 using the Xen backend (in domain_vpl011_init())

Actually this goes back to the concern I have raised many times, 
is_hardware_domain() always serves a double purpose. The explicit check 
that the domain is where the hardware is, but also the implicit access 
control check that it is allowed to do the hardware access. The implicit 
access control check is a subversion of XSM and the reality is that the 
input_allowed flag is just unmasking this subversion for an explicit 
access control check outside the purview of xsm.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 15:15:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 15:15:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235769.1538632 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsjGR-0005B5-10; Wed, 18 Feb 2026 15:14:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235769.1538632; Wed, 18 Feb 2026 15: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 1vsjGQ-0005Ay-UZ; Wed, 18 Feb 2026 15:14:54 +0000
Received: by outflank-mailman (input) for mailman id 1235769;
 Wed, 18 Feb 2026 15: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsjGP-0005As-NM
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 15:14:53 +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 9230145e-0cdc-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 16:14:51 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so59828295e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 07:14:51 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483983cf758sm20175595e9.17.2026.02.18.07.14.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 07:14:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9230145e-0cdc-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771427690; x=1772032490; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ejKGYYcKSl1yyojiwoaWBpbKznSBDiN085l/netShYg=;
        b=ICPH48MNAuLl9FxUM9VwmJ1KeZ0aGTyIDYiTtwNNwyba5lDuleFF69lfq5DMpjLdNy
         clJ+NqxE3yY3GSK/hTj5xZ4ebF7bEJLP9Dx4xpTymBWgiF869UB/Q9ejrt6jS8w/Es5s
         hU5mOw5MM0hXBljW2CE6x/lpysI7OaVdO2wswTLaz+QEgjloo6pSqS/IMN60CtNuaZMG
         XQAe/Rsdho9LJhsSjbXzLWezq7Ud1OsxvUMObdohpgmx8c4WbsfNIPouQaGrP+esdyk8
         hIQJDJNbFb/KCeMxJuecY+WM10FHvtQIi6pA5SDVRtfC/bNnVSJ08+p0K+JhwJ9IZFya
         EP5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771427690; x=1772032490;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ejKGYYcKSl1yyojiwoaWBpbKznSBDiN085l/netShYg=;
        b=A+Fwj/JN0262FCHTHN88CbDoqBooZ+n1AkkfdtnVrR1ZlFgVYgbAK9RcyUBz6RyoN5
         aRhvy95s8T4N29Jcrxmu2A+rVbCQs2Q9anyliOR1OWHtwXBSEnMlWKEhojPAJZ0essvY
         hYdljEkg21MFelpe2wbAI2t3dvybxvn378GXaIdaTKucK5DGnkdvb9PiIYomgpuW0Rtz
         aNXUwnTIxwfr1pKUSs+b/dxMeMT/uhzIGL/iklSSPHv+HiW6qpPZ3JfmYdtgER/Z00v8
         +7umIaNN1bo9EumDaGnvmyzPP0eZilgkNCx5rCWQIKF8ConnyAboubbQkkPSt8w2U0QG
         bOWg==
X-Forwarded-Encrypted: i=1; AJvYcCUPRa+4ENjUqtuQLKLc++Uh3jDVGAr0vuTIBQLEFv4o0xcu2ByMa27ntzuG6ayUQJ1RF9g9nHSus9o=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxkPeMGF/vrx9AJcNpUObJHE1XNwiYS+AamN16WiSOGw1A0bmFq
	LEhFVxYcbj4xBoLlqyYenf/YDLNoxj7PqE6j7I17qsNcR86LWEvzb0ZMUchRjZmdBw==
X-Gm-Gg: AZuq6aKlz0IHYZ8J7Dq5Q+xVtvhNRj4r3viYpEWc5awsSYbr0U9vA0lJJmHz/h9HJ7l
	B5QYnrpRpUFjq5oSGAz46MYB//DuwnMmO5QTN2ngBEblhR3IctySwEdjh+UGe5fV11ZS0o0iOde
	9pX2vWCrHWUeVkvgsrXnkd+bQf1gMVRn/bTSNwbb4J11KV8ydD0F6F1hsKd7jE8bp8IjVp6psX5
	mnnvbCeCbs0QveU0pMLzqAIVwLEuAS9zml5hmlYYeJn2cusaMEFuhy8mQCH1GLpryr8QQ0UMbwh
	Navj2/X/p0D844c74LZmmy9IcxjdfWLEpaFULdTRUyTHPoHeEOeWXsIVnRWXIz5ulXGOtIva9Um
	/xkDEIM2+9DZSfv0G/MAya+uB/fyNnSnNqqPybaoW8XX9iyPDbXlkfj6RdeUm6XIuRHEwjNG8JG
	D+npTaYBAfrgu1ApizemSvO/PpAjgCWC2FqSVJqlxRGq1L39p8JjaEKLRYJ2BsCX6p9qVj6olmY
	Pz0BSjg3F4j2ek=
X-Received: by 2002:a05:600c:4e4d:b0:477:c478:46d7 with SMTP id 5b1f17b1804b1-48373a3e749mr299892365e9.22.1771427690408;
        Wed, 18 Feb 2026 07:14:50 -0800 (PST)
Message-ID: <e08b65e3-8908-4882-9481-d4aa7dbfcfa1@suse.com>
Date: Wed, 18 Feb 2026 16:14:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 grygorii_strashko@epam.com, anthony.perard@vates.tech, michal.orzel@amd.com,
 julien@xen.org, roger.pau@citrix.com, jason.andryuk@amd.com,
 victorm.lira@amd.com, andrew.cooper3@citrix.com,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-2-stefano.stabellini@amd.com>
 <82c06e52-1db0-46e5-be9f-7ca0360ffc70@suse.com>
 <alpine.DEB.2.22.394.2602091520460.1134401@ubuntu-linux-20-04-desktop>
 <43e80ad6-7b42-42de-b36f-1a9079589912@suse.com>
 <alpine.DEB.2.22.394.2602131206040.6031@ubuntu-linux-20-04-desktop>
 <053d2624-2891-4534-83f0-b05e190afe3b@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: <053d2624-2891-4534-83f0-b05e190afe3b@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.02.2026 16:07, Daniel P. Smith wrote:
> On 2/13/26 15:09, Stefano Stabellini wrote:
>> On Tue, 10 Feb 2026, Jan Beulich wrote:
>>> On 10.02.2026 00:23, Stefano Stabellini wrote:
>>>> On Mon, 9 Feb 2026, Jan Beulich wrote:
>>>>> On 05.02.2026 00:37, Stefano Stabellini wrote:
>>>>>> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
>>>>>> global to VIRQ_DOMAIN to allow other domains to bind to it.
>>>>>>
>>>>>> Note that Linux silently falls back to polling when binding fails, which
>>>>>> masks the issue.
>>>>>>
>>>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>>>>
>>>>> Technically this is an ABI change, and hence I'm uncertain it can go without
>>>>> that aspect being at least mentioned, perhaps even its implications properly
>>>>> discussed.
>>>>
>>>> I am not sure if it qualifies as an ABI change or not but I am happy to
>>>> expand the commit message in any way you might suggest.
>>>>
>>>> The jist of it is already in the commit message, really the key element
>>>> is that VIRQ_CONSOLE can be bound by multiple domains.
>>>>
>>>> Aside from spelling out "this is an ABI change" what do you have in
>>>> mind?
>>>
>>> What I mean is discussion of the implications for domains using the vIRQ.
>>> Previously most domains would have attempts to bind this vIRQ rejected.
>>> Technically it is possible that kernels had code paths blindly doing the
>>> binding, relying on it to work only when running as Dom0. And really, you
>>> appear to break XEN_DOMCTL_set_virq_handler when used with VIRQ_CONSOLE,
>>> without which its binding wasn't possible at all before (except for the
>>> hardware domain, which get_global_virq_handler() falls back to when no
>>> other domain is set). Or am I mis-reading things, as I can't spot any use
>>> of VIRQ_CONSOLE under tools/, whereas I would have expected provisions
>>> for (host) console handling to be delegated to a separate control or
>>> console domain? Of course other toolstacks (the XAPI-based one for
>>> example) might actually have such provisions.
>>>
>>> And then there's the XSM question: XEN_DOMCTL_set_virq_handler obviously
>>> is subject to XSM checking. The same isn't true for VIRQ_DOMAIN-type
>>> vIRQ-s. Yet this vIRQ isn't supposed to be universally available to
>>> every DomU. Instead the ->console->input_allowed checking is kind of
>>> substituting such a check, which iirc Daniel said (in more general
>>> context) shouldn't ever be done. IOW in patch 5 you're actually effecting
>>> policy, which should be XSM's job aiui.
>>>
>>> Bottom line: The patch may need to be more involved, but at the very
>>> least the description would need updating to justify it being as simple
>>> as it is right now.
>>
>> What do you think of this:
>>
>> ---
>>
>> xen/console: change VIRQ_CONSOLE from global to per-domain
>>
>> Previously VIRQ_CONSOLE was a global VIRQ (VIRQ_GLOBAL type), meaning
>> only the hardware domain (or a domain explicitly set via
>> XEN_DOMCTL_set_virq_handler) could bind it. Any other domain attempting
>> to bind would fail with -EBUSY because get_global_virq_handler() would
>> return hwdom by default.
>>
>> This patch changes VIRQ_CONSOLE to VIRQ_DOMAIN type, allowing any domain
>> to bind it independently, similar to VIRQ_ARGO. The console notification
>> is now sent via send_guest_domain_virq() directly to the focus domain
>> rather than through send_global_virq().
>>
>> Implications:
>>
>> 1. Guest kernels that previously called bind on VIRQ_CONSOLE blindly
>>     will now succeed. Linux handles binding failure gracefully by falling
>>     back to polling, so this should not cause regressions.
>>
>> 2. XEN_DOMCTL_set_virq_handler can no longer be used with VIRQ_CONSOLE.
>>     The domctl explicitly rejects non-VIRQ_GLOBAL types. This means
>>     toolstacks that relied on set_virq_handler to delegate console handling
>>     to a separate console domain will need to use a different mechanism.
>>     Note: No known in-tree toolstack uses set_virq_handler with VIRQ_CONSOLE.
>>
>> 3. VIRQ_DOMAIN bindings are not subject to XSM checks beyond the
>>     standard event channel allocation policy. Access control for console
>>     input is enforced via the per-domain console->input_allowed flag,
>>     which is set for:
>>     - The hardware domain (by default in domain_create())
>>     - dom0less domains on ARM (in construct_domU())
>>     - The PV shim domain on x86 (in pv_shim_setup_dom())
>>     - Domains with vpl011 using the Xen backend (in domain_vpl011_init())
> 
> Actually this goes back to the concern I have raised many times, 
> is_hardware_domain() always serves a double purpose. The explicit check 
> that the domain is where the hardware is, but also the implicit access 
> control check that it is allowed to do the hardware access. The implicit 
> access control check is a subversion of XSM and the reality is that the 
> input_allowed flag is just unmasking this subversion for an explicit 
> access control check outside the purview of xsm.

I don't think I can deduce from this what your view is on the change proposed.
There is, as per what you say, an existing issue with is_hardware_domain().
(Likely at some point you'll propose patches to address this.) What I can't
conclude is whether you deem this new issue "okay(ish)" on the basis that some
vaguely related issue already exists, or whether you object to this new way
of "subversion".

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 15:32:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 15:32:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235784.1538642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsjXa-00086q-E5; Wed, 18 Feb 2026 15:32:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235784.1538642; Wed, 18 Feb 2026 15: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 1vsjXa-00086j-BW; Wed, 18 Feb 2026 15:32:38 +0000
Received: by outflank-mailman (input) for mailman id 1235784;
 Wed, 18 Feb 2026 15:32: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=LfGN=AW=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vsjXZ-00086a-07
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 15:32:37 +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 0b27d431-0cdf-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 16:32:34 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771428738518314.377186003945;
 Wed, 18 Feb 2026 07:32:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b27d431-0cdf-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771428741; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=QeVDekkCz7Hg6om11Fnf/bHZX7NfPngvtHxKfXB+w7s4TSgGinEG3nWIlOH1A5yYqruwGc7w/tpwZjjC3PN4ZBVGyhbvH13cg2kk5YUmvALmL75Tw+DAiZRi5x2kyn17sFHFRZKP/G1Zx2tQh/Z2D4sPG3ffCk8xDvHLX6ep+Ms=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771428741; 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=E35620rmUtu6PylGVwk0u/YqL4VTmXOxI+NG527ONzs=; 
	b=VsNcJnZgpQyAbBkyMii9nOd8ehlpmTnFyqkDHP8uAMM9GdXoFokrDAGhN986e30DmHoodyeyFW7qgPVKdHU4rGq0f40Q2C3Fxe92Vb2gZiV4kUIJfJDM9h5anuLuELcZiGfU5EszbuVc+Mhytg9ugxUKVq+Bi5bZbszfnUWeLQE=
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=1771428741;
	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=E35620rmUtu6PylGVwk0u/YqL4VTmXOxI+NG527ONzs=;
	b=c/HoKttM+dXpW7w75GKyxD7cqHxG5pE8ovNL1Au3rt/OXycdWCAcXneNb33GTyi8
	2uyUjF3S5MCWwScIAiBXmldmYaaXlf1PUUVBJyz/0TTnFVr9L3sYRtNJFKrSG2c8I/U
	x5rR/KTf4H5+OzLACL59/EvUpg/dxdJbo0uXcCnE=
Message-ID: <2ac8e0ec-54ab-4485-b0f4-a49920726d0f@apertussolutions.com>
Date: Wed, 18 Feb 2026 10:32:16 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] common/domctl: xsm update for get_domain_state access
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.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: <20260216215748.20398-1-dpsmith@apertussolutions.com>
 <1a1d8db1-d553-470a-8678-b879385b2fec@suse.com>
 <ff62ece8-a7f3-4490-967c-e9e8283dcd9d@apertussolutions.com>
 <57074bdb-6af9-4cd8-b1da-d348757ca168@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: <57074bdb-6af9-4cd8-b1da-d348757ca168@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/18/26 10:03, Jan Beulich wrote:
> On 18.02.2026 15:33, Daniel P. Smith wrote:
>> On 2/17/26 04:34, Jan Beulich wrote:
>>> On 16.02.2026 22:57, Daniel P. Smith wrote:
>>>> --- a/xen/common/domain.c
>>>> +++ b/xen/common/domain.c
>>>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>>>>    int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>                         domid_t *domid)
>>>>    {
>>>> -    unsigned int dom;
>>>> +    unsigned int dom = 0;
>>>>        int rc = -ENOENT;
>>>>        struct domain *hdl;
>>>>    
>>>> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>    
>>>>        if ( d )
>>>>        {
>>>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>> +        if ( rc )
>>>> +            return rc;
>>>> +
>>>>            set_domain_state_info(info, d);
>>>>    
>>>>            return 0;
>>>> @@ -238,10 +242,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>    
>>>>        while ( dom_state_changed )
>>>>        {
>>>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>>>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom);
>>>>            if ( dom >= DOMID_FIRST_RESERVED )
>>>>                break;
>>>> -        if ( test_and_clear_bit(dom, dom_state_changed) )
>>>> +        if ( test_bit(dom, dom_state_changed) )
>>>>            {
>>>>                *domid = dom;
>>>
>>> This is problematic wrt other work (already talked about in the distant past,
>>> but sadly only making little progress) towards trying to pull some of the
>>> sub-ops out of the domctl-locked region. This subop is one of the prime
>>> candidates, yet only if the test_and_clear_bit() remains here.
>>
>> Okay, but we can't be clearing the bit if the src domain doesn't have
>> access. When considering that xsm_domctl() does a no-op check for
>> XEN_DOMCTL_get_domain_state, deferring to xsm_get_domain_state(), then
>> any domain could invoke the OP with DOMID_INVALID and clear the bit
>> before access is checked.
>>
>> If you want to ensure atomic operations on the bit field, while I am not
>> a fan of this, a combination with set_bit() could be done. Let the
>> test_and_clear_bit() remain and then if access check fails, use
>> set_bit() to put it back. Would that be sufficient for your objective?
> 
> No, that could then confuse a legitimate (for that domain) caller. IOW
> you would still build upon the domctl lock serializing things. I think
> you want to do the XSM check first, and only then use test_and_clear_bit().
> 

Currently, acquiring the struct domain pointer is inside the if 
condition. This would have to be moved outside the if condition to be 
able to do the access check before calling the bit operation. Which 
brings up the question for me, if it is reordered in this fashion, why 
not use clear_bit(), aiui it should be atomic as well.


>>>> @@ -249,6 +253,15 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>    
>>>>                if ( d )
>>>>                {
>>>> +                rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>> +                if ( rc )
>>>> +                {
>>>> +                    rcu_unlock_domain(d);
>>>> +                    rc = -ENOENT;
>>>
>>> As you don't otherwise use xsm_get_domain_state()'s return value, the need
>>> for this assignment can be eliminated by putting the function call straight
>>> in the if(). Then again, to address the remark above, overall code structure
>>> will need to change quite a bit anyway (so the remark here may be moot).
>>
>> I can drop the use of rc here and inline it.
>>
>>>> +                    dom++;
>>>
>>> It may be nice to eliminate the need to have this in two places (here and ...
>>>
>>>> +                    continue;
>>>> +                }
>>>> +
>>>>                    set_domain_state_info(info, d);
>>>>    
>>>>                    rcu_unlock_domain(d);
>>>> @@ -256,10 +269,13 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>                else
>>>>                    memset(info, 0, sizeof(*info));
>>>>    
>>>> +            clear_bit(dom, dom_state_changed);
>>>>                rc = 0;
>>>>    
>>>>                break;
>>>>            }
>>>> +
>>>> +        dom++;
>>>>        }
>>>
>>> ... here), by having the variable's initializer be -1 and then using dom + 1
>>> in the find_next_bit() invocation.
>>
>> If you want this way, then there are two options, make dom no longer
>> unsigned or be willing to allow unsigned int overflow. If we go with the
>> former, If you agree, I would leave it as an int as that should cover
>> the range of valid domids.
> 
> I wouldn't outright nak use of plain int, but I'm putting in effort to remove
> such undue uses of that type. Unsigned overflow is well-defined aiui, so I
> see no reason why the variable can't remain "unsigned int".

Honestly, I'm not sure why it was not domid_t in the first place. I 
can't keep all the rules, but I thought MISRA frowned on overflow usages 
(abuse?) like this. If you will ack it with it as a uint or as a 
domid_t, then I have no issue doing it this way.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 15:47:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 15:47:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235804.1538654 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsjm6-0001c4-Jt; Wed, 18 Feb 2026 15:47:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235804.1538654; Wed, 18 Feb 2026 15: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 1vsjm6-0001bw-Fj; Wed, 18 Feb 2026 15:47:38 +0000
Received: by outflank-mailman (input) for mailman id 1235804;
 Wed, 18 Feb 2026 15: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=cF4C=AW=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsjm5-0001aX-Am
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 15:47:37 +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 251cd65f-0ce1-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 16:47:35 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-4376acce52eso3572443f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 07:47:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a74918sm42702163f8f.17.2026.02.18.07.47.33
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 07:47:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 251cd65f-0ce1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771429655; x=1772034455; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tpzoMMNKAw8Tv8y20Bu/mhhyjy6Tbc0ostyv8jc+Euk=;
        b=fOorGpl9XB03075tVM/ntiL+urd0+WrV1oG6kqy/qdlXllWwhlX4zxP6mCFLiEv64b
         7anjk3GtRu2N0+5e7JthwbhxM4wbeZGbiAfughFjOck+BI9d9JTCnhyQTRSz369uzyVo
         k/v48FjX5t3iO7FQGQHupqfUi0nzLf0Nr3/h3q6ilkW2O9sGrt5xKQ6NdlqqDQ/tMVyb
         Pl5rFGT4mGOcfE+O7kVsp3AbKB+4oBscsR2INa6mnGA/9eiDFgKgKj4RShsjQjPYSi6p
         tB4htT9e1Fqg5ljIi4e9BWxbv+wgTZr1+pkHqanWcBtWv37775+NsbXulmzWRJusAX5w
         J7rA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771429655; x=1772034455;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tpzoMMNKAw8Tv8y20Bu/mhhyjy6Tbc0ostyv8jc+Euk=;
        b=dm2O54y2Pnygomr8FXvcHMFtLVH1WF9JHQpgAHdblawvN8IHUcJsTsZrQK5tG2KIf3
         rXyxYYRwe6sOwJChmPL5JHDR0xwbc+QnEIUumY0ERkA6YGFp0P5gxqqE3dZ9cY1Up81X
         DyOwqkB2gpBfHuK+Fny19G3LdhFQ8MP6t9TJnLYes7cQZbIcdJL3Qz6VCDKqAaakfG03
         AnjndsR5IExWAe6Q5xr5i33TRaF4I+z+JHzIoUpyguyqHy51HQdG1QPtCnh+DiNOlXWO
         lKvQR5de7eSfVqwORBhozyvq9Gje2Ax7CaARW+aTvxrTJ3Jjxf1n8wiZhzB/fW6KTAYb
         LD0Q==
X-Forwarded-Encrypted: i=1; AJvYcCXic9YA7LvW5xkmZcgmdNNVaO1QRRdLt+epy6S6peE5uBfypnL7T7A4nusl/PcTczojrCmJP5FwEOw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzdId9wj8zA4+5I0zIgP3R8af/oM9wgzWdQVvmY9T95lWhrGbV9
	srjZlhxqTWR7SAOlc0NUEuJBi42GJRo1ppYPYRmQU6KaE1sFNMVNOr8xTiQmzx5hOQ==
X-Gm-Gg: AZuq6aJs7hV43xSH1YN3aDhuCYKEIiwrpK5tt8mZ4XTVtNmGc8PXLMprOnZg/2bX4zi
	EBCkaaRhQK67PsOwze2sKInBCVTHUcr8TssOpx7f112xPkQhdPKWvUz9c4h3uQjDyHaGarn2GOJ
	Xs82PIpQ75WtMkvQq3qx4WQgkvGT71SSGXOioI0VXFjl3mz7K2oilNd2/zLq6/LjEwPro4+oNO6
	Rq+Qk1A99OJ+42jwcdC6oAsU3h/s1bHjr0+0Ye3wP+cbSq97g7uRYGn4BUlNekO735+gg/vNS2x
	lEQkp4QuALOTfQv31ZRSUWNQeldtrHDQS0PUdtuks4xw8UE0H7f2kWzm/MzfuV6mBDwJAlw52MM
	prRxuCH+XSIkdeMp6Vc0tm4s7ayV0KId/OrzynMIWaR1YQnMJc5CcWEJ4Aoti+tPfQTjV2HLMl/
	WaWLEpcCE+jhzxICQ0PLl8ACosXh8AQkqXWFGrwNxPUvJIi3yT7J5dNgoMo2iz9cvtp1DmXPBdj
	LixR0RcpWh4iHE=
X-Received: by 2002:a05:6000:184e:b0:436:1a4b:de36 with SMTP id ffacd0b85a97d-43958e0314amr3869656f8f.22.1771429654789;
        Wed, 18 Feb 2026 07:47:34 -0800 (PST)
Message-ID: <158de6d6-f7ef-453c-9c78-00c4d785bcd1@suse.com>
Date: Wed, 18 Feb 2026 16:47:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] common/domctl: xsm update for get_domain_state access
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Chris Rogers <rogersc@ainfosec.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: <20260216215748.20398-1-dpsmith@apertussolutions.com>
 <1a1d8db1-d553-470a-8678-b879385b2fec@suse.com>
 <ff62ece8-a7f3-4490-967c-e9e8283dcd9d@apertussolutions.com>
 <57074bdb-6af9-4cd8-b1da-d348757ca168@suse.com>
 <2ac8e0ec-54ab-4485-b0f4-a49920726d0f@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: <2ac8e0ec-54ab-4485-b0f4-a49920726d0f@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.02.2026 16:32, Daniel P. Smith wrote:
> On 2/18/26 10:03, Jan Beulich wrote:
>> On 18.02.2026 15:33, Daniel P. Smith wrote:
>>> On 2/17/26 04:34, Jan Beulich wrote:
>>>> On 16.02.2026 22:57, Daniel P. Smith wrote:
>>>>> --- a/xen/common/domain.c
>>>>> +++ b/xen/common/domain.c
>>>>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>>>>>    int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>                         domid_t *domid)
>>>>>    {
>>>>> -    unsigned int dom;
>>>>> +    unsigned int dom = 0;
>>>>>        int rc = -ENOENT;
>>>>>        struct domain *hdl;
>>>>>    
>>>>> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>    
>>>>>        if ( d )
>>>>>        {
>>>>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>>> +        if ( rc )
>>>>> +            return rc;
>>>>> +
>>>>>            set_domain_state_info(info, d);
>>>>>    
>>>>>            return 0;
>>>>> @@ -238,10 +242,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>    
>>>>>        while ( dom_state_changed )
>>>>>        {
>>>>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>>>>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom);
>>>>>            if ( dom >= DOMID_FIRST_RESERVED )
>>>>>                break;
>>>>> -        if ( test_and_clear_bit(dom, dom_state_changed) )
>>>>> +        if ( test_bit(dom, dom_state_changed) )
>>>>>            {
>>>>>                *domid = dom;
>>>>
>>>> This is problematic wrt other work (already talked about in the distant past,
>>>> but sadly only making little progress) towards trying to pull some of the
>>>> sub-ops out of the domctl-locked region. This subop is one of the prime
>>>> candidates, yet only if the test_and_clear_bit() remains here.
>>>
>>> Okay, but we can't be clearing the bit if the src domain doesn't have
>>> access. When considering that xsm_domctl() does a no-op check for
>>> XEN_DOMCTL_get_domain_state, deferring to xsm_get_domain_state(), then
>>> any domain could invoke the OP with DOMID_INVALID and clear the bit
>>> before access is checked.
>>>
>>> If you want to ensure atomic operations on the bit field, while I am not
>>> a fan of this, a combination with set_bit() could be done. Let the
>>> test_and_clear_bit() remain and then if access check fails, use
>>> set_bit() to put it back. Would that be sufficient for your objective?
>>
>> No, that could then confuse a legitimate (for that domain) caller. IOW
>> you would still build upon the domctl lock serializing things. I think
>> you want to do the XSM check first, and only then use test_and_clear_bit().
> 
> Currently, acquiring the struct domain pointer is inside the if 
> condition. This would have to be moved outside the if condition to be 
> able to do the access check before calling the bit operation. Which 
> brings up the question for me, if it is reordered in this fashion, why 
> not use clear_bit(), aiui it should be atomic as well.

The problem isn't with clear_bit() by itself (yes, it is atomic), but
with how things want doing here: The test-and-clear ensures data for a
given domain can only be retrieved exactly once (until the bit would be
set another time later). With test split from clear, multiple callers
could get data for the same domain, as in the window between test and
clear a 2nd caller can come in and also commit to returning data for
that domain. (Given the restriction on who can invoke this, one might
conclude no such race is possible, but that single domain could process
things on multiple vCPU-s, and would then wrongly be notified twice for
the same domain.)

>>>>> @@ -249,6 +253,15 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>    
>>>>>                if ( d )
>>>>>                {
>>>>> +                rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>>> +                if ( rc )
>>>>> +                {
>>>>> +                    rcu_unlock_domain(d);
>>>>> +                    rc = -ENOENT;
>>>>
>>>> As you don't otherwise use xsm_get_domain_state()'s return value, the need
>>>> for this assignment can be eliminated by putting the function call straight
>>>> in the if(). Then again, to address the remark above, overall code structure
>>>> will need to change quite a bit anyway (so the remark here may be moot).
>>>
>>> I can drop the use of rc here and inline it.
>>>
>>>>> +                    dom++;
>>>>
>>>> It may be nice to eliminate the need to have this in two places (here and ...
>>>>
>>>>> +                    continue;
>>>>> +                }
>>>>> +
>>>>>                    set_domain_state_info(info, d);
>>>>>    
>>>>>                    rcu_unlock_domain(d);
>>>>> @@ -256,10 +269,13 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>                else
>>>>>                    memset(info, 0, sizeof(*info));
>>>>>    
>>>>> +            clear_bit(dom, dom_state_changed);
>>>>>                rc = 0;
>>>>>    
>>>>>                break;
>>>>>            }
>>>>> +
>>>>> +        dom++;
>>>>>        }
>>>>
>>>> ... here), by having the variable's initializer be -1 and then using dom + 1
>>>> in the find_next_bit() invocation.
>>>
>>> If you want this way, then there are two options, make dom no longer
>>> unsigned or be willing to allow unsigned int overflow. If we go with the
>>> former, If you agree, I would leave it as an int as that should cover
>>> the range of valid domids.
>>
>> I wouldn't outright nak use of plain int, but I'm putting in effort to remove
>> such undue uses of that type. Unsigned overflow is well-defined aiui, so I
>> see no reason why the variable can't remain "unsigned int".
> 
> Honestly, I'm not sure why it was not domid_t in the first place. I 
> can't keep all the rules, but I thought MISRA frowned on overflow usages 
> (abuse?) like this. If you will ack it with it as a uint or as a 
> domid_t, then I have no issue doing it this way.

A patch without changing the type I would ack. A switch to domid_t, if indeed
correct (I simply didn't go check yet), likely would want to be a separate
change.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 15:50:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 15:50:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235812.1538662 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsjoX-0003A0-Ue; Wed, 18 Feb 2026 15:50:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235812.1538662; Wed, 18 Feb 2026 15:50: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 1vsjoX-00039t-S1; Wed, 18 Feb 2026 15:50:09 +0000
Received: by outflank-mailman (input) for mailman id 1235812;
 Wed, 18 Feb 2026 15:50: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=nwpa=AW=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vsjoX-00039n-An
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 15:50:09 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7df48003-0ce1-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 16:50:06 +0100 (CET)
Received: from CH2PR07CA0065.namprd07.prod.outlook.com (2603:10b6:610:5b::39)
 by SA1PR12MB9469.namprd12.prod.outlook.com (2603:10b6:806:45a::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Wed, 18 Feb
 2026 15:50:00 +0000
Received: from CH3PEPF0000000C.namprd04.prod.outlook.com
 (2603:10b6:610:5b:cafe::1f) by CH2PR07CA0065.outlook.office365.com
 (2603:10b6:610:5b::39) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.14 via Frontend Transport; Wed,
 18 Feb 2026 15:50:00 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH3PEPF0000000C.mail.protection.outlook.com (10.167.244.39) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 15:50:00 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb
 2026 09:49:59 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb
 2026 07:49:59 -0800
Received: from [172.17.121.74] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 18 Feb 2026 09:49:58 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7df48003-0ce1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HA4+Q9NHKYGncshG83j3/NYPK5U/UmUCnWXPTcCm52yhsED6cWyz7gJWYSl5GPc8SZXEX/CiWd73PhiEkKsaWiXqziryBoQV74+R2pnszRb9z+aR3I0A5KiQsYJo6oYOP3G52ImYIXPCFKSu4JT6xP4OMsFzAd7/ZYW/4fQIqMhaiu58MYu+xtCiZRFHE7DQUB5okm34XJ1/bWyXMmdmAclQh+PyRLCh5Nfqa58IBYBWH/C0P46H7YE/pzIb24LI6nbX+f5zdl6l+kWgcxEJKSlMbfBz+ccBBtz2ygtSYRDKPcSqsUf56zZp9jCS0QyZETf4I1Pyho3mjpmmpGQxuw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eiDC6gGtcvi+Z1M7pdgqZLR9NEQKhSwZ1067MLtFS5I=;
 b=esjr/cXrHZ79Q5Mw0Mo1ifEPcaocboeMO2nsh1kcfWVv4HM2/7kCi5nT8wMqDMe31MS0FQKUox2eDDZvB0L9nDQI8xNONXwtP2AZg/ukqQIDhhhGgaOOlyX9/Pp4OOirzyTVo5OQb4W4NsBYOeGXCDKIrajT0nsum9UEPM5RzpseaySpXiVe7eAwfcGjLjYWkgbqFa67ABuBPGK4fmTct3yWCszEZEBma3znJB0H0iSN95rHA01HdQtNaeSg2DSrHZIRS03uFsba9hYpDPrCFADisRBbF6yYWh0AxsshuO+srUMktTxZaa1TgltKlr9FKxnLEoDkaCyJlwc6Hq5tZQ==
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=eiDC6gGtcvi+Z1M7pdgqZLR9NEQKhSwZ1067MLtFS5I=;
 b=tSS0J3q8CVAjFEdmyHs5Yq+v4RJKqeF5Vr07xAUzLkzeFl2dlneXfReMXMB/KCsUsQZj0jLN62NcKJGl90lpP+N3o+lx06ej0UjrXJMT/IuhxgoUIGOgI3O6lzAEdC4zv+4kcKpHXc8KZYl2UbMZ4XpEHM5cwtRfpyGhRtgFpfY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <259b799d-33bb-4180-9816-f9bc316b8d9f@amd.com>
Date: Wed, 18 Feb 2026 10:50:01 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 3/5] vPCI: move vpci_init_capabilities() to a separate
 file
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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <c90890f0-2e6a-43d9-84f9-b0ea19a11d3d@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <c90890f0-2e6a-43d9-84f9-b0ea19a11d3d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH3PEPF0000000C:EE_|SA1PR12MB9469:EE_
X-MS-Office365-Filtering-Correlation-Id: e5e801c2-8075-4995-9811-08de6f055f85
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|36860700013|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dWI2ZzRrYW1XajNSSzI2N091bHR5dEZUVTAvWG43M1QzT1lCY2g1cUpxMC9O?=
 =?utf-8?B?RXl6dWVCYk5GbGZaaEhEbWtJWmpQL3licHByNE5kL2FqYWs5a0M1MVZoQld0?=
 =?utf-8?B?RjUwVytJWkhDZ1NHV3JGWXFZZWhuM25FSXRTSDR5dGJUN0UzODBjVE91NkZO?=
 =?utf-8?B?T3lGNlNiOWdGc3hnMEc1SG1VSGViVGtNRFMybVlOeDFOeGRieUszN2s5QVE0?=
 =?utf-8?B?ekJ5Lyt6aXU4TGFiVHA0eERZWWdqVVVLclZGT1Z2RkhJZGhsVHpyNyt2QVlr?=
 =?utf-8?B?QW9QVEJwdXhiQkN6MTZUVno5VHBvaERPRTVub3ZrVU50RTV5SnNjZnJRVUVa?=
 =?utf-8?B?S3pWYTZOd0Vpa2daRFBNbld3MHdNYTNpWDFHSXhQTzRLSjVqUUQydkZ3VDFJ?=
 =?utf-8?B?cDh5SEYrK3Fqc0VnUEMwd2RDRTN3V05wU2k2MVhwcUNBU3dMNDgzOGtLTUdK?=
 =?utf-8?B?TEZDNDIwL1BtODZ4OVhOZUxGZUtJdXhHZUxsK1N0M2Q2SUNrWHlnejc4dzht?=
 =?utf-8?B?OXE0dXZHNTd4SlRSSmN0ZHVmRnpraGZOUVRONGVGMTNWd2dxb1RqN1lvR1hz?=
 =?utf-8?B?Umo4RmU5WVREbFg2ZGhIMjF0eHpNT1lQZm1JYXd5S3oxZzNEanN0U3BtaVll?=
 =?utf-8?B?N01LTTMwVitxUWJBYldpRFA4YmRZVnU1czEzRDU4V1NqdGM5VzZPYTdDZXVy?=
 =?utf-8?B?MUY4dzE4eHptY095dG9FS2psRk5TQTkrcTZtRFhuWEp4anFGM2NqUkxUWWI1?=
 =?utf-8?B?elJVcExJdTJWdW5YV1Z3TkhDb0t3STVLd2doYVphaFVtYWhTZVhGSElJL0dY?=
 =?utf-8?B?TTF3ekpUVnQxYmRuU2ViMDQ4WFlCemFkbHZkT0NlNXdzSnN1djkzLzU4aDZu?=
 =?utf-8?B?OUZDTFVEZHRMN3IwakJHMzdZZmhGc0JlMElRb3hJeHRzb1pMVmdHQ2VOYWFF?=
 =?utf-8?B?RnpzTmRENWsrNUFOSXdBUW5BMDJ4VXlTQmRBaWRXQllkK281Rlp4VnRvN1Vs?=
 =?utf-8?B?ejY5eTRXZEVxN0I2Q25ES3l5QXBKMDRXOFBWeG9ZVkw5M1BidzJST090ak84?=
 =?utf-8?B?UjJxaFhQNm1SRXVRWXFLSUFOa092UjlCQVBTdXRLMExhS0ZGS05Wd0NvM2tC?=
 =?utf-8?B?c1VqRjIra0o3dElOLzZIV3dLeTVxMmJ3ODM0bERHQWh2R01zWnY3a1EwZDJP?=
 =?utf-8?B?QTZ0cTRUdm5FL1QzYUZITzQrbnV4enh5Nlh2UTVaYU5oME5XeTgxZWMxbDBz?=
 =?utf-8?B?UngyS0dtbnpsSEU2aVB0Z29sTG1ENUd1SFo1dDJBakxFTTZJWUQxR3JBdFpG?=
 =?utf-8?B?d3pIU2doR09sR2dSSEQvZkhqRnk0bjQ5NVFVYWRoemludkllV2pqdzJ2Q2hi?=
 =?utf-8?B?MXo5bmhZMlZXaFBlZGNvMkFGN2JMUkd6dUVXRmQrdUZtRXpldEhVQzhoRXdN?=
 =?utf-8?B?Z0k4MnBlY3RtOEZEeUxIc3ZHc1NZVFNtUy94c2Q0WXVGemR2NVBVU0JmbVlI?=
 =?utf-8?B?RmV4R05hT2kyeHowZTY4ZGpvbG9oNVNZdWpDZ1N5QjJ3WisvZk50RWlVWER0?=
 =?utf-8?B?K1diWDJsZCtNZ3NrY2V1ZWJqaHJ3RnpwMTMvQkFLWERCdjFmQ0kxNG9CQUJ6?=
 =?utf-8?B?dC83VmErb1RreFlySzkwbzJRUmUvVlFOM0lnOVAvTmc5N2U5SmJvR2d4UzRN?=
 =?utf-8?B?UHdmMWtOQ053TEVuMis2OG9UeHZQRzQyTlJhUVd1N1FQcUdvUzFndFU5WXh6?=
 =?utf-8?B?ZlJXTGdZQm1Ycm91ZFk1N3B5ZmlFMTFscXE2aFdEMU80TENLZGR6SXdJMWR0?=
 =?utf-8?B?dFFXWmRuU3oyRER0eURJRElETE4vNktPZTNyWWVWakZBNWE1NHdHOVBhZ1c1?=
 =?utf-8?B?cmljMkZrNWJtMkdMR3BPMCtldjBwanN4Z2ZFTERqMnVJdithR3FpYll4SmVU?=
 =?utf-8?B?NmlHaTV1ODZrZDh4czQySGlLanFKck40ZnRJNmN5d21GQzAyclhMV1JjR2Yz?=
 =?utf-8?B?V2ZzVnp2dWkyY0RHVkNLb3lFaTVnTEVEU21BUGpBYklKNktvRnUvcEtXL2Rr?=
 =?utf-8?B?Q1hydlQ2L0Z2cnJWYnNQNnJ2aW1ySCtJQjlDaTE0cGkwcGpjQnFCc3dLazNk?=
 =?utf-8?B?SU1OTk1OU1NJQnVkOFczd3MvVEJFbXExNSthUmJoTENvaUtLWlNUaEVyVTFY?=
 =?utf-8?B?YnVaS3ByQmFIbUYyZlZkYVJHRUEwd25jNU0raHRwYTJEY2FGSHdwUXJ4aUNW?=
 =?utf-8?B?azdpNTFsMXd0WHlQRi9MS2d3dlVBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	0g6y1M5VhnkZ1WjYa5NmelttlMXnUN0HE4EkYoItzSLBOO12mZ1dKMYZ9GwjQwDnch1Tfq5zSy5B9zArP2eSCID9NJBYxqgkzmwzLgD1a3yxNdTLNNL7bakfr/c/USyvu2fGYOjlPF73FOaTFq+r1waDcQ0bdzGJOBBxrdqXXEZ4IVbSxOPGF92zwnCw6Td/00GCXKgfxHcvYYIg90ookUGgI1VegreEIurGpY3auNNACVLeqBSOnWPcUOcLxjjRJdcwqw7RLdA5Dl/Zo+J+eRxUruPqIcUGJve47XW1XZp+qqjLhTizOndP5lZpJchyuTMa8SfAMGVG+nq2sh5zlGhI+5wRGG7C9bpZOJ2+rOeSB8ScS2ToRyiYlW+aC1KPaSkvI9mLfhtO583eM2k7D7HQt9vRD9NXkaUvvGYwpFT7iAWj9ZuYP4VguXGgp0F7
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 15:50:00.0766
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e5e801c2-8075-4995-9811-08de6f055f85
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH3PEPF0000000C.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9469

On 2/10/26 05:54, Jan Beulich wrote:
> Let's keep capability handling together. Start with moving
> vpci_init_capabilities() and its helpers, plus splitting out of its
> cleanup counterpart.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

> ---
> vpci_get_register(), while now only used by cap.c, didn't look like it
> would want moving there.

OK. It seems potential opportunities for compiler optimizations would be small
anyway, and this is not a hot path.


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 15:50:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 15:50:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235818.1538673 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsjov-0003Xh-7J; Wed, 18 Feb 2026 15:50:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235818.1538673; Wed, 18 Feb 2026 15:50: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 1vsjov-0003XZ-4H; Wed, 18 Feb 2026 15:50:33 +0000
Received: by outflank-mailman (input) for mailman id 1235818;
 Wed, 18 Feb 2026 15:50: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=HD5B=AW=arm.com=Bertrand.Marquis@srs-se1.protection.inumbo.net>)
 id 1vsjou-00039n-08
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 15:50:32 +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 8b01966a-0ce1-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 16:50:26 +0100 (CET)
Received: from AS4P251CA0014.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:5d2::14)
 by AMBPR08MB11660.eurprd08.prod.outlook.com (2603:10a6:20b:735::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Wed, 18 Feb
 2026 15:50:23 +0000
Received: from AM3PEPF0000A79A.eurprd04.prod.outlook.com
 (2603:10a6:20b:5d2:cafe::1b) by AS4P251CA0014.outlook.office365.com
 (2603:10a6:20b:5d2::14) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.14 via Frontend Transport; Wed,
 18 Feb 2026 15:50:22 +0000
Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by
 AM3PEPF0000A79A.mail.protection.outlook.com (10.167.16.105) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.12
 via Frontend Transport; Wed, 18 Feb 2026 15:50:22 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com (2603:10a6:102:84::13)
 by DB3PR08MB8794.eurprd08.prod.outlook.com (2603:10a6:10:435::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Wed, 18 Feb
 2026 15:49:19 +0000
Received: from PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e]) by PR3PR08MB5593.eurprd08.prod.outlook.com
 ([fe80::aae1:6871:afc4:620e%4]) with mapi id 15.20.9632.010; Wed, 18 Feb 2026
 15:49: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: 8b01966a-0ce1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;
 b=o716aLLDET5Y0eW1BbP3i9d/POadYgY/TxBACo9VNDbv1EszvaWt09rv7F6x5WOhQsAO+5gOPq1aI2m056HDn7U9fL2rvuOEKg34/QnTSH+Sk2HY0d/ZEKU84qCdW0T6m/gmx4SOboce3qnjuHw5Ngc9BzFVucYmx759I7HxK6VKI0ccOe/Dy70kdWUG/P5f/cLha6obkhjQU3ZYfJ0qhJYp2dX2SOK/zsTZB6RO3OMsZjAjYqSn/T7fll8LJsNdJN9gXNRzPzc/b7uH4vKbWuDKvjrkpJqu+xZPYPARtGDEIQokQr1k+Uc9HR/s6ZX1rpA9spSSHXovrDs4nuq22w==
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=A3DeqXAIKKnWywQHo9xnl0/8i309d7qRZueRR3vjb/A=;
 b=rfw+JQb0vQZW71Qca58PmX2co9OsZEMcrijuqCMFRj7u11Lot3jYreoJBP9JerQg6hZXfm9h6WqZ50dyP0gMR/F3U2uz6u8dVWv//xWyZmiogEZj4ZS21JtLGru7KLoqT3HHCb/Rx/ge9pOYdKU7dCfj26Br7Ccm2GzETIVh9Mx4M9H8DbtdFERBxTRhB9nlZus9ZTlcNcAGYj1qDK6PTnTCRpcHfA8lCU19+llYIjTR/KpHzveSXjWfNBwZmqsSIzwP3U/ib7nMREzxQ0dlhWmtDsYwhGTzUAvboRCun6Yv90vWB7JSo1N9d8/KWec9DIMMLSCrUqfOJUt7/rywoQ==
ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is
 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass
 (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass
 (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1
 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]
 dmarc=[1,1,header.from=arm.com])
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=A3DeqXAIKKnWywQHo9xnl0/8i309d7qRZueRR3vjb/A=;
 b=lm8DASCZ1w6u4LBnhTpirZxPpzIH//yPbClM4SAIKlbM8Qqfe6ZktrSv5OemsgjmI/fDqNdGgXzwrcELIh8ZnMPjg9xoo1wqqxKE6oPgOoDfPtLaiMC6USwwZuXmB2lEE6rfbh7GlQMuD6xtw2Hxecofx/J96WRw04tSN7wmQ0M=
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=duERugWhXsPHTkcUtYufpsFb4XWFcg0QRV57NzLTBQj12YpTTbPpDii0um7JQZOyOWYaktXZ7yDJeSARizFxgXSQORN7iPyE7+s9YY3YImnTylPoPPqljb+TnpsI02oGtf7mZnqosbyftKLTTVgXYA9pBNA6/JGmFMnsx+bVdQYZjQrOsiexqEWUSk9CcegLUu5AOV2oJrlOrIP1PDWWB5RfFCPYi/JKvgnEke/3adStimvDdWEcTxJp+y5K6eoL2JWUA99qm/AoVYN1wF0SFxMpzqiv0i8VwKn84w2Ul16MXNCkuuxfk57olUnvKc+eDImzTcwaqtoCqZSp1HduGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=A3DeqXAIKKnWywQHo9xnl0/8i309d7qRZueRR3vjb/A=;
 b=PbhM/YSgWYxQmuic/Nxca05ZnfhFEQ0qkdZuPpOLZpltsMzxtbU90ZfDvB7y9ni7t80j6XEJquwqYF2ea+8StQlBIksC0zd57W4D8zkhF2DpDhSm2I18OAc9Oq4n0OCPzi0UJEpd4fLVvi+uhA3M2uJZYd82vbjwo4ngqRX2Xc25WFs+8nL6JsQA3HA9Tq1CbUG6LphCs9g2sdnw4Me66ltQO9BW35rtuvG3w2X4MUAG7qkDCM2w8PjxyjR6KvBhvAWP1xRuGGWOmNiL2lj5UcUpYfgRmMTbmEiw0Eb6marfEyhF4gQByRK3/Ro++QVeQ0yt/kU6P6TKW50xQ70dIw==
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=A3DeqXAIKKnWywQHo9xnl0/8i309d7qRZueRR3vjb/A=;
 b=lm8DASCZ1w6u4LBnhTpirZxPpzIH//yPbClM4SAIKlbM8Qqfe6ZktrSv5OemsgjmI/fDqNdGgXzwrcELIh8ZnMPjg9xoo1wqqxKE6oPgOoDfPtLaiMC6USwwZuXmB2lEE6rfbh7GlQMuD6xtw2Hxecofx/J96WRw04tSN7wmQ0M=
From: Bertrand Marquis <Bertrand.Marquis@arm.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Xen-devel <xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, "consulting @ bugseng . com"
	<consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>, Jan
 Beulich <JBeulich@suse.com>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Julien Grall <julien@xen.org>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>, Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] CI: Extend eclair-*-allcode to enable as much as possible
Thread-Topic: [PATCH] CI: Extend eclair-*-allcode to enable as much as
 possible
Thread-Index: AQHcfj5G7fNp7PSkb0GiHPxZx0yorLWI378A
Date: Wed, 18 Feb 2026 15:49:18 +0000
Message-ID: <886C592D-FEC3-4266-B8EA-BE898D140145@arm.com>
References: <20260105122436.555444-1-andrew.cooper3@citrix.com>
In-Reply-To: <20260105122436.555444-1-andrew.cooper3@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.300.41.1.7)
Authentication-Results-Original: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=arm.com;
x-ms-traffictypediagnostic:
	PR3PR08MB5593:EE_|DB3PR08MB8794:EE_|AM3PEPF0000A79A:EE_|AMBPR08MB11660:EE_
X-MS-Office365-Filtering-Correlation-Id: 12fc3917-3378-4b84-69ba-08de6f056d03
x-checkrecipientrouted: true
nodisclaimer: true
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam-Untrusted:
 BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700021;
X-Microsoft-Antispam-Message-Info-Original:
 =?utf-8?B?TWJyNU95U1Juajg1NFl3RkhudEhFSDF0bEVPcTBxY0VMVEt5em9DU0NDcmFv?=
 =?utf-8?B?MFRZSlhsNjl0YmVpMVlNaHdNZjl6bHRlTGhURjZOaGt2cVA0L3dNZ1lONXZH?=
 =?utf-8?B?bGVGMGF1OWpnU1VSREJSS0VDZm1ZN2hsemNUMG5HRm8reDIrMEFEc3M1N1Ix?=
 =?utf-8?B?dU5wck1NZDVMWkcxRUIvbXNidDZpUENEaWtyR0xZMHFubDBOQ3hZYy9KZ0py?=
 =?utf-8?B?VXE3eVgya3FUcG1qTU1hczRsVGdJc3A3L3BPQnlURUo4dWQ5NDJjWGgxcTYz?=
 =?utf-8?B?NWcydVN4S05jWVMrS0x4NkdnN2xqZHZ0aHhWZ0ZpTkQ4RlRaTFczcXliSDhs?=
 =?utf-8?B?Smd4a0tEejFGY2xnWDZZaCtjTGo2M1k0eDA5RllyV2hYdGdUdCs5czBNUjk4?=
 =?utf-8?B?aG9OM1BKMWxJQWJIZm43d2JnTG5lc2UwdC9rdnFxdDVkZVN1OUZmV1lhZHpQ?=
 =?utf-8?B?MXc5Sm9PR3E1a0VEMkJYVVBqbk1ZSkE1Q3o4UU9sTWx0YkhCNkV6dERhZEh0?=
 =?utf-8?B?NXlndzhSUnFGa1F5aG1YSGdKOHVPNHFlQjJ0YitneUVaTHVITXhQVmFVemRp?=
 =?utf-8?B?SUVGeVV2V1ZkSUxhWUJpejUxL0RZQXBtWkRsTS91L2tGTlBwTDhDaWk2ZExN?=
 =?utf-8?B?Zko0cmQyQmpjeXByY2pIS1krdUdqRlVGdC9KMnZvSSt6QmhGRTdET2pZVklu?=
 =?utf-8?B?NFQ2dTUrS1lvS2hHYVA1M2ZmWUVyVkVTcjRyZUJDTXNSY2IzWFFGeXltS3dz?=
 =?utf-8?B?RTIramVsYWhLaWhKZ1V6SGhUMkk4SHdnR3pheEMyVG5OMlZocXhtWmxPUGNM?=
 =?utf-8?B?cDZRZWFCRWZkSWtkNjFibmFsaHY4ZndvejVWUHFtLzhmSTBVWWc4eWhneGdK?=
 =?utf-8?B?ZmFZZS9NdXJoMURoOXRILzZUK0RjK0Zocy8yVU5Sa1hKWnYvMlVVZnRWc24w?=
 =?utf-8?B?Ync5b3hKbmUrWWQ2dUVib3R6UjJwYVkxd2xRMU5mc0FOOEo0MkRjWEh3ZXhx?=
 =?utf-8?B?cmsrbVlRcjlmK3dqc1cwQ2RWVHJWejY4Q1ZhQzk5L0ZCOW1DTWxOd0t1UEQx?=
 =?utf-8?B?am1DMmxscmNQK243VXNVdmZrc0JoSllPODIrQmd2NjRoNENsb3lTNGpDcVpn?=
 =?utf-8?B?VjlTOVdFTkdvSU9lSGdkVmp6eCtLaW9JdmxsTnRFb1pmelBxY0xoU2ZlaS9m?=
 =?utf-8?B?OUppSDZBM1BrNzU2VmR5bGZRYitJWktxZFd0YlgxbVQzeGx6K3B2NkFzeWI1?=
 =?utf-8?B?b1hCM0wvVkNFbldLQUloOHI0NWY5OWtla3dpcWFsRS8zWmtKVFJURW12VWZx?=
 =?utf-8?B?LzFURWF5QWhxVDV4K3EwVTNtNVBjTGFlNjRXaTQvQ1RBajdoU0dUWTdJVU1P?=
 =?utf-8?B?TmxSOSsrQjJLcnhTUW1GNzM5NzQ3dUpacnJRazFXeGpzWDVvcmRKSXZrMUly?=
 =?utf-8?B?c0JXVTVGbE5KNmVVaEg0RVZaWCtpM2JUNFVhbUhhaWtwT3o4bmxnWUdUMUhP?=
 =?utf-8?B?Y1RLMnJWaDBLSTZhMVJDUU93VDIrUHRmeE91UisyTUh2aE92UVpiYjUyb01y?=
 =?utf-8?B?NkNnWVpqRUtKamR1dDltdXBHU0xlTisrTjZYWTNMMW9QQ3k1SGNwaWFxeGJU?=
 =?utf-8?B?bElaU3R6QUZLaTdnUU0wL1FPNVludUhudzl2RTI4NFAvUVZGbU5tZExHaEtH?=
 =?utf-8?B?OHRkTHJIdDZTUVRySTYrZUdER2VnUHVOSU4xSHpnN1FqZ2lsNTRITndBODdW?=
 =?utf-8?B?aTBBdlloUXMwNjlGdkJadkNPRG4xNFhJd1JTU2RkY1h6R3M5bFQwZklIZFNh?=
 =?utf-8?B?Q3JSMUZkR01td1Z1ZWRTRFI2NERvRGdsTDFLNkllM2VUcDJPMXpmcEh0UHJU?=
 =?utf-8?B?d0hjc0p1Q1crQXVUYjBoNWo4Tmg1anZNQzdUeGRTdjFEMkJMYzQ5dXFRWGJJ?=
 =?utf-8?B?c3VmZnMvM2tDVlFTVER3UDZGWW5UaEtYSEtBeTUwNTdoOEhPcVJtK1dERHpB?=
 =?utf-8?B?dTZSb1h1dU1jNjlYK1RmdjErMW50SGxPQ3ZOT1pBSHlZMWxWTVgyVzBPSjdn?=
 =?utf-8?B?UUZZamhkajhtRkdSV1FlamhXVXBDdUc2bmhySmhUTXBXbWpOVk5jK1Y1SktC?=
 =?utf-8?B?b25oQW8zTGxBMkFOcDhwNDVabHIzVzJiRXpOelpPVVFYZ1lNRVVXdUs3QTFk?=
 =?utf-8?Q?ld23OFURQXvBJhZJ2xv3NZg=3D?=
X-Forefront-Antispam-Report-Untrusted:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PR3PR08MB5593.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700021);DIR:OUT;SFP:1101;
Content-Type: text/plain; charset="utf-8"
Content-ID: <5A81EF580E006D4A8C788D22ACBADF1C@eurprd08.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB8794
X-EOPAttributedMessage: 0
X-MS-Exchange-Transport-CrossTenantHeadersStripped:
 AM3PEPF0000A79A.eurprd04.prod.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs:
	324411bd-63ba-4bb6-cb0f-08de6f0546cc
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|7416014|14060799003|35042699022|1800799024|376014|36860700013|7053199007|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?T2haMXIzUkZ1TnA4VWYwQVAxSFNqS1IySEVWbUw5TWxqamRwc2lkVElGYzFE?=
 =?utf-8?B?QkNZcnptekNWWEhiOWk1Q3B2U1ZpZE9XUHE4V2lpckJXVU95a2VmN1NzTWwr?=
 =?utf-8?B?Vzh3U0tyWGo1dnZjM0F0SDBMYTZjZ2FtRUpHRkJsYzdNak03bnJBUjNJR1ZW?=
 =?utf-8?B?bVVpWXY2UTJqc3FQdWdWYklqNnZ4dHRLRlFWL29JRFRyR1lNZlFERTQyeEZm?=
 =?utf-8?B?ZnFuY0VXVnp0bE5vRzhwNFhDRFo4Tld6YXgrZFZVYXRyRTh4QWQzYW90ZzM2?=
 =?utf-8?B?clpzcmtnb3NySXZ5RXZrRVg4S1lza0FnbGF6ekZNclF4NGlXWEoyYStKc3hX?=
 =?utf-8?B?VWlaSzFuSUdiYlZaVEFpSncvOWtCYVMwUDlOQWhsNzc2TnpkRmFQT0hreEx3?=
 =?utf-8?B?UHBJT2Vmc1JLY3Z0NE5KMmdvVlFHbFBWcThaNTRDVXVhdXpndkk4Tkx2UU42?=
 =?utf-8?B?RnZ5MDZrazhZYldIaTIwYVhRSE9VUXBPM1h6M0k0ZnpjVDI0RzAzUEI1bk9Y?=
 =?utf-8?B?NVJ5VHRNbkdGSFpDc3ZiV0xjVXExTWdZTHJ3dmU0aGVKYlk4U1FNNG1acUZI?=
 =?utf-8?B?TE9UcXdJaVBpdVpia09oR0FDQlNsOXlyZUNSWnFWMmJ0RmlpczFYK09uSDEr?=
 =?utf-8?B?NDdrS1YxbFNpajdTMDFCY2g0MmNFczRmSVZGUytnTUxLOHprYVBoQ1ZvWE8x?=
 =?utf-8?B?UUJSdklHWWY0bzRZQUlmeHFRdFAxWkt0WnEwRXN5N0ZJRmR2NStvZVdvL0tU?=
 =?utf-8?B?QXBlRmZrbWNYZCt2RVpST1lZYUlBN080MXZvNXg4dXdKWlBCdG1HaUZXWndI?=
 =?utf-8?B?dmJMMnZOaTZmS0tVcmtBL2NkOTIwekVHdG9YanYrcUpLOExES0MwcjlpVlI2?=
 =?utf-8?B?K1lockVYOEJnQmdiUWRkWnFpM3lhbnRKZ2k4bW1GWXVSZUZYUEgzV2hxem5r?=
 =?utf-8?B?dThGbEFjTTk0dFJOU3BKN3MzUGtITUxNNU1COGRrUExMNjJaci9FMVpOaTlI?=
 =?utf-8?B?aE16ZWV1cmk0Y0hkR1VMV3BBOFJLbXNmTWhMWCtKN3c2UWtnT29zZWlaZ2Ir?=
 =?utf-8?B?TGpNR3c3NG1Cc254M0lDZ2l5TWZRVWV2bzUxZmw1bFVYWkxwNlVWcTVrdis5?=
 =?utf-8?B?YS9GNFlGeWRhTmkyTjlObGRHWkNiTmFlSHdQUnRuNjk4dHlnSnZUMlU3VGFj?=
 =?utf-8?B?WUVuaW1hVFkrRlA2cG1nY2ZPc0Z3OVhpajZlOVBVMWlGak84aGJTd0tnTUFS?=
 =?utf-8?B?dlJtUDIzNTNldFZCblBBRnd0WWpoTlB6cEkySGRzTXZKMzlqeEtXenJJSmNP?=
 =?utf-8?B?VWlJbnNaT0NVdzNienpWNHlWbEkxejI0NTE1RndFMGxOTzBNc1pVS2x5Yy93?=
 =?utf-8?B?MzFhdk0wUW9JYlg5a2FOQnErQytMSnJJMW9zWG1kek5xKzgzTHZwamFUYkdV?=
 =?utf-8?B?dU1RUzBDVm5aOEcreHpIWmRMZ1QwRHY2bk0ybS9tQk1TR3VhcjgyWEV5Sk5i?=
 =?utf-8?B?U29FUGovaU42Wmd0QjREOGkySWNVZG1LK1JQUnlLck1pSXI5eVFCK25KeUpE?=
 =?utf-8?B?aHIxUllZTmJEV2VWRUREZEFKR0duYnpPT3FVQ0FyUDYzamV1akRNZmpEeWZw?=
 =?utf-8?B?eXJvYjk3OXZwazYyNTMzLzBSeXc5dUVDRUVmWEtRalRMTWV1ajVxSDlSS3JL?=
 =?utf-8?B?MThIQ1JybmFoQlFFdElHc25DQ2RVNDhXeHkzc2xpYWNGcjZGOVNqRzZydVJS?=
 =?utf-8?B?bkNpejMwdTZrcGNjcy9sb1VkekNmZ2pKRWRDNWd5dmk0bVp1ZWlyTm5JM2My?=
 =?utf-8?B?cmM5QXNBKzA1a2ZYWjYzdWRTZ2VqZHBhZ0k4SnFyc3pYM1NSMWV6MW5ETG56?=
 =?utf-8?B?a3N0NGFsaGlqaWloY3k5MWRaMklieEZvZlA2VzgrSXAvckhPNkIwSzBnclNB?=
 =?utf-8?B?MHd4UTNKVXJxY01rZmRRdDhEajJOcXIrblhWZldGai9JTmwyeTFSN0tqM01q?=
 =?utf-8?B?Z0RYZjRLQks0SGVkcENmaUk0ZHZNbDBLSCtlK0JTYU5zUTloOVdTaldHcnJY?=
 =?utf-8?B?OTJrQ3hVeHNGVDU0YXdpM2w4QkZqVFY4bERtVnpLeE90TUZrSXBzR0N2WVlt?=
 =?utf-8?B?VDlOTGVlMm9HbXVuVGVIbHdVOUhkZkdOS1NpQTh1TjZuV20yYUJLS0o2b2NU?=
 =?utf-8?B?eE9hMWVVSENBUUp3RnNQWkcrWTR2NERnOWl1MHlEbzYyMHU0aUlkK1dGWkpz?=
 =?utf-8?B?cThMZDJGcTlPVWcxVHE3SVpjaTV3PT0=?=
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)(7416014)(14060799003)(35042699022)(1800799024)(376014)(36860700013)(7053199007)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	DRe1f+qS9ntlnbFFHUv7dHUmWYFIqhM6UZcexhHFBEWGilvpF4DtZ0CJbVkM4xVzzdhlx0ZOI8IWRYVq4mGV7+bMziHKWh+4sHOGzA/55TAfZ2d8gu4MQeUyYiEEnLYnqtUMFYiWyLJfM5PiPVMOg+dmxAuoE2/7o32PA9sL/+G5O9OwhhaRvDa5FfcjDva3RL8JE3XdTnIEQo/MepXx+/OdfGvNTnMyulXEw5qYJhEPkWGBoswH7dztFpw1L+LoKpSUoFpX2QHfjBOoPvF7kIO8UyjxTyaRAMdsjjGJ9qAXcXJg3xMicTxA2cgN7oY62qDdq1kLozRXQDRJGM2j7cmyqOoTDRHpWt1WXEO5nnDFbz1FDcN9URDN+1ol5sxVoNy/+ntWhQ2DUHpFyxQPe7FE6R3O5mjisuILoXudQiYkylreJgMVd8EU4L0Jck1b
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 15:50:22.6596
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 12fc3917-3378-4b84-69ba-08de6f056d03
X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[4.158.2.129];Helo=[outbound-uk1.az.dlp.m.darktrace.com]
X-MS-Exchange-CrossTenant-AuthSource:
	AM3PEPF0000A79A.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMBPR08MB11660

SGkgQW5kcmV3DQoNCj4gT24gNSBKYW4gMjAyNiwgYXQgMTM6MjQsIEFuZHJldyBDb29wZXIgPGFu
ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+IHdyb3RlOg0KPiANCj4gT24geDg2LCB0aGlzIGlzIGJh
c2ljYWxseSBldmVyeXRoaW5nLg0KPiANCj4gRm9yIEFSTSwgQ09ORklHX01QVSBhbmQgQ09ORklH
X01NVSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlICh3aXRoDQo+IENPTkZJR19TVEFUSUNfTUVNT1JZ
IGluIHRoZSBtaXgpLCBhcyB3ZWxsIGFzIENPTkZJR19ORVdfVkdJQyBiZWluZyBtdXR1YWxseQ0K
PiBleGNsdXNpdmUgd2l0aCB0aGUgb3RoZXIgVkdJQyBpbmZyYXN0cnVjdHVyZS4NCj4gDQo+IE5v
IGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgYSBsb3Qgb2YgbmV3IEVjbGFpciByZXBvcnRzIChub24t
YmxvY2tpbmcpLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv
b3BlcjNAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IEJlcnRyYW5kIE1hcnF1aXMgPGJlcnRyYW5k
Lm1hcnF1aXNAYXJtLmNvbT4NCg0KQ2hlZXJzDQpCZXJ0cmFuZA0KDQo+IC0tLQ0KPiBDQzogU3Rl
ZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPg0KPiBDQzogY29uc3VsdGlu
Z0BidWdzZW5nLmNvbSA8Y29uc3VsdGluZ0BidWdzZW5nLmNvbT4NCj4gQ0M6IE5pY29sYSBWZXRy
aW5pIDxuaWNvbGEudmV0cmluaUBidWdzZW5nLmNvbT4NCj4gQ0M6IEphbiBCZXVsaWNoIDxKQmV1
bGljaEBzdXNlLmNvbT4NCj4gQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu
Y29tPg0KPiBDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz4NCj4gQ0M6IFZvbG9keW15
ciBCYWJjaHVrIDxWb2xvZHlteXJfQmFiY2h1a0BlcGFtLmNvbT4NCj4gQ0M6IEJlcnRyYW5kIE1h
cnF1aXMgPGJlcnRyYW5kLm1hcnF1aXNAYXJtLmNvbT4NCj4gQ0M6IE1pY2hhbCBPcnplbCA8bWlj
aGFsLm9yemVsQGFtZC5jb20+DQo+IA0KPiBodHRwczovL2dpdGxhYi5jb20veGVuLXByb2plY3Qv
aGFyZHdhcmUveGVuLXN0YWdpbmcvLS9waXBlbGluZXMvMjI0NTE0MjQyMg0KPiANCj4gTWFpbnRh
aW5pbmcgdGhlc2UgbGlzdHMgaXMgZ29pbmcgdG8gYmUgYSBuaWdodG1hcmUuICBJIHRoaW5rIHdl
IHJlYWxseSBkbyBuZWVkDQo+IHRvIGltcGxlbWVudCBDT05GSUdfQ09NUElMRV9URVNUDQo+IC0t
LQ0KPiBhdXRvbWF0aW9uL2dpdGxhYi1jaS9hbmFseXplLnlhbWwgfCA0NSArKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrDQo+IDEgZmlsZSBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspDQo+
IA0KPiBkaWZmIC0tZ2l0IGEvYXV0b21hdGlvbi9naXRsYWItY2kvYW5hbHl6ZS55YW1sIGIvYXV0
b21hdGlvbi9naXRsYWItY2kvYW5hbHl6ZS55YW1sDQo+IGluZGV4IGE0NzI2OTJmY2IzMS4uN2Ey
YzBiZmE3N2QxIDEwMDY0NA0KPiAtLS0gYS9hdXRvbWF0aW9uL2dpdGxhYi1jaS9hbmFseXplLnlh
bWwNCj4gKysrIGIvYXV0b21hdGlvbi9naXRsYWItY2kvYW5hbHl6ZS55YW1sDQo+IEBAIC00NCw2
ICs0NCwyNCBAQCBlY2xhaXIteDg2XzY0LWFsbGNvZGU6DQo+ICAgICBMT0dGSUxFOiAiZWNsYWly
LXg4Nl82NC5sb2ciDQo+ICAgICBWQVJJQU5UOiAiWDg2XzY0Ig0KPiAgICAgUlVMRVNFVDogIm1v
bml0b3JlZCINCj4gKyAgICBFWFRSQV9YRU5fQ09ORklHOiB8DQo+ICsgICAgICBDT05GSUdfQVJH
Tz15DQo+ICsgICAgICBDT05GSUdfREVCVUdfTE9DS19QUk9GSUxFPXkNCj4gKyAgICAgIENPTkZJ
R19ERUJVR19UUkFDRT15DQo+ICsgICAgICBDT05GSUdfRUZJX1NFVF9WSVJUVUFMX0FERFJFU1Nf
TUFQPXkNCj4gKyAgICAgIENPTkZJR19FWFBFUlQ9eQ0KPiArICAgICAgQ09ORklHX0hZUEVSVl9H
VUVTVD15DQo+ICsgICAgICBDT05GSUdfTEFURV9IV0RPTT15DQo+ICsgICAgICBDT05GSUdfTUVN
X1BBR0lORz15DQo+ICsgICAgICBDT05GSUdfTUVNX1NIQVJJTkc9eQ0KPiArICAgICAgQ09ORklH
X1BFUkZfQVJSQVlTPXkNCj4gKyAgICAgIENPTkZJR19QRVJGX0NPVU5URVJTPXkNCj4gKyAgICAg
IENPTkZJR19QVjMyPXkNCj4gKyAgICAgIENPTkZJR19VTlNVUFBPUlRFRD15DQo+ICsgICAgICBD
T05GSUdfWEVOT1BST0Y9eQ0KPiArICAgICAgQ09ORklHX1hFTl9HVUVTVD15DQo+ICsgICAgICBD
T05GSUdfWEhDST15DQo+ICsgICAgICBDT05GSUdfWFNNPXkNCj4gICBhbGxvd19mYWlsdXJlOiB0
cnVlDQo+IA0KPiBlY2xhaXIteDg2XzY0LXRlc3Rpbmc6DQo+IEBAIC0xMDQsNiArMTIyLDMzIEBA
IGVjbGFpci1BUk02NC1hbGxjb2RlOg0KPiAgICAgTE9HRklMRTogImVjbGFpci1BUk02NC5sb2ci
DQo+ICAgICBWQVJJQU5UOiAiQVJNNjQiDQo+ICAgICBSVUxFU0VUOiAibW9uaXRvcmVkIg0KPiAr
ICAgIEVYVFJBX1hFTl9DT05GSUc6IHwNCj4gKyAgICAgIENPTkZJR19BQ1BJPXkNCj4gKyAgICAg
IENPTkZJR19BUkdPPXkNCj4gKyAgICAgIENPTkZJR19BUk02NF9TVkU9eQ0KPiArICAgICAgQ09O
RklHX0FSTV9TTU1VX1YzPXkNCj4gKyAgICAgIENPTkZJR19CT09UX1RJTUVfQ1BVUE9PTFM9eQ0K
PiArICAgICAgQ09ORklHX0RFQlVHX0xPQ0tfUFJPRklMRT15DQo+ICsgICAgICBDT05GSUdfREVC
VUdfVFJBQ0U9eQ0KPiArICAgICAgQ09ORklHX0RFVklDRV9UUkVFX0RFQlVHPXkNCj4gKyAgICAg
IENPTkZJR19FRklfU0VUX1ZJUlRVQUxfQUREUkVTU19NQVA9eQ0KPiArICAgICAgQ09ORklHX0VY
UEVSVD15DQo+ICsgICAgICBDT05GSUdfRkZBPXkNCj4gKyAgICAgIENPTkZJR19GRkFfVk1fVE9f
Vk09eQ0KPiArICAgICAgQ09ORklHX0dJQ1YzX0VTUEk9eQ0KPiArICAgICAgQ09ORklHX0hBU19J
VFM9eQ0KPiArICAgICAgQ09ORklHX0lPUkVRX1NFUlZFUj15DQo+ICsgICAgICBDT05GSUdfSVBN
TVVfVk1TQT15DQo+ICsgICAgICBDT05GSUdfTElWRVBBVENIPXkNCj4gKyAgICAgIENPTkZJR19M
TENfQ09MT1JJTkc9eQ0KPiArICAgICAgQ09ORklHX09QVEVFPXkNCj4gKyAgICAgIENPTkZJR19P
VkVSTEFZX0RUQj15DQo+ICsgICAgICBDT05GSUdfUENJX1BBU1NUSFJPVUdIPXkNCj4gKyAgICAg
IENPTkZJR19QRVJGX0FSUkFZUz15DQo+ICsgICAgICBDT05GSUdfUEVSRl9DT1VOVEVSUz15DQo+
ICsgICAgICBDT05GSUdfU1RBQ0tfUFJPVEVDVE9SPXkNCj4gKyAgICAgIENPTkZJR19VTlNVUFBP
UlRFRD15DQo+ICsgICAgICBDT05GSUdfVk1fRVZFTlQ9eQ0KPiAgIGFsbG93X2ZhaWx1cmU6IHRy
dWUNCj4gDQo+IGVjbGFpci1BUk02NC10ZXN0aW5nOg0KPiAtLSANCj4gMi4zOS41DQo+IA0KDQo=


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 16:08:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 16:08:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235841.1538683 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsk6J-0006K7-SP; Wed, 18 Feb 2026 16:08:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235841.1538683; Wed, 18 Feb 2026 16:08:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsk6J-0006K0-PW; Wed, 18 Feb 2026 16:08:31 +0000
Received: by outflank-mailman (input) for mailman id 1235841;
 Wed, 18 Feb 2026 16: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=LfGN=AW=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vsk6I-0006Js-Hu
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 16:08:30 +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 0ea1d3f1-0ce4-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 17:08:27 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771430890171379.7664783297532;
 Wed, 18 Feb 2026 08:08:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0ea1d3f1-0ce4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771430893; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Q0LId52bKp0/GTS2A6wkt1dd3cezWqk7zH2usy5ZtPzdfyUq3kJF3bm3oOZlSvkzhwG/EL8CEN2Hj5zMYNyslNgNLl18lZl4yiOLp4N0FLGQVMUcjf+oM0FwQ6t5STqJ0Tuo+VUnZ87OzycsBlJ3J0LUrH82bq2DrQ8BYh1Ny/s=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771430893; 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=fWRXMj7PK6kMHx6AVdRzCrEyKuz94e5VKxOetrzHKTQ=; 
	b=KhcK/2kbD92aW0JwBswzAi6nG6LNDTFyTJLfFsN++hRYElxR3moDuXfBf4wC+PIUMKOLDqQSmUpzU0tTbS00kBfAI94ChdUA+rKsd1XrEE6izHbu2urzOriwXD+BM2xOFtQNn2jmhmVRkYY7+MPqkbPktQ0acffjn7C3MI3Mx10=
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=1771430893;
	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=fWRXMj7PK6kMHx6AVdRzCrEyKuz94e5VKxOetrzHKTQ=;
	b=JSH1WcTpJG2IAQ2NEhj+qb1ldiJzCMfmMrbPcfY2BHDs7rFX2pY4Q9TqQBalBTk6
	mX2j7mGAUwvjQk1ZIxvDnmGXauw2DPlsxj1cMsSDE2MPVANv4iHJu4bQRLNxenkrnDu
	bEWgEGO92Vb97NCxAVrH8rB8hsb7rCwZ3PTvRXcs=
Message-ID: <89173609-0089-4c89-a924-2feb88e77308@apertussolutions.com>
Date: Wed, 18 Feb 2026 11:08:08 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v10 2/5] xen: change VIRQ_CONSOLE to VIRQ_DOMAIN to allow
 non-hwdom binding
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <stefano.stabellini@amd.com>,
 grygorii_strashko@epam.com, anthony.perard@vates.tech, michal.orzel@amd.com,
 julien@xen.org, roger.pau@citrix.com, jason.andryuk@amd.com,
 victorm.lira@amd.com, andrew.cooper3@citrix.com,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <alpine.DEB.2.22.394.2602041533440.3175371@ubuntu-linux-20-04-desktop>
 <20260204233712.3396752-2-stefano.stabellini@amd.com>
 <82c06e52-1db0-46e5-be9f-7ca0360ffc70@suse.com>
 <alpine.DEB.2.22.394.2602091520460.1134401@ubuntu-linux-20-04-desktop>
 <43e80ad6-7b42-42de-b36f-1a9079589912@suse.com>
 <alpine.DEB.2.22.394.2602131206040.6031@ubuntu-linux-20-04-desktop>
 <053d2624-2891-4534-83f0-b05e190afe3b@apertussolutions.com>
 <e08b65e3-8908-4882-9481-d4aa7dbfcfa1@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: <e08b65e3-8908-4882-9481-d4aa7dbfcfa1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/18/26 10:14, Jan Beulich wrote:
> On 18.02.2026 16:07, Daniel P. Smith wrote:
>> On 2/13/26 15:09, Stefano Stabellini wrote:
>>> On Tue, 10 Feb 2026, Jan Beulich wrote:
>>>> On 10.02.2026 00:23, Stefano Stabellini wrote:
>>>>> On Mon, 9 Feb 2026, Jan Beulich wrote:
>>>>>> On 05.02.2026 00:37, Stefano Stabellini wrote:
>>>>>>> Today only hwdom can bind VIRQ_CONSOLE. This patch changes the virq from
>>>>>>> global to VIRQ_DOMAIN to allow other domains to bind to it.
>>>>>>>
>>>>>>> Note that Linux silently falls back to polling when binding fails, which
>>>>>>> masks the issue.
>>>>>>>
>>>>>>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>>>>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>>>>>>
>>>>>> Technically this is an ABI change, and hence I'm uncertain it can go without
>>>>>> that aspect being at least mentioned, perhaps even its implications properly
>>>>>> discussed.
>>>>>
>>>>> I am not sure if it qualifies as an ABI change or not but I am happy to
>>>>> expand the commit message in any way you might suggest.
>>>>>
>>>>> The jist of it is already in the commit message, really the key element
>>>>> is that VIRQ_CONSOLE can be bound by multiple domains.
>>>>>
>>>>> Aside from spelling out "this is an ABI change" what do you have in
>>>>> mind?
>>>>
>>>> What I mean is discussion of the implications for domains using the vIRQ.
>>>> Previously most domains would have attempts to bind this vIRQ rejected.
>>>> Technically it is possible that kernels had code paths blindly doing the
>>>> binding, relying on it to work only when running as Dom0. And really, you
>>>> appear to break XEN_DOMCTL_set_virq_handler when used with VIRQ_CONSOLE,
>>>> without which its binding wasn't possible at all before (except for the
>>>> hardware domain, which get_global_virq_handler() falls back to when no
>>>> other domain is set). Or am I mis-reading things, as I can't spot any use
>>>> of VIRQ_CONSOLE under tools/, whereas I would have expected provisions
>>>> for (host) console handling to be delegated to a separate control or
>>>> console domain? Of course other toolstacks (the XAPI-based one for
>>>> example) might actually have such provisions.
>>>>
>>>> And then there's the XSM question: XEN_DOMCTL_set_virq_handler obviously
>>>> is subject to XSM checking. The same isn't true for VIRQ_DOMAIN-type
>>>> vIRQ-s. Yet this vIRQ isn't supposed to be universally available to
>>>> every DomU. Instead the ->console->input_allowed checking is kind of
>>>> substituting such a check, which iirc Daniel said (in more general
>>>> context) shouldn't ever be done. IOW in patch 5 you're actually effecting
>>>> policy, which should be XSM's job aiui.
>>>>
>>>> Bottom line: The patch may need to be more involved, but at the very
>>>> least the description would need updating to justify it being as simple
>>>> as it is right now.
>>>
>>> What do you think of this:
>>>
>>> ---
>>>
>>> xen/console: change VIRQ_CONSOLE from global to per-domain
>>>
>>> Previously VIRQ_CONSOLE was a global VIRQ (VIRQ_GLOBAL type), meaning
>>> only the hardware domain (or a domain explicitly set via
>>> XEN_DOMCTL_set_virq_handler) could bind it. Any other domain attempting
>>> to bind would fail with -EBUSY because get_global_virq_handler() would
>>> return hwdom by default.
>>>
>>> This patch changes VIRQ_CONSOLE to VIRQ_DOMAIN type, allowing any domain
>>> to bind it independently, similar to VIRQ_ARGO. The console notification
>>> is now sent via send_guest_domain_virq() directly to the focus domain
>>> rather than through send_global_virq().
>>>
>>> Implications:
>>>
>>> 1. Guest kernels that previously called bind on VIRQ_CONSOLE blindly
>>>      will now succeed. Linux handles binding failure gracefully by falling
>>>      back to polling, so this should not cause regressions.
>>>
>>> 2. XEN_DOMCTL_set_virq_handler can no longer be used with VIRQ_CONSOLE.
>>>      The domctl explicitly rejects non-VIRQ_GLOBAL types. This means
>>>      toolstacks that relied on set_virq_handler to delegate console handling
>>>      to a separate console domain will need to use a different mechanism.
>>>      Note: No known in-tree toolstack uses set_virq_handler with VIRQ_CONSOLE.
>>>
>>> 3. VIRQ_DOMAIN bindings are not subject to XSM checks beyond the
>>>      standard event channel allocation policy. Access control for console
>>>      input is enforced via the per-domain console->input_allowed flag,
>>>      which is set for:
>>>      - The hardware domain (by default in domain_create())
>>>      - dom0less domains on ARM (in construct_domU())
>>>      - The PV shim domain on x86 (in pv_shim_setup_dom())
>>>      - Domains with vpl011 using the Xen backend (in domain_vpl011_init())
>>
>> Actually this goes back to the concern I have raised many times,
>> is_hardware_domain() always serves a double purpose. The explicit check
>> that the domain is where the hardware is, but also the implicit access
>> control check that it is allowed to do the hardware access. The implicit
>> access control check is a subversion of XSM and the reality is that the
>> input_allowed flag is just unmasking this subversion for an explicit
>> access control check outside the purview of xsm.
> 
> I don't think I can deduce from this what your view is on the change proposed.
> There is, as per what you say, an existing issue with is_hardware_domain().
> (Likely at some point you'll propose patches to address this.) What I can't
> conclude is whether you deem this new issue "okay(ish)" on the basis that some
> vaguely related issue already exists, or whether you object to this new way
> of "subversion".

Digging deeper, the underlying issue is that when struct domain_console 
was introduced and now this series is building upon it. The struct 
domain_console_patch added a resource access control check point for all 
domains through input_allowed that went around XSM. Now we are here with 
this series that is exposing what was done. To your question, am I 
okay(ish) with this. Not really, but it's also not the fault of Stefano 
or his series that the earlier commit laid this landmine for him.

With all that said, thinking about it in totality, the fine-grained 
access control does needs to be there for tightly controlled 
environments, but is not necessary for a general security posture. Plus, 
I am going to have to think about how to correctly inlay the XSM check, 
which is outside the scope of this series. All of that is to say, I am 
not okay but don't feel it's right to block this series over it.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 16:22:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 16:22:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235853.1538696 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vskJR-0000YV-Vi; Wed, 18 Feb 2026 16:22:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235853.1538696; Wed, 18 Feb 2026 16:22: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 1vskJR-0000YO-TB; Wed, 18 Feb 2026 16:22:05 +0000
Received: by outflank-mailman (input) for mailman id 1235853;
 Wed, 18 Feb 2026 16:22: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=LfGN=AW=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vskJP-0000Wm-SB
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 16:22:03 +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 f38de3fe-0ce5-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 17:22:01 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771431707179904.2711152236781;
 Wed, 18 Feb 2026 08:21:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f38de3fe-0ce5-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771431710; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=HVTqkwuY4xSbqqfiI2cEKDN2464fNaHWW3P/+/kXZ7lbGwrFhMl56bWluKb6cql2Qh/smWb7IPvow9QO6rQ2UFapw/YxjufrCC2f8KSSnMYKzMMnJI+4JKu5hwNxyOD4+l6U2LthLQqggF6XoNzeAADyKiHxErX2hFv851TWnbs=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771431710; 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=xfAiDqNkrzWnT7mwYeVwSEgNvECd4Q6JW0hgC7t/hpo=; 
	b=jMk6ftF4fmkmeEEKv1SP27JHSbVQw8hlpJr0RJKbkJfjTc31p2a/UIo6B/deNaq7npuCSEbIxcdZ/97Zx8d0E2rUgEvb9JdA8rrcH77KnC5OMzz6sLUila2PUENdorsadytA5sxEpmpbbkQyErdBDufB/GaZcWBu7Nu0W1W8lTQ=
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=1771431710;
	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=xfAiDqNkrzWnT7mwYeVwSEgNvECd4Q6JW0hgC7t/hpo=;
	b=mbdUvqlrxzjCF0VZgUc2k/lDeHP7kIR43HpqlMIwkb7n1Qzn6dU30PpmObO3wohG
	czcKUI51O/aGKyMxlA414cojKAEZHl0iNXAK2h8M8DYm6/FdfhGIQ+Czwv+TIVhPArA
	v+q17dxLB4kKWimIh0MtSLSMyysaeANoTKxWs49Y=
Message-ID: <9b4e512e-c78f-436a-99ed-08e0371cb886@apertussolutions.com>
Date: Wed, 18 Feb 2026 11:21:45 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG] common/domctl: xsm update for get_domain_state access
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.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: <20260216215748.20398-1-dpsmith@apertussolutions.com>
 <1a1d8db1-d553-470a-8678-b879385b2fec@suse.com>
 <ff62ece8-a7f3-4490-967c-e9e8283dcd9d@apertussolutions.com>
 <57074bdb-6af9-4cd8-b1da-d348757ca168@suse.com>
 <2ac8e0ec-54ab-4485-b0f4-a49920726d0f@apertussolutions.com>
 <158de6d6-f7ef-453c-9c78-00c4d785bcd1@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: <158de6d6-f7ef-453c-9c78-00c4d785bcd1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/18/26 10:47, Jan Beulich wrote:
> On 18.02.2026 16:32, Daniel P. Smith wrote:
>> On 2/18/26 10:03, Jan Beulich wrote:
>>> On 18.02.2026 15:33, Daniel P. Smith wrote:
>>>> On 2/17/26 04:34, Jan Beulich wrote:
>>>>> On 16.02.2026 22:57, Daniel P. Smith wrote:
>>>>>> --- a/xen/common/domain.c
>>>>>> +++ b/xen/common/domain.c
>>>>>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>>>>>>     int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>>                          domid_t *domid)
>>>>>>     {
>>>>>> -    unsigned int dom;
>>>>>> +    unsigned int dom = 0;
>>>>>>         int rc = -ENOENT;
>>>>>>         struct domain *hdl;
>>>>>>     
>>>>>> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>>     
>>>>>>         if ( d )
>>>>>>         {
>>>>>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>>>> +        if ( rc )
>>>>>> +            return rc;
>>>>>> +
>>>>>>             set_domain_state_info(info, d);
>>>>>>     
>>>>>>             return 0;
>>>>>> @@ -238,10 +242,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>>     
>>>>>>         while ( dom_state_changed )
>>>>>>         {
>>>>>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>>>>>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom);
>>>>>>             if ( dom >= DOMID_FIRST_RESERVED )
>>>>>>                 break;
>>>>>> -        if ( test_and_clear_bit(dom, dom_state_changed) )
>>>>>> +        if ( test_bit(dom, dom_state_changed) )
>>>>>>             {
>>>>>>                 *domid = dom;
>>>>>
>>>>> This is problematic wrt other work (already talked about in the distant past,
>>>>> but sadly only making little progress) towards trying to pull some of the
>>>>> sub-ops out of the domctl-locked region. This subop is one of the prime
>>>>> candidates, yet only if the test_and_clear_bit() remains here.
>>>>
>>>> Okay, but we can't be clearing the bit if the src domain doesn't have
>>>> access. When considering that xsm_domctl() does a no-op check for
>>>> XEN_DOMCTL_get_domain_state, deferring to xsm_get_domain_state(), then
>>>> any domain could invoke the OP with DOMID_INVALID and clear the bit
>>>> before access is checked.
>>>>
>>>> If you want to ensure atomic operations on the bit field, while I am not
>>>> a fan of this, a combination with set_bit() could be done. Let the
>>>> test_and_clear_bit() remain and then if access check fails, use
>>>> set_bit() to put it back. Would that be sufficient for your objective?
>>>
>>> No, that could then confuse a legitimate (for that domain) caller. IOW
>>> you would still build upon the domctl lock serializing things. I think
>>> you want to do the XSM check first, and only then use test_and_clear_bit().
>>
>> Currently, acquiring the struct domain pointer is inside the if
>> condition. This would have to be moved outside the if condition to be
>> able to do the access check before calling the bit operation. Which
>> brings up the question for me, if it is reordered in this fashion, why
>> not use clear_bit(), aiui it should be atomic as well.
> 
> The problem isn't with clear_bit() by itself (yes, it is atomic), but
> with how things want doing here: The test-and-clear ensures data for a
> given domain can only be retrieved exactly once (until the bit would be
> set another time later). With test split from clear, multiple callers
> could get data for the same domain, as in the window between test and
> clear a 2nd caller can come in and also commit to returning data for
> that domain. (Given the restriction on who can invoke this, one might
> conclude no such race is possible, but that single domain could process
> things on multiple vCPU-s, and would then wrongly be notified twice for
> the same domain.)

Thinking further, you are correct the rcu_read_lock will not be enough. 
The test_and_clear call will ensure this thread is the one that read and 
cleared the bit.

>>>>>> @@ -249,6 +253,15 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>>     
>>>>>>                 if ( d )
>>>>>>                 {
>>>>>> +                rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>>>> +                if ( rc )
>>>>>> +                {
>>>>>> +                    rcu_unlock_domain(d);
>>>>>> +                    rc = -ENOENT;
>>>>>
>>>>> As you don't otherwise use xsm_get_domain_state()'s return value, the need
>>>>> for this assignment can be eliminated by putting the function call straight
>>>>> in the if(). Then again, to address the remark above, overall code structure
>>>>> will need to change quite a bit anyway (so the remark here may be moot).
>>>>
>>>> I can drop the use of rc here and inline it.
>>>>
>>>>>> +                    dom++;
>>>>>
>>>>> It may be nice to eliminate the need to have this in two places (here and ...
>>>>>
>>>>>> +                    continue;
>>>>>> +                }
>>>>>> +
>>>>>>                     set_domain_state_info(info, d);
>>>>>>     
>>>>>>                     rcu_unlock_domain(d);
>>>>>> @@ -256,10 +269,13 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>>>                 else
>>>>>>                     memset(info, 0, sizeof(*info));
>>>>>>     
>>>>>> +            clear_bit(dom, dom_state_changed);
>>>>>>                 rc = 0;
>>>>>>     
>>>>>>                 break;
>>>>>>             }
>>>>>> +
>>>>>> +        dom++;
>>>>>>         }
>>>>>
>>>>> ... here), by having the variable's initializer be -1 and then using dom + 1
>>>>> in the find_next_bit() invocation.
>>>>
>>>> If you want this way, then there are two options, make dom no longer
>>>> unsigned or be willing to allow unsigned int overflow. If we go with the
>>>> former, If you agree, I would leave it as an int as that should cover
>>>> the range of valid domids.
>>>
>>> I wouldn't outright nak use of plain int, but I'm putting in effort to remove
>>> such undue uses of that type. Unsigned overflow is well-defined aiui, so I
>>> see no reason why the variable can't remain "unsigned int".
>>
>> Honestly, I'm not sure why it was not domid_t in the first place. I
>> can't keep all the rules, but I thought MISRA frowned on overflow usages
>> (abuse?) like this. If you will ack it with it as a uint or as a
>> domid_t, then I have no issue doing it this way.
> 
> A patch without changing the type I would ack. A switch to domid_t, if indeed
> correct (I simply didn't go check yet), likely would want to be a separate
> change.

Then I will leave it uint and init it to -1.

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 16:58:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 16:58:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235870.1538706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsksY-0004l7-Kl; Wed, 18 Feb 2026 16:58:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235870.1538706; Wed, 18 Feb 2026 16: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 1vsksY-0004l0-HY; Wed, 18 Feb 2026 16:58:22 +0000
Received: by outflank-mailman (input) for mailman id 1235870;
 Wed, 18 Feb 2026 16:58: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=LUrD=AW=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vsksX-0004ku-Mu
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 16:58:21 +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 06a45d4c-0ceb-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 17:58:19 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-43591b55727so39223f8f.3
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 08:58:19 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abc21dsm44993573f8f.20.2026.02.18.08.58.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 08:58:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 06a45d4c-0ceb-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771433899; x=1772038699; 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=t4ghpJt8L4tYtQ8jgPxDRYC5owoM/VBQVg2xRJnO5eU=;
        b=QZHKbRkUMk6MngZBxeSnQ1GRDJjggJaSqLe8dhTYCM+EvYL+bLCYojQ+3+XWV7pUPq
         N5iE7gyFNkomckE3UcbfDfUw2np2CPelVoAN0Bg0V8Mxxwhb5bIkOWy0U/8bV/vn51vc
         wyqL+bJ17H64R2WfVC7ECfq13hpQ/bUvfTPcDhR8xDyB40mPrfhIzYxxtuomKZFO19P3
         peo3hxQf3jZUhJQcL+Qwd68/YKgJEOp4hip0PhghiCskkKDKsE62JyErvTHCeU7VjkF3
         9qf2UC3ORNdffSI2+Q2BTE+6nPx8/kNI8oNUL8z7Z9FaWqMiM2+55rPCnW841J+mgZyA
         BPqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771433899; x=1772038699;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=t4ghpJt8L4tYtQ8jgPxDRYC5owoM/VBQVg2xRJnO5eU=;
        b=i+XZZpkpkOL03xhP7a9PlfbJ1m1q83ZpIVJo2xz7tfZUvO130ypPCLvjDrX0Md36X+
         NkrjDFiTFdBRRg/iyqP/O3ca0/PBg/H0WkGoFakGSvjipaScjx6BTPP+PA767xECX9SR
         PcYMibOHJ8Ciyn6YTaDL7DBW5ZGfJscHBlQHxMbgyTFqtIq5DlJYPzTlXHdqWXYNpOU4
         C5c2oVAUCogMJs2dc94BAlfTmKoTAKRK/u2BX2pOPVWW61Xty3ERQy8+Ix8prRuEUII5
         +Qu5yKbuynsO8+2NaYan3gVcTm3fS9R/j3kwrQ+yw2tk8Sq6SU3Sh/RF6CwJugo3sGyH
         hXPg==
X-Forwarded-Encrypted: i=1; AJvYcCVkeuDyf1vEdo9ddFKboxkSDJEKJeP/45F+AaOdJTSKCathjMwBozwbhWnmhJaqJlj6u3ayw0p7Bi8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxxA2f8kR/GMeEocdRa12Crc8gjc8VYJ3YCh8ftBpJIyz0RAkht
	jtuUx4W04VRGTzeIv//cV4KQ3/BfDhPT3xa58SYkmYCsiqsIFaYUt9jZ
X-Gm-Gg: AZuq6aIaxqNsbAqlnvy8kyKQU3CkqZpBuinIXSGlXQu/GXcg4x7l1QcP0TxPzb6yvRn
	68RUhjnY7OfE3nUfhOKrGukm0Ulki7E96P90rhZ/LPYVddWfle0eNrwJh7B3u1+BXGYAdbxB0Of
	Jk0JIoX6VIu7O1RS7AeYG0rZBwYCSStXY3VdZetSCjLG7vF508EyB5puHrZmSqrAYhXBqXs9nZA
	opCAenLhuP/x5M/aKq4lj5CqglvTEJpTDX7VXHYW0xrkWmBP1B+KfFtY6bRH2y4v1rDv+JjNUkr
	txUgMgB4Q1x5YjPZMdO0uBSy+ejL48aF9OeA/2z92CfiW8hjYb/OsTMy4BA+iQfpgUlzLAs5R7h
	Liwepy5GifgFQPDoBI5Ms6/HwVH+S645gKJBKMzU1SZ2mZNkCFIlKG/MK4JxdBwgVlxxuLoJhTG
	YeeuDMK/nyZcnt/5Nfl3uQ2A+C68fRh2wUtObA0w8gRXi85i4S1J0v+H6EgcyEOZpGJwDl7hHdd
	RQ=
X-Received: by 2002:a5d:584e:0:b0:435:a136:b891 with SMTP id ffacd0b85a97d-4379db31b74mr28307886f8f.13.1771433898593;
        Wed, 18 Feb 2026 08:58:18 -0800 (PST)
Message-ID: <a71b3cc7-9ac1-4cec-8898-bda5e8ee644e@gmail.com>
Date: Wed, 18 Feb 2026 17:58:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/13/26 5:29 PM, Oleksii Kurochko wrote:
> Introduce helpers to manage VS-stage and G-stage translation state during
> vCPU context switches.
>
> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
> switch-out to prevent speculative VS-stage translations from being associated
> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
> required order.
>
> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
> only when required (e.g. on VMID reuse or generation change).
>
> This provides the necessary infrastructure for correct p2m context switching
> on RISC-V.
>
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v3:
>   - Add comment above p2m_ctxt_switch_{to, from}().
>   - Code style fixes.
>   - Refactor p2m_ctxt_switch_to().
>   - Update the comment at the end of p2m_ctxt_switch_from().
>   - Refactor the code of p2m_handle_vmenter().
> ---
> Changes in v2:
>   - Add vsatp field declaration to arch_vcpu.
>   - s/p2m_ctx_switch_{from,to}/p2m_ctxt_switch_{from,to}.
>   - Introduce p2m_handle_vmenter() for proper handling of VMID,
>     hgatp and vsatp updates.
>   - Introduce is_p2m_switch_finished and init it inisde
>     p2m_ctx_switch_to() for furhter handling in p2m_handle_vmenter().
>   - Code style fixes.
>   - Add is_idle_vcpu() check in p2m_ctxt_switch_from().
>   - use csr_swap() in p2m_ctxt_switch_from().
>   - move flush_tlb_guest_local() to the end if p2m_handle_vmenter() and
>     drop unnessary anymore comments.
>   - Correct printk()'s arguments in p2m_handle_vmenter().
> ---
>   xen/arch/riscv/include/asm/domain.h |  1 +
>   xen/arch/riscv/include/asm/p2m.h    |  4 ++
>   xen/arch/riscv/p2m.c                | 79 +++++++++++++++++++++++++++++
>   xen/arch/riscv/traps.c              |  2 +
>   4 files changed, 86 insertions(+)
>
> diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
> index 3da2387cb197..42bb678fcbf9 100644
> --- a/xen/arch/riscv/include/asm/domain.h
> +++ b/xen/arch/riscv/include/asm/domain.h
> @@ -59,6 +59,7 @@ struct arch_vcpu {
>       register_t hstateen0;
>       register_t hvip;
>   
> +    register_t vsatp;
>       register_t vsie;
>   
>       /*
> diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
> index f63b5dec99b1..60f27f9b347e 100644
> --- a/xen/arch/riscv/include/asm/p2m.h
> +++ b/xen/arch/riscv/include/asm/p2m.h
> @@ -255,6 +255,10 @@ static inline bool p2m_is_locked(const struct p2m_domain *p2m)
>   struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>                                           p2m_type_t *t);
>   
> +void p2m_ctxt_switch_from(struct vcpu *p);
> +void p2m_ctxt_switch_to(struct vcpu *n);
> +void p2m_handle_vmenter(void);
> +
>   #endif /* ASM__RISCV__P2M_H */
>   
>   /*
> diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
> index 0abeb374c110..7ae854707174 100644
> --- a/xen/arch/riscv/p2m.c
> +++ b/xen/arch/riscv/p2m.c
> @@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>   
>       return get_page(page, p2m->domain) ? page : NULL;
>   }
> +
> +/* Should be called before other CSRs are stored to avoid speculation */
> +void p2m_ctxt_switch_from(struct vcpu *p)
> +{
> +    if ( is_idle_vcpu(p) )
> +        return;
> +
> +    /*
> +     * 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 what will be done in
> +     * p2m_handle_vmenter().
> +     */
> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
> +
> +    /*
> +     * Nothing to do with HGATP as it will be update in p2m_ctxt_switch_to()
> +     * or/and in p2m_handle_vmenter().
> +     */
> +}
> +
> +/* Should be called after other CSRs are restored to avoid speculation */
> +void p2m_ctxt_switch_to(struct vcpu *n)
> +{
> +    struct p2m_domain *p2m = p2m_get_hostp2m(n->domain);
> +
> +    if ( is_idle_vcpu(n) )
> +        return;
> +
> +    csr_write(CSR_HGATP, construct_hgatp(p2m, n->arch.vmid.vmid));
> +    /*
> +     * As VMID is unique per vCPU and just re-used here thereby there is no
> +     * need for G-stage TLB flush here.
> +     */
> +
> +    csr_write(CSR_VSATP, n->arch.vsatp);
> +    /*
> +     * As at the start of context switch VSATP were set to 0, so no speculation
> +     * could happen thereby there is no need for VS TLB flush here.
> +     */
> +}

I think we need to flush the VS-stage TLB unconditionally here. It is possible
that `p->arch.vsatp.ASID == n->arch.vsatp.ASID`, in which case the new vCPU
could reuse stale VS-stage TLB entries that do not belong to it.

I considered performing the flush conditionally, but that would require checking
not only the ASID, but also whether the PPN differs. In addition, we would need
to verify that the old and new vCPUs do not belong to different domains, since
the same VSATP PPN value could appear in different domains.

This starts to look like overcomplication for a marginal optimization, so an
unconditional VS-stage TLB flush seems simpler and safer.

Do you think this optimization is worth pursuing at this stage?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 17:16:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 17:16:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235882.1538717 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vslAB-0007ZW-2i; Wed, 18 Feb 2026 17:16:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235882.1538717; Wed, 18 Feb 2026 17:16: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 1vslAB-0007ZP-03; Wed, 18 Feb 2026 17:16:35 +0000
Received: by outflank-mailman (input) for mailman id 1235882;
 Wed, 18 Feb 2026 17:16: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=b4Gf=AW=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vslAA-0007ZJ-4I
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 17:16:34 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 91e808fa-0ced-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 18:16:32 +0100 (CET)
Received: from BYAPR03CA0007.namprd03.prod.outlook.com (2603:10b6:a02:a8::20)
 by DS0PR12MB8562.namprd12.prod.outlook.com (2603:10b6:8:164::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Wed, 18 Feb
 2026 17:16:22 +0000
Received: from SJ5PEPF00000209.namprd05.prod.outlook.com
 (2603:10b6:a02:a8:cafe::13) by BYAPR03CA0007.outlook.office365.com
 (2603:10b6:a02:a8::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.13 via Frontend Transport; Wed,
 18 Feb 2026 17:16:22 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF00000209.mail.protection.outlook.com (10.167.244.42) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 17:16:21 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb
 2026 11:16:20 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb
 2026 09:16:20 -0800
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 18 Feb 2026 11:16:19 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91e808fa-0ced-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bkPMFphUQVi9e6Pk/K3A5+59FgvQ8JzLjzkcIvmlODy93rM2AUd35UgQI39oqkLqKHwQhOO2DbBmIe6eoaCH2aKVmVHNrA2a19zlaquW9vCUFoCs1aTni30m+WEN8dmsTSv34Yj37vTuJNoewi76KSOvyzRQOrl44eDAGr1uPnOqfdu/gTgsnNPDFg4VVSTe354aPMuYZv5yqMk4Z2Cwnm4hCVrOR98qXV979wd1X9f8JosMtMniyE1WV/QDQtq71hidhv3cQ1D8gxywKJ/C8P42ftEm3iV7ucHp0Fa+Zscxy7APEzYs11Uu8m8um96oo95t3hqU/oQ7uyX/SdQeDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qVEs37iEICqA10CmlFdhVS6mAF72WkIANr/RNcX0KiU=;
 b=wq2bOU2ULSnONoHC/Pqa3S5kP4nZUhnCWSqe8G+VxfTu3T2ekfvTrQP9QhgBnh+Ry3wNiCn70b5yxOfwejVrpRzmQirH7OXAXzfjgBqQeK1U8VAQhtrXCN6nMTUZ5CHCccNY/c7eN9JNJU/XnKDuIOFIJZ9I6AbJEntQVwHLTBip/KJ4oU+drzePJb3XbBmUGzClDpwYIksYmETtNTkRmPY+novbTblsIjXQzvpmqHNZgATfhDvlivHzzo1bgQXDCQHGpJ2wdEOoUsurLY6XYEiA1+9thfXO6JBw/+GhAptp7KSXr67i9S89w0dCnLBasqIm42HdtZpLxoYm9ApGfQ==
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=qVEs37iEICqA10CmlFdhVS6mAF72WkIANr/RNcX0KiU=;
 b=Cwk6jgpitCm+Qxia4LtcEo5XRHPrV1FiEi5ImG/myeIuDCnQJLR5FPLEZAjDegW/RhzzCgQvb/iBv4l8VbeRP14cIfirpKIAzChLUbiN1dPNcNzHs5ZwveUNAN2tmKQuw5feh3KFCBBaOcuMdbtVSc4M8dMJ+fKtQYrc8eC0WOY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <1e8f9976-b0b6-47b1-88c0-690d4f1589ce@amd.com>
Date: Wed, 18 Feb 2026 18:16:19 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: fix unmapped access trapping on GICv2 hardware
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	<xen-devel@lists.xenproject.org>, Stefano Stabellini
	<sstabellini@kernel.org>, Julien Grall <julien@xen.org>
CC: Bertrand Marquis <bertrand.marquis@arm.com>, Volodymyr Babchuk
	<Volodymyr_Babchuk@epam.com>
References: <20260205190128.38716-1-stewart.hildebrand@amd.com>
 <f91e0f7e-9afe-40bd-8e44-4aadbdf8e4b0@amd.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <f91e0f7e-9afe-40bd-8e44-4aadbdf8e4b0@amd.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000209:EE_|DS0PR12MB8562:EE_
X-MS-Office365-Filtering-Correlation-Id: 859e8b51-1303-481c-7ea2-08de6f11700c
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?RDFCb1NPZHZtdVU1bGQ0aWdUQmlWUHFzZm5mWHhSYkRZUHgraVY4NEw3MExo?=
 =?utf-8?B?ZnpzYlpFcXJuOE9CNzVRNjhnTkFJYmlINEdwZ05kdjRGZzRDdCt1dldiVTg0?=
 =?utf-8?B?amJSNWZKcTA1YVIyK2RTbTFicEZKdEl2VUNYeWVEalFyQitrak5XWC9HcGlJ?=
 =?utf-8?B?bzkvQVE0SGZHS1N4MUdjUWxyQjdJS0gwOFdLY2NFQ1BsUnpJQWM2TXJYOWUw?=
 =?utf-8?B?RkV0ZzRZZnRKaXhkTXlSTzA3TFFSbXVPK24yN0c1YmdNTlUxc2hqd2h3YjR4?=
 =?utf-8?B?NTlOOTQyVmd4dnpDQzA4RnE0WXVBZzNZd1o4eEhOZEhTSGtSam5ZenZEUFhX?=
 =?utf-8?B?VHZ6YW1OZy9aU2I0bDdNSGROTTFsRjIyOEsxSTd4TXppNWN0VVRLbDFHcE1p?=
 =?utf-8?B?Rlp5NkJyV2ljN0duV1dwZXhPOGFIZjJNdmJPYWhxbWtZL3FxZGpoYm56R3BB?=
 =?utf-8?B?c3pTUG9nZnpLQmswRU4rYnBEN3NxeWE5SVk5TXRSYi94SmkyZHFFcGdrWW1s?=
 =?utf-8?B?MkVabEsvK0l5VkVxNFFPODY2d2xlMDFnalEwWFBNSUx3TERMUnM3NEN1VU1t?=
 =?utf-8?B?OTBnTEhkWmsxQm0vMVoyRlN4SHpCY0dKZFRvRU1lVVJUaTVHbXpXUEZ1b3RE?=
 =?utf-8?B?M3EvUkxwMERhR1BDd0xsRkpkWFV6R2ZsaUdNYlpLZ0Y3Zzh6UUV6ZHVEOXkr?=
 =?utf-8?B?a3NLdm1qWjFCaTZHYXJBNEg0aTZ2NlpWOFdnTlByTVJsbWx6UXRaY0Z4c2NB?=
 =?utf-8?B?WDBWd1ZHSkpGNFB6bHZCVjNIOHZPUDhoN2JTV3llVWRXakp0eVhldzAyU21I?=
 =?utf-8?B?MHZ2cFlJOFg3OXNHVXpKSzJKUzE0ZklwSnE2WVhNM1ZaN09zQk1Yait0ZUFm?=
 =?utf-8?B?ajNmZit4S1FvNE00MWtHMHdGdEdWSGx3U3ArVlNkdEZyMS9Zb0FIL1FKazVO?=
 =?utf-8?B?d1RCSFdqYkdvV3gwZ0FaKzdueG1CUXVZcDhGaGlqV1Z0blB3a25yYnhlck9G?=
 =?utf-8?B?cms2Q3lHUlN2bnZYMlhkSmlsbCtHNWhyR2hUWTIycmllUi9KMW9vU0hvMTVN?=
 =?utf-8?B?UlVyM2RReFlkcVFUcjZTU0ZiNU5IYUw3M0dvUnBHMVU3YzhLakM5M3NQaHQx?=
 =?utf-8?B?MTNlSHljQi9IczdleDI5SjBkcFcxYnM1NDdJb3lrSkM1b0c4dTR0Q2RhT2J5?=
 =?utf-8?B?dFF3K0ZmOU1KVW5aWkZlZzVaUUZXQmZGZ29pM1R6VlFSUWJaTnY2K3BOaEds?=
 =?utf-8?B?VUVJbDdSUlN5MjVVWWovS2RJMTlGY0VWd01JYWlKU0dITTdzNFB4MmFWWXQ1?=
 =?utf-8?B?ajJhS0NVS0YyYjhWTmFKcjlMSk9uYzlmVFhvM0NQYzRJa1c1c3FPclJoMUth?=
 =?utf-8?B?WFNCWlN0WlNGblZHaE9MdXNxcEtKUjU2MXovL0QrNDArNkxNaWdlMmlJRExF?=
 =?utf-8?B?WFQyZVZISTFnbW85eHd1NXdmSU1Ra2FBMDJSYXdkeDVOSlBzeTlyQ1gwUTFC?=
 =?utf-8?B?anR1VXZ5MldQdFRzV1ZqdGZOc29hcEtDY1dFWGkzYncxenoxWkJPc1RkR3d2?=
 =?utf-8?B?M3BoNmF1OGpzVTYvbUorTXd3dnc4Zm4yTWV1MGo3QlNGaGNrVitteC8vN0N6?=
 =?utf-8?B?VnQxMHhvMHBRS1l4b3JoUmxSYTlMQUhVdTliSkJpYkRyL3VwVFp6UHpYWWZV?=
 =?utf-8?B?YndDTlFuekZXY0dPTGdYRENCQUNFaWd4cVhJUi94RzdtR1l1YXVIMG4zZXZM?=
 =?utf-8?B?ZjZDemM3QjlwT0VXa0VpVFhldG1zSjhVQ2xNRjEveFFOSllacXFOSTF3dmJ2?=
 =?utf-8?B?TExnck5hV2R6TEx2Vlk0cFFyY0RwSXdjM0RxL2p1NnBxYmhLc29zQ0JVY0Uz?=
 =?utf-8?B?NDdTK0VSeHNJKzI3RWI1ckkyWmM0Y1M3bCs3RGl5ZG5ETHdGVDRkNFJFaGxJ?=
 =?utf-8?B?ZHAyVmFBSkN5M3VUVE51ZHkwakw2VkgvSzdTaVprSEZQd3BQa1NUZ0ZBUmJi?=
 =?utf-8?B?WWkrTTd6M3Z3TG5jTjBqNE8wdVZZWDJoQTRTT2gvOHBwS0FySGxPYytSVFFP?=
 =?utf-8?B?ams3Mi9NWjZOUlVUWEJXUDFvKzhNMFJPSlVOQlI2OWpTV2VLMGg3eHdvYlpp?=
 =?utf-8?B?N3RaUnlPNndCdDcvRnBTVVNrRU1vb1I5bGJlWFVlMVJPekxJVXVkS1VGNUFI?=
 =?utf-8?B?eU1HUG9lVUZjeHMwRWplL2ZtVWhDcG9GdnZNTnNYaGViSnphR2RjZzhKZEhi?=
 =?utf-8?B?YWxHcEh2b1c1Mjc1eEdGK2t0NElRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	X6P0wmkyf8IiEt/nlUUy2Xd2uXAPXevoy6oWn0jHnSoI7MHBJqFvYClf4Z+NaLzxqqkPNgibdw5/krAVfPX6J6AIbaOv4feaRwGN/8aYIG47DeYxJpzhtZzWZ0ccS1woBM2FyyXWOdBMhw4Zgw+jtMFBMibUhajDT0BqzwMFYur4zfWrDwgshCIPIEgCiVDX/Ke6FSI7Dnx6yunwD9G1KVb39/4rk3IffOS1uR5NsLXIvTeSPqBgWH9rYq7CJqQoxrtB042lWeiSvDwMsyuFrMbpnO2/CHST+aTx7a8k04+vcNOmIhEv8w5q9dQXOSxS//ZjnemXC4cWP97UKlyRn8mo+9MJm5Ytr5aJmmawcjyR2WAg3nwfGLk5yIWnUD4RTrRSiiaklhaQ/UIQ1v6SxOQJpArrW+9awci/p9122DGEu0ADdQuuLAahWtxqWfX3
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 17:16:21.6841
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 859e8b51-1303-481c-7ea2-08de6f11700c
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000209.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8562



On 18/02/2026 15:21, Stewart Hildebrand wrote:
> Gentle ping.
Sorry, I'm quite busy these days.

> 
> To be clear, domU interrupts with vGICv2 are currently broken when
> XEN_DOMCTL_CDF_trap_unmapped_accesses is not set.
> 
> On 2/5/26 14:01, Stewart Hildebrand wrote:
>> Since 4dbcb0653621, the vGICv2 CPU interface is mapped in a deferred
>> manner. On domains with XEN_DOMCTL_CDF_trap_unmapped_accesses unset on
>> GICv2 hardware, the vGICv2 CPU interface fails to be mapped. A visible
>> symptom is that a domU gets stuck at:
>>
>>   [    0.177983] smp: Bringing up secondary CPUs ...
>>
>> Move the 2nd check_p2m earlier so it's prioritized over try_handle_mmio.
>>
>> Fixes: 980aff4e8fcd ("xen/arm: Add way to disable traps on accesses to unmapped addresses")
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
I investigated whether the reordering is safe and it looks ok:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 17:35:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 17:35:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235899.1538730 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vslS7-0001zu-IX; Wed, 18 Feb 2026 17:35:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235899.1538730; Wed, 18 Feb 2026 17: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 1vslS7-0001zn-Fg; Wed, 18 Feb 2026 17:35:07 +0000
Received: by outflank-mailman (input) for mailman id 1235899;
 Wed, 18 Feb 2026 17:35: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=qnBM=AW=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vslS5-0001zR-Lc
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 17:35:05 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 286a82be-0cf0-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 18:35:03 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 6E67E4EE77EB;
 Wed, 18 Feb 2026 18:35:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 286a82be-0cf0-11f1-b164-2bf370ae4941
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=1771436102;
	b=nyig5CSGCK2zBrWyVIJDyzyGSaODA9vA4yRH1xaAzuq73mgS3H7uskWjM3XpxGnqN9Xx
	 jOMXrqFHYqxhIGyZlxaa4aLacIaQKoj52UM9x8TymFRVLCCpRrdj2FPJRkxke/Y9kVn8o
	 3RIri8YmoJG+ZoTkFdMFkuyObZZQpt2F9aSLv7Ik9ro/K8fzpuN1jKo943NDFSl4m1Im7
	 rtSoVwwBQfeAMZqsrwoUMpIS7uEHdQO0ToZkueHOd7W/riY+Fxy9w8d0Ke42FlpbQ7Ag+
	 FX6I9L+6EZK1ETbm79lldkcfoD6m0FQzLJ5zv4BZwN2a8qROZeVSKBGn5OYvSS7ZpiJNL
	 I9/EF/qaZAxAxCyizB+IcW9vktWIP1foob1KW6wgH/9iVJnIfGnU2ET3neE+xk2wus7bm
	 K4ThFcnXIHoKP70H1k9BJqRnEj81tN3YFe9/yga8DKiHRwMH0NnhZ7g0Kxsi89we/YD9e
	 9G4n4QGlgjmDR+2A0OcYwaRVSFCau5IlZvr28rrEf16/7DPED94eQ/6z4ozAEI4bdcAuf
	 /sVCclpnH8rHOLoN8R2dSctdvwpkbqU2JTj4Bsk4+UpwBtrlcfYg45Ao2vOegsZXiuYxI
	 om95JvmPugtBlkiH3Z16zFZNj6CXFddjS2jFnBOdy0dmU9qWp5ka+5GEgaeJGsg=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1771436102;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=f5mTqAhO4yMhbGETNkMlHBOPiyW1jV9cH35c+Gm1F60=;
	b=C2th59N435j/I+RSGeLq87otN8fgdzSDgx2ryK5IE1bsUPom0qABf0qXuqvfQOShcNOx
	 9YVIngfLakooFs/MbLaYSSKf9S+wQcUDBf7UljqL2+e88GhAtAQsx5QVKIKxDdR8YMei1
	 0IVEZvQgj3eV1XhrBZjHhHKAQC4CXOLxyslP6rLHDO9gaSvnnWIPH009CqNfB+N4P38/y
	 TLasaEw6oSbrggDTNxuo+mMczUTZlCzUpz3QXfa2zhLx2VeD0jJpg0byy6Xe2l3dmKfNW
	 AHJC4DOK1MlNEfxi3qj50LWC/k3oZdeVfKAe4OZ6v1z6nw8e9qgpv7WknjsrxcFpkbaQr
	 H10A4B8kCxWMXglnmRGXOMQ9Z4hS0FiKFcG30OPm44atWiGZSzl1RF1DQgxjTBGgH257a
	 tITOHZAum82tSmaJ2Gn2GpzJ6XZ/hHj1fXe1Jazs/BOGxE46yTURROtJMUnV10MaKbjMm
	 2Pvq/hP3bJ2ARjoDuLaAO5EXcuk2jbdYs+KxLTsa6pmtXE+C7kxTg3hu+tNSbiFwAZFUN
	 Z/5BYi51LiOgkfIXkXTHwynMv6iF4jjwytxZG+YeJGZ/mjriFwQ4kgaTwbGGrlUPylMOg
	 GvlXeZbdeXYYdT5lEKgTBLzPfZVLuO4Psg5VJJscMx/z7UiO2bAP1oEYjuPPKgU=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 18 Feb 2026 18:35:02 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, =?UTF-8?Q?Roger_Pau_Monn?=
 =?UTF-8?Q?=C3=A9?= <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/shadow: don't use #if in macro invocations
In-Reply-To: <a0ff4341-2754-404c-8b42-95747e3cb6ab@suse.com>
References: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
 <60a1bc11-f9a6-48c3-b7d8-d007799fbe91@citrix.com>
 <a0ff4341-2754-404c-8b42-95747e3cb6ab@suse.com>
Message-ID: <91756558bcee548bacf6264f898c2162@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 2026-02-18 13:42, Jan Beulich wrote:
> On 18.02.2026 12:30, Andrew Cooper wrote:
>> On 18/02/2026 9:03 am, Jan Beulich wrote:
>>> As per the standard this is UB, i.e. we're building on a defacto 
>>> extension
>>> in the compilers we use.
>> 
>> Is it a real extension, or just something that happens to work?
> 
> I was hoping I would not need to go through that large swath of gcc doc 
> to
> actually figure, because ...
> 
>>>  Misra C:2012 rule 20.6 disallows this altogether,
>>> though.
> 
> ... this I assumed was reason enough. Still, now that you forced me to: 
> In
> The C Preprocessor the behavior is described as intentional, but not as 
> an
> extension (section "Directives Within Macro Arguments"). Now you get to
> judge whether that's a "real" extension or a "de-facto" one.
> 

Well, since another alternative preprocessor may behave differently or 
even choke on this construct (on any instance!) my guess would be to 
regard this as a GNU extension.

FWIW MISRA disallows this completely because it can lead to UB 87 from 
C99: "There are sequences of preprocessing tokens within the list of 
macro arguments that would otherwise act as preprocessing directives 
(6.10.3)."

So it just sidesteps the issue without having to look at the actual 
token being formed and make our lives as tool implementors a tad easier.

Perhaps a reference to the GCC preprocessor docs could be added in the 
commit message or in the code, just to save some brain cycles again next 
time.

>>> Use helper always-inline functions instead.
>>> 
>>> In sh_audit_l1_table(), along with reducing the scope of "gfn", which 
>>> now
>>> isn't used anymore by the if() side of the conditional, also reduce 
>>> the
>>> scope of two other adjacent variables.
>>> 
>>> For audit_magic() note that both which parameters are needed and what
>>> their types are is attributed to AUDIT_FAIL() accessing variables 
>>> which
>>> aren't passed as arguments to it.
>> 
>> This is grammatically awkward.  IMO it would be clearer to say "For
>> audit_magic() note that there are more parameters than might seem
>> necessary, caused by the expectations of AUDIT_FAIL()." 
> 
> I've switched to using that, but one aspect is lost this way: I would 
> have
> preferred both gl1e and sl1e to be plain entries, not pointers to ones.
> 
>>> ---
>>> Leaving even the fetching of current to the helper in
>>> sh_rm_write_access_from_l1() looks tidier to me overall, albeit this 
>>> means
>>> the fetch will now occur once per present L1E.
>> 
>> This will not make a dent in the performance of the shadow code.
>> 
>>> Converting the #if to if() and #ifdef to if(IS_ENABLED()) wouldn't 
>>> work
>>> here, as identifiers are used which aren't available when the 
>>> respective
>>> conditions are false.
>> 
>> Personally, I'd have put this in the main commit message, because it's
>> the justification for why out-of-line static inline's need to be used.
> 
> I was wondering, so I've moved this up.
> 
>>> --- a/xen/arch/x86/mm/shadow/multi.c
>>> +++ b/xen/arch/x86/mm/shadow/multi.c
>>> @@ -395,7 +395,7 @@ static inline mfn_t cf_check sh_next_pag
>>>      shadow_set_l2e(d, sl2e, new_sl2e, sl2mfn, SH_type_fl1_shadow, 
>>> sh_next_page)
>>> 
>>>  static inline u32
>>> -guest_index(void *ptr)
>>> +guest_index(const void *ptr)
>>>  {
>>>      return (u32)((unsigned long)ptr & ~PAGE_MASK) / 
>>> sizeof(guest_l1e_t);
>>>  }
>> 
>> While fine per say, this doesn't appear to be related to the patch?
> 
> It does, the compiler told me to: type_from_gl3e() uses it, and I 
> really
> want to keep the const-s on both of its parameters.
> 
> 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 Wed Feb 18 17:44:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 17:44:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235908.1538740 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vslb1-0003d9-Cs; Wed, 18 Feb 2026 17:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235908.1538740; Wed, 18 Feb 2026 17:44:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vslb1-0003d2-AF; Wed, 18 Feb 2026 17:44:19 +0000
Received: by outflank-mailman (input) for mailman id 1235908;
 Wed, 18 Feb 2026 17:44: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=I2H6=AW=kernel.org=helgaas@srs-se1.protection.inumbo.net>)
 id 1vslb0-0003cw-3w
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 17:44:18 +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 70ccb601-0cf1-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 18:44:15 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id A7E664363D;
 Wed, 18 Feb 2026 17:44:13 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 54290C116D0;
 Wed, 18 Feb 2026 17: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: 70ccb601-0cf1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771436653;
	bh=Fudqi39z3fKIjZN21JHFU9sp7Q8l8iy+U+/yWrTdC3Y=;
	h=Date:From:To:Cc:Subject:In-Reply-To:From;
	b=bwaxpARdI1IwCU7FcAI2SYSxnBe2vufuu+wpk2Yyd/5+yt+PIQZiJ2bIh1nu9+s0S
	 oHgnfB7ek7MZDe+w7w3//NWm0Xwod0AJDeCeoBt7Hs5w0gVYr3P6MWVFRSArsteZpG
	 9g/EvgnwdcOgHRse8jAlN5j0YZrt3x1yiPLbjxq4Zkt2ORakaSLb/CY5Mh74Bekwn8
	 t22kRm8mZo7bBhik52x58TczcFyzmzBLH0XI3WSfwwNo5y+IILXKi37YtiQhUsH4zq
	 SJC5CvNbWSBGfNRf/Vh06PQ9nK9bwV8FLwuw3AVNnVmkl03XbRDFdJ7pWlqtRMJVFa
	 I/UhxLmcFSP1g==
Date: Wed, 18 Feb 2026 11:44:11 -0600
From: Bjorn Helgaas <helgaas@kernel.org>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	linux-pci@vger.kernel.org, linux-scsi@vger.kernel.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	xen-devel@lists.xenproject.org,
	Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v2 1/2] xenbus: add xenbus_device parameter to
 xenbus_read_driver_state()
Message-ID: <20260218174411.GA3434134@bhelgaas>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260218095205.453657-2-jgross@suse.com>

On Wed, Feb 18, 2026 at 10:52:04AM +0100, Juergen Gross wrote:
> In order to prepare checking the xenbus device status in
> xenbus_read_driver_state(), add the pointer to struct xenbus_device
> as a parameter.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - add dev parameter description (kernel test robot)
> ---
>  drivers/net/xen-netfront.c                 | 34 +++++++++++-----------
>  drivers/pci/xen-pcifront.c                 |  8 ++---

Acked-by: Bjorn Helgaas <bhelgaas@google.com>	# drivers/pci/xen-pcifront.c

>  drivers/scsi/xen-scsifront.c               |  2 +-
>  drivers/xen/xen-pciback/xenbus.c           | 10 +++----
>  drivers/xen/xenbus/xenbus_client.c         |  4 ++-
>  drivers/xen/xenbus/xenbus_probe.c          |  6 ++--
>  drivers/xen/xenbus/xenbus_probe_frontend.c |  2 +-
>  include/xen/xenbus.h                       |  3 +-
>  8 files changed, 36 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
> index 0969d5c9f6b7..2c414b77dd0f 100644
> --- a/drivers/net/xen-netfront.c
> +++ b/drivers/net/xen-netfront.c
> @@ -1646,7 +1646,7 @@ static int xennet_xdp_set(struct net_device *dev, struct bpf_prog *prog,
>  
>  	/* avoid the race with XDP headroom adjustment */
>  	wait_event(module_wq,
> -		   xenbus_read_driver_state(np->xbdev->otherend) ==
> +		   xenbus_read_driver_state(np->xbdev, np->xbdev->otherend) ==
>  		   XenbusStateReconfigured);
>  	np->netfront_xdp_enabled = true;
>  
> @@ -1764,9 +1764,9 @@ static struct net_device *xennet_create_dev(struct xenbus_device *dev)
>  	do {
>  		xenbus_switch_state(dev, XenbusStateInitialising);
>  		err = wait_event_timeout(module_wq,
> -				 xenbus_read_driver_state(dev->otherend) !=
> +				 xenbus_read_driver_state(dev, dev->otherend) !=
>  				 XenbusStateClosed &&
> -				 xenbus_read_driver_state(dev->otherend) !=
> +				 xenbus_read_driver_state(dev, dev->otherend) !=
>  				 XenbusStateUnknown, XENNET_TIMEOUT);
>  	} while (!err);
>  
> @@ -2627,31 +2627,31 @@ static void xennet_bus_close(struct xenbus_device *dev)
>  {
>  	int ret;
>  
> -	if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)
> +	if (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed)
>  		return;
>  	do {
>  		xenbus_switch_state(dev, XenbusStateClosing);
>  		ret = wait_event_timeout(module_wq,
> -				   xenbus_read_driver_state(dev->otherend) ==
> -				   XenbusStateClosing ||
> -				   xenbus_read_driver_state(dev->otherend) ==
> -				   XenbusStateClosed ||
> -				   xenbus_read_driver_state(dev->otherend) ==
> -				   XenbusStateUnknown,
> -				   XENNET_TIMEOUT);
> +				xenbus_read_driver_state(dev, dev->otherend) ==
> +				XenbusStateClosing ||
> +				xenbus_read_driver_state(dev, dev->otherend) ==
> +				XenbusStateClosed ||
> +				xenbus_read_driver_state(dev, dev->otherend) ==
> +				XenbusStateUnknown,
> +				XENNET_TIMEOUT);
>  	} while (!ret);
>  
> -	if (xenbus_read_driver_state(dev->otherend) == XenbusStateClosed)
> +	if (xenbus_read_driver_state(dev, dev->otherend) == XenbusStateClosed)
>  		return;
>  
>  	do {
>  		xenbus_switch_state(dev, XenbusStateClosed);
>  		ret = wait_event_timeout(module_wq,
> -				   xenbus_read_driver_state(dev->otherend) ==
> -				   XenbusStateClosed ||
> -				   xenbus_read_driver_state(dev->otherend) ==
> -				   XenbusStateUnknown,
> -				   XENNET_TIMEOUT);
> +				xenbus_read_driver_state(dev, dev->otherend) ==
> +				XenbusStateClosed ||
> +				xenbus_read_driver_state(dev, dev->otherend) ==
> +				XenbusStateUnknown,
> +				XENNET_TIMEOUT);
>  	} while (!ret);
>  }
>  
> diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c
> index 11636634ae51..cd22bf984024 100644
> --- a/drivers/pci/xen-pcifront.c
> +++ b/drivers/pci/xen-pcifront.c
> @@ -856,7 +856,7 @@ static void pcifront_try_connect(struct pcifront_device *pdev)
>  	int err;
>  
>  	/* Only connect once */
> -	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
> +	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
>  	    XenbusStateInitialised)
>  		return;
>  
> @@ -876,7 +876,7 @@ static int pcifront_try_disconnect(struct pcifront_device *pdev)
>  	enum xenbus_state prev_state;
>  
>  
> -	prev_state = xenbus_read_driver_state(pdev->xdev->nodename);
> +	prev_state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename);
>  
>  	if (prev_state >= XenbusStateClosing)
>  		goto out;
> @@ -895,7 +895,7 @@ static int pcifront_try_disconnect(struct pcifront_device *pdev)
>  
>  static void pcifront_attach_devices(struct pcifront_device *pdev)
>  {
> -	if (xenbus_read_driver_state(pdev->xdev->nodename) ==
> +	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) ==
>  	    XenbusStateReconfiguring)
>  		pcifront_connect(pdev);
>  }
> @@ -909,7 +909,7 @@ static int pcifront_detach_devices(struct pcifront_device *pdev)
>  	struct pci_dev *pci_dev;
>  	char str[64];
>  
> -	state = xenbus_read_driver_state(pdev->xdev->nodename);
> +	state = xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename);
>  	if (state == XenbusStateInitialised) {
>  		dev_dbg(&pdev->xdev->dev, "Handle skipped connect.\n");
>  		/* We missed Connected and need to initialize. */
> diff --git a/drivers/scsi/xen-scsifront.c b/drivers/scsi/xen-scsifront.c
> index 924025305753..ef74d4da5ab0 100644
> --- a/drivers/scsi/xen-scsifront.c
> +++ b/drivers/scsi/xen-scsifront.c
> @@ -1175,7 +1175,7 @@ static void scsifront_backend_changed(struct xenbus_device *dev,
>  			return;
>  		}
>  
> -		if (xenbus_read_driver_state(dev->nodename) ==
> +		if (xenbus_read_driver_state(dev, dev->nodename) ==
>  		    XenbusStateInitialised)
>  			scsifront_do_lun_hotplug(info, VSCSIFRONT_OP_ADD_LUN);
>  
> diff --git a/drivers/xen/xen-pciback/xenbus.c b/drivers/xen/xen-pciback/xenbus.c
> index b11e401f1b1e..4bd1c7a8957e 100644
> --- a/drivers/xen/xen-pciback/xenbus.c
> +++ b/drivers/xen/xen-pciback/xenbus.c
> @@ -149,12 +149,12 @@ static int xen_pcibk_attach(struct xen_pcibk_device *pdev)
>  
>  	mutex_lock(&pdev->dev_lock);
>  	/* Make sure we only do this setup once */
> -	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
> +	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
>  	    XenbusStateInitialised)
>  		goto out;
>  
>  	/* Wait for frontend to state that it has published the configuration */
> -	if (xenbus_read_driver_state(pdev->xdev->otherend) !=
> +	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->otherend) !=
>  	    XenbusStateInitialised)
>  		goto out;
>  
> @@ -374,7 +374,7 @@ static int xen_pcibk_reconfigure(struct xen_pcibk_device *pdev,
>  	dev_dbg(&pdev->xdev->dev, "Reconfiguring device ...\n");
>  
>  	mutex_lock(&pdev->dev_lock);
> -	if (xenbus_read_driver_state(pdev->xdev->nodename) != state)
> +	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) != state)
>  		goto out;
>  
>  	err = xenbus_scanf(XBT_NIL, pdev->xdev->nodename, "num_devs", "%d",
> @@ -572,7 +572,7 @@ static int xen_pcibk_setup_backend(struct xen_pcibk_device *pdev)
>  	/* It's possible we could get the call to setup twice, so make sure
>  	 * we're not already connected.
>  	 */
> -	if (xenbus_read_driver_state(pdev->xdev->nodename) !=
> +	if (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename) !=
>  	    XenbusStateInitWait)
>  		goto out;
>  
> @@ -662,7 +662,7 @@ static void xen_pcibk_be_watch(struct xenbus_watch *watch,
>  	struct xen_pcibk_device *pdev =
>  	    container_of(watch, struct xen_pcibk_device, be_watch);
>  
> -	switch (xenbus_read_driver_state(pdev->xdev->nodename)) {
> +	switch (xenbus_read_driver_state(pdev->xdev, pdev->xdev->nodename)) {
>  	case XenbusStateInitWait:
>  		xen_pcibk_setup_backend(pdev);
>  		break;
> diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c
> index 2dc874fb5506..e502435145ae 100644
> --- a/drivers/xen/xenbus/xenbus_client.c
> +++ b/drivers/xen/xenbus/xenbus_client.c
> @@ -931,12 +931,14 @@ static int xenbus_unmap_ring_hvm(struct xenbus_device *dev, void *vaddr)
>  
>  /**
>   * xenbus_read_driver_state - read state from a store path
> + * @dev: xenbus device pointer
>   * @path: path for driver
>   *
>   * Returns: the state of the driver rooted at the given store path, or
>   * XenbusStateUnknown if no state can be read.
>   */
> -enum xenbus_state xenbus_read_driver_state(const char *path)
> +enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,
> +					   const char *path)
>  {
>  	enum xenbus_state result;
>  	int err = xenbus_gather(XBT_NIL, path, "state", "%d", &result, NULL);
> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
> index 9f9011cd7447..2eed06ba5d38 100644
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -191,7 +191,7 @@ void xenbus_otherend_changed(struct xenbus_watch *watch,
>  		return;
>  	}
>  
> -	state = xenbus_read_driver_state(dev->otherend);
> +	state = xenbus_read_driver_state(dev, dev->otherend);
>  
>  	dev_dbg(&dev->dev, "state is %d, (%s), %s, %s\n",
>  		state, xenbus_strstate(state), dev->otherend_watch.node, path);
> @@ -364,7 +364,7 @@ void xenbus_dev_remove(struct device *_dev)
>  	 * closed.
>  	 */
>  	if (!drv->allow_rebind ||
> -	    xenbus_read_driver_state(dev->nodename) == XenbusStateClosing)
> +	    xenbus_read_driver_state(dev, dev->nodename) == XenbusStateClosing)
>  		xenbus_switch_state(dev, XenbusStateClosed);
>  }
>  EXPORT_SYMBOL_GPL(xenbus_dev_remove);
> @@ -514,7 +514,7 @@ int xenbus_probe_node(struct xen_bus_type *bus,
>  	size_t stringlen;
>  	char *tmpstring;
>  
> -	enum xenbus_state state = xenbus_read_driver_state(nodename);
> +	enum xenbus_state state = xenbus_read_driver_state(NULL, nodename);
>  
>  	if (state != XenbusStateInitialising) {
>  		/* Device is not new, so ignore it.  This can happen if a
> diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
> index f04707d1f667..ca04609730df 100644
> --- a/drivers/xen/xenbus/xenbus_probe_frontend.c
> +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
> @@ -253,7 +253,7 @@ static int print_device_status(struct device *dev, void *data)
>  	} else if (xendev->state < XenbusStateConnected) {
>  		enum xenbus_state rstate = XenbusStateUnknown;
>  		if (xendev->otherend)
> -			rstate = xenbus_read_driver_state(xendev->otherend);
> +			rstate = xenbus_read_driver_state(xendev, xendev->otherend);
>  		pr_warn("Timeout connecting to device: %s (local state %d, remote state %d)\n",
>  			xendev->nodename, xendev->state, rstate);
>  	}
> diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h
> index c94caf852aea..15319da65b7f 100644
> --- a/include/xen/xenbus.h
> +++ b/include/xen/xenbus.h
> @@ -228,7 +228,8 @@ int xenbus_unmap_ring_vfree(struct xenbus_device *dev, void *vaddr);
>  int xenbus_alloc_evtchn(struct xenbus_device *dev, evtchn_port_t *port);
>  int xenbus_free_evtchn(struct xenbus_device *dev, evtchn_port_t port);
>  
> -enum xenbus_state xenbus_read_driver_state(const char *path);
> +enum xenbus_state xenbus_read_driver_state(const struct xenbus_device *dev,
> +					   const char *path);
>  
>  __printf(3, 4)
>  void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt, ...);
> -- 
> 2.53.0
> 


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 19:14:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 19:14:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235944.1538751 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsmzd-0006Hu-Gj; Wed, 18 Feb 2026 19:13:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235944.1538751; Wed, 18 Feb 2026 19:13: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 1vsmzd-0006Hn-Cr; Wed, 18 Feb 2026 19:13:49 +0000
Received: by outflank-mailman (input) for mailman id 1235944;
 Wed, 18 Feb 2026 19:13: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=LfGN=AW=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vsmzc-0006Ha-LH
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 19:13:48 +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 f18b903b-0cfd-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 20:13:45 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771442013028766.098741949677;
 Wed, 18 Feb 2026 11:13:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f18b903b-0cfd-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771442015; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Ge3gzbpeAUp+XtLApcWZpNBAZv0oLMDjCtHZgiiavFdmAlLGOEJ2cOngiFQMpvZTp8TVyEdm4FKKs8clWfZDGiMLV25gynnAHM3w7//FJUy1sBVvMGK3auguKGjhpQTvKgZa/qUhJfDNCxlQIZ5PaHKic2w4SSC/YMv0frt04TQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771442015; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=co65X2ipz281/zfrv1FcGAsrzzR3sJZcw4PMaqb9Nn0=; 
	b=g5qtz8xPoA22JrKZoTokwN3CYmdcsMk8E4Dd7Fxbd50b6EgLf6G5JtQbMhs+QrGT0EflNLV6IEALLAw/nSqrGVdRIZjCyiP1DfaO6qwmZLHNO6DpEi0sj1QekpI08MU+iJBWPkh7mWLeYHs1fzp9y3mmBF0eETFyLp6tA7JZnyk=
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=1771442015;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=co65X2ipz281/zfrv1FcGAsrzzR3sJZcw4PMaqb9Nn0=;
	b=gdxwCTZGZ6LJB3GJ0eTXlLhoMznXnsUYrbRbKl7V8U2U88fkXvImFYMoPdpXqyXN
	i6/0mv0ToNjpLc0nGmTVSEnhLZtz9Jm9aJjQ29A37kKJwcw4EBP3ZrK/TRptLPVumCF
	hB1lsBy38rJtcb9kji6d6wDpe7yBp77IxeZ4qEI4=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Chris Rogers <rogersc@ainfosec.com>,
	Dmytro Firsov <dmytro_firsov@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: [BUG v2] common/domctl: xsm update for get_domain_state access
Date: Wed, 18 Feb 2026 14:08:55 -0500
Message-Id: <20260218190855.7272-1-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

When using XSM Flask, passing DOMID_INVALID will result in a NULL pointer
reference from the passing of NULL as the target domain to
xsm_get_domain_state(). Simply not invoking xsm_get_domain_state() when the
target domain is NULL opens the opportunity to circumvent the XSM
get_domain_state access check. This is due to the fact that the call to
xsm_domctl() for get_domain_state op is a no-op check, deferring to
xsm_get_domain_state().

Modify the helper get_domain_state() to ensure the requesting domain has
get_domain_state access for the target domain, whether the target domain is
explicitly set or implicitly determined with a domain state search. In the case
of access not being allowed for a domain found during an implicit search, the
search will continue to the next domain whose state has changed.

Fixes: 3ad3df1bd0aa ("xen: add new domctl get_domain_state")
Reported-by: Chris Rogers <rogersc@ainfosec.com>
Reported-by: Dmytro Firsov <dmytro_firsov@epam.com>
Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes in v2:
- fix commit message
- init dom as -1
- rework loop logic to use test_and_clear_bit()
---
 xen/common/domain.c | 27 +++++++++++++++++++++------
 xen/common/domctl.c |  7 ++-----
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index de6fdf59236e..2ffec331a8d1 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
 int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
                      domid_t *domid)
 {
-    unsigned int dom;
+    unsigned int dom = -1;
     int rc = -ENOENT;
     struct domain *hdl;
 
@@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
 
     if ( d )
     {
+        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
+        if ( rc )
+            return rc;
+
         set_domain_state_info(info, d);
 
         return 0;
@@ -238,28 +242,39 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
 
     while ( dom_state_changed )
     {
-        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
+        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
         if ( dom >= DOMID_FIRST_RESERVED )
             break;
+
+        d = rcu_lock_domain_by_id(dom);
+        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
+        {
+            rcu_unlock_domain(d);
+            d = NULL;
+            continue;
+        }
+
         if ( test_and_clear_bit(dom, dom_state_changed) )
         {
             *domid = dom;
 
-            d = rcu_lock_domain_by_id(dom);
-
             if ( d )
             {
                 set_domain_state_info(info, d);
-
                 rcu_unlock_domain(d);
             }
             else
                 memset(info, 0, sizeof(*info));
 
             rc = 0;
-
             break;
         }
+
+        if ( d )
+        {
+            rcu_unlock_domain(d);
+            d = NULL;
+        }
     }
 
  out:
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 29a7726d32d0..2eedc639c72a 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -860,12 +860,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
         break;
 
     case XEN_DOMCTL_get_domain_state:
-        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
-        if ( ret )
-            break;
-
-        copyback = 1;
         ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
+        if ( !ret )
+            copyback = 1;
         break;
 
     default:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Feb 18 20:54:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 20:54:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235964.1538760 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsoZA-0001Ta-AX; Wed, 18 Feb 2026 20:54:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235964.1538760; Wed, 18 Feb 2026 20: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 1vsoZA-0001TT-7I; Wed, 18 Feb 2026 20:54:36 +0000
Received: by outflank-mailman (input) for mailman id 1235964;
 Wed, 18 Feb 2026 20:54: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=3IH3=AW=zytor.com=hpa@srs-se1.protection.inumbo.net>)
 id 1vsoZ9-0001TN-CR
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 20:54:35 +0000
Received: from mail.zytor.com (terminus.zytor.com [2607:7c80:54:3::136])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 046f633b-0d0c-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 21:54:32 +0100 (CET)
Received: from ehlo.thunderbird.net (c-76-133-66-138.hsd1.ca.comcast.net
 [76.133.66.138]) (authenticated bits=0)
 by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 61IKbu3I2307125
 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO);
 Wed, 18 Feb 2026 12:37:56 -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: 046f633b-0d0c-11f1-b164-2bf370ae4941
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 61IKbu3I2307125
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com;
	s=2026012301; t=1771447078;
	bh=/4gUyx2Ogqc4pykP2NXlf3ww6HtU65MDbCy+ciTKta0=;
	h=Date:From:To:CC:Subject:In-Reply-To:References:From;
	b=txRKTC99yxQoQhaycyi7tJEOgs9h1U2j5kNLU2/1fwUwtmdQCUwUeEffkAabj72/F
	 ukff8fZVPMHYRTwmPLaZZGgZSRPefZOtaglDoqq/xRMxcmW0y0HbctJr8LQsjWYLQK
	 O6BowOLQ73YDd32xR02o7iliOviwQfGShMkbSfNL1NNO3hDb124q5coP7LtTukCrv8
	 eFIsqBvQBtd8mP5roCm/HLGwm3E5AbDDDTSL/htD5wmZD5oyabOgyU4N/H2+l29yfi
	 tegGzouqXoi0lCfrG4Cfb4XcWEQvgvnEJNiY8Xg+H/e8oJU5xeLp+CxABvSA1teX2D
	 ggrrWY1MeeKrQ==
Date: Wed, 18 Feb 2026 12:37:50 -0800
From: "H. Peter Anvin" <hpa@zytor.com>
To: Juergen Gross <jgross@suse.com>, linux-kernel@vger.kernel.org,
        x86@kernel.org, linux-coco@lists.linux.dev, kvm@vger.kernel.org,
        linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
        llvm@lists.linux.dev
CC: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
        Borislav Petkov <bp@alien8.de>,
        Dave Hansen <dave.hansen@linux.intel.com>,
        Kiryl Shutsemau <kas@kernel.org>,
        Rick Edgecombe <rick.p.edgecombe@intel.com>,
        Sean Christopherson <seanjc@google.com>,
        Paolo Bonzini <pbonzini@redhat.com>,
        "K. Y. Srinivasan" <kys@microsoft.com>,
        Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
        Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
        Vitaly Kuznetsov <vkuznets@redhat.com>,
        Boris Ostrovsky <boris.ostrovsky@oracle.com>,
        xen-devel@lists.xenproject.org, Ajay Kaher <ajay.kaher@broadcom.com>,
        Alexey Makhalov <alexey.makhalov@broadcom.com>,
        Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,
        Andy Lutomirski <luto@kernel.org>,
        Peter Zijlstra <peterz@infradead.org>, Xin Li <xin@zytor.com>,
        Nathan Chancellor <nathan@kernel.org>,
        Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
        Bill Wendling <morbo@google.com>,
        Justin Stitt <justinstitt@google.com>,
        Josh Poimboeuf <jpoimboe@kernel.org>, andy.cooper@citrix.com
Subject: Re: [PATCH v3 00/16] x86/msr: Inline rdmsr/wrmsr instructions
User-Agent: K-9 Mail for Android
In-Reply-To: <20260218082133.400602-1-jgross@suse.com>
References: <20260218082133.400602-1-jgross@suse.com>
Message-ID: <3D1FE2A7-F237-4232-9E39-6AFC75F3A4F0@zytor.com>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

On February 18, 2026 12:21:17 AM PST, Juergen Gross <jgross@suse=2Ecom> wro=
te:
>When building a kernel with CONFIG_PARAVIRT_XXL the paravirt
>infrastructure will always use functions for reading or writing MSRs,
>even when running on bare metal=2E
>
>Switch to inline RDMSR/WRMSR instructions in this case, reducing the
>paravirt overhead=2E
>
>The first patch is a prerequisite fix for alternative patching=2E Its
>is needed due to the initial indirect call needs to be padded with
>NOPs in some cases with the following patches=2E
>
>In order to make this less intrusive, some further reorganization of
>the MSR access helpers is done in the patches 1-6=2E
>
>The next 4 patches are converting the non-paravirt case to use direct
>inlining of the MSR access instructions, including the WRMSRNS
>instruction and the immediate variants of RDMSR and WRMSR if possible=2E
>
>Patches 11-13 are some further preparations for making the real switch
>to directly patch in the native MSR instructions easier=2E
>
>Patch 14 is switching the paravirt MSR function interface from normal
>call ABI to one more similar to the native MSR instructions=2E
>
>Patch 15 is a little cleanup patch=2E
>
>Patch 16 is the final step for patching in the native MSR instructions
>when not running as a Xen PV guest=2E
>
>This series has been tested to work with Xen PV and on bare metal=2E
>
>Note that there is more room for improvement=2E This series is sent out
>to get a first impression how the code will basically look like=2E

Does that mean you are considering this patchset an RFC? If so, you should=
 put that in the subject header=2E=20

>Right now the same problem is solved differently for the paravirt and
>the non-paravirt cases=2E In case this is not desired, there are two
>possibilities to merge the two implementations=2E Both solutions have
>the common idea to have rather similar code for paravirt and
>non-paravirt variants, but just use a different main macro for
>generating the respective code=2E For making the code of both possible
>scenarios more similar, the following variants are possible:
>
>1=2E Remove the micro-optimizations of the non-paravirt case, making
>   it similar to the paravirt code in my series=2E This has the
>   advantage of being more simple, but might have a very small
>   negative performance impact (probably not really detectable)=2E
>
>2=2E Add the same micro-optimizations to the paravirt case, requiring
>   to enhance paravirt patching to support a to be patched indirect
>   call in the middle of the initial code snipplet=2E
>
>In both cases the native MSR function variants would no longer be
>usable in the paravirt case, but this would mostly affect Xen, as it
>would need to open code the WRMSR/RDMSR instructions to be used
>instead the native_*msr*() functions=2E
>
>Changes since V2:
>- switch back to the paravirt approach
>
>Changes since V1:
>- Use Xin Li's approach for inlining
>- Several new patches
>
>Juergen Gross (16):
>  x86/alternative: Support alt_replace_call() with instructions after
>    call
>  coco/tdx: Rename MSR access helpers
>  x86/sev: Replace call of native_wrmsr() with native_wrmsrq()
>  KVM: x86: Remove the KVM private read_msr() function
>  x86/msr: Minimize usage of native_*() msr access functions
>  x86/msr: Move MSR trace calls one function level up
>  x86/opcode: Add immediate form MSR instructions
>  x86/extable: Add support for immediate form MSR instructions
>  x86/msr: Use the alternatives mechanism for WRMSR
>  x86/msr: Use the alternatives mechanism for RDMSR
>  x86/alternatives: Add ALTERNATIVE_4()
>  x86/paravirt: Split off MSR related hooks into new header
>  x86/paravirt: Prepare support of MSR instruction interfaces
>  x86/paravirt: Switch MSR access pv_ops functions to instruction
>    interfaces
>  x86/msr: Reduce number of low level MSR access helpers
>  x86/paravirt: Use alternatives for MSR access with paravirt
>
> arch/x86/coco/sev/internal=2Eh              |   7 +-
> arch/x86/coco/tdx/tdx=2Ec                   |   8 +-
> arch/x86/hyperv/ivm=2Ec                     |   2 +-
> arch/x86/include/asm/alternative=2Eh        |   6 +
> arch/x86/include/asm/fred=2Eh               |   2 +-
> arch/x86/include/asm/kvm_host=2Eh           |  10 -
> arch/x86/include/asm/msr=2Eh                | 345 ++++++++++++++++------
> arch/x86/include/asm/paravirt-msr=2Eh       | 148 ++++++++++
> arch/x86/include/asm/paravirt=2Eh           |  67 -----
> arch/x86/include/asm/paravirt_types=2Eh     |  57 ++--
> arch/x86/include/asm/qspinlock_paravirt=2Eh |   4 +-
> arch/x86/kernel/alternative=2Ec             |   5 +-
> arch/x86/kernel/cpu/mshyperv=2Ec            |   7 +-
> arch/x86/kernel/kvmclock=2Ec                |   2 +-
> arch/x86/kernel/paravirt=2Ec                |  42 ++-
> arch/x86/kvm/svm/svm=2Ec                    |  16 +-
> arch/x86/kvm/vmx/tdx=2Ec                    |   2 +-
> arch/x86/kvm/vmx/vmx=2Ec                    |   8 +-
> arch/x86/lib/x86-opcode-map=2Etxt           |   5 +-
> arch/x86/mm/extable=2Ec                     |  35 ++-
> arch/x86/xen/enlighten_pv=2Ec               |  52 +++-
> arch/x86/xen/pmu=2Ec                        |   4 +-
> tools/arch/x86/lib/x86-opcode-map=2Etxt     |   5 +-
> tools/objtool/check=2Ec                     |   1 +
> 24 files changed, 576 insertions(+), 264 deletions(-)
> create mode 100644 arch/x86/include/asm/paravirt-msr=2Eh
>

Could you clarify *on the high design level* what "go back to the paravirt=
 approach" means, and the motivation for that?

Note that for Xen *most* MSRs fall in one of two categories: those that ar=
e dropped entirely and those that are just passed straight on to the hardwa=
re=2E

I don't know if anyone cares about optimizing PV Xen anymore, but at least=
 in theory Xen can un-paravirtualize most sites=2E


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 20:54:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 20:54:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235967.1538771 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsoZW-0001nr-Hg; Wed, 18 Feb 2026 20:54:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235967.1538771; Wed, 18 Feb 2026 20:54: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 1vsoZW-0001nk-EA; Wed, 18 Feb 2026 20:54:58 +0000
Received: by outflank-mailman (input) for mailman id 1235967;
 Wed, 18 Feb 2026 20:54: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=nwpa=AW=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vsoZV-0001nV-Fu
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 20:54:57 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11a9b2cd-0d0c-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 21:54:51 +0100 (CET)
Received: from BY5PR16CA0033.namprd16.prod.outlook.com (2603:10b6:a03:1a0::46)
 by DS0PR12MB7747.namprd12.prod.outlook.com (2603:10b6:8:138::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.13; Wed, 18 Feb
 2026 20:54:45 +0000
Received: from MWH0EPF000C6191.namprd02.prod.outlook.com
 (2603:10b6:a03:1a0:cafe::e9) by BY5PR16CA0033.outlook.office365.com
 (2603:10b6:a03:1a0::46) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.13 via Frontend Transport; Wed,
 18 Feb 2026 20:54:45 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MWH0EPF000C6191.mail.protection.outlook.com (10.167.249.106) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 20:54:44 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb
 2026 14:54:44 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb
 2026 12:54:44 -0800
Received: from [172.17.121.74] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 18 Feb 2026 14:54:43 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11a9b2cd-0d0c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yTVBTTI3/fFzNIc8hy+4R58eRIOGBZMZr1sbVKJqnPHy4+GUboyx7Ywj3JFVD7JdFAAfVSwgbvlTFDqznjdFLRvbJ+F1KCebK+T0M4rJJ8XvNOE4ookoJWmw17me3KDCCRrNQtjwrOyvEEwcrsvpdhtsKwQOaia/ag6ZRMwVJtr121TVWbVrLlFodTGoDeFEoEGw4kVXLOxbF4GHVhNcxA3D24Pd/4CDyD4M/9ku2FxlPwKVWBQk0kPobZW6tGgTkqkPdLBKQ7GsoqiOicZeK5wIMsE8s8T+B3hrt+7XUCv2UraIg0uoo5VKrGt17RNXAc89EPIDF8jb9y6uMkVTdw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=S8u7rtXsPu949CZVdiy09ETqGzy/1bo+tI1pKBXJTYM=;
 b=eHTmbbOFua7EeuoRwAVe0PeWBVnVHr8dMy+UqLJrjDRGuCqtVXf//Caz410lywu9ZPN7ZpabnyXoPhcry1JZSZygarARGPMdHzTUEBSECLIiYqjO4Gd8txzKLau7A6kJMro+0iUO756vRkyy5hEklcePMyRueXlkRjpY26Aq+Sj+KI1cdrF0cWWaRXa+qWI/7bxTsEv6Ts7mmb3vRSXt3FQ2t7Srst2nX60t6rhihs8QyZrXcf8unORjmzWf/qyp5AGjBiAUfTstvp/Ai97aV+7JnK3k3K8bf75wg/qBdOmxynJFsYhMJnZCpbvclDDaDVUegVCotWFjE5Ssgym72g==
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=S8u7rtXsPu949CZVdiy09ETqGzy/1bo+tI1pKBXJTYM=;
 b=MRUqEhvh3PF0uTJSx2rJiu36StQ69Oc2hIsBi4FZKYD0J3JbvexkDfosuYh9K3dVsOl63/NRuKKexoOG1EbYG8Hig+3Y4CvpO6yX0+rssu0HhkcxHYoZ6dvpNiPwWwAxQo5gKHGqOc/ETmLmy8cp2gO3ZcZI6iP2VtzvLAkDe6U=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <77add3a8-20ea-4313-ba9c-4be110fc80c3@amd.com>
Date: Wed, 18 Feb 2026 15:54:47 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 4/5] vPCI: move capability-list init
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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <b5030a1c-bb01-499c-b75d-27651a09490d@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <b5030a1c-bb01-499c-b75d-27651a09490d@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C6191:EE_|DS0PR12MB7747:EE_
X-MS-Office365-Filtering-Correlation-Id: 9b412dde-e375-43b2-6429-08de6f2ff238
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?TW1BWGFMMEFOSDNMWTNEWk84RzdseExTOExuM21BZWdaSW1xN2dEbjVubXhz?=
 =?utf-8?B?NnpqUDFQemd4RVQ0QWNaWUVUUmdDdXZXeGFkdktuaWtYL28xYzllc0RBNmtS?=
 =?utf-8?B?UG81dFo3bVEwT3hGOHZWc2hPVU0xQ1pzODlmbmRSZTBoVFRUaUd1VU5GOGFJ?=
 =?utf-8?B?MGx5TnRpbEtwa1BYTTBmWFJNb2FJWnJFVFlGZjNIbkFSenpmYm5WSkFmWFRa?=
 =?utf-8?B?bVFha0RJVkNZdUdHNVhEdVovc3JSUGEvNDIyN2c0ZXZJTGhiZS9lRjFCc0FB?=
 =?utf-8?B?d2ZIVDFkQ3huTW1SV1dzblUrOUtzVjdRODNBa0QxMjZ6am8wYVpCS0JsaENh?=
 =?utf-8?B?ajdwSThWbmVKclFtU0x4Z1g5Uk9QY1Qzei80NEptQVNtMDNlSm8wYXdFOUlY?=
 =?utf-8?B?VnFZaklXa1VSdk5LODA4NHRwS2Z3MzY2QUZuclVjbUJha2lzSDhTeDhkOGFG?=
 =?utf-8?B?bW1TbTdkSHpEZk85V0RGaWhGR0VqVkcxU2pDRmhwR3pDaWtRczFBbnVXQWNL?=
 =?utf-8?B?ZjZZZ0N1V3VCaXY2WlU5S3ZLczJjcDEzSHplZkVvWjVSSjhnZmJoMEQreXF5?=
 =?utf-8?B?NWpGSkxxQ21YNHMybGpoVWlVYldrZVZwSzdEaUhGVlY3US9Kd3loeExUV0ly?=
 =?utf-8?B?cjdMWWlDSkJqbUhLdjBLQUdwckF4MU9HcVFnMlFzbnhoeG01aU9tRno3MzlL?=
 =?utf-8?B?cFF2ZVF6ZTBqaGp2blVObXJOZFdIRHRydFovd0hLc0Q4WGhiQTZITkY5KzdB?=
 =?utf-8?B?RlFFcVBJeG9rWnl4M1RQSW4wT3hIT1VKZm11WTNld0Q2dTZHYjVUNVNwUHZV?=
 =?utf-8?B?UW8wNTFIRm9LRGxFejJWazhFVFFOQmRKRmgvMUtLYnVEWStaSWhaZmpESmU4?=
 =?utf-8?B?RFFYWm1jdjlnYkpwTFMvWjI4UnMxVkRVWjI5MDNra0dWclJkcmIzQ0dPT3NO?=
 =?utf-8?B?dEpYL1BHQTlKNlBNSGpFMnhENFlvcjJsdG0ybUhsVjY2SjVKMXExenJPekhY?=
 =?utf-8?B?RVRGTTJyQ1lnZ2FUMHNCWjBSM09QNlZBb3BzWjlOL0tnVzR4Zll3QlIwcHFV?=
 =?utf-8?B?S1VTcHdVL2JsV0N1d2VWUzZHMWYvbnpTSkR1T0w2bFYxM1Q4cHdhUUU2Q1Za?=
 =?utf-8?B?S1hoVW1sVUJCc1Zpd01NaEpwQnB5ajJqMTh2T3RtRmJCUEVvenpZMzJidFB4?=
 =?utf-8?B?UW1SRGIyVW9vYThBVnE0QUQyV3Mvd3ZtUHhNZjR6S3NDRXRJdlJTVStYZTdw?=
 =?utf-8?B?N0tlcElNVzZ2OWZ6M0ZXQmVuUUd6UHVxVW5FRmRQTzB3NnhKQVZhMGdTbjl4?=
 =?utf-8?B?NjNzN3c2aVlEc2Q0T0pSZHN2eTlsd09rc29TQW1LWHowRjFNdk4wOWkxd1Qv?=
 =?utf-8?B?dXdHT0VKbC9Fd1FMaG9BdWNKYmJpRit3NTRxNEI3NW9kVWpibzlWa09SV2pv?=
 =?utf-8?B?VHpZU3Nuek0yWjF4RGtuM2MrQitHQlZyaVo3QVZiNjhKaTJvQ0ZQVlNoMFVv?=
 =?utf-8?B?cFdxLzhLUWNLL3E3VkpvaXFRUkZnYnc3TkQ1eDFPZzhIckV5WUszOHk3MFFR?=
 =?utf-8?B?Ui85VVhxS0dPRVNyNUEzQWVJOGcrR3hmb251b1FmWlMrREMvL1NaRTh0NlNH?=
 =?utf-8?B?VjhxZ0dBT0F0M0U4RkUycVl4MWptTlFVbmZyeit6NGx6WVJyak40WlFXSith?=
 =?utf-8?B?Qk1wd0xDbDVxdWJsT3Jtb0J4RStwOEFMZnY2SWxtQThYV1BoTTU3K25mczJP?=
 =?utf-8?B?d1NzNXVVWE8vMXlYcWNud0VuWXZsTHJnVmxKc1JwWXlia1V3TXY1OEF6MWgx?=
 =?utf-8?B?MEFmWUF3SmYvcG5JdzZMTkV3M0FDSU9jQ2FhQXVzNUx6T0k3QnhpWFh5Rmpl?=
 =?utf-8?B?WVhqUnJsejhlNjJKQVNPWjUxbXpmb1lpam1JbVlSWnFnbXdkN1Q2VW8vOUtT?=
 =?utf-8?B?WisxRE9ncTdZTXl6Q1hBVXNUNUpiaG96VWFxQUJmQklFTkRTTjZvZ1BqZlND?=
 =?utf-8?B?d0VFOEJWNWVoSGxEdU1yZGdUazBBd1gyTS9BUHJqa01ZL0wwdXVLUXkzY2Na?=
 =?utf-8?B?aFNNcjhabFdJTlM1a3pLS0FJcy9Uc3FMZVo5Z2xuY1c1L1VWSXFEZVdQRFVx?=
 =?utf-8?B?eUFyYUdtRVZHa2FoN0RxSWp2OWdkS01kY2FaVThaWG5JVVBqc2RKK1o3eWMz?=
 =?utf-8?B?QStJOG5mRzlObE1EMFNPVHlKNjNvS3dRMFRkOHZKcVlMalJmNE9IVmUvQ0FM?=
 =?utf-8?B?ZGF2WkpkcTMvQjJ5Z0Jtd3FvVFFnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	j+1/VnwnT4dZ5ZesgDCAav69Ya6GLWf89XjEqTirhT70eB7kNRAM7GIDmjOIhBBHGcUrQk2f4VVZMZORLzC4fbZfl4vcEiZ1a2XJsui8t+XtBaq2JUh4PsNazzvMMao/tb8dJJq9c3CPpRpqDxJcdZBGVuJ12qPUVR5/VNScl/vfIqykcGxBeH3RD0FQ9s21NdGoJNscNDxdTEfMxQAvbO+VEErboQUSsjRL3xkJVE9Tc+yOBSh0hcwQ/k5+AE5aTHSZXKyRxz6DoNKxCbilZE0J8MSaLexGTaA+8jEB1CMtRAhDe/db6or1rjZVisKAZVdvxpUl12jhMOAkWHFuwc3CsAwqp+p2vY4/M3AELBqdi+IKYb/6Ou/LQzEqy09zuG4Dz/8722SFuWeFrR5MaFlj2WuSdUzQ+qmWDUP/ATM0DnAzRmCT9j3TpesDKJeF
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 20:54:44.9787
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 9b412dde-e375-43b2-6429-08de6f2ff238
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C6191.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7747

On 2/10/26 05:54, Jan Beulich wrote:
> ... both for when the functions are invoked and where they live in source.
> Don't invoke them directly in vpci_init_header(), but instead first thing
> in vpci_init_capabilities().
> 
> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 21:00:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 21:00:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235978.1538782 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsoeh-0003df-43; Wed, 18 Feb 2026 21:00:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235978.1538782; Wed, 18 Feb 2026 21:00: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 1vsoeg-0003dY-VR; Wed, 18 Feb 2026 21:00:18 +0000
Received: by outflank-mailman (input) for mailman id 1235978;
 Wed, 18 Feb 2026 21: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=CABg=AW=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vsoef-0003dS-Mx
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 21:00:17 +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 d26f4ee0-0d0c-11f1-9ccf-f158ae23cfc8;
 Wed, 18 Feb 2026 22:00:14 +0100 (CET)
Received: by mail-lj1-x22a.google.com with SMTP id
 38308e7fff4ca-38707d4c8b9so4046021fa.2
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 13:00:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d26f4ee0-0d0c-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771448414; cv=none;
        d=google.com; s=arc-20240605;
        b=YHh1Z0kZW26nRlsten2H4Hq+fQeaPT4BIXYh97TZVXk7BNaDc9trZq4CEohTeXO8NC
         VJ968YNMmhHmJdlX1kDZKKet0bUFnLNfRqU0PWVVUXOYYxSe7KKundUVy5uxu2LpgCgj
         MfC+7zRla+KXTYFK77pV0nsz95dwsArO2iC/OeTZnEqUB+yT0Uc6bVWp8ZdSApex7jgK
         fd+vpfbFbr8vXP/Tv5rbJKJydoXb5uE4T8QMrzxuVW755Kz0KLlk+8ucjGgljkcz6Ofh
         xiC1IoZayQ1wSuI9drgNyhfpnTNP8pZqIp+wBo9zQx/pv77aFCXDys4Cd2yLL/9cPL5T
         mNVw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=ZdJvyiUk21te25MO0c9KuUepU2kfYCsREjkuROz7/FM=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=HZuel1ZR8xdMQ0LcKP4be1BnAwGX7dnv/fKYR58vONONpLo2ZXwxXDDCZD0vCmbETE
         WHcdPEXweCgrGyzKt4nxZFSMKaLLJcL+VQ4NTKdjQHpEHKhM/77J4sJlBkZz3mShO2s+
         M3m4Bu8rvd1gdZoRGuQGNTTmnCw8FYQKh/xQOFH9JTPXdBvmpg1qXMZzTgavTLJXhW+8
         1UkCniXThBu1y1S2JQt1ZwwYsXc5agRCHyJDtKIztIwLiHT2vTKUiI9N/J8HxBw+eSu/
         S9S9ZdYcjr8HVZ99D3AA8z74aeGr+8pPbtN4RoV1J1FyLncrKL+j0acoFx+4ISC363nv
         hJBA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771448414; x=1772053214; 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=ZdJvyiUk21te25MO0c9KuUepU2kfYCsREjkuROz7/FM=;
        b=NE8C0ZbHl1Y5+j8PYom1LWp+HefOftXOdnStzWXkZ3iXT/Q347M5+tcwVcsz6BIThn
         +NwDqV2GzUNNRcTIwOqOUH8QhtO4F7YeLQrMDvSzYXVEWCKPm+I9ch4nKGQWQ+QhrI+Y
         2uV6oGQwQj11XEgtIThZq9ZjqniWk/PuNJh2/UCLlEe9yDRD1DZdgfO1Wbi3d1+PEEAH
         WaA1PWKTAP6Lavhg9UWEyauCLJUTTvF+5HzarXpkaHSbCsPisI4fGDUzulfUR0TwQgv2
         W+WAWRspaj0+KduXM3kH8pD1uIao35AAG7hH+Dh3Cylge5mDM2NVdWO62Wh14/y0gT3G
         9BhQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771448414; x=1772053214;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZdJvyiUk21te25MO0c9KuUepU2kfYCsREjkuROz7/FM=;
        b=agypCAdM1YsIXp/Na+tLGBYBSPpaf5ZRckbigp520tIBob19WXwdk72oCRoVGmYT62
         RJo7DDfiWKyvieionh9rVh7kETi7A8/Q2NohObVAqbnGWpZJFU1ZVo1iPyWCVso8NpKV
         C2dYHPHrRFZuo9dQUZjShLZQPtM+QU5JCIU8Wpiv7Cn2ZP7sv+xMlMhd3RE+Sk3z14nr
         vy+YGqDa9aOL4bbBpV8apBcasTixNKQpF2q3GYBWT37xunVHj+g3SxYIAZ17CW5qa8z7
         5jN2yNCNvh9aLMh98SdoEk0/22MzfrDtLse0e5IW15st9GDQzTMKbtXIT03Srr4kdTzd
         QYGg==
X-Gm-Message-State: AOJu0YyEnKNUxIrZZTmIbF8nnqeeYsqCn8U0E041hgS/xyLB6l37UB2B
	3/MGaamzdpwPCXUQ6D0C6A1/RU+LBxeveTm58ZFM5mnhnvJkobDjoGyteknk86HRc6t6Rlq7sej
	ru++DGFcka60G0qCpH+kWV27aY15gJMw=
X-Gm-Gg: AZuq6aLpfYOrBu//i9iYP7cM8MmFdLtFtuBYzVD7l3P065fghCsRRcELQAvIdPiVcL2
	r+UE9VSjDhQPX8fi250Ne8kA06q1+MMIuSPvuqEjdtCJltlyNr84LhnDV/TpeaeG3L6/X2kgPW0
	Crub6jZGA+PEORESotuu217yID0PHNh80Ha7GxeYpb3CWzPBHR6e3ZGTduR1X+lP9JhZz67Vn8o
	HRfFM/vvp/4XCLU904RCbcVoQ311SWdbwuqWlYiISlM2B8u1Vjf5KctN1FcW8uvQ9zzJ+r4uZTW
	Eb/jFA==
X-Received: by 2002:a05:651c:f02:b0:386:1ce2:1194 with SMTP id
 38308e7fff4ca-3881b950eecmr47850331fa.31.1771448413772; Wed, 18 Feb 2026
 13:00:13 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <7cddaf16eb840dbd1480d7a1d6ddb0cbf0357113.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <7cddaf16eb840dbd1480d7a1d6ddb0cbf0357113.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 18 Feb 2026 23:00:00 +0200
X-Gm-Features: AaiRm50MYv7_n41CHSJKAdiZG8efxiYNMXq7H1DjszAKXsvqy98sSsZC_EjfK_4
Message-ID: <CAGeoDV8HBfmNpEjdP80=YFM+th0Y0d+OM=GQAxnDt0OYDNQ71g@mail.gmail.com>
Subject: Re: [RFC PATCH 14/19] arm/its: VPE affinity changes
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> When a VCPU is migrated to another PCPU, its VPE affinity must be
> updated. Hook into VPE scheduling to ensure that the VPE to be scheduled
> is located on the correct PCPU, if not, move it with VMOVP command.
>
> VMOVP needs to be issued on all ITSes in the system, and in the same
> order, unlsess single VMOVP capable ITS is used.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v3-its.c             |  55 ++++++++++++++
>  xen/arch/arm/gic-v4-its.c             | 105 ++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/gic_v3_its.h |  12 +++
>  3 files changed, 172 insertions(+)
>
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index fb1d2709be..be840fbc8f 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -31,6 +31,8 @@
>  LIST_HEAD(host_its_list);
>
>
> +unsigned long its_list_map;
> +
>  unsigned int nvpeid =3D 16;
>
>  /*
> @@ -612,10 +614,47 @@ static int gicv3_disable_its(struct host_its *hw_it=
s)
>      return -ETIMEDOUT;
>  }
>
> +static int __init its_compute_its_list_map(struct host_its *hw_its)
> +{
> +    int its_number;
> +    uint32_t ctlr;
> +
> +    its_number =3D find_first_zero_bit(&its_list_map, GICv4_ITS_LIST_MAX=
);
> +    if ( its_number >=3D GICv4_ITS_LIST_MAX )
> +    {
> +        printk(XENLOG_ERR
> +               "ITS@%lx: No ITSList entry available!\n", hw_its->addr);
> +        return -EINVAL;
> +    }
> +
> +    ctlr =3D readl_relaxed(hw_its->its_base + GITS_CTLR);
> +    ctlr &=3D ~GITS_CTLR_ITS_NUMBER;
> +    ctlr |=3D its_number << GITS_CTLR_ITS_NUMBER_SHIFT;
> +    writel_relaxed(ctlr, hw_its->its_base + GITS_CTLR);
> +    ctlr =3D readl_relaxed(hw_its->its_base + GITS_CTLR);
> +    if ( (ctlr & GITS_CTLR_ITS_NUMBER) !=3D
> +         (its_number << GITS_CTLR_ITS_NUMBER_SHIFT) )
> +    {
> +        its_number =3D ctlr & GITS_CTLR_ITS_NUMBER;
> +        its_number >>=3D GITS_CTLR_ITS_NUMBER_SHIFT;
> +    }
> +
> +    if ( test_and_set_bit(its_number, &its_list_map) )
> +    {
> +        printk(XENLOG_ERR
> +               "ITS@%lx: Duplicate ITSList entry %d\n",
> +               hw_its->addr, its_number);
> +        return -EINVAL;
> +    }
> +
> +    return its_number;
> +}
> +
>  static int gicv3_its_init_single_its(struct host_its *hw_its)
>  {
>      uint64_t reg;
>      int i, ret;
> +    int its_number;
>
>      hw_its->its_base =3D ioremap_nocache(hw_its->addr, hw_its->size);
>      if ( !hw_its->its_base )
> @@ -633,6 +672,22 @@ static int gicv3_its_init_single_its(struct host_its=
 *hw_its)
>      hw_its->itte_size =3D GITS_TYPER_ITT_SIZE(reg);
>      if ( reg & GITS_TYPER_PTA )
>          hw_its->flags |=3D HOST_ITS_USES_PTA;
> +    hw_its->is_v4 =3D reg & GITS_TYPER_VLPIS;

hw_its->is_v4 =3D reg & GITS_TYPER_VLPIS only tells us that VLPI
is supported, not the GIC architecture revision. The name is_v4
is misleading. Consider renaming to has_vlpis (or similar) and
use GITS_PIDR2 when you need the GIC arch revision.

> +    if ( hw_its->is_v4 )
> +    {
> +        if ( !(reg & GITS_TYPER_VMOVP) )
> +        {
> +            its_number =3D its_compute_its_list_map(hw_its);
> +            if ( its_number < 0 )
> +                return its_number;
> +            dprintk(XENLOG_INFO,
> +                    "ITS@%lx: Using ITS number %d\n",
> +                    hw_its->addr, its_number);
> +        }
> +        else
> +            dprintk(XENLOG_INFO,
> +                    "ITS@%lx: Single VMOVP capable\n", hw_its->addr);
> +    }
>      spin_lock_init(&hw_its->cmd_lock);
>
>      for ( i =3D 0; i < GITS_BASER_NR_REGS; i++ )
> diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
> index 6a550a65b2..175fda7acb 100644
> --- a/xen/arch/arm/gic-v4-its.c
> +++ b/xen/arch/arm/gic-v4-its.c
> @@ -36,6 +36,9 @@ static unsigned long *vpeid_mask;
>
>  static spinlock_t vpeid_alloc_lock =3D SPIN_LOCK_UNLOCKED;
>
> +static uint16_t vmovp_seq_num;
> +static spinlock_t vmovp_lock =3D SPIN_LOCK_UNLOCKED;
> +
>  void __init gicv4_its_vpeid_allocator_init(void)
>  {
>      /* Allocate space for vpeid_mask based on MAX_VPEID */
> @@ -242,6 +245,57 @@ static int __init its_vpe_init(struct its_vpe *vpe)
>      return rc;
>  }
>
> +static int its_send_cmd_vmovp(struct its_vpe *vpe)
> +{
> +    uint16_t vpeid =3D vpe->vpe_id;
> +    int ret;
> +    struct host_its *hw_its;
> +
> +    if ( !its_list_map )
> +    {
> +        uint64_t cmd[4];
> +
> +        hw_its =3D list_first_entry(&host_its_list, struct host_its, ent=
ry);
> +        cmd[0] =3D GITS_CMD_VMOVP;
> +        cmd[1] =3D (uint64_t)vpeid << 32;
> +        cmd[2] =3D encode_rdbase(hw_its, vpe->col_idx, 0x0);
> +        cmd[3] =3D 0x00;
> +
> +        return its_send_command(hw_its, cmd);

Docs says VMOVP should be followed by VSYNC to synchronize the
context when moving a vPE across CommonLPIAff groups. Here we
issue VMOVP and return without VSYNC. Should we add a VSYNC (for
both the single=E2=80=91ITS and ITSList paths)?

> +    }
> +
> +    /*
> +     * If using the its_list "feature", we need to make sure that all IT=
Ss
> +     * receive all VMOVP commands in the same order. The only way
> +     * to guarantee this is to make vmovp a serialization point.
> +     */
> +    spin_lock(&vmovp_lock);
> +
> +    vmovp_seq_num++;
> +
> +    /* Emit VMOVPs */
> +    list_for_each_entry(hw_its, &host_its_list, entry)
> +    {
> +        uint64_t cmd[4];
> +
> +        cmd[0] =3D GITS_CMD_VMOVP | ((uint64_t)vmovp_seq_num << 32);
> +        cmd[1] =3D its_list_map | ((uint64_t)vpeid << 32);
> +        cmd[2] =3D encode_rdbase(hw_its, vpe->col_idx, 0x0);
> +        cmd[3] =3D 0x00;
> +
> +        ret =3D its_send_command(hw_its, cmd);

We iterate over all ITSes and send VMOVP to each. Should this be
limited to ITSes participating in the ITSList (and/or only v4 ITSes
that can have the vPE mapping)? Sending to unrelated ITSes
looks unnecessary and may be incorrect.
---

If its_send_command() fails for one ITS in the loop, the VPE
affinity update becomes inconsistent across ITSes. Do we need a
rollback or a recovery path (e.g. retry, VSYNC, or mark vPE unusable)?

> +        if ( ret )
> +        {
> +            spin_unlock(&vmovp_lock);
> +            return ret;
> +        }
> +    }
> +
> +    spin_unlock(&vmovp_lock);
> +
> +    return 0;
> +}
> +
>  static void __init its_vpe_teardown(struct its_vpe *vpe)
>  {
>      unsigned int order;
> @@ -687,6 +741,52 @@ static void its_make_vpe_non_resident(struct its_vpe=
 *vpe, unsigned int cpu)
>      vpe->pending_last =3D val & GICR_VPENDBASER_PendingLast;
>  }
>
> +static int vpe_to_cpuid_lock(struct its_vpe *vpe, unsigned long *flags)
> +{
> +    spin_lock_irqsave(&vpe->vpe_lock, *flags);

vpe_lock is used but never initialized.

> +    return vpe->col_idx;
> +}
> +
> +static void vpe_to_cpuid_unlock(struct its_vpe *vpe, unsigned long *flag=
s)
> +{
> +    spin_unlock_irqrestore(&vpe->vpe_lock, *flags);
> +}
> +
> +static int gicv4_vpe_set_affinity(struct vcpu *vcpu)
> +{
> +    struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
> +    unsigned int from, to =3D vcpu->processor;
> +    unsigned long flags;
> +    int ret =3D 0;
> +
> +    /*
> +     * Changing affinity is mega expensive, so let's be as lazy as
> +     * we can and only do it if we really have to. Also, if mapped
> +     * into the proxy device, we need to move the doorbell interrupt
> +     * to its new location.
> +     *
> +     * Another thing is that changing the affinity of a vPE affects
> +     * *other interrupts* such as all the vLPIs that are routed to
> +     * this vPE. This means that we must ensure nobody samples
> +     * vpe->col_idx during the update, hence the lock below which
> +     * must also be taken on any vLPI handling path that evaluates
> +     * vpe->col_idx, such as reg-based vLPI invalidation.
> +     */
> +    from =3D vpe_to_cpuid_lock(vpe, &flags);
> +    if ( from =3D=3D to )
> +        goto out;
> +
> +    vpe->col_idx =3D to;

updates col_idx before VMOVP; on error it is not
restored.

> +
> +    ret =3D its_send_cmd_vmovp(vpe);
> +    if ( ret )
> +        goto out;
> +
> + out:
> +    vpe_to_cpuid_unlock(vpe, &flags);
> +    return ret;
> +}
> +
>  void vgic_v4_load(struct vcpu *vcpu)
>  {
>      struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
> @@ -695,6 +795,11 @@ void vgic_v4_load(struct vcpu *vcpu)
>      if ( vpe->resident )
>          return;
>
> +    /*
> +     * Before making the VPE resident, make sure the redistributor
> +     * corresponding to our current CPU expects us here
> +     */
> +    WARN_ON(gicv4_vpe_set_affinity(vcpu));

If gicv4_vpe_set_affinity() fails, continuing to make the vPE resident
on the new CPU is very likely wrong: vLPI routing / doorbells can now
target the wrong redistributor.


Best regards,
Mykola



>      its_make_vpe_resident(vpe, vcpu->processor);
>      vpe->resident =3D true;
>  }
> diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include=
/asm/gic_v3_its.h
> index 411beb81c8..f03a8fad47 100644
> --- a/xen/arch/arm/include/asm/gic_v3_its.h
> +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> @@ -43,6 +43,9 @@
>  #define GITS_CTLR_QUIESCENT             BIT(31, UL)
>  #define GITS_CTLR_ENABLE                BIT(0, UL)
>
> +#define GITS_CTLR_ITS_NUMBER_SHIFT      4
> +#define GITS_CTLR_ITS_NUMBER            (0xfUL << GITS_CTLR_ITS_NUMBER_S=
HIFT)
> +
>  #define GITS_TYPER_PTA                  BIT(19, UL)
>  #define GITS_TYPER_DEVIDS_SHIFT         13
>  #define GITS_TYPER_DEVIDS_MASK          (0x1fUL << GITS_TYPER_DEVIDS_SHI=
FT)
> @@ -60,6 +63,8 @@
>                                                   GITS_TYPER_ITT_SIZE_SHI=
FT) + 1)
>  #define GITS_TYPER_PHYSICAL             (1U << 0)
>
> +#define GITS_TYPER_VLPIS                (1UL << 1)
> +#define GITS_TYPER_VMOVP                (1UL << 37)
>  #define GITS_BASER_INDIRECT             BIT(62, UL)
>  #define GITS_BASER_INNER_CACHEABILITY_SHIFT        59
>  #define GITS_BASER_TYPE_SHIFT           56
> @@ -118,6 +123,12 @@
>  /* We allocate LPIs on the hosts in chunks of 32 to reduce handling over=
head. */
>  #define LPI_BLOCK                       32U
>
> +/*
> + * Maximum number of ITSs when GITS_TYPER.VMOVP =3D=3D 0, using the
> + * ITSList mechanism to perform inter-ITS synchronization.
> + */
> +#define GICv4_ITS_LIST_MAX      16
> +
>  extern unsigned int nvpeid;
>  /* The maximum number of VPEID bits supported by VLPI commands */
>  #define ITS_MAX_VPEID_BITS      nvpeid
> @@ -214,6 +225,7 @@ struct __lpi_data {
>  extern struct __lpi_data lpi_data;
>
>  extern struct list_head host_its_list;
> +extern unsigned long its_list_map;
>
>  int its_send_cmd_discard(struct host_its *its, struct its_device *dev,
>                           uint32_t eventid);
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 21:01:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 21:01:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235983.1538790 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsofP-00046S-DW; Wed, 18 Feb 2026 21:01:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235983.1538790; Wed, 18 Feb 2026 21:01:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsofP-00046L-A0; Wed, 18 Feb 2026 21:01:03 +0000
Received: by outflank-mailman (input) for mailman id 1235983;
 Wed, 18 Feb 2026 21:01: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=CABg=AW=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vsofN-00046A-In
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 21:01:01 +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 ed66425d-0d0c-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 22:00:59 +0100 (CET)
Received: by mail-lf1-x12f.google.com with SMTP id
 2adb3069b0e04-59de0b7c28aso360128e87.1
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 13:00:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ed66425d-0d0c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771448459; cv=none;
        d=google.com; s=arc-20240605;
        b=GtkvKriRVl6HTbpVD/E7I/1sseHB4fdtwyagtvPDR6BYLdlshrg4yLfjXzNJ2OKbgo
         gUUp+k21mK0qz9Z5e4gVkvt0PLNFn113Riruu8OTGEXhx5pptAzmFx2Co2LlIrJ6kbKp
         QdlpKKiIJWKQJrZGHqg+OalExK4G43aajmMQCBmwlRxpvSawPWVN2fHGEy3MmKNCmnxO
         TGeKLZ9izxN64tD4DgAw1wGzvqhowIPXGqnM26DRvIUHe9jIERTYa8MxmNr9LLRIeeYP
         QhXlIUilK6hplKBroo3wNpJ+QUAwZp4PUFtGjYa2E+nOrD7/rtyp5rBqEn+zPpn4c1ta
         VsUg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=DTZ6u5gGdRwr4VTl6AL1sSb/XPuOQB72LCs3Lhy/UsU=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=Za0SEojcENRRwvw6ZGBs//onSH7Zl1S0tXn0Od6sQEYQ9aGGmn1+Sr9waxc9VZnLih
         OpUECsNZ0BfKgFp5kXoOu4+xUHNsHkCNoC9gXIBWQ7mdRpjBH4Y4MCa2OBsf7O4+DlfL
         9QbqnXj1JYtbItTkc/hgDvxkLtgMlriCvNntdw4uoQ/oneoZ2E9tGdw5UN7oG2im9U8x
         KdqYYo12Q3jooIbV5VfJyb/xSwmGESW8pJddOHRSo/PexWYElLDWgDDBHNCUjllGIZ1j
         qszhyUDeJIbHvvDyjw5Lc57L68YTPXNnWT1zVcErKqmDaBlIH86IgDt5UNtQByj/Kga4
         5y6w==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771448459; x=1772053259; 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=DTZ6u5gGdRwr4VTl6AL1sSb/XPuOQB72LCs3Lhy/UsU=;
        b=dUFIh+umyV/v7Kynl95e+/oKhsMw4efL3SWuaAK59oUN7XcrqwDgMLzTIHbVa+8+KA
         7L7r3WSSB1BM4jYmdkf2GLLiYexvE2KsuyKA+WT5/ELU0GJvBECogzvVkJfMEZZnQUj1
         Od6hKLtEgRbHWHjX3iwqaRFfjRAZTgVNV632KjY0/6u/oUg9jDZV6hPfMY4W92dWf/dL
         ePucUhSLUJAIiDVwTHv+67FvGK4Q60isCZLHKZ5dhpUgqmeVshTsYc1HjDEFLZcMkcN/
         hkA6nE4kPWiknntrbSDbInMd5d6w39UmhrwRFmr9pe+9dYyo9LQ6RI3rwcySpw5aAt2g
         Z/Pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771448459; x=1772053259;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=DTZ6u5gGdRwr4VTl6AL1sSb/XPuOQB72LCs3Lhy/UsU=;
        b=FoRdW3RuhoSdnHsIpuSpfuDC2Tp+9yPOuMXdreh5yKSUr1IhBXH1gHfAEButikzR2u
         /SHcovXyWM2ZxHSI+9GDwN3+ZCse7HCL+pWa8a9thAA+dM1K+VynbRgxBs1BH3Q9BpND
         nU+eBd/6XgmQYWpEhyMlmht7jAt4D3BAM/aBpUkV0j5wekhFdSiGt9NgLQ620cW4UOtC
         B0zx90TXDoVcRTJw9/ham/LDXCN0tW76+A9XdQTuk22YlYWc/QQHLiQD3uKXKhH71Zg+
         IbWHV7anECztzFrD2f0YANy+TfjOMA188NWq+/HE6zIZGzjl/Tyk3wphLvn1R0wVz2aE
         us5g==
X-Gm-Message-State: AOJu0YxnAtUd4oD5xyfIfWRtSwoLaAQWXSgvEW9ziQ1dKPxa9ANJrg/6
	zjQ0bQPnRTfq0iXY3btnF5xRq+gzLr582oCZW5pZC+u2VpRuwpFhBg8mtrkP1fi8dCiqkzrcXxQ
	9cZA4+osQnyMXMmAWq0ZewKVY44yzvhE=
X-Gm-Gg: AZuq6aJF030UpD/plpJE0fBgeOrn+4YeOgm1AbhYHYi2ypEEFGlw1AcrbdQpsTPOiD/
	PjHUeV6BNH79qGFeWlVzVgLnGr2YvmxL2HVMFdXKnstUhu/NhULo+Q+VF3bbeSbTX26ruBkN4GE
	KLTXrfRkRRvsqEbV7rQ9L077JtNSp5vFEz+3RQ1TvS3HZOxlZcymepU1MqwF0FcPX9quBnwpgBe
	pYPOaMDuNeZkdUY9KSFHbjvCjJ8tCxzge5Eqwha1oedHqwrbn0B6ZikhrWPB0hdVF0OZZXTzHrP
	EbybMA==
X-Received: by 2002:a05:6512:4007:b0:59e:6269:69ce with SMTP id
 2adb3069b0e04-59f83bbc5a6mr1176368e87.30.1771448459221; Wed, 18 Feb 2026
 13:00:59 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <61859ae57032ad2da9c0eec5fb30dbe4ecc8c0df.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <61859ae57032ad2da9c0eec5fb30dbe4ecc8c0df.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 18 Feb 2026 23:00:00 +0200
X-Gm-Features: AaiRm53n3EmBwUxALY7GPhvWahItL8c0jiQeFPwEZyPGTixMCakiKxxJgn4efF0
Message-ID: <CAGeoDV-A+0a4vqXCcY1FsL-z9SLiJoTiSiDaGiALS3kwztyQsQ@mail.gmail.com>
Subject: Re: [RFC PATCH 15/19] arm: Add gicv4 to domain creation
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Allow creating domains with GIC_V4 version.

I am not convinced we should extend the public domctl ABI with
XEN_DOMCTL_CONFIG_GIC_V4/V4_1.

The GIC spec treats v4 as an extension of v3:

  Because GICv4 is an extension of GICv3, all references to GICv3
  in this manual apply equally to GICv4, unless explicitly indicated
  otherwise. Any changes for GICv4.1 are indicated accordingly.

>From a guest ABI perspective, a v4-capable system is still a GICv3
programmer's model, with additional optional features (e.g. vLPI/
vPE/ITS commands). Those features should be enabled/queried via the
relevant capability bits, not by inventing new "GIC version" domctl
values.

So I'd prefer:
* keep gic_hw_version accurate internally (v3/v4/v4.1 as needed),
  but
* for domctl configuration, treat v4.x as XEN_DOMCTL_CONFIG_GIC_V3,
  and keep dom0less DT generation using the gicv3 node.

This avoids growing the public ABI and toolstack churn for something
that is effectively a v3 + extensions model.


Best regards,
Mykola


>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/dom0less-build.c |  1 +
>  xen/arch/arm/domain.c         | 16 ++++++++++++++++
>  xen/arch/arm/vgic.c           |  2 ++
>  xen/include/public/arch-arm.h |  2 ++
>  4 files changed, 21 insertions(+)
>
> diff --git a/xen/arch/arm/dom0less-build.c b/xen/arch/arm/dom0less-build.=
c
> index 4181c10538..3c4b074b05 100644
> --- a/xen/arch/arm/dom0less-build.c
> +++ b/xen/arch/arm/dom0less-build.c
> @@ -157,6 +157,7 @@ int __init make_intc_domU_node(struct kernel_info *ki=
nfo)
>      {
>  #ifdef CONFIG_GICV3
>      case GIC_V3:
> +    case GIC_V4:
>          return make_gicv3_domU_node(kinfo);
>  #endif
>  #ifdef CONFIG_VGICV2
> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
> index 507df807ed..864e5511c9 100644
> --- a/xen/arch/arm/domain.c
> +++ b/xen/arch/arm/domain.c
> @@ -604,6 +604,14 @@ int arch_sanitise_domain_config(struct xen_domctl_cr=
eatedomain *config)
>              config->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_V3;
>              break;
>
> +        case GIC_V4:
> +            config->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_V4;
> +            break;
> +
> +        case GIC_V4_1:
> +            config->arch.gic_version =3D XEN_DOMCTL_CONFIG_GIC_V4_1;
> +            break;
> +
>          default:
>              ASSERT_UNREACHABLE();
>              return -EINVAL;
> @@ -679,6 +687,14 @@ int arch_domain_create(struct domain *d,
>          d->arch.vgic.version =3D GIC_V3;
>          break;
>
> +    case XEN_DOMCTL_CONFIG_GIC_V4:
> +        d->arch.vgic.version =3D GIC_V4;
> +        break;
> +
> +    case XEN_DOMCTL_CONFIG_GIC_V4_1:
> +        d->arch.vgic.version =3D GIC_V4_1;
> +        break;
> +
>      default:
>          BUG();
>      }
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 6baf870ad5..e5752faeb7 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -153,6 +153,7 @@ int domain_vgic_register(struct domain *d, unsigned i=
nt *mmio_count)
>      {
>  #ifdef CONFIG_GICV3
>      case GIC_V3:
> +    case GIC_V4:
>          if ( vgic_v3_init(d, mmio_count) )
>             return -ENODEV;
>          break;
> @@ -929,6 +930,7 @@ unsigned int vgic_max_vcpus(unsigned int domctl_vgic_=
version)
>
>  #ifdef CONFIG_GICV3
>      case XEN_DOMCTL_CONFIG_GIC_V3:
> +    case XEN_DOMCTL_CONFIG_GIC_V4:
>          return 4096;
>  #endif
>
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.=
h
> index 96365e5603..12690cf3ac 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -322,6 +322,8 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
>  #define XEN_DOMCTL_CONFIG_GIC_NATIVE    0
>  #define XEN_DOMCTL_CONFIG_GIC_V2        1
>  #define XEN_DOMCTL_CONFIG_GIC_V3        2
> +#define XEN_DOMCTL_CONFIG_GIC_V4        3
> +#define XEN_DOMCTL_CONFIG_GIC_V4_1      4
>
>  #define XEN_DOMCTL_CONFIG_TEE_NONE      0
>  #define XEN_DOMCTL_CONFIG_TEE_OPTEE     1
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 21:01:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 21:01:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1235993.1538801 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsogF-0004fX-MP; Wed, 18 Feb 2026 21:01:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1235993.1538801; Wed, 18 Feb 2026 21: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 1vsogF-0004fO-JZ; Wed, 18 Feb 2026 21:01:55 +0000
Received: by outflank-mailman (input) for mailman id 1235993;
 Wed, 18 Feb 2026 21:01: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=CABg=AW=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vsogE-0004fA-GD
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 21:01:54 +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 0cf616d4-0d0d-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 22:01:52 +0100 (CET)
Received: by mail-lj1-x231.google.com with SMTP id
 38308e7fff4ca-3870778358aso2511661fa.1
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 13:01:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0cf616d4-0d0d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771448512; cv=none;
        d=google.com; s=arc-20240605;
        b=EFO8xb18msWKMfGrRiUDonQeAz0i8Sje14oTGnbQGVn8VWnTls/Z2ZW0jsyrSyFcUq
         nNwBlzFRBcabJRzTIn8siomQiDglEbwCTAxGAErWI7WCXHoDebMfGamzTlvw5u6af8tf
         J+qmmM55ljc9jGMecPyyNFgzV7SFyLKME/jIWJipVT9fm4bO9wt0Zh57pJEu4OYUlImZ
         uid4H/6KjGsElGMTpep540iN5rKhF56OuH7FkRichryBxtVAANq+v7ai1/DrXXXMb9H5
         nzhMQd8ed4HbGSxR5n2gp98Dl1E2qUytkKuxJeHdrk46xhD16byOXynihIQARBxwJJhz
         kxZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=TaaWYpn9TK4SHYazChCG6RzaF2w9QYkdXnL0D4nykk8=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=idnOncmPoDr6yNgtA1xLCHv+f/LFIQS4y93ig95eLFkqXcIEXdZa2MU+dt7cPz5Bs3
         HVjZ6epNwZB8VHAOkKyOOCy5zBbKTBSIIKIizmLyCia7Wm9Yw2J5FeWKGyf3IKaVs/X1
         nCqhfZvHRL4C+c59WBR2cJRCOSzP8ea3qRQ6cG7nJlPTEi/AUSozB1QDYgKAgywdk83v
         03LjeIzovhxcTXkWQ8kSIM8XPMag00AbvoulH5O3pNB7PTrvXEC14k4NQBGALvOyiFac
         tsofsOGHrnm9Hln1fFePTlT25NKc7cvTqIhai3V9sF3yZ532PQHsNj7ZuM9s3uhiirdG
         DyDQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771448512; x=1772053312; 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=TaaWYpn9TK4SHYazChCG6RzaF2w9QYkdXnL0D4nykk8=;
        b=ey5L4IqxjgEX2jz1g+ycskO4yi2GtH5yLGlSMFPDuob7lFuya1x8i2RLg3M9GFh3bo
         04VbLkSuloYxHpUx8UPQKN2A4+FAQHB1rNKxOoEZ9FWRNy13Di2ZVY3rNG75Q0Df9rO2
         8iTS47XoIqHIFWp9/5+1LOZrhK42h/l6TssoG8lZO2tXX3vPpbJlyJPGRMbSMV82L/dG
         fWJx8VOKWsL/zMiQhxP0NAvMhgq1VfPOedxT378xqSO9/s57h8Aqa2MKi7IgDLd8AJgB
         xD38POvtFt1iickEKeZdzjqVJ0yw3scMzd+hUx+fDx87XeVD1gSGg1OOMLnxAttKV58T
         UDpg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771448512; x=1772053312;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=TaaWYpn9TK4SHYazChCG6RzaF2w9QYkdXnL0D4nykk8=;
        b=ia4KsXFmIOgZOKkQRJ71JSZ+UZgEq+88fn2kK9DFZc+5WzWHyDgrgWxcNnHqKt39O5
         Mh4oZfBL/FhdPjFO+T/8OIryDE/ae/zk61WcQAtzcWRscIOMzW3suOAhhHHpC08n10+s
         R60DKhlK6+ghFIyCTuwUCBtKZX8JypPMaCi/ij4W5RBVMWUI35QVBUemlrsT5JEyi4B5
         VYT78Fin31I/rXdNUmGhJeASPoU78GO9MknYnXQ+zomzvnAqbti4bV3ROfcfzafQ/3Bh
         PgW40W4dFe4uR0cZbq9gi/totG3hixN5RhDSVXogU9jOCHnEnFRcQXe0N1e5QJHmeX3r
         uWnA==
X-Gm-Message-State: AOJu0YwElQ94FiB34CvhuChD5X1b/jciUTkApwk/253u7hN5ew9NETJ7
	zdJ5wVNthnxyV1/jrcrBpyzUAZyWCj67D2aRKgCd/4YaV7yKDxTq1nR7XaYFVTlgzp+eDnMum9q
	okvB7AWvcyNa0bQIGqYiAKRPePSmk3EE=
X-Gm-Gg: AZuq6aKTk08HC7z3ricM/KLEwkVzJ7AWc621VrVTlU9N9wwKFZySsw/0AOribQjtc7e
	H/gwtQuV9fZpNh6W3XzkuB7M+lbAqEEvc3ZHeFSH6t0y6TtBUiKzCZnC8DwUumXZLcBh4is2+UH
	QpJ2eP64JZrXoJTXtuJR+N9nNFaJQStpPBP+P5IasLgbG408vUjv/vrHmZTm9ZDBvl7tcTYbEup
	eDqQ0F4Y2fbn8chFub1G/TUo0kb1nbxnx2+JEf0b9B9h2oJ+k27It10jGEHR7t4AhK7/VyByR+a
	Qu8KMA==
X-Received: by 2002:a05:651c:1442:b0:387:1ba5:99ca with SMTP id
 38308e7fff4ca-38810576c5bmr55472961fa.31.1771448511998; Wed, 18 Feb 2026
 13:01:51 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <13bab832bed00832d7597105a33ab2f215e626ce.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <13bab832bed00832d7597105a33ab2f215e626ce.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Wed, 18 Feb 2026 23:00:00 +0200
X-Gm-Features: AaiRm529IKmljNPd7An2WyanH56X6HM_g-zRbmWyByLv-WdgMIC_WBTlSqjBpJo
Message-ID: <CAGeoDV_ftsmBPW+246n+5rDOnh2UR8BoLMy5DbXbVTLG0jmogA@mail.gmail.com>
Subject: Re: [RFC PATCH 16/19] arm/gic: Fix LR group handling for GICv4
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

This commit can likely be dropped if we apply the approach from the
review of the previous one (i.e. do not introduce per-domain GIC_V4/V4_1
versions in the domctl ABI and keep guests on XEN_DOMCTL_CONFIG_GIC_V3).

In that case current->domain->arch.vgic.version would remain GIC_V3 for
v4-capable systems too, so the existing checks (=3D=3D GIC_V3) already cove=
r
the intended behaviour.

If we keep v4/v4.1 as distinct internal values, then using >=3D GIC_V3 is
fine, but please avoid relying on numeric ordering of enums unless that
ordering is explicitly guaranteed.


Thanks,
Mykola

On Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Extend the check to mark interrupts as Group1 for all GIC versions >=3D 3
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v3.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 07736179db..1cb3169b72 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -1366,10 +1366,10 @@ static void gicv3_update_lr(int lr, unsigned int =
virq, uint8_t priority,
>      val =3D  (((uint64_t)state & 0x3) << ICH_LR_STATE_SHIFT);
>
>      /*
> -     * When the guest is GICv3, all guest IRQs are Group 1, as Group0
> -     * would result in a FIQ in the guest, which it wouldn't expect
> +     * When the guest is GICv3/GICv4/GICv4.1, all guest IRQs are Group 1=
, as
> +     * Group0 would result in a FIQ in the guest, which it wouldn't expe=
ct
>       */
> -    if ( current->domain->arch.vgic.version =3D=3D GIC_V3 )
> +    if ( current->domain->arch.vgic.version >=3D GIC_V3 )
>          val |=3D ICH_LR_GRP1;
>
>      val |=3D (uint64_t)priority << ICH_LR_PRIORITY_SHIFT;
> @@ -1455,10 +1455,10 @@ static void gicv3_write_lr(int lr, const struct g=
ic_lr *lr_reg)
>      }
>
>      /*
> -     * When the guest is using vGICv3, all the IRQs are Group 1. Group 0
> -     * would result in a FIQ, which will not be expected by the guest OS=
.
> +     * When the guest is using vGICv3/vGICv4/vGICv4.1, all the IRQs are =
Group 1.
> +     * Group 0 would result in a FIQ, which will not be expected by the =
guest OS.
>       */
> -    if ( vgic_version =3D=3D GIC_V3 )
> +    if ( vgic_version >=3D GIC_V3 )
>          lrv |=3D ICH_LR_GRP1;
>
>      gicv3_ich_write_lr(lr, lrv);
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 21:59:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 21:59:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236009.1538811 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vspZM-0003YE-Pl; Wed, 18 Feb 2026 21:58:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236009.1538811; Wed, 18 Feb 2026 21:58:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vspZM-0003Y7-Mq; Wed, 18 Feb 2026 21:58:52 +0000
Received: by outflank-mailman (input) for mailman id 1236009;
 Wed, 18 Feb 2026 21:58: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=nwpa=AW=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vspZL-0003Xw-GW
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 21:58:51 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0063ea83-0d15-11f1-b164-2bf370ae4941;
 Wed, 18 Feb 2026 22:58:48 +0100 (CET)
Received: from DS7PR03CA0308.namprd03.prod.outlook.com (2603:10b6:8:2b::31) by
 BL1PR12MB5801.namprd12.prod.outlook.com (2603:10b6:208:391::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.13; Wed, 18 Feb
 2026 21:58:39 +0000
Received: from CY4PEPF0000EE3E.namprd03.prod.outlook.com
 (2603:10b6:8:2b:cafe::f8) by DS7PR03CA0308.outlook.office365.com
 (2603:10b6:8:2b::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.15 via Frontend Transport; Wed,
 18 Feb 2026 21:58:39 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000EE3E.mail.protection.outlook.com (10.167.242.16) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 21:58:39 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb
 2026 15:58:38 -0600
Received: from [172.17.121.74] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 18 Feb 2026 15:58:36 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0063ea83-0d15-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gtsSqDmgAiSvW43Qmwxuv6RWmpQwc9r/nj7+/sMRpBqifRLkng5ZL1hAd+hKfarX0RteRh9Ueg1Gcwr3Ih68o3STP3GHrgV8XgfQprL0c4mXLltcXEcDNbDevpz+0QPdZ2gBL4WDhh9sw1yBVMALl2J2d+yrKRI+qHXt+l3x3PeHu1EuQI+9n1Na7qccU3dvoGo82Ot1wxRSw/uMs0kvjbc8qKGUNEqgDq716vyvUg/8eUJRzhR2IfB0j+ii2R2pFJVLvh0t7wTVRvF9/VZ5aN/eSbnPF7+O5jKWd36vFFKPNLQFncbJxC6reSCjhLVpHWxdyv5/G94N1QNk6o4IsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ABkrx97HXuyxoaYIfUhogiitLDbx8qZvT+AMeE6TcHY=;
 b=cZVe709WdR/Te0MG4hhHs+gDIParUoYSjlHK/k+60W4QylfubI4P4hZaZyCxmu0xIq9+CIBPe9OtVSqgriA3jFDgtz+3WhZLU3J6P9gZhFnfQ4eOL3kA3enBMuKRziYl/Ogbmu9dK4Pi715wygdxWlEAs39W9HQAbZgljxIS4liqqtJ5kNYVmGTlMQBJASJMpZ6hF9M3LVrV9huwdPcO5GsviPQruV/hGSuV+O7dbLGjunJRXrVLORpXPw8AxU2KwpCMGeXszdHnYmGi+b/bzjc54SkXuHZ+1Pe4zaJ+/zC1g24dIY2XG8PhzF4cvZiLHbMUfk9N1B7bOZhrGagg5w==
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=ABkrx97HXuyxoaYIfUhogiitLDbx8qZvT+AMeE6TcHY=;
 b=3mrX/8TSqHJ89frwjE5ShwSd1SbH13xbDvI6/zBNBKWird1BVETgxRqfv0h8aOF/q/d4xL1cmQ3191zOTdAzGZ8OGe5BvbYuQs3xZ9V8aoGY2ws4vgHIh4FA203x3EKOiu6kUVZ0GP+8wAobaE7Q7z3CfmucVuGKtgDz7lFB/nc=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <997450bd-3c01-47d9-a0db-21b58fdbc8c6@amd.com>
Date: Wed, 18 Feb 2026 16:58:40 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/5] vPCI: introduce private header
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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <4fda7acb-e1a4-4a24-982e-4cae90048018@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <4fda7acb-e1a4-4a24-982e-4cae90048018@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3E:EE_|BL1PR12MB5801:EE_
X-MS-Office365-Filtering-Correlation-Id: 3aaf5f5a-b5d8-447c-559a-08de6f38df78
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?dFNoQUhYU0dsTmNWSzd5TjBLZmMxclhjczZya2h1VzVhcy9zMUNsOUZZTkJS?=
 =?utf-8?B?WFhRc1hmRjUwMy9kNmJRbFBSYjFqVm9ZbVY3aHo4WjB2V1k0Mm81RGl2VmhZ?=
 =?utf-8?B?a0hvNkNuNjVoRG9Sam1JN0hFM1d0ZVFDaTNqVS9DQzZpUUJlVm4wMnQ5bWxr?=
 =?utf-8?B?VWp0VnhQdm1iWHQyNHFKcWphTVFYekl6Z0phZWJzOWU2TFZWSnpHakNGNmdN?=
 =?utf-8?B?QXRsVU9LWnZMT2tFZ3pMcktBcE5aVGFCRzlmbURKVmd0NVl6c1dnS2t1dXFI?=
 =?utf-8?B?czl6alBzSlJIMnhYUDdSMTNUcys4Sit3eDVyTjExNnNHeG5QblpxR2NPMjZE?=
 =?utf-8?B?YUFhZUVyaTFLd2RuNGF1MGgzK1RmaFNzaXZ1VlYxeVFxVWFZOGx1elRmcWQ4?=
 =?utf-8?B?N29hcGtjdEdzbEhNOW9MQUVCMEJiRTJ6TnhnMlBnc2JkUVdYZGJLaW9rMTlo?=
 =?utf-8?B?QzhDUmdhcURLditiWFkvU2hISXlER284eFRORWFuWWpFY2lWaXd3NVdKMDJv?=
 =?utf-8?B?bTdwdGhScmVpZEErYmlPMGZLRXJjSFNJQU1SV0xtRVdtK2xZZWpmSUZtQXNX?=
 =?utf-8?B?ZWN6eGVxclhYTmtDeldUM2ZCb25JUWtRdEduTlczVVhwd0FGTkZNNDlJMzZo?=
 =?utf-8?B?UFJPbzAyVzNVbllRdzl2NmFYRjFYZUFFTlBsRzBzQmtPMmZDVTU2R3puTHVF?=
 =?utf-8?B?Q1hRaWo2NlFWdmZPL2l2bFp1VjIwMjZaWWZ4RTJrVEppc3RMUWNNWGJ3SmZ6?=
 =?utf-8?B?SHE0dnBZTE5IVTNhcGRvR3JCYlNkY0Q5Y1VlV2trWUduSVphdXgxeGl1SVln?=
 =?utf-8?B?cUo0ZjZVZjY0dmtxTTltS2p4QXBoZDFwTXNKS24vL0s4OXZJWURYdHZjT1dY?=
 =?utf-8?B?RTJMTTNvVkU4T3haQXRWQmIrQW00RWZLYnBMbmRtYWFsK3JlaFloTXVNU3hl?=
 =?utf-8?B?U0I4YkJ3VkZYc3QzMmV4ZnRtT2twRHdzYXB2MnFsYWZLakdQU0tqYmJpR2o4?=
 =?utf-8?B?aHZZTkZQR0JBQzgxTU0vanJQSk5NZUJkbm9sTHgwMzJvcXFiNDc0WjZ0NVJk?=
 =?utf-8?B?bzFuWXUwdjF2RWoyUEdpL3RPOUo0YThlcUVmSjk1OTFvdG02OU9qd2RNdWZ2?=
 =?utf-8?B?Y2lHVE5PMFRSaEV3bi9KM0FtcmVERXlrdzdjZDJWN2pUUnpGZ2x1V3hGSWpu?=
 =?utf-8?B?Z2JRYlNueWNPMHJueXR1aUV1ZnZxNEZZb2pCMTVJa213UlAwQU1CaWZ1Q0lN?=
 =?utf-8?B?VUdSOG4rcXZPSW9jbXc0c2VsYkxwamtjWEd0dWNZaHhnT3BEUjhucmg2aFpW?=
 =?utf-8?B?ZE9BSXJBOURySnBnMU5pc1BEN0dpS25UWWwzcXJrMkV3MXI4Vzc1KzBUTzNW?=
 =?utf-8?B?QnhtcVBpL1FjMGhjZ3l3QS84ZGV3dkhmUHZ4dUwvL21IWFJYY2RJamlTWGh4?=
 =?utf-8?B?MTl3enI2MUxpRHJvTGJwVWt1QmpFeXBZbDkzb204TnJGNkExa1RlQlhpVEtW?=
 =?utf-8?B?OFc2YnZMUjVkb1RFSjJiSVpReEl4Y3BiQ1ZiSDNPQU5mSVJKYm9oUDk4VjFh?=
 =?utf-8?B?MnhaWGNSbHNqY2lIMnloWUdqL0F2RWxRblNQZi9yL2FGTnZoeElOY0p6cnA0?=
 =?utf-8?B?RTF3S3F3UVAzWFN4VVFyeTNSWUs0MEd5bmk4RzZ4VVhjTXpqU3JJcmw3ZENq?=
 =?utf-8?B?bUQwUldTNkFUME1Eb2thWTZLbU5jcEtYcXJHa0xXZ2hneTI3OWFSQ2gydnVX?=
 =?utf-8?B?L1FmNkZoTlREZkNIMWMzL0Z0MnpGMzFjRkdJSDNRa0JuUzdEcy82cTVqY3pV?=
 =?utf-8?B?R1ZueDI3ZnlvNVhJRnZoSlJxZGRqNkhuOXJhdE15TC9Idm4va2pHVjVteHA3?=
 =?utf-8?B?ZGkyV01oK0piSmMzblpYbUhZNkF6VlMvaUxnbjc2cUp6ZXF2OHBzYUtoTUkz?=
 =?utf-8?B?dkFkM2pXTXcrSnhQcUJjN0FhMy9sZWNFRExPVDU3a1pIcWpTdVowQS9mN0Ex?=
 =?utf-8?B?TUlaMCszNzcybWV4UnAzZFdHQkV5QXNQbWhKTEN5SkpBcENIaSt6M1JlZk5Q?=
 =?utf-8?B?OEFTK2IvaWJnekQ0b0F4c3R3cUx3SCt5a1VFRmhzVmk2SG8veFpvNE1SaWY2?=
 =?utf-8?B?NUlmK25SeVNUdHdqbFptbVdqVlVIVEdWajlDZkRzU3J6VEQvSGRrVFQxTmI2?=
 =?utf-8?B?cTh6QU9UcWlwd280blhsd09hN1NKU25hZVJhLzNxZlVPLzBrSDREUEhEbFhX?=
 =?utf-8?B?UTN4dXQrTlcrcDFoZWFkdzVkLzFRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	fTgqEJ9TaBoDaEEwDqIICcAJJTHpbZgbvseOrVCEUGktPYBVEeo1awkyiaEcdcfst61VRqLajT3pjxGzxx2x0QOuHf64F0lolxsy4kzdAYgCVq1jI6M8qHWfilz8vvEJ3HfeyuYA0TcBiyUT27+U4NC80IfXJ7NrXdz0TuQ9kFntCUupxoF0LQxV135mLkD/QtsunY1ffSUZJxF/yUeIHaCGSPpphpmvFRwgNQsChZbFyfd0pXZT8AJasJXy6WL/MzICz7lac2ceV7xbgLbCuis5cAi/tDqOLPoK0Alex6e6Sxc73Yn4TiKG+CAyRt12MYq0RlSrWn1eYogMV4ljCB0nWkx1YhgWIxU2pfHDhYGhZCEpkdsg7CxU6OSxFH/gg+V7G6VNJBpRAoTpC6i2bUgulCWxETKrahvlnNerzU+ykIH5oyPOFRzY6yFxjnn+
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 21:58:39.0379
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 3aaf5f5a-b5d8-447c-559a-08de6f38df78
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000EE3E.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5801

On 2/10/26 05:53, Jan Beulich wrote:
> --- a/xen/include/xen/vpci.h
> +++ b/xen/include/xen/vpci.h
> @@ -30,20 +19,6 @@ typedef struct {
>   */
>  #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
>  
> -#define REGISTER_VPCI_CAPABILITY(cap, name, finit, fclean, ext) \
> -    static const vpci_capability_t name##_entry \
> -        __used_section(".data.rel.ro.vpci") = { \
> -        .id = (cap), \
> -        .init = (finit), \
> -        .cleanup = (fclean), \
> -        .is_ext = (ext), \
> -    }
> -
> -#define REGISTER_VPCI_CAP(name, finit, fclean) \
> -    REGISTER_VPCI_CAPABILITY(PCI_CAP_ID_##name, name, finit, fclean, false)
> -#define REGISTER_VPCI_EXTCAP(name, finit, fclean) \
> -    REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
> -
>  int __must_check vpci_init_header(struct pci_dev *pdev);
Nit: I suppose vpci_init_header() could also move to the new private header file


From xen-devel-bounces@lists.xenproject.org Wed Feb 18 23:05:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 18 Feb 2026 23:05:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236020.1538821 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsqb6-0003ps-Ej; Wed, 18 Feb 2026 23:04:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236020.1538821; Wed, 18 Feb 2026 23:04: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 1vsqb6-0003pl-BI; Wed, 18 Feb 2026 23:04:44 +0000
Received: by outflank-mailman (input) for mailman id 1236020;
 Wed, 18 Feb 2026 23:04: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=9JgR=AW=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vsqb4-0003pd-6p
 for xen-devel@lists.xenproject.org; Wed, 18 Feb 2026 23:04:42 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 335294f4-0d1e-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 00:04:39 +0100 (CET)
Received: from SJ0PR03CA0030.namprd03.prod.outlook.com (2603:10b6:a03:33a::35)
 by PH0PR12MB5645.namprd12.prod.outlook.com (2603:10b6:510:140::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Wed, 18 Feb
 2026 23:04:32 +0000
Received: from CO1PEPF000066EA.namprd05.prod.outlook.com
 (2603:10b6:a03:33a:cafe::67) by SJ0PR03CA0030.outlook.office365.com
 (2603:10b6:a03:33a::35) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.13 via Frontend Transport; Wed,
 18 Feb 2026 23:04:31 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CO1PEPF000066EA.mail.protection.outlook.com (10.167.249.5) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Wed, 18 Feb 2026 23:04:31 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 18 Feb
 2026 17:04:31 -0600
Received: from [172.24.149.13] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 18 Feb 2026 17:04:29 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 335294f4-0d1e-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xkI91SFLGkZWpGNogjQvFmDO+ApudPuR8SwOakhkDswre1mRCvIhNqGOCmmghgksiOMo2I0v9JnOm+dwqsuTW36hBniBJtGTCcfuWlhFgFe5dZLU+HuCRGg3K9FRVtSqVi2hcwClR4qDkZm2NO2qyYKLHy0xf7gQl08eSGepgnIgA74YJSfV1a/apenW70Gm0AM5koKjG9iyEK9TR99qVRGkBhEQg29wbPbCz105NrNiw4rE0N2BT3PBKoXp5lu0RLkCDpLJHKrnCVn0Nvi4V4Tl3NMZCO3/DXriFUUGHLV6IpYAR4DugNyos5KbxkyXnXo9Gv9DEas/4DGJ9FLCfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J8VnoYUXj7cNQO1ck5okVPjiqB4zMb7QZhLyZ5xqTms=;
 b=PvlgFMG33nNAA1nzuLov/nlEUMYIfswWTZxXF1ytyUeRBaYapuCuS/pPDZNTgP5RmUMA3w5zT8+BSCG+9KxJLBnztvs2zl/L9kGgiJaYX0x2+JBqK4nxShfcrMeFbjdULMYoRx+lzLQWhdmBOHlFQlOhe257owzciZwmxcb+oEWI56tEwGOwznduWtljV7k0HdE1qDemWATDWwtbVC5atCllJc1m3A/gyiAU+Mm7CruJ8WZk+zyIMNnsYa8gqu4XeCDJRYd9JBQoJ57xxwWDo8aOk6HKGnqxmZQJvtgWMDmIaJU6XnFc7nlmPvHOczPcUE8pavDuIIi310UHpa9wDg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=J8VnoYUXj7cNQO1ck5okVPjiqB4zMb7QZhLyZ5xqTms=;
 b=ivmoFHjuySDX4HZUV+mPA3yt5Y36QuhGGnoEG2VpZsDWX+xcY+4cr4uuR+DdXx0MM3yauloF3GhYC9LHGnVrFYsTZDh5mP3/IVbBP48PRzAArP9s/f4bjqBfskag6WEVywvncdMUAWvBujUsq6YXX7/JenJRjhtIM9nNO0DaOvg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
Date: Wed, 18 Feb 2026 18:04:29 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: Chris Rogers <rogersc@ainfosec.com>, Dmytro Firsov
	<dmytro_firsov@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20260218190855.7272-1-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066EA:EE_|PH0PR12MB5645:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d8b565c-9b2a-4fa3-2973-08de6f42135a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|7416014|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UU1LdENGUElQRFpPTWlRUVZmakJnSGFaQ1JDZFFGMEFhTk13YTBTeThKc1or?=
 =?utf-8?B?U3QyZVJyWm1SSWNMYkhRTTBCN1dKeDd6SjUrNE9FSlhkNVA0RzJObWxTRzZT?=
 =?utf-8?B?ZFZVb1RVMGFPdFg4bmZnVVVTWFZkdlZaOGRRNnMxTVFOWDE3UnFPSEtQcnJz?=
 =?utf-8?B?YXp4QzBKWVpRUk1Gb3dzSFYwNitkUGhFbTNtaG95d0xTUm00QzRPQkVpWGU2?=
 =?utf-8?B?WWVGdm9ueTVoV3FwaGhYL1ZUUUhzbGtYVlNiWXdyMVR1Q1FqTHJkM01sSDlk?=
 =?utf-8?B?V2ZEZml6N2NwNDUvL25GK0czN3BUUldxMFVTSGNIS0FQWkRyR2FBalluUmxQ?=
 =?utf-8?B?K2FzYUI1U2JmRndGdlhZODY5L1BlOGdjOFN4U095M2FadTVNOXc1ODhGV3JO?=
 =?utf-8?B?TFpOYUd2cXN6UGlGb0ZBemJyQXhuaGlmank1L3FUaDlkZFVHR3ZBaEh2MmVX?=
 =?utf-8?B?VVM3QVFQdThQV3lpZnY5ZGJPZEhLeERWNktjaEhBUXE1REkvSjZDcDlnekdV?=
 =?utf-8?B?b2MzYk9RU2ZqNmxzL3Y1Y2pVemV4OWZJN01CZ1FVNTIrWXJqcXFtc25xc2Q1?=
 =?utf-8?B?T1JjS2JHbFRac3V4UU5LWGRaU2JIdkJ3eGhNV2FyVnc5dGFuM3hlQ2hPdUFy?=
 =?utf-8?B?VGxDcTJJWmhJWDF3KzNRVHovOFZkUTJaQzUzNElMRkQrSjFaSWNna3lsL1Rw?=
 =?utf-8?B?U0tYenNTZEZyZGFXemFXblYxakZsVVhnb3R5SkNoRVVHNVhNNm44bWp3aEZ0?=
 =?utf-8?B?RE11Vk1Yck0yb3JlTnFYWFdSUzVYM1NQVW5KMzNxazcwOWJ2czd6a2N4TXRt?=
 =?utf-8?B?Skx2SEd1TFJERndNdDczQkdDNDJFZGVpTlE4bHdTSFY4RnY3RW1ySmVUWEtH?=
 =?utf-8?B?QnczczRFU3FoRDBPSUxYYmVjNTkvakhQRmZUa1MvTXZZM2JYZ2d2NlFjM1Jq?=
 =?utf-8?B?YWR0bUs3UDB0bElhR3FpR2w4TzFDdHoybGVSK0x5bEpoWlVvVXVwd2V2RDJK?=
 =?utf-8?B?VEpnZ2I4VFMydWZCNC9Ca0M0ZHNMbzhmOG91MGFOeEI3eEMxUDRwNXZmMTF0?=
 =?utf-8?B?ejRmcmFrY1ptMDh6UEFrMGxPWEEvWUx0dWRvczdFeE80TGN4SDd0VXZLTXpl?=
 =?utf-8?B?bGFaNWJyM3Q4VGJJb1JmV3k5cDZtd0ZvekFteFdJbk0yeG12VzNzNmYxcnNL?=
 =?utf-8?B?RGxFVllFNEJka3gvVEI4N2pscmc1b0Zzd3NEaWhYbWNsdkRCOGkyTjEvTzRm?=
 =?utf-8?B?ZWRDcjN1am1wMWwyaWh6S29zY21NQTdGRWQvOVpLVVR0WEcwTjJTSmczb28x?=
 =?utf-8?B?RE1tQWRoL3JCdjhYZVlzTk9IWVVKWmxDWFVqWk5wL2RkQmZyYzVhV3dRUXA1?=
 =?utf-8?B?eVlZZlYwNHhQRWttWFFvNnFtTFNjUjJKVUR6OWtEdTVaUVFlajNJOEhFM1Fi?=
 =?utf-8?B?dTRpQmF4UzBqSDN6ajFtaGk0RlRkU0ZZWFhjUEZ4WWpxSm9GRDJCdTNkeEFT?=
 =?utf-8?B?UG1rKzE4OEEvQTBscDlNUzBYWk1xVVR2Z1g2UzAvKzNKS1JCc2hSY2YvVFRR?=
 =?utf-8?B?YklxM3FSd1FMWGQ2a3BpZ2Vvdk5DcHl4bHJkaXpvNFFWU2h3V0NzQjg2dnpT?=
 =?utf-8?B?b2Q0dDBUUzhnakJiU1RWbWhJVitDTncwTXZUTzNObk1aa1QvcDRWSUE1akRr?=
 =?utf-8?B?OUEwTlk2dEtLNG5GWkhQLzBNSldxWGQyeWJrL2NieitlcFd4WE9CdVUrbFpI?=
 =?utf-8?B?cXRBRlc3c0VqYSs2VlhjZHBZaTE5blNEdjE2MmxnbGRLS0lpYWRTb1Zoc1Fr?=
 =?utf-8?B?T3BKbVR4Qzd6emk2Tisvakd2dkdBS2N2aENYMjlNN3Z1K0hLMGV3K1R2OU5u?=
 =?utf-8?B?WU1TZWlha053QUJqUjE4VzlMMVVDMjlkT0xWdWw4aWp0N1lFbFVNblFwdUJV?=
 =?utf-8?B?bmNCMVJQdXF1cHBpS0tvaCtmN0VTYzFwMnF6RzJxRzN6T3k4M045NTRFRGRP?=
 =?utf-8?B?SkJRSlQ1K3JnVThDS0xQVVFUYWdMa21zV2JVcE85M3lmeWs4N29DWHlPaDlJ?=
 =?utf-8?B?cmN6ZnlnRDArdHA5UTBqUzRpL2lIK2hCVUZCc2R4UGp6TnZCVlpyRjZOVnk1?=
 =?utf-8?B?ZlNKTlQweVNKMk5TM29tN3ZMbVg5aU02ZEE5b0pEbG9vNmJwUVZuYUdaTFVT?=
 =?utf-8?B?dUtiaGdmWTRDZTJsa1VHN0FOK2dYRWdIbkk1dElyVjI5WitQcEMxV0hyZWtt?=
 =?utf-8?B?ckIyajZaU0gvSXh3S2doN2ZhaTd3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/9T6LI4vVB1Ae6sRy32++Rd1RSIkx6c7TndmsCRrFHQoJGTdWuKvCYUy4XMALY2VybZ8Is+dvjxKTreRJ3VswY//3rGVcMYJQqegrgMnKwkI8vpu5zSj3VULCxA5ht3F+SBbaPIbrmpmnycjJV97F2IWDh6gnTKAI3AqBNYvc0h+oN66GuDfYrwiizQyDUY3FuwtZnbeUvwVZJhrCQ8wj2wke/NzS9Wu8KthBNAr8yIDjBefRwYj1N8CUme8c9Oavbwvf1E3MJ639GPijfHJZvOoKrKqunsKlrFNeXgic7vDkCgj2oZ87bDrTuG+2FqVmsPH5gzu7FTEMoC1ebU8ppAu57KnmvABSrrhna8ROFH1a9qQxxPnPLC2hvfnNyp/roT4smpD5MXfu14XOT02OatyW4631hV7xC380FnK5unAk645Ibe9p/qVDPXtYQUn
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2026 23:04:31.5712
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d8b565c-9b2a-4fa3-2973-08de6f42135a
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066EA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5645

On 2026-02-18 14:08, Daniel P. Smith wrote:
> When using XSM Flask, passing DOMID_INVALID will result in a NULL pointer
> reference from the passing of NULL as the target domain to
> xsm_get_domain_state(). Simply not invoking xsm_get_domain_state() when the
> target domain is NULL opens the opportunity to circumvent the XSM
> get_domain_state access check. This is due to the fact that the call to
> xsm_domctl() for get_domain_state op is a no-op check, deferring to
> xsm_get_domain_state().
> 
> Modify the helper get_domain_state() to ensure the requesting domain has
> get_domain_state access for the target domain, whether the target domain is
> explicitly set or implicitly determined with a domain state search. In the case
> of access not being allowed for a domain found during an implicit search, the
> search will continue to the next domain whose state has changed.
> 
> Fixes: 3ad3df1bd0aa ("xen: add new domctl get_domain_state")
> Reported-by: Chris Rogers <rogersc@ainfosec.com>
> Reported-by: Dmytro Firsov <dmytro_firsov@epam.com>
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> ---
> Changes in v2:
> - fix commit message
> - init dom as -1
> - rework loop logic to use test_and_clear_bit()
> ---
>   xen/common/domain.c | 27 +++++++++++++++++++++------
>   xen/common/domctl.c |  7 ++-----
>   2 files changed, 23 insertions(+), 11 deletions(-)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index de6fdf59236e..2ffec331a8d1 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>   int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>                        domid_t *domid)
>   {
> -    unsigned int dom;
> +    unsigned int dom = -1;
>       int rc = -ENOENT;
>       struct domain *hdl;
>   
> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>   
>       if ( d )
>       {
> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
> +        if ( rc )
> +            return rc;
> +
>           set_domain_state_info(info, d);
>   
>           return 0;
> @@ -238,28 +242,39 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,

Between the two hunks is this:

     hdl = lock_dom_exc_handler();

     /*
      * Only domain registered for VIRQ_DOM_EXC event is allowed to query
      * domains having changed state.
      */
     if ( current->domain != hdl )
     {
         rc = -EACCES;
         goto out;
     }

So it is only the domain with VIRQ_DOM_EXC that can enter the while loop:

>   
>       while ( dom_state_changed )
>       {
> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
>           if ( dom >= DOMID_FIRST_RESERVED )
>               break;
> +
> +        d = rcu_lock_domain_by_id(dom);
> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )

... if the VIRQ_DOM_EXC owner is denied for domain d ...

> +        {
> +            rcu_unlock_domain(d);
> +            d = NULL;
> +            continue;

... the caller would continue ...

> +        }
> +
>           if ( test_and_clear_bit(dom, dom_state_changed) )

... and this bit would never be cleared.  Should the VIRQ_DOM_EXC owner 
always get to clear the bit even if it cannot see the result?  Is this 
too much of a corner case to care about?

The patch generally seems okay aside from this.

>           {
>               *domid = dom;
>   
> -            d = rcu_lock_domain_by_id(dom);
> -
>               if ( d )
>               {
>                   set_domain_state_info(info, d);
> -
>                   rcu_unlock_domain(d);
>               }
>               else
>                   memset(info, 0, sizeof(*info));
>   
>               rc = 0;
> -
>               break;
>           }
> +
> +        if ( d )
> +        {
> +            rcu_unlock_domain(d);
> +            d = NULL;
> +        }
>       }
>   
>    out:
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index 29a7726d32d0..2eedc639c72a 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -860,12 +860,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>           break;
>   
>       case XEN_DOMCTL_get_domain_state:
> -        ret = xsm_get_domain_state(XSM_XS_PRIV, d);

With the initial NULL deref issue, I wondered if this wouldn't be better 
off modified to drop the d param - xsm_get_domain_state(XSM_XS_PRIV) - 
and changing flask permissions like:
allow dom0_t xen_t:xen get_domain_state;

That would gate the external call, and individual domain permissions 
could be checked with xsm_getdomaininfo(), or a new hook if you don't 
want to re-use.

But as your approach avoids passing NULL, it seems okay to me.  It also 
doesn't change the flask policy, which is nice.

Thanks,
Jason

> -        if ( ret )
> -            break;
> -
> -        copyback = 1;
>           ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
> +        if ( !ret )
> +            copyback = 1;
>           break;
>   
>       default:



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 00:26:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 00:26:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236037.1538830 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsrs5-0005vc-Ks; Thu, 19 Feb 2026 00:26:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236037.1538830; Thu, 19 Feb 2026 00: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 1vsrs5-0005vV-IA; Thu, 19 Feb 2026 00:26:21 +0000
Received: by outflank-mailman (input) for mailman id 1236037;
 Thu, 19 Feb 2026 00:26: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=SDIf=AX=kernel.org=kuba@srs-se1.protection.inumbo.net>)
 id 1vsrs4-0005vN-2O
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 00:26:20 +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 9adfe53b-0d29-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 01:26:17 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 07B4440AC8;
 Thu, 19 Feb 2026 00:26:16 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 34496C116D0;
 Thu, 19 Feb 2026 00:26: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: 9adfe53b-0d29-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771460775;
	bh=Y1VUzMYKJDjgFUQ3wVOPgQU63jZVKJBlr6oc8WI+E5c=;
	h=Date:From:To:Cc:Subject:In-Reply-To:References:From;
	b=V40kfbcmMkKV1sqVv9HEUtEVV/FOX6e4CXhZJ1pnPZw+dcTMhwNHsEZPDIIswzL/2
	 43fu6Wm9IFRykRmGcLhuJU4k/jOTF3Ea+5q4J2Pemio96wc815odedUnHe8fSgokFh
	 zMXe0CfrSh2zqxca5ezs+T2xSu3fDUOn8A7r7NCRG6sQiHokeh0cNNvK+NXL1fQ331
	 0Hc460EnKsc6gHOpRzLVw+lSifseCwd9IaveMqxqys1FNj/1Hg8Xk/fTWYWXA0dtw/
	 10kmlItuN4VW8IP6fvvuWVJ69Jc36mhP1PsUKWOm76TurBqEyx3v1o7Ov4qSY2BS7K
	 +rAL5/pwi5c5A==
Date: Wed, 18 Feb 2026 16:26:14 -0800
From: Jakub Kicinski <kuba@kernel.org>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
 linux-pci@vger.kernel.org, linux-scsi@vger.kernel.org, Stefano Stabellini
 <sstabellini@kernel.org>, Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>, Andrew Lunn <andrew+netdev@lunn.ch>,
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet
 <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>, Bjorn Helgaas
 <bhelgaas@google.com>, "James E.J. Bottomley"
 <James.Bottomley@HansenPartnership.com>, "Martin K. Petersen"
 <martin.petersen@oracle.com>, xen-devel@lists.xenproject.org, Marek
 =?UTF-8?B?TWFyY3p5a293c2tpLUfDs3JlY2tp?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v2 1/2] xenbus: add xenbus_device parameter to
 xenbus_read_driver_state()
Message-ID: <20260218162614.09b8c41b@kernel.org>
In-Reply-To: <20260218095205.453657-2-jgross@suse.com>
References: <20260218095205.453657-1-jgross@suse.com>
	<20260218095205.453657-2-jgross@suse.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Wed, 18 Feb 2026 10:52:04 +0100 Juergen Gross wrote:
>  drivers/net/xen-netfront.c                 | 34 +++++++++++-----------

Acked-by: Jakub Kicinski <kuba@kernel.org>
-- 
pw-bot: nap


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 06:27:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 06:27:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236057.1538842 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsxUy-00068p-8S; Thu, 19 Feb 2026 06:26:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236057.1538842; Thu, 19 Feb 2026 06:26:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsxUy-00068i-47; Thu, 19 Feb 2026 06:26:52 +0000
Received: by outflank-mailman (input) for mailman id 1236057;
 Thu, 19 Feb 2026 06:26: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsxUw-00068c-7b
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 06:26:50 +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 f81fd2b3-0d5b-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 07:26:48 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-435f177a8f7so524756f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 22:26:48 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a43:c9a6:464e:db69:c159?
 (p200300cab70c6a43c9a6464edb69c159.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a43:c9a6:464e:db69:c159])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abd793sm45774991f8f.25.2026.02.18.22.26.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 22:26:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f81fd2b3-0d5b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771482408; x=1772087208; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=m+j4oVGjPrG5B3vHzrt7TeQ7UaIRaDHN2pIsHha+I0k=;
        b=R38Siy0pKkCMLnrtDcEA/aw2RduA3wu9ZQxz6zcNsUk+U+t+KC4P9vQGfG2J5xvtib
         DjIebcDGMDXKra02wM7AGx+vUNDMvur9gR5SJxdujNZhHi8+Ms7PX3zdGPuI4I0guLPO
         0K6+IdJQvqWKMQcH2MYk8pdQVJwYL16umScgoLV4S7TFRICKwlYIaXRj0n/kRo6HOZzg
         TnWr4lRwEmkndr/R7r9fGg4MPGzd77qsdGELpoFNEZy63DrRKzTMRqr/Bu1Xm7d2FHvE
         raJvqSSV4ZBWNGIIDB738au7KOm5K5mL85QpUykCAu/DWy9e24PQDDRLkWDl6QUmpjhX
         NY2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771482408; x=1772087208;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=m+j4oVGjPrG5B3vHzrt7TeQ7UaIRaDHN2pIsHha+I0k=;
        b=aVGUDEt6PZczEDUTPfEAMQKHGUrpAPIw12Vc1XJDE2QfKuGsD70pjiaSkJOL9CxsZX
         Ab3UHAYS0UHTpGnDSr7otT8JzIJxHzwud384KyRaFWIyDiiO8rHkzqLFO6oycm/jwQT1
         hovKz2gWQBnx3JwT1Tn1HHJ+phObR65Mn/J+YQ7BWvgXUH2x3BUItlTjAaKPaZyPWAXR
         S1TWkpgVczMGMjGxPMohULJz/tqcVjt31pz/MmY5ErggaHTaPGTvew+BMUjXSjcAQGqZ
         nKjJFCtkY9igzk8oblAfy+6Gcn7n1l/abwGYnj+TfLHme9SSePpIqPuOLGhI/6gxzvgX
         /XDQ==
X-Forwarded-Encrypted: i=1; AJvYcCWAMcnU+dvMi3Z1Hkknr/HXA7MwJJNJB3wcrcHRCg9lZolKfHCx77fJXkBAVGZxaBOXmBqgpAKN6uM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwCYFwH0y8PArNzLiHXD+ZVEZE4CRAiPv8Zvv50lbnGHngTnF0S
	LlRHa6wE4bbWFZ0swOX36xi0o7yOIYCiInTlGvaUnOvxkMEp71Tg4H378BwmcvN6lA==
X-Gm-Gg: AZuq6aJiMIVDYf483vWPdnng2cSwBS+XAqVM/TU0bOrxA2y7S1j9AukqHVJu6Sz5I+i
	DmOt3a6fAVyw6fwBVwsW7jYP2oBFRc+p8gxdPbelmGYf9rDd7R/TOlFg5pbJNP5QaJsohye6w3+
	egUInpMY/itbyO1uYWWOPMsvMDB9CbiMB9YV7qCnrRC7WZRi2Xo1Bo13G5oTBUp8RHE6N3D+3HB
	Bu9+fmceA8CR5G6cgGMva8HlKdwNrA+vHVgUJqrAhNv5QfBoPw1jvyMndkOXcSe8KDOsWxZMNWu
	2j3Cf7/gYtp9I2pTiWY9q6+heUl/dnn5PCCtAJM//X9UI8c2EZy+MfOk8n8wfwc6Zs8zbAzKsss
	IxBJy2T6LUffRpJ2n/K1j5Fq/M1oIodNRRbjyGe+VqfocbuCK2prr27wlyqYVrB3Qxa/nS8jGik
	rlrpOTbGQMOnEYb1FdRCE4T+p0dtkunyK4JnU4AR+mqIw21KbtojMy922bcoQHlOkjnZK1GfzEv
	d4kYvfzG1YMnmBVZFNbprQKhJVnfNQdelkPIxOC4CrsXz+m2mSSo/4tYyRjux67lelC6WU=
X-Received: by 2002:a5d:5d85:0:b0:430:ff0c:35f9 with SMTP id ffacd0b85a97d-4379dba3125mr31706377f8f.48.1771482407773;
        Wed, 18 Feb 2026 22:26:47 -0800 (PST)
Message-ID: <d95da240-2e4d-489d-9107-8269b3301b93@suse.com>
Date: Thu, 19 Feb 2026 07:26:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/5] vPCI: introduce private header
To: Stewart Hildebrand <stewart.hildebrand@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>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <4fda7acb-e1a4-4a24-982e-4cae90048018@suse.com>
 <997450bd-3c01-47d9-a0db-21b58fdbc8c6@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: <997450bd-3c01-47d9-a0db-21b58fdbc8c6@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.02.2026 22:58, Stewart Hildebrand wrote:
> On 2/10/26 05:53, Jan Beulich wrote:
>> --- a/xen/include/xen/vpci.h
>> +++ b/xen/include/xen/vpci.h
>> @@ -30,20 +19,6 @@ typedef struct {
>>   */
>>  #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
>>  
>> -#define REGISTER_VPCI_CAPABILITY(cap, name, finit, fclean, ext) \
>> -    static const vpci_capability_t name##_entry \
>> -        __used_section(".data.rel.ro.vpci") = { \
>> -        .id = (cap), \
>> -        .init = (finit), \
>> -        .cleanup = (fclean), \
>> -        .is_ext = (ext), \
>> -    }
>> -
>> -#define REGISTER_VPCI_CAP(name, finit, fclean) \
>> -    REGISTER_VPCI_CAPABILITY(PCI_CAP_ID_##name, name, finit, fclean, false)
>> -#define REGISTER_VPCI_EXTCAP(name, finit, fclean) \
>> -    REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
>> -
>>  int __must_check vpci_init_header(struct pci_dev *pdev);
> Nit: I suppose vpci_init_header() could also move to the new private header file

Hmm, yes, will do. I wonder why I didn't, as I went by being pretty aggressive
in moving, to then move back what needs exposing to the outside.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 06:28:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 06:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236063.1538850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsxWv-0006hM-Hb; Thu, 19 Feb 2026 06:28:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236063.1538850; Thu, 19 Feb 2026 06: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 1vsxWv-0006hF-F4; Thu, 19 Feb 2026 06:28:53 +0000
Received: by outflank-mailman (input) for mailman id 1236063;
 Thu, 19 Feb 2026 06: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=Zdoi=AX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vsxWu-0006h8-6E
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 06:28:52 +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 407edd8d-0d5c-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 07:28:49 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b8fd976e90cso90070466b.0
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 22:28:49 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8fc768ffc0sm543441666b.56.2026.02.18.22.28.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 22:28:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 407edd8d-0d5c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771482529; x=1772087329; 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=xHkR2DNL8rqaZKFVAj81J2UIJJCt3Q5LF4NuA/QdKH0=;
        b=MPmWw0ckBKrMm8bOA1zx+kg0yfbpryEZCYOA1NGVZ7S0Onit5HF7WX4AKS5o4RgRzY
         cKCPwurJ+7S8836pRzLjHJqnB4qD9w/ezJFiPeEVXpxS8vkMEgxHPmEDguzDVtzyngJn
         KeNqinY85b+IUHe/FBRj3PAMHPGa7+6YENe7Kqm/arkBY273HTpjYhfU9FIYDSvLLhn8
         hDmoKWm1lTjIk7KRUMJBwrYKKDxVS3BkbKYfgb+9l/rQ+MZmLhi0tvMdU6hlrATbzZqN
         GDhBAUjTQuZ8Z8NDN85xuSpd+MWb6hUN7QhJsh//msNVNvjEr/9/VSELRlh1s9zri2SB
         +d6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771482529; x=1772087329;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=xHkR2DNL8rqaZKFVAj81J2UIJJCt3Q5LF4NuA/QdKH0=;
        b=OW+erK/kEjO9/zAasODqd7io4XQQ4rAVChOQr0d9lwrtZmVTpmCZRJInSItChFS+px
         1uKdpaRQvi4Ragnuf4Mrn6IKFAq94bGL1+tPG7r3cVGG4izdwQ5hpL5PCoa0BGXhXS5i
         XnKzhP56qhOXF985IcJd0zNkwQWC3ZKhpNh/lK7hCe4WqNT4czJmi+M2yPg/0dLhEgqo
         yZJM/7xZjWyBLLTykNuvBJN/TYWxtzf2f+wG8bo+Ctkws7DlSGz8BG54mat7k6JYHAZJ
         M4+0ATXu8WTO4BFoyxQ0vjHZlxlB1pOydscLF4DDnWxbfC+EUj1o2wx20isPR7NgOGX0
         TLhA==
X-Forwarded-Encrypted: i=1; AJvYcCVL1IX05Es0M4fRwBKBRieOnMHo5QRwtf9Lik+Wy4/iO2fg9Kx1iUfO2+9LzuvSDgZxJoKrL0b1d9c=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwK36mo6c8WSGdTg6DedQ1wb91bKBL8Y2RIZW1l15LNJUT6tKp+
	qqpsW1SmCXgx2Vxg+gQMQCClfwEb+gPUpd1cSzUEe3ngmtCB30m9VmpkIPeNDg2BLzU=
X-Gm-Gg: AZuq6aLimuMxseqilYAg0Jopyq9y9WrFQwBMmi1BGol0WByZL/yo2bawkRCDM5mCThH
	OUsyqeBmodjl4PEiffK7dyZxwbYFuwhd9ZZktFEMQh2H9hhISie+FFHTm+FRF8qEjmJnVz13E+A
	8BGtB1jAKZInHBXT6UwWHHHNmUOHb70bUo/TXdYD+doytKBZGxrs5rrT9fw8aiyACcukipfw9m5
	4/H4K3i3eYHcgzaLzMaiR5aG5n/IfkSPXesD2qh21rUB3YXP4CqXmPTRjP7wmFkeCm3xKqcuCKk
	yEnE5YBKaEidV5378p0dUsSAAdhtJ9NciZDMp9WedK8h3DYRU1EiYUQtwxVm4+IX+S9D3Gh+lqf
	K6YDKhFWzWBn63bVep1S2ZO0nCnrOxPxhwRApCCMzZSOWOHdkBSW1kKW0bLg8dKpFyAwSTQruNt
	NliwVQF1gBfDOFJyJ3+HUfimwx0J6mN6+YIe1o2b1fMFmZtriefffcHVFQuSPBAl6lu4kf065W6
	PuW8XOc22F+cSARc0h8VQS9jwTKTBhVSP6vH2hwjRmZs6Enhv88g5x6x/jy
X-Received: by 2002:a17:907:9808:b0:b90:48b:b53c with SMTP id a640c23a62f3a-b90048bb667mr697243266b.32.1771482528828;
        Wed, 18 Feb 2026 22:28:48 -0800 (PST)
Message-ID: <bae9c067-b5f0-4904-8eab-957ff793e140@suse.com>
Date: Thu, 19 Feb 2026 07:28:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 00/16] x86/msr: Inline rdmsr/wrmsr instructions
To: "H. Peter Anvin" <hpa@zytor.com>, linux-kernel@vger.kernel.org,
 x86@kernel.org, linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 llvm@lists.linux.dev
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 Kiryl Shutsemau <kas@kernel.org>, Rick Edgecombe
 <rick.p.edgecombe@intel.com>, Sean Christopherson <seanjc@google.com>,
 Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Andy Lutomirski <luto@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, Xin Li <xin@zytor.com>,
 Nathan Chancellor <nathan@kernel.org>,
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>,
 Josh Poimboeuf <jpoimboe@kernel.org>, andy.cooper@citrix.com
References: <20260218082133.400602-1-jgross@suse.com>
 <3D1FE2A7-F237-4232-9E39-6AFC75F3A4F0@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: <3D1FE2A7-F237-4232-9E39-6AFC75F3A4F0@zytor.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------iM0WWoZER14TV00iL3mHiqfS"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------iM0WWoZER14TV00iL3mHiqfS
Content-Type: multipart/mixed; boundary="------------IF9DvLhbTUfw0F0uwtC2r0ls";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: "H. Peter Anvin" <hpa@zytor.com>, linux-kernel@vger.kernel.org,
 x86@kernel.org, linux-coco@lists.linux.dev, kvm@vger.kernel.org,
 linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 llvm@lists.linux.dev
Cc: Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 Kiryl Shutsemau <kas@kernel.org>, Rick Edgecombe
 <rick.p.edgecombe@intel.com>, Sean Christopherson <seanjc@google.com>,
 Paolo Bonzini <pbonzini@redhat.com>, "K. Y. Srinivasan" <kys@microsoft.com>,
 Haiyang Zhang <haiyangz@microsoft.com>, Wei Liu <wei.liu@kernel.org>,
 Dexuan Cui <decui@microsoft.com>, Long Li <longli@microsoft.com>,
 Vitaly Kuznetsov <vkuznets@redhat.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 xen-devel@lists.xenproject.org, Ajay Kaher <ajay.kaher@broadcom.com>,
 Alexey Makhalov <alexey.makhalov@broadcom.com>,
 Broadcom internal kernel review list
 <bcm-kernel-feedback-list@broadcom.com>, Andy Lutomirski <luto@kernel.org>,
 Peter Zijlstra <peterz@infradead.org>, Xin Li <xin@zytor.com>,
 Nathan Chancellor <nathan@kernel.org>,
 Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
 Bill Wendling <morbo@google.com>, Justin Stitt <justinstitt@google.com>,
 Josh Poimboeuf <jpoimboe@kernel.org>, andy.cooper@citrix.com
Message-ID: <bae9c067-b5f0-4904-8eab-957ff793e140@suse.com>
Subject: Re: [PATCH v3 00/16] x86/msr: Inline rdmsr/wrmsr instructions
References: <20260218082133.400602-1-jgross@suse.com>
 <3D1FE2A7-F237-4232-9E39-6AFC75F3A4F0@zytor.com>
In-Reply-To: <3D1FE2A7-F237-4232-9E39-6AFC75F3A4F0@zytor.com>

--------------IF9DvLhbTUfw0F0uwtC2r0ls
Content-Type: multipart/mixed; boundary="------------L0CZrd40rvK39oWo3hvXsB63"

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

T24gMTguMDIuMjYgMjE6MzcsIEguIFBldGVyIEFudmluIHdyb3RlOg0KPiBPbiBGZWJydWFy
eSAxOCwgMjAyNiAxMjoyMToxNyBBTSBQU1QsIEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNl
LmNvbT4gd3JvdGU6DQo+PiBXaGVuIGJ1aWxkaW5nIGEga2VybmVsIHdpdGggQ09ORklHX1BB
UkFWSVJUX1hYTCB0aGUgcGFyYXZpcnQNCj4+IGluZnJhc3RydWN0dXJlIHdpbGwgYWx3YXlz
IHVzZSBmdW5jdGlvbnMgZm9yIHJlYWRpbmcgb3Igd3JpdGluZyBNU1JzLA0KPj4gZXZlbiB3
aGVuIHJ1bm5pbmcgb24gYmFyZSBtZXRhbC4NCj4+DQo+PiBTd2l0Y2ggdG8gaW5saW5lIFJE
TVNSL1dSTVNSIGluc3RydWN0aW9ucyBpbiB0aGlzIGNhc2UsIHJlZHVjaW5nIHRoZQ0KPj4g
cGFyYXZpcnQgb3ZlcmhlYWQuDQo+Pg0KPj4gVGhlIGZpcnN0IHBhdGNoIGlzIGEgcHJlcmVx
dWlzaXRlIGZpeCBmb3IgYWx0ZXJuYXRpdmUgcGF0Y2hpbmcuIEl0cw0KPj4gaXMgbmVlZGVk
IGR1ZSB0byB0aGUgaW5pdGlhbCBpbmRpcmVjdCBjYWxsIG5lZWRzIHRvIGJlIHBhZGRlZCB3
aXRoDQo+PiBOT1BzIGluIHNvbWUgY2FzZXMgd2l0aCB0aGUgZm9sbG93aW5nIHBhdGNoZXMu
DQo+Pg0KPj4gSW4gb3JkZXIgdG8gbWFrZSB0aGlzIGxlc3MgaW50cnVzaXZlLCBzb21lIGZ1
cnRoZXIgcmVvcmdhbml6YXRpb24gb2YNCj4+IHRoZSBNU1IgYWNjZXNzIGhlbHBlcnMgaXMg
ZG9uZSBpbiB0aGUgcGF0Y2hlcyAxLTYuDQo+Pg0KPj4gVGhlIG5leHQgNCBwYXRjaGVzIGFy
ZSBjb252ZXJ0aW5nIHRoZSBub24tcGFyYXZpcnQgY2FzZSB0byB1c2UgZGlyZWN0DQo+PiBp
bmxpbmluZyBvZiB0aGUgTVNSIGFjY2VzcyBpbnN0cnVjdGlvbnMsIGluY2x1ZGluZyB0aGUg
V1JNU1JOUw0KPj4gaW5zdHJ1Y3Rpb24gYW5kIHRoZSBpbW1lZGlhdGUgdmFyaWFudHMgb2Yg
UkRNU1IgYW5kIFdSTVNSIGlmIHBvc3NpYmxlLg0KPj4NCj4+IFBhdGNoZXMgMTEtMTMgYXJl
IHNvbWUgZnVydGhlciBwcmVwYXJhdGlvbnMgZm9yIG1ha2luZyB0aGUgcmVhbCBzd2l0Y2gN
Cj4+IHRvIGRpcmVjdGx5IHBhdGNoIGluIHRoZSBuYXRpdmUgTVNSIGluc3RydWN0aW9ucyBl
YXNpZXIuDQo+Pg0KPj4gUGF0Y2ggMTQgaXMgc3dpdGNoaW5nIHRoZSBwYXJhdmlydCBNU1Ig
ZnVuY3Rpb24gaW50ZXJmYWNlIGZyb20gbm9ybWFsDQo+PiBjYWxsIEFCSSB0byBvbmUgbW9y
ZSBzaW1pbGFyIHRvIHRoZSBuYXRpdmUgTVNSIGluc3RydWN0aW9ucy4NCj4+DQo+PiBQYXRj
aCAxNSBpcyBhIGxpdHRsZSBjbGVhbnVwIHBhdGNoLg0KPj4NCj4+IFBhdGNoIDE2IGlzIHRo
ZSBmaW5hbCBzdGVwIGZvciBwYXRjaGluZyBpbiB0aGUgbmF0aXZlIE1TUiBpbnN0cnVjdGlv
bnMNCj4+IHdoZW4gbm90IHJ1bm5pbmcgYXMgYSBYZW4gUFYgZ3Vlc3QuDQo+Pg0KPj4gVGhp
cyBzZXJpZXMgaGFzIGJlZW4gdGVzdGVkIHRvIHdvcmsgd2l0aCBYZW4gUFYgYW5kIG9uIGJh
cmUgbWV0YWwuDQo+Pg0KPj4gTm90ZSB0aGF0IHRoZXJlIGlzIG1vcmUgcm9vbSBmb3IgaW1w
cm92ZW1lbnQuIFRoaXMgc2VyaWVzIGlzIHNlbnQgb3V0DQo+PiB0byBnZXQgYSBmaXJzdCBp
bXByZXNzaW9uIGhvdyB0aGUgY29kZSB3aWxsIGJhc2ljYWxseSBsb29rIGxpa2UuDQo+IA0K
PiBEb2VzIHRoYXQgbWVhbiB5b3UgYXJlIGNvbnNpZGVyaW5nIHRoaXMgcGF0Y2hzZXQgYW4g
UkZDPyBJZiBzbywgeW91IHNob3VsZCBwdXQgdGhhdCBpbiB0aGUgc3ViamVjdCBoZWFkZXIu
DQoNCkl0IGlzIG9uZSBwb3NzaWJsZSBzb2x1dGlvbi4NCg0KPiANCj4+IFJpZ2h0IG5vdyB0
aGUgc2FtZSBwcm9ibGVtIGlzIHNvbHZlZCBkaWZmZXJlbnRseSBmb3IgdGhlIHBhcmF2aXJ0
IGFuZA0KPj4gdGhlIG5vbi1wYXJhdmlydCBjYXNlcy4gSW4gY2FzZSB0aGlzIGlzIG5vdCBk
ZXNpcmVkLCB0aGVyZSBhcmUgdHdvDQo+PiBwb3NzaWJpbGl0aWVzIHRvIG1lcmdlIHRoZSB0
d28gaW1wbGVtZW50YXRpb25zLiBCb3RoIHNvbHV0aW9ucyBoYXZlDQo+PiB0aGUgY29tbW9u
IGlkZWEgdG8gaGF2ZSByYXRoZXIgc2ltaWxhciBjb2RlIGZvciBwYXJhdmlydCBhbmQNCj4+
IG5vbi1wYXJhdmlydCB2YXJpYW50cywgYnV0IGp1c3QgdXNlIGEgZGlmZmVyZW50IG1haW4g
bWFjcm8gZm9yDQo+PiBnZW5lcmF0aW5nIHRoZSByZXNwZWN0aXZlIGNvZGUuIEZvciBtYWtp
bmcgdGhlIGNvZGUgb2YgYm90aCBwb3NzaWJsZQ0KPj4gc2NlbmFyaW9zIG1vcmUgc2ltaWxh
ciwgdGhlIGZvbGxvd2luZyB2YXJpYW50cyBhcmUgcG9zc2libGU6DQo+Pg0KPj4gMS4gUmVt
b3ZlIHRoZSBtaWNyby1vcHRpbWl6YXRpb25zIG9mIHRoZSBub24tcGFyYXZpcnQgY2FzZSwg
bWFraW5nDQo+PiAgICBpdCBzaW1pbGFyIHRvIHRoZSBwYXJhdmlydCBjb2RlIGluIG15IHNl
cmllcy4gVGhpcyBoYXMgdGhlDQo+PiAgICBhZHZhbnRhZ2Ugb2YgYmVpbmcgbW9yZSBzaW1w
bGUsIGJ1dCBtaWdodCBoYXZlIGEgdmVyeSBzbWFsbA0KPj4gICAgbmVnYXRpdmUgcGVyZm9y
bWFuY2UgaW1wYWN0IChwcm9iYWJseSBub3QgcmVhbGx5IGRldGVjdGFibGUpLg0KPj4NCj4+
IDIuIEFkZCB0aGUgc2FtZSBtaWNyby1vcHRpbWl6YXRpb25zIHRvIHRoZSBwYXJhdmlydCBj
YXNlLCByZXF1aXJpbmcNCj4+ICAgIHRvIGVuaGFuY2UgcGFyYXZpcnQgcGF0Y2hpbmcgdG8g
c3VwcG9ydCBhIHRvIGJlIHBhdGNoZWQgaW5kaXJlY3QNCj4+ICAgIGNhbGwgaW4gdGhlIG1p
ZGRsZSBvZiB0aGUgaW5pdGlhbCBjb2RlIHNuaXBwbGV0Lg0KPj4NCj4+IEluIGJvdGggY2Fz
ZXMgdGhlIG5hdGl2ZSBNU1IgZnVuY3Rpb24gdmFyaWFudHMgd291bGQgbm8gbG9uZ2VyIGJl
DQo+PiB1c2FibGUgaW4gdGhlIHBhcmF2aXJ0IGNhc2UsIGJ1dCB0aGlzIHdvdWxkIG1vc3Rs
eSBhZmZlY3QgWGVuLCBhcyBpdA0KPj4gd291bGQgbmVlZCB0byBvcGVuIGNvZGUgdGhlIFdS
TVNSL1JETVNSIGluc3RydWN0aW9ucyB0byBiZSB1c2VkDQo+PiBpbnN0ZWFkIHRoZSBuYXRp
dmVfKm1zciooKSBmdW5jdGlvbnMuDQo+Pg0KPj4gQ2hhbmdlcyBzaW5jZSBWMjoNCj4+IC0g
c3dpdGNoIGJhY2sgdG8gdGhlIHBhcmF2aXJ0IGFwcHJvYWNoDQo+Pg0KPj4gQ2hhbmdlcyBz
aW5jZSBWMToNCj4+IC0gVXNlIFhpbiBMaSdzIGFwcHJvYWNoIGZvciBpbmxpbmluZw0KPj4g
LSBTZXZlcmFsIG5ldyBwYXRjaGVzDQo+Pg0KPj4gSnVlcmdlbiBHcm9zcyAoMTYpOg0KPj4g
ICB4ODYvYWx0ZXJuYXRpdmU6IFN1cHBvcnQgYWx0X3JlcGxhY2VfY2FsbCgpIHdpdGggaW5z
dHJ1Y3Rpb25zIGFmdGVyDQo+PiAgICAgY2FsbA0KPj4gICBjb2NvL3RkeDogUmVuYW1lIE1T
UiBhY2Nlc3MgaGVscGVycw0KPj4gICB4ODYvc2V2OiBSZXBsYWNlIGNhbGwgb2YgbmF0aXZl
X3dybXNyKCkgd2l0aCBuYXRpdmVfd3Jtc3JxKCkNCj4+ICAgS1ZNOiB4ODY6IFJlbW92ZSB0
aGUgS1ZNIHByaXZhdGUgcmVhZF9tc3IoKSBmdW5jdGlvbg0KPj4gICB4ODYvbXNyOiBNaW5p
bWl6ZSB1c2FnZSBvZiBuYXRpdmVfKigpIG1zciBhY2Nlc3MgZnVuY3Rpb25zDQo+PiAgIHg4
Ni9tc3I6IE1vdmUgTVNSIHRyYWNlIGNhbGxzIG9uZSBmdW5jdGlvbiBsZXZlbCB1cA0KPj4g
ICB4ODYvb3Bjb2RlOiBBZGQgaW1tZWRpYXRlIGZvcm0gTVNSIGluc3RydWN0aW9ucw0KPj4g
ICB4ODYvZXh0YWJsZTogQWRkIHN1cHBvcnQgZm9yIGltbWVkaWF0ZSBmb3JtIE1TUiBpbnN0
cnVjdGlvbnMNCj4+ICAgeDg2L21zcjogVXNlIHRoZSBhbHRlcm5hdGl2ZXMgbWVjaGFuaXNt
IGZvciBXUk1TUg0KPj4gICB4ODYvbXNyOiBVc2UgdGhlIGFsdGVybmF0aXZlcyBtZWNoYW5p
c20gZm9yIFJETVNSDQo+PiAgIHg4Ni9hbHRlcm5hdGl2ZXM6IEFkZCBBTFRFUk5BVElWRV80
KCkNCj4+ICAgeDg2L3BhcmF2aXJ0OiBTcGxpdCBvZmYgTVNSIHJlbGF0ZWQgaG9va3MgaW50
byBuZXcgaGVhZGVyDQo+PiAgIHg4Ni9wYXJhdmlydDogUHJlcGFyZSBzdXBwb3J0IG9mIE1T
UiBpbnN0cnVjdGlvbiBpbnRlcmZhY2VzDQo+PiAgIHg4Ni9wYXJhdmlydDogU3dpdGNoIE1T
UiBhY2Nlc3MgcHZfb3BzIGZ1bmN0aW9ucyB0byBpbnN0cnVjdGlvbg0KPj4gICAgIGludGVy
ZmFjZXMNCj4+ICAgeDg2L21zcjogUmVkdWNlIG51bWJlciBvZiBsb3cgbGV2ZWwgTVNSIGFj
Y2VzcyBoZWxwZXJzDQo+PiAgIHg4Ni9wYXJhdmlydDogVXNlIGFsdGVybmF0aXZlcyBmb3Ig
TVNSIGFjY2VzcyB3aXRoIHBhcmF2aXJ0DQo+Pg0KPj4gYXJjaC94ODYvY29jby9zZXYvaW50
ZXJuYWwuaCAgICAgICAgICAgICAgfCAgIDcgKy0NCj4+IGFyY2gveDg2L2NvY28vdGR4L3Rk
eC5jICAgICAgICAgICAgICAgICAgIHwgICA4ICstDQo+PiBhcmNoL3g4Ni9oeXBlcnYvaXZt
LmMgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KPj4gYXJjaC94ODYvaW5jbHVkZS9h
c20vYWx0ZXJuYXRpdmUuaCAgICAgICAgfCAgIDYgKw0KPj4gYXJjaC94ODYvaW5jbHVkZS9h
c20vZnJlZC5oICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4+IGFyY2gveDg2L2luY2x1ZGUv
YXNtL2t2bV9ob3N0LmggICAgICAgICAgIHwgIDEwIC0NCj4+IGFyY2gveDg2L2luY2x1ZGUv
YXNtL21zci5oICAgICAgICAgICAgICAgIHwgMzQ1ICsrKysrKysrKysrKysrKystLS0tLS0N
Cj4+IGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LW1zci5oICAgICAgIHwgMTQ4ICsr
KysrKysrKysNCj4+IGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmggICAgICAgICAg
IHwgIDY3IC0tLS0tDQo+PiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5o
ICAgICB8ICA1NyArKy0tDQo+PiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9xc3BpbmxvY2tfcGFy
YXZpcnQuaCB8ICAgNCArLQ0KPj4gYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMgICAg
ICAgICAgICAgfCAgIDUgKy0NCj4+IGFyY2gveDg2L2tlcm5lbC9jcHUvbXNoeXBlcnYuYyAg
ICAgICAgICAgIHwgICA3ICstDQo+PiBhcmNoL3g4Ni9rZXJuZWwva3ZtY2xvY2suYyAgICAg
ICAgICAgICAgICB8ICAgMiArLQ0KPj4gYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMgICAg
ICAgICAgICAgICAgfCAgNDIgKystDQo+PiBhcmNoL3g4Ni9rdm0vc3ZtL3N2bS5jICAgICAg
ICAgICAgICAgICAgICB8ICAxNiArLQ0KPj4gYXJjaC94ODYva3ZtL3ZteC90ZHguYyAgICAg
ICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4+IGFyY2gveDg2L2t2bS92bXgvdm14LmMgICAg
ICAgICAgICAgICAgICAgIHwgICA4ICstDQo+PiBhcmNoL3g4Ni9saWIveDg2LW9wY29kZS1t
YXAudHh0ICAgICAgICAgICB8ICAgNSArLQ0KPj4gYXJjaC94ODYvbW0vZXh0YWJsZS5jICAg
ICAgICAgICAgICAgICAgICAgfCAgMzUgKystDQo+PiBhcmNoL3g4Ni94ZW4vZW5saWdodGVu
X3B2LmMgICAgICAgICAgICAgICB8ICA1MiArKystDQo+PiBhcmNoL3g4Ni94ZW4vcG11LmMg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQ0KPj4gdG9vbHMvYXJjaC94ODYvbGli
L3g4Ni1vcGNvZGUtbWFwLnR4dCAgICAgfCAgIDUgKy0NCj4+IHRvb2xzL29ianRvb2wvY2hl
Y2suYyAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4+IDI0IGZpbGVzIGNoYW5nZWQs
IDU3NiBpbnNlcnRpb25zKCspLCAyNjQgZGVsZXRpb25zKC0pDQo+PiBjcmVhdGUgbW9kZSAx
MDA2NDQgYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQtbXNyLmgNCj4+DQo+IA0KPiBD
b3VsZCB5b3UgY2xhcmlmeSAqb24gdGhlIGhpZ2ggZGVzaWduIGxldmVsKiB3aGF0ICJnbyBi
YWNrIHRvIHRoZSBwYXJhdmlydCBhcHByb2FjaCIgbWVhbnMsIGFuZCB0aGUgbW90aXZhdGlv
biBmb3IgdGhhdD8NCg0KVGhpcyBpcyByZWxhdGVkIHRvIFYyIG9mIHRoaXMgc2VyaWVzLCB3
aGVyZSBJIHVzZWQgYSBzdGF0aWMgYnJhbmNoIGZvcg0Kc3BlY2lhbCBjYXNpbmcgWGVuIFBW
Lg0KDQpQZXRlciBaaWpsc3RyYSBjb21tZW50ZWQgb24gdGhhdCBhc2tpbmcgdG8gdHJ5IGhh
cmRlciB1c2luZyB0aGUgcHZfb3BzDQpob29rcyBmb3IgWGVuIFBWLCB0b28uDQoNCj4gTm90
ZSB0aGF0IGZvciBYZW4gKm1vc3QqIE1TUnMgZmFsbCBpbiBvbmUgb2YgdHdvIGNhdGVnb3Jp
ZXM6IHRob3NlIHRoYXQgYXJlIGRyb3BwZWQgZW50aXJlbHkgYW5kIHRob3NlIHRoYXQgYXJl
IGp1c3QgcGFzc2VkIHN0cmFpZ2h0IG9uIHRvIHRoZSBoYXJkd2FyZS4NCj4gDQo+IEkgZG9u
J3Qga25vdyBpZiBhbnlvbmUgY2FyZXMgYWJvdXQgb3B0aW1pemluZyBQViBYZW4gYW55bW9y
ZSwgYnV0IGF0IGxlYXN0IGluIHRoZW9yeSBYZW4gY2FuIHVuLXBhcmF2aXJ0dWFsaXplIG1v
c3Qgc2l0ZXMuDQoNClRoZSBwcm9ibGVtIHdpdGggdGhhdCBpcywgdGhhdCB0aGlzIHdvdWxk
IG5lZWQgdG8gYmUgdGFrZW4gY2FyZSBhdCB0aGUNCmNhbGxlcnMnIHNpdGVzLCAicG9pc29u
aW5nIiBhIGxvdCBvZiBjb2RlIHdpdGggWGVuIHNwZWNpZmljIHBhdGhzLiBPciB3ZSdkDQpu
ZWVkIHRvIHVzZSB0aGUgbmF0aXZlIHZhcmlhbnRzIGV4cGxpY2l0bHkgYXQgYWxsIHBsYWNl
cyB3aGVyZSBYZW4gUFYNCndvdWxkIGp1c3QgdXNlIHRoZSBNU1IgaW5zdHJ1Y3Rpb25zIGl0
c2VsZi4gQnV0IHBsZWFzZSBiZSBhd2FyZSwgdGhhdA0KdGhlcmUgYXJlIHBsYW5zIHRvIGlu
dHJvZHVjZSBhIGh5cGVyY2FsbCBmb3IgWGVuIHRvIHNwZWVkIHVwIE1TUiBhY2Nlc3NlcywN
CndoaWNoIHdvdWxkIHJlZHVjZSB0aGUgInBhc3NlZCB0aHJvdWdoIHRvIGhhcmR3YXJlIiBj
YXNlcyB0byAwLg0KDQoNCkp1ZXJnZW4NCg==
--------------L0CZrd40rvK39oWo3hvXsB63
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-----

--------------L0CZrd40rvK39oWo3hvXsB63--

--------------IF9DvLhbTUfw0F0uwtC2r0ls--

--------------iM0WWoZER14TV00iL3mHiqfS
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/Ey8FAmmWrZ8FAwAAAAAACgkQsN6d1ii/Ey/x
Vgf9GNkMNv8ezbKDeFj0xYtdTYX2S1GrlV6rXyDgpg0M3mQBgVE2yh1rPyeRxG/Xow7fPeYvu6Wn
y/MUTm8BSevH+TFzFX0qZbm+rGfMWRK5DZj2aPhkz80vuJcYKKtsP7sG7M8gQAuIVKh0P7gam8WR
pJslPMIXDntG506kNq81nKET47SGPEmliUdFgY47kZv3Rky/F7Tx3J59kMA2GxYtkwLa+w4Pvn5V
qOo1fuHYjajMFU++hpm2fwPX/2X4mSDKJJEGkRkGtgdeWGMEahC6b4xFO8TCSVvwvl4sHRIDFCi3
aYWk5cPP1n6YQAYY9zjTRr7ywnjTWf06N9g2Kys27g==
=8M17
-----END PGP SIGNATURE-----

--------------iM0WWoZER14TV00iL3mHiqfS--


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 06:29:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 06:29:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236071.1538862 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vsxXg-0007Eq-W2; Thu, 19 Feb 2026 06:29:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236071.1538862; Thu, 19 Feb 2026 06:29: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 1vsxXg-0007Ej-Rt; Thu, 19 Feb 2026 06:29:40 +0000
Received: by outflank-mailman (input) for mailman id 1236071;
 Thu, 19 Feb 2026 06:29: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vsxXf-0007EX-Dq
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 06:29:39 +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 5cdd272d-0d5c-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 07:29:37 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-48374014a77so5709725e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 18 Feb 2026 22:29:37 -0800 (PST)
Received: from ?IPV6:2003:ca:b70c:6a43:c9a6:464e:db69:c159?
 (p200300cab70c6a43c9a6464edb69c159.dip0.t-ipconnect.de.
 [2003:ca:b70c:6a43:c9a6:464e:db69:c159])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483801ff9b3sm351597585e9.13.2026.02.18.22.29.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 18 Feb 2026 22:29:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5cdd272d-0d5c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771482577; x=1772087377; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3sKEaljeyo+hvAceiNgNRSLN9kJbwnsbovIFAa78zsk=;
        b=ORo3d6O9IAUQj45vt2jHyjLo4M4ZwVVp3erzp+dMbVDOb9CI7aFDGXje09Z3T6pc4g
         yQRyDKv4bSN8Tp8i72H3g6y7OynScbd9GqL3brRi9DF8RBeOmVgBVCLwbZME4wxhvCRq
         OlC9J8EerpJPD+6R8ULvLlWUFM8DoPkInglk05Jey9URVGA2qbPH2+vOgJmpjMn3vWdc
         aR+bV2Xq3dkCwbYFVsvx/aLdNOZn/8LWISQ8A2iyIismpIqK2cryAOZAxaYXxtdY7RdE
         g5kx1DQ0BtISLfCxR5QjujUwfKnCrUO2t16r/zUcSd8kPknLu4nA5BvWt4vHIuicmzL8
         BRNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771482577; x=1772087377;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3sKEaljeyo+hvAceiNgNRSLN9kJbwnsbovIFAa78zsk=;
        b=vtHx/5NKaikZkFiJQnPO2A9p4Le0yrQw7sHMvOSO4xjvNBdBgiCHgaiHof3mk+8i6u
         0B9k+1DswmIbDKln6udgtVRVRIhObPadaB1Xnky57OOc9d6CzjqwR5ni08akL/0qWQ0/
         LPAVjGrST1ISZuIKbIkWT7WPq94Wg7wPBZ5M+wwC8StEqBDpxIdPjFsSbVyyRiM4UdSC
         GnGr0QE6Gd0aFI7HTiDIF0A54idIo99P1lNfZDUXmQ8+BmwOJxFsFNOzztlI3T+wV3I8
         tkHz2Bwz2k+M19GCYL9KNxkOsYb/3Aun80Q4JM6zkA72ebZHaIT15ezkEMajEE8rxb61
         QjGQ==
X-Forwarded-Encrypted: i=1; AJvYcCWK8K8m2A6O33zz+YEsh9bkxkHODYmjyD/JtgHrKWQsOn/bhPtB9muyEn0iBQ+5QFt1PpDI0tazzS0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxe3UtFx0DYAw8yI7EziVIXbC4O1IsAPIn8H+cJmVHSvxfvkCB9
	xahqSnB4VMxcF0ln7b8pLCvyPxmgPU2mk4PWlVNXCWCS1DZCHBFK4aOFki0PBZa/7A==
X-Gm-Gg: AZuq6aJkk2kOHMT9u4Sc6EpZQK4+B58UNPezY+F4qfrcQgTGAReqrqGE7pxt1rekgao
	P5SaSSNuuNuUNEjY309yLK082sfosUtrW8NFGlKoqKXuAWy67C97gCe0iSxhUqMIIJpT+tgMyNK
	s78tCNBiEwJ6pm98sTN3dpRbxBkK9bQn4NKU//d54V8S+Bh2uaN0UgIgMCWqsxoekR2bVNcASr7
	5cqKpFbJo3gdILHnKQ4UiaYf7N44droWLljCQYmVJi0zmvvqHDK/BLoIPJiU1yutvxjt0Pl/vzH
	xaopoEvEFXw1krt2pS8w+HRL7YrjmS50KL7vOPYh2K/dT7wLBwl3MLgVcZ5bmvTEMZ+f8F5tIbT
	xbu2Ld88TfpCeUmW9gLKiTh1wl4OGE7brRnofA4fILbQRueJdCHiLrtM1zbb1JAmfAwCgDbjWvS
	8ktNnzEmdh6qyX2lDQgqnV4qSjzHPzkmwfVBm/Ocu5Pa34QtAC6njxr5lI/bWx08n7txEdK4GRn
	fkrIlsB1QnwC1wJieYmIwlTgl7f0Ruv9M0M/1avYjPFbUITKpYPHWXLJD4c
X-Received: by 2002:a05:600c:3552:b0:483:3380:ca0c with SMTP id 5b1f17b1804b1-48373a636d6mr356567435e9.35.1771482576600;
        Wed, 18 Feb 2026 22:29:36 -0800 (PST)
Message-ID: <3a6ad6f9-76d0-4f50-b741-4960a77d2f5c@suse.com>
Date: Thu, 19 Feb 2026 07:29:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>
References: <be3d3793e78b8cfebfdd02361064bf7321b5f2ef.1770999879.git.oleksii.kurochko@gmail.com>
 <a71b3cc7-9ac1-4cec-8898-bda5e8ee644e@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: <a71b3cc7-9ac1-4cec-8898-bda5e8ee644e@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 18.02.2026 17:58, Oleksii Kurochko wrote:
> 
> On 2/13/26 5:29 PM, Oleksii Kurochko wrote:
>> Introduce helpers to manage VS-stage and G-stage translation state during
>> vCPU context switches.
>>
>> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
>> switch-out to prevent speculative VS-stage translations from being associated
>> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
>> required order.
>>
>> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
>> only when required (e.g. on VMID reuse or generation change).
>>
>> This provides the necessary infrastructure for correct p2m context switching
>> on RISC-V.
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in v3:
>>   - Add comment above p2m_ctxt_switch_{to, from}().
>>   - Code style fixes.
>>   - Refactor p2m_ctxt_switch_to().
>>   - Update the comment at the end of p2m_ctxt_switch_from().
>>   - Refactor the code of p2m_handle_vmenter().
>> ---
>> Changes in v2:
>>   - Add vsatp field declaration to arch_vcpu.
>>   - s/p2m_ctx_switch_{from,to}/p2m_ctxt_switch_{from,to}.
>>   - Introduce p2m_handle_vmenter() for proper handling of VMID,
>>     hgatp and vsatp updates.
>>   - Introduce is_p2m_switch_finished and init it inisde
>>     p2m_ctx_switch_to() for furhter handling in p2m_handle_vmenter().
>>   - Code style fixes.
>>   - Add is_idle_vcpu() check in p2m_ctxt_switch_from().
>>   - use csr_swap() in p2m_ctxt_switch_from().
>>   - move flush_tlb_guest_local() to the end if p2m_handle_vmenter() and
>>     drop unnessary anymore comments.
>>   - Correct printk()'s arguments in p2m_handle_vmenter().
>> ---
>>   xen/arch/riscv/include/asm/domain.h |  1 +
>>   xen/arch/riscv/include/asm/p2m.h    |  4 ++
>>   xen/arch/riscv/p2m.c                | 79 +++++++++++++++++++++++++++++
>>   xen/arch/riscv/traps.c              |  2 +
>>   4 files changed, 86 insertions(+)
>>
>> diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
>> index 3da2387cb197..42bb678fcbf9 100644
>> --- a/xen/arch/riscv/include/asm/domain.h
>> +++ b/xen/arch/riscv/include/asm/domain.h
>> @@ -59,6 +59,7 @@ struct arch_vcpu {
>>       register_t hstateen0;
>>       register_t hvip;
>>   +    register_t vsatp;
>>       register_t vsie;
>>         /*
>> diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
>> index f63b5dec99b1..60f27f9b347e 100644
>> --- a/xen/arch/riscv/include/asm/p2m.h
>> +++ b/xen/arch/riscv/include/asm/p2m.h
>> @@ -255,6 +255,10 @@ static inline bool p2m_is_locked(const struct p2m_domain *p2m)
>>   struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>                                           p2m_type_t *t);
>>   +void p2m_ctxt_switch_from(struct vcpu *p);
>> +void p2m_ctxt_switch_to(struct vcpu *n);
>> +void p2m_handle_vmenter(void);
>> +
>>   #endif /* ASM__RISCV__P2M_H */
>>     /*
>> diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
>> index 0abeb374c110..7ae854707174 100644
>> --- a/xen/arch/riscv/p2m.c
>> +++ b/xen/arch/riscv/p2m.c
>> @@ -1434,3 +1434,82 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
>>         return get_page(page, p2m->domain) ? page : NULL;
>>   }
>> +
>> +/* Should be called before other CSRs are stored to avoid speculation */
>> +void p2m_ctxt_switch_from(struct vcpu *p)
>> +{
>> +    if ( is_idle_vcpu(p) )
>> +        return;
>> +
>> +    /*
>> +     * 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 what will be done in
>> +     * p2m_handle_vmenter().
>> +     */
>> +    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
>> +
>> +    /*
>> +     * Nothing to do with HGATP as it will be update in p2m_ctxt_switch_to()
>> +     * or/and in p2m_handle_vmenter().
>> +     */
>> +}
>> +
>> +/* Should be called after other CSRs are restored to avoid speculation */
>> +void p2m_ctxt_switch_to(struct vcpu *n)
>> +{
>> +    struct p2m_domain *p2m = p2m_get_hostp2m(n->domain);
>> +
>> +    if ( is_idle_vcpu(n) )
>> +        return;
>> +
>> +    csr_write(CSR_HGATP, construct_hgatp(p2m, n->arch.vmid.vmid));
>> +    /*
>> +     * As VMID is unique per vCPU and just re-used here thereby there is no
>> +     * need for G-stage TLB flush here.
>> +     */
>> +
>> +    csr_write(CSR_VSATP, n->arch.vsatp);
>> +    /*
>> +     * As at the start of context switch VSATP were set to 0, so no speculation
>> +     * could happen thereby there is no need for VS TLB flush here.
>> +     */
>> +}
> 
> I think we need to flush the VS-stage TLB unconditionally here. It is possible
> that `p->arch.vsatp.ASID == n->arch.vsatp.ASID`, in which case the new vCPU
> could reuse stale VS-stage TLB entries that do not belong to it.
> 
> I considered performing the flush conditionally, but that would require checking
> not only the ASID, but also whether the PPN differs. In addition, we would need
> to verify that the old and new vCPUs do not belong to different domains, since
> the same VSATP PPN value could appear in different domains.
> 
> This starts to look like overcomplication for a marginal optimization, so an
> unconditional VS-stage TLB flush seems simpler and safer.
> 
> Do you think this optimization is worth pursuing at this stage?

Let's start simple and optimize later.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 10:53:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 10:53:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236111.1538871 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt1eO-0005qI-1a; Thu, 19 Feb 2026 10:52:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236111.1538871; Thu, 19 Feb 2026 10:52:52 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt1eN-0005qA-Sv; Thu, 19 Feb 2026 10:52:51 +0000
Received: by outflank-mailman (input) for mailman id 1236111;
 Thu, 19 Feb 2026 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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt1eL-0005q4-Oo
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 10:52:49 +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 1fde8954-0d81-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 11:52:47 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-4359108fd24so484985f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 02:52:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ad015bsm49347844f8f.38.2026.02.19.02.52.44
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 02:52:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fde8954-0d81-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771498366; x=1772103166; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=i9e6pUsOj1TWzM4YsrWtMY3o71wx4EcnQVp9hKtLOXk=;
        b=F+f3i9z9PxGXl4H3/jopOw2bqXMUe9B2ab9O5Prq54ASTG8GaPVh3XsygNwoRdHJ57
         1c3Ff2DOIvsPYK0NEIXC/lx+hkydyTR7fNYM/xoRSGSS5cCJvG1/eeYissiLWHO0g4XA
         5CW0a9IlffmLlywdiIYHtJZ+so5J39Z98BryXCnwPAlwxcvNwyymRmYzIdW14fwVzwgy
         9iUbuw8zl3EaE/TRiYeH70c59Y7NGkmGf6b3Za9cz+l2yuwJW5n2p05aDS4bkkx+qJPA
         B9irTLGQkbakYarleLxCh1BMsfwYdayRcVrDLA8C0BVhgAOrQAYelm7BhUdHRQX9/OTA
         gwDg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771498366; x=1772103166;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=i9e6pUsOj1TWzM4YsrWtMY3o71wx4EcnQVp9hKtLOXk=;
        b=igH6pLFe/1akoFJ6pr2gDEqVLGf7SyR6yr0OjxLLgmXMWNjUumRHi+HZtu+CddFmIV
         0lKWEJMR3yowiGDb/ruH/ZMZU8ZWnvhYS3vFxrv8nLrocCdrp5sbEbSLL4s0s7WgBwXA
         KiEZMg6nDHEm7i94EXp5Kwy/jfqJpczbbVJacQbkBVSWEMcBoq43sttj69eXEishP7ec
         GsKTWaqZd+UMbbIZq8uIgEGh1SCWcLeyDm0UaoPIRMuDy01G02CzAHk6YyR/Uyd4uZGa
         TXXRdd2rHnfVFJ/OAGNWxz6nqO6u/hjaoH6L+sn55+3hVD500XkNEk/wAhn0jzJUq504
         LDCg==
X-Forwarded-Encrypted: i=1; AJvYcCWyQhTXHQPkAvMdefkSWo8W9QTflCLuD/Y7FAN6dUQQMb1mhIlXGYHYDJINsRjYqttkfVjl4vJv9bU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyZX7vLm4vteT7KqEOJXAF1Fnt6B23Z6X8Qw5gKjkQ3iLJFuiW5
	8z8SpqdzswAZiCGrqmEXZKUzkXVvExnFIW3qPjPgHduSxLP4cDc3A7Hor553kZPmbQ==
X-Gm-Gg: AZuq6aIYm49ufDL19WVdek6D3eyL0rqSN6lDIwbBZ6HDe3AA0zy92yHWh6P6RQcuRki
	/Ar+AJKYO3oT6hBp5Qwd/v2s4/+I4yXOPxwGgnm3Ia4AwSyKXIQS23tP2LL6baIqtj3Qx0CLAlb
	MqxXnad2tCn3qZYn6xtmYXk41RdvZ5ZvQYxWh/KLxVBBhFVxsxYDML5xmk5Iz5fAHu3RZR/lGQ/
	BwQQf40GjgkAplgCQT3dBSLms2ZDvZMkPw4QMVEnBIoj5cPxVFYadK5B1cHURVYhInrQMeuo6VX
	ZRWF2aOxtqV0UG0i287hnal4W3GtoXHJow8bfF0hjxb6APWDVcIWkCTrnsIhjs0mZXlbwutIWlf
	DmE0tfnVIjTx3B3L494CZO+TSvIBkEYyN3lWVfhXgp7sAMxEUP7eo03fAuMAaxIl17P5mmY0k7f
	2cOZiRGafAbEScuXuOu4kMAsxgVhf6MBoFN3bJGnV2+pieiZDH3EbirUlQbqsQC+4tnUSIN5vBs
	VqzHNazC5+zflo=
X-Received: by 2002:a05:6000:26cc:b0:435:97b4:b699 with SMTP id ffacd0b85a97d-4395fd5c362mr3813338f8f.51.1771498365640;
        Thu, 19 Feb 2026 02:52:45 -0800 (PST)
Message-ID: <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
Date: Thu, 19 Feb 2026 11:52:43 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@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: <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.02.2026 00:04, Jason Andryuk wrote:
> On 2026-02-18 14:08, Daniel P. Smith wrote:
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>>   int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>                        domid_t *domid)
>>   {
>> -    unsigned int dom;
>> +    unsigned int dom = -1;
>>       int rc = -ENOENT;
>>       struct domain *hdl;
>>   
>> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>   
>>       if ( d )
>>       {
>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>> +        if ( rc )
>> +            return rc;
>> +
>>           set_domain_state_info(info, d);
>>   
>>           return 0;
>> @@ -238,28 +242,39 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
> 
> Between the two hunks is this:
> 
>      hdl = lock_dom_exc_handler();
> 
>      /*
>       * Only domain registered for VIRQ_DOM_EXC event is allowed to query
>       * domains having changed state.
>       */
>      if ( current->domain != hdl )
>      {
>          rc = -EACCES;
>          goto out;
>      }
> 
> So it is only the domain with VIRQ_DOM_EXC that can enter the while loop:
> 
>>   
>>       while ( dom_state_changed )
>>       {
>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
>>           if ( dom >= DOMID_FIRST_RESERVED )
>>               break;
>> +
>> +        d = rcu_lock_domain_by_id(dom);
>> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
> 
> ... if the VIRQ_DOM_EXC owner is denied for domain d ...
> 
>> +        {
>> +            rcu_unlock_domain(d);
>> +            d = NULL;
>> +            continue;
> 
> ... the caller would continue ...
> 
>> +        }
>> +
>>           if ( test_and_clear_bit(dom, dom_state_changed) )
> 
> ... and this bit would never be cleared.  Should the VIRQ_DOM_EXC owner 
> always get to clear the bit even if it cannot see the result?

I don't think so, no. Whenever a legitimate consumer occurs (the owner of
VIRQ_DOM_EXC can change, after all), it'll then consume the bits as needed.
More generally, I think we're better off not making the code here depend
too much on that special VIRQ_DOM_EXC property.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 11:03:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 11:03:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236122.1538882 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt1oP-0007VP-TE; Thu, 19 Feb 2026 11:03:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236122.1538882; Thu, 19 Feb 2026 11: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 1vt1oP-0007VI-PB; Thu, 19 Feb 2026 11:03:13 +0000
Received: by outflank-mailman (input) for mailman id 1236122;
 Thu, 19 Feb 2026 11:03: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=Zdoi=AX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vt1oP-0007VC-0v
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 11:03:13 +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 94b94a99-0d82-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 12:03:11 +0100 (CET)
Received: by mail-ed1-x532.google.com with SMTP id
 4fb4d7f45d1cf-6580dbdb41eso958264a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 03:03:11 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8fc763bacfsm563417766b.36.2026.02.19.03.03.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 03:03:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94b94a99-0d82-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771498991; x=1772103791; 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=6CFVVZ0e+fgUSIGgmwfWBMGl5JxSWh26xJ8QLV3kzqI=;
        b=fnziC0U+D7FNENp4umc6FAAGzlWaodAFodS/WkGhu9YHfYMe//BRk9t8lFw4h14bIY
         rkpOzIxMn7a0497R+yh4dfN8i0YAgkBQYi113QvuG0eXLxemBjuHcdad5qYt7B6KkngS
         tsQMiwe73ZiwvWnueK47NBD0mnBaMCSpzRV416uXeynXzXuQ1CfiN6zW5OmcbMa3ZcH1
         I/BIoeMqUF5And7/Cnylypb7w+lFc8QhJgT/dOQFGjhjf8QvWUSAdlkg+7Hmy6eqoHtz
         n0UIskwlsk+rViy0lwi9Xl79JWgWX0MzeVpMbPLIT3xL/cDx9nGikXV72q2UidAUGE7b
         2lmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771498991; x=1772103791;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=6CFVVZ0e+fgUSIGgmwfWBMGl5JxSWh26xJ8QLV3kzqI=;
        b=vS/OXhsM8TYLkz9LfiewFfWxw7+Hujz7MCaxJjWuvFR07bNz8ny8rLm2OF+5nCI40Q
         OS7qqWxHh7EW9UXuqdS2GEaznCrdpbtFT90D/cnOheldhuu3ozil5+hA0yMqCAQdEuiV
         1bPl35W3ZC1NJEKgc7vK/NgCNREnu4PwxT9XIADV7g1GOqgx6XMC8Pw26ZZTZ/foOrEE
         qRmonhgJQYxplGwCf2/dCm07QfHBEgPFcFalJdklrQLNYAtlaHM8ergryI8xRAHggdDc
         CVj3UPPF0ASbsEKdUxG2TghOWYY2fTYnqqIeAbsqqTtc4Xb2sh5VsXp2vXIX6wPlpaGn
         Y/aQ==
X-Forwarded-Encrypted: i=1; AJvYcCWq7LfPejCROFPMt76VHhX+B0qCt7onYuq7XTZXvOaLF5bSIiuFUSgY6l9xfy76utc8lsEFxcMBYLM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxp9TErgwACzR6zWaEEJ4C8vbxVNwOyw8h5uIOBRlLCDL8j4IOq
	8YGoP/DuQum0E5C2uiBx/JwIKg/4eP+T0Q+gd6b/fWqnLlSt5oOq790JLnfpAhM9qyk=
X-Gm-Gg: AZuq6aLe4QDBopYdDEuy8YiRHgt9Ar/t5XbmHlo+S/I9Xcl1rm7qMcIFeJ7cwSUEpaT
	gp4IjfHQhqgO1IqQwsKQTGigAFkvCifmIEFx83C27MN/dYzb7pBzD1PHsFunkOM4MOQZs50UnjC
	YYPidlDk53EFo6Whsz80ppJRV01rAehBu8hVDPDaQafSmokoMaunkybSBST+1Mpk6jju5fG3dhX
	4yrdU+aL8uy2lCx+hpdmZlCxZnKrwURN8jcpE9NLsx38Xjs1ilrkYkjIlLFEGUgUuCqpydmfZL/
	OI956qdr30RzkrE91X0FUtJuYdwYNJREK1ngPJnqQIwPn6y79R7CsDnCH/FaYJplgigo5Fq+Q8t
	EfADcDDMuLagy/hjcsPsqjFdDK0L01UJYFXjSJVRQQXXJZT91ZxWhXdjvo+xJ9VFgJSdHi/KjsD
	chSqz8KGsbcczvZXe2Fc1uQBlr1Bj16AB2UJohXZYuWwC/Ls8GK55FcRB3H+JBH9HkIqTv7LfPB
	hJFCywQEqx8snU+sWTc389tGHDN3Ky7PfAIZmpJ2Am3+N/WvVLAqZ/k2Gxf
X-Received: by 2002:a17:907:3fa0:b0:b87:c92:25bf with SMTP id a640c23a62f3a-b903dc90367mr360320666b.33.1771498990858;
        Thu, 19 Feb 2026 03:03:10 -0800 (PST)
Message-ID: <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@suse.com>
Date: Thu, 19 Feb 2026 12:03:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@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: <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------fVcjL7tDyLmtviyNFhIpRlCM"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------fVcjL7tDyLmtviyNFhIpRlCM
Content-Type: multipart/mixed; boundary="------------Uqq6ry7BW0mSsmCrqc0Frrvi";
 protected-headers="v1"
From: Juergen Gross <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Jason Andryuk <jason.andryuk@amd.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Message-ID: <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@suse.com>
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
In-Reply-To: <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@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=

--------------Uqq6ry7BW0mSsmCrqc0Frrvi
Content-Type: multipart/mixed; boundary="------------GjJX9a8xbqtz5xTDZxOw5Bma"

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

T24gMTkuMDIuMjYgMTE6NTIsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxOS4wMi4yMDI2
IDAwOjA0LCBKYXNvbiBBbmRyeXVrIHdyb3RlOg0KPj4gT24gMjAyNi0wMi0xOCAxNDowOCwg
RGFuaWVsIFAuIFNtaXRoIHdyb3RlOg0KPj4+IC0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMN
Cj4+PiArKysgYi94ZW4vY29tbW9uL2RvbWFpbi5jDQo+Pj4gQEAgLTIxMCw3ICsyMTAsNyBA
QCBzdGF0aWMgdm9pZCBzZXRfZG9tYWluX3N0YXRlX2luZm8oc3RydWN0IHhlbl9kb21jdGxf
Z2V0X2RvbWFpbl9zdGF0ZSAqaW5mbywNCj4+PiAgICBpbnQgZ2V0X2RvbWFpbl9zdGF0ZShz
dHJ1Y3QgeGVuX2RvbWN0bF9nZXRfZG9tYWluX3N0YXRlICppbmZvLCBzdHJ1Y3QgZG9tYWlu
ICpkLA0KPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgKmRvbWlkKQ0KPj4+
ICAgIHsNCj4+PiAtICAgIHVuc2lnbmVkIGludCBkb207DQo+Pj4gKyAgICB1bnNpZ25lZCBp
bnQgZG9tID0gLTE7DQo+Pj4gICAgICAgIGludCByYyA9IC1FTk9FTlQ7DQo+Pj4gICAgICAg
IHN0cnVjdCBkb21haW4gKmhkbDsNCj4+PiAgICANCj4+PiBAQCAtMjE5LDYgKzIxOSwxMCBA
QCBpbnQgZ2V0X2RvbWFpbl9zdGF0ZShzdHJ1Y3QgeGVuX2RvbWN0bF9nZXRfZG9tYWluX3N0
YXRlICppbmZvLCBzdHJ1Y3QgZG9tYWluICpkLA0KPj4+ICAgIA0KPj4+ICAgICAgICBpZiAo
IGQgKQ0KPj4+ICAgICAgICB7DQo+Pj4gKyAgICAgICAgcmMgPSB4c21fZ2V0X2RvbWFpbl9z
dGF0ZShYU01fWFNfUFJJViwgZCk7DQo+Pj4gKyAgICAgICAgaWYgKCByYyApDQo+Pj4gKyAg
ICAgICAgICAgIHJldHVybiByYzsNCj4+PiArDQo+Pj4gICAgICAgICAgICBzZXRfZG9tYWlu
X3N0YXRlX2luZm8oaW5mbywgZCk7DQo+Pj4gICAgDQo+Pj4gICAgICAgICAgICByZXR1cm4g
MDsNCj4+PiBAQCAtMjM4LDI4ICsyNDIsMzkgQEAgaW50IGdldF9kb21haW5fc3RhdGUoc3Ry
dWN0IHhlbl9kb21jdGxfZ2V0X2RvbWFpbl9zdGF0ZSAqaW5mbywgc3RydWN0IGRvbWFpbiAq
ZCwNCj4+DQo+PiBCZXR3ZWVuIHRoZSB0d28gaHVua3MgaXMgdGhpczoNCj4+DQo+PiAgICAg
ICBoZGwgPSBsb2NrX2RvbV9leGNfaGFuZGxlcigpOw0KPj4NCj4+ICAgICAgIC8qDQo+PiAg
ICAgICAgKiBPbmx5IGRvbWFpbiByZWdpc3RlcmVkIGZvciBWSVJRX0RPTV9FWEMgZXZlbnQg
aXMgYWxsb3dlZCB0byBxdWVyeQ0KPj4gICAgICAgICogZG9tYWlucyBoYXZpbmcgY2hhbmdl
ZCBzdGF0ZS4NCj4+ICAgICAgICAqLw0KPj4gICAgICAgaWYgKCBjdXJyZW50LT5kb21haW4g
IT0gaGRsICkNCj4+ICAgICAgIHsNCj4+ICAgICAgICAgICByYyA9IC1FQUNDRVM7DQo+PiAg
ICAgICAgICAgZ290byBvdXQ7DQo+PiAgICAgICB9DQo+Pg0KPj4gU28gaXQgaXMgb25seSB0
aGUgZG9tYWluIHdpdGggVklSUV9ET01fRVhDIHRoYXQgY2FuIGVudGVyIHRoZSB3aGlsZSBs
b29wOg0KPj4NCj4+PiAgICANCj4+PiAgICAgICAgd2hpbGUgKCBkb21fc3RhdGVfY2hhbmdl
ZCApDQo+Pj4gICAgICAgIHsNCj4+PiAtICAgICAgICBkb20gPSBmaW5kX2ZpcnN0X2JpdChk
b21fc3RhdGVfY2hhbmdlZCwgRE9NSURfTUFTSyArIDEpOw0KPj4+ICsgICAgICAgIGRvbSA9
IGZpbmRfbmV4dF9iaXQoZG9tX3N0YXRlX2NoYW5nZWQsIERPTUlEX01BU0sgKyAxLCBkb20g
KyAxKTsNCj4+PiAgICAgICAgICAgIGlmICggZG9tID49IERPTUlEX0ZJUlNUX1JFU0VSVkVE
ICkNCj4+PiAgICAgICAgICAgICAgICBicmVhazsNCj4+PiArDQo+Pj4gKyAgICAgICAgZCA9
IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChkb20pOw0KPj4+ICsgICAgICAgIGlmICggZCAmJiB4
c21fZ2V0X2RvbWFpbl9zdGF0ZShYU01fWFNfUFJJViwgZCkgKQ0KPj4NCj4+IC4uLiBpZiB0
aGUgVklSUV9ET01fRVhDIG93bmVyIGlzIGRlbmllZCBmb3IgZG9tYWluIGQgLi4uDQo+Pg0K
Pj4+ICsgICAgICAgIHsNCj4+PiArICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7
DQo+Pj4gKyAgICAgICAgICAgIGQgPSBOVUxMOw0KPj4+ICsgICAgICAgICAgICBjb250aW51
ZTsNCj4+DQo+PiAuLi4gdGhlIGNhbGxlciB3b3VsZCBjb250aW51ZSAuLi4NCj4+DQo+Pj4g
KyAgICAgICAgfQ0KPj4+ICsNCj4+PiAgICAgICAgICAgIGlmICggdGVzdF9hbmRfY2xlYXJf
Yml0KGRvbSwgZG9tX3N0YXRlX2NoYW5nZWQpICkNCj4+DQo+PiAuLi4gYW5kIHRoaXMgYml0
IHdvdWxkIG5ldmVyIGJlIGNsZWFyZWQuICBTaG91bGQgdGhlIFZJUlFfRE9NX0VYQyBvd25l
cg0KPj4gYWx3YXlzIGdldCB0byBjbGVhciB0aGUgYml0IGV2ZW4gaWYgaXQgY2Fubm90IHNl
ZSB0aGUgcmVzdWx0Pw0KPiANCj4gSSBkb24ndCB0aGluayBzbywgbm8uIFdoZW5ldmVyIGEg
bGVnaXRpbWF0ZSBjb25zdW1lciBvY2N1cnMgKHRoZSBvd25lciBvZg0KPiBWSVJRX0RPTV9F
WEMgY2FuIGNoYW5nZSwgYWZ0ZXIgYWxsKSwgaXQnbGwgdGhlbiBjb25zdW1lIHRoZSBiaXRz
IGFzIG5lZWRlZC4NCj4gTW9yZSBnZW5lcmFsbHksIEkgdGhpbmsgd2UncmUgYmV0dGVyIG9m
ZiBub3QgbWFraW5nIHRoZSBjb2RlIGhlcmUgZGVwZW5kDQo+IHRvbyBtdWNoIG9uIHRoYXQg
c3BlY2lhbCBWSVJRX0RPTV9FWEMgcHJvcGVydHkuDQoNCk9UT0ggYSBuZXcgVklSUV9ET01f
RVhDIG93bmVyIHdpbGwgcmVzdWx0IGluIGEgY29tcGxldGUgcmVzZXQgb2YgdGhlIGJpdG1h
cA0KYW55d2F5ICh0aGF0IGlzOiB0aGUgYml0cyBmb3IgYWxsIGV4aXN0aW5nIGRvbWFpbnMg
d2lsbCBiZSBzZXQsIHdoaWxlIGFsbA0Kb3RoZXJzIHdpbGwgYmUgY2xlYXJlZCkuDQoNCg0K
SnVlcmdlbg0K
--------------GjJX9a8xbqtz5xTDZxOw5Bma
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-----

--------------GjJX9a8xbqtz5xTDZxOw5Bma--

--------------Uqq6ry7BW0mSsmCrqc0Frrvi--

--------------fVcjL7tDyLmtviyNFhIpRlCM
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/Ey8FAmmW7e0FAwAAAAAACgkQsN6d1ii/Ey/X
nQf/SQ/VihRl0VSCpIHPg07wF7m42LTfBWyT4SUGdEkZycFQlUns6fow2kRmm5tNB4VdgTxbWIEI
oPWpLfbRt+qpadOa8QmJmR4farjCnRQ9FDxN2XlcwByT4CGIpIqGZ+++jfdfOXLpJwma+LtkuBPn
5ETSOXB5Pc0qY5o0uGIkdRanfSCOXUTAFSgCXeSMYPcuwYh8+PpaJhGe5MUaaTTyrz8vKSZC7iBU
zoge6P3/eW9ev9yUL2cNVK7++JQnRit8Rua02n6ZkeRYWuHiT3UVk6wnvaKzjTeH0DBHgdZGVKHg
8aFlUOTLLF5D70lPDoYYVTfnGLvIol6oypCkZfY1xA==
=YSjd
-----END PGP SIGNATURE-----

--------------fVcjL7tDyLmtviyNFhIpRlCM--


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 11:11:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 11:11:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236132.1538891 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt1wW-0000ne-P0; Thu, 19 Feb 2026 11:11:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236132.1538891; Thu, 19 Feb 2026 11: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 1vt1wW-0000nX-Lf; Thu, 19 Feb 2026 11:11:36 +0000
Received: by outflank-mailman (input) for mailman id 1236132;
 Thu, 19 Feb 2026 11:11: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt1wV-0000nR-NF
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 11:11:35 +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 c02f7d1b-0d83-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 12:11:34 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4806bf39419so13516605e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 03:11:34 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-48370a78c89sm473314585e9.5.2026.02.19.03.11.32
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 03:11:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c02f7d1b-0d83-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771499493; x=1772104293; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HwqsIFbcyGKtVBg/7HtA57MGGkjQtv2OBrHcPRAUMWs=;
        b=RnQvXDOBI5leFWUWUzCx5HJF8vsBJH86LLRda0ix7DHJIqvKKGwEUDXYv8OKzMsT2M
         qy/yH5JwY/80LK6TUM2/Lb7AbgUiYqZakDxjgbSQiqQ8GB3DBYNkPXdeoj92HYr6H6DF
         5LtDXsiPFBjMcM3FjCHr6A9tmRfR4LabJDp5bnUs697Dbka0b3Yo6ZivJE5Xs+s6ZAxt
         im0MdI5SjKOQ0DaQjhKbC6dxX29gDPJgy8SV2Dp33soZiJPRQXDFAVLhlaY26N9/bfTe
         OTC3pDZOSQErw7Bwqyt8Xqacf5a560d3ba7Qlju7NmXZuII8ghh9xg5Swn/iVI1uvBCV
         8DjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771499493; x=1772104293;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HwqsIFbcyGKtVBg/7HtA57MGGkjQtv2OBrHcPRAUMWs=;
        b=E8D52VIlTEb0HcViznkoetixOlPkyKzSmpKuezaqo6jPiGTqsqJ8VGJTVrD+8yaHHb
         eNlvob8C93b5XDUFTDvYmEQo0kXh9UxmZ4kSCu9EfKYkZCD+F5fYiU9vBBBZWeTENuRf
         Ziga9WwTK0QXYRK/Bu37F0p7Ix2jq0lQ/qTdQb5WRNKuXWthrdQqrOpV4VA04UJUp9Xm
         m41yQGAUelrxvvVzMEL+NOJff2Pf86LZbQSIyd184Hej/80RGuhAmVjRMhdbegIkjqjF
         CmtMa/Py5xQOgxDzaL9Gogb5G+sKNFfcFXo58U37cY+euFN86VBRK6LYOvFuDSKmxj/x
         l8lw==
X-Forwarded-Encrypted: i=1; AJvYcCXLo+28huYR+b/FsDsLvEUYeL3syORAC4dXIDlqm+Z5yIfrl0hkcXcFRpJMi9sC0vyshmBAGXO075k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy5DH3cyRmYirOxEwdMz1HzznIy5Hh8yi/Uyw5P82MwovWo+Ukg
	0G/SLQ/AHpkX29fCyo8GzsoWfVcXFLKGzPJjpSE7i7RUb5vg7CuFJlom0WeJIN3EKw==
X-Gm-Gg: AZuq6aL2aVsu135/y2r2bqRODNW5ZwV47Xa7w5mFcvU/xpGc4bK7+1P8FA99w310ZLo
	cQA2x2JUcAF8gm0QLml6RCo3JwIAPw2VAGBR9BSojKtyNVJNDJlzJOA6R1NSIP8+V9I5/flNzhf
	8FyaaffDRK4YRXFNGexjk8gzuMu1hsF+nDIkmbBddsFQbirOzaGwF2ZsOw1mlXuLCmqR1bSFL3F
	mwt6MtheZcExk8g44cPE2b2sPJ1OrCuTIYyjokvX3qFrzJtPCYURUc5m54REmAeznH/bOGTFwPX
	k2TKq3Pd4VucZLhrxSADoayp+w24JGiHrGIK6Q+wL8eL9G/ALGGN918IKY1A5sDmuw+atWui86z
	DDT8dQOx8+LRhrSZTh3KQUALUYdTIzOP0CA53XZJOWSU7zmsH/I+SQ/xyQKVozy1RpPIp3hKfQ7
	aZKUuqn2J1NQoSsxYKntKkKyMVne9CaOviGGiKn9M1PRhmGrtQ/dsyrYeMxHEBS9FffrK/XfFaY
	4hgsMtHwBf86xwjhRyzOE0a5Q==
X-Received: by 2002:a05:600c:214b:b0:47e:e051:79ee with SMTP id 5b1f17b1804b1-4839fe90522mr19820665e9.3.1771499493410;
        Thu, 19 Feb 2026 03:11:33 -0800 (PST)
Message-ID: <afc94229-16d9-442b-974c-9f038f2300a1@suse.com>
Date: Thu, 19 Feb 2026 12:11:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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
References: <20260218190855.7272-1-dpsmith@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: <20260218190855.7272-1-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.02.2026 20:08, Daniel P. Smith wrote:
> @@ -238,28 +242,39 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>  
>      while ( dom_state_changed )
>      {
> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
>          if ( dom >= DOMID_FIRST_RESERVED )
>              break;
> +
> +        d = rcu_lock_domain_by_id(dom);
> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
> +        {
> +            rcu_unlock_domain(d);
> +            d = NULL;

This looks unnecessary; the next loop iteration will set d unconditionally,
and d isn't (and wasn't) used past the loop. Plus there is also no such
clearing after the other rcu_unlock_domain().

> +            continue;
> +        }

This cleanup here also is redundant with the one done further down. Imo where
possible we should prefer to have only a single such instance, which looks to
be easily possible by using ...

>          if ( test_and_clear_bit(dom, dom_state_changed) )


        if ( (!d || !xsm_get_domain_state(XSM_XS_PRIV, d)) &&
             test_and_clear_bit(dom, dom_state_changed) )

or

        if ( (d && xsm_get_domain_state(XSM_XS_PRIV, d)) ||
             !test_and_clear_bit(dom, dom_state_changed) )
        {
             ...
             continue;
        }

albeit then the reduction of indentation of the subsequent code would cause
quite a bit more code churn.

>          {
>              *domid = dom;
>  
> -            d = rcu_lock_domain_by_id(dom);
> -
>              if ( d )
>              {
>                  set_domain_state_info(info, d);
> -
>                  rcu_unlock_domain(d);
>              }
>              else
>                  memset(info, 0, sizeof(*info));
>  
>              rc = 0;
> -
>              break;

I don't think the blank lines need dropping for the purpose of the patch?
Yes, they may seem excessive, but nevertheless some prefer to have rather
too many of them than too few. (Personally I don't mind their removal,
but that really doesn't look to belong here.)

>          }
> +
> +        if ( d )
> +        {
> +            rcu_unlock_domain(d);
> +            d = NULL;
> +        }
>      }
>  
>   out:
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -860,12 +860,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>          break;
>  
>      case XEN_DOMCTL_get_domain_state:
> -        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
> -        if ( ret )
> -            break;
> -
> -        copyback = 1;
>          ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
> +        if ( !ret )
> +            copyback = 1;

Nit: As you need to touch this, please switch to using "true".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 11:13:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 11:13:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236139.1538902 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt1yg-0001Iq-5O; Thu, 19 Feb 2026 11:13:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236139.1538902; Thu, 19 Feb 2026 11:13: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 1vt1yg-0001Ij-1C; Thu, 19 Feb 2026 11:13:50 +0000
Received: by outflank-mailman (input) for mailman id 1236139;
 Thu, 19 Feb 2026 11:13: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt1ye-0001Ib-B5
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 11:13:48 +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 0f72a12b-0d84-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 12:13:47 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48329eb96a7so4860985e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 03:13:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4834d7e50casm622033975e9.8.2026.02.19.03.13.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 03:13:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f72a12b-0d84-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771499626; x=1772104426; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=2zjmkeenOnTzZdB9+l7zlTYFzmKJ9MuEK0T+RpYIzJA=;
        b=DDzKyrD4uirJmSt//qCrZZCDLl2rVMMgi7j0ftTpajYcZbiZtISmqGaTw8C9P4JTFh
         aHoTczX0nL1tx8yrz5sq9As9HrGyrV++d9uYx3GpSuL4oEPnlRHYKXssKRdLnTbS0ZK4
         gxJprez72zP1qqEqdWvxlr6dZXprWcUIiFkvb74qdKQcn5MXnNhUHcE87qlPr2JpEO3K
         2u1nwkZpe3r/y4vUd4RpShPD9Z9quOb17W6dD/et1o1MTGoWNnpXCF6KnI+1lhJxqn46
         4qPDj/q7RqMyqqvsKL87qxSREkShuCv4HsyvCuqmWmL9qlU2gdO1H8YPoiVM5dOFxBKd
         qEtQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771499626; x=1772104426;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=2zjmkeenOnTzZdB9+l7zlTYFzmKJ9MuEK0T+RpYIzJA=;
        b=SWX1/napdHd5AESCq4YO8yHROxiTUKFRvKESPcnv8ZmAW/kchAscWl2Epv1AdLSWiG
         eUgcuVLt7n7Av6Zbpo7/PAYs7qIRRD7jeDfGjjSaO5UNlrZjQ4Ppr/g0Jj/rgIxrdQfO
         YeJMjlhWAeHOw0igpQJH1VOlHiY7h3yUIHsrXipQuQAkGvDmUjqwS+5SI6KJB/3H4Jvi
         9ws6FHcHQ4xGJVfpbIDE/Z3GBhY4ZYMICJg6wdNq14/Qwh+ixOsuNAmUXgubCuUs7KN8
         rvIR7mQWxGFHLHRkh/tZSnGSocHyvr0lUZP/KNG5EYGFEYGxsFXkZEaRtB9Vw32Kolhq
         jxFw==
X-Forwarded-Encrypted: i=1; AJvYcCWDx7p8/NFOFdSGY3xflSGoV9pgL74CPG6K6j+5kJG0YX0zuJpuCsEdqy4TJg7wU4bPocxUE8iztsc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykV1JiLV/BuIwAAg3dH+v03ZMD/Gh9eGlhWQkkuOoCcwiweIGd
	6WxIYFsxTornvoCrH2zbpvJED8vMoBw6pgAu0iw8qx5h42atZ/1NIy8HmDmVqeiusw==
X-Gm-Gg: AZuq6aJGUGOSMwnEcMF0YKKfX3Hs8nZBzsB648N+3blzsCYxQkpuTxDVFvyKgfTynsc
	aGL57V6r2V6E4isclHSXHR3BWj1kASJc1pQ7qyCxmn/t+1+yt6gsK+gVqdtDtMwI/u9nNrY+URF
	VdeB98uwobSZHmzDh8EqzeezMGPAHj+5/yQ4gDQKSMLIOAvn0OXh1MhzcOovxhu+0GGvGK1GMLY
	HIv6jK9MyZuhJI/QhK+yoRE1tqwVvs+2q9T7wwNNRTAQKNKXwQhELqQ0C7794kfLBgh9bv53sxu
	JcOETf4k/zve/KRe7MpWVX3LQU+yupRHgJdsOqqCEp5Q8Hcd3cVovYkbSbRAdb5TbZWNv/2cTxp
	E4tjROuargj+VT753jArRy8CuhXNOGriRKuG3t4hYokkYs8eLs/ThSXGLKBtiSS1uBcTafZFhk+
	4cOp6jg/bMSguefD6PGskc83fhgJikZFcdoSl23/Ts5A26aYu1Mcbqg6PL5mdNk2tJvBxub6gBY
	pHj4l9mKXcmD0g=
X-Received: by 2002:a05:600c:1387:b0:480:3ad0:93bf with SMTP id 5b1f17b1804b1-4839e661cd7mr36339045e9.24.1771499626518;
        Thu, 19 Feb 2026 03:13:46 -0800 (PST)
Message-ID: <7a334660-95db-4f6e-beb5-9115372567bb@suse.com>
Date: Thu, 19 Feb 2026 12:13:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: Juergen Gross <jgross@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org, Jason Andryuk <jason.andryuk@amd.com>
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
 <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@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: <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.02.2026 12:03, Juergen Gross wrote:
> On 19.02.26 11:52, Jan Beulich wrote:
>> On 19.02.2026 00:04, Jason Andryuk wrote:
>>> On 2026-02-18 14:08, Daniel P. Smith wrote:
>>>> --- a/xen/common/domain.c
>>>> +++ b/xen/common/domain.c
>>>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
>>>>    int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>                         domid_t *domid)
>>>>    {
>>>> -    unsigned int dom;
>>>> +    unsigned int dom = -1;
>>>>        int rc = -ENOENT;
>>>>        struct domain *hdl;
>>>>    
>>>> @@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>    
>>>>        if ( d )
>>>>        {
>>>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>> +        if ( rc )
>>>> +            return rc;
>>>> +
>>>>            set_domain_state_info(info, d);
>>>>    
>>>>            return 0;
>>>> @@ -238,28 +242,39 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>
>>> Between the two hunks is this:
>>>
>>>       hdl = lock_dom_exc_handler();
>>>
>>>       /*
>>>        * Only domain registered for VIRQ_DOM_EXC event is allowed to query
>>>        * domains having changed state.
>>>        */
>>>       if ( current->domain != hdl )
>>>       {
>>>           rc = -EACCES;
>>>           goto out;
>>>       }
>>>
>>> So it is only the domain with VIRQ_DOM_EXC that can enter the while loop:
>>>
>>>>    
>>>>        while ( dom_state_changed )
>>>>        {
>>>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>>>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
>>>>            if ( dom >= DOMID_FIRST_RESERVED )
>>>>                break;
>>>> +
>>>> +        d = rcu_lock_domain_by_id(dom);
>>>> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
>>>
>>> ... if the VIRQ_DOM_EXC owner is denied for domain d ...
>>>
>>>> +        {
>>>> +            rcu_unlock_domain(d);
>>>> +            d = NULL;
>>>> +            continue;
>>>
>>> ... the caller would continue ...
>>>
>>>> +        }
>>>> +
>>>>            if ( test_and_clear_bit(dom, dom_state_changed) )
>>>
>>> ... and this bit would never be cleared.  Should the VIRQ_DOM_EXC owner
>>> always get to clear the bit even if it cannot see the result?
>>
>> I don't think so, no. Whenever a legitimate consumer occurs (the owner of
>> VIRQ_DOM_EXC can change, after all), it'll then consume the bits as needed.
>> More generally, I think we're better off not making the code here depend
>> too much on that special VIRQ_DOM_EXC property.
> 
> OTOH a new VIRQ_DOM_EXC owner will result in a complete reset of the bitmap
> anyway (that is: the bits for all existing domains will be set, while all
> others will be cleared).

Yes, while writing my reply I wondered whether I should mention that. To keep
things a little more simple, I didn't. Plus for this aspect the last sentence
of my earlier reply also applies.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 11:21:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 11:21:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236151.1538911 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt26I-00031b-Q1; Thu, 19 Feb 2026 11:21:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236151.1538911; Thu, 19 Feb 2026 11: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 1vt26I-00031U-N3; Thu, 19 Feb 2026 11:21:42 +0000
Received: by outflank-mailman (input) for mailman id 1236151;
 Thu, 19 Feb 2026 11:21: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=Zdoi=AX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vt26G-00031O-V0
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 11:21: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 2907b28a-0d85-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 12:21:39 +0100 (CET)
Received: by mail-ej1-x62f.google.com with SMTP id
 a640c23a62f3a-b8f8f2106f1so125045866b.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 03:21:39 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65bad29d295sm4022621a12.8.2026.02.19.03.21.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 03:21:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2907b28a-0d85-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771500099; x=1772104899; 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=Q31N1Nu6u8r/jQV6pRbRsGg5wecGubvXJz7LIdeJSVE=;
        b=daMm+K+dtmAGb0pzjVVbnDEW+HGCYOVMMYOhKJScFkBk7gTlhqRAn7qp0VxO13ph5Z
         bxD+Z24ep2E5E0HroJh2rRHqdazPThXUfvjV5jByU9Y/0SGyjXlCmGDouzeqkVMg8YV0
         oRUk+RnQWh7Zr5agZFn68qbbcnNV9RdlNsDpXxqRawFybl8hndDuNF3gNgwxP0WBWYFY
         XhV3nNzRj+iaZMi9s4DTfq5jqmHFdg/fOQvKNeXSL4Dyy9Nm9vkNlMaxgagUGVIc0jky
         6r/XaSCmbkj7dK+Y560QJHonnBYzDmx00+nOzXofdrCA3oziX6QP738SBcWKUkX6Wa8j
         kTkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771500099; x=1772104899;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=Q31N1Nu6u8r/jQV6pRbRsGg5wecGubvXJz7LIdeJSVE=;
        b=WNw2VAVLZsbhXypp1EfD4kpCUK3SoFxUTzHYvctXDy9IkYaKBd/ih1FH6KqvzMIX08
         aiJw3Q6nC/B1LFgIyE0bRz508PyELnzRXBWhR3tvhHPMk6Dbbv6T7oghTX89vmMsmDXq
         IQgEid0LW9Irat+dcb6wqI0BhnChr4jKgFzjzSOuCXta4xwOh0q2RpSThvfH6Dh+GbXh
         j/jaGIVTrk/h+rqoHvrQvqzKWHFP+2y+eBPdxDl9cLuMUxnIcZfzedbLCmftZGNzUBbp
         xkyNdcPM41zdk2kr2bhEfgSjEsoxZkZ8csSJ9Q8t8bAjCtG+DWc5xnmhqAV8wO/PoONc
         sxDw==
X-Forwarded-Encrypted: i=1; AJvYcCUlVxOfxN4LrZWu7YShSCJqXiwBTuXmE0zoxgpj0eDqYl7D7zQAKN+p3DOBm+2yMVVr9GmDsj8+3vE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwN77OhAWvG6lDfxubFozAGCLPcyC67EefIb8NQZqtm+3LNAzaQ
	IFGiun00RFMP2dellO8+Kf2wp2oHpUm7NIipmSGeF3dBF2oSM/lzIaJYHosC/mknhh4=
X-Gm-Gg: AZuq6aI5aoVTkiduua8xVSHkwNlyrLIYeXtKtQPoMNMqWM5N6MYgpen+VFAp2HXes0g
	rmTUHQ4Sk/GQncKOHpLkNRxeBBWnIhtWtRciaAod/SRFZ2eBqrHKwGiZk4uAbOIm4kIciQOI17K
	ZGx83AGq7ilKkqjzZdvWz7/WYSlh1upx2BS0uWhOQ/CxmQY6Rs/QAN/eFgtMnq0Lbepy/hj9aj9
	ifnVCFz1xFesv3T8+OBQyfW1awYwkD4k6d3VocjEIZprr/gAXYWa0pJir5ikJg9MBTdKGjdJyqP
	veUKtDbYWzllfNRL2AFCVNVoPksVTtOcXfQPVT0axJmPupaz/as2FvHsBnE3E/WoCa3rDxbjFX6
	9sl8ep5oDXLJ2h8ZN89lsOW6yECWEH2+rj+rH7Z8WJolqBimfxHQbHe9/0B1TL1o0WpcLGpQh76
	FOZsKRv6pbmMR0OjMArBthaycw8Z/bk6PRzYP98050w7n7eOTnYSlhivF+2oX4nONI5VmFvSdH+
	tPvVyTRxfIq5RVyMnb3FNGreqZxg20JVka+uqvV7eyKb32TzA==
X-Received: by 2002:a17:907:e117:b0:b8f:e46f:8079 with SMTP id a640c23a62f3a-b8fe46f8361mr490496666b.22.1771500098890;
        Thu, 19 Feb 2026 03:21:38 -0800 (PST)
Message-ID: <539aceb3-8e94-4476-a538-77c1eb47e188@suse.com>
Date: Thu, 19 Feb 2026 12:21:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: Jan Beulich <jbeulich@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org, Jason Andryuk <jason.andryuk@amd.com>
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
 <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@suse.com>
 <7a334660-95db-4f6e-beb5-9115372567bb@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: <7a334660-95db-4f6e-beb5-9115372567bb@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------lSNMTYhfEJZeV2m89XtxJhnW"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------lSNMTYhfEJZeV2m89XtxJhnW
Content-Type: multipart/mixed; boundary="------------Jeuqcxlt1tCQ5sZLkJ7N1Dci";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org, Jason Andryuk <jason.andryuk@amd.com>
Message-ID: <539aceb3-8e94-4476-a538-77c1eb47e188@suse.com>
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
 <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@suse.com>
 <7a334660-95db-4f6e-beb5-9115372567bb@suse.com>
In-Reply-To: <7a334660-95db-4f6e-beb5-9115372567bb@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=

--------------Jeuqcxlt1tCQ5sZLkJ7N1Dci
Content-Type: multipart/mixed; boundary="------------We50DAE6mZsSBYx5UcxiQJoB"

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

T24gMTkuMDIuMjYgMTI6MTMsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAxOS4wMi4yMDI2
IDEyOjAzLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOg0KPj4gT24gMTkuMDIuMjYgMTE6NTIsIEph
biBCZXVsaWNoIHdyb3RlOg0KPj4+IE9uIDE5LjAyLjIwMjYgMDA6MDQsIEphc29uIEFuZHJ5
dWsgd3JvdGU6DQo+Pj4+IE9uIDIwMjYtMDItMTggMTQ6MDgsIERhbmllbCBQLiBTbWl0aCB3
cm90ZToNCj4+Pj4+IC0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMNCj4+Pj4+ICsrKyBiL3hl
bi9jb21tb24vZG9tYWluLmMNCj4+Pj4+IEBAIC0yMTAsNyArMjEwLDcgQEAgc3RhdGljIHZv
aWQgc2V0X2RvbWFpbl9zdGF0ZV9pbmZvKHN0cnVjdCB4ZW5fZG9tY3RsX2dldF9kb21haW5f
c3RhdGUgKmluZm8sDQo+Pj4+PiAgICAgaW50IGdldF9kb21haW5fc3RhdGUoc3RydWN0IHhl
bl9kb21jdGxfZ2V0X2RvbWFpbl9zdGF0ZSAqaW5mbywgc3RydWN0IGRvbWFpbiAqZCwNCj4+
Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90ICpkb21pZCkNCj4+Pj4+ICAg
ICB7DQo+Pj4+PiAtICAgIHVuc2lnbmVkIGludCBkb207DQo+Pj4+PiArICAgIHVuc2lnbmVk
IGludCBkb20gPSAtMTsNCj4+Pj4+ICAgICAgICAgaW50IHJjID0gLUVOT0VOVDsNCj4+Pj4+
ICAgICAgICAgc3RydWN0IGRvbWFpbiAqaGRsOw0KPj4+Pj4gICAgIA0KPj4+Pj4gQEAgLTIx
OSw2ICsyMTksMTAgQEAgaW50IGdldF9kb21haW5fc3RhdGUoc3RydWN0IHhlbl9kb21jdGxf
Z2V0X2RvbWFpbl9zdGF0ZSAqaW5mbywgc3RydWN0IGRvbWFpbiAqZCwNCj4+Pj4+ICAgICAN
Cj4+Pj4+ICAgICAgICAgaWYgKCBkICkNCj4+Pj4+ICAgICAgICAgew0KPj4+Pj4gKyAgICAg
ICAgcmMgPSB4c21fZ2V0X2RvbWFpbl9zdGF0ZShYU01fWFNfUFJJViwgZCk7DQo+Pj4+PiAr
ICAgICAgICBpZiAoIHJjICkNCj4+Pj4+ICsgICAgICAgICAgICByZXR1cm4gcmM7DQo+Pj4+
PiArDQo+Pj4+PiAgICAgICAgICAgICBzZXRfZG9tYWluX3N0YXRlX2luZm8oaW5mbywgZCk7
DQo+Pj4+PiAgICAgDQo+Pj4+PiAgICAgICAgICAgICByZXR1cm4gMDsNCj4+Pj4+IEBAIC0y
MzgsMjggKzI0MiwzOSBAQCBpbnQgZ2V0X2RvbWFpbl9zdGF0ZShzdHJ1Y3QgeGVuX2RvbWN0
bF9nZXRfZG9tYWluX3N0YXRlICppbmZvLCBzdHJ1Y3QgZG9tYWluICpkLA0KPj4+Pg0KPj4+
PiBCZXR3ZWVuIHRoZSB0d28gaHVua3MgaXMgdGhpczoNCj4+Pj4NCj4+Pj4gICAgICAgIGhk
bCA9IGxvY2tfZG9tX2V4Y19oYW5kbGVyKCk7DQo+Pj4+DQo+Pj4+ICAgICAgICAvKg0KPj4+
PiAgICAgICAgICogT25seSBkb21haW4gcmVnaXN0ZXJlZCBmb3IgVklSUV9ET01fRVhDIGV2
ZW50IGlzIGFsbG93ZWQgdG8gcXVlcnkNCj4+Pj4gICAgICAgICAqIGRvbWFpbnMgaGF2aW5n
IGNoYW5nZWQgc3RhdGUuDQo+Pj4+ICAgICAgICAgKi8NCj4+Pj4gICAgICAgIGlmICggY3Vy
cmVudC0+ZG9tYWluICE9IGhkbCApDQo+Pj4+ICAgICAgICB7DQo+Pj4+ICAgICAgICAgICAg
cmMgPSAtRUFDQ0VTOw0KPj4+PiAgICAgICAgICAgIGdvdG8gb3V0Ow0KPj4+PiAgICAgICAg
fQ0KPj4+Pg0KPj4+PiBTbyBpdCBpcyBvbmx5IHRoZSBkb21haW4gd2l0aCBWSVJRX0RPTV9F
WEMgdGhhdCBjYW4gZW50ZXIgdGhlIHdoaWxlIGxvb3A6DQo+Pj4+DQo+Pj4+PiAgICAgDQo+
Pj4+PiAgICAgICAgIHdoaWxlICggZG9tX3N0YXRlX2NoYW5nZWQgKQ0KPj4+Pj4gICAgICAg
ICB7DQo+Pj4+PiAtICAgICAgICBkb20gPSBmaW5kX2ZpcnN0X2JpdChkb21fc3RhdGVfY2hh
bmdlZCwgRE9NSURfTUFTSyArIDEpOw0KPj4+Pj4gKyAgICAgICAgZG9tID0gZmluZF9uZXh0
X2JpdChkb21fc3RhdGVfY2hhbmdlZCwgRE9NSURfTUFTSyArIDEsIGRvbSArIDEpOw0KPj4+
Pj4gICAgICAgICAgICAgaWYgKCBkb20gPj0gRE9NSURfRklSU1RfUkVTRVJWRUQgKQ0KPj4+
Pj4gICAgICAgICAgICAgICAgIGJyZWFrOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAgICAgZCA9
IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChkb20pOw0KPj4+Pj4gKyAgICAgICAgaWYgKCBkICYm
IHhzbV9nZXRfZG9tYWluX3N0YXRlKFhTTV9YU19QUklWLCBkKSApDQo+Pj4+DQo+Pj4+IC4u
LiBpZiB0aGUgVklSUV9ET01fRVhDIG93bmVyIGlzIGRlbmllZCBmb3IgZG9tYWluIGQgLi4u
DQo+Pj4+DQo+Pj4+PiArICAgICAgICB7DQo+Pj4+PiArICAgICAgICAgICAgcmN1X3VubG9j
a19kb21haW4oZCk7DQo+Pj4+PiArICAgICAgICAgICAgZCA9IE5VTEw7DQo+Pj4+PiArICAg
ICAgICAgICAgY29udGludWU7DQo+Pj4+DQo+Pj4+IC4uLiB0aGUgY2FsbGVyIHdvdWxkIGNv
bnRpbnVlIC4uLg0KPj4+Pg0KPj4+Pj4gKyAgICAgICAgfQ0KPj4+Pj4gKw0KPj4+Pj4gICAg
ICAgICAgICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9iaXQoZG9tLCBkb21fc3RhdGVfY2hhbmdl
ZCkgKQ0KPj4+Pg0KPj4+PiAuLi4gYW5kIHRoaXMgYml0IHdvdWxkIG5ldmVyIGJlIGNsZWFy
ZWQuICBTaG91bGQgdGhlIFZJUlFfRE9NX0VYQyBvd25lcg0KPj4+PiBhbHdheXMgZ2V0IHRv
IGNsZWFyIHRoZSBiaXQgZXZlbiBpZiBpdCBjYW5ub3Qgc2VlIHRoZSByZXN1bHQ/DQo+Pj4N
Cj4+PiBJIGRvbid0IHRoaW5rIHNvLCBuby4gV2hlbmV2ZXIgYSBsZWdpdGltYXRlIGNvbnN1
bWVyIG9jY3VycyAodGhlIG93bmVyIG9mDQo+Pj4gVklSUV9ET01fRVhDIGNhbiBjaGFuZ2Us
IGFmdGVyIGFsbCksIGl0J2xsIHRoZW4gY29uc3VtZSB0aGUgYml0cyBhcyBuZWVkZWQuDQo+
Pj4gTW9yZSBnZW5lcmFsbHksIEkgdGhpbmsgd2UncmUgYmV0dGVyIG9mZiBub3QgbWFraW5n
IHRoZSBjb2RlIGhlcmUgZGVwZW5kDQo+Pj4gdG9vIG11Y2ggb24gdGhhdCBzcGVjaWFsIFZJ
UlFfRE9NX0VYQyBwcm9wZXJ0eS4NCj4+DQo+PiBPVE9IIGEgbmV3IFZJUlFfRE9NX0VYQyBv
d25lciB3aWxsIHJlc3VsdCBpbiBhIGNvbXBsZXRlIHJlc2V0IG9mIHRoZSBiaXRtYXANCj4+
IGFueXdheSAodGhhdCBpczogdGhlIGJpdHMgZm9yIGFsbCBleGlzdGluZyBkb21haW5zIHdp
bGwgYmUgc2V0LCB3aGlsZSBhbGwNCj4+IG90aGVycyB3aWxsIGJlIGNsZWFyZWQpLg0KPiAN
Cj4gWWVzLCB3aGlsZSB3cml0aW5nIG15IHJlcGx5IEkgd29uZGVyZWQgd2hldGhlciBJIHNo
b3VsZCBtZW50aW9uIHRoYXQuIFRvIGtlZXANCj4gdGhpbmdzIGEgbGl0dGxlIG1vcmUgc2lt
cGxlLCBJIGRpZG4ndC4gUGx1cyBmb3IgdGhpcyBhc3BlY3QgdGhlIGxhc3Qgc2VudGVuY2UN
Cj4gb2YgbXkgZWFybGllciByZXBseSBhbHNvIGFwcGxpZXMuDQoNCkkgYmVsaWV2ZSBmbGFz
ayBzZXR0aW5ncyBjYW4gYmUgY2hhbmdlZCwgcmlnaHQ/DQoNCklmIHNvLCBjbGVhcmluZyB0
aGUgYml0IHdvdWxkIGJlIGFmZmVjdGluZyB0aGUgc2NlbmFyaW8gd2hlcmUgdGhlIFZJUlFf
RE9NX0VYQw0KaXMgTk9UIGNoYW5nZWQsIGJ1dCB0aGUgZmxhc2sgc2V0dGluZ3MgYXJlIHVw
ZGF0ZWQgdG8gYWxsb3cgaXQgb2J0YWluaW5nIGluZm8NCmFib3V0IGQuDQoNCg0KSnVlcmdl
bg0KDQo=
--------------We50DAE6mZsSBYx5UcxiQJoB
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-----

--------------We50DAE6mZsSBYx5UcxiQJoB--

--------------Jeuqcxlt1tCQ5sZLkJ7N1Dci--

--------------lSNMTYhfEJZeV2m89XtxJhnW
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/Ey8FAmmW8kIFAwAAAAAACgkQsN6d1ii/Ey/o
vgf+MAm7k39sNRDkRuinN+z60qt39bjl8PeBLusLPb6ZdecvsxrBzzB/YSEtWPJjnZvSsPvXbNja
s9V1p1mQJLx5sr8F2hWAl3v36zZKQER/QWBpqffUdoYBT3RzU1wcJ+ayaavreJ+Asp7fzwOfRg4u
KCm4JoiUm8pg4gKb/pWCUBqmlHloWkBonktAfCFPOXAZB7kZjFViL2D7n8reOvqubk1LYvDg2apH
qIVGHO+tZ2hZ/lvb1FO2vrYl0/hjB3pm9InMihbXIA/CqHeNKxeX0iP5Ewy8A7fNm7E3UZgIFrwO
Ez2+Nn2cOBFhUaCY2FJrrWPH+SKnp42hRQ+FcAKu4A==
=K4pf
-----END PGP SIGNATURE-----

--------------lSNMTYhfEJZeV2m89XtxJhnW--


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 11:31:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 11:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236164.1538921 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt2G1-0004uU-P0; Thu, 19 Feb 2026 11:31:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236164.1538921; Thu, 19 Feb 2026 11: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 1vt2G1-0004uN-MO; Thu, 19 Feb 2026 11:31:45 +0000
Received: by outflank-mailman (input) for mailman id 1236164;
 Thu, 19 Feb 2026 11:31: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=W6FJ=AX=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vt2G1-0004uH-BV
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 11:31:45 +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 8be89a01-0d86-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 12:31:35 +0100 (CET)
Received: by mail-lf1-x134.google.com with SMTP id
 2adb3069b0e04-59dd54b1073so880443e87.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 03:31:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8be89a01-0d86-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771500694; cv=none;
        d=google.com; s=arc-20240605;
        b=cuWTp9KT9ntigLklIXtGzAHDxNDxWb/ynnkuQibxafzCYl5vlHvddS8n3cpAevZr/D
         xXIl2G45ZlwVkOXQCV+HYnoSQW7kS15FbadAQ1yGKmvCIsaH9AHzO2WVLSpp1qLpbueG
         l/7nX4QbD0jw/KZSbB3LLd3PeyXOaxqYlMmID3nx55Z8iI5X405gFJ7qzdqpeb37CquR
         mifcodRHxrO7xuT2+db1t1vDs+AYRO/NSF67k6S50x9tdgr+bwM7hLLqtLEAo7iB+Fl/
         LuCzhkWy5nM79ZNI7PjWNA0cmWsz3v98/KYDx/uaugBO2WeMRe0NGWzrUgrCq6vicMLy
         VgCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=+0dXSeRtWCKix83gT4AX0pNlKVs2OTwhYRewJnqDpz4=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=NWSB7AyFyFQ6jscDw/7CAvmNvzzu2+RDCsT+WlYMSMGBsV1heiQUX22NZZss+p5xZ4
         zmHT2693wdq7ij65C9prlZIayVFqv2ou3bRD1j+C8YW3WgfkgKa2wvlskR+0lrCRF87x
         xPu/dYeiW19cNplP+wXZpK1SyifBiZEbJGpQ9qlj+1YWWX9rMd4N+llS7p6/Di//xcTQ
         mlmULgX/TvqQxaG0CWAZtfD8TcyV/JmGx9JBpYI4pwKlcgoILez1rh0Vu7/09Zq4jRom
         MseQEMrdTU8agO5iBvg09LAsyqc+7uEXu27k7jj13M3t4YTm7rwALbgBWSDh3GyGLctm
         69sA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771500694; x=1772105494; 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=+0dXSeRtWCKix83gT4AX0pNlKVs2OTwhYRewJnqDpz4=;
        b=Vd88RLjRtO7RtptNqrzMZZJbDmarfuocHi5MovEcZ744iL/LFubRXKpDI+EQ3YXXAW
         kOZur414iQEikMDRLeI/OkjPXQ+xMPSLNVeCy9p25XcCfBd7i8izSgiXu7sHlU35oqED
         sq25DFkqFNzK5eaFSE30d6U7QocZNTG+GaA0fYtTyQ2GisAmWIuSSwbZ7uqekq5eHvZl
         zb0cwFwenjMU6AfoG1tZqcS5X6JIPzro75DUwEWqW/Rvp5x3wecNjluwdFhlUCnP6tmI
         FuyWHfkkLp/zEJoXwcROuUBgttonYIDwNVvlx9BneshgW3Q/bEyRFuKHc+xe+KUZP3qn
         sPBw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771500694; x=1772105494;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=+0dXSeRtWCKix83gT4AX0pNlKVs2OTwhYRewJnqDpz4=;
        b=K/ZPWFyAe3f4pU5fD39Xw3ba1KUKlkjVNVSQYgKUgOPXf3cbb7IIv9JXilhW6Jz55X
         lYQ5E3xxN5DF+Iw1DwCXS0g3nzwzPf1XEbq5aeczNJVNXrwCdh4wSyhXM2kA5j0NMqJo
         lADy2ijtuRGrwlWPLnZ9i/6CyXK+D9fpd8DFup9msgCVRarxcDcu4m96xhW/5zxjM8wy
         IWxTX8FyO9IQ1NEXCDID5Dzfb/iPKoNajAZ1ClmtvY+YM3H8qRbg7R29GYn3UewA6Lxc
         WGeZlQyBw50h+XwVcFVSRTLDm2JjJ2xzml3Q2qhITa6lsA8KmMR3ZJZXaAAuXNFS6owZ
         jtJA==
X-Gm-Message-State: AOJu0YwPcIZe2zf60qSLXAM1RpuYH9Qg9h1N4WRiB3IG/gorkHSHTs+/
	Qifr6ROkSn027BNrIdHZUMDCrlmBh5c5dj6g4DLAQY28J8UwXB6fHQntZSJPplZ8r8QAUzKF2ED
	EKHE4fSw+D9yJRA52X2jUlY2EuuhNQ+E=
X-Gm-Gg: AZuq6aJPTxGIKBW9pS0PD5Sxcf64GY3RJNKisEt6XaOaedWGRRthPaj3ry+64frpFix
	NrEOJRDRH+rPCUfFG9FUpq4JPQYikUkvNmm8fOwq41+/7DpHmFNPL1w9z+q5lV7xrR58zOqMbCS
	XJldRWooAW3O/dj5UTjqEhFLbDeuv8R4KeON/KDoUHMRGSVY7siTgGxR0LCTXHGs5TpqEECsBPC
	7JPh0+hrSQFSbAiOR9Ca6bCKxfK9qpmjFIYF1ZRCNhUdUTzl5fug0ssic7fxntE/qxIUjNssNZF
	S3Tejw==
X-Received: by 2002:ac2:4e0b:0:b0:59d:e2f4:3fda with SMTP id
 2adb3069b0e04-59f6d353e94mr5204097e87.15.1771500694113; Thu, 19 Feb 2026
 03:31:34 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <df0e40200cffa20bbce9bf7af4496677cd64a636.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <df0e40200cffa20bbce9bf7af4496677cd64a636.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 19 Feb 2026 13:30:00 +0200
X-Gm-Features: AaiRm51Apm7sIIJJGgwklv7hfE0ykWU46owng2WKu_jdM0zGipNMrr19vnfFAXQ
Message-ID: <CAGeoDV-==sdUGtt9+r-EONH=R0Mg-dt3MigpA7Z8CUBji19qYg@mail.gmail.com>
Subject: Re: [RFC PATCH 19/19] arm/gicv4: Add GICv4 to the build system
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Add a config option to enable GICv4 support and include the
> corresponding source file in the build system.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/Kconfig  | 6 ++++++
>  xen/arch/arm/Makefile | 1 +
>  2 files changed, 7 insertions(+)
>
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index 442d353b43..c18eca9f9a 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -255,6 +255,12 @@ config ARM64_BTI
>           Branch Target Identification support.
>           This feature is not supported in Xen.
>
> +config GICV4
> +       bool "GICv4 driver"

nit: I would rename this to something more specific, e.g.:
    "GICv4 vLPI direct injection (experimental)",
as this is not a standalone GIC driver but v4 ITS extensions for direct
vLPI delivery.

It may also be worth gating it under "if UNSUPPORTED", since this builds
on the ITS code path which is currently marked as unsupported.

> +       depends on GICV3 && HAS_ITS
> +       help
> +         Driver for ARM Generic Interrupt Controller v4 extension.

Maybe expand the help text a bit, for example:

  Enable direct injection of vLPIs using the GICv4 ITS extensions.

  This adds support for vPE/vLPI management via ITS commands such as
  VMAPP, VMAPTI and (on vCPU migration) VMOVP, plus handling of per-vPE
  doorbell LPIs used by Xen to reschedule vCPUs when vLPIs are pending.

  Note: This relies on the (currently unsupported) ITS code path in Xen
  and is considered experimental.


Best regards,
Mykola

> +
>  source "arch/arm/tee/Kconfig"
>
>  config PARTIAL_EMULATION
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 95bc7ad25e..8569df571b 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -27,6 +27,7 @@ obj-y +=3D gic.o
>  obj-$(CONFIG_GICV2) +=3D gic-v2.o
>  obj-$(CONFIG_GICV3) +=3D gic-v3.o
>  obj-$(CONFIG_HAS_ITS) +=3D gic-v3-its.o
> +obj-$(CONFIG_GICV4) +=3D gic-v4-its.o
>  obj-$(CONFIG_HAS_ITS) +=3D gic-v3-lpi.o
>  obj-y +=3D guestcopy.o
>  obj-y +=3D guest_atomics.o
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 11:31:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 11:31:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236165.1538930 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt2G4-00057q-0a; Thu, 19 Feb 2026 11:31:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236165.1538930; Thu, 19 Feb 2026 11: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 1vt2G3-00057j-UG; Thu, 19 Feb 2026 11:31:47 +0000
Received: by outflank-mailman (input) for mailman id 1236165;
 Thu, 19 Feb 2026 11:31: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=W6FJ=AX=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vt2G2-0004uH-Rs
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 11:31:46 +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 91c2e6f5-0d86-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 12:31:44 +0100 (CET)
Received: by mail-lj1-x230.google.com with SMTP id
 38308e7fff4ca-388126f79bcso7261211fa.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 03:31:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 91c2e6f5-0d86-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771500704; cv=none;
        d=google.com; s=arc-20240605;
        b=XOXNHnmGNyo0e1aQVTyYEcWabYlwPzm0nCjQUFjBCckbb2z83T2Uz542GuviL5YyVV
         LdVZNzALJYHxi1ULAtLQryTSMfUBIJMLUuqHR9Ulr9szoL7svUrCa1OCOEY9sWcDohEl
         lhyADDlRb03geBMmbzNBYudQtnzJsEWXUn3kZJ0BfJSqlPMrmtydr735Cve7o9B2cTUL
         M2kwH/caiwpIK4SiwDpwRxmnW4gswsWEWbZtNLF5hYahkkGvgOMdEKTL3XXHiKvWfLXc
         sGcm4+w0pRbQ6bT7N8kZ0tLWN9E+TrcHHalCdf+/w4fn1reCa+sR8k9ADW2iaFno0sct
         MXaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=Z9d2ZXPdihAkEnCINi8lcTZ6+WdSKfvPfr0fwM+yPiY=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=awJVdi6eDCUmQnAWJauL0nqit4C9M+R4d6R+EqbYaLZqYY7rZ33Y7T5EYk6DepWDes
         vMUdI3FHh93t1UOYp/u8DbOb0lp3IlOjEfQo5uBzMgthpPGjSly3ACeCrcs6dADeDOfs
         85suMTQ4Ccop7uG8gDqXjvPWz6Eb5yZKq5PgDRvBxxxUONqiwd2Q7gheca0ix9xXHXVF
         HiiCzQiDAYyRPH8U5S2Q9EnGKe/H1Uxb/jvxBvX90kQIsB/W7de7JaJI5azO84kQYVVp
         9BXwV8bTryLTOZC336x4zdgd8im/B3iCspQilRpcxTCKdcbNeLtyPD0IIAA4JKw3DtzP
         YLMw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771500704; x=1772105504; 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=Z9d2ZXPdihAkEnCINi8lcTZ6+WdSKfvPfr0fwM+yPiY=;
        b=dinJ1GK2kGpb0UW6lp2nFVpsxZFRdgRQcLxlMn2FgDI8z/oiTU8xw2bgB/7a+0JcU0
         R/wXBTeefAXGG5oFNWCnxKwTGS0CAy3j3yNHBhOXnJ798OpCqVggK6QKhLZqrLuDQ8kG
         XJWbBtAdO++e2VIH4IGEp0/yyDGS/vZrLRHtKuevoR3eBbMXnurX6wIgHp2K+cXdcIyT
         yU4QGd2B3ash9DwxOaX7UYg9V3YXmRfJYcbBFzhPzXlUBMIxsC6MFkstwM1B1q9cEr5Y
         Leqhgams6hf0mL9DQD3CIbhn/lpU6CAuWc8ohwWDwPVw1m+wFk3B7VwF20zm585LiGz4
         x+2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771500704; x=1772105504;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Z9d2ZXPdihAkEnCINi8lcTZ6+WdSKfvPfr0fwM+yPiY=;
        b=JiZHOCYDx6GOmYsJYgf9TJQaqGIm/ybQ1c2AM3FCQCUnLNY9RXYpwpoOMaLSpa0aL5
         N8kQewM4rGhPoF5TyiWaQ8YDsAps+pByo1iJ27nqhcp3vLQR4Lt5PWSChCIHIu9YSCit
         M+Dc7A4xUPYUXzGaJWRIlSIZJb9nsI5Sc51v7EkP4BiBVsHruS5Rrfic1JxAXEi48BsT
         VxQrzixAcopfRUVrNQQgHCT52gtzo/JL01m47xHqAYQiv3aoq5pqONFpFHmO1sjQmFWI
         AH8X8Hi4bYXD4Nsw+VZ2fOgfmEZ8IkSrYNOFxNm+wZHChWDU6hBdzUXRDpZsfvVic+1V
         LfTw==
X-Gm-Message-State: AOJu0YwoeG1/zKfl76zpuD96kuNBHKx8NwObTKX5QZ9CbcRIuBGr8ocR
	DYFIXZwMhe9HzRmYdq8EvUuXLB1qn9z0d/ZU5/HXa0cTE9KbTxmrfRs/+Ui2yRPrgeGA+qnDqfc
	cqpVhNy19gM6JrphXVpfKg/SCmmARY2Y=
X-Gm-Gg: AZuq6aLtum8NZxgWRKWeT+5pW6JLwQNhmv3DUdisQu7OOw6IV/SBIbxFRtPyhHXDuqF
	dHbf7dzCwE5NWM2mFiizhp8qPnPZVnT2scep08VIz0mdtoKYErYP2VPowVyLdxxRK52TjxQcgv7
	tVKtuyMvC5KD43ooswqVQkCwRob5ywBWtADRXEPU9YBxwsw3xEpJmLclTHMf031iD7MCqMHQ4Sy
	9aUvp/stSuse5T6t9t7sSG2dMUxLWRFbSpN8SF/dZM4Wln1U0CFjE/8ABGqyGizKYOXv9cu1mO2
	tv2Ggg==
X-Received: by 2002:a05:651c:1581:b0:37f:af92:1c03 with SMTP id
 38308e7fff4ca-388467aaa7cmr16533301fa.12.1771500703774; Thu, 19 Feb 2026
 03:31:43 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <f5a6642772da0736e28511ec92f71146ce443294.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <f5a6642772da0736e28511ec92f71146ce443294.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 19 Feb 2026 13:30:00 +0200
X-Gm-Features: AaiRm52xq-kPLxnj8N_bv0GgnnsmKULu84PI9AiwhOXUAGXZnd3sUEsIGovxq6g
Message-ID: <CAGeoDV9-Tqq4inKTtwQGosa+=OAOTVYDOo2CXh=xpQsbMateyA@mail.gmail.com>
Subject: Re: [RFC PATCH 17/19] arm/gicv4: Handle doorbells
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> When GIC wants to inject a virtual interrupt to a VCPU that is not
> currently scheduled, it sends a kick for a hypervisor to schedule it. To
> receive such kicks, we need to set up a doorbell interrupt for each VPE.
>
> Add changes necessary to allocate, mask/unmask and handle doorbell
> interrupts for each VPE. When a doorbell interrupt is received, set the
> pending_last flag for the corresponding VPE and kick it, so that the
> hypervisor schedules the VCPU to handle pending VLPIs.
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v3-its.c             |  13 ++-
>  xen/arch/arm/gic-v3-lpi.c             |  69 ++++++++++----
>  xen/arch/arm/gic-v4-its.c             | 127 ++++++++++++++++++++++++++
>  xen/arch/arm/include/asm/gic_v3_its.h |   6 +-
>  xen/arch/arm/vgic-v3-its.c            |  14 ++-
>  5 files changed, 203 insertions(+), 26 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index be840fbc8f..fa5c1eb6d1 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -1016,8 +1016,11 @@ int gicv3_its_map_guest_device(struct domain *d,
>
>      dev->guest_doorbell =3D guest_doorbell;
>      dev->guest_devid =3D guest_devid;
> -    dev->host_devid =3D host_devid;
> -    dev->eventids =3D nr_events;
> +
> +    #ifdef CONFIG_GICV4
> +       spin_lock_init(&dev->event_map.vlpi_lock);
> +       dev->event_map.nr_lpis =3D nr_events;
> +    #endif
>
>      rb_link_node(&dev->rbnode, parent, new);
>      rb_insert_color(&dev->rbnode, &d->arch.vgic.its_devices);
> @@ -1142,7 +1145,8 @@ int gicv3_remove_guest_event(struct domain *d, padd=
r_t vdoorbell_address,
>      if ( host_lpi =3D=3D INVALID_LPI )
>          return -EINVAL;
>
> -    gicv3_lpi_update_host_entry(host_lpi, d->domain_id, INVALID_LPI);
> +    gicv3_lpi_update_host_entry(host_lpi, d->domain_id, INVALID_LPI,
> +                                false, INVALID_VCPU_ID);
>
>      return 0;
>  }
> @@ -1169,7 +1173,8 @@ struct pending_irq *gicv3_assign_guest_event(struct=
 domain *d,
>      if ( !pirq )
>          return NULL;
>
> -    gicv3_lpi_update_host_entry(host_lpi, d->domain_id, virt_lpi);
> +    gicv3_lpi_update_host_entry(host_lpi, d->domain_id, virt_lpi,
> +                                false, INVALID_VCPU_ID);
>
>      return pirq;
>  }
> diff --git a/xen/arch/arm/gic-v3-lpi.c b/xen/arch/arm/gic-v3-lpi.c
> index 3c2649b695..37f1aa1064 100644
> --- a/xen/arch/arm/gic-v3-lpi.c
> +++ b/xen/arch/arm/gic-v3-lpi.c
> @@ -39,7 +39,7 @@ union host_lpi {
>      struct {
>          uint32_t virt_lpi;
>          uint16_t dom_id;
> -        uint16_t pad;
> +        uint16_t db_vcpu_id;
>      };
>  };
>
> @@ -161,24 +161,48 @@ void gicv3_do_LPI(unsigned int lpi)
>       * ignore them, as they have no further state and no-one can expect
>       * to see them if they have not been mapped.
>       */
> -    if ( hlpi.virt_lpi =3D=3D INVALID_LPI )
> +    if ( hlpi.virt_lpi =3D=3D INVALID_LPI && hlpi.db_vcpu_id =3D=3D INVA=
LID_VCPU_ID )
>          goto out;
>
>      d =3D rcu_lock_domain_by_id(hlpi.dom_id);
>      if ( !d )
>          goto out;
>
> -    /*
> -     * TODO: Investigate what to do here for potential interrupt storms.
> -     * As we keep all host LPIs enabled, for disabling LPIs we would nee=
d
> -     * to queue a ITS host command, which we avoid so far during a guest=
's
> -     * runtime. Also re-enabling would trigger a host command upon the
> -     * guest sending a command, which could be an attack vector for
> -     * hogging the host command queue.
> -     * See the thread around here for some background:
> -     * https://lists.xen.org/archives/html/xen-devel/2016-12/msg00003.ht=
ml
> -     */
> -    vgic_vcpu_inject_lpi(d, hlpi.virt_lpi);
> +    /* It is a doorbell interrupt. */
> +    if ( hlpi.db_vcpu_id !=3D INVALID_VCPU_ID )
> +    {
> +#ifdef CONFIG_GICV4
> +        struct vcpu *v =3D d->vcpu[hlpi.db_vcpu_id];
> +
> +        /* We got the message, no need to fire again */
> +        its_vpe_mask_db(v->arch.vgic.its_vpe);
> +
> +        /*
> +         * Update the pending_last flag that indicates that VLPIs are pe=
nding.
> +         * And the corresponding vcpu is also kicked into action.
> +         */
> +        v->arch.vgic.its_vpe->pending_last =3D true;

This write is not synchronized. pending_last is touched from the LPI
handler path, so please use the appropriate vPE lock here, or make it
an atomic/WRITE_ONCE with a clear concurrency rationale. As-is this is
a data race.

> +
> +        vcpu_kick(v);
> +#else
> +        printk(XENLOG_WARNING
> +               "Doorbell LPI is only suooprted on GICV4\n");
> +#endif
> +    }
> +    else
> +    {
> +        /*
> +         * TODO: Investigate what to do here for potential interrupt sto=
rms.
> +         * As we keep all host LPIs enabled, for disabling LPIs we would=
 need
> +         * to queue a ITS host command, which we avoid so far during a g=
uest's
> +         * runtime. Also re-enabling would trigger a host command upon t=
he
> +         * guest sending a command, which could be an attack vector for
> +         * hogging the host command queue.
> +         * See the thread around here for some background:
> +         * https://lists.xen.org/archives/html/xen-devel/2016-12/msg0000=
3.html
> +         */
> +        vgic_vcpu_inject_lpi(d, hlpi.virt_lpi);
> +    }
>
>      rcu_unlock_domain(d);
>
> @@ -187,7 +211,8 @@ out:
>  }
>
>  void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
> -                                 uint32_t virt_lpi)
> +                                 uint32_t virt_lpi, bool is_db,
> +                                 uint16_t db_vcpu_id)
>  {
>      union host_lpi *hlpip, hlpi;
>
> @@ -197,8 +222,16 @@ void gicv3_lpi_update_host_entry(uint32_t host_lpi, =
int domain_id,
>
>      hlpip =3D &lpi_data.host_lpis[host_lpi / HOST_LPIS_PER_PAGE][host_lp=
i % HOST_LPIS_PER_PAGE];
>
> -    hlpi.virt_lpi =3D virt_lpi;
> -    hlpi.dom_id =3D domain_id;
> +    if ( !is_db )
> +    {
> +        hlpi.virt_lpi =3D virt_lpi;
> +        hlpi.dom_id =3D domain_id;
> +    }
> +    else
> +    {
> +        hlpi.dom_id =3D domain_id;
> +        hlpi.db_vcpu_id =3D db_vcpu_id;
> +    }
>
>      write_u64_atomic(&hlpip->data, hlpi.data);
>  }
> @@ -595,6 +628,7 @@ int gicv3_allocate_host_lpi_block(struct domain *d, u=
int32_t *first_lpi)
>           */
>          hlpi.virt_lpi =3D INVALID_LPI;
>          hlpi.dom_id =3D d->domain_id;
> +        hlpi.db_vcpu_id =3D INVALID_VCPU_ID;
>          write_u64_atomic(&lpi_data.host_lpis[chunk][lpi_idx + i].data,
>                           hlpi.data);
>
> @@ -602,7 +636,8 @@ int gicv3_allocate_host_lpi_block(struct domain *d, u=
int32_t *first_lpi)
>           * Enable this host LPI, so we don't have to do this during the
>           * guest's runtime.
>           */
> -        lpi_data.lpi_property[lpi + i] |=3D LPI_PROP_ENABLED;
> +        lpi_write_config(lpi_data.lpi_property, lpi + i + LPI_OFFSET, 0x=
ff,
> +                         LPI_PROP_ENABLED);
>      }
>
>      lpi_data.next_free_lpi =3D lpi + LPI_BLOCK;
> diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
> index 175fda7acb..0462976b93 100644
> --- a/xen/arch/arm/gic-v4-its.c
> +++ b/xen/arch/arm/gic-v4-its.c
> @@ -157,6 +157,9 @@ static int its_send_cmd_vmapp(struct host_its *its, s=
truct its_vpe *vpe,
>      cmd[3] =3D (vpt_addr & GENMASK(51, 16)) |
>               ((HOST_LPIS_NRBITS - 1) & GENMASK(4, 0));
>
> +    /* Default doorbell interrupt */
> +    cmd[1] |=3D (uint64_t)vpe->vpe_db_lpi;

Doorbell LPI is a GICv4.1 addition; for GICv4.0 this should not be set.

> +
>   out:
>      ret =3D its_send_command(its, cmd);
>
> @@ -296,6 +299,37 @@ static int its_send_cmd_vmovp(struct its_vpe *vpe)
>      return 0;
>  }
>
> +
> +static void its_vpe_send_inv_db(struct its_vpe *vpe)
> +{
> +    // struct its_device *dev =3D vpe_proxy.dev;
> +    // unsigned long flags;
> +
> +    // spin_lock_irqsave(&vpe_proxy.lock, flags);
> +    // gicv4_vpe_db_proxy_map_locked(vpe);
> +    // its_send_cmd_inv(dev->hw_its, dev->host_devid, vpe->vpe_proxy_eve=
nt);
> +    // spin_unlock_irqrestore(&vpe_proxy.lock, flags);
> +}
> +
> +static void its_vpe_inv_db(struct its_vpe *vpe)
> +{
> +    its_vpe_send_inv_db(vpe);
> +}
> +
> +void its_vpe_mask_db(struct its_vpe *vpe)
> +{
> +    /* Only clear enable bit. */
> +    lpi_write_config(lpi_data.lpi_property, vpe->vpe_db_lpi, LPI_PROP_EN=
ABLED, 0);
> +    its_vpe_inv_db(vpe);
> +}
> +
> +static void its_vpe_unmask_db(struct its_vpe *vpe)
> +{
> +    /* Only set enable bit. */
> +    lpi_write_config(lpi_data.lpi_property, vpe->vpe_db_lpi, 0, LPI_PROP=
_ENABLED);
> +    its_vpe_inv_db(vpe);
> +}
> +
>  static void __init its_vpe_teardown(struct its_vpe *vpe)
>  {
>      unsigned int order;
> @@ -309,6 +343,8 @@ static void __init its_vpe_teardown(struct its_vpe *v=
pe)
>  int vgic_v4_its_vm_init(struct domain *d)
>  {
>      unsigned int nr_vcpus =3D d->max_vcpus;
> +    unsigned int nr_db_lpis, nr_chunks, i =3D 0;
> +    uint32_t *db_lpi_bases;
>      int ret =3D -ENOMEM;
>
>      if ( !gicv3_its_host_has_its() )
> @@ -326,9 +362,31 @@ int vgic_v4_its_vm_init(struct domain *d)
>      d->arch.vgic.its_vm->vproptable =3D lpi_allocate_proptable();
>      if ( !d->arch.vgic.its_vm->vproptable )
>          goto fail_vprop;
> +    /* Allocate a doorbell interrupt for each VPE. */
> +    nr_db_lpis =3D d->arch.vgic.its_vm->nr_vpes;
> +    nr_chunks =3D DIV_ROUND_UP(nr_db_lpis, LPI_BLOCK);
> +    db_lpi_bases =3D xzalloc_array(uint32_t, nr_chunks);
> +    if ( !db_lpi_bases )
> +        goto fail_db_bases;
> +
> +    do {
> +        /* Allocate doorbell interrupts in chunks of LPI_BLOCK (=3D32). =
*/
> +        ret =3D gicv3_allocate_host_lpi_block(d, &db_lpi_bases[i]);
> +        if ( ret )
> +            goto fail_db;
> +    } while ( ++i < nr_chunks );
> +
> +    d->arch.vgic.its_vm->db_lpi_bases =3D db_lpi_bases;
> +    d->arch.vgic.its_vm->nr_db_lpis =3D nr_db_lpis;
>
>      return 0;
>
> +fail_db:
> +    while ( --i >=3D 0 )

'i' is unsigned, so --i >=3D 0 is always true.
This will loop forever.

> +        gicv3_free_host_lpi_block(d->arch.vgic.its_vm->db_lpi_bases[i]);

The fail path frees via d->arch.vgic.its_vm->db_lpi_bases, but this
pointer is only assigned on the success path. On failure it can be
NULL/uninitialized. Please free via the local db_lpi_bases[] (and then
xfree(db_lpi_bases)), or assign its_vm->db_lpi_bases before entering the
allocation loop.

> +    xfree(db_lpi_bases);
> +fail_db_bases:
> +    lpi_free_proptable(d->arch.vgic.its_vm->vproptable);
>  fail_vprop:
>      xfree(d->arch.vgic.its_vm->vpes);
>   fail_vpes:
> @@ -340,8 +398,13 @@ fail_vprop:
>  void vgic_v4_free_its_vm(struct domain *d)
>  {
>      struct its_vm *its_vm =3D d->arch.vgic.its_vm;
> +    int nr_chunks =3D DIV_ROUND_UP(its_vm->nr_db_lpis, LPI_BLOCK);
>      if ( its_vm->vpes )
>          xfree(its_vm->vpes);
> +    while ( --nr_chunks >=3D 0 )
> +        gicv3_free_host_lpi_block(its_vm->db_lpi_bases[nr_chunks]);
> +    if ( its_vm->db_lpi_bases )
> +        xfree(its_vm->db_lpi_bases);
>      if ( its_vm->vproptable )
>          lpi_free_proptable(its_vm);
>  }
> @@ -357,14 +420,29 @@ int vgic_v4_its_vpe_init(struct vcpu *vcpu)
>          return -ENOMEM;
>
>      its_vm->vpes[vcpuid] =3D vcpu->arch.vgic.its_vpe;
> +    vcpu->arch.vgic.its_vpe =3D vcpu->arch.vgic.its_vpe;

This is a no-op self-assignment; please remove.

> +    vcpu->arch.vgic.its_vpe->vpe_db_lpi =3D its_vm->db_lpi_bases[vcpuid/=
32] + (vcpuid % 32);
> +    /*
> +     * Sometimes vlpi gets firstly mapped before associated vpe
> +     * becoming resident, so in case missing the interrupt, we intend to
> +     * enable doorbell at the initialization stage
> +     */
> +
>      vcpu->arch.vgic.its_vpe->its_vm =3D its_vm;
>
> +    gicv3_lpi_update_host_entry(vcpu->arch.vgic.its_vpe->vpe_db_lpi,
> +                                vcpu->domain->domain_id, INVALID_LPI, tr=
ue,
> +                                vcpu->vcpu_id);
> +
> +
>      ret =3D its_vpe_init(vcpu->arch.vgic.its_vpe);
>      if ( ret )
>      {
>          its_vpe_teardown(vcpu->arch.vgic.its_vpe);
>          return ret;
>      }
> +    its_vpe_unmask_db(vcpu->arch.vgic.its_vpe);
> +
>      return 0;
>  }
>
> @@ -800,6 +878,7 @@ void vgic_v4_load(struct vcpu *vcpu)
>       * corresponding to our current CPU expects us here
>       */
>      WARN_ON(gicv4_vpe_set_affinity(vcpu));
> +    its_vpe_mask_db(vpe);
>      its_make_vpe_resident(vpe, vcpu->processor);
>      vpe->resident =3D true;
>  }
> @@ -812,5 +891,53 @@ void vgic_v4_put(struct vcpu *vcpu, bool need_db)
>          return;
>
>      its_make_vpe_non_resident(vpe, vcpu->processor);
> +    if ( need_db )
> +        /* Enable the doorbell, as the guest is going to block */
> +        its_vpe_unmask_db(vpe);
>      vpe->resident =3D false;
>  }
> +
> +static int its_vlpi_set_doorbell(struct its_vlpi_map *map, bool enable)
> +{
> +    if (map->db_enabled =3D=3D enable)
> +        return 0;
> +
> +    map->db_enabled =3D enable;
> +
> +    /*
> +     * Ideally, we'd issue a VMAPTI to set the doorbell to its LPI
> +     * value or to 1023, depending on the enable bit. But that
> +     * would be issuing a mapping for an /existing/ DevID+EventID
> +     * pair, which is UNPREDICTABLE. Instead, let's issue a VMOVI
> +     * to the /same/ vPE, using this opportunity to adjust the doorbell.
> +     */
> +    return its_send_cmd_vmovi(map->dev->hw_its, map);
> +}
> +
> +int its_vlpi_prop_update(struct pending_irq *pirq, uint8_t property,
> +                         bool needs_inv)
> +{
> +    struct its_vlpi_map *map;
> +    unsigned int cpu;
> +    int ret;
> +
> +    if ( !pirq->vlpi_map )
> +        return -EINVAL;
> +
> +    map =3D pirq->vlpi_map;
> +
> +    /* Cache the updated property and update the vproptable. */
> +    map->properties =3D property;
> +    lpi_write_config(map->vm->vproptable, pirq->irq, 0xff, property);
> +
> +    if ( needs_inv )
> +    {
> +        cpu =3D map->vm->vpes[map->vpe_idx]->col_idx;
> +        ret =3D its_inv_lpi(map->dev->hw_its, map->dev, map->eventid, cp=
u);
> +        if ( ret )
> +            return ret;
> +    }
> +
> +    return its_vlpi_set_doorbell(map, property & LPI_PROP_ENABLED);
> +}
> +
> diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include=
/asm/gic_v3_its.h
> index f03a8fad47..dababe97cd 100644
> --- a/xen/arch/arm/include/asm/gic_v3_its.h
> +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> @@ -295,7 +295,9 @@ struct pending_irq *gicv3_assign_guest_event(struct d=
omain *d,
>                                               uint32_t vdevid, uint32_t e=
ventid,
>                                               uint32_t virt_lpi);
>  void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,
> -                                 uint32_t virt_lpi);
> +                                 uint32_t virt_lpi, bool is_db,
> +                                 uint16_t db_vcpu_id);
> +
>  struct its_baser *its_get_baser(struct host_its *hw_its, uint32_t type);
>  bool its_alloc_table_entry(struct its_baser *baser, uint32_t id);
>  struct page_info *lpi_allocate_pendtable(void);
> @@ -322,6 +324,8 @@ bool event_is_forwarded_to_vcpu(struct its_device *de=
v, uint32_t eventid);
>  void its_vpe_mask_db(struct its_vpe *vpe);
>  #endif
>  int gicv4_its_vlpi_unmap(struct pending_irq *pirq);
> +int its_vlpi_prop_update(struct pending_irq *pirq, uint8_t property,
> +                         bool needs_inv);
>
>  /* ITS quirks handling. */
>  uint64_t gicv3_its_get_cacheability(void);
> diff --git a/xen/arch/arm/vgic-v3-its.c b/xen/arch/arm/vgic-v3-its.c
> index 94f7dd7d90..0a740ad68f 100644
> --- a/xen/arch/arm/vgic-v3-its.c
> +++ b/xen/arch/arm/vgic-v3-its.c
> @@ -387,7 +387,7 @@ out_unlock:
>   * property table and update the virtual IRQ's state in the given pendin=
g_irq.
>   * Must be called with the respective VGIC VCPU lock held.
>   */
> -static int update_lpi_property(struct domain *d, struct pending_irq *p)
> +int update_lpi_property(struct domain *d, struct pending_irq *p, bool ne=
eds_inv)

I don=E2=80=99t see any out-of-file users of update_lpi_property().
If it=E2=80=99s still file-local, keep it static.

Best regards,
Mykola

>  {
>      paddr_t addr;
>      uint8_t property;
> @@ -417,6 +417,9 @@ static int update_lpi_property(struct domain *d, stru=
ct pending_irq *p)
>      else
>          clear_bit(GIC_IRQ_GUEST_ENABLED, &p->status);
>
> +    if ( pirq_is_tied_to_hw(p) )
> +        return its_vlpi_prop_update(p, property, needs_inv);
> +
>      return 0;
>  }
>
> @@ -430,6 +433,9 @@ static int update_lpi_property(struct domain *d, stru=
ct pending_irq *p)
>   */
>  static void update_lpi_vgic_status(struct vcpu *v, struct pending_irq *p=
)
>  {
> +    if ( pirq_is_tied_to_hw(p) )
> +        return;
> +
>      ASSERT(spin_is_locked(&v->arch.vgic.lock));
>
>      if ( test_bit(GIC_IRQ_GUEST_ENABLED, &p->status) )
> @@ -479,7 +485,7 @@ static int its_handle_inv(struct virt_its *its, uint6=
4_t *cmdptr)
>      spin_lock_irqsave(&vcpu->arch.vgic.lock, flags);
>
>      /* Read the property table and update our cached status. */
> -    if ( update_lpi_property(d, p) )
> +    if ( update_lpi_property(d, p, true) )
>          goto out_unlock;
>
>      /* Check whether the LPI needs to go on a VCPU. */
> @@ -552,7 +558,7 @@ static int its_handle_invall(struct virt_its *its, ui=
nt64_t *cmdptr)
>
>              vlpi =3D pirqs[i]->irq;
>              /* If that fails for a single LPI, carry on to handle the re=
st. */
> -            err =3D update_lpi_property(its->d, pirqs[i]);
> +            err =3D update_lpi_property(its->d, pirqs[i], false);
>              if ( !err )
>                  update_lpi_vgic_status(vcpu, pirqs[i]);
>              else
> @@ -785,7 +791,7 @@ static int its_handle_mapti(struct virt_its *its, uin=
t64_t *cmdptr)
>       * We don't need the VGIC VCPU lock here, because the pending_irq is=
n't
>       * in the radix tree yet.
>       */
> -    ret =3D update_lpi_property(its->d, pirq);
> +    ret =3D update_lpi_property(its->d, pirq, true);
>      if ( ret )
>          goto out_remove_host_entry;
>
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 12:15:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 12:15:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236196.1538941 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt2wV-0002hR-8G; Thu, 19 Feb 2026 12:15:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236196.1538941; Thu, 19 Feb 2026 12: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 1vt2wV-0002hK-5S; Thu, 19 Feb 2026 12:15:39 +0000
Received: by outflank-mailman (input) for mailman id 1236196;
 Thu, 19 Feb 2026 12: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=l/wp=AX=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vt2wU-0002hE-0r
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 12:15:38 +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 b1233be3-0d8c-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 13:15:35 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771503318217305.49356846039416;
 Thu, 19 Feb 2026 04:15:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1233be3-0d8c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771503322; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Yf2ed+1ZVgezyQnUVpKdPIRuYSGD4NHHCy01V44HWbPmsMewYQQqs3OrGn+4QxLyuQQQs6CNREnAKn2kA1DZksr1aJxyYJjz/4vCuHemrVSw/P0sZE7iGEhLsL70UJe3MEuuFx+l9yHPVEsdxudpNiHwQv7xVoo7ft+gtmuiIxg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771503322; 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=iVWQvwAHlrWAyEjqQylfVKxysdT9hftzKejSBSQ5E+8=; 
	b=cZHqTHmU1lpYHnDDfzhfHCBO4vPUU9OpGvkv4YyVqqCnjSwPK2KF0ssbr6ndydHQ3OiNB2vyWqVwy3K1U6uslp34QkaNgWah1fJR570O6SrlHvxdXMz1q3zRr33GytLcuLmLlyl0oJhJUKf2c/SJKnG/YkfdL45iPP07Mfg7/P8=
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=1771503322;
	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=iVWQvwAHlrWAyEjqQylfVKxysdT9hftzKejSBSQ5E+8=;
	b=toQT+n/19pvF3RgNil2XFu71XSMH9o5139mSWzKamTwpfwfaGlvrJA6RCuywLnSS
	uxS/udbdoprDbtZNMtMTqHuSkfS4l91ZD+L4kJA/BzwpYNOfQ8RcRdRilcH08ztJX8R
	mAsLW+O+dStaJUjYr4L8y7YfLcrmJqERw59yMFX0=
Message-ID: <e402ca27-75ca-4046-8e30-305c1c8d3db8@apertussolutions.com>
Date: Thu, 19 Feb 2026 07:15:16 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
Content-Language: en-US
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.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: <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 2/18/26 18:04, Jason Andryuk wrote:
> On 2026-02-18 14:08, Daniel P. Smith wrote:
>> When using XSM Flask, passing DOMID_INVALID will result in a NULL pointer
>> reference from the passing of NULL as the target domain to
>> xsm_get_domain_state(). Simply not invoking xsm_get_domain_state() 
>> when the
>> target domain is NULL opens the opportunity to circumvent the XSM
>> get_domain_state access check. This is due to the fact that the call to
>> xsm_domctl() for get_domain_state op is a no-op check, deferring to
>> xsm_get_domain_state().
>>
>> Modify the helper get_domain_state() to ensure the requesting domain has
>> get_domain_state access for the target domain, whether the target 
>> domain is
>> explicitly set or implicitly determined with a domain state search. In 
>> the case
>> of access not being allowed for a domain found during an implicit 
>> search, the
>> search will continue to the next domain whose state has changed.
>>
>> Fixes: 3ad3df1bd0aa ("xen: add new domctl get_domain_state")
>> Reported-by: Chris Rogers <rogersc@ainfosec.com>
>> Reported-by: Dmytro Firsov <dmytro_firsov@epam.com>
>> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
>> ---
>> Changes in v2:
>> - fix commit message
>> - init dom as -1
>> - rework loop logic to use test_and_clear_bit()
>> ---
>>   xen/common/domain.c | 27 +++++++++++++++++++++------
>>   xen/common/domctl.c |  7 ++-----
>>   2 files changed, 23 insertions(+), 11 deletions(-)
>>
>> diff --git a/xen/common/domain.c b/xen/common/domain.c
>> index de6fdf59236e..2ffec331a8d1 100644
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct 
>> xen_domctl_get_domain_state *info,
>>   int get_domain_state(struct xen_domctl_get_domain_state *info, 
>> struct domain *d,
>>                        domid_t *domid)
>>   {
>> -    unsigned int dom;
>> +    unsigned int dom = -1;
>>       int rc = -ENOENT;
>>       struct domain *hdl;
>> @@ -219,6 +219,10 @@ int get_domain_state(struct 
>> xen_domctl_get_domain_state *info, struct domain *d,
>>       if ( d )
>>       {
>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>> +        if ( rc )
>> +            return rc;
>> +
>>           set_domain_state_info(info, d);
>>           return 0;
>> @@ -238,28 +242,39 @@ int get_domain_state(struct 
>> xen_domctl_get_domain_state *info, struct domain *d,
> 
> Between the two hunks is this:
> 
>      hdl = lock_dom_exc_handler();
> 
>      /*
>       * Only domain registered for VIRQ_DOM_EXC event is allowed to query
>       * domains having changed state.
>       */
>      if ( current->domain != hdl )
>      {
>          rc = -EACCES;
>          goto out;
>      }
> 
> So it is only the domain with VIRQ_DOM_EXC that can enter the while loop:
> 
>>       while ( dom_state_changed )
>>       {
>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
>>           if ( dom >= DOMID_FIRST_RESERVED )
>>               break;
>> +
>> +        d = rcu_lock_domain_by_id(dom);
>> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
> 
> ... if the VIRQ_DOM_EXC owner is denied for domain d ...
> 
>> +        {
>> +            rcu_unlock_domain(d);
>> +            d = NULL;
>> +            continue;
> 
> ... the caller would continue ...
> 
>> +        }
>> +
>>           if ( test_and_clear_bit(dom, dom_state_changed) )
> 
> ... and this bit would never be cleared.  Should the VIRQ_DOM_EXC owner 
> always get to clear the bit even if it cannot see the result?  Is this 
> too much of a corner case to care about?

If we want to go down this discussion path, here is yet another example 
access control decisions are getting codified directly against 
properties of a domain, in particular against VIRQ's which were waived 
from XSM control. If having access to certain VIRQ's is going to be a 
privilege determination, then perhaps we should visit whether they 
should be labeled objects like physical IRQs.

> The patch generally seems okay aside from this.
> 
>>           {
>>               *domid = dom;
>> -            d = rcu_lock_domain_by_id(dom);
>> -
>>               if ( d )
>>               {
>>                   set_domain_state_info(info, d);
>> -
>>                   rcu_unlock_domain(d);
>>               }
>>               else
>>                   memset(info, 0, sizeof(*info));
>>               rc = 0;
>> -
>>               break;
>>           }
>> +
>> +        if ( d )
>> +        {
>> +            rcu_unlock_domain(d);
>> +            d = NULL;
>> +        }
>>       }
>>    out:
>> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
>> index 29a7726d32d0..2eedc639c72a 100644
>> --- a/xen/common/domctl.c
>> +++ b/xen/common/domctl.c
>> @@ -860,12 +860,9 @@ long 
>> do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>>           break;
>>       case XEN_DOMCTL_get_domain_state:
>> -        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
> 
> With the initial NULL deref issue, I wondered if this wouldn't be better 
> off modified to drop the d param - xsm_get_domain_state(XSM_XS_PRIV) - 
> and changing flask permissions like:
> allow dom0_t xen_t:xen get_domain_state;
> 
> That would gate the external call, and individual domain permissions 
> could be checked with xsm_getdomaininfo(), or a new hook if you don't 
> want to re-use.
> 
> But as your approach avoids passing NULL, it seems okay to me.  It also 
> doesn't change the flask policy, which is nice.

That's a plain nack from me. Whether it is viewed as a pipe dream or 
not, my goal continues to be to work towards enabling the ability to 
have a truly disaggregated platform. In the original architecture, it 
was envisioned to have multiple toolstack domains, each responsible for 
a distinct set of domains. In terms of implementation, that would mean 
multiple xenstored instances, each with a purview over a subset of domains.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 12:35:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 12:35:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236212.1538950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt3FH-0005cg-OX; Thu, 19 Feb 2026 12:35:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236212.1538950; Thu, 19 Feb 2026 12:35: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 1vt3FH-0005cZ-Ln; Thu, 19 Feb 2026 12:35:03 +0000
Received: by outflank-mailman (input) for mailman id 1236212;
 Thu, 19 Feb 2026 12:35: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=l/wp=AX=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vt3FG-0005cT-8D
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 12:35:02 +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 67387bfd-0d8f-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 13:35:00 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771504484423733.3181470285288;
 Thu, 19 Feb 2026 04:34:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67387bfd-0d8f-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771504486; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=lBepdT/Ew5vZqsL1fXGwvGxejPXdmhZByteLxv/5t36CwgqzF7lnTugvFtJsSRDvhKCBVbiylcrvEMSwl86MnczXe4WVoRu69MiZcblNFH+vuy5Cf6ijU/B5BbivREVqSyLZlHK4GBYBk0otNwZ8MwABiMLCzspEFzFoE/S7YSo=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771504486; 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=F1wZfFOs0/T43vHPOK5xak/XPmakW0Otq8nN80dcJhE=; 
	b=RzmQhtbfLQnQUjCSiMdSjX/B7g6l8aJjoUe/vsquDLm7L2POTsFZIs/s6Yo3xrLyT+T6yB47snGM5akJne6ARm13gfU42Yf3yN8pnguAUL1iyRnpvBlUDba2BefwZvlO+xHujxMHG3nOJ3R6ZImVUkddggtCqzTh9xJh1x2HbQ0=
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=1771504486;
	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=F1wZfFOs0/T43vHPOK5xak/XPmakW0Otq8nN80dcJhE=;
	b=us9n8T2XRdNjx7DZyMl/dXWWcfCvN75IP7IPkf0gXXXre4uUpgjmslZ2Qa8PenRV
	kyiwsfzM99SnKzLNxkYu8s4hhaFVta5ff68E9NXyFjvhz7H7bO7Yjng7fN2egIEchhD
	4kZt9D+lb8dsAgh/bokIZa90dWY27ya2O9UDlP40=
Message-ID: <e176fc10-bc1a-40fe-a129-dc862e964761@apertussolutions.com>
Date: Thu, 19 Feb 2026 07:34:43 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <afc94229-16d9-442b-974c-9f038f2300a1@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: <afc94229-16d9-442b-974c-9f038f2300a1@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/19/26 06:11, Jan Beulich wrote:
> On 18.02.2026 20:08, Daniel P. Smith wrote:
>> @@ -238,28 +242,39 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>   
>>       while ( dom_state_changed )
>>       {
>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
>>           if ( dom >= DOMID_FIRST_RESERVED )
>>               break;
>> +
>> +        d = rcu_lock_domain_by_id(dom);
>> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
>> +        {
>> +            rcu_unlock_domain(d);
>> +            d = NULL;
> 
> This looks unnecessary; the next loop iteration will set d unconditionally,
> and d isn't (and wasn't) used past the loop. Plus there is also no such
> clearing after the other rcu_unlock_domain().
> 

If the src domain didn't have the permission on any of the target 
domains, then *d will leak the last domain checked back to the caller. 
While I didn't see it being used after the call site, it's a good 
principle not to leak from a function an object for which access was denied.

This is not an issue for the later location where rcu_unlock_domain() is 
called, because at that point the src domain does have domain state 
privilege for the target domain.

>> +            continue;
>> +        }
> 
> This cleanup here also is redundant with the one done further down. Imo where
> possible we should prefer to have only a single such instance, which looks to
> be easily possible by using ...
> 
>>           if ( test_and_clear_bit(dom, dom_state_changed) )
> 
> 
>          if ( (!d || !xsm_get_domain_state(XSM_XS_PRIV, d)) &&
>               test_and_clear_bit(dom, dom_state_changed) )
> 
> or
> 
>          if ( (d && xsm_get_domain_state(XSM_XS_PRIV, d)) ||
>               !test_and_clear_bit(dom, dom_state_changed) )
>          {
>               ...
>               continue;
>          }
> 
> albeit then the reduction of indentation of the subsequent code would cause
> quite a bit more code churn.
> 

I would prefer the latter to keep the clearing of d to NULL only when 
access was denied.

>>           {
>>               *domid = dom;
>>   
>> -            d = rcu_lock_domain_by_id(dom);
>> -
>>               if ( d )
>>               {
>>                   set_domain_state_info(info, d);
>> -
>>                   rcu_unlock_domain(d);
>>               }
>>               else
>>                   memset(info, 0, sizeof(*info));
>>   
>>               rc = 0;
>> -
>>               break;
> 
> I don't think the blank lines need dropping for the purpose of the patch?
> Yes, they may seem excessive, but nevertheless some prefer to have rather
> too many of them than too few. (Personally I don't mind their removal,
> but that really doesn't look to belong here.)
> 

Okay, but as you state above, with the compounding of the if statement, 
the indentation will go away and the whole section will a remove/add 
section to the diff. Would you still want the line spacing maintained?

>>           }
>> +
>> +        if ( d )
>> +        {
>> +            rcu_unlock_domain(d);
>> +            d = NULL;
>> +        }
>>       }
>>   
>>    out:
>> --- a/xen/common/domctl.c
>> +++ b/xen/common/domctl.c
>> @@ -860,12 +860,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>>           break;
>>   
>>       case XEN_DOMCTL_get_domain_state:
>> -        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
>> -        if ( ret )
>> -            break;
>> -
>> -        copyback = 1;
>>           ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
>> +        if ( !ret )
>> +            copyback = 1;
> 
> Nit: As you need to touch this, please switch to using "true".

Just to be clear, you mean switching to a conditional statement vs 
testing for not zero?

v/r,
dps


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 12:40:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 12:40:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236219.1538961 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt3KP-0007Fl-AH; Thu, 19 Feb 2026 12:40:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236219.1538961; Thu, 19 Feb 2026 12:40: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 1vt3KP-0007Fe-6m; Thu, 19 Feb 2026 12:40:21 +0000
Received: by outflank-mailman (input) for mailman id 1236219;
 Thu, 19 Feb 2026 12:40: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=Cwun=AX=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vt3KN-0007FF-NB
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 12:40:19 +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 258cd1de-0d90-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 13:40:18 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-4359a16a400so816446f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 04:40:18 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abe3b3sm55413183f8f.18.2026.02.19.04.40.15
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 19 Feb 2026 04:40:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 258cd1de-0d90-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771504817; x=1772109617; 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=e/hnJGsbYECh62D+eq9NM/uLdPm+ckbQThjyfCBxx5I=;
        b=bYeM98bjpZHzjNpMfYZPkO0z2jygO2A3VOqyddyCpiOw+r5i4gjCUM0t3XMvN+JCzl
         toXR4CnMQrnF3p7vH91IS0bJ4iPnpod/d6c0GQm6BVNv7Zq/aQlLOVIYr2sk8rwkV4vl
         kKJoa6vneGql/uR87ZYG6z3WPLKEiB88WiyvHXhioRwMgsqz7R6yF+UPSIJg/paaG0Vc
         PRwkDH4pRX+A39N8kt6qgbN59i8D3Q01vpoaqNyGFFCsAZ/ZhMRDVF2bRSb8zwKkU8/1
         JLHbggJcvPGZSUU2dd+fSqssr79H5NbYhIOYGrbEAsmnvHzxqY9GF+RRMJgaYNhqyx0F
         KAJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771504817; x=1772109617;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e/hnJGsbYECh62D+eq9NM/uLdPm+ckbQThjyfCBxx5I=;
        b=POhco86qhjOkmz8A3cAh8Qe7AwFVP2MUZGrNcrf4QImTUpeAECz82AfEUMyuqp4N2U
         SKZSRvs7PT+FXO1tjkThoFv5SpmCVesrDOTJR75p12teigZ9EEuMBcVQvKuYidhESf6G
         Vxtt6+CjykGngpfsGQyiCSzuakfMgWaj5lxgdHfVFQZ3UWhWUnF413vf5yiVsZFq7vKi
         N/HcA3X00O/Zgn8cb8PZgiH2rYbn7+/yRsm+wOXFUoVn1uDWyjrg3rmXMdKOPrE37BmD
         cC1tQfp8J7AhEx7JncZbQ4JskkNOk66YxI9ymLuKueWvMo0sYZ839PZdTu1dXC8OrTBg
         RdRw==
X-Gm-Message-State: AOJu0YyZ7NbBcwFw5DotecTM9xBTC18sckC2PRbD64t0h2MDCjQgl0g+
	EmJMoBlPJPLqGAp1w+7wdHBEVREEeq0HVFOBb8gzf8QK4cBTirmwh+ANVlp2+Q==
X-Gm-Gg: AZuq6aKAF0MLdLzYaA39RDfuIbRCKcZtLeBkQaVd0KwVjXDQVLuxwfhpzzRn9xjJrhI
	cV8+Hudbhavhc5ieY7SkGzl9zVxsfWqEW8RXyEcjR2bHDRNonNHf6cVO74W/1LwHGptHY/C7nQS
	6IcddIKvdOI91XSvV9y3KZqfvjzDNdhycCD5DZBqwJNSPYvrYexqEiWL9NP6To9w0J1nk4mhf7Y
	KWibhRTr8SNAyaqy6zdqC7ZzJE9YaWV16I8Pv9BR9d9GjdwvBfp2wprpi7g3+YwRU8T43V/7BZJ
	w49YBF7IGWOfw+ywBeHPHnVzYgQUf5ND3KEyg98ci/xeKOBxixii+TFso0u4gK4cNXri+1fJdDr
	tJjpfZVYedogbkWG72ZdEQKSUeL8gG/N5YHWFe8P9Ez90WlwvCopaKCtzjZiXIdmWqZ/WKrbURB
	X9Uf58h1Ky5S+j02eVQV+mEzmFQOCBFKAZowv/KTLJyRQpUjf1q7uuHlKLO2pxlhVbmw==
X-Received: by 2002:a05:6000:601:b0:430:f742:fbb8 with SMTP id ffacd0b85a97d-43958e02bcdmr8913730f8f.21.1771504817136;
        Thu, 19 Feb 2026 04:40:17 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4] xen/riscv: add p2m context switch handling for VSATP and HGATP
Date: Thu, 19 Feb 2026 13:40:06 +0100
Message-ID: <5756356294dc066d835269334d0f3347fe24cec4.1771504676.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce helpers to manage VS-stage and G-stage translation state during
vCPU context switches.

As VSATP and HGATP cannot be updated atomically, clear VSATP on context
switch-out to prevent speculative VS-stage translations from being associated
with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
required order.

Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
only when required (e.g. on VMID reuse or generation change).

This provides the necessary infrastructure for correct p2m context switching
on RISC-V.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v4:
 - in p2m_handle_vmenter():
   - Drop call of flush_tlb_guest_local() as it isn't necessary.
   - use 'unsigned short' for old_vmid and new_vmid.
   - Rename local variable c to curr.
   - Update the comments inside the function.
 - Update the comment above p2m_ctxt_swithch_from() as we don't care about
   the order while *_ctxt_switch_from happens as CSR_* registers aren't being
   updated and only stored. (Only CSR_VSATP is set to 0 to prevent speculation
   when *_ctxt_switch_to() functions will be called) We only care that
   p2m_ctxt_switch_from() is called before CRSs restoring is started.
 - Update the comment inside p2m_ctxt_switch_from().
 - p2m_ctxt_switch_to() updates:
   - Update the comment above.
   - Add call of flush_tlb_guest_local() after setting of VSATP to avoid usage
     of stale translations for new vCPU.
 - Rebase on top of staging, so check_for_pcpu_work() is introduced here
   instead of vtimer patch series.
---
Changes in v3:
 - Add comment above p2m_ctxt_switch_{to, from}().
 - Code style fixes.
 - Refactor p2m_ctxt_switch_to().
 - Update the comment at the end of p2m_ctxt_switch_from().
 - Refactor the code of p2m_handle_vmenter().
---
Changes in v2:
 - Add vsatp field declaration to arch_vcpu.
 - s/p2m_ctx_switch_{from,to}/p2m_ctxt_switch_{from,to}.
 - Introduce p2m_handle_vmenter() for proper handling of VMID,
   hgatp and vsatp updates.
 - Introduce is_p2m_switch_finished and init it inisde
   p2m_ctx_switch_to() for furhter handling in p2m_handle_vmenter().
 - Code style fixes.
 - Add is_idle_vcpu() check in p2m_ctxt_switch_from().
 - use csr_swap() in p2m_ctxt_switch_from().
 - move flush_tlb_guest_local() to the end if p2m_handle_vmenter() and
   drop unnessary anymore comments.
 - Correct printk()'s arguments in p2m_handle_vmenter().
---
 xen/arch/riscv/include/asm/domain.h |   2 +
 xen/arch/riscv/include/asm/p2m.h    |   4 ++
 xen/arch/riscv/p2m.c                | 100 ++++++++++++++++++++++++++++
 xen/arch/riscv/traps.c              |   8 +++
 4 files changed, 114 insertions(+)

diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index f78f145258d6..5aec627a7adb 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -48,6 +48,8 @@ struct arch_vcpu {
     } xen_saved_context;
 
     struct cpu_info *cpu_info;
+
+    register_t vsatp;
 };
 
 struct paging_domain {
diff --git a/xen/arch/riscv/include/asm/p2m.h b/xen/arch/riscv/include/asm/p2m.h
index f63b5dec99b1..60f27f9b347e 100644
--- a/xen/arch/riscv/include/asm/p2m.h
+++ b/xen/arch/riscv/include/asm/p2m.h
@@ -255,6 +255,10 @@ static inline bool p2m_is_locked(const struct p2m_domain *p2m)
 struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
                                         p2m_type_t *t);
 
+void p2m_ctxt_switch_from(struct vcpu *p);
+void p2m_ctxt_switch_to(struct vcpu *n);
+void p2m_handle_vmenter(void);
+
 #endif /* ASM__RISCV__P2M_H */
 
 /*
diff --git a/xen/arch/riscv/p2m.c b/xen/arch/riscv/p2m.c
index 0abeb374c110..89e5db606fc8 100644
--- a/xen/arch/riscv/p2m.c
+++ b/xen/arch/riscv/p2m.c
@@ -1434,3 +1434,103 @@ struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t gfn,
 
     return get_page(page, p2m->domain) ? page : NULL;
 }
+
+/*
+ * Must be called before restoring CSRs to avoid potential speculation using
+ * an incorrect set of page tables during updates of VSATP and HGATP.
+ */
+void p2m_ctxt_switch_from(struct vcpu *p)
+{
+    if ( is_idle_vcpu(p) )
+        return;
+
+    /*
+     * 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 what will be done in
+     * p2m_ctxt_switch_to().
+     * Note, that also HGATP update could happen in p2m_handle_vmenter().
+     */
+    p->arch.vsatp = csr_swap(CSR_VSATP, 0);
+
+    /*
+     * Nothing to do with HGATP as it will be update in p2m_ctxt_switch_to()
+     * or/and in p2m_handle_vmenter().
+     */
+}
+
+/*
+ * As speculation may occur at any time, an incorrect set of page tables could
+ * be used. Therefore, this function must be called only after all other guest
+ * CSRs have been restored. Otherwise, VS-stage translations could be populated
+ * using stale control state (e.g. SEPC still referring to the previous guest)
+ * while VSATP and HGATP already point to the new guest.
+ */
+void p2m_ctxt_switch_to(struct vcpu *n)
+{
+    struct p2m_domain *p2m = p2m_get_hostp2m(n->domain);
+
+    if ( is_idle_vcpu(n) )
+        return;
+
+    csr_write(CSR_HGATP, construct_hgatp(p2m, n->arch.vmid.vmid));
+    /*
+     * As VMID is unique per vCPU and just re-used here thereby there is no
+     * need for G-stage TLB flush here.
+     */
+
+    csr_write(CSR_VSATP, n->arch.vsatp);
+
+    /*
+     * Since n->arch.vsatp.ASID may equal p->arch.vsatp.ASID,
+     * flush the VS-stage TLB to prevent the new guest from
+     * using stale (not belongs to it) translations.
+     * ASID equality is not the only potential issue here.
+     *
+     * TODO: This could be optimized by making the flush
+     *       conditional.
+     */
+    flush_tlb_guest_local();
+}
+
+void p2m_handle_vmenter(void)
+{
+    struct vcpu *curr = current;
+    struct p2m_domain *p2m = p2m_get_hostp2m(curr->domain);
+    struct vcpu_vmid *p_vmid = &curr->arch.vmid;
+    unsigned short old_vmid, new_vmid;
+    bool need_flush;
+
+    BUG_ON(is_idle_vcpu(curr));
+
+    old_vmid = p_vmid->vmid;
+    need_flush = vmid_handle_vmenter(p_vmid);
+    new_vmid = p_vmid->vmid;
+
+#ifdef P2M_DEBUG
+    printk("%pv: oldvmid(%d) new_vmid(%d), need_flush(%d)\n",
+           curr, old_vmid, new_vmid, need_flush);
+#endif
+
+    /*
+     * There is no need to set VSATP to 0 to stop speculation before updating
+     * HGATP, as VSATP is not modified here.
+     */
+    if ( old_vmid != new_vmid )
+        csr_write(CSR_HGATP, construct_hgatp(p2m, p_vmid->vmid));
+
+    /*
+     * There is also no need to flush G-stage TLB unconditionally as old VMID
+     * won't be reused until need_flush is set to true.
+     */
+    if ( unlikely(need_flush) )
+        local_hfence_gvma_all();
+
+    /*
+     * There is also no need to flush the VS-stage TLB: even if speculation
+     * occurs (VSATP + old HGATP were used), it will use the old VMID, which
+     * won't be reused until need_flush is set to true.
+     */
+}
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index c81a4f79a0d2..9fca941526f6 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -169,6 +169,11 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
     die();
 }
 
+static void check_for_pcpu_work(void)
+{
+    p2m_handle_vmenter();
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -222,6 +227,9 @@ void do_trap(struct cpu_user_regs *cpu_regs)
         do_unexpected_trap(cpu_regs);
         break;
     }
+
+    if ( cpu_regs->hstatus & HSTATUS_SPV )
+        check_for_pcpu_work();
 }
 
 void vcpu_show_execution_state(struct vcpu *v)
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 12:44:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 12:44:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236231.1538971 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt3On-0007sb-05; Thu, 19 Feb 2026 12:44:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236231.1538971; Thu, 19 Feb 2026 12: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 1vt3Om-0007sU-TZ; Thu, 19 Feb 2026 12:44:52 +0000
Received: by outflank-mailman (input) for mailman id 1236231;
 Thu, 19 Feb 2026 12:44: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=P5se=AX=bounce.vates.tech=bounce-md_30504962.699705bf.v1-a51c4b1ad364496ab8140e652e13eaad@srs-se1.protection.inumbo.net>)
 id 1vt3Ol-0007sM-L7
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 12:44:51 +0000
Received: from mail187-15.suw11.mandrillapp.com
 (mail187-15.suw11.mandrillapp.com [198.2.187.15])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c66ac20f-0d90-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 13:44:49 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-15.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fGtPW2c27zPm0j4M
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 12:44:47 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a51c4b1ad364496ab8140e652e13eaad; Thu, 19 Feb 2026 12:44: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: c66ac20f-0d90-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771505087; x=1771775087;
	bh=ekWC7xbCItHTVzn4dwCJQg3s6mD0YG5ENhFdY0aWNz4=;
	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=e0T40mm+9tjpxFrxDRrbShiZc7ptlQtvldKDeh7c/bJHmxyI37g+pQn+uuAg+h2Y7
	 bS3ECWlk1a23/UgtFFLvLRKmE6ByNlH2NS3MVJhOwTQta/eOKvqLh3rqtTQcybhqxY
	 GvQWPgSiCplAWqvLhc8kuZvcR/Wj/TPg8y7sxJ4l20N8MVJpGKFXbLqfbY4pTR/nL8
	 qyxF6l6Zrf86z9JSB9X2aINUIoB0O9retu5Iq4IdoXENPm3XFGMrzUg1czfEeeMi+H
	 d3aH7ZIWCImsm2Q8xTsa/AMCsj+FNbHhyX5sAkBFC96LmpZlj6lPMLmGTkU8iPFMRf
	 6rdgCnYi8yJrw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771505087; x=1771765587; i=julian.vetter@vates.tech;
	bh=ekWC7xbCItHTVzn4dwCJQg3s6mD0YG5ENhFdY0aWNz4=;
	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=wbTIi4ceiE5yhOIngd9xgYNx9XGvCUo/2nUSf/wZ7HBUa+78OThcGhm55Eo0hIN2E
	 LjUQWK/Xt2BqokGNksPn0h9z2Z7YtWoNtNrdyTFcJkPGr+nsDsFK3krESadOjhrS5O
	 XVQx6c3E+eIaFhjwgXZlrFSVmD2vfi+PcQyjkdCchrQxFXjf3RXX6LOWYPu1yZtr3Q
	 8M3cZezYOB/7rfYG1MGTiraDoDTdNFEkScnFRz71bzuvMruka4+X8v/jLEDA7Rtshv
	 js9VV4y1CDYhJsOb6X3WmDllzn8MXnswupJ1MONHRyOTP/EQOdxK7O1cSPNMn6qBJq
	 x2/QjV9Z+t/JA==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/hvm:=20Advertise=20and=20support=20extended=20destination=20IDs=20for=20MSI/IO-APIC?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771505086332
Message-Id: <993fafc6-330b-4680-8284-983efb7694f8@vates.tech>
To: "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>
References: <20260209113412.2603088-1-julian.vetter@vates.tech> <aYneEnAa-LqQt8Gm@Mac.lan>
In-Reply-To: <aYneEnAa-LqQt8Gm@Mac.lan>
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.a51c4b1ad364496ab8140e652e13eaad?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260219:md
Date: Thu, 19 Feb 2026 12:44:47 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable



On 2/9/26 14:16, Roger Pau Monn=C3=A9 wrote:
> On Mon, Feb 09, 2026 at 11:34:18AM +0000, Julian Vetter wrote:
>> x2APIC guests with more than 128 vCPUs have APIC IDs above 255, but MSI
>> addresses and IO-APIC RTEs only provide an 8-bit destination field.
>> Without extended destination ID support, Linux limits the maximum usable
>> APIC ID to 255, refusing to bring up vCPUs beyond that limit. So,
>> advertise XEN_HVM_CPUID_EXT_DEST_ID in the HVM hypervisor CPUID leaf,
>> signalling that guests may use MSI address bits 11:5 and IO-APIC RTE
>> bits 55:49 as additional high destination ID bits. This expands the
>> destination ID from 8 to 15 bits.
>>
>> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
>> ---
>>   xen/arch/x86/cpuid.c                   |  9 +++++++++
>>   xen/arch/x86/hvm/irq.c                 | 11 ++++++++++-
>>   xen/arch/x86/hvm/vioapic.c             |  2 +-
>>   xen/arch/x86/hvm/vmsi.c                |  4 ++--
>>   xen/arch/x86/include/asm/hvm/hvm.h     |  4 ++--
>>   xen/arch/x86/include/asm/hvm/vioapic.h | 13 +++++++++++++
>>   xen/arch/x86/include/asm/msi.h         |  3 +++
>>   7 files changed, 40 insertions(+), 6 deletions(-)
>>
>> diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
>> index d85be20d86..fb17c71d74 100644
>> --- a/xen/arch/x86/cpuid.c
>> +++ b/xen/arch/x86/cpuid.c
>> @@ -148,6 +148,15 @@ static void cpuid_hypervisor_leaves(const struct vc=
pu *v, uint32_t leaf,
>>           res->a |=3D XEN_HVM_CPUID_DOMID_PRESENT;
>>           res->c =3D d->domain_id;
>>   
>> +        /*
>> +         * Advertise extended destination ID support. This allows guest=
s to use
>> +         * bits 11:5 of the MSI address and bits 55:49 of the IO-APIC R=
TE for
>> +         * additional destination ID bits, expanding the addressable AP=
IC ID
>> +         * range from 8 to 15 bits. This is required for x2APIC guests =
with
>> +         * APIC IDs > 255.
>> +         */
>> +        res->a |=3D XEN_HVM_CPUID_EXT_DEST_ID;
> 
> This cannot be unilaterally advertised: you need a QEMU (or in general
> any device model that manages PCI passthrough) to understand the
> extended destination mode.  This requires the introduction of
> a new XEN_DOMCTL_bind_pt_irq equivalent hypercall, that can take an
> extended destination ID not limited to 256 values:
> 
> struct xen_domctl_bind_pt_irq {
> [...]
>               uint32_t gflags;
> #define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK 0x0000ff
> 
> When doing PCI passthrough it's QEMU the entity that decodes the MSI
> address and data fields, and hence would need expanding (and
> negotiation with Xen) about whether the Extended ID feature can be
> advertised.
> 
> It would be good to introduce a new XEN_DMOP_* set of hypercalls that
> support Extended ID to do the PCI passthrough interrupt binding.

Thank you for your feedback. But wouldn't it be enough if QEMU extracts 
the additional bits from the gflags and pass it on to XEN? In 
pt_irq_create_bind I already extract the additional bits. In QEMU the 
function msi_dest_id would just need to extract the additional bits 
before calling xc_domain_update_msi_irq. The gflags argument in 
xc_domain_update_msi_irq is 32Bits, so there is enough room to pass the 
additional bits. What do you think?

Thank you
Julian

> 
> Thanks, Roger.



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:08:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:08:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236249.1538981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt3lu-0002jL-PV; Thu, 19 Feb 2026 13:08:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236249.1538981; Thu, 19 Feb 2026 13:08: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 1vt3lu-0002jE-MI; Thu, 19 Feb 2026 13:08:46 +0000
Received: by outflank-mailman (input) for mailman id 1236249;
 Thu, 19 Feb 2026 13:08: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=yoN0=AX=bounce.vates.tech=bounce-md_30504962.69970b58.v1-bb76dc39ba5247aa8f7d123dbbb7a841@srs-se1.protection.inumbo.net>)
 id 1vt3lt-0002j8-Jl
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:08:45 +0000
Received: from mail145-20.atl61.mandrillapp.com
 (mail145-20.atl61.mandrillapp.com [198.2.145.20])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1d0b5caf-0d94-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 14:08:42 +0100 (CET)
Received: from pmta06.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1])
 by mail145-20.atl61.mandrillapp.com (Mailchimp) with ESMTP id
 4fGtx472t9zCf9KLH
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 13:08:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 bb76dc39ba5247aa8f7d123dbbb7a841; Thu, 19 Feb 2026 13:08: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: 1d0b5caf-0d94-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771506521; x=1771776521;
	bh=/fo12rAPwmkJaFjqfpPkWAjleZNdG1jgC/lHmOpnuYs=;
	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=ePKgnaMeaEllxd5sF2U8uuqH8FnHCjy6Ze3YFPX2Dwih3zwe25zJBqGUcqmfsd2L4
	 H80KhC6OLtAyEuLdAPkKll0SL9ClyPHYbeyDb8mA8LJeyugm3YAgE3ubp6GqYfyEnX
	 dO5CuwFsTOq+Ui0V6b34KTYyTXLDaekY/F1AMbP33z+Py+EEaMNRkGItml0ZhnBGVL
	 IUE/LnLgk618YCuL9/iT+EwUpclJxRXxhyHM/s8lRsHKHCRQmBebvBlPD6vRzz48WV
	 QrvjiZhABcV7o39OPOjxkd87J5M17DSbg801e4wN8f8u5UGnDzPnfBfXs76+drh/wG
	 RXsA2ZEaFYLIQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771506521; x=1771767021; i=julian.vetter@vates.tech;
	bh=/fo12rAPwmkJaFjqfpPkWAjleZNdG1jgC/lHmOpnuYs=;
	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=jLeATzysIUb8DC2nIT7lVvggQHNR0fkA2zLUr/xmFwJIeyLOTw7HejwUZ72mkX3JS
	 7zhc2yRX2soGZ9MsdVtY/1BUS6HDAOQjHMp3l3eZCAx3JsmaLmM2LpKPGNB/eLoOmn
	 PS01t4PT7W6zL/bF5RyK2liS8BUyxVxMk9GuuRS+oQABnp67YqNRfs1mTvqfRrfkIZ
	 91OBWyOpNL1T5lNEFFatzPuEZsWBRUXR8BCgQkN5zWewNfHn59VUneyyuovYftJByy
	 TayYWzgiyEA+H83aZmeK3tHgSZACbQPqh6eKeF34KSF/uzdWPLkIMR/qMchbCo8OB2
	 JUKZy/dXf+5QQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/hvm:=20Advertise=20and=20support=20extended=20destination=20IDs=20for=20MSI/IO-APIC?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771506519994
Message-Id: <d3b71e9b-c026-4cda-99cc-a8037f302bd5@vates.tech>
To: "Teddy Astie" <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
References: <20260209113412.2603088-1-julian.vetter@vates.tech> <87be26c1-52fe-438f-8aad-1d5ea0f0a325@vates.tech>
In-Reply-To: <87be26c1-52fe-438f-8aad-1d5ea0f0a325@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.bb76dc39ba5247aa8f7d123dbbb7a841?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260219:md
Date: Thu, 19 Feb 2026 13:08:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 2/9/26 14:40, Teddy Astie wrote:
> Hello,
> 
> Some comments, mostly code style, nothing functionnal.
> 
> Le 09/02/2026 =C3=A0 12:36, Julian Vetter a =C3=A9crit=C2=A0:
>> x2APIC guests with more than 128 vCPUs have APIC IDs above 255, but MSI
>> addresses and IO-APIC RTEs only provide an 8-bit destination field.
>> Without extended destination ID support, Linux limits the maximum usable
>> APIC ID to 255, refusing to bring up vCPUs beyond that limit. So,
>> advertise XEN_HVM_CPUID_EXT_DEST_ID in the HVM hypervisor CPUID leaf,
>> signalling that guests may use MSI address bits 11:5 and IO-APIC RTE
>> bits 55:49 as additional high destination ID bits. This expands the
>> destination ID from 8 to 15 bits.
>>
>> Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
>> ---
>>    xen/arch/x86/cpuid.c                   |  9 +++++++++
>>    xen/arch/x86/hvm/irq.c                 | 11 ++++++++++-
>>    xen/arch/x86/hvm/vioapic.c             |  2 +-
>>    xen/arch/x86/hvm/vmsi.c                |  4 ++--
>>    xen/arch/x86/include/asm/hvm/hvm.h     |  4 ++--
>>    xen/arch/x86/include/asm/hvm/vioapic.h | 13 +++++++++++++
>>    xen/arch/x86/include/asm/msi.h         |  3 +++
>>    7 files changed, 40 insertions(+), 6 deletions(-)
>>
>> diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
>> index d85be20d86..fb17c71d74 100644
>> --- a/xen/arch/x86/cpuid.c
>> +++ b/xen/arch/x86/cpuid.c
>> @@ -148,6 +148,15 @@ static void cpuid_hypervisor_leaves(const struct vc=
pu *v, uint32_t leaf,
>>            res->a |=3D XEN_HVM_CPUID_DOMID_PRESENT;
>>            res->c =3D d->domain_id;
>>    
>> +        /*
>> +         * Advertise extended destination ID support. This allows guest=
s to use
>> +         * bits 11:5 of the MSI address and bits 55:49 of the IO-APIC R=
TE for
>> +         * additional destination ID bits, expanding the addressable AP=
IC ID
>> +         * range from 8 to 15 bits. This is required for x2APIC guests =
with
>> +         * APIC IDs > 255.
>> +         */
>> +        res->a |=3D XEN_HVM_CPUID_EXT_DEST_ID;
>> +
>>            /*
>>             * Per-vCPU event channel upcalls are implemented and work
>>             * correctly with PIRQs routed over event channels.
>> diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
>> index 5f64361113..2cc14d37d4 100644
>> --- a/xen/arch/x86/hvm/irq.c
>> +++ b/xen/arch/x86/hvm/irq.c
>> @@ -374,7 +374,16 @@ int hvm_set_pci_link_route(struct domain *d, u8 lin=
k, u8 isa_irq)
>>    int hvm_inject_msi(struct domain *d, uint64_t addr, uint32_t data)
>>    {
>>        uint32_t tmp =3D (uint32_t) addr;
>> -    uint8_t  dest =3D (tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID=
_SHIFT;
>> +    /*
>> +     * Standard MSI destination: address bits 19:12 (8 bits).
>> +     * Extended MSI destination: address bits 11:5 (7 more bits).
>> +     * When XEN_HVM_CPUID_EXT_DEST_ID is advertised, the guest may use
>> +     * bits 11:5 for high destination ID bits, expanding to 15 bits tot=
al.
> 
> As we always advertise XEN_HVM_CPUID_EXT_DEST_ID, I would rather say
> 
>   > As XEN_HVM_CPUID_EXT_DEST_ID is advertised, ...
> 
>> +     * For legacy guests these bits are 0, so this is backwards-compati=
ble.
> 
> "Guests unaware of this feature set these bits to 0, ..."
> 
>> +     */
>> +    uint32_t dest =3D
>> +        (((tmp & MSI_ADDR_EXT_DEST_ID_MASK) >> MSI_ADDR_EXT_DEST_ID_SHI=
FT) << 8) |
>> +        ((tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT);
> 
> I wonder if we should introduce a macro like you did for IO-APIC
> (VIOAPIC_RTE_DEST).
> 
>>        uint8_t  dest_mode =3D !!(tmp & MSI_ADDR_DESTMODE_MASK);
>>        uint8_t  delivery_mode =3D (data & MSI_DATA_DELIVERY_MODE_MASK)
>>            >> MSI_DATA_DELIVERY_MODE_SHIFT;
>> diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
>> index 7c725f9e47..263b1bd5cb 100644
>> --- a/xen/arch/x86/hvm/vioapic.c
>> +++ b/xen/arch/x86/hvm/vioapic.c
>> @@ -411,7 +411,7 @@ static void ioapic_inj_irq(
>>    
>>    static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int=
 pin)
>>    {
>> -    uint16_t dest =3D vioapic->redirtbl[pin].fields.dest_id;
>> +    uint32_t dest =3D VIOAPIC_RTE_DEST(vioapic->redirtbl[pin].bits);
> 
> I would rather introduce a new field in vioapic_redir_entry for the
> extended dest part; and compute dest from that and dest_id.

Here I have a question. This struct is a public ABI struct. 
vioapic_redir_entry is defined in 
xen/include/public/arch-x86/hvm/save.h. It's part of XENs VM 
save/restore operation. It is used by libxc and toolstacks to migrate 
VMs between hosts. Changing the struct might be undesirable? Yes, it 
would make the code cleaner. having a bit entry for the extended dest 
bits. What's the general opinion on this? With the VIOAPIC_RTE_DEST 
macro I avoided touching this struct...

> 
>>        uint8_t dest_mode =3D vioapic->redirtbl[pin].fields.dest_mode;
>>        uint8_t delivery_mode =3D vioapic->redirtbl[pin].fields.delivery_=
mode;
>>        uint8_t vector =3D vioapic->redirtbl[pin].fields.vector;
>> diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
>> index 27b1f089e2..dca191b4f1 100644
>> --- a/xen/arch/x86/hvm/vmsi.c
>> +++ b/xen/arch/x86/hvm/vmsi.c
>> @@ -66,7 +66,7 @@ static void vmsi_inj_irq(
>>    
>>    int vmsi_deliver(
>>        struct domain *d, int vector,
>> -    uint8_t dest, uint8_t dest_mode,
>> +    uint32_t dest, uint8_t dest_mode,
>>        uint8_t delivery_mode, uint8_t trig_mode)
>>    {
>>        struct vlapic *target;
>> @@ -125,7 +125,7 @@ void vmsi_deliver_pirq(struct domain *d, const struc=
t hvm_pirq_dpci *pirq_dpci)
>>    }
>>    
>>    /* Return value, -1 : multi-dests, non-negative value: dest_vcpu_id *=
/
>> -int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t des=
t_mode)
>> +int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t de=
st_mode)
>>    {
>>        int dest_vcpu_id =3D -1, w =3D 0;
>>        struct vcpu *v;
>> diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/a=
sm/hvm/hvm.h
>> index 7d9774df59..11256d5e67 100644
>> --- a/xen/arch/x86/include/asm/hvm/hvm.h
>> +++ b/xen/arch/x86/include/asm/hvm/hvm.h
>> @@ -295,11 +295,11 @@ uint64_t hvm_get_guest_time_fixed(const struct vcp=
u *v, uint64_t at_tsc);
>>    
>>    int vmsi_deliver(
>>        struct domain *d, int vector,
>> -    uint8_t dest, uint8_t dest_mode,
>> +    uint32_t dest, uint8_t dest_mode,
>>        uint8_t delivery_mode, uint8_t trig_mode);
>>    struct hvm_pirq_dpci;
>>    void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *=
pirq_dpci);
>> -int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t des=
t_mode);
>> +int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t de=
st_mode);
>>    
>>    enum hvm_intblk
>>    hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack);
>> diff --git a/xen/arch/x86/include/asm/hvm/vioapic.h b/xen/arch/x86/inclu=
de/asm/hvm/vioapic.h
>> index 68af6dce79..b49eb348d5 100644
>> --- a/xen/arch/x86/include/asm/hvm/vioapic.h
>> +++ b/xen/arch/x86/include/asm/hvm/vioapic.h
>> @@ -32,6 +32,19 @@
>>    #define VIOAPIC_EDGE_TRIG  0
>>    #define VIOAPIC_LEVEL_TRIG 1
>>    
>> +/*
>> + * Extract the destination ID from a 64-bit IO-APIC RTE, including the
>> + * extended bits (55:49) used when XEN_HVM_CPUID_EXT_DEST_ID is adverti=
sed.
>> + */
>> +#define IO_APIC_REDIR_DEST_SHIFT        56
>> +#define IO_APIC_REDIR_DEST_MASK         0xffULL
>> +#define IO_APIC_REDIR_EXT_DEST_SHIFT    49
>> +#define IO_APIC_REDIR_EXT_DEST_MASK     0x7fULL
>> +
>> +#define VIOAPIC_RTE_DEST(rte) \
>> +    ((((rte) >> IO_APIC_REDIR_DEST_SHIFT) & IO_APIC_REDIR_DEST_MASK) | =
\
>> +     (((rte) >> IO_APIC_REDIR_EXT_DEST_SHIFT) & IO_APIC_REDIR_EXT_DEST_=
MASK) << 8)
>> +
>>    #define VIOAPIC_DEFAULT_BASE_ADDRESS  0xfec00000U
>>    #define VIOAPIC_MEM_LENGTH            0x100
>>    
>> diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/m=
si.h
>> index 00059d4a3a..b7a132e5b5 100644
>> --- a/xen/arch/x86/include/asm/msi.h
>> +++ b/xen/arch/x86/include/asm/msi.h
>> @@ -54,6 +54,9 @@
>>    #define=09 MSI_ADDR_DEST_ID_MASK=09=090x00ff000
>>    #define  MSI_ADDR_DEST_ID(dest)=09=09(((dest) << MSI_ADDR_DEST_ID_SHI=
FT) & MSI_ADDR_DEST_ID_MASK)
>>    
>> +#define MSI_ADDR_EXT_DEST_ID_SHIFT=095
>> +#define MSI_ADDR_EXT_DEST_ID_MASK=090x0000fe0
>> +
>>    /* MAX fixed pages reserved for mapping MSIX tables. */
>>    #define FIX_MSIX_MAX_PAGES              512
>>    
> 
> 
> 
> --
> Teddy Astie | Vates XCP-ng Developer
> 
> XCP-ng & Xen Orchestra - Vates solutions
> 
> web: https://vates.tech



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:24:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:24:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236259.1538990 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt40P-0005US-Vd; Thu, 19 Feb 2026 13:23:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236259.1538990; Thu, 19 Feb 2026 13: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 1vt40P-0005UL-Sl; Thu, 19 Feb 2026 13:23:45 +0000
Received: by outflank-mailman (input) for mailman id 1236259;
 Thu, 19 Feb 2026 13: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt40O-0005UF-RD
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:23:44 +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 32a74667-0d96-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 14:23:37 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-483a233819aso4401935e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 05:23:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4839ea3eb18sm29201985e9.2.2026.02.19.05.23.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 05:23:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 32a74667-0d96-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771507417; x=1772112217; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y4riueChCcnP0639sNH332Oy7L3XVQmUTrx5BEP8VkA=;
        b=QlnGjNRkL8w9DjBnJQQWZuhi8q3Y7Fwu88enUZsBuEAMt5LK5Cxgdkh9MSQNnoNzSQ
         dM7Ugpzx62amLc5131P9Z9V51of1WueLglFMoioFbbnYIFH+HoWlktiKWP9yk/FjprwB
         aSBo4dhf0V6XntaCfkRabDG9B7Q8wWXDptTb1Xjin/igeRSnZsnmKFUZjgjDs0N2DPpl
         nFSwtoWO0bckctkUqTiBCdYqsQsNiORw7BTSdEf3ICNN8x3SLeH3CwrakydHhma+ausb
         +U85GtUrMEOUiRfrf6rx2iG2E5/gLFwL6uSZpYOaOfCYQyznp+iElir/FcfgbUhgSAxD
         JV1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771507417; x=1772112217;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y4riueChCcnP0639sNH332Oy7L3XVQmUTrx5BEP8VkA=;
        b=NC108BJhOFgyuH7vXE2b1NRIaXyChyTX1L9OH11wZ9DyMgbCuTJz6pgpVzPmIQcXeM
         WDeTvMP6j52IZOD4NjVDxXClHrJVJ+yc/1J4vKy7WnZfaI5cKRvovCs9m+38eu/Ck0Sy
         DH8k/7b9TwR/dNin8kRD9dimjfPIY6e6kIi6Vr+gNJwmOzqfUAxf1uepYPhPrOSCwXid
         IovuI1oQRmbhSUZGgjkRjl3q3xxHRLDwjL392kRy3sUVNRLEiPNg2XHVHRxD4dERxkR4
         NjroUTurxbl1tO5ucqb7XkuM1G0uxxDeP+bz2VONiQakjN1uoXawj/zy1ZX1i0iCegex
         CmmQ==
X-Forwarded-Encrypted: i=1; AJvYcCUDY2HUuEsjUiQAunScqIKvGOVjJoAWppAOmeuo4k7T3+o8C2QjVysMtH1k9jXwVSMc46rz70Xe//k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzg+iPvllbOP9ZGkuw73GUEYCA6aWfbas4OMhivaoNG7jSa7/ij
	HQzEdQiX8XyPktV3Nj2li9EQn9mdmliEjjznsCEorZxHHxytyVilrCoQRV4OcWZzrg==
X-Gm-Gg: AZuq6aJdLUyrY0/GHWnXbA+A9HBpQkFM2Q0PHCgDRrO/1wmW7xrZfk+mveYYUtNGyLs
	L/TjoeJcTynQWAMygDS/RbOwYVR44D3g6VIZwXlK3y3rmVBcytig4OnBb63hEFC1RqVDig+vfFu
	lLZsWHcMDyQEVN0YJPTfn9ZHqTinkbzqVrjxcWVpQxpFgHz+x2pr1Aa8bweE58Z2gJ5fEUD7f8f
	AFAyiri05CQQ9eozgBZMCLcJd+vqm2eU7anhuYtDsmHlNhXguER69q+1LqecJfpFgMvBVGSoslZ
	Qwlc84BCY7MAjAKjX/ngXZkkXku4IgQvIvHjTHKRzQbHJi6upDoHUz+4jtcKdoQ5aHr4+ydARrW
	hCsPXHsx+JpNXPLuvXkfu2/VSqLOfQgBPzMssDNawQZhlw6Rp4026GSxwYQxnLuysYzb7CyCgrG
	5exzjijgSEtNRBq31+hHwmxaczIXuehAnqLgcmsB9yy/8RfVAGRIZetbOYMGk3jriSxxBQ4PGaI
	y02vZdfUnuyGaw=
X-Received: by 2002:a05:600c:3542:b0:477:7bca:8b34 with SMTP id 5b1f17b1804b1-48398a65ed8mr83572285e9.6.1771507416534;
        Thu, 19 Feb 2026 05:23:36 -0800 (PST)
Message-ID: <efb0196d-7b2c-457b-816b-8e7be66429eb@suse.com>
Date: Thu, 19 Feb 2026 14:23:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <afc94229-16d9-442b-974c-9f038f2300a1@suse.com>
 <e176fc10-bc1a-40fe-a129-dc862e964761@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: <e176fc10-bc1a-40fe-a129-dc862e964761@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.02.2026 13:34, Daniel P. Smith wrote:
> On 2/19/26 06:11, Jan Beulich wrote:
>> On 18.02.2026 20:08, Daniel P. Smith wrote:
>>> @@ -238,28 +242,39 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>   
>>>       while ( dom_state_changed )
>>>       {
>>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
>>>           if ( dom >= DOMID_FIRST_RESERVED )
>>>               break;
>>> +
>>> +        d = rcu_lock_domain_by_id(dom);
>>> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
>>> +        {
>>> +            rcu_unlock_domain(d);
>>> +            d = NULL;
>>
>> This looks unnecessary; the next loop iteration will set d unconditionally,
>> and d isn't (and wasn't) used past the loop. Plus there is also no such
>> clearing after the other rcu_unlock_domain().
>>
> 
> If the src domain didn't have the permission on any of the target 
> domains, then *d will leak the last domain checked back to the caller. 
> While I didn't see it being used after the call site, it's a good 
> principle not to leak from a function an object for which access was denied.

I don't follow: What do you mean by "*d will leak"? d is local to this function;
no domain pointer is being returned.

>>> +            continue;
>>> +        }
>>
>> This cleanup here also is redundant with the one done further down. Imo where
>> possible we should prefer to have only a single such instance, which looks to
>> be easily possible by using ...
>>
>>>           if ( test_and_clear_bit(dom, dom_state_changed) )
>>
>>
>>          if ( (!d || !xsm_get_domain_state(XSM_XS_PRIV, d)) &&
>>               test_and_clear_bit(dom, dom_state_changed) )
>>
>> or
>>
>>          if ( (d && xsm_get_domain_state(XSM_XS_PRIV, d)) ||
>>               !test_and_clear_bit(dom, dom_state_changed) )
>>          {
>>               ...
>>               continue;
>>          }
>>
>> albeit then the reduction of indentation of the subsequent code would cause
>> quite a bit more code churn.
> 
> I would prefer the latter to keep the clearing of d to NULL only when 
> access was denied.

I again don't understand, as ...

>>>           {
>>>               *domid = dom;
>>>   
>>> -            d = rcu_lock_domain_by_id(dom);
>>> -
>>>               if ( d )
>>>               {
>>>                   set_domain_state_info(info, d);
>>> -
>>>                   rcu_unlock_domain(d);
>>>               }
>>>               else
>>>                   memset(info, 0, sizeof(*info));
>>>   
>>>               rc = 0;
>>> -
>>>               break;

... this code would remain unchanged apart from the reduced indentation.

>> I don't think the blank lines need dropping for the purpose of the patch?
>> Yes, they may seem excessive, but nevertheless some prefer to have rather
>> too many of them than too few. (Personally I don't mind their removal,
>> but that really doesn't look to belong here.)
> 
> Okay, but as you state above, with the compounding of the if statement, 
> the indentation will go away and the whole section will a remove/add 
> section to the diff. Would you still want the line spacing maintained?

As said, I don't mind those particular blank lines being dropped (if that's
because adjacent lines are touched anyway).

>>> --- a/xen/common/domctl.c
>>> +++ b/xen/common/domctl.c
>>> @@ -860,12 +860,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>>>           break;
>>>   
>>>       case XEN_DOMCTL_get_domain_state:
>>> -        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
>>> -        if ( ret )
>>> -            break;
>>> -
>>> -        copyback = 1;
>>>           ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
>>> +        if ( !ret )
>>> +            copyback = 1;
>>
>> Nit: As you need to touch this, please switch to using "true".
> 
> Just to be clear, you mean switching to a conditional statement vs 
> testing for not zero?

No. I mean using "true" in place of "1", since copyback is of type "bool".

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:29:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:29:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236271.1539000 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt45Q-00064s-LD; Thu, 19 Feb 2026 13:28:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236271.1539000; Thu, 19 Feb 2026 13:28: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 1vt45Q-00064l-IY; Thu, 19 Feb 2026 13:28:56 +0000
Received: by outflank-mailman (input) for mailman id 1236271;
 Thu, 19 Feb 2026 13:28: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt45P-00064f-1F
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:28:55 +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 ef4324a2-0d96-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 14:28:53 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4837584120eso6975755e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 05:28:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4839f99275esm20409615e9.32.2026.02.19.05.28.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 05:28:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef4324a2-0d96-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771507733; x=1772112533; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=VTvhyrVSqQ8mGtDQnqZUA8Y2udFjKolmEo1CZMli84U=;
        b=VCFufQHDEg6NPKP4AINnA46ffPPiDbKLd/Mv67VV5HPtBtHgrhHsSnJHlt37n4jsJB
         QcwFDoSw6vTTLSoEhoLwHW3cDcjhWaZoR2W48cHZICb5CUaUusNBA7FqUskt/LIovURO
         RwsyutO2yuLeSk8VEc79+RxcFDyuDw4yXVNOYMh2YvC8heQwe0jbhSKQQFOwkJa9+X9H
         IGqGzLMUCnhe+vgKM6aEFEmu7A868FKsKbVLgbtb6/50t/wfgsoBlEV6qfRJ5EfTjxbI
         EnfezIIVMDmA2HHUbGNbHp3zjt8QX+dsDGMd1U4bSrxj24Vb9aBnObWjOMDSkdmtyQie
         3+pA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771507733; x=1772112533;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VTvhyrVSqQ8mGtDQnqZUA8Y2udFjKolmEo1CZMli84U=;
        b=ufRWDKzLrEkRSdsilh+0O1p5GYc+OzXguwhOWY1jeommtk+y+y6ILnv95rHU9p9BRW
         shOKC5YljCw55eq5hhI5aBjflxG3V+ZFHyD1gOo39dW0OG+TX1nbf8F38XzYTpvEzMWa
         SNpIDPWZF+yy/+yFrZu3NXNtI9yJspEkvSjYRTq9A+eDocNMkayzUPa0yylbT889njGF
         PwLM8WHy8bGQ5uFRXq4O7+pFnHGW4YbPcbrPLur03abo22dK4D2XSaIG/HTeqNLIzNEm
         UokCDkKy7knJGFbnpIcpk3hMi06mVNALzBInaixd2vjt4s2lhqAxXjxO88AdpydCgr4t
         kUkg==
X-Forwarded-Encrypted: i=1; AJvYcCV6K14yT8AnV50TrMcONO6eR2IyUzHmXQQJTlP8Ptl8n3/xB7AWVRVO+7O1MKa0o+uC8AWUjcYtgSo=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyu6TA0zdwDRAHXXlgCCShVfIqu5w3GFzyXb3cgTQEdl+QQ7a/C
	DZ/0rHJniSwDEegvT+X1Vc4zBbvPWBU7VnXH1xkQUeK6iOc6Ic58UZzkxVtfxh++uQ==
X-Gm-Gg: AZuq6aK54e1aEZh/CrdfZO7kNMGERMCFpKMO/T8AXBNSKQ0CZkEvT+d20S1trBp2Pm0
	uEmg/rZj5nREJhXoT66WlfYzrHTiepzLVu1m4+CL5b++SlE6ggi2PEwwrPPJtf0DPH++BRJW3RX
	Xl0cFDIyzGvpfUbuTS9IJEVDEzBGxggipbfvfXh0c2Aio8Xvq9/1GXCOOnF8vh0XPRBkeI0o8Dg
	4fJGOJxQz1mMMzIXzo95Gvch5o3q1V1NHArH6mnUl/gqxPyV7rQ7Qs/tOM3lJG+1X+HzGiJ+W7t
	kalF/6MnwdKZ8ieWC/qyWrNB38NcNW6FW3R2UMmCKb+xtRpM4JzMeRXrbK1c8R/vXRCPiE9Sec2
	YIToo7tikdxUC8St/VG8cFqoVHN9AoFO+EncAuqA5Qvo8oEG6eBAYwu+bY0FDtoxKjlnW2SBU3B
	3Nu/zR7TEo2aT7HybPYoxEqMv9hvemvpU44p8VJJEta6JYp63Uj9slJNi8F8/EPuAVSMwB0YT+K
	YKXNeSkGljnnz8=
X-Received: by 2002:a05:600c:4eca:b0:483:6d4a:7e6d with SMTP id 5b1f17b1804b1-48379be60camr256555015e9.30.1771507733086;
        Thu, 19 Feb 2026 05:28:53 -0800 (PST)
Message-ID: <eb4363a6-9035-4922-9314-60f4c6ca9309@suse.com>
Date: Thu, 19 Feb 2026 14:28:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Advertise and support extended destination IDs
 for MSI/IO-APIC
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260209113412.2603088-1-julian.vetter@vates.tech>
 <87be26c1-52fe-438f-8aad-1d5ea0f0a325@vates.tech>
 <d3b71e9b-c026-4cda-99cc-a8037f302bd5@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: <d3b71e9b-c026-4cda-99cc-a8037f302bd5@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.02.2026 14:08, Julian Vetter wrote:
> On 2/9/26 14:40, Teddy Astie wrote:
>> Le 09/02/2026 à 12:36, Julian Vetter a écrit :
>>> --- a/xen/arch/x86/hvm/vioapic.c
>>> +++ b/xen/arch/x86/hvm/vioapic.c
>>> @@ -411,7 +411,7 @@ static void ioapic_inj_irq(
>>>    
>>>    static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
>>>    {
>>> -    uint16_t dest = vioapic->redirtbl[pin].fields.dest_id;
>>> +    uint32_t dest = VIOAPIC_RTE_DEST(vioapic->redirtbl[pin].bits);
>>
>> I would rather introduce a new field in vioapic_redir_entry for the
>> extended dest part; and compute dest from that and dest_id.
> 
> Here I have a question. This struct is a public ABI struct. 
> vioapic_redir_entry is defined in 
> xen/include/public/arch-x86/hvm/save.h. It's part of XENs VM 
> save/restore operation. It is used by libxc and toolstacks to migrate 
> VMs between hosts. Changing the struct might be undesirable? Yes, it 
> would make the code cleaner. having a bit entry for the extended dest 
> bits. What's the general opinion on this? With the VIOAPIC_RTE_DEST 
> macro I avoided touching this struct...

Which in turn raises the question: How do you migrate those bits? It looks
like you're losing them.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:29:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:29:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236273.1539011 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt45k-0006Ru-T0; Thu, 19 Feb 2026 13:29:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236273.1539011; Thu, 19 Feb 2026 13:29:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt45k-0006Rn-PG; Thu, 19 Feb 2026 13:29:16 +0000
Received: by outflank-mailman (input) for mailman id 1236273;
 Thu, 19 Feb 2026 13:29: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=f3cq=AX=daemonizer.de=maxi@srs-se1.protection.inumbo.net>)
 id 1vt45i-00064f-Bm
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:29:14 +0000
Received: from mx1.somlen.de (typhoon.somlen.de [89.238.64.140])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f9cb4172-0d96-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 14:29:11 +0100 (CET)
Received: by mx1.somlen.de with ESMTPSA id 6F6F95030D0;
 Thu, 19 Feb 2026 14:29:10 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f9cb4172-0d96-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=daemonizer.de;
	s=202303; t=1771507750;
	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=UYCYLf3Qbb8Q/36IvP2edHC4iIn3vZFJTLRG5oXBiDc=;
	b=pqcQKLJ5mDxPHH5cRkdxCDCkFUghGgX/jSuTidg0OHOB594p5JcDQTU5n306VtUXYytS4K
	OzSl+fnfkaU/ZUnD1J4kEb6xyBKYKCbolcQj6mNWm1gaudbpE+5MLGjWJPsJOS/oW+jjhy
	2ahcWdH0BuipYfPG8HuFB/rKG/dIYC7oJWvaBDAeT4+MJnjj/BYpGdxCKIQjk8cZ1vG7Jt
	XHoYes87ESAfOOXGvhP9pdl4TkAA951cF//4WZ4qlEoWDVpRjIuNDnMDZay/1+6D7HuOo+
	T3pfz+0fFflAyUar2gbY63havN6F0QWuykcF1MU+xFtIN1ZzvEpEgsYZYigKHA==
From: Maximilian Engelhardt <maxi@daemonizer.de>
To: xen-devel@lists.xenproject.org, Anthony PERARD <anthony@xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>,
 Anthony PERARD <anthony.perard@vates.tech>, Juergen Gross <jgross@suse.com>
Subject:
 Re: [XEN PATCH] libxl: Fix device_add QMP calls with QEMU 9.2 and newer
Date: Thu, 19 Feb 2026 14:29:07 +0100
Message-ID: <2692705.Lt9SDvczpP@localhost>
In-Reply-To: <aUAd_r3VN0kTVriG@l14>
References:
 <20251215135124.11410-1-anthony@xenproject.org>
 <92e6ecac-7a5f-4831-8116-0c34856f1175@suse.com> <aUAd_r3VN0kTVriG@l14>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="utf-8"

On Monday, 15 December 2025 15:41:02 CET Anthony PERARD wrote:
> On Mon, Dec 15, 2025 at 03:11:53PM +0100, Jan Beulich wrote:
> > On 15.12.2025 14:51, Anthony PERARD wrote:
> > > From: Anthony PERARD <anthony.perard@vates.tech>
> > > 
> > > QEMU used to ignore JSON types and do conversion string <-> integer
> > > automatically for the command "device_add", but that was removed in
> > > QEMU 9.2 (428d1789df91 ("docs/about: Belatedly document tightening of
> > > QMP device_add checking")).
> > 
> > And older qemu accepts integers as well?
> 
> As the QEMU document explains about the removed feature is that they
> should. We already have two users of `device_add` which use integers for
> some arguments. And just to be sure, I've just tested with QEMU 8.0, the
> patch works fine.
> 
> Cheers,

Can this patch be picked for the stable branches? I'm in particular interested 
in 4.20 which is in Debian stable.

Thanks,
Maxi




From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:32:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:32:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236283.1539021 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt49F-0008Gu-BW; Thu, 19 Feb 2026 13:32:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236283.1539021; Thu, 19 Feb 2026 13:32:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt49F-0008Gn-8r; Thu, 19 Feb 2026 13:32:53 +0000
Received: by outflank-mailman (input) for mailman id 1236283;
 Thu, 19 Feb 2026 13:32: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt49E-0008Gf-Ig
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:32:52 +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 76f64597-0d97-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 14:32:41 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-4359a316d89so897851f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 05:32:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6a5f0sm47607919f8f.11.2026.02.19.05.32.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 05:32:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76f64597-0d97-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771507961; x=1772112761; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=D2BHd7Sv4IM4c8Ibb0YVId0A315k/0mVhPcFAEmtr7o=;
        b=QZ4faIAGMcheelegDjh6m+8JA7Zpg4LzHjVmIModLI1YI/6LC/jkDeCJ/f+oCFcU3s
         tLewpd4SPfCvdbRtWeRxDk6LqNirtbeAk+1ahUIdn1kErQiW7cEn7bFdi/hvre06GZHc
         E0odNo0PjL1hBJQ0wgzD9VuCWhUGEinfc3IHlgLrNzVxqVzJkVy1ziArAvtG29f5I3dG
         IHHWqfrbDQw7UbJMvAF4XysUTJeBhzWtFR8wQZQIjChUoYYcHWDSqhgomj0bj4zbUNob
         ij/pGOIssvfDcsJfwg4CVcpTKbkdWjMRBToTDJwfraNi3Yzguu5SYHtcbc+r7l3XrOlA
         +Fdg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771507961; x=1772112761;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=D2BHd7Sv4IM4c8Ibb0YVId0A315k/0mVhPcFAEmtr7o=;
        b=YtVSPIhO8sZ4Dno6Uw+hx1FNo3isVFLW9Su4EBQfiMDZD3BMm59bD+9vWPH+mH/VeK
         CkZfeYC0bBdsibdcT/EJGe6dk9stJt6Z2fXRXeafMWrkaXa5MXeN3hwMtI/6wnYPkoBF
         ovQNfVIauufhNWwiP9fYnoR2UtItH2zN2ci9OZnUePZjedwkIa8YDjJrE3e4f9gyxdrM
         1CAypPZLgm9V0w0c1iOkQkqaThX7Z5uMVRuNNpF0c4t/96jsoGrTvo2UxP5fL38MmxXw
         Uz8iNt5Kh0sqxVOf5quDp53osqYGTdVv7mNDARZQF0aSv16vC6DGOyEcCdw2zoaMUnYe
         UgyQ==
X-Forwarded-Encrypted: i=1; AJvYcCWFykFMHrCEkNnrcJ8NZmo340B4kQ3DyWtckqyqwOxwn+w9sGDE9Q1I2SvuJeRbjWmnEBWB/u9Aa90=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywu6lsli95jhT74hrpdRItuawJthw1VszOCSGEUy8QJt3PT2Xao
	0bNO80bnxlGpWkdBIaVfX8Yyp7FTejurixhZiURGx4t+vEbPmDQY8/b812rjse+0/g==
X-Gm-Gg: AZuq6aLAPW5Xz7iGnMQjrxlEIKvzBS51QSyXj9ayk2c0ia8DIuFfcx0MU/Fh3zqDNsn
	q9U2YicvihAtpV+oZza13sDhnBtbatXR0fAWr4dlzu+HdSekhWNfQeNb7y5aqThXEagSPd5dc9b
	+93CCf3ToylsFEcUhIYAwon2qUhiUa2o5J2wvELyB5vPsnIdRVBJDnOf+dIYvHZzmSVBgwxl3Qn
	J5EOUSc+Sx3HKh7Qbysgyqh7dZxyvUoS6cKwZ5yMKELJV3NvvIyFnVBsczcWpx9KIy3VHTId0xZ
	k7eGYvT0qrSaG7HNhsU3he+GHQOaQQVSnpyfmU555TV2Swe+LigZJMbvgKTWXfdJHXgP6S1kJ3E
	lL0AxDGrcpHBMaB2dhZaxxu7X/I1y2HA//DnrWzn7eXrP5d5UzOriWtnjvsk1y/+pqv4rhUJwNW
	qcl5YuvqwS3HGVYrVK7WAkKi2cbNs7oBXLhywjLrIsSl+7RBemsHqYoqnhAPOtQFCJBiBgE2KNQ
	96uA2mxqXbdeyI=
X-Received: by 2002:a05:6000:402a:b0:437:6b73:ffa9 with SMTP id ffacd0b85a97d-43958df2189mr10647635f8f.5.1771507960686;
        Thu, 19 Feb 2026 05:32:40 -0800 (PST)
Message-ID: <8f7bafe8-c27e-45c3-8811-f079c4fb6e61@suse.com>
Date: Thu, 19 Feb 2026 14:32:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 2/7] xen/console: use bool as return value from
 printk_ratelimit()
To: dmukhin@ford.com
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org
References: <20260206202424.2054758-1-dmukhin@ford.com>
 <20260206202424.2054758-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: <20260206202424.2054758-3-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 21:24, dmukhin@ford.com wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> {do_,}printk_ratelimit() are predicates. Make that pronounced by updating the
> return value to boolean.
> 
> Not a functional change.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

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

Yet to make it explicit: I'm not quite sure I want to ack patch 1.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:36:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:36:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236292.1539030 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt4CF-0000Px-OZ; Thu, 19 Feb 2026 13:35:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236292.1539030; Thu, 19 Feb 2026 13: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 1vt4CF-0000Pq-Lj; Thu, 19 Feb 2026 13:35:59 +0000
Received: by outflank-mailman (input) for mailman id 1236292;
 Thu, 19 Feb 2026 13:35: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt4CE-0000Ph-Gt
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:35:58 +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 eb32ea59-0d97-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 14:35:56 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-480706554beso10908065e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 05:35:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31d82a8sm4958685e9.15.2026.02.19.05.35.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 05:35:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb32ea59-0d97-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771508156; x=1772112956; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gFzgYxvag7MDRMRK3Z1V5Twe11RKfvKZUqtM8sK6bf8=;
        b=eevVJY/aJBHF7PNRlxT+5MKUipc5FGsI6bnR6XZZnnQ+WJcWIvC/2u7VHX09I1jZyN
         aycFLwabbUyyjUcbABC8J3Mn91+ocnlhumKucyDCVsAatQpsTd4+42D3Q38+w4JRFfic
         Cl4z5ulANwyj5sQWSN8ezFV1Brw4lpl9wtLKcctFCxZuyQcWLpUQAqIjiB7N2aHNfUY8
         2s7ajak5rkTC7Mf5rM7AkdcVVQasA19WYr4gkZyhdNgcEnqim8Yyhoc4hFrOcYaQyjNj
         V4fK3kCf2KXD1PdsclO0STcyCJhpzGbD8AihnV97OvOHMiTTNvLigM45TAMuowWbwhci
         AgpQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771508156; x=1772112956;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gFzgYxvag7MDRMRK3Z1V5Twe11RKfvKZUqtM8sK6bf8=;
        b=wc+rRwEZPWTkMLJnbPW5NQ0eADZHW0Sc2poPIt3o3ycbqTY5V0fNsy1RHioqRP7rsf
         kaCBmPV4YrKvQBh6RVtrqLJMMAgTZUU4dx/NL8b+CV/4+HWYQfTKgKmRblOsz3IpXd6i
         JShyT7aMuuvAGdZR1VXedtEdMPRbefVnPYNm1WppN3jNFq421mz/KEGFiZBAQI1HdeOC
         O3FQ8F5cIQL3EN+Ui/ztRwrzQ9VdeWESbVrrPxZmXKKUtfePskqfGrYGwbJyfXcE5/1T
         RThwS+MvFTwvn9KMXpCRv4zTT7J5dNPCKUFfx/cnSfAtcauWyeFNZiXm4C/RRlm0nqKV
         U/dA==
X-Forwarded-Encrypted: i=1; AJvYcCVRNWY967K0s6S9wJ+hFEwbkW9cNnnYbfX2iL8iFInv4oNMV983+CzvmfMwGSY61pOd5iy0ZFP7XSQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyV7snDdtPIXL9/0/rtGFd+7lZwTGCGvfpAu4xRZzjUTsQ7Gf3s
	wBDZ1fj9/VpU9m4LivmE6XMhVyBQ/apI2WxvFwYKyyxwNgFEP+SpU8PnPxPU412ymA==
X-Gm-Gg: AZuq6aJ39WlF4/55IMnAXO+GgCBNVTNXVjxtnU1n2q6V7FojW3CtlvjbLzmcHD5Vzdv
	1evM4jScYlEi/y+BU25OKSUvXXZCtMp5P+gD7J8Sdamj/Lo2RTQ9GP+HtRuGIoFoKg/WkQk4hbc
	ORWjQvtudIvLVtdFn+3nUI9vYR2fLW4Fq57eFZutB3+olZ7OJ2dSGSSTRfBda0sKNCk1wagKPnx
	fnEEM9+ZM3Q4o54h9ii7yse387dRsVXcC3BtXmscO5jg8fYerLuoiW1X65mJIGKo0qGjuPcA6ih
	a8puf7R7kJ1Gm0BaWgmLrHRa4caxLRvI++wVCBytHllBCE6iw9zj2D1Jonbw9Y1QFJy/qqzsMl+
	CL1qgQkhVweX/SwvAR4FVI8sgizw5Stschzodemdlw/YlXe7S8/x2eiOkxwzqM4gY2aB8oGlnF+
	5ayFvKJeFG9AHtwneiGBXby77GBLOTk6+honoBmM5BhEj1V+IBT8WGRSkQQrcUZVvezs3wmqhYQ
	fX0qhWmjEuaE80=
X-Received: by 2002:a05:600c:37cc:b0:477:58af:a91d with SMTP id 5b1f17b1804b1-48379b93370mr299706525e9.5.1771508155692;
        Thu, 19 Feb 2026 05:35:55 -0800 (PST)
Message-ID: <2eba7de1-a8e2-4c45-affb-8ecb91278707@suse.com>
Date: Thu, 19 Feb 2026 14:35:53 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 3/7] xen/console: add build-time rate-limiting controls
To: dmukhin@ford.com
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org
References: <20260206202424.2054758-1-dmukhin@ford.com>
 <20260206202424.2054758-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: <20260206202424.2054758-4-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 21:24, dmukhin@ford.com wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Introduce CONFIG_PRINTK_RATELIMIT_MS and CONFIG_PRINTK_RATELIMIT_BURST
> for configuring rate-limiting policy at the compile time.
> 
> Use symbols for global rate-limiting initialization in the console driver.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

I'm not sure this is a direction we want to move into, so just one formal
remark below.

> --- a/xen/drivers/char/Kconfig
> +++ b/xen/drivers/char/Kconfig
> @@ -103,3 +103,28 @@ config XHCI
>  	  Enabling this option makes Xen use extra ~230KiB memory, even if XHCI UART
>  	  is not selected.
>  	  If you have an x86 based system with USB3, say Y.
> +
> +config PRINTK_RATELIMIT_MS
> +	int "printk rate-limiting time window (milliseconds)"
> +	default 5000
> +	help
> +	  Specifies the time window, in milliseconds, for rate-limited printk
> +	  messages. No more than `CONFIG_PRINTK_RATELIMIT_BURST` messages will be
> +	  printed within this window.
> +
> +	  Setting this value to 0 disables rate-limiting entirely.
> +
> +	  Rate-limited messages are those controlled by the `loglvl` and
> +	  `guest_loglvl` command-line parameters.
> +
> +config PRINTK_RATELIMIT_BURST
> +	int "printk rate-limited message burst size"
> +	default 10
> +	help
> +	  Defines the maximum number of rate-limited printk messages that may be
> +	  printed within each `CONFIG_PRINTK_RATELIMIT_MS` time window.
> +
> +	  Setting this value to 0 disables rate-limiting entirely.
> +
> +	  Rate-limited messages are those controlled by the `loglvl` and
> +	  `guest_loglvl` command-line parameters.

printk() is implemented under drivers/char/, but I'm unconvinced of placing such
pretty much global controls here (rather than in common/Kconfig).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:38:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:38:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236299.1539042 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt4ED-0001Gw-3x; Thu, 19 Feb 2026 13:38:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236299.1539042; Thu, 19 Feb 2026 13:38: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 1vt4EC-0001Gp-Vy; Thu, 19 Feb 2026 13:38:00 +0000
Received: by outflank-mailman (input) for mailman id 1236299;
 Thu, 19 Feb 2026 13:37: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt4EB-0001Gh-Ba
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:37:59 +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 339ac51e-0d98-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 14:37:58 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-483a233819aso4589305e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 05:37:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4839f905d3csm53471505e9.1.2026.02.19.05.37.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 05:37:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 339ac51e-0d98-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771508277; x=1772113077; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=JKaa/m9ijaPavmv4wux74qlpyfqVrqU26mgJL7gcq7Y=;
        b=UuDi1oz9m0QN20/KpuegEKpf8pK93aekJiQ71rIIIiRP3GgwXg5ki5j9S/cG9yw9lt
         WIYrw9BOt/tNUuI+VfEj32DE8BuLX0scOfEoBZ9OBw96fpK3drp0yLEZTDaBNz6aU90i
         ASSjaqWWO7MKYWNFWH++HMSEo4JgUDgNJKSDkECqtCd+qwZ4jfvrWKDLXTPIeXbtl8GX
         tYZxsCclvCf39rLk8VYB1KESz2fOq95dA28geJRkGvoYv2ULTTgHL0gtlGLKYMMtr80j
         4MATBAngRjJcCcFZYiv2P9r7oFkIEQ4ScxkDHtgYBlz/uHgm50VHi2ClUOvl5jszmLt7
         Hdpw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771508277; x=1772113077;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=JKaa/m9ijaPavmv4wux74qlpyfqVrqU26mgJL7gcq7Y=;
        b=e5rhsXdFMNyUu1yphliTzEpZuS85btQsomx0CxIbJmqSl6KUaE9M5BPQZhOOb+X1lH
         GcPwL76SUtzgsdJMixdWtfY22VXDp09o7msC8avS+CB5RJ4XSZWUY8dbZASr77bUogfr
         MeJ6StEkJlQn6COetrauLUH4coYQnJJJ3I4KQ3sL5xrTH6v73vuc+m4pfi3bGKXUkG6B
         bFTEwcINF/V5i5GZxdhmi0dB7QJsqeMFuk4fIwlYVkIEUX+yA7xEs4bV18HvGxWlOOvE
         8rf8ouEnUVDBEGrfOTq8bF1l2+g7vdVeYupblnkZl6wc1bI72UYUqS9ZOG5ObcoSA8z0
         oHEg==
X-Forwarded-Encrypted: i=1; AJvYcCX9ll/NFi7N9isXDPOWWlS0kOJoWjwMzUFcc6Mk011o2n4+uOvCqeJE6K028hcbHLsHR3xbONEF7A4=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1lg/MMzCeVc4ta3q211qy3CY7AWKQImbL48vi9rKFztsRxMSX
	S5TjTNvtSh0z9ATUhjNPNyaxs+Zbl+F8MrjEkrNIRP5Vl4SWvydJORrHdlvQ0yONjQ==
X-Gm-Gg: AZuq6aKKAG5/yllEIBxWOpZE4g/R6cyL1dq2T3HRrw3Br1CM7EIDr8pyMvt7tx8dgqg
	L++SJQwU7SwcRWWM0QxaT1qUBmyPNh5MtM45iMuVEsIEdbVrZOyvb1xS5NsJBhMj3j6CDQSvoUF
	kp2Njft39ZtX41bFmVhG/v2rwpWK95Jtzi2zdaRhFvCZ7AuG5cRJVHfSzPF5CbAA+mZVY+g13bv
	Hs/aonbyjbD8VR/wdoAbz/U1CpK5+t45wrGAMNayzgm0A1WJOq9AXvFjhykCRdSfH+IT/rR1gwL
	YiOj/76T7TQZXV7acLAUQHQRckVNTYnJeZd8o1pm/DdUKwH2DBQHpoIhkTBLPgYZ594qtVQ95ev
	5WUkGWQqhWK2OpfYogfSHnsc0ujsMt/qePr+FWPY95d/xYHAHk9d/7/Yuf9C0SVIq6SMNjhB1cw
	Tn2b+mxTnbZFFeLCzJdDtBUnN0U+sTQRg5usxsgE8kkFdB95rrQy5fL2Nq34vHaIX7e5/WeGUn/
	ZtGnHmMaqsrq+o=
X-Received: by 2002:a05:600c:64c5:b0:47e:e2ec:995b with SMTP id 5b1f17b1804b1-48398a7dd3amr114426485e9.9.1771508277249;
        Thu, 19 Feb 2026 05:37:57 -0800 (PST)
Message-ID: <4531d175-2e37-4b37-a157-82742a87dd18@suse.com>
Date: Thu, 19 Feb 2026 14:37:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 4/7] xen/console: add run-time rate-limiting controls
To: dmukhin@ford.com
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org
References: <20260206202424.2054758-1-dmukhin@ford.com>
 <20260206202424.2054758-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: <20260206202424.2054758-5-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 21:24, dmukhin@ford.com wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Add new "printk_ratelimit_ms" and "printk_ratelimit_burst" command line
> parameters for global rate-limiting controls.
> 
> Drop `const` and add `__read_mostly` for both global parameters
> printk_ratelimit_{ms,burst}.
> 
> Update command line documentation.
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>

Like for the previous patch, I'm not sure we want/need this, so again only two
formal things:

> --- a/docs/misc/xen-command-line.pandoc
> +++ b/docs/misc/xen-command-line.pandoc
> @@ -2077,6 +2077,33 @@ compression is selected at build time from Kconfig.
>  This is a mask of C-states which are to be used preferably.  This option is
>  applicable only on hardware were certain C-states are exclusive of one another.
>  
> +### printk_ratelimit_ms

New options want to use dashes in favor of underscores.

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -344,6 +344,20 @@ static void cf_check do_dec_thresh(unsigned char key, bool unused)
>      do_adj_thresh(key);
>  }
>  
> +/*
> + * Global rate-limiting controls for printk().
> + */
> +
> +/* Minimum time in ms between messages */
> +static unsigned int __read_mostly printk_ratelimit_ms =
> +    CONFIG_PRINTK_RATELIMIT_MS;
> +integer_param("printk_ratelimit_ms", printk_ratelimit_ms);
> +
> +/* Number of messages we send before ratelimiting */
> +static unsigned int __read_mostly printk_ratelimit_burst =
> +    CONFIG_PRINTK_RATELIMIT_BURST;
> +integer_param("printk_ratelimit_burst", printk_ratelimit_burst);
> +
>  /*
>   * ********************************************************
>   * *************** ACCESS TO CONSOLE RING *****************
> @@ -1320,14 +1334,6 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
>      return false;
>  }
>  
> -/* Minimum time in ms between messages */
> -static const unsigned int printk_ratelimit_ms =
> -    CONFIG_PRINTK_RATELIMIT_MS;
> -
> -/* Number of messages we send before ratelimiting */
> -static const unsigned int printk_ratelimit_burst =
> -    CONFIG_PRINTK_RATELIMIT_BURST;
> -
>  bool printk_ratelimit(void)
>  {
>      return do_printk_ratelimit(printk_ratelimit_ms, printk_ratelimit_burst);

Do things really need moving around?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:44:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:44:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236312.1539052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt4Km-0002to-Rs; Thu, 19 Feb 2026 13:44:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236312.1539052; Thu, 19 Feb 2026 13:44: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 1vt4Km-0002th-Ni; Thu, 19 Feb 2026 13:44:48 +0000
Received: by outflank-mailman (input) for mailman id 1236312;
 Thu, 19 Feb 2026 13:44: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt4Kl-0002tb-O3
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:44:47 +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 266e9b9f-0d99-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 14:44:45 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-48370174e18so6098305e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 05:44:45 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31d1b0esm5431955e9.11.2026.02.19.05.44.43
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 05:44:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 266e9b9f-0d99-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771508685; x=1772113485; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Q7e2Eo1My7gzNzfINDjJwh+EcilgpDKg4sO4ADet080=;
        b=KOVFFQMovIu9QHABnL4kxLeFHK/X+XdPxsV+HI5LTcw5vHV3Eieqm2e/GzBGYmadA9
         qqZTsfngymMWPN5Vxmp1+NeBFMQnVy11gvsXYul6y6rCWQZfqtDRiGkeMK1+hY4ACfGF
         AMmGDYQPfE/1/AMFfTsvIjrzbEg4iSdd4dzu6kPZue0tcsIGh18ODsWKXdmiiRV8y7KK
         8Hdir0ED62UuVk0VX51AMyl04CvWRTZWgFw1uL34+FMW/OKOKSmmUr2LUDWUEzo3rLFL
         Nkv0MBzeGhvH8RzWA72GYGYhq9ZUkmzTly+46VX4n0AWPvv5gOdpCFr33zwDTeLNJ/gQ
         tdag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771508685; x=1772113485;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Q7e2Eo1My7gzNzfINDjJwh+EcilgpDKg4sO4ADet080=;
        b=iqjFEEE8aM06WLmyWSZIHp8TH2rhr0deD8NSha+t0LMsC98HwUS8dKo0tq6mtj2nMY
         bkZUtHI8GHf1eiFrH059oFyY/bNj15Exmn62As9Qs5hPv2aosdIXxsY2G6ueVt372SM2
         0g+yA7NoaHt00A8cbpeBDZGelNE/5Gmo81SyUDU5PxvTp5PAhyAMIn1wQg6CeQrRrrid
         Ar2+95haFM0tQFAaw7dqPGanvyEBPWmf2fV6/9DE7OjWJRvPL/OSPQ6kQ7ofsXQTduj2
         XXnC6rZJ3q6bUbknKzzvIjq5vQPEwivzAYy4TlczqDC+mksl5QWk60fsunla7xf7cclY
         QHGA==
X-Forwarded-Encrypted: i=1; AJvYcCXE/W5xKOMQkPsth1l7TS+HyMOTXwdvkyVxNjfrSg2bLMxXkYvw7vvMzrKKz6/YWJlEgr0GjLGjsnY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxbDm50i0khV/kwQoqr1PfuEIz/0JJrn1qsh1h6kNYnYLbWZ2sJ
	TMPEQ+5jHLvF2GdVrexZODdSRl/y6tqo/A0j3Zk/D2ClsL49rJh4y3dLGuBbdfA4oA==
X-Gm-Gg: AZuq6aLc9q3BGrVn7Lh4gBEQFpVG++qi3QcqOq85GU0OP42PWFUCoXEbiIGg+wcdDxp
	0KBD59/8vv5bzpdP3ku+OSqd/csQGUflp96qnnF+xVfGp6YJp1pmkw3/+v738CwGxkdVPXLbsZa
	GsPujCxKPtA6qfUp2Tzo+NkryB3/hbbUPNo2taI8pY8PsKr3a+7yGzTI+Zjky5XMY876zlSZn4t
	sbL9kz1rHWLSI8gexHJ9VJGEnBvv0MVlNVjSh6EGMFqx7wp4W5cqxSLY5bTKHD57pLPSh5GjYqS
	UqriEO0SB/+uRc3oBORZofEn3TNhZItqiNQk+emUg680IdtDFqnxO4yp250FIWp9488OuFXRBTV
	DYEXUIMred8xwAtN5qdk3Xe7QasTxZuhkOb3SjjaNHsusBPpDrh6gUJ/vMEQswq2e23ZOxQMZm8
	UCsHNu/KLAU5YkX75+N4K/AfVNHvZXHamQ1qlVOHZ/aS9Yf5PwsdzDDFaX2iVK4IpIUq9tU4t3e
	KLJCLF/eno4quQ=
X-Received: by 2002:a05:600c:310e:b0:480:4b5d:9ec with SMTP id 5b1f17b1804b1-48379bf4709mr333105275e9.33.1771508684606;
        Thu, 19 Feb 2026 05:44:44 -0800 (PST)
Message-ID: <6ad27357-277b-4236-8c82-2cf358aaadc6@suse.com>
Date: Thu, 19 Feb 2026 14:44:42 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/7] xen/console: correct leaky-bucket rate limiter
To: dmukhin@ford.com, xen-devel@lists.xenproject.org
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org
References: <20260206202424.2054758-1-dmukhin@ford.com>
 <20260206202424.2054758-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: <20260206202424.2054758-6-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 21:24, dmukhin@ford.com wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Use existing printk_ratelimit_ms and printk_ratelimit_burst variables in
> do_printk_ratelimit() instead of hardcoded values 5000 and 10 respectively.
> 
> Ensure rate limiter is disabled if either printk_ratelimit_ms or
> printk_ratelimit_burst is 0. Make sure no unnecessary initialization is done
> in the corner case.
> 
> Also, simplify the limiter code by using min().
> 
> Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> ---
> Changes since v1:
> - new patch
> ---
>  xen/drivers/char/console.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index f607e8f84d7a..e3962512d282 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -1291,21 +1291,27 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
>                                  unsigned int ratelimit_burst)
>  {
>      static DEFINE_SPINLOCK(ratelimit_lock);
> -    static unsigned long toks = 10 * 5 * 1000;

Shouldn't this have been adjusted already in patches 3 and 4?

> +    static unsigned long toks;
>      static unsigned long last_msg;
>      static unsigned int missed;
>      unsigned long flags;
> -    unsigned long long now = NOW(); /* ns */
> +    unsigned long long now;
>      unsigned long ms;
>  
> +    if ( !printk_ratelimit_burst || !printk_ratelimit_burst )
> +        return true;
> +
> +    if ( !toks )
> +        toks = printk_ratelimit_burst * printk_ratelimit_ms;

This multiplication can overflow (which is avoidable on 64-bit arch-es, but
needs checking for on 32-bit ones in any event).

> +    now = NOW(); /* ns */
>      do_div(now, 1000000);
>      ms = (unsigned long)now;
>  
>      spin_lock_irqsave(&ratelimit_lock, flags);
>      toks += ms - last_msg;
>      last_msg = ms;
> -    if ( toks > (ratelimit_burst * ratelimit_ms))
> -        toks = ratelimit_burst * ratelimit_ms;
> +    toks = min(toks, (unsigned long)(ratelimit_burst * ratelimit_ms));

If you need the product anyway, calculate it once (correctly) and then you
won't need a cast here either.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 13:52:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 13:52:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236322.1539061 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt4SW-0004i6-JK; Thu, 19 Feb 2026 13:52:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236322.1539061; Thu, 19 Feb 2026 13:52:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt4SW-0004hz-Fa; Thu, 19 Feb 2026 13:52:48 +0000
Received: by outflank-mailman (input) for mailman id 1236322;
 Thu, 19 Feb 2026 13:52: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=bUjJ=AX=bounce.vates.tech=bounce-md_30504962.699715aa.v1-810292f8c720492387bbb50698c81adf@srs-se1.protection.inumbo.net>)
 id 1vt4SU-0004ht-JC
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 13:52:46 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 43680ca5-0d9a-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 14:52:44 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fGvvt3RSYz5QlX0x
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 13:52:42 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 810292f8c720492387bbb50698c81adf; Thu, 19 Feb 2026 13:52: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: 43680ca5-0d9a-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771509162; x=1771779162;
	bh=BBrVcbbNtwYn8Bw8VHyl0I/9e0TWPexjO3vd3ypTCUs=;
	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=Y6GFnuQLdEYX56T1dQPrfWjf1M95TXBSENnYgNxvQILOtV57zy9A81UycTDKQEFS1
	 dVgwvqv6mJAzZM8CaIOZbboY3AhNoKe2FX8v0XIFXQFtcUmVOoleteetlG0L/QOip+
	 WSZNG3WPJbK7nlrbyDncPh9gsIOrcZNC1HY1ZueyXzARSV3CRaXPvzzQP2i3KezVgb
	 0tVB/Cyp+1i6JJfTA1v8EUo7OO5RWw0McChbhLQvwnwCIrz2kJICyAq89HEwnyEFE0
	 46fhpHk/yx9N12GZA3ffTEkSesoW5oqy6dyP9QcPZl+Dp+8Zw21rYOVq0K0klwSbDT
	 V6LaeRyaBBJMg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771509162; x=1771769662; i=julian.vetter@vates.tech;
	bh=BBrVcbbNtwYn8Bw8VHyl0I/9e0TWPexjO3vd3ypTCUs=;
	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=QjnaUTfrn8wvnGNntTEyL1T2KVAS4lefsc1PGHCWhKSIw84Rqdk3odDc1IhB70MU6
	 IwiUq5kd4K61/P+N1ZZQTye19rHLWEb1oFS5TdBg8+tBhFfrhetaLuRqo7hHVGljSF
	 n3FKE+h5Zy5f+j2FQBhY/ht+ezkgIu7uWVEpY39uDErmOZiRmqOfw4eN6NwMq9GQZq
	 QS1WqcVhMImd4RUjvs/7ng6ctkAh4n7D950jIxvhSdZt4wCk360ox6+r5M9NN/x+lj
	 1WTtLmGeAzrGmO/MUTNVfPt87inPrxOOScSXc4RNHPWovnQHirKkJtEQ7GUUMtLN/p
	 5HrqWfHlGHUNQ==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH]=20x86/hvm:=20Advertise=20and=20support=20extended=20destination=20IDs=20for=20MSI/IO-APIC?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771509161453
Message-Id: <bb00446e-ed6a-4c9f-9c6f-e49fd7b81997@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>, "Teddy Astie" <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260209113412.2603088-1-julian.vetter@vates.tech> <87be26c1-52fe-438f-8aad-1d5ea0f0a325@vates.tech> <d3b71e9b-c026-4cda-99cc-a8037f302bd5@vates.tech> <eb4363a6-9035-4922-9314-60f4c6ca9309@suse.com>
In-Reply-To: <eb4363a6-9035-4922-9314-60f4c6ca9309@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.810292f8c720492387bbb50698c81adf?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260219:md
Date: Thu, 19 Feb 2026 13:52:42 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable



On 2/19/26 14:28, Jan Beulich wrote:
> On 19.02.2026 14:08, Julian Vetter wrote:
>> On 2/9/26 14:40, Teddy Astie wrote:
>>> Le 09/02/2026 =C3=A0 12:36, Julian Vetter a =C3=A9crit=C2=A0:
>>>> --- a/xen/arch/x86/hvm/vioapic.c
>>>> +++ b/xen/arch/x86/hvm/vioapic.c
>>>> @@ -411,7 +411,7 @@ static void ioapic_inj_irq(
>>>>     
>>>>     static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned =
int pin)
>>>>     {
>>>> -    uint16_t dest =3D vioapic->redirtbl[pin].fields.dest_id;
>>>> +    uint32_t dest =3D VIOAPIC_RTE_DEST(vioapic->redirtbl[pin].bits);
>>>
>>> I would rather introduce a new field in vioapic_redir_entry for the
>>> extended dest part; and compute dest from that and dest_id.
>>
>> Here I have a question. This struct is a public ABI struct.
>> vioapic_redir_entry is defined in
>> xen/include/public/arch-x86/hvm/save.h. It's part of XENs VM
>> save/restore operation. It is used by libxc and toolstacks to migrate
>> VMs between hosts. Changing the struct might be undesirable? Yes, it
>> would make the code cleaner. having a bit entry for the extended dest
>> bits. What's the general opinion on this? With the VIOAPIC_RTE_DEST
>> macro I avoided touching this struct...
> 
> Which in turn raises the question: How do you migrate those bits? It look=
s
> like you're losing them.

The bits are preserved correctly. The migration saves/restores the full 
uint64_t bit union member, not the individual bit fields. But, the issue 
is maybe in the other direction? If we migrate a VM from a new XEN 
(where the guest has programmed extended dest IDs into RTEs) to an old 
XEN that doesn't understand them. The raw bits would be restored 
correctly into bits, but the old XENs vioapic_deliver only reads 
fields.dest_id (8 bits) and would silently ignore the extended bits. The 
guest would end up with broken interrupt routing to vCPUs with APIC ID > 
255. But there is not much we can do?!

> 
> Jan



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Feb 19 14:11:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 14:11:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236341.1539070 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt4kn-0007x9-1n; Thu, 19 Feb 2026 14:11:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236341.1539070; Thu, 19 Feb 2026 14: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 1vt4km-0007x2-VG; Thu, 19 Feb 2026 14:11:40 +0000
Received: by outflank-mailman (input) for mailman id 1236341;
 Thu, 19 Feb 2026 14: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt4kl-0007ww-Sv
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 14:11:39 +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 e77976f1-0d9c-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 15:11:37 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4837584120eso7333855e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 06:11:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4839f95a63esm32010755e9.6.2026.02.19.06.11.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 06:11:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e77976f1-0d9c-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771510297; x=1772115097; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=juCmMlfipHI7Ml7/2ARQaO1msA7yqnayCJb2O14LALw=;
        b=FRD4N2az1PJES5wVoM/8OWICliPMpz8FrY8V8K52VuTnwtV+FYadOte7VfmNtH98nG
         2l5CFB38U+4FtDZWueXjINJquFud9VqDTbTqiIhb0rP5cgLD7fgBRRbGhpnDkVoPsDIf
         I6czQc9SAjnBzbY2L3M4Te0VRPOmk7vh+80SzWOiKW40IvlciSMrST4q/nePjM37sWoa
         WfQUrYH6BH/9hOxs+yq++Ut/HuDukgWGAM+FR8LynQqA8xscfmpASK+9VcMVmc4CfXEQ
         fM/8QZEyKH2cpvBjK0RNPuQLMUQ5p6qeeuh+yHY0koF5Yvq8tYq16IjNnw0NS3GjJUdA
         mv5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771510297; x=1772115097;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=juCmMlfipHI7Ml7/2ARQaO1msA7yqnayCJb2O14LALw=;
        b=VqepSdGPV1ACQlRs9Ow+AbDotNZVUkgkNthayNKY1H6AyHRivr0MPyhal7Q3SnayCc
         Wp/Uqt44KEJT3W4bAP7ttym1GbktPsyQNxZKWQQjxWesYCxLSntKg7GvtSqoEWIhRteF
         Ve42eWo33KaSIQJQcrOaUieeylTT46p5kQ5WrTbsSwHSEhjehJ7c9eEw6YyadKSAvTow
         3iDdPfEq83OJICItD1yFrDU+lgfiR40gamedLFJKag1eeTlaibUMPNwMh9q0X5FdMCvu
         OBxXktJN5ZgL9AKwm2UjVsGL8jbi2Jgv8rHCF96xmnLxOVyIuBNCcdf0uiuqPUMepK1y
         Uu+w==
X-Forwarded-Encrypted: i=1; AJvYcCXvLxuj9phP71io+MvsLSK0Jo3WzquEsAcRh2JO7rVsa2Nccpv5WVuMa8AIrnMvn3WjrZzQc9fqVJc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykSp418w4i+HOxcY3Jrm4qXED+xTxVg21flZxIHT0n8ONL216A
	LYCA/v/uEl4uK+lXPA32SfBk5FZYp0BGgAFLbb+YKgk9ntgWUrNtYM4hYNJkNRaeIw==
X-Gm-Gg: AZuq6aIgGL7uEIomFMXMDRz+mBx2iMCG4JxmkoveOxdlqotu4Phyh+tXQ+/PEbnqKpP
	wpt031Dxc/th45dYwnllkXOVFR7hedxNtnUdaQm/r6hxpXcUxmvJihT1OoI/fKnjPcXqcjzwl2o
	+cwNrzhmPwAuRMZc4hQHUtCrIoDxsXpkCjsGuJaFKqlxE25lAEnWfEaqiCpMjHejEYyEpYvQwyy
	6cfHAqB6+QpdsPRBkDKMTSatyqTUtlci8qFDp4HHkh3ewikrSjoUd/964rBzEDMfzApjQlU5Xwq
	9c3yVojih3IFx3E+aPrPr8slNiE34JrYxx2z2pVk27YX0IcQhcr2nyUiAW14Q1h4jz1FTVKQZPt
	rpFjhhiqMif5Mdf/PE+pi9FF1eub26R4U3ArUkThUdp2cjckRnyfhiax51bhxZJtD+CSX88S580
	zoSi6jESA2g2psalsw9SQTdYc1eb5eMKX3xNThGUMdCAlia81dxxSJGBqV8JzgBzTHqM6E66JTG
	+Mwm94puYB6zL0=
X-Received: by 2002:a05:600c:8288:b0:480:6bef:63a0 with SMTP id 5b1f17b1804b1-48379bd7114mr303092715e9.21.1771510296958;
        Thu, 19 Feb 2026 06:11:36 -0800 (PST)
Message-ID: <171f74cf-9456-4d55-b730-7f9016a09ff6@suse.com>
Date: Thu, 19 Feb 2026 15:11:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 5/7] xen/console: correct leaky-bucket rate limiter
To: dmukhin@ford.com
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org
References: <20260206202424.2054758-1-dmukhin@ford.com>
 <20260206202424.2054758-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: <20260206202424.2054758-6-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 21:24, dmukhin@ford.com wrote:
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -1291,21 +1291,27 @@ static bool do_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 toks;
>      static unsigned long last_msg;
>      static unsigned int missed;
>      unsigned long flags;
> -    unsigned long long now = NOW(); /* ns */
> +    unsigned long long now;
>      unsigned long ms;
>  
> +    if ( !printk_ratelimit_burst || !printk_ratelimit_burst )
> +        return true;
> +
> +    if ( !toks )
> +        toks = printk_ratelimit_burst * printk_ratelimit_ms;

Btw, instead of this I wonder whether it wouldn't be neater to use the nested
functions extension of the compiler:

    void __constructor __init init(void)
    {
        toks = printk_ratelimit_burst * printk_ratelimit_ms;
    }

If we wanted this, we'd need to record the extension use in
docs/misra/C-language-toolchain.rst, though. Plus init_constructors() would
need invoking _far_ earlier (perhaps right after command line parsing).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 14:13:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 14:13:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236348.1539081 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt4mq-0008ST-Dc; Thu, 19 Feb 2026 14:13:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236348.1539081; Thu, 19 Feb 2026 14: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 1vt4mq-0008SM-9t; Thu, 19 Feb 2026 14:13:48 +0000
Received: by outflank-mailman (input) for mailman id 1236348;
 Thu, 19 Feb 2026 14:13: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt4mp-0008SE-1S
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 14:13:47 +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 2fb9d921-0d9d-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 15:13:38 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-43590777e22so616899f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 06:13:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6ba57sm40645371f8f.15.2026.02.19.06.13.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 06:13:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2fb9d921-0d9d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771510418; x=1772115218; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=XgQ2jjDtWT8RAQMFSle4PYBsj37CLw7hcilCw+xE2Us=;
        b=TW+Rfb94RJxeIDw1vOZgFb1BXlhtB/bsUIeIHdo7ntHBGbih1TQsIxwsJwKKIz2kU7
         goBZfFxDI81RemHMEOqjXItqiqP3X5uLx+UAH+LDdhMMLA2g2fVa+oxzBnSaLUFJJrap
         enYocu8wkuQyvRjDjlN37lVlyS9WhVJ+cAf8Y6kojnLj1O13m4NdM45tVDaV1ZLJWiWQ
         1L609a0GG/eo7LAFbNSOwTGoIRXUpIAsj1HcYD7ED6qjr/SS5pXmg7R4B0/Phj5imsn4
         ZFxOHEtdhQbJbEkXVqRzOIuaF3teTXs8bAwzMO4jtaZJlCt6tO4xypda5SNYRtnSDaAd
         B6/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771510418; x=1772115218;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XgQ2jjDtWT8RAQMFSle4PYBsj37CLw7hcilCw+xE2Us=;
        b=TSm0U+V7Vcd76eCSKoZi5mOvAA05HGFRGJAL1O3HlLEuu7p+s2zJzqxzlX/ziiObtc
         ItLCK0kMF0BAcWgu1WuFU710Vr9fYHkkb/iJYexzJ1YpTxqyNBe6rfYDlCQk8OONUVc/
         LhIE0mqMD0RCYXzrGUvH8KrBmP9V6DbTiR/CLSSzjPRtzND7S5Uj5UaQXZh9eCqjwV7P
         HnO6WPRjrvvKBuUn2x9Zwf4JQhUn8dgVQ3LpC3ab6YsnY3Jbj0Znh8qE+MjhDiKxIa7e
         nClHCt1oHUMEcO5umeYntTcAAmzrFHHlXyrN1pW0vy3FQEilzP5MSMynbAuBfnWeqYmZ
         t3mA==
X-Forwarded-Encrypted: i=1; AJvYcCUl0FN02tGVQyUw8DNxQM9fHHt7oTPXFIkKJn9Hn0k4n+hc0MT/1VfZe8PJ2maNYiKCA3ABVxMwGBA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwB1hosHhRzWUpUN+/npDcrk7f+Aij03rMUwxGn1kd3qGb4ci3u
	X9yWRWljnjmfucq5QFwX15NJzwyStBEwa6QMfpfglfDOjSFgsu6E7qcLcX8kOFV1vg==
X-Gm-Gg: AZuq6aILUDfh1rdCV39ojHN9Ac4/pShJ6b3wlybCDj0XOcKrrZTUXUhAJ3+UuCkwi+u
	7pSICGWYGYn/6THOwMzjW590OG7hreJKc/EjWBepzbA5RIrFSIaDHQ/bUfMJvn36byK9epqz9f2
	KXRXFquoJgGfqOkUFx5hrw9BtV5LAKfMcyddHdEp9rtbxcHusKl9d8u+F2I/qDbs0EYBFbnR4+A
	Tg98IvN+NvnJrflkh7CFwGTagxre49zgljDt2kfRBJu9OPbB12sjvzZS93GPtcAeAEyWE3r4zqz
	1krbkMYVDVDqcm9EZMT7Pcdrs0hHkxc9lv5qbYM1fOUM4nseRV7saHUbn3OIK5K51CDBz8G0eZV
	v871yX698Qn56TPslnKico8jbt7Y2blHR0r6M5ldc2AwiXTWYV33ZF9iVWVeCvmmS9rZLaeQ32n
	z3+niTbwJBylhwfhui/oP0O8V6Ee78qktpAE+3GF8VLon3ZhsS8RdPzR+NX0TTmPZtmPgLvimZ6
	ajCNGaum8ZWVKgVU1tBqsdGow==
X-Received: by 2002:a5d:5f47:0:b0:436:3475:473f with SMTP id ffacd0b85a97d-4379db8cd9cmr32275116f8f.36.1771510418294;
        Thu, 19 Feb 2026 06:13:38 -0800 (PST)
Message-ID: <bf7b0c06-60a7-49b5-8679-a3066cd6a9aa@suse.com>
Date: Thu, 19 Feb 2026 15:13:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 6/7] xen/console: use s_time_t for time accounting in
 do_printk_ratelimit()
To: dmukhin@ford.com
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org
References: <20260206202424.2054758-1-dmukhin@ford.com>
 <20260206202424.2054758-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: <20260206202424.2054758-7-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 21:24, dmukhin@ford.com wrote:
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -1291,12 +1291,10 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
>                                  unsigned int ratelimit_burst)
>  {
>      static DEFINE_SPINLOCK(ratelimit_lock);
> -    static unsigned long toks;
> -    static unsigned long last_msg;
> +    static s_time_t toks, last_msg;
> +    s_time_t now, ms;

For now (i.e. return values of NOW()) s_time_t is appropriate to use. For
millisecond values and alike it isn't, though.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 14:18:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 14:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236360.1539090 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt4rk-0000o3-U5; Thu, 19 Feb 2026 14:18:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236360.1539090; Thu, 19 Feb 2026 14:18: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 1vt4rk-0000nw-RS; Thu, 19 Feb 2026 14:18:52 +0000
Received: by outflank-mailman (input) for mailman id 1236360;
 Thu, 19 Feb 2026 14:18: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt4rk-0000nn-2b
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 14:18:52 +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 e90ac25e-0d9d-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 15:18:49 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-43767807cf3so784274f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 06:18:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a74918sm49173914f8f.17.2026.02.19.06.18.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 06:18:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e90ac25e-0d9d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771510729; x=1772115529; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=WNj+rtvXEIZCBJOhwzQMp8jg2RLlS4pMGg2U17DNiMY=;
        b=Qbsu0XmJ1ZypC6Z/9k+4p87Z7j9JzUtmQLaeKzLjj8D0zwh+79/o0fo4UPzkh/m/1L
         yJtNp2h/jSs2Kmeblas1/ozbU9sSOiHupyBwQiUwwiF3/cvH1F+NgaO08KF7EsDz0clC
         sZ5OEIK5xDzlvZKdd/WBwpjsRRCFa0S8H20bAMJKQw0u7/RkaS1eeEZXk51kWrdovlvX
         q0besmnp1zH9kDNPD72Ta1SG/6s+OA0M/L+pfVulT8kW46Kxf9sOxMInCEOo2k4O7S3w
         HbUoVu40iRP/6zQ4BJXLPt+ZtVgo/s6lz+E8m5KumYcrAIMger/w5aeOyDX+84pVFosm
         6/WQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771510729; x=1772115529;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WNj+rtvXEIZCBJOhwzQMp8jg2RLlS4pMGg2U17DNiMY=;
        b=SmY+sZCTwCCi3kIXF5HBAlK3b/aEc749XaF8RzsId5cmNY2Tw90nSlzsCyKUwAaU8y
         BOlecWw+S79XcjuCxbNe2AoeMuI6T3Kb4ZBDsrrfKQxVQ4a844QlZ5JZlNZb2uJj5TEz
         L7omv5BrZINLOu1CCrw52AkXGGkhVEzYzOOOry5L2DZg6KiIGWpP9YDF1xsKTv47eMo2
         YFpDsVqaiIM4PgMgd1yz8qonHQRjuXWJv8ZTDdG/P4cYAKIbrB/LYKyrwK7ThSmqTiA6
         ocD/uEjavBQGNJ5zSc8YBbzjLoNc+ByuozlR6iZfKAonREfj2DVHYMrHKDYvMIkNXxuy
         Bj2g==
X-Forwarded-Encrypted: i=1; AJvYcCUBdz6iEYA7MJ5arItYBXwvCc8feqfw29a2tQNN7yyw/OSGgIqRC+nSpExige+Q604jG03bUGpqjYY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz7eXiH4yv46184YfZCHB2IIvndcg+AV4M4YO8Vz42DD3rY5h8L
	V53kDB+4I7aJVs4MCRhFoyuTQUeu5PPeqpORYiRF9HBNrXpCE1PKAALPCqyfplUYPA==
X-Gm-Gg: AZuq6aJRBFzduzxs/JjQuhBOp453wG4p8smN9clC6gm5PgO39QR9i5199cXBNLtOMMX
	IuM8svyjV5R5VLTW3QJWj3dwPrCN10YvKp2bML8Wpm/tVmfuzjEytAlnxdN3XIY4Qsc0Etwz/sK
	r3yDD0WGOKjbUy2U27LtosR2MaF2SzlOOkdSSy8no/jDGxu2HuzWF0n7+lt3elqy128dAwMjjZL
	ZF4n6CjYLscX0+25RZHwwrvV1KudZOds/XI7ahK8xNPwc2W+JzYouf0wk4UYzbwc/vboaXz1q9c
	zRl3Uc2MV0PHXJy8mfmvmVREz6n6tF0G7yEUJzftm6k92SaljF1aS9PK98U9OxtbbiZOfgnQWzT
	fXYYZ+yrUAzIXF7byR1k7Jbhfh2uspPVncUXZgDnv57yqKtC+RGV8ulHZm1SrxTQpH+88bSVkek
	v6J4KHmmhCefvP8JscI9Xs+izakQM/8vlBP0wmg4KxUVOpoOs0b75fzmE13lHKUT+R2fGS5B3QG
	PKM8/AXoz7JYmQ=
X-Received: by 2002:a05:6000:4010:b0:436:1b1:6cbd with SMTP id ffacd0b85a97d-4379db25b60mr27670269f8f.6.1771510729053;
        Thu, 19 Feb 2026 06:18:49 -0800 (PST)
Message-ID: <e5a16a40-ed00-435a-a096-2264e2e2f8dc@suse.com>
Date: Thu, 19 Feb 2026 15:18:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 7/7] xen/console: simplify printouts in
 do_printk_ratelimit()
To: dmukhin@ford.com
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech, julien@xen.org,
 michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org
References: <20260206202424.2054758-1-dmukhin@ford.com>
 <20260206202424.2054758-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: <20260206202424.2054758-8-dmukhin@ford.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 06.02.2026 21:24, dmukhin@ford.com wrote:
> From: Denis Mukhin <dmukhin@ford.com> 
> 
> Simplify the code around notification of how many messages have been
> rate-limited.

"Simplify" in what dimension?

> ---
>  xen/drivers/char/console.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)

Diffstat says there's no difference.

> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -1318,15 +1318,15 @@ static bool do_printk_ratelimit(unsigned int ratelimit_ms,
>          spin_unlock(&ratelimit_lock);
>          if ( lost )
>          {
> -            char lost_str[10];
> +            char msg[40];
> +
> +            snprintf(msg, sizeof(msg),
> +                     "printk: %u messages suppressed\n", lost);

Having snprintf() process a longer string means there's more runtime overhead.

> -            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);
> -            __putstr("printk: ");
> -            __putstr(lost_str);
> -            __putstr(" messages suppressed.\n");
> +            __putstr(msg);
>              rspin_unlock(&console_lock);
>          }
>          local_irq_restore(flags);

The net win therefore looks to be one __putstr() where previously we had three.
While it's less obvious then that the array size is actually large enough.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 14:31:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 14:31:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236371.1539101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt53g-0003eA-38; Thu, 19 Feb 2026 14:31:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236371.1539101; Thu, 19 Feb 2026 14: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 1vt53f-0003e3-Vl; Thu, 19 Feb 2026 14:31:11 +0000
Received: by outflank-mailman (input) for mailman id 1236371;
 Thu, 19 Feb 2026 14:31: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=l/wp=AX=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vt53e-0003dx-KN
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 14:31:10 +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 a079d9fb-0d9f-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 15:31:08 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771511447969897.897029111787;
 Thu, 19 Feb 2026 06:30:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a079d9fb-0d9f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771511451; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=Ld8iQeYgCRzeSf+KTh+NG/ziwDFZnCHoUjv0arW86dzXFKLSdwulzJTmVkz1Ee3QksRbJDp0hpAfW7WB9YQnJO/7PEjffgNFfeI0TgVpCwlI0zShyHTgU+GxTv0qXYufLCZCFgbslhYd2SGx2l5MpIoCgUUBPjMRhVty+A04C7Y=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771511451; 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=NuQEVgW+Cs/2UnJ66xPuD9vx/rd7t25ZlXFCPYDmSXM=; 
	b=nkJvI7eGo8/dsrb5RDZB8fs2M/iVj8Z/koYQBSleBmPD6S80tzA9dcJklNrXaM5qhkC+G+/VyHqIuh98UZ4b+0MVAq8ejmH4dOSN08K+27lDBvgWyCY4jMtzOwjNYo17Ip3Z4xaHR5Gef17NfZvmAot0SCoEoIVqV1+If11f/6E=
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=1771511451;
	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=NuQEVgW+Cs/2UnJ66xPuD9vx/rd7t25ZlXFCPYDmSXM=;
	b=KJcrmaI5FLGJPl7nFMoNKnDvz7upOZgkiuzH4lYbgFdSx7xaO0IGX3NZ63oGELbT
	MmBY+XPucafzStXPrkhyFWX1PrCtgVjP3L03CPLN7PwE65A+Ie7cMGKTcWWQSSIWqut
	x4IruAE0bItXRkRF6uMp+EFHIr1aw+w7ANF5Gg2Q=
Message-ID: <56362a0e-7110-445a-b297-0fab8901a077@apertussolutions.com>
Date: Thu, 19 Feb 2026 09:30:46 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
Content-Language: en-US
To: Jan Beulich <jbeulich@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <afc94229-16d9-442b-974c-9f038f2300a1@suse.com>
 <e176fc10-bc1a-40fe-a129-dc862e964761@apertussolutions.com>
 <efb0196d-7b2c-457b-816b-8e7be66429eb@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: <efb0196d-7b2c-457b-816b-8e7be66429eb@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/19/26 08:23, Jan Beulich wrote:
> On 19.02.2026 13:34, Daniel P. Smith wrote:
>> On 2/19/26 06:11, Jan Beulich wrote:
>>> On 18.02.2026 20:08, Daniel P. Smith wrote:
>>>> @@ -238,28 +242,39 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
>>>>    
>>>>        while ( dom_state_changed )
>>>>        {
>>>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>>>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
>>>>            if ( dom >= DOMID_FIRST_RESERVED )
>>>>                break;
>>>> +
>>>> +        d = rcu_lock_domain_by_id(dom);
>>>> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
>>>> +        {
>>>> +            rcu_unlock_domain(d);
>>>> +            d = NULL;
>>>
>>> This looks unnecessary; the next loop iteration will set d unconditionally,
>>> and d isn't (and wasn't) used past the loop. Plus there is also no such
>>> clearing after the other rcu_unlock_domain().
>>>
>>
>> If the src domain didn't have the permission on any of the target
>> domains, then *d will leak the last domain checked back to the caller.
>> While I didn't see it being used after the call site, it's a good
>> principle not to leak from a function an object for which access was denied.
> 
> I don't follow: What do you mean by "*d will leak"? d is local to this function;
> no domain pointer is being returned.
> 

My bad, you are correct, will drop.

>>>> +            continue;
>>>> +        }
>>>
>>> This cleanup here also is redundant with the one done further down. Imo where
>>> possible we should prefer to have only a single such instance, which looks to
>>> be easily possible by using ...
>>>
>>>>            if ( test_and_clear_bit(dom, dom_state_changed) )
>>>
>>>
>>>           if ( (!d || !xsm_get_domain_state(XSM_XS_PRIV, d)) &&
>>>                test_and_clear_bit(dom, dom_state_changed) )
>>>
>>> or
>>>
>>>           if ( (d && xsm_get_domain_state(XSM_XS_PRIV, d)) ||
>>>                !test_and_clear_bit(dom, dom_state_changed) )
>>>           {
>>>                ...
>>>                continue;
>>>           }
>>>
>>> albeit then the reduction of indentation of the subsequent code would cause
>>> quite a bit more code churn.
>>
>> I would prefer the latter to keep the clearing of d to NULL only when
>> access was denied.
> 
> I again don't understand, as ...
> 
>>>>            {
>>>>                *domid = dom;
>>>>    
>>>> -            d = rcu_lock_domain_by_id(dom);
>>>> -
>>>>                if ( d )
>>>>                {
>>>>                    set_domain_state_info(info, d);
>>>> -
>>>>                    rcu_unlock_domain(d);
>>>>                }
>>>>                else
>>>>                    memset(info, 0, sizeof(*info));
>>>>    
>>>>                rc = 0;
>>>> -
>>>>                break;
> 
> ... this code would remain unchanged apart from the reduced indentation.
> 
>>> I don't think the blank lines need dropping for the purpose of the patch?
>>> Yes, they may seem excessive, but nevertheless some prefer to have rather
>>> too many of them than too few. (Personally I don't mind their removal,
>>> but that really doesn't look to belong here.)
>>
>> Okay, but as you state above, with the compounding of the if statement,
>> the indentation will go away and the whole section will a remove/add
>> section to the diff. Would you still want the line spacing maintained?
> 
> As said, I don't mind those particular blank lines being dropped (if that's
> because adjacent lines are touched anyway).
> 

ack.

>>>> --- a/xen/common/domctl.c
>>>> +++ b/xen/common/domctl.c
>>>> @@ -860,12 +860,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>>>>            break;
>>>>    
>>>>        case XEN_DOMCTL_get_domain_state:
>>>> -        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>> -        if ( ret )
>>>> -            break;
>>>> -
>>>> -        copyback = 1;
>>>>            ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
>>>> +        if ( !ret )
>>>> +            copyback = 1;
>>>
>>> Nit: As you need to touch this, please switch to using "true".
>>
>> Just to be clear, you mean switching to a conditional statement vs
>> testing for not zero?
> 
> No. I mean using "true" in place of "1", since copyback is of type "bool".
> 

ack.


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 14:37:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 14:37:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236383.1539111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt59a-0004DB-Md; Thu, 19 Feb 2026 14:37:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236383.1539111; Thu, 19 Feb 2026 14:37: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 1vt59a-0004D4-Im; Thu, 19 Feb 2026 14:37:18 +0000
Received: by outflank-mailman (input) for mailman id 1236383;
 Thu, 19 Feb 2026 14:37: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=0KsF=AX=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vt59Y-0004Ct-F5
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 14:37:16 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 78ebf98e-0da0-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 15:37:14 +0100 (CET)
Received: from PH8PR02CA0019.namprd02.prod.outlook.com (2603:10b6:510:2d0::27)
 by DS0PR12MB7535.namprd12.prod.outlook.com (2603:10b6:8:13a::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.15; Thu, 19 Feb
 2026 14:37:05 +0000
Received: from CY4PEPF0000E9DA.namprd05.prod.outlook.com
 (2603:10b6:510:2d0:cafe::5a) by PH8PR02CA0019.outlook.office365.com
 (2603:10b6:510:2d0::27) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.16 via Frontend Transport; Thu,
 19 Feb 2026 14:37:05 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9DA.mail.protection.outlook.com (10.167.241.73) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Thu, 19 Feb 2026 14:37:04 +0000
Received: from SATLEXMB03.amd.com (10.181.40.144) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Thu, 19 Feb
 2026 08:37:03 -0600
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, 19 Feb
 2026 08:37:03 -0600
Received: from [172.24.149.13] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Feb 2026 08:37:02 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78ebf98e-0da0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ZrUgK1yEFZqyDuZJXPZ+qkG5TC8AzaFpggcSH/6HY7oIc9s6V2e8G2GPM/OuTP52BDlt+yk4IS3aePfLknJ+2bGBKZwcIfB+gWFXmV/2ek1Jn6f/JBKIqZJGFm3RCM4OSrUf4ih+KdiOH1Z4F9s35bt0aZ7m/jPXYaGoxGnQ0RdHB74uwn/dy4+blC9t1eMkOe9AkQgH6CTGbdwsq9oMcGiopzxhX+E+7aIwpLjB2ydKZp26gy+DYC9VMVBSHMWroqxL5e4PMSpdKJ0ieiC/JSpU5Tx/2MgoIUb/+WNdW2Bva3dwU7S9gvjgw6EmVcG2qCxnVQsJbiSXrF9i/bnpkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qYK2ZDaHL3CDGHtV+ngCMUktxVage+/6HNdZScp0ESE=;
 b=QjsL2hJgCxJvFCYSrGfinf5c7IZ8ZryrZFpDtmechZat9wGQI4h2Sb0RGXRDuf65M5M6vtn16LQx2QO+/GYrQFV19c0+9CyGBIoZRjqKHZCqqh0nyUK4Z+pmqeorwpC+t9V9DiLamEEoEoAroNbxazuEvOTSHh8dbo1NRX4SN8QtOmxV/BRNzanM+NkjJOidVwwe2LqJmlncOhwXAUTUZ0T7I2FVnl5r3BH6SJcJkjrKEnGdMx0n5/g+TBWGLUCnmNbCvhZyHxXYA+CG2O36r5zU8Ko0pXJIAeg0r7CjFdfz+agM24rvv1fk/70Ct1ITANDImSP5c77Sc3tVBqaVEg==
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=qYK2ZDaHL3CDGHtV+ngCMUktxVage+/6HNdZScp0ESE=;
 b=Top2128g7fBLA8L7RxRslNLcDETj1XYPxo97d3rODJE9XGxsSB+pOYVu3/BakmdbWGrR49eb1QrKVXuWtM2h/xuKKFs0wzSHEakDM+EL83TT7P7srhJ5J1tbVOxVKIBn8bVGN1bMli4M/9CEQ9EIrZdGxqXL1MK8x0YWOJzBoiA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <88098c92-b905-49bf-be78-ccc794b1d5e0@amd.com>
Date: Thu, 19 Feb 2026 06:31:05 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>, Jan Beulich
	<jbeulich@suse.com>
CC: Chris Rogers <rogersc@ainfosec.com>, Dmytro Firsov
	<dmytro_firsov@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>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>, <xen-devel@lists.xenproject.org>
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
 <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@suse.com>
 <7a334660-95db-4f6e-beb5-9115372567bb@suse.com>
 <539aceb3-8e94-4476-a538-77c1eb47e188@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <539aceb3-8e94-4476-a538-77c1eb47e188@suse.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
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: CY4PEPF0000E9DA:EE_|DS0PR12MB7535:EE_
X-MS-Office365-Filtering-Correlation-Id: 6c23c847-32eb-4c89-7863-08de6fc45a1e
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?VjNLY3RBeTBSZVJtS2VnQWFSaTVFaW5mREp0NEkyQjJtYkpjZS9xWVA1QjJN?=
 =?utf-8?B?V0JmOWxoMGl3VEY3MlVqVlN5STFEMUtvS3BobmtjWXYwYXFCTUNMVUYwVmxk?=
 =?utf-8?B?bTJSNmkxQTVsSGVYc3lUZWYrRTJZSnNxOFlaS0t2Y1cvc2pYeU5DdGlHS1RR?=
 =?utf-8?B?eDNQcEFBeVN2bEZUOWxLV011T0NIdDNLWkN1SWFYZGVRR3V6OGxxdzd6ZDhw?=
 =?utf-8?B?bWV2dHpYU1g1dXVXSE5oTjRnUlpsR05adGRKNG5XNXBvZHM5NXFOaHZNWVRG?=
 =?utf-8?B?Q1cxN0pLZkRvZGcvdTFEbkM0cHlhbEVpZTBHV1ZQRk9VNldkRzRUbWFqRHBY?=
 =?utf-8?B?RWNOSG80d2VrOWVrSkk3M1crZXNSWnVHa3VCZHZMRXowMEREVHlMcWxHSEFu?=
 =?utf-8?B?RmNGd3VvYXhGajRFTG1qRjZNZDZMWUozVis5L2pOL3Fxa2RnblJXVEp0Mmpn?=
 =?utf-8?B?bVltU3dFNE1QRkEwM1NjUVNIRDhvNzlrcTkyeVVxaHUreFZBZjFlSmhxMFQ5?=
 =?utf-8?B?a2g1cVdQeEVkUFpJcHlyblRQV1ZrdHYrWEhpSDBsT1FmVzdNam12cjRoUWlw?=
 =?utf-8?B?RjJqRXRqUTFsYU96YlF6QTF2NDByekN6cXFDOFUzMHZWbEMxbzRXdTA4aDlT?=
 =?utf-8?B?ZUczOWRpWGoya1RaZ3NJWlVhT0VkeU1SSVQxcnI1SEFtUzZjdXlEOTA3ajRW?=
 =?utf-8?B?bGNWNU9qOEJHZldqRnhwbDBkUko5Z0ZyY1VOakQvZEk2MWl5VnNiSExmL3pH?=
 =?utf-8?B?eVV3d2habnpNRVdTNTdIQWlybWFWY1JmcTluVGhPSW5Hc09oc3RFYU9pM2Uy?=
 =?utf-8?B?ajVlcEhjYkJHTkZjRzk4SStxU2RUM2puNGZDZ2VUUTRNOVU4RGZ5aWw3dUZO?=
 =?utf-8?B?bmZ0OTUyVlNqMWY5SEdYb0F6YmEwV3FnVEVld015WGs1WjJVQzl0Q21QOU51?=
 =?utf-8?B?eHJFdm1uYU5FTHlyOVZ5aUh0UXFYY3RaOHA2a0NMTHVjYzZCVndPWUpNbEpC?=
 =?utf-8?B?ay9JNHl2dEQwSXlwelBDRlNNTlBLY2g4SDdyMzFzQi9XOVBESGpDdFJwOENF?=
 =?utf-8?B?eDV5ZXFjZ1lLeWsvd3hZWFRuZU1ENUg5bHNkY1pkdGJsTTlsSlhhWkhkMUtK?=
 =?utf-8?B?YTNqYWEybU9hZlNJTzhvckNhUEJ4ZU8ycytpV2NCRHNjMkkwdHBBdkYxTVUz?=
 =?utf-8?B?UGdubDRJbFlkUWtvTzZKU3pTSXpoTHJNUmpreXFoVDRac2ovZGpRd0RkZk5y?=
 =?utf-8?B?TzZvcHlNV2lGSW01V0dZSGUxemtTNDdhNHIwRU5adURhcnRHS0JkaFpxa3Jl?=
 =?utf-8?B?OHhWRlc0aXNmMmg4MTVaNUt0T2gySWxQL1d5b1Zna0tRWEdEV2VrVjRFWGlu?=
 =?utf-8?B?RmJwaHJVYWpoSStRYjR3akNkbjhhTkJNU2xqM1ZDak5rNFIvdDVrTzVpV0pC?=
 =?utf-8?B?SnEyLzNYa3R1STlvMG8rbXR4UWlPMW15TlNXaHFidlRDNnNKamZ5T3dkSEtj?=
 =?utf-8?B?ajZpcGxsdU5leVdHdXhMZVZnckJEbDF0UTRkVDBlVmdGajhEVGZ0S0V5NDJY?=
 =?utf-8?B?WUc4a1JtZ2pRVEpSOFhpZ0crbUFPZkRRaHdPRllxU2hQN0krQ0loRzI0WDFJ?=
 =?utf-8?B?TWhXY1dWa2wySkYycnFBemxXSVBYa3VlN1FyOW81QjFUWWczZXBPaFJXcGZy?=
 =?utf-8?B?dU0yemVVQ0FQRkMvbkYzaEt5MnhlL1JwUFRqcEFHVURYOVI2ZjRweWN2TG0x?=
 =?utf-8?B?WXZUd2VjZkJhTmRuK0hNTGM4dXJtN2F6TVV4a20xUFhMU3lmbStkUkpGVlo2?=
 =?utf-8?B?M0pwRDFWd2RCKzV0ZlZYZ0plK3U5VVZySGxNMW9jcmdWa2NWOGFOWkZack4w?=
 =?utf-8?B?WEd2MExzTmtMVUE3WjRJRXFqaFQ1MnZEUHRaQUdSK0MrOG43cUFlQnA4cFV5?=
 =?utf-8?B?VUI0MzZwQlhPaDQySzE2S1pFUU5VY0llRjRYV0ZjbHZnQmMwVktZTHBoUEtB?=
 =?utf-8?B?aTdGWUkxTFJucVU0NVl4Vk1FY0F5QnlVc3JzaU4yS0NrSlVCYU1pMGx4OW9R?=
 =?utf-8?B?Nm52K1l3Umd6Q3RBdDlmUGVKVE9yT0JhWWo2RDlTUkI3NTJvRExST0dMZXFN?=
 =?utf-8?B?R2RHdXkrQ3AxbkxNdFdIY2ZSanlXc3g5MXkxVjh4ME5UeWM1cFlZK2FXYXpO?=
 =?utf-8?B?dXR6OXpLa0c3TDlHV1ZvTFByYjg5L05ZK3JxZi9YeUZvVDBGclVKSTVkVDZE?=
 =?utf-8?B?blZ3MVJFMnUwYzRFVFNQRGtjbWVnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	skQTELzijJ7mplWEKKqpn+RXhYSSRHCsGASFqYKGg7q5ASnQmi+D/Jc+QJQdIuQdT9+YDhrHYytFCfmfWeJRT+3yKFCFxazl/UT0ZAvxm/UHcWa56AhBkiMMDR7zTLWmX+jYWAdlBAgS4nL6muT93a1/K5UIALb2VqxbImZ31o4hQKFQs3BU7kwHFqwzSVbLq7SXVrVPr1D+UrZ8t19bE35a6nrAO5KYzOBPqrCpLSy3DpD6sp1zjjdLVfvCDb8W/3S3g04YzfyV6UIDDbDFfl0lQIaVy7xUb5J8I4+PQhEc//R3RYm4N9msFBPSmGwMhODRYAwRF640iDbrvpCXSdodLF5ymeiirRJc16VD2AMr84+7J06LtJG7woA1gKTnvm0Zil1Jw5krcjVAicAcRNw8d8Ps4IBrBMRzBaD0h2aHDXdks/qvdcjzua/vpzn0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2026 14:37:04.8519
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c23c847-32eb-4c89-7863-08de6fc45a1e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9DA.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7535

On 2026-02-19 06:21, Jürgen Groß wrote:
> On 19.02.26 12:13, Jan Beulich wrote:
>> On 19.02.2026 12:03, Juergen Gross wrote:
>>> On 19.02.26 11:52, Jan Beulich wrote:
>>>> On 19.02.2026 00:04, Jason Andryuk wrote:
>>>>> On 2026-02-18 14:08, Daniel P. Smith wrote:
>>>>>> --- a/xen/common/domain.c
>>>>>> +++ b/xen/common/domain.c
>>>>>> @@ -210,7 +210,7 @@ static void set_domain_state_info(struct 
>>>>>> xen_domctl_get_domain_state *info,
>>>>>>     int get_domain_state(struct xen_domctl_get_domain_state *info, 
>>>>>> struct domain *d,
>>>>>>                          domid_t *domid)
>>>>>>     {
>>>>>> -    unsigned int dom;
>>>>>> +    unsigned int dom = -1;
>>>>>>         int rc = -ENOENT;
>>>>>>         struct domain *hdl;
>>>>>> @@ -219,6 +219,10 @@ int get_domain_state(struct 
>>>>>> xen_domctl_get_domain_state *info, struct domain *d,
>>>>>>         if ( d )
>>>>>>         {
>>>>>> +        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>>>> +        if ( rc )
>>>>>> +            return rc;
>>>>>> +
>>>>>>             set_domain_state_info(info, d);
>>>>>>             return 0;
>>>>>> @@ -238,28 +242,39 @@ int get_domain_state(struct 
>>>>>> xen_domctl_get_domain_state *info, struct domain *d,
>>>>>
>>>>> Between the two hunks is this:
>>>>>
>>>>>        hdl = lock_dom_exc_handler();
>>>>>
>>>>>        /*
>>>>>         * Only domain registered for VIRQ_DOM_EXC event is allowed 
>>>>> to query
>>>>>         * domains having changed state.
>>>>>         */
>>>>>        if ( current->domain != hdl )
>>>>>        {
>>>>>            rc = -EACCES;
>>>>>            goto out;
>>>>>        }
>>>>>
>>>>> So it is only the domain with VIRQ_DOM_EXC that can enter the while 
>>>>> loop:
>>>>>
>>>>>>         while ( dom_state_changed )
>>>>>>         {
>>>>>> -        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
>>>>>> +        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, 
>>>>>> dom + 1);
>>>>>>             if ( dom >= DOMID_FIRST_RESERVED )
>>>>>>                 break;
>>>>>> +
>>>>>> +        d = rcu_lock_domain_by_id(dom);
>>>>>> +        if ( d && xsm_get_domain_state(XSM_XS_PRIV, d) )
>>>>>
>>>>> ... if the VIRQ_DOM_EXC owner is denied for domain d ...
>>>>>
>>>>>> +        {
>>>>>> +            rcu_unlock_domain(d);
>>>>>> +            d = NULL;
>>>>>> +            continue;
>>>>>
>>>>> ... the caller would continue ...
>>>>>
>>>>>> +        }
>>>>>> +
>>>>>>             if ( test_and_clear_bit(dom, dom_state_changed) )
>>>>>
>>>>> ... and this bit would never be cleared.  Should the VIRQ_DOM_EXC 
>>>>> owner
>>>>> always get to clear the bit even if it cannot see the result?
>>>>
>>>> I don't think so, no. Whenever a legitimate consumer occurs (the 
>>>> owner of
>>>> VIRQ_DOM_EXC can change, after all), it'll then consume the bits as 
>>>> needed.
>>>> More generally, I think we're better off not making the code here 
>>>> depend
>>>> too much on that special VIRQ_DOM_EXC property.
>>>
>>> OTOH a new VIRQ_DOM_EXC owner will result in a complete reset of the 
>>> bitmap
>>> anyway (that is: the bits for all existing domains will be set, while 
>>> all
>>> others will be cleared).
>>
>> Yes, while writing my reply I wondered whether I should mention that. 
>> To keep
>> things a little more simple, I didn't. Plus for this aspect the last 
>> sentence
>> of my earlier reply also applies.
> 
> I believe flask settings can be changed, right?
> 
> If so, clearing the bit would be affecting the scenario where the 
> VIRQ_DOM_EXC
> is NOT changed, but the flask settings are updated to allow it obtaining 
> info
> about d.

Yes, this could happen, so the bits should remain set.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 14:42:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 14:42:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236414.1539134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt5E8-00064r-AZ; Thu, 19 Feb 2026 14:42:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236414.1539134; Thu, 19 Feb 2026 14: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 1vt5E8-00064k-62; Thu, 19 Feb 2026 14:42:00 +0000
Received: by outflank-mailman (input) for mailman id 1236414;
 Thu, 19 Feb 2026 14:41: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=l/wp=AX=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vt5E6-00064e-Nn
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 14:41:58 +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 2318b972-0da1-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 15:41:56 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771512105172179.85618630309523;
 Thu, 19 Feb 2026 06:41:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2318b972-0da1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771512109; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=GmPpSgtzR0jw990HLRwR+n9r9u4wy9qoV+v5rZpJrOPcPBXLgXQzLnTWcib+f0SNDxExEIr8mND2FKQ8swEOxBWHocVjR+SRkYNG+XzGCAtkDwOpgSjcyoR/hHl2uFwoHOdf5FcVDSKc4k1Zf/8VdnQdS+EOn4RwYMGsIoHYECQ=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771512109; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=kEm1nq/NUwA6BJvciL7qaSBoCWLjHLldQ4dQbjG98JM=; 
	b=D6RmEA12LVy/ekj8BI+n30etJR4AsRd526cQ4ohkSl+t0MQd7xTLfte9X+lo6b6ITKJQSq9bmL0/JrQbhkNtPLo6qs6zLC2u+jFlgYLik+1xHytS/nJwZKAy2t1aQBQBoJe/dESBosQywqiwEYY5WxomtTibD8ciC8UuCr3CFHM=
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=1771512109;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=kEm1nq/NUwA6BJvciL7qaSBoCWLjHLldQ4dQbjG98JM=;
	b=Pxfyp7ab3aTY+emXhJgAC8CO/NzZvEZR/n7vYXGhi3Qk3u2S0TYEXAM/TeQQPSKK
	w9Ke/LsyWWpa52td4Svey23ilpsZbz5f4OjlSa2ee3Pd16arCb90l20EltIBdLYprD+
	gAez8u92bh2uuVRFX7y0xGdbg+O0/AMFX80X/ynQ=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Chris Rogers <rogersc@ainfosec.com>,
	Dmytro Firsov <dmytro_firsov@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: [BUG v3] common/domctl: xsm update for get_domain_state access
Date: Thu, 19 Feb 2026 09:37:07 -0500
Message-Id: <20260219143707.1588-1-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

When using XSM Flask, passing DOMID_INVALID will result in a NULL pointer
reference from the passing of NULL as the target domain to
xsm_get_domain_state(). Simply not invoking xsm_get_domain_state() when the
target domain is NULL opens the opportunity to circumvent the XSM
get_domain_state access check. This is due to the fact that the call to
xsm_domctl() for get_domain_state op is a no-op check, deferring to
xsm_get_domain_state().

Modify the helper get_domain_state() to ensure the requesting domain has
get_domain_state access for the target domain, whether the target domain is
explicitly set or implicitly determined with a domain state search. In the case
of access not being allowed for a domain found during an implicit search, the
search will continue to the next domain whose state has changed.

Fixes: 3ad3df1bd0aa ("xen: add new domctl get_domain_state")
Reported-by: Chris Rogers <rogersc@ainfosec.com>
Reported-by: Dmytro Firsov <dmytro_firsov@epam.com>
Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
Changes in v3:
- collapse if statements
- dropped unnecessary NULL
- use true for copyback

Changes in v2:
- fix commit message
- init dom as -1
- rework loop logic to use test_and_clear_bit()
---
 xen/common/domain.c | 37 ++++++++++++++++++++++---------------
 xen/common/domctl.c |  7 ++-----
 2 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index de6fdf59236e..73d6c72d9709 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -210,7 +210,7 @@ static void set_domain_state_info(struct xen_domctl_get_domain_state *info,
 int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
                      domid_t *domid)
 {
-    unsigned int dom;
+    unsigned int dom = -1;
     int rc = -ENOENT;
     struct domain *hdl;
 
@@ -219,6 +219,10 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
 
     if ( d )
     {
+        rc = xsm_get_domain_state(XSM_XS_PRIV, d);
+        if ( rc )
+            return rc;
+
         set_domain_state_info(info, d);
 
         return 0;
@@ -238,28 +242,31 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
 
     while ( dom_state_changed )
     {
-        dom = find_first_bit(dom_state_changed, DOMID_MASK + 1);
+        dom = find_next_bit(dom_state_changed, DOMID_MASK + 1, dom + 1);
         if ( dom >= DOMID_FIRST_RESERVED )
             break;
-        if ( test_and_clear_bit(dom, dom_state_changed) )
-        {
-            *domid = dom;
-
-            d = rcu_lock_domain_by_id(dom);
 
+        d = rcu_lock_domain_by_id(dom);
+        if ( (d && xsm_get_domain_state(XSM_XS_PRIV, d)) ||
+             !test_and_clear_bit(dom, dom_state_changed) )
+        {
             if ( d )
-            {
-                set_domain_state_info(info, d);
-
                 rcu_unlock_domain(d);
-            }
-            else
-                memset(info, 0, sizeof(*info));
+            continue;
+        }
 
-            rc = 0;
+        *domid = dom;
 
-            break;
+        if ( d )
+        {
+            set_domain_state_info(info, d);
+            rcu_unlock_domain(d);
         }
+        else
+            memset(info, 0, sizeof(*info));
+
+        rc = 0;
+        break;
     }
 
  out:
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 29a7726d32d0..93738931c575 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -860,12 +860,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
         break;
 
     case XEN_DOMCTL_get_domain_state:
-        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
-        if ( ret )
-            break;
-
-        copyback = 1;
         ret = get_domain_state(&op->u.get_domain_state, d, &op->domain);
+        if ( !ret )
+            copyback = true;
         break;
 
     default:
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 14:49:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 14:49:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236429.1539142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt5LS-0006xq-3M; Thu, 19 Feb 2026 14:49:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236429.1539142; Thu, 19 Feb 2026 14:49:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt5LS-0006xj-0M; Thu, 19 Feb 2026 14:49:34 +0000
Received: by outflank-mailman (input) for mailman id 1236429;
 Thu, 19 Feb 2026 14:49: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=Zdoi=AX=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vt5LQ-0006vg-WB
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 14:49:33 +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 3311f969-0da2-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 15:49:31 +0100 (CET)
Received: by mail-ed1-x52f.google.com with SMTP id
 4fb4d7f45d1cf-65b94e0a875so1462643a12.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 06:49:32 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1?
 (2a00-12d0-af5b-2f01-4042-c03-ce4d-a5a1.ip.tng.de.
 [2a00:12d0:af5b:2f01:4042:c03:ce4d:a5a1])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b8fc735e872sm585475766b.10.2026.02.19.06.49.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 06:49:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3311f969-0da2-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771512571; x=1772117371; 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=RiaziIfv6nYQB+Q2maA8CGEfKFFLnXWXM//u1aHrEHs=;
        b=Q9WjZOCDGq0jrDHAadMTy2bebNj+iwpzmAnwTICiIuxJcEvdlXUwXT2tWl3fvR0+8Q
         EMbNbOWoiGYNM4aEpggjU1Sg5bVSYzWH/Ce9jsuvQwL63P2GjQ6fz8vQCAVNCNhRo4et
         Plbgo36d7ukoRZIPD+O6Tljo54sBjrJBhZq7X1Edky/2etQG5vfpLaYHPj1SZWY5Sayv
         Q70FIZcaVLILQsGZVYNPhiofz2bKYOPAwUSiTzWNe83hWDzfQ5sSNWIk4Lf0Q/ZwPCFY
         P/fpldD7PKpfqMd/FkOCCX1XOGwDwsylDPv02AhmMg0l2wyKkumrqA5VhMocGn2tDSTS
         FSag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771512571; x=1772117371;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=RiaziIfv6nYQB+Q2maA8CGEfKFFLnXWXM//u1aHrEHs=;
        b=CjMl2lfzrMt1XX8KEpBWxy77CHdGPi1/Gs0i9XeaBKKGpY3G0yP4knz/eGZ8rKEIad
         w3X6/nmWqdsRiipGEwX0S/Rr+XbDS9lDGhuxBD3qpbibp7Vgqrg/yCm4xmeVRWO1lj2n
         zEsVzTtCoaKpSUeUZdBKuKa9wHoS5R4OkhCt0b4IBEtCCd5jIKq1dwIPdKWF7ezLy5N6
         5O35xQFHL/qCbKVNOXTYmFthVYCNBDYCpvNcs0KCByOTqI10aBGmxNDa0OPqYKF6RW2H
         cTEzZjCq7gqfGjfkHrMajGD1KJzFFVhN4rdNX7bPA4aR9r4mnFDnIR2wRd8+8PYOK2OO
         TSbg==
X-Forwarded-Encrypted: i=1; AJvYcCVLgCC43Wm3ZxUXMn8l2a0ODjFUskM2BrI342IspM6TPXSyJCQz4x2jQXsLxlxEq/Scg4X+twvjfOI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyWYLhPDQos8EB5N1XS+mpgOJyQAgOiV+Tx9oitRJc0VicpWb2L
	9mASO5uhm0vrfRWufWrdYfedDntuJy54dIBwjeuJc3V7uKuGE4ffmo4nrOixjKT8A/c=
X-Gm-Gg: AZuq6aKfb3Jh1ZFxQ7aP5i/GOVOHu5jVN61trlJJJfq3CNIh06B4eJTx5AXSyADLLjY
	JzeTGNbHiJL2cCERB5icXCTAaLB8J72QIXku5RlJ6UlyWeguml9zLxSJI5lJABUNxNSFo3/HTqW
	HjILFjgrdx1bItTpNCmatrjcR4jfpi/gVdfEj0kITrFR4YvUL3BeSjvpGg6uQtI2QcX9UYeFcOS
	dU+4Da+oDZ9AcliOvpjPnpC7s2/QHFTDBnwUqM1oOy0rJrfmWwsm4DNDJBzEwhMEGS7w1ixbhyM
	MEH76qgq4Wwm40Qely7SAjkrVahn9b32Cy53Hq5cN2LfFWOWnDABRFDDXA8lYQwYmlSV5UJb8DF
	Twcg8czCThcX3iWT2BlKEco2a6W8d9IyJpXz3bB6D/dFmfKWGEzlfnneWQJ8vNQ1ao5lH+GebXv
	5t8TlZMh7fC1yi3hLyajOLK7xILwlzoSdn3OSTsRNbDkRvIXYhle2Vairul7/fcDnkZrRGQASBo
	3tQ7QZuMlmjKvXaEIH2JqmNLrphtWx3zHvZaK3rjXUh/RzEEQ==
X-Received: by 2002:a17:906:f59d:b0:b76:f57f:a2c3 with SMTP id a640c23a62f3a-b903daa5f44mr364786066b.12.1771512571303;
        Thu, 19 Feb 2026 06:49:31 -0800 (PST)
Message-ID: <d113f326-1a8e-40c4-8187-c255aac7aeba@suse.com>
Date: Thu, 19 Feb 2026 15:49:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: Jason Andryuk <jason.andryuk@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
 <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@suse.com>
 <7a334660-95db-4f6e-beb5-9115372567bb@suse.com>
 <539aceb3-8e94-4476-a538-77c1eb47e188@suse.com>
 <88098c92-b905-49bf-be78-ccc794b1d5e0@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: <88098c92-b905-49bf-be78-ccc794b1d5e0@amd.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------wK0FRF8waLqxf8xu0gQ0gcfZ"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------wK0FRF8waLqxf8xu0gQ0gcfZ
Content-Type: multipart/mixed; boundary="------------vMzHeRKnqIsoas9yupWsUKj6";
 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: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>,
 xen-devel@lists.xenproject.org
Message-ID: <d113f326-1a8e-40c4-8187-c255aac7aeba@suse.com>
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <fd69b278-6e7d-46b0-95ac-fff3926b1c4f@suse.com>
 <a13a45a1-9da4-4fab-9d5d-59ac06ea7b23@suse.com>
 <7a334660-95db-4f6e-beb5-9115372567bb@suse.com>
 <539aceb3-8e94-4476-a538-77c1eb47e188@suse.com>
 <88098c92-b905-49bf-be78-ccc794b1d5e0@amd.com>
In-Reply-To: <88098c92-b905-49bf-be78-ccc794b1d5e0@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=

--------------vMzHeRKnqIsoas9yupWsUKj6
Content-Type: multipart/mixed; boundary="------------sLXD7NgoyPafGKV56QfLrHCT"

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

T24gMTkuMDIuMjYgMTI6MzEsIEphc29uIEFuZHJ5dWsgd3JvdGU6DQo+IE9uIDIwMjYtMDIt
MTkgMDY6MjEsIErDvHJnZW4gR3Jvw58gd3JvdGU6DQo+PiBPbiAxOS4wMi4yNiAxMjoxMywg
SmFuIEJldWxpY2ggd3JvdGU6DQo+Pj4gT24gMTkuMDIuMjAyNiAxMjowMywgSnVlcmdlbiBH
cm9zcyB3cm90ZToNCj4+Pj4gT24gMTkuMDIuMjYgMTE6NTIsIEphbiBCZXVsaWNoIHdyb3Rl
Og0KPj4+Pj4gT24gMTkuMDIuMjAyNiAwMDowNCwgSmFzb24gQW5kcnl1ayB3cm90ZToNCj4+
Pj4+PiBPbiAyMDI2LTAyLTE4IDE0OjA4LCBEYW5pZWwgUC4gU21pdGggd3JvdGU6DQo+Pj4+
Pj4+IC0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMNCj4+Pj4+Pj4gKysrIGIveGVuL2NvbW1v
bi9kb21haW4uYw0KPj4+Pj4+PiBAQCAtMjEwLDcgKzIxMCw3IEBAIHN0YXRpYyB2b2lkIHNl
dF9kb21haW5fc3RhdGVfaW5mbyhzdHJ1Y3QgDQo+Pj4+Pj4+IHhlbl9kb21jdGxfZ2V0X2Rv
bWFpbl9zdGF0ZSAqaW5mbywNCj4+Pj4+Pj4gwqDCoMKgIGludCBnZXRfZG9tYWluX3N0YXRl
KHN0cnVjdCB4ZW5fZG9tY3RsX2dldF9kb21haW5fc3RhdGUgKmluZm8sIHN0cnVjdCANCj4+
Pj4+Pj4gZG9tYWluICpkLA0KPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgZG9taWRfdCAqZG9taWQpDQo+Pj4+Pj4+IMKgwqDCoCB7
DQo+Pj4+Pj4+IC3CoMKgwqAgdW5zaWduZWQgaW50IGRvbTsNCj4+Pj4+Pj4gK8KgwqDCoCB1
bnNpZ25lZCBpbnQgZG9tID0gLTE7DQo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgIGludCByYyA9
IC1FTk9FTlQ7DQo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkb21haW4gKmhkbDsN
Cj4+Pj4+Pj4gQEAgLTIxOSw2ICsyMTksMTAgQEAgaW50IGdldF9kb21haW5fc3RhdGUoc3Ry
dWN0IA0KPj4+Pj4+PiB4ZW5fZG9tY3RsX2dldF9kb21haW5fc3RhdGUgKmluZm8sIHN0cnVj
dCBkb21haW4gKmQsDQo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgIGlmICggZCApDQo+Pj4+Pj4+
IMKgwqDCoMKgwqDCoMKgIHsNCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJjID0geHNtX2dl
dF9kb21haW5fc3RhdGUoWFNNX1hTX1BSSVYsIGQpOw0KPj4+Pj4+PiArwqDCoMKgwqDCoMKg
wqAgaWYgKCByYyApDQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBy
YzsNCj4+Pj4+Pj4gKw0KPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNldF9kb21h
aW5fc3RhdGVfaW5mbyhpbmZvLCBkKTsNCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCByZXR1cm4gMDsNCj4+Pj4+Pj4gQEAgLTIzOCwyOCArMjQyLDM5IEBAIGludCBnZXRfZG9t
YWluX3N0YXRlKHN0cnVjdCANCj4+Pj4+Pj4geGVuX2RvbWN0bF9nZXRfZG9tYWluX3N0YXRl
ICppbmZvLCBzdHJ1Y3QgZG9tYWluICpkLA0KPj4+Pj4+DQo+Pj4+Pj4gQmV0d2VlbiB0aGUg
dHdvIGh1bmtzIGlzIHRoaXM6DQo+Pj4+Pj4NCj4+Pj4+PiDCoMKgwqDCoMKgwqAgaGRsID0g
bG9ja19kb21fZXhjX2hhbmRsZXIoKTsNCj4+Pj4+Pg0KPj4+Pj4+IMKgwqDCoMKgwqDCoCAv
Kg0KPj4+Pj4+IMKgwqDCoMKgwqDCoMKgICogT25seSBkb21haW4gcmVnaXN0ZXJlZCBmb3Ig
VklSUV9ET01fRVhDIGV2ZW50IGlzIGFsbG93ZWQgdG8gcXVlcnkNCj4+Pj4+PiDCoMKgwqDC
oMKgwqDCoCAqIGRvbWFpbnMgaGF2aW5nIGNoYW5nZWQgc3RhdGUuDQo+Pj4+Pj4gwqDCoMKg
wqDCoMKgwqAgKi8NCj4+Pj4+PiDCoMKgwqDCoMKgwqAgaWYgKCBjdXJyZW50LT5kb21haW4g
IT0gaGRsICkNCj4+Pj4+PiDCoMKgwqDCoMKgwqAgew0KPj4+Pj4+IMKgwqDCoMKgwqDCoMKg
wqDCoMKgIHJjID0gLUVBQ0NFUzsNCj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3Rv
IG91dDsNCj4+Pj4+PiDCoMKgwqDCoMKgwqAgfQ0KPj4+Pj4+DQo+Pj4+Pj4gU28gaXQgaXMg
b25seSB0aGUgZG9tYWluIHdpdGggVklSUV9ET01fRVhDIHRoYXQgY2FuIGVudGVyIHRoZSB3
aGlsZSBsb29wOg0KPj4+Pj4+DQo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgIHdoaWxlICggZG9t
X3N0YXRlX2NoYW5nZWQgKQ0KPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoCB7DQo+Pj4+Pj4+IC3C
oMKgwqDCoMKgwqDCoCBkb20gPSBmaW5kX2ZpcnN0X2JpdChkb21fc3RhdGVfY2hhbmdlZCwg
RE9NSURfTUFTSyArIDEpOw0KPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgZG9tID0gZmluZF9u
ZXh0X2JpdChkb21fc3RhdGVfY2hhbmdlZCwgRE9NSURfTUFTSyArIDEsIGRvbSArIDEpOw0K
Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICggZG9tID49IERPTUlEX0ZJUlNU
X1JFU0VSVkVEICkNCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJy
ZWFrOw0KPj4+Pj4+PiArDQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBkID0gcmN1X2xvY2tf
ZG9tYWluX2J5X2lkKGRvbSk7DQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIGQgJiYg
eHNtX2dldF9kb21haW5fc3RhdGUoWFNNX1hTX1BSSVYsIGQpICkNCj4+Pj4+Pg0KPj4+Pj4+
IC4uLiBpZiB0aGUgVklSUV9ET01fRVhDIG93bmVyIGlzIGRlbmllZCBmb3IgZG9tYWluIGQg
Li4uDQo+Pj4+Pj4NCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHsNCj4+Pj4+Pj4gK8KgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgcmN1X3VubG9ja19kb21haW4oZCk7DQo+Pj4+Pj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIGQgPSBOVUxMOw0KPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBjb250aW51ZTsNCj4+Pj4+Pg0KPj4+Pj4+IC4uLiB0aGUgY2FsbGVyIHdvdWxk
IGNvbnRpbnVlIC4uLg0KPj4+Pj4+DQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+Pj4+
Pj4+ICsNCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIHRlc3RfYW5kX2Ns
ZWFyX2JpdChkb20sIGRvbV9zdGF0ZV9jaGFuZ2VkKSApDQo+Pj4+Pj4NCj4+Pj4+PiAuLi4g
YW5kIHRoaXMgYml0IHdvdWxkIG5ldmVyIGJlIGNsZWFyZWQuwqAgU2hvdWxkIHRoZSBWSVJR
X0RPTV9FWEMgb3duZXINCj4+Pj4+PiBhbHdheXMgZ2V0IHRvIGNsZWFyIHRoZSBiaXQgZXZl
biBpZiBpdCBjYW5ub3Qgc2VlIHRoZSByZXN1bHQ/DQo+Pj4+Pg0KPj4+Pj4gSSBkb24ndCB0
aGluayBzbywgbm8uIFdoZW5ldmVyIGEgbGVnaXRpbWF0ZSBjb25zdW1lciBvY2N1cnMgKHRo
ZSBvd25lciBvZg0KPj4+Pj4gVklSUV9ET01fRVhDIGNhbiBjaGFuZ2UsIGFmdGVyIGFsbCks
IGl0J2xsIHRoZW4gY29uc3VtZSB0aGUgYml0cyBhcyBuZWVkZWQuDQo+Pj4+PiBNb3JlIGdl
bmVyYWxseSwgSSB0aGluayB3ZSdyZSBiZXR0ZXIgb2ZmIG5vdCBtYWtpbmcgdGhlIGNvZGUg
aGVyZSBkZXBlbmQNCj4+Pj4+IHRvbyBtdWNoIG9uIHRoYXQgc3BlY2lhbCBWSVJRX0RPTV9F
WEMgcHJvcGVydHkuDQo+Pj4+DQo+Pj4+IE9UT0ggYSBuZXcgVklSUV9ET01fRVhDIG93bmVy
IHdpbGwgcmVzdWx0IGluIGEgY29tcGxldGUgcmVzZXQgb2YgdGhlIGJpdG1hcA0KPj4+PiBh
bnl3YXkgKHRoYXQgaXM6IHRoZSBiaXRzIGZvciBhbGwgZXhpc3RpbmcgZG9tYWlucyB3aWxs
IGJlIHNldCwgd2hpbGUgYWxsDQo+Pj4+IG90aGVycyB3aWxsIGJlIGNsZWFyZWQpLg0KPj4+
DQo+Pj4gWWVzLCB3aGlsZSB3cml0aW5nIG15IHJlcGx5IEkgd29uZGVyZWQgd2hldGhlciBJ
IHNob3VsZCBtZW50aW9uIHRoYXQuIFRvIGtlZXANCj4+PiB0aGluZ3MgYSBsaXR0bGUgbW9y
ZSBzaW1wbGUsIEkgZGlkbid0LiBQbHVzIGZvciB0aGlzIGFzcGVjdCB0aGUgbGFzdCBzZW50
ZW5jZQ0KPj4+IG9mIG15IGVhcmxpZXIgcmVwbHkgYWxzbyBhcHBsaWVzLg0KPj4NCj4+IEkg
YmVsaWV2ZSBmbGFzayBzZXR0aW5ncyBjYW4gYmUgY2hhbmdlZCwgcmlnaHQ/DQo+Pg0KPj4g
SWYgc28sIGNsZWFyaW5nIHRoZSBiaXQgd291bGQgYmUgYWZmZWN0aW5nIHRoZSBzY2VuYXJp
byB3aGVyZSB0aGUgVklSUV9ET01fRVhDDQo+PiBpcyBOT1QgY2hhbmdlZCwgYnV0IHRoZSBm
bGFzayBzZXR0aW5ncyBhcmUgdXBkYXRlZCB0byBhbGxvdyBpdCBvYnRhaW5pbmcgaW5mbw0K
Pj4gYWJvdXQgZC4NCj4gDQo+IFllcywgdGhpcyBjb3VsZCBoYXBwZW4sIHNvIHRoZSBiaXRz
IHNob3VsZCByZW1haW4gc2V0Lg0KDQpJbiB0aGUgYWJvdmUgc2NlbmFyaW8sIEkgdGhpbmsg
VklSUV9ET01fRVhDIHNob3VsZCBiZSB0cmlnZ2VyZWQgYWZ0ZXIgYSBmbGFzaw0KcG9saWN5
IHVwZGF0ZSBpbiBvcmRlciB0byBsZXQgeGVuc3RvcmVkIGxvb2sgZm9yIHByZXZpb3VzbHkg
bWlzc2VkIGRvbWFpbiBzdGF0ZQ0KY2hhbmdlcy4NCg0KDQpKdWVyZ2VuDQo=
--------------sLXD7NgoyPafGKV56QfLrHCT
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-----

--------------sLXD7NgoyPafGKV56QfLrHCT--

--------------vMzHeRKnqIsoas9yupWsUKj6--

--------------wK0FRF8waLqxf8xu0gQ0gcfZ
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/Ey8FAmmXIvoFAwAAAAAACgkQsN6d1ii/Ey8E
IAf/fkneo7MbieUiG8sLlzmU6AAqujPAlUgToqHBnhEfDakktNjv9/yGQaJPfXexsEfCdhA4hjba
w2e6JYKwSuYl+jce4W+vG6UyKJMtufFy6Wr5VKkXCXVjzT2+LTHSotlfSmT1DEUc6txU5P84ZObN
GEt/Hwr35DyYdGItS7D7Jk/nIJJ1DqeGWYgMmYjrcXRa4dj7Yj5/k3Hut1W0Ml/rz2UD9aazjvGs
NcLXX7FB1E7g+QOB6wzXNnBpxdMXDE6OKICRI5dCZ7pydTUeoUR9D9ZhJTJlS29pM7ZI5HK3Cys1
ecK26Bk/qOOTNf31i95iDMV41K9L6XgkONHFJfvYaw==
=gw2i
-----END PGP SIGNATURE-----

--------------wK0FRF8waLqxf8xu0gQ0gcfZ--


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 15:10:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 15:10:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236452.1539153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt5fi-0002O2-Kx; Thu, 19 Feb 2026 15:10:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236452.1539153; Thu, 19 Feb 2026 15:10: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 1vt5fi-0002Nv-H8; Thu, 19 Feb 2026 15:10:30 +0000
Received: by outflank-mailman (input) for mailman id 1236452;
 Thu, 19 Feb 2026 15:10: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt5fh-0002Np-MK
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 15:10:29 +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 1f7d2c23-0da5-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 16:10:27 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-435a11957f6so887500f8f.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 07:10:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac8d82sm50296630f8f.31.2026.02.19.07.10.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 07:10:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f7d2c23-0da5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771513827; x=1772118627; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uiHV1+uPsnsiaGe1CmpdkcgTyzbx0xEFHEi0Qjuzjw8=;
        b=QYynhKQOKeN6xyOoSqemU0tE9oyFkt36+B2KbWn6K6opUDH37qd0g+LWkPa/yK2CFn
         cmedpbW43wZi11WqRCyPHRF39bgksnSb02Mi7VB8pCcywvq4okt9tW9eAdhwWTvizoMY
         JFCW0ltp//APLYDkHEft29QXs2F5aGsG5OGuZO6vsxxAtsaJwuXBBIb5rslXimBcu8IT
         kMUiHl5N+pBchQ08YopWc/78xZqTWa1QnNp8MIQRoee47+KHYNwxRtzXSTNVmeZbMmQS
         a7WvkbwYKqmGb5ZiUihzxZaQLF8zkF94lKhjgnxLaZndxpV4ycKAJeusn7/dRKTEPShx
         UfnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771513827; x=1772118627;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uiHV1+uPsnsiaGe1CmpdkcgTyzbx0xEFHEi0Qjuzjw8=;
        b=Uo9Q8p9eJyYc60UtqfREVX8UTyUJ/FiUehcNzHyImeVFH1Jn4DzFi5kfynBKRTDGdz
         0Mt2ssnpTKmOjn8MW2EC+xLgp1nF7jw1yyVcoW76oPtzQWS2yf0Dp9NPW8F+ptf7qxvR
         MEbYLDbx7Oc4KDjwHwT65hso3/t8axJ9WEbRPOwwoCqBBXYsRakkqcomsPTIv+R7Dd7B
         F2+S8pAmxyHEjwmdQri5uDU4bk6Z5/gI5CjsQa6NbAbgFJQUJEzioK92no/keg8ylFwb
         KB5e90aKSUxsSrvcjDBGJUi1jLmrXEBTxA2ZXzgM+pvMGhlCOkvnOcERKLPaBc/HXXkA
         cHBA==
X-Forwarded-Encrypted: i=1; AJvYcCX81k33UGJe1EDKu8pOVm/m4FLwcqDZ7I3ExUBrvWmFNeCqMCeaTzWRY3NDSKwC7ZUOEDzo0ikGdXE=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywz4IaBwf2n0FbvaKComUBEG3Qh+jbCQhQ4rtcFkhsr+cWL4WPr
	x68ILTKOVDlz5Ac35H1HwjYXSsUQkJLYYgd/81DtjJIN/TewkgMDh4UlE+Wk3qWsAA==
X-Gm-Gg: AZuq6aLjb1JrTKJcXCNmaLRY8JejLgkHNE7nEvKsNMdqNVHxnwKWQMJSa6DU7CYCUBr
	yoBLBfZ7b1Bez/uwwmxn+KVqiRTRecdImvpHttJfpNczDXz7U+0UyyC8kySWIIAJE5GFBYRUhRF
	XpecQoroL/xt9+u/K7J0JNjmnBmNJDT5mXpJXdXAAXRsFnfQFVmS6gtfj7kJatG6W9xpeMAYAWU
	eoZYKQ+TMYACzHc7ZkpNrLL5JVKtCpcOUMgUAswlAizqHlTejMxOODIiPgRMGDuc2IZKrYYSK27
	MDVI8sXKaE9ms9fs40n8l3WgitJT4X1IwQVBAlkRT6Yj10sFETGJNkbtl5vCU4Kmn3Q1uOER9J0
	bi5aB/EDraTIZdBevnc64xVfMMGGmsUbTdMzo00aK3UyPa0ygUAwlUNGiUDFvXBLsmrXGJeg2/8
	pjyzM4BZ1siqsjV3WmohULRfDkFxWB9Z3QUOm+42zaD3uMX7z3J51xN3pWD839768AmHRPTzzgI
	i08rqu2U1ShJ/v7Z6OOjG7i5g==
X-Received: by 2002:a05:6000:2585:b0:437:6dac:4578 with SMTP id ffacd0b85a97d-4379791b7a4mr42456544f8f.42.1771513826799;
        Thu, 19 Feb 2026 07:10:26 -0800 (PST)
Message-ID: <fccf0e23-222b-4da3-9b4f-0345373fe641@suse.com>
Date: Thu, 19 Feb 2026 16:10:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/hvm: Advertise and support extended destination IDs
 for MSI/IO-APIC
To: Julian Vetter <julian.vetter@vates.tech>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>, xen-devel@lists.xenproject.org
References: <20260209113412.2603088-1-julian.vetter@vates.tech>
 <87be26c1-52fe-438f-8aad-1d5ea0f0a325@vates.tech>
 <d3b71e9b-c026-4cda-99cc-a8037f302bd5@vates.tech>
 <eb4363a6-9035-4922-9314-60f4c6ca9309@suse.com>
 <bb00446e-ed6a-4c9f-9c6f-e49fd7b81997@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: <bb00446e-ed6a-4c9f-9c6f-e49fd7b81997@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 19.02.2026 14:52, Julian Vetter wrote:
> 
> 
> On 2/19/26 14:28, Jan Beulich wrote:
>> On 19.02.2026 14:08, Julian Vetter wrote:
>>> On 2/9/26 14:40, Teddy Astie wrote:
>>>> Le 09/02/2026 à 12:36, Julian Vetter a écrit :
>>>>> --- a/xen/arch/x86/hvm/vioapic.c
>>>>> +++ b/xen/arch/x86/hvm/vioapic.c
>>>>> @@ -411,7 +411,7 @@ static void ioapic_inj_irq(
>>>>>     
>>>>>     static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
>>>>>     {
>>>>> -    uint16_t dest = vioapic->redirtbl[pin].fields.dest_id;
>>>>> +    uint32_t dest = VIOAPIC_RTE_DEST(vioapic->redirtbl[pin].bits);
>>>>
>>>> I would rather introduce a new field in vioapic_redir_entry for the
>>>> extended dest part; and compute dest from that and dest_id.
>>>
>>> Here I have a question. This struct is a public ABI struct.
>>> vioapic_redir_entry is defined in
>>> xen/include/public/arch-x86/hvm/save.h. It's part of XENs VM
>>> save/restore operation. It is used by libxc and toolstacks to migrate
>>> VMs between hosts. Changing the struct might be undesirable? Yes, it
>>> would make the code cleaner. having a bit entry for the extended dest
>>> bits. What's the general opinion on this? With the VIOAPIC_RTE_DEST
>>> macro I avoided touching this struct...
>>
>> Which in turn raises the question: How do you migrate those bits? It looks
>> like you're losing them.
> 
> The bits are preserved correctly. The migration saves/restores the full 
> uint64_t bit union member, not the individual bit fields.

Which is, aiui, only because for the IO-APIC we haven't introduced "check"
hooks, yet. Which, yes, ...

> But, the issue 
> is maybe in the other direction? If we migrate a VM from a new XEN 
> (where the guest has programmed extended dest IDs into RTEs) to an old 
> XEN that doesn't understand them. The raw bits would be restored 
> correctly into bits, but the old XENs vioapic_deliver only reads 
> fields.dest_id (8 bits) and would silently ignore the extended bits. The 
> guest would end up with broken interrupt routing to vCPUs with APIC ID > 
> 255.

... goes along of what you're saying here.

> But there is not much we can do?!

The bits need explicitly migrating (which may well be as part of the RTE,
as you describe), with checking as mentioned above in place. That checking
would refuse the migration prior to your patch (or when the feature is
disabled for the guest), and allow it through afterwards (when the feature
is enabled for the guest).

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 15:18:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 15:18:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236465.1539164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt5nR-00032y-CO; Thu, 19 Feb 2026 15:18:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236465.1539164; Thu, 19 Feb 2026 15:18: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 1vt5nR-00032r-8m; Thu, 19 Feb 2026 15:18:29 +0000
Received: by outflank-mailman (input) for mailman id 1236465;
 Thu, 19 Feb 2026 15:18: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt5nP-00032i-UN
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 15:18:27 +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 3cf4d86a-0da6-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 16:18:26 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-4362197d174so721391f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 07:18:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abc85csm49176737f8f.22.2026.02.19.07.18.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 07:18:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3cf4d86a-0da6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771514306; x=1772119106; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eOvkefcwv0/OASM6NzuaeIF5Beka0S0Whqn80jVkDK4=;
        b=ZNANArKJZA/Z+IhdgTaiCna8F6NQw9s2VvpPoBwBgxkjNnFmreUVXgbqvFWL5/U7nL
         K2QgTgHVjeJuT62Mtu+u963L4aXVrn/jl6T1yckFX8NzgyAMpwwjJBJw37ArXPVty6Mu
         ueK12+deWEJ9LQaVAK1np2bWlKFfqWUDJ/51nb5e9r1oMPXe1MXSpABW/qFnJIoQp0GE
         9F0jkkrN0ra6cB3+Y+p65OFPhsjYhopPdW6hr66My5CBI+jza3epzQYSSUmr6xDPZjW4
         IwGTGwHVFGXAbtbLK/1Czy9+Ps36FWngMPfWeKnCrOMZaiMyLkZa3ee87ccc6vQFxnlJ
         5cdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771514306; x=1772119106;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eOvkefcwv0/OASM6NzuaeIF5Beka0S0Whqn80jVkDK4=;
        b=OHxmJqTpcdJaL77qJEADTSsw5K+Vxa2zv+8CJXmjTO287zXeF4zlodwMJzim4fCR/v
         nTIBIjIgSPp8/alQOTdUtyAt2LyVQbf0i3//GMLk4Igjz1371ULBLiMf520G1jZMA+8V
         Q/1fis1qrtFxaTjGING50Y7em85duK3gBv4AaQHgi9VFrC3Z0O2wf2IAqaWXGopICLMc
         z55hfNGvbU4PqmHyFKhCRc5JryhSZ1s4b+MShJVMMRgbyTWuBPLwuyXHeewxBRUd02xv
         MEQYIgekKLZC9QgEMD8JLZC8hl3GPfyuwEL3bQJirkghyLtwDjjsjtLQ8Yc+C66/cvIB
         Enpg==
X-Forwarded-Encrypted: i=1; AJvYcCUZRBflSIFC80pgtQVOZfEFeoixlEvBcVxApHD9HJZ0JUxvQVX2cRLuHWvUMALnWEHcnqqXsdAE9Pw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwVrh7r07zGKJgaeKIid+w5EIYrrv1SGvvIDY5UdGhK2cCuglOp
	vQMFXtIRp48LLLZgbhq+ZxyGUdiZNeDSo9gpMyj07UrfrNOyQNe8B7Y1gdr7KpJeyQ==
X-Gm-Gg: AZuq6aLup/Tw+1LstEOm1wyLTvgpz9LOFnXVdJjtDplCffZznJWpa234bzS0delv4Tn
	SxgUtAO/XGDE1LQ6Zi9wNN88wHEo34Lhn2u6H/XYouWbvye0eHCHxATfu9y0NwP4KEM3y5zlN95
	qu257FhCCdSbuG3IYbj0Q9+hcGGPzsNbJSyx3CnitbSzLDDaToHip8XjGiFHpoolwomWVxFyP7E
	3wwJXfHYSrNTJvxz3b59gqCQ8JaLJPhayG6WXn01iiDbXPhQnqO5hhOlO0GvGHhULIrd7+5hzj/
	AHAPZyGZUVzNIOQMeTclGZ8+uK9Bm7ovtVYdfnKmHVfh21BgLeq88dsuqzR9EUPNX+ON+RtXTk+
	GdljwmOjbQyiC4n1zul8Fv0fRQ6ElZ5Tqe2gzjLZCM6O993CkDbIjbLparlf5h1i9Ah4odrAqth
	RWna5XmbFhMfUP0vS2TY3juTc3opl0hLlFkyAChdsyViFCKcsvYf9I8hXmqYUSDmMfZPMS5bfCF
	/aLJ4+z2plj5ak=
X-Received: by 2002:a05:6000:601:b0:439:5027:a2f7 with SMTP id ffacd0b85a97d-43958e02c02mr10620583f8f.18.1771514305952;
        Thu, 19 Feb 2026 07:18:25 -0800 (PST)
Message-ID: <4f09c460-c74d-4dfc-992c-c743df32f463@suse.com>
Date: Thu, 19 Feb 2026 16:18:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v3] common/domctl: xsm update for get_domain_state access
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@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
References: <20260219143707.1588-1-dpsmith@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: <20260219143707.1588-1-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.02.2026 15:37, Daniel P. Smith wrote:
> When using XSM Flask, passing DOMID_INVALID will result in a NULL pointer
> reference from the passing of NULL as the target domain to
> xsm_get_domain_state(). Simply not invoking xsm_get_domain_state() when the
> target domain is NULL opens the opportunity to circumvent the XSM
> get_domain_state access check. This is due to the fact that the call to
> xsm_domctl() for get_domain_state op is a no-op check, deferring to
> xsm_get_domain_state().
> 
> Modify the helper get_domain_state() to ensure the requesting domain has
> get_domain_state access for the target domain, whether the target domain is
> explicitly set or implicitly determined with a domain state search. In the case
> of access not being allowed for a domain found during an implicit search, the
> search will continue to the next domain whose state has changed.
> 
> Fixes: 3ad3df1bd0aa ("xen: add new domctl get_domain_state")
> Reported-by: Chris Rogers <rogersc@ainfosec.com>
> Reported-by: Dmytro Firsov <dmytro_firsov@epam.com>
> Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>

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



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 15:42:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 15:42:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236488.1539173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6AT-0006xj-AM; Thu, 19 Feb 2026 15:42:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236488.1539173; Thu, 19 Feb 2026 15:42: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 1vt6AT-0006xb-6f; Thu, 19 Feb 2026 15:42:17 +0000
Received: by outflank-mailman (input) for mailman id 1236488;
 Thu, 19 Feb 2026 15:42: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt6AS-0006xV-8Q
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 15:42:16 +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 8ffecd98-0da9-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 16:42:14 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso12629405e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 07:42:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a5b07fsm50352724f8f.2.2026.02.19.07.42.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 07:42:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8ffecd98-0da9-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771515734; x=1772120534; 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=koQriyu5aOhXaj2tn/t6WG7EQMIWEKvKvMz55XZwejw=;
        b=RXaQpsXxzIWZFmd9js8B+2EMGofXZynnpogvPnXjz1jOOowu4DydSJ8iG/TDwD0z5r
         VuYnQCPT4I6iVReWBOeKLb0XBzA/L1p+nTIfpgW/Na027hekPEg2NVO7gld1r83qe0OM
         0yiHNXJJpIQTeBR7Vuffk4Znh6Z8WyHTZeKmF5Q1pXLxiYPIrgnYWZiZ+wexyqAwx8fv
         nPcV0XAUWab8sF8eqA/T5vLBNQRhpuF+FUpa0LwzSZ+dclXgZIsr7NwmFbTguVTy/pjT
         x9vwchvUf9N9X49txSEjFe3tgBRLzOB6VXlJ4RiWRuf5lrnyjYXta8/0ezHRkZS2nyJf
         +x5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771515734; x=1772120534;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=koQriyu5aOhXaj2tn/t6WG7EQMIWEKvKvMz55XZwejw=;
        b=KvSOQNVtpE6ePLh15Th2sibLZd9jBuwzzCciXh2+xrXnQ8hQgoCIpUwMeNEu4tInLw
         htd950380YV5aq6Xl8tcTwOqWKsb20sbFzrqMTgV8bjKdxbr2uprIQwYk6JFmJT4KH5O
         oaINpEimqjp1u00EXlJnwyXaaHFhXLm91ilUN5Xld9iF07/u3lXzQKSUjxdXl9DU+FBU
         Y5OmIgYLuexgX/QTNQHBilsOeHLVNfEBcZaeya4MQD/4vHy2HvNKD35x2IJ0wM7er4pd
         8zlFZUvOlS9Duf3bWrBQaBNl7VHfyWZxMy0FaPCxt8ZidotDRrVJ9XQrlNOsx3cPsHux
         LwxQ==
X-Gm-Message-State: AOJu0YzDUxnh+n7k9AAW2amzjUGWN+6XdWvu6RUumAZ5y5hFMFEfUJUI
	43EA+sqhZOKm/GbkGbMqZbf/hZAvLYNL8qqapcPf/IVGS/O29r0UZvl06h0/EPZUMsbuWvcgQhG
	xsQo=
X-Gm-Gg: AZuq6aJ/tjBo8sfyj4dyI9JiOZ1NKApU2SGfI1jNQS25SsxVKsgt8Lk53sxoaeI1sYZ
	IQYJbrOL/5IfkMJzbIz5WgNKPxfpI/1jmeriBs5ZIfkh069ySMR41hwQv0Xf7Ek8OiHT4Lwd6uf
	dFbZXzJzUKobB6KGziF4AWqRoHMCHZl5CrO2U1RlEUZJTdk1jkk2DaOpXnWAT18t4X7OhaqBYPP
	isFaTgiBrc6z7unZLS4y03FGFLjkKFPaK6BvEV1XtoG1umVpM2SAP/L7XKeWYSyYex3duyC25Z2
	K1A0C3TLK4o/jtjGT21VbI2VWTBXLpN0sYwVIHxhHaRbsEKabHz92PMo+DlM6vMvJggJAW4cBMV
	1q8fB8K4xffpe5trinO9/+l9h3MFI37/iWiLxjuVvgn1lG+SSgRVm5znRP51b17KoGVMDSOceth
	b/OGbX4UDgXWKOx4XK12NMyo5nh5ZPj2H6bjW7ngRCefVnnM4xV0xVNRrEjmRgTdO9l/1FiqQZH
	GuL55CtHHk/e+Q=
X-Received: by 2002:a05:600c:6098:b0:477:b734:8c53 with SMTP id 5b1f17b1804b1-48379ba08a6mr296036725e9.12.1771515733671;
        Thu, 19 Feb 2026 07:42:13 -0800 (PST)
Message-ID: <b2aa7f0b-147b-439f-8e25-2f7a5a2f75a8@suse.com>
Date: Thu, 19 Feb 2026 16:42:11 +0100
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/bitops: adjust partial first word handling in
 __find_next{,_zero}_bit()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

There's no need to subtract "bit" in what is passed to __scanbit(), as the
other bits are zero anyway after the shift (in __find_next_bit()) or can
be made so (in __find_next_zero_bit()) by flipping negation and shift. (We
actually leverage the same facts in find_next{,_zero}_bit() as well.) This
way in __scanbit() the TZCNT alternative can be engaged.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Register allocation (and hence effects on code size of the change here)
is pretty "interesting". The compiler doesn't look to realize that while
for 64-bit insns it doesn't matter which GPR is used (a REX prefix is
needed anyway), 32-bit insns can be helped by preferring the low 8 GPRs.
(Granted the inline assembly in __scanbit() may also be a little difficult
to deal with.)

--- a/xen/arch/x86/bitops.c
+++ b/xen/arch/x86/bitops.c
@@ -35,8 +35,8 @@ unsigned int __find_next_bit(
     if ( bit != 0 )
     {
         /* Look for a bit in the first word. */
-        set = __scanbit(*p >> bit, BITS_PER_LONG - bit);
-        if ( set < (BITS_PER_LONG - bit) )
+        set = __scanbit(*p >> bit, BITS_PER_LONG);
+        if ( set < BITS_PER_LONG )
             return (offset + set);
         offset += BITS_PER_LONG - bit;
         p++;
@@ -85,8 +85,8 @@ unsigned int __find_next_zero_bit(
     if ( bit != 0 )
     {
         /* Look for zero in the first word. */
-        set = __scanbit(~(*p >> bit), BITS_PER_LONG - bit);
-        if ( set < (BITS_PER_LONG - bit) )
+        set = __scanbit(~*p >> bit, BITS_PER_LONG);
+        if ( set < BITS_PER_LONG )
             return (offset + set);
         offset += BITS_PER_LONG - bit;
         p++;


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 15:43:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 15:43:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236495.1539184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6BH-0007PK-JI; Thu, 19 Feb 2026 15:43:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236495.1539184; Thu, 19 Feb 2026 15:43:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6BH-0007PD-Fb; Thu, 19 Feb 2026 15:43:07 +0000
Received: by outflank-mailman (input) for mailman id 1236495;
 Thu, 19 Feb 2026 15: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt6BG-0006xV-T3
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 15:43:06 +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 aed94d37-0da9-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 16:43:06 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4377174e1ebso825546f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 07:43:06 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abd259sm52351967f8f.24.2026.02.19.07.43.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 07:43:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aed94d37-0da9-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771515785; x=1772120585; 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=hCb38Ea1hOfNAfpEej2H+6DfKSlVXHCk1RdTslLQz1Q=;
        b=Gfa20Tge2m0+mkhNGOytvaS66UmmrxcIdKCRIq2twT1od2Qff85duqpEeqVB//NeZv
         Is/yAcJeq3XTPVDcMFuPadWy64H7E3wtup5fSOfoCmjXANyuQBDBuGnf2xRXpDUlPhRr
         MTRGIULr8AARRBYow10CfSwJLS31Zzla9u95TYPREBYfbMeDX5OYYhO/7GqjgoA/lWib
         AZlbGfxsJU5OxRzU6bPO0a6ULRwrz3WKtdHywX8VLDmA6rlfyuHKBWQzpq4ZjGpTZbCW
         PCopedB7uNlaHogsc4WbJjeJN77bK80EEvP48vwiOVXCMtfisbqntAahIElIlMUg76pX
         eNAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771515785; x=1772120585;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=hCb38Ea1hOfNAfpEej2H+6DfKSlVXHCk1RdTslLQz1Q=;
        b=aeVPiriIwb/F4nBqzg5q3I6yEdB1tsN4SeYvhwbPNhcg/FgLmJZiO6PRUVBvwCGAGh
         ZIWim2OZDy7Orn73EY29/1fr0wsnU7hoLPpqHf9U0lggsT8eY1XHzQUAEXhJZCptHw32
         hL0x+9Ed64g8pKMAuaRI1nj4BrHAGE1hpYdoVh7R5GMezJcladdVYlvvZnwv7MjyeNPr
         xwG+1qNTcoqdh46YPkr2kNe/i3GWeKN1LKKKS23jAlaDyqLyQVA749ziRsZDTNTD2Lk5
         gkYlg7V67Q0HuaJU5dO88zQzNGf8EWu0rWfNj1wnaNYfnx44smBBJzKflrUe3wkVp/sl
         XF2w==
X-Gm-Message-State: AOJu0YyPjWRM9dkkyuiyGbRlII/IHV0AAQFrKNXsB7zWmazCZBPw5I3x
	uozLHZ3WfUwM3m1Huy7IZWAXdRTmJOzPxd+S4Gxl0QMttRLBi3OzoVePdCKzIK9umZBGTabtLJ7
	XKBI=
X-Gm-Gg: AZuq6aIeG0wEF52qps1jCIFnhf+wIM7cNFmv5cuOLNJZd5m9MmswSXRtFZVx5cf+c/4
	R3twdASX2TzqUDawukyxRQcCkY9FSGmBPtx7DPHwiCr/chdKaiiBuknvi8q9TeJj+1tAN4lMIqF
	LPbW59Cfw7h9VVWPnUFrJsNQeDN9j1qCP8+0g+m1CMBAzhQ7eRhD77FTkmd4rgmbYrPj9uUxnrA
	ZyC0heaFqEqXpsl2ySLko5ufJB2/WEMKYI+fj3+/zJCnhJP8hhA8K9PDaeLeGuNuG9cMEPvgJ7+
	wABch1Qmio0tEcvLEbobXwmH9xmA4DuxCVhUeXCUB3ju34uXVbDM21w2TAotJM6H38yKJMw3UP0
	MuirDDsRMx4AJs+3UzX/53wuX/D9j5riH1itSDK8pcJkKaee48WxnExwmh+4D/73CKEOq9SNtss
	BOqfOulD+4GL7/vAR1/La2Ztlwb6mr8XhXKfKEgL/ooqqxdYTTZPi9+jMZTy6AykSa6i2jrXZsX
	PgaEOGY/kZ3Bhk=
X-Received: by 2002:a05:6000:3101:b0:437:694d:fb6c with SMTP id ffacd0b85a97d-4395fd2ab83mr4521207f8f.9.1771515785516;
        Thu, 19 Feb 2026 07:43:05 -0800 (PST)
Message-ID: <0cd3f675-e310-4434-aa95-cb0cc86e3569@suse.com>
Date: Thu, 19 Feb 2026 16:43:03 +0100
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/bitops: drop redundant casts from find_next{,_zero}_bit()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

It's not clear why they were put in place - a__ is of the very type
already.

No change in generated code.

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

--- a/xen/arch/x86/include/asm/bitops.h
+++ b/xen/arch/x86/include/asm/bitops.h
@@ -343,7 +343,7 @@ static always_inline unsigned int __scan
     if ( o__ >= s__ )                                                       \
         r__ = s__;                                                          \
     else if ( __builtin_constant_p(size) && s__ <= BITS_PER_LONG )          \
-        r__ = o__ + __scanbit(*(const unsigned long *)(a__) >> o__, s__);   \
+        r__ = o__ + __scanbit(*a__ >> o__, s__);                            \
     else if ( __builtin_constant_p(off) && !o__ )                           \
         r__ = __find_first_bit(a__, s__);                                   \
     else                                                                    \
@@ -375,7 +375,7 @@ static always_inline unsigned int __scan
     if ( o__ >= s__ )                                                       \
         r__ = s__;                                                          \
     else if ( __builtin_constant_p(size) && s__ <= BITS_PER_LONG )          \
-        r__ = o__ + __scanbit(~*(const unsigned long *)(a__) >> o__, s__);  \
+        r__ = o__ + __scanbit(~*a__ >> o__, s__);                           \
     else if ( __builtin_constant_p(off) && !o__ )                           \
         r__ = __find_first_zero_bit(a__, s__);                              \
     else                                                                    \


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 15:49:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 15:49:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236504.1539194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6H2-0008AU-6P; Thu, 19 Feb 2026 15:49:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236504.1539194; Thu, 19 Feb 2026 15:49:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6H2-0008AN-17; Thu, 19 Feb 2026 15:49:04 +0000
Received: by outflank-mailman (input) for mailman id 1236504;
 Thu, 19 Feb 2026 15:49: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=erNG=AX=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vt6H0-0008AH-Je
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 15:49:02 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 81f9b2fa-0daa-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 16:49:01 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by BL1PR03MB5989.namprd03.prod.outlook.com (2603:10b6:208:310::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.16; Thu, 19 Feb
 2026 15:48:56 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Thu, 19 Feb 2026
 15:48: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: 81f9b2fa-0daa-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=hV2MPhEs6XglaQ4OHllAdvNY6zZXj+PlS1JqM4CtCr97nAThkYTQUxb/GW3Uy2W4crmTLb6RHky3wP7DVNqLUG0+9aXPy6FC3NyVbCCGBY/2WU3LhlnkWdWwVDIk9k5XZFOXn6AvwsrFpiTleeWMuE7ujNmj4Pq3Z4Ev1OpK4b+PlAgq2pYEzaQQehQLg3Qk/IKOe9JNxh/7NJCJCMIFTqUUpftw3aJemcPpftYqjsAe1iuMxfhjjTlwFTJMB+0Dm+7LyCfTgso416hC1+WPR/P6PL1KTMl0Qb2ScIxdxcu11O+A1fVzkNq3pyDts0Woo4CAK3ATWS6gMIzdSsSnww==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=JyjrtDo9AUUHIM3v5wCgL2KMCGQ4WXnlCVyWZaI5os0=;
 b=uUmrNTN3dAqIG2Rvdme4wl6hw4BzohsnOzvdOMdwl4fAbS1BmszRJJyUesdY1o1TV/d2H998ksJB78X/8f7nXpsztm71rJ+9Hnu0DXpcCACVCQ0sqreKM68kxhXljLKQLlTOZgR/VTQE3rvyJzFx2YTJ9UhD4Ne/M+XZ1U8OGRzDEc4+1qCX7KKssg7dj9zRUxxlpZG7v353x1XZVKUQ6imts9TtvZGQBIoY2ihJPDowt6KrNExlGN36bFBPTmNGxb2gT+00NnilgjwmF0cH47BC+DKoJdwC411g0RTVnmvmbCHfswWC04BLEhfAF+txEMitxFm+LzJo50mMWy4IqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=JyjrtDo9AUUHIM3v5wCgL2KMCGQ4WXnlCVyWZaI5os0=;
 b=tV1qJahILN4jY+xgEmZ37eLTpBlGNpzheofsxIdzEv7bp4NzmiLgCeN7+3cyMNBfBLTJsWX/iDerjMI2G9oJKXb07rcLVVTFGFBVz04FSQhC+laartLiOXCtgHVG1qAUYTSKdH1STPPpxwmR1q4qn53iZWNO2SbUAnyS/LW04MY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d9b08489-e544-4e2b-9a38-a495e91f5d88@citrix.com>
Date: Thu, 19 Feb 2026 15:48:53 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/bitops: drop redundant casts from
 find_next{,_zero}_bit()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <0cd3f675-e310-4434-aa95-cb0cc86e3569@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <0cd3f675-e310-4434-aa95-cb0cc86e3569@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0489.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1ab::8) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|BL1PR03MB5989:EE_
X-MS-Office365-Filtering-Correlation-Id: 85d6a5a2-b51a-4ea9-d342-08de6fce640e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MVdDek1ISHpqbTkvTk1IQVNJYThWb0s4eHdVUTJDRHJrMk5Pd2Vsa1gzMlVn?=
 =?utf-8?B?bmVyZWFhOWhQOElPRzNoM2pvRU1WdWpBNmRuM05Bdy9ySFd1TDV4ZWlPck9S?=
 =?utf-8?B?N0prV1BMVWtLYkJabkNyWWJaVDlBSmtva0RvaUx6YTZraVdoRHliRitnb2Fr?=
 =?utf-8?B?V3ROU3R4MFREa2FhL2FRT0N2L05xOWtmblhFamM3NXF4aTg5NVNXQ3ltdnBh?=
 =?utf-8?B?MDdXeUhPT3ZaWWlhUmpvVjJXSC9UTSt6NlVvSFBxQ0VzWEtvSXpYTldpMUR1?=
 =?utf-8?B?RGdGbW5BYStVTTlVZjFnZEhEUTlqYjJVcmtPOEUycnhyT0hpRndGSGhSOTFZ?=
 =?utf-8?B?aWQ4eCtXeVFTOTFwbnZ2bXR3Yys2VGdDT2RVMzBFdjU4NW5OK0U1cDVTejZU?=
 =?utf-8?B?SExYbW5UQ1gyVUx6RWtRVzh2Ky9MaTlQY2YxTkp6d3BtdWhRcG5XRnQ3Z05s?=
 =?utf-8?B?L2lpbDUrVlRLdFpSRGR1WUQzbExYSnVSclJzUXRSVWNaK1VVWENMaHlGN3B5?=
 =?utf-8?B?QlBrR1hhNHIwMFJ4V2ZuQUMvNkRkb3Jzb0prb1J4NGlWbDE0azAzOWFTVGkv?=
 =?utf-8?B?eW1UZTRBVlZrUldZT1BlQXcwZmxZR1BZbHFXRGtHZU12MURmWTBCc3VjblV1?=
 =?utf-8?B?dC8vVXU2N3pBb3crNXhONUtUZ0N6bS8zRHBENlRZcEhuY3htZjZKN3ZOVmNh?=
 =?utf-8?B?bitqOVh4aklFRjBybXZnelpYcXIzTU5HQ1BTQ0xkczN3bWhzVkE2K0FWYzgx?=
 =?utf-8?B?emdrc3loMjdlMFdYVXhuM0ZqVjRvZFVVYXNleWdkaDdZK2pyeUN5dWhXM0hW?=
 =?utf-8?B?K1AyQmxOZzF5cW55aHR1SWs1NVQzQjF2WS82MWtoeEZCOFlOb0FMeTZ2cHlO?=
 =?utf-8?B?QVdid3RyTmg4dUJ2QW9xdjRmSmNEK0Myc0greEcxSzM3ekl5dzk4ZFZxUG1W?=
 =?utf-8?B?RkdQcUFqdGVUUEJYblFQNnpiY3BhVm9JTHBUUm5DNGVwWHFkM2QyZ3dURDZa?=
 =?utf-8?B?Qlg2UWZRdnRKY3BMSUw5WHJpc295YUFYd1M2bjQ4L1VBOHVkbEZJbTNEUmta?=
 =?utf-8?B?eGJ2ZC95MTkwSzA0NmZQVzZjNGpLQlM5UkRyVHFvdUVyNzh6RzBZTUwwdTJK?=
 =?utf-8?B?d3lGeEpadmpWa2hNQWxQTjluOW9pQlpRTGd6aDluK3JBTktwZmo1cjhKWW1C?=
 =?utf-8?B?Z1BWMFJCNG5yQWZxZDgvUzZGa2RRS2ZhSUpEb2I3bTlwaDBWSk5pS0xBRG93?=
 =?utf-8?B?YldoUnJ6SGN4Qm1oa3lTUmh1ZWJOYnhYaFVwZFJTRzFCRGpXUnQ2eHdMZGVu?=
 =?utf-8?B?L0lhTm1Vem9nNVlldkpMbVlqN3hRSWptU2VmZ3YySjF3VlNSSVBaSXBTbjBG?=
 =?utf-8?B?T3JIOW9yTG5LRHh4Y0I4K1NIcHJNbGhFd2M5aUtkY2N4ZUlIOXRZMnl2bG5z?=
 =?utf-8?B?dUhORnZTTi80dzRZNkZoa3Y1Q3lIZVM2dTBzTnkwQ2pIelhDRXM0QUJ0ejZq?=
 =?utf-8?B?SG04dzE3QndFSkhMQS9oNnZyN2FWMGNrOGdzUDFFUC9pVS9acXdidkFUbnRh?=
 =?utf-8?B?dFBUVkdnNjBaeFUxQUdDTEQvc0dnc1N6ZGhndW9FaDYrYTJ0cEJEL3JwSUtS?=
 =?utf-8?B?M2RkSkV4RUdNMWU5ejlBVUljaWNDelVkdkhIRGUvQWVBZ0ZUc3kxaHlxYmwr?=
 =?utf-8?B?Y2FnckZLQXZFWmNQYXprNjVVazRnaVMzeUc3RGs2MkhtRmlZWlR5WHdjZ3pG?=
 =?utf-8?B?aEQyTHc5aWxVRURPTVRKRnpaZThPMjFvdEZmUStJRmhWOEtaVWlqcE1FdEUy?=
 =?utf-8?B?ZW1mUDJKNFNwajVTdVNjNG0rV3ZYVzVtb2YveTVHdXBrVER4cVA2SjRGNERo?=
 =?utf-8?B?Y05zcmo1MHFKdGxOeFd5UlNlTXFJNEJlREwwSDJVYk9NSmVjWEpGZHVOWVRT?=
 =?utf-8?B?VDJDWEVEMGpXekFQdW41bEF2bVNuN2JmdUt4eTZsZ3JnOGZnZTc0cFViQi9q?=
 =?utf-8?B?eUFBNHE4cTRBK0QwRi9tS3ovR09qNXliOHB4YWFyUTlSQ1l0dmk5WGFHa0ln?=
 =?utf-8?B?d2l3SG56R0RBam9GckdIK1Y1ZEhxZHdxUHZDbGgxVWx1OXBLL0dPYmp2Rm12?=
 =?utf-8?Q?OWGE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NXVGWnRTMHZiTGd1WXJxeVJnUjhFVXhDT2toR2sya2VHWWpIQ2c2eVJOUXVI?=
 =?utf-8?B?VWhrMUdMZlNWY3ZCZ3hHRkxueUdvVGhHajk4Y2hqNHNPUG9IbFdpY1NDZzY5?=
 =?utf-8?B?UUNORTVwazRRMlYyZlRmd2w2enIvMFFUMGgyNHdYTk9vWXZiN0t2Q29tNFNh?=
 =?utf-8?B?Qmh0dVVwYTdXbkxBM2FZL201czZGVU05RzlnZXRHMXBib0Q4QlBTWS9BYlgr?=
 =?utf-8?B?VWR0VkI5ckx3Ujk4Tmo3SzFYTnNGRTY3S1RpaWxPMmtiTWVyZy84dEljc2xV?=
 =?utf-8?B?RFNzSHBUOEtzeFZHZStUT0NkMEFUdXRpVUpOQzRFRXYrQVpDeGZ4VitOUkU3?=
 =?utf-8?B?SStwNzY1WjF3VGo4UFpIa2ROMnhjelR6ZXZoTkM5aHc1Ry9tU0RnT1lwYjNp?=
 =?utf-8?B?ZzR6NlNzR2ZqaHo0cno1V3lDUXJSb2ZSdzZQUlM2UVBGSnp6SHRtdEcrUG5D?=
 =?utf-8?B?cW9Ba1dWUjgwRXg4NFB2Qm5iSmdMRmZkNVg4VENBRXI2b3FGVE9xQ0c1eVJR?=
 =?utf-8?B?Wmw5SVpmb2VRUUU0T3lwZFUzcDlTU29pK1VtWU1yVWwycnpaeENIMVJUM1k2?=
 =?utf-8?B?aTMzNkYrSWNMdWcwYjUyWjBvNnlUWWE3YmZOVTBhTHRtc1FuTStXL2NESkpo?=
 =?utf-8?B?TWFGOHYxWHlZeWpGeHU2VWlDOUZtZ0V3OGhlcCtzRXYxbEZWb2doQy9halpW?=
 =?utf-8?B?R2h6OWlZREVQTENEL2hWbzBlQmdncE9OVmhtYnVmMFBIVWhBdDdiVldPTG9l?=
 =?utf-8?B?S3NFd2FiVEJaanNFSXc4SVJKUGxlMWt0Zlc3Ri9VS3gyalZwUXVtUmRVSHdV?=
 =?utf-8?B?eUtDZ3I2bllkMXNxTmg0cU5kQ3NvM1RwZkk4SnVvUFFJVzRyTEFSTTFpTEk0?=
 =?utf-8?B?ZkNRbk1FWlJiRkcyZGNvYXlFZHpqOTZBRWNVT0wzWWVIblBVZWVqSjNiaC9m?=
 =?utf-8?B?d0RLdFAxdUZpNWZoVzRZbFRPdnVEOGpERTJpR3ZOSjBhTVhqOXBFMDFQcXNK?=
 =?utf-8?B?TERNV284eUhYWW4yQ05EYllaNXQ1QlZPTjJFZEE2ZUVraXNJa21LTGJOemFF?=
 =?utf-8?B?aHJzSmw3T2M0QkRlR01SWmpNd3N2QjU1S3lQc2xKSGtobWZtQk54SXArR1FS?=
 =?utf-8?B?YnZZRWtLczJqaVpSSGgybXNIRVBMcjhoMEJ0ZUFHaE9aTnNzOFcxM0Jxakow?=
 =?utf-8?B?ejVBMDNNT0dxRFZaMy80a29WaWQ2bjg0VWNJbUcxLzljMnUrU202NUVvenpv?=
 =?utf-8?B?VVdjQi9HUnNOSmo0MFVJcVNtTXF6VEx1M1MzNVVXVWt4eUUvMUlIbitrVFo1?=
 =?utf-8?B?TEUyR2NWTWZENVYySW9UbGVoMGJTeTU0QnBIZjhMdzMzS1pCZVh3NGx6bFNR?=
 =?utf-8?B?NzJCd2hZZ1g0dm1nWExkNW10dTNzMmYxMUdvRVlMMUt5bjE2U2F3YUpINVJ4?=
 =?utf-8?B?OTZMSTdWYnVwRktYUFlXeXJYZFhHNkdQYXphYmVqOWt1QXpuclNhK3lDVGRH?=
 =?utf-8?B?T0o0VVdyMGpFTFhNa2w1aVpnVDY5MGh6eEdaZlJsN2Z0QkVaN3BsOG5IOU9R?=
 =?utf-8?B?ZE42RTVmdDk3Z3liSURMc3RrREkxVE5xQTNMWWM5Mkp2U1doUWlKeUdJaG5n?=
 =?utf-8?B?RHBsVGRtV05RU2dNdW5YaW5GR1k5eWpTbE1WZUkyVzdLOUdpRzg4bzUxNDRk?=
 =?utf-8?B?cDZEZEYxbjR2VENxcmY1dnFnU213d0U2UkNUMUVSMzU5TVhGajBYWXpGeUdB?=
 =?utf-8?B?L2w5S0dsdkhIZ0hIc2lEd1Y5K0VUWFJaeVZKdUYwNzVqejc5YkNiMUVoamtQ?=
 =?utf-8?B?aVBFdVpVSTE0OEl1T082WktNbzkwMnpkZzFGT0xxblgxcEFlSVZoNnRGbFkr?=
 =?utf-8?B?SUxxaUFrQ0VMSC9SL3BoWklwL3cvVGVIckJRTEFVVFRYUkE5WllURHpoSFh2?=
 =?utf-8?B?c3NCdkpJOGM3Y09VRzBJZm16ekY4d0ZmcVk1YmNtcHROa1oyWjNPUTdpT0lv?=
 =?utf-8?B?UXl6dDQwSjcybC9taEM2Wm1lUFUyaHlENUtrbWM3QlhFcTg2bXNUeGJtZXhR?=
 =?utf-8?B?VWZEOGJKakZ2MEpTdFJ0bmV1c2NYVlJLUEhSS3pGZHZuUmJsV0J6SXhycEJn?=
 =?utf-8?B?YW5YMDN4OW9OWEJTenFqS0lhYStOR3VLK1RGNDFqZldTQWc1Vkx4VlpDNmdT?=
 =?utf-8?B?TTEwUXRhc1FFNS9ZaTRuZFhlSm1EZjRGWHpYdFdsU2YzZG9kM2U4RjNTZXdO?=
 =?utf-8?B?anJYLzhQMndwS3d0QjFCZXhMWVQ5elZyOCtiNzFLbzY1akh3M2NlU1N3dHhB?=
 =?utf-8?B?WmFtZGIycGgrUWRVVXprQ0NJV1NWQURjbldFKyt2Q25uYlNhWHBNQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 85d6a5a2-b51a-4ea9-d342-08de6fce640e
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2026 15:48:56.6503
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cZFUAa0fuhmSiEyWtofcYpIZ/ezptVz9V3QBYAa7vlBLyZYr8tDBFvwdY1nA//7xxDzP9vE6qxXwRLDzgLAPPOOyEQYTGLS1CNWPE4kg5kc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB5989

On 19/02/2026 3:43 pm, Jan Beulich wrote:
> It's not clear why they were put in place - a__ is of the very type
> already.
>
> No change in generated code.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

I recall this monstrosity requiring many edits to get right.  I expect
it's stale from an older form.

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

>
> --- a/xen/arch/x86/include/asm/bitops.h
> +++ b/xen/arch/x86/include/asm/bitops.h
> @@ -343,7 +343,7 @@ static always_inline unsigned int __scan
>      if ( o__ >= s__ )                                                       \
>          r__ = s__;                                                          \
>      else if ( __builtin_constant_p(size) && s__ <= BITS_PER_LONG )          \
> -        r__ = o__ + __scanbit(*(const unsigned long *)(a__) >> o__, s__);   \
> +        r__ = o__ + __scanbit(*a__ >> o__, s__);                            \
>      else if ( __builtin_constant_p(off) && !o__ )                           \
>          r__ = __find_first_bit(a__, s__);                                   \
>      else                                                                    \
> @@ -375,7 +375,7 @@ static always_inline unsigned int __scan
>      if ( o__ >= s__ )                                                       \
>          r__ = s__;                                                          \
>      else if ( __builtin_constant_p(size) && s__ <= BITS_PER_LONG )          \
> -        r__ = o__ + __scanbit(~*(const unsigned long *)(a__) >> o__, s__);  \
> +        r__ = o__ + __scanbit(~*a__ >> o__, s__);                           \
>      else if ( __builtin_constant_p(off) && !o__ )                           \
>          r__ = __find_first_zero_bit(a__, s__);                              \
>      else                                                                    \



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 15:50:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 15:50:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236511.1539202 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6IH-0001D5-DB; Thu, 19 Feb 2026 15:50:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236511.1539202; Thu, 19 Feb 2026 15: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 1vt6IH-0001Cy-AH; Thu, 19 Feb 2026 15:50:21 +0000
Received: by outflank-mailman (input) for mailman id 1236511;
 Thu, 19 Feb 2026 15:50: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt6IG-0001Ch-Fk
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 15:50:20 +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 b0b0d687-0daa-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 16:50:18 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4837584120eso8255895e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 07:50:18 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4839ea1e9absm22554085e9.3.2026.02.19.07.50.17
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 07:50:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b0b0d687-0daa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771516218; x=1772121018; 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=vL+NPhak5gWUHDY0Q7SGnWQewBdfLXy+S5oN0ZPZmcQ=;
        b=BYK8jqTQYfd59yxG29lTrtcE9l0sZBb2eZ3p/e2avTQ1cU9D34MmkbfLJb0ypOHXjs
         EyeXXgIDzuYmTbUUUXgAD7/SCwvOxuDOrcLjKdYDVJMbd4lpGFMTvqSD2V1IHlp451nR
         7d0Gn/Uy6+AnRnfDn6yNowAbatfZAu53L49lr7+5M2rKfIF+jwKSwnx0pVrK7nqKg0Nx
         t80noQXIL7FIpz2pg4qIwMOnBckF2NQEM77YJqKiIQDZ2ODK8Iz9YYYmPFHDlBNIx0Yi
         Nx4Gwunf95Xr9+HkbaGtVmYb+lrvOahhXSf7Nrsf8/HdTZtlBxwRD2/Wtxiz0Vfvjk/O
         Tr+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771516218; x=1772121018;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=vL+NPhak5gWUHDY0Q7SGnWQewBdfLXy+S5oN0ZPZmcQ=;
        b=GhR1XG1B5BAwYOFBq1W9KSVkv7Y8ptnZbeOb6ipwFHFvlRIq/CVRNQo/ETZ4jvIkPK
         6PlubwMrMD1SOfgFF4RAZQLhJDnYvdwvgLXJB/EKPKOb4GZ8wi12a05lFo+kaP26gzm2
         y8aHM1g4LLno/LVupwOtuUo/D6upbx/phN3tNcJ1BTiBFnhuxIkgd24ABu3gcIvRjOeh
         zZN8HTTfoMnsf95iPdWXgJiXfxnrB/x0FJYPVGQeJn75CsxF7lqmOWpRQ0oC4LCPryxi
         T+/hRg5DK9jzdjn4G28jv2GmX0HufKbWAMjf90TWKc9dS5KZl15sbL70hy8pyp65KOx0
         rsKA==
X-Gm-Message-State: AOJu0YwTpg5kq0el/TW2OMNQa4ZbPfBNGNjkM/qu1sFVQIg6yrEaYi8Z
	3u4d3Iq7Coj0S+jsLKlr4VPAX1sxBbpaoIIwNOHEcI/I742fwNU7kaM9gwRrTDTG4EkzV29fdvM
	CGXo=
X-Gm-Gg: AZuq6aKVJ0aPZIueGUodrzsdtq8+SXwkTJlR8X93W7lvUuDSvgTIY5REq7I4VX10wM6
	5VK4OTC9L17+x5W3zWpw2DjvQv3aL2dYV0KewgBhWEnFQJIlWqwvBQmk4OxrjasQn0UDvvPs53k
	CWblcyPyBX+VECRJuDlkLy8hU1fzapkCEzPiSd4LhGPmKifJiOU+NfkY1HTN3YLq6kaRmcVR9ws
	7SwEdUJg/Xk2ve5g8/kwA6YcDU91Cn0dXa/UIYeCKykFpbnF0X/mFB6+xgunT4S4t0k98JjsA7S
	NH8XBqKzpD8zGo1mjH/hatFzuYAqYEatugqKDLA3YO0ziNGoLxfr7v2rizOLuKuSdESGuNKHzBb
	zURCcdcGvj3Wyh/BuY1VO8jX+ZxdM+gpdQKyX3WVoPr7rhG/MsneuuIZMo9Ek7iWbSfT3IFzr8X
	EnJ6XJWzbhbaV5N4fkjZ7jK4qMw+yIIz0iEwjdQruxbO8NhtCCWRkwU+F4tlS5W1Ww1DOUlBM6j
	k71QMtJVN2y6d4=
X-Received: by 2002:a05:600c:1c08:b0:47a:8cce:2940 with SMTP id 5b1f17b1804b1-48379b991c6mr314854705e9.14.1771516218039;
        Thu, 19 Feb 2026 07:50:18 -0800 (PST)
Message-ID: <924f3ef2-7883-4322-a921-edc814c96719@suse.com>
Date: Thu, 19 Feb 2026 16:50:15 +0100
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>, Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH] ioremap() et al
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

I found an old todo item, carrying out of which then made me notice
another anomaly.

1: make ioremap_attr() common
2: make ioremap_wc() x86 only (for the time being)

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 15:52:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 15:52:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236522.1539214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6Jy-0001n5-SO; Thu, 19 Feb 2026 15:52:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236522.1539214; Thu, 19 Feb 2026 15:52:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6Jy-0001my-Op; Thu, 19 Feb 2026 15:52:06 +0000
Received: by outflank-mailman (input) for mailman id 1236522;
 Thu, 19 Feb 2026 15:52: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt6Jx-0001ms-92
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 15:52:05 +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 ebc9f7a1-0daa-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 16:51:57 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48379a42f76so8832425e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 07:51:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4839f990384sm34268715e9.5.2026.02.19.07.51.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 07:51:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ebc9f7a1-0daa-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771516317; x=1772121117; 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=iABelTj/PEu4I9Jo3VCsALnDPxGXpz5wsNtPK8TN7OQ=;
        b=bR+l0N40Fs/O9fk2WIqv+v2rCnmL5PWaGtj6UGHO4mCwVeksrIEQ1UNfxecdJytwwM
         sHjsnHktoKuEIwj/MFvsVeJNQqnYG+usqGtd96WqgStA0nihaoRNcQIuU9jVeHM2omY6
         0hIlRE/W85xqpc+ZUTRRMgxrY3MaxB3BJVyaPcCpyGlNTgAdOJtdKf0p6Uw4LBEDsOt4
         1GLwNhOqf5WREFiey+8dka3nJVAiT2cWvq3HrcIrBow6yrvj/PeUXLaNtT7qvrJGbwB7
         jOZshA6d/iAHWy9irK6FXDcMefzfQZmNLeDxMg+KlRVQ4IbiOefhB33ftSs3+bHGRpBu
         zL9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771516317; x=1772121117;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iABelTj/PEu4I9Jo3VCsALnDPxGXpz5wsNtPK8TN7OQ=;
        b=HBLsYd52yjHY5cQuZ20pRpboHfqqkfuxr4dPidqXgz/A0P57OSZgM7V0XxOH25PF96
         ZCi2pivcM+zWHF9Bpqj7EQ54LmTqs1lKCJWQXYEo8BIl8ck+ik0V8tn0p8wzxDv/LMIH
         jYnpABNKQcwUZcSDxM8t1bSdHfxSBjSlvwkbV3U9Jj5D6nW0Bp5xV0+uFGdqCGEXWr5O
         XqOq3A5I0N077IsGSsPsIlFi3KyJb3zafW/fIRn29m60+TecVhHYN19j5r5Oz4MTooSV
         NWbCCoV5cbbgg0qdIaTtjSKtXx/HqZTn/MfYPi+/EP1kAtuoJA9+ZUtBMYfOU1OWiZCU
         lETg==
X-Gm-Message-State: AOJu0YxZEO4Jvt1suov6deF7+bO7pM8RppBNP9l9SMI3wQOsmMNJhPQi
	ew5x/UVMDcs9zyVLk06nwlmFNAt15VSB/pB9l9PpkTQ/lY7Tt21tE+iSmt3YIYXvq2tztKW3X0h
	F8KM=
X-Gm-Gg: AZuq6aIQW7kHOcb+qigXVBaHahCOqUOYXAmY/BH2BJv8KBh0O099cQNvDOlxFMOIrOz
	0eYezyMKORBv+QvsqZkF5EUekzB7qFIvU8AQbsnGb+9DjCT1CSLC6jhqrx2XyO+XF0zGzgJlsBE
	EHefxLetPtpT0tU8s3on8VesirvJys7tRTJqH9TEWZT03YExqVp2F/M8gcVuuvEXGEARYD4fkVi
	xdgeiXkj6Fbje6sT1/SPaVSG/Fsb4lnzln5LLyHEqBwsmNl38MYz7d35qYUrPxT2PkAQ1nUnmx/
	jU3Z9b/cnV5XVKK978nXOuYPCh8Be2ipkzq6DnbtbMSchCFAAkejooLDQLiL9bzCHD8t1fIMSaa
	J5dtgBCOKIx3g+JOoHYSouf3nG39MSqcUKf2zRJKAFO/ZR5DJi1s2iZ+q8FljnQQiVhWIPaoD1q
	ew+n9oCiWzvfkUsv78tdgp5kGqgN/M1uM3oJoE5ls87zN3o+KuQa/JDYl5A0P2HCFd1vpmuCqas
	FXcJhkNlcjTK1I=
X-Received: by 2002:a05:600c:8b51:b0:477:55ce:f3c2 with SMTP id 5b1f17b1804b1-48379bc4e01mr300225405e9.14.1771516317092;
        Thu, 19 Feb 2026 07:51:57 -0800 (PST)
Message-ID: <81e4f7e0-df57-4a5b-b16d-fe668682d94c@suse.com>
Date: Thu, 19 Feb 2026 16:51:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] make ioremap_attr() common
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>, Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Timothy Pearson <tpearson@raptorengineering.com>
References: <924f3ef2-7883-4322-a921-edc814c96719@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: <924f3ef2-7883-4322-a921-edc814c96719@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

This core backing function is uniform; what varies across architectures
are the attributes passed and hence the wrappers around it. Yet of course
extra checking or special handling may be needed per arch, so introduce a
suitable hook. Permit such a hook to return both adjusted and un-adjusted
(for the page offset) pointers.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Declarations (or inline counterparts) aren't being moved around, to avoid
the need to touch source files using the functions. Quite possibly they
want to consistently go into xen/io.h and asm/io.h.

Of course ioremap.c could also go into lib/.

For RISC-V the wrappers likely should become inline functions?

PPC doesn't reference any of the functions just yet, so gets only a
declaration.

For Arm, a TODO item is deliberately retained, yet seeing the use of
ioremap_wc() in domain building (which by itself is questionable, see next
patch) I wonder if that's even feasible as long as we don't have
memremap() or alike.

--- a/xen/arch/arm/include/asm/io.h
+++ b/xen/arch/arm/include/asm/io.h
@@ -1,6 +1,8 @@
 #ifndef _ASM_IO_H
 #define _ASM_IO_H
 
+#include <xen/mm-types.h>
+
 #if defined(CONFIG_ARM_32)
 # include <asm/arm32/io.h>
 #elif defined(CONFIG_ARM_64)
@@ -9,6 +11,16 @@
 # error "unknown ARM variant"
 #endif
 
+#ifdef CONFIG_MPU
+void __iomem *mpu_ioremap_attr(paddr_t start, size_t len, pte_attr_t flags);
+#define arch_ioremap_attr mpu_ioremap_attr
+#else
+/*
+ * ioremap_attr() should only be used to remap device address ranges.
+ * TODO: Add an arch hook to verify this assumption.
+ */
+#endif
+
 #endif
 /*
  * Local variables:
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -5,6 +5,7 @@
 #include <asm/page.h>
 #include <public/xen.h>
 #include <xen/pdx.h>
+#include <xen/vmap.h>
 
 #if defined(CONFIG_ARM_32)
 # include <asm/arm32/mm.h>
@@ -200,13 +201,12 @@ extern int prepare_secondary_mm(int cpu)
 extern void setup_frametable_mappings(paddr_t ps, paddr_t pe);
 /* Helper function to setup memory management */
 void setup_mm_helper(void);
-/* map a physical range in virtual memory */
-void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int attributes);
 
 static inline void __iomem *ioremap_nocache(paddr_t start, size_t len)
 {
     return ioremap_attr(start, len, PAGE_HYPERVISOR_NOCACHE);
 }
+#define ioremap ioremap_nocache
 
 static inline void __iomem *ioremap_cache(paddr_t start, size_t len)
 {
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -455,11 +455,6 @@ unsigned long get_upper_mfn_bound(void)
     return max_page - 1;
 }
 
-void *ioremap(paddr_t pa, size_t len)
-{
-    return ioremap_attr(pa, len, PAGE_HYPERVISOR_NOCACHE);
-}
-
 /*
  * Local variables:
  * mode: C
--- a/xen/arch/arm/mmu/pt.c
+++ b/xen/arch/arm/mmu/pt.c
@@ -206,23 +206,6 @@ void clear_fixmap(unsigned int map)
     BUG_ON(res != 0);
 }
 
-/*
- * This function should only be used to remap device address ranges
- * TODO: add a check to verify this assumption
- */
-void *ioremap_attr(paddr_t start, size_t len, unsigned int attributes)
-{
-    mfn_t mfn = _mfn(PFN_DOWN(start));
-    unsigned int offs = start & (PAGE_SIZE - 1);
-    unsigned int nr = PFN_UP(offs + len);
-    void *ptr = __vmap(&mfn, nr, 1, 1, attributes, VMAP_DEFAULT);
-
-    if ( ptr == NULL )
-        return NULL;
-
-    return ptr + offs;
-}
-
 static int create_xen_table(lpae_t *entry)
 {
     mfn_t mfn;
--- a/xen/arch/arm/mpu/mm.c
+++ b/xen/arch/arm/mpu/mm.c
@@ -9,6 +9,8 @@
 #include <xen/sizes.h>
 #include <xen/spinlock.h>
 #include <xen/types.h>
+
+#include <asm/io.h>
 #include <asm/mpu.h>
 #include <asm/mpu/mm.h>
 #include <asm/page.h>
@@ -593,7 +595,7 @@ void free_init_memory(void)
     spin_unlock(&xen_mpumap_lock);
 }
 
-void __iomem *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
+void __iomem *mpu_ioremap_attr(paddr_t start, size_t len, pte_attr_t flags)
 {
     paddr_t start_pg = round_pgdown(start);
     paddr_t end_pg = round_pgup(start_pg + len);
--- a/xen/arch/ppc/include/asm/io.h
+++ b/xen/arch/ppc/include/asm/io.h
@@ -13,4 +13,6 @@
 #define writew(v,c)     ({ (void)(v); (void)(c); BUG_ON("unimplemented"); })
 #define writel(v,c)     ({ (void)(v); (void)(c); BUG_ON("unimplemented"); })
 
+void __iomem *ioremap(paddr_t pa, size_t len);
+
 #endif /* __ASM_PPC_IO_H__ */
--- a/xen/arch/riscv/include/asm/io.h
+++ b/xen/arch/riscv/include/asm/io.h
@@ -41,6 +41,7 @@
 #include <xen/macros.h>
 #include <xen/types.h>
 
+void __iomem *ioremap(paddr_t pa, size_t len);
 void __iomem *ioremap_cache(paddr_t pa, size_t len);
 void __iomem *ioremap_wc(paddr_t pa, size_t len);
 
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -587,20 +587,6 @@ void *__init arch_vmap_virt_end(void)
     return (void *)(VMAP_VIRT_START + VMAP_VIRT_SIZE);
 }
 
-static void __iomem *ioremap_attr(paddr_t pa, size_t len,
-                                  pte_attr_t attributes)
-{
-    mfn_t mfn = _mfn(PFN_DOWN(pa));
-    unsigned int offs = pa & (PAGE_SIZE - 1);
-    unsigned int nr = PFN_UP(offs + len);
-    void *ptr = __vmap(&mfn, nr, 1, 1, attributes, VMAP_DEFAULT);
-
-    if ( ptr == NULL )
-        return NULL;
-
-    return ptr + offs;
-}
-
 void __iomem *ioremap_cache(paddr_t pa, size_t len)
 {
     return ioremap_attr(pa, len, PAGE_HYPERVISOR);
--- a/xen/arch/x86/include/asm/io.h
+++ b/xen/arch/x86/include/asm/io.h
@@ -47,6 +47,9 @@ __OUT(b,"b",char)
 __OUT(w,"w",short)
 __OUT(l,,int)
 
+void __iomem *x86_ioremap_attr(paddr_t pa, size_t len, pte_attr_t attr);
+#define arch_ioremap_attr x86_ioremap_attr
+
 /*
  * Boolean indicator and function used to handle platform specific I/O port
  * emulation.
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -611,7 +611,15 @@ void destroy_perdomain_mapping(struct do
                                unsigned int nr);
 void free_perdomain_mappings(struct domain *d);
 
-void __iomem *ioremap_wc(paddr_t pa, size_t len);
+static inline void __iomem *ioremap(paddr_t pa, size_t len)
+{
+    return ioremap_attr(pa, len, PAGE_HYPERVISOR_UCMINUS);
+}
+
+static inline void __iomem *ioremap_wc(paddr_t pa, size_t len)
+{
+    return ioremap_attr(pa, len, PAGE_HYPERVISOR_WC);
+}
 
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
 
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -6166,41 +6166,15 @@ void *__init arch_vmap_virt_end(void)
     return fix_to_virt(__end_of_fixed_addresses);
 }
 
-void __iomem *ioremap(paddr_t pa, size_t len)
+void __iomem *x86_ioremap_attr(paddr_t pa, size_t len, pte_attr_t attr)
 {
-    mfn_t mfn = _mfn(PFN_DOWN(pa));
-    void *va;
-
-    WARN_ON(page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL));
+    WARN_ON(page_is_ram_type(PFN_DOWN(pa), RAM_TYPE_CONVENTIONAL));
 
     /* The low first Mb is always mapped. */
-    if ( !((pa + len - 1) >> 20) )
-        va = __va(pa);
-    else
-    {
-        unsigned int offs = pa & (PAGE_SIZE - 1);
-        unsigned int nr = PFN_UP(offs + len);
-
-        va = __vmap(&mfn, nr, 1, 1, PAGE_HYPERVISOR_UCMINUS, VMAP_DEFAULT);
-        if ( va )
-            va += offs;
-    }
-
-    return (void __force __iomem *)va;
-}
-
-void __iomem *__init ioremap_wc(paddr_t pa, size_t len)
-{
-    mfn_t mfn = _mfn(PFN_DOWN(pa));
-    unsigned int offs = pa & (PAGE_SIZE - 1);
-    unsigned int nr = PFN_UP(offs + len);
-    void *va;
-
-    WARN_ON(page_is_ram_type(mfn_x(mfn), RAM_TYPE_CONVENTIONAL));
-
-    va = __vmap(&mfn, nr, 1, 1, PAGE_HYPERVISOR_WC, VMAP_DEFAULT);
+    if ( !((pa + len - 1) >> 20) && attr == PAGE_HYPERVISOR_UCMINUS )
+        return (void __force __iomem *)__va(pa);
 
-    return (void __force __iomem *)(va ? va + offs : NULL);
+    return NULL;
 }
 
 int create_perdomain_mapping(struct domain *d, unsigned long va,
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -19,6 +19,7 @@ obj-$(CONFIG_GRANT_TABLE) += grant_table
 obj-y += guestcopy.o
 obj-y += gzip/
 obj-$(CONFIG_HYPFS) += hypfs.o
+obj-y += ioremap.o
 obj-$(CONFIG_IOREQ_SERVER) += ioreq.o
 obj-y += irq.o
 obj-y += kernel.o
--- /dev/null
+++ b/xen/common/ioremap.c
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/mm.h>
+#include <xen/pfn.h>
+#include <xen/vmap.h>
+
+#include <asm/io.h>
+
+void __iomem *ioremap_attr(paddr_t pa, size_t len, pte_attr_t attr)
+{
+    void __iomem *ptr = NULL;
+    unsigned int offs = PAGE_OFFSET(pa);
+
+#ifdef arch_ioremap_attr
+    ptr = arch_ioremap_attr(pa, len, attr);
+    if ( PAGE_OFFSET(ptr) )
+        return ptr;
+#endif
+
+    if ( IS_ENABLED(CONFIG_HAS_VMAP) && !ptr )
+    {
+        mfn_t mfn = _mfn(PFN_DOWN(pa));
+
+        ptr = (void __force __iomem *)__vmap(&mfn, PFN_UP(offs + len), 1, 1,
+                                             attr, VMAP_DEFAULT);
+    }
+
+    if ( !ptr )
+        return NULL;
+
+    return ptr + offs;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -121,9 +121,10 @@ void vfree(void *va);
  *
  * @param pa  Physical base address of the MMIO region.
  * @param len Length of the MMIO region in octets.
+ * @param attr Attributes for the mapping.
  * @return Pointer to the mapped area on success; NULL otherwise.
  */
-void __iomem *ioremap(paddr_t pa, size_t len);
+void __iomem *ioremap_attr(paddr_t pa, size_t len, pte_attr_t attr);
 
 /* Return the number of pages in the mapping starting at address 'va' */
 unsigned int vmap_size(const void *va);



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 15:53:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 15:53:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236530.1539222 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6Lh-0002If-51; Thu, 19 Feb 2026 15:53:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236530.1539222; Thu, 19 Feb 2026 15:53: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 1vt6Lh-0002IY-29; Thu, 19 Feb 2026 15:53:53 +0000
Received: by outflank-mailman (input) for mailman id 1236530;
 Thu, 19 Feb 2026 15:53: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt6Lf-0002IP-Ew
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 15:53:51 +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 2e5e27a4-0dab-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 16:53:49 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so12008115e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 07:53:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4839ea454eesm19224865e9.11.2026.02.19.07.53.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 07:53:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2e5e27a4-0dab-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771516429; x=1772121229; 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=HXm7U3woukJFOwS2HcEUe3Wn0HbgyiyTjBKF1lMbwWo=;
        b=UdZmxcOqHGaMTulV1rUw5WLs8ZL8IFPdYle0jqfoBu43q7qsZoM4TMrs9eAfX3BwlU
         fQS2inKF/WOvAJajINxU86fdNZPT9+BjwY5CkOVpVcz/QoHrYnN3FFp7kaf9n4ubjoYR
         /1zQgGkRqJ/TLFwt7i5i38dFgt+eCZjUIzZTazfv0c2KGBQCQH255Dr3IAUcJ/9Op1pR
         ODKv22vfSatBpE3SlksX4+ZQdAdTgtI20Icca9YnMgQuYdGyVB+n32MsSVh4q2GpK3rm
         BfdXZxhNLID0WJE0rdEMp3FMjDKqmbwmE1wyYB8Ktmk5RwyPDuimcAkHSHgpMgjA/OGv
         qiTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771516429; x=1772121229;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HXm7U3woukJFOwS2HcEUe3Wn0HbgyiyTjBKF1lMbwWo=;
        b=UCjIhMknwpaZAklSCbSqIc4FGyblGmweHAXw2yApFh4HJfEj3wD1z3qz0p8V7NZjwq
         P8ZszlXB2yM6xVGuFXuds7PRNj5P5R3+rLXKaxEMj7KTLXon91IqrH63pJk5PN4Qr2Kg
         WUklOsIoROPTgo9e9/p8IEbhzQQz/yWEXe8tEBF++tPitCtEsEb+WgynrPx0zG7Fle2z
         /2a9AE604rn3BOfliT3+skAsWV+lo73Z/O2SpGEGSBElbIDehdW0aL9Pbu0VA9marB32
         mRDdd2cc/1jz3QkfleIOuZykQmZSKl+Tswgtqpj9FoUEzYY0qCadfFdcFTAIBzruNNQp
         z2Mg==
X-Gm-Message-State: AOJu0YzyxYAysoeiMYsvi7Dlv0WCLxsKoHawYuEw3XfF6ssh39PDyNbp
	7sHbZFmTlYa99ozEDYx7wfuKfRCCJv7Inwh7zTKvTLhLlbDEC84c0r6GYOvFpFaw46GtvH2SZhL
	BpVw=
X-Gm-Gg: AZuq6aImoXg82Hiq91Ph7s9898XfhTKv2uD3ECTAbySi2KNkSOwzKbFtReGC0vSLQdr
	mTcLKiO8aK63aDTyCBnxhQEyHLBFNjojrHm7Ivu5yTElldkLB6ndyUUg6yNcUcZAxT7/nw/c1eM
	dsp1Qhjd4pnOhS/A4D3ZasXJgs9QWbR13AZm07voe/nfpr5A7jY28kqt+htR/J4M6RohAd6Yp2c
	2cU/o9DpXInKNtCbJ4IxntNMd2lkD4wcQmVOHTjZc+skQmFHvefiyrgjaKXrDxuUS6DuTGqkLpc
	mMUEoLyEs4xfbmhxnjprWb0vizllCOpmhrzgMKa2Pc8IvjJpznRxZK2ojJuhkP1AjHO+iiTzUxT
	tFnlM2DctsR1kuNTmVEx1hhRCYSObfsus3q7xd4ExocOCLj4LlrwyCaeDjoVU59j4YrQSe/tfso
	vtKMYmVYlBZA/6g4KWV09iF2qvjxXbsYyc5APCt7LLPcvmC+QVHCqB1FoABO8Yw1eyQM3dkZVOQ
	C1Nyret9gfnUQI=
X-Received: by 2002:a05:600c:3e14:b0:483:7783:5363 with SMTP id 5b1f17b1804b1-48398b6e214mr88458575e9.26.1771516428918;
        Thu, 19 Feb 2026 07:53:48 -0800 (PST)
Message-ID: <20adacfa-06ce-4508-916d-f15d8f17788f@suse.com>
Date: Thu, 19 Feb 2026 16:53:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH 2/2] make ioremap_wc() x86 only (for the time being)
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>, Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>
References: <924f3ef2-7883-4322-a921-edc814c96719@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: <924f3ef2-7883-4322-a921-edc814c96719@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Its use in domain building is questionable: Already at the point both uses
were introduced, ioremap_cache() existed. I can't see why kernel and
initrd would need mapping WC, when at the same time other similar mappings
(in common/device-tree/) are done WB.

With those uses replaced, neither Arm nor RISC-V have a need for the
function anymore.

Amends: d8972aa9645f ("xen/arm: kernel: Rework kernel_zimage_load to use the generic copy helper")
Amends: bb7e6d565d92 ("xen/arm: domain_build: Rework initrd_load to use the generic copy helper")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -213,11 +213,6 @@ static inline void __iomem *ioremap_cach
     return ioremap_attr(start, len, PAGE_HYPERVISOR);
 }
 
-static inline void __iomem *ioremap_wc(paddr_t start, size_t len)
-{
-    return ioremap_attr(start, len, PAGE_HYPERVISOR_WC);
-}
-
 /* XXX -- account for base */
 #define mfn_valid(mfn)        ({                                              \
     unsigned long __m_f_n = mfn_x(mfn);                                       \
--- a/xen/arch/arm/kernel.c
+++ b/xen/arch/arm/kernel.c
@@ -148,7 +148,7 @@ static void __init kernel_zimage_load(st
     printk("Loading zImage from %"PRIpaddr" to %"PRIpaddr"-%"PRIpaddr"\n",
            paddr, load_addr, load_addr + len);
 
-    kernel = ioremap_wc(paddr, len);
+    kernel = ioremap_cache(paddr, len);
     if ( !kernel )
         panic("Unable to map the %pd kernel\n", info->bd.d);
 
--- a/xen/arch/riscv/include/asm/io.h
+++ b/xen/arch/riscv/include/asm/io.h
@@ -43,7 +43,6 @@
 
 void __iomem *ioremap(paddr_t pa, size_t len);
 void __iomem *ioremap_cache(paddr_t pa, size_t len);
-void __iomem *ioremap_wc(paddr_t pa, size_t len);
 
 /* Generic IO read/write.  These perform native-endian accesses. */
 static inline void __raw_writeb(uint8_t val, volatile void __iomem *addr)
--- a/xen/arch/riscv/mm.c
+++ b/xen/arch/riscv/mm.c
@@ -592,11 +592,6 @@ void __iomem *ioremap_cache(paddr_t pa,
     return ioremap_attr(pa, len, PAGE_HYPERVISOR);
 }
 
-void __iomem *ioremap_wc(paddr_t pa, size_t len)
-{
-    return ioremap_attr(pa, len, PAGE_HYPERVISOR_WC);
-}
-
 void __iomem *ioremap(paddr_t pa, size_t len)
 {
     return ioremap_attr(pa, len, PAGE_HYPERVISOR_NOCACHE);
--- a/xen/common/device-tree/domain-build.c
+++ b/xen/common/device-tree/domain-build.c
@@ -395,7 +395,7 @@ void __init initrd_load(struct kernel_in
     if ( res )
         panic("Cannot fix up \"linux,initrd-end\" property\n");
 
-    initrd = ioremap_wc(paddr, len);
+    initrd = ioremap_cache(paddr, len);
     if ( !initrd )
         panic("Unable to map the %pd initrd\n", kinfo->bd.d);
 



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 16:01:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 16:01:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236544.1539233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6Sf-0004bd-PL; Thu, 19 Feb 2026 16:01:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236544.1539233; Thu, 19 Feb 2026 16:01: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 1vt6Sf-0004bW-MH; Thu, 19 Feb 2026 16:01:05 +0000
Received: by outflank-mailman (input) for mailman id 1236544;
 Thu, 19 Feb 2026 16:01: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=W6FJ=AX=gmail.com=xakep.amatop@srs-se1.protection.inumbo.net>)
 id 1vt6Se-0004bQ-U4
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 16:01: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 30816849-0dac-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 17:01:02 +0100 (CET)
Received: by mail-lf1-x133.google.com with SMTP id
 2adb3069b0e04-59e4989dacdso1347011e87.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 08:01:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30816849-0dac-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771516862; cv=none;
        d=google.com; s=arc-20240605;
        b=flgYOO58eYtvrX2jWPIilzhIVGojBwV5rNaU9fszF6riG0uq1WSDpY/006zUNjuxGR
         iIlO2grVaqzoecvW+eszdTx90xwficAU5Z753NjQWhXWHRU4leMEu6GAQmCIJA9AW6Za
         ZTxkn4QgF6zL/wjfEpqQysrEfeFBcbVj4wY//QVXaJGwGDDKae5SeOUyxgXxW+0yp/Bc
         ORgOY6Kn1NaZNCrn8Fbzv2tnNHi+wz/p1XGI7QSSv6hOtZXx8beeRZfeDfWbPX2sTBxc
         LtwI/+BtoF/GwiA1RG5dbDa18aOjWU6c95RKqWhOOyCJm0O5y306lFvRy94z+HW+IIuS
         KQ7Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=FMy378CkmrJq578o8xbt8mONtZJmLq/hP4VY9u0idEc=;
        fh=S1TgsMYO/ju21WOcmYTQxMlAU8ImCjuw50drwKkfBt8=;
        b=VzIsJ8lRUGy5gRYeYo2MbY6EC6XMI8U6iLGmgENjhXcITYoRoTvTzl0k3E0WofHOBx
         3bUO2ETCVnS/hfTC2ZexVEGgdaDpXwaWO51zD8Xq6ZF+nM0VIxZ/fbH33f00oo2IfLa3
         EjAOzGD21VhF+PRXa2nvu4GE3jqxNkW4fvONIM1fF2nKJ3szuuu7J1LwAWeK4ko02Obv
         RYD5b6zsU8MpxwgY8XWA3jLafLzow0Znsplr4CS5lnt/ju97BWAVMxyo6VulAZY4K8RJ
         2JB7b5sMCaE+yZGmnjxEIORqlO01b8pYZmICz6aNHviw5JyaU00kP8CYLb0Trp4DOI7g
         ARJA==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771516862; x=1772121662; 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=FMy378CkmrJq578o8xbt8mONtZJmLq/hP4VY9u0idEc=;
        b=IHiFj5B7g/z3fGdBa7nSGC8OY/KkiqVPXR0mPyv3FcS+WHr7qLMao7xxIcDlCC6lZv
         l320pmVu15KPMm+vIf4iZl4qZWWN6LP5+RKjqy2CPXnMfxlFYruIHAJFdgVWxzJ+07B9
         vJs3dsdd8B+aMEx+XX7afWdHCcYHv1BV85r6oq/YWXVCZm8libFQfYzjZuWCZwIY6UbC
         gQdVTQXtP/Ht5z5P/jjRt9ccph53JKB9qZzrVOH+y6FSXcayytZ7l6XidjcwjAPmJ2uO
         PmuVq16VecwzWaJQGmtr756MmTdhvD7EhzkOM7pF+OLWP1+NnTWGMqmXXDR6k+cE/imr
         EGiA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771516862; x=1772121662;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=FMy378CkmrJq578o8xbt8mONtZJmLq/hP4VY9u0idEc=;
        b=Bi22jBON65g8LxkQxV/tGtf74N56+ebNLAl8Aohz8R8PM28E/GZMccdKQAT59StMZc
         yeDoGBieenXbiPpF9BEXVMckxBuuSBh46LXPAx7edGj7vDwGLqIzWQlK8q1MmVFGGcSL
         j93bDTQzS8XhmbCN7zIWlLARo89tuJNhF2gqrmnsQKQgVOlEYFoqhHcg95QUMDmsxfob
         l0UBzd9NdM5gO7NPiNZFzjcVy37pdZWa+1b6ft92V9ZeKWHffvXAd3X/LEaaZ6LhpHr+
         L1AayDILqqPRApdX7LX0jxz8PROlU62HDAarTQONqQ1eRh3Z2+Khl6eJHRYY86ot1RVs
         2+fw==
X-Gm-Message-State: AOJu0YzAKF8FPFTpKVFpS9s1y6ofHwk9jKjQWdVWdo247un50efp/apu
	xYwDpcPcaJ5wuMZM6ZbmREYnmJyXpOeE5Z0hA3GMxK3DkFYJ/m17l2b8Fkf3/62X03OjHLHdd06
	qPpjuZrKwoJLW2/JV1dsUHOo+KuLFXNE=
X-Gm-Gg: AZuq6aIepg2TwWCoYvHArNzLmtcCCLxnj+/mqOjjgrBMiWFtS02LapMWuUecIIGb4vr
	iieOwGeXfFu4n+iSkhazGe0afodaal1dUqVGbOidFZ0M4noDgZa0cgYqCpYbvd1T/bQatnrY8dk
	fc5BZ7QKVIHI6tR7yhjGW5qNGMo5bEAbCIIQwk7O9XTRLVAb0BQ1PtQqx4ScMS1N4jWnsBhlJoc
	qYzt3KqxHCf+5V3TS5Zjjm8DhnToKTOr/LPieqFaPeCbe0vfso+64HkYRQ97A668h2jMVvSAHOP
	e7tbNQ==
X-Received: by 2002:a05:6512:3e08:b0:59c:bfb8:4cfa with SMTP id
 2adb3069b0e04-59f69c6d5b1mr6004721e87.41.1771516860988; Thu, 19 Feb 2026
 08:01:00 -0800 (PST)
MIME-Version: 1.0
References: <cover.1770046465.git.mykyta_poturai@epam.com> <2bbe54851092309a0c23d68e60dfe93e4f77ef3a.1770046465.git.mykyta_poturai@epam.com>
In-Reply-To: <2bbe54851092309a0c23d68e60dfe93e4f77ef3a.1770046465.git.mykyta_poturai@epam.com>
From: Mykola Kvach <xakep.amatop@gmail.com>
Date: Thu, 19 Feb 2026 18:00:00 +0200
X-Gm-Features: AaiRm52L_JeDfZi0DDt7SBqE2rlixsJKGvPZFar3GwL2eg-hKMSl9Xof_uhr8cw
Message-ID: <CAGeoDV8YdP_miXacqVeqrmeB-CNGWUicy5nVOSYNkwKC6xfL0w@mail.gmail.com>
Subject: Re: [RFC PATCH 18/19] arm/gic: Add VPE proxy support
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 Mon, Feb 2, 2026 at 6:14=E2=80=AFPM Mykyta Poturai <Mykyta_Poturai@epam.=
com> wrote:
>
> Signed-off-by: Mykyta Poturai <mykyta_poturai@epam.com>
> ---
>  xen/arch/arm/gic-v3-its.c              |  13 ++
>  xen/arch/arm/gic-v3.c                  |   1 +
>  xen/arch/arm/gic-v4-its.c              | 207 ++++++++++++++++++++++++-
>  xen/arch/arm/include/asm/gic_v3_defs.h |   7 +
>  xen/arch/arm/include/asm/gic_v3_its.h  |   7 +
>  xen/arch/arm/include/asm/gic_v4_its.h  |   5 +
>  xen/arch/arm/include/asm/vgic.h        |   2 +
>  7 files changed, 235 insertions(+), 7 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
> index fa5c1eb6d1..5979a82526 100644
> --- a/xen/arch/arm/gic-v3-its.c
> +++ b/xen/arch/arm/gic-v3-its.c
> @@ -333,6 +333,19 @@ int its_send_cmd_discard(struct host_its *its, struc=
t its_device *dev,
>      return its_send_command(its, cmd);
>  }
>
> +int its_send_cmd_movi(struct host_its *its, uint32_t deviceid, uint32_t =
eventid,
> +                      uint16_t icid)
> +{
> +    uint64_t cmd[4];
> +
> +    cmd[0] =3D GITS_CMD_MOVI | ((uint64_t)deviceid << 32);
> +    cmd[1] =3D eventid;
> +    cmd[2] =3D icid;
> +    cmd[3] =3D 0x00;
> +
> +    return its_send_command(its, cmd);
> +}
> +
>  /* Set up the (1:1) collection mapping for the given host CPU. */
>  int gicv3_its_setup_collection(unsigned int cpu)
>  {
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 1cb3169b72..fb80038f17 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -2096,6 +2096,7 @@ static void __init gicv4_init(void)
>
>      gicv4_its_vpeid_allocator_init();
>
> +    gicv4_init_vpe_proxy();

This call ignores errors from gicv4_init_vpe_proxy(). If it returns an erro=
r
code, please handle it (propagate up, or at least log and bail out) to avoi=
d
continuing with a partially initialized proxy.

>  }
>  #else
>  static void __init gicv4_init(void)
> diff --git a/xen/arch/arm/gic-v4-its.c b/xen/arch/arm/gic-v4-its.c
> index 0462976b93..83ee0510ac 100644
> --- a/xen/arch/arm/gic-v4-its.c
> +++ b/xen/arch/arm/gic-v4-its.c
> @@ -39,6 +39,13 @@ static spinlock_t vpeid_alloc_lock =3D SPIN_LOCK_UNLOC=
KED;
>  static uint16_t vmovp_seq_num;
>  static spinlock_t vmovp_lock =3D SPIN_LOCK_UNLOCKED;
>
> +static struct {
> +    spinlock_t lock;
> +    struct its_device *dev;
> +    struct its_vpe **vpes;
> +    int next_victim;
> +} vpe_proxy;
> +
>  void __init gicv4_its_vpeid_allocator_init(void)
>  {
>      /* Allocate space for vpeid_mask based on MAX_VPEID */
> @@ -201,6 +208,124 @@ static int its_map_vpe(struct host_its *its, struct=
 its_vpe *vpe)
>
>      return 0;
>  }
> +static int gicv4_vpe_db_proxy_unmap_locked(struct its_vpe *vpe)
> +{
> +    int ret;
> +
> +    /* Already unmapped? */
> +    if ( vpe->vpe_proxy_event =3D=3D -1 )
> +        return 0;
> +
> +    ret =3D its_send_cmd_discard(vpe_proxy.dev->hw_its, vpe_proxy.dev,
> +                               vpe->vpe_proxy_event);
> +    if ( ret )
> +        return ret;
> +    vpe_proxy.vpes[vpe->vpe_proxy_event] =3D NULL;
> +
> +    /*
> +     * We don't track empty slots at all, so let's move the
> +     * next_victim pointer to quickly reuse the unmapped slot
> +     */
> +    if ( vpe_proxy.vpes[vpe_proxy.next_victim] )
> +        vpe_proxy.next_victim =3D vpe->vpe_proxy_event;
> +
> +    vpe->vpe_proxy_event =3D -1;
> +
> +    return 0;
> +}
> +
> +static void gicv4_vpe_db_proxy_unmap(struct its_vpe *vpe)
> +{
> +    if ( !gic_support_directLPI() )
> +    {
> +        unsigned long flags;
> +
> +        spin_lock_irqsave(&vpe_proxy.lock, flags);
> +        gicv4_vpe_db_proxy_unmap_locked(vpe);

Both return values are ignored. If map_locked() fails and leaves
vpe_proxy_event at the sentinel value, INV may use an invalid eventid.
At minimum: check map_locked() and INV return codes and avoid issuing
INV on failure.

> +        spin_unlock_irqrestore(&vpe_proxy.lock, flags);
> +    }
> +}
> +
> +/*
> + * If a GICv4.0 doesn't implement Direct LPIs (which is extremely
> + * likely), the only way to perform an invalidate is to use a fake
> + * device to issue an INV command, implying that the LPI has first
> + * been mapped to some event on that device. Since this is not exactly
> + * cheap, we try to keep that mapping around as long as possible, and
> + * only issue an UNMAP if we're short on available slots.
> + *
> + * GICv4.1 mandates that we're able to invalidate by writing to a
> + * MMIO register. And most of the time, we don't even have to invalidate
> + * vPE doorbell, as the redistributor can be told whether to generate a
> + * doorbell or not.
> + */
> +static int gicv4_vpe_db_proxy_map_locked(struct its_vpe *vpe)
> +{
> +    int ret;
> +
> +    /* Already mapped? */
> +    if ( vpe->vpe_proxy_event !=3D -1 )
> +        return 0;
> +
> +    /* This slot was already allocated. Kick the other VPE out. */
> +    if ( vpe_proxy.vpes[vpe_proxy.next_victim] )
> +    {
> +        struct its_vpe *old_vpe =3D vpe_proxy.vpes[vpe_proxy.next_victim=
];
> +
> +        ret =3D gicv4_vpe_db_proxy_unmap_locked(old_vpe);
> +        if ( ret )
> +            return ret;
> +    }
> +
> +    /* Map the new VPE instead */
> +    vpe_proxy.vpes[vpe_proxy.next_victim] =3D vpe;
> +    vpe->vpe_proxy_event =3D vpe_proxy.next_victim;
> +    vpe_proxy.next_victim =3D (vpe_proxy.next_victim + 1) %
> +                            vpe_proxy.dev->eventids;
> +
> +    return its_send_cmd_mapti(vpe_proxy.dev->hw_its, vpe_proxy.dev->host=
_devid,

The software state is committed before MAPTI completes. If MAPTI
fails, the vpe stays "mapped" in SW (and next_victim advances), but HW
doesn't have the translation. I think this needs rollback on failure
(or update state only after MAPTI succeeds).

> +                              vpe->vpe_proxy_event, vpe->vpe_db_lpi,
> +                              vpe->col_idx);
> +}
> +
> +int __init gicv4_init_vpe_proxy(void)
> +{
> +    struct host_its *hw_its;
> +    uint32_t devid;
> +
> +    if ( gic_support_directLPI() )
> +    {
> +        printk("ITS: Using DirectLPI for GICv4 VPE invalidation\n");
> +        return 0;
> +    }
> +
> +    /* Any ITS will do, even if not v4 */
> +    hw_its =3D list_first_entry(&host_its_list, struct host_its, entry);

host_its_list may be empty here. list_first_entry() is unsafe in that
case please use list_first_entry_or_null() (or check list_empty()) and
handle the NULL/empty case

> +
> +    vpe_proxy.vpes =3D xzalloc_array(struct its_vpe *, nr_cpu_ids);
> +    if ( !vpe_proxy.vpes )
> +    {
> +        printk(XENLOG_ERR "ITS: Can't allocate GICv4 VPE proxy device ar=
ray\n");
> +        return -ENOMEM;
> +    }
> +
> +    /* Use the last possible DevID */
> +    devid =3D BIT(hw_its->devid_bits, UL) - 1;

This "pick the last DevID" policy looks fragile: it can collide with
other Xen ITS users if they ever end up allocating across the full
DevID space.

> +    vpe_proxy.dev =3D its_create_device(hw_its, devid, nr_cpu_ids);
> +    if ( !vpe_proxy.dev )
> +    {
> +        printk(XENLOG_ERR "ITS: Can't allocate GICv4 VPE proxy device\n"=
);

vpe_proxy.vpes is leaked when vpe_proxy.dev allocation fails

> +        return -ENOMEM;
> +    }
> +
> +    spin_lock_init(&vpe_proxy.lock);
> +    vpe_proxy.next_victim =3D 0;
> +    printk(XENLOG_INFO
> +           "ITS: Allocated DevID %u as GICv4 VPE proxy device\n", devid)=
;
> +
> +    return 0;
> +}
> +
>  static int __init its_vpe_init(struct its_vpe *vpe)
>  {
>      int vpe_id, rc =3D -ENOMEM;
> @@ -224,6 +349,7 @@ static int __init its_vpe_init(struct its_vpe *vpe)
>      rwlock_init(&vpe->lock);
>      vpe->vpe_id =3D vpe_id;
>      vpe->vpendtable =3D page_to_virt(vpendtable);
> +        vpe->vpe_proxy_event =3D -1;
>      /*
>       * We eagerly inform all the v4 ITS and map vPE to the first
>       * possible CPU
> @@ -299,16 +425,45 @@ static int its_send_cmd_vmovp(struct its_vpe *vpe)
>      return 0;
>  }
>
> +/* GICR_SYNCR.Busy =3D=3D 1 until the invalidation completes. */
> +static void wait_for_syncr(void __iomem *rdbase)
> +{
> +    while ( readl_relaxed(rdbase + GICR_SYNCR) & 1 )
> +        cpu_relax();

This is an unbounded busy-wait. If SYNCR.Busy gets stuck (or RDbase is
wrong), Xen can hang. It likely needs a timeout + error path (similar
to other GIC polling loops).

> +}
> +
> +void direct_lpi_inv(struct its_device *dev, uint32_t eventid,

nit: dev and eventid is unused

> +                    uint32_t db_lpi, unsigned int cpu)
> +{
> +    void __iomem *rdbase;
> +    uint64_t val;
> +    /* Register-based LPI invalidation for DB on GICv4.0 */
> +    val =3D FIELD_PREP(GICR_INVLPIR_INTID, db_lpi);
> +
> +    rdbase =3D per_cpu(rbase, cpu);
> +    writeq_relaxed(val, rdbase + GICR_INVLPIR);

direct_lpi_inv() writes GICR_INVLPIR unconditionally.

Note that writing GICR_INVLPIR/GICR_INVALLR while GICR_SYNCR.Busy=3D=3D1
is CONSTRAINED UNPREDICTABLE (the write may be ignored, or the
invalidate may be performed). So we need to ensure Busy=3D=3D0 before
issuing a new invalidate, not only wait after the write.

Please add a pre-check loop (or serialize callers) to guarantee
GICR_SYNCR.Busy=3D=3D0 before the INVLPIR write.

proxy lock protects only the ITS proxy path; direct INVLPIR must also
avoid writes while GICR_SYNCR.Busy=3D=3D1 (pre-check or separate lock)

> +    wait_for_syncr(rdbase);
> +}
>
>  static void its_vpe_send_inv_db(struct its_vpe *vpe)
>  {
> -    // struct its_device *dev =3D vpe_proxy.dev;
> -    // unsigned long flags;
> +    if ( gic_support_directLPI() )
> +    {
> +        unsigned int cpu =3D vpe->col_idx;

We read vpe->col_idx without the vpe lock. Should we use
vpe_to_cpuid_lock() (or otherwise hold vpe_lock) to avoid a
race with affinity updates?

>
> -    // spin_lock_irqsave(&vpe_proxy.lock, flags);
> -    // gicv4_vpe_db_proxy_map_locked(vpe);
> -    // its_send_cmd_inv(dev->hw_its, dev->host_devid, vpe->vpe_proxy_eve=
nt);
> -    // spin_unlock_irqrestore(&vpe_proxy.lock, flags);
> +        /* Target the redistributor this VPE is currently known on */
> +        direct_lpi_inv(NULL, 0, vpe->vpe_db_lpi, cpu);

I think we should document the ordering constraint at the point where
we select between direct_lpi_inv() and the ITS/proxy invalidation path
(its_vpe_send_inv_db()).

The architecture requires register-based invalidation (GICR_INVLPIR /
GICR_INVALLR + polling GICR_SYNCR.Busy) to be serialized against any
ITS command that affects the same interrupt. Overlapping these
operations is CONSTRAINED UNPREDICTABLE.

> +    }
> +    else
> +    {
> +        struct its_device *dev =3D vpe_proxy.dev;
> +        unsigned long flags;
> +
> +        spin_lock_irqsave(&vpe_proxy.lock, flags);
> +        gicv4_vpe_db_proxy_map_locked(vpe);
> +        its_send_cmd_inv(dev->hw_its, dev->host_devid, vpe->vpe_proxy_ev=
ent);

Both return values are ignored. If map_locked() fails and leaves
vpe_proxy_event at the sentinel value, INV may use an invalid eventid.
At minimum: check map_locked() and INV return codes and avoid issuing
INV on failure.

Need to review and handle errors in other places too.

> +        spin_unlock_irqrestore(&vpe_proxy.lock, flags);
> +    }
>  }
>
>  static void its_vpe_inv_db(struct its_vpe *vpe)
> @@ -335,6 +490,7 @@ static void __init its_vpe_teardown(struct its_vpe *v=
pe)
>      unsigned int order;
>
>      order =3D get_order_from_bytes(max(lpi_data.max_host_lpi_ids / 8, (u=
nsigned long)SZ_64K));
> +    gicv4_vpe_db_proxy_unmap(vpe);
>      its_free_vpeid(vpe->vpe_id);
>      free_xenheap_pages(vpe->vpendtable, order);
>      xfree(vpe);
> @@ -830,6 +986,43 @@ static void vpe_to_cpuid_unlock(struct its_vpe *vpe,=
 unsigned long *flags)
>      spin_unlock_irqrestore(&vpe->vpe_lock, *flags);
>  }
>
> +static void gicv4_vpe_db_proxy_move(struct its_vpe *vpe, unsigned int fr=
om,
> +                                    unsigned int to)
> +{
> +    unsigned long flags;
> +
> +    if ( gic_support_directLPI() )
> +    {
> +        void __iomem *rdbase;
> +
> +        rdbase =3D per_cpu(rbase, from);
> +        /* Clear potential pending state on the old redistributor */
> +        writeq_relaxed(vpe->vpe_db_lpi, rdbase + GICR_CLRLPIR);
> +        wait_for_syncr(rdbase);
> +        return;
> +    }
> +
> +    spin_lock_irqsave(&vpe_proxy.lock, flags);
> +
> +    gicv4_vpe_db_proxy_map_locked(vpe);
> +
> +    /* MOVI instructs the appropriate Redistributor to move the pending =
state */
> +    its_send_cmd_movi(vpe_proxy.dev->hw_its, vpe_proxy.dev->host_devid,
> +                      vpe->vpe_proxy_event, to);

handle ret from its_send_cmd_movi


> +
> +    /*
> +     * ARM spec says that If, after using MOVI to move an interrupt from
> +     * collection A to collection B, software moves the same interrupt a=
gain
> +     * from collection B to collection C, a SYNC command must be used be=
fore
> +     * the second MOVI for the Redistributor associated with collection =
A to
> +     * ensure correct behavior.
> +     * So each time we issue VMOVI, we VSYNC the old VPE for good measur=
e.
> +     */
> +    WARN_ON(its_send_cmd_sync(vpe_proxy.dev->hw_its, from));
> +
> +    spin_unlock_irqrestore(&vpe_proxy.lock, flags);
> +}
> +
>  static int gicv4_vpe_set_affinity(struct vcpu *vcpu)
>  {
>      struct its_vpe *vpe =3D vcpu->arch.vgic.its_vpe;
> @@ -859,6 +1052,7 @@ static int gicv4_vpe_set_affinity(struct vcpu *vcpu)
>      ret =3D its_send_cmd_vmovp(vpe);
>      if ( ret )
>          goto out;
> +    gicv4_vpe_db_proxy_move(vpe, from, to);
>
>   out:
>      vpe_to_cpuid_unlock(vpe, &flags);
> @@ -940,4 +1134,3 @@ int its_vlpi_prop_update(struct pending_irq *pirq, u=
int8_t property,
>
>      return its_vlpi_set_doorbell(map, property & LPI_PROP_ENABLED);
>  }
> -
> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/includ=
e/asm/gic_v3_defs.h
> index 0db75309cf..b4d50516ef 100644
> --- a/xen/arch/arm/include/asm/gic_v3_defs.h
> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h
> @@ -20,6 +20,13 @@
>
>  #include <xen/sizes.h>
>
> +#ifndef FIELD_GET
> +#define FIELD_GET(_mask, _reg)                 \
> +       ((typeof(_mask))(((_reg) & (_mask)) >> (ffs64(_mask) - 1)))
> +#endif
> +
> +#define FIELD_PREP(_mask, _val)                        \
> +       (((typeof(_mask))(_val) << (ffs64(_mask) - 1)) & (_mask))

Guard this macro too, it can be redefined

>  /*
>   * Additional registers defined in GIC v3.
>   * Common GICD registers are defined in gic.h
> diff --git a/xen/arch/arm/include/asm/gic_v3_its.h b/xen/arch/arm/include=
/asm/gic_v3_its.h
> index dababe97cd..0e82625840 100644
> --- a/xen/arch/arm/include/asm/gic_v3_its.h
> +++ b/xen/arch/arm/include/asm/gic_v3_its.h
> @@ -236,6 +236,11 @@ int its_inv_lpi(struct host_its *its, struct its_dev=
ice *dev,
>                  uint32_t eventid, unsigned int cpu);
>  int its_send_cmd_mapti(struct host_its *its, uint32_t deviceid,
>                         uint32_t eventid, uint32_t pintid, uint16_t icid)=
;
> +struct its_device *its_create_device(struct host_its *hw_its,
> +                                     uint32_t host_devid, uint64_t nr_ev=
ents);
> +int its_send_cmd_movi(struct host_its *its, uint32_t deviceid, uint32_t =
eventid,
> +                      uint16_t icid);
> +int its_send_cmd_sync(struct host_its *its, unsigned int cpu);
>  #ifdef CONFIG_ACPI
>  unsigned long gicv3_its_make_hwdom_madt(const struct domain *d,
>                                          void *base_ptr);
> @@ -326,6 +331,8 @@ void its_vpe_mask_db(struct its_vpe *vpe);
>  int gicv4_its_vlpi_unmap(struct pending_irq *pirq);
>  int its_vlpi_prop_update(struct pending_irq *pirq, uint8_t property,
>                           bool needs_inv);
> +void direct_lpi_inv(struct its_device *dev, uint32_t eventid,
> +                    uint32_t db_lpi, unsigned int cpu);
>
>  /* ITS quirks handling. */
>  uint64_t gicv3_its_get_cacheability(void);
> diff --git a/xen/arch/arm/include/asm/gic_v4_its.h b/xen/arch/arm/include=
/asm/gic_v4_its.h
> index 37b6b92f0c..1d800fdbaf 100644
> --- a/xen/arch/arm/include/asm/gic_v4_its.h
> +++ b/xen/arch/arm/include/asm/gic_v4_its.h
> @@ -52,6 +52,7 @@ struct event_vlpi_map {
>  };
>
>  void gicv4_its_vpeid_allocator_init(void);
> +int gicv4_init_vpe_proxy(void);
>
>  #define GICR_VPROPBASER                              0x0070
>  #define GICR_VPENDBASER                              0x0078
> @@ -97,6 +98,10 @@ static inline void gits_write_vpendbaser(uint64_t val,=
 void __iomem *addr)
>  }
>  #define gits_read_vpendbaser(c)     readq_relaxed(c)
>
> +#define GICR_INVLPIR_INTID                GENMASK_ULL(31, 0)
> +#define GICR_INVLPIR_VPEID                GICR_INVALLR_VPEID
> +#define GICR_INVLPIR_V                    GICR_INVALLR_V

GICR_INVALLR_VPEID and GICR_INVALLR_V are not defined, so this does
not build as-is.

Also note that the V/VPEID fields in GICR_INVLPIR/INVALLR exist only
for GICv4.1 (FEAT_GICv4p1). For GICv4.0 these bits are RES0.


Best regards,
Mykola

> +
>  #endif
>
>  /*
> diff --git a/xen/arch/arm/include/asm/vgic.h b/xen/arch/arm/include/asm/v=
gic.h
> index 9ef667decb..558f81818c 100644
> --- a/xen/arch/arm/include/asm/vgic.h
> +++ b/xen/arch/arm/include/asm/vgic.h
> @@ -407,9 +407,11 @@ extern void vgic_check_inflight_irqs_pending(struct =
vcpu *v,
>
>  /* GICV4 functions */
>  #ifdef CONFIG_GICV4
> +bool gic_support_directLPI(void);
>  bool gic_support_vptValidDirty(void);
>  bool gic_is_gicv4(void);
>  #else
> +#define gic_support_directLPI() (false)
>  #define gic_support_vptValidDirty() (false)
>  #define gic_is_gicv4() (false)
>  #endif
> --
> 2.51.2


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 16:19:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 16:19:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236569.1539242 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6ki-0006gx-CL; Thu, 19 Feb 2026 16:19:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236569.1539242; Thu, 19 Feb 2026 16:19: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 1vt6ki-0006gq-9N; Thu, 19 Feb 2026 16:19:44 +0000
Received: by outflank-mailman (input) for mailman id 1236569;
 Thu, 19 Feb 2026 16:19: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt6kh-0006gk-50
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 16:19:43 +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 cb149e07-0dae-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 17:19:40 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-436e87589e8so1166553f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 08:19:40 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ad0166sm50860604f8f.35.2026.02.19.08.19.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 08:19:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb149e07-0dae-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771517980; x=1772122780; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ql2Nt2Ea+aMvTlqF6cbBN8BiyHfVVPyd+7TbpqYmClI=;
        b=EFzxSDNWcjPrXdtZ4k6kZ1mEuoK5U1h7iqobLJmV1FrjHgfJOsmLkE0wz9rh5WL7Yz
         GNErgzt8cdvEQvERcm73AmpRKyAugkIfPYT6fmDWeLSmvceRfCvaU5QjCcHo4zGEYNRw
         6tpTnt/Vdl5z6oWvsXByLStC60zeqPrXvium3A4yeKBQMgN4Om3aFO6XblBsLJuJPiU9
         yO8oIkt17RuJFA70goJFZUOQ/36SQiHp20+tjF3tipLeawy1nKFJrdBn9iL1vGycB7go
         hdG+rvnVSufmp6YGN7jIhulfg22qLE5n1sg0hk1dRkSCOAdZGGclV3wqdU8eb4DTcdR2
         siJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771517980; x=1772122780;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ql2Nt2Ea+aMvTlqF6cbBN8BiyHfVVPyd+7TbpqYmClI=;
        b=p6UhodT6vk02Q0W25VrcfSCdX2mouhHLioe+WJFJaaRscOx6EO+h/d7G80YHDOuR7F
         rYddowpth/3PzUNI04G4BgrDnEJqpKE3KYWsVD8TY1tglpDrG1duJYyEjV3tJpGEqOqJ
         A4Vi6xf4C2PIK08ovDvEmIquQcoxZZbJwScmALk0T7MxRRDLQhCiQ93cdbSBNxNZuOwh
         KI8SznsItem2KQG8dJu/PJe6aAsMd7munuZTZ52ZRgp2ogzGrCD254RgpaT42XzZ19v+
         8AWGys1UKP5Uf77/avDPHExuM1058jb5fvJ4iJgGpaXC3/klgBljs528sFyfkANnyNLz
         ykgg==
X-Forwarded-Encrypted: i=1; AJvYcCVWhjcw1PLZ2AB/wEF08+pJOHo7pzqCjNqRzL/COE5RLy5MVJdMX9/e+mfVRA7nifixZ+V5gJmQ+gI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx8yBRrLZvVS7+sKD6LjlccqWq5qfF6ymuZIIgBFkWdpH3z5Uma
	avRvbe1/oqFKpaBZcWpGMunhSL+XkRz/y9OLbh4MFWr9UcSLWKmzHLFSvXTkShSlGw==
X-Gm-Gg: AZuq6aKEw4Dn/3kaAePAVjqDlXImfDfh9WDsM1A1ErQa20YolekYr3HQhLUufgTWBRc
	BFHy2sjoBvwGqffUXXQWKDNIyXXy1y47DwRQd7P/cpm06ofFlRC0gd1gdtTgt3XPQ8wcFWqXUtk
	rr+TK/jCbcpDX3AQhR5BmnX3AktlS+K2NkTZ0YSqmWz2GlC2sg5G0Lyy5Q1DcqD8XNAOmnrXmTu
	kk+0npl2pmlsh2ujiYfJrF4gGJUzNJo22q1ZTN3eM8SWGWUphbHc6tEfB3GPpO1L54OGZrlozFC
	Bf2Nn2Prl/DibZOEX8gTrBguyq/YNvGykoLtryD0ulD8n5ZrvJ4vxJgg1MGS6i2VLbAaPDz4kfb
	3ItU063CXvNroQQNPKc44V2AK/sIogVpCDbaK8CXjMeZYmcLs/JI625OicA9V6h95ihQuiYn5TN
	Xay9lprc14+4IZ/TI/TsV3WHJnPcp/sjWFq8hLWBkwW649MWtoWfsTUQcaDPF5WXq9tnAkPJpxN
	jNjYCwBfI9+IGM=
X-Received: by 2002:a5d:64c9:0:b0:437:74f6:f3aa with SMTP id ffacd0b85a97d-4379792bcbbmr44330641f8f.56.1771517980241;
        Thu, 19 Feb 2026 08:19:40 -0800 (PST)
Message-ID: <67168bee-6a59-49ce-afcd-85df406679e2@suse.com>
Date: Thu, 19 Feb 2026 17:19:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 1/2] x86/svm: Add Enumerations for the SVM virtual NMI
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Cc: roger.pau@citrix.com, teddy.astie@vates.tech, jason.andryuk@amd.com,
 andrew.cooper3@citrix.com, xen-devel@lists.xenproject.org
References: <cover.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
 <a3dd02ed3a01c5aaae804bc69f494de2a47a75f0.1771424278.git.abdelkareem.abdelsaamad@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: <a3dd02ed3a01c5aaae804bc69f494de2a47a75f0.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.02.2026 15:48, Abdelkareem Abdelsaamad wrote:
> Introduce the cpuid bit for the SVM vNMI feature support for the x86\AMD
> platforms. The feature support is indicated by the CPUID
> Fn8000_000A_EDX[25] = 1.
> 
> Add defines for the three SVM's Virtual NMI (vNMI) managements bits in the
> VMCB structure's vintr_t:
> 
> vintr_t(11) - Virtual NMI is pending.
> vintr_t(12) - Virtual NMI is masked.
> vintr_t(26) - Enable NMI virtualization.
> 
> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
> Reviewed-by: Teddy Astie <teddy.astie@vates.tech>

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



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 16:27:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 16:27:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236581.1539253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6rh-0008E3-2B; Thu, 19 Feb 2026 16:26:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236581.1539253; Thu, 19 Feb 2026 16: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 1vt6rg-0008Dw-Vl; Thu, 19 Feb 2026 16:26:56 +0000
Received: by outflank-mailman (input) for mailman id 1236581;
 Thu, 19 Feb 2026 16: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=fQfQ=AX=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vt6rf-0008Dq-Jt
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 16:26:55 +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 ccedce00-0daf-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 17:26:53 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-483487335c2so11273465e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 08:26:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-4839ea386dasm32383205e9.1.2026.02.19.08.26.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 08:26:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ccedce00-0daf-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771518413; x=1772123213; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zie/J5zNpGEq5F9mXUCAELLe6eQWNUqO/EF8FSWX2aA=;
        b=T11e2sfwjEXvkzqJuS+Kl/CKMoazsOq7lp+sev2GAECX7RGYS9czTRbSQ1uXwavVWP
         yKmZwnLK8R4uX14bsGmeOZoqEw1qC4rrCwVnX4s6GisburgYZYNBwFalRB98z26KMY2c
         tuoMQCusJqSvUWcjQN7Yubg4sNbvgpplzbmgLSj2QQoOdz5linKOl9Q/Q4+KvjhdYgAw
         c+L0KMTNgdPVVe4YKVdstJW8xrK8iD9QMuzf0DoVKtPHZ/uH7M2+fG8b6Jd3tJmv1qYV
         fJVpntoMXHsHe3lEuL29c1scsNHv0ZUPuxMg4NXPzmQBaxpf9MhFbuSyrPK1Xydv5r1G
         hpvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771518413; x=1772123213;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zie/J5zNpGEq5F9mXUCAELLe6eQWNUqO/EF8FSWX2aA=;
        b=PBYQzOIMZ5Sb3ikGl2G5M7TvJsMDGcm9LTyRCYttofyXBAo0W+6DfokXDZ1wpzU4Ar
         E/mCJ8TD6UKN7VPtNRLYbhcy9rorAWdUwg18Nvksj0dNf51+8LL3P7Ubs+APoZbx6z7K
         /ANH0TyXLGMXF36m3RvbEvXhK8ScdfChL/CKNEcrX8rl8dyiuElmfjiWAn4ZbWynnujf
         ua/nwrQFYCQMzcuauL2fWy4XfI5Dmt1H26zSuEuR0VrhQmKarWOMcagQhwNkZ6R26i7L
         uVNzUf7kOUzPBotwcQyBWHdR/hwugfHNfbShOnzQ1BWwE2ZWxHZKCVSuXd9hDj4PboUW
         3AEw==
X-Forwarded-Encrypted: i=1; AJvYcCWDUpqP7R1XZA6qQDM3IOe4lgR+gudcSs2ktebNIYefMvJnmoVUQB4l24HKSwuleMLeGSIxllSDr9g=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyrUCl0V1pHKFEBad5L1TXq+/Xl1gyB4WqENIFN2sjwctT3LVIX
	kGCFiPy2dHTi1lo+H5asPZ9je35OyNR6zpzh5oA0PRCNYNlZsn+Gy50oSuPWDOBT4w==
X-Gm-Gg: AZuq6aKGhT31iw6sG7BWh732T/m7HZIQi7sUV/MylSTL6k9ZKIiRtLOSOovwuPprSch
	sAFEnetXjFOFQvik2u0ZtDIe7ab0jGaJ8dUWrWVNBZHPYfk2BzPKzg8386zvqL5Ow0i1Rq4EfBC
	p9vWOftokn3YlW2aFDDdjhlqHJ4nBylrqfFQVy33mIHU0NARCHAe6lr6R09yecAHE1UTMYZXcz6
	v9fx42+/dVxtNMqLx0JBCe+zzH/FMvZBpDmFCWSXDUIS+GhO4KlZHaRWggGT4sOmdgZqq4AM19J
	ghZ86pNdVDrQVbBY37XMfvdlVsvLfP7H5xzG9N+z4B7ajUFARTqdkEci4d2D/PwP13yLwu5a7zp
	CvSibNqLjzNBKW1BsmYpeSieYpsi9hEHv/VgobiSCqv/1zaK6fAuxGvGhpv5iap2NomjL2XoYGJ
	NaUJ94klEfiL6ytDGIskkacH0nrZhJC1l/ezyhT6tioUmS4UJYsSrx6YWufmwuQD/HMFxltkDdl
	9QvrN5as/oJathTP9WxUT9pQw==
X-Received: by 2002:a05:600c:5397:b0:480:1b1a:5526 with SMTP id 5b1f17b1804b1-4839e64443fmr63096535e9.16.1771518412687;
        Thu, 19 Feb 2026 08:26:52 -0800 (PST)
Message-ID: <3989d531-00fc-4a78-b236-1693fda61b62@suse.com>
Date: Thu, 19 Feb 2026 17:26:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 2/2] x86/svm: Use the virtual NMI when available
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Cc: roger.pau@citrix.com, teddy.astie@vates.tech, jason.andryuk@amd.com,
 andrew.cooper3@citrix.com, xen-devel@lists.xenproject.org
References: <cover.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
 <b4c0009eeee03b855321954135a37ef08290f640.1771424278.git.abdelkareem.abdelsaamad@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: <b4c0009eeee03b855321954135a37ef08290f640.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 18.02.2026 15:48, Abdelkareem Abdelsaamad wrote:
> --- a/xen/arch/x86/hvm/svm/intr.c
> +++ b/xen/arch/x86/hvm/svm/intr.c
> @@ -33,6 +33,14 @@ static void svm_inject_nmi(struct vcpu *v)
>      u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>      intinfo_t event;
>  
> +    if ( vmcb->_vintr.fields.vnmi_enable )
> +    {
> +        if ( !vmcb->_vintr.fields.vnmi_pending )
> +            vmcb->_vintr.fields.vnmi_pending = 1;

Why the (inner) conditional?

Also, as I think Teddy had already indicated before, might we better not use
the _vintr field directly, but rather use the vmcb_[gs]et_vintr() wrappers? I
notice nestedsvm.c open-codes many of the accesses, but elsewhere I see just
one such case. The field name has a leading underscore for this reason, iirc.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 16:34:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 16:34:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236592.1539262 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt6z6-0001aM-Of; Thu, 19 Feb 2026 16:34:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236592.1539262; Thu, 19 Feb 2026 16: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 1vt6z6-0001aF-M3; Thu, 19 Feb 2026 16:34:36 +0000
Received: by outflank-mailman (input) for mailman id 1236592;
 Thu, 19 Feb 2026 16:34: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=erNG=AX=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vt6z5-0001a9-99
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 16:34:35 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dbe2d5f3-0db0-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 17:34:30 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by DM6PR03MB5273.namprd03.prod.outlook.com (2603:10b6:5:240::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.13; Thu, 19 Feb
 2026 16:34:21 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Thu, 19 Feb 2026
 16:34: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: dbe2d5f3-0db0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mIhof0Mdo5snoMvr/m8l2X49lHkv7Oozw4sZtJtFPlOTnwkJWSYJvEcCSJOPZlWMUER8S5NoIXCB6KvBJPpZvFzWwlQ8FudeLzXVRCXDNV2wMU0GwonkPjmeKUvy6PvXTOMaEX/g025QgxD58aJ3kQ4eoc71Q0FHuwZm/eBhJzpCnuXh0vIRoC3QaBgy40rQ6cKMJZq/uhcjZ+dhP/qRG+Wne0h/pxFW0+Tx18ksxhziz60Y3MNMRWcDj3gz3qFPv4mmoqxQVW/L9UU0c6joa3jjo4pcIMTfEfCRSXylFzY9ri/eXLgGqf7Ui9nEWPszpKzGWjM97SneP3FvLgx7fA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=sFlvpKpYZ5wOfRey52gvC90Yc7wbRWfMPrLqgbfVZw0=;
 b=kddUZa+ci6Uwc9h64cW8Ec2DzXsEy2tafvzD1wNuejYIRVjUC3KrRuxG5Fwy3VjJeEfnhgcMJu+6c8pC7STtsmCpC+sNmJRHn1bYtPVV4W1fkdUQXosm5a+iLDUNE4D+gwbM+x0q2NG7xlJNtTBI7JiPdrPu+pMZto2sCsnufgyHG5ronMy2udVKuCf/xwjSrV4fCcaNA1zY1qRv0pxZxrLljxGC7ALLwtTA8y1tOop4DJ+5s2M1VlL/pmdiF4Z131iekb3nH+FywJ+2Vinu4N30k90sxD8fQPb71VHL3nsoqyCDfCaYUp/Q0DH16IyxZkbPx0D4R878LQO98VuUfw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=sFlvpKpYZ5wOfRey52gvC90Yc7wbRWfMPrLqgbfVZw0=;
 b=yw3Z0wlxB5I6FolQAJN4MRzbMg1gVma+BIcXR20eAQbWOdLuGeVPZtLFlEdWSCIkolzj3MNxB+Pf7MeeFOIITufg9h3HyUTPiKqLdbhn/a/vBmd6XLJ4A7QN2eAyHwvHN3BMk8ODhkYz0wfol56tRRpeZCcKN80zoDdKaJCRzrQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <bc783b8c-0133-43a3-954d-76c8c33da423@citrix.com>
Date: Thu, 19 Feb 2026 16:34:18 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, roger.pau@citrix.com,
 teddy.astie@vates.tech, jason.andryuk@amd.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 2/2] x86/svm: Use the virtual NMI when available
To: Jan Beulich <jbeulich@suse.com>,
 Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
References: <cover.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
 <b4c0009eeee03b855321954135a37ef08290f640.1771424278.git.abdelkareem.abdelsaamad@citrix.com>
 <3989d531-00fc-4a78-b236-1693fda61b62@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <3989d531-00fc-4a78-b236-1693fda61b62@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0037.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:152::6) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|DM6PR03MB5273:EE_
X-MS-Office365-Filtering-Correlation-Id: 74e50864-a194-46c8-e62a-08de6fd4bc45
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?d0lGVnhLRjlQRmNVdWhKU3VDcDBURTVDNUJKNGJPRVF4ajAzRVBOdDFMaEFz?=
 =?utf-8?B?Tm1ETnhDNDBkK3NDMGtsMWsyK3crZmlpR0d5Q054MzFEYlNuV2tFRUJUR2dS?=
 =?utf-8?B?cmMyZTRLWGFWdlVjMWdLVlB4QTRMYmhRUHB1ajdUQ3J5ekJSNWRUYmtDLzJI?=
 =?utf-8?B?Q3F6UEJYVTNlQVMyRU5vS0YvMDM0K0liNHFDaCtscnpxZExnU29haFVodzJK?=
 =?utf-8?B?bHhYTGhTRTdUVEVTVCs5ZzdWU2pvUDdva2pDTUFjcmlWcnJKSEFQbjhFYnZB?=
 =?utf-8?B?N2R3ODU3QUVjN2Q0enEvT1pLM1dQSnNUSlhZTHBiTDBjM1VHZ3FMNmZxcnJI?=
 =?utf-8?B?Q2wxL1lKOWlMQ3NqUHJMWmtTQ2pHUnpyKzJHazNFVFNLVTJkZW55U3RXajRz?=
 =?utf-8?B?QXYwYmRkS2VpWWNuOHVFcFZtaTFtUXNlL2NrMmFSdG1QbDZ5NSt0ZytXMlNY?=
 =?utf-8?B?RFFDTStzTUJrSlEyWTBISnlWM2dZQzcrQmVkcDVpNm5FSlFrTUVHdEhuRERi?=
 =?utf-8?B?QWlTaFFoUTl1U0cyVmcyU3ZRUlpqdmVCdEwrbHhOdW9Pb0xneHg0eGJZY2JS?=
 =?utf-8?B?QlM5WVM5TVFqbXF1YW9WNjN6Ti9BQ0RwZGRDdCtyZExVZlpVNHk0cnUrdHhI?=
 =?utf-8?B?N1Y0QjlhZjVEWWxSS2dBbGRuWjJvQkFsTjVFSVhPSjhacWJab25FVjZRdENG?=
 =?utf-8?B?VzdBTTFKS3R0N1FNTytFaEF5anFZVWx3QmRHUUpES1o1WVhqei92Zm1xZkdJ?=
 =?utf-8?B?aFVWNEZTa3JIeEVGemdxTDdXUjdFbFpHZk51djlUUXBlcDBHallLK2p2cThx?=
 =?utf-8?B?K3pFa0Rxbmt5Nk9tOHVGb3lPT2M1RmNQdExxbVE2M2NZVjVuZy9nVGVxZER2?=
 =?utf-8?B?aE1jNTZRQU10KzIzbklTRHhrbENhSStFcmlZdGJjUnhweENqN1lzTXYwUTYv?=
 =?utf-8?B?VzRwSnRQTTAwY0YrL0dUaVlWQnNkeFVBUDJhcWpSWUJzamt1bnNqM3RST3Iy?=
 =?utf-8?B?UE1iRXh5NW9LQi9DaDB4eFZzWnQweTZGYXFhNTRhWUJaOWM5dTUyTzQ2WldN?=
 =?utf-8?B?QTk3U0xWYkdsSlZlWFBXTTJxMnhZeUdRa3FHN0hyOTFPZUxvckY1Q0loeldm?=
 =?utf-8?B?VVRYYVMzRlVIdUlPY0tsTXM2L25DbkZ6SmxhajVaYjgwTGNJYi8xQVRJRHFl?=
 =?utf-8?B?R2kvMWZWRDQxQXVXSndyOGN1TkhPem5sbUtvWGVnSDdGa2x4L1huRzE0amZr?=
 =?utf-8?B?d3JDZVVCMnNkNmxUVEN0anJzS2NxY0xId3BFcTNUZFRjUlBhR3l3UjFxWEdW?=
 =?utf-8?B?QVFQOTIway96dWxiWnU4VEhNWEZ0c3hUKy9vT2NWeklYa3lBcStaY0daZ3pt?=
 =?utf-8?B?aCsrVDNKVnd4Z2poZlRNenRCRzIyeCtzZzUwbjhKR2h6QVEvRWQwamh3U0NO?=
 =?utf-8?B?UnR5d2JTSVBSTnltT3puUEZzM3dDL21Ubjc4anFpeFlLc1Babmdpa1BpUEp5?=
 =?utf-8?B?TGIwNnpsRThMd0locFo2ZmpEUnVNajdOVEh0ZlBveS8zL0dUL3NRWmsxaW9R?=
 =?utf-8?B?ZFd4aisyZnpES2N1VkFpaFZnMHZBZ3NubmFXYVIrcEVUSWY2aFp0elVqR0RS?=
 =?utf-8?B?Ym85N05zRHp0YnV1OE5VdTNWT3FQSFJnZ3dUazdyNXhTKzRtV0hHcnFzLzUy?=
 =?utf-8?B?bllzNDBNK0xmZ1FMbkN4aHFvcGtjdTQwaUk1SmlYMjRzbVVXbTVsWU1pOWRp?=
 =?utf-8?B?UkdGNDBFTVNmUU9ETkhFK2E3MkJMc2FjT0JTRElWK2N3RktqQndTbDNQWVAx?=
 =?utf-8?B?eGZBTDVna3V2NDVwYzFRSHBPWmtXNnNKU016MHJqZ3Y0N0VCQ0Q1ekFKMHJZ?=
 =?utf-8?B?bjQyRkdqcXM2YXFrcmpiT2h6NE1ZT0J5TXh0d3Jwdm4xUXpsQmtad2VRTDZP?=
 =?utf-8?B?RHlZQVUvY3lTZk9YUmNrdmxpbW15d2JueTFaTWZzdEI3U1VVYlVPQ2cwNjF0?=
 =?utf-8?B?bFlqSmwxajRpNCtOMHlFYkJLL0VVTm1VMS9MYms0Z002bU9jbXNiRWVLWDd5?=
 =?utf-8?B?cXlKeWlja0FjdmtYUXpBR3VrSjB3Mk5YbGx1REpqUFNuQVY4UVc1ZWhVc1NK?=
 =?utf-8?Q?rUQk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Y3VuOSsrTlpyeGIxTXBRckl4K0R2SDdZRHJQQ3QrUElDckRUVE83OEdnTWJJ?=
 =?utf-8?B?bHNEVC8vcXVOSkpiNEwwL2ZBL1BXTzNlK1JpRUROU2tNN2Y3di9IbkpUcm1p?=
 =?utf-8?B?RTRDT2FUZEg5MHlkL3NqcWdMaFBQRHJZUGw2VGdqTml2ZzNiKzQ3RS9QK0g2?=
 =?utf-8?B?Q2ZNZ0d6N3RjdHhpRldmSjJZNVN0Y0htalJhL0lJd2RyeUYxNWRoVENmZXNh?=
 =?utf-8?B?b1k1RlFOd3MvcVBGcksyT21Uc1BvUERPekJrZW1MT0hRNkdyenNOcVp3cGlM?=
 =?utf-8?B?YjNXNzJiN1h1eEVnZTJPNCtPd2RLVW9qTDVBdnE5Z1RlenVyWklZVG1LampR?=
 =?utf-8?B?UkQ1dGJVMEZRVFdZd01CaSsrYXd3QklWdS91U043Q0tVL1Vtb0N0d0dWZlVP?=
 =?utf-8?B?MGx1UldpN0hIMkV2aG5QZGJOTE1LM2NaN0dNWXRObkN4TUMzK1FsdFArUURm?=
 =?utf-8?B?WmlHYlZ0ZjJpcjVXeUJjWEJIMEVVTEVEdkpsY0xMRmkrUC9SM3k2SEdyWHBv?=
 =?utf-8?B?VFZadlVZTGg1MDJBaEx0QzhrMGFoZ0VPWTJGcVZOWWMvWXdlR1RRYkpZaHJM?=
 =?utf-8?B?M3JZK1ZpSDlTY2o4MUdpYUFaYmdneEFUSkJ3Skx6RDZ6TUR3NXh0RUJVTStH?=
 =?utf-8?B?QVMzOUs2VEJkc2M3WXArdFJKUEpYZjFZSXh1TXBTcXNvRTA4ZkRKc0NibS9T?=
 =?utf-8?B?YUZqT3IzTnVNUnN6MTErcVh1aWJUeHMwWmpCY2I4OE1GLzJRc1NzWmcxd0hI?=
 =?utf-8?B?dVk1TEZQUU8rdnpUZkRSR1l5QVpzUldtVnFZdGZ6eGlDLzBDU0NuTU1raER4?=
 =?utf-8?B?OU9jM3VHRkpwalJ3QTBNYWF5ZFA4eWdSRm02ME5WOWZzRS9uQlpyK0RJNWJ5?=
 =?utf-8?B?d0k4NWRGYW1rcWE5Q2I0UHh0S0QwMjR4ZWhac0FyYVVQUVVabVhhMjJhS3ZV?=
 =?utf-8?B?V3VRVFNaVnFraVNwYnd3ek5TQ1U2TDFzT0t0dVdoSmFIY2Y1MFVMYkNMakUw?=
 =?utf-8?B?ZlFDeXpFRThRR1lLL0F5Yi8zRmNmV2M3WExMTDM5dFFHdmx3OXFwc1YvK0VC?=
 =?utf-8?B?c2FucWlqT1gxMEc4RXlpWGc4OVg5QUtBVHlKbkE4K1YwOTViT2dydUMveERX?=
 =?utf-8?B?cXhwOTRvUjc4OFpja2sycTVzOThwZmJGMGVmNjFhcUpPdjAzVFJmdFo3MXc0?=
 =?utf-8?B?a01hNEVlbjZrcEMySHlCMzhFV3Q4YmtkOXZEazZsVlNYRVBKR2xhakFVdHly?=
 =?utf-8?B?NkxKVjhRM1ZtOUc0OUxsbGRFSFdoTExjSmdid1YvN2I4ZWREeUk5VE56d2Vq?=
 =?utf-8?B?dkFsMVAvS2d0Z3VXdlNib2Q5aFpCNzc5UzM3VnFOeVdNQ250K2x4TEJXTnpr?=
 =?utf-8?B?WnRYemhjZy90ZXdPOFlocTZZbDdVSHlMOWFOd3Q2eGZoTE1JT0RoVHZpUjJW?=
 =?utf-8?B?TDV3U3dlUGVnQ0V1RWEwZnN3NkJmblVuUEJVVnpWQzNvbFVkUmw1eXo1NUxo?=
 =?utf-8?B?eTFZbTIxb3c2VUhWUWNjYnJuMGNxcERFalZJSkhFaWJhSmxyVU5YYVFNS09s?=
 =?utf-8?B?YW1YSWg5S2ZOb3d2QW5Yd2RBWCtRVENtMXN4OGNtUzZJRDBNQmFySFJDVDFV?=
 =?utf-8?B?UERsQmFLUGdKVk1CcHBSd0QrSjNnNTlWUXJ0VWwwcVRPaXJOenk3V1VNZGNF?=
 =?utf-8?B?R3E5eHJsMkxzQ0dHbUEzQTNqMXorMDcya3MzKzZnbVEvM3lRc3BtMHJaRklK?=
 =?utf-8?B?dFk4Z3hYNmhBZlhZMUJVT3JRQms2UlJCakJnRmV5clMrTFVUbmE5TVkyTC9h?=
 =?utf-8?B?azRYRDFvZ2RabDZwMk5adGtUdHVqcUM5YXFpbXcvUzN1a2JPV1VGNmJHMGk4?=
 =?utf-8?B?d3ROZ0xBZituNlFUdy9oY0pYaHplRXgraVFRSEJRTVE0QlBvZmFYZXFxWVFO?=
 =?utf-8?B?OVJZc1V6SXh1bHdNbHdidFpiWVBxN2lsYVdPUXI4cjF3ZUNQSnRudlVQR3Nq?=
 =?utf-8?B?MHRXazZlaU9KMzBIUjVNdkU5Y2F6S2VUR2ZaV3Z2ZzNCWkpSNktaTTBjQWRZ?=
 =?utf-8?B?SWY1MzZzUXg3RXgzYWsyVkdjNkZkTHhJQ0c1VU1ld0VUK2pyVVU1ekRWSVd4?=
 =?utf-8?B?M1VrZ0lpTktQUEl5MVZpMkNwTENzajN0Y0xQS2VNc0MrRmtGWmxiVGo1Tzcx?=
 =?utf-8?B?QnVwQXV3QzFxN3haRmpxS3VxN2doNUlSenB4TjA0dVZOZDBjaUFwZnJMRkNH?=
 =?utf-8?B?b0g1UlVUdTVkKzJoaWhmck0yeUdHYlhhSnFrcllDTFRZRDBlanZ5ODN2d2Z3?=
 =?utf-8?B?R1BVRVlpK0RwZHFmcnFsbGU2bUUrRWtTUkRLUEJJVHpLTi8wTDhXdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 74e50864-a194-46c8-e62a-08de6fd4bc45
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2026 16:34:21.6455
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 5i9Mc1MFhcpQX3YYB3jkfkNugx0GSDSH5+9Ho5IOeM7tSqzSbygwEwFaJQTJBJW3vPVPR/lzHgIRMK1HV+tlTe1aBQrnSEBIt+lC410o2ck=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5273

On 19/02/2026 4:26 pm, Jan Beulich wrote:
> On 18.02.2026 15:48, Abdelkareem Abdelsaamad wrote:
>> --- a/xen/arch/x86/hvm/svm/intr.c
>> +++ b/xen/arch/x86/hvm/svm/intr.c
>> @@ -33,6 +33,14 @@ static void svm_inject_nmi(struct vcpu *v)
>>      u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
>>      intinfo_t event;
>>  
>> +    if ( vmcb->_vintr.fields.vnmi_enable )
>> +    {
>> +        if ( !vmcb->_vintr.fields.vnmi_pending )
>> +            vmcb->_vintr.fields.vnmi_pending = 1;
> Why the (inner) conditional?
>
> Also, as I think Teddy had already indicated before, might we better not use
> the _vintr field directly, but rather use the vmcb_[gs]et_vintr() wrappers?

vNMI is not covered by the TPR cleanbit, and needs to avoid that
setter.  This register is a complete mess, given how it's grown over the
generations.

Leave it opencoded for now, and I'll see about cleaning things up when
getting properly into the nested virt work.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 17:06:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 17:06:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236613.1539273 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt7TF-0005xu-1g; Thu, 19 Feb 2026 17:05:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236613.1539273; Thu, 19 Feb 2026 17:05: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 1vt7TE-0005xn-V4; Thu, 19 Feb 2026 17:05:44 +0000
Received: by outflank-mailman (input) for mailman id 1236613;
 Thu, 19 Feb 2026 17:05: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=erNG=AX=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vt7TD-0005xh-Gf
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 17:05:43 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 37ad82d8-0db5-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 18:05:41 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA2PR03MB5785.namprd03.prod.outlook.com (2603:10b6:806:119::24)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.13; Thu, 19 Feb
 2026 17:05:37 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Thu, 19 Feb 2026
 17: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: 37ad82d8-0db5-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=McprM9qJ8KkcqEJzoFc4bFU4r0HMR/6Xi5zg4DhfznzBn7c/ffC4uejlUEhgYcU7ea2wSBv3c87518+S4B8Fo5yWib6GvlZ1A0aO9QrZowkWM+K31mdqMT01LlCJko2pQXkZjt2Gk3QNvAbCohRep/8U1Np+7k4vXQsDIE5v1BgVe19KL36LCTL+UxsI+yWFKSDqYhRZ6hwi415qqYqsWc4LBdiCAXvyIkTU5RsE+/gFh0pX216rjcLY4E3omJ9vk5O75d+SmM7cjYNdVTmW5Dfofn1jEiJLc0ohoCRWOTYDqhwYIxjt03Qtxm9y0k9gvk4ZT+WA1IzCQgQsfWNPmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oSgHdUcv0+HF384iyma8R33+dhHWTJ8vI8YpkUR2HZE=;
 b=KT3+r2rjO9/FphbM4LOc2mWL0I8IkMPIvlyOoddrlXODD7BAU8jfuE6VU82bmMSqxmXyxi5ustIlDBY2VSLfj0k4UJNPq25Wi5qx87gd/hhMDxFhWSBKABHaQ5dS5XzdGzUlB2RRsLWwx5cK6HMBUev3r6QVe94F2h6de56wEzJlPqPWPbF4wtiUddZAU4LOWIqL/CaPqDOYnPSZTkSxqLAAAr+rnWVlNw7BcLykBje45YxRdhh6WeyUWZHMFGwlEuCIiwm+M6gqDfQW1Psf+JOpts8eS+h9kD8Yr/Jl6AbraWeUya4bxLgmgptLUT1MWCSPw+cxCxpnTYUaAml8QQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=oSgHdUcv0+HF384iyma8R33+dhHWTJ8vI8YpkUR2HZE=;
 b=oTy1YWPROuH8GEwCyxpQen+ZQt3js5tmX9Mjk5YIP2NIdHLKAvpE6DjHsIZYKCoqlK4P9nANyGoa/CraZ8B9HchJ6RmYLRngU5vHlOMdeZCCohlA8OzFGJjqWEHedtD7vUMSd/+NvNNGFk+eDro+hn2I7Y8bV5ghjSWFdVYdbvE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9487868c-f7fb-4362-9c1b-507b2fc90dbb@citrix.com>
Date: Thu, 19 Feb 2026 17:05:34 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/bitops: adjust partial first word handling in
 __find_next{,_zero}_bit()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <b2aa7f0b-147b-439f-8e25-2f7a5a2f75a8@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <b2aa7f0b-147b-439f-8e25-2f7a5a2f75a8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P123CA0080.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:138::13) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA2PR03MB5785:EE_
X-MS-Office365-Filtering-Correlation-Id: 0cb6937e-46c3-472c-c148-08de6fd91a1d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bUVsbFJxcmFZa3hacGlyNGVOZ2tLckRJUzBwbUhPWmUwMFEvWlJDSG1XSEty?=
 =?utf-8?B?YU5oR3hML0JJaGtqR1M1NTQvVko3L0tLZk5KYlp5KzNFZm52WUZpK2ZsUXh5?=
 =?utf-8?B?NnJlZVptVGRrR3gyS1hDMlJvZ3Zpd09EcTdMb2VrNUlWZjJ0aENhZGcxU2hH?=
 =?utf-8?B?KzRCUkYrNDhYV2NJNGJabUhQMFd3amp0bVhIMGpqSU5oTnN4R2lZRklJcWQ1?=
 =?utf-8?B?Tk5ndzlWR1NOdmtpT3ZnbFZha0ZXWjVJQ2REcmZLZGxvVmNmK015NXRYbzRZ?=
 =?utf-8?B?VndYbElIbzlDZURJMVNGMitwejByNUgxOWptenZzc1dOZm5ZckxOOFBFTmts?=
 =?utf-8?B?R05qVnFwdmpqQjNTcHFZNzRYZGs4N2ViZzVJM1lmVU5RTU4xQU9HTTRydlpJ?=
 =?utf-8?B?Rms5K3gvWXI3SVZnODZGRzl3QWQ1NEF6RjZvVysvd09SWlNoTUFwNitPYXZB?=
 =?utf-8?B?ZHBiZ2dETFE0SitDaDJsV09NWDlzRElISjhpNGRSdjFubEh1a2lkdnZiNHZs?=
 =?utf-8?B?TjQ2K3pVRVhsTWNNWFUzSWV3Z2RIa1A2Q2VCMlRNRUZOQ3FQNXNHRHVmUlZI?=
 =?utf-8?B?ZmxNalZ5RkVoWHJMQ282WjBZWVYyUzFLdXhpZkhPblRNdlViTEk2bE1UZEJm?=
 =?utf-8?B?Y0xuMEZSWlNORDRhMGZJMS9jaFlLV2ZsK2hxMEtQMzRkdzdTNW5JSnhlYlc4?=
 =?utf-8?B?NnR1dEphby9ZakdQSGNWWGNBM2wwQTNvNHdNUnl0c3o1VmdnWHgvVVBMYUdj?=
 =?utf-8?B?WE5jRE5zOWxmLzZhZ0l5amVpbzRzQVlqQy9sVWdNVnJja2lTSDVLNzRISGdo?=
 =?utf-8?B?cm5welErR2t3ZEUrelVObG56SGlHM0RpSGNuRUZtL1F2d0lNWGVsRE9abmR3?=
 =?utf-8?B?RHA3WWYxaEdpOEZPeisvQXFKbEtxM1Y2K1JBdWNPTXNkMW9LTVJ2MEdDRkZL?=
 =?utf-8?B?NTJKVDVObDdBNmlLRjBKY3BoMmIrVlhpUEVGOS9qb005RUR5QWwzOGhudkFZ?=
 =?utf-8?B?R1VXeTF5V2MxanlxdDZxdysxT2cxc2xWcTBjZ2NlcDVjWmtYRGx0MUN4TE01?=
 =?utf-8?B?bVlxTXUyd2pkTjN3eVlvRk56V3QyNFJobmVqMVRVZ09BMEhsZE5iVkNXa3ls?=
 =?utf-8?B?NCt1aFh6WHRieHlBK3p5clhIb1AvdmlxNCtZVHFsaGluR0ZiMi9JeFREeUNJ?=
 =?utf-8?B?YTUwNENkUE5leTlHUEpKcVlEN2lSSXl2MXFRS3Yrc0laZ2VvS2JVeUVIcWhU?=
 =?utf-8?B?YlZ0amdmU1lPUTdUdVYzTXU5Z1MvTlF0VXdzNWtKbkdqcFh3WWJ1Q285eklq?=
 =?utf-8?B?TDFpMzlSZlBtNk9yNk5LMEZaL3BjNlpBNkVSRW9Sd0FkMURseWlsKzZubWw2?=
 =?utf-8?B?ZkZGYTJQeTlaaFRaek0zNnlZeVlnTXo1dVp0QkRPNzBjRFRuKzJuckFWK3ZN?=
 =?utf-8?B?TFJBa1RjTXJ6NlhULy9WcWRuWGhQVkVLMHlxN3lUMXRaQzhtc3VDdTNEdDVx?=
 =?utf-8?B?SURlT0lKNUVadnBaMUd4WXR3alFqblNsMEhuUVRBb1hzQkcvWERDajdUeW1s?=
 =?utf-8?B?eEI1bGt3Y29wTmwyREVOakRMSUs5THd3ckJjTnAxNlgzdHJlOTN0aytJbXNV?=
 =?utf-8?B?MTJaWXh0bXV6WjFvNVpXcTc4T2RqQ0dKbmQ1TDk0Nm9LN0hNRTRKRm01SjFj?=
 =?utf-8?B?cDJFczF2Vmk1YnhhU2pOaTJoclZMakJncW54dWFvWEFQbkN4YUNDR3VtOHlq?=
 =?utf-8?B?dTdWOXhtcXBvdnNEZ0RsUGlpYTM4Q1FtUkk0SmM5SVlkNHp6MTMvYXZ6dVp3?=
 =?utf-8?B?R1BqKys0REgyaDgzUGdOSXdrTHlXLzcxc080NkN4ZzNYb2p6M3dLek1yemtL?=
 =?utf-8?B?ZjBSR2wvSUF6dUhiUVBOMVNBdjFjeDNvMWdqWTVRcUk3T25IcnQ4Z0JFeGRO?=
 =?utf-8?B?YUZoamFrb0hpOElQYU4wa1NFbzBYZkllWlVTZkUxMGtIbGtpSTQ1MzFiSFB5?=
 =?utf-8?B?dXFqaU9RK1dkdXJCaGxncHVKV3ZFV1poYlN2czlNVVVGK05CNmNEMzRKRitz?=
 =?utf-8?B?THFsUzRVR1VmeEhKYUV2UGN3QTdxNFVMaHVNYzdnNmRlZk9MNGFqTmhzSXFk?=
 =?utf-8?Q?nKfU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N2doM1Y5bFUyWWZDQldHUFZiZTY5d1phZnNLcnZlR3NMa1cvc1FRaXNuMkdo?=
 =?utf-8?B?QXptNC9zVE8xUWVXUjRHTTVzcHkxWHgrQmpDd2RqS1FnWHpvSnNMWlR6aTdE?=
 =?utf-8?B?UzluVmN3aGdsY1RjZXNaV2hxdUcxaGZZL0FjL0JaZG54d0RZTjV6YXpZVzk5?=
 =?utf-8?B?SEhDaXZVNk0rVHdrVUN4czlCSUtQb2g2Z2d3TmUxRmNwTXE3eUdzbmVHaEdW?=
 =?utf-8?B?UlByOUg2RkVPcmNaVGxZYjNWekJpa29TZzlWN1V3UjJZREVNUENhSndjYTAz?=
 =?utf-8?B?aWFUK0VLUXM5bU4yZFdMaWoxY0hzZmZyK3l5aStRUFkvWEllVW9BUXdjbzRt?=
 =?utf-8?B?OW42M2RESVRjUHhSejBGSzFibjZGL1V1MVliektCeDVEczRSZFU2RXhKeG13?=
 =?utf-8?B?NE1jUVFQWEZuR0krRlV3T3kyaGFvUjJlVlFKUERVQ29qai9HU3RuSjhJam9N?=
 =?utf-8?B?TXl1L010SFFRcEdjS3RxZFp2bFliY1RabkNyS1hJdHgzRkJPTk9lK3hrVUtX?=
 =?utf-8?B?UkNqMEdUN2gzRjlTckJSWjNFQ0dWb1NDdTRvaFpZT3dENnQvSzhjWE5zbmhS?=
 =?utf-8?B?Z0pKS0ZWRllKM0JmbUx4bWIwYnJYUlhZbVdpbUZUcEE2QTFlNy9NVDBqRjhy?=
 =?utf-8?B?QjZsb0lCVjFKek5OK0JjOER1MHNxQ3F4Q1NXNUV1c2NuRVFNZUVXdGZPUHBZ?=
 =?utf-8?B?VkdPdGl2T3hwZW5naGEraTNrMm16V05JVnZxNk5WR2hnL2lWam5Db3lJTTV2?=
 =?utf-8?B?blJ6a3ByLzAzbmxHVUF3SzJIZWVCN1N5eXFrQ2FidGt6M0s1ZW9YWDJ3dWhY?=
 =?utf-8?B?bGw3UjJjODNMTDQrckJ3V25jeTlEOU8vUkFYREwyNGJEYlZGZTVJMXp5cTdk?=
 =?utf-8?B?ZVJldTlrTTNtVEM3TkpUZ1ZvN3g4K09EVVhlbzQ5UjVWNXhycURFaEJYZERY?=
 =?utf-8?B?OGJ1QWxDY3grZi96SDRVNWpYSm91Rk1kcEl6cDVrdjc4bjAzN3pzT0FKdGxm?=
 =?utf-8?B?N2ZONDVrUHZQdXJra3IxN0M5QXowanIxb2JuanBCNkk2RHA3ZHpNaXEzSlk4?=
 =?utf-8?B?T2Fraks5a1UvTkdUemlOVEJJcFBpNmhWYVRtUmZ4M05KRlV6UzdUdVY3aTNr?=
 =?utf-8?B?bWNZaldRbnhKbVk1eFZ0RE9jdnFPcVNQUGo1Z2JVWkxNNGFMcFRYUzkwd2lS?=
 =?utf-8?B?RjZqRFFUZHdyc2FIL1BPOFNFbm41R2tCL0pvL1dBWEwvVXlqOWpCRzc0ZUhG?=
 =?utf-8?B?UFMyM0hOZTlwaGc0UWVLRldGMDk1KzNkaWYwdWUvUzFBRENGMnJwRmUrTW1r?=
 =?utf-8?B?dGxSTjNxYnFnQjBFRlZLcFlmK1FsZkVYT084MHVpb2ljekRXY1RlVTJuY1Zi?=
 =?utf-8?B?U2VkUlJPTnI0MkNTbFRYaURra3VqVWpxdWR0R3dPcTRTVDEzWUVKOFZQdWpy?=
 =?utf-8?B?WWJRejBXZkVsVkNDcENhL2dTK3pmZHhUaWFCV0k0NVJjdXdBTm8yVEg2QjBB?=
 =?utf-8?B?MFpKb2ZGM2NOWHlrTW00Zk1nNXJMb0xnMmNVY1V6dktFOWxHUkRoN1pWd0VB?=
 =?utf-8?B?YTZmbVVvTW1CUFNLRXd5V1lEcDNwOS93Rm1ydDJlYTZmRmNmclBkb21jSjN2?=
 =?utf-8?B?R3BBNlN1RG9JK05xS201U0NZalFvV2RsZ2ZPeStYdVlwTUVsYlFEaEJxZHp2?=
 =?utf-8?B?bTZrNnRBVHJLUDdzTHE5cjJmK1RDZnpFYk54L050SmlhN29LOFcyKzRaenJY?=
 =?utf-8?B?d2FJZlNTZHJZdVNRZFdIelVlY3d1SSt6MS85ZGF3RjR2clFVKytYckQyZW5H?=
 =?utf-8?B?Szk2YVZBdVVWNFFGSDk1S01FNmNEWlZYbUpmWlY3NmtsQktFa0pHbkFuOXQ4?=
 =?utf-8?B?M1R3OUdDTW1DL0hoeWlGRk53VDRqOVhXWXFhYWMxaWF4RVpOcFFienp6SDJk?=
 =?utf-8?B?WmhyZi9IVS9xeG44Q21VZG5wU3ViL1FQN3hDM3JxZXhSOGdXK3gvMlZQVTRy?=
 =?utf-8?B?VUlYOXpkQjI5QXNLdmJxU3pvUjBGM01Za0dCanFadEEyZGNka3VoSlVNQWxY?=
 =?utf-8?B?K1FYS3Uwa3EvZ3ljRU0zVjdFMDl3RDFySUZBOWVtSC9NajU4dmZ6QXQwN1M1?=
 =?utf-8?B?UmRMK2FpY1V3NW9FN21pWDVFRlhTSFY0cFFzeVQ1WUV3bW53TzQ5TFJKSXlD?=
 =?utf-8?B?QkoxRzJQejg4MmMyNFdsaTlsUzVLZW81M0hGNFE0V1lXSTBZNFI3VWhmdXhQ?=
 =?utf-8?B?VWlCYTRkMHYyd3BtdHlWcVU0WFFxZjdiS1VRTlRLS0FuaXNYbU1FcTJhSnVn?=
 =?utf-8?B?QVJEc3ZpNTVuQWRxQllQbFBDaGh5aEw0eDJ3WWR3UXozL1JUS1ZGUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0cb6937e-46c3-472c-c148-08de6fd91a1d
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2026 17:05:37.1299
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: z1S8g/6YbdXsYkzJ8f/33LTRwpdAEONwJXOfilCQaNvXbboqsNc2q5XFCyual5HKWjWUkZ3b3mdTHP2SL9+RvMdceJEk/rEE1ehYvmZt4KQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR03MB5785

On 19/02/2026 3:42 pm, Jan Beulich wrote:
> There's no need to subtract "bit" in what is passed to __scanbit(), as the
> other bits are zero anyway after the shift (in __find_next_bit()) or can
> be made so (in __find_next_zero_bit()) by flipping negation and shift. (We
> actually leverage the same facts in find_next{,_zero}_bit() as well.) This
> way in __scanbit() the TZCNT alternative can be engaged.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

I agree that we're already doing that in find_next{,_zero}_bit() and
therefore ought to be safe here.

What's really confusing about all of this is that __scanbit() differs
from ffs() by wanting a return value in the range [1, 64).  With that in
mind, I think we can do exactly the same as we do in arch_ffs(), but
preloading with BITS_PER_LONG rather than -1.  That in turn removes the
alternative and simplifies things further.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Feb 19 18:50:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 18:50:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236668.1539283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vt96D-0002kU-9C; Thu, 19 Feb 2026 18:50:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236668.1539283; Thu, 19 Feb 2026 18: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 1vt96D-0002kL-54; Thu, 19 Feb 2026 18:50:05 +0000
Received: by outflank-mailman (input) for mailman id 1236668;
 Thu, 19 Feb 2026 18:50: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=l/wp=AX=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vt96C-0002U1-2I
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 18:50:04 +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 cb1211ad-0dc3-11f1-b164-2bf370ae4941;
 Thu, 19 Feb 2026 19:50:01 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771526981000758.3994514741934;
 Thu, 19 Feb 2026 10:49:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb1211ad-0dc3-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1771526985; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=T28865CASPrTt1LdptX8bwjVHOjUx7GzRf5bewXEHreiFb+3s1H/wzCUoBlCHWj8kDW2IAdI3Fmvt5FaUCgeXGK1mHN1xmTlLT2l0f5RECh1G84QMDydr9GtuzHJf7bkvk0MMi5xflJXQcGFhNOIw2xl5BRVzsxwwLY/jW/wgvA=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771526985; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; 
	bh=VHY/T0wopJAWiL3NdiLTaFQP/Ul375gxAfFHesT4wrQ=; 
	b=Qtv06B1ruySR2PJPiKFWiMlIp3InRHij5dDrolhr01ZiOebWPbHQUw5zqsdAmgQzf4K96/kSJLpZ90kNt6IyQqx41CAxnAEAZUYkB/XAK5w7glFrnFqlfFw0X74afKnSfweOYw8dIK9IPch9VzZJ4VJBRQ8tIArEF0rEOHVVFzc=
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=1771526985;
	s=zoho; d=apertussolutions.com; i=dpsmith@apertussolutions.com;
	h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-Id:Message-Id:MIME-Version:Content-Transfer-Encoding:Reply-To;
	bh=VHY/T0wopJAWiL3NdiLTaFQP/Ul375gxAfFHesT4wrQ=;
	b=d8GMGpI9Y5a8t5/02gSNmGgq+1yfCmepExlAPW5oYFogmgpguLef9Ayh5mCdsi7q
	SDOHHUrXa8nxOQa/l6ggieI1p0hPx4lGkR2b6BSRo3npX8oXtrRDY9O5J9jL3yDL6yW
	1myykh9hD3e3lGbyQxD9F36aQINf2BzR07YwcRHo=
From: "Daniel P. Smith" <dpsmith@apertussolutions.com>
To: xen-devel@lists.xenproject.org
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Stefano Stabellini <sstabellini@kernel.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] xsm: move the console read properly under xsm
Date: Thu, 19 Feb 2026 13:45:03 -0500
Message-Id: <20260219184503.21918-1-dpsmith@apertussolutions.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

The access control for domU to read the console should be controlled via XSM.
By moving it under XSM, FLASK will now be able to work correctly with the domU
console read capability that was introduced recently.

To enable console read under XSM, the legacy is_console field in struct domain
was collapsed with the new input_allowed field in struct domain_console. Having
two fields over console was redundant. By merging them together under the
permissions field in struct domain_console, this allows better alignment with
the existing fine grained access controls under FLASK.

Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
---
 xen/arch/arm/vpl011.c                   |  2 +-
 xen/arch/x86/pv/shim.c                  |  2 +-
 xen/common/device-tree/dom0less-build.c |  2 +-
 xen/common/domain.c                     |  1 -
 xen/drivers/char/console.c              |  4 ++--
 xen/include/xen/sched.h                 |  8 ++++----
 xen/include/xsm/dummy.h                 | 17 ++++++++++++-----
 7 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
index d0d17c76b72c..1461c27afed0 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->permissions = DOMAIN_CONSOLE_READ;
         vpl011->backend_in_domain = false;
 
         vpl011->backend.xen = xzalloc(struct vpl011_xen_backend);
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index bd29c53a2d34..03990dfc0e01 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->permissions = DOMAIN_CONSOLE_READ;
 }
 
 static void write_start_info(struct domain *d)
diff --git a/xen/common/device-tree/dom0less-build.c b/xen/common/device-tree/dom0less-build.c
index 840d14419da2..d144720fe195 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -871,7 +871,7 @@ void __init create_domUs(void)
                   dt_node_name(node), rc);
 #endif /* CONFIG_HAS_LLC_COLORING */
 
-        ki.bd.d->is_console = true;
+        ki.bd.d->console->permissions = DOMAIN_CONSOLE_WRITE;
         dt_device_set_used_by(node, ki.bd.d->domain_id);
 
         rc = construct_domU(&ki, node);
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 2e46207d2db0..331c048e2f72 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -999,7 +999,6 @@ struct domain *domain_create(domid_t domid,
         goto fail;
 
     spin_lock_init(&d->console->lock);
-    d->console->input_allowed = is_hardware_domain(d);
 
     /*
      * This assertion helps static analysis tools infer that config cannot be
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index bcd6d261491b..909e0fdb8c08 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -554,7 +554,7 @@ struct domain *console_get_domain(void)
     if ( !d )
         return NULL;
 
-    if ( d->console->input_allowed )
+    if ( !xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
         return d;
 
     rcu_unlock_domain(d);
@@ -595,7 +595,7 @@ static void console_switch_input(void)
         d = rcu_lock_domain_by_id(domid);
         if ( d )
         {
-            if ( !d->console->input_allowed )
+            if ( xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
             {
                 rcu_unlock_domain(d);
                 continue;
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 40a35fc15c65..3713664aaea5 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -377,8 +377,10 @@ struct evtchn_port_ops;
 
 /* Domain console settings. */
 struct domain_console {
-    /* Permission to take ownership of the physical console input. */
-    bool input_allowed;
+    /* XSM: permission to use HYPERCALL_console_io hypercall */
+#define DOMAIN_CONSOLE_READ  (1u << 0)
+#define DOMAIN_CONSOLE_WRITE (1u << 1)
+    unsigned int permissions;
 
     /* hvm_print_line() and guest_console_write() logging. */
     unsigned int idx;
@@ -528,8 +530,6 @@ struct domain
     bool             auto_node_affinity;
     /* Is this guest fully privileged (aka dom0)? */
     bool             is_privileged;
-    /* XSM: permission to use HYPERCALL_console_io hypercall */
-    bool             is_console;
     /* Is this guest being debugged by dom0? */
     bool             debugger_attached;
     /*
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index b8fd7aeedd9e..129823b8d37b 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -269,12 +269,19 @@ static XSM_INLINE int cf_check xsm_console_io(
     XSM_DEFAULT_ARG struct domain *d, int cmd)
 {
     XSM_ASSERT_ACTION(XSM_OTHER);
-    if ( d->is_console )
-        return xsm_default_action(XSM_HOOK, d, NULL);
-#ifdef CONFIG_VERBOSE_DEBUG
-    if ( cmd == CONSOLEIO_write )
-        return xsm_default_action(XSM_HOOK, d, NULL);
+    switch ( cmd )
+    {
+    case CONSOLEIO_read:
+        if ( d->console->permissions & DOMAIN_CONSOLE_READ )
+            return xsm_default_action(XSM_HOOK, d, NULL);
+        break;
+    case CONSOLEIO_write:
+#ifndef CONFIG_VERBOSE_DEBUG
+        if ( d->console->permissions & DOMAIN_CONSOLE_WRITE )
 #endif
+		return xsm_default_action(XSM_HOOK, d, NULL);
+        break;
+    }
     return xsm_default_action(XSM_PRIV, d, NULL);
 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 19 22:22:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 19 Feb 2026 22:22:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236735.1539293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtCPi-0003cg-Oo; Thu, 19 Feb 2026 22:22:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236735.1539293; Thu, 19 Feb 2026 22: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 1vtCPi-0003cZ-LE; Thu, 19 Feb 2026 22:22:26 +0000
Received: by outflank-mailman (input) for mailman id 1236735;
 Thu, 19 Feb 2026 22: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=V8+Z=AX=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vtCPh-0003c4-6U
 for xen-devel@lists.xenproject.org; Thu, 19 Feb 2026 22:22:25 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 750486c3-0de1-11f1-9ccf-f158ae23cfc8;
 Thu, 19 Feb 2026 23:22:21 +0100 (CET)
Received: from BY3PR05CA0003.namprd05.prod.outlook.com (2603:10b6:a03:254::8)
 by IA1PR12MB6019.namprd12.prod.outlook.com (2603:10b6:208:3d5::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.15; Thu, 19 Feb
 2026 22:22:16 +0000
Received: from CO1PEPF000066EC.namprd05.prod.outlook.com
 (2603:10b6:a03:254:cafe::7b) by BY3PR05CA0003.outlook.office365.com
 (2603:10b6:a03:254::8) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.16 via Frontend Transport; Thu,
 19 Feb 2026 22:22:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF000066EC.mail.protection.outlook.com (10.167.249.8) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Thu, 19 Feb 2026 22:22:16 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 19 Feb
 2026 16:22:03 -0600
Received: from [172.17.121.74] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Thu, 19 Feb 2026 16:22:02 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 750486c3-0de1-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=gowNUnQaxDmpeM4Zos+mrzJMW3yNc18BtwMY/1xBISpxgXlIQ6QnI8gGT/wNl5wZhojkNgS/imCC9b0iZMBfbW7jXt1ssMrmYM25gOaHAO0smX5LP5/fdFt8TfP4Kt3Wr18zKbv4eec4rKagt/YCz+tBQZbaYNvPV6BLLNqQAfG4kMAHzq0fuxpiuzaNCMxIeUQf3mwY7P0Um9cLoOKxMof0dYUXglt4n0wGzAWO2pEE2hLb4bYIxwAZXCKJSZZ1oIVuJMd1j9zcLFmcBwtD8NvXoRFRhAYpdDbJ2vkxv/+maPfVDmKDnhx6KtY1Ciu074tqKU4ykSr/3ZWp0tLn3A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ojjnlfHIOkVjavQa9jwEY++80EHK6ug+8MZT/dYIeMs=;
 b=zGfrjq74uS4AF1ubKUW5UrmADFg6sQuIte/QGIki1qyQaqSzlt+zhBQm3S2rBLAI74Biz1yVArfmkdIiqQdjKvcq0h5dYp+eqb2sDyBMtbdTcHEPYF/Nwd5h8jxU+3ZSAXIdNODWn9fNK9+fBAS+CII5+2I/ZiDfVvfsZmPHJG7B7kWfde3o7EROe0HYfmcN2SHC93o660mPAUmYsJJXnYMTJGPHHj/wDiRVpO0678NhBdjRY0NbTiWVWCWQQLTLTbNDcNAlAH+9uXV7tRIPbz7Zv4C1R6/aMLEHfSkUYGSOzv1O8yJ0EqQBcqb8lSEkw1ekN30FWe3iztokSQbPnA==
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=ojjnlfHIOkVjavQa9jwEY++80EHK6ug+8MZT/dYIeMs=;
 b=rZtxWMsxOwu1tHmtAgcaEwxxthDx5xni955U3m5Fe/SgZW722p/vprmijPLPQ6SRMLtbeYu5RzPoFSuIAm/9FmOkuxVlyVOEF+APvFl/OPT5ek8MxYV/I+q0A7x6r78bs5QRD02Qt6SEFhB9xfCzrp9ClySAWUuLS9kxU2VER7o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <d0be8579-fca3-4b55-9c7b-37368231a41a@amd.com>
Date: Thu, 19 Feb 2026 17:21:57 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF000066EC:EE_|IA1PR12MB6019:EE_
X-MS-Office365-Filtering-Correlation-Id: 0fd0124d-be7c-4313-01ab-08de70055689
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:
	=?utf-8?B?UFkwNzcveUEybXVWOTFvNmpGL0tzNmJoRDdMTWhpYVhMYk5scWJ5Z3VIbjA5?=
 =?utf-8?B?NjcyTTRzYzBzSkJmRGpnTlBzc3l5cDl4ZDJ4VGRtL2VrTm9GRGtkV20rNkVs?=
 =?utf-8?B?N0hxbDJhZm44alZJK1pKMTc3WTF6QjR3TkpxTHY4eVZjMU40ek44NkxrNTR3?=
 =?utf-8?B?cGZBZnU5WjRFV1BnWDhkMFhrOHU2UnV2OXpZbUVJWDlmVjlicjV4MHlpRlVB?=
 =?utf-8?B?bXIvcllPTkVJVUlWV3NMTmVGcGRyblZQQ0g0YkFkTitCVlVqWmM1TnJPQ1lB?=
 =?utf-8?B?a2lzRURVOEd0SjRWbktSZVVQRkhyNWRscmt0UktUVE8rNWdhMDQzcTl2dFlG?=
 =?utf-8?B?NDM5a0t4ZTB1ZVl2UzJRQW4ySzNZNHdXbVpvS1g3d2tLd1c0eUJrRVFnc2Vo?=
 =?utf-8?B?a1Qrbk16QndRbUpCcDRqLzlZQllwbUc0cGo4aFN2NjBVUlUrOWFDWTRncFc5?=
 =?utf-8?B?dFlHSU5Xa3Z1UGFJUzY5eTBFT005OSsrSHJnbE5UaUMxMVlTRmtLNGpVR3hP?=
 =?utf-8?B?ZCtkRnJLcHI5S1BvSzR1T0x0TWR6UDJMNTNKZWF5QmFRdWF6QVEwTk9BRFM1?=
 =?utf-8?B?S1pmY3R2ZkRTMjd4M0F6NmpKVVlIVXhtc013eHZ2em5NcHdHTzBUMmdOUVY4?=
 =?utf-8?B?NExwS2REQmVuK0JIVkk5bExzRWc2TkR5M1BOeG5MOXd6a3dKZHdlRFFpOVdl?=
 =?utf-8?B?YjdSZ1N1eFVLd04vbGNSd1k1UHYxbVYwM1pUQmRyRmd0eDFKZUlrL3phMFZv?=
 =?utf-8?B?QUYrYzZrT21qUFdPcHcvSVpzMnRLWGVPQmNWRlBDY2hSaHQzN3pJUzBXZzg4?=
 =?utf-8?B?STNPazRCeUFOVGEycUUyUk4xNmZORDA3WDBuWTRwUWhhcm90QkZpT0p3STNl?=
 =?utf-8?B?S0RSbS9rYW1Rcnl1ZThBeVpLV2JNSnNuMjhTWTVPSGg3V3dTK3pzaUU4cjdk?=
 =?utf-8?B?YkRpZkR6a0VrcnVJZWpvZnZrSzBuZmhqL0VubUpkSnVyN09scGJtQmQzTnBM?=
 =?utf-8?B?a21mWEZEV3FMbXd3enVrRHUrcG40enlNeFlGL2JDRDNZNkhsam9lTE53UVFp?=
 =?utf-8?B?VWZrMlA1T3k0U1RIOEdIbkFaZHRFL01ZR2dTU2ZMdERHK01QTTNDWFA1L1Vp?=
 =?utf-8?B?MkhsL1FPbmFUem9yUngrdTVlU1hQRzErTFRNRWoxVlF6SVhjVU1FcDNqSE9q?=
 =?utf-8?B?bXEyRVdQbkY3am1ZQWRuSk4xV0o4dmdRNUpaSXBGbjZ0UHZjM3k1U0V4UjJt?=
 =?utf-8?B?QkRYSUIwQ1B3cWVNWEhtZmhmSDZwZkJ6cmhZS3JwQ3pxU0x6cFM1T0oyNlho?=
 =?utf-8?B?UVh4YlpIZmxQR2l4emtpdHp6NmdzVGpnWXdGMHFrNFhuQ25rTnAvUGFuTmtq?=
 =?utf-8?B?VzR3dkJzSkFVSFdPVjg4bGdqVzVoN01CQnFjWTRFMnh6Q3VkOXN6K1VmdXl2?=
 =?utf-8?B?YUlDTldzd1c5YjlVM2lZUmJZNFdZU3VCRkVwYUhVUkI3Y0duTWVPdC9TMm5M?=
 =?utf-8?B?MzduZ0h4Q3BOcTUrZjVZb2hnSHg4VkI0YkJUSlpWVkl6OUdEdGNKTzdBWUhD?=
 =?utf-8?B?NVRJTC9xU0JTYndiV0pSNTJnLy9XTUtUcFp0eU1WdnVXazVPTnUvZ0Rtc2tH?=
 =?utf-8?B?K1pwejFiWUY4bkdxK1U1VmtZZExFdDdKZUNzN0JNbC85ckFxM3dQUTl1QkdG?=
 =?utf-8?B?SEdGalRPL29HVjZZcHdJVXMxZ1hPeVZ3SFRKazVUU3lBcVZiVlBCOVJCMzVH?=
 =?utf-8?B?Q2R5MDlrc25CQVlTOVA4VE80c2d4UUhVSUdzcnowdG8wVFk1V0xqcXpLcnlx?=
 =?utf-8?B?bDhhYnJPNXhNdVQrYjRPcHR5QVRhTVFremxBNDV0YW1wL2c4bjlTZTYrOVNt?=
 =?utf-8?B?eTNOakhZa0YxYm5ZcXZQZTdYTzlLZ09GYVZ5dE9PN0dLRXBOT2trOWJLZjNx?=
 =?utf-8?B?S01jb0VlOU9TaVFzaGJMNGNyUXphSlIyUVhPZHRrNXRZOHpLelZzMVRiNElP?=
 =?utf-8?B?ZjlsZENqQmlMM0xDV1EwRjZocUpBU1k1QjlFY2hMc3hzWUlFUzBDMnlMS2tw?=
 =?utf-8?B?TUZyejQ0OFlrM2xZZklpb051RVlnNklweWg5Qk55MkdrWkZqM25tdDJhejBB?=
 =?utf-8?B?ZUQvUUE1b1V5ODNSUHZXVFBhT281eUlSTUxQS3FWdDRrVng3OUVEWVBLaC8y?=
 =?utf-8?B?dHdsdjBOY2E3U092cHpjUWZZWUZtem5LZDc3UnlTZ3I4SW81d21hemVob0hu?=
 =?utf-8?B?dStlQXZ3RjlUdExoOG4rVzdneUVRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	ulMnqkfpiXjFVvNEhNqI+D6Ix9zNJvM2/gvAoqyaBLhFUVQ0oDuHHSXrdLXsNgs6zT9u5g0nPtnwKpPPnln40LWrQJps9TP7gXvAOiaq2XztRSGFr7k8OrBlXEb246+wVvzJJzS1YwpLLd/CQnies5PKfGUXFbc5V4KBW7T0QqC9ezWZtq4ML0RbJoBvgKrcvr8kFWoog3n/Kv+AXBskcmIsJd0cwsJjG0TdZWAy76pBSPNia30wzh2YeKseDLjswH9/VTVmqqgYioHA9D23FeY6nHxknAVSiGkme7NpWteolcd9X6nq0sH00G+9wO0s0oAEnBqJA0xAcpmOG3CMNQXnTQcL6SuKv0bJF8FFe7DH9isH+yDxpnZju94DIHqOsTkN7XRoPMXWnP+jGFR9agy68+vHxPIummBD4Hjj58UWFDMSYPqcTtytDfOMq4em
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2026 22:22:16.0808
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0fd0124d-be7c-4313-01ab-08de70055689
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF000066EC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6019

On 2/10/26 05:55, Jan Beulich wrote:
> --- a/xen/drivers/vpci/cap.c
> +++ b/xen/drivers/vpci/cap.c
> @@ -376,6 +379,20 @@ void vpci_cleanup_capabilities(struct pc
>      }
>  }
>  
> +int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
> +{
> +    if ( !pdev->vpci )
> +        return 0;
> +
> +    vpci_cleanup_capabilities(pdev, true);
In the case where pdev->ext_cfg transitions from true to false, it doesn't look
like this would actually result in the respective capability->cleanup() hook
being called, due to reliance on pci_find_ext_capability().


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 00:44:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 00:44:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236771.1539302 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtEce-0004pH-Qg; Fri, 20 Feb 2026 00:43:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236771.1539302; Fri, 20 Feb 2026 00:43:56 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtEce-0004pA-Np; Fri, 20 Feb 2026 00:43:56 +0000
Received: by outflank-mailman (input) for mailman id 1236771;
 Fri, 20 Feb 2026 00:43: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=8OLq=AY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vtEce-0004p4-1f
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 00:43:56 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3a9c3b86-0df5-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 01:43:53 +0100 (CET)
Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 2974D14000A4;
 Thu, 19 Feb 2026 19:43:52 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-10.internal (MEProxy); Thu, 19 Feb 2026 19:43:52 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 19 Feb 2026 19:43:50 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a9c3b86-0df5-11f1-b164-2bf370ae4941
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=1771548232; x=1771634632; bh=hKubb8dOWuRmnUzSNPpGPvNmcUjoXCor
	aP1dW3dZk0k=; b=PhPJmpqWdGXWw/XmDL5uzUT7/7ulhjaf15ogYHYWuqm7HQVe
	hqdpx0CNaG5H5Oiv8Qs7JIFerWf9nnoj8+s8c85g6M2yAfcFVu2V7HQdsk8cTI2s
	OHXJLJGVQoRC8jAG6EH0ojG02hdTSBZiaUWxthXomlbS+vL/5c/hiC8fzTmQhL29
	kgEtclVd38nkAATe7FCX+r/w6GHIiaaQ1YGfIhZLhREyWC6Z+14cwGZPt4K8NDzW
	JBiDx3O5MBMlpMH+yiy9trxRkZ770gzOIwi2/4WrRQIO6CG+zcFxQJMrd4mjG5Sq
	es/BG+O/axmWZtpO1F+jZHqPphKnlP7yvQikQg==
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=1771548232; x=1771634632; bh=hKubb8dOWuRmnUzSNPpGPvNmcUjo
	XCoraP1dW3dZk0k=; b=U4FfCmFIOXHlemHrHV4SGCJfM56oLzR3UO+7VSyTNW11
	Ic0F48FB2r3W6tIgolKSPGowZBqovQjow5+5vwkQYFB6xVZ1wvmA/C4xweifc8T/
	fXHMZHGdL7OlsCC5grcucdJGy3gc3c5H3fNaM4iUgy9L9K2jnLzMTdLN2P3PAMsR
	UKuWFaDmcyWyBvJPEq2LirJcCzrKOUoasYvjWyc9h8+7FLYIVNLBmZ4pliM77aj7
	ZaDVIdr0dwjTR9D/pY+DGFLEGGL4rQomOC9CXUBmopXKnmIiTkqdi5lBuj3vjpXg
	HY2pJGKhv4ztNY44p+msZIJjYLYrRgeEmy5BRFMz1Q==
X-ME-Sender: <xms:R66XadLjf-C3mzEwvfQQVfg_W-rOHnM2-iAwq-T57XQYaDLVYSNgaw>
    <xme:R66XaQmkjFCBs57kYSTDCe_f_sJJUer0_X7yYZlxbWkljyMyQLZOIxXv6919muXt-
    pMalchOxBoLboSduIgfFnJ8FZDYp9hOC2IguJvBkNmY5wKihA>
X-ME-Received: <xmr:R66XaTH2C-L6mcu2P5PzXXY0wGggkGs1RoifnTXunPV8JGXuX97vf1CQ8cYe89ww3dab-YESXTYCKf3k0Wb-EeofqiIAuiLqWy8uMvSEVlY>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvvdejtdduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelkefhudel
    teelleelteetveeffeetffekteetjeehlefggeekleeghefhtdehvdenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeefpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheprghnthhhohhnhidrphgv
    rhgrrhgusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:R66XaYFcPlp2osPVETYh7A2wsoOSxia8rTV4VmaevthwmFr2oNQSrQ>
    <xmx:R66XaYPE9gLSIUJ4nRuc0QFltRvDyi-9xJVtakzC0ie1d9HwyC5skQ>
    <xmx:R66XafHe9MTJZpxRxh9wzENtt1H-o9DqOk_Z9djLDPPZBdh3rXXTqQ>
    <xmx:R66XaXN8js4h5RWRwrHcR-gJxgO-DZhrXfbTBPY1Vh9LqBNu-gzNIQ>
    <xmx:SK6XacJNuYLi8nh72JqrABLp1kb4JIKs0bJbtrsIrXuO0BOKjNuJUtWF>
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>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2] tools: specify C standard explicitly
Date: Fri, 20 Feb 2026 01:43:21 +0100
Message-ID: <20260220004344.1980775-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.51.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Archlinux just updated gcc to 15.2.1+r604+g0b99615a8aef-1, and that
defaults now to GNU23 standard. This isn't what Xen codebase expects, for
example libxl fails to build with:

    libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
    libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      447 |         endptr = strchr(str, '=');
          |                ^
    libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      452 |         endptr = strchr(str, ',');
          |                ^
    libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      454 |             endptr = strchr(str, 0);
          |                    ^
    libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
    libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      447 |         endptr = strchr(str, '=');
          |                ^
    libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      452 |         endptr = strchr(str, ',');
          |                ^
    libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      454 |             endptr = strchr(str, 0);
          |                    ^
    cc1: all warnings being treated as errors

Specify GNU99 explicitly (same version as in the hypervisor, but the
GNU dialect), to fix the build, and avoid such surprises in the future.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
As discussed in v1, I'm changing the standard version for now. Note GCC
14 used to default to -std=gnu17, so that should work too, but keep it
consistent with the hypervisor.
The v1 that adjusted libxl can be used anyway, but it's less
backport-friendly.

Changes in v2:
- revert to old standard (specify it explicitly now), instead of
  adjusting the code to the new standard - this way is more
  backport-friendly
---
 tools/Rules.mk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tools/Rules.mk b/tools/Rules.mk
index d9b9c740e964..de9100eb1681 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -38,6 +38,8 @@ ifeq ($(debug_symbols),y)
 CFLAGS += -g3
 endif
 
+CFLAGS += -std=gnu99
+
 ifneq ($(nosharedlibs),y)
 INSTALL_SHLIB = $(INSTALL_PROG)
 SYMLINK_SHLIB = ln -sf
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 00:56:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 00:56:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236780.1539313 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtEov-0006aQ-SM; Fri, 20 Feb 2026 00:56:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236780.1539313; Fri, 20 Feb 2026 00:56: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 1vtEov-0006aJ-P1; Fri, 20 Feb 2026 00:56:37 +0000
Received: by outflank-mailman (input) for mailman id 1236780;
 Fri, 20 Feb 2026 00:56: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=8OLq=AY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vtEou-0006aD-BF
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 00:56:36 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff66890d-0df6-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 01:56:33 +0100 (CET)
Received: from phl-compute-07.internal (phl-compute-07.internal [10.202.2.47])
 by mailfhigh.phl.internal (Postfix) with ESMTP id B48EB1400154;
 Thu, 19 Feb 2026 19:56:31 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-07.internal (MEProxy); Thu, 19 Feb 2026 19:56:31 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 19 Feb 2026 19:56:30 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff66890d-0df6-11f1-9ccf-f158ae23cfc8
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=1771548991;
	 x=1771635391; bh=fZTit6niMgDMxbtxRaNJsSAbZZ1nbdomFbWqJMDncMc=; b=
	ByI/T7xKYL3Q9Ih/XJb5X2eUjp527IjQKI5O8m4Ao7PFXn2VF66mQ8Y3c1GWeicH
	2AoZ6BLou04rVe6T6G/xwx4/gjuqh+CkYE90IVFFyf5OoaNhgpNvyD9p+ghiILsr
	63qLd3woayS6s8tj6grVrpf/KZWsKwuB7lcY7LLXorQT9l+Xih2fGA0gPv5ozn9i
	9R8P5lvTL4TinCZHjllyXGg6m4P88l7AMb1dWAlfREBg7ZcZGvm6hMqlytxfa2pU
	f8EuRiPL5SGmc6bHEgmFvpxlu7J0q4P4TrixaxyPKYowXZu+nSpvosxm5gBret3E
	vPeQ3bi1LYhhj6NKn/QbxQ==
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=
	1771548991; x=1771635391; bh=fZTit6niMgDMxbtxRaNJsSAbZZ1nbdomFbW
	qJMDncMc=; b=qF+SFEogtHRsixd84S8q7kzYPieX8skhYO9BJhni0J4TW6/Yk+4
	mMM74SzQJe+Y1MntTst5v9Q+A7GxbpxNE2CdYWq86gDVndpBepFArYVFZOqWJJSc
	ag2yJDkeS+zNtwMQF4np0SWAAujaDXRPjSKq9orEXurpZU097wfoxIWKMNS8O38f
	RkPA1CIQxSHAb9SXNRdLDQO0iGo8TUPjZkHks3TstkbIVJlZ5lohuckC1z5mj3rH
	s5iJt86A6jbnps1cnJeJPe8pEDEZ+2OxhNh6Fu5QjiAhR4+OnnwlnnzWE3uGJ4jo
	7E8pu5PjgDQS/A1ML+2DIIM5MZnm/XU0YCA==
X-ME-Sender: <xms:P7GXabsR3eB9qi0bYdxB2XCH2bP-Fe6ot37Y4oCtWEMuOAj0uwjOcg>
    <xme:P7GXaScuBrde4BLpCbVTGqM4NKG_DEaXMz8avi9sKFySam8dJCvkhLR-VksIO3hgM
    phJqHl-ReOLNXPX7TMUQ_Saz5um50lvoa2srgqOiQ5ZnKWX>
X-ME-Received: <xmr:P7GXacamVQ2jaK-Qa1IidzkiDQW0CYaCcUjKQOy6yzfgTLXy2RQ_OSg-uzqZyw8Ww-_SdM4BwMmOI8HX6mOvlB-Gh2R8hgqU8i0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvvdejtdefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepvddpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdr
    gigvnhhprhhojhgvtghtrdhorhhgpdhrtghpthhtoheprghnthhhohhnhidrphgvrhgrrh
    gusehvrghtvghsrdhtvggthh
X-ME-Proxy: <xmx:P7GXaVUvsDu-noytOscMEidbZKOrRTREh6ti3oMEDnKlUsBjJNJXuw>
    <xmx:P7GXaegCrfbWRZkjkx7wAr-lIDNRAqXXnkMU2yNRJmgj4sksYCM1vQ>
    <xmx:P7GXaTWYvvNUIoEANNN_EwA6Y2zcHqrktJNfcgRsOPEDekhZgWVLxw>
    <xmx:P7GXaVMfVyd37UZu9wbP7ljQ3iKYe5ZKu4SnjoFRe4BxltmjquuF3A>
    <xmx:P7GXaT81t9rSrhta_cbk9uv8wJAAIzYvHdg-YL3rdgk8xUO5ebZaXt8l>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 20 Feb 2026 01:56:28 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v2] tools: specify C standard explicitly
Message-ID: <aZexPYiQ5UF6t5uz@mail-itl>
References: <20260220004344.1980775-1-marmarek@invisiblethingslab.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="2JULg39Ab87p/qQs"
Content-Disposition: inline
In-Reply-To: <20260220004344.1980775-1-marmarek@invisiblethingslab.com>


--2JULg39Ab87p/qQs
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 20 Feb 2026 01:56:28 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: xen-devel@lists.xenproject.org
Cc: Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH v2] tools: specify C standard explicitly

On Fri, Feb 20, 2026 at 01:43:21AM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> Archlinux just updated gcc to 15.2.1+r604+g0b99615a8aef-1, and that
> defaults now to GNU23 standard. This isn't what Xen codebase expects, for
> example libxl fails to build with:
>=20
>     libxl_cpuid.c: In function =E2=80=98libxl_cpuid_parse_config_xend=E2=
=80=99:
>     libxl_cpuid.c:447:16: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       447 |         endptr =3D strchr(str, '=3D');
>           |                ^
>     libxl_cpuid.c:452:16: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       452 |         endptr =3D strchr(str, ',');
>           |                ^
>     libxl_cpuid.c:454:20: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       454 |             endptr =3D strchr(str, 0);
>           |                    ^
>     libxl_cpuid.c: In function =E2=80=98libxl_cpuid_parse_config_xend=E2=
=80=99:
>     libxl_cpuid.c:447:16: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       447 |         endptr =3D strchr(str, '=3D');
>           |                ^
>     libxl_cpuid.c:452:16: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       452 |         endptr =3D strchr(str, ',');
>           |                ^
>     libxl_cpuid.c:454:20: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       454 |             endptr =3D strchr(str, 0);
>           |                    ^
>     cc1: all warnings being treated as errors
>=20
> Specify GNU99 explicitly (same version as in the hypervisor, but the
> GNU dialect), to fix the build, and avoid such surprises in the future.
>=20
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>

Hm, I should have tested it more precisely. This actually does not solve
the issue, it still fails to build on Arch. I did confirmed the
-std=3Dgnu99 ended up in the relevant GCC call for libxl_cpuid.c.

So, I guess iterate on v1?

> ---
> As discussed in v1, I'm changing the standard version for now. Note GCC
> 14 used to default to -std=3Dgnu17, so that should work too, but keep it
> consistent with the hypervisor.
> The v1 that adjusted libxl can be used anyway, but it's less
> backport-friendly.
>=20
> Changes in v2:
> - revert to old standard (specify it explicitly now), instead of
>   adjusting the code to the new standard - this way is more
>   backport-friendly
> ---
>  tools/Rules.mk | 2 ++
>  1 file changed, 2 insertions(+)
>=20
> diff --git a/tools/Rules.mk b/tools/Rules.mk
> index d9b9c740e964..de9100eb1681 100644
> --- a/tools/Rules.mk
> +++ b/tools/Rules.mk
> @@ -38,6 +38,8 @@ ifeq ($(debug_symbols),y)
>  CFLAGS +=3D -g3
>  endif
> =20
> +CFLAGS +=3D -std=3Dgnu99
> +
>  ifneq ($(nosharedlibs),y)
>  INSTALL_SHLIB =3D $(INSTALL_PROG)
>  SYMLINK_SHLIB =3D ln -sf
> --=20
> 2.51.0
>=20

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

--2JULg39Ab87p/qQs
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmXsT0ACgkQ24/THMrX
1yxyUQgAmJb42F7Ybn6YYZxAOWhtqAhRo8ImCxo8eecg2X5LMVyaR/MplriasJdy
MhQl31MJ/soBVkqFqiPb0NHYOpFdOf3pivS+ZuxN/pO4FCVruLYICbHGA+5WSJ3n
3yDHyGpAqr89vdDsmKroxmXpnNmMwHG3Pr1nhAiORvVr1VleqTl/6kmsGtkTUxtf
HMX/qgYdUFMdV4LmPG4EyH02vsgZQU+7m5UsbCjaBGmbm3lrnRkI98btW3f8RK+0
Cj14pf9Fw226ILSTSrCJYuFKdAh0jHUaA/vfuUKyk/IfuK2vf3GW8sj3alI1RAOt
SVc3/DcMYMcnNFPXU4G7f1GdL48mZQ==
=IixQ
-----END PGP SIGNATURE-----

--2JULg39Ab87p/qQs--


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 06:17:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 06:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236815.1539323 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtJor-0004At-R1; Fri, 20 Feb 2026 06:16:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236815.1539323; Fri, 20 Feb 2026 06:16:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtJor-0004Ak-M8; Fri, 20 Feb 2026 06:16:53 +0000
Received: by outflank-mailman (input) for mailman id 1236815;
 Fri, 20 Feb 2026 04: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=Neyl=AY=kernel.org=patchwork-bot+linux-riscv@srs-se1.protection.inumbo.net>)
 id 1vtHqm-0006EH-QB
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 04:10:44 +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 1f3f3719-0e12-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 05:10:42 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 5787661881;
 Fri, 20 Feb 2026 04:10:41 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1D73AC19421;
 Fri, 20 Feb 2026 04:10:41 +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
 BA0853809A88; Fri, 20 Feb 2026 04:10: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: 1f3f3719-0e12-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771560641;
	bh=fHDGQg8Y8I31uG+H3itYMHO1lNQuNdbaHv3s+w2VA9E=;
	h=Subject:From:Date:References:In-Reply-To:To:Cc:From;
	b=oMaFyqG2bTps/8USOYgV6sHoWWaZWkyD8fr7yLmY5l7usrVYWzQZzpzEhFrj5oIso
	 JsHHbdcmGWZfgObZBMrrGYnYu32BPlMnnVgwwSDA1ys0qiJ1qOLadxN3JSuLSdLeIV
	 tnZk2pdJNKsAWT931GvGXNP4fol0h+61TmknQ8GSGiCMQCV6UL7UDupsNR66mU84jY
	 Uf0+Fkd9Pj07dGm9AzWla0qfC5/ONLfwGajcUnLXdYT+BVuNcuJZmO6sBygjchoA7g
	 hhSIJI8pnZDmIXMjKC9Jz5/fJyymINQf46MMxuBF/t5nZ792GREhqQxlQeEORgXYm7
	 E3Z2SpOIzWr4w==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: Re: [PATCH v5 00/21] paravirt: cleanup and reorg
From: patchwork-bot+linux-riscv@kernel.org
Message-Id: 
 <177156064929.189817.13253801870624912064.git-patchwork-notify@kernel.org>
Date: Fri, 20 Feb 2026 04:10:49 +0000
References: <20260105110520.21356-1-jgross@suse.com>
In-Reply-To: <20260105110520.21356-1-jgross@suse.com>
To: =?utf-8?b?SsO8cmdlbiBHcm/DnyA8amdyb3NzQHN1c2UuY29tPg==?=@aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
 x86@kernel.org, linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 kvm@vger.kernel.org, luto@kernel.org, tglx@linutronix.de, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, kys@microsoft.com,
 haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 longli@microsoft.com, peterz@infradead.org, will@kernel.org,
 boqun.feng@gmail.com, longman@redhat.com, jikos@kernel.org,
 jpoimboe@kernel.org, pawan.kumar.gupta@linux.intel.com,
 boris.ostrovsky@oracle.com, xen-devel@lists.xenproject.org,
 ajay.kaher@broadcom.com, alexey.makhalov@broadcom.com,
 bcm-kernel-feedback-list@broadcom.com, linux@armlinux.org.uk,
 catalin.marinas@arm.com, chenhuacai@kernel.org, kernel@xen0n.name,
 maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com,
 chleroy@kernel.org, pjw@kernel.org, palmer@dabbelt.com,
 aou@eecs.berkeley.edu, alex@ghiti.fr, juri.lelli@redhat.com,
 vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org,
 bsegall@google.com, mgorman@suse.de, vschneid@redhat.com,
 linux-arm-kernel@lists.infradead.org, pbonzini@redhat.com,
 vkuznets@redhat.com, sstabellini@kernel.org, oleksandr_tyshchenko@epam.com,
 daniel.lezcano@linaro.org, oleg@redhat.com

Hello:

This series was applied to riscv/linux.git (fixes)
by Borislav Petkov (AMD) <bp@alien8.de>:

On Mon,  5 Jan 2026 12:04:59 +0100 you wrote:
> Some cleanups and reorg of paravirt code and headers:
> 
> - The first 2 patches should be not controversial at all, as they
>   remove just some no longer needed #include and struct forward
>   declarations.
> 
> - The 3rd patch is removing CONFIG_PARAVIRT_DEBUG, which IMO has
>   no real value, as it just changes a crash to a BUG() (the stack
>   trace will basically be the same). As the maintainer of the main
>   paravirt user (Xen) I have never seen this crash/BUG() to happen.
> 
> [...]

Here is the summary with links:
  - [v5,05/21] paravirt: Remove asm/paravirt_api_clock.h
    https://git.kernel.org/riscv/c/68b10fd40d49
  - [v5,06/21] sched: Move clock related paravirt code to kernel/sched
    https://git.kernel.org/riscv/c/e6b2aa6d4004
  - [v5,10/21] riscv/paravirt: Use common code for paravirt_steal_clock()
    https://git.kernel.org/riscv/c/ee9ffcf99f07

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html




From xen-devel-bounces@lists.xenproject.org Fri Feb 20 06:17:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 06:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236817.1539327 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtJos-0004CI-0k; Fri, 20 Feb 2026 06:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236817.1539327; Fri, 20 Feb 2026 06:16:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtJor-0004BC-SC; Fri, 20 Feb 2026 06:16:53 +0000
Received: by outflank-mailman (input) for mailman id 1236817;
 Fri, 20 Feb 2026 04:10: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=Neyl=AY=kernel.org=patchwork-bot+linux-riscv@srs-se1.protection.inumbo.net>)
 id 1vtHqp-0006EH-Go
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 04:10: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 21ac40c9-0e12-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 05:10:46 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D31A36185F;
 Fri, 20 Feb 2026 04:10:45 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 983BCC2BC86;
 Fri, 20 Feb 2026 04:10:45 +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
 3FD8A3809A88; Fri, 20 Feb 2026 04:10: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: 21ac40c9-0e12-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771560645;
	bh=Db/wdfVcXsniMHB7ine8YIWTDXSl11tG9gQ8k5IjjLI=;
	h=Subject:From:Date:References:In-Reply-To:To:Cc:From;
	b=kr71DRurREHYrZUr3Iu8kBF3sP8Kd84HBgPzOFQul6k/zdt4cn+xGkSwn0Z2bqTfV
	 tf5GWnU3xbuMF1mRY2zfCfhwSJ3szrnd4MwQID7TlG/ObeeVfWOZaUAUN9KDzPtFXq
	 uy1Y74jNH9hfglIFadwb8ipRoBqsN6Uzgj+8SQxzFAonkiWY1FDYL7wgISg0RrCqCf
	 Ea0jKMmyz8PSk9M1AEvK0cx4T9JGn1EjDLxRkWlV1jl+wC4Rkuzikre+XGx59kvCUa
	 0nl4J1xMm2mAntv2sFs93qKoael3Itii9ExFq0zMW3WuUeG439WsT4vH4KO58AiK6B
	 bv8XfesBgFH7g==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: Re: [PATCH v2 00/21] paravirt: cleanup and reorg
From: patchwork-bot+linux-riscv@kernel.org
Message-Id: 
 <177156065379.189817.4828097381020781784.git-patchwork-notify@kernel.org>
Date: Fri, 20 Feb 2026 04:10:53 +0000
References: <20250917145220.31064-1-jgross@suse.com>
In-Reply-To: <20250917145220.31064-1-jgross@suse.com>
To: =?utf-8?b?SsO8cmdlbiBHcm/DnyA8amdyb3NzQHN1c2UuY29tPg==?=@aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
 x86@kernel.org, linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 kvm@vger.kernel.org, luto@kernel.org, tglx@linutronix.de, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, kys@microsoft.com,
 haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 peterz@infradead.org, will@kernel.org, boqun.feng@gmail.com,
 longman@redhat.com, jikos@kernel.org, jpoimboe@kernel.org,
 pawan.kumar.gupta@linux.intel.com, boris.ostrovsky@oracle.com,
 xen-devel@lists.xenproject.org, ajay.kaher@broadcom.com,
 alexey.makhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 linux@armlinux.org.uk, catalin.marinas@arm.com, chenhuacai@kernel.org,
 kernel@xen0n.name, maddy@linux.ibm.com, mpe@ellerman.id.au,
 npiggin@gmail.com, christophe.leroy@csgroup.eu, paul.walmsley@sifive.com,
 palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr,
 juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
 rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
 vschneid@redhat.com, linux-arm-kernel@lists.infradead.org,
 pbonzini@redhat.com, vkuznets@redhat.com, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, daniel.lezcano@linaro.org, oleg@redhat.com

Hello:

This series was applied to riscv/linux.git (fixes)
by Borislav Petkov (AMD) <bp@alien8.de>:

On Wed, 17 Sep 2025 16:51:59 +0200 you wrote:
> Some cleanups and reorg of paravirt code and headers:
> 
> - The first 2 patches should be not controversial at all, as they
>   remove just some no longer needed #include and struct forward
>   declarations.
> 
> - The 3rd patch is removing CONFIG_PARAVIRT_DEBUG, which IMO has
>   no real value, as it just changes a crash to a BUG() (the stack
>   trace will basically be the same). As the maintainer of the main
>   paravirt user (Xen) I have never seen this crash/BUG() to happen.
> 
> [...]

Here is the summary with links:
  - [v2,05/21] paravirt: Remove asm/paravirt_api_clock.h
    https://git.kernel.org/riscv/c/68b10fd40d49
  - [v2,06/21] sched: Move clock related paravirt code to kernel/sched
    (no matching commit)
  - [v2,10/21] riscv/paravirt: Use common code for paravirt_steal_clock()
    https://git.kernel.org/riscv/c/ee9ffcf99f07

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html




From xen-devel-bounces@lists.xenproject.org Fri Feb 20 06:17:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 06:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236822.1539346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtJos-0004VF-Rw; Fri, 20 Feb 2026 06:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236822.1539346; Fri, 20 Feb 2026 06:16: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 1vtJos-0004Sv-LQ; Fri, 20 Feb 2026 06:16:54 +0000
Received: by outflank-mailman (input) for mailman id 1236822;
 Fri, 20 Feb 2026 04:10: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=Neyl=AY=kernel.org=patchwork-bot+linux-riscv@srs-se1.protection.inumbo.net>)
 id 1vtHqs-0006EH-G0
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 04:10:50 +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 23710792-0e12-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 05:10:49 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id CC5606184F;
 Fri, 20 Feb 2026 04:10:48 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 94005C116D0;
 Fri, 20 Feb 2026 04:10:48 +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
 3FD393809A88; Fri, 20 Feb 2026 04:10: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: 23710792-0e12-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771560648;
	bh=PDGCDysOegPLK/FytUAeu19yfLdHed/5Qq2CJVsDdvs=;
	h=Subject:From:Date:References:In-Reply-To:To:Cc:From;
	b=YQ0aOCCbuBRr/Aj8Xu6A2nQTmM3iuzSUGERzFgZbv6JdPxvdz+pC4pQ7N+j3/AeDI
	 ZR1+txPjQ18ja/OqZDa5/Nv4iP8tYkbr0J5tyqjvHLDgH87Rd2ShE1YzmIdowzD/RD
	 CsPYoHLNtIYdNoA3PjI4oImf1wHzn1ACCU1aY4WmuUFHjoSbr1VEqO81cRnWBfE1Fl
	 DtF5oGuWhKxoo/nfAA+KyC/Cal3t7yAW3TFJKawNjmzwjn3ZBgsbHgfplzpD3KNJeR
	 8FbCY63LhQSnD4N4iCdVyw9b+7gQBNb4B3wZrehtaZVPNIMqMLJEjzFqPXwYkXzjTS
	 NlPxhLiM8yB3A==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: Re: [PATCH v4 00/21] paravirt: cleanup and reorg
From: patchwork-bot+linux-riscv@kernel.org
Message-Id: 
 <177156065679.189817.6221298327341838079.git-patchwork-notify@kernel.org>
Date: Fri, 20 Feb 2026 04:10:56 +0000
References: <20251127070844.21919-1-jgross@suse.com>
In-Reply-To: <20251127070844.21919-1-jgross@suse.com>
To: =?utf-8?b?SsO8cmdlbiBHcm/DnyA8amdyb3NzQHN1c2UuY29tPg==?=@aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
 x86@kernel.org, linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 kvm@vger.kernel.org, luto@kernel.org, tglx@linutronix.de, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, kys@microsoft.com,
 haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 peterz@infradead.org, will@kernel.org, boqun.feng@gmail.com,
 longman@redhat.com, jikos@kernel.org, jpoimboe@kernel.org,
 pawan.kumar.gupta@linux.intel.com, boris.ostrovsky@oracle.com,
 xen-devel@lists.xenproject.org, ajay.kaher@broadcom.com,
 alexey.makhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 linux@armlinux.org.uk, catalin.marinas@arm.com, chenhuacai@kernel.org,
 kernel@xen0n.name, maddy@linux.ibm.com, mpe@ellerman.id.au,
 npiggin@gmail.com, christophe.leroy@csgroup.eu, pjw@kernel.org,
 palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr,
 juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
 rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
 vschneid@redhat.com, linux-arm-kernel@lists.infradead.org,
 pbonzini@redhat.com, vkuznets@redhat.com, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, daniel.lezcano@linaro.org, oleg@redhat.com

Hello:

This series was applied to riscv/linux.git (fixes)
by Borislav Petkov (AMD) <bp@alien8.de>:

On Thu, 27 Nov 2025 08:08:23 +0100 you wrote:
> Some cleanups and reorg of paravirt code and headers:
> 
> - The first 2 patches should be not controversial at all, as they
>   remove just some no longer needed #include and struct forward
>   declarations.
> 
> - The 3rd patch is removing CONFIG_PARAVIRT_DEBUG, which IMO has
>   no real value, as it just changes a crash to a BUG() (the stack
>   trace will basically be the same). As the maintainer of the main
>   paravirt user (Xen) I have never seen this crash/BUG() to happen.
> 
> [...]

Here is the summary with links:
  - [v4,05/21] paravirt: Remove asm/paravirt_api_clock.h
    https://git.kernel.org/riscv/c/68b10fd40d49
  - [v4,06/21] sched: Move clock related paravirt code to kernel/sched
    (no matching commit)
  - [v4,10/21] riscv/paravirt: Use common code for paravirt_steal_clock()
    https://git.kernel.org/riscv/c/ee9ffcf99f07

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html




From xen-devel-bounces@lists.xenproject.org Fri Feb 20 06:17:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 06:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236818.1539334 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtJos-0004Gs-BG; Fri, 20 Feb 2026 06:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236818.1539334; Fri, 20 Feb 2026 06:16: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 1vtJos-0004GK-3T; Fri, 20 Feb 2026 06:16:54 +0000
Received: by outflank-mailman (input) for mailman id 1236818;
 Fri, 20 Feb 2026 04: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=Neyl=AY=kernel.org=patchwork-bot+linux-riscv@srs-se1.protection.inumbo.net>)
 id 1vtHqp-0006Eu-SI
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 04:10: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 20c47fc4-0e12-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 05:10:45 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 53AFD6185B;
 Fri, 20 Feb 2026 04:10:44 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B127C19424;
 Fri, 20 Feb 2026 04:10:44 +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
 B9FE13809A88; Fri, 20 Feb 2026 04:10: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: 20c47fc4-0e12-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771560644;
	bh=g09K8+pt8nUze9Hd/5SkOGsluvmQyHLde4mLYIq1BN8=;
	h=Subject:From:Date:References:In-Reply-To:To:Cc:From;
	b=ZfEN0rlHPk8mdiuu5VESUrjU/twd6VLsvz/4HRiuTXOLUA0QGdTKOnAWZijQbEGko
	 JR6DJZ5WjmduRBYlCbFS4CxEfJWD19QQfEQQpy6HFbLPFRtsNfpzlrmaR46thV1I8j
	 UdOoZFKthavVmxK7uqAy28sD9HMEMXCOdjPqDiPDEx3Y3X7Xj44bEXYx6JH+HlQzKv
	 c9UK4fwkutBwaCFIjgaZ8E5+sihv5O9Fp/qjCPWPvTIQXqqT7LYjC1vCZaTEPqeA4q
	 zE5QjdDoR5nj4iQSqf1O55yvD9BqvZaCRV0Q8Zi2oM2S6KoYe0NZrJkPstgPyQYwoQ
	 Yme0l22kE7D7w==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: Re: [PATCH 00/14] paravirt: cleanup and reorg
From: patchwork-bot+linux-riscv@kernel.org
Message-Id: 
 <177156065229.189817.8309653371345159867.git-patchwork-notify@kernel.org>
Date: Fri, 20 Feb 2026 04:10:52 +0000
References: <20250911063433.13783-1-jgross@suse.com>
In-Reply-To: <20250911063433.13783-1-jgross@suse.com>
To: =?utf-8?b?SsO8cmdlbiBHcm/DnyA8amdyb3NzQHN1c2UuY29tPg==?=@aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
 x86@kernel.org, linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 kvm@vger.kernel.org, luto@kernel.org, tglx@linutronix.de, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, kys@microsoft.com,
 haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 peterz@infradead.org, will@kernel.org, boqun.feng@gmail.com,
 longman@redhat.com, jikos@kernel.org, jpoimboe@kernel.org,
 pawan.kumar.gupta@linux.intel.com, boris.ostrovsky@oracle.com,
 xen-devel@lists.xenproject.org, ajay.kaher@broadcom.com,
 alexey.makhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 linux@armlinux.org.uk, catalin.marinas@arm.com, chenhuacai@kernel.org,
 kernel@xen0n.name, maddy@linux.ibm.com, mpe@ellerman.id.au,
 npiggin@gmail.com, christophe.leroy@csgroup.eu, paul.walmsley@sifive.com,
 palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr,
 juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
 rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
 vschneid@redhat.com, linux-arm-kernel@lists.infradead.org,
 pbonzini@redhat.com, vkuznets@redhat.com, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, daniel.lezcano@linaro.org

Hello:

This series was applied to riscv/linux.git (fixes)
by Borislav Petkov (AMD) <bp@alien8.de>:

On Thu, 11 Sep 2025 08:34:19 +0200 you wrote:
> Some cleanups and reorg of paravirt code and headers:
> 
> - The first 2 patches should be not controversial at all, as they
>   remove just some no longer needed #include and struct forward
>   declarations.
> 
> - The 3rd patch is removing CONFIG_PARAVIRT_DEBUG, which IMO has
>   no real value, as it just changes a crash to a BUG() (the stack
>   trace will basically be the same). As the maintainer of the main
>   paravirt user (Xen) I have never seen this crash/BUG() to happen.
> 
> [...]

Here is the summary with links:
  - [05/14] paravirt: remove asm/paravirt_api_clock.h
    https://git.kernel.org/riscv/c/68b10fd40d49
  - [06/14] sched: move clock related paravirt code to kernel/sched
    (no matching commit)
  - [10/14] riscv/paravirt: use common code for paravirt_steal_clock()
    https://git.kernel.org/riscv/c/ee9ffcf99f07

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html




From xen-devel-bounces@lists.xenproject.org Fri Feb 20 06:17:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 06:17:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236821.1539340 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtJos-0004Lz-Hu; Fri, 20 Feb 2026 06:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236821.1539340; Fri, 20 Feb 2026 06:16: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 1vtJos-0004KZ-BH; Fri, 20 Feb 2026 06:16:54 +0000
Received: by outflank-mailman (input) for mailman id 1236821;
 Fri, 20 Feb 2026 04:10: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=Neyl=AY=kernel.org=patchwork-bot+linux-riscv@srs-se1.protection.inumbo.net>)
 id 1vtHqr-0006EH-GJ
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 04:10:49 +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 228f28f9-0e12-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 05:10:48 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 570116187C;
 Fri, 20 Feb 2026 04:10:47 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1B4F7C116D0;
 Fri, 20 Feb 2026 04:10:47 +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
 BA1363809A88; Fri, 20 Feb 2026 04:10: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: 228f28f9-0e12-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771560647;
	bh=DjnngyKQ6dmi0gCTo1xCIRCHL1ludrKw3TKGvuwo0Ug=;
	h=Subject:From:Date:References:In-Reply-To:To:Cc:From;
	b=UDXlT4NaQgzahQOt/dvMDQ39sYRD52/c4qNbvdVS19EyX+doX2VR1jGpM6fKTK5hg
	 rCFmqTKrXa0b5vcg1CKJuJbKtS2lu3bnOvOY1ZcjS8kyszRsQ2ihER7WY0j0/TjBVf
	 ESR58G8Wv5UXiZfVQgBBL/VOfCL/cCWmW3eJdCd7YiiZjvIc5PshOYVmUb7FMpdqCZ
	 VR22LNGw4/8tgtnLSks4YTRJWofn1TLmsJ8G9rz+7byiQ7KQhujWiVq++1aXqr5MNK
	 QsNQ2UwnhyOvc9Xw93nbkQEhuN5Pu9Vx+F7bxbEBDe/gC+mfrfvQgRuyWi/5t61Vpf
	 lawUTNXKdiYlA==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: Re: [PATCH v3 00/21] paravirt: cleanup and reorg
From: patchwork-bot+linux-riscv@kernel.org
Message-Id: 
 <177156065529.189817.17016822219300820690.git-patchwork-notify@kernel.org>
Date: Fri, 20 Feb 2026 04:10:55 +0000
References: <20251006074606.1266-1-jgross@suse.com>
In-Reply-To: <20251006074606.1266-1-jgross@suse.com>
To: =?utf-8?b?SsO8cmdlbiBHcm/DnyA8amdyb3NzQHN1c2UuY29tPg==?=@aws-us-west-2-korg-oddjob-rhel9-1.codeaurora.org
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
 x86@kernel.org, linux-hyperv@vger.kernel.org, virtualization@lists.linux.dev,
 loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
 kvm@vger.kernel.org, luto@kernel.org, tglx@linutronix.de, mingo@redhat.com,
 bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, kys@microsoft.com,
 haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com,
 peterz@infradead.org, will@kernel.org, boqun.feng@gmail.com,
 longman@redhat.com, jikos@kernel.org, jpoimboe@kernel.org,
 pawan.kumar.gupta@linux.intel.com, boris.ostrovsky@oracle.com,
 xen-devel@lists.xenproject.org, ajay.kaher@broadcom.com,
 alexey.makhalov@broadcom.com, bcm-kernel-feedback-list@broadcom.com,
 linux@armlinux.org.uk, catalin.marinas@arm.com, chenhuacai@kernel.org,
 kernel@xen0n.name, maddy@linux.ibm.com, mpe@ellerman.id.au,
 npiggin@gmail.com, christophe.leroy@csgroup.eu, pjw@kernel.org,
 palmer@dabbelt.com, aou@eecs.berkeley.edu, alex@ghiti.fr,
 juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
 rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
 vschneid@redhat.com, linux-arm-kernel@lists.infradead.org,
 pbonzini@redhat.com, vkuznets@redhat.com, sstabellini@kernel.org,
 oleksandr_tyshchenko@epam.com, daniel.lezcano@linaro.org, oleg@redhat.com

Hello:

This series was applied to riscv/linux.git (fixes)
by Borislav Petkov (AMD) <bp@alien8.de>:

On Mon,  6 Oct 2025 09:45:45 +0200 you wrote:
> Some cleanups and reorg of paravirt code and headers:
> 
> - The first 2 patches should be not controversial at all, as they
>   remove just some no longer needed #include and struct forward
>   declarations.
> 
> - The 3rd patch is removing CONFIG_PARAVIRT_DEBUG, which IMO has
>   no real value, as it just changes a crash to a BUG() (the stack
>   trace will basically be the same). As the maintainer of the main
>   paravirt user (Xen) I have never seen this crash/BUG() to happen.
> 
> [...]

Here is the summary with links:
  - [v3,05/21] paravirt: Remove asm/paravirt_api_clock.h
    https://git.kernel.org/riscv/c/68b10fd40d49
  - [v3,06/21] sched: Move clock related paravirt code to kernel/sched
    (no matching commit)
  - [v3,10/21] riscv/paravirt: Use common code for paravirt_steal_clock()
    https://git.kernel.org/riscv/c/ee9ffcf99f07

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html




From xen-devel-bounces@lists.xenproject.org Fri Feb 20 07:14:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 07:14:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236883.1539374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtKiB-0006JK-TW; Fri, 20 Feb 2026 07:14:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236883.1539374; Fri, 20 Feb 2026 07:14:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtKiB-0006JD-PA; Fri, 20 Feb 2026 07:14:03 +0000
Received: by outflank-mailman (input) for mailman id 1236883;
 Fri, 20 Feb 2026 07: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=S1uT=AY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vtKiB-0006J7-4Z
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 07:14:03 +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 bab719b9-0e2b-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 08:14:00 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-437711e9195so1159514f8f.1
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 23:14:00 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a5b07fsm55126664f8f.2.2026.02.19.23.13.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 23:13:59 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bab719b9-0e2b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771571640; x=1772176440; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=HKiM1va7UmERrYVTlfZSGxLgMulxu7Dcg6PNmYiIlIs=;
        b=c+n79s/qvuzwJh2vgpy+Mf6zA/gQhDT5EZJzvdF0jr9LBty3BV5wi48rl+Czj8DQOY
         K9DWFe2P9rH2JnIGd6BjTAq3hDZhOIZhBVvYt+caS46Faq7FDbqR+YY7Rt5ZOjx1lVyp
         2dXdWbLvWedAiI5xvAYgf+3rCNN+Qy/0spgf81b2yk5GyeAeICPDU09lSc2uFhLE8zb7
         zPH+7leS5r8x0I29VK1ZFLFyn/Jmj4oTUj1YkVPuygrjJ350Awti8E3UkJXEhhQOxF3d
         Cnjp3noiBx8SOYn4f6QVk3xCib+QrsV1/o1d4vQku0NpYIMEpvLOhzVwmyPX/g4tWtj+
         2QWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771571640; x=1772176440;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HKiM1va7UmERrYVTlfZSGxLgMulxu7Dcg6PNmYiIlIs=;
        b=IaRLtPmRlI2i9eGby1bcE72VRoAy0zZ4rSCIrZI+3TsA+cmMbWfTKujXP68rWtl107
         Y8mW9H5om4wegxeCxkey0skdLfQvaoBCn0d9lO0Gd08EJf5bi+g2ozHOJK4O3MhHsujF
         KbJA6H8u027vMlwodNJOd8fi8Q+CtPFeJfP9G38rDsoncnAqNbWy+RpvnLS52Y/3ZkRe
         ly7h2f+q9kre2+QikTMwnj2j8RXwyMVmi5AYCU5i6g3JU/XiS2SXPVHkoJRtU87sJgXg
         ZTT4VPNKZP3Lv7LkRX5C7TqTuCkWLbL5AuH+YwpBHaZRkd3s6hzumKEC45Qq/VqCphYW
         0V1g==
X-Forwarded-Encrypted: i=1; AJvYcCUbKDdaDoYyzRD8GzfUakueIM7tXFyentQLp2629DVKwYO+CpdhFCkiSGtZ/NSKsZalwUQTSxR94g8=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy3hPAQP47KoiVzteroNHjzws9cD5r2pQshYmWxdqYDTI242BZd
	VOpB+CzsHDxnKP07A/D7QxDt5CKT4SNcKyMqAlmeBb5Ba2p/VEvTzn6CrcKLodbzeA==
X-Gm-Gg: AZuq6aIWoPB2T1DvuKIWnOYuAI0nUnMC/ibWMKyGqq13o6iFwPcwuxLKacuON7yvg8b
	dEG+c7hpZ9ENncvX3Q+qVAJWdnMsitWTWrmtlIbv4v/U8sBWphtQRGy9SPFBFc11C6+DylhFs4Z
	NH+gcKxdUO+KlaiGYplUQ7OKhQuzS3AoaIUIQMiOSDVEavbXbDr3kr98Ei3ZQ7dOUzkug+s0j2D
	YoxLWjTttiCeXWxpiVzM50Q9LYUpHPy2DY4iCvZhctpkYDN0eOIRrMYKqfsL/axyipoPPDKDTrp
	Bcr7vwKF/JdFuudD8DCLDMXQuWKmpEtNi+TtmlVGOpnvKqEPB9LM37Etnz8TyB8iliddnOh9XKs
	1odyFz1NX0AV3JSviW+M0RxSyr4BVZMNtX+ur4/an4yt10vNmFNV1INxRzsN6UeU5z6keHiAj2y
	ZcVHIRUrzhxd4q0/pw+WlKcfkyRqFRydqEdN6P2/EKmx/GL7t4TN+yTCBrBliTPc6fau5NGkV4F
	8/WatMGPcjaVhc=
X-Received: by 2002:a05:6000:2c05:b0:435:98c6:7f06 with SMTP id ffacd0b85a97d-4396b0384dcmr1169336f8f.6.1771571639822;
        Thu, 19 Feb 2026 23:13:59 -0800 (PST)
Message-ID: <d082d619-8675-4ae4-bd25-f7f99209c615@suse.com>
Date: Fri, 20 Feb 2026 08:13:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
To: Stewart Hildebrand <stewart.hildebrand@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: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
 <d0be8579-fca3-4b55-9c7b-37368231a41a@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: <d0be8579-fca3-4b55-9c7b-37368231a41a@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.02.2026 23:21, Stewart Hildebrand wrote:
> On 2/10/26 05:55, Jan Beulich wrote:
>> --- a/xen/drivers/vpci/cap.c
>> +++ b/xen/drivers/vpci/cap.c
>> @@ -376,6 +379,20 @@ void vpci_cleanup_capabilities(struct pc
>>      }
>>  }
>>  
>> +int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
>> +{
>> +    if ( !pdev->vpci )
>> +        return 0;
>> +
>> +    vpci_cleanup_capabilities(pdev, true);
> In the case where pdev->ext_cfg transitions from true to false, it doesn't look
> like this would actually result in the respective capability->cleanup() hook
> being called, due to reliance on pci_find_ext_capability().

Hmm, indeed. Yet that's a problem with vpci_cleanup_capabilities(), not
with the call here. It may have been merely latent until no later than
b1543cf5751b ("PCI: don't look for ext-caps when there's no extended cfg
space"). The cleanup hooks themselves (it's only one right now) then
also may not access their respective capabilities anymore (nor even just
try to locate them).

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 07:34:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 07:34:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236894.1539382 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtL1g-0000uT-I5; Fri, 20 Feb 2026 07:34:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236894.1539382; Fri, 20 Feb 2026 07: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 1vtL1g-0000uM-FH; Fri, 20 Feb 2026 07:34:12 +0000
Received: by outflank-mailman (input) for mailman id 1236894;
 Fri, 20 Feb 2026 07:34: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=S1uT=AY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vtL1f-0000uG-7d
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 07:34:11 +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 8b776224-0e2e-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 08:34:09 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso14902875e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 19 Feb 2026 23:34:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796ac8209sm55174855f8f.30.2026.02.19.23.34.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 19 Feb 2026 23:34:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8b776224-0e2e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771572849; x=1772177649; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=GuiKQFtMK/o2pzcksVti0z3J+9sGWlzhqjhsY3EK9zE=;
        b=a3f7BtqdQbDlxR6fCb3Foej2YuUABIkzHRMrAaOSa39atJ32cAPvtUl5PnvL1sJ4Fd
         l6oggQtE6MlgjcBS7ysBvVEqjl4CBxROtFYVChr6U5mEI8TrqGM80PVwMLR27AyZDlUG
         C2C3OFNfNSkd/lifmcJwX/0/Ema1bslLqToOHWdLZAmYcjbMG6HENUA64WoP8lpSsGba
         oyn24CtyhCo54EdHIjzUvOtkxX55XUtn5+lXJMuyx8sOYBb7EmMKBIYonCFp8VYijL6q
         FZCtyiY2mnUI/o6+tc183Q69TleYGF73WJTe9XWe4OV9sH5RaCXzmJeNuSZ71pwIbpIY
         1CbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771572849; x=1772177649;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=GuiKQFtMK/o2pzcksVti0z3J+9sGWlzhqjhsY3EK9zE=;
        b=rK1VygGMc0esXOKWMiLb/QM0gNqpTUcmRk3hHWbUMwyQH//sRBD/ihq4ZHvgE4lhlV
         5HQQyAfFGUt0APB5AgbgZf67tJzx7C57fRCy0HLkrnzX0u5G+1tkEjYORDgNzBDqreLy
         E6Lb5iaOxmXVWbt3APyKESeIyKUFgYNTwUJhD/ifxVOgfGXdlrP4z6bFBhqrDtxCHL4z
         vtzjSCmYA4DYyFpD4+Hu6kJPBrorDtpzpeSPaQsjVmC77h9WmeV4WStxiGnqw+D8vGX/
         /mYQ0JD413gLW16CX5ENLMvWoK99zLQ3gTkG4Cy50ZtF6/wvdmb/V0r2inUtEvzGqTOw
         QYqA==
X-Forwarded-Encrypted: i=1; AJvYcCViNZjjtvroZXZ1PReyg9T1K9gsgX4hXOAsoPoRJvzjvuQ67pRgEO8DHQa+0k3/G69Fc7NSxSEkTcU=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzp2hos3S3WAi6fi0DAFVIihxtvdIzMWn/jCVqZ0oR+DbPp2OjM
	wjixxZrDZXNNEsRAi6EimgFjzBLiF7qXlv5IkE9lkwGaKyDQFyiQl00GjUghZGfDTw==
X-Gm-Gg: AZuq6aI/gRJPMOt5Y65ZhGr6QKBnIlsskZWMNJuAlCGsF+gJDGxZu/vOjJVu/cFlMZa
	9+5XzOHHUMxeVFkBnZUx0uCJS0a2+lrEFlcE/ciyDxsD6SI950v55yH/IOUYJ7ogLRCsolrk5Px
	e8weXXBpinDuofhn8oMQqJE3CAoDTlh3k8o2KM8IPmOeJx4FjoWbzAa/QeuB3tp0/p+zXtGmmlP
	oqPC7O6XXCqstp8mULLa0VzjoGv/TJmwUS22Antn5b6FhQ92jQn5K04rJSE9jr6dt2BD1U2RxCm
	rBiXfkME5QjQAkkaA77sVACcy7kUe3JTsxvrBe+l75pXQSNvYwyMLtNa2I1ld3NjsTCj6+EmNBO
	xQFvUzkrAN28uCXQiTlu035VJsCLTCQ5cPWYzr89nO7KTH/G4utNdpXEkwzo21t9Jj3+WDkOJnb
	sKiT1qOQshkg01+HNtflHKrldBP3Bubjtl/SXpLRvwvyJz6Pc6LMQUDNKH3NCOC/7f1NUh+7cvl
	8haEyAM2JxwT7PB+2ULT1EKOg==
X-Received: by 2002:a05:6000:2913:b0:431:752:671e with SMTP id ffacd0b85a97d-4396b03fa56mr1104314f8f.15.1771572849115;
        Thu, 19 Feb 2026 23:34:09 -0800 (PST)
Message-ID: <1415f4df-8191-4e94-a60a-9b7f0f2599be@suse.com>
Date: Fri, 20 Feb 2026 08:34:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] tools: specify C standard explicitly
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <20260220004344.1980775-1-marmarek@invisiblethingslab.com>
 <aZexPYiQ5UF6t5uz@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: <aZexPYiQ5UF6t5uz@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 01:56, Marek Marczykowski-Górecki wrote:
> On Fri, Feb 20, 2026 at 01:43:21AM +0100, Marek Marczykowski-Górecki wrote:
>> Archlinux just updated gcc to 15.2.1+r604+g0b99615a8aef-1, and that
>> defaults now to GNU23 standard. This isn't what Xen codebase expects, for
>> example libxl fails to build with:
>>
>>     libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
>>     libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>>       447 |         endptr = strchr(str, '=');
>>           |                ^
>>     libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>>       452 |         endptr = strchr(str, ',');
>>           |                ^
>>     libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>>       454 |             endptr = strchr(str, 0);
>>           |                    ^
>>     libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
>>     libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>>       447 |         endptr = strchr(str, '=');
>>           |                ^
>>     libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>>       452 |         endptr = strchr(str, ',');
>>           |                ^
>>     libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>>       454 |             endptr = strchr(str, 0);
>>           |                    ^
>>     cc1: all warnings being treated as errors
>>
>> Specify GNU99 explicitly (same version as in the hypervisor, but the
>> GNU dialect), to fix the build, and avoid such surprises in the future.
>>
>> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> 
> Hm, I should have tested it more precisely. This actually does not solve
> the issue, it still fails to build on Arch. I did confirmed the
> -std=gnu99 ended up in the relevant GCC call for libxl_cpuid.c.

Is it possible that it's not so much the compiler, but glibc, which is the
problem here?

> So, I guess iterate on v1?

Perhaps. As per above it first needs to become clear where the issue is
actually coming from. Otoh making the code suitably C23-const-correct will
want to happen at some point anyway, I suppose.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 08:49:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 08:49:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236920.1539392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtMC2-0002PW-0B; Fri, 20 Feb 2026 08:48:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236920.1539392; Fri, 20 Feb 2026 08:48: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 1vtMC1-0002PP-Sr; Fri, 20 Feb 2026 08:48:57 +0000
Received: by outflank-mailman (input) for mailman id 1236920;
 Fri, 20 Feb 2026 08: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=uNHm=AY=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vtMBz-0002PJ-T9
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 08:48:55 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fc7fe80a-0e38-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 09:48:54 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SJ2PR03MB7401.namprd03.prod.outlook.com (2603:10b6:a03:55b::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.16; Fri, 20 Feb
 2026 08:48:50 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 08:48: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: fc7fe80a-0e38-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NL2NBGw1Mfuak6N9moH3Dn3z2f9CgypPXa0Z/ovt/8st3JKQQ8y2q3lN0D3uWNFKNP27RA8/B9/Yi3+wsmIRzHzZ+rCYGmbXmLC2OVfsVQ0KL7iK3Q8Js8GS6vo3pbE/kAsphJI//AedAKl0SLAfXf+jUy0ds7jGVjfydouhAiW1U1oQd/rirTdWytv5TI5vn8O/qSnEswcUb5vsAuvvVnPPpcxOMsplfX8Md1MU04p5HqKyBDjrmR9YqV2PyVEkI/2Voessgy3opfIvvpwLxRlC5oBMyeZBAOzmChhZkpl1bEDZpTI6316Dw98wRPviTPl1I8Eq4oM7VtNuRw7S6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bG3XSX3WWE4jgKeyckeb4tuY6g5uiS9krAoBVcGeek8=;
 b=ETXnIePfJxekMOWi5MR2ABa+vPsLDnENGHPYMQLk9POpLflv4TbkZpy5JBtccFNiI89UV8osoJCOOPkNt8fU4LXI/GaYirC8Mhyt3F+UhVltZLBrMAIJNhZaaTBsLwzr1bOR+5tHRGko3KNoE4lCLr6jol0alXXF7B+vLtR4IViF++beKFp6bpBrmXAc00PE5HKek8SsrZQTHpwCwz21C6DxQmNpYQGQyz0tk6EaibNJAG/peSPC4PX6SdHa2/cvHSwh/RQ9swLx/7dIyT8cjXKn9gtw/55dJoZ3TdPJQFvNcu6r2SXdid87wCbsjUEF/wQyNaBmvtyyLZlK2BrXZg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=bG3XSX3WWE4jgKeyckeb4tuY6g5uiS9krAoBVcGeek8=;
 b=cw3/q3N8S8wR1hpqBgcR4FJWjP58spVDBIggdz3f5mgit1HOHXBqkuxZ85mKbIp+YqAvl4VwUnvLeTU05/gfmcJvJKVghCirlTYWoP5SmWt2wy4cj0NIisIOyAg5EI+9mek3DPvPcS6KLpyvk0t02SKt2sUvPwitgvtTkPMyY6A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 20 Feb 2026 09:48:47 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v4 3/5] vPCI: move vpci_init_capabilities() to a separate
 file
Message-ID: <aZgf72lwLryKCb6L@macbook.local>
References: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <c90890f0-2e6a-43d9-84f9-b0ea19a11d3d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <c90890f0-2e6a-43d9-84f9-b0ea19a11d3d@suse.com>
X-ClientProxiedBy: MR1P264CA0150.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:54::6) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SJ2PR03MB7401:EE_
X-MS-Office365-Filtering-Correlation-Id: 57f259bd-9b0c-4771-4633-08de705cde31
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?QnE3VUdQSzhUbW1ZOVdyald0V2hwR3M5VlpGRzdsNTdQTWF4Zzd4U2xIdzRx?=
 =?utf-8?B?M1BJaVlYSEtpcDhCM2FVYnN1OWtCQzJmUzFHUHZOMXpENjIrUmF1R0h4cWJy?=
 =?utf-8?B?elB3d0c3VXdyZXVkTG04WHdtRU9tOXlHR3J6dS9vSUwwNnJUM1BNd0JCMVRL?=
 =?utf-8?B?N2lXT2IwRU9Vbk10V2Qxc2RMVjB6MXBob3BnQzVKR3p3VmQvUjlyU1AwQUY0?=
 =?utf-8?B?SkZsZjNaL1I5amY2U2xsMEc3aVFtVG54QVlNdVdWZ2hLVWN5OVdDN0daeEY4?=
 =?utf-8?B?ZlJSLzdJL3pRcFV2YVo5UDB3NjcxcUUwVmFTd3RucnV6R2N5Rmh5S3hqdDFa?=
 =?utf-8?B?a2xCMTR2eWJPV2lGc3FybWMzTDdCZ0Y3eXRIbnU4OG1GZ2dBRU83U2tKZm16?=
 =?utf-8?B?YTRDTFZDQkdJQ0FzeS9uT1JVQy9ZYlNDR3Z3Z05qSmJsdEo3bzNBNUdVVTRZ?=
 =?utf-8?B?SE5aNWdJa2RTb1hkOW1WNjljNHlCU2M5Z2xYczhvajgwU2JqSVZYa0hpQWVY?=
 =?utf-8?B?U1M2ajZzWFdLT21GalFudWJEeEpHYWlLUDEyT0JST1FNekxaUXFnM1AwWGdC?=
 =?utf-8?B?L0U0QUlodWlmeC9WVGtWOHAwNWhFdTQrNnlNVEhpNFJLWThLZnQ5ZkU5cmZM?=
 =?utf-8?B?SWNMWVlOZEpUU1R6L3hEY3RMa0w1WVhMeHpaOXU2c0dTVlpVVXJPSGVPL0ZE?=
 =?utf-8?B?elUxc3JFSWpVSlR5UkczMHVFL0QwNEhoWVNnb3ZSemV1UjhUZjNydnc2TUVj?=
 =?utf-8?B?YWFCMi80VkFLb0JYU1VhZDV2cnJZa3MrUDgydjhmZnlBbWNzTmpKZ3Eyb2NN?=
 =?utf-8?B?SVJXRlk4Z0hUc2ZWZ1FPc2lsVHhsakQ4clM5RDlKaEYwS0Z3ZjZIY0RyeUR1?=
 =?utf-8?B?S1ovRUpvSTlpQnpibTBUYW4rRGpqZm9xRHcyMFY5MGJORktQbCtKWjZwc2dY?=
 =?utf-8?B?QW5HNlpDUkZtUmxKNEQ0Y0xwTndEUzhsM2g4MC9SUE84d3BmL1A5WkVJUXJ1?=
 =?utf-8?B?WlJOQzFvSzc4cDI5RmNIa2dkajhiNkhrZWV0UHc1MUc4M3R6QnRHSmtnSnQ1?=
 =?utf-8?B?b3pQTERlS3RCSU9Eanh1eW9WeG1xZzhyK0J4SmdIbE9nZkcrYUVhZXVlYjgz?=
 =?utf-8?B?T0JOWDJqUnhYZldyTXF4ZlU4RmZVVnJTMC9RSmMyQUI1Q1JNZHg5MGt0MVJw?=
 =?utf-8?B?aklmbkhYSk9hQ24xTXJFUGRLcjdMRE10YStlZGcxdTdDWExRWm5tUEVsUG9Y?=
 =?utf-8?B?ZXk4d0RtblFYOTgzZW1maG9zb1ltTGZBQTBIT0FSaHZ6Y3dzY0MyMHMyMGNx?=
 =?utf-8?B?c09wL1EwN3NSNHpTNFJwaWxsVjlPYkF1c3dpaTFNTXFxclJTVFdIVnZqN0lO?=
 =?utf-8?B?NFJEd1hndjlmVFRuYXhibVNtcW1IVU9aWnZLZ2g3ZEVGb083dGpTMEV0UFRP?=
 =?utf-8?B?dW5IRExFTDEycS9xeGpDYlJQS0FFMW9DTCtDQzVHdjYwd3Zwa3ozYXIyaDJY?=
 =?utf-8?B?ci9OWHpJQWFxc3gxdzVORlpxZEhmUHZ0eWk4N09qdkYxYUIyOEl6ck0yQkVm?=
 =?utf-8?B?NnFadHJDQkhWWjNURWRlWXkyNDVDZjYxdVdDeFYzdzBBNDlDd2cyVVNldHF2?=
 =?utf-8?B?dVVmcmpsN3plb3ErWTVlSitadTc2MEV3UlB4bFlsR3lDMThOOVpjMFpsd21U?=
 =?utf-8?B?SnQvSWlMLzZLaDFNTVpnYVhNTzJVZTFvSmQvdkFuK3l2TTdyTTRoTmJ4OVMr?=
 =?utf-8?B?Qk5sNEtXV2Q1WEh2QTNOM0xtc0hqYVlMdTczL0I5NVp2MWVwWVNwTUdSUU9s?=
 =?utf-8?B?SGlPanFZVFVwYU9ndEhjWEthSkVOd1FOK0tic3NIaTk2MFI5bS9oKzMveW92?=
 =?utf-8?B?a1hkWjJwSCtJb2dtelU4bWxpZjVWV05LMnkxYmJ2U0h2OWwxbjNCdCtUYkpZ?=
 =?utf-8?B?M01Ka0tQYkpveWRBSjdXVzQ0OEE0bEJhdVZRMDZ4TEg0TWViMDQ2YXNXMVRN?=
 =?utf-8?B?Y1IyK1VQNys5S0ZLK2JVUmRINllWNVU1d3NUb2ozNDdXNVp6TWthUk5CR3lL?=
 =?utf-8?B?SVJEQmloR0RsZG8wWTBzbmJnMUhZZC83SG83SWZiQ0lrVFEzenA1NHdkV3pM?=
 =?utf-8?Q?3nyo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YWlMeTNESFI1STNCYkZ3OFd5eFdES1JlVXlTWSswUFNRMVM5VmwvN3pIR3JX?=
 =?utf-8?B?cjBNK0RUcGl0cTc4OVplMHE3VzJFaHFzTFEwVXhtTHRVNnhqOVhab0NTS3Bt?=
 =?utf-8?B?Q1RuL0NBbElxY2xkMTIwbnJKVno5OXljS0JvOGtJdDNYQWhDMFZMYzRTUzJ5?=
 =?utf-8?B?RXo1V0lxRG1WWmVBTTZVWFhsa0hzTkNuQWFoU21HdXR2WXZFUjlBQXVOM1dG?=
 =?utf-8?B?c243UXpENXQvN2hUSHNxRlNldVJyMnBjZHJlbDBCQzVoNlBmSTNuRXJyUWxm?=
 =?utf-8?B?eWtVYXJSZEJ0UXpLTWNwNkdOUVpHOVJJMUw1dGl2cWpmNkQ5bG82cUxKZktz?=
 =?utf-8?B?ZmE3LzlDdzNiTzJ1Y3B0NDhnRHhKdGtDc3pzWGV5ait3RjN0WXh6ak91T2F5?=
 =?utf-8?B?MjNlK2pGWXVxaHY0YjE0VWZiUk9JOE9OUlFyakJCZU5mZGVJL0hqRGxCSTBn?=
 =?utf-8?B?bmlpcUhOTnZZVWRVRFhIdFZLYmtxYndXZWR1RnJCRlg4OGk0RFFNNmJMRXN5?=
 =?utf-8?B?eUR4aG1udFkveU1pUkdXaTF5SGI3Q3hCQU9wVE9Jb3dIdDlCL1d2ayt2Sjk1?=
 =?utf-8?B?VW00dTV1eWM4c2tmRm1KTXJHYmZDYVVaanJjd1o0Z0NuMk1NajZvdkl5N0kz?=
 =?utf-8?B?MGtQRHFjUnkyNlF3RUxGRkJxWWVHOXFmbWtvYTRRY0hQb0Y2elBER0RienFD?=
 =?utf-8?B?bWsvaE9HSHdES0liYWY0ZVIwVDdhQTZERUppdFhGa3BtU09MYmtFZ2twb3g4?=
 =?utf-8?B?dTFpSVRRVnN0MFNRWXd4emRBTVYvcHVZK2JVWUpHbyt6bWxIVE14V2dZY0NO?=
 =?utf-8?B?VHJ3UnI0VVZnUVV5dmxWbkpoMFpacEVCbkhKbk01c2ZORWVpMHp3akJZMWpG?=
 =?utf-8?B?MEVDNzJGWXREUzYwaUdoR3NnUWtHK25PNkpScCtIMlZ5Uy96eXFLYUNtTmNZ?=
 =?utf-8?B?Zkp3QWwxTlFKaTlZTGF6UEFKd09oRG1PVWxpQVFEK2E5RmRxWUtNOThOVmI4?=
 =?utf-8?B?L09IbytTUGY4LzJ1UDhWMm5rZUM4RCs3cWJ5aitCait2cFQ3K2tTNWJrTXoy?=
 =?utf-8?B?dzBCMm1jSTdFRjF5ZlB6TUwzRmdwNXRhZXQzbllNYWpsN29PSWlNU0FnN2tL?=
 =?utf-8?B?MFc0bGJ3STZjR2RXVnE0a0RoczNGbmwwaFI1ck54MUQxRjZZYzZZU08zUXZE?=
 =?utf-8?B?TTgwRFhaaHFwelpiMVVScER1TkozZC9EMnY1Qk41Rm9kb0tDallnU0tIL1V0?=
 =?utf-8?B?Ukg1SjBuUzl4aVd2c2FUT05RQjgvNVBjOXhLazIrNjMxQ3ZzS1ljbXJTSlJj?=
 =?utf-8?B?MVZOU2lhdExCTGd4Qno4b3VZdHFGSGdvSlMrS0JEbDJUeERzU0xIRElKcllu?=
 =?utf-8?B?aG9peTNvbFdWYVVQUTQ2eXE5R2R3SmJFeGxaZExFY1hoM3puWlM2N1BlbHBQ?=
 =?utf-8?B?QXVEMkJZMkJ6MkNGczRLL2ZBUlU2cWQzb0xtZnZ5YStXV1EyWi9wWlg1ZGdH?=
 =?utf-8?B?L0JxM29ROEpjQ29GL1V0dUNNa1IvL0RqYkYyWlhBTk9QM0IwQmE3Ykxzakpz?=
 =?utf-8?B?YVNwem1tZm5IRGNwdk1ka25JczJBNlN6a1JrQUQrOWFUVTVDQmYyNWpEQis5?=
 =?utf-8?B?ZjQrc3FYcy9sWmZNMmRvTEh4akVHMjNpYWdiVGgzMTFjYWJFMFNEM0V4VTdp?=
 =?utf-8?B?WjRzSU5ETzBjNWJPbDFBZFcva1AwcW5uS283c2s0SllqUERONjRkVHE2cksx?=
 =?utf-8?B?SGorYmFVM0V3UzFyQmpmYXhtR052c1NpaGtNeVVjZ21QTUcwSXJiOGZnZzhx?=
 =?utf-8?B?dk1qcnNxQWVnYlk0Qk9kUFJ6SG5ZcHRsb0x1Njh2MFdDOTNnRGhLRWs2cDIy?=
 =?utf-8?B?OFFrS2J5dVUrM3VxMEgyMW1vZXRnOWZvakt4STV4b2x0OE10K1JMaTN1MitG?=
 =?utf-8?B?Q3BRall5bXpJQWo0cmlTanQ1Qy96RnlHWHV5VGFjWXQvVlRjRVE5T0dEYkd5?=
 =?utf-8?B?ZTlOa3NuV210TzBjUEpUMm9wbDlWT2txSDRnUUxKREpGRE1IMll1ay9LRUo0?=
 =?utf-8?B?MHNZcExaU3V4c2lXYmJnNGI0NktqalgxVEVBZnRaQlFHaEpYWWZjWmxEc1FJ?=
 =?utf-8?B?RGhJdFZzV01pblVTM1R2TU45T3ZXZEEwQ1ZVTFczREFzYnhicGRrbTRtK2gy?=
 =?utf-8?B?NWRqZHB2ZlRGU2hiSitaMGU2eUt1RzQrRllKMWhaZDAxa3YvcjBWeFhFbVpS?=
 =?utf-8?B?WVVWZ1BuVnZGMGh3bUVuMEZwNkY1S0gvYXM3U3pLbXNNMDBPQVJheHR5dEoz?=
 =?utf-8?B?cjQyaUNReGFCc216Z014a2lSZmppeVd3SnV4Q2kvc0Rsb0tCd3RCQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 57f259bd-9b0c-4771-4633-08de705cde31
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 08:48:50.1397
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wNiuToh61K7fJOHuLoF3lj6vzU60lea0AfE7LAabAnwvfwuqnr5QsIIVKC6LTK9fejDfdvc8k+J7u/pqT+gfjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7401

On Tue, Feb 10, 2026 at 11:54:18AM +0100, Jan Beulich wrote:
> Let's keep capability handling together. Start with moving
> vpci_init_capabilities() and its helpers, plus splitting out of its
> cleanup counterpart.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

> ---
> vpci_get_register(), while now only used by cap.c, didn't look like it
> would want moving there.

I think it's best to keep the vpci_{get,add,remove}_register{,s}()
functions in the same file.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 08:59:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 08:59:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236928.1539404 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtMMH-0004CK-VV; Fri, 20 Feb 2026 08:59:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236928.1539404; Fri, 20 Feb 2026 08: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 1vtMMH-0004CD-RL; Fri, 20 Feb 2026 08:59:33 +0000
Received: by outflank-mailman (input) for mailman id 1236928;
 Fri, 20 Feb 2026 08:59: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=uNHm=AY=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vtMMG-0004Bp-EQ
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 08:59:32 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 764f5046-0e3a-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 09:59:29 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA3PR03MB8302.namprd03.prod.outlook.com (2603:10b6:806:460::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.15; Fri, 20 Feb
 2026 08:59:26 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 08: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: 764f5046-0e3a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=ci05wbTo/y5lNBcX3Zf2+nQK3WMUmXzCj2gXzLvKi2RudZCkh0mnjfhjk1iYIkFIWaaVUn4G5bQqTQDrWFEYcxYrejqg71SwA4AKBlCQvva50N6YJ1T51+H/v77oBtKq1SrwLfPmUbPkKotc7UvfpxEsRMHqe7z6wRkuH49OMR7WhkWy1ESbbIxRs0Qay7rqaRNu28XSQ7fXERDEsAmAVuqmEhYwvpYoI4LR9ym8szJJI12hvElUE+H/MeI6XUEx5Zk0XQt8qu8+x0V6P7Frqt7mpLkFL3SWPJWYQeO5d9lyoaPv7fiGbeQzkNi7Q2lNByJd9nlXn4MxIpWfE+KOOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MdPuoqzz/bFc+YXLeH0czSXjYzWxJYJZwUXyGmPyDpA=;
 b=JrC9q8qyHiceydGqy+A9YLvo5YnGVZSXF6KAp5nDNX2uXNrHkAA/1lCaJzoVYsMGABiGwL4m/VIBj15JfcENf1/XWkV97FbjYxbpVF6ldX7MSMCLfvZ5vYVSg6ZGGz/sh3v8vmyIkfhQ+qJSH8WdJqEUuC8s2tflBgh6YFdKX7xfEPvx3SMKyDiz4MHyDUfXM2IUBka3PaNzk00FkwVzPAZxX138X7GrmKNF43+30zjtqA6/cajaHtQ5wrGXcFFadTj22d1H47kTr2U6LWRMji0fTvy00RLEAjEzkcTKnVF1GkVHm0rv26z0bgqs9suI+BhN0iT7qWLgeu6cbtHO1Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MdPuoqzz/bFc+YXLeH0czSXjYzWxJYJZwUXyGmPyDpA=;
 b=CA1CJxAObvK/I37Gw2LIM+6aJ+brRpgYGthWSA9bPLjT4DK1N6bpK6IgMK9hzzpiY0ck77iapvvaV3Yc+unylT7P4eQBu7DMhWV6XTPkWajNXP/ppi1Fl6k7NXw5i/fVn3KMOTbvqr/qcLBPH3QbWv3vIQmlyVkYUfxBK3OORjw=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 20 Feb 2026 09:59:22 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v4 4/5] vPCI: move capability-list init
Message-ID: <aZgiarWw3Acr8WFF@macbook.local>
References: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <b5030a1c-bb01-499c-b75d-27651a09490d@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b5030a1c-bb01-499c-b75d-27651a09490d@suse.com>
X-ClientProxiedBy: MA2P292CA0006.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:1::7)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA3PR03MB8302:EE_
X-MS-Office365-Filtering-Correlation-Id: 0470b083-b186-4860-b6ce-08de705e5926
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?blVrak5JbHNXazV5akVHYURDVXY1RGp1bHhUUXBKcXIyZ2tXd01wakdHRUda?=
 =?utf-8?B?NmNNQ1JBQVZWSU13aGgxZnp2bFM5SThaOXpqdEsvZDgrakN0N0tpQzU1U1F2?=
 =?utf-8?B?MmVXN1l2MjJMV0xieU1JRlZTRXM4c0Z2QUNUNTl1b25YWkxpZXlWNmcxU1Vv?=
 =?utf-8?B?anM4cFRCOCtFZStOblhRekg5YUkraVRJQ2M0blc4UVRUd1hBeEEyUm5USW9u?=
 =?utf-8?B?M0NPUGlQYWMvZzdTLytCcGZqSHdsbS9nKys2V0Mra2QwVWkxMlNFajdjQ3No?=
 =?utf-8?B?RWRKZ1RPV0xmV1dtcGZWbUlHUk9aZXV0OFhrdzk0eTZZYm5MSFk5cHp6Wi8r?=
 =?utf-8?B?dGVWT0M4UERZc0NTWlFzQUdjaFVrYUlIYktyQ0gxZGFiMVZZUURubkVGamI1?=
 =?utf-8?B?M1oralY1U0RCVWt3bGtMdmVHVHMzMU1qeDM5OER6VGFEcSsrQUd3Q0g1ZGk2?=
 =?utf-8?B?ekVhWDRqdkxKUkRqYlBEcE04bXFFTnN2WlIyVDFHZlZReGd0SmI4TFRZLytX?=
 =?utf-8?B?S29ueE1FUi85T2FUbUNuaUozM3RleEFHbFBWMXNBNFplWlo2emdUZ0MxRG9v?=
 =?utf-8?B?NmYxaldEajhvV0FuTG1EdjllOGdXa1YzNnVwb1NVbXRXMkw3cHZ1WVREYS9U?=
 =?utf-8?B?dkp0SXhGNS80U1FESlJlNkllZ0tud0pmdE1ld2NXWitJL1gwOHBZY1AxR2w3?=
 =?utf-8?B?NU1zdlc1Qi91c3RvU3Vlb1poc3YrbjFwd0pza1B5VWlHTnk4dkE0eVhhcm9C?=
 =?utf-8?B?Y3NLUEVxT2QzMUhzdXdNa2dtVzI3RG9lQ2p1REc2UjRBcm5jZzdLS1Y0REhP?=
 =?utf-8?B?UjU0T3Y1K29XT0VtWHBNNVdoUFhiWVNadHdaSW9McjV4WWVYb2tOa0E4eWx5?=
 =?utf-8?B?UXJ3empmaFppNURveGJreTVUenAwTElRSmNwcXpuMVNaZHJ5SXBtaFptR1BQ?=
 =?utf-8?B?N1hqU0pHcGtnNFFCVXFnVXhIZThCMy9Zd3A1dUNtY1MxV0N5VlNjeTU0VThn?=
 =?utf-8?B?OXVJWnRxblpoVVI2WWFvWjZUOEVGZ1dxdXhxS0tleEJVSzJqSis4NVNIQVgw?=
 =?utf-8?B?bklwSE50NEdnOFNXYVlVa2thdlpuSVZZTTNzd0JWcy81ZlJ6WThSRXJPa09Y?=
 =?utf-8?B?L2p3L0RQb3BBRnJIWDZJTVM4cmhkOWNyNXFGdVhYVkRuYnJVaXAxa3hQSWkw?=
 =?utf-8?B?NFZrUkVKMmpNWGxHODZhaDNjUFpKZVpZLzdHOXZqN1g1Z0dZMGZEVkdkV2My?=
 =?utf-8?B?RWFqTXlpSEdRbDZvK1dSUEdhaGhzWHJUSy9rR1I5Y2c5Q2xKTHo2WnE5Zk1q?=
 =?utf-8?B?UllaY0FJcTF1Si9aRFltL0FONlBRLzY4ckloUDdDaWVXQ2gyMDBTSERtdGlP?=
 =?utf-8?B?QXJjMnlUbUxyQzNWZmJ6Qm85YkNEdzNTU1RMR1JoRDJmNVM1cksyWGxSRUF3?=
 =?utf-8?B?dFpJMG9sc1hvcFUxYmpZbldqR29kRyt5L2JXSVgwMGpmam40OFBESm1ybDh0?=
 =?utf-8?B?elppcEVBc2prY212c3JGWlFaQ2wyQ0dHWGc3RU9CZjRIMnFlSDBQV3FCYWs2?=
 =?utf-8?B?aGcwYjUweVFVRFoydTdzcWRYa2dDU0RzZEZyVXpuTWhFTk1nWjFLK3krUTJS?=
 =?utf-8?B?TG8vRnRJc2JoSGw2Q2daemcxcTZsUWFQTE5VRlg0MFpLaTJzSG42TkRzeEFw?=
 =?utf-8?B?Z3lWVmZXeXZZM1pkTVYzOVh6aEx3YlUyNUNKV0d1N0dGVTFvZ0xPaE1jZDRK?=
 =?utf-8?B?SWdXaHBBdXdMT3FFdGFFckVxYk9pc1RQRzNKd3ArOUxvUEpISGE3KzNMU0wy?=
 =?utf-8?B?YW9mNWQvb2dWZkxhQmVOc3hoY0FVc1ZDN3JIckc0THFJQjJhejF0ZURLS1F3?=
 =?utf-8?B?ZE13UjNyLzdDRE9lZGpGTHN4VWN2NVJkajNobXUyRXpFWEgvVmdEU2MwNTB1?=
 =?utf-8?B?YUYydTBSZHRYZ2h2TktsZUpPZTJYOVdZaUpRUDMycUpnOGxxcXhGNWZYaDlB?=
 =?utf-8?B?Sm9ORG5TaXB1eTEyWFBuRkZrNGFlK3YzOVM3NXYwMEpPV2V0NzVHL0dQbVMz?=
 =?utf-8?B?NFJvMkhiWndDdUYvUmdVaTdiOHJzSURSbG9pWllCUS9QK3BxUGgvWjI4RENK?=
 =?utf-8?Q?p/Ds=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QkJPS0ZBcXJFUGwveWRSUVhDaGQwMEdwOGhJc2gyUXg5bkJ2elFBWURheldW?=
 =?utf-8?B?U0ZHSzlLdkxkeFh4V2dUTFJMeUR5ODYvd3N2WW42dkRIem0yZXhIekp5VXZs?=
 =?utf-8?B?d3RuSG1sTkFuenVpd0g3NHFrRWlMS0VmL250WnJMLzUvUG1NOGxSNkh2U2x5?=
 =?utf-8?B?OG04bUJCb1labzYxbHJPRkh3WXZYTGVpVStNVFZld1pOaWlWWjlRcmlxZzRT?=
 =?utf-8?B?SFNhbU5PY1g0anczb1ptS3EzMm5XOFE3dmJScm1UbnRDbVUySmNhVjBzNmZl?=
 =?utf-8?B?RmlXM2poTEJURVFGb1VwWDdDQ3pYdFNlMWtRQ2s5U3R3bk1lMENPRHhwNVJL?=
 =?utf-8?B?VFZQZXptSWNPNHh6OEpkeWFzV3V1Z01jWHF4VUc4TVdPRVBONTJ2QVUvU2hO?=
 =?utf-8?B?Tk5RYmEvbmFESnl3UnFRQ2xLQy9rSVAwSW4zUDdKS21uelBuN0JYUkIwZkRZ?=
 =?utf-8?B?M0daTEd4dUJOaHlwakdYYURKVFNCbVhYMzhyeWdJRkhaZ0pxOHp6Sy84MFNB?=
 =?utf-8?B?MjJWM1U2QXJpWU5TOWEwOWhWTWFWdmdOdml3Y3pmZ0NQbENSNlZ0bkVRVzdp?=
 =?utf-8?B?MkwwWkoydGYvL005MFVrS0lrVzRhL2VYbytKWmQrY29qK0I3VWFTQ3dmbmZF?=
 =?utf-8?B?M0g2Z0ZDS2twT0hIZGlzRHIyc01jalJJcUxZaHUwOEE3QzFjRDBKUUo1N0xY?=
 =?utf-8?B?ZVhGWjYrUDhmUTdQNjhOMGNzbmt0TmdwMEhTd2hNMW1PNlpwbndaTzBqNzM3?=
 =?utf-8?B?djUzLzdrVnpZOXhQaENWM28vSjN1dkNMY25qODJ6RTd3ZFlYb25mblI3UjNI?=
 =?utf-8?B?NDdCTnNrTS9OcDlYQ05UZ1UrMGFhcjQwZ1JRWmI4UGtwT0VLUmtXMG15aDhF?=
 =?utf-8?B?VW1wRk9EMWlhV1JVRkFpOEtLRENCeG9Ubng2cXVJbXVReHZZQTZkN0JzZUxG?=
 =?utf-8?B?dGZIc1FlaTBRb2RUWTNoaGtZRWRDZzhLdzVEbkp1d0V6ZUpWVCtoWEpFQlB3?=
 =?utf-8?B?MkFJalkwS0g5ZVU2TmF5Rmx1Mm9xTFJEQldaVDBDNitVZDJleHFCblhSWXNu?=
 =?utf-8?B?bkZXbEVzUFo2aHlyQUFtSEhOVUI0VDZseEI0V1EwaERMcWhFdjlTSEQ2SXhD?=
 =?utf-8?B?aVNyWFhQZVdpeUVHZ1JSbW9Vb1BQY05EZUlqT0pMa0pVWkJMd3p1aVo2Z0hp?=
 =?utf-8?B?WXY0eEhvYlV0L282bGYyUHRLL3hNcDFuLzFUc1IxRm5VVkZkWmRPQkZ1dlJT?=
 =?utf-8?B?OUJNbjJ2OTlLN3MrUHVrcXFZZzBhakYxck9BVHJSczlEMjhhbit2d1FCS0Mw?=
 =?utf-8?B?cVd1NjlNVDlQcmxldWlTTzE0dUd3NnNlR1FIaWVydHpGdUUrdzZtSkN1YmUy?=
 =?utf-8?B?MWZ3NnpjeDc5WmNuVGRoRHYzRzMzblR2TEhHb3RIdmhHUlYyZnpUZTNmY0cy?=
 =?utf-8?B?U24xTzJOL0JQeFg3RlRXRWVHZ0FwUVpMcnB4REdpWSs3aHh0MU1hYWlNdWJG?=
 =?utf-8?B?dFdhVnVsaTA2UElmbVNTT0pGNWRrVlJNdTVnMEVrVjZMd3FDN2daL004aVhI?=
 =?utf-8?B?WUhocWh3YUwxa1JlUUtvTkxITS9qMUtCVmdTTG5oM0JaVDVheUJCRTFlZGhs?=
 =?utf-8?B?MVRyL1I5UlNWYllFdFVBZTEwRTZTaHlsbHlrdU1Fa3YrQXdNL3kzbUsxbjFn?=
 =?utf-8?B?Mlp4cStsVjJ6ZG5uK2ZWUmRFQnRPbUlTanRWRXJ0dFMzMjBobDFRK1JjcFE3?=
 =?utf-8?B?MW9seXZnT2swRjhqZ1haWkM0djBjMDlhVEJ6aWIwSng0SUxkaXN5MHMwMXJH?=
 =?utf-8?B?YUJ2WCtBdUg0SGNUYjMvb1NleWJVbnNWdVg1LzlzUHAwOGl6TkgxNFMweDZK?=
 =?utf-8?B?Uk9OM3hhbnNQQTBBTXk5ZHZnWmZCYWRrbnMrZmhaWEJNNDNlUW4xTm1xcFBR?=
 =?utf-8?B?ampIRzNwVm1MaHV4aVVZRU1LWlIxMnhKdzhpV1k3NEpIZHRHWktvV1J5R3Qv?=
 =?utf-8?B?UEt5bXJsS0ppd2s3bFY0ai9LbFE0ODRHRzA2bUJNZmRSK2NQM2NNRFlFYnpY?=
 =?utf-8?B?NDYxRzc0NEJ6VnEwYVNqNkNiT3RlTHRWcDhrb21rd2RCM0thTlE3RmpIdmZa?=
 =?utf-8?B?cm1jaE5xUkVKS2Zxcm43dmxDbW9vMjQ1Y0dib1hJZ3lVQ2ZBUVlGNXl6MEQr?=
 =?utf-8?B?TFpFbW1EaVRLTE0vaHBxOWV4TzVvLzZrWEpleVhmWFBkV1hoaXJmclp5S0Fs?=
 =?utf-8?B?MVNkVktPWlhWNWlhaGtTdG5nZzNETG8zankvWGNidHoyNTdWaVI0T01FSVc4?=
 =?utf-8?B?ajdvRkRnbk1LRmJEdzY1R2RBSEpqZktKbGwzSU1NcjlMUnZrTDNjUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0470b083-b186-4860-b6ce-08de705e5926
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 08:59:26.0276
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hehVqjE/D1B1GmO16g+oJg4Q5lzKrmWeT7eUdETXU7mNgeTwzUdPm5+OBP8ghbUo5jmoBfmwyqqeygCQzTz1lA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB8302

On Tue, Feb 10, 2026 at 11:54:53AM +0100, Jan Beulich wrote:
> ... both for when the functions are invoked and where they live in source.
> Don't invoke them directly in vpci_init_header(), but instead first thing
> in vpci_init_capabilities().
> 
> Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Thanks for doing the move.

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 09:09:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 09:09:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236941.1539414 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtMVO-00061r-Ts; Fri, 20 Feb 2026 09:08:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236941.1539414; Fri, 20 Feb 2026 09:08:58 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtMVO-00061k-Pg; Fri, 20 Feb 2026 09:08:58 +0000
Received: by outflank-mailman (input) for mailman id 1236941;
 Fri, 20 Feb 2026 09:08: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=uNHm=AY=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vtMVN-00061e-My
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 09:08:57 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c89dd144-0e3b-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 10:08:56 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB6559.namprd03.prod.outlook.com (2603:10b6:510:b9::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.17; Fri, 20 Feb
 2026 09:08:53 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 09:08: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: c89dd144-0e3b-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=zSHDeQBA++Op7otgKBB6Y1OVXtnJM+DXVyIe4LWOD0CZB7o+vEzQMx1xcMBHoWkR2Znr97Rv7a/L2xZwSRAl/MvU//nQ5iTDT1W+wJwgamZqBbkiSHpocraotKYozmm9eNKgMCiTTxjxzcbd9aEAYB33BFEuhAtiCNdXP0CN+WB9idIwkEH/v/dy6T6rOxmtjlvF/tL0jJZFm6UBdIQfH8SpKQi+mVsJiITPTrHL6ZUdtxGx1TTTO4CHZ7xwumZwHE11Ia8LA9zEE+44W7ONOiM7FNHyYEseGnfblx+zY6zD3gZ4G75Lh9pd06nMXvfFDwlS+MWg1UGczWOT/p5qPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7ch5n7Tuk19BZzjNzkW+Ns5IUSueuFlMnY63JCf9zJk=;
 b=ORcNS4K5/Kqez5HsUtrMFa4/8fzwBYrQoHQl+0WCr+8QsXEezlf9qw8SUfwqEnPMJ9c0li5vPiYHOAwtf1Ddb2n6X24tiwJ/MqS5wxQJTsOcKXFO3XklYsEUJgp5cDB9aclL5+7ScJLwnWajvveNVlEzYDAde14KuBJLtjMchkxZ2KeWU+3Y4eOVnZbhdj04gItx/FDydcXqEpHkCd8jayPUZ7m0xQbQXhEC43NsQrwq0YPL2hsysUWLDWEQl3iGWg3B9iL6G39pT+ns4JkuVRpdIoISO1kaFEo5QgrRVaBWQV5vMxa9JjkGMKSN2tFxIQ3hjIiOOPcRnYJ3/o9+zA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7ch5n7Tuk19BZzjNzkW+Ns5IUSueuFlMnY63JCf9zJk=;
 b=BxDundQh9HRdmBeINF2u85qQdoxTbTDyYzcH8EzYDq8ejhHX2n4tVc2KGAhT8O8FyM3DS5fC92e0586e48XPdAs9OoH9DHKmDs3f9eHKaCvT2LbwlSGRRhvM8SCdwd9ACXPmFWxG+Lf4lPDac9X1P2/+9JRyKb0Rcl+J0h94z9s=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 20 Feb 2026 10:08:50 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v4 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aZgkouZccz3aUTeW@macbook.local>
References: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
 <d0be8579-fca3-4b55-9c7b-37368231a41a@amd.com>
 <d082d619-8675-4ae4-bd25-f7f99209c615@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <d082d619-8675-4ae4-bd25-f7f99209c615@suse.com>
X-ClientProxiedBy: MR1P264CA0200.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::17) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB6559:EE_
X-MS-Office365-Filtering-Correlation-Id: 5a5833bd-86ae-4143-34bd-08de705fab58
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eFZtbmFPek5IMkVpQ2k3WS96dmFqM01iNlg0aW9wTWlla3pDQmNubjIxS1Yz?=
 =?utf-8?B?amZ2K0NPM1hlREY2UXQ3V25vdmxsN1F6WDlyM2JRVUJSa1lPZGI5Z01EK1pY?=
 =?utf-8?B?WmhYWk8wM2l6K0NybGxQeVkzMXFabHF1SStQRTNJVlc4d0ZBZ2hzdTcxRXBJ?=
 =?utf-8?B?YzFXUjdxcWxRQjJZOW4zYVlncGJPZkV5dVZZTHkzdmV1MVJ1N21MdzZSVFRm?=
 =?utf-8?B?RFhZUXdqY1RZM3drZlFXMGtNVUVaeklIUzVZUnZNUk5FYWJBMHZHeWZ2YVBK?=
 =?utf-8?B?aGUxajdaN3hmdmdLQi9TVTNwSUJZMHJpby9ZMkRaTk1KMXprQlF1eS9EbG83?=
 =?utf-8?B?bklONS8xVnA3cmFFN3NveVYxajRDNklNTm5lRCs1KzJvZ2VLMGxQeDNBWHc5?=
 =?utf-8?B?SU4rWlBiUXBqbVVUaFRvOWNRRnlvajFjajBGMWFoZUM0bmVMZGw5bWcwcjQ5?=
 =?utf-8?B?bTd1ZkdGS3NlU3NRQ3RMMGgxT3M0N0tRbldGQ3lrdG5yelk5QkFEZUY4bGVX?=
 =?utf-8?B?SmxhaGVLSHJURFZBWGRXZVFFSUJrYWM5YjdFN0xNREpsUWJvMmF1dS9GUEln?=
 =?utf-8?B?NHlBTzFENURxYmtpbG9KczUrdjZBK3duUytXYXlRekhoWWZiMUpFbkhNZUps?=
 =?utf-8?B?S3JQU3J1Q1l0VWM0ZmZqeGtlREJMWXQ4M2RoUTdIY013c0dMY0RHTE5TN3hI?=
 =?utf-8?B?SjhkNGNhTE9aSG5mQUtOZUZsQUNpWDhDVW43aitDWlI3T3ltWW9ETlpITHVO?=
 =?utf-8?B?WER4cnJqV0c2OHROUEYyY245N1QyOC85MmI0a0YyMzh1NkUrRHBkaW5iOEE1?=
 =?utf-8?B?cmRwQ1diSnBleWZpNC9KczBvTmZPckxCOXNveXBiRUlpNXZNZGlRMFRpbE91?=
 =?utf-8?B?blBNSjhUZnBtelRXRTRSaTg2TlNxdGF0dEhYOElmOGRodmdlQlpJbHp4ZlVD?=
 =?utf-8?B?N0dTSUVqR2Q4L0s2WXlnWFJiM3IwMERJeER0VkFrSll2b3MxQ08yMDlQektR?=
 =?utf-8?B?NlFkMVFPQ3FJV1c4MXRwTkFzampMWTlhOGlqYkRvOUt5elIwbHVhemxwWXpF?=
 =?utf-8?B?SnlPRjlmbGxTSlZidjFuamZpU3VVY2g5OEZmcS9SaTRDZDlVME9CNjhVeERD?=
 =?utf-8?B?eFVQaHNYMFZkNWVERGtBYVJPY0FXbGo1dFJCeTFGM3VQRDhWczM4N3BZbnlC?=
 =?utf-8?B?TVZ6MWhOY3YvSGcwQ0doUUtwVk5TSWhkMWdDeWxSbTh6QUx3ZDJDVnpybmpS?=
 =?utf-8?B?Tk1OUnQ2eVlBR2NkbWJ1a3NiM2dPeTcxeGxsMWEwcmlFZk1Ka3gycURxdUhT?=
 =?utf-8?B?YVdUeFU2anJHMEZSN0lsQ3Zrc1hya2RIUEdPNUpMV3hicFA1a2JhajZZSWI3?=
 =?utf-8?B?dVBibVJjcDhINlhjT21BM09Ca2lNcmd6N2F2Sk5CbWZkd3FobnN2RVhxWFFz?=
 =?utf-8?B?QnVMalRpRzcweDFNa2lLYWg4QjduVEFyek9DbTV4bDFWWXdBS3RQWVdGNHM2?=
 =?utf-8?B?TFVxOXZFaWJFTmNYSDhmVFd2eHdVN2Y1WGNkYklVWmxnV1drZ1FvNnM0NUha?=
 =?utf-8?B?VkRXUVNqak1xZHJLYjlGQmFxTzR5a1FxcHQzMWN2cVF4dktqa0FiWGFhb3lr?=
 =?utf-8?B?T2xUVzl4SjF4eC9YUFhGOXZhaXFxdXUyZ2VpY293aXhIcFh4ZkxVMmJKcEdh?=
 =?utf-8?B?VmJQQmROT2RxSFlwUEdXTk9qdUR1UCtPRkYwa0FpaGxMV3ZnSWoyT2FCZXBq?=
 =?utf-8?B?K2ZZdkhJdkZGTWx2aVRDa2oxcUQ2V1U0UHBVSXZVOXZzakZyaTFGL0dDV2R0?=
 =?utf-8?B?bXVjR3pnR1Z3LzV0UEI5M09kam5DbFJrU1J3dUdab3doVWZGSisybTVrUlln?=
 =?utf-8?B?SFlGc1JBNlJLU0YvR0E4RkFVVVpZWTNnazlHT2hSOUVVbGxHSEN4K0Ezek5C?=
 =?utf-8?B?bHE3eG40aXNUTHVyWFhjRDNNdmVHSmJiRE1hTEpqR2xQU1NFc2xDUCtwSHBO?=
 =?utf-8?B?emU3NEUwZ0JHQnNOUVAxekVlZG9LRHI2U2xLNjhCNGVnSXZOZG9hS211Uncw?=
 =?utf-8?B?K0R2VisxWFNqZEFEYnRVcmlsTXBCd0xZajFpcWlua2VwUldBRzc2cit0c2lV?=
 =?utf-8?Q?LNlQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R3ptYTZMYzdzNGdmWTRiZUJtNlVoQzNUVC9vU1VYdHRiVUlyM0dzeVR0N0l5?=
 =?utf-8?B?Rkt3UkdBSzkraHNlVUlBZTNxTytqbG5SUzZ2ZkVpN1BDaFdEbWtDc013Z2FY?=
 =?utf-8?B?KysyNEczNVpZbWsrUHBJdTd5TDFDKzBEL0RaQ2JOUEt1SlJHNWt6dlIySGlP?=
 =?utf-8?B?cEJ4M3NPelRSRXNJSGdmZDd0dFVBZjlGcHFWRVdNY3J4WUNzN21YZHA0M0JT?=
 =?utf-8?B?eDA5Mm5tYS81dmQ0QmJFaHZ2d1BMWlBaYm5uV2pDMmsxTXVNWktGMnoxSVM3?=
 =?utf-8?B?b1RuNHJlWm1GbzNhekpveWgrWHl5KzY3eENoQnJDMkl6QlRldHl6UHBSSUMx?=
 =?utf-8?B?V0ZmTlNXRVVvU21saVJRUkU3bXN4Z1FPdFdBS01peEt2a3JkMW9rbjNmOWpi?=
 =?utf-8?B?Wk1PdGttenVrNHV2Tjkzd2MxUzA0SlN2YVJPNkFUU3h3bUNyYjNObjBNZG53?=
 =?utf-8?B?NTFoeFFHbmMrTUZMc1ZsYy9OblRuUG1ldXgzbkw0cmQ2SjY5VFAySko1TkpJ?=
 =?utf-8?B?T2lvb0o2NmpwcUNLZ0lPUUFpZWx1RmpZQ2tJOGdKaENRVWFMQjhIZ291MHhM?=
 =?utf-8?B?eEVFcUhmbDZWcjNuaWpsSUVNU2grTWRQMTRMcWV4S29sUitCdWhSck5BaWdR?=
 =?utf-8?B?WVluTjh2Y0h5OWdYT3QrTnlUNCtIVXhGSHp5aDRRMitPZkZwMVFSTjhWam13?=
 =?utf-8?B?djdBLzREdDQ5aXlhTEVIeXJlckY2bkErMXY4STJVUTA1N2pCcGVnTFBiTnVq?=
 =?utf-8?B?VHFuWWVjL1BwUy9vMFdxdjZMSWFiSytkNTEycFhWUzRibzltVkdiRC9rM1hi?=
 =?utf-8?B?MlhBdmpDRytvWU5nUFQ4bkk4TW9RMjJjcGJpbXNSZUs4MWtlb1crb1BEL0ZS?=
 =?utf-8?B?QzU3U0RrcWhtbTdqNDFxQWhmUWZreVIxVWl5MGN5NEZoZGxRMVppQ0ZDaVVt?=
 =?utf-8?B?akxrNHFLRkExOXlzYkx0d1ZKRXo3dGpsZzRjbk1NWU1tWlQyb1FlU2Y0UDZr?=
 =?utf-8?B?a25xRTlnMm5ZNGdXWERCM1pvMm1VMklaTWxkejBOa3BaL2pqcXlXU0tvTW03?=
 =?utf-8?B?QjJsbGk4L2R0dFlSczNiamFQbDRGbkQrTURhOUJrN2FQeWlXODJ3RnhWa1Ay?=
 =?utf-8?B?M2phbk50MVA0NS9WUWt5L2lCakt2cmhzTnpEM2s1SXJPcTN3NEZCYWhkQis4?=
 =?utf-8?B?RWlINzhDOUoxK0wrY014S29VYTVYWXRLUXptUnNOZThIc3IzazNadzlEN2FH?=
 =?utf-8?B?Ui9BTXFBVG9ZL2dEby9URlZrWnVKMnJLUmtMYVVsSjFJc2krMGYxeUxSSGRv?=
 =?utf-8?B?YmpwbkZ2cklqcjBrc2ROd0pQMmQzY2tCNFJoOWgwS3RHQVF6OGdWQ1JxUThV?=
 =?utf-8?B?azdVMVpoT2tiam4xK3IvbGpJNkJnd2l6Wk8vdkVkWk5nVFJZV2JyZkxqeW9K?=
 =?utf-8?B?aXowZHZYcEVocXBad241eXJPYVd0TlRZOC9QK1g4QXJiOU00ejJvdXB5NG9p?=
 =?utf-8?B?VjVBZDY5ZkdDMnltb1dvUHBmMitVYWtNUVNraGVFYWtWaFlNc0FUNGo5Z2Q5?=
 =?utf-8?B?cFE2UTJ1YjY2V1dTNHhRakR2czRKQjFNNlNpZjNYOHgzUFllOVhkSjlPSUhl?=
 =?utf-8?B?ZHB0dEJvaUY4UzMzekhrZUZrbFdWdldBcU9POUFjaWhZL3pSZ1drVWNtNHU5?=
 =?utf-8?B?M0g1VVNxNVpjMFp2eTFPUElnWFFBbG1aTkVQTmMyNVRjaTgrRHFRQVV4NC9P?=
 =?utf-8?B?YVFGWll6WmRsY0Vnakd2UTNIYjVRdHFlVlN2a2pHNDgyTDJaZ0hYbzljd0py?=
 =?utf-8?B?VHZ6dHF1S01RNWhYditGTGZOaGVCWGl2UHdYWXdqVDIyelNPeW9WNC9wdDNG?=
 =?utf-8?B?UXp6aERpcEJaZFBTOGx6WGdTZTgremhQYk1Xdll2SmpnZ1ZOYzBmM3Y0N1U3?=
 =?utf-8?B?K0g4dnpVRFdHb1A3L2NUS1lnTmF0blFZQTE3VFZCSkcwTmhtZFEvQ3pGOUhF?=
 =?utf-8?B?SE9HeXRXZTdkSlBhazdHenpWK1ZsOUdRbkFQM005WWVKdk5OaFM5akJjNDJ6?=
 =?utf-8?B?VzZKc3pWdkllK05rTkpNYWc5NXhETDdBN3NzQ2RTRXU0Q0RpTjBsZEhEOTNN?=
 =?utf-8?B?MEltL1ZVNktKUUp3TnJydVg2RnAvYzVIOTJlc0JrbW1DZy9Rd29PUUNQbDc3?=
 =?utf-8?B?akZqWkR0UXpEVXUvQlh6bmJtN0V4NThKR1k5N0YyeFZXN0FmaE9ZZmR4MW9U?=
 =?utf-8?B?aTNkbTBtQ0dZWHE5WkJTZFJidDlTamF6UGxZdDhIU0Z5am1jSFNvWjBpakpL?=
 =?utf-8?B?M2hXNXp1aEtEajVIWlhVaDl2YWtOallZWFhVZ2w1U1NRK2p4WmdMUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a5833bd-86ae-4143-34bd-08de705fab58
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 09:08:53.3965
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0Sh8ainI6fMpYosVD6j9QPoFd91O+r7kZZKbHSSgLdYbtTv8+cVNyGK/WTQLYifGOf9+BTWb93pogruz/9xH3w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB6559

On Fri, Feb 20, 2026 at 08:13:58AM +0100, Jan Beulich wrote:
> On 19.02.2026 23:21, Stewart Hildebrand wrote:
> > On 2/10/26 05:55, Jan Beulich wrote:
> >> --- a/xen/drivers/vpci/cap.c
> >> +++ b/xen/drivers/vpci/cap.c
> >> @@ -376,6 +379,20 @@ void vpci_cleanup_capabilities(struct pc
> >>      }
> >>  }
> >>  
> >> +int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
> >> +{
> >> +    if ( !pdev->vpci )
> >> +        return 0;
> >> +
> >> +    vpci_cleanup_capabilities(pdev, true);
> > In the case where pdev->ext_cfg transitions from true to false, it doesn't look
> > like this would actually result in the respective capability->cleanup() hook
> > being called, due to reliance on pci_find_ext_capability().
> 
> Hmm, indeed. Yet that's a problem with vpci_cleanup_capabilities(), not
> with the call here. It may have been merely latent until no later than
> b1543cf5751b ("PCI: don't look for ext-caps when there's no extended cfg
> space"). The cleanup hooks themselves (it's only one right now) then
> also may not access their respective capabilities anymore (nor even just
> try to locate them).

Cleanup hooks should be idempotent, so in principle there should be no
need to check whether the capability is present before attempting to
clean it up.  However cleanup_rebar() does check for the position of
the capability, and the MMCFG having disappeared would prevent
cleanup there.  At least that capability needs to be adjusted to cache
the position in the config space and the number of BARs, so that the
cleanup hook doesn't rely on PCI config space accesses to fetch any of
this.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 09:28:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 09:28:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236953.1539428 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtMob-0000kn-HG; Fri, 20 Feb 2026 09:28:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236953.1539428; Fri, 20 Feb 2026 09:28: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 1vtMob-0000kg-Ce; Fri, 20 Feb 2026 09:28:49 +0000
Received: by outflank-mailman (input) for mailman id 1236953;
 Fri, 20 Feb 2026 09:28: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=uNHm=AY=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vtMoa-0000ka-2g
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 09:28:48 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8d221a6d-0e3e-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 10:28:45 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by SA1PR03MB6339.namprd03.prod.outlook.com (2603:10b6:806:1b6::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.13; Fri, 20 Feb
 2026 09:28:41 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c%4]) with mapi id 15.20.9632.015; Fri, 20 Feb 2026
 09:28: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: 8d221a6d-0e3e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=LTrdWvTFuX+Jt7s2eAjWM120lORCNKsdER56YoArSb8yLaGBesgKJo/v39ziHdYHIIjosuPPfoTj27gWgsvHnQall9Q1XbQ/sa4bwtIuEQ2XZlpcgh/wEIuteuKGL/vyjbW/SZ5sx+H92BRZovsiiHp1Djy6e8iqAcuhh91vOLfPa9ip776FjMvxbKbsj10iOD0sfMTjhVQc5I0KVfApDG1STj1fua6QrP7mXNOZ8EC/Kt/fgVlzR2Tzwzxh9SVb1CwE2ov1O48wKRaCy0P9zXL/NcFDYHdZoCzxUN00cyOuAbhNHZpBjMs/hap8INx/qzmOvr6tVrqjL84ufoS7Fw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=pjPgYlu4Sdq/NiqSWWbU2KUELamqcQiCdR9k1ufeGVQ=;
 b=DxyUgTlOYrYvkWqNUDJEMcBxbGB441OL99UkV8Ngp+ZRyuMCg8w3seFC34o36iTa0hQyOgOf4DSNVTlnRMyTVbqWwWRxk3C/LfWKY0G9QPL/yjjBRqTyYTnWL2ZEIohCY4AIKlzeMAk/mXd2ANEttAQ33r+HQhoyl6o5nbAy5acU0YAuOXREj6JrenYKjZV9XB+LZBwGPPhYdAHjty4HetBhMs4bS/R51oowf2mYJn3bLc/rI3b0KUtfdPiQ/Yx0wHMN4d0OLbTLkPPglE4gmlcr1gHD3ZGM7bJdHSUezU/qDSTNIqTHphK4rPtgynKK3vI0O0zdOTJ1nS/xlCw5lA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=pjPgYlu4Sdq/NiqSWWbU2KUELamqcQiCdR9k1ufeGVQ=;
 b=UoM0geQAUGycdep0rHdkfFilqyeg0Es7YoXUVFYyv6Pf1K6qeIhpeNnnKJAfWgd6XrEr1M8Gb1rGG//lN6odfEQEjwown2nCakA/aF94GPy3YUS8folzI5tzIscSp9Nj3MfrcYj8ZHWEffOdGTI+t3sNfWblaD6rkGFZ9IQBXQk=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 20 Feb 2026 10:28:36 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v4 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aZgpRAXefanISluT@macbook.local>
References: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
X-ClientProxiedBy: MR1P264CA0063.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:3e::30) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|SA1PR03MB6339:EE_
X-MS-Office365-Filtering-Correlation-Id: d3ff5bd9-feff-41a5-092a-08de70626ee0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?dmJiakZuNUFySFN3My9aa1FkMnltN3dsMWFFVVRZMW5BOEE2dnQzZ2M2VHlG?=
 =?utf-8?B?UlJobVRTNWhnZndpZUZXYS9ycE40bU8ralBHaVJ1L05RMTAwejhaSU9JSWpI?=
 =?utf-8?B?WHRFdUY1ZU9iU3BYVFd6aHpMZ0p6NmVxWENJNHIzd054WHVINTVXbFRGZjBC?=
 =?utf-8?B?VjNHd2l1MG1XaUNXdmJ5Tkp6LzBzUUY5dVZGR0M1Rk04TFZ5dkFJM29FdDY1?=
 =?utf-8?B?Y0pGSWdEWmFqKzA2cWpXaFZsazZpa1ZoVVRHUitwREpaZGErTGNsRDhnbmpU?=
 =?utf-8?B?UmZCZVovVnhZVkgwdXJaQmR5d1hLS2FMWkp1d1l3dGNVVzhhYnVzVm5XRkpu?=
 =?utf-8?B?N2VWdmExMkl4WVVLZTJjeXMwVG9yMXNFenNHdEU5RXpTQUJXTkNWUHg5clZN?=
 =?utf-8?B?NTJvOVFRckxsRXlpb0t0TmVBbW45OFVMQzVWNFJ5Uzk3UmR0TXpCbVArdTEy?=
 =?utf-8?B?TW9nMVV3TUgrcnBXc09haUxDNWZyN3Z0bzVLa2QraVJ6TStTMk5vWHd0YlYr?=
 =?utf-8?B?NFB1d1ptQVQxMDlaUXZwcUo3ZXc0YVR2QTkvYWU2TU43VG5rYUhMNHRhMlVB?=
 =?utf-8?B?cUtuOFhEVzZpcjdjdDQzeSs4OXhPQ1BLN3VjZTFTcGJOR2RVZk14VmNEUno5?=
 =?utf-8?B?TXlhWmdHWjBibjVQeWhONVMxaGlqVEFrdko0cXM0ckFiWmdQemxvdGxOZnY1?=
 =?utf-8?B?VFBEZ3plV1R2Y3ppY3BRSElEQWFYV255TUVETUdSNzBqTGRmbEdSYmdhYW40?=
 =?utf-8?B?TkVkMlIyaXdYNW80NnFlRmp1cmx2YTFrb205OW1tRjVNOWVKRE11a1ZUUmRV?=
 =?utf-8?B?eXBGYmJEdFNLOTdxSTNBVndIOFZVWksyY0NxWWFiMHlIbmRPMzVkVmhBS1Fa?=
 =?utf-8?B?b2xVTHoxM0dnYTRzUkdVc2JJMHBLNWVsUUgrbXBqTmlwMys2bmd6MmdHaVc0?=
 =?utf-8?B?eU50UFEvRWtkblJaZS9XTWgxcTdhRTM0cGx5YjRGN2pQelFBUHNHMFhyVWpz?=
 =?utf-8?B?cFpMMng0QjhydDl3WGR5c1JmeHFSelRXWXFaZERyWUY5dzVaOXdJdlBCaGF2?=
 =?utf-8?B?S0tBNEZWWWlpSHgwQlh0aThPZTlvNzAvQWNpSzZEVkVyRlk1dGIrd2hrOHMr?=
 =?utf-8?B?M0t1ai82OFRrMWU5RU1iTVBJT2FBeTM5OGJUSXhlSDBieUQ1bHNhSDAwK1F0?=
 =?utf-8?B?NmxaenpHK3llN1k2YUZ1eWpmZnRaYU9LUnQvazc5b3B1VFVlMWs2alZBWjV5?=
 =?utf-8?B?TGV5bGE4TjJvdlB4QnBENnNTRFNvWkhHVlJlVFhpRHg0di93dGoxeWtPT0g4?=
 =?utf-8?B?c3Zra05xUHVnQU0vL24vNEhuRmM2aXg1bnhvSzRVeVZ2bnNyNHBvWUxsNjVm?=
 =?utf-8?B?RjQxMTE5dW5LNUQrYVBIek85Y2xzRFZVTkNEOHVDd3RGcVZGcHBjcVplSnpn?=
 =?utf-8?B?Yjk3ekpPdFZXelpwLzA0ekFZc2h0dmlpQ21qL2NibGhjK08wWkNLakozSzdG?=
 =?utf-8?B?S2x6SDdzMXN3ZVZxd1FObEpqenlqRDZ2ZDRHSFBCRlVhTkZZYnNaUGUwTXVM?=
 =?utf-8?B?RmVSS0dwaXdnTnFUL3NyS0RQcHdFWVA0c0tmak9waU4xdGdZUnhEN0xkWmJT?=
 =?utf-8?B?ejRGM3ArdmRlTmJWNjhKWEwxa3R5Y1RyQ3o3aEE2M0JxcDlCR010a3lCMDA2?=
 =?utf-8?B?Rk9UUTcraElrWUsrN2dkZXJESStXUDdNVjNaeUl2bUlQeEpRYS9Zei9EUWJ0?=
 =?utf-8?B?cjFTa1g3cVRrd2tuMEh3Q1VOR3dVa2U4SGsvVHFtdXlidW8xV05yeTlUYm1y?=
 =?utf-8?B?ZDNQREtkZHFJVjdITDNBdVgvUnQyaGFTc0JOU2RZV3NPMHJNT2taaFVseEly?=
 =?utf-8?B?VzY4RTRwSUx2eGxuNHJNc2FQYWxCeGdHSHMrTkludGdRNTIrcUdaTkJSbnNh?=
 =?utf-8?B?d1pGZEVHY1U3aU1wZ3J2WDZDY1BzWWV1eE5MazRUODJ6WUdvWnZUajd4elQ5?=
 =?utf-8?B?dHdZSVpGYXRUN240ajhSWVNZczlPUDl1SjIvVXZMQVlsMnpQZDIycG5Hc0JF?=
 =?utf-8?B?S1M1d1dwbEdRRk5zM0VEQ2xoYnQ3ZU5yUmZ3eTlTb3dFVXZ6TGhRQmtJakpK?=
 =?utf-8?Q?93+o=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cm9wTzE5KzhtRzFPTFR1amdpWGNiSmZoS1ZwTFpvcnUwMThTSUg3UjZYRVgy?=
 =?utf-8?B?MmVkTkUxcUd0dzRQekJwV1NlSkVZaVlaTkxjVWFjT0kzM1RHVGJtakwyS05y?=
 =?utf-8?B?Q01mdlBtYlRwN0k5YmVaWjcremVHL0NVcWRZZjlqd0VIRldQRUZiZkd1UVAw?=
 =?utf-8?B?MHpNdW10Q2tVWkoycUpuMTg2MDd3aVBFeGJRS1B0NXowbk5aL3dOeVRhdVFl?=
 =?utf-8?B?cnJmSFVPMWJYeTlheW9vQWVOMFlZWFJDVEgzSEVXWlZpaWdVUkRzVTQyMmpD?=
 =?utf-8?B?M1pPalRoQWFtZFJZMzNvS1FEZERsMDlCY3FyU1dmcGZCd3RCU1NtYkZqMFlB?=
 =?utf-8?B?bmlYbDJaeXFsUXhrQlp1aVhzbzhXN09xUC8wMkduck5VN3BqUlJ6cndGWGJt?=
 =?utf-8?B?TGloak14cWZMZkJacWxXWUFQNzRIbis1SEJpd0NQQU92T3ZpMmcxNHNsa3hQ?=
 =?utf-8?B?eFJhc1VTemo3NUJLUXRwWVdHWER2bmF6Ym0vRG5aUWlwSzFYUDZaOHZ5VE5J?=
 =?utf-8?B?ZTZkeEZLeVFzNEZPVkJIbENKdVZjSjI0MjNZWWZEL3BXb2YyT0E1QlVhS0Nn?=
 =?utf-8?B?WEdFdFV5ak5PeEJjTllsdnFoanA1SmhYdDVROWwyZGRvNStSdk1EdDQxUzZN?=
 =?utf-8?B?RFhxeUFCWnhvUHlNblpVSFh1WmhyR3Y3Y1B4OWw2a0g1LzBRTE5BQUY2SVl2?=
 =?utf-8?B?bC8ycTExajc1TmttSlRDNlBqR1kweDV0ZHpIRUpjTk9rWHJrNWoweXVXM3RC?=
 =?utf-8?B?MnlaYnhWUkZkS2x1Y1hLZlpKN25SRmY2K2Fqc0NuZkVSbUtJM0RJUWZCZVo3?=
 =?utf-8?B?VUZhRDhlMEdQQm5xMEVxSy9LbjlsUit3NGdaMVlaYlZpcnBNeGh0UGtkZTlm?=
 =?utf-8?B?cUxaSGw1SVlPbUxlcllqU25yMHlnVEtQMWIwSFZGVjJmemxHU3I3UE9hT0xP?=
 =?utf-8?B?TkdRUzloL3lySzF1SlNxRDdIZkRJRDE5SWdvSlB3cENITXNLT3VQUnZoRmFR?=
 =?utf-8?B?K3hVUEtCT0REdmV1KzVhYUwzSnArZEpuM2VrNEJUeEhtckR0dHQyR0kyOXA4?=
 =?utf-8?B?Mkw1MHNSTWNRWXBMc0hoYVRlRUdDa3RXVENIMEIrbzgxSWpha0hPZEwrVEJz?=
 =?utf-8?B?UCtqb2N3emwyaEpScGVzVTdlMEFiRXRFcWdxQmhIbVVxS2JzdHQ4eUNjajRC?=
 =?utf-8?B?a24wNWRpdXUvZTFxWll2Y1A0OW1FQm5UOGZlOCtnbGNWQmNRMmQvSkF1MWYw?=
 =?utf-8?B?eHNpd2pWRTBBTWxkWW1oZWt5WGhwS3lRVzBFb2loVjNmQnNQdFk3REpWaWY4?=
 =?utf-8?B?a3puQUJLSTRxR1hnakpVelkwdVhlK0U2RWxNanlFWXkyazlvSDg0TjBVZ1FP?=
 =?utf-8?B?M3Zzb2hDNXptY3JxaGZreGpYSmRhQjhnRkkvUFlPLzR2aVM0UHQ2UnI2Q0R2?=
 =?utf-8?B?cWFtd2R2cWlHZWpQVEs3TWZjU0lFOW5QQ3ZoU3F2akd1WFlPQ3Y0eUw0N2Jh?=
 =?utf-8?B?TGNRYXAvT1dVV0wwdW01RWw5cXBTVmhneG53a05ZQUptSTFQK3VEb1RPckxO?=
 =?utf-8?B?Y2JoTm5BRTJibzV0N2Fidm5NQm05T2thOWFpbGs3Qk1hSHhVUTNRbGFCL0wy?=
 =?utf-8?B?Z3VRQjdyZzVqVWlJSjhKZ21pVWxhUVI2R2lDK1lxbS9wVjBOeDg2UGNqMUFT?=
 =?utf-8?B?cE9tMk51TFN2K00zbUIzanBnVTVEbldkNE1wWi9UNTF6Q2VqcjNsdGh6YWJN?=
 =?utf-8?B?OGNuMnpOQjUzcVBWU0JyaU1xWTlwM0pQVGVIdDFzd2gxR05URG5QUE1SMWtF?=
 =?utf-8?B?emdCSkVnM3BRSENDNE1SVmg0STRkNGs5OVgvTW1xWDFLUE5OZ3JTaHFBbk4y?=
 =?utf-8?B?UzVvcUc0eHdkbktOZ0tGMlZQNkVHTkg5ODJFZFRIWWdidU81QlFuektHekRK?=
 =?utf-8?B?bldGWUNiR3ErTHZ6VDcxZmFXa3NxOThUVzRESjFNZ0hBdC81QnlrdVZyVmVj?=
 =?utf-8?B?RUtkMHdBU1Voa0w4N0M2MjNIbUppTjRrMkFjNEx5OTMwRFR3NG9SbjVkWmhq?=
 =?utf-8?B?L0Nuc0x2MTFLSlRsZlM4WWFiVmJmdGk2V0VMbG81NGxwUmNIcEtFSFZBSStk?=
 =?utf-8?B?Ukp3aEZxV0t4UXpidnd5c2wxZ05zZWJ2aGZKNFlUODVVeTFsVzFQa2liMkJZ?=
 =?utf-8?B?VjBYM0FrL3RQOTE4TTY3L1QwZzNEOWZyNU1pZHcwenhsL2VoZFI4c3lTdGR0?=
 =?utf-8?B?Z09kQkRiNmtBTm5DR1FUY3BReWh4UzBrR1I0U0xEbTR2ZGUyZmNQbEd6eUkw?=
 =?utf-8?B?OGcwRkJYaXQ0YURnbTdJSnBBNVFhVVdHZVhOOTBzaGtuV2RqQnYrdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d3ff5bd9-feff-41a5-092a-08de70626ee0
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 09:28:40.5559
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /lbEojz8jMZo0kdzqgEaRdcuWDZz4C/JlHZSNGwgTkuma5lxMV5CfB5oEZwy+dxBAapjwJ4Vu71LowT74CkBpQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6339

On Tue, Feb 10, 2026 at 11:55:34AM +0100, Jan Beulich wrote:
> When Dom0 informs us about MMCFG usability, this may change whether
> extended capabilities are available (accessible) for devices. Zap what
> might be on record, and re-initialize things.
> 
> No synchronization is added for the case where devices may already be in
> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> vpci_reinit_ext_capabilities()'es return value isn't checked, as it
> doesn't feel quite right to fail the hypercall because of this. At the
> same time it also doesn't feel quite right to have the function return
> "void". Thoughts?

For the non hardwware domain case we could deassign the device from
the domain?

And print a warning message for both cases.

> ---
> v4: Make sure ->cleanup() and ->init() are invoked.
> v3: New.
> 
> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -8,6 +8,8 @@
>  #include <xen/guest_access.h>
>  #include <xen/iocap.h>
>  #include <xen/serial.h>
> +#include <xen/vpci.h>
> +
>  #include <asm/current.h>
>  #include <asm/io_apic.h>
>  #include <asm/msi.h>
> @@ -169,7 +171,10 @@ int cf_check physdev_check_pci_extcfg(st
>  
>      ASSERT(pdev->seg == info->segment);
>      if ( pdev->bus >= info->start_bus && pdev->bus <= info->end_bus )
> +    {
>          pci_check_extcfg(pdev);
> +        vpci_reinit_ext_capabilities(pdev);
> +    }
>  
>      return 0;
>  }
> --- a/xen/drivers/vpci/cap.c
> +++ b/xen/drivers/vpci/cap.c
> @@ -285,13 +285,16 @@ static int vpci_init_ext_capability_list
>      return 0;
>  }
>  
> -int vpci_init_capabilities(struct pci_dev *pdev)
> +int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only)
>  {
>      int rc;
>  
> -    rc = vpci_init_capability_list(pdev);
> -    if ( rc )
> -        return rc;
> +    if ( !ext_only )
> +    {
> +        rc = vpci_init_capability_list(pdev);
> +        if ( rc )
> +            return rc;
> +    }
>  
>      rc = vpci_init_ext_capability_list(pdev);
>      if ( rc )
> @@ -305,7 +308,7 @@ int vpci_init_capabilities(struct pci_de
>          unsigned int pos = 0;
>  
>          if ( !is_ext )
> -            pos = pci_find_cap_offset(pdev->sbdf, cap);
> +            pos = !ext_only ? pci_find_cap_offset(pdev->sbdf, cap) : 0;
>          else if ( is_hardware_domain(pdev->domain) )
>              pos = pci_find_ext_capability(pdev, cap);
>  
> @@ -349,7 +352,7 @@ int vpci_init_capabilities(struct pci_de
>      return 0;
>  }
>  
> -void vpci_cleanup_capabilities(struct pci_dev *pdev)
> +void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
>  {
>      for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
>      {
> @@ -361,7 +364,7 @@ void vpci_cleanup_capabilities(struct pc
>              continue;
>  
>          if ( !capability->is_ext )
> -            pos = pci_find_cap_offset(pdev->sbdf, cap);
> +            pos = !ext_only ? pci_find_cap_offset(pdev->sbdf, cap) : 0;
>          else if ( is_hardware_domain(pdev->domain) )
>              pos = pci_find_ext_capability(pdev, cap);
>          if ( pos )
> @@ -376,6 +379,20 @@ void vpci_cleanup_capabilities(struct pc
>      }
>  }
>  
> +int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
> +{
> +    if ( !pdev->vpci )
> +        return 0;
> +
> +    vpci_cleanup_capabilities(pdev, true);
> +
> +    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
> +                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
> +        ASSERT_UNREACHABLE();
> +
> +    return vpci_init_capabilities(pdev, true);

I wonder here, in the context here, where the device is already
assigned to a domain you likely need to take the vPCI lock to safely
perform (parts of?) the cleanup and reinit.  Otherwise you could free
capability data while it's being accessed by the handlers.

The only current extended capability (reBAR) doesn't have any internal
state to free on cleanup, so it's all safe.  But a cleanup like the
MSI(-X) ones would be racy, as they free the structure without holding
the vPCI lock.  I think we need to be careful, and possibly adjust the
cleanup functions so they can tolerate cleanup with possible
concurrent accesses.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 10:05:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 10:05:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236971.1539446 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtNOD-0006Ep-9j; Fri, 20 Feb 2026 10:05:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236971.1539446; Fri, 20 Feb 2026 10: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 1vtNOD-0006Ei-4l; Fri, 20 Feb 2026 10:05:37 +0000
Received: by outflank-mailman (input) for mailman id 1236971;
 Fri, 20 Feb 2026 10: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=uNHm=AY=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vtNOC-0006Ec-0s
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 10:05:36 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b2b16d52-0e43-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 11:05:35 +0100 (CET)
Received: from BY1PR03MB7875.namprd03.prod.outlook.com (2603:10b6:a03:5b1::10)
 by DS7PR03MB5607.namprd03.prod.outlook.com (2603:10b6:5:2ce::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.15; Fri, 20 Feb
 2026 10:05:31 +0000
Received: from BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c]) by BY1PR03MB7875.namprd03.prod.outlook.com
 ([fe80::20d8:6571:d4aa:166c%4]) with mapi id 15.20.9632.015; Fri, 20 Feb 2026
 10: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: b2b16d52-0e43-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RNJWQ3Np4K/cgpJQuOrW4wuKGGzELItkOx05Yr81Upm9CPrfZ0NNf2T5TCAPT44As0r5KP5VP7MHUXHW3L+gaMJic7iIhlmhw9DmYwY8X5xH8z/4FFA1Erto5ctmJhp79s0mpSFBRmiZNS2Um8pjQGj34gqaugj66uZKJ5Sh3NVdCMpLm+mNTeX+7GJfSWGPn784oKEfDOMw6sFE1wltghfF6chjX8YDsQAqvVgYiptxtiIFh/147xMK00sI3q0hero9rUqTD9KuTfnN39AiiAv5ctGpUToMS5oRQfdPjWR/lhlp7oJX8+x0BjcfPLUVmN1cnLvC2IwGEuKGJbu4iA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WyAS27eQNRwQ8J599vmW4Ox6jx0UwNKLDJ6E1izmSqo=;
 b=MDAJVTDyYFy55KZ1Sqkmup4kf2Ye7gD73SIsAtHQxQaUi0iG0p3dYvPTgVn41nm2Xi30fUhH+gkUrxrEyGUFmvPwplJcwP9K1ObbScoRd9GISQIVD2AEylQMJRoSROpCTUH21rM1kzfBvTTWKQ32jxSmScLNQmjWSfBPbprUf/+x/wa2mRqgETN4hD00MoBS8G4uDibDrOjY/Hgj1vtc8p3vzb+7WlJGRWVW/CcKRa/XyKM2FPOiOhpewQCHJ7U3FFOTw8QNqkBFwX6/Y+Izbfsaezuw1iI2+mTpi1Avnt5HnkCVwKBAoxYk9BrDXjmm7BUZ89ScH6uN3vewa/RQFA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=WyAS27eQNRwQ8J599vmW4Ox6jx0UwNKLDJ6E1izmSqo=;
 b=HX+mXWNfMBEijVZGRDk3L52/uCDtmpezH8jDNLorOH6FBPx+qGLd4vY7KbrzSTYvYh+BuI9od1mjavHQavlgPFG9XtSNyNdFVlXd+CS2zv33yqNz5Ipnh3tVQSOZ4bbW9rqraaC7Aw/ottxVo143cXtgcNuC3K4LcWX3mCmzhks=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: [PATCH] x86/p2m: clarify foreign map handling in p2m_entry_modify()
Date: Fri, 20 Feb 2026 11:05:09 +0100
Message-ID: <20260220100509.49700-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0038.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:46::7) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7875:EE_|DS7PR03MB5607:EE_
X-MS-Office365-Filtering-Correlation-Id: 4e2d8e54-e516-4715-79c8-08de706794ae
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UVc1TTVWRSs2WVJhOU5QaTk3NnhKWmtLRmdlMDdTa1N0VlhJVElqbFNlRkgw?=
 =?utf-8?B?aXVES2JUcGJCbXVOa0dGSUc0cXNiZHFPdHRTSWFudkkxakFGcU5udUZZTEhD?=
 =?utf-8?B?cGNDWXdMbzIwVmNuTEZzZlpNVmhZWnhZamtUU3VyTktjaXk3eWVDN2JVWU5S?=
 =?utf-8?B?aTVMbTQ4UE5QQWdybkdHL2JLeHREdGxoRHUyREFZQWNySTgvVDFoR0ZiUHlN?=
 =?utf-8?B?U3FJYWZvR3ZrWkJSYzh5T3JSZENGenFWTE9tSkdRdHlSQTByamtTRjlxMVlx?=
 =?utf-8?B?R1VxL0pCamxlUENDU3Y0YU1KaGVmOXZsSHIvOXNzMm9HbVFEV21qdis2SnRq?=
 =?utf-8?B?NEgxVk9zaHQyN1ZZRUNoeFB0Tk8weno2RVJGdmROU3M5bGM4UVg4SnVSbEw4?=
 =?utf-8?B?K0NJSzNYdlJwNGUrU1NPR05oOW1FR2NLL2x3amNCTGtXUEpSNWhrMFlhaWFD?=
 =?utf-8?B?eXNHWFhnanZ2Zk80dGUvbjNFaVB6c2xBelpaSkd5dk9NM2NjVWxqaVkveVFF?=
 =?utf-8?B?aWxCcnU5b01Vd0NudjdlTDhWQXIvSGQwRXRrRTc3MElaNmVaOTZ2WWdRY1Ra?=
 =?utf-8?B?emExWHJ3WlpKcy91UEZ6cUIxb3JpdU5BZXB4OVJnb0tCY2FVQXEvcHNtQ1Bi?=
 =?utf-8?B?NXo4RnA3QmNFbS84cU9ITWZlSUcwUXZjT0lrVUc4YjkzT1kyaGZzQUp6dGhk?=
 =?utf-8?B?MlVaUTZDaGFmZzRuTXhldFlOY3VselBTODA5NlZUVVlENEpEcDJOOEpabEdJ?=
 =?utf-8?B?VU9CdWYrcUZUVkhCd2ZKZjZrcnZKUHRZV2xwZlc4QVNBMWFtSTRJVjZJaTZC?=
 =?utf-8?B?VEVja1RBYWNRdC9MblRtM1JrZ1ZuWFg3U1FpaU1WRGUreFdLQWJqeW0zNDRn?=
 =?utf-8?B?aENvcFByZzdyNXkxWHpnWUxMNDFPUSsveHVoWWtEMWhrWlMyNzZZWHpIcWRM?=
 =?utf-8?B?UFZLajdGQ3NnNDh3Z3F0VzdoSlJOMmFnRFlRZVZlSEVCN3JnN0xHYTJHcWZq?=
 =?utf-8?B?Z3kyVVA2ZEJPTDFOYm1teXBzUU5lQkRsRmtsRERvdVNEZVN0dnBNSzFQY21Q?=
 =?utf-8?B?dDdTL2dyYVNndjZJYXlaUmlhQm4rK2pUNXhxM1I5VThJZlRsNHZGMzJkOXFo?=
 =?utf-8?B?SmhIZlZRMXZtQjhnV1F6OEQxKzZweUNSYlE4dm5kM004NzYrVEt6NEpnb2JR?=
 =?utf-8?B?U0dwdEtzc0JoOEtOU2xxUjlWcW9nVUtjWk5tOExYejJqb0FHdVpjOEQzK1Az?=
 =?utf-8?B?YVVYV0JKZzBIMW9qNTBSQjdNWVIrcjhTa3ZTd2hsVHo3MDFnMGJ3QzlRNTRV?=
 =?utf-8?B?VjhPbEtZTmFLVDN0RUFTVXJjc25QU2loV2FDNnVmTTRpeVkwc3M5RGo1RTNP?=
 =?utf-8?B?OVNwK1hQbGtsQXFPNDBhVTNsMFNnOS9qSWZKYTZ6Z1VISXUvdkNMR3lleGdM?=
 =?utf-8?B?cW1nQ2xUUitkVk5EdlN5YXJpMis2NlpYb0RMQ3FPTWswYlh5ZmpHdnRYTlFu?=
 =?utf-8?B?Mm5DdmtidEJvL1g1Y1U4Y1YvQ1FCZjRxcEc3bmRhSmJBNDJsenFhZHlIY2xU?=
 =?utf-8?B?S0lkaEQvOHZkMkIyUWpUcU5SeldQOS81OE9yUzFGYkd5dWFlRWU4OW5QRUxW?=
 =?utf-8?B?aXQrMVQzZ0ZRS0J2UXdCOVdwaHJYaFQxaU5TTlliZGs0UEtTbXNJd2JWVHNy?=
 =?utf-8?B?QVdVKzJ6eVUzRjJ6K0dWM3FrNnpPNjYxbHU0c1dXYllGLzI0aHg2aCtIVEtt?=
 =?utf-8?B?Mm1renMzeG1hZFQrZzQvMkR2QmxLNnY3ZzBTcGdpTCtEYjFialJpWVNPQ1F1?=
 =?utf-8?B?dXFTOVEzc3NKa3ZLSGJCdStwVENoZ2QzcVJyU2dDZUYwczUwM000dzVwbGRu?=
 =?utf-8?B?VGVZN2tDbWg1TVZVMWtuNHNUSnl0bEY0elpxNXhtYlpZeERhWXB5K1h3QjRH?=
 =?utf-8?B?T1NYa0pEWkpwUzgrdU8xbnhORW1STzRQdFl6UXdlWTNzVkVSMkplNWkxOHNH?=
 =?utf-8?B?QzFXaFliYzRaeUx6YThjL0FTZWdhdlFpUllydGltcXZ2ZVFOQWNhOStOd0Zt?=
 =?utf-8?B?RC9kMkg4UDJwMVRrdS9NYWNKMGRrb0tMcHd1ZHFNMnVDeFRQT2JFeEQ2UHE1?=
 =?utf-8?Q?Qaks=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7875.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U0JWekpYZ1VRcHNQbkJ1TVRWRjN1czQ5MlppNXI5YkJ0Q3VTUE55cHdzeGRJ?=
 =?utf-8?B?Z2xZYi9PaUtSZklwWHRLY3RyeEd6bGJ1RUVIVTNYQ0VibzZuUFF6TkJIdms4?=
 =?utf-8?B?dWtQRWZmcU5CZnVSdWtEK1cxbGxpUDNwU0NXNENYaGxxc0pzaGNld3ZhQ3Rp?=
 =?utf-8?B?SGQzYTNzUzVlVmlXK201MFdtVmI2YUkvanAyZVN2RXAvc0RTbE1ESzgza2lN?=
 =?utf-8?B?RkxLSzRSQUZyMmFmR2hQM0MzZThZb1NkL3JJUDJSTTFJc2tBQ29uZGNRZWhZ?=
 =?utf-8?B?bXBDL0hNM3RDclZJWGc4Sk5YUCsreVBWanZKNzQxZDlUczRGTXlPZHNqWU5B?=
 =?utf-8?B?NkNzVXVBazJoYXJkR1hGd1pHVGp4TXhxQTc0Ty9zeUJzOE5oUU1kSkhxQWpV?=
 =?utf-8?B?bm5Mb2llZ1BPdUpEN2wrZlQ4anVsam1WOEViSkNKVVRnczd1VWV4eW1nOVl1?=
 =?utf-8?B?WGJ3VENHWDZzUDFQdlplR2xHSXdlWkUwdHpwMlcrbk9TMmJqU1lzZzFGSzF4?=
 =?utf-8?B?WS9XOVhkTnczNHlTWDVXNFh1bFZESG9oVHBpemVLajBkWDJ0cnA4NmlEcXg4?=
 =?utf-8?B?eU5BbUt1RUxyQWZRc0RUNnZHay9kbFhySXBVeEhUQ3h1bC9jVVBaMkcyOUpp?=
 =?utf-8?B?VW8wdTIzR0lOYjBNVlZPVnlGZEFEZHNESUQ5Y2VTRy9FMHcyZmJzbTV5bnVI?=
 =?utf-8?B?bDhzbmFoQ25UeE9GUWZBYUhrdHhFRnZEOGNXWEx0N0FpNDduQmdmYW42YlBy?=
 =?utf-8?B?SHFDVE9YWGF6MytmaXNybXRaWUY4SE9vK3ZEazhDMTRWYXYrK0xiV2tKb2Uv?=
 =?utf-8?B?MnpXU2VLazNuejZVdXR4RGgvZ0loWkdUdi9KTk5VdkFoVmQ2UE9jd2tiM1Zi?=
 =?utf-8?B?aWJHSVhUQ2pma0VDb0pKUlBxaEozSEFmbVd5ZzcyTisyVjBEbWJYWElFaCtT?=
 =?utf-8?B?Z0xmUjF5MHhxNFJzcTdzMFd3OU1ZOU1ydFErVFFMZ083cm5EZUh2STZvU09G?=
 =?utf-8?B?S0NYcW04alNxVVowOFN5VU84ZiszamdQMDl0SDZIVGVYbW1XYnZIWUtEakZT?=
 =?utf-8?B?YmdQNkZBZ2FuNE51WHN4T1dwblpxYmZiNC9vRHExaWhrYU9FMlFSdnhheGpj?=
 =?utf-8?B?MlJrb3BQTDNLV0xUZnU0NzZ5SXA0dFdRa0dZYnNXTmZtanJTbVVNajRyam1s?=
 =?utf-8?B?RkNvbFV3UmdPNkxCN1lHdGdZK05pRUswWk5uL2FVT2tKVW1wbDQ0aldGMmYy?=
 =?utf-8?B?RmxJL003QkdzZkNWUzRXcEJzZjBCUktzVWZ1OUxseFlmYU8zeS95QVBwVG1n?=
 =?utf-8?B?Mnpsa0J4UVd6dHRNNXpkYlprQjY2SDYvMTh0UDI1RFNsUU1ia24rWjIrK0NW?=
 =?utf-8?B?VXF3OThnaUo0Witnd21EbkxqZDVXcU1oa0ZYMGFkandNNks5bnM0TkxUYjkv?=
 =?utf-8?B?N0w0cVErQnB1SzdtUmk3b3B6NURYYjJNTlowQTNuTWlHVzYrNDNOc1czdkM3?=
 =?utf-8?B?c0lmUXIrU3pqdzh1eW5ianVnbjIwVy9uRy9jQXZYeldpK0JwNElvOUlVVm1w?=
 =?utf-8?B?VHlkc0RKdHkyZUVYU05mRHppNmpRYzJSbmhqblY1M1JBUnp3M2lrdm5RZ3da?=
 =?utf-8?B?UkpsUmt2ZVlCQ001MzF6YXd3Z1lSUS9aaXFVckFyQmFpckJaV2hJWHBZNTlN?=
 =?utf-8?B?QWk3RzVCRHl1WitSbThVM2VpQVZ5VUVvbm11MkxGM2tiZHYzMlhIbzhIYnhi?=
 =?utf-8?B?QUgzSkdRL2ZHem9LbUZvanh1cGYyWHhtZ1VKVEV2SmxSQ2w0K21VMExMS1ZL?=
 =?utf-8?B?SkxvbWlDZW9GQXMyQThTaXhtZ0J3MHNSN3U4eUU5cHNjZHAzVVllRTB6cCts?=
 =?utf-8?B?dE5DK0RxVGFqdFdJOXl1MnE0VVZXU3BTQlAwamZ4ZjBQaFNINFhjdGhkRmQ2?=
 =?utf-8?B?c3FWWkVLRlJJRjQ2ME0xVmtEczZJRjJDWFRYRzFQK3pDUEo2cFhPd0ViRVZq?=
 =?utf-8?B?aDlOUXhlMjVoNG1QQmJ0TDJXY1ZHTzVZWWkvdUZSRG9vbk9uZ21ORThwc0Na?=
 =?utf-8?B?elhUckhRaVNGa1ljZUJLUnphY0tVNFo3Sk9pS0plZmFoYWV0VXEzVFBLUDVF?=
 =?utf-8?B?Yis2RnR0L2UyY08xT2NJcUVjamtlL2pFS29UU3pQcjNrbTFCV21IZFhEc0V1?=
 =?utf-8?B?cXllSFZIQ2NrMEpLeWJLZUdUVnZISW91eVl4Vy9udGk3a05kVitESXA4NEpJ?=
 =?utf-8?B?T01WdnFMd3FvdWtmQ3JFbGEwZ0JmVW1wTkdXMVVuWGZjVkd4QmlXZW1JcU41?=
 =?utf-8?B?VFJ1czNGdEpweGhTek1JdVk1R3dTb3o0RHRvQmlQWVRMTVVEaXpMQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e2d8e54-e516-4715-79c8-08de706794ae
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 10:05:31.3647
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: R7p7ULqo8cLWaIrcFbUm+xNEF41pBQnFgAJjKD4DboY84WtaOUaUWaoBgEJn7p1HPRDzkjXbyvYhLuT2zzYe5w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5607

Introduce an extra check and comment to ensure the outer caller has
possibly taken an extra reference on the foreign page that's about to be
removed from the p2m.  Otherwise the put_page() in p2m_entry_modify() won't
be safe to do ahead of the entry being removed form the p2m and any cached
states purged.

While there also replace the error codes for unreachable paths to use
EILSEQ.

No functional change intended.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/arch/x86/include/asm/p2m.h | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index ef6b02ff0bb6..1ceb248b9da6 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -1066,7 +1066,7 @@ static inline int p2m_entry_modify(struct p2m_domain *p2m, p2m_type_t nt,
         if ( !mfn_valid(nfn) || p2m != p2m_get_hostp2m(p2m->domain) )
         {
             ASSERT_UNREACHABLE();
-            return -EINVAL;
+            return -EILSEQ;
         }
 
         if ( !page_get_owner_and_reference(mfn_to_page(nfn)) )
@@ -1088,14 +1088,26 @@ static inline int p2m_entry_modify(struct p2m_domain *p2m, p2m_type_t nt,
         break;
 
     case p2m_map_foreign:
-        if ( !mfn_valid(ofn) || p2m != p2m_get_hostp2m(p2m->domain) )
+    {
+        struct page_info *pg = mfn_valid(ofn) ? mfn_to_page(ofn) : NULL;
+        unsigned long ci = pg ? ACCESS_ONCE(pg->count_info) : 0;
+
+        if ( !pg || p2m != p2m_get_hostp2m(p2m->domain) ||
+             /*
+              * Rely on the caller also holding a reference to the page, so
+              * that the put_page() below doesn't cause the page to be
+              * freed, as it still has to be removed from the p2m.
+              */
+             (ci & PGC_count_mask) <= (ci & PGC_allocated ? 2 : 1) ||
+             !p2m->nr_foreign )
         {
             ASSERT_UNREACHABLE();
-            return -EINVAL;
+            return -EILSEQ;
         }
-        put_page(mfn_to_page(ofn));
+        put_page(pg);
         p2m->nr_foreign--;
         break;
+    }
 
     default:
         break;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 10:10:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 10:10:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236981.1539454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtNTJ-0007wq-SC; Fri, 20 Feb 2026 10:10:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236981.1539454; Fri, 20 Feb 2026 10:10:53 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtNTJ-0007wj-Pk; Fri, 20 Feb 2026 10:10:53 +0000
Received: by outflank-mailman (input) for mailman id 1236981;
 Fri, 20 Feb 2026 10: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=8OLq=AY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vtNTI-0007wd-V8
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 10:10:53 +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 6e7c9d63-0e44-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 11:10:50 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfhigh.phl.internal (Postfix) with ESMTP id E328A14001B5;
 Fri, 20 Feb 2026 05:10:48 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-06.internal (MEProxy); Fri, 20 Feb 2026 05:10:48 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 20 Feb 2026 05:10:47 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6e7c9d63-0e44-11f1-b164-2bf370ae4941
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=1771582248;
	 x=1771668648; bh=mBa/rxqyGOz8z4KUxwUkeM95z2yAE/9O9KfIU3FMucg=; b=
	bXdOSH/ITOMiaI8jjgj+Mkwa/D+hnZo6qroPQbTUgJC2sAgDLhRG3sEaNQE7Oh5Q
	1pajw29Zv4twGcqwySBakeA5dEPcEhngd8WYy+WQzPmEfr6i58VjoVipda1OIdyh
	0nOSpNXxmMXRwNKScep0t1ljYAeriNE9py41kd46h2InDBTNgeI+3NYOH5uWc1nt
	fHuuxkA8FXN+rKotfSQ3BmaXrytVMHFaj2D2qUSJaaI3B42ikenUCAJholZnmlYC
	Btp88z9BKu53sDlfxcXWwhLhAKqvLXT88cUbmGiLnpaYzA8du/vYCGQuHphZ33N/
	L1go6ttJDfLbhUlav45fJw==
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=
	1771582248; x=1771668648; bh=mBa/rxqyGOz8z4KUxwUkeM95z2yAE/9O9Kf
	IU3FMucg=; b=s26cuJ/bW5Zj1PEdGxbFzRVAqYoYKhpO1ugO3C4Bi+GsQUmUndW
	UKKC5Vqz2OIH0uV1v+6Abvns0v1pCP8ItxPyJngUbaJLZ8dFWcZ8/iSDdNWTAuxY
	WoYnk5v53Ul1GYpWZye44PhY7D5E5g9R3nZJkYp6kNe1P5xd5HSlxcP2ySLCd1lK
	yi2CPJe2ZmjjcbDdGKhp04H9JhiOa1CSXxCM1GKzSpThLD6chmAVxOi6v13STHvn
	g4ekeKWf1JQj4ES02HVFWAttV6+7AicZ2OwaMDbtevfGiDRXX4HRZ5zNozvz3Sml
	e1YpUOZRg4H/jPJsUx2vMot/qclCcHiBv8A==
X-ME-Sender: <xms:KDOYaZnAuzvvDMLB4WnVGJfr_B6yf6TPW6dctqJAtAle3upQ7DOWNw>
    <xme:KDOYacRu2Aqwq2dW83zTK9x0hYfSPnWuizgyslNiaM03nfPs257Jk_hBR2KAHO2Qe
    HuBduzZ0aJtcELlPuzJqXcT1d42UGT1s4TTJ19OAc3i4TpoOA>
X-ME-Received: <xmr:KDOYadBJ2VpRgZsQagGT-WFFTZ4fN8OH4YOWhnsKJTU9B2pT-2_PxFMBCUHG4IBrNZBewYpO9sXu8vCsItnXuu3L55Vet4r0PrQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvvdekudehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtroertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdetvdfh
    kedutedvleffgeeutdektefhtefhfffhfeetgefhieegledvtddtkedtnecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpd
    hrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtghtrdho
    rhhg
X-ME-Proxy: <xmx:KDOYaTTRXzueHeudwtaRT5062kF78C27lp-m8BrEVwDQQV04MnU95g>
    <xmx:KDOYabpGEry-v-BhUrpDfvhcT5C0TIKZzXTclVR52UAmQicvOI2Odw>
    <xmx:KDOYaVy6XAlfQIErs1W-kxq1YxCX_6w0WIQiUdN7dEMxoppmWwM2Og>
    <xmx:KDOYaQILjU4CbZFb_-l3KHZdnmQzNBhOL5VKNL3EGFBjOCmvS_FBxw>
    <xmx:KDOYaZieFgVXyG8WFH3yjOLLZl7UU521W2UI3OB76Z77uV5wos1syl3q>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 20 Feb 2026 11:10:46 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] tools: specify C standard explicitly
Message-ID: <aZgzJkTdGtHdKwHd@mail-itl>
References: <20260220004344.1980775-1-marmarek@invisiblethingslab.com>
 <aZexPYiQ5UF6t5uz@mail-itl>
 <1415f4df-8191-4e94-a60a-9b7f0f2599be@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="HKXlsan698c3NGvQ"
Content-Disposition: inline
In-Reply-To: <1415f4df-8191-4e94-a60a-9b7f0f2599be@suse.com>


--HKXlsan698c3NGvQ
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 20 Feb 2026 11:10:46 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] tools: specify C standard explicitly

On Fri, Feb 20, 2026 at 08:34:08AM +0100, Jan Beulich wrote:
> Is it possible that it's not so much the compiler, but glibc, which is the
> problem here?

Indeed, that's glibc. I tested it starting with CI container and updated
packages one by one - it's about glic 2.42 -> 2.43.

> > So, I guess iterate on v1?
>=20
> Perhaps. As per above it first needs to become clear where the issue is
> actually coming from. Otoh making the code suitably C23-const-correct will
> want to happen at some point anyway, I suppose.

I'll sent v3 with remarks from your review on v1 applied.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmYMyYACgkQ24/THMrX
1yzdWgf8Cpg67921Ysro8oub0wobDe5cTBa0vWOWo9hBZlahhRbvyO5O9jtH/Ftj
Syhl/Y2XwiIp20Qn3Qxd5v0xmr0nG2bSDmK9jKhbNI8NGO2nxk3TT5bPaCfhGC6v
BgUChZR2xrdbmh/arTk65jMBxl5CrHvslEdyZl39b7hV0+LwxLMbG/MZfQC4Uoqf
3KNNRuVlsU/dPNz/NXfekw4TFWSFmCWIc1bXT8Iv7XZ1lEMmiuheqb2bM4ohDuRr
8cMHkxN457QyG7BVyOArOEKP4/+IEYdYAY5XWDDWZtUETG5b3t+zjZYAFTjBHo5v
9C/DBOB6FBlt0MFh1xjnzi2B59WT3A==
=iqBY
-----END PGP SIGNATURE-----

--HKXlsan698c3NGvQ--


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 10:21:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 10:21:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1236993.1539465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtNd3-0001Jl-PZ; Fri, 20 Feb 2026 10:20:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1236993.1539465; Fri, 20 Feb 2026 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 1vtNd3-0001Je-Mn; Fri, 20 Feb 2026 10:20:57 +0000
Received: by outflank-mailman (input) for mailman id 1236993;
 Fri, 20 Feb 2026 10:20: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=S1uT=AY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vtNd2-0001JW-KC
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 10:20:56 +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 d68e6bed-0e45-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 11:20:54 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-4359108fd24so1164870f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 02:20:54 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a74704sm58880944f8f.16.2026.02.20.02.20.52
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 20 Feb 2026 02:20:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d68e6bed-0e45-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771582853; x=1772187653; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=McoxHz2HBEyEzNFLtGp4vY7tQE4z4XUs6CTdw6m7ejo=;
        b=F0l+QgBZEXKRyiPpejyBVUD6PEF4XnHh2qLIrNg6EXKKcVpdi6ng73zeTDIbh0XeqQ
         YCmegUYgyxZwAMphaC50bUN1TvydpO6JeR/6cvNKPco6wmHVCY93RXVX3PNOLo74vTvI
         Mq+2rvl5QTNdTzLdFM6VW4NGw2qVhGSuZHLc/6Zf6C8ykXoscxK6B6nr1MsruRV/bv4m
         HC/0+BjaP7UQF08uv2hSoH1phazg22CttzuFhhtlLk7jGhUrZHuNEPFPCHuSNSpcar/z
         sMZBSBN5pEEq4fnk+h4H6vQ9JkLbKaAAKmSbwpo/VmQ/PQidCncUUKAo3PLv84MFoZ9q
         9tgQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771582853; x=1772187653;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=McoxHz2HBEyEzNFLtGp4vY7tQE4z4XUs6CTdw6m7ejo=;
        b=Bz2i2kV9sb80KXiQRqAX37CTnxiufXdtnT+ZFIhDui9nxO3qIrQCcvUaVYYhmTInuF
         vELV32Yqk6UBSzSF5W1rpXPMAhAOBb9y4q62NXML4U4bP18yPQTGjXDkxdSc79FezzZn
         rIQKzZAjZZBAOVckmzPpJkswzP4KhhkBaWtUIPjLDPUjdfyHtQkM2VqI/dydjNagFlfz
         hLfECCQApTA6hijjG8fhMLq+M0EAXUilJS4AsER+V8hH8qcQncBqvU0SQTGJy+Dioboh
         tsJGsB3h12+R0+mOjdBh1ynVnKUnlwDCjWMvre/+EHUu9Wz/GZaHDl1YubVN7Q33KPZk
         OPyA==
X-Gm-Message-State: AOJu0YxYraacFOWv6nUUwwuB3QjETowEohYZTd5YHZnIoOyb1KRc2dys
	BfWsBfJrcEw7tp4LWoKu6fcujc+InoxhWo2s0xXeZ0v0gtRz7sARdE0K+fRUW8kVDQ==
X-Gm-Gg: AZuq6aJNRAvcHBjoQsFjBZ/7zHbXZ+byeXDtF8POfq4n6OeZqSx6KLRNMNayEsU/OR3
	YefT46YiBT/L04ghO+MSQGERvGRSomNTh4UEtlEag+sSZvPikDnRV6GzTTNp5lPSsNzLPmithCQ
	5TAEGNLuOjl7WA/7M4f7Sf8xQ/WWDl+PYzbwPpzcXmk6tap5eOaHkv0Ki+M9fbQDimMf0LYtRIj
	ZwlCA7HPFftDyTOaT2/7TVB+ExYT9EPimrgzTzbUrWvrgavpERyG9UQl68cl/5pphZvvmyJs04L
	2kjfQ+R8q6rxf3D5WIXddZp9aaKTTkkYL2pVFe4SK3wEPDWYrErlI1IVHh7a48rVbtBTtWHYWCN
	uDjdlZVmPtrBkvxKcXFgtEpQa1S9Y3dxLjt3DBVKBjCFdWoKh47qiukGrzZ90xqa7ASGaCpTuhR
	WTztyJ7KaiK2+5nwVd4txe9+f8cFGwkGl2kztj7h50lyyUWAEJeJr44cZramw5I8a8QO0iW3ShN
	3O/nllx92LFSCDROyMUUv252w==
X-Received: by 2002:a05:6000:24c9:b0:3ec:db87:e5f4 with SMTP id ffacd0b85a97d-4395fd2afebmr8225349f8f.7.1771582853464;
        Fri, 20 Feb 2026 02:20:53 -0800 (PST)
Message-ID: <b82a2dee-aa37-4b05-b368-60af8c54edf2@suse.com>
Date: Fri, 20 Feb 2026 11:20:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
 <aZgpRAXefanISluT@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: <aZgpRAXefanISluT@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 10:28, Roger Pau Monné wrote:
> On Tue, Feb 10, 2026 at 11:55:34AM +0100, Jan Beulich wrote:
>> When Dom0 informs us about MMCFG usability, this may change whether
>> extended capabilities are available (accessible) for devices. Zap what
>> might be on record, and re-initialize things.
>>
>> No synchronization is added for the case where devices may already be in
>> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
>> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> vpci_reinit_ext_capabilities()'es return value isn't checked, as it
>> doesn't feel quite right to fail the hypercall because of this. At the
>> same time it also doesn't feel quite right to have the function return
>> "void". Thoughts?
> 
> For the non hardwware domain case we could deassign the device from
> the domain?

Will need to check. De-assigning is generally done only from domctl context,
I think. I'm also uncertain what other things may break (in Xen or the
toolstacks) if we take away a device in such a pretty much uncontrolled way.

> And print a warning message for both cases.

Can do, albeit I'm unsure what "both" refers to - I see only ...

>> --- a/xen/arch/x86/physdev.c
>> +++ b/xen/arch/x86/physdev.c
>> @@ -8,6 +8,8 @@
>>  #include <xen/guest_access.h>
>>  #include <xen/iocap.h>
>>  #include <xen/serial.h>
>> +#include <xen/vpci.h>
>> +
>>  #include <asm/current.h>
>>  #include <asm/io_apic.h>
>>  #include <asm/msi.h>
>> @@ -169,7 +171,10 @@ int cf_check physdev_check_pci_extcfg(st
>>  
>>      ASSERT(pdev->seg == info->segment);
>>      if ( pdev->bus >= info->start_bus && pdev->bus <= info->end_bus )
>> +    {
>>          pci_check_extcfg(pdev);
>> +        vpci_reinit_ext_capabilities(pdev);
>> +    }

... this.

>> @@ -376,6 +379,20 @@ void vpci_cleanup_capabilities(struct pc
>>      }
>>  }
>>  
>> +int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
>> +{
>> +    if ( !pdev->vpci )
>> +        return 0;
>> +
>> +    vpci_cleanup_capabilities(pdev, true);
>> +
>> +    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
>> +                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
>> +        ASSERT_UNREACHABLE();
>> +
>> +    return vpci_init_capabilities(pdev, true);
> 
> I wonder here, in the context here, where the device is already
> assigned to a domain you likely need to take the vPCI lock to safely
> perform (parts of?) the cleanup and reinit.  Otherwise you could free
> capability data while it's being accessed by the handlers.

The lock isn't recursive, so I fear we'd deadlock if it was taken here.
Furthermore this falls into "DomU support needs dealing with"; right
now we assume Dom0 tells us about its final MCFG verdict ahead of
putting devices in use. Once we need to consider devices already in
use, I think we would further need to pause the owning domain. Also ...

> The only current extended capability (reBAR) doesn't have any internal
> state to free on cleanup, so it's all safe.  But a cleanup like the
> MSI(-X) ones would be racy, as they free the structure without holding
> the vPCI lock.  I think we need to be careful, and possibly adjust the
> cleanup functions so they can tolerate cleanup with possible
> concurrent accesses.

... to cover such. (For something like MSI(-X) it might then further be
necessary to mask/disable interrupts, but hopefully we'll never have to
deal with extended capabilities that would require this.)

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 10:24:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 10:24:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237001.1539475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtNgs-0001t3-7y; Fri, 20 Feb 2026 10:24:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237001.1539475; Fri, 20 Feb 2026 10: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 1vtNgs-0001sw-5J; Fri, 20 Feb 2026 10:24:54 +0000
Received: by outflank-mailman (input) for mailman id 1237001;
 Fri, 20 Feb 2026 10: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=S1uT=AY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vtNgr-0001sq-3Y
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 10:24: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 638872a0-0e46-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 11:24:50 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so17602645e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 02:24:50 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a3deb73bsm14851535e9.3.2026.02.20.02.24.49
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 20 Feb 2026 02:24:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 638872a0-0e46-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771583090; x=1772187890; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=G8yuAOpKv5gJV7/hWT9Eym5FISxKjmQHGU5CBjznLIk=;
        b=GGMxKULluOwOO/EWEAIgu7V1EKsVWf1AktIRVr4I3ImumyfZhJqTwu5TB2i0wGTdzK
         b7Y0+iULLzV0+rRAD1eDSKg5PkJFluKyGXrnd1BhS5Cbc+DpirxXlUdXIoyvX1s1tH0j
         k2qtlgeSEnzmWBzooI1hPzSBDGqvC49VCs8yR2s+Szwofp8u2KFOtrwfN35ajLEkrTVr
         FKiJlh5OX6E7/ZvWysUqBLJyO3SwyPWqVirbBNZrffjQ79dCsjLXKhD9cjSGI66dyh6k
         F75T/AnldjNnlB1YhPhyghXFyIHC36NVWnlvYz/wpfyTxIJ2pbEfNYldhpTUxLDdPqRb
         iR4w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771583090; x=1772187890;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=G8yuAOpKv5gJV7/hWT9Eym5FISxKjmQHGU5CBjznLIk=;
        b=NXGdSYK3TqJb2++571kcSl6gon7LML3JHxTgfhWZ8KREGkIpL9phW406qtP1LC0G4L
         ps6UAG+S1+HrN7+AQEyAPun7IC0rSOOaGx6jnjNExFOynlt96h8VD4xoUElu22bfWlPC
         3Nk49KH5lmyvaQfxOCGFNPxxcAbBm2xZ4/g5clrHeEKffILcl6o6y2yajFWsEEXvQVZ/
         y19O6kRTunCCFOIsQCEKoJplFGSc51HJcfaZs0Fat+pZLMwKW5yL1OCiOwJSBX25MAYS
         ZLG+ZBS9cpsG99P9Dg6qEkCZwU1Qs805e1yH+m2VF/7mQM/iLfu3cM6WKmlq1Mea2sxA
         Ym1g==
X-Forwarded-Encrypted: i=1; AJvYcCUpHUwkdn2SMJd6E1LX7/U4htZCZT1R1MLKwX65+hHnx+0xdXRofdlLjtQEqWV8exPLdH9cOcoNSZE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxU1dVgT7+RdSrtY8G2SkGGNwtp/JbFyi2mNUxzSzy9KSfNfO/H
	rE2namqGcDYoZX9Cntp6MmP5VQg6xWw9diAvNl+o/bkDTYjK6Z4ujp6j8c51HCMtmQ==
X-Gm-Gg: AZuq6aIkadFKlMLb/440pWCDvHC9Tx/ZdCD8Au5+ZWYl2f+9b3c3XJwBo0Hmg8VUYrH
	9b6yI6XvRJrFzxcF+ZnPM9VCwHT8ENFyVMI2ILLvpLRZb31x1kppmZTl/RSek5GjNpDTRMEounP
	BDPbWIhcIPu58Uz3ECWZotVs34gjhcuZFjsV0UroVooLrV6FvxvYd1F7XsKu/GYn5uZZ8WG6IPo
	amiksUfskXZrOtiRYxubWn0ilGzhdmgHrVC1WbXb/8+T+KKhJwn8FjpfPjQQHnW7CtxctyA5jTD
	/Sxl64Pd0JLDgEGnBmKMD/lf1A1Q5oAMMlDWe+PGpfHQnCHPOITWRDUIQN8pPHMAkzrnwLFKghS
	Nkxy747r6238Dmk4H7a+79gkABIQ/98A/5k7Trhaeb8u1gUWWKIW+C1yIfV3eUl5hFeD58hy1S8
	tRsrvyVlQ5JgUhwPEtE8N3e+O5iB/v5NnP5t7iDDssdDRdPltclR3mNDKEqCdnaLwiTt0c67ESh
	tPfF+sB5dnPCoo=
X-Received: by 2002:a05:600c:198c:b0:480:4b59:932e with SMTP id 5b1f17b1804b1-483a531d64emr21428345e9.11.1771583090113;
        Fri, 20 Feb 2026 02:24:50 -0800 (PST)
Message-ID: <edbfa0a5-466d-4748-93a1-a250156142e0@suse.com>
Date: Fri, 20 Feb 2026 11:24:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/p2m: clarify foreign map handling in
 p2m_entry_modify()
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, xen-devel@lists.xenproject.org
References: <20260220100509.49700-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: <20260220100509.49700-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 11:05, Roger Pau Monne wrote:
> Introduce an extra check and comment to ensure the outer caller has
> possibly taken an extra reference on the foreign page that's about to be
> removed from the p2m.  Otherwise the put_page() in p2m_entry_modify() won't
> be safe to do ahead of the entry being removed form the p2m and any cached
> states purged.
> 
> While there also replace the error codes for unreachable paths to use
> EILSEQ.
> 
> No functional change intended.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

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

> --- a/xen/arch/x86/include/asm/p2m.h
> +++ b/xen/arch/x86/include/asm/p2m.h
> @@ -1066,7 +1066,7 @@ static inline int p2m_entry_modify(struct p2m_domain *p2m, p2m_type_t nt,
>          if ( !mfn_valid(nfn) || p2m != p2m_get_hostp2m(p2m->domain) )
>          {
>              ASSERT_UNREACHABLE();
> -            return -EINVAL;
> +            return -EILSEQ;
>          }
>  
>          if ( !page_get_owner_and_reference(mfn_to_page(nfn)) )
> @@ -1088,14 +1088,26 @@ static inline int p2m_entry_modify(struct p2m_domain *p2m, p2m_type_t nt,
>          break;
>  
>      case p2m_map_foreign:
> -        if ( !mfn_valid(ofn) || p2m != p2m_get_hostp2m(p2m->domain) )
> +    {
> +        struct page_info *pg = mfn_valid(ofn) ? mfn_to_page(ofn) : NULL;
> +        unsigned long ci = pg ? ACCESS_ONCE(pg->count_info) : 0;
> +
> +        if ( !pg || p2m != p2m_get_hostp2m(p2m->domain) ||
> +             /*
> +              * Rely on the caller also holding a reference to the page, so
> +              * that the put_page() below doesn't cause the page to be
> +              * freed, as it still has to be removed from the p2m.
> +              */
> +             (ci & PGC_count_mask) <= (ci & PGC_allocated ? 2 : 1) ||
> +             !p2m->nr_foreign )
>          {
>              ASSERT_UNREACHABLE();
> -            return -EINVAL;
> +            return -EILSEQ;
>          }
> -        put_page(mfn_to_page(ofn));
> +        put_page(pg);
>          p2m->nr_foreign--;
>          break;
> +    }
>  
>      default:
>          break;

Unrelated to the particular change here, I wonder whether it's about time to
out-of-line this ever-growing function.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 10:43:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 10:43:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237009.1539485 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtNyU-000540-LY; Fri, 20 Feb 2026 10:43:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237009.1539485; Fri, 20 Feb 2026 10:43: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 1vtNyU-00053t-Io; Fri, 20 Feb 2026 10:43:06 +0000
Received: by outflank-mailman (input) for mailman id 1237009;
 Fri, 20 Feb 2026 10:43: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtNyT-00053n-M3
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 10:43:05 +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 ecca221b-0e48-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 11:43:00 +0100 (CET)
Received: by mail-wm1-x341.google.com with SMTP id
 5b1f17b1804b1-48375f10628so11705535e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 02:43:00 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a3dfd3d6sm22028005e9.3.2026.02.20.02.42.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 02:42:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ecca221b-0e48-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771584179; x=1772188979; 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=pzVoneESGXvvOzUPiX+drad6Xn+qjY6oGfG1hwkXseU=;
        b=AI+ny7woVjInNpSXAJnkFdU29byAMU1N4AP1dP7WLCNQDTrPb7gHuxHyNQs/6ur73m
         NDytLLeCBJjrbwuIflSI0tdXSG4w2uOuM3FQLRa8jaDxQWHDokmwJfMlgxw+L1X8RtEe
         1QOdGCpUNjNLH4f8d+dS2iQf8PgJ9nj9DIJUQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771584179; x=1772188979;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pzVoneESGXvvOzUPiX+drad6Xn+qjY6oGfG1hwkXseU=;
        b=alkfgjYqKTBq70x5i1AZCD7Sm13ATEa/FwV0l9cPjgI7DCgXIjGk+hf/sPhx6xpVKu
         E8AaNNkYLvCTHmNxf4BwwkwV/uWGQ77FJFqSd4okWlEw5UXqORfw2ITB3gTClP5zBoJd
         /DLbi8Gs2yVEAgbg/31uoR5OJ/gyj2P8kx5e5R2xYt9Lhx/oPKC1PHS/AefHz/E0rZiz
         DHYOXMKfipetl4wahbBE7xO0t3PeXSUmQR0gdOYMap0EMSwWopy9+rwh7hDdKXk1vanw
         5KrPheVlNzxPWaBU8plrvYIWpO7skmA1JYA+CpJFdZodcIE4HkLSStaTM88o/4yn0s14
         Kt4Q==
X-Gm-Message-State: AOJu0YwnY64pnlPjdw+jrnKuMW0vJtL2q2nhb9/3JOyaP7F/WYfgGWAN
	pg29GdAWdvtoxm42mcrInz1TbQGQIC5FxLyG/XjWh0A3V3Q0sfndHRFEM+/yzxVZhJztQbA58ve
	eIhZdibQvn4aN
X-Gm-Gg: AZuq6aJyPWfrW0xgdlmn8O1w61X5ek1O/5xRCf0HComhnyHV2txtOy+7Iej+esBGs+5
	KZyFL68Qj9fGBm8wRV2MEh07/f0gVcMEJhO6hO5JN7rw4gVogUNbBIcA1MOohh+hxkUcG4gAh2s
	ugMt5Ovf1WhG1FZuZYRKQGtn/06Q4776oIMxm5YhBilDIpsnvZAOhjSe3rBqWHWJEEZohb+DI8m
	+kCs/jgl4zSgM6N7sltli2vZrYo+dyObOkTy09Wd9tiYjWzNiMej45l5FijA5PeNEW6TXCI9ugI
	5zSiZTyHGoscYx6VDVgUvNOCAB+MlIEgE/oeafAfRIp70XzBEfDkRQF1eRSRO+2ib/3pXjkqh3a
	BvB56GGElxg4JB2wPQE8C2VJDRRtIFlHRTsSh+jsLKBGuuX6+RtGKbOl0jjXGCvejD6+7um1ANL
	/J8pkHuNNkTIzVgkNtUqeOtvaTKN4ixYvBX1u+hJmbH0XKjgUjQeTuBQhVx1lDEn0eUKMM8bc=
X-Received: by 2002:a05:600c:4744:b0:47e:e7e5:ff32 with SMTP id 5b1f17b1804b1-4839e66d920mr89358325e9.34.1771584178584;
        Fri, 20 Feb 2026 02:42:58 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: andrew.cooper3@citrix.com,
	jbeulich@suse.com,
	roger.pau@citrix.com,
	kevin.lampis@citrix.com
Subject: [PATCH] x86/cpu/intel: Limit the non-architectural constant_tsc model checks
Date: Fri, 20 Feb 2026 10:42:57 +0000
Message-Id: <20260220104257.3405712-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Sohil Mehta <sohil.mehta@intel.com>

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.  Those currently have a model
range check.

Today, virtually all of the CPUs that have the CPUID bit *also* match
the "model >= 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.  These models are
relatively arbitrary but conservative pick for this.

This makes it obvious that later CPUs (like Family 18+) no longer need
to synthesize X86_FEATURE_CONSTANT_TSC.

Signed-off-by: Sohil Mehta <sohil.mehta@intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20250219184133.816753-14-sohil.mehta@intel.com
Link: https://git.kernel.org/tip/fadb6f569b10bf668677add876ed50586931b8f3
[Port to Xen]
Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
 xen/arch/x86/cpu/intel.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index 584588e406f2..18b3c79dc97f 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -637,14 +637,13 @@ 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))
-		__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);
 		__set_bit(X86_FEATURE_NONSTOP_TSC, c->x86_capability);
 		__set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability);
-	}
+	} else if ((c->vfm >= INTEL_P4_PRESCOTT && c->vfm <= INTEL_P4_CEDARMILL) ||
+	           (c->vfm >= INTEL_CORE_YONAH && c->vfm <= INTEL_IVYBRIDGE))
+		__set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability);
 
 	if ((opt_cpu_info && !(c->apicid & (c->x86_num_siblings - 1))) ||
 	    c == &boot_cpu_data )

base-commit: 52e801093b6d9f72944328925588b227d7114f8e
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 10:54:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 10:54:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237018.1539495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtO97-0006yn-OS; Fri, 20 Feb 2026 10:54:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237018.1539495; Fri, 20 Feb 2026 10: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 1vtO97-0006yg-L7; Fri, 20 Feb 2026 10:54:05 +0000
Received: by outflank-mailman (input) for mailman id 1237018;
 Fri, 20 Feb 2026 10:54: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=uNHm=AY=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vtO96-0006ya-7M
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 10:54:04 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 745ca245-0e4a-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 11:54:00 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SN7PR03MB7087.namprd03.prod.outlook.com (2603:10b6:806:357::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Fri, 20 Feb
 2026 10:53:53 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.015; Fri, 20 Feb 2026
 10: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: 745ca245-0e4a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=n2j0hKBMLC9cnMFwrAoE+voi5ZKYtAlV3uIm2wFtNDvQGz8IToW9X1T6azOQfIfJXqbPfSnD07HI7JrcUq/YX+wx5SDR1npIuRgVbmHwpX5QYPbbUoC6tRwWtpV7FR7FR+wJUjozyGh3vEKfZILrX8D3dR1z6B1Uu/VXWelDGB3u59o8NlTdiqGnNk+yuofu6B6iyUbIgWNZoQ95L+ZiVUI7vZD4oFk6LCr5p54SAgqk+0GHQpUA9DVXtKk/WWQ1DwdsR8UZSKKjpdBAHSDQH1mddO1tpdisTGQUp9nVO/No9z2hMXOF3ax1QRw2Q+s4wdlYhc2pLVj9YY2qlW3xsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=hGA3EU2YoP/OZu+W+XIeDBThP+Vgstloo7C80aGydhA=;
 b=WGTQiDimc5ZqDVa6IvBsni5dInwo3+LBPxBnijfXgnFuZuNPifLQeCU3lXIrWOua7LISyP0nZoOoItUbKec2vWNqe/V31EaixP0oMPd2oUf9p7Lq4uhOvnlEpEtkD5gTtCuWb6uwqTkBciuzjbhao6v8fZZmY605lOQCQdLwuvGmpknYtJlf2E6AwaPe+le5mgTE4nfHJTUxZ28kZkTjz1jn2WsbB7ZwO3ndcBzTIxZbOer8iHGJPVhs8XDEDjjmPYiC9BdgUAorRI3IhLgYM32nr8yvrhQ54nk4OFxJN2UDyQYUD+/fpgTHAPyHLTfmw/oUNJ2cyGQRFEXGNwUB0A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=hGA3EU2YoP/OZu+W+XIeDBThP+Vgstloo7C80aGydhA=;
 b=kz1dyVaUsF9IIVkLiHFhV4epeKipV5DolwBSpo3JEdJa1zApeH0x/m/VlswayQRMLs7QYQNCrAE9kw8jsWsZcDeR4jGJVqySdhY5kWlnzaxdgFDLaMla5f1GjCx940XL1jX+rF6tIhd+X9mV2GyKec09VOJeI0PbWbIHNqPokIQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 20 Feb 2026 11:53:49 +0100
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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: Re: [PATCH v4 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
Message-ID: <aZg9PRxR2uxdLj_n@macbook.local>
References: <25c65557-c97c-499c-a698-571e40cde563@suse.com>
 <67b1f190-a7a8-4cf2-89ca-7186204f0b56@suse.com>
 <aZgpRAXefanISluT@macbook.local>
 <b82a2dee-aa37-4b05-b368-60af8c54edf2@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <b82a2dee-aa37-4b05-b368-60af8c54edf2@suse.com>
X-ClientProxiedBy: MA3P292CA0006.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SN7PR03MB7087:EE_
X-MS-Office365-Filtering-Correlation-Id: 6194d918-f60e-4b82-7573-08de706e5630
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WFlVZ0hsSm9ES1F1cE43Q0s1dW92OVlXaUYzWUVVYlJtbVpZdnlZREYvdEJ5?=
 =?utf-8?B?eUc5cXlFUi9WM3dFc3lZRnEwR29zRytZc3VzNm93STRiNFBzVmJUUlB0VFFo?=
 =?utf-8?B?SGl4OUx6cS9WOU85QUJRUXY0SE13WXgzZVZUQVVRY2NnemN5czluODZrWFZT?=
 =?utf-8?B?bTdtek43NzI0ajI2N0Q4aTFUMmJTUXh1NFJpQmJrRUNqNi9YdGhScjJjcmFJ?=
 =?utf-8?B?Z2orZWlwbzlZa0ZmSk9MTWdTNklDbFpvdXpPZi8wdlhEb0V5V0kyQXpyV09P?=
 =?utf-8?B?Y3kxKzMwR1FZbHpRMFI0WEdQMERoM3dJK09xUmF1THBtazlkQ3owd1Zrbkkr?=
 =?utf-8?B?dXJVZmd5QWFmeVdBU3ZyM3hlUms5cnIwUXl5bXVyMHFCbnAyQmRkS0ZIcURZ?=
 =?utf-8?B?Q1d4c1NkZnhuL2dTcUEwZVY4VWt4L09BVklwMWt4cFZScGQ0UTY1SlNublJU?=
 =?utf-8?B?aWxSYXVxMGVRQXZmdEFuNFhiMDhyRkZIdUdEQ2I3blFtNHdxNVM2bkJLTXYw?=
 =?utf-8?B?aFpLWStKa2pQb1N5Sk1acElhSThIY0pHYjhYY25IZm8vK1FjdkN5ZFRVU2Zv?=
 =?utf-8?B?WG1WTW1sZER0N3FZVmV2QjRFbE0zVGNnZHZ4U3JXUktvY2p5L0lpQjAyUWNa?=
 =?utf-8?B?UEc0ZzJjNlNjT00xd2t1T3V0Q1h3ay9OejJpZVg5WkhlS1VPYm5UeERtRmd6?=
 =?utf-8?B?SE4vNnN5SFplWENFQm9zWDZkRVdsQUhlUXAxcGQ1NlIzUDJkUCtsalRuR2dQ?=
 =?utf-8?B?cUdsVkJjd29heU1JeHM3c21xREh0M0Nma0NCTUxBY1VHanRnTmNSV1B3Yis3?=
 =?utf-8?B?L002UFhXclI0anRzbmtxR3BjQnZhUithbHFCYm5qdkpVQkZpNjlsVGZtbXFx?=
 =?utf-8?B?TkZpSnkzUkhRZXZXWlZEck1FSFA0czk1K0NUbTRGRkJ3NElJby9LZjdoazdw?=
 =?utf-8?B?cWdkMDRtL0p0dDZwanlQNm84ZkdzNmYycUExdFVnNFZrNTlJWUhTY1hJRnBz?=
 =?utf-8?B?QVhUNE1hanMrVlkvRTJqc1FlMTRmOWQvb1dicSsxSWlqc0s5aHh3aWJ4bi9p?=
 =?utf-8?B?VTZIUXJWRXlSV2ZSQ2xxcXhROE9oQ2tvTjVsY25IcC90TERwOFpkaS8yNkw4?=
 =?utf-8?B?d0duZ1ROMXlDcXhxVkYyOFpzZ0Z4eDFrSkk0TVVhSmlQeUFqMFRHcldOdUpM?=
 =?utf-8?B?TkNpS0Y5aFNnMVBnWnJKTzNLZElHb1JZSHpJRmt3Y0JEdzE0ZFpUbGdwdGR2?=
 =?utf-8?B?VDNjNVZKellwSFVVMWg4THg0S0lRMVRiRkszNzRGUktxNmxUUXVDL013U1Yr?=
 =?utf-8?B?U3B1aVZFcXFHVnljYTdMeGw0ZkVWTXVCS0k3c3VKWkVqN2xQRHFKYk9nZ2xX?=
 =?utf-8?B?azRLU05zN255OVhKclBPcnV1WUF1MHlacGhKLzhYRDhQR2ozUWovSWdjZXJQ?=
 =?utf-8?B?Zzc2Z1hYbWxNTklLOUtKczMvUEprelNoaml1N0h2MEhORDFGT3hwUTJQdnZy?=
 =?utf-8?B?UkFZdGJLemo1eGlBbWdPOTZTUmxiV0tJMENHVHZwVFFaYVVORzdaeklpaWZ3?=
 =?utf-8?B?bVhjVFQ4Y0xrckRnNDJLalBPUEQ5NHVqZkQwTnJrNEJCVis1Tnd1VG1tUyta?=
 =?utf-8?B?YlVlTGJKREh5VWc1YXdMS0RkRTdzN3JTSWFDd25heUhxcVZtY2t2MUtWeEth?=
 =?utf-8?B?QWlmMjJ5d3I4TlBBYzBockhnbU5BbmdEKzBqU3dQNHRMbytVYy9GSGZleXpF?=
 =?utf-8?B?UDU3MkJKdWdIQkVQN2JVMGxSV0FtS2RTSUlialpnQ2NxbVo5cG5rLzgwUXJV?=
 =?utf-8?B?YTFQWUc5cklyaFdTR1dSaXlnTG44NTNGWllLWjBQakNoeGEzNkw4a3kvVENa?=
 =?utf-8?B?TkIzMmp3UTNmWHUydWpHZFAwVTJjUUJHOUM2UVlYQy96T0FDUzVtdFYra3Az?=
 =?utf-8?B?ZU5FNy9NWFNxN3Bsb3NKaThQdEtzSURSN0RBV3BoVzMxTkRCOEhZVGMybm5B?=
 =?utf-8?B?d2ZramVLandkeS80aUZIRS9VZnN0czVpUEp6Ri9OdVNhZzJOZ3dMeHJUVUo4?=
 =?utf-8?B?akNKMDNBaFlhSC90VmNNRlZiS1p5RlRPRDl6b01VelgzNzJTNkQxa2k3eVd4?=
 =?utf-8?Q?0iLY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?d0FRbHp6Mml4OGRUNUZNMDd1STgybDZQKy9lcWhwbE5lMUNvZmx5QVVpUDRS?=
 =?utf-8?B?QXVCK2FKQ1ZVTzhrSHF2ZE5LRXY4QythQSs5QVlRZmVUMldQRTZWWkRXdDdT?=
 =?utf-8?B?MUlRdHpMMlE0QU5tanhWNjJEWHBzak1nTlk2MmpyM0RYVjZUc09IOUdFTHRZ?=
 =?utf-8?B?bzBhSDMrRHd6NmtnLzg3MEdFZXY4QmhWbXNjUDJsQXVmdHRSUE5hVXF6b3Nz?=
 =?utf-8?B?c3NJeHdLdDEycjFneCtaZHk1YTV1UkdEcFB6Y0dwUU84UmFJemlOWTI5RitG?=
 =?utf-8?B?dHNMR3k2VzRoM3d6Tm5sTHZlQUtwZEtJYnRLb2plZG1SR1JSRmlpNzlrWk1Y?=
 =?utf-8?B?bWNDNi9vTU5MSDB2RnkwQWk3eE84ZWYxTXMyaHN5SkdhRnBxOWdEdWFLUHdo?=
 =?utf-8?B?K1JDalIvWmhzTFZlSEtYVHl5ZUoxbWhTRGlHNk1ESE9qS3Rocm9wbnl3NEI1?=
 =?utf-8?B?YTRIeUcrMjZ6aHhtUkRMeDIrYWVOcjBUVnVSTUNEQW45ZVFuMTRZdjBHaWEy?=
 =?utf-8?B?SmJzUm1EVVlkckVqdUFtSVFLRmdCUHJRajQ3dldQZGdSSFRYS3RoS1VoYjQr?=
 =?utf-8?B?UURFN0ttQXpRa1hoenFKN0txd1dwWm5rTm9QQTlmOU91NkoyVDQrUmk4cXU4?=
 =?utf-8?B?bmp6MWk0UUQra1NSS0hsZUVFMjRuVWhsYXowRnBLemFBQU1BQnRWVCtJWGtQ?=
 =?utf-8?B?ZGVKaG1xYlpSTkt5MjVUMEdSUEpHU3dXbC9taXU2YUdMamZhZUpQMDZLNW16?=
 =?utf-8?B?OCtzVnJ0U1JKclZKVUxLSGRLbWFSNHZhbkNYRUV3bEJIdWJodEhQU0R6SE85?=
 =?utf-8?B?b3kyTjRXRzJVekI2M2t5cUEvblUwdzRSV2grOVdNZUpGRmk4UlgvRzZsSEVz?=
 =?utf-8?B?aUZRYURpZCtCK1Jnb0E1M1B3YkJPdXdEYmU4ZXp6TlAvUjVtZHlBNGk5d2hi?=
 =?utf-8?B?bnZhZzRGbWc5ejF5Z0xwUktaZ3R4UDVwejFPcEpFcTFRR1g0M0x3UGF1cCt1?=
 =?utf-8?B?WWJheGs2QzJFaUZIazlXUDRoQTExZ1IyS2k4RXlEZFp0ZUVYRlBDcjJnZTly?=
 =?utf-8?B?QmU2Wk1IMHJ1YkRybmhjckFQQ3l3Mi9FNjdpY2cyb1ZDU21NalVNMmlQNzJJ?=
 =?utf-8?B?Q2U2Z25Za0h1MjQ4VTVHMit2NlpIVDZKWUJWa3lUTEZreXJoRkFyMkY1Umcy?=
 =?utf-8?B?Y1hBYXhKdkNJU202WmZ1a3pucFBKTjAwb2JhaVBzN2p3cFJ3QXc5K0MzeXIy?=
 =?utf-8?B?T292ZHIyWTVwZ0ZNazdHSFIwd3poWFlRU0xpd09OZ0tXeWxvdDVmYWQyTlYr?=
 =?utf-8?B?NmtURUwwTVJyVXlpYWsweFRtaGxnNitaS0J5Mkw0UjZwYmNubiticjBHSDhl?=
 =?utf-8?B?QkFIY0NzLzBIZ3B4S0o3Q3N6alJiWHdUNzBJT2Y2T1VwdUhPcXZ5bGUyTG5q?=
 =?utf-8?B?THpaaDNkSjcwV2tVQ1ZwVytRVVQ2WmVOanlreEk3SXp1bjQweWFscGt4RW1o?=
 =?utf-8?B?MVg3bXNVRWFqN3pvRTJobkZFUFpwSzllYUEyWUJkbnowL0pjSGRMWFNsV1d1?=
 =?utf-8?B?cUIwaGZUQlNqTkJFaFR5elExRnkzOTFJeWFGS2o3Q3hjMEJOOVZNQmVoYnBa?=
 =?utf-8?B?Njlqc3JHRzlKdU9IMTdFN2dzV3V4SnkyVlRtOHBxOHBtdHpwOTZZKzFiVVA1?=
 =?utf-8?B?RzUwL0NodzdvYnJrUG1sTzJ3RER1VFlqRlluM3EyWGp2NjBEVThQVVhIQWo0?=
 =?utf-8?B?QUlxWXkzNTFyUVhpZi9PKzJRbTE5U1Nma3NPK0svdnNNZS92bUgzOHg3SW9E?=
 =?utf-8?B?Nk4wbC9ncWdEYzYvRFA2SHovSjdlbnZKNW5Mb2txak42ZnJ1aWVXbGl3SUs1?=
 =?utf-8?B?d09yNmlxN1Z6SjgwOFRNZjg0V2U3UnVRTU9PNTQzZVRXcWFJVTZqYkt1bE9p?=
 =?utf-8?B?ZU1jUjN3eU91WHM0QlJ5MUJhTHF5WmNqeHJ4MU44M1lwSGJxbXhKb0VMRWYz?=
 =?utf-8?B?cmpmbnRHRDhjb0RleCtpRUNJRHcrbmErQmxlcmV2ZmxiTTVTZlpoenlWR2V2?=
 =?utf-8?B?ak9vWmEzRWszKzNQd0llRzhZS0k4RUd1SkNhUVB2RlRiRm16TzVQUGErSWdJ?=
 =?utf-8?B?Z1hkR2c5NTR0bU9RVFlZM2VvNThtbUpwckJWKzZQSElYWjRoVjR3L0h5elFz?=
 =?utf-8?B?NGphMGo4cFRsbFBzL2lxWXNKS3pEdkxITENlS0lHTzJjVUh3UHlLcTNPSEV1?=
 =?utf-8?B?ZS9PeVZZS1FxbnNBTVVRbmgyeTRSNS9FMmFEOExWRHZsRlZqV0F6SFA2ZUdz?=
 =?utf-8?B?QkpoeTRRYmFkR3p1TkRCTkRkWXJEdnJhTVZJTi9WRWp5bjlXN2JHQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6194d918-f60e-4b82-7573-08de706e5630
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 10:53:53.1023
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: imcStf0YJsfjMiI7MGu9Q6hD83MKTHTxDOWUglywP1fQgFV4b7bo2OTY1ipLsSnnqP7tUXbccjg1jCoUJJEfdA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7087

On Fri, Feb 20, 2026 at 11:20:52AM +0100, Jan Beulich wrote:
> On 20.02.2026 10:28, Roger Pau Monné wrote:
> > On Tue, Feb 10, 2026 at 11:55:34AM +0100, Jan Beulich wrote:
> >> When Dom0 informs us about MMCFG usability, this may change whether
> >> extended capabilities are available (accessible) for devices. Zap what
> >> might be on record, and re-initialize things.
> >>
> >> No synchronization is added for the case where devices may already be in
> >> use. That'll need sorting when (a) DomU support was added and (b) DomU-s
> >> may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).
> >>
> >> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> >> ---
> >> vpci_reinit_ext_capabilities()'es return value isn't checked, as it
> >> doesn't feel quite right to fail the hypercall because of this. At the
> >> same time it also doesn't feel quite right to have the function return
> >> "void". Thoughts?
> > 
> > For the non hardwware domain case we could deassign the device from
> > the domain?
> 
> Will need to check. De-assigning is generally done only from domctl context,
> I think. I'm also uncertain what other things may break (in Xen or the
> toolstacks) if we take away a device in such a pretty much uncontrolled way.
> 
> > And print a warning message for both cases.
> 
> Can do, albeit I'm unsure what "both" refers to - I see only ...

Oh, I mean print a warning message for both the hardware domain and
the domU case.

> >> --- a/xen/arch/x86/physdev.c
> >> +++ b/xen/arch/x86/physdev.c
> >> @@ -8,6 +8,8 @@
> >>  #include <xen/guest_access.h>
> >>  #include <xen/iocap.h>
> >>  #include <xen/serial.h>
> >> +#include <xen/vpci.h>
> >> +
> >>  #include <asm/current.h>
> >>  #include <asm/io_apic.h>
> >>  #include <asm/msi.h>
> >> @@ -169,7 +171,10 @@ int cf_check physdev_check_pci_extcfg(st
> >>  
> >>      ASSERT(pdev->seg == info->segment);
> >>      if ( pdev->bus >= info->start_bus && pdev->bus <= info->end_bus )
> >> +    {
> >>          pci_check_extcfg(pdev);
> >> +        vpci_reinit_ext_capabilities(pdev);
> >> +    }
> 
> ... this.
> 
> >> @@ -376,6 +379,20 @@ void vpci_cleanup_capabilities(struct pc
> >>      }
> >>  }
> >>  
> >> +int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
> >> +{
> >> +    if ( !pdev->vpci )
> >> +        return 0;
> >> +
> >> +    vpci_cleanup_capabilities(pdev, true);
> >> +
> >> +    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
> >> +                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
> >> +        ASSERT_UNREACHABLE();
> >> +
> >> +    return vpci_init_capabilities(pdev, true);
> > 
> > I wonder here, in the context here, where the device is already
> > assigned to a domain you likely need to take the vPCI lock to safely
> > perform (parts of?) the cleanup and reinit.  Otherwise you could free
> > capability data while it's being accessed by the handlers.
> 
> The lock isn't recursive, so I fear we'd deadlock if it was taken here.

Yeah, that's why I've put the "parts of" remark above, some of those
functions already take the lock themselves.

> Furthermore this falls into "DomU support needs dealing with"; right
> now we assume Dom0 tells us about its final MCFG verdict ahead of
> putting devices in use. Once we need to consider devices already in
> use, I think we would further need to pause the owning domain. Also ...

Agreed.  So that this is clear, you might add an ASSERT() that the
device is not assigned to a non-hardware domain when this reinit
happens?

> > The only current extended capability (reBAR) doesn't have any internal
> > state to free on cleanup, so it's all safe.  But a cleanup like the
> > MSI(-X) ones would be racy, as they free the structure without holding
> > the vPCI lock.  I think we need to be careful, and possibly adjust the
> > cleanup functions so they can tolerate cleanup with possible
> > concurrent accesses.
> 
> ... to cover such. (For something like MSI(-X) it might then further be
> necessary to mask/disable interrupts, but hopefully we'll never have to
> deal with extended capabilities that would require this.)

Indeed.  Something like MSI-X would be extra fun to deal with, but
sooner or later we will need to handle it if we ever plan to support
hot-unplug from domUs.

In fact, the current cleanup_msi{,x}() helpers should already remove any
interrupt bindings and free any mapped pIRQs, otherwise we rely on
the PVH hardware domain having cleaned up the device properly before it
being assigned to another domain?  (Not that you need to do it here,
just realized from your comment)

Thanks, Roger


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 10:59:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 10:59:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237026.1539505 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtODx-0007pj-9d; Fri, 20 Feb 2026 10:59:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237026.1539505; Fri, 20 Feb 2026 10: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 1vtODx-0007pc-6g; Fri, 20 Feb 2026 10:59:05 +0000
Received: by outflank-mailman (input) for mailman id 1237026;
 Fri, 20 Feb 2026 10:59: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=uNHm=AY=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vtODw-0007pW-NE
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 10:59:04 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 29fbcf52-0e4b-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 11:59:02 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SN7PR03MB7183.namprd03.prod.outlook.com (2603:10b6:806:2e5::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Fri, 20 Feb
 2026 10:58:58 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.015; Fri, 20 Feb 2026
 10:58:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 29fbcf52-0e4b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Oo2QpABFR3hy2GtsCjCG2vncbGuF5Qx7utDYtbwpRXD35FvD7l/CNrllTUpaBVyWuQ9OrKysphoCzsOuL9mFaeP9E4jSzXq5lIPe47tkthjZypGJEBwGJkVYA2G56oAYEGtGfGbio3Iwu7ktobZNTRFEYBfuAlBlqu6G0UjfIQAKKSlJwhPdKQZ4D3Wb9DiEb7gC/0158EQgZF/Eo97QwcOcVeAhv+wJc8Mq1h/HKYLQ34M5RvRaFJvpuZ9WufEQxwKs0K7ghta5uQ6dcP9hnpyPPuaq3+qCyY2Qe2bLEEuz3fBU5Nm6Z/Vs8JwHwofmPqAX/MdxVcZIuEDPQ58Rdg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2VErCTf+x3zse7ZXw6pMHjldFOdikMbOkcUOnjiKh8w=;
 b=DvLdSj6LODb5D5G+BzuxSgeTAQ+7ma6hbbsUoOnwl7SBo9hfRqFSFSJSc4pdiMPNycsF+XmRkg2dJcnqZYcDGC29iPqKv1YV9UebSnzzdTe8n4Bd/sFvwV2vImGCK0/Cu0BJGtCnJYmzZgaaFnuYNOpHJsdADWD47hDv3qH7PTm7KC7NNDKIj10GBH8MGFjJz+JTQbyp+rJukzX0qPq/mF9icufowzFqTQH85ENrSKv1nbRyS/OCtzrvF7s+4zilNNvQLFHsDCAYsve9sNUfdUzwyeKIC0iKrrwEHDEeVRaCljaYmWE3Gj5Y+z36Ng9Mzhltrp1KRsR+oU6DAeJfUg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2VErCTf+x3zse7ZXw6pMHjldFOdikMbOkcUOnjiKh8w=;
 b=bE2q73GmcMmuHb5Pn734HdbLFBSvJ1rGSnNu9zaR0gFCHL6Z9gPnXO1rJgAiVBXPM9dGYTOGVmhpDU+ekk1jKTyhRV5Agy12L67+0rKdSUwvtpYMQCM/+savxelhh/n2iuHBFqYyQ29SEF9CgX7yPu6QhiwbMtmUK0LPU8jFX3c=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Fri, 20 Feb 2026 11:58:53 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Xen-devel <xen-devel@lists.xenproject.org>, jbeulich@suse.com,
	kevin.lampis@citrix.com
Subject: Re: [PATCH] x86/cpu/intel: Limit the non-architectural constant_tsc
 model checks
Message-ID: <aZg-bU0sjjeWJ18C@macbook.local>
References: <20260220104257.3405712-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260220104257.3405712-1-andrew.cooper3@citrix.com>
X-ClientProxiedBy: MA3P292CA0016.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::10) To BY1PR03MB7875.namprd03.prod.outlook.com
 (2603:10b6:a03:5b1::10)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SN7PR03MB7183:EE_
X-MS-Office365-Filtering-Correlation-Id: d065dd69-c664-4025-4da0-08de706f0b45
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bXdqNFpZL0pnTzdCWHErY3lsZVdaMWhHeE92MmZ5SnV1NFlMK2drblM4S0hD?=
 =?utf-8?B?L1ovOWVwUWlyM1FkczVzMjBUekozYkY0YlRhUHVzVVhpN0NDUHQzM2oxYmRW?=
 =?utf-8?B?OG01NjFTYW80SnlTbGVrVDVZbXlNc09mR0V1ZUhjWGZ0L0FjWFJHNkJwaFZq?=
 =?utf-8?B?SFNsK3gwMVBFbFFWTjcvWmZzWWpVVVdjeWg1WmI5OVRXak5vYzg2Uzk0Sk5E?=
 =?utf-8?B?WGlhT0EwRzJ3ZEd2VUo1TmJmeVZ1bzNpdTVsYzkxbkFlUVFYc3h0Z3NVV1Bm?=
 =?utf-8?B?QnEvQVE0azg0R29HZlF5YmttbmtRemhKanV1RUhsc1Mxd2c1UjZzMW5OZTRI?=
 =?utf-8?B?WDhYM0ZremZlOHJ6NjY2ampybkFlc0lPaGpWOHZzRFdiS0ZXVmFYdmJsU09B?=
 =?utf-8?B?MEJwb3lxSmdpRHI3U2tkbXlZcUVNMFV4VmJnZnZJa09WTWo3NUo5a25FWE9v?=
 =?utf-8?B?K3BjZE8rZis4TGRWdXQ1Y3NYV05KNXEvWE1xUXkzQ3haNDFaNCtxOWZ2TDdZ?=
 =?utf-8?B?VzZ0a3NDNEgrR2dpWUhOWlI2d0hQOFpwWjB6WVUrMU1zeWlrOXlTcERxNHJG?=
 =?utf-8?B?V3d1Mk9tR2k2TGU2bDB0bjhLb3QwY3d5OVhLSkZadXQzVStZR1piZVpBM2hW?=
 =?utf-8?B?UWVjT2wwWlVFd2gza0hIbFo4UTAyTGt0dWVtbHJ1eE5sWWEzbXJoeGYyejUz?=
 =?utf-8?B?WWdsS2k5ZHNpQ3dDOWlFa2RxWG0zdjF0ZFYrRTdrc05vbTYybVdWeTAxWm9X?=
 =?utf-8?B?a0pCa1JTK05nalRnU3BmcHZYMWFkZlk3ejdlUndSMWtaV3lIekFIZzRVOUoz?=
 =?utf-8?B?RHc4SHlyNkZUZCtMUXphd3NicVU3YjB6Y2x6SHoxdzNGdTRPTERESWRXaGNH?=
 =?utf-8?B?NDhUTHhXblEwQUpCRW1JUFA3dm1sU2lnT2gwWHFwV1E4VllkWWVoVGx4VlJF?=
 =?utf-8?B?MTd1NFMrQzJsa1ZoMGJSWWVxUzBnc24way95Y2pZQXBCczVFOEVMdkVFK3Mr?=
 =?utf-8?B?TFZWdEg0ZzZrRjA2c3VrSjB5cEVLelNkNzRWNzBiMktuMjgzM1FZc2lFemkx?=
 =?utf-8?B?WERvdTYwd09QVUJvNG5tbWVXbDJaWGV5c0IzRVVRTWZJYUdzNGRlTEFGaFhz?=
 =?utf-8?B?RlNxQ0tHMWNzZnk3WVdLcUR5eUswK2RIN2VWa1Yydlg5b1oyQUlydWgwYnQv?=
 =?utf-8?B?T2NZbGh2amlWMUlRRGxSQU5veVQyWlFpWGxZVFpuTndFUXlONjhIY09wNG5R?=
 =?utf-8?B?Nis3YkhPS0w3QisrTmNqbmlabFZSSVR5STBlbW5maUFKZVJ6SkY3SGYxcGcz?=
 =?utf-8?B?NjVoZ285TUtNK2VQTkNrblYwN29pQzRSekVXQktsOUorVFAwaG5oM0FkV1lK?=
 =?utf-8?B?c1JHTnBXeG1zYml4WXhJWkhkT0cwN2xwY3BVcVNickhJelpNTGUwYnJ5UHQw?=
 =?utf-8?B?SDZ0MXdRTjF6M3dSekowZ2crdnQ4eVVUQVZxNnNWQ0s4bnRkbGJROUphWDZ4?=
 =?utf-8?B?Rjh1c2RGM0FGQklwNk5DdGFWYXZFN1BXWDFOaWtvU25YcDhKT0lZMkZUSWZy?=
 =?utf-8?B?ZjRUZGxRWW12WW1ZTkNleStOeTJRZGVnYWhYanZmQytqRDQ1TWQ5WFFVWkpv?=
 =?utf-8?B?TjV1T2dRSDB1Q3UvK1NYelVmbXRnbjZmUHJMVSt1V3RMcVMxdVBkOEZDeHMv?=
 =?utf-8?B?QWZKQXVMWEthMEJrWUFUdlJVYVl3U2RPQVhqUW5KSGIraXhOaWd1eVZWOG8r?=
 =?utf-8?B?NzAwY3orMjRWdURkaVVIMzUyWS80MGU1ako2UGtKSzU4SS9wUW9WbDBJdzNq?=
 =?utf-8?B?ZG5tZEttSVdqUUFCWnJmdjhhVlI3RVFHU3g3ektTNWV2bi9hZGt5eE9hOW5L?=
 =?utf-8?B?ajdJaE9oLzkyS0dtZmdSa2hqNUdXTnJpZlBta3dQRnpNQTkyT0RaRi9EUUwx?=
 =?utf-8?B?T1ZEa3FydHFvTVlPRzNJa0dKRGZ0U2IydDdITHNhYlR6b0dOb0VvRHV2VWN4?=
 =?utf-8?B?MDRINzlzVSsyY2tHMCtjemlFWEJuMzM3SXRsSkVXQ3NNTFN1UjdRc2pzYmhm?=
 =?utf-8?B?eGpTQUZpQ3lyQXdJaE8zM0RIdEY3VTdrRXBNWmZaeVJ3Y2Ewb01jVVNuWG9S?=
 =?utf-8?Q?12Ko=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UktRNzBqRUI1eFJNZm9JQVIwdVBaYzJZQnN2TlVObDd0OFdSalgwZU9PTWVZ?=
 =?utf-8?B?QVErbE1KZjV4ZFZ6YXJJWU1KN3p6UFVtY1V4RkNLK3B3MUF5dGpPd1FzYjlt?=
 =?utf-8?B?Q1V5d05tZThnNnVRSklLa0Z3V3cyQkwzaEJWdXlKL0ZYbTZDcHZqVUZ5dURv?=
 =?utf-8?B?MjN4YnFPbG4xcklVV3lkdjlaWHlGQk94SUZXdmdHWHc1UjVXNmJTaVA2Nmxq?=
 =?utf-8?B?ZlRjbTF5cnRuUmJ1NVI1cndSeWFnS0V4cUV5M09lNFBTV0JoajV0ZE9lbjh6?=
 =?utf-8?B?MFdndXZPdjFEdXZmSFF3ZisyNFpobjZaNUh2Z0xCYXVBSFV0M0ZSSHJzR1Vw?=
 =?utf-8?B?d050M0RrcWRtMkRrSGQ5bXNBdVpvM0tTWEczT2JwSzMrMFg0OVd1YldKSS9C?=
 =?utf-8?B?a0lCRXN3cENLTzZwc1lsbTNiSUw2Y1BBbjJDRVIvdXkrdWo4dHJ5YUREQWZB?=
 =?utf-8?B?QmFTam1QaWJTcjlNd3dGY1U2NVFHQUh4MHZ1UTZvLzN3Yms3aXkrelNKSjBI?=
 =?utf-8?B?L0xKRFBmdmNtQVViR21DQXE1cWxjaWtuNTErVU1DUG4zVkhiNjVLeXplaHBZ?=
 =?utf-8?B?WDlsWWJwcGk5ZXlaZVZTNFlrcXFGQlRyb0loc0lxY3BHNlp3b1VvMGx6MFFl?=
 =?utf-8?B?YjZHZVZuRTVoZ1Nub28zd0pSOTl6bVh2OWxuUnV5elZXZ2UwNUZOekt3aXRo?=
 =?utf-8?B?Z0lXK1RocUNQVmcxQUhLL0w5WW1rVkRoYkJyNzVvVGxxNm1wWkFXRitiWUgr?=
 =?utf-8?B?M2lEQ1cxbDlHQXFDUC9vS0IvUUpaY2lVNnVjOURLbk1kUDR0L3ZaS2ZZOENO?=
 =?utf-8?B?aWVnTFVkVUpJYW9aeGlCLzM3K0Zvd0RTU3doKzZzK1NsMFpxQ2FyZjdnMXVD?=
 =?utf-8?B?eEtETXdzSEh4RldaeG1LV3haQXEzWk9DUjdMUTF0OHE1cVRGRFZ3bkgxN29y?=
 =?utf-8?B?OWtNRFY5MXRyYUJVWWJueXJHZkRkRnNURk5DVi9kWTUrOVhCQW55YmQrS2hB?=
 =?utf-8?B?WVJzTkl4WG1ELy8wOE9IOFNHMGI3YXZQSjJhQ0J3V05jbjZQR20zdlVNNzNF?=
 =?utf-8?B?b2dCZHFvL1N2NDIwOEtWV1FzN0pPTnU5VFV3cGFhR29FWGdHUU9LOHkwdEd5?=
 =?utf-8?B?Q0x0V0x1SW5FMXFZS1hVUU9lNVQ4c0FUek1NbDhzdmVKdnJVeC9hVlcwdE9C?=
 =?utf-8?B?QnRtQjhyWk94cmxYNWlJYmFFWmpaNXJzZEt4aXdOdzlEVmplSkdMZkFuRUNJ?=
 =?utf-8?B?TTFldm9hV0s0MEpOdGRBZ3drVXBDZXZ0NTdnREU3ZnBCR2FJT3AzeGo1MzVJ?=
 =?utf-8?B?Q3R1RjhVSzRmQmpIRnBTVlZ3dG5sRDA2bEhBeFpLNmFRWHBHZE5mRU5CeEg3?=
 =?utf-8?B?UVVESnMyS0ptZTEwWjhoaWlxbXpmZXoxcmF3MDNUMXJVQkRmMGZYeFZCNFky?=
 =?utf-8?B?WGFhVEUxalhzUFEzSGllYm9Wb20xb2dZMWh4R0NiaThtbWJqTTdGQTlib1NW?=
 =?utf-8?B?Z3d5YWlJTCs4UXRSc2V0NnV6S2ROM3JqMkE5NHArc3UzYThlakY0aSs0ZE9p?=
 =?utf-8?B?Qmcyc2gyVDFRUlp4ajlqZytMU212UzV4VlpqMnVoL2xRUWlQdWswVHo4Rm1S?=
 =?utf-8?B?TU01VHl3eDh2UXBrb3VHbGdUd04zUkVFNjJhU2FZMS9uTGVvY0dmbnhBaGd2?=
 =?utf-8?B?NnUyZU9hdThxR3U4VUhkQmNmZFBkSVdtK1g1cXF2dWFRc2NiUlhRaHZ4L0d0?=
 =?utf-8?B?eGJDV0E0ZG5ZQjJDMXZORnZCbDJ3L2N3V09FYi9BTmRvOEpkUHl5ZDA0VVJK?=
 =?utf-8?B?UVozVWtSbGJMcVhTT1lPcUxIYlVaM3Z0MjJpREw4QW1oVzAzTTN6VU0rVnZM?=
 =?utf-8?B?SXBoVjZSR1VrMi9EL1ZxdFQ5aDdtdFpNaG8zVURGcVJncjdlYis4S25lUlJL?=
 =?utf-8?B?N01MS3NzNXZkL2toTVhqTnpHT3J1dm1USG1QdjZ2cmk0cmJnSms1VkppV3I1?=
 =?utf-8?B?eUo3S0RxY2NMc3M2SExiWFczRExiTkV2a054cnNMOE13dXEvcWlWQkNLaEhy?=
 =?utf-8?B?SDNDOC9oRnpPU2lPVDRBWW5yZWxTSWxSLzdzSjVXZElSeUQ2Y1JSOXh0a2hn?=
 =?utf-8?B?TURkdE5PWXgvLzZCbmwvRzNwajZaalphZHQzaytmQVBEUjgvYWg3QXpCdnR2?=
 =?utf-8?B?WEFUZUszaThzUUVHemlERGRCQ1pBYzV5cStJbTliYTBWeGpiNkFvMEJwVDVy?=
 =?utf-8?B?bC93M2UvcmxtQzBEbXFtMXh4Q0Y0VWl3M3BTbHYvdVArTU5TYUJJdng1MG56?=
 =?utf-8?B?VHBLVG9ZN0d4aVhpSmY3WFUzWTd3dVE2dDVYdk9Tc2tVMklUQ1c1QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d065dd69-c664-4025-4da0-08de706f0b45
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7875.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 10:58:57.8386
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: g6dnBw5Lk4UdyExhXuwnDfEjscEqc2fZEn+tLWrh7Hk74LxDhZ2DGlMIdU2nm5SogvqmpFeWBn3LkinBCydGvg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7183

On Fri, Feb 20, 2026 at 10:42:57AM +0000, Andrew Cooper wrote:
> From: Sohil Mehta <sohil.mehta@intel.com>
> 
> 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.  Those currently have a model
> range check.
> 
> Today, virtually all of the CPUs that have the CPUID bit *also* match
> the "model >= 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.  These models are
> relatively arbitrary but conservative pick for this.
> 
> This makes it obvious that later CPUs (like Family 18+) no longer need
> to synthesize X86_FEATURE_CONSTANT_TSC.
> 
> Signed-off-by: Sohil Mehta <sohil.mehta@intel.com>
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
> Link: https://lore.kernel.org/r/20250219184133.816753-14-sohil.mehta@intel.com
> Link: https://git.kernel.org/tip/fadb6f569b10bf668677add876ed50586931b8f3
> [Port to Xen]
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 11:56:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 11:56:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237052.1539518 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtP7e-0007ef-CW; Fri, 20 Feb 2026 11:56:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237052.1539518; Fri, 20 Feb 2026 11: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 1vtP7e-0007eY-8z; Fri, 20 Feb 2026 11:56:38 +0000
Received: by outflank-mailman (input) for mailman id 1237052;
 Fri, 20 Feb 2026 11:56: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtP7d-0007eQ-6D
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 11:56:37 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3458af38-0e53-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 12:56:36 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by CH0PR03MB6196.namprd03.prod.outlook.com (2603:10b6:610:d3::6) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.17; Fri, 20 Feb
 2026 11:56:31 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 11:56: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: 3458af38-0e53-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XTBNHB8FNxP05/5sNKkeY+hTpjYZGOz+o7ziruXeRXZJ7ad8YJCrKD/OY0z/5CuaBEFM5nAfwkZ0jhjE12bd1W8B3/48E6681slgACujWNmR0BeFH2lqDXBUi7qPfdYBHlDzUhOl45zIZxgmEpGzCKWXVsaSkXmFPyy8/wjZJqzw+q1/QEK72wMlR0/BhDAVCTVkbk5n79mt1t2/esEwREcs8M3Ez4yrm/I64XmteD7oCdYOjs5TvN3K+sWv2JzNFaB4fg+prBm6J6EYUtMvLP2S20jexv6A+DJU8mM1uw3wfxxaw/y0Oc+8X0etimwiNRsytAkOCJjAOd7B7XQCwQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZgqyFmxbU/ZnklkizziErMyDZ9QgcerDMgr20FC6Tus=;
 b=ipNdLQtkM+JEBtXU51M5BOhSIaMW2kpP2+8nPnLSDhP3ax6DNHsmVrr72CF9jYqYaBdSjQcBhhBClSZbleOtIjLsCbph+8dCCKMP7TI83JeLbV8fJAyyh/yeuEm4iePnOFlNkEZxxJEW7a6RtptKzlj+spCQBlM33Rbo9lyIY2TfJYyLtbNskAV4w234yXS9FpiH0DOl+GaSGJM+KeVxkhmIA+kshzwA6GyxFbgwlhYfqE19VHeGeGtBwu9C3Shtlhr4SVbDTCAq8UagxYsoKKFWboIaXUDlwU43rl0ysrqGfjib0hDZPD4R6ZSVSY9kvBOU+blRFl1K3FgSScSMYg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZgqyFmxbU/ZnklkizziErMyDZ9QgcerDMgr20FC6Tus=;
 b=QBBRP2HboFV8+OfmBxk9E8z+zzd5pdIW5CWrQuogLhmROvlXOhWA1X1/qsGc2vuSJHCfSSFy+l9fYub7XovztkgweXCTO/xYIfbohAzzwTypnL2QjxwVvrxxTwOnXZOJ/tTZQ1YEgHYRsJXIjNSDjbRkzG3ywytQri7LhqLisyI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <66bbd1da-3db4-4040-8ca5-d53eb78f59ee@citrix.com>
Date: Fri, 20 Feb 2026 11:56:28 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] tools: specify C standard explicitly
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, Jan Beulich <jbeulich@suse.com>
References: <20260220004344.1980775-1-marmarek@invisiblethingslab.com>
 <aZexPYiQ5UF6t5uz@mail-itl> <1415f4df-8191-4e94-a60a-9b7f0f2599be@suse.com>
 <aZgzJkTdGtHdKwHd@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aZgzJkTdGtHdKwHd@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0193.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a4::18) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|CH0PR03MB6196:EE_
X-MS-Office365-Filtering-Correlation-Id: 399b1aba-b6b7-42ff-59f4-08de7077166c
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?dGVYdnR5TUtEOXlzU3FjRm9nbWpuQUNPcVJkQml3NzIvTmJ2S3JiTnY1ZUdm?=
 =?utf-8?B?YmtxcGgvWlpyWEpVQk1acktxOFhlSmVsa2lEekJWdTVMei9QKzYrc0xKbXdY?=
 =?utf-8?B?SGtTbTNCVkZCWVZWeE5wR3ViNElhNzJTYk9iVjhNY1B1MithUlRYdjNIK0tH?=
 =?utf-8?B?UkNzVEJaTEgyZmh2aGdBWW1uR2FxYzdyL2tYVGI5U1lBWjdPWTkwUTNSK2tG?=
 =?utf-8?B?Q3d3OW4wWEVFQVFuMnhSY0phMVJLL2NjVisxZ1B2Z2U5VWhiUS8rVnRaNXoz?=
 =?utf-8?B?aEV0THljVXpySE1KNjJIcEFuUkZPcjRXV1JCSStkYWh6OFlSbEZTTzg2d21X?=
 =?utf-8?B?a0NHR3F5T3pMR25tRzRRZDJoQUN6YjBXSEV2bEorRzBzUFdYajJITVhRaHQv?=
 =?utf-8?B?NVdsRjF4MCtnZndmN3o0akcrRnlUWVVodUEydTdMYUU2VU45aGJvaTE5Q2Zp?=
 =?utf-8?B?dEhRMWRBT0hEM3ZPOFQwVk5od2pyVlJCRzdjeHJsdVh0UFl0UXpNWkZHeDln?=
 =?utf-8?B?UUlUVVFlWUhvK1EybTAvQmZ1N1VmamJobGJobkNYN3E2WjJVZDVDblgxSWRk?=
 =?utf-8?B?Rmc2Z2MwWGRJQlFuc2JEKy85SUN3WUhmV1pzMS9ROUx2WjVvdlRFT3NtczZi?=
 =?utf-8?B?b0lMWmlCbnRabEY2Nng5WmsrSEMxTGcxdXlpemtMb1UvamVSeDBPSTZaZ0sr?=
 =?utf-8?B?a1M4Q2x0ZVRodktlRmVOQzcxaEV5RjBGOWhvZDZpWnJZSVZ1ZVhtOEZzaHJJ?=
 =?utf-8?B?ejRHTS80Z1QzS0NpSU5tWUx0YkJhOGg5N09rT1Z2QUxQbUVhMHdLR3pEa20x?=
 =?utf-8?B?bDVvMTJkZUowdnh3ZFU5ZzVERlpwS2FyKzVNQkZ2T0VsSjRLdWJPK3B6d2VM?=
 =?utf-8?B?ckxoOTVuSDF2cUVTbGRwWFo4N3c1aTlZeEpBMGRDV1p6M2hrNU9qaEZpaWRv?=
 =?utf-8?B?bjkyNmc4cWczNEFZTDh5VjZaQk4vTHlwQjdTbnFQT2wvalNSZElGeTRCYjZr?=
 =?utf-8?B?OVdsdm1FNFNMcTFDTmhWbTlZa1VsUDRRcjlldGNHaTEwT2ttMXpXSmZ2SXVR?=
 =?utf-8?B?eEpVY0xvL1JoMThkWGVJajhZcWV6QkdMTDhDWHBObEFZc3ZmRDd6V0FXZ2lz?=
 =?utf-8?B?bzVmTzdBRzVJSExoZVk4SHdBQXFZZ0UxSkl4ZUtsOHZMajh2a0QwVUxRNnZ6?=
 =?utf-8?B?VVBQN0tSSnMwK2RoU2FNNUttYmN5dmFkNzhYbHl5b2FQSE50NkhRRVpWdlZM?=
 =?utf-8?B?aGxmUDFxVnBtS3RScTdFdTJvZkVPdzMvdnFaQWJUSXk5T3lkRVY4RUdPQmdq?=
 =?utf-8?B?SHRRV2duYnRpclRIWWg5Wnplak9RWVg0K1FFelowbldpZnZ4dmthamZOeGsw?=
 =?utf-8?B?R2t6eGlrSjE0ZVpqWFErczUrNlNGU3VmNk9RVGNpQzVRdENEaXBmY0dmMVBx?=
 =?utf-8?B?Z1ZCWEgrM3ZpM2lZekxBV2YzWldBU1hnRDdKSFdDLytRMnFyeDZKZkNibkhu?=
 =?utf-8?B?OHhRd1c4MTk4aTkxRzVzM1RaczVVMkR5QVR6M3RNSXVLOGRCV0Fkb3pRT1Fp?=
 =?utf-8?B?ODZRN05Kd25ZTG5naDhCUXdubkpGbkFuaXczcUMwSmVSc0xHMmVHY1pKMmJ2?=
 =?utf-8?B?RzVCQWR4VDR6YThob05RUm5wWVN4Rnh4a1M1bks3ME12cC9KT2Y4WlBvVEJO?=
 =?utf-8?B?dURiZS9KanhkWXJyWEkxaHBTeHhSVGFQamZrdjM1bzBwRjY5R3RNUVFDQVRR?=
 =?utf-8?B?d0Y3MXlSeE8yNDEwUTZjVlZsWUIwN0ZRTm9TNzQyTWtuNWlJMmVETWxDb2tL?=
 =?utf-8?B?VFR1ZEZ2OG0zNlZqelpxSlBSS1NOU3BqOE1VUnJzbVhQU0RmdkpYSVNYUUta?=
 =?utf-8?B?aU8zTGVOZUlwZXpFOTlQVTEvbFo4TjRkZFlPMmJKTnNodnY2MGc4aEVLZ3RD?=
 =?utf-8?B?aEgyb1NtNlNhZVZXS0h6REo3eHZwSEFXcFBSUGRJZHpycklEQTN6Tk9pbVc3?=
 =?utf-8?B?c2JzZVlCalo4WUdhblNUK3pYY1hhS1ltTDVCNFhhamd4OUN6Y3NtYlJ3UlNU?=
 =?utf-8?B?Ump4bjJRUFhGN3BjaGFya251Uy82dHJCTjJQWkVlRFF4UUN6UEpOZ0tUeFE4?=
 =?utf-8?Q?AWHI=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OEFNNlprZCtzMjExa0RzSmFyeVFtblBSQkkzZ0pKai84OHhpdUlKaVZBMlhS?=
 =?utf-8?B?cE5ySGE1dkJwTHFaSndZcmVydlFtSUNudUZuaGs5aC9mckVCRzdDOENNdnEv?=
 =?utf-8?B?dGVuaDg2TWRiR1hBUCtsUzB0OUphZ2tlSlMwV1hjeUUwUjdaRmRkY1BIUEl6?=
 =?utf-8?B?WTFibGpGS201ck5udVZhUEJ0S2E5alFrTzNKejZWYnAxYmFMK0gxdDFUT1BL?=
 =?utf-8?B?VEswbEJXNWo4dkhNeUFwUDZ5VVphZWovdVl2REN4RWZCTytKMHFKYVRSVnQ1?=
 =?utf-8?B?ZXZSd1FTRnRGclliZ29HdjloT2hSc2dycXNkS1NZU3FHblVpN1dRd1VKZkdh?=
 =?utf-8?B?U0YrRzYyTU5wTDFTOHY4ZTREN05WMWlsbmxFQitvYWMzclA5UU9xekkxZ2tn?=
 =?utf-8?B?Tmd4bzhsZ3lJcnhnYnM4OUpsdy94SE5OeHZEZldENTJoTzA1K0xTU2ErYUEr?=
 =?utf-8?B?RE42UnFPQmtnVTI5RlRYWjZrRm5MVFU3TDlPQlNuc21uZldJVTNDbEQ5ZHNB?=
 =?utf-8?B?T2pjVmI4bTZoV2xXUkdOdHNDaXpHd0FDZTBVOFYxOXZ3TEN2dlA0RkR1Zzh1?=
 =?utf-8?B?ZzR5K3RVOWQwMmZrK0l5Sm1ucUsrNFRFTWJOU3pmajVyLzd2VC9UUUU3T3Y3?=
 =?utf-8?B?RHhuUE9sdWkwSVN4ZTlTMXIvbE5USDY5UUpvSmZ2NTl0UTlET21vYjZKSTRw?=
 =?utf-8?B?d2E5cFRGa2ozN3Z6N0NobURYSjFXK1ZhdVozS242NkRZN1FQaHo5M3dhVCs3?=
 =?utf-8?B?YW9leVRSR0FIcmxUUnB2ZU8rSzQwN1NhUlFkWHFyaHF3QXZ5SW0wd1JXck1C?=
 =?utf-8?B?c0xFbXNwK3hsL0xNZHR3K3ovYy9uUWR6V295TEswRHYwSUhaSzZSTWpZcEQy?=
 =?utf-8?B?ay9XMWZuR1NmcE9sdlJoNExmRVkrbkxSMlFqL0VqYWFiM3pTZEVoVStjTG5C?=
 =?utf-8?B?Q3lLN3V1SlovVlEwZkZsMjRaVWpYQVNuZ3J0WndLa3pWTzlzK0p0OFZZeFJV?=
 =?utf-8?B?OHREYmpsL1pndTdoek1WbXJkYnk4S2ZrbFNLanVyNmRCVkw3bnlYMU0zTGQx?=
 =?utf-8?B?dGJOM1lSRFIzeVR4L2gzRjl4V1NhS2NtMGd1SDV1eGdTSUQ4eXMvb2VGUmZk?=
 =?utf-8?B?MUtzUCs0VlgzM3VnZGcvRzYvZWE2ajR5b1h5Yk5pNG9ZOGFFek9wZFZpckR3?=
 =?utf-8?B?cEZrMmNnS1Y1b2tmZEZUMVBBS2x6MUVnUkRkYjJKY3FjOTRzWUttTm5kakt1?=
 =?utf-8?B?eWM4RnRaV0piazh2SmhsUXFRRzU4VVgzcmhtR0toRVRvV0E2WWNCblZRZzhK?=
 =?utf-8?B?K2REMkxkaUpab3JrTmg1YituK2N1SmtDNWppcGRzK0ZrTUhoekUrWXNieVNi?=
 =?utf-8?B?ZnFUSXNsUUJ4RXN1SEI3QUlBY3psOGg0UGhYNnNaOG1FVU1nQVNnQVdtbWQ5?=
 =?utf-8?B?TmlqWDBmZkxxWnVxSnJhTGtpRVQ5WERiemYweWZ6Z1ZnWWNOYmkyWXBBQUdT?=
 =?utf-8?B?a3I3VW9VdXpPWENkT3BRMURrb3pSM3l6MGowQVJqbmhlckk1OE1RK3k4ZWto?=
 =?utf-8?B?dW5zRlJ4WCtsM0ZUNXNjVGdyMmt5MFJXTkh0RCsxeHRROWU2YzJhRzZZYmdx?=
 =?utf-8?B?aFQ2Z0VlUEcxNFRwMk9KWmtUMEN3a21hZ0xjSzlUb3JXSHlMaUJ6NmNnUlA2?=
 =?utf-8?B?OWVkZVBVNDVFZW5XanZKZzNyR2hIUWlMTnZkek9kU0l2Zm10ZDhOUEJiR2tK?=
 =?utf-8?B?amx3OE05NnRBSzRMRjNQYml0ZHl0SlVzWVVVS0xkTng0aHlndjd1OUZabTN2?=
 =?utf-8?B?MGdjMC9KS1R2cERYK01MMnhMeFgySUErdUNLOG1ZaWxRWGJwMWxta3lnUFMz?=
 =?utf-8?B?WTBUNWh5RlVLOGR2aHBOT21ITjVFd25NcHJ5MW0zSCtqTVpzZmhWeDBpdzla?=
 =?utf-8?B?RGNTblRUSllTUDYyWGwvelcwOCtoU25TZUFyTGx1bnpzOEtPSDlYQVRzWUEz?=
 =?utf-8?B?eEFDNjlzd2p6QjAwMTUxMDhySnZkL2tkS0YzVVo0OE40YU5Ba3FZR2NiUzhF?=
 =?utf-8?B?ZldITkJ0NmExOERzSVBWWUNCMXFWL1I3emRTajNTa0IvRkhGajdRUThUamNE?=
 =?utf-8?B?K280SGtVRlhxVllERWtLTkVMa3JEbEQ3OHJnOFI3VEtZWWlhL1VIRUJ5RG1O?=
 =?utf-8?B?YlhxNjNLbndrUWFXWW5WTml5WDB1Sjg3WG1EQ2NhZUxyVmtWVGpqOWRWS0o0?=
 =?utf-8?B?WEZoTEZ6bVh6YjVmeHBXc2V1TkNoV3FsMzVCUFNsbVZVdHA1c2FhUXRDTyts?=
 =?utf-8?B?aC8vd3FRckRuZm10ZjdSRGJjaHlSaWZ1Z1dMNjNua1BpajVhNnFXdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 399b1aba-b6b7-42ff-59f4-08de7077166c
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 11:56:31.4109
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: f0/c1GfgTEgjJNPxLZTUeSlU+T7hcaFQ620nOP7qtmfa4ofC6rjx9VT0jgd51NG1wABnepVLDqRMZn/8SmtPPL1CM0liUSofHGd74uDR0F4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6196

On 20/02/2026 10:10 am, Marek Marczykowski-Górecki wrote:
> On Fri, Feb 20, 2026 at 08:34:08AM +0100, Jan Beulich wrote:
>> Is it possible that it's not so much the compiler, but glibc, which is the
>> problem here?
> Indeed, that's glibc. I tested it starting with CI container and updated
> packages one by one - it's about glic 2.42 -> 2.43.
>
>>> So, I guess iterate on v1?
>> Perhaps. As per above it first needs to become clear where the issue is
>> actually coming from. Otoh making the code suitably C23-const-correct will
>> want to happen at some point anyway, I suppose.
> I'll sent v3 with remarks from your review on v1 applied.
>

Agreed, the moment we limit tools to a specific std, we will fail to
find stuff like this.

In my copious free time, I keep on meaning to do one CI run with Xen
forced the the newest std too, so we can pick up fixes as we go rather
than finding them all in one go while trying to do something else in a
hurry.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 12:12:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 12:12:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237068.1539528 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtPN4-0002MS-R8; Fri, 20 Feb 2026 12:12:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237068.1539528; Fri, 20 Feb 2026 12: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 1vtPN4-0002ML-OE; Fri, 20 Feb 2026 12:12:34 +0000
Received: by outflank-mailman (input) for mailman id 1237068;
 Fri, 20 Feb 2026 12:12: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=8OLq=AY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vtPN3-0002MF-7c
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 12:12:33 +0000
Received: from fhigh-b1-smtp.messagingengine.com
 (fhigh-b1-smtp.messagingengine.com [202.12.124.152])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6d1fc496-0e55-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 13:12:30 +0100 (CET)
Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41])
 by mailfhigh.stl.internal (Postfix) with ESMTP id 227EB7A0068;
 Fri, 20 Feb 2026 07:12:28 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-01.internal (MEProxy); Fri, 20 Feb 2026 07:12:28 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 20 Feb 2026 07:12:26 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d1fc496-0e55-11f1-9ccf-f158ae23cfc8
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=1771589547; x=1771675947; bh=qtVpbKCQ3+bsYVw2O+QCWfNBAGnNce1p
	FTQ04TaAvzo=; b=f5AsRcpXT2oeNADDjIKmfhhvM92PAY3UzoNkuVtWCn1wWRmr
	3ZkHrgpmgCBHdUaT4TFfW0k4R7w6xbr2GA1RjkbenwOQ2w/I5Y3CdQQ1K3FSxxed
	A0OJyJE8jiV9brNoo0HL6W6OG6+jxM+yCchoroTYvVtNFpXvMOlCJ79FTrzGylUx
	tGsrOS56m4Kp9GvKFtQHeU2HE6WC0Ia3sOmWoO75guouVMsqomLuFswonnXqBqMT
	fSVcfaP4hMReYIwa8BEndtzLAomooX46QQ4S82uxLC8OCIBJ/4FRxlYdB67ycUWv
	83RVPCQzJArynyYFOTvvD/oUFlyS4rZdOW/ZAw==
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=1771589547; x=1771675947; bh=qtVpbKCQ3+bsYVw2O+QCWfNBAGnN
	ce1pFTQ04TaAvzo=; b=gKTu6MhnzSJcUZlO4z8bbBSpYrGywHzM+iOwD9S0bkFm
	Cnjm0OPFM4u5m4cAOXCnLb0fx/kT8Jrudv5KId+nk/5Edfe6x2uVYpFT2xYpCehE
	uER/zYyXanqT6Nev97k/27VplVECv7F0EirtHDnk5oFGQo/OFPhQZUTkoSbaHd4I
	Ohe47qNhLx9TNmO11LnOl9WVcaFHPhvMxOeyVLz8AsUzTKsvCtOXj12fHhxL73B/
	PnCDSGESvCAhprLG8wshjPz/qQ7YRONq16nuMGupveFze0teC+vFz/s8TJnam26V
	pr3eu7KNiR3vs5F4e6Zw8OrEL4w0dgNwTqhYDdR/fQ==
X-ME-Sender: <xms:q0-YacG6ETBB1EpAxKjtrFRZlDVlafH5I2G39GAjcFquzhvHUSH1jA>
    <xme:q0-YacWqcFA2KVLNpiPGjH6007A6J5Ma4bVrnLcWdTJOwJwdLaHAoNV17o2RlbWZl
    LkujqnIl5nMbewR_JH-9Bmb2akyqaYFZYWG7jO5a4UKtyAReQ>
X-ME-Received: <xmr:q0-YabLB6yq_PSpxiLjkngocHSN2u8EycGsOcdAExZYS7L-MtdzkTITtBP8E_Q5pYy61tJx4hf5FYi-665jpMGZdkoxDAl_lFR41MLxVPD0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvvdekgeduucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhephffvvefufffkofggtgfgsehtkeertdertdejnecuhfhrohhmpeforghrvghkucfo
    rghrtgiihihkohifshhkihdqifpkrhgvtghkihcuoehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmqeenucggtffrrghtthgvrhhnpeelkefhudel
    teelleelteetveeffeetffekteetjeehlefggeekleeghefhtdehvdenucevlhhushhtvg
    hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghrmhgrrhgvkhesihhn
    vhhishhisghlvghthhhinhhgshhlrggsrdgtohhmpdhnsggprhgtphhtthhopeegpdhmoh
    guvgepshhmthhpohhuthdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdig
    vghnphhrohhjvggtthdrohhrghdprhgtphhtthhopehmrghrmhgrrhgvkhesihhnvhhish
    hisghlvghthhhinhhgshhlrggsrdgtohhmpdhrtghpthhtoheprghnthhhohhnhidrphgv
    rhgrrhgusehvrghtvghsrdhtvggthhdprhgtphhtthhopehjghhrohhsshesshhushgvrd
    gtohhm
X-ME-Proxy: <xmx:q0-Yac9yn9tYDeFYmlhXFMGc6NHC45_WV4KZHI9uzqWDwEHVNEQtwg>
    <xmx:q0-YaeIRH8ol15lpkKuDRWY9jaxibR4SMQEhSpRarmDpXgiTONSfwg>
    <xmx:q0-YaRn3OcA6Gi_r378AR83wAhvM9z584iVZB_BXCHa9E1tT2LQxdg>
    <xmx:q0-YaSO_pe1uyHXfecJUO4Hy7wj8J5XUwE-t0U7kZ4D-6yZxSPd46w>
    <xmx:q0-YaWxTCiaLh8JyMyTUO4tUiRfgYUmLQ5ODnp8BN-rHCbIc4R3uM_Lu>
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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v3] libxl: constify some local variables for building with glibc 2.43
Date: Fri, 20 Feb 2026 13:12:00 +0100
Message-ID: <20260220121220.52078-1-marmarek@invisiblethingslab.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Archlinux just updated glibc to 2.43+r5+g856c426a7534-1 and that
causes libxl build failure:

    libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
    libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      447 |         endptr = strchr(str, '=');
          |                ^
    libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      452 |         endptr = strchr(str, ',');
          |                ^
    libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
      454 |             endptr = strchr(str, 0);
          |                    ^
    cc1: all warnings being treated as errors

Add missing consts. Note in libxl_cpuid_parse_config_xend() non-const
endptr still is needed, to be compatible with the second argument to
strtoul(). Add second variable for this reason.

And while at it, move semicolon to its own line

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
Changes in v3:
- go back to adding consts, as it wasn't about GCC after all
- reduce variable scope, move semicolon
Changes in v2:
- revert to old standard (specify it explicitly now), instead of
  adjusting the code to the new standard - this way is more
  backport-friendly
---
 tools/libs/light/libxl_cpuid.c    | 21 ++++++++++++---------
 tools/libs/light/libxl_internal.c |  2 +-
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/tools/libs/light/libxl_cpuid.c b/tools/libs/light/libxl_cpuid.c
index 8420b2465f39..14f08df33a14 100644
--- a/tools/libs/light/libxl_cpuid.c
+++ b/tools/libs/light/libxl_cpuid.c
@@ -440,29 +440,32 @@ int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *policy,
     str = endptr + 1;
     entry = cpuid_find_match(policy, leaf, subleaf);
     for (str = endptr + 1; *str != 0;) {
+        const char *endptrc;
+
         if (str[0] != 'e' || str[2] != 'x') {
             return 4;
         }
         value = str[1] - 'a';
-        endptr = strchr(str, '=');
-        if (value > 3 || endptr == NULL) {
+        endptrc = strchr(str, '=');
+        if (value > 3 || endptrc == NULL) {
             return 4;
         }
-        str = endptr + 1;
-        endptr = strchr(str, ',');
-        if (endptr == NULL) {
-            endptr = strchr(str, 0);
+        str = endptrc + 1;
+        endptrc = strchr(str, ',');
+        if (endptrc == NULL) {
+            endptrc = strchr(str, 0);
         }
-        if (endptr - str != 32) {
+        if (endptrc - str != 32) {
             return 5;
         }
         entry->policy[value] = calloc(32 + 1, 1);
         strncpy(entry->policy[value], str, 32);
         entry->policy[value][32] = 0;
-        if (*endptr == 0) {
+        if (*endptrc == 0) {
             break;
         }
-        for (str = endptr + 1; *str == ' ' || *str == '\n'; str++);
+        for (str = endptrc + 1; *str == ' ' || *str == '\n'; str++)
+            ;
     }
     return 0;
 }
diff --git a/tools/libs/light/libxl_internal.c b/tools/libs/light/libxl_internal.c
index 2941ca0bbd0e..d70cfed7d88f 100644
--- a/tools/libs/light/libxl_internal.c
+++ b/tools/libs/light/libxl_internal.c
@@ -204,7 +204,7 @@ char *libxl__strndup(libxl__gc *gc, const char *c, size_t n)
 
 char *libxl__dirname(libxl__gc *gc, const char *s)
 {
-    char *c = strrchr(s, '/');
+    const char *c = strrchr(s, '/');
 
     if (!c)
         return NULL;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 12:37:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 12:37:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237089.1539539 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtPl3-0005Vg-M4; Fri, 20 Feb 2026 12:37:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237089.1539539; Fri, 20 Feb 2026 12: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 1vtPl3-0005VZ-J5; Fri, 20 Feb 2026 12:37:21 +0000
Received: by outflank-mailman (input) for mailman id 1237089;
 Fri, 20 Feb 2026 12:37: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=C18W=AY=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vtPl1-0005VT-Rs
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 12:37:19 +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 e445cc86-0e58-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 13:37:17 +0100 (CET)
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 7D2CD3E727;
 Fri, 20 Feb 2026 12:37: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 47AD53EA65;
 Fri, 20 Feb 2026 12:37: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 D0leEHxVmGkQJwAAD6G6ig
 (envelope-from <jgross@suse.com>); Fri, 20 Feb 2026 12:37: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: e445cc86-0e58-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771591036; 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=I+MaX3FDjdggozygtwrYHcnkihzneYlHj5Zme8bj3hU=;
	b=dpQC2Ojv2JKBvmoHZ3RJeqIWeGgF5wjtu3o33r6mNPYI4AVy/UWuuq6JgVVXlcwBAYWce6
	CzFn3ZLddiXHwGmrDCNHK70quuXLNNkwBYDQ8sloFLu4/uahexeHN7/BPa4XsRckLBmbOB
	CEhnUuExEKMmfZzyVwFLENWGNBYvjEo=
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.com header.s=susede1 header.b=dpQC2Ojv
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1;
	t=1771591036; 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=I+MaX3FDjdggozygtwrYHcnkihzneYlHj5Zme8bj3hU=;
	b=dpQC2Ojv2JKBvmoHZ3RJeqIWeGgF5wjtu3o33r6mNPYI4AVy/UWuuq6JgVVXlcwBAYWce6
	CzFn3ZLddiXHwGmrDCNHK70quuXLNNkwBYDQ8sloFLu4/uahexeHN7/BPa4XsRckLBmbOB
	CEhnUuExEKMmfZzyVwFLENWGNBYvjEo=
From: Juergen Gross <jgross@suse.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	xen-devel@lists.xenproject.org,
	sstabellini@kernel.org
Subject: [GIT PULL] xen: branch for v7.0-rc1a
Date: Fri, 20 Feb 2026 13:37:15 +0100
Message-ID: <20260220123715.834848-1-jgross@suse.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.com:s=susede1];
	NEURAL_HAM_SHORT(-0.20)[-1.000];
	MIME_GOOD(-0.10)[text/plain];
	MX_GOOD(-0.01)[];
	TO_DN_NONE(0.00)[];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	ARC_NA(0.00)[];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	FROM_HAS_DN(0.00)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	MIME_TRACE(0.00)[0:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.com:dkim,suse.com:mid,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];
	DKIM_SIGNED(0.00)[suse.com:s=susede1];
	FROM_EQ_ENVFROM(0.00)[];
	RCVD_COUNT_TWO(0.00)[2];
	RCVD_TLS_ALL(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	DKIM_TRACE(0.00)[suse.com:+]
X-Rspamd-Queue-Id: 7D2CD3E727
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Linus,

Please git pull the following tag:

 git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc1a-tag

xen: branch for v7.0-rc1a

It contains a single patch fixing a boot regression when running as a
Xen PV guest. This issue was introduced in the 7.0 merge window.


Thanks.

Juergen

 arch/x86/xen/mmu_pv.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Juergen Gross (1):
      x86/xen: Fix Xen PV guest boot


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 13:40:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 13:40:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237124.1539549 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtQjc-0005I0-3N; Fri, 20 Feb 2026 13:39:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237124.1539549; Fri, 20 Feb 2026 13:39: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 1vtQjb-0005Ht-WB; Fri, 20 Feb 2026 13:39:55 +0000
Received: by outflank-mailman (input) for mailman id 1237124;
 Fri, 20 Feb 2026 13:39: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtQjb-0005Hn-6V
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 13:39:55 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a2cfdf6a-0e61-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 14:39:54 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SN7PR03MB7153.namprd03.prod.outlook.com (2603:10b6:806:353::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.15; Fri, 20 Feb
 2026 13:39:49 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 13:39: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: a2cfdf6a-0e61-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eqBjgkljgtXwDj76pD5uT0rsQao8hTPODZR5hrwmA9yfZspI57n23oCoXFlJWOivTZBtaaodhnLHE+A8OyDIg6oaq/Vxcem+882Xb3Fai9PjhoewBOrmFvfvOB00He6NotpKGlYDvHZqf/J7Y/dQQmexWCUtxgRnwWY1Ow4y33BgEhbtD6r6xnoJLfqAvVnMt0YH51EIbewIwmHKw50d/AAnz3QyXvQwcT6BBNSj19Z8/gnmgtFhgjCT/0LbELBI44oGSPyorLsQXg3kw6nIEruqqyRr2uiCC1wbd0DdHuAPtjx7AyiRVKVG3JZl2LImfWzu3HZ9FZUZw+hjgRHwrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2IqUASny3tPCh8erTjAVLjdnTNSchbWRdSKLR4yM834=;
 b=wvY9IPwxuOCs2gRxbfxTwWEd/Te9BDRBR9jlpCkghusIVX6NRWRBGHL15EkY5FkvYI2qPcdGmzrMiVA6VkF7gPWlwDNbyn03TgRvHOvDyhVtguH7FkB9xUoZ467Xu0uRTD8CQUcfeo5FknyLAqyqu688OXMTv+9iOW+B5Lh+H9lxAK4kfXb/1WiajiTYr7rEmQOFi850BPujfbj5Of3z9Xf21RnfF0qgklH30JjYjA0kDbuakWYI4hOtEc9c/smCduIRMUNKqL5pLEAwAKlaiAR9KYYQRFcD9WwhJNkmvIfU7HLcISyRftScBgiQPN+cQ+6EZ72PE/DEsK1q/gnDqA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2IqUASny3tPCh8erTjAVLjdnTNSchbWRdSKLR4yM834=;
 b=PZQ91dpabsh6tLbHc4F7lwOFBM+bsY4jhbwhGGoaEdUjPLSSusHa/AU99bXWOGSU4AYIfqpoKyjZ+rfKaK4FCRHqfTvQ0wBmT7fxcldOWEtYR/yfD/5vhL1Ru2DVhMBijy2d0OXVRwpFlvf7JJDWGDTgnqNjS7FDhjyt69st7EE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <9e305671-421e-4d05-ae0c-4549d1431cdf@citrix.com>
Date: Fri, 20 Feb 2026 13:39:45 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 01/12] x86/shadow: reduce explicit log-dirty recording
 for HVM
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <55287753-1973-ef36-3802-82250b8bbad8@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <55287753-1973-ef36-3802-82250b8bbad8@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0130.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:193::9) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SN7PR03MB7153:EE_
X-MS-Office365-Filtering-Correlation-Id: 6d4a2a1d-d40a-4ea7-85a0-08de70858462
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?allxUkowcHNtZVlPQWFSNjhoV0VESDJ0bVE0Y3BYMlowM3JsZmhheDJyMDI2?=
 =?utf-8?B?dXFuZTN4Ti9hNTdydndBM083VkVRS0k0WFdJUGozMi9LY3NLYTJ1eDl0Y3No?=
 =?utf-8?B?MUJiUUJZWllYd0tKV1hFRmZEL1lRQzN2dUFqUzNFbkhBMkJaUXpIUlBWaGdL?=
 =?utf-8?B?VnpyRWQ3WUpKdHdrdTArU3Z0Zzg0U2ZidWlFRERPbDlvTDAwTjBsVmYyOFhX?=
 =?utf-8?B?dWpmV0hCOExEY0FKcU1NRnhGZExibjJpcUFTY0JZYUJyVURyejlxOXhJd25J?=
 =?utf-8?B?b092dkhpaW94RmwvZFczWklQcUc3Mm5pbVN0cXdrNGpaQXZROUR4aTVXZFl1?=
 =?utf-8?B?VlRmT2cyQWRqbFhKVGlOYWpIanFLWVdydHhLM3Byelp5cHlLZUQ0Wk4yRDdS?=
 =?utf-8?B?dnhaU09SVTY4TmtRN0N5WHRRQXF2SU8zaE5DN0hYaGhheFhpZHkrUlUrTGl3?=
 =?utf-8?B?VTZsYmE5by9ZVjVaaThIdysxc25aQUtZTW93WERuVVZZTGcxZkVFakVWU0VU?=
 =?utf-8?B?cHFCQXJFZkc4R1hkOTE3dGNCbjFldVNiUy9XRTVxVnZ4eTdUL0t1b2ZoSm5L?=
 =?utf-8?B?U1VnNDdsQkJXbFlxdjB6dEduTmRhcVNISDBSTG0yeHBYTFdSSGZpOXlOQlF4?=
 =?utf-8?B?TEp0czdQMzN3VmcrNmFZZnU0aHpzdjVxUDErNzRMUFJ1U0VZdWtXYnJGVk1K?=
 =?utf-8?B?azB2S3JOSE1HeHJxWWNSdnhZUFEvQm0wRGZHQXpUUDZtaENtaU5rRTFHUDJq?=
 =?utf-8?B?OWpub2Nqak1wZmhIREdBQU81Rkh4ZnE2SURONE5HTzEva2hyYllMWklPZnBi?=
 =?utf-8?B?QlJ2TmUrMGdyNHJHdW5xenNuRkpTaUFuNnhLNWp3SmRscGc2eW5YNGlDbnRy?=
 =?utf-8?B?MXMvTHBNZ0x0OGVydjFreTFWd2IwM0pFcldFZ1UveUJMYlJaakVVTGJsV0pN?=
 =?utf-8?B?M0JuMDRoMnk1aHJYM2hreHZEbDVUbE5DTitueFc1VW83bnRZTjl5WmhLa20y?=
 =?utf-8?B?dFMrSXB2bkF2V011OGN3OTRPM0R3alVCS05IZ2J4TVgwMmdUdTc2dC9TUURk?=
 =?utf-8?B?Mm5pMElxWVhzb0ZsVUdmWERQUHZPMmJnakxWUzk1dkFFVCs5UENOcFhtSmZl?=
 =?utf-8?B?ZFcxOTY2QWZxeU8zYlI3NlBRSHNrZEZYcDJyTC9xNG8wOSs1ZkVUWWJONFVU?=
 =?utf-8?B?ZzBaYWlZb1FtbUVXNmp1M2ZzRUdGMEkxTDZ0cTFXbE1ReGsvYWpITGM0WkFJ?=
 =?utf-8?B?dVZZQjVFL1kvM1gyMnh6QXlrNi9iV3RtdWpNc0NNVFptWjUvenhsT0dMaThD?=
 =?utf-8?B?TkcvMUh6TnQxVWVNbVJrOTFlS0tVNTI3RFlVekliOXJHbU9oQVRFOERWaW91?=
 =?utf-8?B?Wm1PM1hwTTk2RVlKajFNWVByUms5Qm5jeUhQY2d4M21wbmd0YWgzYVd5L1la?=
 =?utf-8?B?UDJERVE0cDRrTmZFRGZxVTBCaWU3b2E4NEo5YlVJVXdoQ1NZbVVLMXBwTFQy?=
 =?utf-8?B?OE91RENWNDNmcmNqL1NCRHIwTktXMmRGdDl4bTFISEhXanZycTIyU3ZoOWhU?=
 =?utf-8?B?S2VJdVFJVnJzQ2ZlSzNtQ3hqSGcxWU53Y2RLZHdXRFFKeCtZMG83UzlNYnd6?=
 =?utf-8?B?VnZsSk1FMlNQelQ2Y29mUXJubkhlL29NL0dsWWI3WmJzK1lMOWpxd1JWUDlD?=
 =?utf-8?B?aVZhMUNWdUh1Q21XWGdaSGh6MVltN1NsWTZqVWE2bUFRdVZxQkxUNDhQL2NM?=
 =?utf-8?B?OU5MbzdpbXRMUEM5T1JHMTdMd1ozNytLRTVyWWg3NWY2OVFNRnBuUmNZZUNY?=
 =?utf-8?B?NmF4NnlHbGhMV2c0TjZnd3hTbU5Wd0hPaW9uQWx1Z0pHQWhQaVcyZFErQllP?=
 =?utf-8?B?Mk1wb0JIQkk1QnlRSGp2bTEvckVHaUx5U0tqY2ZKMVkwaVZZaTdWMXphSlo5?=
 =?utf-8?B?RGtsU1FoRm5HSmtYTzR3dERxS0t2TisvT1RNQ2VVdzJjNHZ1NmtyUlJQZGNL?=
 =?utf-8?B?NXE5aVhucHd4bWtzUnU3Mm45NDVlMmZtKzZFVzNkSnJlTC9ma0hzTlZmWWJs?=
 =?utf-8?B?RUZxM01BYW5HS0Q3d011ZDNXYXJFOXdVR3Y1OWhGbTlvdGsyc3NLOWdNYmhR?=
 =?utf-8?Q?2XbU=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?a0V3eElYcEpVMk10eGhpU25yQndTcG1MTXJRUXNJVHJhemV2MFZKUEZFRHA4?=
 =?utf-8?B?dUR5U1RNeUhCLzZiUGoxd0RmaTlkZnorMmZTQXhPNk5aMTNmUFJIV2I0bWhh?=
 =?utf-8?B?NEJJZGxCVzFranRlakNkZ2xzRkROMFZ4c05WWGowclBzMktQS3pZK3VrNUY3?=
 =?utf-8?B?QzM5VXhreC8vL3lqMk00R1BmeHVURUszT2R4Z01kOVNMVG5oZU9leTUyb0JH?=
 =?utf-8?B?OWFrbjhNWjZ0VXJxOUZlYWVIdUZFOWVnYlo0dXpYVktKUk1IZXIzRHViWlNx?=
 =?utf-8?B?ZTZqdGljMzI2UHA2TFlSM2xHbmk2TXpiNzI0VGN0Vnlad3B5aHV0alllT0dB?=
 =?utf-8?B?WFVJU2J2bDVSTU91QmdYVGxIcVVUQ2VQSEZOQ0tNalJnVmFXNCtBTnhZaW5G?=
 =?utf-8?B?M0U5am9CZUM4S1pBQ2lUaHdRbmNSaWtPcVNSMHl3NEJKc0xVaUJHa2xjRGZG?=
 =?utf-8?B?dXVQcDFHVHVHcmE5L0xkWUw3eFhLRXJxOG1yMjVSRkczQkFnS3FUNUEwLzMy?=
 =?utf-8?B?dmhSYzZWeEJ6ZFBLMTJrRkErVHZDZ09BTHYwRENZRkxXNE9iKzA0OVVyWmJC?=
 =?utf-8?B?elh0VklzZmQ4ampvc0g1R3ZvcCtJbE1ZcVpiZnpWL1UvaDZXL1AvNWc3TVcr?=
 =?utf-8?B?bW8yRTAxK2Z0VmdzOTU0ZituUW80a2VYa0grdTlIejREbFYzZzdTWkxldXpa?=
 =?utf-8?B?VEpQZkk0MU5CY1FMQjNwNnl1bHRHWk51TVg4ZkZDQk5BT2RFMFAwakF6YVZH?=
 =?utf-8?B?bDVYdGVQR1ZaNnhvd043YWVBRkZLVzF0QVdVTGZzT0F1M0lYOVVCRzJleFlH?=
 =?utf-8?B?eTZFd2pvREphUkhOekczdzlJaHpjcUs1T1dqN0pueEpldVg5aTZWR3BiT1ZD?=
 =?utf-8?B?bU1PN1BqdTRhY3pFYmc3M29BZHVka2E5T01SSzJnemlSQnF2U3MxbmpDNzFx?=
 =?utf-8?B?VnBaY1FZUm40SnBzYlZWSlpEKzcwdDNHQmltTDB3NVNIbUU1MEhCMXYwYU9L?=
 =?utf-8?B?RTBzNUlPT25YaFNKR2FJWGZHRXZ3cmx2NmNLaHllclJNT0ttek1qMlRrdHFM?=
 =?utf-8?B?VmsvSWJxYVpZU3dFV1NHZllpUktOQTVERUpXd1l6akwxa25nSW1JTTN1SS9H?=
 =?utf-8?B?eE9uWWRBTWxFS2JEN3BjbGpFSmhIM0d4cmJlaUFwY284QllXOS9TNTBublYz?=
 =?utf-8?B?Qkc3anBVWUNvankxZWNNZ2hGMVhIWWxwYXl3UFNZQUtoU0FLUHJ5TCt4Rkx0?=
 =?utf-8?B?L1V6MjZ6ZmREb0VDbWM3NVZRMXkwVkRzdWwveDh2SmhZQnBJMVFxclVYRVJR?=
 =?utf-8?B?SkxONGdZZER1VUNnL0NxRDJQeUJTdzVMdnNTOUpQWmhXZ3V4Qm8yd2JkUDNH?=
 =?utf-8?B?dXlRQmgvcW1sZmppV0JTeURqK0tNYTdIVnlnc09veEpXUEp2OUZUWVlEbStM?=
 =?utf-8?B?aEdBbzRtNlBjaHdjZ1NoSUxZRmtYbW9GT2lIUjMva0NNdjVTVER5eCs0VkRu?=
 =?utf-8?B?TGc3bjFhd0RHT2cwNG95VnArU2F4S3R0TmVVbnpGVldIS2U5UVpIVDQ0NXBY?=
 =?utf-8?B?R3pmWHc4aTN4TmovVlJCQkNKbmtmRE9Nb3NtaW1PYzhueXBxQ2I4OEN4Z0t3?=
 =?utf-8?B?eFNxbndzL05DbFdab0FxVGFyWGl6bzROTHVDOUwrUnVaaXhOd0lZTXlTMzBL?=
 =?utf-8?B?dkYrdnBNMFl1Q05BSi9TbGRFMjdpbVNPeGk2YlJHR1hnMUp1dSt1WjJRaEpZ?=
 =?utf-8?B?ajFVMHJRN0RpM01BVmY2aFB5eTJMak5EaUpETklCU0JtK1k4VHNndXdvME1t?=
 =?utf-8?B?UFVUWkhOdGo2QVZsZ0RrbUVHL3FtTUhXZnpFVXNOdG80VnR6aTFJSU5DblNT?=
 =?utf-8?B?U29JckRQOTIxdVRkWnpSUkthUDNJeksyTWczaGVteERhZWo5L1hib2pqUXlF?=
 =?utf-8?B?ejQzbFBIeHpVWjg5M2JmQUxCMTZEc1JWdXR6Q3NOYVlHWmlPbktUbk1sVWZr?=
 =?utf-8?B?aklKQWp1amNkUnhYRW1HRXEyOVpPM29oMXJEOUF5em1kU1FQQ05ranJaek9X?=
 =?utf-8?B?a2tudVIza3Jac0dSZ1MrUitLOVg4OElDMms3Q0lxanNNbjlIYmhGQ3F5NEN3?=
 =?utf-8?B?Yjh4QUZWVWN4QUJqbGh4V3B0LzE4dGRDek9hT1hRYk41QkMrK1VHK2FZc3p3?=
 =?utf-8?B?NjBZMUtCTmtFMGtlN2RQWUNZaXozdVpjOWNVUXVuVmREbVFLdnQzNG9wUCtD?=
 =?utf-8?B?NWMwOC8rR2hqZStaZVB5WW13L3UwejcrcmNOcVh6Z3grTkJtQzV3TiswQVMv?=
 =?utf-8?B?b09wYUp2SStIRWZTYWEvTDdSZUpzTXhCSUE3eGFTSlhGWUhRTmVxUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6d4a2a1d-d40a-4ea7-85a0-08de70858462
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 13:39:48.9451
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: In9qOJJvwwiLUEE+BixqpmrTVXJ6LV+YrsR1ITaUhd+Jqbasq39mQMXqwJSwaJykmnC6dH87/N8CP2i7gxGKuz40/UyjiTGX3YuUxUJaPvw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR03MB7153

On 16/05/2023 8:37 am, Jan Beulich wrote:
> validate_guest_pt_write(), by calling sh_validate_guest_entry(), already
> guarantees the needed update of log-dirty information. Move the
> operation into the sole code path needing it (when SHOPT_SKIP_VERIFY is
> enabled), making clear that only one such call is needed.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 14:07:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 14:07:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237147.1539559 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtR9v-000126-2g; Fri, 20 Feb 2026 14:07:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237147.1539559; Fri, 20 Feb 2026 14:07:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtR9u-00011z-W9; Fri, 20 Feb 2026 14:07:06 +0000
Received: by outflank-mailman (input) for mailman id 1237147;
 Fri, 20 Feb 2026 14:07: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=S1uT=AY=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vtR9u-00011t-8S
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 14:07:06 +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 6b5ab050-0e65-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 15:06:58 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-4359108fd24so1318850f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 06:06:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796abc9b2sm53090830f8f.21.2026.02.20.06.06.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 20 Feb 2026 06:06:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b5ab050-0e65-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771596417; x=1772201217; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ulmaBb6NIer21ZQ4qFoejIt+U0Qh8pKI77FDh1EF3bc=;
        b=IMIDtkBAq5JETi9bfgX/uRhrUhlAAgttcHjibL58GeP0y6SlzxCRer9E0O0mOOboOp
         Q0gbRb2v/saPE+ElGtR730HY06zO9R9iwLXm8K9pxasR8B3c+XsVU1S7cO/Agi7jRxxD
         x9WLDF5fo3+GsFZW8vX2SH9D6JETf8n3romO5Y6M3jZkzZaHfhH1XzCt3/bo7chzp2q3
         dZrdOb0D4BUIQ/FbwcybLchuFWaWzUFvnyS6546PPfBUJbHN9bFmvIGEOF561cbGduCz
         f1aiq1CGXcMc0TFgKXwM6ccz3302CfPwSTWxnmqaAnpQpuyNkTVS7AEt8fl7/c/K0Ir4
         /cbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771596417; x=1772201217;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ulmaBb6NIer21ZQ4qFoejIt+U0Qh8pKI77FDh1EF3bc=;
        b=RLXojC2vpWIxMQtnJvo1IAwyh0miXtGziA5ntfPalVSqDhly88Op/BQKP1ijVVV9M3
         FIq+ipc3rlLGDjdYHfFjP8Z6IWzRo1tZk/GFWIZMmq1TOiyB01DF4Lumbhuo8m138S0j
         sIe/8i1gobAc7Zr6Vhx2G7seN6TG0F63diz/bYrYxCpmoOO6Iqm5Wfbxf6vZxqxAaiFj
         LFxkMKn3kAywJlvPNK+uLON/h8t0wV8AChu2tPjcyEYs60ELReMCEjQgyYcdVRRFBXzB
         POXTZtpBxMkRBcgmX35EkKFiTUsYh5eczgvk0eWCSjdVyEnSN47kCRWUSKquCjW5gIQy
         H2AA==
X-Forwarded-Encrypted: i=1; AJvYcCWuLXjaUHdSOFitlkxBYB7nEUZW/ELcAXSLvGkssFl5WILZ+wnRv78eFli/Mn3zXAMYLVdhy8nBuWE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzHNUHxmH40lpSQ53R6814ojY1UiX7kufQWA1oogIeFuWK5Z//q
	Z4G/fTF8ea/6L3tN1gmNUphjUVgrvOpmlR53SnGdlnGedWyBahHZUCULkMNH3NL7qQ==
X-Gm-Gg: AZuq6aLWz6WWd2lkG22I+5q0BI044g6BTkK3dRs9L7PL2/dzo1DZbkE7DJOgpEZkPNA
	zIKYzPEJOcTXraDshgYcSWfCG+GJWUk7l7PbRhoWWk2kVJeeT2wp7wkzzVLweMeFJ1IJDtVxS6x
	5I590c4WxqIEbwYb6tlxf0nFfnL5Qyq52oZr9/gWRoTllJtkGwrFkuj/IiFpfqc37vlGOraH1N2
	IgaNfJtfl7Bkn4rXvok2JkfuxEU3GeNZEHep92010LMD1lUG9PsDwixMS9cZt64Rt+KpaqNit+V
	vgPWiCVOq0HqR7VdB5iLuVSE6qcuc8X7tVU7ITUhq6lPimlGUB9KTxR4FRSKYBs3jbGp0/FQKmv
	qFFDTV1uw0B3lPl1uSFpPWrI1FTHjltoaBDKHS8g4uJjp8gx74fEjlUJBLm5dc4Nq1AsTWbhvZd
	RDRKs+78fxfqhE1ftTtnSlpsHRONWmGVCIg4+CEJ87p2TLCg6+RCo3VYWpvz6fUgBEOZG1sAPzd
	yFxPStxpVdfx9U=
X-Received: by 2002:a05:6000:2511:b0:42f:bb08:d1ef with SMTP id ffacd0b85a97d-4396f1677b4mr32408f8f.17.1771596417491;
        Fri, 20 Feb 2026 06:06:57 -0800 (PST)
Message-ID: <5ccdcb99-eeeb-4037-a253-3314f57b3368@suse.com>
Date: Fri, 20 Feb 2026 15:06:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3] libxl: constify some local variables for building with
 glibc 2.43
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <20260220121220.52078-1-marmarek@invisiblethingslab.com>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260220121220.52078-1-marmarek@invisiblethingslab.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 13:12, Marek Marczykowski-Górecki wrote:
> Archlinux just updated glibc to 2.43+r5+g856c426a7534-1 and that
> causes libxl build failure:
> 
>     libxl_cpuid.c: In function ‘libxl_cpuid_parse_config_xend’:
>     libxl_cpuid.c:447:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       447 |         endptr = strchr(str, '=');
>           |                ^
>     libxl_cpuid.c:452:16: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       452 |         endptr = strchr(str, ',');
>           |                ^
>     libxl_cpuid.c:454:20: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>       454 |             endptr = strchr(str, 0);
>           |                    ^
>     cc1: all warnings being treated as errors
> 
> Add missing consts. Note in libxl_cpuid_parse_config_xend() non-const
> endptr still is needed, to be compatible with the second argument to
> strtoul(). Add second variable for this reason.
> 
> And while at it, move semicolon to its own line
> 
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>

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

I'd like to note though that this can't be all that's needed for tools/ to
build fine in such an environment. xenstored/core.c has two problematic uses
of strrchr(), for example.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 14:13:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 14:13:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237162.1539570 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtRGE-0002nk-PU; Fri, 20 Feb 2026 14:13:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237162.1539570; Fri, 20 Feb 2026 14:13: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 1vtRGE-0002nd-Ln; Fri, 20 Feb 2026 14:13:38 +0000
Received: by outflank-mailman (input) for mailman id 1237162;
 Fri, 20 Feb 2026 14:13: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=8OLq=AY=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vtRGD-0002nX-Gg
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 14:13:37 +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 56ef56ed-0e66-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 15:13:34 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id 6137F1D0013D;
 Fri, 20 Feb 2026 09:13:32 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Fri, 20 Feb 2026 09:13:32 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri,
 20 Feb 2026 09:13:31 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 56ef56ed-0e66-11f1-9ccf-f158ae23cfc8
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=1771596812;
	 x=1771683212; bh=E3VvZoRLK8xBv4CCs0D8Dbg85uRD7YE3FztxxPlhilI=; b=
	Jn5ryd9VYZGrBduMNIUSaRvv+gpeG5NQx8WTOqxnTmbLcfodoAdJzsn3wzzPBSeo
	LqPbw5ehkGSNeEllL0f3yqhcMebkOtCWJ2gptvkCd8SpbziMezb5MaiX4K+7Dszr
	Th7l2cz4w9ZZeeK7AYdWS/0zHlBW7K0WBt6y0M+zG6f63e+/6P32nkqM0bm5ua1k
	DNCa+RtsWcj80wm+NCfbCE+2AU0Gh4Jz+O5/BhbKAbXrmbUY3iZe3LOgQahcIRmv
	Ob5sjnzv/5QZkilLPc5EACdVlfsbvSPoxYn80OrF4mFAxfiHEPJabVRe+TlhTADi
	gBCpB+qUM9f15EIch9jlYw==
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=
	1771596812; x=1771683212; bh=E3VvZoRLK8xBv4CCs0D8Dbg85uRD7YE3Fzt
	xxPlhilI=; b=tNIayS9ou4Fxlv5T3h4dUl/Xp7zrH1fLjSNon7V/L33WDcAYrYo
	FOwA1waIqVNGLLOEAHlwOiU1L3pLGMVv1FuLTTCaFbvbJhNr7UpI9HdseR4pZRBy
	CvqrvtnUl9qm9XQVgfun26Uth/diQ8Iv6Y/DcotQ42G+SiYFg/+ko++4XSnbxpfv
	2OJWXeaYgKpUnCQIVopLPBIac1vXJRZ9M3BbzqQARCjEIWM/E0rDw9yS+sRoNRi3
	HHAg65PLnfjaPERdJ27hCWfxT+kmf3Re9buZu/ekL6X/SpECzMdYhmFu1Ay2qglg
	hjfwFm3dULTtnr+KW0btfFdsmMJrY5+Z2zw==
X-ME-Sender: <xms:C2yYaakhXHBdE_31bFV50rutY3OQ6iEg5q5U9391EGC1Io9awhZgJg>
    <xme:C2yYaY3rcpaJULFKazAhPHDJJ4jdjWaZ12_5REnUc9Mfk0x3WNSeb70kEPqg-1ONZ
    NuAIs4dlk_nus7hSwxYEfKullUeV8LESb4BQKba-2rCpEQjkg>
X-ME-Received: <xmr:C2yYadoGdSjA7ZAGdJw7C6EM6o-P39ZXydnYMjvvpAA6kN_1YjGtn0knqj-Cxh2rrIPG5AYcCHM21HMovhQYVfWVi4hQ3F92IWI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvvdekieehucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepjhgsvghulhhitghhsehsuhhsvgdrtgho
    mhdprhgtphhtthhopegrnhhthhhonhihrdhpvghrrghrugesvhgrthgvshdrthgvtghhpd
    hrtghpthhtohepjhhgrhhoshhssehsuhhsvgdrtghomhdprhgtphhtthhopeigvghnqdgu
    vghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrgh
X-ME-Proxy: <xmx:C2yYadfUE5SGgkadreaZ9iekg2INjoFZcRioMBwwzVe3E0HB9EZE4w>
    <xmx:C2yYaUr_HzNrinhO48FUyVR7ChWhY7pUnnxs57IsLcAnUIiblbAYiQ>
    <xmx:C2yYaWF8ylZFEjAtzmnJ_qib3EPeAzqaBFh-MIQogh9IfechkAfA3w>
    <xmx:C2yYacsuTS-O2EeHj8dwYNGn74syAZgo2sLs3NcrWHvUh1sABDdwQg>
    <xmx:DGyYaW9J3vH8zO7MvNWPMEDSe3QJhkbVEVIcEunxSJ7WzQHqE6q0pA_s>
Feedback-ID: i1568416f:Fastmail
Date: Fri, 20 Feb 2026 15:13:29 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] libxl: constify some local variables for building
 with glibc 2.43
Message-ID: <aZhsCYjiZefMPv4L@mail-itl>
References: <20260220121220.52078-1-marmarek@invisiblethingslab.com>
 <5ccdcb99-eeeb-4037-a253-3314f57b3368@suse.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="HgpfyErtE/Hzg3e7"
Content-Disposition: inline
In-Reply-To: <5ccdcb99-eeeb-4037-a253-3314f57b3368@suse.com>


--HgpfyErtE/Hzg3e7
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Fri, 20 Feb 2026 15:13:29 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3] libxl: constify some local variables for building
 with glibc 2.43

On Fri, Feb 20, 2026 at 03:06:56PM +0100, Jan Beulich wrote:
> On 20.02.2026 13:12, Marek Marczykowski-G=C3=B3recki wrote:
> > Archlinux just updated glibc to 2.43+r5+g856c426a7534-1 and that
> > causes libxl build failure:
> >=20
> >     libxl_cpuid.c: In function =E2=80=98libxl_cpuid_parse_config_xend=
=E2=80=99:
> >     libxl_cpuid.c:447:16: error: assignment discards =E2=80=98const=E2=
=80=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
> >       447 |         endptr =3D strchr(str, '=3D');
> >           |                ^
> >     libxl_cpuid.c:452:16: error: assignment discards =E2=80=98const=E2=
=80=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
> >       452 |         endptr =3D strchr(str, ',');
> >           |                ^
> >     libxl_cpuid.c:454:20: error: assignment discards =E2=80=98const=E2=
=80=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
> >       454 |             endptr =3D strchr(str, 0);
> >           |                    ^
> >     cc1: all warnings being treated as errors
> >=20
> > Add missing consts. Note in libxl_cpuid_parse_config_xend() non-const
> > endptr still is needed, to be compatible with the second argument to
> > strtoul(). Add second variable for this reason.
> >=20
> > And while at it, move semicolon to its own line
> >=20
> > Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblething=
slab.com>
>=20
> Reviewed-by: Jan Beulich <jbeulich@suse.com>
>=20
> I'd like to note though that this can't be all that's needed for tools/ to
> build fine in such an environment. xenstored/core.c has two problematic u=
ses
> of strrchr(), for example.

Hm, it builds fine for me, not sure why.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmYbAkACgkQ24/THMrX
1yy+ZAf/TEAwadzTZ4NhpoNaF8CbYwtn2+W/1Ite/z681Jl9+ACuqtgEDyVAFQFo
NX9s6/1MuV2q4ZVkMGM0WUaHdBK2r7zFLbcQ9OsiAOoq28f5HlSvfeyl8Lf3oHgY
6cuwRMANEgofCPCsy0NDCl+JbZimmFWomUmzUbuhWpPFfrSd++KamRHr61L9HCtM
qzkS0zj0nVoyvwtm5x8j64zhN+hLpX9BC/Nk5U2RRxAatYUVGPC/mwM5dMl6TEeQ
wo4FnCLJrw8mXDN5OFDamQO+Fpodbq0Pj7CUMjcNV9zaLHTrzFY+G8ghduN4Jf7f
TUYpyiiidD/khoaGCX0IzhBMnGEC4w==
=lym6
-----END PGP SIGNATURE-----

--HgpfyErtE/Hzg3e7--


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 14:46:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 14:46:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237191.1539580 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtRlP-0007Cb-3k; Fri, 20 Feb 2026 14:45:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237191.1539580; Fri, 20 Feb 2026 14:45:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtRlO-0007CU-Uv; Fri, 20 Feb 2026 14:45:50 +0000
Received: by outflank-mailman (input) for mailman id 1237191;
 Fri, 20 Feb 2026 14:45: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtRlN-0007CJ-Ai
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 14:45:49 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d692e69c-0e6a-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 15:45:47 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by MN2PR03MB5296.namprd03.prod.outlook.com (2603:10b6:208:1e8::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.17; Fri, 20 Feb
 2026 14:45:41 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 14:45: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: d692e69c-0e6a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RwMFMVKxXc48iPsbwSDvFYFg84iDrEJLN+X/H7OQdMsdKZnWG0uSB48Oi5saQv2Q8INqkpjd76I3ELH3D7TQSWGJPEcL7f71WcixJ8dCe8q+X7SfPSgAlfsbX5bfGb5WcYm6oo3YcRWkiZUZSfBVIv+dItlNp+AU/SeU+AABUZiSICJX75aUfMfT55lgMDVDqB38GoZ6W/bIz9oQ8s4UJMKL4k7pwX7UWDhLWXSD89vrrtB613yrT5WLYGb/wuvDOjlqYZWvPpUcLEXs1F5sU9TPdPuOmcxTs3PRUzwsKgGQCFldCQrl0oN5QN9cGkTmoUQEW1btiSuIrz5mhadxvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=eSUifaZHUGwmzRe4KPJHz/PDlv3KpgVkIVifw+mGS2E=;
 b=cAR5K+c6Sj+Nz6C0UCJOT+4S9nKhJWPnLWW/DNVLLnZ1iRvz9eoSFCWgCETYRzs3ArdCNebyZvykwB9pElMQPjLGP2dKhA+i88m03lBNXDQE7+nM1wqBwrvcAjsLfjUriXk8eykIDcgQGK7leQ54N9qN7lkvfv2W2nBzTxchOgFUEPSRJQFE+ZjWlMO7HeFk8eA2y7959umTtWJtiL24BabRqVTYkqt70/PzW1Razl7Fu5f/17wXLollSsM/nWg9/als11ReFWV4AIyFQCGiQMGBewr/tlVPxQELF4NXBehBP5Khq3mJYyZMYtplzZZzZ4wRiUYsO8y+YT44Ita5CQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=eSUifaZHUGwmzRe4KPJHz/PDlv3KpgVkIVifw+mGS2E=;
 b=V21VoZjzLopbbm1ZkcNT4twz1jjVlwTuSLQu04BRLZSdnU+Fxgfy4Gddz8kC8k2heoGGrHJMbjWGj9Yca5UpCr+icHNXTTZd58uH9n5B1s70PjiQHv3s/JNvSxwYqY7jCclvl87afiwPz9bWlB4DwK44EwTd4YZ1h+yZw3Pf0gU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <378949c1-c124-49d5-bb66-012d07355dc6@citrix.com>
Date: Fri, 20 Feb 2026 14:45:38 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 02/12] x86/shadow: call sh_update_cr3() directly from
 sh_page_fault()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <dbdc07e0-4700-6cb0-4ba0-927417482604@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <dbdc07e0-4700-6cb0-4ba0-927417482604@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0405.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::14) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|MN2PR03MB5296:EE_
X-MS-Office365-Filtering-Correlation-Id: 8be95925-8c95-4569-d8eb-08de708eb828
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?RVpmNUhmZCs1R01IbTExaWQ0cE5jK2RCYXZCWlhhM0tJcytMRWo2M1VFaTZr?=
 =?utf-8?B?anZrUmNzbWlYdjJudHB6a3R2THowU2xObXhtSnBJUzNoOFlybHhGanNMeHMy?=
 =?utf-8?B?UzFycmdmRmtPTXkyaEFrYk1SMU4vQmlLbHBSaG9hS2VHZHZIZlZ2ZFZiVHFH?=
 =?utf-8?B?RkhaQWZMV0tLVHcxM2tsRXVsbHJ2ZWJNaTcxU3Q1NWQ0MkJnT09DeVBKNE95?=
 =?utf-8?B?azZ5RnRSSHcrTGtBemZBQTNsdjVYUE9WRkdlVjlVU2hQOVdWWHo4cTZGUWpF?=
 =?utf-8?B?c2FiWmJkZkpOdzlqdFBTR0hranFNM3BsQWYrcXdBY1BCL1l1NGlzS3FVL1lX?=
 =?utf-8?B?NVNqdEZUajBTTTd1a21yVTYwUDd1ZDF4WjJrOTZkUGlmRDdHQ0xQWi9Qc3hH?=
 =?utf-8?B?M0dqaFM3ZGNnZmQzdFdWdWlRNDhaTnQ0aEt4NGgvcGx6OHdjMjdiMlM0Q3NL?=
 =?utf-8?B?NEZHRmhjdDFUdE9EaXFtOS9nR0NiRDV6ai9OVGdwVnR4V0N2NDRrOFF6bmYr?=
 =?utf-8?B?cjNBYWY5c2Z0clNkQzkxRFVacmR6eGJYVDBiT1BoTGk4ZGYyWmtGZERVUlFy?=
 =?utf-8?B?SUc4L2M5QUUwS0lmVDRiWkVuYVB6YnIzWHFudXZ6VjZFZmlWUDdhRzcrcjVw?=
 =?utf-8?B?ekJneGZtRjN4bGRJWFVGWTlTKzJtSS9sTWxVL3JScXNBbE1oNlhKeXZxTGFZ?=
 =?utf-8?B?NjdDcGpQY1NhRDBkZFdWMlpMcFdsdzZVcWJqTzhYdmpxMjZPUld5Z3JHSytD?=
 =?utf-8?B?OFUvaWRDU2lHRGNQSXJRQlh3QytnUmIzY2pOeXA2b3lReWlKMkNEUTkzMTVG?=
 =?utf-8?B?d2YzUFNkQm00MzlwT2FMNVRJd0FLT3F0bkFLSHA4djNJWXNjbytTLzMxbFN4?=
 =?utf-8?B?UUVJS1BUeFN6T291QUZpQmsvbURBSlRVQkZoR2R2WG9LU2F4UHdiRWg1WGpt?=
 =?utf-8?B?N0NKcXJBcmdzTGNGQkZ4NXU5RE5OZDY4a3VreWVVd01sTElaekthQ2c3dFlZ?=
 =?utf-8?B?QU50NFFmTHhwZGJ1R0RiLy9BTGYxR0lOaERkenliQW9kdTlSWEVrYXNrckFj?=
 =?utf-8?B?TlBPdkZpd0RjSGlNc1lEZzZOZkl2eklQZ1dENnpsUTZzUG5uOUsxUUdTZDJ3?=
 =?utf-8?B?d3BPbEhHRTV6VlFOZzZiRUpRV3M1Q0owVkUwaFNFS0JDN0oyamVSQ1BwZGdj?=
 =?utf-8?B?MFM1T0RCTytCTkNwbGVLR2dqLzdWbUFYc1grdmN3YmhMOWloNWdaN2lmQXpi?=
 =?utf-8?B?TnBkcFVMWGdvUWpkeGVpQ1BZMGNsWmVSK0hjMitWMG90Qm1QSHRzTHkzcDhW?=
 =?utf-8?B?d0lQZ0pUME5tcms4SktzTldQcmJKaGZRQWFOdlRVVmZ2Mi9tMG5wSklUdzVi?=
 =?utf-8?B?eUVITVhONGV2Z3VpQlVlNVd2aUN2WS82ZU5qU2RybEppVjkzc0pMaHU5RU9r?=
 =?utf-8?B?QktHV29IRG1tY1dqcGQweUlhVS8wUVF3WVF1bTQ3UExwVTVMVldQOGd4TzNH?=
 =?utf-8?B?aUR1ai9yMG1kN2NGOW1HSms2V3hQZUQ1ejF1bDU1UTBZWkpuQUwxWEtnRzdB?=
 =?utf-8?B?aHArUHFQYTBUTWxvMFl5eGtSbFdYQThxN21kODM1T1AxMmp0K1Evd3R3K2E3?=
 =?utf-8?B?ejRUZ3B1VTRzalhvaWZsWThPZjRxNDcvQ2xDK1ZxdWZFdE4wcFd0bnpWRGQv?=
 =?utf-8?B?aGp1S0UwL0VnNVRyWld1MVY0blNrM2Q5NWwydWc1UHkyc3laTDVXcUJsVWxY?=
 =?utf-8?B?Tmg3Wmx2UFB2ZUlxbVV2czdXTjhRWlZITWIxWnpKZ3lsRWp0NVYrNkcvNWZZ?=
 =?utf-8?B?cWVPbDZIV3EvNUpUK0dKQ2YrRDByTStYeHhlN0Noa2RzdlBMb1Z3RVF2YVJS?=
 =?utf-8?B?RUdQdmxIb2NkbzNzM1pYQi95cHFmL2pRQUo3T0RQL2tSUTE4OVpBaUFhSnBN?=
 =?utf-8?B?aG1pUGpPUlovaGJKMWhrQTVpTWxZSllxS211MEFJUlc1bDZ2Ti80anlyaXFC?=
 =?utf-8?B?MmhNOVVIMHBlWGFCQ1B0c3E0UDVWaUg0dFpDUTQyaTBjMllFK2lwM0dZUU5w?=
 =?utf-8?B?S0RyS2dhKytLWjdkVmlWL3ZmV3RSL3lxWUVYQjJCekRYTnlqNjFEejF5eThj?=
 =?utf-8?Q?UXig=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UTc2Nk5TT3dVY3ZaZnlIZWg1ajFWeldIaXlUQlVHbEVEVXNLR21tYUVmM05m?=
 =?utf-8?B?cllaeGhqL05XQ1B2dG5KS1BZaWp5R09ZbkorNjUvdC9OMXNCR0k3ZTNvYWNK?=
 =?utf-8?B?cmRYRDh2c2dHTXRjSHZEN0hCb0pZNEd2ZjdRc2xxNHVzK0xBWGNvenFaWThO?=
 =?utf-8?B?NjJuSVRsVEp3RlBOaWtYL2hjNGR6WjR1NlR1WXlBbEJtMFl3RUsyeWZVZXJJ?=
 =?utf-8?B?UFpKT2xadlZRcmJxdXE0a1l2QWhIRzVvMTVleXFuVC9mdzY4MDJmNnlEaXUr?=
 =?utf-8?B?aDVWaXpmUHJjVi80QktOZnVVRXowWTlGMWVscngyRnpHQWk0djVLU2FWeEpN?=
 =?utf-8?B?d2V4ZlN1dG1leFFIbnJPcldRRkRJUUFFMDU4VUVQR0RhU1pDem1ZMFNlVWxT?=
 =?utf-8?B?THJMSW5YcjMvemtSOG81M3ZqTlFFRXVSanduYU1nQXFpa2hSMCtyeFlrVXE3?=
 =?utf-8?B?UGQxcVcxWTkvb2djejR3MjM3bWw2VkJKSWpXd1VZTUU2WGROL1lxTDJzcjMv?=
 =?utf-8?B?bFRubDJ3VWh0bEFOUWlRcGhWbzZOWVlNdkRUMjd2bFVJdmVLamZYaVR0d01h?=
 =?utf-8?B?ZFJ6Z0xxT2xBdzZzRzRaU1hTSlRCVW95N2dXOFcyRnJDR2pNeFhIbzRwbVZQ?=
 =?utf-8?B?L0Rnczhna1l2M04zSXM2cVhkQ3ZWanMzdFY3Y2wrbkdmU0Y2TlhXaTBucU5D?=
 =?utf-8?B?YUlzVUVuRjlkczRreExaWTAxTDN2TEJjVHJVbmtId1ZQbzNhdzArWTJJWCt4?=
 =?utf-8?B?NURFSVFuWW9oMlBmUFRSL2lLVEFnWnFGcGJvQmM3UmlmbGZpUU5ocVZOUDFs?=
 =?utf-8?B?emhTNUE4NVJwbmhRaDd6Mm9ydXVBY3gxL2lST0laRWlKajAyZXBTTy9UWUFG?=
 =?utf-8?B?RVI1WHFnbEQ0RGVLT2JLYmtudmR1Zi82TzZqRHRhMmsvMmlrcFBFNHJUUEhi?=
 =?utf-8?B?ajI5d005QTJoc1J0QzNLMEpJRDh3aWNBclE2Z3dmeHVpSU1NMmdXemt1eCto?=
 =?utf-8?B?M3BhRVBXN1RFQWlCVGJuZlNDMEc2MGpJeEFqL3Qwb3JTVEFHZWZ4WE9XTjJU?=
 =?utf-8?B?ZkozczM5S0dSbnp1SW8yUXdzd3FnKzkvZ0poVHNkK1loSi9pRzFRb1VVdEVT?=
 =?utf-8?B?ZVZFaUJRNktXUit4R2dUcFIrR1ZvYUt1STV6MWw0Kzg2aWFsaHl0Z1g3YlJP?=
 =?utf-8?B?bDdVRzM4ZkFUNzFOcVlic0dVRnNpdUQ2c1VYYU5xNS8yd3dld2ZPVmkvZmFQ?=
 =?utf-8?B?MldIMmVIMnNlQ0JIR0VlQVF2WnFKdW9TRmxoMzlWbmxhU3dFSVA0d2hsdFkr?=
 =?utf-8?B?S25jdHgrT1puR1djTmlMRjZTVVdKdUNrakxzK1JNeStGeEF6VmI4b2lzbmtN?=
 =?utf-8?B?S3lKc1gzUFJLMU42ZkExUHB5UUxjMHhuYmpCOW5oeE5lVjV6SlJnZmIzSHVo?=
 =?utf-8?B?U0E3bG9aRzF6UHZOdWxrakppaHF2dG5uT2c4bHBBdFNsNm9VaU5xTUd2MWg5?=
 =?utf-8?B?bWVDQkp2a0MyRnlhSjBiMXBXQUZaUGlpajhRS1BkSjZjZUpIWmVQSWlxSnZ2?=
 =?utf-8?B?ZEsvdmZHR3l4WmpVSXBBeGppVUZnc0c3YUdCNG1yQlVIMTUxeWRFZmMxekNT?=
 =?utf-8?B?UnZsUm43L25TbGlFcWtId2ZOdTJ5cTZOR3MwNVZ4eXh1VzJGZElkM3lvOWlH?=
 =?utf-8?B?c0xpYjR4eUppNitCK2FKaUNyS0NtWUhWSWprWkJwcEJvQ2NSMm1YbzBYVEkz?=
 =?utf-8?B?c0FNUkVWR24xQVE4ZTU0ODhHU2xCZUhLelFsMEVVMnVvcXJKMU92MW1USU5E?=
 =?utf-8?B?TDJHRkkwbXFQSWFJQXZNMTVKSmYvUUFFYnBlUjZNNndJUDkyYWtxV2NkQ2Jp?=
 =?utf-8?B?QUV3akpuOXMvOEZBKzcvR2E4aUxUVHkxTS9xZ3NtZzV5VU5EMVVQcy95OG9M?=
 =?utf-8?B?UzVvdW5CS1ZYMWNJZlVzQUJrQTEzaWZWRzZQYXk4WURDaWFhN2RyYXlVbW92?=
 =?utf-8?B?SmtxcllwMWxiZXZRQmh4T3VJeE53eGZ0QWpzYnFvQStlRFRSRjRiK1k3VCsy?=
 =?utf-8?B?aktuNlR4OFl6OGwxSjlUZWRYVkNHZkdJdThNUDN0SXZIUFhId29rVnJmcjZo?=
 =?utf-8?B?VkxpYmhJa0dWei9rcTVhSGIzUExjU0gxNzZoNDVqYWZjRWcvTjV4TmNyYnZF?=
 =?utf-8?B?MlkxMXRmVWhjelZnMkxkTkxaUEFzbk82MStYaVhIYUU3Z1c0RXpQNm1vb0Ex?=
 =?utf-8?B?QlF1UWlHUWxEbzh1eFh5dzFpb2dXaS9sQmlBWFhKRTZ0QkdKZmJtdlpmM2VH?=
 =?utf-8?B?ODYwZytXdzFLdnkvdnBnY3lJczNYS2d5Nk0wNjZqSXhRN1BoRmxUQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 8be95925-8c95-4569-d8eb-08de708eb828
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 14:45:41.1965
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: Q9CwtJcIqfNrHoOW/5uWG7NpPy1UqgNRrUYLDHXjBboZlw1gt55t3EHwRII07Yd5eCeoR9O6hzV+fAe3Wezd9ZOpm7ImkVAearphBBnfHpg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5296

On 16/05/2023 8:38 am, Jan Beulich wrote:
> There's no need for an indirect call here, as the mode is invariant
> throughout the entire paging-locked region. All it takes to avoid it is
> to have a forward declaration of sh_update_cr3() in place.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> I find this and the respective Win7 related comment suspicious: If we
> really need to "fix up" L3 entries "on demand", wouldn't we better retry
> the shadow_get_and_create_l1e() rather than exit? The spurious page
> fault that the guest observes can, after all, not be known to be non-
> fatal inside the guest. That's purely an OS policy.
>
> Furthermore the sh_update_cr3() will also invalidate L3 entries which
> were loaded successfully before, but invalidated by the guest
> afterwards. I strongly suspect that the described hardware behavior is
> _only_ to load previously not-present entries from the PDPT, but not
> purge ones already marked present. IOW I think sh_update_cr3() would
> need calling in an "incremental" mode here. (The alternative of doing
> this in shadow_get_and_create_l3e() instead would likely be more
> cumbersome.)
>
> Beyond the "on demand" L3 entry creation I also can't see what guest
> actions could lead to the ASSERT() being inapplicable in the PAE case.
> The 3-level code in shadow_get_and_create_l2e() doesn't consult guest
> PDPTEs, and all other logic is similar to that for other modes.
>
> (See 89329d832aed ["x86 shadow: Update cr3 in PAE mode when guest walk
> succeed but shadow walk fails"].)

I recall this being an issue in flight when I joined Citrix, and relates
to PDPTRs.

Architecturally, PDPTRs are are loaded on MOV CR3, the TLB flushing
subset of MOV CR0/4, and Task Switch, and are otherwise non-coherent
with RAM.  PDPTRs are not shot down by INVLPG/#PF/etc (they're not part
of the TLB state, they're "roots" of the paging structures like CR3 is).

(If you recall, this was one of my major concerns with your PTE caching
series, and I still need to figure out how to make this case work.)

Intel maintains the behaviour with 4x PDPTR fields in the VMCS, but AMD
punted on the problem by declaring that 32bit PAE paging under NPT would
behave as "normal" PTEs and get loaded on demand.

For a while, there was a threat in the APM saying that this behaviour
might start applying to native scenarios too, but I recall AMD saying
that this hadn't happened and was unlikely to.


Either way.  All OSes need to cope with both behaviour.  It's probably
easiest for Shadow to stick to strictly architectural behaviour, rather
than trying to account for a behaviour that only manifests in another
context.

I vaguely recall discussion of Windows 7 expecting one behaviour and
shadow implementing the other, but it was 15 years ago and probably at
least partial speculation over an unfixed bug.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 14:47:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 14:47:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237196.1539589 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtRmd-0007fJ-B5; Fri, 20 Feb 2026 14:47:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237196.1539589; Fri, 20 Feb 2026 14: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 1vtRmd-0007fC-7u; Fri, 20 Feb 2026 14:47:07 +0000
Received: by outflank-mailman (input) for mailman id 1237196;
 Fri, 20 Feb 2026 14: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtRmb-0007f2-SC
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 14:47:05 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 03edc4fb-0e6b-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 15:47:03 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by MN2PR03MB5296.namprd03.prod.outlook.com (2603:10b6:208:1e8::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.17; Fri, 20 Feb
 2026 14:46:57 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 14:46: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: 03edc4fb-0e6b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=q5qIEu/kWONXfbVp6x9w0QqusZr1VQEpFOkSi5++iQB3c8trcVQ3Hcdk60mG+4dqHmEl7D+JBp5P2XWeDqcwxuOQbotZOKyKefu+5TpkMgXMlQ3R4zH5FPB1HyK+Q5UZk1k1FdodSyKryPVHRA1fzEsYLDFHj4GNGnTZ1axnt1t7ZSwgHq2hUDa45ztzaCxh3/3kM1uIIMB8irohYkkUyAVjbjmbR4QWYL9bg1d1imOvo+MNWR+psqAREy+IZDGfi4KnVrQ+GhCW6td5/l+Q6KtIP5I3gSMTAoU5+rs4Cyj+9IiROcbg0SpKlsGTl2NOcCEX5e/wveLohWVb4g7ZfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ZmntXQHEJ+iFf7+Dfcb+d97jb9EG0GWnk4fEwY6MoRw=;
 b=V9PqvYbi1V159HGG0nsqOOT0aI2tfE0cyaugL8Vz/OSMYP/17XssdScutofJJBNdRI0HbQTGBWflFOLUQBM/cUe2yz1OfzZPwpdlQSUcu7/b7kSOVo93JRCu+dosWSXF9d4G1qttRPTgrixy/l6OGXKYYaTzH8I7N1xT3BE8ygwFHZoHmChRGABbUMSOXLtuNX6PP8iV5e22dfv3QoNGsQwqjRW9g94naBpHOiCjs6UQIIRWZmbKO7RFF2jlYXwb8Z2PCuo534Wkzb2/cyJEGekMsMnXyvBqxYE0DR4s+sO0sWKfs9k7BvJHpKgAMaLJx0FYAGyYOrU2pT98Og9r8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ZmntXQHEJ+iFf7+Dfcb+d97jb9EG0GWnk4fEwY6MoRw=;
 b=TXTwbCGUbClLcQ710JeV+P0Bfbh83zoOhugXWTociMlFrwT6UOL1ybbFJk4/XLJ1VO/lvPYHe5YvOHjMeOxvDKR0uTI1aSZPSdYGZXDBZB4vWyx7IzoxgxCuUdCBM5Ul/GVQ5a4xcaTQlO9jUHf/peEqFtZG7ijMYdbILD9F00A=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <cb2fc137-b9e4-40ee-8ae1-fb1e5449f997@citrix.com>
Date: Fri, 20 Feb 2026 14:46:54 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 03/12] x86/shadow: don't generate bogus "domain dying"
 trace entry from sh_page_fault()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <e3aead11-f7f5-2ccd-d598-3e6ea19a0ce6@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <e3aead11-f7f5-2ccd-d598-3e6ea19a0ce6@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0412.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:189::21) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|MN2PR03MB5296:EE_
X-MS-Office365-Filtering-Correlation-Id: 4a55dfe2-fe47-485f-4cec-08de708ee599
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QVU3RGswWE54M0pRejl5OUpvZHpNNjZHOGs1VWJtSjdFQ1lGVDZJVFkwenRW?=
 =?utf-8?B?SFk0aktnNDRhc3JPbDloRWNWNjdIdSt2UEFjQm5uVzdvcHRTWlhlMGU1Sm1Q?=
 =?utf-8?B?TVQweHpucXJrYk5zUXYwenRGVnF2UnJtNENzTzc2WlZUTTBYRVkyRWtTc3hF?=
 =?utf-8?B?dm43VHlsSXR1TGJ4dmtYTkhvNDRGMVZHZkI1d1JhUHNyTlNiVTRBRE1KREc5?=
 =?utf-8?B?eGEwKy91eGNZTUdSZjY1ZTlEbDVqcE9IbWRhM2kwUmZmYXFaR3Vjb0RDUno1?=
 =?utf-8?B?cUFRdFZwU1FJbXQ1WUVaSGI1NVE0R25WS3FCd0xTWlp6ZHQxTnNYbU9oSTdG?=
 =?utf-8?B?S2YzQkl0NkZaSXlhQnZQT0V3YVNjQW55UlBkQVFTVmNFWkVHVFltbnY4eE1r?=
 =?utf-8?B?dDU0V3MvY2NuL1dYQUtSUWpkMDJxRzJ3SzNGZ2hUY2piTlExUGg1ZVMzaVlo?=
 =?utf-8?B?bWxJclpFNFNDcmFzNHhWODhONUcxT2k5cmc2a0E4TkVYek5wVUU1ZmU2Y1lC?=
 =?utf-8?B?V1duY3U5Y1BXUVJKbVkvV2hSZWZCYkNsS2lVQnRQN3lPSkRQN3M1YUE5ZjM0?=
 =?utf-8?B?OEFqdWV6SUZTR2RYSFVDM1RpYUNwcU1PelB5WWExbWJpWTFGV05xenp2MkQ5?=
 =?utf-8?B?MFZxU1Ixdmhveng4dnJySklRTTlheERaYjdLYk8zbTlUd0M4UjRMRllaQm5W?=
 =?utf-8?B?N2N2ZlNIV2dwaVNEZ3RmS0s4Y3RuWHFnaXNDRk9FYnM4ak1XUlVtRHpsTE1t?=
 =?utf-8?B?SHNBSy9KR1BDQUN0MFZGVElGTGpJQkxGUHc5c3BTZncxdWViVlcwVmZKQXh6?=
 =?utf-8?B?NTRFVDJHRmFxSVJ4Z0RtL0RFenpzMWlLU0VxeFlSNHNpaVp4MnlCa0JLTFVn?=
 =?utf-8?B?NWpBOUpCUU5iOVMySTJ1L3RXV2w5eDN1djFubXNNNnJPR2ErSWQwRFA3ZmZj?=
 =?utf-8?B?Yis0TU9na01sajFYVWpHdmRKbDZkOHVWb2JrdFV3WTJwZEVDQWM1ZHZOSHI4?=
 =?utf-8?B?dHNaZUlKRHNvdUp4a1ZGL0Q4eE1RTTZ4RnRjR1dtakFYVm0zdVZ6Q2J4L2tG?=
 =?utf-8?B?Qmh0MzlEVGdtamx6NUlnT1pmU0h1cnk1UUU4bkRNRU01eUlnT2lNV0kzN0RZ?=
 =?utf-8?B?c2dHQU1IQ0xKV3RYMjVjOG5Mc2pid0swQ3RqaVA2K05XdDNOSXpwQ2lrbGNt?=
 =?utf-8?B?Y1BxdlAxT211WS80YlRzNVczQTlZVTlxZlpwdEJHSTIwOVNYd1JjWjNpUUdQ?=
 =?utf-8?B?bG5xaEtSN0RuQVBGZitpRWU0MWdIRGdRMWphdVBQSGhBaU5GaHhiU1BYc0V1?=
 =?utf-8?B?dXRRTTlTdTFiS3BWbWFMOXorWWcyUzZzRk1rdE1wdlZocmV5M1lpRUdrYTEv?=
 =?utf-8?B?S0xKV0p0L0Rkblc2RE50RWZJMkpLMGRmdjVnT0dQM2F6RHk1Z2lxZFpwaERV?=
 =?utf-8?B?cXVuR2JRRmZCSjkyOCtvVDJiVitCc2ZLOXdSUkRLZjBzaENwUk5DZ0FmVDRD?=
 =?utf-8?B?aDQvNmtXUlBOUXR4aEpUKzRKTUhBUTliT3BWaGoyL2RmWUVhOGxTcEh0WDVm?=
 =?utf-8?B?ZUI3TDBHRUFsbFdIVk01bGVPdk4zalZ2bGRrZU9BZkpLMjhPUzBkMHR2Nksr?=
 =?utf-8?B?ZldWUnQ4bmlRbUlHZTR4SENPNk1nTVlxTTRNRWZNMlJIRy9zYUI1U0F3Rnpr?=
 =?utf-8?B?eTltNEVMZUxaYWw0dmY1YjZNS3pVY1NwUFZzYWhWWEtPZmN3NHBXakdvcVlG?=
 =?utf-8?B?NndEWHJuTTAwVjh1T3FtN2NaYjFyZ0pDYnNVT2crY3RZNGo0RG92WmdEM2N3?=
 =?utf-8?B?bmdQUjMxbWJxc3QvWk16eGY3cnJlN0RSWkhWWUdrL0ZZZ3NlbGxGc3VzcG0r?=
 =?utf-8?B?L2RUVG96RFNBeVdWTlk2YzFPR1FpYllzYzI2VElJa0tTZUNjd2NFY0MyUm1r?=
 =?utf-8?B?MHZnZ0tobjFmZzErb210Yjhua2k2VmozbUFwSnhHUmI0YUIxTW1zWkIrbVJG?=
 =?utf-8?B?c2xtcUJEUlNjaDFzZUxCcEs2U2N5UWRBcHJETUdsSCtWTmVDQTVXc2NZckhP?=
 =?utf-8?B?SnhSVDZkb1JPR2MyNVZJLzZVSGkyN05tZ3dPQ3lGaG9TN1M5WWtLT0tWOC9m?=
 =?utf-8?Q?k6XA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?clVzMTdydFJOWWI2S3JRWngwQ25KQWcrSmR0SG41QzByR01QTDNrUHdDM2Q5?=
 =?utf-8?B?RlNWNXFPcURseHBwUlVJczVIZ2FYT0lEZWp1anhrVG9sUWcvb05YTEhYMXVQ?=
 =?utf-8?B?cTJSYW9USzV4OHJMd2FybC9lRVpQbTRZMW1USGJpMC8waFN6Mk4yQ0szcmVt?=
 =?utf-8?B?U1NNb2c3NkQ4V3FyQmZvNk4wUFE1Ui90Q0hmNUh3eXUxSE54S0xIZTBHS1dI?=
 =?utf-8?B?ek9iS2QvMFVwV2xNNWhyL0tETUx2Z0JOa2pzN0lZaTFjS0RIVHhuVmFYaFBn?=
 =?utf-8?B?NkhVMnhHZWN6VDRRanBkT0tORy9nanp5WWxXZUM3cDV2M05tcDRHTy9PcG51?=
 =?utf-8?B?MXFpM0wvN1ZHZ1dsMm14QU5rc0VRMFNxNU41SFFvT1RUcFBNaXNtSk5lUHZM?=
 =?utf-8?B?ZFpHK1I5QWs1L3UvM2N0TlJEekVrTk9ielFJZ3QveVh3Q1dBeE90OTBxaUdP?=
 =?utf-8?B?VUtLQ3QrME9PRUtLMklrT1JpRGR1dUZlQzBkdTE1cXVQYXppVm40aDRac1p4?=
 =?utf-8?B?K1RmYUZyNy8va3ZuTGtNU1c5QWdzRUkvS1BqVno5b2t1bHp3Z3JudDVQbWxW?=
 =?utf-8?B?bXFiSmh0NC8xeURmbXdFeUtTeElOc3U5U2xNTUZqbFVyZVJUOEpJQjN2WEth?=
 =?utf-8?B?U1AxVjE0c1pXZDhQNS9ablFzc3FKZmNuUFNETllyc1V3cjhuNnczZnFGWS9q?=
 =?utf-8?B?S1B4YTB2UGxpSGZVZDJQbHFocWtFZlZZM1FjcEZvSlh3Rk5xdXUvMVBwbW9i?=
 =?utf-8?B?MTZIbStmdXY2SENQY3NxREw1RGpLOFJIY0JiNVBzcUlRZ2k5eE1Sakx6U25I?=
 =?utf-8?B?aXM5U1JhMDk0cG9qb0JJaWZ3WDMwaVlkaGM2aWxYdk1sblRnWHJMcDc4cnNm?=
 =?utf-8?B?VHp5eVF6L2lxZWttb3RmN2VlSlRMT2ZjeGNDeGM2ZkVTNU5yQVM0aENIaFVL?=
 =?utf-8?B?NHQvbEJCSE9vem1YVnFzOWl0cmtLT1loWTNpb1ZGZjYrVG03c3VEZ2xPbWR0?=
 =?utf-8?B?ODNNRmc5eEtsK053RGF3aU9rQ0FLcFpkek9YMHVxU1dwSm1YVjNXNFlxRk1l?=
 =?utf-8?B?ejFQU1VSNmM1enFaa0pOWXhKQ1JoYXh5Y2hFcUUrUUYzaHpqZ0JoM0FvcFAy?=
 =?utf-8?B?aWpYUjhWeTBQOUxDZEEwc3ltQU9KL21QdEVBcDNwU2I2VXZDcDIwS09OdGRa?=
 =?utf-8?B?OEhCaDRnVmY3a1phM1dLMmV4ZkkvNjBoWm9Mci8xazlRcU85dWJnemg2enQv?=
 =?utf-8?B?d3ZJTmV0RWMxVXA3Q1FUZmNlcFRjL2lIZ2pRYkJNZHJRY2ZrblppclJ1VzBH?=
 =?utf-8?B?T3JXemF5SHVlc2hxY3grL1dzRTl5eDNUSHMwNjVPZ3U1ZDFOTUJJNjRGVGRz?=
 =?utf-8?B?ZXk2di81YWwrT2VQZ29TL0VSd2F6bGh1UmhlUW8vOE00RVNrWEdIUFdsbStN?=
 =?utf-8?B?dlVMYTJ5SFh1RW04UUxJeFcyYTZpNFM5N0hwNVg1RmN5YWpZM3Mwb0ExcU1m?=
 =?utf-8?B?aDQva3NVWXpXNTZtcFBmQ3BRNTVUbTQ2ZjFRTkRZQXErSFl2WnFDbFl2WGhN?=
 =?utf-8?B?dnR6blY1Qmg1d0twMHNtZW1YTStiM2JJL2R5bnFCK3IvMDhZRUZaREJET2xo?=
 =?utf-8?B?OWdoeFNaNThFVnBVNTJ6Qis0QUxBd2xUTnBVVWNGMXhoVkdhM2dnQXZNSnE5?=
 =?utf-8?B?c0RWU0Uyb3JYeHpkakgvMFBReVNQaHJsSE5pNWw5RmZHYTZxUVJlRmxvSVB1?=
 =?utf-8?B?RkF3UFZFNjJ1aGRzak5GZWpxOTBPNVN4VWIyamhkYmFIVm5VU1pzbEVUb0No?=
 =?utf-8?B?aEhpMS8zKytWY1JGaXZrbFNuTU8xVHdWV2ZIQldmUDN6NmJIQjEybFBReTJJ?=
 =?utf-8?B?ZTR2R2pXZUkwNVZ4MXczMld0OURUSFdaVDAxb0xqS3lTY0hVNVBvVVloMC8z?=
 =?utf-8?B?Mnd6ekdySkl2ZFM5SkFUbjAvTWpMcG83M2U4aHFMSk5wdjRIM2p4MzJWK05s?=
 =?utf-8?B?a0FjZEQ0TDFQM3JVRFQ3bTlaZ0xPU1NtVUExdlMzTFhrblM4ZEsxdDN5MUpl?=
 =?utf-8?B?aU9pZmFEK0hWb3ZmaE0rb3dmV2hlRlRtdnRKaXYzWEpuUzEvSmZqV1Z5OTJ1?=
 =?utf-8?B?UElHVVgzaGJiek5kbk9LZUlKQmpPd21XSG0rZlhPOVYxVWxLcXZTYjRZQngy?=
 =?utf-8?B?cEdKME03clFmdkJFeUNETmhESW94Qk5Fc1ZFdVNVVDFWUlFLZjdMbE1ZU25U?=
 =?utf-8?B?NHg2OFlodHRGdU1WaGJkc0xURnF1UllHRUkxTy9CcmZhSmh4Z2QzWVR3N1Yr?=
 =?utf-8?B?NzhkazEzQnJ0QXB1NHp3ZitTK0ovZllISzQzMVdFRzJDbnJiSUZMZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4a55dfe2-fe47-485f-4cec-08de708ee599
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 14:46:57.3576
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9CAGXiFsNP7p28wg5jvFItDVi8ApDo3r74XG98cit8JB286wQ1e1d3Hm3TyhleY5z5DcXRtBaXxuVc4BxRvHm8FhrdWaPxGpmSwFzCyH8s0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5296

On 16/05/2023 8:38 am, Jan Beulich wrote:
> When in 3-level guest mode we help a guest to stay alive, we also
> shouldn't emit a trace entry to the contrary. Move the invocation up
> into the respective #ifdef, noting that while this moves it into the
> locked region, emitting trace records with the paging lock held is okay
> (as done elsewhere as well), just needlessly increasing lock holding
> time a little.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 14:56:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 14:56:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237217.1539599 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtRvI-000182-9S; Fri, 20 Feb 2026 14:56:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237217.1539599; Fri, 20 Feb 2026 14: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 1vtRvI-00017v-5g; Fri, 20 Feb 2026 14:56:04 +0000
Received: by outflank-mailman (input) for mailman id 1237217;
 Fri, 20 Feb 2026 14:56: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtRvH-00016w-P9
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 14:56:03 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 45d2c0bb-0e6c-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 15:56:02 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by DS2PR03MB8443.namprd03.prod.outlook.com (2603:10b6:8:32c::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Fri, 20 Feb
 2026 14:55:58 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 14:55: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: 45d2c0bb-0e6c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=aVhyCkfK/Zqb3FeJ0D//IdSMJ7uNebuR9MYbELrhFOwRKZxASeo8fz+vfof561vRjGblvAEBWb7E2rpfytVomoT8qwRBxwbV/fQsdKutsGbNrKlOvpr2XtXdqvNAyXH/bm2B9AxqzapQqajKvneQ+pYQKXBEFoYokBqsOdtQznQ+FJHyn2zDXQ1CfFe98yOheEhvOEyVcbeyZdzmv1gPCb8dP71Cru1aEKvvvgh4zZAStdRfoh37f3QLKRgfTKkJzbwCNyF7ukxCfwGdfqFLBd60LbwtBNcCABszdAXuYHnKAePXXewMI/GgcchzHJ5lQiu1Z+Oue+VBnoqGO77S0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=CUKhE00XX/d9JUrWrno4QrWyT4FPTR/ihK0BclffFuw=;
 b=yWyAxKWKxGgiXwgRTGZcaWDqTIqIJMPgc4siMtBpRkGcGMRBLI4570uIl1ZpsCC3U/M7ZzJdosNqSf/yLjKzgLBnlsBEeUcJ/1Sb6OZFCh18TWC93r6I4RQYwZs7m0L+TixWEi/EXTVURCrYQRWofryGv30MHqykw4e0H6+h9J0CW9zxG5vUZc7Dy1RopPqnPoKz8zPQmCnwY0JV9OkqvjUVjDlRKJeoHg00zvzmgVuEgN1tZdQ6Xo1ghd3GggUXy4eEnd3gxVNluIrrqWKjtzGF3EOxkXmlkQqDdRJNEornYpC4FG3RpHUzKOb9UMgi4I1bIQzJFuuSFerh4Tdz7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=CUKhE00XX/d9JUrWrno4QrWyT4FPTR/ihK0BclffFuw=;
 b=yOItYRfQ6LfZ3neb+kohH5YfUdDO4+oouRuv4HbRFLb7X6fntbpisvzltuh940g2k0L6uYlDL+pDAukmZt7eLhdzWOC9lu4WpmFbRM3PcvC6FvS2/MLawtGvyEuNz5K7kwW7l3OOXelxDSgQy1HRzAOvq3HrgP+DyEKncjHbHT8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <36a06fcd-c5cd-4f55-9757-4143879a5446@citrix.com>
Date: Fri, 20 Feb 2026 14:55:55 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 04/12] x86/shadow: use lighter weight mode checks
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <7684392b-82b4-a7cb-35dc-a5de8142eea2@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <7684392b-82b4-a7cb-35dc-a5de8142eea2@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO6P123CA0038.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:2fe::15) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|DS2PR03MB8443:EE_
X-MS-Office365-Filtering-Correlation-Id: 763bef9f-a490-41a5-9a67-08de70902801
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?Zzk1ZThkajlCNGJJd29VWk5JWkt0dWtzdU9xMkZqb3Y2ZlpqVEdNZVk0NXN5?=
 =?utf-8?B?UmNZZStWSDBqeU55UUtzcDhUNVdnQ0tnTnhnU1B3bFl3ck9TaGl6S2NTME1H?=
 =?utf-8?B?UURONVdPbmlkM3hnQVh2SEhWN2hsMTg2VTF3c002MUJnY2t4WjhjSlBXWnhD?=
 =?utf-8?B?czBKVVNFRFZ3OTh6clRuYXd3L0hkQVJrNjRiZXdwaHFaTUQwWVVQUTdFRTEv?=
 =?utf-8?B?UUhCVkZDbTdLa2s1OFp2cndMaXMxYTU1MkZ1Q1ZDSCtyakh0Z2xzTUMzcXZs?=
 =?utf-8?B?Y0JDTmpJSURzMGxYUlRlSEdmSS9ocm0xSTBXZmZVcnNmd3BKdWYzOEhKaG1C?=
 =?utf-8?B?KzlxRUUrNWRwVUJLWG5iNzlHUDNjZE0yMkVzSm93MVRkZWV0L1pyY2xGNDlT?=
 =?utf-8?B?T2tzK2J3Q2pCSEJnVjNUTUdMMXNDT25mTGFQUjB5eFZZVlRmOFBHTWdFVVpX?=
 =?utf-8?B?c1lKVXh3ZnZ1cTB4b3VVSjh4aEtlSnkwMlUzdHJPaGJmdmZScFdQQmtCeGFv?=
 =?utf-8?B?UktnNEsvdVI4Nkc5cmEyaWRRbWdoak5nM3pWU1B1R09DelFZOFIyVENNd3Yx?=
 =?utf-8?B?V2NOS2JMVGxsN1NCYWFha0M2a2J3TjZoOUNVSTdNcitlV3ZlbkxLUXgweE0y?=
 =?utf-8?B?SUw1enZYMDh0QlRvdnU2NFU2aCtwWWF3azgzbTF5L2hncE5GU2JCR0ZqV1Jq?=
 =?utf-8?B?dUhKUjF5Z2pJZU1mMHlTWWZLaHcweU9JajF2bjZRK241b09MUlVQQWUxQUU3?=
 =?utf-8?B?ZnhINzNHb2VaSWJRb2RrbVI5bXczQVJGT2QvZlRXWS9FemFTYmlCdmVzUmxJ?=
 =?utf-8?B?M0o5NXlnYzRZZ0hRMyt4TFFNc1BpSzZBMEVHRlhJM2FQZThMcjIwQkQ0L0Y0?=
 =?utf-8?B?MlFvSU92ckVHellYbWpBaUl5RHFEOGtRMmdkYStkMGF0TU1VbHNuVWZLVjZw?=
 =?utf-8?B?c245MUN6ek1wd3JmK2ZOc1Vha1psdkNlL1p5S1JhSktFbEtSTmcvZ3dHWVNy?=
 =?utf-8?B?NnFVU3Y4YTVTNHptY0wyZGI2VStMNU1yb3V2VGEzcnd2U0tYMWhCdms5YzY4?=
 =?utf-8?B?TXlsWXk2SDRlM1FPcUdubU5kYU51cVQ0cGhkZXRPaWtOTjJMam5Lb3h6WG1l?=
 =?utf-8?B?cG1vZE05VW41eXNwVFBacHlPTWJMRXowKzRacUlXYk9Dd3h6UU80NHVNWWF0?=
 =?utf-8?B?bU5wQ0piL2E2RkZEaERmWXNiazRBZDEzUEs0UlZhVHhZRWJwSVlKeG1Qalow?=
 =?utf-8?B?RzkvdDJYd2hiZE04S2M1K3JBMGhFN2hLMjY4aGVyRXNKZHVueERRL0x6UGFM?=
 =?utf-8?B?dlRaZ3h2K3kwNUpDMm5QcFpmRlNDQjRURFFEYVdHc2M4TUx6TGEvY0VuSjMy?=
 =?utf-8?B?dTZ6NVZnK1FPQjVlL1RKMnBGeWgzQjVIYm1QSDlOalo4SnpnZjhpa3FjRkJk?=
 =?utf-8?B?VTJpeWtzMnpMdDRmS3E3TFl2WXQ0bWxxZU96c1JRVjhDQ2VlYk9SK0dzOUtw?=
 =?utf-8?B?STRHUVFhSlNYK3EzelA5bktxNlFJOGJ6dEhIMFRiaG5hNjhzR1hhdWFRVjJT?=
 =?utf-8?B?aTNPT3NrQlgrdkxUTC9IcW9nV3BJRGhNRGpDRjNZMXAvcGdqVTVSZXNxM01v?=
 =?utf-8?B?NFJYTkxsZk55TW8vMXV2SnlzdTVRZndSM0dMeVNrT3Bka3NxMGRTVm1RMkVm?=
 =?utf-8?B?Ulpjb2c5UGU0WlJyNG16cFArb1FRaGZkaEZUayt3Vlo4OVNUOTVwSG9QL0E5?=
 =?utf-8?B?OWREdWpuL2NWa2JuVnpvV1ZYdjdRWWVBL1h0cE9xY3N5YXB2Y0xFTXdkSWtz?=
 =?utf-8?B?UVlYZzJPZDQ0Mi91bVNQdlVnTmVDOHVnNW0xVktjckF1dk9yT3NtWWpUNWhY?=
 =?utf-8?B?V09DbE8vbEdGM2ZLNEtCVDM1SXBXbklkaWxxYjNLS2ZpTzVJYXd5MnpJQUlS?=
 =?utf-8?B?anNTd3p0cHlvUjFkNE9WczJpME1mRHV0UGhlNGZOUyt6Vlh0a3QrSTdwVmd0?=
 =?utf-8?B?SlljZHNxWXhvUmNFamFyZkdoVDFLd0d6MzRpeWYrd2dBVlJZZWpnSEcyWjI1?=
 =?utf-8?B?eVNKV3BVVkhEZE0zYnlYRVNKQTdjSjEzQUNTRlFvdTVKWk4rMmxFc20yMWN5?=
 =?utf-8?Q?jvqc=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Znl5ellRTnh3cUtCb2orS1RVTmphbXp6Y0JPRTVkc1B2enRIQ21TTlVZSFF3?=
 =?utf-8?B?VUo1Rm9odit1WWJrNzdjRjd1SzltUlF4Nmp5eWIzOG53cmJPV09tY2ZYOTdB?=
 =?utf-8?B?Tk1yVm5ZVnBteEs2bHE1aWx5MjJ1cHZtWjlid0hzbkV1QU1raGdnaHhibmJr?=
 =?utf-8?B?Ly9FUGIzajJ1K2MvSUV2VCtPOWMzaUxnVWh5cUVaR0RNQnhraEdJSnorOWFI?=
 =?utf-8?B?QnZFRXloaTcyMUtuUWJXWXcwMWxlSitOaFd0ZHlhd0JOWEUyUGRXQXNycmFN?=
 =?utf-8?B?a0thNEdBWXUzclphQ2RQbWJJOTFjWTVJdkIyM2ovemMzN0NSOG9RbXpCcXVp?=
 =?utf-8?B?WkpEYWdkanQ3Q3lYaHJGUGtCMFB4Ulo0dmJNMno3T3ppWUVXR3lEYmZhRGZj?=
 =?utf-8?B?dnF0bld2Rzk5T3FONG92RmRNRGRqcGN2Ykc4SVlSWGY3c2sxQmZtTjdpYnha?=
 =?utf-8?B?OS9YamFVRGdvb1NtanlVRGpuSHN5RTFsR2JIMXl1TGp5YVNZYzdCWVg1ZHNN?=
 =?utf-8?B?WklKR0V4QThnTjVZQ1dITi91UzhHT1puSS9MZ2FDKy9aWUMwUFdiU1lqSnFm?=
 =?utf-8?B?UUlLVTFHYzVKdmpXUXp6K1luQisyeXl2Q3hYUjBvSUM1TzhOajhFYjNJUCta?=
 =?utf-8?B?S1NOcVVFbGxDRjZJVUtWSlhLbjQrZmovZ3Naa2dCdlVuZnRTUFJiQkNsYnlS?=
 =?utf-8?B?UkdxR09UOWRwKy9FbnZqMjlVV2EweXZpYzZTUjVldzlWY1Q5ZmtmSFhxVXFq?=
 =?utf-8?B?OFNIRXBIbU9ZTlUzZmxiVjM0ZWlLWXIzNkJzcndSbi91NVN5bFZMY2hwVGZh?=
 =?utf-8?B?c2Q2ZkFxZ21QRnQ4U255ZUdwSFdyaGhxN0Y5elNhRHVZNDgyY0N1R0RLYUFn?=
 =?utf-8?B?OGxGWDF3VmVLUXRyT1NGeEF0UkhxQk5NSkZEV1dyOERJUlZTYmFjSjJSZlp4?=
 =?utf-8?B?QkwycytQclYvcmNudVduSmhJeDcwUEs5bW9wNmR2VGFabVZJY3QydmgwZEtU?=
 =?utf-8?B?RDNmdEQ2T0xSWFFLd1ZYbUNPY1VzZGhyOU1YZytMNjg0dVRuZXdaMUNXekhB?=
 =?utf-8?B?Y0Y3all0R2pmWkdvcUdJc3B6YXJCSXBlelBmSnplZy9hYWVRTHFsU1YzZ0N0?=
 =?utf-8?B?c3l2UUF6RllFbFhpNm4yaEJVY21yUEFyVkxyelB5L0h0UTVCMEV3MzVxWFVs?=
 =?utf-8?B?ZHhWNGpvU1BadDNIN1JUbndDR0FqZTQxQnpPaGNRNi8xbHJrcmkrYjFwVHBx?=
 =?utf-8?B?SnYzbnFvREozSWJwTCtGTXhjLzVYMFVNVzFoRWxVODRZUmtPeGh3ZGRpOGZS?=
 =?utf-8?B?RmNUdTY3VVd4MTNsVWczeHEyTVdOb1VWNkhNUDZGdUtkeEUzdDdRRGRaZ255?=
 =?utf-8?B?OXFtZzdyd1hxV2FPTXBSRDhveEc2KzJmZ2VTSHBIWEZsdHY3Yk9wdXVmbnV4?=
 =?utf-8?B?b3h6VG9ZY0tOUWVvVUh1VkU1Y3hLeXQ0Z0VNSFpycC9OVnlmYXY3U3g0WlR0?=
 =?utf-8?B?WWRiNnIvSVk1c3BBUW5MdFdBRmVxZHZXdzhqUWJJdXR3dWxHU2ttYWJ0Nktw?=
 =?utf-8?B?N3VBK2ZaT1JJOXM2Q2hrdFE3blZBSXJCcnlVekN0bVZXanI3Vm4veTNLend0?=
 =?utf-8?B?NEtSd0I1bmdpTms1UkdDd0JEelR3bktUVVI2eU5MdHlqVWlhOVpnSmNiOEVS?=
 =?utf-8?B?aXZtOUlGbHZ1Z1c5T0Q2ZUd6QmlzdjFOSTJVWU5EcDFsbjFFYVdMVHVJT2p1?=
 =?utf-8?B?ekVpNWpRMlEvdWNTSHM3eEhmcXpiSE9lNithUDNUU2pOQ0p1ZlRlYTk2c2pM?=
 =?utf-8?B?b2ZkZ29Dc0lOWlhVczZHajhTU2wyMGZHUFJZUnQ3SGRQdGVEbzhiMm44eEIw?=
 =?utf-8?B?c2NNSEhUNm8vV2lpK1JJMzF6MDAwcFRpeG5QbnRJdDZYYzRybWEwb3piUDZN?=
 =?utf-8?B?Q3UxQ3BJTjVsakhXbk9MenVRbVZXRWpFMlRzRldrdGFvUlVuL1g1d09yaUly?=
 =?utf-8?B?VGJ0b1QrUmhVakVrMzJIQ05udEl0TFRKeWRXNEwxL0ovVzZDUFJ1T1NTZ3Rj?=
 =?utf-8?B?N3dBWU9ESGVLekF0STVON1krSWlIOFFOSTdJdUJHSDNZTXUySFRMRVVRTFF1?=
 =?utf-8?B?Z1VSVHpXaUlvbFY1L0o0MXorVW5UMnA2L2ZMWTJLLzh6MDUxZGVpTzJxNlBh?=
 =?utf-8?B?QzR2STBhUWd2RUtPWEFzRVdIdTlMUEhsZUFnM3p6a0N5RGwxOUw1SzlMblk2?=
 =?utf-8?B?RmxDdjdpUUxvSFZqSmtLNlhtay9xYVk0QnI3akdYdjc2b2hPU0ZXUDV4SXV3?=
 =?utf-8?B?NG5Id1NZN1FzQXNWY0xhbXEyb0RyLzFxUU9YMk9JWmdmL2pUWGxIUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 763bef9f-a490-41a5-9a67-08de70902801
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 14:55:58.3242
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XTpqlCE3jIVHyhRSsE2+5zbzkCr4i6ET7iOZeiF1asRVcxD5Shd1ZWnA3T0tiNBNeS6U/zz7Vjdiau8D/Yo6lyGTjkmMQbZy8X5PezGrT2k=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR03MB8443

On 16/05/2023 8:39 am, Jan Beulich wrote:
> shadow_mode_...(), with the exception of shadow_mode_enabled(), are
> shorthands for shadow_mode_enabled() && paging_mode_...(). While
> potentially useful outside of shadow-internal functions, when we already
> know that we're dealing with a domain in shadow mode, the "paging"
> checks are sufficient and cheaper. While the "shadow" ones commonly
> translate to a MOV/AND/CMP/Jcc sequence, the "paging" ones typically
> resolve to just TEST+Jcc.

That's because shadow_*() are checking a minimum of 2 bits, while most
of the paging_*() ones are only checking a single bit.

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

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 15:06:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 15:06:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237233.1539608 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtS56-00031Y-41; Fri, 20 Feb 2026 15:06:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237233.1539608; Fri, 20 Feb 2026 15: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 1vtS56-00031R-1I; Fri, 20 Feb 2026 15:06:12 +0000
Received: by outflank-mailman (input) for mailman id 1237233;
 Fri, 20 Feb 2026 15:06: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtS54-00030g-Ux
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 15:06:10 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id afed36f4-0e6d-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 16:06:10 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by LV3PR03MB7501.namprd03.prod.outlook.com (2603:10b6:408:19f::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.16; Fri, 20 Feb
 2026 15:06:05 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 15:06: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: afed36f4-0e6d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iH7S/q2i/lLZNaDjPYywjY4FSiugjfq0YxZ8MkxJ1je7U3KuEwurIBCfpxZl7QELP2grud7VhzSbHw79wOmlDClm087P7SSwFIc8PGJtiX27+g+VGqA2f9cJmAbuHn7JqXQTN/9Ncg85tZoJDv5gch4r0wQJ0KVTRJaXD8EuVlfZwfpAXifYYwn4oYMAT5IHU6pyZ/0Nk5Txn5y2m+spdRKahW1M+dKbrOtTvDqU/is+MqGZctTb4SgTIzEXpzlFUr3hC+BCbN1jceeAMr275p1f7+ep5HMw16042MnYBbW+0gEvkeN03Ey1aoH1obg6YuXOxwwfq2GLbzM4MLuK/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=auf12nDW0j9b06N6A3UqnFkazB6eYRZxm2r0QIcHvo8=;
 b=WhxAm8wILSnHff9cfQGC52636Ln+aJyrxMXOxMeVLNeBktCzATvyCOh4dXthpQavbFPe1Mv8Xtj7zvkDnzSwwE1E7ii2uwOjX9UCldXqB1PIffTxksb5OVIW+E0KDjOVy8H7tR2juXeelgP6djHUIqDNtz2+Dxuh0TFqexj+LUvxTj+rT6Q86rUH/YqTd+3FYlhC7ZRXaYyLBpim9FTSk7E/gsP0YC2gbUkRyh2P3cCz0qxb4TuNcM/XibllH+Sk7dRnVZ/uhsies1MsZJEWgGctugc3rSMp8OGn54oLUsusqUevXPahfMEtee9QVwR6GVu4HgdQxIznwlRsAzr2rg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=auf12nDW0j9b06N6A3UqnFkazB6eYRZxm2r0QIcHvo8=;
 b=WK3ESNV3O3YQjcDPsbewXzA/f3e7aVR8ceD4J9mK8iOpusOGbcipMi4uUupROigGvU3YJmVoRdicQnzWxd7StTpjn9saN3frOXjXuxJgTyrw43s9ZuueW+ng7DHIBNdotj+Of95/IiUoTWe+g8L8Dmf855AxTV+/zZq2ObS/lx0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <abae3741-d866-4816-8744-6721183f35e6@citrix.com>
Date: Fri, 20 Feb 2026 15:06:02 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 06/12] x86/shadow: restrict OOS allocation to when it's
 really needed
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <3c05fb6c-f71e-1b86-6146-96f2b3f3c9ae@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <3c05fb6c-f71e-1b86-6146-96f2b3f3c9ae@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0277.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a1::25) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|LV3PR03MB7501:EE_
X-MS-Office365-Filtering-Correlation-Id: 0f59e020-e387-4ad9-129c-08de709191d5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MVpNTWdnOUlWc1kwdTVCbmQxOUduNHREOWh1YjhlUy9lSnI1dmNjSGlKU1BC?=
 =?utf-8?B?SzVlSU52V2cxbEIrTHBvc3BzRERNcVN1MkY1ekVGQVdyei94TUJsdmdxRGJK?=
 =?utf-8?B?dnRJT2VuVXRVNkFNcGxrSmtjekgxQlRtRnM0WlVKSzdHVGp3dnFpVnNKMSs2?=
 =?utf-8?B?dStFWTJrWGtIaENLTm5xa2tyTEZlZHlFUWZTZ2NpZ1RRdGpESWtmVWdIN3Vl?=
 =?utf-8?B?WDlTeW9kWkZTVmtZd0ZlSU9hNHMvR3hJaFRzVHZPaWRoTm1MUDJFcitZQ1Zh?=
 =?utf-8?B?Y0NDSzBoU09Rck1kVkl1WUUzZ3M2SHkxUlROd1Y1elJmbVFqRkR1dXRya0Ez?=
 =?utf-8?B?OUdNTUllOXBBaDdmNDZiNDBKaDdEbEt3cC9Dd3QzQ3l0M25BTFJLZ3VyY3Qv?=
 =?utf-8?B?eEgxVVNTamEvYkJzejVUeWFNSG1mc2YwWUgzMU5UYVpyYm4ybUlIellDMFdK?=
 =?utf-8?B?ZmlVVmtoUmZobDYrdXh6UHphNWVMbnNVR29VVTJMZzZtUUJRb0V5SlEzalZR?=
 =?utf-8?B?RDM4WTRRdjR4SmZQenF6WlhocHdEQlhlMVhVVGZjbEJ1OTNKQjFKNjZOcUZO?=
 =?utf-8?B?NURENkl0eGdxMFBDOGhJNFJqRU9rbkFoT2hvZHpWNzAvZzYzbXBPUktXbXJF?=
 =?utf-8?B?RFp5aWVNemdNbkFhYkhuN1AxMVpkZnBiallCZWlBaUtramwrTGpIZ0pQNWwr?=
 =?utf-8?B?N2FMVEdlYk1Nb2tvaDBudm5vS0NJTkJEVnBZQkNsMWs5TGdLV3dPclAybzFs?=
 =?utf-8?B?NGFpdGw5SXN6SldnY0h2enZJcHdjQk9Za2d1ZzhaZGJIV3dmMDRLTWtBYWN5?=
 =?utf-8?B?SU9kby9kZWd1dHRqNjNsWk9pTnFnc2xQTEw5UUVkUWNrZzM4T0pDc1UvazJo?=
 =?utf-8?B?a1pPSUdNQlBDVUNNMXhHRit4d3FQUG9pTWJBMmRaZ0hUeEZTdGJYRldYanhM?=
 =?utf-8?B?UjFyVmZMRExXRitsMWZsVmZycit5c1lJcm9tTzF6M1hUN0huZnJQS0lYTXVG?=
 =?utf-8?B?NllObU1UQWVFbGxtZlYvK0pCYmlOWUF2UHhLRGNUaFRVeXhia1ROQTM3Ykdl?=
 =?utf-8?B?SzBHUmRUYitkT3dQNG1obTZGdFF4ajhJMUdVbmFSUmFobjUzU0MxODB1ZFFD?=
 =?utf-8?B?ZFRkcUhhOVJUalJOQlBsWWJhczJRQlRLVysxTFhwcHk3bmVUZFNZdjU0NDhv?=
 =?utf-8?B?SUtlcktpZkliWStKR3JOY3ZWdm92S0VjM2cxUEhpSzBSQ054UUVqSHFHQW1E?=
 =?utf-8?B?RndYMW43SzdpMGNnbUorYzB4c0Z2NFVuazIxY2JHb2hYeDBoa1lLS0JhdFdh?=
 =?utf-8?B?SzlNL01iQTVXczRBS2kyYkZiUHhwc1Q2elZoZUo4RGFIQ1pmcGNGRnVydGs5?=
 =?utf-8?B?Zi96ZWZiSEM1S2E5SnR0dWd3MUc1MmhjUGtxTFlWcDBWWHN3YnYvOVVnRk4y?=
 =?utf-8?B?dXZiMHRmbjFCOFlrTWlOMStiQjMxV2dtSHlORVFrdDF6cG52YXNtREthdSto?=
 =?utf-8?B?eVU2OW55NEtYU2VmUUdoYjl3eXUvM1hJR2w4RmJrSWlxWFhweUdJWXVrV0JV?=
 =?utf-8?B?VEVUMHVHMit6UCtJYlFkWUo1OFpnMHp1UDEvTE1DQmdpRnhyTGUvajA0K293?=
 =?utf-8?B?cFp0a2dRNTdodDRCd1JIN3FYcEUya1d4N21saXhId1JVK015RnpzYldheTh1?=
 =?utf-8?B?RVNIRVhYNVBOcXJJc0RFK3VpSmp5bjhKZEZsQjQ1NlNHMVgyVG0vV2YrbkYv?=
 =?utf-8?B?V1V2K1MxQlh1djR1clhGZFF0NWhvZW9rVHBVaklFQnlQcXAyRjdOUHZxdWVU?=
 =?utf-8?B?QnBnNHdDV2E1MWZiajlNdUkzTzd3b2hiQzJBMllEZ0lDZ24wbjBGd3AyV3Uv?=
 =?utf-8?B?MFFneXhuaTRpRlc1dzBqNmt2YUhqVEYyTFZLVEFveEo5Snc5UmtIWkRJVkZT?=
 =?utf-8?B?Ykh1ZEpJVmVzS3hoOE5FRG4rMlhhc2k0MVhhSEJVYTdqSWNRVHloWFdoeS84?=
 =?utf-8?B?N0hySk1aVDg2L21Sb3daK1pCVms1RUY2K0laN0lOcUgyNXZObDMrWTl0c0U3?=
 =?utf-8?B?eWI5ZG9ETzFocko3dXlJblZiM2JuR0ZMcHdzWmJyTTRMN1RYRWFKR1BoY2JH?=
 =?utf-8?Q?hRuw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?NWdDem51OVNxd0NFdEZtK1Z4MSt3bktVdGFxZ1dRcWlMdzdnZ1UxN2ZTWjVx?=
 =?utf-8?B?aDB4L1JhRGFsOGlQNmRJcm9yWXJBZEt0RFlHTWppZVZCWXdxQWlDVjJKZEtx?=
 =?utf-8?B?bWZ2UVE1cmJUaUFxUStKUzBFSW1NUE0zeTV2ODV0ZXdYdVV0ZWVXWXNDQVZq?=
 =?utf-8?B?SEJlN0dxSkg1THMyczBYRmpBaGtXTFBlZHZWZlVIR1RNSExmWEhKSWVndW42?=
 =?utf-8?B?V25YQ3htZWdwS05kVElUbU9iSnR2dHBFcHQ1ZHJFQW9qSDRYNFVEUTFhZ1p0?=
 =?utf-8?B?cjVqNkJTVTNROGl1TUNQc2JTNm5ScXg4QjRTbXQ2MFR3c01xNEcyM05DczJm?=
 =?utf-8?B?dkpFVjJac21zcmFHY1IrT0NHTUs2UHJGazVsaFRvall4aEFZOEJUOW9NNVp1?=
 =?utf-8?B?R1R3OTRxcEx0c3hVVWJaWWM2YVd1Uy92MEhpaUdIZ0R4eitwUC9PMVQyelJ5?=
 =?utf-8?B?dkNsemdIbVBYSW9wVk1WSE5JZmUyai9vUGlXWHNWYUJjUjFFRll1aldqUy9Z?=
 =?utf-8?B?Q0k1bkIxNWk1Vjd6cW5EMmNFV0d2amVKc29wUlVFajVvT1RLMGt2amZ1SWI5?=
 =?utf-8?B?d2FnVDRVNk1XWlErQnFhQTU1dkUvNklIMFNucGROSG9GYW54b3NSMnF1ZEdj?=
 =?utf-8?B?d1Y3RERybkJxY0R5VUZkam9qWVh0blEyMUdVajliZnB1dVlCczRkUjdBc0Jv?=
 =?utf-8?B?Y2pCVkJvWE1YcXBpM2NsNXptTjZpMjV5SHk0U2VUNUV4YVhiM29JK1FwYVF0?=
 =?utf-8?B?c2czMHU3MmkzOFNpRytyVm1WcWRva09ETWRQa0hkV1RGSzhXT2t0MjFqeDUw?=
 =?utf-8?B?YWpOMm0xdlJqc0FTeFUzeXdTOHYxNVlPQjRoMUVoMDIxL25NK29KZTR5WmRx?=
 =?utf-8?B?MjJqSHNqQmVYWkxEYlljL1doSTNJSkhMSlRMMloyYjVqVzN2aTBOWndhMENO?=
 =?utf-8?B?RnFKSmZ5M1lyZ0MxbmZtUHIxRTdQRE8vTFVMcVV0TTMrR3lwUTByMk1RaldS?=
 =?utf-8?B?a1lZams0U0k2WGlmZ1puS21seDBTY2R3VEcyVURsT3R6dUZlaU4yVC9MVzJv?=
 =?utf-8?B?TzcrOXMyTEdSZ0VDamJaTHdWVVc5dXNYaG9Db1g0SWdpd0tka1hoV2tMU2dq?=
 =?utf-8?B?MW0vT096d3dDQ0FaaVg5dVJ2UDFDajNnUGtJQ21Cdno1STZCNlVsTkRTR2k3?=
 =?utf-8?B?RmMrVHZpUm11L0VqMkVXM2lETjBjaTRKWXUvaVJkdGhiQno5cnBnNDBlUVZz?=
 =?utf-8?B?RmN5ckhtTE4wT2FNbzRwa3JKMFBFR3RraEY3bWIyS2ZwNkhzSU9KMitxVDR0?=
 =?utf-8?B?bmVvM0dTN0dpWHVGbTNlQm1aVUQ5OFo3Z0d2NmYvSlRSTWNwaGhrNDNMa1g0?=
 =?utf-8?B?NjBXS2RZYWpnczhjRGtJc0xoemtIRElrc0lQdGZTdjNwQWtMWW5Tc0hIOURp?=
 =?utf-8?B?RTRkWFhzTzZqU3Vad3VjTHB0T0VsNWJNRmphMkxiV3kzNVVhQkZya3d6dzh5?=
 =?utf-8?B?VGpONEFkRnRRNW04WFl2V3FZTCt4dlkrMGZicFhhRUY5MXNId24rZndPRjhj?=
 =?utf-8?B?eGhCZEkrY1RQeWY4UXN6SURVdHc3RFk2MWV5WHFFWWpNM0gzQUJqa0puUlRU?=
 =?utf-8?B?R1p5LzByenlwM2NnY09YaFJOVmRxK2FsdVlmY0FPbENlREtaRHhmZ0lKYnQ0?=
 =?utf-8?B?NVNLemFJd1hVeVhpbGxQZlZWMVpWTkhsbzRkOFVxMDlHWXV0QTlic3NTK21K?=
 =?utf-8?B?MWhDaFc4TXFZMStldDQ4L1J4WHJ2S1oxbmIrdGZBRlJZNTcxQkk1UXFMR0pj?=
 =?utf-8?B?VW1tbTArWW10NkJJajlvMzZxeG1UUVdIdlNZS0kwN0ZVcXNMdzJzMEJHdnVv?=
 =?utf-8?B?bWxtaFQ3SGUrUGVGdXdabzFpYjM2YkQySHhYZjZCRGZMc3U1QXZKanBBOWlh?=
 =?utf-8?B?a2VmSVNTdnJ2dG1JcnREY3o3TTZRdEthcTJnUlM2aUkwQWt6MTZEbmFRV1I5?=
 =?utf-8?B?bDNSZ1dLVC81dGtCSnlLVWtzVjVwRmxMdFRiZDJ6bCsyOHE0OXN4RTFSSTNT?=
 =?utf-8?B?UmFYcWpkQmZMTkpDSzZCT3pCMTVUdEFOVnY0YVlwbGdzMWJIRXJWcjY1NXlv?=
 =?utf-8?B?VkdXMkJXWEhTNVprSnErV01hUy91UUNUUjNKKzN5VE8vVEVxbDVndm9mU3lS?=
 =?utf-8?B?enYyWjVnYTJ3bnlMTERJemNIVUhKQSt0YXFwUzdQc1dySmhyY0RDU3Y4MGxE?=
 =?utf-8?B?aXQxRHBDSG9Rc0I2ZysyVXZEbjN2VzRHVUo0S3VueFFLWTJKZDhnZFBXSjJX?=
 =?utf-8?B?OW9YYUU2S2IvYWxSSEJCeDVSTjFScmZrcnd4UzlpNzRjYXRvejN2UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0f59e020-e387-4ad9-129c-08de709191d5
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 15:06:05.3708
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 4rFD1qyFpLow+fYqoGUHtEdj5fmDogbImREXKyX80vhNOGi1PqfBKVqO+FY+37++QJ8TKPCJCz9jXUeZd7h0K8v2QIV+qR6hv58S6jhG8HI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7501

On 16/05/2023 8:40 am, Jan Beulich wrote:
> PV domains won't use it, and even HVM ones won't when OOS is turned off
> for them. There's therefore no point in putting extra pressure on the
> (limited) pool of memory.
>
> While there also zap the sh_type_to_size[] entry when OOS is disabled
> altogether.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: New.
>
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -61,7 +61,9 @@ const uint8_t sh_type_to_size[] = {
>      [SH_type_l4_64_shadow]   = 1,
>      [SH_type_p2m_table]      = 1,
>      [SH_type_monitor_table]  = 1,
> +#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
>      [SH_type_oos_snapshot]   = 1,
> +#endif
>  };
>  #endif /* CONFIG_HVM */
>  
> @@ -1771,7 +1773,8 @@ static void sh_update_paging_modes(struc
>  #endif /* (SHADOW_OPTIMIZATIONS & SHOPT_VIRTUAL_TLB) */
>  
>  #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
> -    if ( mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) )
> +    if ( !(d->options & XEN_DOMCTL_CDF_oos_off) &&
> +         mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) )
>      {
>          int i;
>  
>

I've never seen XEN_DOMCTL_CDF_oos_off used.  Xapi has no plumbing for
this, and xl only inherited it from xend.

At this point, OOS is the tested path and OOS_OFF is the untested path. 
I think we should remove the flag and let OOS be unconditional like all
the other shadow optimisations.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 15:08:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 15:08:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237240.1539619 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtS7D-0003ok-Gp; Fri, 20 Feb 2026 15:08:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237240.1539619; Fri, 20 Feb 2026 15:08: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 1vtS7D-0003od-CV; Fri, 20 Feb 2026 15:08:23 +0000
Received: by outflank-mailman (input) for mailman id 1237240;
 Fri, 20 Feb 2026 15:08: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtS7C-0003oX-7J
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 15:08:22 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id fe18af06-0e6d-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 16:08:21 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA3PR03MB7256.namprd03.prod.outlook.com (2603:10b6:806:300::13)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.16; Fri, 20 Feb
 2026 15:08:17 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 15:08: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: fe18af06-0e6d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=vvpZkPzflkKVRfDR6P3JfD7MM/GHzyUJq2h69p5t2NpveRYnVGW+gvyyi1VJSkPvgWT1E5JRuEibtFwFULuauHt/Gv9TzTh+Q0f6CQWAP2Mh4O7ffaI/p/gHgwLOIaGz87lMXA5X3V/Kr3FrgNjjTAoOw6d+de6Gd1J1W6Ei14KHjdSJYLEqELl+CnGhVSWzymiEeD3dnQ4VunixSmkaN7feOZlwVvCyHqgRGnTr4Ps3w4Uukpnxya5LAv6lV6ZBpze11Uvnz80EIUDdT2whEPt+k0ey4WmtKdrXHSt8azIj86TeucB/9qhFhxTSj8BpYwQwp2VQ7NHYyO2uARbEQg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Mu5RkSTgtONRaYuGBUXlaO6R4hePM/OFbiP49FBow+Y=;
 b=CNwwiDEw4hs2jyIgh7hVdM1GLOsjEKj0uZUrFReXdYEke+aue5+MFvV7ZNhW4H21FbqqaFILJ5mxgWuYdQkFlrXp9tJl2TTAySJyCuVhpjuqYOkcFhZ+imM2CUm1NZDrTSrwALluxAjOdou4ZiM24qBGVQGxuw5hrIVX0G0s8+EdCGM0UCGdxh5M8ieZveUQy9uHMkOhxBm7Q0xgXGr4sdD+O0VaOzlX9DJv46oRR5VlJmJXG3BVxmRN0OVRRNRCSL6Avi4jyp+KeimwsOr0mKTt9+xs91M+SDO4WcQGkx3M8o4Pmrt/4/q1G2sb2MGXi/RfWPJDFhaZiljCqJo2sw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Mu5RkSTgtONRaYuGBUXlaO6R4hePM/OFbiP49FBow+Y=;
 b=y+LAY75C46ezdVQvYSLnVM/jEJxlfjlOPYiKUJtXcjtu1uDJNGW9/cy+Lal1unxk9HYL1msfiGvCY7IcMfRUeNal54tlTgb8Rciw6Vjt2Ac+kjN9x2e4rswjhdooaz7htI1BF7ZAm2JvURwWiaVdpVozzQZn40zcS4QEi1wwjF4=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c543d076-4ce5-4396-83cb-ba54c0bd2a12@citrix.com>
Date: Fri, 20 Feb 2026 15:08:13 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 08/12] x86/shadow: sh_rm_write_access_from_sl1p() is
 HVM-only
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <ce0dc192-7d42-fc71-2c68-2b67933c5912@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ce0dc192-7d42-fc71-2c68-2b67933c5912@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P123CA0091.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:139::6) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA3PR03MB7256:EE_
X-MS-Office365-Filtering-Correlation-Id: dc84cc74-9e56-4c28-d135-08de7091dfe3
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?VDJFZDBpczVMaWtGdUpJVFR3aVhyMDM4Z3JzVUFJMEhuT3dCY3A2RldZTlJG?=
 =?utf-8?B?UDgwTEtpM0V0WjNjbG12UC9wc1laYkI3RktiejEvQlZUTk5wa0oxaS9YZU1E?=
 =?utf-8?B?TkZwa2puTEJJUUplcGtqVFBCRmc4NGJpNW1LMFFveFNNOENWVEppWkY1b1dx?=
 =?utf-8?B?NlhCQlRLVXU1cjdaVkJ4cXQ1S0dkM3o4TDhwVWJZVTZOYkw5U20rZTFmcmk2?=
 =?utf-8?B?bnI0QXAyTVN1S3MvYmVSSkpnWTRRalo2a29ER0lnNDl3Tk1mWEFnUC9sRW1r?=
 =?utf-8?B?bngxYjlvU0lvTzl0OG5QVkN1ZUN4OWhCYkpsSGV4bHRlb1NmNWJuV3FKV2li?=
 =?utf-8?B?V3dzNXphZitlMll1amdqMkFDNXozM2lvUHZRZk9vaitUSCtSOGNWMkJqWXlI?=
 =?utf-8?B?TDlJVTJTMjE5MENCNllsb3ozTDFSMkpERkRnWGwrdTdXL3MrdHFYQ3JFUU1V?=
 =?utf-8?B?ellGS1RwRjR1bkhXdTZaZHgzME1vOHBwbE1oRGVtY1pYUWsrMzkrUlNwYTlv?=
 =?utf-8?B?eFVFaENTV1ExRUlaby9UUXFub3BHZkNOR3N6YldrcSsvZ2ZuY2NTajQrOEJM?=
 =?utf-8?B?ZFpoNnB0NUZqSHpGZ092eXpKSXZrL2RIeWUxZEdLV0RmTHpaUWg3R0x4RTZM?=
 =?utf-8?B?bkRscU5ZazNuRDIvTmlLUEpHcHp5N3RUdDNFeFJrTkJsbVhKUXhyRU9JSWpy?=
 =?utf-8?B?Q3BodU1nOEF2Q092aS9TQ3pPU1VNc0hvVTAvMmZTM2I4aGNSd28zbk14dEtJ?=
 =?utf-8?B?aDJQQ3luVkhUTFhpUlAwNmptZGZGTlBFeGpPaFRoeDUxRUJVVTBybkN0L2lz?=
 =?utf-8?B?SlQrSzg5dDdaaC9GL1VZQkJiMzIwbGZLZkp6MGM3NE5nM0w5cTFEL2FocFc5?=
 =?utf-8?B?cENtT3o3ZHJzZjE3UHpTWnBiSkxTUnpGRkcxTm5VZ1FBUW5RRjJiMGdpT0JN?=
 =?utf-8?B?TkZRcjBsVm54OElaVEVPOS9JbmJQY3JnaXY3Y3N3MkE5b2kvR0ZPckxKVkRa?=
 =?utf-8?B?S2pJa2VLRHk4cndBSi9jQ0ZpeThTeG8wQit3QUUxQkh4OVdLUkc4MmE4NlRX?=
 =?utf-8?B?VUYzWVByL3ZkZmJtZlB1MFMrMmdqN0R5WmlSTGI3S1RramNocWpQZ2dWc1dY?=
 =?utf-8?B?cHE2UTB1aEcvT2lzckxqaE9IWmJrcy9EbzV2OFNsNUhBc0o0bUE4VVR5ank3?=
 =?utf-8?B?cVVVaURiSWRTNklFclVhalRCdVR6cEJVYWlDTnY1UlNmWUIxVlJzUEtDZ3JD?=
 =?utf-8?B?UG9vTkhBSUJpN3kxZ3lXOGh6MHdvMmJEZkdnN0tGUVZJL2dWa3MvY1h6akdw?=
 =?utf-8?B?am96UElLYTl0TUU1UWp6UE41THgyZHNUQlM1RDZaMVphczF0TFpUY0U1eHRE?=
 =?utf-8?B?TUcvNEJFbE5YQnZIN050Q0MvZndnRmxzd3F6ZjVEaXdGN2lIMzhhTk1JTzhG?=
 =?utf-8?B?M1R6NVcrQlU2WW5OZmJFd3pHS3dSTGZYNFdGT1FaaFV4MkN5OFQ0TU1RNW9y?=
 =?utf-8?B?M2d3bFd0bjNzZURma3dVRTFQakNUVWwrOEorUFhpb1Y0NHI2ZzBlbTBCMWZs?=
 =?utf-8?B?RisrMWlpN2l1d3ZldTZvSzJuQTZ5STYxZ3BHSGhnUVlzSlh6cW1qa0V2cXdr?=
 =?utf-8?B?bldydnpUSndISFJTdVpBWTRVZDU3QXlWbjl1eWFKV3RVdC9pa3hHb3pHbVJt?=
 =?utf-8?B?a01DTU96Sm9LL2VkRFJQVWcyMlNpMUJEdFNzMEh2WHppRHlRbnpLVzFLdlhv?=
 =?utf-8?B?M08wWTdSK0cydUNrbVllMGY3eGFQNGJoK2ZVaGpQaEhQRlVGYW5FLzVmYTNM?=
 =?utf-8?B?V09XMlI2ekQxbDRlb09hbzVmU2U5cXVNUXlTZXJkRCtwWkl5b29oT3VrOTZ1?=
 =?utf-8?B?cnJwZG9zUWZaQThUWG84QzNmbklJeDY4MkUwQkxVNUNaZUVyMVpmeVRUZDBa?=
 =?utf-8?B?c205clMvY2NpQnZCM2Evam96dm5ONkVSVExiQlRMcmZqZlJCaUpCMW9WZHBG?=
 =?utf-8?B?U3lXZ1lBTVNpa0MyV3BveDFvMVR4eldzR09IeHFoYkJYbDZJOEVzUExiR0o2?=
 =?utf-8?B?b2RMZWtIT1MwaWU5akYwM2RCZUN3bUYzUHk4cGc4OG5uTjZxWVl2NFhvOVpH?=
 =?utf-8?Q?Pw1w=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TnBYUEU5endaK1Z3Yjd2RGlhc2dZU0RCbUYrMlRPdm13QTQ1R2RqU0xNRGdy?=
 =?utf-8?B?OTUwbmlhbkdSWFdRVW9HendhN0RmT3FsMW5pZGMwaWZYVDlCTkRvQkxaVkNz?=
 =?utf-8?B?a2lOLzRQUDhWM054ZlBhRmc2UnNEd01zTzdWWnJEdSt2bHBIUmRIL1ZCZHdT?=
 =?utf-8?B?WXhGWnc5TFUxR3JIb2c3ZWludHBuSnM5MWhPRGJZT2I2WnMvZXJNMmpaUzZy?=
 =?utf-8?B?T1gyeUxPWG5GbEM5d3FqRlFTbjM5MExJeXBjL2dJNEhQM2puV0pwQ2R6cXpu?=
 =?utf-8?B?ZGhKSUxGbFM5dUU4azlzM05KaFAzN20wbGpCNkVqdWUrdnBkajlOcGNFb3VL?=
 =?utf-8?B?dE1ZQ0xvVnVtMkErSjdTVDJMSGNNNHc4T2o0Y2Qra1Vja0pFYUFJaFVCWlBI?=
 =?utf-8?B?cmF5cnlJWG9rZlNZSTJUSytTaEIrT0dUQU1lT21kWC9MSFF5Qis3QjlFQTdG?=
 =?utf-8?B?clN5dzV3STRLYXFuN0JRaE1wbjFuZGF3Mk92NStMS2JMV1A0bXcrN2xHUm1K?=
 =?utf-8?B?R2NaVXo1WmxCRUUxQ2dlRitrTHFIRnduN3c5WWtYanpKcXV4dVlsQ1VMR09o?=
 =?utf-8?B?OS83R2Y1QUpBTEMxS2tXNmhHMkNFM1hmN2ZLdmcrZHdtS3gyM0N4cm1GeVFH?=
 =?utf-8?B?WUFFdG43RWpKaWFRdGg4VkJxTU1vWFRSR0RvQ0taQUttNjJ4YzJlU0svWXBh?=
 =?utf-8?B?UVJodDBBeU81Yk1CNndsWjR2bDBtc3o2L1VXaUxZNHcxS1g5WDJad3UrQzEw?=
 =?utf-8?B?NjBRVXVZUkJWdkNENVFJNHowRzFRRVhUREk4dlAyQlV3V1pvaWx3cHJDanhw?=
 =?utf-8?B?Vm1kbFZ2bFNLQnJrU0dDajY0QTlCa3pBVG5JVC9PODdxQTNESnlLZFVkRmcv?=
 =?utf-8?B?cXhlRmZLWUpjaVhrOVBHVnNDVWpOSXlYSXpJaWFPN0tFTzRXTkRoOGdPL2NE?=
 =?utf-8?B?bjVTeExzSW50WHFUZ0JmbzBLbHAvRDRMbHdEVHhrUnNqTVQ2cVZDalhib1ht?=
 =?utf-8?B?RnV6RW8rNnJBWHc5bk1kUXQxRHZvWit6T2RsbDlHbkluYzlEYVVtTmpBL1Nn?=
 =?utf-8?B?cjhmbUZOK1hnZGhiQXJNSTM3M2pLVEZhNTdOTHFvcXdNN0t2ZDhUS0ZRWTk5?=
 =?utf-8?B?bGJkR2sxSzhkQktDQUlwdGRnTXFUUEtDSlVmNWQ2WktvRHgrTTJrMnhoZ1Ru?=
 =?utf-8?B?Tk9oREc1Qm5qem9RYXBHT1c2djhrWTdUaWZkTlk4Mk8zT0REWms1S241SXIz?=
 =?utf-8?B?Ty9naVc1WHN0Z1dDOUZCYVQ3YnYzeCt2bDl4Tkc1OHRTUGFCbDE5K1UzOGE2?=
 =?utf-8?B?Q2c0V2tUditNa3BqaUttc0ovOElyMXRnRjRRS05RaXRDNURvWlZjYmFvbUFw?=
 =?utf-8?B?K2VVc2NwZFhmMk9TZkpla3JqK2Q4V2tGMmZJc0x1OXJRVm51ODV5NnNZUWpQ?=
 =?utf-8?B?MTRqUzVra3hUd1Ryb0pjMkhYUktURDVXK0t6YlhSa1hQNW0ya0NjSWJsb3Vn?=
 =?utf-8?B?TUJLNEIyV2thRWx2WEltYllPVVlMRXU3ampFV3Z6Y01ZdjR6bkxnVS8rQ1U1?=
 =?utf-8?B?Zng3VlJ4a2hHUUhwVnpLN3hNZ3BkWS96VzhhanVmSEs4TTQxZk91VG13eFFl?=
 =?utf-8?B?Nnl3OTd2YXB1N0Z3azVwWnEzaEpWbDhmUlpWZzB4T2Y3OUJYbEE2dkVJVG5i?=
 =?utf-8?B?MGNWVnlhZkcxcEZhNnlEVWVIdWkwQmd3S2RVTlZVVy92czJzQ3pOUUtXZ1pt?=
 =?utf-8?B?S20ySi96elNSaXZBc2cxTUVUNWZzM20yaDBxQkhXMkxCek80emJBVTA0UFNt?=
 =?utf-8?B?SEVYb2wwTTVFM1kvMWhJK3BtbCs2MDlxMzBjTFhBck5DaXZ4b1ZFWkIrN1cz?=
 =?utf-8?B?V0ozT0lZOFV0Z3h0ZnMzejM0S1F2MTZvUUJPU2pKS1ZqSzEwS3Vqd2huLy9Q?=
 =?utf-8?B?OVZLQzJlTG1vaWtGYnllSEhjSStlM2pJVG9kK2QrYzduWlRYZjl3c2MxU3BR?=
 =?utf-8?B?NUxoQ3VCQml5QitrOUJLd25jRHlXWGE0clVxbVpnM0VYUW5UYmhGYytOaG8y?=
 =?utf-8?B?bWc0enpIWmZhbVEzWndBTU8zQzhyU0ZXaC9nOWgzSjRxM0tPT2FITkpsOFJP?=
 =?utf-8?B?bWptUThpelFLRWZOUlp2Rm5rNkJMTi9CbUdBVmZ3MHBEdkZVNkNKZFJOWU9u?=
 =?utf-8?B?b3RVSTFNRkcxcWN0RUJ6NCtBYXpzeW5UbTRRT1pUM2pLazVOVENlWHkvaEtV?=
 =?utf-8?B?YmE4dDZpbFBOVEFCVGJtaTc3MHR2VzU1bENZTUlNL1VMYnBvNmNBSUhodzJG?=
 =?utf-8?B?RXRnQ0xsNkloR014Y1p1K2puQ2s1dytjK0M0TUZlMEgxVkd4RElIUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: dc84cc74-9e56-4c28-d135-08de7091dfe3
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 15:08:16.3419
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bqpkedxKFlpE4PdNJi/rHF6niGN27RJ95wUS2bF4IYufMVvzWYS03rr1VE/iO5knGrvjzAUPbW/UvrE3Ur11J+RhKT61zwlGwTn5/aHEOUc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7256

On 16/05/2023 8:41 am, Jan Beulich wrote:
> The function is used from (HVM-only) OOS code only - replace the
> respective #ifdef inside the function to make this more obvious. (Note
> that SHOPT_OUT_OF_SYNC won't be set when !HVM, so the #ifdef surrounding
> the function is already sufficient.)
>
> Requested-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 15:14:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 15:14:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237252.1539628 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtSDI-0005RC-60; Fri, 20 Feb 2026 15:14:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237252.1539628; Fri, 20 Feb 2026 15:14: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 1vtSDI-0005R5-3I; Fri, 20 Feb 2026 15:14:40 +0000
Received: by outflank-mailman (input) for mailman id 1237252;
 Fri, 20 Feb 2026 15:14: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtSDG-0005QV-TV
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 15:14:38 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id deb21a2d-0e6e-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 16:14:38 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by MN6PR03MB7669.namprd03.prod.outlook.com (2603:10b6:208:4f7::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.16; Fri, 20 Feb
 2026 15:14:34 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 15:14: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: deb21a2d-0e6e-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=v3AadSxYLqie4DyfUb6UAHUy5TUleKm+dlSSy7wyrqV81AZrRWqXeC0rxG6PdHk974Uvfl7Vi1cTeuBRHefHKQuwoUZuGRoLNfkMpIgNwx4cJYebkEn/fd5P3chJ21XSlpOJPBrkIVN8i/PWp3DaQJzIqGN+5D1orRspqjBx+s8z9wQB7egrGbNZhsyZZwzwEy1SiaKx7C7jbYsuD7BG+CtCVCxNZxM0vJg85Au4FKZ9EL6Qdu1U8+seD7AqXcBk3xfOTjPglzfFtnU/bb+IJcf2WCSlVK5s/lz5Nmqfr1adT+dBEe8+TOb7MwDW2xPkHz+s+3P40xeztFBOLLXxHw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VLqNqelaA8nRP3SfuKZEN0FkjhVEzjTdCxS3OB1A6iA=;
 b=atCFaVdHOSmI0soYzbE9qHULnZOsIFJJXoKH7X26rf4aabknpwvEex5Vj92i5qzohPNRwz93qJUdT5Cuhx2JZtfHOxKTkAiV7bYCqR8limsYZcbuzDMlDZO1pmMHCuqcdoRsU+TtT3s3fqIT9mrVaJcd+C4zRnoP07ZZsujjcfqTR+1fkXrYVndLe5OC5hUxJMFCp1k4SIzEwpATyHbaj9+9+zrARpqlWTtrabFonyfJLonMYUiTjVbRfGc88keZhJ7ua2wC8QPfiq6/RgZjrEzSYWnq9CZ0vxav6wS0D3ein6cVKx8r7gvl+1dkxPBDjsBsHTn/xr9pKjLpLuyLEQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VLqNqelaA8nRP3SfuKZEN0FkjhVEzjTdCxS3OB1A6iA=;
 b=MJ77Xf5vqEVsdrxZKntCW+SCSaC6Fr8Xh79kzwP4Pv1jnvuF4SHXN1YaQo50qWw6EqPIfu9rMRkBJuV/K2+eOrFA+fD+GpOC2ZnLpsYfZR5zVoWUl0K4If8MtjmnVcxazAd0y7u7CusfUfcBc0B5bAIhcWuOGCh2ti9oi2Px6kQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <82877022-7d25-431c-838a-2ff5b2c0a008@citrix.com>
Date: Fri, 20 Feb 2026 15:14:31 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 09/12] x86/shadow: drop is_hvm_...() where easily
 possible
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <ebf7a96c-8529-b238-f9bf-750cf42312f9@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ebf7a96c-8529-b238-f9bf-750cf42312f9@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P302CA0011.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:2c2::7) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|MN6PR03MB7669:EE_
X-MS-Office365-Filtering-Correlation-Id: 498ff4b3-c4d1-4f01-164d-08de7092c173
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?QTZCcUR4MXJOdG1ZMGkwZm82UUhPbGVESGVTeFZ5dlNnT0FtRUwvMzIyMlBD?=
 =?utf-8?B?M21lTmpBRkh0ZnlNcllnSnZvNEJBQXdvSytEcFlDUnFUWDhHMnZqcFd0YlhJ?=
 =?utf-8?B?OERlODlkK25Ca1JKTlRDNWlCdHlCVm9QRWhUZXA1UmFGZEpOdUNneXNCNTRx?=
 =?utf-8?B?RDV2ZjNZZENBeC9xb3N5d0s0YnlOMGM0RlJnZHJBSmhVUG9ab1FiNHlINnNO?=
 =?utf-8?B?cjJaY0lxcjhDTFlLdFRaN0tTeFBYaVhuMzhmVnFCVE5ReHJnYlc1REFZdGtH?=
 =?utf-8?B?enNUM1VaR1RyUVlxR0xXWWp1cmZLZ21hdHZtcmJYc1lSYzBkVEEzYmRXVWkr?=
 =?utf-8?B?cUsvb2V1MVFMWW5WWWVrV0kzOGNrWUdLYklqMm1Ddm9RbFpTOWlFcWZZMlpQ?=
 =?utf-8?B?cW5zai8wbjVPZXBqVlBOcnhEWDlvUEFjZHhqRTc2ZVlNZmtyM2RxRnlqOWpQ?=
 =?utf-8?B?WkdWbkdjY1JsRkY4NlpaQTg2dnRxdHpWb1RhbFVCMW1FZ05vb3g5ZTBVTUlk?=
 =?utf-8?B?TnFsdURUM1g4dWtoeDRNVmF3bDNRMmJ0S3lmdUNQVGxUVGlieVNMcXhSSWRM?=
 =?utf-8?B?a2cydkhpUFNVYU5ZYzQxOCtMcXFlZnY2aEtpU01BZ0FyQkNaVGE5U2dNNDRC?=
 =?utf-8?B?Zkh0U2dseUltTEE3N3o4a1JxWlRTWGdkRklOTndXUmRGeTVnNGRxUnJtTysx?=
 =?utf-8?B?U2d6QW8rYVlJSUNLYzFQbUV4azZTaTIzVmVlYkhOOHFxdU5jV0srby9tbG9y?=
 =?utf-8?B?NW9Pb1F2NFZIZEFBYlJ6bk9xRHEzOFJqQ29BME40N0t5Mkg1dVNIYnhCSkkw?=
 =?utf-8?B?RkVkOHU0TkYrZWZ0WWFZTmp0eERYYXdyMGNUSkxiaWhZYkFUTFFibnIwc3E3?=
 =?utf-8?B?L0VMaWNZOXV1Q2RqbFlUVUYzZFdCdnBwc2dSWUJRMXVzSFBhU01NeWptMS9S?=
 =?utf-8?B?c0xoRWttOUZxUC9xdHJJYlV0Mnc3Z3U1TG41K1BzeURBei96Q2M2OENVNW9p?=
 =?utf-8?B?ZlBsdko5VjVnZzEyblhNNlEyME9MVjM4QXhTQmxPRlVYYXdrRFNtYkFQa05x?=
 =?utf-8?B?eVJsa1N2WG8valg3MFJaTVc2ZDdCMjZCNVRUU0FZdXA1ald4c3JGWlNSMmRJ?=
 =?utf-8?B?TGJRTHV1UXdKNDZjd0ovN3NVbldWa1F2SFlnSTBGMUNxNGluZ1ZNUERYNldv?=
 =?utf-8?B?UzVUZTlTT05rcTlSeVlCV0kwam1xTkp3Yk14NnA3UzNMbkFsNTJlTWRwZ1Y2?=
 =?utf-8?B?YVFUK2p6MXp2THhsMWgwTHg1dy9PT1pVaGJVcVdMeVFSQ3hpdVNUZE1CQWMy?=
 =?utf-8?B?Nm9paVVWMmtSd2tNUVdTUHF0aWg2QUI0cVpGSlo4bkJ0UTRPbkJud1Vta2FZ?=
 =?utf-8?B?cDJEQWlVaU4yelJJRkVFenlUNmF1cUtaUGpuSnk4L0NJYVR1K0VlemVOcHlu?=
 =?utf-8?B?aVEycGQ4Y08wL3Q4VGE5blg1Z1VIUmY4OWxpbFBVb3RucmpucG5Pb3ZYRUtZ?=
 =?utf-8?B?RlJNWnhjQjV0YjBlaHBzWWJhUEJjOVhleWtDc0JxSHgzR1JjM0NZVUhGOUYv?=
 =?utf-8?B?MHhGQlJDZFluaFRtekVGZmZYcERNbERhU0toN1g0N1dqQ0RBNUF3VmtjNlov?=
 =?utf-8?B?L1pjSG9SeUk1TmtJTVlNRkRtdktwbkhSK0NXN0tTUE50WDdVWEpBTmVVeEV4?=
 =?utf-8?B?R0FGdklueGlvNm5PNWZSWmova05Hd3IwQ0tXTkhVclZkTXoxTi9ZdW9HWnBw?=
 =?utf-8?B?c3Z0TUNUNTVnOE1FN0FqTzFhQTIyRUFGdXBBeTNOU1hBUTVnLzdsZHY3d09a?=
 =?utf-8?B?NzVxUStnYk1aV3hWcHU1OHdMVTF1cTVSdXV6TWNaZEp1RnM1YnkyU0kyc0ly?=
 =?utf-8?B?V3NrSnZERWtycFNjR2FCSXF4Zkd3d2ZIbUw1RUUybmJFQ2ZWVHpuVlVvN3Ba?=
 =?utf-8?B?dEFpK2wxOFNmR2dWODIyNDRNcnBYTVJPanVMRUgyc295aytBelFERlpJbEU4?=
 =?utf-8?B?bWVWTnNCWVlWZmE5UXExZnRJTXpTenVZUXZPUWowZmdRd1hYakNyRlBDMTZE?=
 =?utf-8?B?TzBkVGZEVU1HQjZOMWhxOUNSckxVK2VaeHFiTElxc0h4Mld6RE14MGF4MXVx?=
 =?utf-8?Q?UyNo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YlMxVWM2NDNnaFNZTlVOYnRVSXRaeUhNOFVFZEIrRzBjMTI3cCtIa1Uzb0o5?=
 =?utf-8?B?QVhFODFDamczUnJyeEtITDArZDU4ZGtwUVVJN05EN1ZUYUZvVGNhVDVaRHpH?=
 =?utf-8?B?Rjg3MWxLYjc5ZGRpdE5ZLzZnSHNYa2xFN3JqRmdPTzFSWHVFbXBLYVdGclBX?=
 =?utf-8?B?VWpqSmNkMkt1a2NyWG44bERkNXNXa0ZmU1c5R2hOU3NmcnRoZFNaVFpZeFk5?=
 =?utf-8?B?MzRaa0xnZTVqUUxQS1d5UmxSNjJnbVRlZHBNbFUwc20xNXV1aHp5alRidWcv?=
 =?utf-8?B?N202dlFGSGVUSFp3cDJWcjhQc0JJcjYyVkR2YTJNcUVwVnJidW9pQWg5M0lX?=
 =?utf-8?B?cmJXZmtsaEJZbFR4NnRqbzZWUXptWHhodUVhRit6dWZDWHd1KzBmMnVpNW1D?=
 =?utf-8?B?eWV5UXhQVXBMY2djbldIZ0hycXBXMXp4Zm53Z3pIdHBWcXZZeWxnZlk4Y3Ra?=
 =?utf-8?B?MmJycG5GOEF4Q0pmaVJVMiszd1l1WStJeC9VVFVVMTN4UHdHYmlKYitNRERL?=
 =?utf-8?B?bTJ1V3IwbWdFOWpQOEdaSWVJRDZDeWxXeTRVRUNKNEZ4bFlreGRZSCsxcVhn?=
 =?utf-8?B?SGMxTFV1OUdlczFFZS8zZHJ2ZHJGVEJCQkxHTEgzZW1sVHc0c0NFcW9qc3Fr?=
 =?utf-8?B?bWdZN1dDWVppY0MrSG9uZlZmWkY1ZzA2QkM4M2daVmpxMFl3cDFWdVM4NzJv?=
 =?utf-8?B?bHFzWEF0UHR1VkpyWmxIdStvcHRwYXhwcGtkUWJVZWRqOXIyMHluNUR2b1Jw?=
 =?utf-8?B?WlU1b1hoUDRORHB3VzZaQXlmM3ViZWRkSjI1c2dLZk9GSnE5amZmTG1ZOU5N?=
 =?utf-8?B?b1ptMlJBNG9UY3R6Z05hdC9qMm1NOWhoWTBTVHJXWFNaSmRsRDNMdkNsZUNE?=
 =?utf-8?B?K0JWRDZtSndOcytGVXI4Kzhzb2FlNEI1a09NcXZUVWNOZi9vQ1llNzBmdENm?=
 =?utf-8?B?T2R4STU1Q1lSczNZSFo2T0c4QkY5UnBKVmUzaE02Zk1EU1BrWDk2bXl6ZjlF?=
 =?utf-8?B?TmtMbllFYS9mb3JZamZRQUV2aEI3UVRBZFV4a012QURKcjZmWnhGREJ4NUk5?=
 =?utf-8?B?bldLZExLMkE1YzlvcnQwaFRKT1NWenpId3dXL0RLYVZ6SXFPWHVJZDh2Wi81?=
 =?utf-8?B?bEY2aTBTbGkzaVN3NEEvb2FzcDBLUnF6WHBrdlFHNWsrdDdhVE1GNEtTVjV3?=
 =?utf-8?B?Q3JGZXRaR1lsaGF6MmZLcG02UFBaQWUycTVpUGc3eVRwQjFVR3JLUVVOTCtq?=
 =?utf-8?B?bGdyU3MwZDFTbkhJTWZKbnNiMDdyZi9MTXhDeXh3bGh0RUtrV1ZncC84M2FU?=
 =?utf-8?B?ZHJqZFNOU1BCQVBOY3Axbmg4QitMRittRGhxWXdQbW05cmp2MnkzdEZXQVlG?=
 =?utf-8?B?dUxMd3BsSU9EUjJ1cHdLaHpjdUlXMUZ2ak9tMFdVNkRWVm0yOFhKS3UwM25z?=
 =?utf-8?B?eHM1a2NTR1ZKSUxsYXByNHBMQXFuV0wyelVyTTJaamt5U1ZJMGF2MmtmVUE0?=
 =?utf-8?B?eS9ERlhZNFpiZ2diRkEreC9sNmcvbXRITGd6VVJ5dmY1S25KM2xsMHZTSEJM?=
 =?utf-8?B?QWJRZlF0enMyRXFZMERkQ2NqcEZld1dSWFZsUTF6cEFnSVRmTnZrVmVPc2Nh?=
 =?utf-8?B?ZVJNU2tLVlFVVEJvd0loemcvcnpoNnlBL3UxL1Q1Wk1SekczVmdEMnVkYVRl?=
 =?utf-8?B?YTdHZCtEeCt4UHoxN2R2eURUSEhJQVVHMWlJSFlJbXplODUycU5vWlh1L0Nr?=
 =?utf-8?B?RzZQOUxnUENVOXFOYTcrbThYalNQajl4ZVRydkcrZFNteDZVRThTZG5mR2dh?=
 =?utf-8?B?OGZ5MkxpWURKWEd1bmlqRTVZOWVmUzgvSFc0M3pxSys2dGdrNEtPa0xjL0Q4?=
 =?utf-8?B?MnhONXh5Z3RwVHBGSkpkSzladVc2dXJISDJlUm5JSVJrUjNKeEsyd3IwVnAv?=
 =?utf-8?B?c1JzOE1GR2VRa09vNnhtOEN6allXd3VsdEYvWHBGSmxMUjczUm1PTVNCZlUy?=
 =?utf-8?B?eXNGRGN0VjAvSVRzYVhUNTdGODY3M2FPWlJVMzRUcWw4Vm14U2MrOHZzVUhs?=
 =?utf-8?B?NDdDZ0lWbjZyVk1KUlA2YXpnbzBiZ3YrNUhmL29FNFdCcEswdjRlUVlyQVNw?=
 =?utf-8?B?OG4zbjU4RHZuWjByVDZaeFJoWFpQbjBiYVJiMXFCZWtTbWR2RlNkbGZDOXBK?=
 =?utf-8?B?cnROZ0NoMGlxdC96SHE5TVNYZDdiTW1ieFlxNjk0cnUyYW9NUTFmL1R5QlA3?=
 =?utf-8?B?YkE2cmdSY2g3SStRS2s3WkdWM2MwcDJMeUpLeGRsaForZGFWWHpuVXBvRys2?=
 =?utf-8?B?SnUzc3VESGJ6OVRCSlZQZS9FeEtBem9heW1CeDkrV1FEZERFdnNQUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 498ff4b3-c4d1-4f01-164d-08de7092c173
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 15:14:34.6950
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ORiGCS9j+yZIRqLmqaqb7zAt1+q/qBZCuHBcmTO2sLP6BrBTZ4wahEV/y/uypM1N7qWwcOmxwFrI0iq8g1NqbP10s5ClZ2YD1VYqKm6Ww74=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR03MB7669

On 16/05/2023 8:41 am, Jan Beulich wrote:
> Emulation related functions are involved in HVM handling only

I think this wants clarifying a little.  *These* emulation functions are
only used by HVM.

pv/ro-page-fault.c does have emulation for PV guests, but uses
paging_{write,cmpxchg}_guest_entry() to enter into the shadow code.

> , and in
> some cases they even invoke such checks after having already done things
> which are valid for HVM domains only. OOS active also implies HVM. In
> sh_remove_all_mappings() one of the two checks is redundant with an
> earlier paging_mode_external() one (the other, however, needs to stay).
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Preferably with the commit message tweaked, Acked-by: Andrew Cooper
<andrew.cooper3@citrix.com>



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 15:16:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 15:16:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237263.1539638 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtSEk-0005wG-GJ; Fri, 20 Feb 2026 15:16:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237263.1539638; Fri, 20 Feb 2026 15:16: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 1vtSEk-0005w9-Dh; Fri, 20 Feb 2026 15:16:10 +0000
Received: by outflank-mailman (input) for mailman id 1237263;
 Fri, 20 Feb 2026 15:16: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtSEi-0005tw-H9
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 15:16:08 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 134cf66f-0e6f-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 16:16:06 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by BLAPR03MB5603.namprd03.prod.outlook.com (2603:10b6:208:29b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.15; Fri, 20 Feb
 2026 15:16:01 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 15:16: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: 134cf66f-0e6f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=KQKEjY+Il9z3jsjfQHToHRnphTNeZV0OOqIpmvmBkfIbVibkZo3aJSWhLfjsBgtXtGCRjoSU4gBIF9cWdCQsr0MIYtjGoPTVJVmBgkQu+g5ZJQh6tustQDRPzPM6ndmasdYJdyCDgy2i6CJ2M4xaIQd3dhJlEpXpQBveQ+5jzZV1vnCs6YWeW05rKPufwlS9ertwtLBmOgEUjL0EtoVC2/HcIH+gdGFW+DkptBx+TkJWoht19XDAF+iQveafLZeixiX/PYlfSk+xoUrnUMgB40Rfok3KvYgYoAL3MRJcSYire401YXf8tfhCIZCaBhZIgIubBKQB8aHa9KQDY5HeOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OnAMwIXEOQS5x1d/x0X5GM1M9e9QKzI6y6Zq9KNIbq4=;
 b=v0XqWJMh6rfMRLQgetI7AfQl65ul04PDysER6ySSHN9ONpTC6K7knCA0s7O/7demQnHHMJkWjkiVMAS82urdWVo6FDizxbCe8PvD5f8rOubHrSWYmaiWMbaenwlJDWRenrChlemQP61CosXeOvFr/R1L4KdBXpN4mIQ1i86j69FLEZ5jHa3TgkDZq8iVLKwJzEIu+krTRtj50HzFfQDdI/skpD4Oh9hc9WbqzWF2ZaKItIZwmcQf0kDGeVheQwgdBm/hxx+gneN2eAMnGBgQGmGgEhV5uNcCCEkM6ZjukJ1wFnIjuZVRmyV0CfFlRemmZzEFYilQqgcKT+w9wrHywQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OnAMwIXEOQS5x1d/x0X5GM1M9e9QKzI6y6Zq9KNIbq4=;
 b=vrJXkZ1NfCyOGDlR+6evkca56i9p/vnjWVY7jeNy+kBwfLBbGx1cYS9MAR/jQH/sI3d6lPMkSxLhlK/evOLTvkmAtES08x6x6et4C9I22xTep8Pi6R+nsusTHBacnUpNGuDwr/CpRi89iBdARX2p4yPgwPZECqN14Mfg8Lm+KPg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <bbf12b95-3d39-4624-98b2-60876bc42fe3@citrix.com>
Date: Fri, 20 Feb 2026 15:15:58 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 George Dunlap <george.dunlap@citrix.com>, Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 10/12] x86/shadow: make monitor table create/destroy
 more consistent
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <dee5be5d-a997-cd80-aa67-ca2f5c68bada@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <dee5be5d-a997-cd80-aa67-ca2f5c68bada@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P302CA0005.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:2c2::13) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|BLAPR03MB5603:EE_
X-MS-Office365-Filtering-Correlation-Id: ed8ee1ec-6536-41ce-658a-08de7092f4ff
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?WUYrZnJXTllmeGtYU2VXRTczTnJDdmZ0RUI2bHlaZ3NOczBSZjhPeDNMdmNB?=
 =?utf-8?B?Tm1TVk9GT1Fiajl6OGNxV0pZcUk5RnJxNkJtUU9oY2g3QWdpdlVpNzIxNGE2?=
 =?utf-8?B?STlKM2VEbGNvSEtyYWdZOWpIK0pFeEtkc3hLZ2hIYStScDAwd1N5elVmL0J0?=
 =?utf-8?B?YTBna2lmaTV3aGZvVmNwcWZJSVBWTEt4dDEzTEs5T0RlQUwyMlBLdkR3NDJN?=
 =?utf-8?B?MkVPRG9tOHVzVDZ6dVAxeDhtbXBGS29ZTDJxK25BTEtuRFl0WTVvcFNxUUwv?=
 =?utf-8?B?Q2x3QUVScWt3dmthdzZac2lpdmd0eWxROFdQNzdJN3dMOEpZQ29rU2NBZjZY?=
 =?utf-8?B?UWo5bTBHeW5YRXBuQXhIUnc3czBXcGphK1hid1dCTzlSRThCcWpvaGI1UStl?=
 =?utf-8?B?d0JkRXdhSW1ILy9oRkdyU1hBTGNqTWJHUVV4TkQ5YjhqblVWVEU1NUdGNXpK?=
 =?utf-8?B?ckF0eFpZU0lKRnU5eDlJV3d5YjVyaU84blpVQks4Z1ZLR3JXWVJ0Y1pNbVI1?=
 =?utf-8?B?Y3VaZUc4c0NxVm9HTFZFTyt6TXdRTVFlbHVGdGlZdzVJYkJqMkZZQWFwRUYz?=
 =?utf-8?B?RkhKaTQzU1UwbmZmUGFvNzZmZllYVlBtYXNKVVBiTUNIdzJYa1RSeHpDWFFG?=
 =?utf-8?B?NGNsdUFBbnY0SS9BMjFQbE9tMmJXSHhjQk9zMHVJNlRYTGNmOTdKdjZCcEFz?=
 =?utf-8?B?ZnBUcmNPVGZDWnZ2MjFiNDh5UGs5YWtyWGZPejhua3Q1c2svMnlVUzloTGJY?=
 =?utf-8?B?UGd6Q1MxemxqSUpKUDU5Mk1aWG56UlpkRkJiUDhKeUhhczF3akE0R1dDdlFr?=
 =?utf-8?B?cGhpcnVncnhYcUZ3RmdOanNXQU5YRFRoS1JySW1HZVFJRkI1T1RDVFB3NHF0?=
 =?utf-8?B?OSt0Z3JLZkd0UlBad0dMWDJKLzZoSXIydDFXZ0JSWm1zWUw1YVB3QXZlNUpx?=
 =?utf-8?B?Z3p1SU9CVDFDYTdteWROUUo0MW9hSDZ5OEE2cXViVmJyci84WXBMUFVhMFly?=
 =?utf-8?B?emZkQUNDZUFNUkdaNjVKZTRhYVVKd3JWdm5QamZXRU5ZMUd5MzNiRTc3TkhG?=
 =?utf-8?B?RlF6RUdHbTRTb09KVTg5ekZES1FuM2RITCtpa0JTNEx4QkR3OEFQYnlqdGtL?=
 =?utf-8?B?bDhnbS9aeDRXckQrNHhiOFB5WjU1amZvczZ3MlVZSG1yQzhiekJvTVFxZXc2?=
 =?utf-8?B?TENLdzR5aU9hemQ3OTNYRk5uWDVCajhvMHMyK0g3L1ZkblRrWHdQZEhHRXcv?=
 =?utf-8?B?RWZ2ZG9WTnpiQ1hVUjZLZmdsV24rWWdkKzFZOFNSTEFSOXpJSGYybk11RjNH?=
 =?utf-8?B?N3RSR3VmT3d1NWFBNUp1djY0UksvQ1NyNDZMY3FTakQ1MVVFM3BJODI3aTNK?=
 =?utf-8?B?aWRyT1BJdHpCZzhMQ1BRcDNpcmpLTWtqZFV2VmRRcmpKTjhraWx5b2xqZjJK?=
 =?utf-8?B?T2ZBZmYzR04yNHJWWFF6VWh0dzJVZnYrdTFUTU9PRFlSN3dpUGR2cmlZVGpI?=
 =?utf-8?B?bWZYSVVUc0RCdmxKZHcvaDJHR3lMZ0NwZ0c2amw0a3R3cmFPZkZsYnExb1k5?=
 =?utf-8?B?L1VqRXNVeFZQSXJ3UldsTDlJME9tdFRmQ3d1L0s5NERGa3dQTmZvOGFSQ0VV?=
 =?utf-8?B?NFVjd2lLZlNQOXZTZXM0NGpkVDNpQkwyMXRXUDJvanVsNERNelNQUlk4MHRB?=
 =?utf-8?B?UXhlVmJGV3hEOGV4REM0V3dHUWxvZ3FrUGlpRllwQUxRc3RXMHpIWVl0cjBx?=
 =?utf-8?B?c2gvTWNLZXJaU3piVkMvdWJjWUVWZUIyaE9qemtCdmhzRjRuaGJUQnZhZTlJ?=
 =?utf-8?B?ODVEeXgrbkt2ZXhFK3oyOUdmVzl0VmY3OGsxbTIwQzZXR3pvMVFza1RzRDcr?=
 =?utf-8?B?dk9UWFk1ZERzQWowZTk1eEdLZG9rR3ZVM2JNNXBlRXpoMWJ0QWpUOUNIbGlG?=
 =?utf-8?B?ejVyOWYxRlF2cHM5aGlwbnNGTzB0WnJQRzdNeTVSUEhlSGxNT0JwbWQyNG5v?=
 =?utf-8?B?SjIzTi9YTnNxS0pzcDM0YUZaNVRWYVQ4b1pyNmdaY2U1Uk5KR1owV0d6akJT?=
 =?utf-8?B?aXBQSVRNbDk2aDdFOGxkQWswYmU5V0k0cCtiZGZhdktvM3B4UVdZblFycTA5?=
 =?utf-8?Q?wDBE=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?S3NFVmg1bWd1Y1o1ZmRrS3djdUc3bkNVaG55SDNoVkxxKzZVWWVPS1c1ak4y?=
 =?utf-8?B?RmhXVkdKWFczRGpnRjVVY0RuVDBzcWRlbThTTkdnYU90dnBaU2s4ZjNteTRW?=
 =?utf-8?B?REJOZHdldGRaRldXVndnR1YrU2JBbUEyWitrZjJtd1Q4VXBURUtmclk1UzJ5?=
 =?utf-8?B?a21oekZHU1ZkajBEak1rVWN1bzlyUlVRNGxuazlyblpXS0N4dnVacUNEdFJZ?=
 =?utf-8?B?QXlZUEMzd0JEWDgvaVh4NnBPT1I1dkpzSmdZTWtpc1NzNExQY3ZqUHp2dnBW?=
 =?utf-8?B?VVZMdmtUeGsvcGJSaUErNGNBTGN6RFVqZ0ZJVm13dkJvWURPR0xhTi9xaEl0?=
 =?utf-8?B?N2ZFVWpNcmp4eTNMU3VHdUlPWXVSUi8xSXdzSnNHckNEK2FEVUtPeTBWanVx?=
 =?utf-8?B?WmIydkxuRXU2eWxMZ2F1WU5EbmJPa3RwYkJtNGZCN2ZFMVE2NjAzd1lTeFRN?=
 =?utf-8?B?N01VcllCMFJXTm9La1l0T0ZRVHMvNisvUGVzUkxUL3pTbzhzMGV1amZXaW1K?=
 =?utf-8?B?MnBpallwb1V1Smg5ei9BOW96VEl3MDNyU0p2aThPbGFkdmZnSnJjWTJYUEpU?=
 =?utf-8?B?QXlCT2RLSm5WZDdhMHBSZXpwMkdCbkVMSkJ6UUFreDQybnBZTGpBbTFYNmV4?=
 =?utf-8?B?YkV4bjNYVEwzSUN1aTZJQmttbXlZaitDR0cvNkpUcFZ1emdISDJXMmFIa3Bl?=
 =?utf-8?B?WmNFZkh6M0VZZmRoakNVQVRBWTY5Yll1YTRiVHFxdnpwNGtsYXRjM2RVWlBJ?=
 =?utf-8?B?SzdwdlJPemg5WXNQMEtnY0JObkpUVERldVhSZ2NXVTNEVHdJNW9qZXczc3Rt?=
 =?utf-8?B?RndqTXFnUlYwc1piN2VoT1lrb0JUOEpjR093ckdrTkVhVFp4UzBaa0grRTJG?=
 =?utf-8?B?UmhtcExrM2YyVWg0MzVaSkNXMlc5ZzBSM0NCUDk2VkdsUXVOTkVJWnNtaEpX?=
 =?utf-8?B?OGdiTVlSNW5DS01paDVONk5MZG4xYjhqNUsycFhBNm5ENVJhUG5tblJvZEtQ?=
 =?utf-8?B?SE5pWUJYbThvdVkwdWNldDRrZDdOWW04aFNBZCtpaTd0aWwrSitvbG85VVlp?=
 =?utf-8?B?MUovMjhlL3h3SFhLUlEyS0NKUmFCOEsrZEdhdmNCVGJjUXJOU2hwWU5xeUg0?=
 =?utf-8?B?U1pzUDE5S2N6UDY1YlVYanpwYkdBS0ErMEdYeDd3c3RkUzNaNFBKeDlxYTBL?=
 =?utf-8?B?c3YxQnNvMnRTaGgrcDZRN1ZKY3AwVWNnVlp6bkRPQ2VhQWhjMlhsWW5VRjR2?=
 =?utf-8?B?Qms4UWVyeENkN2kzSHlnRk1VQVBHakRpMWFDZkgxTXcwbUNSTkFFWG83QkZ2?=
 =?utf-8?B?VllRWVVqTnkrN1hDa0lHVXZWOXYyaCtTbWpodXNIOEtQdG40YlNCMzAwb1Mv?=
 =?utf-8?B?MGNnOHJoSFVEempPK1h1MGlNVWVNSnVHRjZ3MUJmQ0lrd2ttWW5mRzZqOVJy?=
 =?utf-8?B?aVpDdHdyc05lYWw2cHNGelVCRTU0S3FvaUorSWEySFJPRGw3M1JLVE9nQjlw?=
 =?utf-8?B?WkNHQU85VTZOZUIyMXdKQUxaY1E3M2VMZXRRaTFxSFY5YzFGU0d5VkhZeW9q?=
 =?utf-8?B?T1piaWlpU2N4c080MjRTb256RzdqemRneWUvN3picmNRclFjTk9Uc2cxcWZ6?=
 =?utf-8?B?VzhxYjNvM3MrS3NWZFdGekhqUXlhdmpLWkZsUnBCSStrR1hLY3lHMk1PR3Zp?=
 =?utf-8?B?TkVPNEpHMVkrNTVLS2JVYUgza0E1ZmRFUGFHUmdnN2pVcmpBUGtNcGdvdk9D?=
 =?utf-8?B?eVVxRFhjeSt1Q2YyZlFtY3g1VGtMa1E1N0JSYllXVTNLQ0hyci84K0pPdTNV?=
 =?utf-8?B?R1N2b3ZpNnhPZDg5QUlXSFVQNEphVXhoa3BKWVVFMGZ0bzFoY01RQTZKQ2VZ?=
 =?utf-8?B?MTd3aU9oeFhIUGx1ZFhMNFJMWFByTVQ4eEZySUlLK2F0VVR4Q2VBVHltNW52?=
 =?utf-8?B?OVBUYTJoVlZhRk12ZVBPdDUxdTNiK0loVU9VeU1NM2l3UWc1VUJ1aml1Y1Uz?=
 =?utf-8?B?R1J2VFcwQVkvUkhVWXRicm1zei9oRTNpSEZsMmptMGJ6V3M1R0FkQkM2UnlC?=
 =?utf-8?B?QnVhTEk0dGhaOEQ2ZzhKNWIyYU11azZXK3VldEhlNy9tSFlZaTVHTUQzWEpi?=
 =?utf-8?B?ei9iS0hqZWlGemxEWmFJY3d3MW9FSVB2WGNCMWZLajVTMU1lQVo5MTUyYTJW?=
 =?utf-8?B?dndDWEZDZkE5RW1IWEtOc3cyZzNUMnlqR3ZvcFhLS2dxbFQ4b1gxTURyajNn?=
 =?utf-8?B?Z3AzYy9XU3ZxeHRIak44dUk1QzdLK0tuZjNZeXlCbWJWUGMzOXNEL0hmZ2pW?=
 =?utf-8?B?TnU4azBwQnBoY05BUUVpNGVJMVozL2s4RDZVMkl1OWpNM3VLLy9TalBDbjJB?=
 =?utf-8?Q?kn0tQ092SFtzeIsA=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ed8ee1ec-6536-41ce-658a-08de7092f4ff
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 15:16:01.1730
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: GnNEXpygelNWJPnATQpy8coAVru1HmTla7/ZmZEc03jp5i7dzaBtEoj2O4wf1xzHweAoxg6w2Fz+p8KB4pDew6StMV+Ix+jkeagJEHB0Hz0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5603

On 16/05/2023 8:41 am, Jan Beulich wrote:
> While benign at present, it is still a little fragile to operate on a
> wrong "old_mode" value in sh_update_paging_modes(). This can happen when
> no monitor table was present initially - we'd create one for the new
> mode without updating old_mode. Correct this in two ways, each of which
> would be sufficient on its own: Once by adding "else" to the second of
> the involved if()s in the function, and then by setting the correct
> initial mode for HVM domains in shadow_vcpu_init().
>
> Further use the same predicate (paging_mode_external()) consistently
> when dealing with shadow mode init/update/cleanup, rather than a mix of
> is_hvm_vcpu() (init), is_hvm_domain() (update), and
> paging_mode_external() (cleanup).
>
> Finally drop a redundant is_hvm_domain() from inside the bigger if()
> (which is being converted to paging_mode_external()) in
> sh_update_paging_modes().
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 15:17:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 15:17:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237270.1539649 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtSFh-0006QR-PM; Fri, 20 Feb 2026 15:17:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237270.1539649; Fri, 20 Feb 2026 15: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 1vtSFh-0006QK-MZ; Fri, 20 Feb 2026 15:17:09 +0000
Received: by outflank-mailman (input) for mailman id 1237270;
 Fri, 20 Feb 2026 15:17: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtSFg-0005tw-GN
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 15:17:08 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 350e31ae-0e6f-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 16:17:03 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by BLAPR03MB5603.namprd03.prod.outlook.com (2603:10b6:208:29b::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.15; Fri, 20 Feb
 2026 15:16:57 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 15:16: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: 350e31ae-0e6f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hf8039kKbEzFaS3J7G8htUbR6ynUT+5vwCvPb7NAEe0fshLVtO89JBF+K6njyZePeMAv81QTkNtN2S9fSrdeK3l/gOVnzKB/38pxfKVLVBGqTh0am+70ImgVQyeXSx5a2Tv6zmB0VFnJmAGu0Tn2bKvlhh7/ZsEyeYJqSEyUxiInaA7nX4K0VEjuQDUy1BfM/MPgg2pszFobKWJOyI0uBz+PP5TmbSQOzc3LGYO7li8oHc6tR5WXhFaFKVdPc3XYdgkEHrKNGlvY1b76jRhao8mn9BL0+psGpxfmYNxxF1fckyUSSUKb7HBrbzbWcMV8Ao0aWWZ0EzGfs2aIRF8s1A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=44BdH1H5ikua9BYyOTRKPJoj2lHpZG9Ti1VmyFOxR8U=;
 b=oQir2DOIddT/G1OVf6taUO2rIZ5drc/pYAute6BqFYE86wMZF//EpjAjrCpJLEE9gGLj92ZAu9YXLz9l81A9TrEP55aDV0VmdbRcUgr2Qp8RLNWDGtOXqa+/h7cRCIEOtodhWbHoZmuCXy2mHd2UgUOBSwyB/lJ/FTzx2USD5qMQ81aaj6mEIKHW694WDKrG+nQcU4+ObH60oeJttgYb08gB5rGp1/fb0O3JmP1i+Wgu7tKZAfMG5Svg4nNJoFhxpZeGk3pioX8/O3X/AN5E6sBnXluaYhxYFkBuKB/70o4h2/rOB5WnEYD050pjef3KIhhA9CcjOJnnr48E7gdIiA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=44BdH1H5ikua9BYyOTRKPJoj2lHpZG9Ti1VmyFOxR8U=;
 b=GLxtjjQMccqWEcBaK2p+o6t9Occu2ZqFQwfZjDHzIQpzjs+t2wlKENF5yrPt3KF/EsnXYm84FtPqmF6OCY3Oj6rPP5IzG9keHiRKdRr1XuzIxaCN4dnFJWx2Kw8kapOckfVP4tuRa2zr0uUxILnOqVuWYwf/B5SiQv0h+uqVhLc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d7ba3286-9a29-4263-95a8-8859e8f2c599@citrix.com>
Date: Fri, 20 Feb 2026 15:16:54 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Wei Liu <wl@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Tim Deegan <tim@xen.org>
Subject: Re: [PATCH v3 12/12] x86/shadow: adjust monitor table prealloc amount
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <ca8abb5a-8a47-247d-cf56-e730dc76ab20@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <ca8abb5a-8a47-247d-cf56-e730dc76ab20@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LNXP123CA0008.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:d2::20) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|BLAPR03MB5603:EE_
X-MS-Office365-Filtering-Correlation-Id: c581a3a3-258b-4115-dd2e-08de7093168d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eUdIaFR3WE9RQW1kT3grTDZsMEJ3OWFOWGwzTGY2YUJTWFk0cXFOank3NG16?=
 =?utf-8?B?NzJyVWZndVAveFBYRlNWbUR6M3ZmTnJDNXBFZGxwQVpxdU9UV2czS2hMQ1U4?=
 =?utf-8?B?ekRQNkN4K0hXMkh2dVo5dkhNZ1ZpM3lOVVg4RFhlbWZRR1hFWjBWRHVNWnVL?=
 =?utf-8?B?WkRwcHNRWGN2Q1A4SG9taW53cWY1MkZ4cWY1bEZFV1MxNisxZzJiQTNRbDUv?=
 =?utf-8?B?bmNuV0lhSC9YbDBtSG5va05aZ25GcTNxVnFuZ2Z2RWptN3VZNTJuenF3MmNw?=
 =?utf-8?B?MUhERUVPeS9wek1kMUpRUGZ2WHBNV3MzL2pocXVCMjZwQlluelkxZWlMWVRk?=
 =?utf-8?B?emkzUlZYM2ZacldOT2dDVndRaVFTRkRGbGdmQ25NT0QvdEVyQmwraGNsejQ2?=
 =?utf-8?B?QlNldTBZZXlBZlVtTE43c3Q2S0kwZjNwMEl1RzFlNTJEMUlLS1NmQXhPZTd0?=
 =?utf-8?B?V2VSUllZeGxWeExwckQ0ZnZOTWl0RXZIdnAvQnVVL0VsNStnWVRuRVdOcUJP?=
 =?utf-8?B?QjJ3NmJrdDM3cGhjSE83a1huamRLVXNjYUtJNWV5YlpFRTRwVHd5LzhYUFhw?=
 =?utf-8?B?dzJVcHRMTFJEU2tyZCtRL2Z1aFB4NGpRbkdJVmk5SkMzbEpEM3pSRWMzYWph?=
 =?utf-8?B?YXhuSGNOWnF5YnR3TzJDR2ZNZ01aeXBBUjlIM3RUWUZZdnp2cmVkVDA2Zy9u?=
 =?utf-8?B?dHAxWXhXQ3ZVU1crWTdyVGVqalYyVlhyM0swdDdNd2RmL2I4cjF4a0JLeDZj?=
 =?utf-8?B?bXVUVGlUZnpDSE1TY0lFNjVTNlpNZXMrd1YwZm1kSzdHSXZuK1VSYkdNNlN4?=
 =?utf-8?B?MXB4Vk9mK1dsRWhocW5lRy82clo2a3Y5bXYrTVBLdTV1WDE0MURCNUc3Y1N6?=
 =?utf-8?B?aWg5Tm94b3NJRm4yR1lXWUZBZTRIM1hBT2dWbTdGWVV3eDFqQ0JOcnZ1VlR0?=
 =?utf-8?B?SEY1dzVwcXNPallLb3dDcm5QYmVYR3gxWFQwUWo0MUVKaGlzSGp2SkxQMFlU?=
 =?utf-8?B?M2JXT056L0piT3JkR3dpWmZSbnpuVzFhMlExdEd3dDF5VUF2WWhLM1dFNU0z?=
 =?utf-8?B?OXNOMWpiQzFqVFk4eTRjMWQ0cGRRMEdYMlZLYmd3NTRwRWdDem5BUWdrMTla?=
 =?utf-8?B?dkRmeGs5dHRIZ3dBa1c2NWpUUnk0emQwY1JFblZiZ0lkRDRRdVhlMkwybEhu?=
 =?utf-8?B?Q3lPN2ZxQ2RvZzR4TUtVR2tseVA5RUNzM0dGSFYvZUdFMEQ4R0IxRExjYkJ1?=
 =?utf-8?B?bDdVRHZERHRjYjAyMnJIVDlRVWFtMXJlTm00ODhCQVVVVFJOd2ViMC9LelYv?=
 =?utf-8?B?RkYvc2ZSeTlvNnNyV1VwOVJjeC81R0FmMTlPYTg0UURqWSt4QzVhcTlob0pO?=
 =?utf-8?B?YVp1ZlBBMFJyTU5jMVRhdXc1MWhQQTJFblFxeW1BY3FNdTIzWmRiTllabncr?=
 =?utf-8?B?V3JQSFhtSnFod0J2d0JVOC9ONUVjTXhBVVk4L3BmZllxQmdMUWtmdEpOVWZI?=
 =?utf-8?B?T1pQVG5OVmlKbnVMZnYxQjEyMm9QS3pjL1FzVFhkTDAwYzc0cTA5VktCcTFI?=
 =?utf-8?B?NnhlVnlnRmdPa1JTdEpQSW5EV0ROZG9udURtVzdIa1lBVmM3TDluY05vazM3?=
 =?utf-8?B?ZkdxVE5rMENOdmJObWZUU0F3cFl5aktIWXlGb0hGR2pxVGVwdWtVTzNHNUNw?=
 =?utf-8?B?N0pnZjBDRGZLc1FzeVJ6L3VJckx0bmdZSVZJVXd0TWxpZjUxYi92NWtvcm5C?=
 =?utf-8?B?R0dPNVRiV3NkQnVySHVQWDFhWS9PQjdNVFJ3Tmxxajd2VXpQenlZdWFONkJJ?=
 =?utf-8?B?S2JVei9mdmZDTDUyWXBGU1QxWi9pZnJjZm1aK3dQb3JHNldzZVd6ZFMvb2xU?=
 =?utf-8?B?Q05aNlorL09SeE1oWUVRMktJOVNvaDMxRTkwSXFQMTdyVUt0TkJ6MXQ1Qy9p?=
 =?utf-8?B?d3dScGtnUkZ4ajVTT25DMDdBaVVBVWNuYkhuZ2VZbTlKN0NTMnNxYmFEaHVz?=
 =?utf-8?B?WmdJZmpGVEg4SWJyZ09idFNvbHNqeGhZSHdPeE15YkFFU09IUE5zdWYza1dO?=
 =?utf-8?B?Vmo3clJSbzVKbElUT3lOMmEwOHpIVDZ5VDZObTdsR3pMYWVOWldhRnNwNlZy?=
 =?utf-8?Q?l2ks=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aG84QUpCR2ZnTmVJUjQ5OHdEVVpDWE1JemdZTzl4RzhiemJ1ZDYzT1U3TkNu?=
 =?utf-8?B?aTI2eCs3THl4Z3lXY1VpYUVLa3JuNW9wVTVwNnZ3Z2NnbkYrZXpZdGRKVGQ3?=
 =?utf-8?B?RUcxc0NvUEJPRGtrUGt3eHZWakV4WFRveFVXN0NSZTFpSWRWa2lUT2NYR1RJ?=
 =?utf-8?B?TWx6aFZaUHZrSjdoeDN4c1Z2alkvTUUvWG9yRHF6VXNmZFB5d0UzSDB0VVIz?=
 =?utf-8?B?OEhESkpOempaSWRjNmRicVV4ejQwc200ZEtTS2ErK08raElMZG8wYkNKSEI3?=
 =?utf-8?B?Ym9DenhxYUpWbk1SNWJqVCt3bGgzazJqU3YrS1lFcW5UcCtTVnBnNnBERnZD?=
 =?utf-8?B?aUJNaHN6blQzRTZMN01sODBqUG4rb3JsUFo0SnIyMk9kbkJWUlo1VG5xdFFG?=
 =?utf-8?B?UGdEbUpSd1ZBK2lvNTJkQUsrSVpzQ21CbG42aXdnWEs3RHRNS0ZXc2NORUEw?=
 =?utf-8?B?UnY0MzRJUGhlWUN6UE9UalNxcWJKWGVrZ1dCd0RQUzZTbjBpODVpV0RacTM1?=
 =?utf-8?B?alV3VEZTSkVDS3hDcDQ5WWhVYWhUQlVPQmRJcUdGR3FDZk5FS0dFRElUOXRa?=
 =?utf-8?B?Rk4zRXhmTjhPUE93eGs3VWwyaXppRWtlYWd1ZTk4SG1Pc2o3c0tZUzFWaVVx?=
 =?utf-8?B?ZE5XR2tSanNJRUdKRjI5ZE82RU8xek01OFJvZlJJaW05OTVuQXA1aHduNUMv?=
 =?utf-8?B?LzBTeEJ3NjNyb1VidHdFSHdJWUxibTNuYXhibGhIYWRYdDdUZExGZFVXbkpV?=
 =?utf-8?B?Qi9kOGRxT1hpMjJlWTRvUjRkV1ZDeWlBTDdEQnpQaWpydmd1M1hDb2tyWUVs?=
 =?utf-8?B?dUV6by81NWpLcm1DR1ZUalZsQXBWMTVTaGw2T0FxeThFV0dXelRBMENBSDVz?=
 =?utf-8?B?TFlxUmRLWHJ5UlQ1RkJSOFBkcTlaYzJYWi91bHJkTXVvMlE0Q2RrN2NJL1Jl?=
 =?utf-8?B?ekM5QnY2cVg0VU5SSnMzWHIxQ05ZZ0V4MmJxaGhySmhtUHBrbjh1cFhkU0NO?=
 =?utf-8?B?ZU5GeldnVmJock9rOExuUVdjNXBicm95T0lnN0xNbGE1dVM0VnJORU1YMTNu?=
 =?utf-8?B?U3cvM0QxQVQzT0MzZlhGcVZVSSttQVhjbFhOak9ZRUlIRTNKMnlzd2Fhb0xS?=
 =?utf-8?B?VFFTZWVIdHJDNzV3S0dJMHoyY2tHd0pWbU9KM21qMUpOZW4yRFl6ekEzTGpy?=
 =?utf-8?B?OVh1MHNDNFpPU2t5SzBySWIrbEJLMFZZVGxiNUFLalVSbmY1VDRNb1NEUnFC?=
 =?utf-8?B?MnFkeCtTb2xVT1ZhcVBWNzNjQlYvNEltRm1qMW4yakYyNHlZUGVWRWJqNElK?=
 =?utf-8?B?TlJnZ3ZTbTNZbXNlakN0UExFNnZWOG1TdkpJdWNWMkVSRlNoT0hkUi9TeFVR?=
 =?utf-8?B?L200a0dqZGxSclRMcnoxNkJJQnRVZklqL0ZCakhDaDMyaEkvR2ZQYkxYQ1lO?=
 =?utf-8?B?NUVScjVJaCtlWmVid2g5bWhTZHNQTW0vNDBqRi83QUpIbE1QWmp6U0pYZ2ZQ?=
 =?utf-8?B?aHBpRVBya3ljenU2Z05RaC9uWCs2RWNZa3BJWFMwNHhjRlQ0Nm1adm1qWGU5?=
 =?utf-8?B?QnczaGUzdFAxOW1qTFRGdHF0OU1yV2lQQkJwMytLZ1QzaTZ0cVAzSkxoQmNJ?=
 =?utf-8?B?SXNMVkJhZmJwUFRJYk5BQVkzSzd3OHhLM1p1bTBSWDR2aVRMT2FXUmlRY29I?=
 =?utf-8?B?ZThibW9Qc3VaY2gyczdkTDRoR3h4bThPOFQ3RlpJeitHeFk0QjFEdlZiNUJv?=
 =?utf-8?B?R2dPK3B2a21IU0FhOTkrRngzTmZWS0QxNCtwNEVPaDE2aHliYk0rRUgvcm8x?=
 =?utf-8?B?V2Z6aHR0UFlMdHIrQTA3TGhTWkdTR0JITElGYkZLQ1g4QlN3VU1EMjgzNHpy?=
 =?utf-8?B?QkJUL0N2bENtMFpBaVZBaVg5Sk4rNDBURkR0VzhlUktFakF0SkxiMXlDalNi?=
 =?utf-8?B?Sm9RSENLdm5wQXlzVXFsUzBWZlIyMXBvVHhBb1ZvZFRTOUUvT044TTZwK3Rj?=
 =?utf-8?B?andSKzVXd2tPZmg5M3FPbHlpdTEzZk5MTkpZNHI1MlpEZStOcWlEY1h2UVZ1?=
 =?utf-8?B?WjhjWGtoSHhlMUlCSkxEU3lRRkZkZDMreWFXUGpEd0FqTHBua3hHWnEzNUg4?=
 =?utf-8?B?dmswcWM3eXU0aHpsdzJBVnh5dzl1UlFRSnBnU0pIdlZ0Q040UHFqMWdobUtP?=
 =?utf-8?B?UEIvMGxCaTIvbmdFckdLR0ZyOThyYjY4dFRKN2RpejVTUHN3dTJhb0dwMTE0?=
 =?utf-8?B?L1pOUXZuU2NOQ3ZYUVhyUlZmNzBHUnBDdlFoVVRzbktXUnM3bDYwMTJJNGhV?=
 =?utf-8?B?M0ZNVmxDbVRabVpoN2s2MXhEeW9vSEM1bnd0dEhIRW5SKzgvOFVGL2FKVVBM?=
 =?utf-8?Q?j6uJosZKVdONcc8c=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c581a3a3-258b-4115-dd2e-08de7093168d
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 15:16:57.5347
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: N04RVIYzyB1IenOQAo3dIC7ig9GdytfqRjAYoIKU3cugKiTDl/qgpNBcyoY3MY+5oo1yQdFmYLqNwUP6E4q7S2QpTGBtsxqeg2tOTd+bMfA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5603

On 16/05/2023 8:42 am, Jan Beulich wrote:
> While 670d6b908ff2 ('x86 shadow: Move the shadow linear mapping for
> n-on-3-on-4 shadows so') bumped the amount by one too little for the
> 32-on-64 case (which luckily was dead code, and hence a bump wasn't
> necessary in the first place), 0b841314dace ('x86/shadow:
> sh_{make,destroy}_monitor_table() are "even more" HVM-only'), dropping
> the dead code, then didn't adjust the amount back. Yet even the original
> amount was too high in certain cases. Switch to pre-allocating just as
> much as is going to be needed.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 15:29:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 15:29:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237289.1539658 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtSRa-0000XN-Tg; Fri, 20 Feb 2026 15:29:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237289.1539658; Fri, 20 Feb 2026 15:29: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 1vtSRa-0000XG-Qp; Fri, 20 Feb 2026 15:29:26 +0000
Received: by outflank-mailman (input) for mailman id 1237289;
 Fri, 20 Feb 2026 15:29: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=3rFK=AY=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vtSRa-0000X8-1e
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 15:29:26 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ed131627-0e70-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 16:29:20 +0100 (CET)
Received: from IA1PR03MB8288.namprd03.prod.outlook.com (2603:10b6:208:59e::6)
 by SA6PR03MB7831.namprd03.prod.outlook.com (2603:10b6:806:430::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Fri, 20 Feb
 2026 15:29:16 +0000
Received: from IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599]) by IA1PR03MB8288.namprd03.prod.outlook.com
 ([fe80::b5ee:28c6:e04b:5599%5]) with mapi id 15.20.9632.010; Fri, 20 Feb 2026
 15:29: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: ed131627-0e70-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=j5YjB4l4+RIBPd0dUjh178dQe0WQuNxr+YUijdKbwTOEIwZLdzZIbo4sXVJ2T48dqO5UKarbu5xGukH9uVBzl/5YeUmZjXvQPv4j2SJsND0F2el6J1ZnhPulv2ygsj2jCSDfN40N+JQKr6uq6UaH4n05wXzS5eShq44x5Q4hKouUHo2bSP4MsfcN61VKNBO9qtMUXsKiIxoyd68XiSMXJxrkGg0sYhfoKuRze0yvIb0pzP6ECLZ/FdNPHdJga/FWeOsd9h689dIAhqGhBsfpszmY8LNgbIm/ko/FdEjZvKJ1kopwwC/lZtPjn7HvNwcM5Jbj++7F0TFr5fcICNpUKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/Uh+wyylVdjbeX+zh6EIwRBAwtdJNEqW8o/Kesz8cM=;
 b=lEbvj1HD22eGxShqvWNIpG4SSu8J+E4f0Y4oDG47DOoLfba9qUVJgiEu1XlNlg6/HiV7zmX58T7ubye54XM5meTKMrp2X4sUJYjDaMoJ+cJeOq7jRWQFptNQA8bL68xEBEtMXrqFZN6VvaxbPKR7Nw8SOqIAAbnGbxv8cvt8BYOeFItl+hp6D878ka7iYaETiXoFKc/tWAxR6B6Le1zJsqhT5RoS6pgWbM0OL5ZKTWyMrscnfP6bBXml5yn8ZQS55fVRYRq0fKG2Y+NoIwure9ThKw4jNTdYqqMFCB1kGjVRS0Cqr/FO3eoulwFUnS6iPWShurkBmMAA3tWBFZY1KQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=s/Uh+wyylVdjbeX+zh6EIwRBAwtdJNEqW8o/Kesz8cM=;
 b=er7KKAEBqj6PN+5ekkQwUK/lviQxo4GdW3UnGGA78uTa/JI6LHHHrlO7smlRgAwVvfmf6hDDbh5rSV4zWULl/I/2UKehObYM6fFvcXeOJl8YCVNeeNRXihrGyK0r+tF1m/C4E8tBToGmMs7pD+kmGflrobMLY8TLfeZPslHmwXE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <24e8dd35-114d-4ba8-aa92-dad7cbcbd37b@citrix.com>
Date: Fri, 20 Feb 2026 15:29:11 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/shadow: don't use #if in macro invocations
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0489.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:13a::14) To IA1PR03MB8288.namprd03.prod.outlook.com
 (2603:10b6:208:59e::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: IA1PR03MB8288:EE_|SA6PR03MB7831:EE_
X-MS-Office365-Filtering-Correlation-Id: deeb6049-9bb7-4575-228b-08de7094cde1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?V3B4OWJYRW0rNFc5aWpDeVdDUzFoYmg0d0JXWnJBbTZpNFdsbjY2MUx5WWxn?=
 =?utf-8?B?TGxWOTZvK3pIcWpMRkRhRlFYeGdPQnBNVUxvRFMveEd0OEo0UFE1ZnZieVhy?=
 =?utf-8?B?dWdROVhaM1BNbm1VTGQ0eU45ZjBXa0poR1Y5dXZMNUpDTjJYWk1rWHk3Y2Yv?=
 =?utf-8?B?d1o1MUpCOGY4b3pZai9qNFdNRElsbytIQk1XcldyaW45MGlSSm5YL2t5SWhF?=
 =?utf-8?B?RFJIMHBESlYydG83b00rNmt5ZkJhVGt3aWxuNUdVV1N4SDFIMU9Kc00wMnlM?=
 =?utf-8?B?MlE2blBIblFyRFFJbDdEMlViSHhtYmVCMXgxSkZNMHhGSkxBbExoVUJKK01B?=
 =?utf-8?B?dytscHdmZm9memNmSytjcEJiQmlUN0RGWEF3c3hJWEF6OHdWTWlBUXdZREVi?=
 =?utf-8?B?Q3lCeENTY09pV2MzMDU2WXE5UEhZTGRtakNTajFYelF2TEMrL3hKYkRHQ0sw?=
 =?utf-8?B?VFZjVndjdG4zTHZzSkVheFlSVyt5ZGhZOXBrTHBnY1hGS2dxRnFQNlRNZXNY?=
 =?utf-8?B?SGpnWFhaVEEySzhsT2RJZ3FPVThweEwyM2xQRWdUOVphaW8vL3pCTTgzS3FH?=
 =?utf-8?B?TmJ2WlpnTGtIYklJcjJLTURiOFYwSnRvTi9NY01Jc0M2a09lVkwxNXROWEtU?=
 =?utf-8?B?M2RKaWhSdEdWQXNjSGVoZU9oWmdVREl3dFlEMk9JRkQ4S1FzQ3NVaUNaVGFF?=
 =?utf-8?B?QWRwRWYzQndjVmRjUW9PbGR4V0ZWOWd5c214elQ0NHVHRFRaZFRDQ3Yza2lN?=
 =?utf-8?B?T3hTRGdqcVdXQVlhUEtZdlgvVlMrcXp0QVhDVkVGaWEzaERhNjUwaTh0ODJS?=
 =?utf-8?B?UitCZ2k0VDdCYUczcWQzcWg1WDE1czdxSk5mK3dWS001TmgwbTIwYThYNk1n?=
 =?utf-8?B?a08vRjNaV2FYbWVadDY2bC9lajFYR0lXOWlaTmY3NzI1WmE3TllDanR3R0hD?=
 =?utf-8?B?YzdlK2NrNDlxYmlGR2luM3BYNkE1VmtrU0JObnA3UTFiVU1oenFMMlBSaEto?=
 =?utf-8?B?T0F0aXRhaWR4WTZZbFdhUzhXRnQvWnhWeXVZeVZ3L2pXelRRTzkrTHpnSERh?=
 =?utf-8?B?NkVQVEcydzNZQnY3enFmZUwvSkozRDVWczIyQTJNc1EwQ1dNTFkwVG94ZTUr?=
 =?utf-8?B?eWRTVk01T2tWa2xVeTVqdGMrVTI0WS96T1h4TzJoQVBPTERZQTFoWEh6elVY?=
 =?utf-8?B?OXAwd0srQnUvbkdRdjZudWU4UVFhNG1hTGw3d1BjMmFDT2VGTG8vQ3pMeFk3?=
 =?utf-8?B?VktLNXd4eFdsSWNFZ3BaSWZlQ3E1V3pXMjFYNGJDb2g2N1RRcXovRFBORHVu?=
 =?utf-8?B?OHlIZDBZdk50SUFiR2V4eTQ4cEhZSlUyd3R5cXpsS08xSDJzSWlTZlBXRTZQ?=
 =?utf-8?B?QVl0cVpneVdNTUVhZkRuTmNWSnNmWjQrRHoxK2ViSkM1RDg5dWZsbC9JTXFS?=
 =?utf-8?B?Q214ajFQWE9oVXhndUw5anFqTjZKSEIzdzZLVDdZdUFxNm5ZczJGYlc2T2dy?=
 =?utf-8?B?THM4d0M0bDhWMGdOOGhwdGMrWW8vR3NGMmFhdTY5QlRCV0VYK0wvanpBcUsr?=
 =?utf-8?B?dlM3cXVUbDZmeWY0VDhQazMweW81dVAzcThnL1dVWm1HZkpEMFdXQm1JQ2pn?=
 =?utf-8?B?SFkyK1hTRHVKUGtGeXVoM0R1M3h2bTBJeFNrc3ltM3VGeTQxRFM3Vy9DanBM?=
 =?utf-8?B?YkQzZWFJcTlwSEMxN1ZWUmwyL01oeWh5MzlsbnljVHBtSWpLWXdOaTlVVWJ5?=
 =?utf-8?B?cXVWZWcyaVVObW9MQUkyM3llYlFzaWhzTkxjVEhnMytFeW9DNUdvMC8zU1BB?=
 =?utf-8?B?aFl5ZXhWWEdUQk9WWTR0T0NZNlV1UFBmaS83dHBNeHp4TG03SDRnQ1FuTnll?=
 =?utf-8?B?NjVJd2d0SHNkYXhraVZIS09la3p3NFpxaFJORkFWOXNlb2xMMW5kUEQyazRL?=
 =?utf-8?B?YmRwZVEyUGc4RFQwM3FiczB2bmk5RFduc2pOQkJuNXdrangxVlYxZi9KL1Nw?=
 =?utf-8?B?WmxUY1FxUGM2dktTWTl6SHl0Vm1NcTdaTHIyeXNtb3k0QzQxZTFWOXhXUUZO?=
 =?utf-8?B?b3U5OWZQVFNCU2hVSklDT0ZGbWsrR09mYzBMdWswWXkyR3M2UUJOMUptOFdy?=
 =?utf-8?Q?REQo=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR03MB8288.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cHBzZTN4N2M3b2RBSHBsWjVWb3hRSWVjUDBLaVk4S3k5ejA2VFJXaTdFRlp1?=
 =?utf-8?B?eGpwOXpGNjdOb1AwblNZOEdkTEV3bzB5T0Q5ZzhZT1FDZkRNTmR3YXhBRWJM?=
 =?utf-8?B?QnhLdExlUURscTcvOW1ka1IzQ21vVUlycjRTVytWV2EyVXZiSTZqbVpNd2tS?=
 =?utf-8?B?cEhrdVRzRVFEYjJSRDkyV1VJRVozSVdWSlpNdnRMN2hiSE10SUN3L0x5Tlh5?=
 =?utf-8?B?T3JSenRqd1ZIT2p1STQ4TnJTd2FaWnh6Rjk3aC9GbDJ5Y2cwblBBUDhFemlU?=
 =?utf-8?B?MlU0ZVlPaXh6YTNsclRUemZ6Z3dGNy9sNlppc2dqWFZuWHNwNVZ2eklVZ0c2?=
 =?utf-8?B?Mzl5YW9pZzBOSnZzcjFXMjhzc1F0S2JaNWJUY3lTWHF5NU5DdjlSdEdENGgx?=
 =?utf-8?B?N213Si9xSzNwaC9mWE5BYmRtd0xvWi9VTElpMTlCTUo5TTZwMnhONUVraDNr?=
 =?utf-8?B?Vi90RGZOL1Ivc3MxejE0eGJZbk5zNjl5RUsvaFErTHNvM085Zm5CaGQ3cGg4?=
 =?utf-8?B?K0Y3N0ppcDVyeGovUzZWT3J1UDRnaTFZT1NrZUw0QTZuWkxnY085TVdQVDRI?=
 =?utf-8?B?NjdNU2NKZzNjSWVmRUcySnBhL2pxZWNaSkc2Z2c2RDJTdk4xQTRHcDRITGlS?=
 =?utf-8?B?cnRyMU0wSElDZVFiOHU4Qng5Y0d5NThqbXpaTDVGTlUrMzUxRXV0UHBBOTBz?=
 =?utf-8?B?YWtrQ0ZzallHV0xMSlBsZTV0S2JoT082TVZHOUtQS21OMDEvTUZ2OUx4UUUv?=
 =?utf-8?B?VXVGL3B0QVRnT09CbmZkaHQwMjJFOENsT3pLMkFxMlBMRHVUS1pvbllkVUY4?=
 =?utf-8?B?WjQzUERPbWlSeUhzRXdncFpROG51UUVmVHhseGEwWWVTVnRnMXBsTU1uNlha?=
 =?utf-8?B?ZmNESEdnOVVTU1kyUzZuQlVSRFVVVXJjVTBOUUw5V3hpaTZWOExhOTBnUEZE?=
 =?utf-8?B?MHB4K1lJSy9MN0VOQkhJQVdhUTQwNEp5b29VUysrZkMyM0xGSE5wWkx5SENR?=
 =?utf-8?B?dVh6cUxSa2V3eDNqaHNwMHR3dk1BQmhzMXVQUGlYb3lUcE9ZbUtBOEwxenlC?=
 =?utf-8?B?MDFIUTlFTFkwa3RXK3Jnclo4eGFjbmNHZ0xnUkovME1UUEpZdFdsTVN5enht?=
 =?utf-8?B?TktBNUkwNEIzaC9LbnZyVmNLSzh6RVpmblhacXIzQVluRVluclJzRU9tTkdL?=
 =?utf-8?B?Z0x2Sm9JM3VHeFZVa21nemNjZVE0czVITVRZL1QzREJ6alB6SEhrNmp0Smdr?=
 =?utf-8?B?TGJCVjVWeUtKbEZhblhIdkJDZVYvbmpWNmJXYzdWODZ0YllHMlRsdEpJaXF0?=
 =?utf-8?B?OEx1TmVyZHRlUG5hVDlESnIwbE4vdDF5bS9BVW5ZdkVOVXNLSXNPNENHYnlR?=
 =?utf-8?B?T1VVRC8vRnhQbnAweS9yK1p3SENONitxMmZDNDFFYzFVVEFkNSsyZ2dWOENG?=
 =?utf-8?B?VHVVY0VubGlDREdUVWdzQmVvWGRpMDcvQ25uUUE0SStUYnZkY3QvNWE0aWZv?=
 =?utf-8?B?YVhtTE9QVUVUNFE4SklPdm0ydUQzVkdkQkI0S1o3MkN1a3JvTkxlak5CTWlM?=
 =?utf-8?B?cC9lc0pmYW0yME5hY3JyQXNvRFh5QkFaMzBEOE9NUTc3bU1NWGRzK3N5TWg2?=
 =?utf-8?B?Sno4WEduMVVTUTkxV1RXSi8rdW45S0tMNGVYSWgvd2hvRmNPQTd3M0FXRjR1?=
 =?utf-8?B?S1ZtajVOZ1BIRXhNQVlRN3BqRWExc2YzbzYyNit4RHlWWkM4bHlMTHdvZldJ?=
 =?utf-8?B?eFE2NjlacUVSSkMzSHBFbXlibnFyNzhDYU1FaHR0YTJydGtoWC8zNno4TDNl?=
 =?utf-8?B?WGRqOElHMjN5TWh2ZGtlalpOM0toVk1QdmV1cDdCYlJvWjBiZDg5L0tpbGJp?=
 =?utf-8?B?WEtMZy9YbC81MW0yUXlTa2FRbnY3NzNrUTduemRram1aUjhFMTZpM3laUGph?=
 =?utf-8?B?dno5aWFGRVBJQjRiWmFPL3pJb3N1eXJ5WDJ1TzBrZkF4TkR6d3FrckVuTjNO?=
 =?utf-8?B?TlZaYUlkdEtRck5XWjJUdjNsbmZLOWxtdEoreFdzbDVLeW5WUWpPTFY1c2Fo?=
 =?utf-8?B?M3Fxa2srZVNFNHFRR1hmWHV2VXI1a2pqK3h1MFRPWWpXZWQrWnoxU3JQZUdF?=
 =?utf-8?B?V01zU0ZhVjBuc3R5MFB2N3lZK0FVRkhSQSs3N3phT3psbGp5cGZqenMrQkdV?=
 =?utf-8?B?SUJXOG5UZ0ozK1JmK3UySk9LRHlHOGhOODVob2N0TkcvNHk1Y3JqWG9ORHla?=
 =?utf-8?B?N1M4SWNidEpNSU4vTk0xTUk0N3JHTnp4TlhXTTNuZXZWWjF1OFlwM2xnMnJX?=
 =?utf-8?B?UllZUEZkVktFRFB0L0dFUmpVSzZrOUVVMkJCRTVkNWdSVFZlQWE2UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: deeb6049-9bb7-4575-228b-08de7094cde1
X-MS-Exchange-CrossTenant-AuthSource: IA1PR03MB8288.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Feb 2026 15:29:14.5499
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3g3LCgUPzl83RJKDSnsA/BD9qv05uA2pKTVRK3xPaLA87UAF0CwbaDkfhi0VHMC/ihjlBLWkxfyPiEdDbhleJRi7kdthdZNVCvN3Uegy3AA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR03MB7831

On 18/02/2026 9:03 am, Jan Beulich wrote:
> As per the standard this is UB, i.e. we're building on a defacto extension
> in the compilers we use. Misra C:2012 rule 20.6 disallows this altogether,
> though. Use helper always-inline functions instead.
>
> In sh_audit_l1_table(), along with reducing the scope of "gfn", which now
> isn't used anymore by the if() side of the conditional, also reduce the
> scope of two other adjacent variables.
>
> For audit_magic() note that both which parameters are needed and what
> their types are is attributed to AUDIT_FAIL() accessing variables which
> aren't passed as arguments to it.
>
> No functional change intended. Of course codegen does change with this,
> first and foremost in register allocation.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

I included this patch on an interim branch of other MISRA fixes of mine
to get a run.

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/13198988953

There's one more violation still to fix:

    if ( unlikely((level == 1)
                  && sh_mfn_is_a_page_table(target_mfn)
#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC )
                  /* Unless the page is out of sync and the guest is
                     writing to it. */
                  && !(mfn_oos_may_write(target_mfn)
                       && (ft == ft_demand_write))
#endif /* OOS */
                  ) )
        sflags &= ~_PAGE_RW;



I also looked at this one previously.  Making mfn_oos_may_write()
visible outside of SHOPT_OUT_OF_SYNC is quite invasive.

Here, I suggest dropping the unlikely() as the easiest fix.  It's almost
certainly useless anyway.

~Andrew


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 15:54:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 15:54:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237314.1539670 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtSpF-0004sM-QC; Fri, 20 Feb 2026 15:53:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237314.1539670; Fri, 20 Feb 2026 15:53: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 1vtSpF-0004sF-MS; Fri, 20 Feb 2026 15:53:53 +0000
Received: by outflank-mailman (input) for mailman id 1237314;
 Fri, 20 Feb 2026 15:53: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=kOmB=AY=bounce.vates.tech=bounce-md_30504962.6998838d.v1-e51af2fa70da414fa001341687f854fc@srs-se1.protection.inumbo.net>)
 id 1vtSpD-0004ri-Ps
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 15:53:52 +0000
Received: from mail186-12.suw21.mandrillapp.com
 (mail186-12.suw21.mandrillapp.com [198.2.186.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 590cbd79-0e74-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 16:53:50 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-12.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4fHZY90ttDz705b3m
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 15:53:49 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 e51af2fa70da414fa001341687f854fc; Fri, 20 Feb 2026 15:53: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: 590cbd79-0e74-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771602829; x=1771872829;
	bh=fCUBpXi2ECBGejIhZTvDzf6iYF6WB1nBD+u/P8GLLAQ=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=xO/GeWlt/9NCO4z4Ge11zKyrbH8vbZqmOanQRT1jYG2Yr27nOwO2kZ4jptkFoorwq
	 A71j0f/NcO3CbdEFRAfZrPFVIgNMwE6nMGMUvvWfGC4mMPTJ1/YqUINzW3DyJNrnzJ
	 gTWq5gCyNuWsjtEx6xL9lQb9MzoWavQ3muArx+oHkPaWy6rsq+Q3U0pqhs2RTlmnzq
	 MU8ElFQMjrFR7iaEEeXX1QMnP/gbFyPgU8eioIHKi2JStfIRH+Wn2CzYTedz1tAw7o
	 P+m45FVd0s7M8kUepZPio5I0MA8yYETNK5G00N+ADMNjua2IE1JEv9zreLplMbJ6R5
	 P77YkaJJu2FfA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771602829; x=1771863329; i=teddy.astie@vates.tech;
	bh=fCUBpXi2ECBGejIhZTvDzf6iYF6WB1nBD+u/P8GLLAQ=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=HNWmI5SCPGMKNIAkqCmLwBPavGOgSRDST84Fv9Zgt4n42HGHUOkES0Uqzi+x/Bm0X
	 2ib9EGnuUuno4CWfdVx7GNEtSPQUVYz2+813zP3UseStSZN4+HHHHIGspwfhYGzY7R
	 FdhJVD+zsLrpFO6EBF9oksJ2sXOT6EZd37u9cm9hYvfJksRRBcgG/g1kjlQaujRIwO
	 t2zDnPc5p3MoKcSfPBDN3kIAoJTPfVBrGzJpkcCFOrUFsWc3KYbddyhz97X5cxWlte
	 ATjtjugYHxSuPJ1b57hyJA4y0u32JShaOSo/0GQ8DSfDIkhZ8vPdbfKcqTSD33DC9X
	 XRJZkm3bIPB7g==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2]=20x86/platform:=20Adjust=20temperature=20sensors=20MSRs?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771602828211
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>, "Tu Dinh" <ngoc-tu.dinh@vates.tech>
Message-Id: <08370f3b8b224493b8e66e8503a2fe0d07b73c33.1771600155.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.e51af2fa70da414fa001341687f854fc?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260220:md
Date: Fri, 20 Feb 2026 15:53:49 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Temperature sensors MSR were previously assumed to be available when "DTS"
CPUID bit is set. This is not really the case :
 * MSR_IA32_THERM_STATUS is gated behind ACPI CPUID bit, only DTS-related bits
of this MSR are gated behind the DTS CPUID
 * MSR_PACKAGE_THERM_STATUS is gated behind "PTM" CPUID

Also adjust the MSR_TEMPERATURE_TARGET which is not architectural, but stable
in practice, and required to be exposed for reliably querying CPU temperature.

Fixes: 615c9f3f820 ("x86/platform: Expose DTS sensors MSR")
Reported-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
since v1:
 * use acpi CPUID bit for MSR_IA32_THERM_STATUS
 * use pkg_therm_mgmt CPUID bit for MSR_PACKAGE_THERM_STATUS
 * review MSR_TEMPERATURE_TARGET MSR

 xen/arch/x86/platform_hypercall.c    | 19 ++++++++++++++++++-
 xen/include/xen/lib/x86/cpu-policy.h |  2 +-
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index c6c5135806..711427144e 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -89,9 +89,26 @@ static bool msr_read_allowed(unsigned int msr)
         return cpu_has_srbds_ctrl;
 
     case MSR_IA32_THERM_STATUS:
+        return host_cpu_policy.basic.acpi;
+
+    /*
+     * This MSR is present on most Intel Core-family CPUs since Nehalem but is not an
+     * architectural MSR. No CPUID bit enumerates this MSR.
+     *
+     * This MSR exposes "temperature target" that is needed to compute the CPU
+     * temperature. The "temperature target" is a model specific value, and this MSR is
+     * the only known method of getting the one used for the CPU. On some CPU models with
+     * Intel SST-PP, the "temperature target" can vary over time.
+     *
+     * We assume all Intel CPUs with DTS may support this MSR; but reads can fail in case
+     * the platform doesn't actually support this MSR.
+     */
     case MSR_TEMPERATURE_TARGET:
+        return boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+            host_cpu_policy.basic.digital_temp_sensor;
+
     case MSR_PACKAGE_THERM_STATUS:
-        return host_cpu_policy.basic.digital_temp_sensor;
+        return host_cpu_policy.basic.pkg_therm_mgmt;
     }
 
     if ( ppin_msr && msr == ppin_msr )
diff --git a/xen/include/xen/lib/x86/cpu-policy.h b/xen/include/xen/lib/x86/cpu-policy.h
index db8d035589..d29e380359 100644
--- a/xen/include/xen/lib/x86/cpu-policy.h
+++ b/xen/include/xen/lib/x86/cpu-policy.h
@@ -132,7 +132,7 @@ struct cpu_policy
                         :1,
                         :1,
                         :1,
-                        :1,
+                        pkg_therm_mgmt:1,
                         hwp:1,
                         hwp_interrupt:1,
                         hwp_activity_window:1,
-- 
2.53.0



--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237334.1539693 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTDw-0000bH-DI; Fri, 20 Feb 2026 16:19:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237334.1539693; Fri, 20 Feb 2026 16: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 1vtTDw-0000aV-6w; Fri, 20 Feb 2026 16:19:24 +0000
Received: by outflank-mailman (input) for mailman id 1237334;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTDv-0000Q4-BO
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:23 +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 e9a2c0b4-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:21 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48375f10628so13917745e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:21 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.18
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e9a2c0b4-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604360; x=1772209160; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eK3XS+ZcSRgZlqnrevGqXpYKxcWdI0GkuIch/PQdcy0=;
        b=NDgta6+CyvbVK2OUY/uGpTIJKsIfX+SQ6LFsR08RQ1ROYz4kzKCm9cQtYggz1+LUt3
         wyf3SW0l9gDlvS2Q5Xr499f8ozS9caJMlFxR3llLkxaUFMAIhcT5RjbOodkq6T0YNNqu
         pC9XlXa/Zl4OXY+IoqKzneTQH9Uc2ER18AkIw+pEwHVpxA2Za95WVHfYBDo/6aTqam1Q
         R+vZqrdk4CBRWcVvShT9UAPY8+ISZXJTSK7mof5Wsf+hACrsaHrDftXxoQ2JZWNt0MgW
         bb/KB/cCliqzDmx1Bj5gY77hLTimSNDXedPVZBWrRVLskAHpoFZ3CS91R/SjryoZi0A2
         dEQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604360; x=1772209160;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=eK3XS+ZcSRgZlqnrevGqXpYKxcWdI0GkuIch/PQdcy0=;
        b=Kn1cRGLS9By5D7coJfsduro9jVbALWdfw5mozt80nKh/nRvcA21TNGwrMhBQEFTEok
         Wup5Waml3Qiv5f4bLCT9AHIXWSgzV/gX8ZoQLI9W/WLFeWtiJb9BMALWM2BDTB19tDuA
         SBKfa5nyBILPWQrghD+r7WP8QN14w93AcjktRnKWtPGDjNoLpXBZpS2I00Ieplz07dPH
         0+VNYUwxIsADMmbpr60OEN5OSY1qibJ0FwKq3OGuG0g/Y0pqi2NvOSGmZ8UNwp4Lj24S
         N9dKQRxAf8xSsk58fHM3F7+rkA8xUexDtwSfEykL30e+YFfYNHYG2pD7mUtjycWiKDxM
         7piA==
X-Gm-Message-State: AOJu0Yye5ruioPtU0RGqGxo5HFDPSp43McUWfe6x0HjxODAjumZFMyKq
	1hDKxJKFYp7bFM0oiCyNYYAl3pfCzFchi5wvl+PplCiktNbDBKJTs3R/AQLJzw==
X-Gm-Gg: AZuq6aI4mA+LyZo6lHOE6iDfYxvCBiClDCCsJoxp2XHgbKONuQB/j0zs20khJI6+8Cu
	MW08ItSrWg6YRI1Js70EZ0RdTe/LV9NHD+SNR5zxzjYft4ItwuK14HCTCpvlFiNEaG/FrfuvATo
	gDNbTaTikeQZBI6zKhxpXKWOPXYBiq3S2zDhm8KhUMo9kEG0OgecLDazwHUdIeqdeLJOw+kfCe/
	jYE8vwEhOT0po7Unxb5iy0pqq6MEmWyRKsRhZJ7+/TMOPXugODahkOxvtAgXp3fezRjxsv33IgS
	qqf45ooW43PVEF0rGP6WawEhkzeL0HLfLLamnbMmbzE9ZGSiM/hVC6gQMvQZBdFdYuL8wDDVOtV
	8yLXKAGyFKxbF1IuJvSLy2JZVRM6fruo2Di3LAX2Z1W18mAZqqxdo+KuZn3HUvLg9UyQbsoJ1Nu
	6pD7zaqjx2eN1l6HR6naCrgvrbykyIKyHh0+g3EckaJD+W3aaOiDTwDlkoo5xnm7xQJg==
X-Received: by 2002:a05:600c:3e05:b0:477:7f4a:44b4 with SMTP id 5b1f17b1804b1-483a95b3df6mr1673015e9.1.1771604359949;
        Fri, 20 Feb 2026 08:19:19 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 02/14] xen/riscv: implement vcpu_csr_init()
Date: Fri, 20 Feb 2026 17:18:57 +0100
Message-ID: <3d301ac4ca901f0aa471d6c4234301a0199fe5f7.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vcpu_csr_init() to initialise hypervisor CSRs that control
vCPU execution and virtualization behaviour before the vCPU is first
scheduled.
The function configures trap and interrupt delegation to VS-mode by
setting the appropriate bits in the hedeleg and hideleg registers,
initializes hstatus so that execution enters VS-mode when control is
passed to the guest, and restricts guest access to hardware performance
counters by initializing hcounteren, as unrestricted access would
require additional handling in Xen.
When the Smstateen and SSAIA extensions are available, access to AIA
CSRs and IMSIC guest interrupt files is enabled by setting the
corresponding bits in hstateen0, avoiding unnecessary traps into Xen
(note that SVSLCT(Supervisor Virtual Select) name is used intead of
CSRIND as OpenSBI uses such name and riscv_encoding.h is mostly based
on it).
If the Svpbmt extension is supported, the PBMTE bit is set in
henvcfg to allow its use for VS-stage address translation. Guest
access to the ENVCFG CSR is also enabled by setting ENVCFG bit in
hstateen0, as a guest may need to control certain characteristics of
the U-mode (VU-mode when V=1) execution environment.

For CSRs that may contain read-only bits (e.g. hedeleg, hideleg,
hstateen0), to the written value a correspondent mask is applied to
avoid divergence between the software state and the actual CSR
contents.

As hstatus is not part of struct arch_vcpu (it already resides in
struct cpu_user_regs), introduce vcpu_guest_cpu_user_regs() to provide
a uniform way to access hstatus and other guest CPU user registers.

This establishes a consistent and well-defined initial CSR state for
vCPUs prior to their first context switch.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v5:
 - Initialize of hstateen0 with SMSTATEEN0_HSENVCFG when a variable is
   defined.
 - Use |= for a code inside if (*_ssaia) case.
 - Put declaration of the registers hedeleg and hideleg together in arch_vcpu
   structure as they are typically used together so better chances to
   be in the same cache line.
---
Changes in v4:
 - Move local variable hstateen0 into narrower scope.
 - Code style fixes.
 - Move the call of vcpu_csr_init(v) after if ( is_idle_vcpu() ) check in
   arcg_vcpu_create().
---
Changes in v3:
 - Add hypervisor register used to initalize vCPU state.
 - Apply masks introduced before instead of csr_write()/csr_read() pattern.
---
Changes in v2:
 - As hstatus isn't a part of arch_vcpu structure (as it is already a part of
   cpu_user_regs) introduce vcpu_guest_cpu_user_regs() to be able to access
   hstatus and other CPU user regs.
 - Sort hideleg bit setting by value. Drop a stray blank.
 - Drop | when the first initialization of hcounteren and hennvcfg happen.
 - Introduce HEDELEG_DEFAULT. Sort set bits by value and use BIT() macros
   instead of open-coding it.
 - Apply pattern csr_write() -> csr_read() for hedeleg and hideleg instead
   of direct bit setting in v->arch.h{i,e}deleg as it could be that for some
   reason some bits of hedeleg and hideleg are r/o.
   The similar patter is used for hstateen0 as some of the bits could be r/o.
 - Add check that SSAIA is avaialable before setting of SMSTATEEN0_AIA |
   SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT bits.
 - Drop local variables hstatus, hideleg and hedeleg as they aren't used
   anymore.
---
 xen/arch/riscv/domain.c                     | 62 +++++++++++++++++++++
 xen/arch/riscv/include/asm/current.h        |  2 +
 xen/arch/riscv/include/asm/domain.h         |  6 ++
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 +
 4 files changed, 72 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 8b05f0f23b77..c9494db0fbe7 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -8,6 +8,7 @@
 
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
+#include <asm/riscv_encoding.h>
 
 struct csr_masks {
     register_t hedeleg;
@@ -16,6 +17,21 @@ struct csr_masks {
     register_t hstateen0;
 };
 
+#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
+                         BIT(CAUSE_FETCH_ACCESS, U) | \
+                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
+                         BIT(CAUSE_BREAKPOINT, U) | \
+                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
+                         BIT(CAUSE_LOAD_ACCESS, U) | \
+                         BIT(CAUSE_MISALIGNED_STORE, U) | \
+                         BIT(CAUSE_STORE_ACCESS, U) | \
+                         BIT(CAUSE_USER_ECALL, U) | \
+                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
+                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
+                         BIT(CAUSE_STORE_PAGE_FAULT, U))
+
+#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
+
 static struct csr_masks __ro_after_init csr_masks;
 
 void __init init_csr_masks(void)
@@ -35,6 +51,50 @@ void __init init_csr_masks(void)
         INIT_CSR_MASK(HSTATEEN0, hstateen0);
 }
 
+static void vcpu_csr_init(struct vcpu *v)
+{
+    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
+
+    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
+
+    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
+
+    /*
+     * VS should access only the time counter directly.
+     * Everything else should trap.
+     */
+    v->arch.hcounteren = HCOUNTEREN_TM;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
+        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        /* Allow guest to access CSR_SENVCFG */
+        register_t hstateen0 = SMSTATEEN0_HSENVCFG;
+
+        if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
+            /*
+             * If the hypervisor extension is implemented, the same three
+             * bits are defined also in hypervisor CSR hstateen0 but concern
+             * only the state potentially accessible to a virtual machine
+             * executing in privilege modes VS and VU:
+             *      bit 60 CSRs siselect and sireg (really vsiselect and
+             *             vsireg)
+             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
+             *             vsiph, vsieh, and vstopi)
+             *      bit 58 all state of IMSIC guest interrupt files, including
+             *             CSR stopei (really vstopei)
+             * If one of these bits is zero in hstateen0, and the same bit is
+             * one in mstateen0, then an attempt to access the corresponding
+             * state from VS or VU-mode raises a virtual instruction exception.
+             */
+            hstateen0 |= SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
+
+        v->arch.hstateen0 = hstateen0 & csr_masks.hstateen0;
+    }
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
@@ -57,6 +117,8 @@ int arch_vcpu_create(struct vcpu *v)
     if ( is_idle_vcpu(v) )
         return 0;
 
+    vcpu_csr_init(v);
+
     /*
      * As the vtimer and interrupt controller (IC) are not yet implemented,
      * return an error.
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 58c9f1506b7c..5fbee8182caa 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -48,6 +48,8 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
 #define get_cpu_current(cpu)  per_cpu(curr_vcpu, cpu)
 
 #define guest_cpu_user_regs() ({ BUG_ON("unimplemented"); NULL; })
+#define vcpu_guest_cpu_user_regs(vcpu) \
+    (&(vcpu)->arch.cpu_info->guest_cpu_user_regs)
 
 #define switch_stack_and_jump(stack, fn) do {               \
     asm volatile (                                          \
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 5aec627a7adb..17be792afe7d 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -49,6 +49,12 @@ struct arch_vcpu {
 
     struct cpu_info *cpu_info;
 
+    register_t hcounteren;
+    register_t hedeleg;
+    register_t hideleg;
+    register_t henvcfg;
+    register_t hstateen0;
+
     register_t vsatp;
 };
 
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index 1f7e612366f8..dd15731a86fa 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -228,6 +228,8 @@
 #define ENVCFG_CBIE_INV			_UL(0x3)
 #define ENVCFG_FIOM			_UL(0x1)
 
+#define HCOUNTEREN_TM BIT(1, U)
+
 /* ===== User-level CSRs ===== */
 
 /* User Trap Setup (N-extension) */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237333.1539685 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTDw-0000Sw-0I; Fri, 20 Feb 2026 16:19:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237333.1539685; Fri, 20 Feb 2026 16:19: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 1vtTDv-0000SD-Qw; Fri, 20 Feb 2026 16:19:23 +0000
Received: by outflank-mailman (input) for mailman id 1237333;
 Fri, 20 Feb 2026 16: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTDu-0000Q4-BJ
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:22 +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 e8b2aab6-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:19 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-4327790c4e9so1559300f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:19 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.17
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8b2aab6-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604359; x=1772209159; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=VGHRmL2iWDUaQ6x5sen7QQ6MZAJ2q1tuNN96Ty+TTdE=;
        b=ZQLrgv8eFLYDpJg95KnrAGIIavZTmeLkRnxv06MDoVAzytzIjfz9He51eiBQBZPA/+
         sW6KJO9Ej/pkMXWYJA7xDt0DtgVxx8vJ0ZIsIKfpqqNKaUIbZ2LccySj3sZZH5UITa7V
         YvqVT07i9gBRMAdLzD5KPrwa6TEOm0bmfHPa4ZsEgz14RjsoeHASsbMflfs0jwHbfwJP
         4uYYctL4sS/u8g+Tf4cdBIFQqCJ7AqT9J6ypk9P/MR3w5WB47GFX4jcQ4cGgWve9XGc3
         tRjawvmvPmWL7W2qXTuWNKT+WLmUBZmYHbKfxXRHCX74bxBuqcizNtSFhlbvFJhyFVe3
         jngA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604359; x=1772209159;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=VGHRmL2iWDUaQ6x5sen7QQ6MZAJ2q1tuNN96Ty+TTdE=;
        b=Bwoh3DQ2B2ZCGboU76Mr25XXZdOke4rQ2eTzcFNbuHVjXDbBA0gqoU5JeWbVy0evtd
         taig8jAVlSw96ml3XmNUhV8OB0F3241jCeeObcQ0cEGRkhUj/opYyw2WSpW2jCuIbJnt
         EVgK252e1N1qpudxwgc5qfIT67V7RH61hlrnwyy5o1YZdPOojaNS9IqLqKcdCPaiK88s
         LSLZ8AqYVJF0qj/tv9CUevIlSe0hw2sT+9xQ2Fc/DhiAM9SJltIZShttuCQHZfgm6Vng
         fF+KpJqpTVudZKKk7LjOK12RHLXFeHMKVKhmgMsmPqP0VFsOaFLhzY2uAlLW26IWKdN8
         L+6g==
X-Gm-Message-State: AOJu0YyQrFhcZoAnSBuH8sspuEHAzUmKvFeqJD4Q4JPecDpqEQy3AAog
	ssHTBs8+IKljHgNYzYal9BlQmK6jjIUyIJQykuav6ebpPLDV9x2kieICfZ3JzQ==
X-Gm-Gg: AZuq6aIpCwDzsomnfPtG/qmgUgtGeWIiplgi50mrmbN/GUOnAnw8wmZ1O8JsZZ3XaP5
	2WaLP3Gfav3111EEgdWBTjDL4jtcARcJ7EU9jKNFBQm9LQuKMNR0nkMbhP9u0orTr9Y6GUFwgQp
	IvE83iK/P8braeEC8WRvqua0fwyW6mDqyVxG7ld07bu3YbKbaS8KdQRRK42dqidRZ/Ub7Zes5sF
	v3pFaA47OUVpeME4b+ejjO1ak1Z/LkRLCaji5jSLoc8+IuFYTIKWexJTHAkDKSpV+ePtaVwiVfd
	k+lvLg/XsvVER92TB1EatL1edCTO3eUsxkGddPLvbToSLrxbBRbDlg4acy1ZCsCvS8bNnD6A9HY
	BrKIOuwJsEjEauCVfpXRrOi/vcgz4nelcrma5h3YMZwkMYkaL7Adm2TdLP+lomt7MN/ljcBECt9
	u+IdckcDy/sE7zSf79qsB8x7vWSXWUNzzv1gmZ8IiYR6C5zdwcg6nGXss23cTZ+czD2A==
X-Received: by 2002:a05:6000:26cd:b0:436:369f:39f9 with SMTP id ffacd0b85a97d-4396f1a70b5mr756546f8f.57.1771604358526;
        Fri, 20 Feb 2026 08:19:18 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor CSR bits at boot
Date: Fri, 20 Feb 2026 17:18:56 +0100
Message-ID: <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some hypervisor CSRs expose optional functionality and may not implement
all architectural bits. Writing unsupported bits can either be ignored
or raise an exception depending on the platform.

Detect the set of writable bits for selected hypervisor CSRs at boot and
store the resulting masks for later use. This allows safely programming
these CSRs during vCPU context switching and avoids relying on hardcoded
architectural assumptions.

Note that csr_set() is used instead of csr_write() to write all ones to
the mask, as the CSRRS instruction, according to the RISC-V specification,
sets only those bits that are writable (note that the quote consider only
non-read-only CSRs as writing to read-only CSRs according to the spec.
will raise an exception):
    Any bit that is high in rs1 will cause the corresponding bit to be set
    in the CSR, if that CSR bit is writable.
In contrast, the CSRRW instruction does not take CSR bit writability into
account, which could lead to unintended side effects when writing all ones
to a CSR.

Masks are calculated at the moment only for hedeleg, henvcfg, hideleg,
hstateen0 registers as only them are going to be used in the follow up
patch.

If the Smstateen extension is not implemented, hstateen0 cannot be read
because the register is considered non-existent. Instructions that attempt
to access a CSR that is not implemented or not visible in the current mode
are reserved and will raise an illegal-instruction exception.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V5:
 - Move everything related to csr_masks to domain.c and make it static.
 - Move declaration of old variable in init_csr_masks() inside INIT_CSR_MASK.
 - Use csr_swap() in INIT_CSR_MASK().
---
Changes in V4:
 - Move csr_masks defintion to domain.c. Make it static as at the moment
   it is going to be used only in domain.c.
 - Rename and refactor X macros inside init_csr_masks().
---
Changes in V3:
 - New patch.
---
 xen/arch/riscv/domain.c            | 30 ++++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/setup.h |  2 ++
 xen/arch/riscv/setup.c             |  2 ++
 3 files changed, 34 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index b60320b90def..8b05f0f23b77 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -2,9 +2,39 @@
 
 #include <xen/init.h>
 #include <xen/mm.h>
+#include <xen/sections.h>
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/cpufeature.h>
+#include <asm/csr.h>
+
+struct csr_masks {
+    register_t hedeleg;
+    register_t henvcfg;
+    register_t hideleg;
+    register_t hstateen0;
+};
+
+static struct csr_masks __ro_after_init csr_masks;
+
+void __init init_csr_masks(void)
+{
+#define INIT_CSR_MASK(csr, field) do { \
+    register_t old; \
+    old = csr_read(CSR_##csr); \
+    csr_set(CSR_##csr, ULONG_MAX); \
+    csr_masks.field = csr_swap(CSR_##csr, old); \
+} while (0)
+
+    INIT_CSR_MASK(HEDELEG, hedeleg);
+    INIT_CSR_MASK(HENVCFG, henvcfg);
+    INIT_CSR_MASK(HIDELEG, hideleg);
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+        INIT_CSR_MASK(HSTATEEN0, hstateen0);
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c9d69cdf5166..2215894cfbb1 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -11,6 +11,8 @@ void setup_mm(void);
 
 void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
 
+void init_csr_masks(void);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9b4835960d20..bca6ca09eddd 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -137,6 +137,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     riscv_fill_hwcap();
 
+    init_csr_masks();
+
     preinit_xen_time();
 
     intc_preinit();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237332.1539679 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTDv-0000QS-Oy; Fri, 20 Feb 2026 16:19:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237332.1539679; Fri, 20 Feb 2026 16:19: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 1vtTDv-0000QL-JY; Fri, 20 Feb 2026 16:19:23 +0000
Received: by outflank-mailman (input) for mailman id 1237332;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTDt-0000Q4-OT
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:21 +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 e80a2bcf-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:18 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-48378136adcso13904785e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:18 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:17 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e80a2bcf-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604357; x=1772209157; 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=wBMTNZ/yQHOoqgMtBqM864Ctr3nc3j86jL9uHKBWSls=;
        b=CxPY9hKANYi+Y6xr+rKw8rZPNI0IeK80ueyXbmdyqRCoAW3m1iK1JD28wQjMamtVEI
         RWyak6MVsbDvWt92qb1KhENoj75gLF5t0qcjToeKIkNjaPaUvL8DzhWak/mdf9Rp78hD
         8tmA7Bq9jGlDTPmztem+qlT1GXa7fVyBOQlYNKnbFSQ5WmC1yqGGVWo7vXvIXApfz8Oc
         J9FIr2GA/0iUFGpyDzT69Y0cMroaC1uXmLMfiOPb9yrZMUXYfUu4nmwNBAkZ3N5gAXxs
         zP1xxL4DHneznFhg3yPbKJNQW+qwtwWxEnA5eHTLmG+zztX83kWFc5PAUtQWjSLRbWyq
         Pb5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604357; x=1772209157;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wBMTNZ/yQHOoqgMtBqM864Ctr3nc3j86jL9uHKBWSls=;
        b=HSSkS71eA2cUfYBgEeZYCqop9CxzC2u+iQ19aexg6b0AIzHZBjXoafcoMPm/MvjjxT
         X6Q8tdnX1AGuWBfcYN7swS+zBrtM/Mh0ctTbYJ7CF7jgcUAWchOpE4y3bPs/9LyQXXXg
         cRt3pY/HiGhf23ma1rpOViF7wIRfJm2FGbONBNJ5zlktpkJd+ErAPtQhNYnm1uIMFEVD
         H6tkn9iuwqUZNtEYOaWbMMS9aOqZxvnGHhYA1lX/R/XtxwWPCkRyr+BoMhjPJ+1Gup9a
         1tQVY6gOnoZzRy071N8rWOtdmRB8Fb08l9Dk7BQjVqiIHKGQKoXYCuhZrj/+7SqzIcNc
         svFw==
X-Gm-Message-State: AOJu0Yz0ILq+COarmCrOK5zsdwEfq3UB4chiUMIh3qG3cH8doV/UZmkm
	HMlceQ/ynbHndkNx6B+JXQO+Rg5sLv18Wm/c9QF0sxLFT4euGT+WxKbbfacUiA==
X-Gm-Gg: AZuq6aLVmV4VId/6H5BFHk6YtfKTmE+OC5WH58UT3c5dIN2iYoQ5nO+AdaLPZfK9TS2
	u7nimTFjFkFTpVZelVtn6ltC0xYzibwy6Qx4dVgVJkPXlfg9w8mDokuTmGCfnUCJ43lkcWLYqwD
	Q3L6pkuhZwZ5+HbLuiI7Il4G4YSTqZ2/9llvPSnG97I2kWmESaHPqSYmr6Zn/TIgiW/kHWDEcyn
	YWR2yIjK576iKmG3XH43z0OkPzAN45KdgkJMEdqKLM/HtJzmgHYrhC+WguHIWB8Jd+dqjKsMTfc
	/kBAd3H250fFSEfeE/d6NWUdPms5DZuFn+EiKBoF8V95If/nrUgX8Hyj6fKwcLO0WizBSI97ZB0
	jW8ddy4Y9OdlXBqFxTo+ocYB80RA5EvZy3Oc7rS5zHdGFgH1SnEN8+bIQ2jITxvw20zph4KQYu0
	l+GzS5E9920Bc690FWZZgJ9Y1razTREI1hvtt7/C1szaoIj1F+X3E5ucAflmdeKtyfT8yf02iAE
	pGk
X-Received: by 2002:a5d:4c42:0:b0:436:8f7e:a479 with SMTP id ffacd0b85a97d-4396f15b32cmr644241f8f.17.1771604357369;
        Fri, 20 Feb 2026 08:19:17 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v5 00/14] xen/riscv: introduce vtimer related things
Date: Fri, 20 Feb 2026 17:18:55 +0100
Message-ID: <cover.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch series introduces the components necessary to implement a virtual
timer (vtimer).

Since the SSTC extension is not supported by Xen, an emulated (SBI-based)
timer is required. To address this, a virtual timer built on Xen’s timer
infrastructure is introduced, with save/restore support and SBI-based
programming.

To provide full guest software–based timer support, the following components
are also introduced:
- arch_vcpu_{create,destroy}() to initialize the virtual timer and other
  vCPU-related state not directly tied to timer functionality. As part of this
  work, struct arch_vcpu is introduced to describe the internal state of a
  virtual CPU, along with vcpu_csr_init() to initialize the relevant CSR state.
- Support functions required by the virtual timer, including:
  - vcpu_kick(), and a stub implementation of smp_send_event_check_mask()
    (since SMP is not yet supported in Xen), which is used by vcpu_kick().
  - Support for guest timer programming via interception of the SBI legacy
    SET_TIMER call from guest.
  - Implement reprogram_timer() using introduced sbi_set_timer().
  - Initial lockless tracking of pending vCPU interrupts using atomic bitmaps.
- Handling of hypervisor timer interrupts and dispatch into Xen’s generic timer
  softirq.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2339388491
---
Changes in v5:
 - Merged to upstream/staging:
     xen/riscv: implement arch_vcpu_{create,destroy}()
     xen/riscv: build setup code as .init
 - Rebase this patch series on top of:
     https://lore.kernel.org/xen-devel/5756356294dc066d835269334d0f3347fe24cec4.1771504676.git.oleksii.kurochko@gmail.com/T/#u
   There is no logical dependency, only the potential merge conflict question.
 - Address comments from ML.
---
Changes in v4:
 - Merged to upstream/staging:
     xen/riscv: avoid reading hstateen0 when Smstateen is not implemented
 - Address other comments from ML.
---
Changes in v3:
 - Squash patch "xen/riscv: introduce struct arch_vcpu" into other
   patches of the patch series.
 - Merged to staging:
   - xen/riscv: implement stub for smp_send_event_check_mask()
 - Address other comments from ML.
---
Changes in v2:
 - Add consumer part of tracking of pending vCPU interrupts.
 - Split patch "xen/riscv: init tasklet subsystem" to two.
 - Patches were acked:
   - xen/riscv: introduce vcpu_kick() implementation
   - xen/riscv: implement SBI legacy SET_TIMER support for guests
 - All other changes are patch-specific. Please check them.
---

Oleksii Kurochko (14):
  xen/riscv: detect and store supported hypervisor CSR bits at boot
  xen/riscv: implement vcpu_csr_init()
  xen/riscv: introduce tracking of pending vCPU interrupts, part 1
  xen/riscv: introduce tracking of pending vCPU interrupts, part 2
  xen/time: move ticks<->ns helpers to common code
  xen/riscv: introduce basic vtimer infrastructure for guests
  xen/riscv: introduce vcpu_kick() implementation
  xen/riscv: add vtimer context switch helpers
  xen/riscv: implement SBI legacy SET_TIMER support for guests
  xen/riscv: introduce sbi_set_timer()
  xen/riscv: implement reprogram_timer() via SBI
  xen/riscv: handle hypervisor timer interrupts
  xen/riscv: init tasklet subsystem
  xen/riscv: implement sync_vcpu_execstate()

 xen/arch/arm/include/asm/time.h             |   3 -
 xen/arch/arm/time.c                         |  11 -
 xen/arch/arm/vtimer.c                       |   2 +-
 xen/arch/riscv/Makefile                     |   1 +
 xen/arch/riscv/domain.c                     | 231 +++++++++++++++++++-
 xen/arch/riscv/include/asm/Makefile         |   1 -
 xen/arch/riscv/include/asm/current.h        |   2 +
 xen/arch/riscv/include/asm/domain.h         |  33 +++
 xen/arch/riscv/include/asm/perfc_defn.h     |   3 +
 xen/arch/riscv/include/asm/riscv_encoding.h |   2 +
 xen/arch/riscv/include/asm/sbi.h            |  22 ++
 xen/arch/riscv/include/asm/setup.h          |   2 +
 xen/arch/riscv/include/asm/time.h           |   5 -
 xen/arch/riscv/include/asm/vtimer.h         |  20 ++
 xen/arch/riscv/sbi.c                        |  40 +++-
 xen/arch/riscv/setup.c                      |   5 +
 xen/arch/riscv/stubs.c                      |  20 --
 xen/arch/riscv/time.c                       |  44 ++++
 xen/arch/riscv/traps.c                      |  20 ++
 xen/arch/riscv/vsbi/legacy-extension.c      |   6 +
 xen/arch/riscv/vtimer.c                     |  86 ++++++++
 xen/include/xen/time.h                      |  11 +
 22 files changed, 526 insertions(+), 44 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237337.1539724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTDz-0001My-3K; Fri, 20 Feb 2026 16:19:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237337.1539724; Fri, 20 Feb 2026 16: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 1vtTDy-0001M4-SW; Fri, 20 Feb 2026 16:19:26 +0000
Received: by outflank-mailman (input) for mailman id 1237337;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTDx-0000QF-C1
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:25 +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 eb99eeb8-0e77-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 17:19:24 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-43626796202so2065397f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:24 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb99eeb8-0e77-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604363; x=1772209163; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=h8rDhEwL+Si1TVzLRrIFs43T5seQJmCokC0zj36jVKw=;
        b=Mltsu189idcgA+MU02SEnGj3vyjtiWKRvclUcij6eoSzIwMucd0oORU1UHNGSjCFnV
         V6x/O0eNZ59jw4GOIz3Es3tXsJejF+78WzwGZ7qaSw468uVeFeYrEerCaLtWsAy127pA
         B1WGFGQECanCs01n5luu+HpbHzpKHwAyi079P6BzWH9GDpPMY8r3AdNoAsdWpNTBEYaF
         ppaje8orhrOvgGWl+ZCbL38g/8OJzzPMHGsFJvORjfWYiP3NNa3l+cOJxCdO4OzkI7DK
         qMz8Mjh8OAUubUObV2rVmrtYcF9vCyxTUy38c930o5zLCbRGYxpg+Ti0B0dohyey3MnT
         z9Jg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604363; x=1772209163;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=h8rDhEwL+Si1TVzLRrIFs43T5seQJmCokC0zj36jVKw=;
        b=b7fcRwNRR+pxGhaVqPlax3e+rzavO9yD4oq970JrwTnnhzHo0YuNJVklxy8RvYt68t
         yS3UepytCWF8uyVnz9Qrg1mi7XJl5NuuyZBzm0gj7Piv0RzuFO/rSLhCMlXUEiH8TSeN
         rqLZK0Jp0RulrwAzONA62A3CE92VzFO5hUO+1rmDeu2QMTCYlXHCvmOpHbFWTy0Lus5B
         DkAfl0gmmkactOx8p9oAGn5oLJFBG034LjA8iXG4jPSBq7ndewAB2P4v2VWNaNoGFzgy
         /5ipYKIpqc0k6lx4L0tK613TC93UPSOuNX0EM+q0MkYHmljmmHQdoctjyDv4MSCaGKA4
         Bd9Q==
X-Gm-Message-State: AOJu0YwigyabrzhwfbLnOdwSSQ4i0xcXmGZbWqPyNB5Enw9ejkovXUOs
	2UmTA/aIu7ZBahRcvKplUQY44YzWag7bN5uQdbzKUULpeP2E6g3Rzi6XcMf96w==
X-Gm-Gg: AZuq6aLUefhGKddeaHsjadW6KuJYdrfasjaIywX6HH79VfIghI50T1E+KE4ibNCS3Ch
	a1MA9aN1FCZ6bkYw6BToGwk2CnA8wRWJI1WbYgPHf++ytM6tq26gHd2BEF93el1ReEVnBMx6v+s
	xDI+irNvMksIA/ua0tOt3DenK88HuovPzbpTKMIjwhjS/j4Emx/bCL4+mnO1sAJnIVXvdWHFwZ3
	1f3kd1zidyg/atoT/eHgIuVLjZRrHkIeXP2ZnmwbiLlk6Atzw63zu11zIK0VDGXUyaXJ94Wks/v
	QxzNWrAlGl5+q4dJ7RuJD/Tyi46ARS0AA84/Rn6JOzzo7CSJ2rd+UyDDKti6ZaBkLAHMJqfd/zm
	GCrejBBRlGf0euoZ14GSEI1hoL4h8NC41QcBUAwSrKj4pM94uDFB+S0axNJzupjufJkSDPp6oY6
	Vz03z7YlZ5OKLOgTttLmkSuEDkEumDsElrHtn/UXEc91wjk1OKkulPj3rNf8eP4y3hwGninw==
X-Received: by 2002:a05:6000:40dc:b0:437:7268:8e1e with SMTP id ffacd0b85a97d-4396f181294mr829953f8f.51.1771604363451;
        Fri, 20 Feb 2026 08:19:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v5 05/14] xen/time: move ticks<->ns helpers to common code
Date: Fri, 20 Feb 2026 17:19:00 +0100
Message-ID: <83299215f631fced495d25d0b11ea5449cf9d6d1.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

ticks_to_ns() and ns_to_ticks() are not architecture-specific, so provide a
common implementation that is more resilient to overflow than the historical
Arm version. This is not a practical issue for Arm, as the latest ARM ARM
that timer frequency should be fixed at 1 GHz and older platforms used much
lower rates, which is shy of 32-bit overflow. As the helpers are declared
as static inline, they should not affect x86, which does not use them.

On Arm, these helpers were historically implemented as out-of-line functions
because the counter frequency was originally defined as static and unavailable
to headers [1]. Later changes [2] removed this restriction, but the helpers
remained unchanged. Now they can be implemented as static inline without any
issues.

Centralising the helpers avoids duplication and removes subtle differences
between architectures while keeping the implementation simple.

Drop redundant <asm/time.h> includes where <xen/time.h> already pulls it in.

No functional change is intended.

[1] ddee56dc2994 arm: driver for the generic timer for ARMv7
[2] 096578b4e489 xen: move XEN_SYSCTL_physinfo, XEN_SYSCTL_numainfo and
                      XEN_SYSCTL_topologyinfo to common code

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v5:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - Add Reviewed-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Move ns_to_ticks() and ticks_to_ns() to common code.
---
 xen/arch/arm/include/asm/time.h   |  3 ---
 xen/arch/arm/time.c               | 11 -----------
 xen/arch/arm/vtimer.c             |  2 +-
 xen/arch/riscv/include/asm/time.h |  5 -----
 xen/arch/riscv/time.c             |  1 +
 xen/include/xen/time.h            | 11 +++++++++++
 6 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/time.h
index 49ad8c1a6d47..c194dbb9f52d 100644
--- a/xen/arch/arm/include/asm/time.h
+++ b/xen/arch/arm/include/asm/time.h
@@ -101,9 +101,6 @@ extern void init_timer_interrupt(void);
 /* Counter value at boot time */
 extern uint64_t boot_count;
 
-extern s_time_t ticks_to_ns(uint64_t ticks);
-extern uint64_t ns_to_ticks(s_time_t ns);
-
 void preinit_xen_time(void);
 
 void force_update_vcpu_system_time(struct vcpu *v);
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index cc3fcf47b66a..a12912a106a0 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -27,7 +27,6 @@
 #include <asm/cpufeature.h>
 #include <asm/platform.h>
 #include <asm/system.h>
-#include <asm/time.h>
 #include <asm/vgic.h>
 
 uint64_t __read_mostly boot_count;
@@ -47,16 +46,6 @@ unsigned int timer_get_irq(enum timer_ppi ppi)
     return timer_irq[ppi];
 }
 
-/*static inline*/ s_time_t ticks_to_ns(uint64_t ticks)
-{
-    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
-}
-
-/*static inline*/ uint64_t ns_to_ticks(s_time_t ns)
-{
-    return muldiv64(ns, 1000 * cpu_khz, SECONDS(1));
-}
-
 static __initdata struct dt_device_node *timer;
 
 #ifdef CONFIG_ACPI
diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c
index d2124b175521..2e85ff2b6e62 100644
--- a/xen/arch/arm/vtimer.c
+++ b/xen/arch/arm/vtimer.c
@@ -12,13 +12,13 @@
 #include <xen/lib.h>
 #include <xen/perfc.h>
 #include <xen/sched.h>
+#include <xen/time.h>
 #include <xen/timer.h>
 
 #include <asm/cpregs.h>
 #include <asm/div64.h>
 #include <asm/irq.h>
 #include <asm/regs.h>
-#include <asm/time.h>
 #include <asm/vgic.h>
 #include <asm/vreg.h>
 #include <asm/vtimer.h>
diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm/time.h
index 1e7801e2ea0e..be3875b9984e 100644
--- a/xen/arch/riscv/include/asm/time.h
+++ b/xen/arch/riscv/include/asm/time.h
@@ -24,11 +24,6 @@ static inline cycles_t get_cycles(void)
     return csr_read(CSR_TIME);
 }
 
-static inline s_time_t ticks_to_ns(uint64_t ticks)
-{
-    return muldiv64(ticks, MILLISECS(1), cpu_khz);
-}
-
 void preinit_xen_time(void);
 
 #endif /* ASM__RISCV__TIME_H */
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index e962f8518d78..2c7af0a5d63b 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -4,6 +4,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/sections.h>
+#include <xen/time.h>
 #include <xen/types.h>
 
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
diff --git a/xen/include/xen/time.h b/xen/include/xen/time.h
index fe0d7a578a99..2185dd26a439 100644
--- a/xen/include/xen/time.h
+++ b/xen/include/xen/time.h
@@ -8,6 +8,7 @@
 #ifndef __XEN_TIME_H__
 #define __XEN_TIME_H__
 
+#include <xen/muldiv64.h>
 #include <xen/types.h>
 #include <public/xen.h>
 
@@ -75,6 +76,16 @@ extern void send_timer_event(struct vcpu *v);
 
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds);
 
+static inline s_time_t ticks_to_ns(uint64_t ticks)
+{
+    return muldiv64(ticks, MILLISECS(1), cpu_khz);
+}
+
+static inline uint64_t ns_to_ticks(s_time_t ns)
+{
+    return muldiv64(ns, cpu_khz, MILLISECS(1));
+}
+
 #include <asm/time.h>
 
 #endif /* __XEN_TIME_H__ */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237336.1539719 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTDy-0001K0-PE; Fri, 20 Feb 2026 16:19:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237336.1539719; Fri, 20 Feb 2026 16: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 1vtTDy-0001Jq-Lb; Fri, 20 Feb 2026 16:19:26 +0000
Received: by outflank-mailman (input) for mailman id 1237336;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTDw-0000Q4-SQ
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:24 +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 eaea89bd-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:23 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48370174e18so13579565e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:23 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.21
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eaea89bd-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604362; x=1772209162; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9kLRmTM6oplx9Q9iY0GyvVxh5tBWM0eKNh9+e6RhQFU=;
        b=X9lulydD7EabLKOHfTb70CevckIMbgjL3X4pAEZGc0M8MfBXpTCnN7o78WHSE7NqrE
         vEyPtIEc4FdxZjYLVj+rHe3EIMz5+WC7km0qaifH10AvAM6IAVhzzdQaQmgshzscylom
         mrHJkIly/w+xf4mvVynt0ASm0+ICE6JHWEX0m71pkRGU9rie6wypobKPFqeHTyTAjvHa
         Yka8MHlW/7TuopLY5eV26rJ5jbDUvOfYsMvSNxyZ+ZwKFc0B7veAtEGOmLUDvd+bVhvf
         7lL8jec44eRqlPkL1Uas3wrHd6GlThncXANA/qfj1V1YqebFZkTySZ1rzerHiwEAogPr
         VMKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604362; x=1772209162;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9kLRmTM6oplx9Q9iY0GyvVxh5tBWM0eKNh9+e6RhQFU=;
        b=LgYZX7hXYdz3UjvhJo8xW/K5kQaSpwLBWzw6/sPcKgz1sXN+igi3fkajRX1WwJPgMZ
         qK6ZaTeIvYcFmVm+7Vbzlur28RDGJ0SwaJsdlI+pZfwpRnwP4P0No9lTEqP/3gkgu5Ku
         OeWBjuVz8DblozgX9b00xVtcvdy62FYHWM59pqQgDy7IJaWwWFcsM1eCebiIcWSjLAL6
         0dDBF/sx8MqY0X2KmXM4mExFT0W5EPYuPmoBmom6eUlpgR7paiCeHO4+M5AcUmOR5600
         LCEnAfxeynLq/2ydiRcZQrhdXe6ZpCBi5TTYD52sIvQnUihYtRI/fWGoN5+d52V9giiO
         Rd+g==
X-Gm-Message-State: AOJu0YzfI4iJQzO8RmAXWDyWFinjRNJ9wnsot0HAE3FdrwVbuOqrz3sY
	ZpEB7+BVu46G2GsCMfPM8aR/KjM4BoTwCdAf4TKKIb8VnaEERfW4jQAubjIKgQ==
X-Gm-Gg: AZuq6aIoU+Ok082Nwo5s0qtcTMugg1BdiTJyuAxv2lhVw8adXGY6D3lIlwAjxYwxEdq
	R7DHp+rhujVed2qscszZfdFT0Zry+zoqIsyvS0C8l9fMSzcN/NPGAAEY1HEZPHKF+OhgjhlW2R8
	BzlhLlpWBKES9FyokUEVAAQgPoZeQRov3JPqwuvPfoCBmi3TGp52d2fADMShAfGyZN5G3uCZiiI
	ZMdynb6tTWZvW+c0pLTS3jrKVjN7EY0pkNKlcT7hB2TqWRFVcCUWjQ/fm9lmovxAGkr4Crm/UfM
	KcJDhXeNtfr3IEGXMWS1Dv222iJKxdblNcdzTTuViBGr1D+UHNZmrNjcaj8frdgvIIsa9AJ5DWZ
	KFI/6hOlD+Gu5XGYikrgGboO8roSFRm5/+9zbzYu8PzqXy/iEzheUoYZsvjM1glxxlXiq1IonSj
	xvIxfnCPxIlsCUpLbJDEw/JjtX8AgJCA3UNj24Jc9F7/KxMppiRlzDeWeS3qALdBc9BA==
X-Received: by 2002:a05:600c:6296:b0:47a:81b7:9a20 with SMTP id 5b1f17b1804b1-483a95c6774mr1480155e9.9.1771604362296;
        Fri, 20 Feb 2026 08:19:22 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 04/14] xen/riscv: introduce tracking of pending vCPU interrupts, part 2
Date: Fri, 20 Feb 2026 17:18:59 +0100
Message-ID: <0d8d0f2240806a4bfaee4c5f395d6220ded00c18.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch is based on Linux kernel 6.16.0.

Add the consumer side (vcpu_flush_interrupts()) of the lockless pending
interrupt tracking introduced in part 1 (for producers). According, to the
design only one consumer is possible, and it is vCPU itself.
vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due
to the lack of functionality) before the hypervisor returns control to the
guest.

Producers may set bits in irqs_pending_mask without a lock. Clearing bits in
irqs_pending_mask is performed only by the consumer via xchg() (with aquire
semantics). The consumer must not write to irqs_pending and must not act on
bits that are not set in the mask. Otherwise, extra synchronization should
be provided.
The worst thing which could happen with such approach is that a new pending
bit will be set to irqs_pending bitmap during update of hvip variable in
vcpu_flush_interrupt() but it isn't problem as the new pending bit won't
be lost and just be proceded during the next flush.

As AIA specs introduced hviph register which would want to be updated when
guest related AIA code vcpu_update_hvip() is introduced instead of just
open-code it in vcpu_flush_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - Reorder the defintions of local variables (mask, val, hvip) in
   vcpu_flush_interrupts(). Also, drop a blank line between them.
 - Move #ifdef CONFIG_RISCV_32 above the comment in vcpu_flush_interrupts()
   and align the comment properly.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v4:
 - Move defintion of hvip local variable to narrower space in
   vcpu_flush_interrupts().
 - Use initializers for mask and val variables.
 - Use local variable c as an argument of vcpu_flush_interrupts() in
   check_for_pcpu_work().
---
Changes in v3:
 - Update the error message in case of RV32 from "hviph" to v->arch.hviph.
 - Make const argument of vcpu_update_hvip.
 - Move local variables mask and val inside if() in vcpu_flush_interrupts().
 - Call vcpu_flush_interrupts() in check_pcpu_work().
 - Move vcpu_update_hvip() inside if() in vcpu_flush_interrupts().
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c             | 30 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h |  1 +
 xen/arch/riscv/traps.c              |  2 ++
 3 files changed, 33 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 335c41f3e5a1..636349c8c7e8 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -215,6 +215,36 @@ void vcpu_sync_interrupts(struct vcpu *v)
 #endif
 }
 
+static void vcpu_update_hvip(const struct vcpu *v)
+{
+    csr_write(CSR_HVIP, v->arch.hvip);
+}
+
+void vcpu_flush_interrupts(struct vcpu *v)
+{
+    if ( ACCESS_ONCE(v->arch.irqs_pending_mask[0]) )
+    {
+        unsigned long mask = xchg(&v->arch.irqs_pending_mask[0], 0UL);
+        unsigned long val = ACCESS_ONCE(v->arch.irqs_pending[0]) & mask;
+        register_t *hvip = &v->arch.hvip;
+
+        *hvip &= ~mask;
+        *hvip |= val;
+
+        vcpu_update_hvip(v);
+    }
+
+#ifdef CONFIG_RISCV_32
+    /*
+     * Flush AIA high interrupts.
+     *
+     * It is necessary to do only for CONFIG_RISCV_32 which isn't
+     * supported now.
+     */
+#   error "Update v->arch.hviph"
+#endif
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index b7241f2a79b1..2a454bfc083c 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -116,6 +116,7 @@ int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
 int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
 
 void vcpu_sync_interrupts(struct vcpu *v);
+void vcpu_flush_interrupts(struct vcpu *v);
 
 #endif /* ASM__RISCV__DOMAIN_H */
 
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 551f886e3a69..244264c92a79 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -175,6 +175,8 @@ static void check_for_pcpu_work(void)
 
     vcpu_sync_interrupts(curr);
 
+    vcpu_flush_interrupts(curr);
+
     p2m_handle_vmenter();
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237338.1539733 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTDz-0001Uz-Nw; Fri, 20 Feb 2026 16:19:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237338.1539733; Fri, 20 Feb 2026 16: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 1vtTDz-0001Tw-CC; Fri, 20 Feb 2026 16:19:27 +0000
Received: by outflank-mailman (input) for mailman id 1237338;
 Fri, 20 Feb 2026 16: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTDy-0000QF-8g
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:26 +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 ec58b540-0e77-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 17:19:25 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48379a42f76so17969715e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:25 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ec58b540-0e77-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604365; x=1772209165; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vEV8dCoZsWR/xbos3xux/u5WeUz+dOOsBwMZ7zxnQ6E=;
        b=OwU25nveJCZFvqy+Uz5gvC0VQQqFjKWyquipLJmfvhrgCMvqsPW9qIobD3BhIWSHrp
         vYC6OrFXcDgGKwziAmXEkZy5v2JqkYOySN2yXN/+omUmgBwc5vo66BBGW6s5Yn2Ad8NV
         mD4lFfm/A201zHKmT4+TtlJA3+gxhmbyhbRNLYHowreN7vVMlir/TUIFLnvIXCdgYNCj
         nZoERDBkn6Yulfgk1oQmXtKFUgbmdacHGpGuyeMOcy316jrIr2qd4pmqmmYkhIhZK2G+
         fX9RxMROyUXg/CvWSEjuT5XZHYlPTi/MlXCNFLXRHAaQR9NamWN1ZOZnOOlxCycx4OvD
         loIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604365; x=1772209165;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vEV8dCoZsWR/xbos3xux/u5WeUz+dOOsBwMZ7zxnQ6E=;
        b=AMY0eEPT5Og+Ume2NlVWGaRLO2gdOi9uraimkRK7eBpP1xEv5pbo8FbGJQHWKBVPLG
         2thgcfONZFXDndPQPsHwO1N/5zRV6tjA6C1P48v2XQHEwn9UT4/bUHVvjSu7JPeTzYNQ
         Gru7FrWTJFKGm0srrtHcyYwv5y2BwBD/G75OWctGdUGESZsQ9X1I+T/LIf/0gkqTud0r
         C6EAVU2+Ma4p0sApdpOIex+67C0TNh+dtmNjPdypb3sb7lRJ7oIEeIkQ6AP/LShOvibU
         mQOeBW+BYXM6kKm4zzeWDIzVaxHZN9Lvu7XsTq4texuCKU/Ho4b/LcDVM8VNxqGdp+qa
         UBtg==
X-Gm-Message-State: AOJu0YzlHVYOo7fPXLlFNpWRi7Yrfw++RxfOEi9m6blNYfvj8LjzfjcQ
	hSCKJ6QfpPkxtcUL2sm5QdkfgDuLgO5Xb/Wqp79hy7nhGoYg84GbtMPmS26a0g==
X-Gm-Gg: AZuq6aKTD92jjQ3z4KFZM9svAnXp/52n9T79gB1/1G1udBXWn0oz5w/IM4A/d27a29N
	XR5OC2F7i+wlNc5GCve/exlKPmeQeZvQkGgFrk7TMm6qZjyYeVCrEBPXdPzUKIkUwmSIbU/h8Ol
	/Droc2STAfUq6JsWunQKEH6XzNqFuG6l9RhOr3n3urH4VF2Xvnlluy4PZkAAledO4/6cu56/gxh
	WmDfn+hdn1ptIH29nmcBBV++d6DusHxLSEqx08M6bpfvZI9lIxRGpXu+DMtmwW26PqiztM0JATg
	dpYop7L13ib7semZ6J2BJRjbHM7qgDwTLn1NQiXlhofxa8csZPIvhJEixYWEsLPlLuP8wawWEZK
	mwAO4J09kprfbQLno1dRTzstMl9pNMx6k1lQToc9PBq76btGn0ydcK7/7/gxl1b9Wkx8eFuHvTl
	Y/sdZiK4WVrr7bNKyA9JbKvk3X4RC0cfJtlpuBpT0aZN9JVwdHslyNAHAtjZWKJcXUfQ==
X-Received: by 2002:a05:600c:4454:b0:483:80b0:b245 with SMTP id 5b1f17b1804b1-483a95f89c2mr1243105e9.9.1771604364473;
        Fri, 20 Feb 2026 08:19:24 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 06/14] xen/riscv: introduce basic vtimer infrastructure for guests
Date: Fri, 20 Feb 2026 17:19:01 +0100
Message-ID: <79aa5e8baa32ef4dd2ce4b586ba265b24fce58a8.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Lay the groundwork for guest timer support by introducing a per-vCPU
virtual timer backed by Xen’s common timer infrastructure.

The virtual timer is programmed in response to the guest SBI
sbi_set_timer() call and injects a virtual supervisor timer interrupt
into the vCPU when it expires.

While a dedicated struct vtimer is not strictly required at present,
it is expected to become necessary once SSTC support is introduced.
In particular, it will need to carry additional state such as whether
SSTC is enabled, the next compare value (e.g. for the VSTIMECMP CSR)
to be saved and restored across context switches, and time delta state
(e.g. HTIMEDELTA) required for use cases such as migration. Introducing
struct vtimer now avoids a later refactoring.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - Drop copyright line from asm/vtimer.h.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v4:
 - Add vcpu_timer_destroy() to void arch_vcpu_destroy().
---
Changes in v3:
 - use one container_of() to get vcpu instead of two container_of()s.
---
Changes in v2:
 - Drop domain_vtimer_init() as it does nothing.
 - Drop "struct vcpu *v;" from struct vtimer as it could be taken
   from arch_vcpu using container_of().
 - Drop vtimer_initialized, use t->status == TIMER_STATUS_invalid
   instead to understand if timer was or wasn't initialized.
 - Drop inclusion of xen/domain.h as xen/sched.h already includes it.
 - s/ xen/time.h/ xen.timer.h in vtimer.c.
 - Drop ULL in if-conidtion in vtimer_set_timer() as with the cast
   it isn't necessary to have suffix ULL.
 - Add migrate timer to vtimer_set_timer() to be sure that vtimer
   will occur on pCPU it was ran, so the signalling to that vCPU
   will (commonly) be cheaper.
 - Check if the timeout has already expired and just inject the event
   in vtimer_vtimer_set_timer().
 - Drop const for ticks argument of vtimer_set_timer().
 - Merge two patches to one:
   - xen/riscv: introduce vtimer
   - xen/riscv: introduce vtimer_set_timer() and vtimer_expired()
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/domain.c             | 10 +++-
 xen/arch/riscv/include/asm/domain.h |  3 ++
 xen/arch/riscv/include/asm/vtimer.h | 17 +++++++
 xen/arch/riscv/vtimer.c             | 71 +++++++++++++++++++++++++++++
 5 files changed, 100 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index bc47e83b26d7..ffbd7062e214 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -22,6 +22,7 @@ obj-y += traps.o
 obj-y += vmid.o
 obj-y += vm_event.o
 obj-y += vsbi/
+obj-y += vtimer.o
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 636349c8c7e8..7027b5e9aa20 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -10,6 +10,7 @@
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
+#include <asm/vtimer.h>
 
 struct csr_masks {
     register_t hedeleg;
@@ -120,11 +121,14 @@ int arch_vcpu_create(struct vcpu *v)
 
     vcpu_csr_init(v);
 
+    if ( (rc = vcpu_vtimer_init(v)) )
+        goto fail;
+
     /*
-     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * As interrupt controller (IC) is not yet implemented,
      * return an error.
      *
-     * TODO: Drop this once the vtimer and IC are implemented.
+     * TODO: Drop this once IC is implemented.
      */
     rc = -EOPNOTSUPP;
     goto fail;
@@ -138,6 +142,8 @@ int arch_vcpu_create(struct vcpu *v)
 
 void arch_vcpu_destroy(struct vcpu *v)
 {
+    vcpu_timer_destroy(v);
+
     vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
 }
 
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 2a454bfc083c..a30ee450b36a 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -8,6 +8,7 @@
 #include <public/hvm/params.h>
 
 #include <asm/p2m.h>
+#include <asm/vtimer.h>
 
 struct vcpu_vmid {
     uint64_t generation;
@@ -49,6 +50,8 @@ struct arch_vcpu {
 
     struct cpu_info *cpu_info;
 
+    struct vtimer vtimer;
+
     register_t hcounteren;
     register_t hedeleg;
     register_t hideleg;
diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
new file mode 100644
index 000000000000..111863610a92
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM__RISCV__VTIMER_H
+#define ASM__RISCV__VTIMER_H
+
+#include <xen/timer.h>
+
+struct vtimer {
+    struct timer timer;
+};
+
+int vcpu_vtimer_init(struct vcpu *v);
+void vcpu_timer_destroy(struct vcpu *v);
+
+void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
+
+#endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
new file mode 100644
index 000000000000..32d142bcdfcd
--- /dev/null
+++ b/xen/arch/riscv/vtimer.c
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+#include <xen/timer.h>
+
+#include <asm/vtimer.h>
+
+static void vtimer_expired(void *data)
+{
+    struct vtimer *t = data;
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+
+    vcpu_set_interrupt(v, IRQ_VS_TIMER);
+}
+
+int vcpu_vtimer_init(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    init_timer(&t->timer, vtimer_expired, t, v->processor);
+
+    return 0;
+}
+
+void vcpu_timer_destroy(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    if ( t->timer.status == TIMER_STATUS_invalid )
+        return;
+
+    kill_timer(&v->arch.vtimer.timer);
+}
+
+void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
+{
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+    s_time_t expires = ticks_to_ns(ticks - boot_clock_cycles);
+
+    vcpu_unset_interrupt(v, IRQ_VS_TIMER);
+
+    /*
+     * According to the RISC-V sbi spec:
+     *   If the supervisor wishes to clear the timer interrupt without
+     *   scheduling the next timer event, it can either request a timer
+     *   interrupt infinitely far into the future (i.e., (uint64_t)-1),
+     *   or it can instead mask the timer interrupt by clearing sie.STIE CSR
+     *   bit.
+     */
+    if ( ticks == ((uint64_t)~0) )
+    {
+        stop_timer(&t->timer);
+
+        return;
+    }
+
+    if ( expires < NOW() )
+    {
+        /*
+         * Simplify the logic if the timeout has already expired and just
+         * inject the event.
+         */
+        stop_timer(&t->timer);
+        vcpu_set_interrupt(v, IRQ_VS_TIMER);
+
+        return;
+    }
+
+    migrate_timer(&t->timer, smp_processor_id());
+    set_timer(&t->timer, expires);
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237335.1539710 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTDx-000145-K3; Fri, 20 Feb 2026 16:19:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237335.1539710; Fri, 20 Feb 2026 16:19: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 1vtTDx-00013H-ET; Fri, 20 Feb 2026 16:19:25 +0000
Received: by outflank-mailman (input) for mailman id 1237335;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTDv-0000QF-Gh
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19: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 ea46f877-0e77-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 17:19:22 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-436234ef0f0so1524683f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:22 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ea46f877-0e77-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604361; x=1772209161; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wQxS5vKkI4AgCcQGHJP5Zmtdr2xZpVQrWww/XfYYZbE=;
        b=KUaHzIJwqWeNJK8m3t7a45AB7J41Bg5L91JEkQrRYDN3GLtfgv+j7Se4Tq8NbaDWGJ
         NxywdHRwXmwjE8OvTCENGXSgfIlxcoLLOFcXHvCsDDHVW9a07SOnCZ6q6NpaX5Ac3iq/
         pclZsrJ9aIu95lbwUWtpTUF3I7zjRs824hUVxz2z6zDI2g2yqlK3FJb2apJQeoswtyTc
         SIchrff04PMMysxIew/RKSDAfYmMUMYbtsYa6Tz+zwAYOXg63lHICyP6qdXbullleCSm
         QpZE7PmrglLdfT5NX7YcbMPkvPIFvOhONiayadqVyUWRwkKqJDXP3bNBlgHrzjWqkx8l
         k6zQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604361; x=1772209161;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wQxS5vKkI4AgCcQGHJP5Zmtdr2xZpVQrWww/XfYYZbE=;
        b=rVpcYHrBdKBdtToznXK1dYfmQsI36jxAwuFg2FxsMad2VlcL84ZvVQn8KpPRYuBxmg
         0UsiWQo96G/qOYXmCKzBbAZ7wCegMVD3xFWOPqEEysF+f4uY/bdwyhDZCQoz1XD4T56W
         a1mBpzX9XAagoaK/rdespNIKEp/vXthIs9Cx6cxpFmj4VB0/R+waD6G7pQi2H5Akuw2F
         awFDj1Q9Cdg/3hdLXzEHEcO4vtL5NOMQDBshjt1fQV+i7RFNWPGNaJUOSeHhIqfH9Fdc
         +Eh3qX7hH+7gvoC5FNZZPeOgtIRTupLLasXw/xunMYAGBrETwdmbQoyQhWrH3feKF/8c
         Qbew==
X-Gm-Message-State: AOJu0YwXXE4TuqBx7v/8EV5Vb+W3+PlD5IYolD/71p9+ggvOuRNKXi7/
	ZkBQ6VqzNOqwYd/OVyQhvdI2MDuk9OwwLJb/KFdt1LofCsLS/OT/xT3/jYZofw==
X-Gm-Gg: AZuq6aJd7NiPmIs+g9W0zZp25sj0RlDFVXBpZh4NHQkr1EZiW5dUmTPudK14fjg+WyT
	w+BpxfxC2WZK6pcvmTdHVBLGXRfnA9kIPVUQVqiIf0IoW2nrkEY5TLgxmuEirunObfEcbmF0Akd
	pZ8/SwkSEpy+lzuzpLk4kTw1QqH4CLf1gLafthcS4hK8IzHaZnDdZYG8BbnO+N7vF7oJKAiJ19f
	wDgmoZTlz/o7x+y78R8EFbGvIFc1PPzwj86BFmiQgbMcO7AXFLicJ1aS0Uq5EVLqbh9C16qAC90
	maP166FoxoSv3/evIZWIQ5VYdcrtyg/Dk5D7levlhD/GOMfFciZbjYFH+sGpwYZiQdU2Q3thowg
	/2h1OoK3e8IyQk3xlTMvOefr5Em12aMlLD387Kgoke51ez8jh58PfUmpfPB4o6y4V7ZDDO0N3oA
	2rVO1KSn1Vka3r5Jt0vjvnRcs4uiIZ0XGm/FXiOq6gQmxs1/A7W6qDiKXM27HPnpH1lk1wBJCBm
	B40jrqO
X-Received: by 2002:a05:6000:1aca:b0:436:3707:2be5 with SMTP id ffacd0b85a97d-4396f166a38mr820160f8f.15.1771604361146;
        Fri, 20 Feb 2026 08:19:21 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 03/14] xen/riscv: introduce tracking of pending vCPU interrupts, part 1
Date: Fri, 20 Feb 2026 17:18:58 +0100
Message-ID: <8c2259991754f219ba030606f39d629eb365b01c.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Based on Linux kernel v6.16.0.
Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
we want to guarantee that if a bit in irqs_pending_mask is obversable
that the correspondent bit in irqs_pending is observable too.

Add lockless tracking of pending vCPU interrupts using atomic bitops.
Two bitmaps are introduced:
 - irqs_pending — interrupts currently pending for the vCPU
 - irqs_pending_mask — bits that have changed in irqs_pending

The design follows a multi-producer, single-consumer model, where the
consumer is the vCPU itself. Producers may set bits in
irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
performed only by the consumer via xchg(). The consumer must not write
to irqs_pending and must not act on bits that are not set in the mask.
Otherwise, extra synchronization should be provided.

On RISC-V interrupts are not injected via guest registers, so pending
interrupts must be recorded in irqs_pending (using the new
vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
HVIP before returning control to the guest. The consumer side is
implemented in a follow-up patch.

A barrier between updating irqs_pending and setting the corresponding
mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
that if the consumer observes a mask bit set, the corresponding pending
bit is also visible. This prevents missed interrupts during the flush.

It is possible that a guest could have pending bit in the hardware
register without being marked pending in irq_pending bitmap as:
  According to the RISC-V ISA specification:
    Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
    interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
    is an alias (writable) of the same bit in hvip.
  Additionally:
    When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
    zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
    hie.VSSIE.
This means the guest may modify vsip.SSIP, which implicitly updates
hip.VSSIP and the bit being written with 1 would also trigger an interrupt
as according to the RISC-V spec:
  These conditions for an interrupt trap to occur must be evaluated in a
  bounded   amount of time from when an interrupt becomes, or ceases to be,
  pending in sip,  and must also be evaluated immediately following the
  execution of an SRET  instruction or an explicit write to a CSR on which
  these interrupt trap conditions expressly depend (including sip, sie and
  sstatus).
What means that IRQ_VS_SOFT must be synchronized separately, what is done
in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
PMU isn't supported now.

For the remaining VS-level interrupt types (IRQ_VS_TIMER and
IRQ_VS_EXT), the specification states they cannot be modified by the guest
and are read-only because of:
  Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
  bits for VS-level external interrupts. VSEIP is read-only in hip, and is
  the logical-OR of these interrupt sources:
    • bit VSEIP of hvip;
    • the bit of hgeip selected by hstatus.VGEIN; and
    • any other platform-specific external interrupt signal directed to
      VS-level.
  Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
  bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
  logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
  signal directed to VS-level.
and
  When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
  Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.

  When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
  Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
and also,
  Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
  bits for supervisor-level external interrupts. If implemented, SEIP is
  read-only in sip, and is set and cleared by the execution environment,
  typically through a platform-specific interrupt controller.

  Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
  bits for supervisor-level timer interrupts. If implemented, STIP is
  read-only in sip, and is set and cleared by the execution environment
Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
and vcpu_unset_interrupt(), and flush them during the call of
vcpu_flush_interrupts() (which is introduced in follow up patch).

vcpu_sync_interrupts(), which is called just before entering the VM,
slightly bends the rule that the irqs_pending bit must be written
first, followed by updating the corresponding bit in irqs_pending_mask.
However, it still respects the core guarantee that the producer never
clears the mask and only writes to irqs_pending if it is the one that
flipped the corresponding mask bit from 0 to 1.
Moreover, since the consumer won't run concurrently because
vcpu_sync_interrupts() and the consumer path are going to be invoked
sequentially immediately before VM entry, it is safe to slightly relax
this ordering rule in vcpu_sync_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v5:
 - Update the commit message().
 - Rename c to curr.
 - Update vcpu_set_interrupt() to use test_and_set_bit() for irqs_pending
   bitmask too.
 - Move #ifdef CONFIG_RISCV_32 above the comment in vcpu_sync_interrupts().
---
Changes in v4:
 - Update the commit message.
 - Update the comments in vcpu_(un)set_interrupt() and add the the  comment
   above smp_wmb() barrier.
 - call vcpu_kick() only if the pending_mask bit going from 0 to 1.
 - Code style fixes.
 - Update defintion of RISCV_VCPU_NR_IRQS to cover potential RV128 case and
   the case if AIA isn't used.
 - latch current into a local variable in check_for_pcpu_work().
---
Changes in v3:
 - Use smp_wb() instead of smp_mb__before_atomic().
 - Add explanation of the change above in the commit message.
 - Move vcpu_sync_interrupts() here to producers side.
 - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
   is called.
---
Changes in V2:
 - Move the patch before an introduction of vtimer.
 - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
   vcpu structure starts out all zeros.
 - Drop const for irq argument of vcpu_{un}set_interrupt().
 - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
   could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
 - Drop IRQ_LOCAL_MAX as there is no usage for it now.
---
 xen/arch/riscv/domain.c             | 75 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h | 23 +++++++++
 xen/arch/riscv/traps.c              |  4 ++
 3 files changed, 102 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index c9494db0fbe7..335c41f3e5a1 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -6,6 +6,7 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/bitops.h>
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
@@ -140,6 +141,80 @@ void arch_vcpu_destroy(struct vcpu *v)
     vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
 }
 
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
+{
+    bool kick_vcpu;
+
+    /* We only allow VS-mode software, timer, and external interrupts */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    kick_vcpu = !test_and_set_bit(irq, v->arch.irqs_pending);
+
+    /*
+     * The counterpart of this barrier is the one encoded implicitly in xchg()
+     * which is used in consumer part (vcpu_flush_interrupts()).
+     */
+    smp_wmb();
+
+    kick_vcpu |= !test_and_set_bit(irq, v->arch.irqs_pending_mask);
+
+    if ( kick_vcpu )
+        vcpu_kick(v);
+
+    return 0;
+}
+
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
+{
+    /* We only allow VS-mode software, timer, external interrupts */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    clear_bit(irq, v->arch.irqs_pending);
+    /*
+     * The counterpart of this barrier is the one encoded implicitly in xchg()
+     * which is used in consumer part (vcpu_flush_interrupts()).
+     */
+    smp_wmb();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    return 0;
+}
+
+void vcpu_sync_interrupts(struct vcpu *v)
+{
+    unsigned long hvip;
+
+    /* Read current HVIP and VSIE CSRs */
+    v->arch.vsie = csr_read(CSR_VSIE);
+
+    /* Sync-up HVIP.VSSIP bit changes done by Guest */
+    hvip = csr_read(CSR_HVIP);
+    if ( ((v->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL)) &&
+         !test_and_set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending_mask) )
+    {
+        if ( hvip & BIT(IRQ_VS_SOFT, UL) )
+            set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
+        else
+            clear_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
+    }
+
+#ifdef CONFIG_RISCV_32
+    /*
+     * Sync-up AIA high interrupts.
+     *
+     * It is necessary to do only for CONFIG_RISCV_32 which isn't supported
+     * now.
+     */
+#   error "Update v->arch.vsieh"
+#endif
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 17be792afe7d..b7241f2a79b1 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -54,8 +54,26 @@ struct arch_vcpu {
     register_t hideleg;
     register_t henvcfg;
     register_t hstateen0;
+    register_t hvip;
 
     register_t vsatp;
+    register_t vsie;
+
+    /*
+     * VCPU interrupts
+     *
+     * We have a lockless approach for tracking pending VCPU interrupts
+     * implemented using atomic bitops. The irqs_pending bitmap represent
+     * pending interrupts whereas irqs_pending_mask represent bits changed
+     * in irqs_pending. Our approach is modeled around multiple producer
+     * and single consumer problem where the consumer is the VCPU itself.
+     *
+     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
+     * on RV32 host.
+     */
+#define RISCV_VCPU_NR_IRQS MAX(BITS_PER_LONG, 64)
+    DECLARE_BITMAP(irqs_pending, RISCV_VCPU_NR_IRQS);
+    DECLARE_BITMAP(irqs_pending_mask, RISCV_VCPU_NR_IRQS);
 };
 
 struct paging_domain {
@@ -94,6 +112,11 @@ static inline void update_guest_memory_policy(struct vcpu *v,
 
 static inline void arch_vcpu_block(struct vcpu *v) {}
 
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
+
+void vcpu_sync_interrupts(struct vcpu *v);
+
 #endif /* ASM__RISCV__DOMAIN_H */
 
 /*
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 9fca941526f6..551f886e3a69 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -171,6 +171,10 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
 
 static void check_for_pcpu_work(void)
 {
+    struct vcpu *curr = current;
+
+    vcpu_sync_interrupts(curr);
+
     p2m_handle_vmenter();
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237339.1539749 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTE1-00025X-S6; Fri, 20 Feb 2026 16:19:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237339.1539749; Fri, 20 Feb 2026 16:19: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 1vtTE1-00025G-Of; Fri, 20 Feb 2026 16:19:29 +0000
Received: by outflank-mailman (input) for mailman id 1237339;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTE0-0000Q4-7e
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19: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 ecf522b8-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:26 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-483487335c2so21410585e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:26 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ecf522b8-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604366; x=1772209166; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=L59NZMHr94doMxHYbooYqU+b+678IT1cbuVKqM3ukd0=;
        b=S3q7A04RZNKuGVC2lv5LmiXS+HfLUSjRnlEYQSFSd+kY1/djYWxWGOCcCdzZAdC0vf
         krFp6ARERyCLLJe6K7Wh/wQa1mvJvgZvY89qfqWItbrYRqW27lK4dwN7kUq2Rx0BxNjh
         Txjd3VtTEmAHVd10ucZASWcLu3YIZwvshGmzlCgE1e5UOzAr6heQcs0oAMbIKQOdtbGw
         iZRRj4Z0t28xLDnFQEL60NDGD5Tu+JvXnOo0mNi0UGMojlE7AdidHCwBl4Chh7rJjoS7
         asb7XttRLkAbhTN2xh9V/KMZE73GHp20+7LWgB/ievKBCT1uRccjeQbcF9Safwili0C6
         Z9xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604366; x=1772209166;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=L59NZMHr94doMxHYbooYqU+b+678IT1cbuVKqM3ukd0=;
        b=g30bC4tiGA6TiYCq0AxN7aDpEZDXb1q8biQpzhVqGUMLqI46Hq3YAvMZX72lg1Ozpi
         fq07J7nPRaxj3353/x3AMbctK5b6ULHtE4BUShaJ63HOpqlAXLvJYE56gIOOqwGbUiDY
         B1kKSlUretAoa+6cbtt+PVCoxrjZNCnyp4HXQTwJZZ8SwyXqPA2D9zdSo6v63S8usAqc
         Lb5MB2SzbVglZN6dNKU0AUXDtYpvWRycNwR+IZ1sdgV6QO9jorl0yiLTjJ3mipTjuY70
         QiB/XceMmcFbtLThDnUq591Gn+os/iOs79GZaB5uyTkIu9EHSneuoiTuaW0toT1VTjX2
         8SMg==
X-Gm-Message-State: AOJu0Yy7jQW82Fm2OtdmwhnxG77jsXjdAVkRDJfErR0ykEAmkP4Zm4tD
	yRCcC3dr+3QF8U5Zc1VPGgHJ9QSmn9HfTCttGwXFPAZXjDrlrM6/C5Gb2EUbDQ==
X-Gm-Gg: AZuq6aL04xf1LJdyNmv3B8TQtsKxLQ0IgFJC5Zst/YgHJSDUcFvL1nPCNZrkI+VfLeM
	yxywsRO7HOVj+HiuCDksuEVSwYXdso2u73vrIEIDp4Hl5P6KddhPD1azGVQ6yc2ppY0f63wrPcM
	VlD95Nhpoz2stXWWSinOVIy03qFf9BBvqgmcG0svyA2mO9RbArKtI/Jnq5I2PgjvrT0EzHpA6Sr
	2gAzglBXfkFoLq+MLd5Ai0vP5EB/2o8FodcXpsYMpu/t4EshPXH7XQayfyBJnxL/5fud/eZ/pj7
	acrlVDWrm6ujIyL3vMmiLPO7gM97s3d78bRvH3WotuRC1VJg4XwsmvW0uDQVK00a4itBM0AxX7x
	jZFiREkFFZl43RO4age6jJoq1+qo1spug/lQ/IPy8JL+kbICmpHldkRt3Th3rlo8Ok1m8pO5lKK
	gn31U6JBMC7AMgW341ZXJhMOLi2kqROIW//SSjavlhyps4iob+SDdf7kV8cEN6O8JVbw==
X-Received: by 2002:a05:600c:3e8d:b0:47e:e9c9:23bc with SMTP id 5b1f17b1804b1-483a95f89b5mr1012965e9.30.1771604365821;
        Fri, 20 Feb 2026 08:19:25 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 07/14] xen/riscv: introduce vcpu_kick() implementation
Date: Fri, 20 Feb 2026 17:19:02 +0100
Message-ID: <0d0c9a359699240cd812e1ba68385a864666d102.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a RISC-V implementation of vcpu_kick(), which unblocks the target
vCPU and sends an event check IPI if the vCPU was running on another
processor. This mirrors the behavior of Arm and enables proper vCPU
wakeup handling on RISC-V.

Remove the stub implementation from stubs.c, as it is now provided by
arch/riscv/domain.c.

Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
for example, by randconfig what will lead to CI build issues.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v5:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - Add asm/perfc_defn.h to provide vcpu_kick perfcoounter to cover
   the case when CONFIG_PERF_COUNTERS=y.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/domain.c                 | 14 ++++++++++++++
 xen/arch/riscv/include/asm/Makefile     |  1 -
 xen/arch/riscv/include/asm/perfc_defn.h |  3 +++
 xen/arch/riscv/stubs.c                  |  5 -----
 4 files changed, 17 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 7027b5e9aa20..fb5c21078172 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -1,9 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/cpumask.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/sections.h>
 #include <xen/sched.h>
+#include <xen/smp.h>
 #include <xen/vmap.h>
 
 #include <asm/bitops.h>
@@ -251,6 +253,18 @@ void vcpu_flush_interrupts(struct vcpu *v)
 #endif
 }
 
+void vcpu_kick(struct vcpu *v)
+{
+    bool running = v->is_running;
+
+    vcpu_unblock(v);
+    if ( running && v != current )
+    {
+        perfc_incr(vcpu_kick);
+        smp_send_event_check_mask(cpumask_of(v->processor));
+    }
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index 3824f31c395c..86c56251d5d7 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -7,7 +7,6 @@ generic-y += hypercall.h
 generic-y += iocap.h
 generic-y += irq-dt.h
 generic-y += percpu.h
-generic-y += perfc_defn.h
 generic-y += random.h
 generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
new file mode 100644
index 000000000000..8a4b945df662
--- /dev/null
+++ b/xen/arch/riscv/include/asm/perfc_defn.h
@@ -0,0 +1,3 @@
+/* This file is intended to be included multiple times. */
+
+PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index daadff0138e4..eedf8bf9350a 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -203,11 +203,6 @@ void vcpu_block_unless_event_pending(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-void vcpu_kick(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237340.1539758 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTE4-0002Oq-6I; Fri, 20 Feb 2026 16:19:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237340.1539758; Fri, 20 Feb 2026 16:19: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 1vtTE4-0002Oa-0q; Fri, 20 Feb 2026 16:19:32 +0000
Received: by outflank-mailman (input) for mailman id 1237340;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTE2-0000Q4-Km
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:30 +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 ee24eed1-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:28 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-4376de3f128so1538330f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:28 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.25
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee24eed1-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604368; x=1772209168; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8IfTwwNG5f/qMELUo5yc+EiwaE+xRpKyZnUpo6oHC2Y=;
        b=GiVLboqsfP9FtiMLzd6SitTgbusn9BpMkwkS7BorYQybvOkD8VOeKCN2z1t7XV5o8I
         8exVXha4ZG8Y2/zyuMGO7CtWzyLnQ/pl8v2TDTuq13kSpXTAhwYHFshmIGpSaJLznrfE
         UTIAfLWkdBw+6wsZMtPzTOFQnpXuluvCf8LUygOcKgIj3e/C7wzrz7gmwLfU8+0Sc/Xz
         aAAOYbcBd2UVcIqqwYglU98xJ8QIzXSUuN9ENpd4tGc9wJilBgl16wwc0QVVpe521DOy
         K3B1BZGSxTNgpB3WXZa6hSuWRo2PLx03+VqY5YjjJ4LUOxrKdOmvSxyV5meCJswME5xr
         2WIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604368; x=1772209168;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=8IfTwwNG5f/qMELUo5yc+EiwaE+xRpKyZnUpo6oHC2Y=;
        b=IPx/AnUw/nIBX6yac0tnXdHDFbZvnDVblMU20c1Ns2sLEkp8ZH/NsFhNOJ4HwivbAS
         WUHUbcUuwhj/nKLKh81fndY1+sZFuFQ0imEQYDeo0aMVN/8Cm4DlW4WhkjcR1Xs34tuI
         w3/c8364iWO4ij2mW+XPxG+HOzDD77lrzxh96ZHAkQ7FghvJ/BRvMmvm1zAr7O/mY7c6
         c/LTJrO0MPCCbt468Vxu60cePTvesdmylM2VWafhIUu54+/qETBNipx9cNS0dTNVt31j
         sG40o6NxftiPFtOp97kqdWrciqcjrPoPUyKOifQ1M/DOj5Nmjpre40ibKumTSN/3MngY
         oFUQ==
X-Gm-Message-State: AOJu0YzpGUm6u2tTMKSnsAiqew1ZLT3uB1Z/rx4yAuP7zN/Dc4pXhXge
	7i0U6sS8qOie28Aysj7ygBcNu8jiRlwSfJwNc++kC7QXf2lNiFGqm04MJXYT6A==
X-Gm-Gg: AZuq6aKkv9g44R3TALCaLDKOTwxo+Ts76UitVjzWBcdeNqMlV5r6cL2hnJYFVTlwu9c
	MLAm8Hd5ofYLpff8g7ecMuJSZtIHKNmwfzKezcsWNxgVTsPtboMpukgyO9QkgK3gvEW151tbFiU
	3zEIRfXrXVa0KYqb6Q6SHavSD9GMZCIzArvRkQ1NZOHUxUBWGnvvdB5BzNsMGyFuLyLHEgXd35U
	bOg9zE4A4U6re9UuqNeJs48aYIfSFLBLaVKdAPDmDYFvA4301tuAvoxUHYLqYqJF8U5434S7rIz
	4VNGYhtrvqBYmv+7ler3s/HSfjVKVVflqst+enQfQ3srlW2zwtNAHMDSUXRVIDPilnsCE8REktH
	l6o9widPrCRQmwQBQeSin/HcCp68lN2cuqrz9be1o7qqyufy4N7LJB16boEEBIYO+Y96xqVwLVz
	6gXllrNDs7TMEXUiaIDgRI1pLlehpWbTSB2oRumhnOZOH6/vvhF84ih8K5bFFUXHXw6r7Vkg==
X-Received: by 2002:a05:6000:4026:b0:437:681e:cbc3 with SMTP id ffacd0b85a97d-4396f15e475mr839815f8f.13.1771604366958;
        Fri, 20 Feb 2026 08:19:26 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 08/14] xen/riscv: add vtimer context switch helpers
Date: Fri, 20 Feb 2026 17:19:03 +0100
Message-ID: <26ead013f23bef85423680f37f4e671c1f6ee8cd.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vtimer_ctxt_switch_from() and vtimer_ctxt_switch_to() to handle
virtual timer state across vCPU context switches.

At present, vtimer_ctxt_switch_from() is a no-op because the RISC-V SSTC
extension, which provides a virtualization-aware timer, is not yet
supported. Xen therefore relies the virtual (SBI-based) timer.

The virtual timer uses Xen's internal timer infrastructure and must be
associated with the pCPU on which the vCPU is currently running so that
timer events can be delivered efficiently. As a result, vtimer_ctxt_switch_to()
migrates the timer to the target pCPU when a vCPU is scheduled in.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v5:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - s/vtimer_ctx_switch_to/vtimer_ctxt_switch_to
 - s/vtimer_ctx_switch_from/vtimer_ctxt_switch_from
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Align the parameters names for  vtimer_ctx_switch_from() and vtimer_ctx_switch_to() in
   declarations to match the ones in the defintions to make Misra happy.
 - s/vtimer_save/vtimer_ctx_switch_from.
 - s/vtimer_restore/vtimer_ctx_switch_to.
 - Update the commit message.
---
 xen/arch/riscv/include/asm/vtimer.h |  3 +++
 xen/arch/riscv/vtimer.c             | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
index 111863610a92..b4d48d1a1732 100644
--- a/xen/arch/riscv/include/asm/vtimer.h
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -14,4 +14,7 @@ void vcpu_timer_destroy(struct vcpu *v);
 
 void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
 
+void vtimer_ctxt_switch_from(struct vcpu *p);
+void vtimer_ctxt_switch_to(struct vcpu *n);
+
 #endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index 32d142bcdfcd..afd8a53a7387 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/sched.h>
 #include <xen/timer.h>
 
@@ -69,3 +70,17 @@ void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
     migrate_timer(&t->timer, smp_processor_id());
     set_timer(&t->timer, expires);
 }
+
+void vtimer_ctxt_switch_from(struct vcpu *p)
+{
+    ASSERT(!is_idle_vcpu(p));
+
+    /* Nothing to do at the moment as SSTC isn't supported now. */
+}
+
+void vtimer_ctxt_switch_to(struct vcpu *n)
+{
+    ASSERT(!is_idle_vcpu(n));
+
+    migrate_timer(&n->arch.vtimer.timer, n->processor);
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:32 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:32 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237341.1539764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTE4-0002RG-It; Fri, 20 Feb 2026 16:19:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237341.1539764; Fri, 20 Feb 2026 16:19: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 1vtTE4-0002QD-AP; Fri, 20 Feb 2026 16:19:32 +0000
Received: by outflank-mailman (input) for mailman id 1237341;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTE2-0000Q4-SE
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:30 +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 ee5bc87b-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:29 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-4362c635319so2097773f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:29 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee5bc87b-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604368; x=1772209168; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=J6aGuGPcNuPDYPCV7GwkHM9t8Lc+qUdl4ib7PfisxG8=;
        b=UtCZMvNsUewN3dl7b484fGEpmCpA5wx7N4zu4EhoBBFEK+CUQGuW4oYuAin2jb3Yhh
         s11yDClK1e1mCwSFc78C4XBcrKRjZw3SNPkt9uDhFP1D+xjnIl339svmw6KScnlN06sT
         aUpxuGZehKXQU36t9SELH2py8QXeoEpAmlYm5As4Y1PAcUfd23jkg/fnflNWsJqX/0Zi
         Oxxd4RdBllPkWpW/NUsDAhFez3g/p3K3p/zmTgnht5PzRJ9rmA6G5eTVtOWw9aIArPiJ
         R/VnLPq7eTdyVldEB+5tj4dfn4YmFVE+L8/FPZpmirgKSDgvKE948njRHiKt7peyD4ky
         F59Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604368; x=1772209168;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=J6aGuGPcNuPDYPCV7GwkHM9t8Lc+qUdl4ib7PfisxG8=;
        b=HEvvL+ScUAm2asxJuuZc+8vEmiprZpXF0j9PPEVhtsT4PQafjhZdffCfJ/dHK9AYxc
         tFw/rhS6KarIwbkLpepguUtq7Qh3c1/Bncz1/pkfLOB04n/29W9A7nPIqjP07BH6wYNh
         eRSCHQ3nM+dzGFa9JWhAln2WwlIFHHMb9Yg+5y8w8KK+6kEyRK0nvKZ9JhOCwJJVI+LJ
         2u+2640xlgmqyjDDggEhlhNr7Am2LvJo1cypIwGYnac87mj/5OY1B4J0UozxON3gyu7B
         ylC3MdU3Rz+NPQO3Pkd55C1lODeFZ0czvqxziLSZ+PZ6LP4cuVFQXDdfnfNEzbpGMK73
         lUng==
X-Gm-Message-State: AOJu0YwI18DZ8F2bkwshYkqRXAK8UfGEdTY9fzjLi3GTXXcP7izWepZ2
	YTm9C7nA6xTQOeHymEqLshjs3fgycJpgi1TTTAPrOD+GE+Gc92kLcyxuhmnlbw==
X-Gm-Gg: AZuq6aJ7yAh0kcl2lmAyy5zsMGicxQeLs0NU11MhyoNTmZffxvdC9fc9DhpJbYMOg7k
	pJ4JVQOJmQMlmdsN77nPOzsaWruY02mufnv2cFOikVuNb0rGBbeG7UY6ijvgw6kPfl2dbrpCWhB
	6xMpTl8y3sm4GN5pRyVHxJXc2oTrWHkYad4K+kVdTJRP9IwH0l5vnJVnXyMVArfXjuvtrQyzmYp
	WAXKjT/XzHvBnm1BtpUQ73rJILUclotcI8nheti20/RSRfa9w07b8Al0S5KnNdpGMhiLcQhH/PR
	GyVa7CNTtxEX9qUUrbtB5iYymp8SF6wyok0R0uGK7QjkGYHv39uiM9HPbDGyMXaoeAEaqbxoO7u
	xtRaYYxkpKiJU25o6vqybjcg15ZPx4nQQpulDEXDwCY/Rsu/RrKR29Q4O1zOvEWdZJZ9Soxcx6n
	1xGOobJ/Dwq30lxlmonJ3idtsQZDTyTzoNbTTxsniUdy9mD+98prv4hz5paeIm73Owuw==
X-Received: by 2002:a5d:64e5:0:b0:437:6806:994f with SMTP id ffacd0b85a97d-4396f14cb6fmr908975f8f.12.1771604367888;
        Fri, 20 Feb 2026 08:19:27 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 09/14] xen/riscv: implement SBI legacy SET_TIMER support for guests
Date: Fri, 20 Feb 2026 17:19:04 +0100
Message-ID: <ce624ecca7d725c1abb195177b48e8197322cfac.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add handling of the SBI_EXT_0_1_SET_TIMER function ID to the legacy
extension ecall handler. The handler now programs the vCPU’s virtual
timer via vtimer_set_timer() and returns SBI_SUCCESS.

This enables guests using the legacy SBI timer interface to schedule
timer events correctly.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3 - v5:
 - Nothing changed. Only rebase.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/vsbi/legacy-extension.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/riscv/vsbi/legacy-extension.c b/xen/arch/riscv/vsbi/legacy-extension.c
index 2e8df191c295..090c23440cea 100644
--- a/xen/arch/riscv/vsbi/legacy-extension.c
+++ b/xen/arch/riscv/vsbi/legacy-extension.c
@@ -7,6 +7,7 @@
 
 #include <asm/processor.h>
 #include <asm/vsbi.h>
+#include <asm/vtimer.h>
 
 static void vsbi_print_char(char c)
 {
@@ -44,6 +45,11 @@ static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
         ret = SBI_ERR_NOT_SUPPORTED;
         break;
 
+    case SBI_EXT_0_1_SET_TIMER:
+        vtimer_set_timer(&current->arch.vtimer, regs->a0);
+        regs->a0 = SBI_SUCCESS;
+        break;
+
     default:
         /*
          * TODO: domain_crash() is acceptable here while things are still under
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237343.1539775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTE6-0002pH-9w; Fri, 20 Feb 2026 16:19:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237343.1539775; Fri, 20 Feb 2026 16:19: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 1vtTE6-0002oQ-3z; Fri, 20 Feb 2026 16:19:34 +0000
Received: by outflank-mailman (input) for mailman id 1237343;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTE3-0000Q4-V6
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:31 +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 ef079b3d-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:30 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso17009375e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:30 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ef079b3d-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604369; x=1772209169; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3VAMf5wEbjWTV3qUp1H5TFWR6XdnKzjzMGvNMq2GKmE=;
        b=jGNQpjWrU8VIWmAKD9uYAFQLk2GxEGlPr1fjj5Fa6R6W1u9daTFnAjeDioKbVmflc4
         XZvUi+TlN2CGSn+MVAXrEfdHESZSNfR9PIuOvKjaWqLtTiU6SC0yQI0Ke2q2WOqjPhd/
         a1VePKAtukASbG1Srz+Akr1iHq+YWPDDMgvgh0u5GCoYC1zqun0rNVzfX0x9atsnwKii
         fv3ds78ZVww1leIDwfeuWq6rQOtG405bUVOz4KC8thrmOF7G7cPDdqapbkB1+EYCkdpA
         rBm+PqAzRnBLAA8NNvjO6Nn/pvFxo/kVB2nqM5YAYaaV9oqHgtPIbmzcZ2xAptGLm5PT
         tK5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604369; x=1772209169;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=3VAMf5wEbjWTV3qUp1H5TFWR6XdnKzjzMGvNMq2GKmE=;
        b=uge/Gyr9Bpe0KpqNFDTsX9hoRuW6mxhzja7FAFrGxX8iNlP/rhEE4zkDZWxHcNuhtR
         fKeHdLsQiuOOSeKwgKouJL1Tfaojzhdspz9LvhVYK9eUB5rlY9cHMPtPCkW8KSOfiHuI
         Jg0ZP1rZRkgy+KtJdTbcwSlY3bWBl0MQ+hCWfD95G9Dp3S4puZipR1JNA/mDKDp9A34U
         7gUNh+hYvaUyN9R4fbw03G08HjC1EpdxZNMCKHt9muvcjOBkjIhrjlXYWxR8urKilwtY
         irP98bCiXkH0mvSvlFkZyLn2Rfao31+h5oMJwtp4xxF+Sq6EgoT7+v3sdC3uzrpahuK/
         2RNg==
X-Gm-Message-State: AOJu0Yw2rrnFunofG5yJtLPR8fSz9KRla0V2chWgz10GDRjoStipmjvJ
	PO/wlrR2GbOLDhV53VW1GUIJts6qJdBmMJQ9qjY+xqbhznJb1/6euYwtoWS+fA==
X-Gm-Gg: AZuq6aIstN+Pihplvy8hQ5iTcROzoCMvHPCve15BFO0JJe2bZP8sCmnitYGA/qyOdW+
	pmMurzj0LUFZdSZHyqilQQ3QZSPkrH4osjTu9KBYVmADIPaPC9WAPjaxh429slrl1jvMZH6Wwd8
	BViUin8VEoBbakuRELaDBrehP8HwhvKB/STCvWSuahpku8xLi4C4x3aohFEvvtS45IK0NOSI6er
	df9Xj5BOv/rQHM4/aE7NmO6w4rJoBJhFXQKCWZ/uTsz9gF8kT+oHlRHNWEWuvQVoRW+jdhN3aOB
	2OanJK1CGHiPWUJcvsGHX93/cyt+Z7q+0zuK0FPlmjeYJCvgBnKqWscVC3m091q5j8UKj0F4IVB
	Jg8P1pqzdhEZn9SouOsJ/i5XSwZD9BKT+twiL0IB/mcQHy2OVnMAHpJQ7l0uiiMG9CHST7AL39W
	iC64zZoIywofviQ7AWNQwMp64POu/uokohiRMIdzLk1FieORYOousbmCOulBCb0MbPlc+Heg==
X-Received: by 2002:a05:600c:1f8f:b0:483:6d4e:9811 with SMTP id 5b1f17b1804b1-483a95ee3f2mr1262605e9.31.1771604369073;
        Fri, 20 Feb 2026 08:19:29 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 10/14] xen/riscv: introduce sbi_set_timer()
Date: Fri, 20 Feb 2026 17:19:05 +0100
Message-ID: <8f3a1ea2d841ce9f184583cdb9915bd39d760825.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a function pointer for sbi_set_timer(), since different OpenSBI
versions may implement the TIME extension with different extension IDs
and/or function IDs.

If the TIME extension is not available, fall back to the legacy timer
mechanism. This is useful when Xen runs as a guest under another Xen,
because the TIME extension is not currently virtualised and therefore
will not appear as available.
Despite of the fact that sbi_set_timer_v01 is introduced and used as
fall back, SBI v0.1 still isn't fully supported (with the current SBI
calls usage, sbi_rfence_v01 should be introduced too), so panic()
in sbi_init() isn't removed.

The sbi_set_timer() pointer will be used by reprogram_timer() to program
Xen’s physical timer as without SSTC extension there is no any other
option except SBI call to do that as only M-timer is available for us.

Use dprintk() for all the cases to print that a speicifc SBI extension
is available as it isn't really necessary in case of release builds.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
- Add inclusion of <xen/sections.h> to <asm/sbi.h> to deal with the compilation issue:
    ./arch/riscv/include/asm/sbi.h:156:30: error: expected ')' before 'sbi_set_timer'
    156 | extern int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
- Rephrase the first sentence of the comment above declaration of sbi_set_timer
  pointer to function.
---
Changes in v4:
 - Add "stime_value is in absolute time" to the comment above declaration
   of sbi_set_timer() function pointer.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Init sbi_set_timer with sbi_set_timer_v01 as fallback value.
 - Sort SBI IDs in the same way as SBI EXT IDs are declared.
 - Add __ro_after_init for sbi_set_timer variable.
 - use dprintk instead of printk to print information if SBI ext is available.
---
Changes in v2:
 - Move up defintion of SBI_EXT_TIME_SET_TIMER and use the same padding as
   defintions around it.
 - Add an extra comment about stime_value granuality above declaration of
   sbi_set_timer function pointer.
 - Refactor implemetation of sbi_set_timer_v02().
 - Provide fallback for sbi_set_timer_v01().
 - Update the commit message.
---
 xen/arch/riscv/include/asm/sbi.h | 22 ++++++++++++++++++
 xen/arch/riscv/sbi.c             | 40 +++++++++++++++++++++++++++++++-
 2 files changed, 61 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 79f7ff5c5501..ed7af200288f 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -13,6 +13,7 @@
 #define ASM__RISCV__SBI_H
 
 #include <xen/cpumask.h>
+#include <xen/sections.h>
 
 /* SBI-defined implementation ID */
 #define SBI_XEN_IMPID 7
@@ -29,6 +30,7 @@
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
+#define SBI_EXT_TIME                    0x54494D45
 
 /* SBI function IDs for BASE extension */
 #define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
@@ -48,6 +50,9 @@
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA       0x5
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID  0x6
 
+/* SBI function IDs for TIME extension */
+#define SBI_EXT_TIME_SET_TIMER          0x0
+
 #define SBI_SPEC_VERSION_MAJOR_MASK     0x7f000000
 #define SBI_SPEC_VERSION_MINOR_MASK     0x00ffffff
 
@@ -134,6 +139,23 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
 int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
                                 size_t size, unsigned long vmid);
 
+/*
+ * Programs the clock for next event at (or after) stime_value. stime_value is
+ * in absolute time. This function must clear the pending timer interrupt bit
+ * as well.
+ *
+ * If the supervisor wishes to clear the timer interrupt without scheduling the
+ * next timer event, it can either request a timer interrupt infinitely far
+ * into the future (i.e., (uint64_t)-1), or it can instead mask the timer
+ * interrupt by clearing sie.STIE CSR bit.
+ *
+ * The stime_value parameter represents absolute time measured in ticks.
+ *
+ * This SBI call returns 0 upon success or an implementation specific negative
+ * error code.
+ */
+extern int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
+
 /*
  * Initialize SBI library
  *
diff --git a/xen/arch/riscv/sbi.c b/xen/arch/riscv/sbi.c
index 425dce44c679..b4a7ae6940c1 100644
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -249,6 +249,38 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
                                           unsigned long arg4,
                                           unsigned long arg5);
 
+static int cf_check sbi_set_timer_v02(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+static int cf_check sbi_set_timer_v01(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_0_1_SET_TIMER, 0, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+int (* __ro_after_init sbi_set_timer)(uint64_t stime_value) = sbi_set_timer_v01;
+
 int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
                           size_t size)
 {
@@ -324,7 +356,13 @@ int __init sbi_init(void)
         if ( sbi_probe_extension(SBI_EXT_RFENCE) > 0 )
         {
             sbi_rfence = sbi_rfence_v02;
-            printk("SBI v0.2 RFENCE extension detected\n");
+            dprintk(XENLOG_INFO, "SBI v0.2 RFENCE extension detected\n");
+        }
+
+        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
+        {
+            sbi_set_timer = sbi_set_timer_v02;
+            dprintk(XENLOG_INFO, "SBI v0.2 TIME extension detected\n");
         }
     }
     else
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237346.1539787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTE7-0002zD-KV; Fri, 20 Feb 2026 16:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237346.1539787; Fri, 20 Feb 2026 16:19: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 1vtTE7-0002y2-4O; Fri, 20 Feb 2026 16:19:35 +0000
Received: by outflank-mailman (input) for mailman id 1237346;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTE5-0000QF-OL
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:33 +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 f079f1ce-0e77-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 17:19:32 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so23237935e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:32 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f079f1ce-0e77-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604372; x=1772209172; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5GY4TsUHAUh5mXYz+TDKp1K01nWPWnDSPZpe5v/E8oY=;
        b=LlE+dgt4BZzmbfveMoQNfmHAMAV2vnqMHXOL7k2C6bd5M89vzB4FQePgenAJadewhq
         aBntHrWVF1uNxkgxO6rFGWkXtpc6hP0gbn54jWlV2w6+ZWEZLLMphqN+VcOYSGEfHOZh
         6mLnQa7GTKJzCqE2InHL0/x8ycNk0CXjIE0+N0hopmTmvnpNUpfV6zp48EC2QgXQTmu+
         X6a9R9akFpalQxlJtMdhKaRAM8FOs5/9mI1W/CanvXEYPC4d545bNbv/x7rCASErym9g
         +aAzx7JuPkC0cZOjgmYbSwMlKszmhDIKQvW+9gIzXB9nkOfvsAWUa270xPr8zefQbD06
         qHLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604372; x=1772209172;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5GY4TsUHAUh5mXYz+TDKp1K01nWPWnDSPZpe5v/E8oY=;
        b=ZCm9UrF99y3tuZQ9+ZkQ+U9+o2wJFnceIhg+zs3IoJ0m2tD5VDhMNCjT+bwli56lpX
         1ZAhog9q+xVsOKJ1it1GOx0uAE3Dz4DJcWJILbpqWGNyBOkEjxbVL/Sgd7cknYex9KfH
         g8jHBt05RKNf2Hwo2fFAmHOnh7/Z7g7uALu8DX2Re0w+0FE95YRSfxGfdTrj+j0QrSfK
         SDISc3AAsPUckHMLpcSmuIpQZ7PHmpqWwU95X2vb0T5qZx+2NPXtbnKpkcjYGYSLLY1O
         lJTiyXVvKe2/0O4T73LTWGW+LXQMdItPKA+rOL6+Fwsrm8ThprboUyJ0c4f5eBI371EA
         34Wg==
X-Gm-Message-State: AOJu0YygTMeVQrNYYE/IFENnK1Yf/pDjda5iBErKMBMvn2eInFtDQVZM
	6bzNw1QNfqVWRCkSh4/9pzwQK4sxmLqNRKTlytWUpG4K1QIk20MCvaHqTDLM2Q==
X-Gm-Gg: AZuq6aK09UFcT0o71iFCftqyaKz3wOGiwk+hoPZ0gAdnmJcKhlltmctXVB+aMlD8wIu
	11JSFei/BgGUVKV0IDaQei7WyMdPSlafM23PJKoyAlfSA4iAI7OO8FaoV0Khkd0kdIrHqLHd3jC
	lQlJXi4Mq9TEMv3iDQ438fNRdFCseIYq2gsXv+PQOkIqcD/Fl6jHZkSQdjTaFhq9fox++Zz2MjN
	mMzwfRCO737lJG/rsAmNAqahIG3k8U6rMsKL7adQzzh4BGwrR+dEsEs+LVgmzFzOzCzpU2zy5ur
	5xa+tRYn2Zmdu6KngGcbE+p+YtYOadTIBEXpVJBsB9Zp6BdjuCdr3lt4dtcfigRLz8bRBkcrOaQ
	XdpJqq2WKxTMseEbsjqyPTLNrhVOaBkIpeRVGTP5MH9dht52AftVuZbKajW+t2Huk+ooIbFfON/
	+ORBf7M0BGtGDxgfXiWmy46WHeEINgD3j9mky/mk3ajlA966TMgXDhVmCOxCW4Q2oYew==
X-Received: by 2002:a05:600c:820a:b0:483:709e:f22d with SMTP id 5b1f17b1804b1-483a96379c1mr561955e9.27.1771604371507;
        Fri, 20 Feb 2026 08:19:31 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 12/14] xen/riscv: handle hypervisor timer interrupts
Date: Fri, 20 Feb 2026 17:19:07 +0100
Message-ID: <9a17019c5668935afba1f7d932a3ad8a413e2919.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce timer_interrupt() to process IRQ_S_TIMER interrupts.
The handler disables further timer interrupts by clearing
SIE.STIE and raises TIMER_SOFTIRQ so the generic timer subsystem
can perform its processing.

Update do_trap() to dispatch IRQ_S_TIMER to this new handler.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v5:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Drop cause argument of timer_interrupt() as it isn't used inside
   the function and anyway it is pretty clear what is the cause inside
   timer_interrupt().
---
 xen/arch/riscv/traps.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 244264c92a79..326f2be62823 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -10,6 +10,7 @@
 #include <xen/lib.h>
 #include <xen/nospec.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 
 #include <asm/cpufeature.h>
 #include <asm/intc.h>
@@ -180,6 +181,15 @@ static void check_for_pcpu_work(void)
     p2m_handle_vmenter();
 }
 
+static void timer_interrupt(void)
+{
+    /* Disable the timer to avoid more interrupts */
+    csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    /* Signal the generic timer code to do its work */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -221,6 +231,10 @@ void do_trap(struct cpu_user_regs *cpu_regs)
                 intc_handle_external_irqs(cpu_regs);
                 break;
 
+            case IRQ_S_TIMER:
+                timer_interrupt();
+                break;
+
             default:
                 intr_handled = false;
                 break;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237345.1539783 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTE7-0002vM-B3; Fri, 20 Feb 2026 16:19:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237345.1539783; Fri, 20 Feb 2026 16:19: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 1vtTE6-0002uM-JO; Fri, 20 Feb 2026 16:19:34 +0000
Received: by outflank-mailman (input) for mailman id 1237345;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTE5-0000QF-1W
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:33 +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 efbaaea8-0e77-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 17:19:31 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso25267825e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:31 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.29
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: efbaaea8-0e77-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604370; x=1772209170; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=LVcUz3go1ll+YJIGlumu2dTw8eguMhCxN9OercwjZDI=;
        b=CzeyzsZjuhdp/nIFRyeEcHvL49z9phXXI56AG299PMzLzy/6+yEXm853eQeOw9H544
         V6nPezqQvNWhmhx/kC7Tq5ChH1OFC32yyG8uZtXUBkOTJpxModNaXZhXKj6GyVb6VUc3
         XUd1hBBMpC2l/v/DkKXnPgYWaFVzDbnZJcy0cqjQDdU0NLCwwmBAm4++sYmJNk2Yhzm0
         kWJoJQd9EosiaZ3pbjkfH0B+jMeG8wCLR4s66PgQckgpD1KkcDMmniFpHG+z4N1lhbXm
         cvnEf6V8cOjzwZgsb6KlsyV0j8foLgeTamzjLCCfO0p3BQT0vhjLpvPYtI5WozevnLTr
         nrhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604370; x=1772209170;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=LVcUz3go1ll+YJIGlumu2dTw8eguMhCxN9OercwjZDI=;
        b=a6xzsrPIqxIi4CIDLko2BsH1AVqlDWv8Pxw7QI06M/vsMNifu18VWZY2RD1oG6ult+
         3AvEQInK6o4CDzfJatl6x1TcFfkwv4/1IhpbH/q3OA6nEykFdA4wls9QtUHzQMMuWGPj
         8XsG93dai54nazGtoMMmSHh6xIqCHCA7CbIgr1Q7XaQ1CMkkVpbTZGERQGSeCj28zENZ
         sEXVyKWElyg2NNN5YmGlzzOf/QM82USOH64nplri0RK1bsZK/YXpZZX2WnmwetYTT+Sx
         Gq8BFoE+mW/m5+f5Ayn4bjKeRZW7uxlai2SbHBs4WqHde2ZOGAEoQXhKqjgJH0eEHnSQ
         qw+Q==
X-Gm-Message-State: AOJu0YyN83T2u4HF8WK7Z3jrvlNPtY2POxBJO8NzyBNC/+OMAHE4ppcC
	xirlHRISRUnt7DBovF0WQ0d4sCqCHXGFqGGO1PwMWSG5iqpLgbNNvf7VPn/4sA==
X-Gm-Gg: AZuq6aLWuUuJUvozgwkiAKh7TjuR/f17Sk8aMVi7iHHmXVnM0PnSuHNaO33zjSslY+0
	ZABSHJuB36axSza8eCfP/CFc8FUAYI751Tn1Cpkos0hAvDIgL7ZWV1zHyg2BOzHANZb9oeThHWV
	Rf1wGP9Vh7zCO4x/jmaHZbGUfH8RR1zjK4oRh21noFCSaB5UFBfQ9x6gwy0Yth7ViGL666qIbY8
	yTcrOdXBu00Ee2PwfNI6zMRKf0lwJyRRW7HsG/jrNxpfZE7su8HC6wjbr7xMjiNp/l+Ltv8Addf
	ZfR14AFA3lobv39c1OJ9ybv9aHxwtrpHmLLdPqpJmfTK5g+qqPUVZS0fkGFamZcKyfBXcz7a9Ux
	ntb6ab6oeblWmsqTVa6uSl2jFCsouXcAUPKxRx8JK4c4EdigwtfEMNzL48ZEDl4QkztvKsraVfl
	FcdEppcTzHuJYkfd52q4N/uaqx9YYCS5127LIakcEkHYi5AdXMzZhXA3LqiZh0XcyiRQ==
X-Received: by 2002:a05:600c:3516:b0:477:9b4a:a82 with SMTP id 5b1f17b1804b1-483a963df3cmr542505e9.35.1771604370417;
        Fri, 20 Feb 2026 08:19:30 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 11/14] xen/riscv: implement reprogram_timer() via SBI
Date: Fri, 20 Feb 2026 17:19:06 +0100
Message-ID: <c5389883e38a0e58b78a935f9e0351669bb3328b.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement reprogram_timer() on RISC-V using the standard SBI timer call.

The privileged architecture only defines machine-mode timer interrupts
(using mtime/mtimecmp). Therefore, timer services for S/HS/VS mode must
be provided by M-mode via SBI calls. SSTC (Supervisor-mode Timer Control)
is optional and is not supported on the boards available to me, so the
only viable approach today is to program the timer through SBI.

reprogram_timer() enables/disables the supervisor timer interrupt and
programs the next timer deadline using sbi_set_timer(). If the SBI call
fails, the code panics, because sbi_set_timer() is expected to return
either 0 or -ENOSUPP (this has been stable from early OpenSBI versions to
the latest ones). The SBI spec does not define a standard negative error
code for this call, and without SSTC there is no alternative method to
program the timer, so the SBI timer call must be available.

reprogram_timer() currently returns int for compatibility with the
existing prototype. While it might be cleaner to return bool, keeping the
existing signature avoids premature changes in case sbi_set_timer() ever
needs to return other values (based on which we could try to avoid
panic-ing) in the future.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - Nothing changed. Only rebase.
---
Changes in v4:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Correct the comments in reprogram_timer().
 - Move enablement of timer interrupt after sbi_set_timer() to avoid
   potentially receiving a timer interrupt between these 2 operations.
---
Changes in v2:
 - Add TODO comment above sbi_set_timer() call.
 - Update the commit message.
---
 xen/arch/riscv/stubs.c |  5 -----
 xen/arch/riscv/time.c  | 43 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index eedf8bf9350a..2f3a0ce76af9 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -21,11 +21,6 @@ nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* time.c */
 
-int reprogram_timer(s_time_t timeout)
-{
-    BUG_ON("unimplemented");
-}
-
 void send_timer_event(struct vcpu *v)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 2c7af0a5d63b..7efa76fdbcb1 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -7,6 +7,9 @@
 #include <xen/time.h>
 #include <xen/types.h>
 
+#include <asm/csr.h>
+#include <asm/sbi.h>
+
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
@@ -40,6 +43,46 @@ static void __init preinit_dt_xen_time(void)
     cpu_khz = rate / 1000;
 }
 
+int reprogram_timer(s_time_t timeout)
+{
+    uint64_t deadline, now;
+    int rc;
+
+    if ( timeout == 0 )
+    {
+        /* Disable timer interrupt */
+        csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+        return 1;
+    }
+
+    deadline = ns_to_ticks(timeout) + boot_clock_cycles;
+    now = get_cycles();
+    if ( deadline <= now )
+        return 0;
+
+    /*
+     * TODO: When the SSTC extension is supported, it would be preferable to
+     *       use the supervisor timer registers directly here for better
+     *       performance, since an SBI call and mode switch would no longer
+     *       be required.
+     *
+     *       This would also reduce reliance on a specific SBI implementation.
+     *       For example, it is not ideal to panic() if sbi_set_timer() returns
+     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
+     *       without SSTC we still need an implementation because only the
+     *       M-mode timer is available, and it can only be programmed in
+     *       M-mode.
+     */
+    if ( (rc = sbi_set_timer(deadline)) )
+        panic("%s: timer wasn't set because: %d\n", __func__, rc);
+
+    /* Enable timer interrupt */
+    csr_set(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    return 1;
+}
+
 void __init preinit_xen_time(void)
 {
     if ( acpi_disabled )
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:19:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:19:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237348.1539803 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTE9-0003YD-So; Fri, 20 Feb 2026 16:19:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237348.1539803; Fri, 20 Feb 2026 16: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 1vtTE9-0003X7-FS; Fri, 20 Feb 2026 16:19:37 +0000
Received: by outflank-mailman (input) for mailman id 1237348;
 Fri, 20 Feb 2026 16:19: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTE6-0000QF-Oh
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:34 +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 f0f95195-0e77-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 17:19:33 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so21053935e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:33 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.31
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f0f95195-0e77-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604372; x=1772209172; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YUjjpoIwoAsmqBjVZlQVP03PbDqZ+GKG9bzz4eYhrug=;
        b=TldlrxjB5beTKAEK6SWpnuXbM74lwB57UfIlKBVh4+Q3yR2/p0YdaABAF7XT+hNiiH
         J1G7rWSjaaQPRRfJz/JwfAYQWUt5iHTQ1E2XJMS90axUWonjQa71Fr2pjjxrZYtlQSyR
         PBav+a6TrSiTE85vm4gcf8ExtWA8FSYPiFeYlUcrmrR7i+2ad69z9SnaJyoDeprdL47Z
         3u111rgOoT7jSthmiMJqc6IgfaQKjdQ4FZDQYWnOwePnY9ArlJMXPxE7+FJmEvh5GyOd
         C+8YkuNkwUl0SXIdbjEuvRKrxE1L+mbMVgW+cVtDznD2+8W/l94QjlxR5jiDqZml0011
         Smiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604372; x=1772209172;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=YUjjpoIwoAsmqBjVZlQVP03PbDqZ+GKG9bzz4eYhrug=;
        b=r0hWaAfNjqdC7b2USi/j3HQqudE3AcIfIzN82fMPYTfTkp14l3lYxdzufW0AY0orXv
         Im2SS/HN9ZdjTNyD5jTVzUxyvj1LGX69utU4fqwmhk72wRupizsuiby10ljE92uau7ul
         CDz3nPFmptBe9grrCIhd79seQWvlG7Udz9aUx3lcsgl5ps+hkgcyOkDwm864Ob6CZTAr
         HnSU+WU6L6t18vR8Jb8bG0NHqy0QDZ6/ISCQP4Rdwq2mZAMhXKXi5Zy9lX4j4woDzgIm
         HvWnPIVE9vnDIr9JHv/LKOnmCBht8gxvba/VQLx1tWEriC/hR/qAFsKziuVhfRl197Us
         3+xQ==
X-Gm-Message-State: AOJu0YyRP/SolNo+Y3T5m16oRv/qSEFQXnzmOz49v+mrooh7mmy/E2iY
	F+WoejNoMGV/b9amtY3ksg9bIvbudCckuvtbP4+n6DF+XilYE/pzO0YPjk0DgA==
X-Gm-Gg: AZuq6aKUw+bWDaO7b9ZOMsJrxiU66tu2xqZHkBhDc9jq9T6E/PaIcMHpPciYPebRt8H
	BMr3p7XXB2DAJj67XG4wf+Txv36zMpvDaif8Rr5Sg686z18lwQlUnySNQKJ6qsun5X3nsvZDCBs
	/EAJ9YJE0Xne3XZQT47Y1QQgwoADX0BZh5j10i6kAVkYzCHgB5P4PiUOl9R5jqhHAwqQd9If4fw
	IgCc1s98PQzaMnAJ4jMDnlXUEL+DfQOX49lCsBou2Uleyo1QKLro258ehYrLsmclZ3A2OMDWc80
	tA0J2O4pu5uhV1fKVRELpt2aKUPSemoee3e5J9GTif0fRdAbGFd0+KyUHigq4/+Xb7uKlWDHFa6
	/leMkGNWhQWOWZ5DPbiquWE1Ic/Gm7QkQrLZm8OuKR9V619O4mPGAhe5yjAUOUvFGd5WgSoTFHZ
	gUTdPqv4tWzGVTg6/WuNAk7nz2t/jGXtLsedX4MONsv51EVNjjvbPHm2Su4opBEAUk8C4bLh62p
	sch
X-Received: by 2002:a05:600c:4505:b0:477:7b16:5fb1 with SMTP id 5b1f17b1804b1-483a95a854amr1728915e9.7.1771604372512;
        Fri, 20 Feb 2026 08:19:32 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 13/14] xen/riscv: init tasklet subsystem
Date: Fri, 20 Feb 2026 17:19:08 +0100
Message-ID: <0119532189c85a4db110e5772a263aec22d9f3db.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As the tasklet subsystem is now initialized, it is necessary to implement
sync_local_execstate(), since it is invoked when something calls
tasklet_softirq_action(), which is registered in tasklet_subsys_init().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - It was something wrong with prev. rebase. So fix that and move
   removing of sync_local_execstate() and sync_vcpu_execstate() to the
   next patch.
---
Changes in v4:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Update the commit message.
 - Move implementation of sync_vcpu_execstate() to separate commit
   as it doesn't connect to tasklet subsystem.
---
 xen/arch/riscv/setup.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index bca6ca09eddd..cae49bb29626 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
+#include <xen/tasklet.h>
 #include <xen/timer.h>
 #include <xen/vmap.h>
 #include <xen/xvmalloc.h>
@@ -133,6 +134,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
         panic("Booting using ACPI isn't supported\n");
     }
 
+    tasklet_subsys_init();
+
     init_IRQ();
 
     riscv_fill_hwcap();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 16:27:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 16:27:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237427.1539819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtTLm-0000Cd-LR; Fri, 20 Feb 2026 16:27:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237427.1539819; Fri, 20 Feb 2026 16: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 1vtTLm-0000CV-HG; Fri, 20 Feb 2026 16:27:30 +0000
Received: by outflank-mailman (input) for mailman id 1237427;
 Fri, 20 Feb 2026 16: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=O9tK=AY=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vtTE8-0000Q4-60
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 16:19:36 +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 f19f704f-0e77-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 17:19:34 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-436356740e6so2400953f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 08:19:34 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43796a6c1bfsm56991068f8f.13.2026.02.20.08.19.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 08:19:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f19f704f-0e77-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771604374; x=1772209174; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mxX3OIZ6fZxPE5LWGOGy7jniho2pldOrYX/WsQ7ZseY=;
        b=aQ+mBjmditTabdtTiLen9Nn1Q5/ciZQezC6JmoZfKBlC0/4Z/Zjjig+CAh0ZddyTTM
         76NQrtQa/gfUSq9r9TUQZZmK5pUuUhWzlZZrWmBpgYb7Szsib6/70rAuklOuuzv4Ad2G
         0u/s0bYGsa7axWWJJC7aUGD67R5yRiBZpUoJlfzzG6uAlZTGFFJ2CmTzjQI7z7LQexff
         63i0bzXWedx5peu2BOnXCxjkjeVDq8gaNVKyz+PU0hObRR12CyFN9xcFELZKFucbAISA
         uTb3gSNXBN6Iga6ivTZCtRjYsbdRaYIbbpuh06gll1c6pWhPgSKPBhpRvKXIYV9m5++P
         tHsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771604374; x=1772209174;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mxX3OIZ6fZxPE5LWGOGy7jniho2pldOrYX/WsQ7ZseY=;
        b=r5UiTyi4JQZW/eBMlFVZoFE56gNLpoUmk/Iqq6psJfArJnEoh6w5Pk44XO3n/oNlA5
         jdcJh2HjDsSd7frqkPPSSz7IdleqWFOOQoXSNenE8Ahccl0pRn2IHog7B0VQGNeNJ724
         bBJQpmHtJz+zdbLC8QcewlGWNuMKPoPJr2pkN3Cn4OmCc8SkFZGODvsyPC43HNuSlbHS
         WHvZLH3aq2FF6+dYmVUsYZy03/QZMC9jV2ZCtiqm9r4dcnv7yi8M/TnpAVKnZb9ABwyr
         vXTPN9eQ/ImOsZQGW2IVyV4oMKixN1Qc6YZ859TTrdrC3OcAu58eY94P7M3d9vseqWYr
         TKGA==
X-Gm-Message-State: AOJu0Yzqp+mN5mGxgyNirx5QnmtkZMdWtb+/hvFj3jxwtpHP0zIWLPrn
	7IvHHAaDJkXe93mErKYHG9PICCkXr95O0dcmasW2GvJy6R6flD2PcZBBQ1Jq0A==
X-Gm-Gg: AZuq6aKa4KNQu3wOGshxZKQkwuVZyLSOayqLro28fbXp/zjJxSo5FlPFFQUvRkzA+ji
	Fx6GV1uvU18RJrgu+TwLIeyOe2NzxpCeChBRKwhqWM4QyvwOhWoeP7ja81K+PuO+bRn7YRkF0gA
	TduAj1f0gOQdldsWw3q8+ReEvY+532EEJuBAjG5XcB2a5cHav4la5Pg1NcKCSh8JrDuBLTrYigW
	lurjcWBel45VG/NxQDxkXgHr9fGq9P0IinSuUuy0FUfed6t83fAEK1n/itwD4wI2R0QZdBqiVEI
	4ITzTOBiof9GV6MwWTmGy6pUP/1eLYJAoRpvDk8+sok7WAm5ij+u74EYGHPb02vPliCzRw4dQsb
	BF198VPADKPrBWJFp5QXP9mqAxbDgHuB2opyRL4JVndK/TcGJJnm5YMa9Oqy2McKdMsePNsZONs
	8JISIvQcedqa6VN6YV/zUjJWsquHqsDnG+2YxSxBMxDPsq+bArjE/eZXkG/BcSO199DOItVw==
X-Received: by 2002:a5d:5888:0:b0:436:1517:aeca with SMTP id ffacd0b85a97d-4396f157d2amr785935f8f.15.1771604373504;
        Fri, 20 Feb 2026 08:19:33 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v5 14/14] xen/riscv: implement sync_vcpu_execstate()
Date: Fri, 20 Feb 2026 17:19:09 +0100
Message-ID: <db452b0d728d87220deab4d55d3141a82746bbb7.1771590794.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1771590794.git.oleksii.kurochko@gmail.com>
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The scheduler may call this function to force synchronization of given
vCPU's state. RISC-V does not support lazy context switching, so nothing
is done in sync_vcpu_execstate() and sync_local_execstate().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5:
 - It was something wrong with prev. rebase. Drop stubs for
   sync_local_execstate() and sync_vcpu_execstate() in this patch.
---
Changes in v4:
 - Drop footer as [PATCH] sched: move vCPU exec state barriers
   is merged to upstream/staging.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Align sync_vcpu_execstate() with patch:
     [PATCH] sched: move vCPU exec state barriers
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c | 10 ++++++++++
 xen/arch/riscv/stubs.c  | 10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index fb5c21078172..f3b22d05071d 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -265,6 +265,16 @@ void vcpu_kick(struct vcpu *v)
     }
 }
 
+void sync_local_execstate(void)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 2f3a0ce76af9..acbb5b9123ea 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -91,16 +91,6 @@ void continue_running(struct vcpu *same)
     BUG_ON("unimplemented");
 }
 
-void sync_local_execstate(void)
-{
-    BUG_ON("unimplemented");
-}
-
-void sync_vcpu_execstate(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void startup_cpu_idle_loop(void)
 {
     BUG_ON("unimplemented");
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 20:50:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 20:50:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237584.1539829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtXSO-00027r-Em; Fri, 20 Feb 2026 20:50:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237584.1539829; Fri, 20 Feb 2026 20:50: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 1vtXSO-00027j-9c; Fri, 20 Feb 2026 20:50:36 +0000
Received: by outflank-mailman (input) for mailman id 1237584;
 Fri, 20 Feb 2026 20: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=b+hA=AY=kernel.org=pr-tracker-bot@srs-se1.protection.inumbo.net>)
 id 1vtXSM-00027b-KY
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 20:50:34 +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 cbd45f8c-0e9d-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 21:50:33 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1F57B441FC;
 Fri, 20 Feb 2026 20:50:31 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2C14C116C6;
 Fri, 20 Feb 2026 20:50:30 +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
 056E43808200; Fri, 20 Feb 2026 20:50:40 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cbd45f8c-0e9d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1771620631;
	bh=3dRYbSGOYHNdFaNWK6wZcdevTB2Eb6ruwxO03ukN0z8=;
	h=Subject:From:In-Reply-To:References:Date:To:Cc:From;
	b=db9IO140/sAYMpwqAFdXRVLITwcmjIUSz1s35plpFkKbFgjfAM7L3GNWleJiJtZE9
	 6IwfBm8jqy+AXiyI25P5tJPZZE8Kst+HasVKdJucTbjRxag64bDy8ct/3pH9VjAXtL
	 DJcFTe6keEJcsLOl8hBxYt79t+JphnOskiQjwaSXb7bf8DxowHffUwm59k5YKfCOq4
	 /N79Avczmh8Xg10iemB/UQNI9MW/KFXcYlWjkXTQXrLp1EZ3/g9E744+fwd8CLVapv
	 I4zKy+BF/EW5/vthrPIkyTZtS1Z+7fFSujUxkNOggoK8eVA8W8lYETIaAUkj8RErnI
	 WipmMWLaWTQJg==
Subject: Re: [GIT PULL] xen: branch for v7.0-rc1a
From: pr-tracker-bot@kernel.org
In-Reply-To: <20260220123715.834848-1-jgross@suse.com>
References: <20260220123715.834848-1-jgross@suse.com>
X-PR-Tracked-List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
X-PR-Tracked-Message-Id: <20260220123715.834848-1-jgross@suse.com>
X-PR-Tracked-Remote: git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc1a-tag
X-PR-Tracked-Commit-Id: 5043d7ed39dfdce3107d6642aa31bb7736547104
X-PR-Merge-Tree: torvalds/linux.git
X-PR-Merge-Refname: refs/heads/master
X-PR-Merge-Commit-Id: c8cb804a8add8d6f41b3805441b2ad16e30fbcc0
Message-Id: <177162063897.902486.12071756067544962355.pr-tracker-bot@kernel.org>
Date: Fri, 20 Feb 2026 20:50:38 +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, 20 Feb 2026 13:37:15 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git for-linus-7.0-rc1a-tag

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c8cb804a8add8d6f41b3805441b2ad16e30fbcc0

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html


From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237610.1539855 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYL5-0008V2-QS; Fri, 20 Feb 2026 21:47:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237610.1539855; Fri, 20 Feb 2026 21: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 1vtYL5-0008U7-Km; Fri, 20 Feb 2026 21:47:07 +0000
Received: by outflank-mailman (input) for mailman id 1237610;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL4-0008IG-Si
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:06 +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 b20f812e-0ea5-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 22:47:04 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4833115090dso23877675e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:04 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b20f812e-0ea5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624023; x=1772228823; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=dnaGS3zzuYsqMjk2MsjJw1YBBqsXTM67p067A0SdSPM=;
        b=RnV7e929jDxnjFS6JQ1PaZUmscQO56lX1vX8mSew/OL7dfQNIdUGs02ZTmWFgLS/0T
         VoJDmJejvbzmTq6eXKP6KVm9l1Npg8Dm0B2t59xY4ZsCctucIwX0QvYbPbeZizUJi54T
         o4feGno69YrXtOUygsi7AUFFvkflZ97rRa/e8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624023; x=1772228823;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=dnaGS3zzuYsqMjk2MsjJw1YBBqsXTM67p067A0SdSPM=;
        b=K2Gd4ORZZz3GFRVt/pXGy8c9FaE2rIXRMeloFhhCvJxkxwy9PGdZB8BQpL2A575Egs
         mvEmVP8r7sl5q39qzrs7qPfMwuLylnhZNUwveQIxFiPZRSOvHWtxf0GPfodT8JRKzfjo
         mQYP3dh1A1A+EEIR7enApPbdQZOGZHQvOpUVeTo1wKqhjS2mWloA2YTp5BnajCPAxWi5
         oOGOTBzjyP+8iyFqkxJ/DSDfc6FOOx96iVgVRcc1KULY2qOx49+j38Ee9baVK0zRT/Fb
         /nQDWd61jSeyEijwEUKdKwubzYibX26gxuCQDA5uqrJPFOQUTBEqavsY4VlcFIyVKYsb
         zZ9A==
X-Gm-Message-State: AOJu0YxX0AqGxbKJ4V9jFxEdOn2rr9YkjbskbYYAENqaQm1H6uICAJWW
	xrC9xmZtjFe32QabGx7au1AdDsP/lrDn4CVS5C55k9fAQiwecJDwnDD25vPb7qR0KmisYICzIiT
	pHHkBO9P5jg==
X-Gm-Gg: AZuq6aK/6IG9NRGuqysHDcmBKOoI/a4hvFp6UALIzcpRbhddizb/wkQy4bIvte1qiR6
	s6BQ+3PEnUVeDvkd5Sk3l5SBP20ORuvXcZnClfg11A5+yZoDO10E+QrzQLHEGozzhldOfQdnr2K
	XeXF/PCBAQohvRwSAyRYIew4LlV6MPypVhCm5HvW210joQdislBLEWj6FzifapCMt1m8S4/v/iZ
	XfdhowkfNo72Dki4+PMfl0DNANYsuIukvzB9noVWKWF2S27G+MUoSIpYBKfgbr4DqsDPAXDw2at
	ULwIoEFDRT8NBmNtWzdxg9jCJIEzzYsxczHUmnX8W08Ofq4lies2ulzd0iTLPgwCtLLMhXPg0bF
	6EdCZ/k0sHPdTXvO23RMn2SmtzAI38LgCzvvTj+j2dKsZBotqrPmjqz5Wt/UyJQepLJKK5zcy87
	v/d/5QH/eUn6e8R/Q1F7wo+iIyLc7AXcGjFGFFjMSyaoKRTgrCdUmTGaqgN9DQ/CFJCQhqlvm2z
	uMnsIXJmA==
X-Received: by 2002:a05:600c:6291:b0:477:8985:4036 with SMTP id 5b1f17b1804b1-483a95b5a7dmr15500545e9.1.1771624023312;
        Fri, 20 Feb 2026 13:47:03 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 01/12] arm: Use __func__ in acpi_boot_table_init()
Date: Fri, 20 Feb 2026 21:46:42 +0000
Message-Id: <20260220214653.3497384-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Elcair rejects __FUNCTION__ as nonstandard syntax and a R1.1 violation.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/arm/acpi/boot.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
index db5085e15d84..4ac0fd8f51e8 100644
--- a/xen/arch/arm/acpi/boot.c
+++ b/xen/arch/arm/acpi/boot.c
@@ -264,14 +264,14 @@ int __init acpi_boot_table_init(void)
     if ( error )
     {
         printk("%s: Unable to initialize table parser (%d)\n",
-               __FUNCTION__, error);
+               __func__, error);
         goto disable;
     }
 
     error = acpi_table_parse(ACPI_SIG_FADT, acpi_parse_fadt);
     if ( error )
     {
-        printk("%s: FADT not found (%d)\n", __FUNCTION__, error);
+        printk("%s: FADT not found (%d)\n", __func__, error);
         goto disable;
     }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237611.1539868 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYL7-0000TE-12; Fri, 20 Feb 2026 21:47:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237611.1539868; Fri, 20 Feb 2026 21: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 1vtYL6-0000T3-Up; Fri, 20 Feb 2026 21:47:08 +0000
Received: by outflank-mailman (input) for mailman id 1237611;
 Fri, 20 Feb 2026 21: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL5-0008Ew-Bg
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47: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 b309dc2b-0ea5-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 22:47:06 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48371119eacso24629185e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:06 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b309dc2b-0ea5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624025; x=1772228825; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F7fA2pJ5wU91qVSnLRts4j2C2n/06cd+/6bA5bE+4M0=;
        b=P+n+Jw261ki3egld4sClFtEsttya0CKtnHY0fjtiQDUcqumvNYTw7kstErSWq9lOTL
         TALtfUpfIu3dOenbls9IFLPu9TOHtXbwLKPemXmvcoR4TMrvmCFTqVxao+d9ONSJr18q
         ZHozBulh3BnPltcJxS/fGhlalKyxpiPC/Bw/M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624025; x=1772228825;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=F7fA2pJ5wU91qVSnLRts4j2C2n/06cd+/6bA5bE+4M0=;
        b=OaB0e5ePqL2N7McG+sfJComQ59HIxmb8x6OXZWucT1grfs97HEAzx9aBf8JaiMANmf
         6ySmiYTdyGMHnaF3k3yFWWEVfQgY7s5RjWUy3L2q7X9H8PxrPpsBFg6Ytxbs9o75ZZnu
         s+GoeRlOasmrM8FIY0Y6+r0q7fXdgcHrYgha5B8IJ/418G+pRhMyfI/VbWZ8Pls9sHbr
         zs+x4B2bU8ill1swSb/yYUIBr4VRPIRfnj5W0sE+1/GXnrvUGUV6Iw0KyJ9b/IV8rD/F
         uo78fmoy8pM/RVPqdS2yymqq821ZCfEJ5SVckLdr34koPwpsfSkffD3TQLHy9NecCg8q
         mSyQ==
X-Gm-Message-State: AOJu0YyJdqi6wIXM+LRnvXhIsPsvwbn2cR0ZHJUTVo6fNZlFKzJfStuc
	x27OP9osicnYDBt/TZpM5RODQqqYMk9aZVX+BxGbAQF1vzce9NebObVT4+lqzqWRCT7nZwZohmA
	ZvFUVA+1D8g==
X-Gm-Gg: AZuq6aLhvuAi5xMtiorQK/45A2MlTdhwnbLt2m8NvpDsaaqjWIbHxVXWETEwMn9qnsC
	mCEd96jRHs6UK65bAaXtdS/IzYUIrDEydfCUBgzljKpLbiYFJVk3zZLo9MrzZgqtkEoILNCX4FG
	L9GOc8lSPZ8FsAg0AfKHUc5UfS4u31nK2nyxa0TGhwYoptZdYwvreQ5mr5CbgTLTxfDeCsKZVdk
	2UKqLGkfMd9c/3px8Ftn+kVE2HYbzZvU5xCiiNKm+bapFeD17evvnB/kMH1rc7tAnso+STxAlOT
	IFQnOBLNj0RLYS/MIggAu4tQl5cHrrORwkv5pYOVKVjQ5pjsyzHqTnXotpHnufaVxHE8lm40FMT
	pBN5zmZ/lEpucyZhlyH2Uh93HXvYO1cGV5HYfLULt0stY8Td+GuTrdi6hJufLEy3zan9mPyFZxR
	/RJ5Qqe5+6hnJ2nVOAPGIBID1yjbKuZf66yaq3IkEnklci0/mUy2q1mjvUV4p/jnitbAAagnQ=
X-Received: by 2002:a05:600c:c4a5:b0:483:a2ce:f461 with SMTP id 5b1f17b1804b1-483a95eb453mr15945185e9.4.1771624025257;
        Fri, 20 Feb 2026 13:47:05 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 03/12] xen/argo: Fix MISRA violations around function parameters
Date: Fri, 20 Feb 2026 21:46:44 +0000
Message-Id: <20260220214653.3497384-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For the ARM build only, Eclair reports a R8.4 violation because do_argo_op()
cannot see its declaration.  This means that x86 is picking hypercall-defs.h
up transitively while ARM is not.  Include xen/hypercall.h explicitly.

Eclair also reports a R8.3 violation because of arg3 and arg4 differing in
name with a raw_ prefix.  Because hypercall-defs.h generates both do_argo_op()
and compat_argo_op() from a single description, it's not possible to simply
rename to raw_ in the declaration, as that would force doing the same rename
in compat_argo_op().

In do_argo_op(), drop the split parameter handling, and perform the 32bit
range check via an explicit cast.  While adjusting the surrounding logic, drop
unnecessary casts to void * for already pointer arguments in argo_printk().

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/common/argo.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/xen/common/argo.c b/xen/common/argo.c
index 029a82825ba8..28626e00a8cb 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -21,6 +21,7 @@
 #include <xen/errno.h>
 #include <xen/event.h>
 #include <xen/guest_access.h>
+#include <xen/hypercall.h>
 #include <xen/lib.h>
 #include <xen/nospec.h>
 #include <xen/param.h>
@@ -2084,18 +2085,17 @@ sendv(struct domain *src_d, xen_argo_addr_t *src_addr,
 
 long
 do_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
-           XEN_GUEST_HANDLE_PARAM(void) arg2, unsigned long raw_arg3,
-           unsigned long raw_arg4)
+           XEN_GUEST_HANDLE_PARAM(void) arg2, unsigned long arg3,
+           unsigned long arg4)
 {
     struct domain *currd = current->domain;
     long rc;
-    unsigned int arg3 = raw_arg3, arg4 = raw_arg4;
 
     argo_dprintk("->do_argo_op(%u,%p,%p,%lu,0x%lx)\n", cmd,
-                 (void *)arg1.p, (void *)arg2.p, raw_arg3, raw_arg4);
+                 arg1.p, arg2.p, arg3, arg4);
 
     /* Reject numeric hypercall args outside 32-bit range */
-    if ( (arg3 != raw_arg3) || (arg4 != raw_arg4) )
+    if ( (arg3 != (uint32_t)arg3) || (arg4 != (uint32_t)arg4) )
         return -EINVAL;
 
     if ( unlikely(!opt_argo) )
@@ -2248,7 +2248,7 @@ compat_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,
         return rc;
 
     argo_dprintk("->compat_argo_op(%u,%p,%p,%lu,0x%lx)\n", cmd,
-                 (void *)arg1.p, (void *)arg2.p, arg3, arg4);
+                 arg1.p, arg2.p, arg3, arg4);
 
     send_addr_hnd = guest_handle_cast(arg1, xen_argo_send_addr_t);
     /* arg2: iovs, arg3: niov, arg4: message_type */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237608.1539839 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYL4-0008FA-BL; Fri, 20 Feb 2026 21:47:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237608.1539839; Fri, 20 Feb 2026 21: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 1vtYL4-0008F2-7l; Fri, 20 Feb 2026 21:47:06 +0000
Received: by outflank-mailman (input) for mailman id 1237608;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL3-0008Ew-OW
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:05 +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 b1f5e64b-0ea5-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 22:47:04 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-483a233819aso21422275e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:04 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b1f5e64b-0ea5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624023; x=1772228823; 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=yGBm2Qu8JB9RHbibbfp7HlpdXgEWIgkhDqMgDac0Xk4=;
        b=Io9XjymCsQDDZDVoj5N1IhV5bPxuWzLKxe+ApAzm2HaWrhvW2ysmUYbgEPEePZWawu
         rmWAjio4Wa5E/EN7GAeuefHZlIl/mlZIoAZKxJqY4frXstJx0/n3a9KoC7z5tfuuZtIU
         1Z9tjknxuqOwhVAFgY5Ba8U3hVLYmqGsmZaw4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624023; x=1772228823;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yGBm2Qu8JB9RHbibbfp7HlpdXgEWIgkhDqMgDac0Xk4=;
        b=cqU6ga5SbmlKYp45B8M0R6Vgu/4j5IZljVXK27jKb2afftg0nU9C4nUipV7V1UZ26i
         nEMSYXQ+eUIdK9fQhW+XdNfQxtIB3AsW0NeA+SUuqjt5EzjgdQ73aljzsk+7DezoKC5I
         SjCCgIzD4QWPFDTnUOZgYg9HFM+GYuIa4Vnymz03iiyL8X9bn/8hNUiCeW+1gJoXnG4Y
         b7Ot2NDkRBrA2MikEQAWEmxcuIT1mryJPqS/8jd6eDwaCqZL5nFFaYR5sQzu6rBsUCeX
         6v6Q0HI3d2Vwvip99AxrHEFT1X9N1DoNRkGVMdmA1F5HIrpFaEg0YzpF7LewoPKn7xkt
         utMQ==
X-Gm-Message-State: AOJu0YzSn/qhp/fgzC0TAWfqPvIyFQoDwO37YbiG8mvTwPMQKGeT7Jyf
	gtvMH3yMQC3BQtiJu7VjEieuXFzmNN8uDAtM4G7Km5/4eFKIKBqIFy2yqRPouWnNmUVZdYA7GkX
	vaP2u
X-Gm-Gg: AZuq6aLMJFe+F+H3qcxNg9OdohtuDCbVPz0kZlUwwUh0ZZ8GpfV7+n8TIt5Q26hGYJQ
	+644TQTazBV/+Wo6l9MrbjiKpFjOEtj99xQXd1MUogVlhXt8L8Sxi0YyWNBi3rQ09liNlD/5AkE
	/WfmL7xQcvcqcc3dVAGvL6Ks0EGxA3blRHsse9fsg2wcAAv+MxzCmCNSn9AIyBrraW9R+h5lEVD
	irpL4EMeUnfkmye1AK3uHOZTfl7YhuNgWiETRuPepQFwTZauMwS2Os/DW5fqzp2bpH/zIz4meE7
	5MKqStYhFt3kkVA19ruyszL2avLUViRGXaZZaXiAMwn5UCwhBPxNV+5faZWjUSb/X4UByHbvU4g
	Ckc/kuCe1eiikJ6PU7g+j1SneQzoL7EysgcJPBae+UML4mcNbVfzUK3yBkdmgl1tzPO3hPyWNYA
	e2HgPhFl4vBIDiitvljj1a2Y+AlXHYnwtA4sq9EQCacjGME+PUlsjYaMvXORcrfiqjTARNPU8uS
	YlNW6wPdg==
X-Received: by 2002:a05:600c:5020:b0:483:71f7:2767 with SMTP id 5b1f17b1804b1-483a95fc0a9mr16791075e9.11.1771624022613;
        Fri, 20 Feb 2026 13:47:02 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 00/12] xen: Misc MISRA fixes for *-allcode targets
Date: Fri, 20 Feb 2026 21:46:41 +0000
Message-Id: <20260220214653.3497384-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

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2340465777

This fixes some low hanging fruit.  There's still more work to do in both the
x86 and ARM -allcode targets

Andrew Cooper (12):
  arm: Use __func__ in acpi_boot_table_init()
  xen/treewide: Adjust suffixes on integer literals
  xen/argo: Fix MISRA violations around function parameters
  xen/treewide: Adjust parameter names and types
  x86: Adjust annotations of asm-used identifiers
  xen: Include suitable headers to make declarations visible
  xen/vmac: Const the key parameter of vmac_set_key()
  arm/pci-designware: Fix MISRA violations
  x86/shadow: Rework write_atomic() call in shadow_write_entries()
  xen: Adjust break/fallthrough statements
  xen: Bracket uses of macro parameters
  xen/vmac: Delete STDINT block in vmac.h

 xen/arch/arm/acpi/boot.c                 |  4 ++--
 xen/arch/arm/gic-v3-its.c                |  2 +-
 xen/arch/arm/include/asm/pci.h           |  2 +-
 xen/arch/arm/include/asm/tee/optee_msg.h | 16 +++++++--------
 xen/arch/arm/include/asm/tee/optee_smc.h |  8 ++++----
 xen/arch/arm/pci/pci-access.c            | 10 ++++++----
 xen/arch/arm/pci/pci-designware.c        |  4 +++-
 xen/arch/arm/pci/pci-designware.h        |  5 ++---
 xen/arch/arm/tee/optee.c                 |  7 ++++---
 xen/arch/x86/boot/cmdline.c              |  3 +--
 xen/arch/x86/boot/reloc.c                |  3 +--
 xen/arch/x86/guest/xen/pvh-boot.c        |  2 +-
 xen/arch/x86/guest/xen/xen.c             |  4 ++--
 xen/arch/x86/include/asm/bootinfo.h      |  2 +-
 xen/arch/x86/include/asm/compat.h        |  2 +-
 xen/arch/x86/include/asm/config.h        |  2 +-
 xen/arch/x86/include/asm/guest/hyperv.h  |  2 +-
 xen/arch/x86/include/asm/p2m.h           |  2 +-
 xen/arch/x86/include/asm/pv/mm.h         |  8 +++++++-
 xen/arch/x86/include/asm/pv/traps.h      |  6 ++----
 xen/arch/x86/mm/mem_paging.c             |  8 +++++---
 xen/arch/x86/mm/shadow/common.c          |  2 +-
 xen/arch/x86/mm/shadow/multi.c           |  2 +-
 xen/arch/x86/mm/shadow/set.c             |  4 ++--
 xen/arch/x86/pv/emul-gate-op.c           |  4 +++-
 xen/arch/x86/pv/emul-inv-op.c            |  1 +
 xen/arch/x86/pv/emul-priv-op.c           |  1 +
 xen/arch/x86/pv/emulate.c                |  1 +
 xen/arch/x86/pv/grant_table.c            |  1 +
 xen/arch/x86/pv/hypercall.c              |  2 +-
 xen/arch/x86/pv/mm.c                     |  1 +
 xen/arch/x86/pv/ro-page-fault.c          |  1 +
 xen/arch/x86/pv/traps.c                  |  1 +
 xen/arch/x86/tboot.c                     | 10 +++++-----
 xen/arch/x86/traps.c                     |  3 +--
 xen/arch/x86/x86_64/machine_kexec.c      |  3 ++-
 xen/common/argo.c                        | 12 ++++++------
 xen/common/kimage.c                      | 11 ++++++-----
 xen/common/livepatch.c                   | 11 ++++++-----
 xen/common/stack-protector.c             |  1 +
 xen/crypto/vmac.c                        | 12 ++++++------
 xen/drivers/char/xhci-dbc.c              | 14 ++++++-------
 xen/include/crypto/rijndael.h            | 16 +++++++--------
 xen/include/crypto/vmac.h                | 25 +-----------------------
 xen/include/xen/acpi.h                   |  2 +-
 xen/include/xen/libfdt/libfdt.h          |  6 +++---
 xen/include/xen/stack-protector.h        |  2 ++
 47 files changed, 125 insertions(+), 126 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237609.1539850 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYL5-0008Se-Iy; Fri, 20 Feb 2026 21:47:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237609.1539850; Fri, 20 Feb 2026 21: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 1vtYL5-0008SW-EX; Fri, 20 Feb 2026 21:47:07 +0000
Received: by outflank-mailman (input) for mailman id 1237609;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL4-0008Ew-An
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47: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 b2a20ada-0ea5-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 22:47:05 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so29346975e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:05 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2a20ada-0ea5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624025; x=1772228825; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jDPL04AxDc8Xafccu1ZVRQiZUTvtnTnKwY+v0GkBCrE=;
        b=Ji2GEFyPAZ3Ns9pvX2Of+s46mxwkpdcPtoXIxxk0svZSdwXS5RUddD/zEj4LRs7dRd
         LBhVjCn3P1n0gtbIAeNITqJ5rvs7woU453b/TpRZM+xm/tunb1eNfC2t0NAF1KYvH44w
         yTMggrHCWWqn3R/fmHJQs8SXG5H04Kwj7r2Tk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624025; x=1772228825;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=jDPL04AxDc8Xafccu1ZVRQiZUTvtnTnKwY+v0GkBCrE=;
        b=eZRnDdXdqskNblg2lNBZT6HTvrjyqzD+H13RDCtizGou2zwx8ULfEw2OBC9AFdGRP3
         M6W9IT3gkPItztdVKlzd18p+X/EywCnSF3p2JgpjMEiy6uIfj6RUdkNiK12hOSfBOvSh
         +r3FugzF3FzfVz1E0lJ7y6C7ExQhCw6rjLV+kGInB6EivBnvYgzsiY2k6a3ZtZTzvmga
         w1Efb2lSFj8vs7TGmrXF8mAKetuAxll2cMbzDO78EjJDf7XnHHwNt76wvA8YcUYE5QFF
         aFJ2lBJMLch88vWWU/pjxsalpNipVNKyFUt/3ALsl52WnBVdFR/bWPBFwCKZTG64yf2c
         ORzQ==
X-Gm-Message-State: AOJu0Yz7Hmi6JQFPVS8EoMT5XlkAEZ71SuRu9DTD0PXlyIWtosB9mo3Q
	HDG/7dSLZjJcqQrMidD4N9LOPhZiWvCFAwb604Hhf3vZAi8xzo6hpLfhCumSFx2OvFdd7LKvWhs
	oMEz+Ef/1zQ==
X-Gm-Gg: AZuq6aIX95OOjm//yzhFosaDE7YGnn4F1uwh/Q7xbtZyYnulaOIi6ibCSaRo6Aoh8CD
	kFWTPYs/sENDCzGeCtqWwWvu4MD3NSExDwqatJpJ9qEHBASwjVivuBkikd4FPc6Dzlli8SHjZnJ
	iSZYpNk8a/EimAy4B2v2rB6H2mzkWFisUcMGmQZJdnYLjzvSXGXRL9DxKU7gTU3/MPBOik+ybtW
	T+8qGFcuy0t/fR4kBS312ePqx1jOxj5kPTFtZbou2GdMnxbxC57W56xwLQmSLVDa4GiSyQ4UhFY
	v5FWNEeRhgDWlDee69KjSKp2IBJuEfs7M4k4UGGHCHiZSCHZQbQG1G393ghRLGTz1rA/YWI2jLU
	xNqpSxgT44YP5UMYEuqdZeu5pix/w3zTwr3MWzPWD9eKMCEgID9Pxlgv5T6jNizGkBVZ4k5+sH2
	ka2cH1gMC2KB+/wFwTgO6z7FaehMOGA+abq/zxjUjElaOQe2PEovihXl4iifyx0jUuFwgFD4Q=
X-Received: by 2002:a05:600c:6291:b0:477:9814:6882 with SMTP id 5b1f17b1804b1-483a95b5975mr16770775e9.5.1771624024597;
        Fri, 20 Feb 2026 13:47:04 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 02/12] xen/treewide: Adjust suffixes on integer literals
Date: Fri, 20 Feb 2026 21:46:43 +0000
Message-Id: <20260220214653.3497384-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Use U where necessary (Misra Rule 7.2) and uppercase L (Misra Rule 7.3).

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/arm/gic-v3-its.c                |  2 +-
 xen/arch/arm/include/asm/tee/optee_msg.h | 16 ++++++++--------
 xen/arch/arm/include/asm/tee/optee_smc.h |  8 ++++----
 xen/arch/arm/tee/optee.c                 |  6 +++---
 xen/arch/x86/guest/xen/xen.c             |  2 +-
 xen/arch/x86/include/asm/config.h        |  2 +-
 xen/arch/x86/include/asm/guest/hyperv.h  |  2 +-
 xen/arch/x86/pv/emul-gate-op.c           |  2 +-
 xen/arch/x86/tboot.c                     |  4 ++--
 xen/drivers/char/xhci-dbc.c              | 14 +++++++-------
 10 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/xen/arch/arm/gic-v3-its.c b/xen/arch/arm/gic-v3-its.c
index 34833166adcc..9ba068c46fcb 100644
--- a/xen/arch/arm/gic-v3-its.c
+++ b/xen/arch/arm/gic-v3-its.c
@@ -76,7 +76,7 @@ static const struct its_quirk its_quirks[] = {
     {
         .desc	= "R-Car Gen4",
         .iidr	= 0x0201743b,
-        .mask	= 0xffffffff,
+        .mask	= 0xffffffffU,
         .init	= gicv3_its_enable_quirk_gen4,
     },
     {
diff --git a/xen/arch/arm/include/asm/tee/optee_msg.h b/xen/arch/arm/include/asm/tee/optee_msg.h
index fe743dbde3c8..09820ff8638c 100644
--- a/xen/arch/arm/include/asm/tee/optee_msg.h
+++ b/xen/arch/arm/include/asm/tee/optee_msg.h
@@ -222,10 +222,10 @@ struct optee_msg_arg {
  * Represented in 4 32-bit words in OPTEE_MSG_UID_0, OPTEE_MSG_UID_1,
  * OPTEE_MSG_UID_2, OPTEE_MSG_UID_3.
  */
-#define OPTEE_MSG_UID_0			0x384fb3e0
-#define OPTEE_MSG_UID_1			0xe7f811e3
-#define OPTEE_MSG_UID_2			0xaf630002
-#define OPTEE_MSG_UID_3			0xa5d5c51b
+#define OPTEE_MSG_UID_0			0x384fb3e0U
+#define OPTEE_MSG_UID_1			0xe7f811e3U
+#define OPTEE_MSG_UID_2			0xaf630002U
+#define OPTEE_MSG_UID_3			0xa5d5c51bU
 #define OPTEE_MSG_FUNCID_CALLS_UID	0xFF01
 
 /*
@@ -246,10 +246,10 @@ struct optee_msg_arg {
  * Returns UUID in 4 32-bit words in the same way as
  * OPTEE_MSG_FUNCID_CALLS_UID described above.
  */
-#define OPTEE_MSG_OS_OPTEE_UUID_0	0x486178e0
-#define OPTEE_MSG_OS_OPTEE_UUID_1	0xe7f811e3
-#define OPTEE_MSG_OS_OPTEE_UUID_2	0xbc5e0002
-#define OPTEE_MSG_OS_OPTEE_UUID_3	0xa5d5c51b
+#define OPTEE_MSG_OS_OPTEE_UUID_0	0x486178e0U
+#define OPTEE_MSG_OS_OPTEE_UUID_1	0xe7f811e3U
+#define OPTEE_MSG_OS_OPTEE_UUID_2	0xbc5e0002U
+#define OPTEE_MSG_OS_OPTEE_UUID_3	0xa5d5c51bU
 #define OPTEE_MSG_FUNCID_GET_OS_UUID	0x0000
 
 /*
diff --git a/xen/arch/arm/include/asm/tee/optee_smc.h b/xen/arch/arm/include/asm/tee/optee_smc.h
index 2f5c702326f7..39c04eb5ad1b 100644
--- a/xen/arch/arm/include/asm/tee/optee_smc.h
+++ b/xen/arch/arm/include/asm/tee/optee_smc.h
@@ -443,9 +443,9 @@
 #define OPTEE_SMC_CALL_RETURN_FROM_RPC \
 	OPTEE_SMC_STD_CALL_VAL(OPTEE_SMC_FUNCID_RETURN_FROM_RPC)
 
-#define OPTEE_SMC_RETURN_RPC_PREFIX_MASK	0xFFFF0000
-#define OPTEE_SMC_RETURN_RPC_PREFIX		0xFFFF0000
-#define OPTEE_SMC_RETURN_RPC_FUNC_MASK		0x0000FFFF
+#define OPTEE_SMC_RETURN_RPC_PREFIX_MASK	0xFFFF0000U
+#define OPTEE_SMC_RETURN_RPC_PREFIX		0xFFFF0000U
+#define OPTEE_SMC_RETURN_RPC_FUNC_MASK		0x0000FFFFU
 
 #define OPTEE_SMC_RETURN_GET_RPC_FUNC(ret) \
 	((ret) & OPTEE_SMC_RETURN_RPC_FUNC_MASK)
@@ -548,7 +548,7 @@
 	OPTEE_SMC_RPC_VAL(OPTEE_SMC_RPC_FUNC_CMD)
 
 /* Returned in a0 */
-#define OPTEE_SMC_RETURN_UNKNOWN_FUNCTION 0xFFFFFFFF
+#define OPTEE_SMC_RETURN_UNKNOWN_FUNCTION 0xFFFFFFFFU
 
 /* Returned in a0 only from Trusted OS functions */
 #define OPTEE_SMC_RETURN_OK		0x0
diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c
index 5151bd90ed02..699e8d536862 100644
--- a/xen/arch/arm/tee/optee.c
+++ b/xen/arch/arm/tee/optee.c
@@ -49,16 +49,16 @@
 #define TEEC_ORIGIN_COMMS 0x00000002
 
 /* "Non-specific cause" as in GP TEE Client API Specification */
-#define TEEC_ERROR_GENERIC 0xFFFF0000
+#define TEEC_ERROR_GENERIC 0xFFFF0000U
 
 /*
  * "Input parameters were invalid" as described
  * in GP TEE Client API Specification.
  */
-#define TEEC_ERROR_BAD_PARAMETERS 0xFFFF0006
+#define TEEC_ERROR_BAD_PARAMETERS 0xFFFF0006U
 
 /* "System ran out of resources" as in GP TEE Client API Specification */
-#define TEEC_ERROR_OUT_OF_MEMORY 0xFFFF000C
+#define TEEC_ERROR_OUT_OF_MEMORY 0xFFFF000CU
 
 /* Client ID 0 is reserved for the hypervisor itself */
 #define OPTEE_CLIENT_ID(domain) ((domain)->domain_id + 1)
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index 77a3a8742a3e..315e5ded05ab 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -120,7 +120,7 @@ static void map_shared_info(void)
 
     /* Mask all upcalls */
     for ( i = 0; i < ARRAY_SIZE(XEN_shared_info->evtchn_mask); i++ )
-        write_atomic(&XEN_shared_info->evtchn_mask[i], ~0ul);
+        write_atomic(&XEN_shared_info->evtchn_mask[i], ~0UL);
 }
 
 static int map_vcpuinfo(void)
diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h
index cc80f2c62310..1b28349a427b 100644
--- a/xen/arch/x86/include/asm/config.h
+++ b/xen/arch/x86/include/asm/config.h
@@ -200,7 +200,7 @@
 #ifdef CONFIG_PV32
 
 /* This is not a fixed value, just a lower limit. */
-#define __HYPERVISOR_COMPAT_VIRT_START 0xF5800000
+#define __HYPERVISOR_COMPAT_VIRT_START 0xF5800000U
 #define HYPERVISOR_COMPAT_VIRT_START(d) ((d)->arch.pv.hv_compat_vstart)
 
 #else /* !CONFIG_PV32 */
diff --git a/xen/arch/x86/include/asm/guest/hyperv.h b/xen/arch/x86/include/asm/guest/hyperv.h
index c05efdce71a4..dabc62727b44 100644
--- a/xen/arch/x86/include/asm/guest/hyperv.h
+++ b/xen/arch/x86/include/asm/guest/hyperv.h
@@ -11,7 +11,7 @@
 #include <xen/types.h>
 
 /* Use top-most MFN for hypercall page */
-#define HV_HCALL_MFN   (((1ull << paddr_bits) - 1) >> HV_HYP_PAGE_SHIFT)
+#define HV_HCALL_MFN   (((1ULL << paddr_bits) - 1) >> HV_HYP_PAGE_SHIFT)
 
 /*
  * The specification says: "The partition reference time is computed
diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c
index dcac0a04015b..1faf13b962b1 100644
--- a/xen/arch/x86/pv/emul-gate-op.c
+++ b/xen/arch/x86/pv/emul-gate-op.c
@@ -32,7 +32,7 @@ static int read_gate_descriptor(unsigned int gate_sel,
         return 0;
 
     *sel = (desc.a >> 16) & 0x0000fffc;
-    *off = (desc.a & 0x0000ffff) | (desc.b & 0xffff0000);
+    *off = (desc.a & 0x0000ffff) | (desc.b & 0xffff0000U);
     *ar = desc.b & 0x0000ffff;
 
     /*
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 9d9bb6e7cf6d..0b3d596690cc 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -41,8 +41,8 @@ static bool __ro_after_init is_vtd;
  * TXT configuration registers (offsets from TXT_{PUB, PRIV}_CONFIG_REGS_BASE)
  */
 
-#define TXT_PUB_CONFIG_REGS_BASE       0xfed30000
-#define TXT_PRIV_CONFIG_REGS_BASE      0xfed20000
+#define TXT_PUB_CONFIG_REGS_BASE       0xfed30000U
+#define TXT_PRIV_CONFIG_REGS_BASE      0xfed20000U
 
 /* # pages for each config regs space - used by fixmap */
 #define NR_TXT_CONFIG_PAGES     ((TXT_PUB_CONFIG_REGS_BASE -                \
diff --git a/xen/drivers/char/xhci-dbc.c b/xen/drivers/char/xhci-dbc.c
index 1f7d4395dc9d..c1ff528de62f 100644
--- a/xen/drivers/char/xhci-dbc.c
+++ b/xen/drivers/char/xhci-dbc.c
@@ -353,8 +353,8 @@ static bool __init dbc_init_xhc(struct dbc *dbc)
     cmd = pci_conf_read16(dbc->sbdf, PCI_COMMAND);
     pci_conf_write16(dbc->sbdf, PCI_COMMAND, cmd & ~PCI_COMMAND_MEMORY);
 
-    pci_conf_write32(dbc->sbdf, PCI_BASE_ADDRESS_0, 0xFFFFFFFF);
-    pci_conf_write32(dbc->sbdf, PCI_BASE_ADDRESS_1, 0xFFFFFFFF);
+    pci_conf_write32(dbc->sbdf, PCI_BASE_ADDRESS_0, 0xFFFFFFFFU);
+    pci_conf_write32(dbc->sbdf, PCI_BASE_ADDRESS_1, 0xFFFFFFFFU);
     bar_size = pci_conf_read32(dbc->sbdf, PCI_BASE_ADDRESS_0);
     bar_size |= (uint64_t)pci_conf_read32(dbc->sbdf, PCI_BASE_ADDRESS_1) << 32;
     xhc_mmio_size = ~(bar_size & PCI_BASE_ADDRESS_MEM_MASK) + 1;
@@ -398,7 +398,7 @@ static struct dbc_reg __iomem *xhci_find_dbc(struct dbc *dbc)
      * This is initially an offset to the first capability. All the offsets
      * (both in HCCP1 and then next capability pointer) are dword-based.
      */
-    next = (readl(hccp1) & 0xFFFF0000) >> 16;
+    next = readl(hccp1) >> 16;
 
     while ( id != DBC_ID && next && ttl-- )
     {
@@ -735,7 +735,7 @@ static void dbc_init_ep(uint32_t *ep, uint64_t mbs, uint32_t type,
     memset(ep, 0, DBC_CTX_BYTES);
 
     ep[1] = (1024 << 16) | ((uint32_t)mbs << 8) | (type << 3);
-    ep[2] = (ring_dma & 0xFFFFFFFF) | 1;
+    ep[2] = (uint32_t)ring_dma | 1;
     ep[3] = ring_dma >> 32;
     ep[4] = 3 * 1024;
 }
@@ -816,7 +816,7 @@ static void dbc_reset_debug_port(struct dbc *dbc)
      * This is initially an offset to the first capability. All the offsets
      * (both in HCCP1 and then next capability pointer are dword-based.
      */
-    next = (readl(hccp1) & 0xFFFF0000) >> 16;
+    next = readl(hccp1) >> 16;
 
     /*
      * Look for "supported protocol" capability, major revision 3.
@@ -1094,7 +1094,7 @@ static void dbc_enqueue_in(struct dbc *dbc, struct xhci_trb_ring *trb,
                            struct dbc_work_ring *wrk)
 {
     struct dbc_reg *reg = dbc->dbc_reg;
-    uint32_t db = (readl(&reg->db) & 0xFFFF00FF) | (trb->db << 8);
+    uint32_t db = (readl(&reg->db) & 0xFFFF00FFU) | (trb->db << 8);
 
     /* Check if there is already queued TRB */
     if ( xhci_trb_ring_size(trb) >= 1 )
@@ -1289,7 +1289,7 @@ static void cf_check dbc_uart_resume(struct serial_port *port)
     struct dbc_uart *uart = port->uart;
     struct dbc *dbc = &uart->dbc;
 
-    pci_conf_write32(dbc->sbdf, PCI_BASE_ADDRESS_0, dbc->bar_val & 0xFFFFFFFF);
+    pci_conf_write32(dbc->sbdf, PCI_BASE_ADDRESS_0, dbc->bar_val);
     pci_conf_write32(dbc->sbdf, PCI_BASE_ADDRESS_1, dbc->bar_val >> 32);
     pci_conf_write16(dbc->sbdf, PCI_COMMAND, dbc->pci_cr);
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237612.1539878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYL8-0000hw-BE; Fri, 20 Feb 2026 21:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237612.1539878; Fri, 20 Feb 2026 21: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 1vtYL8-0000hl-7B; Fri, 20 Feb 2026 21:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1237612;
 Fri, 20 Feb 2026 21: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL6-0008Ew-MR
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:08 +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 b3e4ef94-0ea5-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 22:47:07 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-481188b7760so21122925e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:07 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3e4ef94-0ea5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624027; x=1772228827; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=++I7y0Fz5SNLOYdyOKbflTxyKYPA97MXE/g2maqbcaQ=;
        b=vk25ojic1m2Jr1Uc8xYH10oJ60/hXch9uMSBQg3XYs+ArESqN1Jobwlh+i9WbcMkJC
         1BWuzTsCn8SRnZw8+lv+KGFpLgQLIeEFB7BDhk1xZ47Q5EY2VneDqLVS/OwGlT5EBg0/
         H+i7AaNAvsUpWWDD3kZYsFpz7bDG8v1eBNCv4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624027; x=1772228827;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=++I7y0Fz5SNLOYdyOKbflTxyKYPA97MXE/g2maqbcaQ=;
        b=r5LEQHMP2sG3j3KAtIno4R85Q1vmMaqLlA2AnpWHljv8HBmS2ZAtx/AkYAO1cetK/g
         7ushFvrZli0yccEd1HbezUJ78Di/OiBHxhoKhyaI/RN3FceIGYOyU1bDo9kmqf6IwgMJ
         NBE9k4Ib70wcQB6ylSAXTDpiRCaJdZ9lS4bGJJyLONv70yWaAQW2EJRZ5nPnBqiLAQxu
         3GlQacUVoPCdm+RPNbMl+j23PzDzl4NhPIXnTgRohyH/TvzFi4DaHA0mHXaZmJ2S9kGd
         89L8bDMSHcr/OLrIzUh1tf4I2zjyShaApaPnE3MRqpXMIPT6NF0GzX1h5jLSST+HVML+
         0bQQ==
X-Gm-Message-State: AOJu0Yw9S7Auah2bvufiBVkJaPFLm8wu02NbU92xM8pmerphK7V8gCR/
	WaDdKRvLwfByp4rpSHxV5RNPLP8Tb8zmfCsF5Sh+2tjht1FK/9jqrFyOIgBMwva/watqost0r26
	FiZix2KTO4w==
X-Gm-Gg: AZuq6aJK9wGs05svOVMGYz15WGlSaU84M3aHLBhSr3Ju5/iFFpAIUo7Dt5iApcXEi1b
	NjNWhsd0L+yQAA8OoiKx1HY4iWlvUDyFAPhJiDHs7h1o1/p1xnR1mma32TFJrtjchluoORIEgDc
	JRbicZ8tPdQUqIhVKtLrrJAebGNyzPVnDc8Yqob3tDJSgZFVSkxVVn+Jqgur8HVzU09ygrcgtDv
	85tL56JNb5PlAUz665KSPY6iVzgT3ZysfQ7hHOhfs3aARnnYDrcTXOmySkkdEvWqNbaaPMAVM9U
	BjEnjAcojRxgfDIXBlKZYfeRuH8PqEZwPJSwND5c0JDjyq6TaCP+xS9+U/6GBR9l/6hlrjQ/dbX
	M0h9jgKu/g0/N3GbdHtSnjIv7U2l5gtVOzw09T4lrnnFYXi6D23dvYuwLpaU463rXx5qAD9aECM
	Ihx8FDVZ4/CHKwUKkJTsh0//ZixZBbyFl3a4avMkeAkYxZ96QCgxKz/nWisqFDHPAhZjsI5aw=
X-Received: by 2002:a05:600c:8b2c:b0:480:1b1a:5526 with SMTP id 5b1f17b1804b1-483a95e24ebmr19094485e9.16.1771624026566;
        Fri, 20 Feb 2026 13:47:06 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 05/12] x86: Adjust annotations of asm-used identifiers
Date: Fri, 20 Feb 2026 21:46:46 +0000
Message-Id: <20260220214653.3497384-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

do_entry_int82() is only called by assembly so gains asmlinkage.

pvh_start_info_pa and early_hypercall_insn are data used by assembly, and need
a SAF-1 annotation.

For the remaining SAF-1 anntations on functions, convert them to asmlinkage
for consistency.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/boot/cmdline.c       | 3 +--
 xen/arch/x86/boot/reloc.c         | 3 +--
 xen/arch/x86/guest/xen/pvh-boot.c | 2 +-
 xen/arch/x86/guest/xen/xen.c      | 2 +-
 xen/arch/x86/pv/hypercall.c       | 2 +-
 xen/arch/x86/traps.c              | 3 +--
 6 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/boot/cmdline.c b/xen/arch/x86/boot/cmdline.c
index 196c580e9151..5db5c7b20bf6 100644
--- a/xen/arch/x86/boot/cmdline.c
+++ b/xen/arch/x86/boot/cmdline.c
@@ -334,8 +334,7 @@ static void vga_parse(const char *cmdline, early_boot_opts_t *ebo)
 }
 #endif
 
-/* SAF-1-safe */
-void cmdline_parse_early(const char *cmdline, early_boot_opts_t *ebo)
+void asmlinkage cmdline_parse_early(const char *cmdline, early_boot_opts_t *ebo)
 {
     if ( !cmdline )
         return;
diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
index 7a375ad41c1c..82c2d237aab6 100644
--- a/xen/arch/x86/boot/reloc.c
+++ b/xen/arch/x86/boot/reloc.c
@@ -346,8 +346,7 @@ static multiboot_info_t *mbi2_reloc(uint32_t mbi_in, memctx *ctx)
     return mbi_out;
 }
 
-/* SAF-1-safe */
-void *reloc(uint32_t magic, uint32_t in)
+void *asmlinkage reloc(uint32_t magic, uint32_t in)
 {
     memctx ctx = { trampoline_phys + TRAMPOLINE_HEAP_END };
 
diff --git a/xen/arch/x86/guest/xen/pvh-boot.c b/xen/arch/x86/guest/xen/pvh-boot.c
index e14d7e20e942..8d8f4a34e445 100644
--- a/xen/arch/x86/guest/xen/pvh-boot.c
+++ b/xen/arch/x86/guest/xen/pvh-boot.c
@@ -22,7 +22,7 @@
 
 /* Initialised in head.S, before .bss is zeroed. */
 bool __initdata pvh_boot;
-uint32_t __initdata pvh_start_info_pa;
+uint32_t __initdata pvh_start_info_pa; /* SAF-1-safe */
 
 static multiboot_info_t __initdata pvh_mbi;
 static module_t __initdata pvh_mbi_mods[8];
diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c
index 315e5ded05ab..8e13c2fbf307 100644
--- a/xen/arch/x86/guest/xen/xen.c
+++ b/xen/arch/x86/guest/xen/xen.c
@@ -40,7 +40,7 @@ DEFINE_PER_CPU(struct vcpu_info *, vcpu_info);
  *     0 vmcall
  *   > 0 vmmcall
  */
-int8_t __initdata early_hypercall_insn = -1;
+int8_t __initdata early_hypercall_insn = -1; /* SAF-1-safe */
 
 /*
  * Called once during the first hypercall to figure out which instruction to
diff --git a/xen/arch/x86/pv/hypercall.c b/xen/arch/x86/pv/hypercall.c
index 17581d232e19..b3b9a3255531 100644
--- a/xen/arch/x86/pv/hypercall.c
+++ b/xen/arch/x86/pv/hypercall.c
@@ -180,7 +180,7 @@ void pv_ring1_init_hypercall_page(void *p)
     }
 }
 
-void do_entry_int82(struct cpu_user_regs *regs)
+void asmlinkage do_entry_int82(struct cpu_user_regs *regs)
 {
     if ( unlikely(untrusted_msi) )
         check_for_unexpected_msi((uint8_t)regs->entry_vector);
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 3c01c5eb53b5..29ea6054abab 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1336,8 +1336,7 @@ void asmlinkage do_int3(struct cpu_user_regs *regs)
     pv_inject_hw_exception(X86_EXC_BP, X86_EVENT_NO_EC);
 }
 
-/* SAF-1-safe */
-void do_general_protection(struct cpu_user_regs *regs)
+void asmlinkage do_general_protection(struct cpu_user_regs *regs)
 {
 #ifdef CONFIG_PV
     struct vcpu *v = current;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237613.1539883 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYL8-0000lh-TN; Fri, 20 Feb 2026 21:47:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237613.1539883; Fri, 20 Feb 2026 21: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 1vtYL8-0000kN-JK; Fri, 20 Feb 2026 21:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1237613;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL7-0008IG-8g
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:09 +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 b3d11e93-0ea5-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 22:47:07 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso33419175e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:07 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3d11e93-0ea5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624027; x=1772228827; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=beuTbfe9kV1Ouyfxy/gjE8egNOMK+gVzuCqzx8daylA=;
        b=BMiR/T+WEvvW5iGsKAdgfi+cPActfn8vFvDu97HWE0xiqgu3PSNY7LK2RjwCHIGzDl
         mmO5MGekILMGQOVadEMiwyzuSymZgpES00rTNtDjcGOvq+sP9S4JrVgxkoR8tjIuFFg6
         y2ygy7gCQ/aQb9W0TAqByris1EsG8MDxDK4GE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624027; x=1772228827;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=beuTbfe9kV1Ouyfxy/gjE8egNOMK+gVzuCqzx8daylA=;
        b=ef7zwv9kOpaDwizhAtPxmwwQIbkuW8TJR4LaD2yGYkhNU5HmQonLPJLKlnoffICbE3
         WPXUYygXOjMcKiMyrRO+OPISyzgIC9Uv992lnsXyUlZmdY8UB1UcxoCQMTK5hO5I6xr2
         DJO5K8asFrk1npquct2kyCNA4pAOSIDzhfgDVvQKE1bVPeEB531XuWRkOWgRwKdo80VG
         UVh77IfE/BCvelJgDa34p41RWpdxCxMvmtvcw2qhR0oeOSUiy1A9YHB88ePs2gLegU2P
         wII8af5oVmnCoaX3zNDFoYg0T9njVfXxol1pvNwfVW6E7xc2f/jpEdjIFxyscglpnSHv
         IDxA==
X-Gm-Message-State: AOJu0Yx+ph2GtDPum6vR6IYgN/LhR9+DCXS1fzWFgoT4BoQkK1Bh1R7M
	BClaXq/nqbPU66r28q36nCPP1ItN0x8Qs/4VTbbawG5TDSQkNi7zIrJGbhpE7ckvp3ChMqkIMoG
	FWcug
X-Gm-Gg: AZuq6aJ4get2Cv4QPIfRMmil837pY/iZiHLZsERPVCmMPIlMCSkOmOpOHLnPvTXidLz
	gKFst0iC8osqgJqOdRZrneymSHG5uL0dQBgPrRUeSzrFpWI4LCkly2HAem50ohcbam8En6lRTBW
	RaZI2a86HR2EICn/1SaKEKfz9r8sL8rYRI2Ybnkp/xOsaeAx5sUU11VL28QsiaLHZbofH7KHzSR
	JE6oRTNDFNql54fy1qrm/J/Q8UyJgX8bD/oHGerFtg86sbRJjmRGDGS0cFcxWpVdlJY4q14gs6e
	V4GJo0s6AmbRgRT1D9zTxdrxts/R87oreLgtcaJGJYx4Vnou1FA2rFZsfrsSlo0Fc5qCXC3WPtb
	SvyamgZ6PjQTJNQ+/zl3Zw5EDBIaLDmTuhCDfQtQjnf+hNLtoFhvTyoy05U7iGxqcp4kxFQ8Joc
	TIKLa+iZxryOjg/12dvP3LKFZGD4SQ153TCuD52K6jYhVk+5vxFZfox9JK20Z3aPP5ILjHH3w=
X-Received: by 2002:a05:600c:1c29:b0:483:6d9e:e4f5 with SMTP id 5b1f17b1804b1-483a949e5edmr17807355e9.5.1771624025939;
        Fri, 20 Feb 2026 13:47:05 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 04/12] xen/treewide: Adjust parameter names and types
Date: Fri, 20 Feb 2026 21:46:45 +0000
Message-Id: <20260220214653.3497384-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

MISRA Rule 8.2 says that parameters must all have names.  Rule 8.3 says that
the names and types must match between declaration and definition.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/arm/include/asm/pci.h    |  2 +-
 xen/arch/arm/pci/pci-access.c     |  4 ++--
 xen/arch/x86/include/asm/compat.h |  2 +-
 xen/arch/x86/include/asm/p2m.h    |  2 +-
 xen/arch/x86/mm/mem_paging.c      |  2 +-
 xen/crypto/vmac.c                 |  2 +-
 xen/include/crypto/rijndael.h     | 16 ++++++++--------
 xen/include/xen/acpi.h            |  2 +-
 8 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/xen/arch/arm/include/asm/pci.h b/xen/arch/arm/include/asm/pci.h
index 08ffcd443862..73c3be74aef1 100644
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -98,7 +98,7 @@ struct pci_ecam_ops {
     unsigned int            bus_shift;
     struct pci_ops          pci_ops;
     int (*cfg_reg_index)(struct dt_device_node *dev);
-    int (*init)(struct pci_config_window *);
+    int (*init)(struct pci_config_window *cfg);
 };
 
 /* Default ECAM ops */
diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
index 4a9486750199..c0533c00c9a5 100644
--- a/xen/arch/arm/pci/pci-access.c
+++ b/xen/arch/arm/pci/pci-access.c
@@ -135,9 +135,9 @@ static void pci_config_write(pci_sbdf_t sbdf, unsigned int reg,
 
 #define PCI_OP_WRITE(size, type)                            \
     void pci_conf_write##size(pci_sbdf_t sbdf,              \
-                              unsigned int reg, type val)   \
+                              unsigned int reg, type data)  \
 {                                                           \
-    pci_config_write(sbdf, reg, size / 8, val);             \
+    pci_config_write(sbdf, reg, size / 8, data);            \
 }
 
 #define PCI_OP_READ(size, type)                             \
diff --git a/xen/arch/x86/include/asm/compat.h b/xen/arch/x86/include/asm/compat.h
index 30ed8f2fd0dc..f12f4f24d802 100644
--- a/xen/arch/x86/include/asm/compat.h
+++ b/xen/arch/x86/include/asm/compat.h
@@ -16,7 +16,7 @@ typedef unsigned long full_ptr_t;
 
 struct domain;
 #ifdef CONFIG_PV32
-int switch_compat(struct domain *);
+int switch_compat(struct domain *d);
 #else
 #include <xen/errno.h>
 static inline int switch_compat(struct domain *d) { return -EOPNOTSUPP; }
diff --git a/xen/arch/x86/include/asm/p2m.h b/xen/arch/x86/include/asm/p2m.h
index ef6b02ff0bb6..92be64e134e8 100644
--- a/xen/arch/x86/include/asm/p2m.h
+++ b/xen/arch/x86/include/asm/p2m.h
@@ -773,7 +773,7 @@ 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);
+int set_shared_p2m_entry(struct domain *d, unsigned long gfn_l, mfn_t mfn);
 
 /* Tell xenpaging to drop a paged out frame */
 void p2m_mem_paging_drop_page(struct domain *d, gfn_t gfn, p2m_type_t p2mt);
diff --git a/xen/arch/x86/mm/mem_paging.c b/xen/arch/x86/mm/mem_paging.c
index ac8d34ffa074..d4b3cb990c54 100644
--- a/xen/arch/x86/mm/mem_paging.c
+++ b/xen/arch/x86/mm/mem_paging.c
@@ -156,7 +156,7 @@ void p2m_mem_paging_populate(struct domain *d, gfn_t gfn)
  *
  * If the gfn was dropped the vcpu needs to be unpaused.
  */
-void p2m_mem_paging_resume(struct domain *d, vm_event_response_t *rsp)
+void p2m_mem_paging_resume(struct domain *d, struct vm_event_st *rsp)
 {
     struct p2m_domain *p2m = p2m_get_hostp2m(d);
     p2m_type_t p2mt;
diff --git a/xen/crypto/vmac.c b/xen/crypto/vmac.c
index acb4e015f511..f1f6d75f8eeb 100644
--- a/xen/crypto/vmac.c
+++ b/xen/crypto/vmac.c
@@ -702,7 +702,7 @@ static uint64_t l3hash(uint64_t p1, uint64_t p2,
 
 /* ----------------------------------------------------------------------- */
 
-void vhash_update(unsigned char *m,
+void vhash_update(unsigned char  m[],
                   unsigned int   mbytes, /* Pos multiple of VMAC_NHBYTES */
                   vmac_ctx_t    *ctx)
 {
diff --git a/xen/include/crypto/rijndael.h b/xen/include/crypto/rijndael.h
index 4386be587851..80c612749f9e 100644
--- a/xen/include/crypto/rijndael.h
+++ b/xen/include/crypto/rijndael.h
@@ -45,14 +45,14 @@ typedef struct {
 	u32	dk[4*(AES_MAXROUNDS + 1)];	/* decrypt key schedule */
 } rijndael_ctx;
 
-int	 rijndael_set_key(rijndael_ctx *, const unsigned char *, int);
-int	 rijndael_set_key_enc_only(rijndael_ctx *, const unsigned char *, int);
-void	 rijndael_decrypt(rijndael_ctx *, const unsigned char *, unsigned char *);
-void	 rijndael_encrypt(rijndael_ctx *, const unsigned char *, unsigned char *);
+int	 rijndael_set_key(rijndael_ctx *ctx, const unsigned char *key, int bits);
+int	 rijndael_set_key_enc_only(rijndael_ctx *ctx, const unsigned char *key, int bits);
+void	 rijndael_decrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
+void	 rijndael_encrypt(rijndael_ctx *ctx, const unsigned char *src, unsigned char *dst);
 
-int	rijndaelKeySetupEnc(unsigned int [], const unsigned char [], int);
-int	rijndaelKeySetupDec(unsigned int [], const unsigned char [], int);
-void	rijndaelEncrypt(const unsigned int [], int, const unsigned char [16],
-	    unsigned char [16]);
+int	rijndaelKeySetupEnc(unsigned int rk[], const unsigned char cipherKey[], int keyBits);
+int	rijndaelKeySetupDec(unsigned int rk[], const unsigned char cipkerKey[], int keyBits);
+void	rijndaelEncrypt(const unsigned int rk[], int Nr, const unsigned char pt[16],
+			unsigned char ct[16]);
 
 #endif /* __RIJNDAEL_H */
diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
index 90635ba0f322..ca87cd15a824 100644
--- a/xen/include/xen/acpi.h
+++ b/xen/include/xen/acpi.h
@@ -75,7 +75,7 @@ typedef int (*acpi_table_handler) (struct acpi_table_header *table);
 typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end);
 
 unsigned int acpi_get_processor_id (unsigned int cpu);
-char * __acpi_map_table (paddr_t phys_addr, unsigned long size);
+char * __acpi_map_table (paddr_t phys, unsigned long size);
 bool __acpi_unmap_table(const void *ptr, unsigned long size);
 int acpi_boot_init (void);
 int acpi_boot_table_init (void);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237614.1539889 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYL9-0000nM-Ac; Fri, 20 Feb 2026 21:47:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237614.1539889; Fri, 20 Feb 2026 21:47: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 1vtYL8-0000mO-Sm; Fri, 20 Feb 2026 21:47:10 +0000
Received: by outflank-mailman (input) for mailman id 1237614;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL8-0008IG-4a
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:10 +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 b433f758-0ea5-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 22:47:08 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso33419435e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:08 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.06
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b433f758-0ea5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624027; x=1772228827; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=38Q6mGCwbKjhhK8kwdPI5HfU9QB1AsZ0yVRPxRPU2XA=;
        b=I5uwAh+6sicY4jOD/nMZRlwFvDLFYB3wwyJodfcP4iGUWiFCQODI1Z/6jNVjS7Cp6a
         TfoSIIcNQgn8tVWRU4b2Ov+UaiulA2J5DLjiZbE6u2cs0IBkgG/2q9L+u97FZ9BVXgjR
         +GtSz+hLhE6DbJqIyqcmYp8TtG02CsJmrp93M=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624027; x=1772228827;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=38Q6mGCwbKjhhK8kwdPI5HfU9QB1AsZ0yVRPxRPU2XA=;
        b=Oh8QheO174nVZ3g+Z54X0Pw+SMbejOe6xQTSkr7jgHFlE3IpDul+ifZH3LPHUlrDMY
         i3judnK3yepxQEe1AFpRFchgpNOKMGY59DLjR/y5mxyQ7OBt/1MlP3iSpI3NQJ1G0vbb
         QfixbGP/CnQUF8cZiyEcrFvFbMd288IS7IzNl2ptW581OTT0sGYOLa0yhpVSID9Djl9F
         Tv1KKqG7lYu1R9wNYABZMYMQm3aQQL2m8n65jOiphlaYJM0FaEAFVeGGWhiLMgnx6tsg
         qbUoCucersE+3cTjM0ziEhQefO5GrCZjgt4AIAj1Luq7zh8QkVrLCuP3YIydlZxtl833
         KMbw==
X-Gm-Message-State: AOJu0YzEn8xWv7hH0yytfIEtLOEub0id7PQgkQ5MFuNDhjqVwyxDDj0h
	un9O2XWlQVpNbgLxSNMcpgJAdtUX3uBThOv0iXCsFYBBLprpu2jX4h1JAk/e5e24PfZac2QSU62
	O9d7gQNI3hA==
X-Gm-Gg: AZuq6aK/PcnT4dHqJKcMop8WMVR9YekwNIpMYuu7wrFtuv6LD9/IeIWQnJD7U94z2+G
	hfHZbeCWMKQqdtCoIDjMgnBU+XMC+I0i6GmpP+lW2vfBSMDTPSZ29GFRewtapEQchCxBqiNUKRa
	9rqNRStA4rBmafCOdloFpOXVjaoY9H4caWr4Ft3Rek/VR+/cJznSOPNSIBi/mcB2RXydfk0rsFo
	SqCb7ynYCkGHNqs9Lk4s7aivVEu0FAXO1OQqTqcSwGIhO6rnbpZtxmnGiyGTT8XuZ4AJcDyS25z
	DDewoHqFW86qGua9sEzzyyRSHqy0m1zNA3tMIWViX2xIhzBBUWKTOxyQr/ZJz1Ey9iwzzzzMRut
	02j/KGriRB7A4dzXKcS6nEDQoZL3Mq2QDV5k+84GhhO9ynz/LEZUVRjAKD5nakkHUhKB8A3mnWB
	8WcYJf93C9PYtx+h0+Pmj4ngso+FnHJFjED4vdSdtRxj+qxA75wT+IQzVibW+TaOCzkLAhbBc=
X-Received: by 2002:a05:600c:1989:b0:479:1348:c63e with SMTP id 5b1f17b1804b1-483a94c99admr21112605e9.9.1771624027207;
        Fri, 20 Feb 2026 13:47:07 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 06/12] xen: Include suitable headers to make declarations visible
Date: Fri, 20 Feb 2026 21:46:47 +0000
Message-Id: <20260220214653.3497384-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

A range of functions can't see their declarations, requiring the inclusion of
appropriate headers.

For pv/mm.h and pv/traps.h, this requires adjustements to become standalone.

In pv/mm.h, swap xen/lib.h for xen/bug.h now that ASSERT_UNREACHABLE() has
moved.  For pv/traps.h, pv_trap_callback_registered() needs to see a complete
struct vcpu, and xen/sched.h is not something appropriate to pull in
conditionally.

stack-protector.c can't see the declaration of __stack_chk_guard, and fixing
that reveals that stack-protector.h needs get_cycles() too.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/include/asm/pv/mm.h    | 8 +++++++-
 xen/arch/x86/include/asm/pv/traps.h | 6 ++----
 xen/arch/x86/mm/mem_paging.c        | 6 ++++--
 xen/arch/x86/pv/emul-gate-op.c      | 2 ++
 xen/arch/x86/pv/emul-inv-op.c       | 1 +
 xen/arch/x86/pv/emul-priv-op.c      | 1 +
 xen/arch/x86/pv/emulate.c           | 1 +
 xen/arch/x86/pv/grant_table.c       | 1 +
 xen/arch/x86/pv/mm.c                | 1 +
 xen/arch/x86/pv/ro-page-fault.c     | 1 +
 xen/arch/x86/pv/traps.c             | 1 +
 xen/arch/x86/x86_64/machine_kexec.c | 3 ++-
 xen/common/stack-protector.c        | 1 +
 xen/include/xen/stack-protector.h   | 2 ++
 14 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/xen/arch/x86/include/asm/pv/mm.h b/xen/arch/x86/include/asm/pv/mm.h
index a5745908206a..11a43f15e222 100644
--- a/xen/arch/x86/include/asm/pv/mm.h
+++ b/xen/arch/x86/include/asm/pv/mm.h
@@ -10,6 +10,12 @@
 #ifndef __X86_PV_MM_H__
 #define __X86_PV_MM_H__
 
+#include <xen/stdbool.h>
+
+struct cpu_user_regs;
+struct page_info;
+struct vcpu;
+
 #ifdef CONFIG_PV
 
 int pv_ro_page_fault(unsigned long addr, struct cpu_user_regs *regs);
@@ -26,7 +32,7 @@ int validate_segdesc_page(struct page_info *page);
 #else
 
 #include <xen/errno.h>
-#include <xen/lib.h>
+#include <xen/bug.h>
 
 static inline int pv_ro_page_fault(unsigned long addr,
                                    struct cpu_user_regs *regs)
diff --git a/xen/arch/x86/include/asm/pv/traps.h b/xen/arch/x86/include/asm/pv/traps.h
index 8c31d5a793c5..8c201190923d 100644
--- a/xen/arch/x86/include/asm/pv/traps.h
+++ b/xen/arch/x86/include/asm/pv/traps.h
@@ -10,9 +10,9 @@
 #ifndef __X86_PV_TRAPS_H__
 #define __X86_PV_TRAPS_H__
 
-#ifdef CONFIG_PV
+#include <xen/sched.h>
 
-#include <public/xen.h>
+#ifdef CONFIG_PV
 
 int pv_raise_nmi(struct vcpu *v);
 
@@ -28,8 +28,6 @@ static inline bool pv_trap_callback_registered(const struct vcpu *v,
 
 #else  /* !CONFIG_PV */
 
-#include <xen/errno.h>
-
 static inline int pv_raise_nmi(struct vcpu *v) { return -EOPNOTSUPP; }
 
 static inline int pv_emulate_privileged_op(struct cpu_user_regs *regs) { return 0; }
diff --git a/xen/arch/x86/mm/mem_paging.c b/xen/arch/x86/mm/mem_paging.c
index d4b3cb990c54..33929b526ab9 100644
--- a/xen/arch/x86/mm/mem_paging.c
+++ b/xen/arch/x86/mm/mem_paging.c
@@ -7,10 +7,12 @@
  * Copyright (c) 2009 Citrix Systems, Inc. (Patrick Colp)
  */
 
-
-#include <asm/p2m.h>
 #include <xen/guest_access.h>
 #include <xen/vm_event.h>
+
+#include <asm/mem_paging.h>
+#include <asm/p2m.h>
+
 #include <xsm/xsm.h>
 
 #include "mm-locks.h"
diff --git a/xen/arch/x86/pv/emul-gate-op.c b/xen/arch/x86/pv/emul-gate-op.c
index 1faf13b962b1..c2c699fbff40 100644
--- a/xen/arch/x86/pv/emul-gate-op.c
+++ b/xen/arch/x86/pv/emul-gate-op.c
@@ -9,6 +9,8 @@
 
 #include <xen/err.h>
 
+#include <asm/pv/traps.h>
+
 #include "emulate.h"
 
 static int read_gate_descriptor(unsigned int gate_sel,
diff --git a/xen/arch/x86/pv/emul-inv-op.c b/xen/arch/x86/pv/emul-inv-op.c
index 346ac1124d7b..23d2928b00cd 100644
--- a/xen/arch/x86/pv/emul-inv-op.c
+++ b/xen/arch/x86/pv/emul-inv-op.c
@@ -8,6 +8,7 @@
  */
 
 #include <asm/pv/trace.h>
+#include <asm/pv/traps.h>
 
 #include "emulate.h"
 
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 1d9e57ad2763..a3c1fd12621d 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -21,6 +21,7 @@
 #include <asm/mc146818rtc.h>
 #include <asm/pv/domain.h>
 #include <asm/pv/trace.h>
+#include <asm/pv/traps.h>
 #include <asm/shared.h>
 #include <asm/stubs.h>
 
diff --git a/xen/arch/x86/pv/emulate.c b/xen/arch/x86/pv/emulate.c
index 0022e0f55e30..a00d1c6c82eb 100644
--- a/xen/arch/x86/pv/emulate.c
+++ b/xen/arch/x86/pv/emulate.c
@@ -10,6 +10,7 @@
 #include <xen/guest_access.h>
 
 #include <asm/debugreg.h>
+#include <asm/pv/domain.h>
 
 #include "emulate.h"
 
diff --git a/xen/arch/x86/pv/grant_table.c b/xen/arch/x86/pv/grant_table.c
index 247436a0156a..1df68440a24a 100644
--- a/xen/arch/x86/pv/grant_table.c
+++ b/xen/arch/x86/pv/grant_table.c
@@ -12,6 +12,7 @@
 #include <public/grant_table.h>
 
 #include <asm/p2m.h>
+#include <asm/pv/grant_table.h>
 #include <asm/pv/mm.h>
 
 #include "mm.h"
diff --git a/xen/arch/x86/pv/mm.c b/xen/arch/x86/pv/mm.c
index 187f5f6a3e8c..3f2e9dedcde3 100644
--- a/xen/arch/x86/pv/mm.c
+++ b/xen/arch/x86/pv/mm.c
@@ -12,6 +12,7 @@
 
 #include <asm/current.h>
 #include <asm/p2m.h>
+#include <asm/pv/mm.h>
 
 #include "mm.h"
 
diff --git a/xen/arch/x86/pv/ro-page-fault.c b/xen/arch/x86/pv/ro-page-fault.c
index 9c6f66884675..d89306d34fc6 100644
--- a/xen/arch/x86/pv/ro-page-fault.c
+++ b/xen/arch/x86/pv/ro-page-fault.c
@@ -8,6 +8,7 @@
  * Copyright (c) 2004 Christian Limpach
  */
 
+#include <asm/pv/mm.h>
 #include <asm/pv/trace.h>
 #include <asm/shadow.h>
 
diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index 26a468108a77..b0395b99145a 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -16,6 +16,7 @@
 #include <asm/idt.h>
 #include <asm/irq-vectors.h>
 #include <asm/pv/trace.h>
+#include <asm/pv/traps.h>
 #include <asm/shared.h>
 #include <asm/traps.h>
 
diff --git a/xen/arch/x86/x86_64/machine_kexec.c b/xen/arch/x86/x86_64/machine_kexec.c
index f4a005cd0c2f..f9e54d86fb53 100644
--- a/xen/arch/x86/x86_64/machine_kexec.c
+++ b/xen/arch/x86/x86_64/machine_kexec.c
@@ -6,8 +6,9 @@
  * - Magnus Damm <magnus@valinux.co.jp>
  */
 
-#include <xen/types.h>
 #include <xen/kernel.h>
+#include <xen/kexec.h>
+
 #include <asm/page.h>
 #include <public/kexec.h>
 
diff --git a/xen/common/stack-protector.c b/xen/common/stack-protector.c
index 2115912c3bd0..05e57d4509e2 100644
--- a/xen/common/stack-protector.c
+++ b/xen/common/stack-protector.c
@@ -2,6 +2,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/random.h>
+#include <xen/stack-protector.h>
 #include <xen/time.h>
 
 /*
diff --git a/xen/include/xen/stack-protector.h b/xen/include/xen/stack-protector.h
index 931affd919be..65488bdabced 100644
--- a/xen/include/xen/stack-protector.h
+++ b/xen/include/xen/stack-protector.h
@@ -1,6 +1,8 @@
 #ifndef __XEN_STACK_PROTECTOR_H__
 #define __XEN_STACK_PROTECTOR_H__
 
+#include <xen/time.h>
+
 extern unsigned long __stack_chk_guard;
 
 /*
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237615.1539908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYLA-0001Mg-Sl; Fri, 20 Feb 2026 21:47:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237615.1539908; Fri, 20 Feb 2026 21:47: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 1vtYLA-0001Kr-L7; Fri, 20 Feb 2026 21:47:12 +0000
Received: by outflank-mailman (input) for mailman id 1237615;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL8-0008Ew-Ad
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:10 +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 b51fcf85-0ea5-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 22:47:09 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-43621bf67ceso1666755f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:09 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b51fcf85-0ea5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624029; x=1772228829; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0Xl/PbKeU3vXsi8lYY06npq9oqfFySBcdivOG4iOWhA=;
        b=ERg4En1oCz/WkmNntbMDWY53yX/uv0MGVYNMAerFvSS+8BcWmHARyQUhbltvyzqwFS
         GKOz8YVL0WVmrS0mZ0ur5q1w0v0sr2GTsnzGGahDi2RSMxrsEOMOesiMrY6RCmdYdQ9M
         jlIjcB6htKAkBARDKeyNtfLOzwmIrpaWKdHEY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624029; x=1772228829;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0Xl/PbKeU3vXsi8lYY06npq9oqfFySBcdivOG4iOWhA=;
        b=WSBRjF52E3JNx/6uSn41adDMopE7d0i6Jr37g0NS9dc9DNFXKo8Fb56mrYTWh7g3Ke
         pzuIP9hvtRZdy57crogE6dvflkS3SmC32twFULVHnuyVhlLkocFgcEEla/VizUQ+qZ2s
         D4q3slif2lFyHzdwQ/kR4msxtH7h1WqLTfzeYLMkc6sHAK8X19TKH+Or84R0G9leZVDB
         +fdLuxBS4GzjwSs0A3HdARP4yqia3fAu+t7UbgYbeHj9uLE2ZQG/NZctQl8nwsMdLQmp
         WbQSCdAnhaDZowTIiq7OF5xHb02bfn0Z9SBAaziEugofBA+L7MCAhwFLIzKxGo+3liR2
         PkHQ==
X-Gm-Message-State: AOJu0YwO6u1UYVBJiemEIWI1K5kpZ8LBr5hUKJDanPRWeRhNlWN+seI6
	viI1cl+pNa/gWTkoHyWmp8ogxSKTSgAvKTTOT2aSIjPYWAT3+jzZaDaSShF7+8VgmqfmQkUr+Pn
	9v14Q
X-Gm-Gg: AZuq6aJ2tdCVyO5Krq1cPDgNooaBrvJh4O4aIcEKyUGmv8chcRpvLD3KBpahXHckWdW
	yqhJN3aY6yLN17uPVtPFW5VVOIgrMprp//xLF8IcdYTrhYd1dKDWFdJbw1+rrpw5rhiRYVwxTPM
	cb7boab4+irKj2ppl6VT3Z6N2PGMjcjBESFvxQonRX66uiRpsJ8DoYcbsvZozqwCt4Z3emQ3apU
	Sby8P00/7fztZB9hHnwraX0M8Rs2YKiNZzS/nK0kjMgKOXoxDc1e4WkMMTr7jHQ022IC6iqOB8Y
	swU/JOULuXTBzejQyhjflI35WA8VxmlLlBUdSAGBuwILVhY4DrtQaZcfY3WQ9bKnbswpl8z+BJn
	l4lV0wfXZa9HFirfoGB+Ekl9MD4eMND5Y0b4emXefkfFu1NCYYZ+McLaoIjvKmraaDEMt8vGSQT
	S1LdAmN+wXXS/aQHqjidv+7QixNlfrAdoH+7twSyebk4Az9L9npaCJheYIVT9U4a1bpe283G8=
X-Received: by 2002:a05:600c:4e4a:b0:483:129e:b573 with SMTP id 5b1f17b1804b1-483a962d1d1mr17672845e9.18.1771624028447;
        Fri, 20 Feb 2026 13:47:08 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 08/12] arm/pci-designware: Fix MISRA violations
Date: Fri, 20 Feb 2026 21:46:49 +0000
Message-Id: <20260220214653.3497384-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

 * Move includes inside the header guards (D4.10)
 * Use NULL in preference to 0 (R11.9)

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/arm/pci/pci-designware.c | 2 +-
 xen/arch/arm/pci/pci-designware.h | 5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/pci/pci-designware.c b/xen/arch/arm/pci/pci-designware.c
index 0bd67524ac8b..6b85213f637b 100644
--- a/xen/arch/arm/pci/pci-designware.c
+++ b/xen/arch/arm/pci/pci-designware.c
@@ -285,7 +285,7 @@ void __iomem *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,
                                     bridge->child_cfg->phys_addr, busdev,
                                     bridge->child_cfg->size);
     if ( ret )
-        return 0;
+        return NULL;
 
     return bridge->child_cfg->win + where;
 }
diff --git a/xen/arch/arm/pci/pci-designware.h b/xen/arch/arm/pci/pci-designware.h
index b9deb3b138ae..bd93dab6f2f1 100644
--- a/xen/arch/arm/pci/pci-designware.h
+++ b/xen/arch/arm/pci/pci-designware.h
@@ -6,12 +6,11 @@
  * Based on xen/arch/arm/pci/pci-host-generic.c
  */
 
-#include <xen/pci.h>
-#include <xen/init.h>
-
 #ifndef __PCI_DESIGNWARE_H__
 #define __PCI_DESIGNWARE_H__
 
+#include <xen/pci.h>
+#include <xen/init.h>
 
 #define PCIE_ATU_VIEWPORT               0x900
 #define PCIE_ATU_REGION_OUTBOUND        0
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237616.1539913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYLB-0001RV-Ax; Fri, 20 Feb 2026 21:47:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237616.1539913; Fri, 20 Feb 2026 21:47: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 1vtYLB-0001QX-1C; Fri, 20 Feb 2026 21:47:13 +0000
Received: by outflank-mailman (input) for mailman id 1237616;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL8-0008Ew-J7
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:10 +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 b54e7943-0ea5-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 22:47:10 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso21378625e9.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:10 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.08
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b54e7943-0ea5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624029; x=1772228829; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5TrnZ66XZ6HFaBzMCfnoTCQeXNsoz4cCSZgGcCFs61o=;
        b=HuudOdGd40eHvHS0yy4pLmIDMIVjjBSs4APab6PAXlwE3ZTtzKjt8ramAAi+6j4hYt
         QRs1qd0O8oXNmb1p9xYPXW0zMYuXmDeKCWormUGiEVIsAH4AwwjsRP/RcAUpFWc0vMTJ
         Lkke1/iEsUQHS/0AUFXEcnAtlJpR+AzgmOfZU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624029; x=1772228829;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5TrnZ66XZ6HFaBzMCfnoTCQeXNsoz4cCSZgGcCFs61o=;
        b=GzPbOoN37lGp8szPI6XjGt6EuoxNzVHbMNieGbQ681b/7Ey5sbnD4MwDixVGXGmu6W
         w2WQzA03wW77G9oBI0thX8mWMB1H2r1iRKB7HDewzbzZWwEDS+lSBgguF+X5xN1Ek35H
         XjC9s9Y1tYahL6E9A7Kal/veismAVfrjKAjmDFRDkPT7/TcavbXToqIxUwwYLl+BJ3lr
         uNSA6V/LKPqhgkgNnBwcRDtM7Ffi97n0WFhhkpKCJdmcVo/wKkixa3HAnrkoC2bLYrej
         kTbOR/n3AhXo+Xcgzq3qghyUYwgftOUisGFcWf8qQi8qDngmpMO/KqL1tZ6a3Re8Zlit
         ERmA==
X-Gm-Message-State: AOJu0YzBSJYknj5424beAoBxfTJMOGYrUABFQd2pzXZjcINA1LMz71YT
	zjXTuSiIiMerxAhc79LHCbn5cw5KIdLyBM3SWAjJtzJM9GzSu92m/byXt9ENiTVdUbux83tjPvy
	Gm4MKzCDy5w==
X-Gm-Gg: AZuq6aKqI4nU4GIgOwTZSiQGSfMlh1HW0xCyuq3XGo1KyMh8DwpNHnj98ofdLo7dF9W
	9Fvv/c3rsxVkGdxS0PaNprezeLR5cTAsnnQZiGp9RNPUlg1gs3Ua24nS/7SH3bJwwZUtYxufgUC
	FIbcuYZveH4Oj9GN6Di4uMw/cUlD6wZpDvHQV1iAeL5krNF3amDDqZOu8StmUpxY4VwmQ8v2s/N
	qp6KerEIxXhfpTFFDmECsGMibl53jtujQ6N+eMD5slWMns+ATYje/qNA5+ix6wJ13kj9VP0w2OE
	n9f2uDd1WD0LyTh1B/PwMfVCA/Gl7J2rOX8FQJFIXFI0xuEEqkMwZ9xeR3iE9ZPuUAMUb2yBMDS
	/B5Q31FDGVtxWth/2Av3D4wZ/DnG6Xycl2GSIaFxoRjagpwSME8dLhUNMrO0YbjUoXaMAJaU92B
	Z4o//jN9Mlxm0HO/HA0W0Lh+v9sG40e37iOlQh4EEdRrSvgScoo/J5M2l4EuPm/BGGP7cWbAA=
X-Received: by 2002:a05:600c:8b88:b0:479:35e7:a0e3 with SMTP id 5b1f17b1804b1-483a963d64bmr14245295e9.30.1771624029103;
        Fri, 20 Feb 2026 13:47:09 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 09/12] x86/shadow: Rework write_atomic() call in shadow_write_entries()
Date: Fri, 20 Feb 2026 21:46:50 +0000
Message-Id: <20260220214653.3497384-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Eclair complains of a side effect in a sizeof() expression (R13.6).

write_atomic() only evaluates each parameter once, but rewrite the expression
to less resemble entries in an obfuscation contest.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/mm/shadow/set.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/shadow/set.c b/xen/arch/x86/mm/shadow/set.c
index 8b670b6bb555..96ba2811077e 100644
--- a/xen/arch/x86/mm/shadow/set.c
+++ b/xen/arch/x86/mm/shadow/set.c
@@ -62,8 +62,8 @@ shadow_write_entries(void *d, const void *s, unsigned int entries, mfn_t mfn)
 
     ASSERT(IS_ALIGNED((unsigned long)dst, sizeof(*dst)));
 
-    for ( ; i < entries; i++ )
-        write_atomic(&dst++->l1, src++->l1);
+    for ( ; i < entries; i++, dst++, src++ )
+        write_atomic(&dst->l1, src->l1);
 
     unmap_domain_page(map);
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237617.1539919 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYLB-0001Yv-Rt; Fri, 20 Feb 2026 21:47:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237617.1539919; Fri, 20 Feb 2026 21:47: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 1vtYLB-0001W8-F3; Fri, 20 Feb 2026 21:47:13 +0000
Received: by outflank-mailman (input) for mailman id 1237617;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYL9-0008IG-15
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:11 +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 b4f27749-0ea5-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 22:47:09 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso18920445e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:09 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.07
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4f27749-0ea5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624029; x=1772228829; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XZOtH6QKJjtO5cu9aMfNJQCmxs/qiZNDuJ7ZYGgpThE=;
        b=FFmhL3IY2RNqLuaArvzpOVYyM94aSfmt7tTF+3HtrUkfRX8TxaBD0Q4NYkqgLfIUGb
         A2ujHHiktbOiffpXlqMmbUS9ZeOfWN8qdhUVucpZaHo1p/JJQOPbRv/nLCqfKV0XWGbr
         jLAtpjJBTk8fZIvdIhsBBlBOOkl3Ww8uGDMYY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624029; x=1772228829;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=XZOtH6QKJjtO5cu9aMfNJQCmxs/qiZNDuJ7ZYGgpThE=;
        b=gbBUN78nq3rxf8SzyMjhqa2nHwfhqwyW7Fj2w+aOw/Vm82WSsOSUy+6VP/1LFYQoVT
         U5EPjsqMSIICdn/QJET5XS+m9h9A89YtT9MQREWGSZSGLnPOV3Fq6KxQSe0e0hyDwkWu
         6jBHz4u722NQ2TZ/Z6omEHJoUUaNgFJbG3gn+MS9rCsTx6/XCLtbE1fTNoBB3v42SM1u
         Kwgs71XM+F6qJjQlcYABUNxSogMc605J+YonrDOZmJvGVBMT88f5APCQEZ7epcQWTAtO
         6OSZ8oNT6nsR9k8+aU5ECYEdIYt1cI8s8HvxjsTawRkjdpuC8nQtAu4kBS+UMEz69a16
         w5wQ==
X-Gm-Message-State: AOJu0YzRINYD++V159sEYQMRwiSCfoXnmOTx3QOL1D/hViG1uEyzYI7y
	Dupd0gT9ADkwomDac/dV6sRX2TZzfLSl6KSYioXSYS3bGIWXovDy0vhFYOMMHmpE5f7nGSzFbPV
	I3siI
X-Gm-Gg: AZuq6aJOVCtaXM3gEEH2TZ35noajENnfyLW7ddKnByOy6L0jKIDvWD6/vDQMy787zJ8
	JI6hXGn9cEtlwpdOLklDNKCFqYLZg1lNV/1j3DM5pd2Q/aLb9Ycwl1eQ9Is0WtH1AUpu9tQpjoU
	c586RZUwaQPc1YR4IhzB3yVwfPV18E9UywzImHeF7rENlc7YceFUuauiw86684eVXn41azMK0TM
	dlY6TOWIXbiKC8ZrTAcrBodnAI5ph8QoKB2izMjc/x5p+f5OgfdJ/eYbM/Ea2uDEm1sYpPhng8z
	kq7POWK3gZJZHkiapAPT35V6JVkehdRgSaNWMD3RCq5aW7dq4Ijc7mgT3DEbfXdHCMovTSUp9Re
	Su5cBo8pJCneL7ckui2KBtryDv92C/t2Fmp64Bg7d1P1q+H3q4+CYVt+WwXrWllyhw8Ax5TroOF
	THY8jllhXVBRK//gzZO7ByZOQnyv3IqCJXUaUZubkII6WfqSTFLflUxqlSRKzXweG1qalldIo=
X-Received: by 2002:a05:600c:8b71:b0:483:7980:4687 with SMTP id 5b1f17b1804b1-483a95dd932mr16357815e9.17.1771624027841;
        Fri, 20 Feb 2026 13:47:07 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 07/12] xen/vmac: Const the key parameter of vmac_set_key()
Date: Fri, 20 Feb 2026 21:46:48 +0000
Message-Id: <20260220214653.3497384-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Eclair complains that tboot_gen_domain_integrity() is casting away
constness (Rule 11.8 violation).

vmac_set_key() doesn't modify the user_key parameter, so it can become const,
removing the need to cast.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/tboot.c      | 6 +++---
 xen/crypto/vmac.c         | 2 +-
 xen/include/crypto/vmac.h | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 0b3d596690cc..5ae27f481f94 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -202,7 +202,7 @@ static void tboot_gen_domain_integrity(const uint8_t key[TB_KEY_SIZE],
     uint8_t nonce[16] = {};
     vmac_ctx_t ctx;
 
-    vmac_set_key((uint8_t *)key, &ctx);
+    vmac_set_key(key, &ctx);
     for_each_domain( d )
     {
         if ( !(d->options & XEN_DOMCTL_CDF_s3_integrity) )
@@ -241,7 +241,7 @@ static void tboot_gen_xenheap_integrity(const uint8_t key[TB_KEY_SIZE],
     uint8_t nonce[16] = {};
     vmac_ctx_t ctx;
 
-    vmac_set_key((uint8_t *)key, &ctx);
+    vmac_set_key(key, &ctx);
     for ( mfn = 0; mfn < max_page; mfn++ )
     {
         struct page_info *page = mfn_to_page(_mfn(mfn));
@@ -272,7 +272,7 @@ static void tboot_gen_frametable_integrity(const uint8_t key[TB_KEY_SIZE],
     uint8_t nonce[16] = {};
     vmac_ctx_t ctx;
 
-    vmac_set_key((uint8_t *)key, &ctx);
+    vmac_set_key(key, &ctx);
     for ( sidx = 0; ; sidx = nidx )
     {
         eidx = find_next_zero_bit(pdx_group_valid, max_idx, sidx);
diff --git a/xen/crypto/vmac.c b/xen/crypto/vmac.c
index f1f6d75f8eeb..c9914d2c7c1d 100644
--- a/xen/crypto/vmac.c
+++ b/xen/crypto/vmac.c
@@ -924,7 +924,7 @@ uint64_t vmac(unsigned char m[],
 
 /* ----------------------------------------------------------------------- */
 
-void vmac_set_key(unsigned char user_key[], vmac_ctx_t *ctx)
+void vmac_set_key(const unsigned char user_key[], vmac_ctx_t *ctx)
 {
     uint64_t in[2] = {0}, out[2];
     unsigned i;
diff --git a/xen/include/crypto/vmac.h b/xen/include/crypto/vmac.h
index 457f3f5dd6da..7574c4a3f328 100644
--- a/xen/include/crypto/vmac.h
+++ b/xen/include/crypto/vmac.h
@@ -161,7 +161,7 @@ uint64_t vhash(unsigned char m[],
  * When passed a VMAC_KEY_LEN bit user_key, this function initialazies ctx.
  * ----------------------------------------------------------------------- */
 
-void vmac_set_key(unsigned char user_key[], vmac_ctx_t *ctx);
+void vmac_set_key(const unsigned char user_key[], vmac_ctx_t *ctx);
 
 /* --------------------------------------------------------------------- */
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237618.1539927 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYLC-0001mn-Ii; Fri, 20 Feb 2026 21:47:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237618.1539927; Fri, 20 Feb 2026 21:47: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 1vtYLC-0001jf-BQ; Fri, 20 Feb 2026 21:47:14 +0000
Received: by outflank-mailman (input) for mailman id 1237618;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYLA-0008IG-If
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:12 +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 b5bfbbb9-0ea5-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 22:47:10 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-480706554beso28511075e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:10 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b5bfbbb9-0ea5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624030; x=1772228830; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZTqLwQAs0U3ktqAPOv0GkFeeIfrNLrDf4DIWmemjfFQ=;
        b=MzIwYoLRbmbdwpCrrCbztLj/pWlkZ9t4vfFHzj0ck/GsHrQ+fkwerOXzK3dKGYHcdU
         /UbtN7WFb5sOtM/u2FSQDG27a5w9E4bvakUueUVK2pL1outtQPgQ7UaPL2+Cd/dg1/Il
         rKpXhk8uVJwvlmOKB8W8I57Pr/+mFdGoOkCqU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624030; x=1772228830;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZTqLwQAs0U3ktqAPOv0GkFeeIfrNLrDf4DIWmemjfFQ=;
        b=d5Ru0EOGlSSUdHXeoasujpwK2U/7JC8Dz7MYLieEzN6wSkytWjGZZTmmFMe2DxIxDj
         jIvWcPDf3Nln8FyxK8rCyN0/bvIix2lK69EreEHX5b6mMJxbB1dJnwqzkv66CoV4RNQJ
         fnPRXUiL5Is0CrqlucD+X1AJ8bRa+UlyoLTUFj2Y+dK6nHCvaEKjEYj5AkjTPRR+DdVQ
         5/8CshpFw8zFxXVBzJtkwCHeykMhG4ZfY62Ex+e18l7+eqpymz21Dku3za4OKN7Wc6fw
         CGdmMWMqkmRmo3mM1a9l67GMV7iaEa7aDic0JgX88xCM1Zc7bx+P+dK5emh0PkWGHcy/
         jfhA==
X-Gm-Message-State: AOJu0YwEp0DxA8NvlPRox6g8ZPoiEwTfjNKLPs9Su049oXvGIXBFTSDw
	78upR2XSqvbzcLDu51Lr5WsDAw1uW1kKBmKMlit9oJGJP78Bbf8EyE6XtNwOW8whq+C+n5PaNel
	RQw8OSnbGlw==
X-Gm-Gg: AZuq6aI4WT1609B3Kf/CKsizJgAismUXO4nr6tN3+vPhIDusvX/z0JUKqEE/pJLRLvv
	+Rp3/Li4uEpkP1c498ZtimSwtAotVtkLOIGILfmu2x/nXlV7MtSeDYb9mVi9vGaW9m4uK3JZ9Ee
	GFLBAfnl85Q9c04UDKgyIYRTDomEZZhRZpKNdJGIXYQ6mJjEeIpThf2ygh5bg5KUJahuEfrI+aq
	aN0aUEMaI8LD9pe4JzGsQRqww6fWT6Bp1/kK3dWU509x3kiD/S3uE9U56Y6VVRvU/WtDc+ualkz
	QNvXjTv6fVOSrrOc+rGSJ55pPIX/6b/4iJtwuy/64rcDff5hGpwRf1Argcl8rXkTVF6Cy+aHBsC
	CFVwhhNNc4DrEptTwBHuHo1+Qmb8AJ8zoM5rtkqIwNO1mNKi3nEbsnzc99JE/kbo11aBDmApXdU
	qelvh9/148pGV6FXdTEno5hpP+XApymwkFc35iPLAXnXrqAcyWoZZ6bNA1tU9jsQ4i3PVNV2E=
X-Received: by 2002:a05:600c:64ce:b0:483:7432:a761 with SMTP id 5b1f17b1804b1-483a9637502mr16333205e9.24.1771624029745;
        Fri, 20 Feb 2026 13:47:09 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 10/12] xen: Adjust break/fallthrough statements
Date: Fri, 20 Feb 2026 21:46:51 +0000
Message-Id: <20260220214653.3497384-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

sh_destroy_shadow() has a spelling of fallthrough which doesn't match the
permitted pattern.  Convert it to a real fallthrough (psedo)keyword.

Elsewhere, insert breaks at the end of the default statements.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/arm/pci/pci-access.c     | 2 ++
 xen/arch/arm/pci/pci-designware.c | 2 ++
 xen/arch/arm/tee/optee.c          | 1 +
 xen/arch/x86/mm/shadow/common.c   | 2 +-
 4 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
index c0533c00c9a5..2b23d552bbfb 100644
--- a/xen/arch/arm/pci/pci-access.c
+++ b/xen/arch/arm/pci/pci-access.c
@@ -63,6 +63,7 @@ int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
         break;
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 
     return 0;
@@ -89,6 +90,7 @@ int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,
         break;
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 
     return 0;
diff --git a/xen/arch/arm/pci/pci-designware.c b/xen/arch/arm/pci/pci-designware.c
index 6b85213f637b..902da19e8c98 100644
--- a/xen/arch/arm/pci/pci-designware.c
+++ b/xen/arch/arm/pci/pci-designware.c
@@ -48,6 +48,7 @@ static int dw_pcie_read(void __iomem *addr, unsigned int len, uint32_t *val)
         break;
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 
     return 0;
@@ -71,6 +72,7 @@ static int dw_pcie_write(void __iomem *addr, unsigned int len, uint32_t val)
         break;
     default:
         ASSERT_UNREACHABLE();
+        break;
     }
 
     return 0;
diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c
index 699e8d536862..f719d9d767ab 100644
--- a/xen/arch/arm/tee/optee.c
+++ b/xen/arch/arm/tee/optee.c
@@ -1206,6 +1206,7 @@ static void do_call_with_arg(struct optee_domain *ctx,
     default:
         /* Free any temporary shared buffers */
         free_shm_buffers(ctx, call->xen_arg);
+        break;
     }
 
     put_std_call(ctx, call);
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
index 96986ee2553d..5834c265f76d 100644
--- a/xen/arch/x86/mm/shadow/common.c
+++ b/xen/arch/x86/mm/shadow/common.c
@@ -1213,7 +1213,7 @@ void sh_destroy_shadow(struct domain *d, mfn_t smfn)
 #ifdef CONFIG_PV32
     case SH_type_l2h_64_shadow:
         ASSERT(is_pv_32bit_domain(d));
-        /* Fall through... */
+        fallthrough;
 #endif
     case SH_type_l2_64_shadow:
         SHADOW_INTERNAL_NAME(sh_destroy_l2_shadow, 4)(d, smfn);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237620.1539944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYLE-0002Fi-80; Fri, 20 Feb 2026 21:47:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237620.1539944; Fri, 20 Feb 2026 21:47: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 1vtYLD-0002DJ-ST; Fri, 20 Feb 2026 21:47:15 +0000
Received: by outflank-mailman (input) for mailman id 1237620;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYLB-0008IG-LP
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:13 +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 b6834de7-0ea5-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 22:47:12 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso33419825e9.0
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:12 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6834de7-0ea5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624031; x=1772228831; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wazStv22+sAAkXhUXk9SZLE13GE7UuEeUTF8Qgk68Bw=;
        b=sRmJDvz7AA8KjQEgnW8scWIUHxFwE1hulQAg37MKray+hg2erxodWMFHLuF/ZShj1u
         WaVRCrzpQdDjMxLCBAGp3eZrI6Iq5/sEVFbc6zZbqnvLRlCbxnQ08fwv75m75ITtuFvx
         j8KYZkbC8UqeXdb6mbVKaYTrOCjrCoFYdxb34=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624031; x=1772228831;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wazStv22+sAAkXhUXk9SZLE13GE7UuEeUTF8Qgk68Bw=;
        b=mCWhEbyq1JmmYgVe5Zkw3COkR5h/u07AtjBkdb+fhkWX+xeqpTBAZqUN6U5Vybx2fG
         HqevFpvtbqhcONko4ixOttxiMXLFjXh/cwIH7pc9gfW7Xn11RTzAEpt7OdcFmFesCJrD
         b7uWdwnOTU7lw5J2PwjVSNefGSnS7Xk/IznTIF2jePKnhLgYoTlrmkRBvYzNNXXZLEtu
         RFEXZ0uNAPOxDXSUgpMNNmO5O12/IoREAhr9hILVnMnRddAxTzAdRP/Fi+MJoJsAhg4S
         1hHTbCYRT9MH8lz0SH9+DhUIW0T+LK9ImtsA0qql60HBMkMyywH5aiGZ5/4UR/Kp91R2
         yOQg==
X-Gm-Message-State: AOJu0YzGiC18ynmA17YwOIjN+NAPLwrn45/jf/MVdJxEogiy5OGtyFls
	ubX06YSYkBpvY+8SRQ5s14aZukAeB0FuuAXGWhbwHrcRwv54L/AT9HVJBxmr5OOBqRlnMTqTiue
	lnUrs5gO/5Q==
X-Gm-Gg: AZuq6aIxtFHHoliPmnnNbF6QT02HQcyzOQFw3u49bGAw0ZZbSSdgNPcCr7kIR8rgkGY
	OvcHxm8bh26Zg0DodwP2BT3YVS6o/U5cg8I8TlNgAIDmNApplVME8aFAgFbP7h7Vt/sE9nG7WQd
	N7XYNtAhCXJNirj3PJzjOy+wiEMdvGDfJMNhb5pTn5dzNkCJu69T6JvIBNgkZp/wYYgc2pm0E/A
	5axwb8yNLBt//txlN+mfyO71lhH2+/XqTVXDxv1mryGYDfrDBtdhmQVLambtB3CIi4fxteo1uaT
	EKdwAaWpij3BKf/HDyBMrsJdvCEKRa4wIZR1xXUyCWCZ3MQGjt4En8gc7vZqFqUKdLPVHfvyR1r
	21aJMkOMltXql01KFUzSubedYF0MyR6S+brNmTdd5SlbIegskTVWHNmqcy81LUnSHXvdg1JT0oD
	DXuKpPJKVYN/YvwyqxQMpdTJ4qSDZEfyW9k/DyQwRhNSyJOZRL7UAvumbBrJ+uj9eehqDjaJ0=
X-Received: by 2002:a05:600c:1f08:b0:46e:59bd:f7e2 with SMTP id 5b1f17b1804b1-483a94c996fmr16228945e9.11.1771624031099;
        Fri, 20 Feb 2026 13:47:11 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 12/12] xen/vmac: Delete STDINT block in vmac.h
Date: Fri, 20 Feb 2026 21:46:53 +0000
Message-Id: <20260220214653.3497384-13-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Eclair complains that _MSC_VER is undefined (a Rule 20.9 violation).

This could be fixed by inserting an "&& defined(_MSC_VER)" clause, but the
whole block is entirely useless (it comments out the include of stdint) and
the top of vmac.c pulls in xen/types.h specifically.

Simply delete the block.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/include/crypto/vmac.h | 23 -----------------------
 1 file changed, 23 deletions(-)

diff --git a/xen/include/crypto/vmac.h b/xen/include/crypto/vmac.h
index 7574c4a3f328..43fd288ae3bd 100644
--- a/xen/include/crypto/vmac.h
+++ b/xen/include/crypto/vmac.h
@@ -35,29 +35,6 @@
 #define hz (400e6)   mips
 */
 
-/* --------------------------------------------------------------------------
- * This implementation uses uint32_t and uint64_t as names for unsigned 32-
- * and 64-bit integer types. These are defined in C99 stdint.h. The
- * following may need adaptation if you are not running a C99 or
- * Microsoft C environment.
- * ----------------------------------------------------------------------- */
-#define VMAC_USE_STDINT 1  /* Set to zero if system has no stdint.h        */
- 
-#if VMAC_USE_STDINT && !_MSC_VER /* Try stdint.h if non-Microsoft          */
-#ifdef  __cplusplus
-#define __STDC_CONSTANT_MACROS
-#endif
-//#include <stdint.h>
-#elif (_MSC_VER)                  /* Microsoft C does not have stdint.h    */
-typedef unsigned __int32 uint32_t;
-typedef unsigned __int64 uint64_t;
-#define UINT64_C(v) v ## UI64
-#else                             /* Guess sensibly - may need adaptation  */
-typedef unsigned int uint32_t;
-typedef unsigned long long uint64_t;
-#define UINT64_C(v) v ## ULL
-#endif
-
 /* --------------------------------------------------------------------------
  * This implementation supports two free AES implementations: OpenSSL's and
  * Paulo Barreto's. To use OpenSSL's, you will need to include the OpenSSL
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:47:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:47:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237619.1539950 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYLE-0002NW-R4; Fri, 20 Feb 2026 21:47:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237619.1539950; Fri, 20 Feb 2026 21:47: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 1vtYLE-0002KG-Cf; Fri, 20 Feb 2026 21:47:16 +0000
Received: by outflank-mailman (input) for mailman id 1237619;
 Fri, 20 Feb 2026 21:47: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=2tad=AY=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vtYLB-0008Ew-Cs
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:47:13 +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 b61d39a9-0ea5-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 22:47:11 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-436356740e6so2654077f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 20 Feb 2026 13:47:11 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm28940205e9.13.2026.02.20.13.47.09
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 20 Feb 2026 13:47:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b61d39a9-0ea5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771624031; x=1772228831; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=QL0YluuNljQpopZEfgU7W97F1VvgWXQ8YTIYrdrO7hc=;
        b=Q2M2FZisofsQDWxzuJLABo41tKT3ptdHqJDDaU5HpZVCoGqDc0Bm32JHdghcTbVbzE
         zFUGHHOxTNaAQLXZiB13yVBzhP6KhSRhxJ4B8Vte/RhZrdHRQYZhFM+nuOWj2mpEf+uK
         WPP6A4B43Ed1Wf48s67ZDHMHWEUcU0B3ZQT4g=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771624031; x=1772228831;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=QL0YluuNljQpopZEfgU7W97F1VvgWXQ8YTIYrdrO7hc=;
        b=WcWZXIK1XI5IpTFiP+/cgyz7VSdaaoiUjTtY9dm0lTb1SN2bDsSWY4oN4H5jwnouYY
         SiGF3K/twIYDAPO/Qu6eMQcxQ66FjpFKmdlVcAHIEb2N5uKPsYg3K7oFGpEYKeXBnYkA
         Jl+JxlxM+zfxcTm7ZnYL6qtLVjcC93TbKCIFkoUY0NK+3JnpR38HRM/ShoxyxxlNbtVZ
         yvsdnXhPCEBqhYxWC56eyinwHBVVvyi7HVpZqAKVzM5z3Vw0Nz3ytqBUFLc25dGwN8yi
         uO7yycp3hgG++CcjmBmegTmzCverV3FGsIs1kY0Fotj6I3/yF+UDk+cvmUG6KIz6JgsA
         DgpA==
X-Gm-Message-State: AOJu0Yx/fs0RPfQrmkzYwEsQV64oth7aGScxVBmup8YQYpAPNuaOFjjb
	qVhylPCbp62mAQkggJC38WLMiS3LGHf0vNc7XzKA37lquEmu6EceXiZRNGo6xIOwrkkZQZWWTrK
	H+I7pDaATNA==
X-Gm-Gg: AZuq6aLlIHR4MJwhmMdYzJMLeUpnvc3AxqR5MfYo6TWLjyzzJrNj6OY2pkIIo4os9rQ
	QrujDU56iGtmWn/CCrJkaWpTHKaJh+/lLFhI6cYQmYmXSeEDFgApJZsGGGGrmM2I3DgKJgmHPE9
	MLC1yFcumgmGKX64KfY3KkPMT/paimpLvcAoRPRPSPCViEMNyhmJFjFBZYgW1hf4tDQIVbSmfE+
	evnPgqo5B2ly2fSe3Nguduyqkf1hP96AkMlycQUk4tTEN2GI3poEQZ9EhHuEItFgPs+5+p+ZAoU
	iyxwFnfUVLQzMEgwl6bwNoPOk4G2bXezPCas5NfU+fivsa0mK15Z4aJzx3TmGanI8NPGCwAJ7SR
	bmffEHuQw/6g57XsmlvQRjYtqS6p544baKwoDV5ntAxoLm9WZto8aBY+8ozAucVTDYSDozaTM6B
	00S+HZ6sZYeF25fghn5qV+ZXodwbr2KI2zWuYE1GR74duDlrWInpK02SpuEBgtC+aybqb1ZEQ=
X-Received: by 2002:a05:600c:3b10:b0:483:43da:6c87 with SMTP id 5b1f17b1804b1-483a963d603mr13512275e9.33.1771624030450;
        Fri, 20 Feb 2026 13:47:10 -0800 (PST)
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>,
	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>,
	"consulting @ bugseng . com" <consulting@bugseng.com>,
	Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: [PATCH 11/12] xen: Bracket uses of macro parameters
Date: Fri, 20 Feb 2026 21:46:52 +0000
Message-Id: <20260220214653.3497384-12-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixing Rule 20.7 violations.

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: 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>
CC: consulting@bugseng.com <consulting@bugseng.com>
CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/arm/pci/pci-access.c       |  6 +++---
 xen/arch/x86/include/asm/bootinfo.h |  2 +-
 xen/arch/x86/mm/shadow/multi.c      |  2 +-
 xen/common/kimage.c                 | 11 ++++++-----
 xen/common/livepatch.c              | 11 ++++++-----
 xen/crypto/vmac.c                   |  8 ++++----
 xen/include/xen/libfdt/libfdt.h     |  6 +++---
 7 files changed, 24 insertions(+), 22 deletions(-)

diff --git a/xen/arch/arm/pci/pci-access.c b/xen/arch/arm/pci/pci-access.c
index 2b23d552bbfb..7bd6877596d4 100644
--- a/xen/arch/arm/pci/pci-access.c
+++ b/xen/arch/arm/pci/pci-access.c
@@ -16,7 +16,7 @@
 #include <asm/io.h>
 
 #define INVALID_VALUE (~0U)
-#define PCI_ERR_VALUE(len) GENMASK(0, len * 8)
+#define PCI_ERR_VALUE(len) GENMASK(0, (len) * 8)
 
 static const struct pci_ops *get_ops(struct pci_host_bridge *bridge,
                                      pci_sbdf_t sbdf)
@@ -139,14 +139,14 @@ static void pci_config_write(pci_sbdf_t sbdf, unsigned int reg,
     void pci_conf_write##size(pci_sbdf_t sbdf,              \
                               unsigned int reg, type data)  \
 {                                                           \
-    pci_config_write(sbdf, reg, size / 8, data);            \
+    pci_config_write(sbdf, reg, (size) / 8, data);          \
 }
 
 #define PCI_OP_READ(size, type)                             \
     type pci_conf_read##size(pci_sbdf_t sbdf,               \
                               unsigned int reg)             \
 {                                                           \
-    return pci_config_read(sbdf, reg, size / 8);            \
+    return pci_config_read(sbdf, reg, (size) / 8);          \
 }
 
 PCI_OP_READ(8, uint8_t)
diff --git a/xen/arch/x86/include/asm/bootinfo.h b/xen/arch/x86/include/asm/bootinfo.h
index 4f2cc5906e59..b3a6b2acf3ac 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -75,7 +75,7 @@ static inline unsigned int __init next_boot_module_index(
 #define for_each_boot_module_by_type(i, b, t)           \
     for ( (i) = first_boot_module_index(b, t);          \
           (i) <= (b)->nr_modules;                       \
-          (i) = next_boot_module_index(b, t, i + 1) )
+          (i) = next_boot_module_index(b, t, (i) + 1) )
 
 #endif /* X86_BOOTINFO_H */
 
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index 3bbaceec1287..9de60720db20 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -793,7 +793,7 @@ do {                                                                    \
 do {                                                                    \
     int __done = 0;                                                     \
     _FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p,                         \
-                         ({ (__done = _done); }), _code);               \
+                         ({ (__done = (_done)); }), _code);             \
     _sl1mfn = sh_next_page(_sl1mfn);                                    \
     if ( !__done )                                                      \
         _FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p, _done, _code);      \
diff --git a/xen/common/kimage.c b/xen/common/kimage.c
index e1aec5a18a54..972301368443 100644
--- a/xen/common/kimage.c
+++ b/xen/common/kimage.c
@@ -491,11 +491,12 @@ static void kimage_terminate(struct kexec_image *image)
  * Call unmap_domain_page(ptr) after the loop exits.
  */
 #define for_each_kimage_entry(image, ptr, entry)                        \
-    for ( ptr = map_domain_page(_mfn(paddr_to_pfn(image->head)));       \
-          (entry = *ptr) && !(entry & IND_DONE);                        \
-          ptr = (entry & IND_INDIRECTION) ?                             \
-              (unmap_domain_page(ptr), map_domain_page(_mfn(paddr_to_pfn(entry)))) \
-              : ptr + 1 )
+    for ( (ptr) = map_domain_page(_mfn(paddr_to_pfn((image)->head)));   \
+          ((entry) = *(ptr)) && !((entry) & IND_DONE);                  \
+          (ptr) = (((entry) & IND_INDIRECTION)                          \
+                   ? (unmap_domain_page(ptr),                           \
+                      map_domain_page(_mfn(paddr_to_pfn(entry))))       \
+                   : (ptr) + 1) )
 
 static void kimage_free_entry(kimage_entry_t entry)
 {
diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
index 7446533c8cfb..63473925cafb 100644
--- a/xen/common/livepatch.c
+++ b/xen/common/livepatch.c
@@ -664,9 +664,10 @@ static inline int livepatch_check_expectations(const struct payload *payload)
     const struct livepatch_elf_sec *__sec = livepatch_elf_sec_by_name(elf, section_name); \
     if ( !__sec )                                                                         \
         break;                                                                            \
-    if ( !section_ok(elf, __sec, sizeof(*hook)) || __sec->sec->sh_size != sizeof(*hook) ) \
+    if ( !section_ok(elf, __sec, sizeof(*(hook))) ||                                      \
+         __sec->sec->sh_size != sizeof(*(hook)) )                                         \
         return -EINVAL;                                                                   \
-    hook = __sec->addr;                                                                   \
+    (hook) = __sec->addr;                                                                 \
 } while (0)
 
 /*
@@ -678,10 +679,10 @@ static inline int livepatch_check_expectations(const struct payload *payload)
     const struct livepatch_elf_sec *__sec = livepatch_elf_sec_by_name(elf, section_name); \
     if ( !__sec )                                                                         \
         break;                                                                            \
-    if ( !section_ok(elf, __sec, sizeof(*hook)) )                                         \
+    if ( !section_ok(elf, __sec, sizeof(*(hook))) )                                       \
         return -EINVAL;                                                                   \
-    hook = __sec->addr;                                                                   \
-    nhooks = __sec->sec->sh_size / sizeof(*hook);                                         \
+    (hook) = __sec->addr;                                                                 \
+    (nhooks) = __sec->sec->sh_size / sizeof(*(hook));                                     \
 } while (0)
 
 static int prepare_payload(struct payload *payload,
diff --git a/xen/crypto/vmac.c b/xen/crypto/vmac.c
index c9914d2c7c1d..c7aa1e9be3b9 100644
--- a/xen/crypto/vmac.c
+++ b/xen/crypto/vmac.c
@@ -203,7 +203,7 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
 #define nh_16(mp, kp, nw, rh, rl)                                            \
 {   int i; uint64_t th, tl;                                                  \
     rh = rl = 0;                                                             \
-    for (i = 0; i < nw; i+= 2) {                                             \
+    for (i = 0; i < (nw); i+= 2) {                                           \
         MUL64(th,tl,get64PE((mp)+i  )+(kp)[i  ],get64PE((mp)+i+1)+(kp)[i+1]);\
         ADD128(rh,rl,th,tl);                                                 \
     }                                                                        \
@@ -211,7 +211,7 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
 #define nh_16_2(mp, kp, nw, rh, rl, rh1, rl1)                                \
 {   int i; uint64_t th, tl;                                                  \
     rh1 = rl1 = rh = rl = 0;                                                 \
-    for (i = 0; i < nw; i+= 2) {                                             \
+    for (i = 0; i < (nw); i+= 2) {                                           \
         MUL64(th,tl,get64PE((mp)+i  )+(kp)[i  ],get64PE((mp)+i+1)+(kp)[i+1]);\
         ADD128(rh,rl,th,tl);                                                 \
         MUL64(th,tl,get64PE((mp)+i  )+(kp)[i+2],get64PE((mp)+i+1)+(kp)[i+3]);\
@@ -223,7 +223,7 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
 #define nh_vmac_nhbytes(mp, kp, nw, rh, rl)                                  \
 {   int i; uint64_t th, tl;                                                  \
     rh = rl = 0;                                                             \
-    for (i = 0; i < nw; i+= 8) {                                             \
+    for (i = 0; i < (nw); i+= 8) {                                           \
         MUL64(th,tl,get64PE((mp)+i  )+(kp)[i  ],get64PE((mp)+i+1)+(kp)[i+1]);\
         ADD128(rh,rl,th,tl);                                                 \
         MUL64(th,tl,get64PE((mp)+i+2)+(kp)[i+2],get64PE((mp)+i+3)+(kp)[i+3]);\
@@ -237,7 +237,7 @@ const uint64_t mpoly = UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
 #define nh_vmac_nhbytes_2(mp, kp, nw, rh, rl, rh1, rl1)                      \
 {   int i; uint64_t th, tl;                                                  \
     rh1 = rl1 = rh = rl = 0;                                                 \
-    for (i = 0; i < nw; i+= 8) {                                             \
+    for (i = 0; i < (nw); i+= 8) {                                           \
         MUL64(th,tl,get64PE((mp)+i  )+(kp)[i  ],get64PE((mp)+i+1)+(kp)[i+1]);\
         ADD128(rh,rl,th,tl);                                                 \
         MUL64(th,tl,get64PE((mp)+i  )+(kp)[i+2],get64PE((mp)+i+1)+(kp)[i+3]);\
diff --git a/xen/include/xen/libfdt/libfdt.h b/xen/include/xen/libfdt/libfdt.h
index fabddbee8cec..1b09bba28eea 100644
--- a/xen/include/xen/libfdt/libfdt.h
+++ b/xen/include/xen/libfdt/libfdt.h
@@ -230,9 +230,9 @@ int fdt_next_subnode(const void *fdt, int offset);
  * literal.
  */
 #define fdt_for_each_subnode(node, fdt, parent)		\
-	for (node = fdt_first_subnode(fdt, parent);	\
-	     node >= 0;					\
-	     node = fdt_next_subnode(fdt, node))
+	for ((node) = fdt_first_subnode(fdt, parent);	\
+	     (node) >= 0;				\
+	     (node) = fdt_next_subnode(fdt, node))
 
 /**********************************************************************/
 /* General functions                                                  */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 20 21:58:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 21:58:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237706.1539969 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYVj-0007vi-8s; Fri, 20 Feb 2026 21:58:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237706.1539969; Fri, 20 Feb 2026 21: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 1vtYVj-0007vb-60; Fri, 20 Feb 2026 21:58:07 +0000
Received: by outflank-mailman (input) for mailman id 1237706;
 Fri, 20 Feb 2026 21:58: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=CjHa=AY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vtYVi-0007vV-LB
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 21:58:06 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b6cffe8-0ea7-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 22:58:04 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 93C724EE7813;
 Fri, 20 Feb 2026 22:58:03 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b6cffe8-0ea7-11f1-b164-2bf370ae4941
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=1771624683;
	b=od/wvcOw5vbDQpvmAEMfDB20D5XZoOGEbxlfGQJVjawtDSksmyzYGi/olyuPPi/EDuZF
	 pXaGkLhv3dCKptrqFd6qP7AyQ4Q2/gL+f4HPr7/i3EVg87AWkDlrtMN8TgRX7YeO1dhbt
	 rdAf5i7iUsk8bDszyQIP2cKIRWJTZrOezywvmsHNOUC3H8bRhiX9P+0INN68DVBBGJ9og
	 14KCiG5Wppg50cpFnbKSTe4bdFRwhJvqsbZubA/VZljezFr0pYXY49m3V4H5fviiBKQ05
	 sDq0UhsNusr8zBukC/eV8pqCaVwwfapXJQaO/evI2dw+EifLBIWXP9lLssew8WPzEdoDQ
	 3NoEbpvKm5TwZnPrOdyRCD6Lfur+sKJIOwqKLqttrWJsTOTNaGXZ/zrxIFI8zvhCYG2g4
	 KUTwQQLtEQe8Fz22epXode/C3Aao46gT6TBafijnrBdEshsdcYZpT6wUqRtgwTejyU64L
	 w1FfJAwfDhKj0xU42hJg+4+eHy6U4w6qTn8EEVoUYeGdKlOZ5F3EI3epbD6FjMrGO/VUD
	 TzV03Ne8JtuQ3WD7LNZG2kZUs/6nzPmphnS9pl+aCa2IiREdlelfT/BpenVbL7LJmwtcR
	 e0Rl46A40B1I4bBCZbl5EPiX1F+ZC/riH4sW90KXy2PYwV68NG1YFFRPsHAATvc=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1771624683;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=SQUL1z7BRzL3A60Mgp+F9p0fDu9xJ4j1gn+DCTcytBU=;
	b=mlFpqNtKw55Ev+PZoM0AIgXFmzcAdp0og1MIyH34KTCe1gTyr79FyGilNHyzo42y/ds5
	 Jxknc9qTZ/p2pSLnEYFydeggecJFplDLKLD8hIU59ClteX5zKgJsDrCV8/S97Vy5QcWO/
	 W9mfh/Jlv3sFiKXRkRNUJIr/azzUtvO3jNCR8MQkjEDY5GOfyIaB4pTHKBu3vLEiXt/Sv
	 A+BEkZvgxniTUQsa6almXBsv6+W/I1M8TpuOTrOQqSre9Pt02QlH82GprX+gG6WCgBEvY
	 wLddFwDBpLLzHl7cCNUngBOCbLBPafZ45Su1hEWt3plG68Rek71DXH23eIM5cmOc+LpUZ
	 LJodPaYm8uu1gbO4OD9xjalnDd5QqoJ7aYDLeTMTTh+IfChMRS98EGhjfEkufir8WIbSv
	 3rlSFAuIuHeCMJZfHLtJHLYgdH0pRqRi2F1Zb1mb6a8rrtqMm+gCCcSAqeqTea2CqpWDQ
	 HkaUl9qeizEJ2cS0NPhUe0mhFYrr215Ro2V8V13uQKNICRYbauFEU2PQRv9Lr/a0iRine
	 ewytvHhxHOkWw+1dun1m/oUPSDY82VbbvHaxx9ObKMoHg/9pnApbDdSM5ZT1ejb680wfS
	 VgQcjrvfz3NLUHzr7boT2DFqEWsueHi8/t6G1+r8mSFtdAVEfSBO5tB+JjF3S1o=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Fri, 20 Feb 2026 22:58:03 +0100
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>, 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>, "consulting @ bugseng . com"
 <consulting@bugseng.com>
Subject: Re: [PATCH 01/12] arm: Use __func__ in acpi_boot_table_init()
In-Reply-To: <20260220214653.3497384-2-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-2-andrew.cooper3@citrix.com>
Message-ID: <26db9f5f17b162c0b183cff90cb452da@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 2026-02-20 22:46, Andrew Cooper wrote:
> Elcair rejects __FUNCTION__ as nonstandard syntax and a R1.1 violation.
> 

s/Elcair/ECLAIR/

> 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: 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>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---

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

>  xen/arch/arm/acpi/boot.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/acpi/boot.c b/xen/arch/arm/acpi/boot.c
> index db5085e15d84..4ac0fd8f51e8 100644
> --- a/xen/arch/arm/acpi/boot.c
> +++ b/xen/arch/arm/acpi/boot.c
> @@ -264,14 +264,14 @@ int __init acpi_boot_table_init(void)
>      if ( error )
>      {
>          printk("%s: Unable to initialize table parser (%d)\n",
> -               __FUNCTION__, error);
> +               __func__, error);
>          goto disable;
>      }
> 
>      error = acpi_table_parse(ACPI_SIG_FADT, acpi_parse_fadt);
>      if ( error )
>      {
> -        printk("%s: FADT not found (%d)\n", __FUNCTION__, error);
> +        printk("%s: FADT not found (%d)\n", __func__, error);
>          goto disable;
>      }

-- 
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 Feb 20 22:15:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 22:15:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237726.1539978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYmj-0002nr-NZ; Fri, 20 Feb 2026 22:15:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237726.1539978; Fri, 20 Feb 2026 22:15: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 1vtYmj-0002nk-Kz; Fri, 20 Feb 2026 22:15:41 +0000
Received: by outflank-mailman (input) for mailman id 1237726;
 Fri, 20 Feb 2026 22:15: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=CjHa=AY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vtYmi-0002ne-Ec
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 22:15:40 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af73a640-0ea9-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 23:15:38 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 2913C4EE7806;
 Fri, 20 Feb 2026 23:15:37 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af73a640-0ea9-11f1-9ccf-f158ae23cfc8
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=1771625737;
	b=Jy9PZvmv0XHVgphT6huxJqKJHg7OZZSYtrJ58L/2jzFt/YqsTne+vYgfWGGLKM22i5Mq
	 IvdC/6tvJL1ex018at1UAQqRvIqHeSEPaFqTYL8piBixFDtBag0UOvWKggrtmDRC9R8ZZ
	 jHc8hHztDy51mzS+kU66iPb/69Ri4hQ8PuyIoWAjrVqhHZsm0i0XlCS1vJSQfwI1goJtT
	 tEgYsoAt+yej02GG57Cct4qIiH3m/r1dwRIiIdBAaO3s751DV2NnEMF4ridlJ82M5qF5K
	 IcIpSVIIOLvgrM/o7BiJlZdd1BQ3HdHnkb3fz+tNOoqp/iPFz0Px4Tv9oWrEA8/AdQ4ka
	 QOz+FApBNkSO78dspDVmm8Y/EV026u1hDTlJ2m2/Rnk5Aotd67kNTiiKPZ5bEj9iGYWia
	 tqRxOR18T17afA9WK6JUtemRfOPjVdLlOTreGu3DcY06AQqKjl8uLMtLDQmzKZjqSphbE
	 /1XRxDL/1JB4yqabdc4jBKAHWJKeMnKBzktuDlXiVipl0DOq8G4pevV5UUalLF4MaVyW5
	 4HvZwcIifLvTKrOrtooGSCAGKfS0z2lYr/wkwfIlgoENTrCpuFMamHnXnrp24CKMhZi7K
	 gsRysVeUR+iaGUvJ7zFoxxvw1vJiEQH3dqltSTJeQlZSU4xsucp29n/2hAF3Jkc=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1771625737;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=EN/3HH/VIPh5HXiOGshM4hir4fjZy/kgf/ECL5VqcoU=;
	b=stgJLXcEFrVbzWQkS6S+idXdJWZlb04/xrXTq516cPxVW5WRHYsuP1GfMhamv+qHm5Ix
	 k3BguW5Sn0uvNQbGE6pSrTRFuiHjgr/WHaiv93gAzViCFxM6EMZaHnbxxv8qI5BnQC0yT
	 dDg21o2ee1F0+ht6+ovXi7SLXt3BBUsNF9wDmkY5NEH1m3JT6gbwwyQ3RVax7ZRIQTbsM
	 6QWDmxFJ+ISU/N5Fj+Pw2YfXU/HLDImF+MdQqk2DWw4QOK/TrLqNTxHvRTZM2Ghpx1r2A
	 dXp46bjKIEUIon0zdGJRXgVPW6K+zr7Bbhn9Xt2Pt9vX/6hZd/S/RWdOg7SFAaXB6YrP/
	 LEkGTH0H1l3+V0jd+N7oDlkCpVuVDmVm9GgSBZVF8pPeF6vgIy3o9Io/Tc+ywzZv66a8m
	 Qm5h9a55pN7UEEZwJ9YHPzIgGSbEwx98t1ygyW7dTzh9MYYy6UGwmqNcVfef59l+LzGtE
	 DMS45oINW7zuEVv4PmwmGhw0cayuDTzhkZoLO4aHc2xfqONDn6MQ43BGC7G+zU0F5ZzoE
	 RkeRiKmler66ef6wREhPOSO/HFgvsaZAIjBnJiqHb8+tAjEH5IBrmh8cvlUA6FPV36+s7
	 N7eKezKMkJBVLryc73R7WW9NfspE/0hOO86hr0ETeeqhRBZ6DR7ub1CQ8w0/3U4=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Fri, 20 Feb 2026 23:15:37 +0100
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>, 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>, "consulting @ bugseng . com"
 <consulting@bugseng.com>
Subject: Re: [PATCH 08/12] arm/pci-designware: Fix MISRA violations
In-Reply-To: <20260220214653.3497384-9-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-9-andrew.cooper3@citrix.com>
Message-ID: <0261cb56885d241d010467e8ff24e169@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 2026-02-20 22:46, Andrew Cooper wrote:
> * Move includes inside the header guards (D4.10)
>  * Use NULL in preference to 0 (R11.9)
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@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>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/arm/pci/pci-designware.c | 2 +-
>  xen/arch/arm/pci/pci-designware.h | 5 ++---
>  2 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/arm/pci/pci-designware.c 
> b/xen/arch/arm/pci/pci-designware.c
> index 0bd67524ac8b..6b85213f637b 100644
> --- a/xen/arch/arm/pci/pci-designware.c
> +++ b/xen/arch/arm/pci/pci-designware.c
> @@ -285,7 +285,7 @@ void __iomem *dw_pcie_child_map_bus(struct 
> pci_host_bridge *bridge,
>                                      bridge->child_cfg->phys_addr, 
> busdev,
>                                      bridge->child_cfg->size);
>      if ( ret )
> -        return 0;
> +        return NULL;
> 
>      return bridge->child_cfg->win + where;
>  }
> diff --git a/xen/arch/arm/pci/pci-designware.h 
> b/xen/arch/arm/pci/pci-designware.h
> index b9deb3b138ae..bd93dab6f2f1 100644
> --- a/xen/arch/arm/pci/pci-designware.h
> +++ b/xen/arch/arm/pci/pci-designware.h
> @@ -6,12 +6,11 @@
>   * Based on xen/arch/arm/pci/pci-host-generic.c
>   */
> 
> -#include <xen/pci.h>
> -#include <xen/init.h>
> -
>  #ifndef __PCI_DESIGNWARE_H__
>  #define __PCI_DESIGNWARE_H__
> 
> +#include <xen/pci.h>
> +#include <xen/init.h>
> 
>  #define PCIE_ATU_VIEWPORT               0x900
>  #define PCIE_ATU_REGION_OUTBOUND        0

-- 
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 Feb 20 22:28:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 22:28:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237741.1539988 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtYz3-0004rx-Pb; Fri, 20 Feb 2026 22:28:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237741.1539988; Fri, 20 Feb 2026 22: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 1vtYz3-0004rq-Ml; Fri, 20 Feb 2026 22:28:25 +0000
Received: by outflank-mailman (input) for mailman id 1237741;
 Fri, 20 Feb 2026 22:28: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=CjHa=AY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vtYz2-0004rk-Qc
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 22:28:24 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 775d93db-0eab-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 23:28:23 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 0624C4EE7806;
 Fri, 20 Feb 2026 23:28:22 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 775d93db-0eab-11f1-b164-2bf370ae4941
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=1771626502;
	b=k2drEl+33ibwTdFLxCHf8ZfXf5FLxkevHpKPReJQAyfxttFSx11n4iRZTMzqirYwfHb0
	 wMo0Mv7iPG1Nd09Cryag94v1JyOztQ+By61oH5GW/68A/u3Zrm8jPefPUDw2d1NZCBEax
	 a/z1Dpo5K4xT3gYoqbXt/XamkaS3i389QIBIRcmEOeAx0KxYGfNwAVdRSwD0CST1oz21V
	 7An2S5HZJL5sFiuhoLR/lZ/rrlCptklDtgVwfEK6o5tJCraBct1qwLNYHRWBPS4rl5qMz
	 7J66Rr4vbebANbchqz+aiObp3Hie1mLlG7rCuJbXaXDhjiBqO1fUXX5CesJYWxINVLjxY
	 JLr8nNpWHEgR3RVaHu6qygzi/fja2g1gDKMpD2rD3GZdeVm1Q58+VO6rV4rrtgTPRH0Ck
	 5oRXiJ7KJqMHJ10afbYEQt71tKN+EY40jgrrV/e3+0ONHRoiYQN0Xstybz6OZcFFKbXgb
	 IQX6196lOXi8sh9c/NNw1cIZEAF2tVuoikFjaIQs2Gx1K0CKaLL72cTYEuFORFekX/cLt
	 wJCYMWL0YEzB/Dt5hPKUyktOKdRToWT+DKt3rFprbfPdcZON62AysLi84DFUdMA2BJTCJ
	 j5YqqtkCI6z6+K1ZFKSw0r5JX4/LY0Y4V4OEK1Qb8aY4jN3E4gtG2KxuFftDc9o=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1771626502;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=zZn5QYlNeJIrV89Vh+0VBlA03d/Zh8ZaSlffBESY800=;
	b=LSsOboDPP69AEAsZ39HPOcBKbR+qfhFELXJlf+coHChJR2OJYj14ERDXfHFqh9f8BB5k
	 TllRMJrLRUvoj3jxpFA0M9/EtlkPsD5xtuZwOKcNWVahRrsqKRqYoPsR8ZurC5+Xlvji3
	 KovcsF1fxi0302erofuskgIWiSq3gjb8H3F4tWIT1y14JSlg7wfaCt/SiatLMLf9gUy0G
	 9adrJdg9HmeokrLrns/YjO1QTBfX5vbOz30tIsj/rlnkWcA1KmchsoLoqT1Lv9OwSqZsm
	 LWZTBC1Z8Kamy0mjVJNpefBAm+bNqaLHFfH/DazRvIlunqHQ2uL3jvUXgrloen9C6rTzD
	 N3rokAZ9t3X9rMfbhdRY96q1jgYkM3iLrNM/Iq2+D7czOT1sFS0kDhXAFOMVDXtGmLwO9
	 ODzIxbHFC1jw4UPVQ/lzAxDZTeZK/1oF/adqZahyMNk+kFkEn9cPQu8szHlsD+TZkDqtB
	 xwjP/nWjgr1GTQXQoPi8Iv2DwZWuQ/IRxperV6opyGOg9D6wE9cR/B1KnVNnlqT5o8/Gg
	 Kpyr5gj2lqvJzAdZm1pfvxPrHHpO7nnqVME1Jq/zidZsMiQUISkww0N0rYpTz5ojoyNTz
	 iK6Rd5n11XWoigWRMOlz3yaIjbBHOiRlNcxPZbTEfPPmy2bgokY+c1xPwbPOy90=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Fri, 20 Feb 2026 23:28:22 +0100
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>, 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>, "consulting @ bugseng . com"
 <consulting@bugseng.com>
Subject: Re: [PATCH 09/12] x86/shadow: Rework write_atomic() call in
 shadow_write_entries()
In-Reply-To: <20260220214653.3497384-10-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-10-andrew.cooper3@citrix.com>
Message-ID: <a25b0b1e59431224d47d7303755900e1@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 2026-02-20 22:46, Andrew Cooper wrote:
> Eclair complains of a side effect in a sizeof() expression (R13.6).
> 
> write_atomic() only evaluates each parameter once, but rewrite the 
> expression
> to less resemble entries in an obfuscation contest.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@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>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/x86/mm/shadow/set.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/shadow/set.c 
> b/xen/arch/x86/mm/shadow/set.c
> index 8b670b6bb555..96ba2811077e 100644
> --- a/xen/arch/x86/mm/shadow/set.c
> +++ b/xen/arch/x86/mm/shadow/set.c
> @@ -62,8 +62,8 @@ shadow_write_entries(void *d, const void *s, unsigned 
> int entries, mfn_t mfn)
> 
>      ASSERT(IS_ALIGNED((unsigned long)dst, sizeof(*dst)));
> 
> -    for ( ; i < entries; i++ )
> -        write_atomic(&dst++->l1, src++->l1);
> +    for ( ; i < entries; i++, dst++, src++ )
> +        write_atomic(&dst->l1, src->l1);
> 
>      unmap_domain_page(map);
>  }

-- 
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 Feb 20 22:36:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 22:36:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237754.1539999 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtZ6U-0006RP-Fb; Fri, 20 Feb 2026 22:36:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237754.1539999; Fri, 20 Feb 2026 22: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 1vtZ6U-0006RI-CT; Fri, 20 Feb 2026 22:36:06 +0000
Received: by outflank-mailman (input) for mailman id 1237754;
 Fri, 20 Feb 2026 22: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=CjHa=AY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vtZ6T-0006RC-70
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 22:36:05 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 896684e0-0eac-11f1-9ccf-f158ae23cfc8;
 Fri, 20 Feb 2026 23:36:02 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id E88514EE7812;
 Fri, 20 Feb 2026 23:36:01 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 896684e0-0eac-11f1-9ccf-f158ae23cfc8
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=1771626962;
	b=ihIQGZ1EDvHB4wu0WRVp/urVYsxKrsnRsG6vqzdm1V8j6azEeKo2un9LDqH2+59XDLu2
	 lHVfYbmGHJHTu+/umSABdeVZ5VoYaQM6EWT6qmZ8C4UIVMIZGQdqhTBu65vea0Qs42u4Z
	 e9LqzuuUlNzKja5231YWWhD+MuQsWo5GmMPfwuCcrW+g5pPzSQMevE46lFGF2Of5u3xWi
	 F7OUU/pTMxlVNAFAY7loIInYR7JKXe9j+D6MSwngIVd1779Hye62n4/TXmSoyjWyRvP6A
	 yQ23gKC+GwnKLspPv1j/3ncToJKOBdpTtStrIB5DE7ds5wuvDyV6xA/L3CdNumv5hmuga
	 voY9edl/Tt0cTkF5KO0KHTznGPtLKN8EY+3Kja8YlXq7mSlfAfKvGGyH9GFnQVzQoUSDc
	 QhxqldiKQ2ctUHJvoMlcySBTppMuwxBxxAfYvEwUVJUwnm4fk674GBsL0Vzze9NaJJQOn
	 v6BG+id/76+ii1ZHcKYY/2jPZH0mN6r5DC2WfLKvK+58yzbrLLtxHb7qrLwqzw+wPX6vq
	 N8tPsJ/1T9+qIn8n/yU4GjLeWLf24mTPQp20OE9DWpW8ZUh87pfWmjZw/EN1rlTUqOePW
	 I0j5Y7v49UsNGd2nhQ1cz7CyTU/pkukyRI+rbiT1GaQIYSFM7K5NuZs2aY+Di/I=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1771626962;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=s2wppOSq5neXKBJRad5+bFHQtqi7vTyDBV9NWHmaybw=;
	b=y7lWxImlfEyw6qzShK8EP5SsHs59Vvtrd5P+qQ/aYbgk0cZ8xWIVS6AJhR2bpDT5yG8m
	 8qhCRNkt9jBaoRKsPGJQkFuZ+2U8YO5QSd1y7dgiQmgsN10qzfjuKKqrTl11Rr06s7Yzh
	 xhv8KpsBsJWSXn+Vz/p2WFYnT3Lf2Cxkftp99woew2SSWXv5ba/3JAbBiNrIYfcdceHMk
	 XboZVTBWExFXfN64It5LYOyK1ofpfF9yEVxJzMBpuqENizXnWMuFAfhgjqaDtdO+ePzk3
	 z+Y2kgHz4EOvi4EWsNfznZg1CSmJIh2MLhkqCIpqjvL+7MaE3vW2R271wcWtxMIEsl3Dn
	 mIt9iVTPvVKzyrvJ5eUXQISI/cZgH9MAPBYY5I+nYyrLMQgikYXiL/UOBfEqwBBvdcqe1
	 yg7XWqVXmNh1N923iNdXz13Vy25zHqLVYaeo+4OCzCk+2X96RA8z4hQeLsASA+OMxVw/S
	 7+fEa+y57+rGF+6hejZa39/kIYqtcsHRm2iG9d7GB9sGfeczusyB/PNQozAPlKZk2ehf4
	 duptNznrfOlQp4sWlfrA1f1chibquBzgLTDJuqcp5iOVgIqAAu8yh31YtwTlqR0REXezi
	 Hba+vIiSEOZp1l8gis2uMc3ChQbbsL4SDSpQBcpQHPFi6Vsy84TdMGuQTENUYsw=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Fri, 20 Feb 2026 23:36:01 +0100
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>, 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>, "consulting @ bugseng . com"
 <consulting@bugseng.com>
Subject: Re: [PATCH 10/12] xen: Adjust break/fallthrough statements
In-Reply-To: <20260220214653.3497384-11-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-11-andrew.cooper3@citrix.com>
Message-ID: <01cab67d11857d4355d8d130a676a9aa@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 2026-02-20 22:46, Andrew Cooper wrote:
> sh_destroy_shadow() has a spelling of fallthrough which doesn't match 
> the
> permitted pattern.  Convert it to a real fallthrough (psedo)keyword.
> 
> Elsewhere, insert breaks at the end of the default statements.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@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>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/arm/pci/pci-access.c     | 2 ++
>  xen/arch/arm/pci/pci-designware.c | 2 ++
>  xen/arch/arm/tee/optee.c          | 1 +
>  xen/arch/x86/mm/shadow/common.c   | 2 +-
>  4 files changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/arm/pci/pci-access.c 
> b/xen/arch/arm/pci/pci-access.c
> index c0533c00c9a5..2b23d552bbfb 100644
> --- a/xen/arch/arm/pci/pci-access.c
> +++ b/xen/arch/arm/pci/pci-access.c
> @@ -63,6 +63,7 @@ int pci_generic_config_read(struct pci_host_bridge 
> *bridge, pci_sbdf_t sbdf,
>          break;
>      default:
>          ASSERT_UNREACHABLE();
> +        break;
>      }
> 
>      return 0;
> @@ -89,6 +90,7 @@ int pci_generic_config_write(struct pci_host_bridge 
> *bridge, pci_sbdf_t sbdf,
>          break;
>      default:
>          ASSERT_UNREACHABLE();
> +        break;
>      }
> 
>      return 0;
> diff --git a/xen/arch/arm/pci/pci-designware.c 
> b/xen/arch/arm/pci/pci-designware.c
> index 6b85213f637b..902da19e8c98 100644
> --- a/xen/arch/arm/pci/pci-designware.c
> +++ b/xen/arch/arm/pci/pci-designware.c
> @@ -48,6 +48,7 @@ static int dw_pcie_read(void __iomem *addr, unsigned 
> int len, uint32_t *val)
>          break;
>      default:
>          ASSERT_UNREACHABLE();
> +        break;
>      }
> 
>      return 0;
> @@ -71,6 +72,7 @@ static int dw_pcie_write(void __iomem *addr, unsigned 
> int len, uint32_t val)
>          break;
>      default:
>          ASSERT_UNREACHABLE();
> +        break;
>      }
> 
>      return 0;
> diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c
> index 699e8d536862..f719d9d767ab 100644
> --- a/xen/arch/arm/tee/optee.c
> +++ b/xen/arch/arm/tee/optee.c
> @@ -1206,6 +1206,7 @@ static void do_call_with_arg(struct optee_domain 
> *ctx,
>      default:
>          /* Free any temporary shared buffers */
>          free_shm_buffers(ctx, call->xen_arg);
> +        break;
>      }
> 
>      put_std_call(ctx, call);
> diff --git a/xen/arch/x86/mm/shadow/common.c 
> b/xen/arch/x86/mm/shadow/common.c
> index 96986ee2553d..5834c265f76d 100644
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -1213,7 +1213,7 @@ void sh_destroy_shadow(struct domain *d, mfn_t 
> smfn)
>  #ifdef CONFIG_PV32
>      case SH_type_l2h_64_shadow:
>          ASSERT(is_pv_32bit_domain(d));
> -        /* Fall through... */
> +        fallthrough;
>  #endif
>      case SH_type_l2_64_shadow:
>          SHADOW_INTERNAL_NAME(sh_destroy_l2_shadow, 4)(d, smfn);

-- 
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 Feb 20 22:45:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 20 Feb 2026 22:45:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237762.1540009 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtZFS-0008A3-8r; Fri, 20 Feb 2026 22:45:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237762.1540009; Fri, 20 Feb 2026 22:45:22 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtZFS-00089w-5y; Fri, 20 Feb 2026 22:45:22 +0000
Received: by outflank-mailman (input) for mailman id 1237762;
 Fri, 20 Feb 2026 22:45: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=CjHa=AY=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vtZFQ-00089q-IS
 for xen-devel@lists.xenproject.org; Fri, 20 Feb 2026 22:45:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d51dd6a9-0ead-11f1-b164-2bf370ae4941;
 Fri, 20 Feb 2026 23:45:19 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 997E44EE7812;
 Fri, 20 Feb 2026 23:45:18 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d51dd6a9-0ead-11f1-b164-2bf370ae4941
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=1771627518;
	b=NOFuQ7+omLDGjNeLnuRxqTNmI4VaTtauhFQKzfcO1nq9oi+XFvKOD3b8eCQqFlLo+Qfb
	 d34tWecO9w0IXW6suhYXiN7SZNbkhj1PJQ2L0bjO8iJiYBZDX+ABHqLDtHieIG3NG93lq
	 owPHsu1AYc48PsIaiMUxVagfLYMUDkIJBBIucDbM1sN6fXp1+RWuOESDTWPP22F6H1SpI
	 dU2XnngbJS220iwZh5/8F/PRMsuchA1VcW/UPUeZvhOTOZKoEKPxjw9yr/B8IDNIcuNSA
	 J7PsMoetNh2msfr0fJewNMWvTXTdFndKdiCIyCLGaFsH2Y/yfnN7P41ainN2q+fC5THAi
	 wbYWJXHtd0xHV1ml3+rm20/kzl6k7Hq4GQGOxMzNIPAQgZ/JuAa9ey6FBwjXNjNZwYDU5
	 qp2BZM8AzlX3peKTPkmRa5us1xlmWjp/ZM385iH090TT/uFaewc+JH32Y9CoiPebRFymm
	 Arx3R2hav1TJFaa3tFlwrpm/BZfEhUvbovjsYnvomg8NpWa4faxLvX2wWeSCpxBNk2+W3
	 kyfjrkqe4sDDsCI5tB5H3451DJT2vnAx9CdKmAyyVQwEP/+De36vMi/9oZsTVBP61ldOv
	 hpiCs9XbvXDrfjKvumOqq5l3YpTmeuCYUSlzy/eJSMyHTjKazrsb9fyFmxfLCL8=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1771627518;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=ZuT8Al7qRVwTf+zcSkcaotR4xT/ASXYI3j/VG1xYTKk=;
	b=5NlwkaeKzYZxZrHoAyyQIaa3WPi6jTxXqF57aykLSXzJl+c2uzrPJBUPkCQY83FrWbuu
	 Yj/Io3SEFQJmmMJq/4oDOKGQBqhPhvYl8mWdNs85F0FAcL9VAr1hutgoctxhgq5c9WzFC
	 335lw6z7xm8vRUY1N7cU6D04TH7cRd2U9KPCMi6ZGqbenV3goo4IpuaZpLw4KOv5SxNd5
	 71OinRRGPzMx4dvWNcYroxibxSu8BT4PCIz8kWu/lFYKf5GM1+JaGBuvLt5THreNGkaZd
	 0oF4+RudnavWeqabQaHCv2OEzUopYuht7LKaCh2d8r9aoQlezPw7gwDSc+IJyfxpVVfDD
	 nzm2ee24t4fAJ7yu8/Kf+vRQP7NkAW8vtaF2cSQcltt/6/4/D3YQYxI/Fw475Q9qSZaem
	 5UQ2Dn9pz6d9/EPwz7fr1xZKZvyWNsUYRWpsln6wILjveSw0wfqHCSkf462eQgoMSvKFe
	 asBidUpYbRaJwHpfGOnrzyiam/zbbnkuYofntDVUV4eG5gIj+rlEanwzcudXrTsoYCRl4
	 Jil3oVUJtwMAOSYA1eRTJo4sOrgoLE02f56JGVcExZfIYXIKNPIlMzAyFYHn9EEGQaKRM
	 KRmlc+qNcpS/UDNE5zyJFLGS40wvnAUWxpBlYAxSbIGsYB6m066FegXMN+e5fKM=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Fri, 20 Feb 2026 23:45:18 +0100
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>, 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>, "consulting @ bugseng . com"
 <consulting@bugseng.com>
Subject: Re: [PATCH 11/12] xen: Bracket uses of macro parameters
In-Reply-To: <20260220214653.3497384-12-andrew.cooper3@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-12-andrew.cooper3@citrix.com>
Message-ID: <a917dc27a7fba87a8f829558444545bb@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 2026-02-20 22:46, Andrew Cooper wrote:
> Fixing Rule 20.7 violations.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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


Two minor nits below

> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@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>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>  xen/arch/arm/pci/pci-access.c       |  6 +++---
>  xen/arch/x86/include/asm/bootinfo.h |  2 +-
>  xen/arch/x86/mm/shadow/multi.c      |  2 +-
>  xen/common/kimage.c                 | 11 ++++++-----
>  xen/common/livepatch.c              | 11 ++++++-----
>  xen/crypto/vmac.c                   |  8 ++++----
>  xen/include/xen/libfdt/libfdt.h     |  6 +++---
>  7 files changed, 24 insertions(+), 22 deletions(-)
> 
> diff --git a/xen/arch/arm/pci/pci-access.c 
> b/xen/arch/arm/pci/pci-access.c
> index 2b23d552bbfb..7bd6877596d4 100644
> --- a/xen/arch/arm/pci/pci-access.c
> +++ b/xen/arch/arm/pci/pci-access.c
> @@ -16,7 +16,7 @@
>  #include <asm/io.h>
> 
>  #define INVALID_VALUE (~0U)
> -#define PCI_ERR_VALUE(len) GENMASK(0, len * 8)
> +#define PCI_ERR_VALUE(len) GENMASK(0, (len) * 8)
> 
>  static const struct pci_ops *get_ops(struct pci_host_bridge *bridge,
>                                       pci_sbdf_t sbdf)
> @@ -139,14 +139,14 @@ static void pci_config_write(pci_sbdf_t sbdf, 
> unsigned int reg,
>      void pci_conf_write##size(pci_sbdf_t sbdf,              \
>                                unsigned int reg, type data)  \
>  {                                                           \
> -    pci_config_write(sbdf, reg, size / 8, data);            \
> +    pci_config_write(sbdf, reg, (size) / 8, data);          \
>  }
> 
>  #define PCI_OP_READ(size, type)                             \
>      type pci_conf_read##size(pci_sbdf_t sbdf,               \
>                                unsigned int reg)             \
>  {                                                           \
> -    return pci_config_read(sbdf, reg, size / 8);            \
> +    return pci_config_read(sbdf, reg, (size) / 8);          \
>  }
> 
>  PCI_OP_READ(8, uint8_t)
> diff --git a/xen/arch/x86/include/asm/bootinfo.h 
> b/xen/arch/x86/include/asm/bootinfo.h
> index 4f2cc5906e59..b3a6b2acf3ac 100644
> --- a/xen/arch/x86/include/asm/bootinfo.h
> +++ b/xen/arch/x86/include/asm/bootinfo.h
> @@ -75,7 +75,7 @@ static inline unsigned int __init 
> next_boot_module_index(
>  #define for_each_boot_module_by_type(i, b, t)           \
>      for ( (i) = first_boot_module_index(b, t);          \
>            (i) <= (b)->nr_modules;                       \
> -          (i) = next_boot_module_index(b, t, i + 1) )
> +          (i) = next_boot_module_index(b, t, (i) + 1) )
> 
>  #endif /* X86_BOOTINFO_H */
> 
> diff --git a/xen/arch/x86/mm/shadow/multi.c 
> b/xen/arch/x86/mm/shadow/multi.c
> index 3bbaceec1287..9de60720db20 100644
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -793,7 +793,7 @@ do {                                                
>                     \
>  do {                                                                   
>  \
>      int __done = 0;                                                    
>  \
>      _FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p,                        
>  \
> -                         ({ (__done = _done); }), _code);              
>  \
> +                         ({ (__done = (_done)); }), _code);            
>  \
>      _sl1mfn = sh_next_page(_sl1mfn);                                   
>  \
>      if ( !__done )                                                     
>  \
>          _FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p, _done, _code);     
>  \
> diff --git a/xen/common/kimage.c b/xen/common/kimage.c
> index e1aec5a18a54..972301368443 100644
> --- a/xen/common/kimage.c
> +++ b/xen/common/kimage.c
> @@ -491,11 +491,12 @@ static void kimage_terminate(struct kexec_image 
> *image)
>   * Call unmap_domain_page(ptr) after the loop exits.
>   */
>  #define for_each_kimage_entry(image, ptr, entry)                       
>  \
> -    for ( ptr = map_domain_page(_mfn(paddr_to_pfn(image->head)));      
>  \
> -          (entry = *ptr) && !(entry & IND_DONE);                       
>  \
> -          ptr = (entry & IND_INDIRECTION) ?                            
>  \
> -              (unmap_domain_page(ptr), 
> map_domain_page(_mfn(paddr_to_pfn(entry)))) \
> -              : ptr + 1 )
> +    for ( (ptr) = map_domain_page(_mfn(paddr_to_pfn((image)->head)));  
>  \
> +          ((entry) = *(ptr)) && !((entry) & IND_DONE);                 
>  \
> +          (ptr) = (((entry) & IND_INDIRECTION)                         
>  \
> +                   ? (unmap_domain_page(ptr),                          
>  \
> +                      map_domain_page(_mfn(paddr_to_pfn(entry))))      
>  \
> +                   : (ptr) + 1) )
> 
>  static void kimage_free_entry(kimage_entry_t entry)
>  {
> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
> index 7446533c8cfb..63473925cafb 100644
> --- a/xen/common/livepatch.c
> +++ b/xen/common/livepatch.c
> @@ -664,9 +664,10 @@ static inline int 
> livepatch_check_expectations(const struct payload *payload)
>      const struct livepatch_elf_sec *__sec = 
> livepatch_elf_sec_by_name(elf, section_name); \
>      if ( !__sec )                                                      
>                    \
>          break;                                                         
>                    \
> -    if ( !section_ok(elf, __sec, sizeof(*hook)) || __sec->sec->sh_size 
> != sizeof(*hook) ) \
> +    if ( !section_ok(elf, __sec, sizeof(*(hook))) ||                   
>                    \
> +         __sec->sec->sh_size != sizeof(*(hook)) )                      
>                    \
>          return -EINVAL;                                                
>                    \
> -    hook = __sec->addr;                                                
>                    \
> +    (hook) = __sec->addr;                                              
>                    \

This is not strictly needed, if not for consistency

>  } while (0)
> 
>  /*
> @@ -678,10 +679,10 @@ static inline int 
> livepatch_check_expectations(const struct payload *payload)
>      const struct livepatch_elf_sec *__sec = 
> livepatch_elf_sec_by_name(elf, section_name); \
>      if ( !__sec )                                                      
>                    \
>          break;                                                         
>                    \
> -    if ( !section_ok(elf, __sec, sizeof(*hook)) )                      
>                    \
> +    if ( !section_ok(elf, __sec, sizeof(*(hook))) )                    
>                    \
>          return -EINVAL;                                                
>                    \
> -    hook = __sec->addr;                                                
>                    \
> -    nhooks = __sec->sec->sh_size / sizeof(*hook);                      
>                    \
> +    (hook) = __sec->addr;                                              
>                    \
> +    (nhooks) = __sec->sec->sh_size / sizeof(*(hook));                  
>                    \

same as above

>  } while (0)
> 
>  static int prepare_payload(struct payload *payload,
> diff --git a/xen/crypto/vmac.c b/xen/crypto/vmac.c
> index c9914d2c7c1d..c7aa1e9be3b9 100644
> --- a/xen/crypto/vmac.c
> +++ b/xen/crypto/vmac.c
> @@ -203,7 +203,7 @@ const uint64_t mpoly = 
> UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
>  #define nh_16(mp, kp, nw, rh, rl)                                      
>       \
>  {   int i; uint64_t th, tl;                                            
>       \
>      rh = rl = 0;                                                       
>       \
> -    for (i = 0; i < nw; i+= 2) {                                       
>       \
> +    for (i = 0; i < (nw); i+= 2) {                                     
>       \
>          MUL64(th,tl,get64PE((mp)+i  )+(kp)[i  
> ],get64PE((mp)+i+1)+(kp)[i+1]);\
>          ADD128(rh,rl,th,tl);                                           
>       \
>      }                                                                  
>       \
> @@ -211,7 +211,7 @@ const uint64_t mpoly = 
> UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
>  #define nh_16_2(mp, kp, nw, rh, rl, rh1, rl1)                          
>       \
>  {   int i; uint64_t th, tl;                                            
>       \
>      rh1 = rl1 = rh = rl = 0;                                           
>       \
> -    for (i = 0; i < nw; i+= 2) {                                       
>       \
> +    for (i = 0; i < (nw); i+= 2) {                                     
>       \
>          MUL64(th,tl,get64PE((mp)+i  )+(kp)[i  
> ],get64PE((mp)+i+1)+(kp)[i+1]);\
>          ADD128(rh,rl,th,tl);                                           
>       \
>          MUL64(th,tl,get64PE((mp)+i  
> )+(kp)[i+2],get64PE((mp)+i+1)+(kp)[i+3]);\
> @@ -223,7 +223,7 @@ const uint64_t mpoly = 
> UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
>  #define nh_vmac_nhbytes(mp, kp, nw, rh, rl)                            
>       \
>  {   int i; uint64_t th, tl;                                            
>       \
>      rh = rl = 0;                                                       
>       \
> -    for (i = 0; i < nw; i+= 8) {                                       
>       \
> +    for (i = 0; i < (nw); i+= 8) {                                     
>       \
>          MUL64(th,tl,get64PE((mp)+i  )+(kp)[i  
> ],get64PE((mp)+i+1)+(kp)[i+1]);\
>          ADD128(rh,rl,th,tl);                                           
>       \
>          
> MUL64(th,tl,get64PE((mp)+i+2)+(kp)[i+2],get64PE((mp)+i+3)+(kp)[i+3]);\
> @@ -237,7 +237,7 @@ const uint64_t mpoly = 
> UINT64_C(0x1fffffff1fffffff);  /* Poly key mask     */
>  #define nh_vmac_nhbytes_2(mp, kp, nw, rh, rl, rh1, rl1)                
>       \
>  {   int i; uint64_t th, tl;                                            
>       \
>      rh1 = rl1 = rh = rl = 0;                                           
>       \
> -    for (i = 0; i < nw; i+= 8) {                                       
>       \
> +    for (i = 0; i < (nw); i+= 8) {                                     
>       \
>          MUL64(th,tl,get64PE((mp)+i  )+(kp)[i  
> ],get64PE((mp)+i+1)+(kp)[i+1]);\
>          ADD128(rh,rl,th,tl);                                           
>       \
>          MUL64(th,tl,get64PE((mp)+i  
> )+(kp)[i+2],get64PE((mp)+i+1)+(kp)[i+3]);\
> diff --git a/xen/include/xen/libfdt/libfdt.h 
> b/xen/include/xen/libfdt/libfdt.h
> index fabddbee8cec..1b09bba28eea 100644
> --- a/xen/include/xen/libfdt/libfdt.h
> +++ b/xen/include/xen/libfdt/libfdt.h
> @@ -230,9 +230,9 @@ int fdt_next_subnode(const void *fdt, int offset);
>   * literal.
>   */
>  #define fdt_for_each_subnode(node, fdt, parent)		\
> -	for (node = fdt_first_subnode(fdt, parent);	\
> -	     node >= 0;					\
> -	     node = fdt_next_subnode(fdt, node))
> +	for ((node) = fdt_first_subnode(fdt, parent);	\
> +	     (node) >= 0;				\
> +	     (node) = fdt_next_subnode(fdt, node))
> 
>  
> /**********************************************************************/
>  /* General functions                                                  
> */

-- 
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 Sat Feb 21 02:07:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 21 Feb 2026 02:07:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237814.1540019 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtcOK-0005vq-Lj; Sat, 21 Feb 2026 02:06:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237814.1540019; Sat, 21 Feb 2026 02:06:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtcOK-0005vi-H0; Sat, 21 Feb 2026 02:06:44 +0000
Received: by outflank-mailman (input) for mailman id 1237814;
 Sat, 21 Feb 2026 02:06: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=O5Ej=AZ=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vtcOJ-0005vJ-VO
 for xen-devel@lists.xenproject.org; Sat, 21 Feb 2026 02:06:44 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f6196430-0ec9-11f1-9ccf-f158ae23cfc8;
 Sat, 21 Feb 2026 03:06:40 +0100 (CET)
Received: from BY5PR04CA0018.namprd04.prod.outlook.com (2603:10b6:a03:1d0::28)
 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.9632.16; Sat, 21 Feb
 2026 02:06:32 +0000
Received: from SJ5PEPF000001CC.namprd05.prod.outlook.com
 (2603:10b6:a03:1d0:cafe::14) by BY5PR04CA0018.outlook.office365.com
 (2603:10b6:a03:1d0::28) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.17 via Frontend Transport; Sat,
 21 Feb 2026 02:06:31 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ5PEPF000001CC.mail.protection.outlook.com (10.167.242.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Sat, 21 Feb 2026 02:06:32 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Fri, 20 Feb
 2026 20:06:30 -0600
Received: from [172.24.149.13] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Fri, 20 Feb 2026 20:06:30 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f6196430-0ec9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g8KTUQdCDTk+Wq56rvICn9Dq4hAjlr+TNkkwtJlCA3Ei7s3EYdjZ5Sn+fXRfZheTEnVVYS2TT+l9PpgaM5q6Ne8huU42YPqdxBEHF/dJKbFMrl18gepshNJg3hNzfECVdzUxWpVI4Cc6mU19m6oWWntrPVPRH4Pf/XJ2sIhEfAR0clfVw8u2R4MxbzdYl1bAWzqLr53famhM/NmNaBS/xV84tZG5xlVio37Rw/yQNgRTFK7PsCJWghWeUGCc0adJnostQAAi5pzgeRT9r4IbW01+sabCLKIy9m99cnzetNWaLI4afDLm8IG5daLh9xWEAIlSeKk3qJc7Uoa0GIb2VQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rMVkQW/g1vf/54tsJu16Zdri07MuBcunTO+snDXFCfk=;
 b=YGXHjysH/nVM/WGHBtJBWnCCoI23UnC1XIe2HDYoH/Ymh4jzkrhf/Jl+P3Xxf5TcOH90Sf8X66aN0cWMaiowq28ZZr5E60SN2KSXqiepMD+UYkbxyu7m/eO9q7rvlbL/AnFDcFKnx348Dj5iqDWQlzW1eK4dP6DaN7NJ8NtEJDHT8v5eJmvljIpmw1JxdfQzWheuZCde3+yxzp6rPJ7gH1DVNL3dYF7yoLlf0TnSD/aJXWTxuI1GCv7pUuKmiOV62ZVQz8xL7l5neZALnsvcqFl2oC/9v5MqM5TzxsEKMJH6SdhoI4Qvhz2P6+kPpW3+RyiJLi+DeKsc8YWvxATl1Q==
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=rMVkQW/g1vf/54tsJu16Zdri07MuBcunTO+snDXFCfk=;
 b=aGUAbBZuhH07TahSpD9IrcmCA5yb4Ia60SD7Ll/dYknW/zfydlo5MMQVczsjd8CWcWW/SNOBGCza4pgcInymDQlRdgfvHU2tRUiVrmzr4FKX4P22NNkEamhaeQCHV8uCLpRZF3UCSj0u0OA5mNZSyDk8Q9HtmN4plF4uZ1xoMHg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <73dc93bb-210e-4de4-8401-313595f11c96@amd.com>
Date: Fri, 20 Feb 2026 17:51:56 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/MCE: restore CPU vendor reporting to the outside
 world
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: <561865f9-cd0f-40c9-86b8-98a3ac070b65@suse.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <561865f9-cd0f-40c9-86b8-98a3ac070b65@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: SJ5PEPF000001CC:EE_|IA1PR12MB6308:EE_
X-MS-Office365-Filtering-Correlation-Id: bea8cbcb-3bda-4499-2d29-08de70edd553
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?VWZTK3J5cXZ5M2t2THkydWVocDlwUDl3TzczNVlkbm93SzNQdGR4QXgwbER4?=
 =?utf-8?B?R2E0QnBiY0EyUE84WkVyNXFSdHZpK3JhRFdWZVczT29HOUw1RVNYb1B5aFlv?=
 =?utf-8?B?ZHowR01Dc3lKeWZ3QTI0dlZBOUNoaGFEaDhTTXROMEI0dnFLcmd6VGtZSDFi?=
 =?utf-8?B?S0o5bHVxZk1Vck5JV1RONUsrZXAyOHVQMStEcFYydXRydjQyN05QUmViSWQw?=
 =?utf-8?B?YzNsMVloWUtIMXFCemMxcTduNnV0bVBHbkNCY2pCdm9nR3lnaWIxVEMrNWwv?=
 =?utf-8?B?ZDJVdXl6UGN3OWJUM2o3emVJTXZRZmxlbDNjOGdkZnhZd2ZVdkFkdnRtanZz?=
 =?utf-8?B?YXdaMHBIdlBxcUVYblppZGU4bmpNeFZtZHZLYVBFNUlDY0NuUDVubEVDdFVi?=
 =?utf-8?B?TVM4QVl0cTdzTkhoTnFmU1dndytqTW54YTNrcXF5RTJQV3l1Mlp0UUU2ZjF3?=
 =?utf-8?B?UEpxbzM3MXZwck5KZW0vWmxpckdPMWhnamVLTU85SytDYUZQS0JXNE80WkF0?=
 =?utf-8?B?dEhjcGFXRjBQV21uc1RMdFRrT2dwOHJYQkF2MzBRd2ZBak00VFhLRkQzR1Aw?=
 =?utf-8?B?d3VvV1pRUW4rbWFXYlR1VDRLUFZKWS9OQllSWkVKeUhPczkzR2k5czIvQjhN?=
 =?utf-8?B?UEZLYVZsU1BGUVAwZjZ5QnB5Y2wzOFF4SW1qVWpsb0tvNlduZTg5UGxYNmMx?=
 =?utf-8?B?Yk91MUtZUjZRT2RnU2hWNHJYcjNvb0hTamRiUWI1RmhwcGR5Rkw1Z2VHeDNV?=
 =?utf-8?B?NTFDb1hUVkpqTXVja3JVTGxWOU9EcEpwam9ZZ2NuZ1k1VUxmNXZkWjNJUXEz?=
 =?utf-8?B?Mnk3bzJ2OG9KY3pxUGp1NHF0aVhkeHFaZTFwV0Vnck0zbWZkRFRuY3JLMmNj?=
 =?utf-8?B?S3dZZkIxZUx5ZlE0U1pXb2hPNEJsVVM2UzV6SkFHdWFYNFVOZmtqZ1ltbERC?=
 =?utf-8?B?L0p6dGZqdHA0Q1I4NWQxdW9FM2E0cDA5dVIzL2RJME1KRk9uUnNQL0NmQVF4?=
 =?utf-8?B?T3ZaQnBDdkxiejFmVjgzUDhrMXUyckszZ3g1N1ZJZ2pSU1pKUDYwRng1UnB1?=
 =?utf-8?B?VU5iNlpZTkxubXFqSGNRbFRpNGxpeHA1ckRmdFVJd00zakhTa0ZoRmNtQW1s?=
 =?utf-8?B?WWN6cnltcGtTZEplTVIzZnltQVJZSFhNd2dUNzFYSFV2OU9zclkzMTdKckp3?=
 =?utf-8?B?QWwzdFE0a2FLakU4ZXJiZjBGdFc3T0xUUVJEVTFES2h2b3BZUmc0M3ROZFBm?=
 =?utf-8?B?TWp6bWRqZXdDdGF0RFZDR0lyUHdtcUtrbTVjQ08yMlV1QzA3MU5ydEkxbHVZ?=
 =?utf-8?B?c2pobUFMOVZqdUJrYWRZdEpBRHVscFBSa0NYc3FLTWV0VDl0YmVKMXhicVVC?=
 =?utf-8?B?RUl3QjRrV2Z0RG9FditMRjRPUnJjRWxkVFFtT2dMUGoxRE5uWU1hWWxTUHFr?=
 =?utf-8?B?SG93VE1JWDIrM1B2UU90WGRCbE92OGx3LzZnUERRU1pwQ2JYM2I3clRxVnJh?=
 =?utf-8?B?RzZaQ0dnQ1h3WkVMRzRkKy9obUNHbVhOcFN6cC9wTTJEZWxlRjJySWN3eUxM?=
 =?utf-8?B?MnZ1OUg3TzFmSStSY21wV0NJNC9uOGFycXhMUFgva2tpYmRDMHJlNU5FU2d0?=
 =?utf-8?B?N3Q1SllESFpCZ3Z4NU83OUllY2NDbWxZREN0WXRoRUpTT051ZzV2K0drZDVj?=
 =?utf-8?B?V0luM1BPYW1ENlU5RWlUMTZSRGErVWFMUUl3a1R0ZDVoc091THBtYWpjRnk2?=
 =?utf-8?B?V0tCWm92RGRLN1o1c09ueTNXUkpyMmRKdnBaVDVTaTM5Nk95S2dsSi9tcXVM?=
 =?utf-8?B?NVVySVlBQ1BpRnlYRWwwdVF1OGt1a0tXSlNjUWNsWFcxZjNCb1BXRUpXd1VK?=
 =?utf-8?B?azJRRGJNNE5rdnhJZ1FMdDU0MEs5SmJLb0RxOFo2Nlc3Sncyam1oWUx6OWdD?=
 =?utf-8?B?aGN1akJmZm5zb2dCcXBjM0JXV00zS0puQWdqRkYvekpJY0l4VThFNlVXOHNR?=
 =?utf-8?B?T3Vwa3RjQjczNWEzNmF4Um41dTBKV2lTSjhua1Q4YTdpUUttT2gzUTB0Y21o?=
 =?utf-8?B?V0xVb3RZZjl1clUya05DZmtpQXRHSmswV2JkLzRPZG5qa0p1SnlqWjk5QTJU?=
 =?utf-8?B?dnJUSlhrdlhST2VBSzdOay9ndGQxdmxSNXNhbFpsM2ttcHNPMVljc2RuSUhk?=
 =?utf-8?B?ZDVJTnplOXRXZkpZVHdqR2Zqb0tYc2dYS0NXSXZCREEwbHNQeEJqbTNwajB5?=
 =?utf-8?B?anhldTNjVDBPSGVUOEV2S0FFeTFBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	PpCVcIp7D+mGl/T9fsvF3Qn0JK1LK02JSrC+RyzhZ2RG+82Jqq7FDE37riW5t1hko3VAsbXqHGjTqXU1AnZsesZqDJdkPq50pYu7K3E6zQGABA8F782i7Ds/bYm8wYzJOvAa+U1ZdlSrOWpcNqneOVU0MSmeaikFaxk+p1K2UUHw5MRnix+uLMR6wRK0Ms6O/pUVCH7esKFaUScmvsd+VhBbGZsfLrQEy9oeSXzdc7uemCi4pgvaCG3VwhXFFmyCvvj6bRXtZDconf1ZmLOUm3ycslemhTM6Nge8hdyXKuZTm4vBsVNBfN2KzKXbEira/hmEXXvsAZkGrWoDiwAg1W8PE+xp/YoGzmSKUgcKkEq+++M5D6FgRuiyGeENXAvQozDB19cMiKfaQVMVpeqXc9C1vMh0f069j+x5Ptlt7iB7xVjRU/I/bl2LOdnEEObe
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2026 02:06:32.0970
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bea8cbcb-3bda-4499-2d29-08de70edd553
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF000001CC.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6308

On 2026-02-16 06:56, Jan Beulich wrote:
> The records reported used to contain Linux enumerators. We first broke
> that connection when purging unused ones, and then again when switching to
> the bit mask forms.
> 
> Fixes: 408413051144 ("x86/cpu: Drop unused X86_VENDOR_* values")
> Fixes: 0cd074144cbb ("x86/cpu: Renumber X86_VENDOR_* to form a bitmap")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>


From xen-devel-bounces@lists.xenproject.org Sat Feb 21 11:26:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 21 Feb 2026 11:26:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237900.1540028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtl88-0001td-J0; Sat, 21 Feb 2026 11:26:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237900.1540028; Sat, 21 Feb 2026 11: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 1vtl88-0001tW-Fd; Sat, 21 Feb 2026 11:26:36 +0000
Received: by outflank-mailman (input) for mailman id 1237900;
 Sat, 21 Feb 2026 11:26: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 1vtl87-0001tQ-12
 for xen-devel@lists.xenproject.org; Sat, 21 Feb 2026 11:26: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 1vtl7z-002iys-2J;
 Sat, 21 Feb 2026 11:26:27 +0000
Received: from [2a02:8012:3a1:0:31fa:1b47:3c78:2265]
 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 1vtl7z-00HZkC-1B;
 Sat, 21 Feb 2026 11:26:27 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
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=Ie+2jC+rcU0p3EKMOSfhN+nSJwx8/0eWPZeDhh1gTO0=; b=QJTAA4iFp/lXJGfm4nzb5j4xN+
	mjryiKDlV6dqzGOAigvHkMZxLryq0Tz3sSNLuwPngvRhpouZjqEXRP7pPhlU5ByO6BXIElMC7dIo/
	csp+TXAH6zyM3eG9206IUI5OYAIlayYsTit/dR+wZgvlCxFTqIiFQvcD3gZU2Yp0Dpd0=;
Message-ID: <8e5e351d-47fe-4a68-a611-df72e3c5f246@xen.org>
Date: Sat, 21 Feb 2026 11:26:24 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: tighten translate_get_page()
Content-Language: en-GB
To: "Orzel, Michal" <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1d898900-1072-4ea6-ac4c-1262905cab29@suse.com>
 <abd54c11-28fc-4487-a2f8-733007d361ae@amd.com>
 <9163d0b9-f77e-4c13-b986-2d890bdf8ccd@suse.com>
 <526d338e-8648-4f90-8006-35c639bfa6bd@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <526d338e-8648-4f90-8006-35c639bfa6bd@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

On 18/02/2026 08:36, Orzel, Michal wrote:
>> But that's not correct for cases where share_xen_page_with_privileged_guest()
>> is passed SHARE_ro. XENMAPSPACE_gmfn_foreign requests have to result in r/o
>> mappings in that case.
> Yes. Therefore, on Arm:
> - p2m_ram_ro is never stored in P2M tables for normal domains

p2m_set_permission() is able to deal with p2m_ram_ro. So this could in 
theory happen.

> - it's only used by get_page_from_gfn() for DOMID_XEN pages
> - it's used as a signal to install p2m_map_foreign_ro mappings
> 
> The code should stay as is then and we could modify the comment to say:
 > /* Read-only RAM; only used for DOMID_XEN */

With what I wrote above, I don't think we should add such comment.

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Sat Feb 21 11:57:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 21 Feb 2026 11:57:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1237912.1540039 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vtlc8-0005qC-SI; Sat, 21 Feb 2026 11:57:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1237912.1540039; Sat, 21 Feb 2026 11:57: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 1vtlc8-0005q4-P8; Sat, 21 Feb 2026 11:57:36 +0000
Received: by outflank-mailman (input) for mailman id 1237912;
 Sat, 21 Feb 2026 11:57: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 1vtlc7-0005py-JH
 for xen-devel@lists.xenproject.org; Sat, 21 Feb 2026 11:57: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 1vtlc7-002jX2-0G;
 Sat, 21 Feb 2026 11:57:35 +0000
Received: from [2a02:8012:3a1:0:31fa:1b47:3c78:2265]
 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 1vtlc6-0000YC-2k;
 Sat, 21 Feb 2026 11:57: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=ilZyp0t5vDwXdJuMj+0RKEbkM9xQjkzffh24FsW21yY=; b=yzE5DvSkCR1YppZGIjvU/A2b+d
	0avi4mEO8hMeBEg0YH+xEv+WpStdGpL9skNUA43GBaiCkh37/X8OyNwPI32W799O/u3BwMd/T/L15
	RD9ujKij2CzYG0Bg2BbSDZNvucaWC7CBdfCH97ClY5G3z1Eh9a1OEbthcYa3omW6+KVs=;
Message-ID: <f9996237-760b-4be5-be90-e935ff71284e@xen.org>
Date: Sat, 21 Feb 2026 11:57:32 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Fix memory leak in xenmem_add_to_physmap_one
Content-Language: en-GB
To: Michal Orzel <michal.orzel@amd.com>, xen-devel@lists.xenproject.org
Cc: Stefano Stabellini <sstabellini@kernel.org>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
References: <20260205125820.116555-1-michal.orzel@amd.com>
From: Julien Grall <julien@xen.org>
In-Reply-To: <20260205125820.116555-1-michal.orzel@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi Michal,

For the subject title and part of the code, "memory leak" tends to imply 
the memory is lost forever and therefore can never be recovered. AFAIU, 
in your case, the memory will be freed when the domain is destroyed. I 
would suggest to clarify it so it doesn't sound like a security issue.

What about:

"xen/arm: mm: Release the old page reference in xenmem_add_to_physmap_one()"

On 05/02/2026 12:58, Michal Orzel wrote:
> When a guest maps pages via XENMEM_add_to_physmap to a GFN that already
> has an existing mapping, the old page at that GFN was not being removed,
> causing a memory leak. This affects all mapping spaces including
> XENMAPSPACE_shared_info, XENMAPSPACE_grant_table, and
> XENMAPSPACE_gmfn_foreign. The memory would be reclaimed on domain
> destruction.
> 
> Add logic to remove the previously mapped page before creating the new
> mapping, matching the x86 implementation approach.
> 
> Additionally, skip removal if the same MFN is being remapped.

Can you explain why we skip the removal but not the insertion in this case?

> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
> I'm not sure where to point the Fixes tag to.
> ---
>   xen/arch/arm/mm.c | 32 +++++++++++++++++++++++++++++---
>   1 file changed, 29 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
> index 6df8b616e464..b9f1a493dcd7 100644
> --- a/xen/arch/arm/mm.c
> +++ b/xen/arch/arm/mm.c
> @@ -166,10 +166,11 @@ int xenmem_add_to_physmap_one(
>       unsigned long idx,
>       gfn_t gfn)
>   {
> -    mfn_t mfn = INVALID_MFN;
> +    mfn_t mfn = INVALID_MFN, mfn_old;
>       int rc;
>       p2m_type_t t;
>       struct page_info *page = NULL;
> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
>   
>       switch ( space )
>       {
> @@ -244,6 +245,33 @@ int xenmem_add_to_physmap_one(
>           return -ENOSYS;
>       }
>   
> +    /*
> +     * Remove previously mapped page if it was present, to avoid leaking
> +     * memory.
> +     */
> +    mfn_old = gfn_to_mfn(d, gfn);

I saw Jan mentionned the fact that we have two section with the P2M lock 
taken. But isn't it in fact 3 sections as gfn_to_mfn(d, gfn) also take a 
lock?

I am not against the idea of not solving the locking right now. But I 
think it would at least be good to document it so this doesn't come as a 
surprise.

> +
> +    if ( mfn_valid(mfn_old) )
> +    {
> +        if ( is_special_page(mfn_to_page(mfn_old)) )
> +        {
> +            /* Just unmap, don't free */
> +            p2m_write_lock(p2m);
> +            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
> +                               p2m_invalid, p2m->default_access);
> +            p2m_write_unlock(p2m);
> +            if ( rc )
> +                return rc;

For here and the second "return" statement below. Above callers may have 
taken a reference on the new page. So shouldn't we drop it like this is 
done at the end of the function?

> +        }
> +        else if ( !mfn_eq(mfn, mfn_old) )
> +        {
> +            /* Normal domain memory is freed, to avoid leaking memory */

Based on the thread with Jan, is this statement actually correct? Could 
we reach this call with an MMIO (or event foreign mapping). In which 
case, I am guessing we could fail? If so, is this the intended behavior 
change?

Cheers,

-- 
Julien Grall



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 07:26:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 07:26:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238445.1540052 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuQKj-0003s9-Lc; Mon, 23 Feb 2026 07:26:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238445.1540052; Mon, 23 Feb 2026 07: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 1vuQKj-0003s2-J0; Mon, 23 Feb 2026 07:26:21 +0000
Received: by outflank-mailman (input) for mailman id 1238445;
 Mon, 23 Feb 2026 07: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=RlNO=A3=bugseng.com=roberto.bagnara@srs-se1.protection.inumbo.net>)
 id 1vuQKi-0003ru-RL
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 07:26:20 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ebf18e95-1088-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 08:26:08 +0100 (CET)
Received: from [192.168.1.170] (net-2-38-49-5.cust.vodafonedsl.it [2.38.49.5])
 (Authenticated sender: roberto)
 by support.bugseng.com (Postfix) with ESMTPSA id A33434EE77F9;
 Mon, 23 Feb 2026 08:26:06 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ebf18e95-1088-11f1-9ccf-f158ae23cfc8
Authentication-Results: bugseng.com; arc=none smtp.remote-ip=2.38.49.5
ARC-Seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1771831567;
	b=TZNyPqrNVKcx7wLIz4awO+SMrLrBvy3a6WkyVgYYSVvz8Pc7YqLJPzDNML2cmCBZj9Qf
	 EKP1o2JqLO18F/bJatqXvJpO0T0kI4GCoVP6B9VxTDxxbSKSIFm709xxSpya4kiG4dHZO
	 21ArhJriWvoXkX8Z3dDsqS7K7SKLLV0Q0j/ON4H0Aqu06W287cw2BVROwCfIjTq4uHlIh
	 XGN5fiAEW5sNEGwPk0DRyw12GVoowoXJwpE+BWFs5xn4ywmv6GpIn47Zv+8AGagBaGojQ
	 VdTIlqJsNnrmkv3en89J8P0q8xejjVEn0TWUSjSs3kcVlVia05wBbAukpvoxk7uTAfZlX
	 cyKTvQ6vPy3CuraSFUbkJnIQzlsepL72wsNVBbUrttj+NmKYjmbTSCIEC2t5QKnyO5Dye
	 v0JTwwQVwPzUqih2c1TOp5piF1mO3BLDIrZtSu22ufc/tEWdp3ifEopwUUcfurBrcaL9R
	 +T0wOgd7RSnwVZM01UGW8Unn8P53CI5yLVNnIaXWblsPNr87ZS661+YQg/0dJR6a+I4Ku
	 e8mXAgv9Bnc4ROne6/K6MY1jK4LQfpZVDADulxgIAsK4tq1TXmaLBim+KkG3GBYkGRFWN
	 E67Q/sbtsy51yLBV4CYSLF9WBQx15JaD4kFznRqnNEr7JWKC8ifYnmSueX/KnH0=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1771831567;
	h=Message-ID:Date:MIME-Version:User-Agent:Subject:To:Cc:References:
	 Content-Language:From:In-Reply-To:Content-Type:
	 Content-Transfer-Encoding;
	bh=DwE/1ASKJC5tWZ7jTRV4LXXRfDVeXh2O3vipPCqXy38=;
	b=EXeCL+Z9oKZUs0oewbvReI7K6Kc5pVxXeJ79u8/F874RhnDgNfQWULT16SNvXbaX8wP0
	 thNSxpnGpGO/ILIFHQiv7H204P7Dt6/SbJ4ev/jpqTN72Q1rw566h4Y9MLfU3Qfcgs1Xy
	 hsBtFcRVQdiVZX86N8BaD4wlGUTQ3EPJu+4v0JbHFIUHBXkO+3HRKMBAi6bqNczycBtfN
	 lDQl6oDHTZd6dmO7rMDxg/iabFvFycztM/6r9Gmrdc1xzQCGFPNNB8Ur4vXDgl4CkUlTV
	 1xQw/kryspVCPvgmANrDt3gLn98I1aGM2LcYE6nH+HKWpxr4lNmq83m0EDdCJjkyjEQ2C
	 /BCPMVE8W/iiM2Eo8wRwc+9NPnHbyys02RX0ILuYIESvLfjVS+b5AXuH9fBbUI1wLSP52
	 rdwdR2kiqXQ/uDJ/8EivZsgunfSQrCVrK6qi7V653DS2pn0bGeBkF6Z7zN15rCuwHSIgv
	 dJALSaf3D93MOpJrqF7wNVayAUh26oaZj1KxOTXNlX6YmeU9b3wfSYb1dV+DL5UUNb8vl
	 QokHbjmpqLQAEzCYMMWbpwmhxjYdiFdoiO2tmf0+N/4gOj7em2JGSKP4Uy7Pyw/H65EIj
	 6ZzikIGAZ0dCDKJw3fiWEJ1MOq/2PihkTW+jAhDdlnn7X1/gf1sWmccMEc+SYpc=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=2.38.49.5
Message-ID: <0148ea9f-6486-44a1-b4dd-47af7c978351@bugseng.com>
Date: Mon, 23 Feb 2026 08:26:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 09/12] x86/shadow: Rework write_atomic() call in
 shadow_write_entries()
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
Cc: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, 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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-10-andrew.cooper3@citrix.com>
Content-Language: en-US
From: Roberto Bagnara <roberto.bagnara@bugseng.com>
In-Reply-To: <20260220214653.3497384-10-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 20/02/26 22:46, Andrew Cooper wrote:
> Eclair complains of a side effect in a sizeof() expression (R13.6).

I disagree with comments of the form "Eclair complains" used whereas
the right thing to say is, e.g.:

   sizeof() expressions with "potential side effects" violate
   MISRA C:2012 + AMD2 Rule 13.6, for which each function call
   is a potential side effect

or

   Take out potential side effects from sizeof() as mandated by
   MISRA C:2012 + AMD2 Rule 13.6.

Note that in recent versions of MISRA C that rule is no longer
mandatory.  More generally, note also that, IMHO, switching to
a more modern version of MISRA C would simplify compliance.

BTW: the correct spelling is "ECLAIR", all capitals.

> write_atomic() only evaluates each parameter once, but rewrite the expression
> to less resemble entries in an obfuscation contest.
> 
> 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: 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>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>
> ---
>   xen/arch/x86/mm/shadow/set.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/shadow/set.c b/xen/arch/x86/mm/shadow/set.c
> index 8b670b6bb555..96ba2811077e 100644
> --- a/xen/arch/x86/mm/shadow/set.c
> +++ b/xen/arch/x86/mm/shadow/set.c
> @@ -62,8 +62,8 @@ shadow_write_entries(void *d, const void *s, unsigned int entries, mfn_t mfn)
>   
>       ASSERT(IS_ALIGNED((unsigned long)dst, sizeof(*dst)));
>   
> -    for ( ; i < entries; i++ )
> -        write_atomic(&dst++->l1, src++->l1);
> +    for ( ; i < entries; i++, dst++, src++ )
> +        write_atomic(&dst->l1, src->l1);
>   
>       unmap_domain_page(map);
>   }



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:05:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:05:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238462.1540063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuQwT-0000uU-L5; Mon, 23 Feb 2026 08:05:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238462.1540063; Mon, 23 Feb 2026 08: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 1vuQwT-0000uN-I1; Mon, 23 Feb 2026 08:05:21 +0000
Received: by outflank-mailman (input) for mailman id 1238462;
 Mon, 23 Feb 2026 08:05: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuQwS-0000uH-8M
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:05:20 +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 620c3d5f-108e-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 09:05:14 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-48375f10628so24590355e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 00:05:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31c56d8sm375008745e9.8.2026.02.23.00.05.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 00:05:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 620c3d5f-108e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771833914; x=1772438714; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=aqnHhoDWy61G6LWkBcsQk2zH3mQGxjYNnQGF48GkKOw=;
        b=EJmut0Q9bESOkcIDQ+WZF0AWhiPh2NAi13m8jJq4yeTWYchVS8uwbuhbgsvJZr5aHl
         IbkXyKYDSHdQK6/D2vFgriR/cJLVE9zbX4SITSBnd6QiO8pFo280ns4aEEGw0IQzFwys
         v9eOwGcbeN2DLajQtsOurkNqU1r4xUmuNDYY41hC8VloqQB6BqomjJKXLZYzHBShILpK
         4kR5o+bMqmy3tT5egsJJHsZfbrG/+QMFL92ck+EblLlhfsJwvxjLUs2Miei68ViOTOoT
         Pa3/K+dMwZT4Fq2TOVh3ZwcwdLz/kGLvnsawkh5Nnugd1hpm1qBYqYp8Xcw//6sUBbOm
         TxaQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771833914; x=1772438714;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=aqnHhoDWy61G6LWkBcsQk2zH3mQGxjYNnQGF48GkKOw=;
        b=LqUOuf57MOclF9YP2S3ktJU5g30nfxhLpyZHhVWb+jOX7CbFGkdDw2AAp9HmyShbCq
         t1lYHL2dKcYO1hN7iUBT36lPVDNXfBcajD13d7d+8udqt9m0WYvy2pT8/ct/If4X3A4J
         PUbkqdhi5KmRMJL5Gxg4qWcUwjNPeba2mCMieMPBm+kft6eBihLuKNu7sLBuF6U4+9Se
         fl0tsuvK9qk8EuHFGFkxEE3lSorEKQ7JCdxDV+iTRRuZvGksSWxLJGNoYPsCPqxTLPXP
         3pg6WyExE45ty8ICd30NgFEzZooJHyr2Q9xGPXAKbuIjkkHl19v+7YmZMJ2eWIcxauyw
         k0Kg==
X-Forwarded-Encrypted: i=1; AJvYcCUBJ4lFQougzGWbLA1gFRLNuSqSBhW6AngIGaRrNOIHZ3KJKWmvKp+d1mx7IUnQNK8vbnTLpN+4c6g=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw17mn5vjvDG2Jent7gmFqEcrIcKFeni30OOwPEv0NDhByX+vpR
	iO1tx+HYkwF71tLwO3Y9zlfrXEp7awm+Ma/GCMTOHBOU2AwBWM44nDVf6sU2zxuKEw==
X-Gm-Gg: AZuq6aJte7mUQ6B1L2gI52zFTAHIA8qdJbMekiJ9ynVEmT99Ga/J734JOHEOWK7IsuA
	fyLaH9Q4a5CdCWHnmkGi1qFlAEbEJPenLs51LtUbsMnbpKa6BafUOLwxZl1puRhlytP3YZodemj
	fXjtHqDBLBapxKOrsaA5HwcYyF66QTDdIasX0wPYiJf/vAQEX+Mx673D+Ko5J1d9yIIJgnCCBlW
	ZtqLU0W0KCztj2MD3ubufKUYXkhGRWFz0Ibx6g+0fTPOqay9gC2QADgApmWv+AgdNSwmFNC2eA0
	NsDAfSICgqfGqfWkcnPk9c9VOJQXX15ohaVHJoG1/wePCWzP7QFGsc16JiLwaQ7WNrWrJcSiYMx
	o+zofPy1/HUOQ3S0YVh7OEcuD5UA/b5gsRdg/tTiYt0CzCw+8Zlv3Zjo2upjarjL+iTC8ig1xt8
	ss7z/f2cAFS5BgbMUc20+C9viGlYQIJOHu+hI25tnFtC801dHQP3hdty8zCVg3y7NBa1S3Iw6ho
	Ay+oMkdMTlcCTcJUZqM0z0luA==
X-Received: by 2002:a05:600c:8b2c:b0:480:1b1a:5526 with SMTP id 5b1f17b1804b1-483a95e24ebmr150343315e9.16.1771833913526;
        Mon, 23 Feb 2026 00:05:13 -0800 (PST)
Message-ID: <340104fc-7c31-42e6-aec3-4fda0f527aa6@suse.com>
Date: Mon, 23 Feb 2026 09:05:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/shadow: don't use #if in macro invocations
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <23951625-939c-4658-8146-84c1f12381d0@suse.com>
 <24e8dd35-114d-4ba8-aa92-dad7cbcbd37b@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: <24e8dd35-114d-4ba8-aa92-dad7cbcbd37b@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 16:29, Andrew Cooper wrote:
> On 18/02/2026 9:03 am, Jan Beulich wrote:
>> As per the standard this is UB, i.e. we're building on a defacto extension
>> in the compilers we use. Misra C:2012 rule 20.6 disallows this altogether,
>> though. Use helper always-inline functions instead.
>>
>> In sh_audit_l1_table(), along with reducing the scope of "gfn", which now
>> isn't used anymore by the if() side of the conditional, also reduce the
>> scope of two other adjacent variables.
>>
>> For audit_magic() note that both which parameters are needed and what
>> their types are is attributed to AUDIT_FAIL() accessing variables which
>> aren't passed as arguments to it.
>>
>> No functional change intended. Of course codegen does change with this,
>> first and foremost in register allocation.
>>
>> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> I included this patch on an interim branch of other MISRA fixes of mine
> to get a run.
> 
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/13198988953
> 
> There's one more violation still to fix:
> 
>     if ( unlikely((level == 1)
>                   && sh_mfn_is_a_page_table(target_mfn)
> #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC )
>                   /* Unless the page is out of sync and the guest is
>                      writing to it. */
>                   && !(mfn_oos_may_write(target_mfn)
>                        && (ft == ft_demand_write))
> #endif /* OOS */
>                   ) )
>         sflags &= ~_PAGE_RW;
> 
> 
> 
> I also looked at this one previously.  Making mfn_oos_may_write()
> visible outside of SHOPT_OUT_OF_SYNC is quite invasive.

We could simply add a stub returning constant true for the !OOS case.

> Here, I suggest dropping the unlikely() as the easiest fix.  It's almost
> certainly useless anyway.

Especially when used around an && expression.

I may want to go a little further there, if already we need to touch this,
combining the two adjacent "level == 1" checks:

    if ( level == 1 )
    {
        /* Protect guest page tables. */
        if ( unlikely(sh_mfn_is_a_page_table(target_mfn))
#if SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC
             /*
              * Unless the page is out of sync and the guest is writing to it.
              */
             && (ft != ft_demand_write || !mfn_oos_may_write(target_mfn))
#endif /* OOS */
           )
            sflags &= ~_PAGE_RW;

        /*
         * paging_mode_log_dirty support
         *
         * Only allow the guest write access to a page a) on a demand fault,
         * or b) if the page is already marked as dirty.
         *
         * (We handle log-dirty entirely inside the shadow code, without using
         * the p2m_ram_logdirty p2m type: only HAP uses that.)
         */
        if ( unlikely(paging_mode_log_dirty(d)) && !mmio_mfn )
        {
            if ( ft & FETCH_TYPE_WRITE )
                paging_mark_dirty(d, target_mfn);
            else if ( (sflags & _PAGE_RW) &&
                      !paging_mfn_is_dirty(d, target_mfn) )
                sflags &= ~_PAGE_RW;
        }
    }

Thoughts?

The two different ways of checking for "guest is writing" also look somewhat
unhelpful. But there's yet another "ft & FETCH_TYPE_WRITE" elsewhere, so it
may want to be a separate patch to switch to uniformly comparing against
ft_demand_write.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:11:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:11:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238471.1540074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuR26-0002Rm-9t; Mon, 23 Feb 2026 08:11:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238471.1540074; Mon, 23 Feb 2026 08:11: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 1vuR26-0002Rf-5S; Mon, 23 Feb 2026 08:11:10 +0000
Received: by outflank-mailman (input) for mailman id 1238471;
 Mon, 23 Feb 2026 08:11: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuR24-0002RZ-IJ
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:11:08 +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 31fa3800-108f-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 09:11:03 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4836f4cbe0bso29828235e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 00:11:03 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31c56d8sm375492715e9.8.2026.02.23.00.11.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 00:11:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31fa3800-108f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771834263; x=1772439063; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8E5HzoZBVpPI2+aoUugeFGPv82LINfvhA/AkDAmYRjM=;
        b=HDDEL0o46YmTNTvdEssRJ0/ulFy78Ci0X5G+N2JmI9sUb+myGHmhhBlhxi6D4XWGry
         58hHiP71lgVm40eJP6OoPpBt+uaLVpCEs6jnCa1q8dapqR8lG20W+0kLlOi0TxzfvzF2
         Md5payXNMpnkgzD60lQM6wyOZNSjvvpbEmEi/iozGED1vHhaefcbotne2RdiTVAbIyY/
         Jadk2oyfkeknNz45FpWH/fk2CWvJbgg1dOfq7H6Pz+61DxL+QCJd+RoBb0BuS3clmwrc
         Ln/kVwjNRa9KXoSPDinBs1x7sBvMiGnjxWolj+dLFzBsdxZ3Jlp4hDihP8WNzNj05Oev
         wv2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771834263; x=1772439063;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8E5HzoZBVpPI2+aoUugeFGPv82LINfvhA/AkDAmYRjM=;
        b=LNVE23wfFZiqYJx4185Xr7cGhfd2mMrmPGgSqQw3AkkjMH2i+DckItX1D38s1dlRN/
         dAeCU+IyVLue/F+2YPC0gllhJ3N+9YTgjmgv3ZqEAr5/NNJPKh75DhQvT4MzabDC3va2
         6Zqby1w50qPZlriROAlcO2DQ2iPdoLLl3quvDHzWtiF/H028x2mgbOgiuzgnJOAhhdQu
         S5h4HuUEjbvo0z4cI4drn0bQR+Al6H+dnM+QXAQBlr5F7QGKEw7BdKs80WQizeNtuGpZ
         0ZMA8y7LxZyVv7nmP0X0yaoHRgNp6Kco/bveMQWPo/JSThdx0DRfxNw4F9IBYoi6c0Gm
         qg0g==
X-Forwarded-Encrypted: i=1; AJvYcCWhcz08XmImtlTCBvcfaiEVb4AcsUtXR5r9nRAPqxwv024EbsWhgkJ6AS1KP3gxCUlgF/Vd7RgWT5s=@lists.xenproject.org
X-Gm-Message-State: AOJu0YygaG/0vA1Ss+7jXpKjH3mX7q9YPXcBQKUC0PxCNjNplcDAAzCD
	YWcnBLtSrWIIrYR7Eo2HLHkOiyAO8Qtao3yNsockfr/h35QRqIUHbffzEmDPMLL2FQ==
X-Gm-Gg: AZuq6aLNXVGmcEEAYJxHozFwKReocnnCahz65TqVLDEIxRniNraJqV+bHhhTOKAwmRs
	5kxndHmuGWrJqle5T4kFF+Ab+B7aEUYvKmO2pnZzq4JOHiVRqknIKhEPr/JYk721gUpklvM6f/x
	Hd8DGlCnP0kE7QJfYTmv4Xsnu7V5DiJTwhyvV7uZTN0zF+IOq01NtdEckYXqD6NmC5BEJl5/kFv
	w2lFuiuppxxwer7DZULs+FduIeiwlBztZuLtou1K89TPwhGER6V+3ebKnlkCM51iJZHIALmLupx
	f0D1PXD30SUO4FjN+8TIu5+b9KZGqwed+BTZzqo/7mL6stDOgoOOdrIS0DS6rw4jwJdoofGMkZx
	bSwPsRO+GVe87kOenvPM6/vVoZmFy6oka/jbZCEavjdmEieF9ofuZ0zmmnPSW+5m1Y2m4b3tQ+8
	e0qxUtIjar4MNaK9utUaJk3GyO8Epp717MrcmnKCWfonceaGBAUnNDi092OPM9BhlwDGnvb9Hgt
	+Xq+CWJc46dhCo=
X-Received: by 2002:a05:600c:6990:b0:47e:e952:86ca with SMTP id 5b1f17b1804b1-483a95aae7amr118192095e9.2.1771834262715;
        Mon, 23 Feb 2026 00:11:02 -0800 (PST)
Message-ID: <101686ff-36d6-4a96-803b-57a6ddd03559@suse.com>
Date: Mon, 23 Feb 2026 09:11:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/12] x86/shadow: restrict OOS allocation to when it's
 really needed
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tim Deegan <tim@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <3c05fb6c-f71e-1b86-6146-96f2b3f3c9ae@suse.com>
 <abae3741-d866-4816-8744-6721183f35e6@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: <abae3741-d866-4816-8744-6721183f35e6@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 16:06, Andrew Cooper wrote:
> On 16/05/2023 8:40 am, Jan Beulich wrote:
>> PV domains won't use it, and even HVM ones won't when OOS is turned off
>> for them. There's therefore no point in putting extra pressure on the
>> (limited) pool of memory.
>>
>> While there also zap the sh_type_to_size[] entry when OOS is disabled
>> altogether.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> v3: New.
>>
>> --- a/xen/arch/x86/mm/shadow/common.c
>> +++ b/xen/arch/x86/mm/shadow/common.c
>> @@ -61,7 +61,9 @@ const uint8_t sh_type_to_size[] = {
>>      [SH_type_l4_64_shadow]   = 1,
>>      [SH_type_p2m_table]      = 1,
>>      [SH_type_monitor_table]  = 1,
>> +#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
>>      [SH_type_oos_snapshot]   = 1,
>> +#endif
>>  };
>>  #endif /* CONFIG_HVM */
>>  
>> @@ -1771,7 +1773,8 @@ static void sh_update_paging_modes(struc
>>  #endif /* (SHADOW_OPTIMIZATIONS & SHOPT_VIRTUAL_TLB) */
>>  
>>  #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
>> -    if ( mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) )
>> +    if ( !(d->options & XEN_DOMCTL_CDF_oos_off) &&
>> +         mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) )
>>      {
>>          int i;
> 
> I've never seen XEN_DOMCTL_CDF_oos_off used.  Xapi has no plumbing for
> this, and xl only inherited it from xend.
> 
> At this point, OOS is the tested path and OOS_OFF is the untested path. 
> I think we should remove the flag and let OOS be unconditional like all
> the other shadow optimisations.

It being a guest config setting, I'm hesitant. Maybe we should actually make
sure it's tested, so that in the case it's needed it could be named as a
mitigation for an XSA?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:16:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:16:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238480.1540083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuR7O-00031I-Rh; Mon, 23 Feb 2026 08:16:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238480.1540083; Mon, 23 Feb 2026 08: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 1vuR7O-00031B-Nn; Mon, 23 Feb 2026 08:16:38 +0000
Received: by outflank-mailman (input) for mailman id 1238480;
 Mon, 23 Feb 2026 08: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuR7N-000315-9A
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:16:37 +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 f81972e9-108f-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 09:16:35 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-4359a302794so2953819f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 00:16:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d3ff6dsm18522950f8f.25.2026.02.23.00.16.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 00:16:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f81972e9-108f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771834595; x=1772439395; 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=q8jtXG9gZuoR+dpetmGcm/+lifa8BdKtAHjm2uAehoE=;
        b=Zc+CBVdvQFahtw6UJRUG2FjgfW0yCmoBi40p5F+QFQHQledWfq8tIy2VsC/0gE58uR
         sm7uAEqmYBKiH+kLVpDuMbQe1ue1aZJZBrIJxdxk98onzWPeY3fD6L3KSD08t5556m4F
         uDU2VuuT7HbAdGakyQiNjTqlIV/7VgNwtOchcFbv4+8pZLTiHJs0DY9dCRzc7uh4ATbZ
         02PrzdTuKt9Vc2/jsPgilVKxqu/vLdj3Nph1HcuwKYBm9I9m5sIRcqrE+jyX8bzHSFgR
         kqA6NGdH5OsykaZ1eehCsti1mk+6UJ46KMf8omoMRsKEIswelkX9k2YTq3OWUQ2Pq9pl
         lAiQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771834595; x=1772439395;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q8jtXG9gZuoR+dpetmGcm/+lifa8BdKtAHjm2uAehoE=;
        b=jOtLXHMzcz+KDYzbzwIJxYmJF/HZ824lOv/IrRq+JAAuA5v90927OJFfU5i9ZT1k03
         4WELuuVt+427RdxVZOBorBVlJMgwWu9ZJCHjVQPtnf1p6Ak39ceawAeuwwf8liNAqHWE
         oHpvTOpz4nZ+u02gCgyDxCo1XcYMyck4uwr3wqbHpe1eQhT9nst7haemqlzZegcvAR97
         7z9A8PpBmcG0jiqLFKA7VNo8UErlZ+wyd4Sofuz+CxwmIQMMyaT/EPkWwIrZ3jIygABt
         zkxXZvqhiktyw3rd8Av9pr3JvgGzwY21DuKL189v366BcI09BBuIXEPwwgg4MkjwUMZA
         h2dA==
X-Forwarded-Encrypted: i=1; AJvYcCX0T69S6uJo7NtnUB10hMRkAP+IqbiS6PQCVe8spB5wEgEDZdL+bPrGrOO2r2QnesREIOxY66MMrgo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzDmF1fEMeXrPmxGknVN5/OQX90OA5fHuTP8O0AM9Sfc3DAGSLm
	pO0+b3cxXrhu53/f16vCsmfAez8RMCBtus1YefbOEflwD9QiQzXb4fUYKtmpLaLqdw==
X-Gm-Gg: ATEYQzzy7i8QkD/hoLv41HFZfZUo2DjXTdY6A4xI9JXmKJKClv5TljuMMvl0U+eFJ3R
	dP78qIZNufulComNfuIPYaXpHPxOy0rTeBAX3UZpjyQWNOkPA1Cgm8jJLA/2Y9Rbsad6m0i/qJT
	DPgruL5KnXqcBaVaJp0tGGQQdN7l/RxFc/RSFhdU4fViPuLVqraVKAI1N8Q1VG6FHOAEKVbhW2s
	ofWdIpcA7peAEOGT8RcLS5Ku15RUdXUXIbdWnbd6+/dvhxHhSXPOtVB04VSATT0ktcySFNVrXAl
	iEHLZ/sahjxDNXkTLQtUMJkfSSQ3OO+6eUWMIOWiTQ32UUHiGp8qmqgSaLyWAodeMgGM2J4yy7j
	uzAiDTAnUCCz5UokIF61E/Crnb6l858nX+t3dCH+7auDMKy6/RsDXFy7kZLMiA3qpZeoIdFrqu+
	dIqQi/E7hTWyxYc6i4G8E8cayLU4Kqj5WcCTcpCEL6JevgNd6uKJKSL4GEU8lxC5eONUNwJZ+Nq
	inQ7nqqvTOtQkZRL46ITki9/Q==
X-Received: by 2002:a05:6000:2884:b0:437:6e0b:7147 with SMTP id ffacd0b85a97d-4396f156312mr13609447f8f.7.1771834595072;
        Mon, 23 Feb 2026 00:16:35 -0800 (PST)
Message-ID: <e3ea3088-9e7a-4d83-95b2-21154473e1bb@suse.com>
Date: Mon, 23 Feb 2026 09:16:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 06/12] x86/shadow: restrict OOS allocation to when it's
 really needed
From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tim Deegan <tim@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <3c05fb6c-f71e-1b86-6146-96f2b3f3c9ae@suse.com>
 <abae3741-d866-4816-8744-6721183f35e6@citrix.com>
 <101686ff-36d6-4a96-803b-57a6ddd03559@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: <101686ff-36d6-4a96-803b-57a6ddd03559@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 09:11, Jan Beulich wrote:
> On 20.02.2026 16:06, Andrew Cooper wrote:
>> On 16/05/2023 8:40 am, Jan Beulich wrote:
>>> --- a/xen/arch/x86/mm/shadow/common.c
>>> +++ b/xen/arch/x86/mm/shadow/common.c
>>> @@ -61,7 +61,9 @@ const uint8_t sh_type_to_size[] = {
>>>      [SH_type_l4_64_shadow]   = 1,
>>>      [SH_type_p2m_table]      = 1,
>>>      [SH_type_monitor_table]  = 1,
>>> +#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
>>>      [SH_type_oos_snapshot]   = 1,
>>> +#endif
>>>  };
>>>  #endif /* CONFIG_HVM */
>>>  
>>> @@ -1771,7 +1773,8 @@ static void sh_update_paging_modes(struc
>>>  #endif /* (SHADOW_OPTIMIZATIONS & SHOPT_VIRTUAL_TLB) */
>>>  
>>>  #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
>>> -    if ( mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) )
>>> +    if ( !(d->options & XEN_DOMCTL_CDF_oos_off) &&
>>> +         mfn_eq(v->arch.paging.shadow.oos_snapshot[0], INVALID_MFN) )
>>>      {
>>>          int i;
>>
>> I've never seen XEN_DOMCTL_CDF_oos_off used.  Xapi has no plumbing for
>> this, and xl only inherited it from xend.
>>
>> At this point, OOS is the tested path and OOS_OFF is the untested path. 
>> I think we should remove the flag and let OOS be unconditional like all
>> the other shadow optimisations.
> 
> It being a guest config setting, I'm hesitant. Maybe we should actually make
> sure it's tested, so that in the case it's needed it could be named as a
> mitigation for an XSA?

Also, ftaod, this change had gone in already long ago, with Roger's ack.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:18:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:18:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238489.1540094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuR9c-0003iW-9m; Mon, 23 Feb 2026 08:18:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238489.1540094; Mon, 23 Feb 2026 08: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 1vuR9c-0003iP-5f; Mon, 23 Feb 2026 08:18:56 +0000
Received: by outflank-mailman (input) for mailman id 1238489;
 Mon, 23 Feb 2026 08:18: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuR9b-0003iJ-Or
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:18:55 +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 4769945c-1090-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 09:18:48 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-43638a3330dso3421253f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 00:18:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d4c60bsm17236678f8f.27.2026.02.23.00.18.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 00:18:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4769945c-1090-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771834728; x=1772439528; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=NkuGBPWOD+jk9Nsbl85+s0iCjZ+xBx3Al+FPtpL/4pI=;
        b=ADD+6X/1oUsN/KHOBup2SIK05SsoNQ2bt/pJXH7Tr0TlhYAySuonf3Q7V+brwZ9lw+
         ujaWI9jyKTNQ0Mofv3IM1Fce/cb8SXknImGHvcbkHL30P3Am4Jtlz2tL85w7N/K+d0YO
         ThGLa7jMGDLBfixuQEpZjOLTQZwlK3X13CUg958V82yXMc1ahssr0RCH3g/4xyumsRJH
         YcT+7+MxaPiZoPMyNiXXk9pl4PxlrgginiRMg8EgJYq8XqG4Hd+/HfvTFjAqUk6sp20B
         2gpZgDKgUpp/HOq8mN24ddOYpo7vdPCoFD0OkZENDZE8t/YwPptwUWSEoWvW5xNgetGG
         nMQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771834728; x=1772439528;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=NkuGBPWOD+jk9Nsbl85+s0iCjZ+xBx3Al+FPtpL/4pI=;
        b=lNK2Hai5rAUk/3k2Sb+Vj7F5h+JO3S3z4p9xWZT6olRAe2AIfSryQAyq9m+G6kEJ2y
         QZiIsOwz8A6NPtrLwUHWpMR88pRp1GAKuEOlkFNS7ZZFfU8PqKUdJ293Em0dCEIWaqBb
         RQwQMWM3C2U1Iwt+IKCYF+w6JyR9CmLTuNy0dmfdUWOP/ICoi6JakWfVTzlGIS2G8CBw
         s8ukuSFReLqli7lhN+8ctrz22PrwaQU6YgFjnpjCPa8+MO7cSan+Fw64hMSYvW6rJN09
         ec2MzttPf0T8WSpqYCzUHuSakG0pg62Fq0BpiPr3Zz32Relm+qcdGxa2LrlJcx3irJmX
         Kgjw==
X-Forwarded-Encrypted: i=1; AJvYcCWF9XX8rLoLPADi/E3nZhiWck0R7dwLnxQ9Lh5gaQ2EbeE7vJCMIKzIv6srHpBH+VzIeCvO/RUvgiM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyOWRjZhaoLAVNPgFaWPJyF6+oXvQFVFtnWORzk0jYBmQrot40J
	TGTUlthLfGrdT3lKfCXR2LMJ3Xec3/WpiOEoIBOd8f9+/vVWWoyv6QgQCrUcNuEBkQ==
X-Gm-Gg: ATEYQzwJUh8pQjtg87Daei4aIJx3Ww42it4Z8IT7WyV+Uv0WN7Fxh9iCxicWqvS6VBg
	m0NZJZ50TxhnamKmBOnNBz9cN+1kbeYs7soa0/IQjghSG6E1FjXTOP+jqqw/82MOKI/6pwAHIzD
	kZwHEZHXo785PepuWa8PG1ptmBpTBmVIvj1Jl3UvvyyG6+QuF337pfvpwnDkWg6bNc6F2XKtdF1
	EZPfS3ixiFdQwJEiwi1JR33e+Nu2W91WO+yEDkbWXLxPp9870qWkbd47qce1mlcBZfqCxy9My+7
	a6jTxrYIRZQcPzmg4q+AjE1U/FPGGq10iyVa1jYyjlvlBCd0CVncsAQ/9/Li33l+aqvyGthsCVE
	lY2VKwQ6fwQpZkYcjcGCbYaCxBIbUMUOa/8iFNS/0D28NMKUnfNTfxXG49ucWgyvnwy5r9g6S8x
	LzQss/Myzvpc9PcISj2g0whSAyJ3wqErVz9py2+eYiCVUAEv1YhiFKQsJYV1vfn+DR5AvPLxkdT
	t7RkDIUA82Zm8s=
X-Received: by 2002:a05:6000:1845:b0:430:ff0c:35f9 with SMTP id ffacd0b85a97d-4396f17f847mr13729334f8f.48.1771834728004;
        Mon, 23 Feb 2026 00:18:48 -0800 (PST)
Message-ID: <24f8bf44-0c86-42a1-8bb0-61ddbe430cf8@suse.com>
Date: Mon, 23 Feb 2026 09:18:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 09/12] x86/shadow: drop is_hvm_...() where easily
 possible
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wl@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Tim Deegan <tim@xen.org>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <184df995-e668-1cea-6f9f-8e79a1ffcbbd@suse.com>
 <ebf7a96c-8529-b238-f9bf-750cf42312f9@suse.com>
 <82877022-7d25-431c-838a-2ff5b2c0a008@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: <82877022-7d25-431c-838a-2ff5b2c0a008@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 16:14, Andrew Cooper wrote:
> On 16/05/2023 8:41 am, Jan Beulich wrote:
>> Emulation related functions are involved in HVM handling only
> 
> I think this wants clarifying a little.  *These* emulation functions are
> only used by HVM.
> 
> pv/ro-page-fault.c does have emulation for PV guests, but uses
> paging_{write,cmpxchg}_guest_entry() to enter into the shadow code.

I don't mind; I would have thought that x86/shadow: already narrows scope
enough.

>> , and in
>> some cases they even invoke such checks after having already done things
>> which are valid for HVM domains only. OOS active also implies HVM. In
>> sh_remove_all_mappings() one of the two checks is redundant with an
>> earlier paging_mode_external() one (the other, however, needs to stay).
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Preferably with the commit message tweaked, Acked-by: Andrew Cooper
> <andrew.cooper3@citrix.com>

Thanks.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:47:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:47:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238500.1540102 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRal-0007ht-8Z; Mon, 23 Feb 2026 08:46:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238500.1540102; Mon, 23 Feb 2026 08:46: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 1vuRal-0007hm-5b; Mon, 23 Feb 2026 08:46:59 +0000
Received: by outflank-mailman (input) for mailman id 1238500;
 Mon, 23 Feb 2026 08:46: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=Dl22=A3=bounce.vates.tech=bounce-md_30504962.699c13fc.v1-2a80976ec7284bf6a2d23b2dd9e674c9@srs-se1.protection.inumbo.net>)
 id 1vuRak-0007hg-LP
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:46:58 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3390fb43-1094-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 09:46:54 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fKDx837Whz5QkLkP
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 08:46:52 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 2a80976ec7284bf6a2d23b2dd9e674c9; Mon, 23 Feb 2026 08:46: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: 3390fb43-1094-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771836412; x=1772106412;
	bh=EJD6QbzyMQoKS/TAMjzp3T691/sn1/DgXlhfelEi5UU=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=hbKYIktKbUlWHPZCqWULQ23xxCKi/hiX+YuqB2VIdQR5fhBbEKyiF6vNiOZa1M+uL
	 I3JjrC58pphImmOIc4V8k6AFNu7Hs3Uqm/EGkr2Qwhu2XWdWBJo73qBIfymhTQrWxZ
	 caK3JJ7N9aOh3655/8hv2aRaju1dYfINcFfsx8mTFk/Xr5IbR893ZYSHfraOHeMQbI
	 HZ2ljcWI2KC8FJy4TfToMEAW60HAWdiyGtpnb6kOuBZOlf+UkKVwTK9KDyTkTf85Nb
	 jHnBz120U2kNfgXo9xv/8WJa4LdseR3gp/FNduqHat52AjsjUGiyyTxkyw9hn7G5Ot
	 zj42rNDj+Q8wg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771836412; x=1772096912; i=julian.vetter@vates.tech;
	bh=EJD6QbzyMQoKS/TAMjzp3T691/sn1/DgXlhfelEi5UU=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=nGMzNU8ttHvDoHRJ5R5ysSKlhdmgxx8Vu7UvJp0L+FqikYb8LqkWGk+kUwNKHC88e
	 pi/HdcNjjmE8sXvHlqKB2PhcUvQrLzZG+TEF12qvvpECiFM9fLZ+gfU72ZzR8b9LYP
	 KoCD78DbfC0xyg6mRM1/BgBohfiaj9HqJtP8oF7dSghjHuOkH2iREe5MoK8fuwCrox
	 rbuRdGVyB749kGjx/RDd4HZGceT00TV4Ed8/RSa1zP0D+h5ZpD+e7s4waz6/cXysFt
	 AacKyk/vOXvzlAuTniEUa6GCqWzlO6CJxtIRo1B43GpW2c/sMrFdQDFFZXy8oGz8sp
	 BOeo06cFjV85w==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v2]=20x86/hvm:=20Advertise=20and=20support=20extended=20destination=20IDs=20for=20MSI/IO-APIC?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771836411572
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260223084644.471531-1-julian.vetter@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.2a80976ec7284bf6a2d23b2dd9e674c9?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260223:md
Date: Mon, 23 Feb 2026 08:46:52 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

x2APIC guests with more than 128 vCPUs have APIC IDs above 255, but MSI
addresses and IO-APIC RTEs only provide an 8-bit destination field.
Without extended destination ID support, Linux limits the maximum usable
APIC ID to 255, refusing to bring up vCPUs beyond that limit. So,
advertise XEN_HVM_CPUID_EXT_DEST_ID in the HVM hypervisor CPUID leaf,
signalling that guests may use MSI address bits 11:5 and IO-APIC RTE
bits 55:49 as additional high destination ID bits. This expands the
destination ID from 8 to 15 bits.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v2:
- Replaced macro by bit field entries for vioapic
- Added migration check function to vioapic state
- Check if XEN_HVM_CPUID_EXT_DEST_ID is announced by destination XEN,
  if any RTE has ext_dest_id bits set
- Replaced bit-mask + shift value by MASK_EXTR()
- Rephrased comments based on reviewer suggestions
---
 xen/arch/x86/cpuid.c                   |  9 +++++
 xen/arch/x86/hvm/irq.c                 | 11 +++++-
 xen/arch/x86/hvm/vioapic.c             | 50 ++++++++++++++++++++++++--
 xen/arch/x86/hvm/vmsi.c                |  8 +++--
 xen/arch/x86/include/asm/hvm/hvm.h     |  4 +--
 xen/arch/x86/include/asm/msi.h         |  2 ++
 xen/drivers/passthrough/x86/hvm.c      |  8 ++---
 xen/include/public/arch-x86/hvm/save.h |  4 ++-
 xen/include/public/domctl.h            | 16 +++++----
 9 files changed, 92 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index d85be20d86..fb17c71d74 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -148,6 +148,15 @@ static void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,
         res->a |= XEN_HVM_CPUID_DOMID_PRESENT;
         res->c = d->domain_id;
 
+        /*
+         * Advertise extended destination ID support. This allows guests to use
+         * bits 11:5 of the MSI address and bits 55:49 of the IO-APIC RTE for
+         * additional destination ID bits, expanding the addressable APIC ID
+         * range from 8 to 15 bits. This is required for x2APIC guests with
+         * APIC IDs > 255.
+         */
+        res->a |= XEN_HVM_CPUID_EXT_DEST_ID;
+
         /*
          * Per-vCPU event channel upcalls are implemented and work
          * correctly with PIRQs routed over event channels.
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index 5f64361113..b036be2d01 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -374,7 +374,16 @@ int hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq)
 int hvm_inject_msi(struct domain *d, uint64_t addr, uint32_t data)
 {
     uint32_t tmp = (uint32_t) addr;
-    uint8_t  dest = (tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT;
+    /*
+     * Standard MSI destination address bits 19:12 (8 bits).
+     * Extended MSI destination address bits 11:5 (7 more bits).
+     *
+     * As XEN_HVM_CPUID_EXT_DEST_ID is advertised, the guest may use bits 11:5
+     * for high destination ID bits, expanding to 15 bits total. Guests unaware
+     * of this feature set these bits to 0, so this is backwards-compatible.
+     */
+    uint32_t dest = (MASK_EXTR(tmp, MSI_ADDR_EXT_DEST_ID_MASK) << 8) |
+                     MASK_EXTR(tmp, MSI_ADDR_DEST_ID_MASK);
     uint8_t  dest_mode = !!(tmp & MSI_ADDR_DESTMODE_MASK);
     uint8_t  delivery_mode = (data & MSI_DATA_DELIVERY_MODE_MASK)
         >> MSI_DATA_DELIVERY_MODE_SHIFT;
diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c
index 7c725f9e47..249291a25d 100644
--- a/xen/arch/x86/hvm/vioapic.c
+++ b/xen/arch/x86/hvm/vioapic.c
@@ -31,7 +31,9 @@
 #include <xen/errno.h>
 #include <xen/sched.h>
 #include <xen/nospec.h>
+#include <public/arch-x86/cpuid.h>
 #include <public/hvm/ioreq.h>
+#include <asm/cpuid.h>
 #include <asm/hvm/io.h>
 #include <asm/hvm/vlapic.h>
 #include <asm/hvm/support.h>
@@ -411,7 +413,8 @@ static void ioapic_inj_irq(
 
 static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
 {
-    uint16_t dest = vioapic->redirtbl[pin].fields.dest_id;
+    uint32_t dest = ((uint32_t)vioapic->redirtbl[pin].fields.ext_dest_id << 8) |
+                    vioapic->redirtbl[pin].fields.dest_id;
     uint8_t dest_mode = vioapic->redirtbl[pin].fields.dest_mode;
     uint8_t delivery_mode = vioapic->redirtbl[pin].fields.delivery_mode;
     uint8_t vector = vioapic->redirtbl[pin].fields.vector;
@@ -594,6 +597,49 @@ int vioapic_get_trigger_mode(const struct domain *d, unsigned int gsi)
     return vioapic->redirtbl[pin].fields.trig_mode;
 }
 
+static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h)
+{
+    const HVM_SAVE_TYPE(IOAPIC) *s = hvm_get_entry(IOAPIC, h);
+    unsigned int i;
+
+    if ( !s )
+        return -ENODATA;
+
+    for ( i = 0; i < ARRAY_SIZE(s->redirtbl); i++ )
+    {
+        struct cpuid_leaf res;
+
+        /* ext_dest_id bits not set in RTE so continue */
+        if ( !s->redirtbl[i].fields.ext_dest_id )
+            continue;
+
+        /*
+         * An RTE in the saved state has ext_dest_id bits set, verify the
+         * destination XEN advertises XEN_HVM_CPUID_EXT_DEST_ID to the guest.
+         * If not interrupt routing to APIC IDs > 255 would be broken after
+         * restore -> -EINVAL!
+         */
+        guest_cpuid(d->vcpu[0], 0x40000004, 0, &res);
+        if ( !(res.a & XEN_HVM_CPUID_EXT_DEST_ID) )
+        {
+            printk(XENLOG_G_ERR "HVM restore: dom%d IO-APIC RTE %u has "
+                                "extended destination ID bits set but "
+                                "XEN_HVM_CPUID_EXT_DEST_ID is not advertised\n",
+                                d->domain_id, i);
+            return -EINVAL;
+        }
+
+        /*
+         * Found an RTE with ext_dest bits set, but the destination XEN also
+         * correctly announces XEN_HVM_CPUID_EXT_DEST_ID
+         * -> All good, no need to check remaining RTEs.
+         */
+        break;
+    }
+
+    return 0;
+}
+
 static int cf_check ioapic_save(struct vcpu *v, hvm_domain_context_t *h)
 {
     const struct domain *d = v->domain;
@@ -630,7 +676,7 @@ static int cf_check ioapic_load(struct domain *d, hvm_domain_context_t *h)
     return 0;
 }
 
-HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, NULL, ioapic_load, 1,
+HVM_REGISTER_SAVE_RESTORE(IOAPIC, ioapic_save, ioapic_check, ioapic_load, 1,
                           HVMSR_PER_DOM);
 
 void vioapic_reset(struct domain *d)
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
index 27b1f089e2..36ea898ac7 100644
--- a/xen/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -66,7 +66,7 @@ static void vmsi_inj_irq(
 
 int vmsi_deliver(
     struct domain *d, int vector,
-    uint8_t dest, uint8_t dest_mode,
+    uint32_t dest, uint8_t dest_mode,
     uint8_t delivery_mode, uint8_t trig_mode)
 {
     struct vlapic *target;
@@ -109,7 +109,7 @@ void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci)
 {
     uint32_t flags = pirq_dpci->gmsi.gflags;
     int vector = pirq_dpci->gmsi.gvec;
-    uint8_t dest = (uint8_t)flags;
+    uint32_t dest = XEN_DOMCTL_VMSI_X86_FULL_DEST(flags);
     bool dest_mode = flags & XEN_DOMCTL_VMSI_X86_DM_MASK;
     uint8_t delivery_mode = MASK_EXTR(flags, XEN_DOMCTL_VMSI_X86_DELIV_MASK);
     bool trig_mode = flags & XEN_DOMCTL_VMSI_X86_TRIG_MASK;
@@ -125,7 +125,7 @@ void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci)
 }
 
 /* Return value, -1 : multi-dests, non-negative value: dest_vcpu_id */
-int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t dest_mode)
+int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t dest_mode)
 {
     int dest_vcpu_id = -1, w = 0;
     struct vcpu *v;
@@ -802,6 +802,8 @@ static unsigned int msi_gflags(uint16_t data, uint64_t addr, bool masked)
      */
     return MASK_INSR(MASK_EXTR(addr, MSI_ADDR_DEST_ID_MASK),
                      XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) |
+           MASK_INSR(MASK_EXTR(addr, MSI_ADDR_EXT_DEST_ID_MASK),
+                     XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK) |
            MASK_INSR(MASK_EXTR(addr, MSI_ADDR_REDIRECTION_MASK),
                      XEN_DOMCTL_VMSI_X86_RH_MASK) |
            MASK_INSR(MASK_EXTR(addr, MSI_ADDR_DESTMODE_MASK),
diff --git a/xen/arch/x86/include/asm/hvm/hvm.h b/xen/arch/x86/include/asm/hvm/hvm.h
index 7d9774df59..11256d5e67 100644
--- a/xen/arch/x86/include/asm/hvm/hvm.h
+++ b/xen/arch/x86/include/asm/hvm/hvm.h
@@ -295,11 +295,11 @@ uint64_t hvm_get_guest_time_fixed(const struct vcpu *v, uint64_t at_tsc);
 
 int vmsi_deliver(
     struct domain *d, int vector,
-    uint8_t dest, uint8_t dest_mode,
+    uint32_t dest, uint8_t dest_mode,
     uint8_t delivery_mode, uint8_t trig_mode);
 struct hvm_pirq_dpci;
 void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci *pirq_dpci);
-int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t dest_mode);
+int hvm_girq_dest_2_vcpu_id(struct domain *d, uint32_t dest, uint8_t dest_mode);
 
 enum hvm_intblk
 hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack intack);
diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index 00059d4a3a..711b026616 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -54,6 +54,8 @@
 #define	 MSI_ADDR_DEST_ID_MASK		0x00ff000
 #define  MSI_ADDR_DEST_ID(dest)		(((dest) << MSI_ADDR_DEST_ID_SHIFT) & MSI_ADDR_DEST_ID_MASK)
 
+#define MSI_ADDR_EXT_DEST_ID_MASK	0x0000fe0
+
 /* MAX fixed pages reserved for mapping MSIX tables. */
 #define FIX_MSIX_MAX_PAGES              512
 
diff --git a/xen/drivers/passthrough/x86/hvm.c b/xen/drivers/passthrough/x86/hvm.c
index b73bb55055..9c3c8d28d6 100644
--- a/xen/drivers/passthrough/x86/hvm.c
+++ b/xen/drivers/passthrough/x86/hvm.c
@@ -281,7 +281,7 @@ int pt_irq_create_bind(
     {
     case PT_IRQ_TYPE_MSI:
     {
-        uint8_t dest, delivery_mode;
+        uint32_t dest, delivery_mode;
         bool dest_mode;
         int dest_vcpu_id;
         const struct vcpu *vcpu;
@@ -357,8 +357,7 @@ int pt_irq_create_bind(
             }
         }
         /* Calculate dest_vcpu_id for MSI-type pirq migration. */
-        dest = MASK_EXTR(pirq_dpci->gmsi.gflags,
-                         XEN_DOMCTL_VMSI_X86_DEST_ID_MASK);
+        dest = XEN_DOMCTL_VMSI_X86_FULL_DEST(pirq_dpci->gmsi.gflags);
         dest_mode = pirq_dpci->gmsi.gflags & XEN_DOMCTL_VMSI_X86_DM_MASK;
         delivery_mode = MASK_EXTR(pirq_dpci->gmsi.gflags,
                                   XEN_DOMCTL_VMSI_X86_DELIV_MASK);
@@ -807,8 +806,7 @@ static int cf_check _hvm_dpci_msi_eoi(
     if ( (pirq_dpci->flags & HVM_IRQ_DPCI_MACH_MSI) &&
          (pirq_dpci->gmsi.gvec == vector) )
     {
-        unsigned int dest = MASK_EXTR(pirq_dpci->gmsi.gflags,
-                                      XEN_DOMCTL_VMSI_X86_DEST_ID_MASK);
+        unsigned int dest = XEN_DOMCTL_VMSI_X86_FULL_DEST(pirq_dpci->gmsi.gflags);
         bool dest_mode = pirq_dpci->gmsi.gflags & XEN_DOMCTL_VMSI_X86_DM_MASK;
 
         if ( vlapic_match_dest(vcpu_vlapic(current), NULL, 0, dest,
diff --git a/xen/include/public/arch-x86/hvm/save.h b/xen/include/public/arch-x86/hvm/save.h
index 9c4bfc7ebd..d903ee53da 100644
--- a/xen/include/public/arch-x86/hvm/save.h
+++ b/xen/include/public/arch-x86/hvm/save.h
@@ -359,7 +359,9 @@ union vioapic_redir_entry
         uint8_t trig_mode:1;
         uint8_t mask:1;
         uint8_t reserve:7;
-        uint8_t reserved[4];
+        uint8_t reserved[3];
+        uint8_t ext_dest_rsvd:1;
+        uint8_t ext_dest_id:7;
         uint8_t dest_id;
     } fields;
 };
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 8f6708c0a7..007bcf0f09 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -615,12 +615,13 @@ struct xen_domctl_bind_pt_irq {
         struct {
             uint8_t gvec;
             uint32_t gflags;
-#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK 0x0000ff
-#define XEN_DOMCTL_VMSI_X86_RH_MASK      0x000100
-#define XEN_DOMCTL_VMSI_X86_DM_MASK      0x000200
-#define XEN_DOMCTL_VMSI_X86_DELIV_MASK   0x007000
-#define XEN_DOMCTL_VMSI_X86_TRIG_MASK    0x008000
-#define XEN_DOMCTL_VMSI_X86_UNMASKED     0x010000
+#define XEN_DOMCTL_VMSI_X86_DEST_ID_MASK        0x0000ff
+#define XEN_DOMCTL_VMSI_X86_RH_MASK             0x000100
+#define XEN_DOMCTL_VMSI_X86_DM_MASK             0x000200
+#define XEN_DOMCTL_VMSI_X86_DELIV_MASK          0x007000
+#define XEN_DOMCTL_VMSI_X86_TRIG_MASK           0x008000
+#define XEN_DOMCTL_VMSI_X86_UNMASKED            0x010000
+#define XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK    0xfe0000
 
             uint64_aligned_t gtable;
         } msi;
@@ -630,6 +631,9 @@ struct xen_domctl_bind_pt_irq {
     } u;
 };
 
+#define XEN_DOMCTL_VMSI_X86_FULL_DEST(gflags) \
+        (MASK_EXTR((gflags), XEN_DOMCTL_VMSI_X86_DEST_ID_MASK) | \
+        (MASK_EXTR((gflags), XEN_DOMCTL_VMSI_X86_EXT_DEST_ID_MASK) << 8))
 
 /* Bind machine I/O address range -> HVM address range. */
 /* XEN_DOMCTL_memory_mapping */
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:53:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:53:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238509.1540112 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRhH-0000vE-UT; Mon, 23 Feb 2026 08:53:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238509.1540112; Mon, 23 Feb 2026 08:53: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 1vuRhH-0000v7-Rs; Mon, 23 Feb 2026 08:53:43 +0000
Received: by outflank-mailman (input) for mailman id 1238509;
 Mon, 23 Feb 2026 08:53: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=r2fJ=A3=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuRhG-0000v1-CG
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:53:42 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1d3cca1e-1095-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 09:53:26 +0100 (CET)
Received: from CH5PR03CA0011.namprd03.prod.outlook.com (2603:10b6:610:1f1::23)
 by DS0PR12MB8479.namprd12.prod.outlook.com (2603:10b6:8:155::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 08:53:20 +0000
Received: from CH1PEPF0000AD82.namprd04.prod.outlook.com
 (2603:10b6:610:1f1:cafe::52) by CH5PR03CA0011.outlook.office365.com
 (2603:10b6:610:1f1::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Mon,
 23 Feb 2026 08:53:16 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH1PEPF0000AD82.mail.protection.outlook.com (10.167.244.91) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 08:53:19 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 02:53:18 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 02:53:17 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1d3cca1e-1095-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=xM4rAWjyzg/hYiWhpqQawn6uElunWJGWWM8X1b3pVM74lmIxqe4hLIFbIbL6mn+5AuWP/EZcpzmDocRlQ7DHx3fkGp7ZCbWEMFQuaTDLAEJtnL3algf+HKuoof/T0HJClBkH9hstSSt8XBGOPzv/3heV2BfRMVQXVlDCczaN5Oo+WmMwCJHXIxxbkhYDW9gmumpe1EgZa+ZvyZw6UO+JqThzjtxXrmpQBCuGrnb13c7Z1oOMM52RbdBBi8fz0u5QP9+WwxnXXMEbM2sAYVni9ciyeKgd6oSlvYFKL8MQsqhpZotiHQqRC1F+yyiUy7dKw40zpbdrGd0UkUT0cmDawg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dWedpK6BFANGgNTE3ogKCtlwM+2RdWk/+oJ5O2aiYEY=;
 b=vxhww8E3PpQuIXsOQA4qFGRFIsuZbt6nvEmVS6hbOjslAp2ukq8f72+tpMfFRVx3iih++BLG4jLk5QxsKndFRBDJ9e1rymLr70pEPrn9QIHY1UjUZdfVyCSHbfftXuGyFZEPhAIyjf6IPnkGO1VN7VCztS8WbQQq54Vlf6In1Q95BCG3DWTM6CLFwnr67Y10ACGzanazHi0PqMMsiv7lDXzUmfHg+HYZIdqTM2IGAB6sIXgnt3aa2dUAdqmaKN/XygVsz2N4cqJHBseu3jOLWf8rnXN/QUbSlt3ujUcyCve2zgX5qqHH84z/Vg5XVwxn04kN0oRGauSKPcB6Y6QwwA==
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=dWedpK6BFANGgNTE3ogKCtlwM+2RdWk/+oJ5O2aiYEY=;
 b=n844x5b4aiSeooPd0GkDWZ27FHhxSewm8SR34kqpf4eiAwcpvhqOHx1AYlwSK0rmvM2Kun78wedY/A1+PxfhtypOmCoT8Nmi4b2EHHLcNj2W4BDRjOMNR+j6nXnuik6uaaj36LA0uyg0GZGuJrNHdYOgDqC9Le+njonQCrNm6Ug=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <1c2f4d04-234d-4422-8abd-eb189aadcbcc@amd.com>
Date: Mon, 23 Feb 2026 09:53:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: tighten translate_get_page()
To: Julien Grall <julien@xen.org>, Jan Beulich <jbeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <1d898900-1072-4ea6-ac4c-1262905cab29@suse.com>
 <abd54c11-28fc-4487-a2f8-733007d361ae@amd.com>
 <9163d0b9-f77e-4c13-b986-2d890bdf8ccd@suse.com>
 <526d338e-8648-4f90-8006-35c639bfa6bd@amd.com>
 <8e5e351d-47fe-4a68-a611-df72e3c5f246@xen.org>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <8e5e351d-47fe-4a68-a611-df72e3c5f246@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH1PEPF0000AD82:EE_|DS0PR12MB8479:EE_
X-MS-Office365-Filtering-Correlation-Id: d6eb8702-f4b3-4868-3051-08de72b8fdfa
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?bEYvVEYvVThZRFVCK2VUdTErQUdvU1dyak9qWUxWYUpES3JsbjhEK2NjNWpi?=
 =?utf-8?B?TGh1dUNydkc4eHFHbUFVaTJxOHRqSEVFeXJkNzUzWkRiejREdFh2Z1hHVmVa?=
 =?utf-8?B?dWFmTGwxejlQNnhlcEdrbmdCczIrNnpWaW15ajJIY0RrLzlFZFRUWWFrWG5I?=
 =?utf-8?B?SXRPd1YvMG1CVUswYlA2OHJZZDFXckoxRWcrSWh1U3hETklBckI4d05rWHUv?=
 =?utf-8?B?V1o4bHdmVFJBUFVTRkpCUEVwMnhieGhxNURiRXNjY2R0T3p3YkFyd2xmYkJ4?=
 =?utf-8?B?T1J5VjdVazYzYllBbTA5THo1allLc1B1SUZMZGVFR0RQOXZCWnB1NVYvVFFn?=
 =?utf-8?B?a3dRWmt0c1pLdDBheWMrZlNKQ2MzUGJJV0JGTy9hRVc1bEJJRXBBOVhIclpa?=
 =?utf-8?B?SERrU0VEemNJWE5sT1V0SXBxL3cxOXJEQVpmYWRlZGQvVlBySllSQXZSRTkw?=
 =?utf-8?B?bjFRSjJ2N0JwN3IvWHZQa2RXRTJWVXhIOCt4ZExXQVptZlYvTm5jMGZITWEv?=
 =?utf-8?B?VCt5a0h4YVIvRkRwdkV1Q1I3STIwU3BYRjJzVkRzb0xublFOL2ZPNXNmSnV6?=
 =?utf-8?B?bzNkaTFiZjlJdXl5NWRSUHlGVy81ZTZUL091WWx4bkMwRmsrNjN6YlhuRTFB?=
 =?utf-8?B?WW9ZZTNKT3cxUnE3ZHNOTGVueCsreGJ4Y01zWExxOHlybDA3L0dNSjIyMFJo?=
 =?utf-8?B?SXV0ZVdSZnQ4S3lZVGc3K0wwM0xBNmFjVzlvaXZvQ2QrQ0hIcWpLR09yNWJB?=
 =?utf-8?B?N0F5anU1VldadysrcUVzVyt6TU03YndBY3MzWGQ0eVBiQm9jK0xaekgyZk41?=
 =?utf-8?B?TXk0MWZxK01oNDRxQnVRZWVjUkJiZVpIaTdOSW0vSHMvc1BPYW90ZXFkSTlr?=
 =?utf-8?B?azltVUNoK1lkcytYU0hJNFhGZGIvNzVTTzZyK3BDN21HRlZXTFZjWVNNaGV1?=
 =?utf-8?B?TGFScTVMbGs2VVF0d0ZGdzNnQUZNNEhWZUJORWpRbGdlNStyeW5wTDRqYm1G?=
 =?utf-8?B?NllVM1dyblBLN3hYTmloaklENE1CbHdhMXVnLzhOUHpPUGRqSis3L1BsOE8x?=
 =?utf-8?B?K0t4RFZwSGdkSWV4VTRoVXlOQWZrRUcxc2VuazhmdnBUN2ZSSHpsQTkrQ1VK?=
 =?utf-8?B?ZGt3NzVtZzV0U3Jyd2M5dU5xdkNvMjN4TE9MM0FkQStUSmJmZitaQTZxaG5Q?=
 =?utf-8?B?QmswSXYxN2F2SE5lVThzeStUY05pOEt6cmlZbGpldkRlc1Q0bGtES2k5aGpD?=
 =?utf-8?B?QkxXdTlmT2lsbGF2K3l6Y3BnSnFJbmd1MUFvRnQ3Qk5HL29VZ05qSzB6YlJj?=
 =?utf-8?B?ZWxucG50NmxtaDFpcHhRVWdscXdBMXZPRnFadVQyMHlWQ1RxSTlVMXhMcWQz?=
 =?utf-8?B?OGp2UFFFVCs0aHUvV1ZBUGplVkIvQ1NyZythSXJIeVZkUXdkdGJSTnF6Z3F5?=
 =?utf-8?B?dVovSm1lWUdXSE03Ny8vS05FUVhKeFh3TWR4NEJPQVkwR2ZKbHJqeDBKWUFX?=
 =?utf-8?B?eFNCTC9tdG0vb2ZLanJsdjk2VXpUWGRZMDkxWWJVMjlRQjRySFcvWFZicW53?=
 =?utf-8?B?UjFtUXRnQjcxTGxIMUNqdFphUmRxRGJRU0o0TGFsSmh1azVUdWFiWHlxdTl5?=
 =?utf-8?B?RzFGOEZzVE4xaTFRd0JGc3lMZXdGd1oxTStuUUYyYjBZNEdjSXIwSnVXdFU1?=
 =?utf-8?B?UDB6TzFCU3JZNXRSRTVTS2xBeitsbUtOODNEVFlmNjVEQWNZUWI2Z0xBdDRC?=
 =?utf-8?B?YkQ3UGxnODd4L0hpd2tQVk1aK2ErdFdLOW0xcDVjVHRDRmxPcnZuVE51aVV5?=
 =?utf-8?B?S1F0SjBCNVQ0K1I5NjNSWk9Ic05aUGpNcnR4U1IveG02RW1rK0dZUnU1R1FQ?=
 =?utf-8?B?QU04VnYrZmhEZjU2QS9UV0JzUFJuVkxoMi9JY09EbUhjLytTWTZJTjAwbWJy?=
 =?utf-8?B?UnpSTVFWRm8rWnJEcWppL0J0Q1ljTFY3SWxUdUJlWFBKMXROV1BYNHJMV1FE?=
 =?utf-8?B?MURmN1piWHBUMklSaGpsYXI2V1VpeUV1TGZPRWlwMmdYOG4vS0JHUHhLcWlo?=
 =?utf-8?B?VWlXRFR2aU1RZ2paVDBVWnRwTm9MRjlqV0Jrd3UwMExEOGhzWkZrZm5YL3dB?=
 =?utf-8?B?WUUrSGJZWkZycXlFMTVDUmUvNHpMbVJHU3cxRUFLSG5CNFVzRHZmb0l2VFlm?=
 =?utf-8?B?cTB1WlQ0dThVS2VwWFUrQXBWSzJqQU5ZR05aQ05vOTg2VUNTUC9hMm9EZG9q?=
 =?utf-8?B?TlVPL2NNSXJ1ZTU1N2hyR2IzaG1nPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	u4yW92uGRxGfXggWZGdgTh+idM4A/9VFcJbUiDW87dLwazsDaDO5s+Hpg51f0YURQYu+ifPX9XsGN9QOkQX87dliAECXJi9PP7guI/292V3tqnFf4sU/ip80Yj1aJPKFcYhUiknnlvV+Li4MN2D1DgTD/5SDQ7coAKY3sToryLIgr/D39jce2/ivXK/GDDZK5qu5a6lwwNC647+EHdzszOsUZH05pKGmy+Hpmt3/b3P6AAFuTgGG4g229WY72KxBuNTup1oRkF7zFEzIiIKZJ5ytsqcm9MrSORAVjM5ulkj6ZoPnkG+tlCgPTb13D1zCFcH0aZPN6brDSUhwTNQtC+ioLjeG7jxdEZRPEYUWfOi8p7sWePaS59KJzUHELLAeEWlyBsGZ/BLt/fGTigVoRW9R9+iFCHs9KtzNVMsjSOUB3U/DxZan0BrRDFDYiRg2
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 08:53:19.3232
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d6eb8702-f4b3-4868-3051-08de72b8fdfa
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH1PEPF0000AD82.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8479

Hi Julien,

On 21/02/2026 12:26, Julien Grall wrote:
> Hi Michal,
> 
> On 18/02/2026 08:36, Orzel, Michal wrote:
>>> But that's not correct for cases where share_xen_page_with_privileged_guest()
>>> is passed SHARE_ro. XENMAPSPACE_gmfn_foreign requests have to result in r/o
>>> mappings in that case.
>> Yes. Therefore, on Arm:
>> - p2m_ram_ro is never stored in P2M tables for normal domains
> 
> p2m_set_permission() is able to deal with p2m_ram_ro. So this could in 
> theory happen.
Only in theory. As of today, this is the unreachable code. In fact I checked our
coverage reports for safety and indeed it shows up as an unreachable code. There
is no path in Xen that can lead to that point.

> 
>> - it's only used by get_page_from_gfn() for DOMID_XEN pages
>> - it's used as a signal to install p2m_map_foreign_ro mappings
>>
>> The code should stay as is then and we could modify the comment to say:
>  > /* Read-only RAM; only used for DOMID_XEN */
> 
> With what I wrote above, I don't think we should add such comment.
I think the goal here is to make the comment reflect the current situation (and
as of now it's only used for DOMID_XEN). Taking what I wrote above, do you still
think we should not update it? Once we have a use for RO for normal domains, we
could then update the comment to reflect a new reality.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:55:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:55:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238518.1540123 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRiX-0001Ux-C2; Mon, 23 Feb 2026 08:55:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238518.1540123; Mon, 23 Feb 2026 08:55:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRiX-0001Uq-8F; Mon, 23 Feb 2026 08:55:01 +0000
Received: by outflank-mailman (input) for mailman id 1238518;
 Mon, 23 Feb 2026 08:55: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=r2fJ=A3=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuRiV-0001Ui-VY
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:54:59 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 537254d2-1095-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 09:54:57 +0100 (CET)
Received: from MN2PR18CA0010.namprd18.prod.outlook.com (2603:10b6:208:23c::15)
 by SJ5PPF8AECCE022.namprd12.prod.outlook.com
 (2603:10b6:a0f:fc02::99c) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Mon, 23 Feb
 2026 08:54:52 +0000
Received: from BL6PEPF0001AB4A.namprd04.prod.outlook.com
 (2603:10b6:208:23c:cafe::f2) by MN2PR18CA0010.outlook.office365.com
 (2603:10b6:208:23c::15) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Mon,
 23 Feb 2026 08:54:53 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 08:54:51 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 02:54:51 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 02:54:49 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 537254d2-1095-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=R9b/YBdmsIokr8ha17uSdJDqXDGExUbJ9SdivALEF7q5Smg9ijj0ZOEPW/JN+P/1uzkXHc2qzQcTtr+U1b8Y6r4tlyWzjowyMT25EVePVN5bFOygL/Arlo/7wvIzvKI2yszfVOnpbInZrkLKQUsWSP5j6bvrpJ6EbZv7Zd2whRb7qDBJ5NKbiyBFD+7T3Wtf3x9wAupqbm4ddejiND2o9tQ0+4h2rf+pCprK8vqDyA2YJ7D2gJLPax+1bLJVsC00hAoZCW/OyEtJhberB+xT3R/pFa87v+YlGZ4uulcrTpLOk9M7KAfyrcoxDqO/HPo8Q2DgSvNKLRVoAlOMD1cIrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/8C0ujbKN5s4EGu8j0zpuA6fUlJMTVb3Y6+8pPnCiU=;
 b=oATT0EpjKcELEVNY3HD7bGboMgN9v/zAt2A4BS/AuVxd2bdCE30/8aBJwb7/VNEq2OgsBIRCVLgcpmyQf7hPDWNm/eyq+jvotcf5fCAFx/+zunegKUBltJSRyDgPNmvRNcqHA9seyeD1uNs/fyIjUBCLjldf3ezMDy7JTDyUV4k1ln6BKog6I1+6iDOYjeucz1lVREo9kMEvqkD8RuuiG05n9iP5n5zEMcXs0S3x3JceZbj0pfUo4DN/HQotIkxYrSuTOODW5lC/nk+fE7EV7ZO9EB6FN6FCNNUzBN5cXZLCX5dc49Hd54e+/vujnzNHFwnxfFtOJe2V3gRIdP0TWw==
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=t/8C0ujbKN5s4EGu8j0zpuA6fUlJMTVb3Y6+8pPnCiU=;
 b=HqB/9EtBaR9qN9O2KQPlC4Wdw+qizGluvqlAyy57H8C1zPZaKSiaxVamfG/l4GdfMrG+EjyArhLhYkG9goH85va2YettmFmfqhwmUDOATKU2dJT+hQ+o9l7GeOXd6dpY4k+ahuDq/lc8G/gG5Nlm9p5DDqV/0ZGULSBbaJX0LUM=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <d8edd8d2-e01b-4750-9f79-be2a976c0d87@amd.com>
Date: Mon, 23 Feb 2026 09:54:49 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 01/12] arm: Use __func__ in acpi_boot_table_init()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, "consulting @ bugseng . com"
	<consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-2-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260220214653.3497384-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB4A:EE_|SJ5PPF8AECCE022:EE_
X-MS-Office365-Filtering-Correlation-Id: 7b6a2726-8b29-4e7a-c2bf-08de72b93517
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|376014|7416014|1800799024|82310400026|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?cGVFVThGMnRYM3N6cFhYbzNFRy9qWm03S2hvMkhyNkplUHdkb3JwSkhsVVlm?=
 =?utf-8?B?ZjcwSDJJU3MwWlUwMFQ5bnZrTGY3dFFTVVp3bWp0b29JNWdHT21nL3lXR2ZE?=
 =?utf-8?B?K1N2K2xGT2s0aExod2ExSGdRRFpkMndidDFzOWsydEtiT0VZWTFoR0Zkc200?=
 =?utf-8?B?N1NISzRBQUJSQyt5WWJUMDBOMTZwOEMydGdDRFlGQ3RqaEEvUkpaWlNIUGZa?=
 =?utf-8?B?ZUx4OFArcGk3ZTh5VU1vRC9WWmZVMGxSc3NITlNKdzIvL2EvaTlkcWlhYzVl?=
 =?utf-8?B?OURHQzhPODBWcEZxdHA2ck9WeXpiaWNXNm91V3BwTm1UTE5ZV01WcCtkVDVH?=
 =?utf-8?B?WXVnYnNzRWJOU1dtS0s3ZVhUd1A2ZzlQSzZ1RUp0M3RodDdpQXBFcnV6WEh3?=
 =?utf-8?B?czM0TUxZVHU0dC9rZmJtN1lpOE56Q1Vkc2dTQnRhTWxwOXgvQkFlTEZoSWVr?=
 =?utf-8?B?cE1aZnJpc3htME0zSFY4cVNRdHR0ZzlINEpJSGxJM3hkOVBvTlRWMGd2RlFo?=
 =?utf-8?B?dlc5bG1rRkQ3QW43aXVRVHZLQVp3Slo3K3d1ZWNjY0lua3hwS0NMUjhmRXlq?=
 =?utf-8?B?NWx6YXpJVFI3ekJOcWZaUEVRTnBkQ3ovUjNRcXpyRlBqSVhZcjZNMU1YWm04?=
 =?utf-8?B?ME9lZjZJcWR0SXJ0dTN2cGhER0IwYUI5K0tieWVJRU5HL2tvRlRweUROUm1n?=
 =?utf-8?B?SDA5L0ZsdFYwWnkrSHFOT1BmK0U2QUdRWjlpMWx0Nk4zeGlrQTVweFhLWkYw?=
 =?utf-8?B?UWRQRlFwdHNWcjM1Vlk5VmxwcmVEUko5VUFqeVBIdFlaNFFTSkI4Zkxha1hk?=
 =?utf-8?B?c1ZHeUlEdy9yYXFTMEhKaXBJR3BCRjJLWkdnMHV0OXpmWHdMeWR1aUN1Qy9V?=
 =?utf-8?B?M090cXEwKzlVWW9lNW1Mdzh0YnFvNEhQbWhmdTJNcTlQT05zVWN3bHRSM0to?=
 =?utf-8?B?a09TOFowaGxoTjF4dlVveXZpejUxV1ZwbXdoUTd2Y0J2SWdUNXZoVWdCYjU4?=
 =?utf-8?B?UENNTkhMRCtaNzdSaE5Jdlc3UlpMbkVzWXZMb3pmQXIxeTJmd1NvbzZ3YldG?=
 =?utf-8?B?Z24veEhhbnRKRC9sck44SEZWSGN0bmxlTFZlNTA2T0VCblNVMU8ralBVNDN6?=
 =?utf-8?B?NkFXR1o2M2JQbndGSVk1bVV6V3dYRThHeFBnZ3NkeWZpcFplS3dYSEdBL3NJ?=
 =?utf-8?B?d0FTZm05SlhHdGZFbU1xTmUvbDgvQ01OTkhBUzBtdERwZ0trcG5jQTdleTlt?=
 =?utf-8?B?cXVHUE93NVJFOXpqYllSWXJqV1NjZGFkMUFBdC9NTkRudnZON3c2bHpaUmV4?=
 =?utf-8?B?M0o0VDFvenRjcGNVY2x1b0JuTUtmcE1od082OFRlZjBENnpXcVBDOWhUSTFa?=
 =?utf-8?B?V09mY3lHL01YWmpZN2Rtbjd1VmRFdzA3TDBKWDcwT1dtbVZIRmZKZVkwWmpu?=
 =?utf-8?B?VWJKbm4vWFEwUXNuc2VRZ3M1N1dvRXAydnZFVlBsSGVNN3E0YkgremRhRTN1?=
 =?utf-8?B?SUxLblFMdzhPbnRaTmRBOWVJUk9sQWVZQ2M2UjgrdjZPVk9iVUxOeFJ6M1Uv?=
 =?utf-8?B?U2ZrTDVRYVRqV3BSR1pUTmwzZVNyQnJQajNVMGR2OUE4b2FaNkNiRlgwaXEw?=
 =?utf-8?B?SkVTRmswNGVjNk9DUDN0QVZldGZDc3ZPbXNvajFXMWZHdE1sNHdibjdSMUd0?=
 =?utf-8?B?dHNVeVBmeHpwWXQ0ZW1ua0JZd0llQnNDemN0WjZUWUFoc0ZnUlBVKzZIbGxG?=
 =?utf-8?B?ckx1cmN0WTJFdmJMeHBoK3EzSEVzTHBxZytVNWxkUWVuclJjdUxIL3dJUlNW?=
 =?utf-8?B?SkFUd2w0NUMzNFB1WDJaOHZJcXZacWpidkNOS3dweUlYY0o2TXZJYlZpeHZI?=
 =?utf-8?B?WVhyVmZXOXp4UWZxRVlwQnZ0ZjdOYnhadGZYeVR6Y2N4T3N6VUZEUnR6RlVk?=
 =?utf-8?B?Vkg4S1pNcDdibHlkb2c3YnNGa2dhNHZOc1BkVFlsZlB6dFVXS3pnY3g2eFFp?=
 =?utf-8?B?U0VKWjMzVTczV2dkbjZsTnFvWFU1QWlQbG9zZlFEQmlZNDFsWlFvODc2b0ph?=
 =?utf-8?B?VjFjQUgySXBTb0V0NkR1L3pYZEFEZDFCcC9mTTNURXRYUGVlZFBKVTZUYThZ?=
 =?utf-8?B?OUN6Ymh0VWVOdHZ6WklOOW82ZFBDZmUxUW1vclQxUnI2MisreHhsbEw4SlBL?=
 =?utf-8?B?QkthaHVvRlhZMUcwV29mL2xGWUdhSXJhbTBuZEpHbGJwdXBVRkdsekl3UUdK?=
 =?utf-8?B?WnRhSTFvbXNZREVrWGhUZGpQRTl3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(376014)(7416014)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	AoUjZEPuaeQOvB5uijPidAnaf7fLxXc+qpJv/hpm3MeR2Tm4ASuqyH/+DGx1+En6zkmriPYVUo/HBcIBOPJl/G2x++rdMRsyi6YQYzyNBNOOSPnKarYJRPAtTJqIPWz0LOzRyuZrJ13ri/AlufkuVBh7LB1tRusdbnPRylOZfS7qP8+VwIULZ5IS4C/6i0pRyvwt7zuEOlgG2kOSp4gXJk6OPJSVWqnqQbelm3NylfT4dRi/Ij58L7dVOeOgiR67pWZ/yiDt19uNboCNoDaBLSneLyZ3nNyoS0CH0qmnUC8hX7dhUCohAgsrJPJQJ0lYkbLClPTClaQR5+8pi+r1f2ewaFd6mLnyyreTQRwAeafgIt+sBbbDK5YPUIkSXlLX4ug+3bDOGKz3KKl3kBYgrjlrFS3d+bCFv2f7/Jif0g90GMNW2c5pN3gcYdJz2FUa
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 08:54:51.8018
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 7b6a2726-8b29-4e7a-c2bf-08de72b93517
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL6PEPF0001AB4A.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF8AECCE022



On 20/02/2026 22:46, Andrew Cooper wrote:
> Elcair rejects __FUNCTION__ as nonstandard syntax and a R1.1 violation.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:57:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:57:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238527.1540132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRlJ-0002Eo-NJ; Mon, 23 Feb 2026 08:57:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238527.1540132; Mon, 23 Feb 2026 08: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 1vuRlJ-0002Eh-KW; Mon, 23 Feb 2026 08:57:53 +0000
Received: by outflank-mailman (input) for mailman id 1238527;
 Mon, 23 Feb 2026 08:57: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=r2fJ=A3=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuRlI-0002EX-1n
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:57:52 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id bb28abf9-1095-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 09:57:50 +0100 (CET)
Received: from MN0P223CA0001.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:52b::19)
 by PH8PR12MB7208.namprd12.prod.outlook.com (2603:10b6:510:224::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 08:57:16 +0000
Received: from BL02EPF0001A0FC.namprd03.prod.outlook.com
 (2603:10b6:208:52b:cafe::9c) by MN0P223CA0001.outlook.office365.com
 (2603:10b6:208:52b::19) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Mon,
 23 Feb 2026 08:57:08 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BL02EPF0001A0FC.mail.protection.outlook.com (10.167.242.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 08:57:15 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 02:57:13 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 02:57:12 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb28abf9-1095-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=WNNIqXzAHbPd+QrfoXNc9tZMzsBguYCAME7ilz6HNHMVBIofaefO5JBlxPXNqL/ktObt1bw7bUl+wN/46mNwrBQUPXAspbc1pi4+cQu462n+1bhohQTb6fky5rbri2V5SpXPbQlD1I99HXWEb00IF1LzRKfYdRfcw/hS3V3t7cwVrUMlMAC1tFxM7zmsTQV4ij9xjSvJrX/2kFKqhEBJSwUvhNPJMQCzLjMc09NytqfuvLFADMhemZB58aye8O7wu+Dbis7oYzz4t3WRguzSomMDuj48CkMkDdHPkF8RgCWShTJJaCJvze4XDqtQ2giuwTbZEJGV1SP0+EnLIhVPiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=stF/YritFek5zLZBwT3fj3JD5xDuJ5dMscCRf4my5yc=;
 b=HWYC54olfNoPxZue/QWilnZnXa/zcuXp07QXDTXUt1jF6FzjDiyNqugPzQmdBov5tLhOGM8M414Kx9x6Hb4TwmYEygn0eC18xSOj3N3lZjy/xKcZJkjQmhdV8CO2ZIUPHCXI0qmS8+biGHfZaG2zV97Mg1CgvU52r1p2nUj5pWWqdk0ghOzk2k9NMkrAW4AAV2KjVLYvfzima8BJzplswSFRbTiTIW1UMmr6Mizs2omadkRVcx5pyqnZQdc2zZBPFG6Rvdxi8Jc6X533L5fyx5ATZfJGMQT3KN67aJfR5pJn3sgsEjiCqppJN0fDkf37rUxxCWPx/DHzgmhisj99gg==
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=stF/YritFek5zLZBwT3fj3JD5xDuJ5dMscCRf4my5yc=;
 b=X1+z89TEZyupGmVPucuKNalVKuFja/EAb4aYdw4zKt+U1fuO/+6PYWu4GqXbH2i4j8vrrZwXuzaradzvoZWSfHx/cVAVKIq9hH1gjCIPzVyFapqkYdcUj+Bjyg0z2ax1/2ubkaT7TRsGF1g4hM1/eAg/gfmVHwY1B/nNQxkKg40=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <652e3747-76bd-41aa-9d2d-ecb57d206a31@amd.com>
Date: Mon, 23 Feb 2026 09:57:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 02/12] xen/treewide: Adjust suffixes on integer literals
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, "consulting @ bugseng . com"
	<consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-3-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260220214653.3497384-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BL02EPF0001A0FC:EE_|PH8PR12MB7208:EE_
X-MS-Office365-Filtering-Correlation-Id: 5127120c-4f68-41d5-4c24-08de72b98ac0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|7416014|376014|82310400026|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MUN2ZEtlRWRhbTh1VXFVcS9RalJvSlNYeDdRSitCOFhHeFg3YnFObGo5OUNl?=
 =?utf-8?B?TEM0Y2hNTy9yV2V5L3U1MG1MaFdQNzFUTjlpMDV3TXpFMlZaYndEeHk2Z2ha?=
 =?utf-8?B?V2NFMGdhM0tEbGZYWC9IZEdEckU2NkZQWEI3QnM0cDBQbGJHZytNN1cyNmov?=
 =?utf-8?B?SmlLWmgwOHZZbVlicTczVTYvR2lNL2E5MStlM1FDLzNNT0ZXZTZLN3BiQUpP?=
 =?utf-8?B?VWdhcmx6Y1hpdEp5TDZKenllMG5FbVErcy8xZ25yaWpNazdacmtRTUxGWDY0?=
 =?utf-8?B?eUovdnhwRVhjSm1tY2dDbDkrQm8vZmZ6WnkrOWFIUTVRQUJRdzFqMERNbUdF?=
 =?utf-8?B?TU9ZVUxISEtvMXUyaiswM2tBRWhpNWpzU0U5RkV3bnMwMnVjZ1A1MURCR1JL?=
 =?utf-8?B?M01GRnNhcmpZYXUwRmtvd0xwN09nSUoyUUdqcDF0ZDByT0hsMWYvNFFTd1hx?=
 =?utf-8?B?ZzdxbEc0Sjg4R3h3T1RzSy8zRCsxdXZ2Q0t6eHJ5bHo2ZnAwcllVRVB0NlZm?=
 =?utf-8?B?VGRPNVVTMXM4a3ZUQ1NHK1RXR1FmdzhlSTA3MS9FYTVIY3p5RGduN2hibVVz?=
 =?utf-8?B?Vy9hL1plaFJJMjAzYUVnc2FJUnc0K1VXUG01QWVjYjRpbzhsTEpuZHRReWgw?=
 =?utf-8?B?QlNZaW5pcms4Y0ViMThocnkxZWtjQ1pNdjNVaEpOZFgrNkV4cUlTaVhaNE1J?=
 =?utf-8?B?eVBJak9OUmNpdUpjTjRtQjFvNnFlWURZT3U5VUdEYUF3Nzhnc1F6SzZ5TkR4?=
 =?utf-8?B?MldMVi9QaTlkYlVXZzRZVlRGSTlJc3RybkoyMitBOVdkczBncEpaMHpaVDlt?=
 =?utf-8?B?NHBNRnRySWNnNFQxMlhIdnpTZGhwUmhKemdMWmw4ZS9pbWZnczZYSE05ZzJW?=
 =?utf-8?B?SmJ3TXg5OEYyZzMzQ2VvSWErb3ZESDhZaHg4ZTFMS2U3WjlLektTZUxwMEMv?=
 =?utf-8?B?em5JMXdPekZEUUNLUkd2NHE4eEdCT1pBRVo3T0FZVzE3RjhnRVlqZ1lJRFVD?=
 =?utf-8?B?VElGWHJNNE1zU2JqZG1vM0hjdFhuZW9HNG1YUmk5MjN5V3h4eXB3TytueUUv?=
 =?utf-8?B?eFZKc2hkcGFIYld4NStLZHJsS0NUZzBLMklWa00yaWxaa05aRUNvdUxISnIz?=
 =?utf-8?B?R0VWMERnV1VPdUQvMENaQXI3d1V0RUdNTFdhcXZueW1WUTB5R3hoWWRDVC8x?=
 =?utf-8?B?N2RKdEJaYkUzb2FOUEJ6RW1Cc1h6RGlTdjRqOXBkcXRFRVVzd2doQkEzaFhz?=
 =?utf-8?B?ckRxbCtGWjF0ckJoeFJPZ095d0t1aGNlTnIvRUdETitKUmhEVGxnWUZJTFVq?=
 =?utf-8?B?bWpnY0RqV0pBZjI2dUJHaUh2UEhoaEV6K1dEVFRjN0FXS2pmdld5Y0VXSUxS?=
 =?utf-8?B?clJkRXlqY0JFUXQ4dUVRcDF2c0lOcDlaUHE3MHB3V0Y5MFJKQ3ZEWEJvNlZ3?=
 =?utf-8?B?MElVcGV0Y1JpQVJvU05aMjJ2elV1UzFMcWQyNmREQmxQVzVuN2NCdjFsNnBo?=
 =?utf-8?B?Zlp1NUFycWZNTSs0MUtHaWFSWVRBei9pSU9RcXRZcDNtV1l1UVVrZFp4WVMz?=
 =?utf-8?B?MmU0RVFHRk00Tm0rRW90T3RwODh3ZzhyODRES3Z2bFBIZTZxZzF2VUljYWNG?=
 =?utf-8?B?eHZDNVd4RU9rQ0dENlhrU0g3Sm5KZWRKYUV2UnMwbkhRUHBzR2tqZ2tmdlU5?=
 =?utf-8?B?dU02elFyQUtKd3BybDJKNk5ja1FwSWVWSjNJaFlWMDZEOGNiS0wzWEdTRnox?=
 =?utf-8?B?YnJicWl0WUI4dGtQYUhsdHRxZTkxNlJuV1MxcitwZGgxaDd6M3dEMm9zemw4?=
 =?utf-8?B?N250UVpmc2ErNVNNNmNidnpZZXF5VDB5SnVwMFF5aktuU1Jma3E3UjB2YmVQ?=
 =?utf-8?B?U2dkUUNTWWkvMy9yaXB4V2trY2lhaHMwYVhTbjJ1YWVnN1FrQ25ZS0F2SE0x?=
 =?utf-8?B?cW9WSUltVjBoS3lXZUlmVm9BZmhJbm5TWVF4N1MyTDJzYWdPNUI0c3lKakhj?=
 =?utf-8?B?SkN5emZFYWZnaHR2S3dNbmViVGlXVHFvRERaR0QvMXRwUGVhTzBVUFIxVEIx?=
 =?utf-8?B?cHRsMFp0WE9uS2Z1YTlMM2E0bk9XMWMrMzZHM3dpSjRRNFFBOGU3cVQ3QzNs?=
 =?utf-8?B?SEpOblBsc0pTVmxZd1U5NkJyZGFLYkN4TWdJZCtTcmg3N0VyRlV4eFpwcE5J?=
 =?utf-8?B?TFpLUncxc3Y2TU5VZ1NaMk9GVnFoOUtoei9OWE5EN012VSt6K1hvTlhiUjhq?=
 =?utf-8?B?Q0c5OTZrS1pTbmNsajZLMXR6WFJnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(376014)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	BPnXX40zj/hMj9Rd9csRqBDvnGfTAthuxdRUTqjg/OuDGXf64gs5NNGfnzPVYedPHMfq9/QiHuK8xnBlOMxMe5fVtEGNMP4yJ4BWk4qSGPPVy+3TQeEN2G+8nb0i7HfRxyKa3STj8YrNzsniiTrNmlSfSzcgHNfajqf2GhN9UyY4LP78iMFYP9Ij6QSXMJwUcc1Y7Tgziso9eJWpnBnrNcfNW0gzT/lAMH9A5Ma5q2icWs2/g0o8qG1MdE2SHmXNL8xX9clprptA8yTW8O2Q20d9U/TgxlYLtR4gMNZ9MrVLhDu+sQsLGx8gb9oyWopuvhZFk9d2Oh1zkltlj7lKTsNQjEW6ROBtdq+1SEzSFr5pIL1426B2+UkT2EtCzHLmBKuhKwbrjJPhDN43zSiTlsnlE6sdsrqL9ZnNKe6pLZ1E2vRWH5Ikd/NL9yqVn40H
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 08:57:15.5210
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 5127120c-4f68-41d5-4c24-08de72b98ac0
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BL02EPF0001A0FC.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7208



On 20/02/2026 22:46, Andrew Cooper wrote:
> Use U where necessary (Misra Rule 7.2) and uppercase L (Misra Rule 7.3).
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 08:58:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 08:58:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238534.1540143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRlo-0002hL-Vo; Mon, 23 Feb 2026 08:58:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238534.1540143; Mon, 23 Feb 2026 08: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 1vuRlo-0002hD-Sc; Mon, 23 Feb 2026 08:58:24 +0000
Received: by outflank-mailman (input) for mailman id 1238534;
 Mon, 23 Feb 2026 08:58: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=r2fJ=A3=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuRln-0002Vg-65
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 08:58:23 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cd25499a-1095-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 09:58:21 +0100 (CET)
Received: from SJ0PR13CA0175.namprd13.prod.outlook.com (2603:10b6:a03:2c7::30)
 by IA4PR12MB9811.namprd12.prod.outlook.com (2603:10b6:208:54e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 08:58:16 +0000
Received: from BY1PEPF0001AE18.namprd04.prod.outlook.com
 (2603:10b6:a03:2c7:cafe::2e) by SJ0PR13CA0175.outlook.office365.com
 (2603:10b6:a03:2c7::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Mon,
 23 Feb 2026 08:58:04 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BY1PEPF0001AE18.mail.protection.outlook.com (10.167.242.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 08:58:15 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 02:58:14 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 02:58:12 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cd25499a-1095-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BZ7KfFVgBhiKfFwU3BwFCmZl0VHdJpJxg17RehyUHPJ/DtiYK8ulIqcf+OJoECA5fpzaiGd26fB8+wMIwKzlQDhzp3cINYi8cmjwuHatKC3l12R9Gjv9XweoUoM9Bn2ZiIFeOJtgZitLRElqf0LObh+OgS0gvg0vHaqmwM12o/JUu3SZFaAZkHTDb8093nRx8vgz5pEKhGpSoiRkhOTnlJv/EGiH7SIh1I5YikfIJ9sK9idIWWBFhip5iPf2+mpltrl51EHV5R59/L43GCP6GaivBdLFMxvRr4QMQGlskht9JQtQCVEGPIvYNZl4mQktN0x+j7Zb1WgUAGru10L8nw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=N0sUhXZr66Tr7ijbuuAeshFgTkO/onTkAvF/bb2gMCg=;
 b=TdOLerFCEQBlRYVDVMmzvH2NeX2CjdkdOaxuh4K7MEvn9cTdqzdcyreGG6v35qm+CxpZf4bYMJSyi655NnXwyWWbwCyWlhbQV4W2pgWnl2Dy4aXtpP2BN84Giv2EhAJF1ZGtI2wqj04j8BsOlKFAhFTfd/xvqj1njKoMNlXlmAeeHSux5JSAgAVqxH7h/7pMhWfE7OCnxImp4xQe5fNoyYX/4xdtrMpV0ql7E7MZd315fj5PQPxRAQ+a7bS1HP74odEvtIx4A6wzJ/ffJ4p++kz2sXW9jTf8bIbSjrzvkbwrG18jygS7Efswy1vx/S5NOo2T9Hm6x82nuUn5NeHdwA==
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=N0sUhXZr66Tr7ijbuuAeshFgTkO/onTkAvF/bb2gMCg=;
 b=ZMZOT0rho4DvADAZFHKoZnPYf5J5Gy+D3ZJe7TNaKNxl9BoIzS3YG3v9/RIO/mqyaF1pDhmwiwRFWFp8Hh0pgvQi/ju+z7OKm9FyH737I6oSnXbqXW7YAw2I8lom2v9g0JL7stZka7K6n4F+69DTGkCJhCuu191nAWoShidyq5Q=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <c76e301d-8301-4d05-ab5a-b0b40c34ff54@amd.com>
Date: Mon, 23 Feb 2026 09:58:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 04/12] xen/treewide: Adjust parameter names and types
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, "consulting @ bugseng . com"
	<consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-5-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260220214653.3497384-5-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE18:EE_|IA4PR12MB9811:EE_
X-MS-Office365-Filtering-Correlation-Id: 0576eee1-f511-4347-4fa4-08de72b9ae6e
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|1800799024|376014|82310400026|7416014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TzIxZE9uV2J1YmtFOS9yNFBreHNOeTdzNU1yU201K29PMFdyditkU3dtUlY3?=
 =?utf-8?B?SVNjMTFKT2tPdFBrWUxDRnN0VDdjdm9VeUp5YmtiYlgvVWszNi9CSkxkT2to?=
 =?utf-8?B?eS9xU3h5OFlqaUpkMjJGeGVhRHg2a1pvK0gyUXJzbC9oT3FMR2k0NDV5SnM2?=
 =?utf-8?B?TFk3VjgyOEFmOVcycEhwMFY3MXJFZTdTNnQyNG9tRWpqZWhDc1NCdFNpMXZ0?=
 =?utf-8?B?ZkZlb0Qzd1NTS2l2RWlXSzhGTWhteWhZZ3QxRXM0cWx3TDZpbWpYcXdHUEw1?=
 =?utf-8?B?V2V5KzlJd1FuUnRXdmxVc2xjTkNuQ1ZGNHdFcmxoUUJaUEdrTmM0eVpjU0pr?=
 =?utf-8?B?SlZrQkU1OFd0L1NBOFArN21SODZvbW1MNDdsZXN6QktYa0lndWFESEJ4NWtm?=
 =?utf-8?B?UmdPMy9mSUJhVU9qYmozR1RNb0NYaUplcm9wbE1mbHZiN3lLT0tMVFdxZ2dP?=
 =?utf-8?B?TThBWGV0RWNzcitweHpxVGQweGZpd1lSVGxnTElxdnQySnRjdDZQMzJqVzM2?=
 =?utf-8?B?WjNTK2RJblVxRFUzZElnT090RUFIWk1UNTErbHBXUUhIRUYrY25OZ3VlWVJ5?=
 =?utf-8?B?ZzJrKzMvQ2ZadzJLbkpwV3hjeE9NUXp2b0pmcDJlOHJ6Q2s5UERmNHRHR0V0?=
 =?utf-8?B?N0xDby92SUtUblIwMDZ0VWtlY0ZpZEkrcnRQRGgrdXZrOHh5VkNDZ3R1dUh1?=
 =?utf-8?B?MWFuQng0QkUzcnQ1QmNTbnZaMDd5MWFSUG9CNXExYXl3ZnRGL3E0UFBydGtY?=
 =?utf-8?B?bFhlUlR0QVYzdEQxZitXeHhVSzIwT3BwSFpEK2NFck50ZUdYZUdjNmtMV2RY?=
 =?utf-8?B?WTZuS0N5dzVJUThrTXk1ZDlyS3dsNjdVRklzVG9BNFB1Wi9pc0p0SENFOFV5?=
 =?utf-8?B?QkpFNndDaklTQjhmdEdyNm9jSzVYd0k3cXZFNEM2T2N0eVM4Y2VpRXJEakgz?=
 =?utf-8?B?VkVLNEJjRDQxTXNjR1RkOXAyK2w2cHlJS1M2YVY5SmgwYkZCOTBvWlpEMWlk?=
 =?utf-8?B?c2ZjZHZLWXoyQ2hCWVA0eVV2dmo1QWJSb0V6QjlVZno5eHZNV29CRzRXTGtR?=
 =?utf-8?B?Q2lsb2Q3ZS9vQWI3K2FPSmQveXhGMW1ZZjJiczExcWFvZmM1dStTL2o3TWhF?=
 =?utf-8?B?OFBFeFNKM09CdHR6NXZNRitXVEowNUkrWmZjZklBMW1IN1RxTlRQcm1Ic2gz?=
 =?utf-8?B?MFNjZmJJQ3UwSWYvdjJLLyt3aHVQS0NYU3QwTm02RWVsWVE1a2daWXZBd254?=
 =?utf-8?B?RFRVbzdMS2d6RmRsMnhrQXhJeWQ5cDA0RFFxWEx1S2pPN2NJRUNkNVlUWS9s?=
 =?utf-8?B?OWsrWDQ4TXFpZEduaGdXQ1N4L0F3emlMTkhncU1QQ051RXdOeTZ5VXQ2SjhO?=
 =?utf-8?B?a04reUpCbWdnN25NMnhrSDNHa3pxNmEyL2UvbWE1V0F0TTdOQnJMVnRSQVpk?=
 =?utf-8?B?eWdsYWhJWE1jZExsM3hGdHlLeEt1dnMzdG10Z3pZYkZZempyd3hScXlZNWZw?=
 =?utf-8?B?UGJMMTdzUktHTy9kRjhLZ3BxL1VRMDVnTks4TGxkdExBZUg4VXlVVTk1dkZM?=
 =?utf-8?B?MVlhWi8wdUdOWjhuOForZzBUdWRlTld0c21iZTdYREhmSUxUQnZaenZ3ZENm?=
 =?utf-8?B?Y1o3dmxadVpUZnBwVHNCQlBhdmpoMGpOVUFmL0wyOGVJSnN6RkdnaU5mSGp5?=
 =?utf-8?B?ZFZ4dTgvdnExYXBka1FuRjM4ZzBacGZyTUlOMHRacENmRWhYVm9nVTdrOW14?=
 =?utf-8?B?TCtNNHhoV01SV2RsSlRlK0ppWlBBRDVnUmpPUTFiKzZUMktkY2hTQW80Q3JB?=
 =?utf-8?B?UTk4RjNTRlJXODVXNkxkMHdkcHNkRWUwdFlaZW9oLzBHZHdrWXdsN0JqUlk1?=
 =?utf-8?B?VG4rTktOcXBGYytTdG5lWEtnVFpOSWtPMmxzWW95TDhaU0l2dE4ySE5WQjNO?=
 =?utf-8?B?T3FpOTZMd2xRdXVWTmZSVU5TRENEaUNpWmc4QW50anFQNzk1bXJoQ2NVNmVN?=
 =?utf-8?B?akw4SWVFMkgwSEJieDNmVTN1c3NLL3Nwei83TWJmSDhVeDdBU1p4Ymp3Y1Mz?=
 =?utf-8?B?TnJocVMwQ3I2YkVyTUg3OXErcGgxcnBMaUk4cFR2NVhTV2s2dU1QRkllYlBX?=
 =?utf-8?B?UUZIT0ZXQkp1QjBNZ01qQVdaV0R4MnhMenMzRGpENzErNjVsdTRVZFJkU1lw?=
 =?utf-8?B?REJWeHpOZjJUb0VPZ0RlYkpzODhuWWdQdlN1MFJaNDgveUR5cjdVazJncXRq?=
 =?utf-8?B?YjgvVGlMMXZjT3Zsc0FLOFJPRXZRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7416014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	DPshjIhtw3sk5ptOjUYXbDdNSQy6V6lvql8ZJFxnebmFd0jWlUyc+JbofzV/fkiBsBDqIEEdQoMk9XzAAYKKSli63SErVyrMc10DHDd/0URZEyO6SgfO704jzV4L53WT8oTKynWD95haW444lZrm3KSX3ibrSEfmvJIV3x/xtE8qAz5cwyO8axen0GeH1OMSOjzegjD3E8qJxHrXCbN29IQqxyEX3uYgKLaNsxXVQsnDy/fH/b7XkqNDincX/W1wH4OLuB/Jub2hMPKMHEzGlYKs1hbWSgVVKhn9RxEjGgkaAsOJ4UfZvdq41DC3w8raqhKXxq2ncnRmiP3NHrqP9gbte2lY6+PvOLXIJfiyoev4Z17otFtcFNkdXr6+MThM7SBt4WJ1ksDeQhjv8IvVWi42f1YomiAHCQsrta+U60H3j/YRYjayb1a59J7lPGo4
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 08:58:15.3471
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0576eee1-f511-4347-4fa4-08de72b9ae6e
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE18.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR12MB9811



On 20/02/2026 22:46, Andrew Cooper wrote:
> MISRA Rule 8.2 says that parameters must all have names.  Rule 8.3 says that
> the names and types must match between declaration and definition.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 09:00:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 09:00:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238545.1540153 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRo9-0004KU-F7; Mon, 23 Feb 2026 09:00:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238545.1540153; Mon, 23 Feb 2026 09: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 1vuRo9-0004KN-Be; Mon, 23 Feb 2026 09:00:49 +0000
Received: by outflank-mailman (input) for mailman id 1238545;
 Mon, 23 Feb 2026 09:00: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=r2fJ=A3=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuRo8-0004KH-Kp
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 09:00:48 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23a95f0d-1096-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 10:00:46 +0100 (CET)
Received: from SJ0PR03CA0006.namprd03.prod.outlook.com (2603:10b6:a03:33a::11)
 by DS0PR12MB6632.namprd12.prod.outlook.com (2603:10b6:8:d0::9) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.21; Mon, 23 Feb 2026 09:00:42 +0000
Received: from BY1PEPF0001AE18.namprd04.prod.outlook.com
 (2603:10b6:a03:33a:cafe::3e) by SJ0PR03CA0006.outlook.office365.com
 (2603:10b6:a03:33a::11) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Mon,
 23 Feb 2026 09:00:36 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 BY1PEPF0001AE18.mail.protection.outlook.com (10.167.242.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 09:00:41 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 03:00:41 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 03:00:41 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 03:00:39 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 23a95f0d-1096-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GhIQPvXmYKzN2GIOL2RZkiA9u7VUdNSlFUMODNGoYI9YNLR53KBKevJgGzOkViLiIr2ZXB5x1KdHMJPk8jda3OzbEJwzCam2aE6i3b0BaBkBoW0u2GDWiQi/3RW6ESgxovYpzNvwLAlvtOrtb1wd9oSn9hkFuM6QpT20+XIbmR6PEqZfm8Bm7eE+4q+x8QtSy3t2wWX8QmLadV7w2hs+4pYtNAdEEb+ms5cDKXryh3R31XN1SzHUg4/Swpy5ymjDl+hXxbvX5MZMEnXqxeFoxGL80P/DS79eGRHqo7+4Ky2lJXz6ilXgjlsJu/1qaeEh9Oeg37zmRES6EXsbx1ZgdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ja7RLCsw3T1d4+UddOJk8/jWAop8kQKIJNbmZTL6NOw=;
 b=qXXMw9D4BQaCN21eCnOiq6j7PnU69dLBOmPI0lFCg5g6HT0W6p/TVLAK2jkfJvAXbWXuUVc/bdsZXosuGNTCvYTjabRyHiQFvR4sN/hMLth/EcuJOUvfliDlZLNWbOqmJZW5eXNWNaJ9uq+yiUystRdncF51s23se3OkAc87X9Hkffpy6sG4d/bXHeUWG4iJBeQxSmX+bHi3HS84fbqHmC36iL/95RnLJ4TGKoS56fm7Igp4v7by0PVEBPtw4gH4jucj701L5fTHpdRuVK5HrbHoqOQauHhNUgKJoO4cj03eQP0iIwjP57eS84SDnlMtwjcnKSzRNcXJrq0TEzCkUA==
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=Ja7RLCsw3T1d4+UddOJk8/jWAop8kQKIJNbmZTL6NOw=;
 b=zvrRaT49/Qxao7JuUo3WOHeeUtR+wEeUbEfTTOPSjrs0rKFemVaax6q5XNYzZPeeZV74yuIbGj30D+qsYD+2cTu0feyf6fq21yJEokY5wkn4NCW8N/bGl8qzRkcTnz7vDSiPJ1Qn0gDfu1AHA3h63wHAHZtwTKJD2v2gkiqfIPY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <afc77f4a-c880-4e68-8e6e-d4754a22028a@amd.com>
Date: Mon, 23 Feb 2026 10:00:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 08/12] arm/pci-designware: Fix MISRA violations
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Julien
 Grall" <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, "consulting @ bugseng . com"
	<consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-9-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260220214653.3497384-9-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PEPF0001AE18:EE_|DS0PR12MB6632:EE_
X-MS-Office365-Filtering-Correlation-Id: 46450b04-7cdc-4d41-a1f0-08de72ba05c5
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?SGdQOVFlb3lZZ2FoK2tKNGdwSEpORGFtNGtKQXFGeGw0bkRlSDRDWm1xK2Zh?=
 =?utf-8?B?blA0VmN1UElUNEpYVWhkL2lUNWp2OVZDQUd0SnlScndPb1VCK2NqNU1NYktQ?=
 =?utf-8?B?dVFYc2gzd2xNQ2dvcXN5d0l6TGtKdytPblpyZXg0MTNxTkNPL0ZJQ1U1c2NE?=
 =?utf-8?B?Ui80OVFDOFVDUWdNclJmNS8yenZGS0xObXhUdUdwRDFmdmROQ243WHJoWjZ2?=
 =?utf-8?B?Qk9rNno5YTdnZFZjRmJpM1Yrd05ONWp0bWhscU9ySlNDM3ZFd29qYWUrRS93?=
 =?utf-8?B?bEtIUWxwaW1sdGV6M2NIUEhUUS9vd0pxT0V6WU9UczVFY0FzMWJ2Tzh6UHR2?=
 =?utf-8?B?aVhWajJVQlVSKytSUkpOcFZqelEzMmFaVHczNklndWRsTWlPOG44dnR4SXJ4?=
 =?utf-8?B?NE4rK0lGVUVnUW05Mkc1dzlaUHhOQkxKeGd0TGVPYW5yczQxSktpZWtKRWI3?=
 =?utf-8?B?eVl2anMyQWhhM08xZ3NaYXplVFo1MWxZSHVRRURneitxdnZpTGdSR2E5Mml6?=
 =?utf-8?B?UXJZcXBFcW1nTFVNOG1rdE5NNmFORis5djNZT0pBTVB1dzYxZXlENExQNS8r?=
 =?utf-8?B?clJ6RDNxcFZ3QlM3ZHF2YUdOTGd6ZVNUMEN3SGVjdWgxTEprUlRZeURRSGRi?=
 =?utf-8?B?RStEZmRtT3lRbURUenI0U3NMREJzN3Q0eG5xMGJYQWxTcTdaekFnNEJHanVX?=
 =?utf-8?B?K0pqeTJCZENSd3lYeXhPUVBUSUZhK1c4WXp6dGd2QnBFVUgvZHJmUUdVRmVj?=
 =?utf-8?B?OHJ4VlFtYUZ4endML1NWNkFWQitsVTk5MDdNWnRESGp5cUlSRm1nTTBiUG05?=
 =?utf-8?B?RHZrcmNJZXIxVDc5Z2M4ZnhBbC9yT3ZrVGZTb0ZJbVFuZThmUEdsN2tRVGIy?=
 =?utf-8?B?SXM4S1FRYnJCWVUxS3MxbERUQUhDZTlNYnV0NnBjWDUyQWdvZ1ZQMHpseEdH?=
 =?utf-8?B?eldvRkd0RXk3azVMQUFhNFlFbU1BVDhlWGVGQ25ZbTJud1podWJBZFlEdVFY?=
 =?utf-8?B?Tm5lTUJ3MXd5M3N4SUtuT01hVnVWazZ4VTFoSmJadFlnWWIxSTNTTkFrSThN?=
 =?utf-8?B?bDRoc1VrNTdPZFZvOTdLMnJrMmtOWjFjQnJDOStlUG94VVg1Vjk5SDg0TVFT?=
 =?utf-8?B?amZ5cWQzQk5BWXBkb2tFNWEyS0x1TGlVSEsvSGxLQVRXOEE0RjBQNXQ1Q0lz?=
 =?utf-8?B?RXk5RjBaMDluRUVOSlVoSCtUOU1uSGNQN1dITlhNa2luakRmSndsQmlRRWhj?=
 =?utf-8?B?Ym1LNUZhVTZ4cEVqSHJkWTBDalpDcXZhZlFXRzZ3L3NIc0s3dHN6b2dVWVRF?=
 =?utf-8?B?bjJzVXVVVVl2U3VBRTR5QzNHUjVNdjd4WVRUNkdBUkYrZ3djWW9kUVN6L0JX?=
 =?utf-8?B?YWxXNmt0OFpSUHBYamRPdFdmT25jUElOYXh3Q041elROVm1QVmlYa3V4eUNz?=
 =?utf-8?B?U251TnlLcFRZVXlsYXp2dGpsdTRwU2pDcE1UZGcwMmhCUFVVeDJlcUxrL3c3?=
 =?utf-8?B?TkVyMCt3N1FwUEJsTDZaeXp2WCtnd2hrYmdoZnBieUNPVmJ0ZHpBb29xY0Yz?=
 =?utf-8?B?Rm5vb0pUT0xBdGczVmlXRWt1U2tJL0dicjBlNjhLNG12ejJkdFJLWEU4V3hq?=
 =?utf-8?B?ZUQ0eUhHaFN1SkxLT2ZEUllIME5FYzYyRHdQOFEwSTByZHNSWFpvTnRycVpE?=
 =?utf-8?B?Q0VxaFJEcFV5K1dEUlZRcnFEWmhmVlN6TGwxL2V3N253dmtoakdXdERrTHdS?=
 =?utf-8?B?Q3RWbXVsZ09xYlppVXBGemxhVkNuYXdzc05QakIwU2RVYVpyTEovaDN4Y2Yx?=
 =?utf-8?B?Qm44L1VEYUNhajlJVVJ3YlpZTU5jMk1nSnFOM0FyZzBKOXFEbEQweDMweGFU?=
 =?utf-8?B?eHppNExXZFJ1VEl1V3M2Ukc5VWp2elp6WHRkNzMrUGZxeENiNUlrTENPRFRQ?=
 =?utf-8?B?eTh2SnRmRjVwTnBKSUxaRzRGOXRzU0xQSHI0VnYwYnovL0pTa3NXY3BNdjcx?=
 =?utf-8?B?OWMxb3pKRnFPSldoMzB4MXM5TlNpbUc2VWpEMXJqTUpVbW4raWIvWCtIMUo1?=
 =?utf-8?B?eVVYbXJDbU5FVmthamN1UTlxRitvdytScnRIRkd1YTFad01TNVBzekcxMC9P?=
 =?utf-8?B?aWNabHFqSVl0M2pZL1prb3pvVXhiNE5EclYzZmswa0pRV0tsYWdlYzBwOGdM?=
 =?utf-8?B?eHN2TVUweHpKTHMyL01MaU1EWE9XVXJFbytYZ3JpU2diSnFramorMVFmQ1Z2?=
 =?utf-8?B?SUM2NnJEZDhJU2hvcVBtdGxTcExnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	0q6yW/4weBpPxLAcyOAOqh6f7XdNIb1w89pno5Gmte2HfC79HLDzyCPJqnRsIwsbUqArgi8WRDu/+5GRhCxzIgqzfiwGYgfE7IjzodsxHYLpxhMkhK/OppoED+buIJvYA5DonxbcPKqU8Zf7HOnxGLLtq1bgFS0fNvJq3yOAuX8wuduswrhgRLwEVgczD7TK8tHIGX/lIpfsBmDTWB2MPyrzN3jSDCApWFia77/fYZl2Uhbwlor9DHKUL+fygxSsZqBy/BqtI9cejKI0aDZAj87QF2FJHhpoBqSebFYeVQM5S35hyxsq3Guzp59LsmjbeVIoYWgbx05mLr1aNN5AV435iguoSqz39JSOXwypqwfZXwX+KKzfZx014bIANQhyRAMSpKi53EDvioYXUl4y/ZSkILf3h9GafAUbW9uNe3CTBuBUprFcuDrBV9jBTnqb
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 09:00:41.8700
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 46450b04-7cdc-4d41-a1f0-08de72ba05c5
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BY1PEPF0001AE18.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6632



On 20/02/2026 22:46, Andrew Cooper wrote:
>  * Move includes inside the header guards (D4.10)
>  * Use NULL in preference to 0 (R11.9)
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 09:03:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 09:03:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238554.1540162 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRqP-0004qE-Pd; Mon, 23 Feb 2026 09:03:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238554.1540162; Mon, 23 Feb 2026 09: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 1vuRqP-0004q7-Mx; Mon, 23 Feb 2026 09:03:09 +0000
Received: by outflank-mailman (input) for mailman id 1238554;
 Mon, 23 Feb 2026 09:03: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=r2fJ=A3=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuRqO-0004q1-AF
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 09:03:08 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7722ecea-1096-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 10:03:06 +0100 (CET)
Received: from BL0PR01CA0009.prod.exchangelabs.com (2603:10b6:208:71::22) by
 BL1PR12MB5801.namprd12.prod.outlook.com (2603:10b6:208:391::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 09:03:00 +0000
Received: from MN1PEPF0000ECD5.namprd02.prod.outlook.com
 (2603:10b6:208:71:cafe::bd) by BL0PR01CA0009.outlook.office365.com
 (2603:10b6:208:71::22) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Mon,
 23 Feb 2026 09:03:03 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MN1PEPF0000ECD5.mail.protection.outlook.com (10.167.242.133) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 09:03:00 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 03:02:59 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 03:02:58 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7722ecea-1096-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Kj+U6CYMwkxj0KoegJuzhGrr0UESWNumVriiSaZSkzHGTX4lQAKlzxcQIN+JYtucqo+6hu+SqavFs+VF/F1oUdjZsVTPXurrInZlBmGWS3voG4qbl7SyQqQECwi7Z+1vF3hgMWROCKebB6Lt2TixG2tjlhQ9DnoAs25zWH2eOozrlZd/uTJ1PfwtEY7EAKKkmD+yxGkDRg/X7XJ1rL6InrN3RaQDgJF0xhT3q0SggWCVYP3po6xeaveuU+VulxzBf8icsrPi74cB32KNcI1vNogr7kPeEQFcjzfWaG4M7AaN6YXUSwFeqjDpJd/81mocCC9wzUPC/wQASCfFloRD/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=Mj+BfBn6GbWqGU5a2/q4jw/ngVvX580fXa9Cwon3VkM=;
 b=SYG+D6LqzKHXYwEXXOFdKjN5KHw5jRmO7RYTxCqMTdZVwJy4WtFiDOL3jkwajjoWSksMbziJv42s0RG5Hk1F0pG/OjO40rdDmNt9YtF4fikvRcBA0r29BScnDpHLYhbjkaKBy2GtwPjDH9IrWmavXibKnxxFUEbSgwkud2zjijCZfotf0aPzDQo5iZEKn1kooyTDQoGicJpwQ/Ja2IunpIAVSaVnvHeR7XzoDLLGtenUwDfTYOiJVdZGopBFVueSd/mIu6ycU6gddelwF/o+N+3FZEpaNdla6Drkpc6Fyxmtx0zzyrGb7ggSndPSNTAqhecFglzJcJrI7I353K/L7w==
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=Mj+BfBn6GbWqGU5a2/q4jw/ngVvX580fXa9Cwon3VkM=;
 b=eRSGYfnCRrJXUOJsJJacjZzKc0gK+pyCDT2zWPBxnyJIDwGs0vDJ0NvpuRLuisWoeWnZiUs/DOW3wg5pKJJGKXOcCbN3yRXaPLwBwQ87FLuVR4jegZyCu6CWUjtcdYGLaJEInOgDwWTFqKti4NY6M89daa0DAj085Vio25Yk2F0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <32994472-5892-4eca-ae72-a7d1432d4f2b@amd.com>
Date: Mon, 23 Feb 2026 10:02:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 10/12] xen: Adjust break/fallthrough statements
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, "consulting @ bugseng . com"
	<consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-11-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260220214653.3497384-11-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD5:EE_|BL1PR12MB5801:EE_
X-MS-Office365-Filtering-Correlation-Id: 1d5ae539-04f7-4bc8-ccd8-08de72ba5875
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?UFowTXJpWkRmaDdMT0FvTjZBeW1najJUZ0hDK3JjMnVFSG5qQVRlSmxHV21Q?=
 =?utf-8?B?U1NXTWxUaGFkdmVMWDVtbE1VS2FKaXFVZ1VYNWFLbVc0dW5QTmo5V0xXaURi?=
 =?utf-8?B?TnlhU2NlQml6eFZqTGFYL2ZZT3BseTlQV2RCV2RJSjZicklnZnloZEdCaTJF?=
 =?utf-8?B?Q2RQQWlxUjJiS0dpc0VYanZIekpwWEhXOEFVbXJ3Y1F3eUFJMnM1emppeHA5?=
 =?utf-8?B?WTlYU01sWFVGaS91TFVxL0M3ckh0ODUrRkphVUNJT0FDaGtrT2tuSUtvTzZE?=
 =?utf-8?B?bzVOV0FRNDJJTWRNWFhoeVQ0L2gwblNGSFZqTmNZb004WERtZ3NKd1NQd25W?=
 =?utf-8?B?em1HMzl6ZnNKOXg3ZFQwQWhESzhNaGEyS2hCWXl3MzJ0L3orQVJEY0J5bUls?=
 =?utf-8?B?NVdGbi9HSzkrYnQ5N1VFMlNLbWhvQTFjSForZFpFamNaZEhiYmZVeG9SVWNt?=
 =?utf-8?B?NHBDalhiNEhvTklsaDdZMzVxeVNOSU9RMk1qQ0pzRHcxNStNb21RY2VSL2xI?=
 =?utf-8?B?cHYvbW1ESmtGVCtjNHBOWWdrZTgvaXorRE9ZMjN4cytJaUQ0aXIwb3NaK1hG?=
 =?utf-8?B?Y0tpNlZvVDM3RHppK0RqbFJhK1FlaGJld1k3S21veGhUaXJ5N0k0aUpaWlcx?=
 =?utf-8?B?NjJkN0R1M0VzYmxNODhPMjg4TThRZ1FlTEdmUXpVcng1THV6d2czOElydGtk?=
 =?utf-8?B?dWUvTjNvTk1wNVNjeVVaNnJFc25SRGxNOTMwK1ZPOStYbUdBYUdDUnROZW9N?=
 =?utf-8?B?K1lScFEwcmlFVmpDTDFrYnVqcmk0ZXplR1FabjM2OW1Kc1RaN05FcGlGTTJt?=
 =?utf-8?B?N01yV3JseGZ0VU1XN1FVQW9nbkhXdWU5VytxWlgxTlZOSDE2cFF3Tm1LNUti?=
 =?utf-8?B?UU9kUlViSGd1bkpqS2h0UWVsbVFlYmVQSUNNcGk4SzJaTk5yZ2hZRngxbW5s?=
 =?utf-8?B?L3JqUE9PQm4yWjJ3U1RkWkNFRUpyazI0bThvYmQ3RGhWMStKdWlOUXZsb3VZ?=
 =?utf-8?B?Z2tTNzRBTkpYWFZwSTR4WUFVWkJZQzFyR3FYUWcyNkhQR0c1WndkUnpCL1pS?=
 =?utf-8?B?ZFo4dkNMVnRXanBCemREZkNPQXZoY0ZidHRPZHZ3bzFKWTdQbGU0M0UvMmwv?=
 =?utf-8?B?bkNuOWlYSkl3VXh1RHBrNE1ycDB2K1V3N1RYbzU0MW4yTTZkQ05RVjYzbFh3?=
 =?utf-8?B?Si9VVTB0ejBncWsrcDNBNnMzZStrY01KTHpJbTdSbG44ZE5ZRys5WjhJbHlw?=
 =?utf-8?B?dW1tWW1WeWhETS9ZT2NsNlFTNS93ZC9RYXFzTHhOWUM4b2xoRnhtTC93QnYy?=
 =?utf-8?B?MnNGNDBrNk5hc3F3Wjk1bzdoYUR0NGV6eTlqaXdPMXFXSWFMejJRenF5Mlly?=
 =?utf-8?B?T2JLV1kzcEpNbEhKaTF5ckl2S0k4U292dlhneU1LSHoyM3BUeGxiSDh2T2s1?=
 =?utf-8?B?NEUrVjhSR0UwSEwrWlFHSFUzaG5uaFpQMjhLdjRuT21HTXllNkpGejUzQVdj?=
 =?utf-8?B?ZDZ4K3JOUlpJMTdDdHlkMGs0UzEvSUlUYjhrbWlQdmtjT0tsdWVTQm56VmVV?=
 =?utf-8?B?dzJYU3B0ZGV0WEpqMFVqUWdCbjFjMi9uUnZOd0YxajFHdnlnNDY0dEtPZnNr?=
 =?utf-8?B?Ujc1dGlpK2FRZk50NUJSMEJLVDZWMUhGMXR1cWZTSHBrb3dDQlVWOUFiZkV1?=
 =?utf-8?B?bDJRQzE1TGhRREc2Tm8wSnVIcHRoMWpORjh1Vmx3Tk1PVXJQVDgyMUduRHAr?=
 =?utf-8?B?Z2NXeHBJNjd2TFZMWUdiQm5vdThtUDVpWUJ5b1MxK0JvWDgyY3pzT1FRREk1?=
 =?utf-8?B?aDllMGQyKzRjYzJveGt2bDFQd3hJM1M0QXJ0YnVDRWFaaTFIK1RidlBhZjFK?=
 =?utf-8?B?dlJWY2FDT0czVDdqT3pxdFcyYThhVkxxazI2akNZVzBZdGlSSXdzVTVwOVBY?=
 =?utf-8?B?RWdUQnA2R3pDVkJBVHJPY00vYjBONnBkUFZvR3hoMUQybXc5YWM2TmxEaHhT?=
 =?utf-8?B?K2t2dVRsTGllcGo0VE9JZm95a0ZwZG5MT3NkcWdEMzU0L2dGU3I3c1lBL3Br?=
 =?utf-8?B?a2wxYVFTMnJRVjBZOE5RdlBiOUd1WDIrVzcwcWpoRVhyaUVxNjlrbkZqS25h?=
 =?utf-8?B?SGhzQjZVak10Y1NuSDBacWxlYmZ3MVB3QjJKWjU3elhxYnR2RzRwVU5XcUg4?=
 =?utf-8?B?ajF4WGFYVVZPSnlrZHFzanQxaHdHSGVSSnBEQXRyc2xqblVML1BiTlpRaGV5?=
 =?utf-8?B?RkxnUDdJWVZpb2t3VmhjOHY2SldBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	aPjBlkl9a/Tr0hUI2rl519vAnYG3jlE7iUvECXcz8bs1yE2FFeGy7+GJFXM9P+wmkBEPGdiqiJ0eBySechtzAUmbnn94a05uQsMjYutEXGo+Vp25TiFeKmB7+kg4xXBrioREzb7DR7x3qaEEfiNBZC8jXFeV8Oj7q7c5yXub3eE7xe1Jqma5OgNPvoal/KfgDZt+mSzeTOMXpYTCyfiyYtNCPufQqrrbh8XVCFjDW9Skq9fZiTVXK3C3QFK5VTjdcCrFepO/fvm9htCIl58iJT0PSNoqvffH+A608bfr5EeJ5wV7FjiwCHAsVlrcXoBDIH4S3ETdDGy7BD9Gbnu6FaK2xLe5rw9RkSOoUkvejn48UBZZhL5vSyvs6Ma/ivqqivpw08ZvyDAFHNfW3h7sqUgZdrKbcNyQ2MW86iBUf7uuoL5/eRn9Fx2QrjdR8vyS
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 09:03:00.6425
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1d5ae539-04f7-4bc8-ccd8-08de72ba5875
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECD5.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5801



On 20/02/2026 22:46, Andrew Cooper wrote:
> sh_destroy_shadow() has a spelling of fallthrough which doesn't match the
> permitted pattern.  Convert it to a real fallthrough (psedo)keyword.
> 
> Elsewhere, insert breaks at the end of the default statements.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 09:04:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 09:04:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238563.1540173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuRrw-0005N6-3t; Mon, 23 Feb 2026 09:04:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238563.1540173; Mon, 23 Feb 2026 09:04: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 1vuRrw-0005Mz-0s; Mon, 23 Feb 2026 09:04:44 +0000
Received: by outflank-mailman (input) for mailman id 1238563;
 Mon, 23 Feb 2026 09:04: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=r2fJ=A3=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuRru-0005Mr-MI
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 09:04:42 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id af3c7815-1096-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 10:04:39 +0100 (CET)
Received: from MN2PR15CA0038.namprd15.prod.outlook.com (2603:10b6:208:237::7)
 by DS0PR12MB7680.namprd12.prod.outlook.com (2603:10b6:8:11c::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 09:04:34 +0000
Received: from MN1PEPF0000ECDB.namprd02.prod.outlook.com
 (2603:10b6:208:237:cafe::da) by MN2PR15CA0038.outlook.office365.com
 (2603:10b6:208:237::7) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Mon,
 23 Feb 2026 09:04:18 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 MN1PEPF0000ECDB.mail.protection.outlook.com (10.167.242.139) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 09:04:34 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 03:04:34 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 03:04:32 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af3c7815-1096-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bcESkNInzBg6yod+EcfnkiexyfI/rPnzIzMzhRC+m4/egkxUTWSxIbPMfhRLBB5j8zIyeD7kKT7mss+WbcYStNPcB3elGhMbbRmCKjNihvGyDqbecK7qBFlGahCV1aP/hLXdBHSzgXsjRsq/Vv0s3ZAgtmf+WY2hJ6+fUFtNH3HWOduXJH+dp5UpS8xlMkh/fcZFbH71dFs/0AkrFvy0UKSiC+Q4M0AKSlnRtr3ekDO3kPp2Y5NeXzjMMlLm0/MBHL6mpVbnN+aub/lefg2kbelCRrdrXwqJL9jhbfP9W05IqAYTAnye+r/JxsRWV8L0RmMIu39oVdM8EQgif0E5Ag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/WslnBlJVT/iOwR3QlwkjRiZxNKUPxhK5H+scCwM+gE=;
 b=Z13M0PDFDjeXmUsyskrUblI5GOcwQ8odxbKzhpgJuPeOuCLttdhRHBY42yO9PY9Djc8BzloltFjaJ+lo6R0MBuXj48ffis3NYtW9Cuo0SKEFit/Cg9Hpmr/i1VliAVHqn8fgJ4PRKakExfCBgR2mZJ/VjkDmQtHsi8j51Be38ceqIicT+UT+wh6rvER9nZ5lAVKF6KjNoSL45KbMq1aWdQj8Lb5uvZhJPztaWwnMLJmCf1P0/9ogBjDC6zBsCEnwE3dS2FDjmcr2iWLs6G388aXqsZsL0hArUpHmh+sx1sVoCT8AKbmaov3KJldG6DChXD0RMR3IxBvk55WqK6NSkA==
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=/WslnBlJVT/iOwR3QlwkjRiZxNKUPxhK5H+scCwM+gE=;
 b=nqgssUDljo9bcdchIq0Ul/0bh6hvPOtvJPHh+9PBforBBLXKPJmBD33b9gxqlUsB3P+hMVbFMVnZc8Bscke454q1/b3sIB5xBPDgNr1t4lN4wLcqvBR/+dxJlvFUEXehNBYoXkq/Oqh6CyTk9DzW6wh1FpEtQa/Xla2+FFBeU38=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <d3a54b3b-7457-474e-9bfd-ab6f0b35331e@amd.com>
Date: Mon, 23 Feb 2026 10:04:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/12] xen: Bracket uses of macro parameters
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Jan Beulich <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, Julien
 Grall <julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>, "consulting @ bugseng . com"
	<consulting@bugseng.com>, Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-12-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260220214653.3497384-12-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECDB:EE_|DS0PR12MB7680:EE_
X-MS-Office365-Filtering-Correlation-Id: 213bdec1-4a34-4c06-c22e-08de72ba9057
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700013|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R3pnbnd6MnJrNUdKWm5iVlBZZ09NUjRkWHQ2QzRYQnFnc01mMS9RaWZjWmxp?=
 =?utf-8?B?ZVdXdFRHellibnd6QVNqM05ObDVmZGt5cTBtQmhVd1NLWGxMem9lQXY2b1RS?=
 =?utf-8?B?QnF5NVduV1BYZ1Z4RGQ4Y3haNE84a0c0MkZJQ20zRjdENVBha1hkL1hYMFpV?=
 =?utf-8?B?VjloUW5qODBVWUpLTHFBclYwNnJkUUVmdy90NVZqbzN1T0xJeEtXeTZOdTAw?=
 =?utf-8?B?a2ZERzVlSm5lWE9hZkhzNno2bHJLRWZpaFZrQnpVTittQmZ1dHprcVo0Ui8z?=
 =?utf-8?B?YlgyU2J5S3lqYlV2c1VnalkyQVBUanZ2QWo1THZ4VEZ4Rmt5bUFmd0ptQ2c4?=
 =?utf-8?B?dS81QU1BbGVHMGozeElzR0J2WGN0cVJvZTZoa2FpWGtPVE1EQjk4MStTL0Ex?=
 =?utf-8?B?RHhvR1Z4QmZvc015cmp1V3NHWk5xSTE1dWFYK244cDB1ZEg2N0pQZjV2ZWZR?=
 =?utf-8?B?ZUMzaitZcWovQ1FCaTdtZzVBNFc2ZC81ZHhQVjJFbmNuZ1pZWGNnaFdoMTd2?=
 =?utf-8?B?KzRjTXBYNTFhTW5GUitqVDhOUjM0c0xnaXJBMFF6ZHNkanpKdnZuK2dWNTJ6?=
 =?utf-8?B?aFJjZG5XMWl2dERIUkpXWmwzalp0NTdUb0xnNStaUGZoQTdNakRKSEhqZHM3?=
 =?utf-8?B?bGxvNmJQdUdxWVVac1BBUitSbTdPQzUzRld3ZlIxUldqUW5rTzVsYldlaWVF?=
 =?utf-8?B?c050Y01HTnM5ZCs1QVRUMVRHajVEMWVMOG1vdExkWW5IcXpUSGFRZG5XS0Ez?=
 =?utf-8?B?bjRZZ3Fnbi9aYVJydXJHeDh1NjhFSi9KcGdkbXQwY0pzNGNySllFSVpybU5v?=
 =?utf-8?B?cjhIdExFYzU2ZU80eWtmRVlBSkl4QVhpODBNVjJBTnhhMG8rMEhTOVpXMEsv?=
 =?utf-8?B?SkFIeDU3cXpIcTU4VXprZW80S0pKbEdzMzE5QTB0WVBNZFVobTRnSDBCWGhJ?=
 =?utf-8?B?RU1Kd1U1NDhGZTJFN21kQkk3UVZWN1dqbEp6WmtPelVQYzNMN2plM1U5TEFJ?=
 =?utf-8?B?TFhmeHA4NklaSVU3RklMbDFhME85K3lhczNqdFhpR3MrNVN3SlEzZUZjQ0x0?=
 =?utf-8?B?SWEvR09VWStwaDJCTEFzQ0tHT2FlZS95d0MrUWNZL25xSzJsM1Z1NDhJb1BU?=
 =?utf-8?B?cklmcWZaa0lZbUtCcStnbXV1VFhXVFRuczlmcmJjOG5TYzVhVEJSeGVZeWQr?=
 =?utf-8?B?REZBR2hqMUZFNWgvcGJraDJuZFRaaWtJVzNTTzliTk91ZlZGTTd4dlE2RE4x?=
 =?utf-8?B?d0E5YUl6andrYXpPL3hOZFNncVZFZWY2QnFCOGFlcXhWdWFRUDRWU2NvL3Zw?=
 =?utf-8?B?VnA0WkNyM213ZnZUOGt0Rlc2OGQ5VXpJdm5BMlQrSjVkallsMGJDbDMrVHh5?=
 =?utf-8?B?Q1pJRXBJRFk5b2tOOXdaQnhQeUw0MVBYNVp4aDROcDR5cFRiODlwOWxzZ003?=
 =?utf-8?B?NkIzeU54eVBrcXNhYXZpRjdzZ05ma2V0SThBWXcyelhkRGQyU1BSbndlaGtK?=
 =?utf-8?B?VkRRRVRYRXZNR0FkY1NLamMzRWl1aVRZYUNFZ2RjUVB0TDBZaG83OWZVeUI4?=
 =?utf-8?B?bHQ4TG9FeXpEdGI3YWdFbC9GNVc3dmJzUHZlZTIyOU5TdjlDM0YzUW1zOTUx?=
 =?utf-8?B?VStWUEY2ZEVnOXovK2VCa0xsU0VuYmJmVHA1N2NJbzl2K3l2U0NDY3dHMk5J?=
 =?utf-8?B?SEx4MVFYQkJjTlIyQnpJcWZBbFpwRUVuWTNZck1BS1Zyc0lndU01dGEzQlJB?=
 =?utf-8?B?SDR6MVVrSHcxcmhuMWtqRVU2aHp1aCswSjh3SzRvektVS1QxajZodFRlUVRZ?=
 =?utf-8?B?UWI1bW1LdXd3dGVkSzUvZ0IybzM1anNqR1N2ZnZZWXh3S0VjdTlFQlFWNno2?=
 =?utf-8?B?YU1YTG9JTVN3L1VycEdKcFFQNEtKQzNOeFdjYWFUamd0L2NlRlZDVzFmRElx?=
 =?utf-8?B?UTFpY1Mxank3clBEYnZKZ3o5K1lNSDJIbTJHaHhrcXI3d0RuenRtQmh2aDlG?=
 =?utf-8?B?dHZDVDVLbUc3YU5wdEZPZzVCSmxiV3JCSnpqZ1RUK1g4TEI0U3dJbTdBd2xt?=
 =?utf-8?B?Y3BzMk9xazRpT091TlZ0a0pKU3pScXlvQ291aWtPaHphbkhNYU9uQTA5bVN0?=
 =?utf-8?B?WDlCYzFGcmpmZnpzS05JV1o5NnpNcml2aUFidzN0djJORGk4cWFYbE9NU1BE?=
 =?utf-8?B?WWhhTE9mRTB3NHVVaWpucU40a1pxN0xmR0F0ZnlESVpRL1RuSFFDQStDSFVs?=
 =?utf-8?B?Vm41Nm9jY0l5SjRwSDdXb2tpaExBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(7416014)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/Pv2BIzERN9cL4txojgaq8Ogo0ayes0FuierRiDOBlzD866WlGCYUZB2YG2Q0+yjxudvRl9O+X76cxxc/m0eGvl6GDgMY4S3jlrs6wPddjic821jXCuoANM5q+wVbl8hx77ud4QGjVlv87uaLd6xqvRKgO8zUL7cgDdw6bTNahL3TEtnuX7wlJ6QmmD/eI2z6BPZKaH9ecoHJd12SjbxryGErkhBg60Ln7TuJh4USAhfbnoY4Jx8GopAqgoJgJpec1kCnqgm4Pf/dSbagHdLdxPYkmwoee0c8lkIxheBMC/jOFONs2FW7IncHQCUkBE6C31PybMkARrQ7unVLzIwJtOqokFT0pxTDvn3HqV5MBDrtCMu7YKM2twrnpu5falguivKEVW7IFv7xC5n/lUIIH/lwvWf9dZ7fPZhorXplyk97OdGA3HgNPiLUdszD84v
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 09:04:34.3911
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 213bdec1-4a34-4c06-c22e-08de72ba9057
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MN1PEPF0000ECDB.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7680



On 20/02/2026 22:46, Andrew Cooper wrote:
> Fixing Rule 20.7 violations.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 09:16:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 09:16:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238575.1540182 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuS2p-0007OQ-4H; Mon, 23 Feb 2026 09:15:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238575.1540182; Mon, 23 Feb 2026 09:15:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuS2p-0007OJ-1Q; Mon, 23 Feb 2026 09:15:59 +0000
Received: by outflank-mailman (input) for mailman id 1238575;
 Mon, 23 Feb 2026 09:15: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuS2m-0007OD-WF
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 09:15: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 421d4c3e-1098-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 10:15:55 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4377174e1ebso3077164f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 01:15:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c00db8sm17618744f8f.12.2026.02.23.01.15.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 01:15:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 421d4c3e-1098-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771838155; x=1772442955; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=AryWjovBpM3X9xg2oKuQbNVxztMg6n+XInojlx7jBbI=;
        b=WIRrZ6Jo9kZyc97pR8tEmDWAyYyscnS5ziyphUHZ+oW0kCogdJS2102Z7rbNJNUEND
         xSRh1MDY+wdiKvD4A/XFKoXHhQQRhJ56jEo3ScHlFkUWDDuj0jIbJPWWH5XnVdwBDOE+
         3/mMvpnfzTn4X9p9sP6pjxZ0u3bZZTYGZ4ZyVh8rI6mm95+t+x7nv/V2yI8VEWfNnffw
         qD6pZqonCa4u4BI35D0Zf4ESF2YiFOO4uykNk55l/ICHCmVKEO2QC5Cd6Ozq5m4NQmUE
         yGCiFni3bunhaDAJBCMAnieAH0XfAp5+aV84rUDo6iyvee2CBew7golZgGdR3DWg/EbG
         dQOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771838155; x=1772442955;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=AryWjovBpM3X9xg2oKuQbNVxztMg6n+XInojlx7jBbI=;
        b=SBzfoo6G6GgDaTiFXeK1yjGghBuH7k54YyB7Lar/JA2paURR7hrjmeVC23ibTfK/HK
         lC0f0uAMQXtL47CGLiaJ9FDrxnOTUqi7VNCzTx0JKp9HFGBV4bgK7ZMDM0Qbx4bHIGgG
         LiHS9l3qmA2HjxypJAJugG1tIz7HUWH91ZBsw9zaobyUgnu40J0cih1n9xJiYQ7vZRaU
         nZyMHe2Xe5ZgL8a6ZmVhhrkIAPphYg5dv9yxaY+DVSdSBSdDvSpD5+Lv5lwbl/QCQgQB
         HVLShDeXdoQ+uO+68M3gMViaJvcbEIxkOtgenCqIPhLF2sVI3iXOS4KDmqmCDs7j4tyU
         QgJg==
X-Forwarded-Encrypted: i=1; AJvYcCVkkhMKmApzV8556nfqCf76eZn7ffEE7/AxitfCx+p2hmChNP8hMKIGKXvKcndZNhZw/0QCjKIoxgo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YztZkisp/KUzWAivt2B8/nV2690zsnfw7wIlc/nCU59siIogTyO
	V5HjQ6NTfp7jkSbRNWS/3GCutEcqVzSf3fJwETScB0nnckhwV2WFQInzruTb+bbdaA==
X-Gm-Gg: ATEYQzwA4j3eFoJm0Egv6eF9lN7IHvTRKiec246E115Q6IIsG3LLhpn+VqS5BRx+mBU
	E6n0pkE77k0vFXr1q42mO4uWJlS+JsM92RQFbGx46urhc/V13ZKPqPy766kirUBGMGwnhH45cvV
	9fymB0dfX/Uj2nmhVQIaMqAkYCGvcoJ61r3jyVP1kvgoVwaN8oTuPC9W8oyTeZs8Gi7RX8ZpaJ8
	BGF6TcDAjITVmReBnIdvIF6xxeG97vLppnTdo3L36zqK9HVyP26zwhOKPlAYUh2LOai0IxWyLBh
	HrTJsh6wC/0CBUouFB8O8395rmIE4+o4Yo2tdPlz1ALkLn4A7rlyXwzUaL3N6VfmTYBmbc+BzxK
	GuqvQpIs9IxVTMvk3hX93pd8hz7gv7aPTb0PRwRfa0axzFJ7O5QsZE4wCksMOdd+fJWqtkCQnxz
	Um351tOAlcdGvJX64TGCTFlBzyOZD1ADROxGy1h9joDE/dAJSDoP7eppk2DM39cSU/sC/0bZceH
	x4It2TiIl3dF9Y=
X-Received: by 2002:a05:6000:615:b0:432:8504:8d5b with SMTP id ffacd0b85a97d-4396f194345mr13869111f8f.50.1771838155040;
        Mon, 23 Feb 2026 01:15:55 -0800 (PST)
Message-ID: <aad02d36-5b26-4a59-ac67-99757fe13679@suse.com>
Date: Mon, 23 Feb 2026 10:15:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 03/12] xen/argo: Fix MISRA violations around function
 parameters
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>,
 Christopher Clark <christopher.w.clark@gmail.com>,
 "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-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: <20260220214653.3497384-4-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 22:46, Andrew Cooper wrote:
> For the ARM build only, Eclair reports a R8.4 violation because do_argo_op()
> cannot see its declaration.  This means that x86 is picking hypercall-defs.h
> up transitively while ARM is not.  Include xen/hypercall.h explicitly.
> 
> Eclair also reports a R8.3 violation because of arg3 and arg4 differing in
> name with a raw_ prefix.  Because hypercall-defs.h generates both do_argo_op()
> and compat_argo_op() from a single description, it's not possible to simply
> rename to raw_ in the declaration, as that would force doing the same rename
> in compat_argo_op().
> 
> In do_argo_op(), drop the split parameter handling, and perform the 32bit
> range check via an explicit cast.  While adjusting the surrounding logic, drop
> unnecessary casts to void * for already pointer arguments in argo_printk().
> 
> 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>
> 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>
> CC: consulting@bugseng.com <consulting@bugseng.com>
> CC: Nicola Vetrini <nicola.vetrini@bugseng.com>

Further Cc-ing Argo maintainer / reviewer.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 09:21:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 09:21:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238584.1540192 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuS89-0000lM-LG; Mon, 23 Feb 2026 09:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238584.1540192; Mon, 23 Feb 2026 09:21:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuS89-0000lF-Ih; Mon, 23 Feb 2026 09:21:29 +0000
Received: by outflank-mailman (input) for mailman id 1238584;
 Mon, 23 Feb 2026 09:21: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuS87-0000l7-Ha
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 09:21:27 +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 0194bc82-1099-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 10:21:17 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-43945763558so2415309f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 01:21:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d4c96csm19597819f8f.30.2026.02.23.01.21.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 01:21:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0194bc82-1099-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771838476; x=1772443276; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+QmhRK5BMZEFA5WoJgAFV/ABpJNn2DSWDOAr613kQx8=;
        b=WOtraBDqmMqQXgn9nu9V0I9QpwGPOIrgILsC7a5RkKJn+AwnUG61IbFtvJ9Tw8PERX
         8Ruw3cqDKEgonj8hdfD+7J84uuaFQuBw+47XIX9VnoVud2ms52r9rdUnV5w/4rJ2EGEA
         pCYgUkhQVhZWQN63oA/kLdvmS2Ls4acUMbmCnIkJG9P6aD7UXIlm5xrkYO5v140VUGwS
         Kp5i6z47tGOIMk+ma0ozvS94GZgij5YvV8BGcQECGrW/U8xG06zLd73bxdLg+pgZ4Wt7
         7VSZPu6c563q5b/ep0rJ3wtY4GPqGxpUNrZYzSfcRbxOccNwa/L0JduowH7VspqPYv2U
         GqyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771838476; x=1772443276;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+QmhRK5BMZEFA5WoJgAFV/ABpJNn2DSWDOAr613kQx8=;
        b=N6phIzF/K+iqTDg40w0pGad2jl56DtGMK1JiLEeXbw2qSoJP9aRIfmE4YNxmbvQzPI
         icA1x0RR4XAlz/yTcaIVf6+SysUO94UOp2ycaOwZFU7SQFs8ImPRpsVL47x7j7xL3h3N
         s27xPQsZTlNnAuWrtYeSvLFXy2GqPpKVY4L0TXruH7JlPj1l8JnPZDKmSCtZ43zA28Eh
         K9mydkkdHwZ0mstZzPr8J2MsqE3zu6dEZ4xOyctiGFFJug0gcdwkSH+ZmvvJVNv75wTS
         pedh1MgaoYMX2lqLts72JytI02EflKQz3B5gQqCkRCbBE7abWVjTRPBgb3RgW7YeDGd0
         RNUw==
X-Forwarded-Encrypted: i=1; AJvYcCUYB/7TLlZ0LYvBnIGN97l0TXGvC3+eK0q5vUha/VMTCE2B39SmdQQeHgCgDqKJTTjNBdmO0AkYFvw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoyF9KaX8Jzue/A9sgbz2U3EATPXkVHS/muZ0JrRw3TQ4hilz6
	OOk1yJHjr0edOYjsOlrbV2krRdcCJOEliVgnRNNG4PlhCBotBivcUDkqRC5EW9NItg==
X-Gm-Gg: ATEYQzwN5zBP+8jd+ev2tklqHDHT3Odra2qGqfTWNYwxYhZf+ggSQ80UGLPF3KWM7Go
	8I0lVG6Qr+xJdOU6z2RZKS7NKlgBdKLfLTHV8W1i7le4ABEu8CBefpUo0bCBlvv7JgXL2puZvxV
	Rhah5BNvh0BlaBqqVXh3DlBZbFxESSUGd649ZSjoJBr0rxwFDkwrHJveDNvEuydBysAV5izpZc3
	wsJ9JTugWxlW7N6T5z2tJzP76JV5DxJ8GtWD7gdIK8NF1Ufsu15QugPd4Y7kGnd5THDZR21kvds
	fShyzbOa3J2Msttq1y4esY56R4U2Zqft+QWXZMYAoTdOb+mYOsa+XzIeu9WlRbqb2JTFfA3jEyu
	GwNs/1sNYmZmqKvAayDLUQqjf8t14xkWPex0SIgzz7xsAv9ocxvnT5omjA67hrnWDu3Zrfvx0FJ
	5Ix/TjiyhT3otFCYgR9StQ/MRD/tgeOEUY4FVcBlSCaq43kO5H2TSDXUbLbmzb6u5ZSzVhUV7Id
	yNbPHnK49RxZEo=
X-Received: by 2002:a05:6000:288c:b0:439:5c09:4854 with SMTP id ffacd0b85a97d-4396f19e75amr15264053f8f.41.1771838476315;
        Mon, 23 Feb 2026 01:21:16 -0800 (PST)
Message-ID: <80743dab-4c71-40e2-bf09-789cc7ebbb28@suse.com>
Date: Mon, 23 Feb 2026 10:21:17 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 05/12] x86: Adjust annotations of asm-used identifiers
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-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: <20260220214653.3497384-6-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.02.2026 22:46, Andrew Cooper wrote:
> do_entry_int82() is only called by assembly so gains asmlinkage.
> 
> pvh_start_info_pa and early_hypercall_insn are data used by assembly, and need
> a SAF-1 annotation.

Why not use asmlinkage there as well? The deviation covering it as much as SAF-1-safe
say "only" (which doesn't fully apply here), so if in doubt is should be asmlinkage?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 09:38:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 09:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238594.1540208 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSOp-0002yM-9A; Mon, 23 Feb 2026 09:38:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238594.1540208; Mon, 23 Feb 2026 09:38: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 1vuSOp-0002xa-3Y; Mon, 23 Feb 2026 09:38:43 +0000
Received: by outflank-mailman (input) for mailman id 1238594;
 Mon, 23 Feb 2026 09:38: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=+Xtg=A3=bounce.vates.tech=bounce-md_30504962.699c201e.v1-dde5a2ce1b074551b450dbac9523d23a@srs-se1.protection.inumbo.net>)
 id 1vuSOo-0002vD-ET
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 09:38:42 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6eabb233-109b-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 10:38:39 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fKG4t1KWrz5QkLdk
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 09:38:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 dde5a2ce1b074551b450dbac9523d23a; Mon, 23 Feb 2026 09:38: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: 6eabb233-109b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771839518; x=1772109518;
	bh=/R/ehowVjGJDfMqCUH806hPdMzW6V7gcOMrwhVu20g4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=KjOBA5yuKAoNMsc/O8Vl9X09BOAi4SaBU6RNOuTj3qFJWqmimKYLE1paJYMcakRXc
	 Vk/zk7XOb8mHKXtHC3F6uq+iK69u1UXmOHdd9rYHgGXpRLe51eXoDzS+s0+Fw5hYTp
	 6y3TNtajuL1lUY8FSXNA5pZkxs8BFazvI7ZgaGRphIULSwlmmFEnegRkYoJTSXMzxQ
	 LnOeeQLp01b9CMJphLPicu+ZDQetnUFpUdboBCUKZywngUnlTQh4k8jporTFHJ4sO4
	 ZXHLenWLrPNFMbegXMY1PMv0tVpobNbDyu0BIPueEu+7Pxa9C6pcpuA26bBWVw/DJC
	 2c0v4f3sshL+Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771839518; x=1772100018; i=julian.vetter@vates.tech;
	bh=/R/ehowVjGJDfMqCUH806hPdMzW6V7gcOMrwhVu20g4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=Bmi0xsuNZA4+bQieNBuOtsXUcGFD4GMo3PE3pNFLSuSxeuKyRPmlgBmbxf7SkaGaw
	 ljbgYxlqnKVmOvKzVFjatj3p4/Py4Q0We8CVgwplBvISqblzkSW7Arb8+qMM6ijeEi
	 bSWKU1H6y6tVOBq592d9R/YcvFV86R2X0MwtIoQrv79BMydFEssLFNosN4240/7gl6
	 7H8CKatikf8SFj5V0o+9OHK53xmAkzbjmkZzfXiAB69caL0gpWFPmUSbLf+BsHPVDY
	 GDN33bivMl9wac8pf1par2Zgch0AQsAWd5uzkjDZc7DULrbacSzTOqP3EKX1HomiF+
	 SEBAXfsOPFa8A==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=201/2]=20x86/ioreq:=20Prepare=20spacing=20for=20upcoming=20patch?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771839516797
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260223093831.475769-1-julian.vetter@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.dde5a2ce1b074551b450dbac9523d23a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260223:md
Date: Mon, 23 Feb 2026 09:38:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

This patch just changes indentation, to make the next patch easier to
review.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v3:
- No changes to this patch
- Dropped patch "1/3 x86/ioreq: Add missing put_page_alloc_ref(page)"
---
 xen/arch/x86/hvm/ioreq.c | 86 ++++++++++++++++++++++------------------
 1 file changed, 47 insertions(+), 39 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index a5fa97e149..5ebc48dbd4 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -125,14 +125,16 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return;
+    {
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return;
 
-    destroy_ring_for_helper(&iorp->va, iorp->page);
-    iorp->page = NULL;
+        destroy_ring_for_helper(&iorp->va, iorp->page);
+        iorp->page = NULL;
 
-    hvm_free_ioreq_gfn(s, iorp->gfn);
-    iorp->gfn = INVALID_GFN;
+        hvm_free_ioreq_gfn(s, iorp->gfn);
+        iorp->gfn = INVALID_GFN;
+    }
 }
 
 static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
@@ -141,34 +143,36 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     int rc;
 
-    if ( iorp->page )
     {
-        /*
-         * If a page has already been allocated (which will happen on
-         * demand if ioreq_server_get_frame() is called), then
-         * mapping a guest frame is not permitted.
-         */
-        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-            return -EPERM;
-
-        return 0;
-    }
+        if ( iorp->page )
+        {
+            /*
+             * If a page has already been allocated (which will happen on
+             * demand if ioreq_server_get_frame() is called), then
+             * mapping a guest frame is not permitted.
+             */
+            if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+                return -EPERM;
+
+            return 0;
+        }
 
-    if ( d->is_dying )
-        return -EINVAL;
+        if ( d->is_dying )
+            return -EINVAL;
 
-    iorp->gfn = hvm_alloc_ioreq_gfn(s);
+        iorp->gfn = hvm_alloc_ioreq_gfn(s);
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return -ENOMEM;
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return -ENOMEM;
 
-    rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
-                                 &iorp->va);
+        rc = prepare_ring_for_helper(d, gfn_x(iorp->gfn), &iorp->page,
+                                     &iorp->va);
 
-    if ( rc )
-        hvm_unmap_ioreq_gfn(s, buf);
+        if ( rc )
+            hvm_unmap_ioreq_gfn(s, buf);
 
-    return rc;
+        return rc;
+    }
 }
 
 static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
@@ -176,12 +180,14 @@ static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
     struct domain *d = s->target;
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return;
+    {
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return;
 
-    if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
-        domain_crash(d);
-    clear_page(iorp->va);
+        if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
+            domain_crash(d);
+        clear_page(iorp->va);
+    }
 }
 
 static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
@@ -190,16 +196,18 @@ static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
     struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
     int rc;
 
-    if ( gfn_eq(iorp->gfn, INVALID_GFN) )
-        return 0;
+    {
+        if ( gfn_eq(iorp->gfn, INVALID_GFN) )
+            return 0;
 
-    clear_page(iorp->va);
+        clear_page(iorp->va);
 
-    rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
-    if ( rc == 0 )
-        paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
+        rc = p2m_add_page(d, iorp->gfn, page_to_mfn(iorp->page), 0, p2m_ram_rw);
+        if ( rc == 0 )
+            paging_mark_pfn_dirty(d, _pfn(gfn_x(iorp->gfn)));
 
-    return rc;
+        return rc;
+    }
 }
 
 int arch_ioreq_server_map_pages(struct ioreq_server *s)
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 09:38:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 09:38:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238593.1540203 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSOp-0002vQ-0G; Mon, 23 Feb 2026 09:38:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238593.1540203; Mon, 23 Feb 2026 09: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 1vuSOo-0002vJ-TO; Mon, 23 Feb 2026 09:38:42 +0000
Received: by outflank-mailman (input) for mailman id 1238593;
 Mon, 23 Feb 2026 09: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=SUs7=A3=bounce.vates.tech=bounce-md_30504962.699c201e.v1-103dbd66c198486fa7c8d91351ced15a@srs-se1.protection.inumbo.net>)
 id 1vuSOn-0002v7-J8
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 09:38:41 +0000
Received: from mail186-12.suw21.mandrillapp.com
 (mail186-12.suw21.mandrillapp.com [198.2.186.12])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ecedb2c-109b-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 10:38:39 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-12.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4fKG4t369Wz705b1G
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 09:38:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 103dbd66c198486fa7c8d91351ced15a; Mon, 23 Feb 2026 09:38: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: 6ecedb2c-109b-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771839518; x=1772109518;
	bh=M3N/w8dgY0K6W/T6qtHBo2kxcGtEBlKcTIwufvqXy/k=;
	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=jBxVgrJLgfRUuTDhPqPhXH0SGqHO63xegArSj108W0jZO8dA3Wz5v/3R2jhLq91Q+
	 sgkQgy3CuvnR79r6hKpKVzQpoNFqOgUI2Rjpasp9OyTRfdQPd4ofK+x8uv1hYD5wwO
	 KsdDxgBoCtR5TyfVL+cRLK1zW8OTMYVtd110DLodHPWYwlkYWoNTPBcHtceTWvR5dm
	 VyWnz2G0skBq8ewsJsCg7xCP5NEeDM3lobB3JSDb5lh8W2Vt7A7ZTD4Qbkzi97zdfD
	 aXXZ6Zh05HFdz2fBi3zdTrQvoGn1i5/BkAFf537zAO2mkKSWc1nRWuNiunuj1Kogus
	 TshklKBcxmLZA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771839518; x=1772100018; i=julian.vetter@vates.tech;
	bh=M3N/w8dgY0K6W/T6qtHBo2kxcGtEBlKcTIwufvqXy/k=;
	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=13FToqzOG04yIxmYoD/0kBw83382TZJKvTI811h2Rn9CDdU1q8zc6TJvgdY4vJl+M
	 uw1e8BC4/Ei4AEm1A/RgrDzq7cTha/FKPRuzu0+BBpq4OTXqK6iWvm8lT9BpZkcJPu
	 xDw9a98QaiydL6PFaryCzH45UCII2U+fmuIy5SuXMbz0QWSFtVNtjieY1Vcnf2QaBt
	 jhODg5LtbnAnqalSEmjuJS9y9kn4ZL9P1GCdxYpQHkc+wOxXTIwUXjUq6PJyfqqmHf
	 1XkCNVtdBBhT/HzEvdRtTosmM4UhhqWt1Rd6bZrgp8fQ/kzQObO6wJA0lGsF7Ydfei
	 ge0LDehmvRrnw==
From: "Julian Vetter" <julian.vetter@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v3=202/2]=20x86/ioreq:=20Extend=20ioreq=20server=20to=20support=20multiple=20ioreq=20pages?=
X-Mailer: git-send-email 2.51.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771839517165
To: 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>, "Julian Vetter" <julian.vetter@vates.tech>
Message-Id: <20260223093831.475769-2-julian.vetter@vates.tech>
In-Reply-To: <20260223093831.475769-1-julian.vetter@vates.tech>
References: <20260223093831.475769-1-julian.vetter@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.103dbd66c198486fa7c8d91351ced15a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260223:md
Date: Mon, 23 Feb 2026 09:38:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

A single shared ioreq page provides PAGE_SIZE/sizeof(ioreq_t) = 128
slots, limiting HVM guests to 128 vCPUs. To support more vCPUs, extend
the ioreq server to use xvzalloc_array() for allocating a contiguous
virtual array of ioreq_t slots sized to d->max_vcpus, backed by
potentially non-contiguous physical pages.

For the GFN-mapped path (x86), page and writable type references are
obtained directly via check_get_page_from_gfn() and get_page_type() for
each GFN. The pages are then combined into a single contiguous VA using
vmap(). The number of ioreq pages is computed at runtime via
nr_ioreq_pages(d) = DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE), so
small VMs only allocate one page. All existing single-page paths
(bufioreq, legacy clients) remain unchanged.

Mark the now-unused shared_iopage_t in the public header as deprecated.

Signed-off-by: Julian Vetter <julian.vetter@vates.tech>
---
Changes in v3:
- Replaced prepare_ring_for_helper + unmap_domain_page_global by
  check_get_page_from_gfn + get_page_type
---

 xen/arch/x86/hvm/ioreq.c       | 208 ++++++++++++++++++++++++++++++++-
 xen/common/ioreq.c             |  95 +++++++++++----
 xen/include/public/hvm/ioreq.h |   5 +
 xen/include/xen/ioreq.h        |  13 ++-
 4 files changed, 295 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
index 5ebc48dbd4..a042866967 100644
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -11,10 +11,12 @@
 #include <xen/ioreq.h>
 #include <xen/irq.h>
 #include <xen/lib.h>
+#include <xen/p2m-common.h>
 #include <xen/paging.h>
 #include <xen/sched.h>
 #include <xen/softirq.h>
 #include <xen/trace.h>
+#include <xen/vmap.h>
 #include <xen/vpci.h>
 
 #include <asm/hvm/emulate.h>
@@ -89,6 +91,39 @@ static gfn_t hvm_alloc_ioreq_gfn(struct ioreq_server *s)
     return hvm_alloc_legacy_ioreq_gfn(s);
 }
 
+static gfn_t hvm_alloc_ioreq_gfns(struct ioreq_server *s,
+                                  unsigned int nr_pages)
+{
+    struct domain *d = s->target;
+    unsigned long mask;
+    unsigned int i, run;
+
+    if ( nr_pages == 1 )
+        return hvm_alloc_ioreq_gfn(s);
+
+    /* Find nr_pages consecutive set bits */
+    mask = d->arch.hvm.ioreq_gfn.mask;
+
+    for ( i = 0, run = 0; i < BITS_PER_LONG; i++ )
+    {
+        if ( !test_bit(i, &mask) )
+            run = 0;
+        else if ( ++run == nr_pages )
+        {
+            /* Found a run - clear all bits and return base GFN */
+            unsigned int start = i - nr_pages + 1;
+            unsigned int j;
+
+            for ( j = start; j <= i; j++ )
+                clear_bit(j, &d->arch.hvm.ioreq_gfn.mask);
+
+            return _gfn(d->arch.hvm.ioreq_gfn.base + start);
+        }
+    }
+
+    return INVALID_GFN;
+}
+
 static bool hvm_free_legacy_ioreq_gfn(struct ioreq_server *s,
                                       gfn_t gfn)
 {
@@ -121,11 +156,23 @@ static void hvm_free_ioreq_gfn(struct ioreq_server *s, gfn_t gfn)
     }
 }
 
+static void hvm_free_ioreq_gfns(struct ioreq_server *s, gfn_t gfn,
+                                unsigned int nr_pages)
+{
+    unsigned int i;
+
+    for ( i = 0; i < nr_pages; i++ )
+        hvm_free_ioreq_gfn(s, gfn_add(gfn, i));
+}
+
 static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( gfn_eq(iorp->gfn, INVALID_GFN) )
             return;
 
@@ -134,16 +181,41 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
 
         hvm_free_ioreq_gfn(s, iorp->gfn);
         iorp->gfn = INVALID_GFN;
+        return;
     }
+
+    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+        return;
+
+    nr_pages = nr_ioreq_pages(s->target);
+
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct page_info *pg = vmap_to_page((char *)s->ioreq +
+                                            i * PAGE_SIZE);
+
+        put_page_and_type(pg);
+        put_page(pg);
+    }
+    vunmap(s->ioreq);
+    s->ioreq = NULL;
+
+    hvm_free_ioreq_gfns(s, s->ioreq_gfn, nr_pages);
+    s->ioreq_gfn = INVALID_GFN;
 }
 
 static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages;
+    gfn_t base_gfn;
+    mfn_t *mfns;
     int rc;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( iorp->page )
         {
             /*
@@ -173,30 +245,132 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
 
         return rc;
     }
+
+    /* ioreq: multi-page with contiguous VA */
+    if ( s->ioreq )
+    {
+        if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+            return -EPERM;
+        return 0;
+    }
+
+    if ( d->is_dying )
+        return -EINVAL;
+
+    nr_pages = nr_ioreq_pages(d);
+    base_gfn = hvm_alloc_ioreq_gfns(s, nr_pages);
+
+    if ( gfn_eq(base_gfn, INVALID_GFN) )
+        return -ENOMEM;
+
+    mfns = xmalloc_array(mfn_t, nr_pages);
+    if ( !mfns )
+    {
+        hvm_free_ioreq_gfns(s, base_gfn, nr_pages);
+        return -ENOMEM;
+    }
+
+    /*
+     * Obtain a page reference and writable type reference for each GFN.
+     * No per-page VA is needed; all pages are mapped as a single contiguous
+     * VA via vmap() below.
+     */
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        struct page_info *pg;
+        p2m_type_t p2mt;
+
+        rc = check_get_page_from_gfn(d, _gfn(gfn_x(base_gfn) + i),
+                                     false, &p2mt, &pg);
+        if ( rc )
+        {
+            if ( rc == -EAGAIN )
+                rc = -ENOENT;
+            goto fail;
+        }
+
+        if ( !get_page_type(pg, PGT_writable_page) )
+        {
+            put_page(pg);
+            rc = -EINVAL;
+            goto fail;
+        }
+
+        mfns[i] = page_to_mfn(pg);
+    }
+
+    /* Map all mfns as single contiguous VA */
+    s->ioreq = vmap(mfns, nr_pages);
+    if ( !s->ioreq )
+    {
+        rc = -ENOMEM;
+        goto fail;
+    }
+
+    s->ioreq_gfn = base_gfn;
+    xfree(mfns);
+
+    return 0;
+
+ fail:
+    while ( i-- > 0 )
+    {
+        struct page_info *pg = mfn_to_page(mfns[i]);
+
+        put_page_and_type(pg);
+        put_page(pg);
+    }
+    hvm_free_ioreq_gfns(s, base_gfn, nr_pages);
+    xfree(mfns);
+
+    return rc;
 }
 
 static void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( gfn_eq(iorp->gfn, INVALID_GFN) )
             return;
 
         if ( p2m_remove_page(d, iorp->gfn, page_to_mfn(iorp->page), 0) )
             domain_crash(d);
         clear_page(iorp->va);
+        return;
+    }
+
+    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+        return;
+
+    nr_pages = nr_ioreq_pages(d);
+
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        gfn_t gfn = gfn_add(s->ioreq_gfn, i);
+        struct page_info *pg = vmap_to_page((char *)s->ioreq +
+                                            i * PAGE_SIZE);
+
+        if ( p2m_remove_page(d, gfn, page_to_mfn(pg), 0) )
+            domain_crash(d);
     }
+    memset(s->ioreq, 0, nr_pages * PAGE_SIZE);
 }
 
 static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
 {
     struct domain *d = s->target;
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    unsigned int i, nr_pages;
     int rc;
 
+    if ( buf )
     {
+        struct ioreq_page *iorp = &s->bufioreq;
+
         if ( gfn_eq(iorp->gfn, INVALID_GFN) )
             return 0;
 
@@ -208,6 +382,32 @@ static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
 
         return rc;
     }
+
+    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+        return 0;
+
+    nr_pages = nr_ioreq_pages(d);
+    memset(s->ioreq, 0, nr_pages * PAGE_SIZE);
+
+    for ( i = 0; i < nr_pages; i++ )
+    {
+        gfn_t gfn = gfn_add(s->ioreq_gfn, i);
+        struct page_info *pg = vmap_to_page((char *)s->ioreq +
+                                            i * PAGE_SIZE);
+
+        rc = p2m_add_page(d, gfn, page_to_mfn(pg), 0, p2m_ram_rw);
+        if ( rc )
+            /*
+             * No rollback of previously added pages: The caller
+             * (arch_ioreq_server_disable) has no error handling path,
+             * and partial failure here will be cleaned up when the
+             * ioreq server is eventually destroyed.
+             */
+            return rc;
+
+        paging_mark_pfn_dirty(d, _pfn(gfn_x(gfn)));
+    }
+    return 0;
 }
 
 int arch_ioreq_server_map_pages(struct ioreq_server *s)
diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c
index f5fd30ce12..3800c8c62a 100644
--- a/xen/common/ioreq.c
+++ b/xen/common/ioreq.c
@@ -26,6 +26,7 @@
 #include <xen/paging.h>
 #include <xen/sched.h>
 #include <xen/trace.h>
+#include <xen/xvmalloc.h>
 
 #include <asm/guest_atomics.h>
 #include <asm/ioreq.h>
@@ -95,12 +96,10 @@ static struct ioreq_server *get_ioreq_server(const struct domain *d,
 
 static ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
 {
-    shared_iopage_t *p = s->ioreq.va;
-
     ASSERT((v == current) || !vcpu_runnable(v));
-    ASSERT(p != NULL);
+    ASSERT(s->ioreq != NULL);
 
-    return &p->vcpu_ioreq[v->vcpu_id];
+    return &s->ioreq[v->vcpu_id];
 }
 
 /*
@@ -260,9 +259,32 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
 
 static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
+    struct ioreq_page *iorp;
     struct page_info *page;
 
+    if ( !buf )
+    {
+        if ( s->ioreq )
+        {
+            /*
+             * If a guest frame has already been mapped (which may happen
+             * on demand if ioreq_server_get_info() is called), then
+             * allocating a page is not permitted.
+             */
+            if ( !gfn_eq(s->ioreq_gfn, INVALID_GFN) )
+                return -EPERM;
+
+            return 0;
+        }
+
+        s->ioreq = xvzalloc_array(ioreq_t, s->target->max_vcpus);
+
+        return s->ioreq ? 0 : -ENOMEM;
+    }
+
+    /* bufioreq: single page allocation */
+    iorp = &s->bufioreq;
+
     if ( iorp->page )
     {
         /*
@@ -308,8 +330,17 @@ static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
 
 static void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
 {
-    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
-    struct page_info *page = iorp->page;
+    struct ioreq_page *iorp;
+    struct page_info *page;
+
+    if ( !buf )
+    {
+        XVFREE(s->ioreq);
+        return;
+    }
+
+    iorp = &s->bufioreq;
+    page = iorp->page;
 
     if ( !page )
         return;
@@ -333,11 +364,29 @@ bool is_ioreq_server_page(struct domain *d, const struct page_info *page)
 
     FOR_EACH_IOREQ_SERVER(d, id, s)
     {
-        if ( (s->ioreq.page == page) || (s->bufioreq.page == page) )
+        if ( s->bufioreq.page == page )
         {
             found = true;
             break;
         }
+
+        if ( s->ioreq )
+        {
+            unsigned int i;
+
+            for ( i = 0; i < nr_ioreq_pages(d); i++ )
+            {
+                if ( vmap_to_page((char *)s->ioreq +
+                                  i * PAGE_SIZE) == page )
+                {
+                    found = true;
+                    break;
+                }
+            }
+
+            if ( found )
+                break;
+        }
     }
 
     rspin_unlock(&d->ioreq_server.lock);
@@ -350,7 +399,7 @@ static void ioreq_server_update_evtchn(struct ioreq_server *s,
 {
     ASSERT(spin_is_locked(&s->lock));
 
-    if ( s->ioreq.va != NULL )
+    if ( s->ioreq != NULL )
     {
         ioreq_t *p = get_ioreq(s, sv->vcpu);
 
@@ -590,7 +639,7 @@ static int ioreq_server_init(struct ioreq_server *s,
     INIT_LIST_HEAD(&s->ioreq_vcpu_list);
     spin_lock_init(&s->bufioreq_lock);
 
-    s->ioreq.gfn = INVALID_GFN;
+    s->ioreq_gfn = INVALID_GFN;
     s->bufioreq.gfn = INVALID_GFN;
 
     rc = ioreq_server_alloc_rangesets(s, id);
@@ -769,7 +818,7 @@ static int ioreq_server_get_info(struct domain *d, ioservid_t id,
     }
 
     if ( ioreq_gfn )
-        *ioreq_gfn = gfn_x(s->ioreq.gfn);
+        *ioreq_gfn = gfn_x(s->ioreq_gfn);
 
     if ( HANDLE_BUFIOREQ(s) )
     {
@@ -812,26 +861,30 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
     if ( rc )
         goto out;
 
-    switch ( idx )
+    if ( idx == XENMEM_resource_ioreq_server_frame_bufioreq)
     {
-    case XENMEM_resource_ioreq_server_frame_bufioreq:
         rc = -ENOENT;
         if ( !HANDLE_BUFIOREQ(s) )
             goto out;
 
         *mfn = page_to_mfn(s->bufioreq.page);
         rc = 0;
-        break;
-
-    case XENMEM_resource_ioreq_server_frame_ioreq(0):
-        *mfn = page_to_mfn(s->ioreq.page);
-        rc = 0;
-        break;
+    }
+    else if (( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) ) &&
+             ( idx < XENMEM_resource_ioreq_server_frame_ioreq(nr_ioreq_pages(d)) ))
+    {
+        unsigned int page_idx = idx - XENMEM_resource_ioreq_server_frame_ioreq(0);
 
-    default:
         rc = -EINVAL;
-        break;
+        if ( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) &&
+             page_idx < nr_ioreq_pages(d) && s->ioreq )
+        {
+            *mfn = vmap_to_mfn((char *)s->ioreq + page_idx * PAGE_SIZE);
+            rc = 0;
+        }
     }
+    else
+        rc = -EINVAL;
 
  out:
     rspin_unlock(&d->ioreq_server.lock);
diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
index 7a6bc760d0..1c1a9e61ae 100644
--- a/xen/include/public/hvm/ioreq.h
+++ b/xen/include/public/hvm/ioreq.h
@@ -49,6 +49,11 @@ struct ioreq {
 };
 typedef struct ioreq ioreq_t;
 
+/*
+ * Deprecated: shared_iopage is no longer used by Xen internally.
+ * The ioreq server now uses a dynamically sized ioreq_t array
+ * to support more than 128 vCPUs.
+ */
 struct shared_iopage {
     struct ioreq vcpu_ioreq[1];
 };
diff --git a/xen/include/xen/ioreq.h b/xen/include/xen/ioreq.h
index e86f0869fa..a4c7621f3f 100644
--- a/xen/include/xen/ioreq.h
+++ b/xen/include/xen/ioreq.h
@@ -19,9 +19,19 @@
 #ifndef __XEN_IOREQ_H__
 #define __XEN_IOREQ_H__
 
+#include <xen/macros.h>
 #include <xen/sched.h>
 
 #include <public/hvm/dm_op.h>
+#include <public/hvm/ioreq.h>
+
+/* 4096 / 32 = 128 ioreq slots per page */
+#define IOREQS_PER_PAGE  (PAGE_SIZE / sizeof(ioreq_t))
+
+static inline unsigned int nr_ioreq_pages(const struct domain *d)
+{
+    return DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE);
+}
 
 struct ioreq_page {
     gfn_t gfn;
@@ -45,7 +55,8 @@ struct ioreq_server {
     /* Lock to serialize toolstack modifications */
     spinlock_t             lock;
 
-    struct ioreq_page      ioreq;
+    ioreq_t                *ioreq;
+    gfn_t                  ioreq_gfn;
     struct list_head       ioreq_vcpu_list;
     struct ioreq_page      bufioreq;
 
-- 
2.51.0



--
Julian Vetter | Vates Hypervisor & Kernel Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:05:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238614.1540223 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSoN-0007Xv-8q; Mon, 23 Feb 2026 10:05:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238614.1540223; Mon, 23 Feb 2026 10:05: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 1vuSoN-0007Xo-5b; Mon, 23 Feb 2026 10:05:07 +0000
Received: by outflank-mailman (input) for mailman id 1238614;
 Mon, 23 Feb 2026 10:05: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSoL-0007XS-Dm
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:05:05 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1f3959e5-109f-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:05:04 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id AC20141202E0;
 Mon, 23 Feb 2026 05:04:44 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1f3959e5-109f-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 1/4] tools/tests/x86_emulator: fix 'shifting a negative signed value is undefined'
Date: Mon, 23 Feb 2026 10:04:52 +0000
Message-ID: <c908071f1c5293e6f87c67a982adb377b0912ccb.1771840208.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840208.git.edwin.torok@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

clang-21 refuses to compile this:
```
test_x86_emulator.c:1164:24: error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value]
 1164 |     regs.r8     = (-1L << 40) + 1;
      |                    ~~~ ^
1 error generated.
```

The shift could also exceed the width of the type on some systems.
I confirmed that both the old and the new code would produce the same value
with GCC on x86-64: `0xffffff0000000001`.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/x86_emulator/test_x86_emulator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c
index 39e8056d77..a25eca1634 100644
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -1161,7 +1161,7 @@ int main(int argc, char **argv)
     instr[0] = 0x4d; instr[1] = 0x0f; instr[2] = 0xbb; instr[3] = 0x03;
     regs.eflags = EFLAGS_ALWAYS_SET;
     regs.rip    = (unsigned long)&instr[0];
-    regs.r8     = (-1L << 40) + 1;
+    regs.r8     = (~0ULL << 40) + 1;
     regs.r11    = (unsigned long)(res + (1L << 35));
     rc = x86_emulate(&ctxt, &emulops);
     if ( (rc != X86EMUL_OKAY) ||
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:05:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238616.1540244 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSoO-0007yH-Nw; Mon, 23 Feb 2026 10:05:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238616.1540244; Mon, 23 Feb 2026 10:05: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 1vuSoO-0007yA-Hl; Mon, 23 Feb 2026 10:05:08 +0000
Received: by outflank-mailman (input) for mailman id 1238616;
 Mon, 23 Feb 2026 10:05: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSoM-0007Xe-Li
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:05:06 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1ed4dfb6-109f-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:05:03 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id E3F9241202D4;
 Mon, 23 Feb 2026 05:04:43 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1ed4dfb6-109f-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 0/4] Fix building tools/tests/x86_emulator with clang-21
Date: Mon, 23 Feb 2026 10:04:51 +0000
Message-ID: <cover.1771840208.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

While working on another patch series I noticed that `clang-21` cannot
build `tools/tests/x86_emulator`. Once I fixed that `xmm0` related tests
failed, because `clang` doesn't support `-ffixed-xmm0`.

This series fixes building and running the test with `clang`.

There might still be some latent bugs in the tests though, i.e. `xmm0` may not
be the only reason it fails on clang: the `fxsave` tests have
2 overlapping areas of memory at `res + 0x80`, and `res + 0x100` of length `0x200`.
Instead the 2nd area should start at `0x280`, and the memset should
clear an area of `0x480`.
I didn't attempt to fix all those, because attempting to do so caused
the tests to start failing on GCC.

For convenience this patch series is also available at:
https://gitlab.com/xen-project/people/edwintorok/xen/-/compare/staging...private%2Fedvint%2Femulator?from_project_id=2336572
https://gitlab.com/xen-project/people/edwintorok/xen/-/pipelines/2343355874

Edwin Török (4):
  tools/tests/x86_emulator: fix 'shifting a negative signed value is
    undefined'
  tools/tests/x86_emulator: avoid duplicating loop body
  tools/tests/x86_emulator: fix build on clang-21
  tools/tests/x86_emulator: disable xmm* tests on clang

 tools/tests/x86_emulator/Makefile            |  1 +
 tools/tests/x86_emulator/test_x86_emulator.c | 48 +++++++++++++++++++-
 2 files changed, 47 insertions(+), 2 deletions(-)

-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:05:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238615.1540227 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSoN-0007aD-EU; Mon, 23 Feb 2026 10:05:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238615.1540227; Mon, 23 Feb 2026 10:05: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 1vuSoN-0007ZU-B9; Mon, 23 Feb 2026 10:05:07 +0000
Received: by outflank-mailman (input) for mailman id 1238615;
 Mon, 23 Feb 2026 10:05: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSoM-0007XS-2V
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:05:06 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1fb2aa93-109f-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:05:05 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 7270741202FF;
 Mon, 23 Feb 2026 05:04:45 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1fb2aa93-109f-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 2/4] tools/tests/x86_emulator: avoid duplicating loop body
Date: Mon, 23 Feb 2026 10:04:53 +0000
Message-ID: <c0dc7da75ee36d10863a8b28fa2f19b3b4c8a316.1771840208.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840208.git.edwin.torok@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

clang would duplicate the loop body and end up with a double definition
of the symbol:
```
/tmp/test_x86_emulator-0f3576.s:27823: Error: symbol `vmovsh_to_mem' is already defined
/tmp/test_x86_emulator-0f3576.s:27825: Error: symbol `.Lvmovsh_to_mem_end' is already defined
```

This is a valid transformation, that even GCC might do, see
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Volatile-1 which
says that `%=` should be used instead. However the C code here also
needs to know the name of the label, so I don't immediately see how to
solve that.

For now mark the loop variable `volatile` to prevent the optimization as a
workaround.
(another way to fix this could be to move the loop body into a function,
but a compiler might inline it, or specialize it, leading to the same problem)

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/x86_emulator/test_x86_emulator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c
index a25eca1634..cf4e5cc593 100644
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -5248,7 +5248,7 @@ int main(int argc, char **argv)
         memset(res + 3, ~0, 8);
         regs.eax = (unsigned long)res;
         regs.ecx = ~0;
-        for ( i = 0; i < 2; ++i )
+        for (volatile int i = 0; i < 2; ++i )
         {
             decl_insn(vmovsh_to_mem);
 
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:05:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238617.1540248 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSoO-00081h-Vy; Mon, 23 Feb 2026 10:05:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238617.1540248; Mon, 23 Feb 2026 10:05: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 1vuSoO-000819-Qy; Mon, 23 Feb 2026 10:05:08 +0000
Received: by outflank-mailman (input) for mailman id 1238617;
 Mon, 23 Feb 2026 10:05: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSoN-0007XS-2q
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:05:07 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 2024b709-109f-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:05:05 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 39EB74120406;
 Mon, 23 Feb 2026 05:04:46 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2024b709-109f-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 3/4] tools/tests/x86_emulator: fix build on clang-21
Date: Mon, 23 Feb 2026 10:04:54 +0000
Message-ID: <7147fc3ef5d5bdf5a811e896925d9aa641ed0753.1771840208.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840208.git.edwin.torok@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

clang-21's built-in assembler is enabled by default, but it doesn't
support some mnemonics:
```
test_x86_emulator.c:2636:36: error: invalid instruction mnemonic 'fsaves'
 2636 |                        "fidivs %1\n\t"
test_x86_emulator.c:2640:24: error: invalid instruction mnemonic 'frstors'
 2640 |         asm volatile ( "frstors %0" :: "m" (res[25]) : "memory" );
      |                        ^
test_x86_emulator.c:4251:24: error: invalid instruction mnemonic 'vpcmpestriq'
 4251 |                        put_insn(vpcmpestri,
      |                        ^
```

Use the external assembler with Clang for consistency with GCC.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/x86_emulator/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index 376cfe244d..2d8874a1d1 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -297,6 +297,7 @@ x86_emulate:
 
 HOSTCFLAGS-x86_64 := -fno-PIE
 $(call cc-option-add,HOSTCFLAGS-x86_64,HOSTCC,-no-pie)
+$(call cc-option-add,HOSTCFLAGS-x86_64,HOSTCC,-no-integrated-as)
 HOSTCFLAGS += $(CFLAGS_xeninclude) -I. $(HOSTCFLAGS-$(XEN_COMPILE_ARCH))
 
 x86.h := $(addprefix $(XEN_ROOT)/tools/include/xen/asm/,\
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:05:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:05:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238618.1540253 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSoP-00086L-8h; Mon, 23 Feb 2026 10:05:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238618.1540253; Mon, 23 Feb 2026 10:05: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 1vuSoP-00083d-2T; Mon, 23 Feb 2026 10:05:09 +0000
Received: by outflank-mailman (input) for mailman id 1238618;
 Mon, 23 Feb 2026 10: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSoO-0007Xe-Eg
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:05:08 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 20a8c1e0-109f-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:05:06 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 0066C41202E0;
 Mon, 23 Feb 2026 05:04:46 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 20a8c1e0-109f-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 4/4] tools/tests/x86_emulator: disable xmm* tests on clang
Date: Mon, 23 Feb 2026 10:04:55 +0000
Message-ID: <9e380de50b64e45e9044a2f4bcf1a5bdb7e74a29.1771840208.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840208.git.edwin.torok@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

clang-21 doesn't support `-ffixed-xmm0`, so `%xmm0` won't have the
expected value.
Disable these tests on clang.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/x86_emulator/test_x86_emulator.c | 44 ++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c
index cf4e5cc593..3d0ad07c6b 100644
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -2683,6 +2683,7 @@ int main(int argc, char **argv)
         printf("skipped\n");
 
     printf("%-40s", "Testing fxsave 4(%ecx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_fxsr )
     {
         const uint16_t nine = 9;
@@ -2712,6 +2713,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing fxrstor -4(%ecx)...");
@@ -2748,6 +2750,7 @@ int main(int argc, char **argv)
 
 #ifdef __x86_64__
     printf("%-40s", "Testing fxsaveq 8(%edx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_fxsr )
     {
         memset(res + 0x80, 0xcc, 0x400);
@@ -2765,6 +2768,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 #endif
 
@@ -2816,6 +2820,7 @@ int main(int argc, char **argv)
         printf("skipped\n");
 
     printf("%-40s", "Testing movq %xmm0,32(%ecx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_sse2 )
     {
         decl_insn(movq_to_mem2);
@@ -2837,9 +2842,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing movq 32(%ecx),%xmm1...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_sse2 )
     {
         decl_insn(movq_from_mem2);
@@ -2860,9 +2867,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovq %xmm1,32(%edx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx )
     {
         decl_insn(vmovq_to_mem);
@@ -2884,9 +2893,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovq 32(%edx),%xmm0...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx )
     {
         decl_insn(vmovq_from_mem);
@@ -2907,9 +2918,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing {evex} vmovq %xmm1,32(%edx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx512f )
     {
         decl_insn(evex_vmovq_to_mem);
@@ -2931,9 +2944,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing {evex} vmovq 32(%edx),%xmm0...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx512f )
     {
         decl_insn(evex_vmovq_from_mem);
@@ -2954,9 +2969,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing movdqu %xmm2,(%ecx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_sse2 )
     {
         decl_insn(movdqu_to_mem);
@@ -2976,9 +2993,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing movdqu (%edx),%xmm4...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_sse2 )
     {
         decl_insn(movdqu_from_mem);
@@ -3001,6 +3020,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovdqu %ymm2,(%ecx)...");
@@ -3386,6 +3406,7 @@ int main(int argc, char **argv)
         printf("skipped\n");
 
     printf("%-40s", "Testing movd %xmm2,32(%edx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_sse2 )
     {
         decl_insn(movd_to_mem2);
@@ -3407,9 +3428,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing movd 32(%edx),%xmm3...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_sse2 )
     {
         decl_insn(movd_from_mem2);
@@ -3435,9 +3458,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovd %xmm1,32(%ecx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx )
     {
         decl_insn(vmovd_to_mem);
@@ -3459,9 +3484,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovd 32(%ecx),%xmm2...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx )
     {
         decl_insn(vmovd_from_mem);
@@ -3487,6 +3514,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing {evex} vmovd %xmm3,32(%ecx)...");
@@ -3597,6 +3625,7 @@ int main(int argc, char **argv)
         printf("skipped\n");
 
     printf("%-40s", "Testing movd %xmm2,%ebx...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_sse2 )
     {
         decl_insn(movd_to_reg2);
@@ -3619,6 +3648,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing movd %ebx,%xmm3...");
@@ -3651,6 +3681,7 @@ int main(int argc, char **argv)
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovd %xmm1,%ebx...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx )
     {
         decl_insn(vmovd_to_reg);
@@ -3673,6 +3704,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovd %ebx,%xmm2...");
@@ -3705,6 +3737,7 @@ int main(int argc, char **argv)
         printf("skipped\n");
 
     printf("%-40s", "Testing {evex} vmovd %xmm2,%ebx...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx512f )
     {
         decl_insn(evex_vmovd_to_reg);
@@ -3728,6 +3761,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing {evex} vmovd %ebx,%xmm1...");
@@ -3781,6 +3815,7 @@ int main(int argc, char **argv)
         printf("skipped\n");
 
     printf("%-40s", "Testing movq %xmm2,32(%edx)...");
+#ifndef __clang__
     if ( stack_exec )
     {
         decl_insn(movq_to_mem4);
@@ -3802,9 +3837,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovq %xmm1,32(%ecx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx )
     {
         decl_insn(vmovq_to_mem2);
@@ -3830,9 +3867,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing {evex} vmovq %xmm11,32(%ecx)...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx512f )
     {
         decl_insn(evex_vmovq_to_mem2);
@@ -3860,6 +3899,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing movq %mm3,%rbx...");
@@ -3883,6 +3923,7 @@ int main(int argc, char **argv)
         printf("skipped\n");
 
     printf("%-40s", "Testing movq %xmm2,%rbx...");
+#ifndef __clang__
     if ( stack_exec )
     {
         decl_insn(movq_to_reg2);
@@ -3900,9 +3941,11 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovq %xmm1,%rbx...");
+#ifndef __clang__
     if ( stack_exec && cpu_has_avx )
     {
         decl_insn(vmovq_to_reg);
@@ -3920,6 +3963,7 @@ int main(int argc, char **argv)
         printf("okay\n");
     }
     else
+#endif
         printf("skipped\n");
 
     printf("%-40s", "Testing vmovq %xmm22,%rbx...");
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:14:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238757.1540305 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxL-0003Xe-6y; Mon, 23 Feb 2026 10:14:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238757.1540305; Mon, 23 Feb 2026 10:14:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxK-0003V4-Vn; Mon, 23 Feb 2026 10:14:22 +0000
Received: by outflank-mailman (input) for mailman id 1238757;
 Mon, 23 Feb 2026 10:14: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSxJ-0002wR-Ps
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:14:21 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6a1d5841-10a0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:14:19 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id A3B9C4122490;
 Mon, 23 Feb 2026 05:13:59 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a1d5841-10a0-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH 3/7] tools/tests/*/Makefile: factor out build rules
Date: Mon, 23 Feb 2026 10:14:07 +0000
Message-ID: <57d93b2a6e9f3cdc70e4446c469226dc015a1944.1771840831.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840831.git.edwin.torok@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Also makes CFLAGS consistent across all tests, e.g. test_vpci would now
fail to build with an unused variable error if it hadn't been fixed in a
previous commit.

Introduce a symlink test_vpci.c -> main.c, since this is the only test
using a different .c file name from the main executable
(could also rename the file instead).

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/Rules.mk                |  9 +++++++++
 tools/tests/cpu-policy/Makefile     | 15 ++++-----------
 tools/tests/domid/Makefile          | 11 +++--------
 tools/tests/mem-claim/Makefile      |  8 --------
 tools/tests/paging-mempool/Makefile |  8 --------
 tools/tests/pdx/Makefile            |  4 ----
 tools/tests/rangeset/Makefile       |  9 +--------
 tools/tests/resource/Makefile       |  8 --------
 tools/tests/tsx/Makefile            |  8 --------
 tools/tests/vpci/.gitignore         |  1 +
 tools/tests/vpci/Makefile           | 10 +++++++---
 tools/tests/xenstore/Makefile       |  8 +-------
 12 files changed, 26 insertions(+), 73 deletions(-)
 create mode 100644 tools/tests/vpci/.gitignore

diff --git a/tools/tests/Rules.mk b/tools/tests/Rules.mk
index f7ef76bf4f..2de9e94546 100644
--- a/tools/tests/Rules.mk
+++ b/tools/tests/Rules.mk
@@ -45,4 +45,13 @@ install: all
 uninstall:
 	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC)/tests/,$(TARGETS))
 
+CFLAGS += -D__XEN_TOOLS__
+CFLAGS += $(CFLAGS_xeninclude)
+
+%.o: Makefile
+
+$(TARGET): $(TARGET).o
+	$(CC) $^ -o $@ $(LDFLAGS) $(APPEND_LDFLAGS)
+
 -include $(DEPS_INCLUDE)
+
diff --git a/tools/tests/cpu-policy/Makefile b/tools/tests/cpu-policy/Makefile
index 700e325215..4ab3baf1fb 100644
--- a/tools/tests/cpu-policy/Makefile
+++ b/tools/tests/cpu-policy/Makefile
@@ -3,26 +3,19 @@ include $(XEN_ROOT)/tools/Rules.mk
 
 TARGETS :=
 
+TARGET := test-cpu-policy
+
 # For brevity, these tests make extensive use of designated initialisers in
 # anonymous unions, but GCCs older than 4.6 can't cope.  Ignore the test in
 # this case.
 ifneq ($(gcc)$(call cc-ver,$(CC),lt,0x040600),yy)
-TARGETS += test-cpu-policy
+TARGETS += $(TARGET)
 else
 $(warning Test harness not built, use newer compiler than "$(CC)" (version $(shell $(CC) -dumpversion)))
 endif
 
-CFLAGS += -D__XEN_TOOLS__
-CFLAGS += $(CFLAGS_xeninclude)
-CFLAGS += $(APPEND_CFLAGS)
-
-LDFLAGS += $(APPEND_LDFLAGS)
-
 vpath %.c ../../../xen/lib/x86
 
-%.o: Makefile
-
-test-cpu-policy: test-cpu-policy.o msr.o cpuid.o policy.o
-	$(CC) $^ -o $@ $(LDFLAGS)
+$(TARGET): msr.o cpuid.o policy.o
 
 include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
index 92f11777f2..89e4333bfb 100644
--- a/tools/tests/domid/Makefile
+++ b/tools/tests/domid/Makefile
@@ -7,7 +7,8 @@
 XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-TARGETS += test-domid
+TARGET := test-domid
+TARGETS += $(TARGET)
 
 define list-c-headers
 $(shell sed -n \
@@ -39,7 +40,6 @@ endef
 clean::
 	$(RM) -r generated
 
-CFLAGS += -D__XEN_TOOLS__
 # find-next-bit.c
 CFLAGS += '-DEXPORT_SYMBOL(x)=' \
           -Dfind_first_bit \
@@ -47,12 +47,8 @@ CFLAGS += '-DEXPORT_SYMBOL(x)=' \
           -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
@@ -60,7 +56,6 @@ vpath find-next-bit.c $(XEN_ROOT)/xen/lib/
 # 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)
+$(TARGET): domid.o find-next-bit.o
 
 include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/mem-claim/Makefile b/tools/tests/mem-claim/Makefile
index 6790e48417..eeae1eb5d2 100644
--- a/tools/tests/mem-claim/Makefile
+++ b/tools/tests/mem-claim/Makefile
@@ -4,16 +4,8 @@ include $(XEN_ROOT)/tools/Rules.mk
 TARGET := test-mem-claim
 TARGETS := $(TARGET)
 
-CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
-CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(LDLIBS_libxenctrl)
-LDFLAGS += $(APPEND_LDFLAGS)
-
-%.o: Makefile
-
-$(TARGET): test-mem-claim.o
-	$(CC) -o $@ $< $(LDFLAGS)
 
 include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/paging-mempool/Makefile b/tools/tests/paging-mempool/Makefile
index 9ebeb24ab6..ad4b7fc65f 100644
--- a/tools/tests/paging-mempool/Makefile
+++ b/tools/tests/paging-mempool/Makefile
@@ -4,16 +4,8 @@ include $(XEN_ROOT)/tools/Rules.mk
 TARGET := test-paging-mempool
 TARGETS := $(TARGET)
 
-CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
-CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(LDLIBS_libxenctrl)
-LDFLAGS += $(APPEND_LDFLAGS)
-
-%.o: Makefile
-
-$(TARGET): test-paging-mempool.o
-	$(CC) -o $@ $< $(LDFLAGS)
 
 include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/pdx/Makefile b/tools/tests/pdx/Makefile
index a5129a8282..bc19a217a5 100644
--- a/tools/tests/pdx/Makefile
+++ b/tools/tests/pdx/Makefile
@@ -8,10 +8,6 @@ DEPS_RM += pdx.h
 pdx.h: $(XEN_ROOT)/xen/include/xen/pdx.h
 	sed -e '/^#[[:space:]]*include/d' <$< >$@
 
-CFLAGS += -D__XEN_TOOLS__
-CFLAGS += $(APPEND_CFLAGS)
-CFLAGS += $(CFLAGS_xeninclude)
-
 test-pdx-mask: CFLAGS += -DCONFIG_PDX_MASK_COMPRESSION
 test-pdx-offset: CFLAGS += -DCONFIG_PDX_OFFSET_COMPRESSION
 
diff --git a/tools/tests/rangeset/Makefile b/tools/tests/rangeset/Makefile
index c76746ce7a..843b2129a9 100644
--- a/tools/tests/rangeset/Makefile
+++ b/tools/tests/rangeset/Makefile
@@ -15,15 +15,8 @@ rangeset.c: $(XEN_ROOT)/xen/common/rangeset.c
 	# Remove includes and add the test harness header
 	sed -e '/#include/d' -e '1s/^/#include "harness.h"/' <$< >$@
 
-CFLAGS += -D__XEN_TOOLS__
-CFLAGS += $(APPEND_CFLAGS)
-CFLAGS += $(CFLAGS_xeninclude)
-
-LDFLAGS += $(APPEND_LDFLAGS)
-
 test-rangeset.o rangeset.o: list.h rangeset.h
 
-test-rangeset: rangeset.o test-rangeset.o
-	$(CC) $^ -o $@ $(LDFLAGS)
+$(TARGET): rangeset.o
 
 include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
index 764e34f3fa..11ce782b29 100644
--- a/tools/tests/resource/Makefile
+++ b/tools/tests/resource/Makefile
@@ -4,20 +4,12 @@ include $(XEN_ROOT)/tools/Rules.mk
 TARGET := test-resource
 TARGETS := $(TARGET)
 
-CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
 CFLAGS += $(CFLAGS_libxenforeginmemory)
 CFLAGS += $(CFLAGS_libxengnttab)
-CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(LDLIBS_libxenctrl)
 LDFLAGS += $(LDLIBS_libxenforeignmemory)
 LDFLAGS += $(LDLIBS_libxengnttab)
-LDFLAGS += $(APPEND_LDFLAGS)
-
-%.o: Makefile
-
-$(TARGET): test-resource.o
-	$(CC) -o $@ $< $(LDFLAGS)
 
 include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/tsx/Makefile b/tools/tests/tsx/Makefile
index 817a63b085..54852b0327 100644
--- a/tools/tests/tsx/Makefile
+++ b/tools/tests/tsx/Makefile
@@ -5,18 +5,10 @@ TARGET := test-tsx
 TARGETS := $(TARGET)
 
 CFLAGS += -I$(XEN_ROOT)/tools/libs/ctrl -I$(XEN_ROOT)/tools/libs/guest
-CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
 CFLAGS += $(CFLAGS_libxenguest)
-CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(LDLIBS_libxenctrl)
 LDFLAGS += $(LDLIBS_libxenguest)
-LDFLAGS += $(APPEND_LDFLAGS)
-
-%.o: Makefile
-
-$(TARGET): test-tsx.o
-	$(CC) -o $@ $< $(LDFLAGS)
 
 include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/vpci/.gitignore b/tools/tests/vpci/.gitignore
new file mode 100644
index 0000000000..8be877b29a
--- /dev/null
+++ b/tools/tests/vpci/.gitignore
@@ -0,0 +1 @@
+test_vpci.c
diff --git a/tools/tests/vpci/Makefile b/tools/tests/vpci/Makefile
index 597303e31d..41ff867cdd 100644
--- a/tools/tests/vpci/Makefile
+++ b/tools/tests/vpci/Makefile
@@ -4,10 +4,14 @@ include $(XEN_ROOT)/tools/Rules.mk
 TARGET := test_vpci
 TARGETS := $(TARGET)
 
-$(TARGET): vpci.c vpci.h list.h main.c emul.h
-	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
+$(TARGET).c: main.c
+	ln -sf $< $@
 
-DEPS_RM += vpci.h vpci.c list.h
+vpci.o: vpci.h
+$(TARGET).o: vpci.h emul.h list.h
+$(TARGET): vpci.o
+
+DEPS_RM += vpci.h vpci.c list.h $(TARGET).c
 
 vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
 	# Remove includes and add the test harness header
diff --git a/tools/tests/xenstore/Makefile b/tools/tests/xenstore/Makefile
index 56cfe07f25..e1a0c086a9 100644
--- a/tools/tests/xenstore/Makefile
+++ b/tools/tests/xenstore/Makefile
@@ -5,17 +5,11 @@ TARGET := test-xenstore
 TARGETS := $(TARGET)
 
 CFLAGS += $(CFLAGS_libxenstore)
-CFLAGS += $(APPEND_CFLAGS)
 
 LDFLAGS += $(LDLIBS_libxenstore)
-LDFLAGS += $(APPEND_LDFLAGS)
+
 ifeq ($(CONFIG_Linux),y)
 LDFLAGS += -Wl,--as-needed -lc -lrt
 endif
 
-%.o: Makefile
-
-test-xenstore: test-xenstore.o
-	$(CC) -o $@ $< $(LDFLAGS)
-
 include $(XEN_ROOT)/tools/tests/Rules.mk
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:14:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238756.1540299 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxK-0003S3-Rq; Mon, 23 Feb 2026 10:14:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238756.1540299; Mon, 23 Feb 2026 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 1vuSxK-0003Rm-O5; Mon, 23 Feb 2026 10:14:22 +0000
Received: by outflank-mailman (input) for mailman id 1238756;
 Mon, 23 Feb 2026 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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSxJ-0003AC-JP
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:14:21 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6a958069-10a0-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:14:20 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 7ECE04122496;
 Mon, 23 Feb 2026 05:14:00 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6a958069-10a0-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH 4/7] tools/tests: factor out common helpers
Date: Mon, 23 Feb 2026 10:14:08 +0000
Message-ID: <1fc62b8c258f9113c8bfd6401b71c411707fc3f7.1771840831.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840831.git.edwin.torok@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Share fail/verify macros, and the handling or nr_failures.
The tests will no longer have a `main` function, but instead have a
`test_main`. This ensures that `nr_failures` is handled consistently.

This'll make it easier to write new tests that are consistent with the
existing ones, without having to copy/paste.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/Rules.mk                           |  3 +++
 tools/tests/common/tests.c                     | 15 +++++++++++++++
 tools/tests/common/tests.h                     | 18 ++++++++++++++++++
 tools/tests/cpu-policy/test-cpu-policy.c       |  7 +------
 tools/tests/domid/test-domid.c                 | 11 ++---------
 tools/tests/mem-claim/test-mem-claim.c         |  9 ++-------
 .../tests/paging-mempool/test-paging-mempool.c |  9 ++-------
 tools/tests/pdx/test-pdx.c                     |  3 ++-
 tools/tests/rangeset/test-rangeset.c           |  3 ++-
 tools/tests/resource/test-resource.c           |  9 ++-------
 tools/tests/tsx/test-tsx.c                     | 10 ++--------
 tools/tests/vpci/main.c                        |  4 ++--
 tools/tests/xenstore/test-xenstore.c           |  4 +++-
 13 files changed, 56 insertions(+), 49 deletions(-)
 create mode 100644 tools/tests/common/tests.c
 create mode 100644 tools/tests/common/tests.h

diff --git a/tools/tests/Rules.mk b/tools/tests/Rules.mk
index 2de9e94546..9e03e1e0b8 100644
--- a/tools/tests/Rules.mk
+++ b/tools/tests/Rules.mk
@@ -47,11 +47,14 @@ uninstall:
 
 CFLAGS += -D__XEN_TOOLS__
 CFLAGS += $(CFLAGS_xeninclude)
+CFLAGS += -I../common/
 
 %.o: Makefile
 
 $(TARGET): $(TARGET).o
 	$(CC) $^ -o $@ $(LDFLAGS) $(APPEND_LDFLAGS)
 
+$(TARGETS): $(XEN_ROOT)/tools/tests/common/tests.o
+
 -include $(DEPS_INCLUDE)
 
diff --git a/tools/tests/common/tests.c b/tools/tests/common/tests.c
new file mode 100644
index 0000000000..43d9ea5442
--- /dev/null
+++ b/tools/tests/common/tests.c
@@ -0,0 +1,15 @@
+#include "tests.h"
+
+unsigned int nr_failures;
+
+int main(int argc, char *argv[argc+1])
+{
+    int rc = test_main(argc, argv);
+
+    if ( nr_failures )
+        printf("Done: %u failures\n", nr_failures);
+    else
+        printf("Done: all ok\n");
+
+    return rc ? rc : !!nr_failures;
+}
diff --git a/tools/tests/common/tests.h b/tools/tests/common/tests.h
new file mode 100644
index 0000000000..f0df616e3e
--- /dev/null
+++ b/tools/tests/common/tests.h
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <sysexits.h>
+
+extern unsigned int nr_failures;
+
+#define fail(fmt, ...)                          \
+({                                              \
+    nr_failures++;                              \
+    (void)printf(fmt, ##__VA_ARGS__);           \
+})
+
+#define verify(exp, fmt, args...) \
+while (!(exp)) { \
+    printf(fmt, ## args); \
+    exit(EX_SOFTWARE); \
+}
+
+extern int test_main(int argc, char *argv[argc+1]);
diff --git a/tools/tests/cpu-policy/test-cpu-policy.c b/tools/tests/cpu-policy/test-cpu-policy.c
index 301df2c002..67a36c80d5 100644
--- a/tools/tests/cpu-policy/test-cpu-policy.c
+++ b/tools/tests/cpu-policy/test-cpu-policy.c
@@ -650,7 +650,7 @@ static void test_is_compatible_failure(void)
     }
 }
 
-int main(int argc, char **argv)
+int test_main(int argc, char **argv)
 {
     printf("CPU Policy unit tests\n");
 
@@ -667,10 +667,5 @@ int main(int argc, char **argv)
     test_is_compatible_success();
     test_is_compatible_failure();
 
-    if ( nr_failures )
-        printf("Done: %u failures\n", nr_failures);
-    else
-        printf("Done: all ok\n");
-
     return !!nr_failures;
 }
diff --git a/tools/tests/domid/test-domid.c b/tools/tests/domid/test-domid.c
index 5915c4699a..de39bae8b0 100644
--- a/tools/tests/domid/test-domid.c
+++ b/tools/tests/domid/test-domid.c
@@ -5,20 +5,13 @@
  * Copyright 2025 Ford Motor Company
  */
 
-#include <sysexits.h>
-
+#include "tests.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)
+int test_main(int argc, char *argv[argc+1])
 {
     domid_t expected, allocated;
 
diff --git a/tools/tests/mem-claim/test-mem-claim.c b/tools/tests/mem-claim/test-mem-claim.c
index ad038e45d1..1f3c70aace 100644
--- a/tools/tests/mem-claim/test-mem-claim.c
+++ b/tools/tests/mem-claim/test-mem-claim.c
@@ -11,12 +11,7 @@
 #include <xengnttab.h>
 #include <xen-tools/common-macros.h>
 
-static unsigned int nr_failures;
-#define fail(fmt, ...)                          \
-({                                              \
-    nr_failures++;                              \
-    (void)printf(fmt, ##__VA_ARGS__);           \
-})
+#include "tests.h"
 
 #define MB_PAGES(x) (MB(x) / XC_PAGE_SIZE)
 
@@ -158,7 +153,7 @@ static void run_tests(void)
                     physinfo.outstanding_pages);
 }
 
-int main(int argc, char **argv)
+int test_main(int argc, char *argv[argc+1])
 {
     int rc;
 
diff --git a/tools/tests/paging-mempool/test-paging-mempool.c b/tools/tests/paging-mempool/test-paging-mempool.c
index 1ebc13455a..27fd109031 100644
--- a/tools/tests/paging-mempool/test-paging-mempool.c
+++ b/tools/tests/paging-mempool/test-paging-mempool.c
@@ -10,12 +10,7 @@
 #include <xengnttab.h>
 #include <xen-tools/common-macros.h>
 
-static unsigned int nr_failures;
-#define fail(fmt, ...)                          \
-({                                              \
-    nr_failures++;                              \
-    (void)printf(fmt, ##__VA_ARGS__);           \
-})
+#include "tests.h"
 
 static xc_interface *xch;
 static uint32_t domid;
@@ -136,7 +131,7 @@ static void run_tests(void)
                     64 << 20, size_bytes);
 }
 
-int main(int argc, char **argv)
+int test_main(int argc, char *argv[argc+1])
 {
     int rc;
 
diff --git a/tools/tests/pdx/test-pdx.c b/tools/tests/pdx/test-pdx.c
index eefd54c768..d2d143ec76 100644
--- a/tools/tests/pdx/test-pdx.c
+++ b/tools/tests/pdx/test-pdx.c
@@ -5,6 +5,7 @@
  * Copyright (C) 2025 Cloud Software Group
  */
 
+#include "tests.h"
 #include "harness.h"
 
 #include "../../xen/common/pdx.c"
@@ -29,7 +30,7 @@ static void print_ranges(const struct range *r)
     }
 }
 
-int main(int argc, char **argv)
+int main(int argc, char *argv[argc+1])
 {
     static const struct {
         struct range ranges[MAX_RANGES];
diff --git a/tools/tests/rangeset/test-rangeset.c b/tools/tests/rangeset/test-rangeset.c
index c14a908b4f..3f8ac95097 100644
--- a/tools/tests/rangeset/test-rangeset.c
+++ b/tools/tests/rangeset/test-rangeset.c
@@ -5,6 +5,7 @@
  * Copyright (C) 2025 Cloud Software Group
  */
 
+#include "tests.h"
 #include "harness.h"
 
 struct range {
@@ -140,7 +141,7 @@ static void print_both(struct rangeset *r, const struct range *expected,
         printf("[%ld, %ld]\n", expected[i].start, expected[i].end);
 }
 
-int main(int argc, char **argv)
+int test_main(int argc, char *argv[argc+1])
 {
     struct rangeset *r = rangeset_new(NULL, NULL, 0);
     unsigned int i;
diff --git a/tools/tests/resource/test-resource.c b/tools/tests/resource/test-resource.c
index a7f2d04643..4155b62507 100644
--- a/tools/tests/resource/test-resource.c
+++ b/tools/tests/resource/test-resource.c
@@ -9,12 +9,7 @@
 #include <xengnttab.h>
 #include <xen-tools/common-macros.h>
 
-static unsigned int nr_failures;
-#define fail(fmt, ...)                          \
-({                                              \
-    nr_failures++;                              \
-    (void)printf(fmt, ##__VA_ARGS__);           \
-})
+#include "tests.h"
 
 static xc_interface *xch;
 static xenforeignmemory_handle *fh;
@@ -255,7 +250,7 @@ static void test_domain_configurations(void)
     }
 }
 
-int main(int argc, char **argv)
+int test_main(int argc, char *argv[argc+1])
 {
     int rc;
 
diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
index 5af04953f3..ab099e9038 100644
--- a/tools/tests/tsx/test-tsx.c
+++ b/tools/tests/tsx/test-tsx.c
@@ -30,6 +30,7 @@
 #include <xenguest.h>
 #include <xen-tools/common-macros.h>
 
+#include "tests.h"
 #include "xg_private.h"
 
 enum {
@@ -44,13 +45,6 @@ enum {
 #define MSR_TSX_CTRL                        0x00000122
 #define MSR_MCU_OPT_CTRL                    0x00000123
 
-static unsigned int nr_failures;
-#define fail(fmt, ...)                          \
-({                                              \
-    nr_failures++;                              \
-    (void)printf(fmt, ##__VA_ARGS__);           \
-})
-
 static xc_interface *xch;
 
 /*
@@ -540,7 +534,7 @@ static void test_tsx(void)
     test_guests();
 }
 
-int main(int argc, char **argv)
+int test_main(int argc, char *argv[argc+1])
 {
     printf("TSX tests\n");
 
diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index 3753417e86..0e4f24aace 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -16,6 +16,7 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "tests.h"
 #include "emul.h"
 
 /* Single vcpu (current), and single domain with a single PCI device. */
@@ -175,8 +176,7 @@ void multiwrite4_check(unsigned int reg)
     multiread4_check(reg, val);
 }
 
-int
-main(int argc, char **argv)
+int test_main(int argc, char *argv[argc+1])
 {
     /* Index storage by offset. */
     uint32_t r0 = 0xdeadbeef;
diff --git a/tools/tests/xenstore/test-xenstore.c b/tools/tests/xenstore/test-xenstore.c
index 7a9bd9afb3..470cbeed30 100644
--- a/tools/tests/xenstore/test-xenstore.c
+++ b/tools/tests/xenstore/test-xenstore.c
@@ -33,6 +33,8 @@
 
 #include <xen-tools/common-macros.h>
 
+#include "tests.h"
+
 #define TEST_PATH "xenstore-test"
 #define WRITE_BUFFERS_N    10
 #define WRITE_BUFFERS_SIZE 4000
@@ -445,7 +447,7 @@ static void cleanup(void)
     }
 }
 
-int main(int argc, char *argv[])
+int test_main(int argc, char *argv[argc+1])
 {
     int opt, t, iters = 1, ret = 0, randtime = 0;
     char *test = NULL;
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:14:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238755.1540293 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxK-0003OY-HU; Mon, 23 Feb 2026 10:14:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238755.1540293; Mon, 23 Feb 2026 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 1vuSxK-0003OR-ET; Mon, 23 Feb 2026 10:14:22 +0000
Received: by outflank-mailman (input) for mailman id 1238755;
 Mon, 23 Feb 2026 10:14: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSxI-0002wR-Ph
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:14:20 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 699db93f-10a0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:14:18 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id E3DD5412248F;
 Mon, 23 Feb 2026 05:13:58 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 699db93f-10a0-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 2/7] tools/tests/vpci/main.c: drop unused variables
Date: Mon, 23 Feb 2026 10:14:06 +0000
Message-ID: <dd4cd79981fb24053b0dd17d79b31b1cea7ae5ea.1771840831.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840831.git.edwin.torok@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

They may become build failures.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/vpci/main.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/tools/tests/vpci/main.c b/tools/tests/vpci/main.c
index 2ef8d4e03f..3753417e86 100644
--- a/tools/tests/vpci/main.c
+++ b/tools/tests/vpci/main.c
@@ -189,8 +189,6 @@ main(int argc, char **argv)
     uint32_t r24 = 0;
     uint8_t r28, r30;
     struct mask_data r32;
-    unsigned int i;
-    int rc;
 
     INIT_LIST_HEAD(&vpci.handlers);
     spin_lock_init(&vpci.lock);
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:14:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238753.1540272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxI-0002wg-4T; Mon, 23 Feb 2026 10:14:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238753.1540272; Mon, 23 Feb 2026 10:14: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 1vuSxI-0002wX-1V; Mon, 23 Feb 2026 10:14:20 +0000
Received: by outflank-mailman (input) for mailman id 1238753;
 Mon, 23 Feb 2026 10:14: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSxH-0002wR-5s
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:14:19 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68a48beb-10a0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:14:16 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id D543941202E0;
 Mon, 23 Feb 2026 05:13:56 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68a48beb-10a0-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH 0/7] Factor out common build rules and helpers in tools/tests
Date: Mon, 23 Feb 2026 10:14:04 +0000
Message-ID: <cover.1771840831.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

There are a lot of duplicate rules and code in tools/tests.
To simplify writing new tests move common build rules into a
`tools/tests/Rules.mk`, and helper macros/functions into `common/{tests,guests}.{c,h}`.

This also ensures that CFLAGS are applied consistently across all tests (e.g. one test failed
to build now due to an unused variable error).

Guest creation also needs to test for the presence of PV, HVM HAP or HVM shadow support
in Xen and create a guest accordingly. This can be shared.

After these changes the per-test Makefile only contains entries specific
to the test (its name, dependencies, etc.) and avoids having to
copy&paste boilerplate code.

`tools/tests/x86_emulator` remains unchanged, because the Makefile
contains a lot of conditional build logic specific to that test.

An upcoming patch series will introduce new tests using the simplified
Makefile and shared helpers.

For convenience this is also available at:
https://gitlab.com/xen-project/people/edwintorok/xen/-/compare/staging...private%2Fedvint%2Fmigration-tests2?from_project_id=2336572
https://gitlab.com/xen-project/people/edwintorok/xen/-/pipelines/2342318716

Edwin Török (7):
  tools/tests/*/Makefile: factor out common PHONY rules into Rules.mk
  tools/tests/vpci/main.c: drop unused variables
  tools/tests/*/Makefile: factor out build rules
  tools/tests: factor out common helpers
  tools/tests/common: ensure error messages have a newline
  tools/tests/tsx: move guest creation to common area
  tools/tests: print more debug info

 tools/tests/Rules.mk                          | 60 +++++++++++++
 tools/tests/common/guests.c                   | 89 +++++++++++++++++++
 tools/tests/common/guests.h                   | 11 +++
 tools/tests/common/tests.c                    | 15 ++++
 tools/tests/common/tests.h                    | 18 ++++
 tools/tests/cpu-policy/Makefile               | 41 ++-------
 tools/tests/cpu-policy/test-cpu-policy.c      |  7 +-
 tools/tests/domid/Makefile                    | 37 ++------
 tools/tests/domid/test-domid.c                | 11 +--
 tools/tests/mem-claim/Makefile                | 31 +------
 tools/tests/mem-claim/test-mem-claim.c        |  9 +-
 tools/tests/paging-mempool/Makefile           | 31 +------
 .../paging-mempool/test-paging-mempool.c      |  9 +-
 tools/tests/pdx/Makefile                      | 37 +-------
 tools/tests/pdx/test-pdx.c                    |  3 +-
 tools/tests/rangeset/Makefile                 | 36 +-------
 tools/tests/rangeset/test-rangeset.c          |  3 +-
 tools/tests/resource/Makefile                 | 35 +-------
 tools/tests/resource/test-resource.c          |  9 +-
 tools/tests/tsx/Makefile                      | 35 +-------
 tools/tests/tsx/test-tsx.c                    | 88 +++---------------
 tools/tests/vpci/.gitignore                   |  1 +
 tools/tests/vpci/Makefile                     | 36 ++------
 tools/tests/vpci/main.c                       |  6 +-
 tools/tests/xenstore/Makefile                 | 37 +-------
 tools/tests/xenstore/test-xenstore.c          |  4 +-
 26 files changed, 261 insertions(+), 438 deletions(-)
 create mode 100644 tools/tests/Rules.mk
 create mode 100644 tools/tests/common/guests.c
 create mode 100644 tools/tests/common/guests.h
 create mode 100644 tools/tests/common/tests.c
 create mode 100644 tools/tests/common/tests.h
 create mode 100644 tools/tests/vpci/.gitignore

-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:14:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238754.1540283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxJ-0003AJ-Bm; Mon, 23 Feb 2026 10:14:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238754.1540283; Mon, 23 Feb 2026 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 1vuSxJ-0003AB-85; Mon, 23 Feb 2026 10:14:21 +0000
Received: by outflank-mailman (input) for mailman id 1238754;
 Mon, 23 Feb 2026 10:14: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSxH-0002wR-UG
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:14:20 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 692e4533-10a0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:14:17 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 01342412248C;
 Mon, 23 Feb 2026 05:13:57 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 692e4533-10a0-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.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>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>
Subject: [PATCH 1/7] tools/tests/*/Makefile: factor out common PHONY rules into Rules.mk
Date: Mon, 23 Feb 2026 10:14:05 +0000
Message-ID: <6fa0d95dad3d223cf8aaa923ae59fd0b3a97d4a0.1771840831.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840831.git.edwin.torok@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a new tools/tests/Rules.mk that must be included *last* in a
Makefile, after TARGETS is defined.
This reduces the boilerplate that must be copy pasted when new tests are
written.

Renamed TESTS to TARGETS in tools/tests/domid/Makefile
Extend DEPS_RM, so that most tests don't need custom clean rules,
except in tools/tests/domid which needs to remove a directory too.

Make the run rules consistent: do not attempt to run the tests if HOSTCC != CC.

The common rules use the rule forms which allow multiple TARGETS.

tools/tests/x86_emulator/Makefile is unchanged, since this has a lot of
conditional rules that are very different from the other tests.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/Rules.mk                | 48 +++++++++++++++++++++++++++++
 tools/tests/cpu-policy/Makefile     | 26 +---------------
 tools/tests/domid/Makefile          | 28 ++---------------
 tools/tests/mem-claim/Makefile      | 23 ++------------
 tools/tests/paging-mempool/Makefile | 23 ++------------
 tools/tests/pdx/Makefile            | 33 ++------------------
 tools/tests/rangeset/Makefile       | 27 ++--------------
 tools/tests/resource/Makefile       | 27 ++--------------
 tools/tests/tsx/Makefile            | 26 ++--------------
 tools/tests/vpci/Makefile           | 30 +++---------------
 tools/tests/xenstore/Makefile       | 29 ++---------------
 11 files changed, 72 insertions(+), 248 deletions(-)
 create mode 100644 tools/tests/Rules.mk

diff --git a/tools/tests/Rules.mk b/tools/tests/Rules.mk
new file mode 100644
index 0000000000..f7ef76bf4f
--- /dev/null
+++ b/tools/tests/Rules.mk
@@ -0,0 +1,48 @@
+# Usage: include this last in your Makefile.
+#
+# For example:
+#
+# XEN_ROOT = $(CURDIR)/../../..
+# include $(XEN_ROOT)/tools/Rules.mk
+#
+# TARGETS := ...
+# ...
+# include $(XEN_ROOT)/tools/tests/Rules.mk
+
+ifndef XEN_ROOT
+$(error XEN_ROOT is not defined)
+endif
+
+.PHONY: all
+all: $(TARGETS)
+.DEFAULT_GOAL: all
+
+.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)
+
+.PHONY: distclean
+distclean: clean
+	$(RM) -- *~
+
+.PHONY: install
+install: all
+	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
+	$(if $(TARGETS),$(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC)/tests)
+
+.PHONY: uninstall
+uninstall:
+	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC)/tests/,$(TARGETS))
+
+-include $(DEPS_INCLUDE)
diff --git a/tools/tests/cpu-policy/Makefile b/tools/tests/cpu-policy/Makefile
index 24f87e2eca..700e325215 100644
--- a/tools/tests/cpu-policy/Makefile
+++ b/tools/tests/cpu-policy/Makefile
@@ -12,30 +12,6 @@ else
 $(warning Test harness not built, use newer compiler than "$(CC)" (version $(shell $(CC) -dumpversion)))
 endif
 
-.PHONY: all
-all: $(TARGETS)
-
-.PHONY: run
-run: $(TARGETS)
-	./$<
-
-.PHONY: clean
-clean:
-	$(RM) -- *.o $(TARGETS) $(DEPS_RM)
-
-.PHONY: distclean
-distclean: clean
-	$(RM) -- *~
-
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(if $(TARGETS),$(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC)/tests)
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC)/tests/,$(TARGETS))
-
 CFLAGS += -D__XEN_TOOLS__
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(APPEND_CFLAGS)
@@ -49,4 +25,4 @@ vpath %.c ../../../xen/lib/x86
 test-cpu-policy: test-cpu-policy.o msr.o cpuid.o policy.o
 	$(CC) $^ -o $@ $(LDFLAGS)
 
--include $(DEPS_INCLUDE)
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/domid/Makefile b/tools/tests/domid/Makefile
index 753129029e..92f11777f2 100644
--- a/tools/tests/domid/Makefile
+++ b/tools/tests/domid/Makefile
@@ -7,7 +7,7 @@
 XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-TESTS := test-domid
+TARGETS += test-domid
 
 define list-c-headers
 $(shell sed -n \
@@ -36,30 +36,8 @@ 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:
+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
@@ -85,4 +63,4 @@ $(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)
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/mem-claim/Makefile b/tools/tests/mem-claim/Makefile
index 76ba3e3c8b..6790e48417 100644
--- a/tools/tests/mem-claim/Makefile
+++ b/tools/tests/mem-claim/Makefile
@@ -2,26 +2,7 @@ XEN_ROOT = $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 TARGET := test-mem-claim
-
-.PHONY: all
-all: $(TARGET)
-
-.PHONY: clean
-clean:
-	$(RM) -- *.o $(TARGET) $(DEPS_RM)
-
-.PHONY: distclean
-distclean: clean
-	$(RM) -- *~
-
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
+TARGETS := $(TARGET)
 
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
@@ -35,4 +16,4 @@ LDFLAGS += $(APPEND_LDFLAGS)
 $(TARGET): test-mem-claim.o
 	$(CC) -o $@ $< $(LDFLAGS)
 
--include $(DEPS_INCLUDE)
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/paging-mempool/Makefile b/tools/tests/paging-mempool/Makefile
index a1e12584ce..9ebeb24ab6 100644
--- a/tools/tests/paging-mempool/Makefile
+++ b/tools/tests/paging-mempool/Makefile
@@ -2,26 +2,7 @@ XEN_ROOT = $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 TARGET := test-paging-mempool
-
-.PHONY: all
-all: $(TARGET)
-
-.PHONY: clean
-clean:
-	$(RM) -- *.o $(TARGET) $(DEPS_RM)
-
-.PHONY: distclean
-distclean: clean
-	$(RM) -- *~
-
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
+TARGETS := $(TARGET)
 
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
@@ -35,4 +16,4 @@ LDFLAGS += $(APPEND_LDFLAGS)
 $(TARGET): test-paging-mempool.o
 	$(CC) -o $@ $< $(LDFLAGS)
 
--include $(DEPS_INCLUDE)
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/pdx/Makefile b/tools/tests/pdx/Makefile
index 3c431d7c78..a5129a8282 100644
--- a/tools/tests/pdx/Makefile
+++ b/tools/tests/pdx/Makefile
@@ -3,36 +3,7 @@ include $(XEN_ROOT)/tools/Rules.mk
 
 TARGETS := test-pdx-mask test-pdx-offset
 
-.PHONY: all
-all: $(TARGETS)
-
-.PHONY: run
-run: $(TARGETS)
-ifeq ($(CC),$(HOSTCC))
-	set -e;             \
-	for test in $? ; do \
-		./$$test ;  \
-	done
-else
-	$(warning HOSTCC != CC, will not run test)
-endif
-
-.PHONY: 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))
+DEPS_RM += pdx.h
 
 pdx.h: $(XEN_ROOT)/xen/include/xen/pdx.h
 	sed -e '/^#[[:space:]]*include/d' <$< >$@
@@ -47,4 +18,4 @@ test-pdx-offset: CFLAGS += -DCONFIG_PDX_OFFSET_COMPRESSION
 test-pdx-%: test-pdx.c pdx.h
 	$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) -o $@ $< $(APPEND_CFLAGS)
 
--include $(DEPS_INCLUDE)
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/rangeset/Makefile b/tools/tests/rangeset/Makefile
index e3bfce471c..c76746ce7a 100644
--- a/tools/tests/rangeset/Makefile
+++ b/tools/tests/rangeset/Makefile
@@ -2,30 +2,9 @@ XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 TARGET := test-rangeset
+TARGETS := $(TARGET)
 
-.PHONY: all
-all: $(TARGET)
-
-.PHONY: run
-run: $(TARGET)
-	./$<
-
-.PHONY: clean
-clean:
-	$(RM) -- *.o $(TARGET) $(DEPS_RM) list.h rangeset.h rangeset.c
-
-.PHONY: distclean
-distclean: clean
-	$(RM) -- *~
-
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC)/tests/,$(TARGET))
+DEPS_RM += list.h rangeset.h rangeset.c
 
 list.h: $(XEN_ROOT)/xen/include/xen/list.h
 rangeset.h: $(XEN_ROOT)/xen/include/xen/rangeset.h
@@ -47,4 +26,4 @@ test-rangeset.o rangeset.o: list.h rangeset.h
 test-rangeset: rangeset.o test-rangeset.o
 	$(CC) $^ -o $@ $(LDFLAGS)
 
--include $(DEPS_INCLUDE)
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/resource/Makefile b/tools/tests/resource/Makefile
index 09d678fffe..764e34f3fa 100644
--- a/tools/tests/resource/Makefile
+++ b/tools/tests/resource/Makefile
@@ -2,30 +2,7 @@ XEN_ROOT = $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 TARGET := test-resource
-
-.PHONY: all
-all: $(TARGET)
-
-.PHONY: run
-run: $(TARGET)
-	./$(TARGET)
-
-.PHONY: clean
-clean:
-	$(RM) -- *.o $(TARGET) $(DEPS_RM)
-
-.PHONY: distclean
-distclean: clean
-	$(RM) -- *~
-
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
+TARGETS := $(TARGET)
 
 CFLAGS += $(CFLAGS_xeninclude)
 CFLAGS += $(CFLAGS_libxenctrl)
@@ -43,4 +20,4 @@ LDFLAGS += $(APPEND_LDFLAGS)
 $(TARGET): test-resource.o
 	$(CC) -o $@ $< $(LDFLAGS)
 
--include $(DEPS_INCLUDE)
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/tsx/Makefile b/tools/tests/tsx/Makefile
index 0bb7e70103..817a63b085 100644
--- a/tools/tests/tsx/Makefile
+++ b/tools/tests/tsx/Makefile
@@ -2,29 +2,7 @@ XEN_ROOT = $(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 TARGET := test-tsx
-
-.PHONY: all
-all: $(TARGET)
-
-.PHONY: clean
-clean:
-	$(RM) -- *.o $(TARGET) $(DEPS_RM)
-
-.PHONY: distclean
-distclean: clean
-	$(RM) -- *~
-
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
-
-.PHONY: uninstall
-uninstall:
+TARGETS := $(TARGET)
 
 CFLAGS += -I$(XEN_ROOT)/tools/libs/ctrl -I$(XEN_ROOT)/tools/libs/guest
 CFLAGS += $(CFLAGS_xeninclude)
@@ -41,4 +19,4 @@ LDFLAGS += $(APPEND_LDFLAGS)
 $(TARGET): test-tsx.o
 	$(CC) -o $@ $< $(LDFLAGS)
 
--include $(DEPS_INCLUDE)
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/vpci/Makefile b/tools/tests/vpci/Makefile
index 97359ff67f..597303e31d 100644
--- a/tools/tests/vpci/Makefile
+++ b/tools/tests/vpci/Makefile
@@ -2,36 +2,12 @@ XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
 TARGET := test_vpci
-
-.PHONY: all
-all: $(TARGET)
-
-.PHONY: run
-run: $(TARGET)
-ifeq ($(CC),$(HOSTCC))
-	./$(TARGET)
-else
-	$(warning HOSTCC != CC, will not run test)
-endif
+TARGETS := $(TARGET)
 
 $(TARGET): vpci.c vpci.h list.h main.c emul.h
 	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
 
-.PHONY: clean
-clean:
-	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h
-
-.PHONY: distclean
-distclean: clean
-
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(INSTALL_PROG) $(TARGET) $(DESTDIR)$(LIBEXEC)/tests
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
+DEPS_RM += vpci.h vpci.c list.h
 
 vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
 	# Remove includes and add the test harness header
@@ -41,3 +17,5 @@ list.h: $(XEN_ROOT)/xen/include/xen/list.h
 vpci.h: $(XEN_ROOT)/xen/include/xen/vpci.h
 list.h vpci.h:
 	sed -e '/#include/d' <$< >$@
+
+include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/xenstore/Makefile b/tools/tests/xenstore/Makefile
index 2ee4a1327e..56cfe07f25 100644
--- a/tools/tests/xenstore/Makefile
+++ b/tools/tests/xenstore/Makefile
@@ -1,31 +1,8 @@
 XEN_ROOT=$(CURDIR)/../../..
 include $(XEN_ROOT)/tools/Rules.mk
 
-TARGETS-y := test-xenstore
-TARGETS := $(TARGETS-y)
-
-.PHONY: all
-all: build
-
-.PHONY: build
-build: $(TARGETS)
-
-.PHONY: clean
-clean:
-	$(RM) -- *.o $(TARGETS) $(DEPS_RM)
-
-.PHONY: distclean
-distclean: clean
-	$(RM) -- *~
-
-.PHONY: install
-install: all
-	$(INSTALL_DIR) $(DESTDIR)$(LIBEXEC)/tests
-	$(if $(TARGETS),$(INSTALL_PROG) $(TARGETS) $(DESTDIR)$(LIBEXEC)/tests)
-
-.PHONY: uninstall
-uninstall:
-	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC)/tests/,$(TARGETS))
+TARGET := test-xenstore
+TARGETS := $(TARGET)
 
 CFLAGS += $(CFLAGS_libxenstore)
 CFLAGS += $(APPEND_CFLAGS)
@@ -41,4 +18,4 @@ endif
 test-xenstore: test-xenstore.o
 	$(CC) -o $@ $< $(LDFLAGS)
 
--include $(DEPS_INCLUDE)
+include $(XEN_ROOT)/tools/tests/Rules.mk
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:14:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:14:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238759.1540310 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxL-0003bP-Hf; Mon, 23 Feb 2026 10:14:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238759.1540310; Mon, 23 Feb 2026 10:14:23 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxL-0003Zt-8O; Mon, 23 Feb 2026 10:14:23 +0000
Received: by outflank-mailman (input) for mailman id 1238759;
 Mon, 23 Feb 2026 10:14: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSxK-0003AC-7W
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:14:22 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6ae8d720-10a0-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:14:20 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 5945441202E0;
 Mon, 23 Feb 2026 05:14:01 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ae8d720-10a0-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 5/7] tools/tests/common: ensure error messages have a newline
Date: Mon, 23 Feb 2026 10:14:09 +0000
Message-ID: <b41bf6aed1fb428fd8097c4afb414d88664b2b05.1771840831.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840831.git.edwin.torok@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Otherwise messages from the next test will end up on the same line as an
error message from a previous test.
(calling `fail` is not fatal).

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/common/tests.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/tests/common/tests.h b/tools/tests/common/tests.h
index f0df616e3e..add847a46a 100644
--- a/tools/tests/common/tests.h
+++ b/tools/tests/common/tests.h
@@ -6,12 +6,12 @@ extern unsigned int nr_failures;
 #define fail(fmt, ...)                          \
 ({                                              \
     nr_failures++;                              \
-    (void)printf(fmt, ##__VA_ARGS__);           \
+    (void)printf(fmt"\n", ##__VA_ARGS__);           \
 })
 
 #define verify(exp, fmt, args...) \
 while (!(exp)) { \
-    printf(fmt, ## args); \
+    printf(fmt"\n", ## args); \
     exit(EX_SOFTWARE); \
 }
 
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:14:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:14:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238760.1540329 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxM-00048j-W5; Mon, 23 Feb 2026 10:14:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238760.1540329; Mon, 23 Feb 2026 10:14: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 1vuSxM-00047H-R9; Mon, 23 Feb 2026 10:14:24 +0000
Received: by outflank-mailman (input) for mailman id 1238760;
 Mon, 23 Feb 2026 10:14: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSxL-0002wR-4C
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:14:23 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b43dba8-10a0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:14:21 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id DD394412248C;
 Mon, 23 Feb 2026 05:14:01 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b43dba8-10a0-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 6/7] tools/tests/tsx: move guest creation to common area
Date: Mon, 23 Feb 2026 10:14:10 +0000
Message-ID: <78e4cef251a188713e4b2e13fd6185cc2f1d856b.1771840831.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840831.git.edwin.torok@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

So that other tests can reuse the creation of HVM/PV tests.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/common/guests.c | 87 +++++++++++++++++++++++++++++++++++++
 tools/tests/common/guests.h | 11 +++++
 tools/tests/tsx/Makefile    |  2 +
 tools/tests/tsx/test-tsx.c  | 78 ++++-----------------------------
 4 files changed, 108 insertions(+), 70 deletions(-)
 create mode 100644 tools/tests/common/guests.c
 create mode 100644 tools/tests/common/guests.h

diff --git a/tools/tests/common/guests.c b/tools/tests/common/guests.c
new file mode 100644
index 0000000000..bb33bfd8c0
--- /dev/null
+++ b/tools/tests/common/guests.c
@@ -0,0 +1,87 @@
+#define _GNU_SOURCE
+#include "guests.h"
+#include "tests.h"
+
+#include <err.h>
+#include <errno.h>
+#include <string.h>
+
+xc_interface *xch;
+xc_physinfo_t physinfo;
+bool xen_has_pv = true, xen_has_hvm = true;
+
+void test_guest_init(void)
+{
+    int rc;
+    xch = xc_interface_open(NULL, NULL, 0);
+
+    if ( !xch )
+        err(1, "xc_interface_open");
+
+    rc = xc_physinfo(xch, &physinfo);
+    if ( rc )
+        err(1, "Failed to obtain physinfo");
+
+    xen_has_hvm = physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hvm;
+    xen_has_pv = physinfo.capabilities & XEN_SYSCTL_PHYSCAP_pv;
+}
+
+void test_guest(struct xen_domctl_createdomain *c)
+{
+    uint32_t domid = 0;
+    int rc;
+
+    if (!xch)
+        return fail("test_guest_init() not called");
+
+    rc = xc_domain_create(xch, &domid, c);
+    if ( rc )
+        return fail("  Domain create failure: %d - %s\n",
+                    errno, strerror(errno));
+
+    printf("  Created d%u\n", domid);
+
+    test_guest_domid(domid);
+
+    rc = xc_domain_destroy(xch, domid);
+    if ( rc )
+        fail("  Failed to destroy domain: %d - %s\n",
+             errno, strerror(errno));
+}
+
+void test_guests(void)
+{
+    if ( xen_has_pv )
+    {
+        struct xen_domctl_createdomain c = {
+            .max_vcpus = 1,
+            .max_grant_frames = 1,
+            .grant_opts = XEN_DOMCTL_GRANT_version(1),
+        };
+
+        printf("Testing PV guest\n");
+        test_guest(&c);
+    }
+
+    if ( xen_has_hvm )
+    {
+        struct xen_domctl_createdomain c = {
+            .flags = XEN_DOMCTL_CDF_hvm,
+            .max_vcpus = 1,
+            .max_grant_frames = 1,
+            .grant_opts = XEN_DOMCTL_GRANT_version(1),
+            .arch = {
+                .emulation_flags = XEN_X86_EMU_LAPIC,
+            },
+        };
+
+        if ( physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap )
+            c.flags |= XEN_DOMCTL_CDF_hap;
+        else if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_shadow) )
+            return fail("  HVM available, but neither HAP nor Shadow\n");
+
+        printf("Testing HVM guest\n");
+        test_guest(&c);
+    }
+}
+
diff --git a/tools/tests/common/guests.h b/tools/tests/common/guests.h
new file mode 100644
index 0000000000..8cd6fc1b68
--- /dev/null
+++ b/tools/tests/common/guests.h
@@ -0,0 +1,11 @@
+#include <xenctrl.h>
+#include <xen/domctl.h>
+
+extern void test_guest_domid(domid_t domid);
+extern xc_interface *xch;
+extern xc_physinfo_t physinfo;
+extern bool xen_has_pv, xen_has_hvm;
+
+void test_guest_init(void);
+void test_guest(struct xen_domctl_createdomain *c);
+void test_guests(void);
diff --git a/tools/tests/tsx/Makefile b/tools/tests/tsx/Makefile
index 54852b0327..3ccb6dcb9f 100644
--- a/tools/tests/tsx/Makefile
+++ b/tools/tests/tsx/Makefile
@@ -11,4 +11,6 @@ CFLAGS += $(CFLAGS_libxenguest)
 LDFLAGS += $(LDLIBS_libxenctrl)
 LDFLAGS += $(LDLIBS_libxenguest)
 
+$(TARGET): ../common/guests.o
+
 include $(XEN_ROOT)/tools/tests/Rules.mk
diff --git a/tools/tests/tsx/test-tsx.c b/tools/tests/tsx/test-tsx.c
index ab099e9038..b80a812a74 100644
--- a/tools/tests/tsx/test-tsx.c
+++ b/tools/tests/tsx/test-tsx.c
@@ -31,6 +31,7 @@
 #include <xen-tools/common-macros.h>
 
 #include "tests.h"
+#include "guests.h"
 #include "xg_private.h"
 
 enum {
@@ -45,7 +46,6 @@ enum {
 #define MSR_TSX_CTRL                        0x00000122
 #define MSR_MCU_OPT_CTRL                    0x00000123
 
-static xc_interface *xch;
 
 /*
  * Policies, arranged as an array for easy collection of all of them.  We
@@ -60,10 +60,6 @@ static struct xc_cpu_policy policies[6];
 #define pv_default   policies[XEN_SYSCTL_cpu_policy_pv_default]
 #define hvm_default  policies[XEN_SYSCTL_cpu_policy_hvm_default]
 
-static bool xen_has_pv = true, xen_has_hvm = true;
-
-static xc_physinfo_t physinfo;
-
 static enum rtm_behaviour {
     RTM_UD,
     RTM_OK,
@@ -354,24 +350,16 @@ static void test_def_max_policies(void)
     }
 }
 
-static void test_guest(struct xen_domctl_createdomain *c)
+void test_guest_domid(domid_t domid)
 {
-    uint32_t domid = 0;
     int rc;
 
-    rc = xc_domain_create(xch, &domid, c);
-    if ( rc )
-        return fail("  Domain create failure: %d - %s\n",
-                    errno, strerror(errno));
-
-    printf("  Created d%u\n", domid);
-
     rc = xc_cpu_policy_get_domain(xch, domid, &guest_policy);
     if ( rc )
     {
         fail("  Failed to obtain domain policy: %d - %s\n",
              errno, strerror(errno));
-        goto out;
+        return;
     }
 
     dump_tsx_details(&guest_policy.policy, "Cur:");
@@ -408,7 +396,7 @@ static void test_guest(struct xen_domctl_createdomain *c)
         {
             fail("  Failed to set domain policy: %d - %s\n",
                  errno, strerror(errno));
-            goto out;
+            return;
         }
 
         /* Re-get the new policy. */
@@ -417,7 +405,7 @@ static void test_guest(struct xen_domctl_createdomain *c)
         {
             fail("  Failed to obtain domain policy: %d - %s\n",
                  errno, strerror(errno));
-            goto out;
+            return;
         }
 
         dump_tsx_details(&guest_policy.policy, "Cur:");
@@ -426,58 +414,17 @@ static void test_guest(struct xen_domctl_createdomain *c)
         {
             fail("  Expected CPUID.7[0].b 0x%08x differs from actual 0x%08x\n",
                  _7b0, guest_policy.policy.feat.raw[0].b);
-            goto out;
+            return;
         }
 
         if ( guest_policy.policy.feat.raw[0].d != _7d0 )
         {
             fail("  Expected CPUID.7[0].d 0x%08x differs from actual 0x%08x\n",
                  _7d0, guest_policy.policy.feat.raw[0].d);
-            goto out;
+            return;
         }
     }
 
- out:
-    rc = xc_domain_destroy(xch, domid);
-    if ( rc )
-        fail("  Failed to destroy domain: %d - %s\n",
-             errno, strerror(errno));
-}
-
-static void test_guests(void)
-{
-    if ( xen_has_pv )
-    {
-        struct xen_domctl_createdomain c = {
-            .max_vcpus = 1,
-            .max_grant_frames = 1,
-            .grant_opts = XEN_DOMCTL_GRANT_version(1),
-        };
-
-        printf("Testing PV guest\n");
-        test_guest(&c);
-    }
-
-    if ( xen_has_hvm )
-    {
-        struct xen_domctl_createdomain c = {
-            .flags = XEN_DOMCTL_CDF_hvm,
-            .max_vcpus = 1,
-            .max_grant_frames = 1,
-            .grant_opts = XEN_DOMCTL_GRANT_version(1),
-            .arch = {
-                .emulation_flags = XEN_X86_EMU_LAPIC,
-            },
-        };
-
-        if ( physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hap )
-            c.flags |= XEN_DOMCTL_CDF_hap;
-        else if ( !(physinfo.capabilities & XEN_SYSCTL_PHYSCAP_shadow) )
-            return fail("  HVM available, but neither HAP nor Shadow\n");
-
-        printf("Testing HVM guest\n");
-        test_guest(&c);
-    }
 }
 
 /* Obtain some general data, then run the tests. */
@@ -521,11 +468,6 @@ static void test_tsx(void)
 
     dump_tsx_details(&host.policy, "Host:");
 
-    rc = xc_physinfo(xch, &physinfo);
-    if ( rc )
-        return fail("Failed to obtain physinfo: %d - %s\n",
-                    errno, strerror(errno));
-
     printf("  Got %u CPUs\n", physinfo.max_cpu_id + 1);
 
     test_tsx_msrs();
@@ -538,11 +480,7 @@ int test_main(int argc, char *argv[argc+1])
 {
     printf("TSX tests\n");
 
-    xch = xc_interface_open(NULL, NULL, 0);
-
-    if ( !xch )
-        err(1, "xc_interface_open");
-
+    test_guest_init();
     test_tsx();
 
     return !!nr_failures;
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:14:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:14:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238761.1540336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuSxN-0004Fl-Ii; Mon, 23 Feb 2026 10:14:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238761.1540336; Mon, 23 Feb 2026 10: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 1vuSxN-0004Du-6a; Mon, 23 Feb 2026 10:14:25 +0000
Received: by outflank-mailman (input) for mailman id 1238761;
 Mon, 23 Feb 2026 10:14: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=3dwo=A3=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuSxL-0002wR-QC
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:14:23 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6b97a997-10a0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:14:21 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTPS id 6CF15412248F;
 Mon, 23 Feb 2026 05:14:02 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6b97a997-10a0-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH 7/7] tools/tests: print more debug info
Date: Mon, 23 Feb 2026 10:14:11 +0000
Message-ID: <927bbe915b3e5af56e5fafeede47c090eb55236f.1771840831.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1771840831.git.edwin.torok@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Enable xentoollog at XTL_DEBUG level.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/common/guests.c | 4 +++-
 tools/tests/tsx/Makefile    | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/tests/common/guests.c b/tools/tests/common/guests.c
index bb33bfd8c0..a46ff2f68d 100644
--- a/tools/tests/common/guests.c
+++ b/tools/tests/common/guests.c
@@ -9,11 +9,13 @@
 xc_interface *xch;
 xc_physinfo_t physinfo;
 bool xen_has_pv = true, xen_has_hvm = true;
+xentoollog_logger *logger;
 
 void test_guest_init(void)
 {
     int rc;
-    xch = xc_interface_open(NULL, NULL, 0);
+    logger = (xentoollog_logger*)xtl_createlogger_stdiostream(stderr, XTL_DEBUG, 0);
+    xch = xc_interface_open(logger, NULL, 0);
 
     if ( !xch )
         err(1, "xc_interface_open");
diff --git a/tools/tests/tsx/Makefile b/tools/tests/tsx/Makefile
index 3ccb6dcb9f..cbcae6d090 100644
--- a/tools/tests/tsx/Makefile
+++ b/tools/tests/tsx/Makefile
@@ -10,6 +10,7 @@ CFLAGS += $(CFLAGS_libxenguest)
 
 LDFLAGS += $(LDLIBS_libxenctrl)
 LDFLAGS += $(LDLIBS_libxenguest)
+LDFLAGS += $(LDLIBS_libxentoollog)
 
 $(TARGET): ../common/guests.o
 
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:42:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:42:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238971.1540352 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuTOi-0002DY-M6; Mon, 23 Feb 2026 10:42:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238971.1540352; Mon, 23 Feb 2026 10: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 1vuTOi-0002DR-JT; Mon, 23 Feb 2026 10:42:40 +0000
Received: by outflank-mailman (input) for mailman id 1238971;
 Mon, 23 Feb 2026 10:42: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuTOg-0002DJ-Qy
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:42:38 +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 5e7fcc92-10a4-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:42:37 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so36766695e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 02:42:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a42eb86bsm84804325e9.15.2026.02.23.02.42.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 02:42:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e7fcc92-10a4-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771843357; x=1772448157; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6pgzws46isvFUEBd9jQMx5x4y1kwIq7uBsNdnmg/sgI=;
        b=Ee4LFSZ/NGdJRXndnn173GhEp1nqWNyMc+AMau+S1c7kf8LSjbmp3zuEKZUpsyEzbY
         2lDBHZBncZBMalFaUjNqCjC0YG7gP6VVn8VR3obzW8Zxor5IKoqRC1Tig6yFNEKIvL4g
         WY2IkVtUJ8pPmxaZyGx0rkL2glfJxKwbbAM5IxxyGAzXKEpZob7W9XvcDu4AhSABVdRX
         mEkoIZyWNdQ4glyPQsbz4nSsbTzlt+RaO5We2rn+HvpIbPpdz012hM35T/GqZP/gtMer
         BfywIVI79nNHUCopR6EAjQwxfdlkfAIjWZTtZyRHmdPEA3G/CNhTIL6zjhdulo94nIRO
         lBcA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771843357; x=1772448157;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6pgzws46isvFUEBd9jQMx5x4y1kwIq7uBsNdnmg/sgI=;
        b=uj7MSxdDH5OS/GVaUxBLoJN0fHCZSzoJsa8T1ccdqRP0sbG5FZTAllenIq8CxlHVsH
         i3U34DTmbS7UEiBa6333/i8U6iTkUm60qEYmbxjFdGsz6xk2x6d6hIxQg3FbWuR622oR
         c5xkruNeWw/aW2MVwmjsjaHZLY1+I282kdycTryy/Iz4fRsdGIlrLdxPUGtcHCod0tSj
         WmncD3X40UBbvOPuOn+g7Y+sp/HSQKX6LOq/EDktpRhDeMnPxtFOGRj2iP0O9kTxy8yN
         KW7nErb70M+NIMt5HqgpLkqkiYz8/lXYquC1dkh3ykBaFU4mkysvg09w460KAHl1JCYJ
         i0lw==
X-Forwarded-Encrypted: i=1; AJvYcCXhoL81qSoqAPT48NbBM4Visv1sGNfG53+/fB6AIo7YR/CULDI0PyEtXtQD/kpG9YO+Rj2uzzCeJmk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwwHzove8Z6lu3SY1GdZt8E9gd+NvEIYDEsHDqyLfd8Xnpbjwxk
	LDPzvnfinBxewRYCGkJp11lnI0EWFJHXyGTFy3+2BAvxddyssXda9jJve0z7PB+E5w==
X-Gm-Gg: AZuq6aJffZftdUDIcMQ5KgvHffLDVfb1v85WlaVKieW1kyZ9iugTs1aJ67ZoBb0jOyL
	q2zERtlnySQ43o/ORKJMrEpBAHDzU3qRoYUDcQQGKNk+lXfP8ko0RranR8s+Zg0HCBgiTX3kCdz
	CY/2nhS+GqpCFbxkL6jMtFKBDIbEw9F1MN/mbi/Di2m4KfF0HvIeH0UIaspj5BUCpG6H6Z2lfK6
	ssslp/4Rgmu/muvRgeZJTLH/3C7cuaKysdgX7VdjbglR1TG3ElDSFm5VzzngUtoJg+8cFWM2ddT
	GZVHx3njFPeS7zCmXBnkkhVsitsV0LONPlQQaUywCPz3wO/nAMnt+eJb4VBJyvsKVcWR6PW9UEu
	39tDTPYWXU86U1bt9AqkBT7jghMNH0VrYmrRo/bB4YtxPDP4MwrfLjAnHZFUU+LYEYXw1ASxJC4
	/R65RkLxqs0Ti+Y0oNCDmPGRjULwciFpVKjictCBDhg7tcfDmyvgWOPTzZ98nQNOiS85VtHgBkT
	qtKsRFyfqKAr7I=
X-Received: by 2002:a05:600c:8716:b0:471:1717:411 with SMTP id 5b1f17b1804b1-483a95e9a7fmr139623095e9.24.1771843356714;
        Mon, 23 Feb 2026 02:42:36 -0800 (PST)
Message-ID: <dba3fb3f-b5c9-460c-85fc-761f58e140fc@suse.com>
Date: Mon, 23 Feb 2026 11:42:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 0/7] Factor out common build rules and helpers in
 tools/tests
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org, Denis Mukhin <dmukhin@ford.com>
References: <cover.1771840831.git.edwin.torok@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: <cover.1771840831.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:14, Edwin Török wrote:
> There are a lot of duplicate rules and code in tools/tests.
> To simplify writing new tests move common build rules into a
> `tools/tests/Rules.mk`, and helper macros/functions into `common/{tests,guests}.{c,h}`.
> 
> This also ensures that CFLAGS are applied consistently across all tests (e.g. one test failed
> to build now due to an unused variable error).
> 
> Guest creation also needs to test for the presence of PV, HVM HAP or HVM shadow support
> in Xen and create a guest accordingly. This can be shared.
> 
> After these changes the per-test Makefile only contains entries specific
> to the test (its name, dependencies, etc.) and avoids having to
> copy&paste boilerplate code.
> 
> `tools/tests/x86_emulator` remains unchanged, because the Makefile
> contains a lot of conditional build logic specific to that test.
> 
> An upcoming patch series will introduce new tests using the simplified
> Makefile and shared helpers.
> 
> For convenience this is also available at:
> https://gitlab.com/xen-project/people/edwintorok/xen/-/compare/staging...private%2Fedvint%2Fmigration-tests2?from_project_id=2336572
> https://gitlab.com/xen-project/people/edwintorok/xen/-/pipelines/2342318716
> 
> Edwin Török (7):
>   tools/tests/*/Makefile: factor out common PHONY rules into Rules.mk
>   tools/tests/vpci/main.c: drop unused variables
>   tools/tests/*/Makefile: factor out build rules
>   tools/tests: factor out common helpers
>   tools/tests/common: ensure error messages have a newline
>   tools/tests/tsx: move guest creation to common area
>   tools/tests: print more debug info

Just fyi that there is also
https://lists.xen.org/archives/html/xen-devel/2026-02/msg00751.html.
Can the two of you maybe work together to have a single resulting approach?

Jan

>  tools/tests/Rules.mk                          | 60 +++++++++++++
>  tools/tests/common/guests.c                   | 89 +++++++++++++++++++
>  tools/tests/common/guests.h                   | 11 +++
>  tools/tests/common/tests.c                    | 15 ++++
>  tools/tests/common/tests.h                    | 18 ++++
>  tools/tests/cpu-policy/Makefile               | 41 ++-------
>  tools/tests/cpu-policy/test-cpu-policy.c      |  7 +-
>  tools/tests/domid/Makefile                    | 37 ++------
>  tools/tests/domid/test-domid.c                | 11 +--
>  tools/tests/mem-claim/Makefile                | 31 +------
>  tools/tests/mem-claim/test-mem-claim.c        |  9 +-
>  tools/tests/paging-mempool/Makefile           | 31 +------
>  .../paging-mempool/test-paging-mempool.c      |  9 +-
>  tools/tests/pdx/Makefile                      | 37 +-------
>  tools/tests/pdx/test-pdx.c                    |  3 +-
>  tools/tests/rangeset/Makefile                 | 36 +-------
>  tools/tests/rangeset/test-rangeset.c          |  3 +-
>  tools/tests/resource/Makefile                 | 35 +-------
>  tools/tests/resource/test-resource.c          |  9 +-
>  tools/tests/tsx/Makefile                      | 35 +-------
>  tools/tests/tsx/test-tsx.c                    | 88 +++---------------
>  tools/tests/vpci/.gitignore                   |  1 +
>  tools/tests/vpci/Makefile                     | 36 ++------
>  tools/tests/vpci/main.c                       |  6 +-
>  tools/tests/xenstore/Makefile                 | 37 +-------
>  tools/tests/xenstore/test-xenstore.c          |  4 +-
>  26 files changed, 261 insertions(+), 438 deletions(-)
>  create mode 100644 tools/tests/Rules.mk
>  create mode 100644 tools/tests/common/guests.c
>  create mode 100644 tools/tests/common/guests.h
>  create mode 100644 tools/tests/common/tests.c
>  create mode 100644 tools/tests/common/tests.h
>  create mode 100644 tools/tests/vpci/.gitignore
> 



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:44:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:44:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238980.1540362 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuTQp-0002oE-6r; Mon, 23 Feb 2026 10:44:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238980.1540362; Mon, 23 Feb 2026 10:44: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 1vuTQp-0002o7-49; Mon, 23 Feb 2026 10:44:51 +0000
Received: by outflank-mailman (input) for mailman id 1238980;
 Mon, 23 Feb 2026 10:44: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuTQo-0002o1-Ku
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:44:50 +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 ac281a9d-10a4-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 11:44:47 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-43770c94dfaso4164466f8f.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 02:44:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c00768sm18491437f8f.10.2026.02.23.02.44.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 02:44:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ac281a9d-10a4-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771843487; x=1772448287; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=0TlhNjOCRZ75zuXEhNR5Mm6Xt/RDefNpKdfSx0XnpKg=;
        b=es3s+RZqAwW/3+1iU0EVtmIECzTr+0xpQ5fYghGryQ0lDvMjoFWYymh1jmym4bahqK
         /ueyqu5HrvS8BHdeN2QPuHhE9NfKm4dE5RCbfc8XIWjUF/pj7kRJEFqLrgFJD+/dNfO2
         nZrdfZTR+ApV/Gp8azc1OiVVPbRMQXZQF/brPd7ihMaVr5X04pmR/dHlagwSRrq5XvKY
         GX7SQZbAjrmeTay3k5WfkQOkTiXOLwUH/XU0nJ7PX4pkKdDu+nD/pjsq70xTXKJawi81
         RbcvpAPv4izjz0ChodayRxFeKMUpk7bIP3Q/xukiJzXAsR3s1AMXf2scUQe2ScfLtemX
         h7sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771843487; x=1772448287;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0TlhNjOCRZ75zuXEhNR5Mm6Xt/RDefNpKdfSx0XnpKg=;
        b=ng3xXDqFrHSB/vfRzsT/iVGB6GF5VFMUE2a7VtPsgp/n/TgMrREHKTQoy6XfWaP0oC
         6IBhYaAFMNbSImQs61p8FqKxqB4hvg3uq89HwiFe4o8awP8RgWy+yLMvbOBrcaBYVjbf
         Ff7a/XdP+OLZodibVuJKZD7+kgIgiQKv/uuzx5bKb7AGw8bSh2CsyS7JEZxcsopE3jqp
         YquK0vX8Nbk07AvRVunu9IsW1JLdnRsCndUeTDCkW0/R7tTq5rgx68PDNuivN9PTpnBa
         euqe+FSI8YObitWvGFFF9HI2tcAE6yVulYBrbHCUumz4UJypvJkrRbgH9Fa6mdX9gzJY
         96ig==
X-Forwarded-Encrypted: i=1; AJvYcCWTQMHtZBpMGZajsufuWe64vaAy7qph0teXlWxKOshEFSNnTSbLiJvAlMC6Ug+a4AgmVDgJsPNCCtQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyMHsT8BGMURIHc4U8kG+8o67RTvd3M56q0tCtZw9T6Qek2QENj
	4/aZaUnTyIkmZOA/TSqCVZtzTldPkplv8TgrEvCot4DSxIl7WWw8ntFoBvd28YffgQ==
X-Gm-Gg: ATEYQzwhilj6XS/TaibYiDPEcXU1QKTqih0SqwMT0l2r3Ju/0aBL+JEY68xJtGymnM5
	PPve83UqFyrj/f9XqSEhCwreu1JxP7xTQBNpCDuKQENNfhfbUghJHmfCE2loQIKXFHysq2t6nZe
	s7p8OGboccIYZ5X3ZnZTPOMBTjerI9URWAJo00qQynRQSoRqOqNBRD4DPqFR4KMxQhaD37k46Lz
	vN5OdYx1KRNgggd3xd3T/Tf2mtETfuJVsxwVs3Zv4/4rAvmuXBCAA9CkQPYwd2F34g0VwjBr/Lo
	jV7ak8rv/NL2FczSGG54bXonimkuzwR7QoAjt57JJ3nEP1BEID/DD1qddTYWKZliB9shiSUQeL2
	Ea8nKBk23zcmCS2l/aI5Yzq5t/z5p/cwsibHY2F3HtFmapp2JcKSG6BY9iCyNOVAvj7NhimA1AH
	GH6pbHEBaH6+uiYG/ndQp/GeM6PhY1MhjyXhX07SVrOhGsaTq9N6u7oB8N/hGJXYe7WcjcaqGku
	MBq/c96KAdtrmc=
X-Received: by 2002:a05:6000:601:b0:432:c0e8:4a33 with SMTP id ffacd0b85a97d-4396f15b30amr13550355f8f.22.1771843487501;
        Mon, 23 Feb 2026 02:44:47 -0800 (PST)
Message-ID: <828c24ce-fb40-4469-80cc-0c8d8f40159a@suse.com>
Date: Mon, 23 Feb 2026 11:44:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 06/12] xen: Include suitable headers to make declarations
 visible
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-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: <20260220214653.3497384-7-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.02.2026 22:46, Andrew Cooper wrote:
> A range of functions can't see their declarations, requiring the inclusion of
> appropriate headers.
> 
> For pv/mm.h and pv/traps.h, this requires adjustements to become standalone.
> 
> In pv/mm.h, swap xen/lib.h for xen/bug.h now that ASSERT_UNREACHABLE() has
> moved.  For pv/traps.h, pv_trap_callback_registered() needs to see a complete
> struct vcpu, and xen/sched.h is not something appropriate to pull in
> conditionally.
> 
> stack-protector.c can't see the declaration of __stack_chk_guard, and fixing
> that reveals that stack-protector.h needs get_cycles() too.
> 
> 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 Feb 23 10:45:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:45:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238989.1540374 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuTRb-0003IW-GX; Mon, 23 Feb 2026 10:45:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238989.1540374; Mon, 23 Feb 2026 10:45: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 1vuTRb-0003IO-Ci; Mon, 23 Feb 2026 10:45:39 +0000
Received: by outflank-mailman (input) for mailman id 1238989;
 Mon, 23 Feb 2026 10:45: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuTRa-0003IE-UG
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:45:38 +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 c8c3ada7-10a4-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:45:35 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4836e3288cdso27694995e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 02:45:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31f9475sm238043825e9.14.2026.02.23.02.45.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 02:45:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8c3ada7-10a4-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771843535; x=1772448335; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gez+XyJ1U49Esroum8FQ7DptACwgoCF/NJWJFuR/ccU=;
        b=NVcwdl1rewpRftLDjhe+VW4ksgTUYjp5rmiIw8yhSOOZ8G38YzqC/3PUZIsM0eihDr
         Bs1ufAzMltlaMZX5YVc3gmFeh8VgF5cFWeb7bBE50iMuLoALNUiCSu5N38UTvCubGq6S
         8S7mg8TrnXdlJJXm9mFX6WYKX5pkyLFiH+hu6txiIY9TmRTCPUMwJBDPt7GGYXNSsq0s
         r1ZIzoLaVrWVdalaQU/EifD9xuidYTV9eo9+2uDNkIlqzYzrVoOKUQ7WfMb5GYQxPH09
         awJIOcVFNrZroFyGF86873tOJ5GCrFz2cuooOn2Cf2SlpmnYxU2E7sSBMBBsbkQnXDFH
         3VKA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771843535; x=1772448335;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gez+XyJ1U49Esroum8FQ7DptACwgoCF/NJWJFuR/ccU=;
        b=pDTWvAh+/xaSm9ivOISuT/o0CvaE3kiP2JVPF3KjIUa96oCTph/4WNRPy7iaWYoaLZ
         QKyyzEFM/YXbSy4QabPM3RS9AkD+GMBKiV26jtzfFWcgfSv9vAgZkRyWprYxMIdA8u0Q
         vwQlKKHjDuAr4xCb+7ejE2tJb+OOjTGpbIj3Cf49bCzg5adA89kXdnDJ0pUA65YcVNcm
         4RPkxwkay5ha3ncLasAJQ5dQemllCWmGjeIWHl76e4owkyNSWlpIR2Wi4W1hEUvtnq+a
         6besTpBVtV40AOTwIBj20GvsIevNLgmr3a5G9DC0W9zkaa7XX8Sdj38ssLbsO87YsMpZ
         nq9w==
X-Forwarded-Encrypted: i=1; AJvYcCUH7IzI9X2zOfP3rkfXHLdcBUiplnyv8qnntDA21JIR0cEZ6Ow4RHOrukcyVo9mI0EjqedfObj9vRk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwOmJEt4RsJ7U8haWwTTM15IbUQNAVUR3u7+2mM1f9OQbUPNGwE
	MPyjRqyVj5iFJRThlg/e8bS9qvC2XXc/V8aGcxJFAOgezfNjTEg04NznrIlEOP+FYw==
X-Gm-Gg: AZuq6aKs9Ke3J+xG33XixD7XMXIIWZN0yGREQhR6izTzsQT3ied1pMJ7/wDvS/r1Y27
	JcAZrT+smINF++I6AFBzzQvY8WwH1BxjAdvePQRWBdDHG1+/jFk1tuZtlElYiU+AkRwsA0b+eB9
	Nb+DJ3ah1m12/g6Wq43cmJtC0eY35mzdGBe9b67WEkREz+Sx7XxRq7k/VbzCOafkL1eQLEzn9Yj
	rAJjiiZkf9SaW4xVB4Cm86cH+YRjDT4Mimr9rFFYonN50+WFEE+yz8hbSAhuQ1XDYGSq03fBfbj
	1SzplccBdHPMApeDmjm79q/oxoQCId7RId5UFOM9j3m3DOxxgSnK38o27HjHtWAwpi3364L03s0
	IuqifL85KzEa42uhx5iCH/aJ6/Vrqao67+fUJEg0DZpwYMqa8eIb6DdtKO6QLv4DWmzriXVuhRa
	fLYafZPo4xYtdRYODhazLl7oLS3jKeq6eb2TaxE3DVYYW6UHSlJvJq4TuCi0Y/EWQmHbh0iGVZO
	HPxDK7Z3oIaJz0=
X-Received: by 2002:a05:600c:3b18:b0:483:29f4:26b3 with SMTP id 5b1f17b1804b1-483a94923bamr153889375e9.1.1771843535001;
        Mon, 23 Feb 2026 02:45:35 -0800 (PST)
Message-ID: <5c4c76f5-508c-4917-8fa5-9e3e2ab41926@suse.com>
Date: Mon, 23 Feb 2026 11:45:35 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 07/12] xen/vmac: Const the key parameter of vmac_set_key()
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-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: <20260220214653.3497384-8-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.02.2026 22:46, Andrew Cooper wrote:
> Eclair complains that tboot_gen_domain_integrity() is casting away
> constness (Rule 11.8 violation).
> 
> vmac_set_key() doesn't modify the user_key parameter, so it can become const,
> removing the need to cast.
> 
> 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 Feb 23 10:50:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:50:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1238997.1540383 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuTWK-0004qS-VU; Mon, 23 Feb 2026 10:50:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1238997.1540383; Mon, 23 Feb 2026 10: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 1vuTWK-0004qL-Ss; Mon, 23 Feb 2026 10:50:32 +0000
Received: by outflank-mailman (input) for mailman id 1238997;
 Mon, 23 Feb 2026 10:50: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuTWK-0004qF-6A
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:50:32 +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 7857deb2-10a5-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:50:30 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-48370174e18so22330325e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 02:50:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a316eb08sm284437575e9.0.2026.02.23.02.50.28
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 02:50:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7857deb2-10a5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771843829; x=1772448629; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SQTPopzAqqCq/5PWbsjN/UzcoXhfjO5guQXUy6Y3f0s=;
        b=JpEQpclUY66bmjHN02GZwWrmn8wqrY+2PxnP8im3h5q3lydq0fUaEh/c57hN5eqUTl
         3ilbIM8gZ+YeT7YDmUu4tlZ2ax20epbsmgZXjtx/JxuEwyFYiYzKNTHOodkxpEYeDWgf
         kdPc6f8O+kc/NSh8fvXOTqMJNMoi+RLI34F8hH9urmCxaSWFsiOZkOgchXlqbVQJC853
         JBHK2rhVrMfY3y97aoISBpPMMzdobS3uTY0wR7XcdlQ9fseSCW9xQgbLH+JxNi87TU8s
         SBCfKdFmTWNbPqjP25tVEPVVSKjIBdB/6C7LOLOu3mgJT2eQGrsBcarK88X5fa0Jw+lJ
         s52Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771843829; x=1772448629;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SQTPopzAqqCq/5PWbsjN/UzcoXhfjO5guQXUy6Y3f0s=;
        b=bEbPtFaGS/i2TS1zdf4TjS2c2bfFqZ7bup3NO4AAcyA5vKDuKXzoOTRdrBAHKOQNVX
         yYZBk2DRjpvlFerhb5jPzagHcXKVOfkFV226n27xvn4SVYR5Q8aCmi98mnm0eJO/Cwao
         BlA90D4uUZwdDHE2bu9UFjN3adWM+InkRYf/NWh2YufZWmVByVZprNaBvg56I+bZ3V1/
         A9XSC60r8ZS3fNDmAKB/EqP3lZarnvUxKioaagzEh33wofOKxz/lRKcnN+UT+izh6UQQ
         leU/w4tEkQXMcOC03tn+1nk7NBID4tOsJRMW/lE4yDAAJdIVyLLciylRQ9GEDo3vCKeL
         +4qQ==
X-Forwarded-Encrypted: i=1; AJvYcCVkt8qFWNK9nY184ENOE+bl2CbZtx/xYcXYdZsOrLjL2rUnwU3VncEiyNIiDoJSh1fq2NKqU+XNLGU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyuTkgOt+xTBoyf0dy/MpT29LAO3CaDF1YGPs2R5hIPsAscz5W4
	MvRWiaaSadQyuV9yHGKuaYrwZlbBI4OesZLTglMwW8zAidZeVzNybjMKfAzrXrKKoA==
X-Gm-Gg: AZuq6aJytxO5W5AifeHle3kStoB5SvCbKPkfI26d6ykE2K1eDsr9YooLLfYVgQxSMOy
	+I5Ozr379IMlyx9rPhiqL8frv3NBuv5/LIs+uT0eTQag8WKsLLCjUEQwm5DCmnmgVj2Xn+oUrtY
	LNE6DmDp79NsCH2pffot3FD49SxCndsmDSITPPHSC4Zm76P9ko6fcwlKVFrxYV5CcZWwGdToy1P
	blb/pE06KfeqP5eycJlKrE25uMHURqoeKxiixmbyJMvLTvhMDZ9g01KA95RDOnnRLeOc+oxPn/u
	3dzEWIh5G9mrqGg6b6VGBuptAcHM+Utrj5d5Hc/dvSSh1wQDE1F0GADBPqfEvxixVA5xt2LjlEb
	mEDmpY+vVbhpb5GGemdmSAhsBXdiIFnpAWgWNFM28QxqeuFmo9scWvKsxmM09+fKGYy2nyQ76zw
	TZUC9P3rCZn3psrt9sGf/DZyDcBcS9+V80rKzs+m3mrwoPFUJ6rz6So5Y83N1MydpSb2/cmJZb0
	EeNd+kdMSGnjxXTre3nR4eoAg==
X-Received: by 2002:a05:600c:8b01:b0:475:de14:db1e with SMTP id 5b1f17b1804b1-483a95f8ce9mr137881725e9.24.1771843829574;
        Mon, 23 Feb 2026 02:50:29 -0800 (PST)
Message-ID: <b23d0a09-1aa5-434c-9459-93f537f3c128@suse.com>
Date: Mon, 23 Feb 2026 11:50:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 11/12] xen: Bracket uses of macro parameters
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-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: <20260220214653.3497384-12-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.02.2026 22:46, Andrew Cooper wrote:
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -793,7 +793,7 @@ do {                                                                    \
>  do {                                                                    \
>      int __done = 0;                                                     \
>      _FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p,                         \
> -                         ({ (__done = _done); }), _code);               \
> +                         ({ (__done = (_done)); }), _code);             \

Could I talk you into dropping the unnecessary pair of parentheses (around the
assignment) in exchange?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 10:54:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 10:54:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239005.1540392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuTaV-0005Xq-FB; Mon, 23 Feb 2026 10:54:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239005.1540392; Mon, 23 Feb 2026 10:54:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuTaV-0005Xj-Cd; Mon, 23 Feb 2026 10:54:51 +0000
Received: by outflank-mailman (input) for mailman id 1239005;
 Mon, 23 Feb 2026 10:54: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuTaT-0005Xd-TU
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 10:54:49 +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 12671ceb-10a6-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 11:54:48 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-43638a33157so3901332f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 02:54:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c08b9csm20895961f8f.16.2026.02.23.02.54.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 02:54:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 12671ceb-10a6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771844088; x=1772448888; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=e2h6jqe+O/mqVF17kLIhI9vAFs/00RzKovZE12muX+Q=;
        b=S2qRvc0V3DBnSmuM3k7fP8HdUCzLDA3YYpwAlGNAS/s/jXcjLLczZQa9/FQU3Odf+g
         iyABqs+dl9uxAScp6JjGAiUB3L8eWWzA1+D9JgMeJ87d8Mbj+11ACQT8wZyVuAgTXXmZ
         dUUuro/s81H2WYbZlT/oJ6sRZhRtMsR1DXKmEU1La+XGHHvkuGC0I2F+pNIIo7Md6teN
         /XzMWlJD1ZjGD+EYLqTwgJeZWOZqmxzZgxoDF080xA7O/2X0tNnlv4m5ji3LxiBAdXeh
         2g12QKxNJSjaMQRJo47C/8ntxmKJPphG67Fit9MfDFR3d75vewBy8pdv7qWPjlYlWl1C
         v9qA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771844088; x=1772448888;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=e2h6jqe+O/mqVF17kLIhI9vAFs/00RzKovZE12muX+Q=;
        b=MPcF0JYAW534/B0XpmN6YMwU3pC5j3OvNubspV6s/94RsEEmXKgDHU+/kawyUqd0oZ
         vnw0tT+M+D1bqSHao+lcEsqH20aDicJzrYtYRt3o9JiOcTebP+u6LU9zwskUvSnV+sOm
         vmviv/y0YxYejUxWQbKcTnBRl7Nig/bbb2+FDCjFc8cNCgKfhaXeQbUxST5YPyY2QnXG
         6M7CVNcXXMd+h5RuA/32PMxxu3ov8f8vxAt/Hcfng25pFQqSDU5TRDc3wEJjC+igA/gP
         bKN0Xjwv5UcrOQ+awV1/rrsmRWBXvGN1A3IqgmAzIDa6s/s0D8HBSo0iFyFeseFaMm1f
         Vf2w==
X-Forwarded-Encrypted: i=1; AJvYcCUdVOHE0A1RHTgpzFyFUswdP4T5cBcvJsBn+Y9BUV6hfg0IM1dgYiiDE1iIJ0Dajea1IKWeF0Ub6UQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyCM0Wxx/twfEaCjFXvRSbHx66JuH806FFgTpd+qfXMDdfyvoSG
	EtrY/4AEoWTktgaJyUWisyPMlx1RynFBhxvyTtnniVwyQCDXbWlWPSatNVY7aD2EYQ==
X-Gm-Gg: ATEYQzxWtuxJEZvyR7kLJ7b1PkIMiQ5cWgm06UFJhCJFSf0hzwQvgZ9+RvNfjkdDZFA
	CyH/xGb/JzqDgL0UMzHtZv1PuJg1HO08SXOqY1ESp0LhLvafbI2Ujxw3GHMp2hEb0Be0tIdbSzz
	k9LbRHWmmI19lCaa6vz8oDBYeHmg7WOttw59QvU7Gy03BH2yc4S6fruRZqnVAWIuFhDhB4cTdIo
	FqNP57BkCzA4+nAG0fMe2u6JDE0xOdHYeUUwDAnLDby41xPIx10J/5bY+JkABEfGsiQUm6SnZcv
	KFoIAehPyat0BaM/SfdfzxPv87benmfA2W/Cm9tFUjIKepboQ26UskmqFPVtSs43dYGJQE6vOzw
	VNUDLFgRSH6NSSKgiSQdxgfTwDucZy7DotbllqY1CjNcC4BVKc2m2xU9txdWTTMtax/VaIO6511
	UPPS41aEYDhq56Tpma2+3eqNpaUYepalWrtZi3EBHUj+e9cJeGabvtRYZk6uKMMkQqvx/1Khqiw
	oNStg764q/0c1w=
X-Received: by 2002:a05:6000:2384:b0:437:6ec2:b110 with SMTP id ffacd0b85a97d-4396f18175emr17635178f8f.52.1771844088002;
        Mon, 23 Feb 2026 02:54:48 -0800 (PST)
Message-ID: <2ed69a62-81b5-4f2b-9c35-905530bfd097@suse.com>
Date: Mon, 23 Feb 2026 11:54:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 12/12] xen/vmac: Delete STDINT block in vmac.h
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-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: <20260220214653.3497384-13-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.02.2026 22:46, Andrew Cooper wrote:
> Eclair complains that _MSC_VER is undefined (a Rule 20.9 violation).
> 
> This could be fixed by inserting an "&& defined(_MSC_VER)" clause, but the
> whole block is entirely useless (it comments out the include of stdint) and
> the top of vmac.c pulls in xen/types.h specifically.

And any other user of the header (tboot.c currently). Wouldn't we be better
off having vmac.h include xen/types.h instead of that useless block?

> Simply delete the block.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Either way:
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 12:37:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 12:37:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239038.1540443 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuVBH-0001F6-1F; Mon, 23 Feb 2026 12:36:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239038.1540443; Mon, 23 Feb 2026 12:36: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 1vuVBG-0001Ez-Ue; Mon, 23 Feb 2026 12:36:54 +0000
Received: by outflank-mailman (input) for mailman id 1239038;
 Mon, 23 Feb 2026 12: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=ndCc=A3=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vuVBG-0001Et-0x
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 12:36:54 +0000
Received: from PH8PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c107::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 5320eaaf-10b4-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 13:36:51 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MN6PR03MB7576.namprd03.prod.outlook.com (2603:10b6:208:4f6::5)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Mon, 23 Feb
 2026 12:36:46 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Mon, 23 Feb 2026
 12:36: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: 5320eaaf-10b4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bgIjWWto8NWQ6O1kgXCK0LYXSuLMapjJXndtiGonw0V36Sjb2hg+qISNnfjwWlPLbuYy2PtnO+TGvGI0mljQGGn8GHrRl66Tau5JyXOR7Zs9UBaEPMyUoQFbdsu9mIbIb76zkEfhtkrNRONP6wfqt6obP+V36E2vM/25cmpL+L+E3w/Ba7ITEYU0CiSUSMe8gkVX8Rou8GT+DI4arAX03ger2TH+GgJSwgwnpdo7Iuh1rsojZlLtUiHR2+wYbzD4OAVOjZ9RPXa3nfBrO9kIMaK7glYI7KtGU6k1QxNL0goRBLqSYAGYJDCuIvS2CQwyQNNiLqDW/NBWJEA9CdWcwg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=uWl1g6bxDKUhmi/cHh9bF4UYfzsobhK2A761nNYdNho=;
 b=tOQYdReizg91IsQv1vTkrOalcYLNRy3v3+JJ66ftxHfHf64SOcyAW7w7LnCWh+hRUZTqzmsGgSlMpbquqoG6zp+cLc2VAmhRu91paTF4i4MPuaR6kLF0OtZX/KATulTBUNWr65Q+2liK0ZswBAgvmT/bf6zPOXvF2BWDVzRrZybpBMgC2RzZW9tPZX5MVe4WAfVtFJqJlVNj0IdyzP2HjCLZUqkh4VQjD+e7Ii+6Gelxji9qaBVOWB3+8Im4x8KMtYmRs2pydcU3nsNys1qC4EhIULatm5Lub8HhTUrYlU0+oyvC5rhZl0TKbYHTIu/r1RJDHSpzbnZp7hJiTqwBEg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=uWl1g6bxDKUhmi/cHh9bF4UYfzsobhK2A761nNYdNho=;
 b=P3ealnI3sL/oYkDbVPWfLh4Qmrbv3vesvdD3tMaWG2SMq5rw475mogaZeeuLIqebse9iwy8lM3JJjMekR2okWMRiP/dFfKqqfhWh5A2RXEnAxpPKmUbZbhw23x0EJlniAenTVpxId0Lz7tdr/iaqU52u8VdMQE44DBf55l7cadI=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e35a952f-0ade-4729-8f33-59daf151f131@citrix.com>
Date: Mon, 23 Feb 2026 12:36:42 +0000
User-Agent: Mozilla Thunderbird
From: Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] x86/MCE: restore CPU vendor reporting to the outside
 world
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>,
 Jason Andryuk <jason.andryuk@amd.com>
References: <561865f9-cd0f-40c9-86b8-98a3ac070b65@suse.com>
Content-Language: en-GB
In-Reply-To: <561865f9-cd0f-40c9-86b8-98a3ac070b65@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0277.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:195::12) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MN6PR03MB7576:EE_
X-MS-Office365-Filtering-Correlation-Id: 99996a96-b01a-4bd4-3f07-08de72d83503
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?eHcxeVRDQWdMbTNpaHVuVi8xQ2JpRENwQStabWpuSzNnNmpjNDNPU2VFVDR0?=
 =?utf-8?B?R1JWODRpQVBsWU9KYkljNlJtbHIvaFJoVlEyMnFKSVRxd3FObE1LaHI5WXh4?=
 =?utf-8?B?ekpHMFRDOGNKVFIvYUdKVFo5ZFNva3JQekZnWjFaVVlESFJyMm84Zm15RGhw?=
 =?utf-8?B?NktOOEk3OW9pV3Z6eFMzSW1CVCtDWGdpa1p6a091YTFTZm9IRUtDR3g4MEdN?=
 =?utf-8?B?MDcrSVZTcXVDcXFSU1VFNHIvb3hNbFZSZHhDZk5LUVJmU3lFVjBYSi9vZFJk?=
 =?utf-8?B?WUZJbER6V0NKVG1Yd21lanRIbW9rQkZ2VXd6MEJ6QnQyRlF0cmo3RThrQ1Jx?=
 =?utf-8?B?U1FObFpKa2J0cytuMVNZVXhxWVhRK0Y0eUNMK1lLQmc1Z2NDSGpUcnBuTzcx?=
 =?utf-8?B?dXVORitFWG5NSlFEcWJ0UkdzVVFUOTVwRmVSV3VSV0YwVzBEV0l3MGdaMGlW?=
 =?utf-8?B?MzNmV3MvQkZiTHdsQjNSeU1LN1BMU0VzNlJJZGhzbkxFaXd1NzFONWI0SEw1?=
 =?utf-8?B?WHhZRnE4QU12NXo3S29jTjJSUFdSWWFkekE5bFdZSkxvY2xjUUxwVGVqR2l1?=
 =?utf-8?B?UENIRHpacnZ2LzMzbXFpOHVFV1BYL3VxazFLZWdkRzNqZGF6dVFDVmhtOW5y?=
 =?utf-8?B?anpiS0hPdjR4OGNyZ1ZzQ0ZVbmh0bkZXTmJRdUJJRmdoUmFvQ2ZXL1VwZzJV?=
 =?utf-8?B?YzBoajR5RFdQNFZvVmVqcHk4SlVKNGtPQVB6eUEwbGRsQmIrUkVYcEpnUDA3?=
 =?utf-8?B?anRuejdYRmo1K2ZJSUwxMEROK2xqWXowdjZ2WWx5YjZiTTZrS05Lc25tY3JR?=
 =?utf-8?B?R2FWZDVMcEhBTmZrWjNKMlNLOTBHd0ZaajdtSXBXc0twNEI0UkVVa3Y0a2Qz?=
 =?utf-8?B?NXMrZlVJSytZSkFIa0djUENJYW5UK0dmU3JvNWFoUG9hUDN1cldMS2hITGM1?=
 =?utf-8?B?UldGd1pwaVRHQjZ4Mm9xdW1BdGtMVXJMWVkvZWt0N0J0aGhkUm5OL3hBK2Ex?=
 =?utf-8?B?TFg0NVZjRm01YWRaZzNNL3pkYnRBMWZJVk1UTm1NR1JHcXV1QXo4MVlrTHlC?=
 =?utf-8?B?Ukp5eFQ3QnJja09BWkNITVFyc1VjMVVvd3BvbUVMYkJzbmRLbmYrZ2lhL1Zt?=
 =?utf-8?B?Z1B0Nk1TNTVJRHh1TmJod1Yyb1BNVDljMGxtVWtvell0WE9MZFp2c25TK3lU?=
 =?utf-8?B?S1NieDFTU3oxU1BJL3hpOHVZSnVjTzlDbjhZWWpnWlNvRFJKL1hqYzRYYVli?=
 =?utf-8?B?aFZub0JJSEFWWEVuS09ZWUFVblV2Q3RWc2k0OWl2MktibVJYUmNZYkRHVGx3?=
 =?utf-8?B?djBVbXJIaTNNYVNOazJFWG1hVFZUckNuNEdpaHFxOC9leEMxTEVDUUZHcUVl?=
 =?utf-8?B?dWxQeDFpRkU3eno5cFJ1R1g5czl5ODU4ZFE5NC9yTnArRld4Q2hwczlQRkx4?=
 =?utf-8?B?M3RSdGlTVDc2eHFESjFkZTM4bEdmS3F2QUZDcVhKTWlyWjUybjhqSjZyNm1X?=
 =?utf-8?B?SENrY2pJUVlub0pJcXFpaGlJRGtyYndpb0NMN241RTZ2Q0JhNjJpZWtvR3Ny?=
 =?utf-8?B?WVY0K1dHdHpUL2dMOE8zU3NCdHZ5ZHlobkRoU1BCY090aVFib21VdjI3ejJ6?=
 =?utf-8?B?akNjSHhza2JtRjZoVnUzYjRDVmViRWYwRDBqWTJMWWM0YncvTE1sV3ZhWEpq?=
 =?utf-8?B?WE44MXlvSEo1Q28waXVKeXpCYXdVUWNBR2dqZG1iOHAveW95MWV6RHZ6Lzh5?=
 =?utf-8?B?L0lwdnNkWi9LVUpnNHNsY1Fjck12anpIWFNWM2xkM2sveXQrTWtmRzN5UmhU?=
 =?utf-8?B?UXR6Z0dvYUZzMk1FNHY4UWVvV0dQUXE0S042Q2ZjOGRpN3JPR1JpcjhTcXlk?=
 =?utf-8?B?V2M1cGhNWGxvQVFudXBTY254NmxQejRhTlY2U0R1V1ZJbDJLZXY2dXo2eldy?=
 =?utf-8?B?cmhoR2NJY0pwa21YcE1na3l2ME8yTDRHdjZVTklGZ3FxTWlvdUlzNkxuNTE0?=
 =?utf-8?B?UW9ZK0xpSTdGVTR5bmlwbmsydzBjc1p1clFXV3h2YWZDL0hmT3lTaEtxWXJI?=
 =?utf-8?B?YWNxeFdyWFVMWWVqUHMvaFFJZk5sZDdDUGxaaldUUWVnSmdFd25qa3F3WU5W?=
 =?utf-8?Q?jQNk=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TWhoalFsdjJQeFJkamhQSHk4aDdkcmIrNDhlb3ZoaGZwWEprbU1EMWFLSFhV?=
 =?utf-8?B?RzBtREw0Ly82RVMyaHY0cEVuekU0aG5IcVpFUDJ5MGE5V2N4eC9nMHozYkRZ?=
 =?utf-8?B?NjNWYmRCbXlMY3lWTTdBektFNVExblVaMVpQOEtlNDJhOHdsYnhoYVNQMEp2?=
 =?utf-8?B?QTNsM3pSaEprMzRVQjM5bm9OVjNaS0FrcVRjQVJLNUZjZ0JsSjVlL0phcUNV?=
 =?utf-8?B?UzVNQUZCeXVva1FPMmdBVnQyVDZUNDVwRWNSeHNOdm5BRkhVYnd0YUVQQmdK?=
 =?utf-8?B?VG1sV1RrRWFEYmpleUN4NFdIcDNscmRxSVd3QWNQMkNOQzdSWDhxT1M4Mm1W?=
 =?utf-8?B?Wmt6Qm9ab0JHMzBad2VFQnZYRUk4RTdUeE9hMWNOVGVlZTBMMzhodGRNOXFZ?=
 =?utf-8?B?aS9rakhxalNnQVQrWnVXTE9QVHQ3ZWY2VGNnQVlYZVVtWStaWDc1RGxSdS9Q?=
 =?utf-8?B?YzNTU3g3K1FUYUxEdTNtQ2dZdzA3SXFWeTdxL0lsMHBrTVJzTWQ5dEdqQm9V?=
 =?utf-8?B?ZG4yZzRmeWc2OCtRbU0xeHZOMjU5NGZQU0wxK2NKZWJkL2hBOXJuY2plbS8y?=
 =?utf-8?B?dEV3MmZ3RldKSCsxdU9IVVg2c3dPdGI4UzkwZDBqdE5IRTVHSnlnNUo1NERX?=
 =?utf-8?B?L3YvcDl2eEZHOWt3ZUpaQ1pDT0loTmltRUt4RG05Q0xhWGl6L1YvZWJ3V2NH?=
 =?utf-8?B?Mm9vUVV3NTJ6YnQ1YnhDR0FaYjU1c1liN01BRzRWMUZacnk0R09KenBNQXdx?=
 =?utf-8?B?Vkl5V1YrRWs2YmRUeEs5VnJqU2JLdFBPWXJxcThTdVkrSktyVnFsWTluWGcw?=
 =?utf-8?B?VS9lQi9oVHFISlNzMXZUNW1YTEJUNEkyNDE1cVhXR21yV2FkOUVBMzdJM2pD?=
 =?utf-8?B?QzhMMUNNT3dGeDg3eUE2NjUwWW9hZVpwU1oyczVJR2hTM1V3UklSV2VLaWpt?=
 =?utf-8?B?Tk9wdjlqRkY5ZVd0cGphS2xxUngvLytSYkphSnBUczMyZkZTeExRenVwTjlh?=
 =?utf-8?B?NS9aRkNhS0dkYzhQTzBqaFlobnFsTFJpZ3pVZlZkUUNUOEE1bmk2dW8vV3hm?=
 =?utf-8?B?UFBlaUlObis1aW51TTBuZE91bk5tR05JbG90WDlibmM5Y05sVUlScEVDNXBi?=
 =?utf-8?B?MDlpb1FDWVM1NjZ0L2Zyc1J3U04wY0ZvVGU1dXhYYkJTbjZWeG9ROS8ySmZV?=
 =?utf-8?B?NGtQcFdBc0ZhVk0vNDhTOHZua2QyUW52cGg5RmFlcVJKdEJEeW05c255THo3?=
 =?utf-8?B?TzY5eEdwK3lBZFVUWnJaeFdaRVdCV1RJeHlhaThkSVNFNkdPVldTeW44aFJ2?=
 =?utf-8?B?UUVaOXlsZDFITHo2bFdEVUJScFRIWUQxRURtMnk4V0x3R29CNFFvalQ1T0Z0?=
 =?utf-8?B?a2RvOU4yY2p1SGxOV3VuY05RZFpUVFlLMm9SVWlZYzUwaS9INVVPZk5WaGpp?=
 =?utf-8?B?dTgwS25SU0pva1VYK0tWcnVmOWh3T2IrSGRZUldJM3A5WW1reVZkSTRHNWJH?=
 =?utf-8?B?cmp0MmhhNmRNTzZUM0xOd2t0U25JdlhqcFhydWo2WHpMUTNVQjB6Y0NHS1Js?=
 =?utf-8?B?SXJ5RE1CSjdta05OaDEwelBIWGtvcTVPU1FCT0xDSHI5QzVxTmp3d2RvdE9h?=
 =?utf-8?B?WHVNVWh6Nm1oUlluZ3gxbnY5TkF4dnBOMzc2VkdLbXE0WWlER1ZtNzRzN3B0?=
 =?utf-8?B?V3NNN1lGUDhjTlFRLzBBc0t3NlVlUm9La0RITUM4ZGU1WUtHenJ0Q3AvSVFE?=
 =?utf-8?B?Y2M0N0VnT25mdjl0K1hOQ3NTQlp0Zk1oOHhNUy9TYnRpeER2UnlDb0JBMnkz?=
 =?utf-8?B?NVdQVllHR2lQS0c3bnUreWZrdXZYVit1WHU4dmhiT1hlNmgzNXJwSXVzZ1h0?=
 =?utf-8?B?ZDFwNFlyRTIyY2JRUXRrMU5aZHA0QkdOL3UrSDNZMU9VNHA1VDRuYndtV2ZJ?=
 =?utf-8?B?dFFsWUR2VjdMOGI3ODI0anA2N2hBa2NPckhzOE0wbk9RbU9PcXJZTzRWZGRs?=
 =?utf-8?B?ZXFsK0tBa1FRVExEd29UUUF3aENkRlV2SXFlSlRZeExnSkRaZS9JTXJ5eGFB?=
 =?utf-8?B?RWlSY3pUcm90K25QYXpKbGVSa3oxUFNaU2wxTUYybTB4Wm5HNEY1aVFrbUdq?=
 =?utf-8?B?T0cvNmFKeHRpVEh4R1JPTnpZNEVWOHNrSFNNTGdGOGRveUNkOW1SdmpIdjdK?=
 =?utf-8?B?ZnEwcEpJUTZzNW44NXF4VHA5VGFyejBtL1d6Q000VXNQblFNV1dLU0l0U3Bi?=
 =?utf-8?B?bEorK1pRRXU0bWxVSFpLbzJsR25RUHh5VlVJdyszNlZJSWMxL01ObmZzSHMw?=
 =?utf-8?B?NUpqTkwvN1JSNU5EQU92WGVhcitFakt3Zmthd0IyYnhMNk1zZ1ZJUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 99996a96-b01a-4bd4-3f07-08de72d83503
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 12:36:46.2027
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: wujFbv9ayKqDDOJtn6KfF0B5JyHxFs5tg5HXAF/LdymoA1n0QGRxOdiYo8p4d1dkGgn0eDAq8utcCBMpBa/SR/SomeqD1G+vV9/BofSmaxE=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR03MB7576

On 16/02/2026 11:56 am, Jan Beulich wrote:
> The records reported used to contain Linux enumerators. We first broke
> that connection when purging unused ones, and then again when switching to
> the bit mask forms.
>
> Fixes: 408413051144 ("x86/cpu: Drop unused X86_VENDOR_* values")
> Fixes: 0cd074144cbb ("x86/cpu: Renumber X86_VENDOR_* to form a bitmap")
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

I see you've committed this, but it's not a viable approach.

> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -858,6 +858,22 @@ void *x86_mcinfo_reserve(struct mc_info
>      return mic_index;
>  }
>  
> +/* Linux values need using when reporting CPU vendors to the outside. */
> +static unsigned int xen2linux_vendor(unsigned int vendor)
> +{
> +    switch ( vendor )
> +    {
> +    case X86_VENDOR_INTEL:    return 0;
> +    case X86_VENDOR_AMD:      return 2;
> +    case X86_VENDOR_CENTAUR:  return 5;
> +    case X86_VENDOR_HYGON:    return 9;
> +    case X86_VENDOR_SHANGHAI: return 10; /* X86_VENDOR_ZHAOXIN */
> +    default: break;
> +    }
> +
> +    return 0xff; /* X86_VENDOR_UNKNOWN */
> +}

The Linux x86 maintainers say that the numbers are internal and not an
ABI, even they haven't changed since 2008.

> +
>  static void x86_mcinfo_apei_save(
>      struct mcinfo_global *mc_global, struct mcinfo_bank *mc_bank)
>  {
> @@ -866,7 +882,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 = xen2linux_vendor(boot_cpu_data.x86_vendor);

This is an internal Xen structure.  This hunk needs reverting.

>      m.cpuid = cpuid_eax(1);
>      m.socketid = mc_global->mc_socketid;
>      m.apicid = mc_global->mc_apicid;
> @@ -968,7 +984,7 @@ static void cf_check __maybe_unused do_m
>                          &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_vendor = xen2linux_vendor(c->x86_vendor);
>      xcp->mc_model = c->x86_model;
>      xcp->mc_step = c->x86_mask;
>      xcp->mc_cache_size = c->x86_cache_size;

This is an external structure, but a crap one at that.

It's full of wrong information, including mc_cpu_caps[] which has been
wrong forever (Xen never had the Linux internal leaf as Linux had it,
and the standard leaves haven't had that order since Xen 4.6 or so), and
mc_cpunr which is Xen's idea of the CPU number, not Linuxes.

It seems to be copy&paste of an internal Linux structure, but given as a
Xen-wide interface.

I find it hard to believe that this is even usable, which begs the
question is it even used?

Deleting xen-mca.h is probably the only reasonable approach I can see
here.  It should have been hard-nacked at the point of being proposed,
and never gotten into Xen...

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 12:59:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 12:59:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239046.1540453 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuVX4-00048k-Mi; Mon, 23 Feb 2026 12:59:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239046.1540453; Mon, 23 Feb 2026 12:59:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuVX4-00048d-JU; Mon, 23 Feb 2026 12:59:26 +0000
Received: by outflank-mailman (input) for mailman id 1239046;
 Mon, 23 Feb 2026 12: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuVX3-00048X-08
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 12:59:25 +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 78d3395c-10b7-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 13:59:22 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48375f10628so27120765e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 04:59:21 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a82d8c50sm77042315e9.6.2026.02.23.04.59.20
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 04:59:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 78d3395c-10b7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771851561; x=1772456361; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=mJCI6zuIG7pO0oREk7YoJOO3FHJJqupPkAY1qAOuNpE=;
        b=Zf76qMpE8Ya7o2pJBLhE1fldvmbgvDZjhVw6Ls25CWGzjTNKJs4ocPPB8bw4ahwRn+
         UXqfyU8KoCX+X77RUKD2ahA1pvWHNt2Typ5642d/RgQqBILB2mHttzgmVrh6O08L3HRJ
         4Z8+qJrHxa6Rn9C7vRsAy6Uy7FW0kFBOyBcY8ZX/XubSutab42lsdqj1s4u04ejbu3r+
         JAVtiAxjwaIX1TvlKRNtNpDj0suMDn/CNE4Al8zhNtsR6d0HIZF/rF3xEFHxEgFMLpZl
         uSWSBFo3VnPWMjALkLcTLNcjGHKM4aVtELV8IzboHGQANVKqoBmTKP+1I2ZFFxYqmRyG
         yRRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771851561; x=1772456361;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mJCI6zuIG7pO0oREk7YoJOO3FHJJqupPkAY1qAOuNpE=;
        b=oSpuPSz1Jw96b4UWqy47gBespE2BqBgSE9NHBQxxIv3k1sn2rj73kkB9oZzVyNRCLl
         TvYez8qKONzACxP6E7EGCiTQAxtWNFCJ6US2jsPCRKeDDKXo/ApwA0TpHytGP6XX7DhG
         f1vvxsCqcjpGssxXR/MaRu5hv0IoqC7nGYn4Bl6Mv26jfqz/pmI0/pg59jIxKCiiAUDl
         ljiXCmPHr5kNCAE0VtMT3eTGiahz8c8oiilWa+CZySyC/psWpXdeqiG1UaQLyxCKSEm+
         kz2WC4KmUmm38xX4x7AVjgBQt88LPsGjiAtslK/yE7J3HsB7ws7+8sf3gHRQg6bwiZ/j
         3Q+A==
X-Forwarded-Encrypted: i=1; AJvYcCVux+9ork8AChWLu0PUhxQWsKYxJOFi+4BcBirxzyJs6QrvQ6gMvK/RS6t9gK1dJ1LN+LZ0wSohvJk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyNqTDbmLShJzT+EQzX+Ly2ZhPQeESmWs1zWXagVZOQNusdNn1Y
	GPKUHiuvm1rHL9CpOu7SYu1pU87z3woRVKXKpFRFxyADtoZiexWLIRQvZbBhC6kGyNlAgxs3/Ys
	FgQ4=
X-Gm-Gg: AZuq6aLQPz/fWha3Xu9WKDPF4m04Q3qjIQWaGY3fXtkV5kJeTKrOvKkz9R4T/1YCH7T
	gTj0OgfUCFn49/ZiA7uA1b3r8YLMeyMu+FXBOxDHriHq08TEVz5k6tfToRfQfLP9nRoCj0kklOx
	1YHis7RH2xwbjUbAOmFW8ulThAH80yU7OqpmVqKLjQ3w5vQz/QDA+Tt/cm6wCmJ4jSNgse5JNzW
	EFUd7aXYnyYPmP8yrF5QuvBPEu+Uo9iMSwhVYUPBeipqmyD790Jdvj91H2/xbU2erqRcVWxzGQR
	n2gLItZWGdJIk19fMEiXUTFoj2ow2MU1NdTS2qXeqc34qD5OF9jFBHGJrof2M3c6Y0gzK3SG8M+
	XFEXw4nKjBGLYUYv0Lv5LnzgKHQn60qeDg+4+KbbZJ/+agYwWif+NGEtC6cVU8WmS5Piv2ad2GX
	rbFCmn4+CeF5LZutr51UvldOKKd2qZ/hb1bHLEwd5seURK+laGnkumnla8qdLq5yBZzYKso3yQt
	MDx9HRGXMEsuZw=
X-Received: by 2002:a05:600c:3e10:b0:480:5951:fc1e with SMTP id 5b1f17b1804b1-483a95bd836mr148441995e9.11.1771851561217;
        Mon, 23 Feb 2026 04:59:21 -0800 (PST)
Message-ID: <f105222d-458d-48b5-bd19-078129ad7480@suse.com>
Date: Mon, 23 Feb 2026 13:59:21 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/MCE: restore CPU vendor reporting to the outside
 world
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Jason Andryuk <jason.andryuk@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <561865f9-cd0f-40c9-86b8-98a3ac070b65@suse.com>
 <e35a952f-0ade-4729-8f33-59daf151f131@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: <e35a952f-0ade-4729-8f33-59daf151f131@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 13:36, Andrew Cooper wrote:
> On 16/02/2026 11:56 am, Jan Beulich wrote:
>> The records reported used to contain Linux enumerators. We first broke
>> that connection when purging unused ones, and then again when switching to
>> the bit mask forms.
>>
>> Fixes: 408413051144 ("x86/cpu: Drop unused X86_VENDOR_* values")
>> Fixes: 0cd074144cbb ("x86/cpu: Renumber X86_VENDOR_* to form a bitmap")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> I see you've committed this, but it's not a viable approach.

Well, depends on what the goal is, I suppose: It's viable to restore previously
regressed behavior. We have been in agreement, I think, that vMCE itself is
doomed.

>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>> @@ -858,6 +858,22 @@ void *x86_mcinfo_reserve(struct mc_info
>>      return mic_index;
>>  }
>>  
>> +/* Linux values need using when reporting CPU vendors to the outside. */
>> +static unsigned int xen2linux_vendor(unsigned int vendor)
>> +{
>> +    switch ( vendor )
>> +    {
>> +    case X86_VENDOR_INTEL:    return 0;
>> +    case X86_VENDOR_AMD:      return 2;
>> +    case X86_VENDOR_CENTAUR:  return 5;
>> +    case X86_VENDOR_HYGON:    return 9;
>> +    case X86_VENDOR_SHANGHAI: return 10; /* X86_VENDOR_ZHAOXIN */
>> +    default: break;
>> +    }
>> +
>> +    return 0xff; /* X86_VENDOR_UNKNOWN */
>> +}
> 
> The Linux x86 maintainers say that the numbers are internal and not an
> ABI, even they haven't changed since 2008.

Yet the numbers are propagated to the outside world there as well, aiui.

>> @@ -866,7 +882,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 = xen2linux_vendor(boot_cpu_data.x86_vendor);
> 
> This is an internal Xen structure.  This hunk needs reverting.

It's not, unless I'm missing something. The struct is passed to
apei_write_mce(), to then be passed to erst_write(). ERST isn't Xen-
internal anymore, is it?

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 13:42:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 13:42:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239066.1540504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuWCz-0002Jn-5T; Mon, 23 Feb 2026 13:42:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239066.1540504; Mon, 23 Feb 2026 13: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 1vuWCz-0002Jg-1C; Mon, 23 Feb 2026 13:42:45 +0000
Received: by outflank-mailman (input) for mailman id 1239066;
 Mon, 23 Feb 2026 13:42: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=SsDa=A3=bounce.vates.tech=bounce-md_30504962.699c594f.v1-304f47f826664a42b3732f93e853208b@srs-se1.protection.inumbo.net>)
 id 1vuWCx-0002JZ-KY
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 13:42:43 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 85a26b48-10bd-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 14:42:41 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fKMVR3h03z5QkLlr
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 13:42:39 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 304f47f826664a42b3732f93e853208b; Mon, 23 Feb 2026 13:42: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: 85a26b48-10bd-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771854159; x=1772124159;
	bh=9NPyoFT7Wcr8FHjElqDeozSpjecFI7orW1Ki2H5HOU0=;
	h=From:Subject:Message-Id:To:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=sOIrXCUZ4XNuD3fk6g5i3HpnFvWSq40wEnGdyK3pVf8yfxvUPkG8Gtj5qeC5eHeaU
	 shDrZj2923sefcxbTxLay36UYmLTtNNhndLBYoDSHE/CZ2baUDzM/YYbzngaLPIpsk
	 bbxosjUhSk472qGhAsZDONFGLewozJRzb7Mbqp8SSmhHredTYjG8GtHf0D3EPLaW5m
	 wg7PJaZzqkvyxAFM5y/JJdrKiRPBlUDipVeMbLtchXzcU7xWxxSY1EwaK0uQazbXvE
	 nGHgDUr3HLRlTQFLX3pEiDeKJU9hdyUN/OoJtvVd7wMHk49LQ3GiE/69jINnAnGNoe
	 EOxVIUh6HApDw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771854159; x=1772114659; i=teddy.astie@vates.tech;
	bh=9NPyoFT7Wcr8FHjElqDeozSpjecFI7orW1Ki2H5HOU0=;
	h=From:Subject:Message-Id:To:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=nU/d08zIjCTwkA7dY2npQcs9R9ApA1hIo5i0CTyEVHCb/gxyy2roJYmEyR0TZPDpu
	 OZ1BhGwlJeBYkfJcSzaHkWQt+kK2JYvuoXFHfiKP6CDpDif8nH3EAz15L0nes8b2Eb
	 WOLGaH9PHQEl9ixvHAMuU1VEXdH1XwU9PD/dlDDcUtdYI+F5JkdpVeI4bB810uwwt+
	 t62dysSjpTXKGNABpHsWrYn0e9zU3C2gOlhsQ5y2HOt0crIDKripw72Y73IvdlKrW3
	 y+mI9WiwjyL1+OQFyRx4mp5dATzwySYKr0l6dwceCTtM9eo6VB1aNAUQBSh5dlsuiF
	 99meBFTPAgSbQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?SecureBoot=20requirements=20regarding=20Dom0?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771854158677
Message-Id: <99bb08a4-0872-46e4-b945-3687ca3ebc27@vates.tech>
To: Xen-devel <xen-devel@lists.xenproject.org>
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.304f47f826664a42b3732f93e853208b?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260223:md
Date: Mon, 23 Feb 2026 13:42:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

I have some questions regarding SecureBoot and Xen.
The only document that appears to define some sort of policy between Xen 
and SecureBoot is this one 
https://andrewcoop-xen.readthedocs.io/en/docs-secureboot/admin-guide/uefi-secure-boot.html.
That is also similar to discussions made in SecureBoot-related talks.

 > Within the Xen architecture, Xen, the control domain and hardware 
domain share responsibility for running and administering the platform. 
This makes their kernels privileged as far as Secure Boot is concerned.

Why does SecureBoot needs to expand to Dom0 kernel ? If you e.g restrict 
DMA through IOMMU and restrict some key hypercalls like kexec (among 
some others), Dom0 shouldn't be able to compromise Xen (in principle); 
hence can't escape SecureBoot boundaries.

SecureBoot doesn't appears to require preventing device access from 
"unprivileged code" otherwise VFIO wouldn't be allowed under SecureBoot. 
But such device access still needs to be contained (e.g through IOMMU 
enforcement), that's something Xen already supports (e.g 
dom0-iommu=strict / PVH Dom0).
In that case, devices are only allowed to access Dom0, but can't access 
outside of it.

 From a technical standpoint, PVH Dom0 setups (and also PV Dom0 
depending on configuration) acts very similarly to a SecureBoot-able 
Linux kernel which runs a KVM virtual machine with all host devices 
passed-through it (using vfio-pci).
In that case, such VM doesn't need to be SecureBoot compliant, but it 
cannot be leveraged to escape SecureBoot.

Am I missing any specific detail which could explain the need for 
SecureBoot in Dom0 kernel ?

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 Feb 23 14:11:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 14:11:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239076.1540514 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuWeS-0006KY-6p; Mon, 23 Feb 2026 14:11:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239076.1540514; Mon, 23 Feb 2026 14: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 1vuWeS-0006KR-2k; Mon, 23 Feb 2026 14:11:08 +0000
Received: by outflank-mailman (input) for mailman id 1239076;
 Mon, 23 Feb 2026 14:11: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=r2fJ=A3=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuWeR-0006KL-0r
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 14:11:07 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7cfa8d07-10c1-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 15:11:05 +0100 (CET)
Received: from BN0PR04CA0199.namprd04.prod.outlook.com (2603:10b6:408:e9::24)
 by DS0PR12MB6488.namprd12.prod.outlook.com (2603:10b6:8:c3::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 14:10:54 +0000
Received: from BN1PEPF00006002.namprd05.prod.outlook.com
 (2603:10b6:408:e9:cafe::e3) by BN0PR04CA0199.outlook.office365.com
 (2603:10b6:408:e9::24) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Mon,
 23 Feb 2026 14:10:46 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF00006002.mail.protection.outlook.com (10.167.243.234) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 14:10:54 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 08:10:53 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 08:10:52 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7cfa8d07-10c1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=i3GNDrviK/tOrF6ZKjOx055w6U+d7O9IVdB3JZqie/g3FzRWO/mpA07zYsLvPN7hSiy5i3h88u7a9+jYXN77ccBXRl4g8kTmgVPe4QOsGwng7rKlECEBjqt+H/dt3yBmF/5w8Mh1e/24kRu+dKLVG8OyTkJz2E29C4zMAfNLzaW9MDZyPpow1Y6SDuiNvJhS0vlQS/di2h3dNb9IX9VjZmTobT982f3vPW4Blw4RSeYSngXRoQhsLvbhEIo/u/wW7dzFwDfnY7uwQLvv3B2lb8c2roTszdWcB+yxWwBQiLi3TBgOHNDWSh0GeAoZHNJSYjO36O3TH2p8pfGE3ebepA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=756NZahArBvqwXdNq0dxxbzz7GU9H99mmF8CPKq/pxo=;
 b=zJAAdwoPJMSdstv4tO07NdamZt7drbb1KpNo4NyjHZTjHCc8kQGL8bpaVVUyON37sFfHERpRnFpANgklB9IBfcLTKVrxJwUeZONSUBwRgZcLei7oQP6L+XqqqCcvzlILGQQv5jKR314hMttQu91LStqstH2R3KMnen4mHBDYtyDjxjteuFgxdDdede3ezBYBsJiAXP1Nj8ycG6pBKqh5FQBIHlfwKB8Pp1j/y5L6+lGtgWWBj2pz1WAWnG5O8+VVswaMSTlXZEK0px+tSNRPu86nBArAO3db5A+FHhgMljStT5ZMNA0s5MVig0GVAHXGTvYi5Q7MUxc/CCspmskDiA==
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=756NZahArBvqwXdNq0dxxbzz7GU9H99mmF8CPKq/pxo=;
 b=W9cgUsFmpv+hPSvnUXQ1L7ldBBbMPuyf5np/spvOqRltKzzpz/gqta/AySrenDkXQdqedUmbGhrIuliaromunvvaf2N0qxcYKi8RCPjNTZkLVIu+2IFLq2DmtbYeE/YuhlmOrqOcqipY2pu1XHzJlHJ5uaRVq0xCyXa7gas4tKY=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <d39f3b0f-45f7-43e6-a260-0f53f5b1515d@amd.com>
Date: Mon, 23 Feb 2026 15:10:47 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: Fix memory leak in xenmem_add_to_physmap_one
To: Julien Grall <julien@xen.org>, <xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Bertrand Marquis
	<bertrand.marquis@arm.com>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Xenia Ragiadakou <Xenia.Ragiadakou@amd.com>
References: <20260205125820.116555-1-michal.orzel@amd.com>
 <f9996237-760b-4be5-be90-e935ff71284e@xen.org>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <f9996237-760b-4be5-be90-e935ff71284e@xen.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00006002:EE_|DS0PR12MB6488:EE_
X-MS-Office365-Filtering-Correlation-Id: fe5784b1-b3e4-4f8c-ce25-08de72e55b87
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?ZmROTzVreTJkU2RDYWVlYzFxVmoyenZxQ25xOElteWhFR0VmSS9UejBqWUxO?=
 =?utf-8?B?QnNIRlB6WUJzSmg4RjFJZHVXWldHS3BFTEgyclprMnlrMFNMMTBxOHpDSENE?=
 =?utf-8?B?RmNtWW5sTEpGTmRSRXBaYi9ieHN0d1FPODZ6Zm9Ga1ZvZ2grVUppYkRDdlAz?=
 =?utf-8?B?OTlDUTluaFVXT3N0K1ZUWlVmZzc3SUFmS2dZZEZsRW0xMEdmUGRBZGcxTXl6?=
 =?utf-8?B?bnhlbDRYNVU0aU5tTEtIK3paMWpWR1dvaS9HYzBrVFFMTlNKM01hUzArN3Zv?=
 =?utf-8?B?Ry9ZellOZ0lGaXgvdkVUSVluVm4wdVpiSmNWVTkwZ3JLZXZRaTJoS3UvN2dm?=
 =?utf-8?B?ZUVTMHlCME5MekM3TVBYUmZOMEFVR1JmYnVXYnR0ZW9XL2luMGxteGRqQW1G?=
 =?utf-8?B?SmhpTnkwNVAwZjJRMFpUQnVVMldZajRsOGV4TmVBVGFUS0hwckMxbzlKeXJy?=
 =?utf-8?B?SVBLbUFYTXRsS0srcSs0Y0kvbXNUR0Z6S05ucEJXeUJlQnYrT0JMeG01NlhF?=
 =?utf-8?B?TEExWlArUkI0bHk5YXVaZmQzSUZqMjNDaHZsU3k3SnpGZGNaWFVWVUJrOUlM?=
 =?utf-8?B?Sk1PSUUzL0pKcXJlclgwdkx3MlZGZDdUV2VpUTQ4U0VxcXdLcmQrVGI4b3lx?=
 =?utf-8?B?YWpOT28zWjMyN3pZUktQZ1BzYStJUkhGK3haM1d0U1VBYTgvSDRaeTB1TW1s?=
 =?utf-8?B?UHAzL2RrMXJIZ2tpeUhGcnJEMU9ScVFrL3Q3Tmphc29PNkQraUh0Z3B2VTdt?=
 =?utf-8?B?K2xoYzIrbzhQU2pENElrdWE5eDNmMi9pZmpjZUt6M28xdmVxVUJXdTI1VU9C?=
 =?utf-8?B?SEZDd1JIUms4ZHNsaDZWL2V5S1BBVG5qcVdzNHR5TWtLUHY1Tzk1eXZCK3RI?=
 =?utf-8?B?U25KZGVZMGNUTWVDNXpXcUo1ZWErRkNJRlZoZzB6c1RNUEpnelhjWmMvR01V?=
 =?utf-8?B?Z1ZNMm54Tk5tYlBPZDNoRnFSbzRlVk1DMVlNbFd6ei9XZzdQNDdhMGdFOE5P?=
 =?utf-8?B?b00waGVHdVkrdGxSTUNpdUphengwZ01GaElKRFdHbU5NdFMyRFZ4MXAvMUM0?=
 =?utf-8?B?amRORDF1N2xEQmVMbmhGNzdYaXhnY3E2SmNiVEpKenhwSEhoSVJ3alAyUWQr?=
 =?utf-8?B?ekdyZU1YOXBxamNjOWNwMXNGbXZ3cU9mb1dSTWxZNHlqVXpqWXpha2xwMFdG?=
 =?utf-8?B?SGlSQys0cXFMV0xaU2kvQmhwVmpDdnE1d3o1emdrUGFVdFdza1VRSTZucTM1?=
 =?utf-8?B?UTVTMjlSYUlOM1dOSE9CbkcydzNuVDhUam1IN1g3bjZFdHFWUUlVcU5FNjZ0?=
 =?utf-8?B?QzY3eXZJUDdKU1k0VlhhdkJjT0M5cmhsTmFzSzFJOWpMUWVua0Vid1JVejhr?=
 =?utf-8?B?dmtoOHBiRnRhaEJEb2EwbDZXQlNKYTFsdlV2ajFJdktuUm10YTU5ZTJKeFBP?=
 =?utf-8?B?VWloeVlzbFVkMEhsYjlJN0c5NFgyblBkYVVvcW1oRVdvZkVNYy9KZFBnaENX?=
 =?utf-8?B?QlRGT29LVHh3QUxYL282Z2JKR1djNUwwdE9XbHFIVjY1QTgxZFJFQnNTcmdK?=
 =?utf-8?B?cGV5NkRqdjVOSFVrZ04zZ0pkelVtTnBaNE53M3Z3NHlQdWFIZzJzTCt5UUc1?=
 =?utf-8?B?YVRvcWNibE1SSlk2dlV3bEJ5VHIzYVR5cmVvY0RkV1RWa2l0QTA1eVBQUmUy?=
 =?utf-8?B?alp1eVpCMEdHQmYwbGRxbzd3UDkxb1E5Y0F1MUdpdDQ0YlI0RDZvVEZWREJt?=
 =?utf-8?B?bmF2cUhUV1JqeGdVTVBEMUs4eHYzZTFoWlYzbnV3Y1QySU9vUlJpbVMxNW90?=
 =?utf-8?B?T21PSmxpUExFMjU4Rmhnbkx4T3lEMXliOWxPTGFpb3FEeHlabmZRdXlnUXpT?=
 =?utf-8?B?SHBsdWNuL3ZHYnZIWXZRYS9jSzRNN1FiaHVidXJpL0R0cjBOVjIzZ3VDVTVU?=
 =?utf-8?B?aUNraUxEUU1WSDdCTUREbWtGbGJNczFFRS84dWpsTWlIUFBVNnVzUkNsUWFQ?=
 =?utf-8?B?Vm5QcG9Uak44bWRxWFRkSHkxeFd0UmZRTEJIVHdjUnlyTytLZlVwSWRGUFpO?=
 =?utf-8?B?K0phdnZpdnRrSkUxTDE2U0UzeDNGSGtyTHZGN1VSQ0t5THFaeVpzc2s5R0g3?=
 =?utf-8?B?Z2NBWFRSWUgxOUlyeTF3NG5XY3IwZGpYR2dZRzBaL0k4ZmpBZGV5b2RKV2pR?=
 =?utf-8?B?L01UUDhtYS8xbnZSQUFEdHMvZGx6eXJCUDI3RnFPL0ZnR2ZmQmo5YTd5Vmxo?=
 =?utf-8?B?VUkyNnVOb1Z2d1R1bWhHMGQ3UFN3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	EGPMJTGQX7ommCRhbeCN27/xYgiw/vRxCoK+Daekii5UCh9L2ik+olEOXokaxIVVbUz44fE1D6snGC3dFtUSnbKnGwv/sa4PABLdl5yOeKq1UQHMxztuT5d9d9/79JTkJejKB0/cyJrlyyOsi3rhtg/bXJlrhAdmtiA7BFE8qD4ftYW/SlUcG2/exOXKCcFwtEOa/R5MzrYnVcPaL9iR5yfOSfg5+lPX7JRb5EsiO5/Rb02zwYI2+HHMS2GB0Qx5iY1q43z+wobeaxcipDUI3QUq8oAcCoUuAdbtiJTZlvbEQd6cdb0smehK2rxPVMqkZ0G9deecNS/Chc9Q11pZshfHwNTH7EK7/0xu7ordxaPnjHCNS0QWDZJrgHmO2CmcmxIoa3QMU1GsDmW6mKkYtttecxHn37IqR0Yy1RI3AS8TlESYPP8nfBW9/l5rexff
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 14:10:54.1469
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: fe5784b1-b3e4-4f8c-ce25-08de72e55b87
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00006002.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6488



On 21/02/2026 12:57, Julien Grall wrote:
> Hi Michal,
> 
> For the subject title and part of the code, "memory leak" tends to imply 
> the memory is lost forever and therefore can never be recovered. AFAIU, 
> in your case, the memory will be freed when the domain is destroyed. I 
> would suggest to clarify it so it doesn't sound like a security issue.
> 
> What about:
> 
> "xen/arm: mm: Release the old page reference in xenmem_add_to_physmap_one()"
Reads ok.

> 
> On 05/02/2026 12:58, Michal Orzel wrote:
>> When a guest maps pages via XENMEM_add_to_physmap to a GFN that already
>> has an existing mapping, the old page at that GFN was not being removed,
>> causing a memory leak. This affects all mapping spaces including
>> XENMAPSPACE_shared_info, XENMAPSPACE_grant_table, and
>> XENMAPSPACE_gmfn_foreign. The memory would be reclaimed on domain
>> destruction.
>>
>> Add logic to remove the previously mapped page before creating the new
>> mapping, matching the x86 implementation approach.
>>
>> Additionally, skip removal if the same MFN is being remapped.
> 
> Can you explain why we skip the removal but not the insertion in this case?
Hmm, I must have missed that the type is always fixed. In that case, we can skip
the insertion/removal.

> 
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> ---
>> I'm not sure where to point the Fixes tag to.
>> ---
>>   xen/arch/arm/mm.c | 32 +++++++++++++++++++++++++++++---
>>   1 file changed, 29 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
>> index 6df8b616e464..b9f1a493dcd7 100644
>> --- a/xen/arch/arm/mm.c
>> +++ b/xen/arch/arm/mm.c
>> @@ -166,10 +166,11 @@ int xenmem_add_to_physmap_one(
>>       unsigned long idx,
>>       gfn_t gfn)
>>   {
>> -    mfn_t mfn = INVALID_MFN;
>> +    mfn_t mfn = INVALID_MFN, mfn_old;
>>       int rc;
>>       p2m_type_t t;
>>       struct page_info *page = NULL;
>> +    struct p2m_domain *p2m = p2m_get_hostp2m(d);
>>   
>>       switch ( space )
>>       {
>> @@ -244,6 +245,33 @@ int xenmem_add_to_physmap_one(
>>           return -ENOSYS;
>>       }
>>   
>> +    /*
>> +     * Remove previously mapped page if it was present, to avoid leaking
>> +     * memory.
>> +     */
>> +    mfn_old = gfn_to_mfn(d, gfn);
> 
> I saw Jan mentionned the fact that we have two section with the P2M lock 
> taken. But isn't it in fact 3 sections as gfn_to_mfn(d, gfn) also take a 
> lock?
> 
> I am not against the idea of not solving the locking right now. But I 
> think it would at least be good to document it so this doesn't come as a 
> surprise.
I'll prepare a v2 with a comment and better explanation.

> 
>> +
>> +    if ( mfn_valid(mfn_old) )
>> +    {
>> +        if ( is_special_page(mfn_to_page(mfn_old)) )
>> +        {
>> +            /* Just unmap, don't free */
>> +            p2m_write_lock(p2m);
>> +            rc = p2m_set_entry(p2m, gfn, 1, INVALID_MFN,
>> +                               p2m_invalid, p2m->default_access);
>> +            p2m_write_unlock(p2m);
>> +            if ( rc )
>> +                return rc;
> 
> For here and the second "return" statement below. Above callers may have 
> taken a reference on the new page. So shouldn't we drop it like this is 
> done at the end of the function?
Yes, we should.

> 
>> +        }
>> +        else if ( !mfn_eq(mfn, mfn_old) )
>> +        {
>> +            /* Normal domain memory is freed, to avoid leaking memory */
> 
> Based on the thread with Jan, is this statement actually correct? Could 
> we reach this call with an MMIO (or event foreign mapping). In which 
> case, I am guessing we could fail? If so, is this the intended behavior 
> change?
I wanted to leave MMIO case for a separate change but I can try to fit it all
together.

Let's discuss on v2. I'll try to prepare it taking all the remarks into account.

~Michal



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 14:54:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 14:54:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239094.1540522 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuXKP-0003Ko-E3; Mon, 23 Feb 2026 14:54:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239094.1540522; Mon, 23 Feb 2026 14: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 1vuXKP-0003Kh-Ay; Mon, 23 Feb 2026 14:54:29 +0000
Received: by outflank-mailman (input) for mailman id 1239094;
 Mon, 23 Feb 2026 14:54: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=JTyZ=A3=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vuXKN-0003KZ-P7
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 14:54:27 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 8af1287b-10c7-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 15:54:25 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by MW4PR03MB6508.namprd03.prod.outlook.com (2603:10b6:303:127::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 14:54:21 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%4]) with mapi id 15.20.9632.017; Mon, 23 Feb 2026
 14: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>
X-Inumbo-ID: 8af1287b-10c7-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=inl/TyyvKgqb8mcZUeEZycZQSQTvlK3kLwOI9piNqTUsqGXpSh00U8l8b3MnPsSeQLG5q8zZUP8Rdywao0qOYLCr5YC68AHTiUum3Kwd0/XohpX9KRtaiLbfzrR9okx2Thp1RlLEFYjkmZKYFON9wVVDfiIXAgBJ9TKiEACoubdQFjjX3qDiht39bzsp1gIUqJZDAH2YIhVZ7rHOXPM+ShEsCYCvcjePvIJFNAMEHQFSEi0N+Ps+tQXoSV+3xwe2T0M2r7yVyIUVecTxRwMAyOc6uf8j0TW6S1UJ6b3WY9BFjOlJqmru0XaDzrCtrKZXSVL5+kGJTGA8BE51MOJHkg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Tgevt+JNIHEf4sqMGVBsmtuPZIiHU7WMQlfaHHEPSN0=;
 b=bNmzFhchHg/fjLpYA+Zz1u54sZLdrfFvtQc40zSH6bSKIp4wvHYXGmvQQOLzu3VnuNhr3JtAkdBJLpUMTmecj7n2ksRL6C1kUSgpR9xT9KxgTpTYoVXz/RwRIhQ1CmnZeyRkYe6C1amoRCNfpgjmai4thS8GIZdFoCKTqlrbUuOkHqgXHLFHs8iEqGyqwOG8z2iJ6sCKm2+UOLeHzdU8OdJ3JOKqwlEf9aqkqRsdCeL0AgZial17u2nrkoBi01E/I5ZJ3ytpxrW9E1znL2RIJgPjGCqxuLHts45gYKtWAxh3zrRNGEL+FLv3lSKYiGGJ2tiMVosfbcG88EClpXSSTA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Tgevt+JNIHEf4sqMGVBsmtuPZIiHU7WMQlfaHHEPSN0=;
 b=0nZn6vRnJymI38NlRslTe22tGJ5/xwFMPApFo+HN+S2qX4PHZwKK2+Ay44tVzRlHtNxTwpaPH1sbs9gLvXxqWg+l+8V8lfiuAkfokXfwATAPL1DC6IjFRfLxstgJ2Uhsav47OWXzlswTr7mhMTvhWaZB/l5nNR6Q0KiXUb7GC2Y=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Kevin Lampis <kevin.lampis@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Kevin Lampis <kevin.lampis@citrix.com>
Subject: [PATCH] x86: Remove x86 prefixed names from cpuinfo for common.c
Date: Mon, 23 Feb 2026 14:54:58 +0000
Message-ID: <20260223145458.438621-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P123CA0286.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:195::21) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|MW4PR03MB6508:EE_
X-MS-Office365-Filtering-Correlation-Id: 223d8c33-7d8d-4db7-ba06-08de72eb6d71
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?M7NWn3j6Tc9jelY661t8vhYGUhEX4nNyir6/27BschqOyajGVb755QuGP+Ng?=
 =?us-ascii?Q?4J/Bu+7HWTHqO1Lo/amRiWY0MIqrWpc75dITrxAEaq/n16JqnFC5Yijs8t1p?=
 =?us-ascii?Q?6Pc+reO6vxIdaIjTCySJXdRER5pVje2YpKIbReN98O2FDhR6BjRYXLY/b8YF?=
 =?us-ascii?Q?KbQSiJALN5b4CVKyG0Rs0daDN2V0CSr4IBv9WcRMSaQOLUWlvn3WqkMRwfKN?=
 =?us-ascii?Q?OT1g0mk1lxZFIBzc/XOJvFry6C0uEMVt/PvWfndu44e4AXMzDQWLHZLLMrsx?=
 =?us-ascii?Q?xOFgfwD2mSFCbhLUQ2Xmlo1LLLQDSbPMxw8wZgB6B80b4RsDu1wWZdLHwDlp?=
 =?us-ascii?Q?tTv+HdQwqTr6o84R54rYzVSb/qyhGe+w2ky2VPZe2nPdtbvk3iB39IvcbB0w?=
 =?us-ascii?Q?ZVhYMqyk1959MYLvsuw0QSAedjwi6e7ozfWN3qVtt++lPLmW+EyITOy9bCOX?=
 =?us-ascii?Q?JkKhZrvc4EY/iG13jsPdrTHZ/sqaZDqiAewKwnjWelu6CliP0ggMwrcOtsLA?=
 =?us-ascii?Q?23xST1yMPd9GBkQ979xxQdlZSSl0OeYBuBhISlHZnpPIwd/WIZK4tjqPnnW9?=
 =?us-ascii?Q?WFCjL0QstJkhZNv0e4FMSQKhyYocb8J1Qgxn6dd4SbujgFsDB8/rH6H6HLku?=
 =?us-ascii?Q?uiorfPSFtDvJhUfV6GtrMshMDO9olhmcFVt0i82WNRROUnmVNsbJClkyus6A?=
 =?us-ascii?Q?quTQezF5N/AroJ6HE8gnY3z0CwPkNdeaHu3rTVij9M1q05ft9LiLcVNox89S?=
 =?us-ascii?Q?JDVz4xxiUNQ9YkCjWURc6ZDjFPV4rYwNn/pvtcN04RaLw5SUr8kRmwPkB9rF?=
 =?us-ascii?Q?rqlNH/tXarvFwlTkNPC3AV8Tu43sOllKuTlwpVvpcKetBfDB2OImH/wLnsJT?=
 =?us-ascii?Q?cvXgB+ka9iu+9E9Yrn2NnN9wg91O6/i6AEtuNHpw1SujR0PHv3QyH7u6ii8U?=
 =?us-ascii?Q?JfW59lPuH40nOPY86okAWJvtZV+w8PUzKdRHdD7f3awmRiY8Ryl3XMEQsKo8?=
 =?us-ascii?Q?hvvDelEg4WGpMFKxV0QE73O2Te9hp9gT9VQftf7pfg2dwDlUIbcpHAv5FB7M?=
 =?us-ascii?Q?0NZDfMQBPUCEGmNwJgaTczLETMj9UVk9MmrFKKZa1a0o4Va7FWQZOHZbz5P1?=
 =?us-ascii?Q?+5xpfX2CRqlUpokep4qeW+XAtCq1V9MdBZJVKooH+Q4N6RBK6qhQGyivyjn1?=
 =?us-ascii?Q?fMvxQFykCGGmrZfj+s/7Bj/jl9QNK9gt8rR9am3EOraoNS/qc4L/wILCxXEK?=
 =?us-ascii?Q?HmfwCyPJk2RV3nPbEeuwhP+2D+tyMo7kAYIruVIz7Nh90ZbX2XXhDdsxhjcS?=
 =?us-ascii?Q?/7uc1ND1jBOZNQ2RFrLr4D/YlclEtshw5GDL7W/nRPrSfHtDhHNQMLJO6NV7?=
 =?us-ascii?Q?EO9brEwI5QQ13WwvbIfyOjnZ4gf5Wntsx9/adJG9++YoVAOA4B2JoNiZp8IF?=
 =?us-ascii?Q?HyDS9BIton4CDy6+I3ICg5BWwmJvfd6gxi8XYhZSmtLOQoUcE89Krva1Zivz?=
 =?us-ascii?Q?0XLdop94jqdX00iriXzGT3726OmijxVCxcuLOFm2Ayd4r9wguHxsvJgywcRa?=
 =?us-ascii?Q?pl4AF6uQExKZKa0N9ZQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7996.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?us-ascii?Q?ZM0vRHCH2Dak130QVLC0BC9YiR6Lgc15KmThTELL14bQdQaL/fquf4I/tjp5?=
 =?us-ascii?Q?u2tGCqrCtrRGYQrfsX8KGS5XkwXctG8gu0zpAGn8P5ECAIYI6q6iiaMlekzr?=
 =?us-ascii?Q?u1Q2fU/3xqAp+9jjRNfT5MB6YT1ic76BzJTnS8TwKS0HxlPRY6BD9uNJ9hfG?=
 =?us-ascii?Q?ZX/QT4TsRQGh1HwG5b6n1xKpMro88fNfe7a6sj1OFeAcggcU64HfNDrLrBmf?=
 =?us-ascii?Q?KLWPznwfbEEqUl9qCa38Us04WfcVkmw7CAA5wPV/+3sKyNGdjSfDzrEBJS8M?=
 =?us-ascii?Q?94GVBwKYOh/gkmQlLbirbwiON7YHOrZgnrF36+DvTw+OPHHGsiLAFfM9S6JM?=
 =?us-ascii?Q?mxliFhcDbQtPIkKoW9EwZR1n9zaISLgyi/AXectSanMUhCVr+ZrndCDEB3Q9?=
 =?us-ascii?Q?NytHBjsfCvj0wwTctVm7MgcYT9zLrBNd5DpfWjdqS3F3feonT8Hf6XUwuHdU?=
 =?us-ascii?Q?XiywyEHIMobTVKm1kjTqBwvpP0O4Cohc/gbttHI+7DKvRQK3ayvrgoxmhpo4?=
 =?us-ascii?Q?mu5nFxhdMt4LtjLLjE0XEmsU9KVmlGuy2w4ejEHW1jATtioXAwoNRK1QrJ6o?=
 =?us-ascii?Q?bMChFYBtAa08CHeEGHzIzBRX+xWVIpFEiJsfSyr8UKpSypbHv81UMPMQJ5Kp?=
 =?us-ascii?Q?YSKMUE74xLu1Ac0x3ifSsQAs5bPbxAAOeqO0r3WyymvVcd+kxQNfS5gRTrVH?=
 =?us-ascii?Q?TKRTzreIv0Va6WNp2yVL9NlQ9Iz8IWfolrJD/hKs+pUUhlgF8wjfUtxysXcF?=
 =?us-ascii?Q?UdfHGN9z1UEIgNlUMQp65wOgh6V7gckvPWHICc7BJLmw0mnACvGT5+EhCnjG?=
 =?us-ascii?Q?B1fBsLCDhNKteSeQBXip3fNgtWRe0/vZOrlufb1mq7x19AevNKtBL/3ocEwc?=
 =?us-ascii?Q?c3gJubM0l+OmaF7D9cZF7+73unXxv8hbXgD861r+lk32HWDP9+Y/g6BQ+eoS?=
 =?us-ascii?Q?IMs+A1aKXtfFTDmiYzADXkX4+3SCn/p+sMGcN3rl73NKF+WzIb7PfGVAwzPv?=
 =?us-ascii?Q?0VLlej+ogyUaidpETPojf47Slv0shI8rLEbH4GjOQ4sW2vFywYRbBcSw+mlD?=
 =?us-ascii?Q?BQge88kB24s2XoNHlhkUeMHTCknjmcPr+kPeC7f+8CQYHv8ttMNz4CgIFPTd?=
 =?us-ascii?Q?T/K6R4tPh82iBzviPXoYvtSazdSyVk083Sq2cwNW/qBsX8/nVw6/x5yeYcbB?=
 =?us-ascii?Q?O4hu6G4ZmdH7Xk2z2UNvdQ8bGDnGzq2pr99Ygfug7CzinUc10dS1ZMk+5GyG?=
 =?us-ascii?Q?QGOsjz+PCVdc2WtLVl+umiX7jttVGAFy2IdxxgCewUTz5cmgrn/k7CAv+22B?=
 =?us-ascii?Q?m0/tQfbFa3wM8LBcikXuzQpYvGiEjw/BaI5bUU1u7Cp7uHfqOn3ciGhl/W1V?=
 =?us-ascii?Q?zqzX8ErGXP58HGfdJNhQm5QGn0U4YFAEURWrPp+6zgWr/cpNGbz+MDlQrxq3?=
 =?us-ascii?Q?LOAo3iwvrpx5Tku60cvKWYOgzybPr14K6w7bOZ4OBCoWn/vOPEdr/C0huG4M?=
 =?us-ascii?Q?xa3pPOjaqCWsqgEWZsWXG4GexFosrp6ryeUF42Fwu2rpXL8FblrUqRK35PDm?=
 =?us-ascii?Q?E35IapXdRN9Oofir15O/1iXUzmV5y2S4g+J06peQn1xOYO0JfzuHnmj4oObO?=
 =?us-ascii?Q?5rwo9mGBLsnNZjZiWASBM3xOAI95joiH+m7dgNlOkwDHWNl07TjZhohhiAqx?=
 =?us-ascii?Q?gOqcptbWhecTe+F7ZapiLw7fk4A+QTrbgenUmmMlGJ0EqT9rNmyl9zdLBYmy?=
 =?us-ascii?Q?kwLqZLPdDA=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 223d8c33-7d8d-4db7-ba06-08de72eb6d71
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 14:54:21.3467
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: O+hgHoUUB5sa69vZgrtiwAYUbxBNc/1tztNfnbmuxPvH4PELBUn8fWdG0ou7cOAImx96ks365V2H6jV5/3kPyw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6508

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
 xen/arch/x86/cpu/common.c | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index ebe2baf8b9..bfa63fcfb7 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -327,8 +327,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;
@@ -345,7 +345,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];
@@ -389,8 +389,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) {
@@ -432,7 +432,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);
@@ -442,10 +442,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));
@@ -465,18 +465,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;
 
@@ -605,7 +605,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! */
@@ -824,16 +824,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;
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 15:09:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 15:09:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239103.1540533 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuXZ9-0005Mq-Kx; Mon, 23 Feb 2026 15:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239103.1540533; Mon, 23 Feb 2026 15:09: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 1vuXZ9-0005Mj-I4; Mon, 23 Feb 2026 15:09:43 +0000
Received: by outflank-mailman (input) for mailman id 1239103;
 Mon, 23 Feb 2026 15:09: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuXZ8-0005Md-Dz
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 15:09:42 +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 ad920836-10c9-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 16:09:41 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso35275405e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 07:09:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d4bf89sm18715016f8f.29.2026.02.23.07.09.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 07:09:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ad920836-10c9-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771859381; x=1772464181; 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=1lQVC/zsWXNjKSP/W5pxacMKKm1VeCK3EuGDHKNxR00=;
        b=Tb6G8Y8uul3bnHKMvgAaFvvPXcxIAnS/aNPsUILOfvCF35ne5rgfkEmy0vbbqEuyg3
         rU4996GxfuRytVYmS2uhm6aKAh5wOiN/N3aQOyCexPlDOBNGL3WDXnJMOq3qEpu/KYwX
         PzylCLhFh/bIeuqMJMF2iNue0I04pbTnrYLrDD9tDt0VwwOg/uGld2DXbPK4zvUgjHYM
         xLgK1VrbN5AqUVbDOk/lavrbwgQV6EkxtEBWDkcJadh8+0aZ6LzpxIUjEj8g6mtK/MUQ
         b8oZkkPdEy+s1do9mdSq0Zk3yB3Znz/Yc8v8xKvFlJYuYQSQdYITazRH4L2Z70R+7c1Q
         oG5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771859381; x=1772464181;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=1lQVC/zsWXNjKSP/W5pxacMKKm1VeCK3EuGDHKNxR00=;
        b=xATi9FvVT1BhQF/plcQQXieAEBzwsZH3IhYpE9sjA1djoaF8NgFKofwH0gtOlU8sii
         Qr4Y9EMzRYZNCnCW3ckQG9gChJ1jl77eTubI98AgWpKKHn5Qmsa7udNIZZeN45TSuwhc
         UxR4zLNEXlk5UUYOYqyPL9lgyf8YgmySstZqa+TjV+D7xb5QDowbA6Gb2e+LZmp9E/34
         jiHRQKtuAVnKZm/mNORgYS6OVqNgWN7qPHdgawoJLLpitpqvR48EswwZgB0YPXuayc5m
         aOaLSIbAhniiLk5urC1TzP3PI2NY3OsNPLDXl14QrDx40cx0LFq0zSdnUX/pzo8KjRKk
         eAUA==
X-Gm-Message-State: AOJu0YyYdqzhKGRSC+RKAHmgQrU5w4esdc5mfMbO/7QAdU47El1ZRein
	AtNPvdu//G+2LYWsTbuB5lp917Ze2jUPDkvLkAeQdezk+9I/FecdTrCNN/cQACXtwn9XNrlWXrX
	QpKo=
X-Gm-Gg: AZuq6aJs+RZkhh/8TO1ln7/haHYehbVT3GEf6FgmUgWmY2QmAQXwfpxNPHb8LJYYLkD
	OEDs0/K0C4ecJcNPwKLgjch7wb8HB2Mn5wPFapDG3yQok0thNo6o0Law+iL7VUmkvDuxQyECU7G
	wrp0bdkbDoieVsb5G1HbKkqY+uyNEin1lOM8zkZXKjMRrOpaBCB6uj2FhEnqBD6O98JgUcEwbhB
	n7KZfVEIe2yFmVbWnjQGOsquULvkD7ta/8nsjTYeqjz4gAqV5JUb/T1Xs1pdy4ghaZdmFC8EIO5
	A6Yzlhi1QialUGC6Y0r6LSfDu6SZb0FF/hRovGAd95aKn0gjTouWjmKJv0G4R2RFDTCS2jhHPOj
	/SFKRwRu+ZV5PHW+JfnDgeCCa7jfx15pKmcUFnxzVmahRdBoMbFOobrBO42R7zUm5VJZM7+A2n5
	s77In2hGNlMtB6MOiV2SsuNCYiXyX2nTidqiah5MZanH5eQgshVuqAwyDNXFY9oD2maIS8Zeny6
	6l1xJfwMFmnEOE=
X-Received: by 2002:a05:600c:8805:b0:47a:7fd0:9eea with SMTP id 5b1f17b1804b1-483aaa17361mr72390545e9.3.1771859380663;
        Mon, 23 Feb 2026 07:09:40 -0800 (PST)
Message-ID: <be4a2b14-2217-49a2-a65a-237852bd5296@suse.com>
Date: Mon, 23 Feb 2026 16:09:40 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v2] wait: drop wake_up_{all,one}()
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

wake_up_one() isn't used at all, so violates Misra rule 2.1 (unreachable
code). wake_up_all() is only used locally, yet rather than making it
static its sole user can invoke wake_up_nr() in the intended way directly.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v2: Keep destroy_waitqueue_head() at its old position.

--- a/xen/common/wait.c
+++ b/xen/common/wait.c
@@ -87,7 +87,7 @@ void init_waitqueue_head(struct waitqueu
 
 void destroy_waitqueue_head(struct waitqueue_head *wq)
 {
-    wake_up_all(wq);
+    wake_up_nr(wq, UINT_MAX);
 }
 
 void wake_up_nr(struct waitqueue_head *wq, unsigned int nr)
@@ -107,16 +107,6 @@ void wake_up_nr(struct waitqueue_head *w
     spin_unlock(&wq->lock);
 }
 
-void wake_up_one(struct waitqueue_head *wq)
-{
-    wake_up_nr(wq, 1);
-}
-
-void wake_up_all(struct waitqueue_head *wq)
-{
-    wake_up_nr(wq, UINT_MAX);
-}
-
 #ifdef CONFIG_X86
 
 static void __prepare_to_wait(struct waitqueue_vcpu *wqv)
--- a/xen/include/xen/wait.h
+++ b/xen/include/xen/wait.h
@@ -31,8 +31,6 @@ void destroy_waitqueue_head(struct waitq
 
 /* Wake VCPU(s) waiting on specified waitqueue. */
 void wake_up_nr(struct waitqueue_head *wq, unsigned int nr);
-void wake_up_one(struct waitqueue_head *wq);
-void wake_up_all(struct waitqueue_head *wq);
 
 /* Wait on specified waitqueue until @condition is true. */
 #define wait_event(wq, condition)               \


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 15:14:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 15:14:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239111.1540542 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuXdJ-0006rR-4x; Mon, 23 Feb 2026 15:14:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239111.1540542; Mon, 23 Feb 2026 15: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 1vuXdJ-0006rK-27; Mon, 23 Feb 2026 15:14:01 +0000
Received: by outflank-mailman (input) for mailman id 1239111;
 Mon, 23 Feb 2026 15: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuXdI-0006r8-4S
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 15:14: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 45d4217a-10ca-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 16:13:56 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-4807068eacbso35312545e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 07:13:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31bc068sm260719455e9.4.2026.02.23.07.13.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 07:13:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 45d4217a-10ca-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771859636; x=1772464436; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wkhmGt4TWE2SKq3tb9T40CDM03PY8BcrHvmPENa1U1g=;
        b=VwZBuj3osBAHmGpqfMy7HsBgDJCIo8hsvVX5wlMq0B6Y8SuD4ihdYcKni9Kc5qQBl0
         SjCKujnXG2lB4US4mkfjZpr3KdTeHMATm+ZnN+jOceWYTwUnfA04i9LZMAWGCCQyvIK9
         33mF3NjAG+T8LB6WxreoAtkHEv2wxzjN/nb9jDRMtgKwoiLC17HdVsIPerLrUyO0AodN
         ou+/01tv/pDlIym2AfQ+pnEbHjSKrWYIkxcz8fn2g5/bXUY+yM5QIj8ir6cOfdVMym9K
         rxmBq9TFGthB2y+mFDDl80gRPm1JNS8c6AG7G0Qi/1RFIm670e/NsQfwfQlFXj+88An/
         Ke9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771859636; x=1772464436;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wkhmGt4TWE2SKq3tb9T40CDM03PY8BcrHvmPENa1U1g=;
        b=qw5yXJHvCYwIJBjCp5uu/lH2BrGlBQP6QSygbHFFcLKSxuQKZYeNTSf8DR9tMmWznE
         U3WUUkqKemi2P83mrQ9zWgzBrnsZLK5v0u5nBPdzpWOtQcg9Ec5P3xjOD5V01QsuIulC
         ENcsyv+udPseZ4dTRiS9WsfvRTzSMJYdhOaueVGkJ55QrRgNneU45Aly9q3R6Mfd78Pp
         DBgh9F0WKeBKXZDpLQO3+UQNGuvwEIycAbrqy+N6xbqwxq9EsACD/d8uXicQ97kz4fg+
         UKfqEtYQD5J/OdCBWpPP6h7wWWWmIfWwKol+FvWSWL+hNu5YmLUPBAfrjBE007HCbtiJ
         gzcQ==
X-Forwarded-Encrypted: i=1; AJvYcCV2Y7Ml6wm+dQcNXc9HlW9uA84bh24xBuRfIOtzomTjvjZ8g/9mSdBu7ktWmyXukA07/hPUFdIGqX0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyVI+2iAvlOR6p7DPDz0R3+nhUPKWpVW0R0Z5C7tStw/drM4ISy
	sounYm5AoQfK8ljBdIZe7MP96RNIeHGGSFeSzWMCcAx3XiYPeK15Y4h+2pYY39F5iw==
X-Gm-Gg: AZuq6aKrpxPaL8jAtxMhQcXxi0JQ8HtL5QhoO0M9lIB811WfUdqIlNkDLKL7eEB3fBX
	5FwPicSb9wSdL4ySu3qtUjSjA4+DFw60HdI6I3JBToRcmj2QZxQTC1q/uCworhU2SJZVPPSrqwe
	0CsX9IZcxjLQNmFHLWHGamOtjQxDX0QOaa7eqJXZusQTZJNETePpQfn3tAcXOPqeNvBDBBiVDY6
	x39wy5XXsJvSkEXrTOxRo3OOhTPi9AZaifmRHcJ+Pkza23y9ffgURxmEcQKnFNxxUbTcT/kj3jK
	p5InyBTZR8pTxMJIaW3O89IrAeszRJRfDebjzG4TUrSrjndWkJa75Yy5hm4JixIpfJ4d3lZW+bm
	N0ibJYGZP8Xs5hKI81lbmyfoAxaQ/V8pvL35WZ6LGKI5xD3fKFjSH9O763UNNIBj7D8iOg0sa0h
	4wqufnI/lVlmBWoBgBKBSLdv4fe62wYb4ghssX+Zcs+OXY9WyQO3evEA66ikcXurR1kf6wf9vZ/
	B3XfUqyD6ju0M8=
X-Received: by 2002:a05:600c:a00d:b0:480:690e:f14a with SMTP id 5b1f17b1804b1-483a95bf2f3mr156342685e9.14.1771859636185;
        Mon, 23 Feb 2026 07:13:56 -0800 (PST)
Message-ID: <4d0d2163-367a-4d6c-bf46-9f58292e1baf@suse.com>
Date: Mon, 23 Feb 2026 16:13:56 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v4] xen/riscv: add p2m context switch handling for VSATP
 and HGATP
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <5756356294dc066d835269334d0f3347fe24cec4.1771504676.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: <5756356294dc066d835269334d0f3347fe24cec4.1771504676.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.02.2026 13:40, Oleksii Kurochko wrote:
> Introduce helpers to manage VS-stage and G-stage translation state during
> vCPU context switches.
> 
> As VSATP and HGATP cannot be updated atomically, clear VSATP on context
> switch-out to prevent speculative VS-stage translations from being associated
> with an incorrect VMID. On context switch-in, restore HGATP and VSATP in the
> required order.
> 
> Add p2m_handle_vmenter() to perform VMID management and issue TLB flushes
> only when required (e.g. on VMID reuse or generation change).
> 
> This provides the necessary infrastructure for correct p2m context switching
> on RISC-V.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 15:22:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 15:22:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239119.1540554 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuXlH-00006I-Uo; Mon, 23 Feb 2026 15:22:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239119.1540554; Mon, 23 Feb 2026 15: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 1vuXlH-00006A-Qa; Mon, 23 Feb 2026 15:22:15 +0000
Received: by outflank-mailman (input) for mailman id 1239119;
 Mon, 23 Feb 2026 15: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuXlG-000064-So
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 15:22:14 +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 6d1f038b-10cb-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 16:22:12 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-4359249bbacso3284111f8f.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 07:22:12 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c00c18sm19476964f8f.14.2026.02.23.07.22.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 07:22:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6d1f038b-10cb-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771860131; x=1772464931; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vEiEFl5eqOISNOE1o6CffwpQkCgDHZkJQdf4wPjqUQg=;
        b=PJ+erY9WRSDdHILOgte6nppDCx6HxLWcAFWbVV11+gi2skypr0PFcHLKK8E4aiY3gZ
         CWRWTKrVMzwHd88yZ51f1s1k8ZDF+WRn2p8PIW1thfRxzQ5jEji9OGgyjPBM8KaSY+PM
         WWKa9N7MjnPJoSHquzWjLXiaEO77GW9QoQ+VDXWQkJJFmfgRX+MoBq1ldE7T3dSDgHhO
         sIFrFUxJgsoRUpbUzKUmLtJjDvDMjk3i6P35lbtr3MrCjfkKuUlB5PD6Arnfm8asCmla
         W4+Q2R6l4kw16zyMnB4p/dLxLm3aWqGNY3QbeIM3VwP0pZtWAhErHdEkJNM8JOFAOndP
         NJIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771860131; x=1772464931;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vEiEFl5eqOISNOE1o6CffwpQkCgDHZkJQdf4wPjqUQg=;
        b=OefVH2FEx9Ql+esPbgAZ2YWWD4bKlDXNSa3hLNMQ4iEoiMumwV7UC9rk7G6+AT52kM
         rXFiENowjG1OoeHGdrust1eLZLMT/B9ohS2wEUpqRHAoK/c+dHj4rVBbGbjf45alPg1V
         aEgI0YhBY0J3e+NfgxoFn8Z5heU8oIF3ZEMYifW1crMbO95O0zSLGpTmxe3Rxmys+TkL
         KiyuOYhLi64x2Drtrw7wBNrrEdbkX8jVH7nykUNtuS08T0Y43SIxVgQhCf7zWwGMIFv1
         lT+61RFWOWQbxBUe6cY5TNQgCxrpKf7Knw+xq5OEH3qR0KWq8h7KZwD8gsP2B014Uzu3
         DtnQ==
X-Forwarded-Encrypted: i=1; AJvYcCWNwy1bc4EClG1+sTFiGVFrX4NP5uTEMYlkr7wkVY/DpRPQ5Lbb3YiyELBRuwR1sTPHsGmoebR/H/k=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxbn4nTEe4eeTLWMLHsFocGa3pxOw7BDDF82hzc1revei5ScGPX
	BvnT8fmYdoYSjgjgmg98BTFXLasmppsP+9bjLlxafvY8VDDVAbmVqwaGJHBxrnwt6A==
X-Gm-Gg: ATEYQzxBSomde2G/WMyK9K6bxfdzh0BgRsiT6DTIbKLVGdIvRKuPwKV4mPUMhWDa5IW
	7gEzL9vPlvWRdVujFMJdGDZ2UUwc5aHFexG16RJ7oiMdbwUv8QCJr7KX4+63Kxuc6iXRPZeaGrq
	26Z+d0m372Ex77P4mCQYEK0eOs0nMPSjyEHLTn9nuF8MQ0Sd3i0yskTXr3+Zl6EPPPxSSpyAsIR
	bgg6c8GPP3PHRO4QORF2HEENoDTX5A944ukz97XfSQQP2QJx9elCdGlFCUt5+eCOiAnxZ/LA4xL
	5TX0uBHHmG8n0lWbFrX+c4HEJg0oK04lekrXAIvZdHqHTw7z0apeEhdu2fprWaMhFwyomOmqERy
	10ao3mC1SmI2lEcm63BWrUmSOWWeHk9amoCSfriNVu5gBBmeBFtHwg8b64/eKaqEKb9SdM1mcHQ
	BzTc3AwtFxV5CCDVmfICOAX+oS/17kR/lJIAPzN54kLguauz9xnXbfnjMe80ybNgnBoWfDjZhDH
	xTk+7ReuKSne5Q=
X-Received: by 2002:a05:6000:18a9:b0:431:8bf:f08c with SMTP id ffacd0b85a97d-4396ffd4669mr17272894f8f.21.1771860131508;
        Mon, 23 Feb 2026 07:22:11 -0800 (PST)
Message-ID: <43a90b6f-683d-48e3-b7cc-4b8c6dae087c@suse.com>
Date: Mon, 23 Feb 2026 16:22:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xsm: move the console read properly under xsm
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260219184503.21918-1-dpsmith@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: <20260219184503.21918-1-dpsmith@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 19.02.2026 19:45, Daniel P. Smith wrote:
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -554,7 +554,7 @@ struct domain *console_get_domain(void)
>      if ( !d )
>          return NULL;
>  
> -    if ( d->console->input_allowed )
> +    if ( !xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
>          return d;
>  
>      rcu_unlock_domain(d);
> @@ -595,7 +595,7 @@ static void console_switch_input(void)
>          d = rcu_lock_domain_by_id(domid);
>          if ( d )
>          {
> -            if ( !d->console->input_allowed )
> +            if ( xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
>              {
>                  rcu_unlock_domain(d);
>                  continue;

At least the latter of these two can be called from an IRQ handler, and can
be called with IRQs off. Flask's avc_audit() looks to be using a spinlock,
which isn't IRQ-safe. (There may be other lock involved; I merely went as far
as I needed to to find the first one.) IOW I fear you can't call
xsm_console_io() from here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 15:28:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 15:28:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239130.1540563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuXqs-0000rn-KU; Mon, 23 Feb 2026 15:28:02 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239130.1540563; Mon, 23 Feb 2026 15:28: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 1vuXqs-0000rg-Hf; Mon, 23 Feb 2026 15:28:02 +0000
Received: by outflank-mailman (input) for mailman id 1239130;
 Mon, 23 Feb 2026 15:28: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=ndCc=A3=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vuXqq-0000ra-TN
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 15:28:00 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b9c9c5a-10cc-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 16:27:59 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BL1PR03MB5975.namprd03.prod.outlook.com (2603:10b6:208:31a::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 15:27:55 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Mon, 23 Feb 2026
 15:27: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: 3b9c9c5a-10cc-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=U8L8zRDVKdXmHewL1ZdHhEeUz9s6WubMGihK2jaFe447QOmmyf5Mxi8xuJG/tTa5vDs6bq2ifpsPa25Ahm4Fr4N7UNgEMvUJXQTY2Nu9iqhOU6RG6AUHLQctaMeZJKFQcM8iAVpLy27XWLsw4bqvw3GJo/L8H2MD+D/WQMaqyjN7aT9ByKrmhoottDx0z5j9doHNeq5aNl0hR/KYuRxHALMqOAqAbU+irs+hoQlZ6xo0H9xJvFhaO+1Nc2J/GHX4JYMwcurxgMF/BGt4eK9IGusX6OuRUrMCp3pYpwTna2P93q15+zFBUidDSvvwqwgLbd/v6M3kr1a4qlA7iH9l4w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=RD6EGVMj/RXjZfLDvyRwa7LgHV4F59El5tlUhzDwmnc=;
 b=BJIOeDtlJGJabyUS/i+0tSM7h2cO1sbzlvyTSej7x61ra3h/ku31G3HXOjhDuRQvg/oY7kCoSmfWHeF+PM1zRS77UXx/e5rhLte+aKFJhpCtFiCo9fZtHQq/u7JOcZaImbZI09vDDx1U+W9kYDbTT+DkBcsSoNTSnodssKMkEIiL/xH3wNbxN0WJ9qB4xnImJTYkEdEcyv4I2DeYg5ki5tlhs+QLIoghKdm8+dcdKWtM+T2Wf6xzB5OYkECQNj88CJR+20w5NTicgoOaNFIHXNeXayn7UuCDJtaIwRJOPwZ/hbRh2pkyXnkuTvrVM298N+OAECeCGxtCMjCO2h8T2g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=RD6EGVMj/RXjZfLDvyRwa7LgHV4F59El5tlUhzDwmnc=;
 b=Rt8sx8Srfv1C/MWY3n2p0fS9R/s9janfG/TBubbpxQH+Q8v7xOi0phM2iz3GFJzXPROVoyRoFUlwRqku+Nzj4mFXXm84ONR4U0K8u2vAIcWKRQysX8uuX9ScRMCtjcgXq24hSRrSmQvCdipLUyz8VLHvSdfNmZpFkvCWYd8ANUs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <7ce632b7-32e5-4aa8-bbb4-ca32cfebba29@citrix.com>
Date: Mon, 23 Feb 2026 15:27:51 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
Subject: Re: [PATCH v2] wait: drop wake_up_{all,one}()
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <be4a2b14-2217-49a2-a65a-237852bd5296@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <be4a2b14-2217-49a2-a65a-237852bd5296@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P123CA0034.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::22)
 To CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BL1PR03MB5975:EE_
X-MS-Office365-Filtering-Correlation-Id: e1abf922-e0f7-4c5b-9445-08de72f01d9a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?d09PeEQvWUE2bmxGdFVzU0pSM200TVVYNFM3NkI1N0FHT2Iyamd2bTQvL0Za?=
 =?utf-8?B?YjhTVzdtdWdCQ1ZBR21OVzhKb2svd1k3Z0E3Y3lETUVBbkFZait0MG5CT3JD?=
 =?utf-8?B?VFl6b0NSN3ZEL0NmeUZyYlE0T2k3VHJuazI1empZVFNWZFUzaFlNcG1qNVVq?=
 =?utf-8?B?TUM5Yk8vQjBmWjU0YkhDMmg5QU5mc1RuV09WMjMrV21DZ1lsSWZkMHVpWlYz?=
 =?utf-8?B?Ym55OU9MTWNiQnZxRUhvdE5nM3lKTDFibk5ZRXdWdTg3TFJWWi9wSENDYjhB?=
 =?utf-8?B?cXNMZkJ1Yzc5L09jVE9rL2V1czZuNGtkbTJLcUVEb2VndW5heDNlbE16QjZ4?=
 =?utf-8?B?c3dDRHhNYkprZ0xxYVJiNEFKRkcrcVZzdUNvQmFGOXJaU1JvZTBKSmQyRE1R?=
 =?utf-8?B?RG5yRnVia1psNHk1ZHBPYURHU2lhRG9xUFN0SFZnd0IxVmxCQXc4UEY5WXBX?=
 =?utf-8?B?OFJ3N2JZVmlWSHNtaVh3b2haNkVkWjVsWDdlRG5nL1ZvNTRWbTV1cStGMDBL?=
 =?utf-8?B?ZjBHRE10R1FoZ3Vuc1Q4eTdOVEJXdVdQNnVzZnZVK2ZodUIxdXZaT1dXOE85?=
 =?utf-8?B?UW0vcWNxYXZiOThxL1lpNTcxS096YUV4NThJRlB1QjJZenhsYm1WVEVBb2pk?=
 =?utf-8?B?S0VNMFV1d3VkdzlhZkJZdyt4MnFKZUpjVXJYd2RoMytGRHlrM3R4Ukh5NlRL?=
 =?utf-8?B?WmxvOVZmZUJHeVFNbGpCMUcyUnN6bEw2WG1GZWx0UzZTZXV4cW80TkdHYWpR?=
 =?utf-8?B?SUZEenMrWGRJdENVcHlIeDRZMWovbENZN3dFaW41aGEycVFVSzYwM3BsN1Bs?=
 =?utf-8?B?VFlib0tBaEpaS3ovVFpka0t6ekJ3ZmZHSjhCMFZmT1Zwci8vTk94R2JjWjhy?=
 =?utf-8?B?U0dUUktMMlJPSTNTMHB1Q09EMGw3MTdvZjYyQi9MTlI5NTBjYjVsOHpUdVpY?=
 =?utf-8?B?NDd5WHFHczNrWThsL0h0NUFJK2VXNUZyRUNsNjVSUzUxQXdhSjRJZTJGakwy?=
 =?utf-8?B?NVN0QWJrZW9Ud2YvRVJ6TUlwOVgveVV2NlN2MFpCT1NTaElOR1RNSXM5azNB?=
 =?utf-8?B?RWdDbDdoWEQvaDlacDRFU1FrWE9BeWI3aEJMR21taHlmbVVFbHJqZGozWndN?=
 =?utf-8?B?S0hlZUYwVnd1c3lsaFV0Lzc1VFRqVGVNSHpwcGlEU0Iwem11YTk1L0ExWTBH?=
 =?utf-8?B?MXRKV2JMeGg1MWFRSWlaRGZ2N2tUVk54ekowUit3U3JGTEZXeFdSdTdaSUdG?=
 =?utf-8?B?OVpENGtWT2k2bSsyNjc1MjNYNjVqNjlNMVVHUGtma1UwMjhWVS85ZnFlbXJ1?=
 =?utf-8?B?d0o3bWJET0I5eEpIcU4wR2hiRkJ2V0p1RUkwOG5oYVkrbEpNSFpUZEF0L3FI?=
 =?utf-8?B?L3MrM2VybG5KVVp6QVc5bFFUUmZTbEVydmJpb09ubGZ2VlU0N3ozQUthQk5U?=
 =?utf-8?B?akUwREIrbnpaTEtPSDVFWXBoVDRLYmRVN1kxWTVDa3pSUDdSbllodC9BZyt6?=
 =?utf-8?B?a282eHJQeW9zY2pMeW1xeDFtQmw0OHoxaEorY0cvQm1zcTFya2pHRm13NXdl?=
 =?utf-8?B?K3lTVUt4V3puSVVucVNIeFVjNnprdkU0OVoxZnp6SmpGSDdOcTVwTGZSdWlT?=
 =?utf-8?B?Mk9rU21VbjNxcUlhMkJ4cSs3bHJBVGZySHhPMGhSeEM3L2krMk1qR255MHhZ?=
 =?utf-8?B?YUFOelRoamdSazdEalBNMTVwd0F6MnlRQjcxbmJiT0lQM3NhWjVqb3VVN25Y?=
 =?utf-8?B?QjBSZXBMOHhyNUxjRzQ5OE5BZE5EcDZWMzBYR1Y1aGt6WlpidXlvd29uanZz?=
 =?utf-8?B?ZjA5NnhVWDlLWVNYZmV5Q0ZqbGdhQ1A0UFRTZk94RExQWktVUE9pZmp4d0lm?=
 =?utf-8?B?NWJuOWViV1lEWWFDVjdtdFVwdTVpS3B4VTFBd3FhVXM2aFgyQWlLVFk1MjVw?=
 =?utf-8?B?cFQzclRVU00vaFZNV3NBaDBGNE5Qcm1GaDdwWkFwYjF4QzEwZmdTakRXOXpt?=
 =?utf-8?B?RkNPVXlqbDMzTUt2bVIzRm8vUEVhTmxuVGl6YklaZ01oejBwdlJOV0VCVFlt?=
 =?utf-8?B?ZVJXcE1Ma1h0U0hJNjdyOW1PYjFwTjE1ZG0wMm5FTURaUCtSN0hYYmU5dHM4?=
 =?utf-8?Q?c3PQ=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QnRGbFRRK1Z1d0d0VU9xQXdXa1BENjFrVEp6S0Z6SCtLQVBZRkRiUHZQZ3oy?=
 =?utf-8?B?bjY4bXpXZ3FiWmZOR3lOR0pQeXlrYTNuK21uNTd3RjB2N2Z4T29uZ2o3bHVU?=
 =?utf-8?B?aGZCUWhEbUNEbWp3V2h0ZVN5eEo1Wmp0a09zRXJ4Rk4wSEVURm80U1MrSjBI?=
 =?utf-8?B?czBpbEdsNXlMdGtQSzVqNUhFenNlcnpJeXIzY0JUdUFXeVFHcTlEQkdoSmhI?=
 =?utf-8?B?eE1GcDBLZHkxSWFqYnEyc2FWcEtmS28wUEV5UzY1SlVjaXA1ZzYrT3ZDelFC?=
 =?utf-8?B?Zk1RNVVrdWU5T0QzaW5ZZDYyb0NrdmRmWEhLT2ErVHJsQnY0QnJKb3diV1ZB?=
 =?utf-8?B?WCt5UlBtbXF1SlRsaGNjendaVVdPbGhhM0tvU1lMWURQVWtXYlQzZ2hMWGw0?=
 =?utf-8?B?MTRwUXpxTVovdlgvQk5YY1NrSGo2Rjcwd1hRRWIzSEJkUHM1OXJpZ0RHTzU1?=
 =?utf-8?B?YiszekhkMEdsUUx1bFptRjh5ajBWTHlGTmthS3FQaUR0OWFtaFZyQ2FVVDVP?=
 =?utf-8?B?VWVnTU4wUTFvZk1RUktudDE0RXREYmY0SHJvVGw3b3ZvSXFrdUJYWmIxalBq?=
 =?utf-8?B?R0RpMFNyVlU0MENzQnpSZERnQkcrWUovNGNLKzV0V3NTTUw2NG9XT0svalNj?=
 =?utf-8?B?Um83UUs4UnZneEFNOTdYU053NmNWbEo3MU8vZUZQK3haRTdaQS9UVmFzZlg4?=
 =?utf-8?B?c1dDMXFLaklIbzdxakxFNndxQ1FuRlRaNXpQRkR4d2dBRStuYThUa2NDMWtD?=
 =?utf-8?B?OG15NldHQ2V1OE4zRjl5dVpTNUVBcjZHZDVqMk45MHBlS3Nvd0JQUEJ6U20x?=
 =?utf-8?B?NTlQaFYxdkYvQk1TOEFZbU5IWlJzZVc2WjBVakRRRFAwd0orVHdxTjZiQnFw?=
 =?utf-8?B?TlZDYXVKMlQ4c21iMitLWkNMVHJab1FjR2hKMVkzUE1SQm9vcVZzcnJIc2Rl?=
 =?utf-8?B?NllFZmpDOFMzbkxlQURlTE5KWUtXSGlENHUrdlY1SE5uUys1ZCt1dnpPV3BV?=
 =?utf-8?B?SUJYM0QzTzNEdDJydFhva1d4a0ZONzVMa1JaNmhrUXZuclVDMGhJVEdERjln?=
 =?utf-8?B?dHhoVEVKc290S3FRVTdOT042ZUxKNE53MFJsRW1qT2U2Vmw3MmIwLzNVK3Jx?=
 =?utf-8?B?WEsvNmpZSXBaaDVrM2RyaWRiL1ROVklMR2IxVDhmRGxKUXllMVFuQ1dwSGl3?=
 =?utf-8?B?TjgzRklkMXZKejRpOVZ2V0ZJRTRFNWlOMUlxcWhaeGlpSm5JbzFiQ1RDRUFD?=
 =?utf-8?B?dlliV2cyZldZanhyblF2aTlUVjhabDBRSzM3cFFrY3Z3V0JDWkU1QkQrRG5i?=
 =?utf-8?B?UHMvbEZWRGkwR042bzJpUHNMYXV6YXovQUlZc0FNOXhUVDZ4emZkZUJtRy9O?=
 =?utf-8?B?UDRuMFk5VkxGYytFMWlCZTZSNkVXWUlXYWdtY3gzTll1eVNsWFJrdEtGNWY1?=
 =?utf-8?B?U0tTS3pPb1NEcndKb2E2UzIrMnA1N29RNTdvU2t1QzMzbjQ1aXV2MkFPV1RR?=
 =?utf-8?B?dXFkQzUyVHViOG5KdTVsQk5LWXRlRk44L1dlL3g1TTZRUzdWSnlwYVhzMUlo?=
 =?utf-8?B?OW1ibUFLU25vVVljYVRrT1krcVQ5clJFRFFmeWo1ampFVEFSWTF4anZmaWJ3?=
 =?utf-8?B?SytJbTJ6TkNVYW9oaUgxQVhMT3d6ckptTG4wRVNKL3FpSVhmTmdHOVgrSUZD?=
 =?utf-8?B?NXFERUdXdnYrYmV2clJzc1M4Z1VVNUxpLzRxakQyNzhHTkxRVUNCcHJ3dlJn?=
 =?utf-8?B?UGZyejRQZE9tbm9pTHRqQzFPU3VlZGlHOThabFY1emJqZlBPQ3ZDUEtLWmxU?=
 =?utf-8?B?SlF1aVpNU0lpaXB2cDNzNFJ3ejloMFVDWTZpQUFCWDZRUXE2b2ZpR1drb0RZ?=
 =?utf-8?B?eWx6b2dOSlg3aldZb2szb1kweUlNWnI3L05KOXVaYm5wdFVoTVgvUHlXd2xX?=
 =?utf-8?B?VDRYQjA0WFd1WWpCSXZUUGlaTGFpV2VudGw5SXVRQUVKN1VqTTNHOUhJWXFF?=
 =?utf-8?B?TnNMaENFckhjM1BrcjJHbVF0ZHpiOUs4OVBzRzBpQzN1OU9ZVllEREMwOURR?=
 =?utf-8?B?a1NVSFVvZTJUL215bXprM2xvZ2hzZ0h6Y0dTdmRINFhldFFGYU11Rm9GZ0ZF?=
 =?utf-8?B?R0R0NzVhQlU1d2xoL3lkYi8wZ21TQXhjUGxVUnorclM3RXZxMW5qWW82WDlU?=
 =?utf-8?B?S2pmcVg5d2J0TWRQL1Jac0h2MnZZd3ZDTkp0dHhmMTFDRDV4SWFRUWxidVhH?=
 =?utf-8?B?cHY4M01LODhkVWZOV2hqZURHSkpmVHRobTh2bU1FNUlqVDNNYkdJT3JGRmhi?=
 =?utf-8?B?Wmh0MUMzUVpiQkZkSnFxSjdkVHR3ZHBLUXluajQ2MWNOVFlVZklYdz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e1abf922-e0f7-4c5b-9445-08de72f01d9a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 15:27:54.9742
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: HXRdmpL5idjoAiLDBlosz+6i60R+yDeSanFCaSPaNy0eXzv8D99WMsknF5evY0Ba7v+8afSLqsxeoYZCJl1zq8CD08ErR+qHbxTBsaRWf0Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR03MB5975

On 23/02/2026 3:09 pm, Jan Beulich wrote:
> wake_up_one() isn't used at all, so violates Misra rule 2.1 (unreachable
> code). wake_up_all() is only used locally, yet rather than making it
> static its sole user can invoke wake_up_nr() in the intended way directly.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 15:29:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 15:29:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239138.1540573 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuXs3-0001Mu-0Q; Mon, 23 Feb 2026 15:29:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239138.1540573; Mon, 23 Feb 2026 15: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 1vuXs2-0001Mn-Ti; Mon, 23 Feb 2026 15:29:14 +0000
Received: by outflank-mailman (input) for mailman id 1239138;
 Mon, 23 Feb 2026 15:29: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuXs1-0001Mc-5Q
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 15:29:13 +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 66fbfd03-10cc-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 16:29:11 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4836f363d0dso39294285e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 07:29:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d401aasm19564315f8f.23.2026.02.23.07.29.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 07:29:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66fbfd03-10cc-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771860551; x=1772465351; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=gFlJ93/U6MaTgj11pa6beJp1TBJaxcQo28pmKK0kFcI=;
        b=ZwkTZkB34hYrKpPZTo/EnRk9u4PaWbSbtkXiAu+7penUQHuG5i2relQqEMEBSymEPz
         9V0xP5cW5pGRg4MS3/fF+95Q1yo66HbGKDMMo0wh0YgVcGou5Y3RvcTXOxRk9q2DDy/9
         88CRU4/oKW9Bkh+tlmMS/ugclSUjFflsX9ZFxGyal8JgDddIY2A4IAplW/l2uQdqQLYA
         mYXN8CgTATepTCq/AtZzQOM+U1F5p4nzIXS9J9r5MiNREieuQ3Z/ndYVM2P9n0atDNvM
         z2xD7Ge2zZWMI/j3PLdRfJRq3NOwSNFRYpJAYGqK5ndfylgmiTFcUDGXtPYdxFq/CSgk
         CB4g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771860551; x=1772465351;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=gFlJ93/U6MaTgj11pa6beJp1TBJaxcQo28pmKK0kFcI=;
        b=g2PfcdG7xjz97TN+uctJHI09s/foNKW8mn9KJ7CLV5OawrJdPVTypfmQW1oUt/iAjg
         /WDUBO3JFUQ7pVheQhrdMunkqn41atWubvlItIDyCDhCt7E2wyp/MMhQF0TPzRamJAj6
         DzDuLDmRa6EAIMWwAYm6aijHagpHBLdQ7vauSCM+PS8lTXqfcj8hlQ0fVwKMEty1PSpL
         1wqmpk+s7c4WB79x746W2qGEyEEAT/Sfs/fNzS8U1abG+iloZPjdLu4wEQ2Z/kzp1MJE
         AXZcrB9fZuJoqKW+2naLQsGp5UUn0lGh/P8ntKYdmw4T14P++B7XmajCB1GWBu7D0R85
         O/Bg==
X-Forwarded-Encrypted: i=1; AJvYcCVyJa403Jes0h4v5PKnDcjgg1L78rnJvvwVnyIy4qTvhBbbEu37FC7nzI4bJr8cYIR+81zJw3tZmCg=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy1bjKrqLcPsMl3gd0O4+BB6c4x1HOsqlv5R3kH/iaksVl2Y2Oq
	WCVYoZHvG09XDGWguGDkYVM4FPdUhF5jYvH1nsX3XiY4C2DBlZO+gwADe10NpYlphA==
X-Gm-Gg: AZuq6aIvSHhX6JU9nipPYgTY6HJBxNuiJIYgvZ1A+JvvAhuZI/JsEApOxjqeZKoK4ow
	LxdaTPYmhsk4K82gzZ6mhutytIk6u28frJjqr5fiaq26PdFSsZv9IbUNUWWBE7zL157ccZ3/JI+
	PLg7+mm/fNskjiiXVcLlrPT6NWaGqzH1FDSEMWOcZ8Lt0yilRok7FjZ0fyHoQ75cZdQCge39BPo
	1/3pvaf43hTE/3wUesddrpLy5QcrxLsTCu92VPdeEx4h+1Vh5uCXdxjs65rnFrUPfOXf7JwG4CG
	xfnnvcPcwIpQwhbJs8AJndCgoW/PSuYc0TMLg4nYnJ92lV29GOUgtg8+KTmW+sNPoAQcPgd38x7
	2sJF2jC+cy+E2uxPGITx7z/UdsibJkOd4T/pdvArB/uUH8wijs0KH+TNjiWMzxQHPhBX8tx7JeO
	/n4UOhPZA6Do0n930BhF9LmZEMy3/pvGife5chjtvRnvip2/pzWpxgL8nkKjwy5upwoVd849TNI
	7VB90l4jRarPcoE6igWG72ekw==
X-Received: by 2002:a05:600c:450c:b0:483:7783:537b with SMTP id 5b1f17b1804b1-483a96365camr147724835e9.24.1771860550704;
        Mon, 23 Feb 2026 07:29:10 -0800 (PST)
Message-ID: <75f05c4d-5c1d-4fc2-953f-2beb11467116@suse.com>
Date: Mon, 23 Feb 2026 16:29:10 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/platform: Adjust temperature sensors MSRs
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>,
 Tu Dinh <ngoc-tu.dinh@vates.tech>, xen-devel@lists.xenproject.org
References: <08370f3b8b224493b8e66e8503a2fe0d07b73c33.1771600155.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: <08370f3b8b224493b8e66e8503a2fe0d07b73c33.1771600155.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.02.2026 16:53, Teddy Astie wrote:
> Temperature sensors MSR were previously assumed to be available when "DTS"
> CPUID bit is set. This is not really the case :
>  * MSR_IA32_THERM_STATUS is gated behind ACPI CPUID bit, only DTS-related bits
> of this MSR are gated behind the DTS CPUID
>  * MSR_PACKAGE_THERM_STATUS is gated behind "PTM" CPUID
> 
> Also adjust the MSR_TEMPERATURE_TARGET which is not architectural, but stable
> in practice, and required to be exposed for reliably querying CPU temperature.
> 
> Fixes: 615c9f3f820 ("x86/platform: Expose DTS sensors MSR")
> Reported-by: Tu Dinh <ngoc-tu.dinh@vates.tech>
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>

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

> --- a/xen/arch/x86/platform_hypercall.c
> +++ b/xen/arch/x86/platform_hypercall.c
> @@ -89,9 +89,26 @@ static bool msr_read_allowed(unsigned int msr)
>          return cpu_has_srbds_ctrl;
>  
>      case MSR_IA32_THERM_STATUS:
> +        return host_cpu_policy.basic.acpi;
> +
> +    /*
> +     * This MSR is present on most Intel Core-family CPUs since Nehalem but is not an
> +     * architectural MSR. No CPUID bit enumerates this MSR.
> +     *
> +     * This MSR exposes "temperature target" that is needed to compute the CPU
> +     * temperature. The "temperature target" is a model specific value, and this MSR is
> +     * the only known method of getting the one used for the CPU. On some CPU models with
> +     * Intel SST-PP, the "temperature target" can vary over time.
> +     *
> +     * We assume all Intel CPUs with DTS may support this MSR; but reads can fail in case
> +     * the platform doesn't actually support this MSR.
> +     */
>      case MSR_TEMPERATURE_TARGET:
> +        return boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
> +            host_cpu_policy.basic.digital_temp_sensor;

Personally I think indentation wants to be three deeper here, but this is one
of the grey areas of our style. I may take the liberty to adjust it while
committing.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 15:42:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 15:42:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239149.1540583 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuY4r-00045M-3b; Mon, 23 Feb 2026 15:42:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239149.1540583; Mon, 23 Feb 2026 15:42: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 1vuY4r-00045F-07; Mon, 23 Feb 2026 15:42:29 +0000
Received: by outflank-mailman (input) for mailman id 1239149;
 Mon, 23 Feb 2026 15:42: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuY4p-000459-8I
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 15:42:27 +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 3fd0822a-10ce-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 16:42:24 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so41369325e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 07:42:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a9b75e63sm340781755e9.6.2026.02.23.07.42.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 07:42:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fd0822a-10ce-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771861344; x=1772466144; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tD9eJ5RAeRrQ/dt4hNkudm5i+aFsE603xWVin7DgFGU=;
        b=FPMghS2/Tr92W7qVj1aGlJAt2YFBXg3t4en6nEF7ZNSO89FDTWvWGTlPxRt+XXoRJh
         AZs6cpZQAc0MRCxczuGl/mMlm2GZYCHO5d6jHQUket+oK8e7uEQWUCMLZMa43nAwwiY9
         RPA7nszQMhAxxn4YTb90xWDiP7Tl5uV2tmG2wTH3rEIXb+kr/ezj7F/GkdUs7QBwL7+k
         ILrztBjkK0JJGnXb9IRqPW03EVMoh7ZyKGHRjuLEa1kk5LC326sw3Be7khV57wVu/zjV
         jT4l7+ufa9AKoBCC7+OyP4mffKyA3pqbK+9GrXP3UBZlTl+n63u9mnSq8plOE/UDtMEJ
         JwZg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771861344; x=1772466144;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tD9eJ5RAeRrQ/dt4hNkudm5i+aFsE603xWVin7DgFGU=;
        b=aTlY5OvL3qHmcdbJqFtT7IvIA0ZDxn7d+PAR96cMB8w2tPw4OL6XhcuUnhCvxV5naR
         YGmjFMwh9E0hJqbfceKNbqRywIchE0yR86YevKlNW3lw8SnLZ4vpf8a2ItryeoAkEA8Z
         Bgoqd8pHT0JvIpOgEsmranfxwcHQ2+3/6JUNX9WAEslyTE8EkYIwJOcXJ0774H3ww7+u
         JxWlEBQtfJOtDzvUSOnYz+hdv4xWs25H9AOl7IYQkxfiUafNYPj+8U7MZYtSzT4ATHbN
         m5Z9BA9YKn6xZ9PZxhSTNWbP1MDqS7bP4G4rCWuc4Iv+6ydZ1gRpmZY4B+n7TetZ+uET
         mvMQ==
X-Forwarded-Encrypted: i=1; AJvYcCU2GuEpjb/LDkL6h8ipAfbFqYKXpbsxQAVin83H8+ROLzLl7mPk/JRwn4IkCDWLZKE/AxrZYAVVF5k=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiKZvknzXaZbGWttEz4Uh52rbPZ0YNGMSLhVfYXAoLXhNXUMhK
	Lmt0mEhB0PIwBUdq/EDQig/PHbqFFVuFsvxSBhG/gB0KZobpQFtbWOQpmAm+j7TPyQ==
X-Gm-Gg: AZuq6aJex9t5/EGrW4EpirGRwd0HbENYG7D6JRGi4QSTM1sowJrEflz4otlck0C7eEP
	L3EDmfNcIys5ouB+Yosg4qxbiR6Os3JyQHn/u85NtC2bfDZzDnyjnt4fEJN25BUriPHJgAkHHsM
	xqBJJoVbJ3gxk9BuYAcomLWH5+VoH8es+7PXouLcF2D9uofTYWpCf+R6WMuxv8b/NmvR0UC+9kk
	a9FNhQdxXjWZXPRBkcbfIjQKqn3+FTt+7x9nNkMFC1OIR7NqXBgmSVxTsba0YEz5NRwa5dxcMuc
	xnhZdmn7K2cgkzfJKjs5Sx9H1W+cB83vLfzMDeUtsWEUr/rZX+tcN+qI2/SIGoy+wADWeWqYyM7
	xY4GfvsfiglQPZCv+KIYb4OZqU788LApeOGBgQXYPItCA1LSbNF2GQXrHzEKJu0NJOCj22j9k4y
	jsVZ3ngFssatoV/VR0MD/eyElswg8juJFxocRI0BXXwHFXO32v4IOaCcpNzoqgX9Q3QGaqH1OQv
	tzri6lJvpT3DEc=
X-Received: by 2002:a05:600c:1396:b0:477:6d96:b3c8 with SMTP id 5b1f17b1804b1-483adc6aaebmr103396715e9.23.1771861343990;
        Mon, 23 Feb 2026 07:42:23 -0800 (PST)
Message-ID: <c2363613-23d5-484d-a244-bf2f53aa3099@suse.com>
Date: Mon, 23 Feb 2026 16:42:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] tools/tests/x86_emulator: fix 'shifting a negative
 signed value is undefined'
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.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.1771840208.git.edwin.torok@citrix.com>
 <c908071f1c5293e6f87c67a982adb377b0912ccb.1771840208.git.edwin.torok@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: <c908071f1c5293e6f87c67a982adb377b0912ccb.1771840208.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:04, Edwin Török wrote:
> --- a/tools/tests/x86_emulator/test_x86_emulator.c
> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
> @@ -1161,7 +1161,7 @@ int main(int argc, char **argv)
>      instr[0] = 0x4d; instr[1] = 0x0f; instr[2] = 0xbb; instr[3] = 0x03;
>      regs.eflags = EFLAGS_ALWAYS_SET;
>      regs.rip    = (unsigned long)&instr[0];
> -    regs.r8     = (-1L << 40) + 1;
> +    regs.r8     = (~0ULL << 40) + 1;

While -1 vs ~0 doesn't make a big difference, I think we want to stick to
"register size" here, and hence have only UL as the suffix. Then (happy to
adjust while committing):
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 15:57:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 15:57:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239157.1540594 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYJg-0006CS-Cc; Mon, 23 Feb 2026 15:57:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239157.1540594; Mon, 23 Feb 2026 15:57:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYJg-0006CL-8A; Mon, 23 Feb 2026 15:57:48 +0000
Received: by outflank-mailman (input) for mailman id 1239157;
 Mon, 23 Feb 2026 15:57: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuYJf-0006CF-4f
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 15:57:47 +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 64152514-10d0-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 16:57:44 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso33230925e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 07:57:44 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31bc068sm262920025e9.4.2026.02.23.07.57.42
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 07:57:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64152514-10d0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771862264; x=1772467064; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ds/RoTQe03K5D71BFLV3I6HxMYBKXTEWzKepx1kqI+E=;
        b=Q9zO7Eretz2mVJl2K/LCf+bq18tmg2PsFofeVdwAK0B+ZgI9UrvfKIcqIN9FrYbCgI
         FM11juKLamQC/lymWo7keqyzDpJeNm5SeqjVbc7z3bRGGS1MNOHVR+Xy1KVCvD6ONizU
         geXZG/FnE7Ah6LcPRcXGMfM+30DgeNL5XK4xDZxSHpl44ea9P2sft5GEcHHbEYvOKKre
         IvCi0fgRtD1e73pD06RcawaOlc8izzLIcOILwG+jY7u0dAKiiTM+O2IX3SNmkIy9HGuP
         B6/EwvG6CpEcfqmJVXZfomPClFaY10/pUfqRUK7cKOsk2jgTcjn+ymHvyabZkVXcOQf8
         zHHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771862264; x=1772467064;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ds/RoTQe03K5D71BFLV3I6HxMYBKXTEWzKepx1kqI+E=;
        b=ULy9586DTFuPzrZHPcsmqirPwfCraNnksBmaBqr39RD7R5o+m7JAaQypvslo/PCXfE
         dh7C1N6/YTeTT9oqi2NJEFFZo0xjqpIuNAn1zW8ebCwZSQkD2P8zUshHvefZtmzEhIHC
         tJoDeb1VL/UYNI8lzJVyOGbD8pyd9IIjaDSHElcgZ9VyDyup+UVWnFKRlXuWLF/e/vap
         IKwI3rdHoMBxGN7XJT4e+ORzBWgzZd4EiFGbKwiTrTrX93AjoeqxzVoONTX58YfOJqlt
         7gM4Vr+im+kIfm/afL3EHjhaMKvy+CXVGQeW6oLHzCRoW4GMbNfmk/qpOieo0iYtXT7n
         4WKA==
X-Forwarded-Encrypted: i=1; AJvYcCWc7bLqqJkpa2+S+iLWkHtLMTzzdJ3NU7Q4HQxDW5BdI9kaLSaOsM6C2gAZVA3D6Cx7lCG+BcKcWAA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxgK8ZBAsCseli2oQdK6D1TXKoXHcPtNDmeyacNgt4absfJVQJ4
	eirRRjNP0sh/3Hy6h6OEckqj05hg1+iqrJcEb1IIX6JFlRXJPhDLb71BMjNzG6yNBA==
X-Gm-Gg: AZuq6aKiuU9jWWyrZDiW210dByFoTYfSE0cOcDQK9MxA2pf4t4xmozVRt5x0eXiaFie
	x5sEd0jA6Vpu0a8iDv2rUejDWSKq258Bre3LiHIZV2XQWwsdgEuKQmEkoSSDWjFpBwdb+yu+415
	WJO2IefveLFREDEI+9NUZS3SBevQMulY4nVFuj0I7O0hTCHkvNIw8jVpvxbUGfKcl/c7PnavwLa
	Chz0F3sGwmtzbvxSsmjMcJjthERiTm9MKoR9ISFZZM71CcQU3xTUXLp0nPXtbzPVJLq0giCUU94
	rNc4pazPPUZQMnwRjc6b6ug7IsGRRZgwebk1Yg1TOnjK4+ERCzztsaCAXisw/u+ZUlPJHL/9yEF
	OohTN/Ru2839mERnrfOwWrg6k2XN1cRDMa6FbBLtb95HIXTTDZM+cV6pKhy92fUJtNRJ3LqOty+
	fimEIDcr10ZI7CwG0PeCxjH85EGRyBOAwm8BzN3wcT/cgoaU/GXZq6hfS1DwYJaXaSuiyRauDP/
	pEhAsVkVREq8aaJbiHWYnEdpw==
X-Received: by 2002:a05:600c:8b31:b0:483:2c98:435e with SMTP id 5b1f17b1804b1-483a95ee684mr152402285e9.34.1771862263853;
        Mon, 23 Feb 2026 07:57:43 -0800 (PST)
Message-ID: <4711b676-82f8-48ec-a7dd-5c33bc7cd967@suse.com>
Date: Mon, 23 Feb 2026 16:57:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/4] tools/tests/x86_emulator: avoid duplicating loop body
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.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.1771840208.git.edwin.torok@citrix.com>
 <c0dc7da75ee36d10863a8b28fa2f19b3b4c8a316.1771840208.git.edwin.torok@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: <c0dc7da75ee36d10863a8b28fa2f19b3b4c8a316.1771840208.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:04, Edwin Török wrote:
> clang would duplicate the loop body and end up with a double definition
> of the symbol:
> ```
> /tmp/test_x86_emulator-0f3576.s:27823: Error: symbol `vmovsh_to_mem' is already defined
> /tmp/test_x86_emulator-0f3576.s:27825: Error: symbol `.Lvmovsh_to_mem_end' is already defined
> ```
> 
> This is a valid transformation, that even GCC might do, see
> https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#Volatile-1 which
> says that `%=` should be used instead. However the C code here also
> needs to know the name of the label, so I don't immediately see how to
> solve that.
> 
> For now mark the loop variable `volatile` to prevent the optimization as a
> workaround.
> (another way to fix this could be to move the loop body into a function,
> but a compiler might inline it, or specialize it, leading to the same problem)

Hmm, moving decl and asm() out of the loop wouldn't really work. One option
would be to extend the long-pending [1] to also cover test_x86_emulator.c.
Another might be to make the upper loop bound not a literal 2, but one
loaded from memory, suitably arranged for the compiler to not be able to
const-propagate the value.

But I wonder how many other transformations the compiler could do, causing
the same issue elsewhere. Maybe we need to overhaul how this instruction
instantiation works. (I further wonder how many such issues are lurking in
the many patches I have out for review, plus the yet further ones I didn't
post yet to not pointlessly increase the pile.)

> --- a/tools/tests/x86_emulator/test_x86_emulator.c
> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
> @@ -5248,7 +5248,7 @@ int main(int argc, char **argv)
>          memset(res + 3, ~0, 8);
>          regs.eax = (unsigned long)res;
>          regs.ecx = ~0;
> -        for ( i = 0; i < 2; ++i )
> +        for (volatile int i = 0; i < 2; ++i )

Even if we went with this as a workaround, style should please not be screwed
up.

Also, whichever the workaround, I think a comment wants leaving.

And then I don't think it is a good idea to introduce a shadowing induction
variable.

Jan

[1] https://lists.xen.org/archives/html/xen-devel/2023-04/msg00283.html


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:02:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:02:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239167.1540603 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYO2-0008JS-V9; Mon, 23 Feb 2026 16:02:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239167.1540603; Mon, 23 Feb 2026 16: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 1vuYO2-0008JL-SI; Mon, 23 Feb 2026 16:02:18 +0000
Received: by outflank-mailman (input) for mailman id 1239167;
 Mon, 23 Feb 2026 16:02: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuYO1-0008JF-K4
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:02:17 +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 05fbfaec-10d1-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 17:02:16 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4834826e555so43762525e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 08:02:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31b3d88sm296260235e9.3.2026.02.23.08.02.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 08:02:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 05fbfaec-10d1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771862535; x=1772467335; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Y0h9ayHreNAAoqsa2WPENgR/1b+P1J/Ynq3ni503hRk=;
        b=GvhrQ56NEaEfmriJwJKPn+BXDEaGAMBmODVaVe+Pi6GeYLcyj/LE01SRbqiuOvwbAq
         upH1xgxy/FljHjUbcfUdFc+bwkUUjA1FaY5ssJL21g3rCPyfe7JcNlGuRLBz4rdpTD3H
         crSUwXzijIXvl3AwYIyxb9/ZNPCx75gJdHZzFnPvz9a2wKCfmmPKPtn+MtiI2oXJX+dI
         ExSn7GK5Q7vwAw2kLMB9yR3TSEm9DGnMfS0ejzQTawP2QtSvlP9UmHzK0Hx4NnOoW1ZP
         zQqb/YOXfv1iRYNUKxW1Aa682y3lG/N8mXsTLDCS/0otcDKiqz4lVG0eH1vYaGKcjQRA
         7YLg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771862535; x=1772467335;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y0h9ayHreNAAoqsa2WPENgR/1b+P1J/Ynq3ni503hRk=;
        b=v2iQvebpsJ1X+wgOT9OhYiG50p939T7VKzoFYx5NGXmvAHaFCnRLwmnHzPB+D+Cvj8
         8QaMkkxslk3DDhV2vJDDBDvVxf5rcnTLXM9H2+EWwQtxHje8U8t9qur81otCutEZSVtR
         Hf/2dWcYlal5hOPp5yeXQ5gxdZG00wsYLtYCefojx6BVnytdkPwyJa8RdG6HzVrlpdpI
         fRsJUafViR1+3zYEG5aswIaLwQtzxFThppzzQo8Vw/NwfQFr15j5LcQ4VmVyJ9jlM9U9
         te94NVS6MBsl+YEZGS2SNt6hOyAkHUnQUuEf3pYQQCqBLAuzLLK+Ugc7HpI7M2E8MDpl
         GvKA==
X-Forwarded-Encrypted: i=1; AJvYcCXoWiHigpb8jadA/TPMbagyyp8/ETpKKK5NoxyJzPFVsUFxz/2pBvOJgFZPFEChvWiAKThzPyqfKM0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwBveOtDQuDGvzEZqwJ2qQ3rKCbiFftJMfPlZbj05a5Ua62SWsK
	sDevT/AGjt04br8zC58YtZVuNC1VyxmBT/RdsacU+S4+3z6j/RYC/2SUwfsj8KOB1w==
X-Gm-Gg: AZuq6aIiJGNGDQ3lUim8i1c3fjTWo0qYxsjV6nzLEqRdepvIttTrYhf7RFRr0MmfguJ
	zbMSCW/8DJC7w1hNglMbs3S2Cpq9o/0SQSS0qa0mIn85lC64RLTYiURHC0uaQJ8RYYf2e8w5k0S
	TFh0GK0uW4UTiA+kV59yGfjpoxKV0FNX335tuj6tfEn3oWubEOsNzUiBb1zAeK9KAscBKeZYWmP
	BMonEfreY0yAaHNfm7MJn36SSIeGKTTImObx2g+zS2tPCGmFCHK0ElHNhvyRa6icLpcA91Xplxz
	bFPICGpqnRT7IwSH5xLyzHrcuA8C7Fv3mXsVBg+mA2RsUM0wtNP0KMZaxc/uIhk/mP7yY5szz+t
	MiBaz84bp/Fyk0yFaIvpPDsWMuqITDWfpZY4wC8imfHVwGP2GX6CGFcHXN2vFZhI1c6MM8Fr+6R
	XzEDe0FvTVwH6SFtQVJddeO80Tra9HYhu8ZUmnM22ogXrq1BuZcuwuEpIJumm63bH0WCqCjtLf+
	LF2zd0cAJbvoec=
X-Received: by 2002:a05:600c:3516:b0:477:9b4a:a82 with SMTP id 5b1f17b1804b1-483a963df3cmr189603125e9.35.1771862535496;
        Mon, 23 Feb 2026 08:02:15 -0800 (PST)
Message-ID: <6d564a09-b1bb-414f-ba8a-61bf9d9c7e5e@suse.com>
Date: Mon, 23 Feb 2026 17:02:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] tools/tests/x86_emulator: fix build on clang-21
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.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.1771840208.git.edwin.torok@citrix.com>
 <7147fc3ef5d5bdf5a811e896925d9aa641ed0753.1771840208.git.edwin.torok@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: <7147fc3ef5d5bdf5a811e896925d9aa641ed0753.1771840208.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:04, Edwin Török wrote:
> clang-21's built-in assembler is enabled by default, but it doesn't
> support some mnemonics:
> ```
> test_x86_emulator.c:2636:36: error: invalid instruction mnemonic 'fsaves'
>  2636 |                        "fidivs %1\n\t"
> test_x86_emulator.c:2640:24: error: invalid instruction mnemonic 'frstors'
>  2640 |         asm volatile ( "frstors %0" :: "m" (res[25]) : "memory" );
>       |                        ^
> test_x86_emulator.c:4251:24: error: invalid instruction mnemonic 'vpcmpestriq'
>  4251 |                        put_insn(vpcmpestri,
>       |                        ^
> ```

Was this reported to them as a bug (or perhaps even two)? That would be nice
to add ...

> --- a/tools/tests/x86_emulator/Makefile
> +++ b/tools/tests/x86_emulator/Makefile
> @@ -297,6 +297,7 @@ x86_emulate:
>  
>  HOSTCFLAGS-x86_64 := -fno-PIE
>  $(call cc-option-add,HOSTCFLAGS-x86_64,HOSTCC,-no-pie)
> +$(call cc-option-add,HOSTCFLAGS-x86_64,HOSTCC,-no-integrated-as)
... as reference in a comment here.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:06:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:06:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239176.1540633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYRv-0000sW-OX; Mon, 23 Feb 2026 16:06:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239176.1540633; Mon, 23 Feb 2026 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 1vuYRv-0000sI-Kq; Mon, 23 Feb 2026 16:06:19 +0000
Received: by outflank-mailman (input) for mailman id 1239176;
 Mon, 23 Feb 2026 16:06: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=ndCc=A3=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vuYRu-0000ZK-7N
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:06:18 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 953d1ad3-10d1-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 17:06:17 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV3PR03MB7706.namprd03.prod.outlook.com (2603:10b6:408:289::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 16:06:13 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Mon, 23 Feb 2026
 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: 953d1ad3-10d1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=dm1fK+e1NM5SVja27lfGeVWTmVwJzWmAJpn/qWmCxOs4W4uVT9wgwhlozrdvljBkjTQnuBdYs9oK4dGxFXB1zahceL9PCWkdzgnjSTpUMdSfXNp3nuxMWU2HqeY4U0PgGDMzzIq9QxFnn5hin21tN2hLSOecmv2TCpOmDdl9hVLTMD65diitcEtapOM7btvUjXJXpsxDGaGD6PvawGMhWz3kNWpF0L4pIaN3xOuaonUgHfhkWiGYGAYn60aR/Kc7ADrMbiuWYxXPhCzdnZXTGkghsvBy8RtgCWWUlhQrLbmjOtZdODRDkXJRRUXVnoW7xhQELyTUTSbAC0r+CzEnng==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cIxAVvVpUm+kbIMfFSG5+bVoCzxPD9fCqbPI+jiKJSA=;
 b=Nse4N86bLZtPt1V7E82nv0J+PVFLaku1XyEv82fcN9f+PnbeWhuQwf5pCw24TO3B7wFS2EFIM7IHYCnUGPelfZu434KvwsEZHmEqhqq1CB+zVvR9XDAMY/hQv/DiV2h769MalCfYLVrJhLQm2XGnSSz77SFLEplGd93+Burs6torN2Uhm+ECXVK/PkcNx+bksXMEgzjLPpqCUv/5BwqpaDWRqiG/5lyDU8ReoIvh+vQnqWwilp3oRfCewOgnrXwxQDz3Kf7RDPmdo7zRe8vatqk3w7r5HGvQPTs9e3lmftsMkKq3KeaAnR82UZgH9JwG2lvvQaK2yf7riOqpw7qhxw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cIxAVvVpUm+kbIMfFSG5+bVoCzxPD9fCqbPI+jiKJSA=;
 b=pu8/pf1XtrJ9ZL9vf6z54nSwlf/d0I9uqWI0u1zZ8s1/GTI/P5bePtAYGb8doY9i0iyXEh0cLdsBMg4jU7OasuQ8NKAxEtTEPn70zbcXuPhKtFWiVnzbq0Befy/8pD93OsPzZUCP5THqPhPz6EvEUBQ7KstUs3mD/fDsD6F9500=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c69950cf-7544-40e4-a58c-e2b826f6a5c9@citrix.com>
Date: Mon, 23 Feb 2026 16:06:10 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/4] tools/tests/x86_emulator: fix build on clang-21
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?B?RWR3aW4gVMO2csO2aw==?=
 <edwin.torok@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <7147fc3ef5d5bdf5a811e896925d9aa641ed0753.1771840208.git.edwin.torok@citrix.com>
 <6d564a09-b1bb-414f-ba8a-61bf9d9c7e5e@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <6d564a09-b1bb-414f-ba8a-61bf9d9c7e5e@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0192.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:311::20) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV3PR03MB7706:EE_
X-MS-Office365-Filtering-Correlation-Id: 70a7746e-7f32-4945-ed58-08de72f577bb
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?Q05kdFZIQXNFUjBqRXZCa2tSWmhlZS9JMFhUZHoxMllENTJHcXdqa3UzV25R?=
 =?utf-8?B?QVZ4aVh2VTBzbWdqaDJsZnZXWEk0UzFsbVJxZVhSdW5PcDE0TjNoaHFmcVBt?=
 =?utf-8?B?RnlHWGxEU3ltWThBQmFuQVBkWXlaNGZIRUpqRDI0NHZWV3FkdDFkdmVCd01z?=
 =?utf-8?B?YkVQb0dodjVDeFF3bVRNN0syUVRXRG5pTGpCVEpkcEUxRW15aTBYaDF4VE41?=
 =?utf-8?B?U3BFTkdHdDl0ck5UZnZRQ2R0WjlJMnlOTHBQZEJaUm5Wdlg1QVJNaCtCdDBL?=
 =?utf-8?B?T3B2ODhJTVh4b1RtK0xJSktQV3dFRk5XY3pTd3F1TC9qNDBMQWV1T01iVFlJ?=
 =?utf-8?B?em5nMTRmN2tGWUp0b1NuRGFXQ0xkOUk5dnBERk1seDhkL2d4YzNrdUU0WUVO?=
 =?utf-8?B?Rk1ITEtTOXhadGo4K09pY3R1cW0rMWlIMTYzbUlyT0U1cjdNajc3ZkpqQVh5?=
 =?utf-8?B?azNqZVlEblh5NHIrVTRLSlZlaU9UdkdLSUdZQnVkaGk2M0NvNG04anJwYTJv?=
 =?utf-8?B?SjNsQ2YrUUxUS1crdVhkM0NKZDVRdit1d1krNGFwWE9uS1NoZ29QUE9Ec1ky?=
 =?utf-8?B?Y1pDdmVxcGgxV1dKcFJUYUErRHRMcC9ZZ0pRQmc5K2tzWTBaV041cXUvVWZ2?=
 =?utf-8?B?aE1GZ2NsUERKQjgzb0toVS9ReFR6emo1bTZyME9SMGZ2R21ReWxHKzZmYTlp?=
 =?utf-8?B?SW9UeXNiUU1xRVhxMGdPbm9ud0Y1L0N6dFlCdzltUU1qRDdJcFF0V2paZUQz?=
 =?utf-8?B?d2JoQkFRVlVJVlVzdXdDanYvcnVsczBud2kxajljdmFSUllBVnhSZzdOUGlB?=
 =?utf-8?B?SlJrYWlpckRvVGYvby9ndGFRL1NjN2d0VytjeElObXR2b3hzeGVmYlpzdlpB?=
 =?utf-8?B?Tk9iT3YybGtHVFZ5RlVYK3Q5M3laQWhkcUhReWVHWEt0QjdwS1lGN1plRTIw?=
 =?utf-8?B?U1lqYjBVayt6VnY3bHNVZTk3T1pHN2dQYUEwT1FlMHdzcHUvVEkzTG9Gc2hx?=
 =?utf-8?B?dlVkcUkyOCtYS0ZxckVvSEpMTjJVNlcwOTk4Q0hoVjBrRkl1WnZkNGdBOUNP?=
 =?utf-8?B?R3gvZVhKaGczamhBWmhYL1ZmMnRxeW1kdWVTVTQ5Z3lJZEwycm1ybk9wL00z?=
 =?utf-8?B?K2ZYa0lVTE1uOU95WGdxME1UVEpmTTVTNHFsRGZIUHFGUTBNdlU1bHVtWjds?=
 =?utf-8?B?ZnhwWUIwV1FrVzNkYzhHM1pleFJmZTJ4RE1UUURhMEREcklCaFVyWmF4a3Y2?=
 =?utf-8?B?OTFrdmxqWk9yYTVSbUVBdTdUNjJmWkErMXc2QlJKU3JVbXZZeDBJK2g0YUUv?=
 =?utf-8?B?U3U1MVhIS2ZrblBCL1RBZ1I3b3FqQVhNMHdvTjlkMjBqZnN3QXptcmQ3UC84?=
 =?utf-8?B?OXkvZFE0dndxdk1taG5xbWVGMzZGdytVcDlqcEt2c0FCZytUNHNsZm5rZjZU?=
 =?utf-8?B?Vk52MCtnZ3YvRkFLcFlTK251SFJxZ2lqSWxTcktFemo1d3duU0xZR1EwNzFT?=
 =?utf-8?B?eXlSOHFyZGNqOERiMWxBUjZQM05NSXlmMGliMkR5czZvSVA3MDUyL3JCbHhX?=
 =?utf-8?B?L28wZVNDNTNLeVlRWlBTVWtEaEZ0M0EwYnV1WHZuWkNUY3V1ajgzZVhLa0k3?=
 =?utf-8?B?RmZRUWsvZ2YzZTAwMjBpRlBNRFBoMCsxeFpFSXl0eDdjNkN6dUNrNEZQMkNX?=
 =?utf-8?B?VlVmOXpHNDNiMVNRWWlZZTg5YWFDeG5nejA5aG9qQ2pmdnIwVWNGU0lBY2NK?=
 =?utf-8?B?NU45UHRZaEJyaUFUeUQ5MkdLMS9GRWRvbVp4Qy9rRWIwem5PRnZHSFVTVmNK?=
 =?utf-8?B?MnB4NGVkSVdrSXV3VENwQzJjTStJbHNTKzZUeE13VmNTYU5YUGhQU3RHT1BF?=
 =?utf-8?B?SWdUY051bnFTUThVSk9HUEovZWJ4WVlaVTROWDM1eTA5SDNSTEVIOFozak55?=
 =?utf-8?B?RURHelBZMHQySDBMNkIwYUhBa2YraXFTZHhLT1hEMnp6RmJtWGptNGMvakVG?=
 =?utf-8?B?d2M5a3pRV2cvQVhDYy9uQ05oQStkZStvN0VLVjBPYUZNbmk5NDFyYTR3bnNl?=
 =?utf-8?B?NXl3SGNrdXB1OGJ1alFkTzI0UTA1TFRLK0xaTFJqVXpBeHhRcm9VRW9lQ00w?=
 =?utf-8?Q?IBrg=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?R2JaYllETiszaEZrN0ZEb1pSVW5zTXlZZzhXU1FwSjN2Vi9GcWpPSTJJdmJ3?=
 =?utf-8?B?SkVHUFNXMWl4N0t1SmhGYUJDcHE5MmJjbkE3K1FOd21zaVl6YndGL002ajZ0?=
 =?utf-8?B?dFg2blNKMWFZKzc1NWI1Mjh1anJZUlpKRWZZajh1MVZsUGQ4bURWVDRKcHB1?=
 =?utf-8?B?R2FZQkREa1dZZ09NSi8rQUkwSll1cU5lYkRHbTBBSUlIY1RKT2RTcEFsWlNi?=
 =?utf-8?B?WkJTVDcySEdtMTZsdnJJRkV5OEZNZVR5QmQ0QzN6WktDUlVSdEUySnNuWFc0?=
 =?utf-8?B?RUliZ1pFVmFhQXE2S1YxM2IrelZ2Q3NabVN0aGxpbndOZzh1UHQya1lFTTZy?=
 =?utf-8?B?YVBXODVJRU5CMld0SzBSemJLK0FENXdDZTlPREJ6RmpySWlKTmIySWpNb0Nt?=
 =?utf-8?B?V2s5S3A2NVJRUURnc0ZtbUdaSnBaeVRmSjdiR3lVWVpHaUR2M0FIU25WUUNa?=
 =?utf-8?B?T2ZNWjBPWUpWQ3Q2M1NreFV4eEdDdUJVWEV5cE5ieGRScCtPV3ZKRlJIa1o3?=
 =?utf-8?B?TkFTVVJFTDBnVmRaRHBMR244ZGIvaE13R2VFb3JEL3ZWK2tuSDlUMXU1cXZi?=
 =?utf-8?B?RFlaNFJGZkFYajFIYmNxMzczVE9jeHZuekJaRkl4ZjlHcm9IMWIrS2ZMTHlB?=
 =?utf-8?B?TFFLZlVhWHd1bzBWQjNoUWVZdzI1U2ZHZDBwdmw2amVSMmljaklsK2ltWDVO?=
 =?utf-8?B?REp0Q2V1aGJDaW50ZXJxNXVNUTh2Y1NxRVVsZGc4MENZazFUUHRLWHh1WVl2?=
 =?utf-8?B?eFRpZXllNkh3M1pxditWL2RqdU1OOGhGMHMzamJFdHovVUNQZ3hjOEZ3Vmox?=
 =?utf-8?B?dk5oZDJScEdaMitObHluUnhVK2xhQlBRcElWamVmR3RmazZ5amRENHRWdTlD?=
 =?utf-8?B?WWI0OW43M1RGZ3NxeFNxb3Q3c3ViOU5oZXQrK212SjBJZUNLWUhiQi91dDRx?=
 =?utf-8?B?K0lidjg3ZUw5MnhhakYxdXlIWVc5UGgzRUVtZHFEdGRObm1hbnBiOUpWc2ZB?=
 =?utf-8?B?ckRka3JWRnZhbmRIZ09yTjZZdHVvRVVBTTMyVWlYUzF0MldDTnhmOENXYmhH?=
 =?utf-8?B?S1JmamNha3NkVWJMaUpzcXp4UWV4eCtvTW83aFZBbGxtK2pIaDJlTlN2WEEr?=
 =?utf-8?B?RWJodnFwa3QzOEtDZk1WVTc3dTZzSFk4TkNNZnZsUzJMNFBSVTQ3MVdjdXhr?=
 =?utf-8?B?TkRNbWxUSElIOHB4K3hkcGc3VzlHN1Q1MUE4MGgyczlYU29QYVgvV0NqOVhZ?=
 =?utf-8?B?L2llRFBoZnZ0bU9SbGdROE1lK29uWHVSVEthUFkvY3ZGOW55RFBFNXFaeUY3?=
 =?utf-8?B?eUViNDRuWHVScXc4YkFFSjNVSURSWjhiU1RCbFNoYXNTVHNpSmp0TUJTdDZh?=
 =?utf-8?B?N1gzQ2NOWTZud2owYWtnM1N5WjJFUnBIb3N4R290VnZTeFJyWktmUTVKWFdw?=
 =?utf-8?B?TGJ5bjJiY0lVc2l1TDFPUE9JQTZJN1JsRjUwbysrNUtSNG1TMFh2bU1JSmRN?=
 =?utf-8?B?MmMxZ0poQmc3VEErVkpLZTJIT2VQVFN0aC9IN093RWljQmVReXhFU05ocDdr?=
 =?utf-8?B?aE1qdDR3YUFzTWRZSGRkd05kVTI3V0MzR0Q4VGx4L0JzcEJQdWwyYUlKUDdw?=
 =?utf-8?B?TGdkb1BlZkRGMFIzbTZrWXNaMXZtVVFITktqOG5YNFNMcVJSaTRlbWhOUStz?=
 =?utf-8?B?QzlGY21tVnQ4dXFvOHF6ZWhjSE44bm1UdzFOaDZLNFlaTnBjbVowdHNzRzNJ?=
 =?utf-8?B?QkdNcUhGWWFVUWNXaTRMSWx0NVRxS3N5NFhyVkdSR3UwdlRhT1VlZjNoVjZW?=
 =?utf-8?B?ZHp5RDUrOGdzRWRGN2E1VHd6TTlWd0pKQXlEVm9STWdNMHViTTRKM3ZRaks0?=
 =?utf-8?B?di8wQlRWU3laQzhmSmx3MWxaVFpCd1dBcjFGNTdGRUlhVTRFRk9UYThLYjdN?=
 =?utf-8?B?aHAwWVBFajVVOTBzQjMwQ0YzdDAxV0RpbW8rRkUvSkVmaElUY3BLTEFTVVIz?=
 =?utf-8?B?Mm5UaG9abVNCQVdtVExra1VIU3ZBRVh2UU5VNDJqRTk5Nm1MWnJUc05YSStk?=
 =?utf-8?B?anRhNTFaY0twL2hxM1lKUEp1NzI3THlVRnpIRzl2SXpWYVNObmlTVjMzaEtm?=
 =?utf-8?B?NTFnbitwZWFIaGN0bXFSMHkxNzNjVUJRQjRTMHZEZlZxQThRdnpNMHpSTGk5?=
 =?utf-8?B?T29sU2hxZ1NWVEl4WSt0NTlEZFZRU2tYK3lVV0hXQW9ydExPVjhmdGVZMEVu?=
 =?utf-8?B?Z29temZOZXpFYlR4QUlSaXRYSldjUWN2cS8rR0RQSDZNMi9RR21TWnJ0a3g1?=
 =?utf-8?B?aUVKTzJQdjYxRmNJZVdBSDZpYVdZOEVLNlpqTXplZWhBdkI4WlpGQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 70a7746e-7f32-4945-ed58-08de72f577bb
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 16:06:13.6186
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 9v2a48xPh9dn3rL+EtOq8lhHJ8Eh9cHxXh+nZ1p4Z3Xq0jgCQ+8ku55GBSiCjhPS075BpoXHK38CXH+56zZG7VURyt6ImEUpCRXXQYqr9t4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7706

On 23/02/2026 4:02 pm, Jan Beulich wrote:
> On 23.02.2026 11:04, Edwin Török wrote:
>> clang-21's built-in assembler is enabled by default, but it doesn't
>> support some mnemonics:
>> ```
>> test_x86_emulator.c:2636:36: error: invalid instruction mnemonic 'fsaves'
>>  2636 |                        "fidivs %1\n\t"
>> test_x86_emulator.c:2640:24: error: invalid instruction mnemonic 'frstors'
>>  2640 |         asm volatile ( "frstors %0" :: "m" (res[25]) : "memory" );
>>       |                        ^
>> test_x86_emulator.c:4251:24: error: invalid instruction mnemonic 'vpcmpestriq'
>>  4251 |                        put_insn(vpcmpestri,
>>       |                        ^
>> ```
> Was this reported to them as a bug (or perhaps even two)?

Looking at just one of these, the mnemonic is FRSTOR without an S, and
Clang 21 is happy with that.

What is the trailing S supposed to signify to GAS?

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:06:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:06:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239175.1540622 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYRu-0000eY-HP; Mon, 23 Feb 2026 16:06:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239175.1540622; Mon, 23 Feb 2026 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 1vuYRu-0000eP-En; Mon, 23 Feb 2026 16:06:18 +0000
Received: by outflank-mailman (input) for mailman id 1239175;
 Mon, 23 Feb 2026 16:06: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=9pf7=A3=bounce.vates.tech=bounce-md_30504962.699c7af6.v1-51334c08eff94bfd826fadb2c624080e@srs-se1.protection.inumbo.net>)
 id 1vuYRt-0000R0-EZ
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:06:17 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9450481f-10d1-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 17:06:15 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fKQh63rRxz5QlJcf
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 16:06:14 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 51334c08eff94bfd826fadb2c624080e; Mon, 23 Feb 2026 16:06: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: 9450481f-10d1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771862774; x=1772132774;
	bh=TCyeWMlB5aOnhu7d3tSZ47H5jstmdjLYiH5F1k4yF34=;
	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=iCasQhTotsjzSsisxHcCyl7uhGnjgILkLVNadxZqfzmUctEn5ekgOo0nBvf2+4eVg
	 EZMuVzSpstvyPOiwrSpbt1p8I4D45fIrzqETsuC/X/GIsbilKFCjE2RnHRY41Hngih
	 bl8/cJgyRpKEstN1G8fOVGZhneZxpxiXNXc288/HCe5reL+ry+EynpHiQLhbbwYaYR
	 kjXkNi7410kTtdCXAeX04ufnR8vJ30uWDeVc27QpnG9DdDvfG8KTtllENUGYFW8zIo
	 kMFO9ab7xqygb1rTPPJiRmm0dE9+w0ETA9MO0wS5IWeNAbPgNC0NzHdl3JGh+Rg0W8
	 sTZ1Q6skx7CNw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771862774; x=1772123274; i=teddy.astie@vates.tech;
	bh=TCyeWMlB5aOnhu7d3tSZ47H5jstmdjLYiH5F1k4yF34=;
	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=03hh5NrXYrZM9Gzpas711j33x4Ia+m0lzLV0WinodJj41yKIpUIavzx3MsUM+yTWf
	 cqH8bB09PEHok3yDeQoJ2miLeUN0wSlwIgusFlNIx11MCXBCo5bBH26MYDKzTb5aoK
	 apTCZKJ8biXKJ2w/i3UiPTstb8oee6zKi7H6RNYFUG4JMev3UJdzbBiMmlacRRD9gT
	 QjQQ9POBl6FfJOrZX9uRpml1dU/pLssNr5nrIgIYlZyxKJxC+xq7W8YodSXu+7PRaD
	 l/aUTe5j/kh433HtlcCM7pl0uEMk0yxv7j3UDRnCOjOmi7dk0ZqdNCH7QUqqGBS7B5
	 +01KIIqeMveeA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v7=202/2]=20xenpm:=20Add=20get-dts-temp=20subcommand?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771862773674
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>, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <b51b2a16393be4ab956d16ba409fc6710e20db55.1771860109.git.teddy.astie@vates.tech>
In-Reply-To: <c8677e4588eff14197e47070587f31df1567c030.1771860109.git.teddy.astie@vates.tech>
References: <c8677e4588eff14197e47070587f31df1567c030.1771860109.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.51334c08eff94bfd826fadb2c624080e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260223:md
Date: Mon, 23 Feb 2026 16:06:14 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

get-dts-temp allows querying the per-core CPU temperature and
per-package one on processors that supports Digital Temperature Sensors
(most Intel processors; as usual Dom0 drivers cannot work due to
misalignment between Dom0 vCPU and pCPUs).

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
CC: Jan Beulich <jbeulich@suse.com>

v4: https://lore.kernel.org/xen-devel/cover.1766158766.git.teddy.astie@vate=
s.tech/
v5: Removed trailing whitespace.
v6: Report errors through errno and use strerror() to display them
v7:
 - Rename get-intel-temp with get-dts-temp
 - handle properly errno
 - make process return a error code if no data

 CHANGELOG.md       |   2 +
 tools/misc/xenpm.c | 130 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 131 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18f3d10f20..d7fac4a8d0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,8 @@ The format is based on [Keep a Changelog](https://keepach=
angelog.com/en/1.0.0/)
    - Support for Bus Lock Threshold on AMD Zen5 and later CPUs, used by Xe=
n to
      mitigate (by rate-limiting) the system wide impact of an HVM guest
      misusing atomic instructions.
+   - Introduce get-intel-temp to xenpm to query CPU temperatures on Intel
+     platforms.
 
 ### Removed
  - On x86:
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 682d092479..8d6a91d680 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -32,11 +32,14 @@
 
 #include <xen-tools/common-macros.h>
 
+#include <xen/asm/msr-index.h>
+
 #define MAX_PKG_RESIDENCIES 12
 #define MAX_CORE_RESIDENCIES 8
 
 static xc_interface *xc_handle;
 static unsigned int max_cpu_nr;
+static xc_physinfo_t physinfo;
 
 /* help message */
 void show_help(void)
@@ -93,6 +96,7 @@ void show_help(void)
             "                                           units default to \=
"us\" if unspecified.\n"
             "                                           truncates un-repre=
sentable values.\n"
             "                                           0 lets the hardwar=
e decide.\n"
+            " get-dts-temp          [cpuid]       get CPU temperature thro=
ugh DTS for <cpuid> or all\n"
             " start [seconds]                     start collect Cx/Px stat=
istics,\n"
             "                                     output after CTRL-C or S=
IGINT or several seconds.\n"
             " enable-turbo-mode     [cpuid]       enable Turbo Mode for pr=
ocessors that support it.\n"
@@ -1354,6 +1358,130 @@ void enable_turbo_mode(int argc, char *argv[])
                 errno, strerror(errno));
 }
 
+static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, i=
nt *temp)
+{
+    xc_resource_entry_t entries[] =3D {
+        { .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STA=
TUS },
+        { .idx =3D MSR_TEMPERATURE_TARGET },
+    };
+    struct xc_resource_op ops =3D {
+        .cpu =3D cpu,
+        .entries =3D entries,
+        .nr_entries =3D ARRAY_SIZE(entries),
+    };
+    int tjmax;
+
+    int ret =3D xc_resource_op(xch, 1, &ops);
+
+    switch ( ret )
+    {
+    case 0:
+        /* This CPU isn't online or can't query this MSR */
+        errno =3D ENODATA;
+        return -errno;
+
+    case 1:
+    {
+        /*
+         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's =
100
+         * which is correct aside a few selected Atom CPUs. Check Linux
+         * kernel's coretemp.c for more information.
+         */
+        static bool has_reported_once =3D false;
+
+        if ( !has_reported_once )
+        {
+            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assu=
me "
+                            "tjmax =3D 100, readings may be incorrect.\n")=
;
+            has_reported_once =3D true;
+        }
+
+        tjmax =3D 100;
+        break;
+    }
+
+    case 2:
+        tjmax =3D (entries[1].val >> 16) & 0xff;
+        break;
+
+    default:
+        if ( ret > 0 )
+        {
+            fprintf(stderr, "Got unexpected xc_resource_op return value: %=
d", ret);
+            errno =3D EINVAL;
+        }
+        else
+            errno =3D -ret;
+        return -errno;
+    }
+
+    *temp =3D tjmax - ((entries[0].val >> 16) & 0xff);
+    return 0;
+}
+
+static void get_dts_temp(int argc, char *argv[])
+{
+    int temp =3D -1, cpu =3D -1;
+    unsigned int socket;
+    bool has_data =3D false;
+
+    if ( argc > 0 )
+        parse_cpuid(argv[0], &cpu);
+
+    if ( cpu !=3D -1 )
+    {
+        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
+            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+        else
+        {
+            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
+                    errno, strerror(errno));
+            printf("No data\n");
+            exit(ENODATA);
+        }
+        return;
+    }
+
+    /* Per socket measurement */
+    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
+          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.threads_=
per_core )
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, true, &temp) )
+        {
+            fprintf(stderr,
+                    "[Package%u] Unable to fetch temperature (%d - %s)\n",
+                    cpu, errno, strerror(errno));
+            continue;
+        }
+
+        has_data =3D true;
+        printf("Package%u: %d=C2=B0C\n", socket, temp);
+    }
+
+    if ( has_data )
+        /* Avoid inserting a trailing line if we have nothing */
+        printf("\n");
+
+    for ( cpu =3D 0; cpu < max_cpu_nr; cpu +=3D physinfo.threads_per_core =
)
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, false, &temp) )
+        {
+            fprintf(stderr, "[CPU%d] Unable to fetch temperature (%d - %s)=
\n",
+                    cpu, errno, strerror(errno));
+            continue;
+        }
+
+        has_data =3D true;
+        printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+    }
+
+    if ( !has_data )
+    {
+        printf("No data\n");
+        exit(ENODATA);
+    }
+}
+
 void disable_turbo_mode(int argc, char *argv[])
 {
     int cpuid =3D -1;
@@ -1618,12 +1746,12 @@ struct {
     { "set-max-cstate", set_max_cstate_func},
     { "enable-turbo-mode", enable_turbo_mode },
     { "disable-turbo-mode", disable_turbo_mode },
+    { "get-dts-temp", get_dts_temp },
 };
 
 int main(int argc, char *argv[])
 {
     int i, ret =3D 0;
-    xc_physinfo_t physinfo;
     int nr_matches =3D 0;
     int matches_main_options[ARRAY_SIZE(main_options)];
 
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:06:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:06:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239174.1540612 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYRt-0000RD-BX; Mon, 23 Feb 2026 16:06:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239174.1540612; Mon, 23 Feb 2026 16:06: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 1vuYRt-0000R6-8x; Mon, 23 Feb 2026 16:06:17 +0000
Received: by outflank-mailman (input) for mailman id 1239174;
 Mon, 23 Feb 2026 16:06: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=JkMW=A3=bounce.vates.tech=bounce-md_30504962.699c7af3.v1-cd7d1d01e52741e1998800ff57263eba@srs-se1.protection.inumbo.net>)
 id 1vuYRr-0000R0-UY
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:06:15 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 931b80da-10d1-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 17:06:13 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fKQh36dFpz5QlJd0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 16:06:11 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 cd7d1d01e52741e1998800ff57263eba; Mon, 23 Feb 2026 16:06: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: 931b80da-10d1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771862771; x=1772132771;
	bh=pck4nHMO7GEQjBuUYYujPZgCMlhKQWrP4o5UQZ66kJ8=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=L05lLJUSSPzGQd4rJrhaxELghLo4jDeawVVQnxR/ehHbhszAuy9TJWnsx7/yzgJjZ
	 RFQpjg1rLsV0WojHHrgy/4cYtC6ULjn+puSgzJ8mBqcxTXX73vE/8IGrLa0tTXgm5k
	 fhGyStKev03gTMn8lqBSxBSQsdXCC5HJkp1Rul/6Qm/VJfA6m8hvuqLzkDAzCKrq+w
	 gYbOYDd81UiQD2zl4tgsA9C/pbALWFGfoP3tUqRGbcgwBifrASdHykKF2tTH80ppCW
	 OTATt8mkNw8Lx+fJH6jFxtWF/w0yZnW/neCBjPEmlRyqA2CA9Z79ZGXBwYxKvIXKTv
	 MK0XE+7sRP1yg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771862771; x=1772123271; i=teddy.astie@vates.tech;
	bh=pck4nHMO7GEQjBuUYYujPZgCMlhKQWrP4o5UQZ66kJ8=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=DIgY6lGOtiYodd/DK8DWJCBDay6UtxKly5JQxxhMb8IEHa0SeLmdxls1wrXVopMbo
	 mP1HLx57q3DaVYnvcHzPrsijPO+or+mtDL5J3OFpWskbfNxWuZ773hmc025uzWN9p5
	 zpdejVuUuc3XY0XDKNcP9230Wg17jXOoccDGD0ESIXdiTMkDNx3NSuSdhQ/zhqunaN
	 fDZV4Y/bOTKtjmjMgMw5P+u/axVbwe+4CQf3RfChcxScEmcTIuHlY6x7w520a2rXXM
	 QP8EFWoIS0787LKfhwSStqqAl+TAoh5rTA4LME2lc4qJXLddYQIuVsXkI8Ai47FEpT
	 +wdn/5YS0YYUA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v7=201/2]=20libxc:=20Report=20consistent=20errors=20in=20xc=5Fresource=5Fop?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771862771271
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
Message-Id: <c8677e4588eff14197e47070587f31df1567c030.1771860109.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.cd7d1d01e52741e1998800ff57263eba?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260223:md
Date: Mon, 23 Feb 2026 16:06:11 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

xc_report_op returns -1 in some error conditions.
Make sure it returns -ENOMEM in out of memory errors and -EINVAL
in invalid usages errors.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v7: Introduced

 tools/libs/ctrl/xc_resource.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/libs/ctrl/xc_resource.c b/tools/libs/ctrl/xc_resource.c
index cb6a97202b..1ca71ee048 100644
--- a/tools/libs/ctrl/xc_resource.c
+++ b/tools/libs/ctrl/xc_resource.c
@@ -28,7 +28,7 @@ static int xc_resource_op_one(xc_interface *xch, xc_resource_op_t *op)
                                 XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
 
     if ( xc_hypercall_bounce_pre(xch, entries) )
-        return -1;
+        return -ENOMEM;
 
     platform_op.cmd = XENPF_resource_op;
     platform_op.u.resource_op.nr_entries = op->nr_entries;
@@ -54,19 +54,19 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
     call_list = xc_hypercall_buffer_alloc(xch, call_list,
                                           sizeof(*call_list) * nr_ops);
     if ( !call_list )
-        return -1;
+        return -ENOMEM;
 
     platform_ops = xc_hypercall_buffer_array_create(xch, nr_ops);
     if ( !platform_ops )
     {
-        rc = -1;
+        rc = -ENOMEM;
         goto out;
     }
 
     entries_list = xc_hypercall_buffer_array_create(xch, nr_ops);
     if ( !entries_list )
     {
-        rc = -1;
+        rc = -ENOMEM;
         goto out;
     }
 
@@ -81,7 +81,7 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
                         platform_op, sizeof(xen_platform_op_t));
         if ( !platform_op )
         {
-            rc = -1;
+            rc = -ENOMEM;
             goto out;
         }
 
@@ -90,7 +90,7 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
                    entries, entries_size);
         if ( !entries)
         {
-            rc = -1;
+            rc = -ENOMEM;
             goto out;
         }
         memcpy(entries, op->entries, entries_size);
@@ -137,7 +137,7 @@ int xc_resource_op(xc_interface *xch, uint32_t nr_ops, xc_resource_op_t *ops)
     if ( nr_ops > 1 )
         return xc_resource_op_multi(xch, nr_ops, ops);
 
-    return -1;
+    return -EINVAL;
 }
 
 /*
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:11:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:11:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239202.1540642 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYWW-0003I2-DF; Mon, 23 Feb 2026 16:11:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239202.1540642; Mon, 23 Feb 2026 16: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 1vuYWW-0003Hv-Am; Mon, 23 Feb 2026 16:11:04 +0000
Received: by outflank-mailman (input) for mailman id 1239202;
 Mon, 23 Feb 2026 16:11: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuYWU-0003Hp-Rk
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:11:03 +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 3d46425b-10d2-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 17:10:58 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-483a2338616so28526975e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 08:10:58 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31b3d88sm296766105e9.3.2026.02.23.08.10.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 08:10:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3d46425b-10d2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771863058; x=1772467858; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Sx0xqY2GZz/KcJBf0gcXpjehno7SgpGoG2AEqkcKgBM=;
        b=WOSCn/40IJqJicYgJDzhwzMQmUq1uTciqTwHAPV50lJnYm3kfOly4K+oKzBvFzhyer
         Q0NkriZ8T0uMakwkusLkLfDjxQOANrn6WgKJvyzjIgneHgqYQ7yDM/YOF80YDcYIcvNv
         5ex3pXaupJAl6b3kvaG+dWcH08sfMV0ig6irMlRdkfe238sYPK67fSuksdOZlcnZLarH
         Qkl1NXfFeuQeBEJjcsJgG8V2RZ819tABZeIqM/aJPBQpRYdWTuqHQmpncFHXvwD4gkuf
         jhkvRTl7GAP2cOJs/Hqj/J+4ZCBbdcQqPp67bIu3TkI1T5xBKsQitKK6nDbOkMwkwkz1
         dypQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771863058; x=1772467858;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Sx0xqY2GZz/KcJBf0gcXpjehno7SgpGoG2AEqkcKgBM=;
        b=k7pa7aD79++SjmudWoEZNwERr0lHq6HkR8bhMY2MoS6AG3LS28XbpfyCANw+nCIRS+
         dzp9G0b08sb8Yw21WzFnn/ftUUfGMP1/fczrTVqW2g9dw5Z+VXx+hQTB2gR7u4NqQR9y
         D1SO214xWu08X9QVB1OfdJh/XpoqvXZ3+YiqzYGcA0vQY+O15j0iZzPtH531xMdgCAU+
         CQLqDgoPn2t0vqIPPY/12OZEj9h5EpsN99pfDTn5yNGOOMX8QX58bAAo1kK0+7gTUlPb
         H3NqI9GKoDYzhcDNZF4WwlNLnVqXWRgiN54MikzBEGNMMBsUFCvQ37ebtoNL2DvNqcIB
         oO0A==
X-Forwarded-Encrypted: i=1; AJvYcCURA+8faFrnXVjpLDT2i6lbeN090YjQESR6wXENfQUxUX+gMuQu6jxd6QWGsB/HU5WAkoO9wUZwskU=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzXLBx/cBAGcSXnHL5Fon684/mJeaPAE0WU7gzQLaasNsIYxCHq
	hj/WTOWwCre+JdVCrg8IMscPAVEOyQ2ItezI/quo1ChoUrZxsEZoSiG5ISUvSZI0ww==
X-Gm-Gg: AZuq6aK7IqTDvWAYZZLdFanBOf1671eFACGkfuA/v1nrqQMT47qN+neO5ltL18C3aCU
	hROrIb2sySC0NnoCnFFree1jAU2C0EpqXaG53/VllcKGzr4jggUpZtQx4np//aGJ8+c5TIQIYCS
	Fx5AI8/stSqcT4gDogxTJk2rOmS4IJLju0h9yXQmX++FHlcxNwwawbCSKk765LIc1Ov1VrxNTRv
	w7oRh17690FiE+W6vi4+zMzsqrqVUmyJmn0JELz3sZZjpBud76B2Eotdb2UxnLS93o/7qq3f00+
	jevOzoHlRcNvVbhyUCRKjildOuZFvGgyxbhg+XyFN7mKiymQpFbTqP9CecNoyree1U8ETaWz9WH
	MrprgrjAOR8c4cCjdRnc+0gljngQTkBNHuwsy9hIhOLqNU0V3RHR2HZo9OeRbmL/dl8JE0RVGlY
	vtDXWEpvoO7QiZ11rBuL5LwIsmT03urLg/Hu1hUeNqIg2lkQfS7WnALXBzgtY0G7YuOLlLrVnb5
	9aei+44xbwSomA=
X-Received: by 2002:a05:600c:a11:b0:483:361b:deff with SMTP id 5b1f17b1804b1-483a95c9e16mr161709705e9.14.1771863057758;
        Mon, 23 Feb 2026 08:10:57 -0800 (PST)
Message-ID: <7f6cca68-f681-41ce-8d2c-2f4854510759@suse.com>
Date: Mon, 23 Feb 2026 17:10:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] tools/tests/x86_emulator: disable xmm* tests on clang
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.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.1771840208.git.edwin.torok@citrix.com>
 <9e380de50b64e45e9044a2f4bcf1a5bdb7e74a29.1771840208.git.edwin.torok@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: <9e380de50b64e45e9044a2f4bcf1a5bdb7e74a29.1771840208.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:04, Edwin Török wrote:
> clang-21 doesn't support `-ffixed-xmm0`, so `%xmm0` won't have the
> expected value.
> Disable these tests on clang.

I don't think that's what we want, and not only because of the clutter the
various #ifdef cause. We want to be able to run as many of the tests as
possible, so the first goal should be to find some alternative mechanism to
achieve the same effect. A global register variable comes to mind as a
possible option.

Further, how did you arrive at which tests need suppressing? I don't think
we rely on an "expected value" anywhere. I don't even recall us passing
-ffixed-xmm0 when compiling test_x86_emulate.c. We use that option when
building various of the test blobs, iirc. And the comment ahead of the
first use explains why we use the option there. (Later we also use
-ffixed-ymm<N> and -ffixed-zmm<N>, btw.)

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:14:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:14:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239210.1540653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYZK-0003nr-Rc; Mon, 23 Feb 2026 16:13:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239210.1540653; Mon, 23 Feb 2026 16:13: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 1vuYZK-0003nk-NE; Mon, 23 Feb 2026 16:13:58 +0000
Received: by outflank-mailman (input) for mailman id 1239210;
 Mon, 23 Feb 2026 16:13: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuYZJ-0003ne-Rl
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:13:57 +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 a6dd3f2a-10d2-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 17:13:55 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4833115090dso43261745e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 08:13:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d4c96csm22101500f8f.30.2026.02.23.08.13.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 08:13:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a6dd3f2a-10d2-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771863235; x=1772468035; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jGxTOybbCg22+4Rnf6nxIvif+/gZPfu2k1JRyAn1xpk=;
        b=I7U5fXAUN56GAEQYWv/8xdxPbBbQowxvFVel7B6FcwuiIYfM/W+xGH1QOL5/7fdoJ6
         JoRjHVovUNcyX9HbEMqvpGKEJE52OLwLPFO8YS4CAKR/SbjRyL2eOuhHj5j+u6j8efn5
         RqVXNKD/wkrE5VBZufhzVc0mQS2BZwpTNAONGp3vNkUopn0/sOFy1KAwypurMCFS5BzN
         9OI0XH7jO/HCwzSaOF2kSX8JtuflITO4kyq2Ak48KmO/SnE4LE37n33HUrSmpTw8NN2l
         YH2Csy/j31HRii3zNwjTuDxCk7LWhWYIAtquQbNBClUP0Y3e6HBeB5/A43gcan9Bh46T
         4Uhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771863235; x=1772468035;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jGxTOybbCg22+4Rnf6nxIvif+/gZPfu2k1JRyAn1xpk=;
        b=DjODDE1wuhDjIvXC9N2yjK2Z97SYP3lGieLajES2nV5FWX9NNHOaAMPmwUbJvJtte+
         HVeVe64bNA38+/uRxQwciBhr8BNrAz02SdXT8v05tVDqrCQgZJT7R4R/B7ployvYvvq2
         2C5eZP/H7Em0VfBNemB240w5i3EUpwPhPhhY3C6GsUQogPDCNACzPpVTmQUGvJW+oZSS
         CEtyBKu8CEG4q0DPjBX7n/gsHONZWzrg94uXKoC06Ew891wWVREpiqqJr9MHZBg0Q/C/
         bQ1jZF1Sz1717e3eb51KmHDdaPsI18pu/7iW/Olz8z/n2moQ237613/5fK77/yYdnjlO
         RMIA==
X-Forwarded-Encrypted: i=1; AJvYcCUwuDixUeRBCnPiKD/JTh80w3KTOwikZuiKLS6YWU9PLk9A0ybqwYy2Hb9J8O3kVEQLs+Swwa3xbqM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz5mxAwVfiRWgzpzWNmp6r95DUqq4oOB+U9DUnVexSK0pnhgfYJ
	88yT6SgI8Xo5Ra19ELeWswEmlSOcVd2QUsttzoxbIBFYbeBZOkiaxBFfFr/9hxAUvQ==
X-Gm-Gg: AZuq6aKTvRSfe602G25mJ0M5pxKG+O+jIR+7GNG5S9Q0GJg/JU68M8anzYTyUFASxfk
	hGCK/ZaC3olbFRXTntEOjtfQ8li8Hw62H/AQYsuCXzYsMvPeEmnGhPok1ZF1pG8Z0eJrcXGhvJn
	6L+eHVCbScZ9o/SiYnNB+d3cBEIzcE9y4oSzDjWCHwhJf58v4qhK4fvWKRLGfsxbVCVxwnJdLol
	1uPRHouXl73oE7LC0ppgAz3hEoIlZRYN4T5YtJ05LogBqE7al0FqGrvx2ZSvBL2HST82WZIQ1WY
	V+sztowItGj6Rt9FFP8iJUbOqUmQITxIvp6kcxu/J8nXpgSm/surwSnOennsxV2xY77nNblXAc5
	36iFcz2MHiMNqwediQUESa9SYeZ7nZ+nhd/n4tUVFDXshaGpWOv8MveBU83QRtQrahNoDEP9Rt9
	NfavcmKl2oXxMyReEAIB/ITH1uZVQUSwI/MCjfTdJi1FchYb3iPTEV7ffpVMuu49IDSW4q02iyr
	wYaYIqg5sabRs8=
X-Received: by 2002:a05:600c:6206:b0:465:a51d:d4 with SMTP id 5b1f17b1804b1-483a95b6debmr145465435e9.6.1771863234942;
        Mon, 23 Feb 2026 08:13:54 -0800 (PST)
Message-ID: <0d7afac2-d358-4b0e-b828-31ebba6357d2@suse.com>
Date: Mon, 23 Feb 2026 17:13:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/2] libxc: Report consistent errors in xc_resource_op
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <c8677e4588eff14197e47070587f31df1567c030.1771860109.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: <c8677e4588eff14197e47070587f31df1567c030.1771860109.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.02.2026 17:06, Teddy Astie wrote:
> xc_report_op returns -1 in some error conditions.
> Make sure it returns -ENOMEM in out of memory errors and -EINVAL
> in invalid usages errors.

Isn't this a move in the wrong direction? -1 as a return value is quite okay.
errno wants setting to indicate the cause of the error (if called functions
don't already set it properly).

Also nit: s/xc_report_op/xc_resource_op/ .

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:21:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:21:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239226.1540665 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYgL-0005iz-FW; Mon, 23 Feb 2026 16:21:13 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239226.1540665; Mon, 23 Feb 2026 16:21: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 1vuYgL-0005is-Cr; Mon, 23 Feb 2026 16:21:13 +0000
Received: by outflank-mailman (input) for mailman id 1239226;
 Mon, 23 Feb 2026 16:21: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuYgK-0005im-CZ
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:21:12 +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 a9d99402-10d3-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 17:21:10 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-43622089851so4543499f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 08:21:10 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d3fdd0sm20816150f8f.19.2026.02.23.08.21.05
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 08:21:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a9d99402-10d3-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771863669; x=1772468469; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=PRG9q6g0BIkw9OsMY5t3dLCNBWvPTfNUJIccKq//V+k=;
        b=VjXg8NsvQ5d18s0k7B4PCUipo6vMmixd5y9xIrvlNqD6nhjYo2agJ6DMpWZ6FwQnfu
         yoE3gUVkGrnp5CgHcZAw5lNDUeBL4/ots+AeQN5nXpZPnJr7xl9ur+rN857l55ql26Tb
         FPbDoRWVguQLmYORZH6KWvr8o2X+AUyNJ1z6o6tjvNtg/+fwBV+1n+g0xmFaBSB/O9H2
         3+PMHaZXni3vNseuHPaNCJZ8W8J25aUVtEXGtM7V/mNlV8HjxSdj7UnpvSdnxdqbiNfM
         qrBzNfXuPiolbShiXxPrOSLseS9g3irtW9GaaHGIsBvSFOc95JfCu507Zhnsgpxf8Ji4
         HO6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771863669; x=1772468469;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=PRG9q6g0BIkw9OsMY5t3dLCNBWvPTfNUJIccKq//V+k=;
        b=aPvEU+ABCW53Gc66rhuledF65Szv7/oYsbwBHD/gn7hbniaq4dmH/I2sNy4e2r+nJz
         jLcPfzgn7bjUR49OGleV9XtUoBweYndMCyLC8T/g1QeX2xI7yFotKwWvo6VVp7h+Vkm4
         mpbnszCuDJVgsFFfG9kvQ2j+l0sSxPKbLQ6+kg8KTfcuQdUIdMoDmpw3fHh/lFeRY7ZA
         ORmfH/rX0JluP6z+Wzg5S65hWuKRqlQmAhSiyepEQrQabf0Qpa7wPp3wpseQ6srhlraH
         FtrrPjhnlg41jsFvmVhQwH/O1W46+haxpMfA/YsTi7mmCSUoXwPKSJdq6mzY8Gnri+Oe
         Ng6Q==
X-Forwarded-Encrypted: i=1; AJvYcCVQyT1thvKcRdfUQ8J2xje7vr5h5KVasnK7QvUJxb5MyHLEjACf1Xa4Eb7hxAf/4KUFJnMuJzDOt5g=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzx3D37qwl/veZ0QvEEn8zRhouDHGYaqyh6urZjroWFXX2EljjE
	cyt/FxWGE10Lv4ad+HOkXSaQxOQys6MfuP8z9Zjs6T+3/SxYvnT6EIsJMMMTmphhrg==
X-Gm-Gg: ATEYQzyELFWURCBnjC2NunV4c86jNfrK8Uu51DjTKW9hKDxKl+dL7sJAt64n8rxSKtO
	MGZ+FntIQrjyUOidI3y7cEc/wqTwrrCPq7TkxfRRTq4Wcm9A0sXlff//470Y7ZmUIgu+X2Y6kcT
	A7P2lXtxil5AXV9xLx5CrsiNsclM4RTLOeR0cv/qcDReFOKScQw7exnjQwzF7ywOVIrdxb74Z0Q
	zvQhzAjhWvQMwWOihoRjHz+NjSv/cNEvp6/B/zF41Rk6tyNLNvJfJSZfJqCKK3Ilf+n9NQppT6Z
	eseAx5LIMLMLFNQBaWt/PNcMMEoAXqSncPV59z/HvvnW9nWlkpmVUcYZowLKzKWb16mVFyv174i
	SxCg3i+1nRLJ9CKT6dWdFpL2dEwt3E42OX9gQEXSWMkAy51WtEwXS+mD5TUfJiLIhV2RXyijJKI
	pFDkGwO7tesIX5yhXyuLdNxfiGBYkAanmvb+nb4irZYG9NLl8YPaR+E13X/kmyXMueK5pteMsrC
	Nso4UJ0MkI1qdL17oNjj8wZHQ==
X-Received: by 2002:a05:6000:40ca:b0:435:dbc4:3af0 with SMTP id ffacd0b85a97d-4396f15ae2fmr17853378f8f.14.1771863666146;
        Mon, 23 Feb 2026 08:21:06 -0800 (PST)
Message-ID: <76041b1f-aeb5-4d9e-af6a-a2616763e5c3@suse.com>
Date: Mon, 23 Feb 2026 17:21:06 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] tools/tests/x86_emulator: fix build on clang-21
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>, xen-devel@lists.xenproject.org,
 =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <7147fc3ef5d5bdf5a811e896925d9aa641ed0753.1771840208.git.edwin.torok@citrix.com>
 <6d564a09-b1bb-414f-ba8a-61bf9d9c7e5e@suse.com>
 <c69950cf-7544-40e4-a58c-e2b826f6a5c9@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: <c69950cf-7544-40e4-a58c-e2b826f6a5c9@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 17:06, Andrew Cooper wrote:
> On 23/02/2026 4:02 pm, Jan Beulich wrote:
>> On 23.02.2026 11:04, Edwin Török wrote:
>>> clang-21's built-in assembler is enabled by default, but it doesn't
>>> support some mnemonics:
>>> ```
>>> test_x86_emulator.c:2636:36: error: invalid instruction mnemonic 'fsaves'
>>>  2636 |                        "fidivs %1\n\t"
>>> test_x86_emulator.c:2640:24: error: invalid instruction mnemonic 'frstors'
>>>  2640 |         asm volatile ( "frstors %0" :: "m" (res[25]) : "memory" );
>>>       |                        ^
>>> test_x86_emulator.c:4251:24: error: invalid instruction mnemonic 'vpcmpestriq'
>>>  4251 |                        put_insn(vpcmpestri,
>>>       |                        ^
>>> ```
>> Was this reported to them as a bug (or perhaps even two)?
> 
> Looking at just one of these, the mnemonic is FRSTOR without an S, and
> Clang 21 is happy with that.
> 
> What is the trailing S supposed to signify to GAS?

"short", i.e. the want for a 16-bit operand size prefix. Just like in
vpcmpestriq the request is for a REX64 prefix. Suffixes are the way to
go in AT&T syntax when operands alone can't disambiguate operand size.
The less nice alternative are data16 prefixes; not sure if Clang would
support those.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:28:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:28:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239238.1540676 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYnk-0006bL-6E; Mon, 23 Feb 2026 16:28:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239238.1540676; Mon, 23 Feb 2026 16:28: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 1vuYnk-0006bE-3K; Mon, 23 Feb 2026 16:28:52 +0000
Received: by outflank-mailman (input) for mailman id 1239238;
 Mon, 23 Feb 2026 16:28: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuYni-0006at-9q
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:28:50 +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 bb8bafad-10d4-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 17:28:49 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so50325175e9.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 08:28:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a4e8d392sm245257785e9.2.2026.02.23.08.28.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 08:28:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bb8bafad-10d4-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771864129; x=1772468929; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IFdaVeftgkFAomm26AjL10ccMTmEbHpLfmot698xY0o=;
        b=I5vHGuMXoqwZWnBXSTEP/RgX8wtoX78x+xsDYH85cNlF7rsgQzdLT24ka3ibbsrjz9
         2wp/C00R58WRqJLgdZkp4ReMFP7xGI+X5IEZSYsArGcGSnwkfmPArMwPNBqI0VJwfMai
         YxaN5sPZt37uKvjQKvYx6vR+zc11vVtzsubdbnSKyPS1VjHGJHX6NzOiOtK3Rr+gFbyV
         kSRhSUfadsnD01YSAk43FDx016L6a/jSA+xFQY1NKsNq41E0EffOMvP75ilkGrQ+vaB4
         pdzJ+gKIWKuIeJU/Ubm0PQ0m+vL5DeWo0x+syrbqD3PoBsaYL/sq40arWESkKZf+eg5O
         lY5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771864129; x=1772468929;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IFdaVeftgkFAomm26AjL10ccMTmEbHpLfmot698xY0o=;
        b=vz5BtK/rVvMRZsnyvTaRVxyYCw+IcFvWw1PHBrFl3cz3qtDuEJYfIE+IHQ7GGURQ9q
         i7O4OsLWyK93Niuwnw3a41PmpueyGy4hmSJEpPwV23548MV35gUuX5b11r5v5WaC3o44
         vn4dVCWSIwz8FbOwqVSMTelaSmuWArFqE3nZ8rKZ4z/+Qhonk40UjqJ1ueAOBbyxlowE
         LcAmVQ5J7XoU0rRjNSFXtL2PIBQ9vSXDr3Yro8X+P+8sF6yhaGJWeKkEsd3xda+XIjal
         VXa9dZX3wRHu6G+FXxDj6whbty6sOjjOMoCZr0f6Xmx31QBcOxDnJBF0UCtfN/JxqwXV
         sNhg==
X-Forwarded-Encrypted: i=1; AJvYcCUMzViu4SVRN/vA/RQ/8srzHOLNSFMshso5I/lU4H/szYusvzGOzUJ/mgqnFc1FI8++i8PbyAdv9is=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzjxW1u/pbydrsoW8OHAL/iT/d8V5SkLAWE/3SFXdNBESzHm5mQ
	SRMD7QF651bPHlH3FAtVW4sCtN/Ft4s9kfnD8nJpdaVr/HdADiVRB9FPXUxjiflLtQ==
X-Gm-Gg: AZuq6aKF3kFvGt6SSDKyf/pEEbXf7iGC+QsPrsWt+1eMv4QgQUhNIM7+TZVZ4Oyl665
	XC1rb7jKL3tpX42t0aXLffwrNEpQTNP64w8H/a+IjpvwPGk02eiBRLTwudTC3Zr4rDOpWwCgXVj
	YS4GmEs0dDBhMf0+teC3/UOTMoMIAp2mIGGMXJT1LX5ddNEusMlFha+z0OeA1EUtISCNTOSTi7F
	4sSTg6uqA5R276qKr3tSKJrUsn32KDeIwxNDX+9TiKf1mynfEFSxFaXVhIjUdvkYS+GUHJIC1kg
	ZVZH/48fqKdnny3VukXoIfS1N+KJnUue23bjxXlDnNnsAXLtLrkdmzQn5emNUDE1BihTPqfInwA
	JHSbRhhf3cqINNDOKgsQXS5EZvIL7RQ+4WTk7S9LeJilVJtTCVE+VAXNNpTWSV8N9oqlsJ/GbTh
	zS+sU3a85eH5V2NNVrRb4cPh8E/UbPWmR9WF5JIGBB25Z7juIOlgZRwWEk1Y2/OSSsD/ODdoNmw
	GPySYapFXRCT6M=
X-Received: by 2002:a05:600c:a418:b0:483:b3d7:2e80 with SMTP id 5b1f17b1804b1-483b3d72f30mr39549805e9.33.1771864128556;
        Mon, 23 Feb 2026 08:28:48 -0800 (PST)
Message-ID: <ac6bc108-318d-4bdf-bc46-c907bc2550b5@suse.com>
Date: Mon, 23 Feb 2026 17:28:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 2/2] xenpm: Add get-dts-temp subcommand
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
 Community Manager <community.manager@xenproject.org>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <c8677e4588eff14197e47070587f31df1567c030.1771860109.git.teddy.astie@vates.tech>
 <b51b2a16393be4ab956d16ba409fc6710e20db55.1771860109.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: <b51b2a16393be4ab956d16ba409fc6710e20db55.1771860109.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.02.2026 17:06, Teddy Astie wrote:
> get-dts-temp allows querying the per-core CPU temperature and
> per-package one on processors that supports Digital Temperature Sensors
> (most Intel processors; as usual Dom0 drivers cannot work due to
> misalignment between Dom0 vCPU and pCPUs).
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> CC: Jan Beulich <jbeulich@suse.com>
> 
> v4: https://lore.kernel.org/xen-devel/cover.1766158766.git.teddy.astie@vates.tech/
> v5: Removed trailing whitespace.
> v6: Report errors through errno and use strerror() to display them
> v7:
>  - Rename get-intel-temp with get-dts-temp

I'm sorry, but would you clarify in how far "DTS" is less Intel-ish than
"Intel"? Something generic, re-usable (for other vendors) may be "core".

> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -13,6 +13,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>     - Support for Bus Lock Threshold on AMD Zen5 and later CPUs, used by Xen to
>       mitigate (by rate-limiting) the system wide impact of an HVM guest
>       misusing atomic instructions.
> +   - Introduce get-intel-temp to xenpm to query CPU temperatures on Intel
> +     platforms.

Nit: This still says "intel". Also the sentence looks incomplete; perhaps
missing something like "command line option" or "sub-command".

> @@ -1354,6 +1358,130 @@ void enable_turbo_mode(int argc, char *argv[])
>                  errno, strerror(errno));
>  }
>  
> +static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, int *temp)
> +{
> +    xc_resource_entry_t entries[] = {
> +        { .idx = package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STATUS },
> +        { .idx = MSR_TEMPERATURE_TARGET },
> +    };
> +    struct xc_resource_op ops = {
> +        .cpu = cpu,
> +        .entries = entries,
> +        .nr_entries = ARRAY_SIZE(entries),
> +    };
> +    int tjmax;
> +
> +    int ret = xc_resource_op(xch, 1, &ops);
> +
> +    switch ( ret )
> +    {
> +    case 0:
> +        /* This CPU isn't online or can't query this MSR */
> +        errno = ENODATA;
> +        return -errno;

I fear I still don't follow any of this errno handling. Why would a function
return -errno after setting it? Yet, here you want to "synthesize" an error,
but that wants doing to match library functions' behavior.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:36:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:36:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239249.1540687 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYvL-0008Et-2D; Mon, 23 Feb 2026 16:36:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239249.1540687; Mon, 23 Feb 2026 16:36: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 1vuYvK-0008Em-TF; Mon, 23 Feb 2026 16:36:42 +0000
Received: by outflank-mailman (input) for mailman id 1239249;
 Mon, 23 Feb 2026 16:36: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=NNtL=A3=srcf.net=amc96@srs-se1.protection.inumbo.net>)
 id 1vuYvJ-0008Ef-F6
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:36:41 +0000
Received: from smtp-2.srv.uis.cam.ac.uk (smtp-2.srv.uis.cam.ac.uk
 [128.232.132.148]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d2ec09f6-10d5-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 17:36:38 +0100 (CET)
Received: from hades.srcf.societies.cam.ac.uk ([131.111.179.67]:10335)
 by smtp-2.srv.uis.cam.ac.uk with esmtps  (TLS1.3) tls TLS_AES_256_GCM_SHA384
 (Exim 4.99.1) (envelope-from <amc96@srcf.net>)
 id 1vuYvF-00000005JUz-5EWC; Mon, 23 Feb 2026 16:36:37 +0000
Received: from [192.168.1.37] (host-92-22-18-152.as13285.net [92.22.18.152])
 (Authenticated sender: amc96)
 by hades.srcf.societies.cam.ac.uk (Postfix) with ESMTPSA id 42A541FB18;
 Mon, 23 Feb 2026 16:36:37 +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: d2ec09f6-10d5-11f1-9ccf-f158ae23cfc8
X-Cam-AntiVirus: no malware found
X-Cam-ScannerInfo: https://help.uis.cam.ac.uk/email-scanner-virus
Message-ID: <7cf0df43-6271-49f3-8bc1-ceb54f4b8463@srcf.net>
Date: Mon, 23 Feb 2026 16:36:37 +0000
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] tools/tests/x86_emulator: fix build on clang-21
To: Jan Beulich <jbeulich@suse.com>, 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>, xen-devel@lists.xenproject.org,
 =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <7147fc3ef5d5bdf5a811e896925d9aa641ed0753.1771840208.git.edwin.torok@citrix.com>
 <6d564a09-b1bb-414f-ba8a-61bf9d9c7e5e@suse.com>
 <c69950cf-7544-40e4-a58c-e2b826f6a5c9@citrix.com>
 <76041b1f-aeb5-4d9e-af6a-a2616763e5c3@suse.com>
Content-Language: en-GB
From: Andrew Cooper <amc96@srcf.net>
Autocrypt: addr=amc96@srcf.net; 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+cWwARAQABzR5BbmRyZXcgQ29v
 cGVyIDxhbWM5NkBzcmNmLm5ldD7CwY4EEwEIADgWIQTPNUlbfqb3Dqd9IXZlw/kGpdefoAUC
 YVGxuQIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBlw/kGpdefoO0aD/9VN28mNPs9
 3Au2pQyHEYHcVLxTRlHoTHY/ZIws3ue7AgWN73CXhCQnFmqzHOSldY4abD4KyTacAUXqeAOp
 XNUGrCj7yaI7H4Bj27OO6pLEpuPXHJ+12E/mHVRH5lwYzFBRghW/H/HxW99pn8qk3yb9nPR5
 s8tZHIeP4tSUPt2Uu/HR2kyMA1MeVyVRsnH6WDOgjyj76Kx296LRmsbzPvJT9w8IvM2avh7i
 fZu/LNad21Om5Nx3raB3CT/0lj7tODt1yEfTqUdN+DOalwbbKFzXUyhZy1VzAN/lad6Vy1Il
 mArNoZkmDQfi4mkG3qAkwFipjny+fBxNA8W8sHUjMMwNj4cH4Qavgqdyw7nuwXaXVEvunst2
 SehwkPQeNohve18b+HBPk5isNhr8rM71zBQH/HECgyusDLTk3Xt0fmo4sOvyXPeUnqz1YdSq
 IoVOcCJZxFlnkGHTpOBegmXJWAdteYxzVU5fa3xhEPmtrjAnAqpfT3kPPM9nyi+ZKBl+1Oe4
 WxvH8OYo3lIh+8mhiYMhumnDn9YChFKzdjAIUMOg3pBMYZNzTVaOGaLfEg97l5ojUQH+Bivk
 2EpgpYtoIG/zdDfrwG2ezYcy7rxjE1a1ph3tWYX2ojaoFE71ic4HHWUHDq3KN/nYxrTqYCMY
 ddkzh8N2KKP2ktfpHp4tPxUNps7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz
 7bkPtXaGb9H4Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82t
 IlP/EbmRbDVn7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswud
 a1JH3/qvYu0pvjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrs
 m/oCBiVW/OgUg/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL3
 6UtK/uFyEuPywwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6
 O/n8poQHbaTd6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefA
 IFfHBg7fTY/ikBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2b
 XsLQYRj2xqd1bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV0
 4unbsKVXWZAkuAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXe
 dMcAEQEAAcLBXwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMx
 YWd3FXHThrVQHgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITr
 gKWXDDUWGYxdpnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2
 IXYmuW+e5KCAvTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLU
 O83sh6OZhJkkb9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR
 5HHF0NLIJhgg4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdS
 XuvY3AHJd4CP4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5d
 cQPzUiuHLK9invjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFu
 syhbZrI0U9tJB8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9S
 l9IAKFu29RSod5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK
 14JdDDHUX2Rs6+ahAA==
In-Reply-To: <76041b1f-aeb5-4d9e-af6a-a2616763e5c3@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23/02/2026 4:21 pm, Jan Beulich wrote:
> On 23.02.2026 17:06, Andrew Cooper wrote:
>> On 23/02/2026 4:02 pm, Jan Beulich wrote:
>>> On 23.02.2026 11:04, Edwin Török wrote:
>>>> clang-21's built-in assembler is enabled by default, but it doesn't
>>>> support some mnemonics:
>>>> ```
>>>> test_x86_emulator.c:2636:36: error: invalid instruction mnemonic 'fsaves'
>>>>  2636 |                        "fidivs %1\n\t"
>>>> test_x86_emulator.c:2640:24: error: invalid instruction mnemonic 'frstors'
>>>>  2640 |         asm volatile ( "frstors %0" :: "m" (res[25]) : "memory" );
>>>>       |                        ^
>>>> test_x86_emulator.c:4251:24: error: invalid instruction mnemonic 'vpcmpestriq'
>>>>  4251 |                        put_insn(vpcmpestri,
>>>>       |                        ^
>>>> ```
>>> Was this reported to them as a bug (or perhaps even two)?
>> Looking at just one of these, the mnemonic is FRSTOR without an S, and
>> Clang 21 is happy with that.
>>
>> What is the trailing S supposed to signify to GAS?
> "short", i.e. the want for a 16-bit operand size prefix.

But that is normally spelled 'w', not 's' in AT&T syntax.

Not that it matters; Clang doesn't like 'w' either.

>  Just like in
> vpcmpestriq the request is for a REX64 prefix. Suffixes are the way to
> go in AT&T syntax when operands alone can't disambiguate operand size.
> The less nice alternative are data16 prefixes; not sure if Clang would
> support those.

data16 seems to be tolerated.

https://godbolt.org/z/MWGjnfWs7

Interestingly Clang automatically inserts a WAIT, although that's a side
effect of the FSAVE it turns into FNSAVE.  

Compiling to a full binary removes the WAIT and reinstates FSAVE, which
I suspect means it's switching back to no-IAS/binutils behind the scenes.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:37:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:37:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239254.1540695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYvj-0000C9-7u; Mon, 23 Feb 2026 16:37:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239254.1540695; Mon, 23 Feb 2026 16: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 1vuYvj-0000C2-5B; Mon, 23 Feb 2026 16:37:07 +0000
Received: by outflank-mailman (input) for mailman id 1239254;
 Mon, 23 Feb 2026 16:37: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuYvi-0000Bs-GH
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:37:06 +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 e3242b20-10d5-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 17:37:05 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-48372efa020so36131435e9.2
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 08:37:05 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31efe02sm298003075e9.10.2026.02.23.08.37.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 08:37:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e3242b20-10d5-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771864624; x=1772469424; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ESdbZ0LqhC1aaiFglWHHr5YoY3JF62PCZRV2GnvsJcA=;
        b=Cl/N2tcNBjrBVh4H8oBJ9W4IwQDcYe2srj4TYfHlnIUBAvJOgRi8ycCCFOczpPZdOu
         7oe/QOfVgNZA+DNHr/D4E1Rfxkny5UDVjmC8sGTRv9GtmLSKT7JS9niY4FUMH24dyDt5
         RdWHhaZSkPT4fJbYFUkW6L0aQIz82qIMumfEVM+zDDpi3xEidy992DWPH7PG7ohapCh6
         BuTttZ+XpxdM8/5W/iTNIApPIGwyh6Xl5EjW5dJfZHUR8E7ukv4/W4QerQunAjqbQ11+
         DrLx3Szd/Uops3/qQr/4f1KdcLx3RVnMweRyOgmXiXfX6qg8U359cbofgxaNnPeMZFoC
         IdlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771864624; x=1772469424;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ESdbZ0LqhC1aaiFglWHHr5YoY3JF62PCZRV2GnvsJcA=;
        b=TKP5qko4QogTftQ00gLa+3Mby/p1qZm0pPCeicCDPHLPPhW+0jiZ8tWuIIUNgYxVT6
         VHV2oEDfC+DapVp6cXc0vULgk+ssWDRG9CacbOAc65BEiuj1QoK6mAKCwrkSVprRec8t
         zm06uTq4w3s8Wr6XQpTOZY1ROzm+c5MjEIWzI1KRDuc5cLs17pUlzn+jRwEv9X4s+yGW
         7vi/FUrAq4vhVlfHWtnu1lipsYggD31pDUuyl4wzxNo7mEOCZxB2/5oteWpCq4ouvJPB
         N0TBLVMoVvB8CDr/lZmcnnZe/yMbZoFfdbWX9CgF6QCOzInYQkkprmnXU2BUCt9qQejQ
         qvxw==
X-Forwarded-Encrypted: i=1; AJvYcCUZYfy1qG7uND+zYBm8xsTHTY4P9jT39oWd7C8zeQqm7ci/0o37eOAEKjmWcNpzivc2B/5vAXGTK3w=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyodXo6ZqFzqAYJalOYE5J8JNk4tsHrWri5kZg55Bh2xl3yIPBq
	IomtyNp2F19w9ZeB7qyYR7bFAeRRo+TdW8nVOAb1oBnUk/geUf6c/j5w/nd211YssA==
X-Gm-Gg: AZuq6aKWRAn5GEEaqZYqQDdWF0G9CxTxvOLVVXUJra9EpHQ/2fE5Y+XzkghEhKpm6UX
	WYX7iKOvPDFubGtgcnRc8UYLEaKD5jqIjMan5bsz5R5pFKExRP3VNXn2JOcTxzoAvQTBq+2AONJ
	QYBOSrKGvuQXCPlRBXallJ/ULyjr7lqy4fQbI1bO5ut31YNC96wZMgjvpoQATGfufDg+o3gj08P
	StJG+HCUVSdaFZ2dkdNNW4eZ+QzYHT+LFJrXmlJxcchNtdDW/NFC1atDN+Z1U6FRzc5sLUD4unp
	yzXwZIVYmKZwbk5cdCoIA07UcD7lDkaIP93oHfMv7Akde5G8LjLYuwUVflVL7KU7VZTPrY5XA5Y
	dioDV3CQppilgZ2kdNg0Xd3PRzNmUKx3y799V5fjsvP6+gHWCJghM1AHRelfO2N/8EFlGpo87Wt
	QZTR5Q9FSjr6V4VV6m0tg19Ek9TefBflpTiMqDB+RQFAgJnaCXknVq4b54NBetRUE+Ma68qjNJm
	CCyNpNcCtRE2A5nyY8Q6ndUFA==
X-Received: by 2002:a05:600c:c3cd:20b0:483:7020:864 with SMTP id 5b1f17b1804b1-483adc6b3d5mr84658575e9.25.1771864624588;
        Mon, 23 Feb 2026 08:37:04 -0800 (PST)
Message-ID: <20e3edf8-9aba-40e9-af57-e5eddf001a7b@suse.com>
Date: Mon, 23 Feb 2026 17:37:05 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/7] tools/tests/*/Makefile: factor out common PHONY rules
 into Rules.mk
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <6fa0d95dad3d223cf8aaa923ae59fd0b3a97d4a0.1771840831.git.edwin.torok@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: <6fa0d95dad3d223cf8aaa923ae59fd0b3a97d4a0.1771840831.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:14, Edwin Török wrote:
> Introduce a new tools/tests/Rules.mk that must be included *last* in a
> Makefile, after TARGETS is defined.

Requiring inclusion after TARGETS is defined is certainly okay. Requiring it to
be included absolutely last is imo going too far. There surely are going to be
cases where something wants overriding or adding to.

> --- /dev/null
> +++ b/tools/tests/Rules.mk
> @@ -0,0 +1,48 @@
> +# Usage: include this last in your Makefile.
> +#
> +# For example:
> +#
> +# XEN_ROOT = $(CURDIR)/../../..
> +# include $(XEN_ROOT)/tools/Rules.mk
> +#
> +# TARGETS := ...
> +# ...
> +# include $(XEN_ROOT)/tools/tests/Rules.mk
> +
> +ifndef XEN_ROOT
> +$(error XEN_ROOT is not defined)
> +endif
> +
> +.PHONY: all
> +all: $(TARGETS)
> +.DEFAULT_GOAL: all

Make 3.80, which ./README still says we support, doesn't look to know this.

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 16:40:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 16:40:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239267.1540706 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYzB-00023r-N6; Mon, 23 Feb 2026 16:40:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239267.1540706; Mon, 23 Feb 2026 16:40:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuYzB-00023k-J0; Mon, 23 Feb 2026 16:40:41 +0000
Received: by outflank-mailman (input) for mailman id 1239267;
 Mon, 23 Feb 2026 16:40: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=dhnJ=A3=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuYzA-00023c-Bx
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 16:40: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 61e5434c-10d6-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 17:40:37 +0100 (CET)
Received: by mail-wr1-x433.google.com with SMTP id
 ffacd0b85a97d-43590777e22so2779700f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 08:40:37 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c00768sm19945437f8f.10.2026.02.23.08.40.36
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 08:40:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61e5434c-10d6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771864837; x=1772469637; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Sc9jEP1X7SCH7rR+O3UuEd32paWL5Oixf1DpZO/vhR0=;
        b=AVY4XEhCme1Fgvtu5+Wfyb7LwTaKCzkn4CaCj0NrxSebH4dYDaXE5z/99cMsfTzjKk
         2ar9kK+KfJ1IZ2GzajUNof2v58iAzcyf61ed2x8qylCkiuvxcBPA/oAeHTEaZqciOnh7
         1AZqHHYTT9TIArmiheh2xUz3sUxiOXWT7YbXs5B8HdyXJ1SKi8/oMTljvhjf18G/ApE3
         gM2BC/kvymO0txDErxW4FrvG2KL/slllMfI48uMqwzwetLy5elkUlfGC/5Rqf9ZkXUcR
         L/dsenkJBo+e346pbnjwhaBfDh93PteTutieIyps2Mo7GnWdy102g6j5/VCqgscCtINn
         fIaA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771864837; x=1772469637;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Sc9jEP1X7SCH7rR+O3UuEd32paWL5Oixf1DpZO/vhR0=;
        b=DobB2Foqs70AP2hTLGYNWVZ8jIQ3GqoYOBJxaU5EHufrEHnzcxPDHCU7IuNOALH2I9
         QjPchzjYCwR8v5H8mjYzO/uhUiclbzUMTrRptGY5qbSA+f97zbHsnayMUfM/6VbADTdx
         l4om9lU2lWxtC1IlNpEHx4eGxmRPryAn+JbjSZtZq91LgxKhzRICqeKPZZ4wNBJf5dsH
         PMAA3a2jaY38xJ/6Xp4NYNsrE+XD3phytWce8HxYZcy5VrQe18/00ZAsV4CY5YDQKuvg
         tmKuvUT7t07sR/lbae3rvCcivhSTUyj1uby65Golr8pKOoZKnoDMGsQ2qnMKauFuI4jG
         gmfA==
X-Forwarded-Encrypted: i=1; AJvYcCUgk5rT904tHEcyAC5SJo35aiXBhwNVcOWkgWr1BQnQvJL/dDQYtWrn04dIoRzak3W6SVG+a1KYzPY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yz2XJtdvVRfWWrL4jTwVg5mD2Rgf0VOarWpGQqT9kp4HjVEmQ2l
	/NuPCn9vBfgOyhGnPcCraxwkKsRRX0MDRqnN0xozQ9o0f81pST2cmoXawIqN79+Yjw==
X-Gm-Gg: ATEYQzw/p6/SMe3dWfPH49ReyxZ8FJy72UQ16GgH1V+r+OSBre7xKfQNk7vntg5Nz3B
	VR881TPnjCHbI3A8N32xib8fSN8GaA5vwHtsJkBFxLxlD6LDzf6evauK/xmHLAU9gcpErVQy5vg
	1qJkWJMAmlSZ6A4nMOiziZxDKj4l8PtTJdGa5n1wR75tlywxI9ZP62vNeeqc08yaXx/7qQw7oJC
	y6FdZCqkSUSiu4ZsPmnbnjurK0a/dMwDQHx11SJTNwbTPfVXIBkqZfmpm3RyUK05L1eqMMkMT22
	3XTo1gOKcAKQTeR5YYUVuvyeE0uGMlFp+ipdkLV2SIbQiFv0g0QUhEwhyanoqwuCPSxy9ST6fKV
	v9GoZopEP0XRiMP/US7AMeJKw42zKshQHL24CWYT08UvDYDVyhGmGp9bcuiQnATfSv4Q8Q9+hS6
	rtyazPtzwuDI36rt18brojLp9fVGvEdKYy+ObsUJGnm3nnMwVtZhK9Z/dMNmrhrp9+0VUy5V8TN
	XZm0CCFmzZcqtU=
X-Received: by 2002:a5d:588b:0:b0:435:6c8d:d017 with SMTP id ffacd0b85a97d-4396f17b315mr17041567f8f.32.1771864837187;
        Mon, 23 Feb 2026 08:40:37 -0800 (PST)
Message-ID: <c9b20e41-cab5-4fb2-be32-cea6668a56ae@suse.com>
Date: Mon, 23 Feb 2026 17:40:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/4] tools/tests/x86_emulator: fix build on clang-21
To: Andrew Cooper <amc96@srcf.net>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org,
 =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <7147fc3ef5d5bdf5a811e896925d9aa641ed0753.1771840208.git.edwin.torok@citrix.com>
 <6d564a09-b1bb-414f-ba8a-61bf9d9c7e5e@suse.com>
 <c69950cf-7544-40e4-a58c-e2b826f6a5c9@citrix.com>
 <76041b1f-aeb5-4d9e-af6a-a2616763e5c3@suse.com>
 <7cf0df43-6271-49f3-8bc1-ceb54f4b8463@srcf.net>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <7cf0df43-6271-49f3-8bc1-ceb54f4b8463@srcf.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 17:36, Andrew Cooper wrote:
> On 23/02/2026 4:21 pm, Jan Beulich wrote:
>> On 23.02.2026 17:06, Andrew Cooper wrote:
>>> On 23/02/2026 4:02 pm, Jan Beulich wrote:
>>>> On 23.02.2026 11:04, Edwin Török wrote:
>>>>> clang-21's built-in assembler is enabled by default, but it doesn't
>>>>> support some mnemonics:
>>>>> ```
>>>>> test_x86_emulator.c:2636:36: error: invalid instruction mnemonic 'fsaves'
>>>>>  2636 |                        "fidivs %1\n\t"
>>>>> test_x86_emulator.c:2640:24: error: invalid instruction mnemonic 'frstors'
>>>>>  2640 |         asm volatile ( "frstors %0" :: "m" (res[25]) : "memory" );
>>>>>       |                        ^
>>>>> test_x86_emulator.c:4251:24: error: invalid instruction mnemonic 'vpcmpestriq'
>>>>>  4251 |                        put_insn(vpcmpestri,
>>>>>       |                        ^
>>>>> ```
>>>> Was this reported to them as a bug (or perhaps even two)?
>>> Looking at just one of these, the mnemonic is FRSTOR without an S, and
>>> Clang 21 is happy with that.
>>>
>>> What is the trailing S supposed to signify to GAS?
>> "short", i.e. the want for a 16-bit operand size prefix.
> 
> But that is normally spelled 'w', not 's' in AT&T syntax.

Floating point mnemonics look to be special (and AT&T syntax is absurd in some
situations anyway).

Jan


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 17:09:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 17:09:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239280.1540715 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuZQg-0005Nl-Mh; Mon, 23 Feb 2026 17:09:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239280.1540715; Mon, 23 Feb 2026 17:09: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 1vuZQg-0005Ne-Jy; Mon, 23 Feb 2026 17:09:06 +0000
Received: by outflank-mailman (input) for mailman id 1239280;
 Mon, 23 Feb 2026 17:09: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=mpp4=A3=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vuZQe-0005NY-VU
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 17:09: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 590e3ee4-10da-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 18:09:02 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48329eb96a7so26708015e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 09:09:01 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31f0330sm241787025e9.9.2026.02.23.09.08.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Feb 2026 09:08:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 590e3ee4-10da-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771866540; x=1772471340; 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=z9goABibW6F5ClxCUwPd0b9Zafr4H2ZAyBuwnOzWKO0=;
        b=jYEU1sZAXBiVsQiXp08RaBmgqaSsM0TSQUDmCqMs1x3a3IS+ui5Y+BFMQtUQWzcnew
         qikIr5xQ73pOQOBbt9yIT6L5W7EjTFh16tUGqXffqOFZYz9F4M6veqPzzJJuoeYiPhaT
         QNmIQKUwEOAktIruxCFVUJeqoLhH7feQlrRsw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771866540; x=1772471340;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=z9goABibW6F5ClxCUwPd0b9Zafr4H2ZAyBuwnOzWKO0=;
        b=mnUzkvd8QfwUNIIxI55xaGVrFZnatIJLninf1/HuB0A6C9iwPrETkRt+UqHKDTXoB8
         7C5Yq7wY+g3uEqaRqN5W8uJP8hRTdkmkGxzSW66akvfmErSuAjtZnIzS/2TkSjEOOrTU
         rEA8X5JX1G+ZXC38oxy60WpIEhrF2KTPH2xKpdj74dyfzxyQr/M5VoXbDhmTqRXX88jn
         EWXKrU7LTrwsKKHANCkTlpkCSZJbu8kq4k+nOOztzdSK/k+aUicO+TLTVMMo41Mh5DBf
         T/yIXV6MPMj0/ovLQkkRV58L6zFGPwHJ4wZEN8NsODuVLvdZDHt9HG4AUcRukhZ78Bm0
         u7rw==
X-Gm-Message-State: AOJu0YwuKLad8I/e51X6hnXZJ0NoA7PW4Oq8D+JYRDxhaMzVx61lJJKu
	zOMzHWpLmAD0Da+J5dqjD3XMKgDZCuPSAtEOjNj3bkB7g2pGpXJq1mRfKt4yyR/l8sHCdt+HnUa
	TGySn
X-Gm-Gg: AZuq6aL7wfWFvNJHIopoRa6cGO/RwR6fMG4rOgnUxwQ1KmzpYQKnvny1OF7CtA4De1x
	7YNnVnX0rs9RNHplV6vpAU2wwdUGEvl9+WrtuDLv6p4ESJU5haj4d1Sv9EVpkMD2yNIqltlJJ2t
	tTeo9JyYuYDksCZx4hQIMnhyVYSN/kf19tBe7sumY7zR3BQZMKPUcXRm3tmwTta9CapEBR/H3cf
	VybsKhwXMDOxc6qM8z1AGE9pbtS5/dEDEKuLysSPw9LzZCzQc1ON+xnmD53wv8mrdoR7VocJqcf
	sArTs5h7ow2mLUMAZemRO4KGaR/qQf4VnirgO1p5MwHHO4AcT9sh9p5zcEJLl51PvDy0bKVw0MD
	fZlUYqEm26aLfst2wo3zPoWDkTee9T80Srh+ndeUoNrfGH7dJdbJi4dpUy33uQQQQcmiQcSdcPD
	7w9z8hNBMsYnnggG8EVHRE9qqFK2lVZ9AEGYvaFsyOGEwnk9nJWaMEC5NWY/b4ySszU0+XrVc=
X-Received: by 2002:a05:600c:8b44:b0:480:6852:8d94 with SMTP id 5b1f17b1804b1-483a95eabccmr153125545e9.27.1771866539380;
        Mon, 23 Feb 2026 09:08:59 -0800 (PST)
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/emul: Remove fallback path from SWAPGS
Date: Mon, 23 Feb 2026 17:08:56 +0000
Message-Id: <20260223170856.3594016-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 real hardware, accesses to the registers cannot fail.  The error paths are
just an artefact of the hook functions needing to return something.

The best effort unwind is also something that doesn't exist in real hardware,
and complicates following the logic.

Instead, use an ASSERT_UNREACHABLE() with a fallback of injecting #DF.
Hitting this path is an error in Xen.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

Tested using LKGS's extention of the test emulator for SWAPGS.
---
 xen/arch/x86/x86_emulate/0f01.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/xen/arch/x86/x86_emulate/0f01.c b/xen/arch/x86/x86_emulate/0f01.c
index 6c10979dd650..760f5f865913 100644
--- a/xen/arch/x86/x86_emulate/0f01.c
+++ b/xen/arch/x86/x86_emulate/0f01.c
@@ -192,18 +192,21 @@ int x86emul_0f01(struct x86_emulate_state *s,
         if ( (rc = ops->read_segment(x86_seg_gs, &sreg,
                                      ctxt)) != X86EMUL_OKAY ||
              (rc = ops->read_msr(MSR_SHADOW_GS_BASE, &msr_val,
-                                 ctxt)) != X86EMUL_OKAY ||
-             (rc = ops->write_msr(MSR_SHADOW_GS_BASE, sreg.base,
-                                  ctxt, false)) != X86EMUL_OKAY )
+                                 ctxt)) != X86EMUL_OKAY )
             goto done;
-        sreg.base = msr_val;
-        if ( (rc = ops->write_segment(x86_seg_gs, &sreg,
-                                      ctxt)) != X86EMUL_OKAY )
+        if ( (rc = ops->write_msr(MSR_SHADOW_GS_BASE, sreg.base,
+                                  ctxt, false)) != X86EMUL_OKAY ||
+             (sreg.base = msr_val,
+              (rc = ops->write_segment(x86_seg_gs, &sreg,
+                                       ctxt)) != X86EMUL_OKAY) )
         {
-            /* Best effort unwind (i.e. no real error checking). */
-            if ( ops->write_msr(MSR_SHADOW_GS_BASE, msr_val,
-                                ctxt, false) == X86EMUL_EXCEPTION )
-                x86_emul_reset_event(ctxt);
+            /*
+             * In real hardware, access to the registers cannot fail.  It is
+             * an error in Xen if the writes fail given that both MSRs have
+             * equivalent checks.
+             */
+            ASSERT_UNREACHABLE();
+            generate_exception(X86_EXC_DF);
             goto done;
         }
         break;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 18:02:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 18:02:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239292.1540726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuaFv-0004LR-FH; Mon, 23 Feb 2026 18:02:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239292.1540726; Mon, 23 Feb 2026 18:02: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 1vuaFv-0004LK-BL; Mon, 23 Feb 2026 18:02:03 +0000
Received: by outflank-mailman (input) for mailman id 1239292;
 Mon, 23 Feb 2026 18:02: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=cc93=A3=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vuaFu-0004LE-5b
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 18:02:02 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c0252265-10e1-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 19:02:00 +0100 (CET)
Received: from BYAPR06CA0007.namprd06.prod.outlook.com (2603:10b6:a03:d4::20)
 by IA0PR12MB8747.namprd12.prod.outlook.com (2603:10b6:208:48b::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 18:01:53 +0000
Received: from CO1PEPF00012E63.namprd05.prod.outlook.com
 (2603:10b6:a03:d4:cafe::fa) by BYAPR06CA0007.outlook.office365.com
 (2603:10b6:a03:d4::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Mon,
 23 Feb 2026 18:01:49 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CO1PEPF00012E63.mail.protection.outlook.com (10.167.249.72) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Mon, 23 Feb 2026 18:01:51 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 12:01:51 -0600
Received: from [172.29.61.144] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Mon, 23 Feb 2026 12:01:50 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c0252265-10e1-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mfWJ02KCOje2+q5J0HakVqiwOXO2ZQwgIq08ttJvLajebxKMBk8LuYtQ9bHoVx71HFCIahGJhJN6hy9Fq7Hy137u1KykJ/leAlaaRLFCgJQ6n/ljxGx0ZtIecLzT2iavwDEoSzgRTPsR5IXZ2wmB1Qwqn5ZJ4N8RRh+6klCy5djfFrLvxtHQn+wj3F0cKLr9SGdfHt2IiF+FusN9WUhjCoacp6HB8o7XbK1XRAWgNjnpsbipv0Q1NBTN2P5IgijHw/Ei9WL7krzdg+NXYGY+EceQWb79L4bbYY3zakdr8wKmRkCg4QghovAWmFIKFV0LXIGwRqMtXGRP1KoX195bfQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=x7prGWXpcud7zodgdqdXLoIDodLrd6uyeQ52pqsTLsA=;
 b=n/cJdREWtoBXyn5yu93JuWnpE0eVWnUSzF8atqM40cS6+WsQjOeoe+oOg0KnoYb5q4sp9XsPP7RDttyRDm1EJsc18F5qgqEMcJyqw5nRuh8sICSSNdNHE0bGtgL0WzOnexuPpxSSQuRXXzqY48QHxSMYy76n0Ye4urKAe0Ll8Ll7y5JZ0V0RMGBstymBHhZRVcfLPQzR/p23lcBjaGfy4dmJsq9itrUvpu4DUtoIKYbA7JBMh29dxcdcR172Zd9ywwqICF6NAi+kHBOz4yZTtqDt2IMKvSEedXMac99WcyNBapE7aOGcAeGa9MZRUiW7OpFkCUct6Lo+QP/Irjzwdg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 165.204.84.17) smtp.rcpttodomain=apertussolutions.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=x7prGWXpcud7zodgdqdXLoIDodLrd6uyeQ52pqsTLsA=;
 b=K3ZH1+78R+z/8pF9iJrV/10kuSTb2rCI9SNoWfxk+H0iI7KGwbLcqIc8jx/HbY3mTPedWAVRjMaBj1+xsJwyEP8s/+RZ34fKqDPgfftQtQBV7lSXHxiHXw9uRXH6YGCq2eAKcD2U9LMV2rxwA6igwREzUJldpsNLhHbvoUShcwA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <082425f5-2d05-4db5-b2a5-d8a621302f9b@amd.com>
Date: Mon, 23 Feb 2026 13:01:51 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	<xen-devel@lists.xenproject.org>
CC: Chris Rogers <rogersc@ainfosec.com>, Dmytro Firsov
	<dmytro_firsov@epam.com>, Andrew Cooper <andrew.cooper3@citrix.com>, "Anthony
 PERARD" <anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>,
	"Jan Beulich" <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
	=?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Stefano Stabellini
	<sstabellini@kernel.org>
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <e402ca27-75ca-4046-8e30-305c1c8d3db8@apertussolutions.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <e402ca27-75ca-4046-8e30-305c1c8d3db8@apertussolutions.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CO1PEPF00012E63:EE_|IA0PR12MB8747:EE_
X-MS-Office365-Filtering-Correlation-Id: c2852001-5f59-458a-c740-08de73059f69
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?RVhHQkYyblZCVmFYT2xHSkpRR1VHdkhNb0g4ZURFdk9qVjlYUFRzWTgrSlNJ?=
 =?utf-8?B?YVRER1FmTEVhUGVFM1JNcEMxczQweW1pT1VkSEJyUGZrQy82L0VnM0Q1Q0Va?=
 =?utf-8?B?R01IampDbkpvdjVmWVJaODBjczQzeklmeUgvOVZoV2J1aUh0QWNxSjVTcytW?=
 =?utf-8?B?K0dWc3VZeGVENG5OUmdRclNSWVR2dmtUbzlKWXRJUHpBUnFGM1I4WFVzelov?=
 =?utf-8?B?SWVscFFJS3R1bzBFaUpJSlgxVnJqdC92MXJ0dWlGNDNDTERDQUJkQzdBMVly?=
 =?utf-8?B?UVdUcllqUmtCRG9CTmNwT2R4cSttM210Z3VxMmJKbzJzUURXMGRTMnF1TEFv?=
 =?utf-8?B?N2FNaEpaOVNnbFdGSmVPZCt5RFdhSE1kcE1xcTlhUkxMNUpxMkVYSm5ZMlN1?=
 =?utf-8?B?OEZ5MXdablJTaithbUw4UlRSdXJCRzgvOFJNR1lnN3FCTUtVajFNN1Y2RUty?=
 =?utf-8?B?cWp1RDVrVWMzZ2hSV0dnTGU5eWpoamlXeWhKM1owaDl3clhPQ2ZxRGxtQ25V?=
 =?utf-8?B?Zll4dlphRDJXWHhmQkE5ZDhhOHMrMjVTTkMyLzF5WXVhVVM1aDkzK2RoQ2E3?=
 =?utf-8?B?SFV5QVhyZ0FYbXVMMkJpdGlpdmgwckV0NTFYdmZTQ01QVHpFUlRkZU1xSmM3?=
 =?utf-8?B?NitMN05sSy8xUWFKRnkxcjM5THpBaEp2N2VLY2RYdXFWVy9OdjZOZTQyeWxx?=
 =?utf-8?B?VWF0QWdsamtiMVZyVWdqTkZtVzFkbjNJcWJqYlVUTGlmTm9ObGpaNGdMK3Rh?=
 =?utf-8?B?WlE4YUxoN1UycXUvaWRSSWFuT1ZQNVJwSTJwWEVGOXlXcktVSGp5TlFnamk2?=
 =?utf-8?B?T3dkN09KVGF2am5JdkRzMFNlbnBqTmRONzlTcmhtSTR3OFFCYmUzSGFVQ3l2?=
 =?utf-8?B?UzA1SmhLYVlyU1ZSaStrd2lyYkZFTDA0Z05kRHFKYytZQ3JzV3lwS3F5Qlpr?=
 =?utf-8?B?NUVIdExBMXJjdlMxczdZRGF4cldTRitmYWdJc01udEh5ejhrTzZST1BvT1Q2?=
 =?utf-8?B?M1dZMlFpVHZwaHEwUi9iUVl0ZFlBYlRjNnowdWhQeHJHc1pSTGNqL3hmMU8x?=
 =?utf-8?B?b1pVdER6VWs5UGUyWmppaThnT0diUG9iM1JaelVZVVhVK2o1NFZCUmJpdElR?=
 =?utf-8?B?M3BHMzh4cklvVS9meHo0b2E2M2x0eXA3S1JlbUwzU1RMTEVncWc5Z3Z5VE1O?=
 =?utf-8?B?eCtUMnVXNnVHWnFTVWpwTmNINlBjMmE2WXJTd2VibGJZT3p0UmhYVGVrY2VM?=
 =?utf-8?B?bUx4M292elhHNm45WDhCMXc1dnBWWURGRE5RNFJVVEMvNFZSNll4K0xoQ1Ix?=
 =?utf-8?B?cUNSNndsSWU1UUhuTnN6aEZSTnlYMlRvSmhtenUrUWg0UjRYYkx1dW9FZTdp?=
 =?utf-8?B?M0lUbW01Q2RTdWtSdFY5NENNRVRqeUNKMGJpd2pnMWpraEFlQWxYQnJqQXJj?=
 =?utf-8?B?M0pPV1NNSDV6UDBGVzVFWEVNdWtJcFMrRUlOTXNwbWpuN3UzMHZET1dWK25V?=
 =?utf-8?B?emsxcGJPcHF0TXFsZFlveVlvUXIzcW9TS2o3N1hpSVR5YmoxY2tMeHk5U3RE?=
 =?utf-8?B?TkgyQWVmQ1VCd3QrL2NTTlhGYXpJRzMraVN5aTRXU04yZzZrK2ExYlhPVG9P?=
 =?utf-8?B?elFUdWdKMHJyK0RMMDErWkRLR0oyM08xMnlTazVBZ082SWRiL0sxNjIva0U3?=
 =?utf-8?B?ZUZScTJWRVpUZWRWYmlvQkNPK0tIVk1iTTFsSGU4RDlacHRBN3MzaUZsTHBu?=
 =?utf-8?B?bHpVNnBzZkxHUSt6Ry9Ib01BNGJNZVVXNmhqd0pVVWlZVlZFamVxckUrS0lS?=
 =?utf-8?B?NnZmdDNSZ01LWVZkWDA0SlNGSWRQVEZqQkM1ajV6eHNzNFVTMkFIMHIxUFFL?=
 =?utf-8?B?U1VWOTFWa2tUZXVOSUFSckRHZ0lzTzFCYUtMUml1WVM5V2g2czBpY1puM2V3?=
 =?utf-8?B?MWdQS3hKSlcrRlp1NGlZSks0YlRoYjI1bHB5NXdYKzNOdmhRRzdWMlgzTVVN?=
 =?utf-8?B?KzVZM2ZhUHdob1pzbDNRaFJFN1AvUnlNc0w3TUVrWjFsUHU3N1pWbEllU25l?=
 =?utf-8?B?QWJGUGpGRm80TUx1VHo1Rks2UncyS3VESnJwQU53ZkNVbm5OcHNnNXc1N2dC?=
 =?utf-8?B?MWFBdzQwYUZHRHdMUWR2TWMwUDBJZVJpaDJ6dkdLeFRCZ09XaEVmY3pJUHll?=
 =?utf-8?B?NWZCUjlha3YxNkN2UytDb2FsRWZabGNGQlRxWExXVGVSVERVVE5mazZLd2lj?=
 =?utf-8?B?V2tqVHY1Kzkvb21SL3FDb0w4SXJnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	P3VRqilRBesdkW6h8F2pz0GVOe529CZbIonra0gFf7CwMhT92Uj9K0ZXr5xW4Bqr48T8LmdChKGMxVKDQWm03efV/udOsNXqVz7NRwoBh+eZWt+KmMqJjUaEjRWC0kMH8sl+Gwt+pIVbLE0I5BBjgy10QzVeRvd/BmQj9HhNfiuIhkdto81bglZMsQl1jQHVXl49bAUj904HH+DIy8l+acKzR7UPUyYxQTSDrzUa9u5XAOC1xjDPoiUbK9p5se7XANo6D5LcuKNeFGVHWmfp/0EEIRHYmO4KBYXc5n+mPIgrdXufR6q++UBrpf1gjiRYA7vLaAAgU86B/l0HG+dP9nuJXj2qzoPjlrsjfUCXDnKusoACcfwc+UzmjRKrzXQMRrA1QjIfVFG1lAulTkU6tCzN29MsObaLz3mBMUNigbZfQFwb3rMnqJgj2XCgl0mo
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 18:01:51.8422
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c2852001-5f59-458a-c740-08de73059f69
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CO1PEPF00012E63.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8747

On 2026-02-19 07:15, Daniel P. Smith wrote:
> On 2/18/26 18:04, Jason Andryuk wrote:

>>> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
>>> index 29a7726d32d0..2eedc639c72a 100644
>>> --- a/xen/common/domctl.c
>>> +++ b/xen/common/domctl.c
>>> @@ -860,12 +860,9 @@ long 
>>> do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>>>           break;
>>>       case XEN_DOMCTL_get_domain_state:
>>> -        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
>>
>> With the initial NULL deref issue, I wondered if this wouldn't be 
>> better off modified to drop the d param - 
>> xsm_get_domain_state(XSM_XS_PRIV) - and changing flask permissions like:
>> allow dom0_t xen_t:xen get_domain_state;
>>
>> That would gate the external call, and individual domain permissions 
>> could be checked with xsm_getdomaininfo(), or a new hook if you don't 
>> want to re-use.
>>
>> But as your approach avoids passing NULL, it seems okay to me.  It 
>> also doesn't change the flask policy, which is nice.
> 
> That's a plain nack from me. Whether it is viewed as a pipe dream or 
> not, my goal continues to be to work towards enabling the ability to 
> have a truly disaggregated platform. In the original architecture, it 
> was envisioned to have multiple toolstack domains, each responsible for 
> a distinct set of domains. In terms of implementation, that would mean 
> multiple xenstored instances, each with a purview over a subset of domains.

I don't think what I wrote is at odds with your pipe dream.

My main concern is passing NULL as a domain.  I think that is wrong, 
beyond the fault seen on ARM.  In domain_target_sid(), I think the NULL 
dst was mistakenly matched to dom0's NULL src->target.  src->target_sid 
is 0 from zalloc, which is not otherwise initialized and invalid.  That 
is returned.  Later when sidtab_search() can't find it, it is remapped 
to SECINITSID_UNLABELED and returned.  That silent remapping is dubious, 
and it points toward unlabled_t should never be allowed in any rule. 
Maybe it should remap unknown sids to a dedicated invalid_t, but maybe 
invalid_t is already supposed to be that?

Regards,
Jason


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 18:07:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 18:07:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239303.1540736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuaKt-0004xH-3y; Mon, 23 Feb 2026 18:07:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239303.1540736; Mon, 23 Feb 2026 18:07: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 1vuaKt-0004xA-1G; Mon, 23 Feb 2026 18:07:11 +0000
Received: by outflank-mailman (input) for mailman id 1239303;
 Mon, 23 Feb 2026 18:07: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=ndCc=A3=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vuaKr-0004x4-9F
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 18:07:09 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7707f9f4-10e2-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 19:07:08 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS7PR03MB8314.namprd03.prod.outlook.com (2603:10b6:8:262::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 18:07:05 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Mon, 23 Feb 2026
 18:07: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: 7707f9f4-10e2-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jPdRg3Xnoyl5CKolOIUViui/okzYCPpCSyTFjdCYPGe3sfPVARxqTS0OC33inOWdLPLan8D4VlfnySgP9J56jkNn1Ws4qjAgR/BFOeLGRsXXcHLRYmpAGE4bN3FyEP8uXEpUH1/i4okTMBtoIZOZS9ZiFmYbR37Gi+xlNjtr9hWkr73OMciffOCj4hTCggJ8kssv3JpIX8ikW1JkNTe7AI+ank9KCjjfR/lodzpWkiIG5OiwyTNA/8UnHut9Ppdkh6wqNL2hR8NmKlHTv5fwx2Fp4ZRnVc+/DpXmFdF6kIbFQWIG2oPmgUzHj9M6xC3vDRwKexyP7CDZ49BCEEC3CA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KggZxdVdfiBk+9SJMucf8dR/w4XU/rKN99+jp9nc8D0=;
 b=ExOYa8xPXpfzfdMoKzM0z8jXmcZ10DDW5ge7FOBf9bQoZv78WdYe+Uq5G/I3dXTjWxhJAYB/wZezo1XwNV1POJ9+3vtbzYYbSzgY6dR0nzfbqxK1coZHqyTlgGIH0H5lgaBSTISvdD0k5WmAL/QB69kuZaD8M+5iiaib1HReK6czFXMks5HrVZZIH4AY3vfJY5SWcwEb5HWaHB1QbpXd7rdBlExJg8sQuiAOlJdbS3VNcADV5aHfKJ+ug2id/ZXKetvwaexKJSsHRQRnCtGzY137kOz7crX+d7rFTEEfmJr/szmuaqB+6wbZ4Rgz6qCZH/c2qVSz+QkDfBlJ/KiGCA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=KggZxdVdfiBk+9SJMucf8dR/w4XU/rKN99+jp9nc8D0=;
 b=c8YZnMRvSoGPydpA/Zat7WcRGXfA+xdSnlb21k5WMiBoB4tAjxqKGHkJL6aPhq4ZZfjwpKqgCp5wO+Pypna16JjA5BjfEntmTkllZAuDMOMxG7jDMBKx+u4w0lqBDpgWhRUXGC7+ebHXJbCZxR0AGwRcavKFUC5dOZNLtM2i3Gs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <603fde9e-0a82-4509-9927-3d1008e40040@citrix.com>
Date: Mon, 23 Feb 2026 18:07:02 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, jbeulich@suse.com,
 roger.pau@citrix.com
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for common.c
To: Kevin Lampis <kevin.lampis@citrix.com>, xen-devel@lists.xenproject.org
References: <20260223145458.438621-1-kevin.lampis@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260223145458.438621-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0200.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:318::15) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS7PR03MB8314:EE_
X-MS-Office365-Filtering-Correlation-Id: 35a30b2c-ee1a-4ca5-f1ab-08de73065a0f
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?YldKSGVoYnZlRS9MV0lVWlZoT2dOQU5MT3NGT2ZyN29hYnkwaHFnMEZjNEYy?=
 =?utf-8?B?em15ck42MG5xa0t5K0NwSHRVNld6QzRBZDhlOWtMUkgyMzNRc2V1c3U5cTRL?=
 =?utf-8?B?WEJGcXNQQWVlSnFDUnpsdW1rRXovNTE3NndNRVk3Wlo2dmpvOEV0R3RvV3JB?=
 =?utf-8?B?THpDRGlZQ0U5RVJ0RzYyVEgrZmRNdVMvZlAvTi9KMjIyMHZsT3RVZVdMc3V5?=
 =?utf-8?B?Zkw4SldsZWJOK0lSZWFKYlhtQW85TWkzK0M1Wnh1ZlFFeURBSTh5emt4WGlu?=
 =?utf-8?B?Y2I4MnBXS1JkZWVrWDNtd2I3eDlEdmtGYU9MTW5WV2V3c28zbnhPaitHNk50?=
 =?utf-8?B?bm40QjhGQnUvWkMvSlpqaCtaT2dwSjB2TGNFKyt6bkVhUXRXemtwS0RveFNG?=
 =?utf-8?B?RkhYYTBHRE1zTUtpSHpxRk9QZUZnQzZNYUpWdjZoZk9qaGhNN1p5QVFLd043?=
 =?utf-8?B?L3RXQmhwejNLSkZYbm9QdTdzRWl6ckpSZGlQcnViamNFVFlpR3E4OXMycjdt?=
 =?utf-8?B?TmhHZHQ2b2Z6L2tEcXV3UEhUMHJSbEw4SFp6Z3FiQnFRdE8xTG91bHpDcEU0?=
 =?utf-8?B?Q2FqNXN0SXNJWlE0NHI4bDFpL3BOajlTSko4M0dFTDR3OVVxNGRZQnBpV0FY?=
 =?utf-8?B?bHowOHpDL3lJN2dNZGxLcGZOdnRxR0h2czdTTzNWdDBlZUgwMjczak9idTlm?=
 =?utf-8?B?ajlKQ0RIQU1JWTF2Sm1scHNhRU1YUFlCVy9RMHR4ZmJJVHdVSFpleUpGWVNa?=
 =?utf-8?B?d3pqcnJzOXQraXZoWmRaUFdqd0tiblFwOS82WUw0UllPczlpdlZ1bllQaVdl?=
 =?utf-8?B?ZHBWaDllMDd1RE1QUVlvdUM2WUFwY0hsU1V4T3ozdSs4aXRQQjRlSmw2R0Nz?=
 =?utf-8?B?VlRTdzVlTWY5Q0pUQzVyWUMyYk82eXdKd2RKblhSQ0hJVVVHZnhOUjlYNDlt?=
 =?utf-8?B?cXRpWGN5OW5UU1c0c0FnanlZUjZwc2x2c0cyemp5ZThLSWhpNDYwcnp0SVg0?=
 =?utf-8?B?QkJ5dGJLMVNRNXZZaEtjL0dpQzRadWtsVlRudGR6OXZrWkljbDN6TTd1QlQ2?=
 =?utf-8?B?Q2V6SmlzOXBkOW4veE5aQklBc0hXM1VqU1pkYXFSbDExQmxrYU1IWkNlTHBu?=
 =?utf-8?B?Nm12cWZjSmdrQUo3clRDSEFvQTF1UlhxM2tiaG9lN0tOMVIvV0Q3dDJhWVRn?=
 =?utf-8?B?L2ZTeDl3MjB4NzQxSHZyUHhwNUpmN2RCdTFnWlJ1YWFWaG1ObkkySS9HemRE?=
 =?utf-8?B?NUN2N1p3VmwrSjh2cXRmZVVuTDJmZXlWSnpqaGZqdDNXMGtvTjFNcDB2aVVH?=
 =?utf-8?B?MmxoVHRFOTYrOTRXL3NZNzhoK3FERmdxR0c1emdkQnFCT0lXMjk0b1N0SjFw?=
 =?utf-8?B?TWFWV1dlZmtYdExmaGw4Mjhob1hDMXltRVVNWm1BcmU1YWl0aTc3V2YxSkFr?=
 =?utf-8?B?TmI5ZFNVNWVmTHpsK2VkNHovT2RPREQyb25ZV0doSlNKWlNMU3RTWGlCOWJp?=
 =?utf-8?B?NzY0SDlZSkJXdXF4akRhTUozKzZ2KzNaRHNqR2ZLa3phaXpFYndod1JsK3lQ?=
 =?utf-8?B?UEo5K2taWmVtNHduWHBkM0ZqbkVsbmVrR0JwMnRqakJEb2w5ZXVWa1N1czlU?=
 =?utf-8?B?S3VEMnFiRzkvazRucy9vdVE2RnB1ZHEvL2ZzdzhFSmN3a0IvRXF5eEwvWmk5?=
 =?utf-8?B?dzVsd2dLWk5oalhEUmhiQXN2VW5sLzVzR01LQVdTcGVRTCtGUUNOdUtyYWND?=
 =?utf-8?B?WUkvcUFqdEZGYUpod3RubENyNEY1V2FhbDE0bnFpeHhUbDFMaVlTbFRWMVp3?=
 =?utf-8?B?K2ZkcloyRjFrZG1uK05IV3lxRy9tYytIN2IwRzV6cnk3VXAxeE9BTWF6aVVO?=
 =?utf-8?B?ZVFLR3BaUGZPVThWVDZ6em4zMXA1dzRUaE9YeWt2NTAyMUxNRm1BTnovU1Uv?=
 =?utf-8?B?YlkwOVlUMWNUZVNJU0syTHBKOFRJdDhEa1N1cml4dUFRV0xibXRxSVZZMU5p?=
 =?utf-8?B?MTNLd2puZHoycnlQUWFhYmd0ZE16djREVWs3OS9ZVXBFdHZzUVZrdEk4cm9o?=
 =?utf-8?B?SDc5clhSZmQzdkhSanJLNng1RzJvOTVnZnRaRWM0TWlhSGhtTnJtK1BwMHZq?=
 =?utf-8?Q?FJVY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OGJ3Ny9YL0hMaVlyS0FoRjBHMjhJWFpNSVJLbkUvK3lDamxoOGNkMnpaK2Q0?=
 =?utf-8?B?SVp1WU1VRHJkdHp4eEhRRmFOdWFjVHdMaC9qMXhPOXg3TWNoc0s4S1JrWUtw?=
 =?utf-8?B?ZkNxWHpDUWQzWXFwZ05ZSklnVUJDbnZkdjNEUVdqeDdGQUc4TWNDOFBpZUd1?=
 =?utf-8?B?dUVQQ1VXNkNDUkVmQWExTjFRN1NUWEQwd0Rlb2d5SnIrbFhTZ2ZNV29NemFv?=
 =?utf-8?B?czZoajk2RGxwUFlrVUxCaENoY0xyLzROUDM4cXFLRWdXV28wUEwvV05OV1Ax?=
 =?utf-8?B?RTdMYzhWRTRURWdWYUxnSFQ0Z2xlanU2bXhWVWd2Mlo2ajJXRnVrTXlOK0Qw?=
 =?utf-8?B?MExEM0VmZWc1L0dnMHdvcU1DQTdieVhrODBDQUs0bHRLckhLbUwrdlBNbkVS?=
 =?utf-8?B?WVFyMGN3VW04eGt5azhIc1VjRXptc2c3RTE5Vy82dk1nV2xCTTRrTXUvSEdn?=
 =?utf-8?B?TnlYYmpMYVJqMll6UXo3dUpHa2J5VW9ONk5VUUloazVqai91NWNtc0R1SHBn?=
 =?utf-8?B?eTRNcFQrU05MZFpjd3V6bnNDdEg2SkN5NXBnajFNSUNQUTJzZVBOSmw2ZE1x?=
 =?utf-8?B?SkI0d3ZDaXNQeUFwMnVVWlFDdTZvWkxUaEFvL0hJblhkQzdLaDJRQ2pkMUxk?=
 =?utf-8?B?OFpTbWl0TE9jOHQwZXd2am5QdEx0RFpvbmF4eGV4OEl4STIwcnlacEN4ay9n?=
 =?utf-8?B?R0NRSnV5WDYweWxXOVErODNNMnZTVnNUeXlpU29RVy96WUZoRklPL1VzODRq?=
 =?utf-8?B?c2FKVnNSZ2UvL2hsZHB3NE9sSzREUkhmWHZTbnZ2R2ErMU85Z24yV0tRYkc3?=
 =?utf-8?B?S2JnSm9IVUxVR090QzV2NzcvRUVWSCtGWDR5M04rcXRFUTRFVWdNUlo2akFE?=
 =?utf-8?B?UjlSRGlRekFmeElGWisrQS9OYW52cHZSMWlZZkNkOG4rUFZOMDg0anlTZWdV?=
 =?utf-8?B?Z0VsY25IZTZDODR2cWFCZ0M1cjV5YzFmK0ZEaDQzUlFIZzdFMWxBeGF6bUc0?=
 =?utf-8?B?ei81WUd0UEdiemJKY2hxcUFtakw5Zlh1VWxWVUJDV0tVV0xQNjc1aXdXSldh?=
 =?utf-8?B?UnBuYnlDY2Q4MUFDRmNDbFVhb0lHUmVZdVBaazMxQ0hmdjZqK1BEQzlQUHV0?=
 =?utf-8?B?azNuMXlaRnhSbXNuM0dwd1hYLytwSUxKeXhDWXpSMVJLRzNaeGxCMnU2OW5B?=
 =?utf-8?B?M2hxTzZLeU9sRlZZOCtRTm9hZUovVWlTSlJnMFlIcGRGUTZHZk81SEJuMkZz?=
 =?utf-8?B?QmpTQVRucFU4TnRWQU5pTXFKbHBoM25idTFKZlVHOG0yejU3eWNISVNqeUFp?=
 =?utf-8?B?cTR1d0pzQ3o5blpTbXRHTmRlMzBrUjQ5SVVvV3ovKzRPaXdYWG53bHNIWE5r?=
 =?utf-8?B?K0RxeTNNcE43RzZUalAxcEFHaW9oOXZnUmxOSVk1cVRkNGhVY1pRNWtyZERq?=
 =?utf-8?B?Q3FtZ3NTQUNTT29CbFgrd0Q1b2JteTBBMVZDQ2c5QndPRjMvdUxIQmtlcnRK?=
 =?utf-8?B?bkxPTk93YXVMa2FjWFBrZU5SdnJWdjFQem0yRzFXSTkwNUlOS1JrY0RnbnZH?=
 =?utf-8?B?aGFmaG83bWZWZDQrbWZCWHBrUEROR1lLdDJUUWFVcnRJdzZxR1FMVzZGOFVx?=
 =?utf-8?B?VU50ald3VXpzRjliT0Uxd0FJTlhkVTFDSUJnZzBQVE5TdjZrMzJ2L1g1Z3hz?=
 =?utf-8?B?QUVPZjBsSTg1WXo0OGFCTTFMWTFDeEhueDFVTjFsaVYvK3VpM3ZaaENMUFRh?=
 =?utf-8?B?aUU1UW5OVVVpWHQ1SGhMSVRqRjh2S0laL2h1aXVDM1N0TS9KRE5ianloRTJ6?=
 =?utf-8?B?SitKanlLS2dURkJ5dWx5L2xnbTF3a0NHUFU3Z2xZQzMyOXVBWmlRcFdjaWlQ?=
 =?utf-8?B?bjRCc01RanFhUDMwajZkMXVDVFJ6TEZQNUhiRTVpbnRBVGpHODA4bWd4MDZV?=
 =?utf-8?B?L213N3FOaXp5OTBid3F3UE12K3FCaUFrcWdjb1ZNOXZGa2ExVXFLbnlabGlS?=
 =?utf-8?B?dlJteGRDN0huU3NQMG82ZHBPcDdzZTlpZjlQRVFnQXhNMVdOSGRrbmRSUXlL?=
 =?utf-8?B?b3htRmJuYkNoU3lwalczamVqVUdpbWVVVDhBMVdIazZ5dkIwU0F1YjNzRXhI?=
 =?utf-8?B?MkJtM0t4WHdLdHUxODBULzZoTlp4Y2FoSy84eHlFMmF0bnJwZStwWXo3UjZ6?=
 =?utf-8?B?eC9YNEs1R2REK05SaWtCZjA2ckRhZmpWVkY4cGFuUEtaSXVTVllGSFpYQjB2?=
 =?utf-8?B?Z2M4NGJYelp4YUR6emFud25kdHpQWXowOUlVOUN2bitSMUF6K3F2WC96bCsv?=
 =?utf-8?B?OVhZTjNyYk5SRnVIQzNRdUs3akVlSFFmeGRaSm9la2hONkp0NE93Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 35a30b2c-ee1a-4ca5-f1ab-08de73065a0f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 18:07:05.3438
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: f2lbfkOBNzgTomFNlTVpTl9eK7ptWN46/3+MtM4lSaUAwNiBSbdfy3N37wTA9fcPgoBUK1e9hgwtxcptIBGThW9bnfy2SsX17Dgevcg+bBg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB8314

On 23/02/2026 2:54 pm, Kevin Lampis wrote:
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
>
> No functional change.
>
> This work is part of making Xen safe for Intel family 18/19.
>
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 18:49:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 18:49:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239316.1540746 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vub09-0001kY-86; Mon, 23 Feb 2026 18:49:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239316.1540746; Mon, 23 Feb 2026 18: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 1vub09-0001kR-4V; Mon, 23 Feb 2026 18:49:49 +0000
Received: by outflank-mailman (input) for mailman id 1239316;
 Mon, 23 Feb 2026 18:49: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=AVG6=A3=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vub08-0001kL-FE
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 18:49:48 +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 6ae0874b-10e8-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 19:49:45 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 177187257249695.66870636909425;
 Mon, 23 Feb 2026 10:49:32 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ae0874b-10e8-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771872574; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=K1vHOAEy1vOzced+P0eauES3jYbIR3zjcdmG8Wb8wlalRAVY6toHuSYV/9xC+Oj2xmnk5SUdetkA0Y71JayF4ezQt5EKM3smpOVlANPwS+t2AXyoTQpieq+WWTFzfIxG0L5HUVOI+YAnotnpeN4elmGvt4qf1BgMVpHgEUfzMfk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771872574; 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=idDbvGL5FN9xAkszqvnLClJIzLN4MMf1X3ERjjPnEBg=; 
	b=nTquWBT8srovQYNlspBKYbSs4fmS+baj8RK9ALBuO3NHSMtuA4GG3US5Tpbiap5yscfhZdeKnJ6LImux3tFMw+S92bzUn6A80ojIYvz7kj+u0adXgp6a+gemHr54VAUJOFoAktjsGJuIoWLd6Zu/gROrIahIzZQgJw4svZRuNI0=
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=1771872574;
	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=idDbvGL5FN9xAkszqvnLClJIzLN4MMf1X3ERjjPnEBg=;
	b=ZH+dnhAgIYMNK7ouBHwezb64q4FAm/hqSQm6zHl508sHx6wovoAC/BvP9dhvpMSr
	lqhe/GvBiYn0euU5MKc8pPz5ks1UMT/xoOKJssBGrXfzoGE0e5dBH2xwu05wbOgoXcU
	3A6q0PK0uJfmpeLX/UWf+rxL6Mm2gIZkPvFNwyHc=
Message-ID: <6ec4a310-884e-4004-b56f-1810f028e355@apertussolutions.com>
Date: Mon, 23 Feb 2026 13:49:30 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xsm: move the console read properly under xsm
Content-Language: en-US
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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260219184503.21918-1-dpsmith@apertussolutions.com>
 <43a90b6f-683d-48e3-b7cc-4b8c6dae087c@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: <43a90b6f-683d-48e3-b7cc-4b8c6dae087c@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/23/26 10:22, Jan Beulich wrote:
> On 19.02.2026 19:45, Daniel P. Smith wrote:
>> --- a/xen/drivers/char/console.c
>> +++ b/xen/drivers/char/console.c
>> @@ -554,7 +554,7 @@ struct domain *console_get_domain(void)
>>       if ( !d )
>>           return NULL;
>>   
>> -    if ( d->console->input_allowed )
>> +    if ( !xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
>>           return d;
>>   
>>       rcu_unlock_domain(d);
>> @@ -595,7 +595,7 @@ static void console_switch_input(void)
>>           d = rcu_lock_domain_by_id(domid);
>>           if ( d )
>>           {
>> -            if ( !d->console->input_allowed )
>> +            if ( xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
>>               {
>>                   rcu_unlock_domain(d);
>>                   continue;
> 
> At least the latter of these two can be called from an IRQ handler, and can
> be called with IRQs off. Flask's avc_audit() looks to be using a spinlock,
> which isn't IRQ-safe. (There may be other lock involved; I merely went as far
> as I needed to to find the first one.) IOW I fear you can't call
> xsm_console_io() from here.

Apologies that I didn't consider the IRQ context. With that said, we 
can't be wiring non-XSM access control paths that circumvent FLASK's 
ability to control domain access to a resource.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 18:51:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 18:51:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239324.1540757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vub1I-0003Ax-Ht; Mon, 23 Feb 2026 18:51:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239324.1540757; Mon, 23 Feb 2026 18: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 1vub1I-0003Aq-Ds; Mon, 23 Feb 2026 18:51:00 +0000
Received: by outflank-mailman (input) for mailman id 1239324;
 Mon, 23 Feb 2026 18:50: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=mpp4=A3=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vub1H-0003Ah-6x
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 18:50:59 +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 96603993-10e8-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 19:50:56 +0100 (CET)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-483abed83b6so14918335e9.0
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 10:50:56 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31b3e0dsm437506635e9.1.2026.02.23.10.50.55
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 23 Feb 2026 10:50:55 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 96603993-10e8-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771872656; x=1772477456; 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=HBMCNSa4a+AReIUFX7/nPT/pd9bL8KLMQ3ahjP9iaXY=;
        b=ZSWr8bf3ri5vbzrfni0Vx4QZ2OJYFW6coBdf8TTM4mgK6robonPpcrLQ01njC9F5bO
         2IhI2DAGxsCvauFPgqAKoKvsNR6x8Ht1XD9D1EwKokAC+2I31Gx92SsuV/+wmm66PA49
         4hxE4/XziekCeK0WKxfYhHIbnDkzk+01NJX3A=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771872656; x=1772477456;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=HBMCNSa4a+AReIUFX7/nPT/pd9bL8KLMQ3ahjP9iaXY=;
        b=foEL9fatO8ldDQjEVKoFFc7wOCzqMhiumpYXJtymUZ5BUp/k4vXMAngLWmKhQgV7TF
         prfkLwbGL9rERnjNl3Ij2AW5XBhkU2oLY83EVnpF3p80+k3CJZ6qKU7LlQJmdTBm5M8+
         xbY6HxZGnFFLl8jzcwFpAQDjYDPR987/lZShaVPse9FhboaHJQs8gfWjyR6Zyc3LVgg3
         pTj2yrc4h4FxbFnusEYlcTRR68tfzIHZDj9Ua2r2vyyyAGoaFHDoVPtBZIPBNQutJATa
         JZOjJk6bL0KkO0RkI8vfk5Mu2a4lULQKIfizO+r+YxOMbmDAyhJbrEByOGV/17Vtc9zi
         Igpw==
X-Gm-Message-State: AOJu0YzQMldfm0dCwLmn2YrdPFbzrRYAYtzrNJGTlQBQa/7MnJKH6fxL
	ix/rwtfZU9PfgKXuzYJngYQFUQwc7a2A2TTVcDPLOK0eAeLXj7lg6dWahaN9/49rCD+sgVGg99p
	nUL0q7rzg443x
X-Gm-Gg: AZuq6aLyZ/ZtbuJiGBRrwyMQM33aStc8cxGsjGj0dzMeu7xDzsnsM6KdRZXChUXu/Uv
	jlUZ9yBff1WjTeQB4TjQb6njiqYJp66hxZRTilTobiznVrnkfwupqEU7THN3sX8FyTC56OWZyVZ
	VcLQ0A+sZHn2nNr8beZ8WR/hpCHrsC5u6TGOvcBDhb09bYdBfEl2OnUmqEyxisIflceuMgasl65
	ZSvwzlKaq1xKViK/1P+aqAVb+yCNGMJrUewWSEOSXC5OlySAfWjqA4WxAK4cl8nrQ9PCO7y7jnu
	IMrMYBxapvRTECsuQK1njXixuX0P2gErTztyMKyRfKA+jcLHZssLBR6wn8WJmczUe0DKwmbSVm/
	4tDrLf2CKAjOpv8YrcmmNC5/RBILbYjQnyj36AqjbsWKRP8NmDcobDO/f88U+F05DsMRlPXXmCV
	iSPGQTi7+9S1SwPXCWQD3kSesqv81oRieSPfDLgffL9/HCdRWtsFy0IBPHcU9sjYngXhBZgk0=
X-Received: by 2002:a05:600c:46c9:b0:483:a21:774c with SMTP id 5b1f17b1804b1-483a95eab7cmr164231635e9.25.1771872655776;
        Mon, 23 Feb 2026 10:50:55 -0800 (PST)
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	Jan Beulich <JBeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Teddy Astie <teddy.astie@vates.tech>
Subject: [PATCH] x86/ucode: Support discrete modules being CPIO archives
Date: Mon, 23 Feb 2026 18:50:54 +0000
Message-Id: <20260223185054.3598305-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

Multiple downstream distros have tried passing discrete CPIO archives and
tripped over this not working.  It turns out to be easy to support, so do so.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Teddy Astie <teddy.astie@vates.tech>

v2:
 * Docs update too.
 * Set opt_scan in early_microcode_load() so microcode_init_cache() operates
   properly
---
 CHANGELOG.md                      |  1 +
 docs/misc/xen-command-line.pandoc | 19 ++++++++-----------
 xen/arch/x86/cpu/microcode/core.c | 20 +++++++++++++++++++-
 3 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18f3d10f20d2..c191e504aba9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - Support for Bus Lock Threshold on AMD Zen5 and later CPUs, used by Xen to
      mitigate (by rate-limiting) the system wide impact of an HVM guest
      misusing atomic instructions.
+   - Support for CPIO microcode in discrete multiboot modules.
 
 ### Removed
  - On x86:
diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
index c1f2def9f99c..ebdca007d26b 100644
--- a/docs/misc/xen-command-line.pandoc
+++ b/docs/misc/xen-command-line.pandoc
@@ -2764,23 +2764,20 @@ Controls for CPU microcode loading, available when `CONFIG_MICROCODE_LOADING`
 is enabled.
 
 In order to load microcode at boot, Xen needs to find a suitable update
-amongst the modules provided by the bootloader.  Two kinds of microcode update
-are supported:
+amongst the modules provided by the bootloader.  Two formats are supported:
 
  1. Raw microcode containers.  The format of the container is CPU vendor
     specific.
 
- 2. CPIO archive.  This is Linux's preferred mechanism, and involves having
-    the raw containers expressed as files
+ 2. CPIO archive, which involves having the raw containers expressed as files
     (e.g. `kernel/x86/microcode/{GenuineIntel,AuthenticAMD}.bin`) in a CPIO
-    archive, typically prepended to the initrd.
+    archive.  Linux commonly prepends this to the initrd.
 
-The `<integer>` and `scan=<bool>` options are mutually exclusive and select
-between these two options.  Further restrictions exist for booting xen.efi
-(see below).
+The `<integer>` and `scan=<bool>` options are mutually exclusive and work as
+follows.  Further restrictions exist for booting xen.efi (see below).
 
- *  The `<integer>` option nominates a specific multiboot module as a raw
-    container (option 1 above).  Valid options start from 1 (module 0 is
+ *  The `<integer>` option nominates a specific multiboot module as containing
+    microcode in either format.  Valid options start from 1 (module 0 is
     always the dom0 kernel).  A negative number may be used, and will
     back-reference from the end of the module list.  i.e. `ucode=-1` will
     nominate the final multiboot module.
@@ -2794,7 +2791,7 @@ When booting xen.efi natively, the concept of multiboot modules doesn't exist.
 Instead:
 
  *  In the [EFI configuration file](efi.html), `ucode=<filename>` can be used
-    to identify a file as a raw container (option 1 above).  Use of this
+    to identify a file as containing microcode in either format.  Use of this
     mechanism will disable both `<integer>` and `scan=`.
 
  *  If `ucode=<filename>` in the EFI configuration file is not used, it is
diff --git a/xen/arch/x86/cpu/microcode/core.c b/xen/arch/x86/cpu/microcode/core.c
index ea0b35c4991d..9b8d1e09cb98 100644
--- a/xen/arch/x86/cpu/microcode/core.c
+++ b/xen/arch/x86/cpu/microcode/core.c
@@ -767,6 +767,7 @@ static int __init early_microcode_load(struct boot_info *bi)
     void *data = NULL;
     size_t size;
     const struct microcode_patch *patch;
+    struct cpio_data cd;
     int idx = opt_mod_idx;
     int rc;
 
@@ -783,7 +784,6 @@ static int __init early_microcode_load(struct boot_info *bi)
         for ( idx = 0; idx < bi->nr_modules; ++idx )
         {
             const struct boot_module *bm = &bi->mods[idx];
-            struct cpio_data cd;
 
             /* Search anything unclaimed or likely to be a CPIO archive. */
             if ( bm->kind != BOOTMOD_UNKNOWN && bm->kind != BOOTMOD_RAMDISK )
@@ -851,6 +851,24 @@ static int __init early_microcode_load(struct boot_info *bi)
                    idx, size);
             return -ENODEV;
         }
+
+        /*
+         * If this blob appears to be a CPIO archive, try interpreting it as
+         * one.  Otherwise treat it as a raw vendor blob.
+         */
+        cd = find_cpio_data(ucode_ops.cpio_path, data, size);
+        if ( cd.data )
+        {
+            data = cd.data;
+            size = cd.size;
+
+            /*
+             * (Ab)use opt_scan to inform microcode_init_cache() that
+             * early_mod_idx refers to a CPIO archive.
+             */
+            opt_scan = true;
+        }
+
         goto found;
     }
 

base-commit: 5eb84d6c992cf4e81936872c441b649057947442
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 19:00:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 19:00:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239334.1540766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vubAY-0004uy-D9; Mon, 23 Feb 2026 19:00:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239334.1540766; Mon, 23 Feb 2026 19: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 1vubAY-0004ur-9t; Mon, 23 Feb 2026 19:00:34 +0000
Received: by outflank-mailman (input) for mailman id 1239334;
 Mon, 23 Feb 2026 19:00: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=ndCc=A3=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vubAX-0004ul-8x
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 19:00:33 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id eb86a1ce-10e9-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 20:00:30 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by IA1PR03MB8263.namprd03.prod.outlook.com (2603:10b6:208:5af::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Mon, 23 Feb
 2026 19:00:26 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Mon, 23 Feb 2026
 19:00: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: eb86a1ce-10e9-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rhYZHL/rNQPtFAZeFPWct/y8iNWup5v1cF5/fDPcykWAYTzfLktYrX3JnJ57NyewD88qj8mvU2q4Cvd1QtyP+kaVQh9Qkju3zTQkzuE2MS+D/DFf7ArSz8Ut6W+B9SJQdBID8ArwWOxpmEFwoBY0m4YbF78N1raxKGuIanaUFhFxFgw4e9QzwUIV7QbN5Qj4u+O0QTAnqXRXgapGO8Bxxx5KW3xv4CZHuwQZT+7KmRj/ixOs26s3dwCu8sQEjNNMY5+GC3gTh0X03I0tICxS6fosLYu5dAQIgMF8y4YMGNX8YbtHrdFq2WQpicCn9dUpl9IQkAM3IgNSopUwFDoqwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Ib1f9QBLGjD/v61YoZiiOIvTrgkbf+TPCvCpl3nyHDg=;
 b=KgJc9LraQnI6xUa8s2QgU2wHtFoXXLApMDy81yqaXoYouNaE9jrHdwJzpZvhZqB2aLwSc0+czAaBXtvKJBnuBFY9KM0ejfna1ik5VNQLBFWl92MNeLl4Z5yj2v4HDUsHmQFxnvXEdw0iF1pE3gsdZ26ctaCy/u0b6NTWa5c2CDOJngOeTRMKacGebwyKgKPQK7Z0qP8DGqYQB5Alok2hIS3Q+dbg2FlPIQGweQZacU1C25zMdhg2GBlsTNM4Ppg1ik7kvOp7VXGlXfvSKfCXY0roYxstU+gliQMnU7Eq8RWyVriON0C+ILX6ImRE0lwp7Pht7wSPSUCmp+TqFAklXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Ib1f9QBLGjD/v61YoZiiOIvTrgkbf+TPCvCpl3nyHDg=;
 b=VJ+sq7GtTZOkTPyRHSJIsYRsTIrr1QTfyw/DpQ++W7dLli1e2E54W0RXmUtSDc5I3QeNuHTRdAv57k8hDPKsykorPuvNstTsXcAlAMA8dng4XmZJr9++VPIkm/mZlTjMpt0nSVtoP/zOsGYDwhMESiw1Sxy4PNpqDsKFFzaTwGE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <1d85f83d-45c9-444e-8db4-3e0962aad0a6@citrix.com>
Date: Mon, 23 Feb 2026 19:00:22 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH v2 1/2] x86/cpu-policy: move CPU policy library code
To: Jan Beulich <jbeulich@suse.com>
References: <4bd68e41-e665-4992-9d3c-0086bb5195ef@suse.com>
 <7c06bd5e-fad2-42cb-947f-6749f647b068@suse.com>
 <d8eb4220-da82-43b3-b0e0-9d006f68877c@citrix.com>
 <e5e75e36-a383-4506-8e59-288faeffb614@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <e5e75e36-a383-4506-8e59-288faeffb614@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0264.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:8a::36) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|IA1PR03MB8263:EE_
X-MS-Office365-Filtering-Correlation-Id: a41dfe2a-98eb-4d2b-6d07-08de730dce03
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?QTZXa1ljdEw1VHQ3YklSY3pvV2dRL2l6N3U0TklNOW9YV1Bma0pOY0p4d0hs?=
 =?utf-8?B?cEhwWnhRbDUxdkJUL0E5SW1KSFdDSnE4WitFb05WMUtpUkFYcnVxcG5Xa2kx?=
 =?utf-8?B?UjBBWXZmRktLMzc2L0Z4TVR0aHZ3a3I3YVdzTjBsRGx4MVoxVWt1NW5LclhT?=
 =?utf-8?B?N3F0ZXM0OE45VTZGVE4zL2N2dUFKMVNFa1pqSTMwVGo3ZUdkdVdNeFhhbDc0?=
 =?utf-8?B?cDNzbzNEYytEQXMxcEN2dkhKVXpvMmxHeXdCeVJjNmQ3aEJQdVZBWmozcEtL?=
 =?utf-8?B?UkxTTGg4YlhZUHAvSFBnQWIwREJmWmlhSjF3czNaRHo1a3pGTitlT2FMQVRZ?=
 =?utf-8?B?SWppcGFvbDh5aW82QUxYeWVaRlprcGhsRERaUjU5eFNzWFdxcERzUGxKYStG?=
 =?utf-8?B?dTJtZTlqYkNvTEhiZUt6WklyUEt5a1F3bHVmTTR5UTYvOFZpc3VnUnM1TE1k?=
 =?utf-8?B?dFhTVVdOWk9EbURySXpFdDBVMUNGL290MXAxQng2dk5OWkp5QTJCbElPWGdG?=
 =?utf-8?B?L04vLzBYVGtVYVplVkdzdnRmLzB4TlBqMmxRU3Zpa0c3VVhpdVRZcVNBRm8v?=
 =?utf-8?B?ZUJCUjdGaXFBL2t5Y3NaRjhZWUNBZmRWUDB4dVJFcE5Zd1hrZFd0TkFMUExL?=
 =?utf-8?B?T2E1RVVhZ0FJY0pxTUFZN0FycVEwS29oM1VKZUZoNG9tZUh0cEs3VE9vQmZJ?=
 =?utf-8?B?RzNRVlVETEdIQ1hoc2xuOTM1WWQrZFlXNWROeUMzcURId1BIM2hUTHBoLzgx?=
 =?utf-8?B?RFN2U3BaUi9nZFh1aFFkOTVwUUt5SnBCbUtzTEVlRUMwS3UzQlRScXZpd2tn?=
 =?utf-8?B?ZFY5L0dWVHY5VXMveG5lcVd0UENPV1BZMm5CODEzTU5uaGk4c1g5VEpCYSto?=
 =?utf-8?B?OVBBYU9rR0p5OTFyd0t0R3JlWjJlU0FMU0dQSzBKbitDS0d2V2JiTmcydUFZ?=
 =?utf-8?B?R0sya25sMkpvQi9Pamh5MWlsRWtTTHhZbjdpYU5WS0FjQUpTc2FkejQ3NjBB?=
 =?utf-8?B?VWpZVzQ4YzlWZ1o4M1dSREVOVkZhcEdQREFzNmoyRXBqejI2YjVWb0Q4dzUw?=
 =?utf-8?B?elA2bHMrWEMra2UySHhQSFFCeDFyVlcvWVNFU2ErTm9KVnR3L3ZHT3YyRFd0?=
 =?utf-8?B?UUtvUEYrUVJhUlllai9lREY0VjlZdGc0MjlxVFpIRjZxbVRCaEwxdjdlcHhq?=
 =?utf-8?B?VWFtVzYxYTZTUzNRUk1jandkRnNiZmprTmE0Qlh6NkRTZmVNTVBBNjQrMDlY?=
 =?utf-8?B?M2VpdHIzb3RRc3VWUXVQNzZpc01Dbk0veEVsOHVoM1p6M0ZXYWdhQ0FlMGlz?=
 =?utf-8?B?alpadWVCTUR0NzhGYVhKTFU2Zk9WQ1RrWEI0WkJvakxBOFJyQ2wzYWNtSGY0?=
 =?utf-8?B?WndSSW1jdnM3TDB3SFBsaXFaK3UrRmQ5eXhxR09BeDRFSkI0UlFTOTZONWZJ?=
 =?utf-8?B?NXEyb21xQnQ3eW5rVWJKdW9wcnNucnMrcUFXSGNFd1VKazZPRklxa2VaR2c1?=
 =?utf-8?B?Ym9IUnhLSVZVTmFpRmF3M0RtalFDc3BqRDJtUkRsK3EvbzBZOC9HbDhXWU53?=
 =?utf-8?B?d1pGeTZUMXN0RXJFRThveGJJdlc2bzRIeU16NGd2QjFKOHhMang1OEprM1kr?=
 =?utf-8?B?Q0FKWnc4Zk9DN0ZoMDY2QlZuYlpQc2VLblE5NlNSbDNrMFlFK1oxeGlUUHFG?=
 =?utf-8?B?U0dOMm9SbFkyVDNFdEdEMjJKN096VnpFQlJWcGs5ekk2Z0trSkNBZEhOSFpu?=
 =?utf-8?B?cldDR1dMcDhNcDQ2WXRHLytMMy9WY1JheEszRVNiUnJJRkZjM2lSUWJ2YTJN?=
 =?utf-8?B?cVpqUDhKRjkvSUdTdEFpbWVud1U3WE9jRVpFRjlMZ2dsQlBZb0pIcDl5TWhX?=
 =?utf-8?B?TVdTS0ZYOEFwOUQxdmxSVi9xTFVnbFdsMUp0MkVEaVJESWlidGJSWTJLTmxq?=
 =?utf-8?B?VHJNUkNiRUhiUmVJdm5nZFN6T2xZaWE4VUNGV2VHWkRWRWtQVXEycGZFVnF1?=
 =?utf-8?B?OHBTYW0ySmp0Wm5qcUx6c095Rm1ETWtzN0s5ME9vR1I5eUduWXU1aFM0cDZq?=
 =?utf-8?B?eVZ2d3FVSmhLaVBNck8wVnRuWG1qSWFLWXhJdDYyZEthdUV0eGRrSE5nWis5?=
 =?utf-8?Q?jqTw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?blFrQzNRYjh4UkwrOFhVUmltWHBmTWh6eUVZQzVIWmt0WUs3c09xaDBXMlE5?=
 =?utf-8?B?TjF5ZU1RS3U2UEJKSEhrVGFpT3A3Y2JsWENaektTUWRlbFIyL3VqRlJ1dTEw?=
 =?utf-8?B?OWpJQzk1NmpGWTgzaEJZcmdnM2xBbmV2TCtmdmw2aTRyOXhSSTZjVnNScWpJ?=
 =?utf-8?B?bXpYbjNMUXZGdGRnbE1ESmJaM3JLQjlaZHJMbFdqSStQYjhmTjhRbVRjbHZR?=
 =?utf-8?B?WFphN0hDT2lPRWwrY0JTOEZramRxcU1CZHNwOUZqVmVHYm85QmV1bFcwanF5?=
 =?utf-8?B?RUsvMWdQMTF4RDVnV1VNcCtNN3lIODNuR1c1TC9yaUNKeVE2NE9weUVURXlB?=
 =?utf-8?B?TFB6MjV4Y2pBTFJRbWdnWEFWOGg5dk1iNlQxMU45Wlo1NFU5T1pzZDVtRHUy?=
 =?utf-8?B?OWErOUpjMzJKZEg1VjZaWFVWUy9QSW1TalZQRU1LclNqMkRqdUh5OEVtRDBy?=
 =?utf-8?B?bXhUUjZ5T01VMlZ1RE1OVlVaSGRsaE00bitVQlJjZ1FXdDloRElXT0lLbFRJ?=
 =?utf-8?B?ODBtall5Q0kyQmhDUXZ2U1hjMzRVQ0tJRCtvTVZwOHVJelk0S3RRTjFieGdF?=
 =?utf-8?B?Z1FXY0dNOGVhLzJTZWxWWnFOSmk1TjVtbVZ2L3AxWkhrcGxzZDFJNWI0NGhO?=
 =?utf-8?B?eUFLVWdjS0NScHpSMEN2M25sY0I2WjhkcjZOUlpSZC96WHV5dmpJNE9jZGxs?=
 =?utf-8?B?OXd2d3MzR2o4bkQ5VTgrZE1CWHV5ZUd5Y0JZT0VsRWF2bEVBNXB4OTBubWRm?=
 =?utf-8?B?enEyb2h1UzNqS2UycERyUlNxNG8xZ2htQ25XS2dMR0JoRGlGdUF4cjhuU1Fl?=
 =?utf-8?B?VHZQU3NleUxNWVBaR0ZqOFlIWUVEbk84VXpIdUdmTjlVcmtvRFpoN1JjdnpD?=
 =?utf-8?B?OHYzWDlxUFRybzBOY2tsd2xsc3FkYzFhZnlXMUN6Zm5xQzNtcC80SW84d2oy?=
 =?utf-8?B?N2xQUFBRbzN0Y2l2SEZjdnFwcW5JSFlnU0g2NGVsQ2lXZFd0NDFRSGRwck5W?=
 =?utf-8?B?b20vRllLcVBjTXk4OWxFUDdPT0VwUENXaklQTHdBd0szQXl3TXNnT2lib1pS?=
 =?utf-8?B?R3BxdVBLWHVTVy8rTVdtcGorTzFvQ3NwM1JGeEpIUVQzN3hzTXBYMEkwRXg3?=
 =?utf-8?B?NmQ5bHhIbXhQMysxUXNJVm1iWERmaElNYkQ2cVlmTFgxcWQ3eHVFSzNKeVI5?=
 =?utf-8?B?RHFzR1BRY0xaMU9XTVIyUmxDTmo2WGpFWWh0bzd5UG5Dck1ML0hid1NENlJt?=
 =?utf-8?B?dHlhM0ppUFlWVER3NlZDWENta3JXVUliK2JCM2lMc0tMQ1dISUJjQWdUSEkz?=
 =?utf-8?B?MVFaQWxSQVdHdEFEL0hPaU5WcE9CazBTVTYwVFU0bUNOb2J3NDVCdHpBSFk2?=
 =?utf-8?B?V3hlbzlOVnY3VjFRNCtLbUdyNDZRK3BVaGVvTVBES2ZyMVlaSmZUUWM1Z2Ja?=
 =?utf-8?B?UXFGREkzY3AzYnozbnp3TXZ3UlRrQWovQ2YyNVJ3VVJaT2lSNWh5ek1HNzhQ?=
 =?utf-8?B?N1pzdGYycE1QZE8xd0JTKzJOVldiQWFlaFdXMEw0cnFvenhWTXRycG9TNkkz?=
 =?utf-8?B?MkhEdnNWUDdNSkJhUDVsWlBGVHl6Q2EyMENkSVg4cUs5K0x2VlFTaWxoN1g0?=
 =?utf-8?B?djBoMGphVjB6OXlmM05TaXJWTmFBd2s1aG44V3NBNmEzMjYwY29oazQxRVpz?=
 =?utf-8?B?UElQRW5NMW5UV3FFTTBuOVFSdWViVU0zd28yQWpuVVRUVTlZRC9tTHB6VUEx?=
 =?utf-8?B?alo3eE9JR1Q1SjgrckRmL0Z3SXdWYlJ3U0VXbDRaY0hKTnVTNXpZRGtTK1Bi?=
 =?utf-8?B?YVBVaVBYWHBsVFNxaEJYSVpmR2JLa0F1dFlkSmNzZkZvVStJYWNETGlML0dk?=
 =?utf-8?B?N3g0K1UwSUVRRGIzeVRtUDJOZ2RtQzNXemJ5WHRubzdGS2ZXYWtmYVpqazI4?=
 =?utf-8?B?KzYvMFFLMmVUM2hldzFRVXBNVXc0OVE5RWRkTytEbm95b2t1ZThjM281WVhs?=
 =?utf-8?B?L2VLSW1CN0xib0NSTkUwWjFUc2g3aW85bEVkcTZxR05wbjAwMElQVUx2a3Vu?=
 =?utf-8?B?bEpoSWFITC94SzVWb3RjOEZHb29wUHY2NnloTVVuNEFkYmFzUUlHNmg4OTNl?=
 =?utf-8?B?MWVKUVcrQ1NuUk5IeFlaREZ1Z1djNi8vcFFhbjNudnlBbndyT2pQY0dXbGJx?=
 =?utf-8?B?R0M4TkZJdEQvSllOMnB5aTZuQ29ocXMzb1NxcHNrNDVOa3ZoNnFRWVI3TWRr?=
 =?utf-8?B?QVNrS1RFL0hEK0dKV3VVdWgzVlU4eHlZTjh5aHM5elhERkxiNUF0azRXWG44?=
 =?utf-8?B?akpmd0JwbnN2VUoxUlNvRzMvN1BwNlA0TG9SMTRKOVdTbVFWeW5abGJFVEtX?=
 =?utf-8?Q?DoH+RELf6cAzaD8k=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a41dfe2a-98eb-4d2b-6d07-08de730dce03
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2026 19:00:26.2108
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 3KtA+ZiEk9hl0fZrbEeAP7atHdTPOgVJ3X837xYVPqJhEPbW4Jgty4o6t0A54x+pGOnThxoy/S1wIzdNJ457n0+mYEAWbDCmwmzzGVM1QSg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR03MB8263

On 02/02/2026 4:26 pm, Jan Beulich wrote:
> On 02.02.2026 16:47, Andrew Cooper wrote:
>> On 07/01/2026 2:17 pm, Jan Beulich wrote:
>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>>> index 0203138a819a..be6c76d2934b 100644
>>> --- a/xen/arch/x86/arch.mk
>>> +++ b/xen/arch/x86/arch.mk
>>> @@ -4,6 +4,7 @@
>>>  export XEN_IMG_OFFSET := 0x200000
>>>  
>>>  ARCH_LIBS-y += arch/x86/lib/lib.a
>>> +ALL_LIBS-y += arch/x86/lib/cpu-policy/lib.a
>> This wants to extend ARCH_LIBS-y surely?  Is this a rebasing oversight?
> No, this was deliberate. The functions here are different from those in
> arch/x86/lib/lib.a. We don't need to fear collision with "common code"
> ones. Hence I preferred to use the more "normal" placement into what's
> passed to the linker.

I agree that we don't have the explicit ordering requirement that we
have with arch/x86/lib/lib.a.

But, it still reads as bogus to be putting arch/x86/lib/cpu-policy/lib.a
in the non-ARCH list.

What difference is there having this a little earlier in the linker
arguments?  Nothing AFAICT.

~Andrew


From xen-devel-bounces@lists.xenproject.org Mon Feb 23 19:06:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 19:06:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239348.1540775 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vubGD-0005Xu-33; Mon, 23 Feb 2026 19:06:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239348.1540775; Mon, 23 Feb 2026 19: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 1vubGD-0005Xn-0J; Mon, 23 Feb 2026 19:06:25 +0000
Received: by outflank-mailman (input) for mailman id 1239348;
 Mon, 23 Feb 2026 19: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=AVG6=A3=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vubGB-0005Xh-9w
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 19:06:23 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bc18753b-10ea-11f1-9ccf-f158ae23cfc8;
 Mon, 23 Feb 2026 20:06:20 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1771873570518818.0693383257893;
 Mon, 23 Feb 2026 11:06:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc18753b-10ea-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1771873572; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=E2rqNKuo9tSP8cf2aF7BPj2m7f4i+KdP+rTrc+mWxAO/PD1hKDOB1tLbS4EUjK7CTBqApIrMS8f4MVmsg/Kh9Q+RW8AKDuUIZ9zvwM1tDAQmnnZQrEX+xHHSizR0+QnGnal8n7LWAqhMxX5KZUjL6ouPh2w+LNTp+lzJQ697G4o=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1771873572; 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=k8MYDNYCfZAeLkeED8Y20w4FpWY+mPctCe9JrfHHJ+g=; 
	b=crb2tdft9QOUaiqmcvjePInv2Am7h+MGaFWCF9qvP17puWEFkmq1VITLBtGEv8BQnmgGBEHJc/fwIQfbApwzWeYv0iPDI3tCJaRx3kug/o4hK/doHdJ2mnO2M0PuN8JQdtRjBI4G0CTRftOyCMCDckojygGgs1ejCbDYogL5KVY=
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=1771873572;
	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=k8MYDNYCfZAeLkeED8Y20w4FpWY+mPctCe9JrfHHJ+g=;
	b=Au61OqPphyVLUF7NrdwYvRKtQL8c+G6GfnxUUOrGZeGiuuOg6TBpfMBsgiak7oMw
	JBrbhjtOwJ6rmgnX85br3DYNSUBMzhrpyB68lwC3igkXOANYTRVRP97dMjwbwsL1aWY
	lVF6VlLp0DA+Ud9hT05EWJcal1D0QcPil2lDWbi8=
Message-ID: <4dfa33e9-e80b-4660-b5ae-bcb11517d506@apertussolutions.com>
Date: Mon, 23 Feb 2026 14:06:08 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [BUG v2] common/domctl: xsm update for get_domain_state access
Content-Language: en-US
To: Jason Andryuk <jason.andryuk@amd.com>, xen-devel@lists.xenproject.org
Cc: Chris Rogers <rogersc@ainfosec.com>,
 Dmytro Firsov <dmytro_firsov@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Jan Beulich <jbeulich@suse.com>,
 Julien Grall <julien@xen.org>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
References: <20260218190855.7272-1-dpsmith@apertussolutions.com>
 <1b0a2f66-e03d-4428-a9c0-f26f84e7f348@amd.com>
 <e402ca27-75ca-4046-8e30-305c1c8d3db8@apertussolutions.com>
 <082425f5-2d05-4db5-b2a5-d8a621302f9b@amd.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: <082425f5-2d05-4db5-b2a5-d8a621302f9b@amd.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-ZohoMailClient: External

On 2/23/26 13:01, Jason Andryuk wrote:
> On 2026-02-19 07:15, Daniel P. Smith wrote:
>> On 2/18/26 18:04, Jason Andryuk wrote:
> 
>>>> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
>>>> index 29a7726d32d0..2eedc639c72a 100644
>>>> --- a/xen/common/domctl.c
>>>> +++ b/xen/common/domctl.c
>>>> @@ -860,12 +860,9 @@ long 
>>>> do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
>>>>           break;
>>>>       case XEN_DOMCTL_get_domain_state:
>>>> -        ret = xsm_get_domain_state(XSM_XS_PRIV, d);
>>>
>>> With the initial NULL deref issue, I wondered if this wouldn't be 
>>> better off modified to drop the d param - 
>>> xsm_get_domain_state(XSM_XS_PRIV) - and changing flask permissions like:
>>> allow dom0_t xen_t:xen get_domain_state;
>>>
>>> That would gate the external call, and individual domain permissions 
>>> could be checked with xsm_getdomaininfo(), or a new hook if you don't 
>>> want to re-use.
>>>
>>> But as your approach avoids passing NULL, it seems okay to me.  It 
>>> also doesn't change the flask policy, which is nice.
>>
>> That's a plain nack from me. Whether it is viewed as a pipe dream or 
>> not, my goal continues to be to work towards enabling the ability to 
>> have a truly disaggregated platform. In the original architecture, it 
>> was envisioned to have multiple toolstack domains, each responsible 
>> for a distinct set of domains. In terms of implementation, that would 
>> mean multiple xenstored instances, each with a purview over a subset 
>> of domains.
> 
> I don't think what I wrote is at odds with your pipe dream.
> 
> My main concern is passing NULL as a domain.  I think that is wrong, 
> beyond the fault seen on ARM.  In domain_target_sid(), I think the NULL 
> dst was mistakenly matched to dom0's NULL src->target.  src->target_sid 
> is 0 from zalloc, which is not otherwise initialized and invalid.  That 
> is returned.  Later when sidtab_search() can't find it, it is remapped 
> to SECINITSID_UNLABELED and returned.  That silent remapping is dubious, 
> and it points toward unlabled_t should never be allowed in any rule. 
> Maybe it should remap unknown sids to a dedicated invalid_t, but maybe 
> invalid_t is already supposed to be that?

Understand, which in my initial approach I considered instead of setting 
the d to NULL for DOMID_INVALID, I was considered changing it to 
dom_xen. This effectively says you must have permission to wildcard 
query xen for domain states. I opted not to include it as I was able to 
rework it so that NULL was never used for xsm_get_domain_state().

Your last statement is correct, unlabeled_t literally means it is an 
unknown object. Therefore, writing any rules for unlabeled_t is dubious 
at a minimum, but more likely an invalid security statements. The 
suggestion to write the rule was not meant to be the solution, it was 
just a means to help allow people to boot their systems for the time being.

v/r,
dps



From xen-devel-bounces@lists.xenproject.org Mon Feb 23 20:41:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 20:41:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239364.1540785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vucjh-0000nw-Dx; Mon, 23 Feb 2026 20:40:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239364.1540785; Mon, 23 Feb 2026 20: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 1vucjh-0000np-BQ; Mon, 23 Feb 2026 20:40:57 +0000
Received: by outflank-mailman (input) for mailman id 1239364;
 Mon, 23 Feb 2026 19: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=9i6L=A3=linux-mail.net=dt@srs-se1.protection.inumbo.net>)
 id 1vuc2T-0003eB-Il
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 19:56:18 +0000
Received: from mail-4323.protonmail.ch (mail-4323.protonmail.ch [185.70.43.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b4b2b1e3-10f1-11f1-b164-2bf370ae4941;
 Mon, 23 Feb 2026 20:56:13 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b4b2b1e3-10f1-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-mail.net;
	s=protonmail; t=1771876572; x=1772135772;
	bh=FC1oBOhuZpUKRYw5lx0dBf68onwW79KH3ApPc2koKCI=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=Zyyw9Kg5CFJ0af86va6+BcEVFZSXG6UvzTTKPOrW8JOIog+azGfiCBkl6IHQLApgg
	 mi/WqF78jhHDOCYy9xd6Yz4m5+kK9RA3L70bu0hMfeb72i2S7XjnB7adJ3jV8pF141
	 6wT3iQ0aG6EZiesL6nx0iWTfQeP3seFpptnSJBO2Vk7fjwO0Rd7jB4RJVQxJsscZ5C
	 gknfH26jLVXSB1ZlkZd+VfzLWSuCJ+pHdORd33hhw+p3nwwwomrLqqIEQAJvCxU83q
	 KPniOChXjpfJhE7iz53s/icndqW90Ubc0o6c3qvD65x/3t2WhxsE4Az3g/JXVZMS8q
	 X17DiYxypc/tA==
Date: Mon, 23 Feb 2026 19:56:07 +0000
To: jgross@suse.com
From: David Thomson <dt@linux-mail.net>
Cc: boris.ostrovsky@oracle.com, sstabellini@kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, David Thomson <dt@linux-mail.net>
Subject: [PATCH] xen/acpi-processor: fix _CST detection using undersized evaluation buffer
Message-ID: <20260223195602.17122-1-dt@linux-mail.net>
Feedback-ID: 176297775:user:proton
X-Pm-Message-ID: daf5c815bc2d790a7f192f23fabc62b9ff00444f
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

read_acpi_id() attempts to evaluate _CST using a stack buffer of
sizeof(union acpi_object) (48 bytes), but _CST returns a nested Package
of sub-Packages (one per C-state, each containing a register descriptor,
type, latency, and power) requiring hundreds of bytes. The evaluation
always fails with AE_BUFFER_OVERFLOW.

On modern systems using FFH/MWAIT entry (where pblk is zero), this
causes the function to return before setting the acpi_id_cst_present
bit. In check_acpi_ids(), flags.power is then zero for all Phase 2 CPUs
(physical CPUs beyond dom0's vCPU count), so push_cxx_to_hypervisor() is
never called for them.

On a system with dom0_max_vcpus=3D2 and 8 physical CPUs, only PCPUs 0-1
receive C-state data. PCPUs 2-7 are stuck in C0/C1 idle, unable to
enter C2/C3. This costs measurable wall power (4W observed on an Intel
Core Ultra 7 265K with Xen 4.20).

The function never uses the _CST return value -- it only needs to know
whether _CST exists. Replace the broken acpi_evaluate_object() call with
acpi_has_method(), which correctly detects _CST presence using
acpi_get_handle() without any buffer allocation. This brings C-state
detection to parity with the P-state path, which already works correctly
for Phase 2 CPUs.

Fixes: 59a568029181 ("xen/acpi-processor: C and P-state driver that uploads=
 said data to hypervisor.")
Signed-off-by: David Thomson <dt@linux-mail.net>
---
 drivers/xen/xen-acpi-processor.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-proces=
sor.c
index 2967039..67a4afc 100644
--- a/drivers/xen/xen-acpi-processor.c
+++ b/drivers/xen/xen-acpi-processor.c
@@ -379,11 +379,8 @@ read_acpi_id(acpi_handle handle, u32 lvl, void *contex=
t, void **rv)
 =09=09=09 acpi_psd[acpi_id].domain);
 =09}
=20
-=09status =3D acpi_evaluate_object(handle, "_CST", NULL, &buffer);
-=09if (ACPI_FAILURE(status)) {
-=09=09if (!pblk)
-=09=09=09return AE_OK;
-=09}
+=09if (!acpi_has_method(handle, "_CST") && !pblk)
+=09=09return AE_OK;
 =09/* .. and it has a C-state */
 =09__set_bit(acpi_id, acpi_id_cst_present);
=20
--=20
2.34.1




From xen-devel-bounces@lists.xenproject.org Mon Feb 23 23:21:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Mon, 23 Feb 2026 23:21:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239385.1540796 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vufEd-0002Uf-W4; Mon, 23 Feb 2026 23:21:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239385.1540796; Mon, 23 Feb 2026 23: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 1vufEd-0002UY-T2; Mon, 23 Feb 2026 23:21:03 +0000
Received: by outflank-mailman (input) for mailman id 1239385;
 Mon, 23 Feb 2026 23:21: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=9i6L=A3=linux-mail.net=dt@srs-se1.protection.inumbo.net>)
 id 1vufEc-0002US-0C
 for xen-devel@lists.xenproject.org; Mon, 23 Feb 2026 23:21:02 +0000
Received: from mail-106116.protonmail.ch (mail-106116.protonmail.ch
 [79.135.106.116]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4e7663a1-110e-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 00:20:57 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e7663a1-110e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-mail.net;
	s=protonmail; t=1771888855; x=1772148055;
	bh=zZ6o690imIyQK5YKLNY2mgRufwrVGddSMQy0XRCV9pE=;
	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=IbFxcHeFf++gjrGsoyN/jsH0tyk5Q5uJZ8fDuAHYLGTvfxX/cqaQBimWeYBmAS3ff
	 h1Y2YMZ/4SoKCYvqhkDfWZVUzExLrCvvbZskUhIdRPj11qSu8Uj9L5lVcb7nOBp051
	 x5SIaKY/7aRAQxZaGbImG4j4XA9fGUEstmNpmYCG0y8LAFelBswvGUt62H2taKumV+
	 aQ1jVOtZmGdYSpLxqeGwoxYK1Y9QVPzm/YfuG8cqZ4q7/qL73q1/Tg3EJK8qW9bnLz
	 iVfOknEXXm3geJt5kETdimcG80lbVA5QYghtDl9nwat4HY0cTp5YJJ9TVQ34ueBpLO
	 d6W1tQI+ABl8Q==
Date: Mon, 23 Feb 2026 23:20:49 +0000
To: Elliott Mitchell <ehem+xen@m5p.com>
From: "David Thomson (dt@linux.com)" <dt@linux-mail.net>
Cc: "jgross@suse.com" <jgross@suse.com>, "boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>, "sstabellini@kernel.org" <sstabellini@kernel.org>, "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] xen/acpi-processor: fix _CST detection using undersized evaluation buffer
Message-ID: <Gq4_Jcq53jjUk5tvLe3lydIKvn05aKmNjEN1dMVF-AWNNWMDR-xdYGLuLT_wcmOw8FAXV-ZCByuC1BDjJXMiAyKTX-P9w2bjsTvTLhxMbD8=@linux-mail.net>
In-Reply-To: <aZzAYEo0S3pP4HUG@mattapan.m5p.com>
References: <20260223195602.17122-1-dt@linux-mail.net> <aZzAYEo0S3pP4HUG@mattapan.m5p.com>
Feedback-ID: 176297775:user:proton
X-Pm-Message-ID: 5e1005990ce03e26f257d4135ee4089fd8b48255
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

> I had reported this a while ago.  My workaround had been to allow
> domain 0 to have maximum vCPUs, then offline most of them.  Very
> suboptimal, but did drop power use/heat generation.
>=20
> My next testing opportunity is likely to be in anywhere from 1 week to
> 2 months.  I'll be testing then, though the patch may already have gotten
> in.
Thanks for confirming. Your max-vCPUs workaround makes sense and forces Pha=
se 1 to cover all PCPUs. Let me know how testing goes.

DT


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 02:56:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 02:56:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239398.1540806 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuibL-0001gR-9i; Tue, 24 Feb 2026 02:56:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239398.1540806; Tue, 24 Feb 2026 02: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 1vuibL-0001gJ-4b; Tue, 24 Feb 2026 02:56:43 +0000
Received: by outflank-mailman (input) for mailman id 1239398;
 Tue, 24 Feb 2026 02:56: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=UmFV=A4=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vuibI-0001gD-Ow
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 02:56:40 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 6f702bf1-112c-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 03:56:38 +0100 (CET)
Received: from BY5PR13CA0010.namprd13.prod.outlook.com (2603:10b6:a03:180::23)
 by PH8PR12MB7302.namprd12.prod.outlook.com (2603:10b6:510:221::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Tue, 24 Feb
 2026 02:56:31 +0000
Received: from SJ1PEPF00001CDF.namprd05.prod.outlook.com
 (2603:10b6:a03:180:cafe::38) by BY5PR13CA0010.outlook.office365.com
 (2603:10b6:a03:180::23) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Tue,
 24 Feb 2026 02:56:33 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 02:56:29 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 20:56:28 -0600
Received: from ubuntu (10.180.168.240) by satlexmb07.amd.com (10.181.42.216)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Mon, 23
 Feb 2026 20:56:28 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6f702bf1-112c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=mKVS0zoHwyohzxxOxXQ6igxFQcOVF4BcKJOlhJluK8V9vQNOt0HR2LJhIKS9QBEp+WVCpKdVbKonxxpqXYv9rjqMXZX8aNceCtyMJwMarjyuhboq65DWx+pp4XbPESl7qF0BCzPxJv5KvOhsQPQ0pVtMi0cEArBqXGz9bWconhe6DTUjJith6iQ5j0KOiH4HXm6wVC+F0wLqu6BxI845aV2f23jnnCb6jEx5XVbTkg0CSKLXl9cYXcIgoiJ6u8fgWSSGAIA9NFNzs50NmBY64kKba/4UU180TZShu7VTd8bxUFoN7TSn5e4Z/Mys2KVZrsTD+hK4u8TLfBH3SFPKrg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=bfSi3q/0TeAxgrtNMbtkA4Lz1TtEnBoTHve+xivNZf4=;
 b=mlrgnM9xXS6j6eRDUOEN3mRx5qomP57RaRt2OebgLNnkGXYJuT7hkb1Ix9oLyD62TKNiqWbT+J2SRbWePPAIK2q5kHODVlkZrXAPPYdQ7R8IglkkaTImNiL1JSkZQOfMOhtxzuh59eKdZJ8z9fAa4+mGqz5npcxJ3SbEJ6FTNQS65mLi4O4bv2wtaRugi3ui3uIoOLI0gipHRv8aqBpHs4FNKBlC18ifbu0Z3yiF7OKU1NGgnuuiOoHzny7apOuByxm+Bs0MEuproeorGAT+TFVc/GslhknMHT2DaQW/R+c4vQ0Qe0xLCWpSHUBrffxBCxlJjaTcJvqB4kUaC79hiA==
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=bfSi3q/0TeAxgrtNMbtkA4Lz1TtEnBoTHve+xivNZf4=;
 b=x5qk3fYwWHRtVgbxRKdGDJi2cb2taQ/9d0YPUVZrrOEVxI2aK2vj+J0xDd9mb35UCkxcISRb0OV2i/3CcKbCUqciCUqOQV8ShCG5mdNcLm2xXOBSrGNdAglgQavm5Tms5C9j0gKbJ+Z7F+CzeV7ua4yeuVTXkuVklHGiLUOwbwg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: 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>
Subject: [PATCH v2] vpci/msix: check for BARs enabled in vpci_make_msix_hole
Date: Mon, 23 Feb 2026 21:56:24 -0500
Message-ID: <20260224025626.26909-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CDF:EE_|PH8PR12MB7302:EE_
X-MS-Office365-Filtering-Correlation-Id: 2dde853d-faa0-4429-0e6a-08de73504f54
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?us-ascii?Q?UEwd1J7TRcUdGmfH2tpPhbL/NtKGNwvvNtcQLmKsFtZ2fkW6ZYdJe5Ey1uO9?=
 =?us-ascii?Q?k/Mn/UXjRSyG8W8rR8kg6hl/r0GcL+bDP+P4HVaUrM8Ua5Jtid3X9t9g/L0e?=
 =?us-ascii?Q?hWekrsFZX3OWxzK9K3sXWgnajArscPRVYFOQa+gdlyLzurvarzUg1wuNkG+I?=
 =?us-ascii?Q?Aiw1zwG2z3oE10fUndlEF7mWsd5wpOqCr2p7ncN6RdQRZ6haHvNNZqCQY+s4?=
 =?us-ascii?Q?i1319VUWA+Pqpq21a5d5RtRdGK7CqVvqVB780tFqK/4r9t9/ARqojQOHt2NU?=
 =?us-ascii?Q?Af0Vb1cBakGz2FVoEdoYKzKlxGl1g99QH0mEpEx2n9hJHi/jiSiRYHGu4D8O?=
 =?us-ascii?Q?uiOpichlZ2rna/lTj6UerhfPWtgb//4MPy9Wu4DnSlGyYUbLRqDj1q5XDLgA?=
 =?us-ascii?Q?2PRgVji7iH5wk/HzCOtHF68dxHxNp7Ibbqc2nmd/C7dYgVnIqRFoUWHiaJVZ?=
 =?us-ascii?Q?OuC2XHA2sKbf+i0/WP41wa9VoWbX8R2R3Sk0KLtfQ5jq2wQ9A+RPE0845BcA?=
 =?us-ascii?Q?XvkcRjAmx/Z5I5fwmYpu7y/Vuz0VkSsxRkMTvxsVu/HfOxBHcO+NILHiNAEv?=
 =?us-ascii?Q?F+vTaq8e7LG5AFzilSs/m3HZYOICUipRnWMg2xBNJ/tOSKrk0W4zq54b2E4z?=
 =?us-ascii?Q?LU04u8SP61/mtr16RQ4bWJ6nS/r9Fa1OQ9clfg4cbEHOZuRArjDym4eYKAUx?=
 =?us-ascii?Q?8KJJgaS76b/5SNOIM/ViaQnD7bFp/A2lr2iKXXhKLLrAcnJc68hL+3jA0iWF?=
 =?us-ascii?Q?bZ0CMMRFIRZiKQjp75KZzKfx+VtTDatb7oK1fBmOYyTaDpYCG9c/B6Gi9YY8?=
 =?us-ascii?Q?0U3JkGe1h/wjSRi4YE6R9IcIAtzoomSZN+/Dm1Ctxd/PCsZPZZv0Px/+FsfT?=
 =?us-ascii?Q?/BtAx0+hPyKW924x8BdESA6RxHWroyXq22K/T8JOognkSgYQjBRgoaiYtXvR?=
 =?us-ascii?Q?OMwg2wFI3eAFDSLPkFg0UOJzqz4F2GUTvNy2qSMSZxGVcslsKq85HAVC6fEh?=
 =?us-ascii?Q?gR0LzN5Z6LtNHUtRYFYpJR/RASQEN62k6byY54C6etwONvcDOEP6ssXAwnsS?=
 =?us-ascii?Q?F1UvCcGQinVfSIMmNDWLMhPwNE2Qrj2npURRA2pQJELYVLJqzwVXuUrvgXsD?=
 =?us-ascii?Q?enbl+jcfUBGNhFZtZ5MWkZuxqPJTsAGEotp+iWdvUk9KVHhaplxgBDGOdu5Q?=
 =?us-ascii?Q?Ift+cwX4/5fuQDVJyc+XZZisiS66H1IOBIBOSiscy9XXbEoVkihS8SqC+llH?=
 =?us-ascii?Q?BRO7NucnWBPB6EHJgDxpjwQVpfPvg50DLzQtvHfk5t7lN/FooN0BjiUowDqR?=
 =?us-ascii?Q?oKYgJU0U5xPwJSe8T6/eRPDZV8OEjUqATg6SrBWi0VxsUU3vhhG4cS67Yd8c?=
 =?us-ascii?Q?lii1yaLN4WWARIifvHVCqnsFDK9jHrusWWgPjEAsSnbODV7MTKMsTILxrkOf?=
 =?us-ascii?Q?KS/lfKzomQttqjfVSMDdb4pEPtYlYJ4+3XgdruQwaAi+ehxaEwSxtsUAM0zk?=
 =?us-ascii?Q?PTjBiSdlND1lbd/Pm3e44BSCH9+tsZHBgwFNGuUn83IKPBcJdmsD5kfKx2Wi?=
 =?us-ascii?Q?aWpURbQtvw6DL+Hv0VF27oJM4/luRFFcx+ukbADx8nGbOBqztwYUSugKH8U6?=
 =?us-ascii?Q?xCoiJVoDdHAr512YaOHDEbqoRvb9dPkWlzvO2jSKBRGNFjOj+RkvigM+7v0S?=
 =?us-ascii?Q?fiMog0GAaKHHXpPg0dH/MReU9gs=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	RoQ28HEgNm2YvJoLexAJOqMHApwnq9fOsNirP9mYc0/WBuuyfbmIPfxbEXPeCBAFvE5/4P4SPM7YMIdO4btZQKnplQHGlJeWXp+6zvKGmcLrm7jXnwXi3UfxlZi+RE5LUx8OD7qtq1fRpOx4NMKuLE54N7EzKGZMevLvKQ1BsvBJdj6DRQ0E8ispc/yjkI4vRkf2iRMsiWscfVWWhCRILTuAL69vnaLqqL8vVdMS3wsbIQLugukjiYqRxOrTMtGeV6wOHhVqG1dP0Bmany+DbLmnb50LpzgA13V6WjH60gX5TI1H3Fvac0oq4v3oNrBwQWUmzUbnHeMEx1vCPqUEjGTF7phsQ9+4zE8U1RZNrxYFXfsm9gmlRZ9auuqL6N9QKpEUo2jIPRU5rXJHxiplraA1bhWk6+FR7lIkBzTmzXhobJYxZRtQxAiqzw4oVdYW
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 02:56:29.7310
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 2dde853d-faa0-4429-0e6a-08de73504f54
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF00001CDF.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7302

A hotplugged PCI device may be added uninitialized. In particular,
memory decoding might be disabled and the BARs might be zeroed. In this
case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
unconditionally attempts to punch holes in p2m, leading to init_msix()
failing:

(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 attempt to punch holes if the BARs
containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
for checking if a BAR is enabled, and add a check for the situation
inside vpci_make_msix_hole().

Move the vpci_make_msix_hole() call within modify_decoding() to after
setting ->enabled.

Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2344925375

v1->v2:
* new title, was ("vpci/msix: conditionally invoke vpci_make_msix_hole")
* move BAR enabled check to inside vpci_make_msix_hole()
* introduce vmsix_table_bar_valid() helper
* move vpci_make_msix_hole() call within modify_decoding() to after
  setting ->enabled
* split typo fixup to separate patch

v1: https://lore.kernel.org/xen-devel/20250812151744.460953-1-stewart.hildebrand@amd.com/T/#t
---
 xen/drivers/vpci/header.c | 26 +++++++++++++-------------
 xen/drivers/vpci/msix.c   |  4 ++++
 xen/include/xen/vpci.h    |  6 ++++++
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 739a5f610e91..6a28e07a625b 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -122,19 +122,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];
@@ -164,6 +151,19 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
             bar->enabled = map;
     }
 
+    /*
+     * 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
+
     if ( !rom_only )
     {
         pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 516282205a53..142cfbae59d5 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -598,6 +598,10 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
     if ( !pdev->vpci->msix )
         return 0;
 
+    if ( !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_TABLE) &&
+         !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_PBA) )
+        return 0;
+
     /* Make sure there's a hole for the MSIX table/PBA in the p2m. */
     for ( i = 0; i < ARRAY_SIZE(pdev->vpci->msix->tables); i++ )
     {
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index d6310104ea17..8ce730791080 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -267,6 +267,12 @@ static inline paddr_t vmsix_table_addr(const struct vpci *vpci, unsigned int nr)
            (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
 }
 
+static inline 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 regarding the size calculation of the PBA: the spec mentions "The last
  * QWORD will not necessarily be fully populated", so it implies that the PBA

base-commit: 5eb84d6c992cf4e81936872c441b649057947442
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 03:05:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 03:05:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239410.1540816 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuijp-0003Q9-5n; Tue, 24 Feb 2026 03:05:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239410.1540816; Tue, 24 Feb 2026 03: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 1vuijp-0003Q2-1e; Tue, 24 Feb 2026 03:05:29 +0000
Received: by outflank-mailman (input) for mailman id 1239410;
 Tue, 24 Feb 2026 03:05: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=UmFV=A4=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vuijo-0003Pw-DR
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 03:05:28 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id aa3b689b-112d-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 04:05:25 +0100 (CET)
Received: from SA1P222CA0069.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2c1::29)
 by CH2PR12MB9542.namprd12.prod.outlook.com (2603:10b6:610:27d::14)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Tue, 24 Feb
 2026 03:05:21 +0000
Received: from SA2PEPF00003AE6.namprd02.prod.outlook.com
 (2603:10b6:806:2c1:cafe::97) by SA1P222CA0069.outlook.office365.com
 (2603:10b6:806:2c1::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue,
 24 Feb 2026 03:05:17 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SA2PEPF00003AE6.mail.protection.outlook.com (10.167.248.6) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 03:05:20 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 23 Feb
 2026 21:05:19 -0600
Received: from ubuntu (10.180.168.240) by satlexmb07.amd.com (10.181.42.216)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Mon, 23
 Feb 2026 21:05:19 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa3b689b-112d-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=UrKocwPgNOjSINh/R5GWrr5tVCG5dCQXmzJdlclzeEKg/JDPBpvoo/nlFqGOUZG7g+KpOH1w9cxIYSMhMTLSSPRi+jp6c7oSRQfHgSm6uUvqFQCLovnqo6fIA4/YLGATDi64bxSINxkseR0N8oTk4Frjyeci1rx/ZLYWFkI1Pw0IkMGJevFqZwL1ilzIXEeG2dJ1b7jTnd6dmz6wCxmyokL/qBgQXYSLJY4wip2HhqTZ+mbeZgodyKt+6UVOMJyuRG1B/X+NBXApVy5czZg+NplHFcbeS+rnNKjS1onJUTN/RW1T0h0PT8iP4YDujd/WTut+DFLUnnVAYhJLhN0r7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zqKURGGCLOhSOOZZLDdqmhevzpWzHw0X6/XVJSMdc0A=;
 b=GQdQD1JEupm0FUAVH1C5za/jcETGcu/n17DaQTZhvDuSq1j2rdAjjY5jEBhU5XNfzCHXMX2LuKcPeQdmowxN34/+7emFKOZpN70oLOPmWuRewMi5LjrFGQ2c/mKiXCA82+BRPma3RaSPNIy8Ob36f2Hef1d5PZwUSqLPzB6GnTUqb4tQfLXdxhkdH9k0CIzd452UiOAfNITJZVllgPADgesiYOBpvOblWB+n5UBRfzxA4BTIC+V9+GXMUMuz34gdYIx57D0pFNllu3oElJUjw3qPCxjIjNoD4bYjVEmK0JEjLDDpmUvY0yIVMx2Owk/jG/QpsXQy26KCyClZLhH5ZQ==
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=zqKURGGCLOhSOOZZLDdqmhevzpWzHw0X6/XVJSMdc0A=;
 b=1pUHtnvZ3bAAnQbaQUwH4ivsCWyMDNxQO/v4gBaB7c3P0hFPpUtkrnSiPyseB9EqiIIIf5ra5po659ItXJpSVlZlyyrxt7HfCpxWg+SyTLYZV+ahBMQE/8a7W/S3Md1ED6HRIIawzgAnvTBrp+Km+WicWqv8hb0GwfwSJVdezqk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
From: 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>
Subject: [PATCH] vpci/msix: fix typo
Date: Mon, 23 Feb 2026 22:05:15 -0500
Message-ID: <20260224030519.27104-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SA2PEPF00003AE6:EE_|CH2PR12MB9542:EE_
X-MS-Office365-Filtering-Correlation-Id: 6218ed41-a955-4d97-9f5e-08de73518b84
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?p6aUqkayEUWXuFMhSUbFZtc/lpQdtJWrprFXNbninND8FYomh74osJ2B2CCF?=
 =?us-ascii?Q?LXO5dnpuhhS1Udc9pg8Kq8W/V3XsG+9Sr1RSmlbEm+4PfWLrmOUqNAfRfRNm?=
 =?us-ascii?Q?EPYN7imPp9BmnpFZAdl54/ZIViYIOg+/J7LIDF+1Eh64UvcH2PMSWo3cCnri?=
 =?us-ascii?Q?yr+lTN56Ju9hBvZwHN/jblwPMQmURSAE2hazxgSHyl9WECAWVDPcwa/ZDzwO?=
 =?us-ascii?Q?IwbGtPY5HsaNyyLji87rdSsLl2A0GLggLi4lp6GUMT/tR7wv1eWchyivxO4z?=
 =?us-ascii?Q?e0aqiKp7sHn1tWw/Z6Q5c1hnwogKwBecC3+VpABUgwvIjkAlzyl7IqiDcHDz?=
 =?us-ascii?Q?Go6C4QIQ3RgTMcFG1x3H6G1/c1exAARF4PkFgE3KNAjWI+Ukm360Y4J4xQVr?=
 =?us-ascii?Q?Uf7pbkKOEP4tz5gu/cweyax8yZEhjW48BaEHEQdkkCEyu6MnCaKn8iH6ldGa?=
 =?us-ascii?Q?HKz8qJVg7WBRwGs9mQ8PTkyt24IFvyFcRRkFRbmYw8aHQmJbIM0gIZxY/yhm?=
 =?us-ascii?Q?CunRk4PbcAwdr2RopomLVMkBlUpQoTZ88D5EBpbQ36Bd5S9UtcVYnZfiZrWK?=
 =?us-ascii?Q?Td1d+HOwo7ImnAJ71xGtH4hAxrcHXyYgpWK5E2t8nfvMUzCdR+rAy4gLoXSD?=
 =?us-ascii?Q?2vR9U9DdFOz1SwiPK3kdtvzIH2AqlnENI1pkxeXLymAfizPPkHvNF1VdWMnl?=
 =?us-ascii?Q?VG5XPprtVHAy+/SR14qqCn7Fmbtx2TBPj6gE9zOnKpBabgKNCbZ8kp0lLwTr?=
 =?us-ascii?Q?Xerojh+WxOBLenqeM/a6mQBWqPXhzNP1RmrrfC+fCnxVdxck7gQvGtarUGH8?=
 =?us-ascii?Q?1Z/eQQPvjpn9p19DQUCmRTL3b1AzlP9xbmAvNL+ls+TFjfxreu+nU1mgMOYL?=
 =?us-ascii?Q?J7u7vuRUXAkDb1Ef5Vqvbr1eAy6/gY9UmT5iwqbV4KMycM8HbzpDksL0ogPW?=
 =?us-ascii?Q?DBqhhzgWj92/Shpkg5utaBmEFw0qAZC7djdChSPqMiixEuaqm8b1L2jRSXqB?=
 =?us-ascii?Q?4zrnig68o3WMEtZp7YDjORKHB1QAOVJ6gd84mCnN80kUlD6HsuC3JOb2MW5j?=
 =?us-ascii?Q?s8EyL9fraGV/ctIrC9uZ3LTpa4zgGime5bgwJ3kRwI2aeAkPcySHOAnEeeeS?=
 =?us-ascii?Q?3O67gbOwDNpXsXOBoMuceqJ+D2ynSVGoJXd0qqjU0IVH/lFLv58jIGb2R0Qw?=
 =?us-ascii?Q?3WjtT/nufYN2E8dVXWiFBidb74jXdkzMtgeg2PpJMOxWKXH/60v1/tZq+5Jq?=
 =?us-ascii?Q?FgxyEVUKWNScx+YWZ0nsIKyLfxamSd/WEASQtc846ft71fIHHPpG5Ueyfd+c?=
 =?us-ascii?Q?Kq3DHTDocP0QJIZMfjxD516DDkVcC2wwDiqljOGzW0MF18W/MLqSJop6+HAi?=
 =?us-ascii?Q?6+HqrZTSGRcrDda/ilq5jShr2Rx01iFZgyrI1rsSDfkSaRZN1x9Ultn+AYAU?=
 =?us-ascii?Q?y8TiCDQrMGVNo46+3OSZEbaXUdALYJgk6AjpJ626inPxANRFIyj8CwfdpDsk?=
 =?us-ascii?Q?uZPavjl20gWneiMNtbYcb+uWcpjZNnRUpWKtdu1hprwck3JsDxzoPPafXjdW?=
 =?us-ascii?Q?mfQHa5E0p4MSMHTSSHyGUO/8ZZ/etlD0IityKoHtRMWS7vNhy/1ah8Po0yut?=
 =?us-ascii?Q?1a2p16tMTi1kVzT6t6RejlcVJIOhxaW9Jp+9yxFeR3tR6j3oM7mMaUPvVZlo?=
 =?us-ascii?Q?XEU+Ng=3D=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	kKRe8VYD3mszEvpbq9zFBu6dIyCGZ7HDhenuPFb+Z2LXcCOBEngGqfFlg9tbAeejQj4fV9DZYJfSm/r2wSIr4rkCN/YbtNWTGD/N0mK+YLKHSthUmogIAMsrS368HYtw99xh31EASlS75XmbQvGL5EH1P0Im1qxudb6AOyyfqRNSJSc+pXWspTHaCupustpRrhGYucZ1OMfn6OYVa6HjWWue4+sscQEK6Wzrr5JWRWkqTsqNOx4HPM6JkoDnntte+8KmVGHEYexpMh/5OmHCR2K6GZ7eKiHLxfXaM6s2+Ibi1SwnGEdfOPZD2mJAkcZA51XwtWVwZaxMhSWo1i7VFC9O/Z4sz3IKhipbjFrGg3LqFIpEh4her1HAKECuo19K1Wdb1kR+U+gnfcjO+3q+bq1v6R4vgOT7gxltrwbYTxH0CvS8Q/oSFl/IcvYLkQWw
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 03:05:20.2752
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6218ed41-a955-4d97-9f5e-08de73518b84
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SA2PEPF00003AE6.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9542

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
 xen/drivers/vpci/msix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 516282205a53..eaf8fae970f8 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -795,7 +795,7 @@ 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);

base-commit: 5eb84d6c992cf4e81936872c441b649057947442
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 06:25:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 06:25:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239396.1540826 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vulqp-00024O-Jb; Tue, 24 Feb 2026 06:24:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239396.1540826; Tue, 24 Feb 2026 06:24: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 1vulqp-00024H-GQ; Tue, 24 Feb 2026 06:24:55 +0000
Received: by outflank-mailman (input) for mailman id 1239396;
 Tue, 24 Feb 2026 02:25: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=C1TO=A4=smail.nju.edu.cn=kexinsun@srs-se1.protection.inumbo.net>)
 id 1vui7M-0006iV-8m
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 02:25:46 +0000
Received: from smtpbg150.qq.com (smtpbg150.qq.com [18.132.163.193])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 141169ef-1128-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 03:25:28 +0100 (CET)
Received: from localhost.localdomain ( [116.172.93.199])
 by bizesmtp.qq.com (ESMTP) with 
 id ; Tue, 24 Feb 2026 10:24:26 +0800 (CST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 141169ef-1128-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=smail.nju.edu.cn;
	s=iohv2404; t=1771899877;
	bh=Z3Aj/5gqJxLV2xf46st4IBcHNWPExSd6g2RATw3la0o=;
	h=From:To:Subject:Date:Message-Id:MIME-Version;
	b=RgBTbs9BpmSAGN8TybkiyoGDfzh3Q8tELoowkRyGcvcYcWIrzH6ycxQnE9vD/s0M7
	 vay3q+HcqllDlUV9+PzCA3LjMwwp9vPsi7C2xWtURadrkWY5rKG4Q6M7b34/QAJWwy
	 X5BiDgc1bNWegk7oJKedWNSiaMrU3fbaUrGvY2hY=
X-QQ-mid: esmtpgz11t1771899869tfe798ebb
X-QQ-Originating-IP: FIapmEkRFnkqJa29yYNc8kyNQ9O0np8tOiJdKBZzaXM=
X-QQ-SSF: 0000000000000000000000000000000
X-QQ-GoodBg: 0
X-BIZMAIL-ID: 9509144588414941481
EX-QQ-RecipientCnt: 15
From: kexinsun <kexinsun@smail.nju.edu.cn>
To: jgross@suse.com
Cc: boris.ostrovsky@oracle.com,
	tglx@kernel.org,
	mingo@redhat.com,
	bp@alien8.de,
	dave.hansen@linux.intel.com,
	x86@kernel.org,
	hpa@zytor.com,
	xen-devel@lists.xenproject.org,
	linux-kernel@vger.kernel.org,
	julia.lawall@inria.fr,
	xutong.ma@inria.fr,
	yunbolyu@smu.edu.sg,
	ratnadiraw@smu.edu.sg,
	kexinsun@smail.nju.edu.cn
Subject: [PATCH] x86/xen: update outdated comment
Date: Tue, 24 Feb 2026 10:24:24 +0800
Message-Id: <20260224022424.1718-1-kexinsun@smail.nju.edu.cn>
X-Mailer: git-send-email 2.25.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-QQ-SENDSIZE: 520
Feedback-ID: esmtpgz:smail.nju.edu.cn:qybglogicsvrgz:qybglogicsvrgz5b-0
X-QQ-XMAILINFO: MQYXLRAkMyaewPsgnE4c4ZNd2McHPQcyK+76J1vlzjHT6FuGa/DmEy/H
	2RQ0bQm/nF9UpvWi5xKSijJ2Em/sfEBLtQ8DaNQi14DnU7oQuLcoMuC79A5/LeeQdNOkVzl
	c4gwKSkWW5iXArv3JoMK1iZr2B+8LZDy+iAykyDrDq5g3HMGRlwdBqdP8jts4Fr5yen2q/u
	83fo5c2igw3XTKes4ba/a4ILje1hCh98Fj9JH/VdjOInsS0t3Hp5pliXB/0Vhx6R/YYGh7X
	41UttrcbzeQ8WuAZQgWVJk3QFVV9gnnYqcqsOdfxRgnrZxUGgEIRym0xlxF5Zy47ixVbOEO
	NFsP7EAuYextENmkxzszM6wA8FQSG3Tcn4fCpXyVA8dVvCa8I2G4dQEGU/0qnA0GQykARzk
	5SYctJUWPLaY/jZb3hINK/TPjfLiywzgoOUp0sbX/M0INuRwzhrapbadjsL+Hf95FkOBCnM
	VtDe5TBLhzFKir2BKz+05SPqzX4IFXBM5RIsfp/9OvKT7qri9i5vk8l0Z2b6O/v4gxPTqdj
	FjNOYcQtSZTk60fxOm3kp2Z2+SImHReaEExvWPkkXz/m0NCVJMAYrdXVoKC1bl1qLxgv9oA
	hCsPccIpa8TVqBUZFyKnPWUO8vuEYvkh/X80V8PEClwBd7RluIjXx5Qwf0w2+zkrYjQbLll
	j6ZGGWctz7SOrKd0tGvdq5r2RfADNBAT5qFJlxAskAzD0YW4Azm2TTZC0/pfK3za4lOzaLv
	mE2InteGWmLsmtqSvogoc1Y0ur1ZrzuT4BW6tkW2uBN93DEjVg04Q55sqMPyPNKwoQzFwYz
	6yZZaQgPsB0tqx4s3C1llWvos6TIqnUAs47kYaVvB3WQFQAtbVM341YJs9FYIcNoYiDTGmO
	BBar0sgIESkZqMdW9nnO+v6dkLkQPqkMEuqVglI27X88pKBUrO3W9VkkTzoPjpWTCbOwtmt
	RcDeTTTibgHL6ZpyBMpzVxsoHI4Irj38jkRQgC59qV7BZAcOx1G6ZpQtQPPRgGrLOjC2k0r
	NKt+8RLfTjfmKIqQugeqnA/bwGcP6TJQG/YvFidMhvNnnfyr28/3ZVHT6E8Iv6cY/9NayU2
	S9uD5ltWsQxgPokGwZMMuLgbII1nfHBxm0S/xpNG8jAqX1Qn0XktEQs74sNxmD371J+PCN8
	CSap
X-QQ-XMRINFO: Mp0Kj//9VHAxzExpfF+O8yhSrljjwrznVg==
X-QQ-RECHKSPAM: 0

The function xen_flush_tlb_others() was renamed xen_flush_tlb_multi()
by commit 4ce94eabac16 ("x86/mm/tlb: Flush remote and local TLBs
concurrently").  Update the comment accordingly.

Signed-off-by: kexinsun <kexinsun@smail.nju.edu.cn>
---
 arch/x86/xen/enlighten_pv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c
index 6e459e47cafd..eaad22b47206 100644
--- a/arch/x86/xen/enlighten_pv.c
+++ b/arch/x86/xen/enlighten_pv.c
@@ -392,7 +392,7 @@ static void __init xen_init_capabilities(void)
 
 	/*
 	 * Xen PV would need some work to support PCID: CR3 handling as well
-	 * as xen_flush_tlb_others() would need updating.
+	 * as xen_flush_tlb_multi() would need updating.
 	 */
 	setup_clear_cpu_cap(X86_FEATURE_PCID);
 
-- 
2.25.1



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 06:54:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 06:54:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239432.1540836 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vumJX-00060Z-Py; Tue, 24 Feb 2026 06:54:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239432.1540836; Tue, 24 Feb 2026 06:54: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 1vumJX-00060S-Mm; Tue, 24 Feb 2026 06:54:35 +0000
Received: by outflank-mailman (input) for mailman id 1239432;
 Tue, 24 Feb 2026 06:54: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vumJW-000606-7n
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 06:54:34 +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 abfb35b7-114d-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 07:54:32 +0100 (CET)
Received: by mail-wr1-x431.google.com with SMTP id
 ffacd0b85a97d-43767807cf3so3830482f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 22:54:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483b8791a0esm34612375e9.0.2026.02.23.22.54.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 22:54:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: abfb35b7-114d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771916071; x=1772520871; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=y75Icv5dwgtdzwQ3i04DyRU2j4QoigItK8pWr55UK70=;
        b=e8isjFeikwOrvP218XcgS1ln4bQyYvVvZ87PepUu/Sd6FAyA3vzt2afoXhii7kGdo0
         v2cmIc2t89G/gpy5MSOuZkLsmD7aHUYeRpGVXZy57su6HGmmOkepNYnd5NwngB5XZo+P
         ERLlwb/s8WPozBPLJa6lJ6wC7spVNm8d5kxwUT0SpAcSLyVj0YsceL0MLlAGXC/9mTpn
         2N/c35Kk4ex2vEA+o89R/eAXie/h6tABFNdL+zdzfFBepXYUEbDZdQyrNYHswDNISnXP
         kKMXDoAHHiS9A14MNL70Xegvfew6NtcpMknlh6qamRnU7C3+8lSoBzaOA4U4rk0LAVB8
         icmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771916071; x=1772520871;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=y75Icv5dwgtdzwQ3i04DyRU2j4QoigItK8pWr55UK70=;
        b=ITsR+cjFZNZYnh0APvgI+RB9AxHevwf6widRgey8qZHmeKnqpaeW/fl3CsSDxQU+hy
         sSDmU9q2pU6A7o6oBFuJhBmbJbIgr8uqy3PxNx3hOQk4M1TgoXmrEgX78fhom7d+H3DU
         gCKICIN+/S7J9wTLppEun1lH+s3051Jw8OwvHQDDmebdRKpEXeEMj7AI3es4dZ2CmAal
         9F1cEeGc2ACK9q3hP96B6sVb/XW/mnzql0CisM1j2fzNEoNAMjIwpomN3zY4zajZfvA+
         kS5vSqZqO+tBXv0VxfM5+0s0bvJ6cvcDoZAjNUCSAlshLavv+U429KiFRDwfN254ZRnU
         iF8Q==
X-Forwarded-Encrypted: i=1; AJvYcCXGWp9W/+yH9R+dNc0Zb0SMGOA7PXNx01LENRs2d3BB8I8hyahqBECxOeoiuROAkQfE1W6d882g5co=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyR5cGrA1130eX+3vdXyQbi6rqSYBIRUtQWBClOHTE8UmmaF0K1
	8XPNpMvZRADfEkCMjBu/rPheYF/BF2pQnuaotTf+OOjrFuv/qEwBvXecXYbGLrKHNA==
X-Gm-Gg: AZuq6aJ6jDVSmraBPZs35PhHaJ1LgTlADqjvNi6VZ4GrqsibQ0oTm4UDey280sN8uhX
	zOoXUXSoELIU2pSUWxe3JqivmQgcYzZbedpJ6kUcjoxMyu09BWvFedLpVPA4hj2ae/kta9A8KvB
	k5yCWfhmwIw5pKefybAX/nFgc7j/VTZShzUq+I7oqXBsN2iVqqfnOqn0k/rsI24JXq91f2o/xNB
	7AyLBt7tKkIBt//AteXpk26Z/1HC//v8hccF3e6Cwesd6FiSeJVCPjekwyuuith+UCZhdEHVeaq
	q1wcq+8k3fOcEEIjbFeMKY0eNyW2SXnMGqRFxu3YD+LYQKounlmwrtrTcVzuigiPs5M5HlckL+x
	sw49hZ7h34LDColB4mPmxrm+NTxjcDt8RwqoWGrFlFFwVnRLrLdNMOLEHdXJSWcnLInP9ybi/Ek
	5GmGsT0ZoK3TUJRbW8CvESJ4411j0+9i9Pel7WNZGaluRCzmNtsl5khDrhP4VJTFMcWZ4UviG/J
	iWVQ3V+KUVXX692AKavpPMmew==
X-Received: by 2002:a05:600c:4454:b0:483:80b0:b245 with SMTP id 5b1f17b1804b1-483a95f89c2mr201439505e9.9.1771916071452;
        Mon, 23 Feb 2026 22:54:31 -0800 (PST)
Message-ID: <11c2f97e-efa8-46ea-8605-4ce6cffb9683@suse.com>
Date: Tue, 24 Feb 2026 07:54:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/cpu-policy: move CPU policy library code
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <4bd68e41-e665-4992-9d3c-0086bb5195ef@suse.com>
 <7c06bd5e-fad2-42cb-947f-6749f647b068@suse.com>
 <d8eb4220-da82-43b3-b0e0-9d006f68877c@citrix.com>
 <e5e75e36-a383-4506-8e59-288faeffb614@suse.com>
 <1d85f83d-45c9-444e-8db4-3e0962aad0a6@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: <1d85f83d-45c9-444e-8db4-3e0962aad0a6@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 20:00, Andrew Cooper wrote:
> On 02/02/2026 4:26 pm, Jan Beulich wrote:
>> On 02.02.2026 16:47, Andrew Cooper wrote:
>>> On 07/01/2026 2:17 pm, Jan Beulich wrote:
>>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>>>> index 0203138a819a..be6c76d2934b 100644
>>>> --- a/xen/arch/x86/arch.mk
>>>> +++ b/xen/arch/x86/arch.mk
>>>> @@ -4,6 +4,7 @@
>>>>  export XEN_IMG_OFFSET := 0x200000
>>>>  
>>>>  ARCH_LIBS-y += arch/x86/lib/lib.a
>>>> +ALL_LIBS-y += arch/x86/lib/cpu-policy/lib.a
>>> This wants to extend ARCH_LIBS-y surely?  Is this a rebasing oversight?
>> No, this was deliberate. The functions here are different from those in
>> arch/x86/lib/lib.a. We don't need to fear collision with "common code"
>> ones. Hence I preferred to use the more "normal" placement into what's
>> passed to the linker.
> 
> I agree that we don't have the explicit ordering requirement that we
> have with arch/x86/lib/lib.a.
> 
> But, it still reads as bogus to be putting arch/x86/lib/cpu-policy/lib.a
> in the non-ARCH list.
> 
> What difference is there having this a little earlier in the linker
> arguments?  Nothing AFAICT.

Indeed. The sole reason why I'd prefer things as presented is that putting
stuff in ARCH_LIBS should imo be the special case (i.e. requiring a special
reason), while putting things in ALL_LIBS should be the default.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 07:09:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 07:09:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239441.1540847 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vumY5-0007rt-VM; Tue, 24 Feb 2026 07:09:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239441.1540847; Tue, 24 Feb 2026 07:09: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 1vumY5-0007rm-Rg; Tue, 24 Feb 2026 07:09:37 +0000
Received: by outflank-mailman (input) for mailman id 1239441;
 Tue, 24 Feb 2026 07:09: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vumY4-0007rg-K9
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 07:09:36 +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 c39bc682-114f-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 08:09:30 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-4377174e1ebso3939168f8f.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 23:09:30 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43986aa2f84sm2168087f8f.7.2026.02.23.23.09.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 23:09:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c39bc682-114f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771916970; x=1772521770; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=6obWbUe9NXRXbPUKlTjb4bP6VzgrGD5LSdYUSNe6moU=;
        b=JtGXpPjaeG9b8wlsXYl/nzQHYg/gWKRyjaTU4EpBMu40CBm8xAYXp6k9UlvhKyaUAL
         /zN3WTKTpFmfxjjDW07S8Vts704QhhqYIQsrvYL5XOrzgTcTHROlGlcsS9ZJbeOk9nPn
         CzHDnXX7wca8zYlINgcPWIfmAm4ezxHsABk3TVl/noS4noMxZ8cr8TgmbXgdL8tPvWeh
         UPhUfozWOQFReCwSvcma+jqC3Z4sVmCexPOoN9kd5fOZ1kBVLcSzqNlCpzLPHU675xDH
         DqAE8nvPyipGrIyCH7EW71GdYnhAp2609MwEdya9o1lW9WDNEo7l/QWVkKGuPBaN8AlC
         Vu7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771916970; x=1772521770;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=6obWbUe9NXRXbPUKlTjb4bP6VzgrGD5LSdYUSNe6moU=;
        b=XDce6UhiOqNF4dh4lQuEI6AnK7C0/wLUh+CJL7zCSfBCf8LiIu1WajVv9CTfU4hNKG
         QR8asq/FThXDSYa69SVppY7iOz9KaY1UPH2D/LhWQjgeisOulRPXh98Ui82p/EIuagjT
         wk8KiyI0KB7/9E4ncDkNWCo0QNgzFNHRjljm7uFITZV81x84QcLnmROGKxOX//gCesM4
         DDJT5pje56FmoHJWZB35ogEPGU4KVfIrhXSiwgU02Qm81icUNMeu9dkciOly6bCqFHFr
         qrgWzrUg7L7KPilXb8Itq0Silc/iQ5wUBV6uRpXKLfX/NtwE8J7lGl+a05KqdgxPlqqh
         sOzQ==
X-Forwarded-Encrypted: i=1; AJvYcCWOE3pKKHunwC3khwJTSUufaUFppQZbtNmzI83AQ5iY/h77q76GlmXkq9yuqGvu+Hf8zOpWL96rFtc=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzMrz3nuwFJhyZJMC4dZYHKqYxI5XLq1k/Kv7q50Yg91gDWi4D9
	GsMCvX3ATBszXKmvdK7Ijv8HKuhcfOaRTbmGSWwu3F8pcZqdPGC8AB3UKTKqlUMGuQ==
X-Gm-Gg: ATEYQzyqjjhm3LP+gQ0m295df3JJetKEdrYNp9YcviunpSa4D4oThBXElGSTDk1jtJX
	GJciwHyNRsg0Pz9eLRT/NLUGYhi9wo7bDLMe2sEF0gxFX/pS3dJ5DpC+aqfh93AuQ6BpHhH/rPb
	0DRZZ/dkEMMy6EOALAsnE3xXTwqiK6wlJ6qjmtwwduV+EZ8BAIqND/sEStj2nHllcSUog7OHM5F
	cLwOyO3kEMJjT6R/SGLgKB1dQSGSe8/X3nko1AlVNgkWpTaEvxN79wqBQhsCLvVcLx3Msk2ekFz
	1hv7LryItEpXlqHyoVcpiqnDbxpqR/LTNBn3x90yTIH81oPUhUNrVvzz6/O+bsitIX+2y/Frjwh
	oS8KMTUX33/xcZYU030eEGm28RdEtadcTJSWLHWkSQv8U50wl6NiVlSJKVK7/dQ6E3N7JZ5WVr9
	ZnMFvcrWOo3AzJqR9JOu02Hbm/5Oo3fL51SWGjWiqKsHFlfmAC1mfCLfBih6Yhjx2S/UNy9E2CF
	EsY3tAkSa9d268=
X-Received: by 2002:a05:6000:26c3:b0:437:67b5:9bab with SMTP id ffacd0b85a97d-4396f1954b4mr21673714f8f.56.1771916970296;
        Mon, 23 Feb 2026 23:09:30 -0800 (PST)
Message-ID: <671d83d0-fe8a-4da1-af06-a09221a8442f@suse.com>
Date: Tue, 24 Feb 2026 08:09:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xsm: move the console read properly under xsm
To: "Daniel P. Smith" <dpsmith@apertussolutions.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
 <julien@xen.org>, Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260219184503.21918-1-dpsmith@apertussolutions.com>
 <43a90b6f-683d-48e3-b7cc-4b8c6dae087c@suse.com>
 <6ec4a310-884e-4004-b56f-1810f028e355@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: <6ec4a310-884e-4004-b56f-1810f028e355@apertussolutions.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.02.2026 19:49, Daniel P. Smith wrote:
> On 2/23/26 10:22, Jan Beulich wrote:
>> On 19.02.2026 19:45, Daniel P. Smith wrote:
>>> --- a/xen/drivers/char/console.c
>>> +++ b/xen/drivers/char/console.c
>>> @@ -554,7 +554,7 @@ struct domain *console_get_domain(void)
>>>       if ( !d )
>>>           return NULL;
>>>   
>>> -    if ( d->console->input_allowed )
>>> +    if ( !xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
>>>           return d;
>>>   
>>>       rcu_unlock_domain(d);
>>> @@ -595,7 +595,7 @@ static void console_switch_input(void)
>>>           d = rcu_lock_domain_by_id(domid);
>>>           if ( d )
>>>           {
>>> -            if ( !d->console->input_allowed )
>>> +            if ( xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
>>>               {
>>>                   rcu_unlock_domain(d);
>>>                   continue;
>>
>> At least the latter of these two can be called from an IRQ handler, and can
>> be called with IRQs off. Flask's avc_audit() looks to be using a spinlock,
>> which isn't IRQ-safe. (There may be other lock involved; I merely went as far
>> as I needed to to find the first one.) IOW I fear you can't call
>> xsm_console_io() from here.
> 
> Apologies that I didn't consider the IRQ context. With that said, we 
> can't be wiring non-XSM access control paths that circumvent FLASK's 
> ability to control domain access to a resource.

I feel like I can interpret this last sentence in different ways. Are you
suggesting that this effort needs to be dropped, and the situation needs
leaving as is? If so, aren't there options to move at least a little
closer to what is wanted?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 07:28:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 07:28:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239452.1540856 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vumq7-0002JS-Gm; Tue, 24 Feb 2026 07:28:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239452.1540856; Tue, 24 Feb 2026 07: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 1vumq7-0002JL-DH; Tue, 24 Feb 2026 07:28:15 +0000
Received: by outflank-mailman (input) for mailman id 1239452;
 Tue, 24 Feb 2026 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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vumq6-0002JF-Az
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 07:28:14 +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 5e492425-1152-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 08:28:09 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-43638a33157so4799823f8f.1
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 23:28:09 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d54760sm24660629f8f.35.2026.02.23.23.28.08
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 23:28:08 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5e492425-1152-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771918089; x=1772522889; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=SeHk9VCB7wbO+bOOvBB7puZdUQENm13Dj4e6lE/8VSw=;
        b=LZot+N94lCEfESC7cq/lFg7c1KGJN6738HgB9n9qQwQeRi0xz7fbQzfh0tKiMqIryC
         u/7NKYZJBnpGRu5LQa7ItBVtsGXMNrlc8XMTByCV6rBxpqPJc9eFX9QH2C1eMCV6KOLq
         G1/vSRnBrnIarBcsKL44m81W69kPbBvwaRX9QcizTQAMupFKYDvh9OwMbyIejsqpvIzs
         lurPYIO7ifooMROrYkyruoI4wozSOWAQzjRTXHdhqcSkKaTTs8I5zPwT8wEiUexVkkec
         pBFWlnjfUGN3P3izq2gLMUMVIh8MZtPTWZk7wJX0+jfWyn8Qf3bPxsWzdEefiARevvAg
         CI5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771918089; x=1772522889;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=SeHk9VCB7wbO+bOOvBB7puZdUQENm13Dj4e6lE/8VSw=;
        b=Y/78y5mg60haBoY8Maomq/qqKP8g1u7fFrjfV2Ftql8aZRMW6tHdI/YSvDqGXDOFRN
         kDo3xc1aI35OQ/0J1/SeMrRoKqci1ffnhYzwc/WoJ6JxkHZtyUQXao5ph4BpqlL3mx9G
         px5Lh14nHBDnrbacxsXCFxVDMNdMzA56PvwUy5pAe80SHLBzPKIctJ6MQTLZ8u0OSA65
         2hLPh9bGTvBrStC3yhR0u1l5fARRUG22nC0fO6S0Nw+vSXCS1IPaJrSrV2piCxZwxV2N
         NOKXFh139yMHkY6j98Yk5Vkx/t5swopObGGYietqUe58+zmL8v/b1Bt1MejLjYeOAMCB
         ZOBA==
X-Forwarded-Encrypted: i=1; AJvYcCVSbTOLbDrnQlARL3eh4r/qIS6vg0oIqHdCoCJJWrVx3Gl6/Wp3FXHrG8nAeRANh/+RMUqCLNc6L9Y=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwiyHK8l/9k2cVEkzxBm9DPoq1L+3noSaR5p9itx2Bj9tY8Iz7/
	MLfjPfTQwvwml9v7+/107weuKD8ng7vxn4Yvdhah//w4KRYxr0VXYfC3jy5sVM3XUQ==
X-Gm-Gg: ATEYQzyVW0+hp2Ud5bfjAM0h0LMGOIDEaxZRSo96BC+17dYez+R2flJyQcKnUTqJsDi
	MkaLBon0z+26ofH8XzEZNOF3+LDSNprU5RTEG34o7ekSW1ks4QhZGiKIiibe60yPHgOL2b19Dlu
	TzsThNYEcvWI0uc8Iql7TegDv1VfKFViyqMH1PQ9qr8vfeGVRQswtW5eYzwY+FCmkRiSekR9IGt
	i/RFI0rvzSgoibIc9nSwbMteMGLAcjVnrcHxTo0soEruU+o7Yazics/o63OaAgFHf04FNDpj5RN
	lu1zNMYRxEB8hrOqmxQ0oR1tscdyYwD+VIz9ma+PV1RHJv0rAZ3FZDd4wOdhFM/rAfXaRaY982M
	fHoB7egGP0+Rt1aLdMeyVy2WTvrAB52chIqYUH+W9oQgcm7H7f5PxMjYnnheMFClj8vcsIWmgaB
	Rz0eJ4QVRA7BDCkcnaIO+rPHwNuCA5xBUh0/6QZ0bVissVB2DBuABsseUE/X2pjow9MsmamjT6a
	L4NqbXsM6YxAKw=
X-Received: by 2002:a05:6000:402b:b0:433:2f55:7cab with SMTP id ffacd0b85a97d-4396f174f18mr20794815f8f.37.1771918088759;
        Mon, 23 Feb 2026 23:28:08 -0800 (PST)
Message-ID: <e983d7a2-2c8a-46d4-8112-0d2f2045c93f@suse.com>
Date: Tue, 24 Feb 2026 08:28:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/acpi-processor: fix _CST detection using undersized
 evaluation buffer
To: David Thomson <dt@linux-mail.net>
Cc: boris.ostrovsky@oracle.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, jgross@suse.com
References: <20260223195602.17122-1-dt@linux-mail.net>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260223195602.17122-1-dt@linux-mail.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.02.2026 20:56, David Thomson wrote:
> read_acpi_id() attempts to evaluate _CST using a stack buffer of
> sizeof(union acpi_object) (48 bytes), but _CST returns a nested Package
> of sub-Packages (one per C-state, each containing a register descriptor,
> type, latency, and power) requiring hundreds of bytes. The evaluation
> always fails with AE_BUFFER_OVERFLOW.
> 
> On modern systems using FFH/MWAIT entry (where pblk is zero), this
> causes the function to return before setting the acpi_id_cst_present
> bit. In check_acpi_ids(), flags.power is then zero for all Phase 2 CPUs
> (physical CPUs beyond dom0's vCPU count), so push_cxx_to_hypervisor() is
> never called for them.
> 
> On a system with dom0_max_vcpus=2 and 8 physical CPUs, only PCPUs 0-1
> receive C-state data. PCPUs 2-7 are stuck in C0/C1 idle, unable to
> enter C2/C3. This costs measurable wall power (4W observed on an Intel
> Core Ultra 7 265K with Xen 4.20).
> 
> The function never uses the _CST return value -- it only needs to know
> whether _CST exists. Replace the broken acpi_evaluate_object() call with
> acpi_has_method(), which correctly detects _CST presence using
> acpi_get_handle() without any buffer allocation. This brings C-state
> detection to parity with the P-state path, which already works correctly
> for Phase 2 CPUs.
> 
> Fixes: 59a568029181 ("xen/acpi-processor: C and P-state driver that uploads said data to hypervisor.")
> Signed-off-by: David Thomson <dt@linux-mail.net>
> ---
>  drivers/xen/xen-acpi-processor.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
> index 2967039..67a4afc 100644
> --- a/drivers/xen/xen-acpi-processor.c
> +++ b/drivers/xen/xen-acpi-processor.c
> @@ -379,11 +379,8 @@ read_acpi_id(acpi_handle handle, u32 lvl, void *context, void **rv)
>  			 acpi_psd[acpi_id].domain);
>  	}
>  
> -	status = acpi_evaluate_object(handle, "_CST", NULL, &buffer);
> -	if (ACPI_FAILURE(status)) {
> -		if (!pblk)
> -			return AE_OK;
> -	}
> +	if (!acpi_has_method(handle, "_CST") && !pblk)
> +		return AE_OK;

I understand you reflect original behavior in this regard, but why involve any
ACPI function here at all when pblk is non-zero? I.e. why not swap the operands
of && ? Object evaluation could have wanted side effects (in which case,
however, some different change would be needed here), but checking for method
presence surely hasn't.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 07:34:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 07:34:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239462.1540865 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vumvx-0004Gh-2Q; Tue, 24 Feb 2026 07:34:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239462.1540865; Tue, 24 Feb 2026 07:34: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 1vumvw-0004GV-Vi; Tue, 24 Feb 2026 07:34:16 +0000
Received: by outflank-mailman (input) for mailman id 1239462;
 Tue, 24 Feb 2026 07:34: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vumvv-0004FN-O3
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 07:34:15 +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 37db3c91-1153-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 08:34:14 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-483a233819aso49949545e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 23:34:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a9b6698asm413917225e9.2.2026.02.23.23.34.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 23:34:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 37db3c91-1153-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771918454; x=1772523254; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=xhtC5+tEyo4ZFZMgMkxSRtElnpKxvA7+UwHM+hFwGDM=;
        b=MeDjk55OwYpcoXyTuc+qkrTsq0/kZK3dMdyIGk1OIy24tRy+L0YE48q6EOo96VaTux
         1YMEtIfYmBFwvZNRgc6/MfjMDZWUonMlieUEmDAgQUQhgwl8e8HgptKODaaV6FPYkec2
         5BbJJtLxUd+mtgG2QxL+Ze3cpOjwwE+MXxl3nJ89EIJVT+MXZB5Gy9U6+x9jGkH02QUQ
         AzjYmDn4i4Ac7MrbK1ywc2BJ3bZUy6mTZdnwpLEBDJ4U094Em1/KXLgfUWMjHkyWIGyc
         I57SyZHXfckfeXEEwEI6mRJebvwyDzfngbEUgB53FQCppU59NHQjfoE8RdMNsgd1xiMd
         aCOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771918454; x=1772523254;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=xhtC5+tEyo4ZFZMgMkxSRtElnpKxvA7+UwHM+hFwGDM=;
        b=Ryc1r43yWASJwBbFpDzyemVDQAvznamYlcmpr5qsl+tgnwU3tFU/CcoIWDiwS4G9/8
         Le+4MxRTtPYfPd0CqhDcjBhJHUvtcZS4yjz7KjBUn93ZGhoAIiE7wgYkAGn/V2CjerXO
         5ltAItKzeiREcFRMqArwHqP9D6FsG9V5n+EfC3myb+urPIG68SuJ1N5LYVPwoWEPr7ti
         gzPcoIrpYimlfPkMRcJRnEBx+Xx5I0Puil+JwG9MgIQGIVhCQozELm1Wr0UGhGfFvaFh
         6ngpTh8nc0rya+iHnalb9Os4t7JhJWBCsx2qe8n4s00NftSbvFBIcbOHHkV0uv8QExts
         u5QA==
X-Forwarded-Encrypted: i=1; AJvYcCWtPmRgXTQMIaTzhIGOUMZwwHHgqhRPQg6uPxdfcf6K2jmJOA0EO4J30ucC3PsXWNNd+0p6YKg40cg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxFOr/fGIbeogL2NSbP89+vlIgltzVlMTC5jjFFSNHZrflrdgLd
	mbFLrbUBWYubDB/Ef64oRTaF/cml0PJt2S3ThgjRGdmiD27lLiVpJMBp9twhnO1Rng==
X-Gm-Gg: AZuq6aIhWW6dFejAhrNjG1yzvaS3HCbs1bwDQQVda8C/6HsO3Argif7AINOz79rKyHN
	jvdn3Rr9J+0zZ8K+nAFyq6h/Rj5YMlpGR7dnPh6D9w+7UnykU2ljVDCkuCo9oOT1yomVGiFlL0Q
	a0uqAFFG1bJcCcIG4sdDPxVyETqN+j9r0SFWE8C1TpSox9N+8sKN1FrYQXO8apcZ8Waka+FN7SW
	viideS9B02G/OtMHmzkWBgRJt/cFGvGSVTxOhh0ROmYCQeJmWJO6hNmKAVlXr4vdYQPXN1v9TSK
	Wc8PyvlHPQS8d0xtxSlUmVdPbq5BlMyCRRp4KsKqasTtwAnHYBByzJL09nvKhVC14p5h8ZGCetd
	AzYcs5zApYIPIknd/7xq1/pKqY42ekgNMQ8aYA9DxBEZrWrxCyfULp4B5K8BAvA5Y/Npl7ybnm5
	yh0Xmrpv02/k4d6IMu+iJoIVW/xOe+YjXdYASBn7Fu96klzg/gf8ODv5JZjzO8WhZ1cySBi55mr
	5z8HynIabtFWhw=
X-Received: by 2002:a05:600c:8011:b0:477:7bca:8b34 with SMTP id 5b1f17b1804b1-483a95eb3eemr169413595e9.6.1771918453646;
        Mon, 23 Feb 2026 23:34:13 -0800 (PST)
Message-ID: <c23c84be-d4ac-4ec6-b723-a6a76828a1d6@suse.com>
Date: Tue, 24 Feb 2026 08:34:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] vpci/msix: check for BARs enabled in
 vpci_make_msix_hole
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260224025626.26909-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: <20260224025626.26909-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.02.2026 03:56, Stewart Hildebrand wrote:
> A hotplugged PCI device may be added uninitialized. In particular,
> memory decoding might be disabled and the BARs might be zeroed. In this
> case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
> unconditionally attempts to punch holes in p2m, leading to init_msix()
> failing:
> 
> (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 attempt to punch holes if the BARs
> containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
> for checking if a BAR is enabled, and add a check for the situation
> inside vpci_make_msix_hole().
> 
> Move the vpci_make_msix_hole() call within modify_decoding() to after
> setting ->enabled.
> 
> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2344925375
> 
> v1->v2:
> * new title, was ("vpci/msix: conditionally invoke vpci_make_msix_hole")
> * move BAR enabled check to inside vpci_make_msix_hole()
> * introduce vmsix_table_bar_valid() helper
> * move vpci_make_msix_hole() call within modify_decoding() to after
>   setting ->enabled
> * split typo fixup to separate patch
> 
> v1: https://lore.kernel.org/xen-devel/20250812151744.460953-1-stewart.hildebrand@amd.com/T/#t
> ---
>  xen/drivers/vpci/header.c | 26 +++++++++++++-------------
>  xen/drivers/vpci/msix.c   |  4 ++++
>  xen/include/xen/vpci.h    |  6 ++++++
>  3 files changed, 23 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 739a5f610e91..6a28e07a625b 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -122,19 +122,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];
> @@ -164,6 +151,19 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>              bar->enabled = map;
>      }
>  
> +    /*
> +     * 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
> +
>      if ( !rom_only )
>      {
>          pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index 516282205a53..142cfbae59d5 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -598,6 +598,10 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>      if ( !pdev->vpci->msix )
>          return 0;
>  
> +    if ( !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_TABLE) &&
> +         !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_PBA) )
> +        return 0;

What if one is enabled and the other isn't? Doesn't the check need to move ...

>      /* Make sure there's a hole for the MSIX table/PBA in the p2m. */
>      for ( i = 0; i < ARRAY_SIZE(pdev->vpci->msix->tables); i++ )
>      {

... into the loop, and then apparently also need mirroring in the hwdom-only
loop further down?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 07:38:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 07:38:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239471.1540875 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vumzw-0004zq-GT; Tue, 24 Feb 2026 07:38:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239471.1540875; Tue, 24 Feb 2026 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 1vumzw-0004zj-Dq; Tue, 24 Feb 2026 07:38:24 +0000
Received: by outflank-mailman (input) for mailman id 1239471;
 Tue, 24 Feb 2026 07: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vumzv-0004zd-9H
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 07:38:23 +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 cb8efe04-1153-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 08:38:22 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4836f363d0dso44401415e9.3
 for <xen-devel@lists.xenproject.org>; Mon, 23 Feb 2026 23:38:22 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483b820def3sm30283675e9.2.2026.02.23.23.38.21
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 23 Feb 2026 23:38:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cb8efe04-1153-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771918701; x=1772523501; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BKBgP8QEOB59HnlM/s/QjLqDZ4/w/4sv8iO4bJHu1Gg=;
        b=Qc2SV+FVSEfKCviJ3vB6uzQxreQL5V9qbSJuWs1sgYJO3++jGRcG9/BWr/JNa4oYqc
         YBxL+xgWmLgc8YzVNzvIv0WHc7Say9ZGlvEM5SnD5ypKe79VnC0hAvlRqIrira2QYTs8
         kHVDSnW5PIwOzFiuegOgTsvYpH6l5Q5exSizOT+GvpZdp0toIanxsMTDMOaEFfbYYmr3
         M3NpIaIxiEhTg6lQUUxHMGH3m/NjXdLEz8YQa7Agul7e/yW+6ZWBuiOD24pUfDt5gY2P
         JrJ8wQv+guDNJR3ys5kdDAe4WtB34T9AZkYsZklBMZRyf3JmYvtS2d53mxQ11b7WG7wE
         4lVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771918701; x=1772523501;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BKBgP8QEOB59HnlM/s/QjLqDZ4/w/4sv8iO4bJHu1Gg=;
        b=JmzazNyx5z2TnygYpT1JJomu7Dw75CZ4qenBz3KPImw6B+0I+ttIUTX7yCTk3z/WD/
         0N3XKu8hCLxYbcaWKto8cKpnwzrtWxwDy8pNviKZ8tH6LRZ3XzcOgQaHIFpFCsdv5OOh
         977SeyvoqLLc2Nm5n/ua8SJowVE7mjRfpNPniJlgNM83d0tlUKnoh1FYaL4x6Ift4GR9
         ik/fcVwT+5964dm5WoqU0V56A1OLM7l/E/jy6Ufu4wvUuROyMbEnWbaT2INHdPySs+Eb
         liRYCzVuBd3XG7ruJHEKP0gAiqPFJNPP1YZ+kwHFvi8iTAzmFU2K104jIJjuDWlZfX1A
         mBcA==
X-Forwarded-Encrypted: i=1; AJvYcCUVFkJYsRjkuNgjfNLKfVOvVtOsjW05Qt7kwc5mXl+vg3FkKOb05h4+fPr04jFKm9r3ixG2ZP6q1WI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxMGy0/ANtm4ZDnQdIGYAh/iBDexo+jasBh4BLZJPPCT9wsF8UG
	ukMzT8BTJf2BAoP5bZMcdY80NDFj+d3sRCTVkzKiaTt8i+9pcrlMBr/EeHtrKfbUHw==
X-Gm-Gg: AZuq6aKAK2ibYp2+22iw4UC6Ue2tsPVskDRPYv7T5XBokMeByc+9lM1K21UQjrGoyoq
	IfoZK54MrhN/eHKpzZ9hptpcOQQzoWSBdrOutAsxLuY6NNxc1IPOuQazklUsXjyFDmKSOUpaM4j
	Vz2hg8lmC99QWmwO8iaq6ggqXoPUYix4PEOxUoE80nWpbA54A4QEdSKHBiL6jWbNWa/fXH70chC
	95NYvFaLvHCeTc34c4kJibrCHqbIbxLqxMmRGKKBrROJLZs0KEVUa7wLSCstgfmnpCfKlUzEkem
	QoqnUKsmHZaKCWXD5craVNWmytbVK5YkzmvG9de6/Vr87ntwuzEP1on5DkeBZ7h+114EANHshjn
	3J+DhS4v/Gwxvn2Wx7UW6CxChh4hRc/HxyQx+NA+YhFjnz/s+Jzdg3OPG6D9h3wsgkg+tWXbDH4
	pYhDSwAPvg+/kCeozfalkdm89L5V7w+zZi9hJYX8FkqqSQ++ONtPdnhUTdpKdBR7q7hsApzQ64E
	OExGBxqjmfdbU0=
X-Received: by 2002:a05:600c:1386:b0:477:55ce:f3c2 with SMTP id 5b1f17b1804b1-483a9605a62mr212454355e9.14.1771918701517;
        Mon, 23 Feb 2026 23:38:21 -0800 (PST)
Message-ID: <01807a5b-089b-4c79-a38a-529b7707587b@suse.com>
Date: Tue, 24 Feb 2026 08:38:20 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/ucode: Support discrete modules being CPIO archives
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260223185054.3598305-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: <20260223185054.3598305-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.02.2026 19:50, Andrew Cooper wrote:
> Multiple downstream distros have tried passing discrete CPIO archives and
> tripped over this not working.  It turns out to be easy to support, so do so.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 08:01:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 08:01:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239488.1540886 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vunLm-0001AI-Du; Tue, 24 Feb 2026 08:00:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239488.1540886; Tue, 24 Feb 2026 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 1vunLm-0001AB-AD; Tue, 24 Feb 2026 08:00:58 +0000
Received: by outflank-mailman (input) for mailman id 1239488;
 Tue, 24 Feb 2026 08:00: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vunLk-0001A5-Ra
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 08:00:56 +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 f1f2d133-1156-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 09:00:55 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4836f4cbe0bso38910095e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 00:00:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483b87db57fsm21582525e9.3.2026.02.24.00.00.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 00:00:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: f1f2d133-1156-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771920054; x=1772524854; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=lIwLd3yogIzi7F2jeRG5vi3doaglPxjhxjaEsBsFMCM=;
        b=Yejj7C/XNiRA00y/Cdc3a5OctyakkmREEAe6VlfEPwUzTWBSgnr3V1OGVcrxYxx0ss
         FhAtZZeOHel0P8F1XB+p9Unt8V5SslI4JLI4gx5MZR3rILeF33S0/gDqmxdu6hHa/KY9
         p82pDQUg7KRSu6hFkjDML5gOBRPR9m5+M+n4H8pQTa54g/eOoKkePHNuRVLmBq+Xa7zN
         xOHNI9B33O0AmA9f7PZxrfH0T/WFMB6gdbXqe4Go/6+aIzmND6NLSHPUiDiz3g8Ka7X/
         mxoDA73IGxLZOB/zWpsdzR96Xq4KYcz+qVRvR+h8LiGejgZnZM3gyOdLBIA/4zWlzL90
         wi3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771920054; x=1772524854;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lIwLd3yogIzi7F2jeRG5vi3doaglPxjhxjaEsBsFMCM=;
        b=nyyqYW3AA4HSx7Q85TINrlYJ9xVqYONoZ/cox7sQo6QSOuzxVbjFrJ5rY2H4/mkiF1
         2mU4PiIad3EC20Vyyk5dYQPdl+mmnqdGNiTEfyesS7Rc1MG2whA72Ojz8Xurufr3eTIu
         vcd7V99tkxEQOxlxGeJxNnBVR0W64FRw9s+b1P0OfR4otq33Fm6JF3rHztqY7pJ4JtF0
         xTdwP0Z0JHOV1cikf9il76jnFHTEzHH8JXVWzh8tUK5N2hd53zTyEQ8IuxW1lriHGJbW
         3xhoq06XQUPc+we8ZJiMvFPmTBzEgK6xIH04ddmX5slttBLf+Me7Xr4rRDCtVuVdZU95
         tqsQ==
X-Forwarded-Encrypted: i=1; AJvYcCWKyKcnvyoADOb/RUVHFxaHaXHrg4jOALkUodbqn2AUZP66jXQE7zd5IyxcXUVM8DX6qNE7uKX/XBI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyY402FIs5DqpSeVRs4T5meWTf71pd1PKlzi+RlYhNRSw6kYDLp
	+7wZwVG8UDrXoSd+XNxC8ujd2OGQ3SQQIkje4MLs4BmTqrip8qvLdqb73AOufpiuR18To7+uIc/
	Ty2M=
X-Gm-Gg: AZuq6aKz0Nkt8DJh5Rlkaq7zYJWxkpO7ljtrpqUD08yVuqTzc2/pz9xf4+6czFY/FJG
	iPgzc5DIRbRV828GH+fUQej/MfMeApZ9SiWVQ2DuivGa1d89bSzVNVwC0G0RcRD0Gb8SnW234Oo
	Fs0DflybOtqZQ5dLF+nSB7dJ4MgugDPAzGX1HYStDYR3h7k30DvAtvcLpSfHwjx6vikJ5Nkc/qm
	7p7AaIBZFCdSv9w9Ztlxz5dghh1HmNodQcK/WrryWBnlG+O0e0X0wdxHiE2DlfAeKst011wXSAU
	q6ElHgsB/5BoqAfwBGDJJySshm4WOOYzoBYyP8DirTofBz1bLERH4CsMun9rY9ZuQnggQt2Z6tK
	kpFSm0gUNCDlqwTNa9B0TFQbcEDbOYMwZho4cx8pL9yNIKSUl3vjLNWARlR+Spo1bPNbGFDiix+
	pp1khGjMgJOK8l5HejSmLbBRXB83yHfmp1/UBU6qx5vuKFjXr/CWlDpbboNE+66RybM/th0G2Vf
	hGrKtVjIcTn6R8=
X-Received: by 2002:a05:600c:8b66:b0:483:6f7c:19f4 with SMTP id 5b1f17b1804b1-483a95ed6f3mr163376475e9.30.1771920054229;
        Tue, 24 Feb 2026 00:00:54 -0800 (PST)
Message-ID: <501dd443-e82e-4af2-a8ae-7ef333a38d1e@suse.com>
Date: Tue, 24 Feb 2026 09:00:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/emul: Remove fallback path from SWAPGS
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: <20260223170856.3594016-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: <20260223170856.3594016-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.02.2026 18:08, Andrew Cooper wrote:
> --- a/xen/arch/x86/x86_emulate/0f01.c
> +++ b/xen/arch/x86/x86_emulate/0f01.c
> @@ -192,18 +192,21 @@ int x86emul_0f01(struct x86_emulate_state *s,
>          if ( (rc = ops->read_segment(x86_seg_gs, &sreg,
>                                       ctxt)) != X86EMUL_OKAY ||
>               (rc = ops->read_msr(MSR_SHADOW_GS_BASE, &msr_val,
> -                                 ctxt)) != X86EMUL_OKAY ||
> -             (rc = ops->write_msr(MSR_SHADOW_GS_BASE, sreg.base,
> -                                  ctxt, false)) != X86EMUL_OKAY )
> +                                 ctxt)) != X86EMUL_OKAY )
>              goto done;
> -        sreg.base = msr_val;
> -        if ( (rc = ops->write_segment(x86_seg_gs, &sreg,
> -                                      ctxt)) != X86EMUL_OKAY )
> +        if ( (rc = ops->write_msr(MSR_SHADOW_GS_BASE, sreg.base,
> +                                  ctxt, false)) != X86EMUL_OKAY ||
> +             (sreg.base = msr_val,
> +              (rc = ops->write_segment(x86_seg_gs, &sreg,
> +                                       ctxt)) != X86EMUL_OKAY) )
>          {
> -            /* Best effort unwind (i.e. no real error checking). */
> -            if ( ops->write_msr(MSR_SHADOW_GS_BASE, msr_val,
> -                                ctxt, false) == X86EMUL_EXCEPTION )
> -                x86_emul_reset_event(ctxt);

I don't think this can be dropped. If (for whatever reason) ->write_msr()
failed with X86EMUL_EXCEPTION, it would have recorded an exception.
x86_emul_hw_exception() unconditionally checks there's none. Of course
...

> +            /*
> +             * In real hardware, access to the registers cannot fail.  It is
> +             * an error in Xen if the writes fail given that both MSRs have
> +             * equivalent checks.
> +             */
> +            ASSERT_UNREACHABLE();

... this and the ASSERT() there will both be present / absent at the same
time, so in both release and debug builds the wanted effect is achieved,
yet I think we'd set a bad precedent if we didn't x86_emul_reset_event()
here first. (Also, technically it ought to be legitimate to convert any
individual assertion to BUG_ON(), without strong need to look at any other
assertions.) Alternatively ...

> +            generate_exception(X86_EXC_DF);

... we may want to consider to relax the ASSERT() there, e.g. to always
permit #DF to override what's already there (if not already #DF).

I also think we'd better explicitly specify an error code (of 0) here.
mkec() copes with the form above, yes, but afaics we never actually
leverage this actively. Iirc it was merely meant to act as a safety net.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 08:07:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 08:07:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239499.1540896 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vunSU-0001z5-66; Tue, 24 Feb 2026 08:07:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239499.1540896; Tue, 24 Feb 2026 08:07: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 1vunSU-0001yy-3H; Tue, 24 Feb 2026 08:07:54 +0000
Received: by outflank-mailman (input) for mailman id 1239499;
 Tue, 24 Feb 2026 08:07: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vunST-0001xa-AI
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 08:07:53 +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 e802cac5-1157-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 09:07:47 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48372efa020so41054475e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 00:07:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483b890041csm16512515e9.5.2026.02.24.00.07.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 00:07:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e802cac5-1157-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771920467; x=1772525267; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4ob3Py8e79uNOSOSdNosFw/qJ6k5/SSX4TduJtiw8gI=;
        b=YaoYSen0Ge3npaDsNgZAYvtx6t+Zl/E1VHrhxxo0UuEoRBcv3XGYVjv1WAaIWm8MTM
         TG/A9MhWFeDtMi9XWALavUjqBENap/4P5P/Ltlh0q4ql9uFkkXs2cAOFKEZkoXo5SSVv
         kcdOe3xtpOT6dSwc89WX6TmXuAzV8dYinWJFn/arDmbLH8Aal5VDTkKBYJbQSu37AqY4
         BchbzJ+SjnFewaLCRli3786GChr6PauqMQmV107pLy1b55t6420vlR0N1sTVJjARrxl7
         rk0+Ure+bDXqnsmEIV7QiKGLqvQ1cph9Wb72ddeqAsSwr+u3z5kKyziT+SDsOMNBVo0x
         oipA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771920467; x=1772525267;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4ob3Py8e79uNOSOSdNosFw/qJ6k5/SSX4TduJtiw8gI=;
        b=t3U75XPIDcsf000i1MnyG7kSVwgRS5fpu2NgRwLUm5Ln/IsnHwMbZXID8bQaeBO8kB
         8erwv5j3PaAd4bBmaWVBcI6iovEtR5xXkuwbb2J5A2RgAxybrt9xluweIwoQZ+h02aPe
         OstFAVHxV/cYe48ZjY6EAT9sc2a2/KmIOmF4va7DYLP0QCyUQZa/WedFsa9aV83H6R3B
         aXs9c2j40Jjp8iNXoH7oZmq4rMjgRbqxERXRKKMEKsdWN7vL/iWnCGVoGoi+T46epfRV
         S9DiiWnT1mm3ZhRYxruP7/g1Lr+1SuB0OByf0+6ggRJ93vWJq78tL0RcS8HUHrkDn2j/
         JOaw==
X-Forwarded-Encrypted: i=1; AJvYcCUM5UdlbD9gFDuXW7TCvJYzxYtX2dI1jeeS8qD/CXbvEiItW+BiRX1GRD9YUQj6EkZPhVEUcDFmGfo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzYFaSGRpdkhQ8BMCTbUMHby+Xw0FT824+gCa5XbHNbi4e76PiD
	X+hzYd/bR9BsbhyC0juGiycpkNBajMz7M8Uh2TW6ePrlEDaDx43j+QepeRfoeh9bmg==
X-Gm-Gg: AZuq6aKjH2OilcCOSffcu8I9DLPs0pJ0f1WAh1AVWbRR7RkixmId13Dsea0Z2fXligg
	QHKdYjj3JwQfnEIKDNEGxl22ehO+8UngZF9AmWqGEhB5izSVsddNc81WWi33uRQetswWTfdbzL6
	EMSONBoSrVUDL8qkoUwINkpOshc68tnW/iGGZRZULitq1/lcFEN5rPSG0Bd+RSxctucWZvY7Eb4
	SnrrVB6FSQoY/0y5xYRN5lhbqqzqz+sNIWqa/K23tzYbYQKAz3GLNEh3yeHZPrLzfCbwJOJUiFV
	ckTQiArt7v10fFZYQYqn6LvEwnyFL+il+szisdMR47cNVuCyMhg3v3AweETHA7EP6tpCruoG5tD
	lnJAS70WMPZ7vX65C3TjrtppRYaF7hTQsN+6rYf/5g8KKISNBgHbtyNtlhuyeeWYd+54lG9Uk9h
	VHdvYcArEObXZq9oAFRR3+cNddwqe71g/jJPyDpXIhCHvmsg9L553PGVGIdeRdsyEwtnlhJZhLD
	26V0GTmN/Fy04o=
X-Received: by 2002:a05:600c:8a16:10b0:477:9b35:3e49 with SMTP id 5b1f17b1804b1-483a9d95306mr118957765e9.3.1771920467363;
        Tue, 24 Feb 2026 00:07:47 -0800 (PST)
Message-ID: <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
Date: Tue, 24 Feb 2026 09:07:46 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.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: <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.02.2026 17:18, Oleksii Kurochko wrote:
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -2,9 +2,39 @@
>  
>  #include <xen/init.h>
>  #include <xen/mm.h>
> +#include <xen/sections.h>
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/cpufeature.h>
> +#include <asm/csr.h>
> +
> +struct csr_masks {
> +    register_t hedeleg;
> +    register_t henvcfg;
> +    register_t hideleg;
> +    register_t hstateen0;
> +};
> +
> +static struct csr_masks __ro_after_init csr_masks;
> +
> +void __init init_csr_masks(void)
> +{
> +#define INIT_CSR_MASK(csr, field) do { \
> +    register_t old; \
> +    old = csr_read(CSR_##csr); \

Can't this be the initializer of the variable? Can't ...

> +    csr_set(CSR_##csr, ULONG_MAX); \

... csr_swap() be used here, too?

> +    csr_masks.field = csr_swap(CSR_##csr, old); \
> +} while (0)

This whole macro body would also better be indented by one level, to not leave
in particular this closing brace as a misleading one.

Happy to make adjustments while committing, provided you agree. With the
adjustments (or clarification why any of them shouldn't be done):
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 08:09:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 08:09:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239508.1540906 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vunTZ-0002Uy-F9; Tue, 24 Feb 2026 08:09:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239508.1540906; Tue, 24 Feb 2026 08: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 1vunTZ-0002Ur-Bo; Tue, 24 Feb 2026 08:09:01 +0000
Received: by outflank-mailman (input) for mailman id 1239508;
 Tue, 24 Feb 2026 08: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vunTY-0002Ud-8f
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 08:09:00 +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 126b9394-1158-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 09:08:59 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-483a2338616so33099645e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 00:08:59 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a9b66932sm270989295e9.1.2026.02.24.00.08.57
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 00:08:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 126b9394-1158-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771920538; x=1772525338; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=kXaOAysdjDjXPGk8OV2XcQA2x+8/aoMXAZD0ZSYWRQQ=;
        b=NcLnxWGDXxsDvkBPHobTfzjnzl5co50LQNNBExvpWNIQgrwNJdSPY1TMWOa99hcnUH
         KDBsJwtkkQqgVgu3QaujvpFb1Yc5vDl26oKUR5i1Xiv2c/mlm8ib2azD8hQDTXTWIkGw
         6C+ez+tlwMoOajNnNdpVqkkplzk8H0KUahtlH6vSjwg+yN2e/IrNF8DJi+4psjVhIvUM
         EkYqQibM7DMprAQSGtonqvUDHZZ2zDJgDHdXW1gBis8wnr1jT16b9DmbeN8o1JSex53d
         NC1Xp2rBqHCFpSm6Gl1vKzmvM+rHrN7v2Jj0/qtEHu+zW9W4sjKPhL/d7ZLFNbwVTJpp
         rrSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771920538; x=1772525338;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=kXaOAysdjDjXPGk8OV2XcQA2x+8/aoMXAZD0ZSYWRQQ=;
        b=bWVvZWP8NDB81UnocIIGXPPdzr0p3s71Ang/MwkTUN4fifPodzQ0P5zOqJZpeODDKn
         jmlwFDJvGi29n8uTgTEF6UZy6sZeH/ChaTGEzJcMuuJjNrThwQ7LZQxtorPVtrcYEnFG
         /dGpei8E3bXbxfXfejwRPdhnFnfe3n6l8oh6ZtEs17M4dd8sXdgx9KdO8M9u4lDxDPPv
         QVDLZOXNqYW0LZ+NzRAfE1suQt/Npq/OWCMEft62ymxAyAhkBM9g45kawp2RM9QTjQS6
         qSH3WzMafCuWxk9rAZh4Nm2I/5dRLVDmLnPoOeOXUoBCEUqrmcYGPbWt87EOil32QccA
         zA2Q==
X-Forwarded-Encrypted: i=1; AJvYcCVCU80f2FDtHMFxwt1C06ZEuBRrdZqoyTig4sfZlSaumcTm70h++4jMmaPL1k6Q6ewCQ5N35ao9Y18=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzX7Q1/pnW4zw/lV+mQTz78PdlfsUKPWw6MDaYloS/3d3hMrlm3
	5P/V0ZP1dEQiFn05/LF/t9Gcc7g4BxhsIZk//bETdXObSzQj7B1wcAa8512ML8h1Yw==
X-Gm-Gg: AZuq6aLYkqjKluaUctkv5V/Kd3cHqW2yaCX7vKtSt9BK4pHgH94Y8vSmzVPCZ+L8bw4
	WLU26UFa9gX0f4McF8K7uvQZBMLrm8j9UpMsqcKPxAV3NYDrgi1ZkXeU64FSoEwQL5/n2CuMYmg
	WfUMnPhze51bxzSqEiZUa7JYG9QW1juv2LJrb1DCrqSw3vRslqfznwNB/4UXPNMv7B5woqd0vzi
	y62xFd3QCMqigW8rIRm3i1rTxHEEmCeASdxe/rKTk6s3NkU0SVb1029auG+pDHqvSS2kGSok98I
	w6dExBjYp5eu/6QZZ9OvoIwo7bwTmf/hrYbZrkdsiWnaEeRft+5sTsaUkdb3PZOqiLnKOZEQ4Om
	4RRm3rJDUy2LPNJb9ObdQXbaxi4hNTg7viYWtUBXmRvlIe17+lhLUiY/22bUNCm7qNukc7DtovD
	hYJfnbUgORHs89knrqhC9d3KeRGs8jbv8KsqqLo65a52/gh8I4ROTa8MUlKv9l3Pbn26P8MEqN9
	QpdoiWkov2A7Sk=
X-Received: by 2002:a05:600c:3e8d:b0:46e:761b:e7ff with SMTP id 5b1f17b1804b1-483a95f5a48mr175401875e9.28.1771920538419;
        Tue, 24 Feb 2026 00:08:58 -0800 (PST)
Message-ID: <153082ae-4bf6-441b-8222-09aee302db87@suse.com>
Date: Tue, 24 Feb 2026 09:08:57 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 02/14] xen/riscv: implement vcpu_csr_init()
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <3d301ac4ca901f0aa471d6c4234301a0199fe5f7.1771590794.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: <3d301ac4ca901f0aa471d6c4234301a0199fe5f7.1771590794.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 20.02.2026 17:18, Oleksii Kurochko wrote:
> Introduce vcpu_csr_init() to initialise hypervisor CSRs that control
> vCPU execution and virtualization behaviour before the vCPU is first
> scheduled.
> The function configures trap and interrupt delegation to VS-mode by
> setting the appropriate bits in the hedeleg and hideleg registers,
> initializes hstatus so that execution enters VS-mode when control is
> passed to the guest, and restricts guest access to hardware performance
> counters by initializing hcounteren, as unrestricted access would
> require additional handling in Xen.
> When the Smstateen and SSAIA extensions are available, access to AIA
> CSRs and IMSIC guest interrupt files is enabled by setting the
> corresponding bits in hstateen0, avoiding unnecessary traps into Xen
> (note that SVSLCT(Supervisor Virtual Select) name is used intead of
> CSRIND as OpenSBI uses such name and riscv_encoding.h is mostly based
> on it).
> If the Svpbmt extension is supported, the PBMTE bit is set in
> henvcfg to allow its use for VS-stage address translation. Guest
> access to the ENVCFG CSR is also enabled by setting ENVCFG bit in
> hstateen0, as a guest may need to control certain characteristics of
> the U-mode (VU-mode when V=1) execution environment.
> 
> For CSRs that may contain read-only bits (e.g. hedeleg, hideleg,
> hstateen0), to the written value a correspondent mask is applied to
> avoid divergence between the software state and the actual CSR
> contents.
> 
> As hstatus is not part of struct arch_vcpu (it already resides in
> struct cpu_user_regs), introduce vcpu_guest_cpu_user_regs() to provide
> a uniform way to access hstatus and other guest CPU user registers.
> 
> This establishes a consistent and well-defined initial CSR state for
> vCPUs prior to their first context switch.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

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



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 08:27:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 08:27:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239519.1540915 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vunlQ-0005Pr-Q0; Tue, 24 Feb 2026 08:27:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239519.1540915; Tue, 24 Feb 2026 08: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 1vunlQ-0005Pk-NK; Tue, 24 Feb 2026 08:27:28 +0000
Received: by outflank-mailman (input) for mailman id 1239519;
 Tue, 24 Feb 2026 08:27: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=Lz8P=A4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vunlP-0005Nl-US
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 08:27:28 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a37bf218-115a-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 09:27:22 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH8PR03MB8324.namprd03.prod.outlook.com (2603:10b6:610:2ba::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 08:27:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 08:27: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: a37bf218-115a-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DSFvDzf3mHe5NRdmGMFcwvmOL9B02gALiwfpQlnoU2k7wTL27P2OqTukXYMCvToT4mlkNmEh/ClXXw676v1W/VomyeHcjYTXzROgdeXmn4sk1/m5lM06u4RibivEDU4ELl/3krrEt2amO/i4z8FiWLaGZwuPBr+j91Ndtuku6h2YrKjwQDJRIqiypL4f1ITc+zMBXnMukqDsro+L9btWbAk8H9q0Ue0CZTcWQjler8AXvTnMVmYY0/4kq6/EAMnZ+6MiFTnrpfQA609Efj1901tXoY6IYQUTnPJDlmjzk4qtEN6QtkfKb5MGsQzS//lfS0HBB7Xg0HWNTnYJMOElqg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=tSl9sjk8HIvJOLdERy/twc/I9+KzzpsWBWor+ZEU1tM=;
 b=C1GtEnKKPq3hm3QFyNYlQpVC3ocRE3a3z8m7mi8fCNF0EUlJU7ajIIsnxh+UhlKVKBKgpXsLFlaZ/F6E4z5cx9QsFRBH5UyJtCzqvbv7MTsg8XwJLxXHP1vVOq5S1gmATOZtPEGFv/4WIcfHL5aJR8zTF28Z6CMBSRrLxPz+xTRUehL9srBC8UtFlra7QT3JlouRKosm41kKA2VZ5Ke5n7RPg9UIriygP7xYlDzDfs3A0MCB+VtVIEWOc/ykQL1BrfKicrWgiOrD9/NV09H13kimLa42c7KKcvRvtmfBPF+rSCJ9ujoR3rfmcLHDiJ26cK24zNkpHFkhe/HiHXrtXQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=tSl9sjk8HIvJOLdERy/twc/I9+KzzpsWBWor+ZEU1tM=;
 b=Iq/0ubU2ntnrDBJQpt7TMnfj7eM+gljTpbJY29gudSnzoaAJjcHrIDYRXwUdnpk4v32GAyi6qAoJrVGYqiOqXoH/T/yiEBIgpQbFFqGU+fxpXRaQM+PVnWmGJ7652nrFV0OAtfSEfMhyrGbAeq1EGJYqsDgPZVeXVF0XA6vT/gQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 24 Feb 2026 09:27:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [PATCH] vpci/msix: fix typo
Message-ID: <aZ1g4ymRDo0CXqGR@macbook.local>
References: <20260224030519.27104-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20260224030519.27104-1-stewart.hildebrand@amd.com>
X-ClientProxiedBy: MR1P264CA0195.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::7) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH8PR03MB8324:EE_
X-MS-Office365-Filtering-Correlation-Id: 27390ae3-9a6a-4c49-7cf7-08de737e86b1
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?YWtzQ0Y5YzUrN21nZGJlWDNWdlZVSE5jbkx1QW5LYjFmRlgrQlhuRHhSQW9t?=
 =?utf-8?B?Q0dEWktMM1VSbTBRVEdWUWpwNjZQOEMrdUt5aU90ZmVrdHk2TUNPWEJUR25w?=
 =?utf-8?B?M0liZ1g0cG9PNHpFWmlIOG91Mk9CNm9uVXd3VGpQOUd3ZlUxcU9qaFZ5Vk12?=
 =?utf-8?B?Zkg2Vlo4L0FQSjVSUHNqbGRwaUVRSTNvMCtrc1QydjI5bjA3MWRnZHBsWnd6?=
 =?utf-8?B?cjVNdnV6MTN4ZGpwcWlHSTJBaGtkbmczY3owV3ZKb1lPaXFVd0RZNlk3UlZG?=
 =?utf-8?B?MFNCWXFJdk1XY0N0aEh3N04vS2Z5b2FRck8xNkEvK1NLTkFZeHloQURsUVJX?=
 =?utf-8?B?Nng2emVSV1JZOGhyRTAxZEs5N0EyeDVxTEVkbCtSL25Oangwa1RPZGdXdnVP?=
 =?utf-8?B?VlN2L2lZNXFLOVZ1c1hkRjhRUVhBcllqaHBsbThYN2w4Y1djcmo4a0FERkg3?=
 =?utf-8?B?UGROOHZIbnBQNklIQjBiZmZqM3ZRN0diaVB1ZnBUYjVjNFZIZUFqMTA2M3FY?=
 =?utf-8?B?VWJMT1pVSXR4MjBVT0lwQzczcU5acVM1WUhWWlB2UlVhelNwRk50N3hveDVs?=
 =?utf-8?B?Mnl1R2ZVOEhQUC9uQk1CRER4KzZsdE5kRm0yRnRncVFMcGRUbXBoV29OeXd2?=
 =?utf-8?B?Z1VwTWo0ZUFTaTlZZTY4dU9MY1o0d0F2N0pZTEI3a0hQbFhGVVJ3UTNiSVcr?=
 =?utf-8?B?RjFlSjQyeXVsQmh2ZjNaWlJoSkRsRDJNWEkrSUdFNUFSeW00Y1ovTHdzTTJN?=
 =?utf-8?B?Wkhyc1lmZUNtTDlTR2c1SjVtVlhHQjZFWmdxL2w3YnFTUlJIcElVaWF3Q0hZ?=
 =?utf-8?B?cFprYy9BL3UySmVWT3hmQ3pKWk5JRUpUWUtYUFZkSlpvQ0FqMUkwbnFjMXpC?=
 =?utf-8?B?OEM2Sk5hRE1kR1Y0ZC85cG5BZWlIYUdPYjhLYVVMeG05ZW05c3JYYWlGWU5z?=
 =?utf-8?B?Z2tQUjVCbVFHYnhCVC9LOHIrTHQwbVBLelhrU2s1MkhzNzREaTBsLzJzTmlO?=
 =?utf-8?B?YlhDVkdBVnJQeENvMGRmQ1ZGREVQVEFCaDUzT3F0ZTE2Rmw0bS83UFVnTUVB?=
 =?utf-8?B?NTIzWDZwWmZrd2VlbFlCRENvd3I5M3RsbkJOQmlXWHNjU3MxVExHMGlQTVpY?=
 =?utf-8?B?cWFYQWM5Z1pmenVBV0lVVER5bWZvaFFnYVJOSmxWZ2xhUlhubVFJZ0dCVC9I?=
 =?utf-8?B?T0tIS3pFanBSSlJjSzcvYjQ4dGxGK1pYdE43TTB2d0NPUW9tK0J0ZVMwREpQ?=
 =?utf-8?B?YjRXZEtWU29lRjJUcFM5YXBkZEdhcW1TcjJ1SUhIYlJEVWtydzVUaytoLzNL?=
 =?utf-8?B?SjFOMDNIT2FxMEp1Mk5Ld2MyVEdSMDZUQWhFZ000dDMvZXU5QmxJR09iQVc0?=
 =?utf-8?B?cU95RExSbU9abzY4cy93TEp0YXNMc3c4Skw5elljN2JmZW82S0xYWVZhcUYw?=
 =?utf-8?B?NDZPTGFlNUlwYjZWTllwdGEvbk03dGZnVU5wQ28xU2ZBTlh4N3ZMWlRBNklF?=
 =?utf-8?B?ZWZMMUtrQUg5Vnh5dHRPQVRIc3lvVENsQ1VJc3JvaGZXbThMeHEyOEkyZTFW?=
 =?utf-8?B?MFViWDFZdW11TkhjTlJjcG5jYnhsZzZjZWZ3eXNIUVBrTmdNOVVVblZlWmwv?=
 =?utf-8?B?V3JzUEVNWXk5N3VDSnVrbmxhbkZvQkxiM3BGT3AzelErWlBMT0lwVzVGRWc5?=
 =?utf-8?B?Z2dYM2tQdi9OSXBZdzBBdms1QjQ4Tys4c1Ewb2tMVWVJd25HdGlNSll5Sjcz?=
 =?utf-8?B?WWZuUldJTTB2QnhWL2hYQnUvQ2NkVmhwME9vYU1yUnZFTEhTaFkvZGVucFRG?=
 =?utf-8?B?bW9oSGIwT3dXT3hsQnNTYmJNWEFSWEVtcFhIcXdpdlM1K1hWRUMzQndEamFQ?=
 =?utf-8?B?MTF6ODhQT1c3UkhlSDV4V1JEY2dyT2pRQkgxSWMwN1RzcXY5VW9kWVgzcFJs?=
 =?utf-8?B?dXJLK0xDOFh1OWJUZnJBRTJhYmNYOStZSVRzRFN4Lyt2T1AvSnE4SnNpbmxl?=
 =?utf-8?B?c0xBbGdDVngrTnR2U2wzWU40eVZ6NVpxRy9ST3o2QzI4andmd3ZwTXdrbnJ6?=
 =?utf-8?B?bFlTZ1hYV2EzMVoxSk1sZmRMMlJvQWlhOS9EWFN6STF3VzM4dmR4TzNYR2pa?=
 =?utf-8?Q?wxE4=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SGFxQUI4a1hGM2pOKzJwM3lUa3VZa1NSek5LT2R4Qndvay9jQnFHcTNoM1V5?=
 =?utf-8?B?NmN4bUdmMHJoOHNoeTdHdGE3Y3FWYjJETDlscytINXhSSzlHMUpaZ3NQbjZv?=
 =?utf-8?B?a1FQaGhZckZwYWd0cXR2RHRlSGt0NmRQemxzQ1NiRk1ZT1J5M2NDQUNwK0lN?=
 =?utf-8?B?ajZJSWhGSHZVcWNHSS9rUmhRMlZNb2Z1MFFZRFR2OTVOT2lMb3M1QW0zczRD?=
 =?utf-8?B?d3VsMVFvWGl1cjdiaHFRazhzNXdLcWVKMVludVBGdU5Icnh2QjZkLzh4U05q?=
 =?utf-8?B?ZXQrYVV0U3RYZ3VjT3R3V0lSNnhDaHJiWDdCemQ0anlwVS80WVdFUko4TTAw?=
 =?utf-8?B?LzlLaHB1QXRpZ1J6Um9RbkhvaEx6T1N1d204ZUZGZUtCamNOMkE4VUhFZnh0?=
 =?utf-8?B?UDBFNFFoQ2dONitSSHJTZW1venBMK1Z4REYwTDBEd0JYS3Y2QjFMMEw3SnFP?=
 =?utf-8?B?ZzFiNURXc01iV0hlYnRPMkJIOVgwQ2d2S0g4MCt1dE1VSExEVy9EQzQySzUz?=
 =?utf-8?B?Y2FDL05heGpMZ2JkcDVERDZYRk5pcTRqVkp3UzNUMWcxL09kYVZ5aDB0c1Vl?=
 =?utf-8?B?TE4vY3k5bEVXYnlQRWIxYjVEUGVnZzlHVkVHdHRqSU4xU0tHamh2bHpmQVo4?=
 =?utf-8?B?cFRQSE9tbHh6aU5qeGJPWnZoREVGUHlIYTczNXFMQXA2S3FPYmpKMWd4MlI5?=
 =?utf-8?B?RVVhZDBWZXVHTFVla3JMNFVXNmsyZVlnUHFOcGxaajg4TEV6QVhWaUxxMkZl?=
 =?utf-8?B?ZW5ianhUMS93YzNvdkdzWVlrdVBnZWpYTUw0OWU5aW5xS0VQb1FMQUZSTEVP?=
 =?utf-8?B?R2JJVzVHNzkwQTY0dDdzVXBhU3RTNVVJb3Yzb0tML1lpT1JtNEF6NUZnaWpY?=
 =?utf-8?B?c3pqWTNTMzE0cUNpdzRYNGh4TWxQZ3hHb2t6bXpqM3NxbnU1LzlXWVlVZzJr?=
 =?utf-8?B?cGRJa2M3T2xkaXhTV1VobE43d3I2bGt4WThyamVNcEpKR0I1ZFZaNzR6OEdl?=
 =?utf-8?B?SE8rWkRGM1lCditiaTNtRk9wK2JHMGRjRGluNkZJYlhuRjBNSlFPbU11YlRq?=
 =?utf-8?B?UTVMZ0tGVHM5QnlnaFFyQzIvRW0vZ0h5RklTME0zQUVMcjJicFhVNllJTDlF?=
 =?utf-8?B?SHNsc01qUGd1MGxEc1E2MnFuQWs2VXJuSXg1WlJCOUhvdjV1ZjZRcE5VaXNo?=
 =?utf-8?B?bmlBRW83eG53a3pGdXhadHcvK2w4emdWbk10ZDZWRW40RnIyOTNUcHgzSE5I?=
 =?utf-8?B?djJXbTI0QS9qRDFBVFNhdDV1TXJiV0hEWFlQdlFhb25hckpBS3N2SWFCOUJ2?=
 =?utf-8?B?eVNqZUhtYmVZM3IwMlI0a3pqWU5sTVFlLzQzREtqWkRRMmJEbklDUHhoRVhO?=
 =?utf-8?B?QVVsQkFPWWNTb3BrZ0VjVWJTTzlaNG5NWGZnWHBQTVBWVGttMUpRN0JObG5l?=
 =?utf-8?B?eEYyY1ZpUmsxcFlBZ2RJd3c3V2t6aTVLV29MQlNxOVltUHo0UjNrYlRYR3cw?=
 =?utf-8?B?SGJ1MDM5NFgzOXAyQWMyZ1lXaVd1bXh3b3RZUU5LWU54K2lyRFd1NnZ6ajhF?=
 =?utf-8?B?ZlZvUDBrbjVTMGZEZ29PeUFHNXplVU5zb0Z2bjdkOTRmS2xWU1hwL3JkdHRu?=
 =?utf-8?B?c2I3WFlOVjBkOXY3V1hIQURHOHBrbXN5Z2czSEhhc2J2Z1JnaWcvbndta1ZP?=
 =?utf-8?B?M3BDSC9TdkN2Sjk1eHRMRlZ5RlpxMFpuUlVaYVdKNllTQktNNTQ5ZDFsb3ZT?=
 =?utf-8?B?ejF6SFk1a1l3NytxS3BhM1FBejh5YnhMYUpMQXRmRmN3NjhnNHFPTWFISjFZ?=
 =?utf-8?B?UURnNnJTSXA0Y0tjR1NZRUd2M3cwRWdPbGpFREhtYmpoNHNOODcxR2EwZGZN?=
 =?utf-8?B?Y2RWSHU5ME5vQ3VPYllmdjdYdEx1Rm8rWHorSE5kUk1TLzBUTSt6ZFluNEVv?=
 =?utf-8?B?NTkvSGtLUkcxNFFJM1g5eTFuWkU3a0tFblhVelZ2UlR1ZG1ZZ240dmVyUVU5?=
 =?utf-8?B?cTJYK0IxQXRjVVUwUjdkQnlNUU5JaXRIY3FtLys5allEYUx2UldlL1Z6UHd4?=
 =?utf-8?B?Q25hbFFqYlNJV1RMZTBWdzVkT3J3ZkJ3L3NXQ1RtQ092Q2hndFRXMXROM2dx?=
 =?utf-8?B?cDZHKy9SdHBmR2VGSWJWbzlFUHQ5VTNOeWVrUlIwWDE4em10ZHNISW51STVV?=
 =?utf-8?B?M3ZGSDNuUStlU3N2aHhJNGhpZVplY216TGZFTC9ZT1BzaEVvMy83RTViU1Bj?=
 =?utf-8?B?KzNhdUJlRERZQUx1a28vM1VrQUo0S2Y4VlRYdFh0RHRYbTFBUWhIU2V3ZHh5?=
 =?utf-8?B?WUllUE92cVZWL2xqdHQxVG5STVZFMnBtTzc0UTc1RVlWbCtvSi95QT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 27390ae3-9a6a-4c49-7cf7-08de737e86b1
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 08:27:19.7035
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 1SSzfTPPQii6Fuw6oLvOzxsf3zMBr27U55o1TBr+ttJbVqyke00Z7nNQw7pif+jIx3cHMr1AtLdq9CoW/r+DTg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR03MB8324

On Mon, Feb 23, 2026 at 10:05:15PM -0500, Stewart Hildebrand wrote:
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

I'm happy if you want to fold this kind of typo fixes together with
other changes, if you are already doing other fixes/modifications to
the MSIX code.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 08:53:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 08:53:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239532.1540935 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoAN-00016C-SN; Tue, 24 Feb 2026 08:53:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239532.1540935; Tue, 24 Feb 2026 08: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 1vuoAN-000165-OX; Tue, 24 Feb 2026 08:53:15 +0000
Received: by outflank-mailman (input) for mailman id 1239532;
 Tue, 24 Feb 2026 08:53: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=Lz8P=A4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vuoAM-00015z-Bw
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 08:53:14 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3eebbad5-115e-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 09:53:11 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH5PR03MB7816.namprd03.prod.outlook.com (2603:10b6:610:210::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 08:53:08 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 08:53: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: 3eebbad5-115e-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=HuHYKq8m1i2xEdIqa43Q4wFgzpaPH9iRQ5z4W2l0oEBYQohrxWHBX+s+NMkGSxz14cCpHOj2oX+Gt9aGTlx1HyW2JLulgp6sJ/3AiJfSFZBxo3G+UE/FKI/rZhlyXtrek3+69kHdhO/nU0/u0WKf+/yEONYMzxJCpOXxpCfIca/vMbMgZUG/a+aBXFzjf5KJjh0tkG9A7g6UP+K34w5xP/QKqJDIuqntk4BHBzFFum4ppTsCfCvUJrySBEUTD3/detEHi0L86BGjFVw/rN6C1yuX+uiclz9xm++TbrmLbSiYnxKo6Xxj4wX5Y8i+2a83B04fSpzdmWv43bgWGP2HUQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=QaK/nnNJWzHaNc7e1YCLZ0K2DDioy2q+G1cdmPzMmTM=;
 b=fbAv9qXcl5gMpqafii5uL69483JV6eI0A3iy8SBRlhWe+WhPTKc1lpt7Nq6AUBbL/CoGbS1zv234qUbMfEL8G8mmWNgClA3juB2cZPgH7A9mznfhypeoT4or+SqIPSDxaNVfJL2EHDth/z0Zkbphvx9/bHsyz14dIgdWOLqID7qqbzv+TusZ9109BOk+ig1N8SS+wuvWJakFsAwb+ZSg1rAIQVcMY+elgn8WFErRvtgBNqdv3MlvtGQKaFPYkLwhlqWxxb2wfLYSGZrsiJ5xR3SZN0P1qFpF7g1ITmh/p44PRKzS6S9TXkdeJ6u07FjHlLlmlnlxByYTrvg0kEBI8w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=QaK/nnNJWzHaNc7e1YCLZ0K2DDioy2q+G1cdmPzMmTM=;
 b=xRFzRxjbpOW8Bjky80IGRwlWAaKK43sRCj0QEv7RMImlJXIvzgAxUae+zT8aDpHM8fKfdzE0nCx/bfJ6pgVkDjxbwmIVIsiQiVMDsmOAG6Q2D9tMlRlbkrd51mHmSOthphgYp7Jv7GMsECa4BrLlJHtKAP+60z/iZaeUnsO/ug0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 24 Feb 2026 09:53:05 +0100
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" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/2] x86/cpu-policy: move CPU policy library code
Message-ID: <aZ1m8ZcXyiEBk1Sf@macbook.local>
References: <4bd68e41-e665-4992-9d3c-0086bb5195ef@suse.com>
 <7c06bd5e-fad2-42cb-947f-6749f647b068@suse.com>
 <d8eb4220-da82-43b3-b0e0-9d006f68877c@citrix.com>
 <e5e75e36-a383-4506-8e59-288faeffb614@suse.com>
 <1d85f83d-45c9-444e-8db4-3e0962aad0a6@citrix.com>
 <11c2f97e-efa8-46ea-8605-4ce6cffb9683@suse.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <11c2f97e-efa8-46ea-8605-4ce6cffb9683@suse.com>
X-ClientProxiedBy: MA3P292CA0061.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:49::14) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH5PR03MB7816:EE_
X-MS-Office365-Filtering-Correlation-Id: 667cd41c-38c3-4d92-efa2-08de738221c7
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?QkhuSzRGYU9aSERTZzA4RHd2c0VFbjJOa0dKMkZ3R1EwaTVmZ3Fwek5jeE5F?=
 =?utf-8?B?NlhmbkFEOU5iNGVoa0xpeWw4Y1VKRmZqWEtEY0dPcFdSaVYwSGNNbHlubEk5?=
 =?utf-8?B?MWlRTUR5WW9EVVJseVRMYkhBRUJKL1d4OGhsNDZ1VVZ5NTVNV0xSM2VqdmtP?=
 =?utf-8?B?VDN0OWtFRlp2cWxLUG1SZk5RZGVHTzJsMmZUUktSOExzY2V4bG5UTzkwMmhI?=
 =?utf-8?B?aUV3YXhCanVHcXJ6L2lVeElrc1EweTYwczBaS2FwZEJIdExwYkJHeFhmZmxs?=
 =?utf-8?B?azlWTDNHeURFektrc1lpZkwxN3Bzdkk3L3F2Q0NUZ3ZZdkJ2c212bGRpTlF2?=
 =?utf-8?B?dVJyeTI2Q2JiS0RkUEVaMklNb1YrOEhURVY4d2VvRGMyWkovb2o0RkdZbGE3?=
 =?utf-8?B?M3BjV0Nmd1g4U3FXOHE2Zi9GNXpFaG5LNVl1OVhKNHpQSXQvRVF5enU2R1cw?=
 =?utf-8?B?SUphL0JwaTlQVG9qekFnMFc3TXFOd0Z0ajBLRXc2aHYwTnNTSUJBRjFUYjNC?=
 =?utf-8?B?RHBacEJraTAwdkpxUTViMzZiMVJWd3BKZlJIYld2MmQwdTVoOHB4dGRzR1Jt?=
 =?utf-8?B?NFlaZWxLM3B4NU5uR0h2WEhXQkEwMEVqQThxdFcvOGpOVFphNzNBeEtUNmJB?=
 =?utf-8?B?L1I5bTNrMGw4cC90QW96SGpWeStUZUdlQUlDRnJ4dTVHc1lEN1IzVFhjMDVp?=
 =?utf-8?B?K2Jtazlpc3RjS2V3d21IYlV3TFVmZFFlcWYrQ1RWeCtJSE1nanZKM3R4ZTk2?=
 =?utf-8?B?cjdMUG1jU3lCMU1DWkU3MExtWGtKZVdKMldrbEJvanNqVk9OaXN5RkVYVU9h?=
 =?utf-8?B?OGRkdUgyQXBxckxxK2hzT0pmN1I3eEhPdm1KdGdDdjc1bjdyL1RqbnJGcER3?=
 =?utf-8?B?OEJkbGg1dGlVNHRnd1ludWVWcGcveXpldGZTQlVsTklvWmJ2SnBIMWh5bTJQ?=
 =?utf-8?B?MHRWT2dkRWU2N002bnlRNjN5bVhnS2xsclNjei9FUDI3SVE4RTFwS1pHWDAr?=
 =?utf-8?B?QzlpWTlKUk9RSW10WGVIRTBxc0lueEZOSEM5UHQ3UXBnZkxKS3ZSdVN4WEZt?=
 =?utf-8?B?bVkrRC9IMXRJMkxiUTV6b1p3TmQ1WmNyeXFWbE5JWFozandwR0Y1YndVNEd2?=
 =?utf-8?B?MWNNUjVWMVJjbHIvZVFHNTAvVktsQUpoKzR4Y3ppYjdteWhTYTZ5dmVrSU1Q?=
 =?utf-8?B?WFE2MnNoZHdYbWtPQ29sclgwMVl0dUh5MWVVS2JLOUs3VnJKako5UEZ6Ymx1?=
 =?utf-8?B?T0pmdmxwUXRoMHNkYjc1WlFZSTE1bVBucHRXcDNFTUtaYnkxa2F3WllJYS82?=
 =?utf-8?B?OEtZL09zMUtyMThMakFNNGpUM2NIOTd4bGNublVPeStjZ0M1c3lpT0pxSlRa?=
 =?utf-8?B?M09jYTRlV3ZTUDBSL01pRmpEdmdGbHUxUzNES0R6MFREajVYOEVxOFFpMmJq?=
 =?utf-8?B?OTVBd1lNM0VWOHFKb2EyOTBnbGp4bGNzbHd6a3pBbzJMNUlmMVhwdno4VHRy?=
 =?utf-8?B?ZDFvU0I4VTZiU2w5Tk5xazArd0U3RGlvZHJnQ3E4K0g1RXAyMEx2S2tVb2lX?=
 =?utf-8?B?WW1yRldza0M0RGhTci95d2VneEFlSmlHa0hadHBvT0NsZU5CZXV4MHIrbC92?=
 =?utf-8?B?OFY3Tk9wbkwyZ2diWW5DNzlIcFBueGtBRlZwTk9jSjVKQ3JIQzd1aVRzVEk5?=
 =?utf-8?B?Wm5Bc1RqUWhTWkg1WnRQWHRhOCtxdjdOc2lJMW5vWEQ5QytaVlZ2TUJNb29U?=
 =?utf-8?B?dUtDUTNZYmd0K1p4REE1SU9ERkNnN1BmWC9oSVVWWnRLMUpkanVnQ1NvRnJQ?=
 =?utf-8?B?TDk5cG9zbzBIVzhScThuY1YvOHdDWHh3K0hFTTQ0NW94SUxxayticzF0eUUw?=
 =?utf-8?B?T0xmbGJnK3doT1pST0svY0RHRGljTmcrU1lBNWN1RUoxMkIydmZ2VnJEeHIw?=
 =?utf-8?B?UGVKdTBpMEdDckxDc1NITjRYQjVpbjQrQkU2ckJIc2N0NjRlSDladndVamUr?=
 =?utf-8?B?a0dySEdpS2QwNWxSa3RaZVBRemI0L3c1Q3ZhVUp3QXV4UTh4WFIwSkpnUmZj?=
 =?utf-8?B?QllCOXJmbmQwcFdoUzFEWVltOFZGcFh6TDJPMThlTHFrL00raEZWa3VkNFR0?=
 =?utf-8?Q?S2jw=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cTJxZ1NkZHJpZ2NNZTFmMmluYW10MkRYaC9pZHJDUlpXeWpaSXNFN1VFaUVG?=
 =?utf-8?B?eGV4clFMN21WUnRBYzdaakZiYjdXb2k4NVdLNEZ6em12Mjl3TnRMaWcxcnpj?=
 =?utf-8?B?M21kaDkwcnRCRGJTTjFSMjZTMG9PdVF6MWhISitXWDZJYUtpd05OSkxTNGYx?=
 =?utf-8?B?dUU0Q3J2SGFyanNkTDV5Qy9zMzkwY29RL2ZEdnRGU3F4Ty9uYWtCcFFNTnNQ?=
 =?utf-8?B?NDU0QUxiMFY4NjEvRkJiS2dvN3U0S0VYV0FOdVVPWThrSkltdmNJTWhvVTgz?=
 =?utf-8?B?UEJ1aGpOM2p4KzdhZm5QOG1iS2FvcTJHa3pJY1VHZDMzNWNhSTBTWHVtdDJx?=
 =?utf-8?B?bVc3bmdpT3I2SUZkNkNjUzJhdW9ZQkdHZnM0RG9ESEdHbVpXeUdyb0hmc2JS?=
 =?utf-8?B?M2d3eUdNTDFWajJScVZrY1U3Tlc1VHN6b3VFSmVnL3RMOCtiYkpJemM1T2l4?=
 =?utf-8?B?UW1YZHc5QjBPdnZjWlZtWitYSmpvWmp1WGJ4NWY1OStWc3VuZnFaMzBFMEZR?=
 =?utf-8?B?bjhNZjJXQm5SOUN4Um5Ud29qSDArV29odzBvQ3NBUVNYbzRQazZFYjRSWHZi?=
 =?utf-8?B?cjVvYWFidDMrQW0rbFU2eXFsdEhrejVhbVBtc09kRit4bmY1L2hTbkViQXZR?=
 =?utf-8?B?SmxEM0RXTi82MEhwcmxmZjhuMFhJMTE5cGxub0pPekhiWE1Jd3ZDWlkvdUFR?=
 =?utf-8?B?ckliTy9iVXRNSmJyRjRTR25MZlljemg4TmRHME5lS2Zkc1J3MHN4YnBHVzhp?=
 =?utf-8?B?RzEzRmxWb2Q4OVBJSVZPOWtadzM0RDdJNVN1ODBkWC92SGNWMnRJWGd6Z2s1?=
 =?utf-8?B?NTkwWHE3QUdnTHhoZ0xKNWx2OEVwRDc5ZUtVL3p3UEhCaldGRm1kUjBGVWdM?=
 =?utf-8?B?cXp5Y0lKUWtZR0RiRTFDeDhqM2VrVjFZc2Rvd0NmeFNXVTJXMDNWUW5TY2FS?=
 =?utf-8?B?eHVqbzRHMVg2YmJEYkk4NjdYdzl0YTI3Mm9GYmE2T2lrNHFwaDI1YldTY3dN?=
 =?utf-8?B?aitVODZJbkpWQTJuUkp0d3BONXlrWHJuTGdhTjhvN2JJUDh5cTJqZUlpYStk?=
 =?utf-8?B?a2Zxa0YveU1hR3cvZTRMdDlyTjVQVWZLREtab01WUXhRWUdyMURlOCs3L3ZX?=
 =?utf-8?B?MXBYbkhkb1dpU29DampaTnpYaHBpaCsyU3JtYm1qdmpqWmtlbC96cU1XcXd3?=
 =?utf-8?B?ajhaYi9LbHNJa1NkVHh4VTB2eVl2VGdXc2tLVWthZi92ckFIc3VEWkxsTnN0?=
 =?utf-8?B?SmxpUTZUNDR3N0NFaG9UeFM0QXRsaW9TY2w4aE5NV1QzZXM3UkhQRFl0Q2Fz?=
 =?utf-8?B?OXVCSHZTKy90cUFNVnJidFBjWE1VY0Yxd1hQN0pRZHg4dVEzbk9ueDJCdjdB?=
 =?utf-8?B?U2prQUE5S0owNmlGSTFqT1orWkpaUnRNci9DNm93ZEJDd2lQWmFFNE9iNkdX?=
 =?utf-8?B?YXVWblVNeXFFVllRb3JWeFI1UzEyaytqNVVvNU0zdGlKZjVabTl1dHJHc0ti?=
 =?utf-8?B?QnJnd09aYmhzcHl6S3hNS1M4KzFCSUZHdktGZWZWUWphMG9ZdTVFNVNMUEVn?=
 =?utf-8?B?Tm9ST3l1WUVnbS9RbjVqQVNsNGYyVTcyeFVPL3pES0tacCtOUU84N3ZsRkdK?=
 =?utf-8?B?UW9wdHV6RXVkd1ZFb1BKN0tNd2d1WGNDT2g4YlMzbUZlaHNVczhzM1pnZHJ6?=
 =?utf-8?B?RmwwcU54eS9uZGphSmxscUtZc2krZHpIOS9QaU5GVi9ZeHRNcE96UDBUWVdi?=
 =?utf-8?B?UWVEUmJqU2VxU0laQ01hWDRTV0NSOElsNXRoWUh6RWdrVnRSaE9jSVRIdncz?=
 =?utf-8?B?djJMUXNwRnB3QVEvdUNkNXRjOWE3S3dGUkp6dEtTeXRqMEJnUzZkb0F3Z2Fx?=
 =?utf-8?B?eUVOWkhlZytpTmpzSmJNeTBaeEZxZFpOcVhkdWtINDZTa1R5R05vaC82b1Nu?=
 =?utf-8?B?LzFodnIyWjFsL1Ywa0FYQ1AzUFhDaTUyNkJnbGVmQjRuaW9OMWdwQTJIVGZF?=
 =?utf-8?B?MEs0KytGa2hlbHA2OEFXUy9HRkV1NHd2ZXd2ZTVaamhhelhIanMxVytvblRO?=
 =?utf-8?B?M0NFeGdjbjA4eFo3N1B2YU03aFNlRUpreHVOMHFQU0ZyMTZZWTVQN3laYkNH?=
 =?utf-8?B?UXNJbEthRm5lQTltKzdtZTBrT2JBSFdrcGV6N3haOEtzOWJ6YUpndTMyT1hF?=
 =?utf-8?B?SmROTkNsaUd1emZVQVhPcTFhcUhJUk11WE9xUzJUTlVuOFhHU0VCN0JMYUhC?=
 =?utf-8?B?OFlLckpiMlZ5aFp0UWJlTDZ3ZG9nWDUrRVlsd3JkQ21zZzJ4bGhnTUlnMWVS?=
 =?utf-8?B?R0E5WGRlblQwUjI4SmV0T2ttOGdQNFdUamt6S2lnUkNPU1pmZHd0Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 667cd41c-38c3-4d92-efa2-08de738221c7
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 08:53:08.4707
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: sD0sAxkhGT2jM2mOHKXoQwCXKGgZSqzDVBM+EJTRTeZUtdLrMFgA8BeVwmYnV6gPi2+hAPoebasq6eX37WUWdQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH5PR03MB7816

On Tue, Feb 24, 2026 at 07:54:29AM +0100, Jan Beulich wrote:
> On 23.02.2026 20:00, Andrew Cooper wrote:
> > On 02/02/2026 4:26 pm, Jan Beulich wrote:
> >> On 02.02.2026 16:47, Andrew Cooper wrote:
> >>> On 07/01/2026 2:17 pm, Jan Beulich wrote:
> >>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
> >>>> index 0203138a819a..be6c76d2934b 100644
> >>>> --- a/xen/arch/x86/arch.mk
> >>>> +++ b/xen/arch/x86/arch.mk
> >>>> @@ -4,6 +4,7 @@
> >>>>  export XEN_IMG_OFFSET := 0x200000
> >>>>  
> >>>>  ARCH_LIBS-y += arch/x86/lib/lib.a
> >>>> +ALL_LIBS-y += arch/x86/lib/cpu-policy/lib.a
> >>> This wants to extend ARCH_LIBS-y surely?  Is this a rebasing oversight?
> >> No, this was deliberate. The functions here are different from those in
> >> arch/x86/lib/lib.a. We don't need to fear collision with "common code"
> >> ones. Hence I preferred to use the more "normal" placement into what's
> >> passed to the linker.
> > 
> > I agree that we don't have the explicit ordering requirement that we
> > have with arch/x86/lib/lib.a.
> > 
> > But, it still reads as bogus to be putting arch/x86/lib/cpu-policy/lib.a
> > in the non-ARCH list.
> > 
> > What difference is there having this a little earlier in the linker
> > arguments?  Nothing AFAICT.
> 
> Indeed. The sole reason why I'd prefer things as presented is that putting
> stuff in ARCH_LIBS should imo be the special case (i.e. requiring a special
> reason), while putting things in ALL_LIBS should be the default.

I agree with Andrew that it feels weird that arch/x86/lib/lib.a is
placed in ARCH_LIBS-y and arch/x86/lib/cpu-policy/lib.a is placed in
ALL_LIBS-y.  If we want to do it that way it needs a comment
explaining why they are placed in different list, otherwise it seems
like a typo on first sight, and it's likely to confuse people in the
future.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 08:55:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 08:55:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239544.1540944 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoCf-0001gt-BK; Tue, 24 Feb 2026 08:55:37 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239544.1540944; Tue, 24 Feb 2026 08:55: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 1vuoCf-0001gm-8L; Tue, 24 Feb 2026 08:55:37 +0000
Received: by outflank-mailman (input) for mailman id 1239544;
 Tue, 24 Feb 2026 08:55: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuoCd-0001gL-Aj
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 08:55: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 941d545b-115e-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 09:55:33 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48375f1defeso36813665e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 00:55:33 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm277044795e9.13.2026.02.24.00.55.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 00:55:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 941d545b-115e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771923332; x=1772528132; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=pse68QmsMZ2mYBtP5DOaMmGWE8cCC9HDLA/Vs7gWXZQ=;
        b=VJmsTbCujRWATth8aNRiVmHJC22eVuVzMH8BVCUJfuxd4An+s6OvNfLLzmhaqyi32K
         rU21RzomjnVB+SCmzclSb8JeFpbksiqYcvMyksrs3gpyOftbNy3ALgfkba3C9La8npMv
         iywAdz1lIfdIxIs2RotoWzw1Kd//FWbzHE6YgyoGckjtE/KVkKvGI3GdFADHlxLWUZhn
         4lGSgqIkO1lE9SaOTurhirsQ+hXJco/BVv9a891uL6S1pUtzdRLhjTojrLOyBsuGjxbR
         tirk5HAihylh9mY1nJiK0a/fMIRzFTWQlS1TOBJByUi8Eb5Hoz3bubhx9buvvsjOBCxk
         eNcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771923332; x=1772528132;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pse68QmsMZ2mYBtP5DOaMmGWE8cCC9HDLA/Vs7gWXZQ=;
        b=eFB+XL9u2p1LgS1Xbi6k2eHrEwAzXCETYPGRverADV0Atn9+CKlSMBeEkRoIIm06/J
         6ImIVpEOyGDZJK3/vosulM/mnu43duM5Fs8uTUSx6+KXyfk9zSbeD9Z2UhzAUb/BT4Z5
         nIpNUdxZ80PMHMHGTehlQW1kyvocu0zA7S0wkKXoN+n3zhrMQrqXFBEd6h6zSKirK9ct
         QeHcAtL48EU4DU8RbAeRv1SmBjL4iUlrvAsbxU7PF7lxAmItXTdCoPn4SNDGzJBEBGcr
         YtiYNFWX6DTrt2dW2OMJdYT6jzo7frQGMg9itMdS2Dj5kvAGicY/v3vh8Gp0XREsxlaj
         494A==
X-Forwarded-Encrypted: i=1; AJvYcCV3DMQETnFAHTykKNn2XyrHM/F5LBjkdiW9EYFLEhh/ITrCiYVyvxWamUemXs6YTG3p2okuoVvvNuE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwoGIw5tu3cT+WXC6OTMfcOzhxe6B+xqRQrDn6tFWyNcG/+olmr
	R0Els/8a9EjNNZIn4fLSahRzdO6sZ+5tdpsPGGIsqA2gEOAGYRz2Wi4+EwiHa1YucQ==
X-Gm-Gg: AZuq6aKgDi/L2yhgu6PyW/EQljkhQLhNR1lc6O2R3oy819reKfUMV6M+tOO2KdQiJJa
	QCYr6w9K5o3OEdn1eHym7abO7PSbwk1+TpxF5RV3P3ohgsTJicfWMNFtzakpMHZfh1/q49Wrnr8
	Kuxx6C7seN3oB93LtShi9X8QqqxnAGdrycU5Ts+ji76INDhxvxnv3qQZZ3zBvciEb2kNOYUrU96
	vPDEoeUppcuGuaXNYUyo+E54uMUik8Erb+pPvv4tizDQwBj0A9Yr1glmzYeOfxElt7JsAQeRhzc
	65qRwVcHH/r+0+r3FWorzEDL4exT7ZbI6tgjM3Kkwi0mJw/Ue3LmCdn/vzfLt+IxF3C9UJGTgtb
	qVCATZ1vEdH4S5I8eqeYZQfBUq8/ySiRnC9jS5O/EfKwGaRdG1feSf3uOgHW5aJ+TqWpipyuJvk
	tSw9bzhL5l7OCswxoDpdjqhLlnnF9K/+IIjLhPfqEJX851se3C5FEevzO0q6fsCvGhxoKUVYfgb
	suyUYllZJ1g8uQ=
X-Received: by 2002:a05:600c:1e1d:b0:480:f27c:6335 with SMTP id 5b1f17b1804b1-483a9637a55mr204577105e9.25.1771923332163;
        Tue, 24 Feb 2026 00:55:32 -0800 (PST)
Message-ID: <fee7d624-68df-4fc2-b340-e1e72a341fa8@suse.com>
Date: Tue, 24 Feb 2026 09:55:31 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/emul: Remove fallback path from SWAPGS
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: <20260223170856.3594016-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: <20260223170856.3594016-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 18:08, Andrew Cooper wrote:
> In real hardware, accesses to the registers cannot fail.  The error paths are
> just an artefact of the hook functions needing to return something.
> 
> The best effort unwind is also something that doesn't exist in real hardware,
> and complicates following the logic.
> 
> Instead, use an ASSERT_UNREACHABLE() with a fallback of injecting #DF.
> Hitting this path is an error in Xen.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> 
> Tested using LKGS's extention of the test emulator for SWAPGS.
> ---
>  xen/arch/x86/x86_emulate/0f01.c | 23 +++++++++++++----------
>  1 file changed, 13 insertions(+), 10 deletions(-)
> 
> diff --git a/xen/arch/x86/x86_emulate/0f01.c b/xen/arch/x86/x86_emulate/0f01.c
> index 6c10979dd650..760f5f865913 100644
> --- a/xen/arch/x86/x86_emulate/0f01.c
> +++ b/xen/arch/x86/x86_emulate/0f01.c
> @@ -192,18 +192,21 @@ int x86emul_0f01(struct x86_emulate_state *s,
>          if ( (rc = ops->read_segment(x86_seg_gs, &sreg,
>                                       ctxt)) != X86EMUL_OKAY ||
>               (rc = ops->read_msr(MSR_SHADOW_GS_BASE, &msr_val,
> -                                 ctxt)) != X86EMUL_OKAY ||
> -             (rc = ops->write_msr(MSR_SHADOW_GS_BASE, sreg.base,
> -                                  ctxt, false)) != X86EMUL_OKAY )
> +                                 ctxt)) != X86EMUL_OKAY )
>              goto done;
> -        sreg.base = msr_val;
> -        if ( (rc = ops->write_segment(x86_seg_gs, &sreg,
> -                                      ctxt)) != X86EMUL_OKAY )
> +        if ( (rc = ops->write_msr(MSR_SHADOW_GS_BASE, sreg.base,
> +                                  ctxt, false)) != X86EMUL_OKAY ||
> +             (sreg.base = msr_val,
> +              (rc = ops->write_segment(x86_seg_gs, &sreg,
> +                                       ctxt)) != X86EMUL_OKAY) )
>          {
> -            /* Best effort unwind (i.e. no real error checking). */
> -            if ( ops->write_msr(MSR_SHADOW_GS_BASE, msr_val,
> -                                ctxt, false) == X86EMUL_EXCEPTION )
> -                x86_emul_reset_event(ctxt);
> +            /*
> +             * In real hardware, access to the registers cannot fail.  It is
> +             * an error in Xen if the writes fail given that both MSRs have
> +             * equivalent checks.
> +             */

While copying the comment to the LKGS patch, I wondered: What "both MSRs" is
this talking about? Both here and for LKGS it's ->write_msr() followed by
->write_segment(). This hence might be alluding to your further plan to
avoid ->write_segment() on these paths?

Further, both having equivalent checks is either only a justification for the
latter not failing, or only for the former not failing because it writes a
value read from the other MSR.

It's not quite clear to me though how to best re-word things.

> +            ASSERT_UNREACHABLE();
> +            generate_exception(X86_EXC_DF);
>              goto done;

While mirroring the change, it also occurred to me that this goto can be
dropped, for being unreachable after generate_exception().

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 08:58:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 08:58:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239555.1540954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoFe-0002QS-Ol; Tue, 24 Feb 2026 08:58:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239555.1540954; Tue, 24 Feb 2026 08:58: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 1vuoFe-0002QL-MA; Tue, 24 Feb 2026 08:58:42 +0000
Received: by outflank-mailman (input) for mailman id 1239555;
 Tue, 24 Feb 2026 08:58: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuoFd-0002QF-FU
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 08:58: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 02726321-115f-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 09:58:38 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-439857ec679so358831f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 00:58:38 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d5463dsm23743310f8f.34.2026.02.24.00.58.37
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 00:58:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 02726321-115f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771923518; x=1772528318; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ToT0AsUW4zTeFecS/gTwqDRLLh/cGsddDIC4lq3qFfM=;
        b=aRqGkr2QJxl/Mc2pMdSJnS/HrVkkgNMMhzKL4Zjdi/jf9mi3BVMWZphncp6TrluaXk
         2c0AGyJwlWxLcsQbx5qvdD1rRnjGHuVEHKb4gDzj1laERUn0/tUpA0Aaf/a30GxollRy
         T4m4JhRu0CKKzGK3+TY50XGf3XrcYRU+ITgWr6nJAIHKZEn36+LBLPl1KHj6M5psh/PF
         5UWGsjieK/O1pPBa1KMxiZx79mztnk0O6pOuuUiEzCDXi/pdSR2d/5wafFBKpDT44Zd+
         rDe/YplEBVC3DpPZxxkgDGaDif/oz6TTKoPJfuSWkYuMDmMprKxj+Sc9VM5wjE29yMrE
         ISuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771923518; x=1772528318;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ToT0AsUW4zTeFecS/gTwqDRLLh/cGsddDIC4lq3qFfM=;
        b=jpHaL/BKIDCbfI/a6gHoF9sQD9FmxPPFGxHAAAg0CW+XcA4IxFUm6UuWpa6sCJX7AD
         6efQImKDQfLUGrVQK/X2i7rtg14LS4XCMXGPCgdIkY5grE+fiot32P3l73DvDI9jVe68
         HKisQDbs2HxeRoXhBy/jety0pGroXIxWMCzbA8XXky4TS/ZzXMicEVeQT7TroG+oCKSl
         3DokJ5DTznjVsTg5OTxUK5bbJtdDK9fbbxDMNfxabu0LA/DrJX7lEl8tJ6UUfdDaQDcD
         YSpThMkhSvQXiKrppD4jIorQgX1VLKK2xblRxiWeMTHtwVpzCt802OjujCrIJEaQ+ooT
         B+cA==
X-Forwarded-Encrypted: i=1; AJvYcCUN5V6JImtxiFtPQvqJdUZ0JOJzItOxTOOx/PHgreCTMRVG8PUIms29YjWwxEJSRfKcyuqS1GcycIs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxA8L1ZaKdVYc6c6hTof4qA/ejx3ApJwvWse3NpwKM3y6guZJ88
	+zMbAV5Q7hb6yXmJpqHLcSXZlE36LaXkeRNIyv7VISAumpQNbdmzJ8WBJw00Wn1V9g==
X-Gm-Gg: ATEYQzyBVsSfMEFG1XidYyfQOjUU/L+fmqAQzwJFIYX8afxmGxTtZsvqU6vLN+apv+j
	oZ3Ld7s4xPEHx43kD1K/eSaN/mWx+x8sDEiXUotvpph8OjtTti1WXirpGIfx41r0H3oaYrOyp+U
	sEaqfN/nwtx++3VdowbsGQWFt+7PoaOI4VRv6Z7UPkU4TwtIFG2v7tSSU5j0+24JAvDEAbVkv9b
	+H0sCxU6yidZqCKLhSclQua/i+kvE+9kAbIo5UPtuuKgHDjWlPMCF8NZPBHNsSv8N2GIvp1OU5G
	ksupiK7Mb1CJrRpVchkvlWyqpNLL5j7kXL9PXzHbxCYZPZ5TXWE6vpONZD9EkxBXV9dbwPug4Ws
	nKv98UzTvVaW1Ftm6U09ldBj9cfHzhQO/sdEh1VQJFxKvUpvhZDbGAoOs4qEUb/aEzeSCzzpo1s
	MTk05UcBTMIOtkcF7ljwpKffa64WuuvMMWhXt85IZGbS8ZbYnjCjH1oSMqsV41jBOGDvK+TIohV
	usKVye5hsoRITg=
X-Received: by 2002:a05:6000:2906:b0:437:711c:8750 with SMTP id ffacd0b85a97d-4396f1829f9mr21270758f8f.46.1771923518216;
        Tue, 24 Feb 2026 00:58:38 -0800 (PST)
Message-ID: <c412f399-9e20-4f20-a43d-f0b3c3fa8f52@suse.com>
Date: Tue, 24 Feb 2026 09:58:37 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2 1/2] x86/cpu-policy: move CPU policy library code
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" <xen-devel@lists.xenproject.org>
References: <4bd68e41-e665-4992-9d3c-0086bb5195ef@suse.com>
 <7c06bd5e-fad2-42cb-947f-6749f647b068@suse.com>
 <d8eb4220-da82-43b3-b0e0-9d006f68877c@citrix.com>
 <e5e75e36-a383-4506-8e59-288faeffb614@suse.com>
 <1d85f83d-45c9-444e-8db4-3e0962aad0a6@citrix.com>
 <11c2f97e-efa8-46ea-8605-4ce6cffb9683@suse.com>
 <aZ1m8ZcXyiEBk1Sf@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: <aZ1m8ZcXyiEBk1Sf@macbook.local>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.02.2026 09:53, Roger Pau Monné wrote:
> On Tue, Feb 24, 2026 at 07:54:29AM +0100, Jan Beulich wrote:
>> On 23.02.2026 20:00, Andrew Cooper wrote:
>>> On 02/02/2026 4:26 pm, Jan Beulich wrote:
>>>> On 02.02.2026 16:47, Andrew Cooper wrote:
>>>>> On 07/01/2026 2:17 pm, Jan Beulich wrote:
>>>>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>>>>>> index 0203138a819a..be6c76d2934b 100644
>>>>>> --- a/xen/arch/x86/arch.mk
>>>>>> +++ b/xen/arch/x86/arch.mk
>>>>>> @@ -4,6 +4,7 @@
>>>>>>  export XEN_IMG_OFFSET := 0x200000
>>>>>>  
>>>>>>  ARCH_LIBS-y += arch/x86/lib/lib.a
>>>>>> +ALL_LIBS-y += arch/x86/lib/cpu-policy/lib.a
>>>>> This wants to extend ARCH_LIBS-y surely?  Is this a rebasing oversight?
>>>> No, this was deliberate. The functions here are different from those in
>>>> arch/x86/lib/lib.a. We don't need to fear collision with "common code"
>>>> ones. Hence I preferred to use the more "normal" placement into what's
>>>> passed to the linker.
>>>
>>> I agree that we don't have the explicit ordering requirement that we
>>> have with arch/x86/lib/lib.a.
>>>
>>> But, it still reads as bogus to be putting arch/x86/lib/cpu-policy/lib.a
>>> in the non-ARCH list.
>>>
>>> What difference is there having this a little earlier in the linker
>>> arguments?  Nothing AFAICT.
>>
>> Indeed. The sole reason why I'd prefer things as presented is that putting
>> stuff in ARCH_LIBS should imo be the special case (i.e. requiring a special
>> reason), while putting things in ALL_LIBS should be the default.
> 
> I agree with Andrew that it feels weird that arch/x86/lib/lib.a is
> placed in ARCH_LIBS-y and arch/x86/lib/cpu-policy/lib.a is placed in
> ALL_LIBS-y.  If we want to do it that way it needs a comment
> explaining why they are placed in different list, otherwise it seems
> like a typo on first sight, and it's likely to confuse people in the
> future.

Well, I'll (reluctantly) change then.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:10:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:10:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239566.1540963 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoR3-0005Ky-Nq; Tue, 24 Feb 2026 09:10:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239566.1540963; Tue, 24 Feb 2026 09:10: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 1vuoR3-0005Kr-Km; Tue, 24 Feb 2026 09:10:29 +0000
Received: by outflank-mailman (input) for mailman id 1239566;
 Tue, 24 Feb 2026 09:10: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=+kWt=A4=linux-mail.net=dt@srs-se1.protection.inumbo.net>)
 id 1vuoR1-0005Kh-OF
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:10:28 +0000
Received: from mail-10627.protonmail.ch (mail-10627.protonmail.ch
 [79.135.106.27]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a7c1dbb0-1160-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 10:10:25 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a7c1dbb0-1160-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-mail.net;
	s=protonmail; t=1771924224; x=1772183424;
	bh=hmCCodP6ILfYzHeYMGfQMZKpk8QNNXkJ2el02ynxmoM=;
	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=AJpR02z1d2PZ4TCePIIGRi2UT49zeAl64Y2dAKhdPdj8pSy0gJY/TT1JJ6f2257w8
	 0/D2A/DrT3VC3FRG1KGIvckWP3766Ar92vEzfNJVhDx47itBAvkxqQEf7JQ8sYwP6N
	 2H8BbxR9cSHPkxE2bEE4uEGswusGJwsDUK0wCiWbs4cMaPxMJZFHCRKEvyMPm4UCGs
	 EDjA5VNj/wQXyxCvt+YiazdjUZ/22a/4nQ7XdPnzt+LXaBWMArajIa/FFVGqaHo+LR
	 mSxtgvbtsO9FPcBg3VqVlRwllfMI97Uoapo7Vygdg71zWDyx11zmwwFhoe3TpMAzvb
	 BUHP72VsVrd/w==
Date: Tue, 24 Feb 2026 09:10:19 +0000
To: Jan Beulich <jbeulich@suse.com>
From: "David Thomson (dt@linux.com)" <dt@linux-mail.net>
Cc: boris.ostrovsky@oracle.com, sstabellini@kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, jgross@suse.com
Subject: Re: [PATCH] xen/acpi-processor: fix _CST detection using undersized evaluation buffer
Message-ID: <FvW05oEjY785ua6lBtiEat0hzzY8RM9BeRC-RTwpIQ8QYO7lMvYmJ78U8C0S0vT_TRg4YX4-TzoGEsDvqwUVeX9w89FR47MYWR1oxpFJCBo=@linux-mail.net>
In-Reply-To: <e983d7a2-2c8a-46d4-8112-0d2f2045c93f@suse.com>
References: <20260223195602.17122-1-dt@linux-mail.net> <e983d7a2-2c8a-46d4-8112-0d2f2045c93f@suse.com>
Feedback-ID: 176297775:user:proton
X-Pm-Message-ID: 87b72af72c34525a5deec4dee2366d398fa1be24
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

> I understand you reflect original behavior in this regard, but why involv=
e any
> ACPI function here at all when pblk is non-zero? I.e. why not swap the op=
erands
> of && ? Object evaluation could have wanted side effects (in which case,
> however, some different change would be needed here), but checking for me=
thod
> presence surely hasn't.
>=20
> Jan
>=20
You're right on both counts. The original evaluate_object() call at least h=
ad the appearance of wanting the result (even though buf was undersized and=
 the result was never used). A pure presence check has no such pretense. Sw=
apping the operands is the obvious improvement. I think dropping the _CST c=
heck entirely is also defensible since C-state support is confirmed when pb=
lk is set. But I'm not certain there's no edge case where pblk is non-zero =
and _CST is also not present, so I'd defer to your judgement.

Would you prefer:
a) if (pblk && acpi_has_method(handle, "_CST"))
b) just if (pblk)

Happy to send a v2 either way.

DT


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:10:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:10:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239569.1540974 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoRP-0005fB-UW; Tue, 24 Feb 2026 09:10:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239569.1540974; Tue, 24 Feb 2026 09:10: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 1vuoRP-0005f3-Rp; Tue, 24 Feb 2026 09:10:51 +0000
Received: by outflank-mailman (input) for mailman id 1239569;
 Tue, 24 Feb 2026 09:10: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=8A/i=A4=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vuoRO-0005eQ-6l
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:10:50 +0000
Received: from CH4PR04CU002.outbound.protection.outlook.com
 (mail-northcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c105::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id b2545d27-1160-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 10:10:44 +0100 (CET)
Received: from MW4PR04CA0064.namprd04.prod.outlook.com (2603:10b6:303:6b::9)
 by CY8PR12MB7171.namprd12.prod.outlook.com (2603:10b6:930:5c::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.14; Tue, 24 Feb
 2026 09:10:39 +0000
Received: from MW1PEPF0001615B.namprd21.prod.outlook.com
 (2603:10b6:303:6b:cafe::9e) by MW4PR04CA0064.outlook.office365.com
 (2603:10b6:303:6b::9) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue,
 24 Feb 2026 09:10:33 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MW1PEPF0001615B.mail.protection.outlook.com (10.167.249.86) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9654.0 via Frontend Transport; Tue, 24 Feb 2026 09:10:39 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Feb
 2026 03:10:38 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 24 Feb 2026 03:10:37 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b2545d27-1160-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eYp7OPJ7IAgZZLABcYKpguXUZvkbn6bsu6WLPxbaNP8sM8asy9ZI5RltTMUFQIUdwI1MGAiw/0MIZZ2cTY11feI0I84KRXeq9Igu0U6rA/To8L6tA4r8uCA35tEScUUHlNGaoLoqs6NsZfCJzEfl3HXocEngjKl0Mypn5npRUNP5J7/WoDgcVkyDY8OsdEEITgQ8BXXYun++Vb/a8bVT8xM1m9aQjpO5bV4noli1/APVQuIohYpcMmWdlS0+RbaJhFyKptfzXSxqjpPSVCM3vdmGfjLItc3vHhxqsPymTjZs5Qo7ERefjMgfkIsXieQntXthiEuFPH8U8wUB/JyAlw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=aIwRK5E90pY6ZFVP6iSXQ1JpCUqaEvUscBz2B+kHKNQ=;
 b=n4sqQkVMyNwzhkZ2eFUcMZREBUUm/xJAnid67GBS3G5de2oUuyPo9y80pRADxTwAtbkxv0UcP1LKBZQU+02dvjf34Pi6Sh1CyB/+VG4QpCJeYOlctx5DEMPjBrDVNTbUMhLh/RyZZ1yn9YZ8hKaFm/egspdyHvqIEPjOQk2ApfRNrYQ9jXiQFVGjIDNd8oXbv4bTQ+G4EpirZMeIcJf+OY1i5seUnIGR6TOhcd2bJkmDQR/kBltyFF9jZFCbeUBoZoJy0Ga37pYLzVZfUUCLTaLklUh3DSorl84rjFU3H0/VjKE4ryK/5P+20he0RJ3Y1xDb2SMmMbEWfQbLk/s3eA==
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=aIwRK5E90pY6ZFVP6iSXQ1JpCUqaEvUscBz2B+kHKNQ=;
 b=jgbSKsohiKeupE4g5sklSb+5PUw7fsQTxOqHVI20NjfOVdmEE0P8XmBNY+jJk1cM0IvgNgkmr2/HWC9kH+Odb4LkzW6WUPtoN5IufNsPCvElHHOT4oWWZ0QCcl+B09yTafTOeGivzpfPeRnQZ/U8xg7WBUZEqBmsUqVZl3QxSTg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <55537978-fc5a-435d-a199-3f78adf39161@amd.com>
Date: Tue, 24 Feb 2026 10:10:32 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/arm: smccc: Preserve argument types in v1.1 SMC
To: Bertrand Marquis <bertrand.marquis@arm.com>,
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
References: <0e2ba0af683fa5e53a3d2b4b625703751cf7ce54.1771228001.git.bertrand.marquis@arm.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <0e2ba0af683fa5e53a3d2b4b625703751cf7ce54.1771228001.git.bertrand.marquis@arm.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MW1PEPF0001615B:EE_|CY8PR12MB7171:EE_
X-MS-Office365-Filtering-Correlation-Id: 681e894c-7b58-4d20-3714-08de73849427
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?RHd6a2pibmkyanU0Y044UGN3MTRaSlFOeU9GYnJOUHlieUhnL2lQalRDckJP?=
 =?utf-8?B?dGJLMTI1c0Q3Wm9nRmlUL3lRc1EyT1UrNzJlMktHNGxPTkRYL2Z4SWJhVGNH?=
 =?utf-8?B?d3k0c0xYVGQrNFhMb1MvdHJZNnpSeXUvODJaR0FDcThQNlAweDkxUzdnRjV6?=
 =?utf-8?B?a09ITkhkRjlPVVZRbzYxQ1FMdTJQQnFqMWRGVVlYU3hxaFBhZkVGWGN3T2F0?=
 =?utf-8?B?OFpFTlJObkoyS3VuUnRkMlJia2hHM0trS3U5Y3BBQzRnQlRZa2szR1F0anFY?=
 =?utf-8?B?d0JlY2wrVGtwNEIrUDdZNlAwMTVZVk1TMitBOGpmdlo4aHpEV3I3TTBpZTdu?=
 =?utf-8?B?ODZkd0tFMWU2NjVua2hGeUw3S1FvNEFGQTZrZk5YcTdIM0dxVWoyMGRlWjc3?=
 =?utf-8?B?eFk4TjZnc2VtZjR3bW1DcWt2Ry9NbGNRV1pmU2diUW9hZUk0V1RyVFJEOVdM?=
 =?utf-8?B?b0owb2ZWSHhhb1dYTFhBSTdsajgwUndwbGJwUDdCMVpvQTlETXg3RlFxMlpC?=
 =?utf-8?B?Mk12bzlncmIxcjhYMTZTeWpvekhHaWFqQXdONUhDUjF3SmduY2hTRGpzb21I?=
 =?utf-8?B?M1crQzFqM1h5c29Rb0IvVmlQZW4rUFJJUStENlhidlhxbW9GU0J5dUtYakNW?=
 =?utf-8?B?WUJOY1MwektFVmMxMFRNMEkwS2VndERlejJ5V1FhL3R6ampvRzByamVnVFB0?=
 =?utf-8?B?SkFKc2ZsRGlsb3IxRC9oOWFMNllvZzRhVTlraUVQd1BFWEF6N2EzN2VaSTVP?=
 =?utf-8?B?WmVDNnl0MkowQzhYcWo3ZGd6emNKeENLbCtnNTJsNURIK1lxRHJXeE1NTVhk?=
 =?utf-8?B?Tjd4Slg0KzgrSkovc2xJejlVZTBMNXJpZU9jWHNWOEJvUXdmYmhWaEtTSlp6?=
 =?utf-8?B?dkpyMjBRUUQwc2M4TjFUc1FqQVNBanVhaUtPMVBaWWN4TGxSUFJQSXkvVnVh?=
 =?utf-8?B?TlZWbFBmcU9hWnQ4RTdnMWI1N3lubjIwV2hvNmhxSjMyaDFaYU5wNytZM3NH?=
 =?utf-8?B?ckIyVTdIbmM2dDFrb0RwcFZTOXplOGRnTERUakh1ZlFQcUh0ZG9pOUlWWGpV?=
 =?utf-8?B?REpRME9nNlF4ZWZJTlFiQVVUTWpLSTJrQmoyNDBvOXV6bStkWWxSNm05bzI0?=
 =?utf-8?B?Z1lpL0I4VHBKOGR2bHNuNzVNNFdaakdXSFVRdlVKUDZHRHdadjd5RzhKT0NS?=
 =?utf-8?B?YUZ0R1QxTFA1OEJ3K3F1dHlBcGViK0oyVUxXbE9US3lBUGszeUhwNVBvTkJj?=
 =?utf-8?B?K2t4dmx4eEIzeDA1TWJ1VmpNUVNEcHVQZTN3bFJPVDh4NGJELzBnbFBGa2Jm?=
 =?utf-8?B?OU5HWG4vTVdyZGQ2WEpCeVVzSCtqRG9rOVNpVEFpcDdkaHphU3NaNk5TWWRq?=
 =?utf-8?B?dVhwb2x0bXV3UHBJbWdNQWtmemt6UFZHVkRGNXRJUkNGZTZtVC9EUVFVWHFC?=
 =?utf-8?B?Zk4wcXBZMVd5bjdSOW5VR0crOUlscitJZ1lZSHFpcUZ6elE3QUdSTjFqM1dE?=
 =?utf-8?B?VjkwVkRoUzNGTjlsTk5YWVlzWDM2UVM1VUdDSWZrTzNObE1qTnpiZlVBSkVB?=
 =?utf-8?B?Ynd0REdaUDFrckozWkl5cjhjNlQ2V3FvK1ZFdHpmN0RaV3orRVd2ZW9vTC9l?=
 =?utf-8?B?TG9Zb0MwOHh3M0VtaU93NDZRRVRYOFNaTFdtTUxLL3hTd3VSeVJaVWNSR2RQ?=
 =?utf-8?B?U2Y2OWFHYWYrSWx2Y1I1UndabTYrU3oxTEZSSzV6MXFBL0FlS1JKV21WM2FL?=
 =?utf-8?B?cndRSnZJUGJBMyt2NGJSVTZkazNYdko4NFBHcllYTzBJUTVpUVZGN25IUnpF?=
 =?utf-8?B?dkNoS0dwQ1BpNUJ5dzJERTEwOStkZXRxQjhyaUJPS3MxeHB6VFl5a0tlS0RY?=
 =?utf-8?B?ZHg3SVVkOXNBcUEwOFk1RFJUa2ZLZEY4WWxRNlVoMzFtTU85cTI0MGdKWmJu?=
 =?utf-8?B?c21hbTFPc0Z1ajlSYUlPa0wyYUdTaGpFVHRYckxlcHpEeGt3b3ZCMk5wK1Zq?=
 =?utf-8?B?T1dBSm9zYXlOOXVMTzV6SUFGbFBBTWxUZlY1c2t0R3lRczFTbmxlS2pHNEFk?=
 =?utf-8?B?aXZCTGdLOTQzMldyb253T09lU3BWeWdyaDk2Qk50S2RMbVZEK0VNRlVzaEpy?=
 =?utf-8?B?SjB4OXdLN3EyRmF3ZnMyNStvVEljTTFoMXpwRUV1L0lNTmVHTWJzZm1HcERR?=
 =?utf-8?B?SDkvTk9zL3VKSnFDM0NKZjBWS05LcHI2QVVhUmh3WHNBUVJpVm1jSDg5bWVV?=
 =?utf-8?B?S0FnU2VKaHFaU0FDc1R5RTVHMFN3PT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	/gUDc1YFqOzT6KVlCORA8pHgC7AyMPAIgQreet8oCl/oNWfEsPAFHBWJHt13sa5zHe/UNk4vkgub877GgKamrcVcaKUvSCS9nDMkkRICJ9JkN7ZNHyB0gypy16cnfgq/ReRgBbqtfw20COUSgsLVYk++FYW5oZMDVeoKcg3odbJvazWpZGzJAi7cgUntdsc6LfvgEn9xSb8WnV+Y7RKVAh7SMNPS7SRczhBH9gTcUuRbgZK1bhMXowxRbCZDoxXA/3BrDMZr3UU4K3gBkoNVTjvYq1ZQM0FGZsKZC/REOee89hPyOabZc4ZoAK+P7opw+PNpKHd2jyxauRGPcpk69ZeFFvu2wE2GjupW1tm42GMmn4TuieEIeXxfULdMW6LQWsc2IS1FemaqLB1QKW6ZHxG90Qlv1NIbMth+OZzl29kekpSGPkLgrHG84prQG8PI
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 09:10:39.0825
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 681e894c-7b58-4d20-3714-08de73849427
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MW1PEPF0001615B.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7171



On 16/02/2026 08:47, Bertrand Marquis wrote:
> The SMCCC v1.1 inline helper currently forces a1-a4 into
> unsigned long and uses in/out constraints for r0-r3. In
> contrast, a5-a7 are passed with their original types via
> read-only constraints. On arm64 this means a 32-bit signed
> value in a1-a4 is converted to a 64-bit unsigned value, while
> the same value in a5-a7 keeps its signed 32-bit form. For
> example, a negative int in a2 is widened to unsigned long, but
> a negative int in a5 is passed as a 32-bit signed value, so the
> SMC sees different encodings depending on argument position.
> 
> Switch the helper to use typed input registers arg0-arg7
> derived from the call arguments (keeping a0 cast to u32) and
> separate output registers r0-r3. This preserves argument types
> consistently across all positions. Argument evaluation order
> is unchanged, so we do not reintroduce the issue fixed in
> "e00dc325bd9e" ("xen/arm: smccc-1.1: Handle function result as
> parameters").
> 
> This also aligns Xen's SMCCC parameter handling with Linux's type-
> preserving behavior (same externally visible argument handling,
> independent implementation) to avoid surprising differences
> between a1-a4 and a5-a7.
> 
> Current callers (PSCI, SCMI, platform SMC pass-through, OP-TEE,
> and exynos5) pass unsigned values; exynos5 passes an int CPU id
> which should always be > 0.
> 
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:21:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:21:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239587.1540983 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuobS-0007gz-VE; Tue, 24 Feb 2026 09:21:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239587.1540983; Tue, 24 Feb 2026 09:21: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 1vuobS-0007gs-SN; Tue, 24 Feb 2026 09:21:14 +0000
Received: by outflank-mailman (input) for mailman id 1239587;
 Tue, 24 Feb 2026 09:21: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=7lmg=A4=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuobQ-0007gm-RU
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:21:13 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 24c93479-1162-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 10:21:06 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by CO1PR03MB5713.namprd03.prod.outlook.com (2603:10b6:303:6f::11)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 09:21:02 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 09:21: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: 24c93479-1162-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=DdxYCyq4X9NyXOjIAXBAKXRSqjzOsBkNgJU9tvCiD35iKeVnNAuMp2LYitLKn35lcXxJguNitnWH6T1ZWfSoV8HxLrKQ7Kk6Qnq7m5x3LIT3181C6yOVOEM2FVl9pFGFVb7B7/yEe5WMrFhZz+hFqjwyxcYoOliyn7ZVOuIm0OY2ahiWoRIJa0PHFzYC+/TNQTLzgSfs484/7rzieMfzJUJOsL/DNvcvuZHVnl6K/GTBD2brlQpxlda9w/v7nK8JqeRrljT21/xikktsNIcvjAe1AT7oaiuzxGZdCw2qOCIDNB7/rPvBmihrJqLvWkbniFBfpy9u31ah3ZvLQG5jAw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2xHdK9dyJH56D1Qwv1DILQygt0XKQyXMya5O7DDBEYo=;
 b=y2tpzin2ruKXShMJzZhR6R2eIVJm9H0d5z603WEkap8mywjaFrNetksy9UZsUE8OzBUP2kX7EPR2YqzNTbnK4wVQ8B4ayQH7o5fe/R5A4r0Y6ZcRjQkN9TnYX3bk25h474rLsXO4hTxEvzMUoaWDIrSDmKfSF/dXVVtZOLOsTefyP1BPNsO8QvlWoyVxg5hLuNAMmLzSijhFupVu/2nOl4Au8/iRKJtPn8dO+SJF10L90KUyN9/b/e/f2Qtxxz2d0iILHHApnngONbSvz3rz6vt1D5ztUNSgAjBcmp8IcDMhZOunRUjappJwMpHKXklcf9fSGddDLs2DrUz09+DLgA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2xHdK9dyJH56D1Qwv1DILQygt0XKQyXMya5O7DDBEYo=;
 b=q4i4iyciZ0bJ398OePDyJ7OxJ8fIdOTvybJmjxQSIy/NRBJSCczaaaBjoFIW9o7eK7PBz5bpMNJs8FEmzagtSIodmmsAaX9TwjPCNFDfTtg+tOhFdw9FLbJ4vqM0zc2nKrjmZY83QIrvSo7t706+5J+TQSQgXIdGLqKfmjkJsYA=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 2/4] tools/tests/x86_emulator: avoid duplicating loop body
Thread-Topic: [PATCH 2/4] tools/tests/x86_emulator: avoid duplicating loop
 body
Thread-Index: AQHcpKvjKmbm1EGnl0GnG6Hw+gjp+rWQcPMAgAEjcwA=
Date: Tue, 24 Feb 2026 09:21:01 +0000
Message-ID: <5CB47929-A0BE-454F-B00F-68ACA06A3DA8@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <c0dc7da75ee36d10863a8b28fa2f19b3b4c8a316.1771840208.git.edwin.torok@citrix.com>
 <4711b676-82f8-48ec-a7dd-5c33bc7cd967@suse.com>
In-Reply-To: <4711b676-82f8-48ec-a7dd-5c33bc7cd967@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|CO1PR03MB5713:EE_
x-ms-office365-filtering-correlation-id: e2a8ae64-9280-4162-18d8-08de73860746
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|366016|1800799024|38070700021|8096899003|13003099007|7053199007;
x-microsoft-antispam-message-info:
 =?utf-8?B?bUcrdTZqd2hlQzNEamw5RlcvYi84MDBBak4xNGhZbElIMVJYTFZ6bHVMeXJP?=
 =?utf-8?B?ZWUySG1ZS1dZQzkyTGhNTDRPVHk0RzVTTTZzeVZYK2tEYU5tUWpnUFVTWFVT?=
 =?utf-8?B?NkQ5R2cvZ3RDZ0xON2ZFWWc1cEljNURnWlZjWFErZHh2OGJUQU5rdW9EZHUy?=
 =?utf-8?B?emhFMU8raUFiNm5uMFJQc1pnOG12WTBpVTEwdThSdUpjUjRkTm9oSW1LUGVK?=
 =?utf-8?B?R013ZytmS0dpdklSUW5UaTdUM29RNE5zMGRCeUdNS3N5SHBwNHp3SlZxandJ?=
 =?utf-8?B?dHV5K2R0VHQ1YlRDakVjQTZwM2x1eHd0cUxVSU5vVWxMZWRHNXdtU1VPZkNv?=
 =?utf-8?B?ZUYzcksrYzV0d1owY3p3M21seFpWNmM4THZONUVDRHkzay9mV0h6QS83TnZv?=
 =?utf-8?B?UlBySitIbWVYaTFoa3diTE9SOWRqdzEvTDhkb2ZiM1ExaWEycWlBRnZKN1Az?=
 =?utf-8?B?bms1RFBYT0VscVBoeTBkNWVSUXJpYlBNNDlWQk9XdFdhZGhLaHlqSDNBWDkz?=
 =?utf-8?B?WGRHUlVwdnY0RE9xdzMwZ3JXdW1jbDRiaUtsdFlLNU42Y1hUb1hhNisveGRL?=
 =?utf-8?B?TllhZisvWm1kYVdjdlFGNC8vVUdMaHVEaFNTU09MQnhMY1RSdkdaNElaMHVM?=
 =?utf-8?B?Y3FtcEJGclM3MUtoVDFLNDdKZGNKUiszeURuNjh2Z2tlTXJ3b0RjUmw0N05S?=
 =?utf-8?B?VWQ4UUZLblVLbklrVFlEeDJqbGJNRk9UWVJ0Nmd6YzVKWnk2bHVsVjRsaW95?=
 =?utf-8?B?VzVrcERyUTA1QXNoUGUrTGNYY0IrT09KdWhOR0NMN3pTc08vT1Bac25pRzA5?=
 =?utf-8?B?cGZvY3FtNXpoWG02UnZLWHRmdENOOEhlSDFBQ3E1bW5icnZoNDVpV0ZBNFpL?=
 =?utf-8?B?LzIwdFI5VFZnMStJZjJPcUFkOWxienk3VCtNdnFQanA0ejdScnJNSTVIUzVD?=
 =?utf-8?B?Rlh0RkxRcThFSFA4SXRGdG5FdlQvRE9YemNYNUlEQjJqQ09PaDVHMjJDWXNw?=
 =?utf-8?B?QjYzTGpUVWkrdktIdVFiVzBhaUFGbVI1eHN5a0xBOGtIa1VOa3c2T2Myd1Uy?=
 =?utf-8?B?NVVhdHdZbHdmK0hMUEM1OTBkMHkzSENrRlpUT2tKcWFrRk9hcEI0NkdjL25M?=
 =?utf-8?B?ZmlOcDQxdWNIc2VpcVprZUZSUjN4QVF2NEFobnlRUlJlRE81SEk4Z2JHM2V0?=
 =?utf-8?B?QTEyYmFBOTdTaUpZS3Vpd1BrQXVnT1llNnZBTFZFV1J5elBQekZTaytmNTQ5?=
 =?utf-8?B?ek5DajA1Q054YmNWdkptUVU1bkZ1cWRSMWtwdmlDWmVWY1czUnNJSEdnZ1hO?=
 =?utf-8?B?NmhnTklMQXgzOExMV1JLM3d0N1VzMU9lNDdGNFZ0YjZuTXJUUHRuV2o3QmIr?=
 =?utf-8?B?Z21oS1JkZVRmVGFJaGd5ZnVieE9oQVRXck9nbzRRamtvdzFTbjVxWm12ZlJ1?=
 =?utf-8?B?Q01XcXl1SXJ4RDNLTGdzSG9yeEs3WkhITU5UcHkyUnI1QzIyZ1BkS29yM3BC?=
 =?utf-8?B?RUxLSHJid09tanU2dmloY21CT2x4OUs5ZXhvelIxQ3VZbDZUVFpkOHJKN0dQ?=
 =?utf-8?B?RlloTURJS0NNYWJEQmNuVXBLbDZlRUU5ekdFMzBORHQyTzY0bnR0dTdCWHRo?=
 =?utf-8?B?VmhaMnFHbjNqNlQ2SEpGQW5IdEpCQWpGbmtqTFZEaDZKSUhDc2JadnVoNklp?=
 =?utf-8?B?Z1dsSHlMWU1rS1hpUkRQNUpWOHFFU2NMT1A2eGtwT2JtQ281NGNMNy9QRytq?=
 =?utf-8?B?S3dEZkVtamFBamppakQwZlVabERkNmdtbkVQU0sxejBlSnhhVEMyc2d5UDh5?=
 =?utf-8?B?eHBSeG9xeXU1NHN1RG9Na3pIbjBoQS9hOENMaXRIbXJLZG9TL04vcGRLc2Nm?=
 =?utf-8?B?WkFrWVJZNWRzeEIzREtKVnJEc0V2cXJ1ZHlHaDRTd1hJWTJ5aTl2OFZhUGNx?=
 =?utf-8?B?aXdlR2lFNnhRU2FTcFZNUjlpZ3h3S2pRMzVha1pPTzF3Q2VDejVBRWNOeklO?=
 =?utf-8?B?WDE3VWJ0K0tJcnlhZGZVb2c4YVlkeXhhNzJKSENUbWh4ZXkyRWh2ajhFWUoy?=
 =?utf-8?B?eHZUSGExUW5GRGtTUDh2WU1RYUhQblBkeUF2MVlkWndUVVhRamFkcm5xNHhq?=
 =?utf-8?Q?EWt3ocyujY8bZLXHdEKXJ6FNZ?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021)(8096899003)(13003099007)(7053199007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZU9McnBJL0FlQlZpeFJGMmMzVnJ6NFVqT2FNSStXUEJma01ydjd4RGpuenox?=
 =?utf-8?B?YVlEdHJ0OWFlaDZ1OXZFMjFpTkRiWlB6V2ZyVHJXUXlmVWhpNDBIM2dsS0hO?=
 =?utf-8?B?R2xvU0hqVkJJYk91RW0wdjRyc1U1YnJzbzdua0xoYWpMR2Q4SE9uU1FTNlZN?=
 =?utf-8?B?dUQ2dHE2c2gvU0ZMWWJMc2VxUmROUDV5cGdscTh6enFHRUZKTkM4WXhBY084?=
 =?utf-8?B?b1YvNjRBL1p6YlFlakVsd3NaaDhsUUIrNzVScXZJWTIyWEZpUmNRT3JQVGZy?=
 =?utf-8?B?V0QvSWs0STBKNWo2RXpkQ3pMT3ZzaVkzVDhtUVdMVE9IZGYvR1ZZWVlMb2Fa?=
 =?utf-8?B?cGRHZWNUN0ZGOUFMZ0ZXSW9zK3hqSFlzTGMrek9XYXpLL2dtS3lpWGduazdN?=
 =?utf-8?B?dVVsbXYrTmNsVnM2TnpGQzYxTnJsOURDSCsyT25hWkFaK0VNV3ZQbS92YVBZ?=
 =?utf-8?B?YkRUbzc1Z21TaW1PM1c4WVpFa2wrSHNNc0hzSkdXaVBOeUZ5cjRVanBXSFJ2?=
 =?utf-8?B?OVRKdXA4c1pJZzBCcU96OEtyVU02NzZVMnVKbnpmTTYwZktMUXh4bjNaVVcw?=
 =?utf-8?B?RGdkS0s1Z0ZVRTJ4NGhEQzcwbFlmNllhN0V0eVd0aHY3QS9zczA3bWQ2cWtB?=
 =?utf-8?B?Ulpuci9vRXc1aWFlUFA4UGFRUHZlRk9CM0RLVWh1VVpMbHpzazlyeWVUM01Q?=
 =?utf-8?B?ZzZHNnFYSG83QWhWcHV1L0d4MjRpQkJOQk12bCtwZTFVblhSNTE2T0tkbFp3?=
 =?utf-8?B?Y1JKdnMxYmZoZXJ2NGx3SDI1NVpGZUxCYUI0ck8zVjlqNmpFNXk3M3JLSmZM?=
 =?utf-8?B?MFg0VGNsYnJFWE11Z1RyT1c4WTMwa3Y0L2tRL3RIYkFPTEc3SFdTRWhTWUEr?=
 =?utf-8?B?OWw5S01wbFJsQnpsMGVtbVkrMVVMS0JXZDV6Z0QxbE80N3JtQWV5UmlESkdu?=
 =?utf-8?B?VzhLRnEwVXhWalhDSDlETHZJR0xHVnV1eENHWWpJeHV6eFRmOWRocm1nN2sw?=
 =?utf-8?B?VDBIam90WTZHRnYrRndlOUx0NUtENEo3SEhEbFdldk1OS2lqVmVldzd2TGhy?=
 =?utf-8?B?RXBSK2lYOGVQUlc3cmNlR2lLTTBZUkk1eEtmZ2dPMXkvQzA3MEdpU2hjWkpn?=
 =?utf-8?B?TENhSG41cUNGM1FLWEh4TmdWMEdYTFlUSFdWeE5tbG9pUTNuME5WV0RyamVB?=
 =?utf-8?B?a3MybzdzODIzcFFYMmx0OC85c2JVZnFxM3IxTmhjT0lRdGpLT2VzbHVMUlN3?=
 =?utf-8?B?Y0VMUmVJUVBrV1ZkT0UzYVRHeEFxZDczMVdjRHZ0cjRXK29yU09KWC9rTis4?=
 =?utf-8?B?Z3lON0lrSEFSQUI1bkdPVHBzMmNPRjBtb2QvMnU2NUhlNHJjd1Z4MW1lZ1hp?=
 =?utf-8?B?RS9EaVVuNTY1Nzh5azZzaytYYnpMNWN4MWZ5Ky93RkwzSmJaWmlWWGx6Smk1?=
 =?utf-8?B?VWwyUC90MUJPaldmY1hseG5IUEJnQUhySjRESDBtcHE4OXZvQW1Yb09tcEhU?=
 =?utf-8?B?MUxzTWphNWhnUGJIL1JHbys2VHBtM1dhNXo3OHJHNTlnV3VJZXRKV2NpK3J3?=
 =?utf-8?B?dy9RYlpMYVJWSkFncE04NlRlU3pnL0R0cG9iSHRrMC9lSys0VXFKaEMya1dy?=
 =?utf-8?B?QTB5L3hYL2RRTWJ4dnN1bWhKenJSTUR1anBqZG9OOEF1bE9Da1ZubDExMWJE?=
 =?utf-8?B?bE5wOFRnb0ZNaXFpRkpNT1lZMWk0bFlDbWdpZGtudWpnWkFwaVdPdUVWNit6?=
 =?utf-8?B?bmJad2RINmVDNVNhMmJ2T1NjWkJoaEU4V2lkS2gyM01uTHZYc1k3UUptYmlF?=
 =?utf-8?B?cDI2OUpwb0RXWmdXRGMxU0lwMzA4b1R5bGp2OVExc3VjamtvQlVJa1JoNDNI?=
 =?utf-8?B?MmR0NHdtcTQ0VUFtTk1zU01HdzArejd6S2pLRThMcmFTL1pqWmN2bXYzUFJl?=
 =?utf-8?B?eGRRS28zMFhIMEJqbkd0Yk9iYzNlU09jWnI3cFFJclU0UnNCaTF2cVlCWGxy?=
 =?utf-8?B?YlVIU3hhM3hzRGxKdkZFSmZ3WEpSMjg0d05KUWJZSkVNZlpsdk9HTFR4NTZk?=
 =?utf-8?B?akhmRG1XYy9obTZkbVY0VGVPdStwQStYQUdsS25iZitsMnNLQVdyQjNUdEw0?=
 =?utf-8?B?bkRyZENtZy8wSDhTZHF0N1RYS1lOUERqR0lGOEhPRTNVbHowV1pGdlFvMmMr?=
 =?utf-8?B?NGRCZ0J5LzB4eXV0RlNYMGFrMlZrbjl3Q05uc3hVdkN3a3k1aE1YTzJzWEJD?=
 =?utf-8?B?SkZPREl3MFpyWXQxbHovUWZuQmEvL0RYNnBrZzZjMlpVanZUWnJrTnU5VE1h?=
 =?utf-8?B?MWFOVDZxN0xKd3NEaUE2bWhpQ3JWd20xMGorZS9HQnBVQ3BaamNZTkR4VFN3?=
 =?utf-8?Q?3YBSKo82XORtGlDk=3D?=
Content-Type: multipart/alternative;
	boundary="_000_5CB47929A0BE454FB00F68ACA06A3DA8citrixcom_"
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e2a8ae64-9280-4162-18d8-08de73860746
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2026 09:21:01.7943
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: jzegu9zronW2pp2fMzi6TonuppicUsHSaGV/vmliRUY2pxXvwMMMdH44dEinRyw0LPnsRzFZAvSAeGYxSFrAaQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5713

--_000_5CB47929A0BE454FB00F68ACA06A3DA8citrixcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQoNCk9uIDIzIEZlYiAyMDI2LCBhdCAxNTo1NywgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPiB3cm90ZToNCg0KT24gMjMuMDIuMjAyNiAxMTowNCwgRWR3aW4gVMO2csO2ayB3cm90ZToN
CmNsYW5nIHdvdWxkIGR1cGxpY2F0ZSB0aGUgbG9vcCBib2R5IGFuZCBlbmQgdXAgd2l0aCBhIGRv
dWJsZSBkZWZpbml0aW9uDQpvZiB0aGUgc3ltYm9sOg0KYGBgDQovdG1wL3Rlc3RfeDg2X2VtdWxh
dG9yLTBmMzU3Ni5zOjI3ODIzOiBFcnJvcjogc3ltYm9sIGB2bW92c2hfdG9fbWVtJyBpcyBhbHJl
YWR5IGRlZmluZWQNCi90bXAvdGVzdF94ODZfZW11bGF0b3ItMGYzNTc2LnM6Mjc4MjU6IEVycm9y
OiBzeW1ib2wgYC5Mdm1vdnNoX3RvX21lbV9lbmQnIGlzIGFscmVhZHkgZGVmaW5lZA0KYGBgDQoN
ClRoaXMgaXMgYSB2YWxpZCB0cmFuc2Zvcm1hdGlvbiwgdGhhdCBldmVuIEdDQyBtaWdodCBkbywg
c2VlDQpodHRwczovL2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2NjL0V4dGVuZGVkLUFzbS5odG1s
I1ZvbGF0aWxlLTEgd2hpY2gNCnNheXMgdGhhdCBgJT1gIHNob3VsZCBiZSB1c2VkIGluc3RlYWQu
IEhvd2V2ZXIgdGhlIEMgY29kZSBoZXJlIGFsc28NCm5lZWRzIHRvIGtub3cgdGhlIG5hbWUgb2Yg
dGhlIGxhYmVsLCBzbyBJIGRvbid0IGltbWVkaWF0ZWx5IHNlZSBob3cgdG8NCnNvbHZlIHRoYXQu
DQoNCkZvciBub3cgbWFyayB0aGUgbG9vcCB2YXJpYWJsZSBgdm9sYXRpbGVgIHRvIHByZXZlbnQg
dGhlIG9wdGltaXphdGlvbiBhcyBhDQp3b3JrYXJvdW5kLg0KKGFub3RoZXIgd2F5IHRvIGZpeCB0
aGlzIGNvdWxkIGJlIHRvIG1vdmUgdGhlIGxvb3AgYm9keSBpbnRvIGEgZnVuY3Rpb24sDQpidXQg
YSBjb21waWxlciBtaWdodCBpbmxpbmUgaXQsIG9yIHNwZWNpYWxpemUgaXQsIGxlYWRpbmcgdG8g
dGhlIHNhbWUgcHJvYmxlbSkNCg0KSG1tLCBtb3ZpbmcgZGVjbCBhbmQgYXNtKCkgb3V0IG9mIHRo
ZSBsb29wIHdvdWxkbid0IHJlYWxseSB3b3JrLiBPbmUgb3B0aW9uDQp3b3VsZCBiZSB0byBleHRl
bmQgdGhlIGxvbmctcGVuZGluZyBbMV0gdG8gYWxzbyBjb3ZlciB0ZXN0X3g4Nl9lbXVsYXRvci5j
Lg0KQW5vdGhlciBtaWdodCBiZSB0byBtYWtlIHRoZSB1cHBlciBsb29wIGJvdW5kIG5vdCBhIGxp
dGVyYWwgMiwgYnV0IG9uZQ0KbG9hZGVkIGZyb20gbWVtb3J5LCBzdWl0YWJseSBhcnJhbmdlZCBm
b3IgdGhlIGNvbXBpbGVyIHRvIG5vdCBiZSBhYmxlIHRvDQpjb25zdC1wcm9wYWdhdGUgdGhlIHZh
bHVlLg0KDQpCdXQgSSB3b25kZXIgaG93IG1hbnkgb3RoZXIgdHJhbnNmb3JtYXRpb25zIHRoZSBj
b21waWxlciBjb3VsZCBkbywgY2F1c2luZw0KdGhlIHNhbWUgaXNzdWUgZWxzZXdoZXJlLiBNYXli
ZSB3ZSBuZWVkIHRvIG92ZXJoYXVsIGhvdyB0aGlzIGluc3RydWN0aW9uDQppbnN0YW50aWF0aW9u
IHdvcmtzLiAoSSBmdXJ0aGVyIHdvbmRlciBob3cgbWFueSBzdWNoIGlzc3VlcyBhcmUgbHVya2lu
ZyBpbg0KdGhlIG1hbnkgcGF0Y2hlcyBJIGhhdmUgb3V0IGZvciByZXZpZXcsIHBsdXMgdGhlIHll
dCBmdXJ0aGVyIG9uZXMgSSBkaWRuJ3QNCnBvc3QgeWV0IHRvIG5vdCBwb2ludGxlc3NseSBpbmNy
ZWFzZSB0aGUgcGlsZS4pDQoNCkkgdGhvdWdodCBtb3JlIGFib3V0IHRoZSAlPSBJIG1lbnRpb25l
ZCBhYm92ZS4gTWF5YmUgaW5zdGVhZCBvZiB1c2luZyBhIEMgZXh0ZXJuIHRvIHJlZmVyIHRvIHRo
ZSBsYWJlbCBpbnNpZGUgdGhlIGlubGluZSBhc3NlbWJseSwNCiB0aGUgaW5saW5lIGFzc2VtYmx5
IHNob3VsZCBzdG9yZSB0aGUgYWRkcmVzcyBvZiB0aGF0IGxhYmVsIGludG8gYSBDIHBvaW50ZXIg
dGhhdCBpcyBhbiBvdXRwdXQgcGFyYW1ldGVyIG9mIHRoZSBhc3NlbWJseS4NCg0KU29tZXRoaW5n
IGxpa2U6DQpkZWNsIHdvdWxkIGRvOiB1aW50OF90ICpteV9pbnN0cnVjdGlvbiwgKm15X2luc3Ry
dWN0aW9uX2VuZDsNCnB1dCBpbnNuIHdvdWxkIGRvOiBhc20gdm9sYXRpbGUo4oCcbXlfaW5zdHJ1
Y3Rpb24lPTrigJ0g4oCmLiDigJxteV9pbnN0cnVjdGlvbl9lbmQlPTrigJ0gLi4uIHN0b3JlIGlu
dG8gbXlfaW5zdHJ1Y3Rpb24gdGhlIHZhbHVlIG9mIG15X2luc3RydWN0aW9uJT0gYW5kIG15X2lu
c3RydWN0aW9uX2VuZCB0aGUgdmFsdWUgb2YgbXlfaW5zdHJ1Y3Rpb25fZW5kJT0pDQoNCihUaGUg
bGFiZWwgcHJlZml4IGlzIG5vdCBuZWVkZWQsIGJ1dCBJIGFzc3VtZSB3b3VsZCBiZSB2ZXJ5IHVz
ZWZ1bCBmb3IgZGVidWdnaW5nLCBzbyB5b3UgY2FuIGZpbmQgdGhlc2UgaW4gZ2RiL2V0Yy4pDQoN
CkFsdGhvdWdoIEnigJlkIGhhdmUgdG8gc2VlIHdoZXRoZXIgdGhhdCBsYXN0IHBhcnQgd291bGQg
YmUgcG9zc2libGUgYW5kIHdoYXQgdGhlIHN5bnRheCBmb3IgaXQgd291bGQgYmUsIGNvbnNpZGVy
aW5nIHRoYXQgcHV0X2luc24gdHlwaWNhbGx5IGhhcyBpdHMgb3duIG91dHB1dCBwYXJhbWV0ZXJz
IGFscmVhZHkuDQoNCg0KLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2Vt
dWxhdG9yLmMNCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRv
ci5jDQpAQCAtNTI0OCw3ICs1MjQ4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2
KQ0KICAgICAgICBtZW1zZXQocmVzICsgMywgfjAsIDgpOw0KICAgICAgICByZWdzLmVheCA9ICh1
bnNpZ25lZCBsb25nKXJlczsNCiAgICAgICAgcmVncy5lY3ggPSB+MDsNCi0gICAgICAgIGZvciAo
IGkgPSAwOyBpIDwgMjsgKytpICkNCisgICAgICAgIGZvciAodm9sYXRpbGUgaW50IGkgPSAwOyBp
IDwgMjsgKytpICkNCg0KRXZlbiBpZiB3ZSB3ZW50IHdpdGggdGhpcyBhcyBhIHdvcmthcm91bmQs
IHN0eWxlIHNob3VsZCBwbGVhc2Ugbm90IGJlIHNjcmV3ZWQNCnVwLg0KDQpBbHNvLCB3aGljaGV2
ZXIgdGhlIHdvcmthcm91bmQsIEkgdGhpbmsgYSBjb21tZW50IHdhbnRzIGxlYXZpbmcuDQoNCkFu
ZCB0aGVuIEkgZG9uJ3QgdGhpbmsgaXQgaXMgYSBnb29kIGlkZWEgdG8gaW50cm9kdWNlIGEgc2hh
ZG93aW5nIGluZHVjdGlvbg0KdmFyaWFibGUuDQoNCg0KVGhhbmtzLCBJ4oCZbGwgdXBkYXRlIGFz
IHN1Z2dlc3RlZCBpZiBJIGNhbuKAmXQgZmluZCBhbm90aGVyIHNvbHV0aW9uLg0KDQpCZXN0IHJl
Z2FyZHMsDQrigJRFZHdpbg0KDQoNCkphbg0KDQpbMV0gaHR0cHM6Ly9saXN0cy54ZW4ub3JnL2Fy
Y2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMjMtMDQvbXNnMDAyODMuaHRtbA0KDQo=

--_000_5CB47929A0BE454FB00F68ACA06A3DA8citrixcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <ED67F9E5D406D142B51EFC719474D73E@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgYXJpYS1sYWJlbD0ibWVzc2FnZSBib2R5Ij4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPC9o
ZWFkPg0KPGJvZHkgc3R5bGU9Im92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJz
cC1tb2RlOiBzcGFjZTsgbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7Ij4NCjxiciBpZD0i
bGluZUJyZWFrQXRCZWdpbm5pbmdPZk1lc3NhZ2UiPg0KPGRpdj48YnI+DQo8YmxvY2txdW90ZSB0
eXBlPSJjaXRlIj4NCjxkaXY+T24gMjMgRmViIDIwMjYsIGF0IDE1OjU3LCBKYW4gQmV1bGljaCAm
bHQ7amJldWxpY2hAc3VzZS5jb20mZ3Q7IHdyb3RlOjwvZGl2Pg0KPGJyIGNsYXNzPSJBcHBsZS1p
bnRlcmNoYW5nZS1uZXdsaW5lIj4NCjxkaXY+PHNwYW4gc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2Io
MCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZv
bnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6
IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3Rh
cnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTog
bm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tl
LXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6
IGlubGluZSAhaW1wb3J0YW50OyI+T24NCiAyMy4wMi4yMDI2IDExOjA0LCBFZHdpbiBUw7Zyw7Zr
IHdyb3RlOjwvc3Bhbj48YnIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQt
ZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1h
bDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNw
YWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50
OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6
IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRl
eHQtZGVjb3JhdGlvbi1saW5lOiBub25lOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRv
OyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyI+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRl
IiBzdHlsZT0iZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9u
dC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDog
NDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFy
dDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBu
b3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Ut
d2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7IHRleHQtZGVjb3JhdGlvbi10
aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7Ij4NCmNsYW5nIHdv
dWxkIGR1cGxpY2F0ZSB0aGUgbG9vcCBib2R5IGFuZCBlbmQgdXAgd2l0aCBhIGRvdWJsZSBkZWZp
bml0aW9uPGJyPg0Kb2YgdGhlIHN5bWJvbDo8YnI+DQpgYGA8YnI+DQovdG1wL3Rlc3RfeDg2X2Vt
dWxhdG9yLTBmMzU3Ni5zOjI3ODIzOiBFcnJvcjogc3ltYm9sIGB2bW92c2hfdG9fbWVtJyBpcyBh
bHJlYWR5IGRlZmluZWQ8YnI+DQovdG1wL3Rlc3RfeDg2X2VtdWxhdG9yLTBmMzU3Ni5zOjI3ODI1
OiBFcnJvcjogc3ltYm9sIGAuTHZtb3ZzaF90b19tZW1fZW5kJyBpcyBhbHJlYWR5IGRlZmluZWQ8
YnI+DQpgYGA8YnI+DQo8YnI+DQpUaGlzIGlzIGEgdmFsaWQgdHJhbnNmb3JtYXRpb24sIHRoYXQg
ZXZlbiBHQ0MgbWlnaHQgZG8sIHNlZTxicj4NCmh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9j
cy9nY2MvRXh0ZW5kZWQtQXNtLmh0bWwjVm9sYXRpbGUtMSB3aGljaDxicj4NCnNheXMgdGhhdCBg
JT1gIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuIEhvd2V2ZXIgdGhlIEMgY29kZSBoZXJlIGFsc288
YnI+DQpuZWVkcyB0byBrbm93IHRoZSBuYW1lIG9mIHRoZSBsYWJlbCwgc28gSSBkb24ndCBpbW1l
ZGlhdGVseSBzZWUgaG93IHRvPGJyPg0Kc29sdmUgdGhhdC48YnI+DQo8YnI+DQpGb3Igbm93IG1h
cmsgdGhlIGxvb3AgdmFyaWFibGUgYHZvbGF0aWxlYCB0byBwcmV2ZW50IHRoZSBvcHRpbWl6YXRp
b24gYXMgYTxicj4NCndvcmthcm91bmQuPGJyPg0KKGFub3RoZXIgd2F5IHRvIGZpeCB0aGlzIGNv
dWxkIGJlIHRvIG1vdmUgdGhlIGxvb3AgYm9keSBpbnRvIGEgZnVuY3Rpb24sPGJyPg0KYnV0IGEg
Y29tcGlsZXIgbWlnaHQgaW5saW5lIGl0LCBvciBzcGVjaWFsaXplIGl0LCBsZWFkaW5nIHRvIHRo
ZSBzYW1lIHByb2JsZW0pPGJyPg0KPC9ibG9ja3F1b3RlPg0KPGJyIHN0eWxlPSJjYXJldC1jb2xv
cjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1zaXplOiAx
MXB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQt
d2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxp
Z246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUt
c3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0
LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsgdGV4dC1kZWNv
cmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsiPg0K
PHNwYW4gc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5s
by1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJp
YW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1h
bDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQt
dHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3Bh
Y2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlv
bjogbm9uZTsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+SG1tLA0K
IG1vdmluZyBkZWNsIGFuZCBhc20oKSBvdXQgb2YgdGhlIGxvb3Agd291bGRuJ3QgcmVhbGx5IHdv
cmsuIE9uZSBvcHRpb248L3NwYW4+PGJyIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAsIDAp
OyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBmb250LXN0eWxl
OiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxl
dHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0
LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsg
d2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDog
MHB4OyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVz
czogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsiPg0KPHNwYW4gc3R5bGU9ImNh
cmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBmb250
LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1h
bDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsg
dGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25l
OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Vi
a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZmxvYXQ6
IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+d291bGQNCiBiZSB0byBleHRlbmQg
dGhlIGxvbmctcGVuZGluZyBbMV0gdG8gYWxzbyBjb3ZlciB0ZXN0X3g4Nl9lbXVsYXRvci5jLjwv
c3Bhbj48YnIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBN
ZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12
YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5v
cm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRl
eHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQt
c3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3Jh
dGlvbi1saW5lOiBub25lOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRl
Y29yYXRpb24tc3R5bGU6IHNvbGlkOyI+DQo8c3BhbiBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigw
LCAwLCAwKTsgZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9u
dC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDog
NDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFy
dDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBu
b3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Ut
d2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBmbG9hdDogbm9uZTsgZGlzcGxheTog
aW5saW5lICFpbXBvcnRhbnQ7Ij5Bbm90aGVyDQogbWlnaHQgYmUgdG8gbWFrZSB0aGUgdXBwZXIg
bG9vcCBib3VuZCBub3QgYSBsaXRlcmFsIDIsIGJ1dCBvbmU8L3NwYW4+PGJyIHN0eWxlPSJjYXJl
dC1jb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1z
aXplOiAxMXB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7
IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRl
eHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsg
d2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtp
dC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsgdGV4
dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xp
ZDsiPg0KPHNwYW4gc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5
OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9u
dC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6
IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7
IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdv
cmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVj
b3JhdGlvbjogbm9uZTsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+
bG9hZGVkDQogZnJvbSBtZW1vcnksIHN1aXRhYmx5IGFycmFuZ2VkIGZvciB0aGUgY29tcGlsZXIg
dG8gbm90IGJlIGFibGUgdG88L3NwYW4+PGJyIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAs
IDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBmb250LXN0
eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7
IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0
ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1h
bDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0
aDogMHB4OyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNr
bmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsiPg0KPHNwYW4gc3R5bGU9
ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBm
b250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5v
cm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczog
MjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBu
b25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAt
d2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZmxv
YXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+Y29uc3QtcHJvcGFnYXRlDQog
dGhlIHZhbHVlLjwvc3Bhbj48YnIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZv
bnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5v
cm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVy
LXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5k
ZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRv
d3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7
IHRleHQtZGVjb3JhdGlvbi1saW5lOiBub25lOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBh
dXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyI+DQo8YnIgc3R5bGU9ImNhcmV0LWNv
bG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6
IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9u
dC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1h
bGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0
ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRl
eHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbi1saW5lOiBub25lOyB0ZXh0LWRl
Y29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyI+
DQo8c3BhbiBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IE1l
bmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZh
cmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9y
bWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4
dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1z
cGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0
aW9uOiBub25lOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij5CdXQN
CiBJIHdvbmRlciBob3cgbWFueSBvdGhlciB0cmFuc2Zvcm1hdGlvbnMgdGhlIGNvbXBpbGVyIGNv
dWxkIGRvLCBjYXVzaW5nPC9zcGFuPjxiciBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAw
KTsgZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHls
ZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBs
ZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4
dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7
IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6
IDBweDsgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7IHRleHQtZGVjb3JhdGlvbi10aGlja25l
c3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7Ij4NCjxzcGFuIHN0eWxlPSJj
YXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9u
dC1zaXplOiAxMXB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3Jt
YWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7
IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9u
ZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdl
YmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZsb2F0
OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPnRoZQ0KIHNhbWUgaXNzdWUgZWxz
ZXdoZXJlLiBNYXliZSB3ZSBuZWVkIHRvIG92ZXJoYXVsIGhvdyB0aGlzIGluc3RydWN0aW9uPC9z
cGFuPjxiciBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IE1l
bmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZh
cmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9y
bWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4
dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1z
cGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0
aW9uLWxpbmU6IG5vbmU7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVj
b3JhdGlvbi1zdHlsZTogc29saWQ7Ij4NCjxzcGFuIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAs
IDAsIDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBmb250
LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0
MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0
OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5v
cm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13
aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBp
bmxpbmUgIWltcG9ydGFudDsiPmluc3RhbnRpYXRpb24NCiB3b3Jrcy4gKEkgZnVydGhlciB3b25k
ZXIgaG93IG1hbnkgc3VjaCBpc3N1ZXMgYXJlIGx1cmtpbmcgaW48L3NwYW4+PGJyIHN0eWxlPSJj
YXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9u
dC1zaXplOiAxMXB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3Jt
YWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7
IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9u
ZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdl
YmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsg
dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBz
b2xpZDsiPg0KPHNwYW4gc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFt
aWx5OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsg
Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNp
bmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAw
cHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7
IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQt
ZGVjb3JhdGlvbjogbm9uZTsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50
OyI+dGhlDQogbWFueSBwYXRjaGVzIEkgaGF2ZSBvdXQgZm9yIHJldmlldywgcGx1cyB0aGUgeWV0
IGZ1cnRoZXIgb25lcyBJIGRpZG4ndDwvc3Bhbj48YnIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2Io
MCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZv
bnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6
IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3Rh
cnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTog
bm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tl
LXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbi1saW5lOiBub25lOyB0ZXh0LWRlY29yYXRpb24t
dGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyI+DQo8c3BhbiBz
dHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3Vs
YXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fw
czogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBo
YW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zv
cm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAw
cHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25l
OyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij5wb3N0DQogeWV0IHRv
IG5vdCBwb2ludGxlc3NseSBpbmNyZWFzZSB0aGUgcGlsZS4pPC9zcGFuPjxiciBzdHlsZT0iY2Fy
ZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQt
c2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFs
OyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0
ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7
IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJr
aXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7IHRl
eHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29s
aWQ7Ij4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+SSB0
aG91Z2h0IG1vcmUgYWJvdXQgdGhlICU9IEkgbWVudGlvbmVkIGFib3ZlLiBNYXliZSBpbnN0ZWFk
IG9mIHVzaW5nIGEgQyBleHRlcm4gdG8gcmVmZXIgdG8gdGhlIGxhYmVsIGluc2lkZSB0aGUgaW5s
aW5lIGFzc2VtYmx5LDwvZGl2Pg0KPGRpdj4mbmJzcDt0aGUgaW5saW5lIGFzc2VtYmx5IHNob3Vs
ZCBzdG9yZSB0aGUgYWRkcmVzcyBvZiB0aGF0IGxhYmVsIGludG8gYSBDIHBvaW50ZXIgdGhhdCBp
cyBhbiBvdXRwdXQgcGFyYW1ldGVyIG9mIHRoZSBhc3NlbWJseS48L2Rpdj4NCjxkaXY+PGJyPg0K
PC9kaXY+DQo8ZGl2PlNvbWV0aGluZyBsaWtlOjwvZGl2Pg0KPGRpdj5kZWNsIHdvdWxkIGRvOiB1
aW50OF90ICpteV9pbnN0cnVjdGlvbiwgKm15X2luc3RydWN0aW9uX2VuZDs8L2Rpdj4NCjxkaXY+
cHV0IGluc24gd291bGQgZG86IGFzbSB2b2xhdGlsZSjigJxteV9pbnN0cnVjdGlvbiU9OuKAnSDi
gKYuIOKAnG15X2luc3RydWN0aW9uX2VuZCU9OuKAnSAuLi4gc3RvcmUgaW50byBteV9pbnN0cnVj
dGlvbiB0aGUgdmFsdWUgb2YgbXlfaW5zdHJ1Y3Rpb24lPSBhbmQgbXlfaW5zdHJ1Y3Rpb25fZW5k
IHRoZSB2YWx1ZSBvZiBteV9pbnN0cnVjdGlvbl9lbmQlPSkmbmJzcDs8L2Rpdj4NCjxkaXY+PGJy
Pg0KPC9kaXY+DQo8ZGl2PihUaGUgbGFiZWwgcHJlZml4IGlzIG5vdCBuZWVkZWQsIGJ1dCBJIGFz
c3VtZSB3b3VsZCBiZSB2ZXJ5IHVzZWZ1bCBmb3IgZGVidWdnaW5nLCBzbyB5b3UgY2FuIGZpbmQg
dGhlc2UgaW4gZ2RiL2V0Yy4pPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5BbHRob3Vn
aCBJ4oCZZCBoYXZlIHRvIHNlZSB3aGV0aGVyIHRoYXQgbGFzdCBwYXJ0IHdvdWxkIGJlIHBvc3Np
YmxlIGFuZCB3aGF0IHRoZSBzeW50YXggZm9yIGl0IHdvdWxkIGJlLCBjb25zaWRlcmluZyB0aGF0
IHB1dF9pbnNuIHR5cGljYWxseSBoYXMgaXRzIG93biBvdXRwdXQgcGFyYW1ldGVycyBhbHJlYWR5
LjwvZGl2Pg0KPGJyPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+DQo8ZGl2PjxiciBzdHlsZT0i
Y2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZv
bnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9y
bWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAy
OyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5v
bmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13
ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7
IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTog
c29saWQ7Ij4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIHN0eWxlPSJmb250LWZhbWlseTogTWVu
bG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFy
aWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3Jt
YWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0
LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNw
YWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRp
b24tbGluZTogbm9uZTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNv
cmF0aW9uLXN0eWxlOiBzb2xpZDsiPg0KLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rl
c3RfeDg2X2VtdWxhdG9yLmM8YnI+DQorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVz
dF94ODZfZW11bGF0b3IuYzxicj4NCkBAIC01MjQ4LDcgKzUyNDgsNyBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpPGJyPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7bWVtc2V0KHJlcyArIDMsIH4wLCA4KTs8YnI+DQombmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyZWdzLmVheCA9ICh1bnNpZ25lZCBs
b25nKXJlczs8YnI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDtyZWdzLmVjeCA9IH4wOzxicj4NCi0gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Zm9yICggaSA9IDA7IGkgJmx0OyAyOyArK2kgKTxicj4NCisgJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Zm9yICh2b2xhdGlsZSBpbnQgaSA9IDA7
IGkgJmx0OyAyOyArK2kgKTxicj4NCjwvYmxvY2txdW90ZT4NCjxiciBzdHlsZT0iY2FyZXQtY29s
b3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTog
MTFweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250
LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFs
aWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRl
LXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4
dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7IHRleHQtZGVj
b3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7Ij4N
CjxzcGFuIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogTWVu
bG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFy
aWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3Jt
YWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0
LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNw
YWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRp
b246IG5vbmU7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPkV2ZW4N
CiBpZiB3ZSB3ZW50IHdpdGggdGhpcyBhcyBhIHdvcmthcm91bmQsIHN0eWxlIHNob3VsZCBwbGVh
c2Ugbm90IGJlIHNjcmV3ZWQ8L3NwYW4+PGJyIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAs
IDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBmb250LXN0
eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7
IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0
ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1h
bDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0
aDogMHB4OyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNr
bmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsiPg0KPHNwYW4gc3R5bGU9
ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBm
b250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5v
cm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczog
MjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBu
b25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAt
d2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZmxv
YXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+dXAuPC9zcGFuPjxiciBzdHls
ZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7
IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczog
bm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5z
OiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06
IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7
IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5v
bmU7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHls
ZTogc29saWQ7Ij4NCjxiciBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1m
YW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9ybWFs
OyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3Bh
Y2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6
IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czog
Mjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4
dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87
IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7Ij4NCjxzcGFuIHN0eWxlPSJjYXJldC1jb2xv
cjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1zaXplOiAx
MXB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQt
d2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxp
Z246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUt
c3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0
LXN0cm9rZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZsb2F0OiBub25lOyBk
aXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPkFsc28sDQogd2hpY2hldmVyIHRoZSB3b3JrYXJv
dW5kLCBJIHRoaW5rIGEgY29tbWVudCB3YW50cyBsZWF2aW5nLjwvc3Bhbj48YnIgc3R5bGU9ImNh
cmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBmb250
LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1h
bDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsg
dGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25l
OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Vi
a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbi1saW5lOiBub25lOyB0
ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNv
bGlkOyI+DQo8YnIgc3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5
OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9u
dC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6
IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7
IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdv
cmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVj
b3JhdGlvbi1saW5lOiBub25lOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0
LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyI+DQo8c3BhbiBzdHlsZT0iY2FyZXQtY29sb3I6IHJn
YigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsg
Zm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdo
dDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBz
dGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNl
OiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJv
a2Utd2lkdGg6IDBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBmbG9hdDogbm9uZTsgZGlzcGxh
eTogaW5saW5lICFpbXBvcnRhbnQ7Ij5BbmQNCiB0aGVuIEkgZG9uJ3QgdGhpbmsgaXQgaXMgYSBn
b29kIGlkZWEgdG8gaW50cm9kdWNlIGEgc2hhZG93aW5nIGluZHVjdGlvbjwvc3Bhbj48YnIgc3R5
bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFy
OyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6
IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFu
czogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3Jt
OiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4
OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbi1saW5lOiBu
b25lOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5
bGU6IHNvbGlkOyI+DQo8c3BhbiBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9u
dC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9y
bWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXIt
c3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRl
bnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93
czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsg
dGV4dC1kZWNvcmF0aW9uOiBub25lOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBv
cnRhbnQ7Ij52YXJpYWJsZS48L3NwYW4+PGJyIHN0eWxlPSJjYXJldC1jb2xvcjogcmdiKDAsIDAs
IDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBmb250LXN0
eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7
IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0
ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1h
bDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0
aDogMHB4OyB0ZXh0LWRlY29yYXRpb24tbGluZTogbm9uZTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNr
bmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsiPg0KPC9kaXY+DQo8L2Js
b2NrcXVvdGU+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+VGhh
bmtzLCBJ4oCZbGwgdXBkYXRlIGFzIHN1Z2dlc3RlZCBpZiBJIGNhbuKAmXQgZmluZCBhbm90aGVy
IHNvbHV0aW9uLjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+QmVzdCByZWdhcmRzLDwv
ZGl2Pg0KPGRpdj7igJRFZHdpbjwvZGl2Pg0KPGJyPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+
DQo8ZGl2PjxiciBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6
IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250
LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzog
bm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsg
dGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29y
ZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgdGV4dC1kZWNv
cmF0aW9uLWxpbmU6IG5vbmU7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQt
ZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7Ij4NCjxzcGFuIHN0eWxlPSJjYXJldC1jb2xvcjogcmdi
KDAsIDAsIDApOyBmb250LWZhbWlseTogTWVubG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBm
b250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0
OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0
YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6
IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9r
ZS13aWR0aDogMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZsb2F0OiBub25lOyBkaXNwbGF5
OiBpbmxpbmUgIWltcG9ydGFudDsiPkphbjwvc3Bhbj48YnIgc3R5bGU9ImNhcmV0LWNvbG9yOiBy
Z2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1bGFyOyBmb250LXNpemU6IDExcHg7
IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWln
aHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjog
c3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFj
ZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ry
b2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbi1saW5lOiBub25lOyB0ZXh0LWRlY29yYXRp
b24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyI+DQo8YnIg
c3R5bGU9ImNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBNZW5sby1SZWd1
bGFyOyBmb250LXNpemU6IDExcHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWNh
cHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3Jw
aGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNm
b3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzog
MHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IHRleHQtZGVjb3JhdGlvbi1saW5l
OiBub25lOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24t
c3R5bGU6IHNvbGlkOyI+DQo8c3BhbiBzdHlsZT0iY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsg
Zm9udC1mYW1pbHk6IE1lbmxvLVJlZ3VsYXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1zdHlsZTog
bm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0
ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1p
bmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdp
ZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBw
eDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFp
bXBvcnRhbnQ7Ij5bMV08c3BhbiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8
L3NwYW4+PC9zcGFuPjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1s
L3hlbi1kZXZlbC8yMDIzLTA0L21zZzAwMjgzLmh0bWwiIHN0eWxlPSJmb250LWZhbWlseTogTWVu
bG8tUmVndWxhcjsgZm9udC1zaXplOiAxMXB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFy
aWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3Jt
YWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0
LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNw
YWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyI+aHR0cHM6Ly9saXN0
cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMjMtMDQvbXNnMDAyODMuaHRtbDwv
YT48L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjwvZGl2Pg0KPGJyPg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_5CB47929A0BE454FB00F68ACA06A3DA8citrixcom_--


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:21:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:21:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239589.1540993 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuobh-0007yl-8s; Tue, 24 Feb 2026 09:21:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239589.1540993; Tue, 24 Feb 2026 09:21:29 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuobh-0007ye-5n; Tue, 24 Feb 2026 09:21:29 +0000
Received: by outflank-mailman (input) for mailman id 1239589;
 Tue, 24 Feb 2026 09:21: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuobf-0007xv-VB
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:21:27 +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 31a21657-1162-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 10:21:26 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-4837907f535so46820115e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 01:21:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483b8195f50sm22777295e9.0.2026.02.24.01.21.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 01:21:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 31a21657-1162-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771924886; x=1772529686; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=38Okx8vRRandsJJtqeebMqZpts+3JOrgQSEOj+ehCaw=;
        b=DD8362hKm9+JW9ZHbGANUWCmjf8Ui/M84+KCvJ2yL7X65ePd91Z8f6tFdamskADrF/
         7x9H//Wb0zENb+Q5mvztiap0Ao3U8aBIer+d5cUQb66E19poG1NnminwOFnSLE2/K8XD
         AklvpRcy+bLxQZd5sgMQpP+5hlbqqHc5MFjzYckqz6UhfoJ5WVGr8bRtCgJN1OEULLk6
         AyukzkV/g/+JwSZZegAamoXweqWWAdYZkgwXBIvcuQz9ELpY7E9dLURy0ASYABusQvpA
         PD/hApE9hIKM5NkOq7K0dPacDwJozbT/YYliRbO/OO1HREUbcMZMTnoNwiK2+RifMmLl
         r1zg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771924886; x=1772529686;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=38Okx8vRRandsJJtqeebMqZpts+3JOrgQSEOj+ehCaw=;
        b=DwRSDzX3xbHi8EFLy3PAsL1TvxIkGzi3XT8W/WrRQwlz3Su3hwOu9JNiOuejgVihUD
         h6RGixJggbrfB63GeaeaNo9k7WRGcRb+aBmdHR6zYGKlboV4lMhwHxRiq8P48IMxRCKf
         dOU2h0nd3Z8CG1+RYVnjt2aB6CtVx/qKxRDZ476ey3tKxgpRKWl9RL2CgUISOq2sbMW4
         iiDEHJ62h8d/zHothCCELYO9KbxbyF9fq1CR/P/O3KcB7q9VS6nu60UKZzQGsF8X/GxA
         2EB+l9ttyy261s1v45Gok9TaVCaQN7EC5IE6dVWB5m8iOcOWL1D9AIAQdqsxsU2+VZ7T
         MClg==
X-Forwarded-Encrypted: i=1; AJvYcCUhzYClHAIB4hMkwRs0/A/tIK9BU9KWCfAJ59w3bGaUFN3LZlIVd4HRf93y4ggWGfSMPOUrs+p0ir4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyfoSUMlz8bM85RKNcIsSMsDbLX3i4Guhl1Wb3AuGmOWVsbesy9
	gS0bwUFGG7HTVUD1E8bNr6M0lD80mWteAZhHx+RKaRe05t0XT1saU3GcC9lYKEYvow==
X-Gm-Gg: AZuq6aKlvmHvvtimCPVZN197ItLKfYA+bcCxgmoANpn++34n6kDImKgRIjKLR28zHov
	0DsZBQ6D6Zz0OpnvpNpgUcbVG6Ck2VsH6aDt5d2eRS5dSKh2x9Ce82MtvW56K8tcnL9ARBkaghj
	41FiMENrftRFDQbZscnavIVH1yk5eSzWULtDGSC2QDi5NwewvOkVtNA7AQYegu634c0qmgLKTy3
	hf/8/WMFcjKopdxrL8oiouLSUAdVjO1/B5Bhbmg7/fzt/9EDqCFhHE9wjxaYPztag35Vh4ZUhDT
	KScUcl+3UME0Y0KR2sSEV3tC+JyhsZ9N4IDEY5h6VmQJCc1WYN5H+h9GDwPkacdxf61g4kMdDKY
	+HMxxfnZRdxVJXNwdq0WcMjNMCF/qkZy1NUuQLzDreTHFALpKuq4TgImBXaymKvJMeWQ5KwdEfI
	3moc3aZX40nXRfzqe5h9iubmaGVYDYp7uAWYXKZ/FwtWMoc8lTFPAjZeRveKgtJZh5gsWV2JI8D
	CWjCwtIpHtnHcVDfLN37URGnA==
X-Received: by 2002:a05:600c:628d:b0:483:5a29:9678 with SMTP id 5b1f17b1804b1-483a95bd8a7mr203823555e9.2.1771924885711;
        Tue, 24 Feb 2026 01:21:25 -0800 (PST)
Message-ID: <a24723d2-0c7b-4e04-b47d-fd0e188d72dd@suse.com>
Date: Tue, 24 Feb 2026 10:21:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/acpi-processor: fix _CST detection using undersized
 evaluation buffer
To: "David Thomson (dt@linux.com)" <dt@linux-mail.net>
Cc: boris.ostrovsky@oracle.com, sstabellini@kernel.org,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, jgross@suse.com
References: <20260223195602.17122-1-dt@linux-mail.net>
 <e983d7a2-2c8a-46d4-8112-0d2f2045c93f@suse.com>
 <FvW05oEjY785ua6lBtiEat0hzzY8RM9BeRC-RTwpIQ8QYO7lMvYmJ78U8C0S0vT_TRg4YX4-TzoGEsDvqwUVeX9w89FR47MYWR1oxpFJCBo=@linux-mail.net>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <FvW05oEjY785ua6lBtiEat0hzzY8RM9BeRC-RTwpIQ8QYO7lMvYmJ78U8C0S0vT_TRg4YX4-TzoGEsDvqwUVeX9w89FR47MYWR1oxpFJCBo=@linux-mail.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.02.2026 10:10, David Thomson (dt@linux.com) wrote:
>> I understand you reflect original behavior in this regard, but why involve any
>> ACPI function here at all when pblk is non-zero? I.e. why not swap the operands
>> of && ? Object evaluation could have wanted side effects (in which case,
>> however, some different change would be needed here), but checking for method
>> presence surely hasn't.
>>
> You're right on both counts. The original evaluate_object() call at least had the appearance of wanting the result (even though buf was undersized and the result was never used). A pure presence check has no such pretense. Swapping the operands is the obvious improvement. I think dropping the _CST check entirely is also defensible since C-state support is confirmed when pblk is set. But I'm not certain there's no edge case where pblk is non-zero and _CST is also not present, so I'd defer to your judgement.
> 
> Would you prefer:
> a) if (pblk && acpi_has_method(handle, "_CST"))
> b) just if (pblk)

I don't think b) is correct, so a) please (albeit suitably adjusted to really only
flip the operands from what your original patch had).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:29:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:29:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239611.1541005 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoj2-0000e8-Vh; Tue, 24 Feb 2026 09:29:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239611.1541005; Tue, 24 Feb 2026 09:29:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoj2-0000e1-Rq; Tue, 24 Feb 2026 09:29:04 +0000
Received: by outflank-mailman (input) for mailman id 1239611;
 Tue, 24 Feb 2026 09: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=cbIO=A4=bounce.vates.tech=bounce-md_30504962.699d6f59.v1-46a639a02fe14996b3b88983f3acca86@srs-se1.protection.inumbo.net>)
 id 1vuoj2-0000dv-Ef
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:29:04 +0000
Received: from mail186-12.suw21.mandrillapp.com
 (mail186-12.suw21.mandrillapp.com [198.2.186.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3ec6e299-1163-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 10:28:58 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-12.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4fKsqF2SBJz705l40
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 09:28:57 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 46a639a02fe14996b3b88983f3acca86; Tue, 24 Feb 2026 09:28:57 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ec6e299-1163-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771925337; x=1772195337;
	bh=04YoqKiKHQcMfVq+TVh0j4NzIw104UMWK3IitvuKzl0=;
	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=Km0ZJD/k5KL9QuwPaBmPq9fPlf2SRzANMSCzzC9qqcJ69VJzQYHNkRTfAyDeYu/WW
	 VELcgZCC60bY9zhRBbTrskuUSkY+GrHXoaugKZKyfG+hpeG+txUgbrZ5W5VDFrt01b
	 NREHEOZ9MOSDP7NZg9/Yq69F6YQxDFyIPKjpcg6p4GXx9RsnFnQrFQRHXT8fQKRCdH
	 kPn0+kF4n//wpQDDOShb9ADvmSDrKAIHQpPmNBwwnDibMcCsxhvvTCg1J42mgwcF0E
	 J+X+NNX2zvnAdDfM/bzo/nH6ulrESeqJpd78bUGS4fzX9iA6vFu6AkZvGHp23m+g59
	 zd9y/H3HCDkIA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771925337; x=1772185837; i=teddy.astie@vates.tech;
	bh=04YoqKiKHQcMfVq+TVh0j4NzIw104UMWK3IitvuKzl0=;
	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=htVWx7MJs0biJMP8naC0CA04G2xmh6zGj/xIMoDn3acbgwhAGy5F9SAf/b0VrfB+n
	 e8F5ZhXRBc/fTj7+o8HzNv4jnbptXLQU1w/mcktpLGfluIFM+xf8tQN4ow4HNqmpUv
	 KwlU5dbqQ8Ub8duW5Iz70Ln3XC2yKRnPWRf7zRQooZe+Jd+CCb4Mkn5Q5vw70sRFs8
	 UtsBprPK9uvuOdKMPyEEfh3yv/9ts/IHPVGa7NoJd/P0dpKtahRMViX0R0V2u0kUOy
	 w2mQgbZZCu0YerGmeZwkrKDioRTJGfTftmNS4SyT8Jz2NIzCNGbyeZOuMOkLLB1hh5
	 dUy6u6IJ74vpw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v7=201/2]=20libxc:=20Report=20consistent=20errors=20in=20xc=5Fresource=5Fop?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771925336678
Message-Id: <f569a8f0-8df9-4e5a-b3ed-ae600c3c0bd3@vates.tech>
To: "Jan Beulich" <jbeulich@suse.com>
Cc: "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <c8677e4588eff14197e47070587f31df1567c030.1771860109.git.teddy.astie@vates.tech> <0d7afac2-d358-4b0e-b828-31ebba6357d2@suse.com>
In-Reply-To: <0d7afac2-d358-4b0e-b828-31ebba6357d2@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.46a639a02fe14996b3b88983f3acca86?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260224:md
Date: Tue, 24 Feb 2026 09:28:57 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 23/02/2026 =C3=A0 17:15, Jan Beulich a =C3=A9crit=C2=A0:
> On 23.02.2026 17:06, Teddy Astie wrote:
>> xc_report_op returns -1 in some error conditions.
>> Make sure it returns -ENOMEM in out of memory errors and -EINVAL
>> in invalid usages errors.
> 
> Isn't this a move in the wrong direction? -1 as a return value is quite o=
kay.
> errno wants setting to indicate the cause of the error (if called functio=
ns
> don't already set it properly).
> 

To me, passing error through errno here feels more like a workaround 
rather than a proper error handling. It doesn't feel consistent in libxc 
overall (some functions returns a negative value corresponding to a 
error number while some others -1; in some cases we update errno).

What are the error handling rules for xenctrl ?

> Also nit: s/xc_report_op/xc_resource_op/ .
> 

ack

> 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 Tue Feb 24 09:35:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:35:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239620.1541013 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoom-0002C1-HJ; Tue, 24 Feb 2026 09:35:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239620.1541013; Tue, 24 Feb 2026 09: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 1vuoom-0002Bu-Eg; Tue, 24 Feb 2026 09:35:00 +0000
Received: by outflank-mailman (input) for mailman id 1239620;
 Tue, 24 Feb 2026 09:34: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=7lmg=A4=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuool-0002Bn-IG
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:34:59 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1503973a-1164-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 10:34:58 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by SA0PR03MB5561.namprd03.prod.outlook.com (2603:10b6:806:bc::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Tue, 24 Feb
 2026 09:34:53 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 09:34: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: 1503973a-1164-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RF4p1y95WdIoPXk4BjVEQmyE5IWI0WEcixnzkmsWKnogktHZPo3Z3jWbiejspimOdC1eWpXBkHAE+oKHQoMQxSCS+5DuaXAzK0HftMhkTxbSQnh4pFlekIIi8jnasIdEKRHetInt3gLf/8y43SAko7roo1uQSU5b9SHmvFW7sJ0aEtbuEH5N9bc8q3EpBF52HIIGvAamiy8a6UzOzdSXl0NHD3do04YW6hpUJtPYWTGpxStz7CjSWKxz4s+SBMlrwQFvHLi5L6cgJDk2G1t6OKgsFcGm0KUnBUiXXAtZZhUzQvXz3lfUIxV/WRdfkKsXUEEtKZs4UgXFBU/RUy49HA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=yLdHOwTTgqnX5/mIeM6S4siuMYMq9nsgZyCOc+o0Zr4=;
 b=e5TH2NGoilVxKSPrDM7hLPJ7jW0doKVeatgXIf9sIZVHp2uudJBIpEuzIgfX2HhjgRijSHC8f60RaXQgs0NMl/hQq8YBhM+u6TFvzpiqnX4k/kD280TKLLZ+bOkV8LTS9jTTUBRdsgQwe9lQjXCEmVyre5CyaUB07mXLahW9VT/v3b+pq7Jzsq50oBjSeltdTAYw54Ous3qq12od3U9m2tju5Updh9UEAzQjkOV5hevCrT2Atz3uoDIk+fE/mcD2dAelZeLnyB7T9zpelx3WBZGntVji6kVwAIzG3qgGc7svChPuFbcnK5TfLHlgnalpS2f3SDnQA+R8qo7DniwBhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=yLdHOwTTgqnX5/mIeM6S4siuMYMq9nsgZyCOc+o0Zr4=;
 b=GxgJng9zYOuQjY4zdOsv2HYxLNapQ9NTZM5cNvIN/wgs4Hz9U5I8IaxLor5uO5CxPQer5ksgGbecJLkm8TQ8FDVz2ItT3iO818YmWu3gW8hYaJFKL62RJf3yL57c7Cp2xlXCQmk87zjQF7altuWWwsDyfJj6OOQhzQva4gRNU2Y=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 4/4] tools/tests/x86_emulator: disable xmm* tests on clang
Thread-Topic: [PATCH 4/4] tools/tests/x86_emulator: disable xmm* tests on
 clang
Thread-Index: AQHcpKvkOO1o8Mk+1keRFSkNkxjvgbWQdKUAgAEjoAA=
Date: Tue, 24 Feb 2026 09:34:53 +0000
Message-ID: <E1E1F4B3-C0FE-4077-A6E1-738056D5B370@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <9e380de50b64e45e9044a2f4bcf1a5bdb7e74a29.1771840208.git.edwin.torok@citrix.com>
 <7f6cca68-f681-41ce-8d2c-2f4854510759@suse.com>
In-Reply-To: <7f6cca68-f681-41ce-8d2c-2f4854510759@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|SA0PR03MB5561:EE_
x-ms-office365-filtering-correlation-id: 1596084f-f4b1-4f41-5861-08de7387f72d
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?TzBTcjhkU1dORHRBQTlqaXNETUlYUVR5Y2pmalo2ajFoTUdPNXJlYXNGMmZW?=
 =?utf-8?B?MTVwWjU4V1p6N0c3S0tqUzBCd3hLQjZPaHc2Zk5XMi84cnVCWSthSnFyVk1a?=
 =?utf-8?B?RENwbFZDc1pTRlNRUlorY21TNjZHb1phbkxIS2FrNTM3emM1MlBYeDFSVUxQ?=
 =?utf-8?B?RzNjcm1iVWFOcy9nWEl3Z3ROeW0rTWNndERYSFhlOXhUSU9mTzkyc3I2aW1E?=
 =?utf-8?B?b1ZySURpbm1TNVlia2luYmcrWGN5ZjlvRXBTRUROZW9oZmJVVnN2bEltam1K?=
 =?utf-8?B?QkNLMkFianhpVndVb2pDUCs5OWVLZ1EzQU00NWp2a1loMHJWT2N5TEZielVm?=
 =?utf-8?B?ZTY5eUd4ZVdNNGRnbkZGT1RhcG9jT1FtVEZiOVRzb0t0OG1JeGo4Q004RXYy?=
 =?utf-8?B?ZmFLYXcwRkdsMXFxVDBycEZYOFRYUUNjbnJHcUJDZHF5S2NpOGovby9kYnJp?=
 =?utf-8?B?NFhBT2xwZTFuYWFidHF6QVdKOHEvVWNBOE1VS1dhN1gyOHdtNjhhQUsxV0RB?=
 =?utf-8?B?MVFUdFFsMlNZSGpkNmJwdUFDVVhZRmI1MzJobWxkNFZySm9STUYwbTlrQnp5?=
 =?utf-8?B?VXBINERwTnl1N1BtZGdNeGpURVh4UFdyaWlEZW9UdVNoV2ZzZnVkNGw3N3hV?=
 =?utf-8?B?YzdaRzZCajZTTmJJZlh1dytBeDZTMHpzOVJpSFZPRUxPVU5pa09hemI0cFVI?=
 =?utf-8?B?RmNkMkUwWCtiL0ZodWxJVVpFSWlScS83emRnUm1UVHgwMXhYN2ViVnUxaFBz?=
 =?utf-8?B?algwQjRMeXJURHp0anFhY2xweTVSNy9VZVhySldod1pNd21pcFVCNFBRdGdM?=
 =?utf-8?B?OENCTWFFVnV1Tm5XcEc0dENQeDZreFFkeDRJSXBCRkN6VWxPbGdsUGlUMnJW?=
 =?utf-8?B?MFpSazJ5QTBucDd2U1g5Vmw5bWVVankvaXNxL3FSRFZYRWZwQkVyZXhWS0lN?=
 =?utf-8?B?SmNidTlNU2J6bVI4dHR1WmVLVTdVb2MyMHhBeTk3RkxibUVRcjREMmE1WTJH?=
 =?utf-8?B?Y2x1QnhGUjc1ZkdCd2hnSWQrSWQ5c0Z2dzNPQnlId0M1QXpleXFSZ2xVbjJi?=
 =?utf-8?B?VDZpeGlqbFl4Wnk2QU5qMHNwMERkbVZjNU0rVWIxT1QrQXVPYU1ZSjhPYnRj?=
 =?utf-8?B?MjRWemltWG9rOGZmWERyYnpINVYvbnF4bW4zM3crRmMvL1RZUi9QNkxhUUsx?=
 =?utf-8?B?Tlo2VnhyRXpWM2hjcG9KWjhpY1gxc2JXRVMwOGI5d3hsNHZOWHQ5L0E3a3N1?=
 =?utf-8?B?alpaV2tvbVdkejJsWWpUL3UrNVVvUXM5ZVpxcnVuUWlMVHN4SUpWZVY1SjY2?=
 =?utf-8?B?S2ljZ3FaQVdaRXQxTXNvRjRhRGJiOXFrZXFnY0RPb1NsRktGbVRSSDhpUTZl?=
 =?utf-8?B?NE9GeGQwZzR3eU40ZHdHbFFEWFRzQWxiY3FQbUliSDNsR01UTGNQQ0k4VEhY?=
 =?utf-8?B?Q256TU0wT3pUWkxpRjF0Zk0vby9ZVTlqT0N4Zk51Si90a0RKdVU2TmVkRUNS?=
 =?utf-8?B?K3ZSUCtVcS9DT2tKZ0JPQ0hjZlNweTZoUVVLMVo1OWZ5TXFqRzNWbHB5STZu?=
 =?utf-8?B?YXlLRTlOVC95QVJPRUE5V2tORFNiZ2NpRU9SK1FVa0VaL05sNytQdUZJamtN?=
 =?utf-8?B?TXhudzJWN0EzZXJPYzVtQnQ4MnFyaWpJWHg5bVp3cHNKS1g1YllQVTRCUDJR?=
 =?utf-8?B?YmxWWWllRk93YW9lZnVmaWJlRFRvazVOc2xwOStwY0xqejZMRWpWbHJROVlS?=
 =?utf-8?B?MDVQT1VnaHpZaTZ4MDk2UDVPdy9hYWpkYXUrVjUyekNFRFBscksrRTNldEFs?=
 =?utf-8?B?NGE4YnowMmhTamp3T3cwelZSMFBqWUZxZXYvalh0a0xNYmpLRWJ6VUxPM1du?=
 =?utf-8?B?NFdxdG8raG5iMHB5NDZ3aU5TZGRteHpzOGtiYkxqZFY3WWVyYkV0Vm1PWFNr?=
 =?utf-8?B?Y3dMRFQ2d1ZFZjJJMFE5RFVoS0NqZTY5QXdLQktnOERoRUtRWHppbVJ0NUhR?=
 =?utf-8?B?Z0RlSDh0N0FvbTAveHBTaW5KWlFCRk96QU1LNXh4Ym9iUkJWWjNlSWNhK1VD?=
 =?utf-8?B?c0F6aHNFMkVuSkxYclpGdDNiWGNwOElSeThVYnU1Zk1aRkJnWUFHUDNwSkZl?=
 =?utf-8?B?aUZUdVluUWJiR2RHWExUQTN6VDM5MnZnVk1FV3lSZG9PcHAxdGEzQXJJMENx?=
 =?utf-8?Q?3R7jQY/3MKf1MBtTsaM8n2M=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?UGptSUZIQTBwWDRRUHRzcWo2TlBsaGtaTlIwY0l3cEtKRTJ1WkNhMFZNS00y?=
 =?utf-8?B?ckZjVmR2ejBFSnFiK2I2eEVkV3g1ZlZCbFZ3dHEvYnFWTk4xQ1UvSGVoRVJY?=
 =?utf-8?B?blJnSFJzVWJYY3Mya2w1RFhBbm0zdTZRTW95aXdOd0NLSUtFeFFnL1ovaWJN?=
 =?utf-8?B?MWIwbmlBWVphMkF3Uk5tQ28yUmxsd21zTWsrYWVZZWZPaUV1T1E3THArM2Qr?=
 =?utf-8?B?TEJMdlM3UW90ZTlMS2RlSURzcXhTYTZiclFOYWRqTzg3SFJ0ZXlFY2NwUHhi?=
 =?utf-8?B?emp5MS8xbGJSL1VIY00xWTBqU2JZR3k1VDNWbDVjbEpaSVJHdWpWWWROZHZZ?=
 =?utf-8?B?VWlkN2wzN3BBWXBDNmZkNzdoNVUwb2EwaEM1b0g4bjZZOTdJeGVBSjhkUEEz?=
 =?utf-8?B?UWNrS2tUTW1sVnFHV21aYW1yeXRiSWNXZnpCVG9CUk1aWTA5Tm53OWRQVTFU?=
 =?utf-8?B?clpkZ1ZZTmJEQUVqNGlaMzUrNHVWWTZVc0dWdWJSUDBhS0N2VlpqeFdQV3VH?=
 =?utf-8?B?aW93SC9oSEVNcHdVd2VLMVEwb0hhZ01lNVdOQXpWZ2R1WDFlWVU2Tk5OWXhx?=
 =?utf-8?B?cDNrckI1WHJ4WkNiaG1jOUV5dU1mWHliUmhMbkZBU1JoVkFvaVprdXI2Nmtx?=
 =?utf-8?B?QmxRNDdUT2FLYitWQ0FxUDhCZzhmTUVsRFFBOHhhdHFuRjI1VSsxZmJ4UERI?=
 =?utf-8?B?TS9DZWRHc2xrV0lNb0xSRGRSOENRenFaTFhBdHZmMGo1eUVOdnFHaEc2Ti9t?=
 =?utf-8?B?VjA2MFRwMlE2MmlsVWlWaDlldEl6cXhxSE1RY2NRelJHOE4rNllzL2g2akhu?=
 =?utf-8?B?T2wvaUxLQkdwbkFVWHM3cEF6WDBTNC9NUWhoS3hGMXpndmZGZFdaUDZoKy9p?=
 =?utf-8?B?RHdrM0MvOGltTzlhR3dyd201RU9QYzBlb2NnMjIvY1VVQ2dLaTd6M2JCMVpO?=
 =?utf-8?B?ZTQ4bEo5RjI2ZDNSL1lwVytyWFlJY0VETy9ZYXlwNm1ydnhRMXRYanFhUzYz?=
 =?utf-8?B?MVZoN1ZHMlBjakl0RGZ3L1J3TElyQXAzWXZpYkJNblZlT09YNlB2NnJ0K25C?=
 =?utf-8?B?aVNoaDY2d0tiaHRiVXFYeExhMDRhV1BkTlUxYW1XV0s3cENJUVRsVjF0VEQ5?=
 =?utf-8?B?VHFCRWpoRXNJSlRMazNqbXFyTWNBSmplS1dkVWRtSmpqYi8vd3BnaGMwQzJP?=
 =?utf-8?B?TnRrN05zYnZ2b1BRdlM5VnladVpUTWcvOFdzYzR1K0NlU21FR3NQbkMrcXla?=
 =?utf-8?B?RmVtaEM1bzl5cDdNdXR4Si9RVTk3M0Y3Tk9vTlNPNkUyVjNxaXNwT2QzNmhn?=
 =?utf-8?B?Y2lkbWlCMU9Qclh1TTQvU2orQk84QnBkVWQvK3JDUGdUTHk3cUJqb3lEM3Bt?=
 =?utf-8?B?RlhkazVTNEZXM25zVjVpT1dKM2ZYM1ZNcGxEVmRVVTc2Tm13UDJvaUpkc2p6?=
 =?utf-8?B?TFhQNCt3S1dQV0d3SStGWUV3YkJ0KzBzcVJGUTMxNmNUOENweXZrVGF4Z3VV?=
 =?utf-8?B?MmxpV1ZSbHlabnFDOE5md2tHS2dUVWFXcXdNNWZyVXdaR0hTQVhUaDAyUFU5?=
 =?utf-8?B?Zi80R0dJR0toeXgwZC9tU1pQMk9FQlhlTU41ZGhPNFJPa3JjbDNoT21nMUlT?=
 =?utf-8?B?VEdKV1RnYkJCSFZmcFY4TmNNYWwyVnFaOHUzNHlTamZyUFhRbEJQclhKR093?=
 =?utf-8?B?M2JFZHFLWitSTlRrZ0NDN21XNlR3TTlhckFVUDZIcEtjQUdZdFEvWFhNQlRy?=
 =?utf-8?B?QlhpZGgydkVvYzI5UlpqRUJxZVozM1lYRjNiUkRicU9jK0dPRFRoT0RzL3Rp?=
 =?utf-8?B?YlBqTEk2MVoxQUJ5ZFlkR1YyZUI1U2xSRlJXazVtVm1saHlXb2lXY1hIekZK?=
 =?utf-8?B?eXY5S0xJaWtyY2J4d2JRU015blQwV29UQmRTMXE2YkY1VmgvQlVBaUZqTDZG?=
 =?utf-8?B?UEtEUjBQTWg5aU4yb1JRNDBrUVVLUndzK0lmZ3lkUHlxS2wweThYS3VENTRE?=
 =?utf-8?B?ZjhoQ1pKNFdUd0pyWnFhOXptK2sya3FHaWlqb3orTDR3cW5LN2JENGgzbjh3?=
 =?utf-8?B?U3oxNWw2MEovb0VuYnMwald2QStrME1LbGkwSWxoV0hFQWUzQXBidGh4ZGF4?=
 =?utf-8?B?Q0UxaWhqMTMxQzhEeUhnN2FYQ0lwTlR2MHdqNHRBNlR5YzNZMVljOHllK3Rv?=
 =?utf-8?B?M21VWkZzN280VnVhdXF1aXE4aWFJRzlQWEx2RUNIRUwyV1FQZUdPQ2crS2V6?=
 =?utf-8?B?dUZlVit1UERMOWJQSnFzSVFrRkVtWG5WZ3pDMCtKRWM5a01GODNySUFha2Qx?=
 =?utf-8?B?am9mTXNzZkEyZFEwZVgydmNrbXludHRmVTU5eC9VaVdUUXgwaFd1dHAzdUxU?=
 =?utf-8?Q?amEA9KcT7Ou5O3Og=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <AE98EBA69642E74BB94B8107F8D8BE8B@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1596084f-f4b1-4f41-5861-08de7387f72d
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2026 09:34:53.7742
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: m7jqDKHNBPDmWXE3BgQ0oj47s06uOcs9AwAHe54yS/mdfp+BmD5AjQp5sh0RpWYUXC9wgEWvkzHKqa0GxiPSlg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5561

DQoNCj4gT24gMjMgRmViIDIwMjYsIGF0IDE2OjEwLCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMjMuMDIuMjAyNiAxMTowNCwgRWR3aW4gVMO2csO2ayB3
cm90ZToNCj4+IGNsYW5nLTIxIGRvZXNuJ3Qgc3VwcG9ydCBgLWZmaXhlZC14bW0wYCwgc28gYCV4
bW0wYCB3b24ndCBoYXZlIHRoZQ0KPj4gZXhwZWN0ZWQgdmFsdWUuDQo+PiBEaXNhYmxlIHRoZXNl
IHRlc3RzIG9uIGNsYW5nLg0KPiANCj4gSSBkb24ndCB0aGluayB0aGF0J3Mgd2hhdCB3ZSB3YW50
LCBhbmQgbm90IG9ubHkgYmVjYXVzZSBvZiB0aGUgY2x1dHRlciB0aGUNCj4gdmFyaW91cyAjaWZk
ZWYgY2F1c2UuIFdlIHdhbnQgdG8gYmUgYWJsZSB0byBydW4gYXMgbWFueSBvZiB0aGUgdGVzdHMg
YXMNCj4gcG9zc2libGUsIHNvIHRoZSBmaXJzdCBnb2FsIHNob3VsZCBiZSB0byBmaW5kIHNvbWUg
YWx0ZXJuYXRpdmUgbWVjaGFuaXNtIHRvDQo+IGFjaGlldmUgdGhlIHNhbWUgZWZmZWN0LiBBIGds
b2JhbCByZWdpc3RlciB2YXJpYWJsZSBjb21lcyB0byBtaW5kIGFzIGENCj4gcG9zc2libGUgb3B0
aW9uLg0KPiANCj4gRnVydGhlciwgaG93IGRpZCB5b3UgYXJyaXZlIGF0IHdoaWNoIHRlc3RzIG5l
ZWQgc3VwcHJlc3Npbmc/DQoNCkkgdXNlZCBnZGIgdG8gbG9vayBhdCB0aGUgMiBtZW1vcnkgYXJl
YXMsIGFuZCBub3RpY2VkIHRoYXQgdGhlIFhNTSByZWdpb24gd2FzIGRpZmZlcmVudCBiZXR3ZWVu
IGVtdWxhdGVkIGFuZCBhY3R1YWwgd2hlbiBidWlsdCB3aXRoIGNsYW5nLg0KVGhlbiBJIG5vdGlj
ZWQgdGhlIGJ1aWxkIGZhaWx1cmVzIGR1ZSB0byB0aGUgbGFjayBvZiBmaXhlZC14bW0wLg0KVGhl
biBJIGFkZGVkIHRoZSBpZmRlZnMgb25lIGJ5IG9uZSBhcyBJIHJhbiB0aGUgdGVzdCB1bnRpbCB0
aGUgd2hvbGUgdGVzdCBwcm9ncmFtIHBhc3NlZCB3aXRob3V0IGZhaWx1cmUuDQpJIHRyaWVkIGFk
ZGluZyBzb21lIOKAmHB4b3IgeG1tMCwgeG1tMOKAmSBpbnRvIHRoZSBjcHVfaGFzX3NzZTIgc2Vj
dGlvbnMsIGJ1dCB0aGF0IGRpZG7igJl0IHJlYWxseSB3b3JrIGVpdGhlci4NCg0KQWx0aG91Z2gg
SSBtYXkgaGF2ZSBiZWVuIG1pc2xlZCBieSB0aGUgb3ZlcmxhcHBpbmcgcmVnaW9uLCBzZWUgYmVs
b3cuDQoNCj4gSSBkb24ndCB0aGluaw0KPiB3ZSByZWx5IG9uIGFuICJleHBlY3RlZCB2YWx1ZSIg
YW55d2hlcmUuIEkgZG9uJ3QgZXZlbiByZWNhbGwgdXMgcGFzc2luZw0KPiAtZmZpeGVkLXhtbTAg
d2hlbiBjb21waWxpbmcgdGVzdF94ODZfZW11bGF0ZS5jLg0KDQpZZXMsIEnigJltIHN1cnByaXNl
ZCBpdCB3b3JrcyB3aXRoIEdDQy4gQnV0IG1heWJlIG9ubHkgYmVjYXVzZSB0aGUgZW11bGF0b3Ig
b3ZlcndyaXRlcyB0aGUgYWN0dWFsIEZYU0FWRSBhcmVhIGNvcnJlc3BvbmRpbmcgdG8gWE1NLg0K
WE1NMCBiZWdpbnMgYXQgb2Zmc2V0IDE2MCwgYW5kIDB4MTAwIC0gMHg4MCA9IDEyOC4NCkFGQUlD
VCB0aGUgYWN0dWFsIGV4ZWN1dGlvbiBzdG9yZXMgaXRzIHJlc3VsdCBhdCBbMHg4MCwgMHg4MCsw
eDIwMCksIGFuZCB0aGUgZW11bGF0b3Igc3RvcmVzIGl0cyByZXN1bHQgaW50byBbMHgxMDAsIDB4
MTAwKzB4MjAwKS4NClNvIHRoZSBlbXVsYXRvciB3aWxsIG92ZXJ3cml0ZSBzb21lIG9mIHRoZSB2
YWx1ZXMgZnJvbSB0aGUgYWN0dWFsIHJ1bi4gDQoNClRoaXMgb25seSB3b3JrcyBpZiB0aGUgZW5k
IG9mIHRoZSBGWFNBVkUgYXJlYSBsb29rcyBsaWtlIGl0cyBiZWdpbm5pbmcgKGkuZS4gaWYgRkNX
L0ZTVy9ldGMuIGhhcHBlbnMgdG8gbWF0Y2ggTU02L2V0Yy4pDQoNCklmIEkgbW92ZSB0aGUgcmVn
aW9ucywgc3VjaCB0aGF0IHRoZXkgYXJlIGRpc3RpbmN0LCB0aGVuIHRoaXMgYmVnaW5zIHRvIGZh
aWwgd2l0aCBHQ0MgdG9vIChwZXJoYXBzIGR1ZSB0byB0aGUgbGFjayBvZiBmaXhlZC14bW0wLCBJ
IGhhdmVu4oCZdCB0cmllZCkuDQoNClBlcmhhcHMgYSBiZXR0ZXIgd2F5IHRvIGZpeCB0aGlzIHdv
dWxkIGJlIHRvIG1ha2UgdGhlIDIgcmVnaW9ucyBkaXN0aW5jdCBmaXJzdCwgZ2V0IGl0IHRvIHdv
cmsgd2l0aCBHQ0MgYW5kIHRoZW4gc2VlIHdoYXQgYnVncyByZW1haW4gb24gQ2xhbmcuDQpJ4oCZ
bGwgdHJ5IHRoYXQgYXBwcm9hY2gsIGFuZCBzZWUgaG93IGZhciBJIGdldC4NCg0KQmVzdCByZWdh
cmRzLA0K4oCURWR3aW4NCg0KPiBXZSB1c2UgdGhhdCBvcHRpb24gd2hlbg0KPiBidWlsZGluZyB2
YXJpb3VzIG9mIHRoZSB0ZXN0IGJsb2JzLCBpaXJjLiBBbmQgdGhlIGNvbW1lbnQgYWhlYWQgb2Yg
dGhlDQo+IGZpcnN0IHVzZSBleHBsYWlucyB3aHkgd2UgdXNlIHRoZSBvcHRpb24gdGhlcmUuIChM
YXRlciB3ZSBhbHNvIHVzZQ0KPiAtZmZpeGVkLXltbTxOPiBhbmQgLWZmaXhlZC16bW08Tj4sIGJ0
dy4pDQo+IA0KPiBKYW4NCg0K


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:36:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:36:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239629.1541023 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoqD-0002gh-Qd; Tue, 24 Feb 2026 09:36:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239629.1541023; Tue, 24 Feb 2026 09: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 1vuoqD-0002ga-O0; Tue, 24 Feb 2026 09:36:29 +0000
Received: by outflank-mailman (input) for mailman id 1239629;
 Tue, 24 Feb 2026 09: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuoqC-0002gU-Hd
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:36: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 4a7818de-1164-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 10:36:27 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-480706554beso63574155e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 01:36:27 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a9cb3f31sm248163885e9.13.2026.02.24.01.36.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 01:36:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4a7818de-1164-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771925786; x=1772530586; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iwktHN5AoA1M/Ga3pp7tujNkE83JC+yBQ1WUTOWAhGQ=;
        b=V8pyYIP4CIHwzJaZRGugNdhZ/5eEka6AveGVfBUAj3nwnn7vJvYUgSAySBWybCxcqH
         HbsEDfC87PXr6TrJ3apmdAmSZ/EExvj1RGWX9FTwDiUJfLmIBhXbaWNYEAC5hhPiX5cB
         uJWpZo1oNu9BvI9LnbaJ23j+T2/v1kuyWTitcH4GcvAZcZ/0pwA4RpU79YlERmnlLoVI
         bhYATvLlJR310waoj1a2HyZ3TBh/lHEnRd4s/rJzEN9TGy8oNaDSX36siBAqpjZEt2fo
         X4w/0i7WZvAZow1e3XpPGAQzVhWw+ssnSYwiZhYaLoFHovTS2JT3WdC9j3YpLD6PPQB4
         0cGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771925786; x=1772530586;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iwktHN5AoA1M/Ga3pp7tujNkE83JC+yBQ1WUTOWAhGQ=;
        b=T3sbGiUg8Um1jrD7C8dxVXxXCENdXGNUX4a/FKEx1MtynHy/OQHQ1opwaEq7HyjFoQ
         GnsUi48J5c9BlB0MVBbuvRbTdYyTjksWD7zRp6UyswBe50Lwb8ETt2K+ts1uuXic7A1a
         W1bfCM+q6Je6JXcmOfa2ocn0oaXp7t7zxQSava5wgpfSZiaoVKnclzToftzU1c2AtmaK
         2TxyIQ1PgrFe0Jd7T47LjYWNOOQY7kKxun7HNtmPJj16oXFb/faDqrAoDOXqg9XO4Lav
         l6L9RnYn20MeceiWREW4hD8gQcnWXwwV5SQrCWkSZg+K74fqmqpIfqXVWUFPbREoW/fW
         DFYg==
X-Forwarded-Encrypted: i=1; AJvYcCWFv5h66NRKuNiUW43QsjbGv9fR5sS7P5uIJZQvkNowUl6NlKY6ruR30oMyoQqQomLDo/uck/3/4sY=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywgq/KsgP6AXUnBGJGb1Hu3CvGEkkj5Cyd8NQy5Gs12ZnTdUUJT
	NRyBFJeeJJw3m2ah62k8O4UZNqSiMyGSZO1V1ggsbnjv2p+HqP+Avg+e2X35tnBpWg==
X-Gm-Gg: AZuq6aJ2XPN6F2tm6oPBtEWMOmNq9M7cwXsBOjJPw01M7aFc7NoOG39UJX6EnjyqJtK
	1MlChff+JOmH4KQpwG6OOUvGM0d50MoXfXTBUGO1IEGXX0PrTWqDszS0Ve2VuI9u/vZ7EtrZg9R
	y+QK1LJQnJ9VIgKiAuk6ds6qYkiDj86eO4SDVUvG1xTHpo8nkhEIMdsoIL0QZ6Oxz/nWm19qXq/
	FAVKl0zvF+bGmw0apwm3reNCDXhNEYWPVku4I11TFmm6jkZvm8v0qYeDqRYqQIQB92O7ghPEUUR
	WwjwGu1CHciJl3yMV93zIZEah8Njq0NExWd1qrHp3OoqeAtOIaGIQQy79T0Fmdu++pbOnmTw7cg
	yFc+Ph/7nCP8aCkDYbMxwoUocL7yq3w4kfHzKk21bC9+ssR/RH6oSGeXA1Nc+M4eYuc+18Jmbs1
	UD/ixxnFHMUlEsK0BpdDwXC2bna7fQn9/StsgAYzlyGxkLt2CV9578XsQZAaZfjdEWPL1G7d9Hm
	hyHsjSJPZT4C8s=
X-Received: by 2002:a05:600c:a44:b0:483:badb:618e with SMTP id 5b1f17b1804b1-483badb62cemr10190695e9.8.1771925786513;
        Tue, 24 Feb 2026 01:36:26 -0800 (PST)
Message-ID: <3aa8280b-8168-4e27-973f-f55dd7a11dd9@suse.com>
Date: Tue, 24 Feb 2026 10:36:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v7 1/2] libxc: Report consistent errors in xc_resource_op
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Juergen Gross <jgross@suse.com>, xen-devel@lists.xenproject.org
References: <c8677e4588eff14197e47070587f31df1567c030.1771860109.git.teddy.astie@vates.tech>
 <0d7afac2-d358-4b0e-b828-31ebba6357d2@suse.com>
 <f569a8f0-8df9-4e5a-b3ed-ae600c3c0bd3@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: <f569a8f0-8df9-4e5a-b3ed-ae600c3c0bd3@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.02.2026 10:28, Teddy Astie wrote:
> Le 23/02/2026 à 17:15, Jan Beulich a écrit :
>> On 23.02.2026 17:06, Teddy Astie wrote:
>>> xc_report_op returns -1 in some error conditions.
>>> Make sure it returns -ENOMEM in out of memory errors and -EINVAL
>>> in invalid usages errors.
>>
>> Isn't this a move in the wrong direction? -1 as a return value is quite okay.
>> errno wants setting to indicate the cause of the error (if called functions
>> don't already set it properly).
> 
> To me, passing error through errno here feels more like a workaround 
> rather than a proper error handling. It doesn't feel consistent in libxc 
> overall (some functions returns a negative value corresponding to a 
> error number while some others -1; in some cases we update errno).
> 
> What are the error handling rules for xenctrl ?

Question goes mainly to Anthony. My take is that library functions should
behave properly, and where that isn't the case it wants adjusting.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:37:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:37:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239639.1541034 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuor6-0003GZ-6w; Tue, 24 Feb 2026 09:37:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239639.1541034; Tue, 24 Feb 2026 09:37: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 1vuor6-0003GS-3E; Tue, 24 Feb 2026 09:37:24 +0000
Received: by outflank-mailman (input) for mailman id 1239639;
 Tue, 24 Feb 2026 09:37: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=+kWt=A4=linux-mail.net=dt@srs-se1.protection.inumbo.net>)
 id 1vuor4-00032q-1l
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:37:22 +0000
Received: from mail-4398.protonmail.ch (mail-4398.protonmail.ch [185.70.43.98])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 68488617-1164-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 10:37:17 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68488617-1164-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-mail.net;
	s=protonmail; t=1771925836; x=1772185036;
	bh=r2rda/g/vi5GF2WIAeDs3b+9hmolyVwJOyarSdmFE8g=;
	h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
	 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector;
	b=PdbCfxjgi4SN+YiE7S7My63gVIe+v7WfKxKYiVcHAJn1xeEhgc51bgJw5IKRv+Bw1
	 lDQbJDgT0bVu/pleb1j+Shb53j22elBWGu31j2wz5WZL530qDOHK+RQp6BMB1i8K4C
	 YbRoMzpzRiTMPGu2DFXOLccv0Nld/ILIuVIBJ7pNlzzQKfR1rMjuAng5wAlofSTUP8
	 3TljrwVbQa0vurfh2Kkrg/9d9RzTb1t9EfhEUSWSEYFTV7pqdOS/IJiMt9Dywu8MFm
	 IJF52z60NgxooMKNSUoQaY0VUWOt7/EAfJsrxrFQGy6R0KB79/JqCs3z+r+IaVK1xE
	 XAHCtI8O4pv4g==
Date: Tue, 24 Feb 2026 09:37:11 +0000
To: jgross@suse.com
From: David Thomson <dt@linux-mail.net>
Cc: boris.ostrovsky@oracle.com, olekstysh@gmail.com, tglx@linutronix.de, jbeulich@suse.com, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, David Thomson <dt@linux-mail.net>
Subject: [PATCH v2] xen/acpi-processor: fix _CST detection using undersized evaluation buffer
Message-ID: <20260224093707.19679-1-dt@linux-mail.net>
Feedback-ID: 176297775:user:proton
X-Pm-Message-ID: 6d863196dc75b80c244bf456ca669156f4bdc168
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

read_acpi_id() attempts to evaluate _CST using a stack buffer of
sizeof(union acpi_object) (48 bytes), but _CST returns a nested Package
of sub-Packages (one per C-state, each containing a register descriptor,
type, latency, and power) requiring hundreds of bytes. The evaluation
always fails with AE_BUFFER_OVERFLOW.

On modern systems using FFH/MWAIT entry (where pblk is zero), this
causes the function to return before setting the acpi_id_cst_present
bit. In check_acpi_ids(), flags.power is then zero for all Phase 2 CPUs
(physical CPUs beyond dom0's vCPU count), so push_cxx_to_hypervisor() is
never called for them.

On a system with dom0_max_vcpus=3D2 and 8 physical CPUs, only PCPUs 0-1
receive C-state data. PCPUs 2-7 are stuck in C0/C1 idle, unable to
enter C2/C3. This costs measurable wall power (4W observed on an Intel
Core Ultra 7 265K with Xen 4.20).

The function never uses the _CST return value -- it only needs to know
whether _CST exists. Replace the broken acpi_evaluate_object() call with
acpi_has_method(), which correctly detects _CST presence using
acpi_get_handle() without any buffer allocation. This brings C-state
detection to parity with the P-state path, which already works correctly
for Phase 2 CPUs.

Fixes: 59a568029181 ("xen/acpi-processor: C and P-state driver that uploads=
 said data to hypervisor.")
Signed-off-by: David Thomson <dt@linux-mail.net>
---
Changes in v2:
- Check pblk first to avoid unnecessary acpi_has_method() call when
  pblk is zero (Jan Beulich)

 drivers/xen/xen-acpi-processor.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-proces=
sor.c
index 2967039..67a4afc 100644
--- a/drivers/xen/xen-acpi-processor.c
+++ b/drivers/xen/xen-acpi-processor.c
@@ -379,11 +379,8 @@ read_acpi_id(acpi_handle handle, u32 lvl, void *contex=
t, void **rv)
 =09=09=09 acpi_psd[acpi_id].domain);
 =09}

-=09status =3D acpi_evaluate_object(handle, "_CST", NULL, &buffer);
-=09if (ACPI_FAILURE(status)) {
-=09=09if (!pblk)
-=09=09=09return AE_OK;
-=09}
+=09if (!pblk && !acpi_has_method(handle, "_CST"))
+=09=09return AE_OK;
 =09/* .. and it has a C-state */
 =09__set_bit(acpi_id, acpi_id_cst_present);

--
2.34.1




From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:38:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:38:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239649.1541044 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuosM-00044F-GI; Tue, 24 Feb 2026 09:38:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239649.1541044; Tue, 24 Feb 2026 09: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 1vuosM-000448-Cs; Tue, 24 Feb 2026 09:38:42 +0000
Received: by outflank-mailman (input) for mailman id 1239649;
 Tue, 24 Feb 2026 09:38: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=7lmg=A4=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vuosL-000440-0H
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:38:41 +0000
Received: from SN4PR2101CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170120001.outbound.protection.outlook.com
 [2a01:111:f403:c10d::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 96754aba-1164-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 10:38:35 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by MW4PR03MB6586.namprd03.prod.outlook.com (2603:10b6:303:129::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 09:38:31 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 09: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>
X-Inumbo-ID: 96754aba-1164-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jetU5IdlywYO3wo1ABbOwxGpcS8DEJs5t/lKnWYJA7EAOIlY6q9fzH5XhaROFcq5FP/LtaV04p9RYx1+2qodGaAjvIHe55s0inFHudQ2d32eNC5qP1CTYpPP6NAD3Eu5pbJnAhvuKk9B34NfORfZ3Aes9gPlHiDNVifTYPlXDtP45mNdvTNJwgZ5l1Ba6h11OBPyUBJiXhUCpK1U+2Nsoru4sKpNjtpHixy9a8O+yssU+Pcy+OesHJ0X+Zna6CFEU6Eo1mNlcB9Tt2vuDGLm46HTBWcW/5VLJJcRRBP8hbAWuaossUjaLI//yKo4mV7y3swaQqryqaKtPc5JgOCxkA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=OOZubTdsiOzrnf4BstJ6DozdEDs++6HU0dKHiLxr+WA=;
 b=JQCy/5fXBK1vDD8mbdEBcAUtbPMOPxhMFK32ZC8dhvLc+LxCJsEzvpcofNFB3sNWGyYzO1gh1HCLo9Cbh42/la9HOpuYEOR1MY6IJzr3yKZnOiYa0ux3DF8C+Z/JghWG28B6nZaIHsD/7Y+xT689fdqDgD3ZPJdd3bUtb/hFdARTn39vyBtBPvT/iGi9rUyAq4RkSPxFUdPtwKr9WY8wDYmF8XTpFBjzChkwFB4NVnwtf9CHSGTpRhcRQNk3Z9VIL6gg1DKT5vlc2ugBpa1D3a4VTKQlJjgh5CcqA+ineeklZ3uVB5+0V2RHD2LEkQQdqWlvc5vUotuJHYFPFfBa3g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=OOZubTdsiOzrnf4BstJ6DozdEDs++6HU0dKHiLxr+WA=;
 b=hPqXtb1lYwZm9Rhde+iCVTcFJaoqoGPoDnyAhFHEyosLgxGWV0wbAmiCz/rO/intkLVUEaCDQ8SMH4CVKt4fNu6qsz/bQSzwYLqJ3JbkmsaJD8Hr0sqN5RxPjcssqWn3tBZVcjMCoJyh5Pa5yS8BY/+jWDynOhhYRp2/BdWF0ow=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Anthony PERARD <anthony.perard@vates.tech>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Roger Pau Monne <roger.pau@citrix.com>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/7] tools/tests/*/Makefile: factor out common PHONY rules
 into Rules.mk
Thread-Topic: [PATCH 1/7] tools/tests/*/Makefile: factor out common PHONY
 rules into Rules.mk
Thread-Index: AQHcpK0tQx2+yGxKK0yu3GIXOaCAi7WQe++AgAEdWAA=
Date: Tue, 24 Feb 2026 09:38:31 +0000
Message-ID: <6616BFC6-2ABC-4DEF-A799-BC660BBE31BC@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <6fa0d95dad3d223cf8aaa923ae59fd0b3a97d4a0.1771840831.git.edwin.torok@citrix.com>
 <20e3edf8-9aba-40e9-af57-e5eddf001a7b@suse.com>
In-Reply-To: <20e3edf8-9aba-40e9-af57-e5eddf001a7b@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|MW4PR03MB6586:EE_
x-ms-office365-filtering-correlation-id: 1e5e4bdc-f206-4a68-71c8-08de73887919
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|366016|376014|1800799024|8096899003|7053199007|38070700021|13003099007;
x-microsoft-antispam-message-info:
 =?utf-8?B?bU8zeUhQc0NMcnM4NHlNTGhCU1haR2hZNi92VjVPeG93Y1hHZnB5ZWd6WTdZ?=
 =?utf-8?B?aTBQalNUTkZoYzVnYzlzMkNwN3VuYW4zR0wrSVBsUTBmZGhkUnl3b2FmelJj?=
 =?utf-8?B?bUNMblBIM2pNTmM2dEdyaEVpa24wQ1lHaGZmaSt0TVIzVElPNkM1OHhJN0Jo?=
 =?utf-8?B?NTYrRnZyRGpaOVlJMGNkRXdYWFo1M2t1eXQwV1J3cUp5QmRaRnJOOHU2ZHhk?=
 =?utf-8?B?K1BKMlI5alp2RkV3QjhpM3BmTVN0bVk3UU5EalJXRmRjVG5JZ3JkcjZPT3By?=
 =?utf-8?B?VXgrYVFUT1d4aU52WlU0UWpRdkVYcTg3Q2FleUZNNWZ2UE5CVUhCVTlhaDg0?=
 =?utf-8?B?eC93L2I2VDJVL0p2WlFJMFVzYlJmRkF2azVRKzlHNzIrQ1RZazlvQjNlSFhq?=
 =?utf-8?B?S2t4bnFHTk9oZjFWYmVkSzRVbEg4RTVveGdtV0tadC9tV1E2ODFuQmZLRkhD?=
 =?utf-8?B?NHZrMHNWbHRDamtQRmczWWFDSWszb3czeC81S0ZYTFQ3aGQ3cUNGUnhWU2Nl?=
 =?utf-8?B?UzVlNlJ0c3BmT2QzMmJ6Zzc5akZ1a0RxWS9pN21lODhWQU5lODQ1bkMxamkv?=
 =?utf-8?B?QWRxYzVuWUx0V2NzSkJTbklyNEJ5SW91RnRObVhqVVQ4LzRqNXNic0RVcEpl?=
 =?utf-8?B?aEtWdnlxNGtKdU10M0tlM3JwemExVWxKNU42aTdheE5rTzlsNzJPZDlZRnpl?=
 =?utf-8?B?VnVEbnBiOWhRWWIwUnFnWWNEZVp4MkdmSlV0WkovdUhKMmVaZ2w2UEsrQ2Zq?=
 =?utf-8?B?RllNWGxQMG1mRHJ4VVhiUUdwdTltQ1d2OVlNNlZjYythUDgyekk3SUpENUpj?=
 =?utf-8?B?bm9CeFB5TkpVS0J1dnc5SzhPYjlGVm9LR0tnZkJmdzJaL3BHdENLeFFNbVZK?=
 =?utf-8?B?bUdiL0EraUVaeEd5Tk1KYUdiUHJ4eDRMUnJzQnh0RXl5SGk3RDZ0a09OSW1i?=
 =?utf-8?B?bU1YVXZ4dTdHZU04RlA2bS9zQ0VkTDdnRXJRSS9HRnlReDkyeXRhNndyN2J0?=
 =?utf-8?B?czVWSDhRM29udis5N21uNmJqZUhoYWlJbjc1SzJqUEROYXFpWSt1RmVMSmFP?=
 =?utf-8?B?b054SGQ4UHFQS3NmWllBVG9qSUkwa0pPMUpyNCtQNHNReGMzSlV6S0F6RFU2?=
 =?utf-8?B?TWxWNmpBRWsyS1dSQUh5WkdONGtIbnpZTUNMbWJSVFhEOTV4S3ljRS9LYi8z?=
 =?utf-8?B?YmxTSmVwREZUNTFvTHRsaFNoUENGcTFSWmVOOVh2enV1MEhuNlM3UHdWVWR4?=
 =?utf-8?B?aldnWXZ1NmdsakVWeTNZU0hLWTRPYnB4RnVESGlDbllDVTU3NXJtdE9IdDdl?=
 =?utf-8?B?cHVnd0lhQnYvOEsyQk44ZTJoQ2dDTnNjeFU0NDVLeWVsaktuTU1PaUJ4QnRP?=
 =?utf-8?B?TStIV0t4TFVBQndsdGlBeHlRdElKQnVJMFlNeUpEOW1jTFUrcERZYXg5Uzdv?=
 =?utf-8?B?MEFkNENURFFPT0tkd04zSjhuNWdtejZ5bS9FTmJXMTlueStEenJmaGdHeHhJ?=
 =?utf-8?B?QUpGZGlrS3JtNkpmd21iV3BKTWU1TEZRSXd0OUFYTnJtS0JFK0xXNkViTy81?=
 =?utf-8?B?Z0Z0Uy8wZHFlSHU4aG16SVovUVpDZ3pDem0rSEs1THRhdDE2L0tlcmtKZGdS?=
 =?utf-8?B?aHh2NUEyd2g3cmtTd01WVlppd1FWUUVrZWdzWFg2ZlhhRmNDbGk3bWdpQjQr?=
 =?utf-8?B?MUNkcWtrdzlWVXdtRjhydWdUT0xDYldhdDNzL1VGMk80N0xOUEdtbHU5Y2JX?=
 =?utf-8?B?cXhObEljK1hLUlRyY1J6L3hlQ0NiYlVNVlkxY1hoNUttZnpJMU5FNXBvdFYr?=
 =?utf-8?B?cGx2RllTOU1vZ01LMC9lMVhuU01rZXBKSjVEWVFYdmVoc3c4SGhsRjh6L0Y2?=
 =?utf-8?B?TmwxdXEwU0JXUk1OYk5LMXl0NVFmTDMrMWlFQXlyVTZmczdFek8xOTZYemc4?=
 =?utf-8?B?eXhiMWg5UFQ5ZGcvRWE1emxmYUVVOHczYW01VWE4RlJ5d2g3N2RYNU9qb2Yz?=
 =?utf-8?B?M3BEa3Ftb3EyMldCRzJEcE9EQXIxVVAwMGlKNEJvL1FGRlNBcGlVcWdKUE1n?=
 =?utf-8?B?T3g4aFhGdENxVzdhQWlWdWtHaGFiOXdVajFHeGRRaEtkRzZPME52czdnMURn?=
 =?utf-8?Q?CG0s3LDGgmQ6s08m+DtetB+oU?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(8096899003)(7053199007)(38070700021)(13003099007);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?T1g2TjNOSk1PSklCTDBPcmJ5SVZyd0loNU5Yekh3dmdnbnV5UEk5ZDlMMGI4?=
 =?utf-8?B?UStNMUh3eGFZdnRjNEpSdUlOWks1Zlcyb2t5eU1oTVUyVkFPaStxdVRreVFo?=
 =?utf-8?B?QlRLMmU4dmJsemJ1VlowWEdzQktwRE02T0M2VkdJSFY2S3E3aHFGMENuWTM3?=
 =?utf-8?B?ZitUTmRsbkoyZGFUQ2pYQlNiZEgxa1F6bTZGRmtveFFac0lpaGp3U2VXVFQ5?=
 =?utf-8?B?VzBOZXk5dS9YM2phMFFiRWRZNDYyaXpHMnE2bEl3MVcvYnd5MGpFYitHVzdH?=
 =?utf-8?B?cUpkR0ludE81MmRlRjFrTWV6djRLaWJjUjJLZkJPNTZMSEo2YlpoUUhGR1JK?=
 =?utf-8?B?a1pBMlVKUWtUYUhzeVVsN1lMWkd0eTdLNWFOekdmV0hiMDBHbWswNWZsTytN?=
 =?utf-8?B?VlNRUXlvNE5XcFZ1bWpDRHkrM1VCM1hhajZHMWdhdklOclhWTFBSVXZFa3dz?=
 =?utf-8?B?NzhGS0ZCUDNRSENBSlBQNnE1bWpCNUd1alZJajQ1Qm8xd3IvWVNxanhvelo4?=
 =?utf-8?B?NE44S3dFS3A1UGJxNDEvUi9NRWlHcGloU3lIZHFISTFsbW9aT1pFb1h5SUg1?=
 =?utf-8?B?ZmhBTEpXK0EwMmw4eDRKWWQvbGxLVk81UXczTFhlblo2U2Y1R2Y5dTdsNzFq?=
 =?utf-8?B?VnlsWHBZS29hYkhZZmc2ZlEwYW81ZFZVU25ZKzZMQkpLVXBRL0pEWjVCcFJj?=
 =?utf-8?B?S3Q2UHprcmdBMXZFNTd0dW9oK0QraVJDWmU1Yk5wTEtMNjRmQVhwS3BPb09I?=
 =?utf-8?B?NEZzbEthampxMDFkY1cweWh0TkJXSitqK0NRNlVMcFIrRm41VElXd1VEU3Fj?=
 =?utf-8?B?ak1iYTJtTDRiMnovdktpeElnQ0RJWUkwVmpWYTJFTk01NDFvN1FCZmVoVFM2?=
 =?utf-8?B?bDQ2SHoramljL2s4REYxSnpoQXk4L0tTbVoxenpjL2JrbVRrZXRkQUpndXdZ?=
 =?utf-8?B?QXp3ZHI3WHBISWxiR1d3Qnd2b1dtcnFuWVZvM1lIN3AwR0ZVMjFXQWZDLzZu?=
 =?utf-8?B?TGsrYmpWQ1ZUMFBvMStEL3k2eVNWekVpM2loZUt5WldQTVB3UThYbytLelE1?=
 =?utf-8?B?Q2YyS0RCWXYvMUlyYjZKd2oySnhUcUhYQ0VEeXZHVE5IMEpkV01Qa2NaWitH?=
 =?utf-8?B?Tm8vUGViUmtmbXc0eTVJMTB2Y0lRUUZHQnJhUjhLK1VHcXlLcEI4YWUweUtL?=
 =?utf-8?B?cHhvYlJwT0Z1SU9rMm9LcUc3Mm9kQVVYdmRwSU1qNGRyVVJWbE9nYzFBY2I3?=
 =?utf-8?B?dy9BTlhkcnk0TUVXNEhJcHJoaTB2dStoSVk2azhQZkFvMURjYjRqY3ZEMStS?=
 =?utf-8?B?eXdSejFrU2ZDd3ltWjByTHJjQVF0UE5mTmdQMDFLbGRLSWtwRnFBSnFRMTUx?=
 =?utf-8?B?U0tEMDRBRW8wVmRHbDR6YzFHZmMyS25lMy9QWnI1ZnhCWURFSFFsUHQweGl3?=
 =?utf-8?B?Q2g1cUlvdEdCL1FzVVBuV1ZLdmJPVmNjZmZyNlRTeWs2NC9Pd3BsWGk2QWk1?=
 =?utf-8?B?SlVvdXdtdXl4bVdKWkhKM1RYOVhFYmE0OVVlbFJoaE80MFdTY005OEFxT0pN?=
 =?utf-8?B?bU5sbkY4WmM0YU4xTFNwY1FvaVFxVHg2NWZjeTlEaVJRUU5UNVJwU3NVVmlz?=
 =?utf-8?B?MFJUQ1VNd1NOQ0ZITm9RNGpscGZsRjAzOUFSTk5JNDNnVWN1bXhrb3NOS2po?=
 =?utf-8?B?VUlxTXA5Z2piRVdvMjkyMkdOeVFid0xPWE43aFR1aTF1d3RSdzFpQXFBaG9k?=
 =?utf-8?B?RGkveTlVZGYwNXNiandEMEhTU1g3MytNZ3Uwa21iWElVcFROTVYvdXkxejRv?=
 =?utf-8?B?dTMrdE4rK3E1b2dFdDMxaUFkaUJKZ044b1pnOFZUeDJWeWdmTFB2Q3JmZVhw?=
 =?utf-8?B?TjhmeENJQjh3Zm1sbWorN0k5ajNuU09vZ1QyWGpVWFRBU1hFZFZSRzJ5cE1I?=
 =?utf-8?B?c1lYUGtjMlFIbWlqczBGQkZKMUlpendKUmcvbVh3T0dUZ3RxR0RuVWtLQnIv?=
 =?utf-8?B?dmRTOGtXcWkvcW00VCs1RDdxS2lRNHcxdWYvamVQMXkyeUg0MEJCaTRGN1c3?=
 =?utf-8?B?OFF4RXgrbzMxdTNrYTFTdmk0UkJVNFAwWGErU0Q1cW85YmgzSnFQMlRHc1h3?=
 =?utf-8?B?RTNLbVJsaWdpRDF5MVpQWlJGRnRSNlpDTTUycDFYdFc1ejhvT2hqVE52cHhi?=
 =?utf-8?B?U2Nta2VYMkcwS242T3lxNWxWRDZZZWVlQmt0Tkh2UVFDMHFTdFlxdWZJOG9U?=
 =?utf-8?B?Z1g2c21OMXJiRTFJSzJrcGlleVJjeUE5bXJuaDhvenNQeU14NjFldnkrQk8v?=
 =?utf-8?B?anliSVdZV1dEeStERWdUNFUwaG5CdGRDVGR6clpKNVZFWW9oaXVtTVp2elRq?=
 =?utf-8?Q?kUtFvorvgmpqjZxo=3D?=
Content-Type: multipart/alternative;
	boundary="_000_6616BFC62ABC4DEFA799BC660BBE31BCcitrixcom_"
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e5e4bdc-f206-4a68-71c8-08de73887919
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2026 09:38:31.7334
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 2RROuKdbJCxzfHVI43BD9+qYaBBSGThXccT6Puyuq215691BtmeVd3VIKNltBRfpqpKjW7jxCKf/Uxi4nLo/SQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6586

--_000_6616BFC62ABC4DEFA799BC660BBE31BCcitrixcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQoNCk9uIDIzIEZlYiAyMDI2LCBhdCAxNjozNywgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPiB3cm90ZToNCg0KT24gMjMuMDIuMjAyNiAxMToxNCwgRWR3aW4gVMO2csO2ayB3cm90ZToN
CkludHJvZHVjZSBhIG5ldyB0b29scy90ZXN0cy9SdWxlcy5tayB0aGF0IG11c3QgYmUgaW5jbHVk
ZWQgKmxhc3QqIGluIGENCk1ha2VmaWxlLCBhZnRlciBUQVJHRVRTIGlzIGRlZmluZWQuDQoNClJl
cXVpcmluZyBpbmNsdXNpb24gYWZ0ZXIgVEFSR0VUUyBpcyBkZWZpbmVkIGlzIGNlcnRhaW5seSBv
a2F5LiBSZXF1aXJpbmcgaXQgdG8NCmJlIGluY2x1ZGVkIGFic29sdXRlbHkgbGFzdCBpcyBpbW8g
Z29pbmcgdG9vIGZhci4gVGhlcmUgc3VyZWx5IGFyZSBnb2luZyB0byBiZQ0KY2FzZXMgd2hlcmUg
c29tZXRoaW5nIHdhbnRzIG92ZXJyaWRpbmcgb3IgYWRkaW5nIHRvLg0KDQoNCknigJlsbCBjaGFu
Z2UgdGhpcyBzbyB0aGF0IHRoZSBNYWtlZmlsZSBkZWZpbmVzIFhFTl9ST09ULCBDRkxBR1MsIExE
RkxBR1MsIFRBUkdFVFMsIGFuZCB0aGVuIGluY2x1ZGVzIHRoZSBmaWxlLg0KDQoNCi0tLSAvZGV2
L251bGwNCisrKyBiL3Rvb2xzL3Rlc3RzL1J1bGVzLm1rDQpAQCAtMCwwICsxLDQ4IEBADQorIyBV
c2FnZTogaW5jbHVkZSB0aGlzIGxhc3QgaW4geW91ciBNYWtlZmlsZS4NCisjDQorIyBGb3IgZXhh
bXBsZToNCisjDQorIyBYRU5fUk9PVCA9ICQoQ1VSRElSKS8uLi8uLi8uLg0KKyMgaW5jbHVkZSAk
KFhFTl9ST09UKS90b29scy9SdWxlcy5taw0KKyMNCisjIFRBUkdFVFMgOj0gLi4uDQorIyAuLi4N
CisjIGluY2x1ZGUgJChYRU5fUk9PVCkvdG9vbHMvdGVzdHMvUnVsZXMubWsNCisNCitpZm5kZWYg
WEVOX1JPT1QNCiskKGVycm9yIFhFTl9ST09UIGlzIG5vdCBkZWZpbmVkKQ0KK2VuZGlmDQorDQor
LlBIT05ZOiBhbGwNCithbGw6ICQoVEFSR0VUUykNCisuREVGQVVMVF9HT0FMOiBhbGwNCg0KTWFr
ZSAzLjgwLCB3aGljaCAuL1JFQURNRSBzdGlsbCBzYXlzIHdlIHN1cHBvcnQsIGRvZXNuJ3QgbG9v
ayB0byBrbm93IHRoaXMuDQoNCkRvIHlvdSBrbm93IHdoaWNoIChMaW51eCkgZGlzdHJpYnV0aW9u
IGFuZCB2ZXJzaW9uIHdvdWxkIGhhdmUgTWFrZSAzLjgwIHNvIEkgY2FuIHRlc3QgbXkgY2hhbmdl
cyB0aGVyZT8NCkkgdHJpZWQgbG9va2luZyBhdCBodHRwczovL3JlcG9sb2d5Lm9yZy9wcm9qZWN0
L21ha2UvdmVyc2lvbnMsIGJ1dCB0aGUgb25seSBPUyB0aGF0IGhhcyBtYWtlIDMuODAgaXMgQUlY
LCBhbmQgSSBkb27igJl0IGhhdmUgYWNjZXNzIHRvIHRoYXQuDQoNClRoYW5rcywNCuKAlEVkd2lu
DQo=

--_000_6616BFC62ABC4DEFA799BC660BBE31BCcitrixcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <FEF1C496AC699E4CBFFD87F7601F9864@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWwgYXJpYS1sYWJlbD0ibWVzc2FnZSBib2R5Ij4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPC9o
ZWFkPg0KPGJvZHkgc3R5bGU9Im92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJz
cC1tb2RlOiBzcGFjZTsgbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7Ij4NCjxiciBpZD0i
bGluZUJyZWFrQXRCZWdpbm5pbmdPZk1lc3NhZ2UiPg0KPGRpdj48YnI+DQo8YmxvY2txdW90ZSB0
eXBlPSJjaXRlIj4NCjxkaXY+T24gMjMgRmViIDIwMjYsIGF0IDE2OjM3LCBKYW4gQmV1bGljaCAm
bHQ7amJldWxpY2hAc3VzZS5jb20mZ3Q7IHdyb3RlOjwvZGl2Pg0KPGJyIGNsYXNzPSJBcHBsZS1p
bnRlcmNoYW5nZS1uZXdsaW5lIj4NCjxkaXY+DQo8ZGl2Pk9uIDIzLjAyLjIwMjYgMTE6MTQsIEVk
d2luIFTDtnLDtmsgd3JvdGU6PGJyPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+SW50cm9kdWNl
IGEgbmV3IHRvb2xzL3Rlc3RzL1J1bGVzLm1rIHRoYXQgbXVzdCBiZSBpbmNsdWRlZCAqbGFzdCog
aW4gYTxicj4NCk1ha2VmaWxlLCBhZnRlciBUQVJHRVRTIGlzIGRlZmluZWQuPGJyPg0KPC9ibG9j
a3F1b3RlPg0KPGJyPg0KUmVxdWlyaW5nIGluY2x1c2lvbiBhZnRlciBUQVJHRVRTIGlzIGRlZmlu
ZWQgaXMgY2VydGFpbmx5IG9rYXkuIFJlcXVpcmluZyBpdCB0bzxicj4NCmJlIGluY2x1ZGVkIGFi
c29sdXRlbHkgbGFzdCBpcyBpbW8gZ29pbmcgdG9vIGZhci4gVGhlcmUgc3VyZWx5IGFyZSBnb2lu
ZyB0byBiZTxicj4NCmNhc2VzIHdoZXJlIHNvbWV0aGluZyB3YW50cyBvdmVycmlkaW5nIG9yIGFk
ZGluZyB0by48YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8
L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PknigJlsbCBjaGFuZ2UgdGhpcyBzbyB0aGF0
IHRoZSBNYWtlZmlsZSBkZWZpbmVzIFhFTl9ST09ULCBDRkxBR1MsIExERkxBR1MsIFRBUkdFVFMs
IGFuZCB0aGVuIGluY2x1ZGVzIHRoZSBmaWxlLjwvZGl2Pg0KPGJyPg0KPGJsb2NrcXVvdGUgdHlw
ZT0iY2l0ZSI+DQo8ZGl2Pg0KPGRpdj48YnI+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIj4tLS0g
L2Rldi9udWxsPGJyPg0KKysrIGIvdG9vbHMvdGVzdHMvUnVsZXMubWs8YnI+DQpAQCAtMCwwICsx
LDQ4IEBAPGJyPg0KKyMgVXNhZ2U6IGluY2x1ZGUgdGhpcyBsYXN0IGluIHlvdXIgTWFrZWZpbGUu
PGJyPg0KKyM8YnI+DQorIyBGb3IgZXhhbXBsZTo8YnI+DQorIzxicj4NCisjIFhFTl9ST09UID0g
JChDVVJESVIpLy4uLy4uLy4uPGJyPg0KKyMgaW5jbHVkZSAkKFhFTl9ST09UKS90b29scy9SdWxl
cy5tazxicj4NCisjPGJyPg0KKyMgVEFSR0VUUyA6PSAuLi48YnI+DQorIyAuLi48YnI+DQorIyBp
bmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL3Rlc3RzL1J1bGVzLm1rPGJyPg0KKzxicj4NCitpZm5k
ZWYgWEVOX1JPT1Q8YnI+DQorJChlcnJvciBYRU5fUk9PVCBpcyBub3QgZGVmaW5lZCk8YnI+DQor
ZW5kaWY8YnI+DQorPGJyPg0KKy5QSE9OWTogYWxsPGJyPg0KK2FsbDogJChUQVJHRVRTKTxicj4N
CisuREVGQVVMVF9HT0FMOiBhbGw8YnI+DQo8L2Jsb2NrcXVvdGU+DQo8YnI+DQpNYWtlIDMuODAs
IHdoaWNoIC4vUkVBRE1FIHN0aWxsIHNheXMgd2Ugc3VwcG9ydCwgZG9lc24ndCBsb29rIHRvIGtu
b3cgdGhpcy48YnI+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdj48YnI+DQo8
L2Rpdj4NCjxkaXY+RG8geW91IGtub3cgd2hpY2ggKExpbnV4KSBkaXN0cmlidXRpb24gYW5kIHZl
cnNpb24gd291bGQgaGF2ZSBNYWtlIDMuODAgc28gSSBjYW4gdGVzdCBteSBjaGFuZ2VzIHRoZXJl
PzwvZGl2Pg0KPGRpdj5JIHRyaWVkIGxvb2tpbmcgYXQmbmJzcDs8YSBocmVmPSJodHRwczovL3Jl
cG9sb2d5Lm9yZy9wcm9qZWN0L21ha2UvdmVyc2lvbnMiPmh0dHBzOi8vcmVwb2xvZ3kub3JnL3By
b2plY3QvbWFrZS92ZXJzaW9uczwvYT4sIGJ1dCB0aGUgb25seSBPUyB0aGF0IGhhcyBtYWtlIDMu
ODAgaXMgQUlYLCBhbmQgSSBkb27igJl0IGhhdmUgYWNjZXNzIHRvIHRoYXQuPC9kaXY+DQo8ZGl2
Pjxicj4NCjwvZGl2Pg0KVGhhbmtzLDwvZGl2Pg0KPGRpdj7igJRFZHdpbjwvZGl2Pg0KPC9ib2R5
Pg0KPC9odG1sPg0K

--_000_6616BFC62ABC4DEFA799BC660BBE31BCcitrixcom_--


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:39:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:39:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239654.1541054 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuosk-0004T2-Mh; Tue, 24 Feb 2026 09:39:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239654.1541054; Tue, 24 Feb 2026 09: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 1vuosk-0004Sv-K8; Tue, 24 Feb 2026 09:39:06 +0000
Received: by outflank-mailman (input) for mailman id 1239654;
 Tue, 24 Feb 2026 09:39: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuosj-0004JR-Ld
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:39:05 +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 a87ae506-1164-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 10:39:04 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-48378136adcso31786145e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 01:39:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c09897sm25926203f8f.17.2026.02.24.01.39.03
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 01:39:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a87ae506-1164-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771925944; x=1772530744; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=oPdr4BEdKwpgwMsKfhbkN2p3SMdJv/s6l0UrV3280b0=;
        b=aaCJ4uVBKRv55oYcn2Kwqe4gC+pNp34Ci8/eGLmM2nrC54AmXtduPQDVZ8HCnN1mrn
         Yt3fP5+furvtRF5WEvkUM7dXgqpOx7aZyTicwioTrsmln7+v4brNEuSCjoKiZWALwDpj
         Nc6RaeMi7d3GMW6Jua7wa3UAswbfYO69LW8jgtCVygED+psSQMHWBDEWberocojz6DPx
         SYI+xS/gq7uglkAqfMibdc3ILc5uQDafFEa+Z7Yi1GsN0UhgZJL9RWDrTlRtTAbU40AM
         nTEuQFBgnJm2S1o+rMmjNpi6NMTqZK/KBwVn4y8ppbQbUY9lt9TgEox9RyKg1VQ8p0wQ
         r2VA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771925944; x=1772530744;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=oPdr4BEdKwpgwMsKfhbkN2p3SMdJv/s6l0UrV3280b0=;
        b=v8bFTUDo/TPfqm9etErB3R+t6oS2AOeFuWh5x2m89EBNRPBZahAlcZrmkswcpIoQM1
         LBz84A+f32Xlg19v99dXHT/yGO2eXQ2kczo+R7Finw+FmuCYx/uDlX3p4yOX21BeRA52
         66NTrj3VJXPWqPlINQckxSl5WU/urD1O585iBIMNghrVzZ7yyhlZA6/EqVlMub0Z6J+u
         +L8UArD+G1WQwIEgp+oNswR0bI0yMd2INT5y6dhGIcKqNziqvrR9D/PIUZ6SupW3l63F
         K3SFEK8UIe4KBTKoHXCuxgonBsWs2Rcj9DVIykT/00fbkVu0kxwIaHfNH8w8oatFz1vH
         PsBA==
X-Forwarded-Encrypted: i=1; AJvYcCWrCvNS1QZPnGa/Po4xnUJmPxs4IPsm7De9ib4ZqtrrPnGGQccwG3Wz5IUsWfQ+3GtHjodFP8Z4YS8=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxkX91wAvNARntvY6hRuQkKO8crxWCm/jRCH+RVPlmp7KvvSGiA
	D0pZmKqmAIryVdOByyvwosuwBUvStxdOKhp7XgRHbkmxvF6pLX0s+hMlhyavJ57TLWZHWrRZS62
	MmYA=
X-Gm-Gg: AZuq6aJo7p2QBqWEA6YJhjiNSCmX63lQJ55tPJowypcLMfP5XJxfpxDGtpQAlp0PWhS
	5aE+5eJF6QRIv7aNS8ArlvItHkYjW5jCkiprfT4n+QUnnojFkYS+bj+RkCJZ5tfIB3NliO8lX5n
	R9IuoGGgSGfx/pDdylQ3TvAd79bPiE4vJFyVk5nMg8pUjPW3xBSfb60j353kAUAb1pKj2amH5cy
	5GY8jSIBKd2MJgqSV8Ym7InqlqXqjr/sYORmggRt/OqTZAHHZrBQ+zn56yr1EnyZfz2XzCiV2Q0
	Y6IrQlR8wE4S+EyMG6JrMdSso2dyWrFpCS3oRDAWwrsm1me6+S2NdVW2o7YZ76HPs2uuT5n/mSU
	5l4U9BHGkTnriFMn6EGLdPm3oEeg3NM/akeaKCjIb/+kzHGiv1jkMbJKwdW4tjyveYCkOUJssQ7
	NhmgU5Z7fo/sSgb3LvAQW3p6h+apUZk9sG4jHZp95VbHKQmt0mDqNucL9CnCRjvhA5GiotJqbfI
	uN2xbHuVcCsa0Q=
X-Received: by 2002:a05:600c:3484:b0:459:db7b:988e with SMTP id 5b1f17b1804b1-483a9603734mr192449605e9.13.1771925944253;
        Tue, 24 Feb 2026 01:39:04 -0800 (PST)
Message-ID: <dd450c3c-754f-4b85-94e7-16bc88afc56c@suse.com>
Date: Tue, 24 Feb 2026 10:39:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] xen/acpi-processor: fix _CST detection using
 undersized evaluation buffer
To: David Thomson <dt@linux-mail.net>, jgross@suse.com
Cc: boris.ostrovsky@oracle.com, olekstysh@gmail.com, tglx@linutronix.de,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <20260224093707.19679-1-dt@linux-mail.net>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260224093707.19679-1-dt@linux-mail.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.02.2026 10:37, David Thomson wrote:
> read_acpi_id() attempts to evaluate _CST using a stack buffer of
> sizeof(union acpi_object) (48 bytes), but _CST returns a nested Package
> of sub-Packages (one per C-state, each containing a register descriptor,
> type, latency, and power) requiring hundreds of bytes. The evaluation
> always fails with AE_BUFFER_OVERFLOW.
> 
> On modern systems using FFH/MWAIT entry (where pblk is zero), this
> causes the function to return before setting the acpi_id_cst_present
> bit. In check_acpi_ids(), flags.power is then zero for all Phase 2 CPUs
> (physical CPUs beyond dom0's vCPU count), so push_cxx_to_hypervisor() is
> never called for them.
> 
> On a system with dom0_max_vcpus=2 and 8 physical CPUs, only PCPUs 0-1
> receive C-state data. PCPUs 2-7 are stuck in C0/C1 idle, unable to
> enter C2/C3. This costs measurable wall power (4W observed on an Intel
> Core Ultra 7 265K with Xen 4.20).
> 
> The function never uses the _CST return value -- it only needs to know
> whether _CST exists. Replace the broken acpi_evaluate_object() call with
> acpi_has_method(), which correctly detects _CST presence using
> acpi_get_handle() without any buffer allocation. This brings C-state
> detection to parity with the P-state path, which already works correctly
> for Phase 2 CPUs.
> 
> Fixes: 59a568029181 ("xen/acpi-processor: C and P-state driver that uploads said data to hypervisor.")
> Signed-off-by: David Thomson <dt@linux-mail.net>

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



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:42:09 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:42:09 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239670.1541063 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuovd-00065f-4Z; Tue, 24 Feb 2026 09:42:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239670.1541063; Tue, 24 Feb 2026 09:42:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuovd-00065Y-1d; Tue, 24 Feb 2026 09:42:05 +0000
Received: by outflank-mailman (input) for mailman id 1239670;
 Tue, 24 Feb 2026 09: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuovb-00065S-Qj
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:42:03 +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 1251a5e0-1165-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 10:42:02 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4833115090dso50787215e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 01:42:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c00d0csm25972722f8f.11.2026.02.24.01.42.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 01:42:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1251a5e0-1165-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771926122; x=1772530922; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=vCOEH8lcjCMrOa//j8Zc+oiLeMRNj6DC0apFoxLbGcU=;
        b=NJ41gGg1KxuKK8LKeGAHQw57uOnDBdgDrzxO42TUrR56qXGGxzjIkvJpOQgQ9ruR/m
         iJ4mWNnCFp6CQICw/OvisveTrKIPlDUdkaRbLpd08E5CYTZFvJdbcm9IrWVbhP30fr+C
         NqacIBob+IuYaIw2OxUVSlwu/jjrG/GJVxYEVX9/WDfQW+VdSpd+7HR8esymb5MJXpq2
         HUrl6tlcTXX1WTfOEg4cLaBAacts3U8R+8pMU7I0TQ1SkW2gnuZV5gfCPQSQM5QYQpKe
         r41crPSZUg2eQKQKyz49c5/+C8B0L7zUykSPF4vFVw3tzoxiCokukDKuZy52EXQXm+bX
         PsuQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771926122; x=1772530922;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vCOEH8lcjCMrOa//j8Zc+oiLeMRNj6DC0apFoxLbGcU=;
        b=mEc8by8idTNE+R34ZsFToCEbubb9FPfBKCDngwBvAixXkdNKnj/kgja49HiyiSc/O0
         7mlNRF524mBlzixaGRf83rYY/G6DOglvmXetjtxMIIY+2zDJHFwfHKrVlaXK9HZ4eVfd
         jajL2gGj6I0x2XH5M+fbIE6RflfcZ9ULnE8crwpJAZq9sJ9TyozUlojFU8WshcL00anu
         MydBIlUys7xppA5i1fQ8d71noy9gb1sszAaBsD29XDsfi18YTbNsCHzXBF3qPamVdQwG
         55WHp/pfr0jhU4/r8GnRc9JoTHC2uPx+2kPsOcgUJYdhPKv0psaGS7tD0sOPIwUKVNko
         ZcJw==
X-Forwarded-Encrypted: i=1; AJvYcCWO2bPpxTFaLMyCK2cCR1vpF20zbkF5q766FpVGPNgrX9JvD2wWrUp5zi2zz96WhXLwFb2SNVMo/Wo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxCMwYKgyi4irA7EyeqL2Ii+5O2/GP7iLVTohhHZkEXXPSeaKts
	cvUFyyOXUpCUUnBLc7FaQRoMjxhIFcSW4kxJhk3qApm0wxDPXcrz7DLCZeHzxI6JIQ==
X-Gm-Gg: AZuq6aKFQMmxCMORvDedVFWNy3DCPoN77w56XRewR+YB7y/bA1trz2kadKuwpyu0zme
	oItdMPEP4eYdRA2P+IXEHm/S6Fh1f6tjE8kjHVza1bUWN3MVrDz3bM6WteSs5Gf61fhTOPpk+FN
	zGTdQWm8wBTA+4KsvytK/p5fXslgP64ybQ9sA860swIkZe47OmCdl01xhVWnu7c8FgWtwxLncp/
	I66OoLIoCaRAMYx+/2t9YtCwERS0dR905OPZqfGx3OgK8pP02IIfFnplA1KQm6tPy7kxLzI761F
	tQ5Z59KAkm1QFeeRcLKx9zYlRL61MFLFYJREGTKGYW/iNl8LvgxRWW4eIJ5vba29qeFqyJcmSJX
	JxZqX3Q+Q8BEvEMqMaUOojs4+wNHaNRAhrEmPNp34kCdOe4fimo/BkR8NxfbA3NSgQfV9Ksm0Vy
	ahcoBDEd2zdKrtdn1/n1pLOlW+yRJ3qPFo8b9qhXM+zo/cYMMLzuJBQYprETfZfGjxairraoAmC
	yI/7/5C7M0f/ps=
X-Received: by 2002:a05:600c:37cc:b0:483:54cc:cd89 with SMTP id 5b1f17b1804b1-483a95bec82mr213481495e9.9.1771926121713;
        Tue, 24 Feb 2026 01:42:01 -0800 (PST)
Message-ID: <e866d080-2c6f-412f-8ac4-f97eb7e874c5@suse.com>
Date: Tue, 24 Feb 2026 10:42:00 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/7] tools/tests/*/Makefile: factor out common PHONY rules
 into Rules.mk
To: Edwin Torok <edwin.torok@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <6fa0d95dad3d223cf8aaa923ae59fd0b3a97d4a0.1771840831.git.edwin.torok@citrix.com>
 <20e3edf8-9aba-40e9-af57-e5eddf001a7b@suse.com>
 <6616BFC6-2ABC-4DEF-A799-BC660BBE31BC@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: <6616BFC6-2ABC-4DEF-A799-BC660BBE31BC@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

First, since this looks to be recurring: Please don't send HTML mails.

On 24.02.2026 10:38, Edwin Torok wrote:
> On 23 Feb 2026, at 16:37, Jan Beulich <jbeulich@suse.com> wrote:
> On 23.02.2026 11:14, Edwin Török wrote:
> Introduce a new tools/tests/Rules.mk that must be included *last* in a
> Makefile, after TARGETS is defined.
> 
> Requiring inclusion after TARGETS is defined is certainly okay. Requiring it to
> be included absolutely last is imo going too far. There surely are going to be
> cases where something wants overriding or adding to.
> 
> 
> I’ll change this so that the Makefile defines XEN_ROOT, CFLAGS, LDFLAGS, TARGETS, and then includes the file.
> 
> 
> --- /dev/null
> +++ b/tools/tests/Rules.mk
> @@ -0,0 +1,48 @@
> +# Usage: include this last in your Makefile.
> +#
> +# For example:
> +#
> +# XEN_ROOT = $(CURDIR)/../../..
> +# include $(XEN_ROOT)/tools/Rules.mk
> +#
> +# TARGETS := ...
> +# ...
> +# include $(XEN_ROOT)/tools/tests/Rules.mk
> +
> +ifndef XEN_ROOT
> +$(error XEN_ROOT is not defined)
> +endif
> +
> +.PHONY: all
> +all: $(TARGETS)
> +.DEFAULT_GOAL: all
> 
> Make 3.80, which ./README still says we support, doesn't look to know this.
> 
> Do you know which (Linux) distribution and version would have Make 3.80 so I can test my changes there?

Not without a lot of digging. Perhaps we simply want to bump the minimum version,
to "sync up" with what we did for binutils, gcc, and clang?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:44:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:44:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239682.1541074 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuoy6-0006i5-JI; Tue, 24 Feb 2026 09:44:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239682.1541074; Tue, 24 Feb 2026 09:44: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 1vuoy6-0006hy-GJ; Tue, 24 Feb 2026 09:44:38 +0000
Received: by outflank-mailman (input) for mailman id 1239682;
 Tue, 24 Feb 2026 09:44: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=1YgY=A4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vuoy4-0006hc-So
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:44:36 +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 6ac1027b-1165-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 10:44:30 +0100 (CET)
Received: by mail-ej1-x62a.google.com with SMTP id
 a640c23a62f3a-b8f8f2106f1so714667066b.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 01:44:30 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b90bfd4e95csm71038466b.41.2026.02.24.01.44.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 01:44:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6ac1027b-1165-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771926270; x=1772531070; 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=WqmQ6jFGZrNR2V9YqQrVtdEdL9fl9OpH9HzHzlzwtLw=;
        b=h51LN5bzh9k1AccETb8kr8NDjW8T8jpg4c8nvlIwjS1rcnSe3YysYQdz4fAqRleRv0
         io7HqedipUsSliKLOFVabinuGJWY3igyofnGj5GvIEv0MkqvNnBVNIQc6rYgmu1GVgMb
         yvnmE1z85tmTHZ8TOX1gXzOLgaC53DdXhDLZOrLGUy+WgkSwGq8Ppts5UICAzjUxWah6
         R3NkEfM/Pj8BaYQwaqEhIzo5nHxtHvuWiIqs7YqKRuH6O8BSZJsAPCZS85tTh3qZavbT
         yFtyx5EQEQGxxGBah3k6b28YCeBx7kHgyWdmkc9T2/vQp18904m2jm/+Pjq3dDSS+smd
         GjMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771926270; x=1772531070;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=WqmQ6jFGZrNR2V9YqQrVtdEdL9fl9OpH9HzHzlzwtLw=;
        b=cVXhr5kTR14Q+SXZNk8hOXkQuDu5xbhGyR+BW3yNv7kao4gBGeqgnFtmHf3ki12Jyn
         ozHg/ee06uIMwJGrfr+RZwwgs+TnKk0GbWlikXOMY5N9cxfYRhlqV8Ol7F9WHRJLSmKC
         EOI1NMJb0bGnqX4sdiHBAvmq5pgkOtttpmZym1zgisLell3Lfwi35IxJvpDpH5KZcOhK
         W6/FwUMcMfuFalXLSAfVUvQOluKslmijLjzvWUPYBjtRssZxtR5xzAjZaAyruB+Uxyyi
         FgOO/RrX4AF9Alq8NZX1+EDxuxwOVtR0OuEh+ZKpwV/lCUq4W/cZtF3sKIcvGX1XcoHd
         aiLA==
X-Forwarded-Encrypted: i=1; AJvYcCUALZS5cguEXovvRB1odxlc0ybnb2TAfYLEulu/U4xMFEjA1lCKtVT7AQPQcV/wH0XFbFvUpVmlrEk=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx5spQWImULjxvtUrzAfh9I/ZRVMtB/LF/Z1Y3P1tSdgprkTdNd
	kX+IuXLGllg/viH3OZJqZZjMj4Zv46yVy/eUZvRbxbEValFUicbkBPis
X-Gm-Gg: AZuq6aLD0GqMG9j4z/Pi+yrCrtNPl+P9QgIECKY532pR02CoY8RkfE/1RFin/up6wL1
	hROxb9wpY6I7ebTiKRMgJLTl+qWPF/o1xI92vpfztUyR90okSdEuspvE1NHO+za814rk98HRId9
	UGS4ySPjEqpMOZVohc6R4VRtzqUEuWW5ucpvi/x3uJhXyfKIm9vYaxNuh2fgSKY9fcVln3uQ4U0
	wiXuB9/cITxBRXR74ZdYqe1rQK/4YdXTDaVnY4dmJdu5f3FSDL4o8+xK8oGncE1aTFjmKjAuWPh
	PL5FkMTZWDBbjdMhQyNMe/rrmdb3s3Hr4bopED1MuTdsyyN/zdFg//tq25wOEEzVtlv8JJUk1nV
	ixO2Y5EAATO0DFr7fPNSryIgoudosEm4BJaoABer7PL7LSnfCSRqHe6ypPsdvxNwtSWygsn6QRp
	4xQ1qO/9fU2V0BuCgFKuVrQkNycRV8PqFB0JWEIuRkQXr89TpTw/vULtsbWjiuu5YkdC5Lj7RTp
	X4ZppXmTtmLNw==
X-Received: by 2002:a17:906:2092:b0:b88:dc6:395d with SMTP id a640c23a62f3a-b9081b9f204mr513986466b.48.1771926269985;
        Tue, 24 Feb 2026 01:44:29 -0800 (PST)
Message-ID: <e084cd6f-e76d-40c1-9e30-97e10acae012@gmail.com>
Date: Tue, 24 Feb 2026 10:44:28 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
 <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/24/26 9:07 AM, Jan Beulich wrote:
> On 20.02.2026 17:18, Oleksii Kurochko wrote:
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -2,9 +2,39 @@
>>   
>>   #include <xen/init.h>
>>   #include <xen/mm.h>
>> +#include <xen/sections.h>
>>   #include <xen/sched.h>
>>   #include <xen/vmap.h>
>>   
>> +#include <asm/cpufeature.h>
>> +#include <asm/csr.h>
>> +
>> +struct csr_masks {
>> +    register_t hedeleg;
>> +    register_t henvcfg;
>> +    register_t hideleg;
>> +    register_t hstateen0;
>> +};
>> +
>> +static struct csr_masks __ro_after_init csr_masks;
>> +
>> +void __init init_csr_masks(void)
>> +{
>> +#define INIT_CSR_MASK(csr, field) do { \
>> +    register_t old; \
>> +    old = csr_read(CSR_##csr); \
> Can't this be the initializer of the variable? Can't ...

I agree that this is change is okay to be done but I am not sure about ...

>
>> +    csr_set(CSR_##csr, ULONG_MAX); \
> ... csr_swap() be used here, too?

... as after re-reading spec again I am not sure that we can do in this way
at all.

Initially I used csr_set() instead of csr_swap() or csr_write() as csr_set() to
take into account a writability of the bit, so it won't touch a bit if it
is r/o.
But it seems like this approach won't work with**WLRL or WPRI fields as these
fields aren't r/o, but they only support specific value and for example:

- Implementations are permitted but not required to raise an
   illegal-instruction exception if an instruction attempts to write a
   non-supported value to a WLRL field.
- For these reserved fields, software is required to preserve the existing
   values when writing to other fields in the same register. Overwriting them
   with 1s could be considered non-compliant behavior.

So it seems like we can't just do csr_swap() with all 1s and it is needed
to pass a mask to INIT_CSR_MASK() which will tell which bits should be
ignored and don't touched.
For example, HENVCFG and HSTATEEN0 has WPRI fields.

reserved_bits_mask = 0x1FFFFFFCFFFFFF00;
tmp = csr_read(HENVCFG);
tmp=(~reserved_bits_mask) |(tmp&reserved_bits_mask); csr_set(HENVCFG, tmp);


>> +    csr_masks.field = csr_swap(CSR_##csr, old); \
>> +} while (0)
> This whole macro body would also better be indented by one level, to not leave
> in particular this closing brace as a misleading one.

Do you mean that it should be:

+void __init init_csr_masks(void)
+{
+#define INIT_CSR_MASK(csr, field) \
     do {
          ....
     } while (0)
#endif

I will update it.

>
> Happy to make adjustments while committing, provided you agree. With the
> adjustments (or clarification why any of them shouldn't be done):
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

If what I wrote above make sense then it seems that I have to send a new
version of this patch.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 09:48:44 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 09:48:44 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239691.1541083 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vup1y-0007eM-3A; Tue, 24 Feb 2026 09:48:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239691.1541083; Tue, 24 Feb 2026 09: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 1vup1x-0007eF-Vz; Tue, 24 Feb 2026 09:48:37 +0000
Received: by outflank-mailman (input) for mailman id 1239691;
 Tue, 24 Feb 2026 09:48: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vup1x-0007e9-2f
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 09:48:37 +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 fcb3dd70-1165-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 10:48:35 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4834826e555so50822615e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 01:48:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a9b7fddbsm253339335e9.8.2026.02.24.01.48.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 01:48:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: fcb3dd70-1165-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771926515; x=1772531315; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=BifFEShi07zxgyb7JIpguvavMHUAAKxzlf3K35ygMkk=;
        b=afEMvfl8lr43MPo8SeN7w+5TnUwqPh+uan3ax3kAsWJ7eS80iqRl+K+sVBDTDEkT4l
         VnrOFBuHQ06ypoL5BZnCEJbe7YWLy4CcY/MQKnp9IACn79EpFyKH9dcAlux5Z3HqQBV6
         PDh9zVUWxDtaMfnh+f7mBG1xvYkDVeoMw2eoAfj95ydX3knYZCMQylQSq8/doEhQrPqo
         5lyuKJByxPcFRLRO5/JEQhKRy0l55jHzS/Cd4rmBg2u/D6LeW45OTxLM93eTq+sqN4Bw
         o1dzyqsTfBEMcAFiTUZz9IdJphVGCOEuQdPTUyB5EhWrXMKnG3ik0eJL/BuZzIbLi96o
         MovA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771926515; x=1772531315;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=BifFEShi07zxgyb7JIpguvavMHUAAKxzlf3K35ygMkk=;
        b=jXPPmhi8kJtRulaJCV5autdicmH0Wzz5TNm0pdEsHICIJUeQ6pSQkDHwUpQ/tVf+kp
         4/D7mrTvTZxNPzWg7t3TXLX1RXnLjkeLx2CNzixoLcqusdgbepsl+FOx1beroJ4loISU
         9R/LAPZeqLWnyrjY6y/uundSp+C/FgIAsNeCU3zur1Ae7zclq1BjOheaIdN7z9HJEfDu
         4xitFoSfuMAc/050rJG6cEBBOK8xP9vK4BkM4YY/K+mqlF9hymmMpY4Hs/NJ/daqI2Df
         x4LvsBTdZGQA/WHGhDl/Nbd+N9hkQx1VDlWnwGigqQ8lU2N+4Bi5m2QljQo8PiW8bkTs
         0Yzw==
X-Forwarded-Encrypted: i=1; AJvYcCXaBYN+JRZR8fS7yFmX5BHvuVEHwoPIZXdgepH4IOFUYQKvV3lBY5fbTF1yuv4zSAtDu+xliiktFqk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyGAkP7np4P7n9oxA7d5oPHqsgRneVDQJFVTYdMvCAh6oEKJSDv
	gAZ7OEiYveaRC/OIxARCN2fdx1Pocoxuk+LHy+YQoRxpRGNTrKpzxF3fMR8egsbeUA==
X-Gm-Gg: AZuq6aJ9E4Niqo/zB1l/2q5wxfncLsxZVru9y8dwPMVnFEMBukRFUxvFzRKuwrq+P0X
	nc4FRfL44Mhho95M7LKJ89egFZIUlWBa7OdnsCOxCp7an+PZqJTeC5wPoT8Z+eLWN2o6aXjUqMP
	vK67DftQk+b5XMURcGGMmhv4tgxxrdKmopjtCUaIxM/Je1ThdfuAflFZD2nya498S4IXKquWdz+
	59Foraq5nAsBF10N4ei+OQx5EgY5bTOkGPZ7xLETc+6rfxxIKUhWyR7GMLOGlMA5cIWGr5WKoqB
	uwzXLT7atpK3QatyC1mwZuyELRc8rdZHIpa15q/y5F9c+WEVolvOrC/Sp/sRYeWr7ktYYD9IRjf
	OxRPHiQPvuQQm/d548FgpTJZHOHl/oQuamBSgLxOljqBvRmRO2SUXoj0Nz6UPnHL4EeBytQ5uBH
	vWsBb3NtxQk/MMa6n6M+r4RhuC5i0zvj0lhtZRLuRbIXJyvsiAVDLl4eRHSZ/llek1GVP0z9XLj
	ZFlXbtqk3UNiGI=
X-Received: by 2002:a05:600c:3516:b0:483:a21:7744 with SMTP id 5b1f17b1804b1-483a9637590mr165145385e9.26.1771926515200;
        Tue, 24 Feb 2026 01:48:35 -0800 (PST)
Message-ID: <72f6e508-c75a-4aaa-a727-8cfeaa204d8e@suse.com>
Date: Tue, 24 Feb 2026 10:48:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/4] tools/tests/x86_emulator: disable xmm* tests on clang
To: Edwin Torok <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <9e380de50b64e45e9044a2f4bcf1a5bdb7e74a29.1771840208.git.edwin.torok@citrix.com>
 <7f6cca68-f681-41ce-8d2c-2f4854510759@suse.com>
 <E1E1F4B3-C0FE-4077-A6E1-738056D5B370@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: <E1E1F4B3-C0FE-4077-A6E1-738056D5B370@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.02.2026 10:34, Edwin Torok wrote:
>> On 23 Feb 2026, at 16:10, Jan Beulich <jbeulich@suse.com> wrote:
>> On 23.02.2026 11:04, Edwin Török wrote:
>>> clang-21 doesn't support `-ffixed-xmm0`, so `%xmm0` won't have the
>>> expected value.
>>> Disable these tests on clang.
>>
>> I don't think that's what we want, and not only because of the clutter the
>> various #ifdef cause. We want to be able to run as many of the tests as
>> possible, so the first goal should be to find some alternative mechanism to
>> achieve the same effect. A global register variable comes to mind as a
>> possible option.
>>
>> Further, how did you arrive at which tests need suppressing?
> 
> I used gdb to look at the 2 memory areas, and noticed that the XMM region was different between emulated and actual when built with clang.
> Then I noticed the build failures due to the lack of fixed-xmm0.
> Then I added the ifdefs one by one as I ran the test until the whole test program passed without failure.
> I tried adding some ‘pxor xmm0, xmm0’ into the cpu_has_sse2 sections, but that didn’t really work either.
> 
> Although I may have been misled by the overlapping region, see below.
> 
>> I don't think
>> we rely on an "expected value" anywhere. I don't even recall us passing
>> -ffixed-xmm0 when compiling test_x86_emulate.c.
> 
> Yes, I’m surprised it works with GCC. But maybe only because the emulator overwrites the actual FXSAVE area corresponding to XMM.
> XMM0 begins at offset 160, and 0x100 - 0x80 = 128.
> AFAICT the actual execution stores its result at [0x80, 0x80+0x200), and the emulator stores its result into [0x100, 0x100+0x200).
> So the emulator will overwrite some of the values from the actual run. 
> 
> This only works if the end of the FXSAVE area looks like its beginning (i.e. if FCW/FSW/etc. happens to match MM6/etc.)

Are you possibly overlooking the fact that res[] is an array of unsigned int elements,
i.e. the offsets used in source code all need to be multiplied by 4 to give offsets in
memory?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:01:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:01:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239702.1541094 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vupEb-0002Ur-4w; Tue, 24 Feb 2026 10:01:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239702.1541094; Tue, 24 Feb 2026 10:01: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 1vupEb-0002Uk-27; Tue, 24 Feb 2026 10:01:41 +0000
Received: by outflank-mailman (input) for mailman id 1239702;
 Tue, 24 Feb 2026 10:01: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=7lmg=A4=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vupEZ-0002Ue-49
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:01:39 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cdcf50f5-1167-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 11:01:37 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by SA0PR03MB5595.namprd03.prod.outlook.com (2603:10b6:806:c0::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.19; Tue, 24 Feb
 2026 10:01:32 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 10:01: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: cdcf50f5-1167-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=w6cKU6xMOJDGy8HrwbrXI66ye0VfygXDh+yXh0BF5w+tFnKQNOYZmpCqoTTeWVMlnGTTjVNYli3Kh3xyE5NuxcQiQca3ZYAIkWL0el7ogAgF+ZGlMqt+l5/WakuLgnK3shuY1wdhS4dR9c1J143JSHHUHjvMEcfcWl8CV3AeGzsDvrHbcK5wE+5qAV4KslZy2HRcBXYlizBkZEMMqnktf1Zb3clEr6H17WmGMfIi3V3/et3y9dgbmjYIvqsM5RmtqNTGN5giugD4VMon1K8cLHjMq4qDi5OUoy94d9dVru5jkeumCM7Ni8pjCXaTAlt+rgGVwFDFTais5mACdNH0qA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=FTZSMhYAEI4D/jxIuJtRqH/FYjp8i3bl1huQ38JFh/4=;
 b=zNbEHrWw01H44STp8brAkydENul2qXYhEDh7TNNwdTXoz7JFZmzovYkskJ1lGWd/KeG5R4AIGfNKmTo7+OCCohHfN+WQyn3h7RaHMfGRVlbYrhw8YfUNaA4tgofPEPdu0vgisfxMC1ZsRIPrbdfr/GEcukTavN3wYY+l/2sX2tU20f+9MoCCOTMX06/C1ZRDWn5Em5LoyRualSZ8Smf9/duABcUMZXeQoGNyA8pappjyXJhIB+2XBg3Fqb8HRKJOTSc7apYdbuP5kx8z5kQ5Vcr6c5dl5lB4rYoEhKqAKlCdvzqhQzrWGZMzkLDOEdMXiG1wWgA6EkPJeaQf6T8IGg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=FTZSMhYAEI4D/jxIuJtRqH/FYjp8i3bl1huQ38JFh/4=;
 b=sr3Q73dHsjnTfYwDIOCVeGoY2E8a+C8OOAlehJ2pYfGpufxapYZY8DrJbcVxankKDgx+degoO0W+XQgqQbgJfJHW9jk484EqHkNa24yZpVa8IgfUJAiLZhQRcE9vBtXnm/VNQ9kYRJ8xIW0jrw6tre2SJ7PoF9wLG9yEGa1uJz4=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Anthony PERARD <anthony.perard@vates.tech>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Roger Pau Monne <roger.pau@citrix.com>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/7] tools/tests/*/Makefile: factor out common PHONY rules
 into Rules.mk
Thread-Topic: [PATCH 1/7] tools/tests/*/Makefile: factor out common PHONY
 rules into Rules.mk
Thread-Index: AQHcpK0tQx2+yGxKK0yu3GIXOaCAi7WQe++AgAEdWACAAAEEAIAABWkA
Date: Tue, 24 Feb 2026 10:01:32 +0000
Message-ID: <7B23282E-4CA9-4B8D-A521-C8483F7E2541@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <6fa0d95dad3d223cf8aaa923ae59fd0b3a97d4a0.1771840831.git.edwin.torok@citrix.com>
 <20e3edf8-9aba-40e9-af57-e5eddf001a7b@suse.com>
 <6616BFC6-2ABC-4DEF-A799-BC660BBE31BC@citrix.com>
 <e866d080-2c6f-412f-8ac4-f97eb7e874c5@suse.com>
In-Reply-To: <e866d080-2c6f-412f-8ac4-f97eb7e874c5@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|SA0PR03MB5595:EE_
x-ms-office365-filtering-correlation-id: 740bd51d-7204-4cc2-71db-08de738bb012
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|366016|376014|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?ckcyRDRqWHRZS1pteTh3eGM5S3pLbG45SDNpVU50R1ZHRC9uR29KMTU3VDNZ?=
 =?utf-8?B?NUJ6RWtsOHUwRGJRQlF3RU1ta3ZibXU4OHBWbTBrK1ljWU9PWnRET3Vucy9H?=
 =?utf-8?B?S05hSzZTN0dISEJhQmxjbU1JaEZSdGxXdW1pd2M0YVhzVk5QdkxUOFRTeWxp?=
 =?utf-8?B?MFNDdzlIdS95RytQSDNrS3lUT25YQ0QvandmY1JiT1o0dURuUXFnZHVxMnBu?=
 =?utf-8?B?blNGdEgvOXFKTmp6VW40MGdQb1VseFFiQzkveWRwVkpjWXN1VXQ1b0p6RjlG?=
 =?utf-8?B?RjlzeWVpTnRhYkQ2amFWUXZrV1Z3VnJvUEVDNktBTEtHQWIwTlNhNWpkWlBF?=
 =?utf-8?B?M0JMMThiV1lkOEJzeXBKTTVhajRSeGRKZWdOall6cHJjRWNoVTVnMXk3WlV0?=
 =?utf-8?B?NCthbUpKc25EZHU4ZHpRMFcrM3hRb25rT0RYOGFpMGVENlp0ejBJOEVVdlVU?=
 =?utf-8?B?M2IwblArN1JpbUpXNFNVbFM0b2hSaWo5THA3cHUrbGtwVUJNbVJRbG96RFRy?=
 =?utf-8?B?bGpoSUpNeDdUb014RU0vYzhsckNuYVBBUW93bXNueDEycExEZ0Z4bmdZNmtu?=
 =?utf-8?B?Nzk1eHFmeXQxZUdQSVovUENDV2VNNGhYbEZYZ0lZSzVaTFlKdy9qZ2FZV2dC?=
 =?utf-8?B?ZU9oQVNsYjVHZ3lXem9lNW5WTjF6cVlWeFRDT2JyWnVHUUk3QU1OV3k2KzZy?=
 =?utf-8?B?cWVybFo0NjVmVFp0ZVhjYTVvTTR2aG4xdWEwU2xlYTAreUJRaHR3ZHRYb2ww?=
 =?utf-8?B?VVcrVFd6UWoyUjQxU2R1dkptL3dKN3BxeDh1VG9UQ0tKQndMS1NVcEJtSHgr?=
 =?utf-8?B?MXdFaXlRNnhJQjE1MDBiTEJKbmRxMCtobDBFK0JlTWR4UkFrUEo2Y2dWSnVE?=
 =?utf-8?B?K2ZjSkgya0NlSStZTlFkSUpPVkV1SUM4VFlMbllpR0dlLzlUT09xbVNiZ2N4?=
 =?utf-8?B?OEtRam8wemlGa3haMVBJUTJUM0NNK0V2S3EyTUhVaUVISW8zMjluRHI2SXQ2?=
 =?utf-8?B?aVBXWG5kU3RQNnBoTzYxKzJDTzQybXFvOHhYRi9zdzMvbjhkWDBuL1NBRlJn?=
 =?utf-8?B?UXBZYytVQWk2TzJrOHAzWmppTGthSm5LL3dpOUtCSXh3WUcxb0tyWFVkWU5t?=
 =?utf-8?B?S2htUkRQZGljemtIRnBaWGlLcWVQMUFkQlBTdWVLWWlRUGxrM3MwbUJqZktB?=
 =?utf-8?B?c2ljYkIxTHY1ZGk0VE1laWtvRkE4aU8vNmZRNEh1L3BULy9NNDVjalJwNGMz?=
 =?utf-8?B?MUtKaGVNU2Q1VnpOelloaHp2WjBlUTZzajBBWGpES0pmRmFtV2JhbjFoaTFN?=
 =?utf-8?B?UkdUV0IwN2lQZDkreFlZM2pPMzdOTWtVeUh4dERIZkY4UVA2TUU4Wlp1T1BX?=
 =?utf-8?B?TUNjanNNYzlKY3FaWFJkeHR0c01yVmVkbHh0ZmFrMmdhTTU5cjFQejRhMHIw?=
 =?utf-8?B?N3RnTVoza1BtdXdsczhkTG9XT3FKUDNrai9EUzhPaDI4UFhMM2VkSVFrcTN2?=
 =?utf-8?B?bytEMm9oa2pRbEJTVno3WFJxSU9xc3RxZStnTy9ZNXlXNG5FRzM4Zi9yWmkz?=
 =?utf-8?B?TkpFKzIyOXJES29QT1ptMUlZM01nZlV1U1c4V0dCeElqc0VzeWxUanVmc2tV?=
 =?utf-8?B?d2xESHRKOG44NGtvZ1hQUUM3OFdENUZFeTJ2clFoTnF1dXArRW56NVhTamI3?=
 =?utf-8?B?c1B3YWdQL1FsQlJRNHJqRUNBMERTdkZUdmRwU21JVlllVUptRmJYWWVobkFT?=
 =?utf-8?B?VmFkaHd3STlMSnVqV3ZPNnk3RzdlRXZITmN4dEFSUHR0YWFVdnM5NVNkeldh?=
 =?utf-8?B?bGZURE9pRGNmVS9OS3ZWTE92dWJ2aEx4bVpRd2M2WGk5ZXZlZ3JRZC9jaGtH?=
 =?utf-8?B?V3hrYXowWXNpdktHbmpUNHM1UnBST0xBRURCWXRPcFMzR1FaZ01KWEs5ZFNX?=
 =?utf-8?B?YTlYWFZwejVwZ2pRS3ZQa00wcEowd01BZHRNTkkyMGdLSGJuVUlsSDRha2hI?=
 =?utf-8?B?aFlmbG9sOGdTOCs4K0VqL2NkVGlwamFVaXc0bXpwY1Y1M2ZoT2xlTnNFbUZa?=
 =?utf-8?B?cUZtN3BIeTQ2NGdMQU0xcWJrWldmd1RNeEVrU2c2UXcyR08vbFR0aUJOb3ZM?=
 =?utf-8?B?QTV4SlE1S2toQi9IMXlSRVFPamtXQnR4N2FkOHhXWU5HVEtZdURLSTRwSDVa?=
 =?utf-8?Q?J961HcSo9SsquZvSusV5rhk=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?c1NJUWUyRGpSZFMwNWNsQmcxYngwSGZQNksya2tIdEdJY2lYVXNPdVJWKzJ2?=
 =?utf-8?B?bWMvYmdwK2I0eHlENDVDMTAvUkFNN3J0bEZlUkVlQ1M5WitQTGVnTFRDSEhh?=
 =?utf-8?B?bnNYaGx5S3Z2VUszRHBXRXdJK3pjak5qalpHQnRNSFNXOU1KUm1hd3JqVEpk?=
 =?utf-8?B?d1MrNjBpajV1b2FaTHlEcDJxRjI5RURiS0tUYWVUVlpPVG9tQmtVMFRkZlFT?=
 =?utf-8?B?MVc0Q1dTQjBiNHNSNGg4bE5yTFVxc01SZERuOUxCRDRrY2lUcHphcjRYY0Q2?=
 =?utf-8?B?OXpxZndzdmVMa2d0bSs5VjdBRi9sTUhhYkxmeG1pSnl1YnQyUHNKSGhJbWw1?=
 =?utf-8?B?MnFoQ3FURWVIL3FjQUNjdFdZUitnSGhxNXBJMkx6dnQ5T2w3RFVBTExlY3Bv?=
 =?utf-8?B?TXQ4eUdIMVNrSDcxd2NmYnB4T3BFUkJ1a3M4ZitOZXBxcmorbXB1b0xpTEhS?=
 =?utf-8?B?Z0NOTDlnRG50ZTMxT1RSMzRONGZGV3hsV3BEZUkvRll2UjczS1h1OHlXVmpO?=
 =?utf-8?B?dXlCU1RzN01LMm9aWVJndVA3RkdMbmJKM0Qxa0J6bjU0U1RzeFN0Z0ZKYkNI?=
 =?utf-8?B?azg4d21VS3BoRTZVR1FYVU10ZmErRjRLblVucGFQeVFsNmhHcHUwcDYxMmM2?=
 =?utf-8?B?R2dlLzN5cDNzanRvdzV3Q29nbzJCTy8xNCs3UUgrcE1aSEhCYUZGYi83Q0N5?=
 =?utf-8?B?eWxVRlZSRjVYRkUxalRqQzIrOHZGSk1ZRWRabXFVUVhwSkt6SGsrT01JR1Bz?=
 =?utf-8?B?cGRBbUJDbjl5QWtLSVUyNkZCVkFBaDh0eXN1YnZOcGlBeFBlTHNKZ2VvVW9J?=
 =?utf-8?B?ZHJoZDRTbGovYlNVNlhnUHFxVEtic2xiSWV4eFY5a1E1TlZ2aHRqeG9LQzNS?=
 =?utf-8?B?bk54YU9VNjcydzEyeW41dDVGZHV6TkRVUGxubno4amprb0NmQjJ1TTk0bWdK?=
 =?utf-8?B?R2hwSkhIQm9ub05qRkdQWFBaQXpOelpMQ3c4Sm9LejB2QmJvR2NJcGZNUXQr?=
 =?utf-8?B?WFNnYVc4VDNvRVB2cVc0VmhGSUhVY3F6L0FLY3E0ck84VEw5L0pkYWFhQTZo?=
 =?utf-8?B?NFRscjBIb2xiVFNZK0Zya3RTbXFXRU1YY3ZiT2NmRXVxTm5iLzZoUk1zMmpU?=
 =?utf-8?B?bXF2NUo0UGpaT0xhOGc3VFpVeVEzd0dYVjRGWG5yS1YwbHJEMnQ2Z1BvUWlv?=
 =?utf-8?B?U1MzTjljZkVoWVhBTXpNeklTMzluOGtJZWtMY0RINHkzT0hGSTI3K1ZIRm9Q?=
 =?utf-8?B?TWJiQ0E2dHovdXA0b3VIMi91cnZJUExnRDRQdWVQMnNQS3JaU0haQ2c2Nm5X?=
 =?utf-8?B?VnVEQVVvN1hPbXB0WUY4UjBSZXZzOTlGMXZGOGFRWUdEYWhvU1ZaTlVicldD?=
 =?utf-8?B?V0I4Qnh3V2lIeEJzeFlhQUtZOXBOWW9Oa1JvMFcvVWRDanF5TmZYdzZEeG0x?=
 =?utf-8?B?S2kyOFpLeFc4Q3FUc3BoZjU0dUF5RUR5eG53Tm5ZMkdVdXVodjNwYzE3Q0Nv?=
 =?utf-8?B?alRnRk82bkp3RDFHcnQ3K05DL0dQM3V6Ym12R3MzUnpHRFR3ZHZJbktBSEE4?=
 =?utf-8?B?Z1JzM0xsMDc0YW5kdEtmY2NZZlpDcnlCaGFzUEJoQ0c2eXg4bHoxb0pjbDFh?=
 =?utf-8?B?NjQ3d3Z2YXFTSE52eHBNSXduc3V0WTdDL0tWanNPREtFUzhzWThuSDVvbzBh?=
 =?utf-8?B?eFEyTnFFZVhVNGFRZ0RjUGtGZnRsMWhOTUdYbjNlNXVzczdrc2NtdjVlMnlC?=
 =?utf-8?B?bWR6akdiU29hSVNvaERqV09TekVmNW4zKzc0ZWZEZXlnTU9kQ0lhcXphVHdB?=
 =?utf-8?B?U1RTd2d5RFdPK2svK0dNMVhIQ1A1azdGbUxpMXlnOVBLQnBXVE85bnovS2Yw?=
 =?utf-8?B?eXJqa2JEZ0tSMEd2NE82NlU2RjFsNHMvdzdqcHlNNS9ZU2ZnRy91aFBtNmJ4?=
 =?utf-8?B?R3JUTmFoQkxDQzc1cE8reWtzT3haT2hWekhySUN6VWtJeTZyMmxkWG9HSFJJ?=
 =?utf-8?B?dHdMYmNWWkxRS0NoN0xnS285bEFuZTFBemZjaHVCaEgxM0swS2syaVNkOUNJ?=
 =?utf-8?B?aEJzT0ZSUVRBTU5BMHRqSDlYbWI0MDJOM1VhVlpoZ3pmblVNWm52Zit4TFBx?=
 =?utf-8?B?K0V5SjUwODF2dEh0SmxhUHY0WFNjMWRrYUxKcHd6eWl6eTZ3Z0l1cnRjWTRB?=
 =?utf-8?B?UDYyQ2RRNHJwSlNGVktCb01hTk9HZzZieGZXejd1ek96ZHN3TmtuVFFIcHRl?=
 =?utf-8?B?SXhHMjdHdmd3Z0tROFBmM1J3YTl6RThNTjZ5aXhuOC9wNTVsQkttcDZhNGk5?=
 =?utf-8?B?NUl6VDg0NEYxYUZCYk5TZEZtZjlFTGNoai9tS2xFMzVnczAwZHNGSUVQNTdS?=
 =?utf-8?Q?h6Nu0HLyAWpuHw8I=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <3DE3BE99DE3EFD43871924B9D0D29301@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 740bd51d-7204-4cc2-71db-08de738bb012
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2026 10:01:32.4641
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0TjhTchUuqbTXAkFBCkHf85QzGScRDW6GgObQ0F3BIjI/XdBFnkkIPCZlq9tPt6F6cgfYOf0UUjybQA3D9AXdw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR03MB5595

DQoNCj4gT24gMjQgRmViIDIwMjYsIGF0IDA5OjQyLCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gRmlyc3QsIHNpbmNlIHRoaXMgbG9va3MgdG8gYmUgcmVjdXJy
aW5nOiBQbGVhc2UgZG9uJ3Qgc2VuZCBIVE1MIG1haWxzLg0KDQpUaGFua3MsIGRpZG7igJl0IG5v
dGljZSBteSBtYWlsIGNsaWVudCB3YXMgZG9pbmcgdGhhdCwgY2hhbmdlZCB0aGUgc2V0dGluZ3Mg
bm93Lg0KDQo+IA0KPiBPbiAyNC4wMi4yMDI2IDEwOjM4LCBFZHdpbiBUb3JvayB3cm90ZToNCj4+
IE9uIDIzIEZlYiAyMDI2LCBhdCAxNjozNywgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t
PiB3cm90ZToNCj4+IE9uIDIzLjAyLjIwMjYgMTE6MTQsIEVkd2luIFTDtnLDtmsgd3JvdGU6DQo+
PiBJbnRyb2R1Y2UgYSBuZXcgdG9vbHMvdGVzdHMvUnVsZXMubWsgdGhhdCBtdXN0IGJlIGluY2x1
ZGVkICpsYXN0KiBpbiBhDQo+PiBNYWtlZmlsZSwgYWZ0ZXIgVEFSR0VUUyBpcyBkZWZpbmVkLg0K
Pj4gDQo+PiBSZXF1aXJpbmcgaW5jbHVzaW9uIGFmdGVyIFRBUkdFVFMgaXMgZGVmaW5lZCBpcyBj
ZXJ0YWlubHkgb2theS4gUmVxdWlyaW5nIGl0IHRvDQo+PiBiZSBpbmNsdWRlZCBhYnNvbHV0ZWx5
IGxhc3QgaXMgaW1vIGdvaW5nIHRvbyBmYXIuIFRoZXJlIHN1cmVseSBhcmUgZ29pbmcgdG8gYmUN
Cj4+IGNhc2VzIHdoZXJlIHNvbWV0aGluZyB3YW50cyBvdmVycmlkaW5nIG9yIGFkZGluZyB0by4N
Cj4+IA0KPj4gDQo+PiBJ4oCZbGwgY2hhbmdlIHRoaXMgc28gdGhhdCB0aGUgTWFrZWZpbGUgZGVm
aW5lcyBYRU5fUk9PVCwgQ0ZMQUdTLCBMREZMQUdTLCBUQVJHRVRTLCBhbmQgdGhlbiBpbmNsdWRl
cyB0aGUgZmlsZS4NCj4+IA0KPj4gDQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi90b29scy90
ZXN0cy9SdWxlcy5taw0KPj4gQEAgLTAsMCArMSw0OCBAQA0KPj4gKyMgVXNhZ2U6IGluY2x1ZGUg
dGhpcyBsYXN0IGluIHlvdXIgTWFrZWZpbGUuDQo+PiArIw0KPj4gKyMgRm9yIGV4YW1wbGU6DQo+
PiArIw0KPj4gKyMgWEVOX1JPT1QgPSAkKENVUkRJUikvLi4vLi4vLi4NCj4+ICsjIGluY2x1ZGUg
JChYRU5fUk9PVCkvdG9vbHMvUnVsZXMubWsNCj4+ICsjDQo+PiArIyBUQVJHRVRTIDo9IC4uLg0K
Pj4gKyMgLi4uDQo+PiArIyBpbmNsdWRlICQoWEVOX1JPT1QpL3Rvb2xzL3Rlc3RzL1J1bGVzLm1r
DQo+PiArDQo+PiAraWZuZGVmIFhFTl9ST09UDQo+PiArJChlcnJvciBYRU5fUk9PVCBpcyBub3Qg
ZGVmaW5lZCkNCj4+ICtlbmRpZg0KPj4gKw0KPj4gKy5QSE9OWTogYWxsDQo+PiArYWxsOiAkKFRB
UkdFVFMpDQo+PiArLkRFRkFVTFRfR09BTDogYWxsDQo+PiANCj4+IE1ha2UgMy44MCwgd2hpY2gg
Li9SRUFETUUgc3RpbGwgc2F5cyB3ZSBzdXBwb3J0LCBkb2Vzbid0IGxvb2sgdG8ga25vdyB0aGlz
Lg0KPj4gDQo+PiBEbyB5b3Uga25vdyB3aGljaCAoTGludXgpIGRpc3RyaWJ1dGlvbiBhbmQgdmVy
c2lvbiB3b3VsZCBoYXZlIE1ha2UgMy44MCBzbyBJIGNhbiB0ZXN0IG15IGNoYW5nZXMgdGhlcmU/
DQo+IA0KPiBOb3Qgd2l0aG91dCBhIGxvdCBvZiBkaWdnaW5nLiBQZXJoYXBzIHdlIHNpbXBseSB3
YW50IHRvIGJ1bXAgdGhlIG1pbmltdW0gdmVyc2lvbiwNCj4gdG8gInN5bmMgdXAiIHdpdGggd2hh
dCB3ZSBkaWQgZm9yIGJpbnV0aWxzLCBnY2MsIGFuZCBjbGFuZz8NCg0KTWluaW11bSBiaW51dGls
cyBpcyAyLjI1LCB3aGljaCBleGNsdWRlcyBDZW50T1M2LiBDZW50T1M3IGhhcyAyLjI3IGFuZCBt
YWtlIDMuODIuDQpUaGUgb25seSBvdGhlciBPUyB0aGF0IEkgc2VlIHRoYXTigJlkIGhhdmUgbWFr
ZSAzLjgxIGFuZCBiaW51dGlscyA+PSAyLjI1IHdvdWxkIGJlIFVidW50dSAxNC4wNCwgd2hpY2gg
aXMgRW9MLg0KDQpTbyB3ZSBjb3VsZCB1cGRhdGUgdG8gTWFrZSAzLjgyPw0KDQpJZiB3ZSBleGNs
dWRlIENlbnRPUzcgKHdoaWNoIGlzIEVvTCksIHRoZW4gdGhlIG5leHQgbWluaW11bSBtYWtlIHRo
YXQgSSBzZWUgd291bGQgYmUgNC4yLjEuIFdvdWxkIHRoYXQgYmUgdG9vIGJpZyBvZiBhIGp1bXA/
DQoNCkJlc3QgcmVnYXJkcywNCuKAlEVkd2luDQo=


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:12:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:12:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239729.1541144 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vupPA-0004hq-Hy; Tue, 24 Feb 2026 10:12:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239729.1541144; Tue, 24 Feb 2026 10:12:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vupPA-0004hh-FO; Tue, 24 Feb 2026 10:12:36 +0000
Received: by outflank-mailman (input) for mailman id 1239729;
 Tue, 24 Feb 2026 10:12: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=7lmg=A4=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vupP9-0004hT-H3
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:12:35 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 535c8124-1169-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 11:12:30 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by DM6PR03MB5323.namprd03.prod.outlook.com (2603:10b6:5:24b::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 10:12:27 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 10:12: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: 535c8124-1169-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o4axRFjmGhW8bGeLanuIIAvA2a+l2mXAHtk+7pYYVJGLthgvLGCbA2Oh2CfnFAMqCFZ35Blt2Xo/SYXuq2MRefljMB6LD5J9QFr/wxQ/qiR4v7KCatHJFwMnFjX1EpF6BDMi9oCfXT5a/oyQMyTC3+SM6DiCiivLYblBUvUDVhYyx2hbyB3Dv72QoKzLTfbznJ8+zrez0aa/x2yWOwTaccx7jAWOq+QzqEDeVVXAP/fI7G7944MutJClOoxAghDCjX2GHAKpYYXCh6Oe/pjomy2R3G4mOFHFKN4VMCmaHfASerSDjgtsdiZ6qc56XpXeOjqAft7w+dzutC47bO/4yA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=6LgKHM+p6kcqzv46VIenPq+SJJPnA9x2y5hyHac4Cl8=;
 b=vVCz0SUR+Yhb/3o7GCpZgeVKomp9x2Zt64g8FMkr6/ARE7TLM9ExwgE/JWjp0oGJqZDA/kwXPaExIWMM9ghNpkyWk1wLb0GLxgTSHYx0CAYT7gBBCRw3+HJuYOYxAiVCja+GdVQiXDbziK1p6IIPzmPyG4LXk//qM3u7rnCPC8D05y1JzmY8zSJgS0cOdF+lXT1N66MLPJOeSt5nBLdyiyLXcOQK7njrb3ODjW8yn2vrMQ3GZG5l730+zYkMWsdRoo15/1tslkYGNQb4AXoq8osVioY1E7c3HNjkjgipwcZlEXiLDBgB3KLCZZ21nLw6J/DlbNRI5/hZswj5mk7g7w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=6LgKHM+p6kcqzv46VIenPq+SJJPnA9x2y5hyHac4Cl8=;
 b=GH49lbo2O71oqNDzGyWBkiWVYj27qEeTvNDtmH11rdFXeM10jZ3xa/IWtwUCklM4PlSxS1rIi/hXrcdq+NS/hvKKBbZhhhl0dRvIWYujIdtkYWnTMtZuGbsyMeiPSlRdtue9i5pcaSw8BKTXf+3cz9OoHzDem7j+3mUewxyJd2o=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 1/4] tools/tests/x86_emulator: fix 'shifting a negative
 signed value is undefined'
Thread-Topic: [PATCH 1/4] tools/tests/x86_emulator: fix 'shifting a negative
 signed value is undefined'
Thread-Index: AQHcpKvhICvggy+CX02UgLA2L8U/0bWQbKoAgAE2GYA=
Date: Tue, 24 Feb 2026 10:12:27 +0000
Message-ID: <6BE49BEE-F813-4586-9F51-3D39106E85CD@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <c908071f1c5293e6f87c67a982adb377b0912ccb.1771840208.git.edwin.torok@citrix.com>
 <c2363613-23d5-484d-a244-bf2f53aa3099@suse.com>
In-Reply-To: <c2363613-23d5-484d-a244-bf2f53aa3099@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|DM6PR03MB5323:EE_
x-ms-office365-filtering-correlation-id: aec0ef7d-cb38-43e6-e971-08de738d363e
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 =?utf-8?B?NHFrZ09IMXh1RmNKdmNJdSswYmlidVJnemhsS3RFbU5vWHAycmowcGRWVVNv?=
 =?utf-8?B?MUFYOCtGV2lFR2h3bm45VU83VXBHenRmV3EzRlE2TjB5cmM3L1pzdTFxNkFI?=
 =?utf-8?B?WUNoOG8reUFybGVzeFk4dzA2eFltQyt6d2hmSXY4U093VUNIWCtickZNUHNE?=
 =?utf-8?B?NlRPY21wL0tFczMyWEhLSGJ0R3BaQ0EvRDgzT2tFSmx5R3c3SnRPUnZBTzJy?=
 =?utf-8?B?SUE3OWx3YmQzenltM1Bwd3o4MGRCQ1hwUjMxTzV3aDNLWnRKSXJ3R0pTUUVQ?=
 =?utf-8?B?Snp1dmluVU51NnpnQkRnc2lsN3hUQVRBN2hhcjJiRWl2elRBL0F3bUFXU0ht?=
 =?utf-8?B?bW9yeGh6UlVrS1VsRm51ZUlVZ25TVlc1bXJPR3NCRm5BeXdzZ29UWXlTb2o0?=
 =?utf-8?B?WlFpL3ZabTZHYWtGajU1ZkhDZlRHanpULzZjS3Y1VTNQdWxiYTh3UERMOVY4?=
 =?utf-8?B?VVFNRG5kcm0wMnZ6a0t2RmFZNlNJdnZGOXVLQVdoTENiUkZOYmdsTW50eGxW?=
 =?utf-8?B?L3R5MTlZOEpaN2ZJT1RHdlBQWTJaSlpXdDB4bExjdG8wVG83M1VDNm56K2p2?=
 =?utf-8?B?cllTb1ZBeGY2eWxCQzlyV0g2TEFUZ0hnekpBdU01ZExhaDdNQ2UzWkZVdEJH?=
 =?utf-8?B?SW9TZXhPTWsvS0FGZmx5WFQzS0xZcjhjanFVVzQ5MCsybkdla1cxTnZzRTh6?=
 =?utf-8?B?MnU0Uk53bHZuRGdNSlF5Y0JteGZMRVAyWWlxdXU4dXdWa0RTTHh0QjAxSEtU?=
 =?utf-8?B?S2k1NnZwQUNmSldwZUdsWEJUdFdySFBkMUpnQ0dYcnhrdCtJdTFIVkc3Qm9y?=
 =?utf-8?B?aDZORUx0ZHNoMklCZlRPa1ZoRk5CODZyb3c3N0d3dGQwRElKanJnUldSNy9q?=
 =?utf-8?B?a3llcml5d205eHpaOExMd0Q3WThsQWtVK1NxQTg2T0I4cG9TQUE4OXBJbGtK?=
 =?utf-8?B?cTRoNEVlc3lJRjEzOUJ6aEMvRFhnM3ZQTWRxWnZWc0hJTmJFK25nTXpXRWhK?=
 =?utf-8?B?Ti9pbmN0S09EakZxMVk4bDBqZFJYK3hPT0o0QU1EUlZaTkdkdHF5bjlmcXhq?=
 =?utf-8?B?M0RJZFpmZVE3YzlBTzdFSWxUTkNqNDgzQ01CV0lCK0tQNS9TajhIb1FhVzY2?=
 =?utf-8?B?SnAzNUdNZ3VaWTBTRDZFUzUreUpueEhrYTlpd3g4MTRveFNvaTNmOTRsaStW?=
 =?utf-8?B?cG13RWxzVTFiWGtoVWpZbUhrTEtCcjJETExBSmxHcUk2OWJ5eDhJaXA4ZGNk?=
 =?utf-8?B?V0dMVTN1U2FHbEVFNEN4VWVkVzJQWU1RckNMMU5WdEk4dy9lemJwMW5CTUtv?=
 =?utf-8?B?OWF2YjdnNG95ZDAvMXpGeG1YMWNEalBMbWM1cW1ITU51WGgxZFVVNDN6RkNW?=
 =?utf-8?B?eEQwQXhvYlkyQVlXSUIwdFh3cm5WVzdlQzZjQ0dpUU10a2FRc1hFeXI3OE9s?=
 =?utf-8?B?RUNLK1h4TmxSUjFZRjlLZm1vc0pXNnB3c0tZeVZab0QxSFpOc1VVUUJ6UjVt?=
 =?utf-8?B?MzJwVm9YRTZERmFGUVVEbEFMOG9XUGJGd2xESXo2NlV5bnFkK1UxL2RLZVdT?=
 =?utf-8?B?ZDlDSmh4ZXpVWHJHWGhaTk4wUUx5UGNETy82ODJ3Mk82VGVwVGFLY2dzbElx?=
 =?utf-8?B?UTEyNDVBRDFyM3dBL0FzaGNDaFZpdW5Qa3pZaDZhNnQ3ZThlUUtQbFRhckRm?=
 =?utf-8?B?R3NNZ2EzODdYMHk4UVVEVS9yVm4vcmJPSWZzdUtQYnBRbFdlR1IrYXdOTWdq?=
 =?utf-8?B?cjkyZmtUODFHSWVHc0JHSVVxY3ZlbGxoUVI1Y2ZvbW9pbjdOZmQvQ3ViMzFR?=
 =?utf-8?B?SlhtZHAvOEhxbEd1MkUyVlk3amg1N2oyVEVGMVdrNzE5b2pzVlhEMWt5dkxD?=
 =?utf-8?B?eWRuVno3a1VEVUdqZkQwMlJ1SmFsQk9VNmo5bDVnSVQ3SjlicGdLQklWN3RJ?=
 =?utf-8?B?Sm5VdHp6Z2RCWUtQTGYxdk9GeVhuZFNUSVlycTBJQ1Y2R09uWDRwUUZVdkVz?=
 =?utf-8?B?Qys5RDBUMmE0cUFFa1c3WWl0NDVrQkozM2VIT25qNnc0c1c1ejhSZFBILzZw?=
 =?utf-8?B?TVNIL2dHeDg3V01uaGpZRXN3OGdXY3MrMHdtVHV0aFZRcXFEak1BcmZ4MlhO?=
 =?utf-8?B?QkZST01SZHdDWWNYVkhxMW9lMkxpODBKN1RvbDZlL1NSc3EzVTNTNFVJRzRa?=
 =?utf-8?Q?ufQ6K4fzDHRKV4CCC/7hQSE=3D?=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OFoyRnFmRXZFVHo0RElKR21iL3dSOXo5dnNQem9lOEtiN0s1cExyeFhtVDl3?=
 =?utf-8?B?REtpbU8rRVZFQkpqcUc1ZWR0VXVScno5RkpJNTB5d21jVFhablZETElDZnhx?=
 =?utf-8?B?VG0wMEpyL0VoWk9uWXVtSmhuRVpjVEhWOGNOQ0N5ZGEwZzNoZlNIU3RhaEhy?=
 =?utf-8?B?c1JheWFtRjdDRHV2T1p1Uys2VXh4eStZaGwyRTU1aE5FWGpPTnF1NzVwdEhX?=
 =?utf-8?B?emRvNjYwT1R2TmN5blFMeVU3cVNqb3NvcW04Z29mUml6L3BjTHNWVVBVcnBS?=
 =?utf-8?B?T21sR2h0ZmdxYUQvQWNuWkZ0SEhpazY4d3ZtOTRtVkpXTHJZTkw0ZzJUS2hZ?=
 =?utf-8?B?blFveDI2ZzFpVHBvTnJwRDNtWWEwV05Yc1hZV3hOd2RJWWlqT3RmQjRON3Np?=
 =?utf-8?B?QXVzVFlhWGF4M1JhL3IxQkc1TnBiWDFobjRONDg2RE1sOEVxSWpIVUtMY0VY?=
 =?utf-8?B?d2NiYUM2aGIzajBzMCtyRlBNZ1dqNXNRQ3JsRUtORE1UT1lYb28waDlsUGky?=
 =?utf-8?B?a2l5UHY0UFgyYXMrSVNmNThwNU45SWR1d2h0b2pGOWVxSFFsdXV3RXpSekl2?=
 =?utf-8?B?c2ZVdWxtRWJXM3pqZ0FyM3UxRWczNTI5VkJhOUk0WnhXM2E5RWd2ekxyTDdT?=
 =?utf-8?B?TExFWWRxWloyUzVwM2VCayt5Uml6Zjd6elI5aDkrOGZOSHRwWWNRbDI4UUNa?=
 =?utf-8?B?bnBmMXRWbWNocWFhbVpVUFdLZHJWZXVOdXVuS21jRFlnTm5UcEMwU0tiZTF5?=
 =?utf-8?B?bHltNERDNGZ0VUlGZ2E4VitTM0ZoZ2dpUm1kNlc3WHh0S08rNm9wYzFGYkFv?=
 =?utf-8?B?bkE1b3ZSNVpkSXRmb0E3UWNyMXJqRnJCL2JtK25BeDdOZ2tKR2JPNjBpOEF2?=
 =?utf-8?B?SGtuaXpYN1lGRnU5SE53WDZNSjdEd3k2QytET1hGbXpPZ3BCUVhmY2FFb1ZL?=
 =?utf-8?B?YTNjWStJSmpxS0J6NkpvWmI2UDVnWUZLZmJoYVpsOE1mVWxNcEJGZkswOGdK?=
 =?utf-8?B?VzdHVk5lY3E0dEJnSDZaem9qTzVSQVF1SHUvQ3lrc1V6VHg5VjhGWlA2WGNM?=
 =?utf-8?B?R0tFcDVYOFFDakNSd0d1aUNveXBPaFNrNEJBQWhJeXVickRSekIzbkhqWmlG?=
 =?utf-8?B?WGx4Yk85TGM3TUp5bHh0U2p6UmJqRTdXZmVzbmNPSHEwZTY2WUpSelBQZkor?=
 =?utf-8?B?bFdhdUZrb3BUa29hcWRTSmZ0VHBoQlluczVxVHJmVm9IaHc4NDlvdEsxb0I0?=
 =?utf-8?B?a2FHZTRaK3RDK3R2V21xUVVqTWJrTzI5V1ZYa1JTZ2Vka0l3MEF6Z3BUWGhV?=
 =?utf-8?B?YUxFbXNHMWpwOUswU3VCSWdDcHlRd2dSZkRxNHhna3dta0FoU3VUUy9KaU01?=
 =?utf-8?B?TXdEK2Y3VjM3NnJuak5BTnozRnlmYTZNN1JXTDUzU29RbG16cXVMa0p0c0ZV?=
 =?utf-8?B?bzhTa20xb0g4Y0NyVXVlelo3d2tnR2Z4aUluUDV4VU5wWDJpR3RmMW1Qa3ht?=
 =?utf-8?B?RzBucThQYXBsVW8vNXRLekRRaUJkeGxWdlI2SGl3Ty9ZbHI1ZU5iRXBBT08y?=
 =?utf-8?B?RW1NNnhueSt6UmIvbWUybGVmZGx6SkFwNUZqVXJoMmJUMzBkRldxdW9CamxI?=
 =?utf-8?B?eTAzQ2VxckI3WWc4ODlxVzdsWUtqZVhaWG10REdrTjV4V0lROXYzaEVOazhz?=
 =?utf-8?B?aDZnM0tVMHBGWEVUZktWdkpvYVVhQndMSk9yZzRFbzluRldGU0ZLM2JvT2N2?=
 =?utf-8?B?a1o1eU5Dc2pqcmI1alIrZU5vbS9HckdsendiTm5BaHEvR3p5dVVsRjcxQUd3?=
 =?utf-8?B?VEtaaHFWWFE5eFlrNkZnN2JnbERPeVBYMUtXUGlLQnhxdEdPNDYzNk5BUlJP?=
 =?utf-8?B?V2tnbUNwU2Z2TU1ON2QwclcxNVRPV3BMWkdURk94MXRtbldDQlRYTFJ0YytE?=
 =?utf-8?B?dmVSNGRJQlRHclRkbHA3LzhGeUw4N2FBUEg0S2dYdS90MHdKd1p6bFZIVms3?=
 =?utf-8?B?TEJ1UUdSdHd5QVBZMlVzajVJb0dIL0JhTUtEbmhJRjBBVlBHZmxadEw5TXNV?=
 =?utf-8?B?UVE1bGlmRzd1T3A2S05oK3grYWJac1lOOWc0dWk4bkhJSXNNS01tWXNDVjRU?=
 =?utf-8?B?OUthRFNwaHlGQU8vWC91clFKQlNMKzIwL2NQQ1ZmUGROMWhGUzVmRjkzV2V2?=
 =?utf-8?B?eEdqYnl2WVE2azFWSER5WUQ1VDdFUnJXTTdycktDVVBLNDQ3N1dRR05HTjJv?=
 =?utf-8?B?dFF6RGxQYkgzZjJtdWRYcmFsN0Z1WTkvczFNdkp6cXVHWkFRZ3ZrM1I1MWxt?=
 =?utf-8?B?a1pHVlVudTdSOGZoNThyQnRHQUp4SWcycml6MWhsazhmUWppaTBWM0VPVXdj?=
 =?utf-8?Q?1S2v8yisvpfxqCdg=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <195020557B05064182996D92B778B85B@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aec0ef7d-cb38-43e6-e971-08de738d363e
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2026 10:12:27.0387
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ecY1t61GP16EudCT82Ko5/mzisDED60fGQ4eJ92cFEtggy8D8V5CCTAcIWc3p9fpwXG9F6C4IGYeKAKTyrK12g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5323

DQoNCj4gT24gMjMgRmViIDIwMjYsIGF0IDE1OjQyLCBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz
ZS5jb20+IHdyb3RlOg0KPiANCj4gT24gMjMuMDIuMjAyNiAxMTowNCwgRWR3aW4gVMO2csO2ayB3
cm90ZToNCj4+IC0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRv
ci5jDQo+PiArKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3Iu
Yw0KPj4gQEAgLTExNjEsNyArMTE2MSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn
dikNCj4+ICAgICBpbnN0clswXSA9IDB4NGQ7IGluc3RyWzFdID0gMHgwZjsgaW5zdHJbMl0gPSAw
eGJiOyBpbnN0clszXSA9IDB4MDM7DQo+PiAgICAgcmVncy5lZmxhZ3MgPSBFRkxBR1NfQUxXQVlT
X1NFVDsNCj4+ICAgICByZWdzLnJpcCAgICA9ICh1bnNpZ25lZCBsb25nKSZpbnN0clswXTsNCj4+
IC0gICAgcmVncy5yOCAgICAgPSAoLTFMIDw8IDQwKSArIDE7DQo+PiArICAgIHJlZ3MucjggICAg
ID0gKH4wVUxMIDw8IDQwKSArIDE7DQo+IA0KPiBXaGlsZSAtMSB2cyB+MCBkb2Vzbid0IG1ha2Ug
YSBiaWcgZGlmZmVyZW5jZSwgSSB0aGluayB3ZSB3YW50IHRvIHN0aWNrIHRvDQo+ICJyZWdpc3Rl
ciBzaXplIiBoZXJlLCBhbmQgaGVuY2UgaGF2ZSBvbmx5IFVMIGFzIHRoZSBzdWZmaXguIFRoZW4g
KGhhcHB5IHRvDQo+IGFkanVzdCB3aGlsZSBjb21taXR0aW5nKToNCj4gQWNrZWQtYnk6IEphbiBC
ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gDQoNClRoYXQgaXMgd2hhdCBJIHRyaWVkIGlu
aXRpYWxseSwgYnV0IEkgZ290IGFuIGVycm9yIHRoYXQgdGhlIHNoaWZ0IGV4Y2VlZHMgdGhlIHdp
ZHRoIG9mIHRoZSB0eXBlIGluICgwVUwgPDwgNDApLg0KKEkgdGhpbmsgdGhlIGZhaWx1cmUgd2Fz
IHdpdGggLW0zMiBpbiB0aGUgQ0ksIGJ1dCBjYW7igJl0IGZpbmQgaXQgbm93KQ0KDQpCZXN0IHJl
Z2FyZHMsDQrigJRFZHdpbg==


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:16:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:16:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239738.1541154 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vupSn-0005GT-0v; Tue, 24 Feb 2026 10:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239738.1541154; Tue, 24 Feb 2026 10: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 1vupSm-0005GM-UH; Tue, 24 Feb 2026 10:16:20 +0000
Received: by outflank-mailman (input) for mailman id 1239738;
 Tue, 24 Feb 2026 10:16: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vupSl-0005GG-Rh
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:16:19 +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 db4945d1-1169-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 11:16:17 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4837634de51so23513925e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 02:16:17 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31efe02sm355976905e9.10.2026.02.24.02.16.15
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 02:16:16 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db4945d1-1169-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771928177; x=1772532977; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=+sOE4OdP+TTHpj4/9xI/G8cJpS26XtzaF17LlmGSj3g=;
        b=azTQpmHS4PsCCt/4LiCLnDlCxR4WZvZiarPVTh1okWdOXosHUrHDW+WVdXuEjWzEB2
         jSHhmUX/xdBdQ2a6fjyQWS2R0Xp6Zq2RY/RX9/6VSQFVXYfl9Pe5jAinui3qqXJ0NUt0
         J2ag/2onN7oXLWkHOXE8qqWxBjSug0yNT6ClLrpEv3o2ISM4wf+kJNUMWA9pFet9OCvU
         ZaR73voRpUpztS7ahPYo1sOvqETDeo4lJUhJT5IQm370m9unR6tekqGzQi5FQDx8zCDy
         XREJFbfTOQ0hb9BQ1I61isQiyzLGnL5VGzgoj20uiTrmieBv+iPh63/uSYo4zcrn8xmD
         1sGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771928177; x=1772532977;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+sOE4OdP+TTHpj4/9xI/G8cJpS26XtzaF17LlmGSj3g=;
        b=dPG19SCTeOJUAA7Mrxc8WIAq0LCCozRHQxmqCey82Ku8Xgxj+PY/bqFAZMX3v+9uac
         Lj80p2gyeRhw3aFO81bjwecIT77QNdBpQNsr07gHVbfrlPBvSBty1FupzZqq4Q8ZnR1Y
         E4akQ7N3MvEBgdlDlxJ9CvCqpmrVwHg5u99ljaUuKwVzVslA9+oJQM1UG0KBSodIIMnT
         0rPBbG9pL5It2p/12I0VoS2W3p3PXyDG0N9Gj2hGQXK7z9sQuk2COn6u/37AgFvsuUSJ
         yFEZoue8SIGJR7CFYu/tsnFqmML9LqqlzrfeILgb9p1P10vyQFZBJjVQkKwL6obJXy02
         1gYw==
X-Forwarded-Encrypted: i=1; AJvYcCUiF7E+l/vdgBZKPeNHe3wRKJxOhw6zri8X/pNQEkSaMAXORp80XMGFWNoTEzrqdYbEV+rOhGOAbKE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyyIxpf9x/ZnNOi+hjMEOLJcfe+7yR1AS+h9qufL2D6zpSzjGew
	6bbmw0HwuNXXPGUpP/81nJoO4Qs4PN3ZEMUTdkNTqYP8yJ9OdOXj52c/he1CGRNObg==
X-Gm-Gg: AZuq6aLvmBil5RlXSeqP5Tp5PPA8QQ+oCxt/LUhP59yyt4ZAKWU0lP1afYVDP2Q4ukb
	UutCe4qOBFjF+ZTYDtiuk35ZpF1Wd00yOvkL/ESdtSU1DPRh7UZLYGVRcJjGbo2y7PpTNFfQP/7
	tmYN6dDgzG7agsm4jH3gm7Pr+bTQZk0nb5RGG7RszK7Zfo3+26Ao4dbalFfCRds9PSRAHWHBV6M
	aN06DauZKCj9oJy5Q1mEysx0+OvM1GnZwsfrcfu1Ue/EWOI83EgTEzoXbPFHEGX5hqBVFN9OvLe
	7PHujSjGpaPiJwXsrexADTd+uswO83T3DRZuUufin6dSIi3k3YHJH6M+C2bKnaQJj3dBjmu+c/o
	NxgaPD97LE5OiQakRxil34X5KpewpXAGwENFPsIRVAzv9g6SnLbiDZjGT5mwSO/BDD9gFF3K1R9
	uEXWcrIdMZbcw1Z+orUy9JgZ7DFzwHjyaVweaEvok32WLk0O7n0msVdcGx1RFMoG5/FBwzstjcV
	fVnvG0ZZxaAbE4=
X-Received: by 2002:a05:600c:154b:b0:483:7ae2:1737 with SMTP id 5b1f17b1804b1-483a962e486mr167957685e9.17.1771928176754;
        Tue, 24 Feb 2026 02:16:16 -0800 (PST)
Message-ID: <541a6c57-406c-49e5-8b8b-019e30bf0d89@suse.com>
Date: Tue, 24 Feb 2026 11:16:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
 <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
 <e084cd6f-e76d-40c1-9e30-97e10acae012@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: <e084cd6f-e76d-40c1-9e30-97e10acae012@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.02.2026 10:44, Oleksii Kurochko wrote:
> 
> On 2/24/26 9:07 AM, Jan Beulich wrote:
>> On 20.02.2026 17:18, Oleksii Kurochko wrote:
>>> --- a/xen/arch/riscv/domain.c
>>> +++ b/xen/arch/riscv/domain.c
>>> @@ -2,9 +2,39 @@
>>>   
>>>   #include <xen/init.h>
>>>   #include <xen/mm.h>
>>> +#include <xen/sections.h>
>>>   #include <xen/sched.h>
>>>   #include <xen/vmap.h>
>>>   
>>> +#include <asm/cpufeature.h>
>>> +#include <asm/csr.h>
>>> +
>>> +struct csr_masks {
>>> +    register_t hedeleg;
>>> +    register_t henvcfg;
>>> +    register_t hideleg;
>>> +    register_t hstateen0;
>>> +};
>>> +
>>> +static struct csr_masks __ro_after_init csr_masks;
>>> +
>>> +void __init init_csr_masks(void)
>>> +{
>>> +#define INIT_CSR_MASK(csr, field) do { \
>>> +    register_t old; \
>>> +    old = csr_read(CSR_##csr); \
>> Can't this be the initializer of the variable? Can't ...
> 
> I agree that this is change is okay to be done but I am not sure about ...
> 
>>
>>> +    csr_set(CSR_##csr, ULONG_MAX); \
>> ... csr_swap() be used here, too?
> 
> ... as after re-reading spec again I am not sure that we can do in this way
> at all.
> 
> Initially I used csr_set() instead of csr_swap() or csr_write() as csr_set() to
> take into account a writability of the bit, so it won't touch a bit if it
> is r/o.

To me the spec isn't quite clear enough in this regard.

> But it seems like this approach won't work with**WLRL or WPRI fields as these
> fields aren't r/o,

In the CSRs presently dealt with, are there any WLRL fields at all? (I don't
think WPRI fields represent much of an issue for the purpose here.)

> but they only support specific value and for example:
> 
> - Implementations are permitted but not required to raise an
>    illegal-instruction exception if an instruction attempts to write a
>    non-supported value to a WLRL field.
> - For these reserved fields, software is required to preserve the existing
>    values when writing to other fields in the same register. Overwriting them
>    with 1s could be considered non-compliant behavior.
> 
> So it seems like we can't just do csr_swap() with all 1s and it is needed
> to pass a mask to INIT_CSR_MASK() which will tell which bits should be
> ignored and don't touched.
> For example, HENVCFG and HSTATEEN0 has WPRI fields.
> 
> reserved_bits_mask = 0x1FFFFFFCFFFFFF00;
> tmp = csr_read(HENVCFG);
> tmp=(~reserved_bits_mask) |(tmp&reserved_bits_mask); csr_set(HENVCFG, tmp);

What I find further concerning is that HSTATEEN0 also may have read-only-1
fields. You don't currently cope with that, I think.

>>> +    csr_masks.field = csr_swap(CSR_##csr, old); \
>>> +} while (0)
>> This whole macro body would also better be indented by one level, to not leave
>> in particular this closing brace as a misleading one.
> 
> Do you mean that it should be:
> 
> +void __init init_csr_masks(void)
> +{
> +#define INIT_CSR_MASK(csr, field) \
>      do {
>           ....
>      } while (0)
> #endif
> 
> I will update it.

Yes, with no #endif of course. The "do {" could also stay where you had it.

>> Happy to make adjustments while committing, provided you agree. With the
>> adjustments (or clarification why any of them shouldn't be done):
>> Reviewed-by: Jan Beulich <jbeulich@suse.com>
> 
> If what I wrote above make sense then it seems that I have to send a new
> version of this patch.

Not sure there, but the hstateen0 aspect needs dealing with, I think.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:26:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:26:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239751.1541164 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vupc9-00078t-Rd; Tue, 24 Feb 2026 10:26:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239751.1541164; Tue, 24 Feb 2026 10: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 1vupc9-00078m-Oc; Tue, 24 Feb 2026 10:26:01 +0000
Received: by outflank-mailman (input) for mailman id 1239751;
 Tue, 24 Feb 2026 10: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vupc8-00078g-6C
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:26:00 +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 3532935d-116b-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 11:25:57 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-483487335c2so48689675e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 02:25:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a9b7fc8fsm227993895e9.7.2026.02.24.02.25.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 02:25:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3532935d-116b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771928757; x=1772533557; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iJjv673tEQxBZbdVymcgQOhFGqwEYC4jtFglOlAcBUU=;
        b=EdPgBWrLEZ1f+1OZuNhylZVqfgbPg8trk63SICa/yL/inGmtfyCUv5fKDSzFxfiX0J
         N88/kKxC8SjjEko+ODsA0WP1Cv3H3lRBN0Aq9PC+szZ5wQAbjDYUIJs9a2mHRfRwBfqF
         gSEZTRhT1vKAeWL4ekPJwvV8lY1soe9OJo2SHIsLn49VSeLJCEHjJg0io04eE/g/peC+
         SQ1rhg2kINvYk0jJZhAEZuEANMFNicpyOu4kui7RxXUZxWaY00sZKXGuz4s1ZylKq24x
         Bmxyav21uUaALO7IXQ1ck35Skeuame7KXbbnHt3pr51JIME1FY7Q+GDxUPtzWy7DMpet
         pg7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771928757; x=1772533557;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iJjv673tEQxBZbdVymcgQOhFGqwEYC4jtFglOlAcBUU=;
        b=tfqm+wlOAW37rPkBmes6fKmVi0ByuuU6kaCg9pprqR4z63Pa5Ouq/wIA+6aC+I+aab
         zLsbiyn1c5Jjwc1o6njZDUhS+evNPgSvVjgSvWIXUHP84SZ3432Czay5h1P8lIZmZrs4
         3fNAdE7ueTwIP8Cfs2WqXjxNGl/TxazKXq/NNkSDeDHIxu9sc1hm6DdCn+p9pzUCJO26
         c+PaVkcigeZAF3dzP06N5oRApWYcx2LD+xJmtN+8NbvRsQr0AHWouO9vg8oJxkKZRIrR
         nvt19/MCv9APmXE8hCyri5hqCXA0YPJeWcqqkF2XBqFTDTRHEE5SVpLBkNh1XxW1g5sk
         3EtA==
X-Forwarded-Encrypted: i=1; AJvYcCUWDKLyqwnbx3anyNqAf62+iPq42h6Noviu+rMj6PXW+3AJ67TeEVwL2ghPX2x1eZdmrqOY5qTLhPI=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yw8ZwbXuFEhIAazN3h4bYRPD7D5QEgtB3mEMHFzn/KKCuwLcguA
	sVuj215Wzy+X6bqwOz4Ki1hKvqDbUo0h3BJbazawarYJ78MaFhAir0dh1IoY9H6JYw==
X-Gm-Gg: AZuq6aItDxsLK65dE1XsTdu4S/7zDCC+brHFbIizrp/Es4r4wiZ+oEeVaqEb/V85XIM
	bW/IDr/IrNvd8zDDfjAdyy5DULyYOuw1APZuyNceb/xSrjuKmvWfr+VVilgqjdqTuazUAwMWubR
	1gytNo4i6Sf09iEYninkZoTBjGMbXUbCsfWfvXBZ6dIwDKelrBrObskK09JERofiUndKTKsmKA7
	7b8nlvDlUhBsox5fzf+GDhut4NTIu54BvraWGS9+z4AF6Fabyqd67AmciE/iUOsKMFWi8m3nHpT
	uVe0kn2XH5mxjRYVbZxRa6N+zxpN6HHXt0xroGAViFDSZ1RTixvN9GxauSTYrfDbddWdmchTcv3
	1WMj+gynaK63/e9JqnSp8grqL4uKiSNK+6PVaKhYJSQVuuqhcER2Ij8vqa8JkQzsWF6qvtpYmoK
	7HMqrWT3SDGzONmMa5rUq333hOuZRX52socPHI8tcC06sXUxICdE9VsiIyQqOHnGnaxr1urBI2H
	fwLaVUmBH4f5yM=
X-Received: by 2002:a05:600c:810a:b0:480:1e9e:f9c with SMTP id 5b1f17b1804b1-483a95bda25mr189340035e9.10.1771928757151;
        Tue, 24 Feb 2026 02:25:57 -0800 (PST)
Message-ID: <8e8904c5-18aa-40a7-9878-56df56760145@suse.com>
Date: Tue, 24 Feb 2026 11:25:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/4] tools/tests/x86_emulator: fix 'shifting a negative
 signed value is undefined'
To: Edwin Torok <edwin.torok@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <c908071f1c5293e6f87c67a982adb377b0912ccb.1771840208.git.edwin.torok@citrix.com>
 <c2363613-23d5-484d-a244-bf2f53aa3099@suse.com>
 <6BE49BEE-F813-4586-9F51-3D39106E85CD@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: <6BE49BEE-F813-4586-9F51-3D39106E85CD@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.02.2026 11:12, Edwin Torok wrote:
>> On 23 Feb 2026, at 15:42, Jan Beulich <jbeulich@suse.com> wrote:
>> On 23.02.2026 11:04, Edwin Török wrote:
>>> --- a/tools/tests/x86_emulator/test_x86_emulator.c
>>> +++ b/tools/tests/x86_emulator/test_x86_emulator.c
>>> @@ -1161,7 +1161,7 @@ int main(int argc, char **argv)
>>>     instr[0] = 0x4d; instr[1] = 0x0f; instr[2] = 0xbb; instr[3] = 0x03;
>>>     regs.eflags = EFLAGS_ALWAYS_SET;
>>>     regs.rip    = (unsigned long)&instr[0];
>>> -    regs.r8     = (-1L << 40) + 1;
>>> +    regs.r8     = (~0ULL << 40) + 1;
>>
>> While -1 vs ~0 doesn't make a big difference, I think we want to stick to
>> "register size" here, and hence have only UL as the suffix. Then (happy to
>> adjust while committing):
>> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> That is what I tried initially, but I got an error that the shift exceeds the width of the type in (0UL << 40).
> (I think the failure was with -m32 in the CI, but can’t find it now)

But this code has "#ifdef __x86_64__" around it.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:30:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:30:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239763.1541174 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vupgJ-0000Vh-FY; Tue, 24 Feb 2026 10:30:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239763.1541174; Tue, 24 Feb 2026 10:30: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 1vupgJ-0000VZ-CF; Tue, 24 Feb 2026 10:30:19 +0000
Received: by outflank-mailman (input) for mailman id 1239763;
 Tue, 24 Feb 2026 10:30: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vupgI-0000VT-GH
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:30:18 +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 cf3cc440-116b-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 11:30:16 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48374014a77so55442125e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 02:30:16 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31c0779sm528577945e9.6.2026.02.24.02.30.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 02:30:15 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cf3cc440-116b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771929016; x=1772533816; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=eCER6MBJ8RKAYB6z4oMX8U8404Cs3b6ijHepJLHXkwU=;
        b=eDOSpH7ZBOnuUr/Rm7ddc5xZm6fMqtp4y8B5zxB5eQwkq2OElrGfQAsjJXTjlmuHxr
         x3MH1tXfP+mrVgaeP3hW/bzcQhnDkjiI43vcaqqNXwutomc3r+kVZNdaOhzgromJXQhJ
         XFd578Hj1giCLGW3WwsOY+8zCGs7ohXakCEkj0gX4YLLYHmwoPhiIDrA0astT48PAY/s
         uQ0LiTqcW96jyZ6V0SfX2kqFtgOFP418YZ28yCWkhUjGfQPaL0I2RxzVciaLtTy6Cu66
         tM3G2p5QWHkBGPnjjaUfCyQhaGvE3f5STizNE8/oQ6KuKVNqyfFiyV5oHn1RT0AflIsa
         5w2g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771929016; x=1772533816;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=eCER6MBJ8RKAYB6z4oMX8U8404Cs3b6ijHepJLHXkwU=;
        b=DUENkCoDfKtoipWGG9KVOB0f9Z0PK38yu8UHA9adLoFMQT9g4yhhT7PTiX4ku15Jo6
         VExUTtSJpotPyfhHpn27z3jIJj677SCj1ShG8wO4WNO23sQcdfnYvb/FclaWOoHZ63e5
         wzviwRsy7wMhASwIRQLJaBh6hhLT00tJLVOsukPicQbLmgCtFvBd4Oy7l3REfioOjMlR
         nWDakfJl+StscyFqhqeX56a5j34C9x/hwXfsjL0HEoU6pyVO9PV1mzD/U65Cnm+CRQrR
         yZjvwmuA+86KzeoRUuoSJ1+KP0SB1jLH4B2qDYplvslP0mZuJQIFeHhxJ+NupHn9WcGB
         ljMg==
X-Forwarded-Encrypted: i=1; AJvYcCU4a58k1lfoG5L5XmWqk7VsXPuq4RdiFKVu0jT6kiZHKRqAtvWb2y14iPrB7G+6NHqxV//ax6LT9jg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YykYigiytyceQTdobeCOt+RA6grTwce4J23XtCo8JDhkzLlTIm+
	bCCGfE0xi1Er60yyjHXxn9+Ku/Bdrj+/DBVuxsmNBjxAnCAj6tz31UYNv6tjhbStEg==
X-Gm-Gg: AZuq6aJ/yGwDDaDOfKi8z/0e7lO7Incdhru3J/s/rDBHnwCORKzyyXQGXSbGRNIjSR3
	ha9MWqSm2yr67XTCI76IblDKZxU9nF4zTLcAMuncUOnIUztWUtRCau/6uC5zKi9gXuyVGdGGkWA
	s5GMOjVDv4G3ObDkIgce6F/TQYiZDZcypgNURE7esJ/xGFaVpTTwPzB6qr5QMjKgNGlajBnd3CU
	OHtMj3E2fpld4ZO/pwPhfdrtIU13mgn3NfPCgepQtfnG476KU1JlJFyqyfhh5sPhqjGf9zFCd0n
	AliMUeZPVEaL0KuSkEpC5auNNluSo5KDi5XqiH+KfIcSDhvU8pz7xfCMd6R4CDGEIMTSWTYHubJ
	QfC/ZIM+KSMRX7kd7TU0DKxAbLhuKz6qmIfIkZRfnj+hso2NiWB0el71PDyd+RUxjn4q24Rn8zv
	9lEXahU5r1GyVTtp112bAn+r3feLy5OlPvZvSzGWaPAM9OMOUL5A+gbbBi9aD1SIzpzHwQXRq2d
	8NBfmQnQ/NUB48=
X-Received: by 2002:a05:600c:1e28:b0:477:5af7:6fa with SMTP id 5b1f17b1804b1-483a95fe96bmr169097335e9.32.1771929015624;
        Tue, 24 Feb 2026 02:30:15 -0800 (PST)
Message-ID: <c0ba57bb-0d86-4209-b019-daf8328b5205@suse.com>
Date: Tue, 24 Feb 2026 11:30:14 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/7] tools/tests/*/Makefile: factor out common PHONY rules
 into Rules.mk
To: Edwin Torok <edwin.torok@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Roger Pau Monne <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <6fa0d95dad3d223cf8aaa923ae59fd0b3a97d4a0.1771840831.git.edwin.torok@citrix.com>
 <20e3edf8-9aba-40e9-af57-e5eddf001a7b@suse.com>
 <6616BFC6-2ABC-4DEF-A799-BC660BBE31BC@citrix.com>
 <e866d080-2c6f-412f-8ac4-f97eb7e874c5@suse.com>
 <7B23282E-4CA9-4B8D-A521-C8483F7E2541@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: <7B23282E-4CA9-4B8D-A521-C8483F7E2541@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 24.02.2026 11:01, Edwin Torok wrote:
> 
> 
>> On 24 Feb 2026, at 09:42, Jan Beulich <jbeulich@suse.com> wrote:
>>
>> First, since this looks to be recurring: Please don't send HTML mails.
> 
> Thanks, didn’t notice my mail client was doing that, changed the settings now.
> 
>>
>> On 24.02.2026 10:38, Edwin Torok wrote:
>>> On 23 Feb 2026, at 16:37, Jan Beulich <jbeulich@suse.com> wrote:
>>> On 23.02.2026 11:14, Edwin Török wrote:
>>> Introduce a new tools/tests/Rules.mk that must be included *last* in a
>>> Makefile, after TARGETS is defined.
>>>
>>> Requiring inclusion after TARGETS is defined is certainly okay. Requiring it to
>>> be included absolutely last is imo going too far. There surely are going to be
>>> cases where something wants overriding or adding to.
>>>
>>>
>>> I’ll change this so that the Makefile defines XEN_ROOT, CFLAGS, LDFLAGS, TARGETS, and then includes the file.
>>>
>>>
>>> --- /dev/null
>>> +++ b/tools/tests/Rules.mk
>>> @@ -0,0 +1,48 @@
>>> +# Usage: include this last in your Makefile.
>>> +#
>>> +# For example:
>>> +#
>>> +# XEN_ROOT = $(CURDIR)/../../..
>>> +# include $(XEN_ROOT)/tools/Rules.mk
>>> +#
>>> +# TARGETS := ...
>>> +# ...
>>> +# include $(XEN_ROOT)/tools/tests/Rules.mk
>>> +
>>> +ifndef XEN_ROOT
>>> +$(error XEN_ROOT is not defined)
>>> +endif
>>> +
>>> +.PHONY: all
>>> +all: $(TARGETS)
>>> +.DEFAULT_GOAL: all
>>>
>>> Make 3.80, which ./README still says we support, doesn't look to know this.
>>>
>>> Do you know which (Linux) distribution and version would have Make 3.80 so I can test my changes there?
>>
>> Not without a lot of digging. Perhaps we simply want to bump the minimum version,
>> to "sync up" with what we did for binutils, gcc, and clang?
> 
> Minimum binutils is 2.25, which excludes CentOS6. CentOS7 has 2.27 and make 3.82.
> The only other OS that I see that’d have make 3.81 and binutils >= 2.25 would be Ubuntu 14.04, which is EoL.
> 
> So we could update to Make 3.82?
> 
> If we exclude CentOS7 (which is EoL), then the next minimum make that I see would be 4.2.1. Would that be too big of a jump?

I would take gcc and binutils (both dating back to 2015) as reference, which would
make it either 4.0 or 4.1 which we may want to pick. (Which doesn't exclude 3.82
as an option, of course.)

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:42:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:42:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239775.1541185 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vups3-0002Nr-FY; Tue, 24 Feb 2026 10:42:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239775.1541185; Tue, 24 Feb 2026 10:42: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 1vups3-0002Nk-Bf; Tue, 24 Feb 2026 10:42:27 +0000
Received: by outflank-mailman (input) for mailman id 1239775;
 Tue, 24 Feb 2026 10:42: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=1YgY=A4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vups2-0002NZ-UX
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:42:26 +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 821fdca2-116d-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 11:42:25 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-48334ee0aeaso39941625e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 02:42:26 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31bc068sm315306205e9.4.2026.02.24.02.42.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 02:42:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 821fdca2-116d-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771929745; x=1772534545; 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=WaFq5XH2JILj6dEwhuKq5ki6UOjiTkyCI8uYrK6FTZk=;
        b=X++mYcPha4Hxseebp9o4tpIFhNNh3MlrTja5hRtCRcT2/os5ZdwFa9nPvQmA/HeU8Z
         oaZrGtgq62ZhDT9zA58EchdWXRBTPXgcZC1xNRt1P0N4bOf0bu2+S/KM30AvgawB8CyA
         3MpVUKUqvumUF8im7fLcn7JZbkS7EAbEzOQ7BGvf4Yj6GGJ0mwT68tKfvZgD6LTK8gYD
         fm/NUdp3Rq6Q7UDnKUo4JiUq7+9kuT7l/9+oeYf/3f4/V0AvfdDig1X3dvTneUapgXU2
         Ba9lLsmAY8flQyVAY63B1XC+55waawpFWPMVpKfoAQZ2DjuqIm1Nsq7zbsLCOA673M3Z
         /Zdw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771929745; x=1772534545;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=WaFq5XH2JILj6dEwhuKq5ki6UOjiTkyCI8uYrK6FTZk=;
        b=Z1QWN1ixCmlkm3cSHv1uOqUT771BBb+wq89qWTyXxt3pMCcgyoBPGrKgThOyq/xKZ0
         DroG/OVKWYnyN4+7EM/z+s7yz88DL+LY/H7/9dMhCYL2gzPSSllYrAfoRF2e3LacSt2S
         L2UGYmfJao7kv7jcd5Z4Q1KhD26RaBHHmWmOX7zVAmCkMGJ6wK95GoV5yEzPyC5BI0av
         fznLRSGpNIXq77Y6pKxP8qsQrD9CpAOvmOmYWegnqetIXu5c7vjKJpTrbNLg3W3zt/B4
         /LZ3ZsMR4qZrfWJhOaKSEirYfnSu9+Wp5nw2+sYNIPA1FKEJ4wpEUlBDl5lqY1qN0Q/I
         AU3g==
X-Forwarded-Encrypted: i=1; AJvYcCUfIyy6VUCcXUZll/yobkI/r8i5emlz1VGUaZhE58Kp8ytBnAQRR9zgeS2Cxd0vErxj7tkkcjhukRM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzf3DYaUIhb8ebro8Wjn3ToWjEWvrbPFYDd9xQDyBr1Khj8qCYn
	LRyS5hX5tFRT0SZyNnI/8xQdY+VWJhsd0e3s8y+SgUgDuHiupoJudsd3
X-Gm-Gg: AZuq6aIW37nAW5+rRHHQAlRmRQ+7hSl9Woc33VhQSzf9Ocj0m2a2SwSQrp2qYoq3b1E
	qQoVzyE3VIJRRIAJEk65q7CTWzmA8oZQyxeL1oUgVrHv4qoieRQON6xfgo3cSoMdB1qlxJ68NQq
	vKZrqaE8rkeAl2dS4Dpl6E5tZYamL2Y5xEqN0KIaslZOHF8zFNgHPcQZ9+4L+Mr58TARlroGvMx
	p+qoWZELtIWVf5V4WtteGBsgsxgl3s9HB+9Jz2OVZG91MEGac+3HK/d6DpikEix9biT/PiyZ7CO
	Ex7f/HwuWbRRJeW8OoloW/xqsq5K1QFYex2I41DUeBoYYHWlhsJQnhg1x9WF5Fr9JIJzzB/0tT1
	k4fYSF3BGpzpzFGf2QNM/Uqm8zNq5kDhqOKphtRwVAPuv8eYWt/3Aw3z0TUw211Kl818wvkJxJW
	zlCTeF71F1v24wjBNW7qfMLo2p7mFxwlcF+CMnsaMUCoW9LYDUhxsAp6nsbFJqUk/6n3dbuXRH/
	z/k18vn1dSAQg==
X-Received: by 2002:a05:600c:3b10:b0:471:700:f281 with SMTP id 5b1f17b1804b1-483a95e5b24mr189281825e9.25.1771929745076;
        Tue, 24 Feb 2026 02:42:25 -0800 (PST)
Message-ID: <5e4362ed-c310-442b-a742-ca7c3d1c47dc@gmail.com>
Date: Tue, 24 Feb 2026 11:42:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
 <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
 <e084cd6f-e76d-40c1-9e30-97e10acae012@gmail.com>
 <541a6c57-406c-49e5-8b8b-019e30bf0d89@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <541a6c57-406c-49e5-8b8b-019e30bf0d89@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/24/26 11:16 AM, Jan Beulich wrote:
> On 24.02.2026 10:44, Oleksii Kurochko wrote:
>> On 2/24/26 9:07 AM, Jan Beulich wrote:
>>> On 20.02.2026 17:18, Oleksii Kurochko wrote:
>>>> --- a/xen/arch/riscv/domain.c
>>>> +++ b/xen/arch/riscv/domain.c
>>>> @@ -2,9 +2,39 @@
>>>>    
>>>>    #include <xen/init.h>
>>>>    #include <xen/mm.h>
>>>> +#include <xen/sections.h>
>>>>    #include <xen/sched.h>
>>>>    #include <xen/vmap.h>
>>>>    
>>>> +#include <asm/cpufeature.h>
>>>> +#include <asm/csr.h>
>>>> +
>>>> +struct csr_masks {
>>>> +    register_t hedeleg;
>>>> +    register_t henvcfg;
>>>> +    register_t hideleg;
>>>> +    register_t hstateen0;
>>>> +};
>>>> +
>>>> +static struct csr_masks __ro_after_init csr_masks;
>>>> +
>>>> +void __init init_csr_masks(void)
>>>> +{
>>>> +#define INIT_CSR_MASK(csr, field) do { \
>>>> +    register_t old; \
>>>> +    old = csr_read(CSR_##csr); \
>>> Can't this be the initializer of the variable? Can't ...
>> I agree that this is change is okay to be done but I am not sure about ...
>>
>>>> +    csr_set(CSR_##csr, ULONG_MAX); \
>>> ... csr_swap() be used here, too?
>> ... as after re-reading spec again I am not sure that we can do in this way
>> at all.
>>
>> Initially I used csr_set() instead of csr_swap() or csr_write() as csr_set() to
>> take into account a writability of the bit, so it won't touch a bit if it
>> is r/o.
> To me the spec isn't quite clear enough in this regard.
>
>> But it seems like this approach won't work with**WLRL or WPRI fields as these
>> fields aren't r/o,
> In the CSRs presently dealt with, are there any WLRL fields at all? (I don't
> think WPRI fields represent much of an issue for the purpose here.)

Agree, currently used CSRs in this function don't have WLRL feilds, but I suppose
we want to have the similar treatment (read WLRL fields and reuse what was read)
for WLRL fields as these fields expect only valid value and so all 1s for this
fields can be wrong to use.

>
>> but they only support specific value and for example:
>>
>> - Implementations are permitted but not required to raise an
>>     illegal-instruction exception if an instruction attempts to write a
>>     non-supported value to a WLRL field.
>> - For these reserved fields, software is required to preserve the existing
>>     values when writing to other fields in the same register. Overwriting them
>>     with 1s could be considered non-compliant behavior.
>>
>> So it seems like we can't just do csr_swap() with all 1s and it is needed
>> to pass a mask to INIT_CSR_MASK() which will tell which bits should be
>> ignored and don't touched.
>> For example, HENVCFG and HSTATEEN0 has WPRI fields.
>>
>> reserved_bits_mask = 0x1FFFFFFCFFFFFF00;
>> tmp = csr_read(HENVCFG);
>> tmp=(~reserved_bits_mask) |(tmp&reserved_bits_mask); csr_set(HENVCFG, tmp);
> What I find further concerning is that HSTATEEN0 also may have read-only-1
> fields. You don't currently cope with that, I think.

Because of this:
   A bit in an hstateen CSR cannot be read-only one unless the same bit is
   read-only one in the matching mstateen CSR.
?

I expect that it will be covered by csr_set() which will touch only writable
bits and ignore read-only. So doesn't matter if a bit is read only 1 or 0
it still shouldn't be in the final mask.

~ Oleksii




From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:47:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:47:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239787.1541194 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vupx5-000364-1j; Tue, 24 Feb 2026 10:47:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239787.1541194; Tue, 24 Feb 2026 10:47:39 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vupx4-00035x-U3; Tue, 24 Feb 2026 10:47:38 +0000
Received: by outflank-mailman (input) for mailman id 1239787;
 Tue, 24 Feb 2026 10: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vupx4-00035o-2e
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:47:38 +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 3b467e01-116e-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 11:47:36 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-436356740e6so5600868f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 02:47:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c00d0csm26376677f8f.11.2026.02.24.02.47.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 02:47:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3b467e01-116e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771930056; x=1772534856; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=zx5AVabW84yPsjlgOEGnt61IVsvv0H8tSF0bcK1wB1M=;
        b=Hra1ITGqK44aXHIjnXVkF2GOpOjM6bMXwhZXvY4pZByq2Fd4rXwtb44lEXPJTfXNvF
         6fT2EUjDCFYetCtc1T2AKF9NhAwL25rmvbmCrIdK/sAvXQ9OQIrlh1451bGcnqINjjD9
         N7hE7UxSozoc2I15Ts4A6Olbt9rNKkAOg1bP3EKT20iIWsF957hgOareqLaEfByoWs+p
         YYFtK9qEqu+TVJoBwyu6vC1XIIs7hEVXbHW4HiZd8gB16X5RmmtFoqNQ5Wj9g0HWoA2H
         IvDrkD2jtc/HoD1KV966U+dWE8NkMMYvOKZx6QoUaQIJ1SH7rTqGVjhQqwEMuLv7qsVj
         q9Vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771930056; x=1772534856;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=zx5AVabW84yPsjlgOEGnt61IVsvv0H8tSF0bcK1wB1M=;
        b=gVw+GJM2AKJzc6N411ZPi5wKjY3gBrpuBOiS4rK3Y0fxwlolD2zsCD/ZEJ97LS+gJz
         r9lBIfrzyFKAGQtlWpTT+0a3wuQlgqTswJXiUBw/5Yk7fcJJ6HrIEaOYjHbpccn/92WW
         9d0WGQ77sAWgt8xMF5g0tgqokdsKz7yOXCO3KREbSAhrGtET9bcY3BqlpUC1pl6tJKIP
         ekD8gNhUr6UQ8gD2wTa4RV5Y3L/bAWcDePDkHAQzZ0OMffmCCZxX8BzzXtjsvp/okDw8
         +6ifs4FxLRbnhDR/6R3Y7HA1t+YT31PYGlwQ3TBygIbsrU2NG9Domj6CUPM6kVssXiW0
         uXng==
X-Forwarded-Encrypted: i=1; AJvYcCW9A9jJDCYaEoKEAeX4U2sRi7G5ergN5UbhAtP0cFD05k9orJ6dZ5o0loYwwXnNy1mTYOHVISSZyEc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxrh45jdySMihyVcACRSS3dRVIcI/7gNddYF7UaSwpbUjcVXQNC
	Z1+hqNhK4jKN/B2E7jMjwon9qQn7Sj/z0x8B4lbZmLtNaTvLWU9CHEc1qp15VRKChA==
X-Gm-Gg: ATEYQzzYZsXh9zt//Je81udOd5qtPR1aQ/hux7RI2g03zXu0Ar0pk/tbOMZTDWQAkqw
	hWjXwkLIHAMGYHGV744NOFhZt9GztzqkCXDBZ5SgUPe/Xr1jqTJYQekxPL+HCtzxBCwMOjjCHjB
	qjIqUhWY2qERparb/QF1p5+7MFN6OzGCKxwNO6gN2NV+NZG66fhZLZlSeOeQzMRx+DEOo6r/9Jo
	zdjVDGl0iKt/l+kDO2n2EXmWIftEM007/M01FnQKKD8ZKW8SS29iRVxWSIcy0Et68uH5zCR06v3
	ZF/AJTed9BhOat67caIgz0xcuuSwd+HZMThVQCQt4F7cmyy2BCnfvxQBjnXFashtGQ5ejoYSDsw
	n3fpMU3dtnvIfTbPvpN+kvez0Ae7q0/a9cNB0ezWrvYhUNC6fZzqVY8OWQ13E+qCTxioaE+Vr/C
	KQEggeiSGoIX1NenyunAFA//Z7EbY2xbwKCjsFLnxUtDv+K+EpyWw6+yIzp/SJEVO4WRSyIV96A
	/Xjwp5emJIVyI4=
X-Received: by 2002:a05:6000:2087:b0:437:8f37:882 with SMTP id ffacd0b85a97d-4396f1781e0mr22524650f8f.33.1771930056019;
        Tue, 24 Feb 2026 02:47:36 -0800 (PST)
Message-ID: <c388593e-8371-4040-a179-c0bf32ae0696@suse.com>
Date: Tue, 24 Feb 2026 11:47:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
 <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
 <e084cd6f-e76d-40c1-9e30-97e10acae012@gmail.com>
 <541a6c57-406c-49e5-8b8b-019e30bf0d89@suse.com>
 <5e4362ed-c310-442b-a742-ca7c3d1c47dc@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: <5e4362ed-c310-442b-a742-ca7c3d1c47dc@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.02.2026 11:42, Oleksii Kurochko wrote:
> 
> On 2/24/26 11:16 AM, Jan Beulich wrote:
>> On 24.02.2026 10:44, Oleksii Kurochko wrote:
>>> On 2/24/26 9:07 AM, Jan Beulich wrote:
>>>> On 20.02.2026 17:18, Oleksii Kurochko wrote:
>>>>> --- a/xen/arch/riscv/domain.c
>>>>> +++ b/xen/arch/riscv/domain.c
>>>>> @@ -2,9 +2,39 @@
>>>>>    
>>>>>    #include <xen/init.h>
>>>>>    #include <xen/mm.h>
>>>>> +#include <xen/sections.h>
>>>>>    #include <xen/sched.h>
>>>>>    #include <xen/vmap.h>
>>>>>    
>>>>> +#include <asm/cpufeature.h>
>>>>> +#include <asm/csr.h>
>>>>> +
>>>>> +struct csr_masks {
>>>>> +    register_t hedeleg;
>>>>> +    register_t henvcfg;
>>>>> +    register_t hideleg;
>>>>> +    register_t hstateen0;
>>>>> +};
>>>>> +
>>>>> +static struct csr_masks __ro_after_init csr_masks;
>>>>> +
>>>>> +void __init init_csr_masks(void)
>>>>> +{
>>>>> +#define INIT_CSR_MASK(csr, field) do { \
>>>>> +    register_t old; \
>>>>> +    old = csr_read(CSR_##csr); \
>>>> Can't this be the initializer of the variable? Can't ...
>>> I agree that this is change is okay to be done but I am not sure about ...
>>>
>>>>> +    csr_set(CSR_##csr, ULONG_MAX); \
>>>> ... csr_swap() be used here, too?
>>> ... as after re-reading spec again I am not sure that we can do in this way
>>> at all.
>>>
>>> Initially I used csr_set() instead of csr_swap() or csr_write() as csr_set() to
>>> take into account a writability of the bit, so it won't touch a bit if it
>>> is r/o.
>> To me the spec isn't quite clear enough in this regard.
>>
>>> But it seems like this approach won't work with**WLRL or WPRI fields as these
>>> fields aren't r/o,
>> In the CSRs presently dealt with, are there any WLRL fields at all? (I don't
>> think WPRI fields represent much of an issue for the purpose here.)
> 
> Agree, currently used CSRs in this function don't have WLRL feilds, but I suppose
> we want to have the similar treatment (read WLRL fields and reuse what was read)
> for WLRL fields as these fields expect only valid value and so all 1s for this
> fields can be wrong to use.
> 
>>
>>> but they only support specific value and for example:
>>>
>>> - Implementations are permitted but not required to raise an
>>>     illegal-instruction exception if an instruction attempts to write a
>>>     non-supported value to a WLRL field.
>>> - For these reserved fields, software is required to preserve the existing
>>>     values when writing to other fields in the same register. Overwriting them
>>>     with 1s could be considered non-compliant behavior.
>>>
>>> So it seems like we can't just do csr_swap() with all 1s and it is needed
>>> to pass a mask to INIT_CSR_MASK() which will tell which bits should be
>>> ignored and don't touched.
>>> For example, HENVCFG and HSTATEEN0 has WPRI fields.
>>>
>>> reserved_bits_mask = 0x1FFFFFFCFFFFFF00;
>>> tmp = csr_read(HENVCFG);
>>> tmp=(~reserved_bits_mask) |(tmp&reserved_bits_mask); csr_set(HENVCFG, tmp);
>> What I find further concerning is that HSTATEEN0 also may have read-only-1
>> fields. You don't currently cope with that, I think.
> 
> Because of this:
>    A bit in an hstateen CSR cannot be read-only one unless the same bit is
>    read-only one in the matching mstateen CSR.
> ?
> 
> I expect that it will be covered by csr_set() which will touch only writable
> bits and ignore read-only. So doesn't matter if a bit is read only 1 or 0
> it still shouldn't be in the final mask.

But the hypervisor view of the register value seen by guests won't be correct.
Recall that you moved to probing to make sure that the cached values we have
in the hypervisor properly match the values seen by the guest?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:51:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:51:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239796.1541204 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuq12-0004ec-Gv; Tue, 24 Feb 2026 10:51:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239796.1541204; Tue, 24 Feb 2026 10:51: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 1vuq12-0004eV-Dw; Tue, 24 Feb 2026 10:51:44 +0000
Received: by outflank-mailman (input) for mailman id 1239796;
 Tue, 24 Feb 2026 10:51: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=Xb8T=A4=bounce.vates.tech=bounce-md_30504962.699d82b7.v1-b23a52783cba4c85add3ee778284c931@srs-se1.protection.inumbo.net>)
 id 1vuq10-0004eP-NL
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:51:42 +0000
Received: from mail186-12.suw21.mandrillapp.com
 (mail186-12.suw21.mandrillapp.com [198.2.186.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ca2a8756-116e-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 11:51:36 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-12.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4fKvfb3Cf0z705l4D
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 10:51:35 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 b23a52783cba4c85add3ee778284c931; Tue, 24 Feb 2026 10:51: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: ca2a8756-116e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771930295; x=1772200295;
	bh=/TXyyKPvyNOfr9WgduPAeT4QAKdPcNDxmEaL9+XY6V4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=hEGWuuJx06mnWuGy9jyOHEK4isposbcmixKNuQcw+IqljV8Qlq7z5tV0exdnEobli
	 h/y3xvcjrJ5wJXPWLa+H5MN4SvoSwsyhUmR1Mh+UEp/HBLcHS+oh/kBbwunZPl4IHh
	 jisEVSvVF5Rw13H6hMKTAdzNS9bbwWksyEGZZIyRQptOFwd+uSEt6uRYOt2ABkxEx6
	 zp/oNTd8m+RFTaW22Bu9sE1aUjWmyo3suFZOgWRV2zgcO7iF4IFzEqWbVwP1eFAR3O
	 oKuWlWBY2YbmGsSpfywuZjZCGI6sJVGduUv3xTSe5ixGu3cn3GCxeFGJrNlK6uZAiV
	 j6jx3Nr3y7D6w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771930295; x=1772190795; i=teddy.astie@vates.tech;
	bh=/TXyyKPvyNOfr9WgduPAeT4QAKdPcNDxmEaL9+XY6V4=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=JdpH1BRdBB8Gb5jl5Lc22VcPvXAZIv5g0yXZCQ4ChEngdYBaE33vLyV0/+yBxJLSp
	 DgXRCUUISFaTg7pS6OUHIHlzqXUV+UWk2ysd5sfe+5xs75nSAaFpbokg/RUsqOIUPK
	 ANryeeHnTEj5WvAgFLm1uXqBfmkJImguXsfYqz+98ngKIwcVu/Iy14JsSHVRTVOEbq
	 LP/EccPVCK/QWGe78GY8ylqiYfG4BdmIudNE07Lknz1WaQCAmERP1FBjVoLfCwp5Sm
	 r7oQUtHuGLCbnEH7DYiJmtfzInr80WtEmvZJRBC5EJQnPGWy9ft/+ViFKyj/nL18y/
	 S8bsnLYY8ZoFA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[RFC=20PATCH]=20x86/xen:=20Consider=20Xen=20PVH=20support=20in=20CONFIG=5FXEN=5FPVHVM?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771930294336
To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Juergen Gross" <jgross@suse.com>, "Boris Ostrovsky" <boris.ostrovsky@oracle.com>, "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>
Message-Id: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.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.b23a52783cba4c85add3ee778284c931?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260224:md
Date: Tue, 24 Feb 2026 10:51:35 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

It's currently possible to build Linux with CONFIG_PVH|CONFIG_XEN_PVHVM
and no CONFIG_XEN_PVH. That leads to inconsistent kernels that fails with
"Missing xen PVH initialization" when booting using PVH boot method or
display various errors and fail to initialize Xen PV drivers when booting
with PVH-GRUB.

    platform_pci_unplug: Xen Platform PCI: unrecognised magic value
    ...
    # modprobe xen-blkfront
    modprobe: ERROR: could not insert 'xen_blkfront': No such device
    # modprobe xen-netfront
    modprobe: ERROR: could not insert 'xen_netfront': No such device

When built without CONFIG_XEN_PVH, PVH-specific logic is disabled, hence when
booting with e.g PVH-OVMF, Linux assumes we are a HVM guest, even when we aren't
actually one (in the "with HVM emulated devices" sense).

As it is actually possible to boot Xen PVH without CONFIG_PVH; and that most
Xen-related logic exist within CONFIG_XEN_PVHVM; consider PVH guests support
within CONFIG_XEN_PVHVM instead of CONFIG_XEN_PVH.

Keep CONFIG_XEN_PVH as a shortcut to enable PVH boot, ACPI support and PVHVM.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
Cc: Juergen Gross <jgross@suse.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

A tentative patch, I'm not sure of the way of dealing with the KConfig part,
keeping CONFIG_XEN_PVH as a shortcut is interesting, but there may be other
options.

There are widespreadly used Linux distributions that have a similar configuration
to this one, thus exhibit this issue i.e fail to boot.

I'm not sure which commit to target for a Fixes: note.

 arch/x86/xen/Makefile        | 2 +-
 arch/x86/xen/enlighten_hvm.c | 2 --
 arch/x86/xen/grant-table.c   | 2 +-
 arch/x86/xen/xen-head.S      | 8 ++++----
 include/xen/xen.h            | 2 +-
 5 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
index a9ec8c9f5c5d..7fbe17c8ba89 100644
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -33,7 +33,7 @@ obj-$(CONFIG_XEN_PV)		+= irq.o
 obj-$(CONFIG_XEN_PV)		+= multicalls.o
 obj-$(CONFIG_XEN_PV)		+= xen-asm.o
 
-obj-$(CONFIG_XEN_PVH)		+= enlighten_pvh.o
+obj-$(CONFIG_XEN_PVHVM)		+= enlighten_pvh.o
 
 obj-$(CONFIG_EVENT_TRACING)	+= trace.o
 
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..38c2cdfdcc44 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -264,7 +264,6 @@ static bool __init msi_ext_dest_id(void)
 
 static __init void xen_hvm_guest_late_init(void)
 {
-#ifdef CONFIG_XEN_PVH
 	/* Test for PVH domain (PVH boot path taken overrides ACPI flags). */
 	if (!xen_pvh &&
 	    (x86_platform.legacy.rtc || !x86_platform.legacy.no_vga))
@@ -282,7 +281,6 @@ static __init void xen_hvm_guest_late_init(void)
 
 	machine_ops.emergency_restart = xen_emergency_restart;
 	pv_info.name = "Xen PVH";
-#endif
 }
 
 static uint32_t __init xen_platform_hvm(void)
diff --git a/arch/x86/xen/grant-table.c b/arch/x86/xen/grant-table.c
index 5f4060b5a40d..4d717c92b624 100644
--- a/arch/x86/xen/grant-table.c
+++ b/arch/x86/xen/grant-table.c
@@ -149,7 +149,7 @@ int arch_gnttab_init(unsigned long nr_shared, unsigned long nr_status)
 	return -ENOMEM;
 }
 
-#ifdef CONFIG_XEN_PVH
+#ifdef CONFIG_XEN_PVHVM
 #include <xen/events.h>
 #include <xen/xen-ops.h>
 static int __init xen_pvh_gnttab_setup(void)
diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
index 5dad6c51cdc3..e262caac3ca9 100644
--- a/arch/x86/xen/xen-head.S
+++ b/arch/x86/xen/xen-head.S
@@ -162,10 +162,10 @@ SYM_FUNC_END(xen_hypercall_intel)
 #else
 # define FEATURES_PV 0
 #endif
-#ifdef CONFIG_XEN_PVH
-# define FEATURES_PVH (1 << XENFEAT_linux_rsdp_unrestricted)
+#ifdef CONFIG_XEN_PVHVM
+# define FEATURES_PVHVM (1 << XENFEAT_linux_rsdp_unrestricted)
 #else
-# define FEATURES_PVH 0
+# define FEATURES_PVHVM 0
 #endif
 #ifdef CONFIG_XEN_DOM0
 # define FEATURES_DOM0 (1 << XENFEAT_dom0)
@@ -173,7 +173,7 @@ SYM_FUNC_END(xen_hypercall_intel)
 # define FEATURES_DOM0 0
 #endif
 	ELFNOTE(Xen, XEN_ELFNOTE_SUPPORTED_FEATURES,
-		.long FEATURES_PV | FEATURES_PVH | FEATURES_DOM0)
+		.long FEATURES_PV | FEATURES_PVHVM | FEATURES_DOM0)
 	ELFNOTE(Xen, XEN_ELFNOTE_LOADER,         .asciz "generic")
 	ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long 1)
 
diff --git a/include/xen/xen.h b/include/xen/xen.h
index f280c5dcf923..4d066fbf9714 100644
--- a/include/xen/xen.h
+++ b/include/xen/xen.h
@@ -16,7 +16,7 @@ extern enum xen_domain_type xen_domain_type;
 #define xen_domain_type		XEN_NATIVE
 #endif
 
-#ifdef CONFIG_XEN_PVH
+#ifdef CONFIG_XEN_PVHVM
 extern bool xen_pvh;
 #else
 #define xen_pvh			0
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:55:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:55:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239808.1541214 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuq49-0005Fy-1j; Tue, 24 Feb 2026 10:54:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239808.1541214; Tue, 24 Feb 2026 10:54: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 1vuq48-0005Fr-V1; Tue, 24 Feb 2026 10:54:56 +0000
Received: by outflank-mailman (input) for mailman id 1239808;
 Tue, 24 Feb 2026 10:54: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuq46-0005Fl-Rz
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:54:54 +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 3fa699f9-116f-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 11:54:53 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-4359a302794so4000265f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 02:54:53 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483b890041csm21235205e9.5.2026.02.24.02.54.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 02:54:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fa699f9-116f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771930493; x=1772535293; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ePOH8A36hkqSfxtQagWaqy54Akj70pytj4oaHD2xBNY=;
        b=XybILxYKpkJVzZkLzwUdyeMpBrLk+od3iQj+3U/hBlGeZiINLDkuc8aKEZ8WqhkbaC
         tLEtJVmeIVQKuQiZNUMuubKU7xUmEufP+MgBpHoitBLr7CPtakQwRXQoi6G68CzQQUtx
         e3sUR2rNc5neMWwoMybDsyPxhV6CebFBEMpEoboA2JHztgYrrHmqWBhj57LouZTfYY/g
         FQPtPVMnx2W+6rgf4SPLhNE2Sbj3TessiFETfICOawPDG6xbRc8XPM34tzkXaEcVeoTX
         zMndRx+ck2iW+HRu04SrY8AiDh39jyTbkioEkUXavgwZpAOM2TSKfLtS3+DpifNnK7Bv
         Qf6w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771930493; x=1772535293;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ePOH8A36hkqSfxtQagWaqy54Akj70pytj4oaHD2xBNY=;
        b=Dy6jes3u6O4uwBqBCCPQ+5ldQ9DLJ3HK//D6Eem+xSl9yZR7cCgz3BywypbNOBfq/n
         cBre//dvS8na+vBByk3wkNnBztYamlqeitbtHpsV7eOBDDTivdWWmI+CXS0XqHrLi0y9
         n0mSgLxFV7oLaznxAJ//ETm28CPkjRtS3Qq40HUyJdQaq1Kyr5e6jbUZHcCFOMDdLN7T
         2ai6Lqqa29WfYpdMKa5TOZPLzQfmu8gDg1VSX/nrcA60uaZ+cl+LoZ5ttDIMfQ5KsglN
         qNweQrWCY4+fXFy7gpZxZgphJFkDzamREXycXaZM6MEK94VWAMNB9SGUlalLhD82F0iL
         Cqbg==
X-Forwarded-Encrypted: i=1; AJvYcCXvfyyJSOtZ++v2SHbdOIja0WG9YgJwc0U+cNZVGoHpEnwgyI+s7SxyfQI3z6wH7NsZMzaDJtxU1H4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxmTdK4tCSFzVTG4m4Jx1YPc1xnyKc9kpUq+f2u8THqLHU+oVv4
	6QdwNq/wyGKAjjNbYp5YxmbWvZIFln0A1Jj9y6wUixmhTjl8icTdYxHAdMbBZ4HPnw==
X-Gm-Gg: AZuq6aL72+YTdU/A8TzpO6kiSYMs8lJlZ5AmwBYEOH+FdyD2wniDdvywez89XTPPMYr
	XES7bipj99ceO6OycVY/LzBiFIBIZchaW4tveT64PUvyysD2ih5TNJD7fVdhUQKdtypYwOl83xh
	q0NPncxtVnM85GHEOcN3aoSEh5EnirVM8KFARfH+uRW1uvWeV0zIicfCKHlUvAKTgwhdnRejHYh
	1Y00SeWrVxhpqkLm/oL7X6y3JFJCy0DUvuaxWxtpCzwQ1MoTShspKDsL6/w1RJnk0qhGBX0XsAs
	e4L04cso+G/OzYY1S/K5OmVnURmm+DnDKMKprWNBeMQsPwN/ZdNyoCB3aIwAa/mW29gCGsm1KFz
	wGL+3lTqIMT9glBU3BfC2hVf7tVAu+QhnwE4uep6Lyy1QWHDmnua1U6r/uiP4aCIr+6Px14GGkm
	8INnFuSoaPAU2GUWlQecVNCmBxE+ALu9xX/2zCR30Gs6r2kyQxP5vOQFuSV390Uru0T9vnVwDpR
	RoY023aUM0I1rQ=
X-Received: by 2002:a05:600c:4744:b0:476:d494:41d2 with SMTP id 5b1f17b1804b1-483a9605eb3mr179220745e9.29.1771930492602;
        Tue, 24 Feb 2026 02:54:52 -0800 (PST)
Message-ID: <17c88ded-48cd-4642-91a4-03fc4575a7ea@suse.com>
Date: Tue, 24 Feb 2026 11:54:51 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 03/14] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <8c2259991754f219ba030606f39d629eb365b01c.1771590794.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: <8c2259991754f219ba030606f39d629eb365b01c.1771590794.git.oleksii.kurochko@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 20.02.2026 17:18, Oleksii Kurochko wrote:
> Based on Linux kernel v6.16.0.
> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
> we want to guarantee that if a bit in irqs_pending_mask is obversable
> that the correspondent bit in irqs_pending is observable too.
> 
> Add lockless tracking of pending vCPU interrupts using atomic bitops.
> Two bitmaps are introduced:
>  - irqs_pending — interrupts currently pending for the vCPU
>  - irqs_pending_mask — bits that have changed in irqs_pending
> 
> The design follows a multi-producer, single-consumer model, where the
> consumer is the vCPU itself. Producers may set bits in
> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
> performed only by the consumer via xchg(). The consumer must not write
> to irqs_pending and must not act on bits that are not set in the mask.
> Otherwise, extra synchronization should be provided.
> 
> On RISC-V interrupts are not injected via guest registers, so pending
> interrupts must be recorded in irqs_pending (using the new
> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
> HVIP before returning control to the guest. The consumer side is
> implemented in a follow-up patch.
> 
> A barrier between updating irqs_pending and setting the corresponding
> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
> that if the consumer observes a mask bit set, the corresponding pending
> bit is also visible. This prevents missed interrupts during the flush.
> 
> It is possible that a guest could have pending bit in the hardware
> register without being marked pending in irq_pending bitmap as:
>   According to the RISC-V ISA specification:
>     Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>     interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>     is an alias (writable) of the same bit in hvip.
>   Additionally:
>     When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>     zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>     hie.VSSIE.
> This means the guest may modify vsip.SSIP, which implicitly updates
> hip.VSSIP and the bit being written with 1 would also trigger an interrupt
> as according to the RISC-V spec:
>   These conditions for an interrupt trap to occur must be evaluated in a
>   bounded   amount of time from when an interrupt becomes, or ceases to be,
>   pending in sip,  and must also be evaluated immediately following the
>   execution of an SRET  instruction or an explicit write to a CSR on which
>   these interrupt trap conditions expressly depend (including sip, sie and
>   sstatus).
> What means that IRQ_VS_SOFT must be synchronized separately, what is done
> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
> PMU isn't supported now.
> 
> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
> IRQ_VS_EXT), the specification states they cannot be modified by the guest
> and are read-only because of:
>   Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>   bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>   the logical-OR of these interrupt sources:
>     • bit VSEIP of hvip;
>     • the bit of hgeip selected by hstatus.VGEIN; and
>     • any other platform-specific external interrupt signal directed to
>       VS-level.
>   Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>   bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>   logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>   signal directed to VS-level.
> and
>   When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
>   Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.
> 
>   When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
>   Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
> and also,
>   Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
>   bits for supervisor-level external interrupts. If implemented, SEIP is
>   read-only in sip, and is set and cleared by the execution environment,
>   typically through a platform-specific interrupt controller.
> 
>   Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
>   bits for supervisor-level timer interrupts. If implemented, STIP is
>   read-only in sip, and is set and cleared by the execution environment
> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
> and vcpu_unset_interrupt(), and flush them during the call of
> vcpu_flush_interrupts() (which is introduced in follow up patch).
> 
> vcpu_sync_interrupts(), which is called just before entering the VM,
> slightly bends the rule that the irqs_pending bit must be written
> first, followed by updating the corresponding bit in irqs_pending_mask.
> However, it still respects the core guarantee that the producer never
> clears the mask and only writes to irqs_pending if it is the one that
> flipped the corresponding mask bit from 0 to 1.
> Moreover, since the consumer won't run concurrently because
> vcpu_sync_interrupts() and the consumer path are going to be invoked
> sequentially immediately before VM entry, it is safe to slightly relax
> this ordering rule in vcpu_sync_interrupts().
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in v5:
>  - Update the commit message().
>  - Rename c to curr.
>  - Update vcpu_set_interrupt() to use test_and_set_bit() for irqs_pending
>    bitmask too.
>  - Move #ifdef CONFIG_RISCV_32 above the comment in vcpu_sync_interrupts().
> ---
> Changes in v4:
>  - Update the commit message.
>  - Update the comments in vcpu_(un)set_interrupt() and add the the  comment
>    above smp_wmb() barrier.
>  - call vcpu_kick() only if the pending_mask bit going from 0 to 1.
>  - Code style fixes.
>  - Update defintion of RISCV_VCPU_NR_IRQS to cover potential RV128 case and
>    the case if AIA isn't used.
>  - latch current into a local variable in check_for_pcpu_work().
> ---
> Changes in v3:
>  - Use smp_wb() instead of smp_mb__before_atomic().
>  - Add explanation of the change above in the commit message.
>  - Move vcpu_sync_interrupts() here to producers side.
>  - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
>    is called.
> ---
> Changes in V2:
>  - Move the patch before an introduction of vtimer.
>  - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
>    vcpu structure starts out all zeros.
>  - Drop const for irq argument of vcpu_{un}set_interrupt().
>  - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
>    could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
>  - Drop IRQ_LOCAL_MAX as there is no usage for it now.
> ---
>  xen/arch/riscv/domain.c             | 75 +++++++++++++++++++++++++++++
>  xen/arch/riscv/include/asm/domain.h | 23 +++++++++
>  xen/arch/riscv/traps.c              |  4 ++
>  3 files changed, 102 insertions(+)
> 
> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
> index c9494db0fbe7..335c41f3e5a1 100644
> --- a/xen/arch/riscv/domain.c
> +++ b/xen/arch/riscv/domain.c
> @@ -6,6 +6,7 @@
>  #include <xen/sched.h>
>  #include <xen/vmap.h>
>  
> +#include <asm/bitops.h>
>  #include <asm/cpufeature.h>
>  #include <asm/csr.h>
>  #include <asm/riscv_encoding.h>
> @@ -140,6 +141,80 @@ void arch_vcpu_destroy(struct vcpu *v)
>      vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
>  }
>  
> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
> +{
> +    bool kick_vcpu;
> +
> +    /* We only allow VS-mode software, timer, and external interrupts */
> +    if ( irq != IRQ_VS_SOFT &&
> +         irq != IRQ_VS_TIMER &&
> +         irq != IRQ_VS_EXT )
> +        return -EINVAL;
> +
> +    kick_vcpu = !test_and_set_bit(irq, v->arch.irqs_pending);
> +
> +    /*
> +     * The counterpart of this barrier is the one encoded implicitly in xchg()
> +     * which is used in consumer part (vcpu_flush_interrupts()).
> +     */
> +    smp_wmb();
> +
> +    kick_vcpu |= !test_and_set_bit(irq, v->arch.irqs_pending_mask);
> +
> +    if ( kick_vcpu )
> +        vcpu_kick(v);
> +
> +    return 0;
> +}
> +
> +int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
> +{
> +    /* We only allow VS-mode software, timer, external interrupts */
> +    if ( irq != IRQ_VS_SOFT &&
> +         irq != IRQ_VS_TIMER &&
> +         irq != IRQ_VS_EXT )
> +        return -EINVAL;
> +
> +    clear_bit(irq, v->arch.irqs_pending);
> +    /*
> +     * The counterpart of this barrier is the one encoded implicitly in xchg()
> +     * which is used in consumer part (vcpu_flush_interrupts()).
> +     */
> +    smp_wmb();
> +    set_bit(irq, v->arch.irqs_pending_mask);
> +
> +    return 0;
> +}
> +
> +void vcpu_sync_interrupts(struct vcpu *v)
> +{
> +    unsigned long hvip;
> +
> +    /* Read current HVIP and VSIE CSRs */
> +    v->arch.vsie = csr_read(CSR_VSIE);

What is this needed for, btw? There's no consumer of the field, and the register
can change right after re-entering the guest.

> --- a/xen/arch/riscv/include/asm/domain.h
> +++ b/xen/arch/riscv/include/asm/domain.h
> @@ -54,8 +54,26 @@ struct arch_vcpu {
>      register_t hideleg;
>      register_t henvcfg;
>      register_t hstateen0;
> +    register_t hvip;
>  
>      register_t vsatp;
> +    register_t vsie;

Somewhat dependent upon the question above, might hvip and vsie also better
sit close together?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 10:57:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 10:57:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239817.1541224 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuq6m-00060u-EI; Tue, 24 Feb 2026 10:57:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239817.1541224; Tue, 24 Feb 2026 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 1vuq6m-00060m-AN; Tue, 24 Feb 2026 10:57:40 +0000
Received: by outflank-mailman (input) for mailman id 1239817;
 Tue, 24 Feb 2026 10: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=Lz8P=A4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vuq6k-0005zG-9b
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 10:57:38 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 9e056b62-116f-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 11:57:32 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB5845.namprd03.prod.outlook.com (2603:10b6:510:32::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Tue, 24 Feb
 2026 10:57:28 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 10:57: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: 9e056b62-116f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=b7Svw5bOKXpj+Q7c4ebMPL3z1n1YRbLEM2uWL5jUYv4Ue18oHfjxR4Rb0f1tg/bSPf7XJk2OEqyfcdmwBUEgpNKUZ/wB8D4enKIASDtyoLwcEYukj0KWu3Whwlc5oLNcPlFZVcwPbR8+WHjI87y4+Oyp+uTxbVQwKn+a1UQa2xEGBP4KwfHE5WCSZs+/El6stEKzs8krUu256z+UmEomW7o21dNKK59Xl6auU2TIoA8T/cAPFCwVgdKSg6tZjZ0lcxpsuXwe8aXOvz3YIo1l0B3Fbv9yxbyhtqsPn5CdgEyvJ/l4yM8PcFXJnBv5KNoniMJyY7UKjqCZutPpju4pLg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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+gX87f5tZhQR77cjIOkA8Le0ToC2nyq1mKv0XAHSck=;
 b=em5aCx1zauht/Jlo8vAyqoY8QruztnjeYcnIgX5uk9Jb2RDpKt/235Owpxo5d/6wSWUXXvkrcNlITdV0/E1hJyN1r5AoFt4MiLlw65v159Fq2hX4LY2afIvRhdz+L7YE4KX+3qbfIlYPf3GEISQbmEgt5pBFFNbP8BZ8URgE7TLX9whc6CuRBmNIeDtRNmWJNNpTtfJ/QviuB0sr3MJZpV/CvvExb2J2NDroSt0tIOoaZK/XvmxoOv+2awkZa7YoizGFS9F/BcYkdnj+aYvRac6sOhi5vpmyyfhWDgxI9ZsPVA9CzE/+BkNpC6caX8uEKIxjnbW2YkifCrkyVxUQHg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M+gX87f5tZhQR77cjIOkA8Le0ToC2nyq1mKv0XAHSck=;
 b=a4u0yX31Rium7hsOyhHweiaQ6Amdn+rVAPz2ulL5Qnwo3qHRiiVJ+Oe6SDil6ohnXjrL1vh8/f81yVeZ91RIPpuxYCJNQpUXyPAokCFIdr3XkGzUBrWr2dlr3+4Kmlz4i0C0OB8NxDvDLQnaZTiCedk5CdZYtI2/mm/8WH2SIgU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 24 Feb 2026 11:57:25 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Stewart Hildebrand <stewart.hildebrand@amd.com>
Cc: xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2] vpci/msix: check for BARs enabled in
 vpci_make_msix_hole
Message-ID: <aZ2EFPfdv-_1IT-R@macbook.local>
References: <20260224025626.26909-1-stewart.hildebrand@amd.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20260224025626.26909-1-stewart.hildebrand@amd.com>
X-ClientProxiedBy: MA3P292CA0047.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:48::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB5845:EE_
X-MS-Office365-Filtering-Correlation-Id: d4959dc5-3618-4e62-38da-08de7393800d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bS9qVGRLTzFyQlZNc0kwRkhmWWI3aGNRRTNmZGJnOC82UEthZmwxVlZlcmJQ?=
 =?utf-8?B?K1FOSmd3YTBpdStCV1phcElMN1ZCSkZHTy8xT2VxTG12YjdLajJJVldpRDFp?=
 =?utf-8?B?aTFUbVRtUlczWHV6alZyaEtud2JxUC81M0ttazRGWlZYM29YK1lTbElIZnRw?=
 =?utf-8?B?b3BYTFZVSXJDSjZMYk5sVUFrNzJBZ2QyRmVGeVl3VGNPem5rUis3TzhyQ3Yz?=
 =?utf-8?B?SW0wYXVmTEVzSEYveUYwR3FOMFJQNHQvcmRNRGhHdWJaaWp4dkgwSHZTOUZR?=
 =?utf-8?B?V3dJRnZuWktHazlmR1NoeWkwYS9XcWdERFpXWVo4YUtLR0tzZVdEcGxOUjhi?=
 =?utf-8?B?blJIazBmOUNiVHRUcVdiSkFkU3ZVZE8rQ2FiU1ZWcVRydUM2WTZTQTVpaHJF?=
 =?utf-8?B?N2xWZ1JMdEh6ZDZET1NQV2RyM0pLMGpjakNRREZyZGJLcnc3di82ODF6b1JS?=
 =?utf-8?B?NWk0Rk8yY0VGM2ZQN2Zmd1VGdGRCU1pvWjR4ekZXamY0TlE5L2lCSUlmcEV3?=
 =?utf-8?B?TEx4YUpPRStnTnY4dXdoL090eTNVajVOUHV4Mk94eFdpeUhVdVRMaHdoU1Y4?=
 =?utf-8?B?ajJvL0xodXVnOXJxaE5WejQyczI1OXc5V1IvWVFRdUR5dm5DTmNvalR1eFBj?=
 =?utf-8?B?d0xySjM3SitVYzB6VXBMYVpJaHkvZVUzWEdxMlNCMkR2QzIxck9iRnBYRGV0?=
 =?utf-8?B?b25NSDhlcXU3bFlvcWJWYWF3dkFVNllpd2laYkFPOXdIdFg0Q3J6TmpiUklW?=
 =?utf-8?B?eHNsellaemdZMVQwMkowMWFCanp3ZmJMVDZha3QxZSt1czZzZHZjMUNCWk1L?=
 =?utf-8?B?WDNhOVFIQm5hVHYvN3hOUXFNMC9EUVlqTXdLd1l5cnJsQW1LQ09XQ21NNDZH?=
 =?utf-8?B?anY2SE5QTE01dXRVRWVXNURZaDc0c2xqWUUxZkZvcmZqNDVLTFkzUlJkNHAx?=
 =?utf-8?B?blp1dFFoVm9rK2oxdytldFYyUHpLZDA1azV3VHhlMU8zYjVjZDY3NXYrSDha?=
 =?utf-8?B?OEVCczRhS3dOOWpNMU95SW85UlVJYy9VQ0Rucm1GZGtpRnNDdXIwQkNhdGNn?=
 =?utf-8?B?L1JDUEFQT1dTWVlqQ05lZHZDTEVjSklHTWFFL3ZtWUpRbGJEOU5ObUJORTA5?=
 =?utf-8?B?VWxTaXNZSTdjZk8vQi9xWHpuRUhqdG9CRERlN0RtZ1FtcmdsREQwZ1A3UUlK?=
 =?utf-8?B?QmtMNHpweGVzTG4waExZbWFJdEFkYlA2THpwV0ZzMGpndjJQRGYvUVN0eUk2?=
 =?utf-8?B?dll2VW51M3JkQlBDVUlKUDBsOWhCUEp2NWFIUlViZk5zMDZ4cUxncW5JMWM4?=
 =?utf-8?B?bGpsUWZUZEJWTG9ZSU51bmhzbHFoc0hzemZIWGk5TTVGbGJLRVZmcCtoV3JQ?=
 =?utf-8?B?ZjU4cnN5RUhtSUpBUjFtY042WnhCZjkwVVFaYnBoRlBpampqWmNEYWo4T0tN?=
 =?utf-8?B?SDdkZlhLbXJvY1NXa2JObktYMndvSm1ZWkVLdml4bVNTbzV0TzV0Um5Ebmcv?=
 =?utf-8?B?YVdsOFRqQjFidnFVRGJmRWhIOXNKRmlvWXVqWm1sempxYm9nSGFxbEREb3Vt?=
 =?utf-8?B?MTBKemp6c3YwdGM4VE9UN1ZpemlKV3NGelNnODVvWk11alN5ZUduSWpxNFp0?=
 =?utf-8?B?VGxSSHh1V0l2NjVPOFdCYlU4SktoRHR1WnUzVzdHU1dUNHM0WkFFWTNucUZl?=
 =?utf-8?B?b1FHVlVpQW1JMTc1YzA2SUFEZzNlbFpxZTZQWC85YUhSZkRDQ0RPRVFUVXcw?=
 =?utf-8?B?bkliYzkzZG9MVFQvRUp6em9QaFB5Rnhjclhyc3pTbTVYaDQ1ZXhjUkRTR0Zt?=
 =?utf-8?B?Q01pMzhEbXRCTTA5T0k4YU1kbi9DbUJGR3N1bmZrUEFoYjRKY25MT2IrbU5M?=
 =?utf-8?B?RVNoVTlqdWxiajljQ2xaSXFQMDJvUjBwamZIL0h2Y0x5Tm9ZN1N2NWMvdlZl?=
 =?utf-8?B?Z3FCL0VJdS96czB4dlEyWEQyd0NLQTB0NFovdG5lWUd6N2h2ajkrcFFZVTE1?=
 =?utf-8?B?RlhjM1VuYWRmWXJCSDM0T01yUFpEL2dTdU5Fd2JLRkhCSHZNbHQrbkNXb3Nj?=
 =?utf-8?B?bENjYmtlcFdPOUVLRWw5Nys0Ri8vcmlQZkZaU1NhSmJCNjZlZWlBMWJlU2xu?=
 =?utf-8?Q?z/3E=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YUJIVFlMcjRZMS9KTjNINThVNE5DeHNwZVAxUSs5TFd3WTh6NFQvZDdmYmxF?=
 =?utf-8?B?emZMdW9WSmVQNDJGV0U2OW9jM1BmeWVya1JNdHkwZWFZdmlvSXpWQ0FLWmsx?=
 =?utf-8?B?eENmZnZUQnpiYm5hem9XMytCOW9sNDF5N040c2lyOXNMalJvc3kxYllwUys3?=
 =?utf-8?B?d0ZHRmRHa1l4dkIxWHVjeTFUSUpwa1p2Y3ZTek9kWm5zaVB3aFZFaVZLZVNz?=
 =?utf-8?B?V2psbEY0N3hPSXFvL0hQZnVCMWNMbnFLTUwwUDkzYXJvMTN1czRNTjdpNWRD?=
 =?utf-8?B?dFlCZmU1QUxKdmlBT0FEZHdhQ2p2VXI5dEZVZmx6SlhVR0ZLck4rT0c2ZUhD?=
 =?utf-8?B?cU9lYkpBY081TGVXcTI5UktyNTN3QnFtdlkycFVQSWYyd3NMTGl1OGQrMVJ3?=
 =?utf-8?B?R0lLZFgxV0wrUWVsblc4ZnpIUFU0cmQ3S3Q5T1dTQ2h1ZHcvQTREd2ZHWS9x?=
 =?utf-8?B?dXg1cHB2U2NUTVhNWG1tOTBOTkpJcmFxeWNmWTJ1Ri9jY1N5TE1jQ2tCQ29B?=
 =?utf-8?B?b2dyM1RyV01aQ3UrRUZPTVQ3UTdlTEtmeTg2VWVnYk05VFgyNGludk1Yd1Z2?=
 =?utf-8?B?aHFoVzBpWlNVL2xEMHpjUmRYYWhuNm9JMFJjRVpPL01oeEVGZ1ZWR2QxeEJP?=
 =?utf-8?B?ZXRibmFlai9iSXl6cktEZi9YS3JLanA1OGxRQ1I0bVV2RFhGYnhoa2RrUW42?=
 =?utf-8?B?UjFZOEc5QUJuaHlYbDlwSkxKYk5EMDZZL0FBMHNrbDcyVHdGVTR2b2JZblUv?=
 =?utf-8?B?bzhCU2czbEZ3SlVLMDJjUDdzUnh1WjFMTFJOZTFGK1VGVVU2Q09YTHZZTG03?=
 =?utf-8?B?eDVsWXBDV0dXOEFzSzlvOUFrN09ydFlvajk4NWhFUSt0SDcybEZEaVpQZFhN?=
 =?utf-8?B?bENIQThjbER0Y0g3REFUcGdXWXlsVkxnMkRsNlRZd3p3emMyd3VSdjVPTGRF?=
 =?utf-8?B?RFVmMDZhZG40K1QvekNUc0dOaWZWWStjYmFXWjF2alQyTUpSODdIOTNMNHdT?=
 =?utf-8?B?alkrSW9RdE5SMmIwaFEraFltQno0MVRPR0JEOWoxc3p5ZUpOTDFYaEtTS21I?=
 =?utf-8?B?c3R6eG5OVW9kQ3hkd3dZbWs4SVlpNFVKQjVnWnFpQVBXb2R2R05zS0d1R281?=
 =?utf-8?B?ZVpkK1ErRUF5WUJFaUJYQi9uSXUrRHdRd3lLMHh5RkxDMjBOb2M0Q2svTzJG?=
 =?utf-8?B?eis0Q0h3TUNPREJQYUVFOTBRdEg4bzhNSjZZcnExcjFxY2hVRDhucHpIckdU?=
 =?utf-8?B?QzljSU9zNGlGNHhIZEJ6bWpqNm1vTlVEZy9NZEtoS0oyVDdBV2hacS9wTDda?=
 =?utf-8?B?OHB6RWFOTHVBR01YaUhPM2FHM0NLeWkwQTg0VFVVaWxDbmpyQ3VRYnIxdnIx?=
 =?utf-8?B?WkpYamMwNnAwTlNhUE5qMHhSSDlCdlYvRFVrbzN1Y2VhSWRNcWd4ZStmWmIr?=
 =?utf-8?B?eUJBamFJdlhmSllYUlF2c1V3UkUzTTFpL0pVY3BNTzVkUlViV0cxTlNaZi96?=
 =?utf-8?B?VldMWmlaYlBxNTgwVktpUUp4U2NPVGc5MkhIdys1WVgzYUFuYXkwMkkvWFRK?=
 =?utf-8?B?ZVhHQnFUQTZhZUxaOTlxSVJxQkpHdHM3eEdLL1hrMGhOTm1vMXRGa1VibUdP?=
 =?utf-8?B?YjlYMUI4SWtWUTBYeERvaDlsVWk5SWd1SzhWZmh5alF0UzVTcXhtK1VoYkhi?=
 =?utf-8?B?dHdmZWREdGN2UXpMK1UrL3IyVnR4S1ZBM0w5eXBNV2pWTFpEZ1VsQVN5UXRl?=
 =?utf-8?B?enN5bWYrZFRFQm13T3VDWlRVMjJPeWU2WFU0UXlqOVEyZXUyL1BqOXJhZmRp?=
 =?utf-8?B?c08rcWRyZjVielJSTExqb0xoc0dJdlVEZDFPc0tmMi9vSkNmUVNJbmh5OWND?=
 =?utf-8?B?VS9mQ3pKL014L2dGKzkzTWdPOWFpSUtReFBoMmROMWQ1M0lmdlZLcVhUR0l6?=
 =?utf-8?B?RVYxVy93M0pqMjRqYlFzM01mdXV1b1doaS82RlphNUZYQWdwVHhRcm5UNHVC?=
 =?utf-8?B?L05SMFBCSnkrLzdBVkdXMEFpV3FNQ2w2UWdKUE0yRm1OUHk5enBMWk1MVWlL?=
 =?utf-8?B?Q2VQNVljZ0svWi9OWlc4SjZHcFNyak02WklaUlBnM0tVeEprZGl0M1gyYjY2?=
 =?utf-8?B?V0hYWUN4RnNYNUtWOThOUVpvRS9wckxRUExMTGJtczlCNmFTOTIrOXJraTkx?=
 =?utf-8?B?SE5uZlpkMUlqWFlZaWFOSkJiaWI5S0lmVHd1SnBaZWZxTWlMR3NRNXRVSE84?=
 =?utf-8?B?VThDMmFtR1k2UXNGV0ZmUFZaam1LSTBIT2lBSkU5OGpzZkxpeTJ2eGh1NDhS?=
 =?utf-8?B?U2NoNFNyWTVqamZhNTljOGZRSGp6TEVDR1RWMzQraWFBTjhzTjhzZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d4959dc5-3618-4e62-38da-08de7393800d
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 10:57:28.1017
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: X3sxwdt7cQTwG2qQoFg8+lS9RHDOlKul0ooyezMk3hGApmC5YFqvBzugfUVLBiamlnOE0FWJRZl4YW+BMUixPQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5845

On Mon, Feb 23, 2026 at 09:56:24PM -0500, Stewart Hildebrand wrote:
> A hotplugged PCI device may be added uninitialized. In particular,
> memory decoding might be disabled and the BARs might be zeroed. In this
> case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
> unconditionally attempts to punch holes in p2m, leading to init_msix()
> failing:
> 
> (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 attempt to punch holes if the BARs
> containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
> for checking if a BAR is enabled, and add a check for the situation
> inside vpci_make_msix_hole().
> 
> Move the vpci_make_msix_hole() call within modify_decoding() to after
> setting ->enabled.

I would maybe make it clear that the movement of the
vpci_make_msix_hole() call in modify_decoding() is due to the extra
requirement added in this patch that ->enabled must be set before
calling the function.

"As a result of the newly introduced checks in vpci_make_msix_hole(),
move the ..."

Or something along the lines.

> 
> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
> ---
> Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2344925375
> 
> v1->v2:
> * new title, was ("vpci/msix: conditionally invoke vpci_make_msix_hole")
> * move BAR enabled check to inside vpci_make_msix_hole()
> * introduce vmsix_table_bar_valid() helper
> * move vpci_make_msix_hole() call within modify_decoding() to after
>   setting ->enabled
> * split typo fixup to separate patch
> 
> v1: https://lore.kernel.org/xen-devel/20250812151744.460953-1-stewart.hildebrand@amd.com/T/#t
> ---
>  xen/drivers/vpci/header.c | 26 +++++++++++++-------------
>  xen/drivers/vpci/msix.c   |  4 ++++
>  xen/include/xen/vpci.h    |  6 ++++++
>  3 files changed, 23 insertions(+), 13 deletions(-)
> 
> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
> index 739a5f610e91..6a28e07a625b 100644
> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -122,19 +122,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];
> @@ -164,6 +151,19 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>              bar->enabled = map;
>      }
>  
> +    /*
> +     * 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
> +
>      if ( !rom_only )
>      {
>          pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
> index 516282205a53..142cfbae59d5 100644
> --- a/xen/drivers/vpci/msix.c
> +++ b/xen/drivers/vpci/msix.c
> @@ -598,6 +598,10 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>      if ( !pdev->vpci->msix )
>          return 0;
>  
> +    if ( !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_TABLE) &&
> +         !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_PBA) )
> +        return 0;

As Jan pointed out, this needs to be moved inside the loop.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:01:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:01:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239828.1541233 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqAd-0007d7-0h; Tue, 24 Feb 2026 11:01:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239828.1541233; Tue, 24 Feb 2026 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 1vuqAc-0007d0-UM; Tue, 24 Feb 2026 11:01:38 +0000
Received: by outflank-mailman (input) for mailman id 1239828;
 Tue, 24 Feb 2026 11:01: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuqAc-0007cq-Am
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:01:38 +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 2ff6c330-1170-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 12:01:36 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-4359249bbacso3834955f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:01:36 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4398a292babsm2118122f8f.37.2026.02.24.03.01.30
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:01:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2ff6c330-1170-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771930896; x=1772535696; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ElKe/Cp1IiSTxL9VlQnhHLXInJYjUc4U9nMVkU2hshk=;
        b=ArxcyjNjFQKtlk3G7lOXBDcHe+fH2ml3fXliGGTkEn0pkE6fzvQaSVEhD4if6SD9FT
         njWQ3x3BZJ3dTXS+bGCaUDEcRlXH4GqcKKQTREPh8uIiteBLMrNsEc/zR78upMtGyHsq
         fYe/nD64PxmYSXASwCWrIfsxcoZlacrU0KnrV7w/dpQySqP7Hf5Vd99MV6E68pQQ9z6P
         m5I8m3m8XWYwe6g6Fh5kjPfWyoEmuO4doeA0q3xxSNJwFhrlZpPRN0HjU+Avqo6j+Z7M
         Ozo6NtPraWOq+8PEy+5gcFBYZWAEkEcCUGTlgwgfDT/dirUrFGTvql4D819l23KVv5O3
         E6OQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771930896; x=1772535696;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ElKe/Cp1IiSTxL9VlQnhHLXInJYjUc4U9nMVkU2hshk=;
        b=pTa78jsU8joqYnhq0jMLYar1t4wqr6RW19J16gyoQE1LkBo07TANlX7+CYpZpEQ42A
         Yzl39kPy5IUZk/M/zSdx4MC/Mu33mfJ0v6ryIm/hHkiAjgCSmQB+BYS0PyTqaEjXWA0+
         461T5JEreK4A+ljVHbluymMsaVoItpndqfKf+B3ajC9m6tD3OGSJQ96sGy6Qt9G4SGv7
         lLolzKZus8LwvXhJi1mAyzWzkYbMIIeqj+sH3e7TqB5FuwdXn0DoLTxUuy+fW3uHloJ7
         AEisqpcHYnyEB4+jCxoQapAoY6dODvANfGwuQAk1J+AuIGPBSnjEazc3rYdhWgKgpvX5
         ZcSQ==
X-Forwarded-Encrypted: i=1; AJvYcCWDB6qQQtbL2UeOKPh8fr+jLuSYZ5rhCwTIc21o+3OQtJOQR9G1vN36WRysRfR1R7RCZEBKrexw9vY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzZsn9tHJEdSQq+VXrcPS2j1EkTyN0qoE8uPk1BFikzVkLycsPA
	W2jGSa7LMKiS3ur+18sS2/nsf/TyewNf6BweJO3bEcjHgP2T7uLndBB0P4S0c25DVg==
X-Gm-Gg: ATEYQzwxKkkIkKgyekSQejuzX30Fj6XU0uDZSkGxIE8af8eTBfVMtixgXcDVYbrEw6O
	/v9hX6KLxJ5Fd56eLRyDjDKWks4NUgyBBAh4Urppr7NAC1rbGs6FzzzQOhdOVPXh7MmoaHTjcqX
	BSPoe9hdPEBLVDkt5mq+i7Y36i2VjucIlrm3QxzE2uW/2Zj/wnP6T6bjPnTOuI1fMNTSSpU3V5u
	vc+uCF93yjejVBhRONzcY2wqzsHppNGEgKAqMJRmEs+l/GSlGu2kN/NZ7gUYYWNRKtbEONHvr89
	JusbAAxqWH4bBW5Ar6GPOryzjdEgaiMWkBTTIDj/37S6D2Fk1B4h3CxfGLQnfqA3ZTIGr9SzqZ0
	RKbMeL04+TIAO14s2qHm195W4mrehakqAZ2JZ6kztNuemo+D0N5QVBQTYH9hPl7hR02GXzkuDnI
	rOr4fLWplP1Q8ocZemB5qJqnuo6isND2JCwqqIv6chlC5KV3CTfMYM4NxlNNw9F8Uqnl6Ybq1S+
	/9IyHMeOIA+JhYSlCX50WJV1A==
X-Received: by 2002:a05:6000:25c2:b0:437:6c0c:346c with SMTP id ffacd0b85a97d-4396274ec1cmr33657524f8f.28.1771930891039;
        Tue, 24 Feb 2026 03:01:31 -0800 (PST)
Message-ID: <3a08a2d0-a18f-40e1-b9bf-9b71e0c797c0@suse.com>
Date: Tue, 24 Feb 2026 12:01:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Juergen Gross <jgross@suse.com>,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.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: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.02.2026 11:51, Teddy Astie wrote:
> It's currently possible to build Linux with CONFIG_PVH|CONFIG_XEN_PVHVM
> and no CONFIG_XEN_PVH.

In which case, how can you expect Xen PVH to work?

> That leads to inconsistent kernels that fails with
> "Missing xen PVH initialization" when booting using PVH boot method or
> display various errors and fail to initialize Xen PV drivers when booting
> with PVH-GRUB.
> 
>     platform_pci_unplug: Xen Platform PCI: unrecognised magic value
>     ...
>     # modprobe xen-blkfront
>     modprobe: ERROR: could not insert 'xen_blkfront': No such device
>     # modprobe xen-netfront
>     modprobe: ERROR: could not insert 'xen_netfront': No such device
> 
> When built without CONFIG_XEN_PVH, PVH-specific logic is disabled, hence when
> booting with e.g PVH-OVMF, Linux assumes we are a HVM guest, even when we aren't
> actually one (in the "with HVM emulated devices" sense).
> 
> As it is actually possible to boot Xen PVH without CONFIG_PVH; and that most
> Xen-related logic exist within CONFIG_XEN_PVHVM; consider PVH guests support
> within CONFIG_XEN_PVHVM instead of CONFIG_XEN_PVH.

XEN_PVHVM serves a different purpose though, iirc.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:13:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:13:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239842.1541252 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqMB-0001F5-2k; Tue, 24 Feb 2026 11:13:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239842.1541252; Tue, 24 Feb 2026 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 1vuqMA-0001Ey-W5; Tue, 24 Feb 2026 11:13:34 +0000
Received: by outflank-mailman (input) for mailman id 1239842;
 Tue, 24 Feb 2026 11:13: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=6gRX=A4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vuqM9-0001Es-R5
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:13:33 +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 d9f9b4a4-1171-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 12:13:31 +0100 (CET)
Received: by mail-ed1-x531.google.com with SMTP id
 4fb4d7f45d1cf-65f73d68faeso260016a12.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:13:31 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65eaba1375dsm3353032a12.21.2026.02.24.03.13.29
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:13:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d9f9b4a4-1171-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771931610; x=1772536410; 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=h7K9r/SFNMchbVy3fk9vQLTjGEoLV0NuDbmHKRZEo+Q=;
        b=Cs4YBksIunWsYyhSRPS0OX7/QpqKSLuKPWPfYG0TQyrD9zhP0haZRlndlXuj53SOtx
         DcpThwGEhlP2TFLsHbBUEO8Y3MbugZgfKmKq7HdR6oOr8wbZoYi7T7JHVcko7wc92MEB
         UzQWlkkkUelTLQqFBu/LAFiiTTxkUwC4AKVPSfsC9YBbTvMCONOnXpeYR+tnCAxMCqYM
         wxAlbQI8hXtKFCRGH/6oxma1B7IkzuCzmKARDmWKPNV44NGIsrrwSS8ioMdPYpCvpMyH
         ibPkPpSSxtizphrIjoYppBgFnGLGD1eHVOG9GeIV7I/5ECVsAr0miP4Q3upaykeAyFAg
         R/tQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771931610; x=1772536410;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=h7K9r/SFNMchbVy3fk9vQLTjGEoLV0NuDbmHKRZEo+Q=;
        b=hlwiCMYuIIlvYTFimh12JkQq9n8Be8Cjw163NTS28lMjKBOAnJNBwpI0txMliZWI58
         McjjmTYnwWXRGR3cmBfzjOJmypj9QTghHK61B39RWTch/QMWiPfYharPGbQS6YgSxldA
         /J2uhGHfP1k2TXG7xSRmclgM70DmsoOC2CdUTZiMTbrbkmX7zI0Ll+Yy+mgRYvTsOuoM
         UWIc7uv5WhIBMTE+vk2sw0+2sNsK1lZHptW+QxB7zFW+lZZOzFs3Hc7WQtXdjIIgcbCr
         0vIDONpIXdnWtqvnkPfNOavBpfkz8YHgpHM9OzMuzgSa/C0e5Lq2uEBBCZfGq0MuX9L5
         ztPQ==
X-Forwarded-Encrypted: i=1; AJvYcCX1NPUEflNPYtGHCC3buO52j5uPtT9Fwpk+ZapuUbTUpl9vZ8p13a8JIcHpQ4Wn2PdKSMEgRWXrhUA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzFAmId/z6+ChfPT0ysNTaiSriKs+fCeHeizIfHfrPLu74whQNQ
	3+xH0jXe/nz6NdtHTLfQhBd0OQOxbqe7uyTuMhW6e2S6T2jikJN2a0T/mHfW6uVlPjI=
X-Gm-Gg: ATEYQzz+W6Nutnuw98XgIMALlBzeHsWmt+Fh3qCzAktV7wD/lB93BIj4FSiZNpSYZYy
	3TBRmiXH199shL+ZChfjoFLwStbGS7x0W4QFGL3g6Qc3WgtJjOf0RfGRstGfJDB5opAglPUegeg
	ASNlMDs/pgh06Mx6JJEuwU122ypCUWDpbyXeQNUeVoP447kfuUISRIgAsl4WLeQ+dWZnh+1K0vo
	DLukABqRGwzVIyPZNggGhnuSAEEx25qd4CuhMageMWBpSl40geCq+N1FtD0NLk2RwykX9ulzZMU
	GggtrRGXmu0Nas8Yhg3MNMRtYmUyYuyzwg4VoLaLFfCBUtmkwLEBP0IqYmzhjYKC4YFJ0AVnU62
	U6rsW51l02oHdlAIstjo8nexRsuWqpwblzOpB15+GHdJHXTlGuXsWAmIZN6YsFGmlTipN4zPuj7
	E3joh8CY94BpXhZ2HKLaRGbf22hSM2luyv5rGjJOo2TQmupQ9m5tCXzdlmwH9QmLwigQ2B+s/1h
	Gax8FipVPnTyZqSxEoROYKiTkUdx/wcNMrb+hLnIpsCscJdAuxt3g==
X-Received: by 2002:a05:6402:4445:b0:65a:3655:9a05 with SMTP id 4fb4d7f45d1cf-65ea4ebf33amr4760876a12.7.1771931610431;
        Tue, 24 Feb 2026 03:13:30 -0800 (PST)
Message-ID: <1395c35e-0e2a-4eeb-addf-66f262ba0d91@suse.com>
Date: Tue, 24 Feb 2026 12:13:29 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
 <3a08a2d0-a18f-40e1-b9bf-9b71e0c797c0@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: <3a08a2d0-a18f-40e1-b9bf-9b71e0c797c0@suse.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Kf11xA0ozTVq0sXtf8haZz0V"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Kf11xA0ozTVq0sXtf8haZz0V
Content-Type: multipart/mixed; boundary="------------qfa6m4ZlcNkoswR7Fwstf6OK";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Jan Beulich <jbeulich@suse.com>, Teddy Astie <teddy.astie@vates.tech>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
 xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org
Message-ID: <1395c35e-0e2a-4eeb-addf-66f262ba0d91@suse.com>
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
 <3a08a2d0-a18f-40e1-b9bf-9b71e0c797c0@suse.com>
In-Reply-To: <3a08a2d0-a18f-40e1-b9bf-9b71e0c797c0@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=

--------------qfa6m4ZlcNkoswR7Fwstf6OK
Content-Type: multipart/mixed; boundary="------------7AcEWqxWp9nj6pCk07QDXHxv"

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

T24gMjQuMDIuMjYgMTI6MDEsIEphbiBCZXVsaWNoIHdyb3RlOg0KPiBPbiAyNC4wMi4yMDI2
IDExOjUxLCBUZWRkeSBBc3RpZSB3cm90ZToNCj4+IEl0J3MgY3VycmVudGx5IHBvc3NpYmxl
IHRvIGJ1aWxkIExpbnV4IHdpdGggQ09ORklHX1BWSHxDT05GSUdfWEVOX1BWSFZNDQo+PiBh
bmQgbm8gQ09ORklHX1hFTl9QVkguDQo+IA0KPiBJbiB3aGljaCBjYXNlLCBob3cgY2FuIHlv
dSBleHBlY3QgWGVuIFBWSCB0byB3b3JrPw0KDQpJIGFncmVlLiBTaW1pbGFyIHRvIGEga2Vy
bmVsIG5vdCB3b3JraW5nIHByb3Blcmx5IG9uIEFNRCB3aGVuIGNvbmZpZ3VyZWQNCnRvIHN1
cHBvcnQgSU5URUwgY3B1cyBvbmx5Lg0KDQo+IA0KPj4gVGhhdCBsZWFkcyB0byBpbmNvbnNp
c3RlbnQga2VybmVscyB0aGF0IGZhaWxzIHdpdGgNCj4+ICJNaXNzaW5nIHhlbiBQVkggaW5p
dGlhbGl6YXRpb24iIHdoZW4gYm9vdGluZyB1c2luZyBQVkggYm9vdCBtZXRob2Qgb3INCj4+
IGRpc3BsYXkgdmFyaW91cyBlcnJvcnMgYW5kIGZhaWwgdG8gaW5pdGlhbGl6ZSBYZW4gUFYg
ZHJpdmVycyB3aGVuIGJvb3RpbmcNCj4+IHdpdGggUFZILUdSVUIuDQo+Pg0KPj4gICAgICBw
bGF0Zm9ybV9wY2lfdW5wbHVnOiBYZW4gUGxhdGZvcm0gUENJOiB1bnJlY29nbmlzZWQgbWFn
aWMgdmFsdWUNCj4+ICAgICAgLi4uDQo+PiAgICAgICMgbW9kcHJvYmUgeGVuLWJsa2Zyb250
DQo+PiAgICAgIG1vZHByb2JlOiBFUlJPUjogY291bGQgbm90IGluc2VydCAneGVuX2Jsa2Zy
b250JzogTm8gc3VjaCBkZXZpY2UNCj4+ICAgICAgIyBtb2Rwcm9iZSB4ZW4tbmV0ZnJvbnQN
Cj4+ICAgICAgbW9kcHJvYmU6IEVSUk9SOiBjb3VsZCBub3QgaW5zZXJ0ICd4ZW5fbmV0ZnJv
bnQnOiBObyBzdWNoIGRldmljZQ0KPj4NCj4+IFdoZW4gYnVpbHQgd2l0aG91dCBDT05GSUdf
WEVOX1BWSCwgUFZILXNwZWNpZmljIGxvZ2ljIGlzIGRpc2FibGVkLCBoZW5jZSB3aGVuDQo+
PiBib290aW5nIHdpdGggZS5nIFBWSC1PVk1GLCBMaW51eCBhc3N1bWVzIHdlIGFyZSBhIEhW
TSBndWVzdCwgZXZlbiB3aGVuIHdlIGFyZW4ndA0KPj4gYWN0dWFsbHkgb25lIChpbiB0aGUg
IndpdGggSFZNIGVtdWxhdGVkIGRldmljZXMiIHNlbnNlKS4NCj4+DQo+PiBBcyBpdCBpcyBh
Y3R1YWxseSBwb3NzaWJsZSB0byBib290IFhlbiBQVkggd2l0aG91dCBDT05GSUdfUFZIOyBh
bmQgdGhhdCBtb3N0DQo+PiBYZW4tcmVsYXRlZCBsb2dpYyBleGlzdCB3aXRoaW4gQ09ORklH
X1hFTl9QVkhWTTsgY29uc2lkZXIgUFZIIGd1ZXN0cyBzdXBwb3J0DQo+PiB3aXRoaW4gQ09O
RklHX1hFTl9QVkhWTSBpbnN0ZWFkIG9mIENPTkZJR19YRU5fUFZILg0KPiANCj4gWEVOX1BW
SFZNIHNlcnZlcyBhIGRpZmZlcmVudCBwdXJwb3NlIHRob3VnaCwgaWlyYy4NCg0KSSBkb2Vz
Lg0KDQpDT05GSUdfWEVOX1BWSCBkZXBlbmRzIG9uIENPTkZJR19YRU5fUFZIVk0gZXhhY3Rs
eSBiZWNhdXNlIGEgbG90IG9mIHRoZQ0KbG9naWMgcmVxdWlyZWQgZm9yIFBWSCBtb2RlIHdh
cyBpbXBsZW1lbnRlZCBhcyBhIHBlcmZvcm1hbmNlIHR3ZWFrIG9mIEhWTQ0KdW5kZXIgdGhl
IENPTkZJR19YRU5fUFZIVk0gdW1icmVsbGEuDQoNCkluIGNhc2UgeW91IHdhbnQgdG8gYm9v
dCBhcyBhIHdvcmtpbmcgUFZIIGd1ZXN0LCB5b3UgbmVlZCBhIGtlcm5lbA0KY29uZmlndXJl
ZCB3aXRoIENPTkZJR19YRU5fUFZILiBJdCBpcyB0aGF0IHNpbXBsZS4NCg0KSXRzIGEgTkFD
SyBmcm9tIG1lLg0KDQoNCkp1ZXJnZW4NCg==
--------------7AcEWqxWp9nj6pCk07QDXHxv
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-----

--------------7AcEWqxWp9nj6pCk07QDXHxv--

--------------qfa6m4ZlcNkoswR7Fwstf6OK--

--------------Kf11xA0ozTVq0sXtf8haZz0V
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/Ey8FAmmdh9kFAwAAAAAACgkQsN6d1ii/Ey8N
zQf/aWOdTBwRo3TlDg3roX963oWe85siDtfIlJY2FZh3g2/tHmNwB+U0cPHlF5YZanq8BTjp8dpK
EemcL+WQiBKE+iUoJfAzeC+JRi9HuEHp/B+2ObhjUJVz4EN1IH7/tHOkhJoefoM3pwf4x1FtrGBJ
uGoc/hlztvbEX/P5gGh/fadoAG1oiL1InzV2ZqG/rJyIP1ndWbi/oZRliFU1BCGbs1zfbclxdALJ
B8R0kRoTY07NFVENqeRxiTM/FeicXtwBKyMNxwY5rnLoTm+8llrZ8J9TlXWKtlCyZngLNgStVvO7
QX9kteHqcOFsdzOzbVc7WI5bIiNigPWwpQUHjI2Tzw==
=go4l
-----END PGP SIGNATURE-----

--------------Kf11xA0ozTVq0sXtf8haZz0V--


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:14:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:14:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239850.1541263 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqN4-0001iw-DV; Tue, 24 Feb 2026 11:14:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239850.1541263; Tue, 24 Feb 2026 11:14:30 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqN4-0001ip-8e; Tue, 24 Feb 2026 11:14:30 +0000
Received: by outflank-mailman (input) for mailman id 1239850;
 Tue, 24 Feb 2026 11: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=Lz8P=A4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vuqN2-0001ib-FJ
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:14:28 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id f845775a-1171-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 12:14:22 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by CH7PR03MB7954.namprd03.prod.outlook.com (2603:10b6:610:24b::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 11:14:19 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 11: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: f845775a-1171-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=YrGqf2GMwdzAuZTjjgCayWvUDyEmv+x1zTvHVSGUkJKuv/4PcANB0Bork3xM8xokz2OikdfcgGD7UCAZJus995syhShCZU432t4LSEPhbbacOWHfcfG4U8k5FykeeBQG/HEgPn/jBPHkOEbXFFbSsEucyHufc9QQ9UYJd68ApBSbI8qT5pKDMFKCLdRBA1CubDjLOnhzK78/CB4HhxBNbLzMp6B3knQbtWXpiPF1VW7R9AiHfkeOsQPQoKsrpyKhwa4vR/ZCXL+QUUJmiUhMIEyWz2ld8ees219og8lILBluKk9YkaIQGbnjM3OulKT8DvnX7G1z9S0hjn+y5bL+KA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=MsGmmv6YNYndQB1jx4xcYBYgq16FvSjljFZ0bE9ntag=;
 b=uUUsOSJTfF5arFnQ98H5kOYo9DkfCDmjGOZtZURWqd8GdVJbvoRpnK3P80eU+6hqK0hbuFvn0DOBQEqlDa4NRD7hxC74TgPkSmIRxqs0CBIVCv5Si+XdEu808HqER8dn3ZS4dCSyubA3gKKv04EZ6kcUVFVT0kwh7SkM5NI7mBgKt9QJ/dsSq+YZvYGhEAmUimIQ06qdtE9ucOyjgpWpyDc2ndONZIUcjXcCH+jrTDbxNXYePOKVSh7iGk0Zownrg0up/6CAdc/UptG1uNVI9YrVO+NNUXcDDInIamlbeXjflsfMrsR2cHSIE6sp+NP5Iz63FBIhKiScDUAq9eld2Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=MsGmmv6YNYndQB1jx4xcYBYgq16FvSjljFZ0bE9ntag=;
 b=KCPtQE+GaZ8ESaDso+PsLU6OAO2HeWUiLrHgqYMCwVG2qc6mBwBRcIztB64c/uouCqXFUgbuYumySYwcwZXZFuVmqXxek1+FXaKRKOsjQtRXHR3cg3jMyZb+eHK5h6zxXXdhmlTyEN2ciAKQT4nrnkYhwlnB+VRJg5K9pq+v4lg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 24 Feb 2026 12:14:15 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
Message-ID: <aZ2IB9gBo_DrZLSf@macbook.local>
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
X-ClientProxiedBy: MR1P264CA0004.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|CH7PR03MB7954:EE_
X-MS-Office365-Filtering-Correlation-Id: 4d3a66e8-4566-47eb-6dd5-08de7395dadb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?TENSQ255clg0dlcyTTR3M0NPNjJJbmZmbnlzRmYwS00wMXhUNUs4aTlOODhU?=
 =?utf-8?B?c24rMmw2dE5HZC9NTVkvUlRHZkd0dTA2TjZWTzdQSjdlR3pTRFdiYzFGcnND?=
 =?utf-8?B?RTdxcFZBdlF3K0dRUisxUTFhNHB5NjdJdVdBTWF4bnRaNXVlM0Q5cmtBWVlG?=
 =?utf-8?B?SG10Y0lYK3hYQTk5K2dodjkrZUhSTmdVdHhTOEQyNmNTMjZTY2lJLzVraTFw?=
 =?utf-8?B?TVpWL3YzblROY3JpamVlRzY3b2ZMVEtyQjFWVm1vbFdXMGUxTUdOMVc0aWxy?=
 =?utf-8?B?bjFqWmxWUlIrNWVFQWh4UGFzcCtRRmRnV04wMU9nTFk4bEM4Tjg5ZFZnRDQ2?=
 =?utf-8?B?aGpFellvMXRRT3hVRjZyOHQ0ZjRQZ1E1VUJ3TlJ6L0hJcWRaV3IvT3BvcWx0?=
 =?utf-8?B?YnFVWG5WcUJ6SHRmQ09qMkRDTEVWaE1SSWlBcERQNG1GSUk3aEc0WlRDc1pw?=
 =?utf-8?B?Z2ZNVUpnY2VmM1Y3K29hSzZSTGZCV2lyNGJhZDhvR0p6ckhyTUhLZ0dXYSsv?=
 =?utf-8?B?VnVxRmlnRDJhRHFsaXNiemMydkFmSjFmalJ3OXlDVU01N1p5eU91b3prazJ5?=
 =?utf-8?B?NVlIQUFLYUtXNWE2UU94eUdkWGhNQUM2RkFVd2JtQS91SVRMbDNzNUhranRK?=
 =?utf-8?B?dXVRL3N3c2NZSjBMNlFzQ2ZKL2lFV2hXWVorRnVGNXYzZVVoV0cwZFhxY0Zu?=
 =?utf-8?B?SCtXbEVIa3czbkk1cmpDYVZUUU1VMjhjT3RJbjRTR00rVjFvbUlvSWNUWjFG?=
 =?utf-8?B?c2RET1BMTThEek5RaEhWaXRUcDZnVHZ4VjJBV1djMW9haEpNM1ZNZTVBWEdn?=
 =?utf-8?B?NEZGUXYrMFRLMU92VURnK0prZXl0T1pSekNkWmxtSEQzTjBmTlJ2TUhoUFd0?=
 =?utf-8?B?eHIwMWp6eEJrRzVXNVFLUkdUd0RwM0xjUEhzRTZJUUU0b2I0MVNMb2w4SlB5?=
 =?utf-8?B?eFV5VnpxZlFhVHczMGhoRkhIZkIyRFZUZEQ5cWtrTDlNM0oyNjZLVG9pY0Ja?=
 =?utf-8?B?MXFaQVczUENEVHFlaEdUb0tvL2Y4RitRZ0x5SytGUXd3SDZ3NVJyenhHdEIz?=
 =?utf-8?B?dlIwYjd5WHQ2aXFydXg2anFjNVR1SWQzMUQ1UE5SY3M1d2RjbmVvQ1JUUlk4?=
 =?utf-8?B?TGRXQ0ZjNEJCTFQ3NkJTbW44cUk3aDIwaGJKZllKVndHYXBGN0M3QkhwZXVP?=
 =?utf-8?B?djhOdHNVakhET2xIY0I5WmRMQ3dIeVcwNllaOVNZdW9NczNMRDZOS2FYSlpC?=
 =?utf-8?B?a1JYVjhxUWxDeVRCU2RIRmRYVVY0MFJoajFoRkx0RWY0TEZ6S2hQMTh2VUZN?=
 =?utf-8?B?MFlWeHVtK3dYUFVpQ0VHZURZcVFDK2o5RGh2LzVSbzZwYmtqa2c4dlBsL3pa?=
 =?utf-8?B?ZHR1dTRFMmJ1aW1oeTZSRUNvbk5JMisrS2JOaE91OUpiNHlxRi9nZjl0MnBr?=
 =?utf-8?B?L3J6eWtPSWF1VzlXdHllOGFYNG5mZytwZUYxajNVbHZDR1h4dXJUTUhSc2FZ?=
 =?utf-8?B?cGlMQXJaWlU0bmZWcTNBbnV0N2l2TVFVMEoxL1ppL3BkbE1VR2ZoL3pSaE9t?=
 =?utf-8?B?VHJDR1g2ZWdDRTMwN0VnK2E5TXJvNExxSjFzQTVFTUc5TWhlVEg2NHBycWw0?=
 =?utf-8?B?blBxUmhoRGszWmp5WkEvNWdaVERpUHFnSkJtR2RndzZiVXlUUjh4eEZNWkp0?=
 =?utf-8?B?MDhVZmw3b3NDZ3IzQmo0cUVvcHpJZ210S1h1dG9WbFgvNVJzUXpSY0ErZWs0?=
 =?utf-8?B?clhPRklPT2M5T2M2bGVBNWx0ZmZNODlJUVRqTDdXSkxpSDFWb3g1bXZlQUNX?=
 =?utf-8?B?M1g0MG11VlBUMVZkTTZ1dlNWMmViLzNJdXIvRUpPVlNHazB0dDF3Z1Q4bUl3?=
 =?utf-8?B?ckc1MjZQU2VNN2RsSm00VmdnMDY5Um5RTldqM1ZtTFEyNzRCRk5yelhVYjhS?=
 =?utf-8?B?TktFNHZmdXBiL2pydHpGMldaUURDVW1oTVJ0YTl6TFJ4cWRwMDBzb2Rac1pB?=
 =?utf-8?B?elRCMnVLOWRoRnFWc3I3dmR6NXY2YXRWQ0E3T2drSk1FazlncU5YdnRlZWEv?=
 =?utf-8?B?bjR1c2h2My93VzZzVlhjdVFLb1Jqa0I1UCtyQk45dEJLZDJlRTRsYTdBQ1Fw?=
 =?utf-8?Q?LVXY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?dG1oM2RzTUlkc1hGbFNsNy9qbkJ2ZkZXQTdZR0dHczZ1YVdPYlZQUDJMYjBR?=
 =?utf-8?B?RjBoZzFyNXdGZUFKaGx2eGtFZEwwVjlFNmR5WnJON3RNaFZocU95WkZTaG1v?=
 =?utf-8?B?ODMxZzVyNEM0cWFmOURKZmZjUmxYanBtT2IwT2RPeFhIZ1JxUlBEQ1ZySVND?=
 =?utf-8?B?QnFiLy9JT29jNzhJTkdHSS9IUCtmbm1COThmSGg0QTU0YURab0pJbnJMRmRT?=
 =?utf-8?B?QlBPTjFyLzZNckxjMUo2MTRCaG9oU3FPNGxUQm92WGVKK3hMUkZZOUR4aXhn?=
 =?utf-8?B?bFZiSC9PdlRqTWRObEFteTBUM09nT0gzcDAraWNQYTB1ektKT2xRaVZ6cDgx?=
 =?utf-8?B?THIyQXNmNlJPemVzaEtZQmp1SThMRnFwUHJGRkdBZHJFbEJUQWRZTTZDaG9v?=
 =?utf-8?B?VzR2djBKbDhWaUdLc0NDODJodHg2MW4vTTM1UHZJQm1BcnY5aFVpMWdUb0Rv?=
 =?utf-8?B?OXlqWm1ZUmtRT1lMUVZDM2ZLNmRBMkgrOE9SSnB3Q2l2UE9OSGVESWNYWDRy?=
 =?utf-8?B?YlRHY3htKy8zSWMwVEhYVnpYZ2U4a01tZkVzM0hRNFhPelBVZyt1ekdDY2M1?=
 =?utf-8?B?SEhsY3VJbzI0WHlRVGhEd0pJNHhNUm11US9OdFQ2NEdFcWI0dWVaMS9qNitr?=
 =?utf-8?B?MEhtUW9HVURYeWZQK3poWk9pTmwvV3NqQ25sVFNGN1Uzck4vaE1qaWdOUnlq?=
 =?utf-8?B?eGtSQ0ZXM0VaRHdqcUJDZHQxeDA4UDIxZnRMZFd3ZGpublozdDJyMGNSNDNL?=
 =?utf-8?B?bmVuVWk0bzlGdE9aZ2FpZHVtYjdTb0JaaXdJYzE1ZmhONFhRcnNxVStlcXk1?=
 =?utf-8?B?R1ZLbXJzdmhDYUxuVjdacWhEb3A4cmQxejBiT0RLeU5KZzl4d0dIMEU5aHp4?=
 =?utf-8?B?WXJRYTlaWGNHbW5XVXRtM1ladE9lMCtyazdKQWVWSWtIdmxGSFk4TEllVzhQ?=
 =?utf-8?B?QktmMHRvMnB4TE9qekFTM05qRzFSMlJDNVVFQVBrQ3VQL2VVRlVVRGtXOHIy?=
 =?utf-8?B?M1dualNZMzUvT3dXT1FmY1I4VEJuWDdwVUJYU0RNdUZNK0hlWlcwRHdnKzZq?=
 =?utf-8?B?Slp4Z3FVa0dyY0JnQS8vekpyNGhva2FDWlpMU2N6V0tqNG1JRXRnWnVPekNV?=
 =?utf-8?B?c3JDVHhVNlFrLzBOVjVEODVOdHdzWDF6SVNSL1lyVjh3OVdvSmxyVWg4eVZG?=
 =?utf-8?B?UHJDSmpnT1pHdmdGT0NnSll2QmRaUGc3bHhsNzluWXlWS3plZ0dpWFF0RktO?=
 =?utf-8?B?YmJ0bzBlSEF3OXhCajFhN3EvVFNNS1lONzJWc2h5UjNXZzRHcWRNT3VNY3Np?=
 =?utf-8?B?aUFZdllkV05BeTFBYklJeHJRRk9CYkZJeXdqbHlPTkhnTENRYlQrY2x6MzRM?=
 =?utf-8?B?MkNLWnV5ck9BU29aZXZnY0hNMWRaYVpGQ29pbTEwZUV3cXVCUkN2VVRTYUJS?=
 =?utf-8?B?MUYyYnlEeFdYdUNBaG9ia2ZNTnhEcGxqa1gyRkVDQ1doVVE2dW40c2VHZGdC?=
 =?utf-8?B?Zmwwb2ZKNEdxK1gvMlN4aWxJNDh0emp3NXRYYStmZlk5V2xoWFRZMkE5Ylg1?=
 =?utf-8?B?cUtiYk1jRE1rUHJkOHVMWVRRTTFuNkdyWEZ0NVRkampDM1RZZDdUallsVUFn?=
 =?utf-8?B?Z2FzalVmb1p0TEpvbkJwL293WVdYRm5NRkVzZlVueUMrdFNncjhEWGlLOGdF?=
 =?utf-8?B?MUZMdEhJNzZ6ZWdnUXh0RWszQjEydkhSUXpITG1IaHNoVkZMRnpHYWRnazI3?=
 =?utf-8?B?eTRmbmdnVmIwRm1sTkVERk9jRGhxT09ack9hbHoyVm1qVXlKOCswOUlEZ1NV?=
 =?utf-8?B?ekxtRXdnU2owNXhod0R3ZjlWVXVxaXg0N2FTOERKcmoxTTVPeDBEU3NMS25E?=
 =?utf-8?B?Z2dHbTVYRGZjVHoyN0pRZGg2b2V6WHJ1Tnl4MisyaURmOWdJS3JITDZlS2Va?=
 =?utf-8?B?ZDNNSFZkVEtnakl6YWV6cklIMlBxNU13QTRsUnhvVHRlbFQ4S3BEWHJnNWxT?=
 =?utf-8?B?NWZCbjA5dkJrNnRLb3Z6RkdkUWFuMWw1dDdaTmFMTVpPdUx6TDZTanZ2cHQ4?=
 =?utf-8?B?QzZoekFaaUM0K0l5WDFpa1c5WlZnYVpvdEh1UGJYODRlVVBHY29DWnl3c2tk?=
 =?utf-8?B?V0JDTHMxa1lxQXJHWndPaW5ibGU2Ny9HOCsrYjcrbEZLalZ0SnNqaW9lUWJI?=
 =?utf-8?B?WnNMcytOdXo1V2E0QXhGRTg4MnNMekh1Zk03VHhDRm5aTVppajVXandzSWVN?=
 =?utf-8?B?RVY2RHRlWmRZajRHbCtGZ1FEeVF6a2tWZnltb3dQZ0h6cDhnMzdzeEdmUVo5?=
 =?utf-8?B?YXptaXRWRVdtcGFEZXB0T0FKUVNKYk9rRmY3RExDTGxNQVJwQ0RmUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4d3a66e8-4566-47eb-6dd5-08de7395dadb
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 11:14:19.3764
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: O4LZVejp6cjBIXZeik4++AgUq3uqnxywemY67WT+O4JBb67yGUg//RvsxhfFrKXsyVjfqKLqbOfsv/j8wsl/wg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH7PR03MB7954

On Tue, Feb 24, 2026 at 10:51:35AM +0000, Teddy Astie wrote:
> It's currently possible to build Linux with CONFIG_PVH|CONFIG_XEN_PVHVM
> and no CONFIG_XEN_PVH. That leads to inconsistent kernels that fails with
> "Missing xen PVH initialization" when booting using PVH boot method or
> display various errors and fail to initialize Xen PV drivers when booting
> with PVH-GRUB.
> 
>     platform_pci_unplug: Xen Platform PCI: unrecognised magic value
>     ...
>     # modprobe xen-blkfront
>     modprobe: ERROR: could not insert 'xen_blkfront': No such device
>     # modprobe xen-netfront
>     modprobe: ERROR: could not insert 'xen_netfront': No such device
> 
> When built without CONFIG_XEN_PVH, PVH-specific logic is disabled, hence when
> booting with e.g PVH-OVMF, Linux assumes we are a HVM guest, even when we aren't
> actually one (in the "with HVM emulated devices" sense).
> 
> As it is actually possible to boot Xen PVH without CONFIG_PVH; and that most
> Xen-related logic exist within CONFIG_XEN_PVHVM; consider PVH guests support
> within CONFIG_XEN_PVHVM instead of CONFIG_XEN_PVH.

So the current CONFIG_PVH selection done by CONFIG_XEN_PVH is moot?

> Keep CONFIG_XEN_PVH as a shortcut to enable PVH boot, ACPI support and PVHVM.
> 
> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> ---
> Cc: Juergen Gross <jgross@suse.com>
> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> A tentative patch, I'm not sure of the way of dealing with the KConfig part,
> keeping CONFIG_XEN_PVH as a shortcut is interesting, but there may be other
> options.
> 
> There are widespreadly used Linux distributions that have a similar configuration
> to this one, thus exhibit this issue i.e fail to boot.

Do you know the underlying cause of not enabling CONFIG_XEN_PVH?  Is
the default set to n on the defconfig?  Or are distros specifically
disabling this option on purpose?

It seems like a step backwards to merge this into some bigger generic
option, we always try to fine-grain as much as possible.

Maybe you could introduce XEN_HVM meta option, that selects both PVHVM
and PVH?

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:15:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:15:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239862.1541272 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqON-0002Jr-Qj; Tue, 24 Feb 2026 11:15:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239862.1541272; Tue, 24 Feb 2026 11: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 1vuqON-0002Jk-NJ; Tue, 24 Feb 2026 11:15:51 +0000
Received: by outflank-mailman (input) for mailman id 1239862;
 Tue, 24 Feb 2026 11: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuqOM-0002IT-OO
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:15:50 +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 2c989ee9-1172-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 12:15:49 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48373a4bca3so32561665e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:15:49 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483b88ead80sm36093175e9.2.2026.02.24.03.15.48
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:15:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2c989ee9-1172-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771931749; x=1772536549; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=fqVBlO9o3V3gYkcMvM77zg0OJJHO3QE05ftI6Ud65Uw=;
        b=Z2wWUYuDvtk7IIrqNrH0AKTQrWQpB/cgDW9A4/bjqKAm+rx3tJrn428Yak1zp0avb+
         Jmn4iYICFM1ISb0OyMHomsvnuj8rRbDmSXeivZsP+H2tcGOtIMN2uBK61iNsmZIeirbo
         axKKtWrT4qpw0UgS7oHCndaAS/xI7aURnRfg1Z9lmqnnVHF3Dl/TTTHcSpmeCQZ5iF5Y
         uxbX+o3XkJA2x1Qd6mLZCdjpt9VolWTqooXfA06LFu6+AajxgNhI4lGYSgVTgmy5P8E9
         Mx/Gyrs/evlwk8u44E0N41aJ4gKw3JhAc4X4T5clvEnTR8nQTfkpDp2BRY369qJiGmXq
         Fvrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771931749; x=1772536549;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=fqVBlO9o3V3gYkcMvM77zg0OJJHO3QE05ftI6Ud65Uw=;
        b=Sw1tyP57Dcv0ZJVVXkJkuAo/dccnu/CCjNUFeVBTEDxRnv2VrSqZb/OwDv5kSBd53Q
         QW1v4BIfcataFFUwP/grB///GIXwtoG8qe6Ag1gwfZScixlvd9nynl4gXbcNoxuqcrfz
         w40cmRDZcin99YF3x5fXZ5m7Z8OfTtxu6EwRjCsDobJaX0k8AILlg1n/3Qka+82dPeiq
         3PasgC6/dhGbqx7NyKFTHcBPl7m1RExqW8SQjjRrNZvWX2MHTVPmbhLrklUgSwI//iGT
         yhGF0cuLofI8E9eOKcTFDbvNTlzW0O+SrU1gyWiRZ9On6qVw4zkIdnOJ5pB/OOfy9S8e
         hgyQ==
X-Forwarded-Encrypted: i=1; AJvYcCXZ8rhzTn5TnXtUdMfOOx+O+Vmk9I/JsNPfe7ACOwNYCBf6HXgyAYy0eGWvBFhoYPE+ynZFA1+fjY4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzzrpLMTnhbEUtV2kuMPYzAH7lpXfh4Wn2RyKsoPTmBJNuWH0G+
	J6Ipi0ALFaZuaPTQH35qnYNy6iWOb5G6zA40hGNYAUl/rrkJkPS0s1712rBl5CyQmw==
X-Gm-Gg: AZuq6aJaT42LqmE2ofboQrB07YXEJXHk+5w6+9Mm1JVJc06256CkkTyQZa72ktnNzJV
	FHbVKNCK8alsqiMyq46SAMG09bHqXQOvZHoxFjh7l3h4uYmWkNHOn8+VZ67oEvoZMFDySfstgkQ
	PlXeK7sXyQzi4s53ZIWmDQAmDYrDJGSonCbbcWjWxz/KS7hWpcZeShdDgenBiqG2DSkUJOYs9W2
	lIjwb/fcDVjgrVO58qdh/X/wVpmrZKXesZYUOl/hd9+TjT2hYW7mSU6pr/Sco64kV+7Uni9emXo
	z4rYnEyqnerlATzwjjKfXNzqgd5xFCUStp5yt9aXi7ga0Xm7vl7XMk2W0gVwZaGjGtGrA73uSJk
	bp3mbiPyBlRYuwnkbc6oUivBtuLfPN0kLhfcjLQQknEg26GLfTt6MckRwjFQ6uOLYX2Ho5dU6Cc
	9LszkZybmWYAQffmqMFRe9fcWgHIVYkt80aKgVaofxmQRD/XpiwYaQAAq6p2M3EhaKwTfTxXSgl
	6NYPOugGq7X0tE=
X-Received: by 2002:a05:600c:a03:b0:483:71f7:2796 with SMTP id 5b1f17b1804b1-483a95c7116mr194206205e9.10.1771931749204;
        Tue, 24 Feb 2026 03:15:49 -0800 (PST)
Message-ID: <1420bb66-0188-4836-819a-c04f3e98cb2b@suse.com>
Date: Tue, 24 Feb 2026 12:15:48 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/7] tools/tests/*/Makefile: factor out build rules
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <57d93b2a6e9f3cdc70e4446c469226dc015a1944.1771840831.git.edwin.torok@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: <57d93b2a6e9f3cdc70e4446c469226dc015a1944.1771840831.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:14, Edwin Török wrote:
> Also makes CFLAGS consistent across all tests, e.g. test_vpci would now
> fail to build with an unused variable error if it hadn't been fixed in a
> previous commit.

I can't quite derive why that would happen.

> --- a/tools/tests/Rules.mk
> +++ b/tools/tests/Rules.mk
> @@ -45,4 +45,13 @@ install: all
>  uninstall:
>  	$(RM) -- $(addprefix $(DESTDIR)$(LIBEXEC)/tests/,$(TARGETS))
>  
> +CFLAGS += -D__XEN_TOOLS__
> +CFLAGS += $(CFLAGS_xeninclude)
> +
> +%.o: Makefile
> +
> +$(TARGET): $(TARGET).o
> +	$(CC) $^ -o $@ $(LDFLAGS) $(APPEND_LDFLAGS)

In the earlier patch you require TARGETS to be surfaced. Why would we limit
things to a single target here then? Imo we want to settle on every subdir
having a single target, or the abstraction allowing for multiple.

>  -include $(DEPS_INCLUDE)
> +

Nit: Stray change?

> --- a/tools/tests/cpu-policy/Makefile
> +++ b/tools/tests/cpu-policy/Makefile
> @@ -3,26 +3,19 @@ include $(XEN_ROOT)/tools/Rules.mk
>  
>  TARGETS :=
>  
> +TARGET := test-cpu-policy
> +
>  # For brevity, these tests make extensive use of designated initialisers in
>  # anonymous unions, but GCCs older than 4.6 can't cope.  Ignore the test in
>  # this case.
>  ifneq ($(gcc)$(call cc-ver,$(CC),lt,0x040600),yy)
> -TARGETS += test-cpu-policy
> +TARGETS += $(TARGET)
>  else
>  $(warning Test harness not built, use newer compiler than "$(CC)" (version $(shell $(CC) -dumpversion)))
>  endif
>  
> -CFLAGS += -D__XEN_TOOLS__
> -CFLAGS += $(CFLAGS_xeninclude)
> -CFLAGS += $(APPEND_CFLAGS)
> -
> -LDFLAGS += $(APPEND_LDFLAGS)

You use $(APPEND_LDFLAGS) in the new rule (without adding to LDFLAGS), but where
did $(APPEND_CFLAGS) go?

> --- /dev/null
> +++ b/tools/tests/vpci/.gitignore
> @@ -0,0 +1 @@
> +test_vpci.c
> diff --git a/tools/tests/vpci/Makefile b/tools/tests/vpci/Makefile
> index 597303e31d..41ff867cdd 100644
> --- a/tools/tests/vpci/Makefile
> +++ b/tools/tests/vpci/Makefile
> @@ -4,10 +4,14 @@ include $(XEN_ROOT)/tools/Rules.mk
>  TARGET := test_vpci
>  TARGETS := $(TARGET)
>  
> -$(TARGET): vpci.c vpci.h list.h main.c emul.h
> -	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
> +$(TARGET).c: main.c
> +	ln -sf $< $@

Can we perhaps try to avoid further symlinking, unless absolutely necessary?
Here it looks to be easy to rename main.c into test_vpci.c (yet better would
be test-vcpi.c).

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:23:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:23:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239878.1541283 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqVe-0004Hp-HZ; Tue, 24 Feb 2026 11:23:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239878.1541283; Tue, 24 Feb 2026 11:23: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 1vuqVe-0004Hi-DU; Tue, 24 Feb 2026 11:23:22 +0000
Received: by outflank-mailman (input) for mailman id 1239878;
 Tue, 24 Feb 2026 11:23: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=6gRX=A4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vuqVd-0004Hc-LO
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:23:21 +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 38fabc5c-1173-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 12:23:20 +0100 (CET)
Received: by mail-ed1-x536.google.com with SMTP id
 4fb4d7f45d1cf-65a3527c5easo9395846a12.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:23:20 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65eaba42151sm3533171a12.32.2026.02.24.03.23.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:23:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 38fabc5c-1173-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771932199; x=1772536999; 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=6JcViuDeispOcFlKWWIs4EYnWeu85r9zzjwa53g4/x8=;
        b=DqI+ZHIaAYo1KelW1pDF8qMkCHuCY5xmo+7KMqwHqfKAtE39v64PaiJn7nrN9aBVht
         uV5j6TXm/pFwZIkv4OdLVORHUDP32bK9k/+KEBSUbn85nsQS0i8EN/Sm2pdoz9OIQrlE
         HYiup1Mx8K4C8M9Ru6hHqaLKM4N+GwAkJQ1XgZOKoUbglw2FTgOPyBrx1FN1TMe5ASTt
         HRcLyBEGsROEqR53LRSCSv7xUrg3TsGAqoirO++xKlcw7eBqHDiRc9pD+bySkXASzG+d
         c6nwBkDsyrnY+OxUpjy/rRxlxze+JzRe3nPksnbW2r4VEpDctoC4qjA35JIsCUYKz/3a
         6meg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771932199; x=1772536999;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=6JcViuDeispOcFlKWWIs4EYnWeu85r9zzjwa53g4/x8=;
        b=ghpMaXgcoTypeHzTGw9INLOSG6+OxJBB3locoROSrONP4pHE+3BR/tGwQRFigim91+
         ZMbX/VWOPvCev2a8WuYuux2fCzuY0MI+nIuwgvBBJBCr8AxER+x1c24TEKEsgLNlZY5U
         FSq+DnWoso/Miml0hWXAKoadVkbTOh34tL+BQCakDr/8dxgA9O4MpcJc+zhGaokal5ls
         w9U+YotUMUj0a6jVppk1VVELQb14DL2NDjERmRxfhEvmZXiEErLUrah12CKrcGOihOPK
         +/71RbcjcLQeXF0N8VXN/OZ6Jx6daSzwCZlx3eONAX9ZNwQ5viayDTSX18xeAxFizmPJ
         PUAQ==
X-Gm-Message-State: AOJu0YwCvz9ad8u0VdxBd2V386mfIpuS/LW8qBTvufqD7GD7nBwgS9lN
	FHw2tMy/W2cnG4LCoqJroCpAX+YAK4wo/RH/ulyi5s2ebn2xUc3P0VPIAU8evQ7bp0Y=
X-Gm-Gg: ATEYQzwsiuFwy70uxI3VWbjXpDCx+BqejYKpw13tNKHnBGySjAHJNGMdNfiqyWoY6y7
	eIrBlxEO3l9qzY1W+Db4sn/KQWYiXxC0vgCiH/z6BbHQpxoqOQuZ9rT01QwXwziVIXyLNc3NWUA
	K+fBZ+OLw+7sf/E6fIfYqdJ5vANyD7tR/URZ+oiUnYynsuSCWtCCBR+wQ30HTeL1Km/KkHd7TOq
	+dzOQvSRK2K9oaiC+dXZUHY3zA4Arra+nrOCm43udOjO2QL33+7MorpWDx9UhFmXjGjFhK9cfa1
	E0gozA8F8WftDhMoHiJ25i8fTziYMNlg5/UtJwtwdutTD0pAf07zn7wGghRW2h2vUHHlLU/+TGN
	DlW0RN3B3QZOFYvHf5+K8n7G4qKt+P4gygvHd00FoaOkiHSnRbjMp/uM84Q84UThIrvY5cFNLqZ
	Bx6+DMVJBaOgzSToY32V8ek0mCIkiFuZXnhbSJWFI/erV5yjmhppnv/MXmdOoZYH00+7iZu73iP
	/tpSZeqCc1QPVTwtha6hWjAP6xQa6fytbPW2kktfYrtqZ1cysCGpQ==
X-Received: by 2002:a05:6402:210c:b0:658:1d5:be51 with SMTP id 4fb4d7f45d1cf-65ea4ec03d5mr7051426a12.5.1771932199473;
        Tue, 24 Feb 2026 03:23:19 -0800 (PST)
Message-ID: <c788fa3d-4080-47bb-9fb4-1452866393bf@suse.com>
Date: Tue, 24 Feb 2026 12:23:18 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
 <aZ2IB9gBo_DrZLSf@macbook.local>
Content-Language: en-US
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
Autocrypt: addr=jgross@suse.com; keydata=
 xsBNBFOMcBYBCACgGjqjoGvbEouQZw/ToiBg9W98AlM2QHV+iNHsEs7kxWhKMjrioyspZKOB
 ycWxw3ie3j9uvg9EOB3aN4xiTv4qbnGiTr3oJhkB1gsb6ToJQZ8uxGq2kaV2KL9650I1SJve
 dYm8Of8Zd621lSmoKOwlNClALZNew72NjJLEzTalU1OdT7/i1TXkH09XSSI8mEQ/ouNcMvIJ
 NwQpd369y9bfIhWUiVXEK7MlRgUG6MvIj6Y3Am/BBLUVbDa4+gmzDC9ezlZkTZG2t14zWPvx
 XP3FAp2pkW0xqG7/377qptDmrk42GlSKN4z76ELnLxussxc7I2hx18NUcbP8+uty4bMxABEB
 AAHNH0p1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT7CwHkEEwECACMFAlOMcK8CGwMH
 CwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRCw3p3WKL8TL8eZB/9G0juS/kDY9LhEXseh
 mE9U+iA1VsLhgDqVbsOtZ/S14LRFHczNd/Lqkn7souCSoyWsBs3/wO+OjPvxf7m+Ef+sMtr0
 G5lCWEWa9wa0IXx5HRPW/ScL+e4AVUbL7rurYMfwCzco+7TfjhMEOkC+va5gzi1KrErgNRHH
 kg3PhlnRY0Udyqx++UYkAsN4TQuEhNN32MvN0Np3WlBJOgKcuXpIElmMM5f1BBzJSKBkW0Jc
 Wy3h2Wy912vHKpPV/Xv7ZwVJ27v7KcuZcErtptDevAljxJtE7aJG6WiBzm+v9EswyWxwMCIO
 RoVBYuiocc51872tRGywc03xaQydB+9R7BHPzsBNBFOMcBYBCADLMfoA44MwGOB9YT1V4KCy
 vAfd7E0BTfaAurbG+Olacciz3yd09QOmejFZC6AnoykydyvTFLAWYcSCdISMr88COmmCbJzn
 sHAogjexXiif6ANUUlHpjxlHCCcELmZUzomNDnEOTxZFeWMTFF9Rf2k2F0Tl4E5kmsNGgtSa
 aMO0rNZoOEiD/7UfPP3dfh8JCQ1VtUUsQtT1sxos8Eb/HmriJhnaTZ7Hp3jtgTVkV0ybpgFg
 w6WMaRkrBh17mV0z2ajjmabB7SJxcouSkR0hcpNl4oM74d2/VqoW4BxxxOD1FcNCObCELfIS
 auZx+XT6s+CE7Qi/c44ibBMR7hyjdzWbABEBAAHCwF8EGAECAAkFAlOMcBYCGwwACgkQsN6d
 1ii/Ey9D+Af/WFr3q+bg/8v5tCknCtn92d5lyYTBNt7xgWzDZX8G6/pngzKyWfedArllp0Pn
 fgIXtMNV+3t8Li1Tg843EXkP7+2+CQ98MB8XvvPLYAfW8nNDV85TyVgWlldNcgdv7nn1Sq8g
 HwB2BHdIAkYce3hEoDQXt/mKlgEGsLpzJcnLKimtPXQQy9TxUaLBe9PInPd+Ohix0XOlY+Uk
 QFEx50Ki3rSDl2Zt2tnkNYKUCvTJq7jvOlaPd6d/W0tZqpyy7KVay+K4aMobDsodB3dvEAs6
 ScCnh03dDAFgIq5nsB11j3KPKdVoPlfucX2c7kGNH+LUMbzqV6beIENfNexkOfxHfw==
In-Reply-To: <aZ2IB9gBo_DrZLSf@macbook.local>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------LTmO2Vt6Lf9aiPWnxHpUROco"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------LTmO2Vt6Lf9aiPWnxHpUROco
Content-Type: multipart/mixed; boundary="------------7GBOigJwEtIJHq0kc3tOuXkX";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Message-ID: <c788fa3d-4080-47bb-9fb4-1452866393bf@suse.com>
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
 <aZ2IB9gBo_DrZLSf@macbook.local>
In-Reply-To: <aZ2IB9gBo_DrZLSf@macbook.local>

--------------7GBOigJwEtIJHq0kc3tOuXkX
Content-Type: multipart/mixed; boundary="------------PFODHX4lAegmlgwu0GkGrlHW"

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

T24gMjQuMDIuMjYgMTI6MTQsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6DQo+IE9uIFR1ZSwg
RmViIDI0LCAyMDI2IGF0IDEwOjUxOjM1QU0gKzAwMDAsIFRlZGR5IEFzdGllIHdyb3RlOg0K
Pj4gSXQncyBjdXJyZW50bHkgcG9zc2libGUgdG8gYnVpbGQgTGludXggd2l0aCBDT05GSUdf
UFZIfENPTkZJR19YRU5fUFZIVk0NCj4+IGFuZCBubyBDT05GSUdfWEVOX1BWSC4gVGhhdCBs
ZWFkcyB0byBpbmNvbnNpc3RlbnQga2VybmVscyB0aGF0IGZhaWxzIHdpdGgNCj4+ICJNaXNz
aW5nIHhlbiBQVkggaW5pdGlhbGl6YXRpb24iIHdoZW4gYm9vdGluZyB1c2luZyBQVkggYm9v
dCBtZXRob2Qgb3INCj4+IGRpc3BsYXkgdmFyaW91cyBlcnJvcnMgYW5kIGZhaWwgdG8gaW5p
dGlhbGl6ZSBYZW4gUFYgZHJpdmVycyB3aGVuIGJvb3RpbmcNCj4+IHdpdGggUFZILUdSVUIu
DQo+Pg0KPj4gICAgICBwbGF0Zm9ybV9wY2lfdW5wbHVnOiBYZW4gUGxhdGZvcm0gUENJOiB1
bnJlY29nbmlzZWQgbWFnaWMgdmFsdWUNCj4+ICAgICAgLi4uDQo+PiAgICAgICMgbW9kcHJv
YmUgeGVuLWJsa2Zyb250DQo+PiAgICAgIG1vZHByb2JlOiBFUlJPUjogY291bGQgbm90IGlu
c2VydCAneGVuX2Jsa2Zyb250JzogTm8gc3VjaCBkZXZpY2UNCj4+ICAgICAgIyBtb2Rwcm9i
ZSB4ZW4tbmV0ZnJvbnQNCj4+ICAgICAgbW9kcHJvYmU6IEVSUk9SOiBjb3VsZCBub3QgaW5z
ZXJ0ICd4ZW5fbmV0ZnJvbnQnOiBObyBzdWNoIGRldmljZQ0KPj4NCj4+IFdoZW4gYnVpbHQg
d2l0aG91dCBDT05GSUdfWEVOX1BWSCwgUFZILXNwZWNpZmljIGxvZ2ljIGlzIGRpc2FibGVk
LCBoZW5jZSB3aGVuDQo+PiBib290aW5nIHdpdGggZS5nIFBWSC1PVk1GLCBMaW51eCBhc3N1
bWVzIHdlIGFyZSBhIEhWTSBndWVzdCwgZXZlbiB3aGVuIHdlIGFyZW4ndA0KPj4gYWN0dWFs
bHkgb25lIChpbiB0aGUgIndpdGggSFZNIGVtdWxhdGVkIGRldmljZXMiIHNlbnNlKS4NCj4+
DQo+PiBBcyBpdCBpcyBhY3R1YWxseSBwb3NzaWJsZSB0byBib290IFhlbiBQVkggd2l0aG91
dCBDT05GSUdfUFZIOyBhbmQgdGhhdCBtb3N0DQo+PiBYZW4tcmVsYXRlZCBsb2dpYyBleGlz
dCB3aXRoaW4gQ09ORklHX1hFTl9QVkhWTTsgY29uc2lkZXIgUFZIIGd1ZXN0cyBzdXBwb3J0
DQo+PiB3aXRoaW4gQ09ORklHX1hFTl9QVkhWTSBpbnN0ZWFkIG9mIENPTkZJR19YRU5fUFZI
Lg0KPiANCj4gU28gdGhlIGN1cnJlbnQgQ09ORklHX1BWSCBzZWxlY3Rpb24gZG9uZSBieSBD
T05GSUdfWEVOX1BWSCBpcyBtb290Pw0KDQpObywgaXQgaXNuJ3QuDQoNCkNPTkZJR19QVkgg
aXMgdGhlIGNvbW1vbiBiYXNlIG5lZWRlZCBmb3IgWGVuIGFuZCBLVk0gZ3Vlc3RzIHRvIGJl
IGFibGUgdG8NCnJ1biBpbiBQVkggbW9kZS4NCg0KPiANCj4+IEtlZXAgQ09ORklHX1hFTl9Q
VkggYXMgYSBzaG9ydGN1dCB0byBlbmFibGUgUFZIIGJvb3QsIEFDUEkgc3VwcG9ydCBhbmQg
UFZIVk0uDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGll
QHZhdGVzLnRlY2g+DQo+PiAtLS0NCj4+IENjOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3Vz
ZS5jb20+DQo+PiBDYzogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xl
LmNvbT4NCj4+IENjOiBPbGVrc2FuZHIgVHlzaGNoZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVu
a29AZXBhbS5jb20+DQo+Pg0KPj4gQSB0ZW50YXRpdmUgcGF0Y2gsIEknbSBub3Qgc3VyZSBv
ZiB0aGUgd2F5IG9mIGRlYWxpbmcgd2l0aCB0aGUgS0NvbmZpZyBwYXJ0LA0KPj4ga2VlcGlu
ZyBDT05GSUdfWEVOX1BWSCBhcyBhIHNob3J0Y3V0IGlzIGludGVyZXN0aW5nLCBidXQgdGhl
cmUgbWF5IGJlIG90aGVyDQo+PiBvcHRpb25zLg0KPj4NCj4+IFRoZXJlIGFyZSB3aWRlc3By
ZWFkbHkgdXNlZCBMaW51eCBkaXN0cmlidXRpb25zIHRoYXQgaGF2ZSBhIHNpbWlsYXIgY29u
ZmlndXJhdGlvbg0KPj4gdG8gdGhpcyBvbmUsIHRodXMgZXhoaWJpdCB0aGlzIGlzc3VlIGku
ZSBmYWlsIHRvIGJvb3QuDQo+IA0KPiBEbyB5b3Uga25vdyB0aGUgdW5kZXJseWluZyBjYXVz
ZSBvZiBub3QgZW5hYmxpbmcgQ09ORklHX1hFTl9QVkg/ICBJcw0KPiB0aGUgZGVmYXVsdCBz
ZXQgdG8gbiBvbiB0aGUgZGVmY29uZmlnPyAgT3IgYXJlIGRpc3Ryb3Mgc3BlY2lmaWNhbGx5
DQo+IGRpc2FibGluZyB0aGlzIG9wdGlvbiBvbiBwdXJwb3NlPw0KPiANCj4gSXQgc2VlbXMg
bGlrZSBhIHN0ZXAgYmFja3dhcmRzIHRvIG1lcmdlIHRoaXMgaW50byBzb21lIGJpZ2dlciBn
ZW5lcmljDQo+IG9wdGlvbiwgd2UgYWx3YXlzIHRyeSB0byBmaW5lLWdyYWluIGFzIG11Y2gg
YXMgcG9zc2libGUuDQo+IA0KPiBNYXliZSB5b3UgY291bGQgaW50cm9kdWNlIFhFTl9IVk0g
bWV0YSBvcHRpb24sIHRoYXQgc2VsZWN0cyBib3RoIFBWSFZNDQo+IGFuZCBQVkg/DQpObywg
cGxlYXNlIGRvbid0IHVzZSAiSFZNIiBmb3IgdGhhdCBwdXJwb3NlLg0KDQpJZiBhbnl0aGlu
ZyBJJ2Qgc2V0IHRoZSBDT05GSUdfWEVOX1BWSCBkZWZhdWx0IHRvIHRoYXQgb2YgQ09ORklH
X1hFTl9QVkhWTS4NCg0KDQpKdWVyZ2VuDQo=
--------------PFODHX4lAegmlgwu0GkGrlHW
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-----

--------------PFODHX4lAegmlgwu0GkGrlHW--

--------------7GBOigJwEtIJHq0kc3tOuXkX--

--------------LTmO2Vt6Lf9aiPWnxHpUROco
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/Ey8FAmmdiiYFAwAAAAAACgkQsN6d1ii/Ey82
dAf+P6GirZvbRYFn+8KxCGWXM+Y3KD2/ekw09K2yEWxPlXAK1KPRRr4YMPaybbAO7ooYmgAyUrSV
pgcjkeN0g/pb0HnSRKmh+49a5ugKvIufqXj3SvYgEOjdsFRMjMgQn6HvgorOek5BnY1/PGqDnFuo
7U/2vb5Hjl/sqGCT4eNx5lTyvd6wlK91xgQVvUpSWhzEsVUOltN4lErDjFzLIrmHlbslLcCXv+T4
4wXHEt9r9WcljAoe58jd17t5fsfbwqiGaj0akYNFY9Q2GadKENJOSWiqNyCPZ52aiva9LKNZNfvD
cMmSIE1HQyoMU62L+6UsGVjDUzeVMibHXjpXnuLqag==
=l96A
-----END PGP SIGNATURE-----

--------------LTmO2Vt6Lf9aiPWnxHpUROco--


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:25:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:25:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239886.1541292 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqXx-0004pN-TU; Tue, 24 Feb 2026 11:25:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239886.1541292; Tue, 24 Feb 2026 11: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 1vuqXx-0004pG-Pr; Tue, 24 Feb 2026 11:25:45 +0000
Received: by outflank-mailman (input) for mailman id 1239886;
 Tue, 24 Feb 2026 11:25: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=1YgY=A4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vuqXw-0004p7-Tv
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:25:45 +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 8a550938-1173-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 12:25:36 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-48336a6e932so33237285e9.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:25:36 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a8df83bcsm285792615e9.13.2026.02.24.03.25.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:25:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 8a550938-1173-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771932336; x=1772537136; 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=C0bvjw+JWOwhy/IYhGVYYXXYnyTaasS10Ohoh8JXxzo=;
        b=kNjli/S270WvGGBtUmN4rwcXrg307rmIR2QdvgTeK1EInel8IoWo4hPwZQPeDRwa60
         2kSuCLdyhSQJGnUp/JOik2H5XoVralE6V5lQQtqa9uEnyDJtZ1MR8o/sLE79h5zVrPEs
         nvpuWGMSaNe25NHM8tmACihk1iGue9+tcAHE95SiYmIU6wQRhnecVMq9OrA2+E8hzrji
         Kuk/XpSXk+CAyuMfL2SEO5LPSHowT3ffXfTsOykGB+qf2qTp65NxZe7QETEzqNZHfY3Z
         TbbbdcOUR8PpV5rdJGsiWkJ6UH5hC6pW2aovzzTRHd1vgxV9pP11Aq7+HUwLsrwHY/OO
         RFlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771932336; x=1772537136;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=C0bvjw+JWOwhy/IYhGVYYXXYnyTaasS10Ohoh8JXxzo=;
        b=i177eRCuWIZyFudgQaNio9v9Fse1nKXVIIOClJsow7ND4dCBXCxgYHGH9mKlt5tJSK
         PHgRvX5dCrF/zR3hWjnkHRKN8916KuxNxy8wwGEXraXA9OFtPwClmzqM+dNTijUOO3RL
         lW2+E0kwS8Hb7GIDCO9HRgsNHs12MRZpFf8+osk60mYHwLqrefYEJVNZcMkmNllmM4Dn
         jaDmB7IhF7JrYCANvId8nP+jAsbLV/cKtZDsQ8VBeEN6lDwrlURiut9xPUCKw9J6G0oI
         JyNsqvcjzKSrod+CyKQFgnnFmDk5ue55nXsU1k8AsBzhI4hKhIl7ICTi3pcosYdihzMd
         4qjg==
X-Forwarded-Encrypted: i=1; AJvYcCX4fbBht28iFa4fvuLeATaZp9OkYkb216fGgI/Dku1UavViyqkCQzDaMyTWfoi50vcW0DOblBHVlqg=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwyS1D3SGZelkKfK6MJBPCdWbIq/LYbvCaNTU8T6Ex0i+0ZKKd6
	VJ3BCJUTSnQcfkCcHXPLx7oKZlfaRvlrkaM/WPT4Y56PkDWb8WlWlLZU
X-Gm-Gg: AZuq6aJJ4+SMBmKFOGAk41kodnYtzkfGH2eIWeR0Q6PghygxwJVvdBKzOPLle/5C786
	YsDVLOXA+HC9k4q6QKE8k9qxFp4dqWGwYeD1vh5uNpI6317odx7hH6m9cPqhKSpHuYV91iaSO5j
	lcD8lY9Z2j8roWHcPzNB6IXEXa0I9YISj3CaWTqFq8N7UANwfMIERCTjGAXmOG02HO7nMGeAwcy
	9wrpmwu8GXws8OyfeLmp/KHAqMZ5glCEo5v8Jsdj83tYhsUfQ1ec0WhOqLMEte8doRqfku73SM2
	fplOFa2NoDnPotDQ9zm9k+82o+Ajd9UkE3ohPi2ZZbRl92SObM1aOGS2DFnyGf7kHu2h6PdR5Uv
	gs5C7ca/Sc+02FtNg3VdzkLtJoG1O0jT+tcN9eQL5fjKyBOPDIpVZ1JZX3UTVkPFIA/NMDhVOx0
	X+ubMylDXu8Vrv+JK6a3pUdB7pjZnhonZQkTxwufFclbyEAHKVEjXUktsKj/jqCWCGvOApZCeok
	40=
X-Received: by 2002:a05:600c:3590:b0:47d:3ead:7440 with SMTP id 5b1f17b1804b1-483b427b0ecmr91354095e9.32.1771932335751;
        Tue, 24 Feb 2026 03:25:35 -0800 (PST)
Message-ID: <42847a9e-71e1-47a0-b4fb-7d8c91370bf4@gmail.com>
Date: Tue, 24 Feb 2026 12:25:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
 <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
 <e084cd6f-e76d-40c1-9e30-97e10acae012@gmail.com>
 <541a6c57-406c-49e5-8b8b-019e30bf0d89@suse.com>
 <5e4362ed-c310-442b-a742-ca7c3d1c47dc@gmail.com>
 <c388593e-8371-4040-a179-c0bf32ae0696@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <c388593e-8371-4040-a179-c0bf32ae0696@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/24/26 11:47 AM, Jan Beulich wrote:
> On 24.02.2026 11:42, Oleksii Kurochko wrote:
>> On 2/24/26 11:16 AM, Jan Beulich wrote:
>>> On 24.02.2026 10:44, Oleksii Kurochko wrote:
>>>> On 2/24/26 9:07 AM, Jan Beulich wrote:
>>>>> On 20.02.2026 17:18, Oleksii Kurochko wrote:
>>>>>> --- a/xen/arch/riscv/domain.c
>>>>>> +++ b/xen/arch/riscv/domain.c
>>>>>> @@ -2,9 +2,39 @@
>>>>>>     
>>>>>>     #include <xen/init.h>
>>>>>>     #include <xen/mm.h>
>>>>>> +#include <xen/sections.h>
>>>>>>     #include <xen/sched.h>
>>>>>>     #include <xen/vmap.h>
>>>>>>     
>>>>>> +#include <asm/cpufeature.h>
>>>>>> +#include <asm/csr.h>
>>>>>> +
>>>>>> +struct csr_masks {
>>>>>> +    register_t hedeleg;
>>>>>> +    register_t henvcfg;
>>>>>> +    register_t hideleg;
>>>>>> +    register_t hstateen0;
>>>>>> +};
>>>>>> +
>>>>>> +static struct csr_masks __ro_after_init csr_masks;
>>>>>> +
>>>>>> +void __init init_csr_masks(void)
>>>>>> +{
>>>>>> +#define INIT_CSR_MASK(csr, field) do { \
>>>>>> +    register_t old; \
>>>>>> +    old = csr_read(CSR_##csr); \
>>>>> Can't this be the initializer of the variable? Can't ...
>>>> I agree that this is change is okay to be done but I am not sure about ...
>>>>
>>>>>> +    csr_set(CSR_##csr, ULONG_MAX); \
>>>>> ... csr_swap() be used here, too?
>>>> ... as after re-reading spec again I am not sure that we can do in this way
>>>> at all.
>>>>
>>>> Initially I used csr_set() instead of csr_swap() or csr_write() as csr_set() to
>>>> take into account a writability of the bit, so it won't touch a bit if it
>>>> is r/o.
>>> To me the spec isn't quite clear enough in this regard.
>>>
>>>> But it seems like this approach won't work with**WLRL or WPRI fields as these
>>>> fields aren't r/o,
>>> In the CSRs presently dealt with, are there any WLRL fields at all? (I don't
>>> think WPRI fields represent much of an issue for the purpose here.)
>> Agree, currently used CSRs in this function don't have WLRL feilds, but I suppose
>> we want to have the similar treatment (read WLRL fields and reuse what was read)
>> for WLRL fields as these fields expect only valid value and so all 1s for this
>> fields can be wrong to use.
>>
>>>> but they only support specific value and for example:
>>>>
>>>> - Implementations are permitted but not required to raise an
>>>>      illegal-instruction exception if an instruction attempts to write a
>>>>      non-supported value to a WLRL field.
>>>> - For these reserved fields, software is required to preserve the existing
>>>>      values when writing to other fields in the same register. Overwriting them
>>>>      with 1s could be considered non-compliant behavior.
>>>>
>>>> So it seems like we can't just do csr_swap() with all 1s and it is needed
>>>> to pass a mask to INIT_CSR_MASK() which will tell which bits should be
>>>> ignored and don't touched.
>>>> For example, HENVCFG and HSTATEEN0 has WPRI fields.
>>>>
>>>> reserved_bits_mask = 0x1FFFFFFCFFFFFF00;
>>>> tmp = csr_read(HENVCFG);
>>>> tmp=(~reserved_bits_mask) |(tmp&reserved_bits_mask); csr_set(HENVCFG, tmp);
>>> What I find further concerning is that HSTATEEN0 also may have read-only-1
>>> fields. You don't currently cope with that, I think.
>> Because of this:
>>     A bit in an hstateen CSR cannot be read-only one unless the same bit is
>>     read-only one in the matching mstateen CSR.
>> ?
>>
>> I expect that it will be covered by csr_set() which will touch only writable
>> bits and ignore read-only. So doesn't matter if a bit is read only 1 or 0
>> it still shouldn't be in the final mask.
> But the hypervisor view of the register value seen by guests won't be correct.
> Recall that you moved to probing to make sure that the cached values we have
> in the hypervisor properly match the values seen by the guest?

Then we have to store what csr_read(hstateen0) returns in struct csr_masks in
new field hstateen0_ro_ones. And then in the next patch apply that new field
in vcpu_csr_init():
   v->arch.hstateen0 = hstateen0 & csr_masks.hstateen0 |
                       csr_masks.hstateen0_ro_ones;

Are you okay with such changes?

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:27:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:27:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239897.1541301 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqZT-0005Nj-8N; Tue, 24 Feb 2026 11:27:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239897.1541301; Tue, 24 Feb 2026 11:27:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqZT-0005Nc-5V; Tue, 24 Feb 2026 11:27:19 +0000
Received: by outflank-mailman (input) for mailman id 1239897;
 Tue, 24 Feb 2026 11:27: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuqZR-0005NU-Dz
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:27:17 +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 c4dd8af7-1173-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 12:27:14 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so67076545e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:27:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970c09897sm26623556f8f.17.2026.02.24.03.27.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:27:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c4dd8af7-1173-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771932434; x=1772537234; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=uQ79wN/4VrDRIlAkX0S+RTfyit9LxGon2DLJs20NY+4=;
        b=M6UYx4ubFMnv7pSVmh6KSHVvasKRElOp8sGuL7sW7JrLsIxqP90K4Fq3IecnqZmh4b
         rDjmDwYQTpv4YFaL2udAmoL7ozeeWlwutvw+/ph/oBX6iljvPH594CLnOn+qVbV1Elvq
         LA+CyjDdf4DAvk0Rg9vJG06j003W4OariLqVf+a830vjmlZtHTzm/6YuEakqNqzuHswW
         VnGndfgDVdxm3Xcp/tkfnq7RwamEgFZPGJ3Guxfiy5RUSVkJILbMZi+NWn0cdV9dyc+5
         C4NWjbA2GNE9FIjEPvXQXioda5CmCF9C+h76VDHG782nSQ+1wqtqGDFaR3PDumc2HgQ/
         YcoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771932434; x=1772537234;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uQ79wN/4VrDRIlAkX0S+RTfyit9LxGon2DLJs20NY+4=;
        b=Rqtbziuc0RMCiewBYcw78Fp6QHMBg96iBss0QBLQ1Gg5JFbO2etkybPRFU2VaiD+ly
         YfeouZlhanriwtX+CSJjvu1tHdL86Vw+anUYvSoLwKvGgmI6ZPTP5MTr5jPBielLIwJP
         ZCqd9wPjmdimBLspDkCdH/XlrY1KKUtg960hC5+7SH69dYx0DsCREFfiXjCk94jF918I
         HjBEtK3yDJMpf/fJegZfjS60F9+g2H+C5L+Bs/8KJ4RiuhGKBfQiIIHd40OSg4H5LND0
         /vZyEvAbf91Qc3UorgtHfFssfcuGFGsOQyAxEay2zziMrOMQWVyF4CtmkrDppVsKKvVc
         b5Nw==
X-Forwarded-Encrypted: i=1; AJvYcCXyCBmhvoC/eTkQNUyzU9aRtWEZ0oNP4y/hTlQWOF9dCWt81TKAbiFhS5wbSIqsobPqHJ5W38qOQcQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwNzsxomgzORNt2rbN87lAMzf4HrF9whAK8M2m7HbWshYrzmOH0
	MsM9dekc3NUCxfXTaDuP/NtZBE6RbiVP/IRZAyGvYyNO5GiVab+pxegodyCIrRahWg==
X-Gm-Gg: AZuq6aIGyFSFOesSHwQC64rwGMUdGv9cUF5tKHP0bXMkGKk4wlLx1KM1y8fNZG+6BeX
	u7p9fIORZe6qcxiiIEZP/qrahp5moDfwnjvy9osl+d8jlhZhLdxZHoSmJoGgUQL7rj839mApk+p
	j+pbQ5NA5juP+XXw2tBgwTOz1ecaJFh99oiYubM/x8uvHALpu1i2UVS+FTSzWCBzkqoMoPZ/mo0
	8HbVYucpLp/7PcRnlhIiOGqONFdsLw+CP7Pl3l5yRwt24nGIGhlGZrDR0GcFTPvUyGypw2aX0Rk
	8AZ8BNugogak2hTrAuzdS5XPZE04pZt3MVmmHWvbvK23j5y/hXSAg57tqi5StqC5eDitBfcldXT
	CdVjdvhFh0ax7xODj9q+dbQWzch5Chkr+truOSIV75oFdDEeJufKxPS3UsOQ1o4pAyLaBg9iHnS
	l4fVtzIw4IA1JMQCGChSRWjyBRIFw+hrRZq0+HkJFGcnhDzBUJImTOopHVK8gE+iyoyqwp+4lP2
	Eo+YN/ydm2BRWI=
X-Received: by 2002:a05:600c:c8a:b0:480:4a90:1b06 with SMTP id 5b1f17b1804b1-483a9603d42mr181668395e9.34.1771932434331;
        Tue, 24 Feb 2026 03:27:14 -0800 (PST)
Message-ID: <791af615-c49d-45a8-825e-3ac3a1d31118@suse.com>
Date: Tue, 24 Feb 2026 12:27:13 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/7] tools/tests: factor out common helpers
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.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>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 xen-devel@lists.xenproject.org
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <1fc62b8c258f9113c8bfd6401b71c411707fc3f7.1771840831.git.edwin.torok@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: <1fc62b8c258f9113c8bfd6401b71c411707fc3f7.1771840831.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:14, Edwin Török wrote:
> --- a/tools/tests/Rules.mk
> +++ b/tools/tests/Rules.mk
> @@ -47,11 +47,14 @@ uninstall:
>  
>  CFLAGS += -D__XEN_TOOLS__
>  CFLAGS += $(CFLAGS_xeninclude)
> +CFLAGS += -I../common/
>  
>  %.o: Makefile
>  
>  $(TARGET): $(TARGET).o
>  	$(CC) $^ -o $@ $(LDFLAGS) $(APPEND_LDFLAGS)
>  
> +$(TARGETS): $(XEN_ROOT)/tools/tests/common/tests.o
> +
>  -include $(DEPS_INCLUDE)
>  
> diff --git a/tools/tests/common/tests.c b/tools/tests/common/tests.c
> new file mode 100644
> index 0000000000..43d9ea5442
> --- /dev/null
> +++ b/tools/tests/common/tests.c
> @@ -0,0 +1,15 @@
> +#include "tests.h"
> +
> +unsigned int nr_failures;
> +
> +int main(int argc, char *argv[argc+1])

Nit (style): Blanks around + please.

> +{
> +    int rc = test_main(argc, argv);
> +
> +    if ( nr_failures )
> +        printf("Done: %u failures\n", nr_failures);
> +    else
> +        printf("Done: all ok\n");
> +
> +    return rc ? rc : !!nr_failures;

Nit: No need for the middle operand; we use that extension extensively.

> --- /dev/null
> +++ b/tools/tests/common/tests.h
> @@ -0,0 +1,18 @@
> +#include <stdio.h>
> +#include <sysexits.h>
> +
> +extern unsigned int nr_failures;
> +
> +#define fail(fmt, ...)                          \
> +({                                              \
> +    nr_failures++;                              \
> +    (void)printf(fmt, ##__VA_ARGS__);           \
> +})
> +
> +#define verify(exp, fmt, args...) \
> +while (!(exp)) { \
> +    printf(fmt, ## args); \
> +    exit(EX_SOFTWARE); \
> +}

For both macros, please be consistent in how you want to deal with the variable
number of arguments.

For the latter macro, like the former it wants to be coded such that a semicolon
and the use site is necessary (and doesn't end up as a stray one).

> --- a/tools/tests/cpu-policy/test-cpu-policy.c
> +++ b/tools/tests/cpu-policy/test-cpu-policy.c
> @@ -650,7 +650,7 @@ static void test_is_compatible_failure(void)
>      }
>  }
>  
> -int main(int argc, char **argv)
> +int test_main(int argc, char **argv)

Elsewhere you switch to argv[argc + 1] - why not here?

> --- a/tools/tests/pdx/test-pdx.c
> +++ b/tools/tests/pdx/test-pdx.c
> @@ -5,6 +5,7 @@
>   * Copyright (C) 2025 Cloud Software Group
>   */
>  
> +#include "tests.h"
>  #include "harness.h"
>  
>  #include "../../xen/common/pdx.c"
> @@ -29,7 +30,7 @@ static void print_ranges(const struct range *r)
>      }
>  }
>  
> -int main(int argc, char **argv)
> +int main(int argc, char *argv[argc+1])
>  {
>      static const struct {
>          struct range ranges[MAX_RANGES];

No renaming to test_main() here?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:32:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:32:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239908.1541311 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqeS-0007JZ-Pb; Tue, 24 Feb 2026 11:32:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239908.1541311; Tue, 24 Feb 2026 11:32: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 1vuqeS-0007JS-Mf; Tue, 24 Feb 2026 11:32:28 +0000
Received: by outflank-mailman (input) for mailman id 1239908;
 Tue, 24 Feb 2026 11:32: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuqeR-0007JM-0T
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:32:27 +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 7e20069d-1174-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 12:32:25 +0100 (CET)
Received: by mail-wm1-x32a.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso46122585e9.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:32:25 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31b3e0dsm505537675e9.1.2026.02.24.03.32.24
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:32:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7e20069d-1174-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771932745; x=1772537545; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=jLZOVcceKsquS566VW3znAXUsY+pw+n4Ex9lIEWo9S8=;
        b=f0Zk4uD6pYAgGOiznlWZ5X8jfOwYY5RUYQiO8/kbfjuJDV+NuAMBqEh5X5jai440iL
         loDqnSNmke9krs/dj+yf9Q7I3aVvvOMIzgeRMD45ThQCxxJ3uNT8emzDGPORVIgzHhWG
         ePTXLjM45Jd6UyULRa7GPP6e9dmYZ5MB3mJzIJdQNYLMkoUEanPbVqVfrLU3w0yQ388c
         swsOlcy8mqnHzEi2uwO4xADcMEaSTwHKmZSLnjjuFvZSc6vdSqLteG1Eqba5+7g5hLxL
         R/SUVgsc6d037a2srxH5p2FIPZhi3BiUhlrLXFuzcxnXM63l4D7CFgCWIvZClN3obhzH
         W7vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771932745; x=1772537545;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jLZOVcceKsquS566VW3znAXUsY+pw+n4Ex9lIEWo9S8=;
        b=auHzkz8eje2hP2ue7WABGNIKO153EwZubv4qYWEpmyy89f+yt7sAetb6P0fLGYYqbl
         qh7FHZhjxG+9DhNrSCtkmn2VRVLKwfkGfui6SF9l1g45ZfNt4JYaXv/B51VwKQdUaFet
         uK5XvaLzSuE9aEz8TKUw1HicnYyBlNKlT0KgPsd0QovdWvERFm8g147KRVYm4MKqSHk5
         28vhiPRyni/D5ykevECbiAVfEDplb4MU8cNhAJIFJPr/AHkTlnproUSfi8f0ejmwup5C
         tS9SoRrgzxdTsZ4Q3WGsifL+1XjUFD21yIyUwUokoLzYYfQP28hUiwiMKKSdZBJiG4hS
         qsqw==
X-Forwarded-Encrypted: i=1; AJvYcCUSgxgDnj7iHRopxW8GUGwFzR5CpWticp4zg0UXpjSvNWnfssN3Q9zik8vHmfDuqLpHWzocctB4qGY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyeApbAksb0GE1r9AAdEk/J5FDOM5uWWKAVoGiXFpZF/1HgSIvG
	Tr3QPtEX7uk4bovwwPIOffZeH+Txh67oCCB3CdqQ35HVP+Ay6YtUQ0Z5qyWTVc8Fmw==
X-Gm-Gg: AZuq6aIMXD89bHhCLUk9Bk2cI0gpX7iYU3TzFJO/QGapw6uneh7M++8jhAxfzJqJRIn
	eXf8Nj12lrCgm+ck2Q97AoToax8neYXH4oQHlJkMP8NHAIkC6REiTeqmNCilsMBTGHLrjb0a8B1
	FhhQOi47nHKRDV/t59QAKsgy2J493lhOeoklELOMvhaohYXOvi3nrOVLOUsGliZYeLbrXp8zkfO
	qa9fmEe5A/s3c65633vUmLV+NVUgFVNfbXstbbiz1CMYgX9qBaJ8+uLRjFawfvIrcqcH+8+Qwj0
	ADtGYolwFesT+YwauVBNyD5nyNCib/ehvdnWSk7A47HeWxOjljZ1kHK1ur3/0AzBxrA4MmwsFb/
	fwT/O65VR1EPt09hOy2vpXNKtDCjjVnG7UwJgkn+3f486NX21z9aemXT7XgQ03FNh7G5CVCgmos
	P5rueNGQxmC++RPXHINhh1R7OtknZhDPiE714sRiThGHYldevoNN5eptAU9vJLMbNUHiPu7cCU9
	mzPHOHE/vK5yDM=
X-Received: by 2002:a05:600c:3b0a:b0:47e:e2ec:9947 with SMTP id 5b1f17b1804b1-483a963df7amr199406065e9.33.1771932744875;
        Tue, 24 Feb 2026 03:32:24 -0800 (PST)
Message-ID: <1f2f7f37-0a2b-407f-918a-ac35cbbd5cd4@suse.com>
Date: Tue, 24 Feb 2026 12:32:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
 <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
 <e084cd6f-e76d-40c1-9e30-97e10acae012@gmail.com>
 <541a6c57-406c-49e5-8b8b-019e30bf0d89@suse.com>
 <5e4362ed-c310-442b-a742-ca7c3d1c47dc@gmail.com>
 <c388593e-8371-4040-a179-c0bf32ae0696@suse.com>
 <42847a9e-71e1-47a0-b4fb-7d8c91370bf4@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: <42847a9e-71e1-47a0-b4fb-7d8c91370bf4@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.02.2026 12:25, Oleksii Kurochko wrote:
> 
> On 2/24/26 11:47 AM, Jan Beulich wrote:
>> On 24.02.2026 11:42, Oleksii Kurochko wrote:
>>> On 2/24/26 11:16 AM, Jan Beulich wrote:
>>>> On 24.02.2026 10:44, Oleksii Kurochko wrote:
>>>>> On 2/24/26 9:07 AM, Jan Beulich wrote:
>>>>>> On 20.02.2026 17:18, Oleksii Kurochko wrote:
>>>>>>> --- a/xen/arch/riscv/domain.c
>>>>>>> +++ b/xen/arch/riscv/domain.c
>>>>>>> @@ -2,9 +2,39 @@
>>>>>>>     
>>>>>>>     #include <xen/init.h>
>>>>>>>     #include <xen/mm.h>
>>>>>>> +#include <xen/sections.h>
>>>>>>>     #include <xen/sched.h>
>>>>>>>     #include <xen/vmap.h>
>>>>>>>     
>>>>>>> +#include <asm/cpufeature.h>
>>>>>>> +#include <asm/csr.h>
>>>>>>> +
>>>>>>> +struct csr_masks {
>>>>>>> +    register_t hedeleg;
>>>>>>> +    register_t henvcfg;
>>>>>>> +    register_t hideleg;
>>>>>>> +    register_t hstateen0;
>>>>>>> +};
>>>>>>> +
>>>>>>> +static struct csr_masks __ro_after_init csr_masks;
>>>>>>> +
>>>>>>> +void __init init_csr_masks(void)
>>>>>>> +{
>>>>>>> +#define INIT_CSR_MASK(csr, field) do { \
>>>>>>> +    register_t old; \
>>>>>>> +    old = csr_read(CSR_##csr); \
>>>>>> Can't this be the initializer of the variable? Can't ...
>>>>> I agree that this is change is okay to be done but I am not sure about ...
>>>>>
>>>>>>> +    csr_set(CSR_##csr, ULONG_MAX); \
>>>>>> ... csr_swap() be used here, too?
>>>>> ... as after re-reading spec again I am not sure that we can do in this way
>>>>> at all.
>>>>>
>>>>> Initially I used csr_set() instead of csr_swap() or csr_write() as csr_set() to
>>>>> take into account a writability of the bit, so it won't touch a bit if it
>>>>> is r/o.
>>>> To me the spec isn't quite clear enough in this regard.
>>>>
>>>>> But it seems like this approach won't work with**WLRL or WPRI fields as these
>>>>> fields aren't r/o,
>>>> In the CSRs presently dealt with, are there any WLRL fields at all? (I don't
>>>> think WPRI fields represent much of an issue for the purpose here.)
>>> Agree, currently used CSRs in this function don't have WLRL feilds, but I suppose
>>> we want to have the similar treatment (read WLRL fields and reuse what was read)
>>> for WLRL fields as these fields expect only valid value and so all 1s for this
>>> fields can be wrong to use.
>>>
>>>>> but they only support specific value and for example:
>>>>>
>>>>> - Implementations are permitted but not required to raise an
>>>>>      illegal-instruction exception if an instruction attempts to write a
>>>>>      non-supported value to a WLRL field.
>>>>> - For these reserved fields, software is required to preserve the existing
>>>>>      values when writing to other fields in the same register. Overwriting them
>>>>>      with 1s could be considered non-compliant behavior.
>>>>>
>>>>> So it seems like we can't just do csr_swap() with all 1s and it is needed
>>>>> to pass a mask to INIT_CSR_MASK() which will tell which bits should be
>>>>> ignored and don't touched.
>>>>> For example, HENVCFG and HSTATEEN0 has WPRI fields.
>>>>>
>>>>> reserved_bits_mask = 0x1FFFFFFCFFFFFF00;
>>>>> tmp = csr_read(HENVCFG);
>>>>> tmp=(~reserved_bits_mask) |(tmp&reserved_bits_mask); csr_set(HENVCFG, tmp);
>>>> What I find further concerning is that HSTATEEN0 also may have read-only-1
>>>> fields. You don't currently cope with that, I think.
>>> Because of this:
>>>     A bit in an hstateen CSR cannot be read-only one unless the same bit is
>>>     read-only one in the matching mstateen CSR.
>>> ?
>>>
>>> I expect that it will be covered by csr_set() which will touch only writable
>>> bits and ignore read-only. So doesn't matter if a bit is read only 1 or 0
>>> it still shouldn't be in the final mask.
>> But the hypervisor view of the register value seen by guests won't be correct.
>> Recall that you moved to probing to make sure that the cached values we have
>> in the hypervisor properly match the values seen by the guest?
> 
> Then we have to store what csr_read(hstateen0) returns in struct csr_masks in
> new field hstateen0_ro_ones. And then in the next patch apply that new field
> in vcpu_csr_init():
>    v->arch.hstateen0 = hstateen0 & csr_masks.hstateen0 |
>                        csr_masks.hstateen0_ro_ones;
> 
> Are you okay with such changes?

Properly structured, sure. That's pretty much unavoidable, isn't it?

As to "structured", for example I wonder whether hstateen0_ro_ones isn't
going to lead to redundancies once further registers appear which may have
r/o-1 fields. Maybe there should be "ro_one" sub-struct right away?

And of course "structured" also touches on proper parenthesization of the
statement above.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:36:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:36:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239919.1541322 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqif-0007sK-Ae; Tue, 24 Feb 2026 11:36:49 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239919.1541322; Tue, 24 Feb 2026 11:36: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 1vuqif-0007sD-7M; Tue, 24 Feb 2026 11:36:49 +0000
Received: by outflank-mailman (input) for mailman id 1239919;
 Tue, 24 Feb 2026 11:36: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuqie-0007s6-M2
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:36:48 +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 19587479-1175-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 12:36:46 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-483abed83b6so20596455e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:36:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a31f0330sm293692385e9.9.2026.02.24.03.36.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:36:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19587479-1175-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771933006; x=1772537806; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=wcbfO0w5mD2tiYoO5vmB/C+XiaP1k8VsTMZP7q+TejQ=;
        b=V1CAlrrUD5X7AM+fivLpamSLes2SPwuVw6C78GSM+3n9yjG//yyJ60K8grhF1UAhbr
         Hnm+gjTrLy2z14IMu8t8EUdKxH4GG2XQnOFxdtRcXhtVZyivbPzJ4SfsXazZiHnuA5Ut
         5buERTRarI1rn2J5uka4VrM1bXCBZnSzG5x4iIcfsRNH/xJAhi+EsP9F9fFqNq4vjQ/p
         ca/cjGvERxsiga6VH2xC/vkZ0dbwfNCjIYI4QtTvDBQpM+8+05VPzeNsDUFHTB8TbYPu
         4HRjT4W4dUGZQbJZQ9xjNHFH21S3mqbc90Nzyxv1DX2y/YvOQyHRAagzHau0Q/FgmCID
         axXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771933006; x=1772537806;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wcbfO0w5mD2tiYoO5vmB/C+XiaP1k8VsTMZP7q+TejQ=;
        b=Wd+xGwxD9hF9FnSiWK6uzRFV2D0pK8ojsikEAlp/2gbAJOLa2hY/PVjNtHFHszdi6y
         p4V9mwrVqfTlOJ2ewLG9k82EMa/xh+woKYzXVkxTgJcvNjSabB5VzAzcA8Aol7MqLkl5
         yriI9G05qs+UECRU3K8KEwsshj72K2YUpEpt6uJvHGBDf+0ICGRcoaPEBM77fOhzeu/B
         MecL+zjrEylCS6GGjGp7dNLmizdnnuP91vP9wTqtNlokz6awKvfQfr0U0PJe5Qc4ikCD
         t1zePM4VZNWGl+pNmmxxL/oxNA6mg7nsc3uS3Bw+Lf1Rp5Tm9LjMuBul98YDRsYuLCRd
         fOwQ==
X-Forwarded-Encrypted: i=1; AJvYcCUTbgxdzQLv7BQ0Pu9jlUpZPcohUCqnTLzKBX1gDDgEEcXWZEUiu8Wv3IZIfpc7vfjpc1Z7pA3/Z7M=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yweu1AXT1OxNVN5eRblYznkpk/hBuiMTGW1w0bNqdpWOimHO+iY
	GX5A2p2Q8gS0LEQx/4Q1n6DJ3bTJ88v+GlDhMhqkBsCEKO/8Akx5Ek6ZUR7TyMim10bWgXwYV3Q
	QARM=
X-Gm-Gg: AZuq6aKro54qH/4drpafQZueUOM5Y8wNKpj1YU9wygNQp8eI9yyWOeJYaEpZoj/QvQw
	n5v0Moxd0js0lyYc3lWBS0Nx+a0UsaGwDqn38yNrgtsGCRxVuVJsDPd9dLfLCeEPotsDyo+EV7k
	yN/TpwC4GM3I27IMW31ljuXO+WJtePWVGHmlfGTVDWYRsDzb2ySGJkK4eMbq0KIIAf2BYyu/+9O
	0O5jy7mWGsjAQhOu3YKIt4uupS9AfpTkI+pKzbbpV3YrPMu7+t6JeK6sTNcwUUBZoKXhbMyyfDa
	FM06ALFUbKuM2QbWchVOtWvKzegD7R+7xnzJuXTaNslpEp19xhKI4NdIjlroUn/vRZf8vhBEsKY
	Wm5d74y2YKVmCOkoD/UDMQ+RCkng1trrP/tCDkCApxcwUz9a8oQ2g1PzbVACZEzYalBR+/ljGpw
	e9j82/vVL+GaHVrCZALnRBuX67VsFlSTHAy0+gybFIwj8kOBhIYO006VAqqiE0Eo8F2Ny2uWaAT
	40nKBMzvb2VXV0=
X-Received: by 2002:a05:600c:46c9:b0:483:a21:774c with SMTP id 5b1f17b1804b1-483a95eab7cmr203476755e9.25.1771933005584;
        Tue, 24 Feb 2026 03:36:45 -0800 (PST)
Message-ID: <92a9c5a3-1084-4efd-97c2-350a41167038@suse.com>
Date: Tue, 24 Feb 2026 12:36:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/7] tools/tests/common: ensure error messages have a
 newline
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <b41bf6aed1fb428fd8097c4afb414d88664b2b05.1771840831.git.edwin.torok@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: <b41bf6aed1fb428fd8097c4afb414d88664b2b05.1771840831.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:14, Edwin Török wrote:
> Otherwise messages from the next test will end up on the same line as an
> error message from a previous test.
> (calling `fail` is not fatal).

Will they? Glancing quickly over the uses of fail(), I see most if not all
of them using a newline. Same for verify(). Imo either all use sites have
newlines, or all use sites lose them in favor of adding them centrally ...

> --- a/tools/tests/common/tests.h
> +++ b/tools/tests/common/tests.h
> @@ -6,12 +6,12 @@ extern unsigned int nr_failures;
>  #define fail(fmt, ...)                          \
>  ({                                              \
>      nr_failures++;                              \
> -    (void)printf(fmt, ##__VA_ARGS__);           \
> +    (void)printf(fmt"\n", ##__VA_ARGS__);           \
>  })
>  
>  #define verify(exp, fmt, args...) \
>  while (!(exp)) { \
> -    printf(fmt, ## args); \
> +    printf(fmt"\n", ## args); \
>      exit(EX_SOFTWARE); \
>  }

... here.

As a style nit - please have a blank between fmt and the string literal.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:46:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:46:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239930.1541332 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqsE-0001TH-7L; Tue, 24 Feb 2026 11:46:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239930.1541332; Tue, 24 Feb 2026 11:46: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 1vuqsE-0001TA-31; Tue, 24 Feb 2026 11:46:42 +0000
Received: by outflank-mailman (input) for mailman id 1239930;
 Tue, 24 Feb 2026 11:46: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=1YgY=A4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vuqsC-0001T4-QJ
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:46:40 +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 79a8ce3c-1176-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 12:46:37 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-480706554beso65352975e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:46:37 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970bf9feasm26126981f8f.6.2026.02.24.03.46.35
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:46:36 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79a8ce3c-1176-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771933597; x=1772538397; 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=KBpDW2UZJ+AEKjoK35PVxqs6sEnhdcangKbKOTA4mFA=;
        b=Pu+RirOzN7Vvitz4wCb0XVY4dmnLngS6iOb0YW9dA5EgNg4YuS+rY/+BxJ6Og7MEQ3
         6WB6GIY9W3V6z/6NCSVk2UFDWazWtf7hZXQNAEkYkPFsbRz8nfxObIItPvVCESgUWtK1
         UuHM0Yzx2lbIsNQVvkv2wcfFdx75Pt5YDjvtSiLQW7Ltd8mpYEQpPYx/gPNpQOexF82u
         6mPuk5bUn2Sj+gPHsFr0WGrdOyaha/jNDTOoXudo9F05aHLs+XGMNyZzkbLkBwpCxQpg
         nZCeVdtQr22pJbftnfJz/wyk/J/kG8VJRa9jbN/aQckLMpP/xNoXm/NA9DcBdmDbcmJD
         K1rQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771933597; x=1772538397;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KBpDW2UZJ+AEKjoK35PVxqs6sEnhdcangKbKOTA4mFA=;
        b=ZXMbr9jffV4RM4hhZx3r25rNPcnxGYGiIiU2wgjEgBOPQu1XKk7bvHPNDYqBmi+RMZ
         pXdMqKXwF1APZJhiYGXdh3tXsrzV+NlVza1Vvd0TjDXP4N7AmhjNGQ8xUE3loeozBFZA
         /8VI5+a9i+45n5mr/YOHxhiR+cqNQsmyaVyz3roYU9fZk1PYugqCMNuET6seloii4M8B
         Jml6U2fYU3BVnAsvXc3joUTRRAtbZIgJhNLsi6cRD+YnNDodVOAeCqu/eFAi2rFppwoz
         czxE5Fhk4i1yAWXytvn6YIYqCgpdBxpXUR2Xgnve5BpO2s/jMDKjnT1HrvdxQcO/Took
         y2iw==
X-Forwarded-Encrypted: i=1; AJvYcCUkjj4OzmBO24j4fADnzQH/jWyzB2jKgJNCXhOqEmzq9SVSV9ebRnZaxkQi4KzHl+2ome8PcMSzv7o=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yyg2xYv5pTShcahvQwbYcREJEJaPzotsQTjcmSfykcVw3le6td0
	qwMGuhSiUnTfpnkXg9iIM8GWPTGLmjY5dg2VHRAjFLTzquEejn/O3Bdg
X-Gm-Gg: AZuq6aL4SnW5nOBfJwU2BViv1vnO/YMSZCCq2wOK0Aryfg8B433uxGZwuVjcwzjydIM
	qD3AnzOlmrLoAjZNZBwlkl2UwygQyGXsJKTV+C9/oP8GuEYW/VDPkNG9c9Gqz/Ik4whCkpPpp5S
	PdkEr3mJqPAUPznh4mQUESNHNWnEb5IMiNTNSQIggo85FmBhac2sOgDd/dADRB1/a9eL5L6zc9f
	tQ3oMRNSUotKASq0ctpXMpqTCZ2fC/7GpBfIhtYUwPMnAg0Lu6k7aQiluUHtJ6P12WqfqqUnPot
	EtFAC2rbT4ONqUdAjv6XiBg0iMEQYWPAW9ns9v5P7fp2K5XdN/0hJn6tAMaEAftHLHpoKQY532x
	lNA4KKZR9rwzGCotAMaKoD94kZlDsh2mcjh9XDkuKl/UpZAXXhNUhjDJilHA+7OVRzWvWaFQbt8
	w1fuwbKsB1YOSjnQmasxXQ25hHYpNhrP5HPnoLNUDjhy6wI+t3XeGrv6JLvK4j3l/ktP5cl6BQp
	FE=
X-Received: by 2002:a05:600c:34d3:b0:47a:975b:e3e6 with SMTP id 5b1f17b1804b1-483a962e175mr209312965e9.18.1771933596368;
        Tue, 24 Feb 2026 03:46:36 -0800 (PST)
Message-ID: <b89d5998-c037-495f-8c25-0513587261ee@gmail.com>
Date: Tue, 24 Feb 2026 12:46:34 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 03/14] xen/riscv: introduce tracking of pending vCPU
 interrupts, part 1
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <8c2259991754f219ba030606f39d629eb365b01c.1771590794.git.oleksii.kurochko@gmail.com>
 <17c88ded-48cd-4642-91a4-03fc4575a7ea@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <17c88ded-48cd-4642-91a4-03fc4575a7ea@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 2/24/26 11:54 AM, Jan Beulich wrote:
> On 20.02.2026 17:18, Oleksii Kurochko wrote:
>> Based on Linux kernel v6.16.0.
>> Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
>> we want to guarantee that if a bit in irqs_pending_mask is obversable
>> that the correspondent bit in irqs_pending is observable too.
>>
>> Add lockless tracking of pending vCPU interrupts using atomic bitops.
>> Two bitmaps are introduced:
>>   - irqs_pending — interrupts currently pending for the vCPU
>>   - irqs_pending_mask — bits that have changed in irqs_pending
>>
>> The design follows a multi-producer, single-consumer model, where the
>> consumer is the vCPU itself. Producers may set bits in
>> irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
>> performed only by the consumer via xchg(). The consumer must not write
>> to irqs_pending and must not act on bits that are not set in the mask.
>> Otherwise, extra synchronization should be provided.
>>
>> On RISC-V interrupts are not injected via guest registers, so pending
>> interrupts must be recorded in irqs_pending (using the new
>> vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
>> HVIP before returning control to the guest. The consumer side is
>> implemented in a follow-up patch.
>>
>> A barrier between updating irqs_pending and setting the corresponding
>> mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
>> that if the consumer observes a mask bit set, the corresponding pending
>> bit is also visible. This prevents missed interrupts during the flush.
>>
>> It is possible that a guest could have pending bit in the hardware
>> register without being marked pending in irq_pending bitmap as:
>>    According to the RISC-V ISA specification:
>>      Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
>>      interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
>>      is an alias (writable) of the same bit in hvip.
>>    Additionally:
>>      When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
>>      zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
>>      hie.VSSIE.
>> This means the guest may modify vsip.SSIP, which implicitly updates
>> hip.VSSIP and the bit being written with 1 would also trigger an interrupt
>> as according to the RISC-V spec:
>>    These conditions for an interrupt trap to occur must be evaluated in a
>>    bounded   amount of time from when an interrupt becomes, or ceases to be,
>>    pending in sip,  and must also be evaluated immediately following the
>>    execution of an SRET  instruction or an explicit write to a CSR on which
>>    these interrupt trap conditions expressly depend (including sip, sie and
>>    sstatus).
>> What means that IRQ_VS_SOFT must be synchronized separately, what is done
>> in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
>> synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
>> PMU isn't supported now.
>>
>> For the remaining VS-level interrupt types (IRQ_VS_TIMER and
>> IRQ_VS_EXT), the specification states they cannot be modified by the guest
>> and are read-only because of:
>>    Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
>>    bits for VS-level external interrupts. VSEIP is read-only in hip, and is
>>    the logical-OR of these interrupt sources:
>>      • bit VSEIP of hvip;
>>      • the bit of hgeip selected by hstatus.VGEIN; and
>>      • any other platform-specific external interrupt signal directed to
>>        VS-level.
>>    Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
>>    bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
>>    logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
>>    signal directed to VS-level.
>> and
>>    When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
>>    Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.
>>
>>    When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
>>    Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
>> and also,
>>    Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
>>    bits for supervisor-level external interrupts. If implemented, SEIP is
>>    read-only in sip, and is set and cleared by the execution environment,
>>    typically through a platform-specific interrupt controller.
>>
>>    Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
>>    bits for supervisor-level timer interrupts. If implemented, STIP is
>>    read-only in sip, and is set and cleared by the execution environment
>> Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
>> and vcpu_unset_interrupt(), and flush them during the call of
>> vcpu_flush_interrupts() (which is introduced in follow up patch).
>>
>> vcpu_sync_interrupts(), which is called just before entering the VM,
>> slightly bends the rule that the irqs_pending bit must be written
>> first, followed by updating the corresponding bit in irqs_pending_mask.
>> However, it still respects the core guarantee that the producer never
>> clears the mask and only writes to irqs_pending if it is the one that
>> flipped the corresponding mask bit from 0 to 1.
>> Moreover, since the consumer won't run concurrently because
>> vcpu_sync_interrupts() and the consumer path are going to be invoked
>> sequentially immediately before VM entry, it is safe to slightly relax
>> this ordering rule in vcpu_sync_interrupts().
>>
>> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>> Changes in v5:
>>   - Update the commit message().
>>   - Rename c to curr.
>>   - Update vcpu_set_interrupt() to use test_and_set_bit() for irqs_pending
>>     bitmask too.
>>   - Move #ifdef CONFIG_RISCV_32 above the comment in vcpu_sync_interrupts().
>> ---
>> Changes in v4:
>>   - Update the commit message.
>>   - Update the comments in vcpu_(un)set_interrupt() and add the the  comment
>>     above smp_wmb() barrier.
>>   - call vcpu_kick() only if the pending_mask bit going from 0 to 1.
>>   - Code style fixes.
>>   - Update defintion of RISCV_VCPU_NR_IRQS to cover potential RV128 case and
>>     the case if AIA isn't used.
>>   - latch current into a local variable in check_for_pcpu_work().
>> ---
>> Changes in v3:
>>   - Use smp_wb() instead of smp_mb__before_atomic().
>>   - Add explanation of the change above in the commit message.
>>   - Move vcpu_sync_interrupts() here to producers side.
>>   - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
>>     is called.
>> ---
>> Changes in V2:
>>   - Move the patch before an introduction of vtimer.
>>   - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
>>     vcpu structure starts out all zeros.
>>   - Drop const for irq argument of vcpu_{un}set_interrupt().
>>   - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
>>     could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
>>   - Drop IRQ_LOCAL_MAX as there is no usage for it now.
>> ---
>>   xen/arch/riscv/domain.c             | 75 +++++++++++++++++++++++++++++
>>   xen/arch/riscv/include/asm/domain.h | 23 +++++++++
>>   xen/arch/riscv/traps.c              |  4 ++
>>   3 files changed, 102 insertions(+)
>>
>> diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
>> index c9494db0fbe7..335c41f3e5a1 100644
>> --- a/xen/arch/riscv/domain.c
>> +++ b/xen/arch/riscv/domain.c
>> @@ -6,6 +6,7 @@
>>   #include <xen/sched.h>
>>   #include <xen/vmap.h>
>>   
>> +#include <asm/bitops.h>
>>   #include <asm/cpufeature.h>
>>   #include <asm/csr.h>
>>   #include <asm/riscv_encoding.h>
>> @@ -140,6 +141,80 @@ void arch_vcpu_destroy(struct vcpu *v)
>>       vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
>>   }
>>   
>> +int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
>> +{
>> +    bool kick_vcpu;
>> +
>> +    /* We only allow VS-mode software, timer, and external interrupts */
>> +    if ( irq != IRQ_VS_SOFT &&
>> +         irq != IRQ_VS_TIMER &&
>> +         irq != IRQ_VS_EXT )
>> +        return -EINVAL;
>> +
>> +    kick_vcpu = !test_and_set_bit(irq, v->arch.irqs_pending);
>> +
>> +    /*
>> +     * The counterpart of this barrier is the one encoded implicitly in xchg()
>> +     * which is used in consumer part (vcpu_flush_interrupts()).
>> +     */
>> +    smp_wmb();
>> +
>> +    kick_vcpu |= !test_and_set_bit(irq, v->arch.irqs_pending_mask);
>> +
>> +    if ( kick_vcpu )
>> +        vcpu_kick(v);
>> +
>> +    return 0;
>> +}
>> +
>> +int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
>> +{
>> +    /* We only allow VS-mode software, timer, external interrupts */
>> +    if ( irq != IRQ_VS_SOFT &&
>> +         irq != IRQ_VS_TIMER &&
>> +         irq != IRQ_VS_EXT )
>> +        return -EINVAL;
>> +
>> +    clear_bit(irq, v->arch.irqs_pending);
>> +    /*
>> +     * The counterpart of this barrier is the one encoded implicitly in xchg()
>> +     * which is used in consumer part (vcpu_flush_interrupts()).
>> +     */
>> +    smp_wmb();
>> +    set_bit(irq, v->arch.irqs_pending_mask);
>> +
>> +    return 0;
>> +}
>> +
>> +void vcpu_sync_interrupts(struct vcpu *v)
>> +{
>> +    unsigned long hvip;
>> +
>> +    /* Read current HVIP and VSIE CSRs */
>> +    v->arch.vsie = csr_read(CSR_VSIE);
> What is this needed for, btw? There's no consumer of the field, and the register
> can change right after re-entering the guest.

I missed to clean up that and introduce later.

I am going to use it in the function which will verify if vCPU has interrupts and
so it would be nice to update v->arch.vsie each time (and not only when context
switch is happening) we are in hypervisor to avoid csr_read(CSR_VSIE) each time
and have up to date value.

For now it could be dropped.

>
>> --- a/xen/arch/riscv/include/asm/domain.h
>> +++ b/xen/arch/riscv/include/asm/domain.h
>> @@ -54,8 +54,26 @@ struct arch_vcpu {
>>       register_t hideleg;
>>       register_t henvcfg;
>>       register_t hstateen0;
>> +    register_t hvip;
>>   
>>       register_t vsatp;
>> +    register_t vsie;
> Somewhat dependent upon the question above, might hvip and vsie also better
> sit close together?

I will take that into account when vsie will be re-introduced.

Thanks.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 11:49:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 11:49:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239945.1541343 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuqv9-0002PZ-Mw; Tue, 24 Feb 2026 11:49:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239945.1541343; Tue, 24 Feb 2026 11: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 1vuqv9-0002PS-Ix; Tue, 24 Feb 2026 11:49:43 +0000
Received: by outflank-mailman (input) for mailman id 1239945;
 Tue, 24 Feb 2026 11:49: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vuqv8-0002PM-CX
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 11:49:42 +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 e7476321-1176-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 12:49:41 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso61404365e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 03:49:41 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483b88ead80sm38078665e9.2.2026.02.24.03.49.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 03:49:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e7476321-1176-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771933780; x=1772538580; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=Qhe7hTMJVxJK6ttJDSkdxn9dn7WGw/zc+csxb9Sz8Ys=;
        b=Q5joespUySUV5MMr6RKB9SUk7Gc40YRCcwFG7mBVulndM2uGSzu2mIL7HxwdGd1LCV
         4rw7YOJU/qHRjpjAJaljGazvip/s2WronwSEBuyZc1Vn0PMfE+3NfVtLF/WLjoi4TP1q
         kfJ1RInQDNap6vLVzNQQeuyj5QvoJmvKzO9yMRn849aLRLLIznGenMgND5BBnLFhNEI+
         5QmIOgjROdip+wz7jvDpdNzZxyAxgheCQtUnFq6/AOiczJTt1RU0YsceZSiggWHsv7hY
         0szVfZOZb2RxzrBynBMU7Ra82MyNi8HAfW84tJ0ighXeggp+z3ektEm2ZC21XaB57Dzi
         OKNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771933780; x=1772538580;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Qhe7hTMJVxJK6ttJDSkdxn9dn7WGw/zc+csxb9Sz8Ys=;
        b=CWUXPCnx8Eej8tpvAmlWirtwMlJWndroasCfWbDntsIr5goeoZpIT5TewTy/nl8lXY
         uRDUsrbUoSahem74VDF0tLQv5uoAiqi3lnaXquwu26iSWG2dSOIZikuDarmXiulsSqHL
         dnR0gcr45M9JbtVSYWVQRc4iKUdstE9t+ILCrhCh4EYDDmsMoVq1yByf3sVz0kJQejSu
         wL6zVLSmC3+1hLr5PA1rUn3KgcGRGjpIx3L++92ct9tanGYqfe4RklpO2ecmlq4Iz0Qp
         0M3v2cDjGdcuuQSwSP27OGsDkDwmNZMrRlOkwrJ67DPT8Ymznojt1jNiAzAKilIfzpkQ
         oyGg==
X-Forwarded-Encrypted: i=1; AJvYcCVchBkyoJvDvKCZyxzmQg1G6pYgb7QkYubh486v+mwwJghtgRVnv02nr7VBrz55JNDOV5s9bEommE4=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzGNlZeQe288D7ABmlFECYZK0j4wwNRKpvx3E0yMdsRR3vSUiFk
	IGGiAfFfybvGumh5KpatCe1b4WjnRXlYMIMiOsfh1evDRZBPFGJ3XOC4U5Koo2gr5A==
X-Gm-Gg: AZuq6aJs9U712uRpxQi/1V8zVXO6sBfBB0OH92Zy/HH4U0psgOqC0sLD9DPKcCGEvwv
	3JUI6vS7NbGLYv0rXb+h0I+8OqMUyUI65enR4hemB6yO9eIgbu3Ixwh1dP9T13rDWICEJobAQPz
	gvkJqcMKntBs6wa5XftSmrelkZlVpAMEiGN1Roan/OWV81IvRl8muRG1JD+XW1u5W6ggmFZpaoG
	5JhRcBPT+xrldhSP2iT8dAZfVJxTRO9u14bMoSZDlB2HfDif69/kGvvER7smSqAmqydvEDbxxUI
	mSwPlOr9P0VC83TI3VkfDCSGO32CPfFJoB0QQyktUFyf5X75o9Vj5xnCUNQ/x6aK4VR1d1DmYw7
	N0IsH9gnqzcNiC5mBCLvDn0SATIPf5rPcFPt85BcPDBppPUgq6AQ1bCnBbWbw4MAzkEKa5psCSJ
	AT3V2dkauUMYJK5acwHEE3SG4lYJ7iOpTWBbEtowkmJJgOo3O+js+vA8kShJ70g8Vv0Ap1S3Hjj
	cCwApdXYNrCvttDfii/fNwQgQ==
X-Received: by 2002:a05:600c:530f:b0:483:bcff:7948 with SMTP id 5b1f17b1804b1-483bcff7bd8mr4212805e9.10.1771933780324;
        Tue, 24 Feb 2026 03:49:40 -0800 (PST)
Message-ID: <a5ff71e6-5c9c-41c8-bc28-e9b9bab7a0f1@suse.com>
Date: Tue, 24 Feb 2026 12:49:39 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 6/7] tools/tests/tsx: move guest creation to common area
To: =?UTF-8?B?RWR3aW4gVMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>, xen-devel@lists.xenproject.org
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <78e4cef251a188713e4b2e13fd6185cc2f1d856b.1771840831.git.edwin.torok@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: <78e4cef251a188713e4b2e13fd6185cc2f1d856b.1771840831.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 23.02.2026 11:14, Edwin Török wrote:
> --- /dev/null
> +++ b/tools/tests/common/guests.c

Everything in the file uses singular, si I'd suggest to use singular also for
the file name.

> @@ -0,0 +1,87 @@
> +#define _GNU_SOURCE
> +#include "guests.h"
> +#include "tests.h"
> +
> +#include <err.h>
> +#include <errno.h>
> +#include <string.h>
> +
> +xc_interface *xch;
> +xc_physinfo_t physinfo;
> +bool xen_has_pv = true, xen_has_hvm = true;

static for at least some of these?

> +void test_guest_init(void)
> +{
> +    int rc;
> +    xch = xc_interface_open(NULL, NULL, 0);
> +
> +    if ( !xch )
> +        err(1, "xc_interface_open");
> +
> +    rc = xc_physinfo(xch, &physinfo);
> +    if ( rc )
> +        err(1, "Failed to obtain physinfo");
> +
> +    xen_has_hvm = physinfo.capabilities & XEN_SYSCTL_PHYSCAP_hvm;
> +    xen_has_pv = physinfo.capabilities & XEN_SYSCTL_PHYSCAP_pv;
> +}
> +
> +void test_guest(struct xen_domctl_createdomain *c)

static?

> +{
> +    uint32_t domid = 0;
> +    int rc;
> +
> +    if (!xch)

Everything else uses Xen style, so this wants to, too.

> +        return fail("test_guest_init() not called");
> +
> +    rc = xc_domain_create(xch, &domid, c);
> +    if ( rc )
> +        return fail("  Domain create failure: %d - %s\n",
> +                    errno, strerror(errno));
> +
> +    printf("  Created d%u\n", domid);
> +
> +    test_guest_domid(domid);

This might better be passed as a function pointer, so harnesses can have
multiple functions dealing with different aspects of the testing.

> +    rc = xc_domain_destroy(xch, domid);
> +    if ( rc )
> +        fail("  Failed to destroy domain: %d - %s\n",
> +             errno, strerror(errno));
> +}
> +
> +void test_guests(void)
> +{
> +    if ( xen_has_pv )
> +    {
> +        struct xen_domctl_createdomain c = {
> +            .max_vcpus = 1,
> +            .max_grant_frames = 1,
> +            .grant_opts = XEN_DOMCTL_GRANT_version(1),
> +        };
> +
> +        printf("Testing PV guest\n");

To easily distinguish things in the output of a harness creating multiple
guests, some disambuating string may want passing in.

> +        test_guest(&c);
> +    }
> +
> +    if ( xen_has_hvm )
> +    {
> +        struct xen_domctl_createdomain c = {
> +            .flags = XEN_DOMCTL_CDF_hvm,
> +            .max_vcpus = 1,
> +            .max_grant_frames = 1,
> +            .grant_opts = XEN_DOMCTL_GRANT_version(1),
> +            .arch = {
> +                .emulation_flags = XEN_X86_EMU_LAPIC,
> +            },
> +        };

For starters this may work, but longer term we may need ways to specify certain
propertied of the to be created guest(s).

> --- /dev/null
> +++ b/tools/tests/common/guests.h
> @@ -0,0 +1,11 @@
> +#include <xenctrl.h>
> +#include <xen/domctl.h>
> +
> +extern void test_guest_domid(domid_t domid);

Nit: If this was to stay, no need for "extern", just like ...

> +extern xc_interface *xch;
> +extern xc_physinfo_t physinfo;
> +extern bool xen_has_pv, xen_has_hvm;
> +
> +void test_guest_init(void);
> +void test_guest(struct xen_domctl_createdomain *c);
> +void test_guests(void);

... you have none here.

> --- a/tools/tests/tsx/Makefile
> +++ b/tools/tests/tsx/Makefile
> @@ -11,4 +11,6 @@ CFLAGS += $(CFLAGS_libxenguest)
>  LDFLAGS += $(LDLIBS_libxenctrl)
>  LDFLAGS += $(LDLIBS_libxenguest)
>  
> +$(TARGET): ../common/guests.o

Does this work properly with parallel builds, once more than one test would
use it?

> --- a/tools/tests/tsx/test-tsx.c
> +++ b/tools/tests/tsx/test-tsx.c
> @@ -31,6 +31,7 @@
>  #include <xen-tools/common-macros.h>
>  
>  #include "tests.h"
> +#include "guests.h"

Isn't this ../common/guests.h ? Plus perhaps common stuff could go straight
in the parent directory anyway?

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 12:02:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 12:02:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239968.1541392 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vur7k-0005fA-AP; Tue, 24 Feb 2026 12:02:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239968.1541392; Tue, 24 Feb 2026 12:02:44 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vur7k-0005f3-7e; Tue, 24 Feb 2026 12:02:44 +0000
Received: by outflank-mailman (input) for mailman id 1239968;
 Tue, 24 Feb 2026 12:02: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=1YgY=A4=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vur7j-0005ex-1g
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 12:02:43 +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 b7eb4670-1178-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 13:02:40 +0100 (CET)
Received: by mail-ej1-x629.google.com with SMTP id
 a640c23a62f3a-b90bc00578cso207332266b.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 04:02:40 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-b9084c82495sm408667166b.20.2026.02.24.04.02.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 04:02:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7eb4670-1178-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1771934560; x=1772539360; 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=9qLpnjBWurlI7DiPjVUDT7lRny6FroAeredn3l5Iyyw=;
        b=WCrg4g4YwWU6VhKqqLZE3yCgYK0oeCchpa5leaZ4NwC/Mx7+GXLP+WSoqSZWk6cxTH
         YdP4d1yo294iU8Zwr+iy6gaM35l0ctbTaqeCQbPqzoCt2eAAd8c4j/+NGjGWhZ3u3Mit
         4wRSLv6+BLfSwxMrjt/d+3vbEVN8TP92r1cyeGYDIhupRkzHb69Tis0zTk/mt1/MCzjM
         nPsrA98B4HTQW5Cnbn83IdQrGGtCjPcAT+a0BXoONBOCWdIqsIQZIUIynWp9CuP4ZSgB
         +trovc8tdy7CaB+qE/0W/khrZJ6MZTxrOkuwZIg0CBzOrZ+gdkKMqDmX2g8S5EsZv3uc
         weSA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771934560; x=1772539360;
        h=content-transfer-encoding:in-reply-to:from:content-language
         :references:cc:to:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=9qLpnjBWurlI7DiPjVUDT7lRny6FroAeredn3l5Iyyw=;
        b=aR7i2VF/ZRoBgqYcDCPuPQN4ROXg94td9pE1ZIunG7h/GwR0uJF9V5zExbIbNu+gAb
         G7JFfBz1dpt5nWCs0Wr7i6IzT1CdCIUhZf9vuGoArZ53zM76EXWo+iNQkGlI+LoyUwE7
         4dAGH3xfbCwA7OHrV+3475kzXwdDAxhXZYVjEohlK+BftZt/E5MNEGLpBIcijRXckzxS
         dAtBX6Z4FOotOLEH0aDv/s18zxbekgCNqSDS77XgAfwXDJNe73jUdIHPmQlPUqkPzVzQ
         BOgvLrNTx2dpkQmEmMuNmh+FO9ZaK5dCJ5OAUJujgb0SEJzPkzBofiXU//H6NVMDwgvv
         jF8A==
X-Forwarded-Encrypted: i=1; AJvYcCXPxcsb/3SzhLEkKz+uRB23OZPluM1MOJmFyEKDIXU49l2q0f7Nu4XlvFk+gVD5xUtodJDG20CBQZQ=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yy+Ij0yFq8/F69yCtO/xr2DNG72ZhrReRSBNl179YgYYyWjQzXK
	IQWroXJThuZvDHG0yCyUbnCnKTdHZ5lTkBLCXkNeRt5tUGZzmAYCK8GPOXAo2A==
X-Gm-Gg: AZuq6aL8yH5WJF8dXVkPTRzx4+jYoaqaFIPG+fOEeUmm/lAvNTSi3V1HmyGsua1FL3y
	6ItnlernbOMCD3+qs4IY7ABT+7TKku5SJSgSRgSCoH3bLdLDiFfSOrIWhJ7NH5lWTo/XmFvz6u4
	yeZhfsPxCiyYAgJhCq2mVk7ncRsfJB4zP+JQv3qooeU99O1r7ozERpDFEjcPr7QEMZ+i/VM48EI
	uF6PUPEXB3A/q9baMkH06dxad73Lg8SK0vayQOWEggj8KDDEJK+7v5P6WZTVu0IxMBL8pJvPeBq
	Cfa8fz1Ns2/jZqJThFmrJLTIfnb8TsTkwUoyWwz6b9Qfbzn6R8g92i91UCcNgdYbs8sqqo6ETsU
	7FYcPC+2NpIFmD75+wq2C+U7JZdBh2GTXjNBkFb6RS3zjWYmt4PiB+JucOQYfftdFXBz9KZ/FW5
	y1pjyIetE1WlDxLO1g77xF1CNasAae/tAO0tFXx7Dtd72QixT+g/asyjGdAKjuQ1XTBZ818/iVt
	thKNsI=
X-Received: by 2002:a17:906:eec7:b0:b87:117f:b6f0 with SMTP id a640c23a62f3a-b9081b23d01mr670549966b.30.1771934559585;
        Tue, 24 Feb 2026 04:02:39 -0800 (PST)
Message-ID: <42da5eb2-06fb-49aa-8383-cb31f83c3933@gmail.com>
Date: Tue, 24 Feb 2026 13:02:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Jan Beulich <jbeulich@suse.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
 <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
 <e084cd6f-e76d-40c1-9e30-97e10acae012@gmail.com>
 <541a6c57-406c-49e5-8b8b-019e30bf0d89@suse.com>
 <5e4362ed-c310-442b-a742-ca7c3d1c47dc@gmail.com>
 <c388593e-8371-4040-a179-c0bf32ae0696@suse.com>
 <42847a9e-71e1-47a0-b4fb-7d8c91370bf4@gmail.com>
 <1f2f7f37-0a2b-407f-918a-ac35cbbd5cd4@suse.com>
Content-Language: en-US
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
In-Reply-To: <1f2f7f37-0a2b-407f-918a-ac35cbbd5cd4@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 2/24/26 12:32 PM, Jan Beulich wrote:
> On 24.02.2026 12:25, Oleksii Kurochko wrote:
>> On 2/24/26 11:47 AM, Jan Beulich wrote:
>>> On 24.02.2026 11:42, Oleksii Kurochko wrote:
>>>> On 2/24/26 11:16 AM, Jan Beulich wrote:
>>>>> On 24.02.2026 10:44, Oleksii Kurochko wrote:
>>>>>> On 2/24/26 9:07 AM, Jan Beulich wrote:
>>>>>>> On 20.02.2026 17:18, Oleksii Kurochko wrote:
>>>>>>>> --- a/xen/arch/riscv/domain.c
>>>>>>>> +++ b/xen/arch/riscv/domain.c
>>>>>>>> @@ -2,9 +2,39 @@
>>>>>>>>      
>>>>>>>>      #include <xen/init.h>
>>>>>>>>      #include <xen/mm.h>
>>>>>>>> +#include <xen/sections.h>
>>>>>>>>      #include <xen/sched.h>
>>>>>>>>      #include <xen/vmap.h>
>>>>>>>>      
>>>>>>>> +#include <asm/cpufeature.h>
>>>>>>>> +#include <asm/csr.h>
>>>>>>>> +
>>>>>>>> +struct csr_masks {
>>>>>>>> +    register_t hedeleg;
>>>>>>>> +    register_t henvcfg;
>>>>>>>> +    register_t hideleg;
>>>>>>>> +    register_t hstateen0;
>>>>>>>> +};
>>>>>>>> +
>>>>>>>> +static struct csr_masks __ro_after_init csr_masks;
>>>>>>>> +
>>>>>>>> +void __init init_csr_masks(void)
>>>>>>>> +{
>>>>>>>> +#define INIT_CSR_MASK(csr, field) do { \
>>>>>>>> +    register_t old; \
>>>>>>>> +    old = csr_read(CSR_##csr); \
>>>>>>> Can't this be the initializer of the variable? Can't ...
>>>>>> I agree that this is change is okay to be done but I am not sure about ...
>>>>>>
>>>>>>>> +    csr_set(CSR_##csr, ULONG_MAX); \
>>>>>>> ... csr_swap() be used here, too?
>>>>>> ... as after re-reading spec again I am not sure that we can do in this way
>>>>>> at all.
>>>>>>
>>>>>> Initially I used csr_set() instead of csr_swap() or csr_write() as csr_set() to
>>>>>> take into account a writability of the bit, so it won't touch a bit if it
>>>>>> is r/o.
>>>>> To me the spec isn't quite clear enough in this regard.
>>>>>
>>>>>> But it seems like this approach won't work with**WLRL or WPRI fields as these
>>>>>> fields aren't r/o,
>>>>> In the CSRs presently dealt with, are there any WLRL fields at all? (I don't
>>>>> think WPRI fields represent much of an issue for the purpose here.)
>>>> Agree, currently used CSRs in this function don't have WLRL feilds, but I suppose
>>>> we want to have the similar treatment (read WLRL fields and reuse what was read)
>>>> for WLRL fields as these fields expect only valid value and so all 1s for this
>>>> fields can be wrong to use.
>>>>
>>>>>> but they only support specific value and for example:
>>>>>>
>>>>>> - Implementations are permitted but not required to raise an
>>>>>>       illegal-instruction exception if an instruction attempts to write a
>>>>>>       non-supported value to a WLRL field.
>>>>>> - For these reserved fields, software is required to preserve the existing
>>>>>>       values when writing to other fields in the same register. Overwriting them
>>>>>>       with 1s could be considered non-compliant behavior.
>>>>>>
>>>>>> So it seems like we can't just do csr_swap() with all 1s and it is needed
>>>>>> to pass a mask to INIT_CSR_MASK() which will tell which bits should be
>>>>>> ignored and don't touched.
>>>>>> For example, HENVCFG and HSTATEEN0 has WPRI fields.
>>>>>>
>>>>>> reserved_bits_mask = 0x1FFFFFFCFFFFFF00;
>>>>>> tmp = csr_read(HENVCFG);
>>>>>> tmp=(~reserved_bits_mask) |(tmp&reserved_bits_mask); csr_set(HENVCFG, tmp);
>>>>> What I find further concerning is that HSTATEEN0 also may have read-only-1
>>>>> fields. You don't currently cope with that, I think.
>>>> Because of this:
>>>>      A bit in an hstateen CSR cannot be read-only one unless the same bit is
>>>>      read-only one in the matching mstateen CSR.
>>>> ?
>>>>
>>>> I expect that it will be covered by csr_set() which will touch only writable
>>>> bits and ignore read-only. So doesn't matter if a bit is read only 1 or 0
>>>> it still shouldn't be in the final mask.
>>> But the hypervisor view of the register value seen by guests won't be correct.
>>> Recall that you moved to probing to make sure that the cached values we have
>>> in the hypervisor properly match the values seen by the guest?
>> Then we have to store what csr_read(hstateen0) returns in struct csr_masks in
>> new field hstateen0_ro_ones. And then in the next patch apply that new field
>> in vcpu_csr_init():
>>     v->arch.hstateen0 = hstateen0 & csr_masks.hstateen0 |
>>                         csr_masks.hstateen0_ro_ones;
>>
>> Are you okay with such changes?
> Properly structured, sure. That's pretty much unavoidable, isn't it?
>
> As to "structured", for example I wonder whether hstateen0_ro_ones isn't
> going to lead to redundancies once further registers appear which may have
> r/o-1 fields. Maybe there should be "ro_one" sub-struct right away?

Maybe, it makes sense. I will then update the csr_masks structure in the
following way:

struct csr_masks {
     register_t hedeleg;
     register_t henvcfg;
     register_t hideleg;
     register_t hstateen0;
     
     struct {
         hstateen0;
     } ro_one;
};

>
> And of course "structured" also touches on proper parenthesization of the
> statement above.

According to https://en.cppreference.com/w/c/language/operator_precedence.html
& has bigger priority, so I haven't put parenthesizes.

~ Oleksii



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 12:34:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 12:34:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1239992.1541454 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vurcf-0001wb-6U; Tue, 24 Feb 2026 12:34:41 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1239992.1541454; Tue, 24 Feb 2026 12:34:41 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vurcf-0001wU-2r; Tue, 24 Feb 2026 12:34:41 +0000
Received: by outflank-mailman (input) for mailman id 1239992;
 Tue, 24 Feb 2026 12:34: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=48fD=A4=bounce.vates.tech=bounce-md_30504962.699d9ad8.v1-441dd13042b043e084cde212e7ffca24@srs-se1.protection.inumbo.net>)
 id 1vurcd-0001wO-VS
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 12:34:40 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 2bbf4dc6-117d-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 13:34:33 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fKxxN0Vjyz5QkLd6
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 12:34:32 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 441dd13042b043e084cde212e7ffca24; Tue, 24 Feb 2026 12:34: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: 2bbf4dc6-117d-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771936472; x=1772206472;
	bh=s5qi7uPRrfCegLpwk9h+nXdmi/P0H3e2sU4RGf+LcMQ=;
	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=R68FeCrFEEAxatJkaRUPSfZFmOV1nONhHD4OgqtyMmUJnqyCZp3WfV/h0UxquqgqT
	 Mqt4BNTnVin3aypZ5W4ZrRxptE6vW8hXQ+HMsXV+c6tDThbyg5c1DdII8ymhaujJGp
	 oD3hwUEGkek/EzWtDYYWGLuOR6CkbYXZXjJJvRtkhdYQBd8mJLKWDkev5drRYSU+1x
	 rXQGimU8Z2x52NQwOHNul2ivGzHzxObl2MO6Xz8YliBv6Ic0+jVqYO4PgEq6GZ1mDB
	 V6UGzX07ESrpAMFJNYTq+VNKJ/TNgEDf4gnOx4hf5dFd8HczTYP/n4Pqk9OEKrtJtp
	 5iiBKY9vGga4w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771936472; x=1772196972; i=teddy.astie@vates.tech;
	bh=s5qi7uPRrfCegLpwk9h+nXdmi/P0H3e2sU4RGf+LcMQ=;
	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=D5kKCx28xONPo3r2NpigrMCZc+BdJ7Yz2IVWAdOJ/CYkY8DhvOheqwdp/mAzInjy9
	 90skkDF/+yy1bicT2ZiatWF9DCP8hbyeX+mtH2OI+MLJoH+kv4KI1okU6fBIjNbP8q
	 IjmpRq/EJhOi7A7NiPg9VymG4qn0ifYbRyhvGhueRHCANqx2kEEBaJED3bhyxoBhLW
	 9yConlS7JAGVr4itTlllYaAHHe/Oz7VnesM8AIf0aAFXmd26almwxbVSKdMsraf+Av
	 mj5cnZKezsjrPUvgISnB7ici9GolrgOvRL1++uCXajqsW1jCoQWRN8s3LLJZyPo3Cv
	 whRXmk+t0ctQA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH]=20x86/xen:=20Consider=20Xen=20PVH=20support=20in=20CONFIG=5FXEN=5FPVHVM?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771936470614
Message-Id: <962fa327-2e9f-41e5-8382-71ace6fb0a10@vates.tech>
To: "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, "Juergen Gross" <jgross@suse.com>, "Boris Ostrovsky" <boris.ostrovsky@oracle.com>, "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech> <aZ2IB9gBo_DrZLSf@macbook.local>
In-Reply-To: <aZ2IB9gBo_DrZLSf@macbook.local>
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.441dd13042b043e084cde212e7ffca24?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260224:md
Date: Tue, 24 Feb 2026 12:34:32 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 24/02/2026 =C3=A0 12:16, Roger Pau Monn=C3=A9 a =C3=A9crit=C2=A0:
> On Tue, Feb 24, 2026 at 10:51:35AM +0000, Teddy Astie wrote:
>> It's currently possible to build Linux with CONFIG_PVH|CONFIG_XEN_PVHVM
>> and no CONFIG_XEN_PVH. That leads to inconsistent kernels that fails wit=
h
>> "Missing xen PVH initialization" when booting using PVH boot method or
>> display various errors and fail to initialize Xen PV drivers when bootin=
g
>> with PVH-GRUB.
>>
>>      platform_pci_unplug: Xen Platform PCI: unrecognised magic value
>>      ...
>>      # modprobe xen-blkfront
>>      modprobe: ERROR: could not insert 'xen_blkfront': No such device
>>      # modprobe xen-netfront
>>      modprobe: ERROR: could not insert 'xen_netfront': No such device
>>
>> When built without CONFIG_XEN_PVH, PVH-specific logic is disabled, hence=
 when
>> booting with e.g PVH-OVMF, Linux assumes we are a HVM guest, even when w=
e aren't
>> actually one (in the "with HVM emulated devices" sense).
>>
>> As it is actually possible to boot Xen PVH without CONFIG_PVH; and that =
most
>> Xen-related logic exist within CONFIG_XEN_PVHVM; consider PVH guests sup=
port
>> within CONFIG_XEN_PVHVM instead of CONFIG_XEN_PVH.
> 
> So the current CONFIG_PVH selection done by CONFIG_XEN_PVH is moot?
> 
>> Keep CONFIG_XEN_PVH as a shortcut to enable PVH boot, ACPI support and P=
VHVM.
>>
>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>> ---
>> Cc: Juergen Gross <jgross@suse.com>
>> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> A tentative patch, I'm not sure of the way of dealing with the KConfig p=
art,
>> keeping CONFIG_XEN_PVH as a shortcut is interesting, but there may be ot=
her
>> options.
>>
>> There are widespreadly used Linux distributions that have a similar conf=
iguration
>> to this one, thus exhibit this issue i.e fail to boot.
> 
> Do you know the underlying cause of not enabling CONFIG_XEN_PVH?  Is
> the default set to n on the defconfig?  Or are distros specifically
> disabling this option on purpose?
> 

I'm observing in these distros that

 > # CONFIG_XEN_PVH is not set
 > CONFIG_XEN_PVHVM_GUEST=3Dy
 > CONFIG_XEN_PVHVM=3Dy

Which makes CONFIG_XEN_PVH defaults to n.

> It seems like a step backwards to merge this into some bigger generic
> option, we always try to fine-grain as much as possible.
> 
> Maybe you could introduce XEN_HVM meta option, that selects both PVHVM
> and PVH?
> 
> Thanks, Roger.
> 

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Feb 24 12:46:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 12:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240003.1541475 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vurnn-0003uN-Cr; Tue, 24 Feb 2026 12:46:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240003.1541475; Tue, 24 Feb 2026 12:46: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 1vurnn-0003uG-8n; Tue, 24 Feb 2026 12:46:11 +0000
Received: by outflank-mailman (input) for mailman id 1240003;
 Tue, 24 Feb 2026 12:46: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=F9vI=A4=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vurnm-0003tj-3g
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 12:46:10 +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 c7f41cd5-117e-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 13:46:04 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-436309f1ad7so4199164f8f.3
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 04:46:04 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43987f3ed03sm4803236f8f.16.2026.02.24.04.46.03
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Feb 2026 04:46:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7f41cd5-117e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771937164; x=1772541964; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=E//KrHW5SVbFJ277xUaYoskVjOU3YAYhSUGMaxRLbXg=;
        b=tK8ZFlncsWZIJN/TYAsgv7CxoYxvxfpeHpJZG9ji5ck73acfv04UkxMjYX5Im41/S+
         iP9f+vI91KYlxxn49P4C8jthBhO3us0Go60QTGOCuqYUODEMzh/kzyhBGRndp/okzN26
         TdfPT0uCyOS6JVV1GFvCGJyATcHSYYfgTiRuQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771937164; x=1772541964;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=E//KrHW5SVbFJ277xUaYoskVjOU3YAYhSUGMaxRLbXg=;
        b=nZ8Ir8vXfamcyCKopL13bzVtV3vC6i+RrRqjIitX0I1LhF9rIbxXkc8DKG2lD9kfSb
         NqRsS4m04V9+Ffke1zBH4q77xuYrGb5AmrWnkkaZZ4Xh0z9gaaD3YZB+7AZEs0DNo3BU
         J8KBHVOijYURlzQy7AkYCybCUVwjzVuZzq5gDC9MrNKN4hmoecdQ4Uh6cNJng/9BkPXQ
         kLm6XpKCwh+k8UPMEn5M7oEh9d3bYl2qPTpVVpa/QX/dREO949PkKQaWjEI4URr5dIto
         Bjx61wwVdf2b6nTvZEiyqrAOUOghU1kjQ6Qpzch+UZrpVq87GjehxvdOHCP6LpLHR0HP
         vcjg==
X-Gm-Message-State: AOJu0YynS2GUJc/RcwpHExuT22WokJS6G7RJ3cAZmHUiEgSSk9QBtC2j
	4WQkyv+iu9SV7783JiQrmsE2K/9fNuhPJceKkFyQ+mKCTCiqa2zvDn4kLbNf9JzMlP5MQLJsHRp
	kUfX3dOdO+Q==
X-Gm-Gg: ATEYQzwDhMxTdkaQ+PSwPhOgxF9bwMDhJj2TrGdv7XT9Z2VP4yJy91yKH9B0HDH/xFZ
	zvXiM7CN2V6yOj4qtHsD9dvDr1Y/aRCD5OGhp7WzIT61vQVWGI492lkFNcUUJQDAhU+3clXbGKk
	dbjFvw+yIFhe83k6a+xQzSutTgrXznoZzc8dwNLLN+HSKDJRgFxEsXZlJsPbSPCxtoIAO+dhnAe
	JhzxF+Ts1DDtCwILaxX0bpwRn3szdjqndqmJPymdnMoaNTq5ijI3MxIA/RvzSpDpqQzgs6AE0in
	F3dqefT0JjxZYhBjlTCcyxtLdVNBYLQAnZzlfAKYk4dGdTeyCjvLlp7GI7JbPEtN+aLN6+MvZA5
	5pO5UuP68bF4Y9LSNcXJWinxn8ppcTqpzGmKL8caHNPi14dTBepZ0sME0WVRHLcOy/GGCCYtYbb
	cjNTYHKGD0Kr0GwIiwCSOn0UqLCz3J/gGtut6EAJnFjdX/txuWpmxTODbgmN7DRllhDENalfmHL
	oT14Krdhw==
X-Received: by 2002:a05:6000:188e:b0:436:f7e5:e047 with SMTP id ffacd0b85a97d-4396f18541dmr19951778f8f.47.1771937163532;
        Tue, 24 Feb 2026 04:46:03 -0800 (PST)
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 1/2] xen/arm: Simplify SMCCC handling by reusing __declare_arg_$()
Date: Tue, 24 Feb 2026 12:45:57 +0000
Message-Id: <20260224124558.3675278-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
References: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Now that the type handling is entirely uniform, it's easier to see that
__declare_arg_3() can use __declare_arg_2() and so on, just like the larger
__declare_arg_$()'s already do.

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>
---
 xen/arch/arm/include/asm/smccc.h | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
index 5b30dd57b69d..347c4526d12a 100644
--- a/xen/arch/arm/include/asm/smccc.h
+++ b/xen/arch/arm/include/asm/smccc.h
@@ -114,26 +114,17 @@ struct arm_smccc_res {
 
 #define __declare_arg_1(a0, a1, res)                        \
     typeof(a1) __a1 = (a1);                                 \
-    struct arm_smccc_res    *___res = (res);                \
-    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
+    __declare_arg_0(a0, res);                               \
     register typeof(a1)     arg1 ASM_REG(1) = __a1
 
 #define __declare_arg_2(a0, a1, a2, res)                    \
     typeof(a1) __a1 = (a1);                                 \
-    typeof(a2) __a2 = (a2);                                 \
-    struct arm_smccc_res    *___res = (res);                \
-    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
-    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
+    __declare_arg_1(a0, a1, res);                           \
     register typeof(a2)     arg2 ASM_REG(2) = __a2
 
 #define __declare_arg_3(a0, a1, a2, a3, res)                \
     typeof(a1) __a1 = (a1);                                 \
-    typeof(a2) __a2 = (a2);                                 \
-    typeof(a3) __a3 = (a3);                                 \
-    struct arm_smccc_res    *___res = (res);                \
-    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
-    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
-    register typeof(a2)     arg2 ASM_REG(2) = __a2;         \
+    __declare_arg_2(a0, a1, a2, res);                       \
     register typeof(a3)     arg3 ASM_REG(3) = __a3
 
 #define __declare_arg_4(a0, a1, a2, a3, a4, res)        \
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 12:46:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 12:46:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240002.1541465 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vurni-0003g7-6R; Tue, 24 Feb 2026 12:46:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240002.1541465; Tue, 24 Feb 2026 12:46:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vurni-0003g0-2H; Tue, 24 Feb 2026 12:46:06 +0000
Received: by outflank-mailman (input) for mailman id 1240002;
 Tue, 24 Feb 2026 12:46: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=F9vI=A4=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vurng-0003fu-6N
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 12:46:04 +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 c71f52c4-117e-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 13:46:03 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4359108fd24so3409206f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 04:46:03 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43987f3ed03sm4803236f8f.16.2026.02.24.04.46.01
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Feb 2026 04:46:01 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c71f52c4-117e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771937162; x=1772541962; 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=c+JSST3SfePXF4/ny/1upM9uPTqBG61Zto5cE0YSFpM=;
        b=b5u4HGsw6uVOykG+EMykHTV3z4llh9r+cIezmrdWigJXhqHlq1h+Fka4t8M9t0dlGH
         fkp1NCW+uMJRzZTdlpvgw+0F1wET0UWedWxi+Y8TfhJuEvFW16P07CiQKva1C9ubP6z5
         jBsrvzK/EjUYVGYFKo4I7mSiWjMhoX2tkDBII=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771937162; x=1772541962;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=c+JSST3SfePXF4/ny/1upM9uPTqBG61Zto5cE0YSFpM=;
        b=pMHlbDe+lW0kdHbwEFIO9hta8IeEZZaTi3Ogxc94oWaUhja34ILfFDlUUnqSRxxeXa
         QKQyJt+EnFABIJX9Fxk3LgKT4Rh19zNn9F4Ce/tTMZT+o8Pin5OuNo7fAkfzyGr0+S2k
         GcK6bLuZdp1R2UKl1PE/a94lBzmUyVcdtCtD1efwGRm9xcXuRtJKOYujWMaJEdBfXKtw
         RABxf9F38a7l6MV/AMEvhfV061ZL0gjYBvSoede6tcwH1i4ujXGW+9Pms778GOWC2Dev
         fXtiCv48+s6N+61UGI24Aj0ys/iiyAMW93f1QmJNsGgD4YZLFWvfupEndOP1zpTDSjQ0
         Ru9Q==
X-Gm-Message-State: AOJu0YySuKfGb975TN55f2Cj2O4bRnQypxJIqlylxdWVFCmJP461MA47
	UEgwZ7csBC1i6YOCuBzc0ueN3rV5QzFwgY1rY08MJyTpTuoYJ8jGVxHzG/RxljE/wP20FDz6zmq
	t/vQvSfpzaQ==
X-Gm-Gg: ATEYQzyUS5q3oZqFVKNFmdKgJ7uE2Gy/dmTjNgpj9hjs0TYg61eRPTqCQP/6VwbBZxi
	FVsy5uTRf+iunWlnSEQ1ctlKgFxmaXCOXtjzQvseo12QqmPDkb9C10lReKDIERB8+94PXk7lDTr
	0JoVhVcR07MrWOS5X0tthwPsmgociPd7gpz6L77Zlya4EV/ydnHvJC5uHdfJz6Sj7RssomFwdlV
	ayHYtsuojgVkqcuf/fEDt+hTZX/dc965IlqEItKp/TpsMyguxNQ23UTBmx94xaj7lciJ6N03Oy+
	oVuFD/imVcdI0UGbBSYjETMKWBqC/Y6dpb+3U3T4lbb7YtrYVgKN86uoC0Q7U4eET4msAl7E+6e
	in0atVduZO947kO3hcn2hVwtgVnPErmoMvwUdZmg0tLft/kggJ+w2QjqxzWgjgMuaC8kwk1747g
	4T/IPsl9FJJXm+0DNnYmG1wJs9qpPw99KdxkSMj7E8Ao/dzkisJMBLgY4v4GFvkIsToDr2RKs=
X-Received: by 2002:a05:6000:4201:b0:3ec:db87:e5f4 with SMTP id ffacd0b85a97d-4396f15d10cmr21102313f8f.7.1771937162112;
        Tue, 24 Feb 2026 04:46:02 -0800 (PST)
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 0/2] xen/arm: Further SMCCC cleanup
Date: Tue, 24 Feb 2026 12:45:56 +0000
Message-Id: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

... in order to make them elliglble for auto-converstion.

Andrew Cooper (2):
  xen/arm: Simplify SMCCC handling by reusing __declare_arg_$()
  xen/arm: Simplify type handling for SMCCC declarations

 xen/arch/arm/include/asm/smccc.h | 36 +++++++++-----------------------
 1 file changed, 10 insertions(+), 26 deletions(-)

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 12:46:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 12:46:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240004.1541484 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vurns-0004BE-J3; Tue, 24 Feb 2026 12:46:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240004.1541484; Tue, 24 Feb 2026 12: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 1vurns-0004B7-FJ; Tue, 24 Feb 2026 12:46:16 +0000
Received: by outflank-mailman (input) for mailman id 1240004;
 Tue, 24 Feb 2026 12: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=F9vI=A4=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vurnr-0003tj-Cy
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 12:46:15 +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 c8a8cdd5-117e-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 13:46:05 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-436e8758b91so3770570f8f.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 04:46:05 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43987f3ed03sm4803236f8f.16.2026.02.24.04.46.04
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 24 Feb 2026 04:46:04 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c8a8cdd5-117e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1771937165; x=1772541965; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=g4sp/g7nefG7eULFXp8l8pUWsqFfRFPg4pIwmWThBj4=;
        b=NI1vGpZtD3OUSSmvgxKX5PC/NZKOvoWRA0R3mwY+2t7xDqCAUgZ64IYncg6LKRTG5+
         KgtgyGXrB/KWRAWFW5ZFxB1qP4MY3CyzDSYHx56LbfhJleAsPOqnP5Kbc1zf8OSQ69iD
         vKBWbP2lPxuqeUMSquAxkgsyPg7vwlQSOOw4w=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771937165; x=1772541965;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=g4sp/g7nefG7eULFXp8l8pUWsqFfRFPg4pIwmWThBj4=;
        b=Gu2wzLDq2yGUQJILzXZj7Mqn+IoHbEd2gOUaaxTY9ZqBgla2dvXvmwNKkgqCAXz55+
         INsjAZACmRX8OiZAhQ5Rz+bWjWuBViaDUD4KwD1l0VIHQ+M8lWTYsdX3utx3uopg8N9s
         p3nIQmiQL/lJBV5EqawMcCtJFMSJ1zd9hW1dx+zwBdMWqi7IfjAXQJaBOQFM1U6xntsR
         SqcFxnHhznXN7CkLrqBbelRIZIHFpWlipEXt6cOtb1AiNR9hjFRTAdO6ZaHVNPOO0hVT
         Ks1vwgEye3296SRNxqriaWbBl7ph3+ruJnWBthndgoomMKjNm4M1rkBz9b7H1jlKsg5+
         prfA==
X-Gm-Message-State: AOJu0YzhIvfAiPLRwvGiAIJkDJe3WeGn1t2CqpIDEy58wX2XeK5hVHEa
	ul5JNcwmAJSZGUBBIaT+h8ivsg1O/8OJgeJM9BRk4/naQVFEEhSkLT0lk28JalYlBvsy2QX0P/O
	SItW6Pd2vVw==
X-Gm-Gg: ATEYQzy+dJgrKBxueC4qoENCUR8d62uVptYpAQb40aFjPO5QR7M3mwlQfC7vONKbl1Y
	LGTGLT3Yqp1NB5GAErMPOpZnhV55PXlrhw7oc0SW2kJ+hxspgT77VJiFJtoMY2nq0FrOcVGrgS1
	BgTyE89FSM/hQQYYFnyDbPFf0aygHn2+aK52C57oG049tIrPeZPg0fBphnDZvHZCUGL0rdYb19e
	oNJChMH6MG/wT3sbamHS0T5oYOgWHuDz51o5YTeWcgbMHievX2DXWxA+xlk8cuChbi45MTQNQt9
	vrDOzdSKfgAjAYhpn1sfGYloIcC7+27UEVEt6YdGEuKYxEAPFrT8UuCsOmpUmRW1j+GKnCnSQLg
	eu9ILEyPJDvwuIb/yziTa9qUQDy/c0hCvB5DwThhWpkuUIc0XlguBKvDSo+Y9/F7Yq9pUQ+WKos
	5uwEgzgaSS65ErgQ1UsahcQuf4kjLfw4Sai697P6hUp/A9QJu/q4iNJ2Hz5vM/9iYoIEh6m7s=
X-Received: by 2002:a05:6000:2281:b0:436:19f6:31b0 with SMTP id ffacd0b85a97d-4396f153c41mr23095241f8f.4.1771937164753;
        Tue, 24 Feb 2026 04:46:04 -0800 (PST)
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 2/2] xen/arm: Simplify type handling for SMCCC declarations
Date: Tue, 24 Feb 2026 12:45:58 +0000
Message-Id: <20260224124558.3675278-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
References: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

There's no use creating a typed copy of a macro argument, simply to use it to
create a second typed copy.  Remove the indirection, halving the number of
local variables created in scope.

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>

This also makes them clearly elliglbe for converstion to auto, where they
weren't before (typeof expression not being that of the RHS).
---
 xen/arch/arm/include/asm/smccc.h | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
index 347c4526d12a..7e90b0b56550 100644
--- a/xen/arch/arm/include/asm/smccc.h
+++ b/xen/arch/arm/include/asm/smccc.h
@@ -113,39 +113,32 @@ struct arm_smccc_res {
     register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0)
 
 #define __declare_arg_1(a0, a1, res)                        \
-    typeof(a1) __a1 = (a1);                                 \
     __declare_arg_0(a0, res);                               \
-    register typeof(a1)     arg1 ASM_REG(1) = __a1
+    register typeof(a1)     arg1 ASM_REG(1) = a1
 
 #define __declare_arg_2(a0, a1, a2, res)                    \
-    typeof(a1) __a1 = (a1);                                 \
     __declare_arg_1(a0, a1, res);                           \
-    register typeof(a2)     arg2 ASM_REG(2) = __a2
+    register typeof(a2)     arg2 ASM_REG(2) = a2
 
 #define __declare_arg_3(a0, a1, a2, a3, res)                \
-    typeof(a1) __a1 = (a1);                                 \
     __declare_arg_2(a0, a1, a2, res);                       \
-    register typeof(a3)     arg3 ASM_REG(3) = __a3
+    register typeof(a3)     arg3 ASM_REG(3) = a3
 
 #define __declare_arg_4(a0, a1, a2, a3, a4, res)        \
-    typeof(a4) __a4 = (a4);                             \
     __declare_arg_3(a0, a1, a2, a3, res);               \
-    register typeof(a4)     arg4 ASM_REG(4) = __a4
+    register typeof(a4)     arg4 ASM_REG(4) = a4
 
 #define __declare_arg_5(a0, a1, a2, a3, a4, a5, res)    \
-    typeof(a5) __a5 = (a5);                             \
     __declare_arg_4(a0, a1, a2, a3, a4, res);           \
-    register typeof(a5)     arg5 ASM_REG(5) = __a5
+    register typeof(a5)     arg5 ASM_REG(5) = a5
 
 #define __declare_arg_6(a0, a1, a2, a3, a4, a5, a6, res)    \
-    typeof(a6) __a6 = (a6);                                 \
     __declare_arg_5(a0, a1, a2, a3, a4, a5, res);           \
-    register typeof(a6)     arg6 ASM_REG(6) = __a6
+    register typeof(a6)     arg6 ASM_REG(6) = a6
 
 #define __declare_arg_7(a0, a1, a2, a3, a4, a5, a6, a7, res)    \
-    typeof(a7) __a7 = (a7);                                     \
     __declare_arg_6(a0, a1, a2, a3, a4, a5, a6, res);           \
-    register typeof(a7)     arg7 ASM_REG(7) = __a7
+    register typeof(a7)     arg7 ASM_REG(7) = a7
 
 #define ___declare_args(count, ...) __declare_arg_ ## count(__VA_ARGS__)
 #define __declare_args(count, ...)  ___declare_args(count, __VA_ARGS__)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 12:46:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 12:46:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240007.1541495 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuro0-0004Zi-1t; Tue, 24 Feb 2026 12:46:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240007.1541495; Tue, 24 Feb 2026 12:46: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 1vurnz-0004ZX-Tj; Tue, 24 Feb 2026 12:46:23 +0000
Received: by outflank-mailman (input) for mailman id 1240007;
 Tue, 24 Feb 2026 12: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=TfzY=A4=bounce.vates.tech=bounce-md_30504962.699d9d97.v1-d608bee5e0b64c53ae0669005322fb7a@srs-se1.protection.inumbo.net>)
 id 1vurny-0003tj-MQ
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 12:46:22 +0000
Received: from mail186-12.suw21.mandrillapp.com
 (mail186-12.suw21.mandrillapp.com [198.2.186.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id cf559567-117e-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 13:46:17 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-12.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4fKyBw0Kjcz705mf2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 12:46:16 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 d608bee5e0b64c53ae0669005322fb7a; Tue, 24 Feb 2026 12:46: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: cf559567-117e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1771937176; x=1772207176;
	bh=lXd6UpYAp3t3un2N6Ph54v7LZ+JVCHmjwbvsN8beoWo=;
	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=i1ArAFs7TTxutCW9a9kp2BpFd+E4HozZeh7UlvFmxr4ZJt8qBxMXHwxBNOjhFmQIJ
	 cX/epq/tY5Em6HzY15w3W9LjB5vmMQ3b/A+4CEAGPzA3FaRPR1DojGaYeMzopfCsoq
	 gVf9cuogccmvYcfveU7MdmRqL6s6hYR7XDmARsFJKHznt9ZpXUn6Y9422EQ53+lb5i
	 e2XVDiCXjAC6ewN06px+B+tk5TK+IOgZDmg/qJ8ht+0WVhULVxnY/pZCN/eh6p+ckm
	 Hdz71KfVSbBMkcaXQPCPMVEeaTQn04ngvWh9iyr7X6kpRuOX838TI1TiohdulAsmdv
	 9mXwZb/JIH5/A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1771937176; x=1772197676; i=teddy.astie@vates.tech;
	bh=lXd6UpYAp3t3un2N6Ph54v7LZ+JVCHmjwbvsN8beoWo=;
	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=CA8NzxnEwPLoZxAWhvZqsWJqfHwnYOQKWu1YpH1aWIuS1t979fnql7gqokbSp8dfs
	 b0A0tuAhj58feKMljgf78oKRsrxgVOAGWJZXRyQNeYA4hVUxUkr0IyQm1g/NtdP8NF
	 N6MuvpixrHvP9RJPtTr3IaR2cQtARi/C53IY28xfQ2xE7KImAMNRyu0MFFxUk8crTX
	 maOlTope0DaonbYVJ6n/cjGVjhHPZJGX8CLcFs3VABd/zDRxSE507rujPyTQlQV+ry
	 Gq8RqzeiIIOzhbEcG+NCXzD2O+It0Jy8BignXAkYi5myV2NZayA5PVNcnY1BWRQLmE
	 5nmREwLH4SzJg==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[RFC=20PATCH]=20x86/xen:=20Consider=20Xen=20PVH=20support=20in=20CONFIG=5FXEN=5FPVHVM?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1771937175070
Message-Id: <d4ff30fe-4770-49a7-8f80-3e45370b682a@vates.tech>
To: "=?utf-8?Q?J=C3=BCrgen=20Gro=C3=9F?=" <jgross@suse.com>, "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, "Boris Ostrovsky" <boris.ostrovsky@oracle.com>, "Oleksandr Tyshchenko" <oleksandr_tyshchenko@epam.com>
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech> <aZ2IB9gBo_DrZLSf@macbook.local> <c788fa3d-4080-47bb-9fb4-1452866393bf@suse.com>
In-Reply-To: <c788fa3d-4080-47bb-9fb4-1452866393bf@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.d608bee5e0b64c53ae0669005322fb7a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260224:md
Date: Tue, 24 Feb 2026 12:46:15 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 24/02/2026 =C3=A0 12:25, J=C3=BCrgen Gro=C3=9F a =C3=A9crit=C2=A0:
> On 24.02.26 12:14, Roger Pau Monn=C3=A9 wrote:
>> On Tue, Feb 24, 2026 at 10:51:35AM +0000, Teddy Astie wrote:
>>> It's currently possible to build Linux with CONFIG_PVH|CONFIG_XEN_PVHVM
>>> and no CONFIG_XEN_PVH. That leads to inconsistent kernels that fails 
>>> with
>>> "Missing xen PVH initialization" when booting using PVH boot method or
>>> display various errors and fail to initialize Xen PV drivers when 
>>> booting
>>> with PVH-GRUB.
>>>
>>> =C2=A0=C2=A0=C2=A0=C2=A0 platform_pci_unplug: Xen Platform PCI: unrecog=
nised magic value
>>> =C2=A0=C2=A0=C2=A0=C2=A0 ...
>>> =C2=A0=C2=A0=C2=A0=C2=A0 # modprobe xen-blkfront
>>> =C2=A0=C2=A0=C2=A0=C2=A0 modprobe: ERROR: could not insert 'xen_blkfron=
t': No such device
>>> =C2=A0=C2=A0=C2=A0=C2=A0 # modprobe xen-netfront
>>> =C2=A0=C2=A0=C2=A0=C2=A0 modprobe: ERROR: could not insert 'xen_netfron=
t': No such device
>>>
>>> When built without CONFIG_XEN_PVH, PVH-specific logic is disabled, 
>>> hence when
>>> booting with e.g PVH-OVMF, Linux assumes we are a HVM guest, even 
>>> when we aren't
>>> actually one (in the "with HVM emulated devices" sense).
>>>
>>> As it is actually possible to boot Xen PVH without CONFIG_PVH; and 
>>> that most
>>> Xen-related logic exist within CONFIG_XEN_PVHVM; consider PVH guests 
>>> support
>>> within CONFIG_XEN_PVHVM instead of CONFIG_XEN_PVH.
>>
>> So the current CONFIG_PVH selection done by CONFIG_XEN_PVH is moot?
> 
> No, it isn't.
> 
> CONFIG_PVH is the common base needed for Xen and KVM guests to be able to
> run in PVH mode.
> 

To me, CONFIG_PVH is more about being able to boot using PVH Direct Boot 
than something else.

>>
>>> Keep CONFIG_XEN_PVH as a shortcut to enable PVH boot, ACPI support 
>>> and PVHVM.
>>>
>>> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
>>> ---
>>> Cc: Juergen Gross <jgross@suse.com>
>>> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
>>> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>>
>>> A tentative patch, I'm not sure of the way of dealing with the 
>>> KConfig part,
>>> keeping CONFIG_XEN_PVH as a shortcut is interesting, but there may be 
>>> other
>>> options.
>>>
>>> There are widespreadly used Linux distributions that have a similar 
>>> configuration
>>> to this one, thus exhibit this issue i.e fail to boot.
>>
>> Do you know the underlying cause of not enabling CONFIG_XEN_PVH?=C2=A0 I=
s
>> the default set to n on the defconfig?=C2=A0 Or are distros specifically
>> disabling this option on purpose?
>>
>> It seems like a step backwards to merge this into some bigger generic
>> option, we always try to fine-grain as much as possible.
>>
>> Maybe you could introduce XEN_HVM meta option, that selects both PVHVM
>> and PVH?
> No, please don't use "HVM" for that purpose.
> 
> If anything I'd set the CONFIG_XEN_PVH default to that of CONFIG_XEN_PVHV=
M.
> 

That could work, but that would transitively imply that CONFIG_XEN needs 
CONFIG_PVH, which I guess we probably want to avoid.

As I said, it's not required to boot with "PVH direct boot" for a "PVH 
guest personality" to work in Linux since [1].

We can eventually consider decoupling CONFIG_XEN_PVH and CONFIG_PVH, but 
that would break setup that expects that CONFIG_XEN_PVH implies 
CONFIG_PVH (arch/x86/configs/xen.config in particular).

[1] 418492ba "x86/virt/xen: Use guest_late_init to detect Xen PVH guest"

> 
> Juergen

Teddy


--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Tue Feb 24 13:01:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 13:01:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240044.1541504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vus2B-0008Q3-7b; Tue, 24 Feb 2026 13:01:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240044.1541504; Tue, 24 Feb 2026 13:01:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vus2B-0008Pw-4F; Tue, 24 Feb 2026 13:01:03 +0000
Received: by outflank-mailman (input) for mailman id 1240044;
 Tue, 24 Feb 2026 13: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=1N/p=A4=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vus29-0008Pq-A6
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 13:01: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 dc42c39a-1180-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 14:00:57 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so60164435e9.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 05:00:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483a9b66932sm290887925e9.1.2026.02.24.05.00.55
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 05:00:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc42c39a-1180-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771938057; x=1772542857; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=tXDxOZzASzGqgCA0ooOrwGPjB1yX0fBWyLXbLD4ndGQ=;
        b=XYR/70UzOZ9/kcSqJ/EDDRNCoV5E7SPoQngUi3sPZ0EzeUgVUtlodk65ciJqu/xF7T
         J2NP2ptUVaBxIywvp4O3iY+9OkHAkpiCEOIU3ssxd9XYfDaKxDbRHsN/yJj7tTWW/uW4
         5PVdf+H7fLFHAGNBWzcsGg3oiatWOSnIewapjrvZD7Qd0r28D2n9fuhx9kCQb+HYaqJ/
         FILif2MxNnEDNq+us4Ebjld3MeJgWTAXtgQCnUDbi9/YCCKYPU6SsbFaNxBew3fxGAhB
         RHDwyWv0+lA9jaYRREVFhNvcu5Nz72qGnokSBV0L9yJX5sf/7NjD04hpQ5NcuSABjSNU
         X1Ww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771938057; x=1772542857;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=tXDxOZzASzGqgCA0ooOrwGPjB1yX0fBWyLXbLD4ndGQ=;
        b=JxPOaKgMct5iiVSlHT3HcPsMOfxg4L+o9Owmn+VK35eJ1/3FhVMDPfedtnPuSM3Ei4
         cOqapW2Lz0T5rfu1f6mNYkqrXnodTiWujXXCpKovFsKEuGpw+gN2j13/Hhqi9EJjbHtn
         CGeCpXZlnAhjBMmiXUaYmjDWU9BNESdt29CBpq1eByU9AeCpcDpghoiuW86LiGXbaVUY
         V2nCYHIZ541v82uciEiizByfnjtVeiOFP8oNR/xgtiGBhh02UpqgjZUbzUjKoglMifRI
         CZoWkWobTur/SCbc+LSgRbmnMtFbn1Jb/PAW6IRDz4zP7jXaEX+C9uDaE7rblvZj26Ga
         stdg==
X-Forwarded-Encrypted: i=1; AJvYcCVUej9h/w8cN0cb4+mkir/NDXchhGnqzWYJ62l2YduhJHcSJV06qt+b9F6zUHivMV2SMEqdOoSiL78=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxOCSDfUUmxN/EapaML/4zZzwFXvwpE+glsNq1l63UFT0QmSXjB
	W+mEqp3bRwqMHVNN2Z1XQyQ42900dt7891h/I9rsAJjquys2T9zHFF6xizUTL7vfyg==
X-Gm-Gg: AZuq6aK52tCNH9XTVpmYGhhscht7FXy/bYbrkj5vsH8yA4yjZIYkZTN94YSqnUnvd3B
	ItOJng2OI6gGP4+SXPi6g5cWA9Ke8eEi7bjP8mXpD7+hDAsANbv/KCp+/W3t31yVaWqJyTaLhNz
	QUtoMu2cWfCTWgDCkNGVjtI4uE1hr4XMIlirKbp7kKwKuJEfmBJAxyGxg+ntSh0kg24p17MnWtU
	YSqFUzlqthnyeZihV2H7KTmdn0t9S8TkGwKo7Vv+uzw0j1OYz2RRlSRKx3fI6l2sQBV9I0/AEGZ
	2W19EiJj+VWYqC1LhnFUL83UtygXosJXWul9JZVldxCxRwhtmWAqMo1jmdNQLqG+XyX1nD0/TaY
	Uo6zx+vCw6F3pEKDEAy62L6HWakD1zHaOOWpheJUvWYRrvjBBgpkZsmi8e4/l/CQvKHZ6Y3Iiou
	oZ9EK3bkjt5RzyXG/5DCYuTCeBzX5XXMAWfQUYAXtRq4nH2pfkIlhhk+xi60fLVDy1cQad0TQpZ
	tZZ6YjWyIoKfOY=
X-Received: by 2002:a05:600c:8b02:b0:47d:5e02:14e5 with SMTP id 5b1f17b1804b1-483a95a86eamr209893555e9.5.1771938056818;
        Tue, 24 Feb 2026 05:00:56 -0800 (PST)
Message-ID: <f6d851ce-55ac-46a1-8d35-029f0ba66c26@suse.com>
Date: Tue, 24 Feb 2026 14:00:55 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 01/14] xen/riscv: detect and store supported hypervisor
 CSR bits at boot
To: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
 Alistair Francis <alistair.francis@wdc.com>,
 Connor Davis <connojdavis@gmail.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>,
 Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>, xen-devel@lists.xenproject.org
References: <cover.1771590794.git.oleksii.kurochko@gmail.com>
 <4f36d83e58bfba807660ebc1fc48e71ae056805a.1771590794.git.oleksii.kurochko@gmail.com>
 <bf8d5b4f-937a-4d6f-86ba-1ab07f53eb51@suse.com>
 <e084cd6f-e76d-40c1-9e30-97e10acae012@gmail.com>
 <541a6c57-406c-49e5-8b8b-019e30bf0d89@suse.com>
 <5e4362ed-c310-442b-a742-ca7c3d1c47dc@gmail.com>
 <c388593e-8371-4040-a179-c0bf32ae0696@suse.com>
 <42847a9e-71e1-47a0-b4fb-7d8c91370bf4@gmail.com>
 <1f2f7f37-0a2b-407f-918a-ac35cbbd5cd4@suse.com>
 <42da5eb2-06fb-49aa-8383-cb31f83c3933@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: <42da5eb2-06fb-49aa-8383-cb31f83c3933@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 24.02.2026 13:02, Oleksii Kurochko wrote:
> On 2/24/26 12:32 PM, Jan Beulich wrote:
>> And of course "structured" also touches on proper parenthesization of the
>> statement above.
> 
> According to https://en.cppreference.com/w/c/language/operator_precedence.html
> & has bigger priority, so I haven't put parenthesizes.

We tend to put them everywhere where rules from school maths don't apply.

Jan


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 13:53:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 13:53:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240070.1541565 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vusqv-0007F6-96; Tue, 24 Feb 2026 13:53:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240070.1541565; Tue, 24 Feb 2026 13: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 1vusqv-0007Ew-6M; Tue, 24 Feb 2026 13:53:29 +0000
Received: by outflank-mailman (input) for mailman id 1240070;
 Tue, 24 Feb 2026 13:53: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=6gRX=A4=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vusqt-0007Eq-M1
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 13:53:27 +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 30814049-1188-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 14:53:25 +0100 (CET)
Received: by mail-ed1-x52c.google.com with SMTP id
 4fb4d7f45d1cf-65f5bd5c8e3so1118914a12.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 05:53:25 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65eab9a077asm3653020a12.4.2026.02.24.05.53.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Tue, 24 Feb 2026 05:53:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 30814049-1188-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1771941205; x=1772546005; 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=NafbG4Q2oHJGwYpTFWq8ex1ANZs8I/TQTK7EGeic3fQ=;
        b=E7x31fkPmmagBVhNLsU+v/RdlDHCoiNPMfuo4PrDNlCbRucIGg+sP1XTwyk18DLVVf
         hmbynEQLyqa04JADqUscJZcTdoFHmrmTjhz1bZJmLDLLZwcufXz5iibfcx7GTpEPJIk7
         GJ0LRDSNnt8OvXzw5cZRR3jIIVpAmVMKRxQxsJZgPvZmw7aTJxx4z9QPjIvqGZvjM3VO
         pVdWYiy1V05cFVJ5xjUrERhftQEa5RPF6XxGUrIUONvsD7yYOllwRoddboh0swYvpf4h
         no+smBvQVgl0xyA1xQ5OyQL71NxAqzJ1xgT1LfjBixgQElt1uSUqnWi0j0O8vZv64jNf
         GcOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771941205; x=1772546005;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=NafbG4Q2oHJGwYpTFWq8ex1ANZs8I/TQTK7EGeic3fQ=;
        b=uOQa3CmeS5vaYpL6YyFcZv5GKZIB+LOIaDs0XxFt0MyUaKe+KQTkd+dwjR6AhsVYzr
         1nkvd48Ge9m6K+u115/z8+RfEUM4KPeJWi5Xjoe50GeBBd4+rDewLtHVpLusGPwW8+SO
         2I2m3xQTtslDmcLT9RltrqQsYzfD8L0w4g0d6ZPQgRqSiS0s9MuDm23oQ88EQrWzrc2A
         KvgvpOB3wbqrv7d7x1B7FazL8lhb0+qlvTD2tOCquNgzYPKvkbhWq49JQJ1zXrdTHeR6
         AagmXE2VOionbqYcqz2xC/rmJIAKhoRVMa/FXJVRD8sAlZPxqZe0+vPKAFnD/tWstEG3
         MIRQ==
X-Gm-Message-State: AOJu0Yw7s2bPf1j4tIa+JDiXu5rj9oBe6IOsK4q5029QaOHKOvCHhv6o
	s5al62goA18u2tL+9OZ+xQSOsxXT7akaNT8grG6y1jonlQonGRYXKU15jyQWFt1o0W0=
X-Gm-Gg: ATEYQzx458eJs/c3Sf8NFrATnPuJt9qIC4T8lcbRmZfyDq/phEENXGHua8XSItRHAqZ
	d1aghRf0nFmw1rFjZ1lj9PEXxSaSHxq5W49y8S94KfGH+Ki1wBP6sQqo7HJo9H550db4opPojV7
	AS7Pf89kClGBUT/Rgc8zcfB2McGhEdQ0GxiANu2aYc/4JKqpRfAZKJlSDk9yJprIfP4YWvON9vs
	VZSgO+j18AQBltiHZwOYAAbRlUUmUIpmX6EjE/1i568EJ79/n1MoKIbOHRwFmWnOvIDBQ04XLJN
	XZwczwspWmdx7ErqoP9aQdIxVanywBq54O2AOE1J7aVTDxmzRvFltTgC7eogBe1PskLSQ0filVW
	9gDlvJrbSpLuA6wzvwaBlA+RysMIH2LNuiHFMQOEIaAhc1nVm4z/yKZ4sROVGEeb2eJ08YhNHz+
	ddGiPboSrzsiAiYf6E2Gn7JNeB6fyOqn5KRXKcOsWCCYoJ5m26Cx+mx9ox1CvTOuezgMpmbI6hN
	CCpOXxvOac1wul1+OCoNbw6Zl5hs6QFhmUDfAteLDoLiPExznI4aSAubUMQqCJ9
X-Received: by 2002:a05:6402:34d5:b0:65c:64a:2164 with SMTP id 4fb4d7f45d1cf-65ea4ee7b62mr8032598a12.12.1771941204604;
        Tue, 24 Feb 2026 05:53:24 -0800 (PST)
Message-ID: <c317c1ee-82d9-4e9d-9c47-fb474527b5ae@suse.com>
Date: Tue, 24 Feb 2026 14:53:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
To: Teddy Astie <teddy.astie@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
 <aZ2IB9gBo_DrZLSf@macbook.local>
 <c788fa3d-4080-47bb-9fb4-1452866393bf@suse.com>
 <d4ff30fe-4770-49a7-8f80-3e45370b682a@vates.tech>
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: <d4ff30fe-4770-49a7-8f80-3e45370b682a@vates.tech>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------QPptFcXq6v9lbURaP95pBHbq"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------QPptFcXq6v9lbURaP95pBHbq
Content-Type: multipart/mixed; boundary="------------hoFB35ELV9PuN50zNpHBJNHt";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Teddy Astie <teddy.astie@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
 Boris Ostrovsky <boris.ostrovsky@oracle.com>,
 Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Message-ID: <c317c1ee-82d9-4e9d-9c47-fb474527b5ae@suse.com>
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
 <aZ2IB9gBo_DrZLSf@macbook.local>
 <c788fa3d-4080-47bb-9fb4-1452866393bf@suse.com>
 <d4ff30fe-4770-49a7-8f80-3e45370b682a@vates.tech>
In-Reply-To: <d4ff30fe-4770-49a7-8f80-3e45370b682a@vates.tech>

--------------hoFB35ELV9PuN50zNpHBJNHt
Content-Type: multipart/mixed; boundary="------------jZClsr1CzM0Z048GPlPJhl0W"

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

T24gMjQuMDIuMjYgMTM6NDYsIFRlZGR5IEFzdGllIHdyb3RlOg0KPiBMZSAyNC8wMi8yMDI2
IMOgIDEyOjI1LCBKw7xyZ2VuIEdyb8OfIGEgw6ljcml0wqA6DQo+PiBPbiAyNC4wMi4yNiAx
MjoxNCwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToNCj4+PiBPbiBUdWUsIEZlYiAyNCwgMjAy
NiBhdCAxMDo1MTozNUFNICswMDAwLCBUZWRkeSBBc3RpZSB3cm90ZToNCj4+Pj4gSXQncyBj
dXJyZW50bHkgcG9zc2libGUgdG8gYnVpbGQgTGludXggd2l0aCBDT05GSUdfUFZIfENPTkZJ
R19YRU5fUFZIVk0NCj4+Pj4gYW5kIG5vIENPTkZJR19YRU5fUFZILiBUaGF0IGxlYWRzIHRv
IGluY29uc2lzdGVudCBrZXJuZWxzIHRoYXQgZmFpbHMNCj4+Pj4gd2l0aA0KPj4+PiAiTWlz
c2luZyB4ZW4gUFZIIGluaXRpYWxpemF0aW9uIiB3aGVuIGJvb3RpbmcgdXNpbmcgUFZIIGJv
b3QgbWV0aG9kIG9yDQo+Pj4+IGRpc3BsYXkgdmFyaW91cyBlcnJvcnMgYW5kIGZhaWwgdG8g
aW5pdGlhbGl6ZSBYZW4gUFYgZHJpdmVycyB3aGVuDQo+Pj4+IGJvb3RpbmcNCj4+Pj4gd2l0
aCBQVkgtR1JVQi4NCj4+Pj4NCj4+Pj4gIMKgwqDCoMKgIHBsYXRmb3JtX3BjaV91bnBsdWc6
IFhlbiBQbGF0Zm9ybSBQQ0k6IHVucmVjb2duaXNlZCBtYWdpYyB2YWx1ZQ0KPj4+PiAgwqDC
oMKgwqAgLi4uDQo+Pj4+ICDCoMKgwqDCoCAjIG1vZHByb2JlIHhlbi1ibGtmcm9udA0KPj4+
PiAgwqDCoMKgwqAgbW9kcHJvYmU6IEVSUk9SOiBjb3VsZCBub3QgaW5zZXJ0ICd4ZW5fYmxr
ZnJvbnQnOiBObyBzdWNoIGRldmljZQ0KPj4+PiAgwqDCoMKgwqAgIyBtb2Rwcm9iZSB4ZW4t
bmV0ZnJvbnQNCj4+Pj4gIMKgwqDCoMKgIG1vZHByb2JlOiBFUlJPUjogY291bGQgbm90IGlu
c2VydCAneGVuX25ldGZyb250JzogTm8gc3VjaCBkZXZpY2UNCj4+Pj4NCj4+Pj4gV2hlbiBi
dWlsdCB3aXRob3V0IENPTkZJR19YRU5fUFZILCBQVkgtc3BlY2lmaWMgbG9naWMgaXMgZGlz
YWJsZWQsDQo+Pj4+IGhlbmNlIHdoZW4NCj4+Pj4gYm9vdGluZyB3aXRoIGUuZyBQVkgtT1ZN
RiwgTGludXggYXNzdW1lcyB3ZSBhcmUgYSBIVk0gZ3Vlc3QsIGV2ZW4NCj4+Pj4gd2hlbiB3
ZSBhcmVuJ3QNCj4+Pj4gYWN0dWFsbHkgb25lIChpbiB0aGUgIndpdGggSFZNIGVtdWxhdGVk
IGRldmljZXMiIHNlbnNlKS4NCj4+Pj4NCj4+Pj4gQXMgaXQgaXMgYWN0dWFsbHkgcG9zc2li
bGUgdG8gYm9vdCBYZW4gUFZIIHdpdGhvdXQgQ09ORklHX1BWSDsgYW5kDQo+Pj4+IHRoYXQg
bW9zdA0KPj4+PiBYZW4tcmVsYXRlZCBsb2dpYyBleGlzdCB3aXRoaW4gQ09ORklHX1hFTl9Q
VkhWTTsgY29uc2lkZXIgUFZIIGd1ZXN0cw0KPj4+PiBzdXBwb3J0DQo+Pj4+IHdpdGhpbiBD
T05GSUdfWEVOX1BWSFZNIGluc3RlYWQgb2YgQ09ORklHX1hFTl9QVkguDQo+Pj4NCj4+PiBT
byB0aGUgY3VycmVudCBDT05GSUdfUFZIIHNlbGVjdGlvbiBkb25lIGJ5IENPTkZJR19YRU5f
UFZIIGlzIG1vb3Q/DQo+Pg0KPj4gTm8sIGl0IGlzbid0Lg0KPj4NCj4+IENPTkZJR19QVkgg
aXMgdGhlIGNvbW1vbiBiYXNlIG5lZWRlZCBmb3IgWGVuIGFuZCBLVk0gZ3Vlc3RzIHRvIGJl
IGFibGUgdG8NCj4+IHJ1biBpbiBQVkggbW9kZS4NCj4+DQo+IA0KPiBUbyBtZSwgQ09ORklH
X1BWSCBpcyBtb3JlIGFib3V0IGJlaW5nIGFibGUgdG8gYm9vdCB1c2luZyBQVkggRGlyZWN0
IEJvb3QNCj4gdGhhbiBzb21ldGhpbmcgZWxzZS4NCg0KVGhpcyBpcyBvbmUgYXNwZWN0IG9m
IGl0LCB5ZXMuDQoNCj4gDQo+Pj4NCj4+Pj4gS2VlcCBDT05GSUdfWEVOX1BWSCBhcyBhIHNo
b3J0Y3V0IHRvIGVuYWJsZSBQVkggYm9vdCwgQUNQSSBzdXBwb3J0DQo+Pj4+IGFuZCBQVkhW
TS4NCj4+Pj4NCj4+Pj4gU2lnbmVkLW9mZi1ieTogVGVkZHkgQXN0aWUgPHRlZGR5LmFzdGll
QHZhdGVzLnRlY2g+DQo+Pj4+IC0tLQ0KPj4+PiBDYzogSnVlcmdlbiBHcm9zcyA8amdyb3Nz
QHN1c2UuY29tPg0KPj4+PiBDYzogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lA
b3JhY2xlLmNvbT4NCj4+Pj4gQ2M6IE9sZWtzYW5kciBUeXNoY2hlbmtvIDxvbGVrc2FuZHJf
dHlzaGNoZW5rb0BlcGFtLmNvbT4NCj4+Pj4NCj4+Pj4gQSB0ZW50YXRpdmUgcGF0Y2gsIEkn
bSBub3Qgc3VyZSBvZiB0aGUgd2F5IG9mIGRlYWxpbmcgd2l0aCB0aGUNCj4+Pj4gS0NvbmZp
ZyBwYXJ0LA0KPj4+PiBrZWVwaW5nIENPTkZJR19YRU5fUFZIIGFzIGEgc2hvcnRjdXQgaXMg
aW50ZXJlc3RpbmcsIGJ1dCB0aGVyZSBtYXkgYmUNCj4+Pj4gb3RoZXINCj4+Pj4gb3B0aW9u
cy4NCj4+Pj4NCj4+Pj4gVGhlcmUgYXJlIHdpZGVzcHJlYWRseSB1c2VkIExpbnV4IGRpc3Ry
aWJ1dGlvbnMgdGhhdCBoYXZlIGEgc2ltaWxhcg0KPj4+PiBjb25maWd1cmF0aW9uDQo+Pj4+
IHRvIHRoaXMgb25lLCB0aHVzIGV4aGliaXQgdGhpcyBpc3N1ZSBpLmUgZmFpbCB0byBib290
Lg0KPj4+DQo+Pj4gRG8geW91IGtub3cgdGhlIHVuZGVybHlpbmcgY2F1c2Ugb2Ygbm90IGVu
YWJsaW5nIENPTkZJR19YRU5fUFZIP8KgIElzDQo+Pj4gdGhlIGRlZmF1bHQgc2V0IHRvIG4g
b24gdGhlIGRlZmNvbmZpZz/CoCBPciBhcmUgZGlzdHJvcyBzcGVjaWZpY2FsbHkNCj4+PiBk
aXNhYmxpbmcgdGhpcyBvcHRpb24gb24gcHVycG9zZT8NCj4+Pg0KPj4+IEl0IHNlZW1zIGxp
a2UgYSBzdGVwIGJhY2t3YXJkcyB0byBtZXJnZSB0aGlzIGludG8gc29tZSBiaWdnZXIgZ2Vu
ZXJpYw0KPj4+IG9wdGlvbiwgd2UgYWx3YXlzIHRyeSB0byBmaW5lLWdyYWluIGFzIG11Y2gg
YXMgcG9zc2libGUuDQo+Pj4NCj4+PiBNYXliZSB5b3UgY291bGQgaW50cm9kdWNlIFhFTl9I
Vk0gbWV0YSBvcHRpb24sIHRoYXQgc2VsZWN0cyBib3RoIFBWSFZNDQo+Pj4gYW5kIFBWSD8N
Cj4+IE5vLCBwbGVhc2UgZG9uJ3QgdXNlICJIVk0iIGZvciB0aGF0IHB1cnBvc2UuDQo+Pg0K
Pj4gSWYgYW55dGhpbmcgSSdkIHNldCB0aGUgQ09ORklHX1hFTl9QVkggZGVmYXVsdCB0byB0
aGF0IG9mIENPTkZJR19YRU5fUFZIVk0uDQo+Pg0KPiANCj4gVGhhdCBjb3VsZCB3b3JrLCBi
dXQgdGhhdCB3b3VsZCB0cmFuc2l0aXZlbHkgaW1wbHkgdGhhdCBDT05GSUdfWEVOIG5lZWRz
DQo+IENPTkZJR19QVkgsIHdoaWNoIEkgZ3Vlc3Mgd2UgcHJvYmFibHkgd2FudCB0byBhdm9p
ZC4NCg0KSSBkb24ndCBzZWUgdGhhdCAobmVpdGhlciB0aGUgZGVwZW5kZW5jeSBvZiBDT05G
SUdfWEVOIG9uIENPTkZJR19QVkgsIG5vcg0KdGhhdCBpdCBpcyBhIHByb2JsZW0gdGhhdCBD
T05GSUdfWEVOX1BWSCBkZXBlbmRzIG9uIENPTkZJR19QVkgpLg0KDQo+IEFzIEkgc2FpZCwg
aXQncyBub3QgcmVxdWlyZWQgdG8gYm9vdCB3aXRoICJQVkggZGlyZWN0IGJvb3QiIGZvciBh
ICJQVkgNCj4gZ3Vlc3QgcGVyc29uYWxpdHkiIHRvIHdvcmsgaW4gTGludXggc2luY2UgWzFd
Lg0KDQpQbGVhc2UgYmUgYXdhcmUgdGhhdCB0aGlzIHdhcyBuZWVkZWQgYmFjayB0aGVuIGlu
IG9yZGVyIHRvIGJlIGFibGUgdG8gdXNlDQphIGJvb3QgbG9hZGVyIGZvciBib290aW5nIGFz
IFBWSCBndWVzdC4NCg0KV2l0aCB0aGUgYWRkaXRpb24gb2YgZ3J1Yi14ZW5wdmggKHdoaWNo
IHdhcyBtb3JlIHRoYW4gb25lIHllYXIgbGF0ZXIpIHRoZQ0KcHJlZmVycmVkIHdheSB0byBi
b290IGEgWGVuIFBWSCBndWVzdCB3YXMgdG8gdXNlIHRoYXQgZ3J1YiBmbGF2b3IsIHdoaWNo
DQppcyB1c2luZyB0aGUgUFZIIHNwZWNpZmljIGVudHJ5IHBvaW50IG9mIHRoZSBrZXJuZWwu
IEV2ZW4gbGF0ZXIgcWVtdQ0Kd2FzIGVuaGFuY2VkIHRvIGJvb3QgdGhlIGtlcm5lbCB2aWEg
dGhlIHNhbWUgZW50cnkgcG9pbnQgd2hlbiB1c2luZyBLVk0uDQpUaGF0IHdhcyB0aGUgdGlt
ZSB3aGVuIHRoZSBDT05GSUdfUFZIIGNvZGUgd2FzIGNhcnZlZCBvdXQgZnJvbSB0aGUNCkNP
TkZJR19YRU5fUFZIIGNvZGUuDQoNCj4gV2UgY2FuIGV2ZW50dWFsbHkgY29uc2lkZXIgZGVj
b3VwbGluZyBDT05GSUdfWEVOX1BWSCBhbmQgQ09ORklHX1BWSCwgYnV0DQo+IHRoYXQgd291
bGQgYnJlYWsgc2V0dXAgdGhhdCBleHBlY3RzIHRoYXQgQ09ORklHX1hFTl9QVkggaW1wbGll
cw0KPiBDT05GSUdfUFZIIChhcmNoL3g4Ni9jb25maWdzL3hlbi5jb25maWcgaW4gcGFydGlj
dWxhcikuDQoNCkhpc3RvcmljYWxseSBhbmQgdGVjaG5pY2FsbHkgSSdkIGNvbnNpZGVyIHRo
ZSBDT05GSUdfUFZIIHNwZWNpZmljIHBhcnRzDQphcyBtYW5kYXRvcnkgWGVuIFBWSCBtb2Rl
IGtlcm5lbCBjb2RlLiBOb3QgYmVpbmcgYWJsZSB0byBib290IHZpYSBncnViLXhlbnB2aA0K
d291bGQgYmUgYSBtYWpvciByZWdyZXNzaW9uLg0KDQoNCkp1ZXJnZW4NCg==
--------------jZClsr1CzM0Z048GPlPJhl0W
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-----

--------------jZClsr1CzM0Z048GPlPJhl0W--

--------------hoFB35ELV9PuN50zNpHBJNHt--

--------------QPptFcXq6v9lbURaP95pBHbq
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/Ey8FAmmdrVMFAwAAAAAACgkQsN6d1ii/Ey8e
jwgAnKiXNyO0f+HwXCvo1GQBfkCxdqn/mSkHyLdj2J41tZRIX4tG281a7HnvM7URnAJOdM/N9UhC
auTd0GYjcG9hDJWabstysrI6yXJoOXAhioi99cMK8EgV1ZIXD5KjZE9KvFHeXbiAO2ZWH8wp6/yz
0cu8ImmDbCnBMbYIgSgt5wKZiRvYR2FuZH+HIBhQsRa7sOkisJEQ8xIoksiml2wLfRacS73Ppis7
6ONm2YuAJOsFIrpjPFNcnVI1HlFGX6Q0ZYE2aeJEhj0tNeIzWttfX7RGI1fdqOJ4xBwVbY78O6VW
7n9CYf1A9O77Dm3rvzmDChoUWdGRW+t/WO5h0GdNpQ==
=1pd4
-----END PGP SIGNATURE-----

--------------QPptFcXq6v9lbURaP95pBHbq--


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 14:14:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 14:14:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240085.1541575 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vutB1-0001vK-VW; Tue, 24 Feb 2026 14:14:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240085.1541575; Tue, 24 Feb 2026 14: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 1vutB1-0001vD-Sv; Tue, 24 Feb 2026 14:14:15 +0000
Received: by outflank-mailman (input) for mailman id 1240085;
 Tue, 24 Feb 2026 14: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=8A/i=A4=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vutB0-0001v5-RA
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 14:14:14 +0000
Received: from BN1PR04CU002.outbound.protection.outlook.com
 (mail-eastus2azlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c110::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1709c737-118b-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 15:14:12 +0100 (CET)
Received: from CH0PR03CA0445.namprd03.prod.outlook.com (2603:10b6:610:10e::31)
 by BY5PR12MB4210.namprd12.prod.outlook.com (2603:10b6:a03:203::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Tue, 24 Feb
 2026 14:14:06 +0000
Received: from CH2PEPF0000009D.namprd02.prod.outlook.com
 (2603:10b6:610:10e:cafe::71) by CH0PR03CA0445.outlook.office365.com
 (2603:10b6:610:10e::31) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue,
 24 Feb 2026 14:14:05 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CH2PEPF0000009D.mail.protection.outlook.com (10.167.244.25) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 14:14:05 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Feb
 2026 08:14:05 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Feb
 2026 06:14:05 -0800
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 24 Feb 2026 08:14:04 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1709c737-118b-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=sB7Hxawh7TAjTefm6NuFAA58bz/qUqzJ3zEca+bYpjlzQXt2imLzZKM/XPutEvT1tudaXv+J+s+UixNTzUEn8LA2O1fmy1FhRxl1KMwQp29MXTX5wVYQZLe/1W91sSOiLTkKDvnt2KQ6kRMEuvlPBBVF8AAhogrnlseEuF0/fiw/iRqOe4E7ZKsT0FdYJx5GoCvPmC9yUioE77fKSgFZFvqolFW0IVFKl6KQcc44GjjxyH9UpWgn+821FMKEnX98b0KC+qGXq76vMu0LOM0G76uez5qT0jnfGub9RzdBOwuyOP5aNXMMSnj3VMDTfY7kfIG/Oi//RhF5XOpjrNhFfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PwF2Hy8nkHE/baHPoCLHkv0AMVvgnCOSRvJcC3RQz8Q=;
 b=Su+ZYzPipSmYOh3BF1melwBWElqbh2pE0/MawGXqf1ZsUt4iPdeIYt/eqNRD92AKkybNPMxMxgSbE1nEazw3Mh+gJrZzi9BWgqN1tvff4ns6HEBqpNUMCsZ5cfA+9EzsvJMkQ4+onYcXjkFEz1lzOGPqyNc1AvNr2oYPzCOjDw9W0BVYv85C5NkgGbvHRiHYzyxIoB/HYNIrraFPla1jLB3fztTQq7PZwLJwrrP9F9539So5V3+p260H9bzrtrVLfuIFqfkla+XA5XVCZzU6jmjfGzwnps00wnOrYMPooxWy0hL2PCci0sCzWb9DdI7rU+Fy5phJx6EzI/nNLi5CXA==
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=PwF2Hy8nkHE/baHPoCLHkv0AMVvgnCOSRvJcC3RQz8Q=;
 b=Xp7EXOQAHWDVlOPTtl/Wh1rZYNhbwYAk9siFQVJ+AJpnfnHupgjYJaNvCawu48GfDZDNQNBWl7KR2fc79jBN09a/rD5Dh6ljQs81eVdghiI+8APsoFeNvp6rmLShylsOfuIKGSwN3RrmQb0VS7Kfg00m6aL8ZiJtZzHP5LUytzI=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <631f2de3-f551-412c-a465-34cd5d8db8a3@amd.com>
Date: Tue, 24 Feb 2026 15:14:03 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/2] xen/arm: Simplify SMCCC handling by reusing
 __declare_arg_$()
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, "Bertrand
 Marquis" <bertrand.marquis@arm.com>
References: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
 <20260224124558.3675278-2-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260224124558.3675278-2-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PEPF0000009D:EE_|BY5PR12MB4210:EE_
X-MS-Office365-Filtering-Correlation-Id: bac1198c-13d0-4135-ec67-08de73aef83b
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?L3dsVEpRczFNMHM5azI0U3A4TitjaEczY1RSMFJXMUYxckc0dzJKeklLNTkx?=
 =?utf-8?B?KzhBSng5czRvckpJSm1Lc05QOE5uSUVaL3Vmc1lPYjVQdVk2OGdNNTNPcTdY?=
 =?utf-8?B?d2pGQ0NVRDNtcTlRT0hONEJUT0xicnJ0TlVzT1pxLzQyNW94VTJDaXQ5K21X?=
 =?utf-8?B?bGRsbXg5dDByNnROVk5HTk1WaVdjMnNDeURWVXdIUEF5clNQL0JZU3kydDZ5?=
 =?utf-8?B?UjltSkZUWDl0ZXVKNzZxbjExUnhJNTI1Qk9UN3VjNStuL2V6WmExcWtXdGdK?=
 =?utf-8?B?d1p3NERwMDlZZExxZzJjQ3F2ZGlmNE5RRnRXZ0trNWFVTXZSVmFtT0FzQlNm?=
 =?utf-8?B?S3VzbzdIUllFK21NQ2pYOHFsTDJWSDc3V016YWpYclNndHBtb0c2eERHUXN5?=
 =?utf-8?B?SnBLdWhPQ1JpR3lUdUdQd0RrWkZhQ1BqdDFWWnZKOGdUUlN0V0lPQ2F4cUts?=
 =?utf-8?B?RHJZNlF3MUE4bW9hQjFkVk9KWjNhT2ZLK0N6Q3V3ZXlEZlVFcHhERkdLb3dv?=
 =?utf-8?B?RXFhd1RCdlNza0FWMDlwa1Iwc2c1WFZpMUF6ZWdyOFJnRVk4eWtPUXAvT25p?=
 =?utf-8?B?N1haRHVBa2FiL2U2VHlsTVlBV3BQVkd6c2RrMUtmZXVPL3VFK3Nyck0wMTRC?=
 =?utf-8?B?V3BqcWF5WmxzbzVMQTJ2aDN1K25hVGFJL0R2NjRXK2ZuN2MvbUxLQWxkdUN2?=
 =?utf-8?B?THRERmxhajBKVlYyekJmTWNacmhaU1FMNmhkQ1NVVkh4MjNEb3E1M1JaVzFu?=
 =?utf-8?B?OENuZlRrNnZZTFQwakFXbWhqVHpPaldsU2VUZ1g2aDBXYnZyLzgvVzQ2eWtW?=
 =?utf-8?B?SHR4TjhzTnhScGExeGkwNWFFa01weVhwbWVCbGFCenh1SFRmY2M2Vktsa1ZP?=
 =?utf-8?B?ZTB0enZkSDBKdHQrVDlheEsxYnVOd3dENUFzNkJ0U09CK3I2S0trdFNGU1p5?=
 =?utf-8?B?NjFHNTJwYUxJVDQ1Mmx2aUkrTlFBT2JibHEzZUNzdHQzN29tQjNWYUF1SWww?=
 =?utf-8?B?Vnk1K3FtM2UveXpvR21NZ25iMkwrOVhoRkxlQ0VmSjlRWEtRQjVxRENLTFlm?=
 =?utf-8?B?bDZaQUduVkY3dmdwMG9yblptZWNadmg5Z0ZqZG52SVBpZ0M1b1NRdlE0ejhH?=
 =?utf-8?B?eWxiMDVydlZZY0pqVUIydFhjc0hQK0E0VUFYWXhLQ3RFV2VZVVdnQnFRdTRl?=
 =?utf-8?B?cFhNRjc2S21qZUE2MzBCeC9mY2ttR3QvU0RpRHp0WDRwVm9QVGhhb2k0OE12?=
 =?utf-8?B?ZjUvWDJEVUdOejlZRjBsTGUrYWJZZjZNVFhwV1QzY2lPTmgwQSs4aGJRYVFo?=
 =?utf-8?B?eVM3SjlEcHdtY1hMK2lQMzBJbTY5YktORitTeVdRV213QzJ3aXlsWXFxK1Zu?=
 =?utf-8?B?RjNzbEgxb3k0LzdSd1BRSkVuVXM5ZGJsVnNlQWs5YW0vNTNEMC9PaG5Oc3Nw?=
 =?utf-8?B?QWZwV2ZRMWExQVFqOG52K3p6NFFZRGV3eURzUGpqY0VuVmswdmxGdmk2Snlh?=
 =?utf-8?B?TVRUU1lXWUR1YkpBbS9RQk9ZaEFGKzV2RUgyUlNsSVNkQUc2dXNhQ0RtUUlC?=
 =?utf-8?B?Q0xadHM3WHIxZzNPd1lGRXpsY3Rqcm83bGxnaUtCcTUyMGtaNmY4cVR4K0x5?=
 =?utf-8?B?aUE1NCt2NkkwRFpyaENLaFdMbDdFc3hkbkZHQlgvYy9XQ3ViZ3pzUGRncmZV?=
 =?utf-8?B?UTdtT1RiOVlJY3llUy9vK0s5aUUzTmFvdnBKT3BVYUUyenc2dVJnanFiWEdL?=
 =?utf-8?B?bXhGWmxNaEFEY2MxcDRIRUV5cEFGejdmenV2NTYydkhIZU5KQTQyWUdoNlNK?=
 =?utf-8?B?TVprYm9iZisrdDdPVjFFblV4MjZSNTJraHhYbXpnbitDWDcxTERzR2tqblhy?=
 =?utf-8?B?ZVl0V1BHSjdEVnFMbVNVYmpXTWloM3RZRktOUGVZcWJKS0V3NW85Sm0yY0N3?=
 =?utf-8?B?KzZUMDNGQllOc0g5ZFczN3RnempzSXlvLzNGakNYTE9OVUF3eFFrRmpXbkRz?=
 =?utf-8?B?YzdtcHJqZnVVL3RuZ0dOZlJ2Qm9SKzVsSUJkN3NNa2E1akpiWHFKSTB5OWlH?=
 =?utf-8?B?OWw1ZDhLSUVmRkNScjZzczhwRzh3SlBxbTl2TDlsblUvMnZMZnMrelgrTm5W?=
 =?utf-8?B?RnpEVkRKZTA2aUtXM0FuK2ZpQVdJajhVdjJxcjREYXNDQUdUVWJBYXFOcGY3?=
 =?utf-8?B?MTZwQ1owNWZNWDlCSjdYRk5BTjAvTExoS0lhSkVSWHlKc3NVV2x6b05zM3ov?=
 =?utf-8?B?clNFaW9ITWNybjhDcWUySWU2cUVRPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Vx7OAtOJgiwdT0CbuNMW+Zhg7sq1wuVvci3Uq37NJASs89bjan1z224h7p5SVeuroYZhmoqBi4L8zpqWfu7KqL6vdYj84OA+C89mtnQD4Lvxk8VPlKUOUxhabd8fjZJHw1uh5PrvaIJkE7C1ksSpntfwC3xanE5hitXezIyb+rU6DYnvwawXT6VWP+B1CZCK/pacnJ9B2e8LHwj5uuUGsPcHL/2mlQxbI8ie1/MGre5cFyu2B8qfONkT2KIVucWTj4YU9/Qfcyw35JR82j2IZH7OxCv0GRci4e+TFmTnhqYy3TBNeX3MjwmURo1Bi97U5D6hR+tWU07Zm1DzZVInM4XKXmF66mMEvyrYd1+VXIjh+Zs8fnI+XxASQeU5qMWn9t75wMda5uz+j3P2jmgmjRv8/+DRWR3EjZeJlkhUtQ8q9Mc3Bp8+ZAZeg6LcFBf0
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 14:14:05.8840
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: bac1198c-13d0-4135-ec67-08de73aef83b
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CH2PEPF0000009D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4210



On 24/02/2026 13:45, Andrew Cooper wrote:
> Now that the type handling is entirely uniform, it's easier to see that
> __declare_arg_3() can use __declare_arg_2() and so on, just like the larger
> __declare_arg_$()'s already do.
> 
> No functional change.
This patch won't build.

> 
> 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>
> ---
>  xen/arch/arm/include/asm/smccc.h | 15 +++------------
>  1 file changed, 3 insertions(+), 12 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
> index 5b30dd57b69d..347c4526d12a 100644
> --- a/xen/arch/arm/include/asm/smccc.h
> +++ b/xen/arch/arm/include/asm/smccc.h
> @@ -114,26 +114,17 @@ struct arm_smccc_res {
>  
>  #define __declare_arg_1(a0, a1, res)                        \
>      typeof(a1) __a1 = (a1);                                 \
> -    struct arm_smccc_res    *___res = (res);                \
> -    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
> +    __declare_arg_0(a0, res);                               \
>      register typeof(a1)     arg1 ASM_REG(1) = __a1
>  
>  #define __declare_arg_2(a0, a1, a2, res)                    \
>      typeof(a1) __a1 = (a1);                                 \
You should remove this line and ...

> -    typeof(a2) __a2 = (a2);                                 \
keep this line.

> -    struct arm_smccc_res    *___res = (res);                \
> -    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
> -    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
> +    __declare_arg_1(a0, a1, res);                           \
>      register typeof(a2)     arg2 ASM_REG(2) = __a2
>  
>  #define __declare_arg_3(a0, a1, a2, a3, res)                \
>      typeof(a1) __a1 = (a1);                                 \
> -    typeof(a2) __a2 = (a2);                                 \
Same here.

> -    typeof(a3) __a3 = (a3);                                 \
> -    struct arm_smccc_res    *___res = (res);                \
> -    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
> -    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
> -    register typeof(a2)     arg2 ASM_REG(2) = __a2;         \
> +    __declare_arg_2(a0, a1, a2, res);                       \
>      register typeof(a3)     arg3 ASM_REG(3) = __a3
>  
>  #define __declare_arg_4(a0, a1, a2, a3, a4, res)        \

In principal, with the remarks addressed:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 14:18:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 14:18:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240095.1541586 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vutEw-0002dw-Eo; Tue, 24 Feb 2026 14:18:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240095.1541586; Tue, 24 Feb 2026 14: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 1vutEw-0002dp-Bj; Tue, 24 Feb 2026 14:18:18 +0000
Received: by outflank-mailman (input) for mailman id 1240095;
 Tue, 24 Feb 2026 14:18: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=dCRR=A4=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vutEu-0002dj-TA
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 14:18:16 +0000
Received: from CY3PR05CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170130007.outbound.protection.outlook.com
 [2a01:111:f403:c112::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a414c684-118b-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 15:18:09 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BN8PR03MB5090.namprd03.prod.outlook.com (2603:10b6:408:db::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 14:18:02 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 14:18: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: a414c684-118b-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=f/TVtK1ZYMVvpm0ywHUreljo6HehJiM89xpStyjmds6iY1y0+fsvIB5lOJkTaILIDDbzDB4Uori++9NPyz85V9Y+tUYc1OPSqT9cEIk1yKRUp/0LLBji/o6jRDTk0Yr6n/1SBBKwn39vdqqjpOfyUYfwz7yG3bi6HHdDT3V1QM+yxiGwZ1txmpRm+K6TYVFeUv2VV/fQKBZA8frLD71P45t0uZFNadbOnNFbQ/SbcaSGs3GR4vZ5cRBpPS3mZcmCQUyv9DCp1z6wFLRNC9zoebGVPqgSm4eAIwpAP1eHV5k3PxlvhqBLMOL6buvWdpZJTkE2HZfyODMDAshWdMQvvw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=axrfCNCbwDyu+3mQDhGKi1oDYTpIDtmCzqfj9oh3uiE=;
 b=HOeBHb9bfxI/+hj5gzkwZ8UJNmvP67OCUWBYPFw+D8msVtvIzGrXz3Z/kY6W7L+uFTag7Ii4trktoIF2W7AWmbZz23AbImxU7fkTPGpsHIboly88gY30OAcLKoDcW4Gfz3JuYuCw9WztoP+AxH4E8eCU1mbV4zAVZnPUSIrDqOKEsAuJ4rvMknIps/ZohrOR5dmOP3ZyU0AAbs+GHeRxgwjIsaUyvu/TzTumd78AlCJaielxMXUhpwnGooqXCArHkRA2GNj0rroLY32hGb46tIXP0Lu2T6CxUji8RARqd32cE6VPXCIFJWk7La6JPgnE9Uzg6tv7iHRBh4bUfyK/PA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=axrfCNCbwDyu+3mQDhGKi1oDYTpIDtmCzqfj9oh3uiE=;
 b=sS3RaYogxR3X6tyIzyDjfBc8WI6qaBERoDMzRb215WEOI8oGj6FxKYCRrifJkHX4mg4t/33Rt+Rcx+zl27GNRNnAO2QAMjUe5+MKMK2YXyC2Q0CMWq/2mbt0lUUpP38nSs3wqdQ1sFNZUBU12N1C7bD8MLL+FJbksi+yOAanL/w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <46b25d29-d7b9-4b5f-af54-074ecce5c34c@citrix.com>
Date: Tue, 24 Feb 2026 14:17:59 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH 1/2] xen/arm: Simplify SMCCC handling by reusing
 __declare_arg_$()
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
 <20260224124558.3675278-2-andrew.cooper3@citrix.com>
 <631f2de3-f551-412c-a465-34cd5d8db8a3@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <631f2de3-f551-412c-a465-34cd5d8db8a3@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO3P123CA0021.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:388::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BN8PR03MB5090:EE_
X-MS-Office365-Filtering-Correlation-Id: 309359d3-de7e-4a8b-481e-08de73af8514
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?eTBVMEhqMTNPbUhraHZhQkZ1aS9wajBId08rY1AvK2tZcXRpZFR6SldNeVI2?=
 =?utf-8?B?Rk5FZGFrKzR5dHoyR3c5bkFNeTA0NmxYK1dCNW5DVGxHVnlydjQ0S2N6bnhp?=
 =?utf-8?B?NjJoc1FHajNKazViTS81Y245WFIxRm8xK3BnRitnSHFhQlJXaVdsQmJXS2NM?=
 =?utf-8?B?YS9PejVmdVFUeS9UMDlPWXNoQXNhT1ZnYWVhS1Z1dDkzTUZXL1Z4anlzcStZ?=
 =?utf-8?B?bDEyMk81TXlsTWJXRzMyeHhLT0Z6bVpmK0xvZktBVnJKTGlIZ3I4YVo1TU45?=
 =?utf-8?B?REQ1anF0SkhMZnhPeFBpb0FObDdDT0phSmdPSmQrZ0JucURPRDJIRmxxZExh?=
 =?utf-8?B?QVM3b0tsbnlnOVRuTmdoVHRQdy9ndmZjZUQ5T2xuSHczUGNzVm8zelltNEhJ?=
 =?utf-8?B?U1g1RjhuUkNpeko1UGFZVjNxMDY4SGZtS1dIcVJjUWhlcmlSQXUvTkJwK2M0?=
 =?utf-8?B?RDAzRFEwNHh1Z1l2dnlidXY0ejgxaGlVakhjamZua21idkJ4bG5ZSnJCRDBh?=
 =?utf-8?B?ZGRITTRZNWx6YjdFSWdMNDZQdnE0bk1SNm0wM0MwLzJxa1lDMTVtZjdwVFVG?=
 =?utf-8?B?SENTeVdIZFIrUTZsUXFtWmR3WndxMStLR1Nrd1l4YysyT1BwVjlqNE92d0Yy?=
 =?utf-8?B?cVdEdkpxalRQTHdGeWNsRnlUS3ErNmFJcFdSTkFObjRLK0JEK3pKNHRMd3Ez?=
 =?utf-8?B?YndYYXNvUkRVTEpaTU9uRkFwaWh0QVhuMzArNVJDWlI3NHMvejlOTTFFRGpr?=
 =?utf-8?B?dUY0WFlHdEVQRmt1cjNNdE4rM01rK2J5ejdaWmU2bWI4YTdMTDhERzFiUjlH?=
 =?utf-8?B?U0h6MEJlZ0c5Q2w4cGhkY3BNOFJ5TjlmNXA3UUg0TDhqUEpWcitJVDNQTzlN?=
 =?utf-8?B?RDVtc05PRHkvNlNEUzlFOGI5L0tvcXFuQVBPcWszM3VBdUN5THpIenhWbGdY?=
 =?utf-8?B?bVFLcFBrSW0vSzI2YzNSeU1lRUh1ak9RR2tnd0hIODU2cVZFSnhHcTBKR1pZ?=
 =?utf-8?B?NW1QUFdoQ3hCRjZrTjFCSkNyRXhzV3JPTzdOR1FlTlpVWEpwdjBVL0ZRZHln?=
 =?utf-8?B?NTB0UjVkd3dTZ0lubEpsNjA4dnNFOVAxVFJBbnBFL0s4azN2SUVuTE0yc09Z?=
 =?utf-8?B?WGJ2VzE2ZWcwNlQ0VVdQb3owRERZZ29Uei9ScHEzQ2RGb2VkclN4aHFNZUYx?=
 =?utf-8?B?VkVGU0ZzL0JLY1RFL3BqOVM3ZkxyTnFFMnIwNGZyVElkRnFsa1d2RE5FREdN?=
 =?utf-8?B?c3Uxa29iZW9Ed1RrbmRxQkVYa1paN3RUQTVYNUZjU3FNblhOdUJ1QjVFTXh5?=
 =?utf-8?B?cnBrbUFZOGtlYkF6a09JZGEvTFdqVVBPVjVkcXNXVy9XS3AyZjdJbVVYUGVH?=
 =?utf-8?B?WUJRbk92YWdUSVF0SVd5RXBiWlJEcFVhdnc0d3A2TmJpTkg4Q20wN0pDMTl4?=
 =?utf-8?B?V08rY3I0aHcxOTFQczE2dzd6VWg2bnU1blVxVzk3TGUwdUZrcXlPWGRLMCtl?=
 =?utf-8?B?cDBtaWlqRUd5Z0JmYVZZWFpBQ0tCdE0wUE9WdzhTTGlkL3NHREhYbHZPOUls?=
 =?utf-8?B?U3lXOWhsYzJ6c2Z2OWlEWXNhamdEcGtUeWw0Z3V2Q0dnb3lCNmZYeXFFM2hQ?=
 =?utf-8?B?OThYRUxjNVkrUFY0MVdBTEF6Ukgvd0VuZ0dJczR5dDhDL05qcUVCZmd1Smty?=
 =?utf-8?B?Y1dvYkZiV3JwWnZrZGdnQ1kzbGw0VXJlbFpReG1JWkdLQ0c0NmpDSStXVHBS?=
 =?utf-8?B?ZHJDRjlBWVRIRFQ4eDRjUUFocEJuRzZKWXhQakVpRUUyNjBpWUE4UzdQTldp?=
 =?utf-8?B?MENMSjZldUkxK3RjNzl1Q0hXeVVIbFhkK2QrWnJJcys2dmJHWlYvVmtjS2FB?=
 =?utf-8?B?SWg5NGQ4WlVKRTM5b0R3UzlNNjRITXF0VXYrbVRjRUJzNlZMTXlYczY0ekJz?=
 =?utf-8?B?N3EweEh6YXlWNEFSRmkxWkp5bUNqcmdNTEJVYWw1OSsrZURZK0V1aFgxdlN3?=
 =?utf-8?B?T2E0ZTQxV3grM3h0NElQWnl3eWJpN2pIU1ljaklWRS9DelBMeXVnUUFaMEhj?=
 =?utf-8?B?ZXppbjhDWFBPY1U4WFBNVThMeUlDSTU3dmxUUFNhb21zZ0h2MVZpQ2ZxRXZt?=
 =?utf-8?Q?H4Fs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?ZzZkMldJcG53bVVwK0FoVktvNFN2dzYwUXcweURkd1ZIWnRPT2JPTUpKbEo2?=
 =?utf-8?B?UytPOFJTVXM5bnVZc3VyTno5MlNwMUptOHdJRnI1eWxKanVvU0gwQ1NDZm5X?=
 =?utf-8?B?RjhaQ1AvZk4vRlV3Z3d4YW1Zd1A3a21pUWFBL3UzRnFxL3UrTkdyUzI0MFlr?=
 =?utf-8?B?Q0lpU0xSVlpiRHpRNnpiMmpnMDJYcUJuanlTSDNWWjhmTEw3T1lvbHovaUhG?=
 =?utf-8?B?SHU5K25WNU1WNmxHS3JUSEJ6OWJTMDlyaWtwRDFWb0NiWXlwRG1vYUlaV2gw?=
 =?utf-8?B?TFcyUmRUbG5sTGpCenY1aHBXMFk1RTIxVml0LytiWi9GSHBFM3R2M1BCNS85?=
 =?utf-8?B?WHpwTlFyZU9ibk9pS2FaQjFUOVczQ280TS9OUjFDczlTbjE5eGpDMkcvYnM5?=
 =?utf-8?B?T3JZYVYxdi9wQThwNzBaNmZzbWd3K0kvVU9lTDJtN3JDMDBGbmt2Q3JYRWJz?=
 =?utf-8?B?K25DSmxZZ2JIN3hXK0h6MTBpcWFkeVNSZlprZnUyQWtBenI4dktTS1JnMzQ2?=
 =?utf-8?B?WGNKbGF5WUhXVkNVSi9QVWIwR2FrZ1NwRjhzNnF6ckJyQVNFYW1taDJmSERu?=
 =?utf-8?B?SjBoOStIeVZsb1ZCSSt6a3h4ZFN2QnBXT2huYVVMR2ppSng0U3BtRVZsU29T?=
 =?utf-8?B?MXBtU21SdU4wUzVJR3hFTUZuQnlFVVFzZ3lCcUw2VXdFZ1lwRVlqZVBsdjhZ?=
 =?utf-8?B?UG1hUlFxaGtGL0pPZDJtYk1xc1NiNVNaSkJYbmZiWVNJc0VXaDNEM0dhTjV6?=
 =?utf-8?B?N0dWRDJTQmErMWk0ck5DNUVuLzdKMHdWN1RXNEdGUXJ4K1FjTS85SzUyQVJp?=
 =?utf-8?B?Sy94YXZJL1FLSGFBV0V6WmJvQk5GNll1VElDNU9GWFgrYVhqRUZmZEFsQk1j?=
 =?utf-8?B?azloaWRzRkpwTnhVU2VHV0NZUHhHZ2poYjdBUG5IM1dELzVueGVoMjNPOHEy?=
 =?utf-8?B?ait3SDJhdG92d0FKWmxGeUhSZk1sL0ljZ1EvSGtCQnNZM2ZDZHFpTC8zY0hC?=
 =?utf-8?B?QWNibXZJYzNPTXVPazBJWnoxM3lMSjVUWEd4UTlHa08xV2hrZE9FQ0F3TCtw?=
 =?utf-8?B?akNFcmJ1TzVobVZlWDVTZmdVb0ZGM0tnSzNTckgwUmwwbjdLN3BHWFFOU1Nq?=
 =?utf-8?B?dVdDTVZkdEhtWmtHdTJGNnpsZ05paDgrNzU2Q2Rxamw0Y2NlZjl2TzNnM25k?=
 =?utf-8?B?Y0lFN1BhMmNFWU05NHRYMlA1NTRhWDZ3dVhxZXNZeFFaYytnMzEwcnVEelJN?=
 =?utf-8?B?QXZCQ04xMzNMZENxMi9kU2NPS1FIT3F1eHVxMEFqQWEvVTROeVhXbjBLOTJW?=
 =?utf-8?B?NEZ5TDBVU3NCclgwVENScGZEV3paZHc3RTVLRUNGYXFqNUp6M2RiZ2t0RlZq?=
 =?utf-8?B?RTZlZ1VzRkU4Z2NCQ3lyOTdjVlE4Q1FpVEJHWWRLdEtnZlRzTG9mc0dBdVdR?=
 =?utf-8?B?UlRrVjJjUDV6L1QrOGZvZmVGK3BMazkyalNYcjFoK3lOY0VpcHlJQWkxN3Vv?=
 =?utf-8?B?U0xmUk1MQUJUTU5OR3hsazdFV09EQ0dheFhWcmQ3Wk9Wb25mUjM2bTh2dzBW?=
 =?utf-8?B?TllLek1qdU90cm9uejZjTXRQcDJhSElsVGhKTXJLQVJ0aEF0SGtLZlp5ZER6?=
 =?utf-8?B?VUV3NFJZZm9nS3MwcWRZZ0tKZ0pBeVJsSnRlOGtxQ3ZGS21xZ0lKU3dtV25J?=
 =?utf-8?B?dkZnVDhtS2lZbGhVcXFSZUpQWWR4NmJsUjZGb2FqNDlrRHY0d0xPTDhTWGRC?=
 =?utf-8?B?aXZUbHIrbkx6VWxMYXVOczRVbmw2elR4WFRsQ2RaWTN6V3YxSEFScmpwSm9p?=
 =?utf-8?B?RHN1Ni9SZHRlamtjVEJSVHVQSGtsNWxJWERhTzBnQlhPdW55Q0lyaExBYW9I?=
 =?utf-8?B?cVpUVHo2OXBiNnZoNFJMTXFPUG5TTEFiZ2E4bEU1UFdGbDlWQmFJM1d0Um5J?=
 =?utf-8?B?QjRrazVHb0Q0RCtBYVYxL0ZrbDd4T0ZoWTZGcEFVK282aFY1QnhXc0laUytS?=
 =?utf-8?B?RHl6UGdyc05yaFF2UEFEU2FrdDZYeitCOWpjWWFTUnVkdGJ6UmJLZE5jRlVn?=
 =?utf-8?B?RWEzUUlRV0s3RTNiaS96YVlFNVBjeldSWFBjUlRqRTlnZ3E3QnZhTUk0d0pl?=
 =?utf-8?B?NmJ3bjB0UytTR0pwd1NaOVdQZkJuWHArUURab3g3bGE0eCtmNTdCME03VmdO?=
 =?utf-8?B?bTlPRUVpOW43M2g0ZGFxbDI0KzBUdS8yeExrNGFSSXBsRjRFREVFekcvalBY?=
 =?utf-8?B?TWlDc0tjb29ORmlTYjEydFM2alphR2tya2xJd0w0SjVaaVBOR0RGWjRROHZ3?=
 =?utf-8?B?RFVoTjJxWERPK28zUnB2c3ZFd0xEaW8veGRORmpBRjZodisxeTVBVXIwOXZl?=
 =?utf-8?Q?yAS7+5jzhwhFCas8=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 309359d3-de7e-4a8b-481e-08de73af8514
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 14:18:02.3234
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: tEvnYX2fhOGjOv2rDexpINVWJd8uRSWnb+ak5lYVHjHM3q4zc+08Gu7o7ti34sv9jNRUDrf20AsAd6rsV7qGvEpabLKavc8D5wMmjsOPbZ0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB5090

On 24/02/2026 2:14 pm, Orzel, Michal wrote:
>
> On 24/02/2026 13:45, Andrew Cooper wrote:
>> Now that the type handling is entirely uniform, it's easier to see that
>> __declare_arg_3() can use __declare_arg_2() and so on, just like the larger
>> __declare_arg_$()'s already do.
>>
>> No functional change.
> This patch won't build.
>
>> 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>
>> ---
>>  xen/arch/arm/include/asm/smccc.h | 15 +++------------
>>  1 file changed, 3 insertions(+), 12 deletions(-)
>>
>> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
>> index 5b30dd57b69d..347c4526d12a 100644
>> --- a/xen/arch/arm/include/asm/smccc.h
>> +++ b/xen/arch/arm/include/asm/smccc.h
>> @@ -114,26 +114,17 @@ struct arm_smccc_res {
>>  
>>  #define __declare_arg_1(a0, a1, res)                        \
>>      typeof(a1) __a1 = (a1);                                 \
>> -    struct arm_smccc_res    *___res = (res);                \
>> -    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
>> +    __declare_arg_0(a0, res);                               \
>>      register typeof(a1)     arg1 ASM_REG(1) = __a1
>>  
>>  #define __declare_arg_2(a0, a1, a2, res)                    \
>>      typeof(a1) __a1 = (a1);                                 \
> You should remove this line and ...
>
>> -    typeof(a2) __a2 = (a2);                                 \
> keep this line.
>
>> -    struct arm_smccc_res    *___res = (res);                \
>> -    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
>> -    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
>> +    __declare_arg_1(a0, a1, res);                           \
>>      register typeof(a2)     arg2 ASM_REG(2) = __a2
>>  
>>  #define __declare_arg_3(a0, a1, a2, a3, res)                \
>>      typeof(a1) __a1 = (a1);                                 \
>> -    typeof(a2) __a2 = (a2);                                 \
> Same here.

Hmm - it built for me.  I'd better figure out why I missed it first.

With the second patch, these disappear, which is why _that_ builds.

>
>> -    typeof(a3) __a3 = (a3);                                 \
>> -    struct arm_smccc_res    *___res = (res);                \
>> -    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
>> -    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
>> -    register typeof(a2)     arg2 ASM_REG(2) = __a2;         \
>> +    __declare_arg_2(a0, a1, a2, res);                       \
>>      register typeof(a3)     arg3 ASM_REG(3) = __a3
>>  
>>  #define __declare_arg_4(a0, a1, a2, a3, a4, res)        \
> In principal, with the remarks addressed:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 14:18:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 14:18:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240096.1541596 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vutEz-0002sH-Ml; Tue, 24 Feb 2026 14:18:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240096.1541596; Tue, 24 Feb 2026 14:18:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vutEz-0002sA-Ie; Tue, 24 Feb 2026 14:18:21 +0000
Received: by outflank-mailman (input) for mailman id 1240096;
 Tue, 24 Feb 2026 14:18: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=8A/i=A4=amd.com=Michal.Orzel@srs-se1.protection.inumbo.net>)
 id 1vutEy-0002rY-Eo
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 14:18:20 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id a97afd7a-118b-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 15:18:17 +0100 (CET)
Received: from BYAPR06CA0049.namprd06.prod.outlook.com (2603:10b6:a03:14b::26)
 by CH1PPFDA34A4201.namprd12.prod.outlook.com
 (2603:10b6:61f:fc00::625) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.19; Tue, 24 Feb
 2026 14:18:10 +0000
Received: from MWH0EPF000C618F.namprd02.prod.outlook.com
 (2603:10b6:a03:14b:cafe::73) by BYAPR06CA0049.outlook.office365.com
 (2603:10b6:a03:14b::26) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue,
 24 Feb 2026 14:17:57 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 MWH0EPF000C618F.mail.protection.outlook.com (10.167.249.103) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 14:18:09 +0000
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Feb
 2026 08:18:08 -0600
Received: from [10.71.194.215] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 24 Feb 2026 08:18:07 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a97afd7a-118b-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=VBJPock3sGKEZtZBwv1+ErcJX2qNdrHC97mv8a3Rcnv3jWni59PlHML6FGEHqKcIXhUWCyQ8bQcfD497k8JKk83kSZGIqlOC64ZKShYEqqMK8yrPLY5TC9qOxg73eRmvd0XuGYKlAgofkz8wBe088S1LL9GTOUZ7197og+4CaAbXMnIZgCXy5fSCKNUvE8BoOOVoSW82Gp8a8s84CoiQO8AfqQHQuksrr81Svh7RMXR92Aa1me6ah9sddxUDPK+A4guavUWA1OMV0NbC7LF2+t9YAIkwbHvWZLM72Dhlsk9hIUGOSPYmkf1SCwcFO4J5sa7cZnxGzVKjRDK7kXUcRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=WhAwpyF4eVpKJr+13Ng33DywkWY82AX1hItQ16FOarU=;
 b=u5PknNkIitPjmLFnEnKrai8uyeYH17aUAGj22RlrmhOacQKXxuc/InT5kkimpqHWIZTLDq5G7fw9R/DTiEhl07BvP9cLkgx0OsJDxDNrN6ziDth2jTCewWm3xapADFyLsifw+OG6Kh4OV02kDIJDBXk0ekLl/ASlw7GrSZ/anj7O9ZIfO8rFRokCMFiSn/As0Kwlu5ZoZqX9/0+PLAVOpKavtirNBCfAt6xfZkHEFCBBtR3oIwzdY78GOy6VswYXaL8pSm1lYHqWQJ7/Kp3istVHfLG54J6ekePL0N9AMKjjWEhHjN01x8d+VMKk2Caz0etplYQq3vguWNWPzsgQIQ==
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=WhAwpyF4eVpKJr+13Ng33DywkWY82AX1hItQ16FOarU=;
 b=VJItD7StMvJ2SybXtMAAaWC7UsqjkxwLGQbXtXycbizzCPzmOiTMFlQMp19hrR2uzzotmtVmx7dsU140boukvpPNwSvW5LQVuUt5ecfjq3SY9WKjKIhYLe3oacUNDwtv/2iN1w2+Ki464AkCXGaAFbkZwHmvySFDwV4cYqF9Vxg=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <261af40e-db79-477a-b67d-1af7428782d4@amd.com>
Date: Tue, 24 Feb 2026 15:18:07 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/2] xen/arm: Simplify type handling for SMCCC
 declarations
To: Andrew Cooper <andrew.cooper3@citrix.com>, Xen-devel
	<xen-devel@lists.xenproject.org>
CC: Stefano Stabellini <sstabellini@kernel.org>, Julien Grall
	<julien@xen.org>, Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>, Bertrand
 Marquis <bertrand.marquis@arm.com>
References: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
 <20260224124558.3675278-3-andrew.cooper3@citrix.com>
From: "Orzel, Michal" <michal.orzel@amd.com>
Content-Language: en-US
In-Reply-To: <20260224124558.3675278-3-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: MWH0EPF000C618F:EE_|CH1PPFDA34A4201:EE_
X-MS-Office365-Filtering-Correlation-Id: 8d5279c4-972c-430e-d202-08de73af89a2
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?d3lhMlZxWURXcDZlTWtvTU5CaXJjT252cE1KbWtPUThvVmpIQko5S0JGZk5k?=
 =?utf-8?B?ekRjem92cmpTOW1PMVRsbG5ZUEpCSXlzcWtBOHRyMHdRM2c4VXVwUVJaWGt3?=
 =?utf-8?B?aXVIcEdjK052M3haQVJVWTRaTmJISitlYUhzMHc0RFIxUUFIYWhKNWcvbEZS?=
 =?utf-8?B?QkxFeWc1bloxRHkyWmhYeDVPM3M3SGd1elAycGJQdjZNcFRqb1VwYnR1elFv?=
 =?utf-8?B?L09ocUJzSUtXMWFZa29IMUw2MklhVmFFV0czQ3dQemhjQnpjVVBCOGN2RDZV?=
 =?utf-8?B?emZ6OTFObTFFR1BQaVRlNHdwamk3a3pNNEZGcStCejRnV1doN1M5WHBqMVVK?=
 =?utf-8?B?elMxc2JHNGM0VDJEd3UzL0dwaWhLSHUyVDhsazhlQVR3NkVWS0NiRG16VzQr?=
 =?utf-8?B?QXNxN09XT04zcVBxcTFiQjF4R1hBcDRzRnorY3hncTFXTG14aU9MeUpXOHIz?=
 =?utf-8?B?WWpxQVFheTUvaXB3ZDlpMWpjNjd3Y1FwbE1Mb285TjNsVklDNHBwc2wrdE15?=
 =?utf-8?B?ODdvd1ZMeVFreW43QWhSMTd2WURTYklWZEpXWW1TUTB6RmhjVjZoeHJLRHZQ?=
 =?utf-8?B?Y0ZjaVAzUTNXd3k0UnRTRzdFVTZRaVZLb09Nd0hIdjd2aW1sZzZjZEhyQVNn?=
 =?utf-8?B?T2Q0WXpqcFI5bDVyNkhIb0hyWS9lRDY3WUxoMkRpRjRCRUJ4TFRyRG5BR1BU?=
 =?utf-8?B?NzY1QjZ6di9VRU50ZmVjVjZKOFc2OWt4dHlIb05YRHhpVkZDUGRhZjV1a3RB?=
 =?utf-8?B?Rm90WnJCS3FmOXZWRXdPOWFsZjhpQ290WXFpVHkwMlBISGwya0hNV1RqT0xo?=
 =?utf-8?B?NFVKN0p0TlV3aVBIMmRJbDVrT1g4U0NOVjJhZGE3WExpcVRHYlVBbWlGb0Vj?=
 =?utf-8?B?bDNMdmNjODVRV05KdkZla002R2xHZDd4L29VdWlyODdwMjVMMDRFcXViMFV1?=
 =?utf-8?B?S2pBS2NJV0Fva2RCNGpVaXR2NDFWUWdURUJpdlBHd2ZCYXBZbmZWdkhoU1hs?=
 =?utf-8?B?eGRpZUdLcitBV1lkZUdvQ0krajdUWStOZXZJOXNpck5TcGtjcFdBYTNudVJz?=
 =?utf-8?B?VDY2OTJkdGN1UXFtcFcvQllqeG10WGJyTWVXazVUV3NocVphNnozc3VmdE5j?=
 =?utf-8?B?azltZGltU2FvUWtPYnp3MWt6aEVkY2hQeTB1UGtwMk9FeFRsVHNjcGsrMk5l?=
 =?utf-8?B?ais5YktIQjFwaDNUV090VTdvMWltblo3VlNTRWkyWUFWMWliZnJCWU91Vng5?=
 =?utf-8?B?N0ZSREF6RHdMQmJDeHNEKzlsamYycnE5SnE3anNuN2hrR05EenBkamVONWdM?=
 =?utf-8?B?Uk0zdUx1cWpmd0hPSHFId3d5d24wVysyRHRzR0I4M1ZZd29aN0hNRWk1NE52?=
 =?utf-8?B?enA5NCtDdDJpMGh5R20xM3pHa0FGN3RJdmhhTzRHVTBIOVV4QW5xa3BoSWZM?=
 =?utf-8?B?NGtyVjlyRFZCSGpLVGl1OGZoVWtlTjVWSnFSK3JYQ3hzRHhscFpTL1h4NWU3?=
 =?utf-8?B?WlAzUG11eDVsSk9UeVBCSHk3UGI5djlBVU42anZkemQ5WmZYZlBwbEpib2lN?=
 =?utf-8?B?VlA2eDBZaUNQOWoyanppTk91RExqaUtBdFp3aXN6US9VR0t4elZHMXA2SXZN?=
 =?utf-8?B?TWZZYTQ4NGFhMjZuNkpZRUo1dExvMUZMc3ZGdUJDZ2RrM0FIVVpTWHI4MTZE?=
 =?utf-8?B?T0xrdXVXY1pDWVkzakRBTk1pd0E4bllBZ0E5dFJMTWVvZ25pZTBlYStmVk40?=
 =?utf-8?B?Z0ovUkVaY0Nnb1lVRUpmTHdaU093YWJCVDh1NFRGSzR6K1dSN0x3YVNBQjVy?=
 =?utf-8?B?R1NBRXF4MEJaMFJ5NVRLL01wSTlEaFJIVlhKOWZFck04WlJReGgrVks2Z0E5?=
 =?utf-8?B?TFBta2VyL09XYmtSS0hMTWZINmZJTlVNTU1pZVltNFZQc2JMNVFBcVhvODIx?=
 =?utf-8?B?UTJHekhXTW5GcWZmTnhFUXBRWVZ5S2JkTWpJbHhVaVoydnZQK3UySXY0dThh?=
 =?utf-8?B?dFJJM0pXclJQWVZrd09XV0JDcm84K1lXYnVNcEFCNHUzcWlPNVdVODIrWUpu?=
 =?utf-8?B?aE5jV00yMFdsYUpNNE5yMitqblA3QmRTK3VZZ09LYzhYQml4Q2VUM1BwNjJQ?=
 =?utf-8?B?MkNCUGhGdjcwSmRLc04yVlJpQU9jcU52UTZCbUt4ZDU4djJncG04Ri9HSjE4?=
 =?utf-8?B?ZGtSV2FKUlBXM2NHYndJeVo1bmFhVnYvem9nM0RleVZrOWY2dkdGeitPR0dU?=
 =?utf-8?B?b0NqYmVLYkd1cHpaMXZTd2tudVBBPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(1800799024)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1wyV7ymCilWxx12eDDLDZfA8Sh1PLqvKKH3SNUoBbi2KjHGHvF9x5g6S4o30ZT3BWDGOlPUyeI/eMM4vaGKs8LJMJlUuE7wt3kRNWstEPVrcxE0rWaenTdvm8y8F1YjpuqlkiEcXkQJqWcKQLRVSsL19I+JExHc/WdthR9HkhnKcMTvZqByBNCVv1Hei3+hgqenMWvu1w0ZcEmpUHl7fkRS7YqZGOssqIyPScaDrfNEaYbB6gwJr+LfdG/1YCi/hWBVRnuO1Y8ixCPXq6ExsKx6CAUF5fjDe5U5eGVFdTvnbvIg0WLvlMZjdBsXluZF4ZZo1g9F1SAOwHQC1kRqgGOJ2vFhVvhJXUW0dDFFFTt3U59YjR+nYqN5HXrYd5s6R6bIaZwtY6a2rtFvB2yZQTpfl3orUUIvMTet5/NFvG68sArIUqoU3/ngYuTGN2WqQ
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 14:18:09.7990
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 8d5279c4-972c-430e-d202-08de73af89a2
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	MWH0EPF000C618F.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PPFDA34A4201



On 24/02/2026 13:45, Andrew Cooper wrote:
> There's no use creating a typed copy of a macro argument, simply to use it to
> create a second typed copy.  Remove the indirection, halving the number of
> local variables created in scope.
> 
> 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>
> 
> This also makes them clearly elliglbe for converstion to auto, where they
> weren't before (typeof expression not being that of the RHS).
> ---
>  xen/arch/arm/include/asm/smccc.h | 21 +++++++--------------
>  1 file changed, 7 insertions(+), 14 deletions(-)
> 
> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
> index 347c4526d12a..7e90b0b56550 100644
> --- a/xen/arch/arm/include/asm/smccc.h
> +++ b/xen/arch/arm/include/asm/smccc.h
> @@ -113,39 +113,32 @@ struct arm_smccc_res {
>      register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0)
>  
>  #define __declare_arg_1(a0, a1, res)                        \
> -    typeof(a1) __a1 = (a1);                                 \
>      __declare_arg_0(a0, res);                               \
> -    register typeof(a1)     arg1 ASM_REG(1) = __a1
> +    register typeof(a1)     arg1 ASM_REG(1) = a1
>  
>  #define __declare_arg_2(a0, a1, a2, res)                    \
> -    typeof(a1) __a1 = (a1);                                 \
>      __declare_arg_1(a0, a1, res);                           \
> -    register typeof(a2)     arg2 ASM_REG(2) = __a2
> +    register typeof(a2)     arg2 ASM_REG(2) = a2
Here you fix the issue introduced in patch 1/2 :) You drop typeof(a1) and
replace it with correct typeof(a2).

Provided this patch is rebased on fixed 1/2:
Reviewed-by: Michal Orzel <michal.orzel@amd.com>

~Michal



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 14:23:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 14:23:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240114.1541605 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vutJj-0004hj-9k; Tue, 24 Feb 2026 14:23:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240114.1541605; Tue, 24 Feb 2026 14:23: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 1vutJj-0004hc-6l; Tue, 24 Feb 2026 14:23:15 +0000
Received: by outflank-mailman (input) for mailman id 1240114;
 Tue, 24 Feb 2026 14:23: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=dCRR=A4=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vutJi-0004hW-Aq
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 14:23:14 +0000
Received: from SN4PR0501CU005.outbound.protection.outlook.com
 (mail-southcentralusazlp170110003.outbound.protection.outlook.com
 [2a01:111:f403:c10d::3])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a45ab28-118c-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 15:23:13 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by CO1PR03MB5937.namprd03.prod.outlook.com (2603:10b6:303:6e::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 14:23:07 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 14:23: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: 5a45ab28-118c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=iEcdsakT4Bss9tCvWLeJXwZkLdt2BaX70SvGuK5dHkgvPr83+ZHXpkbhChS1PRUyjccN3QFAPav2yheNcmOtf2zQ9vZ3VGIuOn2EcFOjhjfFyCd5a317OTk3ttK2HrwY6lgPL0bh1GMgFv2WS1QgSzGh5TZT55KRMv628OKmeSR56vdy8xI0z1qQImYW3ePqmWsNY5i8cNG3Wk/bcmLQ89JAyVSvTu6wKId2Q2tVFF1ZJi+KGqzdmRDzaYaR2FWwsTkVa9V5nyRSsfMn+fNN9ODWiMSRbPPjh6tbnSIVnWDP8W8VzVb9tV9sxfxFPzVAMB2kCB4bXB/Jbbdy6ipiDQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=s4ytCpZ3Tpi9Ml3xdMAtu7ETcazy2dztxT4cPcH6rdU=;
 b=mPdxM2fPFj5JxlD3FRQqFDL9Qnx8o7EcbntoC+t5C6xN6zwFB7Yu3uQpCMeNQTJ7MkDxfKGOwsyhsfcdktTbdPd8oHxc9zftqU9vteEfPon9X4jQMHd34PdI+0RiM8E1xKvDO9ijIbMlIc+MUxT9+Iepub3HHoeSlDRU/R3vdPRPvd8OQ0L7sMQRlcTODMRBcak3fce7AzH0E0ilFBL+pKczQ7noUFXJQRRXyQs6sLb799GvaTGu/+sir37UtaQgtFW7oN+yKyGYry0hzrMidurZ3iIcKi6ExH6tWf57RMPgzktCGLgASWACDC407Ueu8nBmQPz7fNYLaU8Q+LEMAg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=s4ytCpZ3Tpi9Ml3xdMAtu7ETcazy2dztxT4cPcH6rdU=;
 b=SlLZC1b27tAufBsd74rkTZgSPW2tmqfplyd7PJtPFnMvTDhWjEELdtODThVBJ/30pfabvuj9Vd1sQ//2EDMZk7LGyj/l6Xq4m2zeoVKAiNITq+lwCmVDd/YDrmm+r/uQcx5UbAnKqgsaqVsEMu7N/eqer/MsewHy4YOjaqe3rYc=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <e28c13af-e639-474a-b63b-411baf063e48@citrix.com>
Date: Tue, 24 Feb 2026 14:23:04 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH 1/2] xen/arm: Simplify SMCCC handling by reusing
 __declare_arg_$()
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
 <20260224124558.3675278-2-andrew.cooper3@citrix.com>
 <631f2de3-f551-412c-a465-34cd5d8db8a3@amd.com>
 <46b25d29-d7b9-4b5f-af54-074ecce5c34c@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <46b25d29-d7b9-4b5f-af54-074ecce5c34c@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P265CA0230.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:315::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|CO1PR03MB5937:EE_
X-MS-Office365-Filtering-Correlation-Id: 5072e1e9-296b-48ef-7883-08de73b03b30
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?MkIyQk1uaXJLbDJXMTlqS0pNcWd5dVd2QURkeVVML1l5a0QycE5iWkF4SE42?=
 =?utf-8?B?RTJIQWxnS0pOcWlCSTJKVGlXZXk3M0ZQcXNOeXFYSUJnYkdLQUxlVUYzbG1U?=
 =?utf-8?B?UWN5M3FOaUpGdXI1RDAvZXhmdHo2L0NWb3RndjlVcVd5UElUN2E3Z0MwVjlG?=
 =?utf-8?B?MTRveHhEc29KRjRoaUVhc1pGUzQ3YVNabnB6aFl5SlU0MXVxcytHREZYT0tF?=
 =?utf-8?B?bWhvQlJYUk41cDJ1ZDlvelVRZ0tWOFFiTzB6R2RmSUEvK0hwcDRXbExnUk9X?=
 =?utf-8?B?ZmhGM0NGUmw1eE1qRUJpaTRJTDlWVXZYOC9Wd2R3TzBCNkRMMGE2VDhLeDR5?=
 =?utf-8?B?MUR6TVRodllMM2xmblZaZnlvL3QxVjhGTWdsUjI0VnN1c2hCazB3VnFjck5y?=
 =?utf-8?B?YjRoMHJQRk5Ic3BMVSt5aStTZzcyYTN6SWU3cHg2M3d1dXBFK2pSUXA1VXZV?=
 =?utf-8?B?OEhFbFlFaVJGRVR1L2tsU0pmUktXTGdneWRKVUwySXViN3FyZ3NCZEIrNzNF?=
 =?utf-8?B?WnBQV2dINmo5YmVPN2JzekdFTzQveGZZYTdRYzJpTkFXa3VJTXd6Zm9hdmJD?=
 =?utf-8?B?TUVvSzJBTDF0SjdRMFdTeGdoTjg1bzV0OFBxRlFYcWdTM1VrSk10YzJxY2Jy?=
 =?utf-8?B?eWRYNWlyMkVjU3JHSnRiUWVHWHFBeUF1VE9mNTNLVy9aYWRJSzBpUXhLSHNR?=
 =?utf-8?B?WklWQVdJd2lKa1lXc21QaDN4NDNVNklaeGpyK01qbzMrWkVXRVpicDY3MWlk?=
 =?utf-8?B?OURHUHhLWUg1bGgvNmw4dTA5QnFETkJsMDNmQ3NHYXFPOXdkdlREd1EyVzNV?=
 =?utf-8?B?TkxSdjVLZUluYUpBQTRjVGVYVE1DblhCUm1qWUVmTHhQUXhWTlY4QVRIcnZy?=
 =?utf-8?B?VW9LSG1UL2NJcUR6RHJSZzBYOTlSZzA3ZHJVVVZWZk1Ld3YvM2F3d3lOSnh6?=
 =?utf-8?B?VHBZc282NG1ZZ0FQaW9oZmN0WVBoNm03WW5KbmtRbFFZMW45TCs5ekNQK21n?=
 =?utf-8?B?YUpDZHJjRGpIRHV2U1dHU3BwYmE4NXZwSHJWSUdpSzNKcklObUFFT0FUQmF4?=
 =?utf-8?B?dFpuSHRqb0VHNUFoQ2c4R0l5ak95RDBmcUtrSno2MXVxOThMM0FJWWZyVmlP?=
 =?utf-8?B?WFBsRzBEbHQ1ZlVyNys2Rm5ZZjU3ZURUdjZQcE5RSTU2OEdBbEZjdzZ0MjND?=
 =?utf-8?B?K1dtbEljc1hFUUw5dVJOMVUzeEFtNVRVN0xBZHVaT0pOc0I2ZW1UK1RuWVhU?=
 =?utf-8?B?MzVSLzcrZ0ZDSDlDSDVxZlp3RDl2WFBnUmpSM2JkRFcyRXlGUUd3Nk1pblpz?=
 =?utf-8?B?aVg5ekhjbG9LZW9JTmR6SmFGS3ZPRDNyNUF0bUZxQkg4dnpqUHptYkkvb1R1?=
 =?utf-8?B?MzdJeW1HMnlVcHVUaWY3Z0xrcUx1Z3RXYTdQSEFCQm1XdDg0UGZpNHdHdXNk?=
 =?utf-8?B?eUswVHFLZStBYmNVTWZFTWVuNGErNlB2M2o4ZU16ck4yYnBOWVQvZG4yRWls?=
 =?utf-8?B?c1RuTHcrcTIzTjAvSnRPN0ZTallxT1EyZUJidnpjWElJSEZpV1ZIUnFFY2pK?=
 =?utf-8?B?ZVd3VFN3dHg4QkJsU0dPTVgrVENMMUZ6WnhVdFZHTGg4MlRDWHRsQ2NocjBu?=
 =?utf-8?B?cFhBRWU5ODRMV0tTbFB6R09Sa2dMOVd0OFFndE0yZ0lhdFk4WnprRkdobUQ4?=
 =?utf-8?B?Uy9JSm83RkdWcG8za0NpOTBDNWZlWERiOGMyNUR0TGFyeUlSYXBDVTNOMytl?=
 =?utf-8?B?ZVVPRDg5bk15Y0xGeWRKeU9HRGZ5SzYvNG1DUm9ESjJuaTd0aEVCRzBUKzVJ?=
 =?utf-8?B?WnErb1dwV2V4S1NrTFhTb1l5Ty9rQ0xUMkxaVkowSXdyYnpUQktaaGtaYmd1?=
 =?utf-8?B?Nmh0VWpRejF5Qk93amEwR1IrYTkrMUJYTnp4azR6QndQOEJYL21lTzc0Q25n?=
 =?utf-8?B?TU54TjUrY3FDSG1MNTdKalRqQzlXSmFjY3Q2SGJvOHJTMysrZHN0WXpSbG5O?=
 =?utf-8?B?bVd0ZnhqUW1FcE8xOENsT09nNU9GZXV2bXZFUU5ZU2N5NEY5UlpWcTl5bTZO?=
 =?utf-8?B?dmZnREppeHZ5cmNXUmdZdXcyZWprd2NmWUpjcFBXVjNUZ0NsdTdTQnRYdXJl?=
 =?utf-8?Q?EKPs=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?QmhTUHZ3MTY3OU5UQkkrbjFwd1FvTFJhazI2bnJzcjBrQ2YwZU9tN3I3Zkhr?=
 =?utf-8?B?aTd3SHdpTktWS0lYRlRlditPSXdEdHRsMzI0YjJWOVVQSTZpUWg5Y3BZancy?=
 =?utf-8?B?RkpNYzZ0Y1dTQ1laVTJoa3plclZDMFBWb1JJN29ZTEhMS3k1NkNkN0VHR2Ny?=
 =?utf-8?B?bE5HbGQyR0hmMmpKc0VxRFg3TTAyem9xZ3QwRkorcUt4RXc0MmxIUmt4ZkRG?=
 =?utf-8?B?UU5vL25jaGZxdDMxZjNrTXN0UGU0d2FCOEJnYWhWaTBHczZSTjJkNEIzSzQ4?=
 =?utf-8?B?T09zcURLRTJLMXpTSXpiNTgycWdOZkU0U2swTFhhR3FzSmJTb290VWNuNlJ2?=
 =?utf-8?B?a0ExeEFZd1RNUmhVckVkVXV3WUcxc2lSVEZPRHFRdzBHYnpPc3pBakk5N3VC?=
 =?utf-8?B?NVVUcjErcENuUjR6YzMxeWYxZ3Jtc2NBZ3B6UitQRnR6UjhKLzRlRk5salor?=
 =?utf-8?B?eVNYSEU1OGFYMTdqSmxNbklXSjhZbWYwOEpGemY1S0FlMjh0OEloYTVNR1RB?=
 =?utf-8?B?SEFud3NKR29oRU5mV2tGUCtNQVdEdnhtSSthUW96aGpZNEdSbjRxMHlWUWFB?=
 =?utf-8?B?NFBOS3ZoT0U4a0lweHQ0TzAxMklnYkFhOG5NanZsRE9ZNW1vWStZNVZTRW51?=
 =?utf-8?B?UjVyOXI4dTRIVDlodTk0S3RXMVdoM294VGZmVXFlK3BVZjhvL20xZnFqeEJG?=
 =?utf-8?B?QVBBbVBMaGhkL3VhNGphU0E2S1UrZlFJVDJFZkZRUzFKc1d3V3pXL29PTFZM?=
 =?utf-8?B?UDBnRzZaRThFNjZnTzZVWEI1QkFad1BvajMreDdkMTBsS2hHZlpPdFZjZGVD?=
 =?utf-8?B?MlorcklwWng2RkxNUTRlYWFpVWxaQVpyZ2VnNlB6NGFNTEp0Qy9zRURMQWZW?=
 =?utf-8?B?cjlveDgrSWhsb2xYYzQ5b0VxWnh1aUVCVmQ5Q3pEMllvRmJQODhtRm9BcThs?=
 =?utf-8?B?Ny9Ma0VlYmZta2srWVAwcFc1UUd3WC9GSGpwdXBUNnEyWXZGQ2orMFlTRWQ5?=
 =?utf-8?B?UTRtY216UDJuWEViZEp5T25MV2Z6eUdyVElBOUtNaUlrVlZrVmJOSjF1bFVC?=
 =?utf-8?B?bW5NTzBLa2RVRkhTQ2RveFh6UTh1aFFINXEzMFE4L29KU1RsWjhqZng3eXgx?=
 =?utf-8?B?VEN2VDl5N2p4ZDFZQnkxeVdhZ3lHOGtrZU9uQkM4Zzk4cDRERStBNmJWK3gy?=
 =?utf-8?B?Y2dyVWljTmNqWkFQUlhGREJXN0xFSytpQU01VmxmbGNPODV5MEJ1UzE3alA3?=
 =?utf-8?B?SzlhaDlCZU5IeFpQSGZpWDMvaENUV2lyYktOZzltM0Y1SFRFajAxRjdvRjZ0?=
 =?utf-8?B?eDlLa1ByKzNFZU1UUTBXV0lmZDhIMno0Z0o3c3RjZkN0RWxKZ1RHVi9JeGRQ?=
 =?utf-8?B?cXpVQXFIWW4xVE9FSzFXWGs4WERNb3ZsZnFwQmZIU1pSYmFGU2p1L3NZTmh5?=
 =?utf-8?B?Mk0yUlpRZGE1WFhnVmQ0Zm9OdU8rM0NlalBtZmhBaGdqTEhRYUEyZGxwaUJn?=
 =?utf-8?B?NmxsLzJuR3hFNzFsTlNDd1lwOW1Zajdud2FveHd1VDg5RGU0VUp6SXprNWNY?=
 =?utf-8?B?VW5pZ084YUdNWEorSWEyOUQ4SXZTQjdzbVBTUUVlbDVhd0RpYVVYemlFTGJG?=
 =?utf-8?B?bGYzZWxVcUkxZzhqNlozMEI3MGwrWno2dFdobGVxWE9qdGZMaVBaa0RVODhH?=
 =?utf-8?B?Y2Q5L3FPTXhsblVJMUcxNU5qNDk2UjNOS3k0OHRPdW1ORi94TUJqeitCbk1z?=
 =?utf-8?B?d0kxVGFKMXM5akN2TWZsaTNUS0ZLM0x2aG9rNUp6bjVQaWwyNXk0WFZOWjlz?=
 =?utf-8?B?cGtpMTYxZS9zbm92YUxGV0tFYjhXNkJpd3JtT0V1YmNwZ1NKK2RwSGJGNnMy?=
 =?utf-8?B?R3JJc3JPV2ZxNGtMcmlCaU1KYnNYY1dTdzJRTjdOMGw5OVZVT1Y2N3diRlMx?=
 =?utf-8?B?Y1BzUWJiQS85SUwydVo0WEZWeHdCalhyUkhqMVQ1ektlU1B3b1JJRzhsTkZV?=
 =?utf-8?B?MVgyQjR5a0F4MHVjTDdTYjhSbjV1NHozVlpLU3JEdEgxN0pIZ0RFci9DK1hh?=
 =?utf-8?B?L1hwd0dMckpUb1o5Vi9oZk1hUEdZc0oyMkJLeC9CQ2RBdWhBVjUzY2VLa2dj?=
 =?utf-8?B?VE9QMnkxZVd0UlZBejdLZFNaZmRRZWFxc0RyQnVZV1llQXdlbmJrZ1FScW1E?=
 =?utf-8?B?YldqSVh1VDlWUGFNL2NDU3dIcDZvaHQvV2lZVkpqS0xaMU5Xa1IvbDlCbHZi?=
 =?utf-8?B?bEFkMWc2NGZsQVl2Sjd5OTRtZmZSRm9GWWxyZHJ4QXdtSUVVVEFuQUtNUUE1?=
 =?utf-8?B?ZXlTTUl6Mld4QnFhM1UramMzYloyQ1JESXpTc2RPN0NCVk5xME9pZ2dBRG85?=
 =?utf-8?Q?PuPqogKEDXqBtV3o=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5072e1e9-296b-48ef-7883-08de73b03b30
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 14:23:07.8477
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: vpg2nzA930rJrV57iLzY3Jxp/SUlQZwKbJuJr9d82gaWotQub371q8dZZlcd5ehchI5VZCx5Y5MLW9Xc6O4OrD1+CjuXsJRHnY3vE74wly8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR03MB5937

On 24/02/2026 2:17 pm, Andrew Cooper wrote:
> On 24/02/2026 2:14 pm, Orzel, Michal wrote:
>> On 24/02/2026 13:45, Andrew Cooper wrote:
>>> Now that the type handling is entirely uniform, it's easier to see that
>>> __declare_arg_3() can use __declare_arg_2() and so on, just like the larger
>>> __declare_arg_$()'s already do.
>>>
>>> No functional change.
>> This patch won't build.
>>
>>> 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>
>>> ---
>>>  xen/arch/arm/include/asm/smccc.h | 15 +++------------
>>>  1 file changed, 3 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
>>> index 5b30dd57b69d..347c4526d12a 100644
>>> --- a/xen/arch/arm/include/asm/smccc.h
>>> +++ b/xen/arch/arm/include/asm/smccc.h
>>> @@ -114,26 +114,17 @@ struct arm_smccc_res {
>>>  
>>>  #define __declare_arg_1(a0, a1, res)                        \
>>>      typeof(a1) __a1 = (a1);                                 \
>>> -    struct arm_smccc_res    *___res = (res);                \
>>> -    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
>>> +    __declare_arg_0(a0, res);                               \
>>>      register typeof(a1)     arg1 ASM_REG(1) = __a1
>>>  
>>>  #define __declare_arg_2(a0, a1, a2, res)                    \
>>>      typeof(a1) __a1 = (a1);                                 \
>> You should remove this line and ...
>>
>>> -    typeof(a2) __a2 = (a2);                                 \
>> keep this line.
>>
>>> -    struct arm_smccc_res    *___res = (res);                \
>>> -    register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0);\
>>> -    register typeof(a1)     arg1 ASM_REG(1) = __a1;         \
>>> +    __declare_arg_1(a0, a1, res);                           \
>>>      register typeof(a2)     arg2 ASM_REG(2) = __a2
>>>  
>>>  #define __declare_arg_3(a0, a1, a2, a3, res)                \
>>>      typeof(a1) __a1 = (a1);                                 \
>>> -    typeof(a2) __a2 = (a2);                                 \
>> Same here.
> Hmm - it built for me.  I'd better figure out why I missed it first.

Ah - a last minute refactor, and I didn't build test on this commit
boundary.

Fixed.  Thanks.

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 14:26:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 14:26:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240126.1541615 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vutMt-0005Fu-MZ; Tue, 24 Feb 2026 14:26:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240126.1541615; Tue, 24 Feb 2026 14: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 1vutMt-0005Fn-Jx; Tue, 24 Feb 2026 14:26:31 +0000
Received: by outflank-mailman (input) for mailman id 1240126;
 Tue, 24 Feb 2026 14:26: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=Lz8P=A4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vutMs-0005Fg-72
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 14:26:30 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ce861240-118c-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 15:26:29 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by SA1PR03MB6580.namprd03.prod.outlook.com (2603:10b6:806:1cb::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 14:26:24 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 14:26:24 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ce861240-118c-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=B1keaC/Li05eccQ9IIX3eRGKIBgaY/uUn/TEoi/m3KP5GdT8mStTCHXvXOPgubQFboTQq18WmYmM65qRa8/shCnufuNoOpsJCnc02IqTsW0BbAp5e0f854VB16Hb1DSFCHknJXX+UCLl4IBmTPLopAumjJn2cGeMLlJm/tf4zIV6vs2s6ZDfD48ETg1loz+PSG1eX0LkHcyGPIUNQuqixuHECXmsgHYIrOyyWWiHycRiCUrxjsLMq/326RTF6xB7GqBRGo+onLO+KHRfBXj+nqD6m0W6rHlViJKo7LtIB2LvQJM8xvCxgkmiyf5sBixSAO5ZW7hJX66KW1HjGMcwbw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=19Bd8LEvftnJthG+o8hKaEYBpVLnInB6hlRHUhfQQxQ=;
 b=mrRZg3AIn2mOS2CmmWY36EAnsHcbEsTvO7UhUl2sRlTL9hFTJ1zCxdLD/wE9cwCkes8AcUG0PE4dd9495+bM4lfm5nLLS9E/YF7CEfD3cLyjsHLHRDSxJa0qt9HV6Dm5Qry0Uk0OmKE6nNcC/O3XSh8tPbtJi9u7TREhHypGB4X1hshJ8mhi3jkVG50X5kbfhuKgRwEaSNGse9yeskw63xfiwI8UNbc7TmxZi8YB9Nwf5sPOTpAdR/TymQ0Gf9HVjDYvdaJG3Yty+UjgBDaSRLnnjvdWHFQkeT4vuB3HRREvfXRx79J8/dGuI94kHN0/xvv5NEKKHILrOP0xC3NS3Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=19Bd8LEvftnJthG+o8hKaEYBpVLnInB6hlRHUhfQQxQ=;
 b=YGG5G6MQbH23WLx8kPZRBXu60dIeFJ+Af6rn1pdWsVVXgDI+Yq/iE+pn15Lv5ohNGA9nQ4f9+xSzxKHFOwSuOk/fUrrtk0tbY+yaETC7lgaPw/DukgA/YIvPqGf/ffNuszmQiU9EU26TPmrWsLw+/8gC3U7Y3Zw5TMWE7YpOCN8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 24 Feb 2026 15:26:21 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Subject: Re: [RFC PATCH] x86/xen: Consider Xen PVH support in CONFIG_XEN_PVHVM
Message-ID: <aZ21DQLRzeyStl-0@macbook.local>
References: <7b17bfbb4b25a59514707f91546ce8c3a24369e0.1771929804.git.teddy.astie@vates.tech>
 <aZ2IB9gBo_DrZLSf@macbook.local>
 <962fa327-2e9f-41e5-8382-71ace6fb0a10@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <962fa327-2e9f-41e5-8382-71ace6fb0a10@vates.tech>
X-ClientProxiedBy: MR1P264CA0006.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:2e::11) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|SA1PR03MB6580:EE_
X-MS-Office365-Filtering-Correlation-Id: 51f689d0-5542-42b0-52bf-08de73b0b081
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?bm1uOUdweGRJVU16aXZKRWlZdHBWWkFiaDR5cnk5Y1BWUUJFbnQ1MjNTeWZU?=
 =?utf-8?B?WGRnWWQ5NmlWRS9uRVljS1pnWmozbW1BVjZ6cTVpWGtXd1d6ZVhEdlYwT1JN?=
 =?utf-8?B?dVVmQm8wTm54c3hocUNDb3k3bTdwZ3VnWjJFTjBodHA5dVc5b0pDWjBDTEs3?=
 =?utf-8?B?L1NxMjh1bzFRV1lhc2FVYTRUZ2pFMGhORE1JTmVUWmxweE9qNWFSck9MQ3Z6?=
 =?utf-8?B?aTIxMVF1aUE1QnY2NUlEWGdVTUgwWnpMR1NhcDFjblBFblkyaElWYW45L0FX?=
 =?utf-8?B?VnNwUEk3Ni9keGRCYm42VGgydmtaMlFUQ0M2aDI1OTFrVGMwQTR5N1k0Ukdh?=
 =?utf-8?B?bm94RTlMTWcvcmhUVi9OVjNwMldZMU5uWDg2UUJ4Q215WnJsOHRubk5ncWMv?=
 =?utf-8?B?TWJOZ2NFeDRLZjZrSjlpYzB0RmhQS092WEVBZVJNdjhxUWVCZHZIc3E2QkM1?=
 =?utf-8?B?QjZMMGZMZUVsRC9uMitvUlNXSVBoK1dkVFFybzB4ZktmOTlhdWhoSG9tOE1C?=
 =?utf-8?B?QzZuK1AzN2xiY3Rwc2pvWW1tSzEzZWtSb0F0d1Nka0lqTkhRcTdxSEYyRW4v?=
 =?utf-8?B?aFhhRDQrZlF0dU53ekRuU2hmck5KaG1PRWE4ZTR1WXl2V3hzc29ySGNkTEVL?=
 =?utf-8?B?ZFNod2tNMzNGZ0JYSEpSQlB3Z3ZrMHNzVVV5RWNMWDJCZUVFNkt1a1EvWHYv?=
 =?utf-8?B?RjFrVlZvaUs3NWpTK0RqbHlsdU1aaEhPakFMRTllN0pWeVI5dWJpOWR1ZHZl?=
 =?utf-8?B?NncxcUp0N01vS2NrbkUyanJIU0plK084UU0wRjBrUGVyT3RSSHJ3aWxoSlJo?=
 =?utf-8?B?QVE0M1I4SDJJT0k2cTE2dlNYTjRCVkVMTVRPbCtEb2RhM0hDYlZmWkdvUmhW?=
 =?utf-8?B?OXQxK1p6OWpSam0xL2VkMHU0cEtvWjh5cTNkMUZYR0hScTdYWXVuSFdHL2JY?=
 =?utf-8?B?aTB5OFZLbm1SNnpuYlhjQmxWNEEyTEVndlZBOE1YYnB4Rm04T1M4SXlMVXBl?=
 =?utf-8?B?bkVjRDRueHhNU1k0TUloR0c1SkRDVEs1V0RZY09RUVhGOHFhazdRZGZwRE9m?=
 =?utf-8?B?Qk9LMklQanJWR1F4RlVDaHFDVUdoc24rY1I4TGRudjVFekJtL2grV0gxSlpR?=
 =?utf-8?B?eWhwenJmUFNPT2txeHhPMHk0eWpSMzZvU1BXcFErTmtuM1JTOHdZazAvTGN3?=
 =?utf-8?B?QTd0bDZFQnFTN1dERzZoRndxaTU5QTRhM3pvcTFUd3EyOU81TXEvaXdaTHpp?=
 =?utf-8?B?NXFkRlBta0lvdmFvNnlVM0tQOTBFMzB6cFVKRktDQUNIOFlKRHpTZkplUlBN?=
 =?utf-8?B?Y21Yd1psRmkveWhkMnRkcTZkU2F0U3NaejZLRW84dFBQTnZTVU0vTUFJb3ls?=
 =?utf-8?B?UzVWTHNHaW5vb2VWRVAwMzdvQmdFSnBiTjF0dzI4WkoyM1lGcUR6WGJRc0My?=
 =?utf-8?B?N2ZaR0xHZlBmRHNNKzVpTmJ3Y1FvN2I2akZsSTBINzdCVUFZSW5LbW1EVno3?=
 =?utf-8?B?WXl6U0Fqc1l2cFBhRlQ0L2Z6WFFKQk9YWTFVUWx5ajBsM1o4OE9vSkdsbXBW?=
 =?utf-8?B?QlV6RmxYb2wrZERqNDdheWF3bkRRNmZjYm1LTXZvNTFQaW1Rak1zMUgvZGoz?=
 =?utf-8?B?VWEzSElNYjlIV3B1QnN4VVQwUjllOWJUZ204dlpBaVRLOHM0NFRSdjV3QXRY?=
 =?utf-8?B?OVJ0ZTJnVDJMcjRBT2JyTHY0WlFJQVB1QjM4dDllYkdLaDJiQ0RHdDY4NzBs?=
 =?utf-8?B?K0NEdElGUk5VV0h3c0cySlAycm5HdFRkR2E0end5c1FtdkEzbFFTVnFSNnoz?=
 =?utf-8?B?Q1RLZDE1N3V5SFN6TXBEd1FlQTV3aE1nM28zYzQxUUdPSnJidmJDTDNuSWp0?=
 =?utf-8?B?QVliZkZLeGVrUjFneHBnU2ZZdlZaWDJJNm5CZHRNNmJiMWc5NGpSZDR0aXZw?=
 =?utf-8?B?ZFZqalphNWN1ZENHVkxyTjJtT3p5TmNCa3BQcGxZd3pxU1dtR01SZXpHMC9y?=
 =?utf-8?B?TFg5dEdua0R5TzBjOVRqYmxCMUpaRk1nZDN4L1VSazJ4Z1F0RnFSeU1kaUV5?=
 =?utf-8?B?Y2RTZWM1U0QzS0FnWGQzZ3U3aVRheWhVbXdpdkhjcmhQRTllYSs3VW1BQXhm?=
 =?utf-8?Q?C438=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?WkZJT3JyTElTdEl3OEZlNVpRZzlzY09LTTBadUFKOThzSzRpRjhSbDZJN203?=
 =?utf-8?B?VzJ0TTE5ek9uS3hBbGpQQjNvamxGbG9NZTROZzVPdjVIZmJMNnNjakxWZTdu?=
 =?utf-8?B?blhQeE5xcG5SbHhXbG1LeXppbnlTc2puMFdVam45KyttZUJFY1JNVTVBbDlS?=
 =?utf-8?B?emlPY2YvWkE0Tzg0b25jdVBlWGhHcDRWNThvTkZtVnBWSmxUM3dleVV5MDhm?=
 =?utf-8?B?NkViTlVRK01wR09NUHdBcldBeGJEY2Qxc3VBZk1pN1ptNTJLNVZwS2NpVjFY?=
 =?utf-8?B?ZUZHWnR0cVd1am1pZlZZV1RSN1p3YkpGckdsMkVqQ0NPR3BmeXhuMGRIRTlt?=
 =?utf-8?B?bVh3YjZCa3VzWHpybjdKNktGUnF1R0p0K3E3L0VrSStNdEpsbERxVkk4cmdx?=
 =?utf-8?B?S2Z4QjFLZHdCSk1qWHMvc2dzQUpZWVlNMllhSjFxMnppUFF3S2lCcmtoRkxD?=
 =?utf-8?B?ZWpydC9ZT3prN2dsMHltajlKWFIrNGNvYi9sVnorVW1BcDBwRU0ydE84WXVO?=
 =?utf-8?B?R0l1Rm41NDFpOVRaTkVldWZ5TDQ5SzhBQW5jS2hFb1JtSW0vK1BlUzlvSnho?=
 =?utf-8?B?MGNoVzduY0YvZ0JhTUdBb3JqdXI3Zk5PaHNBdXJUcjRSTGZpZjF3bDhyYjcy?=
 =?utf-8?B?YWc4U0NlWXpoQXM2STBMemhuQ1VQUUpiS3phOVFRUHBXbWtvaTBQdTJnanJa?=
 =?utf-8?B?N015SCtiM0YveU5vWDVhTFVXeFNqWmVCdVZFTXoxY1ZpVlk5R25uc2VLNWJT?=
 =?utf-8?B?T1BZS0JMZm9wTlVxSkNCNldXRHRoelI0NCtnNWJNM203THdFbFVZTGc2eEVN?=
 =?utf-8?B?VzMvZFlrbGZFTGdSRWhEaEU2UUhRZU1BTzVqVlpQeG5ySzBocFgvYnVDOHp6?=
 =?utf-8?B?WUVSUUd3YlppeHl4Y1l5aE8vMTZ5a0VRNjhTaDFta3hYZTNkc0xUVC8rQnFB?=
 =?utf-8?B?a29ZbGpxQnRNT1JPT1l4dEhuNGNDaWZyeDdqcnF3RUY5UWpiZ244MkF2MVkr?=
 =?utf-8?B?ZUtCZExIUlVqeTdpZUdIN0VxOUVtUWVRSGNucnNYcllWSTVwdTlVaE91YmpK?=
 =?utf-8?B?Z1RsZlVzMVJCbURDQnFxbU16NC9xcjZGTDFZUUlSbGxUdTRMNkJIUG5Zdno4?=
 =?utf-8?B?NTJ3Tjc4QlBQQ2g4dnpVYlA3TkZYWVh6QXljQXZGUHZ4dDNHK0lBczhVQjNo?=
 =?utf-8?B?THpObmtkemcyMlNBZTBoNFo2U1pwRE11c3hpUTlIMU5iUVBrREVBN29NS21F?=
 =?utf-8?B?RTROeGpTVDh5NWc1Q2drMEhaeEU0N3hPdTVDUUtKbm1zc3dXRlM3NWl3d1BT?=
 =?utf-8?B?eFRObm1zNG85NitwbCtibHczeGlPMUNLeklxZ2dETlZIMGZ1d3BKaXg1Lyt0?=
 =?utf-8?B?MlZkOExWREFaZkJkeFI2eUNtTGtiMU9lMGg0eFArVmIxL3pYdmJnYjkrN0xn?=
 =?utf-8?B?Tkp6Tkt1Zk9HamFVbmJvT2lFaGQrRjR2Y1FvSU1tUGhiTWUvblkvZWZUNTJs?=
 =?utf-8?B?VjFrVzJpUzN4cjBPN3oxZ3k1bFl6WjVjVlhZT1dUY29uU2RMY3dxSGNFalgz?=
 =?utf-8?B?MjhGdTI3bVUydWZXaGh2bkVRditZMjJsN2lnT1pVK1hyUW9zVHB5eG4ycHlC?=
 =?utf-8?B?TDErUnZ4aXVyeEdtOUVFSWxxWVg3c0VTV0VlZDlzbkJkQXlsZUErZFlQaExX?=
 =?utf-8?B?NVdnRWxLRmQvSStYRndNcmpkeE4wRGtZakwydnBIQXdETWJQdGhPeHJhTGJy?=
 =?utf-8?B?TVVtc1hSek9ocFlGd0RucFhGYVozWlBrNXczYlpMMnc1S2pVVkRIQzRuam9B?=
 =?utf-8?B?Y3haS0VhTjZZT1A1ZlVjcERGZC82WHdJMWYyNGo3eVV3d1QxTTJkcHU5OEFk?=
 =?utf-8?B?N0tIN1dKT0MwdkNKWmRMa3IrR016VU54a0RONXR3VkVmb3l6K0MyVTAwVVln?=
 =?utf-8?B?cXN6VktSVmNYT21GRGdUa1Y1WFFIUjF5U3RVaDN5RFE3bUlmZzdrRkdjOC9X?=
 =?utf-8?B?MWx4ZnRyQjJFY2V1TVRnV2k4SFVSeU90anFNTSt0eGxSSG1MM0RadUE0bTQw?=
 =?utf-8?B?dk0rUmtLRXZjTWh6c0crY3l0UndLT25HbkZsM2JMOVV0eENOYVlQNDA5M1Qz?=
 =?utf-8?B?MGpVZllBRnpHMThQUkZxVzl0NWd0Zkdlb0xwa2Vwa1J3a245bWhhbGhwZCtW?=
 =?utf-8?B?KzVYVkx2M2tJZGJBaXFLRm8zdU1Rbk5mQVBuK1M3SEFHNzdraDNPODFFa0tM?=
 =?utf-8?B?eEh3QnN5V1dBTC9MdWpRTGxvZ1NQUlV0UUsrNit4Q1FFYUNqSWkyYlkrUEFD?=
 =?utf-8?B?dWo1eVdqRkJPUWd6aGk3MEkzdGJiUCtZK1N1M3liVEs0d044bXRSZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 51f689d0-5542-42b0-52bf-08de73b0b081
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 14:26:24.8113
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: EoA8z67s1FnrcHJXQSj82kLwOSB+AmXrncbCKFjITQcZFTYz9OXRVXjLKkzgCf9Tzy9e/h7NSEgWikg4tQOxIg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR03MB6580

On Tue, Feb 24, 2026 at 12:34:31PM +0000, Teddy Astie wrote:
> Le 24/02/2026 à 12:16, Roger Pau Monné a écrit :
> > On Tue, Feb 24, 2026 at 10:51:35AM +0000, Teddy Astie wrote:
> >> It's currently possible to build Linux with CONFIG_PVH|CONFIG_XEN_PVHVM
> >> and no CONFIG_XEN_PVH. That leads to inconsistent kernels that fails with
> >> "Missing xen PVH initialization" when booting using PVH boot method or
> >> display various errors and fail to initialize Xen PV drivers when booting
> >> with PVH-GRUB.
> >>
> >>      platform_pci_unplug: Xen Platform PCI: unrecognised magic value
> >>      ...
> >>      # modprobe xen-blkfront
> >>      modprobe: ERROR: could not insert 'xen_blkfront': No such device
> >>      # modprobe xen-netfront
> >>      modprobe: ERROR: could not insert 'xen_netfront': No such device
> >>
> >> When built without CONFIG_XEN_PVH, PVH-specific logic is disabled, hence when
> >> booting with e.g PVH-OVMF, Linux assumes we are a HVM guest, even when we aren't
> >> actually one (in the "with HVM emulated devices" sense).
> >>
> >> As it is actually possible to boot Xen PVH without CONFIG_PVH; and that most
> >> Xen-related logic exist within CONFIG_XEN_PVHVM; consider PVH guests support
> >> within CONFIG_XEN_PVHVM instead of CONFIG_XEN_PVH.
> > 
> > So the current CONFIG_PVH selection done by CONFIG_XEN_PVH is moot?
> > 
> >> Keep CONFIG_XEN_PVH as a shortcut to enable PVH boot, ACPI support and PVHVM.
> >>
> >> Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
> >> ---
> >> Cc: Juergen Gross <jgross@suse.com>
> >> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> >> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> >>
> >> A tentative patch, I'm not sure of the way of dealing with the KConfig part,
> >> keeping CONFIG_XEN_PVH as a shortcut is interesting, but there may be other
> >> options.
> >>
> >> There are widespreadly used Linux distributions that have a similar configuration
> >> to this one, thus exhibit this issue i.e fail to boot.
> > 
> > Do you know the underlying cause of not enabling CONFIG_XEN_PVH?  Is
> > the default set to n on the defconfig?  Or are distros specifically
> > disabling this option on purpose?
> > 
> 
> I'm observing in these distros that
> 
>  > # CONFIG_XEN_PVH is not set
>  > CONFIG_XEN_PVHVM_GUEST=y
>  > CONFIG_XEN_PVHVM=y
> 
> Which makes CONFIG_XEN_PVH defaults to n.

We should possibly send a patch to those distros Kconfig to enable
CONFIG_XEN_PVH?  I think it's a bug on their side that Xen PVH is not
enabled.  Us trying to workaround this in our Linux Kconfig options
seem wrong.

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 14:45:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 14:45:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240135.1541626 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vutei-0008Rv-2v; Tue, 24 Feb 2026 14:44:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240135.1541626; Tue, 24 Feb 2026 14:44: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 1vutei-0008Ro-07; Tue, 24 Feb 2026 14:44:56 +0000
Received: by outflank-mailman (input) for mailman id 1240135;
 Tue, 24 Feb 2026 14:44: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=Lz8P=A4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vuteg-0008Ri-Qr
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 14:44:54 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 605015a8-118f-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 15:44:53 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by BN9PR03MB5979.namprd03.prod.outlook.com (2603:10b6:408:134::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 14:44:49 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 14: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: 605015a8-118f-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=W9CSydQaBE/rXCm4oGVIe6U8bvDbaoLnK2ekjiOjaGPXgPV1GqRFM7dODSVyKx8CiaF1zc8xRMlpdIVI1lYFs4s8MEyKvlbNrcuK0IG3IsOJyzTfnU+u4GvB1dtbu808mXeVpW195x6iRoHByQ7QHv91OHMpinUkeSunRR+MjAXb8iLpUphrQXW8rAoBk/41TQoUEQGt3j8mI98MB/EYGfiQ+NJNJMWpBLlpatyetyyytL8svltegs0XXf0behBJaDOAgJrIe/wCkN6/cvUB/rpwGcf9fsFQfXKWmSwTA5uDPu7Ad53O8Y/6SUxLl2ipkXZVgETCYbpUC+Q/aDAYFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=9pIGS2IRXaTAJkJ9VvfD3HD9PA96bQA6qa32OyvfSm4=;
 b=VIvisoEd0cNjA6Kkr0ptQp5VOz/j+rQIrT+pJfXGMUYTAtwq7OwcrEZ+uhqXpPunsb6I3ZbhNfryRgYfCvYLRw5dhl/Gzjstm6Yxt2+0ZtWWQK+vQOGuPHaVb7N6Nw/z2qAvK+EHmHByXcTORQNWeFyS3Kvu5eP1CKVSlhB2anmRn7EyuxcNjyPK75vg3Os8y3DKVHPHeWFqOCvP70oMtblsWMyHMX3M3/+eKsf1wH5VtbYu9HoAQPNhv4yNVqRz0/jNscMjDcbfNq7F//kEZNCJkZ8KcFGR92Xc9NYm6qqYjRbgQREyc3NEXNoBlzW99IfBkcN0pQmG1wzORRf2oA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=9pIGS2IRXaTAJkJ9VvfD3HD9PA96bQA6qa32OyvfSm4=;
 b=qCQ4dPxs27vV0JF07nO8X8Sc6G4/o/1pBTXVs1etGhm/F5nerq1EqwDY7nF67Icp6jMWNDa2/8v96LS2vxFMcYZ/miyKGc4LF9ZWQXX599qjz4GJdVsgbxhb5+UaVsVuIj1MwnGmu9NWy03E9WTdnkzSJ+FGtHBWSsQUEjr3kU0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 24 Feb 2026 15:44:39 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Edwin =?utf-8?B?VMO2csO2aw==?= <edwin.torok@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: Re: [PATCH 2/7] tools/tests/vpci/main.c: drop unused variables
Message-ID: <aZ25VwwtfHuDQF1R@macbook.local>
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <dd4cd79981fb24053b0dd17d79b31b1cea7ae5ea.1771840831.git.edwin.torok@citrix.com>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <dd4cd79981fb24053b0dd17d79b31b1cea7ae5ea.1771840831.git.edwin.torok@citrix.com>
X-ClientProxiedBy: MA3P292CA0012.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::16) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|BN9PR03MB5979:EE_
X-MS-Office365-Filtering-Correlation-Id: b4c209d4-ee0f-48bb-d47b-08de73b3432c
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?OVZZem8xL1hXbXV4aG4vZUoraTdMbExGQ2ZnMEdjZWVlVThyM0pKWjFTOEJQ?=
 =?utf-8?B?M2lwME5lSDZzbHNsNUgwVXA0Mk0wbDVOMVJSOFp3bEh3dHV4WERQUFpPcE91?=
 =?utf-8?B?YW9zci92K1Jvem1oWVR2dm1xNU5KQWt0QzBsNXo1SjRzbUlSOWNOR25HTjJT?=
 =?utf-8?B?SGR5bW9jT2hhbWkxV2JXbDFSK0xiUGEwL1F5UTZnY2xQN002aVR6MjB2eWlE?=
 =?utf-8?B?cktMb0t5Wi9SVEZGZkJrUTNCcG11QWpvZUJ6dTlJT2FzOXNyYmY5Rit3U2Vq?=
 =?utf-8?B?VEYwaGxmR2lENGZPZkd4WjY5UFFpcWtVakFHaXYrc1RmeFJBOEFlM0hOT2Z2?=
 =?utf-8?B?czZEcGZFb3dMUUF6QjI4elRkSjNRUVVhRFZBNUpDRHFIOEppYXgzZERyZW13?=
 =?utf-8?B?OXNReHBzUTQvYm1qVEMwTTFWMGZubnV6S2ZLTCs4TFpsSENEL28zSU94N3Vt?=
 =?utf-8?B?ZlBSZi9jd1E3cVhsUWlMejZxWkNRVERPTWdxUXBRZDZmT2dDYkJXekNYTk9t?=
 =?utf-8?B?b0JmZG1ha0ovWC81OVlkdHhiMUFBc3F6Y3JTMTUxRGZkWEtGeGVtbFYrdVU0?=
 =?utf-8?B?dEJ0YTBrVnBJeGVJMUpoUUZybHFVWGhqQkNobGFuWGZnQUVTaGtyOTh3dlBJ?=
 =?utf-8?B?cU8vT1JraUhRaVJwOHFyWFNoSUI2RXRZRmJHNFJHVkNSaFVEd0tLcmk2MlZQ?=
 =?utf-8?B?R2hMWHFhaW1BdjUwUVErQmFscTNUYjhtWmtwZlFncUwzVTNzclhuUm9Ub1N1?=
 =?utf-8?B?MTlzenhTaHM4U09UV1hvN1ZqNG8wYnA3aHN0bVFQSFMzL3BlR2JqNFc5Z1gv?=
 =?utf-8?B?R1E1WmZIeW9HU2YrV2RYVUtxRmo1RmE4SXlCWkxkK0FneFBSV1ZSSkVGNTlR?=
 =?utf-8?B?QnBDQU0zL2dhUk5VQjRvdkd5VGhRN0lrdDN4Z2s2WExkdW5EWVJ1dkNEVzBr?=
 =?utf-8?B?T3JpcXFvSkRsSGlhcmJqNDBrZ1RsL1JVVW5jWk83VXlaR1F6SHY4VEh3bmR4?=
 =?utf-8?B?bG0zejJmeXJyT1hrb1dtdFg0Vm9FTGRibFBDcTBRZzhOSkxScU1GaXREcWJ4?=
 =?utf-8?B?aVowREZtV0kxTWp2WXpqanB2RnA0N0xCTlJHRnBZUHAvb09xeHRPK1I5YjM4?=
 =?utf-8?B?U0JGNkhwSjhDbFlKNUIremMvRit2WmxuMkFRUURYRU5hR1UwVnVtbU9Sa0Q0?=
 =?utf-8?B?WVZDOTd4SmthRmh4c1VOMWhCYjNvV2VqUHZlR1Q2MXQ5WmNRTEJNWGhMYkF6?=
 =?utf-8?B?L2Y5U3JWZTZEZzhvV2dIL1Q1cUlaa3E4aGUxM1dLTjhtNlljYXJqUTFTcXNV?=
 =?utf-8?B?U2VZakQxTE9XQURmZGpiRWVjNllsb3lXR0hMc21FUDZndkZQTHFSSUlhVzky?=
 =?utf-8?B?emN5U1FQVnZCcHlWWDJNWHFYYTdqWnhIeVRwSUMrU2tabk1SdmdINGFFM0Jo?=
 =?utf-8?B?MytxREdJdk9zd1JIcVlUY0dNQi9MbEtXS1F4cHl0MUVrUkFhZ0F1dlBWTzMv?=
 =?utf-8?B?ekY5UTdPNlpvZEk3c2FsRE9VYVRUL0E5SktNcmdyZzhnSURpdFpXb3NNazhj?=
 =?utf-8?B?c3hLYlpCVUFGNXZ4TFNDNTcySWkvbGw3RUwwSEtOYjFxNU4vOE9vby8zcCtF?=
 =?utf-8?B?YkpqejFaSVFSUDlVd0VrOFZiVnJXRFZZV0FYY1J1TmJLNjgrT1hSKzgyMlY5?=
 =?utf-8?B?SFJ2Q1JWTXlFc0hjcWFGZE5OdUN2cm9aaytuZkRkUVVoUEUzb2dHeFJIM1lX?=
 =?utf-8?B?MGFjNUxkS29VejVCTUl5dHhVclE5VFR6SGlZdkpJMFlGKzI1RDY3NE1XWW8w?=
 =?utf-8?B?ZmxaVEM3NnU1Ymx2ZW9lMkdRMzkwU2xOQkxEQ2I0dzJCTkFvS3NCdHlKdmxL?=
 =?utf-8?B?WkVGL25VeDhtRTJhK3Z2SEZDKzhZbzdKcUpFZGJWeXgycGh0T2FjN3gxZTU2?=
 =?utf-8?B?dmNLM1ZQVGZuVHFiZlAveS9EVUQ2a2d5Q0tKcFozSlJIZUhrNytnUUFZQlJm?=
 =?utf-8?B?bEZweTNQbEFqc0xpVjhSbVpVWCt5UWFjUTJuSWhWc3ZSbm1tRFVVYnIvN3Jz?=
 =?utf-8?B?TVErdWJSUzh5THhCZnVKWHk1UmhURGVFWk0wMXk2Y2EyekZXTW9oNUpNVjQ1?=
 =?utf-8?Q?hXHA=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U0poRlZrWE5XZWNmUmtkY2EvMmJDSlJGZTdXZTVsbzBpWVdlWGswTjk1UDlh?=
 =?utf-8?B?RDNFUFU0MWw3M2xJUytSR0g0V1VCNEVWOElZSmxOYzRSajFUN0w2c1pTdkkv?=
 =?utf-8?B?Uzg0ZlFSMzUrOHFlVndEM3VIemFxV1RHOVVkM0JUdjFZK2tNNS9rWHU4MkpF?=
 =?utf-8?B?VGZkYndrL01TVGIzcitQQ2tORENnTjZKdkxmMGwwbXJFUkZsK0hKeDNpQXBN?=
 =?utf-8?B?OU1pZHZmR2NuL3RvSjd6Q3UzdE9IZE01eThsWDJKZVZXQnlWV1VUcE1hblhH?=
 =?utf-8?B?bnVNMlM0ZitZTlVxQ0lyQ1NaUVVwb0pJMXFTbG84U00wRUtldFhMMHQyelFZ?=
 =?utf-8?B?c3Z1SXpCZm5oTjIzbXVYL1Y2MzFVbmZISHBaSHE4WVVaVStESHBuL3ZuazVX?=
 =?utf-8?B?Vmh0SlNNVGQ5dHhZSTZMMVhNeitSSlhqZThzYmUrdU9LeGgzeko2R1BodG9P?=
 =?utf-8?B?bVNVYWJUbTYwYk5DamZmOE02aXp4SHptV1lDekhzTUxta2dwbktRQTB6d3ZN?=
 =?utf-8?B?WXpPOEt4KzZLRWliZHBMRGVHTUlWQVFocnFmdDRTL3hmUi8zNWE3amk1K3dF?=
 =?utf-8?B?VnNBaWo1VUxFMGRETTdHYklSZEkvOGlUbzFxamxmWlFiQjN6SS9nTkF2M1BP?=
 =?utf-8?B?OGdURnQwWG04YlBqSGNoVW8wZTJBQThjb1JtNXJ4SFlxVnl4VldhSzVYSGhD?=
 =?utf-8?B?dXlKUExJdEZQUzZjdUdaSkl3NUN1SmpETmgwRHN6UWdDWFoyUjdpU2ZZUEdo?=
 =?utf-8?B?NGI1L3llQjhZdENnYnNWRGQ5eDhscmN2MWZvbStuaDc0NnhqNzNNQTNTY2hk?=
 =?utf-8?B?WVhOTTFVdDh3VDl4YlFPajBVT2tKUXBoV0s4TlY5NVlnY3JiT2UvTGFlWEgx?=
 =?utf-8?B?eEx6TlRGVHczZS84bGIxS1hwSzF2M09rNXJSemZXYldyQ3c4WjJob3VmVjZm?=
 =?utf-8?B?T2VMQ1JCR0Y4OXBjYzBJQnRIV2YvMGI4TGI2WG1wMkJpU1BxZVJvY2VLaHFp?=
 =?utf-8?B?Z0hycnBxRlBiRzUzUWZUVEtPZ1hnVFYyZnZGV29YWlgzZ3JYem5ndVdnOERG?=
 =?utf-8?B?amJyR1pxTVdqZWFQdzlnd1hLanVOU2M0dmR5MWhQWHdJdWM5K1hnZDU0d0RO?=
 =?utf-8?B?N1dqQUdNdXJ1dVh0dTRqOGRnK0RGa2dpbi9kMnJYdzkycURTT2JjdmpZK3Nq?=
 =?utf-8?B?SnlqYUpZYmphSGZtbHdmWGhaTy80c3NESzJYSHZFTmt6UlNBMnNqWjlxQXcv?=
 =?utf-8?B?Q1dFemdjaHlEUXh6Q3VaYVJ6bVZBMzlMUERIY1ZtaTV1a3NZQ25ydGlpQnIv?=
 =?utf-8?B?T0J6a0hVZzdXNGpGUlY0ZkRMYURaVHcwTmY2UFd4dmFJZlljbzdTR1FnMGdX?=
 =?utf-8?B?aHQyMFBRcWR3SDY2amZ4OGlFL2IvQ2tzTGpFN3VCdmY1YVoyRGtFZGkzOE1u?=
 =?utf-8?B?cUlHQ0ZWWUEzek9WV2UrdE5PT2JqYkZuckZOV2ZpdlpzNU1VTUlRUXRpTUo2?=
 =?utf-8?B?NmdqSjRwbkNCYk51QWsybnFWbWx4WHBiTnNGRENnL2tlbkxQN3JyQ0RUMlpF?=
 =?utf-8?B?N3JEbDA1VEliZnpzbVo4VWJFY2NIRTlQcjFiOVpud3d2WDBGd2lZMmNCcXlz?=
 =?utf-8?B?Q0hYVGxiaTQ0dFU2TjBhTjM2WnJ2aStYa0hGbU13VER0OXRIVVQxVCtOSzcx?=
 =?utf-8?B?VXg0TllnaGxGczYrR0lZbnB0WnlNSExKR3pzS244ZkZoeWl4cUozbGxRZmVX?=
 =?utf-8?B?TXBKYVpvWVk4SUI0UVg4RWxXR0cxemFUT0s0L0lJVTdHSjVSR2FSTUU5ZTZZ?=
 =?utf-8?B?eWhxTEVLK3c0eVFQWlJ1UjlZUVg2aWNZZWVETWJCaGNyaU12TUNSTWlwdkhW?=
 =?utf-8?B?T252OXhKcERwZ1pweFNnQjl2TnI0TkNlL09kV3JQU1hpTGRWVkF3TERCQldX?=
 =?utf-8?B?NDBqTkw0WUlYUXQyeGJBeGkwMlJiU0lVMHR0NmFSekI1bFg4RFlGaFl5eXlj?=
 =?utf-8?B?R3l6WFFWeFk3MFJCcUxSU3o5WGQ3WjUvOW04Z2lQZytkOE0vV2c4RGRjVTMv?=
 =?utf-8?B?eWpJVDRJd3VFZUtXNm1OaVdMbzVqbExyRjQybkF0eTZwWWM5MHdIRlg0M1NJ?=
 =?utf-8?B?QzJ1VlVVd1VtaStPY0ZDaFh0MFJBcTEvbjc2WEoya1QrODVUeWEwTWNOTXA1?=
 =?utf-8?B?Y0Z4ZjV3WFE0R2NJR3dJaTRsRWdsWmtTL3lCZDYyYkRGcXZUa3ZDZDhXdjQz?=
 =?utf-8?B?OTYvM1o2RDdUcHgrdnRwSmxCa0VSbFNjM0ZZU0d0S1NXQVczWHZOSWNsTlc2?=
 =?utf-8?B?NnR4cFVaWEtZbEw0NGpKYVorMThNVGMvMkVaNUFvMExUUVlxSHhFZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b4c209d4-ee0f-48bb-d47b-08de73b3432c
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 14:44:49.7792
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 2VnsVp9rzKZpZzyVDpp7suTZgAhGy8m1MeeEuPty/DLjaPSN1ex7Ak0u5TAlj62Y9BARecKEFiMInJ21WboAhg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB5979

On Mon, Feb 23, 2026 at 10:14:06AM +0000, Edwin Török wrote:
> They may become build failures.
> 
> Signed-off-by: Edwin Török <edwin.torok@citrix.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 15:31:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 15:31:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240152.1541639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuuNc-0006qf-HR; Tue, 24 Feb 2026 15:31:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240152.1541639; Tue, 24 Feb 2026 15:31: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 1vuuNc-0006qY-Ed; Tue, 24 Feb 2026 15:31:20 +0000
Received: by outflank-mailman (input) for mailman id 1240152;
 Tue, 24 Feb 2026 15:31: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=Eudq=A4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vuuNb-0006qS-RE
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 15:31:19 +0000
Received: from fout-b4-smtp.messagingengine.com
 (fout-b4-smtp.messagingengine.com [202.12.124.147])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id db1c1ac4-1195-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 16:31:15 +0100 (CET)
Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44])
 by mailfout.stl.internal (Postfix) with ESMTP id DE7611D00115;
 Tue, 24 Feb 2026 10:31:13 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-04.internal (MEProxy); Tue, 24 Feb 2026 10:31:14 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 24 Feb 2026 10:31:12 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db1c1ac4-1195-11f1-9ccf-f158ae23cfc8
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=1771947073;
	 x=1772033473; bh=lKRkqd72j0u5hpzvO3/RwcP4EA2Ot8NNWLi4+dgfm6A=; b=
	oVE6/5Xwe5jNM8GPeWL6Kdoq7dqLzVIdBK8gxe1TG/Cak6kQfI/KsxhXIQ3k1hkC
	7oYgRLq/qVIzoBKyKcPTRR7u/FEmTVyk1m1Kvv9M4NOL1zQKk+gXY2FxquWFtbkb
	816fpnfPYltnTcnFOzavB8kdYpf0XjGhHGLBi3L59OYOtG+pzN0WVNx2BKxJydr2
	4F4owH+ZJgf9oKEdSfpHLfrbslANMJFVY3AltWpiM7RPXzwU3nqpCNAR5me47Ivc
	Ozjyeh7I7q6lQ8Mrt356tSxIWYXaRwZwyhWb5TrfEiUWFdebreausDozLyVZEsro
	aRs1MH9/7PaSR+ztsYsIpw==
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=
	1771947073; x=1772033473; bh=lKRkqd72j0u5hpzvO3/RwcP4EA2Ot8NNWLi
	4+dgfm6A=; b=t6nf7Righ/qRfsAMjNNlJGXsqFpzfZv+3Gtdc605yaclLYrzJyx
	Bduswn8ipx2XP2R6F0v/34T0QIBwXJ2BRpQ2Lr6cfDwAiL77a0uvg9DDDSPZSSlO
	d18XJyatU1GwejGtBhmv78Bt9+OxM8z8DYnowUDsl4AoY6JI7r9hl+9FTRh6xfC6
	PPvOwYGkTRoQ8F22tpBPNpyy6xo+g6gfTaBbQ8Ifh75nIo3yzelIZ8C01qx3krY5
	yzQAaqJw1Gwm+3mCjG5fRQsEQho1E04gQek9nBzgsmfyARrVcYO1tIm4r+57eqWf
	4mDbyXQwnGpFqHhSxIH/OhjKm22sg7H8rTQ==
X-ME-Sender: <xms:QcSdadl5eIIQyFKkMomFMhZ2tLRkYlSjRSrKpZoSUECrub2zJJAozw>
    <xme:QcSdaWrl8CXG5C0HysU0-8PGFkArd4evE-iuFGs4xrbrPbqlqOHsCExc6ANkwYUDg
    0h83q6RgQjnc5vzKthcXzD8g0YlqNdvs0z57w0PSR5jPUn_VQ>
X-ME-Received: <xmr:QcSdaeEfqKz0_zuDY8XtXvdPrg5CUr4SQioaGcVS6FRYV6iRNeRUvX7KFP4p3mf3oLF82OYgolKDHPBLJy__ZJ-VOC61z0xpYvU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvgedtheefucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepgfduleet
    feevhfefheeiteeliefhjefhleduveetteekveettddvgeeuteefjedunecuvehluhhsth
    gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehi
    nhhvihhsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmh
    houggvpehsmhhtphhouhhtpdhrtghpthhtohepuggvmhhiohgsvghnohhurhesghhmrghi
    lhdrtghomhdprhgtphhtthhopehrohhgvghrrdhprghusegtihhtrhhigidrtghomhdprh
    gtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhr
    ghdprhgtphhtthhopehinhhtvghlqdigvgeslhhishhtshdrfhhrvggvuggvshhkthhoph
    drohhrgh
X-ME-Proxy: <xmx:QcSdaawGPGD10mkm8wjsnc0O6am0DqaJ3w4DYx2i424Znjrjc6onjw>
    <xmx:QcSdabpyCL4UwwqjaMnxxDzA_4XYOnkA0lpHcrMKuTZQ4Fgm389nOQ>
    <xmx:QcSdacjbUKshq0O37aWG_yFxkXHduLVfOul0SDeGFidGP4FlPe4C0w>
    <xmx:QcSdaQjXVUa19R39aTFcNlhal6X3NwsnWGZ1cSaHD6EBsVKSpb7vEQ>
    <xmx:QcSdadWzjAt3Mi_yT-Bns2wXYky6v8b99gL8ZD2aonCZg04bxhunkgT->
Feedback-ID: i1568416f:Fastmail
Date: Tue, 24 Feb 2026 16:31:10 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Demi Marie Obenour <demiobenour@gmail.com>
Cc: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aZ3EPnJD_KunoQh-@mail-itl>
References: <aYtznP_tT6xNPwf-@mail-itl>
 <aY3ttvtxGCPTNgsj@Mac.lan>
 <aY58-gyarcVoBS2a@mail-itl>
 <a41a15ca-b26e-482a-9084-fc61645fb24e@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="Hjkw3E9BoIh06IIo"
Content-Disposition: inline
In-Reply-To: <a41a15ca-b26e-482a-9084-fc61645fb24e@gmail.com>


--Hjkw3E9BoIh06IIo
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 24 Feb 2026 16:31:10 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Demi Marie Obenour <demiobenour@gmail.com>
Cc: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>,
	xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19

On Fri, Feb 13, 2026 at 12:31:47AM -0500, Demi Marie Obenour wrote:
> On 2/12/26 20:23, Marek Marczykowski-G=C3=B3recki wrote:
> > On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monn=C3=A9 wrote:
> >> On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-G=C3=B3re=
cki wrote:
> >>> Hi,
> >>>
> >>> Recently I started testing compatibility with Intel Lunar Lake. This =
is
> >>> the first one that uses "xe" instead of "i915" Linux driver for iGPU.
> >>> I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
> >>> Linux 6.17.9 in this test.
> >>
> >> Not sure it's going to help a lot, but does using a PVH dom0 make any
> >> difference?
> >=20
> > Ok, now with the correct Xen version, it's better with PVH dom0. At
> > least on the login screen and few applications (from both dom0 and domU)
> > I don't see the glitches anymore. I can't do a full test, because PCI
> > passthrough doesn't seem to work with PVH dom0 on Xen 4.19 - and I need
> > it to start most VMs.
> >=20
> > So, if the above test is representative, it's only about PV dom0.
>=20
> This reminds me of a problem that I helped debug a while back,
> and which also affected Qubes OS.  That one was due to some part
> of Linux core MM clobbering the high bit of the PAT part of PTEs.
> As a result, a PTE that should have referenced entry X in the PAT
> wound up referencing entry (X & 3).
>=20
> On native Linux, the bug was mostly harmless, which is why nobody
> found it earlier.  However, on Xen PV, the different PAT caused memory
> to be cached that should not be.  The resulting symptoms were very
> similar to what Marek described, though a bit less dramatic.
>=20
> Can you try removing the Qubes downstream patch that changes the PAT?

I'd assume removing such patch would make things only worse (it either
shouldn't matter, or if the driver assumes Linux version, changing it
would actually break stuff).
Anyway, removing the patch didn't change anything.

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

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

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmdxD4ACgkQ24/THMrX
1yzNKwf8D5XRQrqlh3kLHY4RnTkKDpzpidlSTt0P3ifmwdqFCR42vBkbdX7qE1+5
l0f6EjapaDSAj/Yx3+4yUztyiXLW+zsu6ashquVN6CzTJU9Q0mrRKqC229TYgi6k
SGyy0glmFlOfBYLklhF51jFO2r1NKp9ok736zecSYjg1KdwNHgpQgITnEEQxhCcw
/b4ajkkKZ6of0ulhxoEIHA5P7m/kg7I63jQapborsL0PHwdzEgTLqjpwBV0CqZ+W
9uZgRdUVfU0urRblL6/tFKj8/seQTBSiYoUT6bP0u3cIeIfF5r9bYaWC2xOFPfBh
sFX4fVag7XkIoeAwH/szlikJ4qdI8w==
=4qyA
-----END PGP SIGNATURE-----

--Hjkw3E9BoIh06IIo--


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 15:58:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 15:58:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240164.1541650 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuunx-0001bQ-HK; Tue, 24 Feb 2026 15:58:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240164.1541650; Tue, 24 Feb 2026 15:58: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 1vuunx-0001bJ-Dr; Tue, 24 Feb 2026 15:58:33 +0000
Received: by outflank-mailman (input) for mailman id 1240164;
 Tue, 24 Feb 2026 15: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=Eudq=A4=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vuunw-0001bD-Ai
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 15:58:32 +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 a98c268f-1199-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 16:58:30 +0100 (CET)
Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42])
 by mailfhigh.stl.internal (Postfix) with ESMTP id CF26B7A0113;
 Tue, 24 Feb 2026 10:58:28 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-02.internal (MEProxy); Tue, 24 Feb 2026 10:58:28 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 24 Feb 2026 10:58:27 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a98c268f-1199-11f1-b164-2bf370ae4941
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=1771948708;
	 x=1772035108; bh=Bna20Bj12AiheVoYQJIu6dwrne7lv6IBmdPM2U/hwhQ=; b=
	SpYM58I3T8gObDAgO+m3GFt57tBIq6J0puEA+Us0k0mJ59+7j+rrtoswZhnXVwnt
	UvbpXaKwhD5HNbvjAlL1UiCF7gPQgKGXwHtWtrpvoKDFPra9Y+wfKhtL1d1E0IIq
	yxxXQ2WvnTd85Ua/cHfnJIIKCFqAxAwBHxDx7IaFYGyBttaLIAStMoN4VF0HCiZx
	T2xOeBOpoT+3/1GaSD/f00KDbfMYlTkjzzhqJTyeGUHlaLkGTK8bKlZ7Z9WvX1gA
	yyWAyb1ag3ImN493MBM79OX7vvSTDmev4bTSwXqyR5ZxGe4SeqV8m2NSHTUHTX42
	lh2ml349RMuNYBBExxHGyA==
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=
	1771948708; x=1772035108; bh=Bna20Bj12AiheVoYQJIu6dwrne7lv6IBmdP
	M2U/hwhQ=; b=burfKRW5ZaM1YXiFZ8wd9dTe1d6cVRm8QFlhcpycNOfy0qQ2a1c
	X7naXtkQNgYOEIlvqIsj4Psb+a1OJCX9UEDUC2ByHX92v8jaiYlrbJbAmlTDAqpW
	l0bttOQmOYVTXED4pdAwW/cbcA6UgRyJFZSVIKVjrq71Xyq9nqP8W8TzvVHdJfz3
	8iixgB97qArRaJyyH6IiqVz2SqO74yvDMPcv0JbLHkr2e6PbZAs/wAM0J1Mqu2WW
	1WzitX5ehvw7wqK2Fpd9l/WT/UuTBNVK4kDt5hJEMpZUMNVXOB/w4hOB3DgFpFX3
	7h8F0PjwkcnSzQezyzAfAI+Sezc3V72mO0g==
X-ME-Sender: <xms:pMqdacs4xumYRFYXULbLrQ83Xa6Lp5q3NmU7ou0uGmgcQToeX4VWOw>
    <xme:pMqdaRMUW-5OT2sWnccXkbJIUfd5iGKCS61_T5QSlXpjxJaNswnS-1D-WpSsGK1Le
    7gKkFlV5GO_hV0-oMvhrjK0UDCa0rh0Bt143nY8QLfmizqnug>
X-ME-Received: <xmr:pMqdaa0ZtrZHhLDJlfjJdzcsvWm7RA8ieNC1AuvQedyoqJIp5D98CCutJEuhRQ_2QKMkKll_8HS1rFL28fEEpq351h6LQP-v258>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvgedtheekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnheptdehvedt
    ffeggeffgeetieevfeelvdfhjeekvdfhgfffvedvuedviedugefguedvnecuffhomhgrih
    hnpehgihhthhhusgdrtghomhdpqhhusggvshdqohhsrdhorhhgnecuvehluhhsthgvrhfu
    ihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepfedpmhhouggv
    pehsmhhtphhouhhtpdhrtghpthhtoheprhhoghgvrhdrphgruhestghithhrihigrdgtoh
    hmpdhrtghpthhtohepgigvnhdquggvvhgvlheslhhishhtshdrgigvnhhprhhojhgvtght
    rdhorhhgpdhrtghpthhtohepihhnthgvlhdqgigvsehlihhsthhsrdhfrhgvvgguvghskh
    htohhprdhorhhg
X-ME-Proxy: <xmx:pMqdadPdpyJOVHrinY0wT42bJHVMsropT2Y_12z8vP_e09p-LDRuuA>
    <xmx:pMqdaa0OHHl7N3qcQ3UbCpafnZd03c1YmrbCAelwDCP-aRWu5xL7SQ>
    <xmx:pMqdaUFuzLYIZXUWhRJNlUcVBzhekcFXkeubMLjrtfGz0eXF4Z8ZgA>
    <xmx:pMqdaX5l7-_1Eo00mW6_KPwjwcglI2E9ZKV-79yIRBwDJqyB1fYoHg>
    <xmx:pMqdaRTP4OLmehqNqTlviki1o78K7fG_a_rjMpEam2Enc4SiH5uQPI-F>
Feedback-ID: i1568416f:Fastmail
Date: Tue, 24 Feb 2026 16:58:25 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19
Message-ID: <aZ3KoSlIzru0Uumu@mail-itl>
References: <aYtznP_tT6xNPwf-@mail-itl>
 <aY3ttvtxGCPTNgsj@Mac.lan>
 <aY58-gyarcVoBS2a@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="z+Qs3uEx07rIKHpf"
Content-Disposition: inline
In-Reply-To: <aY58-gyarcVoBS2a@mail-itl>


--z+Qs3uEx07rIKHpf
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Tue, 24 Feb 2026 16:58:25 +0100
From: Marek =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
To: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
Cc: xen-devel <xen-devel@lists.xenproject.org>,
	intel-xe@lists.freedesktop.org
Subject: Re: Graphical glitches (not refreshing?) with Linux's xe driver +
 Xen 4.19

On Fri, Feb 13, 2026 at 02:23:06AM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> On Thu, Feb 12, 2026 at 04:11:50PM +0100, Roger Pau Monn=C3=A9 wrote:
> > On Tue, Feb 10, 2026 at 07:06:20PM +0100, Marek Marczykowski-G=C3=B3rec=
ki wrote:
> > > Hi,
> > >=20
> > > Recently I started testing compatibility with Intel Lunar Lake. This =
is
> > > the first one that uses "xe" instead of "i915" Linux driver for iGPU.
> > > I test it with Qubes OS 4.3, which uses Xen 4.19.4 and PV dom0 running
> > > Linux 6.17.9 in this test.
> >=20
> > Not sure it's going to help a lot, but does using a PVH dom0 make any
> > difference?
>=20
> Ok, now with the correct Xen version, it's better with PVH dom0. At
> least on the login screen and few applications (from both dom0 and domU)
> I don't see the glitches anymore. I can't do a full test, because PCI
> passthrough doesn't seem to work with PVH dom0 on Xen 4.19 - and I need
> it to start most VMs.
>=20
> So, if the above test is representative, it's only about PV dom0.

Some further observations:

1. My initial impression that Xen 4.17.6 is not affected is false.
Apparently I got lucky and didn't waited long enough for glitches to
appear. Unfortunately this means I have no way to bisect this...

1a. Updated test procedure - either:
  - start Qubes OS in full (including default system domUs) and try to
    open an app in one of them (for example file manager or pdf viewer)
  - start Linux up to lightdm login page, log in, log out, click on a
    few lightdm menus (session type selector, poewroff menu etc)

The second version works even if toolstack version in dom0 doesn't match
Xen version. If no glitches are observed after doing either of those
procedures, assume it's good.

2. Xen staging is affected too. As well as Xen staging-4.19 without
any qubes patches.

3. After enabling CONFIG_DEBUG in Xen, the xe.ko fails to load firmware:

    xe 0000:00:02.0: [drm] Tile0: GT0: Using GuC firmware from xe/lnl_guc_7=
0.bin version 70.53.0
    xe 0000:00:02.0: [drm] *ERROR* Tile0: GT0: load failed: status =3D 0x40=
000056, time =3D 0ms, freq =3D 1850MHz (req 1850MHz), done =3D -1
    xe 0000:00:02.0: [drm] *ERROR* Tile0: GT0: load failed: status: Reset =
=3D 0, BootROM =3D 0x2B, UKernel =3D 0x00, MIA =3D 0x00, Auth =3D 0x01
    xe 0000:00:02.0: [drm] *ERROR* Tile0: GT0: firmware production part che=
ck failure
    xe 0000:00:02.0: [drm] *ERROR* Tile0: GT0: Failed to initialize uC (-EP=
ROTO)
    xe 0000:00:02.0: probe with driver xe failed with error -71

CONFIG_DEBUG is the only change between "xe.ko loads fine but there are
glitches later on" and "xe.ko fails to load at all". Full console logs:
https://gist.github.com/marmarek/47b5e62a2cdbae6678c2aecc5283cd3f, there
are 3 files:
  - CONFIG_DEBUG=3Dn
  - CONFIG_DEBUG=3Dy
  - CONFIG_DEBUG=3Dy + iommu=3Ddebug

4. Updating to Linux 7.0-rc1 doesn't help, for example:
https://openqa.qubes-os.org/tests/168119#step/desktop_linux_manager_create_=
qube/11

Generally, it does feel like a bug in xe.ko, but I can't exclude some issue
on Xen side too (especially given point 3 above).

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

--z+Qs3uEx07rIKHpf
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmdyqEACgkQ24/THMrX
1yz3NAf/Ss4zXqST+hrVe6//Y8nAtTjAfSKUnpUzjknj9A02rhVJMq7H4VTiQV91
ZM2lHu3JR+ye6J51t+fBtc27eJ1kBWWkPguco5pEaLm3UzlIAzDDTBntLg2M3qTe
XSLl2lc3L9cYmXpS2It1jTj+QnoATccFG1Y90SiypjL/yZQwL8lRFZVgdmHHbN9k
+Ts7gnNfSLXV22Wj/HKJPpn9v+rZLPFoXYT2ECMoOU4L8GcihAQ07kfyG9Zk0scE
Fay2icmTVi3NjBlYSn/UZvfIKDXTT/KuRuL43TVuqKA7OuVoAM+WVWxhf7FfZMf+
fOIDtJsnT+0Q2tPqAbT8100EC1ndGg==
=gWO7
-----END PGP SIGNATURE-----

--z+Qs3uEx07rIKHpf--


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 16:02:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 16:02:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240175.1541660 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuuru-0003gm-1A; Tue, 24 Feb 2026 16:02:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240175.1541660; Tue, 24 Feb 2026 16:02: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 1vuurt-0003gf-TS; Tue, 24 Feb 2026 16:02:37 +0000
Received: by outflank-mailman (input) for mailman id 1240175;
 Tue, 24 Feb 2026 16:02: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=dCRR=A4=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vuurs-0003gZ-AE
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 16:02:36 +0000
Received: from BL0PR03CU003.outbound.protection.outlook.com
 (mail-eastusazlp170120007.outbound.protection.outlook.com
 [2a01:111:f403:c101::7])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3b69128f-119a-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 17:02:35 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SA3PR03MB7418.namprd03.prod.outlook.com (2603:10b6:806:396::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 16:02:30 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 16:02: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: 3b69128f-119a-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JacaHmRQ/Db2M9+++pta7yDWFkjCXx8PoRhzEsOYLjjBJYtk7AIa4hwCs1Tj2Coi3OwIuKhfWF/2M8OMDl3IXKF/y0IRYGWBMUBxl8mOYJHbL+Q1tGpSyfPve8BKuguP67UBNkgtIbjvnO8MQ9Ieg0uIXN9qLmajmVtUbLiD0lBfGeryPgJFG1kt7Ul+baUUIY+ngzvm6pcfqJfR+AghGq7IUMs7DHulGeeLI/B4zNyzTHNrvmm+fuTZB237YfUqzgcIFTrYG8Y3p+4KboVhKSURSFO1iWsUmeBfsyGYd3R7xgtEs7a17OMnoIlnn3X2+eMtMaSOqwY5eY30SRhy6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2iOVr2rKpTPcFlleJfTLbpXf91VeXgKjE/3A2eZ9VZY=;
 b=VxnAUtg30LSYQhzMx0DV/nE+voKW/5LWoo9V1cNXlZo9ZqHQd87yxRBo3OvABO0VYbkOUP9wIOeuaUgZIhzXmrCxH9dZCJv4b1McZDeWb2Eifx31d14kuXN4dhKAxy9gZ0K4MwsDbUZVESbcl0/vjDgnDcVI8klK6TCJi6LTli89i4WIwILVj/YLsqBYTF2bJPxvrqJ4Mm45McVL2pKO1lfcOPO5skpKp728EsIWMEWpH0JOyx90iQpzc7UMNVlLXa45irdpN5Tyzj/dWyOs4Pm/4TqzInO14OQbR/iQbi8A0qwJwMTpjZnQy8Px8e3Ra3Sx43ejlCiv9PzKr5ZB8g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2iOVr2rKpTPcFlleJfTLbpXf91VeXgKjE/3A2eZ9VZY=;
 b=RvKENYjKS/Slv2L0orwwEWNITZ+6Zur5vmCSSz8WaQtag0p91BdsBuFU2pQWLVR4U8gsfzCS7NC86pLHA8Oqp7Zpoqx7W9JP5iqvEBXhQH/s1Sj95nwQzeWDGWau9G6vqenEFJ0IG169hH8h3UM6yBy6Xime5AIMU3Y+EbD4lf0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f8a0d742-18f1-48bd-841b-1943fcb632d5@citrix.com>
Date: Tue, 24 Feb 2026 16:02:26 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH 2/2] xen/arm: Simplify type handling for SMCCC
 declarations
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
 <20260224124558.3675278-3-andrew.cooper3@citrix.com>
 <261af40e-db79-477a-b67d-1af7428782d4@amd.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <261af40e-db79-477a-b67d-1af7428782d4@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0467.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1aa::22) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SA3PR03MB7418:EE_
X-MS-Office365-Filtering-Correlation-Id: ea04cee7-acd2-4462-6fc7-08de73be1d2b
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?MjdKRTl2SUR5RmhwKzd2dlBQSG56VXpjWXVxb3pnU1hXYUlLQnJJYjZwVFFV?=
 =?utf-8?B?Y28yMXhXSnQrZC83enhkdndheVVlYjd5UXQ0YVNUZFJ2NkZQRkhsYmJydHVL?=
 =?utf-8?B?UitZK09tMWQ2WnNOanNON3hFVGhRT1lYcE1DbjZNZnVXN3dPU2NEY3h5SlNL?=
 =?utf-8?B?WHg2UDlDdUN3SFVPUUFIbDBxZTNiditocTkyRURqVlJrNG1FalRkNkx4akpi?=
 =?utf-8?B?ZytQOHJWSktValhXQ3BrYlNYcVc5SHpBUTlKMXpFTHhnZ1dyME9JUEZnY0dN?=
 =?utf-8?B?cXIvbmdYYmdaQmJublp4Yk9kTHVkL1VxQ1F1aGthRHNNc3A3VVl6QitObFVY?=
 =?utf-8?B?STVRNDNETFo5dUpDcXNCbDVFZWlKd2pFbERLVWlTVVB2Q0I0YTd5ZzRoSFJq?=
 =?utf-8?B?c0M3Ym9qVFpDcUE1Y0puZm9PVU0rY3lzVUJmQWRXVkdndUlSQ2N6YWl3OEpr?=
 =?utf-8?B?UjdRTjNFN2VXeERKVThkUGRlSVJUU0RUV1N1TTB6Y3lYRDEranl1SlFnZy9x?=
 =?utf-8?B?QWMzUkM0RWR5M1d5UnVDdW4rSGhTbVlMQTJEdXc4dHQ1NEUzS1l6REJzeDhl?=
 =?utf-8?B?MiszU2pyZUQ4c1ZuQ1N2cktyUllHek1DT0NIb3c1NHFkd08raW1Rak1adjRs?=
 =?utf-8?B?amRRbG15NlJ2ZndabFNKUHZqaHVrY2lCRFdWODBMb0R1akFwMXJvdHQ3M3lL?=
 =?utf-8?B?c1ZMZFZ1TlpnbXR5S0NUbGh0eEhKc0JySVZjczNqZHdWSFNTZDRYaXFhOHBH?=
 =?utf-8?B?SnNTNDhMU0lDRFpONDU4bHZZcWVEd2k3NWpFbW96MklOUWF4R2RCQWorTDJi?=
 =?utf-8?B?UW5zSU9oeVF4NUVRSm1WeTVhaXkxUHZvNkRmZnhNOEx2M2tPb0taaWpIVWdh?=
 =?utf-8?B?Um5ja3lTTUV1VElvaFVJSXRxTUpNSEJoY2NQVG14QWRSWnVvUm9lcEthSGxR?=
 =?utf-8?B?b3E1czBZMG40L2ZyZkVXSXVKNlJ5SzhnWGVnNFR5NktmcStYQXBheVRVeElq?=
 =?utf-8?B?M2RTR2RUQ3A4Z3F0ajRmWG5nVkt3U00yNGgzcVZnUDBmVWY4eW53UTFZRU51?=
 =?utf-8?B?SFN2bXZ0dG90TGMveGdPTktweDExLy9RTGxNOWZFdFMxR3NtRDVpc0JuNCsr?=
 =?utf-8?B?cFAzNnl6V3VsalRNRkppaW9PL0hzK1c5akFlSnk0OEJqZ2M5ajBhcXRFN1M3?=
 =?utf-8?B?OXVHWmRhdEN1STd0eWQ4bEQwL1JPOXZ6ajEwRG1kM3ZQS2liTGc1ajZCaWJ1?=
 =?utf-8?B?OEYxUTFiTjBBaS8wc2YyeHVKZjAyN0hJdjRyYXhqbkZzVHUvWWtuRHRIM3RC?=
 =?utf-8?B?eTEzcXdodDg2ajFheENVYjR3UDQ4dE93WVBHdjh2dlpmeEkyMkZNL0VVQnVh?=
 =?utf-8?B?cWhReWRNbXI2eEEvNlA3V2h0ZDBNdC9SRlp4V2hjQzQ4bmRLNWZwdGdZWUJP?=
 =?utf-8?B?enBKQUVrZU91RjFFN3MrNno3R3RUTVYxUXpZRTY0RzErN0hEcXh2bDNST0ow?=
 =?utf-8?B?NFBDZWg4aVgyc3dpT0dKVGUzc1hNT0VKNC8rb0dhZ3FZaDJUVHFUUm5CQnpU?=
 =?utf-8?B?S2NKN0RsN3BiYng1SUxPVHhNZm5UMmxxZUY4dVc4N24zT2RSdFpZVzVRWGtX?=
 =?utf-8?B?cmc0dEFlZXZxc3pneWsxdFpmaFNZb1ZYT3g0TTIySEYycmQ2RVZ0UE44aWc2?=
 =?utf-8?B?Tk5uR2w5YnBSQUR6dmwxbmVCaTdzMnJ3cHJqdmlkOW54WnVJTWtNUzlsOGhV?=
 =?utf-8?B?V0RBRE11VG5DL1JjV0JVNkkyY3Rqbi9Ecng3bEQ4NVlpY1g5SmU5NVFFL0hl?=
 =?utf-8?B?RlZ6M0Q1OFVNM0pXOEpQK0tUSnF5ODIwbzhuRmc4N2lvUUhONGxiUjBTSzNu?=
 =?utf-8?B?MGtiemJPNVd2cUt2a2s3eEdxZE90RkpDcXg1c1FDSmtNRWdVR3dobGJqYUR2?=
 =?utf-8?B?ZFg5aFJGS0tFNENlV1ZDM2VhUGl2Z1g1em0vMWlzQzhPQXJaMm9JL2ZIZ01J?=
 =?utf-8?B?bGMyUWp0UXR2NU5XVnY3YmlKS1laT3ZWUUpvTklNSlpBU01HMzdNaVg3TmVF?=
 =?utf-8?B?MGxZSUFzMjM5b2t4a0lJSXQrL0ZxdHJTWjl4UVdTRktFakFRUXFzd2krSndu?=
 =?utf-8?Q?cO0E=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z3JLYi84SmppU0lCZ2Eyd0gxOXdRU1c1Uk9hbUhybVFia1I0MkwvNTFTcUVt?=
 =?utf-8?B?TncrRmJ1Vm9vWDU0TVNQbHRMS1I2VWpUQ0JURGxwVE5DTVhEcG5FcXNJMVR6?=
 =?utf-8?B?NUlRSFpVYkNSaFY1Ym5Od2JtN01aTzNBR3JZYnEvYzdGTm4xNC9JWEpoYktK?=
 =?utf-8?B?dUlsMTZJR3Z5VzVRemZkdEV1b0pnRmIvcWRpSHVzZzd5Wlp1NUZuM1RqY3gz?=
 =?utf-8?B?MWdnTC9tM3dqZ1pDQk9JcTY1YVZ4eExrdW1PRGZEYXNzOHIxM2xPRDFqQ0RV?=
 =?utf-8?B?WTAxbnF2U3Z2M0o1UWNINjc2K2Yxd3ppYUxoWUpXL0N4TVBRWDFoS0cyU2tz?=
 =?utf-8?B?ZGQ4NE03ZGZxbjZMSXIxN2tOblBvZHhyRjVmakE4bWtOdkw1SGNuME9zL2Z3?=
 =?utf-8?B?WkxlZnRoR2FKbVkwN1pUNzdWN3FDb1FrNjh0bm1CQ0tkWHFNeFZMWXYvNTVD?=
 =?utf-8?B?RDYvQnNEZ2FhUXVFSUp1cmlIcktiMXEvcDBiN0dSSkExdm15cFNxRUFBZUI4?=
 =?utf-8?B?aDc0Y3JxTm5NRXJFTDVKaFFTUFd4TzZuU0xhOElPZ09tRWRiaXY0cVZXQ1lN?=
 =?utf-8?B?UHBOdjZJM1RmUnRGVi9ySWhlaDhwZUN5Q1E1WjdRb0wxOHJRMWwxMTRsVFNR?=
 =?utf-8?B?KzFJYVNhREJVMVRkL2hRRGNKSWg2b2tDdFI5Ym5pVVRyR3ZiS1ZISkMyT3Rw?=
 =?utf-8?B?cm91ZlhyanF6WTNOVXV4eDg1eEhjd2VlZUZmaGZQd2hIOE8rYUZ5UWZIOWhX?=
 =?utf-8?B?Ujh0YmRLSllvV1lzVVRVSUdCN0ErRTF5TmJQdTErL2pUVllJRnZoWWJqS2hh?=
 =?utf-8?B?cGJHSENKTzIwNFNLa3FZYjArSGVSU3lWWlBzUVJjT25qQXpVV2JYVlVEQzFE?=
 =?utf-8?B?di9vZkJOdFNTVVdVWWJGUzdyNTR0a2xJZ2dRL1kraC9maERnZU9XKzdsRG9o?=
 =?utf-8?B?YStmWGUwS2xqRTZaUUN0cU9ranZERU03QkF0OStrdU5oZnkxMHRFRytxK2pt?=
 =?utf-8?B?L1NTak5XSCtoSWRNTXJIaXAyVVdqUVBGMU1SVUZKTlAwVlk3UDkzLzBJK2Na?=
 =?utf-8?B?NmNiUHgxN1BGalkvYVFrMGpmaW5kZXcwT1ZZSWc3OE1nQkxVR2laRnVpSzNn?=
 =?utf-8?B?Vm1Kenc0anFKcFlESWZQQzEwSkZWOWJKKzVxMkZFUDZIMytYSUtSR0lEQWlS?=
 =?utf-8?B?emxpVGpyNGNaUC9kZTYxVURiMVdNaTVoaWpJKzl4TFRqSUx6ejdhNTQzMGty?=
 =?utf-8?B?U0VSVCtoOEFPbUlWNkloeUVXRHpJVTNFc2FEV2dna2pHNFIyWnJhbXM1b29m?=
 =?utf-8?B?WFc4SEpwN2lPajNpWUY1MGsxM2I2VEhaajk3ZXlMTXdLdUxmSXZ1azJHbkRB?=
 =?utf-8?B?cWVRd2d2eURkV2RhYnZ2UkxIa0Q2L3dGdGgzS0NlUHc3bk5yYW1maG9zSnND?=
 =?utf-8?B?N3pvNlh4QjZCQTIwOThlTkxiWTJhWW1qdjZMSWVJZG9pRTNQTjQ2Z1FxL1ZZ?=
 =?utf-8?B?TitnQmRxVjBTalVPVHl6TWs4ejRJazc5S1QvanliNXduQytpN0wwSkpMbFpw?=
 =?utf-8?B?K2sweGFnYXYxNmZRNzF4Y0kwUTRWV3d2VXFZSkY3R2tQR0gva1ljSnE3S3ZX?=
 =?utf-8?B?dmFkOVZOUm5LWTJxTmtLaWZyNzB6b0xrd0pScS9JRzdSdVY3MkI5RWZGOUlt?=
 =?utf-8?B?NnQ2cGlUa0hGUURKODY5VExnTUVlNEkyUjlKS3hpTGZoS2FzNE9mR21ORGMv?=
 =?utf-8?B?OUJvV25wY3Q1c2ZJblFMLzRjRkdBZjhPd2FQbzBmTVlVSHZDYUV2NThQdVRF?=
 =?utf-8?B?T0gxcFJTUDduazZtRDNJMHBBK2traXhGb01hT3RxbTJ4bnNncDQ4VUFDRE85?=
 =?utf-8?B?bDlybitONDZlS0VSdDMyajdheXhHRnMvTHFIR05uMjZ0Vk5lNFdRZ0kwTGJm?=
 =?utf-8?B?S3BPY3dzMjZDNUM4c3ZOMnorUVNMKzlVTjYzQUJKL1daVXA0QTB3a2hVYk80?=
 =?utf-8?B?Zmx3NnpvOXp6UWRmMklKczllNXl0d3FKL2czcTR6aHRXKzEvanZnQ0FEbElO?=
 =?utf-8?B?ZDcyM2lRSlZtNlhKeHVKSDBHUmQrbEdTcHNJUkZlNW5LRmwwazd0clNBWUpu?=
 =?utf-8?B?L2JEdFBWU0tmRGpUL1VPN2w3eU9oNHZzWnRzNk1iNi8xV2tENk5iQ3dIeVZH?=
 =?utf-8?B?aytlT25LdHREdDE2RURXWmRaS1pUWVNXL2V0aGFzYVE2QVpuQk5vMnFRbklt?=
 =?utf-8?B?b2NFMTN2dGwwaE5ybWoyQzFnWGxacm8yVk0xbFNoMGhud1MwWlk1RGlCbHN0?=
 =?utf-8?B?cjdaYm9Ka3ROR0NmM3V0M1hFMTVWMVByMnFrTEo2bTM5bkxkR3B2Zz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ea04cee7-acd2-4462-6fc7-08de73be1d2b
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 16:02:30.4394
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: M6dEM5xttLONWD2I/OAcsoTlIft6R9wipfiVXiCK6kU4rhHyAR+qzihU1uNzTLi+s+SiF4WQNL4EEv8gz8HSN0IxS5fC52k4K5F4f2QeOq0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR03MB7418

On 24/02/2026 2:18 pm, Orzel, Michal wrote:
>
> On 24/02/2026 13:45, Andrew Cooper wrote:
>> There's no use creating a typed copy of a macro argument, simply to use it to
>> create a second typed copy.  Remove the indirection, halving the number of
>> local variables created in scope.
>>
>> 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>
>>
>> This also makes them clearly elliglbe for converstion to auto, where they
>> weren't before (typeof expression not being that of the RHS).
>> ---
>>  xen/arch/arm/include/asm/smccc.h | 21 +++++++--------------
>>  1 file changed, 7 insertions(+), 14 deletions(-)
>>
>> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
>> index 347c4526d12a..7e90b0b56550 100644
>> --- a/xen/arch/arm/include/asm/smccc.h
>> +++ b/xen/arch/arm/include/asm/smccc.h
>> @@ -113,39 +113,32 @@ struct arm_smccc_res {
>>      register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0)
>>  
>>  #define __declare_arg_1(a0, a1, res)                        \
>> -    typeof(a1) __a1 = (a1);                                 \
>>      __declare_arg_0(a0, res);                               \
>> -    register typeof(a1)     arg1 ASM_REG(1) = __a1
>> +    register typeof(a1)     arg1 ASM_REG(1) = a1
>>  
>>  #define __declare_arg_2(a0, a1, a2, res)                    \
>> -    typeof(a1) __a1 = (a1);                                 \
>>      __declare_arg_1(a0, a1, res);                           \
>> -    register typeof(a2)     arg2 ASM_REG(2) = __a2
>> +    register typeof(a2)     arg2 ASM_REG(2) = a2
> Here you fix the issue introduced in patch 1/2 :) You drop typeof(a1) and
> replace it with correct typeof(a2).
>
> Provided this patch is rebased on fixed 1/2:
> Reviewed-by: Michal Orzel <michal.orzel@amd.com>

Thanks.  Sadly, ECLAIR rejects this change.  I need to retain the
brackets around the macro parameter after move, so this kind of
incremental diff:

> @@ -114,7 +114,7 @@ struct arm_smccc_res {
>  
>  #define __declare_arg_1(a0, a1, res)                        \
>      __declare_arg_0(a0, res);                               \
> -    register typeof(a1)     arg1 ASM_REG(1) = a1
> +    register typeof(a1)     arg1 ASM_REG(1) = (a1)
>  
>  #define __declare_arg_2(a0, a1, a2, res)                    \
>      __declare_arg_1(a0, a1, res);                           \

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 16:50:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 16:50:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240200.1541669 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuvcF-00025E-Fm; Tue, 24 Feb 2026 16:50:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240200.1541669; Tue, 24 Feb 2026 16:50:31 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuvcF-000257-Cm; Tue, 24 Feb 2026 16:50:31 +0000
Received: by outflank-mailman (input) for mailman id 1240200;
 Tue, 24 Feb 2026 16:50: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=Lz8P=A4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vuvcD-000251-RF
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 16:50:29 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id e92a7051-11a0-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 17:50:24 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DS4PR03MB8155.namprd03.prod.outlook.com (2603:10b6:8:280::19) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 16:50:20 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 16:50: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: e92a7051-11a0-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=BsHvxBEtV4kN6pFw3fxKscTDnpK0nLeyqitaoMtnfg+QKsT8T9okzxOOrJW6t6DFWvcaBm/C2tZ1WmEaQIUT+gTp2iLD0rmCl7Kjdu/HTTPZnZtb7P3+I1sQLxVGlZ1gMFRoplOVK3JxRtVJ4+F4aT1aAuf70G0H3DTpfICbsGQ8wH6QE2DAtvvyl781YZCyquXWH6VS/twK8RqHormaxix3V2/1J65P/pL4wVDwZmVT5P4FMr2Go9qNrfuVI9Xv5qUH8YE2R8iTlk57UTWNfYb47xbHYhgNmyRnLnlGa3nn+TDfvEneTXoWpfZ1aRS3t+8Y+5+H6EZeoPwc6VAfNw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BEdFHD/VQHi8H7CBQ0VuwqAFOocG93JTfG2Mt5YjRyI=;
 b=McXp6XcWIQA/4o2/rTzi2xXy4Il9sl9mnC+zr8EROWKYj3pMCfcpSDqL3RJQVoKlD3aPkIJJuvP6pk3QzERnjGnwO5WbfzbjoKCS5DuHZK6Wlr2vuyZKoIsXAObf5ySID4eCVfzCT5nLlN2/+kfxKkWHjUG9sXGuqNfGzx+xyFZteFemFdYx8dhriUbGx8cSRdOjXdDDQpNq8ZJSjgtRt8mmocnfO7o6Mi3jPEt1LNu6xZIzsr5a7FRYP72Bb8KaVtIU2ZBjQuaTGRMqaqyrSVqbQAiX637dskg1xFGDVAW5l5Ipt7GrCWOdH8J6DvGHMLBKnOFDScbYfHwhp7i4DQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BEdFHD/VQHi8H7CBQ0VuwqAFOocG93JTfG2Mt5YjRyI=;
 b=oRrwu2RRR2jfXsEDx9SWgj01WvavyKeIpNEJwHzkxWJdobjtKy88jQZo8vraYEWxSRd7hSoUY+44O/sOxbU67ukZV4CRgy6v22BHbMRam6pduhIMxNuQ675xy0IsF89ac4xVRkw0xouo0zjggiDzOUf2EAQwTJdA1Ddpv4P5OyU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Date: Tue, 24 Feb 2026 17:50:16 +0100
From: Roger Pau =?utf-8?B?TW9ubsOp?= <roger.pau@citrix.com>
To: Teddy Astie <teddy.astie@vates.tech>
Cc: Xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: SecureBoot requirements regarding Dom0
Message-ID: <aZ3WyMobpVj_o9IQ@macbook.local>
References: <99bb08a4-0872-46e4-b945-3687ca3ebc27@vates.tech>
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <99bb08a4-0872-46e4-b945-3687ca3ebc27@vates.tech>
X-ClientProxiedBy: MR1P264CA0202.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:501:57::19) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DS4PR03MB8155:EE_
X-MS-Office365-Filtering-Correlation-Id: 6e88b857-b08c-4917-51df-08de73c4cb8b
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?NHptOGIyVHpPK1Awa1d3OVM3d1BXVlNWaHRRVG5hVWI0a2RxUHJlVi9qc1p1?=
 =?utf-8?B?UmVFWDkvdmpCcnJGVmV2N05DT1N5Ym9JRCtsT3AvVnVVWGxraXpCSGZyMjIr?=
 =?utf-8?B?cndsSk4zd1BIU3d2YjBXYnV0czZVZWkvTVJ3NTV5NmVnM3pIcXUrWkVkZDZy?=
 =?utf-8?B?T1dScHMrb2drQ3BMZmJ5TXJzMTh1RXdSRW5EbG90T1h4OFlNTmdSTW9yWHI4?=
 =?utf-8?B?Mzd2dTV6bUZFNi9jNHN0YmJSZ0RuOHovRVdXSnVLRlFBcjNtekxrTVlPUTJl?=
 =?utf-8?B?TURCVkVQWEdjOFBEQnFDcEMwV29Ec0Rub2p5dU1FakJEcGw2Y3ZON1RZTytM?=
 =?utf-8?B?Qk5pUFV2bEROR0dNM3o2azRZVWYvQlEvN1VvMFhFendScWdTdmRvSnJocEg5?=
 =?utf-8?B?T1RjRWppWHFVcFMvQkxWRHJlcklYYzJmczIrWUpQbUE1Y21NdDcyUEt5VjZm?=
 =?utf-8?B?eW85b2owYWJSK2pUWm4xYjhnRUtTeGRGZDFVYi93SkhxYmcwVVU3Yi96SVo5?=
 =?utf-8?B?YldHbVRJQ3FSWVo0aFRJRHJIdi9mTjk1NWpaSDlLb3dpcnM0MTlZNG9RNjJD?=
 =?utf-8?B?bFYveUs1eUpxaGhPS0orczlUaG5SNUpSUmFwNGRLemtWVE41d01Sc0E2MkZs?=
 =?utf-8?B?TFFKWkFVd0tVRDVLUFo0QnRCRE5sbW50OVJoeGlaUk1XamFpaENRWG9Va1Ar?=
 =?utf-8?B?MzdsUFNoWStjaWhhQkRTaldJUTYrOTYxd1BCcEswS1I3SDBLQitnOUNBZzJt?=
 =?utf-8?B?L2d1UlREeEVGK1FvenB2L2YwRUxNZGZLbnBzZXM5YkVOZ2VxRW5DNXp1bUV1?=
 =?utf-8?B?TjdmK2d6dVNSK004OFNrMWpnSDZBRlUxeTNYYnBGZ3M0bWJONGdhNEFCblFM?=
 =?utf-8?B?bDZkQlAxREJCczF1QjVFM1JsTlJzQXQ0RXo3SnhUYkgzVElqaUpNTlRKWGRw?=
 =?utf-8?B?V0s1UHozWkhjeUNMeHUwMmNHZVROMkU2aWpsU243OTRNcERRV3ZrbkY0VGV6?=
 =?utf-8?B?VG9IdDFyb3NLQ3NqZWpIQkhUUWRmMFM3amhjejBuWm43T05LTDN4aTc3SGpH?=
 =?utf-8?B?akVWdmUyQzNYa21haDAydEhLLzhsOWZ1cW8xUFo1NVZSZ3V6Qis1cDF3UDVp?=
 =?utf-8?B?WWhoQmpBUEx5amZSdEtDOGxETG5qRVRnbUdkNGdoeFphcHJlRjJZeVpSVUJW?=
 =?utf-8?B?dDZCTzJtR2JZVlExWktXNjhmK2hNWStTY2VPUE15VmJKWGh6NFJpZko5dDUw?=
 =?utf-8?B?L3djazBkeE1zQXpvRUMvaW5CelpvbU1VVVlhTy9OSmorM3ludTZqUUlGVzRX?=
 =?utf-8?B?ckRCRVJDemI2c1RaSXJXR25QbmpGRTBBaHBlUVdOeHhJamRGcWl4YlRWcE5L?=
 =?utf-8?B?TDUvN3BPckZrMCtzUG5nVXJRamxWK0UvY0pGbUxSbWRTdklpWVpWQzZjcThN?=
 =?utf-8?B?TUpWdWZicnFiamZralVKUUpxd3BxZ0VMUENmaVdUOVRoZXpEWTZ3RFl3Z2Fu?=
 =?utf-8?B?SUF3ZjRGNmpsTFlnbUtma1FJWDYzNU94YklrQ2hiVDVBZnhmdkVydng4Rmtn?=
 =?utf-8?B?Sm5mN0x3bTBROHg3WDdyYTFuTEVWd2pJOStrNnY2L2ZEWGhGUjNiOHpjTTEv?=
 =?utf-8?B?QTExYkxBSkl1WHZkYXB2bnBIVFl2aWRkbDN2ZFBWMFh0NVRrSDZsUFZiS0NS?=
 =?utf-8?B?R2ZVbnpPc2I1VlZCQmhlazNaem1ScnQ1NzhTQ0V2d2U5cjJ2N2tDZDk1by9M?=
 =?utf-8?B?dUVJUkF1VlZueXNra0c1cFhyTWQrOWU1TkpGVkpXWTJkM0JxdkFlWnRabDZh?=
 =?utf-8?B?ZDZqejdTVU8vckdsLzlZZmszbkZjVUluRmc4MU5UOVkzWmFySnZqanB0Zits?=
 =?utf-8?B?TzZ4V29yWnBOUWN2M1hVQXFlUlNibVUzM2xhZDVwR2NwYTNtZExMb0ZoanMw?=
 =?utf-8?B?NnY3NmM5MkNRVmE2WmlRdWxaMFk4TE5hVytOT1AzNklwTHJBWFRFcnB6Z2RB?=
 =?utf-8?B?NXBnQU9yT1hCUE5pUnVVUlNDSVVOd3NqdHl1YTUwQ2ZiWnNBRG1ibmR0ODhL?=
 =?utf-8?Q?TW7yzv?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?bGFiTG1XQjJLRzVYUHBYYVJCekIvVTc2MWIvVGEwY0tYb3pWMjNLRWJIb0Mz?=
 =?utf-8?B?ZXBjYjhyZEVpUGFqMFVDRjlDZTdUMU5zdzZOWVJCYlIvaE1BL0tGTUwyN0RS?=
 =?utf-8?B?K3ExQ1VJVXptUnRTNVllcUgwdzNjelFGbnR0Nk5sYmkvTEJoV3IrSzY3bGlh?=
 =?utf-8?B?dGtwOC84bk5BUG9XRzA5dlhNMjhTT2JPK1c0cnNmUk5YWWlweUk4dmhJSWZM?=
 =?utf-8?B?REhIQ0t6VnErRHh0ZmdhYkcxMXAzNlVlQWRpb2pkWDhzUzh2VVQ4bVNSejZr?=
 =?utf-8?B?cklxWU5CS2ZtYXVSY09rVjlxallqTGMvRVlCdUxMQWFodS9VZU9DYy9zb3pD?=
 =?utf-8?B?dEVYeCtsSWlhYklTRlpYelNNV2hlNW1GN2o1WHUvK2RTa1l6SThFV0JrYUo3?=
 =?utf-8?B?d3dRazhWK2RLZ0RhNUcrV0dXY2g1SlBtK1p4TXB0dEl6a1k5bVkzRG1heDla?=
 =?utf-8?B?WlRGNGh4bHlEN01MU0NlUGJsN2R6SmUxSlN2b2FtNGxodHBQOEhQR3NuYklH?=
 =?utf-8?B?NmEwK2tpV3dHaVVNUnBLQkxUYVdxUnJSa1gwVzdIdGFpRWlEczEyalU4OTZq?=
 =?utf-8?B?TnoxMDBXNFNWbkxOSm8xYzB3SXJNQWZOa09rUUd4Sm9POGgwV1YzejFreUlu?=
 =?utf-8?B?UGV5WWEwWmc2bVFhOEZlQTBZZW1Wdjc2TEFpNWEyM1IyZzRIb1V5eGQ2TGRt?=
 =?utf-8?B?c1l0aWk0M2kxc3dpUnU4VTBuN2VyQ3Z6Y0pjdHhKeWs3OWNEdlBtMHQzTW11?=
 =?utf-8?B?LzNiL29GMzdubXVHV0c1Ry9jRDREQys2THJHQVNzN040azBjNFJqcEN4d3hs?=
 =?utf-8?B?NDdvam8xMDIwSklYZk9TVVZaOVR4aUhpU0ppeVJPWlplczB3ZWpsVWpHMi9I?=
 =?utf-8?B?TGRZQUxkcEN6Tys3L1ZyZjFIQ29sNitTcTlxQVlCZVVyRCt1UTZrLzFDMzRp?=
 =?utf-8?B?cEg4eUZKMGZwVFpUaVRGTlgyKzdSNERCeHZ6QjVkTkFFR21WanJTa2l2QzFp?=
 =?utf-8?B?a2RVY3hwVlZVelBicFVIR3o1Q3hUcUNtOE5KNnBKQXJhUHh1bE9Tb2JWYmJB?=
 =?utf-8?B?SHB0RjQydUJ6V2NPSGllTHhIdTdpTW8zZHI2MkJldmhKMWhBMFd1YXlGS1Fu?=
 =?utf-8?B?M1h5dElDTzVSdnpMSkZpTW1TK3FVcmcxTHM4akltQ3U0RG1XWnVLYkRFSWVN?=
 =?utf-8?B?VnJwRFhSNDM4ZW9DV0dLZUoxbWdlZDFmeWcyVUFWR3Bpb0tVNUJHTU1QS0J5?=
 =?utf-8?B?cUM5THp5aXIrVjBnK0pCOWlRd0tncFdtUVFXVXFxMk54ZWRYK0dBRm9RSC9W?=
 =?utf-8?B?R21FRHRSblBPMkNCOGpiTGNWOTJ2VEhvbHZLSzkwWnQrM1dXZ3M0MmM3R0pN?=
 =?utf-8?B?VVRVVGlXaHcydWF6NDZtWnB3U0psbXdNa1hGQVQvQkJWLzkwdFJMckowRGdY?=
 =?utf-8?B?Q1ZVZW5NanY0TEVoVWQydXVuckg3b1RqMGZnOHdKRTRNSzllQnZmTEpiYy9E?=
 =?utf-8?B?YjZqWVV4QW00eW55TlJUK3ZwMittVDlrWFNvSFg0TW1lQU44WXJ3dzZZMGZv?=
 =?utf-8?B?UGU5dURUdjFKNnlCUStJYzZZM3ZodlBjOXlScmJ4d3ZjYTlEZkJzcTBpSC9L?=
 =?utf-8?B?MERMNldkaTZtV0tmbGM5bG56bVI3MnNUbGdIUTh5d2VYSDFxaTJUT1pIU1Rl?=
 =?utf-8?B?TTFoSGZrR3Z0VXBJRTZORWhBV3ZHQ1FEMisxdFpITEFjMHA5MW5IZ0Yvd255?=
 =?utf-8?B?K1ZzS3ZBQlduRjFlejVORXlGdDdRS0x0cDFyVzBVOHNHL0h1bnlsV2pTalRQ?=
 =?utf-8?B?UlF0NW1QbkZ1RklWOFFKMkdBUUx2Vm1CZjR4eXRiNzQxYitBQzJSaDhHaW9r?=
 =?utf-8?B?blc3aXVWM0d5UkJXZVdjMWNmMksyMmoyMGZCR1dEbkpiMjdpdnBNNmNoaEtT?=
 =?utf-8?B?YmdKQTBJQmVaVG8vR2VpMTJDeC80YUxvb0t6QlZZZThhK2VVTm1yaWp0ZHlw?=
 =?utf-8?B?SUp5UUR6KzBzbDhkMmVhSUhrQlJRazVIVXA5QTRIamcxakZ0YnJVYncrbEN4?=
 =?utf-8?B?T0xIWnZySWtESzRHWTVHekYwMGRvVm1jTmlMTmpVMk1DOFdWU1ZHMUovVjgx?=
 =?utf-8?B?QkJFWkhYS05LM3FQUDlmY3kzY0R6N0dLTEwrazF1R01UbW93NGlWQkFRMDR6?=
 =?utf-8?B?NkZrbDd2R0dMK1M5c0loUTVTRVhFY2F5Wmh1VzlESFF0OC9VMkk4eXB6YkI3?=
 =?utf-8?B?Z1FKZXY4RFNrZVhWN0VOTXVMNVdzLzVUR3gwdWhuM2h0b2xiNGRVeFNSVzg4?=
 =?utf-8?B?T0FId05yWnRsL2hMaFNoNTdEY2VUYnBNcDFZeVNnZEh5ZDgyUTBHUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 6e88b857-b08c-4917-51df-08de73c4cb8b
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 16:50:20.1053
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: rAgx8DTgFA5UkFLwFUcYH+uGxiKE7+K9pDSx92Q66+vmjn69TxzDVLAbUSD+wvFzRG3X7bwgLAsSK3PCJHEHQw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8155

On Mon, Feb 23, 2026 at 01:42:39PM +0000, Teddy Astie wrote:
> I have some questions regarding SecureBoot and Xen.
> The only document that appears to define some sort of policy between Xen 
> and SecureBoot is this one 
> https://andrewcoop-xen.readthedocs.io/en/docs-secureboot/admin-guide/uefi-secure-boot.html.
> That is also similar to discussions made in SecureBoot-related talks.
> 
>  > Within the Xen architecture, Xen, the control domain and hardware 
> domain share responsibility for running and administering the platform. 
> This makes their kernels privileged as far as Secure Boot is concerned.
> 
> Why does SecureBoot needs to expand to Dom0 kernel ? If you e.g restrict 
> DMA through IOMMU and restrict some key hypercalls like kexec (among 
> some others), Dom0 shouldn't be able to compromise Xen (in principle); 
> hence can't escape SecureBoot boundaries.
> 
> SecureBoot doesn't appears to require preventing device access from 
> "unprivileged code" otherwise VFIO wouldn't be allowed under SecureBoot. 
> But such device access still needs to be contained (e.g through IOMMU 
> enforcement), that's something Xen already supports (e.g 
> dom0-iommu=strict / PVH Dom0).

What about the platform operations that deal with runtime services?
Those could mess up with the firmware, and are available to dom0.  Not
allowing dom0 to use those might result in a crippled dom0, for
example not being able to change the boot entries.

dom0 also gets access to (almost) all the IO ports and IO mem space,
plus also unmediated access to almost all the PCI config space, which
includes access to the root complex registers.

Or another example, the low 1M is accessible by a PV dom0 as IO memory
IIRC.  That's also where Xen places the AP startup trampoline.  Dom0
could modify that region and thus inject malicious code directly into
the AP startup path.  Then doing CPU unplug and hotplug would execute
that injected code.  We should probably adjust that in
dom0_setup_permissions() so dom0 cannot map the trampilone page, but
this is just an example of possibly many places dom0 has traditionally
been considered trusted, and that would likely be against a sane
Secure Boot policy.

> In that case, devices are only allowed to access Dom0, but can't access 
> outside of it.
> 
>  From a technical standpoint, PVH Dom0 setups (and also PV Dom0 
> depending on configuration) acts very similarly to a SecureBoot-able 
> Linux kernel which runs a KVM virtual machine with all host devices 
> passed-through it (using vfio-pci).

As said above - there's a bit more to it.

I'm not saying it can be done, but we are certainly not there yet.
And we don't even know exactly what would need limiting, due to the
assumption always been made about dom0 being trusted.

Regards, Roger.


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 17:10:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 17:10:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240213.1541680 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuvvI-00056T-RA; Tue, 24 Feb 2026 17:10:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240213.1541680; Tue, 24 Feb 2026 17:10: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 1vuvvI-00056M-OE; Tue, 24 Feb 2026 17:10:12 +0000
Received: by outflank-mailman (input) for mailman id 1240213;
 Tue, 24 Feb 2026 17:10: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=dCRR=A4=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vuvvG-00056G-Na
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 17:10:10 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id ab3d29ca-11a3-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 18:10:09 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by LV3PR03MB7585.namprd03.prod.outlook.com (2603:10b6:408:28c::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 17:10:04 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 17:10: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: ab3d29ca-11a3-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SAFuwMhZeIjUVD2m2N5nC6+Uux33d4cNxpmHHH/Cge08ZeZaVq3JREX1xvcv5SRkHZDWYO3s0BK2mTcYESFfUV41xoMkt5qK0zc+IADEwMh/AT1XQr1E5lZEcbkW2l1Ws/2+E8/iGiorTNMIIzZQo90D6v+AQUadnyzw3mNs/glPszc7rmRVEou1f6lMjbo5RWIj7KuRSLM8MItZgDvQJHvuXSd9J2OtBcdCmPqPQE6QKhzpGqpIlzn9tw1qp4uMLbGZ3b41fEy7Zg6gZYiJD86qfQGvoxm+Gzt5c0TSgHzDzQCfC62RjMct9/1uKB77bs7bJCL1wUztvJkBM9sqGw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=BJRA6mIJs0flmJtp3knxTSkZbCXND5BJUCKXBSfEPBw=;
 b=FkN7DYgoFdolcoQm2TYrKccAft7qDLPucuqJILmFFum6GTeMbI1syepnb01I58hWbx6T2wpM/HnnA+K23jXWwQEOXTXAucjmm0rWhZyVLLmuHjJPmmVTmxFGTCK8suDdiuo0qH2ZsKHxHgZ91Je9sair9AzDlfx5EhoKXK50RrS5ouniKLkOmx1GMigTqNJDVvF37MfV6dp4BvJawWWO3QXigOkpFcN56mTXSFCM7OSje217XqpMNkp4jtdh1XFK10J8aDthU5yMI9wJO3RcRD1IFXthWWNx6t0nttjtgRrHOq4jbOsa9oyNsETZng2Qa90A38khT3EjEtminwFdww==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=BJRA6mIJs0flmJtp3knxTSkZbCXND5BJUCKXBSfEPBw=;
 b=0qronFArfQ+bgWr+zCD98aLW5S185xjzeK15TeJm7nNZfAg8oebycOoS48Xhv7hWL2wHn4z+47Jtms/E3BaNx1Bc5YwwaKNhnpMPFBIV3ZvPYtdwX4mJ8/7PwuXgZS3dR5dVMExrYwCJ7QOi/gFHNwShB0OS73UCPSQ4u3jRV9g=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <d550ae3d-02bf-43eb-a96c-b7cc946f79a9@citrix.com>
Date: Tue, 24 Feb 2026 17:10:00 +0000
User-Agent: Mozilla Thunderbird
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>
Subject: Re: [PATCH 2/2] xen/arm: Simplify type handling for SMCCC
 declarations
To: "Orzel, Michal" <michal.orzel@amd.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260224124558.3675278-1-andrew.cooper3@citrix.com>
 <20260224124558.3675278-3-andrew.cooper3@citrix.com>
 <261af40e-db79-477a-b67d-1af7428782d4@amd.com>
 <f8a0d742-18f1-48bd-841b-1943fcb632d5@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f8a0d742-18f1-48bd-841b-1943fcb632d5@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0391.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:f::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|LV3PR03MB7585:EE_
X-MS-Office365-Filtering-Correlation-Id: cddb651a-7f59-454b-a56c-08de73c78d60
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?M29jbVR2SldYMFZ2RGVvR0hKMEp0ZXZhVldvOHhPRER5ZGF2dmtya3hQTDdv?=
 =?utf-8?B?Y2tMeFR3TUNLc3ErOHZQSkNMTUY1Q09ROVQ0N2VPc3l0NVFLVE1pRkpNT05B?=
 =?utf-8?B?a053cUk4MDducXV3WTBXQmU5cjZzVkJZUnpXSDNXTWRwSWM0NzBHdHJGeEpG?=
 =?utf-8?B?Qms3aU15NnEvQXhWUUg5Wk1DQWF6UGpXdExWYmJtWWJscklPYjMvZSt0aXRI?=
 =?utf-8?B?TUFpSDhzSG5jQzNQZStob0p5WHlLeUFlTnJpOVRySzR4aE9LN05nMTl2MjM1?=
 =?utf-8?B?SWI1bmpOdHRnR2R6cFk3UlRseU0zOXpDeTBBbDJYbjNKTkZBbEg2V0lqbXNu?=
 =?utf-8?B?VnFWNytQSE1nRkVQZ2t3Z0ROVUk5NzQ0bnBWc3gzV3dReUtHR1BzcytFbkRX?=
 =?utf-8?B?R3BqT3JLQlo1RXdNTUZmdE11Ti96Nkh6ckx4MEI3UXlXNS9DZStWTDlzZFZp?=
 =?utf-8?B?N2l3ZUluU1J2L21yaTN4M3VUT0FhbHN3TVN0TElSeGVoc1Q0dzFDZVZsQ2pv?=
 =?utf-8?B?VjRQWXpiN3J2anNZYmwzekVKUVd0emVQWHQvei85UGZtdkVJR1hIaCtGZ082?=
 =?utf-8?B?OG05cGlUYXl3MVliUzFGdTFVL3BETnBVYmY2NlhvaGNTMXRCOXdOYkNqSERW?=
 =?utf-8?B?TTFoblRmN2E3SWRucFRyM2hZT2JLeDlFaXA1YWxvaEpDZDR1dVpaaityY01z?=
 =?utf-8?B?MTJLaHRVRVNzNUFPSUhHVHh2eFRYM2Y0RG9nUXpFNXhHOUxEVWFhVFVMTGE2?=
 =?utf-8?B?M1pydVQ0Tm9LZk9JUU9WOGJESGVCc0JId05ZbDVHeWpkak1aUFg3TUdZd1Bu?=
 =?utf-8?B?a1o4MUpRU1pDUTA2dVY2aXFIdlRvQU8zUkZHa1cxMEYrT2czSHk1bW9sd2t0?=
 =?utf-8?B?TWFVU0VNV1JucDk5QzJYbVQyT0tBVnpXZkVFMHAyTGR2K1VZdnRCbXFxQnI5?=
 =?utf-8?B?VHc0QXpXOVRoRytxbGdXaEJ1akQ3QzBocTk2RWJYMVg4N1JMN0NuN25KWHhL?=
 =?utf-8?B?WDJmNmpzQm0zWmoxM295RVlzV1F0TnlzSVB4MUZzcjZJMWMzbE9BL05jYWRG?=
 =?utf-8?B?dEtBWTFLTHp1aXhad3dCMHVaQ29yeWlNUHlOb2JLQjRlcVlWbVBBcnJKbnow?=
 =?utf-8?B?ZkpKd2VvQkJDR3YrRzN2MzVXams5aEgvV3lvRlhxYXZpM05kZk1oZjE5SDBJ?=
 =?utf-8?B?OVp0ZHdQZDRtdUtmSGpjdEhCSStKMk9pN3A4Z203WnNlOHlxTDdzRW9rNURB?=
 =?utf-8?B?TmFCSVhFbkpZdXc0M2pNbFcyV251ZHYvcUpnaC9ZSEk1amdXcTdRVzcwUlUr?=
 =?utf-8?B?c3FSc1RUSEZubmRBZXBLenRsclB6SjdWKysxcXc5Zno2dStWaElBVDRndTlF?=
 =?utf-8?B?WnhtVG1admVMajhoOGJ2WEdhODNEQ29nUFppNTB1VGg1WkY2VEhNS08yV3g3?=
 =?utf-8?B?a2FaRmpwZ3cxU3U5RkYwZlkxUWVzbThpZjVialZMKy9IREpyNzNZNGFaZS9i?=
 =?utf-8?B?V2Vic3JPVlhpMTBmditSbHc5eHJ0b0FYcXVwRHovbE5QcG94MzJMYmlZRFZr?=
 =?utf-8?B?VThoTDNDZ3ErVDA5VHFIZkpsNlIrb3NZOHhhM0pCZDRDbFZFeEpJR1doTnNP?=
 =?utf-8?B?RHM4ZmtyM21WbGM0OHVJQUpTbjUxT3FYeE8zVEFoRXNpWEk5Y3FGOU9iSGk4?=
 =?utf-8?B?UHlYZU52clB5L1phYWJEZFZrd0w0eElTcVFjQk5hejVlbWZOTThQTi9GUWlx?=
 =?utf-8?B?WWNZdi92NzltekJiYTBrN0NsRllKV2wzQVA5TDRGNEVzcmlRd0VhY0cxV1B4?=
 =?utf-8?B?RGRIR2pXOHRVVGVQVUdhRTQxZnZPRE41MDZXWHJzK0JLRXlnVzVyclUxTUlu?=
 =?utf-8?B?VkFCWXMxR1hMUkFCS3U5UlgrdVd3TkxhYVhXQ1pBdUQyMkNxUmw0STluMmpO?=
 =?utf-8?B?ck9yZXMyNUdpdGxmai9sQnpJWHdnR01rNXZ5VDQrTUxjTjlTeVpzQTJhcDkw?=
 =?utf-8?B?UzZjYTBOT2JLRVYyMjNOMWFmUU1reTd6SUR6THZYSWRpVkI3QnVJMEdlV3Fp?=
 =?utf-8?B?UXYyS3ZQa1dHWlo3K3R6aklPTkhoRlFvY3BHUE5EekJQMWJaU2hHQ3ZBNDZD?=
 =?utf-8?Q?nFoY=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TWhuK2VETWw2OVFjSXpkeTRLVHp5MVVWc2hWZmQ0NzlvT1JZdkdNUjZGRkdT?=
 =?utf-8?B?ak1mNk5TY0Y4ZGY2MEFveFFrWGoxY3lMcUN3Qnoxd2RydVl3QnpxMUVXZ3Ns?=
 =?utf-8?B?c1pFc3RnYnV6QzBYcDN6QmlBQkhNRStwMkRNVHlzU3RsdkVqVkN4aE9jVjlr?=
 =?utf-8?B?eDBrbHo5N2U3ME5QQ2NNRUpER3U2UWM4ZG1jSjlKUXlSRERwS0tYbSs5T05I?=
 =?utf-8?B?WERydncxUTF3cVA4WWpTN0g5andqa1RKRURCQUlHSldtZ24wZTU5UEtzVFZs?=
 =?utf-8?B?ak1rMGdJOXRyZzdQYXhPQmRxdjZRNy9TRGZDMHNrc1lrZHM0UWdiTkJ6WUVR?=
 =?utf-8?B?QmFPTnBSVEc4UFM5cTh6L2hpWU5mUGh1eDFVSDc4ZmNobXlNb0Q3OFBHeDFm?=
 =?utf-8?B?R2w1ZzA2ZFhJb2RxQVpKc05Ra0ErWW5YVHNOTFR1SVdaZmF2TFZOYk5VV3NY?=
 =?utf-8?B?MTgzNjBxYWM5SE9lL0pvWkYraUM2WEhIVEE3TlFHTGIzZk5SWEJweXVTNDBB?=
 =?utf-8?B?bzEzVktRdHZXOGc1T081R2NFSU1pLzFRNVJMMHh5aE00MWRDQ2Z0aUVJYVVp?=
 =?utf-8?B?THFvZHd3azBobnpQM1hDUS9kd1ZQcTl2NzF2Vnp3dTZCN0kxQnFoN2Zrc2Vu?=
 =?utf-8?B?WTg3T0o2U3NiOXFRbHY1TlhrYm5aNDFyd3FWZjFWRVdoL0gwcFN3TGJzWlFm?=
 =?utf-8?B?SFVpZkt4cU5ZamhPbE5yNitkMWxvMEx2bk1Dc09rdjU2N3dRZ1hUTWYzWndv?=
 =?utf-8?B?cWdoT2sxOU82QzluU01lS0RRWCtsTk12OWFyQ2NsOTlBY3E1bkpKSHFxRmtY?=
 =?utf-8?B?SGFzWFFUNGZJd2hRQUFUUHVtMklod2RyS0ExS2JlMEN5LyttQ3E5VUZUeDFw?=
 =?utf-8?B?OFZiODVMbDBmODIxSzN1QmFUNjRxL0YyWDdTZjJKcU04dmFCNmRPcTNoNjFV?=
 =?utf-8?B?d1Z5NlpVUGQzUHZ5RzJjMThBWkZjRnZudFNqdm5sa0FhNSs1WWZ6WisyWDEz?=
 =?utf-8?B?aldyQ2VnNjBSZWhuMU9xOUE0b3ZOdHZsNkdkMmFhTVFnYWtWSHd2TjhPU2k5?=
 =?utf-8?B?WUMwd2lCMy9ZUHdNaFBCNDJva3ZKVjNMc0R3Sis4Zm9QSzdhOGhWRTAvZDk2?=
 =?utf-8?B?NEtYelRMcUh2am1icTdCTExkVm9NM1Y3MEF0TVpsUlAza0hmcmpabDE2ZXIz?=
 =?utf-8?B?amxvY3FxV0RCeHZTQjluZjZYTmFaNjR6RHY0Q2RPb2F3YXpGazdhbVRqdko1?=
 =?utf-8?B?c242cVBrSHpSQ28yWVUzWUk4aU04UkVYaHAvSWR0cDBpWFQ4YUpMSWgrcUpQ?=
 =?utf-8?B?NGNXakNBOVI3cmpUOGcwUmhlc2UxNVhXbWprZUtGV2FrNmlVSUlHeFRTanhH?=
 =?utf-8?B?WVBtQTdZN1ZLMzdoeTQrRXozVVJDNGJNcXdEdU1ZMkliK29SaEp4N2FFdmRi?=
 =?utf-8?B?MDA4NEtDd0lmNENpMFVtN2NkM0NJcFBKK0RQRzNFaDdFdU1INUc2bkU0L3Jy?=
 =?utf-8?B?dkQxbmpldEJ1a2FrVy84aUtrS2s5dVJoc1FVbytQcXlySWpIZGhDdWFrS1BZ?=
 =?utf-8?B?WDlzdnA0ckx2YnBCczM2LytWVkl2Z21jbmdLSC9jQXFxWnM3S0c4NVNLUndI?=
 =?utf-8?B?TGtWdG53T1h6ZzZ6dExxVklSa1FEcldweWtid3V2UTAzam5HS1ZxNndIREl5?=
 =?utf-8?B?UFE5eEdCM1U2ZWJoZEpueXBmZUxFT05pbE9SMDRCSTZHTFo1WVJOelZnT0Vn?=
 =?utf-8?B?UXhuYUdNaHIra0JUYjBhY25yOFVXbEVDeWZ4RW9VL0lNU1JKaVdQREpqaFBw?=
 =?utf-8?B?bFpUYmtSRG91Q0NDNmYyeFZmTS9IWk91MGVyamcwTHM3NjY2OGhkVGs0MEVJ?=
 =?utf-8?B?d3U2RFg4OE5VZ0ZqZHdieWMyYkMyL3BaVkIyNjRBMnhCNERoNzRFMndrd0Nx?=
 =?utf-8?B?N3AvTUZLcGVzWXdEY3JNZVJGVE11Z1hDR04vdmNOZmpYR0NZYW5oSS9VcGw3?=
 =?utf-8?B?STd2QTNvaHN0UHE5VlRSTi90RUdYaDZhSVhScExWOURoM0FtRnJQK3BKTFoz?=
 =?utf-8?B?N3YxN1JMMHRtWFZKTzdoUjF6WU9QcVZYaUR0SWtBRW9zU3Bla3BLdGZySHFD?=
 =?utf-8?B?bDB2OWlaY0l0NnVMV3doUTcvY004aUlyNmhjMlVuRitIMko0Sk9EM0V5bTQ3?=
 =?utf-8?B?R3l0N3JIempvcStSWC92eGdKSjNPMzJCWEZVMVBIZEUwRVVRZzdMVkRGUFIw?=
 =?utf-8?B?N3pVSVdlWmRBQ21UZmRHbGNFNnM3d2M5ZmxLeDRuR1pDNzlLRG1OZXJkV3Ba?=
 =?utf-8?B?VzFrMWNHamhENEU5bDZackhIL3MxVkRNS2tDMFh4bThXd2UxTkw2OUVQeUVS?=
 =?utf-8?Q?aq8AjMdHVprsxAwI=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cddb651a-7f59-454b-a56c-08de73c78d60
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 17:10:04.1378
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: T5TjATuUdyzzci3rpaHvvCMBUnUYvxNZ0kGnboMrgUXCPORZptAp2KtU0DvgSgHtA6aY59qhp8i80OmbGFupb7NSg30S6JTuq9p/dO997xA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR03MB7585

On 24/02/2026 4:02 pm, Andrew Cooper wrote:
> On 24/02/2026 2:18 pm, Orzel, Michal wrote:
>> On 24/02/2026 13:45, Andrew Cooper wrote:
>>> There's no use creating a typed copy of a macro argument, simply to use it to
>>> create a second typed copy.  Remove the indirection, halving the number of
>>> local variables created in scope.
>>>
>>> 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>
>>>
>>> This also makes them clearly elliglbe for converstion to auto, where they
>>> weren't before (typeof expression not being that of the RHS).
>>> ---
>>>  xen/arch/arm/include/asm/smccc.h | 21 +++++++--------------
>>>  1 file changed, 7 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/xen/arch/arm/include/asm/smccc.h b/xen/arch/arm/include/asm/smccc.h
>>> index 347c4526d12a..7e90b0b56550 100644
>>> --- a/xen/arch/arm/include/asm/smccc.h
>>> +++ b/xen/arch/arm/include/asm/smccc.h
>>> @@ -113,39 +113,32 @@ struct arm_smccc_res {
>>>      register unsigned long  arg0 ASM_REG(0) = (uint32_t)(a0)
>>>  
>>>  #define __declare_arg_1(a0, a1, res)                        \
>>> -    typeof(a1) __a1 = (a1);                                 \
>>>      __declare_arg_0(a0, res);                               \
>>> -    register typeof(a1)     arg1 ASM_REG(1) = __a1
>>> +    register typeof(a1)     arg1 ASM_REG(1) = a1
>>>  
>>>  #define __declare_arg_2(a0, a1, a2, res)                    \
>>> -    typeof(a1) __a1 = (a1);                                 \
>>>      __declare_arg_1(a0, a1, res);                           \
>>> -    register typeof(a2)     arg2 ASM_REG(2) = __a2
>>> +    register typeof(a2)     arg2 ASM_REG(2) = a2
>> Here you fix the issue introduced in patch 1/2 :) You drop typeof(a1) and
>> replace it with correct typeof(a2).
>>
>> Provided this patch is rebased on fixed 1/2:
>> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
> Thanks.  Sadly, ECLAIR rejects this change.  I need to retain the
> brackets around the macro parameter after move, so this kind of
> incremental diff:
>
>> @@ -114,7 +114,7 @@ struct arm_smccc_res {
>>  
>>  #define __declare_arg_1(a0, a1, res)                        \
>>      __declare_arg_0(a0, res);                               \
>> -    register typeof(a1)     arg1 ASM_REG(1) = a1
>> +    register typeof(a1)     arg1 ASM_REG(1) = (a1)
>>  
>>  #define __declare_arg_2(a0, a1, a2, res)                    \
>>      __declare_arg_1(a0, a1, res);                           \

Passing pipeline:

https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/13244194836

~Andrew


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 19:21:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 19:21:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240245.1541694 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuxyB-0004hE-Og; Tue, 24 Feb 2026 19:21:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240245.1541694; Tue, 24 Feb 2026 19:21:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuxyB-0004h7-Lz; Tue, 24 Feb 2026 19:21:19 +0000
Received: by outflank-mailman (input) for mailman id 1240245;
 Tue, 24 Feb 2026 19:21: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=LNA7=A4=oracle.com=martin.petersen@srs-se1.protection.inumbo.net>)
 id 1vuxyA-0004h1-6Y
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 19:21:18 +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 f9a649b4-11b5-11f1-9ccf-f158ae23cfc8;
 Tue, 24 Feb 2026 20:21:12 +0100 (CET)
Received: from pps.filterd (m0333521.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id
 61OIu0Wq359748; Tue, 24 Feb 2026 19:20:58 GMT
Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta02.appoci.oracle.com [147.154.18.20])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4cf3m7vw94-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 24 Feb 2026 19:20:57 +0000 (GMT)
Received: from pps.filterd
 (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)
 with ESMTP id 61OJ0IYL012544; Tue, 24 Feb 2026 19:20:56 GMT
Received: from ch4pr04cu002.outbound.protection.outlook.com
 (mail-northcentralusazon11013014.outbound.protection.outlook.com
 [40.107.201.14])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 4cf35ec6d5-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Tue, 24 Feb 2026 19:20:56 +0000
Received: from DS7PR10MB5344.namprd10.prod.outlook.com (2603:10b6:5:3ab::6) by
 CH3PR10MB6836.namprd10.prod.outlook.com (2603:10b6:610:14f::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 19:20:50 +0000
Received: from DS7PR10MB5344.namprd10.prod.outlook.com
 ([fe80::21c0:ebf5:641:3dee]) by DS7PR10MB5344.namprd10.prod.outlook.com
 ([fe80::21c0:ebf5:641:3dee%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 19:20: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: f9a649b4-11b5-11f1-9ccf-f158ae23cfc8
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=IgsceM7KoVsQTOcEoy
	KK1bM3/3qbvrJtkeBWprSgzgY=; b=g0PomlG+7WGXomb4LeEEkT8ZLFyPvlUufZ
	nULEAVe64Pmfe4hlF1X+/O2yYy0paDr3ujMaaJE5KeXCiE0jBFJI4P4qoe1tg/Jm
	e+noji21Sg+O+fyzY2YtA4A1rGfBAHZOS0iTiYeyI7eBnAK2m3Ru6a9aDPU3DTMo
	mbub/jQXc1n3GeG9zbpmNUdQY17VBX/XQm6YF1wpg/nlkwvzkB5M0Qla+/IBvpk5
	03GaZKvXt8fwEEi9s4SzkOu1fSTgURoKLeLLexC6EOM7mz3eiNAzmmlCy45KugGx
	oqfsdyXMo+XqoG55Wn4ndsTdimmosKT9BFaCWNzuM5P2HbmtftUg==
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=COfwCAKromz9rVOiiOuNKjjZnvCORSTMIggEk1KTpwFt4IcQNPKtRCJKV+reP3f8z7DmzIwbhiEIwn41YyVE2I5Nosvm4Yh6qNa5P0+5jPYGiqq9QEZKi1iIBe+Iu7zErNAbBn4LGAqGem28kKSLmFcoKZvDgiVBIY2cceSKj/BlzJdcsmDzXMfV4EbtdeDYn94fmj5dOrW1NCLKynpLchJjbfRJ7MhKOkMfpF8WM4abW5vEWDefspUUvdBuG1+CrMc9nQkuFgvylUVmnJSaaIdtf/+JXRIIx3Fww7+fxBWCDI3cq89YSigHngN2QqC5Rqo7hphw+Tz2wo+PP/9XaA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=IgsceM7KoVsQTOcEoyKK1bM3/3qbvrJtkeBWprSgzgY=;
 b=FbihNHgxh41Rag6s0tnLOsNHLYG9jYO62Q5kb2wHkfs+/jM7bu1Y1TLMTbfF9j5XZZbZCWL8ekTIeJC/2FLYR9qCV9fLGgN5h03nbtGkz/Xbj/P+hEq7Ql0pBfili5CJjVMOdXORaIqFPkCdgq0qGswCwZlQsUtg/Ajje0wBvufMbRfA08bqIACwPpEgkhvxU7L36fmrvZXHM4BML5KTAcQ+EX70SUqspdBAoMG0jQZjzx7S96D35pYatQU1HNcFuZDZEsY5uSvuzUXhtBhduB970ZAaiT/SbNezhHb03Nchdb96RpcfPL6wDYBFgceiGLlw2CS438VeLHtcm5CT1A==
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=IgsceM7KoVsQTOcEoyKK1bM3/3qbvrJtkeBWprSgzgY=;
 b=m/9aqNNVHq0LsSr4xaRYCHUEeDH3J2420lELYPe2Oqzz/Ne8E4Te1krdSskmrj07TsQnl1/6SATKaVJo+tNw2rT5tlDWpNSD+cOmbKAajlfYx77Nl3OwEVYbkMov5shkNjmLVcinHHbgx35HDpl1qP1Vm9OF+oMThsLCOguNoPk=
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
        linux-pci@vger.kernel.org, linux-scsi@vger.kernel.org,
        Stefano
 Stabellini <sstabellini@kernel.org>,
        Oleksandr Tyshchenko
 <oleksandr_tyshchenko@epam.com>,
        Andrew Lunn <andrew+netdev@lunn.ch>,
        "David S. Miller" <davem@davemloft.net>,
        Eric Dumazet
 <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,
        Paolo Abeni
 <pabeni@redhat.com>, Bjorn Helgaas <bhelgaas@google.com>,
        "James E.J.
 Bottomley" <James.Bottomley@HansenPartnership.com>,
        "Martin K. Petersen"
 <martin.petersen@oracle.com>,
        xen-devel@lists.xenproject.org,
        Marek
 =?utf-8?Q?Marczykowski-G=C3=B3recki?= <marmarek@invisiblethingslab.com>
Subject: Re: [PATCH v2 1/2] xenbus: add xenbus_device parameter to
 xenbus_read_driver_state()
From: "Martin K. Petersen" <martin.petersen@oracle.com>
In-Reply-To: <20260218095205.453657-2-jgross@suse.com> (Juergen Gross's
	message of "Wed, 18 Feb 2026 10:52:04 +0100")
Organization: Oracle Corporation
Message-ID: <yq1y0ki6j9d.fsf@ca-mkp.ca.oracle.com>
References: <20260218095205.453657-1-jgross@suse.com>
	<20260218095205.453657-2-jgross@suse.com>
Date: Tue, 24 Feb 2026 14:20:48 -0500
Content-Type: text/plain
X-ClientProxiedBy: YQZPR01CA0085.CANPRD01.PROD.OUTLOOK.COM
 (2603:10b6:c01:84::13) To DS7PR10MB5344.namprd10.prod.outlook.com
 (2603:10b6:5:3ab::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DS7PR10MB5344:EE_|CH3PR10MB6836:EE_
X-MS-Office365-Filtering-Correlation-Id: 365bcef8-b2d8-4724-0cf9-08de73d9d1de
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?nAUMVaBUf8gSW9KHc6Jzt8XyiBFmmMKYPbTGZ8UVMA9nwOt6/WQxOimYuCPa?=
 =?us-ascii?Q?50DmTa0XRus16nmY/YB6t6klbzyiFjH/rHywbEj3pKLy9WQmK1142YucYcfp?=
 =?us-ascii?Q?XnoGeMO/ovl89mHMPUjqEsIC8/Weja/bT9Pf+096qixFoCsnY+2fGCDbAjGB?=
 =?us-ascii?Q?AnxhfXgp+BnRNKtNw7yf11cvw8Qf9AvwTNslz7e4ksppe7/9792ikbSh0eHR?=
 =?us-ascii?Q?iVuPFhQ0ul/Gy4jRlE7wMpJTPQ/3AWxKTdDQ0sn8dUZzv/QfSDh3V4yg7E24?=
 =?us-ascii?Q?e8LHb0aTmpXxCOt5cqrmxmsUyQQntULpQ6ZLjfGijOauoPEj6QaTWi6odB8T?=
 =?us-ascii?Q?CYtJ9Ommr6qVePM0e+t0kyjVEMSE///KTQXB8us0WZfqPjBeuD9b1/1BwNh5?=
 =?us-ascii?Q?MGtLDYKSypT7StAwhVPjsf+XW99qcWTDt1zqygVzyWE2Qr6b1ronfj0yGhr2?=
 =?us-ascii?Q?i8n2wEIPi2rFuIUZLL99ZfqaWm7/cpRKkD8TnuKsiuKo+MfEaycLJWyHygjE?=
 =?us-ascii?Q?070W1lRHsGI0VoCcpAS78wjMFAqZls7RRfmTHBx3Bh2l0KYSCfZiNtgOcJBv?=
 =?us-ascii?Q?h8e/Kd9RfKQdH1qekJ6v+gqFKwTyJbEHh7Sl1wvVG5lidjqh61xh7JXGnmY0?=
 =?us-ascii?Q?iSI+B9Mm/GGMB6zH9lQ7VfkhN9qisa9HTcoktGbjOHsQiBFWO3F5qvKegNQT?=
 =?us-ascii?Q?0SPEnYIiRtn4SHvJcdeAhRAZA3XsYwhBbKg01S27q+hOeqMDAI4NCfA1VBNo?=
 =?us-ascii?Q?8LpX8jR4j4fDpLEJ9a4hH+bOO5kZ5owcyHJ0uZlOQL7kUau4KLQG5SFMCo22?=
 =?us-ascii?Q?oD3NTeMa3vBqICc3ySU7lOJ0U2jgVM7pjB67cG45GnhjCC1+psIQB/4zDkqc?=
 =?us-ascii?Q?5pKvZPMIet+fAES3HpMdRZ7GB8BO8Nbzmde4vAWeBmkvcSpTHpeXNtxIAeNn?=
 =?us-ascii?Q?xey6e3qsBrCCJwhJaU0VSTXXWSFrkbkiNmy2Y+FDVBXx+YqYqD/2f9iR/SIA?=
 =?us-ascii?Q?bvIG424J6fuzgwI2oWyxNU3Q//zPm5/b1Vf+KsEtNon4lT20Ds1E/aFS+Npg?=
 =?us-ascii?Q?EL6TCaebaWkZGBXC0+urrrG4OvX+3gnIJAPwOQTnLHNjSGaW/CaMuDWkfgkq?=
 =?us-ascii?Q?cWTqTY9opVPFL2bEqlY7Wvg+F1aFrYLQodU+jVY9Un2+8wWfrIscl1LWTNxC?=
 =?us-ascii?Q?X3WGCsTCvg0rFtFLmO1W8PoUHo5qwWAHefmAOTxoqmD9rk1ml+U10k7JE4y+?=
 =?us-ascii?Q?BPFZRfmCVlKc0Kfb2Na7ww+hjVCXYIbzc88sn0mPkA2eFEgsXhGTVdYgSyrY?=
 =?us-ascii?Q?Zt9a6jN+Gn65TNqwlSRWd1txC+tRmrRN2e91WP/0LOrIim4XC5NW96h+nH6t?=
 =?us-ascii?Q?3Svy8ynFfdFZBehPpe/Nj+jbCm8hIdILTRD0ZgWdN2sJsKKQvYgNfqQu2vNo?=
 =?us-ascii?Q?NPyDfcbC2Nn/f8KulQv8LzB69G6/03sjfaElibUSH+KsHmGhlFdp+r7oQNHG?=
 =?us-ascii?Q?gj0Yk8s2QK2jQTyhm+W/wogzc/SfEgnw9qN+GT063KeZNgc18Dj4NRcNxYYB?=
 =?us-ascii?Q?Lj0bjG7ydC6fP+TmF3c=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR10MB5344.namprd10.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?Fzaj6HHZmlqHKqbno9EMooJTD+sn0fMAV7oqS4PI8m9lM0Kyv2i9n+YF+GyA?=
 =?us-ascii?Q?NK4IbOmf8BcRbc5WsP3uxveqjNmSRw5dPWJNuU++9umzZpkurt3HWLc0vOuN?=
 =?us-ascii?Q?5FpqY9Hu+hXU3X1G6eP/GLLsbMDakCsEw4rTj0CczADpyTaDG4MQ+w+f5KWD?=
 =?us-ascii?Q?Y9GNAGEW+BPvp4slWrFfr+XFR42+mHuWaT9K7nqS/h7mBYsyJYFRzaiJIwtD?=
 =?us-ascii?Q?t9Cw+2P0OFOA2pdzvIitVg97/LN0wKFD4Op355K2L8Iy/7pjL0vKy25veVnT?=
 =?us-ascii?Q?gcOBWF5tHMY4IHrNYv3+Ccy7DvihZ9l95JYnvHEndYPNDkROIylutM6EZ0eq?=
 =?us-ascii?Q?vyANQTeq3D1fME+9nICV3oV9VKWgoPogCxUB/mSWC0/sad8V0qZRiw4NtYB3?=
 =?us-ascii?Q?nJYIFx9FOWI5NkxqWMzAlDEI45cEwx0WuI/C9ibcxSjNQplcsBfr5s5ofPYN?=
 =?us-ascii?Q?lVs8nVkt+lJ8ZMJakspRl607UNxjFMB35xiVOnAVPxzuIcKNcCgOT10aomh2?=
 =?us-ascii?Q?tRL8+B6H+Zr63fum1bxA+g5LLR1c8an8eKcVSRtGro1/ZVoGBHbctRMSaPWc?=
 =?us-ascii?Q?u7jX7FOaRtnecuUQzyI/hWd4cWArBRDY1cTdnm2YQ1HM6c7C1zQEQGpJ8SPV?=
 =?us-ascii?Q?UEbTNhq9NCJd38WSfu0l8GRaCcDGmimjxfsGLKi0iFWtilZ16QpEb3XXkpSK?=
 =?us-ascii?Q?UhsEoljkrjXif68JUvD++bW6yhT6XB3zKBY9dqfgouQ2NQXS8P9tT+KIIu8d?=
 =?us-ascii?Q?f1fFIoCqD2/cdRv/DEK4eIo7uvAE8MAIe2EhP/92mennMc8osJC/OaO6HE5q?=
 =?us-ascii?Q?Kfu2iwF7V5B1pNZ1ACGkKRQkQ8PLXbanP1ppTwVdjgwkeiCsAmcjvNorhnCO?=
 =?us-ascii?Q?zDZVG9BqlB1AoacIQurFxxW+q1t4/c46Ck2x3jyQMIYuzH72uexUfgt1IvIk?=
 =?us-ascii?Q?wB7y96T+fvgo/el7o3KmYqK2yLx/xAgNBuzO1rC3SoW/Um2MR7jj+RlytNAM?=
 =?us-ascii?Q?0a2JeeVSH42RGMyYmJlzCystanRgGwbQoCJh95xcOdsHD+81LNupleknf6d/?=
 =?us-ascii?Q?7ExAA06LKgfQtXX4Vic7A15sxNB1pUNnuvtPgorAUBQE8+pfeJd2nV6I2myd?=
 =?us-ascii?Q?RxyyWwRIL0CZgeGtJha1N15oVIQ7V4YM+GVboIWTm4I4BYv1jwAgD9/QEo3M?=
 =?us-ascii?Q?0AUPZel3besQRQRzjUCNqB42ZI3qsuGwQV7Di9gY/HS3J8mbyVFOMcILGxws?=
 =?us-ascii?Q?MGu3u9aX7nyHSQusUkrJJXOTEzeTez5Bjvk2IWG9VDsosP9/jY0w+OK+qvIv?=
 =?us-ascii?Q?2PzYERf7iZJt8Toj4E1dQEpJutNf1Sracgmu7yhki9TYPnGCnVeaO29jOEdH?=
 =?us-ascii?Q?heuYXPSY4rBk0tkv1bhPnaTvwjvgSrM/P2zJezDrC1gT2+/0X/O2Hej1PS9E?=
 =?us-ascii?Q?afKQcW9J5N4HTR3oleLAPskl/1OurrJUCErIDY4XEnz40ZwDNsEBfYcjhqTg?=
 =?us-ascii?Q?Z2oS5PFemBFszb5TuIQp0K7GlvJpf5evWkFyIudV/l9+CpKLOXLo8RjZtpNG?=
 =?us-ascii?Q?JIzEWr3iQ+rm9W2wPCSrZ1k1Ufef9nAP4DbtVIc4CrXKVr7mPqSNx+pyiAvW?=
 =?us-ascii?Q?DDmwRjVJYC7corJmW2UQT8JRMN7QHLIC2XKflb9Pw4yQ2Iy9Wmet3wXS08qC?=
 =?us-ascii?Q?nopgsNg12VniZw6lnVtAcFK78ZU6lSozA3AycCM6Jqa/KU2sJ0J+eK+jYVtE?=
 =?us-ascii?Q?Hx+BfixVJBq0xN3/32y35X07L5RJ2ao=3D?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	TINT7GD7/OXYS7Gukpnu3h2+omXNqGt7Y4AQ9rLRNP37u0jZpglVcAskCMbgRCx7emDWu1uQXpvNF5NZU4CfxB9Gh8G5I4qkxKLuiTYvibn4wO35pnB+BaTS4g29GpwfT4ZNgqeCuJVCH9DefC7DTQrDt02axFcp7yMVW+DTDLm4VHKJaS70Dk7qoaDv5lEnBrzMF7C8/uQU8I3YG1GakNwmi6MqjeoCIRqFW5lxiNWxxw4ICN5nWpu8/gqoPXruLuox/M0OmgqAIU9kNO7gZ1OUWmLOVmYczDCFJJLEMBx/WVS8zpTaJvZsjzCaGbXXbiBl7zK1P7quc3sz60p1qLoymecv4S6eDrZexcKagU/EaeANq18trW3kSROJg/FwD0AOj2wgUcUnmuL4+WOGeaGcGr7iJOdleupteWeoy978noq8h0iCl1n075axXKOk917oXfCExUZjXjPBWUUeR4/sKPGLmQCDNvpi87JjwJIzZioZiqR/ZrVGK5z07W6/5N3gyxRQnQwZsNkLuUCMUZmnME1bmC/2cLTslLbRNhyzSto9+uxiLHncbsoZfJ5IGTNHZMwSB1TXv4hLv7xBJtdOzpdaGAQDlQwBZkkgU2g=
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 365bcef8-b2d8-4724-0cf9-08de73d9d1de
X-MS-Exchange-CrossTenant-AuthSource: DS7PR10MB5344.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 19:20:50.0405
 (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: 8pIDsUSNBBbEEdbRLMhBHHwtC9QG2oognFI8ksnaPulWs9C1df/Pgqe4/dw2ARbRY9szaObhMsDXEk7lKwF8S5Depq6FvcUmzol0fLmFFw8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB6836
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49
 definitions=2026-02-24_02,2026-02-23_03,2025-10-01_01
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 adultscore=0
 bulkscore=0 spamscore=0 phishscore=0 malwarescore=0 suspectscore=0
 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2602130000 definitions=main-2602240165
X-Authority-Analysis: v=2.4 cv=O5U0fR9W c=1 sm=1 tr=0 ts=699dfa19 b=1 cx=c_pps
 a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17
 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19
 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=HzLeVaNsDn8A:10
 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22
 a=GgsMoib0sEa3-_RKJdDe:22 a=yPCof4ZbAAAA:8 a=wpu5ODVmw2F8npshYt0A:9
 a=MTAcVbZMd_8A:10 a=zgiPjhLxNE0A:10 cc=ntf awl=host:13810
X-Proofpoint-GUID: 361dM82ULZvU17ekq_QYlLqKlC2pJcSZ
X-Proofpoint-ORIG-GUID: 361dM82ULZvU17ekq_QYlLqKlC2pJcSZ
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDE2NSBTYWx0ZWRfX6Eokb0vMHDDz
 gt+VLswIriZmkrkb0T/V17/FmWl9qjgkkFAK3wk28yI8EtJ+IoAba1Z7qSqPo1YdFgPwHRuCWLR
 sm1PGdXN0ZfaFQh8xX5aspPKErq0Is11hEH5PiKqe1EoKX+GXtqy2PG6K+JRMkvvxFv4qqaddgb
 52bhT29JGsElkoW1UmoLY9I9+NkIdVn/vyFhFf/6jEiHZBpoIi0WU4xG7l2lzRq6u1gSvH9Fur5
 Dc7ZNNrdCT9BAuU6zHzgV43NESqHBPWizkZEj73n/wOwXTzwA3S8osVR7woWQt8YQcfrqTYhDA0
 iT59x5wGMtBfk3I6L1fkqXwmQ11d0E2sfVwH5am4z/5vuvoBIgTv75bFKPuHZNdqeRy6I+et8t9
 ZE6kso9qKchp+zXaE0/Biw44i44Lo7xvKdw8nu0Qw806je4hEC9+Y7O2PJqLa6s9LKAHkrssdEj
 5IaogSKD7UlMxCmtjM87oru4d0WzD8tkWL8pfT90=


Juergen,

> In order to prepare checking the xenbus device status in
> xenbus_read_driver_state(), add the pointer to struct xenbus_device
> as a parameter.

Acked-by: Martin K. Petersen <martin.petersen@oracle.com> # SCSI

-- 
Martin K. Petersen


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 20:09:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 20:09:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240263.1541703 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuyin-0001uL-8J; Tue, 24 Feb 2026 20:09:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240263.1541703; Tue, 24 Feb 2026 20: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 1vuyin-0001uE-5D; Tue, 24 Feb 2026 20:09:29 +0000
Received: by outflank-mailman (input) for mailman id 1240263;
 Tue, 24 Feb 2026 20:09: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=Lz8P=A4=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vuyim-0001u8-5j
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 20:09:28 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b7a90c3d-11bc-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 21:09:27 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by DM4PR03MB7016.namprd03.prod.outlook.com (2603:10b6:8:43::22) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 20:09:22 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026
 20: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: b7a90c3d-11bc-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eUT6zptSmrJ0qsc4qS1UT6NNp8cFcPeW/qkIMElQskriU8+51SGf8q3hR9Dg2R/9OYrbN2ieh6LfjfUCppFT2INtFv3QcJlQv2IuuXFGRRPEXigXqF70/inrEApeNL9Mwir0h1p700O0TOUswd9Cc0G6s+j2UAXcGhW3wTv9MY/dtzrycRt50DIf5pxYSAVOugdXedicxSYGEApgTrMsk2d2mh0mYx8HCov6kqE5wWaifZMSJMVan4xRh6w3AeEMoMAy8LEgmKLx5Vf7b6vOcRgdgH6ABwrM50UV55gn+McIsRiNPNHOtR52IjTUXQ9GnFp5VIqYcE76sjovfGnjeA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=rJa/HdC4Kas9p2+hCTJKxBWMalwg8ZXGBwrBt1brkig=;
 b=q+FRhmUqxP+1AtYHUdETmuga/I8qir9m48W6iHG+Cy5ODhHn8ShZOdCFnuR45FZ4zdg5afm8zCUzyP3RUjv4/W/EPrF3DW8XMQZagSrRXGDvekA8ZcBwdmgILDLRf73TSPoPD2F1nwpm9bMHdF2XFZ0wdnAAm0e5LiGxtNY/TjGLJ1/PNgRkZdtNhnxoRGRLlTCHvs4ThxGv0YIKirB8viBlB3FTkEmRK1QzWgwpbcEK9MKvEudJLWuzZsIhVi/gw43esE3UZex5nrkWb+e7noT5Jzuxmm1SB5EMxGUNX75LdPpHqKh0f2KHH4hgZzhyKkY2QHoykR2ecAmZBxkO+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=rJa/HdC4Kas9p2+hCTJKxBWMalwg8ZXGBwrBt1brkig=;
 b=GkAHKvKPr0iQZqUPFgWLWIEYyIgW1ufueKykINDl/Sllan6ljUfbBqT9XApSV/TffnCCIw6K1afm5EExIBFIqNK5prFfUAaicrEi4DChAI6t/ICooVBXvgKltZOZPr39z6R1RpT7PxaH+kNzgcR9wZqXYra67drqwlJU48FMoaY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	"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>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH] x86/efi: remove unreachable efi_halt_system() function
Date: Tue, 24 Feb 2026 21:07:08 +0100
Message-ID: <20260224200708.51120-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0001.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:2c::7) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|DM4PR03MB7016:EE_
X-MS-Office365-Filtering-Correlation-Id: 74663bf2-e839-49b7-bd46-08de73e09967
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?ZEpDVEVNdUE3WXhtWExrN2ovQk1YM2Z2eXdIY0xLbE5MZUxKSTlxUCt6RjE2?=
 =?utf-8?B?eUN2eFJLazI1bmhyZjkwTVovZ2Nxci9VTEQ1TUd5UlcwME1GNlZXbEYzdUZ1?=
 =?utf-8?B?aUtyTms3ajFQckRXMTE2anZud2YyTlExVXBSK2gyejZ6R2ZDTk5Wam5Rbkpy?=
 =?utf-8?B?Zkl6TjNZV0dwYS8wQjlLWnovVUtWSnRuVVRrK0toVUhVRVJacVQyTjhzRzBD?=
 =?utf-8?B?b1R6VlBtbTlTdjJGVjBLeEJ1dDVxVUQ2QUY2Yjc0SVlBc1p5V2JUQkdUMElT?=
 =?utf-8?B?U0lCc3BQRVd1MW02dks1UzF6ZFB6S2F6YWJkZ1FSczhOTmErRHh6bis4eVpT?=
 =?utf-8?B?dFUvSTJTU0J3YXJhUjdYeWJRU1IvV0lLTTNCVkg1dndlMVFUV2VRenBMZ0F4?=
 =?utf-8?B?aFpKb1ArSmgrK2VYS3lwWGRuNWtPQUxVMFN1YXVpYjBrakxmSEY1d1FydG9F?=
 =?utf-8?B?R1lHVUV3M1d5eE5TOFcrLy9SL2JBdnF2NkZQWWxXUEF5UVVxTjk5Z0lGanU0?=
 =?utf-8?B?eS9oNFkrWXJldC9BeWdpM0FkdC9ic3NpV0gxMWg3QnFhMEdmSXdKRlRlOVhH?=
 =?utf-8?B?am52T0QxVUF5cllRRHl6Zit0MGNjVFF0WUltcTlsUkw4d3M2QVhlcXR5VlZY?=
 =?utf-8?B?MkUyL3F5M1R6d1ZQZ3ppeXJOdktBOUpJQ3hOb2JhM3lPMExSbWRxUERzbjNW?=
 =?utf-8?B?OFd3Yys1UEk3UThmWDY2R1VDMWw2V1VoVk9MaHU5WnJIVitkeXpGdUUrUVNj?=
 =?utf-8?B?NkxWajd4Mzh5ZmRvSXgvV25TL0RZaEQvcEFjU0lHQUI3eloySUE0QllPVXFT?=
 =?utf-8?B?Q2dvUjhKTzQ4M2h0ZFN4OGdiVE4zWnBXVi85NWhWN3JHekZsN3M5U2RKbzJW?=
 =?utf-8?B?N2Qvam85VjhiZmlLSUlQUGpCVU96Si8zY3gvcDNJczlBWE16NjNBelFHRFY4?=
 =?utf-8?B?UVVZRVNJTVN1ekZzRUtRaG5aQllLVmFWRmJDVldmalNpMDhTdkh4QXpVZUxu?=
 =?utf-8?B?dXhBdGJOcURZVTBuYW1xdTNWVFNBNlJBVEtJTnhFbEpSd1E4VFp3Z2M3RUR0?=
 =?utf-8?B?bUZCRXQ0eHJQbWFEajlKTStNZWJMVWQ2Y3JDMDRXbzEyNGFrWlRJSTFtS0hL?=
 =?utf-8?B?ZkFiRUxHdlYxQVBRbTNSREprSDlPNzIxbHM2OXlqLzhtQ1htZndDQ2x1ZEhw?=
 =?utf-8?B?by9qWnYzclpBcEgvb3RIVlZ4Qkp2K1ZuMzF0UC9aeS9YcytjWUdlejRhSi9z?=
 =?utf-8?B?dWxxU2lOZDhVK2ZnQUlnWmJtYTIxcFRPR3JMVCt0bThqbWhLV01QRzZVeVg3?=
 =?utf-8?B?aWVQTHMvS2dmcFpqdlZMc2pLZnQrSkJvSHhVVTdEWkhxdDZZdnltT0FGSmoz?=
 =?utf-8?B?eHI2b09UZlo2L0JZVTJuaE9iRjdaTUIyT015TlpqamZFWWlVbm5TVW5Ebjlz?=
 =?utf-8?B?OFRtS1BzTSszamkvOUI4d3R3a2dNb1VEaURZNXFqSE5sNldoaVN0c050dXdx?=
 =?utf-8?B?OUlLWmF2WWpxZUk3YmtoQ2FLdnNzSXM4WHU3bzV0a2RxbzdxcXdQZ2dlWndn?=
 =?utf-8?B?TXBrTm9TMmk5Y01BZ2JxZzdxaUYrZFYydEdxQ3JOTHJSNE45dEFnNGJjVkg2?=
 =?utf-8?B?UUY1eGh5aW5WcGxWcnNSc04rVmFSNjQ2TGdKRXVLbS9SZXBYeVNWeGNPbXZ0?=
 =?utf-8?B?NlhiZnUvY3pFTEx3S1VRNis1VStUS3BOeTZ0RElhWTZNZEdrbVZhWFJtSVJB?=
 =?utf-8?B?Ymh3S1VpbHNPSzFJUS9QOGlGQUJsOTM4UG5uL0E0QktHVE5zY1BYM3VMdXpW?=
 =?utf-8?B?QmFkZEtibE9LUlhvNHptQVk4dXo2Nm05Nm1nRytjV0FhdjZXVGhBRTJNcDAz?=
 =?utf-8?B?Z0E2amxxbk5hTy9zSXExNCthcXFrNTh5QitKeDdTUk5RdkJ2c2tXVnpwUlFM?=
 =?utf-8?B?MW5yaGRhVXQ2czRPLzJKa2lZaWp2RE5hRVQzYW4vZForeEc1NjJTU0kvQVRD?=
 =?utf-8?B?c3dHczJxT0FyQTNsa3paNHdqYm5rV0JhSzZaNmJYUDh6QnRWUVlEY1B4bjZ1?=
 =?utf-8?B?RTdlOGRvUGZLcG5DNitjRld0dktHbC9RTFFMMUNXQnNVYy8vRE9IR3pWTUtl?=
 =?utf-8?Q?JXY4=3D?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U0V0NWx3UVdTdkZLcGFVaUkrSzQza3IxU2JRVmpGREd2MllUamh1bFlHeXha?=
 =?utf-8?B?ZG5FODB5UldQcDdvZk5HbHFnWTNhdmNpQzUramVlRWxzM2Z2OG5oU2llY3Vw?=
 =?utf-8?B?MzdJOGZPRDlFRHErWG5oZHR1Wk9QY0grdWhuTzFGZzlleTA2STVLbGVoazBC?=
 =?utf-8?B?SERUckcrL1VLLzBzVWVtdGE4MmQ3ajNjZlBNQlZVM0wzYnJWY1Z3M1V2bEJv?=
 =?utf-8?B?aEwzaDNxK0JKa2dUaFJHZzZXVEZiR3dVWDlPWlh0cGR4aU9wZ3lsbHZ0UnY2?=
 =?utf-8?B?MzQvN0V1Y1Znb0hKb1dNclYvNVFseiszMitPVS9zODZiVTF3djBHYlIvYzIr?=
 =?utf-8?B?dUxmUXMzVC9qVnZ3NU1ZOFNCOHcrdDREaW1CcGtoSDQyNzdGRlgyVmxaeEdZ?=
 =?utf-8?B?MzlWR2dma1QxWmhuWXE4WXBOUUFTTGlIc0ZOSkhha1pkL2FzcHNtZDlYYUxL?=
 =?utf-8?B?T1RSNFpQKzBaZ1NYT0lZZkFyRVJJODNCNnhncW5ZT29vUUJ0WjZQNXdoRU80?=
 =?utf-8?B?NVk2ZzNFV2dwWjZUL3M5U2xuc1FwM0dnbmhLcWdScmo0MHJuVTJkb0FLWE5k?=
 =?utf-8?B?NjB1Yk8wQ2ozZlFqV0Iyd0drU0pNTzNjQ20wTU14S2tLM3lYR2lKaWhQV0ZI?=
 =?utf-8?B?eDZqR0lLZldoQ1pKZHR6ZjZ1SHhTNDV1dTBveFcreXdFbHl6NUJpek1vNlg4?=
 =?utf-8?B?N2dEbkxBS2FiUWhldm5DaGRIcFdVMkw2eUxWSE0rU01DdFE1MHZGc1BoQ0pJ?=
 =?utf-8?B?NndLdjJBYWtONCtMUDdyd3pIcVVMbWRoT0tCNzhQcGk5NU95d05GQXh2M0xO?=
 =?utf-8?B?OWdHNjRjWFhuMkJwL2d3OGMxRlRJRlhUcHFMZ25tNmtUQVlFWk5mSm1XaVZX?=
 =?utf-8?B?RG8xRU5UTUxVNHV6ZURncUVUNnNod2lUNVFyNkNiaG1PcGdxOHZBdE92aXAr?=
 =?utf-8?B?R3E4V0VSWVdqL2wwT2piYUN5SVVzK2N5VllWZ1VYaUZzaW9aVGUxb0RmR1B4?=
 =?utf-8?B?RnpybXh4VVVKOTN6VmhsYjNLUW9FOHdYTDNuc3h5THRQc0xwUWEreExWV05z?=
 =?utf-8?B?OCt3NEs4TTB5Nk1iUi9PV1dxZElrOFUvdnhaeURrM1lTaGhsV3NjN2xhSUpn?=
 =?utf-8?B?RitmTkllbCtFSi85SlZHNXJBREFJV0JzZXgrZVJ0MDJIdTNzaDlQa1VZQXor?=
 =?utf-8?B?VUlvL2cvOVNvV1VETUNiRG1Wb2liZVliNk91VDRWbkNidndrbGwvenNJYS96?=
 =?utf-8?B?clFBYkpwVXN3OEk4R1JlaTAzbGdPZ2hnRzZRSDZiSGcwN1hoY2JZSG8rbzZy?=
 =?utf-8?B?eHdLbGpFSi9FV2dhMkNjNVdHcGZoTnVNeFA3Ulo0T0JGTFI0ZFdId2lTUmFw?=
 =?utf-8?B?L2NnVHBDdXVKTHpKQVNzeXltWVhZK04yNmVEYThyaWVlaVRmclMxT0FSaW4z?=
 =?utf-8?B?cHJRZndoa3lEdjNzTXA1YzROSFAzME5SeWczQWdIMndPaGpJTHpBOUlTOTZj?=
 =?utf-8?B?a1lGck56ZGdKMTFBbnRBMzg2dlhZaXNGWS91QjY5U0tUZDI3SU9RbFVVaGpC?=
 =?utf-8?B?b2VJcXNLM0NxclJRc2pKTHhid29rZmF2QXdlWFZHQnBJQzNZSmZaY1ZxeEpT?=
 =?utf-8?B?c1I1eTY1VEpiWE5BVzhZbmthNUxmbzFDUnh4eUh6clhjN1RoNDlHSnFZWjlu?=
 =?utf-8?B?cFJGNFFsUnh6YlVPOEMrUm9Uc1VRWVNXRUhYVCtzTDhJNUhKM3JJLzRTUkwx?=
 =?utf-8?B?YWFCZ0FEWHVwNGYxeFE5dEpuOW40UzBnQlZWb1hyTmRuUTBNZ21rRHcxUnlH?=
 =?utf-8?B?MFIrcDh2eTViN25MWTJWVk9rTDhLUDkyRmY0MUFUY0ZkR2ZlQ0xsSG41VVNQ?=
 =?utf-8?B?eFRZZms2bStCbmVYS2xnbXJyT1Z1K00yTW4wZHdzUElGbVduRE9yWkZyNDBE?=
 =?utf-8?B?eE10N251eklDMmw1ZFRnVnBkMlZ3T3EwYTlLOXdocitOOVZOTmRLVFd5SGNs?=
 =?utf-8?B?ckFlZStJVGtUYWdFcGdpSlNNWFR6cmJsNkRiOXNtaFpZU0pmNnRNcDErTlFO?=
 =?utf-8?B?ZXZZdVBYdXJDY2tIMHBjY0pUaWdMNmk3MTNORGNPSGZiTWoweklNRzNYelYw?=
 =?utf-8?B?YkN2Tzk4Qm9vblZXV1FiSWVoYi94WG5aWThPTzVqN3kybnRMa2VqbTJpWWlr?=
 =?utf-8?B?Q1ZoVkFNM0RqTWh2RTNRVytjL1VoVGcrREI0QUhmc25xNDJzbktzQlM3dUtK?=
 =?utf-8?B?SzRsdmNZUXczWU9pUWpRRE1zRUJIck05RjBkUmQvMUNROWdLcGt6VDZzTndM?=
 =?utf-8?B?OHIrek1iNGVNZC9ZZUlkSzhJL0Nkd1JFOWhBbEZDTklpamwrakhKQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 74663bf2-e839-49b7-bd46-08de73e09967
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 20:09:21.9051
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: qGW+jxANJviYjGTzj6NnE1nauLYWHlPcm/5ZbbgHuBvWUzUYd/LbeYvj0xKrvTTPCPx/5l8NUym2SJwyH3/jzQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR03MB7016

After e4c3755d4dd7 the function efi_halt_system() is unreachable, remove it
from the file.

No functional change expected, as the function is not called.

Fixes: e4c3755d4dd7 ("x86-64/EFI: don't call EfiResetSystem() from machine_halt()")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/common/efi/common-stub.c |  1 -
 xen/common/efi/runtime.c     | 13 -------------
 xen/include/xen/efi.h        |  1 -
 3 files changed, 15 deletions(-)

diff --git a/xen/common/efi/common-stub.c b/xen/common/efi/common-stub.c
index 77f138a6c574..9dc8aa538cc1 100644
--- a/xen/common/efi/common-stub.c
+++ b/xen/common/efi/common-stub.c
@@ -18,7 +18,6 @@ unsigned long efi_get_time(void)
     return 0;
 }
 
-void efi_halt_system(void) { }
 void efi_reset_system(bool warm) { }
 
 int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index f786ceb00763..ba27c62132d2 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -188,19 +188,6 @@ unsigned long efi_get_time(void)
                   time.Hour, time.Minute, time.Second);
 }
 
-void efi_halt_system(void)
-{
-    EFI_STATUS status;
-    struct efi_rs_state state = efi_rs_enter();
-
-    if ( !state.cr3 )
-        return;
-    status = efi_rs->ResetSystem(EfiResetShutdown, EFI_SUCCESS, 0, NULL);
-    efi_rs_leave(&state);
-
-    printk(XENLOG_WARNING "EFI: could not halt system (%#lx)\n", status);
-}
-
 void efi_reset_system(bool warm)
 {
     EFI_STATUS status;
diff --git a/xen/include/xen/efi.h b/xen/include/xen/efi.h
index 723cb8085270..2e36b01e205b 100644
--- a/xen/include/xen/efi.h
+++ b/xen/include/xen/efi.h
@@ -42,7 +42,6 @@ void efi_init_memory(void);
 bool efi_boot_mem_unused(unsigned long *start, unsigned long *end);
 bool efi_rs_using_pgtables(void);
 unsigned long efi_get_time(void);
-void efi_halt_system(void);
 void efi_reset_system(bool warm);
 #ifndef COMPAT
 int efi_get_info(uint32_t idx, union xenpf_efi_info *info);
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 20:52:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 20:52:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240278.1541714 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vuzOU-0008Ad-Bf; Tue, 24 Feb 2026 20:52:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240278.1541714; Tue, 24 Feb 2026 20:52: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 1vuzOU-0008AW-8q; Tue, 24 Feb 2026 20:52:34 +0000
Received: by outflank-mailman (input) for mailman id 1240278;
 Tue, 24 Feb 2026 20:52: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=KvKI=A4=amd.com=Jason.Andryuk@srs-se1.protection.inumbo.net>)
 id 1vuzOS-0008AQ-VK
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 20:52:33 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id b6c61b62-11c2-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 21:52:22 +0100 (CET)
Received: from BN9PR03CA0470.namprd03.prod.outlook.com (2603:10b6:408:139::25)
 by MW3PR12MB4444.namprd12.prod.outlook.com (2603:10b6:303:5c::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 20:52:17 +0000
Received: from BN1PEPF00004682.namprd03.prod.outlook.com
 (2603:10b6:408:139:cafe::44) by BN9PR03CA0470.outlook.office365.com
 (2603:10b6:408:139::25) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Tue,
 24 Feb 2026 20:52:03 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 BN1PEPF00004682.mail.protection.outlook.com (10.167.243.88) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 20:52:16 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Feb
 2026 14:52:16 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Feb
 2026 12:52:16 -0800
Received: from [172.29.61.144] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 24 Feb 2026 14:52:14 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b6c61b62-11c2-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CoR/ToMfEfCJHqK2nioYzPnhgB0qMODIkKZRMW7HMJAP98hg08iTUv0Nsk1ZHLcdy9Wd0XNaWLla+0MxX7rU8LWxRyEv/bgD7rGN1QTltpmGU3mVnyBZd+MqBLxYN6gnQ/DiLQOmFjXhFOoXrxZuavNDPKTrlOLOQwj2uVRLZQFaXfvepSyHCqzGYqFYtztsk/eiT60s9WILyUZnDcBCGCvnctsofm4afoz1FZ191euzouvdtcETh0LTNA8szBccctUYYEsMhullj7Qyc/cDCjPwJfaKbf4ArJCFecrVUD3DXUAnPYM/DZg1HlGrJOcjJiknB7484AWVD/0dLcXjiQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dvnv/VbGJdkyy1D/PtRyAfHEXoJ/d1hWLcP3Y0G/Ej8=;
 b=AVm0zOUiIIlmGV2CLjhwmzCIJos2E9zlKShm3655A7ijivaITx4i2RpApPWsPjA237D816CZSfAVikbjzl68yNMFbJeqncaP40soK73PWYbtFK33Uqem3QUGaGCgHbYMSArj+ZeMyjm0ZEYUogjHIBX/RtnEP2jgovG20gqeyrXZi7pOCLQebeqK5orPg5nPUqq0ZKnxfUQbYMTOZHHh7iKMOeowbZdhIcTO7VWAXqpvYD67JAdmIw0ToAbtzefl/wrzLKZElfGB3EtzJB4hrxBz+YD9JWgNf5Y4Yzqs3prrhdYTBAhhH2B71UCpgnZytzt59ZxJmS74G3z0PYxPww==
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=dvnv/VbGJdkyy1D/PtRyAfHEXoJ/d1hWLcP3Y0G/Ej8=;
 b=bhe94YUG/SOFaSSEXHKIlX2uxpyexdMQ5LFF5U/MvIXOPp1exfiwEaedkuCFlXI2HuXpqBUsDCirxbZsv/tIkFrQQkXAsxxJDHAtmnoQg8Gf50PnTgVBLuoDl4SWqiRGKmI4IM493JoSfaHCaM8pK3zd4S6tttuN8ZBUOS24teA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <c0241f4d-98ba-4b35-94d0-53938b85c6ee@amd.com>
Date: Tue, 24 Feb 2026 14:05:10 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] x86/efi: remove unreachable efi_halt_system() function
To: Roger Pau Monne <roger.pau@citrix.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>, "Andrew
 Cooper" <andrew.cooper3@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, "Julien
 Grall" <julien@xen.org>, Stefano Stabellini <sstabellini@kernel.org>
References: <20260224200708.51120-1-roger.pau@citrix.com>
Content-Language: en-US
From: Jason Andryuk <jason.andryuk@amd.com>
In-Reply-To: <20260224200708.51120-1-roger.pau@citrix.com>
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BN1PEPF00004682:EE_|MW3PR12MB4444:EE_
X-MS-Office365-Filtering-Correlation-Id: f3f12ab1-9b39-4ede-f553-08de73e69829
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?aHYvUTBsM0g5MFgxNDVRTkZtS3F4emljWVk1bFBJazhsQkZaZ0hXQk51djhq?=
 =?utf-8?B?cjBOVXRQREZNRDVhcVFNVG1KMDBoWFl4OHQ4Q2tTVTQvRkFGVHRDaHh3N2pJ?=
 =?utf-8?B?RVlaVE1aU2RaTWNhM3dsd2c2S1VpS1FxM2diT0c4cE5sMXRPQ3FxbFpReVhx?=
 =?utf-8?B?bExVTWFHZEFpTThKRTVtcTc1V05zVVBwbEtLQm80Q3ZvblpubmM2TXdGS2Iy?=
 =?utf-8?B?S1Q4QWxnbDV2eGJ5TFdsdDNVRmo1elFuRGMzcWdSSmhHbjBnRjhPME5IcWJ3?=
 =?utf-8?B?am9yZURtNTQ5THZTM1loa0tiNjQwZlFLY3RKNko2N2c1dkNzZ2gwZGsrdjJJ?=
 =?utf-8?B?K1pOSVVhVG5ialgyMkRnbW9ud2lvaVg3dEVIcjRFdi81Tnp1N3FyQVErcmRi?=
 =?utf-8?B?VklLSW13QnRMUHlMMXZGYXNDenRQN2ZJRElPVkkyQmVtQWZoelJIdzdzR0RM?=
 =?utf-8?B?TU1veDkvSnJJR1Z5TEtEeW5tamUyaEtWNTl2d1I1VUpDWnR6UDVlbktQQjNp?=
 =?utf-8?B?MHBwSUVxRTN3Ykw5TTY4aGVwWFc5dU9Tb1RpaHhmZDcvSkdDNm1qRC81Y1RQ?=
 =?utf-8?B?RGNUZWl0SDNjSDVqeVVBc1pXaFZrQ0ZNTlpXck41azRtLzl0VDd0MnIvN29i?=
 =?utf-8?B?RUhuU1RFOFNWUFEvWW9pK3I3Umsrbzc2RkRjaGdSUnV5aWxyK0VaT0VyYTlq?=
 =?utf-8?B?eVVmUk92MU02MVBCajlLUy9hUXRLNWVudzZFZzg3Qlo2amx3SDF4SzJKTUk0?=
 =?utf-8?B?MkpsRWpoRnNrRUREVzBBZnZvVDZ3RHh3MHJMZGZMaCtZcWNKT1RzTGJDR09G?=
 =?utf-8?B?ZlhrcDJLQWdiWVNWNjdCWlErVVp0L2xDWFd1RWZPNjZmQkthNmdDVzFhT0gy?=
 =?utf-8?B?SElIMFJISzVLZXEreXF1a0oxejJadGlPdU9VSUVobWtLQkJBOTEyWHg3QzU0?=
 =?utf-8?B?Nk91WXd5ZllBUFhNd3ZqV0V0RzJEOVRuTjFJbVFBZU5tSWxLNWQwSXhobGc5?=
 =?utf-8?B?VTEyR1A5ckJUVkZER1BCQVd2cVJ1ai9IVjBjN0RlM3kxRlpWWGlFTGx3MXda?=
 =?utf-8?B?ZG0xVFhEQ0JzQk5ybGM1UGJ0U3JCZWhCZmFJQzNWVjN4eHd0TWVaM243aUlP?=
 =?utf-8?B?dWJ6cE5rQmlueDErT3NteUFISStIZ3hGZHRsNml5RWhmYVo1cjZmVUhVb1NZ?=
 =?utf-8?B?M1ZjcEJBYmdCeDV6NllyVTFEUFdSSmVabFY3UW1SRWNONmFZN1p5MHNCK2JS?=
 =?utf-8?B?KzIzcGNudUY0L2RQS0tWYnc5UUxDZG4wVU9wdk9qT3EvVnFuKzJ2bW1SZnVS?=
 =?utf-8?B?QWlXSlg4V1dWcXhRN3o4VlZuMitvcUJaZWpoS2M4YjNDd1lLMytxd1hPbmVC?=
 =?utf-8?B?RC83aVA4cFd0S0p2NFp6YTg2V3lRS0dYUHRNTkNvVDYrclhua2RHMTV5Qjhn?=
 =?utf-8?B?MWpQYktVWUFmVXdpQlJuTGZ2MG9pLzVKOUhNNG92Wmo4OUFyYVVTeGlQQU9a?=
 =?utf-8?B?YmxsQkk1VTV0azlpNXRqSkJwczBScGNZME1UNGJlTVdUR0kyM2drMUoxVnE0?=
 =?utf-8?B?bllkdyt1eE8ycWMzc0tuaVE5OHFkWkw0T1JyczZ6TERLZDlTWlFycU1DbnY2?=
 =?utf-8?B?c0VpaDVEYysyamdTb2d6R0VzYnUzVjBtVTVQMEJtTDY4N1ZVYWhPTGh2SVNz?=
 =?utf-8?B?YlRuamhLVHJMWW9kMmZwc1lkREFlN0w0b2dqU3k0Q1N3M0ZTMXh1WnJ0UTJD?=
 =?utf-8?B?MFdpNnYzRTcrRDBML2QzYmN2UmNVNEdQOEtxaHd1VzBQbG9QMENoakJLcm5W?=
 =?utf-8?B?TDB2WkdNbUZIQXEzWGNkdFAxRzRQTkNEcVk4SGZKbmJyZXZWRXgwYjd1VW91?=
 =?utf-8?B?TW5tVkJSZWtxdGhEQndDKzBZbU1vMXVmbklNTTk5ZEpkUUNoakdSY25VRzAv?=
 =?utf-8?B?c05RZGxNL09YL2tlaWFQdXA2SDJwVzlITnJ2cWlLa0VLSkNWYmlXbGlrNjl2?=
 =?utf-8?B?aFkrb1VHVGtBbit4b21rYWNjUHVQT2VSRVo0aVNtMWNiRS9mVE5YMFUzbDR1?=
 =?utf-8?B?a3BmYUlKTWZnUVVWREh1Q1E4Sjh1UWtZbGY0WDRXL2hzeVZ4TmlRVUFVYVpD?=
 =?utf-8?B?ckRiMS9ydXc1YVRUaTZmakU4RjVldE5kWlYrYzJwclNTTHBTa2NaUUl3a3Fz?=
 =?utf-8?B?NUNaUFJ4dXBJSk9rN2M4bVZEK2hDNzcwNnpWWWpvVExIcXRPQ2FDZEV2VW8y?=
 =?utf-8?B?d2x1aE1DM2ZYcHZkWDZaeURXVjZnPT0=?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	0udXo4zjYsILG562rGI+KTBfk3s1q7pHrmOV05f9nMpRkmZiEauxp5SSTFtjrv0OY+IT5MXq8lPuUEJJZ+1T2oEsXMAtgIjDNZ16hqXHVMw3bI1VcSkflOBoAh22hAIRh/e7j08U8C51W5fSAvee/MMLgtF0TzbvVPdPvOqxTXt2t2kcdpyw8irWe8DcD0TVC1PR+4WMddhzpvLYOcVPSgvKD1W9d+ESJtyT+Y+vBLo+/6ZjDBtuHs164YHhvQoJGkveELtC+nGa3ZKcPIcKDzc2n8gg1fQUlCgZvjh2JBOj74O58qRYj8WfudN2nOi8ST8t7hBrNv/sdNzKHibj7SpY5Ws6/NDxzb9YWEBVq0ENgpjZe3wpCTqiK2NpGR+XThH+29mzrvEDRCMve6g+MabJeOwF3XQSEHrdjCvY3GYbktd5QNZ0s5CW552qz9h9
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 20:52:16.5312
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f3f12ab1-9b39-4ede-f553-08de73e69829
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	BN1PEPF00004682.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4444

On 2026-02-24 15:07, Roger Pau Monne wrote:
> After e4c3755d4dd7 the function efi_halt_system() is unreachable, remove it
> from the file.
> 
> No functional change expected, as the function is not called.
> 
> Fixes: e4c3755d4dd7 ("x86-64/EFI: don't call EfiResetSystem() from machine_halt()")
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Jason Andryuk <jason.andryuk@amd.com>

I see this dropped with --gc-sections, FWIW.

Thanks,
Jason


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 21:56:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 21:56:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240289.1541724 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv0O3-0007VC-Lx; Tue, 24 Feb 2026 21:56:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240289.1541724; Tue, 24 Feb 2026 21: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 1vv0O3-0007V5-Iw; Tue, 24 Feb 2026 21:56:11 +0000
Received: by outflank-mailman (input) for mailman id 1240289;
 Tue, 24 Feb 2026 21:56: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=UmFV=A4=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vv0O2-0007Uz-3C
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 21:56:10 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9e09d4c1-11cb-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 22:56:07 +0100 (CET)
Received: from BY5PR04CA0010.namprd04.prod.outlook.com (2603:10b6:a03:1d0::20)
 by PH7PR12MB5784.namprd12.prod.outlook.com (2603:10b6:510:1d3::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Tue, 24 Feb
 2026 21:56:00 +0000
Received: from SJ1PEPF000026C3.namprd04.prod.outlook.com
 (2603:10b6:a03:1d0:cafe::f5) by BY5PR04CA0010.outlook.office365.com
 (2603:10b6:a03:1d0::20) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue,
 24 Feb 2026 21:55:42 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 SJ1PEPF000026C3.mail.protection.outlook.com (10.167.244.100) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 21:56:00 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Tue, 24 Feb
 2026 15:55:59 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com
 (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 24 Feb
 2026 15:55:59 -0600
Received: from [172.24.237.99] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 24 Feb 2026 15:55:58 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e09d4c1-11cb-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Y8dsQXu+dTGVl9tVtdWyJaNfPMeop6p6JDRW4GLQ3/WwsBQZp271g2HlMLafeH5rS8EeWOnRMNOLy0JncPZcNJEH9eZFifXb8F4CVE1t5cVNcg2uKrB4KUA/nSOEnhqV3KCLWy4JekGD/hFi8cTNxdr9ruhaPK4vscBZrdKfZsxpfYx3vheN6xmNCswcUDOCoPArfKEBmecSyix4ZubeLLBzAu/JBX9imKrwLsCita8zJ71J9Ji/uwBG8FrM79sDMZchEDYG1k0qkkMMd9osY44OR4YjE44X9Lya1+KNg8jhYo6uU+8OQ6M8xkj10fC7vOmMRBvlaR5upPX0WYFcaQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Q3nYmhuSQM5uxl0B7FXxUwnkvVqtlRMd60dlCAFdv28=;
 b=o+9JdrjOOlsPW3/9Irjfz6d/0hgzgRMmOhsf0IDPPYPKKc5uLpblIdaIXNuxMkDV+Lw6wEXevULE4T9VSHu9LrOCPI/8tThnOU7OrEYs8gubKL82mOZ6M1ScqR0dMPCOeV8Xw9Og8Cvg3IL7OARZc1GybwgEc4RbY8mva7AMhzx4rEEMVlR3SmpL5D8iV4rXrKHNH4tlhgR1DFWIT7MQDAJJnCO8X6+SP8FWYN5OGrmpw3Fcze+NxbPes34g45sHTpZa+jUNiL69qClg3Mj3xxSaAxRZHbwwMLIeOgigXXUV6dVb1EcD0c62lBLsPfexN7hX1CX3JO4hOnWJNrB5rQ==
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=Q3nYmhuSQM5uxl0B7FXxUwnkvVqtlRMd60dlCAFdv28=;
 b=HpWiJm/Oa+du2bOnG5kLWg6uE/FRT+DpWW/wGSytekBlS75AZutR4CJYV9RNFmlvRFFyfTRt6PYbgxfm5mzpA6TNUB3+e/WQMUQ2eNXzBQm8QJolSSsawwt0CWRrM00nwThe0cZsHaLhYfOKBRMNK8UFQdz4/VyR6sq9fKGkeuk=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <3484f37d-b85f-47d9-8038-e65846a82647@amd.com>
Date: Tue, 24 Feb 2026 16:56:00 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] vpci/msix: check for BARs enabled in
 vpci_make_msix_hole
To: Jan Beulich <jbeulich@suse.com>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
	<xen-devel@lists.xenproject.org>
References: <20260224025626.26909-1-stewart.hildebrand@amd.com>
 <c23c84be-d4ac-4ec6-b723-a6a76828a1d6@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <c23c84be-d4ac-4ec6-b723-a6a76828a1d6@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ1PEPF000026C3:EE_|PH7PR12MB5784:EE_
X-MS-Office365-Filtering-Correlation-Id: 6c3036eb-6eb3-4d0f-891e-08de73ef7f4d
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?YzlvLzN0ZnRKUVV2d25UeS9SZFpWNUNocTBUc1dWUFBURkRmQ1ZNc21QVFdF?=
 =?utf-8?B?cWdXSUZwUWJlS2l6TE1zTUhUdkh1dzdmYUx1SElleCt2aVUyWE5OcS90U2lu?=
 =?utf-8?B?M0tTM3hHenc1WHRKa1Q0VU5UOFd6bG55UytTamswSkhlOEE0dnVlZjZ0YURE?=
 =?utf-8?B?M0Fkd3NFbXV3MzZYYTdYVzFQOFhPSWxwS3EzN1BFZlR1ZFpPbzZBZW14ZEpB?=
 =?utf-8?B?S3lWMm5VblE3STNubnhna3V3VnhuR2tWUmg1ZGlUWTFOVGp2dDBKb0lxYVRm?=
 =?utf-8?B?WVA4QzZlUU1hTVJWRmI4bGx3ZmorNmJLRWp5QTRoN2VtY2s3VnhYSHFIbndv?=
 =?utf-8?B?VlBjbXpsVzYvdGZHa3c3VzRsVzBMWHlsdzBERVB3czBkMFdDOHZFYmZyVzhH?=
 =?utf-8?B?QXF3ZkN2SHRKVHdTSm00d0NVYlNRVkJ2MlROMTdDSG5VUXNiTkNqSERQSjk5?=
 =?utf-8?B?S01MSUIvMEx4SHdNaGVUdDNwMWVmeFo2QThuVmR6bm1BaENJNU91Sm1lclhW?=
 =?utf-8?B?azViZHhJZzFMRVNHNHVQcERRY2tYd2UrdFM3WkJ6aFp6N0xRSHNkRWNLdTcw?=
 =?utf-8?B?REU4dlFESGdEZXI1M2V6NUt4TTdURVZMNHU4RFlsY3JaSVZhKzZuVjdSQlh2?=
 =?utf-8?B?czFxNmFnVytVQVppUi8xYVE2MTVscTlsTklPS0t5cXJRQzQzcVF0ZC8yT2l4?=
 =?utf-8?B?TzNHYk9seGxqYkc3MlN4dHY0czQ4Sll5UDQyUTBnNXZQVkN1dUoxY1lyVTRV?=
 =?utf-8?B?WnQ2S1dhZzVGY1hMNjZRdUZJZTYzbW9KM0FGdGRQeWdMOGs3bmdMN1djdWZi?=
 =?utf-8?B?a3Y0WStiTk9KUEE1SmNDc25CUytoV1pJZDRzQ3M0eG5wczZBejQ4bGFrQ1VZ?=
 =?utf-8?B?YXVIQ2dWVGM5K1huNTZRa09QTFpEY2x4SHF3SDJKN0QvVDNuU1cyKzluM2dw?=
 =?utf-8?B?UnBLVDk0d25vT1IvOW51QnV1VTI1MTk5eWFxTUpKc3JCZWxZTTN3QU1QRUsz?=
 =?utf-8?B?Zzk1VFZ5ZitNZGZjQlhaRThLclFDNFFCY1lCVHI1RGdxczM3bzN0QzBRSjZs?=
 =?utf-8?B?UmViWEs1Mm5uSFNCRlVibE53b3p2bzlhTVBKNWV4bVlyWXNyZmRXV2xrRkJW?=
 =?utf-8?B?TUdwWTEzOEpCakJ0V3dQaUR5c0Eybkl3emt4UmpYZFVtWUFxcjlxMHJTcUYr?=
 =?utf-8?B?ZS9ITDEyaTZYK1FSTWk3cHQ3R1g1UjVOc2l6bVg4bDQyZ0hzc0xaV3RyZFpC?=
 =?utf-8?B?bi9HbWlWR0RBM2ErWHRNLzgzai9jalo4YkNmYUhnc0RWZW1saXlIbWxZbXJF?=
 =?utf-8?B?YnZ6WkVselordXJlUkl6R2k4THlzQjg0eDhSN1pvL1dlaXBYWUtZcGZoZVpO?=
 =?utf-8?B?d3l3SGhab2s1NTB0S2V0eEdFWWh0T3VvTXJNbXFYbmJKcVVSL05Td1MvcEZj?=
 =?utf-8?B?RmlrVGN1WG0waTNIRlZFbktieWFtT3JNTEsvU1FkUEwyclcrUGRQOTBIMDhU?=
 =?utf-8?B?WnZZMUdqbmM2UWdNOFM5RHBRVEUxWkJENS9FdjMydUltVklSUWM2K0MzZ3d6?=
 =?utf-8?B?OFZheTJ6d1VQckdOaWcwM0VwTVpIY1E3ck01S0JwRExlb2w3ejdzdWJRQ2or?=
 =?utf-8?B?UEdzM3ZYTjNNeFJpcm1MWFFxL3JuOEh3UTlLYVFrZ3pQc2JTaE8wc2MzVmFu?=
 =?utf-8?B?Z0hEdVg1c0dhb2thQy9GU0hhZWMycUl3WXEyWjZWTzJPVjZrOXgvRDc3Nk1s?=
 =?utf-8?B?SmFDY1FyK0FlSFZKSDRQUVRkOEVjWTYvQkdjNVJiUkNVMVJLc3drVTkrY1NL?=
 =?utf-8?B?RnlkZnRobnFzM1V5MmJyQllmZDY0dnBnR05TNUtKT0QydXo0YkFGdWVoVzJV?=
 =?utf-8?B?MHcyc01GUjZxRDdPVlhldE02cnZ6aDBBMmJHY09aQ0lhR2x3WkZHc2t2U0M1?=
 =?utf-8?B?cmxvRG0yVlE2alRsSjRrbUtadzByeHRwVmpSYThZV0tyeHdsTytyZHN0Q2xz?=
 =?utf-8?B?ZnErK25EVUV5Rjc3ZnpvMTArV1ZSWEVnSEZWRmkxOGk5NksvMlNMZWpBd0o3?=
 =?utf-8?B?NjhWM25NQzFtNkJZb3dOcXZPSS9NVGIyaG1iaXlHL0gwekEvNFQ2SGxzUHJj?=
 =?utf-8?B?bjl5ckt1b1UxeWxHZEg2bUh4cUsyYUgwUzJRRURMYjhQZnluZEdwSkFPOWd2?=
 =?utf-8?B?U1g4TExrcXEzWGxtR0NuRUpOVmhqalZZN3pZU3NKbzA5dlpsZUJIakc2TVhw?=
 =?utf-8?Q?9QbBO8XAyR/YzRGzi8uDOHZtmotxMcjkMkoYf3TmEI=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(36860700013)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	xE80uQCYwxSnQ4WO2AzA/SnHqy0Oc9UKZj3DK4ChkMArnkpnw2eESgqQNN5RN3H4F75VeuOgCqfdybfO7tGmADs5N1KFXeSHU0/vDBltT77cG3tApNHb88kzezx8YqTWwamOwmxy5A5K6P5qFeLvTv2PwIlH6RUTKRDXTG1oq3ghTnSLrU+HRaB0Q6iRa9svRrz5Uon8HmYegkcV5RDCLAjgRa8Kf5Tsbdkw0Jw7iFFCDWzU816gWYG2VBcuo+VYRGYbmnxR8of0bUUM5BklViBuJl5hkbyvJTfLgimPuvPZrBBKEIPXW6Eyk/wyCVxgB4C1rPi42jaM9RuTbRJUoYqu/zf/SuZBvxw17QaOlezKOQuyZLuveSlxjqUtgP+8lfpOczFepYwlrkhEX2qjG7kLV/DgEoQbUQknCpT5njRF+mrWB6debVxQfItyybWh
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 21:56:00.2265
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 6c3036eb-6eb3-4d0f-891e-08de73ef7f4d
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ1PEPF000026C3.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5784

On 2/24/26 02:34, Jan Beulich wrote:
> On 24.02.2026 03:56, Stewart Hildebrand wrote:
>> A hotplugged PCI device may be added uninitialized. In particular,
>> memory decoding might be disabled and the BARs might be zeroed. In this
>> case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
>> unconditionally attempts to punch holes in p2m, leading to init_msix()
>> failing:
>>
>> (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 attempt to punch holes if the BARs
>> containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
>> for checking if a BAR is enabled, and add a check for the situation
>> inside vpci_make_msix_hole().
>>
>> Move the vpci_make_msix_hole() call within modify_decoding() to after
>> setting ->enabled.
>>
>> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>> ---
>> Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2344925375
>>
>> v1->v2:
>> * new title, was ("vpci/msix: conditionally invoke vpci_make_msix_hole")
>> * move BAR enabled check to inside vpci_make_msix_hole()
>> * introduce vmsix_table_bar_valid() helper
>> * move vpci_make_msix_hole() call within modify_decoding() to after
>>   setting ->enabled
>> * split typo fixup to separate patch
>>
>> v1: https://lore.kernel.org/xen-devel/20250812151744.460953-1-stewart.hildebrand@amd.com/T/#t
>> ---
>>  xen/drivers/vpci/header.c | 26 +++++++++++++-------------
>>  xen/drivers/vpci/msix.c   |  4 ++++
>>  xen/include/xen/vpci.h    |  6 ++++++
>>  3 files changed, 23 insertions(+), 13 deletions(-)
>>
>> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
>> index 739a5f610e91..6a28e07a625b 100644
>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -122,19 +122,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];
>> @@ -164,6 +151,19 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>>              bar->enabled = map;
>>      }
>>  
>> +    /*
>> +     * 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
>> +
>>      if ( !rom_only )
>>      {
>>          pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
>> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
>> index 516282205a53..142cfbae59d5 100644
>> --- a/xen/drivers/vpci/msix.c
>> +++ b/xen/drivers/vpci/msix.c
>> @@ -598,6 +598,10 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>>      if ( !pdev->vpci->msix )
>>          return 0;
>>  
>> +    if ( !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_TABLE) &&
>> +         !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_PBA) )
>> +        return 0;
> 
> What if one is enabled and the other isn't? Doesn't the check need to move ...
> 
>>      /* Make sure there's a hole for the MSIX table/PBA in the p2m. */
>>      for ( i = 0; i < ARRAY_SIZE(pdev->vpci->msix->tables); i++ )
>>      {
> 
> ... into the loop,

Yes, will do.

> and then apparently also need mirroring in the hwdom-only
> loop further down?

I don't think that's necessary, the logic there is idempotent, and it's not
dealing with p2m.

Thanks for taking a look.


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 22:04:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 22:04:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240301.1541734 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv0WU-0000rZ-KG; Tue, 24 Feb 2026 22:04:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240301.1541734; Tue, 24 Feb 2026 22:04: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 1vv0WU-0000rS-GM; Tue, 24 Feb 2026 22:04:54 +0000
Received: by outflank-mailman (input) for mailman id 1240301;
 Tue, 24 Feb 2026 22:04: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=UmFV=A4=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vv0WT-0000qu-K7
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 22:04:53 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d7592d96-11cc-11f1-b164-2bf370ae4941;
 Tue, 24 Feb 2026 23:04:52 +0100 (CET)
Received: from SA1PR03CA0018.namprd03.prod.outlook.com (2603:10b6:806:2d3::29)
 by CH3PR12MB8709.namprd12.prod.outlook.com (2603:10b6:610:17c::20)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb
 2026 22:04:45 +0000
Received: from SN1PEPF0002636D.namprd02.prod.outlook.com
 (2603:10b6:806:2d3:cafe::3f) by SA1PR03CA0018.outlook.office365.com
 (2603:10b6:806:2d3::29) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue,
 24 Feb 2026 22:04:38 +0000
Received: from satlexmb07.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_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 22:04:45 +0000
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Tue, 24 Feb
 2026 16:04:44 -0600
Received: from [172.24.237.99] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Tue, 24 Feb 2026 16:04:44 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d7592d96-11cc-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=H5XuStMpbiFwQYpZKRaMQNlh+5j+CMUl3nqYBZT+s0EBRjklfhW6wq90sYkLfJOD5XSZKLje/8Td9//uS4wpYi3R2x1CDSvzXyGr6+qG040KVo8vogtOey9MB0OV3PkfpKv8QpYrDFHa64WkLmHtRGrqMc2a0fQ2byPJeH1Xdta/mt2hDWF3ojUZW+KQVzREyA3PFEZsB0n70BQD5qmK60vfYxuQxld5UzIB2Piqj5Q9phYHR+5JhupD6sFAyp7ymIEMR4G5/9sqYEodKpA0CfTU5FsAaHzOOTzN/qyfvRt3+y0C4eJlNDqtG7YnfFQHSs5ZQUolKpmTBeC+HegVRw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=f6vQHplJ48zyA5Tgzvn+0UK5H1Jz87rTVE0KLPy34eo=;
 b=KJdxeUbcG08Fzl39/kBMmMs+T52i+eQTwGhgI02/EtZJ9CrewtPfi0RhEz1puWrpodL7AiI8nXBYMMmBRK4PfaElF9rcB+UYSy4z1JmUMSEePeUM1LqpLbqo1rgj6Yz/AqtJZYITpudGqucUkrJcPOO5JnKDOADZ4sssS/PaeEx6l9XtjUGEorZzVNFqlWScZWStUhy6a3JAOay+/xN8/TfkCpyI5onPXKF2UC309Gs4/8E36jgLICHtGpvGUUDOmbpjHWr+ydcKjUlcmO7FVi19Q8yWev/lmPhXqYn5cAIKbcPffKl1UusYvfgsTrGqpQi38lWFwetci8GVZ8DHPw==
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=f6vQHplJ48zyA5Tgzvn+0UK5H1Jz87rTVE0KLPy34eo=;
 b=fBaVime2o04t0QyRdwWOOGgq65ANIv8bbLIHt6xkM/h2pRH1d6+gFrrXYUqMvJT29i3OPC/K9+DuWXyl/EFthh2F11iHGeEHVPEmzo7+T1F3feIFCE6IeMdDMfEwQDVuxRJj09wWU9bnRioQmaTwEV9xlF3Wu7d0xKNKRq/YpXA=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <c9bc8e1b-8e94-48ba-bc0e-194e11fb4bf0@amd.com>
Date: Tue, 24 Feb 2026 17:04:45 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] vpci/msix: check for BARs enabled in
 vpci_make_msix_hole
To: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
CC: <xen-devel@lists.xenproject.org>
References: <20260224025626.26909-1-stewart.hildebrand@amd.com>
 <aZ2EFPfdv-_1IT-R@macbook.local>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <aZ2EFPfdv-_1IT-R@macbook.local>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN1PEPF0002636D:EE_|CH3PR12MB8709:EE_
X-MS-Office365-Filtering-Correlation-Id: 1fa1d240-f373-4778-e43b-08de73f0b830
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|376014|36860700013|82310400026|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?R2NaNTZLNTdmRXFqYmRjWHUzNW5LWHl6SGwwdDhLQ0ZZVGxzZ0trbmNmdEhr?=
 =?utf-8?B?RW95STRVaG9XSjA1V2k1QWdEV2JJQmszU3VPVGFJYndWZW90REJWRWVzV3cz?=
 =?utf-8?B?NmZXN2xjdFdPVmlrTWlBUWN0NUpDQkZKWmNFNmRIL3ZYZTdRRWdhY1lsWE1R?=
 =?utf-8?B?Rnp0SjMybUQ3Mi9HbWJJVnZMMnV3MXZNVDBJUnJYUVZ2QnFKY1dISVZmM2ty?=
 =?utf-8?B?TXV5bkdkYUkxblF1TkhvWUJsVVNNY1dhNDFKbDd2dERnZEFDd3dOd3VRWGFk?=
 =?utf-8?B?akpubFo3Z0hobUN5VEtPakxsRFFvZjAxV3JnLy9rNldqcEkzUmVsQjN0V21h?=
 =?utf-8?B?eUJGdmVXRFQ5cXBlR3dma1pEYkpTdWo0dUZKODlTdXB4V0Y3OFBIRmdTazAx?=
 =?utf-8?B?M2h6U0lSYkc0UVc3TWNRVVNNajBEMVhRZUh6Zm5Nd3UrMlZGWUl2aXpwRnBB?=
 =?utf-8?B?TmxHQzltU0V6VHdGQnQybXhzaFBnNTFaRXNIRElaaXJHaS9BSXY0a0gycFhw?=
 =?utf-8?B?NzlLQUhLNmhWL3FpTzV6eGZpM2FTWUprdkQxMS83VG1hT0d2eDZrNUlqbWp4?=
 =?utf-8?B?NmFCY0ZuM2ZqZG41YTdVSjg4eXRQV3JybHdNZVcwajB3cFE5T2RYd0pWbm5s?=
 =?utf-8?B?ZE9rNHVyR2NNMHVUNzhvWnBOWkV5dlBqS0xQWTBIMzltZkkwV3d6T0hiekg3?=
 =?utf-8?B?Y0RXc0cyMkxKSkFzNmtGcGxvNWduVTlJT1Nha2xlalZReTBGZE5EanlEQ2FL?=
 =?utf-8?B?b3NRV3I3OFBuWkZORXFIN0dqT2NqL1VmZEN6cUhMejhCQ0VzeGlDQ3Q2bzJD?=
 =?utf-8?B?RHUya2wvOWlYeWxIM0JQV2t6VlIxQk1SbjdwNngrWjdnRmZqYVFyR1NTRjFm?=
 =?utf-8?B?TysrTndkYkpVckZZcXRKaTVENkJXNVR4c08yTTdlQWIvMFJ2U2xpempUWFAy?=
 =?utf-8?B?TldFS0lVdHAxd29nem1VNDFLbDZ0Vy8vYWIza0lyTmJMOGVaQnlDcllXL3Mr?=
 =?utf-8?B?dEtVSWc5WTZsMmo0dks2VFFTbnREYk84YjdKYURwanluN0tZNlgxUmZXRytO?=
 =?utf-8?B?ZmZwZjhHUEkvdmt5U2duTVpWMkVwWEwrN0JBeUxIQi9JWGZTTDZON1FGNHRl?=
 =?utf-8?B?SWRWdGc4VGRJdXJvc3lVNHBpNkZEa1BDWGlmeW8zWGVVVEpDZmRiOHhaUVRs?=
 =?utf-8?B?VXBpdW95Z0ZtbU5mai9kNGUxSUtiUzNPVDBNMWN3TzFwWU05ck1CK0grTHBm?=
 =?utf-8?B?a1FSbnhkamJ4MEE3ZG4zWFpMSTB5ZDg1Uk5YNTdCakMyZ3U1N1NtNldrR0Ry?=
 =?utf-8?B?MERFQTdxb1hjN2t5YmxUenFneVFNTU9iN2hNN2hZQUhObGhYZUZKTGlseEY4?=
 =?utf-8?B?TnBwbjNZdlRBQ1M3WmFkYTIxOXZsWUhrU1pySWZKb2NaV2lPcXBNb3NZdHVE?=
 =?utf-8?B?cklaTUxncENWRVBqYzlpVzBtcEhlL1hiSGFPcE55U3RSWkliRUZnMkdKYnZP?=
 =?utf-8?B?c2Ria0xoZGc2ZTdWTE1maEhXTlRNZmVzeTJaQVJpRUhwM3R3RmRRTDJ1a3Fa?=
 =?utf-8?B?NzI5ZC9oRldPNlRNdjhHTWF1cDV4cSswUmFQNjN2TFhFOWJVckJBTHp1OEg3?=
 =?utf-8?B?WW5SZkJ4QjhkMVdzWTBzdTFxamFqd3lleUlCZnBlUVFpL2RxYUtxU0hNQkxz?=
 =?utf-8?B?L1ByZC96VUs1aXBTMm5QcnplK1MrY3pValFDaUlzQUg0Z0Y0ODdjazRqR1Va?=
 =?utf-8?B?d0R2NVBPb0htWUY4UXdnQktIeGFCc0k4NHl3V3l1S016R2RYRFI4VHNoeWU2?=
 =?utf-8?B?VTMxeFJXcVUvUVlORisyYkpNZS9zb1FNdkpFd3NYTnBlTVJUQU9GOGl1NjZz?=
 =?utf-8?B?TGk0ZTN6YkpVRE5UdW5ic01MN1lDbUxaLzgxaTdSa1dVOC9GOHM5T2tEVkQy?=
 =?utf-8?B?VjRLQjRnc3dCR3QrQVBhRDBzcVVkNFV3eGhSRkNzSnNMTHRPMGNKYjhPRjdj?=
 =?utf-8?B?T2RFQjZHQTM1L3BnWitsdXNWNDVrTWNEV3c4alFiTS9mT0I0OHZVV25PcmJk?=
 =?utf-8?B?QnA4MklLaTZNVnUwd2lNbGtodTNpSGd1QWk0M09sOWJlaWpUWEhDMjdQNzY1?=
 =?utf-8?B?cHNJZW51QmdLLzZ3T2FRcHpuRTdoTVNSWVJ2dmRDSXhEVW5UM3ZVRzBDa2lp?=
 =?utf-8?B?YWVnZFBLQWNFb2ROaGVIWnpmY3JiNzZ1b2R5b1VDM0ZqQWVxZkJWWmVKdE41?=
 =?utf-8?Q?GsHDUwUTVpT1w42XJMCKvnT1LuWRAX34sdS5WrQHI4=3D?=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	Wzf03sVXyvb2zQzvFYhcAjsyFNkG8bj0xn/WoYnA0iuEks+Kop7KpBL8lOfykFWTgJrcxLQ430hPQgp867ZTTb7zNolBUsKWOZPwURkvksV7TeIHP7kHPQGOMMcn8LxbIO55ladn+Jz24LmTFgmlkQubZty4AuAGPnUEj38Z2soGOkCn9Ij1qHZoR0KBEragelmggtgdSX0o5c5BJdUd53KKzuaD5FG6udnlM5Lq95YUXrXR1s5Bpedch9ASlzYH1Gqfv7z79MNuv7kRaNQNSS3ujJarAygG4IJQ71F1rkyusAha/9ZbLurL9DCwXBEza9F6xFpIAT0YSWTrR013EO4G3GeEw0GE8mzb9LF2wO6CbH4ipXZkD2ZBgbtTL3okWBdiNZSgQWt7OkAVLPVmjBiiZ6Aeb2SEuZhGsPthbT45PQ9IhJzsAfFoIh3xoze+
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 22:04:45.2079
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 1fa1d240-f373-4778-e43b-08de73f0b830
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SN1PEPF0002636D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8709

On 2/24/26 05:57, Roger Pau Monné wrote:
> On Mon, Feb 23, 2026 at 09:56:24PM -0500, Stewart Hildebrand wrote:
>> A hotplugged PCI device may be added uninitialized. In particular,
>> memory decoding might be disabled and the BARs might be zeroed. In this
>> case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
>> unconditionally attempts to punch holes in p2m, leading to init_msix()
>> failing:
>>
>> (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 attempt to punch holes if the BARs
>> containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
>> for checking if a BAR is enabled, and add a check for the situation
>> inside vpci_make_msix_hole().
>>
>> Move the vpci_make_msix_hole() call within modify_decoding() to after
>> setting ->enabled.
> 
> I would maybe make it clear that the movement of the
> vpci_make_msix_hole() call in modify_decoding() is due to the extra
> requirement added in this patch that ->enabled must be set before
> calling the function.
> 
> "As a result of the newly introduced checks in vpci_make_msix_hole(),
> move the ..."
> 
> Or something along the lines.

Will do

>>
>> Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
>> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
>> ---
>> Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2344925375
>>
>> v1->v2:
>> * new title, was ("vpci/msix: conditionally invoke vpci_make_msix_hole")
>> * move BAR enabled check to inside vpci_make_msix_hole()
>> * introduce vmsix_table_bar_valid() helper
>> * move vpci_make_msix_hole() call within modify_decoding() to after
>>   setting ->enabled
>> * split typo fixup to separate patch
>>
>> v1: https://lore.kernel.org/xen-devel/20250812151744.460953-1-stewart.hildebrand@amd.com/T/#t
>> ---
>>  xen/drivers/vpci/header.c | 26 +++++++++++++-------------
>>  xen/drivers/vpci/msix.c   |  4 ++++
>>  xen/include/xen/vpci.h    |  6 ++++++
>>  3 files changed, 23 insertions(+), 13 deletions(-)
>>
>> diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
>> index 739a5f610e91..6a28e07a625b 100644
>> --- a/xen/drivers/vpci/header.c
>> +++ b/xen/drivers/vpci/header.c
>> @@ -122,19 +122,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];
>> @@ -164,6 +151,19 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
>>              bar->enabled = map;
>>      }
>>  
>> +    /*
>> +     * 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
>> +
>>      if ( !rom_only )
>>      {
>>          pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
>> diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
>> index 516282205a53..142cfbae59d5 100644
>> --- a/xen/drivers/vpci/msix.c
>> +++ b/xen/drivers/vpci/msix.c
>> @@ -598,6 +598,10 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
>>      if ( !pdev->vpci->msix )
>>          return 0;
>>  
>> +    if ( !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_TABLE) &&
>> +         !vmsix_table_bar_valid(pdev->vpci, VPCI_MSIX_PBA) )
>> +        return 0;
> 
> As Jan pointed out, this needs to be moved inside the loop.

Will do.

Thanks!


From xen-devel-bounces@lists.xenproject.org Tue Feb 24 23:12:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 23:12:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240317.1541744 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv1Zs-0000yd-4p; Tue, 24 Feb 2026 23:12:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240317.1541744; Tue, 24 Feb 2026 23:12: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 1vv1Zs-0000yW-0x; Tue, 24 Feb 2026 23:12:28 +0000
Received: by outflank-mailman (input) for mailman id 1240317;
 Tue, 24 Feb 2026 23:12: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=TZAD=A4=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vv1Zq-0000yQ-PJ
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 23:12:26 +0000
Received: from hermes.ariadne.space (hermes.ariadne.space [149.248.47.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 46bbf3be-11d6-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 00:12:24 +0100 (CET)
Received: from helios (unknown [100.74.42.12])
 by hermes.ariadne.space (Postfix) with ESMTP id 5A65D2685AB;
 Tue, 24 Feb 2026 23:12:22 +0000 (UTC)
Received: from phoebe.taild41b8.ts.net (unknown [172.19.0.1])
 by helios (Postfix) with ESMTPSA id 4D34216000D707;
 Tue, 24 Feb 2026 23:12: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: 46bbf3be-11d6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space;
	s=dkim; t=1771974742;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding;
	bh=8V2La6Men6eXkqMSn0jYq+fe6TyrquuJznUHMk/qitc=;
	b=OGd4h3N5k3l0eL03XMTn4dBdfGmspN1HdTecg12lzbQzS0dXnb0K8Gb7t8dctm7sisbS8r
	CQ68faHuJqzY3NOTTfagaY7PQOA/97D3PX7lnpD+0ZdRYKv1CSzG9RpQAGMG/DW1R5jEGh
	e7r9RjItngnsYPbh13v2nw91L+yWfTI=
From: Ariadne Conill <ariadne@ariadne.space>
To: xen-devel@lists.xenproject.org
Cc: Ariadne Conill <ariadne@ariadne.space>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Steven Noonan <steven@edera.dev>
Subject: [PATCH] xen/vpci: zero guest-visible BAR addresses to ensure domU asssigns its own
Date: Tue, 24 Feb 2026 15:12:15 -0800
Message-ID: <20260224231216.6203-1-ariadne@ariadne.space>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Steven Noonan <steven@edera.dev>

If we just use the host's BAR addresses, the domU might not attempt to
reconfigure the BAR ranges and may never try to map them with the IOMMU.
Zeroing them ensures the guest kernel knows the BARs are not configured
and needs to make its own choices about where to map the BARs.

Signed-off-by: Steven Noonan <steven@edera.dev>
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
 xen/drivers/vpci/header.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 739a5f610e..852dfd8ae3 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -1011,7 +1011,7 @@ int vpci_init_header(struct pci_dev *pdev)
         }
 
         bars[i].addr = addr;
-        bars[i].guest_addr = addr;
+        bars[i].guest_addr = is_hwdom ? addr : 0;
         bars[i].size = size;
         bars[i].prefetchable = val & PCI_BASE_ADDRESS_MEM_PREFETCH;
 
@@ -1034,7 +1034,7 @@ int vpci_init_header(struct pci_dev *pdev)
         rom->type = VPCI_BAR_ROM;
         rom->size = size;
         rom->addr = addr;
-        rom->guest_addr = addr;
+        rom->guest_addr = is_hwdom ? addr : 0;
         header->rom_enabled = pci_conf_read32(pdev->sbdf, rom_reg) &
                               PCI_ROM_ADDRESS_ENABLE;
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 23:12:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 23:12:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240322.1541754 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv1aF-0001Jr-B5; Tue, 24 Feb 2026 23:12:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240322.1541754; Tue, 24 Feb 2026 23: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 1vv1aF-0001Jk-85; Tue, 24 Feb 2026 23:12:51 +0000
Received: by outflank-mailman (input) for mailman id 1240322;
 Tue, 24 Feb 2026 23:12: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=TZAD=A4=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vv1aE-0001JI-3m
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 23:12:50 +0000
Received: from hermes.ariadne.space (hermes.ariadne.space
 [2001:19f0:8001:704:5400:5ff:fe8c:fac5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 51f353ab-11d6-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 00:12:44 +0100 (CET)
Received: from helios (unknown [100.74.42.12])
 by hermes.ariadne.space (Postfix) with ESMTP id 41A442685B4;
 Tue, 24 Feb 2026 23:12:41 +0000 (UTC)
Received: from phoebe.taild41b8.ts.net (unknown [172.19.0.1])
 by helios (Postfix) with ESMTPSA id 3D4F116000D707;
 Tue, 24 Feb 2026 23:12: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: 51f353ab-11d6-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space;
	s=dkim; t=1771974761;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding;
	bh=skLgyrDg/ANIiJAiIyTNJyl/Z6YLJFfAYHOFK7Inel8=;
	b=rLGo077WQtI4v1gc+7PK0iUE0xR4SoMmr59njr6IUbZK5srVtJAdGgB6qsY8DnJOUV9UBk
	uxvNuf1KUEoeF3wVWfOtYKxX/FVQwHJ059vHUA5ufQvCIwD30EC3+Wju9SJIaJhy8pRs1E
	LNna8VSvPp/WS0XaeRBhzswhNuNTNSQ=
From: Ariadne Conill <ariadne@ariadne.space>
To: xen-devel@lists.xenproject.org
Cc: Ariadne Conill <ariadne@ariadne.space>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Steven Noonan <steven@edera.dev>
Subject: [PATCH] xen/vpci: do not use pci_sanitize_bar_memory for domU
Date: Tue, 24 Feb 2026 15:12:33 -0800
Message-ID: <20260224231235.6277-1-ariadne@ariadne.space>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Steven Noonan <steven@edera.dev>

This function should only be used for the hardware domain, because it
compares addresses against the host e820 map.

Signed-off-by: Steven Noonan <steven@edera.dev>
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
 xen/drivers/vpci/header.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 852dfd8ae3..1f930b2a1f 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -394,13 +394,15 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
             }
         }
 
-        rc = pci_sanitize_bar_memory(bar->mem);
-        if ( rc )
-        {
-            gprintk(XENLOG_WARNING,
-                    "%pp: failed to sanitize BAR#%u memory: %d\n",
-                    &pdev->sbdf, i, rc);
-            return rc;
+        if (is_hardware_domain(pdev->domain)) {
+            rc = pci_sanitize_bar_memory(mem);
+            if ( rc )
+            {
+                gprintk(XENLOG_WARNING,
+                        "%pp: failed to sanitize BAR#%u memory: %d\n",
+                        &pdev->sbdf, i, rc);
+                return rc;
+            }
         }
     }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Tue Feb 24 23:13:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Tue, 24 Feb 2026 23:13:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240326.1541764 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv1aO-0001fw-Iy; Tue, 24 Feb 2026 23:13:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240326.1541764; Tue, 24 Feb 2026 23: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 1vv1aO-0001fo-FS; Tue, 24 Feb 2026 23:13:00 +0000
Received: by outflank-mailman (input) for mailman id 1240326;
 Tue, 24 Feb 2026 23: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=TZAD=A4=ariadne.space=ariadne@srs-se1.protection.inumbo.net>)
 id 1vv1aN-0000yQ-Dw
 for xen-devel@lists.xenproject.org; Tue, 24 Feb 2026 23:12:59 +0000
Received: from hermes.ariadne.space (hermes.ariadne.space
 [2001:19f0:8001:704:5400:5ff:fe8c:fac5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5a80c110-11d6-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 00:12:58 +0100 (CET)
Received: from helios (unknown [100.74.42.12])
 by hermes.ariadne.space (Postfix) with ESMTP id 6D17A2685B4;
 Tue, 24 Feb 2026 23:12:55 +0000 (UTC)
Received: from phoebe.taild41b8.ts.net (unknown [172.19.0.1])
 by helios (Postfix) with ESMTPSA id 66F4216000D707;
 Tue, 24 Feb 2026 23: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: 5a80c110-11d6-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ariadne.space;
	s=dkim; t=1771974775;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:cc:mime-version:mime-version:
	 content-transfer-encoding:content-transfer-encoding;
	bh=SFbO8S6kahHkVMcy8JXpfMeiRBJODD3mjCpF+ZaBOXY=;
	b=a5j6prDMV454T99JO2AWQz9UNosw+0WnO5ptwI7XWfoAJWWeiy5xT6YBz6yah7TeG7KNrh
	crSk3OrWTxXYyDqpH9/0crRGlR7fUG4CZVHAFX+fLY7cAEgP2wW6rX9JVFotwhL+LSk8dC
	Gh69Ep//h9amRY9/tEjLGQCaZs0ks0w=
From: Ariadne Conill <ariadne@ariadne.space>
To: xen-devel@lists.xenproject.org
Cc: Ariadne Conill <ariadne@ariadne.space>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stewart Hildebrand <stewart.hildebrand@amd.com>,
	Steven Noonan <steven@edera.dev>
Subject: [PATCH] xen/vpci: automatically use iomem_permit_access for PCI device BARs
Date: Tue, 24 Feb 2026 15:12:48 -0800
Message-ID: <20260224231249.6327-1-ariadne@ariadne.space>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Steven Noonan <steven@edera.dev>

With vPCI, you shouldn't need to use xen-pciback for the device, so the
memory access permissions need to be defined somewhere. This allows vPCI
to automatically define the access permissions so that the domU can map
the BARs via IOMMU.

Signed-off-by: Steven Noonan <steven@edera.dev>
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
---
 xen/drivers/vpci/header.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 1f930b2a1f..ad3c09667f 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -1017,6 +1017,18 @@ int vpci_init_header(struct pci_dev *pdev)
         bars[i].size = size;
         bars[i].prefetchable = val & PCI_BASE_ADDRESS_MEM_PREFETCH;
 
+        if ( !is_hwdom )
+        {
+            int rc = iomem_permit_access(pdev->domain,
+                                        PFN_DOWN(addr),
+                                        PFN_DOWN(addr + size - 1));
+            if ( rc )
+            {
+                printk(XENLOG_WARNING "Failed to grant MMIO access for BAR%d: %d\n", i, rc);
+                goto fail;
+            }
+        }
+
         rc = vpci_add_register(pdev->vpci,
                                is_hwdom ? vpci_hw_read32 : guest_mem_bar_read,
                                is_hwdom ? bar_write : guest_mem_bar_write,
@@ -1040,6 +1052,18 @@ int vpci_init_header(struct pci_dev *pdev)
         header->rom_enabled = pci_conf_read32(pdev->sbdf, rom_reg) &
                               PCI_ROM_ADDRESS_ENABLE;
 
+        if ( !is_hwdom )
+        {
+            int rc = iomem_permit_access(pdev->domain,
+                                        PFN_DOWN(addr),
+                                        PFN_DOWN(addr + size - 1));
+            if ( rc )
+            {
+                printk(XENLOG_WARNING "Failed to grant MMIO access for ROM BAR: %d\n", rc);
+                goto fail;
+            }
+        }
+
         rc = vpci_add_register(pdev->vpci, vpci_hw_read32, rom_write, rom_reg,
                                4, rom);
         if ( rc )
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 05:13:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 05:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240362.1541774 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv7Cx-0000it-6U; Wed, 25 Feb 2026 05:13:11 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240362.1541774; Wed, 25 Feb 2026 05: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 1vv7Cx-0000il-2Q; Wed, 25 Feb 2026 05:13:11 +0000
Received: by outflank-mailman (input) for mailman id 1240362;
 Wed, 25 Feb 2026 05:13: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=MQeS=A5=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vv7Cu-0000if-T7
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 05:13:08 +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 ab1c2cbe-1208-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 06:13:06 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so55721565e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 21:13:06 -0800 (PST)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd750701sm46374715e9.11.2026.02.24.21.13.04
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Tue, 24 Feb 2026 21:13:05 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ab1c2cbe-1208-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1771996386; x=1772601186; 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=j0v0q58T93WLY+QFmTAFfQHATj0wMqCjYTuLixMjNSE=;
        b=n6d+QnCVc4gFYa/B3eyCzHFnO0bCfL3nm+dr4RoTGW+x1g9t4UZU5SCvpkzZnMc7J0
         BFwt1l4yjMHV6EaNV/1IMgelGAztNZBYWr4qR8cZETZBvh7qxSKKKjN4fYamLWUWU5/U
         CQ2hitAiurNV7ypUsNnXrhGncGLg8RHE8kP031aTeoSIkV1R2hOSg6UbsNeeA5A9JKzy
         hlvmpcF0CeA9G5n51ih1fTDR+MS8NmM+kLJBbi+Xnt/qYIjUAHHflx0h+0pbRoPCKCuS
         +eQe+UdoW7TFXCHBhrsLH6BbF27jsypYZ6IKM9U1dzgyUHRp0eMBQv3fcn+6oaF3tQXf
         tZvw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771996386; x=1772601186;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=j0v0q58T93WLY+QFmTAFfQHATj0wMqCjYTuLixMjNSE=;
        b=GPuBRa+j7/LL1S2p8kWPmELYUEKHxUlp+gHVr4C7Z2F2PX87hLD91aV6gMOE2vYeoI
         J89RoX+gwq2wdGo+xB/Qo3Xc3hjDtDtkIC/7QmezE/UzUM9r3Udl9jfi/+fRp44LrZ75
         Jo5y/rRRh8MZB3+a+8OKBOV7Xoh4bYHU6mLZoJaHtWs3B2V3rjbpol+IbmqHqxAZnBA/
         23aOXbRr1Mb2RS3Cj09PEMFO2CCIWIsDTxJzZn6M3CjM+lUF7k+ZOjuSnYG1DtEwhlWN
         WstiF3q7DzC5yq/cXgAirpIt7pev74PjZpl+e1TDlScba/1bod0hZJIq5pxg3zGrH15y
         wvZA==
X-Forwarded-Encrypted: i=1; AJvYcCUcYw/66L0tcZ/R//gJvbarD7bNPiziboavbTVq3o+sVVyhvxcKjt/4BlOc96uzeX0yBBqSLl/TXhA=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yws7kGRleOtfwRwBvjZVFbgqyXccELvazuc1I1swKN1/XQEuMj7
	saPfJaYd4wwVUWuFMryNynTK/l1t1NqC3XLS/gEfbfXpW0AWsiyWK+ihR2K8K5AqU/Y=
X-Gm-Gg: ATEYQzwuivzJvYfZlxUcAm4uV9KdDj9bXoX9qxQWBwqpNldyGbAK1d1j8wOBLV0O+H9
	ilTjpZ6sq7i8Ixo6DEcjjZOa4gwC3ahiNv0JVvVa8Y+lMsbDW+A2aoXZHgGQw6seudi1Q0g7BGA
	IhW8QInzIizeVdL32zuRXxtt1etXj3DTXdTp8SDf/dTYiEayQ4mzSOYn6PFwoyayyEXwVtTYIbR
	JWsD8UsJdFh2MkHCgeRSze91TR6GjLiEUpI+R+6JMmGDJyLMLkMHAXd/02MjBPwxE2uToVWPxMx
	wNcKRMFtpb2kpWasX3CmofVoucpzlz6iF3pEBHv9KWgbl7RUiI1yVpHN6/prh04wUsRyws8TgNp
	ETAFyx2LNpm6Ap4xZbQTt4p4fSusOKiAZMCMDy6ehgHBi4bVXmVM/WgswksPoabffIukRR5yls+
	yrSXVYr2jp2PSQnRJarWHNtLF4ButZhcgBx4Px3zMbNoScHdClRfNMvhsqRtsfYX/2AhfsC6kc
X-Received: by 2002:a05:600c:4fd3:b0:47e:e20e:bb9c with SMTP id 5b1f17b1804b1-483a95fb0a0mr214322895e9.8.1771996386044;
        Tue, 24 Feb 2026 21:13:06 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH 0/5] accel: Try to build without target-specific knowledge
Date: Wed, 25 Feb 2026 06:12:58 +0100
Message-ID: <20260225051303.91614-1-philmd@linaro.org>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

Code in accel/ aims to be target-agnostic. Not all accelerators
are ready for that, but start by enforcing a few easy ones.

Philippe Mathieu-Daudé (5):
  accel/kvm: Include missing 'exec/cpu-common.h' header
  accel/mshv: Forward-declare mshv_root_hvcall structure
  accel/mshv: Build without target-specific knowledge
  accel/hvf: Build without target-specific knowledge
  accel/xen: Build without target-specific knowledge

 include/system/mshv_int.h | 5 ++---
 accel/kvm/kvm-accel-ops.c | 1 +
 accel/mshv/mshv-all.c     | 2 +-
 accel/hvf/meson.build     | 5 +----
 accel/mshv/meson.build    | 5 +----
 accel/xen/meson.build     | 2 +-
 6 files changed, 7 insertions(+), 13 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 05:13:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 05:13:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240363.1541785 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv7D1-0000we-Gh; Wed, 25 Feb 2026 05:13:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240363.1541785; Wed, 25 Feb 2026 05:13: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 1vv7D1-0000wX-CL; Wed, 25 Feb 2026 05:13:15 +0000
Received: by outflank-mailman (input) for mailman id 1240363;
 Wed, 25 Feb 2026 05:13: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=MQeS=A5=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vv7D0-0000if-Ak
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 05:13:14 +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 af52f14b-1208-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 06:13:13 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso69995835e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 21:13:13 -0800 (PST)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bfcbf894sm2825775e9.16.2026.02.24.21.13.11
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Tue, 24 Feb 2026 21:13:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: af52f14b-1208-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1771996393; x=1772601193; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yqrb1njuSeGzwFOqvJshYg5hho1sLouIHptMUptf6Ks=;
        b=dcitrbUJ8dgQnl8EnkT7OO02wnGhVpS3hwZlSIbS4/dFLVPGMszetSped4YgxcQevv
         BCtmwgLbu9svuLfk98557TnQBU5k0vwTNe4klzkUpwzPT5gmVoigbObJoeLRyYH87+X/
         T38ieABZcMz15uhbEGo+urVEyMnyULue7DrwaUhl4gkegYk3kAzr6Bygfg/hpEXL/gvk
         EI6/1jvG/VOjI34yTRVSSfvvK5mfo0yvwYp56vGgL0fkEQd5sHW2Ho+yE2Qq8GE/jEBD
         WhxGwZ2sm2jIHrn799RkYMTWEc28+h9YhWDUyLr9RpmeMfbbrVzGCWneVVAWBwDESaH2
         o8Vg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771996393; x=1772601193;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=yqrb1njuSeGzwFOqvJshYg5hho1sLouIHptMUptf6Ks=;
        b=D6dwvVebESyeemdlXHuhncGjz+/YdVlttS3IqjBTo5Le9MdJfrEPc9Ml+QR+4JOotX
         tq2uDMepOiHMFYh+oGqQa79DdFVrybeCoEbJd84gvpFm0TCcQM/Ass2dakfC8dLlYPq9
         TAjmJXFz5KsOUNwU6CbliUqqKfSAukaLXHgLGKxV/7Yps5vFvHOqv3aKpGd4vE7cWh6l
         GgmLGtM+G6bcQAHTAEAqABNFxdwfGmDaXipvYFNCIzqFT/o6zOhOIXR5JVdLR79ZPAHU
         TZr/tHoLj3hoYLM9MJjhw2ufQk22454CAfRYgPDGse/s4IknHz4kv7Gs7cfwGYs92uZ4
         6QBA==
X-Forwarded-Encrypted: i=1; AJvYcCWmLJvmM4h/GG99oMYl+YaBeak1+6aULMKv35Em72d1WZcxGuMYRbJUUpVb2H/iVTUVs26hF6CFe94=@lists.xenproject.org
X-Gm-Message-State: AOJu0YySGuoeOja4lE8kqd36v1RVrZ0sLzGMmvbc8ZhNFwWpA+DFYWl4
	B4QoX/kx2EiMRGTj4zFgCOsosASu2+tMIiSiWp6TBsj7NxlwuFqqhLJfQFKIfe2E8Kg=
X-Gm-Gg: ATEYQzyFjFPjAcMZ/apDjsQIGI9+QG9k24x1bMkl04ADWRjdY8oMM8e6BdoXLIWVwjW
	fXKhGBnUKo2KpHgo2OyxHHeQGUHuYj0SWh539JOjz3YDa8UnZoKUw9y5YbGyu2AwaGhUstJfchM
	IJ4iMUP0GOLhURf9wWf2uYV6wdLQNcYROKXX1KHvw1SWxMppdnLgj+qcuFOZ9cBy/aee4eS713w
	pGFzOwkuLc0Za8w/nm43SvDwfE18dIs/7DCtVA/4kyGb3t7WZ3mIBiCoWACcKtzV+ju5NjkbnED
	5kH4Va7UN4jl5VMuHAGHh4ZqqfI42KWkpdmhp7pqXwWexPhAeWHDXnUa9qMq/kUP5d1+HmOqRVb
	IjE9o8V014lZTCr7RtnCxT4uD3qiKL6//V35xvwZjbg9vnx1tySkbnaKh3YjFZVvChcd/YuW27Y
	llCUeyKX3paa+S93OoyAihpqKdUW9gaEgACO4AJ/DmwIzUx9erF0O8w5CMqBvtnP8k9z8Cb5ta
X-Received: by 2002:a05:600c:4692:b0:483:6d42:25c6 with SMTP id 5b1f17b1804b1-483bef54059mr19754265e9.23.1771996393138;
        Tue, 24 Feb 2026 21:13:13 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH 1/5] accel/kvm: Include missing 'exec/cpu-common.h' header
Date: Wed, 25 Feb 2026 06:12:59 +0100
Message-ID: <20260225051303.91614-2-philmd@linaro.org>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260225051303.91614-1-philmd@linaro.org>
References: <20260225051303.91614-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

kvm-accel-ops.c uses EXCP_DEBUG, itself defined in
"exec/cpu-common.h". Include it explicitly, otherwise
we get when modifying unrelated headers:

  ../accel/kvm/kvm-accel-ops.c: In function ‘kvm_vcpu_thread_fn’:
  ../accel/kvm/kvm-accel-ops.c:54:22: error: ‘EXCP_DEBUG’ undeclared (first use in this function)
     54 |             if (r == EXCP_DEBUG) {
        |                      ^~~~~~~~~~

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 accel/kvm/kvm-accel-ops.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/accel/kvm/kvm-accel-ops.c b/accel/kvm/kvm-accel-ops.c
index 8ed6945c2f7..6d9140e549f 100644
--- a/accel/kvm/kvm-accel-ops.c
+++ b/accel/kvm/kvm-accel-ops.c
@@ -16,6 +16,7 @@
 #include "qemu/osdep.h"
 #include "qemu/error-report.h"
 #include "qemu/main-loop.h"
+#include "exec/cpu-common.h"
 #include "accel/accel-cpu-ops.h"
 #include "system/kvm.h"
 #include "system/kvm_int.h"
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 05:13:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 05:13:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240365.1541793 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv7DD-0001G6-MW; Wed, 25 Feb 2026 05:13:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240365.1541793; Wed, 25 Feb 2026 05:13: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 1vv7DD-0001Fz-JT; Wed, 25 Feb 2026 05:13:27 +0000
Received: by outflank-mailman (input) for mailman id 1240365;
 Wed, 25 Feb 2026 05:13: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=MQeS=A5=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vv7DC-0001DH-8h
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 05:13:26 +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 b3e7bb0c-1208-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 06:13:21 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-43767807da6so4566549f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 21:13:21 -0800 (PST)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d4cc81sm30577525f8f.26.2026.02.24.21.13.19
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Tue, 24 Feb 2026 21:13:20 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b3e7bb0c-1208-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1771996401; x=1772601201; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=jMzYp4SdJTMxtv4pWgjfW8jgSoBedAjoxT34KYE2b/k=;
        b=L3ye0FL7j5yRuXgNPfu9aVMf0edi/8IVisbNYqtLRl0fZT0c9wowP1yItljsBxnQvD
         vo9ucKmBrYbPOSONQic8NDXa8mu8vv/lM400lQmCvH7BO2IvsLw87C0RNO8NyRq8OKL5
         JjGXoWCGk5bkix5DNHUPPeA+jOCCJ/03MPByq3FEIABpRk+Jjgx/PZSoSgXr1d+P/Qa/
         FmSzxJFAuS5VxxgKWbnHMhAV8mOY51luHOhE9h842ipvFUAl0Xddmv/YJklwMNvUzs7y
         2/e4U5MGxoZ3B7+VpxkeK3bewmiUF283j640bh7OpB6sYbkBabUkdBNApetbE36IYIo0
         O42g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771996401; x=1772601201;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=jMzYp4SdJTMxtv4pWgjfW8jgSoBedAjoxT34KYE2b/k=;
        b=qnwPlzsjbOaXUkjnkn2PIHn1I6xvhl47I05TsNEvz4I1iIPBkVUPlv0senAGVHlUnt
         /l44ZYseAYuJte+52dacAOY5oGmqXRd/mTAN3jrtvnO0d6N+1p0snzM0uhovkzPBoknq
         65mUJj2L6uAfM/qyQjLTINfWn4xPvHigiZJyDingWkprVOM06S4Swkgb4Dc5V6eXU5U1
         zTFkJnCH7DC6DMGoJJw1dJpF3J+Gw4kgXaz4cVQJiUSJI7TaES0C9kTtqPo/WwE0DVqA
         vDO/NUc86zr+w+xVCRTi1aKGF3mBlmpSRImoixQNfOJTOtoTVgf2cnDEVuxRMf5vWaUd
         TYNw==
X-Forwarded-Encrypted: i=1; AJvYcCV2l7M9HSIXR3uYKAqBdJFDcCJzJbc3ENApsUOV8V8N8BBhXJOS0p45rlBsh38TC0y8QLO1wOPLE6Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwE9UCOCY4G035/qH/htFTKGUaj0GPkApIQb9OGqxbFNuUdDWba
	4XASkKHhpI+P2NCkPEa7NxuoAthDW3re7o1CkECrg52/D93Y/0J3LjWjFdTxEl5est8=
X-Gm-Gg: ATEYQzzhjA39Ocl42c/5hKNljf0j2HSu2Hn5yLEwjPDCEakSYBWXWUF1OM2sFWg2XN5
	8b1OdUJ4n48WPjbAnBcFp/ksXwRvJAc46F6hO9mDhKyhwnQjWZ8fdajJEpyDyekDraEmCKVHhMw
	MhzN5BHNtkSObM8Id+fGbKSyAPgyUjq7ZrEeiCSWGUa6yUwadbb8qlEvQNzyXOCSB2RizYNj+PR
	cDZp6/ZbV1H1n6iFOkIPJZSH0v6NrvC66chaRwe5vhxRyipS0+yo61zr1S+13cgtPBXZ081NdKV
	/y/DXEcxrdqo5FBOGWPzXz2nhAVTau5B5rifYyfIQ1BTGZTln20KF3p8jNDPFqPbSnOcBfpc03l
	uhXC0HSiKdnT9FoNPSfE4DUfZeKIiIeAPNaZBTRAEFneenbMrgu3qRPV75YUSs4dBLmAz8kGMIu
	EOG2HJOz3SPRmmh9u9cM6qVCol3meVEjmmF4sZhM9s8Eq6ujkCyhmVUqV2vX6OA5KFw3dK+lI56
	immxd4IlEU=
X-Received: by 2002:a05:6000:604:b0:435:8ad8:b7a with SMTP id ffacd0b85a97d-4396f181362mr27307810f8f.46.1771996400821;
        Tue, 24 Feb 2026 21:13:20 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Magnus Kulke <magnus.kulke@linux.microsoft.com>,
	Wei Liu <wei.liu@kernel.org>
Subject: [PATCH 2/5] accel/mshv: Forward-declare mshv_root_hvcall structure
Date: Wed, 25 Feb 2026 06:13:00 +0100
Message-ID: <20260225051303.91614-3-philmd@linaro.org>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260225051303.91614-1-philmd@linaro.org>
References: <20260225051303.91614-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Forward-declare the target-specific mshv_root_hvcall structure
in order to keep 'system/mshv_int.h' target-agnostic.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/system/mshv_int.h | 5 ++---
 accel/mshv/mshv-all.c     | 2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/include/system/mshv_int.h b/include/system/mshv_int.h
index ad4d001c3cd..35386c422fa 100644
--- a/include/system/mshv_int.h
+++ b/include/system/mshv_int.h
@@ -96,9 +96,8 @@ void mshv_arch_amend_proc_features(
     union hv_partition_synthetic_processor_features *features);
 int mshv_arch_post_init_vm(int vm_fd);
 
-#if defined COMPILING_PER_TARGET && defined CONFIG_MSHV_IS_POSSIBLE
-int mshv_hvcall(int fd, const struct mshv_root_hvcall *args);
-#endif
+typedef struct mshv_root_hvcall mshv_root_hvcall;
+int mshv_hvcall(int fd, const mshv_root_hvcall *args);
 
 /* memory */
 typedef struct MshvMemoryRegion {
diff --git a/accel/mshv/mshv-all.c b/accel/mshv/mshv-all.c
index ddc4c18cba4..d4cc7f53715 100644
--- a/accel/mshv/mshv-all.c
+++ b/accel/mshv/mshv-all.c
@@ -381,7 +381,7 @@ static void register_mshv_memory_listener(MshvState *s, MshvMemoryListener *mml,
     }
 }
 
-int mshv_hvcall(int fd, const struct mshv_root_hvcall *args)
+int mshv_hvcall(int fd, const mshv_root_hvcall *args)
 {
     int ret = 0;
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 05:13:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 05:13:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240367.1541804 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv7DF-0001VT-VS; Wed, 25 Feb 2026 05:13:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240367.1541804; Wed, 25 Feb 2026 05:13: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 1vv7DF-0001VK-RZ; Wed, 25 Feb 2026 05:13:29 +0000
Received: by outflank-mailman (input) for mailman id 1240367;
 Wed, 25 Feb 2026 05:13: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=MQeS=A5=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vv7DE-0000if-Lr
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 05:13:28 +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 b7e6b066-1208-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 06:13:28 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso69997215e9.0
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 21:13:28 -0800 (PST)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd702e7bsm48222585e9.5.2026.02.24.21.13.26
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Tue, 24 Feb 2026 21:13:27 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: b7e6b066-1208-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1771996407; x=1772601207; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9StylsjjkPu8pnZ8zwuRErmCy8w6JuJLaaJ30WKTm3g=;
        b=i4bGs2wdfGrlcLNac3UNMrGPtF6KvjL7p/+YaYpFlNd13/99xSe6TlHvZxMYr6z+Kt
         rG6WARgNxWN9RUzmCDhcCGDYHBEyakR9H8xwhgoABsQsy33XnJ53USX6tmL+gqZv8772
         gt8wUYF2jnO0UeSbj3vhIsf50UDLbjX3OA2y9M0Q42nriPxI8Alzz00CbXPIrJWCOGG6
         nTd2cT406WP2rQpCyb+hHtOue/lFIaZNb5CiPkN+aUSVRZ6kkwPPKHQ+J4qukmG6ZOzS
         RwhID/WoWey47JqJSku4Mg+xY8XvzL9xiirsWSC1SM9eLeFxCrnqRAixgr2aS/D7FsDH
         wEFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771996407; x=1772601207;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9StylsjjkPu8pnZ8zwuRErmCy8w6JuJLaaJ30WKTm3g=;
        b=DnQLXTxVpSikBctUUF3Db5gzRmbSptWOOYeamrkRMfgGCpzzLB7mKjsrA7kZDZPI3t
         wG3rLhqk2mznVXEp34N9ZZaM1tAkuGaLf/DzurAA/DIvZM5Eg+5yiWymPgHIBrO5Xh34
         +JX7iMn4FeD6wXEmB5S6W+ZpK9fcgzCyEeXhciATBUmELE30RtheqMHNKDVDxPGNbPqb
         dHaJRiG5mWDRXD4HqRcIImuzyYpy+XrrIw9dmLgkhtVmhTm8g+KUhaMNbYlJakKgWs18
         CFG8R+1YKwqOZRi1hW9VEZ/PLhxbxWm7J6xWp1m3SRbJ+A7LwIUBWmMBrHi9Be7eyY/N
         ZHag==
X-Forwarded-Encrypted: i=1; AJvYcCXyJNjBvbGjpxm8klTOD6ixyH49bfQSs8x8hze96nEMrXg0JG6rgfUR/AYsxelXVGz3o8ZiWme2VCE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwZAFywz+i7gqvM/uKZ6/rHSQ9/Q1WhUv4/LTJv1hgIcDSRy87n
	ZUPToDHNkP7QT8ch470IRDIrgOerkQ7Gzc2zSJe5HJe3XxpRE9OYmZIU1zqQf7frWEs=
X-Gm-Gg: ATEYQzxpe3Lw+uCW/pwPqGBqgj+OqXl1gTMr34wmMi8l1oZJZH8vDUet9GDDTP9v0xa
	M82TENVZlQCeE9yAvKF4ajhy9yHprcmk5yhi+3M9DnO7T0Tt7C6fzzS7fwl4O4uHsMzbs1+4Jxo
	/GJpKrVUtIU2q8S3UpCdo1vElIXNyxHqwTExR7ZNj3MJgcn3gjKnhkwWdJTsi1MNML0q+3Cwfcl
	9VVr3v4bbUJVnmeYpe2K1g4Pqa8mNpN7r2DT/wdN6my92hfitwZn1AC7J1CcEF8hQf2KTSL1oWk
	I6NRz3/3G4A2+8oAihe3yjOh9RV0g21iCuuhUgoZHYku8X79U3kxDcuK33KfAGWfNhLDgV8hJ3W
	85zmmlGH34LiVsW2mJG2JQTAP5UsANmHeffG6wSgmVtnT/3Ix2tsJ60cXxeCj9Zy00M6NSXVblb
	uU7SJbz9wuGjMy8rdfm/onZaJczj4yGqM8N4PcARO0ECM7bNVDibvVJm/HHq4T8jtIHpYBI9r7
X-Received: by 2002:a05:600c:3e8e:b0:47e:e946:3a72 with SMTP id 5b1f17b1804b1-483bef5aac0mr18344565e9.27.1771996407557;
        Tue, 24 Feb 2026 21:13:27 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Magnus Kulke <magnus.kulke@linux.microsoft.com>,
	Wei Liu <wei.liu@kernel.org>
Subject: [PATCH 3/5] accel/mshv: Build without target-specific knowledge
Date: Wed, 25 Feb 2026 06:13:01 +0100
Message-ID: <20260225051303.91614-4-philmd@linaro.org>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260225051303.91614-1-philmd@linaro.org>
References: <20260225051303.91614-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Code in accel/ aims to be target-agnostic. Enforce that
by moving the MSHV file units to system_ss[], which is
target-agnostic.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 accel/mshv/meson.build | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/accel/mshv/meson.build b/accel/mshv/meson.build
index d3a2b325811..c1b1787c5e6 100644
--- a/accel/mshv/meson.build
+++ b/accel/mshv/meson.build
@@ -1,9 +1,6 @@
-mshv_ss = ss.source_set()
-mshv_ss.add(if_true: files(
+system_ss.add(when: 'CONFIG_MSHV', if_true: files(
   'irq.c',
   'mem.c',
   'msr.c',
   'mshv-all.c'
 ))
-
-specific_ss.add_all(when: 'CONFIG_MSHV', if_true: mshv_ss)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 05:13:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 05:13:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240371.1541814 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv7DO-000217-5w; Wed, 25 Feb 2026 05:13:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240371.1541814; Wed, 25 Feb 2026 05:13: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 1vv7DO-000210-39; Wed, 25 Feb 2026 05:13:38 +0000
Received: by outflank-mailman (input) for mailman id 1240371;
 Wed, 25 Feb 2026 05:13: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=MQeS=A5=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vv7DM-0000if-If
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 05:13:36 +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 bc6f029f-1208-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 06:13:35 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-4398d9a12c6so474412f8f.2
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 21:13:35 -0800 (PST)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d401aasm30576270f8f.23.2026.02.24.21.13.33
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Tue, 24 Feb 2026 21:13:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bc6f029f-1208-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1771996415; x=1772601215; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9Fom4TdZ27OaWdE48V/WCmqpd1vRN9dFVw46MQX66F4=;
        b=J34kHsBBeb8XyMagSBxvshCtTJUHmH/m4A7dzr0Vj1HXJkccSPN15+ZqdCy+1z043a
         PxImRAS2sV2/esV5B4lYbPtkSDYweI1A1KN9eWaxt/iWWj4oDQfjswUWjtvuDMwW7hom
         XJ6YWT96WhofsQdmCE/SOIadPencp+FmOTV4FI96Rz5v+O0ZQ6f9iL7hWMKcXS4Ty7Ha
         BHSHY+ytH2FLy7l6whsGHjR8jjo9x3qwx908Elh2tV4cekvZazPQWCBl3hYdacrWf+cq
         VexzqUcQ2icl9ZcdrVi8c4hystn4YeVIa6y9ZM49dQTIbZJKqIPxWWQyVw5ibPPkuxnz
         7rww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771996415; x=1772601215;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=9Fom4TdZ27OaWdE48V/WCmqpd1vRN9dFVw46MQX66F4=;
        b=gPIOlX3FtxSkSrwdYzLP+t5Q4SRH1iRwQkmKnuSJE9hQwtCTlLGtKu7Uqy8fELqO2m
         yRy5n1LCTKYdgVKne6envH6T5Ps5z48WoERx7iGg/ZBWv5Sz0mqOzb2CQTpO+X9+aNXn
         I35p28Y6bacH5lhaA4Y5jOMsdFUidnxpbySqRl+pwvt2w7ed/E2pSKdQvZJ6IiAY7aVA
         ako8MCknoNVd8sbY+XkbLD7Nh5g6SDjo++e0boQOCAJmEsJf4K+Jo96xXNtRyFcU06Fw
         tBH95b3qiDE9fphIA/s11BAEEVjMLYaCeDxhc9axgIz7xv0IHiWVtBM2vQ2ShCOCpJVD
         yAGQ==
X-Forwarded-Encrypted: i=1; AJvYcCUngO0sonvHVpPX9EOCIFndCturGsTfT78MLmoSczyskBiK8kxpAsvI7jex8sfG8en3/KaPwpjDEf0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzKYnujV73IvpMRJAj+zHqeDuBp57Twaf1z6u9qEeAwzG8vf3O5
	Ad4kCHTrwhMU/Pz9DujUB+f4MwPEh8hqCVHfvX6/grlRbfKu52zGtRST2so1ZqYwPgnXaZvxcQW
	AzjqviNI=
X-Gm-Gg: ATEYQzxnae5x2/y7RgBbmVlsp+nFLnYkeBusWQEIaqrcEHS4DKvdPHy7xDvsdp3qDrf
	dmpEm0L3DmkHxM509812DK9izOQTLjFnzsUcGnFVZU44StJvO1uWdhBbtZ8xAidQo0ELPZDJibW
	6Wg/U+/YIVyXhEuizNZLHlgaaWNSvF4j12L1fvFLXSuK86pyE3y9tEIDyV4S2qb9M5GpJcoGZ3a
	RHm1LuwC6slsTNUK6KQ3OfIdIZk20B5BRUYWfREf5TPyXIKUtCHXKmrcFvD0cgmom+jNbkT7G8y
	Bq+0jFX/2J3Tc0vclNMGWDYGIjtDLWex+p0KzKFZUJ1lD52pJdKMGiiEvlVs/LDn1ab8GfuUhSu
	mKcGFoOF0FnOE7EAyuSiaHrnv6Ozn53gddGjLSBvvnORJtE/bCZBMypYz82/UExZyN4dB+I2UbD
	1bnKR26elCETa/8/NPNNiBtBWk//ikoXfHYBJHHRxo5T4aeSX432OGd++WWp/+Wej/lyfrILLP
X-Received: by 2002:a05:6000:2406:b0:436:1872:63d0 with SMTP id ffacd0b85a97d-4396f15ce72mr27807237f8f.2.1771996415096;
        Tue, 24 Feb 2026 21:13:35 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Cameron Esfahani <dirty@apple.com>,
	Roman Bolshakov <rbolshakov@ddn.com>,
	Phil Dennis-Jordan <phil@philjordan.eu>
Subject: [PATCH 4/5] accel/hvf: Build without target-specific knowledge
Date: Wed, 25 Feb 2026 06:13:02 +0100
Message-ID: <20260225051303.91614-5-philmd@linaro.org>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260225051303.91614-1-philmd@linaro.org>
References: <20260225051303.91614-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Code in accel/ aims to be target-agnostic. Enforce that
by moving the MSHV file units to system_ss[], which is
target-agnostic.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 accel/hvf/meson.build | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/accel/hvf/meson.build b/accel/hvf/meson.build
index fc52cb78433..6e2dcc4a5f0 100644
--- a/accel/hvf/meson.build
+++ b/accel/hvf/meson.build
@@ -1,7 +1,4 @@
-hvf_ss = ss.source_set()
-hvf_ss.add(files(
+system_ss.add(when: 'CONFIG_HVF', if_true: files(
   'hvf-all.c',
   'hvf-accel-ops.c',
 ))
-
-specific_ss.add_all(when: 'CONFIG_HVF', if_true: hvf_ss)
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 05:13:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 05:13:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240377.1541824 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vv7DV-0002Tb-CZ; Wed, 25 Feb 2026 05:13:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240377.1541824; Wed, 25 Feb 2026 05: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 1vv7DV-0002So-9K; Wed, 25 Feb 2026 05:13:45 +0000
Received: by outflank-mailman (input) for mailman id 1240377;
 Wed, 25 Feb 2026 05:13: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=MQeS=A5=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vv7DT-0000if-EG
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 05:13:43 +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 c098c1bc-1208-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 06:13:42 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-43990aa7dbaso99944f8f.1
 for <xen-devel@lists.xenproject.org>; Tue, 24 Feb 2026 21:13:42 -0800 (PST)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d4bf89sm29682387f8f.29.2026.02.24.21.13.40
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Tue, 24 Feb 2026 21:13:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c098c1bc-1208-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1771996422; x=1772601222; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CGvKgLHeevLALbSBED4Jn7ttMmQ4t+uZlwFqVihbumU=;
        b=WGBpe87CWhluhZLqfHPeu2oHa89r7HnA+2hgSm6BZJM2FVyK8LwfqkFtbY4RbvTWA1
         fC5zP+hwJ3AFx5Z4AnIekwSrY6fd9LZEU4m64BUqQ9XRRP+2pEPXbcldIrwgbgdBiTeA
         3cpHxh5uV90SoXLKJKzVB6AryUCIC1ZI6a7w54rIehE7L7HFd8ewaqmNUTMdiFnEk3p9
         5/IK0t3hxiK46DUDtuWHNbGNs+XJaNkShrXEgfOS9+0au39roXedKxUeSyqLj2ov5tbE
         w03UjYE/H9xWZqABdAF4MmX2HbsoqRWWWgbNI4oiw//UdOtBvuOyFr3RdNZ/AU9XhgaD
         6mHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1771996422; x=1772601222;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=CGvKgLHeevLALbSBED4Jn7ttMmQ4t+uZlwFqVihbumU=;
        b=SMNqYwnesKJQq2xISx71s0XgmENJrsR4XKGR7qXzWNwsd/lfFkMh3rAlAsgzYW4Fn/
         ivwG/nujSugA1769NO3DM1sPaBaiB7sH5DunHAXQnxlZcS1DbEbAHhEVzRUncVAqkizk
         1vzfCoB6L5yoxLgMl8naAKLdB+8d5k9Qn+fCiIC/UjyFLS8kb9xfh92mk8mYyaNx5+Yt
         bvbl4Lfm8Lo2hAfd4Jjm1QwPEAU2pBO4ou0EvYH445Lg6XOrvWCFZEvmV6CFZ3OOAYJX
         +kqmF9oKlPzim5PqN5kz7OpFqWeBWl4sN6bb9gb7T/ET8s6tTgiC54AnbsQHllrvuqm9
         aA7Q==
X-Forwarded-Encrypted: i=1; AJvYcCU5IPiYGVsQ/WqeOy+jHg6baEvmiSPMgVURWNNuGB9vD5/zNak3EgtRWkhmzbMsrnMVH7L3L1zfS0Q=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwxetWQh+bv4q5Ne/OiT9nLQwGOIT1DrTldisX+iF8JtYz5v3gN
	ly6UqaeXkRX1zeKtQV+P4K5LNm8bT35YvXYj0IPwImPQ0QqAT4RbjwAlLaGKSTd8Y8A=
X-Gm-Gg: ATEYQzxlHedS6YKR1Q48+XZsXCAV9ueoW+1CyjnIgD8812fFW8mGw47yI1tXRJmPltP
	cNUVB7Zw+n1dSKNgvfvaIQ6p/NXT3vUTaZPP1uTpQXtBFZELj2kNOFg5EPAzWokdQ4ys57P3++0
	nJm/WbqRQAo/ScpEStm6bLyU/0lUNIzNIdvrx6rcBBh+6NIgF7RcYn5kwCfreu7YQrx03eTfxAt
	aS/+WIkVWxQ5+RDHJxSuiupSde4I2LqxpankvLjx2ltMxOCsZLMml8sxFSQcksHVa8UGaw6d8jW
	J9XcxfTk7ilm6PJT6OW7g+2BK1pVg3n4WEz03GvyePWQMSaRXDq4uWx24wCtHOQHY+KVqEvtJrD
	+hjGsbTRT5JUj4ayV4fVzNTLtxewzJOczRD6kWwgG9U9Xq+USF/bMsc7OzdKLoBPJqNrKq3IxpH
	Zrh3cl7t557Y3g9kSLlT647yESW25Hm7k7E1g29dBz3yQayH+4Gsucca2RE12NZ/uK22mYN6Cm
X-Received: by 2002:a05:6000:26c3:b0:437:6758:ce70 with SMTP id ffacd0b85a97d-4398fa70637mr1467991f8f.26.1771996422125;
        Tue, 24 Feb 2026 21:13:42 -0800 (PST)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org,
	Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	xen-devel@lists.xenproject.org,
	=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Anthony PERARD <anthony@xenproject.org>,
	Paul Durrant <paul@xen.org>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Subject: [PATCH 5/5] accel/xen: Build without target-specific knowledge
Date: Wed, 25 Feb 2026 06:13:03 +0100
Message-ID: <20260225051303.91614-6-philmd@linaro.org>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <20260225051303.91614-1-philmd@linaro.org>
References: <20260225051303.91614-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Code in accel/ aims to be target-agnostic. Enforce that
by moving the MSHV file units to system_ss[], which is
target-agnostic.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 accel/xen/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/accel/xen/meson.build b/accel/xen/meson.build
index 002bdb03c62..455ad5d6be4 100644
--- a/accel/xen/meson.build
+++ b/accel/xen/meson.build
@@ -1 +1 @@
-specific_ss.add(when: 'CONFIG_XEN', if_true: files('xen-all.c'))
+system_ss.add(when: 'CONFIG_XEN', if_true: files('xen-all.c'))
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 09:47:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 09:47:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240463.1541833 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvBUa-00017h-6Z; Wed, 25 Feb 2026 09:47:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240463.1541833; Wed, 25 Feb 2026 09: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 1vvBUa-00017a-3p; Wed, 25 Feb 2026 09:47:40 +0000
Received: by outflank-mailman (input) for mailman id 1240463;
 Wed, 25 Feb 2026 09:47: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=4/VV=A5=citrix.com=kevin.lampis@srs-se1.protection.inumbo.net>)
 id 1vvBUY-00017U-Jx
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 09:47:38 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 01c1cb07-122f-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 10:47:32 +0100 (CET)
Received: from BY1PR03MB7996.namprd03.prod.outlook.com (2603:10b6:a03:5b2::8)
 by PH8PR03MB7272.namprd03.prod.outlook.com (2603:10b6:510:251::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Wed, 25 Feb
 2026 09:47:29 +0000
Received: from BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07]) by BY1PR03MB7996.namprd03.prod.outlook.com
 ([fe80::5068:e1b5:b478:8d07%4]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026
 09:47: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: 01c1cb07-122f-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=IdWn2qiv6JWErYUG9PeHJGs0DqbpSuocAnqDeUq3kiwyDC2IGcV5FHculXd/DIG3q+4bExl4w+d/QO2OZldE4niz5QDfZ6LjmKV60AjmyE2QJ6yiFkf7FgEsXjbastlIEiBnnn264tj6dbzct08EI0Q/qZG7XZT0HELeUvRLtwyILs0Av1uhLqsBqxuay/gX4Odt2c40cwzVmNNsS9/Sc+DnyHhy+3jYmE7y9wuyj72wiENmBxhPBL3Z4+QZudwDTUTKNgvbjq013atqV6AgyuAItiBD6NjAUz/EGPoWP1uNWZKDhu1QuTejlCPTZALCrge4tY8hCUnc8RSqeMKoFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=ii/p2w6Bl51U5aovKnB8GlPdyIIhVbsFCi93l1oEMCs=;
 b=hTmO+8PZrHW0KpSGv3bLYHnNYpK3nnoRrVtyeh/5yWLR5BAlWOd8hzhVZb4GBJiBhhyrG7X1akv6xze2lWBRyY+rZQcE5yTPYQsN+3oqDjW7IIgTqG1LDYQQRn5A/uWa8Y+M+iEhIbKZqX7GGhvaeIVYgxMl9mMhIHcx58GD3qbfgH7i3nhX0rJt3eoOax27m2iixFYJO/ehmgeXDmuwY4OZ4oe+XEGlF0e1Q46E0snlsKBVvdRonsweWNHGckh1/MJwW/3vBgaZob7amudE8zkwU3GV2Re04m+R6n7/6ERJ2H45FA9C/xd+EOvI0wXrDT5/VRDyDabp+YgeTH8UOg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=ii/p2w6Bl51U5aovKnB8GlPdyIIhVbsFCi93l1oEMCs=;
 b=VNgB5hhMzmpSoE1UAXb7T2lF3VkbNssuHjUkLJWb2vo6xeVf/6B1phEqnkzN0WVHSq4QWpzI2nJyiIzPgacvE4mGNvTpsFXE2IPGEQqPiIEekGURU8D32FA4pCNJiS6jazkPsFwKwrNBtIHJtcIKC+3DV9z9TQO5nBP1nfDL0/o=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Kevin Lampis <kevin.lampis@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: jbeulich@suse.com,
	andrew.cooper3@citrix.com,
	roger.pau@citrix.com,
	Kevin Lampis <kevin.lampis@citrix.com>
Subject: [PATCH] x86: Remove x86 prefixed names from cpuinfo for amd.c
Date: Wed, 25 Feb 2026 09:47:59 +0000
Message-ID: <20260225094759.623258-1-kevin.lampis@citrix.com>
X-Mailer: git-send-email 2.51.1
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: LO4P265CA0086.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2bd::19) To BY1PR03MB7996.namprd03.prod.outlook.com
 (2603:10b6:a03:5b2::8)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: BY1PR03MB7996:EE_|PH8PR03MB7272:EE_
X-MS-Office365-Filtering-Correlation-Id: 5a03607f-6909-480f-738c-08de7452e389
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:
	Cwu0B2yRtaDS5ocEj9GrdRH1df+fyex/UflZKbOtHJF44bKuPbvVRyG6jkTMH/c30auebNeeHy6SRgvOIqMhbwGPVE9XMYFntClpSjIyA6FRpc7DhocXMXCpSOwtTwDmh0cf03lOxu3LibLWBQZDA3B3rx7MQlZ2/RH3hSUBcRT2U12xSKI5vmpZlPoWw0dud1+tZ59mSHZTzdwZnDUjFThkBuVJbof2wsViNXARvU/kedeGWjU0hCNwCZVpIOs0NijC+k83aHYIokbxgEnwHP6CCQe4NL5Gp9zDBlq3SDN6M+OKuyPbwTzt5dSdmu7NEJhCIRlk4AReKq+sc4wIvVNZQLEO1sekRFMgQkuTBY54BNBN5+qgPIFbDcDu6kLowy7AprraGq47G5zpLZTV2excipuGG01YAeAyewPUIqCaY2W+DqTFZ+ZRuVSN3tUD+W/3ooEvSWgyXv6KKJJHnlYpUOpCk7fHtX+AOJ/KhhZWQGxePQZuLKkJefOpBsXC5XSIqwXJ/Q2BZ946WeMmB9cXzwToq4I8/L9JS/ZAXKXqhUc4FlaqX9Fh8mEeVdGJkBine7IRDrbd5eAbBbFGNmZS4H7Pv9ARdv+IHbYvFaVZmrE6bACjwfTDjTGsFWNlnvMnG+FBWB9sZi2rtTaWxEhF+ny1O/jQxnIAXYcCnB+dxibVA9ydJymEk721TOXKvchQ53BjYQiEtc//stMojChSRoxb/iz++/p4dEPKRfc=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY1PR03MB7996.namprd03.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:
	=?us-ascii?Q?fn0CpWjGABTT7d4pf1mmwPDO6qmStZmWX6okJfrY5l86NgEZtQwpvDClyxDN?=
 =?us-ascii?Q?DUG42aGbf64JESlZjjouPOAXvh+bE+00u3r5myU/0agpYB1AJ1NLq7Q5sfQp?=
 =?us-ascii?Q?0eX2UQ9SaI7VsO3BfEPc+v+QQoqxfTVTgsDSyVneQXRUASRrcXkcAZhsu9SW?=
 =?us-ascii?Q?10sWT4xnaPHt6v/8yKi9ifdNx3DB1yahDuLkzaEnq9ije6QJSJ1H197JKtto?=
 =?us-ascii?Q?Jfpuh86Ozp66AFAFp98v1F7bGsAyDWgjuoHQEsmMM2XoAUM5s/5ab4vt1lfF?=
 =?us-ascii?Q?CSEUdjNxnx1uEzLehRorgtgFUq348twplxfQMBcFvQyntb3WrBLuYDXQ4FUy?=
 =?us-ascii?Q?IpY1HcGTNfmW3CTpfMSsaVrKsdERYmyaVKu1Z5ZsoXctTPKQjoSA4hW+zLin?=
 =?us-ascii?Q?Wug/Te5eZpnKT0Lh5c50JvjDAHN+s1iGKjQbPHaoPqePOXOzVYlRzCk03cir?=
 =?us-ascii?Q?ARNxqd2xe6TGk43HZ8HgTS60VuWITPgU2dAbhJixlYyU025Xi2tUQ29eQjiU?=
 =?us-ascii?Q?vYad1fSWftkTr1c45pixLZsnTqOHJslSc0WyNoGB/hsVVfS3vKu1Vvj3ECxz?=
 =?us-ascii?Q?R7tJ0HbOQBR4+9fwlPPSV9XH8uw+FvMER4ozTYmVSzyff7DYScxXNi+TRk7v?=
 =?us-ascii?Q?TJRwU9WEX3ADYGKJkv87PANLZcVFqAJsP+SKtiUYSaMsdiQyhLT0IJpwLiOx?=
 =?us-ascii?Q?IEiGs120T4uJA8zuB44KpmmPcaXGJArNza/3CGV3D3mIYRFGVfIPBfVlnSrd?=
 =?us-ascii?Q?fhbquq8ZQ58/+pJL0w7UlqsTwKH4HhR4v1yKxM+8bMfN2RsgUMtBpqNZiVNn?=
 =?us-ascii?Q?grDOknXUekWnTg2xZnbXZP41rWMNTMxAGHR1jFUSgCEKucVTw0uHxZ9R2ov2?=
 =?us-ascii?Q?ooalqHfiMbfU4zmLf1EP/XnWLbsMMnp3TSdkRiUFqYIrL6cAXkqGVE2zFzDC?=
 =?us-ascii?Q?QlG+n8yR3Y4Q0+lz6fPdVfKLJAywc0Lg582t7dGKN9Ntf78UZre1H5xHcM5k?=
 =?us-ascii?Q?7CYgt4S3cw8gYX44a78EdfBr7Y9uZVMwOOibwhFrEBv0PIHqMWI820nS3Axx?=
 =?us-ascii?Q?K8h/juECD5sQfzb04/4oSynCHcU0jdqEsMDvjK05uqtTvQzugqF9aFTrXa7R?=
 =?us-ascii?Q?4BrhjQWAUWQHIHnZciX8+2YCuw/DxgU0LGMpH/YttZXPE581/8sD2z+ZcABZ?=
 =?us-ascii?Q?7qivYIhdgB5VRq4GdIOO1jfxUqcQah7sMqLhcA6tGmTXuV++jcXWNKz/Rr3C?=
 =?us-ascii?Q?hfXUXir2qnMf/ZTDknQeOyPN6w+IBZUAoBKCVz8t5KGg13BqxYzFq029WEAe?=
 =?us-ascii?Q?zFQ3F8d9z5Ny3CI7bXKZGex1f4hZaPGvPFFMRlVd0O7TDnxqVVt9W+fIsIoo?=
 =?us-ascii?Q?EwOim74TEnl+1WTgaqh1m5FJ29wAroKSigvvS/j1iyAtQ2YaOhBhCAfaQQHh?=
 =?us-ascii?Q?gXrwvd1j5yXA4kfWRaLB0w2Kn/xDgdAuty+u9HsN2UfwMyhNn84eSGrVPeUB?=
 =?us-ascii?Q?VhR3qyZfYvYnbWXYUm6LCbKc79yNinMUpqCTMB3MTfROP5h3JsZY+lQZWRIF?=
 =?us-ascii?Q?yoIkBwhIGYxRZl2AVPGNab8GDVr9p6xDgT1jFsGs4PkVr713gKTl5kSk42sj?=
 =?us-ascii?Q?HE9OM+gkU3LfJu0Go3Ic5BYpAX6YYQJepBprs/iN1sQlrN7Gbguug9njPXlF?=
 =?us-ascii?Q?u7xhsHlC9wHyKzjimzBdlifwzC+ShtjZVG4J8OvZlMOc2Dd/BL3aIXGqDQAa?=
 =?us-ascii?Q?obuPP0hc6g=3D=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a03607f-6909-480f-738c-08de7452e389
X-MS-Exchange-CrossTenant-AuthSource: BY1PR03MB7996.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 09:47:28.8927
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: /O2YE10JoOtpdR9DFzSfDfDkUGAZ4qbPfaMj/zYGCAYEpTlbQz4GmcACYlUEcZrv1iMJF3W7jKM/eO/tc6Tr1A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR03MB7272

And some AMD related code in emul-priv-op.c.

struct cpuinfo_x86
  .x86        => .family
  .x86_vendor => .vendor
  .x86_model  => .model
  .x86_mask   => .stepping

No functional change.

This work is part of making Xen safe for Intel family 18/19.

Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>
---
 xen/arch/x86/cpu/amd.c         | 74 +++++++++++++++++-----------------
 xen/arch/x86/pv/emul-priv-op.c | 30 +++++++-------
 2 files changed, 52 insertions(+), 52 deletions(-)

diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
index fc496dc43e..2b7f60aa30 100644
--- a/xen/arch/x86/cpu/amd.c
+++ b/xen/arch/x86/cpu/amd.c
@@ -134,7 +134,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);
 
@@ -151,7 +151,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");
 }
@@ -327,7 +327,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)) {
@@ -348,9 +348,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);
@@ -418,8 +418,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);
@@ -462,7 +462,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;
@@ -520,10 +520,10 @@ 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;
 
@@ -573,7 +573,7 @@ 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;
@@ -593,7 +593,7 @@ 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))
@@ -603,18 +603,18 @@ 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)
@@ -654,7 +654,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:
@@ -716,7 +716,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;
 
@@ -763,7 +763,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;
 	}
@@ -982,7 +982,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);
 
 	/*
@@ -1029,13 +1029,13 @@ 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);
 	}
 
-	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
@@ -1056,12 +1056,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();
 
 	/*
@@ -1083,7 +1083,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);
@@ -1133,15 +1133,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;
@@ -1158,14 +1158,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))
@@ -1182,7 +1182,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);
@@ -1215,7 +1215,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();
@@ -1238,14 +1238,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_XEN_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);
@@ -1290,7 +1290,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/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 1d9e57ad27..959962638c 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -244,8 +244,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;
 
@@ -869,7 +869,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;
 }
@@ -958,7 +958,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;
@@ -966,8 +966,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:
@@ -991,13 +991,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) )
@@ -1100,7 +1100,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)) ||
@@ -1119,8 +1119,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;
@@ -1148,7 +1148,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)) ||
@@ -1158,7 +1158,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;
@@ -1168,12 +1168,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) &&
-- 
2.51.1



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 09:58:10 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 09:58:10 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240477.1541844 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvBee-0002la-6X; Wed, 25 Feb 2026 09:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240477.1541844; Wed, 25 Feb 2026 09:58: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 1vvBee-0002lT-3o; Wed, 25 Feb 2026 09:58:04 +0000
Received: by outflank-mailman (input) for mailman id 1240477;
 Wed, 25 Feb 2026 09:58: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=tMbn=A5=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vvBec-0002lN-G5
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 09:58:02 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 76f17b1f-1230-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 10:57:59 +0100 (CET)
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 E6907165C;
 Wed, 25 Feb 2026 01:57:51 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.86])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id E13E33F62B;
 Wed, 25 Feb 2026 01:57:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 76f17b1f-1230-11f1-b164-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 0/4] xen/arm: ffa: Add PARTITION_INFO_GET_REGS support
Date: Wed, 25 Feb 2026 10:57:42 +0100
Message-ID: <cover.1772013062.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This series implements FF-A 1.2 PARTITION_INFO_GET_REGS support,
providing register-based partition info retrieval as an efficient
alternative to the RX buffer-based PARTITION_INFO_GET.

The serie is also introducing a caching system for the list of secure
partitions to prevent retrieving it on each VM call as we expect it to
be static and not changing over time.

The patches are organized as follows:
- patch 1 is modifying existing code to prepare for GET_REGS support by
  adding a start_index in the existing internal function
- patch 2 is introducing the secure partition list caching
- patch 3 is removing the existing suscribers list to directly use the
  cached secure partition list
- patch 4 is adding GET_REGS support

Bertrand Marquis (4):
  xen/arm: ffa: Add start_index to VM partinfo helper
  xen/arm: ffa: Cache SP partition info at init
  xen/arm: ffa: Drop SP subscriber lists
  xen/arm: ffa: Add cached GET_REGS support

 xen/arch/arm/tee/ffa.c          |  16 +
 xen/arch/arm/tee/ffa_partinfo.c | 558 ++++++++++++++++++++++----------
 xen/arch/arm/tee/ffa_private.h  |   4 +-
 3 files changed, 402 insertions(+), 176 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 10:02:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 10:02:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240486.1541854 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvBit-0004M1-Lx; Wed, 25 Feb 2026 10:02:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240486.1541854; Wed, 25 Feb 2026 10: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 1vvBit-0004Lu-IQ; Wed, 25 Feb 2026 10:02:27 +0000
Received: by outflank-mailman (input) for mailman id 1240486;
 Wed, 25 Feb 2026 10: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=tMbn=A5=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vvBis-0004Lo-I7
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 10:02:26 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 14c26905-1231-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 11:02:23 +0100 (CET)
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 DA74D1691;
 Wed, 25 Feb 2026 02:02:16 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.86])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BCE703F62B;
 Wed, 25 Feb 2026 02:02:21 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 14c26905-1231-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 2/4] xen/arm: ffa: Cache SP partition info at init
Date: Wed, 25 Feb 2026 10:57:44 +0100
Message-ID: <0a5f66eaa16f262d4ffad6a8ec4b1b02461f96c1.1772013062.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772013062.git.bertrand.marquis@arm.com>
References: <cover.1772013062.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FFA_PARTITION_INFO_GET currently queries the SPMC on each call and walks the
RX buffer every time. The SP list is expected to be static, so repeated
firmware calls and validation are unnecessary.

Cache the SPMC partition-info list at init time, keeping only secure
endpoints, and reuse the cached entries for SP count and partition-info
responses. Initialize the VM create/destroy subscriber lists from the cached
list and free the cache on init failure.

SP partition info now reflects the init-time snapshot and will not change.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_partinfo.c | 205 +++++++++++++++++++++-----------
 1 file changed, 138 insertions(+), 67 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 6a6f3ffb822e..8a3eac25f99f 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -6,6 +6,7 @@
 #include <xen/const.h>
 #include <xen/sizes.h>
 #include <xen/types.h>
+#include <xen/xmalloc.h>
 
 #include <asm/smccc.h>
 #include <asm/regs.h>
@@ -33,6 +34,10 @@ static uint16_t subscr_vm_created_count __read_mostly;
 static uint16_t *subscr_vm_destroyed __read_mostly;
 static uint16_t subscr_vm_destroyed_count __read_mostly;
 
+/* SP list cache (secure endpoints only); populated at init. */
+static void *sp_list __read_mostly;
+static uint32_t sp_list_count __read_mostly;
+static uint32_t sp_list_entry_size __read_mostly;
 static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t flags,
                                       uint32_t *count, uint32_t *fpi_size)
 {
@@ -79,92 +84,78 @@ static int32_t ffa_copy_info(void **dst, void *dst_end, const void *src,
     return FFA_RET_OK;
 }
 
-static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count)
+static bool ffa_sp_entry_matches_uuid(const void *entry, struct ffa_uuid uuid)
 {
-    uint32_t src_size;
+    const struct ffa_partition_info_1_1 *fpi = entry;
+    struct ffa_uuid sp_uuid;
+
+    if ( ffa_uuid_is_nil(uuid) )
+        return true;
 
-    return ffa_partition_info_get(uuid, FFA_PARTITION_INFO_GET_COUNT_FLAG,
-                                  sp_count, &src_size);
+    if ( sp_list_entry_size < sizeof(*fpi) )
+        return false;
+
+    memcpy(&sp_uuid, fpi->uuid, sizeof(sp_uuid));
+    return ffa_uuid_equal(uuid, sp_uuid);
 }
 
-static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
-                                   void **dst_buf, void *end_buf,
-                                   uint32_t dst_size)
+static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count)
 {
-    int32_t ret;
-    int32_t release_ret;
-    uint32_t src_size, real_sp_count;
-    void *src_buf;
     uint32_t count = 0;
-    bool notify_fw = false;
-
-    /* We need to use the RX buffer to receive the list */
-    src_buf = ffa_rxtx_spmc_rx_acquire();
-    if ( !src_buf )
-        return FFA_RET_DENIED;
-
-    ret = ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
-    if ( ret )
-        goto out;
-    notify_fw = true;
+    uint32_t n;
 
-    /* Validate the src_size we got */
-    if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
-         src_size >= FFA_PAGE_SIZE )
+    for ( n = 0; n < sp_list_count; n++ )
     {
-        ret = FFA_RET_NOT_SUPPORTED;
-        goto out;
+        void *entry = sp_list + n * sp_list_entry_size;
+
+        if ( ffa_sp_entry_matches_uuid(entry, uuid) )
+            count++;
     }
 
-    /*
-     * 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;
+    *sp_count = count;
 
-    /* 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;
-    }
+    if ( !ffa_uuid_is_nil(uuid) && !count )
+        return FFA_RET_INVALID_PARAMETERS;
 
-    for ( uint32_t sp_num = 0; sp_num < real_sp_count; sp_num++ )
-    {
-        struct ffa_partition_info_1_1 *fpi = src_buf;
+    return FFA_RET_OK;
+}
 
-        /* filter out SP not following bit 15 convention if any */
-        if ( FFA_ID_IS_SECURE(fpi->id) )
-        {
-            /*
-             * If VM is 1.0 but firmware is 1.1 we could have several entries
-             * with the same ID but different UUIDs. In this case the VM will
-             * get a list with several time the same ID.
-             * This is a non-compliance to the specification but 1.0 VMs should
-             * handle that on their own to simplify Xen implementation.
-             */
+static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
+                                   void **dst_buf, void *end_buf,
+                                   uint32_t dst_size)
+{
+    int32_t ret;
+    uint32_t count = 0;
+    uint32_t n;
 
-            ret = ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, src_size);
-            if ( ret )
-                goto out;
+    for ( n = 0; n < sp_list_count; n++ )
+    {
+        void *entry = sp_list + n * sp_list_entry_size;
 
-            count++;
-        }
+        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
+            continue;
 
-        src_buf += src_size;
+        /*
+         * If VM is 1.0 but firmware is 1.1 we could have several entries
+         * with the same ID but different UUIDs. In this case the VM will
+         * get a list with several time the same ID.
+         * This is a non-compliance to the specification but 1.0 VMs should
+         * handle that on their own to simplify Xen implementation.
+         */
+        ret = ffa_copy_info(dst_buf, end_buf, entry, dst_size,
+                            sp_list_entry_size);
+        if ( ret )
+            return ret;
+
+        count++;
     }
 
     *sp_count = count;
 
-out:
-    release_ret = ffa_rxtx_spmc_rx_release(notify_fw);
-    if ( release_ret )
-        gprintk(XENLOG_WARNING,
-                "ffa: Error releasing SPMC RX buffer: %d\n", release_ret);
-    return ret;
+    if ( !ffa_uuid_is_nil(uuid) && !count )
+        return FFA_RET_INVALID_PARAMETERS;
+
+    return FFA_RET_OK;
 }
 
 static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_index,
@@ -435,6 +426,14 @@ static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
     return res;
 }
 
+static void ffa_sp_list_cache_free(void)
+{
+    XFREE(sp_list);
+    sp_list = NULL;
+    sp_list_count = 0;
+    sp_list_entry_size = 0;
+}
+
 static void uninit_subscribers(void)
 {
         subscr_vm_created_count = 0;
@@ -443,6 +442,68 @@ static void uninit_subscribers(void)
         XFREE(subscr_vm_destroyed);
 }
 
+static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
+                                   uint32_t fpi_size)
+{
+    const uint8_t *src = buf;
+    uint32_t secure_count = 0;
+    uint32_t n, idx = 0;
+    bool warned = false;
+
+    if ( fpi_size < sizeof(struct ffa_partition_info_1_0) ||
+         fpi_size >= FFA_PAGE_SIZE )
+        return false;
+
+    if ( count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / fpi_size )
+        return false;
+
+    for ( n = 0; n < count; n++ )
+    {
+        const struct ffa_partition_info_1_0 *fpi =
+            (const void *)(src + n * fpi_size);
+
+        if ( !FFA_ID_IS_SECURE(fpi->id) )
+        {
+            if ( !warned )
+            {
+                printk_once(XENLOG_ERR
+                            "ffa: Firmware is not using bit 15 convention for IDs !!\n");
+                warned = true;
+            }
+            printk(XENLOG_ERR
+                   "ffa: Secure partition with id 0x%04x cannot be used\n",
+                   fpi->id);
+            continue;
+        }
+
+        secure_count++;
+    }
+
+    if ( secure_count )
+    {
+        sp_list = xzalloc_bytes(secure_count * fpi_size);
+        if ( !sp_list )
+            return false;
+    }
+
+    sp_list_count = secure_count;
+    sp_list_entry_size = fpi_size;
+
+    for ( n = 0; n < count; n++ )
+    {
+        const struct ffa_partition_info_1_0 *fpi =
+            (const void *)(src + n * fpi_size);
+
+        if ( !FFA_ID_IS_SECURE(fpi->id) )
+            continue;
+
+        memcpy(sp_list + idx * fpi_size, fpi, fpi_size);
+        idx++;
+    }
+
+    return true;
+}
+
 static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
 {
     uint16_t n;
@@ -549,12 +610,22 @@ bool ffa_partinfo_init(void)
         goto out;
     }
 
-    ret = init_subscribers(spmc_rx, count, fpi_size);
+    if ( !ffa_sp_list_cache_init(spmc_rx, count, fpi_size) )
+    {
+        printk(XENLOG_ERR "ffa: Failed to cache SP list\n");
+        goto out;
+    }
+
+    ret = init_subscribers(sp_list, sp_list_count, sp_list_entry_size);
 
 out:
     e = ffa_rxtx_spmc_rx_release(notify_fw);
     if ( e )
         printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n", e);
+    if ( !ret )
+        uninit_subscribers();
+    if ( !ret )
+        ffa_sp_list_cache_free();
     return ret;
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 10:02:29 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 10:02:29 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240487.1541864 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvBiu-0004Zd-Rq; Wed, 25 Feb 2026 10:02:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240487.1541864; Wed, 25 Feb 2026 10:02:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvBiu-0004ZS-Ox; Wed, 25 Feb 2026 10:02:28 +0000
Received: by outflank-mailman (input) for mailman id 1240487;
 Wed, 25 Feb 2026 10:02: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=tMbn=A5=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vvBit-0004Lo-L1
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 10:02:27 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 13b4c061-1231-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 11:02:22 +0100 (CET)
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 18F20165C;
 Wed, 25 Feb 2026 02:02:15 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.86])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0C3073F62B;
 Wed, 25 Feb 2026 02:02:19 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 13b4c061-1231-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 1/4] xen/arm: ffa: Add start_index to VM partinfo helper
Date: Wed, 25 Feb 2026 10:57:43 +0100
Message-ID: <826eae4c8346e79a227c8cf418cd5f42ee3420a1.1772013062.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772013062.git.bertrand.marquis@arm.com>
References: <cover.1772013062.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Windowed GET_REGS retrieval needs to emit VM entries starting from an
arbitrary index, but ffa_get_vm_partinfo() always starts from index 0.

Add a start_index parameter to ffa_get_vm_partinfo() and skip entries
until the local index reaches start_index. Update
ffa_handle_partition_info_get() to pass start_index=0 to preserve
existing behavior.

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_partinfo.c | 61 +++++++++++++++++++--------------
 1 file changed, 35 insertions(+), 26 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index fdb03dae9a0c..6a6f3ffb822e 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -167,14 +167,15 @@ out:
     return ret;
 }
 
-static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,
-                                   void **dst_buf, void *end_buf,
-                                   uint32_t dst_size)
+static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_index,
+                                   uint32_t *vm_count, void **dst_buf,
+                                   void *end_buf, uint32_t dst_size)
 {
     struct domain *d = current->domain;
     struct ffa_ctx *curr_ctx = d->arch.tee;
     struct ffa_ctx *dest_ctx;
     uint32_t count = 0;
+    uint32_t idx = 0;
     int32_t ret = FFA_RET_OK;
     /*
      * We do not have UUID info for VMs so use the 1.0 structure so that we set
@@ -202,17 +203,21 @@ static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,
     if ( ACCESS_ONCE(curr_ctx->guest_vers) >= FFA_VERSION_1_2 )
     {
         /* Add caller VM information */
-        info.id = curr_ctx->ffa_id;
-        info.execution_context = curr_ctx->num_vcpus;
-        info.partition_properties = FFA_PART_VM_PROP;
-        if ( is_64bit_domain(d) )
-            info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
-
-        ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size, sizeof(info));
-        if ( ret )
-            return ret;
+        if ( start_index == 0)
+        {
+            info.id = curr_ctx->ffa_id;
+            info.execution_context = curr_ctx->num_vcpus;
+            info.partition_properties = FFA_PART_VM_PROP;
+            if ( is_64bit_domain(d) )
+                info.partition_properties |= FFA_PART_PROP_AARCH64_STATE;
 
-        count++;
+            ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
+                                sizeof(info));
+            if ( ret )
+                return ret;
+            count++;
+        }
+        idx++;
     }
 
     if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
@@ -231,21 +236,25 @@ static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,
             if ( dest_ctx == curr_ctx )
                 continue;
 
-            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;
-
-            ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
-                                sizeof(info));
-            if ( ret )
+            if ( idx >= start_index )
             {
-                read_unlock(&ffa_ctx_list_rwlock);
-                return ret;
+                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;
+
+                ret = ffa_copy_info(dst_buf, end_buf, &info, dst_size,
+                                    sizeof(info));
+                if ( ret )
+                {
+                    read_unlock(&ffa_ctx_list_rwlock);
+                    return ret;
+                }
+                count++;
             }
 
-            count++;
+            idx++;
         }
         read_unlock(&ffa_ctx_list_rwlock);
     }
@@ -355,7 +364,7 @@ void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
             goto out_rx_release;
     }
 
-    ret = ffa_get_vm_partinfo(uuid, &ffa_vm_count, &dst_buf, end_buf,
+    ret = ffa_get_vm_partinfo(uuid, 0, &ffa_vm_count, &dst_buf, end_buf,
                               dst_size);
 
 out_rx_release:
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 10:02:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 10:02:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240488.1541874 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvBiw-0004nh-2o; Wed, 25 Feb 2026 10:02:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240488.1541874; Wed, 25 Feb 2026 10: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 1vvBiv-0004na-VP; Wed, 25 Feb 2026 10:02:29 +0000
Received: by outflank-mailman (input) for mailman id 1240488;
 Wed, 25 Feb 2026 10: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=tMbn=A5=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vvBiu-0004Lo-7Q
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 10:02:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTP
 id 15d48a87-1231-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 11:02:25 +0100 (CET)
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 A0229169E;
 Wed, 25 Feb 2026 02:02:18 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.86])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7D3033F62B;
 Wed, 25 Feb 2026 02:02:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 15d48a87-1231-11f1-9ccf-f158ae23cfc8
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 3/4] xen/arm: ffa: Drop SP subscriber lists
Date: Wed, 25 Feb 2026 10:57:45 +0100
Message-ID: <c981d94eb7596a17a4198fcdabcaaf17027aaad3.1772013062.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772013062.git.bertrand.marquis@arm.com>
References: <cover.1772013062.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The init-time SP cache already contains partition properties, but the
code still builds separate subscriber arrays for VM created/destroyed
notifications. That duplicates state and allocation.

Use the cached SP list directly to:
- decide which SPs receive created/destroyed notifications
- build the per-domain destroy bitmap
- skip destroy notifications for SPs not notified on create

No functional changes.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa_partinfo.c | 155 ++++++++------------------------
 1 file changed, 36 insertions(+), 119 deletions(-)

diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index 8a3eac25f99f..d7f9b9f7153c 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -28,12 +28,6 @@ struct ffa_partition_info_1_1 {
     uint8_t uuid[16];
 };
 
-/* SPs subscribing to VM_CREATE and VM_DESTROYED events */
-static uint16_t *subscr_vm_created __read_mostly;
-static uint16_t subscr_vm_created_count __read_mostly;
-static uint16_t *subscr_vm_destroyed __read_mostly;
-static uint16_t subscr_vm_destroyed_count __read_mostly;
-
 /* SP list cache (secure endpoints only); populated at init. */
 static void *sp_list __read_mostly;
 static uint32_t sp_list_count __read_mostly;
@@ -434,14 +428,6 @@ static void ffa_sp_list_cache_free(void)
     sp_list_entry_size = 0;
 }
 
-static void uninit_subscribers(void)
-{
-        subscr_vm_created_count = 0;
-        subscr_vm_destroyed_count = 0;
-        XFREE(subscr_vm_created);
-        XFREE(subscr_vm_destroyed);
-}
-
 static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
                                    uint32_t fpi_size)
 {
@@ -504,79 +490,6 @@ static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
     return true;
 }
 
-static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
-{
-    uint16_t n;
-    uint16_t c_pos;
-    uint16_t d_pos;
-    struct ffa_partition_info_1_1 *fpi;
-
-    if ( fpi_size < sizeof(struct ffa_partition_info_1_1) )
-    {
-        printk(XENLOG_ERR "ffa: partition info size invalid: %u\n", fpi_size);
-        return false;
-    }
-
-    subscr_vm_created_count = 0;
-    subscr_vm_destroyed_count = 0;
-    for ( n = 0; n < count; n++ )
-    {
-        fpi = buf + n * fpi_size;
-
-        /*
-         * We need to have secure partitions using bit 15 set convention for
-         * secure partition IDs.
-         * Inform the user with a log and discard giving created or destroy
-         * event to those IDs.
-         */
-        if ( !FFA_ID_IS_SECURE(fpi->id) )
-        {
-            printk_once(XENLOG_ERR
-                        "ffa: Firmware is not using bit 15 convention for IDs !!\n");
-            printk(XENLOG_ERR
-                   "ffa: Secure partition with id 0x%04x cannot be used\n",
-                   fpi->id);
-        }
-        else
-        {
-            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
-                subscr_vm_created_count++;
-            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
-                subscr_vm_destroyed_count++;
-        }
-    }
-
-    if ( subscr_vm_created_count )
-        subscr_vm_created = xzalloc_array(uint16_t, subscr_vm_created_count);
-    if ( subscr_vm_destroyed_count )
-        subscr_vm_destroyed = xzalloc_array(uint16_t,
-                                            subscr_vm_destroyed_count);
-    if ( (subscr_vm_created_count && !subscr_vm_created) ||
-         (subscr_vm_destroyed_count && !subscr_vm_destroyed) )
-    {
-        printk(XENLOG_ERR "ffa: Failed to allocate subscription lists\n");
-        uninit_subscribers();
-        return false;
-    }
-
-    for ( c_pos = 0, d_pos = 0, n = 0; n < count; n++ )
-    {
-        fpi = buf + n * fpi_size;
-
-        if ( FFA_ID_IS_SECURE(fpi->id) )
-        {
-            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED )
-                subscr_vm_created[c_pos++] = fpi->id;
-            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED )
-                subscr_vm_destroyed[d_pos++] = fpi->id;
-        }
-    }
-
-    return true;
-}
-
-
-
 bool ffa_partinfo_init(void)
 {
     bool ret = false;
@@ -616,48 +529,43 @@ bool ffa_partinfo_init(void)
         goto out;
     }
 
-    ret = init_subscribers(sp_list, sp_list_count, sp_list_entry_size);
+    if ( sp_list_entry_size < sizeof(struct ffa_partition_info_1_1) )
+    {
+        printk(XENLOG_ERR "ffa: partition info size invalid: %u\n",
+               sp_list_entry_size);
+        goto out;
+    }
+    ret = true;
 
 out:
     e = ffa_rxtx_spmc_rx_release(notify_fw);
     if ( e )
         printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n", e);
-    if ( !ret )
-        uninit_subscribers();
     if ( !ret )
         ffa_sp_list_cache_free();
     return ret;
 }
 
-static bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,
-                              uint16_t end, uint16_t sp_id)
+static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
+                                   unsigned int first_unnotified)
 {
     unsigned int n;
+    struct ffa_partition_info_1_1 *fpi;
 
-    for ( n = start; n < end; n++ )
+    for ( n = 0; n < sp_list_count; n++ )
     {
-        if ( subscr[n] == sp_id )
-            return true;
-    }
-
-    return false;
-}
+        fpi = sp_list + n * sp_list_entry_size;
 
-static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
-                                   unsigned int create_signal_count)
-{
-    unsigned int n;
+        if ( !(fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED) )
+            continue;
 
-    for ( n = 0; n < subscr_vm_destroyed_count; n++ )
-    {
         /*
          * Skip SPs subscribed to the VM created event that never was
          * notified of the VM creation due to an error during
          * ffa_domain_init().
          */
-        if ( is_in_subscr_list(subscr_vm_created, create_signal_count,
-                               subscr_vm_created_count,
-                               subscr_vm_destroyed[n]) )
+        if ( (fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED) &&
+             n >= first_unnotified )
             continue;
 
         set_bit(n, ctx->vm_destroy_bitmap);
@@ -666,32 +574,39 @@ static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
 
 int32_t ffa_partinfo_domain_init(struct domain *d)
 {
-    unsigned int count = BITS_TO_LONGS(subscr_vm_destroyed_count);
+    unsigned int count = BITS_TO_LONGS(sp_list_count);
     struct ffa_ctx *ctx = d->arch.tee;
     unsigned int n;
+    unsigned int first_unnotified = sp_list_count;
     int32_t res;
+    struct ffa_partition_info_1_1 *fpi;
 
-    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) )
+    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) || !sp_list_count )
         return 0;
 
     ctx->vm_destroy_bitmap = xzalloc_array(unsigned long, count);
     if ( !ctx->vm_destroy_bitmap )
         return -ENOMEM;
 
-    for ( n = 0; n < subscr_vm_created_count; n++ )
+    for ( n = 0; n < sp_list_count; n++ )
     {
-        res = ffa_direct_req_send_vm(subscr_vm_created[n], ffa_get_vm_id(d),
+        fpi = sp_list + n * sp_list_entry_size;
+        if ( !(fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED) )
+            continue;
+
+        res = ffa_direct_req_send_vm(fpi->id, ffa_get_vm_id(d),
                                      FFA_MSG_SEND_VM_CREATED);
         if ( res )
         {
             printk(XENLOG_ERR "ffa: Failed to report creation of vm_id %u to  %u: res %d\n",
-                   ffa_get_vm_id(d), subscr_vm_created[n], res);
+                   ffa_get_vm_id(d), fpi->id, res);
+            first_unnotified = n;
             break;
         }
     }
-    vm_destroy_bitmap_init(ctx, n);
+    vm_destroy_bitmap_init(ctx, first_unnotified);
 
-    if ( n != subscr_vm_created_count )
+    if ( first_unnotified != sp_list_count )
         return -EIO;
 
     return 0;
@@ -702,22 +617,24 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
     struct ffa_ctx *ctx = d->arch.tee;
     unsigned int n;
     int32_t res;
+    struct ffa_partition_info_1_1 *fpi;
 
     if ( !ctx->vm_destroy_bitmap )
         return true;
 
-    for ( n = 0; n < subscr_vm_destroyed_count; n++ )
+    for ( n = 0; n < sp_list_count; n++ )
     {
         if ( !test_bit(n, ctx->vm_destroy_bitmap) )
             continue;
 
-        res = ffa_direct_req_send_vm(subscr_vm_destroyed[n], ffa_get_vm_id(d),
+        fpi = sp_list + n * sp_list_entry_size;
+        res = ffa_direct_req_send_vm(fpi->id, ffa_get_vm_id(d),
                                      FFA_MSG_SEND_VM_DESTROYED);
 
         if ( res && printk_ratelimit() )
             printk(XENLOG_WARNING
                    "%pd: ffa: Failed to report destruction of vm_id %u to %u: res %d\n",
-                   d, ffa_get_vm_id(d), subscr_vm_destroyed[n], res);
+                   d, ffa_get_vm_id(d), fpi->id, res);
 
         /*
          * For these two error codes the hypervisor is expected to resend
@@ -729,7 +646,7 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
             clear_bit(n, ctx->vm_destroy_bitmap);
     }
 
-    if ( bitmap_empty(ctx->vm_destroy_bitmap, subscr_vm_destroyed_count) )
+    if ( bitmap_empty(ctx->vm_destroy_bitmap, sp_list_count) )
         XFREE(ctx->vm_destroy_bitmap);
 
     return !ctx->vm_destroy_bitmap;
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 10:02:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 10:02:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240489.1541880 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvBiw-0004qq-EA; Wed, 25 Feb 2026 10:02:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240489.1541880; Wed, 25 Feb 2026 10: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 1vvBiw-0004pZ-5b; Wed, 25 Feb 2026 10:02:30 +0000
Received: by outflank-mailman (input) for mailman id 1240489;
 Wed, 25 Feb 2026 10:02: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=tMbn=A5=arm.com=bertrand.marquis@srs-se1.protection.inumbo.net>)
 id 1vvBiu-0004U5-Dp
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 10:02:28 +0000
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTP
 id 16ea283a-1231-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 11:02:27 +0100 (CET)
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 572B016A3;
 Wed, 25 Feb 2026 02:02:20 -0800 (PST)
Received: from C3HXLD123V.arm.com (unknown [10.57.54.86])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 46CCB3F62B;
 Wed, 25 Feb 2026 02:02:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 16ea283a-1231-11f1-b164-2bf370ae4941
From: Bertrand Marquis <bertrand.marquis@arm.com>
To: xen-devel@lists.xenproject.org
Cc: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
	Jens Wiklander <jens.wiklander@linaro.org>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Michal Orzel <michal.orzel@amd.com>
Subject: [PATCH 4/4] xen/arm: ffa: Add cached GET_REGS support
Date: Wed, 25 Feb 2026 10:57:46 +0100
Message-ID: <832ba950a53a7139b51053f6570fd9b26ba42df1.1772013062.git.bertrand.marquis@arm.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772013062.git.bertrand.marquis@arm.com>
References: <cover.1772013062.git.bertrand.marquis@arm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

FF-A v1.2 defines PARTITION_INFO_GET_REGS for register-based partition
info retrieval, but Xen currently only supports the buffer-based GET
path for guests.

Implement GET_REGS using the cached SP list and VM entries, including
the register window layout and input validation. Track VM list changes
via the partinfo tag and use it to validate GET_REGS tag inputs. Ensure
that when a non-Nil UUID is specified, the UUID fields in both GET and
GET_REGS results are MBZ as required by the specification.

PARTITION_INFO_GET_REGS is available to v1.2 guests, returning cached SP
entries and VM entries with UUIDs zeroed for non-Nil UUID queries.

Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
---
 xen/arch/arm/tee/ffa.c          |  16 +++
 xen/arch/arm/tee/ffa_partinfo.c | 211 ++++++++++++++++++++++++++++++++
 xen/arch/arm/tee/ffa_private.h  |   4 +-
 3 files changed, 230 insertions(+), 1 deletion(-)

diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
index aa43ae2595d7..d56eb20c2239 100644
--- a/xen/arch/arm/tee/ffa.c
+++ b/xen/arch/arm/tee/ffa.c
@@ -44,6 +44,11 @@
  *   - doesn't support signalling the secondary scheduler of pending
  *     notification for secure partitions
  *   - doesn't support notifications for Xen itself
+ * o FFA_PARTITION_INFO_GET/GET_REGS:
+ *   - v1.0 guests may see duplicate SP IDs when firmware provides UUIDs
+ *   - SP list is cached at init; SPMC tag changes are not tracked
+ *     between calls
+ *   - SP list is capped at FFA_MAX_NUM_SP entries
  *
  * There are some large locked sections with ffa_spmc_tx_lock and
  * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
@@ -188,6 +193,7 @@ static bool ffa_negotiate_version(struct cpu_user_regs *regs)
             write_lock(&ffa_ctx_list_rwlock);
             list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
             write_unlock(&ffa_ctx_list_rwlock);
+            ffa_partinfo_inc_tag();
         }
 
         goto out_continue;
@@ -341,6 +347,12 @@ static void handle_features(struct cpu_user_regs *regs)
     case FFA_FEATURE_SCHEDULE_RECV_INTR:
         ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0);
         break;
+    case FFA_PARTITION_INFO_GET_REGS:
+        if ( ACCESS_ONCE(ctx->guest_vers) >= FFA_VERSION_1_2 )
+            ffa_set_regs_success(regs, 0, 0);
+        else
+            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
+        break;
 
     case FFA_NOTIFICATION_BIND:
     case FFA_NOTIFICATION_UNBIND:
@@ -402,6 +414,9 @@ static bool ffa_handle_call(struct cpu_user_regs *regs)
     case FFA_PARTITION_INFO_GET:
         ffa_handle_partition_info_get(regs);
         return true;
+    case FFA_PARTITION_INFO_GET_REGS:
+        ffa_handle_partition_info_get_regs(regs);
+        return true;
     case FFA_RX_RELEASE:
         e = ffa_rx_release(ctx);
         break;
@@ -629,6 +644,7 @@ static int ffa_domain_teardown(struct domain *d)
         write_lock(&ffa_ctx_list_rwlock);
         list_del(&ctx->ctx_list);
         write_unlock(&ffa_ctx_list_rwlock);
+        ffa_partinfo_inc_tag();
     }
 
     ffa_rxtx_domain_destroy(d);
diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_partinfo.c
index d7f9b9f7153c..1c7b3579f798 100644
--- a/xen/arch/arm/tee/ffa_partinfo.c
+++ b/xen/arch/arm/tee/ffa_partinfo.c
@@ -28,10 +28,39 @@ struct ffa_partition_info_1_1 {
     uint8_t uuid[16];
 };
 
+/* Registers a3..a17 (15 regs) carry partition descriptors, 3 regs each. */
+#define FFA_PARTINFO_REG_MAX_ENTRIES \
+    ((15 * sizeof(uint64_t)) / sizeof(struct ffa_partition_info_1_1))
+
 /* SP list cache (secure endpoints only); populated at init. */
 static void *sp_list __read_mostly;
 static uint32_t sp_list_count __read_mostly;
 static uint32_t sp_list_entry_size __read_mostly;
+
+/* SP list is static; tag only moves when VMs are added/removed. */
+static atomic_t ffa_partinfo_tag = ATOMIC_INIT(1);
+
+void ffa_partinfo_inc_tag(void)
+{
+    atomic_inc(&ffa_partinfo_tag);
+}
+
+static inline uint16_t ffa_partinfo_get_tag(void)
+{
+    /*
+     * Tag moves with VM list changes only.
+     *
+     * Limitation: we cannot detect an SPMC tag change between calls because we
+     * do not retain the previous SPMC tag; we only refresh it via the mandatory
+     * start_index=0 call and assume it stays stable while combined_tag (our
+     * VM/SP-count tag) is used for guest validation. This means SPMC tag
+     * changes alone will not trigger RETRY.
+     */
+    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+        return atomic_read(&ffa_partinfo_tag) & GENMASK(15, 0);
+    else
+        return 1;
+}
 static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t flags,
                                       uint32_t *count, uint32_t *fpi_size)
 {
@@ -125,6 +154,7 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
     for ( n = 0; n < sp_list_count; n++ )
     {
         void *entry = sp_list + n * sp_list_entry_size;
+        void *dst_pos;
 
         if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
             continue;
@@ -136,11 +166,20 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
          * This is a non-compliance to the specification but 1.0 VMs should
          * handle that on their own to simplify Xen implementation.
          */
+        dst_pos = *dst_buf;
         ret = ffa_copy_info(dst_buf, end_buf, entry, dst_size,
                             sp_list_entry_size);
         if ( ret )
             return ret;
 
+        if ( !ffa_uuid_is_nil(uuid) &&
+             dst_size >= sizeof(struct ffa_partition_info_1_1) )
+        {
+            struct ffa_partition_info_1_1 *fpi = dst_pos;
+
+            memset(fpi->uuid, 0, sizeof(fpi->uuid));
+        }
+
         count++;
     }
 
@@ -152,6 +191,38 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,
     return FFA_RET_OK;
 }
 
+static uint16_t ffa_get_sp_partinfo_regs(struct ffa_uuid uuid,
+                                         uint16_t start_index,
+                                         uint64_t *out_regs,
+                                         uint16_t max_entries)
+{
+    uint32_t idx = 0;
+    uint16_t filled = 0;
+    uint32_t n;
+
+    for ( n = 0; n < sp_list_count && filled < max_entries; n++ )
+    {
+        void *entry = sp_list + n * sp_list_entry_size;
+
+        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
+            continue;
+
+        if ( idx++ < start_index )
+            continue;
+
+        memcpy(&out_regs[filled * 3], entry,
+               sizeof(struct ffa_partition_info_1_1));
+        if ( !ffa_uuid_is_nil(uuid) )
+        {
+            out_regs[filled * 3 + 1] = 0;
+            out_regs[filled * 3 + 2] = 0;
+        }
+        filled++;
+    }
+
+    return filled;
+}
+
 static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_index,
                                    uint32_t *vm_count, void **dst_buf,
                                    void *end_buf, uint32_t dst_size)
@@ -368,6 +439,146 @@ out:
     }
 }
 
+void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs)
+{
+    struct domain *d = current->domain;
+    struct ffa_ctx *ctx = d->arch.tee;
+    struct ffa_uuid uuid;
+    uint32_t sp_count = 0, vm_count = 0, total_count;
+    uint16_t start_index, tag;
+    uint16_t num_entries = 0;
+    uint64_t x3 = get_user_reg(regs, 3);
+    int32_t ret = FFA_RET_OK;
+    uint64_t out_regs[18] = { 0 };
+    unsigned int n;
+    uint16_t tag_out;
+
+    if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    /*
+     * Registers a3..a17 (15 regs) carry partition descriptors, 3 regs each.
+     * For FF-A 1.2, that yields a maximum of 5 entries per GET_REGS call.
+     * Enforce the assumed layout so window sizing stays correct.
+     */
+    BUILD_BUG_ON(FFA_PARTINFO_REG_MAX_ENTRIES != 5);
+
+    for ( n = 4; n <= 17; n++ )
+    {
+        if ( get_user_reg(regs, n) )
+        {
+            ret = FFA_RET_INVALID_PARAMETERS;
+            goto out;
+        }
+    }
+
+    if ( x3 >> 32 )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    start_index = x3 & GENMASK(15, 0);
+    tag = (x3 >> 16) & GENMASK(15, 0);
+
+    /* Start index must allow room for up to 5 entries without 16-bit overflow. */
+    if ( start_index > (GENMASK(15, 0) - (FFA_PARTINFO_REG_MAX_ENTRIES - 1)) )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    uuid.val[0] = get_user_reg(regs, 1);
+    uuid.val[1] = get_user_reg(regs, 2);
+
+    if ( sp_list_count &&
+         sp_list_entry_size != sizeof(struct ffa_partition_info_1_1) )
+    {
+        ret = FFA_RET_NOT_SUPPORTED;
+        goto out;
+    }
+
+    tag_out = ffa_partinfo_get_tag();
+
+    if ( start_index == 0 )
+    {
+        if ( tag )
+        {
+            ret = FFA_RET_INVALID_PARAMETERS;
+            goto out;
+        }
+    }
+    else if ( tag != tag_out )
+    {
+        ret = FFA_RET_RETRY;
+        goto out;
+    }
+
+    if ( ffa_uuid_is_nil(uuid) )
+    {
+        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
+            vm_count = get_ffa_vm_count();
+        else
+            vm_count = 1; /* Caller VM only */
+    }
+
+    ret = ffa_get_sp_count(uuid, &sp_count);
+    if ( ret )
+        goto out;
+
+    total_count = sp_count + vm_count;
+
+    if ( total_count == 0 || start_index >= total_count )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    if ( start_index < sp_count )
+        num_entries = ffa_get_sp_partinfo_regs(uuid, start_index, &out_regs[3],
+                                               FFA_PARTINFO_REG_MAX_ENTRIES);
+
+    if ( num_entries < FFA_PARTINFO_REG_MAX_ENTRIES )
+    {
+        uint32_t vm_start = start_index > sp_count ?
+                            start_index - sp_count : 0;
+        uint32_t filled = 0;
+        void *vm_dst = &out_regs[3 + num_entries * 3];
+        void *vm_end = &out_regs[18];
+
+        ret = ffa_get_vm_partinfo(uuid, vm_start, &filled, &vm_dst, vm_end,
+                                  sizeof(struct ffa_partition_info_1_1));
+        if ( ret != FFA_RET_OK && ret != FFA_RET_NO_MEMORY )
+            goto out;
+
+        num_entries += filled;
+    }
+
+    if ( num_entries == 0 )
+    {
+        ret = FFA_RET_INVALID_PARAMETERS;
+        goto out;
+    }
+
+    out_regs[0] = FFA_SUCCESS_64;
+    out_regs[2] = ((uint64_t)sizeof(struct ffa_partition_info_1_1) << 48) |
+                  ((uint64_t)tag_out << 32) |
+                  ((uint64_t)(start_index + num_entries - 1) << 16) |
+                  ((uint64_t)(total_count - 1) & GENMASK(15, 0));
+
+    for ( n = 0; n < ARRAY_SIZE(out_regs); n++ )
+        set_user_reg(regs, n, out_regs[n]);
+
+    return;
+
+out:
+    if ( ret )
+        ffa_set_regs_error(regs, ret);
+}
+
 static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
                                       uint8_t msg)
 {
diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_private.h
index 1a632983c860..c291f32b56ff 100644
--- a/xen/arch/arm/tee/ffa_private.h
+++ b/xen/arch/arm/tee/ffa_private.h
@@ -289,7 +289,7 @@
 #define FFA_MSG_SEND2                   0x84000086U
 #define FFA_CONSOLE_LOG_32              0x8400008AU
 #define FFA_CONSOLE_LOG_64              0xC400008AU
-#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
+#define FFA_PARTITION_INFO_GET_REGS     0xC400008BU
 #define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
 #define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
 
@@ -452,6 +452,8 @@ bool ffa_partinfo_init(void);
 int32_t ffa_partinfo_domain_init(struct domain *d);
 bool ffa_partinfo_domain_destroy(struct domain *d);
 void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
+void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs);
+void ffa_partinfo_inc_tag(void);
 
 int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain **d_out,
                                    struct ffa_ctx **ctx_out);
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 10:50:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 10:50:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240547.1541895 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvCTa-0003PI-RG; Wed, 25 Feb 2026 10:50:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240547.1541895; Wed, 25 Feb 2026 10: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 1vvCTa-0003PB-NC; Wed, 25 Feb 2026 10:50:42 +0000
Received: by outflank-mailman (input) for mailman id 1240547;
 Wed, 25 Feb 2026 10:50: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=M72+=A5=bounce.vates.tech=bounce-md_30504962.699ed3fe.v1-8ad8df7059c34404a55a3ea06ffb712a@srs-se1.protection.inumbo.net>)
 id 1vvCTZ-0003P5-FV
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 10:50:41 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d2b30fb7-1237-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 11:50:40 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fLWb24Lvzz5QkLbp
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 10:50:38 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 8ad8df7059c34404a55a3ea06ffb712a; Wed, 25 Feb 2026 10:50: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: d2b30fb7-1237-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772016638; x=1772286638;
	bh=CtrFlHnqw6yHgtrirC6hE/1//ZvPzW09IT4iSt2SNKo=;
	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=ascFfilDOEekAws3qKuMYy8KMa61RfCiH+QOiXi8/DqYqK67lM7r6ZQIvhzCiGIIE
	 2eF6fKAPH+FFrO5O+u2P7Z7+G010UNZ96LFfyQn/uTCAslWROeDmpB0j83KYElY28H
	 HH51yGJWClkG9LpjahKgmlmLe8Nd8l3V5g1Fb5OEB4WhB1IHcOK44TES2wu/pxMviV
	 cIp53bm8T64yszgkfCV0RYwvbvotKIU4GjjN72b7KRowqm3Rq7ahBdO/Cuuyi4fWXR
	 HoxMV+0jEtj1YSasbAQ1UzjX7gr9vs43mKek+s7PVQOdPhf7vdHXxwV20GgmybDcbY
	 wVxrKAGcmc2fA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772016638; x=1772277138; i=anthony.perard@vates.tech;
	bh=CtrFlHnqw6yHgtrirC6hE/1//ZvPzW09IT4iSt2SNKo=;
	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=uZhfqaGYPIUDI/9Pjm8qOs9tNp1ExiJmkkmUWPHob0vD2lgWCVQSRwo1vMpfe6Yhs
	 GeIGfHTykaAPY7UOwK8eR51H0pwqKYWinjnF8jyiLRconBv+afzVGnV4koP4Z8XvhY
	 xNgO6udzH2OxJOcqZj0iChrs9KTzSI7XrYKScxBv8dM0ESJ329z+Kb4NUXvD1mtdCr
	 ORZgmlYLWn1e6TIVODjaYCEED093uPAfIs0O3O3A4ZKwFcOCrS5FLNvPsnzNlMROAU
	 5o0cM8LM2VFpCt2Tg0O+auLZhAAhqq7rlb3W/nXtc+OYS4giD+Zo4HyleyQ9vdDmoU
	 bvDBVQORoAWng==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v7=201/2]=20libxc:=20Report=20consistent=20errors=20in=20xc=5Fresource=5Fop?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772016637926
To: "Teddy Astie" <teddy.astie@vates.tech>
Cc: "Jan Beulich" <jbeulich@suse.com>, "Juergen Gross" <jgross@suse.com>, xen-devel@lists.xenproject.org
Message-Id: <aZ7T_ddTHBY0fz7I@l14>
References: <c8677e4588eff14197e47070587f31df1567c030.1771860109.git.teddy.astie@vates.tech> <0d7afac2-d358-4b0e-b828-31ebba6357d2@suse.com> <f569a8f0-8df9-4e5a-b3ed-ae600c3c0bd3@vates.tech>
In-Reply-To: <f569a8f0-8df9-4e5a-b3ed-ae600c3c0bd3@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.8ad8df7059c34404a55a3ea06ffb712a?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260225:md
Date: Wed, 25 Feb 2026 10:50:38 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Tue, Feb 24, 2026 at 09:28:57AM +0000, Teddy Astie wrote:
> Le 23/02/2026 =C3=A0 17:15, Jan Beulich a =C3=A9crit=C2=A0:
> > On 23.02.2026 17:06, Teddy Astie wrote:
> >> xc_report_op returns -1 in some error conditions.
> >> Make sure it returns -ENOMEM in out of memory errors and -EINVAL
> >> in invalid usages errors.
> >
> > Isn't this a move in the wrong direction? -1 as a return value is quite=
 okay.
> > errno wants setting to indicate the cause of the error (if called funct=
ions
> > don't already set it properly).
> >
> 
> To me, passing error through errno here feels more like a workaround
> rather than a proper error handling. It doesn't feel consistent in libxc
> overall (some functions returns a negative value corresponding to a
> error number while some others -1; in some cases we update errno).
> 
> What are the error handling rules for xenctrl ?

They are written down. See
    https://elixir.bootlin.com/xen/v4.21.0/source/tools/include/xenctrl.h#L=
76

    Unless otherwise specified, each function here returns zero or a
    non-null pointer on success; or in case of failure, sets errno and
    returns -1 or a null pointer.

    Unless otherwise specified, errors result in a call to the error
    handler function, which by default prints a message to the
    FILE* passed as the caller_data, which by default is stderr.
    (This is described below as "logging errors".)

    The error handler can safely trash errno, as libxc saves it across
    the callback.

`errno` isn't a workaround, it is the way many libc functions and other
passes generic error code. It may feel awkward, but that C.

If some functions don't update `errno`, it might be because the syscall
already set `errno` and there's no need to change it.

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Feb 25 11:28:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 11:28:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240573.1541905 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvD3p-0007Ih-B9; Wed, 25 Feb 2026 11:28:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240573.1541905; Wed, 25 Feb 2026 11:28:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvD3p-0007IZ-7Y; Wed, 25 Feb 2026 11:28:09 +0000
Received: by outflank-mailman (input) for mailman id 1240573;
 Wed, 25 Feb 2026 11:28: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=dz9A=A5=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvD3n-0007IT-MC
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 11:28:07 +0000
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c112::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0e03c830-123d-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 12:28:06 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by PH0PR03MB7065.namprd03.prod.outlook.com (2603:10b6:510:29b::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Wed, 25 Feb
 2026 11:28:02 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026
 11:28: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: 0e03c830-123d-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Fk0trAsdhiuUGL/MEHpKsw6pPaWauORX2O7qMKTs1uV11KUs/mfCZw7pJUVz2wRz0cgoZ6zfOJ7X45NjmwaIAzNI5bCv5DdZOPyJYQmbml8KOOR3PJswdEu7fKp4+Ho0C7vXHyyT9Vn9PMIQKgybtlTW5yuy2Bt0K/uhJiz9UDvkEB76M0QvbJugpLUMxj1a/aS7YgYNx6xwa54cYjkGNp25gIwcmEnj2f32FTuMAKk5opKUuTQCSSDgfhC7V0x8/JiGEVS/erAOFRgMuHqkaWrDnbSfRIZuQ5z9b1+hblMhA8eAAyGFf++ZdgtRuI/AkmRVTWsQ731uFMeHdVg2tA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=i6eRewzxLUuHWgVB61gtlBwhjyQzdMa0dAcfY9uYcKk=;
 b=y0ZI68+Vci2Pu9uqfChv1s58PEFM7NRv4q0qg/2qAp4fmbZNRbfTeSubZlJJrv8s0khLdl8UdsdfusvLTbomXVF8vbWo//z4NU9DnhNF0EJJPR4vzGsT/vyOAnhQx/mu4vsvLFz2mwK0TfokJVADN2yF/Jj1AnlePPbegQrgDOAFX/SdzaDUWQMFGhWCiQNVLkOrnS+8XSt3J2OxaykDxjPHCHvAHBMe+I75Bt+6aTtCdQVC+ZJrpYsXPsFjX6OJAb/ljoZSx3eVkpyxyhsJjcmmdmIxKDp0vWI7z1WUGD9zSR8eJSGcP6UFy/ko23MwEPcG/URV/CrxwSOsFyqumQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=i6eRewzxLUuHWgVB61gtlBwhjyQzdMa0dAcfY9uYcKk=;
 b=BQtrAnZnDj1M1wA9tBy21SRoqh6qsBjNvzCR3cQL7LZpxvWnSR1u37Bay5LUrqof96aOmGx+lfe7xIxzAen5VvYkLtM/KTMSrAdOQ8lonkcWEkky99Ozn/g5qn5ZVscbSBMZRSQ34rMTA+S/LHPKSEjLD1INzWlQ1KT2a7Zhvic=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <48e5a691-a232-4a36-8b90-9e0a77a5b498@citrix.com>
Date: Wed, 25 Feb 2026 11:27:59 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 1/2] x86/cpu-policy: move CPU policy library code
To: Jan Beulich <jbeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>
References: <4bd68e41-e665-4992-9d3c-0086bb5195ef@suse.com>
 <7c06bd5e-fad2-42cb-947f-6749f647b068@suse.com>
 <d8eb4220-da82-43b3-b0e0-9d006f68877c@citrix.com>
 <e5e75e36-a383-4506-8e59-288faeffb614@suse.com>
 <1d85f83d-45c9-444e-8db4-3e0962aad0a6@citrix.com>
 <11c2f97e-efa8-46ea-8605-4ce6cffb9683@suse.com>
 <aZ1m8ZcXyiEBk1Sf@macbook.local>
 <c412f399-9e20-4f20-a43d-f0b3c3fa8f52@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c412f399-9e20-4f20-a43d-f0b3c3fa8f52@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0289.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:196::6) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|PH0PR03MB7065:EE_
X-MS-Office365-Filtering-Correlation-Id: 3764255e-0eeb-4041-9406-08de7460eff0
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	1mRsOMfmepfzPVO2T0/ClY3BQlSuuZH12fIH8LaiLquxDUNti4Vh/kVRzQcyFxPoelyqD+dcSSEbM0oTd2II/P8WVJQRsA7Bs/5+8gVA0z8+oW6+rlaaAt0xrP8PPmjizzlUvVdxFh5dXYUYqM0l2KRZdwcNZdcBG0u9zzjYYPqaPnZNlmyjkUKn16+2nl6zskUu6pBm7NYl8EdHmHIKfmzK9LCJXt6WepGeazhRCLzWvbiWWnCZ1N7Pc6hz3gbUt6jNPcF9hcP7JID/dknut83+gRhu8FlGhYXUNlFrIza9uDYOIm8OFrrQ63miRwplYcBoufXraR4cbHNDqCzcVPH/2gig6C2ifu4zskeC95yI6OaeBIrjOKyTwDKq1svdz0lst1pEsXobb1KpqLT5gIEBRTljeeLmOGhtaXYMQ9BzaFXMVW3MsnP7Mzzj8Dr8kmGzAuo/bpSFp0kKbSb/1ryRV2xZApu+4XoygR/f7nHXpg4ituzf5DvYAu3A0PU0q9DErMpONvck0kBc+cOIl6DB61udiYREUaaB3Bq759wLofG20HbeE0xblLIiLuvmjpIcgagfi7hPSbG6eGWdIAXPXmZDXoeR08KNBSbR14qO10HilNmMGjYvH0ZGQ56VFjDqNF/IsXktTTsNWBUHZrzwwXswRiiHk761qrlxdt+y0rvG8kPM3Muv7HSiWkaIiZIIcshHQtO/D+pp3tvH3asdwI67t3fqyC+liYXSSWI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?cmx4emViWm83eEhGS0dxTjMvdDN6eGMyd284Q0hIdUtFLzNya2FENThFbUlX?=
 =?utf-8?B?TmxoNkk0UDlWT3g3UXNXdmt4SnAzeStZY3VIdm5ILzVwTnBpNzNRaGdBSVA5?=
 =?utf-8?B?ckdlYUZYVUhGVDZNV3VyTUY4alZTcEluRkM2UVhjWGtmVTVReVNzekJNZ2Z2?=
 =?utf-8?B?Z216SmhqTXhic0FjbHlwc2J2bTNiYTJRY2s1NmkwMGxPSUsvNXc2QXFVTElM?=
 =?utf-8?B?bVdvTUFiZVZnU1FUeU1GVkRVTXVQaDIySmNOTEcyTUtlY2ZEQmpUbk9iTmFH?=
 =?utf-8?B?M0YxVEZpTm5LMG1tNVZEYmNBVVB1aDJ4dEhVYjhvOEZWN25CZTYra0VVZ3ZE?=
 =?utf-8?B?YzJCNklQSzdvN0RMYWg1UFlmYTE1YWprajhOd0orMlBRK1pldU5GaU5kanRz?=
 =?utf-8?B?WFBJL3J4eDh4WUE0TXNEVFJ6UUJGOEtVSzNub3I5L3FoMS9IL2dBejhHVm5E?=
 =?utf-8?B?dHRFTWE2cnYzWnVkd3k2dmgwTW9VUUhPUTAxVEdhQWdzL09GNitBcVVRa01H?=
 =?utf-8?B?LzhsWmtseFM5LzJIMXJVMWtPM0FBRER4d00xSU9wd1lFMC9mc2NtNHhFLzZj?=
 =?utf-8?B?amlHRHg5N0E4K0NJcERjNGtmZlMzUXFJdzNkQmFzM0c1U3kyU3FSQkZQOGdI?=
 =?utf-8?B?dUhPUnozT2tRSlBwRWo3bWlnbUpibmoyOGxpY0RLVXMybllyQnY0ek42aTE5?=
 =?utf-8?B?RTFTZS9oRXF1TkVqZkxodUNiRllSZGRmRDBSYXBiSVNrNEk5ODFQRVJPSUc1?=
 =?utf-8?B?cEgwWDFHcm01RVVGOTg3L3VBcFZuMUF6ZHV1eXZDWFJkSVc5blJZNS9qTnB2?=
 =?utf-8?B?WFU2TnVUdUx3aTdJSjRncGpRRWFqbmFWTHZHUEtZdXdwa0RMWkxYOEdHNFVN?=
 =?utf-8?B?WGxTRWZrYVR0QjNHTnFqR1g5cXBTeXN4anZUV0YvTTVvSnNiVVpEclAyTFp2?=
 =?utf-8?B?OGl4eDFMQ3h1OEhDM0JaWlpLOHZKbWU4V3dsVTZ5NXl5c3RqS0NiQzBZUUdi?=
 =?utf-8?B?bWh2dkl3YklaT3J5bUYvZTVlSVRKOW96YWFRY2IyTXpkYUhQUUl1WWhUemRz?=
 =?utf-8?B?a0lMZnJsbTFkMTB4cEdJWUdybEhNeU0rckpQREU1UTVZU0Y5bys4cEQvdE9I?=
 =?utf-8?B?eENKZGFNWmYwWWZwTVpOQS9LZ2pvM21GbnZGTkJjc1FoenNvVzFaVnNVVERw?=
 =?utf-8?B?NlJoV2VvU25ld1FsSk5tcTBPMC9laVFMR29nY1ViR3hHSllVbVRLTHdKMmpP?=
 =?utf-8?B?MmduWTJ5SUdLakppSDFVRTFHYTZydFRpMm5xVTQxQ0s3NHJvUDlQaDV2R29n?=
 =?utf-8?B?RjNMY1BZMStXWk45RGJqM1g4aGtxTUZBWkJTU3lnek84dW9QL0ZiQ0lKNXZv?=
 =?utf-8?B?K1BCM0E3UTN0RkNmcHZIV0RnQzNpUXMzY2dKazIxeC90cU5acDlxNlF6aU5J?=
 =?utf-8?B?eTdLYzlBVXBtRWNOVzVpSjd4aE5JWmxVaFowdXBMTVRBQzRvL1pHNnRIVC9P?=
 =?utf-8?B?VDh1K1MzclJjUXFWUXdzNHBwREtYcmFqenFDQlZVVC9mblFvbmU5Q202eDVr?=
 =?utf-8?B?encxbGJYNmgvN1ZqS21qUUdSbjU5MkFwQkRmRlB1Z3AzZk8rVmlYb2I0SktW?=
 =?utf-8?B?VUNmZkdzZlRySTM4WStDYjJFY2VtbGlFS3VYLysvMnRDQkx0M2hSVWV6VW4z?=
 =?utf-8?B?RERTbVgyWjZoTFRDOEkvNHU1bExVK3dKNXIzVU9YZGtXdnFyc05EQVVHazhQ?=
 =?utf-8?B?OUhIajZiMWJ0Mm93Rnc0YlpxUDhHeG9NaTdxRDJibjhxdi85bnpFbU9aeWRl?=
 =?utf-8?B?VGt5TkMybDR2UkRPenJYb2tqaG9YTUVlQkIyQ0NVYTBWYmFDd2tES1p0WFRD?=
 =?utf-8?B?azBQYVR4ZGtYd0J5NG55SWY4aGkxcWtrV0d6dVliQlBZcm1FRjhPaGtsc1Nt?=
 =?utf-8?B?TGx4L1FQYmxLRS80WTdkaTAzK0ZnZlJER1VsbGxsOEJiRjdIc0g1ekcybS9k?=
 =?utf-8?B?amsyUktldjRIL1ZNRTRWYWY4SHBRWkM3UkNOb2FPV0NuaTgvaGNxUG45Yzdz?=
 =?utf-8?B?VDgyMndlUXFPc3dyZUFoVVBqNEkxWUUzT1g3dHZVb1g0ejdraGdkWHdOYjlh?=
 =?utf-8?B?N0tka0ljSk1uUEJHdDg3dnV5OFlwM2pYd0w3aVlmRkJHVks4b1NtWmFzcElB?=
 =?utf-8?B?U2NSY3B6NnIwaENaNTBRNlM2Y04waXNlM2RSM1lYbkMxTjB4VjNEM2Q4djAw?=
 =?utf-8?B?UVlQcEkrdWs5cjZzY2dqNS9oUFo1elQ2RmRCOVdDckdWbFpDMS9HQjVsblE2?=
 =?utf-8?B?VEg2UDN0QlZtaE5XNmJVTXRaYklpSGQ0UG0xeWJOZjdlaU9lSGNOUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3764255e-0eeb-4041-9406-08de7460eff0
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 11:28:02.6189
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: p8QURjRY605imleKFXnHOW3SopV9PRfC7yPtMM+PxhtD+tbUo/dNHIbqP/fgb6elRt22ZBnAh4wNKYxsA3UhoWnIUI0kRx1c0RJj1N5u6R4=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB7065

On 24/02/2026 8:58 am, Jan Beulich wrote:
> On 24.02.2026 09:53, Roger Pau Monné wrote:
>> On Tue, Feb 24, 2026 at 07:54:29AM +0100, Jan Beulich wrote:
>>> On 23.02.2026 20:00, Andrew Cooper wrote:
>>>> On 02/02/2026 4:26 pm, Jan Beulich wrote:
>>>>> On 02.02.2026 16:47, Andrew Cooper wrote:
>>>>>> On 07/01/2026 2:17 pm, Jan Beulich wrote:
>>>>>>> diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
>>>>>>> index 0203138a819a..be6c76d2934b 100644
>>>>>>> --- a/xen/arch/x86/arch.mk
>>>>>>> +++ b/xen/arch/x86/arch.mk
>>>>>>> @@ -4,6 +4,7 @@
>>>>>>>  export XEN_IMG_OFFSET := 0x200000
>>>>>>>  
>>>>>>>  ARCH_LIBS-y += arch/x86/lib/lib.a
>>>>>>> +ALL_LIBS-y += arch/x86/lib/cpu-policy/lib.a
>>>>>> This wants to extend ARCH_LIBS-y surely?  Is this a rebasing oversight?
>>>>> No, this was deliberate. The functions here are different from those in
>>>>> arch/x86/lib/lib.a. We don't need to fear collision with "common code"
>>>>> ones. Hence I preferred to use the more "normal" placement into what's
>>>>> passed to the linker.
>>>> I agree that we don't have the explicit ordering requirement that we
>>>> have with arch/x86/lib/lib.a.
>>>>
>>>> But, it still reads as bogus to be putting arch/x86/lib/cpu-policy/lib.a
>>>> in the non-ARCH list.
>>>>
>>>> What difference is there having this a little earlier in the linker
>>>> arguments?  Nothing AFAICT.
>>> Indeed. The sole reason why I'd prefer things as presented is that putting
>>> stuff in ARCH_LIBS should imo be the special case (i.e. requiring a special
>>> reason), while putting things in ALL_LIBS should be the default.
>> I agree with Andrew that it feels weird that arch/x86/lib/lib.a is
>> placed in ARCH_LIBS-y and arch/x86/lib/cpu-policy/lib.a is placed in
>> ALL_LIBS-y.  If we want to do it that way it needs a comment
>> explaining why they are placed in different list, otherwise it seems
>> like a typo on first sight, and it's likely to confuse people in the
>> future.
> Well, I'll (reluctantly) change then.

Thanks.  With that done, Reviewed-by: Andrew Cooper
<andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 11:41:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 11:41:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240598.1541913 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvDGk-0001c7-HB; Wed, 25 Feb 2026 11:41:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240598.1541913; Wed, 25 Feb 2026 11: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 1vvDGk-0001c0-EM; Wed, 25 Feb 2026 11:41:30 +0000
Received: by outflank-mailman (input) for mailman id 1240598;
 Wed, 25 Feb 2026 11: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvDGj-0001bu-Dt
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 11:41:29 +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 eb2d419e-123e-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 12:41:26 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4833115090dso64171775e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 03:41:26 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd7030b9sm55059005e9.4.2026.02.25.03.41.25
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 03:41:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: eb2d419e-123e-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772019686; x=1772624486; 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=XqCsgi2yLqzLjArOpKQCn/A2rA2gjVAZ03jZZxLoBaU=;
        b=duGp5qDpFulqgLH2RJtcOVodXo/fM1nXq5U0YQ1AXEVRUmaWZcOihYZ+o0SkTBAzID
         Ka+5Eb/+TljDTuaS0cPaSeTmMcDCYHePTUDqS+tf7qGq5ccwk70hWy6Xudp5t9GGq6h9
         MSb6houRhGOMnX6BcZSOJx0El37SzWJey6LJ1qH8ATtslUncgRutpiXLGuJXCmdA+Dsg
         /33MMvbNI3HBE5Fonh4yRGgaTjyOyIUap8vXAwHWqReB5deVGu5D5lLVd7Zqca3tHJjN
         z7oOsrf7cntBN/hRtnVXQQ7lF/tKh7j7xMbCf6cJMtsUcC+zDxvGgI5F63W0kPi3yXuz
         qTVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772019686; x=1772624486;
        h=content-transfer-encoding:autocrypt:content-language:cc:to:subject
         :from:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=XqCsgi2yLqzLjArOpKQCn/A2rA2gjVAZ03jZZxLoBaU=;
        b=JOM4k/14eiUhaFuGcj9l2dVXt+wUwYeQgbV7M3pGpN/3uV9ZWUy8cd4VQAXGOwsSpO
         XDnI2vYAP4oitw5kIzZ2DbYjt67aQM7fBgZVHZLMGWzhGal80rVYYQI/3hp6EIn5abMl
         Ne2Qwbl3edMbH/AYn5n4itMDDUCuLxc7mMiDzDLwrME4fR87ylgHYxU70P3aOvGEGGoO
         1exxiS4RBGC2rAIdMUJ/JlK3bY9+2FWHeM7T712L+DlDyF3bI3SBCHYyfnwzsoBXvrI1
         3JVXOIagp6nclkyE6uSW1Ca8fd/3ojh1Oy4uqZt0DtMaCqmk96AC+FyauVmapWnaafy4
         7D1g==
X-Gm-Message-State: AOJu0YzxjTuv3Q0aQ/TkUIXgqi/l8rSaPvnqBlgkUyp9iQftIkogq2JV
	4DOiMzbGTIcfi0VuwZvQSL5toVS0DcxsI3bULsBb5ckSIpTOnQovKU9zM8IwjyUbA1bLK9wEO0B
	yJNk=
X-Gm-Gg: ATEYQzyLg0Y7UW+kOLk5ptO9O/uvs3arf+HeGBhYFlOtmPeNZaKUoN1rw0kzF1acnhr
	JnmnMNbY5ISZJyetN+NbAcbGkuEsBhFHs9OGaBg9WrVA1qqyBeVH/yZggMelqau7kSX1QSGiWlM
	K4i0ng3Z5MvtvVdrS7KEsKhBFnpDEX5RfGxcq4SBpv5I8iZyMAR012NWzrEAgT+HzdObm+mv+Pz
	yiJxwbX1q+YTFN/xNxYDKUg+eTzrGwHsW7e/2KEmxz2g3qo6U6miqraWaYOh85ZnpoclemA95ze
	x0WiK017fqibyLuSMy4y7fdWNPCjOoDrfRWcKwq8dDucK6XASeaXgpKtCmByw3dBc/fLvT8+aIL
	maUhcKUIJaLlHiOfhQ9auwntIt9yKuhWSJZSRVtk0mOwXG3WjtLR6JYTq4G/jCRLwp16gxNlzdx
	wB0VBEdcaEua/Tigf1w07DI7pQcNh55s8bbdY6xNf5PpZIry7x17TevE/qXIyevGpCSH3PUENy+
	Ex3dRMR1Q4z2bQ=
X-Received: by 2002:a05:600c:8a0a:20b0:483:7903:c3b1 with SMTP id 5b1f17b1804b1-483aaa168b0mr188345295e9.20.1772019686324;
        Wed, 25 Feb 2026 03:41:26 -0800 (PST)
Message-ID: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
Date: Wed, 25 Feb 2026 12:41:24 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Jan Beulich <jbeulich@suse.com>
Subject: [PATCH v5 0/5] vPCI: extended capability handling
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.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

This is a follow-on to 'vPCI: avoid bogus "overlap in extended cap list"
warnings', addressing further issues noted there.

v5: One new patch and some other re-work. See individual patches.

1: introduce private header
2: move vpci_init_capabilities() to a separate file
3: move capability-list init
4: ReBAR: improve cleanup
5: re-init extended-capabilities when MMCFG availability changed

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 11:43:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 11:43:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240607.1541923 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvDIQ-00026u-Rh; Wed, 25 Feb 2026 11:43:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240607.1541923; Wed, 25 Feb 2026 11:43: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 1vvDIQ-00026n-P8; Wed, 25 Feb 2026 11:43:14 +0000
Received: by outflank-mailman (input) for mailman id 1240607;
 Wed, 25 Feb 2026 11: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvDIO-00026d-JT
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 11:43:12 +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 25231154-123f-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 12:43:04 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4838c15e3cbso57168005e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 03:43:04 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bfbb465bsm24281275e9.3.2026.02.25.03.43.02
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 03:43:03 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 25231154-123f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772019783; x=1772624583; 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=d/bYJNCMrXcDk4+lvsUiKd0KIHHaZPQTZxJdb8c+n/Q=;
        b=NSbhNsX3J5ohKHVscD9xBCQ81R++IoQGCW4xoZxRKolGXuJcL9eJBTexw0urhlUYk3
         k3nO5OZtQcyKksLN86YfMiLcVchxgdRMW1WsBckg11qmqfki4Mt1u3sEZfDPcrz4cX/w
         5TFMhjGUlvO3DWLtvihnxyayeCNOCBhT82r8fQbUXT0kVTYvGTVC2/JMUB8+48tyvjXw
         3+YTykAF414oDgTRmdsOc2zGovI5R38GvzBAwpbuyCTyeyArN5TgAhepCJGl8ds54Ueg
         zPk1mnuY4XZGV/0CgW2X/n4MqdoKVh3Xt2OultZvf+CAQaRV4hTHRmGPVHFgF9bDsahw
         YpTA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772019783; x=1772624583;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=d/bYJNCMrXcDk4+lvsUiKd0KIHHaZPQTZxJdb8c+n/Q=;
        b=SV6ary24wX3Qzb3VnX70RGhZjVW5qaJ6B7/yB1CxSzOxC+jADLakL3zBE5kG0ugmOZ
         hXoClCOAbYXYRvoJlTzdMNdeg/q62MhGckMMNhMXP4Z9X/uvuWO3V/30gSv9SVcgNhLD
         tS6HueWcWYsynEFj9/BLPg0vVgrxeD+EZ5hT5vo10q8jVhepdfS2R2RLTKVVlhgpgqU3
         8VnlTJTbUsTvKPoikvksOAz5NfZgDeg+s6n8y6HlGqXaqr8xjVP3ind14PQlXIVl0Sz2
         DvEusG6LZ8UbxqFzyEliIU5NaWkDQijBHAn8vk9rkEExOU6s6kmdKVmUPOgoLAbmki1y
         g2BA==
X-Gm-Message-State: AOJu0YxB5ZSOF1wqBo8ZKwm9FBmVRb3c8mSBKSX+4ljya2CLZYZnkGDw
	yKlXbtkCuueT8fLnfACsgvu7qWI5x7y5QmUyRnWWZaC4jwdaCfPJNWtFPChnSEzFOzFHqui0sTu
	iV+M=
X-Gm-Gg: ATEYQzwpp/y0dMBYHzo0ZyKz/yML7h/Vm9OHwa++sQ9vM65v4xvi4F2SZj9cy4XP8SM
	8xJEpRtXkihdsj+EjKSAhHRxp0A944yFf5fZ6tgyn5C/wSLdGuPzbNdIvdFeTD4hCRL5ueR81v9
	mQzXIDh7pSR3yRsVPoFkMgYM6CZm2Mi8iZigay+0j8OgTESBmoGR4RW7UGt7VB7+IA57gQpcpnd
	Hu7A/pkgwPSA7Kc5GbuOPG5Cc8dyshKrRMnAfoOCCvLJRp6Ifu26wzjWLfxL56LYiPRWJMW0Zgl
	Y0akFVNcyKVGN+cDo3nEBuJ0yrWndB3Ou81bXg0gD6zt+kusrYD8vOWHgs91DsektQ6JzqbzMhG
	iL42PIN12k7klKOmDd9fW18nO55FQ57mQxWbs9bbdsQXLan2UseWY7ysxiux1EzF9OS4eb0+0lV
	WSuwPg3dfVlNw+NIo4w1+UrkbhziEQ4YnQ1TlDe1QdWHI3DbKE7U7tiUSUJAJLITALR+MzhbYya
	qucGxCFfedvEg0=
X-Received: by 2002:a05:600c:4751:b0:475:de12:d3b5 with SMTP id 5b1f17b1804b1-483a963df99mr242185875e9.34.1772019783358;
        Wed, 25 Feb 2026 03:43:03 -0800 (PST)
Message-ID: <f3673515-5922-4748-a964-d4c391e937f5@suse.com>
Date: Wed, 25 Feb 2026 12:43:01 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v5 1/5] vPCI: introduce private header
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>,
 Anthony PERARD <anthony.perard@vates.tech>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@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: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Before adding more private stuff to xen/vpci.h, split it up. In order to
be able to include the private header first in a CU, the per-arch struct
decls also need to move (to new asm/vpci.h files).

While adjusting the test harness'es Makefile, also switch the pre-existing
header symlink-ing rule to a pattern one.

Apart from in the test harness code, things only move; no functional
change intended.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
Subsequently, at least on x86 more stuff may want moving into asm/vpci.h.
---
v5: Add new generated header to test harness clean rule and to .gitignore.
    Also move vpci_init_header().
v4: New.

--- a/.gitignore
+++ b/.gitignore
@@ -154,6 +154,7 @@ tools/tests/x86_emulator/test_x86_emulat
 tools/tests/x86_emulator/x86_emulate
 tools/tests/x86_emulator/xop*.[ch]
 tools/tests/vpci/list.h
+tools/tests/vpci/private.h
 tools/tests/vpci/vpci.[hc]
 tools/tests/vpci/test_vpci
 tools/xcutils/lsevtchn
--- a/tools/tests/vpci/Makefile
+++ b/tools/tests/vpci/Makefile
@@ -14,12 +14,12 @@ else
 	$(warning HOSTCC != CC, will not run test)
 endif
 
-$(TARGET): vpci.c vpci.h list.h main.c emul.h
-	$(CC) $(CFLAGS_xeninclude) -g -o $@ vpci.c main.c
+$(TARGET): vpci.c vpci.h list.h private.h main.c emul.h
+	$(CC) $(CFLAGS_xeninclude) -include emul.h -g -o $@ vpci.c main.c
 
 .PHONY: clean
 clean:
-	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h
+	rm -rf $(TARGET) *.o *~ vpci.h vpci.c list.h private.h
 
 .PHONY: distclean
 distclean: clean
@@ -34,10 +34,10 @@ uninstall:
 	$(RM) -- $(DESTDIR)$(LIBEXEC)/tests/$(TARGET)
 
 vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
-	# Remove includes and add the test harness header
-	sed -e '/#include/d' -e '1s/^/#include "emul.h"/' <$< >$@
+	sed -e '/#include/d' <$< >$@
+
+private.h: %.h: $(XEN_ROOT)/xen/drivers/vpci/%.h
+	sed -e '/#include/d' <$< >$@
 
-list.h: $(XEN_ROOT)/xen/include/xen/list.h
-vpci.h: $(XEN_ROOT)/xen/include/xen/vpci.h
-list.h vpci.h:
+list.h vpci.h: %.h: $(XEN_ROOT)/xen/include/xen/%.h
 	sed -e '/#include/d' <$< >$@
--- a/tools/tests/vpci/emul.h
+++ b/tools/tests/vpci/emul.h
@@ -86,6 +86,7 @@ typedef union {
 
 #define CONFIG_HAS_VPCI
 #include "vpci.h"
+#include "private.h"
 
 #define __hwdom_init
 
--- a/xen/arch/arm/include/asm/pci.h
+++ b/xen/arch/arm/include/asm/pci.h
@@ -31,14 +31,6 @@ struct arch_pci_dev {
     struct device dev;
 };
 
-/* Arch-specific MSI data for vPCI. */
-struct vpci_arch_msi {
-};
-
-/* Arch-specific MSI-X entry data for vPCI. */
-struct vpci_arch_msix_entry {
-};
-
 /*
  * Because of the header cross-dependencies, e.g. we need both
  * struct pci_dev and struct arch_pci_dev at the same time, this cannot be
--- /dev/null
+++ b/xen/arch/arm/include/asm/vpci.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#ifndef ARM_VPCI_H
+#define ARM_VPCI_H
+
+/* Arch-specific MSI data for vPCI. */
+struct vpci_arch_msi {
+};
+
+/* Arch-specific MSI-X entry data for vPCI. */
+struct vpci_arch_msix_entry {
+};
+
+#endif /* ARM_VPCI_H */
--- a/xen/arch/x86/include/asm/hvm/io.h
+++ b/xen/arch/x86/include/asm/hvm/io.h
@@ -97,17 +97,6 @@ void msixtbl_init(struct domain *d);
 static inline void msixtbl_init(struct domain *d) {}
 #endif
 
-/* Arch-specific MSI data for vPCI. */
-struct vpci_arch_msi {
-    int pirq;
-    bool bound;
-};
-
-/* Arch-specific MSI-X entry data for vPCI. */
-struct vpci_arch_msix_entry {
-    int pirq;
-};
-
 void stdvga_init(struct domain *d);
 
 extern void hvm_dpci_msi_eoi(struct domain *d, int vector);
--- /dev/null
+++ b/xen/arch/x86/include/asm/vpci.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef X86_VPCI_H
+#define X86_VPCI_H
+
+#include <xen/stdbool.h>
+
+/* Arch-specific MSI data for vPCI. */
+struct vpci_arch_msi {
+    int pirq;
+    bool bound;
+};
+
+/* Arch-specific MSI-X entry data for vPCI. */
+struct vpci_arch_msix_entry {
+    int pirq;
+};
+
+#endif /* X86_VPCI_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -17,11 +17,12 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "private.h"
+
 #include <xen/iocap.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
 #include <xen/softirq.h>
-#include <xen/vpci.h>
 
 #include <xsm/xsm.h>
 
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -16,9 +16,10 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "private.h"
+
 #include <xen/sched.h>
 #include <xen/softirq.h>
-#include <xen/vpci.h>
 
 #include <asm/msi.h>
 
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -17,10 +17,11 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "private.h"
+
 #include <xen/io.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
-#include <xen/vpci.h>
 
 #include <asm/msi.h>
 #include <asm/p2m.h>
--- /dev/null
+++ b/xen/drivers/vpci/private.h
@@ -0,0 +1,126 @@
+#ifndef VPCI_PRIVATE_H
+#define VPCI_PRIVATE_H
+
+#include <xen/vpci.h>
+
+typedef uint32_t vpci_read_t(const struct pci_dev *pdev, unsigned int reg,
+                             void *data);
+
+typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
+                          uint32_t val, void *data);
+
+typedef struct {
+    unsigned int id;
+    bool is_ext;
+    int (* init)(struct pci_dev *pdev);
+    int (* cleanup)(const struct pci_dev *pdev, bool hide);
+} vpci_capability_t;
+
+#define REGISTER_VPCI_CAPABILITY(cap, name, finit, fclean, ext) \
+    static const vpci_capability_t name##_entry \
+        __used_section(".data.rel.ro.vpci") = { \
+        .id = (cap), \
+        .init = (finit), \
+        .cleanup = (fclean), \
+        .is_ext = (ext), \
+    }
+
+#define REGISTER_VPCI_CAP(name, finit, fclean) \
+    REGISTER_VPCI_CAPABILITY(PCI_CAP_ID_##name, name, finit, fclean, false)
+#define REGISTER_VPCI_EXTCAP(name, finit, fclean) \
+    REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
+
+int __must_check vpci_init_header(struct pci_dev *pdev);
+
+/* Add/remove a register handler. */
+int __must_check vpci_add_register_mask(struct vpci *vpci,
+                                        vpci_read_t *read_handler,
+                                        vpci_write_t *write_handler,
+                                        unsigned int offset, unsigned int size,
+                                        void *data, uint32_t ro_mask,
+                                        uint32_t rw1c_mask, uint32_t rsvdp_mask,
+                                        uint32_t rsvdz_mask);
+int __must_check vpci_add_register(struct vpci *vpci,
+                                   vpci_read_t *read_handler,
+                                   vpci_write_t *write_handler,
+                                   unsigned int offset, unsigned int size,
+                                   void *data);
+
+int vpci_remove_registers(struct vpci *vpci, unsigned int start,
+                          unsigned int size);
+
+/* Helper to return the value passed in data. */
+uint32_t cf_check vpci_read_val(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+
+/* Passthrough handlers. */
+uint32_t cf_check vpci_hw_read8(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+uint32_t cf_check vpci_hw_read16(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+uint32_t cf_check vpci_hw_read32(
+    const struct pci_dev *pdev, unsigned int reg, void *data);
+void cf_check vpci_hw_write8(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
+void cf_check vpci_hw_write16(
+    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
+
+#ifdef __XEN__
+/* Make sure there's a hole in the p2m for the MSIX mmio areas. */
+int vpci_make_msix_hole(const struct pci_dev *pdev);
+
+/*
+ * Helper functions to fetch MSIX related data. They are used by both the
+ * emulated MSIX code and the BAR handlers.
+ */
+static inline paddr_t vmsix_table_host_base(const struct vpci *vpci,
+                                            unsigned int nr)
+{
+    return vpci->header.bars[vpci->msix->tables[nr] & PCI_MSIX_BIRMASK].addr;
+}
+
+static inline paddr_t vmsix_table_host_addr(const struct vpci *vpci,
+                                            unsigned int nr)
+{
+    return vmsix_table_host_base(vpci, nr) +
+           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
+}
+
+static inline paddr_t vmsix_table_base(const struct vpci *vpci, unsigned int nr)
+{
+    return vpci->header.bars[vpci->msix->tables[nr] &
+                             PCI_MSIX_BIRMASK].guest_addr;
+}
+
+static inline paddr_t vmsix_table_addr(const struct vpci *vpci, unsigned int nr)
+{
+    return vmsix_table_base(vpci, nr) +
+           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
+}
+
+/*
+ * Note regarding the size calculation of the PBA: the spec mentions "The last
+ * QWORD will not necessarily be fully populated", so it implies that the PBA
+ * size is 64-bit aligned.
+ */
+static inline size_t vmsix_table_size(const struct vpci *vpci, unsigned int nr)
+{
+    return
+        (nr == VPCI_MSIX_TABLE) ? vpci->msix->max_entries * PCI_MSIX_ENTRY_SIZE
+                                : ROUNDUP(DIV_ROUND_UP(vpci->msix->max_entries,
+                                                       8), 8);
+}
+
+#endif /* __XEN__ */
+
+#endif /* VPCI_PRIVATE_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -5,8 +5,9 @@
  * Author: Jiqian Chen <Jiqian.Chen@amd.com>
  */
 
+#include "private.h"
+
 #include <xen/sched.h>
-#include <xen/vpci.h>
 
 static void cf_check rebar_ctrl_write(const struct pci_dev *pdev,
                                       unsigned int reg,
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -17,8 +17,9 @@
  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "private.h"
+
 #include <xen/sched.h>
-#include <xen/vpci.h>
 #include <xen/vmap.h>
 
 /* Internal struct to store the emulated PCI registers. */
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -7,18 +7,7 @@
 #include <xen/types.h>
 #include <xen/list.h>
 
-typedef uint32_t vpci_read_t(const struct pci_dev *pdev, unsigned int reg,
-                             void *data);
-
-typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
-                          uint32_t val, void *data);
-
-typedef struct {
-    unsigned int id;
-    bool is_ext;
-    int (* init)(struct pci_dev *pdev);
-    int (* cleanup)(const struct pci_dev *pdev, bool hide);
-} vpci_capability_t;
+#include <asm/vpci.h>
 
 #define VPCI_ECAM_BDF(addr)     (((addr) & 0x0ffff000) >> 12)
 
@@ -30,66 +19,17 @@ typedef struct {
  */
 #define VPCI_MAX_VIRT_DEV       (PCI_SLOT(~0) + 1)
 
-#define REGISTER_VPCI_CAPABILITY(cap, name, finit, fclean, ext) \
-    static const vpci_capability_t name##_entry \
-        __used_section(".data.rel.ro.vpci") = { \
-        .id = (cap), \
-        .init = (finit), \
-        .cleanup = (fclean), \
-        .is_ext = (ext), \
-    }
-
-#define REGISTER_VPCI_CAP(name, finit, fclean) \
-    REGISTER_VPCI_CAPABILITY(PCI_CAP_ID_##name, name, finit, fclean, false)
-#define REGISTER_VPCI_EXTCAP(name, finit, fclean) \
-    REGISTER_VPCI_CAPABILITY(PCI_EXT_CAP_ID_##name, name, finit, fclean, true)
-
-int __must_check vpci_init_header(struct pci_dev *pdev);
-
 /* Assign vPCI to device by adding handlers. */
 int __must_check vpci_assign_device(struct pci_dev *pdev);
 
 /* Remove all handlers and free vpci related structures. */
 void vpci_deassign_device(struct pci_dev *pdev);
 
-/* Add/remove a register handler. */
-int __must_check vpci_add_register_mask(struct vpci *vpci,
-                                        vpci_read_t *read_handler,
-                                        vpci_write_t *write_handler,
-                                        unsigned int offset, unsigned int size,
-                                        void *data, uint32_t ro_mask,
-                                        uint32_t rw1c_mask, uint32_t rsvdp_mask,
-                                        uint32_t rsvdz_mask);
-int __must_check vpci_add_register(struct vpci *vpci,
-                                   vpci_read_t *read_handler,
-                                   vpci_write_t *write_handler,
-                                   unsigned int offset, unsigned int size,
-                                   void *data);
-
-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);
 void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
                 uint32_t data);
 
-/* Helper to return the value passed in data. */
-uint32_t cf_check vpci_read_val(
-    const struct pci_dev *pdev, unsigned int reg, void *data);
-
-/* Passthrough handlers. */
-uint32_t cf_check vpci_hw_read8(
-    const struct pci_dev *pdev, unsigned int reg, void *data);
-uint32_t cf_check vpci_hw_read16(
-    const struct pci_dev *pdev, unsigned int reg, void *data);
-uint32_t cf_check vpci_hw_read32(
-    const struct pci_dev *pdev, unsigned int reg, void *data);
-void cf_check vpci_hw_write8(
-    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
-void cf_check vpci_hw_write16(
-    const struct pci_dev *pdev, unsigned int reg, uint32_t val, void *data);
-
 /*
  * Check for pending vPCI operations on this vcpu. Returns true if the vcpu
  * should not run.
@@ -213,9 +153,6 @@ struct vpci_vcpu {
 #ifdef __XEN__
 void vpci_dump_msi(void);
 
-/* Make sure there's a hole in the p2m for the MSIX mmio areas. */
-int vpci_make_msix_hole(const struct pci_dev *pdev);
-
 /* Arch-specific vPCI MSI helpers. */
 void vpci_msi_arch_mask(struct vpci_msi *msi, const struct pci_dev *pdev,
                         unsigned int entry, bool mask);
@@ -238,48 +175,6 @@ int __must_check vpci_msix_arch_disable_
 void vpci_msix_arch_init_entry(struct vpci_msix_entry *entry);
 int vpci_msix_arch_print(const struct vpci_msix *msix);
 
-/*
- * Helper functions to fetch MSIX related data. They are used by both the
- * emulated MSIX code and the BAR handlers.
- */
-static inline paddr_t vmsix_table_host_base(const struct vpci *vpci,
-                                            unsigned int nr)
-{
-    return vpci->header.bars[vpci->msix->tables[nr] & PCI_MSIX_BIRMASK].addr;
-}
-
-static inline paddr_t vmsix_table_host_addr(const struct vpci *vpci,
-                                            unsigned int nr)
-{
-    return vmsix_table_host_base(vpci, nr) +
-           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
-}
-
-static inline paddr_t vmsix_table_base(const struct vpci *vpci, unsigned int nr)
-{
-    return vpci->header.bars[vpci->msix->tables[nr] &
-                             PCI_MSIX_BIRMASK].guest_addr;
-}
-
-static inline paddr_t vmsix_table_addr(const struct vpci *vpci, unsigned int nr)
-{
-    return vmsix_table_base(vpci, nr) +
-           (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
-}
-
-/*
- * Note regarding the size calculation of the PBA: the spec mentions "The last
- * QWORD will not necessarily be fully populated", so it implies that the PBA
- * size is 64-bit aligned.
- */
-static inline size_t vmsix_table_size(const struct vpci *vpci, unsigned int nr)
-{
-    return
-        (nr == VPCI_MSIX_TABLE) ? vpci->msix->max_entries * PCI_MSIX_ENTRY_SIZE
-                                : ROUNDUP(DIV_ROUND_UP(vpci->msix->max_entries,
-                                                       8), 8);
-}
-
 static inline unsigned int vmsix_entry_nr(const struct vpci_msix *msix,
                                           const struct vpci_msix_entry *entry)
 {



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 11:43:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 11:43:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240610.1541934 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvDIm-0002Tr-3a; Wed, 25 Feb 2026 11:43:36 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240610.1541934; Wed, 25 Feb 2026 11:43:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvDIm-0002Ti-0C; Wed, 25 Feb 2026 11:43:36 +0000
Received: by outflank-mailman (input) for mailman id 1240610;
 Wed, 25 Feb 2026 11: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvDIl-0002SC-BY
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 11:43:35 +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 36268e7e-123f-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 12:43:32 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48375f1defeso46010455e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 03:43:32 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd6f19d6sm66613375e9.2.2026.02.25.03.43.31
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 03:43:31 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 36268e7e-123f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772019812; x=1772624612; 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=uAgcdDfpsSw1jsAfrY2aV1rXdVm2j1GaT1wB7ahB0HM=;
        b=hCtIPvNF0GAePeUiht/dviW63m76RF4YyJF6dsyKcrLD6VNhnS2Op0t2SCsnT7qp4F
         AkXhg2ou0WCG9lpt+GRp8QhnlFex7V1OZGQfYuE8ORZyht+278l2Lnv4LlBG8lYEb0k6
         EYlBoTn8W38xp5BGg9FdUylfT0qpuUZgquHBZA/zVbMDhoakiebSP6qo151jFY4IQWl9
         WUzTTOXd/7umiVH6TZrr00v8TNLXXEJ2DdOkJXmIdvWI7aZyqOEpmqZXbW8QT7a+Z/Fm
         HYlfWPf/RzWM0awhoPIVgFwdrGiuIi7oj1PY+NZ+EqUbJyb0d2Q+vD5iNdQBfi1eHTPH
         uJzQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772019812; x=1772624612;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=uAgcdDfpsSw1jsAfrY2aV1rXdVm2j1GaT1wB7ahB0HM=;
        b=wFlwNvhpJMWhenu1uRkJtJnCu+qy6n/VLPsgNorbBXteTCOZZkMIOS70+Fux0xHO0w
         mLRlfz9J1cpr6X+48Y/o7Ni/ibP3W5lNeuXAQpHAKPpY3LMUPFqJU6iOPJ+zIesSbiw3
         R+BC25j8Wa79wZqIlVohzlycISRiWGI3uJUVge5VG9ccSjeCOE+opLIp1c41h6+y+GaZ
         mmCMFdzlp0mhoUWImD1lO5Za9tOJVfUGSkYQgb3PLb1gsr2salCmJ6ASuY8fm6Q5blwi
         PulX4bBG+NoUYy6PXB4b5wqYZ+OcXFlMZRb+K622E7nhIdo791/OB5x19RA572U4V4gX
         X/Yg==
X-Gm-Message-State: AOJu0YypdJl+x4GV/j0hh8MHLVzvTHANTqtsxV5fxdd8nE10pe97lvxD
	iYhWpPDpvsjD/cG8NPzoeQUuF3zJX8bceD5/AOmLxADF7cizt73Ir0Hq+aPSt9zSXrMyhiqkgTU
	V0/Q=
X-Gm-Gg: ATEYQzww0k1DvocuMsfQhLUDMcVEhrCCveKJhJ1Fq0BySvX7YhxftIUUsxinJmn2ub/
	NvmjItcDS9yLfxE0zCXA/4CTJJp/lByPAopseM+5pLFKkwZ05ZSBQdVcm1b0lFHz2ssM77h4zfc
	oZ2bOvnNAqy/KTWQEzBRt1vB6Bn+Jx0VPPUC1zwbfJpuhPuKXKXvtjS590NLjR+bQSDC/4KgawT
	xsgIXuZ1d4LbM1+YLkzNlZnG4Jsw14XaKGfLC4hMMALP7H6/I5V0A165lNfuLz1rg8dBmQdySjZ
	oEMRexBzRJ0/xTSanWS3al9ax9wuoGCN9Q3TA0unUsL8+/b8OWXbHIczOD6wnYBDCVHwYZlrD0Z
	9FunbIhn9xFFU++hH8fraeoA+KrcZXHCtj5h3yfVdbLzfYIkDT05WIL8JD+vTEnNGcYMDY3tTA+
	yIqhOqR2llbViUhNPEvfuHuGboOEhfoCmFeKIgJer07o+7zKYoLcZ3eZ4hQoKou5tQGmjBttdpu
	HCBRsl20ZZJiMw=
X-Received: by 2002:a05:600c:a016:b0:477:fcb:2256 with SMTP id 5b1f17b1804b1-483a962e470mr270138675e9.17.1772019811947;
        Wed, 25 Feb 2026 03:43:31 -0800 (PST)
Message-ID: <ccd3c017-9f01-4695-9ec1-fe22fc01b9b4@suse.com>
Date: Wed, 25 Feb 2026 12:43:30 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v5 2/5] vPCI: move vpci_init_capabilities() to a separate file
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@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: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Let's keep capability handling together. Start with moving
vpci_init_capabilities() and its helpers, plus splitting out of its
cleanup counterpart.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
---
vpci_get_register(), while now only used by cap.c, didn't look like it
would want moving there.
---
v4: New.

--- a/xen/drivers/vpci/Makefile
+++ b/xen/drivers/vpci/Makefile
@@ -1,2 +1,3 @@
+obj-y += cap.o
 obj-y += vpci.o header.o rebar.o
 obj-$(CONFIG_HAS_PCI_MSI) += msi.o msix.o
--- /dev/null
+++ b/xen/drivers/vpci/cap.c
@@ -0,0 +1,252 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Capability handling for guest PCI configuration space.
+ */
+
+#include "private.h"
+
+#include <xen/sched.h>
+
+extern const vpci_capability_t __start_vpci_array[];
+extern const vpci_capability_t __end_vpci_array[];
+#define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
+
+static struct vpci_register *vpci_get_previous_cap_register(
+    const struct vpci *vpci, unsigned int offset)
+{
+    unsigned int next;
+    struct vpci_register *r;
+
+    if ( offset < 0x40 )
+    {
+        ASSERT_UNREACHABLE();
+        return NULL;
+    }
+
+    for ( r = vpci_get_register(vpci, PCI_CAPABILITY_LIST, 1); r;
+          r = next >= 0x40 ? vpci_get_register(vpci,
+                                               next + PCI_CAP_LIST_NEXT, 1)
+                           : NULL )
+    {
+        next = (unsigned int)(uintptr_t)r->private;
+        ASSERT(next == (uintptr_t)r->private);
+        if ( next == offset )
+            break;
+    }
+
+    return r;
+}
+
+static int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
+{
+    const unsigned int offset = pci_find_cap_offset(pdev->sbdf, cap);
+    struct vpci_register *prev_r, *next_r;
+    struct vpci *vpci = pdev->vpci;
+
+    if ( !offset )
+    {
+        ASSERT_UNREACHABLE();
+        return 0;
+    }
+
+    spin_lock(&vpci->lock);
+    prev_r = vpci_get_previous_cap_register(vpci, offset);
+    next_r = vpci_get_register(vpci, offset + PCI_CAP_LIST_NEXT, 1);
+    if ( !prev_r || !next_r )
+    {
+        spin_unlock(&vpci->lock);
+        return -ENODEV;
+    }
+
+    prev_r->private = next_r->private;
+    /*
+     * Not calling vpci_remove_registers() here is to avoid redoing
+     * the register search.
+     */
+    list_del(&next_r->node);
+    spin_unlock(&vpci->lock);
+    xfree(next_r);
+
+    if ( !is_hardware_domain(pdev->domain) )
+        return vpci_remove_registers(vpci, offset + PCI_CAP_LIST_ID, 1);
+
+    return 0;
+}
+
+static struct vpci_register *vpci_get_previous_ext_cap_register(
+    const struct vpci *vpci, unsigned int offset)
+{
+    unsigned int pos = PCI_CFG_SPACE_SIZE;
+    struct vpci_register *r;
+
+    if ( offset <= PCI_CFG_SPACE_SIZE )
+    {
+        ASSERT_UNREACHABLE();
+        return NULL;
+    }
+
+    for ( r = vpci_get_register(vpci, pos, 4); r;
+          r = pos > PCI_CFG_SPACE_SIZE ? vpci_get_register(vpci, pos, 4)
+                                       : NULL )
+    {
+        uint32_t header = (uint32_t)(uintptr_t)r->private;
+
+        ASSERT(header == (uintptr_t)r->private);
+
+        pos = PCI_EXT_CAP_NEXT(header);
+        if ( pos == offset )
+            break;
+    }
+
+    return r;
+}
+
+static int vpci_ext_capability_hide(
+    const struct pci_dev *pdev, unsigned int cap)
+{
+    const unsigned int offset = pci_find_ext_capability(pdev, cap);
+    struct vpci_register *r, *prev_r;
+    struct vpci *vpci = pdev->vpci;
+    uint32_t header, pre_header;
+
+    if ( offset < PCI_CFG_SPACE_SIZE )
+    {
+        ASSERT_UNREACHABLE();
+        return 0;
+    }
+
+    spin_lock(&vpci->lock);
+    r = vpci_get_register(vpci, offset, 4);
+    if ( !r )
+    {
+        spin_unlock(&vpci->lock);
+        return -ENODEV;
+    }
+
+    header = (uint32_t)(uintptr_t)r->private;
+    if ( offset == PCI_CFG_SPACE_SIZE )
+    {
+        if ( PCI_EXT_CAP_NEXT(header) <= PCI_CFG_SPACE_SIZE )
+            r->private = (void *)0;
+        else
+            /*
+             * The first extended capability (0x100) can not be removed from
+             * the linked list, so instead mask its capability ID to return 0
+             * hopefully forcing OSes to skip it.
+             */
+            r->private = (void *)(uintptr_t)(header & ~PCI_EXT_CAP_ID(header));
+
+        spin_unlock(&vpci->lock);
+        return 0;
+    }
+
+    prev_r = vpci_get_previous_ext_cap_register(vpci, offset);
+    if ( !prev_r )
+    {
+        spin_unlock(&vpci->lock);
+        return -ENODEV;
+    }
+
+    pre_header = (uint32_t)(uintptr_t)prev_r->private;
+    pre_header &= ~PCI_EXT_CAP_NEXT_MASK;
+    pre_header |= header & PCI_EXT_CAP_NEXT_MASK;
+    prev_r->private = (void *)(uintptr_t)pre_header;
+
+    list_del(&r->node);
+    spin_unlock(&vpci->lock);
+    xfree(r);
+
+    return 0;
+}
+
+int vpci_init_capabilities(struct pci_dev *pdev)
+{
+    for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
+    {
+        const vpci_capability_t *capability = &__start_vpci_array[i];
+        const unsigned int cap = capability->id;
+        const bool is_ext = capability->is_ext;
+        unsigned int pos = 0;
+        int rc;
+
+        if ( !is_ext )
+            pos = pci_find_cap_offset(pdev->sbdf, cap);
+        else if ( is_hardware_domain(pdev->domain) )
+            pos = pci_find_ext_capability(pdev, cap);
+
+        if ( !pos )
+            continue;
+
+        rc = capability->init(pdev);
+        if ( rc )
+        {
+            const char *type = is_ext ? "extended" : "legacy";
+
+            printk(XENLOG_WARNING
+                   "%pd %pp: init %s cap %u fail rc=%d, mask it\n",
+                   pdev->domain, &pdev->sbdf, type, cap, rc);
+
+            if ( capability->cleanup )
+            {
+                rc = capability->cleanup(pdev, true);
+                if ( rc )
+                {
+                    printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=%d\n",
+                           pdev->domain, &pdev->sbdf, type, cap, rc);
+                    if ( !is_hardware_domain(pdev->domain) )
+                        return rc;
+                }
+            }
+
+            if ( !is_ext )
+                rc = vpci_capability_hide(pdev, cap);
+            else
+                rc = vpci_ext_capability_hide(pdev, cap);
+            if ( rc )
+            {
+                printk(XENLOG_ERR "%pd %pp: hide %s cap %u fail rc=%d\n",
+                       pdev->domain, &pdev->sbdf, type, cap, rc);
+                return rc;
+            }
+        }
+    }
+
+    return 0;
+}
+
+void vpci_cleanup_capabilities(struct pci_dev *pdev)
+{
+    for ( unsigned int 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, 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);
+        }
+    }
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/drivers/vpci/private.h
+++ b/xen/drivers/vpci/private.h
@@ -9,6 +9,20 @@ typedef uint32_t vpci_read_t(const struc
 typedef void vpci_write_t(const struct pci_dev *pdev, unsigned int reg,
                           uint32_t val, void *data);
 
+/* Internal struct to store the emulated PCI registers. */
+struct vpci_register {
+    vpci_read_t *read;
+    vpci_write_t *write;
+    unsigned int size;
+    unsigned int offset;
+    void *private;
+    struct list_head node;
+    uint32_t ro_mask;
+    uint32_t rw1c_mask;
+    uint32_t rsvdp_mask;
+    uint32_t rsvdz_mask;
+};
+
 typedef struct {
     unsigned int id;
     bool is_ext;
@@ -32,6 +46,9 @@ typedef struct {
 
 int __must_check vpci_init_header(struct pci_dev *pdev);
 
+int vpci_init_capabilities(struct pci_dev *pdev);
+void vpci_cleanup_capabilities(struct pci_dev *pdev);
+
 /* Add/remove a register handler. */
 int __must_check vpci_add_register_mask(struct vpci *vpci,
                                         vpci_read_t *read_handler,
@@ -49,6 +66,10 @@ int __must_check vpci_add_register(struc
 int vpci_remove_registers(struct vpci *vpci, unsigned int start,
                           unsigned int size);
 
+struct vpci_register *vpci_get_register(const struct vpci *vpci,
+                                        unsigned int offset,
+                                        unsigned int size);
+
 /* Helper to return the value passed in data. */
 uint32_t cf_check vpci_read_val(
     const struct pci_dev *pdev, unsigned int reg, void *data);
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -22,24 +22,7 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
-/* Internal struct to store the emulated PCI registers. */
-struct vpci_register {
-    vpci_read_t *read;
-    vpci_write_t *write;
-    unsigned int size;
-    unsigned int offset;
-    void *private;
-    struct list_head node;
-    uint32_t ro_mask;
-    uint32_t rw1c_mask;
-    uint32_t rsvdp_mask;
-    uint32_t rsvdz_mask;
-};
-
 #ifdef __XEN__
-extern const vpci_capability_t __start_vpci_array[];
-extern const vpci_capability_t __end_vpci_array[];
-#define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
 
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
 static int assign_virtual_sbdf(struct pci_dev *pdev)
@@ -84,9 +67,9 @@ static int assign_virtual_sbdf(struct pc
 
 #endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */
 
-static struct vpci_register *vpci_get_register(const struct vpci *vpci,
-                                               unsigned int offset,
-                                               unsigned int size)
+struct vpci_register *vpci_get_register(const struct vpci *vpci,
+                                        unsigned int offset,
+                                        unsigned int size)
 {
     struct vpci_register *r;
 
@@ -104,209 +87,6 @@ static struct vpci_register *vpci_get_re
     return NULL;
 }
 
-static struct vpci_register *vpci_get_previous_cap_register(
-    const struct vpci *vpci, unsigned int offset)
-{
-    unsigned int next;
-    struct vpci_register *r;
-
-    if ( offset < 0x40 )
-    {
-        ASSERT_UNREACHABLE();
-        return NULL;
-    }
-
-    for ( r = vpci_get_register(vpci, PCI_CAPABILITY_LIST, 1); r;
-          r = next >= 0x40 ? vpci_get_register(vpci,
-                                               next + PCI_CAP_LIST_NEXT, 1)
-                           : NULL )
-    {
-        next = (unsigned int)(uintptr_t)r->private;
-        ASSERT(next == (uintptr_t)r->private);
-        if ( next == offset )
-            break;
-    }
-
-    return r;
-}
-
-static int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
-{
-    const unsigned int offset = pci_find_cap_offset(pdev->sbdf, cap);
-    struct vpci_register *prev_r, *next_r;
-    struct vpci *vpci = pdev->vpci;
-
-    if ( !offset )
-    {
-        ASSERT_UNREACHABLE();
-        return 0;
-    }
-
-    spin_lock(&vpci->lock);
-    prev_r = vpci_get_previous_cap_register(vpci, offset);
-    next_r = vpci_get_register(vpci, offset + PCI_CAP_LIST_NEXT, 1);
-    if ( !prev_r || !next_r )
-    {
-        spin_unlock(&vpci->lock);
-        return -ENODEV;
-    }
-
-    prev_r->private = next_r->private;
-    /*
-     * Not calling vpci_remove_registers() here is to avoid redoing
-     * the register search.
-     */
-    list_del(&next_r->node);
-    spin_unlock(&vpci->lock);
-    xfree(next_r);
-
-    if ( !is_hardware_domain(pdev->domain) )
-        return vpci_remove_registers(vpci, offset + PCI_CAP_LIST_ID, 1);
-
-    return 0;
-}
-
-static struct vpci_register *vpci_get_previous_ext_cap_register(
-    const struct vpci *vpci, unsigned int offset)
-{
-    unsigned int pos = PCI_CFG_SPACE_SIZE;
-    struct vpci_register *r;
-
-    if ( offset <= PCI_CFG_SPACE_SIZE )
-    {
-        ASSERT_UNREACHABLE();
-        return NULL;
-    }
-
-    for ( r = vpci_get_register(vpci, pos, 4); r;
-          r = pos > PCI_CFG_SPACE_SIZE ? vpci_get_register(vpci, pos, 4)
-                                       : NULL )
-    {
-        uint32_t header = (uint32_t)(uintptr_t)r->private;
-
-        ASSERT(header == (uintptr_t)r->private);
-
-        pos = PCI_EXT_CAP_NEXT(header);
-        if ( pos == offset )
-            break;
-    }
-
-    return r;
-}
-
-static int vpci_ext_capability_hide(
-    const struct pci_dev *pdev, unsigned int cap)
-{
-    const unsigned int offset = pci_find_ext_capability(pdev, cap);
-    struct vpci_register *r, *prev_r;
-    struct vpci *vpci = pdev->vpci;
-    uint32_t header, pre_header;
-
-    if ( offset < PCI_CFG_SPACE_SIZE )
-    {
-        ASSERT_UNREACHABLE();
-        return 0;
-    }
-
-    spin_lock(&vpci->lock);
-    r = vpci_get_register(vpci, offset, 4);
-    if ( !r )
-    {
-        spin_unlock(&vpci->lock);
-        return -ENODEV;
-    }
-
-    header = (uint32_t)(uintptr_t)r->private;
-    if ( offset == PCI_CFG_SPACE_SIZE )
-    {
-        if ( PCI_EXT_CAP_NEXT(header) <= PCI_CFG_SPACE_SIZE )
-            r->private = (void *)0;
-        else
-            /*
-             * The first extended capability (0x100) can not be removed from
-             * the linked list, so instead mask its capability ID to return 0
-             * hopefully forcing OSes to skip it.
-             */
-            r->private = (void *)(uintptr_t)(header & ~PCI_EXT_CAP_ID(header));
-
-        spin_unlock(&vpci->lock);
-        return 0;
-    }
-
-    prev_r = vpci_get_previous_ext_cap_register(vpci, offset);
-    if ( !prev_r )
-    {
-        spin_unlock(&vpci->lock);
-        return -ENODEV;
-    }
-
-    pre_header = (uint32_t)(uintptr_t)prev_r->private;
-    pre_header &= ~PCI_EXT_CAP_NEXT_MASK;
-    pre_header |= header & PCI_EXT_CAP_NEXT_MASK;
-    prev_r->private = (void *)(uintptr_t)pre_header;
-
-    list_del(&r->node);
-    spin_unlock(&vpci->lock);
-    xfree(r);
-
-    return 0;
-}
-
-static int vpci_init_capabilities(struct pci_dev *pdev)
-{
-    for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
-    {
-        const vpci_capability_t *capability = &__start_vpci_array[i];
-        const unsigned int cap = capability->id;
-        const bool is_ext = capability->is_ext;
-        unsigned int pos = 0;
-        int rc;
-
-        if ( !is_ext )
-            pos = pci_find_cap_offset(pdev->sbdf, cap);
-        else if ( is_hardware_domain(pdev->domain) )
-            pos = pci_find_ext_capability(pdev, cap);
-
-        if ( !pos )
-            continue;
-
-        rc = capability->init(pdev);
-        if ( rc )
-        {
-            const char *type = is_ext ? "extended" : "legacy";
-
-            printk(XENLOG_WARNING
-                   "%pd %pp: init %s cap %u fail rc=%d, mask it\n",
-                   pdev->domain, &pdev->sbdf, type, cap, rc);
-
-            if ( capability->cleanup )
-            {
-                rc = capability->cleanup(pdev, true);
-                if ( rc )
-                {
-                    printk(XENLOG_ERR "%pd %pp: clean %s cap %u fail rc=%d\n",
-                           pdev->domain, &pdev->sbdf, type, cap, rc);
-                    if ( !is_hardware_domain(pdev->domain) )
-                        return rc;
-                }
-            }
-
-            if ( !is_ext )
-                rc = vpci_capability_hide(pdev, cap);
-            else
-                rc = vpci_ext_capability_hide(pdev, cap);
-            if ( rc )
-            {
-                printk(XENLOG_ERR "%pd %pp: hide %s cap %u fail rc=%d\n",
-                       pdev->domain, &pdev->sbdf, type, cap, rc);
-                return rc;
-            }
-        }
-    }
-
-    return 0;
-}
-
 void vpci_deassign_device(struct pci_dev *pdev)
 {
     unsigned int i;
@@ -322,29 +102,7 @@ void vpci_deassign_device(struct pci_dev
                     &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, 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);
-        }
-    }
+    vpci_cleanup_capabilities(pdev);
 
     spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 11:44:04 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 11:44:04 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240623.1541943 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvDJE-00032f-DC; Wed, 25 Feb 2026 11:44:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240623.1541943; Wed, 25 Feb 2026 11: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 1vvDJE-00032Y-AW; Wed, 25 Feb 2026 11:44:04 +0000
Received: by outflank-mailman (input) for mailman id 1240623;
 Wed, 25 Feb 2026 11:44: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvDJD-0002SC-1Q
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 11:44:03 +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 470d1f37-123f-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 12:44:01 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-483487335c2so58992385e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 03:44:01 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bffc17dasm17462215e9.2.2026.02.25.03.44.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 03:44:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 470d1f37-123f-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772019840; x=1772624640; 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=qvqxSGqotIAOODsHnK2+oa0DmybL0jdHjJLUZwFNknw=;
        b=cgYfSze+bxQCzruFc3EXdrJMlZmGFyQ62Y+tWUW5Q0Om5PRRpTDKshn/Z4pnXrgbMk
         jlc95OoWL+G9JvKcfobUZjMsASfHxWMc99eK4TB2MEcf42T5oB9VFWhKVUBm0IAok/zQ
         ZREXwbTB0NGQLWwo5PuFfTMg6OTWAnlEaCOZ2Efb9/3S4IWkYmVdNNmNgLx+ESe3981B
         PpqT0/eN+5P5J/r9thcFAOh4kmr6XAcKtJso5JMCpTibD6qDtwfuRUq3pJzX3KZuHyLx
         UVq7tkgKkdmhDX2+vyAWJH3av1x+VEXMTqRlEkoFjNZxoJECcMCqbVzi7CLl1KOR8ngq
         y9ng==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772019840; x=1772624640;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qvqxSGqotIAOODsHnK2+oa0DmybL0jdHjJLUZwFNknw=;
        b=Pv7N/xYE2nQWOO45xsMOXqUzYKr4iql0IfgqwzZsoGpzrwiQ/9LNliK+1DINHMKimW
         SyQT4vpk70UvNOZC+ih6coNJ0LnDkXgkgk5nvllBren7yr7sq8PVY1iAnenXIFHVAEdJ
         mLYughEY9XNcRzCRUKgiroC/aqGibE2PIx96AkRkIDWuauMrDTW/fAbWJ8mDP5PH9IYK
         LSXi9DFreW9FkGQwimDW3TZuJ1b0dSv2tTqJ+trGHmdcevHHiV++BFYSHhEY9OdBUX9V
         IyqHfpYBlyYwBerehZZIbsF02pAGG6aNSo9kEMeAt1Icz+H09Ra59dmRTibIyjEbMwFP
         yBxw==
X-Gm-Message-State: AOJu0YxN97PEU9HCQAqd3NBfvCVUDUsPLxPIA6kC/8S5sia4gBi9iLUQ
	8yvVQkVKzJ/f/Oh7zNiYxCQgWwkBSCFK3xfO1bsOiujI3+kKJc3JwN7juXq6Y9ceaX/ZRGMQk6L
	my9c=
X-Gm-Gg: ATEYQzwXbUO5zVoiywV76lFA5YhFB5p+PZ0LK7XUOBPVC5oQ+JyFh10mPXqakqvbYd4
	i6arE4wqG5chcnkzLXoBLytVQ/qNq7e/AAdBSfS9CbmUwrMGGuvu7q1f8J5wklVjNGKfLeJy9yT
	qhhO0XU7W4Wt3+TU6Wtef7ddH9CWmLBcgkp30TmDkibLgxvt2qHTPsEFZThKHBmhKI7oQtcznse
	iyKe8utJvMcShyZ5uJKyCqTr5Sv4ey/zJEFR3+IwrE6Dwpix4d2YNkVwupxS+QkEef42iKalQ4B
	xkLWG7A4Xv29OC1Srxt0/6nBK+c7L4d7IlO6ptp7icJcWv6sGgcGdNJp0qDvId4bA//mbATDVL3
	ZvWYXPLU4M+2s9jc4bdVs9Bm4K7Hscv1OvEZ+aNFlffnt4vzZOJr1teSZxds8tuyb8bYHcQipI3
	guK3LNZz0pZsxGsiaJv5ycyP84t09NKiit5ORM9L6+1noZE4xCdph3FMsOvWiaOxivz28eywfdk
	EgV48iirKrJbUA=
X-Received: by 2002:a05:600c:4f93:b0:477:df7:b020 with SMTP id 5b1f17b1804b1-483aaa15e35mr278740115e9.18.1772019840449;
        Wed, 25 Feb 2026 03:44:00 -0800 (PST)
Message-ID: <a67efd56-5286-4f1a-829c-ed3c4526268e@suse.com>
Date: Wed, 25 Feb 2026 12:43:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v5 3/5] vPCI: move capability-list init
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@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: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... both for when the functions are invoked and where they live in source.
Don't invoke them directly in vpci_init_header(), but instead first thing
in vpci_init_capabilities().

Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
---
v4: New.

--- a/xen/drivers/vpci/cap.c
+++ b/xen/drivers/vpci/cap.c
@@ -159,15 +159,150 @@ static int vpci_ext_capability_hide(
     return 0;
 }
 
+static int vpci_init_capability_list(struct pci_dev *pdev)
+{
+    int rc;
+    bool mask_cap_list = false;
+    bool is_hwdom = is_hardware_domain(pdev->domain);
+
+    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
+    {
+        /* Only expose capabilities to the guest that vPCI can handle. */
+        unsigned int next, ttl = 48;
+        static const unsigned int supported_caps[] = {
+            PCI_CAP_ID_MSI,
+            PCI_CAP_ID_MSIX,
+        };
+        /*
+         * For dom0, we should expose all capabilities instead of a fixed
+         * capabilities array, so setting n to 0 here is to get the next
+         * capability position directly in pci_find_next_cap_ttl.
+         */
+        const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(supported_caps);
+
+        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
+                                     supported_caps, n, &ttl);
+
+        rc = vpci_add_register(pdev->vpci, vpci_read_val,
+                               is_hwdom ? vpci_hw_write8 : NULL,
+                               PCI_CAPABILITY_LIST, 1,
+                               (void *)(uintptr_t)next);
+        if ( rc )
+            return rc;
+
+        next &= ~3;
+
+        if ( !next && !is_hwdom )
+            /*
+             * If we don't have any supported capabilities to expose to the
+             * guest, mask the PCI_STATUS_CAP_LIST bit in the status
+             * register.
+             */
+            mask_cap_list = true;
+
+        while ( next && ttl )
+        {
+            unsigned int pos = next;
+
+            next = pci_find_next_cap_ttl(pdev->sbdf,
+                                         pos + PCI_CAP_LIST_NEXT,
+                                         supported_caps, n, &ttl);
+
+            if ( !is_hwdom )
+            {
+                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
+                                       pos + PCI_CAP_LIST_ID, 1, NULL);
+                if ( rc )
+                    return rc;
+            }
+
+            rc = vpci_add_register(pdev->vpci, vpci_read_val,
+                                   is_hwdom ? vpci_hw_write8 : NULL,
+                                   pos + PCI_CAP_LIST_NEXT, 1,
+                                   (void *)(uintptr_t)next);
+            if ( rc )
+                return rc;
+
+            next &= ~3;
+        }
+    }
+
+    /* Return early for the hw domain, no masking of PCI_STATUS. */
+    if ( is_hwdom )
+        return 0;
+
+    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
+    return vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
+                                  PCI_STATUS, 2, NULL,
+                                  PCI_STATUS_RO_MASK &
+                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
+                                  PCI_STATUS_RW1C_MASK,
+                                  mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
+                                  PCI_STATUS_RSVDZ_MASK);
+}
+
+static int vpci_init_ext_capability_list(const struct pci_dev *pdev)
+{
+    unsigned int pos = PCI_CFG_SPACE_SIZE;
+
+    if ( !pdev->ext_cfg )
+        return 0;
+
+    if ( !is_hardware_domain(pdev->domain) )
+        /* Extended capabilities read as zero, write ignore for DomU */
+        return vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                                 pos, 4, (void *)0);
+
+    do
+    {
+        uint32_t header = pci_conf_read32(pdev->sbdf, pos);
+        int rc;
+
+        if ( header == 0xffffffffU )
+        {
+            printk(XENLOG_WARNING
+                   "%pd %pp: broken extended cap list, offset %#x\n",
+                   pdev->domain, &pdev->sbdf, pos);
+            return 0;
+        }
+
+        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
+                               pos, 4, (void *)(uintptr_t)header);
+        if ( rc == -EEXIST )
+        {
+            printk(XENLOG_WARNING
+                   "%pd %pp: overlap in extended cap list, offset %#x\n",
+                   pdev->domain, &pdev->sbdf, pos);
+            return 0;
+        }
+
+        if ( rc )
+            return rc;
+
+        pos = PCI_EXT_CAP_NEXT(header);
+    } while ( pos >= PCI_CFG_SPACE_SIZE );
+
+    return 0;
+}
+
 int vpci_init_capabilities(struct pci_dev *pdev)
 {
+    int rc;
+
+    rc = vpci_init_capability_list(pdev);
+    if ( rc )
+        return rc;
+
+    rc = vpci_init_ext_capability_list(pdev);
+    if ( rc )
+        return rc;
+
     for ( unsigned int i = 0; i < NUM_VPCI_INIT; i++ )
     {
         const vpci_capability_t *capability = &__start_vpci_array[i];
         const unsigned int cap = capability->id;
         const bool is_ext = capability->is_ext;
         unsigned int pos = 0;
-        int rc;
 
         if ( !is_ext )
             pos = pci_find_cap_offset(pdev->sbdf, cap);
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -744,132 +744,6 @@ static int bar_add_rangeset(const struct
     return !bar->mem ? -ENOMEM : 0;
 }
 
-static int vpci_init_capability_list(struct pci_dev *pdev)
-{
-    int rc;
-    bool mask_cap_list = false;
-    bool is_hwdom = is_hardware_domain(pdev->domain);
-
-    if ( pci_conf_read16(pdev->sbdf, PCI_STATUS) & PCI_STATUS_CAP_LIST )
-    {
-        /* Only expose capabilities to the guest that vPCI can handle. */
-        unsigned int next, ttl = 48;
-        static const unsigned int supported_caps[] = {
-            PCI_CAP_ID_MSI,
-            PCI_CAP_ID_MSIX,
-        };
-        /*
-         * For dom0, we should expose all capabilities instead of a fixed
-         * capabilities array, so setting n to 0 here is to get the next
-         * capability position directly in pci_find_next_cap_ttl.
-         */
-        const unsigned int n = is_hwdom ? 0 : ARRAY_SIZE(supported_caps);
-
-        next = pci_find_next_cap_ttl(pdev->sbdf, PCI_CAPABILITY_LIST,
-                                     supported_caps, n, &ttl);
-
-        rc = vpci_add_register(pdev->vpci, vpci_read_val,
-                               is_hwdom ? vpci_hw_write8 : NULL,
-                               PCI_CAPABILITY_LIST, 1,
-                               (void *)(uintptr_t)next);
-        if ( rc )
-            return rc;
-
-        next &= ~3;
-
-        if ( !next && !is_hwdom )
-            /*
-             * If we don't have any supported capabilities to expose to the
-             * guest, mask the PCI_STATUS_CAP_LIST bit in the status
-             * register.
-             */
-            mask_cap_list = true;
-
-        while ( next && ttl )
-        {
-            unsigned int pos = next;
-
-            next = pci_find_next_cap_ttl(pdev->sbdf,
-                                         pos + PCI_CAP_LIST_NEXT,
-                                         supported_caps, n, &ttl);
-
-            if ( !is_hwdom )
-            {
-                rc = vpci_add_register(pdev->vpci, vpci_hw_read8, NULL,
-                                       pos + PCI_CAP_LIST_ID, 1, NULL);
-                if ( rc )
-                    return rc;
-            }
-
-            rc = vpci_add_register(pdev->vpci, vpci_read_val,
-                                   is_hwdom ? vpci_hw_write8 : NULL,
-                                   pos + PCI_CAP_LIST_NEXT, 1,
-                                   (void *)(uintptr_t)next);
-            if ( rc )
-                return rc;
-
-            next &= ~3;
-        }
-    }
-
-    /* Return early for the hw domain, no masking of PCI_STATUS. */
-    if ( is_hwdom )
-        return 0;
-
-    /* Utilize rsvdp_mask to hide PCI_STATUS_CAP_LIST from the guest. */
-    return vpci_add_register_mask(pdev->vpci, vpci_hw_read16, vpci_hw_write16,
-                                  PCI_STATUS, 2, NULL,
-                                  PCI_STATUS_RO_MASK &
-                                    ~(mask_cap_list ? PCI_STATUS_CAP_LIST : 0),
-                                  PCI_STATUS_RW1C_MASK,
-                                  mask_cap_list ? PCI_STATUS_CAP_LIST : 0,
-                                  PCI_STATUS_RSVDZ_MASK);
-}
-
-static int vpci_init_ext_capability_list(const struct pci_dev *pdev)
-{
-    unsigned int pos = PCI_CFG_SPACE_SIZE;
-
-    if ( !pdev->ext_cfg )
-        return 0;
-
-    if ( !is_hardware_domain(pdev->domain) )
-        /* Extended capabilities read as zero, write ignore for DomU */
-        return vpci_add_register(pdev->vpci, vpci_read_val, NULL,
-                                 pos, 4, (void *)0);
-
-    do
-    {
-        uint32_t header = pci_conf_read32(pdev->sbdf, pos);
-        int rc;
-
-        if ( header == 0xffffffffU )
-        {
-            printk(XENLOG_WARNING
-                   "%pd %pp: broken extended cap list, offset %#x\n",
-                   pdev->domain, &pdev->sbdf, pos);
-            return 0;
-        }
-
-        rc = vpci_add_register(pdev->vpci, vpci_read_val, NULL,
-                               pos, 4, (void *)(uintptr_t)header);
-        if ( rc == -EEXIST )
-        {
-            printk(XENLOG_WARNING
-                   "%pd %pp: overlap in extended cap list, offset %#x\n",
-                   pdev->domain, &pdev->sbdf, pos);
-            return 0;
-        }
-
-        if ( rc )
-            return rc;
-
-        pos = PCI_EXT_CAP_NEXT(header);
-    } while ( pos >= PCI_CFG_SPACE_SIZE );
-
-    return 0;
-}
-
 int vpci_init_header(struct pci_dev *pdev)
 {
     uint16_t cmd;
@@ -918,14 +792,6 @@ int vpci_init_header(struct pci_dev *pde
     if ( rc )
         return rc;
 
-    rc = vpci_init_capability_list(pdev);
-    if ( rc )
-        return rc;
-
-    rc = vpci_init_ext_capability_list(pdev);
-    if ( rc )
-        return rc;
-
     if ( pdev->ignore_bars )
         return 0;
 



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 11:44:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 11:44:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240633.1541954 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvDJa-0003ZC-Lf; Wed, 25 Feb 2026 11:44:26 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240633.1541954; Wed, 25 Feb 2026 11: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 1vvDJa-0003Z5-HS; Wed, 25 Feb 2026 11:44:26 +0000
Received: by outflank-mailman (input) for mailman id 1240633;
 Wed, 25 Feb 2026 11: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvDJZ-0002tl-Qn
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 11:44:25 +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 5537a146-123f-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 12:44:24 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-439857ec679so1690940f8f.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 03:44:24 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd6f19f5sm154793855e9.1.2026.02.25.03.44.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 03:44:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5537a146-123f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772019864; x=1772624664; 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=F4vS9yj8ZbkDhyH0h+l80l5O91ePGrjIYaOjnrsaMT4=;
        b=P1VdV8pG1MEgcpHbPnzYCAY+08dufnw9qQ2P4pwCW/faAYczJnBkO48gWvkThWPCig
         Z33s5TZEmHGcCKTfEuWTNS3V3FIEl4f4AswUV8iFMPXHwAYRmWN7r8R2/+8eP9r6qdFK
         c3IsZuQ3W6c0HV80gtVSwLZB6Ef+/h87P5W/Io/7NyqzLwGAZXse4RtvM4BShtgR+kpp
         jCbNBig2ARF+LrIb+mPgCoecUOlTlHpLDyZ4dxq5o7pKYAStWpApx+7aql5vXfqLUXZO
         LobCP7I9ywEWB0KLk8bdF4ZacLH8bgWCqlldSeSdpoQ4kID/GxOkWR9n87zYhD1zcG34
         TGRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772019864; x=1772624664;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=F4vS9yj8ZbkDhyH0h+l80l5O91ePGrjIYaOjnrsaMT4=;
        b=g7FvXB8G7aM+X/Wwe8xUOMDv1Kf3t9DUNJjJHklxfh/Uj6Vm82VDHFYwb6nEtffpf0
         i9W8crBfQEGkuJsXDkjIsp2I/ZYHuBRdM8JEYoZYWK5ao/U/kfCAGtm4XscFMDnq7bNV
         MEoBEqSSRIv6S9YJWEYVFwUieG2qkoo9kPG+vlMySIAQj6bkeM8iF/Gb1OumtzEV98wF
         WT+73/QZfJ4vHocbmmV07ILc+y+fB8ZO8zConVqQwZWK7mOA8BnYL5cDF4xPwX7/2dfL
         gM269VCUXjdsmzFEpsC+1eByy4gTGzTAtZy3enQRwq+nM9YkiW9vBMaYxkDvnMe2h2Wh
         pJvA==
X-Gm-Message-State: AOJu0YzgWKfMMJzGBhXkFIy3U8ajK1nHSYNYJLEpWeN1aUP4rCdOVkGa
	XboETysJspKLOCCJFuHrwGqmJ6uKGs5ZPN1B8Oz99ZQkVgHggOYIu7trNky6zS8aYxSQ798WETm
	G3e4=
X-Gm-Gg: ATEYQzxIjblR7V2I5PgPkG8nwSyjzJnmauTto0aLcEbu+M4XliPHRsx2MM9//5Uo7gO
	RwevQS0rSa/p3rYASZUacKlwGVxgZnnNK1pYN+xAB5bAb+D5fs2/1jI5cJZHvVbrUWPo9cZ2aWG
	evN7YcSm+M0QsZ6/qJlsN+KyzaJ1xKyu84h93HFvbBPJFAELub0MUfejRUuhSLtD4BfWZvzgxY+
	JCVnP+6vsaUI936qKoNP3JaKrtERBvztC6RBCrgCFTRwt6hBW1Iq4Oz9eTkWHo4owY+SUOKRiDH
	B0QJuca+Dt0kvNsYtTkpGWBhy6gA3V8cX5Z2jqChEQJYA20qjl9y/pIfZTJP5JXmtwY5VGFuruK
	FYetdxlfw7nQU1mk0lI/0brMyanL6K/Idb7kCCB8cGOG5t9YiPkNFQJ+SacpkeB5LhXQzImW+YB
	WggjxjWyzxWHV113MEr7bKNnbFILDluYK5MLwhjCDChq2INC691Q2jeKyaW7LFW3Sw05LVGLt0e
	sbl8YSrE9Q2pHc=
X-Received: by 2002:a05:600c:5397:b0:483:56c4:73ac with SMTP id 5b1f17b1804b1-483c216bf67mr1163205e9.7.1772019864193;
        Wed, 25 Feb 2026 03:44:24 -0800 (PST)
Message-ID: <252e527e-dcb2-4710-8a43-070c49512e00@suse.com>
Date: Wed, 25 Feb 2026 12:44:22 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v5 4/5] vPCI/ReBAR: improve cleanup
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@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: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

We cannot assume extended config space to (still) be accessible when
cleaning up. Necessary value need caching instead. In fact, as the caller
also cannot look up extended capabilities, the cleanup function needs to
cope with being called when there's no ReBAR capability at all.

As kind of a side effect nbars being 0 (which init_rebar() doesn't
explicitly reject) no longer results in a bogus call to
vpci_remove_registers().

Fixes: ee459aeac096 ("vpci/rebar: Implement cleanup function for Rebar")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
v5: New.

--- a/xen/drivers/vpci/rebar.c
+++ b/xen/drivers/vpci/rebar.c
@@ -53,17 +53,12 @@ static void cf_check rebar_ctrl_write(co
 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,
-                                                        PCI_EXT_CAP_ID_REBAR);
+    unsigned int nbars = pdev->vpci->rebar.nbars;
+    unsigned int rebar_offset = pdev->vpci->rebar.offset;
 
-    if ( !hide )
+    if ( !rebar_offset || !nbars || !hide )
         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 )
@@ -121,6 +116,10 @@ static int cf_check init_rebar(struct pc
 
     ctrl = pci_conf_read32(pdev->sbdf, rebar_offset + PCI_REBAR_CTRL(0));
     nbars = MASK_EXTR(ctrl, PCI_REBAR_CTRL_NBAR_MASK);
+
+    pdev->vpci->rebar.offset = rebar_offset;
+    pdev->vpci->rebar.nbars  = nbars;
+
     for ( unsigned int i = 0; i < nbars; i++ )
     {
         int rc;
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -135,6 +135,13 @@ struct vpci {
             struct vpci_arch_msix_entry arch;
         } entries[];
     } *msix;
+
+    /* Resizable BARs data */
+    struct vpci_rebar {
+        unsigned int offset:12;
+        unsigned int nbars:3;
+    } rebar;
+
 #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT
     /* Guest SBDF of the device. */
 #define INVALID_GUEST_SBDF ((pci_sbdf_t){ .sbdf = ~0U })



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 11:44:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 11:44:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240639.1541964 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvDJw-00042d-T0; Wed, 25 Feb 2026 11:44:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240639.1541964; Wed, 25 Feb 2026 11:44: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 1vvDJw-00042W-Oz; Wed, 25 Feb 2026 11:44:48 +0000
Received: by outflank-mailman (input) for mailman id 1240639;
 Wed, 25 Feb 2026 11:44: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvDJv-0002tl-PO
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 11:44:47 +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 6260a9a1-123f-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 12:44:46 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-4398f8403edso485490f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 03:44:46 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d4c977sm35949921f8f.32.2026.02.25.03.44.45
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 03:44:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6260a9a1-123f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772019886; x=1772624686; 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=5hnVqcplaxx7N9eKjGfFgGadhHdC3ywA3qjLGFALOaQ=;
        b=FPv32s3VUBMK+sHKJzGJ0a9wSV7ydqv8ZmX1ejpzsUcnwK1b2fxWqgUSGzRJ2MRURj
         DWwPy49tz/wNJUPEoq3mRLlQvVVDHzRPfzBSvNHLp+2v5h2y7/7DfIluNyKG6xTecYlY
         foxqs+VJqssJMkvYriyBjMuRPykEqXpp1vEw6nPXPLJm/WJTzkVNLGNMeL01eWRRdbl+
         VQlOzk2B1sl91JhLcMO5gLoOkeV70xFDFiLpPXPt3pxXcstoqNv7TN3oJEjgvAfDZDxy
         sPAc2+ILGPdweFLbtsmeiPtTFEFwMw1e/GwTVBOQDw2XNX1xx72cXFX5EADDbHdZRMP2
         Ij7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772019886; x=1772624686;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5hnVqcplaxx7N9eKjGfFgGadhHdC3ywA3qjLGFALOaQ=;
        b=AQuseMMDSDN8n3CFQ7YTRwnk8XjaHJLE53vuP4joNwzA/ZL0nu0njj3OXJ/P6ZxN98
         ynsiXTzZD33yMOHbiIRH6niNZjtInaczfAqcE9ceii/ifLnmdgalHIgU5HOwyBuSQmih
         e08ods55YHwHmGxIy3ORZlXuAO+QGpfTheXAU1ShcnUEJ3YEi1nksvuPtZCNvGq6PeeJ
         fYIbz2fQTj2fNLxVDu2izppY2bxYx3wSWQIUqKdAT2pvQll3RVNL1pxvoQEjtfCgjrW5
         ahFFbrlaQ0LRyY900o6v1mrTHoxeuhkxsqMPLy5DIvjx4XUuMVeAB7W6vW6iG8+ePIdd
         LdJQ==
X-Gm-Message-State: AOJu0YxHLApdx56Q+flogWBndwJzFvn5dF6MdOXIGHNozQjqIZl/LwrE
	v282nKaCFkymsyy9gMY9mi/xYuYfkm/sGl1mtqiZRXvsKcwAdOsnbUBnH9FeU6MEuDNQGPjFg9/
	VEp4=
X-Gm-Gg: ATEYQzwundrQBW+C7q2MUIJjmCb8Wsz1dEOYw97aQr4+8fhDHChyL4f7zBG2vNBDmjl
	gTAuhlSXXV5vKGI0oSMFTiY/MvKDYO5F8sP5zjveSQ8VhsCrgjXRJ5c7wYor8N5HUApj3CJ/Vti
	cXsy9dL8EIh27LEWliZlilzpxGSAQ6MhGen5uT6rXUuYrlezpNRepGOoPCY6CRWp9siDdj9Okz7
	Sr/0j1+Cod1WaDuSHPxJnQYXhL2qe92mPBlECs03SKXB2SMvUcnPcY6hQIwO9wcnlAGiCG6Wqo4
	pu8kSFHnbYq73fCm55X2mF2OlBm/mdoffuRMVsUWbGgDvahBp4m6BBNh5aPTN7Vr4Q1F0xDUkrA
	fFLa2/6yVVNq6g3f+3JH+oj/BLIXcra3jwdPa8WH5h21WDnDM1W19U/t8edb3tbzZJMRWSZW+s6
	4GVYqcJWrhVHtqcuOhx0IffSyQCKaQalgDVX95UrDAUB4dUvYeFlFO3ZoSgQXX2tNMLaBtwaHmv
	+FvLub1tW0AUBE=
X-Received: by 2002:a05:6000:1867:b0:439:9312:4b72 with SMTP id ffacd0b85a97d-439942ed0b3mr265421f8f.30.1772019886133;
        Wed, 25 Feb 2026 03:44:46 -0800 (PST)
Message-ID: <9f1fcbfc-e7b6-4ef3-8f58-c88f9667d606@suse.com>
Date: Wed, 25 Feb 2026 12:44:44 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: [PATCH v5 5/5] vPCI: re-init extended-capabilities when MMCFG
 availability changed
From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@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: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

When Dom0 informs us about MMCFG usability, this may change whether
extended capabilities are available (accessible) for devices. Zap what
might be on record, and re-initialize things.

No synchronization is added for the case where devices may already be in
use. That'll need sorting when (a) DomU support was added and (b) DomU-s
may run already while Dom0 / hwdom still boots (dom0less, Hyperlaunch).

vpci_cleanup_capabilities() also shouldn't have used
pci_find_ext_capability(), as already when the function was introduced
extended config space may not have been (properly) accessible anymore,
no matter whether it was during init. Extended capability cleanup hooks
need to cope with being called when the respective capability doesn't
exist (and hence the corresponding ->init() hook was never called).

Fixes: 70e6dace747e ("vpci: Use cleanup to free capability resource during deassign")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
vpci_reinit_ext_capabilities()'es return value is checked only to log an
error; it doesn't feel quite right to fail the hypercall because of this.
Roger brought up the idea of de-assigning the device in such a case, but
if a driver doesn't use extended capabilities the device would likely
continue to work fine, for Dom0 this probably wouldn't be quite right
anyway, and it's also unclear whether calling deassign_device() could be
done from this context. Something like what pci_check_disable_device()
does may be an option, if we really think we need to "break" the device.

The use of is_hardware_domain() in vpci_cleanup_capabilities() was
uncommented and hence is left so. Shouldn't there be a DomU-related TODO
or FIXME?
---
v5: Don't use pci_find_ext_capability() in vpci_cleanup_capabilities().
    Add assertion in vpci_reinit_ext_capabilities().
v4: Make sure ->cleanup() and ->init() are invoked.
v3: New.

--- a/xen/arch/x86/physdev.c
+++ b/xen/arch/x86/physdev.c
@@ -8,6 +8,8 @@
 #include <xen/guest_access.h>
 #include <xen/iocap.h>
 #include <xen/serial.h>
+#include <xen/vpci.h>
+
 #include <asm/current.h>
 #include <asm/io_apic.h>
 #include <asm/msi.h>
@@ -169,8 +171,17 @@ int cf_check physdev_check_pci_extcfg(st
 
     ASSERT(pdev->seg == info->segment);
     if ( pdev->bus >= info->start_bus && pdev->bus <= info->end_bus )
+    {
+        int rc;
+
         pci_check_extcfg(pdev);
 
+        rc = vpci_reinit_ext_capabilities(pdev);
+        if ( rc )
+            gprintk(XENLOG_ERR, "%pp(%pd): vPCI extcap reinit failed: %d\n",
+                    &pdev->sbdf, pdev->domain, rc);
+    }
+
     return 0;
 }
 #endif /* COMPAT */
--- a/xen/drivers/vpci/cap.c
+++ b/xen/drivers/vpci/cap.c
@@ -285,13 +285,16 @@ static int vpci_init_ext_capability_list
     return 0;
 }
 
-int vpci_init_capabilities(struct pci_dev *pdev)
+int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only)
 {
     int rc;
 
-    rc = vpci_init_capability_list(pdev);
-    if ( rc )
-        return rc;
+    if ( !ext_only )
+    {
+        rc = vpci_init_capability_list(pdev);
+        if ( rc )
+            return rc;
+    }
 
     rc = vpci_init_ext_capability_list(pdev);
     if ( rc )
@@ -305,7 +308,7 @@ int vpci_init_capabilities(struct pci_de
         unsigned int pos = 0;
 
         if ( !is_ext )
-            pos = pci_find_cap_offset(pdev->sbdf, cap);
+            pos = !ext_only ? pci_find_cap_offset(pdev->sbdf, cap) : 0;
         else if ( is_hardware_domain(pdev->domain) )
             pos = pci_find_ext_capability(pdev, cap);
 
@@ -349,22 +352,23 @@ int vpci_init_capabilities(struct pci_de
     return 0;
 }
 
-void vpci_cleanup_capabilities(struct pci_dev *pdev)
+void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only)
 {
     for ( unsigned int 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, cap);
-        if ( pos )
+        /*
+         * Cannot call pci_find_ext_capability() here, as extended config
+         * space may (no longer) be accessible.
+         */
+        if ( capability->is_ext
+             ? is_hardware_domain(pdev->domain)
+             : !ext_only && pci_find_cap_offset(pdev->sbdf, cap) )
         {
             int rc = capability->cleanup(pdev, false);
 
@@ -376,6 +380,28 @@ void vpci_cleanup_capabilities(struct pc
     }
 }
 
+int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
+{
+    if ( !pdev->vpci )
+        return 0;
+
+    /*
+     * FIXME: DomU support is missing.  For already running domains we may
+     * need to pause them around the entire re-evaluation of extended config
+     * space accessibility.
+     */
+    if ( pdev->domain )
+        ASSERT(pdev->domain == hardware_domain || pdev->domain == dom_io);
+
+    vpci_cleanup_capabilities(pdev, true);
+
+    if ( vpci_remove_registers(pdev->vpci, PCI_CFG_SPACE_SIZE,
+                               PCI_CFG_SPACE_EXP_SIZE - PCI_CFG_SPACE_SIZE) )
+        ASSERT_UNREACHABLE();
+
+    return vpci_init_capabilities(pdev, true);
+}
+
 /*
  * Local variables:
  * mode: C
--- a/xen/drivers/vpci/private.h
+++ b/xen/drivers/vpci/private.h
@@ -46,8 +46,8 @@ typedef struct {
 
 int __must_check vpci_init_header(struct pci_dev *pdev);
 
-int vpci_init_capabilities(struct pci_dev *pdev);
-void vpci_cleanup_capabilities(struct pci_dev *pdev);
+int vpci_init_capabilities(struct pci_dev *pdev, bool ext_only);
+void vpci_cleanup_capabilities(struct pci_dev *pdev, bool ext_only);
 
 /* Add/remove a register handler. */
 int __must_check vpci_add_register_mask(struct vpci *vpci,
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -102,7 +102,7 @@ void vpci_deassign_device(struct pci_dev
                     &pdev->domain->vpci_dev_assigned_map);
 #endif
 
-    vpci_cleanup_capabilities(pdev);
+    vpci_cleanup_capabilities(pdev, false);
 
     spin_lock(&pdev->vpci->lock);
     while ( !list_empty(&pdev->vpci->handlers) )
@@ -159,7 +159,7 @@ int vpci_assign_device(struct pci_dev *p
     if ( rc )
         goto out;
 
-    rc = vpci_init_capabilities(pdev);
+    rc = vpci_init_capabilities(pdev, false);
 
  out:
     if ( rc )
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -25,6 +25,8 @@ int __must_check vpci_assign_device(stru
 /* Remove all handlers and free vpci related structures. */
 void vpci_deassign_device(struct pci_dev *pdev);
 
+int vpci_reinit_ext_capabilities(struct pci_dev *pdev);
+
 /* Generic read/write handlers for the PCI config space. */
 uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int size);
 void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,
@@ -202,6 +204,11 @@ bool vpci_ecam_read(pci_sbdf_t sbdf, uns
 #else /* !CONFIG_HAS_VPCI */
 struct vpci_vcpu {};
 
+static inline int vpci_reinit_ext_capabilities(struct pci_dev *pdev)
+{
+    return 0;
+}
+
 static inline int vpci_assign_device(struct pci_dev *pdev)
 {
     return 0;



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 12:15:13 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 12:15:13 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240676.1541975 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvDn9-0000C9-AM; Wed, 25 Feb 2026 12:14:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240676.1541975; Wed, 25 Feb 2026 12:14: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 1vvDn9-0000C2-6U; Wed, 25 Feb 2026 12:14:59 +0000
Received: by outflank-mailman (input) for mailman id 1240676;
 Wed, 25 Feb 2026 12:14: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=dz9A=A5=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvDn7-0000Bw-UU
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 12:14:57 +0000
Received: from SA9PR02CU001.outbound.protection.outlook.com
 (mail-southcentralusazlp170130001.outbound.protection.outlook.com
 [2a01:111:f403:c10c::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 98bde931-1243-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 13:14:57 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by IA3PR03MB8382.namprd03.prod.outlook.com (2603:10b6:208:543::19)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Wed, 25 Feb
 2026 12:14:53 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026
 12:14: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: 98bde931-1243-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=uLFMXvCBvNrYZIDe3wsVAWJ+Th/FM6xAQbRqUTsWBF+RyUGECjoPrMS2QH+ssMfe4bpgq7+UetTXg0i/j12lmTzL8DOXohtDcn7K0f8XnIZ12+oGgye6xeZuRwoBI1CYg703uDpagmEijH3oQ3EBb4jHtOPXSIoA93aeM9LhcEp4ruxkVjEmfOFguhHekkY7iXUfKZHgrEQveH1meKTA32B3ulsRrSa7Ohh/8RCOthSumCULBU4FHEOhgUXmUqH3+VLkVoNJJYIM0RGmewuCVxVPTaM416m4g3iLFSj1jtLyFmCNq15HdIHZacZ+0wS4FkJCuHPfmIECbkSGZHMvMQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=qJbLflT1H1pA49mG1130YzMZbQNUbdmlmar74HDj+Ys=;
 b=OjMzov9M1wNZC47i8orwAz6PTWeh9RzbK2hffcz0QA5YRl97e0HtLvo/iL/bzL3NTv+luGtYPp5HTzea6BtfgSQovHIpXAbPdl6nxvREqd1DnbtQU8yDhwFXYEBuU4gfrHJgvTXlx1kfPIiNsDGL4sSlWlHj7bHyP0RH+Zb+QiPQo6641bSpIETqBzYW2dPpCT4kZL8qU1RigB+DRau6FsRxwE8/hgGYtCR2relOf4xSiuvCHBHgXDodxIJHyBMEWoQHaIQfky5ridoh2gejnUR81O4KbNeLzwJToMED6krH62XkWuw2jTBdA1ReuQm0T/eaXdG/OCSfXSwyD7MAYQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=qJbLflT1H1pA49mG1130YzMZbQNUbdmlmar74HDj+Ys=;
 b=sRVV08NWFxQyR0irxaRd61ZmPV5GA0FYOpu+7ryfzgpW+YMo/DIyWMOcmkUkCtzAESuGohSfq/NDdJjIWkxMZIGR5bldpfkPFdNlFIvpEIy6h8gQypFG0ft+pUEUEk35NZCkQHK1jsfB148iRQz4dtCV3PtV6vaP48EDuKkZ1os=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <278f711d-7c61-4a47-868e-ab05b9426e40@citrix.com>
Date: Wed, 25 Feb 2026 12:14:49 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Jan Beulich
 <JBeulich@suse.com>, =?UTF-8?Q?Roger_Pau_Monn=C3=A9?=
 <roger.pau@citrix.com>, 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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>,
 Nicola Vetrini <nicola.vetrini@bugseng.com>
Subject: Re: [PATCH 09/12] x86/shadow: Rework write_atomic() call in
 shadow_write_entries()
To: Roberto Bagnara <roberto.bagnara@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-10-andrew.cooper3@citrix.com>
 <0148ea9f-6486-44a1-b4dd-47af7c978351@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <0148ea9f-6486-44a1-b4dd-47af7c978351@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0189.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a4::14) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|IA3PR03MB8382:EE_
X-MS-Office365-Filtering-Correlation-Id: 319cd410-9cf5-429d-4528-08de74677b25
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024;
X-Microsoft-Antispam-Message-Info:
	GkSNnS5ntkTDHooS2jEb0tKpPsmW5ZJtqcgFmU0i9rCuxfGg6nQ+hGZw/3xxyJzklg8Ai/qvzD1KMdMsgo++lxsuBrioLjc1D57oL/aO4gO7KNgCZGEIJgDSzilybYeHV8vaJy5YF1EdFd/tyhYy2YcRty801Pg/2/Em1CEdG2qXPuKZ3/4zcveDoJlNIiNrlu16NCAEpCZCxXvPRwAyJXEHbQ5lqEcj9XctxoQw1C7Rty/wMwnNl/p1wHrnOcRYi4P2syoVtsgmQ77b0+jW3DLR44BvPGHZBYM4lCH/d4O1wxZRIHybJsCPoiF57ftfNdEzFxOn31I3zWSIsGSgzx4Yun/yYvE8vcqD5V3pa40IRQw/xLghwemVf2foPYDzFSbiMD7zzJ1kGAK6ny7qEhEfmoiDAcfok+nOX7yWThslJtYJskuOwr34jW9VLUDFhMMtQXf8ac+yDZ7JepsGlKGE+hOUkCwXDO12Ey6nklVFYu6FlolXdOCvL5Ffi2Y32IWRkoRO7ZQ++TSARoKlBglXt4zkLX+NZ1J8E8Uy3m/GiMiI4g3adSJUVoKnp1VkwLmNqocMcMPBvWjEwIRAyk8RMQuoTWGWoNIXu4oQ7PnBVkF9P8GfGwYyzO1TlkGXprQzA+uPNCD6nN5se+wV8H0n5BxaNOFjVMtH9WD64FhsGHUxl10DsXp3YMpSxLqvPLX2HyV2O3UvhVsxVJOI1lGoikJvapRRTes9LRwKrFk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?aFlHRkpUNnRZRllRMHJQSUF6MHNaU21qMURoMzFEd3pHSnU0alRoNjBGU2J3?=
 =?utf-8?B?RitobkQvM0Qrb3JDQkxKNjRpTFBrV0U2UStZN2luQUo0dmtPZisxSGNINjdX?=
 =?utf-8?B?TU4vSVlMZHBGdGtJMWYzTnJIN3M3UGlWWXljU25IcGdYK3NmRzJSQ1phTThU?=
 =?utf-8?B?bkFQbGpNWGxvRzJYQzBRVENFRUlUekVmZzloWkYvU2IwN0VvNDFVbzFqZGF6?=
 =?utf-8?B?QkFhV21nTkw1bHJMOVpkWnprSG45cEU3Q2RkQy9ZcTF6Q0dyZlpLelpOUGRO?=
 =?utf-8?B?UlBDQVR6Y1ZuaTJSMEdBZnBadjFGQTc1SFBzSGNtdEtmd0h2QlpJeXNjc0U1?=
 =?utf-8?B?Q2dUeGFzVFRkUDZwV0FzSEpPNzlKUTArWDdEU0daZEtZaFZOeElXcWdHL0dn?=
 =?utf-8?B?emk5NVMvTHlCbmpPSVQ3R0lvTXZ0TmRSOVJMRDlYWEVJOEd0cWI2eWxiTGZv?=
 =?utf-8?B?STI5NXJlbUFyWXAzTU9VOWxEc1RIUWhUZUc0dkUxQkkrVGhhOU1pNTYzcVNM?=
 =?utf-8?B?TCtBUHBFUTdjR1liNjRJT2ZzaWFkRFAwUVJ3NmJkbmJWUW1zcUhPYVRydHcr?=
 =?utf-8?B?WHNOclEyVzVDS2srSkhFOEIxRnR5TmVsb0JZcHdFMWdRWmRKRC9PeW9sejFk?=
 =?utf-8?B?ZG1GNmJ4Skt6VTMybVRydzArZVR0MXQ0TTlWSHhJRHcvWGJVOFNDV21hMTRM?=
 =?utf-8?B?NlNKYjlkRkh5MWNJNjFpRk5FWERXekdOcDJCMHlnbkp4UlUrWDRqblRHaktz?=
 =?utf-8?B?aGZORHN0QkYxKzdTdlBrS1V4TFJwNytmY2x2QkovT0FrMTNjVnRvRVNhRmJR?=
 =?utf-8?B?WDZ0RDR2NWJYUlhjQXoxVTllNDVjOTFDNk0xNUowRUh3R3Jmak9sYlZPSDgw?=
 =?utf-8?B?M2NybVNkTkMyMzBEUkgzTXBrZm43RlNhTi9kM0FHQmpaeC9rL1ZPdEVMa3F4?=
 =?utf-8?B?ZTF4Nk4rYTNkUFZ2VEFMbjhvQ3ArMGpmMFMwTlVnUXY2WlY0QmozempxUlNN?=
 =?utf-8?B?RitNNjc4ZFN2TE5OTzhDZC9tNExaYkNCWkNoRjlaNWwwblh0QkFpTEhSdmtq?=
 =?utf-8?B?YUtXd3pBT3NoR2d0NXQ0MEE4Z2s3NDU5MlJvYWN2WXFLQ3A5L3Y2ZkFWN3k1?=
 =?utf-8?B?Z1QwNWlDYVNJUFJnRkhpTkM0eDUzTXFXRzdnTUV5a01nU0JlamtqLys3QlE3?=
 =?utf-8?B?NDJnTkRKSW1QeEQxZW5xVm9LbjE2NXN3ZTQ5aWRaYVpsVU9WQ05FZG0vMXVG?=
 =?utf-8?B?TlM0V2tSWXhGbEd5K0ppRWMwdU5zN2tCOXVac3hwL21HQmNsTFBXdHFWK2sz?=
 =?utf-8?B?THhodzAxNEhxcS9lckltRzdkM2VTazlZeDIyWkpzNEhVSUFpaHRwUldMMmdj?=
 =?utf-8?B?dkhlUlR2dU42dm8wU3NGdXB5YnF1YzZXblVsSm5CREVKN0Flek9jSlk3VWhV?=
 =?utf-8?B?RnRUVTVQUEM3N094blJYanFib2RNZlJnZEVSWnRacUdrc3B0WjJaN3B3T1lt?=
 =?utf-8?B?RUJmOUxXOGhMU0J4eXRJelpxbHMxNEQ1bEpmQTUxeTRmTTdyaWNINDVpandR?=
 =?utf-8?B?NmZQVXhnYTUvZE9nRi9OSmQxSTAxR2JiTnByWjlSRmJ3aTNUdGhNdnJBNDIv?=
 =?utf-8?B?MDZMM0VRVzg4YUo2eVg1ZkE2cGJGTVl2UFdVZzJFdzZvZjJMdlo1ek5MelFO?=
 =?utf-8?B?ZTlqNjgyV3pFNUJnQnFxYkErWGhEQ2xsNmZhSnpiWVZOL3FJT24vMytZUUxT?=
 =?utf-8?B?VXdkU2xoa0w1UkhoSXMxaDY4NllQd3kvZFh6TlZoakJ6UFU3RlpKYzIrVGpG?=
 =?utf-8?B?dWxTNHRjL2VmK0pZS0lLbUtUbTZ5ZlMxSUFBNGJZQjJQZHdUSEllMWJVcVdJ?=
 =?utf-8?B?UlJRd3grU0srR2JuUUhXOFNzNkIyQ1J3VHFFeU53bWNVbkZMWkkwSlIyUXVC?=
 =?utf-8?B?Y0lpVWVWM1JmL3VTM1R1bWV3UVk3NjR0c3JmVmQrRHNPWHBpT2RibnUrTHZY?=
 =?utf-8?B?YTE2Rnk5Rm9TLzAyRXBHMFBteGNWVUVRa3ZzdGJMeFk3c1I1WEhteUJjSnNz?=
 =?utf-8?B?bEhKVGFBYjVQREZxQ0JISGdTUXdSeVVUMWFRa2Z5eUtERTFjQmZXK2xTeU1z?=
 =?utf-8?B?b0t1R3M2c2c4ejN3MXhBbHg3TU1qWEl5MzVZZG5Zay9ldy9SN3RGSldmQ2Qw?=
 =?utf-8?B?U3I2UjZCeDZMeVV3aU11U2NPMVB0WUhJNExwMVFwL3JWN3ZOdVpGWitJTTND?=
 =?utf-8?B?S0M0dys1dll1bjllbEZhSUJmamFnaXZ2QVkweW9Oa1h1d1hkaHl6c1l3UkI0?=
 =?utf-8?B?K3JBN3IwT0JwMzU4VndOb05tanp2RUlyeGRIOGdjbXhHSnRucE10RTg0TlJG?=
 =?utf-8?Q?Hv7v+lYfLIaQP7J0=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 319cd410-9cf5-429d-4528-08de74677b25
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 12:14:53.0571
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hqnhTgefO+Tq6AojVryEyZPDKn/VedgwnO1uWgOhvMqyVhZP4bCnZw5rGm17vPK7hrokrMwWopD0H0ty9JbVpNt2iNa18DjALE+yTndcFQ0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR03MB8382

On 23/02/2026 7:26 am, Roberto Bagnara wrote:
> On 20/02/26 22:46, Andrew Cooper wrote:
>> Eclair complains of a side effect in a sizeof() expression (R13.6).
>
> I disagree with comments of the form "Eclair complains"

We use the same phrasing with other tools too, but I can change it to
"reports" which I suppose is a more neutral term.

>
> Note that in recent versions of MISRA C that rule is no longer
> mandatory.  More generally, note also that, IMHO, switching to
> a more modern version of MISRA C would simplify compliance.

Ok.  Making things simpler for compliance sounds like a good thing. 
What would this entail?

Presumably we've got to adapt to all changes in this newer revision of
MISRA C.

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 12:35:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 12:35:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240702.1541984 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvE6p-00038U-SG; Wed, 25 Feb 2026 12:35:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240702.1541984; Wed, 25 Feb 2026 12: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 1vvE6p-00038N-Ob; Wed, 25 Feb 2026 12:35:19 +0000
Received: by outflank-mailman (input) for mailman id 1240702;
 Wed, 25 Feb 2026 12:35: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=j5m4=A5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vvE6o-00038H-Sr
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 12:35:18 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 67f385fe-1246-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 13:35:03 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 072494EE781C;
 Wed, 25 Feb 2026 13:35:02 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 67f385fe-1246-11f1-9ccf-f158ae23cfc8
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=1772022902;
	b=z78SpsQta1Q96z6M+sWz48bqMi6Zik8KG8fXOUE1uE7L5c0YBlwdlyb+B2epNwPY4EZn
	 R7vak7FVR1YUYo8W/3yloDkR8CZQNWxS0XDgQP2KCjZbui1v7Gbja7nAgUAehsq89S//F
	 0QiQsjLTRSMEUX+WsH1x3CGRVVs6bFkjFOZbCQSfUh20kGzVTY0mn3jHRCnxJkq30uEXM
	 VO/auXcE4YckwosD22vDRUBuQrqepzwFmWzVoebNytjrDKRJkAklA1Jqxfp34MIQJ+dvw
	 3/jGRD9BcnqalQ2O2RxyXHnLwXDu4iBw9QQelGNXiHByYr5WU7LSi2h3HK6ylh1ABIjFJ
	 +qWy/aLRJY2B/VNq2Ue9mg6fN6dJo5ax75AZb1niNpPSFzC3P0IFbZJqM/QZavoCxj5cv
	 VWJpBB27WICgXCs5mKkc/wDRZaVC30YaYeCaFPTxBCJvrC+xe0ZrfEnYUINe7KriR+hQa
	 ZiC7CVBOghX3YEbHpWFYxCOAxcxMVV3JOeTWermAWGGHFcZ00UYJeHNwKVESNUu5wy7FI
	 i7AIKhRsFmPTpVqEBG5r4S2dmDnnVYDZ/PBwcocMQEbOJNuhR/sTed9GRRiDy77T7qIBv
	 j24fTY72RBF0bYwZUn9iKB0bNUtdtW+iQYC1hGWp/uinTPQbdDu4FTuJKua7gAM=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1772022902;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=znqnJrtIOyr/QtKkKeAfBwT9ebqzScXUuCOsjJDtjg4=;
	b=IQJ/B/1KjusLYznG8b8HBfIf38+8fGNX/B7nPL/FSJzcTWKYy7QNuuyh3y93ixzVncz/
	 E0iDD768t9zFj1Ica4/dFKzmjs1ENh0sIB1w6mRKmcblFfzN3S9MEcgqP8KYVb8Eiq7HE
	 1UMI/oO6l4+hKQEhhxDhRITuGKPiMmNix3dPR30X6IoMd8QOtsOiWj+QqIxVQO4fPKr/8
	 I9NK7g0+9indW3ADpVEqsS/FnOmZmHXh7VszrlQRFjk0xLnquVQxui3f4LELI+JjqiGvM
	 Onl/BQpWJr2yQki4txR1CoIFpx8WWnfOO7trfX1+XpK9L8BLyuHtz7ZPboP3YmcQRmWvM
	 Edij146cxiC8KFOyRpiK83WHMcCiVN+b9OeKAt2etEHISdaO1KYNOw9zpBFfsXRocSTO2
	 /FkpxbcRkJwq/Gb4lBmgcVOhiN7ZtNWRV8jXNvfuvPaQcl8FBEmWcmeJF2aXUJwVlAJiN
	 LM2W9S5aw8Mz5h0QXJYIMVv+grtZgIcaGiVz3Qsx0MUb8eQhl7bpsSp2mJp7eIOcvp1Ow
	 W9Kv2AMOW9XhzuaCK8vqbr2wj2sVkSXsZY8JmNideqFsFv44iYvZP9VC5tmJKIhb2c5TQ
	 OJ7PB6ZAXDBTjPIcN0pvUaSjEcuCBHuQieKrc2ginxBxpLuEDDT4HA9wKzmwvXw=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 25 Feb 2026 13:35:01 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Roberto Bagnara <roberto.bagnara@bugseng.com>, Xen-devel
 <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 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>, "consulting @ bugseng . com"
 <consulting@bugseng.com>
Subject: Re: [PATCH 09/12] x86/shadow: Rework write_atomic() call in
 shadow_write_entries()
In-Reply-To: <278f711d-7c61-4a47-868e-ab05b9426e40@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-10-andrew.cooper3@citrix.com>
 <0148ea9f-6486-44a1-b4dd-47af7c978351@bugseng.com>
 <278f711d-7c61-4a47-868e-ab05b9426e40@citrix.com>
Message-ID: <678f1a67603d4b37d717dc84565db044@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 2026-02-25 13:14, Andrew Cooper wrote:
> On 23/02/2026 7:26 am, Roberto Bagnara wrote:
>> On 20/02/26 22:46, Andrew Cooper wrote:
>>> Eclair complains of a side effect in a sizeof() expression (R13.6).
>> 
>> I disagree with comments of the form "Eclair complains"
> 
> We use the same phrasing with other tools too, but I can change it to
> "reports" which I suppose is a more neutral term.
> 
>> 
>> Note that in recent versions of MISRA C that rule is no longer
>> mandatory.  More generally, note also that, IMHO, switching to
>> a more modern version of MISRA C would simplify compliance.
> 
> Ok.  Making things simpler for compliance sounds like a good thing. 
> What would this entail?
> 
> Presumably we've got to adapt to all changes in this newer revision of
> MISRA C.
> 
> ~Andrew

Most likely new violations on new non-clean guidelines, generally rules 
for features that were standardized in C11/C18 and were previously 
widely available extensions (e.g. _Noreturn, _Alignof, threads, ...), 
alongside some minor changes in existing ones, such as the 
classification change mentioned by Roberto. The exact impact depends on 
the target MISRA revision, however. Making an experiment should be only 
a matter of s/MC3A2/MC4/ (or whichever MISRA revision is chosen: MC4 in 
ECLAIR refers to the latest published MISRA revision, that is, MISRA 
C:2025. Perhaps also a few regressions (as in newly introduced 
violations) on clean ones, but I do not expect the results to be 
radically different.

Side note here: are the efforts to make Xen compile with -stc=c11/gnu11 
still ongoing? I say this because any MISRA revision other than the one 
currently used by Xen by default is based on C11, as it introduces 
guidelines for C11/C18 features. Not that this would matter a whole lot 
for Xen, but it is something to consider in the broader picture.

-- 
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 Feb 25 12:53:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 12:53:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240717.1541995 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvEOB-0005rG-7u; Wed, 25 Feb 2026 12:53:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240717.1541995; Wed, 25 Feb 2026 12: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 1vvEOB-0005r9-3x; Wed, 25 Feb 2026 12:53:15 +0000
Received: by outflank-mailman (input) for mailman id 1240717;
 Wed, 25 Feb 2026 12: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=dz9A=A5=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvEO9-0005r3-Tp
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 12:53:14 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id f1071b95-1248-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 13:53:12 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by SJ0PR03MB6985.namprd03.prod.outlook.com (2603:10b6:a03:433::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Wed, 25 Feb
 2026 12:53:07 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026
 12:53: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: f1071b95-1248-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XnK/h3jNEL9IrKBO2lAykbaHq42eFBGHLGckt+JkxmPNhvtGBKwlX6LpKpGGDW0OYWo4xGbBVg47cjcccg7IDP8l9bxk6EJUFPpapCPDoZzmE0heorVtdWVLxRYCbs+jUreZg7PhDIHe9w7DkhWfClUPZmH6K3dOxQvMWgUdjA5kl551NrBjLTz0MqTf6oEeZND3z8G3x9Oc906wINhEuKxWlV7dB9y8aVB6RrQCTaP9IwNtgZP+v9rPEFbxfhqFHApMBdxHerQST/BSi4wDJ3cMoY4DLed70phYPsxOWqIlvYxnaRQU170VqwjDKSwEjsXbwynIGtG6XLDyKCcmCA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=AAWosXe15ohU5tfzB4UY/2tLcZYGffUxvyx11m/su6o=;
 b=GSqEKAN3zukUTjPO5ImyN5uzY0vsqCSeWss93wzVWGGRIhS5Q93q9zMZ6FzAAqrpfBjKo7rTPiJVl2y6DYm5rvtnnCS5rqMj6mhecz5b6tfiWwAw+iCqkM/yeVfmT3mTqB1Xfmj1Z6Bv7nCm8ivT5tRHDK3dBEEqZpF7lTwH1XhOr1BEpMfllvwSa1OCRToPlKx+zhgXOWzqTH5X/rvcsWnsIziefMNq4hlogNea8lT7sZ2JW7uckavO6dqyJ/LaDkPmthcCiQUuxL372Lku2uuXBztLnepUF91FpgLpL3HEQaQjmEzd0zgdLcqtNBuvNM1IcFIswJKwP15+EeQZdA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=AAWosXe15ohU5tfzB4UY/2tLcZYGffUxvyx11m/su6o=;
 b=C4OgoUPrQy9kvqRD+TXj+gQHMvZC1WyQAX3dUYhKhzsbjTmCKW1OD0YEql2O6WnxdMaaw1QP9e+SxeOiw+GTpuvDgToMv5I1Tk8Tshke/6JkLV2kgCTkB80v6zVHvC4dyIsU+ybFoZMftg8N4mbABBn4Vv8nDEvc2SuHCJObY4w=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c73f3627-73e0-4f36-9085-6c85951c2b0a@citrix.com>
Date: Wed, 25 Feb 2026 12:53:03 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Roberto Bagnara <roberto.bagnara@bugseng.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 09/12] x86/shadow: Rework write_atomic() call in
 shadow_write_entries()
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-10-andrew.cooper3@citrix.com>
 <0148ea9f-6486-44a1-b4dd-47af7c978351@bugseng.com>
 <278f711d-7c61-4a47-868e-ab05b9426e40@citrix.com>
 <678f1a67603d4b37d717dc84565db044@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <678f1a67603d4b37d717dc84565db044@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0449.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a9::22) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|SJ0PR03MB6985:EE_
X-MS-Office365-Filtering-Correlation-Id: 7e5d15e5-aca5-420b-a4da-08de746cd2b8
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:
	F87Zf8RCQAftdUtWeXOwCDRATTdkSe4uOIjQtatXHHI6T2JYWd4Ybb5fNBU81Dm0GxcTJnVeWmIVk10kyxmF++geYMUev/JeStAK8z8NxfK4MwtEVEvtRQXBteDTO5TIS173nuOQb8xOf3l0HPVcOPsQWbX3kiLsjY0LZYGA4yaDHDRNC3rS6PoDFoi7jpLQKe+oTccBBQvKtfGSJsQ2Y97QcmIjAtiQqAOtragJNdQJT1GWGVlaFvrs3ZbiZ8awDHnnAiuqX7vkXZhuq76+xVsCJrAeD8WlaEuFk2cAfE+b2dF8rt8F/qr9nwAvX5Xp3/ru/nk+Pbop/u6j5tyOaeXlOvv8ZkBGqveKmOr5ogGrdcr3YMgxJZzacv5ivHBVGMlRUfxOqLu15gLK1ATAiKjbryYXrtiJiGgpsd9D5zZpKiPLzUwkjiGqqnoqs4ksuWQVpD/2eo6NNua8N3eKFTfDDwJ2Bo+igKQ4rE7q0XAfeWjSocy1ky9V2hTya85Pg43ztITirAq7ERtDmJodmol16CAFo8KFv9dIKEEpHBQejSJk4AarvLzrFdvaU52GYf4H1L9ayJAFaENVZeMSxz4RvozCy4MRcnPDgT5BvxcggTkhwyEGu2Oii8cLtYgEuf65lVuBjOmIa6vQJHV4Pn7wGM23XZ69JZvXI8ORn97FcVNqK8wphwQ6jeQSDd+pwxrDnyJ0GL5i0E2eoXGll7tZvQnT91XBW3reAN4N8Fk=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?SWU0MmtsbTVYOXd4ajQvRkFHNVRkczdZUUFqVEJvcGJIRGJDVE16YVp0NG45?=
 =?utf-8?B?SzQrTklxNG5NTjhWQTM5OWVBd3B5Y001ZjArcGc3eDZDZ1gyRnJvVjFNUlRC?=
 =?utf-8?B?Z2RXV1htUExORXlBNHQ0Y2V0YTRBV0xkWWE5NW5PWlUwZGtSdnFYUmRDTkFC?=
 =?utf-8?B?UEdvY0toOE5GWVNxZVJpN1kvaEs1SHl1U1Avd2lSSG40N1BvVDBEQmJRZ2xv?=
 =?utf-8?B?d1pUWUYvVTJTNmgrQ2pTNEV4eFpWVkVjWFZLL09GTjNaVkRzWWJ5Y3k1SjNO?=
 =?utf-8?B?UzEwR1dvN25UL3o4ZlY3ZFVmMlNSNXM2Wmtqb2hXZmMvQmpSZGhyQ0ZZZG9Z?=
 =?utf-8?B?M2FqdXV1L013bjJBVVI1eXlOelpVMWN3ZXJkN1N4d2RIM3RpSDEzdmVSaVI0?=
 =?utf-8?B?MThhUUVLVEhJbnJmZHc5cnQvOEJqeXFaeGFHbGJ0V1pCWjNuTlhOVzR1d3Z2?=
 =?utf-8?B?czA0TVZ1eEdtYW9PQWxuU1pFNU9mMEl1akVNakRkR1BVWk5LL08xbk1EdGpP?=
 =?utf-8?B?UWVrdHNtV1N1UytHVVBvMEV0UWNYWnNwQmg4N1A3dGltVlN1VGNKS00yZGlF?=
 =?utf-8?B?ZE5wSmphT05WVm15cjNGR0FwTmY4MlRmZVdFWG1YUHJjM01SaXBNL2VOKzBW?=
 =?utf-8?B?L1hoNGhSWHZHL09SenhaRk93dW5IRkhXeDRMWm1VTTlHUHh0ekNhbjc3ZnlD?=
 =?utf-8?B?MlhBOEpYQXU3NG5lYXhKWUZjZVdKUUR2THlrRVFWNFNWZDV0RWNKeFF1d0JE?=
 =?utf-8?B?aDRIY1VtY2kyT2RoUE9DVEdXOE9lRzNzVGZCMlA3UW96VEZEU3ZPQjU1TDVJ?=
 =?utf-8?B?MmN6azNnRHpsZUt2UExXUDVWOTJQeHdBT1FaL3Jvbnl5QmtwQksxS3cxa2Uw?=
 =?utf-8?B?SnE3bGVoY1NBUjdyN1J0b0E4dExLUHh3NGMycGJES2Myb002WlFCT3VhSjho?=
 =?utf-8?B?dE1GUVk5YXNnZ2phVTlpSTU5bXF3dU1lL3NFY05XU2x2ODZOMm52SmdwN21k?=
 =?utf-8?B?V2RzWG9CdFZ4akVETHJOSkllVDR1VGduZFBPSEJaZ2lzUUh6T0pWNGNVUGxm?=
 =?utf-8?B?Y1lUd1poUHRhc1BBeWUwaTh2c21seHRicy9rbmRWOXZ0RDJsKzRzWlFZQXo3?=
 =?utf-8?B?bWV3a1JJTkl6OTVQNVFzZUxDcXYxM2IrWkRrVWRadlJPT2tnQUtHYVNPYWJp?=
 =?utf-8?B?VVZzOVE2dkMxWmVQQmRuZUloZU1DTEM3cHNMdEFJOTRJWnF3bU5EODNBR2c1?=
 =?utf-8?B?eGgzRHhFS0lvanBxcUJHSnhUc3JlQTZJeHJsZGp0WDBUYlRZVG51UUlUVDdx?=
 =?utf-8?B?TjczT3Z0Wm53WjRoZm1hMkxBZit2d1dQeFNTTTFYOGduNkR5M0ZWaCtQUDdW?=
 =?utf-8?B?SFAwbDhGc01JODdTSitsSklXamZ5bGRzQWNIVDNkR0hBeXVSYXEwL3M0SGhq?=
 =?utf-8?B?V0txY0pVYTBhb0hzUG9aK2ZYb2pYYy82c0wxNWM1akRlMDBZbDk4c2crR09u?=
 =?utf-8?B?R3FXY0xGdkljSmRBS1A0MDFmYks4TnRzSTh3blRBVjJDRXhET2VidG5IQkg3?=
 =?utf-8?B?R25ueXprbmhmS0FJYUdjWVREbTVoeFFFL3lYZVEzaWlPSms5NFgwc3RqQzhx?=
 =?utf-8?B?aHk1MjhrSVV0b2RRa0lQYVVOQlExVnFZWDBqM0ZkcENqUDNIbmZpUzhoYStF?=
 =?utf-8?B?T3VQeHlkaWk3b0tPZFdYSm9BeE4xZWhYeHRSOE81QXQwb2UzcVFmM210Lzl6?=
 =?utf-8?B?YVVVcStyZU8xNlhKc3JYWHRTTmNRUlgrbFJtWkRYTWsxVHl5YXB4VkxFQURa?=
 =?utf-8?B?dDczYUZOZ2pYYzVhVnpVTGZ3eDVZNlR3RGJCN1BqeWljbVFubWUrZnlGUktF?=
 =?utf-8?B?czUvZm5zYXRkMXh1azJNOXpMOVdsNElMU2ZDem9PTkpkNVpFaHUxeDVwZDdU?=
 =?utf-8?B?Q1FBZit3Q0xTZW8rcWpqcXoyRVQ5RjU4bHowMldRVVpCTXFubnk0VVRac25G?=
 =?utf-8?B?MUo0K3FsNlFWNTMxeXlENmxkQ0dxWUVlai84UUFxRkhMRGtuR3JtczVpUjlu?=
 =?utf-8?B?bU5KUEd2bjFUSU5UMjJQREZuWDFYWGVJSy9SdnNBemd3bk81a0M3OGFLKzJV?=
 =?utf-8?B?L3VSWUxQUnptVmxQd1N4elE3YU43WHF2b0l0RDkzN1hqR2xseG5UbzVYbExw?=
 =?utf-8?B?UmRTT09YS3l1YnBNdFJDZGJ6b2pnZkJXVlhkYlk1L1BYTlBoTXovN1dsc21V?=
 =?utf-8?B?bXdGSHBkd1kya3hFdVFlK05mblRBSkQveStDNmRiZHcvYmVmak9CbUc5R3VM?=
 =?utf-8?B?YktBT1A5cWxBVEFXZWtYQkdTTUtJejNjRVdVWDUvM0hOOUxFSExRVFB6cmhn?=
 =?utf-8?Q?VcbRlnSoHzv1YWug=3D?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7e5d15e5-aca5-420b-a4da-08de746cd2b8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 12:53:07.4452
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: je/47JWu12bDFnGPpyPy9zPhnjRAbDTYiS6iyqoHCxdRZUgBvZJ8NcNVOq7I8fPMy1+yoOs4aXD8SsEBtaWug3cJwPuGQjKSaYcUDgL+e6Q=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR03MB6985

On 25/02/2026 12:35 pm, Nicola Vetrini wrote:
> On 2026-02-25 13:14, Andrew Cooper wrote:
>> On 23/02/2026 7:26 am, Roberto Bagnara wrote: 
>>>
>>> Note that in recent versions of MISRA C that rule is no longer
>>> mandatory.  More generally, note also that, IMHO, switching to
>>> a more modern version of MISRA C would simplify compliance.
>>
>> Ok.  Making things simpler for compliance sounds like a good thing. 
>> What would this entail?
>>
>> Presumably we've got to adapt to all changes in this newer revision of
>> MISRA C.
>>
>> ~Andrew
>
> Most likely new violations on new non-clean guidelines, generally
> rules for features that were standardized in C11/C18 and were
> previously widely available extensions (e.g. _Noreturn, _Alignof,
> threads, ...), 

We use noreturn a lot, and alignof() a little.  No threading at all
(well - not as C understands it).

> alongside some minor changes in existing ones, such as the
> classification change mentioned by Roberto. The exact impact depends
> on the target MISRA revision, however. Making an experiment should be
> only a matter of s/MC3A2/MC4/ (or whichever MISRA revision is chosen:
> MC4 in ECLAIR refers to the latest published MISRA revision, that is,
> MISRA C:2025. Perhaps also a few regressions (as in newly introduced
> violations) on clean ones, but I do not expect the results to be
> radically different.
>
> Side note here: are the efforts to make Xen compile with
> -stc=c11/gnu11 still ongoing? I say this because any MISRA revision
> other than the one currently used by Xen by default is based on C11,
> as it introduces guidelines for C11/C18 features. Not that this would
> matter a whole lot for Xen, but it is something to consider in the
> broader picture.
>

Funny you should ask.  I had a paragraph about it in my reply but
dropped it, thinking it was getting off track.

https://gitlab.com/xen-project/xen/-/issues/201

I've just updated it to note that we did start using auto, by way of the
__auto_type language extension.

>From the Xen side, switching to gnu11 is a one-line change.  However
"ongoing" is really just me in my copious free time, and I'm not able to
do the ECLAIR/MISRA config side of the work.

It sounds to me like we want a dedicated work item switch to gnu11 and
some newer MISRA revision, but I will have to defer to you on how large
a task this is.

I suppose we should start with an experiment to see what shows up in the
*-amd target builds, and go from there?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 12:59:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 12:59:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240732.1542015 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvEUa-0006bn-2v; Wed, 25 Feb 2026 12:59:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240732.1542015; Wed, 25 Feb 2026 12:59: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 1vvEUa-0006bg-0O; Wed, 25 Feb 2026 12:59:52 +0000
Received: by outflank-mailman (input) for mailman id 1240732;
 Wed, 25 Feb 2026 12:59: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=xecS=A5=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vvEUY-0006bY-9i
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 12:59:50 +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 db087ef3-1249-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 13:59:44 +0100 (CET)
Received: by mail-wm1-x336.google.com with SMTP id
 5b1f17b1804b1-482f454be5bso8272965e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 04:59:44 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd732eb1sm69925795e9.12.2026.02.25.04.59.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 25 Feb 2026 04:59:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: db087ef3-1249-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772024383; x=1772629183; 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=wILc9CGEf1WIqbCiw3qNVsNe1/HTYv9pl3xfzMp11zI=;
        b=InEI5je8+7v+78AqYekmmp7ZYvejFrqlqQ0Aai4jVVCpC/vZjhZg7m+msJTCOskJX9
         DtwEyJT6fUa63+Eq9Jcb4MS9Ru1YUQR56+bwhyD/kkBDVs0IiYfqpg48s9anzU7ee00G
         hcgiFIdUUQ79ogh9Tfjag5qlIWtoGZApfTOBk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772024383; x=1772629183;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wILc9CGEf1WIqbCiw3qNVsNe1/HTYv9pl3xfzMp11zI=;
        b=EEaf6YHFkPbsW113BydjExD6TDcxCDZTWJ9uNJtVjbm6z0d6QAPizW9Rc7+uIpU3G1
         NbzM/tHCapjtOahLLgAF4qingMfn7GK6TD0+BFDXs1mTcO2s5Di9grJb5qSvEzsteloM
         MaLGFCl6DP4dxUCK6h/QAwTQ9u4Qi74f6jmNcWf/M2qi2bW7EcsyJ26hHeFBRMURqiRi
         qnaIjq0wcKOLJ1OR+SPvZ46n+zTe6gH7CU90p5toa414Ff662i6JcsDBZ16uiUqy7CCJ
         M3x4k2AOQwdZY9H1DBo2AeEE+ox98Cn7bpIgK52jLsa6GpuGQyV4ePW4hR3h3/05cP/S
         zqUw==
X-Gm-Message-State: AOJu0Yxf1ap7o0kryIsqEA4gjKaKgBupyfvdoB9pIbdiWIN2FBVZ2y0A
	xXPMYN4lX3hlqA0l418F+R7YL0eYZVjFm7PwWxpu9aHiWzjg+Pxw1zkleBLibAwLN2/i7iYFIID
	R9L2s
X-Gm-Gg: ATEYQzwL+hz1KiaDfeAK5reuutl1A/99aosr3ktjGYBj88Ldm754/g4PFvivt4mcvV2
	v4RzvLgTcZQSHMv/4vTY/AVHSv6nYF9YBpea3DXpvOjgpFGlqGMpG9Kk7Dl3JwnGtNx3CayDwyC
	n6TqJO8zgmcI3z3Rzsld1vpX7XXs160t0x9YdmFRoOitsvHJv4Rp+S7jOI2BoZkl9TlmXJ4IiWo
	HKvW+8iVK/79wqEpH1jpMDTnZlJvstRJNDHFcgyz3RzWxAcKltk/dJmFFjE6SoutjsnE8Iw/1yD
	gDxQlmbsmIzYWLP/HHejb09qlr+2bSeRM3uBUzyGGfhntBVwZGAOJI7KFGc28H0t7XEiF0NjC/i
	TLudRfhgM/bXfdnOhkigU4lSWnIzxd2AfpyH1AZef3k08llGWD0OHiFXQCoOlXAMieGTg8iMPhu
	gCgeTZnQeTtZ74tkqnCRIcHV3oJunsdgMyu8jy94CJMJ+YxMTehVnRly8ZOklSRNCa+JHr1pA=
X-Received: by 2002:a05:600c:21d4:b0:483:7eeb:4558 with SMTP id 5b1f17b1804b1-483bd713d0bmr45333455e9.2.1772024382569;
        Wed, 25 Feb 2026 04:59:42 -0800 (PST)
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>
Subject: [PATCH] xen/mm: Remove claim that INVALID_{MFN,GFN}_INITIALIZER is for older toolchains
Date: Wed, 25 Feb 2026 12:59:40 +0000
Message-Id: <20260225125940.3804137-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 was never because of a bug in GCC.

C requires that static objects are initialised with constant expressions;
_mfn(), as a static inline, is not and cannot be made to be.

Correct the comments.  No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Jan Beulich <jbeulich@suse.com>
CC: Julien Grall <julien@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>

Slightly RFC.  I left 'global variable' alone in the comment, because C's
"object with static storage durations" also isn't ideal; there's one user
which is non-static in terms of visibility.  I'm open to adjusting if we can
figure out some better wording.

In C++, we'd just make _mfn() be constexpr.  It turns out that C23 added this
keyword but restricted it to objects and therefore useless.

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3018.htm literally admits
that constexpr on objects exists only to force some diagnostics which were
previously optional.
---
 xen/include/xen/mm-frame.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/xen/include/xen/mm-frame.h b/xen/include/xen/mm-frame.h
index d973aec901fa..80885415a78a 100644
--- a/xen/include/xen/mm-frame.h
+++ b/xen/include/xen/mm-frame.h
@@ -9,8 +9,7 @@ TYPE_SAFE(unsigned long, mfn);
 #define INVALID_MFN_RAW  (~0UL)
 #define INVALID_MFN      _mfn(INVALID_MFN_RAW)
 /*
- * To be used for global variable initialization. This workaround a bug
- * in GCC < 5.0.
+ * To be used for global variable initialization.
  */
 #define INVALID_MFN_INITIALIZER { INVALID_MFN_RAW }
 
@@ -45,8 +44,7 @@ TYPE_SAFE(unsigned long, gfn);
 #define INVALID_GFN_RAW  (~0UL)
 #define INVALID_GFN      _gfn(INVALID_GFN_RAW)
 /*
- * To be used for global variable initialization. This workaround a bug
- * in GCC < 5.0 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64856
+ * To be used for global variable initialization.
  */
 #define INVALID_GFN_INITIALIZER { INVALID_GFN_RAW }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 13:09:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 13:09:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240745.1542026 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvEe7-0008K2-0a; Wed, 25 Feb 2026 13:09:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240745.1542026; Wed, 25 Feb 2026 13:09: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 1vvEe6-0008Jv-UE; Wed, 25 Feb 2026 13:09:42 +0000
Received: by outflank-mailman (input) for mailman id 1240745;
 Wed, 25 Feb 2026 13:09: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=j5m4=A5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vvEe6-0008Jp-Ct
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 13:09:42 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3e2c0186-124b-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 14:09:40 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 475754EE7811;
 Wed, 25 Feb 2026 14:09:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e2c0186-124b-11f1-9ccf-f158ae23cfc8
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=1772024979;
	b=toAJGV4kmjabV7WLfmxtdNs9k1d2Lwhmo4tUgvobbMMOZfwtOO5P2UNNaMAfF44/FNct
	 U3/JJgPZC4gMYptoZdK9ZQawNfxG5DPNFCdxTA9Wq7dwyrR19c78QMitPgkI3+IqbHOzG
	 YyMVGkRskik+IBpkSgG3Cd4GzbCRQ+on1mUFbLsQ3S9JOzWErddIBk+8X3Snuc/T6EvT+
	 rlZEIS8R6W3LhIJk1917svuRvyWoPsNCvFPdjwnFevoHHIeDSIuvpD4adD+qLYjoICXEf
	 NFj3bKL7i/OSoqpCD1rouyPELXbMi6AEYDFp+kJDcd4tibmR4NFhe7wx4ugPiCAHBFAjL
	 z6jeeZp2adfyNc74ahlG6l5sJfc1U/o5pQOP8dhck5GhtiTQquONi0mgZS1naBqs1jtJf
	 2VQ3zMuWdTcK43ZZRRWUYYX2h1jcI47In3bm5lFlTsHBB42hEBUJcfRdi//Q91fr3x0Ll
	 nqb7wSx2RWyGLk+R3pHQOcdlNl/3uGvKP5ksBAY02qnMjAHMoaS02pUynq/3MFAZsV3kV
	 Fp1kc/mo1s3ivRivVkYo096hZ5CnwzXuF+WM+hN48Q1N07uKtCzKG8X8uPa9N6FONwvzK
	 F2T3qHhxsmNdmQTIlDVirrhy3KXBQGcH4Mjh3r0mpeAadPttkS6fW5g0CO0jWEI=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1772024979;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=Zt7RKiHU+N4gsCRwFu2kQi2hB4godiYmnjsKiBEsFl8=;
	b=Cw5cySwW/J4cxMbF2ByAiITItHvzIC5x6Fr5tkCSRz2SxieE9B6LmY7qpxtFXXeOtwSz
	 o5OnJ9makcuMI4/GazM/lVG/gCfSfZtj3qGtmysmBSnOfFFtVyLO5ARMSyEDZ9nWH6407
	 ebG1+WttuMGh5Tm1khDgB5rzK11DZtB+EzkVA90FwOYjfzrt7GFAwcJHQeoY7ZTAoLglk
	 CPxStZozoMkIu1RHoyfpmDn7fatOl/sQBSAcgWwzqEWsWDgTmViABfg1JMsgKBGGqcSLt
	 6c2zF7+WtkeKLeVHk96LLK8DL6glEAjOGPFxxFiu0REbvl/disiUPzy0EoCoo46OlpOP6
	 rDsITq3+yQMc44PHGdWFN2nFhbsEm69fBBPgffUYY5IraSh6wfW8Ek07sBrC/1y3VCVPQ
	 9hrHObiNLonu2LGc8k9RIwzhNXJVo6JZqcKMGjqiqmA+LngeuGz3uH1eXwlhkhX/yqISy
	 Djya90a/4GXAc+/sbLLStKlNwmia7YXS7fd9/Ta4Bp45NIXPeb7gOSd61bsKCRGua4C6c
	 ksQuulqRAMQeos+Sxnd5MQGJakFq2DSbSIpwOubSPqGeT6clHzGTvQ2kca/yzN4XApxWg
	 BtB7zzPMOa3NCSribuHdjrywk66k98LqYkbPGexmeZukoccEVxsp4usFTDUlFpY=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 25 Feb 2026 14:09:39 +0100
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Roberto Bagnara <roberto.bagnara@bugseng.com>, Xen-devel
 <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, 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>, "consulting @ bugseng . com"
 <consulting@bugseng.com>
Subject: Re: [PATCH 09/12] x86/shadow: Rework write_atomic() call in
 shadow_write_entries()
In-Reply-To: <c73f3627-73e0-4f36-9085-6c85951c2b0a@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-10-andrew.cooper3@citrix.com>
 <0148ea9f-6486-44a1-b4dd-47af7c978351@bugseng.com>
 <278f711d-7c61-4a47-868e-ab05b9426e40@citrix.com>
 <678f1a67603d4b37d717dc84565db044@bugseng.com>
 <c73f3627-73e0-4f36-9085-6c85951c2b0a@citrix.com>
Message-ID: <225c04a554ededd04fd6edacf34fd2c6@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 2026-02-25 13:53, Andrew Cooper wrote:
> On 25/02/2026 12:35 pm, Nicola Vetrini wrote:
>> On 2026-02-25 13:14, Andrew Cooper wrote:
>>> On 23/02/2026 7:26 am, Roberto Bagnara wrote: 
>>>> 
>>>> Note that in recent versions of MISRA C that rule is no longer
>>>> mandatory.  More generally, note also that, IMHO, switching to
>>>> a more modern version of MISRA C would simplify compliance.
>>> 
>>> Ok.  Making things simpler for compliance sounds like a good thing. 
>>> What would this entail?
>>> 
>>> Presumably we've got to adapt to all changes in this newer revision 
>>> of
>>> MISRA C.
>>> 
>>> ~Andrew
>> 
>> Most likely new violations on new non-clean guidelines, generally
>> rules for features that were standardized in C11/C18 and were
>> previously widely available extensions (e.g. _Noreturn, _Alignof,
>> threads, ...), 
> 
> We use noreturn a lot, and alignof() a little.  No threading at all
> (well - not as C understands it).
> 
>> alongside some minor changes in existing ones, such as the
>> classification change mentioned by Roberto. The exact impact depends
>> on the target MISRA revision, however. Making an experiment should be
>> only a matter of s/MC3A2/MC4/ (or whichever MISRA revision is chosen:
>> MC4 in ECLAIR refers to the latest published MISRA revision, that is,
>> MISRA C:2025. Perhaps also a few regressions (as in newly introduced
>> violations) on clean ones, but I do not expect the results to be
>> radically different.
>> 
>> Side note here: are the efforts to make Xen compile with
>> -stc=c11/gnu11 still ongoing? I say this because any MISRA revision
>> other than the one currently used by Xen by default is based on C11,
>> as it introduces guidelines for C11/C18 features. Not that this would
>> matter a whole lot for Xen, but it is something to consider in the
>> broader picture.
>> 
> 
> Funny you should ask.  I had a paragraph about it in my reply but
> dropped it, thinking it was getting off track.
> 
> https://gitlab.com/xen-project/xen/-/issues/201
> 
> I've just updated it to note that we did start using auto, by way of 
> the
> __auto_type language extension.
> 
> From the Xen side, switching to gnu11 is a one-line change.  However
> "ongoing" is really just me in my copious free time, and I'm not able 
> to
> do the ECLAIR/MISRA config side of the work.
> 
> It sounds to me like we want a dedicated work item switch to gnu11 and
> some newer MISRA revision, but I will have to defer to you on how large
> a task this is.
> 
> I suppose we should start with an experiment to see what shows up in 
> the
> *-amd target builds, and go from there?
> 

Yes, that's sensible. I just wasn't sure if there were other gotchas in 
Xen still to be addressed before using gnu11

> ~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 Wed Feb 25 14:15:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 14:15:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240787.1542056 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvFfd-0008L2-Tf; Wed, 25 Feb 2026 14:15:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240787.1542056; Wed, 25 Feb 2026 14:15: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 1vvFfd-0008Kv-Pz; Wed, 25 Feb 2026 14:15:21 +0000
Received: by outflank-mailman (input) for mailman id 1240787;
 Wed, 25 Feb 2026 14:15: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=g5s2=A5=bounce.vates.tech=bounce-md_30504962.699f03f1.v1-bb8b06444c3d4478bbb10018a210ef0e@srs-se1.protection.inumbo.net>)
 id 1vvFfc-0008Kp-OQ
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 14:15:20 +0000
Received: from mail186-12.suw21.mandrillapp.com
 (mail186-12.suw21.mandrillapp.com [198.2.186.12])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 672a1816-1254-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 15:15:15 +0100 (CET)
Received: from pmta10.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail186-12.suw21.mandrillapp.com (Mailchimp) with ESMTP id
 4fLc754YW4z705b0c
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 14:15:13 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 bb8b06444c3d4478bbb10018a210ef0e; Wed, 25 Feb 2026 14:15: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: 672a1816-1254-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772028913; x=1772298913;
	bh=JGWN5jkvYY71URPpUEe8IqNYzfuwlhJJo5SoK8DxtuE=;
	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=mrQYZ+wLz3+s8KQfcz1wlvRqwPY2981AKwC5KfmyCxtxLLBEWuSKhx9f08TbbkDq1
	 NfCSFzyiuwObIT3eL2UWvi8przDLX3Mx5rWiy8Vm9IvxmVXwW9AXdeQVbITL7HxC3+
	 y2kFoO7OS9kGPJ0iaTgNigdjwvvMyUOcReCLts+Gkfo1yls+lGxrCDjYlnvL/YUTai
	 QWx1fu5KWOeqW7PueZgH+AYVj4WAQUMhQgH3JO8tI8qYLRtgr+iiLoCcAOxhiiyUSZ
	 cSNF5PZdvcOrDYyKbsS8Em3H3k1bAJrHEDVbT0v5ObehW43sBC2AuSHEAvI2Mv2Bm1
	 8tJXBz6pyh92g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772028913; x=1772289413; i=anthony.perard@vates.tech;
	bh=JGWN5jkvYY71URPpUEe8IqNYzfuwlhJJo5SoK8DxtuE=;
	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=AcQKiMCxQUIAeBH7dfLDpDZq/kNVQUxxH+imVfuCGpYYGYnOA0XEj6Y/0gE8frYsC
	 JraFLRnt5w8o+slNa6aqblHfTyK8m4DQWFTemrAnLSgTPLPojmiw/ZKzgrynbRo2De
	 5mys8E34LNI8ee3Lrj0FWf0pyfJqKg/DE2j4Df4T96XUmstTOBCGkbdIpCfEb8fjhG
	 Esbnxy0zrFDpZUO7CmLWwdf5xlWKU695JzuDxkwjoKbFBgT6JemD2PsCVhcTZ1N9FK
	 HZerd7EA+dDIetd8cS52ITLEWdbIVF0AJfJnOhkp4sPytYG/oh0AqWmAYJApDUxZH8
	 whUbyP6XOadAw==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=205/5]=20accel/xen:=20Build=20without=20target-specific=20knowledge?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772028911983
To: "=?utf-8?Q?Philippe=20Mathieu-Daud=C3=A9?=" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, "Pierrick Bouvier" <pierrick.bouvier@linaro.org>, "Paolo Bonzini" <pbonzini@redhat.com>, xen-devel@lists.xenproject.org, "Stefano Stabellini" <sstabellini@kernel.org>, "Anthony PERARD" <anthony@xenproject.org>, "Paul Durrant" <paul@xen.org>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Message-Id: <aZ8D77iyFtqyGF18@l14>
References: <20260225051303.91614-1-philmd@linaro.org> <20260225051303.91614-6-philmd@linaro.org>
In-Reply-To: <20260225051303.91614-6-philmd@linaro.org>
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.bb8b06444c3d4478bbb10018a210ef0e?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260225:md
Date: Wed, 25 Feb 2026 14:15:13 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Wed, Feb 25, 2026 at 06:13:03AM +0100, Philippe Mathieu-Daud=C3=A9 wrote=
:
> Code in accel/ aims to be target-agnostic. Enforce that
> by moving the MSHV file units to system_ss[], which is

You mean Xen    ^ here ?

> target-agnostic.
> 
> Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>

In anycase, it seems to works fine for me:
Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Feb 25 14:34:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 14:34:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240808.1542066 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvFyJ-0002gc-Ck; Wed, 25 Feb 2026 14:34:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240808.1542066; Wed, 25 Feb 2026 14: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 1vvFyJ-0002gV-9F; Wed, 25 Feb 2026 14:34:39 +0000
Received: by outflank-mailman (input) for mailman id 1240808;
 Wed, 25 Feb 2026 14: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvFyH-0002gP-TW
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 14:34:37 +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 1b929ed7-1257-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 15:34:37 +0100 (CET)
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-4836f4cbe0bso53050775e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 06:34:35 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd7507adsm83617765e9.9.2026.02.25.06.34.34
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 06:34:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1b929ed7-1257-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772030075; x=1772634875; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=iP5HgEAXpslH7lN6fSaLfG7kjbgS78lSt+LYK48Ahpc=;
        b=dzNJzxsxkSs3lPpN9tmGO9ukpQ+zsyFjyz+sZfoBsCSrtNS+c7GWItJLLU4jq0JbCR
         jBh9jMi2onBk1ts2mDTKah7oGVdFwSvHcOF8j2syQPVWBbL+K5Oz0/6nBXb2s0HN2xo8
         76AwFEcP/SVvPN7GT0pTbu7kZ2b90EFA48kSXohxU4/UXeiU2VMKa75m0HmeJ5PwXgxE
         yBFdFqaIbLQHFU/iSJR6uYt5hvlb3DxLnI4ohv0enr5Lus46XXiYx0D5YB8zHlu2h9+G
         DWrQf6mSn8eevsPu1zqm+/H3WDtV7hVunbWs2x/11UCNX6mBLQMq0YlhNzT4NqMU04Kx
         wTLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772030075; x=1772634875;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=iP5HgEAXpslH7lN6fSaLfG7kjbgS78lSt+LYK48Ahpc=;
        b=IKcBYFOXYSVqeLN6Fq6zRc/HoiIi2N+Gda1kxqI9mbPyUSYcRZkEdlq+e+R0J2xXlD
         5T9gq+/Z6MBjy5WBriQ/qAoIsNY7deFyQesN5ElegPbKQ49S2ZozMqzgXwr1iQ0u9Rml
         VfEnn2hrH+SE5wpNzGGp5iNLWx6V6U3Qgp8SjJ6A58gaS1m+VTWFSnc6+DuzfTsKaTLX
         4eKYuOIJQqj1iNNzTc45gc7ckEv57fgbVycOcf5IuAULmmJ3EJeS4boDsMIt+fbrQK84
         P44K0M79IJail1Uqm9tVn52OwGt/RiWR5tBlwdCqHLNjY1rNv5bhdG8sP+bjqBYfJnVC
         rhfg==
X-Forwarded-Encrypted: i=1; AJvYcCU1sTduN8ParPcLlU0XFwRtUUtRy0lOFoFm/E5RLVMIZCIxQeLnouEHQT5bpM67xTeCYYt8DX1jdhk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxrX2QoRuIRRziN7p96FATQMvqFcQeXifxCE2evu880MbVsiVX5
	SMLnNqhyV5ulEGeGKRUe6HzGju1BdUOsmz3a7QO5huNpDTeR0PCple4gGTMYBAQfaw==
X-Gm-Gg: ATEYQzwc54++aApPBF4LqjMUbuhbJyyXEtZ/+L7YcEq1oN8wpNULGyoTHneAtd6LYYq
	9hqMjt+zmq3Z8kienCuGI8hrmibugz4SsLyrElbBYgPb7Qs4q47bPp30E325RdIuZRet8P21/VS
	C7gfD+2RMhOxV4Jctn8pRvKFh9/XurUQYT1bQ9hbvIRn2vipKzvFqz0n75Rd38PNuA5wEGGVnGN
	8rQGu2cgmp0TduYk0tOO4Dn2mLyz06SKc5HRrKNXAG7Kpxx4unCajsdl8zFPrZgYVk6M+5bnf9e
	o61Sw2L50In2fNaIn7dJMsv942CCpPY9QWMyRUI49/7hvm+kmB9Em7j2NPcQB8cdUgStogaVcSh
	kG1uQ6QplhEH/GlMS0u7drHHpd5afbsX7507RmjTerc/gKz4Mvt0pF0UV/VgofnDF/tPY6qqznE
	Z548lre8vuGkjp56mw+7mTom7aZ7lvF67OjV/D5aOQhIVzg3FicVx/D69EtiY+wspLxB8RRLAMg
	O1hdEwayW6o6sXJXvY+0HkCyQ==
X-Received: by 2002:a05:600c:1d19:b0:477:abea:9028 with SMTP id 5b1f17b1804b1-483a95a9d86mr260901575e9.6.1772030075226;
        Wed, 25 Feb 2026 06:34:35 -0800 (PST)
Message-ID: <46a711cb-1853-44f6-a9a5-4d6252a8a995@suse.com>
Date: Wed, 25 Feb 2026 15:34:33 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/mm: Remove claim that INVALID_{MFN,GFN}_INITIALIZER
 is for older toolchains
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260225125940.3804137-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: <20260225125940.3804137-1-andrew.cooper3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.02.2026 13:59, Andrew Cooper wrote:
> This was never because of a bug in GCC.
> 
> C requires that static objects are initialised with constant expressions;
> _mfn(), as a static inline, is not and cannot be made to be.

Of course, and I think the comments were meant differently. What wasn't possible
to use (with -std=gnu99) due to the referenced bug is apparently

#define INVALID_GFN ((gfn_t){ ~0UL })

Now that gcc5 is our baseline, do we perhaps want to use that and do away with
INVALID_GFN_INITIALIZER?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 14:43:53 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 14:43:53 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240820.1542076 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvG7A-0004JA-5D; Wed, 25 Feb 2026 14:43:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240820.1542076; Wed, 25 Feb 2026 14:43:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvG7A-0004J3-2X; Wed, 25 Feb 2026 14:43:48 +0000
Received: by outflank-mailman (input) for mailman id 1240820;
 Wed, 25 Feb 2026 14:43: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=bZsK=A5=bounce.vates.tech=bounce-md_30504962.699f0a9b.v1-a30e3c04f63547d1b1ad5ba6c8d26352@srs-se1.protection.inumbo.net>)
 id 1vvG78-0004Ix-SV
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 14:43:46 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 6012b9a8-1258-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 15:43:41 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fLclv3V1Dz5QkLc9
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 14:43:39 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 a30e3c04f63547d1b1ad5ba6c8d26352; Wed, 25 Feb 2026 14:43: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: 6012b9a8-1258-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772030619; x=1772300619;
	bh=NVNJ7jOt8+RQyYSunDDdQZVJhSiMVIUPRFpoqvc90YQ=;
	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=qTF3KkhoiXVnXmX8S2Y0sQFEq3rrN34jhrx0DvAASAgwJqhUFQvjSXVOygKdIpD2v
	 RESigaV2vk44lzohnUKoovcmc0j88NkJ5/zep+Vcvndp2Q+w099taL0s+VeXkxqrxa
	 jAJAtchtLp8fVMwB6IcSldI9CX231X//GVHlYGxZrW3POjMyO00n529gBw1arrW/e2
	 xFLoT30hwbLBRKb0fXQbK5uuW2Ypeur79gzpDLYGBduabotceqAWZ7jPxCiu1RuW7V
	 j5PBXXtOk7Z/H7Xd4uMFczjs/cFuSeyfcXq8cMEKDS5dS12TK5H0OCmRzVDmoCcNFA
	 B7oSL3SLqUOzg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772030619; x=1772291119; i=anthony.perard@vates.tech;
	bh=NVNJ7jOt8+RQyYSunDDdQZVJhSiMVIUPRFpoqvc90YQ=;
	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=Pq0hu87OT1TEXiPM5M+/RMxFhE9/fRs5KAispnXrrPdERAHh2aBp7zHaBu1qFxBoW
	 EjEjsI5Gccf86lIObAe4Cin5bO87uQ3gKDYSrhUbT+aJg5An+aNysmnDb4fjAj1w7U
	 OQ8fVNeNO0bpSMMnld+hH+DAjfwmECtJ9usmUVErzu/6kkoWYWUTyonBfZBEj0Uyu5
	 xH+tAzL65Yg4DIOtcUpy8YMMpWaBwnu8wgmSnRUnR8cavGvwoqxMYoz6nSSmO1XNA4
	 4qErosE6Jy7BTjB9VKlpnC5pdJznr2FJuDMkt0xadXPKOeNKGMjOX7DRUVG19kwmby
	 Ah0/NcMGfFFXg==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v3]=20libxl:=20constify=20some=20local=20variables=20for=20building=20with=20glibc=202.43?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772030618736
To: "=?utf-8?Q?Marek=20Marczykowski-G=C3=B3recki?=" <marmarek@invisiblethingslab.com>
Cc: xen-devel@lists.xenproject.org, "Juergen Gross" <jgross@suse.com>
Message-Id: <aZ8Kmg3bV-dIEu0A@l14>
References: <20260220121220.52078-1-marmarek@invisiblethingslab.com>
In-Reply-To: <20260220121220.52078-1-marmarek@invisiblethingslab.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.a30e3c04f63547d1b1ad5ba6c8d26352?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260225:md
Date: Wed, 25 Feb 2026 14:43:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Fri, Feb 20, 2026 at 01:12:00PM +0100, Marek Marczykowski-G=C3=B3recki w=
rote:
> Archlinux just updated glibc to 2.43+r5+g856c426a7534-1 and that
> causes libxl build failure:
> 
>     libxl_cpuid.c: In function =E2=80=98libxl_cpuid_parse_config_xend=E2=
=80=99:
>     libxl_cpuid.c:447:16: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       447 |         endptr =3D strchr(str, '=3D');
>           |                ^
>     libxl_cpuid.c:452:16: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       452 |         endptr =3D strchr(str, ',');
>           |                ^
>     libxl_cpuid.c:454:20: error: assignment discards =E2=80=98const=E2=80=
=99 qualifier from pointer target type [-Werror=3Ddiscarded-qualifiers]
>       454 |             endptr =3D strchr(str, 0);
>           |                    ^
>     cc1: all warnings being treated as errors
> 
> Add missing consts. Note in libxl_cpuid_parse_config_xend() non-const
> endptr still is needed, to be compatible with the second argument to
> strtoul(). Add second variable for this reason.
> 
> And while at it, move semicolon to its own line
> 
> Signed-off-by: Marek Marczykowski-G=C3=B3recki <marmarek@invisiblethingsl=
ab.com>

Acked-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Wed Feb 25 15:27:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 15:27:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240841.1542093 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvGnD-00016L-23; Wed, 25 Feb 2026 15:27:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240841.1542093; Wed, 25 Feb 2026 15:27: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 1vvGnC-00016E-VV; Wed, 25 Feb 2026 15:27:14 +0000
Received: by outflank-mailman (input) for mailman id 1240841;
 Wed, 25 Feb 2026 15:27: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvGnB-000168-81
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 15:27:13 +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 7415d1e0-125e-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 16:27:11 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-48378136adcso41116055e9.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 07:27:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd75dfaasm67333355e9.12.2026.02.25.07.27.09
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 07:27:09 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7415d1e0-125e-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772033230; x=1772638030; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=4bpjFmnkYs/FrcFDoE+CrigAj8m51DIzQC65q7WJnMc=;
        b=EA+/kWVfO7tYXDLmWF19WVTc2T2tDliUP4PkEB1u6IpX5K+uKwCX5NwEy24Pz2FZcv
         FM0r//Frs3Xetho+U+uSz/oVJI+AVYCUrONM7UBiNie8tDYWEKBP40EZf5qu6StwLCpb
         SMpVRR++ZHrE4fYZVsYhyGsrNmlZW9d8C5gKKZxe3i+EZqBtvU5A50atMW9s/0qOtPZR
         VdmZznBOIRwLQ1mCZ00q6b9J3usiR7aJSJwmoO5ZF9uQqetR62bgdc33qxLvSTNE6PNK
         lBs5WPb6AENi8DO9FLu7CLOk948DNvA5ibdCXTirPCP6TuvwShn9aZng57lpyR5XqnWh
         xZ/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772033230; x=1772638030;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=4bpjFmnkYs/FrcFDoE+CrigAj8m51DIzQC65q7WJnMc=;
        b=Ila7k1JPiPgK8cSeTSPaTvmNRPKqQp6PAm0Rh4cvGgEk1Buipp6uLUDLugmk7/QDjh
         D05usr0RF4PvuaNO41RCzVbVYDcOCvW06FNPqBluCbj28tLtR0G259GTPeiurSuL/Vf7
         x1R3pRY/heBql+utHUgzUVA4VdM3Vbp0wLP+u9ZhoJGye4daliVTFH7YG7AzcYxMBV5+
         qJ/lrQc/gMzsTvctnoggaYfmk++SoukNyQXKKxy1OabMWcylYVZ+/fyfGS/LqVR88GJ3
         s3lv4Gg0/HkOguzcDhGa3iEhu60lJ9ab2TvL44dG/sb5fyJTdT7xllVr+A1F/DWZr8mc
         Iv5w==
X-Forwarded-Encrypted: i=1; AJvYcCXRnx87oMZbqsbnXBnihuR6vHv561p691dxpZXDQj3UX+PFomNF98UCuAXDlsw7szmUbAR72g+g7D0=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwTC34Azmb78NwCQTX/PPPTAeGBvB9zYAJifG6IXLxMK9ygCGdO
	b87RdnNRKZddrwHX/xvuPW45HQDL46lo8pAShgiO/eSXIufgET9FcCGycMaibTHkLQ==
X-Gm-Gg: ATEYQzzfJgKuAGBRGWfMWDJCSQFmTUMipO4xa8vER5QXc9RAUMI58b4DWicvgnP9JU3
	mWZR8Ub6NZ3sOJ2LxtSVpnYX8hHWQoEnQpNepCthxuvb76f5uURv9QG5slLFuowAg/RhZofGkGj
	oYc49+KCTNK1iSiJRIW2I798DeqQLg+4vjPvujSFaQE2dRp1eIuLZyRu0G1xCXE6P0i6RFyNP5+
	DRZED182Kt2RqwSvhAzofC2QNU1T4qk9ophGnEZ6m06jLC3KxB490HMXBl1BCuF5Ybfvu05bTbO
	emtAn2JiJBTKYukFMxS0K0Wk4NKqLdoSO+24I73l9vqN6UxCn/aLljjlT0mEIxX+yuJPMNGqFCR
	8wpkPPJ2pbGEgmaA5oJg6piYzyFMuMYTt+w1iFcZqvBeTuCOZocQx4QrBzDs6Sxk3fAnAfhlINs
	obKOX4n1aBsqVkOcc5wz8+6MqpE3Hv2M1zhrdPRgGL9BNEw8dPerrnL1pwGxf+3BooFQeL3Fe7X
	ls2oplwzKdLtrY=
X-Received: by 2002:a05:600c:6815:b0:483:7783:537b with SMTP id 5b1f17b1804b1-483c21a54d7mr14850905e9.24.1772033230216;
        Wed, 25 Feb 2026 07:27:10 -0800 (PST)
Message-ID: <df1fd921-e845-48e3-ad0e-0c2571f8634b@suse.com>
Date: Wed, 25 Feb 2026 16:27:08 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v2] x86/hvm: Advertise and support extended destination
 IDs for MSI/IO-APIC
To: Julian Vetter <julian.vetter@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: <20260223084644.471531-1-julian.vetter@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: <20260223084644.471531-1-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.02.2026 09:46, Julian Vetter wrote:
> x2APIC guests with more than 128 vCPUs have APIC IDs above 255, but MSI
> addresses and IO-APIC RTEs only provide an 8-bit destination field.
> Without extended destination ID support, Linux limits the maximum usable
> APIC ID to 255, refusing to bring up vCPUs beyond that limit. So,
> advertise XEN_HVM_CPUID_EXT_DEST_ID in the HVM hypervisor CPUID leaf,
> signalling that guests may use MSI address bits 11:5 and IO-APIC RTE
> bits 55:49 as additional high destination ID bits. This expands the
> destination ID from 8 to 15 bits.

Should MSI and IO-APIC really be covered by just a single bit?

> --- a/xen/arch/x86/hvm/irq.c
> +++ b/xen/arch/x86/hvm/irq.c
> @@ -374,7 +374,16 @@ int hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq)
>  int hvm_inject_msi(struct domain *d, uint64_t addr, uint32_t data)
>  {
>      uint32_t tmp = (uint32_t) addr;
> -    uint8_t  dest = (tmp & MSI_ADDR_DEST_ID_MASK) >> MSI_ADDR_DEST_ID_SHIFT;
> +    /*
> +     * Standard MSI destination address bits 19:12 (8 bits).
> +     * Extended MSI destination address bits 11:5 (7 more bits).
> +     *
> +     * As XEN_HVM_CPUID_EXT_DEST_ID is advertised, the guest may use bits 11:5
> +     * for high destination ID bits, expanding to 15 bits total. Guests unaware
> +     * of this feature set these bits to 0, so this is backwards-compatible.

Is it? Any of the bits being non-zero would presently be ignored, afaics.
I think this needs to be two-way negotiation: Xen advertises the capability,
and the guest has to actively opt in. (Didn't Roger say something along these
lines already?) Also don't you need to restrict use of the wider IDs to
vCPU-s actually running in x2APIC mode? (And what is going to happen if a
vCPU switches back to legacy mode?)

> +     */
> +    uint32_t dest = (MASK_EXTR(tmp, MSI_ADDR_EXT_DEST_ID_MASK) << 8) |

The literal 8 here and again ...

> @@ -411,7 +413,8 @@ static void ioapic_inj_irq(
>  
>  static void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
>  {
> -    uint16_t dest = vioapic->redirtbl[pin].fields.dest_id;
> +    uint32_t dest = ((uint32_t)vioapic->redirtbl[pin].fields.ext_dest_id << 8) |

... here also would want dealing with, I guess. Use of literal numbers really
should be an exception.

> @@ -594,6 +597,49 @@ int vioapic_get_trigger_mode(const struct domain *d, unsigned int gsi)
>      return vioapic->redirtbl[pin].fields.trig_mode;
>  }
>  
> +static int cf_check ioapic_check(const struct domain *d, hvm_domain_context_t *h)
> +{
> +    const HVM_SAVE_TYPE(IOAPIC) *s = hvm_get_entry(IOAPIC, h);
> +    unsigned int i;
> +
> +    if ( !s )
> +        return -ENODATA;
> +
> +    for ( i = 0; i < ARRAY_SIZE(s->redirtbl); i++ )
> +    {
> +        struct cpuid_leaf res;
> +
> +        /* ext_dest_id bits not set in RTE so continue */
> +        if ( !s->redirtbl[i].fields.ext_dest_id )
> +            continue;
> +
> +        /*
> +         * An RTE in the saved state has ext_dest_id bits set, verify the
> +         * destination XEN advertises XEN_HVM_CPUID_EXT_DEST_ID to the guest.
> +         * If not interrupt routing to APIC IDs > 255 would be broken after
> +         * restore -> -EINVAL!
> +         */
> +        guest_cpuid(d->vcpu[0], 0x40000004, 0, &res);
> +        if ( !(res.a & XEN_HVM_CPUID_EXT_DEST_ID) )
> +        {
> +            printk(XENLOG_G_ERR "HVM restore: dom%d IO-APIC RTE %u has "
> +                                "extended destination ID bits set but "
> +                                "XEN_HVM_CPUID_EXT_DEST_ID is not advertised\n",
> +                                d->domain_id, i);
> +            return -EINVAL;
> +        }
> +
> +        /*
> +         * Found an RTE with ext_dest bits set, but the destination XEN also
> +         * correctly announces XEN_HVM_CPUID_EXT_DEST_ID
> +         * -> All good, no need to check remaining RTEs.
> +         */
> +        break;
> +    }
> +
> +    return 0;
> +}

As indicated before, I think there wants to be a prereq patch introducing
ioapic_check() (preferably covering whatever other bits as well), with the
patch here then merely making adjustments to the function.

I also don't think you want to call guest_cpuid() here. You set the bit
unconditionally there, so no need to check here. (If it was conditionally
set there, the same condition would want using here. I think you will be
able to find examples of this for some of the other bits.)

Also in new code please no dom%d anymore. We have had %pd for quite some
time.

> --- a/xen/arch/x86/include/asm/msi.h
> +++ b/xen/arch/x86/include/asm/msi.h
> @@ -54,6 +54,8 @@
>  #define	 MSI_ADDR_DEST_ID_MASK		0x00ff000
>  #define  MSI_ADDR_DEST_ID(dest)		(((dest) << MSI_ADDR_DEST_ID_SHIFT) & MSI_ADDR_DEST_ID_MASK)
>  
> +#define MSI_ADDR_EXT_DEST_ID_MASK	0x0000fe0

As this isn't part of any architectural spec, it wants a comment as to
its origin.

> --- a/xen/include/public/arch-x86/hvm/save.h
> +++ b/xen/include/public/arch-x86/hvm/save.h
> @@ -359,7 +359,9 @@ union vioapic_redir_entry
>          uint8_t trig_mode:1;
>          uint8_t mask:1;
>          uint8_t reserve:7;
> -        uint8_t reserved[4];
> +        uint8_t reserved[3];
> +        uint8_t ext_dest_rsvd:1;

Why ext_dest_ as a prefix? Does this field need naming at all?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 15:33:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 15:33:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240854.1542103 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvGsj-0002hu-OT; Wed, 25 Feb 2026 15:32:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240854.1542103; Wed, 25 Feb 2026 15:32: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 1vvGsj-0002hn-LW; Wed, 25 Feb 2026 15:32:57 +0000
Received: by outflank-mailman (input) for mailman id 1240854;
 Wed, 25 Feb 2026 15:32: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvGsi-0002hh-Hi
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 15:32:56 +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 4176d110-125f-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 16:32:55 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so84201315e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 07:32:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d3ff6dsm36514807f8f.25.2026.02.25.07.32.53
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 07:32:53 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4176d110-125f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772033575; x=1772638375; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=3c1u35Jni9xe27dch0rr3wNsKWBIFBxvE0aSzPNp7p8=;
        b=GOCuJ98vfP5QDnDCXfgPjfxNqQ55y4QUds3vHhEuSJTunK21AeexfDhmB/jTz34JGi
         JwhPULEMybrvK1iQ6JHvfZhDk7b5USJXmyHB7Yy/2kKqsWMDuS1fJDwOeqlQIcxg52Hn
         QY5AT+VuCD3vNSFrdd84rf2vUcuaJIOrswojO9nEauHTX8tvn0VJ8WrwNClGILM3K2eZ
         F3Lqs/FIlKa5VXSpOsqSr9JD7L8SqQFPkjukEHU+dHdapfiMYX86pZnhrcO380iNBBM0
         CFNNJk7URrncs6m7qZCiB8JDwiJmurhIm3Mtp/rp/caDdT2lBq+naDngWofskYk0R3or
         X3Dw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772033575; x=1772638375;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=3c1u35Jni9xe27dch0rr3wNsKWBIFBxvE0aSzPNp7p8=;
        b=f6aZhhox/gIWZa15QGm1z/ohK5nT7RJvCLV7O4M0TJzbsqFLtBnMcYYCighbRzi28S
         6udk9Vk99JnO/R+Y9ilIrKNkqOG5mLu1Zi7nrDqHNgtr7Gb53bwdAa19TMUYUiw9raUc
         L2cXH+1C2NMqVaHRfU9A6WFmdIZNN3JBzCrGzxIH26DNn9XvhBZ+KLUMJxFzA9IdPgv3
         Lz1qIgHa7iKa0xq7mfqT4JgXc90Bd1OY65g+jB41j4UTWFh04o1vReuhIpBfmS6S+uto
         7m8UEj4muGrDtT7y2I4Sv8yHVm7KgXXm5dUWLJ+0HDfXMX7x3YCdjDM874bOCXWTcDth
         Wz7w==
X-Forwarded-Encrypted: i=1; AJvYcCUIFOD+6ASCkAb+sRu40IQfh//lJr/QF8kyWefJR1kw8fYZ4l1wwRL4vDW+FnuF6VY3voAH5LTfAoI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwzVmCeX+lI02IZJOJ2Qc0aAsY+wWfOqMmJQa4RuZ/LehHzT8rP
	YpVmeMg5+ieH1iLepvY+5CY/Skccie0i4MFBzTLWQnYX3ks6ii+mcQ0mC9vILi0dVA==
X-Gm-Gg: ATEYQzxZjDAUjs3LdntYyXxNaeY6BunSClsju5UzqfqIzcIUv5HVBHJuC4utYmYw52c
	mH+HDAoYZTfT3YGNQSvtN4zGXCrwqu9ZZPgppc1s0d7NOY7166s20lKcEMrfQs1sKLYEYXwO0EY
	JDlt3cU5gf7FT1tBX0WYTorgg/oUpvVl75ndgASTP/pvyKiLrUgGkBHhx7oIwCuMXtVdkU1qhv2
	TDPPC9tjt2Gg+3u/dLHAonYyOiDznE9gLeoi1hCKz7sSK9YOI2Nea/NHYz0ngEGwUmq2k1BEipE
	URABOjIIfc2p+NaVWF3HL4UIR/OieWMPLA4F/CubIUrc9pCsUaGppXwhsTeVG9tML3NAjXIJS4b
	kNYknRyvMI1KpoWhEvFbLLoY86/2PdLWjM9fOVt6WlxBeTdXPwQW8d5kpnp7XTc4Fzap0uom9tX
	lusuSFC8eQV7s1UQikHDB1xZJ6zxBH4/nGQr9W36f17ITn7rmnbzxpyB5hNcCy6SjB/rNgKxKnx
	ZQZYtf841QNFRM=
X-Received: by 2002:a05:600c:46cd:b0:476:4efc:8ed4 with SMTP id 5b1f17b1804b1-483a95beff3mr301995065e9.11.1772033574004;
        Wed, 25 Feb 2026 07:32:54 -0800 (PST)
Message-ID: <8a015ce9-1d06-441a-8269-c5a81549ac3b@suse.com>
Date: Wed, 25 Feb 2026 16:32:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/vpci: automatically use iomem_permit_access for PCI
 device BARs
To: Ariadne Conill <ariadne@ariadne.space>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Steven Noonan <steven@edera.dev>, xen-devel@lists.xenproject.org,
 Daniel Smith <dpsmith@apertussolutions.com>
References: <20260224231249.6327-1-ariadne@ariadne.space>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260224231249.6327-1-ariadne@ariadne.space>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.02.2026 00:12, Ariadne Conill wrote:
> From: Steven Noonan <steven@edera.dev>
> 
> With vPCI, you shouldn't need to use xen-pciback for the device, so the
> memory access permissions need to be defined somewhere. This allows vPCI
> to automatically define the access permissions so that the domU can map
> the BARs via IOMMU.

What if XSM had something to say about this? IOW no, I don't think this is
permissible. xen-pciback needed or not, that's not where permissions are
granted. It's still the toolstack which needs to do that.

Also you're never undoing the granting of the extra permissions.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 15:37:18 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 15:37:18 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240868.1542114 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvGwv-0003G7-7e; Wed, 25 Feb 2026 15:37:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240868.1542114; Wed, 25 Feb 2026 15:37:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvGwv-0003G0-4h; Wed, 25 Feb 2026 15:37:17 +0000
Received: by outflank-mailman (input) for mailman id 1240868;
 Wed, 25 Feb 2026 15:37: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvGwu-0003Fu-4G
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 15:37:16 +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 dbb11f1b-125f-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 16:37:14 +0100 (CET)
Received: by mail-wm1-x343.google.com with SMTP id
 5b1f17b1804b1-483bd7354efso15618865e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 07:37:14 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd732eb1sm77853495e9.12.2026.02.25.07.37.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 07:37:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dbb11f1b-125f-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772033834; x=1772638634; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=1qaDfXBPKiTNM26B9piz8B6ISKLFBL/GMkt/8xcvKXE=;
        b=GBeVDviaHShRyagDDrlsq0iKSHx+Jo9RRIZsPKe358spW5eATNH44TA0ehJM1fvbnF
         MBbQs5EnHshu0ybZRcah1xV2f4rIEu8lRafzjT1T9lzc/awkjhISb/YNDVwv8cN9xQXe
         +V+XWnvBd4x6rIEtaG4PI7vjMaDyD55uCiKWdpuH2c4EIHqCTPTqwsyWqhvvsPQ7JdoV
         ZtWcFodl61U+El3cDG1t2D+UqfEju/CC3U0XAEK4hnIL8tk67jfoWZJzgPVRg2c3koRY
         AGLw1DYJoroSiKoGNQGvlxH3+QrUw+DnyIwtmqnP2B55/cqhZpYQ+qqPGkA87dJpeAqE
         Vm/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772033834; x=1772638634;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=1qaDfXBPKiTNM26B9piz8B6ISKLFBL/GMkt/8xcvKXE=;
        b=p27G6FHKn9RUrlBqgXmu95nkubLIWj/KfKLv9fu97YYArai9Qxw+b7Qt9AlHAlbxj0
         ixGe4N2QsFL2lfSEaOYt/AjDNubi8gyAeGGxTGqKnOGordeCUJhYFJplV895LxvhXEOQ
         iyEI/nR4btdV91cCsXzgfdE473Z10jA+8Ms5eEzO1IkVBR0yklT34cAhY4LyRQujFKl2
         WmFDEa0WfxDwlfcnzTCUv1y52/C7q+X/1iBxN1A3/d3hv7IB98cvx6wuoM5Y+CoRWJ5W
         Qh61Vgo48XEZqadlV/jALtON8JTeoRl3eDAeX+Mu4Fn154LG1Jbydr2+fqbscI18UAzV
         kY7w==
X-Forwarded-Encrypted: i=1; AJvYcCWck1OmeDx7YUVArCpretd3FMTPnx/xTdgpUOWDn6ybKvk8OPmjBZKme6bTJzRQT7RzcBNVT8xDRhk=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxasF4S4y5sbMcBOaOgp/FF9c5lC/tEBPsxRc5GXOOaXfMDeZ7e
	0PX19ahjJnZGuk4XhfeVlLNodG119xIi1rgDjo/Oh8ltaBg2Hl25/LN5wtIkDRACag==
X-Gm-Gg: ATEYQzwWJ7Mw7J4Xe8/AbTE8pWYKdmxsLevNEmegEbpTiRWd5T4pN0EFTfAwbgU7dZz
	k8pxA1+1VCAxQgn9LGmG4NIJ1sdy74iB3UnfIxPJVraj2w3mO+nMSQF5JseHyMVu9Rm3IsMN/J9
	4qRYqTJ36jkZPPIM7u8ga3HCxhtFToUVM1nI31koH9qTdSXc6W5WlnhgRyYVbx1GBSgKg5aUKeC
	WWZlLb9vxTTsQ4+kpl5I91I6ZSDbSYroKp3dA5oZ23oBf19t+g7nY70FpjIAYZ+NT9nAjvINor+
	QmhmDlnVZVUoj1AyGI94IQuE5PYr6QMhaoTIpOyURomoS7skDDpgYwkDto5hO/EByEg5aX/wkLY
	ZXXzkRJhkyRSzNb7hXQ8aXeCL6uSG4SRFCc6BF9KdQeMIhXfIJ77J3YqyGEh/drZ6G3kh9Gez3F
	g9LDzRpr2IhnSmsYg/xQMSrX+pvayZWuPfVctO92yFYWGum9CSeTgz5TfnJG36obJpbk++xfo6e
	HZAzfC6ybu4A6g=
X-Received: by 2002:a05:600c:3e1b:b0:483:703e:4ad9 with SMTP id 5b1f17b1804b1-483c219b659mr14776875e9.19.1772033833630;
        Wed, 25 Feb 2026 07:37:13 -0800 (PST)
Message-ID: <2aef1aab-f1f4-4063-8c61-d26ae335d06f@suse.com>
Date: Wed, 25 Feb 2026 16:37:11 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/vpci: zero guest-visible BAR addresses to ensure domU
 asssigns its own
To: Ariadne Conill <ariadne@ariadne.space>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Steven Noonan <steven@edera.dev>, xen-devel@lists.xenproject.org
References: <20260224231216.6203-1-ariadne@ariadne.space>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260224231216.6203-1-ariadne@ariadne.space>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.02.2026 00:12, Ariadne Conill wrote:
> From: Steven Noonan <steven@edera.dev>
> 
> If we just use the host's BAR addresses, the domU might not attempt to
> reconfigure the BAR ranges and may never try to map them with the IOMMU.
> Zeroing them ensures the guest kernel knows the BARs are not configured
> and needs to make its own choices about where to map the BARs.

Yet for this, don't we first need to expose a full topology to the guest,
i.e. at least a host bridge, and maybe further bridges?

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 15:44:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 15:44:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240879.1542125 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvH3j-0004ux-Vz; Wed, 25 Feb 2026 15:44:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240879.1542125; Wed, 25 Feb 2026 15:44:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvH3j-0004uq-RO; Wed, 25 Feb 2026 15:44:19 +0000
Received: by outflank-mailman (input) for mailman id 1240879;
 Wed, 25 Feb 2026 15:44: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=tnRg=A5=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvH3i-0004uk-AQ
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 15:44: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 d450023c-1260-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 16:44:11 +0100 (CET)
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-48374014a77so72192695e9.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 07:44:11 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970d4c95dsm38399331f8f.33.2026.02.25.07.44.10
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 07:44:10 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d450023c-1260-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772034251; x=1772639051; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=qf1diTV+XMTRLAJu58Llknk3XAlVZyP3bnTceXRXR5E=;
        b=OJLvr6RKYYvDju+X6IQCbkVujE+Q5DiDwuR3mtmpHam7nmLVMcWdrb9iVRuocKtEKy
         GHcOR9ou8GD5CdsBDBN5yWRg60bSf69INWzNjRAHU8OlV3IYfrStlXbxBg7MrpcFUOes
         uR+EW1Ob5WhrjF4145oP0gJ65Mb8Jj9tVLCs+jXtiTW5PwM63Q3SlDVhkXdFAfC3ZVjv
         QGI61/GS0RH0ys66vmPtHRj2vXzVUh2Zezhif6AQfU59CGUUIcD9Ii+eY/fyiGxOD+PL
         YQ9Uix9Uf9H+8pSk4TBUBvYXUzQmRh+3nXaPMPUPQDhJE+RZFlzfl2NowMi3jtBXoFTT
         LAyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772034251; x=1772639051;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qf1diTV+XMTRLAJu58Llknk3XAlVZyP3bnTceXRXR5E=;
        b=onvLfLDQOxYGR+3Zkb9vDjwn3HQhC9FMxqQvyh9jr13HLVz8eonEZy/tTlSodwtWzn
         5G1ATwwDrSTxRCVedjN0OqhpEHnB0YJe0J7y3TxQ7KF7TzUxe6A9CLKs23lCPTI+GfS6
         f6P1eecWKhOJPLjGHiD9E1AMkwXbX6afd9BznMm6SIjB9lNVopCMDBBnt/dl+kb2tHMn
         3J3bsSQACVLuwpaqcD5DsMqzUF6e2a9cz1qLiQTanrUY1Y7zGnI5HopP1w7ZPbiPzvtu
         eFubKBtq/M3wPqR0ijDH/r4cGmsC4Wi8MoDjhyX+5H0SPIJvchiz6Oj1KGe8kVfd+HFh
         oXsA==
X-Forwarded-Encrypted: i=1; AJvYcCUbBBQCoYCjMf1Ui1etLs4r0HrMHr3XbllQ4YmQpQHYAdGBLAyLuF2sWN66QeMxqjXk6g6vTAaSzaA=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxTdwfavLs5GTRmGmilRCiiHoSoXFsR/4TmdCvdxpsGxCaplRHj
	7Q4vppN0945TZBeK/nUSkb4qutWmxikJ7QW1a2hWgKWFkykqihoEINObufYbh3THyA==
X-Gm-Gg: ATEYQzxJoRnXiC+5T2JanrSjH1/jXgXxJzrFIl/6griecp7TKiJzBHQ2/nIF3d9pYt0
	hDjrKQ1f3TxRWWitCEmdM0EqJFhrriZa9ka66e1EAZypR3d+weOMRt5fpMeHx02uTsMEwefsOpC
	f08lOnHVzJsShhEhPGro2vtt2/vDp4veOuvmkCg+v8BMSnnYbSPvU9bQ3qO85H4Z8Po9UoOzPdW
	7GswP86zfkhLboC2nzQUlci0sYZbsE33/YqCUdkDFlST5WsCG7G/PZbV47zfe7GB5gKdzJRZfL8
	2Vs41DVW+6IBy9eJmYVdc6Hq3RaBTBblSF8Cs6HDOB2gwCUZG3fhHYgTK0obLvp2RjuFtFLjNXH
	T1xT8TWJ8K5imNXGfzOfL+xHP1ji1f+XZtmxlhhNGhOgMjyQAkdwNlQuSJQ57RTBzYKKcS/RgmL
	+wzHNI6MqlPyn2ykRU9+OfM3d5yEcxUmcArLbcx1nsRiuIquOOxPk79fU9SZ6FWMhLm4h0Hpvkd
	lO40acQ1B4IL0o=
X-Received: by 2002:a05:600c:3105:b0:477:7bca:8b2b with SMTP id 5b1f17b1804b1-483c12c7d04mr32760355e9.15.1772034250998;
        Wed, 25 Feb 2026 07:44:10 -0800 (PST)
Message-ID: <1d832f36-d22e-42c6-996c-d09c06376b8b@suse.com>
Date: Wed, 25 Feb 2026 16:44:09 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/vpci: do not use pci_sanitize_bar_memory for domU
To: Ariadne Conill <ariadne@ariadne.space>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Steven Noonan <steven@edera.dev>, xen-devel@lists.xenproject.org
References: <20260224231235.6277-1-ariadne@ariadne.space>
Content-Language: en-US
From: Jan Beulich <jbeulich@suse.com>
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8
 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3
 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9
 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V
 m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM
 EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr
 wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A
 nAuWpQkjM1ASeQwSHEeAWPgskBQL
In-Reply-To: <20260224231235.6277-1-ariadne@ariadne.space>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 25.02.2026 00:12, Ariadne Conill wrote:
> From: Steven Noonan <steven@edera.dev>
> 
> This function should only be used for the hardware domain, because it
> compares addresses against the host e820 map.

The same is true for its sibling function, pci_check_bar(). For both the
question is whether skipping is the right thing, or whether for DomU-s
checking against their memory map is what is needed instead.

> --- a/xen/drivers/vpci/header.c
> +++ b/xen/drivers/vpci/header.c
> @@ -394,13 +394,15 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
>              }
>          }
>  
> -        rc = pci_sanitize_bar_memory(bar->mem);
> -        if ( rc )
> -        {
> -            gprintk(XENLOG_WARNING,
> -                    "%pp: failed to sanitize BAR#%u memory: %d\n",
> -                    &pdev->sbdf, i, rc);
> -            return rc;
> +        if (is_hardware_domain(pdev->domain)) {

Nit: Style (see surrounding code you alter).

> +            rc = pci_sanitize_bar_memory(mem);
> +            if ( rc )
> +            {
> +                gprintk(XENLOG_WARNING,
> +                        "%pp: failed to sanitize BAR#%u memory: %d\n",
> +                        &pdev->sbdf, i, rc);
> +                return rc;
> +            }

To avoid the need for re-indentation here (reducing churn) you may want
to leverage that rc is 0 ahead of the call to pci_sanitize_bar_memory().
I.e. you could make just the call conditional, without touching anything
else.

Jan


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 16:01:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 16:01:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240890.1542134 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvHKe-0008Mz-BD; Wed, 25 Feb 2026 16:01:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240890.1542134; Wed, 25 Feb 2026 16:01: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 1vvHKe-0008Ms-8D; Wed, 25 Feb 2026 16:01:48 +0000
Received: by outflank-mailman (input) for mailman id 1240890;
 Wed, 25 Feb 2026 16:01: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=1EJK=A5=bounce.vates.tech=bounce-md_30504962.699f1ce3.v1-482a7224c02e41c58e684e009777b938@srs-se1.protection.inumbo.net>)
 id 1vvHKc-0008Mh-ID
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 16:01:46 +0000
Received: from mail187-10.suw11.mandrillapp.com
 (mail187-10.suw11.mandrillapp.com [198.2.187.10])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 450477b1-1263-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 17:01:40 +0100 (CET)
Received: from pmta09.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail187-10.suw11.mandrillapp.com (Mailchimp) with ESMTP id
 4fLfTv15Vvz5Qld74
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 16:01:39 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 482a7224c02e41c58e684e009777b938; Wed, 25 Feb 2026 16:01: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: 450477b1-1263-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772035299; x=1772305299;
	bh=zyfB8a/LztjIJ2AZxsJrk+XNtYgH9WQ+m3rsAXKXpdU=;
	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=FHrEco3iUjR+/SczBYRGigGIyQIWH96xjiJnviZw21eUaRcQyyN+Hb+KmKELQ7EgK
	 2wurPAmdU4wJ8sRRgQSD8WSutqBMCgJPWhrcV8Xe+llO2ZRmA1JucYgqpyLFK9ctVL
	 zdvcxQZJwevy289wlFkikeXnjAEq/pFfSyARnZPEbY1BLB5//oyQf9xRAJWzg5Q2VD
	 o1Q3DI/9Bmuydqn+1tIM/dTw6YGS5IwpJllaLUuvCJqpeycldB3F+TBmgf31+gUjy2
	 iI52sl3i6LsdX5E6gaa3IU7J8teTy7VKLTwFydW21YEWUl1kHLh9JDgpnGdzmq/Vct
	 y72h/vieU1n3w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772035299; x=1772295799; i=anthony.perard@vates.tech;
	bh=zyfB8a/LztjIJ2AZxsJrk+XNtYgH9WQ+m3rsAXKXpdU=;
	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=StdL/u14QdfCODZMQlK3/6wq/pkCGeIYEbMgEewQ3ncyhWTVm8vQApzi54bEcqBqd
	 zUKC6ZXZ6lyMR0MMf4hkwLrY4lW6OQ9RTbRh0vxaeFeqYzxTWUpz+WBafzOfwcH4Pa
	 FQnaWQdjeKCRtckjU24fDrbh0yUGLb6EJRiDDZZs9Tc7w4qmAtEKoefyAASAXbG6ae
	 uJ0ZsfYa/vFC9V5jyXDLFeDaNHTLAqoMGSzMvB5Ua7Talecnvjg0vZ1FrvMapBFtZR
	 LKY+QoXTDxZLo54O0YY7OSFa8PakQhAI1c1LxNCF4fp9Ly/5Oxfp+IrHmaKC2K7jtH
	 bx9eeGE0KjZ3Q==
From: "Anthony PERARD" <anthony.perard@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v10=205/6]=20tools/xl/libxl:=20wire=20up=20SCMI=20SMC=20multi-agent=20configuration?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772035289214
To: "Oleksii Moisieiev" <Oleksii_Moisieiev@epam.com>
Cc: xen-devel@lists.xenproject.org, "Andrew Cooper" <andrew.cooper3@citrix.com>, "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=20Pau=20Monn=C3=A9?=" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>, "Grygorii Strashko" <grygorii_strashko@epam.com>
Message-Id: <aZ8c2KGivXuLZGLn@l14>
References: <cover.1770982468.git.oleksii_moisieiev@epam.com> <4ed96ed7bbb04c02b09eed63730702398b00b83f.1770982468.git.oleksii_moisieiev@epam.com>
In-Reply-To: <4ed96ed7bbb04c02b09eed63730702398b00b83f.1770982468.git.oleksii_moisieiev@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.482a7224c02e41c58e684e009777b938?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260225:md
Date: Wed, 25 Feb 2026 16:01:39 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On Fri, Feb 13, 2026 at 11:37:05AM +0000, Oleksii Moisieiev wrote:
> Plumb the SCMI SMC multi-agent type through the toolstack:
> 
> - Extend libxl_arm_sci_type enumeration with scmi_smc_multiagent (value 2)
> - Add agent_id field to libxl_arm_sci structure for per-domain agent assignment
> - Update libxl_arm.c to translate libxl config to XEN_DOMCTL_CONFIG_ARM_SCI_SCMI_SMC_MA
>   and pass agent_id to the hypervisor via xen_domctl_createdomain
> - Add xl.cfg parsing for arm_sci="type=scmi_smc_multiagent,agent_id=N"
> - Document the new xl.cfg options in xl.cfg.5.pod.in
> 
> This completes the userspace side of multi-agent SCMI, allowing xl create
> and dom0less configurations to assign unique agent_id values to domains.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
> ---
> 
> Changes in v10:
> - Split hypervisor and toolstack changes into separate commits

Thanks. That's easier to review.

>  docs/man/xl.cfg.5.pod.in         | 14 ++++++++++++++
>  tools/libs/light/libxl_arm.c     |  4 ++++
>  tools/libs/light/libxl_types.idl |  4 +++-
>  tools/xl/xl_parse.c              | 12 ++++++++++++
>  4 files changed, 33 insertions(+), 1 deletion(-)
> 
> diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in
> index 27c455210b..e7f8af6156 100644
> --- a/docs/man/xl.cfg.5.pod.in
> +++ b/docs/man/xl.cfg.5.pod.in
> @@ -3156,8 +3156,22 @@ 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

Those is need to say "SCMI SMC multi-agent support for the guest" ?
`agent_id` doesn't seems to be used if we only select "type=scmi_smc"

> +existing on a single host must be unique and in the range [0..254]. UINT8_MAX
> +(255) is treated as invalid.

What does "UINT8_MAX is treated as invalid" mean? Why is it mention? How
is it different that the number 3615? My guess is that we don't care in
this user documentation. All we need to say is that the value needs to
be between 0 and 254 included, which is already stated.

Also, it's written "non-zero agent id", but zero is in range of accepted
values ([0-254]). So is agent_id=0 a valid config, or not? Also, if this
config option isn't specified, we have a default to the value 0, is that
ok? (libxl doesn't check if `agent_id` is a valid value, only `xl`
doesn't that in this patch)

BTW, you could check that agent_id is valid value in
"libxl__arch_domain_build_info_setdefault()"

> +
>  =back
>  
>  =back
> 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 4a958f69f4..9bfbf09145 100644
> --- a/tools/libs/light/libxl_types.idl
> +++ b/tools/libs/light/libxl_types.idl
> @@ -554,11 +554,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)

Could you add a "#define LIBXL_HAVE_SCMI_SMC_MULTIAGENT" in
"tools/include/libxl.h"? With a quick description about the new type,
and new field. The are plenty of "LIBXL_HAVE_*" macro example in the
header.

>      ])
>  
>  libxl_rdm_reserve = Struct("rdm_reserve", [
> diff --git a/tools/xl/xl_parse.c b/tools/xl/xl_parse.c
> index 1cc41f1bff..2f1b475022 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 >= UINT8_MAX ) {
> +                fprintf(stderr, "An invalid ARM_SCI agent_id specified (%lu). Valid range [0..254]\n",
> +                        val);
> +                ret = ERROR_INVAL;
> +                goto out;
> +            }
> +            arm_sci->agent_id = val;
> +        }
> +
>          ptr = strtok(NULL, ",");
>      }

Thanks,


--
Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 16:05:24 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 16:05:24 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240902.1542143 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvHO7-0000Yx-Rj; Wed, 25 Feb 2026 16:05:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240902.1542143; Wed, 25 Feb 2026 16:05: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 1vvHO7-0000Yq-P5; Wed, 25 Feb 2026 16:05:23 +0000
Received: by outflank-mailman (input) for mailman id 1240902;
 Wed, 25 Feb 2026 16:05: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=dz9A=A5=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvHO6-0000Yk-4f
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 16:05:22 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c86a5f03-1263-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 17:05:21 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS4PR03MB8153.namprd03.prod.outlook.com (2603:10b6:8:281::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.11; Wed, 25 Feb
 2026 16:05:16 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026
 16: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: c86a5f03-1263-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bHTowbhSclzQVxLkGY7zFiksPwEr209GfMdI9ZxA0QSBzlgxiEIY08Z6k6zPlKN9jrjmyvU4qe7zfJxLjznLYhidx6qHDz0Qb5nvct1cLQK7f31Z2cH4sNOwuoqNoIYG8zlfUctdpnYhAgL3nKIKkHLhJKhoWe4eWP9p7mzDoRqM1X6zYxzOZXuRsH0SX0sgyihQeXs9g1pWEPbtSwq6AQQbYNZNdLA1fxPoUKFcNoFuu+n1p5AXAzCgImozIy7eHPRfG3tFYlJF6npbkQe9KZK3GKcGSrQ+F1G0r9Y+Qo9HzKIFUfbBQshB4j/72J9fcQW3eeCPM7F7ZA51AKxUbw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=J4pjHcQCEXlE1hsG7aVAN1IQGSVFjDbEoRBjVgBkl8I=;
 b=g4ro7OZ0Rj4dbdMkh36ejojD2dsS4kOXfWCzZc55HnSuAHap6hR19hxysSaH2PSyHtSveBrbyUYXokcs7MwnsI4ZI/uwjKv+l8NJXtpiqE3OVyfuQNJ651cAuDWZZ7Aq4h0K3qvHhSzPn3oPxGqmZvJMdRYPPc5QBZDJU8lnovJV4nvOaMl4VhJ/ysF+b8SzGpR2QU6irti5UZjs4CcnDoFgCADquKDy4LZG7tQOK2Fq8lghBlVjjL3QJ/tYwPqECV9Cxt1MMNR7rMNZzwEUUUqo963FkHJjbBJaMkHib0HPre0/YMfMS4vd+26zHpWFAXYqro5pAhW5aib2+hXNug==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=J4pjHcQCEXlE1hsG7aVAN1IQGSVFjDbEoRBjVgBkl8I=;
 b=vPHN3OxG8J1j3Vw3W6VlBd9NdYy1dqnPhmXuikuxNrNhBLv+TZCr2VwuV88IrxcDLdwOp5e0BBedRWCUzyNbKO/gHBjJO2pvvH2Ac1VoNbP5dgdeXsLU75w44Wu0+CxFBq5InyD5W1+nnhT5jmTcwhmpBnSSKg2qemJgNE4G7tA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <82bbccff-fca6-4256-b228-88fc326cf5d6@citrix.com>
Date: Wed, 25 Feb 2026 16:05:12 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 11/12] xen: Bracket uses of macro parameters
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-12-andrew.cooper3@citrix.com>
 <a917dc27a7fba87a8f829558444545bb@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <a917dc27a7fba87a8f829558444545bb@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P302CA0037.GBRP302.PROD.OUTLOOK.COM
 (2603:10a6:600:317::9) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS4PR03MB8153:EE_
X-MS-Office365-Filtering-Correlation-Id: bbd5a270-94d4-4bdb-e7c4-08de7487aa9f
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	0hXuDFn9Ar6K6AajoExZKWG8/uAwm/wxqhk33GQ5/gkMr8wnTP9NS+cdRynkIOzdK17MswLzozyYUPmXAcCb7o8n4yxWJGCV6ceBYfaVrFcxs7dyg9fiH6kYEwLgXqr3pmdgWfsT/RVcHZUaSAfBy1RhK7HRv+2gr702eTH2zfRKgCJbVnU0xpHmtcU1xgnYg9xWZl8gO304lq8/cQIukwlVwc6wGIdnOznJOilhxcFiXmDWNhUOsJD+UGVsmiLZG6lPH9y0uK3NvmtoX2Xmxen0nRe3Ov/choakGhhfG9tm8hhTfo5yzyXdIlZ34MThVUc4FGTKA6M7miPWCdwb0uLeUMjmK2QmMlibqkN3Nlhjb2vXOeWre1kdaXP5dfCF4MlJp98RtE2/aCmdvhhcoKJir8gs+CpwyZMM3xPqfzViV7yrlbLvxpJQIvziVhMuhFl4yfCa6x10cwCurrHVH1HbBBm3kCgjeFlaMDVhDCHHxKRz1+sJLNvUcaqFgaoUboBuJE+/6Nis8QCPtXTPG8SwWPrCpqq6EtKcJGKYIbbg/SR669JCHCXI899iXv/XNJPlW9s4DvOdQsZxTM9lE7ok3GB+4UQjo/F2H3Gm5uHSo9+hEUeIcQTkJNAqxP5q/9nPuW4v98RfFJnh+27Jx+CMegYS98HU0M5MGMRRvpUYbppxkeFowg7FDvDrzu3CFThZFmS2lri7vnBIjUX2QuiFaLVcGksopWMIfn/BOLg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?U2ttblVFcFMxWVJSWHFCVG9xa3lxVlQzMFVPVyt4d3YyVmVqVGFhV2FVSnFO?=
 =?utf-8?B?dVlkT3FZOFlET2RXcFNIZ3l5THlCUWowU0VoMlVaWmIycFVPeHFVVkZhYlds?=
 =?utf-8?B?bUhnYi9aTWhLelZ4N09QSG1nU2VDSXNoc3RYaFl1ZnRaanV4S3Q1TTkxb1hL?=
 =?utf-8?B?RllhaXFicWh5QUZhbm9aM3NaNzF5czV6bXZhU3FOM1lMa0tqK29hV1BGdUIr?=
 =?utf-8?B?RWdOVUJsekZiRWlwTkVDdityQjRMQy8vc2lMN0dQWUtNV0pWTFlzZlU3RmJG?=
 =?utf-8?B?SXB4ZnQxa0prVG1zWHB3VXhnVU1rQ1ltRVlqQ24rSTZmb3o2Z29GdUFscmI4?=
 =?utf-8?B?TnkwV1RwNnVucTVmUWZzNlBaVDI0S2dVbVgzNTdHUGxhRnFmRWFiVTdtUzZC?=
 =?utf-8?B?WTZkcUIxaW10UnRkOVYzRXFtelNpUVI1TVlNK1hxNWJ5MmpaZDlyaU1ucDdt?=
 =?utf-8?B?TVo1MGN1dnJrbHdCK1dqRUtlM3YxWGVnbldWbHZFMmJFOXFWeU1nWklvYkRH?=
 =?utf-8?B?UHM5V0dtejFOaVNRNW8xcERkUGdtVnNtN0Q1OGJodUhmTktoazhua1Q1eTNM?=
 =?utf-8?B?MDZTS0F2cVJsZmFmOHpxbVY2K3FEQnRHSkZpaFliU3NTOGY5TDRaWnFvSXh1?=
 =?utf-8?B?bTBidlBBRnYwN2dZclFNK1FOeS9uWGNya1VSU3hSc0V0b2pPUHZzVy9NQzc0?=
 =?utf-8?B?VkNoOVVUdUtlOGlzdWFIa3lQVnFqSDVPZ3kvRXNtanlGSElNNkJsVjh6em5m?=
 =?utf-8?B?VHFwc2liMzRuakZIN2lsMU9GaFBtN0dwUFkzejlPc29lMm9LSG9yVEt2bHpE?=
 =?utf-8?B?Mm51OXBCWGxyd2xkK3A2NnBHNDMxZkpVbVhJN0xCcnh4bTBJTnRoV1FtRE9Y?=
 =?utf-8?B?VWVTTmNJd0FTcjkrU045SE53MTJmVno5aDQ3VytyYzl5SlhscUY0SjdBL0pz?=
 =?utf-8?B?c0twVDA4ampWRml4MTBYbThBb05hT2wzeER1MlZDelB2bkNSbEhaN0FxRkFI?=
 =?utf-8?B?Q005b0E1citkcGd1dll6bW85ZVNpZDlZSUFLOUZQWEk2RU9nWmlkMVVvQXlI?=
 =?utf-8?B?d2NyNGNEYXpaSE5PRHRCMDA0MGhZeHNWSkNxWnd6b05CRkRqS1gzVE9xdk1V?=
 =?utf-8?B?Ry9WRnJzZHA3a1orbm5ETW5jQmRGSlpZbzBzMzNMeWZTSklIUnE0QklnK2s3?=
 =?utf-8?B?VnBPYzlWOFp2aS9adDdqejYyNlJ2WUxIQ3RNRFJBTmR3dUJXNGNWWXFtNGpR?=
 =?utf-8?B?WW4xOWlicVNUM0YwM0xxKzBvM3FTaE1rSTc2TWxVUFZhR0pRMldyYW8vSjhh?=
 =?utf-8?B?akNsNHRKbVhXWEUvbFB0OUFJTzhLbjBqVENnOHFVTEZaVGZYbHBvelFlc1Q0?=
 =?utf-8?B?anFLVUZ0TVRzTFBrNk5SN0Q3dXlpZHhZU0FKc2YvKy9oQkpiUUU0cTBGVTVC?=
 =?utf-8?B?ME5DOVZQZXZwMmFwQnBJUTFQQmJhWG5HdDc5bzFVRi9ycU5tb3hYdmtuSTl2?=
 =?utf-8?B?cXNwT0svOVRaWW80OGxSb21tano1STYvS2M0YXltU20yMS9oT3FKWG14eU5J?=
 =?utf-8?B?SG41UnM4alM4cm1MVWV4MWpFRzJjcHpzVmgwd01mclF5bm40b0tBV0V3cVVK?=
 =?utf-8?B?OWFGaUpNSytQVFpXTTNiRWV3NGZxRkd4UzVnQ3g1RFQ5ZTh1TTZYWVB5b2or?=
 =?utf-8?B?K0pIYUYveVZFZ21kSnZvdE5RenJ3TlZ0M3BKMnlramdwVlcrVDI4TmRKbVZZ?=
 =?utf-8?B?YmRSa2VUUXV6d1BQQ2xPM2wyeTVBbkNTZkRiNklKMDRkeisydENCMVpsLzhU?=
 =?utf-8?B?RlVFczYwTU9xdjQ2QWsxcW12cmhaQ3hxZndwS0ZReTVEZ0pmaHZQdlE0OGJX?=
 =?utf-8?B?S003bE1tLzBiZFRRUHl6Ny95Vmg1d2FPZ1Z5cVlwR1ErUW5DTDhTekhYWGU5?=
 =?utf-8?B?b1JOSVJnbEpoMkk1a1JiYXZkUjhwSTFiNHJjYW50M2RFVjRKY0xIWlo2ZFA0?=
 =?utf-8?B?bWdDTUFjdElMK1RtUTh1U09FaGNrZ3k3UnhGTnkzK2RQK2tQU0p1ZFRZeDAw?=
 =?utf-8?B?ZjloaTdJdmdjY1dzZXNBbkVEMFp5UDY1ZHl2ZnJRZnUxckpPYUZyMnRuWllM?=
 =?utf-8?B?RjJTTDNMZ0tCaERyazRYNlRFYjNlZjR0Y3lJeThUdk1hdXN1M2xhc2ZWNkps?=
 =?utf-8?B?cHg1MVBCcEgrUFJIVHpialhWVkVSRE1OdU42d3lzdTdmQkxoV0Q5eXBVUWRz?=
 =?utf-8?B?NXdsa3ZSbkh4SHE1UmJVUVNXdStjdWU3b3Y0SC9SVnl6MGNpcWU3YUVXZVVk?=
 =?utf-8?B?TXIyYlJuQjhuSFBMNUpGQWFWVGpGaTVDbXY2WStJT2pBRkpuZ05jZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bbd5a270-94d4-4bdb-e7c4-08de7487aa9f
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 16:05:16.6895
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 246Eqddb2hDfIuiPxZhWFT1NNl7fEpR+EnsL3qfBeH+VgmYSemFcWPE1/K2ifyB/wN/vuOeXZeqqLfTB9glb4+ktX8v6fjKubxxdeYSxg7g=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8153

On 20/02/2026 10:45 pm, Nicola Vetrini wrote:
> On 2026-02-20 22:46, Andrew Cooper wrote:
>> Fixing Rule 20.7 violations.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>
> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Thanks.

>> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
>> index 7446533c8cfb..63473925cafb 100644
>> --- a/xen/common/livepatch.c
>> +++ b/xen/common/livepatch.c
>> @@ -664,9 +664,10 @@ static inline int
>> livepatch_check_expectations(const struct payload *payload)
>>      const struct livepatch_elf_sec *__sec =
>> livepatch_elf_sec_by_name(elf, section_name); \
>>      if ( !__sec
>> )                                                     
>>                    \
>>         
>> break;                                                        
>>                    \
>> -    if ( !section_ok(elf, __sec, sizeof(*hook)) ||
>> __sec->sec->sh_size != sizeof(*hook) ) \
>> +    if ( !section_ok(elf, __sec, sizeof(*(hook)))
>> ||                                      \
>> +         __sec->sec->sh_size != sizeof(*(hook))
>> )                                         \
>>          return
>> -EINVAL;                                               
>>                    \
>> -    hook =
>> __sec->addr;                                               
>>                    \
>> +    (hook) =
>> __sec->addr;                                             
>>                    \
>
> This is not strictly needed, if not for consistency.

That explains why my first try didn't succeed.  But, why is it that only
MISRA only cares about bracketing for rvalues, not lvalues ?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 16:34:36 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 16:34:36 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240917.1542155 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvHq9-0004wO-WF; Wed, 25 Feb 2026 16:34:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240917.1542155; Wed, 25 Feb 2026 16:34: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 1vvHq9-0004wH-SU; Wed, 25 Feb 2026 16:34:21 +0000
Received: by outflank-mailman (input) for mailman id 1240917;
 Wed, 25 Feb 2026 16:34: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=MQeS=A5=linaro.org=philmd@srs-se1.protection.inumbo.net>)
 id 1vvHq7-0004wB-Rt
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 16:34:19 +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 d2168c57-1267-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 17:34:14 +0100 (CET)
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-43990aa7dbaso703338f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 08:34:14 -0800 (PST)
Received: from [192.168.69.201] (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4398bb96b90sm10671635f8f.9.2026.02.25.08.34.12
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 08:34:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d2168c57-1267-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772037254; x=1772642054; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=ErNFB4fWo3erpLz6CQwnamsPRtYALrLm1VQrrV4Tt64=;
        b=c2nZuBYUCPLsLIvzTFjuX+e/XVaODcqlxp645MDi5PxOHlRjJhXDfQO6SqdaTvGnaw
         HllnePR2C0vToL1XUO6Vjd5MpKp15moe5QCi/O0i2jEpebM8mk4IzacVBSPTRcn8ySic
         7zGKrUIOPz+Qs13D4JVIxO0BmktqNS9gfQLIMxilUIDlaUFsmtQDFjAo7InjnFaoU0Ky
         C98y+Yd23x76Xs6F+j8boMfCG4Gvocuh49YS0xNu38HyqubbMspQaBt06ugqBOC4yy9r
         nJ0aQI3LW1zEcCWWqRb7vRK63xnkyD2BpiayucsBwZqJNp+RxAv1O7Bo41L7hdnb2SYC
         M0pw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772037254; x=1772642054;
        h=content-transfer-encoding:in-reply-to:from:references:cc:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=ErNFB4fWo3erpLz6CQwnamsPRtYALrLm1VQrrV4Tt64=;
        b=cdEqSGG+26C4dNJkZN/3IHz6aFGoE0LQ8VsLnRYqHxIRTo5O6PHUk5H1Wbm8Sr2wsl
         Oa0Arkfaenn/c2CZCxXOvAWNU4196HMl687ASwIoLt7SB0yguMr1du23ppgOxOnI+nNX
         uYmI9RvPYzROsmGrR/HwBgwJOYXEJQrId28ue/6XlvloRa2w7d0hEbwhYx4AnT1zLDJ1
         GW02kQyKd9yyYOIaei4CatqbKhno/Lmzml3q34nT5PkvikdJcrOyYlpR0un/IX/mxvhA
         J2l+uSaFlN6Itz8R4ec1ebrQg6Ab/iXdhE+ojdAf/HBsbTFldQZ2/hr+1+WqlTkdhnyu
         oBTg==
X-Forwarded-Encrypted: i=1; AJvYcCWT/z3OEtKlM+csDJv+SbMIml6N8lr1r1guuwuRWhrdTzXUcqOWum6DlRiwPhnH3568k/x6GD8URMM=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzS38P0K3CjBifAA9qdHx6R1rZXSWXA+ZNw2g5QWYbBmJDYtlv1
	JyhGIKGirnrXgzWn0LnHS4SBYJXlJw04OZTH2+rYCvAoOukUqM4rKo7RaVMaRj9BaEg=
X-Gm-Gg: ATEYQzyNfbFVyYYXsl6rTvnNIQHCdoMnlopvGWZuyt1g3j4FPcyLKcB5I1Rh5N4vnIG
	ddaKj20TE7f5ap40sVxCPaMtRiWqTevF4MszJeZuRD+F7k40NmMKKDwGZgu66fWyqJWWhnSOgfy
	kHsFlCLpWs3+Sh4kZ1bUi3m3+hk7Qfp3JKCM4ZZ8SPdI9T8/V1XN6gIFe+KOcDsi/KWWHQCR4Z1
	69Dq3PYZVOUG4yvM1yUw9z+6d5b+7ZI1RwwW3c55YeUUhoTy1iLGbM2+ySa7H9Y7dI6TnHkVcLW
	+CDn9SCh1+WWDwZXJ9SzVs04bkWWRS/oYlOE8FJx+awzDZv9jAmbHhVysEC9ArmUIZwmSXoaQ0H
	yhelE3Ao9ViOElNkGD+gbA29oUKM24/bzavaoxnKJovWrItZQgKTJbuzRQb0oKljgrp9gziBucl
	tZkp/GWwmfR6KobBqfD3OrCYbEfIlbk/aj3YjQMX/1A/gzYKXL9FzrY1pmxNDK81gCxA==
X-Received: by 2002:a05:6000:2511:b0:435:e440:f518 with SMTP id ffacd0b85a97d-439942fddd2mr2165857f8f.54.1772037253543;
        Wed, 25 Feb 2026 08:34:13 -0800 (PST)
Message-ID: <0cf4a5e6-0e29-48e9-8e99-e86b4de42996@linaro.org>
Date: Wed, 25 Feb 2026 17:34:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] accel/hvf: Build without target-specific knowledge
Content-Language: en-US
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 Paolo Bonzini <pbonzini@redhat.com>, xen-devel@lists.xenproject.org,
 Cameron Esfahani <dirty@apple.com>, Roman Bolshakov <rbolshakov@ddn.com>,
 Phil Dennis-Jordan <phil@philjordan.eu>
References: <20260225051303.91614-1-philmd@linaro.org>
 <20260225051303.91614-5-philmd@linaro.org>
From: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>
In-Reply-To: <20260225051303.91614-5-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 25/2/26 06:13, Philippe Mathieu-Daudé wrote:
> Code in accel/ aims to be target-agnostic. Enforce that
> by moving the MSHV file units to system_ss[], which is

s/MSHV/HVF/

> target-agnostic.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/hvf/meson.build | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/accel/hvf/meson.build b/accel/hvf/meson.build
> index fc52cb78433..6e2dcc4a5f0 100644
> --- a/accel/hvf/meson.build
> +++ b/accel/hvf/meson.build
> @@ -1,7 +1,4 @@
> -hvf_ss = ss.source_set()
> -hvf_ss.add(files(
> +system_ss.add(when: 'CONFIG_HVF', if_true: files(
>     'hvf-all.c',
>     'hvf-accel-ops.c',
>   ))
> -
> -specific_ss.add_all(when: 'CONFIG_HVF', if_true: hvf_ss)



From xen-devel-bounces@lists.xenproject.org Wed Feb 25 16:34:46 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 16:34:46 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240920.1542163 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvHqY-0005H5-6C; Wed, 25 Feb 2026 16:34:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240920.1542163; Wed, 25 Feb 2026 16:34:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvHqY-0005Gy-3R; Wed, 25 Feb 2026 16:34:46 +0000
Received: by outflank-mailman (input) for mailman id 1240920;
 Wed, 25 Feb 2026 16:34: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=j5m4=A5=bugseng.com=nicola.vetrini@srs-se1.protection.inumbo.net>)
 id 1vvHqW-0005F6-Q4
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 16:34:44 +0000
Received: from support.bugseng.com (mail.bugseng.com [162.55.131.47])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e209baa8-1267-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 17:34:41 +0100 (CET)
Received: from support.bugseng.com (support.bugseng.com [162.55.131.47])
 (Authenticated sender: nicola)
 by support.bugseng.com (Postfix) with ESMTPA id 6194C4EE7808;
 Wed, 25 Feb 2026 17:34:39 +0100 (CET)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e209baa8-1267-11f1-b164-2bf370ae4941
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=1772037279;
	b=h4o42yMSIKhtOfTa0n/032J3+CTvI3wQgJnv3ZYgWCWrzanZ2rU+iEZ6CUmEJiNkmSW4
	 Ngi3Wnu0HDnPFHC0CBgHj72S+zO8jurNXuapGEoNXs5aY975UP7+szyhljum+b4SXdzXC
	 Qswxg61qL/DDef/uZdWr657PF7AyFk0nA9J2BlsHTBAlXaWUvuWyeKFeI1p38V0XaF+Zw
	 Dh2OkbXU6OSnvYv1qOiLANBPwYvFctVGMueugOcDtmx9KKZhnHAo0G+xUi/LK78QUSNr8
	 ZqCCjVddI5x0+dn2z45CCV2OJcn9/F/BYuYpP8ytLBVDB1WP2FFNIY8OhJYudiPb1fnLP
	 kJ8wECU7X9RRf1sDmaHHZZGcRxLuF3t6f1fdg3cCfx3nfgiv29dHZI1riNG2s1V+1JWGI
	 1drBJoEetxA6lQsKaiZi2rPE4oyn8sVdnYthOYeCTjlpPZd9gzZimUgMiz9C8Whf9q0sh
	 y+G/k6Xx6/oEYiSLSbMVhcPBxhiwnjKZ9mcQa1AIaUIeosnyYiPgfM0R93GzXsyhPrw+v
	 8VGcVJhOgEPle76H+eU2d6zFFv6HbQ4BrWJ1KIvzhDcnye+oFgPSrLND1GXkVb67Bgkjk
	 FfjPaxLruH9BM9nyTvKs4xe9nDdV2yVbe/lN4Q5zEKKduHWV0FJAjhl2pfNZMlY=
ARC-Message-Signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256;
	c=relaxed/relaxed; t=1772037279;
	h=MIME-Version:Date:From:To:Cc:Subject:In-Reply-To:References:
	 Message-ID:X-Sender:Organization:Content-Type:
	 Content-Transfer-Encoding;
	bh=6kHTQwT6E5aPdQgdrwEfnEfD2oRdXwzFPDU/nBMaU4s=;
	b=P0/YYp0sqHYxe2DOUYX2+TFLVb8hsCR923sfJUKLYKzXnwDPeiAUoIKHsPF+bqhhimdG
	 nkVb8HARD3IcWv5VmubAGUbpYPL1cahLkF3m7FCeuiTz1dWDZAkmNpKIhSW5O8d5oWr1x
	 62mrqicY7khEHyb//RX9/CuNf2aQT8+X7qgpLOUCXBgzILAK3NdbuX50OiTtGtCS7KONR
	 EafyC0F0dgm0QIVjhG7E7KMRmigxPeAx0gPdLBRaE49gm+1n7DWcQDywmCoNW8J78m0Zx
	 cfDhW1hhY0OFSh8DibjPmDJ5R7cSDdyITxNOsVgwaWLDLOv8J5FbF6cWxqDoxs0TB30Pj
	 Fem5JVG1UDQHqaLdG9JRlpUix5miX5ndFJ7E515T6CzVW9RFaheI/8346q3rc8oCqQ2pS
	 FCKmdBzCjWAeYyLhW/2kyh+o+BQZ6OLqkaRAC8WwqxExG1sEx/nFLfpBU2BxHE/5l3zIY
	 ECh6UiQ625FU1Xlz4ADf77g1ASokkpaq+QlhKbH4hDQQwLZGsVMhUy4LVXq6VWKJPJ/nC
	 rHRjrHvxySKc3PeUYo5xhYNckNDppcnKVPBkdxTpBcJehd+uuX7AI9X20dNJF6f7jdp4o
	 u73jw/yYZwXFZFU7C5iC+2FT1cqijjs/yT/4VqqJVkwm3mTKnmS0YTe4MgQux/8=
ARC-Authentication-Results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
MIME-Version: 1.0
Date: Wed, 25 Feb 2026 17:34:39 +0100
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>, 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>, "consulting @ bugseng . com"
 <consulting@bugseng.com>
Subject: Re: [PATCH 11/12] xen: Bracket uses of macro parameters
In-Reply-To: <82bbccff-fca6-4256-b228-88fc326cf5d6@citrix.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-12-andrew.cooper3@citrix.com>
 <a917dc27a7fba87a8f829558444545bb@bugseng.com>
 <82bbccff-fca6-4256-b228-88fc326cf5d6@citrix.com>
Message-ID: <5f1dfb0a9a17e06309427726c4525a41@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 2026-02-25 17:05, Andrew Cooper wrote:
> On 20/02/2026 10:45 pm, Nicola Vetrini wrote:
>> On 2026-02-20 22:46, Andrew Cooper wrote:
>>> Fixing Rule 20.7 violations.
>>> 
>>> No functional change.
>>> 
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> 
>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Thanks.
> 
>>> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
>>> index 7446533c8cfb..63473925cafb 100644
>>> --- a/xen/common/livepatch.c
>>> +++ b/xen/common/livepatch.c
>>> @@ -664,9 +664,10 @@ static inline int
>>> livepatch_check_expectations(const struct payload *payload)
>>>      const struct livepatch_elf_sec *__sec =
>>> livepatch_elf_sec_by_name(elf, section_name); \
>>>      if ( !__sec
>>> )                                                     
>>>                    \
>>>         
>>> break;                                                        
>>>                    \
>>> -    if ( !section_ok(elf, __sec, sizeof(*hook)) ||
>>> __sec->sec->sh_size != sizeof(*hook) ) \
>>> +    if ( !section_ok(elf, __sec, sizeof(*(hook)))
>>> ||                                      \
>>> +         __sec->sec->sh_size != sizeof(*(hook))
>>> )                                         \
>>>          return
>>> -EINVAL;                                               
>>>                    \
>>> -    hook =
>>> __sec->addr;                                               
>>>                    \
>>> +    (hook) =
>>> __sec->addr;                                             
>>>                    \
>> 
>> This is not strictly needed, if not for consistency.
> 
> That explains why my first try didn't succeed.  But, why is it that 
> only
> MISRA only cares about bracketing for rvalues, not lvalues ?
> 

It was actually asked by Xen maintainers to introduce this special case 
on the grounds that it is extremely unlikely to result in an operator 
precedence mishap that leads to incorrect expansion. See below:

-doc_begin="Code violating Rule 20.7 is safe when macro parameters are 
used: (1)
as function arguments; (2) as macro arguments; (3) as array indices; (4) 
as lhs
in assignments; (5) as initializers, possibly designated, in initalizer 
lists;
(6) as the constant expression in a switch clause label."
-config=MC3A2.R20.7,expansion_context=
[...]


-- 
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 Feb 25 16:36:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 16:36:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240940.1542173 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvHrk-0005tu-GH; Wed, 25 Feb 2026 16:36:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240940.1542173; Wed, 25 Feb 2026 16: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 1vvHrk-0005tn-D7; Wed, 25 Feb 2026 16:36:00 +0000
Received: by outflank-mailman (input) for mailman id 1240940;
 Wed, 25 Feb 2026 16:35: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=dz9A=A5=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvHrj-0004wB-RX
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 16:35:59 +0000
Received: from CH1PR05CU001.outbound.protection.outlook.com
 (mail-northcentralusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c105::1])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0d868ced-1268-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 17:35:55 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BLAPR03MB5409.namprd03.prod.outlook.com (2603:10b6:208:290::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Wed, 25 Feb
 2026 16:35:51 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026
 16:35:51 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0d868ced-1268-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=intaMP0SKUklSmhmeZghzwnwDD55hihskJiJezk9JSMdQMZZTTv1NnXAUGnaB0vR0CtrU+drEOE1nHSc2HaRyliF18UI16MKIfkxnr7/1oHGhkzEuyV/YiKDda1lnTRhdJzbpQOFLKiquTqxdqrrxJ4vhJeL2+EXp1t29R4bpavtmmsRDje+8k+FgW+d988RtoqOl8s9aV7yL1O/ajm0HOHMv3SzpBTciU7y70q4c4BTUtzOvPtSA+cbBD1mq5INQ/dootpwe0ePYLSCOEF2xgFIrzH6fY4x9B3JbqtQdt/qqyqlbF0O3jop5WIcsb7a6Tzyt4uDIWOE8iWmEAnABw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=SPJVgF7rbAxnethkzzJ4tlojtoPfMuwx9dLhByowQZU=;
 b=OErAdCDT6+lG/gaiMOdPukdzIw2KU/J8r0k0MZYG9c+jYDb+/Zzln+DBaS305pZbLuvaBaRhE/JsW6I57ZZ1Kts6teuX4Kbp/kJ2Ue36iMv8Z9FnpJboicrZxOWjjzGxovICjZdf8on0av4NhubkcqnVvdP7I5YIYBjBvWZsK8WKiu4qQSP55Z5Q2oIdphSdS4FzKcOneHK2LKD4e16/nSHMyRRS4C+UikC4uuZVy1NQGr/G91Af+7HWFwlo8AMClQOYF7W3rL4h6PO47cJGsS7isqBkOf7itxH8ly6fmw/DldOBk9PwevnRwIFiZjRd1rI/tiwexqL9ODRzDsN2Ig==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=SPJVgF7rbAxnethkzzJ4tlojtoPfMuwx9dLhByowQZU=;
 b=g3duEhKPA+PlHDbxxUPauY+usyW+UFcCGYIAwe/D2ZMCpA1gUiUzXNQ8EVGiXAmGrZN2BOECUzc+2SRsIJf4WQaZ941JwdvTAfXup1CRaooQ64HRsPGREjcFf6/xnNtoUppWxs6cePBI33rLLyfLRfSTpP8EqxyxTPrVvzLp2LE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <63ee91a5-914c-4a09-9ef7-1e55beedb3e3@citrix.com>
Date: Wed, 25 Feb 2026 16:35:47 +0000
User-Agent: Mozilla Thunderbird
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 <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH] xen/mm: Remove claim that INVALID_{MFN,GFN}_INITIALIZER
 is for older toolchains
To: Jan Beulich <jbeulich@suse.com>
References: <20260225125940.3804137-1-andrew.cooper3@citrix.com>
 <46a711cb-1853-44f6-a9a5-4d6252a8a995@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <46a711cb-1853-44f6-a9a5-4d6252a8a995@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO4P123CA0443.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:1a9::16) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BLAPR03MB5409:EE_
X-MS-Office365-Filtering-Correlation-Id: cbc56bb0-3124-40ca-a4f3-08de748bf018
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	3mbhVZZ26pHqJG6uE36nJfkwOkHlSYOgk58Sv8ENur2lsHxomJ+7w/mUcRbRe/kUnVwEd33FxONAcXubW58rQOKa0MS4qVc/DfBUm7U1+pHLyvNrD7r+ZA5EdDjG576cs1BFiUcYZLqA4RgC58fFg7qvOzywoerx7XJ8i3U881jK5HBNtW/NlAF1qgDY/hLQIXBVJh9FOcAdVdOgezkZsEB3Sp6AOdcLU/a4BY73Bj1+MEjQH23tZfYZz/BapUK5e2asTZLARVclBG8oOmHidAZrDejXfvBNQYpu6dsT2Q0Moiyy8jnZPmXw13E4WJqndwCmTAlxrpIihvPrDeDY7cBnkwz3tVR2u4mXYjEpLqdbLBq5lpsN4hIJ4gsEVIkjUV0UtFrtTKXobrBOwgTBWhof+4kKYkvLkN1WvCpiKiNr3G2MWYUVjcIONbg1q8DQH/NxkZ6mU32wpqicgkgNNFkQ8FPz+TxQE8H6SX3IRQCuTwpjL2N5DiNnHSw7s8E0rZviZktD3xaMSI+WitUo+bNYVOtCZltQT2gIR79ae1Ewu2mEBk6sNOv0hY5Hc/pLEELwZJOVigYegY134EMj2JL4Y/47R+PqSpqlmFhIwvhtKgG2HM3O3eLxDzKHF4eEeB25Hb4RCI0HyEYJ7BXdlg28EKF09TG/saCBK/Aa+/aAEXgwq1c3FW7qRRWYPLBFgfJR8x6nS023e6+uMxe3QISERuq2aSbN9UPpNgaPbwA=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?YWV4ajlPc09mQ0NMd2NtMlZ2TUhuTzFaeG51blBIRndoRmhWSmhjbVplVm9W?=
 =?utf-8?B?azNwUEprMDk5V2M5MlcxaEZHNkxJd3FFd3FHRE5EUjV0ZlZaL2ZOMGxqdW1H?=
 =?utf-8?B?dnVSUWdONWcwZ1ZSdmowVU5oZThHSEprRGVYbGM1c3JqZHQ4cFdMTlN0R0pU?=
 =?utf-8?B?c001MDA5dnRKeFdFM1dhTXh6SndGa3FsRFVTSExha1JvdTh0VTRKamRyUkh0?=
 =?utf-8?B?TkhYbFRiNkdkWHBRL09JRHhWbDBBZEowSmM4N3hRdnZIa1pyZWt1d1hacUFW?=
 =?utf-8?B?aFBOZ2NYbHZaaEFwUzNFUDZDK3NMbkpyUzhZbDRPQXE3dzZxb1pvQ3B3amxm?=
 =?utf-8?B?Z2E4d2pxeEJSdWNvMnFRTVNVVEZVQmM5SHA1SDZ1UkZiZHJOYjVsWGdPL3N1?=
 =?utf-8?B?azB0RXZjRndDOFRWVi94bHlTaGRXM0M2eVcvSFpKMm1PZjllQitFcXNGU21t?=
 =?utf-8?B?RmYwYVZSalJhdzhxK1pqaTdQZmZZSGtLUnRCZlJHVjBsSERvSEhRT21hNWRV?=
 =?utf-8?B?TitMQkdIMmdOREJtWmk1MlM1TXIrTnE5bk1sZzFMY3JiYitDVVBjeW8yQkZV?=
 =?utf-8?B?RDdQQ3gvY1NIZklwL0VuYUpYNzlnZE5udG5Od1VMS2dXWC9GQXJSbVhxZ08x?=
 =?utf-8?B?R1N1Q0E0WHp1NUNhK2Z2ZEU5cGk2c0xtZjdYQ0JrTGl2UjVPbUVzWStpNkcy?=
 =?utf-8?B?VXNnQ0syemtEYWRUd2p3RGp0cDBMS0Q4K2RYelFTOThQZ3gySUpZOWFlM0lV?=
 =?utf-8?B?SnExM2F5ZnM1cDB0UnRjNGRJZGVGZGJ0d0tzTU9PTDUzd1JXY0NXTGFnZWxi?=
 =?utf-8?B?V3dxUEYybUFXWXFyYVhXdktETzdxSUFQMDdmRXZuTjlGcnk4RFoxT21LRDVC?=
 =?utf-8?B?WU1ucmZydW51U1BqWmZXRHdnRVhVZWdVcU1Wb0dFOStGTHpMT3VYR1hWR3RX?=
 =?utf-8?B?Yi92dDJndDg1dFRYaGdJMWFGWUhTTTRQNmFrS2o2V1lzck12cy9BQkFIdG9N?=
 =?utf-8?B?bURDYkRQMnIzK0g1ZjF3YytMb1BlZEpxZkU0dUptR3pFcms5Y2YwRTN4WnNM?=
 =?utf-8?B?a2xzTEV0STNGVmZRaHlXS0RlRlFTSmlWWmVjczhxZGkwSEhSLytHZzljR2c5?=
 =?utf-8?B?Q1ZuREVXakVIRm1kV3BoZ0Y5RnYzZUFlL3N3dFVxd3ozU3dZdXd5bTZEaFJW?=
 =?utf-8?B?NUg5U3FKWDIvdlpIK3FsajVDdENEMXpTdW9iUktvWEhPTTdSZjNmTE50bkxv?=
 =?utf-8?B?WlVwVU1FOVlzbFl1RDQ1RUJlNVFubUY3bjBTN2pSbStWbzM1UzQwelhFWHdz?=
 =?utf-8?B?MDVpTEpqeC9ZQ3J2N0E0RSsya1JkaDJ4VWlLM25nSVR3TXg0bHI5djRVNjls?=
 =?utf-8?B?b1U1K0xKT1FqTVcwbHNvRHc5OVhraTk5Wm5UWURBeFF5NWRoYkpYblpCNTZh?=
 =?utf-8?B?ekUzSmoxYmtPQTlVYU9YQXJvd2NaL21EaEpaOXdDRnhqcStyVnNMN3JablNp?=
 =?utf-8?B?bFVaV1E1ZDg3ZHhCMjcwUkVMVCtVQ1NhSnZUTjF5L1NjMUJXTm1LQmNpM3lh?=
 =?utf-8?B?OW16UVBERkNocHJwSGo4bFhEZ1haak9JOTBFQVlrVGxsNmVYVUJRdXNodG1o?=
 =?utf-8?B?TG1lMWxvckhSblh0NHJ6UnFXS2RzQWtsQmRSZDE2eVNycTREam5TMzBZZitk?=
 =?utf-8?B?WnZndUhwUmhEYVVtM0l6ZlUvbXNlQ3p4MjZqYWRWcnVnWXYxSnJaZWp6ZVR6?=
 =?utf-8?B?YXliaDBFdmxVbGJmcWxQZ2R0UjN0WjU0Q01TWUVQdVAxNkxIaEk1Y1ZiOGJD?=
 =?utf-8?B?N2YySmNGWERpRlJ3VmwrY3FTUDBlTElYWEI5WkNrQXFjWTh3NXZpaW15bzRl?=
 =?utf-8?B?dFB2bnJaME9HTEFiSUtEMkMwRC9lQklmekxCWTBjY0tmeXJkSGFMU3NvSVNz?=
 =?utf-8?B?cEI5M2FvNG5XSExySWNYT0ttRTl4UUZEUTlvZzlHTHpCSXQ3b0lvR1lVOE9N?=
 =?utf-8?B?REhHQWNnZUcwNXdMSHdJa2RlNXQwVVRac3ZlMkhydEx4RUpYOUM5VThFTzMz?=
 =?utf-8?B?MGRBRXorckFCdzJKejVNMnNoaHNBbXgrMEZLQUU3d0VZM1l0Y0dHTHU4azdm?=
 =?utf-8?B?NUxLVmV6cDhCb1NPNkFBb0NkU0N6OU8zSDJKY1lMeE5ETlNLR2ZWbEhCMVBJ?=
 =?utf-8?B?L01HejA3Wm5ZZEZ2QTZKZHlXdjlTTjNaTmFMeGhUbm9EdUJXL2NiQzVEaTVj?=
 =?utf-8?B?Z3dCQjRuekNFUjV3eHBkcVRSS3hQT0hBbjcyc05KSSs4NHltMzhabnZZMHRZ?=
 =?utf-8?B?MVgwS01OVE5kVUJ2b200eEE1NTE3a2dIWTNQM25zcU5HSi9DdVRMZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cbc56bb0-3124-40ca-a4f3-08de748bf018
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 16:35:51.2285
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: TqEKiYNyf5eziKIhzUeca+2gMqOgtxrsHWOhgj5g0Vm2qA3tI6ufD/XvvlLpsFAk+My5ey5DxzZSK/Zw+NLnfRSO1GGqR8LJBwHCB+m/2NI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5409

On 25/02/2026 2:34 pm, Jan Beulich wrote:
> On 25.02.2026 13:59, Andrew Cooper wrote:
>> This was never because of a bug in GCC.
>>
>> C requires that static objects are initialised with constant expressions;
>> _mfn(), as a static inline, is not and cannot be made to be.
> Of course, and I think the comments were meant differently. What wasn't possible
> to use (with -std=gnu99) due to the referenced bug is apparently
>
> #define INVALID_GFN ((gfn_t){ ~0UL })
>
> Now that gcc5 is our baseline, do we perhaps want to use that and do away with
> INVALID_GFN_INITIALIZER?

Oh.  Yeah that's very much not what the comment suggested.

Changing like that almost works, but there's one snag.  common/memory.c has

    BUILD_BUG_ON(INVALID_GFN_RAW + 1);

and with the _RAW constant wanting to go, the obvious:

    BUILD_BUG_ON(gfn_x(INVALID_GFN) + 1);

doesn't compile as it's no longer a constant expression.

It's not clear what to do here.  I don't think we want to keep
INVALID_GFN_RAW around for just this, but nor am I completely happy
dropping the BUILD_BUG_ON() either.

Thoughts?

~Andrew


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 16:39:49 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 16:39:49 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1240956.1542184 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvHvO-0006lv-3Y; Wed, 25 Feb 2026 16:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1240956.1542184; Wed, 25 Feb 2026 16: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 1vvHvO-0006lo-0F; Wed, 25 Feb 2026 16:39:46 +0000
Received: by outflank-mailman (input) for mailman id 1240956;
 Wed, 25 Feb 2026 16:39: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=dz9A=A5=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvHvM-0006ld-G3
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 16:39:44 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 95a5e455-1268-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 17:39:42 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by BLAPR03MB5409.namprd03.prod.outlook.com (2603:10b6:208:290::8)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Wed, 25 Feb
 2026 16:39:39 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026
 16:39: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: 95a5e455-1268-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=auUwfmrmS33BBQlob4JDxIcYyVbwcrXBcHJMjgHJUYVoA/5KJllv9/aTepNpfm4vw1dhqZwxzkdwg9eFpFYzPeUgJNUHJID2QU8NQOeaTa332PjLEGDkUKpk+zw4VrgqUXqnyx2MK1aX9FOXHR+uK3HMqGwXF4Tap0hkVWyJzOtvfCZw4wBDCprejE/oFlAd3aiOE4pL/Tf8WjJ7yQw2/VeX0YHZhby8j9U8TXpp3I0Jgyhg8lDqNij9kSwX3aejhlYTE1BCdz1CNB1X9HT3MSw/VC2f4LplYDNJz3EICi2Z530fToQiAlkNs1RH/LCMODgdT0bYq5a6ceaT3mKM0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=gJ9FlLJ8rkesoG3m4cechJW+m1JGhnszbopXNOLmvr4=;
 b=BYB00zMCKhg5JQ53wMfStt9syuZE4vAWk+2A9g/UuOxbTP2jhpO2qaXfNBCEAJttSHvEnbNV+A/EOhyTjfMzfkSeTdkvi7CUZb2altC7bRpmLdX2I+WaVFEBohL/znlBgadU6/kHQL8ykxQAhCBoMcO90loS9FmAhYC1be5yjbCwKAnfpjtjwcKCcjPCGYR9HX7g8OWIumbpn+Skp4vY0pgadB/xWCW3xqlLfcxxZiSEA7lOraJKGSlJ1csOYxKClWwu+2vuKFQh6Bc5gKUMK2hHL/pl/wv/brusl8cM8q3dlOnQiXG3zS1RT4OzS3i3kisPlpxF5Xn9tLWpLuzigw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gJ9FlLJ8rkesoG3m4cechJW+m1JGhnszbopXNOLmvr4=;
 b=h68oAF1+Oes7LVwru1rbKWj3i4TxlrdHmYHWmVu8rmsXwM9Rftx8oMi5ZzG3/01NBB6fGpr9Jj65aoUAxwBMHU6YIQetOQf6bhPtnUxhMHrgvFKP1GKV5q0tSFPLgZHGblQKa9KRYVoUFidYirzPJLygnhhzyPuLb8hmRszXzX8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f296cd52-04eb-47bb-ba4a-29dbf1834bb3@citrix.com>
Date: Wed, 25 Feb 2026 16:39:35 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 Xen-devel <xen-devel@lists.xenproject.org>, Jan Beulich <JBeulich@suse.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 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>,
 "consulting @ bugseng . com" <consulting@bugseng.com>
Subject: Re: [PATCH 11/12] xen: Bracket uses of macro parameters
To: Nicola Vetrini <nicola.vetrini@bugseng.com>
References: <20260220214653.3497384-1-andrew.cooper3@citrix.com>
 <20260220214653.3497384-12-andrew.cooper3@citrix.com>
 <a917dc27a7fba87a8f829558444545bb@bugseng.com>
 <82bbccff-fca6-4256-b228-88fc326cf5d6@citrix.com>
 <5f1dfb0a9a17e06309427726c4525a41@bugseng.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <5f1dfb0a9a17e06309427726c4525a41@bugseng.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: LO2P265CA0243.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:8a::15) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|BLAPR03MB5409:EE_
X-MS-Office365-Filtering-Correlation-Id: 2ac57325-7b7b-4a63-bfae-08de748c7824
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7053199007;
X-Microsoft-Antispam-Message-Info:
	SyRXDc+HzGfmNt7ar32MOQGxaXKhAQ0yRVH/uoSTuwux0lNMjDzAQasqvQIzbP/aYiist3FA7pLWl+mjjII/jrW6HuEQncG39uMSTljmPlBR7ILTtlkwQ3J+FwMhWZ4e5pScl2yHbhmAUA5cwnBPyLQxGeDnNlslyJxldXZlAUcSqYIEbecg2D3HyA9rB5ukALNHkRsfBHwFC3DtHbecNJ4uHqDsunHzFLl3G1XM0dmLQfVFLW9eU8oUQ7ZkQvokO+TCc/GTTqilVCFH+TD9NevJ/Ot9hJZhNcTZSv3f4yjmY7GKleqSmLRF+6y2fAMTg5w/xe98rrRnpq/K991Vd4Jce9iw0kh86EUR6g7d7Bh0giHg2EE6F2CUq6pSsTM80Vr6a5e1z64n1XyOAWifQ/kSLqSQqHc/yW1OLkyTw8mtFVoH+cXxrSjVwXNnSVWRUTfNbeD+GY42iBHq+gY8JB8o/8Ov6MZQa7UE70ZQ1O9i6ly/hfKHjmSmq7nkBb2btXNXUKOL1TR+2Fvk1gJryG3BbN6HHidW7UEa8lhF7b1iAnhGkayFThhrl4v5M902ROHov+SjedIzTsVZmdbwgqKJGrMYu6H8g5n7XsKQ2tFOykoXSah28qY8Xclw2qIfYIJFuT2v7iL7JMLpi6PCt2apkuzVU23Qwjce8g+nUJDvkJtFpNQG0/eNDXUjMuiBnkhRzTP2o5EVLJKHtTi3rRUevM+mWoYU0cf5OYXjCto=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?TTdnNmsyUUN4bVdsd0pBVzhrYzdrcVpVbzF6b01iVVljckdjNEl4S2dXYWZB?=
 =?utf-8?B?YzZFUmZrR1BOMnB0a2tpMmwvbHZxUEM2dVFUU2JyaDRmSTdFN1ptYjJHWnVu?=
 =?utf-8?B?SjJaK0dtVlpsWWNyaGFxTk8yVDZzUi91akhjNlQ4MGRTeEVNQzQ1R0hPeXNZ?=
 =?utf-8?B?Wkw1VGFWaXAyMGpOb2NYdllCODRubFNtUlJuZFdYakp5ai9uZjNxbStNSG5i?=
 =?utf-8?B?Uk1zVGhOSlF3UXhEaUVLNmNrVkFUSUM2ZnhjaUViTDVtZE1YOHJrY2JHdFM3?=
 =?utf-8?B?YW0yaTl0dFB0OHE3WkEzSXIyazlwWUl1eEhYNlNKUUt0RkdDWC9ubm9wcTM2?=
 =?utf-8?B?VFR1dDA4Z3NZamRnSFZCN3B2RFdiYTlUa2E5Z1RkWnZpQlBKMzM0U2NjVFR5?=
 =?utf-8?B?VGtOVHhMWW4rV3YvaHpOQktpcUxTWTR3WnFpblBpMmh1MzdzUFRmWEZBN3Nt?=
 =?utf-8?B?ZXRBc1dreGp0d2Z2NjRRaTlQMEk0RzlXeEVsMlg4dWxwVFVrSWovejljR0xN?=
 =?utf-8?B?RlNMandCTnJaRXdmNmQ3b1pJMGNNZEtqZlhvOXI2eGFNMEhDcU9tdWZOMkVC?=
 =?utf-8?B?VGpnNHRMaGd2Nk9TaG9kRVRGL2c4MmNPZ05ZK2ZHbXNkcDJuc09jUmllYXBv?=
 =?utf-8?B?WkZiSHNJSWRYeWdPOHhISVowSkF3c0lPMHBQUFNGZWlrT3hWOHI4SUxvRFpY?=
 =?utf-8?B?eVJDd3hBbzQzZlNRVjNLdUgxUlhoVWo2VEVTSVUvb1BBbUFlQUhmN2ZGd0k0?=
 =?utf-8?B?R3lVQWRJcGYzU3d6a1pudE9EZEx3ZXpvWkd0b2R3V2tFRm5zQXlWN2JCdlo5?=
 =?utf-8?B?ajg1dDZnek1HSkZnTVpYaVpVOW44bzFCQldMRngvY2NLY2lOc3JJbVVwREFh?=
 =?utf-8?B?dGZYam1sVmhacVNhN2hCN1pqMGMxLysrSlZmZFkreFY3NmdWYmVnWXhDTXdL?=
 =?utf-8?B?TWZod29QR3hDQnBlcmpkVWpiOWx1aEJ1QzJRc1poaERwRzduQUw1TEdPZDI2?=
 =?utf-8?B?RHlKYUFjem9rM0lFTklsZTRmUE81ZUtPbGdWaTFGMk81U3pNRDhZYmRNOG5h?=
 =?utf-8?B?RW9CSlZvVktsMTMxYmhZUXJJeG9GRFFBZnlZSUlYTjBvMCtjVDFJSUM0YkEz?=
 =?utf-8?B?TjVDdkNtY200a3FSbzhrWFZGTGtsME5UZmpiZitveWx6L0o1aVRkUGluVHov?=
 =?utf-8?B?eStjMjBRa3JFZ0EwUW9zaGdGamxJZmx6ZWx3SkFYZzVFU3lWdkFkNXVWZTFB?=
 =?utf-8?B?dHRtYU9FWlF3WnArcUhocW1KdVFLdEN1U1g1UEtQRTVGZVoyY3I4VHVHNEZB?=
 =?utf-8?B?RmQvQXhtZHk0Ym9abTM3dUI1cjUySTFZRWJLOHZvZVIxbkdYQmlYUTNLZTBh?=
 =?utf-8?B?cEFtdkZqU0VRQXdNeW5makpEdUxKalhCOTYvbGN5NDVKVmdrSFdnaXdzcllx?=
 =?utf-8?B?eFpLdU4vdzZOc0lieDJvZHE3dG9YZmdqcnBiTVVMdmFOdHFXa0wyQXhETFBj?=
 =?utf-8?B?Tmk5UTJ4WE51b0hrZ2dlMmxIT0NWMzI1bG1SOGdNaUdablg3dzc5ZS9mQkpl?=
 =?utf-8?B?eVVySTQ5ZWpnM1dvb216Wms0Rk9nYWxnYmVQUVk3NDdJR1FKM1U0QmNTWFdT?=
 =?utf-8?B?TlBCS2hQbEd6ZlY5UldVU3hYOUxxak1kMEtjOFlYR0Q1MXR3SWNpREREbytm?=
 =?utf-8?B?R2ZDaE5jWXZoQ0FyZG10NElrbkFnbDFrV1Vqd2lHcmp1d2JvYTY2a2xhbXdw?=
 =?utf-8?B?L2l6M1dSRkx2YSs0czV5d1pNMGxaQVpQREJlTWJiQkhJR0tEazhvazdJRWdO?=
 =?utf-8?B?NjlWcmoraGRNVHlLYmxJanVoQ08zSm5GNVl2d2lueHU3T2RhYkZhMmt4d0hp?=
 =?utf-8?B?TW9NNzFYTWxYQmh1Z0JkY0lxZDNqb3NIaEVyNThxVnR0YWM4ZDJrUlVUTTR3?=
 =?utf-8?B?Ymk2Sit0RVZ6Vzh6ZWJHWjloOVVxeG9uU0psNHl5NlB4Qis3ZU0reGtLZHFB?=
 =?utf-8?B?ekM2Q3k1UnVpTlc0ZUpZdUlXNmpnd1dXOTRLUVhGM1o3QmNzc0hhOHRWL1Zy?=
 =?utf-8?B?SHYzaWw2UmhaMjNpVDFZUUZ2bEdJMG1vcTlvTzB5RWFkTndZbUN6TkphNzdm?=
 =?utf-8?B?Wm9OQ29VYnBNYjg4TXVGUkZERE5VbXBiWmd3QjU5VkRYbkdheUp5cUpRbVRi?=
 =?utf-8?B?U0pIL3oxYTVvZVJsQ1cxZnhMaUdxZmR3N1d6NFR1VlgvV1k3b1FxbUo0Vml2?=
 =?utf-8?B?VzFubjhvUEFmeGF2MDhwaG5XelY5QkhOblpKeDh3RHA4UFpVZENDb3BvemVV?=
 =?utf-8?B?WjFYdTcxbFV4LzBQa0R0c0cyMS9QZngzOWt5RUdjcDVpd0Q4UExldz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ac57325-7b7b-4a63-bfae-08de748c7824
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 16:39:39.3758
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: cfnFkdhmVmuxTF7BGYK9Cf0y3844r6Izn2xJGMAiUew6lgRdqPLubXL33WuQV0TqaoMlSUUzG/BEk+3Tm9PgnlVxEKyNX/EMZVXgeSs4qLU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR03MB5409

On 25/02/2026 4:34 pm, Nicola Vetrini wrote:
> On 2026-02-25 17:05, Andrew Cooper wrote:
>> On 20/02/2026 10:45 pm, Nicola Vetrini wrote:
>>> On 2026-02-20 22:46, Andrew Cooper wrote:
>>>> Fixing Rule 20.7 violations.
>>>>
>>>> No functional change.
>>>>
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>>
>>> Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>>
>> Thanks.
>>
>>>> diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c
>>>> index 7446533c8cfb..63473925cafb 100644
>>>> --- a/xen/common/livepatch.c
>>>> +++ b/xen/common/livepatch.c
>>>> @@ -664,9 +664,10 @@ static inline int
>>>> livepatch_check_expectations(const struct payload *payload)
>>>>      const struct livepatch_elf_sec *__sec =
>>>> livepatch_elf_sec_by_name(elf, section_name); \
>>>>      if ( !__sec
>>>> )                                                     
>>>>                    \
>>>>         
>>>> break;                                                        
>>>>                    \
>>>> -    if ( !section_ok(elf, __sec, sizeof(*hook)) ||
>>>> __sec->sec->sh_size != sizeof(*hook) ) \
>>>> +    if ( !section_ok(elf, __sec, sizeof(*(hook)))
>>>> ||                                      \
>>>> +         __sec->sec->sh_size != sizeof(*(hook))
>>>> )                                         \
>>>>          return
>>>> -EINVAL;                                               
>>>>                    \
>>>> -    hook =
>>>> __sec->addr;                                               
>>>>                    \
>>>> +    (hook) =
>>>> __sec->addr;                                             
>>>>                    \
>>>
>>> This is not strictly needed, if not for consistency.
>>
>> That explains why my first try didn't succeed.  But, why is it that only
>> MISRA only cares about bracketing for rvalues, not lvalues ?
>>
>
> It was actually asked by Xen maintainers to introduce this special
> case on the grounds that it is extremely unlikely to result in an
> operator precedence mishap that leads to incorrect expansion. See below:
>
> -doc_begin="Code violating Rule 20.7 is safe when macro parameters are
> used: (1)
> as function arguments; (2) as macro arguments; (3) as array indices;
> (4) as lhs
> in assignments; (5) as initializers, possibly designated, in
> initalizer lists;
> (6) as the constant expression in a switch clause label."
> -config=MC3A2.R20.7,expansion_context=
> [...] 

Oh ok.  I'll make it match what was agreed then.

Thanks,

~Andrew




From xen-devel-bounces@lists.xenproject.org Wed Feb 25 19:40:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 19:40:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241035.1542265 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvKk0-0004CM-2h; Wed, 25 Feb 2026 19:40:12 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241035.1542265; Wed, 25 Feb 2026 19:40: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 1vvKk0-0004CF-00; Wed, 25 Feb 2026 19:40:12 +0000
Received: by outflank-mailman (input) for mailman id 1241035;
 Wed, 25 Feb 2026 19:40: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=2gY1=A5=linaro.org=pierrick.bouvier@srs-se1.protection.inumbo.net>)
 id 1vvKjz-0004C4-5B
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 19:40:11 +0000
Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com
 [2607:f8b0:4864:20::1029])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id cadb8b89-1281-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 20:40:09 +0100 (CET)
Received: by mail-pj1-x1029.google.com with SMTP id
 98e67ed59e1d1-354c825dc77so3273892a91.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 11:40:09 -0800 (PST)
Received: from [192.168.1.87] (216-71-219-44.dyn.novuscom.net. [216.71.219.44])
 by smtp.gmail.com with ESMTPSA id
 98e67ed59e1d1-359135ef1d7sm1966201a91.5.2026.02.25.11.40.07
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 11:40:07 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: cadb8b89-1281-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772048408; x=1772653208; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=E6eg/6/iWGN6yvIdu8IOwUGupRbhzHe3YYFy7xHBxCo=;
        b=c6b0T6ljcR2Q1kS/mM2/3nO5w9qVXehAIfNI9nsR1c6Mr2FChg6am6sr61mZ81C0lx
         +QTlkjo98cRFlfU8dZVJDD8bGFNom0AU+xYItSXv9vMQdR6PRz1qNsyfhbzhI1TJU+ss
         1T4onffnlBizibthd+Tw1459t0HR0C7WzZe8q7N127zS6LlsuhWJatdAZRKtBXpwtcYT
         908kYEpyFOR9wya2SdA7IHKj6470lYnV7InZsxA5xkQaxJJNB22I1JFjdlnkERx68daj
         XpafgSdGveGxf62DS5iE3UJ+ps31sKVNN7wgGDS6+bhC+29fr9TSeUEaquxNyGBi6YWn
         UQTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772048408; x=1772653208;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=E6eg/6/iWGN6yvIdu8IOwUGupRbhzHe3YYFy7xHBxCo=;
        b=hDCpAcHNP0vKWCLsMrC0NOR2M3hewMueTuLpuo1MMUVBiV+W22n1k79PTr3HALOx9o
         qI7yEKGhVRRV7WYOeGEdYf/ttWD6VyOJYQfRT6IJHLxCZDKh3RZ81/VxdmPKNSzT4hCs
         18EyTDSvUhN4KSOabyQV/LzfiAk5ytKkZ+DQRwcHfpRwGE3A9LKNPuuD7KPEEPT+nKTC
         2jBO63I75lDNUKKH4CesXjRW4qfQs822aBzHMUOFjiZNc8w6fFFTFoNx0wxZbrkPqJc9
         P1NSmMM2YhF7eD3I/TOx3CiX0c5JfHLRn9WXno+VkMEDKRNfgmoxG8zVUmPe5INgqgdj
         arfA==
X-Forwarded-Encrypted: i=1; AJvYcCVXEa1zJLUNEgtGJL2usCTrH+tM9+/qDTVgJ4QzOgEuwGtjy/wut7U6UQL3gGkSmWwCJWZ72iAsZy0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yx2UdA6R+zmYGbYCrS7idwdZJyXBOwKRRm9/O0W+ldvdKxUP0ee
	zyk9GmI591L2HZ+9MRl2j+3TRkD8+2ag5Jnavyu8c8Nx6Ey78d4xm7Wo34u9at19qNYU/LHT36t
	COKTs
X-Gm-Gg: ATEYQzw2qObP5fGKQUmnYzyet/s2iL4vQ7RvRP+2DUdBdA+dfRnPyuvm4eioFK7vH8Y
	XK0zsQh5oyL1cWhig/3XOoSWAOW6CtIGuUK5rwtgUhgO1JLl2PFSzNaRJs8R9aEkCSt7RPiFWoT
	SNSLaGHy6VKJOfpv5Nr2Nn4rJfTHlf3iuHpUgAF6wawhoImvvxqOyQXdLe3OPKm7reWeRSrFx+I
	IkWvjoLUIbnhMtFw7Nv9ew4zlyxg8sJTWx69WiQP9B2jEfAUnxggny4tYn8xIKCJVZkQTkGtzLL
	2V0PyjshdbzU+7jllOYTsrCwUFX+KTqSBZIT05Yb5iccgVzL2kO8nhHYBNjXoQMQN+BYv3XRSz3
	RfZPQisQIu/8lSbXZdNBmM0JBa40vyIg3WTCqOzzWviEWtpbmyTBQfgjsr9itT+VrG9xyW2B2Fn
	U60ZQ1Prmqk9/vd7oXr9Vyz+0/S6FaIm9YhkLR7xhDDxUZ7kEptuI77mvLFNH6OK+bcoB1
X-Received: by 2002:a17:90a:c887:b0:356:23be:7ecb with SMTP id 98e67ed59e1d1-358ae808fb4mr13664176a91.12.1772048408149;
        Wed, 25 Feb 2026 11:40:08 -0800 (PST)
Message-ID: <805deb11-cba0-4567-b296-7ee35febe18a@linaro.org>
Date: Wed, 25 Feb 2026 11:40:07 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 1/5] accel/kvm: Include missing 'exec/cpu-common.h' header
Content-Language: en-US
To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
 xen-devel@lists.xenproject.org
References: <20260225051303.91614-1-philmd@linaro.org>
 <20260225051303.91614-2-philmd@linaro.org>
From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Autocrypt: addr=pierrick.bouvier@linaro.org; keydata=
 xsDNBGK9dgwBDACYuRpR31LD+BnJ0M4b5YnPZKbj+gyu82IDN0MeMf2PGf1sux+1O2ryzmnA
 eOiRCUY9l7IbtPYPHN5YVx+7W3vo6v89I7mL940oYAW8loPZRSMbyCiUeSoiN4gWPXetoNBg
 CJmXbVYQgL5e6rsXoMlwFWuGrBY3Ig8YhEqpuYDkRXj2idO11CiDBT/b8A2aGixnpWV/s+AD
 gUyEVjHU6Z8UervvuNKlRUNE0rUfc502Sa8Azdyda8a7MAyrbA/OI0UnSL1m+pXXCxOxCvtU
 qOlipoCOycBjpLlzjj1xxRci+ssiZeOhxdejILf5LO1gXf6pP+ROdW4ySp9L3dAWnNDcnj6U
 2voYk7/RpRUTpecvkxnwiOoiIQ7BatjkssFy+0sZOYNbOmoqU/Gq+LeFqFYKDV8gNmAoxBvk
 L6EtXUNfTBjiMHyjA/HMMq27Ja3/Y73xlFpTVp7byQoTwF4p1uZOOXjFzqIyW25GvEekDRF8
 IpYd6/BomxHzvMZ2sQ/VXaMAEQEAAc0uUGllcnJpY2sgQm91dmllciA8cGllcnJpY2suYm91
 dmllckBsaW5hcm8ub3JnPsLBDgQTAQoAOBYhBGa5lOyhT38uWroIH3+QVA0KHNAPBQJivXYM
 AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEH+QVA0KHNAPX58L/1DYzrEO4TU9ZhJE
 tKcw/+mCZrzHxPNlQtENJ5NULAJWVaJ/8kRQ3Et5hQYhYDKK+3I+0Tl/tYuUeKNV74dFE7mv
 PmikCXBGN5hv5povhinZ9T14S2xkMgym2T3DbkeaYFSmu8Z89jm/AQVt3ZDRjV6vrVfvVW0L
 F6wPJSOLIvKjOc8/+NXrKLrV/YTEi2R1ovIPXcK7NP6tvzAEgh76kW34AHtroC7GFQKu/aAn
 HnL7XrvNvByjpa636jIM9ij43LpLXjIQk3bwHeoHebkmgzFef+lZafzD+oSNNLoYkuWfoL2l
 CR1mifjh7eybmVx7hfhj3GCmRu9o1x59nct06E3ri8/eY52l/XaWGGuKz1bbCd3xa6NxuzDM
 UZU+b0PxHyg9tvASaVWKZ5SsQ5Lf9Gw6WKEhnyTR8Msnh8kMkE7+QWNDmjr0xqB+k/xMlVLE
 uI9Pmq/RApQkW0Q96lTa1Z/UKPm69BMVnUvHv6u3n0tRCDOHTUKHXp/9h5CH3xawms7AzQRi
 vXYMAQwAwXUyTS/Vgq3M9F+9r6XGwbak6D7sJB3ZSG/ZQe5ByCnH9ZSIFqjMnxr4GZUzgBAj
 FWMSVlseSninYe7MoH15T4QXi0gMmKsU40ckXLG/EW/mXRlLd8NOTZj8lULPwg/lQNAnc7GN
 I4uZoaXmYSc4eI7+gUWTqAHmESHYFjilweyuxcvXhIKez7EXnwaakHMAOzNHIdcGGs8NFh44
 oPh93uIr65EUDNxf0fDjnvu92ujf0rUKGxXJx9BrcYJzr7FliQvprlHaRKjahuwLYfZK6Ma6
 TCU40GsDxbGjR5w/UeOgjpb4SVU99Nol/W9C2aZ7e//2f9APVuzY8USAGWnu3eBJcJB+o9ck
 y2bSJ5gmGT96r88RtH/E1460QxF0GGWZcDzZ6SEKkvGSCYueUMzAAqJz9JSirc76E/JoHXYI
 /FWKgFcC4HRQpZ5ThvyAoj9nTIPI4DwqoaFOdulyYAxcbNmcGAFAsl0jJYJ5Mcm2qfQwNiiW
 YnqdwQzVfhwaAcPVABEBAAHCwPYEGAEKACAWIQRmuZTsoU9/Llq6CB9/kFQNChzQDwUCYr12
 DAIbDAAKCRB/kFQNChzQD/XaC/9MnvmPi8keFJggOg28v+r42P7UQtQ9D3LJMgj3OTzBN2as
 v20Ju09/rj+gx3u7XofHBUj6BsOLVCWjIX52hcEEg+Bzo3uPZ3apYtIgqfjrn/fPB0bCVIbi
 0hAw6W7Ygt+T1Wuak/EV0KS/If309W4b/DiI+fkQpZhCiLUK7DrA97xA1OT1bJJYkC3y4seo
 0VHOnZTpnOyZ+8Ejs6gcMiEboFHEEt9P+3mrlVJL/cHpGRtg0ZKJ4QC8UmCE3arzv7KCAc+2
 dRDWiCoRovqXGE2PdAW8788qH5DEXnwfzDhnCQ9Eot0Eyi41d4PWI8TWZFi9KzGXJO82O9gW
 5SYuJaKzCAgNeAy3gUVUUPrUsul1oe2PeWMFUhWKrqko0/Qo4HkwTZY6S16drTMncoUahSAl
 X4Z3BbSPXPq0v1JJBYNBL9qmjULEX+NbtRd3v0OfB5L49sSAC2zIO8S9Cufiibqx3mxZTaJ1
 ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=
In-Reply-To: <20260225051303.91614-2-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 2/24/26 9:12 PM, Philippe Mathieu-Daudé wrote:
> kvm-accel-ops.c uses EXCP_DEBUG, itself defined in
> "exec/cpu-common.h". Include it explicitly, otherwise
> we get when modifying unrelated headers:
> 
>    ../accel/kvm/kvm-accel-ops.c: In function ‘kvm_vcpu_thread_fn’:
>    ../accel/kvm/kvm-accel-ops.c:54:22: error: ‘EXCP_DEBUG’ undeclared (first use in this function)
>       54 |             if (r == EXCP_DEBUG) {
>          |                      ^~~~~~~~~~
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/kvm/kvm-accel-ops.c | 1 +
>   1 file changed, 1 insertion(+)
> 

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 19:40:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 19:40:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241037.1542276 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvKkF-0004Sc-9m; Wed, 25 Feb 2026 19:40:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241037.1542276; Wed, 25 Feb 2026 19:40: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 1vvKkF-0004SV-6C; Wed, 25 Feb 2026 19:40:27 +0000
Received: by outflank-mailman (input) for mailman id 1241037;
 Wed, 25 Feb 2026 19: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=2gY1=A5=linaro.org=pierrick.bouvier@srs-se1.protection.inumbo.net>)
 id 1vvKkE-0004C4-25
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 19:40:26 +0000
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com
 [2607:f8b0:4864:20::42e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id d41bfc30-1281-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 20:40:25 +0100 (CET)
Received: by mail-pf1-x42e.google.com with SMTP id
 d2e1a72fcca58-827270d50d4so108647b3a.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 11:40:25 -0800 (PST)
Received: from [192.168.1.87] (216-71-219-44.dyn.novuscom.net. [216.71.219.44])
 by smtp.gmail.com with ESMTPSA id
 d2e1a72fcca58-82739dabd43sm46995b3a.25.2026.02.25.11.40.23
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 11:40:23 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d41bfc30-1281-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772048424; x=1772653224; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=QdPCqf+ZgvZyaMYq7z8u2nsVi2kkVmJgqOcGRdKnmy0=;
        b=yIJQMQcGcGtk4IhSBGmVEX2MS4rDP8CsAukNtg7zB9W8KLyCEPy8xOFxbtMMBHVQPd
         zVWQ1oHvvkwSieYTLl/1U5O6POEITh4zXwTNla4ffGBvQBp5y8ShJpumqYOOGfkpEVL6
         HP2cb0vI1ZmRMaYK1SwCy4afgVVUBtzd2qYPANkiE50ebBTGM0pGRq/ieW7n3Qga/Js+
         uegOy6oz/GiFaIfgPWfgqJ/IkazQJEq0WpTSspaA5dWapE1SHn4K7bLRVay63e/8hMkt
         cRkCrcrRnt4dRps3jGWNAMPop7V4vVxR+xROEVoy0tK5UrlicQFHmXQJK3cMl1rqWgNg
         KUyg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772048424; x=1772653224;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=QdPCqf+ZgvZyaMYq7z8u2nsVi2kkVmJgqOcGRdKnmy0=;
        b=i4h6uzu9KMHhTsvqdpl1dWxRv0vkvYzZSfVk6BDyt+PM0n15xoE+ctD9miOqvb+VCQ
         G9ZKg6RXf0Aig+d4nHHRudvlLuv1MjYJvI6WOHeH9pkTChe7aCePgeFlTEtop3tNN94j
         AYOoo+Ht3Dgfl1QaMXbv9HgsXBl9T/xlbik0B9V73Eswp9vyaOfR/Pirj2QsV8myzztb
         7X1kTE/6DDw226gZJBMmU6bEsDnegBFn85/lKTC5iR+uwDLY39L2tV+BlQ+6KYL/AcNt
         hIuesh0IJw3o+bWeFdEayJ8sZuMoi6rg7ma06maYHKutKQtb0I4z8M5LeILCC/HRXD7h
         8UZw==
X-Forwarded-Encrypted: i=1; AJvYcCUdrZ30fgbLXgtEdRhezqjd57mUHMpnkMoAejf97OjFNbdmfAw7esG4IrPn7v16vnYANWmPAEUcdfI=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxzHPObNuiyrGS+eA/3WP2UOaEu/DZYwyEl5CL2Ola10R/di9iB
	kZOM6LI1FPTkekaZtZ7jYmsxIeW54/Nemx206JfmISXNvOqY4l0CFBG9xeD2rn4AWvA=
X-Gm-Gg: ATEYQzz75rVtQ0wZBHoMVNoHwLl/mZ8wOPoe0SjTfIxX4vIVn2zWQct+xgnoCVPwqr3
	/KzhOYx3JkHf6SOrMpJLmztU6NqiE0tJADQCwxTWRNkmbP/qtcRQwGDr85ur+minr4FfzDfsMAU
	odRdR4m0EjT20556WCSsND7wzXnUMQZFREYeqvsbE6d73BnJ4tzIi478uRQt18QMFntsnFiAxTY
	6viI58dtnCHuLf05LcxCx+Rj5uvmKb6kXY21Q/V+neK+lf/EqPp34owN/hsMUG1IAgjXvfjDL/v
	Qchh4X7PFHZE3PX05yIJi2ngCwkm4ZfA6jfFfEd32ogBF2KIq0NJMMwiqdTlq5N8p38tWOOSAVC
	YbOUujiST+ErpBotkFW6JMgjB5FCEKpYNSGYB+WQbtl/IJTUlOQlBxtRofD4SgHZz07wArZfBni
	832qSK0hXC0Hhp1GJ1RPPL8vrGGSP77Zcd97YHcONg0KBjblLj1H9EDhGBWWqF0aufW1aS
X-Received: by 2002:a05:6a00:2e11:b0:81f:50ea:5da1 with SMTP id d2e1a72fcca58-826da8bd871mr16961315b3a.2.1772048423601;
        Wed, 25 Feb 2026 11:40:23 -0800 (PST)
Message-ID: <9dab95ec-f4f0-4e5d-bec7-b773edddb3cd@linaro.org>
Date: Wed, 25 Feb 2026 11:40:22 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 2/5] accel/mshv: Forward-declare mshv_root_hvcall
 structure
Content-Language: en-US
To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
 xen-devel@lists.xenproject.org,
 Magnus Kulke <magnus.kulke@linux.microsoft.com>, Wei Liu <wei.liu@kernel.org>
References: <20260225051303.91614-1-philmd@linaro.org>
 <20260225051303.91614-3-philmd@linaro.org>
From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Autocrypt: addr=pierrick.bouvier@linaro.org; keydata=
 xsDNBGK9dgwBDACYuRpR31LD+BnJ0M4b5YnPZKbj+gyu82IDN0MeMf2PGf1sux+1O2ryzmnA
 eOiRCUY9l7IbtPYPHN5YVx+7W3vo6v89I7mL940oYAW8loPZRSMbyCiUeSoiN4gWPXetoNBg
 CJmXbVYQgL5e6rsXoMlwFWuGrBY3Ig8YhEqpuYDkRXj2idO11CiDBT/b8A2aGixnpWV/s+AD
 gUyEVjHU6Z8UervvuNKlRUNE0rUfc502Sa8Azdyda8a7MAyrbA/OI0UnSL1m+pXXCxOxCvtU
 qOlipoCOycBjpLlzjj1xxRci+ssiZeOhxdejILf5LO1gXf6pP+ROdW4ySp9L3dAWnNDcnj6U
 2voYk7/RpRUTpecvkxnwiOoiIQ7BatjkssFy+0sZOYNbOmoqU/Gq+LeFqFYKDV8gNmAoxBvk
 L6EtXUNfTBjiMHyjA/HMMq27Ja3/Y73xlFpTVp7byQoTwF4p1uZOOXjFzqIyW25GvEekDRF8
 IpYd6/BomxHzvMZ2sQ/VXaMAEQEAAc0uUGllcnJpY2sgQm91dmllciA8cGllcnJpY2suYm91
 dmllckBsaW5hcm8ub3JnPsLBDgQTAQoAOBYhBGa5lOyhT38uWroIH3+QVA0KHNAPBQJivXYM
 AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEH+QVA0KHNAPX58L/1DYzrEO4TU9ZhJE
 tKcw/+mCZrzHxPNlQtENJ5NULAJWVaJ/8kRQ3Et5hQYhYDKK+3I+0Tl/tYuUeKNV74dFE7mv
 PmikCXBGN5hv5povhinZ9T14S2xkMgym2T3DbkeaYFSmu8Z89jm/AQVt3ZDRjV6vrVfvVW0L
 F6wPJSOLIvKjOc8/+NXrKLrV/YTEi2R1ovIPXcK7NP6tvzAEgh76kW34AHtroC7GFQKu/aAn
 HnL7XrvNvByjpa636jIM9ij43LpLXjIQk3bwHeoHebkmgzFef+lZafzD+oSNNLoYkuWfoL2l
 CR1mifjh7eybmVx7hfhj3GCmRu9o1x59nct06E3ri8/eY52l/XaWGGuKz1bbCd3xa6NxuzDM
 UZU+b0PxHyg9tvASaVWKZ5SsQ5Lf9Gw6WKEhnyTR8Msnh8kMkE7+QWNDmjr0xqB+k/xMlVLE
 uI9Pmq/RApQkW0Q96lTa1Z/UKPm69BMVnUvHv6u3n0tRCDOHTUKHXp/9h5CH3xawms7AzQRi
 vXYMAQwAwXUyTS/Vgq3M9F+9r6XGwbak6D7sJB3ZSG/ZQe5ByCnH9ZSIFqjMnxr4GZUzgBAj
 FWMSVlseSninYe7MoH15T4QXi0gMmKsU40ckXLG/EW/mXRlLd8NOTZj8lULPwg/lQNAnc7GN
 I4uZoaXmYSc4eI7+gUWTqAHmESHYFjilweyuxcvXhIKez7EXnwaakHMAOzNHIdcGGs8NFh44
 oPh93uIr65EUDNxf0fDjnvu92ujf0rUKGxXJx9BrcYJzr7FliQvprlHaRKjahuwLYfZK6Ma6
 TCU40GsDxbGjR5w/UeOgjpb4SVU99Nol/W9C2aZ7e//2f9APVuzY8USAGWnu3eBJcJB+o9ck
 y2bSJ5gmGT96r88RtH/E1460QxF0GGWZcDzZ6SEKkvGSCYueUMzAAqJz9JSirc76E/JoHXYI
 /FWKgFcC4HRQpZ5ThvyAoj9nTIPI4DwqoaFOdulyYAxcbNmcGAFAsl0jJYJ5Mcm2qfQwNiiW
 YnqdwQzVfhwaAcPVABEBAAHCwPYEGAEKACAWIQRmuZTsoU9/Llq6CB9/kFQNChzQDwUCYr12
 DAIbDAAKCRB/kFQNChzQD/XaC/9MnvmPi8keFJggOg28v+r42P7UQtQ9D3LJMgj3OTzBN2as
 v20Ju09/rj+gx3u7XofHBUj6BsOLVCWjIX52hcEEg+Bzo3uPZ3apYtIgqfjrn/fPB0bCVIbi
 0hAw6W7Ygt+T1Wuak/EV0KS/If309W4b/DiI+fkQpZhCiLUK7DrA97xA1OT1bJJYkC3y4seo
 0VHOnZTpnOyZ+8Ejs6gcMiEboFHEEt9P+3mrlVJL/cHpGRtg0ZKJ4QC8UmCE3arzv7KCAc+2
 dRDWiCoRovqXGE2PdAW8788qH5DEXnwfzDhnCQ9Eot0Eyi41d4PWI8TWZFi9KzGXJO82O9gW
 5SYuJaKzCAgNeAy3gUVUUPrUsul1oe2PeWMFUhWKrqko0/Qo4HkwTZY6S16drTMncoUahSAl
 X4Z3BbSPXPq0v1JJBYNBL9qmjULEX+NbtRd3v0OfB5L49sSAC2zIO8S9Cufiibqx3mxZTaJ1
 ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=
In-Reply-To: <20260225051303.91614-3-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 2/24/26 9:13 PM, Philippe Mathieu-Daudé wrote:
> Forward-declare the target-specific mshv_root_hvcall structure
> in order to keep 'system/mshv_int.h' target-agnostic.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   include/system/mshv_int.h | 5 ++---
>   accel/mshv/mshv-all.c     | 2 +-
>   2 files changed, 3 insertions(+), 4 deletions(-)
> 

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 19:40:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 19:40:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241043.1542285 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvKka-0004yQ-HC; Wed, 25 Feb 2026 19:40:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241043.1542285; Wed, 25 Feb 2026 19:40:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvKka-0004yG-Dy; Wed, 25 Feb 2026 19:40:48 +0000
Received: by outflank-mailman (input) for mailman id 1241043;
 Wed, 25 Feb 2026 19: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=2gY1=A5=linaro.org=pierrick.bouvier@srs-se1.protection.inumbo.net>)
 id 1vvKkY-0004ia-JP
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 19:40:46 +0000
Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com
 [2607:f8b0:4864:20::62c])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id dd36e72e-1281-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 20:40:41 +0100 (CET)
Received: by mail-pl1-x62c.google.com with SMTP id
 d9443c01a7336-2adec255754so3023265ad.3
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 11:40:40 -0800 (PST)
Received: from [192.168.1.87] (216-71-219-44.dyn.novuscom.net. [216.71.219.44])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2adfb5c9f79sm338045ad.33.2026.02.25.11.40.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 11:40:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dd36e72e-1281-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772048439; x=1772653239; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=UUj1S673p3detSktifXeGb28LBC3jFbCrEafskFBIyo=;
        b=CjWUq0vml4BEEtmXjWYofq5yqDm8QqX23tu08rdSmGEhmRTo4hwm5p64ix+MrtKFux
         +h/0NS+Uf07ivTZ7wtUclds0/8+3ixV9G97ZhGsVRreEzc5WZC2LbCuWKvGEXBcIW2XO
         DyzAPPxBlXhyjjvSEdq70SREnJHeN/TFJKS/NuqeyG3YiLRcF5TMqr5cFFRe48jJBXzj
         TvfZD3pdjb9eZkUYOqyvFsiBrboqnbaf430If+i9Bcx65N1ho+FTgd65HhxfuyNMDVo+
         D1wvIyj5Nh5HZGs0hEzVXfVjuVm2hJ6OrW8JM6lh0xglX/HeANjajsG/fkH5kkUfWYNe
         ugwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772048439; x=1772653239;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=UUj1S673p3detSktifXeGb28LBC3jFbCrEafskFBIyo=;
        b=ccBb3WeO+bg+T8W2rIqqty6mriXi2D2BCKko9i8HK4ivZUEC3csW12gpf1vM3V0+GC
         a7i96jNhhLvvYlyg+/+RqW/G8AuapA5UeROaMf2VAU7/lSiss9zPEXb04zRmuRuiHy1y
         J5JOZf1ZGi4FDiZs6rcJ+MXiX75cFLZK983vg1QdZCiRTGBlFb7dRJPrSLuCIxzzuNnx
         XnplYNY+z6VNK1Uw1jSwkn//MaB5GRjzYXbV7obuHW+6gbU1TYo3ELUKOnnL7JugBXqw
         3UJOQwR20z05V0THncMTtagduOEAALP/1Qx2Jnkya2dgvHDObxRq1r16KW3/3IBOwM6m
         6v6Q==
X-Forwarded-Encrypted: i=1; AJvYcCXur2Uj2W3t6mOLcAL0FQyvKrWwRsBC3XQeCTC3Vt3paVe4ZGIaAWiX4zVoeBkv1YdsTtyN6JimD+I=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwEOJBDHbHpPy0QgBS0qe0imBurCkTLvIcaIX4IZ1R1uwdbM//E
	EeFWq3aLge8XmQWTxsCF8ZHOl63gY3xBwutdnku86l4WTImQTImsTkt2SVGu7cEwhN8=
X-Gm-Gg: ATEYQzy9xMgXsPNgLcF8l5Vb2ettVE/CMrl4hSeV2eCjAamYDfpMnbsaxFQtOpXche4
	s6CGxgNcQbfsmvh7oDapD3E40y4j2xD3Tf6ZfpWRhPNFZQId7HwGarNpLGBCrm96K1COMZme9d9
	DmXffvj7N3Fe4PrHQLlhOSiNzuZyHgiN/6FYNsrgnzhpP1XED2MROez6xzT41LK/Z5ex0eS7JYc
	L/uKhRE2urCp9s7Q3KazHbkfiu22v3kF3URnT9srFhyHClYied168WYZR8GwtR3HwRIGVa5G56F
	VvIqCsSQQXdVT8OTyjUMh9wTrCvFTD/e3TIx1OEmZgKTwWdOrF/dlt2RnWYEHNW2/q1CaJdCoB1
	ZI2gTUz2SAiVzl2K+aIAR5JvQgheJ/Awm/tjY1KJN4IOup2pladEbq2HXEmt6APU2YgEU82WqUp
	WAMnw/oMR3nesTCytBIpbD8SRd0RgktEZ9L/ZXb9lVELgB9fTmufdHcRMeff2naCqPMJfK
X-Received: by 2002:a17:902:db10:b0:2a9:4870:9606 with SMTP id d9443c01a7336-2ad7453b5f2mr164846735ad.42.1772048439231;
        Wed, 25 Feb 2026 11:40:39 -0800 (PST)
Message-ID: <2a0b5bb2-f29a-49f5-9840-cc1385e1ada1@linaro.org>
Date: Wed, 25 Feb 2026 11:40:38 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 3/5] accel/mshv: Build without target-specific knowledge
Content-Language: en-US
To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
 xen-devel@lists.xenproject.org,
 Magnus Kulke <magnus.kulke@linux.microsoft.com>, Wei Liu <wei.liu@kernel.org>
References: <20260225051303.91614-1-philmd@linaro.org>
 <20260225051303.91614-4-philmd@linaro.org>
From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Autocrypt: addr=pierrick.bouvier@linaro.org; keydata=
 xsDNBGK9dgwBDACYuRpR31LD+BnJ0M4b5YnPZKbj+gyu82IDN0MeMf2PGf1sux+1O2ryzmnA
 eOiRCUY9l7IbtPYPHN5YVx+7W3vo6v89I7mL940oYAW8loPZRSMbyCiUeSoiN4gWPXetoNBg
 CJmXbVYQgL5e6rsXoMlwFWuGrBY3Ig8YhEqpuYDkRXj2idO11CiDBT/b8A2aGixnpWV/s+AD
 gUyEVjHU6Z8UervvuNKlRUNE0rUfc502Sa8Azdyda8a7MAyrbA/OI0UnSL1m+pXXCxOxCvtU
 qOlipoCOycBjpLlzjj1xxRci+ssiZeOhxdejILf5LO1gXf6pP+ROdW4ySp9L3dAWnNDcnj6U
 2voYk7/RpRUTpecvkxnwiOoiIQ7BatjkssFy+0sZOYNbOmoqU/Gq+LeFqFYKDV8gNmAoxBvk
 L6EtXUNfTBjiMHyjA/HMMq27Ja3/Y73xlFpTVp7byQoTwF4p1uZOOXjFzqIyW25GvEekDRF8
 IpYd6/BomxHzvMZ2sQ/VXaMAEQEAAc0uUGllcnJpY2sgQm91dmllciA8cGllcnJpY2suYm91
 dmllckBsaW5hcm8ub3JnPsLBDgQTAQoAOBYhBGa5lOyhT38uWroIH3+QVA0KHNAPBQJivXYM
 AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEH+QVA0KHNAPX58L/1DYzrEO4TU9ZhJE
 tKcw/+mCZrzHxPNlQtENJ5NULAJWVaJ/8kRQ3Et5hQYhYDKK+3I+0Tl/tYuUeKNV74dFE7mv
 PmikCXBGN5hv5povhinZ9T14S2xkMgym2T3DbkeaYFSmu8Z89jm/AQVt3ZDRjV6vrVfvVW0L
 F6wPJSOLIvKjOc8/+NXrKLrV/YTEi2R1ovIPXcK7NP6tvzAEgh76kW34AHtroC7GFQKu/aAn
 HnL7XrvNvByjpa636jIM9ij43LpLXjIQk3bwHeoHebkmgzFef+lZafzD+oSNNLoYkuWfoL2l
 CR1mifjh7eybmVx7hfhj3GCmRu9o1x59nct06E3ri8/eY52l/XaWGGuKz1bbCd3xa6NxuzDM
 UZU+b0PxHyg9tvASaVWKZ5SsQ5Lf9Gw6WKEhnyTR8Msnh8kMkE7+QWNDmjr0xqB+k/xMlVLE
 uI9Pmq/RApQkW0Q96lTa1Z/UKPm69BMVnUvHv6u3n0tRCDOHTUKHXp/9h5CH3xawms7AzQRi
 vXYMAQwAwXUyTS/Vgq3M9F+9r6XGwbak6D7sJB3ZSG/ZQe5ByCnH9ZSIFqjMnxr4GZUzgBAj
 FWMSVlseSninYe7MoH15T4QXi0gMmKsU40ckXLG/EW/mXRlLd8NOTZj8lULPwg/lQNAnc7GN
 I4uZoaXmYSc4eI7+gUWTqAHmESHYFjilweyuxcvXhIKez7EXnwaakHMAOzNHIdcGGs8NFh44
 oPh93uIr65EUDNxf0fDjnvu92ujf0rUKGxXJx9BrcYJzr7FliQvprlHaRKjahuwLYfZK6Ma6
 TCU40GsDxbGjR5w/UeOgjpb4SVU99Nol/W9C2aZ7e//2f9APVuzY8USAGWnu3eBJcJB+o9ck
 y2bSJ5gmGT96r88RtH/E1460QxF0GGWZcDzZ6SEKkvGSCYueUMzAAqJz9JSirc76E/JoHXYI
 /FWKgFcC4HRQpZ5ThvyAoj9nTIPI4DwqoaFOdulyYAxcbNmcGAFAsl0jJYJ5Mcm2qfQwNiiW
 YnqdwQzVfhwaAcPVABEBAAHCwPYEGAEKACAWIQRmuZTsoU9/Llq6CB9/kFQNChzQDwUCYr12
 DAIbDAAKCRB/kFQNChzQD/XaC/9MnvmPi8keFJggOg28v+r42P7UQtQ9D3LJMgj3OTzBN2as
 v20Ju09/rj+gx3u7XofHBUj6BsOLVCWjIX52hcEEg+Bzo3uPZ3apYtIgqfjrn/fPB0bCVIbi
 0hAw6W7Ygt+T1Wuak/EV0KS/If309W4b/DiI+fkQpZhCiLUK7DrA97xA1OT1bJJYkC3y4seo
 0VHOnZTpnOyZ+8Ejs6gcMiEboFHEEt9P+3mrlVJL/cHpGRtg0ZKJ4QC8UmCE3arzv7KCAc+2
 dRDWiCoRovqXGE2PdAW8788qH5DEXnwfzDhnCQ9Eot0Eyi41d4PWI8TWZFi9KzGXJO82O9gW
 5SYuJaKzCAgNeAy3gUVUUPrUsul1oe2PeWMFUhWKrqko0/Qo4HkwTZY6S16drTMncoUahSAl
 X4Z3BbSPXPq0v1JJBYNBL9qmjULEX+NbtRd3v0OfB5L49sSAC2zIO8S9Cufiibqx3mxZTaJ1
 ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=
In-Reply-To: <20260225051303.91614-4-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 2/24/26 9:13 PM, Philippe Mathieu-Daudé wrote:
> Code in accel/ aims to be target-agnostic. Enforce that
> by moving the MSHV file units to system_ss[], which is
> target-agnostic.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/mshv/meson.build | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)
> 

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 19:42:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 19:42:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241059.1542296 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvKll-0005dB-VS; Wed, 25 Feb 2026 19:42:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241059.1542296; Wed, 25 Feb 2026 19:42:01 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvKll-0005d4-Sj; Wed, 25 Feb 2026 19:42:01 +0000
Received: by outflank-mailman (input) for mailman id 1241059;
 Wed, 25 Feb 2026 19: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=2gY1=A5=linaro.org=pierrick.bouvier@srs-se1.protection.inumbo.net>)
 id 1vvKll-0005cy-Ch
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 19:42:01 +0000
Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com
 [2607:f8b0:4864:20::62d])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0be9bc0d-1282-11f1-9ccf-f158ae23cfc8;
 Wed, 25 Feb 2026 20:41:58 +0100 (CET)
Received: by mail-pl1-x62d.google.com with SMTP id
 d9443c01a7336-2aaf9191da3so122005ad.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 11:41:59 -0800 (PST)
Received: from [192.168.1.87] (216-71-219-44.dyn.novuscom.net. [216.71.219.44])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2adfb6b9b32sm113825ad.66.2026.02.25.11.41.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 11:41:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0be9bc0d-1282-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772048518; x=1772653318; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=+fBflHpWcOkIAca/ewhCzxrxnxZcU7j3YRsoFPNFwM0=;
        b=ogwZXWJxlzum/Ci/+yRlreo8ocUmFFm+grc1h4F3RQ+tOIEQiVAXxfjD7nKpnRxK5I
         dmDkhBiibpebCyUQM4z+IHBqL1o82I837V3XPQVMSRQAVptVdOCYy+laGof1TOGpjGlj
         ht5XeZIGgxMrlQcqrIMx9zJ1D/eNyRiCxZJ4ia08YKBgUi/u4Ica7SjeyzTg6VMnG/R3
         VoO0XjvgL2/1lMo2AwkT5JizhbnoE4rJ+Tna2i5iVSGwBsii0YyUavTiTlQohaNT7ETc
         1C5Zsw/a5D5lE0yzxokYxDToFJn2AMEGcieQ8N1U9ERSweRYBcJUvw1hloUhKVupSNXf
         pYOA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772048518; x=1772653318;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=+fBflHpWcOkIAca/ewhCzxrxnxZcU7j3YRsoFPNFwM0=;
        b=U6xrBY2OSBgs9zlBZST3EOjp4h9qGV0AvEPvXstw9Gs0gVyZji68DM/rh3cUTA58yN
         vQr0ppeEHTQ9pfbd7GPLsr+k4tjIBQL0A83t1XETypYQ6XZwfk3nPqR3kzzOqhhHgdoK
         XFNse4ufiYq+utjol90XfU3qjcj6LUCWvQAftSAZYUXZeX+4QblwMrC8aWoVsBuS+f10
         8gqyE242fiSSLrj7zJRIwEvPzXLLMN17qoK7rsNxvc9BIj6iHJ1n1jMHNyKAZ7CsfZPc
         iXJr+PsPPBVs0K856bCvuC/KmrSqmXtbjFhecv+cKsKRWdGkCB7/DfKeubZqOc3Ex1Fs
         Qnew==
X-Forwarded-Encrypted: i=1; AJvYcCWy8tuPUEn2VDDaFiMTGGzrGN9J4baP/6Ru5yR4R02Dygv3gsnIjk9V6cufOsxvjKT0RPLBghpVnVM=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yxvn0r6pGmPO/VBjV+cIHiK6CTpe12Ch7uPzAECaL0tjHagUaf2
	BwWlxzihbhdGq7A2cp1CjQ1BNjobp5/86CJkMH2qsluThw/9wBUWYUilRCO7rh3JFjU=
X-Gm-Gg: ATEYQzzN1gnXpOxzhBKt2+I3ljrz+q8VXxWDdEAyi0IBWaRrerszhrvYVHZKh5JYKvC
	jgIZ/ye6Vc2izEyK/vzhKyoFMy1vs3rK09nRGXCVumwLH41uxOqOIk/QIzzaAaqUpW3ox9nr1tw
	cSn2n7ltbKLcsM6oj305j/s/Kk2gJvTrH/mpvMpY7FdrEBDz7UPgf4BoCnRKuT6XJY3Qd0ALkLi
	gqk7qaEx28oFVzfFGX0iVKqLhOUE9PxMgGYNdHGYrX9kH9KnzMXpttd0rPA0g2j+RMB6f6dzdUi
	yfVeakJlv9Ojo121Bpul3d+AlzKxldDInmCET/NjyBWFaoOKXAHO0/OBBI81EKC7sIxz8fRwH95
	WFhb15Bju/kRb/rdD1/fGVBFcEXSp5OKN1dleaJSnii1euGGjb3TQRU0pfKs3pSOpQUmWS+YxSH
	F2Wqq/230+5CqhxWAHekuvIbjcmwRCY5JH/twjMbqQy0rg9C4l8ufGhADCclKu7bHsa6OqnLzWz
	hTOocc=
X-Received: by 2002:a17:903:18d:b0:2ad:ebfb:fee1 with SMTP id d9443c01a7336-2adebfc00c0mr11743705ad.41.1772048517580;
        Wed, 25 Feb 2026 11:41:57 -0800 (PST)
Message-ID: <25191af9-bcfe-491f-850e-d5a43fa89c6c@linaro.org>
Date: Wed, 25 Feb 2026 11:41:56 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 4/5] accel/hvf: Build without target-specific knowledge
Content-Language: en-US
To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
 xen-devel@lists.xenproject.org, Cameron Esfahani <dirty@apple.com>,
 Roman Bolshakov <rbolshakov@ddn.com>, Phil Dennis-Jordan <phil@philjordan.eu>
References: <20260225051303.91614-1-philmd@linaro.org>
 <20260225051303.91614-5-philmd@linaro.org>
From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Autocrypt: addr=pierrick.bouvier@linaro.org; keydata=
 xsDNBGK9dgwBDACYuRpR31LD+BnJ0M4b5YnPZKbj+gyu82IDN0MeMf2PGf1sux+1O2ryzmnA
 eOiRCUY9l7IbtPYPHN5YVx+7W3vo6v89I7mL940oYAW8loPZRSMbyCiUeSoiN4gWPXetoNBg
 CJmXbVYQgL5e6rsXoMlwFWuGrBY3Ig8YhEqpuYDkRXj2idO11CiDBT/b8A2aGixnpWV/s+AD
 gUyEVjHU6Z8UervvuNKlRUNE0rUfc502Sa8Azdyda8a7MAyrbA/OI0UnSL1m+pXXCxOxCvtU
 qOlipoCOycBjpLlzjj1xxRci+ssiZeOhxdejILf5LO1gXf6pP+ROdW4ySp9L3dAWnNDcnj6U
 2voYk7/RpRUTpecvkxnwiOoiIQ7BatjkssFy+0sZOYNbOmoqU/Gq+LeFqFYKDV8gNmAoxBvk
 L6EtXUNfTBjiMHyjA/HMMq27Ja3/Y73xlFpTVp7byQoTwF4p1uZOOXjFzqIyW25GvEekDRF8
 IpYd6/BomxHzvMZ2sQ/VXaMAEQEAAc0uUGllcnJpY2sgQm91dmllciA8cGllcnJpY2suYm91
 dmllckBsaW5hcm8ub3JnPsLBDgQTAQoAOBYhBGa5lOyhT38uWroIH3+QVA0KHNAPBQJivXYM
 AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEH+QVA0KHNAPX58L/1DYzrEO4TU9ZhJE
 tKcw/+mCZrzHxPNlQtENJ5NULAJWVaJ/8kRQ3Et5hQYhYDKK+3I+0Tl/tYuUeKNV74dFE7mv
 PmikCXBGN5hv5povhinZ9T14S2xkMgym2T3DbkeaYFSmu8Z89jm/AQVt3ZDRjV6vrVfvVW0L
 F6wPJSOLIvKjOc8/+NXrKLrV/YTEi2R1ovIPXcK7NP6tvzAEgh76kW34AHtroC7GFQKu/aAn
 HnL7XrvNvByjpa636jIM9ij43LpLXjIQk3bwHeoHebkmgzFef+lZafzD+oSNNLoYkuWfoL2l
 CR1mifjh7eybmVx7hfhj3GCmRu9o1x59nct06E3ri8/eY52l/XaWGGuKz1bbCd3xa6NxuzDM
 UZU+b0PxHyg9tvASaVWKZ5SsQ5Lf9Gw6WKEhnyTR8Msnh8kMkE7+QWNDmjr0xqB+k/xMlVLE
 uI9Pmq/RApQkW0Q96lTa1Z/UKPm69BMVnUvHv6u3n0tRCDOHTUKHXp/9h5CH3xawms7AzQRi
 vXYMAQwAwXUyTS/Vgq3M9F+9r6XGwbak6D7sJB3ZSG/ZQe5ByCnH9ZSIFqjMnxr4GZUzgBAj
 FWMSVlseSninYe7MoH15T4QXi0gMmKsU40ckXLG/EW/mXRlLd8NOTZj8lULPwg/lQNAnc7GN
 I4uZoaXmYSc4eI7+gUWTqAHmESHYFjilweyuxcvXhIKez7EXnwaakHMAOzNHIdcGGs8NFh44
 oPh93uIr65EUDNxf0fDjnvu92ujf0rUKGxXJx9BrcYJzr7FliQvprlHaRKjahuwLYfZK6Ma6
 TCU40GsDxbGjR5w/UeOgjpb4SVU99Nol/W9C2aZ7e//2f9APVuzY8USAGWnu3eBJcJB+o9ck
 y2bSJ5gmGT96r88RtH/E1460QxF0GGWZcDzZ6SEKkvGSCYueUMzAAqJz9JSirc76E/JoHXYI
 /FWKgFcC4HRQpZ5ThvyAoj9nTIPI4DwqoaFOdulyYAxcbNmcGAFAsl0jJYJ5Mcm2qfQwNiiW
 YnqdwQzVfhwaAcPVABEBAAHCwPYEGAEKACAWIQRmuZTsoU9/Llq6CB9/kFQNChzQDwUCYr12
 DAIbDAAKCRB/kFQNChzQD/XaC/9MnvmPi8keFJggOg28v+r42P7UQtQ9D3LJMgj3OTzBN2as
 v20Ju09/rj+gx3u7XofHBUj6BsOLVCWjIX52hcEEg+Bzo3uPZ3apYtIgqfjrn/fPB0bCVIbi
 0hAw6W7Ygt+T1Wuak/EV0KS/If309W4b/DiI+fkQpZhCiLUK7DrA97xA1OT1bJJYkC3y4seo
 0VHOnZTpnOyZ+8Ejs6gcMiEboFHEEt9P+3mrlVJL/cHpGRtg0ZKJ4QC8UmCE3arzv7KCAc+2
 dRDWiCoRovqXGE2PdAW8788qH5DEXnwfzDhnCQ9Eot0Eyi41d4PWI8TWZFi9KzGXJO82O9gW
 5SYuJaKzCAgNeAy3gUVUUPrUsul1oe2PeWMFUhWKrqko0/Qo4HkwTZY6S16drTMncoUahSAl
 X4Z3BbSPXPq0v1JJBYNBL9qmjULEX+NbtRd3v0OfB5L49sSAC2zIO8S9Cufiibqx3mxZTaJ1
 ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=
In-Reply-To: <20260225051303.91614-5-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 2/24/26 9:13 PM, Philippe Mathieu-Daudé wrote:
> Code in accel/ aims to be target-agnostic. Enforce that
> by moving the MSHV file units to system_ss[], which is
> target-agnostic.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/hvf/meson.build | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)
> 

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 19:42:07 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 19:42:07 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241060.1542306 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvKlr-0005sE-5t; Wed, 25 Feb 2026 19:42:07 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241060.1542306; Wed, 25 Feb 2026 19:42: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 1vvKlr-0005s5-2r; Wed, 25 Feb 2026 19:42:07 +0000
Received: by outflank-mailman (input) for mailman id 1241060;
 Wed, 25 Feb 2026 19:42: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=2gY1=A5=linaro.org=pierrick.bouvier@srs-se1.protection.inumbo.net>)
 id 1vvKlp-0005rR-TM
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 19:42:05 +0000
Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com
 [2607:f8b0:4864:20::632])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0eee4598-1282-11f1-b164-2bf370ae4941;
 Wed, 25 Feb 2026 20:42:04 +0100 (CET)
Received: by mail-pl1-x632.google.com with SMTP id
 d9443c01a7336-2aad1bb5058so126645ad.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 11:42:03 -0800 (PST)
Received: from [192.168.1.87] (216-71-219-44.dyn.novuscom.net. [216.71.219.44])
 by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2adfb6b9b32sm113825ad.66.2026.02.25.11.42.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 11:42:02 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0eee4598-1282-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772048522; x=1772653322; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=CfFiKuEp3QRfnNSdj65WKiUbN7nQtTN8Xk1/EYaTfYA=;
        b=MAfwAD/8IAgoF4A79UNR1/6qIHQg8PBA6cFxN1cZaGE8MRSjgyDrh25zmx5/PnMwp2
         wYA3JxMZSKWD3WysTDqyPL9iM22w7Odk4Ui2i1emCujkGMyGi+26eCyJOvdrQSW+oCTX
         6y6iePR0dwt98o0KzhWWTzc+IX4h1FIblxHrxAh33c3H7trE1XS5UFLdEEC15ZovplyH
         Ixi1/0j0+nXHJ7b4ZSIoXWmNSX2eC7jAAqkNqO81BrCL0pViTury0e/9P2GOVPtnfYc9
         lkLJy1OePcWa/kmRCKQ5dkhB6vIKLO4v0TMC4UbPQMzYicjYi8D9A/LeWzuCvFC+pFQ5
         ZpTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772048522; x=1772653322;
        h=content-transfer-encoding:in-reply-to:autocrypt:from:references:cc
         :to:content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=CfFiKuEp3QRfnNSdj65WKiUbN7nQtTN8Xk1/EYaTfYA=;
        b=hy/fGJggF2jlvKnC+JfjdPWFlg0Nhb5TOgf7G6+NhF5oJ4rsfCDDHnqv7QSzmaDNou
         Yi78TpTdsDt+6Nb/oXJF92YHjRkSuQpuwTnj8aTs0tbulAM7MONHIXAVA1m4MYKEnLMw
         aYcrM86EJCQhmQS62IlccKRRSTnSy/cnqFJbz1LZpBgJZuW9MZq3uIyvV9C08edi60Qs
         ljVnFerSLzPPMzd1s7SZCFIpyRzF3Y01bLfvqWYhnTUUOBApF6K5IytClRLQz1q4PVvV
         Wlsl4jVXKcqgID+XItPMlLgrAP27Avptn2x6Z4tFYnClqsNB8VU3vKsli0n5pEbGcx7m
         bTVA==
X-Forwarded-Encrypted: i=1; AJvYcCVI85Cgas9Ks6IMLYl//xdiIAYfh4tWpHR/DnK4cbMT2U86yyaSeJylH2OObyP8BtPacluR9aEy1ws=@lists.xenproject.org
X-Gm-Message-State: AOJu0YwfWOu4FdpKOWemdIVovbGQUmxFq7KVr4BpIB/QIysPIu23uyW/
	NMzZbmzyUxq/oPxtIxywSUF12LVi3cUbdYinKH1obgCFMUu6gwj4EyUDMKQ4QAsEFuI=
X-Gm-Gg: ATEYQzwKN+YM9vbWlpdB4zGz/nEwRdwOyKpBjmfSZDZwaI+byiEuCgHRUTVaXfVSdMY
	aK5X1sGLzP2gGkGSZlecFlZ9nPipK+baFyiBeVL6OSePxaWlXGTDKxLlj0d0bTxjaA8n9OfBWiO
	V9bziil1OtpEiRXcoeM9zmI7BZBY5yzXWbEYfiPiNR3Vc7LGMKHL7mUbMYAJ5/znWIXGHyACpPp
	vX5vxtBt5wt5DvPwda/od8hJDV8MwrFkxqJmeKFRE6zyHmcZuoWyk37t6iKAcDGriPI50J25UPn
	7X8B/vLrDhvbw+diEfIVQ3OmNy2VEV8Lt69VJgE5U8MifcUucmszuOQz+kYE/nbUPb8MMA1N2sz
	yaScxsOnpoRcNhfkiPLpZy04bQkyfj3nM4Cch3UlAXwHqqX9/i9xPr2l9WrWcCXEYF9Z8Bx36tl
	3UDwy9v7TJnpzzVTljzYEGr+UskQZn5yRWR4kTmYbh/W6V2yj5yRh+a1vElpwYrCYQC9bW
X-Received: by 2002:a17:903:8c8:b0:2ad:9edf:7fe5 with SMTP id d9443c01a7336-2ad9edf8239mr83081225ad.42.1772048522443;
        Wed, 25 Feb 2026 11:42:02 -0800 (PST)
Message-ID: <90864356-6abb-4cbf-a2bb-abda2ed82c93@linaro.org>
Date: Wed, 25 Feb 2026 11:42:01 -0800
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH 5/5] accel/xen: Build without target-specific knowledge
Content-Language: en-US
To: =?UTF-8?Q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,
 qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
 xen-devel@lists.xenproject.org, Stefano Stabellini <sstabellini@kernel.org>,
 Anthony PERARD <anthony@xenproject.org>, Paul Durrant <paul@xen.org>,
 "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
References: <20260225051303.91614-1-philmd@linaro.org>
 <20260225051303.91614-6-philmd@linaro.org>
From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Autocrypt: addr=pierrick.bouvier@linaro.org; keydata=
 xsDNBGK9dgwBDACYuRpR31LD+BnJ0M4b5YnPZKbj+gyu82IDN0MeMf2PGf1sux+1O2ryzmnA
 eOiRCUY9l7IbtPYPHN5YVx+7W3vo6v89I7mL940oYAW8loPZRSMbyCiUeSoiN4gWPXetoNBg
 CJmXbVYQgL5e6rsXoMlwFWuGrBY3Ig8YhEqpuYDkRXj2idO11CiDBT/b8A2aGixnpWV/s+AD
 gUyEVjHU6Z8UervvuNKlRUNE0rUfc502Sa8Azdyda8a7MAyrbA/OI0UnSL1m+pXXCxOxCvtU
 qOlipoCOycBjpLlzjj1xxRci+ssiZeOhxdejILf5LO1gXf6pP+ROdW4ySp9L3dAWnNDcnj6U
 2voYk7/RpRUTpecvkxnwiOoiIQ7BatjkssFy+0sZOYNbOmoqU/Gq+LeFqFYKDV8gNmAoxBvk
 L6EtXUNfTBjiMHyjA/HMMq27Ja3/Y73xlFpTVp7byQoTwF4p1uZOOXjFzqIyW25GvEekDRF8
 IpYd6/BomxHzvMZ2sQ/VXaMAEQEAAc0uUGllcnJpY2sgQm91dmllciA8cGllcnJpY2suYm91
 dmllckBsaW5hcm8ub3JnPsLBDgQTAQoAOBYhBGa5lOyhT38uWroIH3+QVA0KHNAPBQJivXYM
 AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEH+QVA0KHNAPX58L/1DYzrEO4TU9ZhJE
 tKcw/+mCZrzHxPNlQtENJ5NULAJWVaJ/8kRQ3Et5hQYhYDKK+3I+0Tl/tYuUeKNV74dFE7mv
 PmikCXBGN5hv5povhinZ9T14S2xkMgym2T3DbkeaYFSmu8Z89jm/AQVt3ZDRjV6vrVfvVW0L
 F6wPJSOLIvKjOc8/+NXrKLrV/YTEi2R1ovIPXcK7NP6tvzAEgh76kW34AHtroC7GFQKu/aAn
 HnL7XrvNvByjpa636jIM9ij43LpLXjIQk3bwHeoHebkmgzFef+lZafzD+oSNNLoYkuWfoL2l
 CR1mifjh7eybmVx7hfhj3GCmRu9o1x59nct06E3ri8/eY52l/XaWGGuKz1bbCd3xa6NxuzDM
 UZU+b0PxHyg9tvASaVWKZ5SsQ5Lf9Gw6WKEhnyTR8Msnh8kMkE7+QWNDmjr0xqB+k/xMlVLE
 uI9Pmq/RApQkW0Q96lTa1Z/UKPm69BMVnUvHv6u3n0tRCDOHTUKHXp/9h5CH3xawms7AzQRi
 vXYMAQwAwXUyTS/Vgq3M9F+9r6XGwbak6D7sJB3ZSG/ZQe5ByCnH9ZSIFqjMnxr4GZUzgBAj
 FWMSVlseSninYe7MoH15T4QXi0gMmKsU40ckXLG/EW/mXRlLd8NOTZj8lULPwg/lQNAnc7GN
 I4uZoaXmYSc4eI7+gUWTqAHmESHYFjilweyuxcvXhIKez7EXnwaakHMAOzNHIdcGGs8NFh44
 oPh93uIr65EUDNxf0fDjnvu92ujf0rUKGxXJx9BrcYJzr7FliQvprlHaRKjahuwLYfZK6Ma6
 TCU40GsDxbGjR5w/UeOgjpb4SVU99Nol/W9C2aZ7e//2f9APVuzY8USAGWnu3eBJcJB+o9ck
 y2bSJ5gmGT96r88RtH/E1460QxF0GGWZcDzZ6SEKkvGSCYueUMzAAqJz9JSirc76E/JoHXYI
 /FWKgFcC4HRQpZ5ThvyAoj9nTIPI4DwqoaFOdulyYAxcbNmcGAFAsl0jJYJ5Mcm2qfQwNiiW
 YnqdwQzVfhwaAcPVABEBAAHCwPYEGAEKACAWIQRmuZTsoU9/Llq6CB9/kFQNChzQDwUCYr12
 DAIbDAAKCRB/kFQNChzQD/XaC/9MnvmPi8keFJggOg28v+r42P7UQtQ9D3LJMgj3OTzBN2as
 v20Ju09/rj+gx3u7XofHBUj6BsOLVCWjIX52hcEEg+Bzo3uPZ3apYtIgqfjrn/fPB0bCVIbi
 0hAw6W7Ygt+T1Wuak/EV0KS/If309W4b/DiI+fkQpZhCiLUK7DrA97xA1OT1bJJYkC3y4seo
 0VHOnZTpnOyZ+8Ejs6gcMiEboFHEEt9P+3mrlVJL/cHpGRtg0ZKJ4QC8UmCE3arzv7KCAc+2
 dRDWiCoRovqXGE2PdAW8788qH5DEXnwfzDhnCQ9Eot0Eyi41d4PWI8TWZFi9KzGXJO82O9gW
 5SYuJaKzCAgNeAy3gUVUUPrUsul1oe2PeWMFUhWKrqko0/Qo4HkwTZY6S16drTMncoUahSAl
 X4Z3BbSPXPq0v1JJBYNBL9qmjULEX+NbtRd3v0OfB5L49sSAC2zIO8S9Cufiibqx3mxZTaJ1
 ZtfdHNZotF092MIH0IQC3poExQpV/WBYFAI=
In-Reply-To: <20260225051303.91614-6-philmd@linaro.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 2/24/26 9:13 PM, Philippe Mathieu-Daudé wrote:
> Code in accel/ aims to be target-agnostic. Enforce that
> by moving the MSHV file units to system_ss[], which is
> target-agnostic.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   accel/xen/meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>


From xen-devel-bounces@lists.xenproject.org Wed Feb 25 23:55:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Wed, 25 Feb 2026 23:55:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241134.1542316 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvOiT-0001gJ-4S; Wed, 25 Feb 2026 23:54:53 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241134.1542316; Wed, 25 Feb 2026 23:54: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 1vvOiT-0001gA-1M; Wed, 25 Feb 2026 23:54:53 +0000
Received: by outflank-mailman (input) for mailman id 1241134;
 Wed, 25 Feb 2026 23:54: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=0Asp=A5=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vvOiQ-0001g2-Vk
 for xen-devel@lists.xenproject.org; Wed, 25 Feb 2026 23:54:51 +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 5afe18f1-12a5-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 00:54:43 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 8338760053;
 Wed, 25 Feb 2026 23:54:42 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1947EC116D0;
 Wed, 25 Feb 2026 23:54: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: 5afe18f1-12a5-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772063682;
	bh=yPy12zc4UT/9IGd37Ke3EDqkNAhEgrZTHrp39HK2zhQ=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=nfDQHxIwRzrEunr5AtByS7RhUbrmAhX2uD9PMvTbuP8539ydakB4Pc/T+CKxDb2SH
	 JkjBGnc96c6lkSYpSkjiAznOHedirpSIfbNRAOOIRGr9XQlYyQx6uTSinW2z/iVWnM
	 sOUaEJiah9MAmV3coDNGTAZdwXSJbGl0Vtj/rAGKTLCQ4vegIRtws8WaTmPVBw4gr8
	 z20m1uFDjUNdmd0Ukh/n9RtcBFNeWkb7EAkffiR/4BiiM/8CkoxjbyVBHgWfnelMco
	 ObGLgyoHDdJRVFUctEDf0jpARJZlUBhoZkhbsAifit0vCM8hCrhDSaXgp6u82TGTTQ
	 a4aUFxjMkQTZA==
Date: Wed, 25 Feb 2026 15:54:35 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: anthony.perard@vates.tech
cc: dmukhin@ford.com, xen-devel@lists.xenproject.org, 
    andrew.cooper3@citrix.com, jbeulich@suse.com, julien@xen.org, 
    michal.orzel@amd.com, roger.pau@citrix.com, sstabellini@kernel.org
Subject: Re: [PATCH v5] xen/domain: introduce DOMID_ANY
In-Reply-To: <alpine.DEB.2.22.394.2602170731160.359097@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2602251553270.1536420@ubuntu-linux-20-04-desktop>
References: <20260205235126.3764953-1-dmukhin@ford.com> <alpine.DEB.2.22.394.2602170731160.359097@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

Anthony, we need to tools ack for this patch

On Tue, 17 Feb 2026, Stefano Stabellini wrote:
> On Thu, 5 Feb 2026, dmukhin@ford.com wrote:
> > From: Denis Mukhin <dmukhin@ford.com> 
> > 
> > Add a new symbol DOMID_ANY to improve the readability of the code.
> > 
> > Update all relevant domid_alloc() call sites and harden the domid_alloc()
> > input value check.
> > 
> > Also, fix problem with passing invalid domain IDs in
> > XEN_DOMCTL_createdomain: turns out libxl__domain_make() (toolstack)
> > uses 0xffff as domain ID.
> > 
> > Amends: 2d5065060710 ("xen/domain: unify domain ID allocation")
> > Signed-off-by: Denis Mukhin <dmukhin@ford.com>
> 
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
> 


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 00:51:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 00:51:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241155.1542325 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvPbE-00014c-Aq; Thu, 26 Feb 2026 00:51:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241155.1542325; Thu, 26 Feb 2026 00: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 1vvPbE-00014V-8G; Thu, 26 Feb 2026 00:51:28 +0000
Received: by outflank-mailman (input) for mailman id 1241155;
 Thu, 26 Feb 2026 00:51: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=deGQ=A6=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vvPbC-00014N-Hb
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 00:51: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 3ece1548-12ad-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 01:51:12 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by sea.source.kernel.org (Postfix) with ESMTP id 1426B4088D;
 Thu, 26 Feb 2026 00:51:11 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id C4D47C116D0;
 Thu, 26 Feb 2026 00:51:09 +0000 (UTC)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3ece1548-12ad-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772067070;
	bh=YpoO7+WqUpj23I2uK3HJRQ6WPlvGWMO4/6QPq+Txpgs=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=or23EY0klUPaK8yqmz4ektdXHAkW+15w+MwKFTMN3H1uszg3DMMkQjRxqyoukq5iF
	 LEhkE+5b1kWRBDfrPI5a3vTRv+7oHE1XhMOu3Q+lrq+qI45QGN06UvBR9mDO7c7rnh
	 XN5zRMETZsSMKuKiskhKCwvDmzHsPcO8hyzdRdCMPcNDnUX0MK7MFuid3V3guby9Tl
	 cf839BmmnHExMNJ8eca9kdA5/MISlU2om6+FdX/YPBSwXuLUWgeQMF6+JcGZle1lr8
	 53Pm8038IH+2mnjAYVbV4kbU62Qbsbq9q7GrdF3yZeJEpgXBAa5tVeyN4Mk6zCxDRz
	 76ihnzaL7SylA==
Date: Wed, 25 Feb 2026 16:51:08 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Jan Beulich <jbeulich@suse.com>
cc: dmukhin@ford.com, andrew.cooper3@citrix.com, anthony.perard@vates.tech, 
    julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com, 
    sstabellini@kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v3 0/5] tools/tests: test harness fragment
In-Reply-To: <5b0be132-07f1-4d7b-92ac-2b1d9c4db408@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602251648220.1536420@ubuntu-linux-20-04-desktop>
References: <20260213024952.3270112-1-dmukhin@ford.com> <5b0be132-07f1-4d7b-92ac-2b1d9c4db408@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, 17 Feb 2026, Jan Beulich wrote:
> On 13.02.2026 03:49, dmukhin@ford.com wrote:
> > This series introduces the use of a new common unit test fragment across
> > several existing unit tests.
> > 
> > Patch 1 contains assorted fixups for the domid Makefile.
> > Patch 2 adds a new fragment for auto-generating test harness dependencies.
> > Patch 3 adds some prerequisite changes for vPCI test (patch 4).
> > Patch 4 switches the vPCI unit test to the new common fragment.
> > Patch 5 switches the PDX unit test to the new common fragment.
> > 
> > [1] Link to v2: https://lore.kernel.org/xen-devel/20260111041145.553673-1-dmukhin@ford.com/
> > [2] CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2323352235
> > 
> > Denis Mukhin (5):
> >   tests: fixup domid make fragment
> >   tests: use unit test fragment in domid test
> >   xen/include: customize headers for host builds
> >   tests: use unit test fragment in vPCI test
> >   tests: use unit test fragment in PDX test
> 
> I remain unconvinced of this attempt to generalize things. Yes, it eliminates
> some redundancy, but at the same time some of the new constructs are harder
> to read / follow. Perhaps it would help if smaller pieces were abstracted out
> first / incrementally.

I don't think breaking it down further would help, it is already in
pretty small pieces. At least, I cannot think of a way that breaking it
down would make a difference. Do you have something specific in mind?

Also, I appreciate you being unconvinced about this series, but now it
leaves me in a bit of limbo. I am fine with this series going in --
should I continue reviewing it regardless?



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 02:50:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 02:50:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241185.1542336 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvRSS-000666-H3; Thu, 26 Feb 2026 02:50:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241185.1542336; Thu, 26 Feb 2026 02: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 1vvRSS-00065y-CF; Thu, 26 Feb 2026 02:50:32 +0000
Received: by outflank-mailman (input) for mailman id 1241185;
 Thu, 26 Feb 2026 02:50: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=WUpi=A6=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vvRSR-00065s-84
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 02:50:31 +0000
Received: from BYAPR05CU005.outbound.protection.outlook.com
 (mail-westusazlp170100001.outbound.protection.outlook.com
 [2a01:111:f403:c000::1])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e8739260-12bd-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 03:50:28 +0100 (CET)
Received: from DS7PR03CA0328.namprd03.prod.outlook.com (2603:10b6:8:2b::30) by
 BL3PR12MB6425.namprd12.prod.outlook.com (2603:10b6:208:3b4::7) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.22; Thu, 26 Feb 2026 02:50:21 +0000
Received: from CY4PEPF0000E9DB.namprd05.prod.outlook.com
 (2603:10b6:8:2b:cafe::5b) by DS7PR03CA0328.outlook.office365.com
 (2603:10b6:8:2b::30) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.25 via Frontend Transport; Thu,
 26 Feb 2026 02:50:00 +0000
Received: from satlexmb07.amd.com (165.204.84.17) by
 CY4PEPF0000E9DB.mail.protection.outlook.com (10.167.241.74) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Thu, 26 Feb 2026 02:50:20 +0000
Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 25 Feb
 2026 20:50:18 -0600
Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com
 (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 25 Feb
 2026 20:50:18 -0600
Received: from [172.24.237.99] (10.180.168.240) by satlexmb07.amd.com
 (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 25 Feb 2026 20:50:17 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e8739260-12bd-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Uf0VQq8lsgUdD8RvNZfGg9rG0xt7uVKZVsX0XBdhLGEcpuaE1qnp7kzJPHadlVruK0RIZ+9tdCPjshW1RJuFwO6V0lwZm+nij/N2o38ItprS/Eb4CPOUPKfwpgMMhsjHi7sjtbGZZucEDKa3yNAHYtZb1dSfP0159QBXcV1UtWtbBGtkOdXH1KtqFEO1LKWBX08PkJN5OPy3H4xueNR71SJjMkdn53eU0ub64/H9/zlz6LSfMgOJQqC9pdRL5YePVWdIhDhuBUBELg9DyCkUQnSLjhmpHUGAt2cQGgslCSDwo9MOphL2xiGQa0RgK/38pd5dSyMKNpLuKZuphxYIcw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=EOhfFcZ1Kl2mwEYxFjm/DvBdB6OvJHKuNoWGZ+Z69lc=;
 b=gjqpRP8GGH+ojsnpE6xDeAKgbI80Q6qDsccaT/q3E0RfJ1mXlHqcpVh8z6BzVdvCzuahFwiX0VtrVdAyHDW25xmbx/hTXD5fX0lAj4Q1HVrir5HcpOfU0nhRtUuLHjDay+6PY5AXKHaEHIsbcIVCz3DX5RQXyWU1f3SSRqBhOGThq416Byp8qRt4IrAMsuQIn04xM2nzS9Cj1PkwXPbFYYo6hDMjXb5SZaKL0fpyCLjHvOVsRhBA9c+Q6AvafbXbM2+3QtvWrswXJ43yJwS7zrWquD9B85cCpn9aexAKQtiqSZAJiXXCbW0uH8I9FplXaEsU/f6HvZpF8rSl/tAHuw==
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=EOhfFcZ1Kl2mwEYxFjm/DvBdB6OvJHKuNoWGZ+Z69lc=;
 b=cT8OqFwtcbWXsUHyYC05mMg35yKan+6bvZ1QnlcVyv32NvPzOnhFPcydRgAfkU9rrNIvsHTadzlQK8/eL1v6+DMn3vhM2IdHIcFw8HykkTvqOtp9ytWpcPqZCXbOB4Djsy42q7CGMc1qdlD8gW03ayvr47mU2JYkMjB0HgVdLz0=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C
Message-ID: <b4a839bd-78f0-4fb5-a7db-dfc2f4ab037f@amd.com>
Date: Wed, 25 Feb 2026 21:50:27 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/vpci: zero guest-visible BAR addresses to ensure domU
 asssigns its own
To: Jan Beulich <jbeulich@suse.com>, Ariadne Conill <ariadne@ariadne.space>
CC: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>, Steven Noonan
	<steven@edera.dev>, <xen-devel@lists.xenproject.org>
References: <20260224231216.6203-1-ariadne@ariadne.space>
 <2aef1aab-f1f4-4063-8c61-d26ae335d06f@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <2aef1aab-f1f4-4063-8c61-d26ae335d06f@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9DB:EE_|BL3PR12MB6425:EE_
X-MS-Office365-Filtering-Correlation-Id: c28d5ab9-bd53-45c6-915d-08de74e1c7dc
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:
	njrkWHIbwLxG+iaS0Ft7ZbcalMnBMRpC/f3jF0wrMyLYkYkbel+NWWB8wG/VYyeJT02Ej90QIc1MCJuT9nm+nyljgo7uzyDpAF3NIaLBbVaG9FWQALQeZJgoeR70TVAUoPwyABIiRO6+onRvcqAaJjVd0gLdxbK1z/k8g8UPdMzfeFwvjIFuPy2XK1KR+jCs2XqB2h7buOl4AOjCmY/7g1cHNGjQSFIrESyKbPGw83BFKnR/A5MnGNoF834SQT0GzanZdpHODbGs5vqK/6BDFp31TwaAn1gATUwfuqARfos3L0v7Ccwr80rQLj1jrg0lUSjN7h9t+S89rNIXE1kZsLnNoKZL2fBHa02uwZjn3aU5GeAyIFs7ZdO+aKq8phTxoWPwIfq93i4J8DF1U5G3lkvsz0aMpz0J1nwHv5R+Wr4EMf9er4ZGapSDvz3GU24x90Kvc6quBl5MwFXYPpr0K0ssyViV33WTyyAjJhHx7Z1IyZwzmja+2HsDELLrQpMYbKBuMw1Elu/7TD+3bAwl7bVolbJ7bZSuG6vQu39SihYD3+mB/7qm7VQ76ahNagKwxc9HbYBVWMjq5K42kp6O5iDxx0BgVpDKqlKqdaaooi7N/6WrTC1IdnIlAFs6780PlqxXtv316+Ei5L9/g4n4glVrR2XhIBdlS4u2qnKLLZ1m+l5j2VRZ1OV2+7qWxwPBjTBMhcQMU1JK/ljRk92Uw8Qj4N3iKQcajsVO81Hhl2fxJO5bUblWPQlJbsqJ77d74+1T0fzIGJK8YibWCVnE2JqLLKDTBovACcTrLkXxmhLRS/odt9/H92QQshtB0duZaI2tg2ogqnKcmbTswclcMg==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	1i1E+HVzQNyYnUm1/zGMSKeuE1G/9fQZK/j8puz7+b2bnay4Usoi4eFRysokVOKlVmYVLXHn76h1eJ06IkXml1d/nnpe3hAqQJCoC5miB3xmde+7kcyRbwcIYDRZTcRTT6nowetWABxC5NSvKUK6olxE2J3mZLb4/4YeNa2N3SfPuLWijtIr2GN1rdAVpeU6/p2HZP0j+3OEPUvpCdIil66OrYQ7PFXiKye+ErvbdpVtSgpXaLfMeosPvgzoxvV8KR+yGXQ8STEH9DMMRUXq4rcQTTSoZSggawe94hAxjuu5e1QdqTMol6PmNx06FgMk51mjn8xPSDhamsM0qLjffWVhn79I4eng5GjQbgub4XT+esQN164Wpvk9v4syyQqhnAL+wWH+IvUtVs3Tmiw4Kqcyhzj5rHTlyjfyDT4Ebf4ANo4b7x4BQM6Ixfekphoa
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 02:50:20.1887
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: c28d5ab9-bd53-45c6-915d-08de74e1c7dc
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9DB.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6425

On 2/25/26 10:37, Jan Beulich wrote:
> On 25.02.2026 00:12, Ariadne Conill wrote:
>> From: Steven Noonan <steven@edera.dev>
>>
>> If we just use the host's BAR addresses, the domU might not attempt to
>> reconfigure the BAR ranges and may never try to map them with the IOMMU.
>> Zeroing them ensures the guest kernel knows the BARs are not configured
>> and needs to make its own choices about where to map the BARs.
> 
> Yet for this, don't we first need to expose a full topology to the guest,
> i.e. at least a host bridge, and maybe further bridges?
While we eventually do want to expose (a) virtual bridge(s) to vPCI domUs (this
work is currently in development), I don't think it's pre-requisite for the code
change herein: clearly, leaking host BAR addresses to domUs isn't right, and
there's no need to wait to address that.

With that said, the commit title/description don't align well with the code
change. Assuming we want to move the code change forward, for v2 of the patch I
suggest dropping the 2nd half of the title, and reworking the commit description
to focus on describing the code change at hand and less on what the domU might
do.


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 02:57:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 02:57:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241197.1542346 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvRZc-0006kS-9A; Thu, 26 Feb 2026 02:57:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241197.1542346; Thu, 26 Feb 2026 02: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 1vvRZc-0006kL-6A; Thu, 26 Feb 2026 02:57:56 +0000
Received: by outflank-mailman (input) for mailman id 1241197;
 Thu, 26 Feb 2026 02:57: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=WUpi=A6=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vvRZa-0006kE-Hb
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 02:57:54 +0000
Received: from CH5PR02CU005.outbound.protection.outlook.com
 (mail-northcentralusazlp170120005.outbound.protection.outlook.com
 [2a01:111:f403:c105::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ee659aa7-12be-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 03:57:48 +0100 (CET)
Received: from CY8PR19CA0029.namprd19.prod.outlook.com (2603:10b6:930:6::18)
 by SJ0PR12MB6807.namprd12.prod.outlook.com (2603:10b6:a03:479::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.17; Thu, 26 Feb
 2026 02:57:39 +0000
Received: from CY4PEPF0000E9D0.namprd03.prod.outlook.com
 (2603:10b6:930:6:cafe::7b) by CY8PR19CA0029.outlook.office365.com
 (2603:10b6:930:6::18) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.25 via Frontend Transport; Thu,
 26 Feb 2026 02:57:42 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 CY4PEPF0000E9D0.mail.protection.outlook.com (10.167.241.135) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Thu, 26 Feb 2026 02:57:38 +0000
Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 25 Feb
 2026 20:57:37 -0600
Received: from satlexmb08.amd.com (10.181.42.217) by satlexmb09.amd.com
 (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Wed, 25 Feb
 2026 18:57:37 -0800
Received: from ubuntu (10.180.168.240) by satlexmb08.amd.com (10.181.42.217)
 with Microsoft SMTP Server id 15.2.2562.17 via Frontend Transport; Wed, 25
 Feb 2026 20:57:36 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ee659aa7-12be-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Yjln/RijEd4YIvXQ72VAkSM3Wr4wJAXF/OzU9ca/Q66UTwONc1fJ6SfTRf7IfHFXE+G/R/21uBkkWhrr2ilAgP3FfnEipe3NJcIlziVJyNLadtmXVzY0uK91rBcrSf6G+n4gOgo3MJ8gw8qhe3CII6f4VoGZr11JydTlEqibAOuSQjROxSFpn50qpvpYMIhlN7iCzAxTtq6+l9gf9NDJKE5xEMG4c8KYfT9gGGtCekkjVcUxBHeVWdL+PmyYktRS/mR0IkeI+bJFaikN+X0tFx/gTuwo3PKxIaOtznw3sKa2IFUJReBR4oJ5Vm5nvmMB+6I3gz++dwiZpZd5RpkEWg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=GiPiVuucsC2EucsEGZmF0h4UPzI1DcajQirOunOPvWo=;
 b=Slr5My37ipjx9fIGUxCuge7164A0Ki5bY5e7O8i6TrxNGMVK5/RW4CpLuM1h2FjOy2CBhwQegLkV/0L7JsmtpxHlsjMaVpbJLlEMCWBVwxi1naaaJc0EAWrSFy4s5NMqBkvFsaoRED/R2WNDqHeGu1RLfZGppdiJ6BKouDmnK075JDmWccLyXP0ucEbxjF6qa2ykiL4cXEfdic0g8cATliVDFL35f3YbvR6NA9JU9gOXDZaAhVw5PMh9gRxSSyoLB4LHSyctd7Vsa4Pd7gw8hw8/aVegsPM5/40rVPpUkpxyP+taRXbevObYoMfi5vEmFDlFwJGe1B/pt5yBLtOPFw==
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=GiPiVuucsC2EucsEGZmF0h4UPzI1DcajQirOunOPvWo=;
 b=mcX0hQjXfROGyhwZv7dsuYOc7fK3oq8bDMaK4TOVo936wzI8wy+9HY7APK7EtwUJr8wt3U745mrmM59cPhXHXBYwEtLxNwBcNIQtitO0yLQKYs4T2Ha2B+0vPKB1aBgzHxQz5c1aAKpncKf/gRZ63E29RFPbpy76xPlzdkdpB8c=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
From: 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>, Jan Beulich
	<jbeulich@suse.com>
Subject: [PATCH v3] vpci/msix: check for BARs enabled in vpci_make_msix_hole
Date: Wed, 25 Feb 2026 21:57:38 -0500
Message-ID: <20260226025740.71673-1-stewart.hildebrand@amd.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D0:EE_|SJ0PR12MB6807:EE_
X-MS-Office365-Filtering-Correlation-Id: 0b398470-74df-4dc7-47b6-08de74e2ccde
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|36860700013|82310400026|376014|1800799024|13003099007;
X-Microsoft-Antispam-Message-Info:
	E39tkFF1wwqJxkB2gbFJ7xPXClLNm9nhQWnfXIiwQUjHIioVxjJDatYkqDhD61N2XJShT7QlHoPiI+IsJlJwfUYLQMyEhvNySlophveLvAKXXxav0PyGUcwSRWrTojZGA7rW5d54zTC2ITr4bx6sqKoCQEhuM+IU17yG/74Fil63QGjQ6WbW0EN+4qMxZfcqU449ekpdCDDQOEdemGtlEPoJSML+OrfIiT17reAtks88SKMRGRxuV9hqPb2ZFIveQ5oYs+JIwfWRibF6iAeyfT1lSajIv6+pvt62LYOFni+1Kg0+jM+/oFoxYSolA9sbg84YZpeDElcfi/n0p3f9eTpdPUF1ff4s7MUx6JupZrmO2DkHeeO6Z9MfNqryunODejgza5vjKgU3+XwZ7zCYgJOdgfthJ5yte1xFv+852BY0y7JQJWmuI+b3hJtQoQ9wNtXjL/g+1HWmxdjLhtFoc9WEdl243foYZVfYPfzbQt7qpqDyJD1iaG1qYPivjoRmq6ORb5MQwLFU0tU0UtTzxEjVjnWElAUSmSKpyfISA5kW6vZ6uxGm6EMkHohBDjqe4/sSpLZ7PxjZYWDMz6hE7BRh7l4Sj7kmFnXpndOfPL6KYOmJvoIXgV7NheTL0uKO7HtcfhHHpTvkAeJr4PzpzDely6qPblI4n69y9/X7dt3Yp3D+GPkN+ZP8X8JqtGZocQfh+oOadr8He/KvO78bshP2ecjjROPeUmkmz87RgLBHaePCoWP6uzstL9a3juEhMi1l7ClVQxWPZQ0v6AJEG/yEtzZhcsx+HN3q/xC6vjYCIZKz0no1xJ/JxyX8q1WR/47bD3fpwjXXa2djyQ08u07LM/B9sS8bELHam3UYlnE=
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024)(13003099007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	sefC1Wdu/HdLKPMOFgV5NdugyLgc2elapyYU4NPmIlNNFXRG9TXuEjXz1Tm9n4XZUCZao6U/1S0jOfKueh658aMbXDjR9SofQkLFnFfDPL6UshOXf7kij6csbVnIqqp6ej+mnBEOyXPYPlTXjloKCsMVYCStLhtycKIIzFKE8uqgkw2KvL74Rij4C/qw97WbOjOpUj5dXTh07ORUKwuiBeai4qBUKgfriG1Kix4/KaNqfEhSmGe5PkxCzJc/9KJbVWk+MOH3Rc+oI9t4wKMaIu2q+Y4TntuRWWOwx9MrbSQwA9t+8mtORPZch54Z8pvWSaffMdDflhrlrZzUzegSTNzeMwlxre7maJYEYk+KdjIJuRO7A1CdkF2abduTB4g3mI6nHvOZOX1D5RF2Lp4YFtD8o9b+ShqX/GXk/27yVrVJVvsDUp7llNSeDz3JRmio
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 02:57:38.0887
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 0b398470-74df-4dc7-47b6-08de74e2ccde
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	CY4PEPF0000E9D0.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6807

A hotplugged PCI device may be added uninitialized. In particular,
memory decoding might be disabled and the BARs might be zeroed. In this
case, the BARs will not be mapped in p2m. However, vpci_make_msix_hole()
unconditionally attempts to punch holes in p2m, leading to init_msix()
failing:

(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 attempt to punch holes if the BARs
containing the MSI-X/PBA tables are mapped in p2m. Introduce a helper
for checking if a BAR is enabled, and add a check for the situation
inside vpci_make_msix_hole().

As a result of the newly introduced checks in vpci_make_msix_hole(),
move the call to vpci_make_msix_hole() within modify_decoding() to after
setting ->enabled.

Fixes: ee2eb6849d50 ("vpci: Refactor REGISTER_VPCI_INIT")
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com>
---
Pipeline: https://gitlab.com/xen-project/people/stewarthildebrand/xen/-/pipelines/2347521688

v2->v3:
* move check inside loop
* slightly reword commit message

v2: https://lore.kernel.org/xen-devel/20260224025626.26909-1-stewart.hildebrand@amd.com/T/#t

v1->v2:
* new title, was ("vpci/msix: conditionally invoke vpci_make_msix_hole")
* move BAR enabled check to inside vpci_make_msix_hole()
* introduce vmsix_table_bar_valid() helper
* move vpci_make_msix_hole() call within modify_decoding() to after
  setting ->enabled
* split typo fixup to separate patch

v1: https://lore.kernel.org/xen-devel/20250812151744.460953-1-stewart.hildebrand@amd.com/T/#t
---
 xen/drivers/vpci/header.c | 26 +++++++++++++-------------
 xen/drivers/vpci/msix.c   |  3 +++
 xen/include/xen/vpci.h    |  6 ++++++
 3 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 739a5f610e91..6a28e07a625b 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -122,19 +122,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];
@@ -164,6 +151,19 @@ static void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,
             bar->enabled = map;
     }
 
+    /*
+     * 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
+
     if ( !rom_only )
     {
         pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd);
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index eaf8fae970f8..3efdd520e4bd 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -605,6 +605,9 @@ int vpci_make_msix_hole(const struct pci_dev *pdev)
         unsigned long end = PFN_DOWN(vmsix_table_addr(pdev->vpci, i) +
                                      vmsix_table_size(pdev->vpci, i) - 1);
 
+        if ( !vmsix_table_bar_valid(pdev->vpci, i) )
+            continue;
+
         for ( ; start <= end; start++ )
         {
             p2m_type_t t;
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index d6310104ea17..8ce730791080 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -267,6 +267,12 @@ static inline paddr_t vmsix_table_addr(const struct vpci *vpci, unsigned int nr)
            (vpci->msix->tables[nr] & ~PCI_MSIX_BIRMASK);
 }
 
+static inline 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 regarding the size calculation of the PBA: the spec mentions "The last
  * QWORD will not necessarily be fully populated", so it implies that the PBA

base-commit: 70c47ec5d65fa985ef7becd74b2d7b6d744b4c97
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 03:33:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 03:33:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241207.1542356 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvS7h-0003D3-Sc; Thu, 26 Feb 2026 03:33:09 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241207.1542356; Thu, 26 Feb 2026 03:33: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 1vvS7h-0003Cw-Q4; Thu, 26 Feb 2026 03:33:09 +0000
Received: by outflank-mailman (input) for mailman id 1241207;
 Thu, 26 Feb 2026 03:33: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=WUpi=A6=amd.com=Stewart.Hildebrand@srs-se1.protection.inumbo.net>)
 id 1vvS7g-0003Cq-NE
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 03:33:08 +0000
Received: from DM5PR21CU001.outbound.protection.outlook.com
 (mail-centralusazlp170110009.outbound.protection.outlook.com
 [2a01:111:f403:c111::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id dc98abb9-12c3-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 04:33:06 +0100 (CET)
Received: from SJ0PR13CA0029.namprd13.prod.outlook.com (2603:10b6:a03:2c0::34)
 by DM4PR12MB8499.namprd12.prod.outlook.com (2603:10b6:8:181::10) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Thu, 26 Feb
 2026 03:33:01 +0000
Received: from SJ5PEPF00000208.namprd05.prod.outlook.com
 (2603:10b6:a03:2c0:cafe::84) by SJ0PR13CA0029.outlook.office365.com
 (2603:10b6:a03:2c0::34) with Microsoft SMTP Server (version=TLS1_3,
 cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.0 via Frontend Transport; Thu,
 26 Feb 2026 03:33:00 +0000
Received: from satlexmb08.amd.com (165.204.84.17) by
 SJ5PEPF00000208.mail.protection.outlook.com (10.167.244.41) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.9632.12 via Frontend Transport; Thu, 26 Feb 2026 03:32:59 +0000
Received: from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Wed, 25 Feb
 2026 21:32:59 -0600
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, 25 Feb
 2026 21:32:59 -0600
Received: from [172.24.237.99] (10.180.168.240) by satlexmb08.amd.com
 (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17 via Frontend
 Transport; Wed, 25 Feb 2026 21:32:57 -0600
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: dc98abb9-12c3-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=JXauNnFZ/+XbP/o6z5PM98q1hFjHYGUlpZiGlFRlVJIrw1lWflBkL5SroTz6CkQMF8Y8xHGaNXjtZTxhjlWRhFKbniXCW4eH0h2b907EAvDUQHZ0McEfghTyYOk/aFWuAyJq/+8jedqwpMfhoGwjVpwjH9IXArptW/EcVA5VceR4tGnUr0hA4uL8W3wm27NfQogcpL18MgSWygN1wLT8rp6wHq+HPhMFfbWLZZTDnEbQk2JCWwWb6DgJccDd1kkFgZNt5WYpaBp0AuBy80RSlXppPAz5S22M6TjDsW7HbZmMBJ2ryLdrmKYa+LUUKPuAj9a41Ao4sH4UuRMiTmRyvQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=oHVmpml7MX7t6OeeygINfAmlog/QYeLXEBOI9hn/6HY=;
 b=VtNEdhhN7ljAuKBDpaT1aCKfBhV1qOXU5xUWN/EcDEsasjM6OtdiJEiVk+d97XIKl1+vSH28Tl+N8vJe7amVJjk+cMAWPcJ+oVazWcUVv61t8VDrux9WiJIAJ9Q4M7wsryp763V+P1GMpm7oWQhQMX8Wvk/cah94G0a1bxI4axOHiYHUIqiWEc7xbS9WsWqZIzS1IOi08few+cWNMo0Dj+k6kdmYDzu6G51ciQidmvEsjg1NOXOpsPq30llNr96YgDB2NsltfVy4CvUubBziBdscz5gNPqmbis1CUuMvnkZFYZPH6X0kU45NJ4LLl95ouTTpIRjGqzrWaOdKFL9A4Q==
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=oHVmpml7MX7t6OeeygINfAmlog/QYeLXEBOI9hn/6HY=;
 b=lgHyI6IfO2b5wnty3VEMLlSLRBWnmYsHeJV2tamDTpUHjyds3kKHvM6bt0rAB/pS4QqpybM4Y8/U4D6H3UsHqXE3bcyX5IEOLdH/ZlsGa3GJJQD3iD/cXOcv75Y9V02bqq6limV2Y+eAG5r7UiDg0hoJnYFEyJm4B/WP95sJC8o=
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17)
 smtp.mailfrom=amd.com; dkim=none (message not signed)
 header.d=none;dmarc=pass action=none header.from=amd.com;
Received-SPF: Pass (protection.outlook.com: domain of amd.com designates
 165.204.84.17 as permitted sender) receiver=protection.outlook.com;
 client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C
Message-ID: <9fd5a47d-6c94-40d5-8d89-fc76b11132b1@amd.com>
Date: Wed, 25 Feb 2026 22:33:02 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/5] vPCI: introduce private header
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>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>, "Stefano
 Stabellini" <sstabellini@kernel.org>, Volodymyr Babchuk
	<volodymyr_babchuk@epam.com>, Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>, Anthony PERARD
	<anthony.perard@vates.tech>
References: <6202d2d4-ad80-4e37-b1f6-cd9d19add72f@suse.com>
 <f3673515-5922-4748-a964-d4c391e937f5@suse.com>
Content-Language: en-US
From: Stewart Hildebrand <stewart.hildebrand@amd.com>
In-Reply-To: <f3673515-5922-4748-a964-d4c391e937f5@suse.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Received-SPF: None (SATLEXMB04.amd.com: stewart.hildebrand@amd.com does not
 designate permitted sender hosts)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ5PEPF00000208:EE_|DM4PR12MB8499:EE_
X-MS-Office365-Filtering-Correlation-Id: 52524fe1-f4da-4126-a417-08de74e7bd9f
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:
	XpBg35zbnPOVFH8b8k5pfYpxTG8REXawWce/L5Vp51Myrp0S6blApweZ4ZtKe7SjkEJWdaB5puC+StNZNAy/lggKkV6v5sOKtqu/5fDko25QQ4xRVT84ZZNENwxS+AzTdDY/Xw9/JpFN8ekpXIJY/gxtvVjd4t45uh5/+qqe4raRJTPNyRv9YT4psKd2Bmmqt7G5Gf22//7O9TZIPKgvndcuf16QybI9wFxPiU8UaOKQCVDqB13jBEP0djjY1Zws660xVZCouEMXj5YIuaHvAh3NWho2ISzy9AjiBTRtIJUz3/yL9tfCQIzzbDDauDd+7Ru37zICeFIVvePhxhZzb3meTEq4U/ARUXQp2LMSmCdgoSTLjgHRvaCC0Sw9CZBqWc+XZNSArygs7t5khXBpFwwA9vBZsZNxkEmBr7RRSD5X8GRja0Xyw5PSbNubxsu7/l4m+ypfj2TPNnNP9e/QnFbPOlV22n17/JEzl5+bOgtcDqiCduIgVgEXH1paDn8gZYQm/8utxF8XzDMWV45v1/J1I238Rr51+/b7KuEYTzF7A6TDUxWE08LLcI3k3rP5AmRhHn1NL+a4j2WwOGgcAToxJN64tiJoFJhhCpuPtjQj7Z90/UOpxYCdaONbXXAf5Cqbj2XpdoHPfL/Uw8Xw/OmFXemzMso/XVj4KSZXompKDrh+At0lg3AXQVR+ALm7xa3VFl9ISuES17BlCQHkz0OxI4OUNZ/0Q1yqsYN9EBLEepQ9s9WlJY+4bIUl6+ocR9EfAr1HpnSigQk2xuBRvcLelxl/eNu1fe5Z1SAd8fvGoYbo3H0jsr0iCuSHDUn2YAqGLlWiK6EPE04HQXorkQ==
X-Forefront-Antispam-Report:
	CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	5dNPA6jZheZUSkFRLWR0/a3enbYkntzpQERNBBdV7jtnT4GdZh9pebC01VsBUvy2pL8pQeITln9mlFPlluPvLazIbEuw1V0WskhJATR6cxfM7MmofAMF7oo7JEzypxJc5bAIdncI62rLarltJMVDhPjLjTTkFu5BLOZx7DwbmxjltrxAk25RncsK8+NIn4hFgeBTXARJ+2QWaZW3687A+FGVy8IXinmVu+9zQcxZebAQ1pHdr7piUFevql3GAP8jb2/Ely+HZm7ViiSnnbniEAW3nhxloexcG3XCOnu9NbVqB5uKGZ1N7yU48U+0wjo/hOUTvjjF+6XFsj9gygVNgCE1TXSxuyRwyvcqygZwS6tgvklq0PEImScafl8hA3blRiPNZ0zqK2KHIkkJn3QGAPyxAVzjz8VAkN/P0rxoS0GsP13vEXZ+Or1hXHBT0GYR
X-OriginatorOrg: amd.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 03:32:59.9476
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 52524fe1-f4da-4126-a417-08de74e7bd9f
X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com]
X-MS-Exchange-CrossTenant-AuthSource:
	SJ5PEPF00000208.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8499

On 2/25/26 06:43, Jan Beulich wrote:
> Before adding more private stuff to xen/vpci.h, split it up. In order to
> be able to include the private header first in a CU, the per-arch struct
> decls also need to move (to new asm/vpci.h files).
> 
> While adjusting the test harness'es Makefile, also switch the pre-existing
> header symlink-ing rule to a pattern one.
> 
> Apart from in the test harness code, things only move; no functional
> change intended.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Reviewed-by: Stewart Hildebrand <stewart.hildebrand@amd.com>


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 07:02:05 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 07:02:05 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241258.1542366 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvVNf-0001vU-2q; Thu, 26 Feb 2026 07:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241258.1542366; Thu, 26 Feb 2026 07: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 1vvVNe-0001vN-Vr; Thu, 26 Feb 2026 07:01:50 +0000
Received: by outflank-mailman (input) for mailman id 1241258;
 Thu, 26 Feb 2026 07: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvVNd-0001vG-EL
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 07:01:49 +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 ff7f4866-12e0-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 08:01:39 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so4438515e9.0
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 23:01:39 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483c3b89c99sm23049495e9.15.2026.02.25.23.01.38
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 23:01:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff7f4866-12e0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772089299; x=1772694099; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=8cQZe2dHyQBEti5OjKsuauCeZzodfwWd8leeRVjApiY=;
        b=Jhgxc5TS2OtjgoAz5UBVxMlC2BHww5v2wwQCLHZal+orhUXRc2jzzblCC8flHJtDB+
         5/GXjYuN/iU0Ys8lM3Ff2QQZL9X+bblsexk/j7b+qVsP2G1nF39gctTQAt2d/kDWkuDe
         PDwITp/jiSKBTEunB/Lw2XSYopKo4kPjSltci1F2JsAs7alkLgHP2vdjoScXoltBcJSR
         7nhkTSSpenl3FaauAVJ0fsYtiut3c5wtn/sgtc2DO3t5WlySClZkSq7o6UzHGLnmCskf
         9fj0+QbrlTWtfQvi0DC+clqNHWpC0OhHmSTBQiqBGk80npQ5foqEcdVWu4/xfx9plNqA
         Xhsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772089299; x=1772694099;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=8cQZe2dHyQBEti5OjKsuauCeZzodfwWd8leeRVjApiY=;
        b=IewLbaTfbMbyEDmskn+jrVGQ0m+aZA4FzVjY1Yw4SCo7s6rGMoENrHACLaAXCAQhW+
         ScUTZlxj7qozT6TRiBhXDdRX1IUw+rJhZSXaOMAlbRNWS3Gi9LLCtqoCgVUSJGp+BJLF
         9/h/6gUNVprVvk+i5NNtH0pbwVlFX/MgmaPQVIp0I9Z67oTkfj+xNdEyzPd3gdK2HmoF
         CXh9UNNmar/T9Hz5T3sby1d1bHzer0LOeon/Rpa2GmY16dzFhAVDcuzMW4HQjmX0Z6uy
         BxpLXFOo5JAZrK7/aqV2MDKjbog7CO2LOHVqPlF7xr8v2mBFzkpbr73k/AhHfyB/IbSy
         QcGA==
X-Forwarded-Encrypted: i=1; AJvYcCVFHQKW+q02yFktF36FUY7wuV1YOKgHHz2FEmheHZHyeuJX5rcPRDmu1z8IbL3xj0pX6XlKsVZZmKc=@lists.xenproject.org
X-Gm-Message-State: AOJu0Yzpw/OAyy5GzZZga/NvaF1EtpglP1jQqonCro6Fg0HODXk4oPRr
	fTU5A9P3yYGhciHW/jC7Qf4VEjc59kjjqPxT4ncLWrOBra8UsQLFrdWWyPKKXogoBw==
X-Gm-Gg: ATEYQzxipJNc8BJqnMTObEOEuoPizp/CRn6DWy4qbnITW/Il1ETcqWdIfaBZijN3k3e
	qJnshj6SpKo+1w6+SDqV8Z7HvwFhEx9T/RbPt/yYtfZIXR2JvSE5hW/K4wi2ZcYw42TVhgy2x1X
	yr0FcM0d6Op0RfpjnUa9M/FGPqbCbAI/gzDQBOQOafcJoEp8SRg9Zm9NiVTjx34yX5YlcMJHJpO
	TioPh+KT/SjCTdXW8iTWgut/A6xUXi67GNmQ9Xq1VDbZX8APRLNcYvmPBNn2OkPZrPiAKQGqKOG
	o3MBikcbTQnIrwVIBZA3UzQzxdH4P4bMFfmNB+T6HSrd1cpjgeBuMlyheahlAc5FrBTvysaBbft
	lRCiG3zzFuzSvzi5brcJkli/iztz6cJsgHVzII7RxrClnvDENNeAo0sQhEF5U+zpMcywi1tj2px
	0PlxVJOl0B7tFLfXHqjALFBFddoNMnIweM7Qf3m5I5wQLAK39KLRFjYZrgoxf/khTG/vLWtDz+D
	z20o9uEU7tqZro=
X-Received: by 2002:a05:600c:c166:b0:47a:935f:618e with SMTP id 5b1f17b1804b1-483a960a0e8mr339328615e9.15.1772089298904;
        Wed, 25 Feb 2026 23:01:38 -0800 (PST)
Message-ID: <e1fc4865-20ea-474c-8d4b-45d3ac207c85@suse.com>
Date: Thu, 26 Feb 2026 08:01:36 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 0/5] tools/tests: test harness fragment
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: dmukhin@ford.com, andrew.cooper3@citrix.com, anthony.perard@vates.tech,
 julien@xen.org, michal.orzel@amd.com, roger.pau@citrix.com,
 xen-devel@lists.xenproject.org
References: <20260213024952.3270112-1-dmukhin@ford.com>
 <5b0be132-07f1-4d7b-92ac-2b1d9c4db408@suse.com>
 <alpine.DEB.2.22.394.2602251648220.1536420@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.2602251648220.1536420@ubuntu-linux-20-04-desktop>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 01:51, Stefano Stabellini wrote:
> On Tue, 17 Feb 2026, Jan Beulich wrote:
>> On 13.02.2026 03:49, dmukhin@ford.com wrote:
>>> This series introduces the use of a new common unit test fragment across
>>> several existing unit tests.
>>>
>>> Patch 1 contains assorted fixups for the domid Makefile.
>>> Patch 2 adds a new fragment for auto-generating test harness dependencies.
>>> Patch 3 adds some prerequisite changes for vPCI test (patch 4).
>>> Patch 4 switches the vPCI unit test to the new common fragment.
>>> Patch 5 switches the PDX unit test to the new common fragment.
>>>
>>> [1] Link to v2: https://lore.kernel.org/xen-devel/20260111041145.553673-1-dmukhin@ford.com/
>>> [2] CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2323352235
>>>
>>> Denis Mukhin (5):
>>>   tests: fixup domid make fragment
>>>   tests: use unit test fragment in domid test
>>>   xen/include: customize headers for host builds
>>>   tests: use unit test fragment in vPCI test
>>>   tests: use unit test fragment in PDX test
>>
>> I remain unconvinced of this attempt to generalize things. Yes, it eliminates
>> some redundancy, but at the same time some of the new constructs are harder
>> to read / follow. Perhaps it would help if smaller pieces were abstracted out
>> first / incrementally.
> 
> I don't think breaking it down further would help, it is already in
> pretty small pieces. At least, I cannot think of a way that breaking it
> down would make a difference. Do you have something specific in mind?

See Edwin's series moving in effectively the same direction.

> Also, I appreciate you being unconvinced about this series, but now it
> leaves me in a bit of limbo. I am fine with this series going in --
> should I continue reviewing it regardless?

Hard to say. Maybe take a look at Edwin's first?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 07:46:08 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 07:46:08 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241274.1542376 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvW4P-0006zu-Ac; Thu, 26 Feb 2026 07:46:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241274.1542376; Thu, 26 Feb 2026 07: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 1vvW4P-0006zn-7i; Thu, 26 Feb 2026 07:46:01 +0000
Received: by outflank-mailman (input) for mailman id 1241274;
 Thu, 26 Feb 2026 07:45: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvW4N-0006zh-Rr
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 07:45:59 +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 2fbefd02-12e7-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 08:45:57 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-436317c80f7so1164038f8f.1
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 23:45:57 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4398bb96b90sm15279805f8f.9.2026.02.25.23.45.56
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 23:45:56 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 2fbefd02-12e7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772091957; x=1772696757; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=q+zbg/wrmfQLotK9BDINriCYgovWYoxERgIqBDQuA6A=;
        b=PxPUWsMGiOymbA4z8XbLd9Mz/UPunA0iARA+yvzWOVhnCEI3QgJCtXLeDwBPdKN9q5
         pugFfw7SdB+Nhndnv4E6AKYzNERudE4xIklYSRtewa2hkFM8lznSWcuVXsFDQqiLoOKE
         nFPxSCUwC08JPCSBkdoTPtoqPeYeC6qZb4Y7svLu9ZdBoWbG10aPmM7fwCmlsXuofPBD
         BgqdfZyTmeRIbAWUtkR/DwanXAcFAdPkOcTiD9cgA/uWqhhWTL2YMvTZO9bXS43JTNr/
         0eqqQSNW+pNC30b56t7Lw54vOGjE5ap4kqSpQmCl+AftZoP6I9/TQ8btV6wbPyXKDrWw
         ZF5g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772091957; x=1772696757;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=q+zbg/wrmfQLotK9BDINriCYgovWYoxERgIqBDQuA6A=;
        b=hj34eFA3Z+QOPspyPP+D267QF1Ion0U6KOQam2M5pxx1U6VPeW8ntIKxfLWyeRPQot
         UTpgAaULsQZp7KF+3FZUvTIb3JiWxrhzGIB/OLq/B2AsanhcNZk1J08Ohq5BK/030xKl
         GZJYDbfEpEIKiijP9E+0iWSw84arPXfBB4C0u2911UZN2/5za/YAnpJbxCrBJI8QKrsY
         42NTEd2mqanLmQ7m6yU9kN6HsF16XYcCpcva2s4Lp5D5WLkHYIVf5VPpclp+W4LfhRlO
         QR13z3Ef/SF2gJaWuW/AjjmPuTtVllBjXBuQuVoEReAliulV2UsvnOtluvqzw9u0wBfT
         y/kw==
X-Forwarded-Encrypted: i=1; AJvYcCXLKUG8erc7mSVlx2aMFU2inQ1YL2fdnEdWS0IonfZNKynixMC2tgLsVwSt+OvT/F2s5QwJzc//0P0=@lists.xenproject.org
X-Gm-Message-State: AOJu0Ywr1162bWqVKgXgOEWNbGS6M1Qa1pHNEGud5TwQOp5bB4llJyYS
	ZgOWtHuE37Pbj4r0IgEfw8oK3GX95jDpSG82vE6+QQuADSO9uepyTb5mGqDrloFrvA==
X-Gm-Gg: ATEYQzwc4y9wfn/Im87KUlfc7nsk/mUTDEomKoBq8clo/glX2ohhjzpERGs/izHeB9n
	8DjnHIehMvBMQ05ZW/hw04oV7jbm7MR2hBRHQ6RUYuoFUcrnNfd8CHUMDSftfkNpj4ACjRnC6pQ
	aVfEvHMfLIrj/GaVWskZ9xOfheGL8sbXFfPHwCTc/mG6+dLJUs42gdfHFSGQupJhETfetpTakB0
	r7F0Yo+VL7v5PHyspcn0H1XH9RivtKAKrmsz81s+FRYdSF1zVXzB6h+sNcUR1t/E4IPioQljH20
	R/R5dWrDi8pyzaAUoL8y8iNiv5WTxSiJA6Bimfz0R4xUkKzDvnufMYEPJKOOo2UQ2I+QSbPjwuo
	a7TSPw4aBHttLObeeFR7Gua2aT4axpPf98qaKzjJKV7I/iUxu6TvdNxDBrKe67Ply1K5DxPWUQi
	4LFtaYfpfiiJva6NqkTUfpw/abqDeVZ7JLYR151HDkWfbioynYX6OJYyX/pJjMbcOQGjzbyc79n
	rFHvprRkTNz6ek=
X-Received: by 2002:a05:6000:dc6:b0:435:96a1:ee4d with SMTP id ffacd0b85a97d-439971b2fdcmr2413040f8f.14.1772091956812;
        Wed, 25 Feb 2026 23:45:56 -0800 (PST)
Message-ID: <4dfd042c-2d33-4202-94f5-83b174a2e894@suse.com>
Date: Thu, 26 Feb 2026 08:45:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/mm: Remove claim that INVALID_{MFN,GFN}_INITIALIZER
 is for older toolchains
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Anthony PERARD <anthony.perard@vates.tech>,
 Michal Orzel <michal.orzel@amd.com>, Julien Grall <julien@xen.org>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Xen-devel <xen-devel@lists.xenproject.org>
References: <20260225125940.3804137-1-andrew.cooper3@citrix.com>
 <46a711cb-1853-44f6-a9a5-4d6252a8a995@suse.com>
 <63ee91a5-914c-4a09-9ef7-1e55beedb3e3@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: <63ee91a5-914c-4a09-9ef7-1e55beedb3e3@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On 25.02.2026 17:35, Andrew Cooper wrote:
> On 25/02/2026 2:34 pm, Jan Beulich wrote:
>> On 25.02.2026 13:59, Andrew Cooper wrote:
>>> This was never because of a bug in GCC.
>>>
>>> C requires that static objects are initialised with constant expressions;
>>> _mfn(), as a static inline, is not and cannot be made to be.
>> Of course, and I think the comments were meant differently. What wasn't possible
>> to use (with -std=gnu99) due to the referenced bug is apparently
>>
>> #define INVALID_GFN ((gfn_t){ ~0UL })
>>
>> Now that gcc5 is our baseline, do we perhaps want to use that and do away with
>> INVALID_GFN_INITIALIZER?
> 
> Oh.  Yeah that's very much not what the comment suggested.
> 
> Changing like that almost works, but there's one snag.  common/memory.c has
> 
>     BUILD_BUG_ON(INVALID_GFN_RAW + 1);
> 
> and with the _RAW constant wanting to go, the obvious:
> 
>     BUILD_BUG_ON(gfn_x(INVALID_GFN) + 1);
> 
> doesn't compile as it's no longer a constant expression.
> 
> It's not clear what to do here.  I don't think we want to keep
> INVALID_GFN_RAW around for just this, but nor am I completely happy
> dropping the BUILD_BUG_ON() either.

One option may be to have separate forms for release and debug builds,
with the debug one open-coding gfn_x. Except that this doesn't work: In

    BUILD_BUG_ON(INVALID_GFN._gfn + 1);

the expression is a constant-expression, but not an integer constant
expression.

Hence the next "best" thing I can think of is

    if ( gfn_x(INVALID_GFN) + 1 )
        BUILD_ERROR("bad INVALID_GFN");

It's not quite clear to me whether it would be worthwhile to abstract
this further, e.g. by introducing BUILD_{ERROR,BUG}_IF(). If so,
perhaps we would want to spell out somewhere that BUILD_BUG_ON() is to
be preferred whenever it's usable.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 07:48:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 07:48:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241284.1542386 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvW6J-0007Ze-Ku; Thu, 26 Feb 2026 07:47:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241284.1542386; Thu, 26 Feb 2026 07:47: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 1vvW6J-0007ZX-HX; Thu, 26 Feb 2026 07:47:59 +0000
Received: by outflank-mailman (input) for mailman id 1241284;
 Thu, 26 Feb 2026 07:47: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvW6H-0007ZP-FK
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 07:47:57 +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 7601fd40-12e7-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 08:47:55 +0100 (CET)
Received: by mail-wm1-x341.google.com with SMTP id
 5b1f17b1804b1-483487335c2so4567175e9.2
 for <xen-devel@lists.xenproject.org>; Wed, 25 Feb 2026 23:47:55 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-439927c3e01sm8232551f8f.11.2026.02.25.23.47.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 25 Feb 2026 23:47:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7601fd40-12e7-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772092075; x=1772696875; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=IwbF7+RiUH4UQwJGoEYI7bH/5ZWSJ7hnNE5Oh8DYeuI=;
        b=fA9j3YuaGoLRxcpEIOK/pvvJXfueidnb4PkQLLDUvA8xqFfyxzNAEnTFjPZPf3gSPl
         dZrV1oUAVC7T+rl2Xk+74WLPpJ9xSplN5P2VlSzsXo0RNA7MB6gLHfHgQQky7x+zTfV3
         LVAZ9nTKviNjkDfjwbC53K7aBRTQPhpMBmdMHgMu8Yo+3Mlh4mKCXPEVK7+05WbnCW+G
         4LmwJEzb4ZFwMJu+Qkikg4U9hF8hYPSCXZyZxZ2EswIlNYHCSLtnRYW3nJsdR3qh5lIX
         YczlcXfHhrFtheal0LfBfereRkbR8lqUoCMhEpgdxsIs846ME/K1eYStXtmb3a+3RwOd
         odsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772092075; x=1772696875;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IwbF7+RiUH4UQwJGoEYI7bH/5ZWSJ7hnNE5Oh8DYeuI=;
        b=ahJIHh/rCQN+XCQz1ofG8e2s6aTAvvdZQRpxydGmQo4qQrBZiZ40ml+m4WJPAJJsSg
         tKgEKjHSdrHel7wQjZ5QxLV/nFnBhM4EMOzJzO6EQqvtYGxsnYvyPrYl9L2GqPd5MHmn
         q8whi6pL3H3OY/V/pENhUYo9/E+EJdwTEaG0lhLkPiOv3RZXTfOl26s7AvBRvxXAjogF
         E4xCUaEN6ixeeDTDFYzUFA+EWthC8djuZBqr5sFwtgCykJEcVR3ltiXd2YJXrp0wVOAX
         6RjL9NZ+C77MY5HJKVysZHUVcstcjRjUXI/JLJNRDdHsvxbG1wEvx73YcXCr9ZOd0bYD
         cO4w==
X-Forwarded-Encrypted: i=1; AJvYcCXZqhJDpNLk+ImcuVM6SIgNpRbJNcuMqFIlMc1p8jxXduA8zRscgJHvu9pVj68guohHlsHwOpXPNAE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzieC7ohAt3ay54/rbNeFMkv0+e7LShamg+dB/j/F0u8OtTlGYg
	FlUnwrghiu9enXmqUziB+uGkFlyZ7/5FfLeKYdekF/G9515Jp9l6RQ74qOf/HcBDtA==
X-Gm-Gg: ATEYQzxKoJ1IPlT62d6KE7nlDoZTm2dTapKs7KNkhMbpzCk/0ogDxXRZhYMdhhdNz2F
	MLZHyK/9an0/t0cN+jNt43zmTH0U+Mp2nZbUwQRibdn5S2NAwQ6lxngyJ0VYtiimgDCCqH+xblY
	pZB9KhsdICAjP5CB2iEOJ13EEwCEW8DY4Dt5XRTxUZGetT0M0dC7lX44vS3hQaSJk/eQ89OWhhL
	plKF4JklpAFNnHDBU/eUv7Qcilph9FHbqpbF0sDX9Dh77+wPH9uTnoNQlemGjcATv9etDcssZw1
	maSJncgDBDrInRRkDDWHTF2fI2rhXLNP0bBvfLm7G4FVfmFLONWd6PCcofgV6MJba0UHI9MyE0x
	SKiRmB5ynPPxek1hE6/scT042qlECZZtMg4V449i+01i034iGwE9vANVy+EQdrhJ4m2vY1/2d3K
	OAYypab740UA0tVM6Ot+jsKNP2ANabKlnlsX2DgRgYCax9IjK/ydTOA0z3iA82eS5+sMJftV5O5
	Csex9ZEs//CJ6s=
X-Received: by 2002:a05:600c:3e8d:b0:47e:e9c9:23bc with SMTP id 5b1f17b1804b1-483a95f89b5mr297289535e9.30.1772092074691;
        Wed, 25 Feb 2026 23:47:54 -0800 (PST)
Message-ID: <c7b3174e-83af-48ca-854d-417fbc3be90e@suse.com>
Date: Thu, 26 Feb 2026 08:47:52 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xen/vpci: zero guest-visible BAR addresses to ensure domU
 asssigns its own
To: Stewart Hildebrand <stewart.hildebrand@amd.com>,
 Ariadne Conill <ariadne@ariadne.space>
Cc: =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 Steven Noonan <steven@edera.dev>, xen-devel@lists.xenproject.org
References: <20260224231216.6203-1-ariadne@ariadne.space>
 <2aef1aab-f1f4-4063-8c61-d26ae335d06f@suse.com>
 <b4a839bd-78f0-4fb5-a7db-dfc2f4ab037f@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: <b4a839bd-78f0-4fb5-a7db-dfc2f4ab037f@amd.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 03:50, Stewart Hildebrand wrote:
> On 2/25/26 10:37, Jan Beulich wrote:
>> On 25.02.2026 00:12, Ariadne Conill wrote:
>>> From: Steven Noonan <steven@edera.dev>
>>>
>>> If we just use the host's BAR addresses, the domU might not attempt to
>>> reconfigure the BAR ranges and may never try to map them with the IOMMU.
>>> Zeroing them ensures the guest kernel knows the BARs are not configured
>>> and needs to make its own choices about where to map the BARs.
>>
>> Yet for this, don't we first need to expose a full topology to the guest,
>> i.e. at least a host bridge, and maybe further bridges?
> While we eventually do want to expose (a) virtual bridge(s) to vPCI domUs (this
> work is currently in development), I don't think it's pre-requisite for the code
> change herein: clearly, leaking host BAR addresses to domUs isn't right, and
> there's no need to wait to address that.
> 
> With that said, the commit title/description don't align well with the code
> change. Assuming we want to move the code change forward, for v2 of the patch I
> suggest dropping the 2nd half of the title, and reworking the commit description
> to focus on describing the code change at hand and less on what the domU might
> do.

That would indeed work for me.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 08:57:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 08:57:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241312.1542395 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvXBM-00087D-Nh; Thu, 26 Feb 2026 08:57:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241312.1542395; Thu, 26 Feb 2026 08:57: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 1vvXBM-000876-Kf; Thu, 26 Feb 2026 08:57:16 +0000
Received: by outflank-mailman (input) for mailman id 1241312;
 Thu, 26 Feb 2026 08:57: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvXBL-000870-VX
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 08:57:15 +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 24534315-12f1-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 09:57:13 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso5348145e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 00:57:13 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483c3b3471asm34125995e9.3.2026.02.26.00.57.11
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Feb 2026 00:57:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 24534315-12f1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772096232; x=1772701032; 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=T0724WCopK/1FyxOPGWFFS5yePKLO9Eft9ibIIKk8hg=;
        b=WU6TdA3X48ZveVtkdtSBuywcUuYAoge46LKRw/yVlwBfGJfydYTqEP2Z/klUDJMvRo
         WhLhdNc1E2V+F8IOoBPQAIx6WWnTrquxwBQInhoZLilDuG3bjOdfWx+CTHPh5T1HtPX3
         CusKDBWk5Cy1GoDN5618L5zAew66++jT+gkEO4Ot7NQArmWkrzYzlXQZQLZijACoTNtw
         N+2cKu7diBrloBzEY1ViN04r4wSmDboNkD/DcRnfS12uHzBQWSvF6cDRr4C2ATgSCkSB
         Jq6sQ7n/tntnwgvWpS0p6mk6OC10sM/SdHn3g6S9dxV5xcyRVgV9G2gCj+J0+SIqB7tj
         4SXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772096232; x=1772701032;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=T0724WCopK/1FyxOPGWFFS5yePKLO9Eft9ibIIKk8hg=;
        b=SnyNSnntcAZ6LCB48HIPRRnZfvYqZ3myrhQUGneZEQSHS2UxkIIGdN7csTeyXHEkov
         bCEnU3xJJBt57YBuNspwzi7biJnVE8w4Lg5cdZlEc7OpT2Rh+B7HYolFJ6tN7wa9I/Mz
         Ou7DcQ51OMwjkcX7qj6BghpFROkYPXvIqR0FfbHoiLvm1zcRqTtfJHBX3kjIYT7ObOwk
         2tat8Y5xjxcwthFWqLiXp9trdys0O0WGxhulkA8mQYJhz9l6TFffQD+uiFPrgobk7HuJ
         Dd0nZCG2xsE2SmTHI+ENr71+1LP58jz1PYN8A1VY6dRS0MDWX/AMMXTcPbrFieo1FNBB
         5/4Q==
X-Gm-Message-State: AOJu0Yz4ubApbaR2J5WxdEak54ldOrFRNISTpvOScZGRLIVgPB/E0/B+
	NUg1u6WFZztjg/mMJQeU1vYDpkEmv472QfiMq7uLlOGa7SVBMMhaI1MMvUPzLgHTt7fM2qTVC2s
	TwCA=
X-Gm-Gg: ATEYQzz1d6Ggg1k0TIu0qoyQPTHDFbb7Kl2i6Y9SOdbEyWIDYqa7WEYorLsV6QbGS8+
	76+AjvMvAwDR5Gw3QrgpqQ9HPpIRBEOJlqbDmJlVyd/tWoQV//2DSfdOL9qrcE9YE8WaJKl7DCP
	9UjayH6+g0FruY/c1gagDh0HdYTbrPtWpm3/BZSzcqRtdzbG0E5Xw6Lu+mLhUGriRhwVnL4g8Ab
	0/VvDBruV9inzJ+nDePaVUYjiLrccqzN3I3eQu8h4YxjHRmqipmnPMah4JlA1UWPGWJqRnGFByo
	CcqzLWrUmAOeyJlKeMo6WNmNDLuyjMJ5NS2UTaiRumuBu4yGg7k5CdpOQKE+e3azcpPf3QTUNbg
	whq5WBOpk/UB9DkULfHy0X7EytuKEHHZJqq2+JBMzLVPh/SxoGE7IbwlCc69pfK9aPY5Cnzafjx
	QV1K2TQfqxBoEBytTkOCs0R1b7rhKM0/Z9wILqqErg4Bcu+iA6dmksrRTpYVes9klmXg6QfUh6n
	/lrzx6sM2oqcjtULSLAWFemdw==
X-Received: by 2002:a05:600c:c3ce:20b0:483:c12b:fe3c with SMTP id 5b1f17b1804b1-483c12bff86mr49293295e9.4.1772096232463;
        Thu, 26 Feb 2026 00:57:12 -0800 (PST)
Message-ID: <f11a57c2-662a-453b-86f9-b10c489aaa90@suse.com>
Date: Thu, 26 Feb 2026 09:57:10 +0100
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/shadow: don't use #if in unlikely() invocation
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

As per the standard this is UB, i.e. we're building on an extension in
the compilers we use (for gcc, see "The C Preprocessor" section
"Directives Within Macro Arguments"). Misra C:2012 rule 20.6 disallows
this altogether, though.

Combine the fix with some tidying: Fold the two level-1 checks, adjust in
particular comment style, and move the unlikely() use to a single inner
part of the conditional.

No functional change intended.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -634,35 +634,36 @@ _sh_propagate(struct vcpu *v,
         sflags |= _PAGE_UC;
     }
 
-    // protect guest page tables
-    //
-    if ( unlikely((level == 1)
-                  && sh_mfn_is_a_page_table(target_mfn)
-#if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC )
-                  /* Unless the page is out of sync and the guest is
-                     writing to it. */
-                  && !(mfn_oos_may_write(target_mfn)
-                       && (ft == ft_demand_write))
-#endif /* OOS */
-                  ) )
-        sflags &= ~_PAGE_RW;
-
-    /*
-     * shadow_mode_log_dirty support
-     *
-     * Only allow the guest write access to a page a) on a demand fault,
-     * or b) if the page is already marked as dirty.
-     *
-     * (We handle log-dirty entirely inside the shadow code, without using the
-     * p2m_ram_logdirty p2m type: only HAP uses that.)
-     */
-    if ( level == 1 && unlikely(paging_mode_log_dirty(d)) && !mmio_mfn )
+    if ( level == 1 )
     {
-        if ( ft & FETCH_TYPE_WRITE )
-            paging_mark_dirty(d, target_mfn);
-        else if ( (sflags & _PAGE_RW) &&
-                  !paging_mfn_is_dirty(d, target_mfn) )
+        /* Protect guest page tables. */
+        if ( unlikely(sh_mfn_is_a_page_table(target_mfn))
+#if SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC
+             /*
+              * Unless the page is out of sync and the guest is writing to it.
+              */
+             && (ft != ft_demand_write || !mfn_oos_may_write(target_mfn))
+#endif /* OOS */
+           )
             sflags &= ~_PAGE_RW;
+
+        /*
+         * shadow_mode_log_dirty support
+         *
+         * Only allow the guest write access to a page a) on a demand fault,
+         * or b) if the page is already marked as dirty.
+         *
+         * (We handle log-dirty entirely inside the shadow code, without using
+         * the p2m_ram_logdirty p2m type: only HAP uses that.)
+         */
+        if ( unlikely(paging_mode_log_dirty(d)) && !mmio_mfn )
+        {
+            if ( ft & FETCH_TYPE_WRITE )
+                paging_mark_dirty(d, target_mfn);
+            else if ( (sflags & _PAGE_RW) &&
+                      !paging_mfn_is_dirty(d, target_mfn) )
+                sflags &= ~_PAGE_RW;
+        }
     }
 
     // PV guests in 64-bit mode use two different page tables for user vs


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 09:01:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 09:01:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241323.1542405 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvXFn-0001EZ-6Y; Thu, 26 Feb 2026 09:01:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241323.1542405; Thu, 26 Feb 2026 09: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 1vvXFn-0001ES-3t; Thu, 26 Feb 2026 09:01:51 +0000
Received: by outflank-mailman (input) for mailman id 1241323;
 Thu, 26 Feb 2026 09:01: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvXFm-0001EM-50
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 09:01:50 +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 c7f5c472-12f1-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 10:01:47 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so3937285e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 01:01:47 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm202289185e9.0.2026.02.26.01.01.46
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Feb 2026 01:01:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c7f5c472-12f1-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772096507; x=1772701307; 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=vIsd0i+wjQKbVJ2Ph4V6pW75bmKywqwHk3mSnKxv6yQ=;
        b=ea46KkwBxeRafRfE9D4M5F2XtsjOXp8jRk8IWQgKls5o+lmHJxrh8qLUE33QxL7FIt
         CQMsnf6W33RdhSninXPYzeIZWea/Qg2MdMF3CSHIcJCTPN3eMMRiqxRJSEXCN1kV4dqr
         I1W3ZHrVkm+dNh8O1R51PjNT+8lCYGeUHDXXnyg8j/VizJZWOu1mWgap/vBWARv/kB+T
         68000pCGhq8kCoOR5/hnmmyleocxmE7RsER3CFVQq+U5/TxVtIXFBfFpi7oGGr7y9mQK
         QM06C1RBFum1ftuhwQ4DCExX1AlsqU2er3v5JmgckW1G9Yj9muAvlYKHmsFdS/Nf4ves
         NqbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772096507; x=1772701307;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=vIsd0i+wjQKbVJ2Ph4V6pW75bmKywqwHk3mSnKxv6yQ=;
        b=rCPko/sn+/7jv0KClaOl1AAnic8MbvjXGhavk1/gnPKKBZET5gj+yXUByXO/Xj6tu+
         MFKrO9p9RedbeqUcZTlp/NLGEHLtfG7nSdL2JjODfyJIzpEIyLvuBBlZO8z0dl9kUqmR
         ji8tIwNOs517M5j9cQzmPpZKZoZgGQcuIqSAA5RsDxdw5Tl0a1rrYnG+9xOZ27jvVWq+
         qTK1niA1/G5EDKRa7AapjkQID/CaZSnUzHxadBbtmW7Q5vEixR+JjgIxXYQQkJTBv0GS
         uZo/QDssZvx6mG0zNVO+vml2zR2U0Wv1siReXFingsStJX3w1ykn2Zc7kDrFsZwaq4/6
         RPTg==
X-Gm-Message-State: AOJu0YwojcU+faYLnBoqNY4b2amjSJiO1rF/ypF3EXmT/mGg94BbuwEN
	bKZFdSZB0lxAalhFoPSiUH/miw74lxdoZJKjLULr85Pn5dn8dtB09yAJWrNIpSsPZkoEvcr1SP3
	U46E=
X-Gm-Gg: ATEYQzymJUwdQSYRFzlccx48ohiL3XjUMhf0GU1V4/Y4clenI/MqmM0O9qjzuaH1MPS
	k6CYOeGXPi9IPZ5f3Va5h5rcMDga2JCUUngdjH3LvvK0Dzcq3vUgTbPNDt7kxe4mfALhr+iUhLw
	3/F/Jke8t3DHukgLfth62R8Sbq6tWI6nMvoGZTHQzEbqC7N5WVLZHutcwB7c77YaSFygPHLto7o
	EoKZm3BIj2t/OlUs31fxqAomfnEJFInPRmpwYG9pijrAvfCH6z4pWyeXiyR3OSVJXMgI2j94u75
	I11Lj64P1dzqESHBHbmdnt/Ii7w6jqUiX0zg5HTh3SKS4x/NAnNUCwT4AP+EJA8iH06lBo1nXgh
	JWYmMtlrv8+t4Y+vU1RvpR+l7YuEOTUWxtEiek2eqIDHaQtwQV9Dc+Zx2AyvXuX5vG11U0i1nJ2
	0wPFr+/nuWGdxA35xyBHM/HNU5/5GUtED8Mo14/qat7aoq4YYjaoMIhlRYAfPBTPBW+LXFTSsaG
	jxObzQsHzQOzi8=
X-Received: by 2002:a05:600c:470f:b0:46f:c55a:5a8d with SMTP id 5b1f17b1804b1-483a95a852cmr332100975e9.4.1772096507104;
        Thu, 26 Feb 2026 01:01:47 -0800 (PST)
Message-ID: <7af56fa6-4254-4704-9843-a0d099e6bb0b@suse.com>
Date: Thu, 26 Feb 2026 10:01:45 +0100
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] domain: use unsigned loop induction variable in
 complete_domain_destroy()
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Using plain (signed) int variables as array indexes can be unhelpful on at
least x86, where the compiler may see the need to insert sign-extension
insns (strictly speaking it should be able to avoid that when the loop
continuation condition says >= 0, but that's not generally the case even
with gcc15).

Observed effects with gcc15 (will of course vary with compiler version and
level of optimization):
- on x86, one less preserved register in use, yet due to sub-optimal
  choice of register variables still a small code size increase (%r12
  isn't a good choice when it's used for base-without-index addressing, as
  it requires a SIB byte which other registers wouldn't require),
- on Arm64 code size decreases, albeit that's eaten up by padding which is
  being inserted ahead of a few labels,
- on Arm32 code size increases for a reason I didn't fully understand (my
  ability to read Arm assembly is still somewhat limited).

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

--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -1475,7 +1475,7 @@ static void cf_check complete_domain_des
 {
     struct domain *d = container_of(head, struct domain, rcu);
     struct vcpu *v;
-    int i;
+    unsigned int i;
 
     /*
      * Flush all state for the vCPU previously having run on the current CPU.
@@ -1485,7 +1485,7 @@ static void cf_check complete_domain_des
      */
     sync_local_execstate();
 
-    for ( i = d->max_vcpus - 1; i >= 0; i-- )
+    for ( i = d->max_vcpus; i-- > 0; )
     {
         if ( (v = d->vcpu[i]) == NULL )
             continue;
@@ -1511,7 +1511,7 @@ static void cf_check complete_domain_des
     xfree(d->vm_event_share);
 #endif
 
-    for ( i = d->max_vcpus - 1; i >= 0; i-- )
+    for ( i = d->max_vcpus; i-- > 0; )
         if ( (v = d->vcpu[i]) != NULL )
             vcpu_destroy(v);
 


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 10:04:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 10:04:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241364.1542415 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvYEK-0000Go-KD; Thu, 26 Feb 2026 10:04:24 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241364.1542415; Thu, 26 Feb 2026 10: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 1vvYEK-0000Gh-Hf; Thu, 26 Feb 2026 10:04:24 +0000
Received: by outflank-mailman (input) for mailman id 1241364;
 Thu, 26 Feb 2026 10: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=KEVl=A6=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvYEI-0000Gb-Ei
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 10:04:22 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 84b794f6-12fa-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 11:04:21 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW5PR03MB6907.namprd03.prod.outlook.com (2603:10b6:303:1c2::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.11; Thu, 26 Feb
 2026 10:04:17 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Thu, 26 Feb 2026
 10:04: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: 84b794f6-12fa-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=Hi3O9KgSErvlxmQlLGz/F+BGFY5fIdtb6SPsAZTzkch8xPhvJOdIa4/LtvAUMbwDsaqymLf+Rc7FS+oXO6MV4HPsO9UsFost122/pJm3JsuM88fuFe1NeRcGd9tismlUfhy4Wuy43fX2avpqVEhmAjlBg05yLasamJxNhp94WWZ91Fqvg6ydWAYtKgNxMWoulSLgwrN7KzaFoKt3DGUqYEjUJltqtEwjqkNqxo/wCxxlv8uWmjxhYmVCiEDWxm1WN8a1IWZKfbRsa8hUJgi6XLF8UqgJ+IGLzn9A0hKx+HA1lcUSCHj5m6b3KDueRNfDDO/l1Q40taxS37rpmWiHTg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7Nur07DrxjgT6QdN0xBW6YHYrP4RJX3ZYILLg/TEeCM=;
 b=GBNrnwDPMB5/Un0AoNpl2qA01hiZtcq6odlzmHkRW89Wj4nThrX5fqbElXqOr4ay2zWvryEp6hKTlsmGU9Kt0bKWQ7e6in5N1W4OmviigCDTRRgeN53ixYw3WVShAr0ET+rQSIKQOvSCYG+vsUQXe5X9AFtqynrTFJ5wzIM4k8sc62YV187cNBNlaeCY9jCCaAFT8FYJ5GHMYHmwnzRak8W9dsNb71bvymv3u+GxGkqkgEmlPEKLuLWXAcSALmKu8E2wbbdCP5CF0KAR8t6ZcrWU9ICDMZmNsI2dK6HHQlReLlYzBY6GfR6LJOPEMGUOu5r4vupfMxNeo+hFYOLFcQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7Nur07DrxjgT6QdN0xBW6YHYrP4RJX3ZYILLg/TEeCM=;
 b=iH8GsxwjYJm/VpgsDEmaJmk8rWvVp0BQ5B857vx3Q4FCv3Yg4pz3tfNVhkKSF+KyxXuPQuC9P8AS/SORyPCphMoQK/VwMacD07oZuDs2xXkg9RAxM09X/viPw+NBK1zwmApJgAcKIErI56gzGEatDTL9r7Fv1wtHggj4rCNr1Q0=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <51685aba-2a5a-4b59-9e78-913ed20a1adf@citrix.com>
Date: Thu, 26 Feb 2026 10:04:13 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/shadow: don't use #if in unlikely() invocation
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <f11a57c2-662a-453b-86f9-b10c489aaa90@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <f11a57c2-662a-453b-86f9-b10c489aaa90@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P123CA0086.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:190::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW5PR03MB6907:EE_
X-MS-Office365-Filtering-Correlation-Id: 5f17649e-350e-455b-08c4-08de751e66c8
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7053199007;
X-Microsoft-Antispam-Message-Info:
	H1DlClLa9/bO/gfMWWvS3FayM/bSUPy1rD8dIcVVIldy3BOJ33yZcQqLRsAF0WEl82uL2+6OtymZvMEcbn7KVHkrmIq7WZJ5CanqWbRgjzZC1JX+9FHdPcfs7R/6SAUjDZJ6JdOVNSjJ2UTHF88/zjffJX36TPFs8/MXoFbFmcNHScgZoZSzLbj6cBQIw2Ilqkw4SoN5dwgspQU/BC+UNRAHzRimRpFoW05OFxg3vgTZ5VW4zgJ//88r69BVBi2xKZrq1Yqgp2ifU6/cvWM4edWIMurISsbrtjBIQoOhxtGQi0TQzfy1bRUhAXVGGUHSDMsp4+hfozai53A0bSRRqJGPk8YJjTI+u6BDrb4TDsgARxlXMpzSVSq3og/i2I14kHeRJSy7zb42jV39ipi+xAQYCLlfN5bz6qB+eEK8nIDeShkxrTZS1jIM+XnxBwgQ+NSrUvNmPdhoVbMFfnw5aOMAy8mkP8EEbuWsrKv8tams2G9PSy/H08WJq7uzY+WPFK1oHNDxBUkdBWyZAaKdXczpXL7Lp6OsP3LFccB6MnpIavjDE465H7fs+Zg2EcbgC2k3OszB5dDrA0Wre94Y1d6kxyjgRBaeBMYF1u5TTdXI8lMZCbpIuvdlcFtQohiyeX8FaDaMbYWJdPPFf2Nr/w6FKeoLrcqsCmBeAYUJ/T5zPlj5raXgnLFMa8JTk+gQ0QD5OlLCqeL9wh+17D2eVxKwxeDYDRSGETuYK6IqrxY=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?azEyakRwQmIxQmMrNFdrcHcwWi9LWHNOUUw5cHk4M1g1eE1RNytzVUc1bitk?=
 =?utf-8?B?VDV1cVJYY3FqeUswR1JzRUVqbHZtT05XODJXRSt4SndSSnFQZ2R1aVRjY0NL?=
 =?utf-8?B?QnFzWmRmVlVwNVZLeHBDR3ZCZnFQV241L0ZOMjRKYzFxdlB5RDVwb1FhQzNl?=
 =?utf-8?B?dXV0YUxEQ2xxOUYrR2pUWWFXbXVibjRPbnpTUHlhUWI4dFB5YTRBU1VSM3RX?=
 =?utf-8?B?c05vNGNlS1VSR2tNT1Y4dk9Hb3I0OFpVK0wxVEtVNXM2Y3V2U3pvVEI3MDVQ?=
 =?utf-8?B?ZHdYUGJBM3JybGR5R0crZTRwSDdOYnRCdzRSdGZJdFFRRTFVbHFDVmRLT2Jh?=
 =?utf-8?B?c0REVTAvNjBKZzh2YUlEdzBZOGxwTkZiQld6VFNuUStxN2FOdlBORTBnZHRP?=
 =?utf-8?B?S21vbzh0NFZPVHNxbnVkRklsYXhQN3E3b1FjdjlmYlFZcU5GZUdDZXFvQ2hP?=
 =?utf-8?B?TytZSU01TkZicUFFeTF6SUxwamJtZi9IbnFQenNhZWVPM2pvWG5vcERZbngz?=
 =?utf-8?B?MXJxVVo0VVMwaVRzVFYrN1FObG9EWVY4NGVmSXVKTjU5QkNwSjhvQ0Zuay9T?=
 =?utf-8?B?SGdkS3RTOE1iUzM0bkxtY0VBS0tzMmZCekFTRUs1aHRxRW53cnJYa29ieE44?=
 =?utf-8?B?UmpFaFExb1QwSkVYUGFseW5Vb3ZEeFV0R2NuZlNFVHdRTUdIZGpHTnNKR1JS?=
 =?utf-8?B?RzRXYlM0ZmRSdG0vRGZlNy9GNmxzbHcxcmU0eURhZTY2STViUlBXU1RRWDB0?=
 =?utf-8?B?WWxwcTNKNTZ5Sm5jMXMrL0U0NTJ3YmRqdXAzc2I1Mzl3Z2N5OC9UUXVxcjNW?=
 =?utf-8?B?S096RFVRaG9XaUVLQjFXTzErVjIvMFF1ZXF3YU1VWG5yRUJDdlhySjRCd1F2?=
 =?utf-8?B?MTJVNE8xSTRNcG96ZCtlUnNnOFp4aUVQMzJPeUQ2OU9Ma3pIVy8rUkZuMldN?=
 =?utf-8?B?QS9WcjBPR29HU3J2SnNhMThrN0JZQk1sb3U0Rkgwdi9ycU5vNHRESDBSOXFk?=
 =?utf-8?B?Q3N4V3g0RGNyMXhNNTJDZk5LaVFPdE9ScmpRMG5wSGlWdExkWFhaYVRLZ0FP?=
 =?utf-8?B?SE13S1NlSndPSnFvL1QzOUg1N0R3c0JnS2ovcURHZWE3T1BLNXA0UktlM0kr?=
 =?utf-8?B?cDBZSVFJNE5YMmtmRjM2THh5LzhWRU1GcFZmRXJyUjRpWWVtOXJEaVRoWEpR?=
 =?utf-8?B?bXlnY2d0aHRENmo1RXNZM09Lc0VVcDVqaUFWVG4yMTY1OHN0eThFSko0UTdV?=
 =?utf-8?B?WkpDbDB2TEFuMGdmM2ZwZmkxMmp5eWlLbVRsM29wZWk5SC9QME1lazlWQjBa?=
 =?utf-8?B?dzYyLytOZTlQUE9PTDlHelNkYk03aGxuZHlyREZteTVxTERXVkJpemNpK0dQ?=
 =?utf-8?B?dGxBSnZLcHhxb29CZUhpbVV2d2YzQXdUTUNRa0daOUdRbU10UVByeUh3d3NY?=
 =?utf-8?B?dkZRUW5TTThzWE9jMlkrZXBnT0xobTF3aTFrQ2V1SEFYYTBmZC9CZnFqNlgy?=
 =?utf-8?B?NmdlTnBmT21oVXhqQWFxMHRPZ0dzWE1sbnlUZDZKdVpUUDFiNVp6a1FFWVVP?=
 =?utf-8?B?T2dpODRWLzVwc3p0V0VONWtrSU5jNjl1RFdjbnozd1BVQklnbVNSKzJrWlY0?=
 =?utf-8?B?T25DcmpZS0lmUUNYMXhYR0tWWXNjRk1BNi9wM1ZnWGdDYjBmWHBqS1ExaTdM?=
 =?utf-8?B?dFRYd1NPam1La1Zzb1IrT2xJRTNlWXJoZGVLQzBOZ3NyK3RVUGFuTWxXWjlL?=
 =?utf-8?B?dGJFeFhNVEFBMmJzQkt4T1N4YXpCTlZmVzBKdUR1SjZBSzhmRnZGNStSTmhR?=
 =?utf-8?B?d3FRNzlVNXVGNUlReDVWMVZSYjNBQkNvMDg1VDRNVUdYc3EyS1BUdDI4UG5V?=
 =?utf-8?B?bEV0QkdCSmlycG5VQU81dDN6L29tN3JRUHhOSXdnMGE5bzcwdkRodDhDR21m?=
 =?utf-8?B?aGxzVWNZajVjU3cyQkVJbWg4NjJNV1oraWR3aDRxb3Y4Ui9BMHp3ZTd1ZHFY?=
 =?utf-8?B?d09rdk4yekVNNmRsUyswQUZDTmlKVy83UzFEVzRJZFlZcmJXSnliUWcycE5V?=
 =?utf-8?B?cnRnUWNmV0hVMldkK284OFMyUzVINUszcDJFWVF5ZW1WRC83NzFjeENHVEJz?=
 =?utf-8?B?UnBSVkFVMkpJTEoxeUdUOEFJUktsTzFubk5oMm9TVVV0V1R5a1lCd1RQRUh5?=
 =?utf-8?B?Mk05NlBrQm1WSm1CNkxqL0lORDh5M1dxQ2REV1FrYUZySDRZajgrc0lwT2xL?=
 =?utf-8?B?TERFYURoYS91ZTZiVHFZNjRYemxEZGlyRDRHKzg1cU5pb1FRUm02dngwVEpw?=
 =?utf-8?B?YSt6S3NoQXJFOGxMZzYzNVJweXF1ZGhBWEVTYTFBVERxWmcwZHBtUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5f17649e-350e-455b-08c4-08de751e66c8
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 10:04:16.9172
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: kyNb/LRClIjpw496WJQOVIbBkQ9NbgxMGy++8TcTLowIjL1z5yoj9zVl/9i0CjEU23ETxxMafSCtK7xt/l9sCvWFBxpNiRMUFKG4xLZjh0I=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6907

On 26/02/2026 8:57 am, Jan Beulich wrote:
> As per the standard this is UB, i.e. we're building on an extension in
> the compilers we use (for gcc, see "The C Preprocessor" section
> "Directives Within Macro Arguments"). Misra C:2012 rule 20.6 disallows
> this altogether, though.
>
> Combine the fix with some tidying: Fold the two level-1 checks, adjust in
> particular comment style, and move the unlikely() use to a single inner
> part of the conditional.
>
> No functional change intended.
>
> Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 10:06:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 10:06:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241372.1542427 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvYGh-0000kV-12; Thu, 26 Feb 2026 10:06:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241372.1542427; Thu, 26 Feb 2026 10: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 1vvYGg-0000kO-Su; Thu, 26 Feb 2026 10:06:50 +0000
Received: by outflank-mailman (input) for mailman id 1241372;
 Thu, 26 Feb 2026 10: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=CCg0=A6=epam.com=Mykyta_Poturai@srs-se1.protection.inumbo.net>)
 id 1vvYGe-0000kB-Lv
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 10:06:48 +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 db6c9454-12fa-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 11:06:46 +0100 (CET)
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 (2603:10a6:102:30d::12) by DU5PR03MB10220.eurprd03.prod.outlook.com
 (2603:10a6:10:51c::6) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Thu, 26 Feb
 2026 10:06:41 +0000
Received: from PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com
 ([fe80::b8c6:f37a:987a:beb%5]) with mapi id 15.20.9654.013; Thu, 26 Feb 2026
 10:06: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: db6c9454-12fa-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=RjEyopvB1CingtiKSZZuBeN0LBXCYqVVz699CK9C6wvj99LmY/KX8SXS+2XoUU13MozKDbyuKE8vJbNHfDKfviKwUx6OTghC6CbwyeeH36KEWY8eN+8otScWkDMJjYHkaffTusI8oVrJp66mFvoor+ShLCtDaiZlKPhh8oF5G2P6co7qJ/FHmkobGhPi3VH5LJ2k+cHZj7NvtL89KwAqeH9Nx5/6+8jrktgVfHEb6MfPYQdm8QLhTeLciEni3UkfftJdLg3JpmGGrvDiQrp0D8+ULZrqNFsd9MvUDGIfgOAZUtSjuXPJuYmX5hriHMZQKVtolKUiGxFqp6W32mJFoA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=7HabhxyGSpnM0H/tsbecDbTOgMQQRk7Q6CZ0OcS23KA=;
 b=jymiHM9XU4TYnv9itEabfhPUuRBzLnEsbvK+A2GazY17qRO4M58aC8vF3X4YlbF80euDkYKwS9hCY0lOAb66mq5TU7h5OEZUlP6SmYHjABVr/wrwT9swC/oY0Y6ryPhuW0MGboUh/09HJjrRfK6HdQiQ1kRzAYcdg2daG0hP2I9UQenqxZ4XZtn/HFA4d5t09pKnERIWRdwHFCrZDDYkgRFfn5dH0dCwTQHCSsCWlt+n5NYJzExBMT9uhPZ2XqFz+Ka/MYoRy5aVZC7MzHt9AbnPhb3EsP8J0WAYRLdOf66+gIT9cluTLAg9AdTJaViwGGwR1gKaX12JxYbVFYjgZw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com;
 dkim=pass header.d=epam.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=7HabhxyGSpnM0H/tsbecDbTOgMQQRk7Q6CZ0OcS23KA=;
 b=VEs6s2+DxacoZkhTKsB80j00/zmssLI/6vXmJePSd5lxAUVoUvITPaBtqia8HxSuZkjvajc65H1+rbNb2ekdpnaimP3S0IiFeRjqa9MDniRPxsBDObNgAF0IcqV2a7HtQBc+UodO/dvmJzkKXaaA74Zvrdq22U9imtDlLTQwJq6gwSLrzCp/D3s4XPGJNWow1rm9+L3aeWwrurJm6spfB/F7krHCH/OwUAit3UYNsoCzDQY+Wb1Obrsn8+iZ/raVdWbbzh9OPy9ffCmHbHio1Wffd73+ayBQtb69vD1PR/BXviJPA8oHhpt2CKZeIGqLCYwJv4svRtd+fPEs6thqgw==
From: Mykyta Poturai <Mykyta_Poturai@epam.com>
To: Teddy Astie <teddy.astie@vates.tech>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Stewart Hildebrand <stewart.hildebrand@amd.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>, =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?=
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1 4/6] vpci: add SR-IOV support for PVH Dom0
Thread-Topic: [PATCH v1 4/6] vpci: add SR-IOV support for PVH Dom0
Thread-Index: AQHb/W/XkRTIlDBdSUyf2rny+l8q37RDGyIAgVL5LwA=
Date: Thu, 26 Feb 2026 10:06:40 +0000
Message-ID: <0400732a-dd78-4d91-8c07-2184a31c63e5@epam.com>
References: <cover.1753450965.git.mykyta_poturai@epam.com>
 <c5cd0e9cd75cacee2127c45635c999bd296853a7.1753450965.git.mykyta_poturai@epam.com>
 <2e0f2a59-f0ff-45d1-8b0a-17e93c9ebc5d@vates.tech>
In-Reply-To: <2e0f2a59-f0ff-45d1-8b0a-17e93c9ebc5d@vates.tech>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=epam.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|DU5PR03MB10220:EE_
x-ms-office365-filtering-correlation-id: cbca153b-9b0e-465d-e2e0-08de751ebc9b
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:
 BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 P7FgtzpWbNrN3toB6BNZBfuFU/iYb/tue9WY/m35wv5uSgrhBYex1MATSe6QpyOFyjoSC+UweQ4/yaPaAyF0bxD5NsZ/6ptCjxgZ/4sI/fRiSzhS+bZpgvzZ+AhDnyDsZF5xYaq3vukJebyFkjVvH/MmBMxwJJotyXMVAjtlLaBrGJgFvpIU07NYgixDGqE3WJItpae8oWOOA2Xw5k0fRLuoMag13ae1hg25tCS2jNER5LxN65PfsbT3P7jc/UssNN84Q+urTkiUPJb3ZvUeoKOt7PxbLMZVyqzhDhkV24s0UnIkJWmZJctaT8xnQgjkl/PfOEau8JELpFMyr4gEnlaJ8r7+1M4VWytlI9IBiXjdBraWBmcYv6q/2XL9GVkevZpqcVhSAMKQBNLJNnOr2xZOnG/EIJ6eogIBFKuL/ZRbdPA4gLma3R8kaDBrTNRXw9x41SpsX1ZxZh3+I7/NOQeJTujPiMj+O9E+EdT1QpA+HzukBQngMpuOnqPmbOdPok67C1vsuSdxAYig0FwNxLrBObjWAVv0KPigqyoJ0Ah9MJ3/Msf6ZbNCHJSCGVV0pNvU/AWZVzbKoHGrfG79GS4Nu38Mb3fgnrji2XmrwgBuVqIqoHXMx5ooPg2WMLO04iObM7QnS/rytNu4MTJxShgDyXzXKbwn9L8nblh0yr6Zo9lqOk8MuvtHwIQlAU7kNve/2DKkQSNm3KWUCun9Cs+64mdEQqEMf8zihhFj2T8=
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)(7416014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?RkY3eDdERW5ZUkpBNVJuRm1oaVg4VEgyMzhqb0djeE1mbmh4MmxPMkRyUWlo?=
 =?utf-8?B?YW15cGtlbWFYTnJwaHl5UDk2aXExLzBPWDhVNFNqdFVYcGcvcHBVZEx3VnMz?=
 =?utf-8?B?TUpCMU5ZM0owQ1M3b1k4MktNaWZRTGkzTlF5VkUrMkpiMmJPK1pxa1pyWXpJ?=
 =?utf-8?B?R3JqdDlvMzZkWnJrT2VuWldWUDV0MzhTd0RsYzNwV3FUY2pVSlgwNlo4cWVU?=
 =?utf-8?B?N08vQk1IWFNadFJIVjY1K0dRdCtmVUl1T2Z1VE5IbGJQSWxNQzdnR1U5ZWw0?=
 =?utf-8?B?RVJFaERIbGxPVUZkdjIvZituY3crbmVocHFKeXFUUE5vTVUyUC9odzAvOCsx?=
 =?utf-8?B?UEJWeXNqWHdTYXN1V0NSTGlxZWd2anRmWTN5WVBLYVlQNGZ4a21lOWc1c0hX?=
 =?utf-8?B?VG5ITGF1WG5ONytIRTlSdzZzaE0ySjBvUU5semFJWXRGTTZnRFBCWGpsdVkz?=
 =?utf-8?B?c3J0Um1FT09KTDJFMnlwUmtFcUpwd0M0anZ0UE91MGpCUHkySEtqYUVyRHJq?=
 =?utf-8?B?ZWRPWjdPbFg4K3YvazQyMGVzNzR1SVNuS2ZmUWw5cW9LSXgzVFFkZGRZOURp?=
 =?utf-8?B?K21OdDZEUE83Vmtidk83d0lQdktLNlMvbUVrMFQ5dHF5UFpFUDZsdHpERlRX?=
 =?utf-8?B?dklCTGtXUWZqKzJIRGpqOG03UUJZY0RyZmxNR1Q0Wnp1M1JlSld6NEZGbFQw?=
 =?utf-8?B?MzJaaTBhcC92R3crNXBGSDlMeUdGRGxNY3BJUEVmaG5IekMvYWE4QWtlM29z?=
 =?utf-8?B?V09OK2VmK1lqbWxBSHRoY2pPUlphR2p5V0VuenczcmI0Y3NSTlZIOXNBWnlL?=
 =?utf-8?B?K3hPRHppTGQ0QlA2ZlBtQlFLa1A2ZUFjcHBSNk8xaktMeS80emt1WjNIWW1R?=
 =?utf-8?B?ZXVsTlRuYjRwSjhLRXZhckF3ekNWQkFMeVJLME5rc1dCMThaMEZadENwUFBZ?=
 =?utf-8?B?UzZFSXlBY2I4WnJmZUhIeEtSS3JpVHo2TWpsd1dSVkxXMlNDZ3NGU0M2S2hy?=
 =?utf-8?B?RGVQU2ZxN1FxNkNZQ2prSEJCZ3FJSTNlQmRCWU9jQlhDK2t4RENONGwwaXZx?=
 =?utf-8?B?eW5URlVBbmRya2JyNnNvWitSL3U1cExCbEk4SE5oQzNBNDQ1NXp6THdIYWIw?=
 =?utf-8?B?WUJ5bDRZWVloYmF6WFR1dXErNHZwVWdJOVlZZ3FTYkVlNUMxK0ZCYzkxbHlV?=
 =?utf-8?B?dGtUamJ6NFdBK0pIQmdRdEs3TVZKcjlBZTNuQjFvZ2RQdEFtNVh5aVB4TFVl?=
 =?utf-8?B?ZDFwQTZkalFybjNnZmNCdDk0TXVJRW5kWjFqS0t2YXQ1RW5DdlZ4Qmxaa3JX?=
 =?utf-8?B?SDFuOE5FSXVFdFF0c3hBbkVKenkwaHpFMUE1b3VBM3N5b1E5TTZxa0IyWkt4?=
 =?utf-8?B?Q2htSVFDZVowa1E0ajJIUHJoczZZK2k5N1l4TWxBRzI0WDVSR3c0Kzh2dURi?=
 =?utf-8?B?Z1pYYi82a3hiOWRpWHdvUU9CSVhGQzNuQU8xdHhUY2J4K3BrMksxNFY0OXV2?=
 =?utf-8?B?QzVrUjljSnlnbEhXN3I0Q0JKdmJVMWw0dUpMUndnUnc3bmhMMThodXpmN2xF?=
 =?utf-8?B?cFBJRHZQdzZURUZKMUQrRFo4VmM1QWJnSHlWWklIY1JLNmgxMnU2UWcvdzZN?=
 =?utf-8?B?VmJROXFCREUrR0k5eURUUUNEN0c1c0p2NEduMm5hV3ZKRDJac29jTjRrVnBw?=
 =?utf-8?B?S3dDYXoxSFFmTHpTQUZoUVhyOUpHOFlmbnVPRTZmclhHamxqL2Z4VmhFVTdo?=
 =?utf-8?B?SWtmZ0ZRRFZFL1VXZUpURVVIQW9aM3I5K2FjRy84bDNLL3lLS0JOeUpDS3Bu?=
 =?utf-8?B?VVhPclBNbjRQV0dUR3hodTZVNDR3RXVCbG9oYVpMd0FBaUZHNFFIdzl5VWxY?=
 =?utf-8?B?SHk5Ym9OTHBXNlptTWhCbGxqdnZqeG9UeVR3OG8rUGRhb3JpVnZOREhCKzAz?=
 =?utf-8?B?Y0hwVUZtWk8wSFA3MDNkbGlhb09jTEN3QUoxWTl3RU9FMXpubllxNnZiU1Zx?=
 =?utf-8?B?NTNyTVlISUxxRHVCc2hIcVo1TlZROVIyVzQ1Y3ZIK201TWZBVjJuejcxK3FQ?=
 =?utf-8?B?d1RKMzZialcvNEE5MmRrVmtZc0p2YS8wTFhpQVBmQWErVmRJSUNtWjA5eVds?=
 =?utf-8?B?THJ0aE43azRwblZiTTdaYXhEWWxHbmV4S29SVHIwTWxTNElkcXBkUDQ4bU12?=
 =?utf-8?B?YTZQSVZyZVB4VkgrMFVJUVN2ZE5BbURacXVJWUQxV1JjWjNlR2M3blRobjZY?=
 =?utf-8?B?azQ5TkpyRlUvUmYrNFNsUlhZRGFTdEs1c21zWFRBY2lUL2lBM25GVjVMbG94?=
 =?utf-8?B?djVwcEU2NkhWbUp3VW1PWktTdW9NN20rN3A0dmxVZ1ErTGdQNnpGUmpBTkhE?=
 =?utf-8?Q?Lo6cd6GQp9iGtO0M=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <79D6D2FCD810E54ABC259582E9512691@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: cbca153b-9b0e-465d-e2e0-08de751ebc9b
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Feb 2026 10:06:40.6594
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Ww+BcNYLat7kYtWZy1lXWOqJOZ0k6MxU2TxcfaCIAG1/LVAJTzEXWkmsIkRhZ3gNbH/Jg30SwvGaSkYFQ7elPw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR03MB10220

T24gNy8yNS8yNSAyMDozOSwgVGVkZHkgQXN0aWUgd3JvdGU6DQo+IExlIDI1LzA3LzIwMjUgw6Ag
MTY6MjYsIE15a3l0YSBQb3R1cmFpIGEgw6ljcml0IDoNCj4+IEZyb206IFN0ZXdhcnQgSGlsZGVi
cmFuZCA8c3Rld2FydC5oaWxkZWJyYW5kQGFtZC5jb20+DQo+Pg0KPj4gVGhpcyBjb2RlIGlzIGV4
cGVjdGVkIHRvIG9ubHkgYmUgdXNlZCBieSBwcml2aWxlZ2VkIGRvbWFpbnMsDQo+PiB1bnByaXZp
bGVnZWQgZG9tYWlucyBzaG91bGQgbm90IGdldCBhY2Nlc3MgdG8gdGhlIFNSLUlPViBjYXBhYmls
aXR5Lg0KPj4NCj4+IEltcGxlbWVudCBSVyBoYW5kbGVycyBmb3IgUENJX1NSSU9WX0NUUkwgcmVn
aXN0ZXIgdG8gZHluYW1pY2FsbHkNCj4+IG1hcC91bm1hcCBWRiBCQVJTLiBSZWNhbGN1bGF0ZSBC
QVIgc2l6ZXMgYmVmb3JlIG1hcHBpbmcgVkZzIHRvIGFjY291bnQNCj4+IGZvciBwb3NzaWJsZSBj
aGFuZ2VzIGluIHRoZSBzeXN0ZW0gcGFnZSBzaXplIHJlZ2lzdGVyLg0KPj4NCj4+IFJlbGllcyBv
biBkb20wIHRvIGVuYWJsZSBTUi1JT1YgYW5kIFBIWVNERVZPUCB0byBpbmZvcm0gWGVuIGFib3V0
DQo+PiBhZGRpdGlvbi9yZW1vdmFsIG9mIFZGcy4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBTdGV3
YXJ0IEhpbGRlYnJhbmQgPHN0ZXdhcnQuaGlsZGVicmFuZEBhbWQuY29tPg0KPj4gU2lnbmVkLW9m
Zi1ieTogTXlreXRhIFBvdHVyYWkgPG15a3l0YV9wb3R1cmFpQGVwYW0uY29tPg0KPj4gLS0tDQo+
PiAgICBDSEFOR0VMT0cubWQgICAgICAgICAgICAgIHwgICAzICstDQo+PiAgICBTVVBQT1JULm1k
ICAgICAgICAgICAgICAgIHwgICAyIC0NCj4+ICAgIHhlbi9kcml2ZXJzL3ZwY2kvTWFrZWZpbGUg
fCAgIDIgKy0NCj4+ICAgIHhlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgfCAgIDMgKw0KPj4gICAg
eGVuL2RyaXZlcnMvdnBjaS9zcmlvdi5jICB8IDIzNSArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKw0KPj4gICAgeGVuL2RyaXZlcnMvdnBjaS92cGNpLmMgICB8ICAgMSArDQo+
PiAgICB4ZW4vaW5jbHVkZS94ZW4vdnBjaS5oICAgIHwgICA3ICstDQo+PiAgICA3IGZpbGVzIGNo
YW5nZWQsIDI0NyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KPj4gICAgY3JlYXRlIG1v
ZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3ZwY2kvc3Jpb3YuYw0KPj4NCj4+IGRpZmYgLS1naXQgYS9D
SEFOR0VMT0cubWQgYi9DSEFOR0VMT0cubWQNCj4+IGluZGV4IDVmMzFjYTA4ZmUuLjdiMGU4YmVi
NzYgMTAwNjQ0DQo+PiAtLS0gYS9DSEFOR0VMT0cubWQNCj4+ICsrKyBiL0NIQU5HRUxPRy5tZA0K
Pj4gQEAgLTIzLDggKzIzLDcgQEAgVGhlIGZvcm1hdCBpcyBiYXNlZCBvbiBbS2VlcCBhIENoYW5n
ZWxvZ10oaHR0cHM6Ly9rZWVwYWNoYW5nZWxvZy5jb20vZW4vMS4wLjAvDQo+PiAgICAgLSBPbiB4
ODY6DQo+PiAgICAgICAtIE9wdGlvbiB0byBhdHRlbXB0IHRvIGZpeHVwIHAybSBwYWdlLWZhdWx0
cyBvbiBQVkggZG9tMC4NCj4+ICAgICAgIC0gUmVzaXphYmxlIEJBUnMgaXMgc3VwcG9ydGVkIGZv
ciBQVkggZG9tMC4NCj4+IC0gICAtIFN1cHBvcnQgUENJIHBhc3N0aHJvdWdoIGZvciBIVk0gZG9t
VXMgd2hlbiBkb20wIGlzIFBWSCAobm90ZSBTUi1JT1YNCj4+IC0gICAgIGNhcGFiaWxpdHkgdXNh
Z2UgaXMgbm90IHlldCBzdXBwb3J0ZWQgb24gUFZIIGRvbTApLg0KPj4gKyAgIC0gU3VwcG9ydCBQ
Q0kgcGFzc3Rocm91Z2ggZm9yIEhWTSBkb21VcyB3aGVuIGRvbTAgaXMgUFZILg0KPj4gICAgICAg
LSBTbW9rZSB0ZXN0cyBmb3IgdGhlIEZyZWVCU0QgWGVuIGJ1aWxkcyBpbiBDaXJydXMgQ0kuDQo+
PiAgICANCj4+ICAgICAtIE9uIEFybToNCj4+IGRpZmYgLS1naXQgYS9TVVBQT1JULm1kIGIvU1VQ
UE9SVC5tZA0KPj4gaW5kZXggNmE4MmE5MjE4OS4uODMwYjU5ODcxNCAxMDA2NDQNCj4+IC0tLSBh
L1NVUFBPUlQubWQNCj4+ICsrKyBiL1NVUFBPUlQubWQNCj4+IEBAIC0xNzAsOCArMTcwLDYgQEAg
dW5leHBlY3RlZCBiZWhhdmlvciBvciBpc3N1ZXMgb24gc29tZSBoYXJkd2FyZS4NCj4+ICAgIA0K
Pj4gICAgQXQgbGVhc3QgdGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgbWlzc2luZyBvbiBhIFBW
SCBkb20wOg0KPj4gICAgDQo+PiAtICAqIFBDSSBTUi1JT1YuDQo+PiAtDQo+PiAgICAgICogTmF0
aXZlIE5NSSBmb3J3YXJkaW5nIChubWk9ZG9tMCBjb21tYW5kIGxpbmUgb3B0aW9uKS4NCj4+ICAg
IA0KPj4gICAgICAqIE1DRSBoYW5kbGluZy4NCj4gDQo+IEkgd291bGQgcHJlZmVyIGNoYW5nZWxv
Zy9zdXBwb3J0IGNoYW5nZXMgdG8gYmUgYSBzZXBhcmF0ZSBwYXRjaCBvcg0KPiBhbHRlcm5hdGl2
ZWx5IGF0IHRoZSBsYXN0IHBhdGNoIGFzIEkgZG9uJ3QgdGhpbmsgU1ItSU9WIGlzIGZ1bGx5IHdv
cmtpbmcNCj4gd2l0aG91dCB0aGUgMiByZW1haW5pbmcgb25lcy4NCj4gDQo+PiBkaWZmIC0tZ2l0
IGEveGVuL2RyaXZlcnMvdnBjaS9NYWtlZmlsZSBiL3hlbi9kcml2ZXJzL3ZwY2kvTWFrZWZpbGUN
Cj4+IGluZGV4IGE3YzhhMzBhODkuLmZlMWU1N2I2NGQgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vZHJp
dmVycy92cGNpL01ha2VmaWxlDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL01ha2VmaWxlDQo+
PiBAQCAtMSwyICsxLDIgQEANCj4+IC1vYmoteSArPSB2cGNpLm8gaGVhZGVyLm8gcmViYXIubw0K
Pj4gK29iai15ICs9IHZwY2kubyBoZWFkZXIubyByZWJhci5vIHNyaW92Lm8NCj4+ICAgIG9iai0k
KENPTkZJR19IQVNfUENJX01TSSkgKz0gbXNpLm8gbXNpeC5vDQo+PiBkaWZmIC0tZ2l0IGEveGVu
L2RyaXZlcnMvdnBjaS9oZWFkZXIuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMNCj4+IGlu
ZGV4IGY5NDdmNjUyY2QuLjBhODQwYzZkY2MgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vZHJpdmVycy92
cGNpL2hlYWRlci5jDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jDQo+PiBAQCAt
ODM5LDYgKzgzOSw5IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW5pdF9oZWFkZXIoc3RydWN0IHBj
aV9kZXYgKnBkZXYpDQo+PiAgICANCj4+ICAgICAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2Vk
KCZwZGV2LT5kb21haW4tPnBjaV9sb2NrKSk7DQo+PiAgICANCj4+ICsgICAgaWYgKCBwZGV2LT5p
bmZvLmlzX3ZpcnRmbiApDQo+PiArICAgICAgICByZXR1cm4gMDsNCj4+ICsNCj4+ICAgICAgICBz
d2l0Y2ggKCBwY2lfY29uZl9yZWFkOChwZGV2LT5zYmRmLCBQQ0lfSEVBREVSX1RZUEUpICYgMHg3
ZiApDQo+PiAgICAgICAgew0KPj4gICAgICAgIGNhc2UgUENJX0hFQURFUl9UWVBFX05PUk1BTDoN
Cj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL3NyaW92LmMgYi94ZW4vZHJpdmVycy92
cGNpL3NyaW92LmMNCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAw
Li42NDA0MzBlM2U5DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi94ZW4vZHJpdmVycy92cGNp
L3NyaW92LmMNCj4+IEBAIC0wLDAgKzEsMjM1IEBADQo+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50
aWZpZXI6IEdQTC0yLjAtb25seSAqLw0KPj4gKy8qDQo+PiArICogSGFuZGxlcnMgZm9yIGFjY2Vz
c2VzIHRvIHRoZSBTUi1JT1YgY2FwYWJpbGl0eSBzdHJ1Y3R1cmUuDQo+PiArICoNCj4+ICsgKiBD
b3B5cmlnaHQgKEMpIDIwMTggQ2l0cml4IFN5c3RlbXMgUiZEDQo+PiArICovDQo+PiArDQo+PiAr
I2luY2x1ZGUgPHhlbi9zY2hlZC5oPg0KPj4gKyNpbmNsdWRlIDx4ZW4vdnBjaS5oPg0KPj4gKw0K
Pj4gK3N0YXRpYyBpbnQgdmZfaW5pdF9iYXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICp2Zl9wZGV2
KQ0KPj4gK3sNCj4+ICsgICAgdW5zaWduZWQgaW50IGksIHNyaW92X3BvczsNCj4+ICsgICAgaW50
IHZmX2lkeCwgcmM7DQo+PiArICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZl9wZGV2ID0gdmZf
cGRldi0+cGZfcGRldjsNCj4+ICsgICAgdWludDE2X3Qgb2Zmc2V0LCBzdHJpZGU7DQo+PiArICAg
IHN0cnVjdCB2cGNpX2JhciAqYmFycyA9IHZmX3BkZXYtPnZwY2ktPmhlYWRlci5iYXJzOw0KPj4g
KyAgICBzdHJ1Y3QgdnBjaV9iYXIgKnBoeXNmbl92Zl9iYXJzID0gcGZfcGRldi0+dnBjaS0+c3Jp
b3YtPnZmX2JhcnM7DQo+PiArDQo+PiArICAgIHNyaW92X3BvcyA9IHBjaV9maW5kX2V4dF9jYXBh
YmlsaXR5KHBmX3BkZXYtPnNiZGYsIFBDSV9FWFRfQ0FQX0lEX1NSSU9WKTsNCj4+ICsgICAgb2Zm
c2V0ID0gcGNpX2NvbmZfcmVhZDE2KHBmX3BkZXYtPnNiZGYsIHNyaW92X3BvcyArIFBDSV9TUklP
Vl9WRl9PRkZTRVQpOw0KPj4gKyAgICBzdHJpZGUgPSBwY2lfY29uZl9yZWFkMTYocGZfcGRldi0+
c2JkZiwgc3Jpb3ZfcG9zICsgUENJX1NSSU9WX1ZGX1NUUklERSk7DQo+PiArDQo+PiArICAgIHZm
X2lkeCA9IHZmX3BkZXYtPnNiZGYuc2JkZjsNCj4+ICsgICAgdmZfaWR4IC09IHBmX3BkZXYtPnNi
ZGYuc2JkZiArIG9mZnNldDsNCj4gDQo+IFdlIGNhbiBwcm9iYWJseSByZXdyaXRlIGl0IGFzDQo+
IA0KPiB2Zl9pZHggPSB2Zl9wZGV2LT5zYmRmLnNiZGYgLSAocGZfcGRldi0+c2JkZi5zYmRmICsg
b2Zmc2V0KTsNCj4gDQo+IGVzcGVjaWFsbHkgd2l0aCBzYmRmIGJlaW5nIHBvdGVudGlhbGx5IG5v
dCByZXByZXNlbnRhYmxlIGFzIGEgaW50IChldmVuDQo+IHRob3VnaCB2ZXJ5IHVubGlrZWx5KS4N
Cj4gDQo+PiArICAgIGlmICggdmZfaWR4IDwgMCApDQo+PiArICAgICAgICByZXR1cm4gLUVJTlZB
TDsNCj4+ICsgICAgaWYgKCBzdHJpZGUgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICBpZiAoIHZm
X2lkeCAlIHN0cmlkZSApDQo+PiArICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAg
ICAgICB2Zl9pZHggLz0gc3RyaWRlOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIC8qDQo+PiAr
ICAgICAqIFNldCB1cCBCQVJzIGZvciB0aGlzIFZGIG91dCBvZiBQRidzIFZGIEJBUnMgdGFraW5n
IGludG8gYWNjb3VudA0KPj4gKyAgICAgKiB0aGUgaW5kZXggb2YgdGhlIFZGLg0KPj4gKyAgICAg
Ki8NCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBQQ0lfU1JJT1ZfTlVNX0JBUlM7IGkrKyApDQo+
PiArICAgIHsNCj4+ICsgICAgICAgIGJhcnNbaV0uYWRkciA9IHBoeXNmbl92Zl9iYXJzW2ldLmFk
ZHIgKyB2Zl9pZHggKiBwaHlzZm5fdmZfYmFyc1tpXS5zaXplOw0KPj4gKyAgICAgICAgYmFyc1tp
XS5ndWVzdF9hZGRyID0gYmFyc1tpXS5hZGRyOw0KPj4gKyAgICAgICAgYmFyc1tpXS5zaXplID0g
cGh5c2ZuX3ZmX2JhcnNbaV0uc2l6ZTsNCj4+ICsgICAgICAgIGJhcnNbaV0udHlwZSA9IHBoeXNm
bl92Zl9iYXJzW2ldLnR5cGU7DQo+PiArICAgICAgICBiYXJzW2ldLnByZWZldGNoYWJsZSA9IHBo
eXNmbl92Zl9iYXJzW2ldLnByZWZldGNoYWJsZTsNCj4+ICsgICAgICAgIHJjID0gdnBjaV9iYXJf
YWRkX3Jhbmdlc2V0KHZmX3BkZXYsICZiYXJzW2ldLCBpKTsNCj4+ICsgICAgICAgIGlmICggcmMg
KQ0KPj4gKyAgICAgICAgICAgIHJldHVybiByYzsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBy
ZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCBtYXBfdmYoY29uc3Qgc3RydWN0
IHBjaV9kZXYgKnZmX3BkZXYsIHVpbnQxNl90IGNtZCkNCj4+ICt7DQo+PiArICAgIGludCByYzsN
Cj4+ICsNCj4+ICsgICAgQVNTRVJUKHJ3X2lzX3dyaXRlX2xvY2tlZCgmdmZfcGRldi0+ZG9tYWlu
LT5wY2lfbG9jaykpOw0KPj4gKw0KPj4gKyAgICByYyA9IHZmX2luaXRfYmFycyh2Zl9wZGV2KTsN
Cj4+ICsgICAgaWYgKCByYyApDQo+PiArICAgICAgICByZXR1cm4gcmM7DQo+PiArDQo+PiArICAg
IHJldHVybiB2cGNpX21vZGlmeV9iYXJzKHZmX3BkZXYsIGNtZCwgZmFsc2UpOw0KPj4gK30NCj4+
ICsNCj4+ICtzdGF0aWMgaW50IHNpemVfdmZfYmFycyhzdHJ1Y3QgcGNpX2RldiAqcGZfcGRldiwg
dW5zaWduZWQgaW50IHNyaW92X3BvcykNCj4+ICt7DQo+PiArICAgIC8qDQo+PiArICAgICAqIE5C
OiBhIG5vbi1jb25zdCBwY2lfZGV2IG9mIHRoZSBQRiBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gdXBk
YXRlDQo+PiArICAgICAqIHZmX3JsZW4uDQo+PiArICAgICAqLw0KPj4gKyAgICBzdHJ1Y3QgdnBj
aV9iYXIgKmJhcnM7DQo+PiArICAgIHVuc2lnbmVkIGludCBpOw0KPj4gKyAgICBpbnQgcmMgPSAw
Ow0KPj4gKw0KPj4gKyAgICBBU1NFUlQocndfaXNfd3JpdGVfbG9ja2VkKCZwZl9wZGV2LT5kb21h
aW4tPnBjaV9sb2NrKSk7DQo+PiArICAgIEFTU0VSVCghcGZfcGRldi0+aW5mby5pc192aXJ0Zm4p
Ow0KPj4gKw0KPj4gKyAgICBpZiAoICFwZl9wZGV2LT52cGNpLT5zcmlvdiApDQo+PiArICAgICAg
ICByZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsgICAgLyogUmVhZCBCQVJzIGZvciBWRnMgb3V0
IG9mIFBGJ3MgU1ItSU9WIGV4dGVuZGVkIGNhcGFiaWxpdHkuICovDQo+PiArICAgIGJhcnMgPSBw
Zl9wZGV2LT52cGNpLT5zcmlvdi0+dmZfYmFyczsNCj4+ICsgICAgLyogU2V0IHRoZSBCQVJzIGFk
ZHJlc3NlcyBhbmQgc2l6ZS4gKi8NCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBQQ0lfU1JJT1Zf
TlVNX0JBUlM7IGkgKz0gcmMgKQ0KPj4gKyAgICB7DQo+PiArICAgICAgICB1bnNpZ25lZCBpbnQg
aWR4ID0gc3Jpb3ZfcG9zICsgUENJX1NSSU9WX0JBUiArIGkgKiA0Ow0KPj4gKyAgICAgICAgdWlu
dDMyX3QgYmFyOw0KPj4gKyAgICAgICAgdWludDY0X3QgYWRkciwgc2l6ZTsNCj4+ICsNCj4+ICsg
ICAgICAgIGJhciA9IHBjaV9jb25mX3JlYWQzMihwZl9wZGV2LT5zYmRmLCBpZHgpOw0KPj4gKw0K
Pj4gKyAgICAgICAgcmMgPSBwY2lfc2l6ZV9tZW1fYmFyKHBmX3BkZXYtPnNiZGYsIGlkeCwgJmFk
ZHIsICZzaXplLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9CQVJfVkYg
fA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoaSA9PSBQQ0lfU1JJT1ZfTlVN
X0JBUlMgLSAxKSA/IFBDSV9CQVJfTEFTVA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDApKTsNCj4+ICsNCj4+ICsgICAg
ICAgIC8qDQo+PiArICAgICAgICAgKiBVcGRhdGUgdmZfcmxlbiBvbiB0aGUgUEYuIEFjY29yZGlu
ZyB0byB0aGUgc3BlYyB0aGUgc2l6ZSBvZg0KPj4gKyAgICAgICAgICogdGhlIEJBUnMgY2FuIGNo
YW5nZSBpZiB0aGUgc3lzdGVtIHBhZ2Ugc2l6ZSByZWdpc3RlciBpcw0KPj4gKyAgICAgICAgICog
bW9kaWZpZWQsIHNvIGFsd2F5cyB1cGRhdGUgcmxlbiB3aGVuIGVuYWJsaW5nIFZGcy4NCj4+ICsg
ICAgICAgICAqLw0KPj4gKyAgICAgICAgcGZfcGRldi0+cGh5c2ZuLnZmX3JsZW5baV0gPSBzaXpl
Ow0KPj4gKw0KPj4gKyAgICAgICAgaWYgKCAhc2l6ZSApDQo+PiArICAgICAgICB7DQo+PiArICAg
ICAgICAgICAgYmFyc1tpXS50eXBlID0gVlBDSV9CQVJfRU1QVFk7DQo+PiArICAgICAgICAgICAg
Y29udGludWU7DQo+PiArICAgICAgICB9DQo+PiArDQo+PiArICAgICAgICBiYXJzW2ldLmFkZHIg
PSBhZGRyOw0KPj4gKyAgICAgICAgYmFyc1tpXS5ndWVzdF9hZGRyID0gYWRkcjsNCj4+ICsgICAg
ICAgIGJhcnNbaV0uc2l6ZSA9IHNpemU7DQo+PiArICAgICAgICBiYXJzW2ldLnByZWZldGNoYWJs
ZSA9IGJhciAmIFBDSV9CQVNFX0FERFJFU1NfTUVNX1BSRUZFVENIOw0KPj4gKw0KPj4gKyAgICAg
ICAgc3dpdGNoICggcmMgKQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAgICAgY2FzZSAxOg0KPj4g
KyAgICAgICAgICAgIGJhcnNbaV0udHlwZSA9IFZQQ0lfQkFSX01FTTMyOw0KPj4gKyAgICAgICAg
ICAgIGJyZWFrOw0KPj4gKw0KPj4gKyAgICAgICAgY2FzZSAyOg0KPj4gKyAgICAgICAgICAgIGJh
cnNbaV0udHlwZSA9IFZQQ0lfQkFSX01FTTY0X0xPOw0KPj4gKyAgICAgICAgICAgIGJhcnNbaSAr
IDFdLnR5cGUgPSBWUENJX0JBUl9NRU02NF9ISTsNCj4+ICsgICAgICAgICAgICBicmVhazsNCj4+
ICsNCj4+ICsgICAgICAgIGRlZmF1bHQ6DQo+PiArICAgICAgICAgICAgQVNTRVJUX1VOUkVBQ0hB
QkxFKCk7DQo+PiArICAgICAgICB9DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgcmMgPSByYyA+
IDAgPyAwIDogcmM7DQo+PiArDQo+PiArICAgIHJldHVybiByYzsNCj4+ICt9DQo+PiArDQo+PiAr
c3RhdGljIHZvaWQgY2ZfY2hlY2sgY29udHJvbF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAq
cGRldiwgdW5zaWduZWQgaW50IHJlZywNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90IHZhbCwgdm9pZCAqZGF0YSkNCj4+ICt7DQo+PiArICAgIHVuc2lnbmVk
IGludCBzcmlvdl9wb3MgPSByZWcgLSBQQ0lfU1JJT1ZfQ1RSTDsNCj4+ICsgICAgdWludDE2X3Qg
Y29udHJvbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCByZWcpOw0KPj4gKyAgICBib29s
IG1lbV9lbmFibGVkID0gY29udHJvbCAmIFBDSV9TUklPVl9DVFJMX01TRTsNCj4+ICsgICAgYm9v
bCBuZXdfbWVtX2VuYWJsZWQgPSB2YWwgJiBQQ0lfU1JJT1ZfQ1RSTF9NU0U7DQo+PiArDQo+PiAr
ICAgIEFTU0VSVCghcGRldi0+aW5mby5pc192aXJ0Zm4pOw0KPj4gKw0KPj4gKyAgICBpZiAoIG5l
d19tZW1fZW5hYmxlZCAhPSBtZW1fZW5hYmxlZCApDQo+PiArICAgIHsNCj4+ICsgICAgICAgIHN0
cnVjdCBwY2lfZGV2ICp2Zl9wZGV2Ow0KPj4gKyAgICAgICAgaWYgKCBuZXdfbWVtX2VuYWJsZWQg
KQ0KPj4gKyAgICAgICAgew0KPj4gKyAgICAgICAgICAgIC8qIEZJWE1FIGNhc3RpbmcgYXdheSBj
b25zdC1uZXNzIHRvIG1vZGlmeSB2Zl9ybGVuICovDQo+PiArICAgICAgICAgICAgc2l6ZV92Zl9i
YXJzKChzdHJ1Y3QgcGNpX2RldiAqKXBkZXYsIHNyaW92X3Bvcyk7DQo+PiArDQo+PiArICAgICAg
ICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSh2Zl9wZGV2LCAmcGRldi0+dmZfbGlzdCwgdmZfbGlz
dCkNCj4+ICsgICAgICAgICAgICAgICAgbWFwX3ZmKHZmX3BkZXYsIFBDSV9DT01NQU5EX01FTU9S
WSk7DQo+PiArICAgICAgICB9DQo+PiArICAgICAgICBlbHNlDQo+PiArICAgICAgICB7DQo+PiAr
ICAgICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSh2Zl9wZGV2LCAmcGRldi0+dmZfbGlzdCwg
dmZfbGlzdCkNCj4+ICsgICAgICAgICAgICAgICAgbWFwX3ZmKHZmX3BkZXYsIDApOw0KPj4gKyAg
ICAgICAgfQ0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHBjaV9jb25mX3dyaXRlMTYocGRldi0+
c2JkZiwgcmVnLCB2YWwpOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50IHZmX2luaXRfaGVh
ZGVyKHN0cnVjdCBwY2lfZGV2ICp2Zl9wZGV2KQ0KPj4gK3sNCj4+ICsgICAgY29uc3Qgc3RydWN0
IHBjaV9kZXYgKnBmX3BkZXY7DQo+PiArICAgIHVuc2lnbmVkIGludCBzcmlvdl9wb3M7DQo+PiAr
ICAgIGludCByYyA9IDA7DQo+PiArICAgIHVpbnQxNl90IGN0cmw7DQo+PiArDQo+PiArICAgIEFT
U0VSVChyd19pc193cml0ZV9sb2NrZWQoJnZmX3BkZXYtPmRvbWFpbi0+cGNpX2xvY2spKTsNCj4+
ICsNCj4+ICsgICAgaWYgKCAhdmZfcGRldi0+aW5mby5pc192aXJ0Zm4gKQ0KPj4gKyAgICAgICAg
cmV0dXJuIDA7DQo+PiArDQo+PiArICAgIHBmX3BkZXYgPSB2Zl9wZGV2LT5wZl9wZGV2Ow0KPj4g
KyAgICBBU1NFUlQocGZfcGRldik7DQo+PiArDQo+PiArICAgIHNyaW92X3BvcyA9IHBjaV9maW5k
X2V4dF9jYXBhYmlsaXR5KHBmX3BkZXYtPnNiZGYsIFBDSV9FWFRfQ0FQX0lEX1NSSU9WKTsNCj4+
ICsgICAgY3RybCA9IHBjaV9jb25mX3JlYWQxNihwZl9wZGV2LT5zYmRmLCBzcmlvdl9wb3MgKyBQ
Q0lfU1JJT1ZfQ1RSTCk7DQo+PiArDQo+PiArICAgIGlmICggKHBmX3BkZXYtPmRvbWFpbiA9PSB2
Zl9wZGV2LT5kb21haW4pICYmIChjdHJsICYgUENJX1NSSU9WX0NUUkxfTVNFKSApDQo+PiArICAg
IHsNCj4+ICsgICAgICAgIHJjID0gbWFwX3ZmKHZmX3BkZXYsIFBDSV9DT01NQU5EX01FTU9SWSk7
DQo+PiArICAgICAgICBpZiAoIHJjICkNCj4+ICsgICAgICAgICAgICByZXR1cm4gcmM7DQo+PiAr
ICAgIH0NCj4+ICsNCj4+ICsgICAgcmV0dXJuIHJjOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMg
aW50IGluaXRfc3Jpb3Yoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQo+PiArew0KPj4gKyAgICB1bnNp
Z25lZCBpbnQgcG9zOw0KPj4gKw0KPj4gKyAgICBpZiAoIHBkZXYtPmluZm8uaXNfdmlydGZuICkN
Cj4+ICsgICAgICAgIHJldHVybiB2Zl9pbml0X2hlYWRlcihwZGV2KTsNCj4+ICsNCj4+ICsgICAg
cG9zID0gcGNpX2ZpbmRfZXh0X2NhcGFiaWxpdHkocGRldi0+c2JkZiwgUENJX0VYVF9DQVBfSURf
U1JJT1YpOw0KPj4gKw0KPj4gKyAgICBpZiAoICFwb3MgKQ0KPj4gKyAgICAgICAgcmV0dXJuIDA7
DQo+PiArDQo+PiArICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihwZGV2LT5kb21haW4pICkN
Cj4+ICsgICAgew0KPj4gKyAgICAgICAgcHJpbnRrKFhFTkxPR19FUlINCj4+ICsgICAgICAgICAg
ICAgICAiJXBwOiBTUi1JT1YgY29uZmlndXJhdGlvbiB1bnN1cHBvcnRlZCBmb3IgdW5wcml2ICVw
ZFxuIiwNCj4+ICsgICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgcGRldi0+ZG9tYWluKTsNCj4+
ICsgICAgICAgIHJldHVybiAwOw0KPj4gKyAgICB9DQo+IA0KPiBTaG91bGQgaXQgaW5zdGVhZCBy
ZWx5IG9uIHhzbSB0byBrbm93IGlmIGl0IHRoZSBvcGVyYXRpb24gaXMgYWxsb3dlZCBvcg0KPiBu
b3QgZm9yIHRoaXMgZG9tYWluID8NCj4gDQoNCkhpLA0KDQpEbyB5b3UgaGF2ZSBhIHN1Z2dlc3Rp
b24gb24gd2hpY2ggaG9vayBzaG91bGQgYmUgdXNlZCBoZXJlPyBTZW1hbnRpY2FsbHkgDQpib3Ro
IHJlc291cmNlX3BsdWdfcGNpIGFuZCByZXNvdXJjZV9zZXR1cF9wY2kgbWFrZSBzZW5zZSBoZXJl
IGJ1dCBJIGFtIA0Kbm90IHN1cmUgd2hpY2ggb25lIHRvIGNob29zZSBhcyBJIGFtIG5vdCB2ZXJ5
IGZhbWlsaWFyIHdpdGggWFNNLg0KDQoNCj4+ICsNCj4+ICsgICAgcGRldi0+dnBjaS0+c3Jpb3Yg
PSB4emFsbG9jKHN0cnVjdCB2cGNpX3NyaW92KTsNCj4+ICsgICAgaWYgKCAhcGRldi0+dnBjaS0+
c3Jpb3YgKQ0KPj4gKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+PiArDQo+PiArICAgIHJldHVy
biB2cGNpX2FkZF9yZWdpc3RlcihwZGV2LT52cGNpLCB2cGNpX2h3X3JlYWQxNiwgY29udHJvbF93
cml0ZSwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyArIFBDSV9TUklPVl9D
VFJMLCAyLCBOVUxMKTsNCj4+ICt9DQo+PiArDQo+PiArUkVHSVNURVJfVlBDSV9JTklUKGluaXRf
c3Jpb3YsIFZQQ0lfUFJJT1JJVFlfTE9XKTsNCj4+ICsNCj4+ICsvKg0KPj4gKyAqIExvY2FsIHZh
cmlhYmxlczoNCj4+ICsgKiBtb2RlOiBDDQo+PiArICogYy1maWxlLXN0eWxlOiAiQlNEIg0KPj4g
KyAqIGMtYmFzaWMtb2Zmc2V0OiA0DQo+PiArICogdGFiLXdpZHRoOiA0DQo+PiArICogaW5kZW50
LXRhYnMtbW9kZTogbmlsDQo+PiArICogRW5kOg0KPj4gKyAqLw0KPj4gZGlmZiAtLWdpdCBhL3hl
bi9kcml2ZXJzL3ZwY2kvdnBjaS5jIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+IGluZGV4
IDA5OTg4ZjA0YzIuLjdhZjY2NTE4MzEgMTAwNjQ0DQo+PiAtLS0gYS94ZW4vZHJpdmVycy92cGNp
L3ZwY2kuYw0KPj4gKysrIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMNCj4+IEBAIC0xMjAsNiAr
MTIwLDcgQEAgdm9pZCB2cGNpX2RlYXNzaWduX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikN
Cj4+ICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUocGRldi0+dnBjaS0+aGVhZGVy
LmJhcnMpOyBpKysgKQ0KPj4gICAgICAgICAgICByYW5nZXNldF9kZXN0cm95KHBkZXYtPnZwY2kt
PmhlYWRlci5iYXJzW2ldLm1lbSk7DQo+PiAgICANCj4+ICsgICAgeGZyZWUocGRldi0+dnBjaS0+
c3Jpb3YpOw0KPj4gICAgICAgIHhmcmVlKHBkZXYtPnZwY2ktPm1zaXgpOw0KPj4gICAgICAgIHhm
cmVlKHBkZXYtPnZwY2ktPm1zaSk7DQo+PiAgICAgICAgeGZyZWUocGRldi0+dnBjaSk7DQo+PiBk
aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZwY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi92cGNp
LmgNCj4+IGluZGV4IDA2ZjcwMzlmMjAuLjllOGRjYWIxN2UgMTAwNjQ0DQo+PiAtLS0gYS94ZW4v
aW5jbHVkZS94ZW4vdnBjaS5oDQo+PiArKysgYi94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oDQo+PiBA
QCAtMTM4LDcgKzEzOCw2IEBAIHN0cnVjdCB2cGNpIHsNCj4+ICAgICAgICAgICAgICogdXBvbiB0
byBrbm93IHdoZXRoZXIgQkFScyBhcmUgbWFwcGVkIGludG8gdGhlIGd1ZXN0IHAybS4NCj4+ICAg
ICAgICAgICAgICovDQo+PiAgICAgICAgICAgIGJvb2wgYmFyc19tYXBwZWQgICAgICA6IDE7DQo+
PiAtICAgICAgICAvKiBGSVhNRTogY3VycmVudGx5IHRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgU1It
SU9WLiAqLw0KPj4gICAgICAgIH0gaGVhZGVyOw0KPj4gICAgDQo+PiAgICAgICAgLyogTVNJIGRh
dGEuICovDQo+PiBAQCAtMTkyLDYgKzE5MSwxMiBAQCBzdHJ1Y3QgdnBjaSB7DQo+PiAgICAgICAg
ICAgICAgICBzdHJ1Y3QgdnBjaV9hcmNoX21zaXhfZW50cnkgYXJjaDsNCj4+ICAgICAgICAgICAg
fSBlbnRyaWVzW107DQo+PiAgICAgICAgfSAqbXNpeDsNCj4+ICsNCj4+ICsgICAgc3RydWN0IHZw
Y2lfc3Jpb3Ygew0KPj4gKyAgICAgICAgLyogUEYgb25seSAqLw0KPj4gKyAgICAgICAgc3RydWN0
IHZwY2lfYmFyIHZmX2JhcnNbUENJX1NSSU9WX05VTV9CQVJTXTsNCj4+ICsgICAgfSAqc3Jpb3Y7
DQo+PiArDQo+PiAgICAjaWZkZWYgQ09ORklHX0hBU19WUENJX0dVRVNUX1NVUFBPUlQNCj4+ICAg
ICAgICAvKiBHdWVzdCBTQkRGIG9mIHRoZSBkZXZpY2UuICovDQo+PiAgICAjZGVmaW5lIElOVkFM
SURfR1VFU1RfU0JERiAoKHBjaV9zYmRmX3QpeyAuc2JkZiA9IH4wVSB9KQ0KPiANCj4gDQo+IA0K
PiBUZWRkeSBBc3RpZSB8IFZhdGVzIFhDUC1uZyBEZXZlbG9wZXINCj4gDQo+IFhDUC1uZyAmIFhl
biBPcmNoZXN0cmEgLSBWYXRlcyBzb2x1dGlvbnMNCj4gDQo+IHdlYjogaHR0cHM6Ly92YXRlcy50
ZWNoLw0KPiANCg0KLS0gDQpNeWt5dGE=


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 10:16:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 10:16:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241387.1542435 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvYQ1-0002V6-VP; Thu, 26 Feb 2026 10:16:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241387.1542435; Thu, 26 Feb 2026 10:16: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 1vvYQ1-0002Uz-Rr; Thu, 26 Feb 2026 10:16:29 +0000
Received: by outflank-mailman (input) for mailman id 1241387;
 Thu, 26 Feb 2026 10: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=KEVl=A6=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvYQ1-0002Ut-5J
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 10:16:29 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3324e716-12fc-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 11:16:23 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DM6PR03MB5340.namprd03.prod.outlook.com (2603:10b6:5:24d::24) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Thu, 26 Feb
 2026 10:16:18 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Thu, 26 Feb 2026
 10:16: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: 3324e716-12fc-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=T0rg1OcKeHvCNz9KRFsUNw5iDLXIsUQhhZ5ppZqXECZlpfUmjn7LD+n0BOdNGfxDAX/lNxCkMaRkDTe5VzS3a2DJEnssO7HLk73+NEbMk3e1qwrx/OEst9htGFdkny47LoUHATJayhZeV6SDoHSk0+hGIMyoPl71oUwct0o9RlnloemI9UEt+Tx9vI6KaKgLAN3jDyd+roxnTJFye5z3DfjWv0eo8iitH4p+PLR41JExxkj/ekHhnIXgBub79QzCQ+xvmtmo6wT2VnwOJF8TpqBkhjp3I37DjglMOpcUMpNgm1pwBe+wNLkWTvy6o2s6gkpGdveBA5vucGMfxpmYdQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-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/Hi9Gj4Ebu+8NB+Omgb2Jhci6r4gNNVJo385G6jJ1g=;
 b=eP87jjF7bYW0Tpt6QImt9IMH8nLPOyB+PY+HasIDc0giSPYmb5koEAyaqeHYvpvrQnOhCb18LjUJeWd07wM0hGxqBgO9qIMolUvwSf7+h0UM2T6y2ad52oyx7cvqfZjxvd2thAGiRu0KH3EMZKBXN+Kudukx1Z4ZSiktWv6ARFvskDxJG7IDHHucwkihdBRYkRN08VZKR0SsrW6+ClAT1r1swmXh6iq4SKBOXn/pVCMleAK+nCKizaT5JyhdXTjYbCUQTCTDQDb6q6xA4+pzw14RUS3+ktmfIpJpYUQMPdfWwoTyYxYNOpSPAdI5+/ENwnvm09Li3BFcKt5Tx4N+5Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=d/Hi9Gj4Ebu+8NB+Omgb2Jhci6r4gNNVJo385G6jJ1g=;
 b=CQBRvtsTeoQhwd9395X/bUXaWNFaSnMHpwk0fcBcRV9MneMrPpTalgu7MeFQalg9gvn3oXJPoBZFG84ht3Nx65YPW1Ac0Ik4Xn7a+jLj6h5F5ZGKoZviAbGTnSF0GY4//DeP2LMvVpoO7DTjkejaa8WMhKtsydCn0o4oEjKwiE8=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <f684c897-8147-4879-9dcd-6b130703fc70@citrix.com>
Date: Thu, 26 Feb 2026 10:16:15 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, jbeulich@suse.com,
 roger.pau@citrix.com
Subject: Re: [PATCH] x86: Remove x86 prefixed names from cpuinfo for amd.c
To: Kevin Lampis <kevin.lampis@citrix.com>, xen-devel@lists.xenproject.org
References: <20260225094759.623258-1-kevin.lampis@citrix.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <20260225094759.623258-1-kevin.lampis@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO4P265CA0041.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:2ac::17) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DM6PR03MB5340:EE_
X-MS-Office365-Filtering-Correlation-Id: 84b840cf-3072-4669-725e-08de75201504
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:
	v+jbYhP5sD1myvDk1K0l9iG3FOpP06w5BNbJKXOX0et7axMYPY4nGjCEH3trRkev9EE+Wg2u5jjpvuNc068UoIrLYqwscSGf/Eo7ymhqO9sQKhBKWdczwMgva/nOI8NlccbyemHyCzQyhcdFvO2/XKpiDrKRS1wkqdogyJEg1NTQ6VFl0fLfyDJlliHH4wfUFp7f2YDZp7fFKos6umUc/JFyxrgsn2UnpwX5fhkA/lxgOG8vcAO0eAIuX6tWjVNBFOXyELYNnamELb3Lx0HKvnkQ9fOIzkZ1Bz0ygKd0m7lS9MQONAbI1Ofy5gesVTOP1I1v+QnJUi34iUB+oXVLn7d/rCTL4wELPI5CczC/FKOixwICkSmTSGEdKsRY78UAqppXKtnNtbTEqTgIQXRreVyY/t9l1YxiN0jhHm4RSP+XyHPamgN5gGOH+LFWB9WMQn+QxBtAXUyK3lCT/iL3r4Z+VeLrbRZWpAE/CYDPDcAXwZrQQBMTxntb2UjTCJRq0xjpVvBZcqr3BiPivHkh/DyIlUlJ4b3bcQM3Q8UI7fO0SaQFagB08ITnSe20dlOSAZvur5ztpbuk5NEncxWgyB3VbAbedXWhTQNjvdpgJ9ATDBdiPn3ABQT//moyWpO1CcC4vAKz0XLbI4Aow9CKIb5ZNsUG06ZMkyrA+LIocTgbIJL6pQ0+k/5OE3s48/dH6efy4Rsd+ixayiYLGqfcjs0qu9+gGD8EcvqvraRItPE=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?MTNCWmt3MWNEdEcvN3VjdmhTYkE5dnVzblBEUmpGdm9XeEhIeWh5c2tWMVVV?=
 =?utf-8?B?eENtb29BWHYyL2NRTUU2S2NJajRxaDNHcFRUYkpBU2llWGUzUTRDTGlmaEYr?=
 =?utf-8?B?Qytjd0NUMWFuNGtianJtQmsyQURIT0VTbGpjNllzeG9hL0ZXSnI3Z0VRM3NI?=
 =?utf-8?B?N1FsZzBBdEpHaEV3MkVUMVk4TU1Qa1M0UVQ5NmNELzJrM21qckw4RXNVWndE?=
 =?utf-8?B?RmlseElBcEE4T29uOXNUU05QQlNNeGsrbytxYlE5bzd6dDNNU1IzeFg4WDZI?=
 =?utf-8?B?VzdNeXhJTzYwQXYzNHlCaGR4T001dUJvcnI4N3hjQXhranJBZm0vWXJkWE00?=
 =?utf-8?B?YjlLVkdRVDhnM2VKc1g1SWFBdG8rUCttTnhqOXhaSFAvVWMzZzlDSDVXZFQx?=
 =?utf-8?B?dVJhYWVXNGhiNDBueE8rdkN3QWxmZ2hrT1lDU0wvZkU2L29aYWJXankzd1M3?=
 =?utf-8?B?UzU1T2VodUh5VjhITklCUTV0NHBRa1RYRXFKNTRHMi9IS2F5SHphSUE5R3JO?=
 =?utf-8?B?emlpR3A2Vk9WWmo5Umg4UUZROFVnWHdraDhaOW9NL2NPaStNREMrYjNXUXVX?=
 =?utf-8?B?SWpQTFZMMm4wMFpZQnN3dWV4NFFleFcwSzRWWmZSVVJSVXZHYTBYN2JvMUZ3?=
 =?utf-8?B?SmxEZHBtKzU0dGZNUXhwbXgrWUNzU0V6RWUzZjc4UWN0dktsZlVWem5KWWVX?=
 =?utf-8?B?Vk5XTHlNUnNPQ0JmRHpzWXFKWUZCVytGTnlqdEFpNFRYVlFoYnJoUm1lWi9N?=
 =?utf-8?B?eGtGamNpZ3hYaFg2Z1dWWDJTNUh4dVpmZy96U3RmV0FDa1FiVGRDMWQvV1Rp?=
 =?utf-8?B?bWxTZ3U0NE90aDNvOHBOK0hHOXFMYWppNDZUbVd4VWZnbXRBMC9hSTNVU3pG?=
 =?utf-8?B?TGNsMmpodno5ejZoQ0xwZUhyTzl3aWsyaVk3dkJJdG5YQnFtbTFGMW9mOFQ1?=
 =?utf-8?B?SHc2K215MWNCSnhld2l3bWFkRG5IRG1uTEYzZW5UbkhoVm9ITXNMb0U1S3JI?=
 =?utf-8?B?aUxSeW5BNXMxU01kamplNnhTaWdYUUZmQnpSM1ZicHhKZnloUHMzMU1DZHdX?=
 =?utf-8?B?ZURnZHQ1VHZNUVpGVDh4RUdWU1Y1NWVOeERpaHZ2VSswOUlteFlMOFkweDB1?=
 =?utf-8?B?RkE5ZUZ0WEdSbVNudnZxY3ZQSmsyL2YrT3diOVcxVzhSeUhDQXYrZUF5dzBC?=
 =?utf-8?B?Uyt4czVUVlNtUUIwMGYzWG5yK2haUGZaRFdkWmxWWS96dnZiUEc0TDlaMllj?=
 =?utf-8?B?WmRVcThUdHVBSDVzSUhTKzUwNmNDY0FITzR0NmFlWlpUMmxJVFkrL3ZyQURK?=
 =?utf-8?B?MC9VUXhML00xcXZOWk9SeTB2TWU5clFuQmhaQnFzS1FEVE9YOEFDYlBEVU92?=
 =?utf-8?B?MnV1R01vNWxhck1DMWg5Z1grUWgrTzdzbjRHb1ArTnpiVTdnUVI2YXErRFls?=
 =?utf-8?B?Ny9qODlZcGxMNjB3RXJhUmFtczhGc3EvTXRMK2oxUXNBNGxBQXUybXVnRlM2?=
 =?utf-8?B?YTE2N0ltc0ptUVR2dlJQazdDbmJXRU1EdTNwS2lSclRtdk5zbjNDa1FRN1dJ?=
 =?utf-8?B?dmY0UW1VWDg3S2dQSjV1VWJaZG4ydW9qU0wxeE1EQjVKLzJReWJhaDUzUnRE?=
 =?utf-8?B?bmc3ZDRlVlZtMnlZc3VXSVdtQ1FGN1cwZkxnaHRZbnJGNkgyYm9zcnFrK1Vl?=
 =?utf-8?B?elVmSUd1NTJKcG9kYncvRWtrRXhsZlgyNm5RcWc5a1JmeGhnV3F1NTRVRUoy?=
 =?utf-8?B?YUl1bjBoUkJHRVF2c1hoOG90VysvWWRkcTVKTVpPc04vVVBwbEtjOFNQQ1hx?=
 =?utf-8?B?N3paNzZTcnA1aDYxbEFGby9HRmNuY2dJN21WbWhhZHpSaCtUSFFUU01vQ0Jz?=
 =?utf-8?B?UUIyZzNnRjBHNmMzN3Y2VDhpM0l4aHRCYXFKd2trUU9tYVZQOWRJZTN0S2s3?=
 =?utf-8?B?R0NJMzNKc1JKZWQyOXl2ZEJhY1VEb3BsaStoMElGTTYzVzVFWUp4ZDFJRWNl?=
 =?utf-8?B?Z2FJS0dXanhsNnVEeGFPKy9OdmNrNGw2SndNMCtBUVFkSVZtZnlteXd3MVo2?=
 =?utf-8?B?YkpnMDlCaDdUbktUZWdqVEdtTWFSdG5iR1dDWUFGSUFLTTh3N042M2Erc0hU?=
 =?utf-8?B?ZVRmVm4wVGxVTXE5VGJzN2t0L09XZW1YZzczNTBNYW80TmRRSm5OalIrMUZT?=
 =?utf-8?B?MnZvL0xkZFI0dlRIUWx3OHNKdkhUMkVJLzFRYzFpSUxCOU9Ob2ZIYjZpMHhs?=
 =?utf-8?B?OFozSkF4MW5ycWFpR2JnZUlpYVByTXZxR3p0OGVpdzNLRVFnUUszK0ppQ1NY?=
 =?utf-8?B?bW9ubmJ1ekkxblF6Z2E2WVF4S3VMOUlIZU1oa1NuRHp6VkhaZmdlZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 84b840cf-3072-4669-725e-08de75201504
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 10:16:18.5887
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bzX+LPW192W9GqWNy/RolaaSeovK0hCAVGj9vKnaV9oXpezgcJVWUqbLE5RUEKLfv2ZCbg+UYdMZeSzAqgwi647uesgKZ7rjcplLdLpxufw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB5340

On 25/02/2026 9:47 am, Kevin Lampis wrote:
> And some AMD related code in emul-priv-op.c.
>
> struct cpuinfo_x86
>   .x86        => .family
>   .x86_vendor => .vendor
>   .x86_model  => .model
>   .x86_mask   => .stepping
>
> No functional change.
>
> This work is part of making Xen safe for Intel family 18/19.
>
> Signed-off-by: Kevin Lampis <kevin.lampis@citrix.com>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241451.1542474 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZtv-0006EM-Ut; Thu, 26 Feb 2026 11:51:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241451.1542474; Thu, 26 Feb 2026 11:51: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 1vvZtv-0006EE-SC; Thu, 26 Feb 2026 11:51:27 +0000
Received: by outflank-mailman (input) for mailman id 1241451;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZtt-0006E8-Oo
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:25 +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 79b3fe29-1309-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 12:51:24 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4806f3fc50bso8668615e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:24 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.22
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:22 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 79b3fe29-1309-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106684; x=1772711484; 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=CvkyObvUYfcN1WwwCxzQaU1q9w12kLuAXaBD/KYuOdE=;
        b=Ba6Zg6ImlBB/+11dNkqIEzad/8578S+Y2mlY1x1PHI3309ZzxMphNVHuQrufmbsUrr
         icD+GFP5bKnUusxJtvOCStI5S6jLKjvPFnPX5Sg1Y9KXhejHTW0vd9U7cepE2XSfq8y7
         xpGK4N/rKWo2QMrsjkUK5c32TBywqCF3JVbPLeBs0bLVf884dnqy/s9gSnhNETfWdcv6
         /ZdBVFr/DSt6tHQkCOLpn3k/sV1QmV6RsVk7Yz+qx3aES0oVFdNtKXBwVhQop82tc2Nw
         BC7LenoUOZ6EwTZX+QJS8rNHK0FmnJ2HYOH2xlh5qWQ3SWAdym2Y9xNmUGAh7OG4p9nG
         ZLqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106684; x=1772711484;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=CvkyObvUYfcN1WwwCxzQaU1q9w12kLuAXaBD/KYuOdE=;
        b=ifjBsHX8/3iivVd0414zs6gu7b4lBa3lzhVKgsnGpc3Q0GRC0m1+TjmrsUtaA5geEA
         JcAEotJqXjI5rr2QcNVIM1882DH/cOpaQPVfiJp/6zKpT4Xh+8i24iI2w3Zwb6+rKuzR
         8XSx5is+Gz8U+lU3xATwWoaupCCZPpE7scH3XU03zOaRNAsvqdAlowrufoN/tD7kLjrq
         o5iXK/u5VNwhbw6aW6n0f/61s96wsokp3wRkp6YPlII8ZzjONTIOfwn6IraKPXNvSvSg
         zqPCjILdc7Rn0FRv6Qe14+kW0VBKhziwKLpEwH4M++RHek6g9g9gbkF8FH2Xqyu0jcOq
         n4hg==
X-Gm-Message-State: AOJu0YwU90ZsHe14uL+5raI/gMDFN0ydhFUqoH7pIjHBuGeZGipFCKd6
	AXi4pgsyG755L44myrYOJngx7h7pDV7V4dUoqJjnKwLbwPuum64necflIM/O9g==
X-Gm-Gg: ATEYQzz4ck9YZxI2VGGCYxMVkz6t/5ahA7VQpGWM0HRkSsu07QW85Hj2skkaAqNpz5Q
	YdGmI3013R8UBgRTMU9pcs795QytM0E95hiBcAIC93BHYmPdSvKJf/FrZ/BM3rma23DeskUX79A
	mReY+EkYXnx5hzz+9dkH+gMpg3tj8MMPN3MpMEBuDv6gaZGnDNOj+A24wcn36MF86kr5y6bgqPG
	5m6dIKugCX9XDbcuR0ZSmnyGrfpDdC8HqEsR8sBBRxWLtps7Cmi81gifigh8h71wIPHG4Q4HJuU
	W1q1HnNgo0EFDtV1cFvjF2QdMsujG/xMJxphCa40rPAiiCGnM59dIkm9Qe4UaVpJmOLtA06VWwb
	JIhhgyn8N222etPYEhqDEvAjxvbzGuFsASLN9Pkd/kOGuB706pfS7oWdMPQMbdwKhDrOODdIo+8
	yYf0TKh6RFJaEu9OfaebJuOAW4jnZPqMUS9m1/9FE2gO6MCITg+/Jjh7MM6iubn4Xfrw==
X-Received: by 2002:a05:600c:3acf:b0:483:be73:9b1 with SMTP id 5b1f17b1804b1-483c21aa0dcmr76171085e9.31.1772106683452;
        Thu, 26 Feb 2026 03:51:23 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: [PATCH v6 00/14] xen/riscv: introduce vtimer related things
Date: Thu, 26 Feb 2026 12:51:00 +0100
Message-ID: <cover.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch series introduces the components necessary to implement a virtual
timer (vtimer).

Since the SSTC extension is not supported by Xen, an emulated (SBI-based)
timer is required. To address this, a virtual timer built on Xen’s timer
infrastructure is introduced, with save/restore support and SBI-based
programming.

To provide full guest software–based timer support, the following components
are also introduced:
- arch_vcpu_{create,destroy}() to initialize the virtual timer and other
  vCPU-related state not directly tied to timer functionality. As part of this
  work, struct arch_vcpu is introduced to describe the internal state of a
  virtual CPU, along with vcpu_csr_init() to initialize the relevant CSR state.
- Support functions required by the virtual timer, including:
  - vcpu_kick(), and a stub implementation of smp_send_event_check_mask()
    (since SMP is not yet supported in Xen), which is used by vcpu_kick().
  - Support for guest timer programming via interception of the SBI legacy
    SET_TIMER call from guest.
  - Implement reprogram_timer() using introduced sbi_set_timer().
  - Initial lockless tracking of pending vCPU interrupts using atomic bitmaps.
- Handling of hypervisor timer interrupts and dispatch into Xen’s generic timer
  softirq.

CI tests: https://gitlab.com/xen-project/people/olkur/xen/-/pipelines/2346912647
---
Changes in v6:
 - Address comments from ML for patch 1 and 3, and minor update of patch 2
   because of introduced ro_one sub-struct in patch 1.
---
Changes in v5:
 - Merged to upstream/staging:
     xen/riscv: implement arch_vcpu_{create,destroy}()
     xen/riscv: build setup code as .init
 - Rebase this patch series on top of:
     https://lore.kernel.org/xen-devel/5756356294dc066d835269334d0f3347fe24cec4.1771504676.git.oleksii.kurochko@gmail.com/T/#u
   There is no logical dependency, only the potential merge conflict question.
 - Address comments from ML.
---
Changes in v4:
 - Merged to upstream/staging:
     xen/riscv: avoid reading hstateen0 when Smstateen is not implemented
 - Address other comments from ML.
---
Changes in v3:
 - Squash patch "xen/riscv: introduce struct arch_vcpu" into other
   patches of the patch series.
 - Merged to staging:
   - xen/riscv: implement stub for smp_send_event_check_mask()
 - Address other comments from ML.
---
Changes in v2:
 - Add consumer part of tracking of pending vCPU interrupts.
 - Split patch "xen/riscv: init tasklet subsystem" to two.
 - Patches were acked:
   - xen/riscv: introduce vcpu_kick() implementation
   - xen/riscv: implement SBI legacy SET_TIMER support for guests
 - All other changes are patch-specific. Please check them.
---

Oleksii Kurochko (14):
  xen/riscv: detect and store supported hypervisor CSR bits at boot
  xen/riscv: implement vcpu_csr_init()
  xen/riscv: introduce tracking of pending vCPU interrupts, part 1
  xen/riscv: introduce tracking of pending vCPU interrupts, part 2
  xen/time: move ticks<->ns helpers to common code
  xen/riscv: introduce basic vtimer infrastructure for guests
  xen/riscv: introduce vcpu_kick() implementation
  xen/riscv: add vtimer context switch helpers
  xen/riscv: implement SBI legacy SET_TIMER support for guests
  xen/riscv: introduce sbi_set_timer()
  xen/riscv: implement reprogram_timer() via SBI
  xen/riscv: handle hypervisor timer interrupts
  xen/riscv: init tasklet subsystem
  xen/riscv: implement sync_vcpu_execstate()

 xen/arch/arm/include/asm/time.h             |   3 -
 xen/arch/arm/time.c                         |  11 -
 xen/arch/arm/vtimer.c                       |   2 +-
 xen/arch/riscv/Makefile                     |   1 +
 xen/arch/riscv/domain.c                     | 245 +++++++++++++++++++-
 xen/arch/riscv/include/asm/Makefile         |   1 -
 xen/arch/riscv/include/asm/current.h        |   2 +
 xen/arch/riscv/include/asm/domain.h         |  32 +++
 xen/arch/riscv/include/asm/perfc_defn.h     |   3 +
 xen/arch/riscv/include/asm/riscv_encoding.h |   2 +
 xen/arch/riscv/include/asm/sbi.h            |  22 ++
 xen/arch/riscv/include/asm/setup.h          |   2 +
 xen/arch/riscv/include/asm/time.h           |   5 -
 xen/arch/riscv/include/asm/vtimer.h         |  20 ++
 xen/arch/riscv/sbi.c                        |  40 +++-
 xen/arch/riscv/setup.c                      |   5 +
 xen/arch/riscv/stubs.c                      |  20 --
 xen/arch/riscv/time.c                       |  44 ++++
 xen/arch/riscv/traps.c                      |  20 ++
 xen/arch/riscv/vsbi/legacy-extension.c      |   6 +
 xen/arch/riscv/vtimer.c                     |  86 +++++++
 xen/include/xen/time.h                      |  11 +
 22 files changed, 539 insertions(+), 44 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241457.1542534 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu3-0007cg-PV; Thu, 26 Feb 2026 11:51:35 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241457.1542534; Thu, 26 Feb 2026 11:51:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu3-0007cW-Kh; Thu, 26 Feb 2026 11:51:35 +0000
Received: by outflank-mailman (input) for mailman id 1241457;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZu2-0006E8-93
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:34 +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 7ef86abe-1309-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 12:51:33 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so7370705e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:33 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.30
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:30 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7ef86abe-1309-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106693; x=1772711493; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=WQbN7SP3fjaaAEDIkqEkmnk4ywUJEbwgcsMMvUSaPN0=;
        b=ceT4UyAZvKTKCGcH9s35BtWNIBBKYwaDKDnDLDlhDBOUtMeDt9SWjpJwoo7FyFP24o
         TLM87+A6N8iFS1k4km0NeekHUDFh5v/VF/NokR9UjtPnHw9A838Pu4nynv7BHKK6yhF8
         tA9nreJa0csrx9g5X8g9880N+v4PuLfWOuBUz9M/cQ5b9+sHSwj58SmRiBZak0mn+8IQ
         vBUitBNpDCKKbOeCSu34bnqukE9Dj76AUCg60g6PePZxwMxqBv3Du3UGdnYATKJAKWsn
         ok83wV4Hk9ncIxr/XE3yEmIin/VugFJ2Fkkx/rfRMrKV+dIjZx0VnGRuQy1mI9+mmOw5
         /yXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106693; x=1772711493;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=WQbN7SP3fjaaAEDIkqEkmnk4ywUJEbwgcsMMvUSaPN0=;
        b=vpCQ+cGiEXaJvn6m7xlvsmK+EhdRjcuC/k7Rs40IJsP1iRyKSsxrf6vMSiUWZOmBp8
         tzR886kk1wv5mXIpSpr5peC0w0RLPJjONcn3HpdA+hrrZ/fNZ71Dk0ZOBusOU9egD7iY
         9lK1tNYUDgMmyR6BvGuXPV9v4o+lmEnGvqZheI5S8WsowoQIpWCy589nR9Huq6Awssp2
         hnZd3Go2Gc6S4bxoGEFkD4U5uLMCzR5xB+b1zpsDfzJnxiQNumeSgbRvWFOgczjfJ9Ew
         /k4YhUot/c1NwETSF59ScHrEOLa4LbbsCVXaKif2JjV4UWcWUVWmxLF9FZ6LFtLUXKPS
         +uJw==
X-Gm-Message-State: AOJu0Ywel0ggIB9upZaem4zAmfdTifIt2WwAZNBPmt74JMS3Bzf87S1G
	wnze+mCwP9KocFDWKt34dAf0vxZDDpkafAuaFO+smQrOHoJNUyADHEqAs4HkqA==
X-Gm-Gg: ATEYQzy/e1HZcPwbIaoGXAmC6YTvrPsqF/OIr/VQcblk62o6UnoCdK8z0UHCknEdXV7
	rkJYta2fDvVPl10VAurxpJ275zkh6tF+GBaPP4Qao4M78W30zRU991rANVr0IfM6VKOncVnHtX6
	DSe0Vu9U444T5Iajx1W3DGqj+HHry3KIAx1ndU6tlNv889eIiZrFqD0Tti9WXrqBlNn6U6uS1Wu
	+7kD521+852Us9dL6uRXhPidgwsRAR/pp6VeD5qJGJH6c2Qjqb6/5USWvNstMdXBCg+AiyI9YMW
	hhhzA6ejhElkdZHJFAekkLoOC16lq6aOZZ3jAplTmoSmacscTySfKlR70sG1suuL8/LEBNb3935
	J9gdQvPkpG24JL55FkYSjPAy8hglf6sJ8fK3j+YY55Jco3JM7tvMC+Ik6OMv3bTTEa3dH2fDkZr
	aHw12ye1j1t/ojcfxi1uXq7Osp4aXLsgYVeOTfPoVEYldjtEPmjh8x8cdLS8PyPcaTw4aHLYCGx
	iri
X-Received: by 2002:a05:600c:4751:b0:475:de12:d3b5 with SMTP id 5b1f17b1804b1-483a963df99mr310294475e9.34.1772106692483;
        Thu, 26 Feb 2026 03:51:32 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 06/14] xen/riscv: introduce basic vtimer infrastructure for guests
Date: Thu, 26 Feb 2026 12:51:06 +0100
Message-ID: <ec5903d84f00e1256af6e1662e79234bd79aa6ab.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Lay the groundwork for guest timer support by introducing a per-vCPU
virtual timer backed by Xen’s common timer infrastructure.

The virtual timer is programmed in response to the guest SBI
sbi_set_timer() call and injects a virtual supervisor timer interrupt
into the vCPU when it expires.

While a dedicated struct vtimer is not strictly required at present,
it is expected to become necessary once SSTC support is introduced.
In particular, it will need to carry additional state such as whether
SSTC is enabled, the next compare value (e.g. for the VSTIMECMP CSR)
to be saved and restored across context switches, and time delta state
(e.g. HTIMEDELTA) required for use cases such as migration. Introducing
struct vtimer now avoids a later refactoring.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6:
 - Nothing changed. Only rebase.
---
Changes in v5:
 - Drop copyright line from asm/vtimer.h.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v4:
 - Add vcpu_timer_destroy() to void arch_vcpu_destroy().
---
Changes in v3:
 - use one container_of() to get vcpu instead of two container_of()s.
---
Changes in v2:
 - Drop domain_vtimer_init() as it does nothing.
 - Drop "struct vcpu *v;" from struct vtimer as it could be taken
   from arch_vcpu using container_of().
 - Drop vtimer_initialized, use t->status == TIMER_STATUS_invalid
   instead to understand if timer was or wasn't initialized.
 - Drop inclusion of xen/domain.h as xen/sched.h already includes it.
 - s/ xen/time.h/ xen.timer.h in vtimer.c.
 - Drop ULL in if-conidtion in vtimer_set_timer() as with the cast
   it isn't necessary to have suffix ULL.
 - Add migrate timer to vtimer_set_timer() to be sure that vtimer
   will occur on pCPU it was ran, so the signalling to that vCPU
   will (commonly) be cheaper.
 - Check if the timeout has already expired and just inject the event
   in vtimer_vtimer_set_timer().
 - Drop const for ticks argument of vtimer_set_timer().
 - Merge two patches to one:
   - xen/riscv: introduce vtimer
   - xen/riscv: introduce vtimer_set_timer() and vtimer_expired()
---
 xen/arch/riscv/Makefile             |  1 +
 xen/arch/riscv/domain.c             | 10 +++-
 xen/arch/riscv/include/asm/domain.h |  3 ++
 xen/arch/riscv/include/asm/vtimer.h | 17 +++++++
 xen/arch/riscv/vtimer.c             | 71 +++++++++++++++++++++++++++++
 5 files changed, 100 insertions(+), 2 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vtimer.h
 create mode 100644 xen/arch/riscv/vtimer.c

diff --git a/xen/arch/riscv/Makefile b/xen/arch/riscv/Makefile
index bc47e83b26d7..ffbd7062e214 100644
--- a/xen/arch/riscv/Makefile
+++ b/xen/arch/riscv/Makefile
@@ -22,6 +22,7 @@ obj-y += traps.o
 obj-y += vmid.o
 obj-y += vm_event.o
 obj-y += vsbi/
+obj-y += vtimer.o
 
 $(TARGET): $(TARGET)-syms
 	$(OBJCOPY) -O binary -S $< $@
diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 6988d7032059..56b28750d3aa 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -10,6 +10,7 @@
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
+#include <asm/vtimer.h>
 
 struct csr_masks {
     register_t hedeleg;
@@ -138,11 +139,14 @@ int arch_vcpu_create(struct vcpu *v)
 
     vcpu_csr_init(v);
 
+    if ( (rc = vcpu_vtimer_init(v)) )
+        goto fail;
+
     /*
-     * As the vtimer and interrupt controller (IC) are not yet implemented,
+     * As interrupt controller (IC) is not yet implemented,
      * return an error.
      *
-     * TODO: Drop this once the vtimer and IC are implemented.
+     * TODO: Drop this once IC is implemented.
      */
     rc = -EOPNOTSUPP;
     goto fail;
@@ -156,6 +160,8 @@ int arch_vcpu_create(struct vcpu *v)
 
 void arch_vcpu_destroy(struct vcpu *v)
 {
+    vcpu_timer_destroy(v);
+
     vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
 }
 
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 5373a498d80b..c0de8612cc25 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -8,6 +8,7 @@
 #include <public/hvm/params.h>
 
 #include <asm/p2m.h>
+#include <asm/vtimer.h>
 
 struct vcpu_vmid {
     uint64_t generation;
@@ -49,6 +50,8 @@ struct arch_vcpu {
 
     struct cpu_info *cpu_info;
 
+    struct vtimer vtimer;
+
     register_t hcounteren;
     register_t hedeleg;
     register_t hideleg;
diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
new file mode 100644
index 000000000000..111863610a92
--- /dev/null
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef ASM__RISCV__VTIMER_H
+#define ASM__RISCV__VTIMER_H
+
+#include <xen/timer.h>
+
+struct vtimer {
+    struct timer timer;
+};
+
+int vcpu_vtimer_init(struct vcpu *v);
+void vcpu_timer_destroy(struct vcpu *v);
+
+void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
+
+#endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
new file mode 100644
index 000000000000..32d142bcdfcd
--- /dev/null
+++ b/xen/arch/riscv/vtimer.c
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/sched.h>
+#include <xen/timer.h>
+
+#include <asm/vtimer.h>
+
+static void vtimer_expired(void *data)
+{
+    struct vtimer *t = data;
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+
+    vcpu_set_interrupt(v, IRQ_VS_TIMER);
+}
+
+int vcpu_vtimer_init(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    init_timer(&t->timer, vtimer_expired, t, v->processor);
+
+    return 0;
+}
+
+void vcpu_timer_destroy(struct vcpu *v)
+{
+    struct vtimer *t = &v->arch.vtimer;
+
+    if ( t->timer.status == TIMER_STATUS_invalid )
+        return;
+
+    kill_timer(&v->arch.vtimer.timer);
+}
+
+void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
+{
+    struct vcpu *v = container_of(t, struct vcpu, arch.vtimer);
+    s_time_t expires = ticks_to_ns(ticks - boot_clock_cycles);
+
+    vcpu_unset_interrupt(v, IRQ_VS_TIMER);
+
+    /*
+     * According to the RISC-V sbi spec:
+     *   If the supervisor wishes to clear the timer interrupt without
+     *   scheduling the next timer event, it can either request a timer
+     *   interrupt infinitely far into the future (i.e., (uint64_t)-1),
+     *   or it can instead mask the timer interrupt by clearing sie.STIE CSR
+     *   bit.
+     */
+    if ( ticks == ((uint64_t)~0) )
+    {
+        stop_timer(&t->timer);
+
+        return;
+    }
+
+    if ( expires < NOW() )
+    {
+        /*
+         * Simplify the logic if the timeout has already expired and just
+         * inject the event.
+         */
+        stop_timer(&t->timer);
+        vcpu_set_interrupt(v, IRQ_VS_TIMER);
+
+        return;
+    }
+
+    migrate_timer(&t->timer, smp_processor_id());
+    set_timer(&t->timer, expires);
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:37 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:37 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241453.1542494 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZty-0006fg-9d; Thu, 26 Feb 2026 11:51:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241453.1542494; Thu, 26 Feb 2026 11:51: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 1vvZty-0006fZ-77; Thu, 26 Feb 2026 11:51:30 +0000
Received: by outflank-mailman (input) for mailman id 1241453;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZtx-0006EH-6A
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:29 +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 7b62d24c-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:27 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-483bd7354efso10329965e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:27 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.24
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:25 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b62d24c-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106686; x=1772711486; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=mjWgFbv6nb7y5dLkGr2P5tKeDiy8GNkU4xO5G3VBP8c=;
        b=MBtGR8KDxfg18JepBfQo1A0LcxujEdFRM+/zs5i9nGmj7KTyTwQsaIrEZYY21Cnqke
         Aj94WesKr6p/k2ywn/LgAa7VwrkXJ1TVKwUr6sfW8no5gZGGK6DX+QkZByr5NRXNkc+T
         P+iqItUIMTW6aC8uo4PojkTFHN1dc7UES88Doq9UQJ0KOOJnaONeowWXWCmG1BW/LIYV
         0NbTB1SeBVJ90vREk9s78olkIHPFCGnIYP4cOeVhjTAjLCWkjfaAT/7mJJxgEu9QW4Hg
         ls61i0f389J6Wtakard/c3Cav+c5nrsWPFPvTNDE6KQM/9zYsbxCX6Jo8BPsZk9oDU0I
         o5zA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106686; x=1772711486;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=mjWgFbv6nb7y5dLkGr2P5tKeDiy8GNkU4xO5G3VBP8c=;
        b=QoUVzCjOcSx2SAwSIjWJ4wrWvRn07Lai4fbhKiKEkwXHL2kbN8NsMHSDYVlkuq3/2m
         t+vbOAGm7QuDvEW2kAb2NHxTMCy9fMPN3Qup9wYH08GcLHncQsQGn8Pmwd7e0WYfShAM
         QqvmKbFhx6HOm3Ih62DcNVWhlTyJujwwmXpD+162k3Cy9q6fw4q9PAh6FaHvpd1Agxrb
         aI8iac8KZ+Hd8mwZ+5ChzxqyWxvT/3XEIH41WymHjDpL/bxIpCRsNRAKl//hUMlK1mt7
         zL+mu3PSdEse0zMxMQUiocgEbnjjIH0+8kzHFTTtiOfv38oO9M3Hqe44/HWLSydAhb5b
         ye9A==
X-Gm-Message-State: AOJu0YxzQb6JevxbG6N03Umu2yt504FvSPqgFlRj12fHDh1JAIQy8X4K
	jWdpdNGQA9kqCo2I4d1pWhQ1Qdvf4EpUdZJRQuXjB5U7NEi9lIll/43r/31EmA==
X-Gm-Gg: ATEYQzyKWU7dDI1bAe59lIQJuzxxm6DHUI6yAGTPxqWAffsfq1XyJO1Ocgp4OBk+8S0
	JiDEng+7UHxrRbyIzji8mxOMkHQDYJNr526Gox/m/Up3o8U7U4ZaBpRymxzz/LJB9m/OU+3wwTq
	wn2iod8KCLRcvVYKzDwV76weGCOTa8j4T2TzF62+KdkwdoBtJy7XzhMfiy1khuGFFx73Rz79Z/0
	9BW+r6v2hmWY6mSdl8I9YmB525biLupEJDrTIc3UclyytxDFKRNxD+9ronem7VUKEQNydfKn0jF
	jJ9GZkJE+Gp3cHOrsSd4v6h2mNnj16WU63I4pcSxMzBrAwWG9+t0vY8TLwgwZolUSDccYkdzQHk
	q8PIYZ5VQ2yXTbz1sHYUtnSCtb9CH2Q2Q6ahW9HlY0XB2yB0a7oUmndrFcrtocjrJdJR4ZfM+Jn
	MSNGqRUzzmfndeaQdaZ3rCr+o2cQlrhrU2yH2kO3wX3mIjkC0WPYod+4eSHxtyUqLl1luAeu/tx
	LA0
X-Received: by 2002:a05:600c:8708:b0:483:a922:2e8d with SMTP id 5b1f17b1804b1-483c216ab55mr57961995e9.4.1772106685950;
        Thu, 26 Feb 2026 03:51:25 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 02/14] xen/riscv: implement vcpu_csr_init()
Date: Thu, 26 Feb 2026 12:51:02 +0100
Message-ID: <9694ff5787d5f162581a16f0974ac9a55c538019.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vcpu_csr_init() to initialise hypervisor CSRs that control
vCPU execution and virtualization behaviour before the vCPU is first
scheduled.
The function configures trap and interrupt delegation to VS-mode by
setting the appropriate bits in the hedeleg and hideleg registers,
initializes hstatus so that execution enters VS-mode when control is
passed to the guest, and restricts guest access to hardware performance
counters by initializing hcounteren, as unrestricted access would
require additional handling in Xen.
When the Smstateen and SSAIA extensions are available, access to AIA
CSRs and IMSIC guest interrupt files is enabled by setting the
corresponding bits in hstateen0, avoiding unnecessary traps into Xen
(note that SVSLCT(Supervisor Virtual Select) name is used intead of
CSRIND as OpenSBI uses such name and riscv_encoding.h is mostly based
on it).
If the Svpbmt extension is supported, the PBMTE bit is set in
henvcfg to allow its use for VS-stage address translation. Guest
access to the ENVCFG CSR is also enabled by setting ENVCFG bit in
hstateen0, as a guest may need to control certain characteristics of
the U-mode (VU-mode when V=1) execution environment.

For CSRs that may contain read-only bits (e.g. hedeleg, hideleg,
hstateen0), to the written value a correspondent mask is applied to
avoid divergence between the software state and the actual CSR
contents.

As hstatus is not part of struct arch_vcpu (it already resides in
struct cpu_user_regs), introduce vcpu_guest_cpu_user_regs() to provide
a uniform way to access hstatus and other guest CPU user registers.

This establishes a consistent and well-defined initial CSR state for
vCPUs prior to their first context switch.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Apply introduced in prev. patch csr_masks.ro_one.hstaten0 in vcpu_csr_init().
---
Changes in v5:
 - Initialize of hstateen0 with SMSTATEEN0_HSENVCFG when a variable is
   defined.
 - Use |= for a code inside if (*_ssaia) case.
 - Put declaration of the registers hedeleg and hideleg together in arch_vcpu
   structure as they are typically used together so better chances to
   be in the same cache line.
---
Changes in v4:
 - Move local variable hstateen0 into narrower scope.
 - Code style fixes.
 - Move the call of vcpu_csr_init(v) after if ( is_idle_vcpu() ) check in
   arcg_vcpu_create().
---
Changes in v3:
 - Add hypervisor register used to initalize vCPU state.
 - Apply masks introduced before instead of csr_write()/csr_read() pattern.
---
Changes in v2:
 - As hstatus isn't a part of arch_vcpu structure (as it is already a part of
   cpu_user_regs) introduce vcpu_guest_cpu_user_regs() to be able to access
   hstatus and other CPU user regs.
 - Sort hideleg bit setting by value. Drop a stray blank.
 - Drop | when the first initialization of hcounteren and hennvcfg happen.
 - Introduce HEDELEG_DEFAULT. Sort set bits by value and use BIT() macros
   instead of open-coding it.
 - Apply pattern csr_write() -> csr_read() for hedeleg and hideleg instead
   of direct bit setting in v->arch.h{i,e}deleg as it could be that for some
   reason some bits of hedeleg and hideleg are r/o.
   The similar patter is used for hstateen0 as some of the bits could be r/o.
 - Add check that SSAIA is avaialable before setting of SMSTATEEN0_AIA |
   SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT bits.
 - Drop local variables hstatus, hideleg and hedeleg as they aren't used
   anymore.
---
 xen/arch/riscv/domain.c                     | 63 +++++++++++++++++++++
 xen/arch/riscv/include/asm/current.h        |  2 +
 xen/arch/riscv/include/asm/domain.h         |  6 ++
 xen/arch/riscv/include/asm/riscv_encoding.h |  2 +
 4 files changed, 73 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 902aaac74290..2a81f8d94f9a 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -8,6 +8,7 @@
 
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
+#include <asm/riscv_encoding.h>
 
 struct csr_masks {
     register_t hedeleg;
@@ -20,6 +21,21 @@ struct csr_masks {
     } ro_one;
 };
 
+#define HEDELEG_DEFAULT (BIT(CAUSE_MISALIGNED_FETCH, U) | \
+                         BIT(CAUSE_FETCH_ACCESS, U) | \
+                         BIT(CAUSE_ILLEGAL_INSTRUCTION, U) | \
+                         BIT(CAUSE_BREAKPOINT, U) | \
+                         BIT(CAUSE_MISALIGNED_LOAD, U) | \
+                         BIT(CAUSE_LOAD_ACCESS, U) | \
+                         BIT(CAUSE_MISALIGNED_STORE, U) | \
+                         BIT(CAUSE_STORE_ACCESS, U) | \
+                         BIT(CAUSE_USER_ECALL, U) | \
+                         BIT(CAUSE_FETCH_PAGE_FAULT, U) | \
+                         BIT(CAUSE_LOAD_PAGE_FAULT, U) | \
+                         BIT(CAUSE_STORE_PAGE_FAULT, U))
+
+#define HIDELEG_DEFAULT (MIP_VSSIP | MIP_VSTIP | MIP_VSEIP)
+
 static struct csr_masks __ro_after_init csr_masks;
 
 void __init init_csr_masks(void)
@@ -52,6 +68,51 @@ void __init init_csr_masks(void)
     }
 }
 
+static void vcpu_csr_init(struct vcpu *v)
+{
+    v->arch.hedeleg = HEDELEG_DEFAULT & csr_masks.hedeleg;
+
+    vcpu_guest_cpu_user_regs(v)->hstatus = HSTATUS_SPV | HSTATUS_SPVP;
+
+    v->arch.hideleg = HIDELEG_DEFAULT & csr_masks.hideleg;
+
+    /*
+     * VS should access only the time counter directly.
+     * Everything else should trap.
+     */
+    v->arch.hcounteren = HCOUNTEREN_TM;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_svpbmt) )
+        v->arch.henvcfg = ENVCFG_PBMTE & csr_masks.henvcfg;
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        /* Allow guest to access CSR_SENVCFG */
+        register_t hstateen0 = SMSTATEEN0_HSENVCFG;
+
+        if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_ssaia) )
+            /*
+             * If the hypervisor extension is implemented, the same three
+             * bits are defined also in hypervisor CSR hstateen0 but concern
+             * only the state potentially accessible to a virtual machine
+             * executing in privilege modes VS and VU:
+             *      bit 60 CSRs siselect and sireg (really vsiselect and
+             *             vsireg)
+             *      bit 59 CSRs siph and sieh (RV32 only) and stopi (really
+             *             vsiph, vsieh, and vstopi)
+             *      bit 58 all state of IMSIC guest interrupt files, including
+             *             CSR stopei (really vstopei)
+             * If one of these bits is zero in hstateen0, and the same bit is
+             * one in mstateen0, then an attempt to access the corresponding
+             * state from VS or VU-mode raises a virtual instruction exception.
+             */
+            hstateen0 |= SMSTATEEN0_AIA | SMSTATEEN0_IMSIC | SMSTATEEN0_SVSLCT;
+
+        v->arch.hstateen0 = (hstateen0 & csr_masks.hstateen0) |
+                            csr_masks.ro_one.hstateen0;
+    }
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
@@ -74,6 +135,8 @@ int arch_vcpu_create(struct vcpu *v)
     if ( is_idle_vcpu(v) )
         return 0;
 
+    vcpu_csr_init(v);
+
     /*
      * As the vtimer and interrupt controller (IC) are not yet implemented,
      * return an error.
diff --git a/xen/arch/riscv/include/asm/current.h b/xen/arch/riscv/include/asm/current.h
index 58c9f1506b7c..5fbee8182caa 100644
--- a/xen/arch/riscv/include/asm/current.h
+++ b/xen/arch/riscv/include/asm/current.h
@@ -48,6 +48,8 @@ DECLARE_PER_CPU(struct vcpu *, curr_vcpu);
 #define get_cpu_current(cpu)  per_cpu(curr_vcpu, cpu)
 
 #define guest_cpu_user_regs() ({ BUG_ON("unimplemented"); NULL; })
+#define vcpu_guest_cpu_user_regs(vcpu) \
+    (&(vcpu)->arch.cpu_info->guest_cpu_user_regs)
 
 #define switch_stack_and_jump(stack, fn) do {               \
     asm volatile (                                          \
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 5aec627a7adb..17be792afe7d 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -49,6 +49,12 @@ struct arch_vcpu {
 
     struct cpu_info *cpu_info;
 
+    register_t hcounteren;
+    register_t hedeleg;
+    register_t hideleg;
+    register_t henvcfg;
+    register_t hstateen0;
+
     register_t vsatp;
 };
 
diff --git a/xen/arch/riscv/include/asm/riscv_encoding.h b/xen/arch/riscv/include/asm/riscv_encoding.h
index 1f7e612366f8..dd15731a86fa 100644
--- a/xen/arch/riscv/include/asm/riscv_encoding.h
+++ b/xen/arch/riscv/include/asm/riscv_encoding.h
@@ -228,6 +228,8 @@
 #define ENVCFG_CBIE_INV			_UL(0x3)
 #define ENVCFG_FIOM			_UL(0x1)
 
+#define HCOUNTEREN_TM BIT(1, U)
+
 /* ===== User-level CSRs ===== */
 
 /* User Trap Setup (N-extension) */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241452.1542483 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZtx-0006RY-46; Thu, 26 Feb 2026 11:51:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241452.1542483; Thu, 26 Feb 2026 11: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 1vvZtx-0006RR-1J; Thu, 26 Feb 2026 11:51:29 +0000
Received: by outflank-mailman (input) for mailman id 1241452;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZtw-0006EH-7n
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:28 +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 7a857585-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:25 +0100 (CET)
Received: by mail-wm1-x32f.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so8710625e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:25 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.23
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:24 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7a857585-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106685; x=1772711485; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Hp5eAdCk/2OvwDZTtcjSxeKObwgzunQJOuXOKfijBE4=;
        b=RyWH5bb4yR/tmFBThWdUwaJSlABlzhK/2kDuPqtrd6021Qx0ObfANh6QIHhkegpsdE
         rGDiiZFAiHIhQsUGEA6DMXEoRjuVRD2aXX5QpcQR+Vxt9pqKSobP0fdxgsPJNPB/QLmU
         2O8M9WWSbVVPS6UKeVLO3HNZa1RD8RO+qs2c4qacX7LQSY+quVYz1/4us7mNPrMOclc2
         p2MW5xk9ix7xspqKj84Q8mRzuQYJbiLuI682u0zHRr6BokxvSIZbzotb3h3ux8hkjhtp
         AqlH0/s7uH5eTI2v+7GbCbR8dhsEtpEhaO0klQ4zLaFuZD08g+NQ/jdzQUuRH2UIc0sW
         ZwYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106685; x=1772711485;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Hp5eAdCk/2OvwDZTtcjSxeKObwgzunQJOuXOKfijBE4=;
        b=fGmkA5xGfcCcJXTFfhavJqGnRT7VJpRAGcR/ZzUFhpB/C/SLa3+qJtIwOqG/e3H4RR
         nLXLROjx+Pf0OpRd9oDFf8qDVFQiNyXmU5LhKPCNctydy3Fi7ha2I47YMhiUMtuSWZAB
         dmG+WL02vr+P7E93mszysQcW6f2iKC/IyM1cF3toP4QhLdM/4AC+e+niXlTwgHlp18Ss
         diZGt4WcenmTVTpPMRZAWTwm8iFmMIQN/HGXEW+Xnt41co6sriLo5jgOfePhcROSA9JH
         y5jizuhKeIEk5IuYhZ1lalK2eDoctgosCmdR1KTHFVrrig/Fud6ajAWCAgHpMAziT/jw
         3AQA==
X-Gm-Message-State: AOJu0YwLU7QWkDaJOxz2D8pc1Bwr6X0dmKXl6z/zCHARuQ+tngC89Xe4
	NYrekiTf7D9OSXHAIWuMn+obILLrmE3xGSYmtnrlY30VxQa1XFFBR79bZckA2g==
X-Gm-Gg: ATEYQzyCZ029jCQF+i+3ClRkiuDRMVXszRQsJCpuVx572YfCa1tEubMl/q+nLvUV3fb
	nIC6+a65JviEhsyfaU5Z6VItY6XgISPwL3UiLcKOpgLoeRsaUbPBJBGBzCqzZSodBjcP5PswHQh
	DzcuklLWSCvGJx81V3SSxtIBL62rJ3C9132SvJsARhtmCnq6cwtklt+WNGUdB112ZVzgqcDylRa
	Os9cRmyLOa9dSizZQ6AUoy17820lOwmm6+FLhAKpxa2TpQbwTW8oDjgFuP6E/CvuPAX9anFuzkT
	e1NGB39jeUGV56XeegXDBEZvEXtFy59cciaL0TLZp2x/q8eAyit0iyeuGfQTDmnIKQko/9Yj/MB
	foNdBnBqL+GbsftjFPjZygJcNnc6wTz8fsKpVLsdUN0h9IIjUbSIcHKUxMZk//oEQe6fkXzi4kV
	yjtVL8xDCP64PyqZXmC7rEhstUXwXWu8Mj+FcZoem6reQNxU6f5AmQV1l1W8jqYC5tizN2UJ/sP
	J6n
X-Received: by 2002:a05:600c:1e8f:b0:477:98f7:2aec with SMTP id 5b1f17b1804b1-483c3db3198mr31642645e9.3.1772106684538;
        Thu, 26 Feb 2026 03:51:24 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 01/14] xen/riscv: detect and store supported hypervisor CSR bits at boot
Date: Thu, 26 Feb 2026 12:51:01 +0100
Message-ID: <a17b6a117726904a9384dc7d9cc140672d3b0453.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Some hypervisor CSRs expose optional functionality and may not implement
all architectural bits. Writing unsupported bits can either be ignored
or raise an exception depending on the platform.

Detect the set of writable bits for selected hypervisor CSRs at boot and
store the resulting masks for later use. This allows safely programming
these CSRs during vCPU context switching and avoids relying on hardcoded
architectural assumptions.

Use csr_read()&csr_write() instead of csr_swap()+all ones mask as some
CSR registers have WPRI fields which should be preserved during write
operation.

Also, ro_one struct is introduced to cover the cases when a bit in CSR
register (at the momemnt, it is only hstateen0) may be r/o-one to have
hypervisor view of register seen by guest correct.

Masks are calculated at the moment only for hedeleg, henvcfg, hideleg,
hstateen0 registers as only them are going to be used in the follow up
patch.

If the Smstateen extension is not implemented, hstateen0 cannot be read
because the register is considered non-existent. Instructions that attempt
to access a CSR that is not implemented or not visible in the current mode
are reserved and will raise an illegal-instruction exception.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V6:
 - Introduce sub-struct ro_one inside csr_masks to cover the case that
   hstateen0 could have read-only-one bits.
 - Refacotr init_csr_masks() to handle hstateen0 case when a bit is r/o-one
   and handle WPRI fields properly.
 - Update the commit message.
---
Changes in V5:
 - Move everything related to csr_masks to domain.c and make it static.
 - Move declaration of old variable in init_csr_masks() inside INIT_CSR_MASK.
 - Use csr_swap() in INIT_CSR_MASK().
---
Changes in V4:
 - Move csr_masks defintion to domain.c. Make it static as at the moment
   it is going to be used only in domain.c.
 - Rename and refactor X macros inside init_csr_masks().
---
Changes in V3:
 - New patch.
---
 xen/arch/riscv/domain.c            | 47 ++++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/setup.h |  2 ++
 xen/arch/riscv/setup.c             |  2 ++
 3 files changed, 51 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index b60320b90def..902aaac74290 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -2,9 +2,56 @@
 
 #include <xen/init.h>
 #include <xen/mm.h>
+#include <xen/sections.h>
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/cpufeature.h>
+#include <asm/csr.h>
+
+struct csr_masks {
+    register_t hedeleg;
+    register_t henvcfg;
+    register_t hideleg;
+    register_t hstateen0;
+
+    struct {
+        register_t hstateen0;
+    } ro_one;
+};
+
+static struct csr_masks __ro_after_init csr_masks;
+
+void __init init_csr_masks(void)
+{
+    /*
+     * The mask specifies the bits that may be safely modified without
+     * causing side effects.
+     *
+     * For example, registers such as henvcfg or hstateen0 contain WPRI
+     * fields that must be preserved. Any write to the full register must
+     * therefore retain the original values of those fields.
+     */
+#define INIT_CSR_MASK(csr, field, mask) do { \
+        old = csr_read(CSR_##csr); \
+        csr_write(CSR_##csr, (old & ~(mask)) | (mask)); \
+        csr_masks.field = csr_swap(CSR_##csr, old); \
+    } while (0)
+
+    register_t old;
+
+    INIT_CSR_MASK(HEDELEG, hedeleg, ULONG_MAX);
+    INIT_CSR_MASK(HIDELEG, hideleg, ULONG_MAX);
+
+    INIT_CSR_MASK(HENVCFG, henvcfg, _UL(0xE0000003000000FF));
+
+    if ( riscv_isa_extension_available(NULL, RISCV_ISA_EXT_smstateen) )
+    {
+        INIT_CSR_MASK(HSTATEEN0, hstateen0, _UL(0xDE00000000000007));
+        csr_masks.ro_one.hstateen0 = old;
+    }
+}
+
 static void continue_new_vcpu(struct vcpu *prev)
 {
     BUG_ON("unimplemented\n");
diff --git a/xen/arch/riscv/include/asm/setup.h b/xen/arch/riscv/include/asm/setup.h
index c9d69cdf5166..2215894cfbb1 100644
--- a/xen/arch/riscv/include/asm/setup.h
+++ b/xen/arch/riscv/include/asm/setup.h
@@ -11,6 +11,8 @@ void setup_mm(void);
 
 void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
 
+void init_csr_masks(void);
+
 #endif /* ASM__RISCV__SETUP_H */
 
 /*
diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index 9b4835960d20..bca6ca09eddd 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -137,6 +137,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
 
     riscv_fill_hwcap();
 
+    init_csr_masks();
+
     preinit_xen_time();
 
     intc_preinit();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241455.1542510 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu1-0006xl-1i; Thu, 26 Feb 2026 11:51:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241455.1542510; Thu, 26 Feb 2026 11: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 1vvZu0-0006xS-R9; Thu, 26 Feb 2026 11:51:32 +0000
Received: by outflank-mailman (input) for mailman id 1241455;
 Thu, 26 Feb 2026 11: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZtz-0006E8-MR
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:31 +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 7da961ba-1309-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 12:51:31 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4836d4c26d3so5243045e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:31 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.28
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:29 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7da961ba-1309-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106690; x=1772711490; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Tg5etO1tk6Lt3f6BDEvCCqmunpQhCPFEnQLjlhq8TEw=;
        b=lNRRXncDpZcQ3C2vN5pa2w/2+0Z8u1zGEAb4OuHBWJv06bQlAHifJ/ACPExfc6bG2n
         5ErLJ+Av0ngAKC5PAiawHxdjfM/l4owiu6MyWggf7uYGMi+2nmclJEn93RqouHDwFQPt
         lnt/0gqGLFRvXFPyyt8sPwuBkGxft99O9zd65mc6kMifiKNrTggX0riAQ7nRtxfPhOsx
         BhABLhTifrcqR5GNT1BH3kCqjd+061CEofJkvOunbnC/965bYnu13ZNNIOa2WjIMikXP
         9/45/MvxvsitcuSscvb/iD2J/p7Igtgqfh0QZNc6S4MQGXaEzUrVLVOC+0SE7pWXQu6p
         kX/A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106690; x=1772711490;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Tg5etO1tk6Lt3f6BDEvCCqmunpQhCPFEnQLjlhq8TEw=;
        b=sLpo5od1yn2VbIUfQuClNBpzZpNhado7s8zor7WMtTbSozQjfCBAcnQFtHjh90vg71
         1O+oP/n9Y8Djx/ScoQasbhXXN0zfGBqXULRuHF0ujmeYQyxEgV/DdbJ4E5BdCgu4N4eu
         AytAICl5sx+vzUvV8qf1HmAY8hZ69XC++oXvje8P94pwufV3+u4QWYh+EItgHIfaPYQe
         be8CqobEHpzvoTjGPvoFxA4Dv8dJuCR/ZDv6EmKF/wtD2k1UkZVCMam7NORLqJw47A3e
         lLZEXoRXj0UqfFbYxdCH8IuZVOdklBVkhd8bwDxacCXNJF3uFGSpLLAYMZgLrQ9cSJeH
         311A==
X-Gm-Message-State: AOJu0YyolOfMAr0NYLwnfOgQsn4bKKSBGvVpQ+6hvguIn+4jMRu5T0A7
	mOcTkObFzm3ZFN+6a4Z0mCaKRM6lk90aUE2czhGkVyjgPH1zbSGi3/rbWFpnKA==
X-Gm-Gg: ATEYQzxwilM9iPkPpr/07BgtFcqZWiParMBkcvV2BhLeSXIcABUeAI8J2VZbKkITcZZ
	vz5fVjqfAJssvhvTt+08/ZVkzP/JhOAoh48AYA1giCEKTP+lYxP320wUGEmwAM+E2mw4t41Xvtg
	s2WVvGZfreYxLoLRxak88RVKPy+RNg1Qp5XGVuY+tbhfCrdMZXEI21GhajIVzKPS2C+Yve9mFVT
	N6r5N8rXsks42AfxGjypZor8Z/akBtgS3ERGbJwSgSEv4ZI17CfFFW+pjlutGubmRUCvAoeLL5y
	1klZC5VTU5HFoIbOnD1a+f0nW8nJiT9mZhT+F4L+m5OywlyUNXgf4Tg+9l81yJIvLgP7NMy2pX0
	TEduWjh7TJIL0YQjrMu7GXRpnlA/O5e4fP6yFpmZRj458Qs4RRbeyzOl/SLvK0CBWAp5Gop03ZO
	yRqVwo3+OJoTQi7jH0KNHYAdsz6ZheW+FZfEJYKtJUhS7ynfcKu2qDtSrKfDrSyHzrmA==
X-Received: by 2002:a05:600c:8b02:b0:47d:5e02:14e5 with SMTP id 5b1f17b1804b1-483a95a86eamr340717315e9.5.1772106690170;
        Thu, 26 Feb 2026 03:51:30 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Julien Grall <julien@xen.org>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Michal Orzel <michal.orzel@amd.com>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Jan Beulich <jbeulich@suse.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>
Subject: [PATCH v6 05/14] xen/time: move ticks<->ns helpers to common code
Date: Thu, 26 Feb 2026 12:51:05 +0100
Message-ID: <545c2af877d519b1186c79fd6108d33e7e52cd3b.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

ticks_to_ns() and ns_to_ticks() are not architecture-specific, so provide a
common implementation that is more resilient to overflow than the historical
Arm version. This is not a practical issue for Arm, as the latest ARM ARM
that timer frequency should be fixed at 1 GHz and older platforms used much
lower rates, which is shy of 32-bit overflow. As the helpers are declared
as static inline, they should not affect x86, which does not use them.

On Arm, these helpers were historically implemented as out-of-line functions
because the counter frequency was originally defined as static and unavailable
to headers [1]. Later changes [2] removed this restriction, but the helpers
remained unchanged. Now they can be implemented as static inline without any
issues.

Centralising the helpers avoids duplication and removes subtle differences
between architectures while keeping the implementation simple.

Drop redundant <asm/time.h> includes where <xen/time.h> already pulls it in.

No functional change is intended.

[1] ddee56dc2994 arm: driver for the generic timer for ARMv7
[2] 096578b4e489 xen: move XEN_SYSCTL_physinfo, XEN_SYSCTL_numainfo and
                      XEN_SYSCTL_topologyinfo to common code

Suggested-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v6:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - Add Reviewed-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Move ns_to_ticks() and ticks_to_ns() to common code.
---
 xen/arch/arm/include/asm/time.h   |  3 ---
 xen/arch/arm/time.c               | 11 -----------
 xen/arch/arm/vtimer.c             |  2 +-
 xen/arch/riscv/include/asm/time.h |  5 -----
 xen/arch/riscv/time.c             |  1 +
 xen/include/xen/time.h            | 11 +++++++++++
 6 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/xen/arch/arm/include/asm/time.h b/xen/arch/arm/include/asm/time.h
index 49ad8c1a6d47..c194dbb9f52d 100644
--- a/xen/arch/arm/include/asm/time.h
+++ b/xen/arch/arm/include/asm/time.h
@@ -101,9 +101,6 @@ extern void init_timer_interrupt(void);
 /* Counter value at boot time */
 extern uint64_t boot_count;
 
-extern s_time_t ticks_to_ns(uint64_t ticks);
-extern uint64_t ns_to_ticks(s_time_t ns);
-
 void preinit_xen_time(void);
 
 void force_update_vcpu_system_time(struct vcpu *v);
diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
index cc3fcf47b66a..a12912a106a0 100644
--- a/xen/arch/arm/time.c
+++ b/xen/arch/arm/time.c
@@ -27,7 +27,6 @@
 #include <asm/cpufeature.h>
 #include <asm/platform.h>
 #include <asm/system.h>
-#include <asm/time.h>
 #include <asm/vgic.h>
 
 uint64_t __read_mostly boot_count;
@@ -47,16 +46,6 @@ unsigned int timer_get_irq(enum timer_ppi ppi)
     return timer_irq[ppi];
 }
 
-/*static inline*/ s_time_t ticks_to_ns(uint64_t ticks)
-{
-    return muldiv64(ticks, SECONDS(1), 1000 * cpu_khz);
-}
-
-/*static inline*/ uint64_t ns_to_ticks(s_time_t ns)
-{
-    return muldiv64(ns, 1000 * cpu_khz, SECONDS(1));
-}
-
 static __initdata struct dt_device_node *timer;
 
 #ifdef CONFIG_ACPI
diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c
index d2124b175521..2e85ff2b6e62 100644
--- a/xen/arch/arm/vtimer.c
+++ b/xen/arch/arm/vtimer.c
@@ -12,13 +12,13 @@
 #include <xen/lib.h>
 #include <xen/perfc.h>
 #include <xen/sched.h>
+#include <xen/time.h>
 #include <xen/timer.h>
 
 #include <asm/cpregs.h>
 #include <asm/div64.h>
 #include <asm/irq.h>
 #include <asm/regs.h>
-#include <asm/time.h>
 #include <asm/vgic.h>
 #include <asm/vreg.h>
 #include <asm/vtimer.h>
diff --git a/xen/arch/riscv/include/asm/time.h b/xen/arch/riscv/include/asm/time.h
index 1e7801e2ea0e..be3875b9984e 100644
--- a/xen/arch/riscv/include/asm/time.h
+++ b/xen/arch/riscv/include/asm/time.h
@@ -24,11 +24,6 @@ static inline cycles_t get_cycles(void)
     return csr_read(CSR_TIME);
 }
 
-static inline s_time_t ticks_to_ns(uint64_t ticks)
-{
-    return muldiv64(ticks, MILLISECS(1), cpu_khz);
-}
-
 void preinit_xen_time(void);
 
 #endif /* ASM__RISCV__TIME_H */
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index e962f8518d78..2c7af0a5d63b 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -4,6 +4,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/sections.h>
+#include <xen/time.h>
 #include <xen/types.h>
 
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
diff --git a/xen/include/xen/time.h b/xen/include/xen/time.h
index fe0d7a578a99..2185dd26a439 100644
--- a/xen/include/xen/time.h
+++ b/xen/include/xen/time.h
@@ -8,6 +8,7 @@
 #ifndef __XEN_TIME_H__
 #define __XEN_TIME_H__
 
+#include <xen/muldiv64.h>
 #include <xen/types.h>
 #include <public/xen.h>
 
@@ -75,6 +76,16 @@ extern void send_timer_event(struct vcpu *v);
 
 void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds);
 
+static inline s_time_t ticks_to_ns(uint64_t ticks)
+{
+    return muldiv64(ticks, MILLISECS(1), cpu_khz);
+}
+
+static inline uint64_t ns_to_ticks(s_time_t ns)
+{
+    return muldiv64(ns, cpu_khz, MILLISECS(1));
+}
+
 #include <asm/time.h>
 
 #endif /* __XEN_TIME_H__ */
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241454.1542504 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu0-0006uG-Jc; Thu, 26 Feb 2026 11:51:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241454.1542504; Thu, 26 Feb 2026 11: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 1vvZu0-0006u9-Go; Thu, 26 Feb 2026 11:51:32 +0000
Received: by outflank-mailman (input) for mailman id 1241454;
 Thu, 26 Feb 2026 11: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZty-0006EH-RH
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:30 +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 7c394cc8-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:28 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-483703e4b08so6569475e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:28 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.26
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:26 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7c394cc8-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106688; x=1772711488; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=faQUM4/57rhXIuG8+TO4P4PF19tSV2C7BOOWo8M61xI=;
        b=lyItUzGGPrYPa0eXCOJ4DgFJqTn/o0jwbU4vJc+vRsnbnqr3aT/K00VcsrzAuadfNh
         ORrlEZ1GWuF2LdGonbfUaHVbRwLZ5rQfVZhJ0V+tf5/GkL02LNaEFLa4hcscQiKIUgKK
         tl1EgnbntM8+m/KL8XUeM+LtETjlQ5LZfiZr58sYPyQtnM4Z9oJfTJU6PSXFpNrb3HVj
         Hf1O1B93ik0h2yR6z+oLUTnU83TXXEhXTIGphsl81KyfG1UGValNmaCn16W7kB4wWo0r
         0Y6JTnMdKH94G8ZxDGh+FkLELpTtEbBtgfoBuA9kpb7dqjfXFhSC6VpNFWQugGHP5Xug
         8xlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106688; x=1772711488;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=faQUM4/57rhXIuG8+TO4P4PF19tSV2C7BOOWo8M61xI=;
        b=tYoKD7uTwgbORfiN89McokXkcossPmabQbXVrOyYNUm/EA35AGqd7+k5TqqsbnRYSa
         WE2Pp8nZ+j+MVkZFPj4YfHfGYXXkUArgjQl6OYC+t1I5NHPzohBJzuQp3nu3iIofCAvB
         L0L1Y2SNVL03KXvPGz6Iw92jxrP0LewEmi2be2w5+YJsK5mqS/PQDDT9G5WwRPkcKn9Y
         D7V7ZDfoC5MibAmL0Ae7hhvz0Fh9sWNjJOtzerzdz5lxn52l869j/DX2lDQ5s8cbl1GS
         jCWe8BwRO7AtnrtP6gjh4G2DrmT3Qkptz3ZiTDK16YRZN28snr0VY16e+F5iWuUEcvqI
         8OZQ==
X-Gm-Message-State: AOJu0Yz4ghT4h3JOcnS4GP1+xmJdawDJube7il6XP2zQK9j/W2ierPIP
	ZqW7RYwQcWE3nU7fjOnBZ9FKvGW8RvKWm/LW/WmHXtSo/qs1ykhkHA0NTLFZBA==
X-Gm-Gg: ATEYQzxX37EFtN88KeBp7SJLPBetC0cnDdOoEqh1adN55KPP7zpL9SXULQM4Q2MBXRh
	FJKn8gOYmH9umj0jr6f6SiPhflnOaGYVWMaxP3Ul66bxtkHmwhvTzaKUChRLYo2ZyevD+TLNvRJ
	e/mKTDAQCe6NhnY6YVlTJQ6WFTv2++73/psbvzgjb7hCkmFN7l4kzTpKtn62GaY+HmAqCrDNdFR
	OhelWUoXbOJHSfRtalFTyLefBiYiRoTVt5FYqZndElhDTOaaqaG08k3DK/vBqBG02iuhzHYmPOS
	VOyqdRlL8iRyqdj18R/ActU2Gw9BSTA/BVmx0vGCkkKkdclot+V5xGqOYJjmrmNTPedGkD87rTZ
	AmRK9RPWn9yoofcIJ8XMBNl8XrVjfQ+Qy7zY7u1usbkTRc+aFvuyjj4QS8Ju0Xf7/bcRq03x1fx
	SDqvflCRy2qtm60tFdJXXrlp47AGrFzT1ED2MAnRlZ2O+il27ByiDN/Vmd7YNgNpWa1Q==
X-Received: by 2002:a05:600c:310a:b0:479:1348:c63e with SMTP id 5b1f17b1804b1-483c33d20c3mr40990715e9.9.1772106687451;
        Thu, 26 Feb 2026 03:51:27 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 03/14] xen/riscv: introduce tracking of pending vCPU interrupts, part 1
Date: Thu, 26 Feb 2026 12:51:03 +0100
Message-ID: <a1954e9a30abace453f4604a47b43ecbcebe350a.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Based on Linux kernel v6.16.0.
Note that smp_wmb() is used instead of smp_mb__before_atomic() as what
we want to guarantee that if a bit in irqs_pending_mask is obversable
that the correspondent bit in irqs_pending is observable too.

Add lockless tracking of pending vCPU interrupts using atomic bitops.
Two bitmaps are introduced:
 - irqs_pending — interrupts currently pending for the vCPU
 - irqs_pending_mask — bits that have changed in irqs_pending

The design follows a multi-producer, single-consumer model, where the
consumer is the vCPU itself. Producers may set bits in
irqs_pending_mask without a lock. Clearing bits in irqs_pending_mask is
performed only by the consumer via xchg(). The consumer must not write
to irqs_pending and must not act on bits that are not set in the mask.
Otherwise, extra synchronization should be provided.

On RISC-V interrupts are not injected via guest registers, so pending
interrupts must be recorded in irqs_pending (using the new
vcpu_{un}set_interrupt() helpers) and flushed to the guest by updating
HVIP before returning control to the guest. The consumer side is
implemented in a follow-up patch.

A barrier between updating irqs_pending and setting the corresponding
mask bit in vcpu_set_interrupt()/vcpu_unset_interrupt() guarantees
that if the consumer observes a mask bit set, the corresponding pending
bit is also visible. This prevents missed interrupts during the flush.

It is possible that a guest could have pending bit in the hardware
register without being marked pending in irq_pending bitmap as:
  According to the RISC-V ISA specification:
    Bits hip.VSSIP and hie.VSSIE are the interrupt-pending and
    interrupt-enable  bits for VS-level software interrupts. VSSIP in hip
    is an alias (writable) of the same bit in hvip.
  Additionally:
    When bit 2 of hideleg is zero, vsip.SSIP and vsie.SSIE are read-only
    zeros. Else, vsip.SSIP and vsie.SSIE are aliases of hip.VSSIP and
    hie.VSSIE.
This means the guest may modify vsip.SSIP, which implicitly updates
hip.VSSIP and the bit being written with 1 would also trigger an interrupt
as according to the RISC-V spec:
  These conditions for an interrupt trap to occur must be evaluated in a
  bounded   amount of time from when an interrupt becomes, or ceases to be,
  pending in sip,  and must also be evaluated immediately following the
  execution of an SRET  instruction or an explicit write to a CSR on which
  these interrupt trap conditions expressly depend (including sip, sie and
  sstatus).
What means that IRQ_VS_SOFT must be synchronized separately, what is done
in vcpu_sync_interrupts(). Note, also, that IRQ_PMU_OVF would want to be
synced for the similar reason as IRQ_VS_SOFT, but isn't sync-ed now as
PMU isn't supported now.

For the remaining VS-level interrupt types (IRQ_VS_TIMER and
IRQ_VS_EXT), the specification states they cannot be modified by the guest
and are read-only because of:
  Bits hip.VSEIP and hie.VSEIE are the interrupt-pending and interrupt-enable
  bits for VS-level external interrupts. VSEIP is read-only in hip, and is
  the logical-OR of these interrupt sources:
    • bit VSEIP of hvip;
    • the bit of hgeip selected by hstatus.VGEIN; and
    • any other platform-specific external interrupt signal directed to
      VS-level.
  Bits hip.VSTIP and hie.VSTIE are the interrupt-pending and interrupt-enable
  bits for VS-level timer interrupts. VSTIP is read-only in hip, and is the
  logical-OR of hvip.VSTIP and any other platform-specific timer interrupt
  signal directed to VS-level.
and
  When bit 10 of hideleg is zero, vsip.SEIP and vsie.SEIE are read-only zeros.
  Else, vsip.SEIP and vsie.SEIE are aliases of hip.VSEIP and hie.VSEIE.

  When bit 6 of hideleg is zero, vsip.STIP and vsie.STIE are read-only zeros.
  Else, vsip.STIP and vsie.STIE are aliases of hip.VSTIP and hie.VSTIE.
and also,
  Bits sip.SEIP and sie.SEIE are the interrupt-pending and interrupt-enable
  bits for supervisor-level external interrupts. If implemented, SEIP is
  read-only in sip, and is set and cleared by the execution environment,
  typically through a platform-specific interrupt controller.

  Bits sip.STIP and sie.STIE are the interrupt-pending and interrupt-enable
  bits for supervisor-level timer interrupts. If implemented, STIP is
  read-only in sip, and is set and cleared by the execution environment
Thus, for these interrupt types, it is sufficient to use vcpu_set_interrupt()
and vcpu_unset_interrupt(), and flush them during the call of
vcpu_flush_interrupts() (which is introduced in follow up patch).

vcpu_sync_interrupts(), which is called just before entering the VM,
slightly bends the rule that the irqs_pending bit must be written
first, followed by updating the corresponding bit in irqs_pending_mask.
However, it still respects the core guarantee that the producer never
clears the mask and only writes to irqs_pending if it is the one that
flipped the corresponding mask bit from 0 to 1.
Moreover, since the consumer won't run concurrently because
vcpu_sync_interrupts() and the consumer path are going to be invoked
sequentially immediately before VM entry, it is safe to slightly relax
this ordering rule in vcpu_sync_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in v6:
 - Drop for the moment:
       /* Read current HVIP and VSIE CSRs */
       v->arch.vsie = csr_read(CSR_VSIE);
   from vcpu_sync_interrupts() as it isn't used at the moment and will
   be introduced when a usage will be more clear.
---
Changes in v5:
 - Update the commit message().
 - Rename c to curr.
 - Update vcpu_set_interrupt() to use test_and_set_bit() for irqs_pending
   bitmask too.
 - Move #ifdef CONFIG_RISCV_32 above the comment in vcpu_sync_interrupts().
---
Changes in v4:
 - Update the commit message.
 - Update the comments in vcpu_(un)set_interrupt() and add the the  comment
   above smp_wmb() barrier.
 - call vcpu_kick() only if the pending_mask bit going from 0 to 1.
 - Code style fixes.
 - Update defintion of RISCV_VCPU_NR_IRQS to cover potential RV128 case and
   the case if AIA isn't used.
 - latch current into a local variable in check_for_pcpu_work().
---
Changes in v3:
 - Use smp_wb() instead of smp_mb__before_atomic().
 - Add explanation of the change above in the commit message.
 - Move vcpu_sync_interrupts() here to producers side.
 - Introduce check_for_pcpu_work() to be clear from where vcpu_sync_interrupts()
   is called.
---
Changes in V2:
 - Move the patch before an introduction of vtimer.
 - Drop bitmap_zero() of irqs_pending and irqs_pending_mask bitmaps as
   vcpu structure starts out all zeros.
 - Drop const for irq argument of vcpu_{un}set_interrupt().
 - Drop check "irq < IRQ_LOCAL_MAX" in vcpu_{un}set_interrupt() as it
   could lead to overrun of irqs_pending and irqs_pending_mask bitmaps.
 - Drop IRQ_LOCAL_MAX as there is no usage for it now.
---
 xen/arch/riscv/domain.c             | 71 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h | 22 +++++++++
 xen/arch/riscv/traps.c              |  4 ++
 3 files changed, 97 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 2a81f8d94f9a..047dbebc1a09 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -6,6 +6,7 @@
 #include <xen/sched.h>
 #include <xen/vmap.h>
 
+#include <asm/bitops.h>
 #include <asm/cpufeature.h>
 #include <asm/csr.h>
 #include <asm/riscv_encoding.h>
@@ -158,6 +159,76 @@ void arch_vcpu_destroy(struct vcpu *v)
     vfree((void *)&v->arch.cpu_info[1] - STACK_SIZE);
 }
 
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq)
+{
+    bool kick_vcpu;
+
+    /* We only allow VS-mode software, timer, and external interrupts */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    kick_vcpu = !test_and_set_bit(irq, v->arch.irqs_pending);
+
+    /*
+     * The counterpart of this barrier is the one encoded implicitly in xchg()
+     * which is used in consumer part (vcpu_flush_interrupts()).
+     */
+    smp_wmb();
+
+    kick_vcpu |= !test_and_set_bit(irq, v->arch.irqs_pending_mask);
+
+    if ( kick_vcpu )
+        vcpu_kick(v);
+
+    return 0;
+}
+
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq)
+{
+    /* We only allow VS-mode software, timer, external interrupts */
+    if ( irq != IRQ_VS_SOFT &&
+         irq != IRQ_VS_TIMER &&
+         irq != IRQ_VS_EXT )
+        return -EINVAL;
+
+    clear_bit(irq, v->arch.irqs_pending);
+    /*
+     * The counterpart of this barrier is the one encoded implicitly in xchg()
+     * which is used in consumer part (vcpu_flush_interrupts()).
+     */
+    smp_wmb();
+    set_bit(irq, v->arch.irqs_pending_mask);
+
+    return 0;
+}
+
+void vcpu_sync_interrupts(struct vcpu *v)
+{
+    unsigned long hvip = csr_read(CSR_HVIP);
+
+    /* Sync-up HVIP.VSSIP bit changes done by Guest */
+    if ( ((v->arch.hvip ^ hvip) & BIT(IRQ_VS_SOFT, UL)) &&
+         !test_and_set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending_mask) )
+    {
+        if ( hvip & BIT(IRQ_VS_SOFT, UL) )
+            set_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
+        else
+            clear_bit(IRQ_VS_SOFT, &v->arch.irqs_pending);
+    }
+
+#ifdef CONFIG_RISCV_32
+    /*
+     * Sync-up AIA high interrupts.
+     *
+     * It is necessary to do only for CONFIG_RISCV_32 which isn't supported
+     * now.
+     */
+#   error "Update v->arch.vsieh"
+#endif
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index 17be792afe7d..e19365c6fb77 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -54,8 +54,25 @@ struct arch_vcpu {
     register_t hideleg;
     register_t henvcfg;
     register_t hstateen0;
+    register_t hvip;
 
     register_t vsatp;
+
+    /*
+     * VCPU interrupts
+     *
+     * We have a lockless approach for tracking pending VCPU interrupts
+     * implemented using atomic bitops. The irqs_pending bitmap represent
+     * pending interrupts whereas irqs_pending_mask represent bits changed
+     * in irqs_pending. Our approach is modeled around multiple producer
+     * and single consumer problem where the consumer is the VCPU itself.
+     *
+     * DECLARE_BITMAP() is needed here to support 64 vCPU local interrupts
+     * on RV32 host.
+     */
+#define RISCV_VCPU_NR_IRQS MAX(BITS_PER_LONG, 64)
+    DECLARE_BITMAP(irqs_pending, RISCV_VCPU_NR_IRQS);
+    DECLARE_BITMAP(irqs_pending_mask, RISCV_VCPU_NR_IRQS);
 };
 
 struct paging_domain {
@@ -94,6 +111,11 @@ static inline void update_guest_memory_policy(struct vcpu *v,
 
 static inline void arch_vcpu_block(struct vcpu *v) {}
 
+int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
+int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
+
+void vcpu_sync_interrupts(struct vcpu *v);
+
 #endif /* ASM__RISCV__DOMAIN_H */
 
 /*
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 9fca941526f6..551f886e3a69 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -171,6 +171,10 @@ static void do_unexpected_trap(const struct cpu_user_regs *regs)
 
 static void check_for_pcpu_work(void)
 {
+    struct vcpu *curr = current;
+
+    vcpu_sync_interrupts(curr);
+
     p2m_handle_vmenter();
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241458.1542544 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu6-0007uS-2G; Thu, 26 Feb 2026 11:51:38 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241458.1542544; Thu, 26 Feb 2026 11:51: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 1vvZu5-0007uE-SC; Thu, 26 Feb 2026 11:51:37 +0000
Received: by outflank-mailman (input) for mailman id 1241458;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZu4-0006EH-L0
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:36 +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 7fee7579-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:34 +0100 (CET)
Received: by mail-wm1-x331.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso6970105e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:34 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.32
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:33 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7fee7579-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106694; x=1772711494; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=Y1ZCln4LGxYbhh7EA/lAbVEGbnMzo0d9tLUWjs8DB5k=;
        b=eG2HjWeSENtDPApqBcBWK2jpmataLLKC6cZ4NeqLfxqspG2mlw9dQinywOb05UDLqj
         nzlP9zuzAtslAYo1pP0jHiCJRyT43HSiBMn8gMzKR62IFiTXZWAwYSHmyr8U+6rN37JY
         88GMVCYDw2mPtk3+6OVjVp0CflmygO1Q8/DWum1DaWe3Q4gpJtZd+RCile2VSTub67rD
         jwvYZxkAp1HWEEb2/kX/wJtr3MplsGBcu6DZzTgEPM2BiOze122EqQlOiGLKsmWVvK6z
         oxJuUmvxSaktKl0iWKBAuLHtEpJyEmOwrkuBPm0G84htLnV/pLDNhCqe/xoDPsSPOkj/
         EgVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106694; x=1772711494;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=Y1ZCln4LGxYbhh7EA/lAbVEGbnMzo0d9tLUWjs8DB5k=;
        b=Enqva28TnEHqbLARebVIfr6FviGa/LCWpWBrsNQ9cPdLv/dzjV/ymR/9iREIgceA/D
         SToceblLQi3RHkXehsCZHM8KLe5C3052wqf65Kv61CIgaA3ICd3uprdve83q22jtOzQJ
         WA57mmhlNT7Druy5xrnTbRg/5HaWB986YX7F3Ogti7A/BqEoJwnbM1UbK4KeUYMTy3Ke
         iKi25mP35IhV0/uBaOZoaVMKi3OtDK03NT/Rts6OaS/Pzb6PoOTuLonZo1eor9D2Fi4X
         Gw89w8IA0AvuwyTo+mc/xWebN+kIMNIFhCVmAZlEops4LloF7/wu07U+UWvFFOvmmN5i
         XSjg==
X-Gm-Message-State: AOJu0YwdI6X1loYif8CjIbJdSX6Cf5MWys+TEhCd8SoeZbtEHQj85LI0
	g8IOTYcKUx+x/krhgkfH1kxl6p1CK9cdAHKd/zHdVDlauCTRSRlNXSIKHu7W3A==
X-Gm-Gg: ATEYQzzJxUkV6+hALaa5ld5euAlanFGq8GuPtFqHFcZO24Ol2CT+rKhyNV7zcbexFsd
	quOkCJ8VFnmX8pgDX9Miu1z2r3wS8LYEAI/722F0OMc4+K80K07Tl9JpNXA6oQqZ5wozMLyRtAE
	M0TKbP3nSa/YP2U4Y8M06d3bOJW/pDv9i7AHxN8Py+xr4YudgdlkhL1OflVe38QZ4mbJx1fhO6F
	UiqCnAQAyQ+If/k3nAPJw9XM2+aZAHnGN3Y+6/pPs3sQvkhyHigHP02CELmSfo9OAtogAP1E5DD
	qUYAq9VwqQtTQr9CQJPMwrdgaTrl688q3xsiCxd6ac1/3zotb/qjUCfPfCcKmA0Hk4a1O6BV5oP
	Vuv5uZw0lCC4tiNPC3f68kiCcJHY9TLYqlfqGtV9dSS8c6zQbBbTq/h2lai7v7YesNzNaRYwiHZ
	lVJPhb0Q4VeTU9X3LSshx2ssImp06BOG8g1V5fDKoQf08/QltGrkcepcasL5mD4FOEzA==
X-Received: by 2002:a05:600c:8b16:b0:480:68ed:1e70 with SMTP id 5b1f17b1804b1-483a963de73mr420137245e9.35.1772106693973;
        Thu, 26 Feb 2026 03:51:33 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 07/14] xen/riscv: introduce vcpu_kick() implementation
Date: Thu, 26 Feb 2026 12:51:07 +0100
Message-ID: <fae5055def89528c078bacf7e344fd5116f531e5.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a RISC-V implementation of vcpu_kick(), which unblocks the target
vCPU and sends an event check IPI if the vCPU was running on another
processor. This mirrors the behavior of Arm and enables proper vCPU
wakeup handling on RISC-V.

Remove the stub implementation from stubs.c, as it is now provided by
arch/riscv/domain.c.

Since vcpu_kick() calls perfc_incr(vcpu_kick), add perfcounter for
vcpu_kick to handle the case when CONFIG_PERF_COUNTERS=y. Although
CONFIG_PERF_COUNTERS is not enabled by default, it can be enabled,
for example, by randconfig what will lead to CI build issues.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v6:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - Add asm/perfc_defn.h to provide vcpu_kick perfcoounter to cover
   the case when CONFIG_PERF_COUNTERS=y.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/domain.c                 | 14 ++++++++++++++
 xen/arch/riscv/include/asm/Makefile     |  1 -
 xen/arch/riscv/include/asm/perfc_defn.h |  3 +++
 xen/arch/riscv/stubs.c                  |  5 -----
 4 files changed, 17 insertions(+), 6 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 56b28750d3aa..fda8cff90f6a 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -1,9 +1,11 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/cpumask.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/sections.h>
 #include <xen/sched.h>
+#include <xen/smp.h>
 #include <xen/vmap.h>
 
 #include <asm/bitops.h>
@@ -265,6 +267,18 @@ void vcpu_flush_interrupts(struct vcpu *v)
 #endif
 }
 
+void vcpu_kick(struct vcpu *v)
+{
+    bool running = v->is_running;
+
+    vcpu_unblock(v);
+    if ( running && v != current )
+    {
+        perfc_incr(vcpu_kick);
+        smp_send_event_check_mask(cpumask_of(v->processor));
+    }
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/Makefile b/xen/arch/riscv/include/asm/Makefile
index 3824f31c395c..86c56251d5d7 100644
--- a/xen/arch/riscv/include/asm/Makefile
+++ b/xen/arch/riscv/include/asm/Makefile
@@ -7,7 +7,6 @@ generic-y += hypercall.h
 generic-y += iocap.h
 generic-y += irq-dt.h
 generic-y += percpu.h
-generic-y += perfc_defn.h
 generic-y += random.h
 generic-y += softirq.h
 generic-y += vm_event.h
diff --git a/xen/arch/riscv/include/asm/perfc_defn.h b/xen/arch/riscv/include/asm/perfc_defn.h
new file mode 100644
index 000000000000..8a4b945df662
--- /dev/null
+++ b/xen/arch/riscv/include/asm/perfc_defn.h
@@ -0,0 +1,3 @@
+/* This file is intended to be included multiple times. */
+
+PERFCOUNTER(vcpu_kick, "vcpu: notify other vcpu")
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index daadff0138e4..eedf8bf9350a 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -203,11 +203,6 @@ void vcpu_block_unless_event_pending(struct vcpu *v)
     BUG_ON("unimplemented");
 }
 
-void vcpu_kick(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 unsigned long
 hypercall_create_continuation(unsigned int op, const char *format, ...)
 {
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241456.1542523 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu2-0007Ld-8N; Thu, 26 Feb 2026 11:51:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241456.1542523; Thu, 26 Feb 2026 11:51: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 1vvZu2-0007Kh-4g; Thu, 26 Feb 2026 11:51:34 +0000
Received: by outflank-mailman (input) for mailman id 1241456;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZu0-0006E8-Mf
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:32 +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 7cd91581-1309-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 12:51:29 +0100 (CET)
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-4836f363ad2so9650385e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:29 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.27
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:28 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7cd91581-1309-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106689; x=1772711489; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=33kKmz90cEezZ0SKbWH5QuCoRKJPXKUuazyZn8mlTZE=;
        b=XEGGpl0sBwW93wLua95wUwjmqlZS6NVG6Ultc/synH70ofdyRA31yeJS90QDCSW0K2
         GF11xwcRaN6N7QcQFZTu+EF5/VZ5fqwJl1ad1K7YLCm2mHP2EmTFbdepepEJhrROHpJr
         VMXqRePfXWtTZDWVL9xYxU0YBjHhg86s1sc8Bbe3NvW9p9gaTgP9jslxS2xM1wkc1uVq
         u7BcxqlQa+B/QkbhPLdMP8iozGRRkGYSmT/Pg1ZEAddUbVvWYfDdFqdkqX5sMOEDL4xa
         OUXBnuBKQ93QWMVi1t6qKm+2nqQpKlyNTAuoBnQghoWrM+XlAu76vMD7/TuzvCouPVr/
         tjEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106689; x=1772711489;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=33kKmz90cEezZ0SKbWH5QuCoRKJPXKUuazyZn8mlTZE=;
        b=OoFmymOd3WJyz+ZiJp5tPpWlPb9sA3HpHySwEGIAr5gN3buDPLpbamtMDxjE4ISIZB
         q5V+fNb/qVNj2MG30GjTOL1qiD5A/zptvyQc0MGstJmR6dvUzZ3i75JBhBR4lGNm1x9o
         LhiR+JVmWWSC48jvHSg/12qJY4t9+6zGq/6IH+QJjYJfRSSRMcxiXe4uK2xCQ4sHLuwR
         xlN80MVHqgiffPdJX3/45brD8TCBwvubfxv2xYR2S89LMEKi8IpsrfKSfdmpdEL3feha
         Ld57RSWQmPOiMmLAkw6Eci2fEEtMrVbl8Z1a4K9GjjZ3Ya+p2Ru9DCz5BXqyln6guSg4
         0zhA==
X-Gm-Message-State: AOJu0Yy4kYMeU8knqexZ9lBI8yt3fjRehjChiQJTGhb2f/GtnFKWfGxi
	KwTQHkFRtB3hT0/z3y7ikBy67w5q6fH8Ix4H41WNxNC+bddgeN5CG+fvMH7FBA==
X-Gm-Gg: ATEYQzzAW1Kw721AmNj9JSA0TjL2F8q1rzilRctwL/2CReJt//mCs3nwZeBiduhyc7Y
	blvkfLfa8KYqAO6qx29E9Eg7904ehRxovFvS/JtZpg3YhgjNg28XHx7R42VsDdT6H4zQPBV3kKc
	AtMZb7E2r9oIPxIt5AhvLQ2vfF/vVZESwb5KtbzgLpL3MoTW6fKQunGN0sXVMB/0o59KCeckNu5
	h4oQzL+XxDIVMaDpyh1mGMiFuc9Qckp0LjeOCKRYO3mZwGYY6EPgQ/xThSKzSelD8XqunDeDeRR
	eScEyNGFYVhm+w8f4PPlDt62KSplIvW+yV/RNos/+qLRTeEb4HIs+wuk3s/HnKigYzOgVSE+ViN
	o4ZtGzghEUAxQHKTHkFcTq2uw5ZRCiHpAllyDEEGn4covrXFKLBjUkLk9A/uku1c2+cR2tGGePn
	QGvcAsBw0lr6WCQA2z08s1/BiiN/dBCSVUmpL7U37FWO+0EYavU5QgvS5DaTzTg1r1Ww==
X-Received: by 2002:a05:600c:470f:b0:46f:c55a:5a8d with SMTP id 5b1f17b1804b1-483a95a852cmr341721945e9.4.1772106688743;
        Thu, 26 Feb 2026 03:51:28 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 04/14] xen/riscv: introduce tracking of pending vCPU interrupts, part 2
Date: Thu, 26 Feb 2026 12:51:04 +0100
Message-ID: <07a3750bf152f31ef8013194536f199ac3540dcf.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

This patch is based on Linux kernel 6.16.0.

Add the consumer side (vcpu_flush_interrupts()) of the lockless pending
interrupt tracking introduced in part 1 (for producers). According, to the
design only one consumer is possible, and it is vCPU itself.
vcpu_flush_interrupts() is expected to be ran (as guests aren't ran now due
to the lack of functionality) before the hypervisor returns control to the
guest.

Producers may set bits in irqs_pending_mask without a lock. Clearing bits in
irqs_pending_mask is performed only by the consumer via xchg() (with aquire
semantics). The consumer must not write to irqs_pending and must not act on
bits that are not set in the mask. Otherwise, extra synchronization should
be provided.
The worst thing which could happen with such approach is that a new pending
bit will be set to irqs_pending bitmap during update of hvip variable in
vcpu_flush_interrupt() but it isn't problem as the new pending bit won't
be lost and just be proceded during the next flush.

As AIA specs introduced hviph register which would want to be updated when
guest related AIA code vcpu_update_hvip() is introduced instead of just
open-code it in vcpu_flush_interrupts().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6:
 - Nothing changed. Only rebase.
---
Changes in v5:
 - Reorder the defintions of local variables (mask, val, hvip) in
   vcpu_flush_interrupts(). Also, drop a blank line between them.
 - Move #ifdef CONFIG_RISCV_32 above the comment in vcpu_flush_interrupts()
   and align the comment properly.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v4:
 - Move defintion of hvip local variable to narrower space in
   vcpu_flush_interrupts().
 - Use initializers for mask and val variables.
 - Use local variable c as an argument of vcpu_flush_interrupts() in
   check_for_pcpu_work().
---
Changes in v3:
 - Update the error message in case of RV32 from "hviph" to v->arch.hviph.
 - Make const argument of vcpu_update_hvip.
 - Move local variables mask and val inside if() in vcpu_flush_interrupts().
 - Call vcpu_flush_interrupts() in check_pcpu_work().
 - Move vcpu_update_hvip() inside if() in vcpu_flush_interrupts().
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c             | 30 +++++++++++++++++++++++++++++
 xen/arch/riscv/include/asm/domain.h |  1 +
 xen/arch/riscv/traps.c              |  2 ++
 3 files changed, 33 insertions(+)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index 047dbebc1a09..6988d7032059 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -229,6 +229,36 @@ void vcpu_sync_interrupts(struct vcpu *v)
 #endif
 }
 
+static void vcpu_update_hvip(const struct vcpu *v)
+{
+    csr_write(CSR_HVIP, v->arch.hvip);
+}
+
+void vcpu_flush_interrupts(struct vcpu *v)
+{
+    if ( ACCESS_ONCE(v->arch.irqs_pending_mask[0]) )
+    {
+        unsigned long mask = xchg(&v->arch.irqs_pending_mask[0], 0UL);
+        unsigned long val = ACCESS_ONCE(v->arch.irqs_pending[0]) & mask;
+        register_t *hvip = &v->arch.hvip;
+
+        *hvip &= ~mask;
+        *hvip |= val;
+
+        vcpu_update_hvip(v);
+    }
+
+#ifdef CONFIG_RISCV_32
+    /*
+     * Flush AIA high interrupts.
+     *
+     * It is necessary to do only for CONFIG_RISCV_32 which isn't
+     * supported now.
+     */
+#   error "Update v->arch.hviph"
+#endif
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/include/asm/domain.h b/xen/arch/riscv/include/asm/domain.h
index e19365c6fb77..5373a498d80b 100644
--- a/xen/arch/riscv/include/asm/domain.h
+++ b/xen/arch/riscv/include/asm/domain.h
@@ -115,6 +115,7 @@ int vcpu_set_interrupt(struct vcpu *v, unsigned int irq);
 int vcpu_unset_interrupt(struct vcpu *v, unsigned int irq);
 
 void vcpu_sync_interrupts(struct vcpu *v);
+void vcpu_flush_interrupts(struct vcpu *v);
 
 #endif /* ASM__RISCV__DOMAIN_H */
 
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 551f886e3a69..244264c92a79 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -175,6 +175,8 @@ static void check_for_pcpu_work(void)
 
     vcpu_sync_interrupts(curr);
 
+    vcpu_flush_interrupts(curr);
+
     p2m_handle_vmenter();
 }
 
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241460.1542553 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu7-00088X-5j; Thu, 26 Feb 2026 11:51:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241460.1542553; Thu, 26 Feb 2026 11: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 1vvZu7-00088A-2c; Thu, 26 Feb 2026 11:51:39 +0000
Received: by outflank-mailman (input) for mailman id 1241460;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZu5-0006E8-TY
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:37 +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 813fca0c-1309-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 12:51:37 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so8712645e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:37 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.35
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:35 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 813fca0c-1309-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106696; x=1772711496; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=YPVdYf1isxzjgFuoXm9FNs+0/fH+qzHDGQJ001Hb8No=;
        b=Zwqz2yqXa7g87XHb7LLY8/1TsbvSgCQrK48X8HAJpKHfr5lYf+ZJs/KVUWJLyePnAA
         LpOG2fJ/A95W9GrmcCKQkiMTwO/qSKtEnwKoSi96lTko7P9QrMxRS6YrsqRwiBBj2v40
         HDLqFUWCoigVwwF7JjLMm683CPBIUkzrZE4SRNrcYbw2vK6VTA1+CubZ9JMTeoY2OGwk
         dErOTRMs+6LHU7nj8cTzB22d20u7RhOUbiEN+S5enl1SLwDX/P/Y/nEA7QLyH0rZAW8k
         yRdijRhj5lnX3F8V0dCv3zEAMFDdNX4TfCZaeBRvnpr8RbrPgpVff1hIkMhmaF/eWrlW
         iVXw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106696; x=1772711496;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=YPVdYf1isxzjgFuoXm9FNs+0/fH+qzHDGQJ001Hb8No=;
        b=oRZB7/4RVSpSS3y55JFJGr2RN92AtphrrMMH4MVTpbyjv9vu2sIBn3kZF6vOkHzdJd
         rZrVoaNDwsyfU7dO0Ac8QUQo5l6hnYdvc0plTIaQBIhvZpOgVt+oHkRbioDyypaG2Xkk
         eFW4lbilUC2EymiNPITzjym6BVKY8nrJNIJ9W4Poz6Nu56v+8h+goYpiReTaSXkuYR01
         d+KRXBcbWHjpQwUomOf22kb6KJcfD8O+NXdFYZuU7Ad1p9dqU8+ig5nvXidps1IqKnSI
         I2ExZauBhTHOD9rJhXNR4vnvrgSu2WL+XnjgU2rEaUTqf12+IvdbyV9YrkJ0sIIkYXSl
         o1VQ==
X-Gm-Message-State: AOJu0YzCHaisymKpA6vSjEck5XlEl9MfBQ3FUqH5KUqcKl0BV8sMDUtl
	QncPt01mI+VAwTt8Zzo84bHgvpwJEaEcC5Y6iuWqwhk8CPn+VwpIp4m8+YJzQg==
X-Gm-Gg: ATEYQzxsG4xVgImrFiXsxTE2y0SUqpKKCuYNfRC4HSW7ki+N9Qq8Sv3tocGDPYO4hHF
	smDvGJYJlfnXDiQkw3vBnDx7Kso/+pZu2RNia6eGCnDjE+2K9ROGbms+K3zyqCmi8E2h9uWqiLn
	RJmKrcpNaXR7lqPeLBFHdTD6wQ0epY4M6sIKVib0tuRjqlm3hNS0JGOwtR9J+Ooj1smEcOUQDSI
	bDKrfPkh+pLitoHSSPDtOEgWGGk1dmTDbprEAy+8HwkD7WPO61VUkkKu8P/YVqhu1lOunCyRaO2
	PclA26tAPhNpisrrBx9K3xQimHF+Zz2u9gPGWz3x15R1/rkNKPcbvf5GiINbCkQIlUSLq1QHoo2
	Lg9qLrWNa2jAdKbMWjWkAZr4RKwfAKPz9RTHC7v9s6OwXzlC/sXJht4bqXU2xkSvEgBr9uXYU+V
	48UUp1X+kEdgmVudnBabITmmUM8NJ2JNokPgYOmOL7L0JWCLU2XXOLPN/AsZyyJ6pSag==
X-Received: by 2002:a05:600c:a009:b0:483:b505:9db4 with SMTP id 5b1f17b1804b1-483c3df45e6mr36293535e9.31.1772106696251;
        Thu, 26 Feb 2026 03:51:36 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 09/14] xen/riscv: implement SBI legacy SET_TIMER support for guests
Date: Thu, 26 Feb 2026 12:51:09 +0100
Message-ID: <3ca9368fac1294d5e7f3b64bd1ffae281f880ccc.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add handling of the SBI_EXT_0_1_SET_TIMER function ID to the legacy
extension ecall handler. The handler now programs the vCPU’s virtual
timer via vtimer_set_timer() and returns SBI_SUCCESS.

This enables guests using the legacy SBI timer interface to schedule
timer events correctly.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v3-v6:
 - Nothing changed. Only rebase.
---
Changes in v2:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
 xen/arch/riscv/vsbi/legacy-extension.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/arch/riscv/vsbi/legacy-extension.c b/xen/arch/riscv/vsbi/legacy-extension.c
index 2e8df191c295..090c23440cea 100644
--- a/xen/arch/riscv/vsbi/legacy-extension.c
+++ b/xen/arch/riscv/vsbi/legacy-extension.c
@@ -7,6 +7,7 @@
 
 #include <asm/processor.h>
 #include <asm/vsbi.h>
+#include <asm/vtimer.h>
 
 static void vsbi_print_char(char c)
 {
@@ -44,6 +45,11 @@ static int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,
         ret = SBI_ERR_NOT_SUPPORTED;
         break;
 
+    case SBI_EXT_0_1_SET_TIMER:
+        vtimer_set_timer(&current->arch.vtimer, regs->a0);
+        regs->a0 = SBI_SUCCESS;
+        break;
+
     default:
         /*
          * TODO: domain_crash() is acceptable here while things are still under
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:40 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:40 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241461.1542563 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu8-0008QP-FD; Thu, 26 Feb 2026 11:51:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241461.1542563; Thu, 26 Feb 2026 11: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 1vvZu8-0008PN-Ar; Thu, 26 Feb 2026 11:51:40 +0000
Received: by outflank-mailman (input) for mailman id 1241461;
 Thu, 26 Feb 2026 11: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZu6-0006EH-Lf
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:38 +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 809db19b-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:36 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4837f27cf2dso6970295e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:36 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:34 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 809db19b-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106695; x=1772711495; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MFgnfk1X0S+A5onGN+L4+G0+AM9Sn3RDBBYOWw2WVMo=;
        b=E3Kss6Zcnvblsyc1uOLtnoUHP+UPPmrBBdBsmyu5D4CKbFJr2M2SuviLhWOGz7VLKI
         MuL4a5UTYRjKNMsyFVvkS4J7bfDT3rF3lWkC8IohZIMbdsiNOzKEC1A/i1R+PZwGwC8O
         D+k4NaZUxiYnPbyG1gpyVkvgSA9l65JfUfQBnmNETolPpHfzCHDmpoukB6aWg4X4a8yF
         lAQDLNESI9oxDtavYCFrpB9Wq85ammFkP6ot76E0+yElZAxUXxSb0dlz7UNkspfr1EqZ
         obU+F7vT1ASxuKT4cNaUhaxXwWxjZbyWRsb7/fy+920e3XtemUFcuLaSlkYUatC7f1m1
         uQEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106695; x=1772711495;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=MFgnfk1X0S+A5onGN+L4+G0+AM9Sn3RDBBYOWw2WVMo=;
        b=vc/upuElljvEiQcXxbfZs7jsEfG8uFPttFXVlT+xxVglo53ZKSTyiBsnA9ml23txGO
         Tl00GRnqDnFV7i2H9mlJUvQNRSbhPrLPbpSSoZmdqFglRWdK5uzlueqvL6dBff/wXR/B
         d7kzQ2dNpTDzHvrgPYJ7qUcrHwxqhnJUwFA4hPfNNvWuqh0uxISdyfe0gRYVh0ESZ3le
         JXPsBVERalIeLNXu+/y/Y16IFVHS1R3bJSp/GpjJGsnUgLR/SlgM8SGN7wLKV8fj60O4
         IMQXB9dapkjHj7QCX1Lf+g/PqWSrVfp3QRq6LakYpBh68jOC7+nvGn3SomlcgdPxOSQI
         8Sxw==
X-Gm-Message-State: AOJu0YxR6/7SLOwbDhmtwLcuqJzl+CswIVkgMucmYaQ9Hs/Ko3hmk4OC
	K8w9o/V/OIR/gVfhUu3dR2I3i50+2C4WWvNLd+wy6rt4yTBfR+8cKEKeWbkwjg==
X-Gm-Gg: ATEYQzxEm9v0NL8Cn0kZt/UiaSyuaQCaBPp46Y37SEuoFtmMutCmtXww/s/px8SO74E
	CdBvW7kYm8GL9EnCsMti/glvTrBNn+jWaKu7TKzJtoxTcuvDvSU1yPU4sotUwnkQC0tWCwUTTsO
	rL293MwxeULZbyTi3+8HjlYldOSJVbRoYdhkpgipX163rIchNa14X4PhmDTJNPLJevFuUodtnnN
	o7DRvHIWABVMEIeBflA42aVzrQFIXoMWtKXWXNBUBTj+8n+qNMOzg5Rg9GQck3dMEideYyBUojq
	JtmM7/3E9591vFSxAHozOqHRNrvNYe4VkbohUDCuCCDSH5PyNiRGxHSaujJo/qZ0Lmu3a04FErZ
	x+0wak8MOdfbOUhgLAWMmspxMAchDcgphuWbF3Ws21BCimnRx+rcINXgWv0etXiK86JIauq6wX/
	jP7CiYWQeToYVnPstPXzcQJCSYgM/2BsV40q39nVnMOxouZEdluYFMgQGlOFxj98evpQZEHWPDq
	PME
X-Received: by 2002:a05:600c:8b88:b0:479:35e7:a0e3 with SMTP id 5b1f17b1804b1-483a963d64bmr300451115e9.30.1772106695186;
        Thu, 26 Feb 2026 03:51:35 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 08/14] xen/riscv: add vtimer context switch helpers
Date: Thu, 26 Feb 2026 12:51:08 +0100
Message-ID: <36e4259c18bc09e47628e535401f97d518c0d0e4.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce vtimer_ctxt_switch_from() and vtimer_ctxt_switch_to() to handle
virtual timer state across vCPU context switches.

At present, vtimer_ctxt_switch_from() is a no-op because the RISC-V SSTC
extension, which provides a virtualization-aware timer, is not yet
supported. Xen therefore relies the virtual (SBI-based) timer.

The virtual timer uses Xen's internal timer infrastructure and must be
associated with the pCPU on which the vCPU is currently running so that
timer events can be delivered efficiently. As a result, vtimer_ctxt_switch_to()
migrates the timer to the target pCPU when a vCPU is scheduled in.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v6:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - s/vtimer_ctx_switch_to/vtimer_ctxt_switch_to
 - s/vtimer_ctx_switch_from/vtimer_ctxt_switch_from
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Align the parameters names for  vtimer_ctx_switch_from() and vtimer_ctx_switch_to() in
   declarations to match the ones in the defintions to make Misra happy.
 - s/vtimer_save/vtimer_ctx_switch_from.
 - s/vtimer_restore/vtimer_ctx_switch_to.
 - Update the commit message.
---
 xen/arch/riscv/include/asm/vtimer.h |  3 +++
 xen/arch/riscv/vtimer.c             | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/xen/arch/riscv/include/asm/vtimer.h b/xen/arch/riscv/include/asm/vtimer.h
index 111863610a92..b4d48d1a1732 100644
--- a/xen/arch/riscv/include/asm/vtimer.h
+++ b/xen/arch/riscv/include/asm/vtimer.h
@@ -14,4 +14,7 @@ void vcpu_timer_destroy(struct vcpu *v);
 
 void vtimer_set_timer(struct vtimer *t, uint64_t ticks);
 
+void vtimer_ctxt_switch_from(struct vcpu *p);
+void vtimer_ctxt_switch_to(struct vcpu *n);
+
 #endif /* ASM__RISCV__VTIMER_H */
diff --git a/xen/arch/riscv/vtimer.c b/xen/arch/riscv/vtimer.c
index 32d142bcdfcd..afd8a53a7387 100644
--- a/xen/arch/riscv/vtimer.c
+++ b/xen/arch/riscv/vtimer.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <xen/bug.h>
 #include <xen/sched.h>
 #include <xen/timer.h>
 
@@ -69,3 +70,17 @@ void vtimer_set_timer(struct vtimer *t, const uint64_t ticks)
     migrate_timer(&t->timer, smp_processor_id());
     set_timer(&t->timer, expires);
 }
+
+void vtimer_ctxt_switch_from(struct vcpu *p)
+{
+    ASSERT(!is_idle_vcpu(p));
+
+    /* Nothing to do at the moment as SSTC isn't supported now. */
+}
+
+void vtimer_ctxt_switch_to(struct vcpu *n)
+{
+    ASSERT(!is_idle_vcpu(n));
+
+    migrate_timer(&n->arch.vtimer.timer, n->processor);
+}
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241465.1542574 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZuA-0000JG-3B; Thu, 26 Feb 2026 11:51:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241465.1542574; Thu, 26 Feb 2026 11:51:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZu9-0000IO-Tz; Thu, 26 Feb 2026 11:51:41 +0000
Received: by outflank-mailman (input) for mailman id 1241465;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZu8-0006EH-Lp
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:40 +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 81f1a138-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:38 +0100 (CET)
Received: by mail-wm1-x333.google.com with SMTP id
 5b1f17b1804b1-48372efa020so6535065e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:38 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.36
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:37 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 81f1a138-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106697; x=1772711497; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=5K7jSa5ElCzdAIrKGdTJ7REReHRZ8bMvKPzPSDPHE2w=;
        b=BlritWwLH0Oix637nUS19EKZuNhonSpPTeOta/484dHWjyvEiiq+Qf/j6/IbkArtC0
         qqoaDup3MvTLVsdwiJ4BooHpmY2Wuka/mP82M9JpGA6GJx4W0ftWRp1w4fu1nTM2LvaV
         qTnQDmvngw+XErcc+MTCsUW5umZc8OYQIRxmMAtU3iwBSRXnQB6+N4LJHfKZ38zmQWQX
         LQWQS52kDayk4NYpBxo62cMbv0XLdt1x4b/w75D0KJyOo8HprNMDBbj1C5ARdo8cnLmb
         oc1BezGzHq+FkD4EyDvhV5jzTigrl9RLktRB1DySwF4eytuGklBf4MXCD69b/jHmzDIJ
         f6+Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106697; x=1772711497;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=5K7jSa5ElCzdAIrKGdTJ7REReHRZ8bMvKPzPSDPHE2w=;
        b=KSZFnEZTV1YmiDeIgbnqYfX/w5UmJq5dvFJYBcw0SBa6jwoJb70mtpOLhkU4O/K2u8
         HPqcPqOJOGnKmtJzhpDIP+TQnhSfbpwFdChT2MED+UnZYUjcTzdnP79/7q+5vwgNlNXm
         /QF2Xv9WblOuqSdYueHULQNwAu4eqDK91dpMHl6QzCmnFCtEjIxC71nhfJmNh35VR4cL
         zi7F33v1w4657cxamGJwKg+Vwaz1HOEbIemLBYtFqbE6clOfu0Tf+Ot/O0HT/qXG/Dwn
         /EZLDXQLiKUsAtRAZKxWV7QqHYfh8qSIeQAoUYWwXBybODFLzB39jITn7iqtiSx2OA7H
         ecBg==
X-Gm-Message-State: AOJu0YxobSNn557v7NuGNHlucey6AfSPBgyaAjzordWpD9F2+FpzZTBO
	zjPsOB2HeV8/wADvtxiIhiMu/Tdh6L/qL5OQZiYs4sDFb9fC5ohxd+S14rf+hw==
X-Gm-Gg: ATEYQzx2AjoDfn5ubeXoXz0k/fczU8EqJLTpvl8aIoXJEPiL4SNC1S2pMmqxmMymfWu
	gGWnmp7H/6S7tEjDE2Wst8tQnSwHBiLmF5FoZKpWjZaV3kXGEDC5RqYrIpvYfkl9gJemw/zmr+6
	TnME6rvfmoVcPW8MXW9AjiQp+sV1Um2mN8YIoGPYo3bquObz9JasZftvj9IecFmPPTdQYql4V8r
	2jZs3vH0FWapO5dNy9xRW7uuYDp/Yi1TMc7G5W4dX88ZmVDcF4KnnN5WwOidovWLejH6bB0DMvH
	6HOPcRSFJFHrrwUvD3t9gCFjwTg9ljR/4g/gaW2aUwtXl1NL0W787EDX0n+JDjlKn4eJnyO3KJa
	TaPerCxD50sttMe1iKJ0cQrqio4XZwpiXx+K5/3CkVLJu00CFXNWKtxJJ/4ByS4IJH9oYTsbhEI
	TI+fOCJ6enp/Br0HZzrQQoRQcOR67Vp0ybBs/OYH1px/uu8leQ616RoR2dOqJMqYvoKg==
X-Received: by 2002:a05:600c:548a:b0:483:b2a8:33ff with SMTP id 5b1f17b1804b1-483c216bdefmr63756335e9.4.1772106697348;
        Thu, 26 Feb 2026 03:51:37 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 10/14] xen/riscv: introduce sbi_set_timer()
Date: Thu, 26 Feb 2026 12:51:10 +0100
Message-ID: <b0c09ad6247b854997110dfbe84cea4000232cfd.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Introduce a function pointer for sbi_set_timer(), since different OpenSBI
versions may implement the TIME extension with different extension IDs
and/or function IDs.

If the TIME extension is not available, fall back to the legacy timer
mechanism. This is useful when Xen runs as a guest under another Xen,
because the TIME extension is not currently virtualised and therefore
will not appear as available.
Despite of the fact that sbi_set_timer_v01 is introduced and used as
fall back, SBI v0.1 still isn't fully supported (with the current SBI
calls usage, sbi_rfence_v01 should be introduced too), so panic()
in sbi_init() isn't removed.

The sbi_set_timer() pointer will be used by reprogram_timer() to program
Xen’s physical timer as without SSTC extension there is no any other
option except SBI call to do that as only M-timer is available for us.

Use dprintk() for all the cases to print that a speicifc SBI extension
is available as it isn't really necessary in case of release builds.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6:
 - Nothing changed. Only rebase.
---
Changes in v5:
- Add inclusion of <xen/sections.h> to <asm/sbi.h> to deal with the compilation issue:
    ./arch/riscv/include/asm/sbi.h:156:30: error: expected ')' before 'sbi_set_timer'
    156 | extern int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
- Rephrase the first sentence of the comment above declaration of sbi_set_timer
  pointer to function.
---
Changes in v4:
 - Add "stime_value is in absolute time" to the comment above declaration
   of sbi_set_timer() function pointer.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Init sbi_set_timer with sbi_set_timer_v01 as fallback value.
 - Sort SBI IDs in the same way as SBI EXT IDs are declared.
 - Add __ro_after_init for sbi_set_timer variable.
 - use dprintk instead of printk to print information if SBI ext is available.
---
Changes in v2:
 - Move up defintion of SBI_EXT_TIME_SET_TIMER and use the same padding as
   defintions around it.
 - Add an extra comment about stime_value granuality above declaration of
   sbi_set_timer function pointer.
 - Refactor implemetation of sbi_set_timer_v02().
 - Provide fallback for sbi_set_timer_v01().
 - Update the commit message.
---
 xen/arch/riscv/include/asm/sbi.h | 22 ++++++++++++++++++
 xen/arch/riscv/sbi.c             | 40 +++++++++++++++++++++++++++++++-
 2 files changed, 61 insertions(+), 1 deletion(-)

diff --git a/xen/arch/riscv/include/asm/sbi.h b/xen/arch/riscv/include/asm/sbi.h
index 79f7ff5c5501..ed7af200288f 100644
--- a/xen/arch/riscv/include/asm/sbi.h
+++ b/xen/arch/riscv/include/asm/sbi.h
@@ -13,6 +13,7 @@
 #define ASM__RISCV__SBI_H
 
 #include <xen/cpumask.h>
+#include <xen/sections.h>
 
 /* SBI-defined implementation ID */
 #define SBI_XEN_IMPID 7
@@ -29,6 +30,7 @@
 
 #define SBI_EXT_BASE                    0x10
 #define SBI_EXT_RFENCE                  0x52464E43
+#define SBI_EXT_TIME                    0x54494D45
 
 /* SBI function IDs for BASE extension */
 #define SBI_EXT_BASE_GET_SPEC_VERSION   0x0
@@ -48,6 +50,9 @@
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA       0x5
 #define SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID  0x6
 
+/* SBI function IDs for TIME extension */
+#define SBI_EXT_TIME_SET_TIMER          0x0
+
 #define SBI_SPEC_VERSION_MAJOR_MASK     0x7f000000
 #define SBI_SPEC_VERSION_MINOR_MASK     0x00ffffff
 
@@ -134,6 +139,23 @@ int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,
 int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t start,
                                 size_t size, unsigned long vmid);
 
+/*
+ * Programs the clock for next event at (or after) stime_value. stime_value is
+ * in absolute time. This function must clear the pending timer interrupt bit
+ * as well.
+ *
+ * If the supervisor wishes to clear the timer interrupt without scheduling the
+ * next timer event, it can either request a timer interrupt infinitely far
+ * into the future (i.e., (uint64_t)-1), or it can instead mask the timer
+ * interrupt by clearing sie.STIE CSR bit.
+ *
+ * The stime_value parameter represents absolute time measured in ticks.
+ *
+ * This SBI call returns 0 upon success or an implementation specific negative
+ * error code.
+ */
+extern int (* __ro_after_init sbi_set_timer)(uint64_t stime_value);
+
 /*
  * Initialize SBI library
  *
diff --git a/xen/arch/riscv/sbi.c b/xen/arch/riscv/sbi.c
index 425dce44c679..b4a7ae6940c1 100644
--- a/xen/arch/riscv/sbi.c
+++ b/xen/arch/riscv/sbi.c
@@ -249,6 +249,38 @@ static int (* __ro_after_init sbi_rfence)(unsigned long fid,
                                           unsigned long arg4,
                                           unsigned long arg5);
 
+static int cf_check sbi_set_timer_v02(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+static int cf_check sbi_set_timer_v01(uint64_t stime_value)
+{
+    struct sbiret ret;
+
+    ret = sbi_ecall(SBI_EXT_0_1_SET_TIMER, 0, stime_value,
+#ifdef CONFIG_RISCV_32
+                    stime_value >> 32,
+#else
+                    0,
+#endif
+                    0, 0, 0, 0);
+
+    return sbi_err_map_xen_errno(ret.error);
+}
+
+int (* __ro_after_init sbi_set_timer)(uint64_t stime_value) = sbi_set_timer_v01;
+
 int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,
                           size_t size)
 {
@@ -324,7 +356,13 @@ int __init sbi_init(void)
         if ( sbi_probe_extension(SBI_EXT_RFENCE) > 0 )
         {
             sbi_rfence = sbi_rfence_v02;
-            printk("SBI v0.2 RFENCE extension detected\n");
+            dprintk(XENLOG_INFO, "SBI v0.2 RFENCE extension detected\n");
+        }
+
+        if ( sbi_probe_extension(SBI_EXT_TIME) > 0 )
+        {
+            sbi_set_timer = sbi_set_timer_v02;
+            dprintk(XENLOG_INFO, "SBI v0.2 TIME extension detected\n");
         }
     }
     else
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241466.1542579 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZuA-0000Ni-Kp; Thu, 26 Feb 2026 11:51:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241466.1542579; Thu, 26 Feb 2026 11:51:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZuA-0000MU-9Z; Thu, 26 Feb 2026 11:51:42 +0000
Received: by outflank-mailman (input) for mailman id 1241466;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZu8-0006E8-UU
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:40 +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 82f5fc2e-1309-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 12:51:39 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-4834826e5a0so8712995e9.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:40 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.37
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 82f5fc2e-1309-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106699; x=1772711499; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=lX9hIaB9WTE6h7+Wjpyh48oNfuDqQhQlogYAFoYLY7c=;
        b=lQnyGQpef4bwDXDEq0XlJct/7CAurJ2PUFl+4JIpaOAwYsrR39ruZRSP4Cx/oqS6oZ
         sPtYO+q5aKXvBwXi9giwCJBKl28WcxOFMd/73JBDJ5zjBKjrTMlkgQHFO9CQbah4NQfA
         OBPR13MmC2R4eMBO6tqr9ZU2k7OOsp7oc23m4MnqBJN3p14O1QGwMjBHxDcwtT8KI2Ly
         Gt882zXpKibg3i2ECRX9cupq4IEtqTfksBPTJJFGAkIX2nd4kA1LNe/9gsfXnLd4z+KP
         avEpt8zlCvZ84ZBWDJzRtK8Ja20kIiCJHWmsrzuBO/fmRhgf0UY6auSkDxzSrEvSLVoR
         YvFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106699; x=1772711499;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=lX9hIaB9WTE6h7+Wjpyh48oNfuDqQhQlogYAFoYLY7c=;
        b=rz0VKU17bmmvZu8OBVfP29p7tJENBmpDRjOJyMBD6Z3JlNFZp/rwaAC/knZwgU7b8d
         TQWK0OPvKAjstgRd627eNz0ZRQh7MWtMSkPSyOhbYxBZRpb257AHyrWtC1DgjYS33/mL
         EHzi6gu0tCTt5N4JkCs0VCuJSqxGrVlA1L9Pg1slmhkHXF0di6hi06piDZ7Vd90gEp1N
         U/sS/4OBwRlbdi5EY27vdz1lCeaAMGTATOCI+U4G44siNFT7n69G+ZLJ+tMZd65vm7d/
         2B+D1Rv5LpgQmE5jTBfjk8Lb7ZFCF239CFbZ5HYvfrjrrSsEhGahlEXSLIwtZfLKHpJ+
         ca0w==
X-Gm-Message-State: AOJu0Yz4Hei1+ikQQeAarLbM0EkHvkIS8FvMNiaKDLbxUUmcCnJRbAg1
	QPeZuY1bB5Nq3ULbRDzxaeSCltOspkL4usw7oa21Jw3Gme/LClVFA3zWEhDOTQ==
X-Gm-Gg: ATEYQzw5o556W9VI+sIl4aiSdMUSsRcSL0U84aDF5lGSzi/vyPtpn8V7JKMJk2Umw2w
	09FqC6s7fETIaztD2AeEe11b7zYuCMyfxxbAitNJvXIa1+adZIUdtJU9izkIBb+cQU0IhqoD46i
	1CvFSFu57mR0dIkhmCF2MXYcyeqiDg5vVZ9N+f5BcNs6rZXil3CvxwYLOqPtP2Cs43NvvjuhvTY
	RRnfzF97FPo4CyxeDk4dV1viB9fZXTFUk09WZLbN5C64v8DG6e4zxF6fErduU3vXvqgELCg8DBG
	J0kfQWNcI+bj/3htA+S3+reh0JqVvnuWIG3/PwPTRzroaQlfKALBl6n7TNadNIQWItPLvRp7AWl
	mwjxvBZHTGNE/uXeu/iDKBkpydaWQFSbRxy2mc+YnwPaQAXXRfyshZs7Ypisp7d6c75WrrRMY/E
	PUiuz2SIgh6ERqlm83s1YcdNEtRmxwGntVt4JQD3bGrJeduK0zQOAqDPlzl3akHA0G5Q==
X-Received: by 2002:a05:600c:a009:b0:483:b505:9db4 with SMTP id 5b1f17b1804b1-483c3df45e6mr36295685e9.31.1772106698894;
        Thu, 26 Feb 2026 03:51:38 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 11/14] xen/riscv: implement reprogram_timer() via SBI
Date: Thu, 26 Feb 2026 12:51:11 +0100
Message-ID: <bc30f09d04ae40d84b1b790cc6ca7fba7a6008a8.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Implement reprogram_timer() on RISC-V using the standard SBI timer call.

The privileged architecture only defines machine-mode timer interrupts
(using mtime/mtimecmp). Therefore, timer services for S/HS/VS mode must
be provided by M-mode via SBI calls. SSTC (Supervisor-mode Timer Control)
is optional and is not supported on the boards available to me, so the
only viable approach today is to program the timer through SBI.

reprogram_timer() enables/disables the supervisor timer interrupt and
programs the next timer deadline using sbi_set_timer(). If the SBI call
fails, the code panics, because sbi_set_timer() is expected to return
either 0 or -ENOSUPP (this has been stable from early OpenSBI versions to
the latest ones). The SBI spec does not define a standard negative error
code for this call, and without SSTC there is no alternative method to
program the timer, so the SBI timer call must be available.

reprogram_timer() currently returns int for compatibility with the
existing prototype. While it might be cleaner to return bool, keeping the
existing signature avoids premature changes in case sbi_set_timer() ever
needs to return other values (based on which we could try to avoid
panic-ing) in the future.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v5 - v6:
 - Nothing changed. Only rebase.
---
Changes in v4:
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Correct the comments in reprogram_timer().
 - Move enablement of timer interrupt after sbi_set_timer() to avoid
   potentially receiving a timer interrupt between these 2 operations.
---
Changes in v2:
 - Add TODO comment above sbi_set_timer() call.
 - Update the commit message.
---
 xen/arch/riscv/stubs.c |  5 -----
 xen/arch/riscv/time.c  | 43 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index eedf8bf9350a..2f3a0ce76af9 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -21,11 +21,6 @@ nodemask_t __read_mostly node_online_map = { { [0] = 1UL } };
 
 /* time.c */
 
-int reprogram_timer(s_time_t timeout)
-{
-    BUG_ON("unimplemented");
-}
-
 void send_timer_event(struct vcpu *v)
 {
     BUG_ON("unimplemented");
diff --git a/xen/arch/riscv/time.c b/xen/arch/riscv/time.c
index 2c7af0a5d63b..7efa76fdbcb1 100644
--- a/xen/arch/riscv/time.c
+++ b/xen/arch/riscv/time.c
@@ -7,6 +7,9 @@
 #include <xen/time.h>
 #include <xen/types.h>
 
+#include <asm/csr.h>
+#include <asm/sbi.h>
+
 unsigned long __ro_after_init cpu_khz; /* CPU clock frequency in kHz. */
 uint64_t __ro_after_init boot_clock_cycles;
 
@@ -40,6 +43,46 @@ static void __init preinit_dt_xen_time(void)
     cpu_khz = rate / 1000;
 }
 
+int reprogram_timer(s_time_t timeout)
+{
+    uint64_t deadline, now;
+    int rc;
+
+    if ( timeout == 0 )
+    {
+        /* Disable timer interrupt */
+        csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+        return 1;
+    }
+
+    deadline = ns_to_ticks(timeout) + boot_clock_cycles;
+    now = get_cycles();
+    if ( deadline <= now )
+        return 0;
+
+    /*
+     * TODO: When the SSTC extension is supported, it would be preferable to
+     *       use the supervisor timer registers directly here for better
+     *       performance, since an SBI call and mode switch would no longer
+     *       be required.
+     *
+     *       This would also reduce reliance on a specific SBI implementation.
+     *       For example, it is not ideal to panic() if sbi_set_timer() returns
+     *       a non-zero value. Currently it can return 0 or -ENOSUPP, and
+     *       without SSTC we still need an implementation because only the
+     *       M-mode timer is available, and it can only be programmed in
+     *       M-mode.
+     */
+    if ( (rc = sbi_set_timer(deadline)) )
+        panic("%s: timer wasn't set because: %d\n", __func__, rc);
+
+    /* Enable timer interrupt */
+    csr_set(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    return 1;
+}
+
 void __init preinit_xen_time(void)
 {
     if ( acpi_disabled )
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241468.1542590 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZuB-0000hs-S6; Thu, 26 Feb 2026 11:51:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241468.1542590; Thu, 26 Feb 2026 11:51: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 1vvZuB-0000go-MK; Thu, 26 Feb 2026 11:51:43 +0000
Received: by outflank-mailman (input) for mailman id 1241468;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZuA-0006EH-Gy
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:42 +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 83963750-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:41 +0100 (CET)
Received: by mail-wm1-x32c.google.com with SMTP id
 5b1f17b1804b1-4806cc07ce7so9144315e9.1
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:41 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:39 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 83963750-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106700; x=1772711500; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZhCTeImiDeyxrLk5y++AZ4LSK5JxMOQ72SQ4iMIQuPE=;
        b=F/EEqUfcybXwb2hgT9H4Ld3nXSWhkvMO1Gi6J75HHGasOF/Ut4Vgg4GRqnxWFUGpu3
         tMeOeQbRKLNkjWUvTccYmosum6x9fmyBwj93MsvnqS5SxMmcbvoyPzT0SW80M6PAXD4L
         tzb50ckOPqe0A8YR1JSRMiuk0o7a87W0riqn7KrDAFwmIJJ/nAzMmqxeakN3cA2nfgRj
         if1/92uW283t3oKwCsK2ACFGSPZpb0tPjZ2dardPrSwk4HRl1pN1m2vn+Pr+orgzG4iy
         Dy36eUGbge3Sb/83DQdfaJK/l2QNc19IwBGlud7E/JYdXvqSzbc6br2tgW3ik24hl22+
         XODg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106700; x=1772711500;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=ZhCTeImiDeyxrLk5y++AZ4LSK5JxMOQ72SQ4iMIQuPE=;
        b=fiFBuYwNy9iYmdXNuGRw6gaWMoLzsqVvhLJ88Lqryob4N7qaShwxT+mMa7Em8mS7dO
         lohILxN1zt5d59z0/HP0CbOQi3vJpdWNUy+65fv05OGsq1chfIBfY2I7t56orgdmANTq
         nEjQbyqxGFtYijldf38zpMuCywijb5ow5ZAXX19l7jSIG/JLB47hDS9qjXwqIvrmAaNW
         N3pR8YnV/BAAVCZrdiBBWKdEbHgPlAqBVz9MLYCsGWFNQTucHmzJvjhHUTLCvPfP52j2
         PEivGlyFUZNG9lzbTR05PCt/8Y6nTx4g2ybG1yiqBSWELvJsp0wKKLYt43iLRuDKo7WO
         +4Fg==
X-Gm-Message-State: AOJu0Yw0P0jR45zL/l+M/WM/11cyqQ5EDFaRKKJijVAE3D5Fj+jq2C+l
	cWFjBhtMQvTRjOf56nAE2gRZMMlWZPv+nqLitZEFvRM0FxdTrt97gC9PFMN7eQ==
X-Gm-Gg: ATEYQzzlIaA0dpEIOkm5wbjA+4W8+mE4G+UEdFjBcMwhiJOzGrK+PNklnsByU2uSe60
	XrZYIvElAaojFhjDa5e8YCKWW/ru+VyeodABM0YBQuJ3KIPSGV7HgH2BAK9qCHkLYz4vdwoXlaF
	vWWdrip/aYhm7VuJ5mf3gagaRjjkOgTXy+fkn5HdCCkbAtOfD+j4vbnrdea7rsOyQXjs9V6uu/j
	Oztdy68KYs1+BVU1swsZrQRsNzogds5Tzjlbp0uXqnNqaT70ag3dsYYmBcmIjfaYMTIaZ+o/7Xg
	67jQVsahYapxWdNSPQtKlsunjACTc0jl4vVXhaP6JqOYPASPh+a4Ah3wpaXyomNtVXK9ngbtusl
	UEsOV+S+KXFPssxKnjh/ZiNaIFvjeBmrKm9jWC+bhWHCdY3kT0uxnBG/KLR13UwnnL3JcAJBPNL
	78AzMEGIsc5MIYIPW6+dffkxYKktDZyIxrMPDXvx61OabhDCV7W2LEmOz/lnSu82HSpw==
X-Received: by 2002:a05:600c:a009:b0:483:b505:9db4 with SMTP id 5b1f17b1804b1-483c3df45e6mr36296915e9.31.1772106700147;
        Thu, 26 Feb 2026 03:51:40 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 12/14] xen/riscv: handle hypervisor timer interrupts
Date: Thu, 26 Feb 2026 12:51:12 +0100
Message-ID: <d02c9e9e190e17af1e176fdd9b117a9653c293cb.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce timer_interrupt() to process IRQ_S_TIMER interrupts.
The handler disables further timer interrupts by clearing
SIE.STIE and raises TIMER_SOFTIRQ so the generic timer subsystem
can perform its processing.

Update do_trap() to dispatch IRQ_S_TIMER to this new handler.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v4-v6:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Drop cause argument of timer_interrupt() as it isn't used inside
   the function and anyway it is pretty clear what is the cause inside
   timer_interrupt().
---
 xen/arch/riscv/traps.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index 244264c92a79..326f2be62823 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -10,6 +10,7 @@
 #include <xen/lib.h>
 #include <xen/nospec.h>
 #include <xen/sched.h>
+#include <xen/softirq.h>
 
 #include <asm/cpufeature.h>
 #include <asm/intc.h>
@@ -180,6 +181,15 @@ static void check_for_pcpu_work(void)
     p2m_handle_vmenter();
 }
 
+static void timer_interrupt(void)
+{
+    /* Disable the timer to avoid more interrupts */
+    csr_clear(CSR_SIE, BIT(IRQ_S_TIMER, UL));
+
+    /* Signal the generic timer code to do its work */
+    raise_softirq(TIMER_SOFTIRQ);
+}
+
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
     register_t pc = cpu_regs->sepc;
@@ -221,6 +231,10 @@ void do_trap(struct cpu_user_regs *cpu_regs)
                 intc_handle_external_irqs(cpu_regs);
                 break;
 
+            case IRQ_S_TIMER:
+                timer_interrupt();
+                break;
+
             default:
                 intr_handled = false;
                 break;
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:51:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:51:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241470.1542601 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvZuD-00017Q-C3; Thu, 26 Feb 2026 11:51:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241470.1542601; Thu, 26 Feb 2026 11:51: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 1vvZuD-00016W-7L; Thu, 26 Feb 2026 11:51:45 +0000
Received: by outflank-mailman (input) for mailman id 1241470;
 Thu, 26 Feb 2026 11:51: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZuB-0006EH-Vt
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:43 +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 84475c12-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:42 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-48336a6e932so4567215e9.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:42 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84475c12-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106701; x=1772711501; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EaQEBFzhV9Xkezeed5Ppkja6vI/PHHkt+nSsCnYzAYc=;
        b=Lh+wHAjidi/c6fhvmhBenkQmZCrY7dJf+E6qWE85oxqp/GAlwjF4Axq54RxctUQ3Ro
         ZqkRNxPjgn17XHzeKGOxdJc8hPzDhOUln1bCbcZPhN2+ZxPgdqACE237KJ7JGVNOGoLn
         4hxHa0LdyPTHtycsaRlIpOG6V5r0+F3Lst8wKunK3ngheQ0Z5FYnH7E684tiGnnZS8Z6
         qpDojKk/GFG567kFw+0hmk6qukWqcgYkfirlJMXFo8FdW6yAjZ2xkWOhGOTM5dtYVnhK
         YVU7A65smtY7263NV3oTLy88uVFucdIvL3FU0L3trvpOaXotudbfyReip8XU+hB+900m
         PjbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106701; x=1772711501;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=EaQEBFzhV9Xkezeed5Ppkja6vI/PHHkt+nSsCnYzAYc=;
        b=ZWExT6PVnh2Kfi+NLOsah7XjUoNsXF/hXM0C6iDJT92B+Pahgt5pH4b5NiGu71YWmU
         FOpee86pBhjmN+zJA72zJGB14ux7XZkp7XnOyE8I5Be1nhhGD75PR+nuKpPyzF2YYPZQ
         yIGDHzIHdj6GQSncfrkLTgDEPp5cG76rdaZLFEiXvDH7JNlbWYrmokRjDZz04+wp9KtA
         56F38BfR6LUe8+ivEN8YosytDoCMr9cSuObRODvS2lTjYCQm75VpQ+98EYsfcnj3Za5F
         68E3mWZv+7gP6xyLS5AjT4P6qI3fLzaaxrcgjTZ03V2g8/fF3lhk3t0yjOtM0loDTfBy
         7YQQ==
X-Gm-Message-State: AOJu0YzZpTzA1WdnYZzlAnNhYQXFo1VhlGAAdY5/PFNpsRstX4KDD9W+
	EeqgixRJX4Q6vmUcSEoqwEriAO99jAuOYiF3YXT4wFucbiir+wZqVdZ4BhcsiA==
X-Gm-Gg: ATEYQzyxt9KAl4OII3X68gTGu7ox14ggxW+F5ZJtYvrYwi8CE2fZnNnFtHMeUf3rSMc
	rMjA+oRHPbuO0yE8iwwaD8a1J2L6Xz3xvxr6PFcZsZbBr4EzSQZrtQQtwge9rKlpA2mR5zheh9i
	Cmu3JFlDQLJG9R5cJt7UH4yQVrOALVrTkIGbc5Yb+s5LqH13Gy69GQc0u19+44+xfXjcSb97G47
	gk+FW1ftijfJVDgOosPK6gmlX+HUagsAKCk/RZJbxZ3YmMQy9WAi8Vjr1KXUnAAWdS/DKkR/zuR
	VTxQEz1h2WSWBNO7DC+5In8y5odqBoWTDTgfPm1SHPgRJ/yx1UJFICDl1yim2yiSJIEPKyEZ4us
	kagi1FgxV2c6GXCKtl2HCMU3iwxZZODAbFYsVmuM7C4EtPR7BD9SBg3HmOhWQPi6HDsJsb1ccI0
	nwTUJUPyzBZr6m4j3g1w3i+ZAnAsz8SNtAyq5cqNKnj6q+j9R9UU+xfodZcI3KuMVDpdOQR61pB
	zZEzaYQ
X-Received: by 2002:a05:600c:8708:b0:483:a922:2e8d with SMTP id 5b1f17b1804b1-483c216ab55mr57972105e9.4.1772106701281;
        Thu, 26 Feb 2026 03:51:41 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 13/14] xen/riscv: init tasklet subsystem
Date: Thu, 26 Feb 2026 12:51:13 +0100
Message-ID: <f7841c1679225077b4f294dc1afa97fdec1e60f4.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

As the tasklet subsystem is now initialized, it is necessary to implement
sync_local_execstate(), since it is invoked when something calls
tasklet_softirq_action(), which is registered in tasklet_subsys_init().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6:
 - Nothing changed. Only rebase.
---
Changes in v5:
 - It was something wrong with prev. rebase. So fix that and move
   removing of sync_local_execstate() and sync_vcpu_execstate() to the
   next patch.
---
Changes in v4:
 - Nothing changed. Only rebase.
---
Changes in v3:
 - add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v2:
 - Update the commit message.
 - Move implementation of sync_vcpu_execstate() to separate commit
   as it doesn't connect to tasklet subsystem.
---
 xen/arch/riscv/setup.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/xen/arch/riscv/setup.c b/xen/arch/riscv/setup.c
index bca6ca09eddd..cae49bb29626 100644
--- a/xen/arch/riscv/setup.c
+++ b/xen/arch/riscv/setup.c
@@ -12,6 +12,7 @@
 #include <xen/serial.h>
 #include <xen/shutdown.h>
 #include <xen/smp.h>
+#include <xen/tasklet.h>
 #include <xen/timer.h>
 #include <xen/vmap.h>
 #include <xen/xvmalloc.h>
@@ -133,6 +134,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
         panic("Booting using ACPI isn't supported\n");
     }
 
+    tasklet_subsys_init();
+
     init_IRQ();
 
     riscv_fill_hwcap();
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 11:58:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 11:58:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241586.1542613 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vva0D-0005Ky-Ap; Thu, 26 Feb 2026 11:57:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241586.1542613; Thu, 26 Feb 2026 11:57: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 1vva0D-0005Kr-8I; Thu, 26 Feb 2026 11:57:57 +0000
Received: by outflank-mailman (input) for mailman id 1241586;
 Thu, 26 Feb 2026 11:57: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=1Tft=A6=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vvZuD-0006EH-2R
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 11:51:45 +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 84fdef89-1309-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 12:51:43 +0100 (CET)
Received: by mail-wm1-x329.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so7372105e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 03:51:43 -0800 (PST)
Received: from fedora (user-109-243-67-101.play-internet.pl. [109.243.67.101])
 by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd68826asm220079295e9.0.2026.02.26.03.51.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 26 Feb 2026 03:51:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 84fdef89-1309-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772106702; x=1772711502; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=pu3ONN1y8CnzVPPPqwVx01znDwKu8x6AESEnaYZMJ9s=;
        b=Q55DSSMxraHRy7VcTNID2XI8TY6x676cdTOzNAOP5OHe7mZAsfjVKhIq2qvfXQWnON
         IM/KYhvuy2xXxl4ON4o3Kj2Rekkw3cwtDSGZ6oNg7F8XcWiPAbmQA3yBarrsjR1GKq7W
         su0EnUalICO7LpgpHyPrVK8gUaq/5S+5yPMxwmM3H4395UVtpUdbrs7IrRTMvbC0YYdY
         EYUR/r9DDAjE/tcIkC7kovuc4zOx9o/z/Czt7uT7PkFQZm6SzSDw/dfzFvsH5WlfQQbB
         A3KBcSxg59aybm3WBt3g8jMJGzkOc+YRpHRCfFmYb/CI7r63BW4MYVR8I++fn8ge7OcH
         oZJg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772106702; x=1772711502;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=pu3ONN1y8CnzVPPPqwVx01znDwKu8x6AESEnaYZMJ9s=;
        b=qBOeUKxZpjHBGYzGFQD515EAN6sSXznSpotaausb0b+HuHdnTcgUwFnOJe5+05a5hK
         d8x4+pUaAmJ8+qTzAJE3L5oQzt6U0aNqaoQmurrjtwdxFwO+kUQs1TC5Zmmw47Eo0qGM
         +9RZs05KobGecxNPrWDSdqO0YMeS6vRKa70pYzRMxg1vU4uTYg3RBaL/zJpmqfv8ZkKz
         jMeDguVkKpCkktxZio5YfIQanr0wCjkBYGltb1bnLacBb9jDUhtuIfBLBt6zXhLGtL5Z
         4Gjb+KZLEC2UUuKDdMDVCypgGEdYifqBMNt+fvbC/QBIviT2Y7wUlYzXN7oyRznXtLKI
         VOLA==
X-Gm-Message-State: AOJu0Yy7tYO8OsoN/W0GPJX6l4QA+GRBj7hHZdrr8MkyyT8FeK/ABrRj
	TsaPlFKgUcL6FnxKiFV8XJr1ljDgBJm6hEKcSa+wqOgrqH4ZQxqjjDBXyXmclg==
X-Gm-Gg: ATEYQzyc4ywa/5ZfVE704iMmmtv/n27V7JSxwh0fXxcYbSfr3do9KvZvEis2NKmjZcj
	l8zuynT5haoGWNSUOwngHujeILq1oPDLG1CsfwEZfo2vG+PwL+mpRoKk/VfOGAm5HO8UDwJNFW8
	+PU+T7ZlzLxEb1Zn5e/p9O/jkn0Wq3DeNW/dPBFOxpAEncmUVdR1Ly9DpLktOVVolyE2FSGG99v
	NfnrzKAzN1WkxnTqJVxEiDiMRkUcD5ARCA7HnQ6PMpvIdr6KTZ1sfm61CU7D3PEauyzCt1rlmGC
	Y/jbmj5RsNVtkjcg9GjV3pdD7W0JRGMZl/tKkymyxhd2iwyhEUZc6x0GQxGx55mBgodzhqA46dd
	fBGOivSxJvnBiHlYeAKJDE9PBnUqxWnLln5KiRTzS+nHJpdhSM1f+qiM6R/SaEZR3KXWz2E/M6a
	TBNOPGn7yE9dJlC5md3P93atDShloL4h/GdZOKwdPxf2hhTRzRTxMmzP4mkDcMBF9ZZat+yw==
X-Received: by 2002:a05:600c:8183:b0:477:9dc1:b706 with SMTP id 5b1f17b1804b1-483a962e3d4mr287053045e9.19.1772106702486;
        Thu, 26 Feb 2026 03:51:42 -0800 (PST)
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Romain Caritey <Romain.Caritey@microchip.com>,
	Oleksii Kurochko <oleksii.kurochko@gmail.com>,
	Alistair Francis <alistair.francis@wdc.com>,
	Connor Davis <connojdavis@gmail.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v6 14/14] xen/riscv: implement sync_vcpu_execstate()
Date: Thu, 26 Feb 2026 12:51:14 +0100
Message-ID: <9572c925ccbed3fa391b3a0c9d8eddad87c49ab7.1772016457.git.oleksii.kurochko@gmail.com>
X-Mailer: git-send-email 2.53.0
In-Reply-To: <cover.1772016457.git.oleksii.kurochko@gmail.com>
References: <cover.1772016457.git.oleksii.kurochko@gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

The scheduler may call this function to force synchronization of given
vCPU's state. RISC-V does not support lazy context switching, so nothing
is done in sync_vcpu_execstate() and sync_local_execstate().

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Changes in v6:
 - Nothing changed. Only rebase.
---
Changes in v5:
 - It was something wrong with prev. rebase. Drop stubs for
   sync_local_execstate() and sync_vcpu_execstate() in this patch.
---
Changes in v4:
 - Drop footer as [PATCH] sched: move vCPU exec state barriers
   is merged to upstream/staging.
 - Add Acked-by: Jan Beulich <jbeulich@suse.com>.
---
Changes in v3:
 - Align sync_vcpu_execstate() with patch:
     [PATCH] sched: move vCPU exec state barriers
---
Changes in v2:
 - New patch.
---
 xen/arch/riscv/domain.c | 10 ++++++++++
 xen/arch/riscv/stubs.c  | 10 ----------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/xen/arch/riscv/domain.c b/xen/arch/riscv/domain.c
index fda8cff90f6a..6e852d3b71c2 100644
--- a/xen/arch/riscv/domain.c
+++ b/xen/arch/riscv/domain.c
@@ -279,6 +279,16 @@ void vcpu_kick(struct vcpu *v)
     }
 }
 
+void sync_local_execstate(void)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
+void sync_vcpu_execstate(struct vcpu *v)
+{
+    /* Nothing to do -- no lazy switching */
+}
+
 static void __init __maybe_unused build_assertions(void)
 {
     /*
diff --git a/xen/arch/riscv/stubs.c b/xen/arch/riscv/stubs.c
index 2f3a0ce76af9..acbb5b9123ea 100644
--- a/xen/arch/riscv/stubs.c
+++ b/xen/arch/riscv/stubs.c
@@ -91,16 +91,6 @@ void continue_running(struct vcpu *same)
     BUG_ON("unimplemented");
 }
 
-void sync_local_execstate(void)
-{
-    BUG_ON("unimplemented");
-}
-
-void sync_vcpu_execstate(struct vcpu *v)
-{
-    BUG_ON("unimplemented");
-}
-
 void startup_cpu_idle_loop(void)
 {
     BUG_ON("unimplemented");
-- 
2.53.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 13:17:39 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 13:17:39 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241651.1542624 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbF7-0007NO-2r; Thu, 26 Feb 2026 13:17:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241651.1542624; Thu, 26 Feb 2026 13:17:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbF6-0007NH-W6; Thu, 26 Feb 2026 13:17:24 +0000
Received: by outflank-mailman (input) for mailman id 1241651;
 Thu, 26 Feb 2026 13:17: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=jXad=A6=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vvbF5-0007NB-AQ
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 13:17:23 +0000
Received: from fhigh-a4-smtp.messagingengine.com
 (fhigh-a4-smtp.messagingengine.com [103.168.172.155])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 7af84e21-1315-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 14:17:21 +0100 (CET)
Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45])
 by mailfhigh.phl.internal (Postfix) with ESMTP id 6FC8B1400245;
 Thu, 26 Feb 2026 08:17:19 -0500 (EST)
Received: from phl-frontend-04 ([10.202.2.163])
 by phl-compute-05.internal (MEProxy); Thu, 26 Feb 2026 08:17:19 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 26 Feb 2026 08:17:18 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7af84e21-1315-11f1-b164-2bf370ae4941
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=1772111839; x=1772198239; bh=Ib
	gJiZvMFElQdgUJ1R9/r3z/cX+OYkxvGvGjGUuovvQ=; b=MsJhi0mQw75+f2ORHX
	Ky5rw46jxiN4tiLzdzfyAScaaITl8pdWgvHdlUlaBxN/5HteF6R+HV8HtSs0ltbS
	oGSvBQyn/JAfccK0bMBhHcJFvaTmVyy+jaCrJtrC99akF/4gUvWkOBSjEz7LkeFW
	eCY8QmHV4v/ywL6gHrlYCGOydgoWYcKNHVt0LGEHLK7BQWJy39uYdXKUMqyvrSMl
	HQ+8CtdWfxq6g5NIH4m74ahRsJrS91Vd2YmO9dlDQ2j17JmglZQIVJ3+h8cANozL
	iUHejY0rqB9GJMlfVmU/GfSDKEiuV1qqV/VcgwSzLQuaEPWeWZGbkb15UO6/9DhA
	WkQA==
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=1772111839; x=
	1772198239; bh=IbgJiZvMFElQdgUJ1R9/r3z/cX+OYkxvGvGjGUuovvQ=; b=A
	slgqvfDrK1O/PIcvC7ikWAR4a0wuzfkBeYP5uezU0nvvTq3U3l/SbByUxWUv2kIg
	F4ds0TcXpYZTU3MLu8naihUMFO3VkO3lIscyv90MCGRV7Jki2qo9JZm4jFg4x4qS
	Zs2qBchCmnWJUcv/E8M+uZEltaTELRXkAjEGX0BTfbfAYibcDIlqGxBhMyYwl5OT
	EYmSd+ZwBIM9lhDDgyGRlYeGKKlqluzrkqMmbfRRGm6UlSxtKXth+Ictxjq2oEEN
	JZl/Fl4FWmh/HlJjAx8K36YFiMVsEtiLtV2V/lR8CkuE5rwKrXiHaOaRbj3O4d6A
	xA9INfnATcq993BgRzmpg==
X-ME-Sender: <xms:30egaXp4KwwYBmdP0S9g9zekR-QtaFyTF2YC3C-wl8FAIutC0YCNYQ>
    <xme:30egaZHfCctkTh3Qlwwsf75gqDG_GE5U8KkW4x5EhG_y-TZa4upKMlJWE24NAmp0w
    J84UN2A4zIttnC8MFmhzQhN2LCMQQOTTS-7AD7l4rEAh-xUDg>
X-ME-Received: <xmr:30egaRl_Ol5j5T1IB-bQJlPnhs05vs5i5skZXmDrGm6kNxOT0n-nuvM2SxtWK3wk9EGvJ8y8WNp6Hh3oSZAE5Z5wxhmIeYINx7c>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvgeeiudegucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkgggtugesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcuofgr
    rhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhephfetuefhiefg
    tddtlefggffggeevhedtvdefffeugfeiieeiheefteefgefggeejnecuffhomhgrihhnpe
    hgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr
    ihhlfhhrohhmpehmrghrmhgrrhgvkhesihhnvhhishhisghlvghthhhinhhgshhlrggsrd
    gtohhmpdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthho
    peigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhjvggtthdrohhrghdprhgtph
    htthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpthhtohepsghorhhishdrohhs
    thhrohhvshhkhiesohhrrggtlhgvrdgtohhm
X-ME-Proxy: <xmx:30egaUkX7266jOsapAP3nFk1eT5nixDyIegQncg131y08aLj6ZkN0w>
    <xmx:30egaav7ZTrMC2IoTs1T48Q3wfraEJwbrNvUKc3ikVkD0YIq1TtkxQ>
    <xmx:30egaflKvdMd1vFpwK7_OUkbR6fkrgBkInFApygJ-gkYyLC4IYkGAg>
    <xmx:30egadurU7KjqXVG_ajxp7ejXMJW8kO3624gr2w2bM6bpvfm0BPzjQ>
    <xmx:30egac6xTMx72FUnr50nQL-C58N_gmayFHb7LN2iyDtR_v3EAcGZ8exi>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 26 Feb 2026 14:17:16 +0100
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>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
Message-ID: <aaBH3EAchUwKhrUA@mail-itl>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="jb9O67x7UBu89+m4"
Content-Disposition: inline


--jb9O67x7UBu89+m4
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 26 Feb 2026 14:17:16 +0100
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>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1

Hi,

When testing Linux 7.0-rc1 in PV dom0, I hit the following panic
sometimes:

[  436.849614] ------------[ cut here ]------------
[  436.849669] kernel BUG at arch/x86/include/asm/xen/hypervisor.h:78!
[  436.849693] Oops: invalid opcode: 0000 [#1] SMP NOPTI
[  436.849710] CPU: 3 UID: 0 PID: 4021 Comm: kworker/u25:1 Not tainted 7.0.=
0-0.rc1.1.qubes.1001.fc41.x86_64 #1 PREEMPT(full)=20
[  436.849729] Hardware name: Star Labs StarBook/StarBook, BIOS 8.97 10/03/=
2023
[  436.849743] Workqueue: i915_flip intel_atomic_commit_work [i915]
[  436.850226] RIP: e030:xen_enter_lazy_mmu+0x24/0x30
[  436.850245] Code: 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 65 8b 05 =
b8 e5 02 03 85 c0 75 10 65 c7 05 a9 e5 02 03 01 00 00 00 c3 cc cc cc cc <0f=
> 0b 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90
[  436.850270] RSP: e02b:ffffc90045727a68 EFLAGS: 00010202
[  436.850283] RAX: 0000000000000001 RBX: ffff8881042fa6d0 RCX: 000fffffffe=
00000
[  436.850296] RDX: 0000000000000001 RSI: ffff88810a5a2980 RDI: 00000000000=
00000
[  436.850308] RBP: ffffc90049eda000 R08: ffffc90049edc000 R09: ffffc90049e=
dc000
[  436.850320] R10: ffffc90049edc000 R11: ffffc90049edbfff R12: ffffc90049e=
dc000
[  436.850332] R13: ffffc90045727bb0 R14: ffffc90045727b28 R15: 80000000000=
0006b
[  436.850356] FS:  0000000000000000(0000) GS:ffff888201e6e000(0000) knlGS:=
0000000000000000
[  436.850371] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[  436.850383] CR2: 00006543dbade250 CR3: 0000000115ef1000 CR4: 00000000000=
50660
[  436.850401] Call Trace:
[  436.850410]  <TASK>
[  436.850420]  vmap_pages_pud_range+0x47c/0x530
[  436.850439]  vmap_small_pages_range_noflush+0x1f1/0x2b0
[  436.850451]  ? __get_vm_area_node+0x10a/0x170
[  436.850465]  vmap+0x79/0xd0
[  436.850476]  i915_gem_object_map_page+0x13b/0x210 [i915]
[  436.850812]  i915_gem_object_pin_map+0x1e2/0x210 [i915]
[  436.851123]  i915_gem_object_pin_map_unlocked+0x2d/0xa0 [i915]
[  436.851424]  intel_dsb_buffer_create+0xed/0x1a0 [i915]
[  436.851778]  intel_dsb_prepare+0xca/0x1a0 [i915]
[  436.852110]  intel_atomic_dsb_finish+0x92/0x350 [i915]
[  436.852456]  intel_atomic_commit_tail+0x326/0xd40 [i915]
[  436.852769]  process_one_work+0x18d/0x380
[  436.852779]  worker_thread+0x196/0x300
[  436.852787]  ? __pfx_worker_thread+0x10/0x10
[  436.852796]  kthread+0xe3/0x120
[  436.852805]  ? __pfx_kthread+0x10/0x10
[  436.852815]  ret_from_fork+0x19e/0x260
[  436.852824]  ? __pfx_kthread+0x10/0x10
[  436.852832]  ret_from_fork_asm+0x1a/0x30
[  436.852842]  </TASK>
[  436.852847] Modules linked in: snd_seq_dummy snd_hrtimer snd_hda_codec_i=
ntelhdmi snd_hda_codec_hdmi snd_hda_codec_alc269 snd_hda_codec_realtek_lib =
snd_hda_scodec_component snd_hda_codec_generic snd_hda_intel snd_sof_pci_in=
tel_tgl snd_sof_pci_intel_cnl snd_sof_intel_hda_generic soundwire_intel snd=
_sof_intel_hda_sdw_bpt snd_sof_intel_hda_common snd_soc_hdac_hda snd_sof_in=
tel_hda_mlink snd_sof_intel_hda soundwire_cadence snd_sof_pci snd_sof_xtens=
a_dsp snd_sof snd_sof_utils snd_soc_acpi_intel_match snd_soc_acpi_intel_sdc=
a_quirks soundwire_generic_allocation snd_soc_sdw_utils snd_soc_acpi crc8 i=
ntel_rapl_msr soundwire_bus intel_rapl_common snd_soc_sdca snd_soc_avs snd_=
soc_hda_codec snd_hda_ext_core snd_hda_codec vfat intel_uncore_frequency_co=
mmon fat snd_hda_core snd_intel_dspcfg snd_intel_sdw_acpi snd_hwdep intel_p=
owerclamp snd_soc_core iwlwifi snd_compress spi_nor iTCO_wdt ac97_bus intel=
_pmc_bxt ee1004 mtd snd_pcm_dmaengine snd_seq cfg80211 snd_seq_device pcspk=
r spi_intel_pci snd_pcm rfkill spi_intel snd_timer snd
[  436.852939]  i2c_i801 soundcore i2c_smbus idma64 intel_pmc_core pmt_tele=
metry pmt_discovery pmt_class intel_hid intel_pmc_ssram_telemetry intel_scu=
_pltdrv sparse_keymap joydev loop fuse xenfs nfnetlink vsock_loopback vmw_v=
sock_virtio_transport_common vmw_vsock_vmci_transport vsock zram vmw_vmci l=
z4hc_compress lz4_compress dm_thin_pool dm_persistent_data dm_bio_prison dm=
_crypt xe drm_ttm_helper drm_suballoc_helper gpu_sched drm_gpuvm drm_exec d=
rm_gpusvm_helper i915 i2c_algo_bit drm_buddy hid_multitouch i2c_hid_acpi gh=
ash_clmulni_intel video nvme wmi ttm i2c_hid nvme_core nvme_keyring drm_dis=
play_helper nvme_auth xhci_pci pinctrl_tigerlake thunderbolt hkdf cec xhci_=
hcd intel_vsec serio_raw xen_acpi_processor xen_privcmd xen_pciback xen_blk=
back xen_gntalloc xen_gntdev xen_evtchn scsi_dh_rdac scsi_dh_emc scsi_dh_al=
ua uinput i2c_dev
[  436.853183] ---[ end trace 0000000000000000 ]---

or this:

[  548.736884] ------------[ cut here ]------------
[  548.736907] kernel BUG at arch/x86/include/asm/xen/hypervisor.h:85!
[  548.736923] Oops: invalid opcode: 0000 [#1] SMP NOPTI
[  548.736935] CPU: 0 UID: 0 PID: 206 Comm: kworker/0:2 Not tainted 7.0.0-0=
=2Erc1.1.qubes.1001.fc41.x86_64 #1 PREEMPT(full)=20
[  548.736949] Hardware name: LENOVO 2347A45/2347A45, BIOS CBET4000 Nitroke=
y-v0.2.0-2608-ga649597 01/01/1970
[  548.736962] Workqueue: events delayed_vfree_work
[  548.736976] RIP: e030:xen_leave_lazy_mmu+0x44/0x50
[  548.736989] Code: 02 03 83 f8 01 75 23 65 c7 05 6c e4 02 03 00 00 00 00 =
65 ff 0d 7d b8 02 03 74 05 c3 cc cc cc cc e8 61 5d fd ff c3 cc cc cc cc <0f=
> 0b 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90
[  548.737010] RSP: e02b:ffffc90040607cf0 EFLAGS: 00010297
[  548.737018] RAX: 0000000000000000 RBX: ffff888164a70408 RCX: 00000000000=
00000
[  548.737029] RDX: 0000000000000000 RSI: 000ffffffffff000 RDI: ffff8881069=
c0000
[  548.737039] RBP: ffffc90049681000 R08: ffffc90049681000 R09: 00000000000=
00027
[  548.737050] R10: 0000000000000027 R11: fefefefefefefeff R12: ffffc900496=
81000
[  548.737060] R13: ffff8881002fd258 R14: 0000000000000000 R15: ffffc900406=
07dac
[  548.737079] FS:  0000000000000000(0000) GS:ffff8881f88ee000(0000) knlGS:=
0000000000000000
[  548.737090] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[  548.737099] CR2: 000055576c2e6058 CR3: 000000010d47b000 CR4: 00000000000=
50660
[  548.737115] Call Trace:
[  548.737123]  <TASK>
[  548.737128]  vunmap_pmd_range.isra.0+0x1f1/0x2e0
[  548.737142]  vunmap_p4d_range+0x17d/0x290
[  548.737151]  __vunmap_range_noflush+0x182/0x1d0
[  548.737161]  ? _raw_spin_unlock+0xe/0x30
[  548.737171]  remove_vm_area+0x40/0x70
[  548.737180]  vfree.part.0+0x1b/0x290
[  548.737189]  delayed_vfree_work+0x35/0x50
[  548.737198]  process_one_work+0x18d/0x380
[  548.737207]  worker_thread+0x196/0x300
[  548.737215]  ? __pfx_worker_thread+0x10/0x10
[  548.737224]  kthread+0xe3/0x120
[  548.737233]  ? __pfx_kthread+0x10/0x10
[  548.737242]  ret_from_fork+0x19e/0x260
[  548.737250]  ? __pfx_kthread+0x10/0x10
[  548.737258]  ret_from_fork_asm+0x1a/0x30
[  548.737269]  </TASK>
[  548.737274] Modules linked in: vfat fat snd_seq_dummy snd_hrtimer ath9k =
ath9k_common snd_hda_codec_intelhdmi snd_hda_codec_hdmi ath9k_hw snd_hda_co=
dec_alc269 snd_hda_codec_realtek_lib snd_hda_scodec_component snd_hda_codec=
_generic snd_hda_intel snd_hda_codec mac80211 snd_hda_core snd_intel_dspcfg=
 snd_intel_sdw_acpi snd_hwdep ath snd_seq snd_seq_device snd_ctl_led cfg802=
11 snd_pcm at24 thinkpad_acpi intel_rapl_msr i2c_i801 snd_timer sparse_keym=
ap iTCO_wdt intel_rapl_common platform_profile intel_powerclamp intel_pmc_b=
xt pcspkr i2c_smbus rfkill libarc4 snd soundcore mei_me e1000e mei joydev l=
pc_ich loop fuse xenfs nfnetlink vsock_loopback vmw_vsock_virtio_transport_=
common vmw_vsock_vmci_transport vsock zram vmw_vmci lz4hc_compress lz4_comp=
ress dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt i915 i2c_algo_b=
it drm_buddy ghash_clmulni_intel ttm sdhci_pci drm_display_helper sdhci_uhs=
2 sdhci video xhci_pci cqhci wmi cec xhci_hcd ehci_pci mmc_core ehci_hcd se=
rio_raw xen_acpi_processor xen_privcmd xen_pciback
[  548.737348]  xen_blkback xen_gntalloc xen_gntdev xen_evtchn scsi_dh_rdac=
 scsi_dh_emc scsi_dh_alua uinput i2c_dev
[  548.737469] ---[ end trace 0000000000000000 ]---

I don't have clear pattern when this happens, one was during host
suspend, but the other was during "normal" test run (starting/stopping
domUs and running stuff around them). Note also one of those is Intel
and the other AMD, so it isn't really hardware specific.

Slightly more details with links (especially serial0.txt in the logs
tab) at
https://github.com/QubesOS/qubes-linux-kernel/pull/662#issuecomment-3963326=
188

Any idea?

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

--jb9O67x7UBu89+m4
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmgR9wACgkQ24/THMrX
1yxg2Qf9G9DFswU80py2OBvlxjpk7noidBL8Lna/eR6vwCKW0whEfD4nSQdOTUci
JbYgN5e12asilIljv8JYzst5AyeCP1dvG3QYDglm3N/FEb6vUARFe27MRv9uOuC+
Ik6mFi494lnFHKl1rGegoOTuUvW/IvBQN0kcBE/QT+XfOX6UQ/mdIMR9/8cnVxR3
azfbWwUkzt1V37Xxwv5tVOXVW1LhvFDPFkEqUP4Tkv2xpNH71/3yCECjA0b5AGol
h38XDq7PAhX07e8dlSw9pFUMh3BXtSy7rQzPoMFqdn0jYkAyjpMOugkLPOJQuJYX
EQRAPeI/dgfSPcCJ3fhiq61XPSIPmQ==
=/ZBR
-----END PGP SIGNATURE-----

--jb9O67x7UBu89+m4--


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 13:21:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 13:21:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241661.1542639 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbJE-0000Vb-SA; Thu, 26 Feb 2026 13:21:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241661.1542639; Thu, 26 Feb 2026 13: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 1vvbJE-0000UE-LR; Thu, 26 Feb 2026 13:21:40 +0000
Received: by outflank-mailman (input) for mailman id 1241661;
 Thu, 26 Feb 2026 13:21: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=KVeQ=A6=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vvbJD-0000S3-LM
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 13:21:39 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 11f6616b-1316-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 14:21:34 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 2FF9A4281029;
 Thu, 26 Feb 2026 08:21:13 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 11f6616b-1316-11f1-9ccf-f158ae23cfc8
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	teddy.astie@vates.tech,
	jbeulich@suse.com,
	jason.andryuk@amd.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v5 0/2] Virtual NMI
Date: Thu, 26 Feb 2026 13:20:41 +0000
Message-ID: <cover.1772105933.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Currently, the Xen hypervisor delivers NMIs to the guests using the Event
Injection mechanism. The Event Injection mechanism does not block the delivery
of subsequent NMIs. So, the Xen Hypervisor tracks the NMI delivery and its
completion (by intercepting the IRET instruction) before sending a new NMI.

With the 4th generation AMD EPYC, a hardware NMI virtualization support,
Virtual NMI (VNMI), is introduced.  The vNMI allows the hypervisor to inject
the NMI into the guest w/o using Event Injection mechanism. No need to track
the guest NMI and intercepting the IRET instruction.

NMI Virtualization support is indicated by CPUID Fn8000_000A_EDX[VNMI] = 1.[1]

NMI Virtualization is enabled by setting V_NMI_ENABLE (bit 26 in offset 60h
of the VMCB). Enabling NMI Virtualization requires the NMI intercept bit to
be set. An attempt to run a guest with V_NMI_ENABLE without the NMI intercept
bit set results in #VMEXIT(INVALID) [1]

Three new bits are added to the VMCB field at offset 60h to provide NMI
virtualization hardware support:

V_NMI(11): Indicates whether a virtual NMI is pending in the guest. The
processor will clear V_NMI once it takes the virtual NMI.
V_NMI_MASK(12): Indicates whether virtual NMIs are masked. The processor will
set V_NMI_MASK once it takes the virtual NMI. V_NMI_MASK is cleared when the
guest successfully completes an IRET instruction or #VMEXIT occurs while
delivering the virtual NMI.
V_NMI_ENABLE(26): Enables NMI virtualization. [1]

[1] https://docs.amd.com/v/u/en-US/24593_3.43

---
Changes in v5:
 - Set vnmi_pending unconditionally in the svm_inject_nmi when VNMI is
   enabled.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2351537244
---
Changes in v4:
 - Delete the changes in svm_get_interrupt_shadow. The vNMI handling for
   multiple\concurrent NMIs should not be considered blocked if vnmi_pending
   and vnmi_blockking are set.
 - Fix formatting indentation in the svm_inject_nmi function.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2334257666
---
Changes in v3:
 - Delete the introduced hvm_function_table::vNMI boolean and all the 3 vNMI
   hooks, hvm_function_table::is_vnmi_enabled,
   hvm_function_table::is_vnmi_masked and hvm_function_table::set_vnmi_pending.
 - Use the HVM_INTR_SHADOW_NMI to indicate that the NMI is blocked rather than
   the usage of HVM_INTR_SHADOW_MOV_SS | HVM_INTR_SHADOW_STI.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2327265341
---
Changes in v2:
 - Merge the patches for
   "svm/vnmi: introduce the vnmi bit support in the cpuid feature set"
   and
   "svm/vnmi: add the definitions for the svm vnmi management bits in the VMCB"
   into the one patch
   "x86/svm: Add Enumerations for the SVM virtual NMI".
 - Change the patch subject "svm/vnmi: Add support for the SVM Virtual NMI" to
   "x86/svm: Use virtual NMI when available"
 - Move the print out of the VNMI capability to the patch
   "x86/svm: Use virtual NMI when available" when it is being used.
 - Remove the hvm_intblk_vnmi enumeration that was introduced for the separate
   masked vNMI handling.
 - Introduce the hvm_function_table's is_vnmi_enabled callback to allow for the
   SVM implementation to verify that the VNMI is enabled by checking the VMCB
   bits in addition to the CPUID reported support.
 - Change the the name of the hvm_function_table's callback is_vnmi_pending to
   is_vnmi_masked.
 - The svm_inject_nmi function gains a check for the distinct NMI injection
   handling when the VNMI is enabled.
 - Simplify the check of AMD SVM Hardware support for the VNMI. The check
   cpu_has_svm_vnmi is performed unconditionally.
 - Simplify the introduced changes diff for the vintr_t union for the VNMI bits
   support.
 - Adopt the Xen formatting guidelines for the control structures.
 - CI tests:
https://gitlab.com/xen-project/people/aabdelsa/xen/-/pipelines/2325298577
---  

Abdelkareem Abdelsaamad (2):
  x86/svm: Add Enumerations for the SVM virtual NMI
  x86/svm: Use the virtual NMI when available

 xen/arch/x86/hvm/svm/intr.c        | 8 ++++++++
 xen/arch/x86/hvm/svm/svm.c         | 1 +
 xen/arch/x86/hvm/svm/vmcb.c        | 2 ++
 xen/arch/x86/hvm/svm/vmcb.h        | 8 ++++++--
 xen/arch/x86/include/asm/hvm/svm.h | 2 ++
 5 files changed, 19 insertions(+), 2 deletions(-)

-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 13:21:41 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 13:21:41 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241660.1542633 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbJE-0000SL-IC; Thu, 26 Feb 2026 13:21:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241660.1542633; Thu, 26 Feb 2026 13: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 1vvbJE-0000SE-Fh; Thu, 26 Feb 2026 13:21:40 +0000
Received: by outflank-mailman (input) for mailman id 1241660;
 Thu, 26 Feb 2026 13:21: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=KVeQ=A6=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vvbJD-0000S3-0z
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 13:21:39 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 1351fd05-1316-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 14:21:36 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 79281428102B;
 Thu, 26 Feb 2026 08:21:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1351fd05-1316-11f1-9ccf-f158ae23cfc8
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	teddy.astie@vates.tech,
	jbeulich@suse.com,
	jason.andryuk@amd.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v5 1/2] x86/svm: Add Enumerations for the SVM virtual NMI
Date: Thu, 26 Feb 2026 13:20:42 +0000
Message-ID: <a3dd02ed3a01c5aaae804bc69f494de2a47a75f0.1772105933.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772105933.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1772105933.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Introduce the cpuid bit for the SVM vNMI feature support for the x86\AMD
platforms. The feature support is indicated by the CPUID
Fn8000_000A_EDX[25] = 1.

Add defines for the three SVM's Virtual NMI (vNMI) managements bits in the
VMCB structure's vintr_t:

vintr_t(11) - Virtual NMI is pending.
vintr_t(12) - Virtual NMI is masked.
vintr_t(26) - Enable NMI virtualization.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/arch/x86/hvm/svm/vmcb.h        | 8 ++++++--
 xen/arch/x86/include/asm/hvm/svm.h | 2 ++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/vmcb.h b/xen/arch/x86/hvm/svm/vmcb.h
index 69f6047394..13ccfd3ff9 100644
--- a/xen/arch/x86/hvm/svm/vmcb.h
+++ b/xen/arch/x86/hvm/svm/vmcb.h
@@ -336,13 +336,17 @@ typedef union
         u64 tpr:          8;
         u64 irq:          1;
         u64 vgif:         1;
-        u64 rsvd0:        6;
+        u64 :             1;
+        u64 vnmi_pending: 1;
+        u64 vnmi_blocking:1;
+        u64 :             3;
         u64 prio:         4;
         u64 ign_tpr:      1;
         u64 rsvd1:        3;
         u64 intr_masking: 1;
         u64 vgif_enable:  1;
-        u64 rsvd2:        6;
+        u64 vnmi_enable:  1;
+        u64 :             5;
         u64 vector:       8;
         u64 rsvd3:       24;
     } fields;
diff --git a/xen/arch/x86/include/asm/hvm/svm.h b/xen/arch/x86/include/asm/hvm/svm.h
index 15f0268be7..a35a61273b 100644
--- a/xen/arch/x86/include/asm/hvm/svm.h
+++ b/xen/arch/x86/include/asm/hvm/svm.h
@@ -37,6 +37,7 @@ extern u32 svm_feature_flags;
 #define SVM_FEATURE_VGIF          16 /* Virtual GIF */
 #define SVM_FEATURE_SSS           19 /* NPT Supervisor Shadow Stacks */
 #define SVM_FEATURE_SPEC_CTRL     20 /* MSR_SPEC_CTRL virtualisation */
+#define SVM_FEATURE_VNMI          25 /* Virtual NMI */
 #define SVM_FEATURE_BUS_LOCK      29 /* Bus Lock Threshold */
 
 static inline bool cpu_has_svm_feature(unsigned int feat)
@@ -57,6 +58,7 @@ static inline bool cpu_has_svm_feature(unsigned int feat)
 #define cpu_has_svm_vloadsave cpu_has_svm_feature(SVM_FEATURE_VLOADSAVE)
 #define cpu_has_svm_sss       cpu_has_svm_feature(SVM_FEATURE_SSS)
 #define cpu_has_svm_spec_ctrl cpu_has_svm_feature(SVM_FEATURE_SPEC_CTRL)
+#define cpu_has_svm_vnmi      cpu_has_svm_feature(SVM_FEATURE_VNMI)
 #define cpu_has_svm_bus_lock  cpu_has_svm_feature(SVM_FEATURE_BUS_LOCK)
 
 #define MSR_INTERCEPT_NONE    0
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 13:21:43 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 13:21:43 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241662.1542653 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbJG-0000uC-Ur; Thu, 26 Feb 2026 13:21:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241662.1542653; Thu, 26 Feb 2026 13: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 1vvbJG-0000u2-SB; Thu, 26 Feb 2026 13:21:42 +0000
Received: by outflank-mailman (input) for mailman id 1241662;
 Thu, 26 Feb 2026 13:21: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=KVeQ=A6=citrix.com=abdelkareem.abdelsaamad@srs-se1.protection.inumbo.net>)
 id 1vvbJE-0000S3-LU
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 13:21:40 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 14539194-1316-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 14:21:38 +0100 (CET)
Received: from fedora.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 270DF428102C;
 Thu, 26 Feb 2026 08:21:17 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 14539194-1316-11f1-9ccf-f158ae23cfc8
From: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
To: andrew.cooper3@citrix.com,
	xen-devel@lists.xenproject.org
Cc: roger.pau@citrix.com,
	teddy.astie@vates.tech,
	jbeulich@suse.com,
	jason.andryuk@amd.com,
	Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Subject: [PATCH v5 2/2] x86/svm: Use the virtual NMI when available
Date: Thu, 26 Feb 2026 13:20:43 +0000
Message-ID: <29068558780bd9c6182d7bd74b357acc44409bfe.1772109484.git.abdelkareem.abdelsaamad@citrix.com>
X-Mailer: git-send-email 2.52.0
In-Reply-To: <cover.1772109484.git.abdelkareem.abdelsaamad@citrix.com>
References: <cover.1772109484.git.abdelkareem.abdelsaamad@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

With the Virtual NMI (vNMI), the pending NMI is simply stuffed into the VMCB
and handed off to the hardware. There is no need for the artificial tracking
of the NMI handling completion with the IRET instruction interception.

Adjust the svm_inject_nmi to rather inject the NMIs using the vNMI Hardware
accelerated feature when the AMD platform supports the vNMI.

Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
---
 xen/arch/x86/hvm/svm/intr.c | 6 ++++++
 xen/arch/x86/hvm/svm/svm.c  | 1 +
 xen/arch/x86/hvm/svm/vmcb.c | 2 ++
 3 files changed, 9 insertions(+)

diff --git a/xen/arch/x86/hvm/svm/intr.c b/xen/arch/x86/hvm/svm/intr.c
index 6453a46b85..112a393211 100644
--- a/xen/arch/x86/hvm/svm/intr.c
+++ b/xen/arch/x86/hvm/svm/intr.c
@@ -33,6 +33,12 @@ static void svm_inject_nmi(struct vcpu *v)
     u32 general1_intercepts = vmcb_get_general1_intercepts(vmcb);
     intinfo_t event;
 
+    if ( vmcb->_vintr.fields.vnmi_enable )
+    {
+        vmcb->_vintr.fields.vnmi_pending = 1;
+        return;
+    }
+
     event.raw = 0;
     event.v = true;
     event.type = X86_ET_NMI;
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738..815565c33f 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -2524,6 +2524,7 @@ const struct hvm_function_table * __init start_svm(void)
     P(cpu_has_tsc_ratio, "TSC Rate MSR");
     P(cpu_has_svm_sss, "NPT Supervisor Shadow Stack");
     P(cpu_has_svm_spec_ctrl, "MSR_SPEC_CTRL virtualisation");
+    P(cpu_has_svm_vnmi, "Virtual NMI");
     P(cpu_has_svm_bus_lock, "Bus Lock Filter");
 #undef P
 
diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c
index e583ef8548..e90bbac332 100644
--- a/xen/arch/x86/hvm/svm/vmcb.c
+++ b/xen/arch/x86/hvm/svm/vmcb.c
@@ -184,6 +184,8 @@ static int construct_vmcb(struct vcpu *v)
     if ( default_xen_spec_ctrl == SPEC_CTRL_STIBP )
         v->arch.msrs->spec_ctrl.raw = SPEC_CTRL_STIBP;
 
+    vmcb->_vintr.fields.vnmi_enable = cpu_has_svm_vnmi;
+
     return 0;
 }
 
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 13:27:33 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 13:27:33 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241717.1542664 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbOq-000231-Kj; Thu, 26 Feb 2026 13:27:28 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241717.1542664; Thu, 26 Feb 2026 13: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 1vvbOq-00022u-Gj; Thu, 26 Feb 2026 13:27:28 +0000
Received: by outflank-mailman (input) for mailman id 1241717;
 Thu, 26 Feb 2026 13:27: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=KEVl=A6=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvbOp-00022o-SC
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 13:27:28 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e385790c-1316-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 14:27:26 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by DS2PR03MB8134.namprd03.prod.outlook.com (2603:10b6:8:27d::14) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Thu, 26 Feb
 2026 13:27:21 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Thu, 26 Feb 2026
 13:27:21 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e385790c-1316-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=jOQSeih9Ztf4ZylxEHWb4bPnjYJ+jEitvejULQlmcyBX7t3JKRkCzlXNk9G2x1lrWJ1r7mJf++RgtdcRFBA7Z6zKLES1yDn2IKiY+3MVfZQ+7q314sy0ZQr+CTalzIYmCYyt8sb+mPl+qwIrXYz7PIFbx+bpPetFjZvsFlvLwDRyotGVOzq2/IXjOTBl7nGSD8WAWVcjMktgx+lI06FRGMMeFsV2guI2OyW/TECeS2MqD8dvs/PvOzbphZvxj0iAAmDqJQPwr+nvDGxOxq6oYbLB9p9YEyDqAxGGxGI7hVATbPbEnkYbtROmaiIYsaFa6Hsqgp6+rsZwZLQD70Q/sg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=M7qpKlXr8BPeXakyCUYodEjkrTREnYjUxATeIh9sTvg=;
 b=OkH0uQ6QpMqTYTZMrBmR6R5smWaZ/GuL+KLkIVpkAZEQb6oqKTNEvhYFJKvaX7kbZmIECHfHFCon/JmtpGJJS/KnMLvHeT1ME9YFpFrocgc+ExRSbel3mOxDStK4e6lxKW/qgRb+LdjozI9kbgSVHnJawlzVOe8BVohu8c9Y+hu7TYA6dmwXLAfu6Sds48/qwn1b6n3MnpGytPS5xnoCtYonnR+y0hhtHf6V9/ixDKqE1W4BrkOG+jFJw5thV1M61gQjIGjBysMoFHNSyJEp3Dk5q9rhz+BySSJDIxjQD5BSnSNqcFl+N0gLCH68Qf+A6AbukeBLpLFiCvLUdLwZCQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=M7qpKlXr8BPeXakyCUYodEjkrTREnYjUxATeIh9sTvg=;
 b=X1dpDduwv0fjApmgOKBSN/weztiieawvRbZbdp+l5I46BEONW5lsOx5lLTUOSjwnJ19WtDF+p6ShvKlPUBcjUTbGXK23xz+3yb64SJHrBKMcakpNisIzGSJStjSLx2IwJ3FaJ2AfnLqtZmFkL0W/Muo1aFnst9IecTI1oVYPjPg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
Date: Thu, 26 Feb 2026 13:27:17 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Juergen Gross
 <jgross@suse.com>, Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
To: =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
References: <aaBH3EAchUwKhrUA@mail-itl>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <aaBH3EAchUwKhrUA@mail-itl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-ClientProxiedBy: LO4P123CA0338.GBRP123.PROD.OUTLOOK.COM
 (2603:10a6:600:18c::19) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|DS2PR03MB8134:EE_
X-MS-Office365-Filtering-Correlation-Id: 2d0dd3cf-940d-438b-7b95-08de753ac55a
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016;
X-Microsoft-Antispam-Message-Info:
	N/9hM5c16THhtEp2adSC+ERpBJgb2GH7dvsh/nMTwoUX71VFMMxuYa3yzl7oL9Wop/j8HixMaRsXdJr+sm0Pr23vxLP/nYpppu6OCTtJX8XtHb6odYgqjn/hbJivHXnS4XQLDFEaoZ7sEnWVmaHBzK6RP7YyxUA+CaCOi+aulTV67ujc1eczUTDbapdBqX9cS0b4kKchAq7/LoSuieG3B2DmbloZFxcB5bQFYui/LnMMzljQzqIq6DmKMsQFpqn+zyy8pZCLU+RxlEOrP9unWoBrp2U6UuNaut/1SmlfjYIz4Q/IA739XCg3eoanW+TN0jJCBptsO9i69l0F933BxuZfnaswybHEU4A++PqXooHWLlQqZMpsKgjFLzxim0yU22nYgfNGMZfCk3lGmtpI+i76HlaL8bJ8TGtlDuy05JTJFZ3V20yfsWnT6kKmUogc3+B/Oxwi3W/ZB1S5my2yZ5I6nKJD32oVm1fR4oQlQJUXbhyHepqQNCwxGJq66YuTAFZSlC+HrES30QhArZPBAPunGW6Hi/Nwfwf4ghK7J7JDItgjnnSXbsRMznDKYi3lGR7rqN7oI7VtQED83NuPzBtps29C1+OlPaTr7LVgwFldu9Wc7pfbHZmyKQWSCE2npa9cZVAJJ3FdGlDYc6ZSocy5iUnaywW7/m8t3DRkVbLuJlQUmqIjLbH4JJ7Bat6d
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?Z3BWUTdJNUxQcjVpQ1UxMmJwN1hPcGVXSW1MME52NmRWZXYyWFdpbjZYTFgx?=
 =?utf-8?B?Qys5dmUzZFQ2bFVnS0FpeWxBbmpiek5uNHlCWWtSSzNLZVRnQlZSOUVDMVFy?=
 =?utf-8?B?N3BybmVPdlNFaHlYaVF5M0NnWDVaVGZDVUtZUzZlK244QkREQVh4ZjJIL0xP?=
 =?utf-8?B?VjE5SWt6RXpLQWplNmZTQTRPQ1J3aE1HeHRtSVNSUXd6T0dwc2d5Ly94WVdX?=
 =?utf-8?B?WGxQN1lIanE1QlRDdDllQ2k1YnFQZktFN1V2TDBNaytIKytxcU9aaEd4cS9F?=
 =?utf-8?B?ZW44b3dsSDRMeERuZ3FWWmR1MmM5Q00rQ1ZFbWJ5anBXTUp4Q3dlVFE5WXpZ?=
 =?utf-8?B?QTF6ZWc3Qi9WUUN5RkNDb3FJdEtUbDNFRWFDT0tHNTlwUU1JY0pWZ3VZTUdz?=
 =?utf-8?B?Yi8zNVVRU0U3SlZlUHhvbnlRSHRFYmtVUzdudnE1Y0c3SG1NUnVPdjkvazB0?=
 =?utf-8?B?T3l6bTNEV0JNUmNja2hxek1kdllQZDNRdmN0RUZMUW14RTVTcEYrT3FQZzRu?=
 =?utf-8?B?dkQrdmRaTjZuS25wWWJ5NEV0L3lUTWh1VTFacUlBWFhpMlE1Qm5xVnlzWHlp?=
 =?utf-8?B?d1RVTjFicU9mcWY1YjNnV0RpRTdiTmR3SkpoWHNYbHFZN21CVFhGdGJiMU9F?=
 =?utf-8?B?RGwrcjRnQUVUODJHWVN2Z2x0bjdDWUYwM3ZxVTA2RTdHTjVLSzRFakoyTGdM?=
 =?utf-8?B?MDRraURNbGloVnpIeUsvZVlRREVjK0VWdzRyRHdkWTBIVGF0Q1BlVVVTV2V6?=
 =?utf-8?B?bUkvYWh4SVNTOVpmM3NMMmN2YTB5N3hkOXJ1cEFUT0NUUkJKQTJCNnFtV0Zk?=
 =?utf-8?B?REpZdThRZzlyL3poZ1FDNng5MHJuWk1DVmJaMFA3L2dFc2lzZkZQb3dtTXI2?=
 =?utf-8?B?Zm4va1pKRm1sbFhFT3F0RWVsbjVKdGZXN2FXeCs1cmx2cnZZR005Z3B2cEo4?=
 =?utf-8?B?UHFab082WWV1QzJnQTJ5S1V6aHNVZWZkN0RYVmF3QldxVkk4ZVMzU2NCWitH?=
 =?utf-8?B?L3htWHZMV3NNK3JXSE1EZGhQakp1b2h0TFB1UDZXaTByVUNHMjRRWDBmeEU5?=
 =?utf-8?B?TEo4REM3Z0RPdS9CazUyUDQyRTBLaVpoQU9Ta3FoRjZ5UTM0QXRwRmFNUGQ3?=
 =?utf-8?B?L1piYnRoM3R6bkJEQlh5YlJNdzdlNk9wb0dTL2hNaHIwYWdGUEpIb0pFTnhM?=
 =?utf-8?B?OEdVbkRXMnQ1ZlZXd0V3NFFHYWNMMysrNDJ2MVVTTkhpd3Y5SzBqOE9kdVhp?=
 =?utf-8?B?NXdGMEtIUTExRUdiTmhSN29tdnVjMnVWSFVMV2xGNWJGZVl4RE9IdEdVR2ZQ?=
 =?utf-8?B?N2dmZENCTUMvL0pIKy8wYUt3by9DdUZKUWZiSnVQSEc5cytMZWdRdEVnbTlV?=
 =?utf-8?B?RXZkRVFGbUsycDhPUDJQa0UxZUpST0ZLM25LcWlUTlg4a3JQdlBscnpRbUtx?=
 =?utf-8?B?cXBDMXd3cjZLditIV0dmYmFKbzFQdE15MEFQTVhrWEo1T21sMzQzVWkxTXgz?=
 =?utf-8?B?aXlRMnpValFHR0NVazhiditMQzVZUEtIZXhwbmV6SkptZzFFQlpmTGlLTld6?=
 =?utf-8?B?dWNGYUFtUlBUeVg1TEJPYjVyeXBaeS93UDhjblJPaTcrenFybE9lMjc0RVJu?=
 =?utf-8?B?aTlsU1pDWFRuN3pyNE9USFpJWTJ5dS9VUjRWVFpZWTZuZEFiZUZ1NGZEVWha?=
 =?utf-8?B?dFB3L2RDcW1ueHB0eGVSeklxUjlpNHA3M3RuajRVNzM5NWRQQ1lkYldDb1dx?=
 =?utf-8?B?Y0JmSzc1eWN0VzVkdzJNWnl4eVo1NkNtS3k4UHJZN1dUT0Q0TmFsN1BPK1lp?=
 =?utf-8?B?Nk5kUGt5VW9OaGVYL2hOTHo1ZzhkbGFadndJWmlLaEZIRGFFRzVBenV4WTZU?=
 =?utf-8?B?T1hQQTdxUFJtZzh1QkFWd3oyR0JuUi8wbzFTWE4wSG9RTTVYcnI0bExXVXNI?=
 =?utf-8?B?cGlaVmlMNnFXWlg4dllWNGxTTi9HU2lQd3VNeDE0WVJ5SkVCa1psM3k1OW1i?=
 =?utf-8?B?TTAwT1hEOVUwNUsxWkh1Zi9SN2txZ3duYy8wYWwya2wwbm9nbENCNll4MzhS?=
 =?utf-8?B?QnRINFdDeVNlazBzaG9Sa0FFcWFUWitTMnR6OGhjc3hHVm13OWl5YnB3QWdp?=
 =?utf-8?B?empGaVNuV0grMUVjYStDVzN3TDJmY05rYlc3eE92cDhmeXJEYnoxdmVJWFNQ?=
 =?utf-8?B?U0ZHcGNSNEJmZ205L3lxMTlTY2dTb2ljcGVHcGhrMVloYnhOZk11ZUhqZzI2?=
 =?utf-8?B?N2MxdHR6S0FTR0ozV25yUDJ6SDJUWWFFcmtTMjhXblBxRGVOTFVleGdoaVAx?=
 =?utf-8?B?V254eFZlODluamVQSys1ZEZ0ZDZhSUlJclFLSW05WitleFRWU3l6dz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2d0dd3cf-940d-438b-7b95-08de753ac55a
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 13:27:21.3390
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: SSr36uwlfh5u8YNGuV/uJba9q+6cfludKX87tt9qCVnZOMCopfrVGbt+wS1dHtTGu2Fj3p35VY52uWMmVS9zz0hzfkwNE/MFk4dADTjgEks=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR03MB8134

On 26/02/2026 1:17 pm, Marek Marczykowski-G=C3=B3recki wrote:
> Hi,
>
> When testing Linux 7.0-rc1 in PV dom0, I hit the following panic
> sometimes:
>
> [  436.849614] ------------[ cut here ]------------
> [  436.849669] kernel BUG at arch/x86/include/asm/xen/hypervisor.h:78!
> [  436.849693] Oops: invalid opcode: 0000 [#1] SMP NOPTI
> [  436.849710] CPU: 3 UID: 0 PID: 4021 Comm: kworker/u25:1 Not tainted 7.=
0.0-0.rc1.1.qubes.1001.fc41.x86_64 #1 PREEMPT(full)=20
> [  436.849729] Hardware name: Star Labs StarBook/StarBook, BIOS 8.97 10/0=
3/2023
> [  436.849743] Workqueue: i915_flip intel_atomic_commit_work [i915]
> [  436.850226] RIP: e030:xen_enter_lazy_mmu+0x24/0x30
> [  436.850245] Code: 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 65 8b 0=
5 b8 e5 02 03 85 c0 75 10 65 c7 05 a9 e5 02 03 01 00 00 00 c3 cc cc cc cc <=
0f> 0b 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90
> [  436.850270] RSP: e02b:ffffc90045727a68 EFLAGS: 00010202
> [  436.850283] RAX: 0000000000000001 RBX: ffff8881042fa6d0 RCX: 000ffffff=
fe00000
> [  436.850296] RDX: 0000000000000001 RSI: ffff88810a5a2980 RDI: 000000000=
0000000
> [  436.850308] RBP: ffffc90049eda000 R08: ffffc90049edc000 R09: ffffc9004=
9edc000
> [  436.850320] R10: ffffc90049edc000 R11: ffffc90049edbfff R12: ffffc9004=
9edc000
> [  436.850332] R13: ffffc90045727bb0 R14: ffffc90045727b28 R15: 800000000=
000006b
> [  436.850356] FS:  0000000000000000(0000) GS:ffff888201e6e000(0000) knlG=
S:0000000000000000
> [  436.850371] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  436.850383] CR2: 00006543dbade250 CR3: 0000000115ef1000 CR4: 000000000=
0050660
> [  436.850401] Call Trace:
> [  436.850410]  <TASK>
> [  436.850420]  vmap_pages_pud_range+0x47c/0x530
> [  436.850439]  vmap_small_pages_range_noflush+0x1f1/0x2b0
> [  436.850451]  ? __get_vm_area_node+0x10a/0x170
> [  436.850465]  vmap+0x79/0xd0
> [  436.850476]  i915_gem_object_map_page+0x13b/0x210 [i915]
> [  436.850812]  i915_gem_object_pin_map+0x1e2/0x210 [i915]
> [  436.851123]  i915_gem_object_pin_map_unlocked+0x2d/0xa0 [i915]
> [  436.851424]  intel_dsb_buffer_create+0xed/0x1a0 [i915]
> [  436.851778]  intel_dsb_prepare+0xca/0x1a0 [i915]
> [  436.852110]  intel_atomic_dsb_finish+0x92/0x350 [i915]
> [  436.852456]  intel_atomic_commit_tail+0x326/0xd40 [i915]
> [  436.852769]  process_one_work+0x18d/0x380
> [  436.852779]  worker_thread+0x196/0x300
> [  436.852787]  ? __pfx_worker_thread+0x10/0x10
> [  436.852796]  kthread+0xe3/0x120
> [  436.852805]  ? __pfx_kthread+0x10/0x10
> [  436.852815]  ret_from_fork+0x19e/0x260
> [  436.852824]  ? __pfx_kthread+0x10/0x10
> [  436.852832]  ret_from_fork_asm+0x1a/0x30
> [  436.852842]  </TASK>
> [  436.852847] Modules linked in: snd_seq_dummy snd_hrtimer snd_hda_codec=
_intelhdmi snd_hda_codec_hdmi snd_hda_codec_alc269 snd_hda_codec_realtek_li=
b snd_hda_scodec_component snd_hda_codec_generic snd_hda_intel snd_sof_pci_=
intel_tgl snd_sof_pci_intel_cnl snd_sof_intel_hda_generic soundwire_intel s=
nd_sof_intel_hda_sdw_bpt snd_sof_intel_hda_common snd_soc_hdac_hda snd_sof_=
intel_hda_mlink snd_sof_intel_hda soundwire_cadence snd_sof_pci snd_sof_xte=
nsa_dsp snd_sof snd_sof_utils snd_soc_acpi_intel_match snd_soc_acpi_intel_s=
dca_quirks soundwire_generic_allocation snd_soc_sdw_utils snd_soc_acpi crc8=
 intel_rapl_msr soundwire_bus intel_rapl_common snd_soc_sdca snd_soc_avs sn=
d_soc_hda_codec snd_hda_ext_core snd_hda_codec vfat intel_uncore_frequency_=
common fat snd_hda_core snd_intel_dspcfg snd_intel_sdw_acpi snd_hwdep intel=
_powerclamp snd_soc_core iwlwifi snd_compress spi_nor iTCO_wdt ac97_bus int=
el_pmc_bxt ee1004 mtd snd_pcm_dmaengine snd_seq cfg80211 snd_seq_device pcs=
pkr spi_intel_pci snd_pcm rfkill spi_intel snd_timer snd
> [  436.852939]  i2c_i801 soundcore i2c_smbus idma64 intel_pmc_core pmt_te=
lemetry pmt_discovery pmt_class intel_hid intel_pmc_ssram_telemetry intel_s=
cu_pltdrv sparse_keymap joydev loop fuse xenfs nfnetlink vsock_loopback vmw=
_vsock_virtio_transport_common vmw_vsock_vmci_transport vsock zram vmw_vmci=
 lz4hc_compress lz4_compress dm_thin_pool dm_persistent_data dm_bio_prison =
dm_crypt xe drm_ttm_helper drm_suballoc_helper gpu_sched drm_gpuvm drm_exec=
 drm_gpusvm_helper i915 i2c_algo_bit drm_buddy hid_multitouch i2c_hid_acpi =
ghash_clmulni_intel video nvme wmi ttm i2c_hid nvme_core nvme_keyring drm_d=
isplay_helper nvme_auth xhci_pci pinctrl_tigerlake thunderbolt hkdf cec xhc=
i_hcd intel_vsec serio_raw xen_acpi_processor xen_privcmd xen_pciback xen_b=
lkback xen_gntalloc xen_gntdev xen_evtchn scsi_dh_rdac scsi_dh_emc scsi_dh_=
alua uinput i2c_dev
> [  436.853183] ---[ end trace 0000000000000000 ]---
>
> or this:
>
> [  548.736884] ------------[ cut here ]------------
> [  548.736907] kernel BUG at arch/x86/include/asm/xen/hypervisor.h:85!
> [  548.736923] Oops: invalid opcode: 0000 [#1] SMP NOPTI
> [  548.736935] CPU: 0 UID: 0 PID: 206 Comm: kworker/0:2 Not tainted 7.0.0=
-0.rc1.1.qubes.1001.fc41.x86_64 #1 PREEMPT(full)=20
> [  548.736949] Hardware name: LENOVO 2347A45/2347A45, BIOS CBET4000 Nitro=
key-v0.2.0-2608-ga649597 01/01/1970
> [  548.736962] Workqueue: events delayed_vfree_work
> [  548.736976] RIP: e030:xen_leave_lazy_mmu+0x44/0x50
> [  548.736989] Code: 02 03 83 f8 01 75 23 65 c7 05 6c e4 02 03 00 00 00 0=
0 65 ff 0d 7d b8 02 03 74 05 c3 cc cc cc cc e8 61 5d fd ff c3 cc cc cc cc <=
0f> 0b 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90
> [  548.737010] RSP: e02b:ffffc90040607cf0 EFLAGS: 00010297
> [  548.737018] RAX: 0000000000000000 RBX: ffff888164a70408 RCX: 000000000=
0000000
> [  548.737029] RDX: 0000000000000000 RSI: 000ffffffffff000 RDI: ffff88810=
69c0000
> [  548.737039] RBP: ffffc90049681000 R08: ffffc90049681000 R09: 000000000=
0000027
> [  548.737050] R10: 0000000000000027 R11: fefefefefefefeff R12: ffffc9004=
9681000
> [  548.737060] R13: ffff8881002fd258 R14: 0000000000000000 R15: ffffc9004=
0607dac
> [  548.737079] FS:  0000000000000000(0000) GS:ffff8881f88ee000(0000) knlG=
S:0000000000000000
> [  548.737090] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  548.737099] CR2: 000055576c2e6058 CR3: 000000010d47b000 CR4: 000000000=
0050660
> [  548.737115] Call Trace:
> [  548.737123]  <TASK>
> [  548.737128]  vunmap_pmd_range.isra.0+0x1f1/0x2e0
> [  548.737142]  vunmap_p4d_range+0x17d/0x290
> [  548.737151]  __vunmap_range_noflush+0x182/0x1d0
> [  548.737161]  ? _raw_spin_unlock+0xe/0x30
> [  548.737171]  remove_vm_area+0x40/0x70
> [  548.737180]  vfree.part.0+0x1b/0x290
> [  548.737189]  delayed_vfree_work+0x35/0x50
> [  548.737198]  process_one_work+0x18d/0x380
> [  548.737207]  worker_thread+0x196/0x300
> [  548.737215]  ? __pfx_worker_thread+0x10/0x10
> [  548.737224]  kthread+0xe3/0x120
> [  548.737233]  ? __pfx_kthread+0x10/0x10
> [  548.737242]  ret_from_fork+0x19e/0x260
> [  548.737250]  ? __pfx_kthread+0x10/0x10
> [  548.737258]  ret_from_fork_asm+0x1a/0x30
> [  548.737269]  </TASK>
> [  548.737274] Modules linked in: vfat fat snd_seq_dummy snd_hrtimer ath9=
k ath9k_common snd_hda_codec_intelhdmi snd_hda_codec_hdmi ath9k_hw snd_hda_=
codec_alc269 snd_hda_codec_realtek_lib snd_hda_scodec_component snd_hda_cod=
ec_generic snd_hda_intel snd_hda_codec mac80211 snd_hda_core snd_intel_dspc=
fg snd_intel_sdw_acpi snd_hwdep ath snd_seq snd_seq_device snd_ctl_led cfg8=
0211 snd_pcm at24 thinkpad_acpi intel_rapl_msr i2c_i801 snd_timer sparse_ke=
ymap iTCO_wdt intel_rapl_common platform_profile intel_powerclamp intel_pmc=
_bxt pcspkr i2c_smbus rfkill libarc4 snd soundcore mei_me e1000e mei joydev=
 lpc_ich loop fuse xenfs nfnetlink vsock_loopback vmw_vsock_virtio_transpor=
t_common vmw_vsock_vmci_transport vsock zram vmw_vmci lz4hc_compress lz4_co=
mpress dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt i915 i2c_algo=
_bit drm_buddy ghash_clmulni_intel ttm sdhci_pci drm_display_helper sdhci_u=
hs2 sdhci video xhci_pci cqhci wmi cec xhci_hcd ehci_pci mmc_core ehci_hcd =
serio_raw xen_acpi_processor xen_privcmd xen_pciback
> [  548.737348]  xen_blkback xen_gntalloc xen_gntdev xen_evtchn scsi_dh_rd=
ac scsi_dh_emc scsi_dh_alua uinput i2c_dev
> [  548.737469] ---[ end trace 0000000000000000 ]---
>
> I don't have clear pattern when this happens, one was during host
> suspend, but the other was during "normal" test run (starting/stopping
> domUs and running stuff around them). Note also one of those is Intel
> and the other AMD, so it isn't really hardware specific.
>
> Slightly more details with links (especially serial0.txt in the logs
> tab) at
> https://github.com/QubesOS/qubes-linux-kernel/pull/662#issuecomment-39633=
26188
>
> Any idea?
>

That looks like the issue Juergen fixed with:

https://lore.kernel.org/xen-devel/20260220123715.834848-1-jgross@suse.com/

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 13:37:12 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 13:37:12 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241760.1542674 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbY9-0003jE-Le; Thu, 26 Feb 2026 13:37:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241760.1542674; Thu, 26 Feb 2026 13: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 1vvbY9-0003j7-Il; Thu, 26 Feb 2026 13:37:05 +0000
Received: by outflank-mailman (input) for mailman id 1241760;
 Thu, 26 Feb 2026 13:37: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=jXad=A6=invisiblethingslab.com=marmarek@srs-se1.protection.inumbo.net>)
 id 1vvbY8-0003j1-Jt
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 13:37:04 +0000
Received: from fout-a2-smtp.messagingengine.com
 (fout-a2-smtp.messagingengine.com [103.168.172.145])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3a6817d5-1318-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 14:37:01 +0100 (CET)
Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46])
 by mailfout.phl.internal (Postfix) with ESMTP id 0DC80EC0611;
 Thu, 26 Feb 2026 08:37:00 -0500 (EST)
Received: from phl-frontend-03 ([10.202.2.162])
 by phl-compute-06.internal (MEProxy); Thu, 26 Feb 2026 08:37:00 -0500
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu,
 26 Feb 2026 08:36:58 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3a6817d5-1318-11f1-9ccf-f158ae23cfc8
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=1772113020;
	 x=1772199420; bh=UPBng4rv+s3fts58rTNopXXtMWmC4edfyqx8QRD7E8E=; b=
	ME6GQPaYkbqMokB+A1NZASpnIqCWLTWA8U+/PAfaLIcx405yeo586Hx6VNVXbp9V
	h7F5o+7Am+KAx3lbiR5DOgVO+R/IpSwMJE0AcJ5KToXRsKQ7sDC9yp96VsiOL7b/
	2h8HE40Tik1X120NF/Jz5g2eM/+3wuXjyQf/IfHqgrVtGR1QgJsJVBhznPeWbze8
	WoWUGW++i2JmJV1HxH1SvO//QczWobwOPqMwFjvnvZcaMyHIPVPAB8OlMid+UOKo
	y1wCiipScCBJCpowEZYQh4e1g8a0266xm1gh7OUwqaYgdhbcfT0lIYPHjlUHqvMp
	5oWoXfYrdKP8SZACm9riIA==
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=
	1772113020; x=1772199420; bh=UPBng4rv+s3fts58rTNopXXtMWmC4edfyqx
	8QRD7E8E=; b=UQ2m7Vhduci894NL2rzYYmMsFAXhxPUUYPkdFLS/8+4NCDWuG7Z
	ALfJ2xnE0d+N/sXzYggUOnu2QfavcGh/l91TRNz+zdVkGiMp0+8zE5OXDfYHf5OA
	0hCAeThvf6IjroqCJCSYZrHEZSuWkaywdsVOavdPCm04Sw3LmBU99C155SGyPyp6
	PCMIFTrzjfXpkppUqjrxKTossMazDOpaQCF0j3OXEyJUW2YircSEmG+uO4Vnd164
	x9U6fRkzlKHhFMjp+Irk+VQi5HdoOaUbjCwsxlutgY92U7rAgByx8Y32RSoEseYs
	s3JUoN8m6SEgZOUAyyz9IlIKcbCu7Mo1ptg==
X-ME-Sender: <xms:e0ygaTo87IlrfcnrqasFzpPlw7r5EgotV_DEntqcqgFOwZlsStKkOQ>
    <xme:e0ygaUqBWCx3_ETBbu7J9rLYn4rdwitnVuDRxXtmjiEjhQzR25W0tfHYBsA47dao3
    93KNH19JpqmqhuWMs60Bv6d8khwhEo4c4JDo1Es0cTH5kcH>
X-ME-Received: <xmr:e0ygaVOW-S9QjM0qY56uyqFj5bP_hnqXSa0aUqaPHzs5SLiu46b91E1f0SYrwkpF_xXarmYHFHZk9jNa2IBeUM2ggA5Iyjsrb44>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvgeeiudekucetufdoteggodetrf
    dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu
    rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf
    gurhepfffhvfevuffkfhggtggujgesghdtreertddtjeenucfhrhhomhepofgrrhgvkhcu
    ofgrrhgtiiihkhhofihskhhiqdfikphrvggtkhhiuceomhgrrhhmrghrvghksehinhhvih
    hsihgslhgvthhhihhnghhslhgrsgdrtghomheqnecuggftrfgrthhtvghrnhepvdeigeef
    gfeijeeuudethfffheejgeejveeutdegudetueejteevveduveeiffeknecuffhomhgrih
    hnpehgihhthhhusgdrtghomhdpkhgvrhhnvghlrdhorhhgnecuvehluhhsthgvrhfuihii
    vgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgrrhhmrghrvghksehinhhvihhsih
    gslhgvthhhihhnghhslhgrsgdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggvpehs
    mhhtphhouhhtpdhrtghpthhtoheprghnughrvgifrdgtohhophgvrhefsegtihhtrhhigi
    drtghomhdprhgtphhtthhopeigvghnqdguvghvvghlsehlihhsthhsrdigvghnphhrohhj
    vggtthdrohhrghdprhgtphhtthhopehjghhrohhsshesshhushgvrdgtohhmpdhrtghpth
    htohepsghorhhishdrohhsthhrohhvshhkhiesohhrrggtlhgvrdgtohhm
X-ME-Proxy: <xmx:e0ygaVyh9xGz-BAeMuZkFPT3Zya2okWo-sfDxCvmxap4Mt6hGxHCWQ>
    <xmx:e0ygaeuReVdoFgrNZ9CqTCB08i7dPLzFh4PMR_EQrcfoVHP4zc6UFQ>
    <xmx:e0ygae6QFhVXg5ovY9_9NgoXp-q_l1HJASMhl7s_M6rJY1u9_tUxDA>
    <xmx:e0ygadScJMhRHW97z1VhcgViEiD-ngjq6NMqfLDNW4AcJRELmcmHMA>
    <xmx:fEygaQddq6jklA0BDIiymJRIp1lgd07qB5q2PDrZ27JWLbeBZSdVb1cM>
Feedback-ID: i1568416f:Fastmail
Date: Thu, 26 Feb 2026 14:36:57 +0100
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>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
Message-ID: <aaBMeSbU3uotHo3R@mail-itl>
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="IRzm8mZXD+3zdZ1l"
Content-Disposition: inline
In-Reply-To: <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>


--IRzm8mZXD+3zdZ1l
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Date: Thu, 26 Feb 2026 14:36:57 +0100
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>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1

On Thu, Feb 26, 2026 at 01:27:17PM +0000, Andrew Cooper wrote:
> On 26/02/2026 1:17 pm, Marek Marczykowski-G=C3=B3recki wrote:
> > Hi,
> >
> > When testing Linux 7.0-rc1 in PV dom0, I hit the following panic
> > sometimes:
> >
> > [  436.849614] ------------[ cut here ]------------
> > [  436.849669] kernel BUG at arch/x86/include/asm/xen/hypervisor.h:78!
> > [  436.849693] Oops: invalid opcode: 0000 [#1] SMP NOPTI
> > [  436.849710] CPU: 3 UID: 0 PID: 4021 Comm: kworker/u25:1 Not tainted =
7.0.0-0.rc1.1.qubes.1001.fc41.x86_64 #1 PREEMPT(full)=20
> > [  436.849729] Hardware name: Star Labs StarBook/StarBook, BIOS 8.97 10=
/03/2023
> > [  436.849743] Workqueue: i915_flip intel_atomic_commit_work [i915]
> > [  436.850226] RIP: e030:xen_enter_lazy_mmu+0x24/0x30
> > [  436.850245] Code: 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 65 8b=
 05 b8 e5 02 03 85 c0 75 10 65 c7 05 a9 e5 02 03 01 00 00 00 c3 cc cc cc cc=
 <0f> 0b 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90
> > [  436.850270] RSP: e02b:ffffc90045727a68 EFLAGS: 00010202
> > [  436.850283] RAX: 0000000000000001 RBX: ffff8881042fa6d0 RCX: 000ffff=
fffe00000
> > [  436.850296] RDX: 0000000000000001 RSI: ffff88810a5a2980 RDI: 0000000=
000000000
> > [  436.850308] RBP: ffffc90049eda000 R08: ffffc90049edc000 R09: ffffc90=
049edc000
> > [  436.850320] R10: ffffc90049edc000 R11: ffffc90049edbfff R12: ffffc90=
049edc000
> > [  436.850332] R13: ffffc90045727bb0 R14: ffffc90045727b28 R15: 8000000=
00000006b
> > [  436.850356] FS:  0000000000000000(0000) GS:ffff888201e6e000(0000) kn=
lGS:0000000000000000
> > [  436.850371] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [  436.850383] CR2: 00006543dbade250 CR3: 0000000115ef1000 CR4: 0000000=
000050660
> > [  436.850401] Call Trace:
> > [  436.850410]  <TASK>
> > [  436.850420]  vmap_pages_pud_range+0x47c/0x530
> > [  436.850439]  vmap_small_pages_range_noflush+0x1f1/0x2b0
> > [  436.850451]  ? __get_vm_area_node+0x10a/0x170
> > [  436.850465]  vmap+0x79/0xd0
> > [  436.850476]  i915_gem_object_map_page+0x13b/0x210 [i915]
> > [  436.850812]  i915_gem_object_pin_map+0x1e2/0x210 [i915]
> > [  436.851123]  i915_gem_object_pin_map_unlocked+0x2d/0xa0 [i915]
> > [  436.851424]  intel_dsb_buffer_create+0xed/0x1a0 [i915]
> > [  436.851778]  intel_dsb_prepare+0xca/0x1a0 [i915]
> > [  436.852110]  intel_atomic_dsb_finish+0x92/0x350 [i915]
> > [  436.852456]  intel_atomic_commit_tail+0x326/0xd40 [i915]
> > [  436.852769]  process_one_work+0x18d/0x380
> > [  436.852779]  worker_thread+0x196/0x300
> > [  436.852787]  ? __pfx_worker_thread+0x10/0x10
> > [  436.852796]  kthread+0xe3/0x120
> > [  436.852805]  ? __pfx_kthread+0x10/0x10
> > [  436.852815]  ret_from_fork+0x19e/0x260
> > [  436.852824]  ? __pfx_kthread+0x10/0x10
> > [  436.852832]  ret_from_fork_asm+0x1a/0x30
> > [  436.852842]  </TASK>
> > [  436.852847] Modules linked in: snd_seq_dummy snd_hrtimer snd_hda_cod=
ec_intelhdmi snd_hda_codec_hdmi snd_hda_codec_alc269 snd_hda_codec_realtek_=
lib snd_hda_scodec_component snd_hda_codec_generic snd_hda_intel snd_sof_pc=
i_intel_tgl snd_sof_pci_intel_cnl snd_sof_intel_hda_generic soundwire_intel=
 snd_sof_intel_hda_sdw_bpt snd_sof_intel_hda_common snd_soc_hdac_hda snd_so=
f_intel_hda_mlink snd_sof_intel_hda soundwire_cadence snd_sof_pci snd_sof_x=
tensa_dsp snd_sof snd_sof_utils snd_soc_acpi_intel_match snd_soc_acpi_intel=
_sdca_quirks soundwire_generic_allocation snd_soc_sdw_utils snd_soc_acpi cr=
c8 intel_rapl_msr soundwire_bus intel_rapl_common snd_soc_sdca snd_soc_avs =
snd_soc_hda_codec snd_hda_ext_core snd_hda_codec vfat intel_uncore_frequenc=
y_common fat snd_hda_core snd_intel_dspcfg snd_intel_sdw_acpi snd_hwdep int=
el_powerclamp snd_soc_core iwlwifi snd_compress spi_nor iTCO_wdt ac97_bus i=
ntel_pmc_bxt ee1004 mtd snd_pcm_dmaengine snd_seq cfg80211 snd_seq_device p=
cspkr spi_intel_pci snd_pcm rfkill spi_intel snd_timer snd
> > [  436.852939]  i2c_i801 soundcore i2c_smbus idma64 intel_pmc_core pmt_=
telemetry pmt_discovery pmt_class intel_hid intel_pmc_ssram_telemetry intel=
_scu_pltdrv sparse_keymap joydev loop fuse xenfs nfnetlink vsock_loopback v=
mw_vsock_virtio_transport_common vmw_vsock_vmci_transport vsock zram vmw_vm=
ci lz4hc_compress lz4_compress dm_thin_pool dm_persistent_data dm_bio_priso=
n dm_crypt xe drm_ttm_helper drm_suballoc_helper gpu_sched drm_gpuvm drm_ex=
ec drm_gpusvm_helper i915 i2c_algo_bit drm_buddy hid_multitouch i2c_hid_acp=
i ghash_clmulni_intel video nvme wmi ttm i2c_hid nvme_core nvme_keyring drm=
_display_helper nvme_auth xhci_pci pinctrl_tigerlake thunderbolt hkdf cec x=
hci_hcd intel_vsec serio_raw xen_acpi_processor xen_privcmd xen_pciback xen=
_blkback xen_gntalloc xen_gntdev xen_evtchn scsi_dh_rdac scsi_dh_emc scsi_d=
h_alua uinput i2c_dev
> > [  436.853183] ---[ end trace 0000000000000000 ]---
> >
> > or this:
> >
> > [  548.736884] ------------[ cut here ]------------
> > [  548.736907] kernel BUG at arch/x86/include/asm/xen/hypervisor.h:85!
> > [  548.736923] Oops: invalid opcode: 0000 [#1] SMP NOPTI
> > [  548.736935] CPU: 0 UID: 0 PID: 206 Comm: kworker/0:2 Not tainted 7.0=
=2E0-0.rc1.1.qubes.1001.fc41.x86_64 #1 PREEMPT(full)=20
> > [  548.736949] Hardware name: LENOVO 2347A45/2347A45, BIOS CBET4000 Nit=
rokey-v0.2.0-2608-ga649597 01/01/1970
> > [  548.736962] Workqueue: events delayed_vfree_work
> > [  548.736976] RIP: e030:xen_leave_lazy_mmu+0x44/0x50
> > [  548.736989] Code: 02 03 83 f8 01 75 23 65 c7 05 6c e4 02 03 00 00 00=
 00 65 ff 0d 7d b8 02 03 74 05 c3 cc cc cc cc e8 61 5d fd ff c3 cc cc cc cc=
 <0f> 0b 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90
> > [  548.737010] RSP: e02b:ffffc90040607cf0 EFLAGS: 00010297
> > [  548.737018] RAX: 0000000000000000 RBX: ffff888164a70408 RCX: 0000000=
000000000
> > [  548.737029] RDX: 0000000000000000 RSI: 000ffffffffff000 RDI: ffff888=
1069c0000
> > [  548.737039] RBP: ffffc90049681000 R08: ffffc90049681000 R09: 0000000=
000000027
> > [  548.737050] R10: 0000000000000027 R11: fefefefefefefeff R12: ffffc90=
049681000
> > [  548.737060] R13: ffff8881002fd258 R14: 0000000000000000 R15: ffffc90=
040607dac
> > [  548.737079] FS:  0000000000000000(0000) GS:ffff8881f88ee000(0000) kn=
lGS:0000000000000000
> > [  548.737090] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [  548.737099] CR2: 000055576c2e6058 CR3: 000000010d47b000 CR4: 0000000=
000050660
> > [  548.737115] Call Trace:
> > [  548.737123]  <TASK>
> > [  548.737128]  vunmap_pmd_range.isra.0+0x1f1/0x2e0
> > [  548.737142]  vunmap_p4d_range+0x17d/0x290
> > [  548.737151]  __vunmap_range_noflush+0x182/0x1d0
> > [  548.737161]  ? _raw_spin_unlock+0xe/0x30
> > [  548.737171]  remove_vm_area+0x40/0x70
> > [  548.737180]  vfree.part.0+0x1b/0x290
> > [  548.737189]  delayed_vfree_work+0x35/0x50
> > [  548.737198]  process_one_work+0x18d/0x380
> > [  548.737207]  worker_thread+0x196/0x300
> > [  548.737215]  ? __pfx_worker_thread+0x10/0x10
> > [  548.737224]  kthread+0xe3/0x120
> > [  548.737233]  ? __pfx_kthread+0x10/0x10
> > [  548.737242]  ret_from_fork+0x19e/0x260
> > [  548.737250]  ? __pfx_kthread+0x10/0x10
> > [  548.737258]  ret_from_fork_asm+0x1a/0x30
> > [  548.737269]  </TASK>
> > [  548.737274] Modules linked in: vfat fat snd_seq_dummy snd_hrtimer at=
h9k ath9k_common snd_hda_codec_intelhdmi snd_hda_codec_hdmi ath9k_hw snd_hd=
a_codec_alc269 snd_hda_codec_realtek_lib snd_hda_scodec_component snd_hda_c=
odec_generic snd_hda_intel snd_hda_codec mac80211 snd_hda_core snd_intel_ds=
pcfg snd_intel_sdw_acpi snd_hwdep ath snd_seq snd_seq_device snd_ctl_led cf=
g80211 snd_pcm at24 thinkpad_acpi intel_rapl_msr i2c_i801 snd_timer sparse_=
keymap iTCO_wdt intel_rapl_common platform_profile intel_powerclamp intel_p=
mc_bxt pcspkr i2c_smbus rfkill libarc4 snd soundcore mei_me e1000e mei joyd=
ev lpc_ich loop fuse xenfs nfnetlink vsock_loopback vmw_vsock_virtio_transp=
ort_common vmw_vsock_vmci_transport vsock zram vmw_vmci lz4hc_compress lz4_=
compress dm_thin_pool dm_persistent_data dm_bio_prison dm_crypt i915 i2c_al=
go_bit drm_buddy ghash_clmulni_intel ttm sdhci_pci drm_display_helper sdhci=
_uhs2 sdhci video xhci_pci cqhci wmi cec xhci_hcd ehci_pci mmc_core ehci_hc=
d serio_raw xen_acpi_processor xen_privcmd xen_pciback
> > [  548.737348]  xen_blkback xen_gntalloc xen_gntdev xen_evtchn scsi_dh_=
rdac scsi_dh_emc scsi_dh_alua uinput i2c_dev
> > [  548.737469] ---[ end trace 0000000000000000 ]---
> >
> > I don't have clear pattern when this happens, one was during host
> > suspend, but the other was during "normal" test run (starting/stopping
> > domUs and running stuff around them). Note also one of those is Intel
> > and the other AMD, so it isn't really hardware specific.
> >
> > Slightly more details with links (especially serial0.txt in the logs
> > tab) at
> > https://github.com/QubesOS/qubes-linux-kernel/pull/662#issuecomment-396=
3326188
> >
> > Any idea?
> >
>=20
> That looks like the issue Juergen fixed with:
>=20
> https://lore.kernel.org/xen-devel/20260220123715.834848-1-jgross@suse.com/

The commit message says it's about booting PV guest, here the crash is
significantly later. But I'll test with the patch included anyway.

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

--IRzm8mZXD+3zdZ1l
Content-Type: application/pgp-signature; name=signature.asc

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

iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmmgTHkACgkQ24/THMrX
1yx1+wf/cbbmhMM0jWrumZh80Cje77aCS+QHadVqXP/VVu/QKo/LB5rVgOcxyVRn
b7nbwIyysWUQaAcnAw2f+DW8UaTWBonaudpCpiQGAuKLCxMsFyroAXzsrl+D+dA/
VTIw28s4SXGf63c+SdSneQXRUMfG47Lb2B3B4oT30IyVBCjOOP2yjD6+ImSidk9W
jF69kAmpFeObyXOdoW8aE8q6gIq1rlAOZR2hFfFe5F2Wo6KL/jLgkjm+CQTrlWBS
QO8dqW8g/HbSg6Eq4akpcwRvsH8Yjb2As+aoWZYrboXH8DFTry7xptF/BZkxaPN+
qnKBVxoGMvCm/3wLAJAnDoFQVggnjw==
=5VRe
-----END PGP SIGNATURE-----

--IRzm8mZXD+3zdZ1l--


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 13:39:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 13:39:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241769.1542684 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbaq-0004Mm-1x; Thu, 26 Feb 2026 13:39:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241769.1542684; Thu, 26 Feb 2026 13: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 1vvbap-0004Mf-VT; Thu, 26 Feb 2026 13:39:51 +0000
Received: by outflank-mailman (input) for mailman id 1241769;
 Thu, 26 Feb 2026 13:39: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvbao-0004MX-UL
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 13:39:50 +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 9e6a4220-1318-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 14:39:48 +0100 (CET)
Received: by mail-wm1-x332.google.com with SMTP id
 5b1f17b1804b1-483770e0b25so8341725e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 05:39:48 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-43970bf9fb2sm41843733f8f.1.2026.02.26.05.39.47
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Feb 2026 05:39:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 9e6a4220-1318-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772113188; x=1772717988; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=ZJvuIydzZguqI9aKrwgZGmtnJxEcfn+qpOQL0iOCWkE=;
        b=VKNmm+KO9XK4FJmQZ9qoFVoxypfsirXszUkZsSpWvC7L9lc04j8NNEEqgPtlwheUuj
         PUEC23faRLl4nku0/q5it2R2kJKJjJmFUgGExIEq8eRj+50LuydWVABmKyC19o490p6J
         h4h86BT7aWyhtYziUjsdm955vleASVKCmCizvDrdRYcjP0LokVQnjJQGSlp0NdpAyWet
         4fBgN7ubShADgMl713FIn/WgGRhNUljQvafv6efCqrb2wUfUbUmB5Dgefjs6rqaGTu6c
         fxctlfC9E2R956pemQI61Y4x8SGnAS/NSsD3w/I55Uqi9fBicUatjnrfXajr+WpCgGQ9
         SRhA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772113188; x=1772717988;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=ZJvuIydzZguqI9aKrwgZGmtnJxEcfn+qpOQL0iOCWkE=;
        b=ooqDCnScSJ8pSZec8HGMqpB029S5w0ke9Ghd12/e2Mer2Au9AE3uQIqIYrZekcd7LJ
         /LnBtUjC5nu6EXttkXkmmwJ9aEQ28rQUfyEZwgjuNI79ni9rNS1r4NZxKjQh2ahUcjIj
         ercGcqjX8xRikxVqNJzgQfodD+WxAHcDb0GovEAzIR2+GTlE/pumZjqkQBvsxmGDA/tZ
         yFGAS5tnvGfkpqI14eGQ5mOi1Kx6G8cxme/yRXqGZ5Qjt662jKXug9fxtbRQsDiAozEl
         PNkH6AwiE7zLCbwaE/m/GYahch1NZQA0yHjRaFCTZC1M1Yb+OXwvI4zIWIjI3GE+gGWl
         19vA==
X-Forwarded-Encrypted: i=1; AJvYcCVMtvrVGQ7bjCbhmGv31pn5M/32nm+GcTGk/RX/FvOdD7VImDgXw9HcenY9U6+LrpPrIlUXf8HWEzw=@lists.xenproject.org
X-Gm-Message-State: AOJu0YxWf2ebsEfy59EHAI8Tfcb7YuIMMZL8++Ekuma6xrle4AYEUVy0
	C6Tz2WySl+CdO9Bkx5XjyPqfn59OF9J55mC9x3Yx8f1yz+T57t31C11JN6TQWAyICg==
X-Gm-Gg: ATEYQzwQXl3BeS7sM4ddr8cLUfqQzews3bSXD6lfgG3UYIwPb9nG3Dd/w/pNr8Yvt4q
	Qfgn01now23IO3AC9hNjb1dB9iD5UEth7bSXCI4L0ySG56Tw5qWYfv2jGNyO45g3y7RtMQduJ6v
	exGQ4l55dwVL9bVP6c9H1kvBIkI1yzG7haO1SzVlUuutDM7N9pjdgsN7/Trj7+GiEhd+Ie/GSUV
	wzx2RV5yJVNhdAM4cc6/Y1nZVQ8Y7fBTMUL29irtl0PPjJC1FYYI3lm6iCDVWiuGyA9L8/PHk6H
	ZpQUm50F+7vHdpWOGFFiAviWXQEq2BGg7E9abiIl3pa6u9nm62Z/C4F5yUWdf9w+mst4vFGtqop
	K7P9FtrFIGCoCXOLy0mtCBvuOnZ84KDDqCU8mvb4C9uaHF8Ny+dlu2Ae5Yfi/ab5QFSshrW1QCq
	8Y23s9xBsYVD6GRmelSuF1V5gAbkfXm8iFEIN0O4B8X4CSd3ZzaIdDc7qlMEUWw5YQd/xez+LiW
	KtbaZfU0gUFo6U=
X-Received: by 2002:a05:600c:a49:b0:483:7631:befa with SMTP id 5b1f17b1804b1-483a95eb5e6mr378620455e9.5.1772113187855;
        Thu, 26 Feb 2026 05:39:47 -0800 (PST)
Message-ID: <417d3b12-91f3-405c-aad7-d74bedb67a80@suse.com>
Date: Thu, 26 Feb 2026 14:39:45 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v5 1/2] x86/svm: Add Enumerations for the SVM virtual NMI
To: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
Cc: roger.pau@citrix.com, teddy.astie@vates.tech, jason.andryuk@amd.com,
 andrew.cooper3@citrix.com, xen-devel@lists.xenproject.org
References: <cover.1772105933.git.abdelkareem.abdelsaamad@citrix.com>
 <a3dd02ed3a01c5aaae804bc69f494de2a47a75f0.1772105933.git.abdelkareem.abdelsaamad@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: <a3dd02ed3a01c5aaae804bc69f494de2a47a75f0.1772105933.git.abdelkareem.abdelsaamad@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 14:20, Abdelkareem Abdelsaamad wrote:
> Introduce the cpuid bit for the SVM vNMI feature support for the x86\AMD
> platforms. The feature support is indicated by the CPUID
> Fn8000_000A_EDX[25] = 1.
> 
> Add defines for the three SVM's Virtual NMI (vNMI) managements bits in the
> VMCB structure's vintr_t:
> 
> vintr_t(11) - Virtual NMI is pending.
> vintr_t(12) - Virtual NMI is masked.
> vintr_t(26) - Enable NMI virtualization.
> 
> Signed-off-by: Abdelkareem Abdelsaamad <abdelkareem.abdelsaamad@citrix.com>
> Reviewed-by: Teddy Astie <teddy.astie@vates.tech>
> Acked-by: Jan Beulich <jbeulich@suse.com>

This was committed already; please post only patches applicable to the tip
of staging.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 13:41:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 13:41:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241779.1542695 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbcF-0005oc-CX; Thu, 26 Feb 2026 13:41:19 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241779.1542695; Thu, 26 Feb 2026 13:41:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvbcF-0005oV-8O; Thu, 26 Feb 2026 13:41:19 +0000
Received: by outflank-mailman (input) for mailman id 1241779;
 Thu, 26 Feb 2026 13:41: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=8dUO=A6=suse.com=jgross@srs-se1.protection.inumbo.net>)
 id 1vvbcD-0005oL-CZ
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 13:41:17 +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 d1c34b30-1318-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 14:41:14 +0100 (CET)
Received: by mail-ed1-x52d.google.com with SMTP id
 4fb4d7f45d1cf-65f771c6b89so1324228a12.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 05:41:14 -0800 (PST)
Received: from ?IPV6:2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112?
 (2a00-12d0-af5d-ad01-5d3f-14e6-9bcb-5112.ip.tng.de.
 [2a00:12d0:af5d:ad01:5d3f:14e6:9bcb:5112])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-65fac06e28csm453825a12.27.2026.02.26.05.41.13
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Feb 2026 05:41:13 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: d1c34b30-1318-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772113274; x=1772718074; 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=xF26J3Q8del2ytDBbY1/t6xTmUwKxPtmUsekheIvfN4=;
        b=C3n7kw/h9cwBwJ9GGBN+DrrdiYCnmgETWn0Ivco8+mlHQReTzQE3F8c9mloAT5EMfx
         T5GC0SYsRpd5PHHe0+hc1L/UyO/6agTvg9xaYnJrkjxv2I/uvrAbZPojkp2ezIb1b0K8
         WB68KOZPkI7R3pT7VJPlw3AsLp6sJZOo20jd6JJLNVVbMweF9DSxLBaJyol3H39YuQF/
         3EHi1x5/H/lKvHHeQLsih9N1YPBw4HG5Xf8yKccjy3vRkj/GVjOg682PS0pD0ng9NfqV
         li+aC5U1Vx9r9wEq1XRu7+f7Oej0XC9SZ6aIoxmK1cCe8Fsz2Z76l6yUYJ4BJEWo6gIu
         BmVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772113274; x=1772718074;
        h=in-reply-to:autocrypt:from:content-language:references:cc:to
         :subject:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=xF26J3Q8del2ytDBbY1/t6xTmUwKxPtmUsekheIvfN4=;
        b=Q7hl1xwaGw3fRAdK/urNHuiFu6MZ7npU4Ev/s/PmkahowhAJTNcFWh2eNwfCzZnrRP
         sM+ozrMs7K8RA6Z++xCua9M7bu7vQUuQ9oBRwy6AyUw8GynNAmzKKJn8sJRCpfpvJgs0
         xlpTZnQ1uFAq8Bfl7z4KA3KQToQiAOorCpIH7nDGLcULBcfeXlgo16qlpGEpQGh8Jtj3
         /0LzUCbSbieJsmg/RryW6wpb+XHG4eD/mf63yc5904hXbbFQBHYsAcVtA+u5mLAdxNOv
         jkz8swMJXca9zfF4oLFEhmsfEXtVUAow0ZJ33wjRdo35Rg2GJIgbbj8QEN/wi2X0jY/n
         skwQ==
X-Forwarded-Encrypted: i=1; AJvYcCUvsNaDg0S3ANwu7JcoDWtNxiAzSDq/sG9nM2WaBhGX6/zH+LM+Tt4X8He6mL/N+OGMQ7aLJraZ9OY=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzSDUlWGMysaWWCoF3/zHaDV82o7dlkMkjQWKktLaXnjoNA+Wg2
	a/av34lYogFBEiwnqenUsQIFQMfoXLSUw7wYu2RcGzf/vpC/KnIeqkT7PUe8yHZOTI8=
X-Gm-Gg: ATEYQzxiQMw4MQ5X9QbUzH4CLXH4jXYgmN+w8EmEj0ReiEy875JeyIs7VCJvhAau1HH
	dW8jcNhWtJ42XccA1dDBJkwo/HKIQ/Zf+YURkbObyVDzo2cVb1GFZweqU31guIowurtcw7DpOhO
	ogEGn4eSN+oxD87B4SzWtY5MnaN4c4jFhh8berO7GFmpgWhihltUGWdg74NJ3no14CbvQACYsd5
	DQQnrEOFXk25bGNGgyKgY+JKjo+Qu7NwqgBGjCvNs7NCacl9gxBp1th7w9Kli7XPD0S0HLRfXuI
	dKI2SvqtE/QT0BSNstNgKlET27JfT/J4DksayXoUr9dcFa2xUBT8VbtoM2LhGBcR3ZZ8lMThonf
	YjDGdCPIb2H7k+5lhTADOJabxeLOsYMF/ZV0bnXOfGZ+ojDr+d2fP3Z2ReKnObtzLpw7PxiFqZM
	EqyTVW07/Xis8LXbSgRORsb19qGhGvgW2KFlyEG/3e4V2QwibridqYVZwIRUYXuTIPEH9T3MCUl
	n8+8pAajO6rjKInfUJ4egZ2ZCRzfb8n2Hvh0DS9lRIYTjiEiMoLkA==
X-Received: by 2002:a05:6402:2801:b0:65c:2377:3344 with SMTP id 4fb4d7f45d1cf-65fb6c8ddf5mr1330988a12.25.1772113273741;
        Thu, 26 Feb 2026 05:41:13 -0800 (PST)
Message-ID: <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com>
Date: Thu, 26 Feb 2026 14:41:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@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: <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="------------Lyie7UzdP4eiqNcARuquM7fO"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------Lyie7UzdP4eiqNcARuquM7fO
Content-Type: multipart/mixed; boundary="------------0lWbT40lvoqZA9s4ATByEDHC";
 protected-headers="v1"
From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= <jgross@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?=
 <marmarek@invisiblethingslab.com>, xen-devel <xen-devel@lists.xenproject.org>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Message-ID: <c712c06f-7fcf-4876-b2d7-f2b7bc6f0dea@suse.com>
Subject: Re: kernel BUG around vmap/vfree -
 xen_enter_lazy_mmu()/xen_leave_lazy_mmu() - Linux 7.0-rc1
References: <aaBH3EAchUwKhrUA@mail-itl>
 <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>
In-Reply-To: <c2f973a0-fcb5-48ea-9638-cd73fa3e37ce@citrix.com>

--------------0lWbT40lvoqZA9s4ATByEDHC
Content-Type: multipart/mixed; boundary="------------O0fJZSWWHUkYdIhq0WB3UwUE"

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

T24gMjYuMDIuMjYgMTQ6MjcsIEFuZHJldyBDb29wZXIgd3JvdGU6DQo+IE9uIDI2LzAyLzIw
MjYgMToxNyBwbSwgTWFyZWsgTWFyY3p5a293c2tpLUfDs3JlY2tpIHdyb3RlOg0KPj4gSGks
DQo+Pg0KPj4gV2hlbiB0ZXN0aW5nIExpbnV4IDcuMC1yYzEgaW4gUFYgZG9tMCwgSSBoaXQg
dGhlIGZvbGxvd2luZyBwYW5pYw0KPj4gc29tZXRpbWVzOg0KPj4NCj4+IFsgIDQzNi44NDk2
MTRdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQ0KPj4gWyAgNDM2Ljg0
OTY2OV0ga2VybmVsIEJVRyBhdCBhcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaHlwZXJ2aXNv
ci5oOjc4IQ0KPj4gWyAgNDM2Ljg0OTY5M10gT29wczogaW52YWxpZCBvcGNvZGU6IDAwMDAg
WyMxXSBTTVAgTk9QVEkNCj4+IFsgIDQzNi44NDk3MTBdIENQVTogMyBVSUQ6IDAgUElEOiA0
MDIxIENvbW06IGt3b3JrZXIvdTI1OjEgTm90IHRhaW50ZWQgNy4wLjAtMC5yYzEuMS5xdWJl
cy4xMDAxLmZjNDEueDg2XzY0ICMxIFBSRUVNUFQoZnVsbCkNCj4+IFsgIDQzNi44NDk3Mjld
IEhhcmR3YXJlIG5hbWU6IFN0YXIgTGFicyBTdGFyQm9vay9TdGFyQm9vaywgQklPUyA4Ljk3
IDEwLzAzLzIwMjMNCj4+IFsgIDQzNi44NDk3NDNdIFdvcmtxdWV1ZTogaTkxNV9mbGlwIGlu
dGVsX2F0b21pY19jb21taXRfd29yayBbaTkxNV0NCj4+IFsgIDQzNi44NTAyMjZdIFJJUDog
ZTAzMDp4ZW5fZW50ZXJfbGF6eV9tbXUrMHgyNC8weDMwDQo+PiBbICA0MzYuODUwMjQ1XSBD
b2RlOiA5MCA5MCA5MCA5MCA5MCA5MCBmMyAwZiAxZSBmYSAwZiAxZiA0NCAwMCAwMCA2NSA4
YiAwNSBiOCBlNSAwMiAwMyA4NSBjMCA3NSAxMCA2NSBjNyAwNSBhOSBlNSAwMiAwMyAwMSAw
MCAwMCAwMCBjMyBjYyBjYyBjYyBjYyA8MGY+IDBiIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAw
IDAwIDAwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwDQo+PiBbICA0MzYuODUwMjcw
XSBSU1A6IGUwMmI6ZmZmZmM5MDA0NTcyN2E2OCBFRkxBR1M6IDAwMDEwMjAyDQo+PiBbICA0
MzYuODUwMjgzXSBSQVg6IDAwMDAwMDAwMDAwMDAwMDEgUkJYOiBmZmZmODg4MTA0MmZhNmQw
IFJDWDogMDAwZmZmZmZmZmUwMDAwMA0KPj4gWyAgNDM2Ljg1MDI5Nl0gUkRYOiAwMDAwMDAw
MDAwMDAwMDAxIFJTSTogZmZmZjg4ODEwYTVhMjk4MCBSREk6IDAwMDAwMDAwMDAwMDAwMDAN
Cj4+IFsgIDQzNi44NTAzMDhdIFJCUDogZmZmZmM5MDA0OWVkYTAwMCBSMDg6IGZmZmZjOTAw
NDllZGMwMDAgUjA5OiBmZmZmYzkwMDQ5ZWRjMDAwDQo+PiBbICA0MzYuODUwMzIwXSBSMTA6
IGZmZmZjOTAwNDllZGMwMDAgUjExOiBmZmZmYzkwMDQ5ZWRiZmZmIFIxMjogZmZmZmM5MDA0
OWVkYzAwMA0KPj4gWyAgNDM2Ljg1MDMzMl0gUjEzOiBmZmZmYzkwMDQ1NzI3YmIwIFIxNDog
ZmZmZmM5MDA0NTcyN2IyOCBSMTU6IDgwMDAwMDAwMDAwMDAwNmINCj4+IFsgIDQzNi44NTAz
NTZdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODg4MjAxZTZlMDAwKDAw
MDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDANCj4+IFsgIDQzNi44NTAzNzFdIENTOiAgZTAz
MCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMNCj4+IFsgIDQzNi44
NTAzODNdIENSMjogMDAwMDY1NDNkYmFkZTI1MCBDUjM6IDAwMDAwMDAxMTVlZjEwMDAgQ1I0
OiAwMDAwMDAwMDAwMDUwNjYwDQo+PiBbICA0MzYuODUwNDAxXSBDYWxsIFRyYWNlOg0KPj4g
WyAgNDM2Ljg1MDQxMF0gIDxUQVNLPg0KPj4gWyAgNDM2Ljg1MDQyMF0gIHZtYXBfcGFnZXNf
cHVkX3JhbmdlKzB4NDdjLzB4NTMwDQo+PiBbICA0MzYuODUwNDM5XSAgdm1hcF9zbWFsbF9w
YWdlc19yYW5nZV9ub2ZsdXNoKzB4MWYxLzB4MmIwDQo+PiBbICA0MzYuODUwNDUxXSAgPyBf
X2dldF92bV9hcmVhX25vZGUrMHgxMGEvMHgxNzANCj4+IFsgIDQzNi44NTA0NjVdICB2bWFw
KzB4NzkvMHhkMA0KPj4gWyAgNDM2Ljg1MDQ3Nl0gIGk5MTVfZ2VtX29iamVjdF9tYXBfcGFn
ZSsweDEzYi8weDIxMCBbaTkxNV0NCj4+IFsgIDQzNi44NTA4MTJdICBpOTE1X2dlbV9vYmpl
Y3RfcGluX21hcCsweDFlMi8weDIxMCBbaTkxNV0NCj4+IFsgIDQzNi44NTExMjNdICBpOTE1
X2dlbV9vYmplY3RfcGluX21hcF91bmxvY2tlZCsweDJkLzB4YTAgW2k5MTVdDQo+PiBbICA0
MzYuODUxNDI0XSAgaW50ZWxfZHNiX2J1ZmZlcl9jcmVhdGUrMHhlZC8weDFhMCBbaTkxNV0N
Cj4+IFsgIDQzNi44NTE3NzhdICBpbnRlbF9kc2JfcHJlcGFyZSsweGNhLzB4MWEwIFtpOTE1
XQ0KPj4gWyAgNDM2Ljg1MjExMF0gIGludGVsX2F0b21pY19kc2JfZmluaXNoKzB4OTIvMHgz
NTAgW2k5MTVdDQo+PiBbICA0MzYuODUyNDU2XSAgaW50ZWxfYXRvbWljX2NvbW1pdF90YWls
KzB4MzI2LzB4ZDQwIFtpOTE1XQ0KPj4gWyAgNDM2Ljg1Mjc2OV0gIHByb2Nlc3Nfb25lX3dv
cmsrMHgxOGQvMHgzODANCj4+IFsgIDQzNi44NTI3NzldICB3b3JrZXJfdGhyZWFkKzB4MTk2
LzB4MzAwDQo+PiBbICA0MzYuODUyNzg3XSAgPyBfX3BmeF93b3JrZXJfdGhyZWFkKzB4MTAv
MHgxMA0KPj4gWyAgNDM2Ljg1Mjc5Nl0gIGt0aHJlYWQrMHhlMy8weDEyMA0KPj4gWyAgNDM2
Ljg1MjgwNV0gID8gX19wZnhfa3RocmVhZCsweDEwLzB4MTANCj4+IFsgIDQzNi44NTI4MTVd
ICByZXRfZnJvbV9mb3JrKzB4MTllLzB4MjYwDQo+PiBbICA0MzYuODUyODI0XSAgPyBfX3Bm
eF9rdGhyZWFkKzB4MTAvMHgxMA0KPj4gWyAgNDM2Ljg1MjgzMl0gIHJldF9mcm9tX2Zvcmtf
YXNtKzB4MWEvMHgzMA0KPj4gWyAgNDM2Ljg1Mjg0Ml0gIDwvVEFTSz4NCj4+IFsgIDQzNi44
NTI4NDddIE1vZHVsZXMgbGlua2VkIGluOiBzbmRfc2VxX2R1bW15IHNuZF9ocnRpbWVyIHNu
ZF9oZGFfY29kZWNfaW50ZWxoZG1pIHNuZF9oZGFfY29kZWNfaGRtaSBzbmRfaGRhX2NvZGVj
X2FsYzI2OSBzbmRfaGRhX2NvZGVjX3JlYWx0ZWtfbGliIHNuZF9oZGFfc2NvZGVjX2NvbXBv
bmVudCBzbmRfaGRhX2NvZGVjX2dlbmVyaWMgc25kX2hkYV9pbnRlbCBzbmRfc29mX3BjaV9p
bnRlbF90Z2wgc25kX3NvZl9wY2lfaW50ZWxfY25sIHNuZF9zb2ZfaW50ZWxfaGRhX2dlbmVy
aWMgc291bmR3aXJlX2ludGVsIHNuZF9zb2ZfaW50ZWxfaGRhX3Nkd19icHQgc25kX3NvZl9p
bnRlbF9oZGFfY29tbW9uIHNuZF9zb2NfaGRhY19oZGEgc25kX3NvZl9pbnRlbF9oZGFfbWxp
bmsgc25kX3NvZl9pbnRlbF9oZGEgc291bmR3aXJlX2NhZGVuY2Ugc25kX3NvZl9wY2kgc25k
X3NvZl94dGVuc2FfZHNwIHNuZF9zb2Ygc25kX3NvZl91dGlscyBzbmRfc29jX2FjcGlfaW50
ZWxfbWF0Y2ggc25kX3NvY19hY3BpX2ludGVsX3NkY2FfcXVpcmtzIHNvdW5kd2lyZV9nZW5l
cmljX2FsbG9jYXRpb24gc25kX3NvY19zZHdfdXRpbHMgc25kX3NvY19hY3BpIGNyYzggaW50
ZWxfcmFwbF9tc3Igc291bmR3aXJlX2J1cyBpbnRlbF9yYXBsX2NvbW1vbiBzbmRfc29jX3Nk
Y2Egc25kX3NvY19hdnMgc25kX3NvY19oZGFfY29kZWMgc25kX2hkYV9leHRfY29yZSBzbmRf
aGRhX2NvZGVjIHZmYXQgaW50ZWxfdW5jb3JlX2ZyZXF1ZW5jeV9jb21tb24gZmF0IHNuZF9o
ZGFfY29yZSBzbmRfaW50ZWxfZHNwY2ZnIHNuZF9pbnRlbF9zZHdfYWNwaSBzbmRfaHdkZXAg
aW50ZWxfcG93ZXJjbGFtcCBzbmRfc29jX2NvcmUgaXdsd2lmaSBzbmRfY29tcHJlc3Mgc3Bp
X25vciBpVENPX3dkdCBhYzk3X2J1cyBpbnRlbF9wbWNfYnh0IGVlMTAwNCBtdGQgc25kX3Bj
bV9kbWFlbmdpbmUgc25kX3NlcSBjZmc4MDIxMSBzbmRfc2VxX2RldmljZSBwY3Nwa3Igc3Bp
X2ludGVsX3BjaSBzbmRfcGNtIHJma2lsbCBzcGlfaW50ZWwgc25kX3RpbWVyIHNuZA0KPj4g
WyAgNDM2Ljg1MjkzOV0gIGkyY19pODAxIHNvdW5kY29yZSBpMmNfc21idXMgaWRtYTY0IGlu
dGVsX3BtY19jb3JlIHBtdF90ZWxlbWV0cnkgcG10X2Rpc2NvdmVyeSBwbXRfY2xhc3MgaW50
ZWxfaGlkIGludGVsX3BtY19zc3JhbV90ZWxlbWV0cnkgaW50ZWxfc2N1X3BsdGRydiBzcGFy
c2Vfa2V5bWFwIGpveWRldiBsb29wIGZ1c2UgeGVuZnMgbmZuZXRsaW5rIHZzb2NrX2xvb3Bi
YWNrIHZtd192c29ja192aXJ0aW9fdHJhbnNwb3J0X2NvbW1vbiB2bXdfdnNvY2tfdm1jaV90
cmFuc3BvcnQgdnNvY2sgenJhbSB2bXdfdm1jaSBsejRoY19jb21wcmVzcyBsejRfY29tcHJl
c3MgZG1fdGhpbl9wb29sIGRtX3BlcnNpc3RlbnRfZGF0YSBkbV9iaW9fcHJpc29uIGRtX2Ny
eXB0IHhlIGRybV90dG1faGVscGVyIGRybV9zdWJhbGxvY19oZWxwZXIgZ3B1X3NjaGVkIGRy
bV9ncHV2bSBkcm1fZXhlYyBkcm1fZ3B1c3ZtX2hlbHBlciBpOTE1IGkyY19hbGdvX2JpdCBk
cm1fYnVkZHkgaGlkX211bHRpdG91Y2ggaTJjX2hpZF9hY3BpIGdoYXNoX2NsbXVsbmlfaW50
ZWwgdmlkZW8gbnZtZSB3bWkgdHRtIGkyY19oaWQgbnZtZV9jb3JlIG52bWVfa2V5cmluZyBk
cm1fZGlzcGxheV9oZWxwZXIgbnZtZV9hdXRoIHhoY2lfcGNpIHBpbmN0cmxfdGlnZXJsYWtl
IHRodW5kZXJib2x0IGhrZGYgY2VjIHhoY2lfaGNkIGludGVsX3ZzZWMgc2VyaW9fcmF3IHhl
bl9hY3BpX3Byb2Nlc3NvciB4ZW5fcHJpdmNtZCB4ZW5fcGNpYmFjayB4ZW5fYmxrYmFjayB4
ZW5fZ250YWxsb2MgeGVuX2dudGRldiB4ZW5fZXZ0Y2huIHNjc2lfZGhfcmRhYyBzY3NpX2Ro
X2VtYyBzY3NpX2RoX2FsdWEgdWlucHV0IGkyY19kZXYNCj4+IFsgIDQzNi44NTMxODNdIC0t
LVsgZW5kIHRyYWNlIDAwMDAwMDAwMDAwMDAwMDAgXS0tLQ0KPj4NCj4+IG9yIHRoaXM6DQo+
Pg0KPj4gWyAgNTQ4LjczNjg4NF0gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0t
LS0tDQo+PiBbICA1NDguNzM2OTA3XSBrZXJuZWwgQlVHIGF0IGFyY2gveDg2L2luY2x1ZGUv
YXNtL3hlbi9oeXBlcnZpc29yLmg6ODUhDQo+PiBbICA1NDguNzM2OTIzXSBPb3BzOiBpbnZh
bGlkIG9wY29kZTogMDAwMCBbIzFdIFNNUCBOT1BUSQ0KPj4gWyAgNTQ4LjczNjkzNV0gQ1BV
OiAwIFVJRDogMCBQSUQ6IDIwNiBDb21tOiBrd29ya2VyLzA6MiBOb3QgdGFpbnRlZCA3LjAu
MC0wLnJjMS4xLnF1YmVzLjEwMDEuZmM0MS54ODZfNjQgIzEgUFJFRU1QVChmdWxsKQ0KPj4g
WyAgNTQ4LjczNjk0OV0gSGFyZHdhcmUgbmFtZTogTEVOT1ZPIDIzNDdBNDUvMjM0N0E0NSwg
QklPUyBDQkVUNDAwMCBOaXRyb2tleS12MC4yLjAtMjYwOC1nYTY0OTU5NyAwMS8wMS8xOTcw
DQo+PiBbICA1NDguNzM2OTYyXSBXb3JrcXVldWU6IGV2ZW50cyBkZWxheWVkX3ZmcmVlX3dv
cmsNCj4+IFsgIDU0OC43MzY5NzZdIFJJUDogZTAzMDp4ZW5fbGVhdmVfbGF6eV9tbXUrMHg0
NC8weDUwDQo+PiBbICA1NDguNzM2OTg5XSBDb2RlOiAwMiAwMyA4MyBmOCAwMSA3NSAyMyA2
NSBjNyAwNSA2YyBlNCAwMiAwMyAwMCAwMCAwMCAwMCA2NSBmZiAwZCA3ZCBiOCAwMiAwMyA3
NCAwNSBjMyBjYyBjYyBjYyBjYyBlOCA2MSA1ZCBmZCBmZiBjMyBjYyBjYyBjYyBjYyA8MGY+
IDBiIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDkwIDkwIDkwIDkwIDkwIDkwIDkw
IDkwIDkwIDkwDQo+PiBbICA1NDguNzM3MDEwXSBSU1A6IGUwMmI6ZmZmZmM5MDA0MDYwN2Nm
MCBFRkxBR1M6IDAwMDEwMjk3DQo+PiBbICA1NDguNzM3MDE4XSBSQVg6IDAwMDAwMDAwMDAw
MDAwMDAgUkJYOiBmZmZmODg4MTY0YTcwNDA4IFJDWDogMDAwMDAwMDAwMDAwMDAwMA0KPj4g
WyAgNTQ4LjczNzAyOV0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwZmZmZmZmZmZm
ZjAwMCBSREk6IGZmZmY4ODgxMDY5YzAwMDANCj4+IFsgIDU0OC43MzcwMzldIFJCUDogZmZm
ZmM5MDA0OTY4MTAwMCBSMDg6IGZmZmZjOTAwNDk2ODEwMDAgUjA5OiAwMDAwMDAwMDAwMDAw
MDI3DQo+PiBbICA1NDguNzM3MDUwXSBSMTA6IDAwMDAwMDAwMDAwMDAwMjcgUjExOiBmZWZl
ZmVmZWZlZmVmZWZmIFIxMjogZmZmZmM5MDA0OTY4MTAwMA0KPj4gWyAgNTQ4LjczNzA2MF0g
UjEzOiBmZmZmODg4MTAwMmZkMjU4IFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IGZmZmZj
OTAwNDA2MDdkYWMNCj4+IFsgIDU0OC43MzcwNzldIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgw
MDAwKSBHUzpmZmZmODg4MWY4OGVlMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAN
Cj4+IFsgIDU0OC43MzcwOTBdIENTOiAgZTAzMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAw
MDAwMDAwODAwNTAwMzMNCj4+IFsgIDU0OC43MzcwOTldIENSMjogMDAwMDU1NTc2YzJlNjA1
OCBDUjM6IDAwMDAwMDAxMGQ0N2IwMDAgQ1I0OiAwMDAwMDAwMDAwMDUwNjYwDQo+PiBbICA1
NDguNzM3MTE1XSBDYWxsIFRyYWNlOg0KPj4gWyAgNTQ4LjczNzEyM10gIDxUQVNLPg0KPj4g
WyAgNTQ4LjczNzEyOF0gIHZ1bm1hcF9wbWRfcmFuZ2UuaXNyYS4wKzB4MWYxLzB4MmUwDQo+
PiBbICA1NDguNzM3MTQyXSAgdnVubWFwX3A0ZF9yYW5nZSsweDE3ZC8weDI5MA0KPj4gWyAg
NTQ4LjczNzE1MV0gIF9fdnVubWFwX3JhbmdlX25vZmx1c2grMHgxODIvMHgxZDANCj4+IFsg
IDU0OC43MzcxNjFdICA/IF9yYXdfc3Bpbl91bmxvY2srMHhlLzB4MzANCj4+IFsgIDU0OC43
MzcxNzFdICByZW1vdmVfdm1fYXJlYSsweDQwLzB4NzANCj4+IFsgIDU0OC43MzcxODBdICB2
ZnJlZS5wYXJ0LjArMHgxYi8weDI5MA0KPj4gWyAgNTQ4LjczNzE4OV0gIGRlbGF5ZWRfdmZy
ZWVfd29yaysweDM1LzB4NTANCj4+IFsgIDU0OC43MzcxOThdICBwcm9jZXNzX29uZV93b3Jr
KzB4MThkLzB4MzgwDQo+PiBbICA1NDguNzM3MjA3XSAgd29ya2VyX3RocmVhZCsweDE5Ni8w
eDMwMA0KPj4gWyAgNTQ4LjczNzIxNV0gID8gX19wZnhfd29ya2VyX3RocmVhZCsweDEwLzB4
MTANCj4+IFsgIDU0OC43MzcyMjRdICBrdGhyZWFkKzB4ZTMvMHgxMjANCj4+IFsgIDU0OC43
MzcyMzNdICA/IF9fcGZ4X2t0aHJlYWQrMHgxMC8weDEwDQo+PiBbICA1NDguNzM3MjQyXSAg
cmV0X2Zyb21fZm9yaysweDE5ZS8weDI2MA0KPj4gWyAgNTQ4LjczNzI1MF0gID8gX19wZnhf
a3RocmVhZCsweDEwLzB4MTANCj4+IFsgIDU0OC43MzcyNThdICByZXRfZnJvbV9mb3JrX2Fz
bSsweDFhLzB4MzANCj4+IFsgIDU0OC43MzcyNjldICA8L1RBU0s+DQo+PiBbICA1NDguNzM3
Mjc0XSBNb2R1bGVzIGxpbmtlZCBpbjogdmZhdCBmYXQgc25kX3NlcV9kdW1teSBzbmRfaHJ0
aW1lciBhdGg5ayBhdGg5a19jb21tb24gc25kX2hkYV9jb2RlY19pbnRlbGhkbWkgc25kX2hk
YV9jb2RlY19oZG1pIGF0aDlrX2h3IHNuZF9oZGFfY29kZWNfYWxjMjY5IHNuZF9oZGFfY29k
ZWNfcmVhbHRla19saWIgc25kX2hkYV9zY29kZWNfY29tcG9uZW50IHNuZF9oZGFfY29kZWNf
Z2VuZXJpYyBzbmRfaGRhX2ludGVsIHNuZF9oZGFfY29kZWMgbWFjODAyMTEgc25kX2hkYV9j
b3JlIHNuZF9pbnRlbF9kc3BjZmcgc25kX2ludGVsX3Nkd19hY3BpIHNuZF9od2RlcCBhdGgg
c25kX3NlcSBzbmRfc2VxX2RldmljZSBzbmRfY3RsX2xlZCBjZmc4MDIxMSBzbmRfcGNtIGF0
MjQgdGhpbmtwYWRfYWNwaSBpbnRlbF9yYXBsX21zciBpMmNfaTgwMSBzbmRfdGltZXIgc3Bh
cnNlX2tleW1hcCBpVENPX3dkdCBpbnRlbF9yYXBsX2NvbW1vbiBwbGF0Zm9ybV9wcm9maWxl
IGludGVsX3Bvd2VyY2xhbXAgaW50ZWxfcG1jX2J4dCBwY3Nwa3IgaTJjX3NtYnVzIHJma2ls
bCBsaWJhcmM0IHNuZCBzb3VuZGNvcmUgbWVpX21lIGUxMDAwZSBtZWkgam95ZGV2IGxwY19p
Y2ggbG9vcCBmdXNlIHhlbmZzIG5mbmV0bGluayB2c29ja19sb29wYmFjayB2bXdfdnNvY2tf
dmlydGlvX3RyYW5zcG9ydF9jb21tb24gdm13X3Zzb2NrX3ZtY2lfdHJhbnNwb3J0IHZzb2Nr
IHpyYW0gdm13X3ZtY2kgbHo0aGNfY29tcHJlc3MgbHo0X2NvbXByZXNzIGRtX3RoaW5fcG9v
bCBkbV9wZXJzaXN0ZW50X2RhdGEgZG1fYmlvX3ByaXNvbiBkbV9jcnlwdCBpOTE1IGkyY19h
bGdvX2JpdCBkcm1fYnVkZHkgZ2hhc2hfY2xtdWxuaV9pbnRlbCB0dG0gc2RoY2lfcGNpIGRy
bV9kaXNwbGF5X2hlbHBlciBzZGhjaV91aHMyIHNkaGNpIHZpZGVvIHhoY2lfcGNpIGNxaGNp
IHdtaSBjZWMgeGhjaV9oY2QgZWhjaV9wY2kgbW1jX2NvcmUgZWhjaV9oY2Qgc2VyaW9fcmF3
IHhlbl9hY3BpX3Byb2Nlc3NvciB4ZW5fcHJpdmNtZCB4ZW5fcGNpYmFjaw0KPj4gWyAgNTQ4
LjczNzM0OF0gIHhlbl9ibGtiYWNrIHhlbl9nbnRhbGxvYyB4ZW5fZ250ZGV2IHhlbl9ldnRj
aG4gc2NzaV9kaF9yZGFjIHNjc2lfZGhfZW1jIHNjc2lfZGhfYWx1YSB1aW5wdXQgaTJjX2Rl
dg0KPj4gWyAgNTQ4LjczNzQ2OV0gLS0tWyBlbmQgdHJhY2UgMDAwMDAwMDAwMDAwMDAwMCBd
LS0tDQo+Pg0KPj4gSSBkb24ndCBoYXZlIGNsZWFyIHBhdHRlcm4gd2hlbiB0aGlzIGhhcHBl
bnMsIG9uZSB3YXMgZHVyaW5nIGhvc3QNCj4+IHN1c3BlbmQsIGJ1dCB0aGUgb3RoZXIgd2Fz
IGR1cmluZyAibm9ybWFsIiB0ZXN0IHJ1biAoc3RhcnRpbmcvc3RvcHBpbmcNCj4+IGRvbVVz
IGFuZCBydW5uaW5nIHN0dWZmIGFyb3VuZCB0aGVtKS4gTm90ZSBhbHNvIG9uZSBvZiB0aG9z
ZSBpcyBJbnRlbA0KPj4gYW5kIHRoZSBvdGhlciBBTUQsIHNvIGl0IGlzbid0IHJlYWxseSBo
YXJkd2FyZSBzcGVjaWZpYy4NCj4+DQo+PiBTbGlnaHRseSBtb3JlIGRldGFpbHMgd2l0aCBs
aW5rcyAoZXNwZWNpYWxseSBzZXJpYWwwLnR4dCBpbiB0aGUgbG9ncw0KPj4gdGFiKSBhdA0K
Pj4gaHR0cHM6Ly9naXRodWIuY29tL1F1YmVzT1MvcXViZXMtbGludXgta2VybmVsL3B1bGwv
NjYyI2lzc3VlY29tbWVudC0zOTYzMzI2MTg4DQo+Pg0KPj4gQW55IGlkZWE/DQo+Pg0KPiAN
Cj4gVGhhdCBsb29rcyBsaWtlIHRoZSBpc3N1ZSBKdWVyZ2VuIGZpeGVkIHdpdGg6DQo+IA0K
PiBodHRwczovL2xvcmUua2VybmVsLm9yZy94ZW4tZGV2ZWwvMjAyNjAyMjAxMjM3MTUuODM0
ODQ4LTEtamdyb3NzQHN1c2UuY29tLw0KDQpObywgaXQgZG9lc24ndC4gVGhlIGZpeCBpcyBh
bHJlYWR5IGluIHJjMSwgYW5kIHRoZSBjcmFzaCB3YXMgcXVpdGUgZWFybHkgZHVyaW5nDQpi
b290IChiZWZvcmUgYW55IHNlY29uZGFyeSBDUFVzIHdlcmUgYnJvdWdodCB1cCkuDQoNCkkg
Z3Vlc3MgdGhpcyBwcm9ibGVtIGlzIHJlbGF0ZWQgdG8gdGhlIGxhenlfbW11X3N0YXRlIHNl
cmllcyBbMV0uDQoNCg0KSnVlcmdlbg0KDQpbMV06IGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn
L2xrbWwvMjAyNTEyMTUxNTAzMjMuMjIxODYwOC0xLWtldmluLmJyb2Rza3lAYXJtLmNvbS8N
Cg==
--------------O0fJZSWWHUkYdIhq0WB3UwUE
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-----

--------------O0fJZSWWHUkYdIhq0WB3UwUE--

--------------0lWbT40lvoqZA9s4ATByEDHC--

--------------Lyie7UzdP4eiqNcARuquM7fO
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/Ey8FAmmgTXkFAwAAAAAACgkQsN6d1ii/Ey8V
oQf7B+miPa3d4HEwhkX02lQCXLSANu1Dr7m4zT+Ubbc7vxHFNNENHRrRHMNRImbjW5H1UCDq6shY
gQbxPwWwuEaQoG4PUdPqQKKUO9ILXiuF6tD6sUTrIj/BoSEeovULeNezLiOzxsMbbfCUf0vsVRcu
z5m8eTBpyvCudc7lMC+ADKRysGnqu11o68EPmx06UgqNBLfoxOoWaQpmxkgLsmgCd4qn8Lp3jYuQ
9pIJxuDmGbRRBTihPFQdKsinwBR+R7jPT46NsiZ6rSXdT07j58LRtWKxrHXNrDp4nKAVNqyvMveL
WvuJvwJ6gyeA1MMIk8cHfDDvjBxfTprmHd/Z+gtxEQ==
=fbat
-----END PGP SIGNATURE-----

--------------Lyie7UzdP4eiqNcARuquM7fO--


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 14:32:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 14:32:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241822.1542716 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcQ0-0003xh-3x; Thu, 26 Feb 2026 14:32:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241822.1542716; Thu, 26 Feb 2026 14:32: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 1vvcQ0-0003xa-0z; Thu, 26 Feb 2026 14:32:44 +0000
Received: by outflank-mailman (input) for mailman id 1241822;
 Thu, 26 Feb 2026 14:32: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcPz-0003xU-6L
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 14:32:43 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id ff1aa8e9-131f-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 15:32:37 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 0AA59427FB2E;
 Thu, 26 Feb 2026 09:32:15 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: ff1aa8e9-131f-11f1-9ccf-f158ae23cfc8
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Juergen Gross <jgross@suse.com>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>
Subject: [PATCH v4 0/10] xen: Add NUMA-aware memory claims for domains
Date: Thu, 26 Feb 2026 14:29:14 +0000
Message-Id: <cover.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit


This series introduces NUMA-aware memory claims. Xen allocates the claimed
memory only for allocations from domains with a claim for this memory.

The new hypercall API is designed to support staking claims on multiple NUMA
nodes for a domain. It provides a foundation that can be extended to support
multi-node claims without changing the hypercall API.

Patch Structure:

 1. xen/page_alloc:  Extract claim consumption on allocation into static inline
 2. xen/page_alloc:  Add per-node free page counts; make counters unsigned long
 3. xen/page_alloc:  Add the implementation of NUMA-node-specific claims
 4. xen/page_alloc:  Consolidate per-node counters into avail[node][maxzone+x]
                     Is optional: transparent, no functional change, not needed
 5. xen/domain:      Add the XEN_DOMCTL_claim_memory hypercall handler
 6. xsm/flask:       Add a Flask security policy for the new hypercall
 7. libs/ctrl/xc:    Add the libxenctrl API xc_domain_claim_memory()
 8. ocaml/libx/xc:   Add the OCaml binding for xc_domain_claim_memory()
 9. tools/tests:     Add testing per-node claims and claims protection
10. doc/guest-guide: Add comprehensive API documentation

The updated guest-guide is deployed here for reviewing the created output:
https://bernhardk-xen-review.readthedocs.io/v4.22-claims.v4/guest-guide/

Changes in v4:

- The logic for adjusting claimed pages on allocation has been completely
  reworked to align with recent upstream changes. (Roger Pau Monné)

- The check for node memory availability has been replaced with a corrected
  implementation. (Marcus Granado, Roger Pau Monné, Bernhard Kaindl)

- The new hypercall API patch has been refactored and split into separate
  patches for the DOMCTL, Flask policy, and libxenctrl implementation.

- Added initial tests and Sphinx documentation for the new API.

- With improvements and rebasing on upstream changes, this series has changed
  very much. Reviewing it as a whole is recommended over an incremental review.

Credits:

- Alejandro Vallejo developed the initial version
- Roger Pau Monné updated the implementation and upstreamed key improvements
- Marcus Granado contributed analysis and suggestions during development
- Bernhard Kaindl developed the new domctl API, extended tests and documentation
  and developed the refactored handler for consuming claims on allocation.

Comments and feedback welcome.

Bernhard Kaindl (10):
  xen/page_alloc: Extract code for consuming claims into inline function
  xen/page_alloc: Optimize getting per-NUMA-node free page counts
  xen/page_alloc: Implement NUMA-node-specific claims
  xen/page_alloc: Consolidate per-node counters into avail[] array
  xen/domain: Add DOMCTL handler for claiming memory with NUMA awareness
  xsm/flask: Add XEN_DOMCTL_claim_memory to flask
  tools/lib/ctrl/xc: Add xc_domain_claim_memory() to libxenctrl
  tools/ocaml/libs/xc: add OCaml domain_claim_memory binding
  tools/tests: Update the claims test to test claim_memory hypercall
  docs/guest-guide: document the memory claim hypercalls

 .readthedocs.yaml                             |  13 +-
 docs/conf.py                                  |   6 +-
 .../dom/DOMCTL_claim_memory-classes.mmd       |  51 ++++
 .../dom/DOMCTL_claim_memory-seqdia.mmd        |  23 ++
 .../dom/DOMCTL_claim_memory-workflow.mmd      |  23 ++
 docs/guest-guide/dom/DOMCTL_claim_memory.rst  | 125 ++++++++
 docs/guest-guide/dom/index.rst                |  14 +
 docs/guest-guide/index.rst                    |  23 ++
 docs/guest-guide/mem/XENMEM_claim_pages.rst   |  68 +++++
 docs/guest-guide/mem/index.rst                |  12 +
 docs/hypervisor-guide/index.rst               |   5 +
 docs/hypervisor-guide/mm/claims.rst           | 114 +++++++
 docs/hypervisor-guide/mm/index.rst            |  10 +
 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                   |  27 ++
 tools/ocaml/libs/xc/xenctrl.ml                |  11 +
 tools/ocaml/libs/xc/xenctrl.mli               |  11 +
 tools/ocaml/libs/xc/xenctrl_stubs.c           |  43 +++
 tools/tests/mem-claim/test-mem-claim.c        | 277 ++++++++++++++++--
 xen/common/domain.c                           |  32 +-
 xen/common/domctl.c                           |   9 +
 xen/common/memory.c                           |   3 +-
 xen/common/page_alloc.c                       | 254 +++++++++++++---
 xen/include/public/domctl.h                   |  38 +++
 xen/include/xen/domain.h                      |   2 +
 xen/include/xen/mm.h                          |   4 +-
 xen/include/xen/sched.h                       |   1 +
 xen/xsm/flask/hooks.c                         |   3 +
 xen/xsm/flask/policy/access_vectors           |   2 +
 31 files changed, 1134 insertions(+), 76 deletions(-)
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-classes.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory.rst
 create mode 100644 docs/guest-guide/dom/index.rst
 create mode 100644 docs/guest-guide/mem/XENMEM_claim_pages.rst
 create mode 100644 docs/guest-guide/mem/index.rst
 create mode 100644 docs/hypervisor-guide/mm/claims.rst
 create mode 100644 docs/hypervisor-guide/mm/index.rst

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 14:35:06 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 14:35:06 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241848.1542726 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcSH-0004W0-EY; Thu, 26 Feb 2026 14:35:05 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241848.1542726; Thu, 26 Feb 2026 14:35: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 1vvcSH-0004Vt-Bk; Thu, 26 Feb 2026 14:35:05 +0000
Received: by outflank-mailman (input) for mailman id 1241848;
 Thu, 26 Feb 2026 14:35: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcSF-0004VT-U5
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 14:35:03 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 55065a17-1320-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 15:35:01 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 84C00814F34A;
 Thu, 26 Feb 2026 09:34:29 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 55065a17-1320-11f1-9ccf-f158ae23cfc8
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 01/10] xen/page_alloc: Extract code for consuming claims into inline function
Date: Thu, 26 Feb 2026 14:29:15 +0000
Message-Id: <7dd887bc26830d6c50e5bc2606391963e65285a1.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Refactor the claims consumption code in preparation for node-claims.
Lays the groundwork for adding the consumption of NUMA claims to it.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/common/page_alloc.c | 56 +++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 25 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 588b5b99cbc7..6f7f30c64605 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -518,6 +518,34 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
     return d->tot_pages;
 }
 
+/* Release outstanding claims on the domain, host and later also node */
+static inline
+void release_outstanding_claims(struct domain *d, unsigned long release)
+{
+    ASSERT(spin_is_locked(&heap_lock));
+    BUG_ON(outstanding_claims < release);
+    outstanding_claims -= release;
+    d->outstanding_pages -= release;
+}
+
+/*
+ * Consume outstanding claimed pages when allocating pages for a domain.
+ * NB. The alloc could (in principle) fail in assign_pages() afterwards. In that
+ * case, the consumption is not reversed, but as claims are used only during
+ * domain build and d is destroyed if the build fails, this has no significance.
+ */
+static inline
+void consume_outstanding_claims(struct domain *d, unsigned long allocation)
+{
+    if ( !d || !d->outstanding_pages )
+        return;
+    ASSERT(spin_is_locked(&heap_lock));
+
+    /* Of course, the domain can only release up its outstanding claims */
+    allocation = min(allocation, d->outstanding_pages + 0UL);
+    release_outstanding_claims(d, allocation);
+}
+
 int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
 {
     int ret = -ENOMEM;
@@ -535,8 +563,7 @@ int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
     /* pages==0 means "unset" the claim. */
     if ( pages == 0 )
     {
-        outstanding_claims -= d->outstanding_pages;
-        d->outstanding_pages = 0;
+        release_outstanding_claims(d, d->outstanding_pages);
         ret = 0;
         goto out;
     }
@@ -1048,29 +1075,8 @@ static struct page_info *alloc_heap_pages(
     total_avail_pages -= request;
     ASSERT(total_avail_pages >= 0);
 
-    if ( d && d->outstanding_pages && !(memflags & MEMF_no_refcount) )
-    {
-        /*
-         * Adjust claims in the same locked region where total_avail_pages is
-         * adjusted, not doing so would lead to a window where the amount of
-         * free memory (avail - claimed) would be incorrect.
-         *
-         * Note that by adjusting the claimed amount here it's possible for
-         * pages to fail to be assigned to the claiming domain while already
-         * having been subtracted from d->outstanding_pages.  Such claimed
-         * amount is then lost, as the pages that fail to be assigned to the
-         * domain are freed without replenishing the claim.  This is fine given
-         * claims are only to be used during physmap population as part of
-         * domain build, and any failure in assign_pages() there will result in
-         * the domain being destroyed before creation is finished.  Losing part
-         * of the claim makes no difference.
-         */
-        unsigned long outstanding = min(d->outstanding_pages + 0UL, request);
-
-        BUG_ON(outstanding > outstanding_claims);
-        outstanding_claims -= outstanding;
-        d->outstanding_pages -= outstanding;
-    }
+    if ( !(memflags & MEMF_no_refcount) )
+        consume_outstanding_claims(d, request);
 
     check_low_mem_virq();
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 14:40:27 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 14:40:27 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241883.1542736 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcXP-00066r-0A; Thu, 26 Feb 2026 14:40:23 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241883.1542736; Thu, 26 Feb 2026 14:40: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 1vvcXO-00066k-TQ; Thu, 26 Feb 2026 14:40:22 +0000
Received: by outflank-mailman (input) for mailman id 1241883;
 Thu, 26 Feb 2026 14:40: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcXN-00066e-Bc
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 14:40:21 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 0b3f6573-1321-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 15:40:15 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id CAC93428FD52;
 Thu, 26 Feb 2026 09:39:24 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0b3f6573-1321-11f1-9ccf-f158ae23cfc8
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>
Subject: [PATCH v4 02/10] xen/page_alloc: Optimize getting per-NUMA-node free page counts
Date: Thu, 26 Feb 2026 14:29:16 +0000
Message-Id: <c56658d1248660543fdba162810b0629c081bd94.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: Alejandro Vallejo <alejandro.vallejo@cloud.com>

Add per-node free page counters (node_avail_pages[]), protected by
heap_lock, updated in real-time in lockstep with total_avail_pages
as pages are allocated and freed.

This replaces the avail_heap_pages() loop over all online nodes and
zones in avail_node_heap_pages() with a direct O(1) array lookup,
making it efficient to get the total free pages for a given NUMA node.

The per-node counts are currently provided using sysctl for NUMA
placement decisions of domain builders and monitoring, and for
debugging with the debug-key 'u' to print NUMA info to the printk buffer.

They will also be used for checking if a NUMA node may be able to
satisfy a NUMA-node-specific allocation by comparing node availability
against node-specific claims before looking for pages in the zones
of the node.

Also change total_avail_pages and outstanding_claims to unsigned long:

Those never become negative (we protect that with ASSERT/BUG_ON already),
and converting them to unsigned long makes that explicit, and also
fixes signed/unsigned comparison warnings.

This only needs moving the ASSERT to before the subtraction.
See the previous commit moving the BUG_ON for outstanding_claims.

This lays the groundwork for implementing per-node claims.

Signed-off-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/common/page_alloc.c | 36 +++++++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 6f7f30c64605..2176cb113fe2 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -483,11 +483,32 @@ static heap_by_zone_and_order_t *_heap[MAX_NUMNODES];
 
 static unsigned long node_need_scrub[MAX_NUMNODES];
 
+/* avail[node][zone] is the number of free pages on that node and zone. */
 static unsigned long *avail[MAX_NUMNODES];
-static long total_avail_pages;
+/* Global available pages, updated in real-time, protected by heap_lock */
+static unsigned long total_avail_pages;
 
+/* The global heap lock, protecting access to the heap and related structures */
 static DEFINE_SPINLOCK(heap_lock);
-static long outstanding_claims; /* total outstanding claims by all domains */
+
+/*
+ * Per-node count of available pages, protected by heap_lock, updated in
+ * lockstep with total_avail_pages as pages are allocated and freed.
+ *
+ * Each entry holds the sum of avail[node][zone] across all zones, used for
+ * efficiently checking node-local availability for allocation requests.
+ * Also provided via sysctl for NUMA placement decisions of domain builders
+ * and monitoring, and logged with debug-key 'u' for NUMA debugging.
+ *
+ * Maintaining this under heap_lock does not reduce scalability, as the
+ * allocator is already serialized on it. The accessor macro abstracts the
+ * storage to ease future changes (e.g. moving to per-node lock granularity).
+ */
+#define node_avail_pages(node) (node_avail_pages[node])
+static unsigned long node_avail_pages[MAX_NUMNODES];
+
+/* total outstanding claims by all domains */
+static unsigned long outstanding_claims;
 
 static unsigned long avail_heap_pages(
     unsigned int zone_lo, unsigned int zone_hi, unsigned int node)
@@ -1072,8 +1093,10 @@ static struct page_info *alloc_heap_pages(
 
     ASSERT(avail[node][zone] >= request);
     avail[node][zone] -= request;
+    ASSERT(node_avail_pages(node) >= request);
+    node_avail_pages(node) -= request;
+    ASSERT(total_avail_pages >= request);
     total_avail_pages -= request;
-    ASSERT(total_avail_pages >= 0);
 
     if ( !(memflags & MEMF_no_refcount) )
         consume_outstanding_claims(d, request);
@@ -1235,8 +1258,10 @@ static int reserve_offlined_page(struct page_info *head)
             continue;
 
         avail[node][zone]--;
+        ASSERT(node_avail_pages(node) > 0);
+        node_avail_pages(node)--;
+        ASSERT(total_avail_pages > 0);
         total_avail_pages--;
-        ASSERT(total_avail_pages >= 0);
 
         page_list_add_tail(cur_head,
                            test_bit(_PGC_broken, &cur_head->count_info) ?
@@ -1559,6 +1584,7 @@ static void free_heap_pages(
     }
 
     avail[node][zone] += 1 << order;
+    node_avail_pages(node) += 1 << order;
     total_avail_pages += 1 << order;
     if ( need_scrub )
     {
@@ -2816,7 +2842,7 @@ unsigned long avail_domheap_pages_region(
 
 unsigned long avail_node_heap_pages(unsigned int nodeid)
 {
-    return avail_heap_pages(MEMZONE_XEN, NR_ZONES -1, nodeid);
+    return node_avail_pages(nodeid);
 }
 
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 14:43:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 14:43:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241908.1542745 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcaL-0006eY-Ce; Thu, 26 Feb 2026 14:43:25 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241908.1542745; Thu, 26 Feb 2026 14:43:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcaL-0006eR-9y; Thu, 26 Feb 2026 14:43:25 +0000
Received: by outflank-mailman (input) for mailman id 1241908;
 Thu, 26 Feb 2026 14:43: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcaK-0006eL-7v
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 14:43:24 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 7b97fbed-1321-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 15:43:16 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 4A509428FD66;
 Thu, 26 Feb 2026 09:42:54 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 7b97fbed-1321-11f1-9ccf-f158ae23cfc8
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Alejandro Vallejo <alejandro.vallejo@cloud.com>,
	Marcus Granado <marcus.granado@citrix.com>
Subject: [PATCH v4 03/10] xen/page_alloc: Implement NUMA-node-specific claims
Date: Thu, 26 Feb 2026 14:29:17 +0000
Message-Id: <6927e45bf7c2ce56b8849c16a2024edb86034358.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Extend the domain memory claims infrastructure to optionally target
a NUMA node, preserving backward compatibility for existing callers.

Based on the design by Alejandro Vallejo with critical design changes
by Roger Pau Monné and me, including suggestions by Marcus Granado.

Overview:

- Add tracking of per-node claims
- Add tracking of the node of a claim in d->claim_node
- Add per-node claims to domain_set_outstanding_pages()
- Add per-node claims to consume_outstanding_claims()
- Add per-node claims to release_outstanding_claims()
- Add protecting per-node claims to get_free_buddy()
- Update host claim protection to include both claimed and free pages

Helper functions for claims:

- available_after_claims() gives the pages avaiable after outstanding claims

- host_allocatable_request() updates the check for globale memory to combine
  d->outstanding_claims with the free pages when permittign an allocation.

- node_allocatable_request() is used in get_free_buddy() to enforce
  per-node claim protection and skip to the next node if insufficient.

Cross-node claim preservation (alloc_node != d->claim_node):

- When allocating with alloc_node != d->claim_node, preserve the claim
  unless d would exceed d->max_pages, in which case consume just enough
  to stay within d->max_pages to not book excess memory to the domain.

Update the existing callers of domain_set_outstanding_pages() (domain_kill
and XENMEM_claim_pages) to pass NUMA_NO_NODE for backward compatibility.

This lays the groundwork for a NUMA claims hypercall.

Suggested-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
Suggested-by: Roger Pau Monné <roger.pau@citrix.com>
Suggested-by: Marcus Granado <marcus.granado@citrix.com>
Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/common/domain.c     |   3 +-
 xen/common/memory.c     |   3 +-
 xen/common/page_alloc.c | 147 ++++++++++++++++++++++++++++++++++++----
 xen/include/xen/mm.h    |   4 +-
 xen/include/xen/sched.h |   1 +
 5 files changed, 140 insertions(+), 18 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index 2e46207d2db0..e7861259a2b3 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -944,6 +944,7 @@ struct domain *domain_create(domid_t domid,
     spin_lock_init(&d->node_affinity_lock);
     d->node_affinity = NODE_MASK_ALL;
     d->auto_node_affinity = 1;
+    d->claim_node = NUMA_NO_NODE;
 
     spin_lock_init(&d->shutdown_lock);
     d->shutdown_code = SHUTDOWN_CODE_INVALID;
@@ -1311,7 +1312,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, 0, NUMA_NO_NODE);
         /* fallthrough */
     case DOMDYING_dying:
         rc = domain_teardown(d);
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 918510f287a0..85e242ad9e61 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -1798,7 +1798,8 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
             rc = -EINVAL;
 
         if ( !rc )
-            rc = domain_set_outstanding_pages(d, reservation.nr_extents);
+            rc = domain_set_outstanding_pages(d, reservation.nr_extents,
+                                              NUMA_NO_NODE);
 
         rcu_unlock_domain(d);
 
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 2176cb113fe2..6fc7d4cb9d40 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -488,7 +488,10 @@ static unsigned long *avail[MAX_NUMNODES];
 /* Global available pages, updated in real-time, protected by heap_lock */
 static unsigned long total_avail_pages;
 
-/* The global heap lock, protecting access to the heap and related structures */
+/*
+ * The global heap lock, protecting access to the heap and related structures
+ * It protects the heap and claims, d->outstanding_pages and d->claim_node
+ */
 static DEFINE_SPINLOCK(heap_lock);
 
 /*
@@ -510,6 +513,71 @@ static unsigned long node_avail_pages[MAX_NUMNODES];
 /* total outstanding claims by all domains */
 static unsigned long outstanding_claims;
 
+/*
+ * Per-node accessor for outstanding claims, protected by heap_lock, updated
+ * in lockstep with the global outstanding_claims and d->outstanding_pages
+ * in domain_set_outstanding_pages() and release_outstanding_claims().
+ *
+ * node_outstanding_claims(node) is used to determine the outstanding claims on
+ * a node, which are subtracted from the node's available pages to determine if
+ * a request can be satisfied without violating the node's memory availability.
+ */
+#define node_outstanding_claims(node) (node_outstanding_claims[node])
+/* total outstanding claims by all domains on node */
+static unsigned long node_outstanding_claims[MAX_NUMNODES];
+
+/* Return available pages after subtracting claimed pages */
+static inline unsigned long available_after_claims(unsigned long avail_pages,
+                                                   unsigned long claims)
+{
+    BUG_ON(claims > avail_pages);
+    return avail_pages - claims; /* Due to the BUG_ON, it cannot be negative */
+}
+
+/* Answer if host-level memory and claims permit this request to proceed */
+static inline bool host_allocatable_request(const struct domain *d,
+                                            unsigned int memflags,
+                                            unsigned long request)
+{
+    unsigned long allocatable_pages;
+
+    ASSERT(spin_is_locked(&heap_lock));
+
+    allocatable_pages = available_after_claims(total_avail_pages,
+                                               outstanding_claims);
+    if ( allocatable_pages >= request )
+        return true; /* The not claimed pages are enough to proceed */
+
+    if ( !d || (memflags & MEMF_no_refcount) )
+        return false; /* Claims are not available for this allocation */
+
+    /* The domain's claims are available, return true if sufficient */
+    return request <= allocatable_pages + d->outstanding_pages;
+}
+
+/* Answer if node-level memory and claims permit this request to proceed */
+static inline bool node_allocatable_request(const struct domain *d,
+                                            unsigned int memflags,
+                                            unsigned long request,
+                                            nodeid_t node)
+{
+    unsigned long allocatable_pages;
+
+    ASSERT(spin_is_locked(&heap_lock));
+    ASSERT(node < MAX_NUMNODES);
+
+    allocatable_pages = available_after_claims(node_avail_pages(node),
+                                               node_outstanding_claims(node));
+    if ( allocatable_pages >= request )
+        return true; /* The not claimed pages are enough to proceed */
+
+    if ( !d || (memflags & MEMF_no_refcount) || (node != d->claim_node) )
+        return false; /* Claims are not available for this allocation */
+
+    /* The domain's claims are available, return true if sufficient */
+    return request <= allocatable_pages + d->outstanding_pages;
+}
+
 static unsigned long avail_heap_pages(
     unsigned int zone_lo, unsigned int zone_hi, unsigned int node)
 {
@@ -539,14 +607,23 @@ unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
     return d->tot_pages;
 }
 
-/* Release outstanding claims on the domain, host and later also node */
+/* Release outstanding claims on the domain, host and node */
 static inline
 void release_outstanding_claims(struct domain *d, unsigned long release)
 {
     ASSERT(spin_is_locked(&heap_lock));
     BUG_ON(outstanding_claims < release);
     outstanding_claims -= release;
+
+    if ( d->claim_node != NUMA_NO_NODE )
+    {
+        BUG_ON(node_outstanding_claims(d->claim_node) < release);
+        node_outstanding_claims(d->claim_node) -= release;
+    }
     d->outstanding_pages -= release;
+
+    if ( d->outstanding_pages == 0 )
+        d->claim_node = NUMA_NO_NODE; /* Clear if no outstanding pages left */
 }
 
 /*
@@ -556,7 +633,8 @@ void release_outstanding_claims(struct domain *d, unsigned long release)
  * domain build and d is destroyed if the build fails, this has no significance.
  */
 static inline
-void consume_outstanding_claims(struct domain *d, unsigned long allocation)
+void consume_outstanding_claims(struct domain *d, unsigned long allocation,
+                                nodeid_t alloc_node)
 {
     if ( !d || !d->outstanding_pages )
         return;
@@ -564,14 +642,41 @@ void consume_outstanding_claims(struct domain *d, unsigned long allocation)
 
     /* Of course, the domain can only release up its outstanding claims */
     allocation = min(allocation, d->outstanding_pages + 0UL);
+
+    if ( d->claim_node != NUMA_NO_NODE && d->claim_node != alloc_node )
+    {
+        /*
+         * The domain has a claim on a node, but the alloc is on a different
+         * node. If it would exceed the domain's max_pages, reduce the claim
+         * up to the excess over max_pages so we don't reduce the claim more
+         * than we have to to honor the max_pages limit.
+         */
+        unsigned long booked_pages = domain_tot_pages(d) + allocation +
+                                     d->outstanding_pages;
+        if ( booked_pages <= d->max_pages )
+            return; /* booked is within max_pages, no excess, keep the claim */
+
+        /* Excess detected, release the exceeding pages from the claimed node */
+        allocation = min(allocation, booked_pages - d->max_pages);
+    }
     release_outstanding_claims(d, allocation);
 }
 
-int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
+/*
+ * Update outstanding claims for the domain. Note: The node is passed as an
+ * unsigned int to allow checking for overflow above the uint8_t nodeid_t limit.
+ */
+int domain_set_outstanding_pages(struct domain *d, unsigned long pages,
+                                 unsigned int node)
 {
     int ret = -ENOMEM;
     unsigned long claim, avail_pages;
 
+    /* When releasing a claim, the node must be NUMA_NO_NODE (it is not used) */
+    if ( pages == 0 && node != NUMA_NO_NODE )
+        return -EINVAL;
+    if ( node != NUMA_NO_NODE && (node >= MAX_NUMNODES || !node_online(node)) )
+        return -ENOENT;
     /*
      * Two locks are needed here:
      *  - d->page_alloc_lock: protects accesses to d->{tot,max,extra}_pages.
@@ -604,9 +709,12 @@ int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
     }
 
     /* how much memory is available? */
-    avail_pages = total_avail_pages;
-
-    avail_pages -= outstanding_claims;
+    if ( node == NUMA_NO_NODE )
+        avail_pages = available_after_claims(total_avail_pages,
+                                             outstanding_claims);
+    else
+        avail_pages = available_after_claims(node_avail_pages(node),
+                                             node_outstanding_claims(node));
 
     /*
      * Note, if domain has already allocated memory before making a claim
@@ -619,6 +727,11 @@ int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
     /* yay, claim fits in available memory, stake the claim, success! */
     d->outstanding_pages = claim;
     outstanding_claims += d->outstanding_pages;
+    if ( node != NUMA_NO_NODE )
+    {
+        node_outstanding_claims(node) += claim;
+        d->claim_node = node;
+    }
     ret = 0;
 
 out:
@@ -953,6 +1066,13 @@ static struct page_info *get_free_buddy(unsigned int zone_lo,
      */
     for ( ; ; )
     {
+        /*
+         * Claimed memory is considered unavailable unless the request
+         * is made by a domain with sufficient unclaimed pages.
+         */
+        if ( !node_allocatable_request(d, memflags, (1UL << order), node) )
+            goto try_next_node;
+
         zone = zone_hi;
         do {
             /* Check if target node can support the allocation. */
@@ -982,6 +1102,8 @@ static struct page_info *get_free_buddy(unsigned int zone_lo,
             }
         } while ( zone-- > zone_lo ); /* careful: unsigned zone may wrap */
 
+ try_next_node:
+        /* If MEMF_exact_node was passed, we may not skip to a different node */
         if ( (memflags & MEMF_exact_node) && req_node != NUMA_NO_NODE )
             return NULL;
 
@@ -1042,13 +1164,8 @@ static struct page_info *alloc_heap_pages(
 
     spin_lock(&heap_lock);
 
-    /*
-     * 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) )
+    /* Proceed if host-level memory and claims permit this request to proceed */
+    if ( !host_allocatable_request(d, memflags, request) )
     {
         spin_unlock(&heap_lock);
         return NULL;
@@ -1099,7 +1216,7 @@ static struct page_info *alloc_heap_pages(
     total_avail_pages -= request;
 
     if ( !(memflags & MEMF_no_refcount) )
-        consume_outstanding_claims(d, request);
+        consume_outstanding_claims(d, request, node);
 
     check_low_mem_virq();
 
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index d80bfba6d393..6e589a5b6389 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>
@@ -131,7 +132,8 @@ int populate_pt_range(unsigned long virt, unsigned long nr_mfns);
 /* Claim handling */
 unsigned long __must_check domain_adjust_tot_pages(struct domain *d,
     long pages);
-int domain_set_outstanding_pages(struct domain *d, unsigned long pages);
+int domain_set_outstanding_pages(struct domain *d, unsigned long pages,
+    unsigned int node);
 void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages);
 
 /* Domain suballocator. These functions are *not* interrupt-safe.*/
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 40a35fc15c65..7f1654afbc7c 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -421,6 +421,7 @@ struct domain
     unsigned int     outstanding_pages;
     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 */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 14:46:31 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 14:46:31 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241933.1542757 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcdH-0007H5-Vt; Thu, 26 Feb 2026 14:46:27 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241933.1542757; Thu, 26 Feb 2026 14:46: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 1vvcdH-0007Gx-Qv; Thu, 26 Feb 2026 14:46:27 +0000
Received: by outflank-mailman (input) for mailman id 1241933;
 Thu, 26 Feb 2026 14:46: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcdG-0007Gp-3O
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 14:46:26 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id e98830c5-1321-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 15:46:24 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 92CC0428FD7C;
 Thu, 26 Feb 2026 09:45:56 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: e98830c5-1321-11f1-b164-2bf370ae4941
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 04/10] xen/page_alloc: Consolidate per-node counters into avail[] array
Date: Thu, 26 Feb 2026 14:29:18 +0000
Message-Id: <4a5477e0ae26bb29d4814b2177cdd7ad746887cc.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Replace the static node_avail_pages[] and node_outstanding_claims[]
arrays with two extra entries in the per-node avail[] array:

  avail[node][AVAIL_NODE_TOTAL]  - total free pages on this node
  avail[node][AVAIL_NODE_CLAIMS] - outstanding claims on this node

This eliminates two MAX_NUMNODES-sized static arrays by extending the
dynamically allocated avail[] from NR_ZONES to NR_AVAIL_ENTRIES
(NR_ZONES + 2) per node.  The node_avail_pages() and
node_outstanding_claims() accessor macros now index into avail[],
keeping all call sites unchanged.

Placing the per-node totals and claims adjacent to the per-zone
counters also improves cache locality: the allocator already touches
avail[node][zone] in get_free_buddy(), so the node-level counters
checked by node_allocatable_request() are likely warm in the same
cache line, avoiding the extra line fetch the separate static arrays
would have required.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/common/page_alloc.c | 33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 6fc7d4cb9d40..e844c0ecf637 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -485,6 +485,18 @@ static unsigned long node_need_scrub[MAX_NUMNODES];
 
 /* avail[node][zone] is the number of free pages on that node and zone. */
 static unsigned long *avail[MAX_NUMNODES];
+/*
+ * The avail[] array has NR_ZONES entries for per-zone free page counts,
+ * plus two extra entries above NR_ZONES:
+ *   avail[node][AVAIL_NODE_TOTAL]  - total free pages on this node
+ *   avail[node][AVAIL_NODE_CLAIMS] - outstanding claims on this node
+ * This replaces the former static node_avail_pages[] and
+ * node_outstanding_claims[] arrays.
+ */
+#define AVAIL_NODE_TOTAL   NR_ZONES
+#define AVAIL_NODE_CLAIMS  (NR_ZONES + 1)
+#define NR_AVAIL_ENTRIES   (NR_ZONES + 2)
+
 /* Global available pages, updated in real-time, protected by heap_lock */
 static unsigned long total_avail_pages;
 
@@ -507,8 +519,7 @@ static DEFINE_SPINLOCK(heap_lock);
  * allocator is already serialized on it. The accessor macro abstracts the
  * storage to ease future changes (e.g. moving to per-node lock granularity).
  */
-#define node_avail_pages(node) (node_avail_pages[node])
-static unsigned long node_avail_pages[MAX_NUMNODES];
+#define node_avail_pages(node) (avail[node][AVAIL_NODE_TOTAL])
 
 /* total outstanding claims by all domains */
 static unsigned long outstanding_claims;
@@ -522,9 +533,7 @@ static unsigned long outstanding_claims;
  * a node, which are subtracted from the node's available pages to determine if
  * a request can be satisfied without violating the node's memory availability.
  */
-#define node_outstanding_claims(node) (node_outstanding_claims[node])
-/* total outstanding claims by all domains on node */
-static unsigned long node_outstanding_claims[MAX_NUMNODES];
+#define node_outstanding_claims(node) (avail[node][AVAIL_NODE_CLAIMS])
 
 /* Return available pages after subtracting claimed pages */
 static inline unsigned long available_after_claims(unsigned long avail_pages,
@@ -762,9 +771,9 @@ static unsigned long init_node_heap(int node, unsigned long mfn,
 {
     /* First node to be discovered has its heap metadata statically alloced. */
     static heap_by_zone_and_order_t _heap_static;
-    static unsigned long avail_static[NR_ZONES];
+    static unsigned long avail_static[NR_AVAIL_ENTRIES];
     unsigned long needed = (sizeof(**_heap) +
-                            sizeof(**avail) * NR_ZONES +
+                            sizeof(**avail) * NR_AVAIL_ENTRIES +
                             PAGE_SIZE - 1) >> PAGE_SHIFT;
     int i, j;
 
@@ -782,7 +791,7 @@ static unsigned long init_node_heap(int node, unsigned long mfn,
     {
         _heap[node] = mfn_to_virt(mfn + nr - needed);
         avail[node] = mfn_to_virt(mfn + nr - 1) +
-                      PAGE_SIZE - sizeof(**avail) * NR_ZONES;
+                      PAGE_SIZE - sizeof(**avail) * NR_AVAIL_ENTRIES;
     }
     else if ( nr >= needed &&
               arch_mfns_in_directmap(mfn, needed) &&
@@ -791,7 +800,7 @@ static unsigned long init_node_heap(int node, unsigned long mfn,
     {
         _heap[node] = mfn_to_virt(mfn);
         avail[node] = mfn_to_virt(mfn + needed - 1) +
-                      PAGE_SIZE - sizeof(**avail) * NR_ZONES;
+                      PAGE_SIZE - sizeof(**avail) * NR_AVAIL_ENTRIES;
         *use_tail = false;
     }
     else if ( get_order_from_bytes(sizeof(**_heap)) ==
@@ -800,18 +809,18 @@ static unsigned long init_node_heap(int node, unsigned long mfn,
         _heap[node] = alloc_xenheap_pages(get_order_from_pages(needed), 0);
         BUG_ON(!_heap[node]);
         avail[node] = (void *)_heap[node] + (needed << PAGE_SHIFT) -
-                      sizeof(**avail) * NR_ZONES;
+                      sizeof(**avail) * NR_AVAIL_ENTRIES;
         needed = 0;
     }
     else
     {
         _heap[node] = xmalloc(heap_by_zone_and_order_t);
-        avail[node] = xmalloc_array(unsigned long, NR_ZONES);
+        avail[node] = xmalloc_array(unsigned long, NR_AVAIL_ENTRIES);
         BUG_ON(!_heap[node] || !avail[node]);
         needed = 0;
     }
 
-    memset(avail[node], 0, NR_ZONES * sizeof(long));
+    memset(avail[node], 0, NR_AVAIL_ENTRIES * sizeof(long));
 
     for ( i = 0; i < NR_ZONES; i++ )
         for ( j = 0; j <= MAX_ORDER; j++ )
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 14:49:02 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 14:49:02 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241961.1542766 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcfl-0007mm-8u; Thu, 26 Feb 2026 14:49:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241961.1542766; Thu, 26 Feb 2026 14: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 1vvcfl-0007mf-62; Thu, 26 Feb 2026 14:49:01 +0000
Received: by outflank-mailman (input) for mailman id 1241961;
 Thu, 26 Feb 2026 14:48: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcfj-0007mT-Jq
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 14:48:59 +0000
Received: from na1pdmzitismtp02.tibco.com (na1pdmzitismtp02.tibco.com
 [160.101.131.9]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 47c89918-1322-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 15:48:58 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTP id 572748153330;
 Thu, 26 Feb 2026 09:48:26 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 47c89918-1322-11f1-b164-2bf370ae4941
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>
Subject: [PATCH v4 05/10] xen/domain: Add DOMCTL handler for claiming memory with NUMA awareness
Date: Thu, 26 Feb 2026 14:29:19 +0000
Message-Id: <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a DOMCTL handler for claiming memory with NUMA awareness. It
rejects claims when LLC coloring (does not support claims) is enabled
and translates the public constant to the internal NUMA_NO_NODE.

The request is forwarded to domain_set_outstanding_pages() for the
actual claim processing. The handler uses the same XSM hook as the
legacy XENMEM_claim_pages hypercall.

While the underlying infrastructure currently supports only a single
claim, the public hypercall interface is designed to be extensible for
multiple claims in the future without breaking the API.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 xen/common/domain.c         | 29 ++++++++++++++++++++++++++++
 xen/common/domctl.c         |  9 +++++++++
 xen/include/public/domctl.h | 38 +++++++++++++++++++++++++++++++++++++
 xen/include/xen/domain.h    |  2 ++
 4 files changed, 78 insertions(+)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index e7861259a2b3..ac1b091f5574 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -268,6 +268,35 @@ int get_domain_state(struct xen_domctl_get_domain_state *info, struct domain *d,
     return rc;
 }
 
+/* Claim memory for a domain or reset the claim */
+int claim_memory(struct domain *d, const struct xen_domctl_claim_memory *uinfo)
+{
+    memory_claim_t claim;
+
+    /* alloc_color_heap_page() does not handle claims, so reject LLC coloring */
+    if ( llc_coloring_enabled )
+        return -EOPNOTSUPP;
+    /*
+     * We only support single claims at the moment, and if the domain is
+     * dying (d->is_dying is set), its claims have already been released
+     */
+    if ( uinfo->pad || uinfo->nr_claims != 1 || d->is_dying )
+        return -EINVAL;
+
+    if ( copy_from_guest(&claim, uinfo->claims, 1) )
+        return -EFAULT;
+
+    if ( claim.pad )
+        return -EINVAL;
+
+    /* Convert the API tag for a host-wide claim to the NUMA_NO_NODE constant */
+    if ( claim.node == XEN_DOMCTL_CLAIM_MEMORY_NO_NODE )
+        claim.node = NUMA_NO_NODE;
+
+    /* NB. domain_set_outstanding_pages() has the checks to validate its args */
+    return domain_set_outstanding_pages(d, claim.pages, claim.node);
+}
+
 static void __domain_finalise_shutdown(struct domain *d)
 {
     struct vcpu *v;
diff --git a/xen/common/domctl.c b/xen/common/domctl.c
index 29a7726d32d0..9e858f631aaf 100644
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -868,6 +868,15 @@ 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:
+        /* Use the same XSM hook as XENMEM_claim_pages */
+        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 8f6708c0a7cd..610806c8b6e0 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -1276,6 +1276,42 @@ struct xen_domctl_get_domain_state {
     uint64_t unique_id;      /* Unique domain identifier. */
 };
 
+/*
+ * XEN_DOMCTL_claim_memory
+ *
+ * Claim memory for a guest domain. The claimed memory is converted into actual
+ * memory pages by allocating it. Except for the option to pass claims for
+ * multiple NUMA nodes, the semantics are based on host-wide claims as
+ * provided by XENMEM_claim_pages, and are identical for host-wide claims.
+ *
+ * The initial implementation supports a claim for the host or a NUMA node, but
+ * using an array, the API is designed to be extensible to support more claims.
+ */
+struct xen_memory_claim {
+    uint64_aligned_t pages;   /* Amount of pages to be allotted to the domain */
+    uint32_t node;  /* NUMA node, or XEN_DOMCTL_CLAIM_MEMORY_NO_NODE for host */
+    uint32_t pad;                 /* padding for alignment, set to 0 on input */
+};
+typedef struct xen_memory_claim memory_claim_t;
+#define XEN_DOMCTL_CLAIM_MEMORY_NO_NODE    0xFFFFFFFF  /* No node: host claim */
+
+/* Use XEN_NODE_CLAIM_INIT to initialize a memory_claim_t structure */
+#define XEN_NODE_CLAIM_INIT(_pages, _node) { \
+    .pages = (_pages),                  \
+    .node = (_node),                    \
+    .pad = 0                            \
+}
+DEFINE_XEN_GUEST_HANDLE(memory_claim_t);
+
+struct xen_domctl_claim_memory {
+    /* IN: array of struct xen_memory_claim */
+    XEN_GUEST_HANDLE_64(memory_claim_t) claims;
+    /* IN: number of claims in the claims array handle. See the claims field. */
+    uint32_t nr_claims;
+#define XEN_DOMCTL_MAX_CLAIMS UINT8_MAX /* More claims require changes in Xen */
+    uint32_t pad;                       /* padding for alignment, set it to 0 */
+};
+
 struct xen_domctl {
 /* Stable domctl ops: interface_version is required to be 0.  */
     uint32_t cmd;
@@ -1368,6 +1404,7 @@ struct xen_domctl {
 #define XEN_DOMCTL_gsi_permission                88
 #define XEN_DOMCTL_set_llc_colors                89
 #define XEN_DOMCTL_get_domain_state              90 /* stable interface */
+#define XEN_DOMCTL_claim_memory                  91
 #define XEN_DOMCTL_gdbsx_guestmemio            1000
 #define XEN_DOMCTL_gdbsx_pausevcpu             1001
 #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
@@ -1436,6 +1473,7 @@ struct xen_domctl {
 #endif
         struct xen_domctl_set_llc_colors    set_llc_colors;
         struct xen_domctl_get_domain_state  get_domain_state;
+        struct xen_domctl_claim_memory      claim_memory;
         uint8_t                             pad[128];
     } u;
 };
diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
index 93c0fd00c1d7..79e8932c4530 100644
--- a/xen/include/xen/domain.h
+++ b/xen/include/xen/domain.h
@@ -193,4 +193,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__ */
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 14:56:26 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 14:56:26 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1241996.1542787 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcms-000170-3y; Thu, 26 Feb 2026 14:56:22 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1241996.1542787; Thu, 26 Feb 2026 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 1vvcms-00016t-14; Thu, 26 Feb 2026 14:56:22 +0000
Received: by outflank-mailman (input) for mailman id 1241996;
 Thu, 26 Feb 2026 14:56: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcmr-00016l-7L
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 14:56:21 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 4e208433-1323-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 15:56:18 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id C29404290134;
 Thu, 26 Feb 2026 09:55:57 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4e208433-1323-11f1-b164-2bf370ae4941
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	"Daniel P. Smith" <dpsmith@apertussolutions.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v4 06/10] xsm/flask: Add XEN_DOMCTL_claim_memory to flask
Date: Thu, 26 Feb 2026 14:29:20 +0000
Message-Id: <8e5680575f37ce67a81a4c712e5409ccb3f6f612.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a Flask security policy for the new XEN_DOMCTL_claim_memory hypercall
introduced in the previous commit. When Flask is enabled, this permission
controls whether a domain can stake memory claims for another domain.

The permission is granted to:
- dom0_t: Dom0 needs this to claim memory for guest domains
- create_domain_common: Domain builders need this during domain creation

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/flask/policy/modules/dom0.te  | 1 +
 tools/flask/policy/modules/xen.if   | 1 +
 xen/xsm/flask/hooks.c               | 3 +++
 xen/xsm/flask/policy/access_vectors | 2 ++
 4 files changed, 7 insertions(+)

diff --git a/tools/flask/policy/modules/dom0.te b/tools/flask/policy/modules/dom0.te
index d30edf8be1fb..f5c330d01cec 100644
--- a/tools/flask/policy/modules/dom0.te
+++ b/tools/flask/policy/modules/dom0.te
@@ -103,6 +103,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 ef7d8f438c65..8e2dceb505cd 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/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index b250b2706535..0cc04ada82a9 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -820,6 +820,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 ce907d50a45e..2c9337f7a145 100644
--- a/xen/xsm/flask/policy/access_vectors
+++ b/xen/xsm/flask/policy/access_vectors
@@ -255,6 +255,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.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 14:59:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 14:59:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242025.1542797 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcq8-0001iJ-Hj; Thu, 26 Feb 2026 14:59:44 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242025.1542797; Thu, 26 Feb 2026 14:59: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 1vvcq8-0001iC-EP; Thu, 26 Feb 2026 14:59:44 +0000
Received: by outflank-mailman (input) for mailman id 1242025;
 Thu, 26 Feb 2026 14:59: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcq7-0001i6-6e
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 14:59:43 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c73c83c2-1323-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 15:59:42 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id E9CDB4290343;
 Thu, 26 Feb 2026 09:59:20 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c73c83c2-1323-11f1-b164-2bf370ae4941
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Juergen Gross <jgross@suse.com>
Subject: [PATCH v4 07/10] tools/lib/ctrl/xc: Add xc_domain_claim_memory() to libxenctrl
Date: Thu, 26 Feb 2026 14:29:21 +0000
Message-Id: <cff8a067879289c2dac661a513a1b7f4e11caa90.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add a libxc function for the new XEN_DOMCTL_claim_memory hypercall,
It supports node-specific claims and host-wide claims.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/include/xenctrl.h     |  4 ++++
 tools/libs/ctrl/xc_domain.c | 27 +++++++++++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index d5dbf69c8968..a0a9f2143b32 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -2659,6 +2659,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,
+                           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 01c0669c8863..685efc03d295 100644
--- a/tools/libs/ctrl/xc_domain.c
+++ b/tools/libs/ctrl/xc_domain.c
@@ -1070,6 +1070,33 @@ int xc_domain_remove_from_physmap(xc_interface *xch,
     return xc_memory_op(xch, XENMEM_remove_from_physmap, &xrfp, sizeof(xrfp));
 }
 
+/* Claim the guest memory for a domain before starting the domain build */
+int xc_domain_claim_memory(xc_interface *xch,
+                           uint32_t domid,
+                           uint32_t nr_claims,
+                           memory_claim_t *claims)
+{
+    struct xen_domctl domctl = {};
+    DECLARE_HYPERCALL_BOUNCE(claims, sizeof(*claims) * nr_claims,
+                             XC_HYPERCALL_BUFFER_BOUNCE_IN);
+    int ret;
+
+    if ( xc_hypercall_bounce_pre(xch, claims) )
+        return -1;
+
+    domctl.cmd = XEN_DOMCTL_claim_memory;
+    domctl.domain = domid;
+    domctl.u.claim_memory.nr_claims = nr_claims;
+    set_xen_guest_handle(domctl.u.claim_memory.claims, claims);
+
+    ret = do_domctl(xch, &domctl);
+
+    xc_hypercall_bounce_post(xch, claims);
+
+    return ret;
+}
+
+/* Legacy function for claiming pages, replaced by xc_domain_claim_memory() */
 int xc_domain_claim_pages(xc_interface *xch,
                                uint32_t domid,
                                unsigned long nr_pages)
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 15:02:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 15:02:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242052.1542809 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvcsS-0003EO-UF; Thu, 26 Feb 2026 15:02:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242052.1542809; Thu, 26 Feb 2026 15: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 1vvcsS-0003EG-QA; Thu, 26 Feb 2026 15:02:08 +0000
Received: by outflank-mailman (input) for mailman id 1242052;
 Thu, 26 Feb 2026 15:02: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvcsR-0003E5-Ra
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 15:02:07 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.corp.cloud.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 1dccd3c2-1324-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 16:02:07 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 182D34290365;
 Thu, 26 Feb 2026 10:01:46 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 1dccd3c2-1324-11f1-b164-2bf370ae4941
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Christian Lindig <christian.lindig@citrix.com>,
	David Scott <dave@recoil.org>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v4 08/10] tools/ocaml/libs/xc: add OCaml domain_claim_memory binding
Date: Thu, 26 Feb 2026 14:29:22 +0000
Message-Id: <538ada6fad9414a102db0096f297f77b90f3ac01.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Add OCaml bindings for xc_domain_claim_memory(), for using the
XEN_DOMCTL_claim_memory hypercall from OCaml. This allows OCaml
toolstacks to place NUMA-aware memory claims for domains as well
as host-wide claims.

tools/ocaml/libs/xc/xenctrl.ml/mli:
- Add claim record type and domain_claim_memory external.

tools/ocaml/libs/xc/xenctrl_stubs.c:
- Validate claim count and arguments.
- Marshal the OCaml claim array to memory_claim_t[].
- Map node = -1 to XEN_DOMCTL_CLAIM_MEMORY_NO_NODE.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/ocaml/libs/xc/xenctrl.ml      | 11 ++++++++
 tools/ocaml/libs/xc/xenctrl.mli     | 11 ++++++++
 tools/ocaml/libs/xc/xenctrl_stubs.c | 43 +++++++++++++++++++++++++++++
 3 files changed, 65 insertions(+)

diff --git a/tools/ocaml/libs/xc/xenctrl.ml b/tools/ocaml/libs/xc/xenctrl.ml
index 97108b9d861a..a1a05dcaede3 100644
--- a/tools/ocaml/libs/xc/xenctrl.ml
+++ b/tools/ocaml/libs/xc/xenctrl.ml
@@ -370,6 +370,17 @@ external domain_deassign_device: handle -> domid -> (int * int * int * int) -> u
 external domain_test_assign_device: handle -> domid -> (int * int * int * int) -> bool
   = "stub_xc_domain_test_assign_device"
 
+(* OCaml binding for xc_domain_claim_memory(): claim pages for a domain,
+   optionally per NUMA node (node = -1 means no specific node). *)
+
+type claim =
+  {
+    pages: int64;  (* Number of pages to claim *)
+    node: int32;   (* NUMA node ID, or -1 for no specific node *)
+  }
+external domain_claim_memory: handle -> domid -> claim array -> unit
+  = "stub_xc_domain_claim_memory"
+
 external version: handle -> version = "stub_xc_version_version"
 external version_compile_info: handle -> compile_info
   = "stub_xc_version_compile_info"
diff --git a/tools/ocaml/libs/xc/xenctrl.mli b/tools/ocaml/libs/xc/xenctrl.mli
index 9fccb2c2c287..1781c89258fe 100644
--- a/tools/ocaml/libs/xc/xenctrl.mli
+++ b/tools/ocaml/libs/xc/xenctrl.mli
@@ -297,6 +297,17 @@ external domain_deassign_device: handle -> domid -> (int * int * int * int) -> u
 external domain_test_assign_device: handle -> domid -> (int * int * int * int) -> bool
   = "stub_xc_domain_test_assign_device"
 
+(* OCaml binding for xc_domain_claim_memory(): claim pages for a domain,
+   optionally per NUMA node (node = -1 means no specific node). *)
+
+type claim =
+  {
+    pages: int64;  (* Number of pages to claim *)
+    node: int32;   (* NUMA node ID, or -1 for no specific node *)
+  }
+external domain_claim_memory: handle -> domid -> claim array -> unit
+  = "stub_xc_domain_claim_memory"
+
 external version : handle -> version = "stub_xc_version_version"
 external version_compile_info : handle -> compile_info
   = "stub_xc_version_compile_info"
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index c55f73b265b2..a77d7dac58e8 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -1435,6 +1435,49 @@ CAMLprim value stub_xc_watchdog(value xch_val, value domid, value timeout)
 	CAMLreturn(Val_int(ret));
 }
 
+CAMLprim value stub_xc_domain_claim_memory(value xch_val, value domid,
+                                           value claims)
+{
+	CAMLparam3(xch_val, domid, claims);
+	xc_interface *xch = xch_of_val(xch_val);
+	mlsize_t nr_claims = Wosize_val(claims);
+	memory_claim_t *claim;
+	int retval;
+
+	if (nr_claims > XEN_DOMCTL_MAX_CLAIMS)
+		caml_invalid_argument("domain_claim_memory: too many claims");
+
+	claim = calloc(nr_claims, sizeof(*claim));
+	if (claim == NULL && nr_claims != 0)
+		caml_raise_out_of_memory();
+
+	for (mlsize_t i = 0; i < nr_claims; i++) {
+		value claim_rec = Field(claims, i);
+		int64_t pages = Int64_val(Field(claim_rec, 0));
+		int32_t node = Int32_val(Field(claim_rec, 1));
+		uint32_t c_node;
+
+		if (pages < 0 || node < -1 ) {
+			free(claim);
+			caml_invalid_argument("domain_claim_memory: invalid pages or node");
+		}
+
+		if (node == -1)
+			c_node = XEN_DOMCTL_CLAIM_MEMORY_NO_NODE;
+		else
+			c_node = node;
+
+		claim[i] = (memory_claim_t)XEN_NODE_CLAIM_INIT((uint64_t)pages, c_node);
+	}
+
+	retval = xc_domain_claim_memory(xch, Int_val(domid), nr_claims, claim);
+	free(claim);
+	if (retval < 0)
+		failwith_xc(xch);
+
+	CAMLreturn(Val_unit);
+}
+
 /*
  * Local variables:
  *  indent-tabs-mode: t
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 15:11:01 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 15:11:01 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242088.1542819 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvd0y-0004va-PR; Thu, 26 Feb 2026 15:10:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242088.1542819; Thu, 26 Feb 2026 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 1vvd0y-0004vT-Lp; Thu, 26 Feb 2026 15:10:56 +0000
Received: by outflank-mailman (input) for mailman id 1242088;
 Thu, 26 Feb 2026 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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvd0x-0004vN-BE
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 15:10:55 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 54d120c2-1325-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 16:10:49 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 14EE8429064D;
 Thu, 26 Feb 2026 10:10:28 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 54d120c2-1325-11f1-9ccf-f158ae23cfc8
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v4 09/10] tools/tests: Update the claims test to test claim_memory hypercall
Date: Thu, 26 Feb 2026 14:29:23 +0000
Message-Id: <bda9076991cc2d3f22d1a971998783125c7bcb80.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Extend the existing mem-claim test to verify both the legacy
XENMEM_claim_pages and the new XEN_DOMCTL_claim_memory hypercalls.

It tests both host-wide claims (NUMA_NO_NODE) and node-specific
claims (assuming at least a single NUMA node, node 0 is provided)
to ensure the new infrastructure works correctly.

It also checks the protection of host- and node-claims against
allocations without sufficient, specific claims.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 tools/tests/mem-claim/test-mem-claim.c | 277 +++++++++++++++++++++++--
 1 file changed, 254 insertions(+), 23 deletions(-)

diff --git a/tools/tests/mem-claim/test-mem-claim.c b/tools/tests/mem-claim/test-mem-claim.c
index ad038e45d188..a98d3e43ff54 100644
--- a/tools/tests/mem-claim/test-mem-claim.c
+++ b/tools/tests/mem-claim/test-mem-claim.c
@@ -2,6 +2,7 @@
 #include <err.h>
 #include <errno.h>
 #include <inttypes.h>
+#include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <sys/mman.h>
@@ -20,10 +21,13 @@ static unsigned int nr_failures;
 
 #define MB_PAGES(x) (MB(x) / XC_PAGE_SIZE)
 
+#define CLAIM_TEST_ORDER 9 /* 2M */
+
 static xc_interface *xch;
 static uint32_t domid = DOMID_INVALID;
 
 static xc_physinfo_t physinfo;
+static unsigned int claim_test_node;
 
 static struct xen_domctl_createdomain create = {
     .flags = XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap,
@@ -38,10 +42,138 @@ static struct xen_domctl_createdomain create = {
     },
 };
 
-static void run_tests(void)
+typedef int (*claim_fn_t)(xc_interface *xch, uint32_t domid,
+                          unsigned long pages);
+
+/* Wrapper function to test claiming memory using xc_domain_claim_pages. */
+static int wrap_claim_pages(xc_interface *xch,
+                            uint32_t domid,
+                            unsigned long pages)
+{
+    return xc_domain_claim_pages(xch, domid, pages);
+}
+
+/* Wrapper function to test claiming memory using xc_domain_claim_memory. */
+static int wrap_claim_memory(xc_interface *xch,
+                             uint32_t domid,
+                             unsigned long pages)
+{
+    memory_claim_t claim[] = {
+        XEN_NODE_CLAIM_INIT(pages, XEN_DOMCTL_CLAIM_MEMORY_NO_NODE)
+    };
+
+    return xc_domain_claim_memory(xch, domid, 1, claim);
+}
+
+/* Wrapper to test claiming memory using xc_domain_claim_memory on a NUMA node */
+static int wrap_claim_memory_node(xc_interface *xch,
+                                  uint32_t domid,
+                                  unsigned long pages)
 {
     int rc;
+    memory_claim_t claims[UINT8_MAX + 1] = {}; /* + 1 to test overflow check */
+
+    /* claim with a node that is not present */
+    claims[0] = (memory_claim_t)XEN_NODE_CLAIM_INIT(pages, physinfo.nr_nodes);
 
+    /* Check the return value of claiming memory on an invalid node */
+    rc = xc_domain_claim_memory(xch, domid, 1, claims);
+    if ( rc != -1 || errno != ENOENT )
+    {
+        fail("Expected claim failure on invalid node to fail with ENOENT\n");
+        return rc;
+    }
+    /*
+     * Check the return value of claiming on two nodes (not yet implemented)
+     * and that the valid claim is rejected when nr_claims > 1. We expect that
+     * the API will reject the call due exceeding nr_claims before it checks
+     * the validity of the node(s), so we expect EINVAL rather than ENOENT.
+     */
+    rc = xc_domain_claim_memory(xch, domid, 2, claims);
+    if ( rc != -1 || errno != EINVAL )
+    {
+        fail("Expected nr_claims == 2 to fail with EINVAL (for now)\n");
+        return rc;
+
+    }
+    /* Likewise check with nr_claims > MAX_UINT8 to test overflow */
+    rc = xc_domain_claim_memory(xch, domid, UINT8_MAX + 1, claims);
+    if ( rc != -1 || errno != EINVAL )
+    {
+        fail("Expected nr_claims = UINT8_MAX + 1 to fail with EINVAL\n");
+        return rc;
+    }
+    /* Likewise check with a node of MAX_UINT8 + 1 to test overflow */
+    claims[0].node = UINT8_MAX + 1;
+    rc = xc_domain_claim_memory(xch, domid, 1, claims);
+    if ( rc != -1 || errno != ENOENT )
+    {
+        fail("Expected node == UINT8_MAX + 1 to fail with ENOENT\n");
+        return rc;
+    }
+    /* Test with pages exceeding INT32_MAX to check overflow */
+    claims[0] = (memory_claim_t)XEN_NODE_CLAIM_INIT((unsigned)INT32_MAX + 1, 0);
+    rc = xc_domain_claim_memory(xch, domid, 1, claims);
+    if ( rc != -1 || errno != ENOMEM )
+    {
+        fail("Expected ENOMEM with pages > INT32_MAX\n");
+        return rc;
+    }
+    /* Test with pad not set to zero */
+    claims[0] = (memory_claim_t)XEN_NODE_CLAIM_INIT(pages, claim_test_node);
+    claims[0].pad = 1;
+    rc = xc_domain_claim_memory(xch, domid, 1, claims);
+    if ( rc != -1 || errno != EINVAL )
+    {
+        fail("Expected EINVAL with pad not set to zero\n");
+        return rc;
+    }
+
+    /* Pass a valid claim for the selected node and continue the test */
+    claims[0] = (memory_claim_t)XEN_NODE_CLAIM_INIT(pages, claim_test_node);
+    return xc_domain_claim_memory(xch, domid, 1, claims);
+}
+
+static int get_node_free_pages(unsigned int node, unsigned long *free_pages)
+{
+    int rc;
+    unsigned int num_nodes = 0;
+    xc_meminfo_t *meminfo;
+
+    rc = xc_numainfo(xch, &num_nodes, NULL, NULL);
+    if ( rc )
+        return rc;
+
+    if ( node >= num_nodes )
+    {
+        errno = EINVAL;
+        return -1;
+    }
+
+    meminfo = calloc(num_nodes, sizeof(*meminfo));
+    if ( !meminfo )
+        return -1;
+
+    rc = xc_numainfo(xch, &num_nodes, meminfo, NULL);
+    if ( rc )
+        goto out;
+
+    *free_pages = meminfo[node].memfree / XC_PAGE_SIZE;
+
+ out:
+    free(meminfo);
+    return rc;
+}
+
+static void run_test(claim_fn_t claim_call_wrapper, const char *claim_name,
+                     bool host_wide_claim)
+{
+    int rc;
+    uint64_t free_heap_bytes;
+    unsigned long free_pages, claim_pages;
+    const unsigned long request_pages = 1UL << CLAIM_TEST_ORDER;
+
+    printf("  Testing %s\n", claim_name);
     /*
      * Check that the system is quiescent.  Outstanding claims is a global
      * field.
@@ -51,7 +183,7 @@ static void run_tests(void)
         return fail("Failed to obtain physinfo: %d - %s\n",
                     errno, strerror(errno));
 
-    printf("Free pages: %"PRIu64", Oustanding claims: %"PRIu64"\n",
+    printf("Free pages: %"PRIu64", Outstanding claims: %"PRIu64"\n",
            physinfo.free_pages, physinfo.outstanding_pages);
 
     if ( physinfo.outstanding_pages )
@@ -98,13 +230,30 @@ static void run_tests(void)
         return fail("  Unexpected outstanding claim of %"PRIu64" pages\n",
                     physinfo.outstanding_pages);
 
-    /*
-     * Set a claim for 4M.  This should be the only claim in the system, and
-     * show up globally.
-     */
-    rc = xc_domain_claim_pages(xch, domid, MB_PAGES(4));
+    rc = xc_availheap(xch, 0, 0, host_wide_claim ? -1 : (int)claim_test_node,
+                      &free_heap_bytes);
     if ( rc )
-        return fail("  Failed to claim 4M of RAM: %d - %s\n",
+        return fail("  Failed to query available heap: %d - %s\n",
+                    errno, strerror(errno));
+
+    free_pages = free_heap_bytes / XC_PAGE_SIZE;
+    if ( !host_wide_claim )
+    {
+        rc = get_node_free_pages(claim_test_node, &free_pages);
+        if ( rc )
+            return fail("  Failed to query free pages on node %u: %d - %s\n",
+                        claim_test_node, errno, strerror(errno));
+    }
+
+    if ( free_pages <= request_pages + 1 )
+        return fail("  Not enough free pages (%lu) to test %s claim enforcement\n",
+                    free_pages, host_wide_claim ? "host-wide" : "node");
+
+    claim_pages = free_pages - request_pages + 1;
+
+    rc = claim_call_wrapper(xch, domid, claim_pages);
+    if ( rc )
+        return fail("  Failed to claim calculated RAM amount: %d - %s\n",
                     errno, strerror(errno));
 
     rc = xc_physinfo(xch, &physinfo);
@@ -112,17 +261,51 @@ static void run_tests(void)
         return fail("  Failed to obtain physinfo: %d - %s\n",
                     errno, strerror(errno));
 
-    if ( physinfo.outstanding_pages != MB_PAGES(4) )
-        return fail("  Expected claim to be 4M, got %"PRIu64" pages\n",
-                    physinfo.outstanding_pages);
+    if ( physinfo.outstanding_pages != claim_pages )
+        return fail("  Expected claim to be %lu pages, got %"PRIu64" pages\n",
+                    claim_pages, physinfo.outstanding_pages);
+
+    {
+        uint32_t other_domid = DOMID_INVALID;
+        xen_pfn_t other_ram[] = { 0 };
+        unsigned int memflags = host_wide_claim ? 0 : XENMEMF_exact_node(claim_test_node);
+
+        rc = xc_domain_create(xch, &other_domid, &create);
+        if ( rc )
+            return fail("  Second domain create failure: %d - %s\n",
+                        errno, strerror(errno));
+
+        rc = xc_domain_setmaxmem(xch, other_domid, -1);
+        if ( rc )
+        {
+            fail("  Failed to set maxmem for second domain: %d - %s\n",
+                 errno, strerror(errno));
+            goto destroy_other;
+        }
+
+        rc = xc_domain_populate_physmap_exact(
+            xch, other_domid, ARRAY_SIZE(other_ram), CLAIM_TEST_ORDER,
+            memflags, other_ram);
+        if ( rc == 0 )
+            fail("  Expected %s claim to block second-domain allocation\n",
+                 host_wide_claim ? "host-wide" : "node");
+
+ destroy_other:
+        rc = xc_domain_destroy(xch, other_domid);
+        if ( rc )
+            return fail("  Failed to destroy second domain: %d - %s\n",
+                        errno, strerror(errno));
+    }
 
     /*
-     * Allocate 2M of RAM to the domain.  This should be deducted from global
-     * claim.
+     * Allocate one CLAIM_TEST_ORDER chunk to the domain. This should reduce
+     * the outstanding claim by request_pages. For node claims, request memory
+     * from the claimed node.
      */
     xen_pfn_t ram[] = { 0 };
     rc = xc_domain_populate_physmap_exact(
-        xch, domid, ARRAY_SIZE(ram), 9 /* Order 2M */, 0, ram);
+        xch, domid, ARRAY_SIZE(ram), CLAIM_TEST_ORDER,
+        host_wide_claim ? 0 : XENMEMF_node(claim_test_node), ram);
     if ( rc )
         return fail("  Failed to populate physmap domain: %d - %s\n",
                     errno, strerror(errno));
@@ -132,9 +315,9 @@ static void run_tests(void)
         return fail("  Failed to obtain physinfo: %d - %s\n",
                     errno, strerror(errno));
 
-    if ( physinfo.outstanding_pages != MB_PAGES(2) )
-        return fail("  Expected claim to be 2M, got %"PRIu64" pages\n",
-                    physinfo.outstanding_pages);
+    if ( physinfo.outstanding_pages != claim_pages - request_pages )
+        return fail("  Expected claim to be %lu pages, got %"PRIu64" pages\n",
+                    claim_pages - request_pages, physinfo.outstanding_pages);
 
     /*
      * Destroying the domain should release the outstanding 2M claim.
@@ -161,6 +344,8 @@ static void run_tests(void)
 int main(int argc, char **argv)
 {
     int rc;
+    unsigned int num_nodes = 0;
+    xc_meminfo_t *meminfo = NULL;
 
     printf("Memory claims tests\n");
 
@@ -169,14 +354,60 @@ int main(int argc, char **argv)
     if ( !xch )
         err(1, "xc_interface_open");
 
-    run_tests();
+    rc = xc_numainfo(xch, &num_nodes, NULL, NULL);
+    if ( rc || !num_nodes )
+        err(1, "xc_numainfo");
+
+    meminfo = calloc(num_nodes, sizeof(*meminfo));
+    if ( !meminfo )
+        err(1, "calloc");
 
-    if ( domid != DOMID_INVALID )
+    rc = xc_numainfo(xch, &num_nodes, meminfo, NULL);
+    if ( rc )
+        err(1, "xc_numainfo");
+
+    claim_test_node = 0;
+    for ( unsigned int i = 1; i < num_nodes; i++ )
     {
-        rc = xc_domain_destroy(xch, domid);
-        if ( rc )
-            fail("  Failed to destroy domain: %d - %s\n",
-                 errno, strerror(errno));
+        if ( meminfo[i].memfree > meminfo[claim_test_node].memfree )
+            claim_test_node = i;
+    }
+
+    free(meminfo);
+
+    struct {
+        claim_fn_t fn;
+        const char *name;
+        bool host_wide;
+    } tests[] = {
+        {
+            .fn = wrap_claim_pages,
+            .name = "xc_domain_claim_pages",
+            .host_wide = true,
+        },
+        {
+            .fn = wrap_claim_memory,
+            .name = "xc_domain_claim_memory",
+            .host_wide = true,
+        },
+        {
+            .fn = wrap_claim_memory_node,
+            .name = "xc_domain_claim_memory_node",
+            .host_wide = false,
+        },
+    };
+    size_t num_tests = sizeof(tests) / sizeof(tests[0]);
+    for ( size_t i = 0; i < num_tests; i++ )
+    {
+        run_test(tests[i].fn, tests[i].name, tests[i].host_wide);
+        if ( domid != DOMID_INVALID )
+        {
+            rc = xc_domain_destroy(xch, domid);
+            if ( rc )
+                fail("  Failed to destroy domain: %d - %s\n",
+                     errno, strerror(errno));
+            domid = DOMID_INVALID;
+        }
     }
 
     return !!nr_failures;
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 15:17:38 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 15:17:38 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242115.1542829 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvd7O-0005VR-DM; Thu, 26 Feb 2026 15:17:34 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242115.1542829; Thu, 26 Feb 2026 15:17: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 1vvd7O-0005VK-9g; Thu, 26 Feb 2026 15:17:34 +0000
Received: by outflank-mailman (input) for mailman id 1242115;
 Thu, 26 Feb 2026 15:17: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvd7M-0005VE-IM
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 15:17:32 +0000
Received: from na1pdmzitismtp01.tibco.com (na1pdmzitismtp01.tibco.com
 [160.101.131.8]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 44625eed-1326-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 16:17:31 +0100 (CET)
Received: from debian.eng.citrite.net (unknown [10.113.40.46])
 by na1pdmzitismtp01.tibco.com (Postfix) with ESMTP id 5F6E94142B87;
 Thu, 26 Feb 2026 10:17:09 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 44625eed-1326-11f1-b164-2bf370ae4941
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Bernhard Kaindl <bernhard.kaindl@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>,
	Michal Orzel <michal.orzel@amd.com>,
	Jan Beulich <jbeulich@suse.com>,
	Julien Grall <julien@xen.org>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v4 10/10] docs/guest-guide: document the memory claim hypercalls
Date: Thu, 26 Feb 2026 14:29:24 +0000
Message-Id: <66201baf1f046d5235ad629af35f456cd770344d.1772098423.git.bernhard.kaindl@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <cover.1772098423.git.bernhard.kaindl@citrix.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add guest-guide documentation for Xen’s memory-claim mechanism and
the two hypercalls for it to the docs:

- The legacy XENMEM_claim_pages (only for global host-wide claims)
- The new XEN_DOMCTL_claim_memory which adds NUMA-aware claims

Also document the implementation of claims in the hypervisor.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
---
 .readthedocs.yaml                             |  13 +-
 docs/conf.py                                  |   6 +-
 .../dom/DOMCTL_claim_memory-classes.mmd       |  51 +++++++
 .../dom/DOMCTL_claim_memory-seqdia.mmd        |  23 ++++
 .../dom/DOMCTL_claim_memory-workflow.mmd      |  23 ++++
 docs/guest-guide/dom/DOMCTL_claim_memory.rst  | 125 ++++++++++++++++++
 docs/guest-guide/dom/index.rst                |  14 ++
 docs/guest-guide/index.rst                    |  23 ++++
 docs/guest-guide/mem/XENMEM_claim_pages.rst   |  68 ++++++++++
 docs/guest-guide/mem/index.rst                |  12 ++
 docs/hypervisor-guide/index.rst               |   5 +
 docs/hypervisor-guide/mm/claims.rst           | 114 ++++++++++++++++
 docs/hypervisor-guide/mm/index.rst            |  10 ++
 13 files changed, 485 insertions(+), 2 deletions(-)
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-classes.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd
 create mode 100644 docs/guest-guide/dom/DOMCTL_claim_memory.rst
 create mode 100644 docs/guest-guide/dom/index.rst
 create mode 100644 docs/guest-guide/mem/XENMEM_claim_pages.rst
 create mode 100644 docs/guest-guide/mem/index.rst
 create mode 100644 docs/hypervisor-guide/mm/claims.rst
 create mode 100644 docs/hypervisor-guide/mm/index.rst

diff --git a/.readthedocs.yaml b/.readthedocs.yaml
index d3aff7662ebf..3be7334c7527 100644
--- a/.readthedocs.yaml
+++ b/.readthedocs.yaml
@@ -8,11 +8,22 @@ build:
 
   tools:
     python: "latest"
+    nodejs: "20"
 
   jobs:
     post_install:
+      # Required for rendering the mermaid diagrams in the offline
+      # documentation (PDF & ePub) formats.
+      - npm install -g @mermaid-js/mermaid-cli
       # Instead of needing a separate requirements.txt
-      - python -m pip install --upgrade --no-cache-dir sphinx-rtd-theme
+      - >
+        python -m pip install --upgrade --no-cache-dir sphinx-rtd-theme
+        sphinxcontrib-mermaid
 
 sphinx:
   configuration: docs/conf.py
+
+# Build PDF & ePub
+formats:
+  - epub
+  - pdf
\ No newline at end of file
diff --git a/docs/conf.py b/docs/conf.py
index 2fb8bafe6589..9316202d3318 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -61,7 +61,11 @@ needs_sphinx = '1.4'
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
-extensions = []
+extensions = ['sphinxcontrib.mermaid']
+
+mermaid_init_js = """
+mermaid.initialize({ theme: 'Neo', startOnLoad: true });
+"""
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
diff --git a/docs/guest-guide/dom/DOMCTL_claim_memory-classes.mmd b/docs/guest-guide/dom/DOMCTL_claim_memory-classes.mmd
new file mode 100644
index 000000000000..1406a4919442
--- /dev/null
+++ b/docs/guest-guide/dom/DOMCTL_claim_memory-classes.mmd
@@ -0,0 +1,51 @@
+%% SPDX-License-Identifier: CC-BY-4.0
+classDiagram
+
+class xen_domctl {
+    +uint32_t cmd
+    +uint32_t interface_version
+    +uint32_t domain
+    +xen_domctl_claim_memory
+}
+
+class xen_domctl_claim_memory {
+    +memory_claim_t* claims
+    +uint32_t nr_claims
+    +uint32_t pad
+}
+
+class memory_claim_t {
+    +uint64_aligned_t pages
+    +uint32_t node
+    +uint32_t pad
+}
+
+class xc_domain_claim_memory["xc_domain_claim_memory()"] {
+    +xc_interface* xch
+    +uint32_t domid
+    +uint32_t nr_claims
+    +memory_claim_t* claims
+}
+
+class page_alloc_globals["xen/common/page_alloc.c"] {
+    +unsigned long outstanding_claims
+    +unsigned long node_outstanding_claims[]
+}
+
+class claim["DOMCTL_claim_memory"] {
+    +int claim_memory(d, uinfo)
+    +int domain_set_outstanding_pages(d, pages, node)
+}
+
+class domain["struct domain"] {
+    +unsigned_int outstanding_pages
+    +nodeid_t claim_node
+}
+
+xen_domctl_claim_memory o--> memory_claim_t
+xen_domctl o--> xen_domctl_claim_memory
+xc_domain_claim_memory ..> xen_domctl : populates
+xc_domain_claim_memory ..> claim : calls via <tt>do_domctl()</tt>
+claim ..> xen_domctl_claim_memory : reads
+claim ..> domain : sets
+claim ..> page_alloc_globals : updates outstanding claims
diff --git a/docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd b/docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd
new file mode 100644
index 000000000000..05d688c59f13
--- /dev/null
+++ b/docs/guest-guide/dom/DOMCTL_claim_memory-seqdia.mmd
@@ -0,0 +1,23 @@
+%% SPDX-License-Identifier: CC-BY-4.0
+sequenceDiagram
+
+actor DomainBuilder
+participant OcamlStub as OCaml stub for<br>xc_domain<br>claim_memory
+participant Libxc as xc_domain<br>claim_memory
+participant Domctl as XEN_DOMCTL<br>claim_memory
+#participant DomainLogic as claim_memory
+participant Alloc as domain<br>set<br>outstanding_pages
+
+DomainBuilder->>OcamlStub: claims
+OcamlStub->>OcamlStub: marshall claims -----> OCaml to C
+OcamlStub->>Libxc: claims
+
+Libxc->>Domctl: do_domctl
+
+Domctl->>Domctl: copy_from_guest(claim)
+Domctl->>Domctl: validate claim
+Domctl->>Alloc: set<br>outstanding_pages
+Alloc-->>Domctl: result
+Domctl-->>Libxc: rc
+Libxc-->>OcamlStub: rc
+OcamlStub-->>DomainBuilder: claim_result
\ No newline at end of file
diff --git a/docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd b/docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd
new file mode 100644
index 000000000000..372f2bb7a616
--- /dev/null
+++ b/docs/guest-guide/dom/DOMCTL_claim_memory-workflow.mmd
@@ -0,0 +1,23 @@
+%% SPDX-License-Identifier: CC-BY-4.0
+sequenceDiagram
+
+participant Toolstack
+participant Xen
+participant NUMA Node memory
+
+Toolstack->>Xen: XEN_DOMCTL_createdomain
+Toolstack->>Xen: XEN_DOMCTL_max_mem(max_pages)
+
+Toolstack->>Xen: XEN_DOMCTL_claim_memory(pages, node)
+Xen->>NUMA Node memory: Claim pages on node
+Xen-->>Toolstack: Claim granted
+
+Toolstack->>Xen: XEN_DOMCTL_set_nodeaffinity(node)
+
+loop Populate domain memory
+    Toolstack->>Xen: XENMEM_populate_physmap(memflags:node)
+    Xen->>NUMA Node memory: alloc from claimed node
+end
+
+Toolstack->>Xen: XEN_DOMCTL_claim_memory(0, NO_NODE)
+Xen-->>Toolstack: Remaining claims released
diff --git a/docs/guest-guide/dom/DOMCTL_claim_memory.rst b/docs/guest-guide/dom/DOMCTL_claim_memory.rst
new file mode 100644
index 000000000000..8be37585f02a
--- /dev/null
+++ b/docs/guest-guide/dom/DOMCTL_claim_memory.rst
@@ -0,0 +1,125 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+.. _XEN_DOMCTL_claim_memory:
+
+XEN_DOMCTL_claim_memory
+=======================
+
+This **domctl** command allows a privileged domain to stake a memory claim for
+a domain identical to :ref:`XENMEM_claim_pages`, but with support for
+NUMA-aware memory claims.
+
+A claim entry with a node value of ``XEN_DOMCTL_CLAIM_MEMORY_NO_NODE`` stakes
+a claim for host memory, exactly like :ref:`XENMEM_claim_pages` does.
+
+NUMA-aware memory claims
+------------------------
+
+Memory locality is an important factor for performance in NUMA systems.
+Allocating memory close to the CPU that will use it can reduce latency
+and improve overall performance.
+
+By claiming memory on specific NUMA nodes, toolstacks can ensure that they
+will be able to allocate memory for the domain on those nodes. This is
+particularly beneficial for workloads that are sensitive to memory latency,
+such as in-memory databases.
+
+**Note:** The ABI supports multiple claims for future expansion. At the moment,
+Xen accepts a single claim entry (either a NUMA-aware or host-wide claim).
+
+Implementation notes
+--------------------
+
+As described in :ref:`XENMEM_claim_pages`, Xen keeps track of the number
+of claimed pages in the domain's ``d->outstanding_pages`` counter.
+
+Xen declares a NUMA-aware claim by assigning ``d->claim_node`` to a NUMA node,
+which declares that ``d->outstanding_pages`` is claimed on ``d->claim_node``.
+
+See :ref:`hypervisor-guide` > :ref:`memory_management` > :ref:`memory_claims`
+for more details on the implementation on the details how claims are handled
+by the buddy allocator, and how a toolstack can populate the memory of a domain
+from the claimed node, even if it needs to wait for scrubbing to complete.
+
+Used functions & data structures
+--------------------------------
+
+This diagram illustrates the key functions and data structures involved in the
+implementation of the ``domctl`` hypercall command ``XEN_DOMCTL_claim_memory``:
+
+.. mermaid:: DOMCTL_claim_memory-classes.mmd
+  :caption: Diagram: Function and data relationships of XEN_DOMCTL_claim_memory
+
+Call sequence diagram
+---------------------
+
+The following sequence diagram illustrates the call flow for claiming memory
+for a domain using this hypercall command from an OCaml toolstack:
+
+.. mermaid:: DOMCTL_claim_memory-seqdia.mmd
+  :caption: Sequence diagram: Call flow for claiming memory for a domain
+
+Claim workflow
+--------------
+
+The following diagram illustrates a workflow for claiming and populating memory:
+
+.. mermaid:: DOMCTL_claim_memory-workflow.mmd
+  :caption: Workflow diagram: Claiming and populating memory for a domain
+
+API example (libxc)
+-------------------
+The following example demonstrates how a toolstack can claim memory before
+building the domain and then releasing the claim once the memory population
+is complete.
+
+Note: ``memory_claim_t`` contains padding to allow for future expansion.
+Thus, the structure must be zero-initialised to ensure forward compatibility.
+This can be achieved by using the ``XEN_NODE_CLAIM_INIT`` macro, which sets the
+pages and node fields while zero-initialising the padding of the structure,
+zero-initialising the entire structure, or by using a compound literal with
+designated initialisers to set the pages and node fields while zero-initialising
+the padding of the structure.
+
+.. code-block:: C
+
+  #include <xenctrl.h>
+
+  int claim_guest_memory(xc_interface *xch, uint32_t domid,
+                         uint64_t pages)
+  {
+      memory_claim_t claim[] = {
+        /*
+         * Example 1:
+         * Uses the ``XEN_NODE_CLAIM_INIT`` macro to zero-initialise the padding
+         * and set the pages and node fields for a NUMA-aware claim on node 0.
+         */
+        XEN_NODE_CLAIM_INIT(pages, 0)  /* Claim memory on NUMA node 0 */
+      };
+
+      /* Claim memory from NUMA node 0 for the domain build. */
+      return xc_domain_claim_memory(xch, domid, 1, claim);
+  }
+
+  int release_claim(xc_interface *xch, uint32_t domid)
+  {
+      memory_claim_t claim[] = {
+        /*
+         * Example 2:
+         * Uses a compound literal with designated initialisers to set the
+         * fields to release the claim while zero-initialising the rest
+         * of the structure for forward compatibility.
+         */
+        (memory_claim_t){
+          /*
+           * pages == 0 releases any outstanding claim.
+           * The node field is not used in this case, but must be set to
+           * XEN_DOMCTL_CLAIM_MEMORY_NO_NODE for forward compatibility.
+           */
+          .pages = 0,
+          .node = XEN_DOMCTL_CLAIM_MEMORY_NO_NODE,
+        }
+      };
+
+      /* Release any remaining claim once population is done. */
+      return xc_domain_claim_memory(xch, domid, 1, claim);
+  }
diff --git a/docs/guest-guide/dom/index.rst b/docs/guest-guide/dom/index.rst
new file mode 100644
index 000000000000..445ccf599047
--- /dev/null
+++ b/docs/guest-guide/dom/index.rst
@@ -0,0 +1,14 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Domctl Hypercall
+================
+
+Through domctl hypercalls, toolstacks in privileged domains can perform
+operations related to domain management.  This includes operations such as
+creating, destroying, and modifying domains, as well as querying domain
+information.
+
+.. toctree::
+   :maxdepth: 2
+
+   DOMCTL_claim_memory
diff --git a/docs/guest-guide/index.rst b/docs/guest-guide/index.rst
index 5455c67479cf..d9611cd7504d 100644
--- a/docs/guest-guide/index.rst
+++ b/docs/guest-guide/index.rst
@@ -3,6 +3,29 @@
 Guest documentation
 ===================
 
+Xen exposes a set of hypercalls that allow domains and toolstacks in
+privileged contexts (such as Dom0) to request services from the hypervisor.
+
+Through these hypercalls, privileged domains can perform privileged operations
+such as querying system information, memory and domain management,
+and enabling inter-domain communication via shared memory and event channels.
+
+These hypercalls are documented in the following sections, grouped by their
+functionality. Each section provides an overview of the hypercalls, their
+parameters, and examples of how to use them.
+
+Hypercall API documentation
+---------------------------
+
+.. toctree::
+   :maxdepth: 2
+
+   dom/index
+   mem/index
+
+Hypercall ABI documentation
+---------------------------
+
 .. toctree::
    :maxdepth: 2
 
diff --git a/docs/guest-guide/mem/XENMEM_claim_pages.rst b/docs/guest-guide/mem/XENMEM_claim_pages.rst
new file mode 100644
index 000000000000..7d465d2a87fe
--- /dev/null
+++ b/docs/guest-guide/mem/XENMEM_claim_pages.rst
@@ -0,0 +1,68 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+.. _XENMEM_claim_pages:
+
+XENMEM_claim_pages
+==================
+
+This **xenmem** command allows a privileged guest to stake a memory claim for a
+domain, identical to :ref:`XEN_DOMCTL_claim_memory`, but without support for
+NUMA-aware memory claims.
+
+Memory claims in Xen
+--------------------
+
+The Xen hypervisor maintains a counter of outstanding pages for each domain
+which maintains a number of pages claimed, but not allocated for that domain.
+
+If the outstanding pages counter is zero, this hypercall allows a privileged
+guest to stake a claim for a specified number of pages of system memory for the
+domain.
+
+If the claim is successful, Xen updates the domain's outstanding pages counter
+to reflect the new claim, Xen allocates from the pool of claimed memory only
+for allocations for domains with a claim for this memory.
+
+A domain builder (toolstack in a privileged domain) building the domain can then
+allocate the guest memory for the domain, which converts the outstanding claim
+into actual memory of the new domain, backed by physical pages.
+
+Note that the resulting claim is relative to the already allocated pages for the
+domain, so the **pages** argument of this hypercall is absolute and must
+correspond to the total number expected to be allocated for the domain,
+and not incremental to the already allocated pages.
+
+Memory allocations by Xen for the domain also consume the claim, so toolstacks
+should stake a claim that is larger than the guest memory requirement to
+account for Xen's own memory usage. The exact amount of extra memory required
+depends on the configuration and features used by the domain, the host
+architecture and the features enabled by the Xen hypervisor on the host.
+
+Life-cycle of a claim
+---------------------
+
+The Domain's maximum memory limit must be set prior to staking a claim as
+the sum of the already allocated pages and the claim must be within that limit.
+
+To release the claim after the domain build is complete, call this hypercall
+command with the pages argument set to zero. This releases any remaining claim.
+`libxenguest` does this after the guest memory has been allocated for the domain
+and Xen does this also when it kills the domain.
+
+API example (libxc)
+-------------------
+The following example demonstrates how a toolstack can claim memory before
+building the domain and then releasing the claim once the memory population
+is complete.
+
+.. code-block:: C
+
+  #include <xenctrl.h>
+  ...
+      /* Claim memory for the domain build. */
+      int ret = xc_domain_claim_pages(xch, domid, nr_pages);
+
+      /* Build the domain and allocate memory for it. */
+      ...
+
+      /* Release any remaining claim after populating the domain memory. */
+      int ret = xc_domain_claim_pages(xch, domid, 0);
diff --git a/docs/guest-guide/mem/index.rst b/docs/guest-guide/mem/index.rst
new file mode 100644
index 000000000000..dabd1fd0153e
--- /dev/null
+++ b/docs/guest-guide/mem/index.rst
@@ -0,0 +1,12 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+Memctl Hypercall
+================
+
+The memctl hypercall interface allows guests to perform various control
+operations related to memory management.
+
+.. toctree::
+   :maxdepth: 2
+
+   XENMEM_claim_pages
diff --git a/docs/hypervisor-guide/index.rst b/docs/hypervisor-guide/index.rst
index 520fe01554ab..fef35a1ac4fe 100644
--- a/docs/hypervisor-guide/index.rst
+++ b/docs/hypervisor-guide/index.rst
@@ -1,12 +1,17 @@
 .. SPDX-License-Identifier: CC-BY-4.0
+.. _hypervisor-guide:
 
 Hypervisor documentation
 ========================
 
+See :ref:`memory_claims` for more details on the implementation of the claims
+mechanism in the Hypervisor and its interaction with the buddy allocator.
+
 .. toctree::
    :maxdepth: 2
 
    code-coverage
 
+   mm/index
    x86/index
    arm/index
\ No newline at end of file
diff --git a/docs/hypervisor-guide/mm/claims.rst b/docs/hypervisor-guide/mm/claims.rst
new file mode 100644
index 000000000000..97eb8a68fb1e
--- /dev/null
+++ b/docs/hypervisor-guide/mm/claims.rst
@@ -0,0 +1,114 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+.. _memory_claims:
+
+Memory Claims
+=============
+
+Overview
+--------
+
+Xen's page allocator supports a **claims** mechanism that allows a domain
+builder to reserve memory before allocation begins, preventing concurrent
+allocations from exhausting available pages mid-build.
+A claim can be global (host-wide) or target a specific NUMA node, ensuring
+that a domain's memory is allocated locally on the same node as its vCPUs.
+
+The host-wide claims check subtracts global claims from total available pages.
+If the domain has claims, its ``d->outstanding_pages`` are added back as
+available (simplified pseudo-code):
+
+.. code:: C
+
+   ASSERT(spin_is_locked(&heap_lock));
+   unsigned long global_avail = total_avail_pages - outstanding_claims
+                                                    + d->outstanding_pages;
+   return alloc_request <= global_avail;
+
+Similarly, the per-node check enforces node-level claims by subtracting
+outstanding node claims from available node pages, and adding back the domain's
+claim if allocating from the claimed node:
+
+.. code:: C
+
+   ASSERT(spin_is_locked(&heap_lock));
+   unsigned long avail = node_avail_pages(node)
+                         - node_outstanding_claims(node)
+                         + (node == d->claim_node ? d->outstanding_pages : 0);
+   return alloc_request <= avail;
+
+Simplified pseudo-code for the claims checks in the buddy allocator:
+
+.. code:: C
+
+    struct page_info *get_free_buddy(order, memflags, d) {
+        for ( ; ; ) {
+            node = preferred_node_or_next_node();
+            if (!node_allocatable_request(d, memflags, 1 << order, node))
+                goto try_next_node;
+            /* Find a zone on this node with a suitable buddy */
+            for (zone = highest_zone; zone >= lowest_zone; zone--)
+                for (j = order; j <= MAX_ORDER; j++)
+                    if (pg = remove_head(&heap(node, zone, j)))
+                        return pg;
+         try_next_node:
+            if (req_node != NUMA_NO_NODE && memflags & MEMF_exact_node)
+                return NULL;
+            /* Fall back to the next node and repeat. */
+        }
+    }
+
+    struct page_info *alloc_heap_pages(d, order, memflags) {
+        if (!host_allocatable_request(d, memflags, 1 << order))
+            return NULL;
+        pg = get_free_buddy(order, memflags, d);
+        if (!pg) /* Retry allowing unscrubbed pages */
+            pg = get_free_buddy(order, memflags|MEMF_no_scrub, d);
+        if (!pg)
+            return NULL;
+        if (pg has dirty pages)
+            scrub_dirty_pages(pg);
+        return pg;
+    }
+
+.. note:: The first ``get_free_buddy()`` pass skips unscrubbed pages and may
+    fall back to other nodes. With ``memflags & MEMF_exact_node``, no fallback
+    occurs, so the first pass may return ``NULL``.
+    The 2nd pass with ``MEMF_no_scrub`` will consider the unscrubbed pages.
+    ``alloc_heap_pages()`` then scrubs them before returning, guaranteeing the
+    domain gets the desired node-local pages even when scrubbing is pending.
+
+    Therefore, toolstacks should set ``MEMF_exact_node`` in ``memflags`` when
+    allocating for a domain with a NUMA-aware claim to with
+    ``XENMEMF_exact_node(node)``.
+
+    For efficient scrubbing, toolstacks might want to run domain builds
+    pinned on a CPU of the target NUMA node to scrub the pages on that node
+    without cross-node traffic and lower latency to speed up domain build.
+
+Data Structures
+---------------
+
+The following diagram shows the relationships between global, per-node,
+and per-domain claim counters, all protected by the global ``heap_lock``.
+
+.. mermaid::
+
+   graph TB
+    subgraph "Protected by the heap_lock"
+       direction TB
+       Global --Sum of--> Per-node
+       Per-node --Sum of--> Per-domain
+    end
+    subgraph Per-domain
+        direction LR
+        claim_node["d->claim_node"]
+        claim_node --claims on--> outstanding_pages["d->outstanding_pages"]
+    end
+    subgraph Per-node
+        direction LR
+        node_outstanding_claims--constrains-->node_avail_pages
+    end
+    subgraph Global
+        direction LR
+        outstanding_claims--constrains-->total_avail_pages
+    end
diff --git a/docs/hypervisor-guide/mm/index.rst b/docs/hypervisor-guide/mm/index.rst
new file mode 100644
index 000000000000..9b5d60e3181a
--- /dev/null
+++ b/docs/hypervisor-guide/mm/index.rst
@@ -0,0 +1,10 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+.. _memory_management:
+
+Memory Management
+=================
+
+.. toctree::
+   :maxdepth: 2
+
+   claims
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Thu Feb 26 15:54:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 15:54:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242161.1542837 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvdgk-00027D-4V; Thu, 26 Feb 2026 15:54:06 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242161.1542837; Thu, 26 Feb 2026 15: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 1vvdgk-000276-1q; Thu, 26 Feb 2026 15:54:06 +0000
Received: by outflank-mailman (input) for mailman id 1242161;
 Thu, 26 Feb 2026 15: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvdgj-000270-0l
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 15:54:05 +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 5eb76429-132b-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 16:54:02 +0100 (CET)
Received: by mail-wr1-x42d.google.com with SMTP id
 ffacd0b85a97d-436e87589e8so1011107f8f.3
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 07:54:02 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c7657c7sm330809f8f.28.2026.02.26.07.54.00
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Feb 2026 07:54:00 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5eb76429-132b-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772121241; x=1772726041; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=MNZNyRP1+/BMikhGjXgBseL3jZKGuixhxpWEQaQcXKA=;
        b=OqRWSrPCMwqp6Eg5Gxk5cJFARxiT7CPc321lLciTb4Shy2wG0lRV5VLyiV0PYwo68M
         uM8wKB41qpFa6XBJ16T98vBB/673801iH2u52/4F6OCvWalu2zjG2YNJkNwj1VXS8ab0
         tkOhGdd5a1LGqpelifWTv8hztFc2F3BZDsHmvTb3gfaAtXYnp8F2b61AKU+I53cP1RSU
         Frt0w4GBD8HCNh6zMIVi+eiFvzzNq6wcyd5Y2xjoNNaA4bE7IeUyRbkma8phkETaWQti
         /1tRtJ/DOCJWOqU6uV7NgOdiNt0psZRk8ibFsLcj6ZrKBosYbOjcWXhET8QgteqzKvQJ
         hiQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772121241; x=1772726041;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=MNZNyRP1+/BMikhGjXgBseL3jZKGuixhxpWEQaQcXKA=;
        b=ofYc5WG6yTUc5guyvNMg9iETe2370Zstmt2vBKTwb995/IMUcZUQLA/YV10yN6Yzl7
         5X3HGl7TqZeHNldKOo/y41TWrr1Y0nOKjsfQuR3GpA1dltl8Ba33WWuMr+lKnoicTTbQ
         WDy3Cj+sYmKUR9mJ7TpUbrnhsiG/frygWJdWixAchJZca1lo32TN6VreCvnG7UDZ4ovs
         qfE53nKEiV7PTBLOAnYKJsqYg9fgNc1rNcieSjhQz2ioLI0ixpCu4KRNw8xumB5zfifv
         4H6B8vzt9iSTgMcYVsLEulcG07yjFpjl2urvjGv+jZ7/y3kfl3KRPxAFHrOJgLP6JQEd
         J+hw==
X-Forwarded-Encrypted: i=1; AJvYcCUcXPQA9Y9hlyFfXrt+XBEn01Neug8MRAF7xjXLjkGcad3MLV39ChHYJUmUcwNTKTg8pMAen9qtRMo=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzehgclAJYokO5E4o2LdORuAlay/N7BbKbVm4vBFpDg7K2YSFSg
	Cx0AgnyAQQOtHKkMVqLlfRbzW++MGi9C/dsNgKKcE+0bQ2gRnRI5zHPoXK38InzxKg==
X-Gm-Gg: ATEYQzxxuYvHt4sRWKq5jSesKvUDuyxwweOY34qphbjVe1zvYNRP2l7GmZFVF9kP34M
	mPc9dcSQVxICNVanYTIViJgNyIR9ba5pbyC0BZJnPSSNNR8NWZsO2y9xnxAOXSBmsaPCaEHkj/U
	Ytawt0Dr1IzAWBgiiJ/GBepJSfvkZSinKMmQ+ueR0x7C1D3u4Cpzt5aevmf4JcXcVSJ5xI5Y4JR
	Lp2G5MKwJI8oCIMVTH4COBJjfg7XwUQzotZ4vqc2PtH0vy0ZkYYqpXnc21IzMC2G07GwKK8u5qZ
	yFATN0AXsFc9sGj26fVe7AdMzk0mHEyZzadjbPXPAeB4DP0+7FjiwXLgu/9jvkEvB8bAsAsDI21
	eAKiLv/MarbyBvC84761jPg+3tyaVzkrvrIfNXETE6/K5KpAGyHDjD0kjDLQPmH3tnVPdGqQoJs
	6mVTkcCU/zGTQFlMkiyJGuqMUoemE01pd/FTkKIuzmL7tmedJPzMoqBhZ2g8LS4yYtQluo40I2J
	pzqeBOYazZZJ+s=
X-Received: by 2002:a05:6000:26c5:b0:439:8b42:9926 with SMTP id ffacd0b85a97d-4398b429b9dmr17248805f8f.12.1772121241297;
        Thu, 26 Feb 2026 07:54:01 -0800 (PST)
Message-ID: <c9126823-7c90-40bb-9fd1-c5649ffdb5cd@suse.com>
Date: Thu, 26 Feb 2026 16:53:58 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/2] x86/ioreq: Extend ioreq server to support multiple
 ioreq pages
To: Julian Vetter <julian.vetter@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: <20260223093831.475769-1-julian.vetter@vates.tech>
 <20260223093831.475769-2-julian.vetter@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: <20260223093831.475769-2-julian.vetter@vates.tech>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 23.02.2026 10:38, Julian Vetter wrote:
> A single shared ioreq page provides PAGE_SIZE/sizeof(ioreq_t) = 128
> slots, limiting HVM guests to 128 vCPUs. To support more vCPUs, extend
> the ioreq server to use xvzalloc_array() for allocating a contiguous
> virtual array of ioreq_t slots sized to d->max_vcpus, backed by
> potentially non-contiguous physical pages.
> 
> For the GFN-mapped path (x86), page and writable type references are
> obtained directly via check_get_page_from_gfn() and get_page_type() for
> each GFN. The pages are then combined into a single contiguous VA using
> vmap(). The number of ioreq pages is computed at runtime via
> nr_ioreq_pages(d) = DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE), so
> small VMs only allocate one page. All existing single-page paths
> (bufioreq, legacy clients) remain unchanged.
> 
> Mark the now-unused shared_iopage_t in the public header as deprecated.

For this I think we need to settle on one of two options: Either it was a
mistake that this was used in the hypervisor (and added to the public
interface), in which case the removal of the use may want to be separate
(without, imo, any need to mark the item deprecated in the public header,
as the property remains). Or we deem it legitimate / useful, in which case
you would want to continue using it (in struct ioreq_server).

> @@ -89,6 +91,39 @@ static gfn_t hvm_alloc_ioreq_gfn(struct ioreq_server *s)
>      return hvm_alloc_legacy_ioreq_gfn(s);
>  }
>  
> +static gfn_t hvm_alloc_ioreq_gfns(struct ioreq_server *s,
> +                                  unsigned int nr_pages)
> +{
> +    struct domain *d = s->target;
> +    unsigned long mask;
> +    unsigned int i, run;
> +
> +    if ( nr_pages == 1 )
> +        return hvm_alloc_ioreq_gfn(s);
> +
> +    /* Find nr_pages consecutive set bits */
> +    mask = d->arch.hvm.ioreq_gfn.mask;
> +
> +    for ( i = 0, run = 0; i < BITS_PER_LONG; i++ )
> +    {
> +        if ( !test_bit(i, &mask) )
> +            run = 0;
> +        else if ( ++run == nr_pages )
> +        {
> +            /* Found a run - clear all bits and return base GFN */
> +            unsigned int start = i - nr_pages + 1;
> +            unsigned int j;
> +
> +            for ( j = start; j <= i; j++ )
> +                clear_bit(j, &d->arch.hvm.ioreq_gfn.mask);

You using clear_bit() here doesn't make the while operation atomic. There will
need to be synchronization (also with hvm_alloc_ioreq_gfn()), and once that's
there (or if things are suitably synchronized already) __clear_bit() ought to
suffice here.

> +            return _gfn(d->arch.hvm.ioreq_gfn.base + start);
> +        }
> +    }
> +
> +    return INVALID_GFN;
> +}

Did you consider whether fragmentation could get in the way here, as is usually
the case when doing mixed-size allocations from a single pool? In how far is it
necessary for the GFNs used to be consecutive?

> @@ -134,16 +181,41 @@ static void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
>  
>          hvm_free_ioreq_gfn(s, iorp->gfn);
>          iorp->gfn = INVALID_GFN;
> +        return;
>      }
> +
> +    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
> +        return;
> +
> +    nr_pages = nr_ioreq_pages(s->target);
> +
> +    for ( i = 0; i < nr_pages; i++ )
> +    {
> +        struct page_info *pg = vmap_to_page((char *)s->ioreq +

Please can you preferably cast to const void * (or void *)? But perhaps you
would better latch the pointer into a local variable anyway, for ...

> +                                            i * PAGE_SIZE);
> +
> +        put_page_and_type(pg);
> +        put_page(pg);

> +    }
> +    vunmap(s->ioreq);
> +    s->ioreq = NULL;

... this clearing to move up ahead of any teardown done.

> +    hvm_free_ioreq_gfns(s, s->ioreq_gfn, nr_pages);
> +    s->ioreq_gfn = INVALID_GFN;

This similarly may want moving up.

As to the loop body, destroy_ring_for_helper() has put_page_and_type(), but
no put_page(). Why is this different here?

> @@ -173,30 +245,132 @@ static int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
>  
>          return rc;
>      }
> +
> +    /* ioreq: multi-page with contiguous VA */
> +    if ( s->ioreq )
> +    {
> +        if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
> +            return -EPERM;

The comment on the other path at least wants referencing here.

> +        return 0;
> +    }
> +
> +    if ( d->is_dying )
> +        return -EINVAL;
> +
> +    nr_pages = nr_ioreq_pages(d);
> +    base_gfn = hvm_alloc_ioreq_gfns(s, nr_pages);
> +
> +    if ( gfn_eq(base_gfn, INVALID_GFN) )
> +        return -ENOMEM;
> +
> +    mfns = xmalloc_array(mfn_t, nr_pages);

Especially when there are only a few MFNs, this dynamic allocation would be
nice to avoid. If there was a not overly larger upper bound, using a per-CPU
array might also be an option.

If the dynamic allocation stays, new code wants to use xvmalloc() and
friends.

> +    if ( !mfns )
> +    {
> +        hvm_free_ioreq_gfns(s, base_gfn, nr_pages);
> +        return -ENOMEM;
> +    }
> +
> +    /*
> +     * Obtain a page reference and writable type reference for each GFN.
> +     * No per-page VA is needed; all pages are mapped as a single contiguous
> +     * VA via vmap() below.
> +     */

I think this comment wants to mention prepare_ring_for_helper(), so that if
updates are done there, there's at least a fair chance that people might spot
that changes need doing here as well.

> +    for ( i = 0; i < nr_pages; i++ )
> +    {
> +        struct page_info *pg;
> +        p2m_type_t p2mt;
> +
> +        rc = check_get_page_from_gfn(d, _gfn(gfn_x(base_gfn) + i),

gfn_add() please

> +                                     false, &p2mt, &pg);
> +        if ( rc )
> +        {
> +            if ( rc == -EAGAIN )
> +                rc = -ENOENT;
> +            goto fail;
> +        }
> +
> +        if ( !get_page_type(pg, PGT_writable_page) )
> +        {
> +            put_page(pg);
> +            rc = -EINVAL;
> +            goto fail;
> +        }
> +
> +        mfns[i] = page_to_mfn(pg);
> +    }
> +
> +    /* Map all mfns as single contiguous VA */
> +    s->ioreq = vmap(mfns, nr_pages);
> +    if ( !s->ioreq )
> +    {
> +        rc = -ENOMEM;
> +        goto fail;
> +    }
> +
> +    s->ioreq_gfn = base_gfn;
> +    xfree(mfns);
> +
> +    return 0;
> +
> + fail:
> +    while ( i-- > 0 )
> +    {
> +        struct page_info *pg = mfn_to_page(mfns[i]);
> +
> +        put_page_and_type(pg);
> +        put_page(pg);

Same issue here - I can't spot which page reference you're dropping. You
obtained only one above.

> @@ -208,6 +382,32 @@ static int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
>  
>          return rc;
>      }
> +
> +    if ( gfn_eq(s->ioreq_gfn, INVALID_GFN) )
> +        return 0;
> +
> +    nr_pages = nr_ioreq_pages(d);
> +    memset(s->ioreq, 0, nr_pages * PAGE_SIZE);
> +
> +    for ( i = 0; i < nr_pages; i++ )
> +    {
> +        gfn_t gfn = gfn_add(s->ioreq_gfn, i);
> +        struct page_info *pg = vmap_to_page((char *)s->ioreq +
> +                                            i * PAGE_SIZE);
> +
> +        rc = p2m_add_page(d, gfn, page_to_mfn(pg), 0, p2m_ram_rw);
> +        if ( rc )
> +            /*
> +             * No rollback of previously added pages: The caller
> +             * (arch_ioreq_server_disable) has no error handling path,
> +             * and partial failure here will be cleaned up when the
> +             * ioreq server is eventually destroyed.
> +             */
> +            return rc;

Shouldn't you continue the loop, to try to add back as many pages as
you can, so the domain encountering problems later is as unlikely as
possible (albeit a single missing page is already bad enough)?

> @@ -260,9 +259,32 @@ bool vcpu_ioreq_handle_completion(struct vcpu *v)
>  
>  static int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
>  {
> -    struct ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq;
> +    struct ioreq_page *iorp;
>      struct page_info *page;
>  
> +    if ( !buf )
> +    {
> +        if ( s->ioreq )
> +        {
> +            /*
> +             * If a guest frame has already been mapped (which may happen
> +             * on demand if ioreq_server_get_info() is called), then
> +             * allocating a page is not permitted.
> +             */
> +            if ( !gfn_eq(s->ioreq_gfn, INVALID_GFN) )
> +                return -EPERM;
> +
> +            return 0;
> +        }
> +
> +        s->ioreq = xvzalloc_array(ioreq_t, s->target->max_vcpus);
> +
> +        return s->ioreq ? 0 : -ENOMEM;

At this point you haven't fulfilled what the function is supposed to be
doing. The pages you allocate also aren't associated with the domain,
and you haven't obtained writable references.

> @@ -812,26 +861,30 @@ int ioreq_server_get_frame(struct domain *d, ioservid_t id,
>      if ( rc )
>          goto out;
>  
> -    switch ( idx )
> +    if ( idx == XENMEM_resource_ioreq_server_frame_bufioreq)
>      {
> -    case XENMEM_resource_ioreq_server_frame_bufioreq:
>          rc = -ENOENT;
>          if ( !HANDLE_BUFIOREQ(s) )
>              goto out;
>  
>          *mfn = page_to_mfn(s->bufioreq.page);
>          rc = 0;
> -        break;
> -
> -    case XENMEM_resource_ioreq_server_frame_ioreq(0):
> -        *mfn = page_to_mfn(s->ioreq.page);
> -        rc = 0;
> -        break;
> +    }
> +    else if (( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) ) &&
> +             ( idx < XENMEM_resource_ioreq_server_frame_ioreq(nr_ioreq_pages(d)) ))
> +    {
> +        unsigned int page_idx = idx - XENMEM_resource_ioreq_server_frame_ioreq(0);
>  
> -    default:
>          rc = -EINVAL;
> -        break;
> +        if ( idx >= XENMEM_resource_ioreq_server_frame_ioreq(0) &&

You checked this above already, didn't you?

> +             page_idx < nr_ioreq_pages(d) && s->ioreq )

The former part of this check also looks redundant with the earlier one.

> --- a/xen/include/xen/ioreq.h
> +++ b/xen/include/xen/ioreq.h
> @@ -19,9 +19,19 @@
>  #ifndef __XEN_IOREQ_H__
>  #define __XEN_IOREQ_H__
>  
> +#include <xen/macros.h>
>  #include <xen/sched.h>
>  
>  #include <public/hvm/dm_op.h>
> +#include <public/hvm/ioreq.h>
> +
> +/* 4096 / 32 = 128 ioreq slots per page */
> +#define IOREQS_PER_PAGE  (PAGE_SIZE / sizeof(ioreq_t))

I think the comment wants dropping, as it would end up wrong / useless for
page size different from 4k. I'm also not quite sure the #define is overly
useful, as ...

> +static inline unsigned int nr_ioreq_pages(const struct domain *d)
> +{
> +    return DIV_ROUND_UP(d->max_vcpus, IOREQS_PER_PAGE);

... this is its only use.

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 15:59:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 15:59:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242172.1542849 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvdlm-0002mA-O3; Thu, 26 Feb 2026 15:59:18 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242172.1542849; Thu, 26 Feb 2026 15: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 1vvdlm-0002m3-Jo; Thu, 26 Feb 2026 15:59:18 +0000
Received: by outflank-mailman (input) for mailman id 1242172;
 Thu, 26 Feb 2026 15: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvdll-0002lj-GX
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 15:59:17 +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 19b9b840-132c-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 16:59:15 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-48069a48629so11340385e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 07:59:15 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c597578sm476245f8f.0.2026.02.26.07.59.14
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Feb 2026 07:59:14 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 19b9b840-132c-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772121555; x=1772726355; 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=9h7KiGa2XnrvUD/MkOcQiZBTqMcoMzchN1b+d4P6Dew=;
        b=KcSeEKXBkojCojJeTevuvVTWSWlYKLDK9imzYpCp307sIeQSfqX3cWf3Br97ZtvKhy
         mSZ6cmKaAVtLwH8uDxaFVUo2u6M5sPpwuznALQPqur+PEsAe9Ouq8yVB0GoaK1JPb21e
         amKoPhZUoCE6Yizdi0hQ47xS8Cx7poxEGuwylDdOlwJJfCypEjGF65jF/NOB/lwCLauq
         yj9XZBtG8rV18es7IkEajm/vATNWHUe4l5eosQrLJFXl4++a1jA+tpk/aIYyiC+N8TGM
         bxLdqRVtOp1JSI/yPAx6TzINR8d04jZb4rWU7IFJSZLMxwlz8RibTFgbjtdrwAxNTmje
         81wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772121555; x=1772726355;
        h=content-transfer-encoding:in-reply-to:autocrypt:content-language
         :references:cc:to:from:subject:user-agent:mime-version:date
         :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=9h7KiGa2XnrvUD/MkOcQiZBTqMcoMzchN1b+d4P6Dew=;
        b=ZpRggzans6wMBr/xqDOKiKF24OnBBSzN/ZAkhFxnfcIBK3ZmLzCdVgKuWD83uhUgy9
         AmXbgr54XlRdntFOdn0KH2GN93JKXpHqQgHDQaKzb8Z1twGROti9bsPD3ERBdTJLlqUp
         PIaFKVuAGLKJn791+Wbnt57OxuOp64aPEmPUUdBt3g28dEXSbrqITBdmoPmwfXQ20VHz
         wEgVUFCydV2O4i/9bVI222qyVkloK3rJMHg38ZTD5DKgaLqf/3BOJl+fXdcrKs5E/T5N
         DfcjYMi1Cn+4cKUac90odppI9YnaAG1uTghE0VpSmp6MUYcgGiwMXedGSHix5f2ZGyOU
         TFeA==
X-Forwarded-Encrypted: i=1; AJvYcCVGzVjsENy76zDmjTm16nWESCh2aziNQJhtEoo9nriQQIIJlMZQzxY7liL789tyb/7V0BCOmlkxnrE=@lists.xenproject.org
X-Gm-Message-State: AOJu0YyhjMFcN0djh6fusx0QQbvQI/2fEcolu8bK8xlY93Pq7gcyIOyQ
	TNZvgNBEnBqXs89vomdAM90V0d2T8xP8vXNYjKmS/RtJxK3IVTV+9OQ/ModkUIV6rA==
X-Gm-Gg: ATEYQzwfc7Xym/al/B3Ebrxo4hcM6a4r3rfPEnh8ZX+6+9fTV37nuComaoBmtJfw8K6
	4JvKsufnyUOhAazsbPI6kqhAQYow2aclj2yLS2wJncjMwifKsrlopdseWMTSfoMAQRayjrFfZnD
	7YMs5NknyIoYZujYgIbjklUe94mS+JjShxedTMDZJHXisTRxgkIvqmui9+ZsEeNZZ0iK0yXWlYj
	TPojhrbypDMzKObOxbEh5s0pz+LUvEL72hCHSba0XVPtG/UWWw+g+p+ldLMoCEPMT7yRt37q2U0
	i5zS/idzzi6RPEfRiUn7yXKp4F2oAvDnSsF9Ehnypb0B5W2qinNyh3RBV1t1jsFq6lWNg0d8ZSs
	uCqPj5ym11QPEfHbe0g1NLp+rM6bTuZWqbnEQj935Vo5qd8xscPu+ciwaBzkYnqS866g/Ee1Ctd
	zFgBtrbvn3b1AWz9R7eLHIpMuhXqszgmTK83kUkGwFJlKtE7Tsp72PZHNwb3jbtyXgcRlqgSJn8
	gIrFHrZTVKNK6s=
X-Received: by 2002:a05:600c:8b02:b0:47d:5e02:14e5 with SMTP id 5b1f17b1804b1-483a95a86eamr356549035e9.5.1772121555053;
        Thu, 26 Feb 2026 07:59:15 -0800 (PST)
Message-ID: <7e71e904-3a15-42d8-a1dc-4ad001683ec8@suse.com>
Date: Thu, 26 Feb 2026 16:59:12 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v3 2/2] x86/ioreq: Extend ioreq server to support multiple
 ioreq pages
From: Jan Beulich <jbeulich@suse.com>
To: Julian Vetter <julian.vetter@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: <20260223093831.475769-1-julian.vetter@vates.tech>
 <20260223093831.475769-2-julian.vetter@vates.tech>
 <c9126823-7c90-40bb-9fd1-c5649ffdb5cd@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: <c9126823-7c90-40bb-9fd1-c5649ffdb5cd@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 16:53, Jan Beulich wrote:
> On 23.02.2026 10:38, Julian Vetter wrote:
>> @@ -89,6 +91,39 @@ static gfn_t hvm_alloc_ioreq_gfn(struct ioreq_server *s)
>>      return hvm_alloc_legacy_ioreq_gfn(s);
>>  }
>>  
>> +static gfn_t hvm_alloc_ioreq_gfns(struct ioreq_server *s,
>> +                                  unsigned int nr_pages)
>> +{
>> +    struct domain *d = s->target;
>> +    unsigned long mask;
>> +    unsigned int i, run;
>> +
>> +    if ( nr_pages == 1 )
>> +        return hvm_alloc_ioreq_gfn(s);
>> +
>> +    /* Find nr_pages consecutive set bits */
>> +    mask = d->arch.hvm.ioreq_gfn.mask;
>> +
>> +    for ( i = 0, run = 0; i < BITS_PER_LONG; i++ )
>> +    {
>> +        if ( !test_bit(i, &mask) )
>> +            run = 0;
>> +        else if ( ++run == nr_pages )
>> +        {
>> +            /* Found a run - clear all bits and return base GFN */
>> +            unsigned int start = i - nr_pages + 1;
>> +            unsigned int j;
>> +
>> +            for ( j = start; j <= i; j++ )
>> +                clear_bit(j, &d->arch.hvm.ioreq_gfn.mask);
> 
> You using clear_bit() here doesn't make the while operation atomic. There will
> need to be synchronization (also with hvm_alloc_ioreq_gfn()), and once that's
> there (or if things are suitably synchronized already) __clear_bit() ought to
> suffice here.
> 
>> +            return _gfn(d->arch.hvm.ioreq_gfn.base + start);
>> +        }
>> +    }
>> +
>> +    return INVALID_GFN;
>> +}
> 
> Did you consider whether fragmentation could get in the way here, as is usually
> the case when doing mixed-size allocations from a single pool? In how far is it
> necessary for the GFNs used to be consecutive?

Thinking about it - isn't this GFN based approach the legacy one? Can't we demand
use of the resource mapping approach to support bigger guests?

Jan


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 16:28:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 16:28:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242197.1542859 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vveEK-0007LF-UW; Thu, 26 Feb 2026 16:28:48 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242197.1542859; Thu, 26 Feb 2026 16:28: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 1vveEK-0007L8-QB; Thu, 26 Feb 2026 16:28:48 +0000
Received: by outflank-mailman (input) for mailman id 1242197;
 Thu, 26 Feb 2026 16:28: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=S+Ht=A6=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vveEJ-0007L2-8I
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 16:28:47 +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 3728dd0d-1330-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 17:28:43 +0100 (CET)
Received: by mail-wm1-x335.google.com with SMTP id
 5b1f17b1804b1-48373a4bca3so6432955e9.0
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 08:28:43 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd750701sm166111345e9.11.2026.02.26.08.28.41
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Feb 2026 08:28:42 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3728dd0d-1330-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772123322; x=1772728122; 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=vGnb/LzRdTFuissfGZl/GYWSxvj7rryz8FoZ50rNebM=;
        b=ezKcP9mIvc3cn+JKDDiUlUZVPQCvauJaCoFjcNCjL+snO7N7w0meFf76IsgdAkIOwD
         BstZO7UAbtWMQPop88wbhVJWqtzRA0WIsTIG1zn0NSTENDVj71ShPLE17/uJxsM5hMF6
         UEVvJi7o6WCgZsFCi+v8KV68p4y5TdV3wqDV8YHZSmSdMN7+q0+4xtSAffLSTCp6Rjjk
         gVi1V9sHzzn2cZIydQHmUGbyvkO5tPjnP/wdkqw7RaLfH6dsZGuRmqrSROma5wtSbdn/
         2ury1ptk2YgyWSDJx7b//O/yGYCaOWfA6P1SXBESPRPMikZ1Te0PN6b4VsFApOGKGDpm
         G8FA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772123322; x=1772728122;
        h=content-transfer-encoding:autocrypt:subject:from:cc:to
         :content-language:user-agent:mime-version:date:message-id:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=vGnb/LzRdTFuissfGZl/GYWSxvj7rryz8FoZ50rNebM=;
        b=Oja78gZpww9eO9p+wXpYGjcjJn3jvKmyChCBxSBKN2jJV0A8itgCjqnN5FCif7M5dB
         6IRP+9T2ZzZXg+6FY/LFKfV9ouR4K4/9Pk19hdllB7jOkAMOkalVssaT4iQUZL7sefec
         khDbihMjwEFwvn1TGcOptGVRzdv87rkMiDjn3XHHEEc/5rgf3Pl60n/sOAnfFG5U8BpX
         J1wj0QVXFXu9JP5lEpUhNG7PRoNzNyB2efaFb6s0J4ozYQtj42Q/1PBMtu6xC2HAHIXr
         x2CBbIKmtD+dWJH89JQNgqrWnNhHsn5EyOXQqeQntz45cV0K6//CRf9tNR49fxM1pEll
         /epQ==
X-Gm-Message-State: AOJu0YzXtNdjhnylGIRpJPAkv85eLYFGYw9QYctZE8a4KfRH9BHIu2C9
	695+bmuV5gv36cJhpHTeD8dTVEp01iHcEKnx2cH0sA5YS/+ObKg3GKwquB1EDGR5yAQKXRSpOq8
	selY=
X-Gm-Gg: ATEYQzzGO52AhHBGLPENp0OCcu9vcJM9jxHS70e/7yaGHMyU/FJRLwv7A81qKmq3nzu
	p0rVauei9A42O7+CLMiev+YtJEJbMdDa6n854Z1piRVP7Zb2d0rkS+ht5xaS7XxPGf/tVl2PJF+
	V8dD0X0kgBSY6ZOQ6H4RpWK8uuClu2vVGNas7ttBmttpSfoT4U7+1sUKrDpYe5QpSQiTJ0SJXm3
	fIg/bBVwGdTJeNv9+nCFHp4f4LFkSwjFK4zl2u466W4CD83DqQsRdqrZTHDjAORouFJQTZq7j+V
	gJ9ScIMW5nSHnIsJg1nPXF91m+so1bKXrNu1DT0L4X4vxVZWdTP+pE6zCq3enyp53qIWLwM9FPJ
	Fv6gPPQQ4BqDUre2QUvKiHM+0AXISGo8o65ChnKwB2wDGH/q6P4W0pwCMVzkYAgaDBdL60bBuKu
	NOVd7ONF9CY2WVFTMaoG+oyKLK2ZSrOQ/IEti/ya2wgR+/egOOEOcgeAsIeFw2Euoc9ZE6EoG9J
	hFhvFOslEXc+2olZ6VM9MCvrw==
X-Received: by 2002:a05:600c:45c7:b0:480:1a9a:e571 with SMTP id 5b1f17b1804b1-483c2197b29mr85494035e9.22.1772123322519;
        Thu, 26 Feb 2026 08:28:42 -0800 (PST)
Message-ID: <c50219c1-5a23-46d0-bbe3-ab4a871a935b@suse.com>
Date: Thu, 26 Feb 2026 17:28:40 +0100
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: device.c is init-only when OVERLAY_DTB=n
Autocrypt: addr=jbeulich@suse.com; keydata=
 xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk
 hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK
 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD
 /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py
 O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl
 MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP
 nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo
 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp
 Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC
 AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee
 e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF
 hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l
 IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS
 FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj
 t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+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

Introduce an annotation similar to __hwdom_init and use it througout the
file. All external callers are either themselves __init or are limited to
OVERLAY_DTB=y. Adjust the Makefile accordingly to also have string
literals moved into .init.rodata.

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

--- a/xen/arch/arm/Makefile
+++ b/xen/arch/arm/Makefile
@@ -15,7 +15,9 @@ obj-$(CONFIG_HAS_ALTERNATIVE) += alterna
 obj-y += cpuerrata.o
 obj-y += cpufeature.o
 obj-y += decode.o
-obj-y += device.o
+device-y := device.init.o
+device-$(CONFIG_OVERLAY_DTB) := device.o
+obj-y += $(device-y)
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.init.o
 obj-y += domain.o
--- a/xen/arch/arm/device.c
+++ b/xen/arch/arm/device.c
@@ -9,6 +9,7 @@
  */
 
 #include <xen/device_tree.h>
+#include <xen/dt-overlay.h>
 #include <xen/errno.h>
 #include <xen/iocap.h>
 #include <xen/lib.h>
@@ -16,8 +17,8 @@
 #include <asm/firmware/sci.h>
 #include <asm/setup.h>
 
-int map_irq_to_domain(struct domain *d, unsigned int irq,
-                      bool need_mapping, const char *devname)
+int __overlay_init map_irq_to_domain(struct domain *d, unsigned int irq,
+                                     bool need_mapping, const char *devname)
 {
     int res;
 
@@ -49,8 +50,8 @@ int map_irq_to_domain(struct domain *d,
     return 0;
 }
 
-int map_range_to_domain(const struct dt_device_node *dev,
-                        uint64_t addr, uint64_t len, void *data)
+int __overlay_init map_range_to_domain(const struct dt_device_node *dev,
+                                       uint64_t addr, uint64_t len, void *data)
 {
     struct map_range_data *mr_data = data;
     struct domain *d = mr_data->d;
@@ -124,10 +125,10 @@ int map_range_to_domain(const struct dt_
  *   < 0 error
  *   0   success
  */
-int map_device_irqs_to_domain(struct domain *d,
-                              struct dt_device_node *dev,
-                              bool need_mapping,
-                              struct rangeset *irq_ranges)
+int __overlay_init map_device_irqs_to_domain(struct domain *d,
+                                             struct dt_device_node *dev,
+                                             bool need_mapping,
+                                             struct rangeset *irq_ranges)
 {
     unsigned int i, nirq;
     int res, irq;
@@ -180,9 +181,9 @@ int map_device_irqs_to_domain(struct dom
     return 0;
 }
 
-static int map_dt_irq_to_domain(const struct dt_device_node *dev,
-                                const struct dt_irq *dt_irq,
-                                void *data)
+static int __overlay_init map_dt_irq_to_domain(const struct dt_device_node *dev,
+                                               const struct dt_irq *dt_irq,
+                                               void *data)
 {
     struct map_range_data *mr_data = data;
     struct domain *d = mr_data->d;
@@ -219,8 +220,8 @@ static int map_dt_irq_to_domain(const st
  * then we may need to perform additional mappings in order to make
  * the child resources available to domain 0.
  */
-static int map_device_children(const struct dt_device_node *dev,
-                               struct map_range_data *mr_data)
+static int __overlay_init map_device_children(const struct dt_device_node *dev,
+                                              struct map_range_data *mr_data)
 {
     if ( dt_device_type_is_equal(dev, "pci") )
     {
@@ -250,8 +251,10 @@ static int map_device_children(const str
  *  - Assign the device to the guest if it's protected by an IOMMU
  *  - Map the IRQs and iomem regions to DOM0
  */
-int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t p2mt,
-                  struct rangeset *iomem_ranges, struct rangeset *irq_ranges)
+int __overlay_init handle_device(struct domain *d, struct dt_device_node *dev,
+                                 p2m_type_t p2mt,
+                                 struct rangeset *iomem_ranges,
+                                 struct rangeset *irq_ranges)
 {
     unsigned int naddr;
     unsigned int i;
--- a/xen/include/xen/dt-overlay.h
+++ b/xen/include/xen/dt-overlay.h
@@ -42,10 +42,18 @@ struct xen_sysctl_dt_overlay;
 struct xen_domctl_dt_overlay;
 
 #ifdef CONFIG_OVERLAY_DTB
+
+#define __overlay_init
+
 long dt_overlay_sysctl(struct xen_sysctl_dt_overlay *op);
 long dt_overlay_domctl(struct domain *d, struct xen_domctl_dt_overlay *op);
+
 #else
+
 #include <xen/errno.h>
+
+#define __overlay_init __init
+
 static inline long dt_overlay_sysctl(struct xen_sysctl_dt_overlay *op)
 {
     return -EOPNOTSUPP;


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 17:14:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 17:14:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242236.1542867 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvewi-0005Bj-AP; Thu, 26 Feb 2026 17:14:40 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242236.1542867; Thu, 26 Feb 2026 17:14: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 1vvewi-0005Bc-7o; Thu, 26 Feb 2026 17:14:40 +0000
Received: by outflank-mailman (input) for mailman id 1242236;
 Thu, 26 Feb 2026 17:14: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=KEVl=A6=citrix.com=andrew.cooper@srs-se1.protection.inumbo.net>)
 id 1vvewg-0005BW-Gb
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 17:14:38 +0000
Received: from CO1PR03CU002.outbound.protection.outlook.com
 (mail-westus2azlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c005::5])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9fdc4bae-1336-11f1-b164-2bf370ae4941;
 Thu, 26 Feb 2026 18:14:36 +0100 (CET)
Received: from CH8PR03MB8275.namprd03.prod.outlook.com (2603:10b6:610:2b9::7)
 by MW4PR03MB6572.namprd03.prod.outlook.com (2603:10b6:303:12b::9)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Thu, 26 Feb
 2026 17:14:32 +0000
Received: from CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37]) by CH8PR03MB8275.namprd03.prod.outlook.com
 ([fe80::a70d:dc32:bba8:ce37%6]) with mapi id 15.20.9632.017; Thu, 26 Feb 2026
 17:14: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: 9fdc4bae-1336-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=CGa4rKmyqgP8tAYIfKA7WqdvcD7zjsx5TLM/9pVgTsM4/khoyPNJzgXOsV6CUuvZ2V8OqYgN41RFMoG01qJLOltkPOP856xASyxVfslyZt0Krmt+g22a5ggKivklFWU9Xl4fIHclLDUo6Ls65PMZTQSGatGPp5AG/eF1tJIBx07A8BWhOyB3TyPzTa1rwHigX16fCgnCnRoe4guIu0iWn2XK+oY0vo27x9iGsuk9CtIpbDLCyrgC0AHTkMWIYrjjo96KNSKlZx2frWFB124E57KMzE9+0/a8tXUh+fdEHGjMoHwo94T3NjtxhFAm3GSLm/veiMuhQnnWbZcRF/ky0A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=PAm/JWVfE9j2pDcPeeWeT9ZTp2Nhqw8kMmRdLCNcRrI=;
 b=cJE7dXgjBOR8ISV10r4+JSIBfxBE6qVkGnFme0Eeu2z4vRromESGb0SjRGR88RHmK6ALGB9A5wEt8mSlcT8M1p1SaQN4L0V2mG0r5npypvSHYWujvgngd1Oz4M09Ep50lzeRGKtoBvSaGuXx9/XKAtSzPoJWMRUnbkfftR4X0t0QvAlsQ4QabtTUBX/pvxSzM9pgwNzeu61n3PnZ1afTjZSMvL44vWGhSTBEoujYhzvhlIQoQcbw8u5BSBDJzxx2n6lJgXeFBUrxW0a1UUVy8FFDflQJQV5Za+PeKeQWVITm++xSDLDy20XiYuV62ma7VXj/2Y5BwHoFrOKOJYU63w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=PAm/JWVfE9j2pDcPeeWeT9ZTp2Nhqw8kMmRdLCNcRrI=;
 b=Dfsg5Ugog2UlVzVlLhldd1QbAl7lczkvYRjtGq21XnKwaZ7YcQMNmqGa2f/7v9o3qkhnx69HB+9RGzNmhbx2YUxYXVQ7YexXU58jXF33VPyVhRAa1eqqXn/F61h28PBsyOwRpPVQjVar8iJFYpwXiEz14cDZpuDg04yImN6AeMA=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
Message-ID: <53b251a1-948d-4c9c-ba0c-6f4fd99b1d6a@citrix.com>
Date: Thu, 26 Feb 2026 17:14:28 +0000
User-Agent: Mozilla Thunderbird
Cc: Andrew Cooper <andrew.cooper3@citrix.com>, Julien Grall <julien@xen.org>,
 Stefano Stabellini <sstabellini@kernel.org>,
 Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
 Bertrand Marquis <bertrand.marquis@arm.com>,
 Michal Orzel <michal.orzel@amd.com>
Subject: Re: [PATCH] Arm: device.c is init-only when OVERLAY_DTB=n
To: Jan Beulich <jbeulich@suse.com>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c50219c1-5a23-46d0-bbe3-ab4a871a935b@suse.com>
Content-Language: en-GB
From: Andrew Cooper <andrew.cooper3@citrix.com>
In-Reply-To: <c50219c1-5a23-46d0-bbe3-ab4a871a935b@suse.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: LO2P265CA0309.GBRP265.PROD.OUTLOOK.COM
 (2603:10a6:600:a5::33) To CH8PR03MB8275.namprd03.prod.outlook.com
 (2603:10b6:610:2b9::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH8PR03MB8275:EE_|MW4PR03MB6572:EE_
X-MS-Office365-Filtering-Correlation-Id: c964f201-d0d2-4253-e4fd-08de755a820c
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info:
	CcEkSig5f8BPcsE1EZwfAWtxcP6Agb7/Aeo30zeThUgSs+JmVBDTqDUgF2MMX1Rcn27Tcwr/TC8DbHnNM1qkTZ8O6/QO/f6v55iIphsnKM5L7Fw9DGKPhe1hWhuZkySfm/n8QthfLkGn7wlTyVoHTRzLPs5H/sYi5DwZPmRuW9mFKeQPOV2AcDxwid/dWuiarKnU10QcmQDbRA4X5K3waQU1TGJJAcKfsknwX3UO1Vx8EAtXhhqO+kJyQh/deQHftnwMRD/vR7laqB3+Bug5kpBMq0GuWLeJqiO/tmS7zkIo5tbtxcw0Kq15feoRZsJPX6Bx53f/qawaWhapDaKpfDXMJGcmwaui+fJk8UAtPZfVKgEJvPy/LGTrloo2WRGaV6CV++yxcrcsx2+Yh5CDGy+N3bOCZcSP8TtHLJ+PZ7I/jZaggqS2Lt0WbGIIukAwF4gFOnUJrsDetTLWAE/u9k4N54yp0GkQnfNETLSs4faX04fVT/eA274tdUCD16A+2xT0FfjbBIZvyFALbIXALsPGtYzSgmZMuoPgiOMKSyTnw0DQthob/YAuHvWtU5kfbmKxhZtT3F6yhIF9tV3SH0FpHiQ0Dw9Gk4YaGWNBfqOYvNNSk6RrYWbvsUN+rex90+M14pmyNJBMU6tEMcZ3jaiBB4mxnzB2Akwu8fqLPJ+QnOaIGBgWHizFuMqHd+V+CTjIj5pAqFiKQdIXnPHmWFnzzJIPpadFdoLfEamFDuI=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8275.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?N3hROG82eC9RdHBmQ1REUkdvdjlTditTRm0rRXZXMnFvSjhQcExHRUplZWp3?=
 =?utf-8?B?NzlpS3I1cGhQSEdReExJUG5JSjF4NXBJaGh1RHBaZVFLMDlCeVpDTzdsT1lD?=
 =?utf-8?B?Y01Fb3M0L1VvTEZXWSsvUUUzOEg4OEFsZ1VNbmRxL29hc0Jqd0VTM0psKzRS?=
 =?utf-8?B?d3AzSkxvYTdOd3grVXg4eDQrUTIvUlh5WFcwNHc3MUhLbzBKdVR1L2h3NEpY?=
 =?utf-8?B?REx3OEdacjFyWWRKSEV0cmhiTXVFc1RqSmlFT2NiMzRTd1p4dUtYaEZla2lQ?=
 =?utf-8?B?blViSFhqUEtjOVVKR0w5dFluYTA0T0NhaXVKVnBrQWRvR2dwdHNISFlWbmd5?=
 =?utf-8?B?QlhyY1l5MUNUN2FteG1hVTZuSlFMb0g4ekFIbXJrdkZVSDhyc1YxY2Vzby9Q?=
 =?utf-8?B?Z1BFemVpTWx4WmJSQmZySE13RnlEaTBreGFucEVxSVRyakZFNGdvRXlaU0Nl?=
 =?utf-8?B?N29VK0kvcUMrN3EvMmlSLzlObVZ5aXhCNDhnSlBYWVA5Q2dJa1VDUzFkQXFL?=
 =?utf-8?B?UWdHRi9tRTd0SEs3UHZBeGU4WGJiaDliUEMrK3dGd2FrNHUvWktLeFpmcnhi?=
 =?utf-8?B?aEhmYlE0b092Wjg5Yk5MVUNZd1UzZCt5VUY4LzdobVZQOUdXYTkyVVhNUmh0?=
 =?utf-8?B?bGw1OTFXNU1WK1JTTVozNCs4Wnh6dFhMNjg1WHdEVU9SVENDZkdkdlhZTDdy?=
 =?utf-8?B?MzMvMERHNmxVMk1zT0tmNVpMNkVNZit0OUIxOEVzakMxQ21yN01xZGRQejN3?=
 =?utf-8?B?eVRiNDFvdjZJTzYvaTlTOG5oUFFpWWtzYi9sbGMzNFE1eEczTmFLNkpZQkdM?=
 =?utf-8?B?a3YwK0hsZFRiNDBIdjZZVjlsMWR0a3E2UG5tQm9sQUVDdTZscFhWNmZzSjFF?=
 =?utf-8?B?WGJmcWIvSzkrU2ZPVDFDd1pXRHUxdktydFY3ay82VHVDUVlvQlpnSnZVd2p3?=
 =?utf-8?B?RXVEWGdnSk94YVgza0RmL3Nwdmt4VGloZ0pyei9vNlUrYytIdzVwMVBFSGps?=
 =?utf-8?B?YVdGUlJtL2JGcS83T0pad3plbDZYbS9aVFlWQXpBdDdqVHBGWWxWaENTbnFs?=
 =?utf-8?B?cCt3by9XbG82dkVuUm9jM0FNUlFFREx4cCswakVER1R3UndRSW9FK1FsZ3RH?=
 =?utf-8?B?dTdUVEJBUU9qS3ptSjFxd1pRM285K1l6TTFBWStBMyswdG5tbWowUDRvZndn?=
 =?utf-8?B?ZlB2SVdMWlVVcXYydmdnZGlrenpkMVMyOHFsa1ZBMGtFM1JySy81czdJK1VL?=
 =?utf-8?B?V0xKUHF3cnlsV3pSZzB1ZytqSkpPZnQ5Nk5lWUpGRGhiR0kxNVR2TWR2RVVD?=
 =?utf-8?B?YTlIR3RPT0trQ3VWNUlla3hxL0pnWFhuMCs0b3dDZU1sWlRPcFphcUtYcnVz?=
 =?utf-8?B?djBnM0dsbmlkNnVEZ1UvUkIwOFRDYTl1RS96ZGRsTjd0ZTZKamtPdHk5SkIz?=
 =?utf-8?B?Ylp5dlg4NjdmUzM1SXRuaEhRN291WVRSOXo4eWdWaXlkMnRXekhqdUU3S3lZ?=
 =?utf-8?B?T0hwbEVncCtVYVdGSjIzS1dXeFV3Z1FiSTlUZW9Udk5VeDVKeFVoUDNTenpv?=
 =?utf-8?B?dzVOQVkzTlFLeVhlbEVHc0dqY1p4dVhrNlZMTSt5MnhYcGREVHBzeUhsWUxP?=
 =?utf-8?B?MHdWNkhvTW0zUlQxMWwxTXB2cDVKbUFIZGFQSkZpZWFQR0VUbThNcHAyczBN?=
 =?utf-8?B?SG04WmxwcjlZMHZhYVJaYThDRnVBbktwNkFQQzIxK2NTbVVCQ3lmc2N1Q3Nw?=
 =?utf-8?B?MmN3K2dHWUtTQnhmU3NOMk1SSnVEb01GSmh5WEgxWmpXN1U3d2RGODNwczBz?=
 =?utf-8?B?a2FiVE1ZaDJuKzFEdWt5M2ZhSG5RWllSUndKaWFORi94b0lwSlNLVm5TNzR6?=
 =?utf-8?B?N0pnVDJwcENFT1l1Z2JmbmdqRXFUcVJ1elJKUmsrL1Q0NmN2Mm9JdGVOclRK?=
 =?utf-8?B?UDdjbnpaVHNsTTArQndLYm1RLy9FeEZFb3MvdlprV3MzbG0xbmNCNld0N1dL?=
 =?utf-8?B?dEFwUjYzWHRnaTZOM1IrM2FoVHBEUjA0UElxT0RyWFFQa25JTlc4aTZGUU9q?=
 =?utf-8?B?SEFlY09YN0hjYVF0bjEvWkJaamVPSmlrR0pTbW5HUUE2OGZMczN3R2p2allo?=
 =?utf-8?B?NitFSFRaNnR2OHRNZ1FnakJEc2tsRWpTWElnOS80ZUJyTFZBNDZmMzNPSi9l?=
 =?utf-8?B?T3J4NEFqL1k3RThpa2l6TXFaZFZhUjAwYml4NVFoc2N4RjRCd1NjY21rMXNQ?=
 =?utf-8?B?QTVzdGFlMTlYVXNTZExRSUlUMFJLcWQwTHJrV3ZmWGx2OUdCK0xWdVlabEx0?=
 =?utf-8?B?eHVoR1d4c0ZXQldTNE5Lc0VDWkRjZGo2a2I3SmxzU0dnRWhvMjJ6UT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c964f201-d0d2-4253-e4fd-08de755a820c
X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8275.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2026 17:14:32.4803
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: hsLw4wesndViNvKl3f65vc1L4EZwhIOyOrWqxmzobbuJjNUEl1sclofR2yBdNd+RvPzFz9UazREqOOI7yrStEosIFEhDkek7VcVOYp9d9I0=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6572

On 26/02/2026 4:28 pm, Jan Beulich wrote:
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -15,7 +15,9 @@ obj-$(CONFIG_HAS_ALTERNATIVE) += alterna
>  obj-y += cpuerrata.o
>  obj-y += cpufeature.o
>  obj-y += decode.o
> -obj-y += device.o
> +device-y := device.init.o
> +device-$(CONFIG_OVERLAY_DTB) := device.o
> +obj-y += $(device-y)

I know we've argued over this before and not come to a conclusion, but I
still firmly believe this to be an anti-pattern we should expunge.

obj-y += $(if $(CONFIG_OVERLAY_DTB),device.o,device.init.o)

conveys the meaning more clearly and succinctly.

~Andrew


From xen-devel-bounces@lists.xenproject.org Thu Feb 26 21:19:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 21:19:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242340.1542878 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vviln-0007jR-0M; Thu, 26 Feb 2026 21:19:39 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242340.1542878; Thu, 26 Feb 2026 21:19: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 1vvilm-0007jK-Tc; Thu, 26 Feb 2026 21:19:38 +0000
Received: by outflank-mailman (input) for mailman id 1242340;
 Thu, 26 Feb 2026 21:19: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=xR4/=A6=bounce.vates.tech=bounce-md_30504962.69a0b8e1.v1-72cbbdec2faa4e42b17a16a616dd5811@srs-se1.protection.inumbo.net>)
 id 1vvill-0007jE-9y
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 21:19:37 +0000
Received: from mail177-30.suw61.mandrillapp.com
 (mail177-30.suw61.mandrillapp.com [198.2.177.30])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id d669a02f-1358-11f1-9ccf-f158ae23cfc8;
 Thu, 26 Feb 2026 22:19:31 +0100 (CET)
Received: from pmta14.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail177-30.suw61.mandrillapp.com (Mailchimp) with ESMTP id
 4fMPV92qQLzP0JtvM
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 21:19:29 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 72cbbdec2faa4e42b17a16a616dd5811; Thu, 26 Feb 2026 21:19: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: d669a02f-1358-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772140769; x=1772410769;
	bh=MLNN+TTM7nCCyhQnjEzu9i5uefM5EB6jJQto4+Ymqhw=;
	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=FlsusTc2j+wjy6ZHWZwN73t+vOXUqw6d9ypP89lcHpLNppOcajHv/gl4SOWlOk9og
	 BbVTGudl3SLjv+OtupowKXq8m7yx6x/qOfpoKlCsqu6bSWvxxQkw3C7h4ETFGf04po
	 UfK+jzpHh9yaDGxuTt+oUcqT5/b7yWPH+8Vf7hq7PdFLYz/Ttwy6ikbHJTSgWhz6bc
	 fmMkscSaLyTQxUiGYDX3j7j0nGRiEkLWCvaUjniC1dFst3LkN7k6pcuQ153oCmwZ2X
	 df32V0TX+vQ3TB4Phk9Bp/iTfSyhHbZyaQgKwgLSQp3FAHMP6dCJELcauyaZUXZTSn
	 mIh4ZIgT39B7A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772140769; x=1772401269; i=teddy.astie@vates.tech;
	bh=MLNN+TTM7nCCyhQnjEzu9i5uefM5EB6jJQto4+Ymqhw=;
	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=mWEwesTNGeG27+5x2QyV2OqT9+jvkpg74d5+JKO26lRKCHnOnLtj8W8Bx8JK2MOp/
	 /KAr2nbXebrEfv/F4sNta11frSEu5T42yusCR97uDMp+nyDkG7tdD4wyqbSWXNSGNK
	 VgI+K3+KugWhNKE2yTO0SfFj9UEojRBXoTj6bk6BOf5qBhPe0v7SexhKdnCRhCx2qt
	 odI/M28Y4jI6bSKW2df9cjtpT0IyUl1T9GHmjH84xCq1cGVvFVbe1R1X+8bvPoX7Jh
	 1OcPtz9tYiYFYak57N6E9lmK7foC09vAlEWRDaS0ynRydJQShUVeQ3G8b81vSksl0T
	 hgQJnWo1RQylw==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v4=2005/10]=20xen/domain:=20Add=20DOMCTL=20handler=20for=20claiming=20memory=20with=20NUMA=20awareness?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772140767599
Message-Id: <656ff614-9165-49ce-8c55-0cfad33d4ed6@vates.tech>
To: "Bernhard Kaindl" <bernhard.kaindl@citrix.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>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com> <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
In-Reply-To: <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@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.72cbbdec2faa4e42b17a16a616dd5811?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260226:md
Date: Thu, 26 Feb 2026 21:19:29 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 26/02/2026 =C3=A0 15:54, Bernhard Kaindl a =C3=A9crit=C2=A0:
> Add a DOMCTL handler for claiming memory with NUMA awareness. It
> rejects claims when LLC coloring (does not support claims) is enabled
> and translates the public constant to the internal NUMA_NO_NODE.
> 
> The request is forwarded to domain_set_outstanding_pages() for the
> actual claim processing. The handler uses the same XSM hook as the
> legacy XENMEM_claim_pages hypercall.
> 
> While the underlying infrastructure currently supports only a single
> claim, the public hypercall interface is designed to be extensible for
> multiple claims in the future without breaking the API.
> 

I'm not sure about the idea of introducing a new hypercall for this 
operation. Though I may be missing some context about the reasons of 
introducing a new hypercall.

XENMEM_claim_pages doesn't have actual support for NUMA, but the 
hypercall interface seems to define it (e.g you can pass 
XENMEMF_exact_node(n) to mem_flags). Would it be preferable instead to 
make XENMEM_claim_pages aware of NUMA-related XENMEMF flags ?

> Signed-off-by: Bernhard Kaindl <bernhard.kaindl@citrix.com>
> ---
>   xen/common/domain.c         | 29 ++++++++++++++++++++++++++++
>   xen/common/domctl.c         |  9 +++++++++
>   xen/include/public/domctl.h | 38 +++++++++++++++++++++++++++++++++++++
>   xen/include/xen/domain.h    |  2 ++
>   4 files changed, 78 insertions(+)
> 
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index e7861259a2b3..ac1b091f5574 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -268,6 +268,35 @@ int get_domain_state(struct xen_domctl_get_domain_st=
ate *info, struct domain *d,
>       return rc;
>   }
>   
> +/* Claim memory for a domain or reset the claim */
> +int claim_memory(struct domain *d, const struct xen_domctl_claim_memory =
*uinfo)
> +{
> +    memory_claim_t claim;
> +
> +    /* alloc_color_heap_page() does not handle claims, so reject LLC col=
oring */
> +    if ( llc_coloring_enabled )
> +        return -EOPNOTSUPP;
> +    /*
> +     * We only support single claims at the moment, and if the domain is
> +     * dying (d->is_dying is set), its claims have already been released
> +     */
> +    if ( uinfo->pad || uinfo->nr_claims !=3D 1 || d->is_dying )
> +        return -EINVAL;
> +
> +    if ( copy_from_guest(&claim, uinfo->claims, 1) )
> +        return -EFAULT;
> +
> +    if ( claim.pad )
> +        return -EINVAL;
> +
> +    /* Convert the API tag for a host-wide claim to the NUMA_NO_NODE con=
stant */
> +    if ( claim.node =3D=3D XEN_DOMCTL_CLAIM_MEMORY_NO_NODE )
> +        claim.node =3D NUMA_NO_NODE;
> +
> +    /* NB. domain_set_outstanding_pages() has the checks to validate its=
 args */
> +    return domain_set_outstanding_pages(d, claim.pages, claim.node);
> +}
> +
>   static void __domain_finalise_shutdown(struct domain *d)
>   {
>       struct vcpu *v;
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index 29a7726d32d0..9e858f631aaf 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -868,6 +868,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) =
u_domctl)
>           ret =3D get_domain_state(&op->u.get_domain_state, d, &op->domai=
n);
>           break;
>   
> +    case XEN_DOMCTL_claim_memory:
> +        /* Use the same XSM hook as XENMEM_claim_pages */
> +        ret =3D xsm_claim_pages(XSM_PRIV, d);
> +        if ( ret )
> +            break;
> +
> +        ret =3D claim_memory(d, &op->u.claim_memory);
> +        break;
> +
>       default:
>           ret =3D arch_do_domctl(op, d, u_domctl);
>           break;
> diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
> index 8f6708c0a7cd..610806c8b6e0 100644
> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -1276,6 +1276,42 @@ struct xen_domctl_get_domain_state {
>       uint64_t unique_id;      /* Unique domain identifier. */
>   };
>   
> +/*
> + * XEN_DOMCTL_claim_memory
> + *
> + * Claim memory for a guest domain. The claimed memory is converted into=
 actual
> + * memory pages by allocating it. Except for the option to pass claims f=
or
> + * multiple NUMA nodes, the semantics are based on host-wide claims as
> + * provided by XENMEM_claim_pages, and are identical for host-wide claim=
s.
> + *
> + * The initial implementation supports a claim for the host or a NUMA no=
de, but
> + * using an array, the API is designed to be extensible to support more =
claims.
> + */
> +struct xen_memory_claim {
> +    uint64_aligned_t pages;   /* Amount of pages to be allotted to the d=
omain */
> +    uint32_t node;  /* NUMA node, or XEN_DOMCTL_CLAIM_MEMORY_NO_NODE for=
 host */
> +    uint32_t pad;                 /* padding for alignment, set to 0 on =
input */
> +};
> +typedef struct xen_memory_claim memory_claim_t;
> +#define XEN_DOMCTL_CLAIM_MEMORY_NO_NODE    0xFFFFFFFF  /* No node: host =
claim */
> +
> +/* Use XEN_NODE_CLAIM_INIT to initialize a memory_claim_t structure */
> +#define XEN_NODE_CLAIM_INIT(_pages, _node) { \
> +    .pages =3D (_pages),                  \
> +    .node =3D (_node),                    \
> +    .pad =3D 0                            \
> +}
> +DEFINE_XEN_GUEST_HANDLE(memory_claim_t);
> +
> +struct xen_domctl_claim_memory {
> +    /* IN: array of struct xen_memory_claim */
> +    XEN_GUEST_HANDLE_64(memory_claim_t) claims;
> +    /* IN: number of claims in the claims array handle. See the claims f=
ield. */
> +    uint32_t nr_claims;
> +#define XEN_DOMCTL_MAX_CLAIMS UINT8_MAX /* More claims require changes i=
n Xen */
> +    uint32_t pad;                       /* padding for alignment, set it=
 to 0 */
> +};
> +
>   struct xen_domctl {
>   /* Stable domctl ops: interface_version is required to be 0.  */
>       uint32_t cmd;
> @@ -1368,6 +1404,7 @@ struct xen_domctl {
>   #define XEN_DOMCTL_gsi_permission                88
>   #define XEN_DOMCTL_set_llc_colors                89
>   #define XEN_DOMCTL_get_domain_state              90 /* stable interface=
 */
> +#define XEN_DOMCTL_claim_memory                  91
>   #define XEN_DOMCTL_gdbsx_guestmemio            1000
>   #define XEN_DOMCTL_gdbsx_pausevcpu             1001
>   #define XEN_DOMCTL_gdbsx_unpausevcpu           1002
> @@ -1436,6 +1473,7 @@ struct xen_domctl {
>   #endif
>           struct xen_domctl_set_llc_colors    set_llc_colors;
>           struct xen_domctl_get_domain_state  get_domain_state;
> +        struct xen_domctl_claim_memory      claim_memory;
>           uint8_t                             pad[128];
>       } u;
>   };
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index 93c0fd00c1d7..79e8932c4530 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -193,4 +193,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__ */

Teddy


--
 | Vates

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Thu Feb 26 23:16:35 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Thu, 26 Feb 2026 23:16:35 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242369.1542888 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvkaj-0004gY-3Q; Thu, 26 Feb 2026 23:16:21 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242369.1542888; Thu, 26 Feb 2026 23: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 1vvkaj-0004gR-0N; Thu, 26 Feb 2026 23:16:21 +0000
Received: by outflank-mailman (input) for mailman id 1242369;
 Thu, 26 Feb 2026 23:16: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=Wgwr=A6=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vvkah-0004gL-1B
 for xen-devel@lists.xenproject.org; Thu, 26 Feb 2026 23:16:19 +0000
Received: from MW6PR02CU001.outbound.protection.outlook.com
 (mail-westus2azlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c007::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 23150f17-1369-11f1-9ccf-f158ae23cfc8;
 Fri, 27 Feb 2026 00:16:12 +0100 (CET)
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by MW4PR03MB6523.namprd03.prod.outlook.com (2603:10b6:303:126::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Thu, 26 Feb
 2026 23:16:07 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9654.013; Thu, 26 Feb 2026
 23:16: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: 23150f17-1369-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=g51g9UsoEcjV5UONX2iZOAvDAKQRYWt7WYgDbYZiG+pX/GXUS6rCw40qY7n2pUZki5cKSo+oRgvA0SfBc/8lFrR2NGq7ayPeOrc48RrEhzjPYk8Zkrvh967FKGFMi94DnMtg28jDJE/oSUoN2zEPkYgggeToVT82E6ciF+1qGYyQaQDnWku4/+Zwfc0/P/P9ozCrCSBtdpa/oXWOiNXOxLWGxHSZGs1KZzkgyniQ1fsCD+zzW67FLIz2EWOCeuDmX/CPRD69ucTxpAmMyfQCf+YqmpQ7NNFOU7huUuV+TyfELdbn2WHrKJmHB6vgB9N8aG9/ZAbhX79ksTPJG960Gw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=guVa3+OYmh1pihRKb443wjadAhnEQSn1pbxf4/myDJ4=;
 b=aaW+vJxRSZOCJ8oimcUEpo1ZyNxpI0sOaGf94a9r+5BZSKmWN8rvzvbnTsI4b71mXfo327SFn8Kj9syuevySahtVLy6rjHq1BZhjYNLQIY0EaUMNDdN6QojmPymlFCmqjh8bpqDXeZBF1h0JY5LKr9zqddAsYTvJYkcPjeKeTdqvd7IEOmooYa0Sh4JyD6pM0iT21AlHU8mGNbRS8oz+oro6PZf3ADLKS343AdBBo9DAZtzXOVa31a5f00zKNOFfHrxhdop0rDFvcReIzkz4tkww8BQ2QeNbCfNfJgafxdxf+rMajssQUsaw+EYE49Qzmpy5tzLTimMGDboWE9aUdw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=guVa3+OYmh1pihRKb443wjadAhnEQSn1pbxf4/myDJ4=;
 b=gM8PkCswEaQ01MCjSpkgVwAIht06SeI6YxF1hKXgGB92Wn9Enu+44+uOFj6cNmQA9fYTNGB9cd69hkFwt6bXj+ZEouKJ/+EAdnbmPgp8OimxGIKbgHLicHeG7IKlKb+fTtePaLL7TldXPppGQ+t5eU4Dq22vw2RpATdbP9PfcaM=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Teddy Astie <teddy.astie@vates.tech>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>, Roger Pau Monne
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: RE: [PATCH v4 05/10] xen/domain: Add DOMCTL handler for claiming
 memory with NUMA awareness
Thread-Topic: [PATCH v4 05/10] xen/domain: Add DOMCTL handler for claiming
 memory with NUMA awareness
Thread-Index: AQHcpy8NKyz6wh/Wrk6CsdW/rK3ShrWVfM8AgAAgIzA=
Date: Thu, 26 Feb 2026 23:16:06 +0000
Message-ID:
 <LV3PR03MB77072E23139DF353E7B8C9D28772A@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
 <656ff614-9165-49ce-8c55-0cfad33d4ed6@vates.tech>
In-Reply-To: <656ff614-9165-49ce-8c55-0cfad33d4ed6@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|MW4PR03MB6523:EE_
x-ms-office365-filtering-correlation-id: 306eb9a0-6b72-409b-19fd-08de758d051f
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|38070700021;
x-microsoft-antispam-message-info:
 swXccXeX6OUfQla8I0uMxELIrC9rCPZOTeLMGuaYPK5kop5n2JhUeMThXOfj5npZNHOyf58nJTgwTRcRkgqMyEOTJ7L2s3WOorfgdifY0NDzVzdeREPJTr1qEixMtCxpPuxXzRXqUs/9dSt4wjZsRRDrr0XeW800aQDb/hoJVHln9rJiyg7U9ZvVfIXSmGvie+a72K/b0ekYZPgkba6Ga3xwoaSe6iPHZasu5AQtrrhZU1eUSZtKgP6tVIAqFdFdU4rIw34Ly7jOgCeVGfYxzbVnhn1/8o6tbI74BFLAvkKQDKV1+2p2gU1TkGiZkimdXEsDxnZ5k2JWk3+vXX6Dx7HmbkzTglIqX/HQq88XsS2KZ6/YCBpHOlWWscfvBbrVSWCMMtC0GleZBrb7WAYzwMCVDEP2TeyR/ltP4ZKi4mp7RCfC6UTwR2uy2p0EjUIP3rGe1iHD90QiNx5BRDrPG3KfTlMe5VMrYNk64BVAHEwutAkCw79+HPL+39bxm7lPY+53n6hY1kPU5JMGqI3aYAl1ZvRxU5RY2VQNb4UUwF6+mo3uaEoTkyC5r/FJnYlb5QXshqHXoX6SCZcphOvLkhhcqRjaXcjGBr3pqus4WeNhoPfXBVPvMHBkHHkl2AHJAefCK/1BQX0Kos9XCHP0FlcZiEJ8PuJqWzvC64oA+Q2GOS2DJYAY8p0oUe05rMQI8/vnXxitvfjZ9iMmL7sIzviHiwYuwZicUn6xASpMFWvkaoscVvCRgs+S2klsIRuG
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?ZnNKQktqMmYzYmtOMVhDdVJnZWZnTlRPRmtqWkJjY2J6VEVWSzVmcmgvQmh4?=
 =?utf-8?B?VHVPOFRhcERuNCtGOEsraGRUNGZIVU1LMG9NWEVxQlg0cnlXVUUxOHYrSG50?=
 =?utf-8?B?TEpqQVFRMTJWZG9jTWErYTkwS2tpNGhGdU16c21pZC9xNjBuME15TU8rV1FW?=
 =?utf-8?B?NDBOOTg4eHNpL1NCazJKZWdJVXcwMXhyMURucVBTTTlTQkV6Z3lucXMyK01I?=
 =?utf-8?B?T0tncmY2QitneFZXTVBRdzJnTzkzNHRlSllHdWMrdnRwUGx0ZGR1MlVYaWFK?=
 =?utf-8?B?VDdydGRXTDlQSU9XL1d6eG5PSEoxNmMyVjVLTFBDU3NHbWUydXo0ZlZvR1ZB?=
 =?utf-8?B?SnJRM05QNmhFZFVEdkJhdzR5eHhXTFZTTnpxQXdPN2RvSE5EbW52c3hiQ0VG?=
 =?utf-8?B?WDNNak42ZlhIbmtZVzRWVEhNUitUcm4yaDdjU0lZTVpKelBETmY0aTBrdW04?=
 =?utf-8?B?M0hhRFFZVHlLSFVTNUtmWlNpcFpkb1h0a0pRVnhhMzJxd05YcmxBUnQ2Y2Jw?=
 =?utf-8?B?OHcxeFU0TllROHBRNkVJV1V5WFF6WDVrMGsrWE1Xa1ltdnRtRllkKzdmdlVu?=
 =?utf-8?B?aDM3MzBTd3IxM0VjY1BlQWNyRE9UdXFWdCtNWTJmMUFvQlN2N2YweWRWbnR1?=
 =?utf-8?B?eFlDUDRDRFNSSmxmYWwxM0M0dWgrQXVaRjFXQjFGTnl5bE15Qk5wdHNBckRL?=
 =?utf-8?B?ZDRIeUpIUzg3NjhyTzNIRG1TMm9wRmVSOEZlWHRnaVY2ZlU5ZWtiU1NFUk9W?=
 =?utf-8?B?Y2EvNXh0RG1PY0UrdUJZZlFmQnE4WmZlSHZpWXFxNWo0QVlWQjZhUXJvV282?=
 =?utf-8?B?b1VGWGdkekExTFltUnFiSDJrWFhFclVqWHh3K05SN3dQRm5yR0x4V2VtQUdV?=
 =?utf-8?B?ZFVrL0xJcTE2TmFsU21laXFScnpFWnFzZk1YUjNqamFVcjVUaGROem5VWmJs?=
 =?utf-8?B?MHFqM3p5RGh3VFlYOEk4Vnk3UnlOcXhMZ1haOFJNVnFXVHEvemdiTDlVSVF4?=
 =?utf-8?B?azNwNGJvUFMzT3lTYXYrVlc2ZWtoU2dnclNZOGpPeDkvb051aTVuejZFNGE0?=
 =?utf-8?B?Q01yY3V3dlZDd2hsUElGRHZmT3cwRjkwU0lTMVhkSDdCeXV3T2NBVEQ1UXAr?=
 =?utf-8?B?ait4eE5mN0NYRUlSVU9BeVJjVThEMDFSRnJ5RVZjOG9lVlBGWFNidDlxZ284?=
 =?utf-8?B?NmlJSGdmWGxMR0E1VTZ6ci9hWXMyWTh4bnZ4UlNFVURaYUV6ZEdBcXVRb2Vv?=
 =?utf-8?B?eDlZY3ZBTGRPZlpQY09lYlNRZjgzWm5OczQ5MitNczcwcDQzU2UrZUx3S0Nu?=
 =?utf-8?B?U1NjLzI0UUR1cVhndW5kK2ZRV3AwS243QkNyVlNzY2J4MVhoMTRpd2ZTNzVu?=
 =?utf-8?B?S3JsaTluOFdFUWNuQjVQZkZzKzBIc01EbXNmcUlSUy9Lekd3bzJtN3N5anBo?=
 =?utf-8?B?bUN3dTkrZHZzT0tNTnh0UGM0L3lrVTZ3T1V0NGlKT3V2U29oeVVIcFVCOGc2?=
 =?utf-8?B?dFFCYlJjV2l2UG9qTUFXUWVoVTU1azBrUlR4T2FSOUhPZkQvWmFTeHh4TzNX?=
 =?utf-8?B?c3E0M3ZPMExiSEk0c3J3T1VNc3NLcVJ0VzFtZnEvNUN4N2NJZjFraUk1Qm5v?=
 =?utf-8?B?enVGN1FHYUlvdUZXSXg0dGNsblpkN0RITkV6U3JialZjZEt3UUJhUWw1OThB?=
 =?utf-8?B?cXVUc2RrSTdSNnR2ZUp1N1lPK3RwVTl1aXlEWWJWM05xeDE1VHlKWmRDeEpK?=
 =?utf-8?B?MVRWVDMvZ2NQWjlVNU0vRG9oeTBZZGMyd294d3dhZDd0T21vYVNXS3VoM0dT?=
 =?utf-8?B?cDRPWllKSDBRSHlRVDRRQ01KZ3A4TE91eUtrT1dmWHVWMis2NFoySDV4bkEy?=
 =?utf-8?B?dTRKNWlCR25hOHBSOC9aZTRRejBLb0lKRllhd1p2ZWZKZEpRWnBiY1VmNEZs?=
 =?utf-8?B?THN5L01mNjBYTTJUWVZ4aERiTXJNNjlzKy9iWkx6Y3lwQU1Vb1NnQlNsbnM1?=
 =?utf-8?B?VEZTQUNucXVNa1BWai9BVFAvUjZ0M3NPNzhkMVQ1UnRsSzN2dEZSTHJCSU1t?=
 =?utf-8?B?REVWMnFjVmg2VGVkR3Y3Y21mb2RkaEZvMzBKdWRVREdndlkveG10ZGNRL0JS?=
 =?utf-8?B?WVNHR3lBL0JQVG1URGY4bUV6Z3ZzYkp3WXRVcGZNOFR2ekpSWm16MWhvbFdP?=
 =?utf-8?B?Q0J4UUEvdFBoU1dyWTJTUEgvS25VWlkzR2N5Uk5wUHRxajVBSFMwUnY3Z0N4?=
 =?utf-8?B?SE1ZMGYxWXU5OUJjUnFiSnkxTllHeXpvaHhKcWJtS0F6YURpcmRtVCt0MHFa?=
 =?utf-8?B?MTFEYy9xQTBGb2pweHRjdmFnZTZJZVZuY0VKNnp5Tm5QOGJvbTJVUT09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 306eb9a0-6b72-409b-19fd-08de758d051f
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Feb 2026 23:16:06.9607
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: YNFpx3x7qq0osrssI5N2gnARu+cnKXJ9xbN+Of7EPHEX6HbJXp5RBHrE8ucT7uNFqIpoY1hrp+VJFB2sbWsydRmig2qcwnoJ3R6yVhlQ6aw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6523

T24gMjYvMDIvMjAyNiDDoCAyMjoxOSwgVGVkZHkgQXN0aWUgYSDDqWNyaXQgOg0KPiBMZSAyNi8w
Mi8yMDI2IMOgIDE1OjU0LCBCZXJuaGFyZCBLYWluZGwgYSDDqWNyaXQgOg0KPj4gQWRkIGEgRE9N
Q1RMIGhhbmRsZXIgZm9yIGNsYWltaW5nIG1lbW9yeSB3aXRoIE5VTUEgYXdhcmVuZXNzLiBJdA0K
Pj4gcmVqZWN0cyBjbGFpbXMgd2hlbiBMTEMgY29sb3JpbmcgKGRvZXMgbm90IHN1cHBvcnQgY2xh
aW1zKSBpcyBlbmFibGVkDQo+PiBhbmQgdHJhbnNsYXRlcyB0aGUgcHVibGljIGNvbnN0YW50IHRv
IHRoZSBpbnRlcm5hbCBOVU1BX05PX05PREUuDQo+Pg0KPj4gVGhlIHJlcXVlc3QgaXMgZm9yd2Fy
ZGVkIHRvIGRvbWFpbl9zZXRfb3V0c3RhbmRpbmdfcGFnZXMoKSBmb3IgdGhlDQo+PiBhY3R1YWwg
Y2xhaW0gcHJvY2Vzc2luZy4gVGhlIGhhbmRsZXIgdXNlcyB0aGUgc2FtZSBYU00gaG9vayBhcyB0
aGUNCj4+IGxlZ2FjeSBYRU5NRU1fY2xhaW1fcGFnZXMgaHlwZXJjYWxsLg0KPj4NCj4+IFdoaWxl
IHRoZSB1bmRlcmx5aW5nIGluZnJhc3RydWN0dXJlIGN1cnJlbnRseSBzdXBwb3J0cyBvbmx5IGEg
c2luZ2xlDQo+PiBjbGFpbSwgdGhlIHB1YmxpYyBoeXBlcmNhbGwgaW50ZXJmYWNlIGlzIGRlc2ln
bmVkIHRvIGJlIGV4dGVuc2libGUgZm9yDQo+PiBtdWx0aXBsZSBjbGFpbXMgaW4gdGhlIGZ1dHVy
ZSB3aXRob3V0IGJyZWFraW5nIHRoZSBBUEkuDQo+IEknbSBub3Qgc3VyZSBhYm91dCB0aGUgaWRl
YSBvZiBpbnRyb2R1Y2luZyBhIG5ldyBoeXBlcmNhbGwgZm9yIHRoaXMNCj4gb3BlcmF0aW9uLiBU
aG91Z2ggSSBtYXkgYmUgbWlzc2luZyBzb21lIGNvbnRleHQgYWJvdXQgdGhlIHJlYXNvbnMgb2YN
Cj4gaW50cm9kdWNpbmcgYSBuZXcgaHlwZXJjYWxsLg0KPg0KPiBYRU5NRU1fY2xhaW1fcGFnZXMg
ZG9lc24ndCBoYXZlIGFjdHVhbCBzdXBwb3J0IGZvciBOVU1BLCBidXQgdGhlDQo+IGh5cGVyY2Fs
bCBpbnRlcmZhY2Ugc2VlbXMgdG8gZGVmaW5lIGl0IChlLmcgeW91IGNhbiBwYXNzDQo+IFhFTk1F
TUZfZXhhY3Rfbm9kZShuKSB0byBtZW1fZmxhZ3MpLiBXb3VsZCBpdCBiZSBwcmVmZXJhYmxlIGlu
c3RlYWQgdG8NCj4gbWFrZSBYRU5NRU1fY2xhaW1fcGFnZXMgYXdhcmUgb2YgTlVNQS1yZWxhdGVk
IFhFTk1FTUYgZmxhZ3MgPw0KDQpIZWxsbyBUZWRkeSwNCg0KVGhhbmsgeW91IGZvciB5b3VyIHJl
dmlldyDigJQgbXVjaCBhcHByZWNpYXRlZC4NCg0KVXBkYXRpbmcgdGhlIGRvX21lbW9yeV9vcChY
RU5NRU1fY2xhaW1fcGFnZXMpIGhhbmRsZXIgdG8gYWNjZXB0IGEgbm9kZQ0KcGFyYW1ldGVyLCBh
cyB5b3Ugc3VnZ2VzdGVkLCBpcyBpbmRlZWQgYSBwcmFjdGljYWwgd2F5IHRvIHJldHJvZml0IHRo
aXMNCmZlYXR1cmUgaW50byBleGlzdGluZyBYZW4gYnVpbGRzLiBUaGF04oCZcyBhbHNvIHRoZSBh
cHByb2FjaCB3ZSB0b29rIGluDQp2MSBvZiB0aGlzIHNlcmllczoNCg0KKiBodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMjUtMDMvbXNnMDExMjcu
aHRtbA0KKiBodHRwczovL3BhdGNoZXcub3JnL1hlbi8yMDI1MDMxNDE3MjUwMi41MzQ5OC0xLWFs
ZWphbmRyby52YWxsZWpvQGNsb3VkLmNvbS8NCg0KV2UgYXJlIGN1cnJlbnRseSB1c2luZyB0aGlz
IGFwcHJvYWNoIGFsc28gaW4gdGhlIFhTOSBQdWJsaWMgUHJldmlldzoNCg0KKiBodHRwczovL3d3
dy54ZW5zZXJ2ZXIuY29tL2Rvd25sb2Fkcy94czktcHJldmlldw0KDQpUaGF0IHNhaWQsIGR1cmlu
ZyByZXZpZXcsIFJvZ2VyIFBhdSBNb25uw6kgc3VnZ2VzdGVkIHRoYXQgZm9yIHVwc3RyZWFtDQpp
bmNsdXNpb24sIHdlIHNob3VsZCBpbnRyb2R1Y2UgYSBuZXcgaHlwZXJjYWxsIEFQSSB3aXRoIHN1
cHBvcnQgZm9yDQptdWx0aS1ub2RlIGNsYWltcywgZXZlbiBpZiB0aGUgaW5pdGlhbCBpbmZyYXN0
cnVjdHVyZSBvbmx5IGhhbmRsZXMNCmEgc2luZ2xlIG5vZGUuIFNlZToNCg0KKiBodHRwczovL2xp
c3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMjUtMDYvbXNnMDA0
ODQuaHRtbA0KDQpIZSByYWlzZWQgdGhlIGNvbmNlcm4gdGhhdCB0aGUgY3VycmVudCBpbnRlcmZh
Y2UgZWZmZWN0aXZlbHkgY29uc3RyYWlucw0KZG9tYWlucyB0byBiZSBhbGxvY2F0ZWQgZnJvbSBv
bmUgbm9kZSBhdCBhIHRpbWUsIG9yIHRvIHNlcXVlbmNlIGNsYWltcw0KYWNyb3NzIG5vZGVzLCB3
aGljaCB1bmRlcm1pbmVzIHRoZSBwdXJwb3NlIG9mIGNsYWltcy4NCg0KSW5zdGVhZCwgaGUgcHJv
cG9zZWQgdGhhdCB0aGUgaHlwZXJjYWxsIGludGVyZmFjZSB3b3VsZCBpZGVhbGx5IGFsbG93DQpt
YWtpbmcgbXVsdGktbm9kZSBjbGFpbXMgYXRvbWljYWxseSwgcmF0aGVyIHRoYW4gcmVxdWlyaW5n
IG11bHRpcGxlDQpjYWxscyB3aXRoIHJvbGxiYWNrIGluIGNhc2Ugb2YgZmFpbHVyZS4NCg0KSSBm
YXZvdXIgUm9nZXLigJlzIHBvc2l0aW9uIGFzIHdlbGw6IEkgdGhpbmsgd2Ugc2hvdWxkIGFpbSBm
b3IgYSBjbGVhbg0KYW5kIGV4dGVuc2libGUgaW50ZXJmYWNlIHRoYXQgc3VwcG9ydHMgY2xhaW1z
IGFjcm9zcyBtdWx0aXBsZSBub2Rlcw0KaW4gYSBzaW5nbGUgY2FsbC4gT3RoZXJ3aXNlLCB3ZSBy
aXNrIGhhdmluZyB0byBpbnRyb2R1Y2UgeWV0IGFub3RoZXINCmh5cGVyY2FsbCBsYXRlciB3aGVu
IGEgcmVhbC13b3JsZCBzY2VuYXJpbyByZXF1aXJlcyBtdWx0aS1ub2RlIGNsYWltcy4NCg0KT24g
dGhlIGltcGxlbWVudGF0aW9uIHNpZGUsIGEgcmVsaWFibGUgZmlyc3QtY29tZSwgZmlyc3Qtc2Vy
dmVkIG1lY2hhbmlzbQ0KZm9yIG11bHRpLW5vZGUgY2xhaW1zIHdpbGwgcmVxdWlyZSBzZXJpYWxp
c2F0aW9uIGluIHRoZSBjZW50cmFsIGNsYWltIHBhdGguDQpDdXJyZW50bHksIHRoZSBnbG9iYWwg
aGVhcF9sb2NrIHByb3ZpZGVzIHRoYXQgcHJvdGVjdGlvbiwgYW5kIGl0IHdvdWxkDQpuYXR1cmFs
bHkgY292ZXIgdGhlIGNyZWF0aW9uIG9mIGEgbXVsdGktbm9kZSBjbGFpbSB1bmRlciBhIHNpbmds
ZSBsb2NrLA0KZW5zdXJpbmcgYXRvbWljaXR5IGFuZCBjb25zaXN0ZW50IGJlaGF2aW91ci4NCg0K
VGhhbmtzIGFnYWluIGZvciB0aGUgcmV2aWV3IGFuZCBmZWVkYmFjayENCg0KQmVzdCByZWdhcmRz
IC8gQmllbiBjb3JkaWFsZW1lbnQgLyBTYWx1ZG9zIC8gTGllYmUgR3LDvMOfZSwNCg0KV2l0aCB3
YXJtIGdyZWV0aW5ncyBmcm9tIFZpZW5uYS9BdXN0cmlhLA0KQmVybmhhcmQNCg==


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 06:51:17 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 06:51:17 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242458.1542898 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvrgg-0006fI-Jx; Fri, 27 Feb 2026 06:50:58 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242458.1542898; Fri, 27 Feb 2026 06: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 1vvrgg-0006fA-FD; Fri, 27 Feb 2026 06:50:58 +0000
Received: by outflank-mailman (input) for mailman id 1242458;
 Fri, 27 Feb 2026 06:50: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=WIjz=A7=suse.com=jbeulich@srs-se1.protection.inumbo.net>)
 id 1vvrgf-0006f4-Vb
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 06:50:58 +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 aa453960-13a8-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 07:50:56 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4398913af88so1439959f8f.2
 for <xen-devel@lists.xenproject.org>; Thu, 26 Feb 2026 22:50:56 -0800 (PST)
Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de.
 [37.24.206.209]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483c3b89c99sm86296875e9.15.2026.02.26.22.50.54
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 26 Feb 2026 22:50:54 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: aa453960-13a8-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=suse.com; s=google; t=1772175055; x=1772779855; darn=lists.xenproject.org;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:from:to:cc:subject:date:message-id:reply-to;
        bh=a6SxXPmOTMM4Rh4av1xwN5jyAYhCLEfe1b/ppRAwbEQ=;
        b=LxpEWh+zkt3ggyDLRvivZJvldxfZAljXVYG+TVS4Y+FuuQGEvic2Z1NzGvScnHQy+i
         8/KyFV9lCpS04Qj+IsbAYMP1H5vNX6UHTgDTQwwx1CM+10n1tCP1H4A5EaMjAkLO75RB
         VDyJjzUvu6XHsD89uP9/qnwShbuas7nZ9crPHArfcZ6BG7bJg85iWzldSBlbY2uVLkg5
         oa3XuI8DMt2hrFJ30IemBXaXBF6bpu3/naA1QMBJJtbn1Hyq4uvXhO9B2PnmRw7hAcvO
         4+yKTw7WaOffxSvuH1weNojmrTQTqnx1IyZkfmDxQqO2M+7aTg9yJPG9weCipuQKR86M
         P7yA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772175055; x=1772779855;
        h=content-transfer-encoding:in-reply-to:autocrypt:from
         :content-language:references:cc:to:subject:user-agent:mime-version
         :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=a6SxXPmOTMM4Rh4av1xwN5jyAYhCLEfe1b/ppRAwbEQ=;
        b=ukNLo/XdkZsAWYzZJPrZxvJ243KFSbbn0xUoU93h9HYkBcdpOBRXfafVQkocV0yHkq
         ofI/K6Om7p+p7uvagEM9aNT/bC4HTgdt55NlLlUw6VWDsvcvZv5vV8ldVHPSu6JUcuS1
         5y1sl/92uQyN7bFC3lsHOkT/Y0z87WmG6fCVgEpwVdpOZSuPn1OgsyRQu6cidhgv6uA7
         gQwNtR1ol8Z+jb4bd4deF+U3jyK0zJhCDTHfzpUFYd32GOLZDD7uWB/sDbIr8ZdOK0/m
         SE/b28Bjvuvh/9deJp92h63dGEh42vYZLhH5YtaRXKpFGrETusM/I8OT4jnJW8uOaHD3
         CuQg==
X-Forwarded-Encrypted: i=1; AJvYcCWzvlGqN5Kwjmw0Oj4UTFPpj6IpPV3tiE7mwKOCQSHdS4qPj9Li/Dr2bk3zlfFeRfM0BBo1ZwKkHQs=@lists.xenproject.org
X-Gm-Message-State: AOJu0YzCJuStadioQKHi6f1sieajzegkHG7Tjfre4JqjiRV/WbspMJXI
	ySFKf55YX1X9s10CHeE2K/4ZMkCWtk1SrklBIIqr/EBZJ9n7fqjXum9BFTcIvryzv1yyC1j1ZVe
	K5K8=
X-Gm-Gg: ATEYQzy9gNc8tYQZK6O5jrDxGswQnd+cPTchRxOw68gI32G8jMzUeivAguK5RXb0ypE
	XEjdjJvNkOX+REFBsvTfaoOvooEoWBqL/Lia0jlrUjQc/EENo2TXI4nDI67hvCxIACFIeqpQwcA
	/iABVY0LYGLeg/MpnkqRvdP9jBPTxzsTcUHY5WDDhtZJQaY7YmUEFk6EG4W/yGbEejna/gex3OF
	406oFTjUysGUHd1zeL6Jgk0z5wBNJ+ixwV6ngkTFF1RlN5zqtP7+p50skZraYS9r9dyxsYIG3fc
	NjXBZkYKoXt1KcYccvycDLfXIBX3EkFBie2HBrGCtg05kJEvI92DSf7ijMVS3SD7alsdD8kpird
	VnLJmLmiHMELFbrELHzGdALFjAoZKIVrfUTna5Mt0RNarM5LwHJjB9doVgbSAwC4kq49bvVk+bq
	pfAOV//ccXlr2rYKFeut1F+r4IO8QEWFFHPeXge2HHccPcA1sAMHI6vNRAUe3s2tmqK+RzrQEl2
	J+J8IpA8j+mfbg=
X-Received: by 2002:a05:600c:3b99:b0:483:71f7:2796 with SMTP id 5b1f17b1804b1-483c9b9d99cmr24340165e9.10.1772175055446;
        Thu, 26 Feb 2026 22:50:55 -0800 (PST)
Message-ID: <a4345272-872c-4967-92e1-bbf74bf65ac1@suse.com>
Date: Fri, 27 Feb 2026 07:50:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] Arm: device.c is init-only when OVERLAY_DTB=n
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>,
 "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
References: <c50219c1-5a23-46d0-bbe3-ab4a871a935b@suse.com>
 <53b251a1-948d-4c9c-ba0c-6f4fd99b1d6a@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: <53b251a1-948d-4c9c-ba0c-6f4fd99b1d6a@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

On 26.02.2026 18:14, Andrew Cooper wrote:
> On 26/02/2026 4:28 pm, Jan Beulich wrote:
>> --- a/xen/arch/arm/Makefile
>> +++ b/xen/arch/arm/Makefile
>> @@ -15,7 +15,9 @@ obj-$(CONFIG_HAS_ALTERNATIVE) += alterna
>>  obj-y += cpuerrata.o
>>  obj-y += cpufeature.o
>>  obj-y += decode.o
>> -obj-y += device.o
>> +device-y := device.init.o
>> +device-$(CONFIG_OVERLAY_DTB) := device.o
>> +obj-y += $(device-y)
> 
> I know we've argued over this before and not come to a conclusion, but I
> still firmly believe this to be an anti-pattern we should expunge.
> 
> obj-y += $(if $(CONFIG_OVERLAY_DTB),device.o,device.init.o)

Whereas I think this one (in its adjusted form to really only accept 'y')
is, firmly believing that the "lists everywhere" approach is the more
readable and, more importantly, more scalable one. The form you suggest
quickly gets to its limits when multiple CONFIG_* need dealing with.

Jan


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 07:33:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 07:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242481.1542908 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvsLb-0003PL-9t; Fri, 27 Feb 2026 07:33:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242481.1542908; Fri, 27 Feb 2026 07:33: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 1vvsLb-0003PE-6z; Fri, 27 Feb 2026 07:33:15 +0000
Received: by outflank-mailman (input) for mailman id 1242481;
 Fri, 27 Feb 2026 07:33: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=UosC=A7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vvsLa-0003P8-Ju
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 07:33:14 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 920f3522-13ae-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 08:33:13 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB5703.namprd03.prod.outlook.com (2603:10b6:510:30::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Fri, 27 Feb
 2026 07:33:07 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9654.014; Fri, 27 Feb 2026
 07:33: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: 920f3522-13ae-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=SCW2qHANxVFkrPeG3ntDaeMAiiirn7cTNGrNY0sYFJgUUlSoMWGCIt1vQUHkimSvhiO2D/ajnpUEQFv2waAuG9oVixZA9rOVxaab+tSqomHFIqfOSC/NUHfOyUY+Ounw4Rq2mLdZS9a+d4pAnFF9c642OxpOeiQF9yoGy6CajEArShd9VRNUBZpqSaHWk+zg7w2thBxFdJ9wu28ukzTD63AxMHrkW3wIdohIey9SD6ESwF4DeqM2vUXWPZy8izMQHI2MvZnaTEIvLcT4nLxj1CcMQjxLDjr8m1euwkdT8WQxDwnfhfcRACIme80/C+thZ54K4AhtW4IVyI8oHavNAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=2gPyrLbIRMlWHvq+gk6p2P9DB+bSNrYAm0t1G42IeG0=;
 b=fx9W9gkZBojwf0VMaAJOrsEcdH/K7CU4jLVg9iHPtCOGkvqV56NZTjURD6JFZRnZPLgCburoBPLWee9Jh3tTJVOwQtfPKH/I+AIL5VPuYQciIQTDQW8uRRaBJmjop+IS02YVuQV9CUo2hthujmp7+zPJZxP9whLaczs5wbmhvPwh1dG0NsBMC89l9GspWbXoPK/a+o2HGzQCOR5xhVkx+5QxTnhhuUxoW+Y4bqfR9voWvEdCVh2JpJkpsFufCD0uqHYAYEx0krRlTGmSXCPcXUGqtcHJ5wiN2nEN6ye3CYeW49eM5CGD6s3gqPYHXZg6GUmTx93pNua747dlikVbRg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=2gPyrLbIRMlWHvq+gk6p2P9DB+bSNrYAm0t1G42IeG0=;
 b=fEsrM4EirgUJWrGkWuTPAEe30NY+n87xqvGponJWcwKBi4ioLQoYRz3lbj4eljEwU7hN4WdtLD40LaXPaETtZiU5BfDYVNTpjEZDsdH37RTGwd0wsweA+b4UOPR11zN9fWbrVdbTkfbm5vLhccds2srsh0h5aqDc7b8GE27BerE=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 0/2] xen/cpufreq: a couple of fixes for the sampling window
Date: Fri, 27 Feb 2026 08:32:57 +0100
Message-ID: <20260227073259.1200-1-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA3P292CA0019.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:47::9) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB5703:EE_
X-MS-Office365-Filtering-Correlation-Id: ad703313-b5fa-482f-5900-08de75d27350
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:
	VsXrkv9NaMNKdM54igH+cEh0XcCaGKsIjxsiv5mF4kyN3Ny6pBwVSXvrFpm3yPkzLwfoodOlGmSoxpRJI0df9vKUxWSssMuRF/VxBF8tALfrOUO96QY4FrKYpcNj+9GOfhmOC32ldq3Iuz5yLEzIgeTNc1xWmJMf4PQ1oP34iu0qvffrYOnFnXdhYQQZN0jYcKznzFz1bBfyvp1yIfcOPuaVn81JQHwSwOQii9CYhspPvPm+hel0eCjIBbbjag6a4HdygaR6oNvRQ9/MFt/HRGtGNl9kAK7ZwFozH4zKfBpMaFBJDe+N3g0aPYQc55X6I2SvycQfKfzAOVJbty+1foPF1ucH3H/eqk7u93RF4ZvTh+CQcPupDchl+dfu79BjAHCatV6FNWm0TWk+XpTHTSdC5tJnIXakATaQevUCUEjHP9Oc3UaAE1rB2aGLMDtDslSwRyQm8W4j3IJjrZmeJR3XSxVeiwzV4r0i1wPnqwBksirYisMDeixtfW/4fVaVHVWZsw+qx69BY6szCeSc05y1Xob/BmjSJQ9BY+VFc7XYAfLRHsCzxGNqLo3kOSr+9b4t2oVcpP5PBe+FqsvHpdSm7ffmzQuR+Mi6Fe8jv+MxXqpHiRus5gPT2XT2ih6tLmgjkNdcKmpoKrOkJdel/5g0HYultaEMbGMQrb+lkLNt283WH5DNfgblYZ4uCyKAz5Tkn1/QbLsRUjMWFZbJFOlBz/jAjxAEWxwg14M8A2c=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UmxWM3FMc2pjTDB6R01CZ1RXSmtwNEpaY1pyNVlQUDZSOXNTRlc0YWQ2aUlS?=
 =?utf-8?B?VVZLTGtFSjkvUnhhVGxEMzg2OFAwaEpnbko2Mk9VSTlXajlrUWR1SE4zbkxG?=
 =?utf-8?B?Mk9EMkNIRG5uN0JqU2I4UStkaXg0ZXhpWkZITjVMWnZHS252enZzU3pqUklV?=
 =?utf-8?B?U0o2YzRodkFFMEw1MnphM2hYRTZnSnhURUVDM3l3ZCt1OVZiemVQWSszSEh1?=
 =?utf-8?B?YWpqNXltSTVLNzloKysyYi9yZVJ0Y05PZkV5aXBuVkVhTXcvT051QTZjZTRY?=
 =?utf-8?B?RUdWSnNwSVVDZWV4OHc5OFVUci9abjhCSnk1RDdjak1CRHBqeTBzSUl2SHVr?=
 =?utf-8?B?ZVBTckk2Vmd4dGo1YXRHVlh2OVJ0WlYrS2ZhMkZwYTBtUjh1bGEvS1VHRzEv?=
 =?utf-8?B?MWZ5c0xqQmlqUUFEb1VtU2dOZWJuMmM5aXEzR1NYWXhFYmliSWprYXpidE9m?=
 =?utf-8?B?bDhFY1dGbWMxQzJlRTE3QXB5ZzNIR2NIemNCY3dTRUZBbmsyYldSaU81enBC?=
 =?utf-8?B?UHJWckhYeVVlZGN0RFRmRFBzNk1FNW9GNUU1ZWVTMzZweXhKZG1IVkM2Mldk?=
 =?utf-8?B?NkJKTlRNeWFkMkFGRWRuMTR4U05nWGJDUWt1QnRrNjJjSlY2N3lVSWRtQ1Za?=
 =?utf-8?B?UG5JNEVvOXdkbWp3SXVTZ215MmhEYVlaTWw3c2d3MlF3ZTNhMW5HcUNJdmg2?=
 =?utf-8?B?THNqT3Z0UWF4L1BFcjY3b2liL2k1VXFUY3lkMDdzS0c5blFTUDFkUElYZXBh?=
 =?utf-8?B?bFA3Sk1yWk5INjRFRm0vRlhHMG9qcVJnOEd5T0h6S1E0SXQ5VXNDS3oyMFZr?=
 =?utf-8?B?RmVXUlBEcld5bDVMak9GWTB2SVZGYVRwcWxmdFlLK0xFQkhrWGFDK1hWMzQy?=
 =?utf-8?B?SWxoUVJOR0I0eWFKQ0JTYXJsUEhxbmVBc0hrZnJMZGVzSGFRb1phdTE2dWdC?=
 =?utf-8?B?YWxFNXlUOTNETmlBaGNPTTVUTEtleUhVVUxUakJOWTN1eWUrSkdRdzFJT1Bz?=
 =?utf-8?B?M3Z4VlhneW1SSmdQMFlJZU5rUWtPQWVzMmRXRUtOQVZsTmZMcVRYU1IrOXJW?=
 =?utf-8?B?R0wyQmdYVWpYVWZUSHphZmNjTExuYTZKNG12Z3hxeWtnMzBwUzFjcWFlT0g3?=
 =?utf-8?B?SXRKWFdIdlRzSExDejRZZzRzRTZzRWsrSHVMQ3lTRXNIc2Z6eWVCUGNVMzc0?=
 =?utf-8?B?YnpsQWszMXhjcVRTbnVJU0ltT05iTnh6VWc0WnM1dlpmbWRyUjVUcjRLMkl2?=
 =?utf-8?B?T0Mya1p4UVk3akhpQnFkV1ZTQnY4M3dZT2ZpQkh4SWhMVkduYmZVUFhpNVM3?=
 =?utf-8?B?dWNYQWRrZWNkb3dyZEdSMnhTVGtzNE1GZ0VHZXNnWk8rUEx5SyttUm1Hclg5?=
 =?utf-8?B?dHJ3UzNqbWNveFBYVHRodWlNR0JBcUhWSCs0eTFEQVhucE5UV3ByZitQZWlr?=
 =?utf-8?B?TG5neHZtd05LVEN2Q28rMzhwb3dYcVlialJlZ1pOR0o1VDIwVEVhd3l4bDlp?=
 =?utf-8?B?N2h6OG1iRjZmQXgxc2prMzRIQXhUWHc0Q3RHcU5DOTR6OXZ4VkdYV2xoTm0w?=
 =?utf-8?B?SFNiYmVRMC9NMXJxNzZ2TUJrRFZmeHZlS1R4NEliQm9KazZVL2VsU3R0Q2dN?=
 =?utf-8?B?MWh6Q1NlMjdQaTNmSW03RGo3eFkwTkJRNFRyMkJqenBiVEhZLzRwMThmcit2?=
 =?utf-8?B?Kzh2NG5VNFdMTWVCN3JJbDRMVjR4WHNTNTh4TXByL3QzZ1FMTC9scy8zbmR0?=
 =?utf-8?B?THpZNTlDWjRtQjNlRENFR08vR1oySkNyRzh5emhLWm52d3BDMmpvdVIxZ2o5?=
 =?utf-8?B?OWdlRWlPdWlUTDlBUUtSU09TQUdxM2VNLzJqZ1Z5QjRuN1Z5bm40QkNLRjRE?=
 =?utf-8?B?R3pJNGg4bEE1dFhVa2h2d3BHY01rYzVsTlROWlNWSkk1bE1oa2ZXNDV1SE11?=
 =?utf-8?B?Y1ZzTmV6VDdXSDd2amJqcDN0RjNsa3ErK3h4MmtndWxqNmY4QUNSMDh1VmNL?=
 =?utf-8?B?UGVwam9nbTlWcXEzQm1ZT0V4MXd5OUFSNWk0ZUJmMlJiVk53eWZpV2RhdXFT?=
 =?utf-8?B?TWNIa0E0MDV0YWFaUHg4OXdqS1ZwbVdqWXUxRjFiNUxFOVRvU1BHR2dpN09i?=
 =?utf-8?B?MFp6SVltM0VVVE9wZTFPQS9EbTBDNHcwUHRhTytWUHdEWXRMMXhXaTUyQ2dH?=
 =?utf-8?B?VkUwZDUxVmJiT1lHSHQyVnlOMDl3M3IyTGd6UHdxcWNZSE1kQmFNWmtBa0xt?=
 =?utf-8?B?RkRVWU14aGNnWmd4U01TMDV0VkptNVFLWHhJVnNEdDRuaFN1bkhxTjI2RDVk?=
 =?utf-8?B?UFVSUThEaUQ4b0tvZ2NobG9TOGNrRGN6KzZlQURtS216R3hwMTRhUT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ad703313-b5fa-482f-5900-08de75d27350
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 07:33:07.3789
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: pdoBohT5xqhWzcJL9w6X/vECh762QGJyCmXw3xW2Ly6VQDJ/ct4k1sQeXAzp9mdn4B7BDSTjZz++4jqe2nTWeQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5703

Hello,

Since a month or so I've noticed that my only text box that supports
P-states would seem to eventually get all its CPUs stuck in the lower
frequency P-state, and no amount of load would result in a P-state
change.

The issue has always been intermittent, and not easy to reproduce.
Looking at the on-demand governor I've found the two issues fixed on
this series.  With those fixed I haven't been able to reproduce the
issue, but as said I don't have a deterministic way to trigger it.

Anyway, the fixes look legit, so regardless of whether there's something
else causing my issue, we should take those.  I'm a bit surprised no-one
has noticed wonky performance with the on-demand governor before; the
changes that introduce those issue have been there since the governor
was introduced.  Neither I know why I've only noticed the low frequency
stickiness issue ~last month, if it was indeed caused by the issues
here.

Thanks, Roger.

Roger Pau Monne (2):
  xen/cpufreq: fix adjusting of sampling window on early exit
  xen/cpufreq: fix usages of align_timer() in the on-demand governor

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

-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 07:33:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 07:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242482.1542918 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvsLc-0003ca-Hg; Fri, 27 Feb 2026 07:33:16 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242482.1542918; Fri, 27 Feb 2026 07: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 1vvsLc-0003cR-EG; Fri, 27 Feb 2026 07:33:16 +0000
Received: by outflank-mailman (input) for mailman id 1242482;
 Fri, 27 Feb 2026 07:33: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=UosC=A7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vvsLb-0003P8-8P
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 07:33:15 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 9352483c-13ae-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 08:33:14 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB5703.namprd03.prod.outlook.com (2603:10b6:510:30::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Fri, 27 Feb
 2026 07:33:10 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9654.014; Fri, 27 Feb 2026
 07:33: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: 9352483c-13ae-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=skAbc5lk+b9UuPGVUcqLQiDjlrdS4wBvh97l4CXrDls2YU2ZVM1SFTyXfPAAdLcQPQyv9/knpIszaQeRbK3otz7xbCf3qVmA2bJJ8vX3CiyBPQw4CTT2pFculaIQTTniek968hR03GZmJWW4XFBedwfzIaOpqk2o6Y/zCehaGjaDpaIwKGGiMVPFWyCceloFdZTxrHCUsQ/IaL0YJslUEfVWgDF1yaILrSHAbbX6VHmU3cRhlkQH2m6ekShnCWtcgOFosuRjOVq83x0vD1YeeThU7NckFtdp4Ewg9IMPcZhtpr9W1LWUGMHwtpfs7s8yeB7PSVGGATbLcbrX0KGpFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=DPPIUPm12nWgbE3ZxGYrVCdi/GpigvkTLG3rTr9R7oI=;
 b=Sf9Wtv5K1wcAiSvp+7jNqY3jGMsz7gxUWYjmmH+4tde550kdrpCPDSfPgE8af0p1nJCUXQEkBFKmnrq5e+x8TMpLVuMAd6VYDNYKBWjLuWKu5BQC5lDOJZO37KLBIaHvIlC9oGqTTB7vk710SQTy6KUZJcVz0XOVMEWFnABsqOAAkal3Eh8L1eN5X2yYdhXNg3CzfxhDUM8Um3F4w8fo/MBhUKCBWiJ+MqmmVmOppCUBJUCKfoo5xqF3JJxps9RTizzblzewIKR4vS8rHXusiFoTMg7tjeM0d49kH+PPB45JWqSOBHfX3lx3KRDPe4dKgjYdq9wJRwPCtMkG/mtS/Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=DPPIUPm12nWgbE3ZxGYrVCdi/GpigvkTLG3rTr9R7oI=;
 b=oWgWtoHSfFFOEZLXoi4T2yEx5N72mtdLyPMJvCfiJP0wplQpk/2yC61UZLN0bns83u54Uz2D8x6xGDWc5mA7R2QaTM5748AT5pu66yhOFpB7H4O57YBh69DgsM4UdXZ3/yYhegJvGbUItJcxFUdhGxLyTPv2HoJjSywQedCQgZU=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 1/2] xen/cpufreq: fix adjusting of sampling window on early exit
Date: Fri, 27 Feb 2026 08:32:58 +0100
Message-ID: <20260227073259.1200-2-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260227073259.1200-1-roger.pau@citrix.com>
References: <20260227073259.1200-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0017.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250::20)
 To CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB5703:EE_
X-MS-Office365-Filtering-Correlation-Id: 63022971-5773-479b-2cb2-08de75d27523
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:
	HXpUl5T1nlNuLUcOMkxs8rNdbaywbnYsFJ7SS7gEDNvkHenlRDo+Z3PXI1cyocU2innaqXxzecsSrOH+lBqkjVNpcw3BOjyvDxR2Rst9z2XyP8qqKwJ3Z8KK82+kj+Wefyp7cILF3f0OfyGrzhOd4y/Iy6fsCYwjD7/2vyqDh2KIHeM8b/SbsBulISsXik2HdSHm8O1NZR1qQhoc38C9zcEG7MKPqrc3xsgFIFV1rHekLN72WlBirvMASf5BYsMrJucYvA+x8qr8nvJSZcYINSMSE9Ulyclt0p++q25CKMz7H7HtS1qqngunGo4N+f9v/eAbfSoCzDZSaay03GZNXqay3vaWoYum8ihruSqUxh2kw8XlW0mgW46CkWBaU72IDE9o1Rs63VDPVE5814u+h80aGh/jd5TCbslvmGB6wfjhoi8xYXl8+LCEkNszPQ8JF6aRU5s1BFGyeePRyWf1NZxJGgN0zw/O5QMlk3GUgkXy6e8Obafrnv/VLQjmNT+311uUGB8qcYRybQFDJu4we0Km8SASojF5KL4pL7nRfIQwAgITFRCzP8YNj0xvCkLqYCtec0sNpyCi/1Iqraw+ZEqUlKYfEk63VcYK0MDvLTvVj/GsBWFIMsGEIDp7Coi8MHyaW9FzMd1m5WGw/1cJk1ka4MVIB+fg6+UUHOoAvg8F4S8cvbSasRjhpsgTA5IWp2jUurYAKmA48bkBLljRMRsR9MEL6HHKibuOqdsobVg=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?OEVHanpSNzVsSEovU3pWQkxtWmxkclVZTWJOUWNDWEM3REE0ZkQ4RUdxT0tX?=
 =?utf-8?B?UTltWWxBNWFTeUdXYkdFWlY5ZUM0QjVTNUVxWGdQWGlpcFllc1duSnlpQWVV?=
 =?utf-8?B?a01qYiszRzFES0pIU1NNeE5FcXpSMldmc2VDaVBEL0E4U2ZNMXEreHJ3dWVH?=
 =?utf-8?B?elYwNjcySHFoVjdQZi9tdTlrTC9tbmFNT1NtZXNvcGs1OFMzdUN2ci9hSFJN?=
 =?utf-8?B?SDRrbjI1SEJMNWcrMFFDdWEyZW5CdlA5dWsxb1BwVHlZd25DTUxCdlErVTc4?=
 =?utf-8?B?d2dqQTNMeHRWQnluRkdmZkdCUUV1dnVEcDIrMExvcCtNY2k5emhNN1hkajUx?=
 =?utf-8?B?c3RrM1ZiTXZYeEpTdm55YXVlQUp6YXhMaWVnVHZkRjVxNkJYUEE4UFFrOVBS?=
 =?utf-8?B?SkVlM3NRQ2w2blZJOVFYclRwU3piZHNnbEYyZWJ4K3p1VEdMS2F3eXlnajBO?=
 =?utf-8?B?cThDZDBPWE1DQ3R5blhHTFF2QjM3NWdjMlVWSHhqMWpZdzNnbVd4QlhNcEZ3?=
 =?utf-8?B?VitaMEJkeDByajZhMjZhYXdOK1Vmb2pFd1dSS3c0T2wyZlQrQ2xGNURrSlNL?=
 =?utf-8?B?djFkcXRjU3VZMmtlc0dEYURuSlRETHF5TlFNaWhWbTVmVFYxRG5ydmswWWNw?=
 =?utf-8?B?MktXQTVyanBVMFB2UEI2ajRhV0pqOGJwVVhFcm5WTXdqM0x4Q3RIVUs1dzZ2?=
 =?utf-8?B?Q1FNeDlubGs2d0ZFOWJCdmZJVmZJR3R6aVJUZCs0aHJpQ2gwaXZUQzF2Vm42?=
 =?utf-8?B?MisxTW5ZVG1COHpPT0hlanJjNWpBSjJlaktaMEJLU3pHZDFFUGZkR01rN3JI?=
 =?utf-8?B?ZE1PR2ErbEE2d25MZGk0b1p6R3kvUEk0Y3NVNnZoVHZwZ0hkU0hScFVCSUZx?=
 =?utf-8?B?OHVGc0lHbm1na3pYc2lRZWQ2NFg3THVUcE1zbkpxSkQ4ZG1QcjBZbzRKVy83?=
 =?utf-8?B?c3ZjU0VjK1VkM2JyMXNoME5BMlBGQ2Z1TGtSVlNkZlRpeTk2SFlsSDdKNmpK?=
 =?utf-8?B?VVhjOUxCOVZZaTVCZDVkelZhbGd6WTZUMUd5QTFYUk91NlphMzViNWVVcFFB?=
 =?utf-8?B?MkhqOG4xQnBoQWovdU10bnBxOW9XdVN3WmJQanBPVFlGOXpyUGRUL3dGei9z?=
 =?utf-8?B?YkhXM1UzQldYYXoyU0wxbGprZVR0YllYMUZNY21kZ3o5NFAzdkNuYk9IcmNQ?=
 =?utf-8?B?M0RhbXZTS1NNTk1nTWVBTEFWNTgzd3lhcjNscjFJS0hQVVNuZVJ3TEJBL3lD?=
 =?utf-8?B?aTdJVytjSWxZZUc2eVp2N0F4NXlxSm9DN24rUzlMeHExRkl0ellTeTZWRzc4?=
 =?utf-8?B?S1JQbnZUM1kxSTk5RFh5OWE5NFl2ZXdZRmgvQVhyRG9kOHF2d0FwNEE0Nzdj?=
 =?utf-8?B?Y0kxT1k4ZUNjY3dWQ0VEOThQdExDdVVQM0dDR2VXNFpGOTEyR2NIcHhaNllB?=
 =?utf-8?B?ZmgzU011YVg1UUpMVTJsdm9qb3ZpOHNYWDk2ZEZtUlA3Y0loWStjaGpJcmhZ?=
 =?utf-8?B?WktqMUt2UkMxQjNjeGdzcUhzdlNDVVd1WkJzNmFCZEpXVFJwd0kwQkhSdGQy?=
 =?utf-8?B?MFdxYTk1K0huUjkwVERaV1Nia2lvbVVMS3VzUUw5Z205VGdvWFE0bnAzcGh5?=
 =?utf-8?B?Wi9UcmptUTJGZjREWDBBOXZ3ZjBKVWtPMHYzeFRmaGtRWHRpQXVyb3o0bEE0?=
 =?utf-8?B?UWU4c3RXcXRkSUh6MjRWMStTWmltb2pCMEQ2c0ZVZWJKSlFKRW4zN3ZQQytz?=
 =?utf-8?B?U0xWTGZIbnNhODZnSzVNM1VDMUZKakgvVitGVysyZlNBaDN0cWJZSjZIdG4y?=
 =?utf-8?B?UXk5UlZxZEZkZHdZU091SDJnWW43bGhDNnVWZXR4SVIwWlkvWGw4elBlTTZw?=
 =?utf-8?B?Ync5NGd0MDAxNHFvNm96T2p1NUFEdFNNb2IyL09wMnU2bmZReXJDUU9YVXV3?=
 =?utf-8?B?cmZlV0lPYlVlNVU2UkpSRnBIQnhLZU44S21naUtYRElQYStLaHhCbE1iOEJu?=
 =?utf-8?B?OVlTMk1zaXRBT1NzQmVFbFF5Zmw4TFpjRlhNVzlsUC9ORGprd1hXd3F2TS9R?=
 =?utf-8?B?Tm1iV3JnYTNMbnhqT3VmWGFER1REV1o2Z0RkbTRkZDdaYVkrWkhYc2YzL2Y3?=
 =?utf-8?B?V1lVNFhvM2pqbUlQTDVkcFhPSy84SWU1bCs4WEdHSkM0VGg0YlZyU0trWmVa?=
 =?utf-8?B?ZzNPRnlSNWZRM1BYa012LzU1emVqVVM3Tm9HbGJQeXB6R2JlaTErRGluV2U4?=
 =?utf-8?B?VVN6YUQrS0N3aWtwRlMzdXJ5dm9sK1NselFKUS9kZjU1N3pIMGJ5Qi9EZCs5?=
 =?utf-8?B?UnJCT2p4K1ZPUlBibW1uVmx5UDJoK0t3RmFZUWFLWkR6clFWbW5vZz09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 63022971-5773-479b-2cb2-08de75d27523
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 07:33:10.3545
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: 0/rWDO5hkQEJp6KmKcwwcrcdMPYYpTcgZ1gglQk6Kmg1r1hNl3UAA/ioNwst/rlWxJB1P63bu6QhUmIkhYhnpA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5703

The logic in dbs_check_cpu() resets the sampling window even when the
sampling period is considered too small.  This leads to further calls
finding an imbalance between the total window time and the idle time, as
the total window time is possibly shorter than the idle time.

Fix by resetting the sampling window start time in the same block where the
current idle time is stored.  While there also prevent a duplicated call to
NOW() and instead re-use the previously fetched value.

Fixes: d6f001cb91ac ("x86: Implement cpufreq ondemand policy")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/cpufreq/cpufreq_ondemand.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/drivers/cpufreq/cpufreq_ondemand.c b/xen/drivers/cpufreq/cpufreq_ondemand.c
index 0126a3f5d9b4..537695eaab19 100644
--- a/xen/drivers/cpufreq/cpufreq_ondemand.c
+++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
@@ -117,11 +117,12 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
 
     cur_ns = NOW();
     total_ns = cur_ns - this_dbs_info->prev_cpu_wall;
-    this_dbs_info->prev_cpu_wall = NOW();
 
     if (total_ns < MIN_DBS_INTERVAL)
         return;
 
+    this_dbs_info->prev_cpu_wall = cur_ns;
+
     /* Get Idle Time */
     for_each_cpu(j, policy->cpus) {
         uint64_t idle_ns, total_idle_ns;
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 07:33:21 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 07:33:21 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242483.1542928 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvsLd-0003pv-O2; Fri, 27 Feb 2026 07:33:17 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242483.1542928; Fri, 27 Feb 2026 07:33:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvsLd-0003po-KZ; Fri, 27 Feb 2026 07:33:17 +0000
Received: by outflank-mailman (input) for mailman id 1242483;
 Fri, 27 Feb 2026 07: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=UosC=A7=citrix.com=roger.pau@srs-se1.protection.inumbo.net>)
 id 1vvsLc-0003P8-8i
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 07:33:16 +0000
Received: from PH7PR06CU001.outbound.protection.outlook.com
 (mail-westus3azlp170100009.outbound.protection.outlook.com
 [2a01:111:f403:c107::9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 939da2a3-13ae-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 08:33:14 +0100 (CET)
Received: from CH7PR03MB7860.namprd03.prod.outlook.com (2603:10b6:610:24e::14)
 by PH0PR03MB5703.namprd03.prod.outlook.com (2603:10b6:510:30::10)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Fri, 27 Feb
 2026 07:33:13 +0000
Received: from CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343]) by CH7PR03MB7860.namprd03.prod.outlook.com
 ([fe80::f5ba:35df:1c9f:b343%4]) with mapi id 15.20.9654.014; Fri, 27 Feb 2026
 07:33: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: 939da2a3-13ae-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=rJtoW1Cz720HUTRBe4380NcJfkeNk7MLnBfapSa6fb00CieE+F5jS2m/Ik0842Y8JlKQJutJz1ComPTXzRY9/KzEEHPC8v4NDKgi8UD808yYtK9sssC3qQqO7oQyLFUBclqob01sWnvk7FBdzPb2cqZOXP3GMkSd9aM/+fhTcovKeXMTxAkYmDnL98fJO+D0EyFgiOSCdUWOeHPZal7lqI3YdfjT0DGqjLoU9sbm80HVdk6JEjYRoDQ73L+dKhfLSAv/vwp9enzXGzy6smjF3CPvNMpF8fhRqxea1E9HQvINShSe1HGVvih0+g32sg6xiovZWA8od37CrLGnMA2zOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Urh8wr5J46bIDyHt/VSWqgUO0+Dn2AXVKCUHBxW0PlI=;
 b=N/3gGoM22qw4iRM+01htD4ZWlfXSqflL+6M2cLi8XZouushhXf0A22CvbN13gXy8Ah28qS2CHRpXUyW82kWlX1iNU51JuRfnHN3wZS0ynUyFLxBaMBEd0OVRVLRDGo2voPACdAj3X1LVUTMC905SifKwCKGvZBRGInH4BFvbWkYHi+2M/jxugQysrx+ba0cN3lyxhCAz6cgq7amB0+0msrBu9h/I8lG1g7ummpNhJdUtx/qc10ZBCIJS/WwFkcJ6y0c/lXVaDbFe7TDPEBTvZFF/WeMPX8+u2QifULPdk1GKKhQT9nbdnoOLKKIGawbrS8yWYbmPyFyQqIeALVr0HA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Urh8wr5J46bIDyHt/VSWqgUO0+Dn2AXVKCUHBxW0PlI=;
 b=Y/HKGGPAzPpcataWaR20u7oEBgEuAbqTj4Ecqwbdm0OLGwPqigUkGm4L3nIjRw3TVGDmILW0URXh+Awjl5mV6+aRBIgyQ7FPDJcu42/SQl0QmdbRRe0yUkXaTlqFpQVHA0jZW6HirprzE9Yqm48nN2JknHF+gx09f6dkTt7ufSg=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
From: Roger Pau Monne <roger.pau@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: Roger Pau Monne <roger.pau@citrix.com>,
	Jan Beulich <jbeulich@suse.com>
Subject: [PATCH 2/2] xen/cpufreq: fix usages of align_timer() in the on-demand governor
Date: Fri, 27 Feb 2026 08:32:59 +0100
Message-ID: <20260227073259.1200-3-roger.pau@citrix.com>
X-Mailer: git-send-email 2.51.0
In-Reply-To: <20260227073259.1200-1-roger.pau@citrix.com>
References: <20260227073259.1200-1-roger.pau@citrix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: MA2P292CA0002.ESPP292.PROD.OUTLOOK.COM
 (2603:10a6:250:1::18) To CH7PR03MB7860.namprd03.prod.outlook.com
 (2603:10b6:610:24e::14)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH7PR03MB7860:EE_|PH0PR03MB5703:EE_
X-MS-Office365-Filtering-Correlation-Id: ffe9cd97-6320-4dac-ef6f-08de75d276bc
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:
	/gK9hHoonsgV4cbJtvfgqTm8vci9w6XYjlXb5bGtBMUKh1StLxm5DZe3uwZTLtiY5Wwfh4noHQmpE7mowoSNOtJ5d0KdjCJa5JzVCX9+YhQUNDifDZ1Cjm8mVM5wqXX3cx0MiUu9JYt7Y30NIaAfo5xxfrYATN68kd6BKWnDj6kuEQZIyLLER9sL/WCEbKI2YhE8Xpzc9VEeYrwDClsrbLn+z9FJZnh2ITViQmgW3XQbwOPVe3OOkCe7fZkMSHnmQRtsyKzLZasRR8dhJYMJIVI6bu4teSTSqSgdZdu9pSHc9jtuGcTbcLCqo4jphDmQqrUyLtKZAhPNNabsZRr+KT0+zaQuCbjrGXlgVkrfVTtJEkJ3AHDjJ6TPohObOfsHTmzvuohIWZUcG45yBgBbZ8TwtzfvpZbcPLlOmMdcpZpR74wV1rjpKkYKVFv1CkJADu6yKaTUdFwv+j3cPxNk0f6AveoZWo1+mPqB+RdZKdUdtnXnOtVqsJE6+uSvXb/XCPQW4h366wuKHSwq4gmBGuXq24Mb8FcQ53gpNkG287JFYk9xC9jdm7P+mZou4wr1tDbARKvG0FFjsHorMx1Jk8TT710g1BJw98VNeOGDlIXzMsom+8yI5kECAgJQpXjwtvRkvYPu3QMQAp755VKR7YCbg/AL7m5F5b+M7r/SAq7FeiJEG5TJW1Q8iug8ypNl5oavLg65M+OTvxKL3tr2olqzE0tGGSYcOQf4UMy/Q3g=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH7PR03MB7860.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?enFoWkhjam5rMEtIWDhuempNZW5EdTRnWWVwa045YmpxcjJZcTlwQmJzcTlZ?=
 =?utf-8?B?MVJYd3RnSVhlWlFoekRIMmx3SWZMVHcwTnNkRVA3bDNEMXRiQlVBazhnQlJY?=
 =?utf-8?B?N1ZQa2M2TWpqQlFaTWw1OWQzSU1FREJWNE4yckNESDBhL0RCY1JtWFlBR0E5?=
 =?utf-8?B?dkp2ODJOd2JycWN0ZDZkQ3ZzVFVZUU40Um1rQWFqNUVON1lKMUJlcnlUc01K?=
 =?utf-8?B?MDQxa3lNMGI0dnExL0l0YjAvSkhORFFLY1I2THhtQlJTSUprSXNGY05EZ0Nw?=
 =?utf-8?B?Y3phckNnMU9aLzdnMmdZcERQRXN6RXdHNXVUKzVrYi9MUTNlWkdWdFByd2Jj?=
 =?utf-8?B?Tm9PZDlMbUxOY1hrT3pBNUErVVJ0czZyZEVWM3gvNkdSNGIwT0lKSGhUeXQz?=
 =?utf-8?B?aUswdVhBNE5LcUo3K3A0WTlYa00vRlVUaHF4SnU2SEJoOXdGRC9Ha1l5MGdW?=
 =?utf-8?B?UVNhbXlUNUgxUTRYR2NMeXZzTVI2YXdEcGt5Wm9xVjBGWnloR3NwcE01WFd0?=
 =?utf-8?B?djNZdlJxSUM5cEhtVGpBT2NDRHVYTnFBaUNkSnI5Zmd0WXNHT2VHRkdXelVq?=
 =?utf-8?B?M2ExRkwrblJnc1lpektXL2FTaElwV21yOWR0b1BwZkQvTEV3aWFqN3lJRUYr?=
 =?utf-8?B?cm5HanFkMkNxS3Q0bkVnazN4TTMxcXAvQWlvU1hZdUFMRXVrNWlBR2dGbVNk?=
 =?utf-8?B?TG9qUUFlS1YrYVkydUdEMG51cDBFTTI4Um1SMER5S0NHRldyVVZNNzBVNUYy?=
 =?utf-8?B?QTg1TGlMTlN0YytwMm1iOTk3eDJRSDIyb2tWcGIrb0lJU0F5aDJQUU9DbW1x?=
 =?utf-8?B?dEtXczVSVHJLMy9QMW5MT0puRG96aGNOcUloK01ucnQ2TCtRN2ZpWkJkTHJo?=
 =?utf-8?B?enc5NS9GNUlDZVdkVVdhd1VqbFZwQkRKdWMra0d5QnJlbG02VStBUy9iR3BZ?=
 =?utf-8?B?bG9ndjlmVHFDVVlsLzdkOU0reEZEOUtMWFhsSkpWZndyWUNoS1ZFWUZJcmxR?=
 =?utf-8?B?Zk4vb3lrc3d2eVdxNldEa2hTdWsyQUJpUmdwUlFYeUF3ZGZkeXFCQnZEaHBj?=
 =?utf-8?B?b0VPUGZhR0gxZ0VkS0lHV1orNHA3REp5OHF1TC93czBXN3dnd255MXZQZnpy?=
 =?utf-8?B?bTcxWUFPQytYMFk2L2VBTVdjcEZKSGQvR0VOSGM3VUZPZzRZRE1taktCZys1?=
 =?utf-8?B?aWUzK1JnY081UE82TTV3L1BRMFdWcmNpVWs1cCtHMjFrWVhVVXBDV1c0QTR3?=
 =?utf-8?B?L203aVRlUStYSkoyNFFtNkYrazA1R3prY3JRSmxrSjl0RGxWcTBrVklLbUlT?=
 =?utf-8?B?YjUySzdMdnh5TVVYakVHRExpczJzWXh2UXZtb3h1T0R3Sis5R1ZyNmRjRTVM?=
 =?utf-8?B?UmphaE5PNndMdjBPUmRwU0ZFZXpzbjhCT3V0bDNGMCszNjNIY3ZLYjhCNUd6?=
 =?utf-8?B?NlpYYjBXcjAzTTRYYWpzNGZZTzEvWTA0MVM3TTlvVWZ5ZUI0cmY1RC9WdHh4?=
 =?utf-8?B?TXV1dUFjS1dMcTRvaGdGSVAwaVc4UEhISFhIS0NNZTI0Y2U5VUdUVGMyQUZu?=
 =?utf-8?B?b0hpRjN6cmRXaUZFMGZxbVZDU3FvRWdZbnpkajhuQjIxVEg3L0dNQnR5bmZo?=
 =?utf-8?B?Y05rUmNsMmxURTV3VFhxYzA2RHdENkJ2ZjNZYjk5MmVHeklwangxTUcxaUd6?=
 =?utf-8?B?YVdhWU9zU2NoV0lYbzdOaGsyczdNQ3F2UzJMdDlKcjVBZE5OcWJWOXZKRGtq?=
 =?utf-8?B?QWZuOVRvSmlkNFlJeWtRVnArQTIyMzNpVGtNVlZ1c2VoSXhUU3hTY0xQNDZY?=
 =?utf-8?B?VXV1MnFacDJLSDUvWXBlaDVZQzV4blpvSDdNeFdXZFRkQTZVQUpRZXFkUW00?=
 =?utf-8?B?b2lXeUhmS0svaW1MQkJLZXkwNGFkOExXWDczTmVCVWdXdDRvZEEzQ005K1Bj?=
 =?utf-8?B?N1Y5c2wzVFV5VnZDMklZa2RXbzV0emRyUWVsVE91cWZ6QWdXcDl4emp5SklM?=
 =?utf-8?B?U1JWUjdMdFlTbFgrWVVlZzZXbDErNGc2bWtOeGtuU1BrcG9GbEh1cTBJSUla?=
 =?utf-8?B?K0E4UXg4QTlLeUpVbHV5MXg5ZzNhM2tPZm10YnphNCtkZWlDYTR6cEVFelNR?=
 =?utf-8?B?VTFQUElpZE9LMCtQR2Q1MkV5Y0hTOXRxVTBZbDdmTndna2YrUkNuVHFycVdK?=
 =?utf-8?B?Z2V4QXREZlg4c2tyVEdqYUdpbkJlQlBYKzJKU3JaNzVUQ3ZmdjRuTGUyS0hv?=
 =?utf-8?B?Z3dRSzNUOGxhdVQ1MzRGcEhqbS96enlMaUQxWFExQVhxL0ZuTHpWTVpNRng5?=
 =?utf-8?B?bXhNc0tPYnlRS0NrN211S051b2k0UEpjU2hIMDVqU0o0RmQvc1FjQT09?=
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ffe9cd97-6320-4dac-ef6f-08de75d276bc
X-MS-Exchange-CrossTenant-AuthSource: CH7PR03MB7860.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 07:33:13.0607
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: ExjLJYqKk5lAEusCu3nxSVssao2mNXqRJTzTiq8XcftxL9jVLFaKTfh4/Qa+Te1mwhnQxcwVr2sBIPa0uAW8rA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB5703

The first parameter passed to align_timer() is the timer expiration, not
the current time.  Adjust the calls to align_timer() in the on-demand
governor to pass the expected timer expiration as the first parameter.

Fixes: af74e3a15a83 ("cpufreq: align dbs timer for better package C state residency")
Fixes: 382b95f627a9 ("Fix cpufreq HW-ALL coordination handle")
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
 xen/drivers/cpufreq/cpufreq_ondemand.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/xen/drivers/cpufreq/cpufreq_ondemand.c b/xen/drivers/cpufreq/cpufreq_ondemand.c
index 537695eaab19..0d94c0e464a6 100644
--- a/xen/drivers/cpufreq/cpufreq_ondemand.c
+++ b/xen/drivers/cpufreq/cpufreq_ondemand.c
@@ -185,7 +185,8 @@ static void cf_check do_dbs_timer(void *dbs)
     dbs_check_cpu(dbs_info);
 
     set_timer(&per_cpu(dbs_timer, dbs_info->cpu),
-            align_timer(NOW() , dbs_tuners_ins.sampling_rate));
+              align_timer(NOW() + dbs_tuners_ins.sampling_rate,
+                          dbs_tuners_ins.sampling_rate));
 }
 
 static void dbs_timer_init(struct cpu_dbs_info_s *dbs_info)
@@ -400,6 +401,6 @@ void cpufreq_dbs_timer_resume(void)
             (void)cmpxchg(stoppable, -1, 1);
         }
         else
-            set_timer(t, align_timer(now, dbs_tuners_ins.sampling_rate));
+            set_timer(t, align_timer(t->expires, dbs_tuners_ins.sampling_rate));
     }
 }
-- 
2.51.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 09:40:03 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 09:40:03 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242543.1542939 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvuK2-0002W1-1y; Fri, 27 Feb 2026 09:39:46 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242543.1542939; Fri, 27 Feb 2026 09: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 1vvuK1-0002Vu-Tc; Fri, 27 Feb 2026 09:39:45 +0000
Received: by outflank-mailman (input) for mailman id 1242543;
 Fri, 27 Feb 2026 09:39: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=hdes=A7=bounce.vates.tech=bounce-md_30504962.69a1665c.v1-f157163a010b4c50a07224fe7c27dba4@srs-se1.protection.inumbo.net>)
 id 1vvuK0-0002Vf-Hg
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 09:39:44 +0000
Received: from mail178-23.suw51.mandrillapp.com
 (mail178-23.suw51.mandrillapp.com [198.2.178.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3d64ccc0-13c0-11f1-9ccf-f158ae23cfc8;
 Fri, 27 Feb 2026 10:39:41 +0100 (CET)
Received: from pmta13.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail178-23.suw51.mandrillapp.com (Mailchimp) with ESMTP id
 4fMjwD1HT4z35hg4R
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 09:39:40 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f157163a010b4c50a07224fe7c27dba4; Fri, 27 Feb 2026 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: 3d64ccc0-13c0-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772185180; x=1772455180;
	bh=Y1nYe09ke51CdH/6D0EdVY0J4b99jSrb6M8aLy27Luw=;
	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=ixcy01PAgLxpT7zq1TLjxcINUb6xHhyryIzEEcdvkHQ7nhnBz5edykZoFT/OXwB0k
	 L+c30A9jtq6AGqpmLqUYqimYsykXlm7Cmi8KqlBZ9jxoDK5EmIXXUp6vrjYG6Miepc
	 tUf26rUVSH44ouA1o0iQL2DGth6oYd2FaiqIxeTFkEYqb83qJdP5lT6+lpTT7qR0bz
	 CNP6VvgJKOdhMwQw/eFvR+rVt5z4nl52Y6bbdRD91ILqLasUBP0ISEmgBx2dMxm1w/
	 HxUmNmHoSZS23i8/+VUPx4PGWrOLUxxF4+7EELas9cSW4997G6bFs/BA8e+2bmoRSy
	 2DKW29X9FJBiw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772185180; x=1772445680; i=teddy.astie@vates.tech;
	bh=Y1nYe09ke51CdH/6D0EdVY0J4b99jSrb6M8aLy27Luw=;
	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=tOz1SgFXNvE1E4F39kU6xCtAo8ZDv9AtxkBsAcGdwIpghj8WDYHibAEZIZOK5Cs7v
	 +vA0lx7U1BN2V1IydQ2lc/aN/9ceda0BXMI98IJGHyP8S2q+nseObqGPFJCGntZt7b
	 oiGFd6d0a7WDm+JxWToeeoCKunIibakgd5h9xevPITf5YglP5if321+a/pM/zQyOv3
	 DN+1mFnbPvkoJSp3poqih2X5Qn3MV83XZXSvYxq1O42U/7bmCgVe5BZyfPj4DXzfKo
	 CTA3hsl2gHNA3BTVoZM40bGhxuwQDbfANSUgebwfN33Tv5qinWJvlRsZ+a+UTLIOUh
	 yE74SFH30N5+A==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?Re:=20[PATCH=20v4=2005/10]=20xen/domain:=20Add=20DOMCTL=20handler=20for=20claiming=20memory=20with=20NUMA=20awareness?=
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772185177224
Message-Id: <a1b1daa3-a70e-454e-9cdc-42e26b204a0f@vates.tech>
To: "Bernhard Kaindl" <bernhard.kaindl@citrix.com>, xen-devel@lists.xenproject.org
Cc: "Andrew Cooper" <andrew.cooper@citrix.com>, "Anthony PERARD" <anthony.perard@vates.tech>, "Michal Orzel" <michal.orzel@amd.com>, "Jan Beulich" <jbeulich@suse.com>, "Julien Grall" <julien@xen.org>, "Roger Pau Monne" <roger.pau@citrix.com>, "Stefano Stabellini" <sstabellini@kernel.org>, "Daniel P. Smith" <dpsmith@apertussolutions.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com> <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com> <656ff614-9165-49ce-8c55-0cfad33d4ed6@vates.tech> <LV3PR03MB77072E23139DF353E7B8C9D28772A@LV3PR03MB7707.namprd03.prod.outlook.com>
In-Reply-To: <LV3PR03MB77072E23139DF353E7B8C9D28772A@LV3PR03MB7707.namprd03.prod.outlook.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.f157163a010b4c50a07224fe7c27dba4?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260227:md
Date: Fri, 27 Feb 2026 09:39:40 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Le 27/02/2026 =C3=A0 00:21, Bernhard Kaindl a =C3=A9crit=C2=A0:
> On 26/02/2026 =C3=A0 22:19, Teddy Astie a =C3=A9crit :
>> Le 26/02/2026 =C3=A0 15:54, Bernhard Kaindl a =C3=A9crit :
>>> Add a DOMCTL handler for claiming memory with NUMA awareness. It
>>> rejects claims when LLC coloring (does not support claims) is enabled
>>> and translates the public constant to the internal NUMA_NO_NODE.
>>>
>>> The request is forwarded to domain_set_outstanding_pages() for the
>>> actual claim processing. The handler uses the same XSM hook as the
>>> legacy XENMEM_claim_pages hypercall.
>>>
>>> While the underlying infrastructure currently supports only a single
>>> claim, the public hypercall interface is designed to be extensible for
>>> multiple claims in the future without breaking the API.
>> I'm not sure about the idea of introducing a new hypercall for this
>> operation. Though I may be missing some context about the reasons of
>> introducing a new hypercall.
>>
>> XENMEM_claim_pages doesn't have actual support for NUMA, but the
>> hypercall interface seems to define it (e.g you can pass
>> XENMEMF_exact_node(n) to mem_flags). Would it be preferable instead to
>> make XENMEM_claim_pages aware of NUMA-related XENMEMF flags ?
> 
> Hello Teddy,
> 
> Thank you for your review =E2=80=94 much appreciated.
> 
> Updating the do_memory_op(XENMEM_claim_pages) handler to accept a node
> parameter, as you suggested, is indeed a practical way to retrofit this
> feature into existing Xen builds. That=E2=80=99s also the approach we too=
k in
> v1 of this series:
> 
> * https://lists.xenproject.org/archives/html/xen-devel/2025-03/msg01127.h=
tml
> * https://patchew.org/Xen/20250314172502.53498-1-alejandro.vallejo@cloud.=
com/
> 
> We are currently using this approach also in the XS9 Public Preview:
> 
> * https://www.xenserver.com/downloads/xs9-preview
> 
> That said, during review, Roger Pau Monn=C3=A9 suggested that for upstrea=
m
> inclusion, we should introduce a new hypercall API with support for
> multi-node claims, even if the initial infrastructure only handles
> a single node. See:
> 
> * https://lists.xenproject.org/archives/html/xen-devel/2025-06/msg00484.h=
tml
> 
> He raised the concern that the current interface effectively constrains
> domains to be allocated from one node at a time, or to sequence claims
> across nodes, which undermines the purpose of claims.
> 
> Instead, he proposed that the hypercall interface would ideally allow
> making multi-node claims atomically, rather than requiring multiple
> calls with rollback in case of failure.
> 
> I favour Roger=E2=80=99s position as well: I think we should aim for a cl=
ean
> and extensible interface that supports claims across multiple nodes
> in a single call. Otherwise, we risk having to introduce yet another
> hypercall later when a real-world scenario requires multi-node claims.
> 
> On the implementation side, a reliable first-come, first-served mechanism
> for multi-node claims will require serialisation in the central claim pat=
h.
> Currently, the global heap_lock provides that protection, and it would
> naturally cover the creation of a multi-node claim under a single lock,
> ensuring atomicity and consistent behaviour.
> 

Ok thanks.

Should we state that the old interface is "deprecated" (somehow), and 
that people should take a look at XEN_DOMCTL_claim_memory instead, 
especially if they need a NUMA-aware interface ?
That could be a note on the XENMEM_claim_memory hypercall.

> Thanks again for the review and feedback!
> > Best regards / Bien cordialement / Saludos / Liebe Gr=C3=BC=C3=9Fe,
> 
> With warm greetings from Vienna/Austria,
> Bernhard

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 Feb 27 10:40:22 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 10:40:22 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242562.1542947 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvGK-0001ar-9H; Fri, 27 Feb 2026 10:40:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242562.1542947; Fri, 27 Feb 2026 10: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 1vvvGK-0001ak-6g; Fri, 27 Feb 2026 10:40:00 +0000
Received: by outflank-mailman (input) for mailman id 1242562;
 Fri, 27 Feb 2026 10: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=mnSo=A7=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vvvGJ-0001ae-0E
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 10:39:59 +0000
Received: from mail-ot1-x335.google.com (mail-ot1-x335.google.com
 [2607:f8b0:4864:20::335])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id a8669d52-13c8-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 11:39:57 +0100 (CET)
Received: by mail-ot1-x335.google.com with SMTP id
 46e09a7af769-7d556c1a79eso1963760a34.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 02:39:57 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: a8669d52-13c8-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1772188796; cv=none;
        d=google.com; s=arc-20240605;
        b=EYca0EryuNgUJalBAFMJ6rcIIxuW3og9xwU6j3plJ4Zmf29S3dt0zATen8zFnjnGFu
         q8xPgL6ty7vblSvWllEF94HX1ebXQIJ0Cl/vUnM+ngcn4lWq6PSnT233CGHnjdZ5W0ai
         +6yNr6Mb2myFU1NGuTx1Bqn9DgUSLGl+J6K1dnCUOX1jBiyfmC3QYb+UkuZic1IP2ku6
         1/rsn4ZqaJPBJev6U8a24UyfB8qO2GIqk3IPtesYwWVaefw+Fxw/1dd23H9A5kVAFFNy
         QiubacJifmmmb3uiRwjmVPLZqaoVfLGk89+IoriUUoiBQngRxWofXaPgGe5veSnTwGSZ
         chEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=h3W9wnAPujhYxuLAQIaNeWK9TmYessUc15me4oDThKk=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=TyprFk7FfCGkfZhOyuLr9e2kOPNxOJ8MMoyqA3Yo5CcWUBp7New3XQ0nHjE04rdEsC
         iwDNE/okY5aT95mho5y1U08F3RRxsYjYRHDfHFX7yw59t9QlH8PldVfxM6o5x6rk6HAo
         LFVKrueNUt1dMcB9jWYw1uLaJGgsj3GxH9LM8cYJEHOmMk+uV6D93JGW345qozMwWnH7
         3oNH+ya3GJWcit0weJK7ESXF3PVDYqkNbpA8C9gDeYAhrYJSvBzSe+8MrX/R78lmAg5m
         C3/iA+8gzyhMgT4bLEw/gHWqBPHO+xdBgN8f+2QngMo/zFgMhJ6a/T9838yEXmi3rHjQ
         5HJg==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772188796; x=1772793596; 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=h3W9wnAPujhYxuLAQIaNeWK9TmYessUc15me4oDThKk=;
        b=s5Km/6lBAti21cnYofiAGU8BE7ZVbuQZoTkU5wU3hD9tYW1Qezz2zuvdFUvkNyD1WQ
         clzNKI7Hhnu92QMC1T0IutMp657kAcsEmeyscf0SbuxRpT15Tr2jTGRR9zq86bPfVf+l
         J1oCmTh+MG01eCz77EWQGX1ItR1t1R+EL1rMatz9u0JU/memZdQyfN1rwZ19FFsyGB5N
         mIEQ9W3CVJy9nriWYp6bDfFiYWN0H2xwfPFBfQwasateRfR8bsMebgip/WdKsDKhJdYL
         q37Uy3O1EpqABJGoH0p1k6yiISosan4edJ9RZUNw7DT9NUyguMhOb9gp99vMBtjJcXuV
         Mzsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772188796; x=1772793596;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=h3W9wnAPujhYxuLAQIaNeWK9TmYessUc15me4oDThKk=;
        b=LC/W0aY83WyHdpi/5y/GdWTAEp+g3E6JOSUKsdkSdJ7hpw4i/qJ9BHUAvW03Ke0rPv
         0qfUAz8DMt/OrZWfOyNociQNxYQmJszpJgoO74SjgmiL8V6PTKgwgH87Yzeo4tAwvJ9J
         f2CUz6uSowAzuyGjV2M7mmyuFRpeMdJauHWfCE2p7y97yMZ9gYywYfgQ+bmWXv1nxSuB
         vtOt04rZrIh3pI6itIBZ3/BA2Icfs4WJxfRukdxvlgJONJdQt/KMO4be3hPOhthIM3G9
         HkeRmPLrzQG3r1eVcjqk03IadUS0U/je1tKxL8o3xhlXowPhKXzULOt1VTckPEIE6eX3
         E9zw==
X-Gm-Message-State: AOJu0YykDuDlLWDtSyR0tlUQvioQD/PGKwKvsHouLaE5O23OFoUT9Hv3
	sAGV/cp1YQeDNA6VBnWBHojWqSB92aVoo6W3Rb45INy06I8EJDkLrHfnVNaVWlGXgzq9OmEyVeW
	crJYbsbGoFnA6opPzi+25gJmtr3cK8qPq8VY+ZcBUYw==
X-Gm-Gg: ATEYQzxqavso1wf6XkDVoA+/ZcnYuirPxywnkOMg5R5JcwpC7UIOT2o8WVn5tk2KDUX
	IJiUfah5bpHU8+YNxYXOA32IAElXbmFm6n98d+kVREwsq0mU0qaaXNy/XB/u9+AgtL6bHZP1kuo
	79OhddDNhqFtpJjJN2SPc4QSJqzmCIGddwr8HBn9cnrHPau8f8atUuoPXxF0tSTXIU/OVzF/VRp
	3sJMH2ahQxqP0KDvzCk9VSS90EnzXgOyxkEBbuxuZMm1JKXUjv+DZ1wGfSwDORH+pZHlyFcV0Fz
	XlN4NTRJLv3kDEeKGsrp/3t+FjhhXgfuc9JnpA==
X-Received: by 2002:a05:6870:2486:b0:332:1b00:6d5 with SMTP id
 586e51a60fabf-416270b79a8mr1139560fac.39.1772188795628; Fri, 27 Feb 2026
 02:39:55 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772013062.git.bertrand.marquis@arm.com> <0a5f66eaa16f262d4ffad6a8ec4b1b02461f96c1.1772013062.git.bertrand.marquis@arm.com>
In-Reply-To: <0a5f66eaa16f262d4ffad6a8ec4b1b02461f96c1.1772013062.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Fri, 27 Feb 2026 11:39:44 +0100
X-Gm-Features: AaiRm51JF90RxqO2uRLppLmMZ0QLQBVcD5zM6vQKFBbZgdtuNotFTKW02KTdOlA
Message-ID: <CAHUa44FSq6aHTO=HWNOB1Qa5keuEfmhwpSW4hRjVgQdUX0fjmA@mail.gmail.com>
Subject: Re: [PATCH 2/4] xen/arm: ffa: Cache SP partition info at init
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 Wed, Feb 25, 2026 at 11:02=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FFA_PARTITION_INFO_GET currently queries the SPMC on each call and walks =
the
> RX buffer every time. The SP list is expected to be static, so repeated
> firmware calls and validation are unnecessary.
>
> Cache the SPMC partition-info list at init time, keeping only secure
> endpoints, and reuse the cached entries for SP count and partition-info
> responses. Initialize the VM create/destroy subscriber lists from the cac=
hed
> list and free the cache on init failure.
>
> SP partition info now reflects the init-time snapshot and will not change=
.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 205 +++++++++++++++++++++-----------
>  1 file changed, 138 insertions(+), 67 deletions(-)
>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index 6a6f3ffb822e..8a3eac25f99f 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -6,6 +6,7 @@
>  #include <xen/const.h>
>  #include <xen/sizes.h>
>  #include <xen/types.h>
> +#include <xen/xmalloc.h>
>
>  #include <asm/smccc.h>
>  #include <asm/regs.h>
> @@ -33,6 +34,10 @@ static uint16_t subscr_vm_created_count __read_mostly;
>  static uint16_t *subscr_vm_destroyed __read_mostly;
>  static uint16_t subscr_vm_destroyed_count __read_mostly;
>
> +/* SP list cache (secure endpoints only); populated at init. */
> +static void *sp_list __read_mostly;
> +static uint32_t sp_list_count __read_mostly;
> +static uint32_t sp_list_entry_size __read_mostly;
>  static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t fla=
gs,
>                                        uint32_t *count, uint32_t *fpi_siz=
e)
>  {
> @@ -79,92 +84,78 @@ static int32_t ffa_copy_info(void **dst, void *dst_en=
d, const void *src,
>      return FFA_RET_OK;
>  }
>
> -static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count=
)
> +static bool ffa_sp_entry_matches_uuid(const void *entry, struct ffa_uuid=
 uuid)
>  {
> -    uint32_t src_size;
> +    const struct ffa_partition_info_1_1 *fpi =3D entry;
> +    struct ffa_uuid sp_uuid;
> +
> +    if ( ffa_uuid_is_nil(uuid) )
> +        return true;
>
> -    return ffa_partition_info_get(uuid, FFA_PARTITION_INFO_GET_COUNT_FLA=
G,
> -                                  sp_count, &src_size);
> +    if ( sp_list_entry_size < sizeof(*fpi) )
> +        return false;

This can never happen since we don't accept SPMC below version 1.1. We
even have a check to ensure the SPMC doesn't return a too-small
spi_size.

> +
> +    memcpy(&sp_uuid, fpi->uuid, sizeof(sp_uuid));
> +    return ffa_uuid_equal(uuid, sp_uuid);
>  }
>
> -static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_co=
unt,
> -                                   void **dst_buf, void *end_buf,
> -                                   uint32_t dst_size)
> +static int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count=
)
>  {
> -    int32_t ret;
> -    int32_t release_ret;
> -    uint32_t src_size, real_sp_count;
> -    void *src_buf;
>      uint32_t count =3D 0;
> -    bool notify_fw =3D false;
> -
> -    /* We need to use the RX buffer to receive the list */
> -    src_buf =3D ffa_rxtx_spmc_rx_acquire();
> -    if ( !src_buf )
> -        return FFA_RET_DENIED;
> -
> -    ret =3D ffa_partition_info_get(uuid, 0, &real_sp_count, &src_size);
> -    if ( ret )
> -        goto out;
> -    notify_fw =3D true;
> +    uint32_t n;
>
> -    /* Validate the src_size we got */
> -    if ( src_size < sizeof(struct ffa_partition_info_1_0) ||
> -         src_size >=3D FFA_PAGE_SIZE )
> +    for ( n =3D 0; n < sp_list_count; n++ )
>      {
> -        ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out;
> +        void *entry =3D sp_list + n * sp_list_entry_size;
> +
> +        if ( ffa_sp_entry_matches_uuid(entry, uuid) )
> +            count++;
>      }
>
> -    /*
> -     * 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 add=
ed
> -     * since boot.
> -     */
> -    if ( real_sp_count > FFA_MAX_NUM_SP )
> -        real_sp_count =3D FFA_MAX_NUM_SP;
> +    *sp_count =3D count;
>
> -    /* Make sure the data fits in our buffer */
> -    if ( real_sp_count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / src_siz=
e )
> -    {
> -        ret =3D FFA_RET_NOT_SUPPORTED;
> -        goto out;
> -    }
> +    if ( !ffa_uuid_is_nil(uuid) && !count )
> +        return FFA_RET_INVALID_PARAMETERS;
>
> -    for ( uint32_t sp_num =3D 0; sp_num < real_sp_count; sp_num++ )
> -    {
> -        struct ffa_partition_info_1_1 *fpi =3D src_buf;
> +    return FFA_RET_OK;
> +}
>
> -        /* filter out SP not following bit 15 convention if any */
> -        if ( FFA_ID_IS_SECURE(fpi->id) )
> -        {
> -            /*
> -             * If VM is 1.0 but firmware is 1.1 we could have several en=
tries
> -             * with the same ID but different UUIDs. In this case the VM=
 will
> -             * get a list with several time the same ID.
> -             * This is a non-compliance to the specification but 1.0 VMs=
 should
> -             * handle that on their own to simplify Xen implementation.
> -             */
> +static int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_co=
unt,
> +                                   void **dst_buf, void *end_buf,
> +                                   uint32_t dst_size)
> +{
> +    int32_t ret;
> +    uint32_t count =3D 0;
> +    uint32_t n;
>
> -            ret =3D ffa_copy_info(dst_buf, end_buf, src_buf, dst_size, s=
rc_size);
> -            if ( ret )
> -                goto out;
> +    for ( n =3D 0; n < sp_list_count; n++ )
> +    {
> +        void *entry =3D sp_list + n * sp_list_entry_size;
>
> -            count++;
> -        }
> +        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
> +            continue;
>
> -        src_buf +=3D src_size;
> +        /*
> +         * If VM is 1.0 but firmware is 1.1 we could have several entrie=
s
> +         * with the same ID but different UUIDs. In this case the VM wil=
l
> +         * get a list with several time the same ID.
> +         * This is a non-compliance to the specification but 1.0 VMs sho=
uld
> +         * handle that on their own to simplify Xen implementation.
> +         */
> +        ret =3D ffa_copy_info(dst_buf, end_buf, entry, dst_size,
> +                            sp_list_entry_size);
> +        if ( ret )
> +            return ret;
> +
> +        count++;
>      }
>
>      *sp_count =3D count;
>
> -out:
> -    release_ret =3D ffa_rxtx_spmc_rx_release(notify_fw);
> -    if ( release_ret )
> -        gprintk(XENLOG_WARNING,
> -                "ffa: Error releasing SPMC RX buffer: %d\n", release_ret=
);
> -    return ret;
> +    if ( !ffa_uuid_is_nil(uuid) && !count )
> +        return FFA_RET_INVALID_PARAMETERS;
> +
> +    return FFA_RET_OK;
>  }
>
>  static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_=
index,
> @@ -435,6 +426,14 @@ static int32_t ffa_direct_req_send_vm(uint16_t sp_id=
, uint16_t vm_id,
>      return res;
>  }
>
> +static void ffa_sp_list_cache_free(void)
> +{
> +    XFREE(sp_list);
> +    sp_list =3D NULL;

XFREE() is already setting sp_list to NULL.

> +    sp_list_count =3D 0;
> +    sp_list_entry_size =3D 0;
> +}
> +
>  static void uninit_subscribers(void)
>  {
>          subscr_vm_created_count =3D 0;
> @@ -443,6 +442,68 @@ static void uninit_subscribers(void)
>          XFREE(subscr_vm_destroyed);
>  }
>
> +static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
> +                                   uint32_t fpi_size)
> +{
> +    const uint8_t *src =3D buf;
> +    uint32_t secure_count =3D 0;
> +    uint32_t n, idx =3D 0;
> +    bool warned =3D false;
> +
> +    if ( fpi_size < sizeof(struct ffa_partition_info_1_0) ||
> +         fpi_size >=3D FFA_PAGE_SIZE )
> +        return false;

Would it make sense to check that fpi_size is well aligned with struct
ffa_partition_info_1_0? If it's an odd size, we'll make unaligned
accesses below with memcpy(). But perhaps that's a bit much. The SPMC
isn't supposed to provide garbage.

> +
> +    if ( count > (FFA_RXTX_PAGE_COUNT * FFA_PAGE_SIZE) / fpi_size )
> +        return false;
> +
> +    for ( n =3D 0; n < count; n++ )
> +    {
> +        const struct ffa_partition_info_1_0 *fpi =3D
> +            (const void *)(src + n * fpi_size);
> +
> +        if ( !FFA_ID_IS_SECURE(fpi->id) )
> +        {
> +            if ( !warned )

Is this needed? Doesn't printk_once() already ensure this? Or did you
happen to leave printk_once() by mistake and meant for this to be
printed once each time ffa_sp_list_cache_init() is called, since
"warned" isn't static.

> +            {
> +                printk_once(XENLOG_ERR
> +                            "ffa: Firmware is not using bit 15 conventio=
n for IDs !!\n");
> +                warned =3D true;
> +            }
> +            printk(XENLOG_ERR
> +                   "ffa: Secure partition with id 0x%04x cannot be used\=
n",
> +                   fpi->id);
> +            continue;
> +        }
> +
> +        secure_count++;
> +    }
> +
> +    if ( secure_count )
> +    {
> +        sp_list =3D xzalloc_bytes(secure_count * fpi_size);
> +        if ( !sp_list )
> +            return false;
> +    }
> +
> +    sp_list_count =3D secure_count;
> +    sp_list_entry_size =3D fpi_size;
> +
> +    for ( n =3D 0; n < count; n++ )
> +    {
> +        const struct ffa_partition_info_1_0 *fpi =3D
> +            (const void *)(src + n * fpi_size);
> +
> +        if ( !FFA_ID_IS_SECURE(fpi->id) )
> +            continue;
> +
> +        memcpy(sp_list + idx * fpi_size, fpi, fpi_size);
> +        idx++;
> +    }
> +
> +    return true;
> +}
> +
>  static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_siz=
e)
>  {
>      uint16_t n;
> @@ -549,12 +610,22 @@ bool ffa_partinfo_init(void)
>          goto out;
>      }
>
> -    ret =3D init_subscribers(spmc_rx, count, fpi_size);
> +    if ( !ffa_sp_list_cache_init(spmc_rx, count, fpi_size) )
> +    {
> +        printk(XENLOG_ERR "ffa: Failed to cache SP list\n");
> +        goto out;
> +    }
> +
> +    ret =3D init_subscribers(sp_list, sp_list_count, sp_list_entry_size)=
;
>
>  out:
>      e =3D ffa_rxtx_spmc_rx_release(notify_fw);
>      if ( e )
>          printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n=
", e);
> +    if ( !ret )
> +        uninit_subscribers();

ret is initially false and can only be set to true if
init_subscribers() returns true. So there's never any point in calling
uninit_subscribers().

> +    if ( !ret )
> +        ffa_sp_list_cache_free();

ret can be false even if ffa_sp_list_cache_init() hasn't been called
yet. Calling ffa_sp_list_cache_free() anyway is harmless, but not
elegant.

Cheers,
Jens

>      return ret;
>  }
>
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 10:58:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 10:58:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242578.1542998 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvYH-0005MV-Qh; Fri, 27 Feb 2026 10:58:33 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242578.1542998; Fri, 27 Feb 2026 10:58: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 1vvvYH-0005Lz-Ln; Fri, 27 Feb 2026 10:58:33 +0000
Received: by outflank-mailman (input) for mailman id 1242578;
 Fri, 27 Feb 2026 10:58: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=kH+Z=A7=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vvvYG-0004x2-OW
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 10:58:32 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 3fccfa9a-13cb-11f1-9ccf-f158ae23cfc8;
 Fri, 27 Feb 2026 11:58:30 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id 1CD1B81CEB9E;
 Fri, 27 Feb 2026 05:57:58 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3fccfa9a-13cb-11f1-9ccf-f158ae23cfc8
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 3/4] tools/tests/x86_emulator: fix undefined behaviour in shift
Date: Fri, 27 Feb 2026 10:58:22 +0000
Message-ID: <cdd62288eed6b147e6c3e6d2c402de36cf3ce42a.1772189234.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1772189234.git.edwin.torok@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes this `-fsanitize=undefined` error:
```
test_x86_emulator.c:1103:32: runtime error: left shift of 573785183 by 2 places cannot be represented in type 'int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior test_x86_emulator.c:1103:32
```

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/x86_emulator/test_x86_emulator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c
index 8f93a8bbcd..3a03ea0352 100644
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -1100,7 +1100,7 @@ int main(int argc, char **argv)
     regs.edi    = (unsigned long)res;
     rc = x86_emulate(&ctxt, &emulops);
     if ( (rc != X86EMUL_OKAY) ||
-         (*res != ((0x2233445F << 2) | 2)) ||
+         (*res != ((0x2233445FUL << 2) | 2)) ||
          ((regs.eflags & (EFLAGS_MASK & ~X86_EFLAGS_OF))
           != EFLAGS_ALWAYS_SET) ||
          (regs.eip != (unsigned long)&instr[3]) )
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 10:58:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 10:58:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242574.1542959 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvYE-0004VC-Np; Fri, 27 Feb 2026 10:58:30 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242574.1542959; Fri, 27 Feb 2026 10:58: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 1vvvYE-0004V5-Jg; Fri, 27 Feb 2026 10:58:30 +0000
Received: by outflank-mailman (input) for mailman id 1242574;
 Fri, 27 Feb 2026 10: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=kH+Z=A7=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vvvYD-0004Ur-2r
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 10:58:29 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3e74d17c-13cb-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 11:58:28 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id C298D81CEB9E;
 Fri, 27 Feb 2026 05:57:55 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3e74d17c-13cb-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 0/4] Fix building tools/tests/x86_emulator with clang-21
Date: Fri, 27 Feb 2026 10:58:19 +0000
Message-ID: <cover.1772189234.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Changed since v1:
 * filed upstream bug and added reference for integrated-as issue
 * use .ifndef directive instead of volatile workaround
 * fixed 2 more undefined behaviour warnings from fsanitize=undefined

This makes the tests build (but not yet run) with clang.

I dropped the ifdef __clang__ patch:  compiling just x86-emulate.c with
clang and the rest with GCC fails too, so there are probably some
implicit assumptions about x86_emulate not modifying some registers (but
when compiled with clang it does). I don't have a good solution for
these, and I don't understand what most of these tests are trying to
test.
For example I don't see how this tests the result of the emulator,
where rc is entirely computed by the asm block (and with clang the
result here is 0xfffe instead of 0xffff):
```
        asm volatile ( "pcmpeqb %%xmm1, %%xmm1\n"
                       put_insn(movq_from_mem2, "movq 32(%0), %%xmm1")
                       :: "c" (NULL) );

        set_insn(movq_from_mem2);
        rc = x86_emulate(&ctxt, &emulops);
        if ( rc != X86EMUL_OKAY || !check_eip(movq_from_mem2) )
            goto fail;
        asm ( "pcmpgtb %%xmm0, %%xmm0\n\t"
              "pcmpeqb %%xmm1, %%xmm0\n\t"
              "pmovmskb %%xmm0, %0" : "=r" (rc) );
        if ( rc != 0xffff )
            goto fail;
```

After fixing the bugs reported by UBSAN/MSAN (and disabling the memset
wrapper which causes it to infloop) the tests still fail.
Using -Os doesn't help either.

valgrind also fails here, but that could be a bug in valgrind:
Testing mulx (%eax),%ecx,%ebx...        failed!

Edwin Török (4):
  tools/tests/x86_emulator: avoid duplicate symbol error with clang
  tools/tests/x86_emulator: fix build on clang-21
  tools/tests/x86_emulator: fix undefined behaviour in shift
  tools/tests/x86_emulator: avoid passing NULL to memcpy

 tools/tests/x86_emulator/Makefile            |  5 +++++
 tools/tests/x86_emulator/test_x86_emulator.c | 14 ++++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)

-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 10:58:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 10:58:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242577.1542981 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvYG-0004yp-Hq; Fri, 27 Feb 2026 10:58:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242577.1542981; Fri, 27 Feb 2026 10:58: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 1vvvYG-0004xQ-DR; Fri, 27 Feb 2026 10:58:32 +0000
Received: by outflank-mailman (input) for mailman id 1242577;
 Fri, 27 Feb 2026 10:58: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=kH+Z=A7=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vvvYF-0004Ur-O5
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 10:58:31 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 404897f6-13cb-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 11:58:31 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id D996381CEB9F;
 Fri, 27 Feb 2026 05:57:58 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 404897f6-13cb-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 4/4] tools/tests/x86_emulator: avoid passing NULL to memcpy
Date: Fri, 27 Feb 2026 10:58:23 +0000
Message-ID: <340f6a9fc4fdd4216f41e4bbdb1234069322d1c8.1772189234.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1772189234.git.edwin.torok@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fixes this `-fsanitize=undefined` error:
```
test_x86_emulator.c:614:12: runtime error: null pointer passed as argument 1, which is declared to never be null
/usr/include/string.h:44:28: note: nonnull attribute specified here
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior test_x86_emulator.c:614:12
```

Although this is more of a grey area: I don't see anything in the
standard that'd forbid calling `memset` with NULL and 0, but `glibc`
does specify it as non-null, which allows the compiler to make
optimizations assuming it never is NULL, so this is undefined behaviour
only on glibc.
Best to avoid the potential undefined behaviour though.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
 tools/tests/x86_emulator/test_x86_emulator.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c
index 3a03ea0352..87c1289afa 100644
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -611,7 +611,8 @@ static int fetch(
     if ( verbose )
         printf("** %s(CS:%p,, %u,)\n", __func__, (void *)offset, bytes);
 
-    memcpy(p_data, (void *)offset, bytes);
+    if (bytes)
+        memcpy(p_data, (void *)offset, bytes);
     return X86EMUL_OKAY;
 }
 
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 10:58:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 10:58:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242576.1542978 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvYG-0004vr-Au; Fri, 27 Feb 2026 10:58:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242576.1542978; Fri, 27 Feb 2026 10:58: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 1vvvYG-0004vk-6o; Fri, 27 Feb 2026 10:58:32 +0000
Received: by outflank-mailman (input) for mailman id 1242576;
 Fri, 27 Feb 2026 10:58: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=kH+Z=A7=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vvvYE-0004Ur-No
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 10:58:30 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3f63a361-13cb-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 11:58:29 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id 5464281CEBA0;
 Fri, 27 Feb 2026 05:57:57 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3f63a361-13cb-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 2/4] tools/tests/x86_emulator: fix build on clang-21
Date: Fri, 27 Feb 2026 10:58:21 +0000
Message-ID: <e8bd2b2ac25bf3aa25e06a33c01511d040cc8bca.1772189234.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1772189234.git.edwin.torok@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

clang-21's built-in assembler is enabled by default, but it doesn't
support some mnemonics:
```
test_x86_emulator.c:2636:36: error: invalid instruction mnemonic 'fsaves'
 2636 |                        "fidivs %1\n\t"
test_x86_emulator.c:2640:24: error: invalid instruction mnemonic 'frstors'
 2640 |         asm volatile ( "frstors %0" :: "m" (res[25]) : "memory" );
      |                        ^
test_x86_emulator.c:4251:24: error: invalid instruction mnemonic 'vpcmpestriq'
 4251 |                        put_insn(vpcmpestri,
      |                        ^
```

Use the external assembler with Clang for consistency with GCC.

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
Changed since v1:
 * filed upstream bug and added reference
---
 tools/tests/x86_emulator/Makefile | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/tests/x86_emulator/Makefile b/tools/tests/x86_emulator/Makefile
index e18725d0c3..5003c464f3 100644
--- a/tools/tests/x86_emulator/Makefile
+++ b/tools/tests/x86_emulator/Makefile
@@ -297,6 +297,11 @@ x86_emulate:
 
 HOSTCFLAGS-x86_64 := -fno-PIE
 $(call cc-option-add,HOSTCFLAGS-x86_64,HOSTCC,-no-pie)
+
+# clang's integrated as does not support some mnemonics:
+#  https://github.com/llvm/llvm-project/issues/183635
+$(call cc-option-add,HOSTCFLAGS-x86_64,HOSTCC,-no-integrated-as)
+
 HOSTCFLAGS += $(CFLAGS_xeninclude) -I. $(HOSTCFLAGS-$(XEN_COMPILE_ARCH))
 
 x86.h := $(addprefix $(XEN_ROOT)/tools/include/xen/asm/,\
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 10:58:34 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 10:58:34 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242575.1542965 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvYF-0004YU-2B; Fri, 27 Feb 2026 10:58:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242575.1542965; Fri, 27 Feb 2026 10:58: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 1vvvYE-0004XF-QJ; Fri, 27 Feb 2026 10:58:30 +0000
Received: by outflank-mailman (input) for mailman id 1242575;
 Fri, 27 Feb 2026 10: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=kH+Z=A7=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vvvYD-0004Ur-Nn
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 10:58:29 +0000
Received: from na1pdmzitismtp02.tibco.com (unknown [160.101.131.9])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 3eea9b42-13cb-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 11:58:28 +0100 (CET)
Received: from localhost.localdomain (unknown [10.113.40.46])
 by na1pdmzitismtp02.tibco.com (Postfix) with ESMTPS id 8BBEA81CEB9D;
 Fri, 27 Feb 2026 05:57:56 -0500 (EST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 3eea9b42-13cb-11f1-b164-2bf370ae4941
From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>
To: xen-devel@lists.xenproject.org
Cc: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= <edwin.torok@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	=?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>,
	Anthony PERARD <anthony.perard@vates.tech>
Subject: [PATCH v2 1/4] tools/tests/x86_emulator: avoid duplicate symbol error with clang
Date: Fri, 27 Feb 2026 10:58:20 +0000
Message-ID: <358a87d89d50475a57f2a5d6ebea01d95a1df6d7.1772189234.git.edwin.torok@citrix.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <cover.1772189234.git.edwin.torok@citrix.com>
References: <cover.1772189234.git.edwin.torok@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

clang would duplicate the loop body and end up with a double definition
of the symbol:
```
/tmp/test_x86_emulator-0f3576.s:27823: Error: symbol `vmovsh_to_mem' is already defined
/tmp/test_x86_emulator-0f3576.s:27825: Error: symbol `.Lvmovsh_to_mem_end' is already defined
```

Avoid this by only emitting the symbols surrounding the instructions if
they are not already defined. (We know that the definitions would be
identical, and we only need one of them as input to the emulator)

Signed-off-by: Edwin Török <edwin.torok@citrix.com>
---
Changed since v1:
 * use .ifndef directive instead of volatile workaround
---
 tools/tests/x86_emulator/test_x86_emulator.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/tools/tests/x86_emulator/test_x86_emulator.c b/tools/tests/x86_emulator/test_x86_emulator.c
index ea507f9c3a..8f93a8bbcd 100644
--- a/tools/tests/x86_emulator/test_x86_emulator.c
+++ b/tools/tests/x86_emulator/test_x86_emulator.c
@@ -1882,8 +1882,13 @@ int main(int argc, char **argv)
 #define decl_insn(which) extern const unsigned char which[], \
                          which##_end[] asm ( ".L" #which "_end" )
 #define put_insn(which, insn) ".pushsection .test\n" \
-                              #which ": " insn "\n"  \
+                              ".ifndef "#which"\n" \
+                              #which ": \n" \
+                              ".endif\n" \
+                              insn "\n"  \
+                              ".ifndef .L"#which"_end\n" \
                               ".L" #which "_end:\n"  \
+                              ".endif\n" \
                               ".popsection"
 #define set_insn(which) (regs.eip = (unsigned long)(which))
 #define valid_eip(which) (regs.eip >= (unsigned long)(which) && \
@@ -5248,7 +5253,7 @@ int main(int argc, char **argv)
         memset(res + 3, ~0, 8);
         regs.eax = (unsigned long)res;
         regs.ecx = ~0;
-        for ( i = 0; i < 2; ++i )
+        for (i = 0; i < 2; ++i )
         {
             decl_insn(vmovsh_to_mem);
 
-- 
2.47.3



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 11:02:16 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 11:02:16 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242640.1543008 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvbr-000868-9u; Fri, 27 Feb 2026 11:02:15 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242640.1543008; Fri, 27 Feb 2026 11:02:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvbr-000861-6E; Fri, 27 Feb 2026 11:02:15 +0000
Received: by outflank-mailman (input) for mailman id 1242640;
 Fri, 27 Feb 2026 11: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=kH+Z=A7=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vvvbp-00085v-Tn
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 11:02:14 +0000
Received: from BL2PR02CU003.outbound.protection.outlook.com
 (mail-eastusazlp17011000f.outbound.protection.outlook.com
 [2a01:111:f403:c100::f])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c4f9c382-13cb-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 12:02:13 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by DM6PR03MB4923.namprd03.prod.outlook.com (2603:10b6:5:1e9::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Fri, 27 Feb
 2026 11:02:10 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9654.014; Fri, 27 Feb 2026
 11:02: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: c4f9c382-13cb-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=AoyvckcqgRfGy+eKCF6V4kk5EdBMEFzc/BxgWCY24RFD+5xaAXVBWcwwIeLopFi0fINRs00drUPnRArJPrEN5LAhhGxPmaoimQqK1S1jRypbe2gOkRHrdLXQmBrl3t56CPuLXQUerZpxoECPAbEVO0a+QakSi9rTgLVRExbPV/Ke+0knMK5PdmNychDSU9M/pOUdUae4RRZq+qRvRuJVbsJ2aNBFlBx9M26mD/DZSJ46E83DCA1nd6SnIsthUAgIMet8izUJqymszoXPt2QInSWWQFM3Z4cr8kP3ZxQUpScwDa3zyvyO/zkcNdUAGez6ZdoufgIf6KSE8Dp6h+mb3Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=VieBk6WB2QifDcprt9gfEyDWJb8rsVZCdEIdAij67CQ=;
 b=gTKNM23UFdrPAhOQAPkkPGYCh11M4TOvTbw/CpMiLhljZ3/TTILmsBy3+GbxuuHAzwJiZpGpOP+BNZtJVddJm4S9Vv2RMV5ohCb3GMT2vRKSHXYMUkHFmen5gZaOn2AroQpcvnD/HzwdwctIGhMKG0U7no+dKXYazuTHg6eyyteNhD5REmXi63Iem08uBaYLsCewYLyeXlEsIo6AlbgeMH6W1FxUcxLUGdUegTEFwTn8M5tjqv5akELoYrtuyvj1OctsvQbkEGcbTaUhnvnMdJZBYT+GL3cKN5qrSXB4ZOl4H1DP3QX/ljTXWMTMZb9SdHCvj9gyeyJMzfYMkEK12A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=VieBk6WB2QifDcprt9gfEyDWJb8rsVZCdEIdAij67CQ=;
 b=YNqJV66NgqJcEL1gZ9lTVUYujsCYKcJb42lmrA5WSJH7pY/VAGKFJ4n+AjFNBNypbZbAdnC2KhJ9KZqDQ0H3Xa4epo34Ua2yTjljgUIij6eU41qfH+npSREn89Wm7CPciqBrIW4BLhvDutPW3xfSUV4odNDv92Kj/fgfH6M64BM=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Andrew Cooper <andrew.cooper3@citrix.com>, Roger Pau Monne
	<roger.pau@citrix.com>, Anthony PERARD <anthony.perard@vates.tech>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH 4/4] tools/tests/x86_emulator: disable xmm* tests on clang
Thread-Topic: [PATCH 4/4] tools/tests/x86_emulator: disable xmm* tests on
 clang
Thread-Index: AQHcpKvkOO1o8Mk+1keRFSkNkxjvgbWQdKUAgAEjoACAAAPdgIAEy4EA
Date: Fri, 27 Feb 2026 11:02:10 +0000
Message-ID: <10B1B7D9-352F-4203-AC30-88EF674114F5@citrix.com>
References: <cover.1771840208.git.edwin.torok@citrix.com>
 <9e380de50b64e45e9044a2f4bcf1a5bdb7e74a29.1771840208.git.edwin.torok@citrix.com>
 <7f6cca68-f681-41ce-8d2c-2f4854510759@suse.com>
 <E1E1F4B3-C0FE-4077-A6E1-738056D5B370@citrix.com>
 <72f6e508-c75a-4aaa-a727-8cfeaa204d8e@suse.com>
In-Reply-To: <72f6e508-c75a-4aaa-a727-8cfeaa204d8e@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|DM6PR03MB4923:EE_
x-ms-office365-filtering-correlation-id: 823aad22-0360-45bb-09f1-08de75efa7b2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|38070700021;
x-microsoft-antispam-message-info:
 SgkZ84s3taDzBU8E6DSq/38HF63mi1CRfh/V0n6Wztqn596nfhLga3Doa5mR5wNWJw2mQmoB/lEvqnH939acAXhS3uoy6xUeAtveKP9Wj4KZ/PyHuk2aldwhN3KNrFNQx2gankmh73tqCGVx4MOkGEu4zd5TQ4k8JGijleveHlJrCcuYZt3eKhTgZ44WkYL6Us9B4aEDsfek9XsKQjU1rDLNfDoR0glEeHe+TUS7QqNUC4FK7lro9RHwYEiDAAiq0GSyyucGzdJQrF7+gJS6JI/WltjJQEjbsSfV/69i0mknGP+9Y24fVxXwe6Y6CqJ/ZrMV0s7UyRbHGxoX+zdbTZiSGnVgNNElCn+kNjxI2paTUa7aXf/L3RWAPIKJSfedmWWJjyMys/kutwBEuAH+B9664IUV+aaiQmOWAn9D+lDroyoiXahz9yDQJikbItrZkrXJD5rixQb+apwJJ8t3OkLsRN2T+Mcg7jSj2vppNrTOSecC6NGtHQ9sq/78iHy0sY7suPz2K8TR0FeQzrixrN05tmSj3oGNbTKiGqY9bMlUtZh4J3j5Qq76KIbKdgoD0e1kOcrpz78wd5QZF4ItRWnHs5NW2vp77qOOESuIH9z1M10GTfgKAdQ80Lb5KmGvJeM1vRg9aml19Ra8bFO9/NaDjk0bUoLdwysv/QyJJebMZbPGZ3ZVeAU33XMOXbxVMNNsP5l3gniZHJb2lQ0N21kmGN+RbBLMjceJZrbfD/ANlHged5F6D5sQwQWk9mXF4ge0e0Iv0HOKeRlr5ym0s8CrEowbBTBxhfOy8u6yt+Y=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?MnFFSGpxQllyUzdWbXMzcWdDQjhqQjFxaW5GS3BGNWZXMXFLbFJBbWlRREdN?=
 =?utf-8?B?M1MyRDVDaVZkOTg0U1RjNUJhQVVUNlZ6Z2x0aGF3cXR4SnNaRlJBcnVMdmUy?=
 =?utf-8?B?M2QzK0hQYXVrcEMwQys3ZmVSZHZmZGVaZEpJZlJqNnExR1FrL3JXM3orU3VC?=
 =?utf-8?B?RC9TSDNBV08zaHNZODRwdGsrcCtXZEdFcnN6WSs0eUZCb0cwcmUzcUNqSWsy?=
 =?utf-8?B?MUU5cW9QQW5JSjl4OHVZZHpxZWZna05iQlhpZTR3ejFRY2c1eEhnRW52ZE5t?=
 =?utf-8?B?TUtXWXdvVUNYSWdva0ZwTkx5SE1WWGNUU3Z5Uzg3NjJ2WHV6bkc0LzNtNngx?=
 =?utf-8?B?b2Zxam1mL3dLK2NwSnF4eUh1aVlOSTUvMU4wNUJXSUlWQXgvWUY2RDVTeE9G?=
 =?utf-8?B?YzZyVnF0K3lINmVoRW5wdUZZZGRVaHVuSFFnUGJoRGhRcThmWVdpS0RCQ3J2?=
 =?utf-8?B?c1JxZzVEenRSa0NMaGp0QTlDQmFjZFV1U2NYWERLdHp5NXd0WGFha0JjTVBz?=
 =?utf-8?B?T1J4Q21pK1BrQlkvY0JPTVZ5d1ZoVExSWEFNcUlxdUI4VmVBN2tjTW5vQlI5?=
 =?utf-8?B?WnJHYXJybmFsbFlqWnhzMDR6TmRnU3pCMTVmQUZJWk15LzlBbWx5a3UrQXJN?=
 =?utf-8?B?dHdaU1pSbksycHdQOTY5RUFJQnlTeXJpN05HOVB0anhxVWx2TVkrV1dSMEU1?=
 =?utf-8?B?QWNONm5qZ29Jd2FwdExpc3kxanZoc1J1ZzVYbGNTNXgyMGowa1ZsWVVyL2tm?=
 =?utf-8?B?dzg4dlYwOXhOeS9DU2xkTkEveWFzRG5uUisyYzVVek1Qa2RqMUo3SHlaYTE3?=
 =?utf-8?B?WjVmcTc3ME1KSHFWRnhGRkJIUmhnYXpXaEt1MjdDL3pOdlE1MWVSSnFFVmJR?=
 =?utf-8?B?MGtHdkNHNDljZmcyMGtOTTlEV2J2QklxYUU2V0RGZ0RRemI2eWhFNHR4ZE1B?=
 =?utf-8?B?ODc3TVVIMzFEdWthM2VwQnlnakdEUjNudjFEMGVJcFg0VnBiK01HK2lWYmZa?=
 =?utf-8?B?Mjh3cm1PVmptWHZuU09kay8vNlV0R2oyTmZJaTRsYnVvb2lmWWlKN0x0YXJN?=
 =?utf-8?B?bzQ2N21Mdi9VYVptVnpQY2VuRXhOamJsMjJHaUFpUHlGN1JHaHFXZWdsVFFF?=
 =?utf-8?B?bUk1Wk80QmdPTHdNLzBqS2E4SzBzNU5VcHc5Zk1aTERrR285WklJdGxpWkJ6?=
 =?utf-8?B?YWI2cEZsdHZjRGhueHg0MDJlOElkYXdrVlpvbFlRaEowYUpIdVFhY1UyQ3NH?=
 =?utf-8?B?MnRKL01NQ2R6WWFaNVlBZVJjYmpaMk1KWUtKTWUyRW93ZGRpM2ppVEVNb2pJ?=
 =?utf-8?B?RXhMR1FSNXFycEd0QU9nalRCZTlzY2FkemMwMzMxbE9iNktnZVFPRlpvTmJD?=
 =?utf-8?B?b3ZDamxvcVZyV3pmTkNaYWJod3FGVDh2M1Nkd0F2TEhJODMvc3I5WmVlbjBH?=
 =?utf-8?B?NXZ4ZE8vaWNJbDdRa1VIQ3hwdWVLd3JPTUMrOHNsOTRpYUE3R1VGa014eHBp?=
 =?utf-8?B?VG5CbnpQL3puOG9rRk50MU91M1l5NUxDdjdSUUk4eEVLVzc2ZkdZVXRYQ2Uv?=
 =?utf-8?B?NVNqVkNkTHZIS1Zqb2ppVmYzS3ZuRUVpVWtJZFdxUUlJeFEvRjYzMk5ya2w2?=
 =?utf-8?B?Z0t5V3N3N1BaQjFieWdHcC92cVU2aFN5YTRsOWdyYk14T3NLL3ZFZkVJK0NG?=
 =?utf-8?B?dFhtOFBaTEtTcHZJZld2QWc1aUs1VG5NaHpQWHFMOU1EblY4YXFmb2s3VDBE?=
 =?utf-8?B?VjdhSXhPcTF5cFRHL29FK0ZNclZwQzY1cUN6b3pHWjkydnFxOVRzNStmYytN?=
 =?utf-8?B?aG5RZUZ4YnN1bGxnQy9td2xSZGpwVkl1QjE0TVkyYmN4blpCSXBQbjdBdFF4?=
 =?utf-8?B?dFhWZWRka3hkZmFrMzd4dHhhZGgvUW0wVE1RRFBySTNjZ3YydWlzc0hJVG5U?=
 =?utf-8?B?T0hJcFF4RnVCd1JLREhuZXVpaVQ1ejFWMm9oNjRSd3h5YkNpZU1ZajRmaisx?=
 =?utf-8?B?ZEhwYnlOVDMrZTdCdXpvMFhMQXFuK3EwY2wwR3BZd2RrVHg3VmdpWjFvQjJV?=
 =?utf-8?B?cUh2VjJZc0JTVkdyeksrcm8xL28vWXpRVnVnaDR5Mi9NOXhkUDBCZEszRSt1?=
 =?utf-8?B?LzVIb3lXUm9laWVzMmo2MFFZcjVGVW1leVZ6VlBWZU03Y3hRQkRTVDVKMjhR?=
 =?utf-8?B?T3Y1QUZ6ZEMvdHNqbHl0ZVhGdGJ4STlmWm00ZnRDNElpcWNkQnF5MXFla1VD?=
 =?utf-8?B?cjFyZTJTaXJYelc2ZklVY2s4Z2N2Mk5IMUZ1RnV3ZkJkMVhWT3FFUkk0M0x0?=
 =?utf-8?B?aXRaQWdTcndneDJYcGx5TXpNN2FaNjNjeVFSL01oWTdZU1lVclRCSGptMFY4?=
 =?utf-8?Q?P80ZTXCnb/59nPvA=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <040FC6131E204442B5D6EE2C6981211F@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 823aad22-0360-45bb-09f1-08de75efa7b2
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2026 11:02:10.3690
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Bu+WrIbO5AbdaefZg+Ivs5XeI+i2uoRr2wsrY6B72s6NNHsm0uQT14O1Bd7P4axGj6pH5WYpU7WPBKDiv3pLbw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4923

DQo+IE9uIDI0IEZlYiAyMDI2LCBhdCAwOTo0OCwgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPiB3cm90ZToNCj4gDQo+IE9uIDI0LjAyLjIwMjYgMTA6MzQsIEVkd2luIFRvcm9rIHdyb3Rl
Og0KPj4+IE9uIDIzIEZlYiAyMDI2LCBhdCAxNjoxMCwgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1
c2UuY29tPiB3cm90ZToNCj4+PiBPbiAyMy4wMi4yMDI2IDExOjA0LCBFZHdpbiBUw7Zyw7ZrIHdy
b3RlOg0KPj4+PiBjbGFuZy0yMSBkb2Vzbid0IHN1cHBvcnQgYC1mZml4ZWQteG1tMGAsIHNvIGAl
eG1tMGAgd29uJ3QgaGF2ZSB0aGUNCj4+Pj4gZXhwZWN0ZWQgdmFsdWUuDQo+Pj4+IERpc2FibGUg
dGhlc2UgdGVzdHMgb24gY2xhbmcuDQo+Pj4gDQo+Pj4gSSBkb24ndCB0aGluayB0aGF0J3Mgd2hh
dCB3ZSB3YW50LCBhbmQgbm90IG9ubHkgYmVjYXVzZSBvZiB0aGUgY2x1dHRlciB0aGUNCj4+PiB2
YXJpb3VzICNpZmRlZiBjYXVzZS4gV2Ugd2FudCB0byBiZSBhYmxlIHRvIHJ1biBhcyBtYW55IG9m
IHRoZSB0ZXN0cyBhcw0KPj4+IHBvc3NpYmxlLCBzbyB0aGUgZmlyc3QgZ29hbCBzaG91bGQgYmUg
dG8gZmluZCBzb21lIGFsdGVybmF0aXZlIG1lY2hhbmlzbSB0bw0KPj4+IGFjaGlldmUgdGhlIHNh
bWUgZWZmZWN0LiBBIGdsb2JhbCByZWdpc3RlciB2YXJpYWJsZSBjb21lcyB0byBtaW5kIGFzIGEN
Cj4+PiBwb3NzaWJsZSBvcHRpb24uDQo+Pj4gDQo+Pj4gRnVydGhlciwgaG93IGRpZCB5b3UgYXJy
aXZlIGF0IHdoaWNoIHRlc3RzIG5lZWQgc3VwcHJlc3Npbmc/DQo+PiANCj4+IEkgdXNlZCBnZGIg
dG8gbG9vayBhdCB0aGUgMiBtZW1vcnkgYXJlYXMsIGFuZCBub3RpY2VkIHRoYXQgdGhlIFhNTSBy
ZWdpb24gd2FzIGRpZmZlcmVudCBiZXR3ZWVuIGVtdWxhdGVkIGFuZCBhY3R1YWwgd2hlbiBidWls
dCB3aXRoIGNsYW5nLg0KPj4gVGhlbiBJIG5vdGljZWQgdGhlIGJ1aWxkIGZhaWx1cmVzIGR1ZSB0
byB0aGUgbGFjayBvZiBmaXhlZC14bW0wLg0KPj4gVGhlbiBJIGFkZGVkIHRoZSBpZmRlZnMgb25l
IGJ5IG9uZSBhcyBJIHJhbiB0aGUgdGVzdCB1bnRpbCB0aGUgd2hvbGUgdGVzdCBwcm9ncmFtIHBh
c3NlZCB3aXRob3V0IGZhaWx1cmUuDQo+PiBJIHRyaWVkIGFkZGluZyBzb21lIOKAmHB4b3IgeG1t
MCwgeG1tMOKAmSBpbnRvIHRoZSBjcHVfaGFzX3NzZTIgc2VjdGlvbnMsIGJ1dCB0aGF0IGRpZG7i
gJl0IHJlYWxseSB3b3JrIGVpdGhlci4NCj4+IA0KPj4gQWx0aG91Z2ggSSBtYXkgaGF2ZSBiZWVu
IG1pc2xlZCBieSB0aGUgb3ZlcmxhcHBpbmcgcmVnaW9uLCBzZWUgYmVsb3cuDQo+PiANCj4+PiBJ
IGRvbid0IHRoaW5rDQo+Pj4gd2UgcmVseSBvbiBhbiAiZXhwZWN0ZWQgdmFsdWUiIGFueXdoZXJl
LiBJIGRvbid0IGV2ZW4gcmVjYWxsIHVzIHBhc3NpbmcNCj4+PiAtZmZpeGVkLXhtbTAgd2hlbiBj
b21waWxpbmcgdGVzdF94ODZfZW11bGF0ZS5jLg0KPj4gDQo+PiBZZXMsIEnigJltIHN1cnByaXNl
ZCBpdCB3b3JrcyB3aXRoIEdDQy4gQnV0IG1heWJlIG9ubHkgYmVjYXVzZSB0aGUgZW11bGF0b3Ig
b3ZlcndyaXRlcyB0aGUgYWN0dWFsIEZYU0FWRSBhcmVhIGNvcnJlc3BvbmRpbmcgdG8gWE1NLg0K
Pj4gWE1NMCBiZWdpbnMgYXQgb2Zmc2V0IDE2MCwgYW5kIDB4MTAwIC0gMHg4MCA9IDEyOC4NCj4+
IEFGQUlDVCB0aGUgYWN0dWFsIGV4ZWN1dGlvbiBzdG9yZXMgaXRzIHJlc3VsdCBhdCBbMHg4MCwg
MHg4MCsweDIwMCksIGFuZCB0aGUgZW11bGF0b3Igc3RvcmVzIGl0cyByZXN1bHQgaW50byBbMHgx
MDAsIDB4MTAwKzB4MjAwKS4NCj4+IFNvIHRoZSBlbXVsYXRvciB3aWxsIG92ZXJ3cml0ZSBzb21l
IG9mIHRoZSB2YWx1ZXMgZnJvbSB0aGUgYWN0dWFsIHJ1bi4gDQo+PiANCj4+IFRoaXMgb25seSB3
b3JrcyBpZiB0aGUgZW5kIG9mIHRoZSBGWFNBVkUgYXJlYSBsb29rcyBsaWtlIGl0cyBiZWdpbm5p
bmcgKGkuZS4gaWYgRkNXL0ZTVy9ldGMuIGhhcHBlbnMgdG8gbWF0Y2ggTU02L2V0Yy4pDQo+IA0K
PiBBcmUgeW91IHBvc3NpYmx5IG92ZXJsb29raW5nIHRoZSBmYWN0IHRoYXQgcmVzW10gaXMgYW4g
YXJyYXkgb2YgdW5zaWduZWQgaW50IGVsZW1lbnRzLA0KPiBpLmUuIHRoZSBvZmZzZXRzIHVzZWQg
aW4gc291cmNlIGNvZGUgYWxsIG5lZWQgdG8gYmUgbXVsdGlwbGllZCBieSA0IHRvIGdpdmUgb2Zm
c2V0cyBpbg0KPiBtZW1vcnk/DQoNCg0KVGhhbmtzLCBub3cgdGhlIHRlc3RzIHN0YXJ0IG1ha2lu
ZyBtb3JlIHNlbnNlISANCg0KQWx0aG91Z2ggdGhlcmUgaXMgc3RpbGwgYSBsb3QgdGhhdCBJIGRv
buKAmXQgdW5kZXJzdGFuZCBhYm91dCBob3cgc29tZSBvZiB0aGUgb3RoZXIgZmFpbGluZyB0ZXN0
cyB3b3JrLg0KRm9yIG5vdyBJ4oCZdmUgZHJvcHBlZCB0aGlzIHBhdGNoIGZyb20gbXkgc2VyaWVz
IHRob3VnaCwgaS5lLiBsZXRzIGZpcnN0IGdldCB0aGUgY2xhbmcgYnVpbGQgZml4ZXMgaW4sDQph
bmQgc2VlIGhvdyB0byBmaXggdGhlbSB0byBhY3R1YWxseSBydW4gc2VwYXJhdGVseS4NCg0KQmVz
dCByZWdhcmRzLA0K4oCURWR3aW4=


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 11:04:25 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 11:04:25 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242649.1543018 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvds-0000Cq-Kl; Fri, 27 Feb 2026 11:04:20 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242649.1543018; Fri, 27 Feb 2026 11:04:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvvds-0000Cj-HW; Fri, 27 Feb 2026 11:04:20 +0000
Received: by outflank-mailman (input) for mailman id 1242649;
 Fri, 27 Feb 2026 11:04: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=mnSo=A7=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vvvdr-0000Cc-Kk
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 11:04:19 +0000
Received: from mail-oo1-xc2e.google.com (mail-oo1-xc2e.google.com
 [2607:f8b0:4864:20::c2e])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 0f1305e4-13cc-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 12:04:18 +0100 (CET)
Received: by mail-oo1-xc2e.google.com with SMTP id
 006d021491bc7-66307e10d1dso1290252eaf.0
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 03:04:18 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 0f1305e4-13cc-11f1-b164-2bf370ae4941
ARC-Seal: i=1; a=rsa-sha256; t=1772190256; cv=none;
        d=google.com; s=arc-20240605;
        b=CCg3pQej76pktGgJX5b9luTENXXE4cVwHmn3OvFF5wxEuiOgMTMYS2gEJnoED+gavy
         k23RJ3QHawfynE5RxEPh/V8EUJ22+xzS7Uf3jY9as+qWlD0mi0ZvUCRjFnpjJC2J/xlf
         hWgMq1VcmiO5oomQm/FNS9mGTTJY4PZ8MFH/WUGau4qz1TgS7uTXtUpzZFcvTqOcvkap
         E227KMjD6VcUgAIkL1qfKztqGbhqze4MCuo28anrb3M3D6FRzXaIsM+1KgpECdQrUM0G
         wq7Y9ABY18WceTOxgj1RqMfs+XScO9sMHT70pqM65vYe99JFopaQDTctuFvsox1y7dUx
         G/tw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=K6MlY3FtrWxiva9pGXWn6CW4earS45tIfBaAOvGykNY=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=lkjDke2NZAP0CVdUEqJbMn49ffXPx1iUfMtJ8l6xC7TEwh/CJpS9KzT/lXv7LhBIta
         bHqAi5i4SUNELHsAX/7NtsQJ6+ZbpR7/+Go2THcuOSRBvalaIIh5kL2saGiPV3gBbJcj
         tcJOjXXZA+Sx6CfOAeIq3V3xOsvflKp8FCIdf/HDufbYvrshg79oxwvd/l720LaMFGOP
         CNEmpoHUozSHcvpIF1U2W0KMqmjmyh9y6wVhX5DbSbPc82u8YD4Utgdt7M3iTJHBpKAP
         zUSjYn3gLb65dqb8wt58lp8rdkIVg85PyO6SKitRAZN+Vo+D1XT3uqRNr1Y0453oBZWd
         eRpQ==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772190256; x=1772795056; 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=K6MlY3FtrWxiva9pGXWn6CW4earS45tIfBaAOvGykNY=;
        b=mkeTBbtkd3C4s15V1n0yPJNlgtYe5lfuPZdQFrEMGUIxu+8TAW10iy36BBybhZsjQD
         chABHik3TSi1pYF1dF4OwxL05VPwO0tDq+VLwMC1wPcdrw94rNEKPdiX98L0j48cZUIe
         fFXMMEcBJX/j+jm89yNIh2cJqffJAa+2usA4njOSLqTt1WWBgLDV66Q6EfjLJo2cb33A
         PvsC51JVvVB4+AnWtpq37vr+4nnoQVYiUDVBytJoGJidnsDrn7B4vAnhCRG9s3L98/P1
         mD5o7OQziZPDc7z8lYWuILYOXlOY+alF03Ef0bh/adK/j62PhL+/49T38hVFWbbeJklt
         58tg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772190256; x=1772795056;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=K6MlY3FtrWxiva9pGXWn6CW4earS45tIfBaAOvGykNY=;
        b=NCAi/SSHrZfepwkkg/icDwRa27vybUc5UkPymllei+BX8AqCbAmfKSirb9ojGUdvRt
         BSK8t6yZ/KYUlXVMaJsai1cjvnN7sKogvcRHMeGRVfymgmp2FhHIXXCe3nAQTZkGfeI+
         7nVMIUFRnPMEMjbMjvisArRaA8dBDksGLBdnRFr1ixRnC4CYrP0KWVVUZ3VPMYS0Tx+E
         pM4r+uFiFywUZ9Z0qH6lduq6nGvVzK+H+MI2cuslC+clz+PDvPEe0BNIDfGyYIg0bSCD
         k8SQ2fZimX3dAOMu6fhKELFZLKJXe6A4jZ1zIcUZDaDY19mMl8DfN8NPLB4G54AeNUjv
         J0kQ==
X-Gm-Message-State: AOJu0YwiEsr9fxeWAXvDYIZjQYPjuQcRNoowoIjk3p/TjQe5IMf4IXRo
	WMHh7s3VwCzAvm7j0KLx5ftE3rUuh25kZ9s332KsBnF+Z8nM5FdonEgIqFifRKKzwXxVDgGhIdC
	JUF7IsLjrSIVvKmhR9UFaZQ5i2MvUgQ8UC4YQUZRqPg==
X-Gm-Gg: ATEYQzyprCAYmiyhY8RMWWm6hlnj0Lr50q2Tlbraytsrl2M780xHEZTbmLsZqNZtkzr
	uifLqw71PjEl332sa6G30kypU+XI/Mb7OP2AteF6YiyJSBBUHCJ0+/wfxfuq/mjYqFNN78qmRI4
	05Hp1LBkYX6eghhqzbwbNq0XIWK7ZC/Dc9zf1uA8gSS9l5qYYCrn0jEwgY0d71EoKaBuXJnP7v2
	Tt2+SC/lPxjkhAnjMV3B5xOHvfM73+oyrBPRnlVqItpuMlEDYlL1ETN2uFwSARjxUnFvEB+xmX2
	7h1cHy2b18Bz9QAMu9SKYfA6N638t7+krsICzQ==
X-Received: by 2002:a05:6820:808:b0:679:e617:e835 with SMTP id
 006d021491bc7-679faf1189emr1604672eaf.46.1772190256431; Fri, 27 Feb 2026
 03:04:16 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772013062.git.bertrand.marquis@arm.com> <c981d94eb7596a17a4198fcdabcaaf17027aaad3.1772013062.git.bertrand.marquis@arm.com>
In-Reply-To: <c981d94eb7596a17a4198fcdabcaaf17027aaad3.1772013062.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Fri, 27 Feb 2026 12:04:05 +0100
X-Gm-Features: AaiRm51Y4_eS1nheyFso7Oz7fzWFW3GCRsplKYVGsL2zpKMX470K9nqLWluSiBI
Message-ID: <CAHUa44Fy2kp9p7V9QdaOxjw8rTaDdF2unMCiiPv3eEvYyoYZiQ@mail.gmail.com>
Subject: Re: [PATCH 3/4] xen/arm: ffa: Drop SP subscriber lists
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 Wed, Feb 25, 2026 at 11:02=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> The init-time SP cache already contains partition properties, but the
> code still builds separate subscriber arrays for VM created/destroyed
> notifications. That duplicates state and allocation.
>
> Use the cached SP list directly to:
> - decide which SPs receive created/destroyed notifications
> - build the per-domain destroy bitmap
> - skip destroy notifications for SPs not notified on create
>
> No functional changes.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa_partinfo.c | 155 ++++++++------------------------
>  1 file changed, 36 insertions(+), 119 deletions(-)

Looks good:
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>

Cheers,
Jens

>
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index 8a3eac25f99f..d7f9b9f7153c 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -28,12 +28,6 @@ struct ffa_partition_info_1_1 {
>      uint8_t uuid[16];
>  };
>
> -/* SPs subscribing to VM_CREATE and VM_DESTROYED events */
> -static uint16_t *subscr_vm_created __read_mostly;
> -static uint16_t subscr_vm_created_count __read_mostly;
> -static uint16_t *subscr_vm_destroyed __read_mostly;
> -static uint16_t subscr_vm_destroyed_count __read_mostly;
> -
>  /* SP list cache (secure endpoints only); populated at init. */
>  static void *sp_list __read_mostly;
>  static uint32_t sp_list_count __read_mostly;
> @@ -434,14 +428,6 @@ static void ffa_sp_list_cache_free(void)
>      sp_list_entry_size =3D 0;
>  }
>
> -static void uninit_subscribers(void)
> -{
> -        subscr_vm_created_count =3D 0;
> -        subscr_vm_destroyed_count =3D 0;
> -        XFREE(subscr_vm_created);
> -        XFREE(subscr_vm_destroyed);
> -}
> -
>  static bool ffa_sp_list_cache_init(const void *buf, uint32_t count,
>                                     uint32_t fpi_size)
>  {
> @@ -504,79 +490,6 @@ static bool ffa_sp_list_cache_init(const void *buf, =
uint32_t count,
>      return true;
>  }
>
> -static bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_siz=
e)
> -{
> -    uint16_t n;
> -    uint16_t c_pos;
> -    uint16_t d_pos;
> -    struct ffa_partition_info_1_1 *fpi;
> -
> -    if ( fpi_size < sizeof(struct ffa_partition_info_1_1) )
> -    {
> -        printk(XENLOG_ERR "ffa: partition info size invalid: %u\n", fpi_=
size);
> -        return false;
> -    }
> -
> -    subscr_vm_created_count =3D 0;
> -    subscr_vm_destroyed_count =3D 0;
> -    for ( n =3D 0; n < count; n++ )
> -    {
> -        fpi =3D buf + n * fpi_size;
> -
> -        /*
> -         * We need to have secure partitions using bit 15 set convention=
 for
> -         * secure partition IDs.
> -         * Inform the user with a log and discard giving created or dest=
roy
> -         * event to those IDs.
> -         */
> -        if ( !FFA_ID_IS_SECURE(fpi->id) )
> -        {
> -            printk_once(XENLOG_ERR
> -                        "ffa: Firmware is not using bit 15 convention fo=
r IDs !!\n");
> -            printk(XENLOG_ERR
> -                   "ffa: Secure partition with id 0x%04x cannot be used\=
n",
> -                   fpi->id);
> -        }
> -        else
> -        {
> -            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED=
 )
> -                subscr_vm_created_count++;
> -            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROY=
ED )
> -                subscr_vm_destroyed_count++;
> -        }
> -    }
> -
> -    if ( subscr_vm_created_count )
> -        subscr_vm_created =3D xzalloc_array(uint16_t, subscr_vm_created_=
count);
> -    if ( subscr_vm_destroyed_count )
> -        subscr_vm_destroyed =3D xzalloc_array(uint16_t,
> -                                            subscr_vm_destroyed_count);
> -    if ( (subscr_vm_created_count && !subscr_vm_created) ||
> -         (subscr_vm_destroyed_count && !subscr_vm_destroyed) )
> -    {
> -        printk(XENLOG_ERR "ffa: Failed to allocate subscription lists\n"=
);
> -        uninit_subscribers();
> -        return false;
> -    }
> -
> -    for ( c_pos =3D 0, d_pos =3D 0, n =3D 0; n < count; n++ )
> -    {
> -        fpi =3D buf + n * fpi_size;
> -
> -        if ( FFA_ID_IS_SECURE(fpi->id) )
> -        {
> -            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED=
 )
> -                subscr_vm_created[c_pos++] =3D fpi->id;
> -            if ( fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROY=
ED )
> -                subscr_vm_destroyed[d_pos++] =3D fpi->id;
> -        }
> -    }
> -
> -    return true;
> -}
> -
> -
> -
>  bool ffa_partinfo_init(void)
>  {
>      bool ret =3D false;
> @@ -616,48 +529,43 @@ bool ffa_partinfo_init(void)
>          goto out;
>      }
>
> -    ret =3D init_subscribers(sp_list, sp_list_count, sp_list_entry_size)=
;
> +    if ( sp_list_entry_size < sizeof(struct ffa_partition_info_1_1) )
> +    {
> +        printk(XENLOG_ERR "ffa: partition info size invalid: %u\n",
> +               sp_list_entry_size);
> +        goto out;
> +    }
> +    ret =3D true;
>
>  out:
>      e =3D ffa_rxtx_spmc_rx_release(notify_fw);
>      if ( e )
>          printk(XENLOG_WARNING "ffa: Error releasing SPMC RX buffer: %d\n=
", e);
> -    if ( !ret )
> -        uninit_subscribers();
>      if ( !ret )
>          ffa_sp_list_cache_free();
>      return ret;
>  }
>
> -static bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,
> -                              uint16_t end, uint16_t sp_id)
> +static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
> +                                   unsigned int first_unnotified)
>  {
>      unsigned int n;
> +    struct ffa_partition_info_1_1 *fpi;
>
> -    for ( n =3D start; n < end; n++ )
> +    for ( n =3D 0; n < sp_list_count; n++ )
>      {
> -        if ( subscr[n] =3D=3D sp_id )
> -            return true;
> -    }
> -
> -    return false;
> -}
> +        fpi =3D sp_list + n * sp_list_entry_size;
>
> -static void vm_destroy_bitmap_init(struct ffa_ctx *ctx,
> -                                   unsigned int create_signal_count)
> -{
> -    unsigned int n;
> +        if ( !(fpi->partition_properties & FFA_PART_PROP_NOTIF_DESTROYED=
) )
> +            continue;
>
> -    for ( n =3D 0; n < subscr_vm_destroyed_count; n++ )
> -    {
>          /*
>           * Skip SPs subscribed to the VM created event that never was
>           * notified of the VM creation due to an error during
>           * ffa_domain_init().
>           */
> -        if ( is_in_subscr_list(subscr_vm_created, create_signal_count,
> -                               subscr_vm_created_count,
> -                               subscr_vm_destroyed[n]) )
> +        if ( (fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED) &=
&
> +             n >=3D first_unnotified )
>              continue;
>
>          set_bit(n, ctx->vm_destroy_bitmap);
> @@ -666,32 +574,39 @@ static void vm_destroy_bitmap_init(struct ffa_ctx *=
ctx,
>
>  int32_t ffa_partinfo_domain_init(struct domain *d)
>  {
> -    unsigned int count =3D BITS_TO_LONGS(subscr_vm_destroyed_count);
> +    unsigned int count =3D BITS_TO_LONGS(sp_list_count);
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      unsigned int n;
> +    unsigned int first_unnotified =3D sp_list_count;
>      int32_t res;
> +    struct ffa_partition_info_1_1 *fpi;
>
> -    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) )
> +    if ( !ffa_fw_supports_fid(FFA_MSG_SEND_DIRECT_REQ_32) || !sp_list_co=
unt )
>          return 0;
>
>      ctx->vm_destroy_bitmap =3D xzalloc_array(unsigned long, count);
>      if ( !ctx->vm_destroy_bitmap )
>          return -ENOMEM;
>
> -    for ( n =3D 0; n < subscr_vm_created_count; n++ )
> +    for ( n =3D 0; n < sp_list_count; n++ )
>      {
> -        res =3D ffa_direct_req_send_vm(subscr_vm_created[n], ffa_get_vm_=
id(d),
> +        fpi =3D sp_list + n * sp_list_entry_size;
> +        if ( !(fpi->partition_properties & FFA_PART_PROP_NOTIF_CREATED) =
)
> +            continue;
> +
> +        res =3D ffa_direct_req_send_vm(fpi->id, ffa_get_vm_id(d),
>                                       FFA_MSG_SEND_VM_CREATED);
>          if ( res )
>          {
>              printk(XENLOG_ERR "ffa: Failed to report creation of vm_id %=
u to  %u: res %d\n",
> -                   ffa_get_vm_id(d), subscr_vm_created[n], res);
> +                   ffa_get_vm_id(d), fpi->id, res);
> +            first_unnotified =3D n;
>              break;
>          }
>      }
> -    vm_destroy_bitmap_init(ctx, n);
> +    vm_destroy_bitmap_init(ctx, first_unnotified);
>
> -    if ( n !=3D subscr_vm_created_count )
> +    if ( first_unnotified !=3D sp_list_count )
>          return -EIO;
>
>      return 0;
> @@ -702,22 +617,24 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
>      struct ffa_ctx *ctx =3D d->arch.tee;
>      unsigned int n;
>      int32_t res;
> +    struct ffa_partition_info_1_1 *fpi;
>
>      if ( !ctx->vm_destroy_bitmap )
>          return true;
>
> -    for ( n =3D 0; n < subscr_vm_destroyed_count; n++ )
> +    for ( n =3D 0; n < sp_list_count; n++ )
>      {
>          if ( !test_bit(n, ctx->vm_destroy_bitmap) )
>              continue;
>
> -        res =3D ffa_direct_req_send_vm(subscr_vm_destroyed[n], ffa_get_v=
m_id(d),
> +        fpi =3D sp_list + n * sp_list_entry_size;
> +        res =3D ffa_direct_req_send_vm(fpi->id, ffa_get_vm_id(d),
>                                       FFA_MSG_SEND_VM_DESTROYED);
>
>          if ( res && printk_ratelimit() )
>              printk(XENLOG_WARNING
>                     "%pd: ffa: Failed to report destruction of vm_id %u t=
o %u: res %d\n",
> -                   d, ffa_get_vm_id(d), subscr_vm_destroyed[n], res);
> +                   d, ffa_get_vm_id(d), fpi->id, res);
>
>          /*
>           * For these two error codes the hypervisor is expected to resen=
d
> @@ -729,7 +646,7 @@ bool ffa_partinfo_domain_destroy(struct domain *d)
>              clear_bit(n, ctx->vm_destroy_bitmap);
>      }
>
> -    if ( bitmap_empty(ctx->vm_destroy_bitmap, subscr_vm_destroyed_count)=
 )
> +    if ( bitmap_empty(ctx->vm_destroy_bitmap, sp_list_count) )
>          XFREE(ctx->vm_destroy_bitmap);
>
>      return !ctx->vm_destroy_bitmap;
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 12:06:48 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 12:06:48 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242757.1543028 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvwc3-0008Tq-6l; Fri, 27 Feb 2026 12:06:31 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242757.1543028; Fri, 27 Feb 2026 12: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 1vvwc3-0008Ti-31; Fri, 27 Feb 2026 12:06:31 +0000
Received: by outflank-mailman (input) for mailman id 1242757;
 Fri, 27 Feb 2026 12:06: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=xKR6=A7=apertussolutions.com=dpsmith@srs-se1.protection.inumbo.net>)
 id 1vvwc1-0008Tb-V6
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 12:06:30 +0000
Received: from sender4-of-o51.zoho.com (sender4-of-o51.zoho.com
 [136.143.188.51]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id bd58edb7-13d4-11f1-9ccf-f158ae23cfc8;
 Fri, 27 Feb 2026 13:06:26 +0100 (CET)
Received: by mx.zohomail.com with SMTPS id 1772193972513434.9807762528759;
 Fri, 27 Feb 2026 04:06:12 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: bd58edb7-13d4-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1772193974; cv=none; 
	d=zohomail.com; s=zohoarc; 
	b=j2Yog8XpRVd1CYGVk3wVQankXmlQz+r8MfYOx9hc7CDCk6EmKxdIXR13nnOilsB1w15nKp9hx1wdcqP0o7jAazAv4UhtTXmxOurc0Cu5xun7gSckSFRBYsIvLlztBS8Z9oAiHJn0yq1T0PEAgYqYzuNxBJRiZF3OKQ9SAOTguag=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; 
	t=1772193974; 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=WjDkBb2DWs7hhAJHZDkHzFVEtNF+EPbI0SHjunZeYhM=; 
	b=fyZcTqwofzQFgr/wiiIxy2zI21WVTCBWV284zCeFuTw/l4Cc+XsqQDt7j1O2RGsBaArxZVz9f6/0iF2GagbP4+KbbR0Rkmi+uQtlmjzeYQD4UCjgB3Gb423LhI4MOaPS0b3JdgrZKcFivtkApo4/JQHaV7wyT2b8ADysBalY3fk=
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=1772193973;
	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=WjDkBb2DWs7hhAJHZDkHzFVEtNF+EPbI0SHjunZeYhM=;
	b=u87rbbInfiyv2aKZ7FWbBWHzeNYRWlRGk+gOcT6Gk+3/ww3s+StQa7aPiWKIal7O
	RmwnB29nCiVI64XknOjNfEsNs6Rig51RvAUXeTF+0qUbNKdkIneOe4mrG/k2852pHAs
	6rNqgRtfZ2lm4I1UHjrygXaHo1FInM6IpstZMMuA=
Message-ID: <26a6d53d-f4be-4e17-b308-790bbea6cb4f@apertussolutions.com>
Date: Fri, 27 Feb 2026 07:06:10 -0500
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH] xsm: move the console read properly under xsm
Content-Language: en-US
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>,
 Anthony PERARD <anthony.perard@vates.tech>,
 =?UTF-8?Q?Roger_Pau_Monn=C3=A9?= <roger.pau@citrix.com>,
 xen-devel@lists.xenproject.org
References: <20260219184503.21918-1-dpsmith@apertussolutions.com>
 <43a90b6f-683d-48e3-b7cc-4b8c6dae087c@suse.com>
 <6ec4a310-884e-4004-b56f-1810f028e355@apertussolutions.com>
 <671d83d0-fe8a-4da1-af06-a09221a8442f@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: <671d83d0-fe8a-4da1-af06-a09221a8442f@suse.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ZohoMailClient: External

On 2/24/26 02:09, Jan Beulich wrote:
> On 23.02.2026 19:49, Daniel P. Smith wrote:
>> On 2/23/26 10:22, Jan Beulich wrote:
>>> On 19.02.2026 19:45, Daniel P. Smith wrote:
>>>> --- a/xen/drivers/char/console.c
>>>> +++ b/xen/drivers/char/console.c
>>>> @@ -554,7 +554,7 @@ struct domain *console_get_domain(void)
>>>>        if ( !d )
>>>>            return NULL;
>>>>    
>>>> -    if ( d->console->input_allowed )
>>>> +    if ( !xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
>>>>            return d;
>>>>    
>>>>        rcu_unlock_domain(d);
>>>> @@ -595,7 +595,7 @@ static void console_switch_input(void)
>>>>            d = rcu_lock_domain_by_id(domid);
>>>>            if ( d )
>>>>            {
>>>> -            if ( !d->console->input_allowed )
>>>> +            if ( xsm_console_io(XSM_OTHER, d, CONSOLEIO_read) )
>>>>                {
>>>>                    rcu_unlock_domain(d);
>>>>                    continue;
>>>
>>> At least the latter of these two can be called from an IRQ handler, and can
>>> be called with IRQs off. Flask's avc_audit() looks to be using a spinlock,
>>> which isn't IRQ-safe. (There may be other lock involved; I merely went as far
>>> as I needed to to find the first one.) IOW I fear you can't call
>>> xsm_console_io() from here.
>>
>> Apologies that I didn't consider the IRQ context. With that said, we
>> can't be wiring non-XSM access control paths that circumvent FLASK's
>> ability to control domain access to a resource.
> 
> I feel like I can interpret this last sentence in different ways. Are you
> suggesting that this effort needs to be dropped, and the situation needs
> leaving as is? If so, aren't there options to move at least a little
> closer to what is wanted?

What I am saying is it needs to be controlled via XSM, so a means to 
enable that needs to be determined.

V/r,
dps


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 13:31:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 13:31:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242815.1543037 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvxwK-0002rh-0i; Fri, 27 Feb 2026 13:31:32 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242815.1543037; Fri, 27 Feb 2026 13: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 1vvxwJ-0002ra-U8; Fri, 27 Feb 2026 13:31:31 +0000
Received: by outflank-mailman (input) for mailman id 1242815;
 Fri, 27 Feb 2026 13:31: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=Rg6b=A7=suse.de=tzimmermann@srs-se1.protection.inumbo.net>)
 id 1vvxwH-0002rT-MV
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 13:31:29 +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 9e57639e-13e0-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 14:31:28 +0100 (CET)
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 C7E923FFF7;
 Fri, 27 Feb 2026 13:31: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 8E4773EA69;
 Fri, 27 Feb 2026 13:31: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 MPqGIa6coWkrLQAAD6G6ig
 (envelope-from <tzimmermann@suse.de>); Fri, 27 Feb 2026 13:31: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: 9e57639e-13e0-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1772199086; 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=MjLceajnFqhra3Jb3mX4oFtSi4Rj0D7JYvmHOrBhBS8=;
	b=id1cmgUt3Yv1H5NiPzA9q5bUsqsH0ZUnY9pkeqV5eXfwICs9MgzOPWVgeD+V2jdO0P0mU3
	41TpRGU5TvnfF7SmFV8sFbibol8Tkj2hL5JxiMMESdbTvIdDIvvTUI/2Xmf3fdANZaSR5c
	XEtL/428Gp5pqQVSHEffcFiXH7+ANy4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1772199086;
	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=MjLceajnFqhra3Jb3mX4oFtSi4Rj0D7JYvmHOrBhBS8=;
	b=b6xTxwaYJSHEkoBSysrRdgRfYdywpG0gL8qU9jImTnDmbzNu9tG6E/lllu7zzz9vD+Gnhx
	JFbxmkMJGwKQweAw==
Authentication-Results: smtp-out1.suse.de;
	dkim=pass header.d=suse.de header.s=susede2_rsa header.b=id1cmgUt;
	dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=b6xTxwaY
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa;
	t=1772199086; 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=MjLceajnFqhra3Jb3mX4oFtSi4Rj0D7JYvmHOrBhBS8=;
	b=id1cmgUt3Yv1H5NiPzA9q5bUsqsH0ZUnY9pkeqV5eXfwICs9MgzOPWVgeD+V2jdO0P0mU3
	41TpRGU5TvnfF7SmFV8sFbibol8Tkj2hL5JxiMMESdbTvIdDIvvTUI/2Xmf3fdANZaSR5c
	XEtL/428Gp5pqQVSHEffcFiXH7+ANy4=
DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;
	s=susede2_ed25519; t=1772199086;
	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=MjLceajnFqhra3Jb3mX4oFtSi4Rj0D7JYvmHOrBhBS8=;
	b=b6xTxwaYJSHEkoBSysrRdgRfYdywpG0gL8qU9jImTnDmbzNu9tG6E/lllu7zzz9vD+Gnhx
	JFbxmkMJGwKQweAw==
From: Thomas Zimmermann <tzimmermann@suse.de>
To: maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	airlied@gmail.com,
	simona@ffwll.ch
Cc: dri-devel@lists.freedesktop.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
	xen-devel@lists.xenproject.org
Subject: [PATCH] drm/xen: Test for imported buffers with drm_gem_is_imported()
Date: Fri, 27 Feb 2026 14:31:13 +0100
Message-ID: <20260227133113.235940-14-tzimmermann@suse.de>
X-Mailer: git-send-email 2.52.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Action: no action
X-Rspamd-Server: rspamd2.dmz-prg2.suse.org
X-Spamd-Result: default: False [-3.01 / 50.00];
	BAYES_HAM(-3.00)[99.99%];
	MID_CONTAINS_FROM(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	R_MISSING_CHARSET(0.50)[];
	R_DKIM_ALLOW(-0.20)[suse.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)[];
	MIME_TRACE(0.00)[0:+];
	DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];
	TO_DN_SOME(0.00)[];
	FREEMAIL_TO(0.00)[linux.intel.com,kernel.org,gmail.com,ffwll.ch];
	FUZZY_RATELIMITED(0.00)[rspamd.com];
	RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	ARC_NA(0.00)[];
	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)[];
	SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,suse.de:email];
	RCPT_COUNT_SEVEN(0.00)[8];
	DNSWL_BLOCKED(0.00)[2a07:de40:b281:104:10:150:64:97:from];
	RCVD_VIA_SMTP_AUTH(0.00)[];
	RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received];
	FREEMAIL_ENVRCPT(0.00)[gmail.com]
X-Rspamd-Queue-Id: C7E923FFF7
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level: 

Instead of testing import_attach for imported GEM buffers, invoke
drm_gem_is_imported() to do the test. The test itself does not change.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
---
 drivers/gpu/drm/xen/xen_drm_front_gem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c b/drivers/gpu/drm/xen/xen_drm_front_gem.c
index eec4c1da3f9e..280982b85ce7 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -203,7 +203,7 @@ void xen_drm_front_gem_free_object_unlocked(struct drm_gem_object *gem_obj)
 {
 	struct xen_gem_object *xen_obj = to_xen_gem_obj(gem_obj);
 
-	if (xen_obj->base.import_attach) {
+	if (drm_gem_is_imported(&xen_obj->base)) {
 		drm_prime_gem_destroy(&xen_obj->base, xen_obj->sgt_imported);
 		gem_free_pages_array(xen_obj);
 	} else {
-- 
2.52.0



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 14:57:23 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 14:57:23 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242888.1543048 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vvzHA-00054c-UZ; Fri, 27 Feb 2026 14:57:08 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242888.1543048; Fri, 27 Feb 2026 14:57: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 1vvzHA-00054V-Rb; Fri, 27 Feb 2026 14:57:08 +0000
Received: by outflank-mailman (input) for mailman id 1242888;
 Fri, 27 Feb 2026 14:57: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=mnSo=A7=linaro.org=jens.wiklander@srs-se1.protection.inumbo.net>)
 id 1vvzHA-00054I-Bp
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 14:57:08 +0000
Received: from mail-oi1-x231.google.com (mail-oi1-x231.google.com
 [2607:f8b0:4864:20::231])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 94862660-13ec-11f1-9ccf-f158ae23cfc8;
 Fri, 27 Feb 2026 15:57:06 +0100 (CET)
Received: by mail-oi1-x231.google.com with SMTP id
 5614622812f47-463208653d6so1660561b6e.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 06:57:06 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 94862660-13ec-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; t=1772204224; cv=none;
        d=google.com; s=arc-20240605;
        b=gY9uXtwpFrZuibwAJxjJ6JCRc0YBru2NJaiKUSqaJ65lADduN0F9QyvXaCkhZ6RrEO
         HWSo80YtZwp42awbnPbRUO97c64YLbgzrF0XwabOR1Zk2yTLCcm0yTcaMqFxA6mx7mB1
         yZpotkPGSXo+1PzDKn/1tvw+BPOnnpgMNCukUG33VW1QzNTI3ytypqex7pboMFHw6L3X
         uVjb74PL9zJqLCEzOaHyx0GLFzai0MvACaSF3+1zQkluLwBp35jvfiELQOF+91wxgKDF
         UpUw5UOTAthA6QnXPyeB9cwzCNFzK/yy5j889cIcu66QPPEUaXT3keb7gmZmPLAg8MmB
         PZfw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:dkim-signature;
        bh=uP0I2e4uOXDfd3JeMJBtJ3gHmt9cGgxAGzKiImTtKe0=;
        fh=wNLC6Hyb5Ukz/ErppBRQBwv8vwa/OMsdh6R8bnNsiPU=;
        b=S+67903PocbFI4IfKkBwJaNcdQKxhJcWCpx8p1FSexT8LJaiSc3jI8DPwGO49PPJxM
         60/W1nvZuxvu82pj2Ew1VwAQgRxHaXrG/dfBmrqcwmlv2odu0frbzkYf81yu6B4U1ewq
         2q5+e9sn8vNQ5B3SAMmmGS7SUgbqHjzWvTD5IV0G0yj1aNQ0d00OSgK62s7LGGglOFSV
         3ECHT6ULdofUDm8p5ynjxrA4rHCFV80qGXY6BnLqzN5eVqSemZg5RPKYDjCg+m3AinsH
         LH34swlEt/EmcEZj/engBxuYXURDE8qUIicL0G2iU2gyfYud2sJK6AC+xwB7Fv3GOguA
         FNDw==;
        darn=lists.xenproject.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=linaro.org; s=google; t=1772204224; x=1772809024; 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=uP0I2e4uOXDfd3JeMJBtJ3gHmt9cGgxAGzKiImTtKe0=;
        b=XPT1tFMwWqNYhwOqnflTIAI8+yK/tYvt4yOnusiCR/I3llZOyL/bqRGTtsWxDy6mUy
         AhvwG9L3nktoevNhTQ3RIPVeZXZKMPlysp27YsRGco7LReLQXoPJLGzjLTsEfFVpy5FU
         PiqbtfeyK5M3PuymHZrXFU1GG3j/Co7RzUfqynB0EXiQa9jyYDzZOwYkp+rWZ3n3qyp1
         IixNMB9zx6/amWyIFJtsLwA12pJkFJFLHlmC6O+OOLnTGjC8Flth7gPrR9tvnz/sGMkr
         iwS7YIxMEMLFcEQ34C3xzBcSWgh2tYpsJD9pSLXVZeYYFU/KhZYs+f3mulGX3zwzB1e7
         DKnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772204224; x=1772809024;
        h=content-transfer-encoding:cc:to:subject:message-id:date:from
         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=uP0I2e4uOXDfd3JeMJBtJ3gHmt9cGgxAGzKiImTtKe0=;
        b=aMlH41BU2FX32xWjY/1VSjXQY3lsIMsyn3lXJbvieJteUejNG3vf2aCRqX4jG6sLMR
         lSwvRKPS0gYlbwVDTahlTgsWm+kLauVzCrGz8XjaBj/imGXnZEHarI8Xxzr3IOlTOCRG
         oKLd5Smr2MLtRZ2hIIRlRnJhASO3O6hhulZeBYNSiZ7X3X7OSTBwISBVR1mx0H1gmi3A
         MvFapvr4M905sApjt8O9p1l6dCMz4cT6p4Et1MjpqmzoZS7VqtPyV0NSHPNK0Bc1Belg
         rroIy780VvZSBxH4gwBkXuxyYyjkdR/gvUzhJWBRCf6v6psm9dLhswAFBDnC7HloWnn/
         7f/w==
X-Gm-Message-State: AOJu0YwtvOVOAvWm/s2kS+W/qZRPB5lsDUlGPQyXiyeb4ybSKmxrHNpw
	z3hMkgerbkJPk1BP29ttpDZqkhBgJi/teyQdlHky3ynOYI0iOdpZzZhe5dpVX3xsHk8jcl701Jq
	evGNd9fwCVGRYuwsb9xr2q5od0lKfeA7RS8bG8pa+gg==
X-Gm-Gg: ATEYQzzi/MUqSGmvcejn+utbRy7vIxNGNVuQfaPzHCw0BeabmOzWJewpbmjkXzl/+vU
	a7xnKw5VyFS6902WRTCfByRDHeHzp+GwYfr07x42vSZXSLQkVTnIOujOKHRZ79nG62jnJoCL8X/
	W4doAsfabfNqUq+/BI4q9chs+FqvZJwoApJ47s2Pik5PrJot1fWo9CR8GYGlP9lyTMZkLWv6Roh
	kP68b04q26kQpbqI99mMFZr2aWX2APKtHjaiQyk8O7EwL8StP0Wt3mJ1b97qs1PTUoAmmrY7ozf
	oCNvMzFFchiBYDZdJWGCfTpiSlAihO6OdDctWw==
X-Received: by 2002:a05:6820:3102:b0:679:9787:7c83 with SMTP id
 006d021491bc7-679fadc2728mr2095400eaf.13.1772204224140; Fri, 27 Feb 2026
 06:57:04 -0800 (PST)
MIME-Version: 1.0
References: <cover.1772013062.git.bertrand.marquis@arm.com> <832ba950a53a7139b51053f6570fd9b26ba42df1.1772013062.git.bertrand.marquis@arm.com>
In-Reply-To: <832ba950a53a7139b51053f6570fd9b26ba42df1.1772013062.git.bertrand.marquis@arm.com>
From: Jens Wiklander <jens.wiklander@linaro.org>
Date: Fri, 27 Feb 2026 15:56:52 +0100
X-Gm-Features: AaiRm52qXEoJkbSGbyYrWc6fx9m2wzqoHPewwueJaXSJbodqLMDRNjJ0RE4Fs7Y
Message-ID: <CAHUa44EjtezLGx=YNtyK-xCU9gmEvBGVLhmG=0YpRWftFxGY-Q@mail.gmail.com>
Subject: Re: [PATCH 4/4] xen/arm: ffa: Add cached GET_REGS 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 Wed, Feb 25, 2026 at 11:02=E2=80=AFAM Bertrand Marquis
<bertrand.marquis@arm.com> wrote:
>
> FF-A v1.2 defines PARTITION_INFO_GET_REGS for register-based partition
> info retrieval, but Xen currently only supports the buffer-based GET
> path for guests.
>
> Implement GET_REGS using the cached SP list and VM entries, including
> the register window layout and input validation. Track VM list changes
> via the partinfo tag and use it to validate GET_REGS tag inputs. Ensure
> that when a non-Nil UUID is specified, the UUID fields in both GET and
> GET_REGS results are MBZ as required by the specification.
>
> PARTITION_INFO_GET_REGS is available to v1.2 guests, returning cached SP
> entries and VM entries with UUIDs zeroed for non-Nil UUID queries.
>
> Signed-off-by: Bertrand Marquis <bertrand.marquis@arm.com>
> ---
>  xen/arch/arm/tee/ffa.c          |  16 +++
>  xen/arch/arm/tee/ffa_partinfo.c | 211 ++++++++++++++++++++++++++++++++
>  xen/arch/arm/tee/ffa_private.h  |   4 +-
>  3 files changed, 230 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/tee/ffa.c b/xen/arch/arm/tee/ffa.c
> index aa43ae2595d7..d56eb20c2239 100644
> --- a/xen/arch/arm/tee/ffa.c
> +++ b/xen/arch/arm/tee/ffa.c
> @@ -44,6 +44,11 @@
>   *   - doesn't support signalling the secondary scheduler of pending
>   *     notification for secure partitions
>   *   - doesn't support notifications for Xen itself
> + * o FFA_PARTITION_INFO_GET/GET_REGS:
> + *   - v1.0 guests may see duplicate SP IDs when firmware provides UUIDs
> + *   - SP list is cached at init; SPMC tag changes are not tracked
> + *     between calls
> + *   - SP list is capped at FFA_MAX_NUM_SP entries
>   *
>   * There are some large locked sections with ffa_spmc_tx_lock and
>   * ffa_spmc_rx_lock. Especially the ffa_spmc_tx_lock spinlock used
> @@ -188,6 +193,7 @@ static bool ffa_negotiate_version(struct cpu_user_reg=
s *regs)
>              write_lock(&ffa_ctx_list_rwlock);
>              list_add_tail(&ctx->ctx_list, &ffa_ctx_head);
>              write_unlock(&ffa_ctx_list_rwlock);
> +            ffa_partinfo_inc_tag();
>          }
>
>          goto out_continue;
> @@ -341,6 +347,12 @@ static void handle_features(struct cpu_user_regs *re=
gs)
>      case FFA_FEATURE_SCHEDULE_RECV_INTR:
>          ffa_set_regs_success(regs, GUEST_FFA_SCHEDULE_RECV_INTR_ID, 0);
>          break;
> +    case FFA_PARTITION_INFO_GET_REGS:
> +        if ( ACCESS_ONCE(ctx->guest_vers) >=3D FFA_VERSION_1_2 )
> +            ffa_set_regs_success(regs, 0, 0);
> +        else
> +            ffa_set_regs_error(regs, FFA_RET_NOT_SUPPORTED);
> +        break;
>
>      case FFA_NOTIFICATION_BIND:
>      case FFA_NOTIFICATION_UNBIND:
> @@ -402,6 +414,9 @@ static bool ffa_handle_call(struct cpu_user_regs *reg=
s)
>      case FFA_PARTITION_INFO_GET:
>          ffa_handle_partition_info_get(regs);
>          return true;
> +    case FFA_PARTITION_INFO_GET_REGS:
> +        ffa_handle_partition_info_get_regs(regs);
> +        return true;
>      case FFA_RX_RELEASE:
>          e =3D ffa_rx_release(ctx);
>          break;
> @@ -629,6 +644,7 @@ static int ffa_domain_teardown(struct domain *d)
>          write_lock(&ffa_ctx_list_rwlock);
>          list_del(&ctx->ctx_list);
>          write_unlock(&ffa_ctx_list_rwlock);
> +        ffa_partinfo_inc_tag();
>      }
>
>      ffa_rxtx_domain_destroy(d);
> diff --git a/xen/arch/arm/tee/ffa_partinfo.c b/xen/arch/arm/tee/ffa_parti=
nfo.c
> index d7f9b9f7153c..1c7b3579f798 100644
> --- a/xen/arch/arm/tee/ffa_partinfo.c
> +++ b/xen/arch/arm/tee/ffa_partinfo.c
> @@ -28,10 +28,39 @@ struct ffa_partition_info_1_1 {
>      uint8_t uuid[16];
>  };
>
> +/* Registers a3..a17 (15 regs) carry partition descriptors, 3 regs each.=
 */
> +#define FFA_PARTINFO_REG_MAX_ENTRIES \
> +    ((15 * sizeof(uint64_t)) / sizeof(struct ffa_partition_info_1_1))
> +
>  /* SP list cache (secure endpoints only); populated at init. */
>  static void *sp_list __read_mostly;
>  static uint32_t sp_list_count __read_mostly;
>  static uint32_t sp_list_entry_size __read_mostly;
> +
> +/* SP list is static; tag only moves when VMs are added/removed. */
> +static atomic_t ffa_partinfo_tag =3D ATOMIC_INIT(1);
> +
> +void ffa_partinfo_inc_tag(void)
> +{
> +    atomic_inc(&ffa_partinfo_tag);

Do we need to worry about this value wrapping? Is wrapping permitted?

> +}
> +
> +static inline uint16_t ffa_partinfo_get_tag(void)
> +{
> +    /*
> +     * Tag moves with VM list changes only.
> +     *
> +     * Limitation: we cannot detect an SPMC tag change between calls bec=
ause we
> +     * do not retain the previous SPMC tag; we only refresh it via the m=
andatory
> +     * start_index=3D0 call and assume it stays stable while combined_ta=
g (our
> +     * VM/SP-count tag) is used for guest validation. This means SPMC ta=
g
> +     * changes alone will not trigger RETRY.
> +     */
> +    if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +        return atomic_read(&ffa_partinfo_tag) & GENMASK(15, 0);
> +    else
> +        return 1;
> +}
>  static int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t fla=
gs,
>                                        uint32_t *count, uint32_t *fpi_siz=
e)
>  {
> @@ -125,6 +154,7 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid uu=
id, uint32_t *sp_count,
>      for ( n =3D 0; n < sp_list_count; n++ )
>      {
>          void *entry =3D sp_list + n * sp_list_entry_size;
> +        void *dst_pos;
>
>          if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
>              continue;
> @@ -136,11 +166,20 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid =
uuid, uint32_t *sp_count,
>           * This is a non-compliance to the specification but 1.0 VMs sho=
uld
>           * handle that on their own to simplify Xen implementation.
>           */
> +        dst_pos =3D *dst_buf;
>          ret =3D ffa_copy_info(dst_buf, end_buf, entry, dst_size,
>                              sp_list_entry_size);
>          if ( ret )
>              return ret;
>
> +        if ( !ffa_uuid_is_nil(uuid) &&
> +             dst_size >=3D sizeof(struct ffa_partition_info_1_1) )
> +        {
> +            struct ffa_partition_info_1_1 *fpi =3D dst_pos;
> +
> +            memset(fpi->uuid, 0, sizeof(fpi->uuid));
> +        }
> +
>          count++;
>      }
>
> @@ -152,6 +191,38 @@ static int32_t ffa_get_sp_partinfo(struct ffa_uuid u=
uid, uint32_t *sp_count,
>      return FFA_RET_OK;
>  }
>
> +static uint16_t ffa_get_sp_partinfo_regs(struct ffa_uuid uuid,
> +                                         uint16_t start_index,
> +                                         uint64_t *out_regs,
> +                                         uint16_t max_entries)
> +{
> +    uint32_t idx =3D 0;
> +    uint16_t filled =3D 0;
> +    uint32_t n;
> +
> +    for ( n =3D 0; n < sp_list_count && filled < max_entries; n++ )
> +    {
> +        void *entry =3D sp_list + n * sp_list_entry_size;
> +
> +        if ( !ffa_sp_entry_matches_uuid(entry, uuid) )
> +            continue;
> +
> +        if ( idx++ < start_index )
> +            continue;
> +
> +        memcpy(&out_regs[filled * 3], entry,
> +               sizeof(struct ffa_partition_info_1_1));
> +        if ( !ffa_uuid_is_nil(uuid) )
> +        {
> +            out_regs[filled * 3 + 1] =3D 0;
> +            out_regs[filled * 3 + 2] =3D 0;
> +        }
> +        filled++;
> +    }
> +
> +    return filled;
> +}
> +
>  static int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t start_=
index,
>                                     uint32_t *vm_count, void **dst_buf,
>                                     void *end_buf, uint32_t dst_size)
> @@ -368,6 +439,146 @@ out:
>      }
>  }
>
> +void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs)
> +{
> +    struct domain *d =3D current->domain;
> +    struct ffa_ctx *ctx =3D d->arch.tee;
> +    struct ffa_uuid uuid;
> +    uint32_t sp_count =3D 0, vm_count =3D 0, total_count;
> +    uint16_t start_index, tag;
> +    uint16_t num_entries =3D 0;
> +    uint64_t x3 =3D get_user_reg(regs, 3);
> +    int32_t ret =3D FFA_RET_OK;
> +    uint64_t out_regs[18] =3D { 0 };
> +    unsigned int n;
> +    uint16_t tag_out;
> +
> +    if ( ACCESS_ONCE(ctx->guest_vers) < FFA_VERSION_1_2 )
> +    {
> +        ret =3D FFA_RET_NOT_SUPPORTED;
> +        goto out;
> +    }
> +
> +    /*
> +     * Registers a3..a17 (15 regs) carry partition descriptors, 3 regs e=
ach.
> +     * For FF-A 1.2, that yields a maximum of 5 entries per GET_REGS cal=
l.
> +     * Enforce the assumed layout so window sizing stays correct.
> +     */
> +    BUILD_BUG_ON(FFA_PARTINFO_REG_MAX_ENTRIES !=3D 5);
> +
> +    for ( n =3D 4; n <=3D 17; n++ )
> +    {
> +        if ( get_user_reg(regs, n) )
> +        {

x4-x17 are SBZ, so I think we should only ignore them.

> +            ret =3D FFA_RET_INVALID_PARAMETERS;
> +            goto out;
> +        }
> +    }
> +
> +    if ( x3 >> 32 )

Same here: Bits[63:32] are SBZ.

> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out;
> +    }
> +
> +    start_index =3D x3 & GENMASK(15, 0);
> +    tag =3D (x3 >> 16) & GENMASK(15, 0);
> +
> +    /* Start index must allow room for up to 5 entries without 16-bit ov=
erflow. */
> +    if ( start_index > (GENMASK(15, 0) - (FFA_PARTINFO_REG_MAX_ENTRIES -=
 1)) )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out;
> +    }
> +
> +    uuid.val[0] =3D get_user_reg(regs, 1);
> +    uuid.val[1] =3D get_user_reg(regs, 2);
> +
> +    if ( sp_list_count &&
> +         sp_list_entry_size !=3D sizeof(struct ffa_partition_info_1_1) )
> +    {
> +        ret =3D FFA_RET_NOT_SUPPORTED;

This can't happen. But I guess a sp_list_entry_size > sizeof(struct
ffa_partition_info_1_1) might be supported to be future proof.

> +        goto out;
> +    }
> +
> +    tag_out =3D ffa_partinfo_get_tag();
> +
> +    if ( start_index =3D=3D 0 )
> +    {
> +        if ( tag )
> +        {
> +            ret =3D FFA_RET_INVALID_PARAMETERS;
> +            goto out;
> +        }
> +    }
> +    else if ( tag !=3D tag_out )
> +    {
> +        ret =3D FFA_RET_RETRY;
> +        goto out;
> +    }
> +
> +    if ( ffa_uuid_is_nil(uuid) )
> +    {
> +        if ( IS_ENABLED(CONFIG_FFA_VM_TO_VM) )
> +            vm_count =3D get_ffa_vm_count();
> +        else
> +            vm_count =3D 1; /* Caller VM only */
> +    }
> +
> +    ret =3D ffa_get_sp_count(uuid, &sp_count);
> +    if ( ret )
> +        goto out;
> +
> +    total_count =3D sp_count + vm_count;
> +
> +    if ( total_count =3D=3D 0 || start_index >=3D total_count )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out;
> +    }
> +
> +    if ( start_index < sp_count )
> +        num_entries =3D ffa_get_sp_partinfo_regs(uuid, start_index, &out=
_regs[3],
> +                                               FFA_PARTINFO_REG_MAX_ENTR=
IES);
> +
> +    if ( num_entries < FFA_PARTINFO_REG_MAX_ENTRIES )
> +    {
> +        uint32_t vm_start =3D start_index > sp_count ?
> +                            start_index - sp_count : 0;
> +        uint32_t filled =3D 0;
> +        void *vm_dst =3D &out_regs[3 + num_entries * 3];
> +        void *vm_end =3D &out_regs[18];
> +
> +        ret =3D ffa_get_vm_partinfo(uuid, vm_start, &filled, &vm_dst, vm=
_end,
> +                                  sizeof(struct ffa_partition_info_1_1))=
;
> +        if ( ret !=3D FFA_RET_OK && ret !=3D FFA_RET_NO_MEMORY )
> +            goto out;
> +
> +        num_entries +=3D filled;
> +    }
> +
> +    if ( num_entries =3D=3D 0 )
> +    {
> +        ret =3D FFA_RET_INVALID_PARAMETERS;
> +        goto out;
> +    }
> +

What if the tag read with ffa_partinfo_get_tag() has changed?

Cheers,
Jens

> +    out_regs[0] =3D FFA_SUCCESS_64;
> +    out_regs[2] =3D ((uint64_t)sizeof(struct ffa_partition_info_1_1) << =
48) |
> +                  ((uint64_t)tag_out << 32) |
> +                  ((uint64_t)(start_index + num_entries - 1) << 16) |
> +                  ((uint64_t)(total_count - 1) & GENMASK(15, 0));
> +
> +    for ( n =3D 0; n < ARRAY_SIZE(out_regs); n++ )
> +        set_user_reg(regs, n, out_regs[n]);
> +
> +    return;
> +
> +out:
> +    if ( ret )
> +        ffa_set_regs_error(regs, ret);
> +}
> +
>  static int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,
>                                        uint8_t msg)
>  {
> diff --git a/xen/arch/arm/tee/ffa_private.h b/xen/arch/arm/tee/ffa_privat=
e.h
> index 1a632983c860..c291f32b56ff 100644
> --- a/xen/arch/arm/tee/ffa_private.h
> +++ b/xen/arch/arm/tee/ffa_private.h
> @@ -289,7 +289,7 @@
>  #define FFA_MSG_SEND2                   0x84000086U
>  #define FFA_CONSOLE_LOG_32              0x8400008AU
>  #define FFA_CONSOLE_LOG_64              0xC400008AU
> -#define FFA_PARTITION_INFO_GET_REGS     0x8400008BU
> +#define FFA_PARTITION_INFO_GET_REGS     0xC400008BU
>  #define FFA_MSG_SEND_DIRECT_REQ2        0xC400008DU
>  #define FFA_MSG_SEND_DIRECT_RESP2       0xC400008EU
>
> @@ -452,6 +452,8 @@ bool ffa_partinfo_init(void);
>  int32_t ffa_partinfo_domain_init(struct domain *d);
>  bool ffa_partinfo_domain_destroy(struct domain *d);
>  void ffa_handle_partition_info_get(struct cpu_user_regs *regs);
> +void ffa_handle_partition_info_get_regs(struct cpu_user_regs *regs);
> +void ffa_partinfo_inc_tag(void);
>
>  int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain *=
*d_out,
>                                     struct ffa_ctx **ctx_out);
> --
> 2.52.0
>


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 16:58:19 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 16:58:19 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242968.1543059 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw1AC-0003YD-Fc; Fri, 27 Feb 2026 16:58:04 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242968.1543059; Fri, 27 Feb 2026 16:58: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 1vw1AC-0003Y6-Bg; Fri, 27 Feb 2026 16:58:04 +0000
Received: by outflank-mailman (input) for mailman id 1242968;
 Fri, 27 Feb 2026 16:58: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=t/s7=A7=gmail.com=oleksii.kurochko@srs-se1.protection.inumbo.net>)
 id 1vw1AA-0003Y0-JB
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 16:58:02 +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 796c37ef-13fd-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 17:58:01 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-436317c80f7so2203762f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 08:58:01 -0800 (PST)
Received: from [192.168.1.6] (user-109-243-67-101.play-internet.pl.
 [109.243.67.101]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm7710937f8f.10.2026.02.27.08.57.58
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Fri, 27 Feb 2026 08:57:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 796c37ef-13fd-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1772211480; x=1772816280; 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=WrmgrbPcMJ4Di3/QQ9JT4CgZ0pcrVSrsfpDaAhlwMnQ=;
        b=XxgpqNM9myj8XWCIaCaC6kD1fvccN3UWdMEYVhAG5fbFkJZpt4ZSGex/IQuOtx4WfB
         lh9MyV8cm2OR8gdXXFaPm400+ev+zsWzW05XSNKiR8M8g7GcqDd3KvvfbnImRcZogjW3
         6w1kkUs6vcdFgmeHWak93W87kCYCXGwJuLtm/sIu+fAHdsLplMhMdmbZwfc+oW5xw/so
         bFjaq8JkqDnas8JYq7QFFaVS/D/v5TE/vCOgtm9E81BdQErbrLIMkM9z++9/m+qHahW3
         HYwg4DRoi0V8nwStHbG7gtBtdTbiWRN+vMmO5FOImUJc2ux1rl/ehqskxP6ucQVCV/Wy
         St7g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772211480; x=1772816280;
        h=content-transfer-encoding:subject:from:cc:to:content-language
         :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state
         :from:to:cc:subject:date:message-id:reply-to;
        bh=WrmgrbPcMJ4Di3/QQ9JT4CgZ0pcrVSrsfpDaAhlwMnQ=;
        b=ip6iXyTm5FmqHnDzAPSPsldHhADtGXafPwj1n1Mx6TPok7gGxx2XgSM0EAitchgzOx
         2VUNr/ktBftW6xSt0quXXMtzAkJgXC1SkSX+Qe0lGstsLAsUw8ASfASP9CEbFRgsssBq
         sA2e5Qc8Yp9U/UZPyI4QVCp3cc3y/Yn1/ZFKf6RlEB4HcC+L3/2dikewvk3EwpeQ/Esk
         lOdONNZwGoeM24LTfxBkECSeFWJ0Qw16Xz+K9v/LqYDO+zLtpaj6GU00AYBHZKAm66PR
         eNGNthXpl78R64v/LABmcbEmMBeas1DwkPnFYmKcfHUXMmUzgxF83hFcwNIu6dC+2l44
         NlXQ==
X-Gm-Message-State: AOJu0YyzbykGbAUodPuc8sykG1Bk9458RT6ej7Fb/FrS+KXPDyREV7ce
	K4+n66dVHW0lwHffbMA/A2jzL/bOGAtX7QiICMwTzSP90/Zl9j+25XA4qPDdtQ==
X-Gm-Gg: ATEYQzwmIMFJC4lbirW09PJL2hW0lGvTFmyCKJW+pUoW6ZOGvEE+nNq+J6RyfrLsnzZ
	Urp2mPRScmgZCmLZnoRyDDZVu5yn3f63F717qEici9PAkl2vQQqSO3M0fgYvy2TENa38I9aPc5T
	51ZmvFqkQAH5H5TvlFD/eXFOzGwX+G4wNLLcZEmXhN7fo/HfAe7qtNGjWZ7ihAN2tksxHA3e0Kh
	FaEOKUSrYgYg4BGmBiuQveAzJ+1yZ/2Si7JGd5QFkz7ElfeZxxZvZSi6VfNcuLZLzHTWZojg9Vv
	MDjwR1sPU567Veqyhfrx62QYZekdn5Wz6PwsDjZ+qdAYkLn3bBf5AQAYgD1dCY45HcqYErKSjMQ
	SqVgqgpGyKA/K5d3GePYsshjs8gYI/ggaScW0I7JVcuG9InCnArzuwN++AGCKDWQdYmb/xlAQNp
	/9WkeS+wmWC6r10R2rBDYiRk3Q/+JwrgVwZE4i+iz//QCGnqnKW696pfwUqejFl+5+qGMAO4bSF
	hE=
X-Received: by 2002:a05:6000:220f:b0:430:2773:84d6 with SMTP id ffacd0b85a97d-4399d9bece3mr6447651f8f.24.1772211478967;
        Fri, 27 Feb 2026 08:57:58 -0800 (PST)
Message-ID: <19c77389-c22f-4501-8ac4-326d42129d2d@gmail.com>
Date: Fri, 27 Feb 2026 17:57:54 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: "committers@xenproject.org" <committers@xenproject.org>,
 Community Manager <community.manager@xenproject.org>
From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Subject: Xen 4.22 release schedule proposal
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello everyone,

I missed that I've not sent 4.22 schedule proposal and it was all the time
in my Drafts folder. Sorry for that.

Following the 8-month release cycle, also taking into account that 4.21
has been released 19th of November 2025, the next "good" month for release
should be July according to:
   https://lists.xen.org/archives/html/xen-devel/2018-07/msg02240.html

Here is suggested schedule:

** Proposed option: Wed Jul 15, 2026 **
   (~ +8 months from Xen 4.21 release)

- Last posting date          Fri Apr 17, 2026 (+7 weeks from now)

Patches adding new features are expected to be posted to the mailing
list by this date, although perhaps not in their final version.

- Feature freeze             Fri May 08, 2026 (+3 weeks from Last posting date)

Patches adding new features should be committed by this date.
Straightforward bugfixes may continue to be accepted by maintainers.

- Code freeze                Fri Jun 05, 2026 (+4 weeks from Feature freeze)

Bugfixes only.

- Hard code freeze           Fri Jun 26, 2026 (+3 weeks from Code freeze)

Bugfixes for serious bugs (including regressions), and low-risk fixes only.

- Final commits              Fri Jul 10, 2026 (+2 weeks from Hard code freeze)

Branch off staging-4.22.

- Release                    Wed Jul 15, 2026


Please don't hesitate to provide your feedback.

If there are no objections, I plan to update the Wiki page
Xen_Project_X.YY_Release_Notes to make it easier to find our final schedule
( especially for the people who aren't following xen-devel mailing list ).
As an additional benefit, it will also be accessible via SUPPORT.md (in the
wiki athttps://xenbits.xen.org/docs/unstable-staging/support-matrix.html).

Thanks and have a good weekend.

Best regards,
   Oleksii



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 17:00:11 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 17:00:11 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242978.1543068 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw1CE-00053M-PJ; Fri, 27 Feb 2026 17:00:10 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242978.1543068; Fri, 27 Feb 2026 17:00: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 1vw1CE-00053F-Mm; Fri, 27 Feb 2026 17:00:10 +0000
Received: by outflank-mailman (input) for mailman id 1242978;
 Fri, 27 Feb 2026 17:00: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=/6pX=A7=bounce.vates.tech=bounce-md_30504962.69a1cd96.v1-f104bc196f53452b83029a520c335318@srs-se1.protection.inumbo.net>)
 id 1vw1CD-00042Z-0q
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 17:00:09 +0000
Received: from mail178-23.suw51.mandrillapp.com
 (mail178-23.suw51.mandrillapp.com [198.2.178.23])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id c48b9449-13fd-11f1-b164-2bf370ae4941;
 Fri, 27 Feb 2026 18:00:07 +0100 (CET)
Received: from pmta13.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail178-23.suw51.mandrillapp.com (Mailchimp) with ESMTP id
 4fMvhQ5v1yz35hfJ8
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 17:00:06 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 f104bc196f53452b83029a520c335318; Fri, 27 Feb 2026 17:00: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: c48b9449-13fd-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772211606; x=1772481606;
	bh=ahChLrMLIwGTkk7Ei8nA/Gjew8ewv7h2QyrhOulApCs=;
	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=cfmFE9uKr9MkLo15hr2SFefN2OMEiV1lBEtxzOdbPAVEeGBADnjdZjje+qLyGrNil
	 EOpYXTXqe3ycTWeBess4aM9f0/+7+T+XvVwDxighHdflt1VsLjPr2oiUqFhM8Wr1FK
	 9ca+YdlEuT1fqADZl0NqUdzyyIqif3oUs4oJfFlLLd2W14zKPuKaWKQanIT2+avjdd
	 K7oIbCQsoli+S3KDp14KmxQSl7qPJ1MSZTs5O8H4HnTdzyHtVrhaPNjrS7MT9IQxMv
	 lamBY5EfeYOdnDRPlxs3fTptlT/AWmp8wndRPj9AWHRA4RAVEMb6C7n46kOeDMJby8
	 dW6UqCutbi5CA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772211606; x=1772472106; i=teddy.astie@vates.tech;
	bh=ahChLrMLIwGTkk7Ei8nA/Gjew8ewv7h2QyrhOulApCs=;
	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=ZPLU303VNGy47vc+9aYZSefKjG8z3MxaELMwJFO4vah+M8qcZ9RNG3kq9XuxCq+Yh
	 cjGxrGV7EqXoAR6iNC5w9k3yr+o4FgGrQWBYZkox0o4V7g8IELx2x1VuxOpjpKCSLJ
	 dLz7AGE+x2tErET9wQjCPxA3HfUkynqa30ZtYzgdFX/BKZ5RneRJ64+E29uc7RvvcJ
	 fQnD1QGwvTyNtk3YjAFW/JbwQ7uvgd7zQ1BJwQKS6MAuE+K3VwmUIHuU7sjQl4VMVt
	 lEpnRQP+lQ+uUEZ7E5wwnCKdR2rFZtVNwFZv4MZX5hqsdi5ZvGqcTHKN9mgR2601K7
	 EM2b6JPc2SQWQ==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v8=202/2]=20xenpm:=20Add=20get-core-temp=20subcommand?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772211606094
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>, "Jan Beulich" <jbeulich@suse.com>
Message-Id: <aadf2e78f91f442964cc4e93c028b6b31fceb9eb.1772211384.git.teddy.astie@vates.tech>
In-Reply-To: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.git.teddy.astie@vates.tech>
References: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.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.f104bc196f53452b83029a520c335318?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260227:md
Date: Fri, 27 Feb 2026 17:00:06 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

get-core-temp allows querying the per-core CPU temperature and
per-package one on processors that supports Digital Temperature Sensors
(most Intel processors; as usual Dom0 drivers cannot work due to
misalignment between Dom0 vCPU and pCPUs).

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
CC: Jan Beulich <jbeulich@suse.com>

v4: https://lore.kernel.org/xen-devel/cover.1766158766.git.teddy.astie@vate=
s.tech/
v5: Removed trailing whitespace.
v6: Report errors through errno and use strerror() to display them
v7:
 - Rename get-intel-temp with get-dts-temp
 - handle properly errno
 - make process return a error code if no data
v8:
 - update Changelog
 - improve error handling
 - rename core-dts-temp with get-core-temp

 CHANGELOG.md       |   2 +
 tools/misc/xenpm.c | 127 ++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 128 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18f3d10f20..ac2a0412e0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,8 @@ The format is based on [Keep a Changelog](https://keepach=
angelog.com/en/1.0.0/)
    - Support for Bus Lock Threshold on AMD Zen5 and later CPUs, used by Xe=
n to
      mitigate (by rate-limiting) the system wide impact of an HVM guest
      misusing atomic instructions.
+   - Introduce get-core-temp to xenpm to query CPU temperatures on Intel
+     platforms.
 
 ### Removed
  - On x86:
diff --git a/tools/misc/xenpm.c b/tools/misc/xenpm.c
index 682d092479..981d3ec519 100644
--- a/tools/misc/xenpm.c
+++ b/tools/misc/xenpm.c
@@ -32,11 +32,14 @@
 
 #include <xen-tools/common-macros.h>
 
+#include <xen/asm/msr-index.h>
+
 #define MAX_PKG_RESIDENCIES 12
 #define MAX_CORE_RESIDENCIES 8
 
 static xc_interface *xc_handle;
 static unsigned int max_cpu_nr;
+static xc_physinfo_t physinfo;
 
 /* help message */
 void show_help(void)
@@ -93,6 +96,7 @@ void show_help(void)
             "                                           units default to \=
"us\" if unspecified.\n"
             "                                           truncates un-repre=
sentable values.\n"
             "                                           0 lets the hardwar=
e decide.\n"
+            " get-core-temp          [cpuid]      get CPU temperature for =
<cpuid> or all (Intel only)\n"
             " start [seconds]                     start collect Cx/Px stat=
istics,\n"
             "                                     output after CTRL-C or S=
IGINT or several seconds.\n"
             " enable-turbo-mode     [cpuid]       enable Turbo Mode for pr=
ocessors that support it.\n"
@@ -1354,6 +1358,127 @@ void enable_turbo_mode(int argc, char *argv[])
                 errno, strerror(errno));
 }
 
+static int fetch_dts_temp(xc_interface *xch, uint32_t cpu, bool package, i=
nt *temp)
+{
+    xc_resource_entry_t entries[] =3D {
+        { .idx =3D package ? MSR_PACKAGE_THERM_STATUS : MSR_IA32_THERM_STA=
TUS },
+        { .idx =3D MSR_TEMPERATURE_TARGET },
+    };
+    struct xc_resource_op ops =3D {
+        .cpu =3D cpu,
+        .entries =3D entries,
+        .nr_entries =3D ARRAY_SIZE(entries),
+    };
+    int tjmax;
+
+    int ret =3D xc_resource_op(xch, 1, &ops);
+
+    switch ( ret )
+    {
+    case 0:
+        /* This CPU isn't online or can't query this MSR */
+        return -1;
+
+    case 1:
+    {
+        /*
+         * The CPU doesn't support MSR_TEMPERATURE_TARGET, we assume it's =
100
+         * which is correct aside a few selected Atom CPUs. Check Linux
+         * kernel's coretemp.c for more information.
+         */
+        static bool has_reported_once =3D false;
+
+        if ( !has_reported_once )
+        {
+            fprintf(stderr, "MSR_TEMPERATURE_TARGET is not supported, assu=
me "
+                            "tjmax =3D 100, readings may be incorrect.\n")=
;
+            has_reported_once =3D true;
+        }
+
+        tjmax =3D 100;
+        break;
+    }
+
+    case 2:
+        tjmax =3D (entries[1].val >> 16) & 0xff;
+        break;
+
+    default:
+        if ( ret > 0 )
+        {
+            fprintf(stderr, "Got unexpected xc_resource_op return value: %=
d", ret);
+            errno =3D EINVAL;
+        }
+        return -1;
+    }
+
+    *temp =3D tjmax - ((entries[0].val >> 16) & 0xff);
+    return 0;
+}
+
+static void get_core_temp(int argc, char *argv[])
+{
+    int temp =3D -1, cpu =3D -1;
+    unsigned int socket;
+    bool has_data =3D false;
+
+    if ( argc > 0 )
+        parse_cpuid(argv[0], &cpu);
+
+    if ( cpu !=3D -1 )
+    {
+        if ( !fetch_dts_temp(xc_handle, cpu, false, &temp) )
+            printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+        else
+        {
+            fprintf(stderr, "Unable to fetch temperature (%d - %s)\n",
+                    errno, strerror(errno));
+            printf("No data\n");
+            exit(ENODATA);
+        }
+        return;
+    }
+
+    /* Per socket measurement */
+    for ( socket =3D 0, cpu =3D 0; cpu < max_cpu_nr;
+          socket++, cpu +=3D physinfo.cores_per_socket * physinfo.threads_=
per_core )
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, true, &temp) )
+        {
+            fprintf(stderr,
+                    "[Package%u] Unable to fetch temperature (%d - %s)\n",
+                    cpu, errno, strerror(errno));
+            continue;
+        }
+
+        has_data =3D true;
+        printf("Package%u: %d=C2=B0C\n", socket, temp);
+    }
+
+    if ( has_data )
+        /* Avoid inserting a trailing line if we have nothing */
+        printf("\n");
+
+    for ( cpu =3D 0; cpu < max_cpu_nr; cpu +=3D physinfo.threads_per_core =
)
+    {
+        if ( fetch_dts_temp(xc_handle, cpu, false, &temp) )
+        {
+            fprintf(stderr, "[CPU%d] Unable to fetch temperature (%d - %s)=
\n",
+                    cpu, errno, strerror(errno));
+            continue;
+        }
+
+        has_data =3D true;
+        printf("CPU%d: %d=C2=B0C\n", cpu, temp);
+    }
+
+    if ( !has_data )
+    {
+        printf("No data\n");
+        exit(ENODATA);
+    }
+}
+
 void disable_turbo_mode(int argc, char *argv[])
 {
     int cpuid =3D -1;
@@ -1618,12 +1743,12 @@ struct {
     { "set-max-cstate", set_max_cstate_func},
     { "enable-turbo-mode", enable_turbo_mode },
     { "disable-turbo-mode", disable_turbo_mode },
+    { "get-core-temp", get_core_temp },
 };
 
 int main(int argc, char *argv[])
 {
     int i, ret =3D 0;
-    xc_physinfo_t physinfo;
     int nr_matches =3D 0;
     int matches_main_options[ARRAY_SIZE(main_options)];
 
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




From xen-devel-bounces@lists.xenproject.org Fri Feb 27 17:00:14 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 17:00:14 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1242979.1543078 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw1CH-0005HO-WE; Fri, 27 Feb 2026 17:00:14 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1242979.1543078; Fri, 27 Feb 2026 17:00: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 1vw1CH-0005HD-T6; Fri, 27 Feb 2026 17:00:13 +0000
Received: by outflank-mailman (input) for mailman id 1242979;
 Fri, 27 Feb 2026 17:00: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=W1wc=A7=bounce.vates.tech=bounce-md_30504962.69a1cd95.v1-182cc8d51744457299956a58e4276c59@srs-se1.protection.inumbo.net>)
 id 1vw1CG-0005Gc-Eu
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 17:00:12 +0000
Received: from mail178-23.suw51.mandrillapp.com
 (mail178-23.suw51.mandrillapp.com [198.2.178.23])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id c3f03532-13fd-11f1-9ccf-f158ae23cfc8;
 Fri, 27 Feb 2026 18:00:06 +0100 (CET)
Received: from pmta13.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1])
 by mail178-23.suw51.mandrillapp.com (Mailchimp) with ESMTP id
 4fMvhP14fQz35hfhB
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 17:00:05 +0000 (GMT)
Received: from [37.26.189.201] by mandrillapp.com id
 182cc8d51744457299956a58e4276c59; Fri, 27 Feb 2026 17:00:05 +0000
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: c3f03532-13fd-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com;
	s=mte1; t=1772211605; x=1772481605;
	bh=nrZwECs8bOqQeYNSv33eeW45fB4l4JUdNYmvcTvImHE=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=vzdMnd6Ja2yDkupZRQK9SzYhyDmqBBLQv5rZlsGGX2s2IgAs0YYYWqeHvx+O9ycLn
	 VwqfzLuAgz3bQTb94/F11ZcAdCO/dF+Klj+XmYItrSjYvxwlxUgurz9ay7g5iHzdOR
	 LIi/z3YS6V0ZFLl/eHBFVFLSVVYNk88o6RtM34aSQQeq6eiok0V7hgwybsGrUxVmv+
	 PP7c6kTyNl82EnZOlDFChZUPJtMUwVapIailWnPVLtqyIQ1O7r0mLEeLkOyhOYfTIT
	 x8g6RToYNTjtngt88liGmju5ZRNMvX2omv735YSF6mOjCgqRCYW8SmcVuNkNFo3PvI
	 mSmeX5DugFD5g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1;
	t=1772211605; x=1772472105; i=teddy.astie@vates.tech;
	bh=nrZwECs8bOqQeYNSv33eeW45fB4l4JUdNYmvcTvImHE=;
	h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version:
	 Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From;
	b=EcP1DRpkU873ynvEMoJt5lI9ZZqce0msDmil5Xm19KsZXpTy6oxo6W8/XqAxBKsLQ
	 OFXBGosR0rqlr1PTuM1Ie8gald91ocIFppGeXMeUtuviAPZDj32m+MzNLQGktZoMaX
	 5mVtT8kNDo8XyzbX1GfaBn2HHsoviSMIzHRqPJTEKssvezqHTDIgXen8T92tSJN03q
	 IVhx8v6uvaU3+j46xYWGgGsRRTqZrH539cTsSlXYtkpOh7E7jpioGESSEM+ZkgpgjK
	 SsyyRjIawMOB1IpS1edjcq9yE6xHgg828cDGKMMgtuKJYTL9Mv/mOFuyBKvVvwjyNA
	 uTquLT773y6WA==
From: "Teddy Astie" <teddy.astie@vates.tech>
Subject: =?utf-8?Q?[PATCH=20v8=201/2]=20libxc:=20Report=20consistent=20errors=20in=20xc=5Fresource=5Fop?=
X-Mailer: git-send-email 2.53.0
X-Bm-Disclaimer: Yes
X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2
X-Bm-Transport-Timestamp: 1772211604427
To: xen-devel@lists.xenproject.org
Cc: "Teddy Astie" <teddy.astie@vates.tech>, "Anthony PERARD" <anthony.perard@vates.tech>, "Juergen Gross" <jgross@suse.com>
Message-Id: <ec92e54a493a16f5bc085738e943b3778c3a0231.1772211384.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.182cc8d51744457299956a58e4276c59?=
X-Mandrill-User: md_30504962
Feedback-ID: 30504962:30504962.20260227:md
Date: Fri, 27 Feb 2026 17:00:05 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

xc_report_op doesn't update errno in some error conditions.
Make sure it reports -ENOMEM in out of memory errors and -EINVAL
in invalid usages errors.

Signed-off-by: Teddy Astie <teddy.astie@vates.tech>
---
v7: Introduced
v8: Use errno to report errors

 tools/libs/ctrl/xc_resource.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tools/libs/ctrl/xc_resource.c b/tools/libs/ctrl/xc_resource.c
index cb6a97202b..ac1524d1bd 100644
--- a/tools/libs/ctrl/xc_resource.c
+++ b/tools/libs/ctrl/xc_resource.c
@@ -28,7 +28,10 @@ static int xc_resource_op_one(xc_interface *xch, xc_resource_op_t *op)
                                 XC_HYPERCALL_BUFFER_BOUNCE_BOTH);
 
     if ( xc_hypercall_bounce_pre(xch, entries) )
+    {
+        errno = ENOMEM;
         return -1;
+    }
 
     platform_op.cmd = XENPF_resource_op;
     platform_op.u.resource_op.nr_entries = op->nr_entries;
@@ -54,11 +57,15 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
     call_list = xc_hypercall_buffer_alloc(xch, call_list,
                                           sizeof(*call_list) * nr_ops);
     if ( !call_list )
+    {
+        errno = ENOMEM;
         return -1;
+    }
 
     platform_ops = xc_hypercall_buffer_array_create(xch, nr_ops);
     if ( !platform_ops )
     {
+        errno = ENOMEM;
         rc = -1;
         goto out;
     }
@@ -66,6 +73,7 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
     entries_list = xc_hypercall_buffer_array_create(xch, nr_ops);
     if ( !entries_list )
     {
+        errno = ENOMEM;
         rc = -1;
         goto out;
     }
@@ -81,6 +89,7 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
                         platform_op, sizeof(xen_platform_op_t));
         if ( !platform_op )
         {
+            errno = ENOMEM;
             rc = -1;
             goto out;
         }
@@ -90,6 +99,7 @@ static int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_
                    entries, entries_size);
         if ( !entries)
         {
+            errno = ENOMEM;
             rc = -1;
             goto out;
         }
@@ -137,6 +147,7 @@ int xc_resource_op(xc_interface *xch, uint32_t nr_ops, xc_resource_op_t *ops)
     if ( nr_ops > 1 )
         return xc_resource_op_multi(xch, nr_ops, ops);
 
+    errno = EINVAL;
     return -1;
 }
 
-- 
2.53.0



--
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 18:01:15 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 18:01:15 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243026.1543091 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw296-00055R-7A; Fri, 27 Feb 2026 18:01:00 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243026.1543091; Fri, 27 Feb 2026 18: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 1vw296-00055K-3b; Fri, 27 Feb 2026 18:01:00 +0000
Received: by outflank-mailman (input) for mailman id 1243026;
 Fri, 27 Feb 2026 18: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=kH+Z=A7=citrix.com=edwin.torok@srs-se1.protection.inumbo.net>)
 id 1vw294-00055E-RO
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 18:00:58 +0000
Received: from SJ2PR03CU001.outbound.protection.outlook.com
 (mail-westusazlp170120002.outbound.protection.outlook.com
 [2a01:111:f403:c001::2])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 4395c34f-1406-11f1-9ccf-f158ae23cfc8;
 Fri, 27 Feb 2026 19:00:56 +0100 (CET)
Received: from SA3PR03MB7419.namprd03.prod.outlook.com (2603:10b6:806:39c::6)
 by CH0PR03MB6177.namprd03.prod.outlook.com (2603:10b6:610:d0::17)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb
 2026 18:00:50 +0000
Received: from SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc]) by SA3PR03MB7419.namprd03.prod.outlook.com
 ([fe80::8254:2aeb:5a33:a6dc%6]) with mapi id 15.20.9654.014; Fri, 27 Feb 2026
 18: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: 4395c34f-1406-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=o9ZaPLHvAJXdcTTarA3X7gAgxsYtsiqHq09XWfOj9P/xgDoudGh7R15by9vDbZrMEDQXq5txxA28erFGgQgH87lbETa5ATeUXfBqMYmOG7/1AUeMMc/96D4Qp1lDeMrEblLCjJve9uFyE2wvvNdGn8EPdTHwxs32i/MmIaKnUxcaZdx85PFqW8JxeJi4W5xTtH4F3kM5DclaipSroIKoUHyRksNveOxPLrTFMsBF4F9JKyIqk1LvQXcwSqk0APLJ2AG+9cLLP60KQHo1QxiYK3arQa7fQvtpbBphcI+tNu5oCRBCeXLvtdZVxqznzGg4H9cO+VmOsqb+N3qgt8Lygw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=5gWzCdg5gadUerYjYxhYNLwRHOAFmjO1JP/VTpiILQg=;
 b=Gbz6r6sYZyAjbyLOUAuJll9jJwFOwbi9DREUqKYFNOW29Dlpie9Z2WAwIWgLZv9WqMjJGBYhOqu3Lu7zhUSj8lU9OrSTbTdVXcAsF0u1azHPfvvBY3qw2QK3q091Dp1ghl5S0DPli+Bh7SJuMJMFNw7jUCqeDV+3lq99nvLWdTgN8z7pUGMHCTYs6QM5RH+sHAx3rdIf0MldLjzFicFmZ1ijtd680NKUrPp57oLlK+BNT47ms985p0nKTXYqeoeBO6r8lJ4IaR9QycAo/E3aX3Vtb275ikOME5OXfaP2hSIuNLRirpScwW2o1i+KyBHO7ZUDCrpeM6+5qD9ATMfKAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5gWzCdg5gadUerYjYxhYNLwRHOAFmjO1JP/VTpiILQg=;
 b=ZWPJwZVUg4TbbtcWibjd4MrLDQE7JjPu4h3S7ov0prrwAUvU1gvMIQchxis15mwAtFkJZre3EFKV9240V7W1tqefPMtdju+Y0TarFJgsWMRNgIOKKCQLHQ3YcjjOhNsNFrfy1jNYrJcyh8r5gZ+FUGXDNfc/eqByQ0VTBOWF9Ck=
From: Edwin Torok <edwin.torok@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
CC: Anthony PERARD <anthony.perard@vates.tech>, Andrew Cooper
	<andrew.cooper3@citrix.com>, Roger Pau Monne <roger.pau@citrix.com>, Stewart
 Hildebrand <stewart.hildebrand@amd.com>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>, Denis Mukhin <dmukhin@ford.com>
Subject: Re: [PATCH 0/7] Factor out common build rules and helpers in
 tools/tests
Thread-Topic: [PATCH 0/7] Factor out common build rules and helpers in
 tools/tests
Thread-Index: AQHcpK0ssUh7hdj8f0mNZT6LyhFCMLWQGOWAgAbDtQA=
Date: Fri, 27 Feb 2026 18:00:49 +0000
Message-ID: <EFC38170-BA34-49E2-8628-219EF6EC3301@citrix.com>
References: <cover.1771840831.git.edwin.torok@citrix.com>
 <dba3fb3f-b5c9-460c-85fc-761f58e140fc@suse.com>
In-Reply-To: <dba3fb3f-b5c9-460c-85fc-761f58e140fc@suse.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-mailer: Apple Mail (2.3864.400.21)
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA3PR03MB7419:EE_|CH0PR03MB6177:EE_
x-ms-office365-filtering-correlation-id: 27c6d438-d8ff-4058-d8b9-08de762a2410
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 RUPPF419/0pFY8JUaUUyGrFqjABwpdh6NSdIh7/InwtYSFO0d5xa+uwSmUKoFLDwxyBcVDLLm0aOWksa/LKyfU4/gfu6xKs1fFJbt4jDDNyj/AcOWyh/uBmGiDnOBX9oeegBKpw7AzmCpYRroyzf29t+50YEkWIpLu7w5OWpNZ28/qqGVLnEGwUTNcJvc89rKrNwBjxP2S2oTL0xx+5qL103QtXluM1e7grFHpSyveshb7v4R7mH8UM1n8trY0gQQHIhihI3XSVviTxGf2mbyWXq1LAoyq/Ne3BtN89mcv2KStYy7DCxNW8/BXPR6c4+Hf9bbuBB3IIf7IWuy2yxzzg3ohrrQznHaaeWxQYmvHh6z1S42Ja3HJmXiiXl3yC8qYbCddwCOIRmup6U/AAs1y8YB7X8Ig4S0SL5rohc42SoIsKeIliCe0op72Tra5xQ/mJhxTXDmXCxw/s4dsRANoBmcz7KO5Jw3GECNWIFBJibrFaJK/NK8fS4dCsLhLWy/3gWnKixv9joG1Ikb1wBcIRaDTnhkWqdk+oLiNI7CsQRvvI90W2BAvVAzHpOmccIOjRTgZTxZzWlCspDYWCP8ooBgH/tJOdTWh85rImINE/SWhMZFUxfUckkQ0KYCxqXr4WwGczjhoDLEbSaYdhCnHDVknTG73sCA9Ym9KCIiePL+aLGupytRRlwBuPkSH7d4Iskbs3twLIQiwMmMiXf0BTJNP+iW1l0WqpW8SHVBXcw9ZLuf34VdSg6jI4cciES
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR03MB7419.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?OUVhN21nOWdGbE1DNUc5Rmk5RDN2am9TNjlNcWdoKyszYVhEZWduVWh4RzFL?=
 =?utf-8?B?NjVmSEEvcFdqVTh5cjQwNTlYNWhMUkdPM20vbjhycEdUd3J6ZllrYy9mbEli?=
 =?utf-8?B?UFdjakJsUnEwcFBLbVcxa3k5L1l5dnZ6NUdYdkJBUWYrK1c2dVZUaCtXSmxz?=
 =?utf-8?B?VnpBcFZnVStJN3loZ0RaZVhxdFVYL2tjbUtLVG4xNzh1VUZmUmtLK0I3Wjl3?=
 =?utf-8?B?aHIzM3gxYWN3VFkwWlpOTkZXTFdaSVFQOElEMmpGaXkwU21DZFhrMXJmbWxW?=
 =?utf-8?B?TFNzRFhhYnBUSzA2aU5KVytveWtiQkRjMSt4Y09mOVlwWXJyRk9DSWxNSXNS?=
 =?utf-8?B?M2xsejRHTThwT1BjRXh5cWFld1dyZ0hnVmdGTHIvYks2SWNuNEp2YzA5RFVy?=
 =?utf-8?B?K2FrRG4vcWYreVVlc2h3bzJMaFlEQVBQdVNZbXUvakp0eWpRTnYxR3hBbGlW?=
 =?utf-8?B?WFVLR3NmbnNWSzNEa0ZkUHRmR0FuSEpMNHdDYSs1MzJqcGUxc25VUDJhWUcr?=
 =?utf-8?B?c0tWVU5zelZjSlIybHRqV004K0hROWJPSXRFY2ZxQmlUKzNzNFdoOWJhdkZO?=
 =?utf-8?B?akxuaG5vZm1PV1dsbkFrUnNyeWdvM1lGNFlUVnNKc1l2QzNmdWRVaUJZN3ll?=
 =?utf-8?B?eWJ2Ti9abW90TExJSkFtOVRuSnVxVW9sZERGVUo1c1NvN2JWT0RtTGF6Kzlr?=
 =?utf-8?B?YldJQVFzc0NTc1AyL1dpSElOS0hIVW4wTklEWnhwUVF5ZkFXWGZEVFVFNGk4?=
 =?utf-8?B?S2lVUkFQSW9ZSUpkYWExWGI1SnhCRWN1Y2phOFhlREtGS1Y2TG1HNXc5YnZp?=
 =?utf-8?B?aHV3TDBmOElsRFJjSGNocUFPNE44ZjBPOFF1cFNRdCtleDRYSUs5SlNiTVFF?=
 =?utf-8?B?WWtzV2t1NmhwUDY4QUJ3dmFLRURoeERJd0pOeU5xdGFvdDFBZnBwMjRJbE9p?=
 =?utf-8?B?NDRzd0tZOTBQK01MNUhRR3o2cDNFaWV6bUM0aGhOVlBzbk42d3k5eTFDYzZV?=
 =?utf-8?B?dlhHbXZBbFcwa2Y2RE0zVWdYanJSVGtYaFpvVzEydU5ydjRZU1czVDNsWkVy?=
 =?utf-8?B?MVkwT3VTWW41Y0ZDZUVuZ0xVY0hwdGFUcjVWVHRKT2E0clpuaW4wNzlYN1ky?=
 =?utf-8?B?cm56VlR2MGZwZjdRUlNCMnhmeThKRW1FTzdJSUxrd1hOVjlGNHFVSkhEK0s1?=
 =?utf-8?B?dDFmNU9wTEorZEhlWTMrcGZEdG1sbTBvdkkxek1HM1c5VXZ1WFMyWDhYYldT?=
 =?utf-8?B?akhKZFZha0Vrb3hqUW0yYWJ6YXZXYWxXbW9XTWoxU0JNazNRdWYvSWFvWXNW?=
 =?utf-8?B?ZS8wT0xjNWJFSitZRzNzRFRnRjRlZjBERGp0Q1dUR2Z1a1BuQ2QzSUNMcVhS?=
 =?utf-8?B?UUtaQzBOYTJXYnlBbFh1K3c4ZzhBcnlFOXptOWVTUWdEa0hTelJBcm85SWJW?=
 =?utf-8?B?S3RIMWI0UnhOdENldmt4TDNjZEdKWmhFam5Tc3NteStKQ2VYUHQ4WXZhRERF?=
 =?utf-8?B?a1RrSE1IdWI4dmVUM3F0a3VMMFlJcVp5OTZ1MVNudUp5bHFkeGwvcXJsZThV?=
 =?utf-8?B?NWxwVlBMMFEzd2p1RWdXN1JocmlVeU43ZVdUcFQvblFVQ0xIVkxHUUMwM1NL?=
 =?utf-8?B?VjMyQW0vM2ZkM01EcXRQYmtPb1lHdGVNRXpESmxqOHIwZVlxVWs1K1U2TElk?=
 =?utf-8?B?cjdVVTFKTVRLbTJiWFc3V2R3ZE1BWGZIZTN1TVBnYSt4M3JFMDUxK2NsWUlB?=
 =?utf-8?B?ME9Uby9VMFhTR2VYeEhDQU9GNlBjL0VxcS92bk0rWi9sTkc5eHdPdU1MMkhZ?=
 =?utf-8?B?TmdmMlcwank0cVFaTkxYTGVTUWlTK05wZUFlMU5RUzA1M3JKTVdtZDVzVHNn?=
 =?utf-8?B?cmp2L2d0UHo3SktvRDlsaHRFeFZuVWpITHVOcUpGaEpNbEk2c21aUTIrR01S?=
 =?utf-8?B?V1pjc1dTK1hHS2Z6dTd3MXV6TFdyQ3VkaXgrWWFSSUxOekpiNFBVa2RiZXpr?=
 =?utf-8?B?elI5WGtmbHBOUEdiUTM2cHVtbzAyNUw2Zk1sUjVSUENlemdnUWQ3dmtkbEp2?=
 =?utf-8?B?ZDEzZzV4eCtLVmw2WE85TGZwNWZDWWhsWEh6WkxrYXJyclZDenFjTUFDVW9L?=
 =?utf-8?B?TGowL2pjT2UyaUdWbWcvaGgzNEovZTNuTjNzVVhPRHRPb09XUGVJTDdKVGsr?=
 =?utf-8?B?elRLcExlcG9aVzBrWExVOHR3ZlVEeEFxdlhxMkVGdVEvb1cvOFFnOU9WZHNh?=
 =?utf-8?B?M3hEZGEwb3pVS3QzOEEyeHV2UDA1VXRmaXBXQnMvSnFxZGhYcE9odkVnQ3BJ?=
 =?utf-8?B?N1N1WGovYzVBaTZqR0ZyR3UyTXJpRm9TZGZVTjIwTVZIejRSRnl0a1JuY3NH?=
 =?utf-8?Q?VYg8S0yvLGv0lS78=3D?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <8498EDCC4FE29D46BF69E33090F81EDB@namprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA3PR03MB7419.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 27c6d438-d8ff-4058-d8b9-08de762a2410
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2026 18:00:49.8743
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Qhd2xh86j2Qi04jLVe1pDU4KlrDzrDkIJkTG2T6TIdsJ1TmZRpfCXIQi5yJHE8/0HdZWvXVOHlLW5LhcphEkBA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR03MB6177

DQo+IE9uIDIzIEZlYiAyMDI2LCBhdCAxMDo0MiwgSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu
Y29tPiB3cm90ZToNCj4gDQo+IE9uIDIzLjAyLjIwMjYgMTE6MTQsIEVkd2luIFTDtnLDtmsgd3Jv
dGU6DQo+PiBUaGVyZSBhcmUgYSBsb3Qgb2YgZHVwbGljYXRlIHJ1bGVzIGFuZCBjb2RlIGluIHRv
b2xzL3Rlc3RzLg0KPj4gVG8gc2ltcGxpZnkgd3JpdGluZyBuZXcgdGVzdHMgbW92ZSBjb21tb24g
YnVpbGQgcnVsZXMgaW50byBhDQo+PiBgdG9vbHMvdGVzdHMvUnVsZXMubWtgLCBhbmQgaGVscGVy
IG1hY3Jvcy9mdW5jdGlvbnMgaW50byBgY29tbW9uL3t0ZXN0cyxndWVzdHN9LntjLGh9YC4NCj4+
IA0KPj4gVGhpcyBhbHNvIGVuc3VyZXMgdGhhdCBDRkxBR1MgYXJlIGFwcGxpZWQgY29uc2lzdGVu
dGx5IGFjcm9zcyBhbGwgdGVzdHMgKGUuZy4gb25lIHRlc3QgZmFpbGVkDQo+PiB0byBidWlsZCBu
b3cgZHVlIHRvIGFuIHVudXNlZCB2YXJpYWJsZSBlcnJvcikuDQo+PiANCj4+IEd1ZXN0IGNyZWF0
aW9uIGFsc28gbmVlZHMgdG8gdGVzdCBmb3IgdGhlIHByZXNlbmNlIG9mIFBWLCBIVk0gSEFQIG9y
IEhWTSBzaGFkb3cgc3VwcG9ydA0KPj4gaW4gWGVuIGFuZCBjcmVhdGUgYSBndWVzdCBhY2NvcmRp
bmdseS4gVGhpcyBjYW4gYmUgc2hhcmVkLg0KPj4gDQo+PiBBZnRlciB0aGVzZSBjaGFuZ2VzIHRo
ZSBwZXItdGVzdCBNYWtlZmlsZSBvbmx5IGNvbnRhaW5zIGVudHJpZXMgc3BlY2lmaWMNCj4+IHRv
IHRoZSB0ZXN0IChpdHMgbmFtZSwgZGVwZW5kZW5jaWVzLCBldGMuKSBhbmQgYXZvaWRzIGhhdmlu
ZyB0bw0KPj4gY29weSZwYXN0ZSBib2lsZXJwbGF0ZSBjb2RlLg0KPj4gDQo+PiBgdG9vbHMvdGVz
dHMveDg2X2VtdWxhdG9yYCByZW1haW5zIHVuY2hhbmdlZCwgYmVjYXVzZSB0aGUgTWFrZWZpbGUN
Cj4+IGNvbnRhaW5zIGEgbG90IG9mIGNvbmRpdGlvbmFsIGJ1aWxkIGxvZ2ljIHNwZWNpZmljIHRv
IHRoYXQgdGVzdC4NCj4+IA0KPj4gQW4gdXBjb21pbmcgcGF0Y2ggc2VyaWVzIHdpbGwgaW50cm9k
dWNlIG5ldyB0ZXN0cyB1c2luZyB0aGUgc2ltcGxpZmllZA0KPj4gTWFrZWZpbGUgYW5kIHNoYXJl
ZCBoZWxwZXJzLg0KPj4gDQo+PiBGb3IgY29udmVuaWVuY2UgdGhpcyBpcyBhbHNvIGF2YWlsYWJs
ZSBhdDoNCj4+IGh0dHBzOi8vZ2l0bGFiLmNvbS94ZW4tcHJvamVjdC9wZW9wbGUvZWR3aW50b3Jv
ay94ZW4vLS9jb21wYXJlL3N0YWdpbmcuLi5wcml2YXRlJTJGZWR2aW50JTJGbWlncmF0aW9uLXRl
c3RzMj9mcm9tX3Byb2plY3RfaWQ9MjMzNjU3Mg0KPj4gaHR0cHM6Ly9naXRsYWIuY29tL3hlbi1w
cm9qZWN0L3Blb3BsZS9lZHdpbnRvcm9rL3hlbi8tL3BpcGVsaW5lcy8yMzQyMzE4NzE2DQo+PiAN
Cj4+IEVkd2luIFTDtnLDtmsgKDcpOg0KPj4gIHRvb2xzL3Rlc3RzLyovTWFrZWZpbGU6IGZhY3Rv
ciBvdXQgY29tbW9uIFBIT05ZIHJ1bGVzIGludG8gUnVsZXMubWsNCj4+ICB0b29scy90ZXN0cy92
cGNpL21haW4uYzogZHJvcCB1bnVzZWQgdmFyaWFibGVzDQo+PiAgdG9vbHMvdGVzdHMvKi9NYWtl
ZmlsZTogZmFjdG9yIG91dCBidWlsZCBydWxlcw0KPj4gIHRvb2xzL3Rlc3RzOiBmYWN0b3Igb3V0
IGNvbW1vbiBoZWxwZXJzDQo+PiAgdG9vbHMvdGVzdHMvY29tbW9uOiBlbnN1cmUgZXJyb3IgbWVz
c2FnZXMgaGF2ZSBhIG5ld2xpbmUNCj4+ICB0b29scy90ZXN0cy90c3g6IG1vdmUgZ3Vlc3QgY3Jl
YXRpb24gdG8gY29tbW9uIGFyZWENCj4+ICB0b29scy90ZXN0czogcHJpbnQgbW9yZSBkZWJ1ZyBp
bmZvDQo+IA0KPiBKdXN0IGZ5aSB0aGF0IHRoZXJlIGlzIGFsc28NCj4gaHR0cHM6Ly9saXN0cy54
ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMjYtMDIvbXNnMDA3NTEuaHRtbC4NCj4g
Q2FuIHRoZSB0d28gb2YgeW91IG1heWJlIHdvcmsgdG9nZXRoZXIgdG8gaGF2ZSBhIHNpbmdsZSBy
ZXN1bHRpbmcgYXBwcm9hY2g/DQo+IA0KPiBKYW4NCg0KVGhlcmUgaXMgZGVmaW5pdGVseSBhIGxv
dCBpbiBjb21tb24gYmV0d2VlbiB0aGUgdHdvIHNlcmllcywgYW5kIEnigJltIHRhbGtpbmcgd2l0
aCBEZW5pcy4NClRoZSBNYWtlZmlsZSBjbGVhbnVwcyB0aGF0IGJvdGggb2YgdXMgaGF2ZSBkb25l
IGNhbiBwcm9iYWJseSBnbyBpbiBmaXJzdCBhcyBwYXJ0IG9mIGEgc2hhcmVkIHNlcmllcywNCkni
gJlsbCB0cnkgdG8gc2V0dXAgYSBjb21iaW5lZCBicmFuY2ggdG8gc2VlIGhvdyB0aGF04oCZZCBs
b29rIGxpa2UuDQoNCkJlc3QgcmVnYXJkcywNCuKAlEVkd2lu


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 18:17:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 18:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243039.1543101 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw2OJ-0006rw-K2; Fri, 27 Feb 2026 18:16:43 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243039.1543101; Fri, 27 Feb 2026 18:16: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 1vw2OJ-0006rp-Gb; Fri, 27 Feb 2026 18:16:43 +0000
Received: by outflank-mailman (input) for mailman id 1243039;
 Fri, 27 Feb 2026 18:16: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=wuQT=A7=citrix.com=bernhard.kaindl@srs-se1.protection.inumbo.net>)
 id 1vw2OI-0006rj-2r
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 18:16:42 +0000
Received: from DM1PR04CU001.outbound.protection.outlook.com
 (mail-centralusazlp170100005.outbound.protection.outlook.com
 [2a01:111:f403:c111::5])
 by se1-gles-flk1.inumbo.com (Halon) with ESMTPS
 id 737c2821-1408-11f1-9ccf-f158ae23cfc8;
 Fri, 27 Feb 2026 19:16:36 +0100 (CET)
Received: from LV3PR03MB7707.namprd03.prod.outlook.com (2603:10b6:408:28b::21)
 by DS4PR03MB8446.namprd03.prod.outlook.com (2603:10b6:8:322::13) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.14; Fri, 27 Feb
 2026 18:16:31 +0000
Received: from LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf]) by LV3PR03MB7707.namprd03.prod.outlook.com
 ([fe80::97e8:ef9c:9031:e2bf%6]) with mapi id 15.20.9654.015; Fri, 27 Feb 2026
 18:16: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: 737c2821-1408-11f1-9ccf-f158ae23cfc8
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=NrJ8mu874/FSqduttOYqOVXZMybiF3ZYzUS68rTyfGfdmPB3Bn5gcngz0+hGPlKIzNPN1mj+sFHaOL7/Pc3uA9KnFqXekoAxiH35Qdfst4edXbODr//SPDNy2WRVf4tAwyopvOaHHn81qzcl9SI7pC+LIkC6NzRRqkZn5iPOyf4y4o0duyCgXCtXu/1Ji3MJ+/Cl1WoibrEF1B9MpNe36ZfKA5icustEsIISSbthoopfJesAQCtMU7MJSW1yio/GdTVl2/U3z8JDifJTmFcn2osU65emR7DqksTn3J3ZtSWn4dAwyw1D1WQSUKpMc8T6st6egjdPt+F2iDuaEtYejg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Hm/EzdykBF6TtR3U0O9OvKQyOUGBN2fkEmfv2THaCso=;
 b=mGPIFRvaRn0pdE/oVGW8fjLDNtdGAOxawqvX3MZh5r0JIpP3smpAz5Q0bykBbPecjS1U7yo0WJE2gX/n4zbipktJqMu0U1sVs7lY+sdxn9bz4z6TPl4XS9zVOPGrNShV74ggue/L2wG3si5T7MqjYk/eBTo/gjMIZP4Y2apF50tsfUifXUP3yIkCnkocmDgL7GiSeyOXZX8iBGyyJeOHmf9cBhi4x5XvHAEN1OVNfdlJG7W8jKoH54M0krI8z+2SjENgH701pvhtyd5CDaoDcumihAyVpJiJQhxCRkWFAknVFepSYtzjw+3LegVBRbEbDvdXevDHNBjXAUTIegtmtQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com;
 dkim=pass header.d=citrix.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Hm/EzdykBF6TtR3U0O9OvKQyOUGBN2fkEmfv2THaCso=;
 b=Wyrc814DOLHPQxjXBUkSl1gJH7UFwQ/yM88mERxw9KC2EJSm0qpWclTTVM0kWelzSWRyGbD97aEaD2Ax4UN3z10L2MroSpbM2efseKWJmphIs4AzWjBlp9iu0mKL1M84+9/HgvIwWoW4wura+2Yu9QImzFs1oXvt98d2r3hRXIA=
From: Bernhard Kaindl <bernhard.kaindl@citrix.com>
To: Teddy Astie <teddy.astie@vates.tech>, "xen-devel@lists.xenproject.org"
	<xen-devel@lists.xenproject.org>
CC: Andrew Cooper <andrew.cooper@citrix.com>, Anthony PERARD
	<anthony.perard@vates.tech>, Michal Orzel <michal.orzel@amd.com>, Jan Beulich
	<jbeulich@suse.com>, Julien Grall <julien@xen.org>, Roger Pau Monne
	<roger.pau@citrix.com>, Stefano Stabellini <sstabellini@kernel.org>, "Daniel
 P. Smith" <dpsmith@apertussolutions.com>
Subject: RE: [PATCH v4 05/10] xen/domain: Add DOMCTL handler for claiming
 memory with NUMA awareness
Thread-Topic: [PATCH v4 05/10] xen/domain: Add DOMCTL handler for claiming
 memory with NUMA awareness
Thread-Index: AQHcpy8NKyz6wh/Wrk6CsdW/rK3ShrWVfM8AgAAgIzCAAK6rgIAAe1AA
Date: Fri, 27 Feb 2026 18:16:30 +0000
Message-ID:
 <LV3PR03MB77079F7679F069E88E7D70548773A@LV3PR03MB7707.namprd03.prod.outlook.com>
References: <cover.1772098423.git.bernhard.kaindl@citrix.com>
 <b2c94f0c3b41976b2691ce15b9f9a2589370e65a.1772098423.git.bernhard.kaindl@citrix.com>
 <656ff614-9165-49ce-8c55-0cfad33d4ed6@vates.tech>
 <LV3PR03MB77072E23139DF353E7B8C9D28772A@LV3PR03MB7707.namprd03.prod.outlook.com>
 <a1b1daa3-a70e-454e-9cdc-42e26b204a0f@vates.tech>
In-Reply-To: <a1b1daa3-a70e-454e-9cdc-42e26b204a0f@vates.tech>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=citrix.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: LV3PR03MB7707:EE_|DS4PR03MB8446:EE_
x-ms-office365-filtering-correlation-id: e6043985-6ad0-45a9-bdff-08de762c54dd
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|1800799024|38070700021;
x-microsoft-antispam-message-info:
 QwiIu7e81M1o2q/dJ3OBMbXtZEiJB7yGoo95Wk8hxFeuJxbRbetsO1egqODnPvB47+S5RTTlnYw3uiShGzmNFyuwVKWUEToPy17aZWOz0RSBbb0mF9el/L2aHYWstCxBD+NXffHrKlCpSuRS9BJZHUJpAexSQrOm+Zph0Bhzw4P3KylaNykF+2a1rOE+gRxXZLDXsnM/13anY7qUkHrfn7jVVMmjX43lr33qtIc5tejwTjsSvonEClf6f884hMHRgY+afNn0OB5BUzNTku74+bYe3PZwptJEnzeBPuFmMKwsDMFVxrS2XUJjLT40/wA1MQm8oNjpwYvXCkpjzXKCnyf5KeW3F6fJrBjsHWtwkUYl8JDnFRRmevuhH+0yXeUTRik8m+bJ8GwnSGu8Jo1StqqDOfGdJ9ivbQg68OfduSgHfhYjd10yJjQkFXZXFMcHiqnE2+6c3i69Bk58ZpBKrI2D9LTPW0mKLofVat9yyyDVFa6L5NWk7U0KI/nQkgxqo0LIm5Qa9eIqZ8PgdJcFxuPVJQ8+D9S+Ot3MK/JlhR/THGfRDcDVp96l5tPbH97o8T2KM3K6wJibpyvFshDpssFyrr0HESj6zpzjjsCVINeXeSAMTfpbKVBxFe9hugNzyWsju2js9yZhXVuTgetMMERE+4B20YnoHBTmt3bExUGGqQblNdc1d7/VFhKs9DqagGLUVlrGzqESSSKSjWQ52hjDP/B9KUeEVkov8EfoEN8c3DrJjz5FEBSdC8I0PMmX581ehbBavKu7lTfedyG3R8LjAzdP9Y5B4qNLqR7DHzg=
x-forefront-antispam-report:
 CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR03MB7707.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(38070700021);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:
 =?utf-8?B?VkZ3bzZ5UFRuZWRlU2tralk2UG53VUlEcS9UcFhPR0dBU2IwSFBDRGhoU29D?=
 =?utf-8?B?d1pKL0RxeEs3akhYcHRCb0FwM1BUdmFIcW5ucXVhQVZoWGNwVVNXNHJXY2xN?=
 =?utf-8?B?SzdVdXdIODJJVUMzOTdNYkxxM3VzMUdncnJvcmhhNUJReTluSnFJTnlWUEpJ?=
 =?utf-8?B?N1ZhbCsxVzVBeWFUQmovV2NjS2ZKWC83aS9GK1kxVUcyUDdkcmhnSlVJamZ2?=
 =?utf-8?B?Nmk1RFlKMnF1dGNUbEZmdXZzNVl0NCt1Ky9Vc29ibWJra24vVFE3L04vZTdH?=
 =?utf-8?B?YzJNK09rZUdmUmpkU3B1ck9ubDIwOCtSdXpSZW5sNmd1U2xSNlAyUnc0RDJp?=
 =?utf-8?B?RjZpTDdidTJZcWJ2UWV3NU92emFkZ3g0VlRsMnJVNDZjWjU2ZzlxMTRlNElu?=
 =?utf-8?B?MFlVTHdrZTlHV0dFTGZHU1pYZzdvU3ZYQTdNTE1nMkVXbmZmY0JibWxIOXlN?=
 =?utf-8?B?SG9uT0JkNzB3bHpRL3V2dlQzZ2krbjBGTHFNUVkvaHFxSkdVSXRkaXNQMHpO?=
 =?utf-8?B?R3BWUmIzNnJBdXdiTXQyaHowZHVhRS9Kd2FPbTRmeUxkc0piZ3M1UDdtTFlE?=
 =?utf-8?B?SEo2Y2pmTEp4NFZQYXBBV1FJSWRJZkUvU0tza3Q4RlpIOFNJY3BybjBHN0Ix?=
 =?utf-8?B?QXVKY1dyTEw2WEVRQ3J6bGMrV2d6UEFUUXd4emdWUHcydVBkdlNxaDcxZDRG?=
 =?utf-8?B?U1RWbEZPVmdST09lWXYwMHpaTHhzY3F1SG95Q1FVN0Y4SzFHdmRUZzlrN2Za?=
 =?utf-8?B?N0JKUXZwbjVvM2tzRS94QktTM2l6WDZRb2trUDRROFowaHZvck0zQ21DQ1JI?=
 =?utf-8?B?MFlJVUhld3FxRi80blZRR205eEpHd0V1bjhkM3M3eGo5Q0JaaHg0WWVzQVFO?=
 =?utf-8?B?NVZZakE5NTk4aWJlcHQrMzk0R0JLaXFFcFptL3lCWDBqTGVDbisyY1NjRURw?=
 =?utf-8?B?TkpqWHBRWE45VjNYU0cvalBxbWhmZDhLV2EyQjRHWkhPVDZMOGdsMElhdU9M?=
 =?utf-8?B?QUpnYU92QmoxWkdVc1IyYkhESnlPcjhONFhVRDVIRGNIdjNSYlM2YlR5aHZK?=
 =?utf-8?B?YW92R29jWWQzdmJwV1V4bEQrcHNRQWpiL01KYS9RSFZ5d0gwWWdHME1kdzVF?=
 =?utf-8?B?VHNvcFM4NU5GaUc5eE9jQmhVWmJ3MEdBbloybklaRjkzb29WSW5pNERNZlpD?=
 =?utf-8?B?Tld2Q0dqZ1VWUDZIWVArUzJxbFdiOTdtaWVYU3krY2lJMzhyUSttSUtmcjZ5?=
 =?utf-8?B?dEtmVENYeEZBSzloNG0yZ2lRaW5COVZzOFZ1Yzg3T2RQMHJUQVMxTUJsUmRW?=
 =?utf-8?B?RWl1UjE3OTVzdm9NNWVkcWd3Z2t4Y0s1ZWg0M0JjU2dHOVlVT0FUWDV1YTV3?=
 =?utf-8?B?RzBHa1pLcnMrc284VjBlR2RkY2RjekVSRThWSmc4T2dmZE1DZGJqd09ITUFn?=
 =?utf-8?B?US8wejhHQTNSckNaR1NMWmVBdEdlZFNDbWQyZzltaUhwelJOdjZoWEVKdGFT?=
 =?utf-8?B?Q1R5ZHEzYWQyRmJJN2o1a285cGtiek83dkhWbTVHdmJIaDRQWHY4TTYyYmxz?=
 =?utf-8?B?c3FSd0VCV3hvclVkTmhjaEd4Q2dmM0phV1h5WEhyTEV1VDhMRkc3cGxQYVZp?=
 =?utf-8?B?ZHRVM01MQ2QwdVhZLzY3dXVpWVMyMHN1OXY3TFI0WFR3TGU5cWN6K1pmQ25h?=
 =?utf-8?B?aGIxYlgvSkhGVnU0RjVQV2NsVzRnY0NPOFF1eThjM0xNQ21Cb2s0cnNaUys2?=
 =?utf-8?B?YU9zV3MwMGJaYllQVTJiSnhIa1BFRGVIUXhJMHVmb0hGSDRxUkJRVEJPb3Rj?=
 =?utf-8?B?d0kyTkVJeHUzYVllb0lmOXAzOEJ1M3NnUURIU1Bmc3ZvRTNleUErZCtFcXFx?=
 =?utf-8?B?ZFFrK0taMzFQS3krSmxtaDBnWm9xei9xekFjWGdYZHp4blZ5R3gzMnhZTGFL?=
 =?utf-8?B?WUlqcU5jaCtDRURYb3dmMEFEVzBCcWFTRC83bTdVWFBzWFI1YUUvcHM1MTg0?=
 =?utf-8?B?OXN6bkt3bW9URW5ZODNxRUdOL3YyZ1kwSkVJV2tWNE1HVUZLYlZkY243Y2hO?=
 =?utf-8?B?a3R2djYyNkJhYlgvMExWWHBNY3lsYkpmR2lTeWpQNFI2SFliY1lGazNYN2c3?=
 =?utf-8?B?NFZQS3BNZitXRUhlek51UkdmWlpiUlFYdUdzQS92S0RFSjQ4ZE1Bdlc5c2Yr?=
 =?utf-8?B?ZzRublBSNU1tVnA0OSthRnMyZFduei9tWEJXWGZBbEJWMEx1OEx5RmFtc24z?=
 =?utf-8?B?OCttUHFNQldadnUxYXpHL2tKSlZwcWJnOTZCWG1tUzgxTms4U3BkdkNUS2hF?=
 =?utf-8?B?czRGUWJ2VmppNzhmOHJRZjRZbkRZdy9qVzhqVjkrL0FtbmlBV1N5UT09?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: citrix.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: LV3PR03MB7707.namprd03.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e6043985-6ad0-45a9-bdff-08de762c54dd
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2026 18:16:30.7403
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 335836de-42ef-43a2-b145-348c2ee9ca5b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: QpHuI//ZiTrrqYxahHJpH3NVKBQUJIXDX1Yo/8yuDEVsUehRkQTDq0cAR3J/2SXynTwxgV5uos8yA0Pek6IKBIFjFd4UTXHP83uki7iVTgQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR03MB8446

DQo+IFNob3VsZCB3ZSBzdGF0ZSB0aGF0IHRoZSBvbGQgaW50ZXJmYWNlIGlzICJkZXByZWNhdGVk
IiAoc29tZWhvdyksIGFuZCB0aGF0DQo+IHBlb3BsZSBzaG91bGQgdGFrZSBhIGxvb2sgYXQgWEVO
X0RPTUNUTF9jbGFpbV9tZW1vcnkgaW5zdGVhZCwgZXNwZWNpYWxseSBpZg0KPiB0aGV5IG5lZWQg
YSBOVU1BLWF3YXJlIGludGVyZmFjZSA/DQo+IFRoYXQgY291bGQgYmUgYSBub3RlIG9uIHRoZSBY
RU5NRU1fY2xhaW1fbWVtb3J5IGh5cGVyY2FsbC4NCg0KWWVzLiBQZW9wbGUgbG9va2luZyBhdCB0
aGUgdGhlbiBvYnNvbGV0ZSBYRU5NRU1fY2xhaW1fcGFnZXMgaW50ZXJmYWNlDQpzaG91bGQgYmUg
cmVmZXJyZWQgdG8gdGhlIG5ldyBoeXBlcmNhbGwgdXNpbmcgc3VjaCBub3RlLg0KDQpJbiBwcmVw
YXJhdGlvbiBmb3IgYSBmb2xsb3ctdXAsIEkgYXBwZW5kZWQgYW4gaW5pdGlhbCBwYXRjaCB0byBh
ZGQgc3VjaA0KTm90ZXMgKG1heWJlIGFsc28gaW4gbGlieGMsIG1lbW9yeV9vcCBhbmQgT0NhbWwg
YmluZGluZ3MpIHRvIHJlZmVyIHBlb3BsZQ0KdG8gdGhlIG5ldyBoeXBlcmNhbGwgaW50ZXJmYWNl
Lg0KDQpCZXN0LCBCZXJuaGFyZA0KDQotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgN
CisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaA0KQEAgLTU2OSw2ICs1NjksMTUgQEAg
REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9zaGFyaW5nX29wX3QpOw0KICAqIGZvciAx
MCwgb25seSA3IGFkZGl0aW9uYWwgcGFnZXMgYXJlIGNsYWltZWQuDQogICoNCiAgKiBDYWxsZXIg
bXVzdCBiZSBwcml2aWxlZ2VkIG9yIHRoZSBoeXBlcmNhbGwgZmFpbHMuDQorICoNCisgKiBOb3Rl
OiBUaGlzIGh5cGVyY2FsbCBpcyBkZXByZWNhdGVkIGJ5IGludHJvZHVjaW5nIFhFTl9ET01DVExf
Y2xhaW1fbWVtb3J5DQorICogd2hpY2ggcHJvdmlkZXMgdGhlIHNhbWUgY2xhaW0gc2VtYW50aWNz
IGRlc2NyaWJlZCBhYm92ZSwgYW5kIHRodXMgY2FuIGJlDQorICogdXNlZCBhcyBkcm9wLWluIHJl
cGxhY2VtZW50IGFuZCBpcyBleHRlbmRlZCBmb3IgTlVNQS1ub2RlLXNwZWNpZmljIGNsYWltcy4N
CisgKiBUaGlzIGh5cGVyY2FsbCBzaG91bGQgbm90IGJlIHVzZWQgYnkgbmV3IGNvZGUuDQorICoN
CisgKiBTZWUgdGhlIGZvbGxvd2luZyBkb2N1bWVudGF0aW9uIHBhZ2VzIGZvciBtb3JlIGluZm9y
bWF0aW9uOg0KKyAqIGRvY3MvZ3Vlc3QtZ3VpZGUvZG9tL0RPTUNUTF9jbGFpbV9tZW1vcnkucnN0
DQorICogZG9jcy9ndWVzdC1ndWlkZS9tZW0vWEVOTUVNX2NsYWltX3BhZ2VzLnJzdA0KICAqLw0K
ICNkZWZpbmUgWEVOTUVNX2NsYWltX3BhZ2VzICAgICAgICAgICAgICAgICAgMjQNCg0KLS0tIGEv
ZG9jcy9ndWVzdC1ndWlkZS9tZW0vWEVOTUVNX2NsYWltX3BhZ2VzLnJzdA0KKysrIGIvZG9jcy9n
dWVzdC1ndWlkZS9tZW0vWEVOTUVNX2NsYWltX3BhZ2VzLnJzdA0KQEAgLTUsOCArNSw5IEBAIFhF
Tk1FTV9jbGFpbV9wYWdlcw0KID09PT09PT09PT09PT09PT09PQ0KIA0KIFRoaXMgKip4ZW5tZW0q
KiBjb21tYW5kIGFsbG93cyBhIHByaXZpbGVnZWQgZ3Vlc3QgdG8gc3Rha2UgYSBtZW1vcnkgY2xh
aW0gZm9yIGENCi1kb21haW4sIGlkZW50aWNhbCB0byA6cmVmOmBYRU5fRE9NQ1RMX2NsYWltX21l
bW9yeWAsIGJ1dCB3aXRob3V0IHN1cHBvcnQgZm9yDQotTlVNQS1hd2FyZSBtZW1vcnkgY2xhaW1z
Lg0KK2RvbWFpbiwgaWRlbnRpY2FsIHRvIDpyZWY6YFhFTl9ET01DVExfY2xhaW1fbWVtb3J5YCwg
d2hpY2ggaXMgZXh0ZW5kZWQgZm9yDQorTlVNQS1hd2FyZSBjbGFpbXMuIFhFTk1FTV9jbGFpbV9w
YWdlcyBzaG91bGQgbm90IGJlIHVzZWQgZm9yIG5ldyBjb2RlIGFuZCBpcw0KK2RlcHJlY2F0ZWQu
IDpyZWY6YFhFTl9ET01DVExfY2xhaW1fbWVtb3J5YCBwcm92aWRlcyB0aGUgc2FtZSBjbGFpbXMg
c2VtYW50aWNzLg0KDQogTWVtb3J5IGNsYWltcyBpbiBYZW4NCiAtLS0tLS0tLS0tLS0tLS0tLS0t
LQ0K


From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243131.1543111 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw73z-0008WQ-Lx; Fri, 27 Feb 2026 23:16:03 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243131.1543111; Fri, 27 Feb 2026 23:16:03 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw73z-0008WJ-IF; Fri, 27 Feb 2026 23:16:03 +0000
Received: by outflank-mailman (input) for mailman id 1243131;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw73x-0008WD-VF
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:02 +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 4785b3c0-1432-11f1-b164-2bf370ae4941;
 Sat, 28 Feb 2026 00:16:00 +0100 (CET)
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-483703e4b08so22721395e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:00 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-483bd75dfaasm219264385e9.12.2026.02.27.15.15.57
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:15:58 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 4785b3c0-1432-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234160; x=1772838960; 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=EkI6FQn9Xs3+/+P5YTSdt/PmiEpJe9GVU8LhmmOfCQs=;
        b=aZ4emrIWiYUqNa1uQY3ZFxynkc+/vSWg1nUkSITIrLEgJb5sBfaxmUhKxUfGSyIqBa
         cJi+7jBE5KDMkVBVjI9iYV+ew9Z15+auKRegleLh9lU8uwra4OJMv5U10AySU1N52oIW
         q2Fj7nBusHIq9ZkDXefkvccfmaWCyjd45BDRY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234160; x=1772838960;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EkI6FQn9Xs3+/+P5YTSdt/PmiEpJe9GVU8LhmmOfCQs=;
        b=UXkIdEVtxiexlpAZBwJtBhxh+pkzxDqJyeKEm3qqOCioJiLBHZ5cjh+PkEMJtp7ZXY
         KZxFCbgx+qLio7x/DV3u+/CXB3QbTbEHhikB3p6PgGT6R8x8kOBSrTM2WPSkgEL2ArFT
         nJylUVWe2M4p1VruroAwMNDnGINoIvP3rXTRNIUIWjOCdEu4RfDSSFm/96vszauoz/9d
         7jJURtrkhhWKdxF4MqlXHIgIkPucQF03MTFneZ/2tjb2B5cLUM5cusYz7VypBuvkaTFu
         k5IRNpjr5w6TgippBdggBT6IlxbqyqQ3sjLeu6EMKade5yTrliog3zHwZla6ERzK2PCP
         A9Ag==
X-Gm-Message-State: AOJu0YzTLnsPscUaPlOCTqyQuExW0P5TawPxRhMGGMExlsYU2++fpQb7
	5kdx9eIyMIzy1c7hH7e+AjtDs0XNuyn9J5MeQ31UiJ8/oJKxhYYB0Vn02Kxdx4JvTVrlaTCq5Sb
	e92HF
X-Gm-Gg: ATEYQzwupO8rZhRoE0aiw3I2Dt+/8aKkX///bhRzaoM80QogE2QflCAr7cY2Ze2MpFB
	djcuFcuUrG40E0x5dMcpDMM54fdn7jN/KyaJk3Xl6CJ0otwZbI6UjJWgSoQgoHyIpYjh4y7UyZ6
	jYYKvqAI1qUXgO6XLSCK5tZn5A0rbLEcZ5VFSjHvhlW5qF5l1WprsTaWQ5MLrV8Lj2CA9r7Oepv
	uYBHLcY3QSDHOrjjXDpkOi6d/pQ/Ftd004BWWAFLOXNcdCZJ+G/lFAffAiEdiubUE6bW/ESCn5N
	6G8HKAOW2Fa5cx5fjrs+6l+8vG8WyRWphTBm+mWRvv8OjbjZRKKCHo9m64YZdvsJ8JfvTMQ9JT+
	wu/oi5wsXU8Yt2UuLg65TQTFo2BIoZmFwK1uxs35whX9WtJ821OZOAa9esOBLX/NDuw4TFyJ+6U
	/qc4lh0jWgRBn4n5pXVslNELVjFfbMox9Fqg9xy7UFBAIrpOe5uM1W9ZqCxDp2Ec4Jcs9peoA=
X-Received: by 2002:a05:600c:474c:b0:483:a352:b4e4 with SMTP id 5b1f17b1804b1-483c990bdf0mr77520595e9.6.1772234159005;
        Fri, 27 Feb 2026 15:15:59 -0800 (PST)
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 v4 00/14] x86: FRED support
Date: Fri, 27 Feb 2026 23:15:39 +0000
Message-Id: <20260227231553.3955050-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 version of the series has finally run on real hardware, Intel
PantherLake.  Notable changes:

 * Rework TSS setup, given an unpleasant discovery about VT-x.
 * Fix an INT $N emulation bug in IDT mode, discovered by XTF testing to check
   that FRED behaved the same.
 * Document aspects of the PV ABI now they've been thoroughly reverse
   engineered.

By the end of patch 6, PVH dom0 works.
By the end of the series, PV dom0 works.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2354867216

Andrew Cooper (14):
  x86/pv: Don't assume that INT $imm8 instructions are two bytes long
  docs/guest-guide: Describe the PV traps and entrypoints ABI
  x86/boot: Move gdt_l1e caching out of traps_init()
  x86/boot: Document the ordering dependency of _svm_cpu_up()
  x86/traps: Move traps_init() earlier on boot
  x86/traps: Don't configure Supervisor Shadow Stack tokens in FRED mode
  x86/traps: Introduce FRED entrypoints
  x86/traps: Enable FRED when requested
  x86/pv: Adjust GS handling for FRED mode
  x86/pv: Guest exception handling in FRED mode
  x86/pv: ERETU error handling
  x86/pv: System call handling in FRED mode
  x86: Clamp reserved bits in eflags more aggressively
  x86/traps: Use fatal_trap() for #UD and #GP

 docs/glossary.rst                    |   3 +
 docs/guest-guide/x86/index.rst       |   1 +
 docs/guest-guide/x86/pv-traps.rst    | 123 +++++++
 xen/arch/x86/cpu/common.c            |   4 +-
 xen/arch/x86/domain.c                |  22 +-
 xen/arch/x86/hvm/domain.c            |   4 +-
 xen/arch/x86/hvm/svm/svm.c           |  16 +
 xen/arch/x86/include/asm/asm_defns.h |  63 ++++
 xen/arch/x86/include/asm/current.h   |   3 +
 xen/arch/x86/include/asm/domain.h    |   2 +
 xen/arch/x86/include/asm/hypercall.h |   2 -
 xen/arch/x86/include/asm/pv/traps.h  |   2 +
 xen/arch/x86/include/asm/traps.h     |   2 +
 xen/arch/x86/include/asm/x86-defns.h |   7 +
 xen/arch/x86/mm.c                    |  14 +-
 xen/arch/x86/pv/dom0_build.c         |   2 +-
 xen/arch/x86/pv/domain.c             |  22 +-
 xen/arch/x86/pv/emul-priv-op.c       |  72 +++-
 xen/arch/x86/pv/iret.c               |   8 +-
 xen/arch/x86/pv/misc-hypercalls.c    |  16 +-
 xen/arch/x86/pv/traps.c              |  39 +++
 xen/arch/x86/setup.c                 |  20 +-
 xen/arch/x86/smpboot.c               |  11 +
 xen/arch/x86/traps-setup.c           | 147 +++++++-
 xen/arch/x86/traps.c                 | 486 ++++++++++++++++++++++++++-
 xen/arch/x86/x86_64/Makefile         |   1 +
 xen/arch/x86/x86_64/entry-fred.S     |  57 ++++
 xen/arch/x86/x86_64/entry.S          |   4 +-
 28 files changed, 1091 insertions(+), 62 deletions(-)
 create mode 100644 docs/guest-guide/x86/pv-traps.rst
 create mode 100644 xen/arch/x86/x86_64/entry-fred.S

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:42 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:42 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243137.1543120 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74c-0000Vk-S8; Fri, 27 Feb 2026 23:16:42 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243137.1543120; Fri, 27 Feb 2026 23: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 1vw74c-0000Vd-PN; Fri, 27 Feb 2026 23:16:42 +0000
Received: by outflank-mailman (input) for mailman id 1243137;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74b-0008WD-Ar
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:41 +0000
Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com
 [2a00:1450:4864:20::444])
 by se1-gles-sth1.inumbo.com (Halon) with ESMTPS
 id 5f5e4f5e-1432-11f1-b164-2bf370ae4941;
 Sat, 28 Feb 2026 00:16:40 +0100 (CET)
Received: by mail-wr1-x444.google.com with SMTP id
 ffacd0b85a97d-436356740e6so2643162f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:40 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.38
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:38 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 5f5e4f5e-1432-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234200; x=1772839000; 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=EkI6FQn9Xs3+/+P5YTSdt/PmiEpJe9GVU8LhmmOfCQs=;
        b=NLyzg1Er5w29P5ijZ0/ezHI8ZhEahumh5z8HtK5GfK11PKxieIU2crsLFOKcTv9cyM
         WG3SDBzmpVTjcatE4uak1UoyWfSekdn2LnCS/cEN6AA60nnM1A5B+sU92iQP20wertqy
         n5A48loKo05anr4G2ehkXUjSAnb3tUQfb2fvw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234200; x=1772839000;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=EkI6FQn9Xs3+/+P5YTSdt/PmiEpJe9GVU8LhmmOfCQs=;
        b=bS832AKPCcc39warvuDoiiK2mrJr7NQsbqx8fYVAGCDq/ZGi/TOLhWBlrG0OVlDM/Q
         GjXwmJqqQJDLSJWT7hLehGG9F5mCfZBhY3dsoQSPSELNHJRYHjoqPCklASy5HoexxOQO
         7KbACnYbCMNQLXWaPGK0e/ujTrfgnbzF+MjRxE3wjaOoUhxhCR1pzOHQ0HX4picTcDqM
         UDWc++qXp1Y8S/Vo54EA8UDjkYgDZGAoE+P8k5vItAOaCkb8z52aBTAxLZAqnZ0iaHl3
         Ql3JKF38lS2063zI2MyiHeE8xBP8jeF+c26QFutameDEsPFllRENdUIH7L1Fugso57wQ
         Ynkg==
X-Gm-Message-State: AOJu0YzTbVsTUj/QX/o5M0H0FL4rmUGENOiTZigm53QyCyhbOn4VjaZ7
	28yijBQi1Z+rGyLvCNUz08DKJ6n33H8WRgvFGPYiejwYIq7zZB/oCSa/6W8THlKs9bnRI9amgQX
	ANUwFd0WE2Ru9
X-Gm-Gg: ATEYQzzducaRJAQHA+/USz3+ff/jzmUjzue4eSFWlGIvIOFQuh9QhUiKW2ZeAfF7Q9w
	by7PzE2jdW69K+3jl+cPov7cO8V6hBLX5P4l5m2bOJ9NT4mlAzEghQxq/8dBPVuZ1DIqxQA66KU
	qwJWngvgN2PCYvlN3FejLfb+f2sHC9hrods/3kXgKvnwk3ZXzMs2Tvg9FPt15rwVDFPZOelpHM+
	z7ZD+IZxD9IAmN+RByCpr2rb9ca6tARopt+VNh2bEKWMDn3HZIk+fVCa1hVGP7lcr4Fs2Of1KNV
	d1HI/MJsjzTL3ZUDBipO6FIHAHOjJLyOJ5StDug8ZKTDfo9GEN7Vx6iDAu16rOnufna9hFPau+c
	phqZRR2RQYLDujX3iSHJ9fGHEgtlZsZxfHWzFrz2UtzWlDfUyPCtFAVlED4JWdl1aZcIY1TCExZ
	gK4rO7+XeB2AJnxnVaCuEO3jevrHaLgjXPEN/rFKk+UMaz43pn8sikhaWCBNZmqwEMMqL1cnE=
X-Received: by 2002:a05:6000:40c9:b0:436:3267:3ed3 with SMTP id ffacd0b85a97d-4399ddf1ce8mr8503570f8f.22.1772234199810;
        Fri, 27 Feb 2026 15:16:39 -0800 (PST)
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 v4 00/14] x86: FRED support
Date: Fri, 27 Feb 2026 23:16:22 +0000
Message-Id: <20260227231636.3955109-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 version of the series has finally run on real hardware, Intel
PantherLake.  Notable changes:

 * Rework TSS setup, given an unpleasant discovery about VT-x.
 * Fix an INT $N emulation bug in IDT mode, discovered by XTF testing to check
   that FRED behaved the same.
 * Document aspects of the PV ABI now they've been thoroughly reverse
   engineered.

By the end of patch 6, PVH dom0 works.
By the end of the series, PV dom0 works.

https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2354867216

Andrew Cooper (14):
  x86/pv: Don't assume that INT $imm8 instructions are two bytes long
  docs/guest-guide: Describe the PV traps and entrypoints ABI
  x86/boot: Move gdt_l1e caching out of traps_init()
  x86/boot: Document the ordering dependency of _svm_cpu_up()
  x86/traps: Move traps_init() earlier on boot
  x86/traps: Don't configure Supervisor Shadow Stack tokens in FRED mode
  x86/traps: Introduce FRED entrypoints
  x86/traps: Enable FRED when requested
  x86/pv: Adjust GS handling for FRED mode
  x86/pv: Guest exception handling in FRED mode
  x86/pv: ERETU error handling
  x86/pv: System call handling in FRED mode
  x86: Clamp reserved bits in eflags more aggressively
  x86/traps: Use fatal_trap() for #UD and #GP

 docs/glossary.rst                    |   3 +
 docs/guest-guide/x86/index.rst       |   1 +
 docs/guest-guide/x86/pv-traps.rst    | 123 +++++++
 xen/arch/x86/cpu/common.c            |   4 +-
 xen/arch/x86/domain.c                |  22 +-
 xen/arch/x86/hvm/domain.c            |   4 +-
 xen/arch/x86/hvm/svm/svm.c           |  16 +
 xen/arch/x86/include/asm/asm_defns.h |  63 ++++
 xen/arch/x86/include/asm/current.h   |   3 +
 xen/arch/x86/include/asm/domain.h    |   2 +
 xen/arch/x86/include/asm/hypercall.h |   2 -
 xen/arch/x86/include/asm/pv/traps.h  |   2 +
 xen/arch/x86/include/asm/traps.h     |   2 +
 xen/arch/x86/include/asm/x86-defns.h |   7 +
 xen/arch/x86/mm.c                    |  14 +-
 xen/arch/x86/pv/dom0_build.c         |   2 +-
 xen/arch/x86/pv/domain.c             |  22 +-
 xen/arch/x86/pv/emul-priv-op.c       |  72 +++-
 xen/arch/x86/pv/iret.c               |   8 +-
 xen/arch/x86/pv/misc-hypercalls.c    |  16 +-
 xen/arch/x86/pv/traps.c              |  39 +++
 xen/arch/x86/setup.c                 |  20 +-
 xen/arch/x86/smpboot.c               |  11 +
 xen/arch/x86/traps-setup.c           | 147 +++++++-
 xen/arch/x86/traps.c                 | 486 ++++++++++++++++++++++++++-
 xen/arch/x86/x86_64/Makefile         |   1 +
 xen/arch/x86/x86_64/entry-fred.S     |  57 ++++
 xen/arch/x86/x86_64/entry.S          |   4 +-
 28 files changed, 1091 insertions(+), 62 deletions(-)
 create mode 100644 docs/guest-guide/x86/pv-traps.rst
 create mode 100644 xen/arch/x86/x86_64/entry-fred.S

-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:45 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:45 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243138.1543132 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74f-0000jx-4G; Fri, 27 Feb 2026 23:16:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243138.1543132; Fri, 27 Feb 2026 23: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 1vw74e-0000jq-Vy; Fri, 27 Feb 2026 23:16:44 +0000
Received: by outflank-mailman (input) for mailman id 1243138;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74d-0008WD-T1
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:43 +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 60dd154e-1432-11f1-b164-2bf370ae4941;
 Sat, 28 Feb 2026 00:16:43 +0100 (CET)
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-436309f1ad7so2114584f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:43 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.39
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:40 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 60dd154e-1432-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234202; x=1772839002; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=qm1+0hl5wg0cTPkZkQcfwjLCPbdvhVekwrZIT03s7DQ=;
        b=NhvaORhEENEHrYdMpzFOb00mPzdMS8s5p3eibErAyaHS4HN5cZMw0VCwtVsAfoVCUS
         FezmlqiwMN81ItFbwEasbRZTCpP7QdY5HXGERw0ZvGFlDrA39NOOpy8G0qLUmGn1WCdf
         vsr6rSX0DSuobDRlofwDyt9M2ufMohsvkWFH8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234202; x=1772839002;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=qm1+0hl5wg0cTPkZkQcfwjLCPbdvhVekwrZIT03s7DQ=;
        b=jtbBe6sK4hUekdOHZSj7/gFRhXMsOehouPHBhHPFf7DYOVCnFV/urAr5LClLPMJdmu
         c3I6yYQ8N0NonZbel7gmPgTx0BsZIgVfi500ltLJOwig1JcUZBOKX1FHnw4Aj1v0kq7M
         rsgAUk6e3qR/U1xMiTejgkeIghFYVEmMQMHrT8GiURTpy8bFUI0noz8ShoQLj/3ex8zO
         66Zs2FxqyVARxEhvMUzkKHb0N65OyfjUIbqnqRZfHNmRUnVL64FCcy9xpOrXFCNQThP1
         0M+7YyLN0/bZMdJ4QVeY1ieaiM2kNJ69H7lzcwQ+YrAZKMAsQO39SrY87OO1FviCd/F2
         y30g==
X-Gm-Message-State: AOJu0YxWfm9Xw5aMV35qa9obqqE3HDHEVJt3OcxxxOuS2v4fIVM3GkQE
	6t2XNUXH1ME0OLfmrOOOjUldlDtmsoObosKQp/43B7PdKlw4bF58gAsQMjuXRGUAbpbVBv9cjSj
	q+BMS
X-Gm-Gg: ATEYQzwOOi0gYW1S98Cu8s0fLFST1in5LE8muKd2HEcSE0ilbhs60OlAjjc4JjQjObp
	GKx6JPoNKAgJqiX9Syk3x8ZSMK807qwS5tkHn0wie++zk9JNIx5pNedmw1Dgqgr4VvxCzH1eqle
	odeSkCUQM+wn94ktZUF9JJSeMfPpQ2zT7TYfwL2b9wpkIfWdwZADGNrKncfgjg9PMlnPlaHvvVg
	VE8iN2ydvjBKl1fgX1a6ck9BKlMzmBwOFaVFDcNEpYZSxkeSlilcX8kT70MjouHu6HKsDud+Grh
	Qp0Rx3CP3wAfYndQs8aB3t0vCIfUCd8tC2BWNzxQwy6gXhN/3CkxFH4C5ePhCXFKrqf6dR3DxyY
	PJw8VvXnw++M6RWMMZ+5m+J2Z0pTlv21J7V6okdA/m2CG7hHW2atBFq/QJxfAvO114wkmUHc3VA
	4Wm56gSxcj574NYLqxR0BPqgT5DNW4siz1zy8+r7SJkcxjYbLkWk9xECn4X6tuf1uuGUcCvdI=
X-Received: by 2002:a05:6000:2313:b0:439:84cb:288d with SMTP id ffacd0b85a97d-4399de2cb36mr7877033f8f.41.1772234201407;
        Fri, 27 Feb 2026 15:16:41 -0800 (PST)
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 v4 01/14] x86/pv: Don't assume that INT $imm8 instructions are two bytes long
Date: Fri, 27 Feb 2026 23:16:23 +0000
Message-Id: <20260227231636.3955109-2-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For INT $N instructions (besides $0x80 for which there is a dedicated fast
path), handling is mostly fault-based because of DPL0 gates in the IDT.  This
means that when the guest kernel allows the instruction too, Xen must
increment %rip to the end of the instruction before passing a trap to the
guest kernel.

When an INT $N instruction has a prefix, it's longer than two bytes, and Xen
will deliver the "trap" with %rip pointing into the middle of the instruction.

Introduce a new pv_emulate_sw_interrupt() which uses x86_insn_length() to
determine the instruction length, rather than assuming two.

This is a change in behaviour for PV guests, but the prior behaviour cannot
reasonably be said to be intentional.

This change does not affect the INT $0x80 fastpath.  Prefixed INT $N
instructions occur almost exclusively in test code or exploits, and INT $0x80
appears to be the only user-usable interrupt gate in contemporary PV guests.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4:
 * New
---
 xen/arch/x86/include/asm/pv/traps.h |  2 ++
 xen/arch/x86/pv/emul-priv-op.c      | 48 +++++++++++++++++++++++++++++
 xen/arch/x86/traps.c                |  3 +-
 3 files changed, 51 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/pv/traps.h b/xen/arch/x86/include/asm/pv/traps.h
index 8c201190923d..16e9a8d2aa3f 100644
--- a/xen/arch/x86/include/asm/pv/traps.h
+++ b/xen/arch/x86/include/asm/pv/traps.h
@@ -17,6 +17,7 @@
 int pv_raise_nmi(struct vcpu *v);
 
 int pv_emulate_privileged_op(struct cpu_user_regs *regs);
+void pv_emulate_sw_interrupt(struct cpu_user_regs *regs);
 void pv_emulate_gate_op(struct cpu_user_regs *regs);
 bool pv_emulate_invalid_op(struct cpu_user_regs *regs);
 
@@ -31,6 +32,7 @@ static inline bool pv_trap_callback_registered(const struct vcpu *v,
 static inline int pv_raise_nmi(struct vcpu *v) { return -EOPNOTSUPP; }
 
 static inline int pv_emulate_privileged_op(struct cpu_user_regs *regs) { return 0; }
+static inline void pv_emulate_sw_interrupt(struct cpu_user_regs *regs) {}
 static inline void pv_emulate_gate_op(struct cpu_user_regs *regs) {}
 static inline bool pv_emulate_invalid_op(struct cpu_user_regs *regs) { return true; }
 
diff --git a/xen/arch/x86/pv/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index a3c1fd12621d..87d3bbcf901f 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -8,6 +8,7 @@
  */
 
 #include <xen/domain_page.h>
+#include <xen/err.h>
 #include <xen/event.h>
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
@@ -1401,6 +1402,53 @@ int pv_emulate_privileged_op(struct cpu_user_regs *regs)
     return 0;
 }
 
+/*
+ * Hardware already decoded the INT $N instruction and determinted that there
+ * was a DPL issue, hence the #GP.  Xen has already determined that the guest
+ * kernel has permitted this software interrupt.
+ *
+ * All that is needed is the instruction length, to turn the fault into a
+ * trap.  All errors are turned back into the original #GP, as that's the
+ * action that really happened.
+ */
+void pv_emulate_sw_interrupt(struct cpu_user_regs *regs)
+{
+    struct vcpu *curr = current;
+    struct domain *currd = curr->domain;
+    struct priv_op_ctxt ctxt = {
+        .ctxt.regs = regs,
+        .ctxt.lma = !is_pv_32bit_domain(currd),
+    };
+    struct x86_emulate_state *state;
+    uint8_t vector = regs->error_code >> 3;
+    unsigned int len, ar;
+
+    if ( !pv_emul_read_descriptor(regs->cs, curr, &ctxt.cs.base,
+                                  &ctxt.cs.limit, &ar, 1) ||
+         !(ar & _SEGMENT_S) ||
+         !(ar & _SEGMENT_P) ||
+         !(ar & _SEGMENT_CODE) )
+        goto error;
+
+    state = x86_decode_insn(&ctxt.ctxt, insn_fetch);
+    if ( IS_ERR_OR_NULL(state) )
+        goto error;
+
+    len = x86_insn_length(state, &ctxt.ctxt);
+    x86_emulate_free_state(state);
+
+    /* Note: Checked slightly late to simplify 'state' handling. */
+    if ( ctxt.ctxt.opcode != 0xcd /* INT $imm8 */ )
+        goto error;
+
+    regs->rip += len;
+    pv_inject_sw_interrupt(vector);
+    return;
+
+ error:
+    pv_inject_hw_exception(X86_EXC_GP, regs->entry_vector);
+}
+
 /*
  * Local variables:
  * mode: C
diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 5feac88d6c0b..907fb4c186c0 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1379,8 +1379,7 @@ void do_general_protection(struct cpu_user_regs *regs)
 
         if ( permit_softint(TI_GET_DPL(ti), v, regs) )
         {
-            regs->rip += 2;
-            pv_inject_sw_interrupt(vector);
+            pv_emulate_sw_interrupt(regs);
             return;
         }
     }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:47 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:47 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243139.1543142 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74h-0000z5-EX; Fri, 27 Feb 2026 23:16:47 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243139.1543142; Fri, 27 Feb 2026 23: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 1vw74h-0000yy-9V; Fri, 27 Feb 2026 23:16:47 +0000
Received: by outflank-mailman (input) for mailman id 1243139;
 Fri, 27 Feb 2026 23: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74g-0008WD-0E
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:46 +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 62230be6-1432-11f1-b164-2bf370ae4941;
 Sat, 28 Feb 2026 00:16:45 +0100 (CET)
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-4377174e1ebso1836355f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:45 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.43
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:43 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 62230be6-1432-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234205; x=1772839005; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=TX7N+xBo3CKWjKGYcEu3yVytP4MNoG1haUKZc0lx4fI=;
        b=j04eYEweWDmZHEcA/r2rrbSeC2I3fwjS6PA6ycF2hylZhU1yY6/YT6xczlGJC5b2FB
         e+RNfvrQ+WX8JrpF7xS/Gvmriel20JQjAtkF+zWqR6tBz3pZGec/nmmK+cyeY3dwlu84
         yKHqg/mllapkc0BsRO/7B3sWKxR7BmrH23qj8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234205; x=1772839005;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=TX7N+xBo3CKWjKGYcEu3yVytP4MNoG1haUKZc0lx4fI=;
        b=mpLnU3o9SP2p57dwKSibpFkbN/N7sfG6uG1TylbLQNF5EMbsi9Gwpe51rYojOrjRrs
         t87EzUM8/2/fFaUtd7n2N29ZKt3Mc59J739TR2zT1kfjbmbZNHXA8bjYDlfuIQ5w9i72
         TlSzFrkWGmhGuxvBWDmtMexqqvBCuOtkQYKw7iSRwIp1sYLgRr8QznJ+cQbFMPg5DuW2
         Ts1QeyslYJOgZk4FxBRSCMNw9ps4ErMMn8dCZ6FVYBmqJP656MvYLUWMecF+5k7hSBfq
         dLMWPcjw7lpJ+v+cc+MENU1UzV9ZP0/RDjYJ2zEbakt3W3PolfoSJatCuVquz6KeAUJM
         rRYA==
X-Gm-Message-State: AOJu0YwCMOgIkoqFepmQNOEtJO1Au+D+YdtJHA7vcpKkCkPxNtl44FQK
	Qgu/nzwhSKjfbiLJW412eBZaPTrWzcni+NB0pDoQhS/+K0i1k6lMSWcEyxLEYzMkUGeXz9wm7rM
	UCSUSD+2pUg==
X-Gm-Gg: ATEYQzwt0uZ+xr3rLVe8irA//00e6Tq6juKNP1r/uFaxI0329402343fKBjKDjgKkvT
	Q+HhNLRtPoXPV8tw9+fes6vGPshQYkwenE5hEe3s0LkZXPnUIQr0KcUDKFW9prWSSEkMz7UcXJj
	ppDF1iD2zMLZGagF/PqwoiHeBwNKugbGGhOIyNnZax6paV9RgDBOhW8KH16M6MKtoVJ4mtmyOFN
	JORI9JScVG5lzqZyedMevH7JD4Kp6o62D9Jz3Ul0SbMZ8IgOe7RWBrr8E8nLdSAdWiTlfvpRKew
	3zZInYtKtL7tJzkA+NndJzj+TM5jdx30g8YFP/EioJhzAqj3tRqZT/nwsxmV1uY/EBN8kqLE2QF
	whoDW9vlBEqcCkDfn01p11yw7S8//YjSSyTvGnBQSbKUJEL+9HE3YAOKiT4QLK/yEfodfuw6Kaj
	TKF6b0j5TQzkcs7PHP4qvnkEu3LOZxhXFeAYvJ1DMSLw4MX/ZKGHpDgk0tAqddMrPUMacpJAE=
X-Received: by 2002:a05:6000:310a:b0:437:6f0c:2ed with SMTP id ffacd0b85a97d-4399de2b59dmr8038457f8f.34.1772234204503;
        Fri, 27 Feb 2026 15:16:44 -0800 (PST)
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 v4 03/14] x86/boot: Move gdt_l1e caching out of traps_init()
Date: Fri, 27 Feb 2026 23:16:25 +0000
Message-Id: <20260227231636.3955109-4-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Commit 564d261687c0 ("x86/ctxt-switch: Document and improve GDT handling") put
the initialisation of {,compat_}gdt_l1e into traps_init() but this wasn't a
great choice.  Instead, put it in smp_prepare_cpus() which performs the BSP
preparation of variables normally set up by cpu_smpboot_alloc() for APs.

This removes an implicit dependency that prevents traps_init() moving earlier
than move_xen() in the boot sequence.

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>

v4:
 * New

I'm on the fence about the ASSERT(), but I'm getting rather tired of unstated
dependencies.  For a PV64 guest using SYSEXIT to enter the guest, it's the
first interrupt/exception which references the GDT, which could be after the
guest is running.
---
 xen/arch/x86/domain.c      |  2 ++
 xen/arch/x86/smpboot.c     | 11 +++++++++++
 xen/arch/x86/traps-setup.c |  7 -------
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 8eb1509782ef..e658c2d647b7 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2029,6 +2029,8 @@ static always_inline bool need_full_gdt(const struct domain *d)
 
 static void update_xen_slot_in_full_gdt(const struct vcpu *v, unsigned int cpu)
 {
+    ASSERT(per_cpu(gdt_l1e, cpu).l1); /* Confirm these have been cached. */
+
     l1e_write(pv_gdt_ptes(v) + FIRST_RESERVED_GDT_PAGE,
               !is_pv_32bit_vcpu(v) ? per_cpu(gdt_l1e, cpu)
                                    : per_cpu(compat_gdt_l1e, cpu));
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 961bdf53331c..491cbbba33ae 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -1167,6 +1167,17 @@ void __init smp_prepare_cpus(void)
     initialize_cpu_data(0); /* Final full version of the data */
     print_cpu_info(0);
 
+    /*
+     * Cache {,compat_}gdt_l1e for the BSP now that physically relocation is
+     * done.  It must be after physical relocation of Xen, and before the
+     * first context_switch().
+     */
+    this_cpu(gdt_l1e) =
+        l1e_from_pfn(virt_to_mfn(boot_gdt), __PAGE_HYPERVISOR_RW);
+    if ( IS_ENABLED(CONFIG_PV32) )
+        this_cpu(compat_gdt_l1e) =
+            l1e_from_pfn(virt_to_mfn(boot_compat_gdt), __PAGE_HYPERVISOR_RW);
+
     boot_cpu_physical_apicid = get_apic_id();
     x86_cpu_to_apicid[0] = boot_cpu_physical_apicid;
 
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index d77be8f83921..c5fc71c75bca 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -341,13 +341,6 @@ void __init traps_init(void)
 
     init_ler();
 
-    /* Cache {,compat_}gdt_l1e now that physically relocation is done. */
-    this_cpu(gdt_l1e) =
-        l1e_from_pfn(virt_to_mfn(boot_gdt), __PAGE_HYPERVISOR_RW);
-    if ( IS_ENABLED(CONFIG_PV32) )
-        this_cpu(compat_gdt_l1e) =
-            l1e_from_pfn(virt_to_mfn(boot_compat_gdt), __PAGE_HYPERVISOR_RW);
-
     percpu_traps_init();
 }
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:50 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:50 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243140.1543151 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74k-0001Gc-Kc; Fri, 27 Feb 2026 23:16:50 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243140.1543151; Fri, 27 Feb 2026 23: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 1vw74k-0001GV-Hi; Fri, 27 Feb 2026 23:16:50 +0000
Received: by outflank-mailman (input) for mailman id 1243140;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74j-0001Do-As
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:49 +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 632ad0ca-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:47 +0100 (CET)
Received: by mail-wr1-x435.google.com with SMTP id
 ffacd0b85a97d-436309f1ad7so2114610f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:47 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.44
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:44 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 632ad0ca-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234206; x=1772839006; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=wSmplNXhRERAowFWA9uIl/lO9zqC+gj9SfzDfIr2SeQ=;
        b=m6m+SJal6DBgyMJkYVtOAxLZPkvazgIJsWlBSfD+IBqJFMxDe8RG3dD1yy0wd+kEx7
         M4+xbVDm0LyCHxDcM6Slf9g6czWs0BTWw13nq01VIP8Hxe7ScCVNj9hO+Pb8KYYvPAKM
         Fae7CLq/CcQl2z9afMzxZ/Py8bVwWf31FwI88=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234206; x=1772839006;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=wSmplNXhRERAowFWA9uIl/lO9zqC+gj9SfzDfIr2SeQ=;
        b=kGH5puSBtS8f2byRD3uedhh2g2Jf4UlygGY81rla5GGY3C+FaTSL+UAWJXanZp042x
         vyCEJrCqWGjSJ/R0d5vQmFo1KE23ofeRFd4WDyWFnJwzphCng5tRFFBXiYD2APfyNH0l
         3fgCIrYdEjfeGmlllM4U4Z7JN1Spm35vQGgBYkqB25zhVawI/Rkod+gppKOiHp486KuJ
         5Ebv0YaHjOa1PvFmT0qBulyzM0Pb4ACUrofeixh2MYrAaJlwQUnNwK7FiPzlZF2d0gZf
         llM5o1ca6H+FsPPZjmy97TzSqSs/26NrfGRzEpsLYP2stF8Ar9QzMdoQJLeGDBjQqcip
         aNGQ==
X-Gm-Message-State: AOJu0YzU0so86jO5NdjQSfPwW9UWnIDfNZ/vhvylb1ESZaY3R74lHgWF
	GmzAX87BaRGeUiGsqW9uChkvx01FqL2GK8/ehtL2pmBm6XfqvDxFH3ScRPn0S8anwWoRObgdFM7
	YWdlZ
X-Gm-Gg: ATEYQzzAOFeCs3lTn13kaoVaZo7A/l8aCgLM2tao6krK0tFr9FiaVjfHOcZrM/AzxJh
	o170EqFdOnGfSc4FY/IUcTsuNUBHbn/iCQ1UgdrUEJJ/tD4+szT7JsHX+15Gdr9CQ1kCGJPVU1N
	C06j5gtP3tKXB9G1w/ROWyuz4b6m8gA3ULsRaTz+oz5Wt/GwWkGTfq/S0IFlgy/5xVqULJjQEkD
	HYbaMxpYJXwZJwKJAYYU66ki1ZDHB6YfwdQ2Mpqgctix4NRXPtbr0+LGzH7kXvvplvuA5tOqk+Y
	YfG2Wi7UbuYwEW6HAmzN2NmbpS1q6m8W7I2qQOOmdKNcvo0I2S7xZYiioBy0WqNg4ox6uPH77rk
	oX+9U9sxwrjeAHcga+wDSWnZdZE+MoizcYOfNg26ZXhk6XpIil7dU17gXbyw0SwvvJ76bPT3um7
	KoBg71o3F+Xq95pTC/7A85EHshB2as1UlaMeN1z4TOLj1e0tEOLApMemD3O5Wk7EnBYLd10uQ=
X-Received: by 2002:a05:6000:1447:b0:435:9e32:2b78 with SMTP id ffacd0b85a97d-4399dddbbb3mr7543711f8f.1.1772234205704;
        Fri, 27 Feb 2026 15:16:45 -0800 (PST)
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 v4 04/14] x86/boot: Document the ordering dependency of _svm_cpu_up()
Date: Fri, 27 Feb 2026 23:16:26 +0000
Message-Id: <20260227231636.3955109-5-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Lets just say this took an unreasoanble amount of time and effort to track
down, when trying to move traps_init() earlier during boot.

When the SYSCALL linkage MSRs are not configured ahead of _svm_cpu_up() on the
BSP, the first context switch into PV uses svm_load_segs() and clobbers the
later-set-up linkage with the 0's cached here, causing hypercalls issues by
the PV guest to enter at 0 in supervisor mode on the user stack.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4:
 * New

It occurs to me that it's not actually 0's we cache here.  It's whatever
context was left from prior to Xen.  We still don't reliably clean unused
MSRs.
---
 xen/arch/x86/hvm/svm/svm.c | 16 ++++++++++++++++
 xen/arch/x86/setup.c       |  2 +-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 18ba837738c6..f1e02d919cae 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -35,6 +35,7 @@
 #include <asm/p2m.h>
 #include <asm/paging.h>
 #include <asm/processor.h>
+#include <asm/traps.h>
 #include <asm/vm_event.h>
 #include <asm/x86_emulate.h>
 
@@ -1581,6 +1582,21 @@ static int _svm_cpu_up(bool bsp)
     /* Initialize OSVW bits to be used by guests */
     svm_host_osvw_init();
 
+    /*
+     * VMSAVE writes out the current full FS, GS, LDTR and TR segments, and
+     * the GS_SHADOW, SYSENTER and SYSCALL linkage MSRs.
+     *
+     * The segment data gets modified by the svm_load_segs() optimisation for
+     * PV context switches, but all values get reloaded at that point, as well
+     * as during context switch from SVM.
+     *
+     * If PV guests are available (and FRED is not in use), it is critical
+     * that the SYSCALL linkage MSRs been configured at this juncture.
+     */
+    ASSERT(opt_fred >= 0); /* Confirm that FRED-ness has been resolved */
+    if ( IS_ENABLED(CONFIG_PV) && !opt_fred )
+        ASSERT(rdmsr(MSR_LSTAR));
+
     svm_vmsave_pa(per_cpu(host_vmcb, cpu));
 
     return 0;
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 27c63d1d97c9..675de3a649ea 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -2078,7 +2078,7 @@ void asmlinkage __init noreturn __start_xen(void)
                                            &this_cpu(stubs).mfn);
     BUG_ON(!this_cpu(stubs.addr));
 
-    traps_init(); /* Needs stubs allocated. */
+    traps_init(); /* Needs stubs allocated, must be before presmp_initcalls. */
 
     cpu_init();
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243142.1543161 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74l-0001Vk-TD; Fri, 27 Feb 2026 23:16:51 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243142.1543161; Fri, 27 Feb 2026 23:16: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 1vw74l-0001Vd-Ou; Fri, 27 Feb 2026 23:16:51 +0000
Received: by outflank-mailman (input) for mailman id 1243142;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74j-0001Do-WE
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:50 +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 63667f70-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:47 +0100 (CET)
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-4377174e1ebso1836368f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:47 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.45
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:45 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 63667f70-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234207; x=1772839007; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=vW+QCUaUYuUq9G8gsk0OzquSefAutMzWyPSfjvJkvyY=;
        b=vhLha4bonoIIVEtrCYPP1O9oG/HtAdS9glPqoD/EGaAeaM0qrSyp0hb7oBSKNSCxr2
         KRSY5Z1dC4Xef20vDJo01G75YjPd8nLXjstEHDXml7wO7nRDcdxODY3UgTvjDCuwwFLW
         iDDmo7htP/Mp+Ob60RpxIlNP54a/Ft1pu3RKM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234207; x=1772839007;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=vW+QCUaUYuUq9G8gsk0OzquSefAutMzWyPSfjvJkvyY=;
        b=Zzb6OjewaZBPMNFP4yyG4zRagBGyDLHRiZH+kU8H0a1ZZFJT1su8sOEPgGqF3Xkab+
         xKVcOnURpeL2CRA1IRy49nKQZUbXWynSPRzisfbWZkqNUEXdF+SyaGhIJ9uv2eOwYFSU
         r+smbv4RG7+89alOMtK807xyaTm+pa6/TOwQjGvehB/54gIuZlOmuT7Jo7+5Xx1sVrzr
         9QTrzy6z5ebOtFIdkb4Tlayh0+YpeBgP/9Nlp3GIrmsFpW+RpNeAMu1oRqjCZh4EupEV
         K1dY2E3IX9JmE6IO+DNKdAxirKLaHaf6Htwapa94+HLHbDjZvc+jR33DeAWxJmah6/lN
         7sqQ==
X-Gm-Message-State: AOJu0YzF0KyY8nDaaI8mPnMXdz0sjnr/xuOJSXZdvLYhJSe6iMRlsoZg
	8Hqq466CnoaQPy833cIqJjoTlmkLn5d55a+p3LIjZrvokpp/ZPwYmx7kqSKhf4xbecBPlUpuSlj
	m56CTSJzVEQ==
X-Gm-Gg: ATEYQzyOh+nZyZYUl+Oxb5m9gLnnvQ77+8+JLKCIDIOOG75jmX6c3c2Hny4bRsLsSID
	HTqm78aNhITRpVNnVF68OYTWjb8ttQNc5KFams6hw2dBiHL8hNSx4hVun2BaG361X9vmgX6gWw3
	pc9oJu7k06bTSUMI7pgGL5drJZ7oEi4BAAcEN+/025FEN+xOs1e40Yx5eDlx4xy6ZseMbwH3MmL
	I4Qm5hpK/BEpab3zDC7AqBkJkgWYeaDzqTmUW6M11lc8Iv3F5XDciEjoeZh1XzwFTXqQzLDSAt2
	j/hDv9SCfyvO2dm6J2GqyawyVp6iCPYRfIfIlmxOP4R2TFMCnji9oMinnZz4GbrncF0svUK5Cv3
	nM2dfT24ZKjJecfOe2TJLHcRQD1TRbOxwHP10SgFf9F/Y6uhgtBW5au+rIZBaB/q8zZBA7nV19l
	uiUXPAw8wWXt6NpPm8FvK/CauML9WWnS1R1LxyzTUfgW+HtUgzDyKXG/JkJtVFlW2lXS/AI4g=
X-Received: by 2002:a05:6000:2483:b0:439:5bfe:18ce with SMTP id ffacd0b85a97d-4399dde22d3mr8576771f8f.8.1772234206354;
        Fri, 27 Feb 2026 15:16:46 -0800 (PST)
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 v4 05/14] x86/traps: Move traps_init() earlier on boot
Date: Fri, 27 Feb 2026 23:16:27 +0000
Message-Id: <20260227231636.3955109-6-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We wish to make use of opt_fred earlier on boot, which involves moving
traps_init() earlier, but this comes with several ordering complications.

The feature word containing FRED needs collecting in early_cpu_init(), and
legacy_syscall_init() cannot be called that early because it relies on the
stubs being allocated, yet must be called ahead of cpu_init() so the SYSCALL
linkage MSRs are set up before being cached.

Delaying legacy_syscall_init() is easy enough based on a system_state check.
Reuse bsp_traps_reinit() to cause a call to legacy_syscall_init() to occur at
the same point as previously.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4:
 * New

I don't particualrly like this solution, but the layout of these functions
change for FRED.  Any adjustments need to consider the logic at the end of the
series, not at this point.
---
 xen/arch/x86/cpu/common.c  |  4 +++-
 xen/arch/x86/setup.c       |  4 +++-
 xen/arch/x86/traps-setup.c | 12 +++++++++++-
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
index bfa63fcfb721..5d0523a78b52 100644
--- a/xen/arch/x86/cpu/common.c
+++ b/xen/arch/x86/cpu/common.c
@@ -407,7 +407,9 @@ void __init early_cpu_init(bool verbose)
 		}
 
 		if (max_subleaf >= 1)
-			cpuid_count(7, 1, &eax, &ebx, &ecx,
+			cpuid_count(7, 1,
+                                    &c->x86_capability[FEATURESET_7a1],
+                                    &ebx, &ecx,
 				    &c->x86_capability[FEATURESET_7d1]);
 	}
 
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index 675de3a649ea..0816a713e1c8 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1386,6 +1386,8 @@ void asmlinkage __init noreturn __start_xen(void)
     else
         panic("Bootloader provided no memory information\n");
 
+    traps_init();
+
     /* Choose shadow stack early, to set infrastructure up appropriately. */
     if ( !boot_cpu_has(X86_FEATURE_CET_SS) )
         opt_xen_shstk = 0;
@@ -2078,7 +2080,7 @@ void asmlinkage __init noreturn __start_xen(void)
                                            &this_cpu(stubs).mfn);
     BUG_ON(!this_cpu(stubs.addr));
 
-    traps_init(); /* Needs stubs allocated, must be before presmp_initcalls. */
+    bsp_traps_reinit(); /* Needs stubs allocated, must be before presmp_initcalls. */
 
     cpu_init();
 
diff --git a/xen/arch/x86/traps-setup.c b/xen/arch/x86/traps-setup.c
index c5fc71c75bca..b2c161943d1e 100644
--- a/xen/arch/x86/traps-setup.c
+++ b/xen/arch/x86/traps-setup.c
@@ -346,6 +346,10 @@ void __init traps_init(void)
 
 /*
  * Re-initialise all state referencing the early-boot stack.
+ *
+ * This is called twice during boot, first to ensure legacy_syscall_init() has
+ * run (deferred from earlier), and second when the virtual address of the BSP
+ * stack changes.
  */
 void __init bsp_traps_reinit(void)
 {
@@ -359,7 +363,13 @@ void __init bsp_traps_reinit(void)
  */
 void percpu_traps_init(void)
 {
-    legacy_syscall_init();
+    /*
+     * Skip legacy_syscall_init() at early boot.  It requires the stubs being
+     * allocated, limiting the placement of the traps_init() call, and gets
+     * re-done anyway by bsp_traps_reinit().
+     */
+    if ( system_state > SYS_STATE_early_boot )
+        legacy_syscall_init();
 
     if ( cpu_has_xen_lbr )
         wrmsrl(MSR_IA32_DEBUGCTLMSR, IA32_DEBUGCTLMSR_LBR);
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243143.1543166 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74m-0001ZB-95; Fri, 27 Feb 2026 23:16:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243143.1543166; Fri, 27 Feb 2026 23: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 1vw74m-0001Xx-1i; Fri, 27 Feb 2026 23:16:52 +0000
Received: by outflank-mailman (input) for mailman id 1243143;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74k-0008WD-Eh
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:50 +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 64a23d16-1432-11f1-b164-2bf370ae4941;
 Sat, 28 Feb 2026 00:16:49 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-436e87589e8so2508815f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:49 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.47
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:47 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64a23d16-1432-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234209; x=1772839009; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0UFkS5LRVpmC0KP6ipyZ4ETPBXtVQAe04/RvjF0fewY=;
        b=Cvna4BAnfjmVea8EYBguec/SIJ54FYSiFw6gdPhB6LP5SVDRKl+kmXZ3exQly+xriw
         cTFSYfL2qDqJgsElxix0kL+m6gvUSbCe89WM2O5PwSfpggfnocBJhTUJMLdmA7z9rOek
         25pasuPJHgclQSOB+OBawF0VbaYHxv6X4KcC8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234209; x=1772839009;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0UFkS5LRVpmC0KP6ipyZ4ETPBXtVQAe04/RvjF0fewY=;
        b=nVqmpVHGilYf1jrojZoJ2589McoZe7sH64MO8Z0K8QuPoByNkKF/x6MqNO9iV94fzf
         WD1b/5z1cPaEXNmzRCsAQRtMlaMNJa8uFBXigrfAbDTi8hryrxlj8d7Ltt+MqyNY9djF
         BzfWMkUc3mBiaP9hq05wwhPylYdy2WDcpQzPd48m2dCgd5UDEXGvK6ecH2uvLaSPMgg0
         j/NFoLh8So51kNxOVDeQetYTzgjw7wqZNR87zWaHZRwSazK2tVSKkLij6gZkF37KBlvu
         FImyb9aribDSlBSiMUtKjR9qRBz9JYzJxSDD0lOvJbC03gY4lWMhmNFD6tcym8GZMju+
         Od4w==
X-Gm-Message-State: AOJu0YzAnf85+91Sc+RYZIcquMot2Iie//pG/KzDg02HqxQas8+KGoqO
	dX0sPtZwtzePEI/NA72rnjmOrXjEK7dHjQSZjSojgH0DNql0ZeRekrwRsyi3MhwN/t58Ds45dgD
	CJJUq
X-Gm-Gg: ATEYQzxU1CBRfw8h1JkqvHqijWhpiEwMHrN/0YLOipz5qJAchjonktSzeHRtONU+fM2
	Xs3ybIK8mbREjtJwBAqJXiBpVXMaD8LQexwLKEYxIZuPUXohaJihcGYN3QukG62kVVz61kN3rfU
	w+pkQb6dp7L2VuSCT9kgeZIdxb5XM9Qk1jTeop0oERZ+JJUYz54DegRoCMMUcRM5C0Vv0ncivVN
	aJQmQ0uyvI8G2fiqkfT4k1YZTXVNSRBSN/YqvVJx1NkSfMm7t/6LCHIiTDbT9adokvmiKg9wxCS
	e4YJbhruJOgFNTAQIOdMEPF+iiwYdpysWae0JkV6D/vDR7b2rXZJazEXYdvcVp8BoD9wRX47b7B
	eQJkhCVvfmyPfRoGFFAD9HIPVZw5dkt/hjctyZcVTACZbZWY2p8KxbBMclfVjEICfxoClp3CNfn
	0Q6Ihyn15F1HhrMPJAreIQTYzwoqHwfpgj/xuvOjCQJC/AxG4OlQnVF80wtbJzh8SafbQ+hFtJB
	vic/qbPMw==
X-Received: by 2002:a5d:5f94:0:b0:435:9144:1417 with SMTP id ffacd0b85a97d-4399de2baacmr8254016f8f.49.1772234208054;
        Fri, 27 Feb 2026 15:16:48 -0800 (PST)
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 v4 07/14] x86/traps: Introduce FRED entrypoints
Date: Fri, 27 Feb 2026 23:16:29 +0000
Message-Id: <20260227231636.3955109-8-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-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 for this purpose, along
with the matching POP_GPRS.

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.

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.

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>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4:
 * Drop POP_GPRS %rax parameter for now.
 * Treat nested events as fatal.  Even if the condition didn't escalate to
   #DF, it still indicates an error with the linkage setup.

v3:
 * Adjust commit message to remove stale details
 * Adjust formatting in fatal_trap()
 * Group CP with others.  It's probably wrong for perf, but that's out the
   window anyway now that we're letting a compiler make the decision tree.

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 |  63 +++++++++++
 xen/arch/x86/traps.c                 | 155 +++++++++++++++++++++++++++
 xen/arch/x86/x86_64/Makefile         |   1 +
 xen/arch/x86/x86_64/entry-fred.S     |  33 ++++++
 4 files changed, 252 insertions(+)
 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 4a21a7b46684..0dd63270fc7c 100644
--- a/xen/arch/x86/include/asm/asm_defns.h
+++ b/xen/arch/x86/include/asm/asm_defns.h
@@ -312,6 +312,69 @@ 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
+        not   %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.
+ */
+.macro POP_GPRS
+        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 907fb4c186c0..48667c71d591 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -88,6 +88,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 &container_of(regs, struct cpu_info, guest_cpu_user_regs)->_fred;
+}
+
 struct extra_state
 {
     unsigned long cr0, cr2, cr3, cr4;
@@ -1028,6 +1035,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] = {
@@ -1106,6 +1139,38 @@ void fatal_trap(const struct cpu_user_regs *regs, bool show_remote)
         }
     }
 
+    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");
+    }
+
     panic("FATAL TRAP: vec %u, %s[%04x]%s\n",
           trapnr, vector_name(trapnr), regs->error_code,
           (regs->eflags & X86_EFLAGS_IF) ? "" : " IN INTERRUPT CONTEXT");
@@ -2199,6 +2264,96 @@ 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.
+     */
+    if ( regs->fred_ss.nested )
+        goto fatal;
+
+    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 PENDING_DBG 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_CP:  do_entry_CP(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;
+
+        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 Fri Feb 27 23:16:52 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:52 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243145.1543172 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74m-0001iR-Px; Fri, 27 Feb 2026 23:16:52 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243145.1543172; Fri, 27 Feb 2026 23: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 1vw74m-0001gJ-Ky; Fri, 27 Feb 2026 23:16:52 +0000
Received: by outflank-mailman (input) for mailman id 1243145;
 Fri, 27 Feb 2026 23: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74l-0008WD-7O
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:51 +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 64ee25d6-1432-11f1-b164-2bf370ae4941;
 Sat, 28 Feb 2026 00:16:50 +0100 (CET)
Received: by mail-wm1-x32e.google.com with SMTP id
 5b1f17b1804b1-48329eb96a7so19849895e9.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:50 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:48 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 64ee25d6-1432-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234209; x=1772839009; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=RbhT0QMKBr/TIGT+bhPKLxd4WsrkmIxt58Vxe9HNu08=;
        b=IqrRAk+QEM+BsjGUr+SQuBK4HVBy4xKrkt8t2aFjS8rGbBZfBhcBxGEaarc3rAvwE0
         cvu2TTH7Bk3Yqz9101oIiBXFQIqemOqEMALQCoiF3yFSPQRui2F79lmOTnvJJZxy0nPl
         vf3JKBXrDO7B9GeJa5QjU2UkhprnmWYuCrSXw=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234209; x=1772839009;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=RbhT0QMKBr/TIGT+bhPKLxd4WsrkmIxt58Vxe9HNu08=;
        b=lA2IouDxFj5W0swSbIGxtrWeUYl2EPNNmrNQOAUVanUYIjjoVNgNjpsdap/O9yXuPN
         2TPlCAAso3gjkGQIKemi9mDX6ANi6Lw+69+/Eyn6O38wZYtNG24C+aZIlX/v9abl/LXy
         zMa+6M2YoO1ZVi/Nc09LKNJcFtDkb+SUkI7GGoR4UIR3KQiFtXfj5fndF3XBqXUois6o
         Y/w1Zjqv3QmTCdc51k0HQkwnR/R7GxVckQ9RNvr7Cu/wSrrOu1iG6AFbcdl+YtXBhoKn
         ih0N8t+Fe260ryBJSHiX3QFYBT/LvTqzF6vLzaasNgjvnV1sCsGGWiZUshRCDnKiw/SA
         9sJQ==
X-Gm-Message-State: AOJu0YzHfQSt0GgEzTxmecBN3Up+HCrpitlJpCfa8PkInsn7S5fWPwpi
	3Qw1BUX6AHxoM19WBsnQImo++zLA4BaZcCcAQp3V6yrK7iQZKL9IsXjo5+6fQQCCj4KAajDUrId
	97z4O
X-Gm-Gg: ATEYQzwW9A/FBnBOgsZm08n5FDN3R/tAwbxsp5pbLPSWFR18Sm5pABjldN+/V5Cdn5m
	U6empophNCUzSh7lDroMg84PVvnENnUdwUU+R3wH7VzQNLyswjh3Ao4n/eBukz6UW9UsIIoqfam
	5EzaZ6a3WOgT74N9iDqwZyFsCNRum5PmbxD4kikY03GVXh9WsmMNhZlUmU8/jS7f71dxTZhihZD
	lK4CH7BeAssJ5mJLWfvgkKd8YnlFpv6RLNYLwVw/J47VyFBCbeg2P/f2vP2In9kotHoKDYNKIjD
	k6xj/fhvuOAUnJycU7M1TokxmmBgVMUhAQlLy84LS88AC7Xfjaqf8NrhW/Fv2W0b4zjijd/P2VI
	7Dr3Zm8KMAxpFRsJbdJxzZ/e2nEZgZjm6JIJjVWuneFCu/mDGX9+2lcFI8ytN8ii5TShQXWsM1z
	Eobyr55xNOAe8ws5Q2rXAqKCyiA/5w2Vj5g5DLDf3daiAn1owZjCu67KrcjTaOpDa4lkSEbog=
X-Received: by 2002:a05:600c:4e56:b0:483:612d:7a9a with SMTP id 5b1f17b1804b1-483c9b68304mr84594355e9.0.1772234208709;
        Fri, 27 Feb 2026 15:16:48 -0800 (PST)
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 v4 08/14] x86/traps: Enable FRED when requested
Date: Fri, 27 Feb 2026 23:16:30 +0000
Message-Id: <20260227231636.3955109-9-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-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 until more infrastructure is in place.

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.

Also introduce init_fred_tss().  At this juncture we need a TSS set up, even
if it is mostly unused.  Reinsert the BUILD_BUG_ON() checking the size of the
TSS against 0x67, this time with a more precise comment.

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.

The FRED initialisation path still needs to write to all system table
registers at least once, even if only to invalidate them.  Per the
documentation, percpu_early_traps_init() is responsible for switching off the
boot GDT, which also needs doing even in FRED mode.

Finally, set CR4.FRED in traps_init()/percpu_early_traps_init().

Xen can now boot in FRED mode and run a PVH dom0.  PV guests still need more
work before they can be run under FRED.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

[*] PVH Dom0 on an Intel PantherLake CPU.

v4:
 * Rework TSS handling entirely, following the VT-x (re)discovery.

v3:
 * Fix poisoning of SL1 pointers.
 * Adjust bsp_traps_reinit().  It probably doesn't matter.
---
 xen/arch/x86/include/asm/current.h |   3 +
 xen/arch/x86/include/asm/traps.h   |   2 +
 xen/arch/x86/traps-setup.c         | 130 +++++++++++++++++++++++++++--
 3 files changed, 130 insertions(+), 5 deletions(-)

diff --git a/xen/arch/x86/include/asm/current.h b/xen/arch/x86/include/asm/current.h
index 62817e8476ec..6139980ab115 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 b2c161943d1e..4c8744eebe3c 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,76 @@ 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_SSP_SL1, stack_top + (1 + IST_DB) * 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));
+    }
+}
+
+/*
+ * Set up a minimal TSS and selector for use in FRED mode.
+ *
+ * With FRED moving the stack pointers into MSRs, we would like to avoid
+ * having a TSS at all, but:
+ *  - VT-x VMExit unconditionally sets TR.limit to 0x67, meaning that
+ *    HOST_TR_BASE needs to point to a good TSS.
+ *  - show_stack_overflow() cross-checks tss->rsp0.
+ *
+ * Fill in rsp0 and the bitmap offset, and load a zero-length TR.  If VT-x
+ * does get used, it will clobber TR to refer to this_cpu(tss_page).tss.
+ */
+static void init_fred_tss(void)
+{
+    seg_desc_t *gdt = this_cpu(gdt) - FIRST_RESERVED_GDT_ENTRY;
+    struct tss64 *tss = &this_cpu(tss_page).tss;
+
+    tss->rsp0 = get_stack_bottom();
+    tss->bitmap = IOBMP_INVALID_OFFSET;
+
+    _set_tssldt_desc(gdt + TSS_ENTRY, 0, 0, SYS_DESC_tss_avail);
+    ltr(TSS_SELECTOR);
+}
+
 /*
  * Configure basic exception handling.  This is prior to parsing the command
  * line or configuring a console, and needs to be as simple as possible.
@@ -322,6 +396,8 @@ void __init traps_init(void)
 
     if ( opt_fred )
     {
+        const struct desc_ptr idtr = {};
+
 #ifdef CONFIG_PV32
         if ( opt_pv32 )
         {
@@ -329,16 +405,27 @@ void __init traps_init(void)
             printk(XENLOG_INFO "Disabling PV32 due to FRED\n");
         }
 #endif
+
+        init_fred();
+        set_in_cr4(X86_CR4_FRED);
+
+        /*
+         * Invalidate the IDT as it's not used.  Set up a minimal TSS.  The
+         * LDT was configured by bsp_early_traps_init().
+         */
+        lidt(&idtr);
+        init_fred_tss();
+
         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();
 
     percpu_traps_init();
@@ -353,7 +440,11 @@ void __init traps_init(void)
  */
 void __init bsp_traps_reinit(void)
 {
-    load_system_tables();
+    if ( opt_fred )
+        init_fred();
+    else
+        load_system_tables();
+
     percpu_traps_init();
 }
 
@@ -368,7 +459,7 @@ void percpu_traps_init(void)
      * allocated, limiting the placement of the traps_init() call, and gets
      * re-done anyway by bsp_traps_reinit().
      */
-    if ( system_state > SYS_STATE_early_boot )
+    if ( !opt_fred && system_state > SYS_STATE_early_boot )
         legacy_syscall_init();
 
     if ( cpu_has_xen_lbr )
@@ -384,7 +475,29 @@ void percpu_traps_init(void)
  */
 void asmlinkage percpu_early_traps_init(void)
 {
-    load_system_tables();
+    if ( opt_fred )
+    {
+        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,
+        }, idtr = {};
+
+        lgdt(&gdtr);
+
+        init_fred();
+        write_cr4(read_cr4() | X86_CR4_FRED);
+
+        /*
+         * Invalidate the IDT (not used) and LDT (not set up yet).  Set up a
+         * minimal TSS.
+         */
+        lidt(&idtr);
+        init_fred_tss();
+        lldt(0);
+    }
+    else
+        load_system_tables();
 }
 
 static void __init __maybe_unused build_assertions(void)
@@ -403,4 +516,11 @@ static void __init __maybe_unused build_assertions(void)
                   endof_field(struct cpu_info, guest_cpu_user_regs)) & 15);
     BUILD_BUG_ON((sizeof(struct cpu_info) -
                   endof_field(struct cpu_info, _fred)) & 63);
+
+    /*
+     * The x86 architecture is happy with TR.limit being less than 0x67, but
+     * VT-x is not.  VMExit unconditionally sets the limit to 0x67, meaning
+     * that HOST_TR_BASE needs to refer to a good TSS of at least this size.
+     */
+    BUILD_BUG_ON(sizeof(struct tss64) <= 0x67);
 }
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:54 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:54 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243146.1543189 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74o-00029Q-4i; Fri, 27 Feb 2026 23:16:54 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243146.1543189; Fri, 27 Feb 2026 23:16: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 1vw74n-00029E-W6; Fri, 27 Feb 2026 23:16:53 +0000
Received: by outflank-mailman (input) for mailman id 1243146;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74m-0001Do-0J
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:52 +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 641b136d-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:48 +0100 (CET)
Received: by mail-wr1-x42b.google.com with SMTP id
 ffacd0b85a97d-43994aa265eso1501203f8f.3
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:48 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.46
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:46 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 641b136d-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234208; x=1772839008; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=0CZO8VvFJTkoemSFkzFWEvoCyFq1y2gQ5xOPrI9dn3A=;
        b=dweHs6CDlyA5ruvLcqqzr5Zu5mYbhtimbFNBp2lpIBiMIXDjKa7DrsopvcWKSNt2lH
         ODbWCWBzPbLkLnP/+ZcbSxAeP4MR9RN+AUjD9wX8ptpPP47f1agyFG7HI/d3j12dI/05
         /EyVuvt/EA0G2i+CbYWuJVK1y9kUg3BYlAS7s=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234208; x=1772839008;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=0CZO8VvFJTkoemSFkzFWEvoCyFq1y2gQ5xOPrI9dn3A=;
        b=Tj3fXQep3FnfwEvoDFzLMI6BYuBL5xP//0wtoXcS0guckHB6nqZ7v7FM8hahGUDrhK
         4ajERYCbsDAW8Mq54uwSRBvWVjNDGBN+N+oNXmUI/6ET07Bb1m4Ofy7EfP74p2e7FD3n
         nVrXmyGWXh/KTtrPgFoqOv82MI9lquSPH/fTHiJ+GkLgH5P5tMso9D59B+cNtJgPtNRf
         KJ5oV0eq2TqqLzInPi30h4V48G1cviONL8MhwiRs6Mlm0/3uCM5Nf5hXc73h8/5a30fE
         BijuHCnO7qOP5iSHUC9XydYJFPC9MLyNAZGCL/rZYGqFakLrNwbdch9POW770QHILRRq
         IYTw==
X-Gm-Message-State: AOJu0YxKO9McFlP/WRhAsEPQWKY+0J2jfjotLVqJ4LwqgUyXhRIy7Iqw
	OVULngWr9lUSRMXWSmOx2Ra8ArYMn1vIjy/HPKm8NxK+ZnTge0gK5lgx/M5LGYSujlxjdF5Z+HV
	MyPfT
X-Gm-Gg: ATEYQzxij0quOpjKrHY/jT0jQUkNrDLuUECa1kNEY2eNmdUm/dLOtcuDZDt+dL4FO0u
	2ieoeIKaKY41qfhogoKpvOwDXGIlg9cMonogHQcjqEe3LDwKBgYn/OFiPoBu90OzjuaUJ2uHhm+
	7BgBeL/nRckCiCmAaGFjgNOnvfOH2y6dg3+P3fNfu3rHJ2RklguTBw+XUihBVbe5salxZ0mNtzH
	WPvBmfcb1aVyYUBwb7ZYiJS4SXvDbwNkiQorGv1ooQbLZEJd6CHoMiViBPh6kLW02OeuLibldLa
	ZVNHvwWK/SxEoHRfdpk8IjEyAPBUuUc9unOLeWeGg/6pLUoz1VBJUfNKaMZ2IKiCi48bURgmVXC
	alurzysNBTq4xdAV5cEMJPF0xcU0CeSQBXJP+M3svVNpqWYd6T2VpCuCuAOCSUHvbD0DEWRoE51
	g62Yx6UYZrIoSY0GgVBnbiM5L/0yblNtJeReR52pHQDfc/1LkruyxFLKTWXMbEutOQy35HVJo=
X-Received: by 2002:a05:6000:18a9:b0:439:8e2f:689e with SMTP id ffacd0b85a97d-4399de2c5demr7687079f8f.43.1772234207185;
        Fri, 27 Feb 2026 15:16:47 -0800 (PST)
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 v4 06/14] x86/traps: Don't configure Supervisor Shadow Stack tokens in FRED mode
Date: Fri, 27 Feb 2026 23:16:28 +0000
Message-Id: <20260227231636.3955109-7-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-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.  This means that:

 1) memguard_guard_stack() should not write Supervisor Shadow Stack Tokens.
 2) cpu_has_bug_shstk_fracture is no longer relevant when deciding whether or
    not to enable Shadow Stacks in the first place.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4:
 * Adjust for cpu_has_bug_shstk_fracture.
 * Reworked entirely in light of the prior 3 patches.

The SDM explicitly points out the shstk fracture vs FRED case, yet PTL
enumerates CET-SSS (immunity to shstk fracture).  I can only assume that there
are other Intel CPUs with FRED but without CET-SSS.
---
 xen/arch/x86/mm.c    | 14 +++++++++++---
 xen/arch/x86/setup.c | 16 ++++++++++------
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 0d0d5292953b..4c404b6c134f 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,15 @@ 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) )
+    ASSERT(opt_fred >= 0); /* Confirm that FRED-ness has been resolved */
+
+    /*
+     * 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 +6461,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 0816a713e1c8..8e59c9801afe 100644
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
@@ -1412,15 +1412,19 @@ void asmlinkage __init noreturn __start_xen(void)
             boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
             !boot_cpu_has(X86_FEATURE_CET_SSS);
 
+        ASSERT(opt_fred >= 0); /* Confirm that FRED-ness has been resolved */
+
         /*
-         * On bare metal, assume that Xen won't be impacted by shstk
-         * fracturing problems.  Under virt, be more conservative and disable
-         * shstk by default.
+         * If FRED is in use, Supervisor Shadow Stack tokens are not used and
+         * shstk fracturing is of no consequence.  Otherwise:
+         * - On bare metal, assume that Xen won't be impacted by shstk
+         *   fracturing problems.
+         * - Under virt, be more conservative and disable shstk by default.
          */
         if ( opt_xen_shstk == -1 )
             opt_xen_shstk =
-                cpu_has_hypervisor ? !cpu_has_bug_shstk_fracture
-                                   : true;
+                opt_fred || (cpu_has_hypervisor ? !cpu_has_bug_shstk_fracture
+                                                : true);
 
         if ( opt_xen_shstk )
         {
@@ -1925,7 +1929,7 @@ void asmlinkage __init noreturn __start_xen(void)
 
     system_state = SYS_STATE_boot;
 
-    bsp_stack = cpu_alloc_stack(0);
+    bsp_stack = cpu_alloc_stack(0); /* Needs to know IDT vs FRED */
     if ( !bsp_stack )
         panic("No memory for BSP stack\n");
 
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:55 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:55 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243147.1543201 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74p-0002RR-Gl; Fri, 27 Feb 2026 23:16:55 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243147.1543201; Fri, 27 Feb 2026 23:16: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 1vw74p-0002R4-7r; Fri, 27 Feb 2026 23:16:55 +0000
Received: by outflank-mailman (input) for mailman id 1243147;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74n-0001Do-0Y
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:53 +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 61d57dc2-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:44 +0100 (CET)
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-4375d4fb4d4so1676483f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:44 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:41 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 61d57dc2-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234204; x=1772839004; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XgdpzNU2ggPbFTgmu4VQz6T9b6r+7R4jXsnlPDE3Rcg=;
        b=NHLWGZQfYMaqUS/TGKOv5SxPxfjZXs9FFoH+q1SFnWgC+VSzNCtVY3yYo4DJkdeaEe
         2snzK35OXTjfKKkGbtlWZmM9oD9MugXYCiYwCbBXTo/U5gCXtli5LHVnADr8UnvNP9n5
         WfLp1NMIUDoNk/9ZcExzZo57GoZA3SaOsEIUQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234204; x=1772839004;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=XgdpzNU2ggPbFTgmu4VQz6T9b6r+7R4jXsnlPDE3Rcg=;
        b=Ru1sBgrIwWgS0SBT+bzWP0s/rlq3QpigeUxOUNx5Ss6rk8vEABOC/9H7vHqGAEqoeW
         6vCR/nK+BbEPCak8PmGWqvFhnSOYOn8Pcx3Z2I0qI5kMQ312Vu5xsrb6BKFKQUUCYUGL
         u6GGXWolKmvaLkTrFr76pqdSbyL+t10gMeSkfxFET53Om7ixD/OIgkkPpl955cG5ZXTd
         KzkNiwAVYUOB6fkeNz/HHETDCQGdXH14ZNQ6ie8vHwoLIedw2NZ+UHreMYaD2qEX6DPr
         lYZsxM6m9QOG1iDB+67GxRfp2JYLdQqIatp/SQhj5ugUSL6SFqec25iLaShyQMEIqmAI
         Fyzw==
X-Gm-Message-State: AOJu0Yyvw0A8CToqUVAGGeQSlQ9Ief5UBEUKW7LWZLtZi44eOXEDbEX7
	br8yQMmqN8AwgsBaWKMT4UXI1+dv0zvuSGcNYhaYrbLRGXn5i4GzQ+SuJ2LdAc3w8gRBoE76hkE
	KVnqB
X-Gm-Gg: ATEYQzwFJhY2pvvPWauC8sr1+iqhPKbXOp9/LiLG7q6P2bzQdo8g2kjSwV8RWK7zaUG
	ziuQM5w9FyVTNpKKzkr+Fgffzed3jJ3+MG7/SEiD7cZdxhH5x2wj6tFSgRrnPIzM3rU/AD0rjz3
	0wgyZzGbfcz+p9xc/h02/4uJ//eqVACbRgDDiBKQmMPOYwRga/OTjyNLd65JPoscsmfcuXqR6mm
	DnLp4cEMWuY8wH0i8RQuhlfxbrDe40ObarrMDtZl/TYbTcuIbfUe793/Ms4QURbx8UgEvu3O+ET
	xIyN4Ijd8SqdSOEXBYvrpaVeVloWtj6hROhVpu+YaKNasz2Z5924BpmTTnNiZM1mi3F6E8grVdX
	x2Fk2DHezKNjiv/VRklyBkpAGbHkIcXZYVi74cpEucftIMboO6V+c4LquWsMw1eiqizmzhMDlU0
	vZhojuy1rfg2nBD5g60yIFHigapjSLPD022QLLHbi1q5WR4YenbKU6vifv8DkDTgAfshyZ4p0=
X-Received: by 2002:a05:6000:420d:b0:439:8a4f:5250 with SMTP id ffacd0b85a97d-4399dde503fmr7936970f8f.17.1772234203211;
        Fri, 27 Feb 2026 15:16:43 -0800 (PST)
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 v4 02/14] docs/guest-guide: Describe the PV traps and entrypoints ABI
Date: Fri, 27 Feb 2026 23:16:24 +0000
Message-Id: <20260227231636.3955109-3-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... seeing as I've had to thoroughly reverse engineer it for FRED and make
tweaks in places.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

Obviously there's a lot more in need of doing, but this is at least a start.

v4:
 * New
---
 docs/glossary.rst                 |   3 +
 docs/guest-guide/x86/index.rst    |   1 +
 docs/guest-guide/x86/pv-traps.rst | 123 ++++++++++++++++++++++++++++++
 3 files changed, 127 insertions(+)
 create mode 100644 docs/guest-guide/x86/pv-traps.rst

diff --git a/docs/glossary.rst b/docs/glossary.rst
index 6adeec77e14c..c8ab2386bc6e 100644
--- a/docs/glossary.rst
+++ b/docs/glossary.rst
@@ -43,6 +43,9 @@ Glossary
      Sapphire Rapids (Server, 2023) CPUs.  AMD support only CET-SS, starting
      with Zen3 (Both client and server, 2020) CPUs.
 
+   event channel
+     A paravirtual facility for guests to send and recieve interrupts.
+
    guest
      The term 'guest' has two different meanings, depending on context, and
      should not be confused with :term:`domain`.
diff --git a/docs/guest-guide/x86/index.rst b/docs/guest-guide/x86/index.rst
index 502968490d9d..5b38ae397a9f 100644
--- a/docs/guest-guide/x86/index.rst
+++ b/docs/guest-guide/x86/index.rst
@@ -7,3 +7,4 @@ x86
    :maxdepth: 2
 
    hypercall-abi
+   pv-traps
diff --git a/docs/guest-guide/x86/pv-traps.rst b/docs/guest-guide/x86/pv-traps.rst
new file mode 100644
index 000000000000..2ff18e2f9454
--- /dev/null
+++ b/docs/guest-guide/x86/pv-traps.rst
@@ -0,0 +1,123 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+PV Traps and Entrypoints
+========================
+
+.. note::
+
+   The details here are specific to 64bit builds of Xen.  Details for 32bit
+   builds of Xen, are different and not discussed further.
+
+PV guests are subject to Xen's linkage setup for events (interrupts,
+exceptions and system calls).  x86's IDT architecture and limitations are the
+majority influence on the PV ABI.
+
+All external interrupts are routed to PV guests via the :term:`Event Channel`
+interface, and not discussed further here.
+
+What remain are exceptions, and the instructions which cause a control
+transfers.  In the x86 architecture, the instructions relevant for PV guests
+are:
+
+ * ``INT3``, which generates ``#BP``.
+
+ * ``INTO``, which generates ``#OF`` only if the overflow flag is set.  It is
+   only usable in compatibility mode, and will ``#UD`` in 64bit mode.
+
+ * ``CALL (far)`` referencing a gate in the GDT.
+
+ * ``INT $N``, which invokes an arbitrary IDT gate.  These four instructions
+   so far all check the gate DPL and will ``#GP`` otherwise.
+
+ * ``INT1``, also known as ``ICEBP``, which generates ``#DB``.  This
+   instruction does *not* check DPL, and can be used unconditionally by
+   userspace.
+
+ * ``SYSCALL``, which enters CPL0 as configured by the ``{C,L,}STAR`` MSRs.
+   It is usable if enabled by ``MSR_EFER.SCE``, and will ``#UD`` otherwise.
+   On Intel parts, ``SYSCALL`` is unusable outside of 64bit mode.
+
+ * ``SYSENTER``, which enters CPL0 as configured by the ``SEP`` MSRs.  It is
+   usable if enabled by ``MSR_SYSENTER_CS`` having a non-NUL selector, and
+   will ``#GP`` otherwise.  On AMD parts, ``SYSENTER`` is unusable in Long
+   mode.
+
+
+Xen's configuration
+-------------------
+
+Xen maintains a complete IDT, with most gates configured with DPL0.  This
+causes most ``INT $N`` instructions to ``#GP``.  This allows Xen to emulate
+the instruction, referring to the guest kernels vDPL choice.
+
+ * Vectors 3 ``#BP`` and 4 ``#OF`` are DPL3, in order to allow the ``INT3``
+   and ``INTO`` instructions to function in userspace.
+
+ * Vector 0x80 is DPL3 in order to implement the legacy system call fastpath
+   commonly found in UNIXes.
+
+ * Vector 0x82 is DPL1 when PV32 is enabled, allowing the guest kernel to make
+   hypercalls to Xen.  All other cases (PV32 guest userspace, and both PV64
+   modes) operate in CPL3 and this vector behaves like all others to ``INT
+   $N`` instructions.
+
+A range of the GDT is guest-owned, allowing for call gates.  During audit, Xen
+forces all call gates to DPL0, causing their use to ``#GP`` allowing for
+emulation.
+
+Xen enables ``SYSCALL`` in all cases as it is mandatory in 64bit mode, and
+enables ``SYSENTER`` when available in 64bit mode.
+
+When Xen is using FRED delivery the hardware configuration is substantially
+different, but the behaviour for guests remains as unchanged as possible.
+
+
+PV Guest's configuration
+------------------------
+
+The PV ABI contains the "trap table", modelled very closely on the IDT.  It is
+manipulated by ``HYPERCALL_set_trap_table``, has 256 entries, each containing
+a code segment selector, an address, and flags.  A guest is expected to
+configure handlers for all exceptions; failure to do so is terminal similar to
+a Triple Fault.
+
+Part of the GDT is guest owned with descriptors audited by Xen.  This range
+can be manipulated with ``HYPERVISOR_set_gdt`` and
+``HYPERVISOR_update_descriptor``.
+
+Other entrypoints are configured via ``HYPERVISOR_callback_op``.  Of note here
+are the callback types ``syscall``, ``syscall32`` (relevant for AMD parts) and
+``sysenter`` (relevant for Intel parts).
+
+.. warning::
+
+   Prior to Xen 4.15, there was no check that the ``syscall`` or ``syscall32``
+   callbacks had been registered before attempting to deliver via them.
+   Guests are strongly advised to ensure the entrypoints are registered before
+   running userspace.
+
+
+Notes
+-----
+
+``INT3`` vs ``INT $3`` and ``INTO`` vs ``INT $4`` are hard to distinguish
+architecturally as both forms have a DPL check and use the same IDT vectors.
+Because Xen configures both as DPL3, the ``INT $`` forms do not fault for
+emulation, and are treated as if they were exceptions.  This means the guest
+can't block these instruction by trying to configure them with vDPL0.
+
+The instructions which trap into Xen (``INT $0x80``, ``SYSCALL``,
+``SYSENTER``) but can be disabled by guest configuration need turning back
+into faults for the guest kernel to process.
+
+ * When using IDT delivery, instruction lengths are not provided by hardware
+   and Xen does not account for possible prefixes.  ``%rip`` only gets rewound
+   by the length of the unprefixed instruction.  This is observable, but not
+   expected to be an issue in practice.
+
+ * When Xen is using FRED delivery, the full instruction length is provided by
+   hardware, and ``%rip`` is rewound fully.
+
+While both PV32 and PV64 guests are permitted to write Call Gates into the
+GDT, emulation is only wired up for PV32.  At the time of writing, the x86
+maintainers feel no specific need to fix this omission.
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Fri Feb 27 23:16:56 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:56 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243150.1543205 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74q-0002Ys-4b; Fri, 27 Feb 2026 23:16:56 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243150.1543205; Fri, 27 Feb 2026 23: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 1vw74p-0002WH-Px; Fri, 27 Feb 2026 23:16:55 +0000
Received: by outflank-mailman (input) for mailman id 1243150;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74o-0008WD-45
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:54 +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 670b5881-1432-11f1-b164-2bf370ae4941;
 Sat, 28 Feb 2026 00:16:53 +0100 (CET)
Received: by mail-wr1-x432.google.com with SMTP id
 ffacd0b85a97d-4398e850783so1818829f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:53 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 670b5881-1432-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234213; x=1772839013; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=x/38gQJt4Duoysgo51k9uCF7ZRs4cy2MMdxCGTZF0sM=;
        b=GwO9z+1DaK9BHfSRVqY8Diu6eVJb4bJSYHwF8F5cOUbWPqQs1wN1++kMotfSrKBAl8
         +eWXfnAeSgAFW5GXsipzHoFWtOdungSB+Y85070W6Q0NonZJEJfI32bUjSSsPx7ij2UP
         NOA1QMmhq1Za0WeUEBhFI96PJkcSD3LktowuQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234213; x=1772839013;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=x/38gQJt4Duoysgo51k9uCF7ZRs4cy2MMdxCGTZF0sM=;
        b=YxDvAZ7w5aKNTlES29maHt7pMKvVLeGnSMSQY6OifS2dj0TUEf298ncQdbgArykNrZ
         lU5FF/GSUTB2s7lGaBW4rdsqvLp+VJg8/Np4pzvoN+udem5dN8m4UpBa0KhBY8znVhzn
         HuiCxb4xKKcncKPEVMg89g4ewNrtnTyrm0wWhALnLeO3wMKHld0xUlG3sNNSXu2LAHAy
         Wuce0oROHYCZRr+i9feqo+Sj236B8S3eMV3GPe28N0Z8pE+oYq/MZUdYueupk6gggr6s
         hysC3Of69D7TmkEwGPxQS/qd2Bijw45LZc59r3XutGSnlA3bjadd+PEEBzNBHgPSCnYu
         M/2w==
X-Gm-Message-State: AOJu0YyN05C3f0WS2jlsOyM/JZXfKYPl1A4v+7r4NmrK/4SvXWNpsEjJ
	NokQXvlrv9bCPoGLxflE11boSNWbsq9+Dn1OY0/HR44IkHXRXOdVrOW7c3OcfIyHGWVkB/k1tg8
	qC4tM
X-Gm-Gg: ATEYQzwxTcOMy3RAOZ141Knqh9zIAnYodc0jirAuUS9onALlU5hCYvYmbCFj7xVFZgl
	m0ATV0aDiU8qLhXXOWWsqXqFirhWmottTk9dPJBklSZ1gIuOuqiGSlfQciBNI4rNESHW3hTFk6Z
	YuCGx7b17o7i1d+97K9dey/Zm0wU/wAjh7jBaDj59wuaxMElxgVJyfborxDKM/5OUmeMEu8DgdL
	7WmLU5cvTXA/vywBKFF/225gchmGtQDHCsStFRKAGxiYHngbQ6Vyke/GLU7B3L89AdibFij3lQ8
	tatM4zxzlWuEDmKlgVSG73Xf6C6lvEfT8dGdeaQ9mt8flve3qmAgQO18fDX9q1g+8DOVGjFX8pB
	nK46ZLK1C/Q9dljwDMyv5GIoBBreZKixb9jqOujmqO2Wdp7mS1qbJ+w4K9vtTPhoW3hvuHXuXBp
	keoM0LyMZnZsfLa0Mi4HWun+sGpg7kmYsU8HYRgf3o9cfyQL8hxqtVbGO0MERlJ/gMaswR6xG4r
	yUHn2Kmvw==
X-Received: by 2002:a5d:5703:0:b0:439:9203:595a with SMTP id ffacd0b85a97d-4399de2fd89mr5736542f8f.43.1772234212143;
        Fri, 27 Feb 2026 15:16:52 -0800 (PST)
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 v4 13/14] x86: Clamp reserved bits in eflags more aggressively
Date: Fri, 27 Feb 2026 23:16:35 +0000
Message-Id: <20260227231636.3955109-14-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-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 in order for a PV dom0 to start.

Xen has been overly lax with reserved bit handling.  Adjust
arch_set_info_guest*() and hypercall_iret() which consume flags to clamp the
reserved bits for all guest types.

This is a minor ABI change, but by the same argument as commit
9f892f84c279 ("x86/domctl: Stop using XLAT_cpu_user_regs()"); the reserved
bits would get clamped like this naturally by hardware when the vCPU is run.

This allows PV guests to start when Xen is using 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>

Still slightly RFC.  Testing still in progress.

v3:
 * Rewrite the commit message.
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 (which 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 9c1f6ef76d52..1372a65d8123 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1244,7 +1244,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;
@@ -1268,7 +1268,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 155d61db13f8..a0e811ea47a0 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 9a11a0a16b4e..075a3646c2a3 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -1024,7 +1024,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 Fri Feb 27 23:16:57 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:57 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243149.1543213 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74r-0002eB-0y; Fri, 27 Feb 2026 23:16:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243149.1543213; Fri, 27 Feb 2026 23: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 1vw74q-0002cA-9b; Fri, 27 Feb 2026 23:16:56 +0000
Received: by outflank-mailman (input) for mailman id 1243149;
 Fri, 27 Feb 2026 23: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74o-0001Do-0q
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:54 +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 6538baf4-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:50 +0100 (CET)
Received: by mail-wm1-x342.google.com with SMTP id
 5b1f17b1804b1-4806bf39419so26514525e9.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:50 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.48
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 6538baf4-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234210; x=1772839010; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=cuNoDLVINXiEv4BH5R0XrplZaA/DMViGBRkmV2Hoar0=;
        b=nhaxy+kRcF+C2+tZvjT2wr31Q5Iuvdv8PS4XJUT5OGRin0oFuxhadey1qXJzpv+C4C
         xMfxBD+v8B92zhDBYgigeXRcsJ3dAT4jRmwHAIvDkFoi7yCn1p0vu05hFka6kIqxCR7j
         ETs+hecEm/6ooGJhAz2UWbME53LWxTuDlphsc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234210; x=1772839010;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=cuNoDLVINXiEv4BH5R0XrplZaA/DMViGBRkmV2Hoar0=;
        b=uVI3IgOaPa9Hc1ismpVdG8u4U7qgnM2dU58onOWt8x9stuXSMcvYlNDg7cspntGKp0
         tzQCZ2kFLFWt1gZtpJwXcDsGeQhYld3JF0N7nlshdBEdzRHUrSQ1eViC0ff5OKtPHEJX
         sKPucq6/t78ssO8kjkjJR0I6cUp7E0jV+9/T/AplMjZoInOmzCUJzRIbnLtXC+4cFPrm
         A4Czc/w0Oheq4sH6S9Bwr+1U2bRR1y/dxtWPEcgwZSFdt8kwka1XTx1gDo5XuTuQdTq/
         WxoOd0Ew4CUzftG8TzPLYM0WzUmdk7NDTpNmwZhlgVNFs1NVRkDXXD/1gLeNPtXuLYXE
         OeWw==
X-Gm-Message-State: AOJu0YzXZt5MQmqfn7l79LRwW+KxKRba9qyiYC+bTs8mcPSU24LlY10I
	yx/B0+Xv3UvbjutnH+Mp8jXzU031IZmPO5X+O/EhJvC+Hr/BpEodmZhmjViquyQYYdTLo4UPqL/
	E1qCtdT2RYKhF
X-Gm-Gg: ATEYQzxegyOx4HMVIQ1D540v8VOsOuSd6OEfXsIj11bBGFVGNVZHjf/5Z2bw/Db5eYA
	aEeDl8SR+o1uVD9mCbFRkwNjAKi4fhSqiN5M6n4ZF/tOPA+ZbHa3QOkJu2EeDfWF9tFajn/pRvQ
	M04NwNmK+rE2JlHzqeM+ox3lQRUJQRG24MnubQscaM2fPHmVsXTkL9KQbm2FV8pmpE4joBFZOul
	lry9ZcJtxhJwk6KWyu30aviksM/UKMRrTz0LmiQRu2bYc5vdFN5pHA5s7O009ncspt0XVMqlegr
	JbwDQcVgGUeAccWI/blq7v7Hk42RZmf4DV9ksFKrkyB0c8nM9O7Iq9osaovfXLv4/cJENT17rjO
	g+2UyyL5O5kaU4JVfxhhulD7wLunHYRK/5QQOoML0fkcwsRR5kL3ktQNCfrkkdMexlPtbSAVWyS
	huxl7Wq1HSmqilgOxNeIx7fwDsfZQzssRrP+7Yf/w4lhq+SrEWdIyaNPvdKqf8z1pISG/hmx97O
	qqlkuMnkA==
X-Received: by 2002:a05:600c:c16e:b0:475:ddad:c3a9 with SMTP id 5b1f17b1804b1-483c99348c5mr75009455e9.13.1772234209589;
        Fri, 27 Feb 2026 15:16:49 -0800 (PST)
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 v4 09/14] x86/pv: Adjust GS handling for FRED mode
Date: Fri, 27 Feb 2026 23:16:31 +0000
Message-Id: <20260227231636.3955109-10-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-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_SHADOW rather than GS_BASE.

  * In toggle_guest_mode(), we need to emulate SWAPGS.

  * In {read,write}_msr() which access the live registers, GS_SHADOW and
    GS_BASE need swapping.

  * 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 just a MOV %gs.  Simply skip the SWAPGSes.

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>

v4:
 * Adjust GS accesses for emulated {RD,WR}MSR too.
---
 xen/arch/x86/domain.c             | 16 +++++++++++-----
 xen/arch/x86/pv/domain.c          | 22 ++++++++++++++++++++--
 xen/arch/x86/pv/emul-priv-op.c    | 24 +++++++++++++++---------
 xen/arch/x86/pv/misc-hypercalls.c | 16 ++++++++++------
 4 files changed, 56 insertions(+), 22 deletions(-)

diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index e658c2d647b7..9c1f6ef76d52 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1791,9 +1791,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 )
@@ -1814,7 +1815,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);
@@ -1931,6 +1934,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 SHADOW_GS is the
+ * active GS from the guest's point of view.
  */
 static void save_segments(struct vcpu *v)
 {
@@ -1946,12 +1952,12 @@ static void save_segments(struct vcpu *v)
         if ( read_cr4() & X86_CR4_FSGSBASE )
         {
             fs_base = __rdfsbase();
-            gs_base = __rdgsbase();
+            gs_base = opt_fred ? rdmsr(MSR_SHADOW_GS_BASE) : __rdgsbase();
         }
         else
         {
             fs_base = rdmsr(MSR_FS_BASE);
-            gs_base = rdmsr(MSR_GS_BASE);
+            gs_base = opt_fred ? rdmsr(MSR_SHADOW_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 d16583a7454d..b85abb5ed903 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;
@@ -514,11 +515,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_SHADOW here), the SWAPGS instruction is disallowed so
+     * we have to emulate it.
+     */
+    if ( opt_fred )
+    {
+        unsigned long gs_shadow = rdmsr(MSR_SHADOW_GS_BASE);
+
+        wrmsrns(MSR_SHADOW_GS_BASE, gs_base);
+        write_gs_base(gs_shadow);
+
+        gs_base = gs_shadow;
+    }
+    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/emul-priv-op.c b/xen/arch/x86/pv/emul-priv-op.c
index 87d3bbcf901f..81153084129a 100644
--- a/xen/arch/x86/pv/emul-priv-op.c
+++ b/xen/arch/x86/pv/emul-priv-op.c
@@ -25,6 +25,7 @@
 #include <asm/pv/traps.h>
 #include <asm/shared.h>
 #include <asm/stubs.h>
+#include <asm/traps.h>
 
 #include <xsm/xsm.h>
 
@@ -926,7 +927,7 @@ static int cf_check read_msr(
     case MSR_GS_BASE:
         if ( !cp->extd.lm )
             break;
-        *val = read_gs_base();
+        *val = opt_fred ? rdmsr(MSR_SHADOW_GS_BASE) : read_gs_base();
         return X86EMUL_OKAY;
 
     case MSR_SHADOW_GS_BASE:
@@ -1066,17 +1067,22 @@ static int cf_check write_msr(
         if ( !cp->extd.lm || !is_canonical_address(val) )
             break;
 
-        if ( reg == MSR_FS_BASE )
-            write_fs_base(val);
-        else if ( reg == MSR_GS_BASE )
-            write_gs_base(val);
-        else if ( reg == MSR_SHADOW_GS_BASE )
+        switch ( reg )
         {
-            write_gs_shadow(val);
+        case MSR_FS_BASE:
+            write_fs_base(val);
+            break;
+
+        case MSR_SHADOW_GS_BASE:
             curr->arch.pv.gs_base_user = val;
+            fallthrough;
+        case MSR_GS_BASE:
+            if ( (reg == MSR_GS_BASE) ^ opt_fred )
+                write_gs_base(val);
+            else
+                write_gs_shadow(val);
+            break;
         }
-        else
-            ASSERT_UNREACHABLE();
         return X86EMUL_OKAY;
 
     case MSR_EFER:
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 Fri Feb 27 23:16:58 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:58 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243151.1543219 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74r-0002rE-Sr; Fri, 27 Feb 2026 23:16:57 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243151.1543219; Fri, 27 Feb 2026 23:16: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 1vw74r-0002ok-A5; Fri, 27 Feb 2026 23:16:57 +0000
Received: by outflank-mailman (input) for mailman id 1243151;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74p-0001Do-0s
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16: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 65a17652-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:51 +0100 (CET)
Received: by mail-wr1-x429.google.com with SMTP id
 ffacd0b85a97d-4398d9a12c6so2002729f8f.2
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:51 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.49
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:49 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 65a17652-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234210; x=1772839010; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=IPkD49jGeQX0+NTjYasufq4vkWv8Wa7wJQ5GOxuUBzw=;
        b=aWu0v+aKBSi+ZKXTbUAIbhqLiQ3t0UCag3SY/IXNU8JtgkdzoJIrQ60VGwJb9cv4Y4
         jNGvfp2rCW7wSHNUZy3zh3kDtFHniQVLflFDdMPuqlR4IRkD2OQJX3rR/25hji2Yr8HH
         VuPEQ7C6rHI5+6XRZF9iwNbB4CWl99pMP+7y8=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234210; x=1772839010;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=IPkD49jGeQX0+NTjYasufq4vkWv8Wa7wJQ5GOxuUBzw=;
        b=DdWnCDvVvP4AqNzRXCvmgu0RjdtbedXT+uxnK61aVSi9EDuCwNfkBsgDWQ4Vcwko49
         xwMSpOstGei/PHJf3MFw9W2upjdGZ+sNsAQk4rh7CnqLKupX75CqsoAhnEOHxOpGkgOX
         ddq/UDaizVe57NPvgGQxav1UFkWJ0pd8Ys2PB0ddmk/x8uDTuz37FymzbxcyPMreON6A
         ekJ9BcEk14xtQ6f17AYzFMHurBy/GchNZf9lKE7PgF/v1ObU126ndDvhd3KeqNMAqTWD
         JqOzLffncvpIa/J4wsVLsLVVQqARTK4gs1tSxN10sECeeCgOCR60X7XjvUHz2uuzHfZz
         63vA==
X-Gm-Message-State: AOJu0Yynw/kQWYsK7Gl9vJD84x3w0caPwULE5E+XnTFTR8JB4EaySAv4
	oeIifRzWvhN0xnR5cXv0IGhvQ83fwdGX8zMaSmX5PJ09dyR/k6cavq26iOzcfMyeRYpNn8FjcDu
	rBGxP2XccOA==
X-Gm-Gg: ATEYQzwLpygoeAfajVlmhzf9oEj32veKnLugd0DsSSkyl+XViBax4otbgprtdLRlHlv
	e1il92qsxUkEZ0jvQkPNWGWwkp7uXKp/WfvLRgjw68mj60YUlX8DXRourpImchy6ITOvimnvd79
	+X9F5L7LKCL2QulJqnKjX+7PoZzC30h0Y4gbGJ3OP+f9EHl0I3PS+aeYp8j1CpYyycst19XIttL
	EumeAkxACZMWjf3iF8akKhdggWsYxv261LEgmXnq3EOrtb5y3wzilNEhT/BAQPjPn4VXlADKy5X
	GaC6zhylzoN2GHUUZ13EIYDYARmyO6C+cFiU0EQEo296G16TQa7xeLtuQrNMk0i4ui0GR/qOdc4
	iWhfv2RJkYNt7XQ10YJvl8KfliWzwPzFnaQjXMVakXSmfr3vv+U1r+BCIs74URBXCUy4YjqISdn
	3yAkuBG23jG3jY4ViUIaqAwz0aDJdwiQi+cZ7NYVQ1gRbL3LadQRIR58ae6qXPIHi62ocJ1fo=
X-Received: by 2002:a05:6000:4301:b0:439:8487:73b2 with SMTP id ffacd0b85a97d-4399ddf1330mr8136464f8f.14.1772234210254;
        Fri, 27 Feb 2026 15:16:50 -0800 (PST)
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 v4 10/14] x86/pv: Guest exception handling in FRED mode
Date: Fri, 27 Feb 2026 23:16:32 +0000
Message-Id: <20260227231636.3955109-11-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-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>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4:
 * Treat nested events as fatal.

v3:
 * Adjust comments.
 * Group CP with others.  It's definitely wrong for perf, but that's out the
   window anyway now that we're letting a compiler make the decision tree.
v2:
 * New
---
 xen/arch/x86/traps.c             | 78 +++++++++++++++++++++++++++++++-
 xen/arch/x86/x86_64/entry-fred.S | 13 +++++-
 xen/arch/x86/x86_64/entry.S      |  4 +-
 3 files changed, 92 insertions(+), 3 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 48667c71d591..7563576fb477 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2266,9 +2266,85 @@ 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.
+     */
+    if ( regs->fred_ss.nested )
+        goto fatal;
+
+    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.  PV 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_CP:  do_entry_CP(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;
+
+        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..a1ff9a4a9747 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
 
+#ifdef CONFIG_PV
+        GET_STACK_END(14)
+        movq    STACK_CPUINFO_FIELD(current_vcpu)(%r14), %rbx
+
+        jmp     test_all_events
+#else
+        BUG     /* Not Reached */
+#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 8b83082413a5..17ca6a493906 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 Fri Feb 27 23:16:59 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:16:59 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243152.1543228 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74t-00035m-1p; Fri, 27 Feb 2026 23:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243152.1543228; Fri, 27 Feb 2026 23:16: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 1vw74s-00032V-Bp; Fri, 27 Feb 2026 23:16:58 +0000
Received: by outflank-mailman (input) for mailman id 1243152;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74q-0001Do-1B
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:56 +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 66064ac5-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:51 +0100 (CET)
Received: by mail-wr1-x442.google.com with SMTP id
 ffacd0b85a97d-4398f9e3b40so2692986f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:51 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:50 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 66064ac5-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234211; x=1772839011; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=+mPsNS3LpQ9n9lXMqkSeJXydtadjNiDxPpSog7A2Jaw=;
        b=PdjhBNUzXeKG5TFAcbNR1UbXPQwTxr46q7dh0n8XrILY8ncoEHcMbnPBtV741sLYe9
         ZKmSRnSaJJ8aiFeIbSu3KUZ1iYE77MuDnUe0dGd39rgPt/A1rvMR2ZKCGHyxoANjDs6s
         caPxN4Mjd3Dl/fYLkltU2he5mEWdeiuDqONVk=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234211; x=1772839011;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=+mPsNS3LpQ9n9lXMqkSeJXydtadjNiDxPpSog7A2Jaw=;
        b=C4PDdfQAWDkpMVNe7Azk0b+WMjaiCRJhmgW1TL1dpb4EA70EFCJYxu46PRi+ZO7MZg
         3jBtA6xVOnHb5XbTfpaTZzH/IQWtloOFjEExRyqM7Tk7PANC3M0pSJHIz5oKCnfRfU/G
         Um4PsD1mgKZbN1ZPaXyR1PlEyX4Q0wY0Q8u69/3gAQtZA/j5AP0IJf5xu4JZ8l1+Gh9A
         44B7Df7ocwiClV+xl3fpnUUL/VHBhPp1pWVO5dKgPAPVtQg8bRIEcxoBl0lPIAcvCbrY
         6CFhH6tM9NQKe+CvB+DJPBR8StLq6pvHsnFMHou1hYMkpsYA4XRUL+F0FMPvybCfeTuS
         6saw==
X-Gm-Message-State: AOJu0YzewyUad9XglwYsYOC3n2s/dj2OVEzcrmaEXqJweM+gONO1hoxS
	47QC3Nyoy7AQxM+X8uId3fBSEntTgkkweBdsDGbjP9jQhJTkcb0xn8MXMyDAyBHvjUnLaqknQzO
	6bTx8uh2OK5jf
X-Gm-Gg: ATEYQzyI0CRFEDiPMAKVs96VXZqbxgex+bPLPjlCTUgSplaBcBRisSA+Bp7sVVZSnos
	8S4aFXcSvcXyL6Y3TjrRoq28VhfKSTgVGFN0oL+TbkhX7s0ZdODBgp1GcvLBdnRhnrLAGWjUBQN
	QOMtV4Qr94w9l+JfefHxKylj/qqZF2vfyIrcZ6S++5TAK49QbnMOOqk0HKywPZ0G+FLM+ohjzRq
	lLYBOCkUTkYY2KuYjeUnZU2rOeNTbtxFe5jalw0XnolH9UWmf3DzhNfUR5zWrWJU0hdIaIcsxi1
	gCZG9RY5naUcppdtsoccdW3+6+nF4MPsUT0tPWxzkXAXBc6DfMpbga8yeqQoXGXwwSYIlDgjx/0
	DUgHpebFKKLjjDWWaNMNITBT67Ix9XIhVNQYY+VxS4dW+yAPO8Do8RUOOytRmNx4hb6uzu4Uprc
	7vudvUAUjvSyKstyc3CvM+TIARdKPqygRmKJxZQnhC4fR/OjeHgeQ9Yvs0qeYjp26afQ0xJvQ=
X-Received: by 2002:a05:6000:144c:b0:430:f3ab:56af with SMTP id ffacd0b85a97d-4399de4a662mr8040445f8f.48.1772234210832;
        Fri, 27 Feb 2026 15:16:50 -0800 (PST)
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 v4 11/14] x86/pv: ERETU error handling
Date: Fri, 27 Feb 2026 23:16:33 +0000
Message-Id: <20260227231636.3955109-12-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-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>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4:
 * Tweak comments.

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 7563576fb477..2f40f628cbff 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -2348,6 +2348,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 synchronous ones to consider.  Anything
+     * which isn't a hardware exception (e.g. #BP) 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's handling of 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.  e.g. #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;
+
+    /*
+     * 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);
@@ -2389,6 +2496,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 bad guest
+     * state.  If so, it 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 a1ff9a4a9747..2fa57beb930c 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 Fri Feb 27 23:17:00 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:17:00 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243153.1543235 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74t-0003EC-UW; Fri, 27 Feb 2026 23:16:59 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243153.1543235; Fri, 27 Feb 2026 23:16:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw74t-0003AJ-1i; Fri, 27 Feb 2026 23:16:59 +0000
Received: by outflank-mailman (input) for mailman id 1243153;
 Fri, 27 Feb 2026 23:16: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74r-0001Do-1S
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:57 +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 666569d4-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:52 +0100 (CET)
Received: by mail-wr1-x42e.google.com with SMTP id
 ffacd0b85a97d-43991cc3155so2439113f8f.0
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:52 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.51
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:51 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 666569d4-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234212; x=1772839012; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=XGrbegNxX52Qprjc9LHURGzyjTJEjBVjNc2DvWM4rPE=;
        b=cfR24MA2ZraMNZhxpjRXI0EIbZ8NDwIT124BCWEKOOxIpVODXNVfm7sqWxnY215+SB
         c9eTPTVUImIkeuhweszpCcqS3M9Xw1mC7mzexbtADsS31Fjb+cXZJ4OeEG7rmNpT3SUX
         uBRZsySD3IPaexCOHGFdiX0OrEEdQEFmYh/ds=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234212; x=1772839012;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=XGrbegNxX52Qprjc9LHURGzyjTJEjBVjNc2DvWM4rPE=;
        b=TyGAYADbd++/NH1gXaEmYlw7vAUL2z/WxPH/tNVxnPjnFnL9qyrBCe7ejbjbKOIUk2
         ekpCy8pakF0Xoy3YSIOHfgSOekoDlNVzXyycbtDkf2q4ldzhXHiH+obqzbQQipZud4Kf
         ssOeqe4zxo7Pexosf0poovHUv4hQdkQa0LQ4YmXqr6qcw6sz6P4+X5XXrdkjhiYRY7J/
         qumSZkgJSO68ru0/jayaoNisvk6PJYV7DR8fFQNpXhG9P5tfo1shKl5KpqSylr/zgDgx
         /sMtyJ98qe+MISByUcOAPRBKGIiONIeSh0CHA977jI0Z+5zRxbvRIpDV9hr75zzDxmgu
         yl0g==
X-Gm-Message-State: AOJu0YxIIe/ytVrI9jSYpvy/iDPrQ6J/E+bFIgxu2Jdrvaxmv2ZPb61Y
	jmTp7v+dDPXpbhYYuZVOkXyKIde0HR3mFFdEEqy56lnjSc0CW5tz6DfzFmorq2LX6gBFDy8gxli
	Pe/azSH3Y0w==
X-Gm-Gg: ATEYQzyPiaMOoCLw84T75GywpbfjHVYkFwjH6Irtf4gIH3NOzv27anX6qR5zPi62HbC
	HTdYDnRAIfDLZMGRTu3GgSeKLa+H46OLCAZsA1hHSNP1n0QfVo0h7BZdkVs6EpS7CkrYK2HIi+y
	9jQSlKNpoyvUeQR84YEoiNxdu0AesfS0F1PI+/AzRofCkvw7alhi+puYwKRsvlToBO7BB/nK6Fi
	QcyGNSBrMLuP9+OnRAafsQdJFOZV8WLaVstiNHpQ8vSCmFnWjvQMBR732P/MOfDUEntimTUSl5N
	UBmzh88iINf2bJXOwpj8kakfar2j41Di5ti6Sok4XoMjsR+Nmnl2VPQrh5v570j4KWkvlXRj0ME
	awTQaJ1C944J8pDPoeGc6ehBhIukGsH5SSQ8gopQIuYzy2sNTnQAsUOCNo007nq0w7TqaKsAxhX
	EkyzI8rXMtRXFoxL4LM/ZOOmyB75rW6JGrzq9PpbOwsY4Ig9MfnJLxps3cx1qxRtDKRNV6XOM=
X-Received: by 2002:a05:6000:2482:b0:439:852f:c9e0 with SMTP id ffacd0b85a97d-4399de21f73mr7666076f8f.47.1772234211529;
        Fri, 27 Feb 2026 15:16:51 -0800 (PST)
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 v4 12/14] x86/pv: System call handling in FRED mode
Date: Fri, 27 Feb 2026 23:16:34 +0000
Message-Id: <20260227231636.3955109-13-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-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 call instructions.
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>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v3:
 * Simplify DCE handling.
 * Add ASSERT_UNREACHABLE() to pv_inject_callback().
 * Adjust comment for X86_ET_SW_INT

v2:
 * New
---
 xen/arch/x86/include/asm/domain.h    |   2 +
 xen/arch/x86/include/asm/hypercall.h |   2 -
 xen/arch/x86/pv/traps.c              |  39 ++++++++
 xen/arch/x86/traps.c                 | 131 +++++++++++++++++++++++++++
 4 files changed, 172 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/include/asm/domain.h b/xen/arch/x86/include/asm/domain.h
index 94b0cf7f1d95..ad7f6adb2cb9 100644
--- a/xen/arch/x86/include/asm/domain.h
+++ b/xen/arch/x86/include/asm/domain.h
@@ -725,6 +725,8 @@ void arch_vcpu_regs_init(struct vcpu *v);
 struct vcpu_hvm_context;
 int arch_set_info_hvm_guest(struct vcpu *v, const struct vcpu_hvm_context *ctx);
 
+void pv_inject_callback(unsigned int type);
+
 #ifdef CONFIG_PV
 void pv_inject_event(const struct x86_event *event);
 #else
diff --git a/xen/arch/x86/include/asm/hypercall.h b/xen/arch/x86/include/asm/hypercall.h
index bf2f0e169aef..d042a61d1702 100644
--- a/xen/arch/x86/include/asm/hypercall.h
+++ b/xen/arch/x86/include/asm/hypercall.h
@@ -18,9 +18,7 @@
 
 #define __HYPERVISOR_paging_domctl_cont __HYPERVISOR_arch_1
 
-#ifdef CONFIG_PV
 void pv_hypercall(struct cpu_user_regs *regs);
-#endif
 
 void pv_ring1_init_hypercall_page(void *p);
 void pv_ring3_init_hypercall_page(void *p);
diff --git a/xen/arch/x86/pv/traps.c b/xen/arch/x86/pv/traps.c
index b0395b99145a..c863ab9d372a 100644
--- a/xen/arch/x86/pv/traps.c
+++ b/xen/arch/x86/pv/traps.c
@@ -20,6 +20,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;
@@ -96,6 +98,43 @@ 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;
+    bool irq;
+
+    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;
+
+    default:
+        ASSERT_UNREACHABLE();
+        rip = 0;
+        irq = false;
+        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 2f40f628cbff..e2c35a046e6b 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>
@@ -51,6 +52,8 @@
 #include <asm/traps.h>
 #include <asm/uaccess.h>
 
+#include <public/callback.h>
+
 /*
  * opt_nmi: one of 'ignore', 'dom0', or 'fatal'.
  *  fatal:  Xen prints diagnostic message and then hangs.
@@ -2267,6 +2270,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;
 
@@ -2309,6 +2313,38 @@ void asmlinkage entry_from_pv(struct cpu_user_regs *regs)
 
     switch ( type )
     {
+    case X86_ET_SW_INT:
+        /*
+         * For better or worse, Xen writes IDT vectors 3 and 4 with DPL3 (so
+         * INT3/INTO work), making INT $3/4 indistinguishable, and the guest
+         * choice of DPL for these vectors is ignored.
+         *
+         * Have them fall through into X86_ET_HW_EXC, as #BP in particular
+         * needs handling by do_int3() in case an external debugger is
+         * attached.
+         *
+         * As the event type is provided, INT $N instructions don't need #GP
+         * tricks to spot, and INT $0x80 doesn't need a fastpath.  As the
+         * guest is necessary PV64, INT $0x82 has no special meaning either.
+         *
+         * When converting to a fault, hardware finally gives us enough
+         * information to account for prefixes, so provide the more correct
+         * behaviour rather than assuming the instruction was two bytes long.
+         */
+        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 -= regs->fred_ss.insnlen;
+                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:
@@ -2338,6 +2374,101 @@ 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.
+             *
+             * 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.
+             *
+             * When converting to a fault, hardware finally gives us enough
+             * information to account for prefixes, so provide the more
+             * correct behaviour rather than assuming the instruction was two
+             * bytes long.
+             */
+            bool l = regs->fred_ss.l;
+            unsigned int len = regs->fred_ss.insnlen;
+
+            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 -= len;
+                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.
+             *
+             * When setting the selectors, clear all upper metadata.  In
+             * particular fred_ss.swint becomes pend_DB on ERETx.
+             *
+             * When converting to a fault, hardware finally gives us enough
+             * information to account for prefixes, so provide the more
+             * correct behaviour rather than assuming the instruction was two
+             * bytes long.
+             */
+            unsigned int len = regs->fred_ss.insnlen;
+
+            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 -= len;
+                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 Fri Feb 27 23:17:30 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 27 Feb 2026 23:17:30 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243232.1543260 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw75N-0007S2-Tm; Fri, 27 Feb 2026 23:17:29 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243232.1543260; Fri, 27 Feb 2026 23: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 1vw75N-0007Qw-R3; Fri, 27 Feb 2026 23:17:29 +0000
Received: by outflank-mailman (input) for mailman id 1243232;
 Fri, 27 Feb 2026 23:17: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=gz2F=A7=citrix.com=andrew.cooper3@srs-se1.protection.inumbo.net>)
 id 1vw74t-0001Do-21
 for xen-devel@lists.xenproject.org; Fri, 27 Feb 2026 23:16:59 +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 68457e39-1432-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 00:16:55 +0100 (CET)
Received: by mail-wr1-x434.google.com with SMTP id
 ffacd0b85a97d-4398f8e2837so2228203f8f.1
 for <xen-devel@lists.xenproject.org>; Fri, 27 Feb 2026 15:16:55 -0800 (PST)
Received: from localhost.localdomain (host-92-22-18-152.as13285.net.
 [92.22.18.152]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-4399c70e8e8sm9680306f8f.10.2026.02.27.15.16.52
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 27 Feb 2026 15:16:52 -0800 (PST)
X-BeenThere: xen-devel@lists.xenproject.org
List-Id: Xen developer discussion <xen-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/mailman/options/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:xen-devel@lists.xenproject.org>
List-Help: <mailto:xen-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/mailman/listinfo/xen-devel>,
 <mailto:xen-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: xen-devel-bounces@lists.xenproject.org
Precedence: list
Sender: "Xen-devel" <xen-devel-bounces@lists.xenproject.org>
X-Inumbo-ID: 68457e39-1432-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=citrix.com; s=google; t=1772234215; x=1772839015; darn=lists.xenproject.org;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:from:to:cc:subject:date
         :message-id:reply-to;
        bh=15zWx1qA8rFF4HWlAuchK/hb06gvUooknaZohCqKUPM=;
        b=gA5HPosuZY0sgr9RKW7vL/IlCwdrJsKS0i2R5ajdi7HQaaTgB5jVqb1PYgC5P1Rq+T
         ZAHEHOXzouLrhKkjPhAdWcDJ5CLk8u1QXGKuJJEnGn1f/GAFVdLcd3brameTli/IJ6rW
         C/oyhcPeLzHWSkrbP+8YcnNuVOm8mYuqg1+mM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1772234215; x=1772839015;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from
         :to:cc:subject:date:message-id:reply-to;
        bh=15zWx1qA8rFF4HWlAuchK/hb06gvUooknaZohCqKUPM=;
        b=gPkz2llYAEJtMs8F3OCQtis6W9CC767+rD0yoxQ1ciLcoYObdsFpCGMx+1IqpEx0O0
         Luk84Alkoau1rBBxRk0YtRU44JIIm4Nnfj2EyA3U/RAUeRLDKHqU9zjPHYI0jJYslveO
         uw5pWhuDFY0tAf53q0zrQQKiyWIuxR0MOo+DwVgDHCXn6cxiOYIEE9mXeKm4TyUgHxLJ
         X8WWdxSOW6BWUA23OYsrUqk/JERcHXK/QBGCMqig2yRhfZvK608g8/1DLhhohRMHxc3j
         d6Hy2fVf33nnCxtH7Y4ysIxIqDUCs5jugz79L+Bf7+JM0c7Y1Nei3JsSAYpxo4azm61s
         B8VQ==
X-Gm-Message-State: AOJu0YzM3uzxaAEnSyJR1Of4Im9hzqd2bkMpaY1UeKe8oT4OSiLyw1DX
	hCRsH1a2roj5b/jVGFvHOyWmJxL9Y8JLwHfXyACVlFkWK8vKLFC6VUTNtZ/wNO/Y9CNx0H3bPoO
	e6XYr
X-Gm-Gg: ATEYQzw+p6xljYYIBunjpviBiMAkoh8JYTGzNyTZ+2hqDn5gIcHEgz9i2cl/bb+gelQ
	grbgK+KI0s6hJ9CaPEJAlVD7x8bXHtCbX3kOHaiyDVEBBHhW2Pfnw4/9pJDzpvAWPISSM0S3s9U
	R73vvDhrRXtAVPs9H2pDWKC49nbmbKT2fZQ7FgNXh6JxmthFU/AdJLS73U2aNcwaUprhUGZqSqi
	paycop1BDkNc+FBEQwo35Z6pXQdUDsmxgs0skAvV5Rf2nJCHOArHM7ARlGo9eKVGnEou8981lXW
	fBAHHEvQSN2rYS427Sn2xVxIa+P3/9GbiTIc3Jbtmj/Y+d5252cmHXvNohuYuY4wO6KZFZ/TG3E
	yDJqNxfcQlb8fjwDJG4yxDKaxYIHRWwshD5pbAHHzsqRJrdcI4ItKFUw3Ea48xJYWRyVG2osKtw
	PjuiRrLqELhDO3ytfSy6IjaKdXM6aDsfhJaK0IdyVmbQEh4igasXYtp/HxmQQmFoRN6rtQezU=
X-Received: by 2002:a05:6000:603:b0:432:a9db:f9a2 with SMTP id ffacd0b85a97d-4399de2b52amr8236751f8f.41.1772234214125;
        Fri, 27 Feb 2026 15:16:54 -0800 (PST)
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 v4 14/14] x86/traps: Use fatal_trap() for #UD and #GP
Date: Fri, 27 Feb 2026 23:16:36 +0000
Message-Id: <20260227231636.3955109-15-andrew.cooper3@citrix.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
References: <20260227231636.3955109-1-andrew.cooper3@citrix.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This renders the diagnostics in a more uniform way.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>

v4:
 * New

PF and CP are more complicated and not converted yet.
---
 xen/arch/x86/traps.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index e2c35a046e6b..c04ab484ad27 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -1375,8 +1375,7 @@ void asmlinkage do_invalid_op(struct cpu_user_regs *regs)
     if ( likely(extable_fixup(regs, true)) )
         return;
 
-    show_execution_state(regs);
-    panic("FATAL TRAP: vector = %d (invalid opcode)\n", X86_EXC_UD);
+    fatal_trap(regs, false);
 }
 
 void asmlinkage do_int3(struct cpu_user_regs *regs)
@@ -1475,8 +1474,7 @@ void do_general_protection(struct cpu_user_regs *regs)
         return;
 
  hardware_gp:
-    show_execution_state(regs);
-    panic("GENERAL PROTECTION FAULT\n[error_code=%04x]\n", regs->error_code);
+    fatal_trap(regs, false);
 }
 
 #ifdef CONFIG_PV
-- 
2.39.5



From xen-devel-bounces@lists.xenproject.org Sat Feb 28 01:43:20 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 28 Feb 2026 01:43:20 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243318.1543271 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw9MD-0002Zi-Mv; Sat, 28 Feb 2026 01:43:01 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243318.1543271; Sat, 28 Feb 2026 01: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 1vw9MD-0002Za-IC; Sat, 28 Feb 2026 01:43:01 +0000
Received: by outflank-mailman (input) for mailman id 1243318;
 Sat, 28 Feb 2026 01:43: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=Eoy0=BA=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vw9MC-0002ZU-VA
 for xen-devel@lists.xenproject.org; Sat, 28 Feb 2026 01:43:01 +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 cc8b8db3-1446-11f1-b164-2bf370ae4941;
 Sat, 28 Feb 2026 02:42:54 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id 0D4EE6057A;
 Sat, 28 Feb 2026 01:42:53 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2BBB0C19422;
 Sat, 28 Feb 2026 01:42: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: cc8b8db3-1446-11f1-b164-2bf370ae4941
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772242972;
	bh=QWxFQqcImv7PUWhFYJ4t2rsrZuzrFQJtZYWOFWoYlkA=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=HzNwHMkKDmvkEKzfVwUOT9nofbGoTNeAvpcERivYdV9Dihn/yLCcBz720zGa7AetO
	 iwXxy0jxIvC0hfmhaRl7fgF1wJ9UmZZtMEf/Nb3Lcr7v20KDANnC2VcxQ1rkcv1jg9
	 OK0Iw8IYUk8Y9ntsOL9KUfYM6GaaSOTC095J1IhYGaslwyaKkcEHw3OEoHl9lKnVOE
	 sYGdPUX+o10NABlIPEYktCLwUAY8+FhLSGEAM0mMmfWCcAS8e2bRJ2IjPykZLM6emB
	 XW/YpMYrXavR0NbnuQfdhTIJFkeEgvPQkgwsoHBl+cdXA9tm09AxLiIxu5Ab9Rbppy
	 YQ7O75FQW1t3A==
Date: Fri, 27 Feb 2026 17:42:47 -0800 (PST)
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>, 
    Stefano Stabellini <sstabellini@kernel.org>, 
    Romain Caritey <Romain.Caritey@microchip.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>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
In-Reply-To: <74060a96-110f-4d6f-bbad-361021315884@suse.com>
Message-ID: <alpine.DEB.2.22.394.2602271742400.3148344@ubuntu-linux-20-04-desktop>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com> <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com> <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com> <alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop>
 <d9feffe4-c45e-4bed-bc5e-776e4547578a@suse.com> <5eb4ba3b-f7b6-4cfb-ab67-60198c3f8572@gmail.com> <0c0061ab-acdb-4ceb-92e2-ca4e591ee741@suse.com> <ab0b7dcf-c607-43d3-bb1c-f782c3a71332@gmail.com> <74060a96-110f-4d6f-bbad-361021315884@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, 18 Feb 2026, Jan Beulich wrote:
> On 18.02.2026 15:38, Oleksii Kurochko wrote:
> > On 2/18/26 2:12 PM, Jan Beulich wrote:
> >> On 18.02.2026 13:58, Oleksii Kurochko wrote:
> >>> On 2/17/26 8:34 AM, Jan Beulich wrote:
> >>>> On 16.02.2026 19:42, Stefano Stabellini wrote:
> >>>>> On Mon, 16 Feb 2026, Jan Beulich wrote:
> >>>>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
> >>>>>>> domain_use_host_layout() is generic enough to be moved to the
> >>>>>>> common header xen/domain.h.
> >>>>>> Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...
> >>>>>>
> >>>>>>> --- a/xen/include/xen/domain.h
> >>>>>>> +++ b/xen/include/xen/domain.h
> >>>>>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
> >>>>>>>    #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
> >>>>>>>    #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
> >>>>>>>    
> >>>>>>> +/*
> >>>>>>> + * Is the domain using the host memory layout?
> >>>>>>> + *
> >>>>>>> + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
> >>>>>>> + * To avoid any trouble finding space, it is easier to force using the
> >>>>>>> + * host memory layout.
> >>>>>>> + *
> >>>>>>> + * The hardware domain will use the host layout regardless of
> >>>>>>> + * direct-mapped because some OS may rely on a specific address ranges
> >>>>>>> + * for the devices.
> >>>>>>> + */
> >>>>>>> +#ifndef domain_use_host_layout
> >>>>>>> +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
> >>>>>>> +                                    is_hardware_domain(d))
> >>>>>> ... is_domain_direct_mapped() isn't something that I'd like to see further
> >>>>>> proliferate in common (non-DT) code.
> >>>>> Hi Jan, we have a requirement for 1:1 mapped Dom0 (I should say hardware
> >>>>> domain) on x86 as well. In fact, we already have a working prototype,
> >>>>> although it is not suitable for upstream yet.
> >>>>>
> >>>>> In addition to the PSP use case that we discussed a few months ago,
> >>>>> where the PSP is not behind an IOMMU and therefore exchanged addresses
> >>>>> must be 1:1 mapped, we also have a new use case. We are running the full
> >>>>> Xen-based automotive stack on an Azure instance where SVM (vmentry and
> >>>>> vmexit) is available, but an IOMMU is not present. All virtual machines
> >>>>> are configured as PVH.
> >>>> Hmm. Then adjustments need making, for commentary and macro to be correct
> >>>> on x86. First and foremost none of what is there is true for PV.
> >>> As is_domain_direct_mapped() returns always false for x86, so
> >>> domain_use_host_layout macro will return incorrect value for non-hardware
> >>> domains (dom0?). And as PV domains are not auto_translated domains so are
> >>> always direct-mapped, so technically is_domain_direct_mapped() (or
> >>> domain_use_host_layout()) should return true in such case.
> >> Hmm? PV domains aren't direct-mapped. Direct-map was introduced by Arm for
> >> some special purpose (absence of IOMMU iirc).
> > 
> > I made such conclusion because of the comments in the code mentioned below:
> >   - https://elixir.bootlin.com/xen/v4.21.0/source/tools/libs/guest/xg_dom_x86.c#L1880
> >   - https://elixir.bootlin.com/xen/v4.21.0/source/xen/include/public/features.h#L107
> > 
> > Also, in the comment where it is introduced (d66bf122c0a "xen: introduce XENFEAT_direct_mapped and XENFEAT_not_direct_mapped")
> > is mentioned that:
> >    XENFEAT_direct_mapped is always set for not auto-translated guests.
> 
> Hmm, this you're right with, and XENVER_get_features handling indeed has
> 
>             if ( !paging_mode_translate(d) || is_domain_direct_mapped(d) )
>                 fi.submap |= (1U << XENFEAT_direct_mapped);
> 
> Which now I have a vague recollection of not having been happy with back at
> the time. Based solely on the GFN == MFN statement this may be correct, but
> "GFN" is a questionable term for PV in the first place. See how e.g.
> common/memory.c resorts to using GPFN and GMFN, in line with commentary in
> public/memory.h.
> 
> What the above demonstrates quite well though is that there's no direct
> relationship between XENFEAT_direct_mapped and is_domain_direct_mapped().

Let's start from the easy case: domain_use_host_layout.

domain_use_host_layout is meant to indicate whether the domain memory
map (e.g. the address of the interrupt controller, the start of RAM,
etc.) matches the host memory map or not.

It is implemented as:

#define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
                                   is_hardware_domain(d))

Because on ARM there are two cases:
1) hardware domain is always using the host layout
2) non-hardware domain only use the host layout when directly mapped
(more on the later)


I think this can be generalized and made arch-neutral with the caveat
that it should return False for PV guests as Jan mentioned. After all
the virtual interrupt controller in a PV domain doesn't start at the
same guest physical address of the real interrupt controller. The
comment can be improved, but let's get to it after we talk about
is_domain_direct_mapped.


is_domain_direct_mapped is meant to indicate that a domain's memory is
allocated 1:1 such that GFN == MFN. is_domain_direct_mapped is easily
applicable as-is to PVH and HVM guests where there are two stages of
translation.

What about PV guests? One could take the stance that given that there
are no real GFN space, then GFN is always the same as MFN. But this is
more philosophical than practical.

Practically, is_domain_direct_mapped() triggers a different code path in
xen/common/memory.c:populate_physmap for contiguous 1:1 memory
allocations which is probably undesirable for PV guests.

Practically, there is a related flag exposed to Linux
XENFEAT_direct_mapped. For HVM/PVH guests makes sense to be one and the
same as is_domain_direct_mapped(). This flag is used by Linux to know
whether it can use swiotlb-xen or not. Specifically, swiotlb-xen is only
usable when XENFEAT_direct_mapped is enabled for ARM guests and the
principle could apply to HVM/PVH guests too. What about PV guests?
They also make use of swiotlb-xen and XENFEAT_direct_mapped is set to
True for PV guests today.


In conclusion, is_domain_direct_mapped() was born for autotranslated
guests and is meant to trigger large contigous memory allocations is Xen
and permit the usage of swiotlb-xen in Linux. For PV guests, while we
want swiotlb-xen and the XENFEAT_direct_mapped flag is already set to
True, we don't want to change the memory allocation scheme. 

So I think is_domain_direct_mapped() should be always False on x86:
- PV guests should be always False
- PVH/HVM guests could be True but it is currently unimplemented (AMD
  is working on an implementation)

For compatibility and functionality, XENFEAT_direct_mapped should be
left as is.

The implementation of domain_use_host_layout() can be moved to common
code with a change:


/*
 * Is the auto-translated domain using the host memory layout?
 *
 * domain_use_host_layout() is always False for PV guests.
 *
 * Direct-mapped domains (autotranslated domains with memory allocated
 * contiguously and mapped 1:1 so that GFN == MFN) are always using the
 * host memory layout to avoid address clashes.
 *
 * The hardware domain will use the host layout (regardless of
 * direct-mapped) because some OS may rely on a specific address ranges
 * for the devices. PV Dom0, like any other PV guests, has
 * domain_use_host_layout() returning False.
 */
#define domain_use_host_layout(d) (is_domain_direct_mapped(d) ||
                                   (paging_mode_translate(d) &&
                                    is_hardware_domain(d)))



From xen-devel-bounces@lists.xenproject.org Sat Feb 28 01:59:51 2026
Return-path: <xen-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xen.org
Delivery-date: Sat, 28 Feb 2026 01:59:51 +0000
Received: from list by lists.xenproject.org with outflank-mailman.1243328.1543281 (Exim 4.92)
	(envelope-from <xen-devel-bounces@lists.xenproject.org>)
	id 1vw9cP-0004U7-W4; Sat, 28 Feb 2026 01:59:45 +0000
X-Outflank-Mailman: Message body and most headers restored to incoming version
Received: by outflank-mailman (output) from mailman id 1243328.1543281; Sat, 28 Feb 2026 01:59: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 1vw9cP-0004U0-TO; Sat, 28 Feb 2026 01:59:45 +0000
Received: by outflank-mailman (input) for mailman id 1243328;
 Sat, 28 Feb 2026 01:59: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=Eoy0=BA=kernel.org=sstabellini@srs-se1.protection.inumbo.net>)
 id 1vw9cP-0004Tp-Ag
 for xen-devel@lists.xenproject.org; Sat, 28 Feb 2026 01:59:45 +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 25255df6-1449-11f1-9ccf-f158ae23cfc8;
 Sat, 28 Feb 2026 02:59:42 +0100 (CET)
Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])
 by tor.source.kernel.org (Postfix) with ESMTP id D3E9260141;
 Sat, 28 Feb 2026 01:59:40 +0000 (UTC)
Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1048EC116C6;
 Sat, 28 Feb 2026 01:59: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: 25255df6-1449-11f1-9ccf-f158ae23cfc8
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
	s=k20201202; t=1772243980;
	bh=aR6yunxln3OqrIoTNoSl965jqC5RqFB7fmoeTW9Ykik=;
	h=Date:From:To:cc:Subject:In-Reply-To:References:From;
	b=lWN46iuN3j2a3Y4zPJucCCHBvSmonC638hBiJhfxfOTNIb+FZfqtfa60jnOIDtYY3
	 1MOqB/1AfJSyIP1eTrBQ43kAWoD+D92gOEUno4YYTVeC7VnarE4hBfPh1os5BIWVeN
	 JizGJ7fnxC9hrOSTDR06a/jsMnBFq6QCKFoVfTC1iC+6MVF3pdnJGLbBZ469yTSxUD
	 TbIaEZOMBhdA7AhjDfW24Q0nFpeWZ4HGGB57cFL6mPfs42WqPWJi2wAB/c1sgpwXgT
	 RdPVzqAgMuku40SlBZUJOQFUkH6UWDMiHBWLmc0YMIfKYlxWgAvyGqPPf86WMwCPqQ
	 d+xcD27uamgdA==
Date: Fri, 27 Feb 2026 17:59:37 -0800 (PST)
From: Stefano Stabellini <sstabellini@kernel.org>
X-X-Sender: sstabellini@ubuntu-linux-20-04-desktop
To: Stefano Stabellini <sstabellini@kernel.org>
cc: Jan Beulich <jbeulich@suse.com>, 
    Oleksii Kurochko <oleksii.kurochko@gmail.com>, 
    Romain Caritey <Romain.Caritey@microchip.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>, 
    xen-devel@lists.xenproject.org
Subject: Re: [PATCH v1 5/6] xen: move domain_use_host_layout() to common
 header
In-Reply-To: <alpine.DEB.2.22.394.2602271742400.3148344@ubuntu-linux-20-04-desktop>
Message-ID: <alpine.DEB.2.22.394.2602271750190.3148344@ubuntu-linux-20-04-desktop>
References: <cover.1770821989.git.oleksii.kurochko@gmail.com> <678eb53c56bc4f6147feb0bbb6c1319197d0f0df.1770821989.git.oleksii.kurochko@gmail.com> <522a71ce-05da-4a66-956e-5581f0c49e0e@suse.com> <alpine.DEB.2.22.394.2602161038120.359097@ubuntu-linux-20-04-desktop>
 <d9feffe4-c45e-4bed-bc5e-776e4547578a@suse.com> <5eb4ba3b-f7b6-4cfb-ab67-60198c3f8572@gmail.com> <0c0061ab-acdb-4ceb-92e2-ca4e591ee741@suse.com> <ab0b7dcf-c607-43d3-bb1c-f782c3a71332@gmail.com> <74060a96-110f-4d6f-bbad-361021315884@suse.com>
 <alpine.DEB.2.22.394.2602271742400.3148344@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, 27 Feb 2026, Stefano Stabellini wrote:
> On Wed, 18 Feb 2026, Jan Beulich wrote:
> > On 18.02.2026 15:38, Oleksii Kurochko wrote:
> > > On 2/18/26 2:12 PM, Jan Beulich wrote:
> > >> On 18.02.2026 13:58, Oleksii Kurochko wrote:
> > >>> On 2/17/26 8:34 AM, Jan Beulich wrote:
> > >>>> On 16.02.2026 19:42, Stefano Stabellini wrote:
> > >>>>> On Mon, 16 Feb 2026, Jan Beulich wrote:
> > >>>>>> On 12.02.2026 17:21, Oleksii Kurochko wrote:
> > >>>>>>> domain_use_host_layout() is generic enough to be moved to the
> > >>>>>>> common header xen/domain.h.
> > >>>>>> Maybe, but then something DT-specific, not xen/domain.h. Specifically, ...
> > >>>>>>
> > >>>>>>> --- a/xen/include/xen/domain.h
> > >>>>>>> +++ b/xen/include/xen/domain.h
> > >>>>>>> @@ -62,6 +62,22 @@ void domid_free(domid_t domid);
> > >>>>>>>    #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
> > >>>>>>>    #define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
> > >>>>>>>    
> > >>>>>>> +/*
> > >>>>>>> + * Is the domain using the host memory layout?
> > >>>>>>> + *
> > >>>>>>> + * Direct-mapped domain will always have the RAM mapped with GFN == MFN.
> > >>>>>>> + * To avoid any trouble finding space, it is easier to force using the
> > >>>>>>> + * host memory layout.
> > >>>>>>> + *
> > >>>>>>> + * The hardware domain will use the host layout regardless of
> > >>>>>>> + * direct-mapped because some OS may rely on a specific address ranges
> > >>>>>>> + * for the devices.
> > >>>>>>> + */
> > >>>>>>> +#ifndef domain_use_host_layout
> > >>>>>>> +# define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
> > >>>>>>> +                                    is_hardware_domain(d))
> > >>>>>> ... is_domain_direct_mapped() isn't something that I'd like to see further
> > >>>>>> proliferate in common (non-DT) code.
> > >>>>> Hi Jan, we have a requirement for 1:1 mapped Dom0 (I should say hardware
> > >>>>> domain) on x86 as well. In fact, we already have a working prototype,
> > >>>>> although it is not suitable for upstream yet.
> > >>>>>
> > >>>>> In addition to the PSP use case that we discussed a few months ago,
> > >>>>> where the PSP is not behind an IOMMU and therefore exchanged addresses
> > >>>>> must be 1:1 mapped, we also have a new use case. We are running the full
> > >>>>> Xen-based automotive stack on an Azure instance where SVM (vmentry and
> > >>>>> vmexit) is available, but an IOMMU is not present. All virtual machines
> > >>>>> are configured as PVH.
> > >>>> Hmm. Then adjustments need making, for commentary and macro to be correct
> > >>>> on x86. First and foremost none of what is there is true for PV.
> > >>> As is_domain_direct_mapped() returns always false for x86, so
> > >>> domain_use_host_layout macro will return incorrect value for non-hardware
> > >>> domains (dom0?). And as PV domains are not auto_translated domains so are
> > >>> always direct-mapped, so technically is_domain_direct_mapped() (or
> > >>> domain_use_host_layout()) should return true in such case.
> > >> Hmm? PV domains aren't direct-mapped. Direct-map was introduced by Arm for
> > >> some special purpose (absence of IOMMU iirc).
> > > 
> > > I made such conclusion because of the comments in the code mentioned below:
> > >   - https://elixir.bootlin.com/xen/v4.21.0/source/tools/libs/guest/xg_dom_x86.c#L1880
> > >   - https://elixir.bootlin.com/xen/v4.21.0/source/xen/include/public/features.h#L107
> > > 
> > > Also, in the comment where it is introduced (d66bf122c0a "xen: introduce XENFEAT_direct_mapped and XENFEAT_not_direct_mapped")
> > > is mentioned that:
> > >    XENFEAT_direct_mapped is always set for not auto-translated guests.
> > 
> > Hmm, this you're right with, and XENVER_get_features handling indeed has
> > 
> >             if ( !paging_mode_translate(d) || is_domain_direct_mapped(d) )
> >                 fi.submap |= (1U << XENFEAT_direct_mapped);
> > 
> > Which now I have a vague recollection of not having been happy with back at
> > the time. Based solely on the GFN == MFN statement this may be correct, but
> > "GFN" is a questionable term for PV in the first place. See how e.g.
> > common/memory.c resorts to using GPFN and GMFN, in line with commentary in
> > public/memory.h.
> > 
> > What the above demonstrates quite well though is that there's no direct
> > relationship between XENFEAT_direct_mapped and is_domain_direct_mapped().
> 
> Let's start from the easy case: domain_use_host_layout.
> 
> domain_use_host_layout is meant to indicate whether the domain memory
> map (e.g. the address of the interrupt controller, the start of RAM,
> etc.) matches the host memory map or not.
> 
> It is implemented as:
> 
> #define domain_use_host_layout(d) (is_domain_direct_mapped(d) || \
>                                    is_hardware_domain(d))
> 
> Because on ARM there are two cases:
> 1) hardware domain is always using the host layout
> 2) non-hardware domain only use the host layout when directly mapped
> (more on the later)
> 
> 
> I think this can be generalized and made arch-neutral with the caveat
> that it should return False for PV guests as Jan mentioned. After all
> the virtual interrupt controller in a PV domain doesn't start at the
> same guest physical address of the real interrupt controller. The
> comment can be improved, but let's get to it after we talk about
> is_domain_direct_mapped.
> 
> 
> is_domain_direct_mapped is meant to indicate that a domain's memory is
> allocated 1:1 such that GFN == MFN. is_domain_direct_mapped is easily
> applicable as-is to PVH and HVM guests where there are two stages of
> translation.
> 
> What about PV guests? One could take the stance that given that there
> are no real GFN space, then GFN is always the same as MFN. But this is
> more philosophical than practical.
> 
> Practically, is_domain_direct_mapped() triggers a different code path in
> xen/common/memory.c:populate_physmap for contiguous 1:1 memory
> allocations which is probably undesirable for PV guests.
> 
> Practically, there is a related flag exposed to Linux
> XENFEAT_direct_mapped. For HVM/PVH guests makes sense to be one and the
> same as is_domain_direct_mapped(). This flag is used by Linux to know
> whether it can use swiotlb-xen or not. Specifically, swiotlb-xen is only
> usable when XENFEAT_direct_mapped is enabled for ARM guests and the
> principle could apply to HVM/PVH guests too. What about PV guests?
> They also make use of swiotlb-xen and XENFEAT_direct_mapped is set to
> True for PV guests today.
> 
> 
> In conclusion, is_domain_direct_mapped() was born for autotranslated
> guests and is meant to trigger large contigous memory allocations is Xen
> and permit the usage of swiotlb-xen in Linux. For PV guests, while we
> want swiotlb-xen and the XENFEAT_direct_mapped flag is already set to
> True, we don't want to change the memory allocation scheme. 
> 
> So I think is_domain_direct_mapped() should be always False on x86:
> - PV guests should be always False
> - PVH/HVM guests could be True but it is currently unimplemented (AMD
>   is working on an implementation)
> 
> For compatibility and functionality, XENFEAT_direct_mapped should be
> left as is.
> 
> The implementation of domain_use_host_layout() can be moved to common
> code with a change:
> 
> 
> /*
>  * Is the auto-translated domain using the host memory layout?
>  *
>  * domain_use_host_layout() is always False for PV guests.
>  *
>  * Direct-mapped domains (autotranslated domains with memory allocated
>  * contiguously and mapped 1:1 so that GFN == MFN) are always using the
>  * host memory layout to avoid address clashes.
>  *
>  * The hardware domain will use the host layout (regardless of
>  * direct-mapped) because some OS may rely on a specific address ranges
>  * for the devices. PV Dom0, like any other PV guests, has
>  * domain_use_host_layout() returning False.
>  */
> #define domain_use_host_layout(d) (is_domain_direct_mapped(d) ||
>                                    (paging_mode_translate(d) &&
>                                     is_hardware_domain(d)))

I'll add one thing. While I think it is clear that XENFEAT_direct_mapped
should remain as is and that is_domain_direct_mapped() should be always
False for PV guests, given that domain_use_host_layout is not currently
used on x86 it is debatable how it should be implemented.                                                                                    
 
For PVH/HVM, domain_use_host_layout() can easily be aligned with ARM.                                                                        
                                                                
For PV DomUs, it will return false and there is no issue.

For PV Dom0, I would argue it should return False because the concept
of "host memory layout" is about the address of virtual platform
devices (interrupt controller, UART, etc.) in the guest physical
address space. PV guests don't have virtual devices mapped at specific
guest physical addresses, they use hypercalls. But I can see it could be
argued either way, when you take into consideration EFI/ACPI tables.
For now, domain_use_host_layout() is unused on x86, so it doesn't make a
difference.


